"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": [
"optional": true,
"field": "dialPredictiveIntervalMinThreshold",
"description": ""
- },
- {
- "group": "Body",
- "type": "Boolean",
- "optional": true,
- "field": "dialPreviewAutoRecallMe",
- "description": ""
}
]
}
"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": [
"optional": true,
"field": "dialPredictiveIntervalMinThreshold",
"description": ""
- },
- {
- "group": "Body",
- "type": "Boolean",
- "optional": true,
- "field": "dialPreviewAutoRecallMe",
- "description": ""
}
]
}
"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-15T09:26:50.739Z",
+ "time": "2021-10-18T06:58:50.834Z",
"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-15T09:26:50.739Z",
+ "time": "2021-10-18T06:58:50.834Z",
"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": "完",
"MACHINERETRYTIME": "Time in minutes before trying to call again a failed contact due to machine",
"AGENTREJECTMAXRETRY": "Maximum number of times a contact is called before considering it closed, when the call failed for agent reject",
"AGENTREJECTRETRYTIME": "Time in minutes before trying to call again a failed contact due to agent reject",
- "MANDATORYDISPOSITIONPAUSEID": "Pause status to set during mandatory disposition",
- "PREVIEW_AUTO_RECALL_ME": "If enabled, the system will automatically generate the Recall Me calls; otherwise, the agent must do it manually"
+ "MANDATORYDISPOSITIONPAUSEID": "Pause status to set during mandatory disposition"
},
"MUSICONHOLD": "Music On Hold",
"ANNOUNCETOAGENT": "Announce To Agent",
"MANDATORYDISPOSITION": "Mandatory disposition",
"MANDATORYDISPOSITIONPAUSEID": "Mandatory disposition pause status",
"TOOLTIP_SCREENRECORDING_ON": "Screen Recording in progress",
- "TOOLTIP_SCREENRECORDING_OFF": "Screen Recording available",
- "PREVIEW_AUTO_RECALL_ME": "Automate Recall Me calls"
+ "TOOLTIP_SCREENRECORDING_OFF": "Screen Recording available"
}
}
"MACHINERETRYTIME": "Tempo in minuti prima di provare a richiamare un contatto non riuscito a causa della macchina",
"NOSUCHNUMBERETRYTIME": "Tempo in minuti prima di provare a chiamare nuovamente un contatto non riuscito a causa di tale numero",
"NOSUCHNUMBERMAXRETRY": "Numero massimo di volte in cui un contatto viene chiamato prima di considerarlo chiuso, quando la chiamata non è riuscita senza tale numero",
- "NOSUCHNUMBERRETRYTIME": "Tempo in minuti prima di provare a chiamare di nuovo un contatto fallito a causa della mancanza di tale numero",
- "PREVIEW_AUTO_RECALL_ME": "Se abilitato, il sistema genererà automaticamente le chiamate Recall Me, altrimenti l'agente dovrà effettuarle manualmente"
+ "NOSUCHNUMBERRETRYTIME": "Tempo in minuti prima di provare a chiamare di nuovo un contatto fallito a causa della mancanza di tale numero"
},
"MUSICONHOLD": "Musica di attesa",
"ANNOUNCETOAGENT": "Annuncio all'Agente",
"NOSUCHNUMBERMAXRETRY": "Numero massimo di tentativi",
"NOSUCHNUMBERRETRYTIME": "Riprova [min]",
"TOOLTIP_SCREENRECORDING_OFF": "Registrazione dello schermo disponibile",
- "TOOLTIP_SCREENRECORDING_ON": "Registrazione dello schermo in corso",
- "PREVIEW_AUTO_RECALL_ME": "Automatizza chiamate Recall Me"
+ "TOOLTIP_SCREENRECORDING_ON": "Registrazione dello schermo in corso"
}
}
{
"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"
}
}
"SCREEN_RECORDINGS": "Screen Recordings",
"JSCRIPTY_SESSIONS": "Jscripty Sessions",
"CONTACT_MANAGER_LISTS": "Contact Manager Lists",
- "CALLYSQUARE_RECORDINGS": "Cally Square Recordings",
- "IGNORE_AGENT_BREAK_STATUS_FOR_PREVIEW_CALLS": "Ignore agent break status for preview calls",
- "SELECT_RECALLME_CAMPAIGN": "Select Recall Me Campaign"
+ "CALLYSQUARE_RECORDINGS": "Cally Square Recordings"
}
}
"SCREEN_RECORDINGS": "Registrazioni Screen",
"JSCRIPTY_SESSIONS": "Sessioni Jscripty",
"CONTACT_MANAGER_LISTS": "Liste Manager Contatti",
- "CALLYSQUARE_RECORDINGS": "Registrazioni Cally Square",
- "IGNORE_AGENT_BREAK_STATUS_FOR_PREVIEW_CALLS": "Ignora lo stato di pausa per le chiamate preview",
- "SELECT_RECALLME_CAMPAIGN": "Seleziona Campagna Recall Me"
+ "CALLYSQUARE_RECORDINGS": "Registrazioni Cally Square"
}
}
"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",
"QUEUE": "Queue",
"CALL_STATUS": "Call Status",
"OUTBOUNDROUTE": "Outbound Route",
- "MAIL_SUBSTATUS": "Email Substatus",
"EQUALS": "Equals",
"NOT_EQUALS": "Not Equals",
"CONTACT_MANAGER": "Contacts Manager",
"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",
"QUEUE": "Coda",
"CALL_STATUS": "Stato chiamata",
"OUTBOUNDROUTE": "Rotta Outbound",
- "MAIL_SUBSTATUS": "Sotto stato Email",
"EQUALS": "Uguale a",
"NOT_EQUALS": "Diverso da",
"CONTACT_MANAGER": "Manager Contatti",
"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"
}
}
"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",
"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",
"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",
"NOTIFICATION_TITLE_RECIPIENT": "to {{recipient}}",
"USER_FORCE_LOGOUT": "{{ip}} has logged in with your credentials. \nMultiple logins are not allowed",
"LOGOUT": "Logout",
- "SESSION_TIMEOUT": "The session will be automatically closed after 60 seconds",
- "HELP": {
- "PREVIEW_RECALLME": "This is a Recall Me call scheduled for {{date}}"
- }
+ "SESSION_TIMEOUT": "The session will be automatically closed after 60 seconds"
}
}
"NOTIFICATION_TITLE_RECIPIENT": "a {{recipient}}",
"USER_FORCE_LOGOUT": "{{ip}} si è connesso con le tue credenziali. \nNon sono consentite connessioni multiple",
"LOGOUT": "Disconnettersi",
- "SESSION_TIMEOUT": "La sessione verrà chiusa automaticamente dopo 60 secondi",
- "HELP": {
- "PREVIEW_RECALLME": "Questa è una chiamata Recall Me programmata per il {{date}}"
- }
+ "SESSION_TIMEOUT": "La sessione verrà chiusa automaticamente dopo 60 secondi"
}
}
<link rel="stylesheet" href="styles/vendor.def00a0c.css">
- <link rel="stylesheet" href="styles/app.e700e376.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.cc966f7e.js"></script>
+ <script src="scripts/app.285b5bd1.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,dialPreviewAutoRecallMe",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,dialPreviewAutoRecallMe",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,dialPreviewAutoRecallMe",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){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",function(e){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,selectRecallMeCampaign,ignorePauseForPreviewCalls",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,selectRecallMeCampaign,ignorePauseForPreviewCalls",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,selectRecallMeCampaign,ignorePauseForPreviewCalls",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",function(e){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"],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(p,t,g,e,a,i,n,u,s,o,v,h,f,b,r,A){var E=this,l=["ringingId","speakerId","microphoneId","ringingVolume","speakerVolume","microphoneVolume","ringingMute","speakerMute","microphoneMute"],d=JSON.parse(n.localStorage.getItem("motion2.user:"+E.conf.id))||{webrtc:{ringingVolume:.5,speakerVolume:.5,microphoneVolume:1,ringingMute:!1,speakerMute:!1,microphoneMute:!1}};function c(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:u.instant("TOOLBAR.WARNING"),msg:u.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:u.instant("TOOLBAR.WARNING"),msg:u.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(){o(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:u.instant("TOOLBAR.WARNING"),msg:u.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:u.instant("TOOLBAR.WARNING"),msg:u.instant("TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}.bind(this))})}function y(){d.webrtc=_.pick(E.conf,l),n.localStorage.setItem("motion2.user:"+E.conf.id,JSON.stringify(d))}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 m(){E.target="",document.getElementById("ms-target").blur(),document.getElementById("ms-target").value="",p.$broadcast("angucomplete-alt:clearInput","ms-target-wrap")}function x(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 N(){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 D(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 P(n){return console.debug("findSessionBySessionId -> sessionId, vm_pb.sessions",n,E.sessions),_.find(E.sessions,function(e){return e.call_id==n})}function L(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(d.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:g(function(){E.showDialpad=!1})}}),E.$onInit=function(){c(!1),navigator.mediaDevices.ondevicechange=function(){E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,c(!(E.isJabraEnabled=!1))}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):c(!0))};var e=[h.network.get({type:"turn",nolimit:!0}).$promise,h.network.get({type:"stun",nolimit:!0}).$promise];o.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();c.voicePause&&c.phoneBarDnd&&(r=!1);var m=e.request.getHeader("Call-Type")||"";if(c.ignorePauseForPreviewCalls&&"PREVIEW"===m&&(r=!0),E.originateInProgress&&(r=!1),r&&(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&&g(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 u=0==d?500:1e3*d;console.debug("auto answer enabled after:"+u+" ms"),g(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},u)}}r?(o.call_id=e.request.call_id,n&&L(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&&L(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),g(function(){p.$apply(),console.debug("onNewRTCSession -> vm_pb.sessions",E.sessions)})):I(o,486)}.bind(this)),r.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)),r.on("webbar:hangup",function(e){console.debug("hangupHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(P(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)),r.on("webbar:answer",function(e){var n;console.debug("answerHook -> payload",e),n=e.sessionId?P(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)),r.on("webbar:hold",function(e){console.debug("holdHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(P(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)),r.on("webbar:unhold",function(e){if(console.debug("holdHook -> payload",e),e.sessionId){var n=P(e.sessionId);n?E.unhold(n):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("sessionId required")}.bind(this)),r.on("webbar:transfer",function(e){if(console.debug("transferHook -> payload",e),e.sessionId)if(e.transferNumber){var n=P(e.sessionId);n?n.refer(e.transferNumber,{eventHandlers:{requestSucceeded:D(n,"requestSucceeded","top right",3e3),requestFailed:D(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)),r.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,p.$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 x(e=(e=e.replace(/\(/g,"")).replace(/\)/g,"")).then(function(e){e&&E.ua.call(e,E.sessionConf)}).then(function(){m()})}},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 x(e.replace(/ /g,"").replace(/\(/g,"").replace(/\)/g,""))}).then(function(e){n.refer(e,{eventHandlers:{requestSucceeded:D(n,"requestSucceeded","top right",3e3),requestFailed:D(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,p.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)):E.target?p.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target):m():m()},E.targetSelected=function(e){e&&(E.target=e.originalObject.target,E.call(),m())},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(){N()},1e3)},!1);var a=E.sessions[1].connection.getSenders()[0],i=E.sessions[1].connection.getReceivers()[0];i.track.addEventListener("unmute",function(){setTimeout(function(){N()},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=N,p.$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,c(E.isJabraEnabled=!1)}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):c(!1)))})}),p.$on("webrtc::logout",function(){E.ua.stop(),jabra&&E.isJabraInitialized&&jabra.shutdown(),navigator.mediaDevices.ondevicechange=function(){}}),p.$on("webrtc::call",function(e,n){console.debug("onRemoteCall -> evt, data",e,n),n.target&&(E.target=n.target,E.call())}),p.$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 x(n.target).then(function(e){e&&E.sessions[t].refer(e,{eventHandlers:{requestSucceeded:D(E.sessions[t],"requestSucceeded","top right",3e3),requestFailed:D(E.sessions[t],"requestFailed","top right",3e3)}})})}),p.$on("$destroy",function(){console.debug("$destroy event fired"),r.removeAllListeners("webbar:originate"),r.removeAllListeners("webbar:hangup"),r.removeAllListeners("webbar:answer"),r.removeAllListeners("webbar:hold"),r.removeAllListeners("webbar:unhold"),r.removeAllListeners("webbar:transfer"),r.removeAllListeners("webbar:stopmonitors")})}e.$inject=["$scope","$document","$timeout","$interval","$mdDialog","$mdToast","$window","$translate","$http","$q","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("getOptionByValue",function(){return function(e,n,t){if(void 0===e)return"";if(!n)return"";t||(t="option");var a=_.find(n,["value",e]);return a?a[t]:""}})}(),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(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});return l.cmContact.get({id:c.contact.id,attributes:n,raw:!0}).$promise.then(function(e){c.contact=_.merge(c.contact,e)})}}).then(function(){c.customFields.rows.forEach(function(e){"datetime"===e.type&&c.contact["cf_"+e.id]&&(c.contact["cf_"+e.id]=u(c.contact["cf_"+e.id]))}),Object.keys(c.contact).forEach(function(e){if(_.startsWith(e,"cf_")){var n=e.split("_")[1];_.some(c.customFields.rows,["id",Number(n)])||delete c.contact["cf_"+n]}})}).catch(function(e){console.error(e)});c.customFields={rows:[],count:0}}function u(e){return null===e?void 0:new Date(e)}function p(){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,m(c.contact.ListId)):(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!":""}),p()}).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!":""}),p()}).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!":""}),p()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})},c.closeDialog=p,c.getCustomFields=m,c.getDateFromString=u}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,t,i,s,o,e,a,r,l,d,c,m,u){var p=this;function g(){return i(function(n,e){o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name,dialActive,dialMethod",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){p.queueCampaigns=e||{count:0,rows:[]},n()}).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()})})})}function v(){var e=p.selectedDisposition?p.selectedDisposition.name.toLowerCase():void 0;return{id:p.call.uniqueid,disposition:p.firstLevelDisposition?p.firstLevelDisposition.name:null,secondDisposition:p.secondLevelDisposition?p.secondLevelDisposition.name:null,thirdDisposition:p.thirdLevelDisposition?p.thirdLevelDisposition.name:null,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e,recallme:"recallme"===e,UserId:"recallme"===e?d.getCurrentUser().id:null,OwnerId:d.getCurrentUser().id}}function h(e){t.hide([e,p.autoClose])}p.user=d.getCurrentUser(),p.isReschedule=!1,p.recallme=!1,p.queueCampaign=void 0,p.queueCampaigns={count:0,rows:[]},p.dispositions=_.orderBy(_.concat([],e.rows,a.rows),["name"],["asc"]),p.contact=l,p.call=r,p.note=p.call.note||void 0,p.dialerCall=!1,p.hasBlackLists=!1,p.availableCalls=m,p.autoClose=u,p.hopper={minDate:new Date,dateTime:new Date},p.call&&p.call.variables&&p.call.variables["xmd-voicequeueid"]?(p.dialerCall=!0,o.voiceQueue.getBlackLists({id:p.call.variables["xmd-voicequeueid"]}).$promise.then(function(e){e&&e.rows&&0<e.rows.length&&(p.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()})})):g(),p.onDispositionChange=function(e){switch(e){case"first":p.selectedDisposition=p.firstLevelDisposition,p.anySecondLevelDisposition=_.some(p.dispositions,["ParentId",p.firstLevelDisposition.id]),p.secondLevelDisposition=void 0,p.thirdLevelDisposition=void 0,p.anyThirdLevelDisposition=!1;break;case"second":p.selectedDisposition=p.secondLevelDisposition,p.anyThirdLevelDisposition=_.some(p.dispositions,["ParentId",p.secondLevelDisposition.id]);break;case"third":p.selectedDisposition=p.thirdLevelDisposition}},p.clearDispositionSelection=function(e){"second"===e?(p.secondLevelDisposition=void 0,p.thirdLevelDisposition=void 0,p.selectedDisposition=p.firstLevelDisposition):"third"===e&&(p.thirdLevelDisposition=void 0,p.selectedDisposition=p.secondLevelDisposition)},p.saveDisposition=function(e){p.selectedDisposition=_.isNil(e)?p.selectedDisposition:{name:e},e&&(p.firstLevelDisposition=p.selectedDisposition);p.call.note=p.note,o.voiceCallReport.update({id:p.call.uniqueid,userDisposition:p.firstLevelDisposition?p.firstLevelDisposition.name:null,userSecondDisposition:p.secondLevelDisposition?p.secondLevelDisposition.name:null,userThirdDisposition:p.thirdLevelDisposition?p.thirdLevelDisposition.name:null,note:p.note,UserId:d.getCurrentUser().id,ContactId:p.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:p.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:p.firstLevelDisposition?p.firstLevelDisposition.name:null,userSecondDisposition:p.secondLevelDisposition?p.secondLevelDisposition.name:null,userThirdDisposition:p.thirdLevelDisposition?p.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()})}),p.dialerCall&&(o.cmHopperFinal.update(v()).$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(v()).$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(p.selectedDisposition))h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"");else switch(p.selectedDisposition.name.toLowerCase()){case"blacklist":p.call&&p.call.variables&&p.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(p.contact);delete a.id,a.ListId=e.rows[t].id,n.push(o.cmContact.save(a).$promise)}return i.all(n)}s.success({title:c.instant("DASHBOARDS.INFO"),msg:c.instant("DASHBOARDS.NOTAVAILABLE")+" "+p.selectedDisposition}),p.selectedDisposition=void 0}).then(function(e){e&&h(p.selectedDisposition?p.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()}),h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")})}(p.call.variables["xmd-voicequeueid"]);break;case"reschedule":p.isReschedule=!0,p.recallme=!1;break;case"recallme":p.isReschedule=!0,p.recallme=!0,p.user.selectRecallMeCampaign&&g().then(function(){p.originalCampaign=_.find(p.queueCampaigns.rows,["id",p.call.variables["xmd-voicequeueid"]]);var e=JSON.parse(n.localStorage.getItem("motion2.user:"+p.user.id));p.queueCampaign=e.previewCampaignId?_.find(p.queueCampaigns.rows,["id",Number(e.previewCampaignId)]):p.originalCampaign});break;default:h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")}},p.closeDialog=function(){t.cancel()},p.saveReschedule=function(){p.disable=!0;var e=p.queueCampaign?p.queueCampaign.id:null;p.dialerCall&&(e=p.queueCampaign&&"preview"===p.originalCampaign.dialMethod?p.queueCampaign.id:Number(p.call["xmd-voicequeueid"]));return o.cmHopper.save({phone:p.contact.phone,UserId:p.recallme?d.getCurrentUser().id:null,ContactId:p.contact.id,ListId:p.contact.ListId,VoiceQueueId:e,scheduledat:moment(p.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:p.recallme,OwnerId:d.getCurrentUser().id}).$promise.then(function(){if(p.dialerCall&&(o.cmHopperFinal.update({id:p.call.uniqueid,rescheduled:!0,rescheduledat:moment(p.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:p.recallme}).$promise.catch(function(e){console.log(e)}),p.user.selectRecallMeCampaign&&"preview"===p.originalCampaign.dialMethod)){var e=JSON.parse(n.localStorage.getItem("motion2.user:"+p.user.id));e.previewCampaignId=p.queueCampaign.id,n.localStorage.setItem("motion2.user:"+p.user.id,JSON.stringify(e))}}).then(function(){s.success({title:c.instant("DASHBOARDS.INFO"),msg:c.instant("DASHBOARDS.CALL_DISPOSED")+" "+(p.recallme?c.instant("DASHBOARDS.RECALLME"):c.instant("DASHBOARDS.RESCHEDULE"))})}).catch(function(e){h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")}).finally(function(){p.disable=!1,h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")})}}e.$inject=["$window","$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&&T(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(e){if(e){var n="loading...";if("in"!==e.direction)return e.UserId?e.sender=h.usersMap?h.usersMap[e.UserId]:n:e.sender="System";var t=e.Contact||e.contact;return e.sender=t?t.firstName||"Anonymous":n}}function T(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 I(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 C(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){e&&(h.BTNLoadMore=e.count-h.queryMessage.limit),h.messages=e||{count:0,rows:[]};for(var n=0;n<h.messages.count;n++)S(h.messages.rows[n]);return 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&&C(),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):I()))}))},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&&T(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&&T(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&&T(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&&T(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=I,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;T(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>");T({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):(S(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=C,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)S(e.rows[n]),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(C(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,dialPreviewAutoRecallMe",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,a,t,i,s,o,r,l,d,c,m,u){var p=this;function g(e){p.agents=e||{count:0,rows:[]}}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(p.agents.rows,{id:e.id}),p.agents.count-=1,p.agents.rows.length||p.getAgents(),d.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){p.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];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:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}p.license=m,p.setting=u,p.currentUser=c.getCurrentUser(),p.agents=s||{count:0,rows:[]},p.userProfile=o,p.userProfileSection=r&&1==r.count?r.rows[0]:null,p.crudPermissions=c.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedAgents=[],p.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,selectRecallMeCampaign,ignorePauseForPreviewCalls",role:"agent",sort:"-updatedAt",limit:10,page:1},p.showWebBarOptions=[{option:"Phonebar",value:0},{option:"External",value:1},{option:"WebRTC",value:2}],p.editstate=function(e){n.go("app.staff.agents.edit",{id:e.id,agent:e,crudPermissions:p.crudPermissions})},p.teamadddialog=function(e,n){a.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:p.agents?p.agents.rows:[],crudPermissions:p.crudPermissions}})},p.deleteconfirm=function(e,n){var t=a.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");a.show(t).then(function(){v(e)})},p.success=g,p.getAgents=function(){p.query.offset=(p.query.page-1)*p.query.limit,c.hasRole("admin")?p.promise=l.user.get(p.query,g).$promise:(p.query.id=p.userProfile.id,p.query.section="Agents",p.promise=l.userProfile.getResources(p.query,g).$promise)},p.createOrEditAgent=function(e,n){a.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:n,agents:p.agents.rows,license:p.license,setting:p.setting,crudPermissions:p.crudPermissions}})},p.deleteAgent=v,p.exportSelectedAgents=function(){var e=angular.copy(p.selectedAgents);return p.selectedAgents=[],e},p.deleteSelectedAgents=function(e){var n=a.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+p.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){p.selectedAgents.forEach(function(e){v(e)}),p.selectedAgents=[]})},p.deselectAgents=function(){p.selectedAgents=[]},p.selectAllAgents=function(){p.selectedAgents=p.agents.rows};var h=!0,f=1;e.$watch("vm.query.filter",function(e,n){h?i(function(){h=!1}):(n||(f=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=f),p.getAgents())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","agents","userProfile","userProfileSection","api","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()})})))):("mail"===u.trigger.channel&&c.mailSubstatus.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.mailSubstatuses=e.rows||[]}).catch(function(){d.error({title:a.instant("MAIL.SUBSTATUSES"),msg:a.instant("MAIL.NOTIFICATIONS.SUBSTATUSES_GET_ERROR")})}),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",mailSubstatus:"Mail_Substatus"},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()})})}();break;case"mailSubstatus":d.mailSubstatus.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){p.mailSubstatuses=e.rows||[]}).catch(function(){i.error({title:a.instant("MAIL.SUBSTATUSES"),msg:a.instant("MAIL.NOTIFICATIONS.SUBSTATUSES_GET_ERROR")})})}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()})})))):("mail"===u.trigger.channel&&c.mailSubstatus.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.mailSubstatuses=e.rows||[]}).catch(function(){d.error({title:a.instant("MAIL.SUBSTATUSES"),msg:a.instant("MAIL.NOTIFICATIONS.SUBSTATUSES_GET_ERROR")})}),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",mailSubstatus:"Mail_Substatus"},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()})})}();break;case"mailSubstatus":d.mailSubstatus.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){p.mailSubstatuses=e.rows||[]}).catch(function(){i.error({title:a.instant("MAIL.SUBSTATUSES"),msg:a.instant("MAIL.NOTIFICATIONS.SUBSTATUSES_GET_ERROR")})})}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(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,e.toJSON()),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"]}}]},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.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,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",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,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){var l=this;function d(e){_.isNil(e)&&s.cmHopper.update({id:l.preview.id,UserId:null}),a.hide()}l.customFieldsMap=r&&r.rows?_.mapValues(_.keyBy(r.rows,function(e){return"cf_"+e.id}),"name"):{},l.errors=[],l.hopperIds=[],l.preview=o,l.originated=!1,l.disable=!1,l.disableGetContact=!1,l.hopperIds.push(l.preview.id),l.originatePreview=function(){l.originated=!0,l.disable=!0,_.isEmpty(l.preview)?(i.error({title:"Message",msg:"Contact not available"}),l.disable=!1,l.hopperIds=[],d(!0)):s.rpc.getVoiceQueuesPreview({id:l.preview.id}).$promise.then(function(e){d(!0)}).catch(function(e){i.error({title:"Message",msg:e.data}),d(!0)}).finally(function(){l.disable=!1,l.hopperIds=[]})},l.closeDialog=d,l.nextContact=function(){return l.disableGetContact=!0,s.cmHopper.getPreview({hopperIds:l.hopperIds,direction:"next"}).$promise.then(function(e){l.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(l.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(l.originated||s.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e,l.hopperIds.push(l.preview.id))}).catch(function(e){if(l.disableGetContact=!1,l.hopperIds=[],404===e.status)l.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()})})},l.previousContact=function(){if(l.disableGetContact=!0,1<l.hopperIds.length){var e=_.without(l.hopperIds,l.preview.id);return s.cmHopper.getPreview({hopperIds:e,direction:"prev"}).$promise.then(function(e){l.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(l.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(_.remove(l.hopperIds,function(e){return e==l.preview.id}),l.originated||s.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e)}).catch(function(e){if(404===e.status)l.hopperIds=[l.preview.id],i.info({title:"PREVIEW",msg:"PREVIOUS CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){l.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 l.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()})})}},l.getFirstAvailableContact=function(){return l.disableGetContact=!0,i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE. REWINDING THE LIST"}),s.cmHopper.getPreview({hopperIds:[l.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"})):(l.originated||s.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e,l.hopperIds.push(l.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(){l.disableGetContact=!1})},l.isCustomField=function(e){return _.startsWith(e,"cf_")},l.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)},l.isNil=function(e){return _.isNil(e)},e.$on("$destroy",function(){l.originated||s.cmHopper.update({id:l.preview.id,UserId:null})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","preview","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-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 <div> \n \x3c!-- ng-model="customField.value" --\x3e\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\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 || vm.user.selectRecallMeCampaign" 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 <md-icon md-font-icon="icon-checkbox-blank-circle" ng-class="{\'green-fg\': queueCampaign.dialActive}" aria-label="Status">\n </md-icon>\n {{ queueCampaign.name }}\n </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>{{ message.sender }}</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>{{ message.sender }}</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>{{ message.sender }}</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 <md-input-container ng-if="vm.queueCampaign.dialMethod == \'preview\'" class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialPreviewAutoRecallMe" aria-label="Preview_Auto_Recall_Me" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.PREVIEW_AUTO_RECALL_ME">Preview_Auto_Recall_Me</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREVIEW_AUTO_RECALL_ME"></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 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"><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">{{ agent.showWebBar | getOptionByValue: vm.showWebBarOptions }}</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 \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 \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="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 </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 <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.ignorePauseForPreviewCalls" aria-label="Ignore agent break status for preview calls" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.IGNORE_AGENT_BREAK_STATUS_FOR_PREVIEW_CALLS">Ignore agent break status for preview calls</span></md-switch>\n </md-input-container>\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.selectRecallMeCampaign" aria-label="Select_RecallMe_Campaign" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.SELECT_RECALLME_CAMPAIGN">Select_RecallMe_Campaign</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 </div>\n \x3c!-- / CONTENT --\x3e\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)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'mailSubstatus\'" md-cell>\n {{ (vm_dc.mailSubstatuses | filter : {\'name\': allCondition.value } : true)[0].name }} \n </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\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-option ng-value="\'mailSubstatus\'" ng-if="vm.trigger.channel == \'mail\'"> {{ \'TOOLS.MAIL_SUBSTATUS\' | 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 == \'mailSubstatus\'" 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="mailSubstatus.name" ng-repeat="mailSubstatus in vm.mailSubstatuses">\n {{ mailSubstatus.name }}</md-option>\n <md-option ng-value="\'null\'">None</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-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.createOrEditAllCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'mailSubstatus\'" md-cell>\n {{ (vm_dc.mailSubstatuses | filter : {\'name\': anyCondition.value } : true)[0].name }} \n </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-option ng-value="\'mailSubstatus\'" ng-if="vm.trigger.channel == \'mail\'"> {{ \'TOOLS.MAIL_SUBSTATUS\' | 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 == \'mailSubstatus\'" 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="mailSubstatus.name" ng-repeat="mailSubstatus in vm.mailSubstatuses">\n {{ mailSubstatus.name }}</md-option>\n <md-option ng-value="\'null\'">None</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-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 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">{{ (\'TOOLBAR.PREVIEW\' | translate) + (vm.preview.recallme ? \' - \' +\n (\'CONTACTMANAGER.RECALLME\' | translate | uppercase) : \'\') }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-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.preview">\n <div ng-if="vm.preview.recallme" layout="row" class="recall-me-info">\n <md-icon md-font-icon="icon-information-outline" aria-label="Recall Me"></md-icon>\n <p class="ml-5" translate="TOOLBAR.HELP.PREVIEW_RECALLME" translate-values="{ date: (vm.preview.scheduledat | date:\'short\') }" flex></p>\n </div>\n <div layout="row">\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">\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>\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(s,o,e,t){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 l(n){return e[n.model][n.action](n.params).$promise.then(function(e){if("autocomplete"!==r.selectedField.type)return 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=e[r.selectedField.options.searchFields[n]]||"";e.displayValue+=t+" "}return _.trimEnd(e.displayValue),_.includes(e.displayValue.toLowerCase(),r.searchText.toLowerCase())}):[];return o.when(n)}).catch(function(e){t.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()})})}function a(){!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 i(){"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),a()}function d(){var e=m();r.options.conditions.push(e),p()}function c(){var e=m(),n=_.findIndex(r.options.conditions,"style");r.options.conditions.splice(n,1,e),p(),r.pendingCondition.style=null,r.pendingCondition=void 0}function m(){return{name:r.selectedField.name,operator:s.instant("DASHBOARDS."+r.selectedOperator.translate),value:r.value,endValue:r.endRangeValue,displayValue:u(r.value),displayEndValue:u(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||"name";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 u(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 p(){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=d,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=c,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(){{if(r.selectedField.options.routes&&Array.isArray(r.selectedField.options.routes)){var e=angular.copy(r.selectedField.options.routes),n=_.map(e,function(e){return l(e)});return o.all(n).then(function(e){r.selectedField.values=_.flatten(e)})}var t=angular.copy(r.selectedField.options.route);if("autocomplete"===r.selectedField.type)for(var a=0;a<Object.keys(t.params).length;a++){var i=Object.keys(t.params)[a];"@autocomplete"===t.params[i]&&(t.params[i]=r.searchText)}if(!r.selectedField.values)return l(t).then(function(e){r.selectedField.values=_.flatten(e)});r.selectedField.values.forEach(function(e){e.translate&&(e.name=s.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})));a()},r.onValueChange=function(){r.selectedOperator&&"$between"===r.selectedOperator.type?"number"===r.selectedField.type?i():"date"===r.selectedField.type&&(r.minDateRange=moment(r.value).add(1,"day"),a()):a()},r.checkRange=i,r.handleKeyboardAction=function(){r.pendingCondition?c():d()}}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"]}},{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.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(n){var e=[{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:n,MailAccountId:"null",SmsAccountId:"null",ChatWebsiteId:"null",OpenchannelAccountId:"null",WhatsappAccountId:"null",FaxAccountId:"null",ListId:"null",nolimit:!0}}],t=_.map(c.chatAccounts.rows,function(e){return{model:"chatWebsite",action:"getDispositions",field:"name",params:{id:e.id,field:"name,level",level:n,nolimit:!0}}});return _.concat(t,e)}function u(e){!c.reloadingInteractions&&0<c.setting.chatInteractionsReloadTimeout&&E(!0),c.searchInProgress=!1,c.reloadingInteractions=!1,c.chatInteractions=e||{count:0,rows:[]};for(var n=0;n<c.chatInteractions.rows.length;n+=1)g(c.chatInteractions.rows[n])}function p(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,u).$promise}function g(e){"Unknown"===e.contactName&&(e.contactName=o.instant("DASHBOARDS.UNKNOWN"))}function v(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 h(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(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&&p(c.query.page)}}function b(e){if(e){var n=_.find(c.chatInteractions.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(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 E(e){e&&c.interactionsInterval&&n.cancel(c.interactionsInterval),c.interactionsInterval=n(function(){c.reloadingInteractions=!0,c.searchInProgress||p()},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.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"}],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:{routes:m("first")}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{routes:m("second")}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{routes:m("third")}}]}}).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",f),l.on("chatInteraction:update",f),l.on("chatInteractionTags:save",b),l.on("chatMessage:save",A),l.on("chatMessage:update",A),l.on("user_has_chat_interactions:save",v),l.on("user_has_chat_interactions:remove",h),p(c.query.page),0<c.setting.chatInteractionsReloadTimeout&&E()})},c.success=u,c.getChatInteractions=p,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=g,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,p())}).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(n){var e=[{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:n,MailAccountId:"null",SmsAccountId:"null",ChatWebsiteId:"null",OpenchannelAccountId:"null",WhatsappAccountId:"null",FaxAccountId:"null",ListId:"null",nolimit:!0}}],t=_.map(m.faxAccounts.rows,function(e){return{model:"faxAccount",action:"getDispositions",field:"name",params:{id:e.id,field:"name,level",level:n,nolimit:!0}}});return _.concat(t,e)}function p(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||g()},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)v(m.faxInteractions.rows[n])}function g(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,p).$promise}function v(e){e.contactInfo=e.Contact?e.Contact.fax:void 0,"Unknown"===e.contactName&&(e.contactName=n.instant("DASHBOARDS.UNKNOWN"))}function h(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 f(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function b(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 g(m.query.page)}}function A(e){if(e){var n=_.find(m.faxInteractions.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(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.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"}],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:{routes:u("first")}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{routes:u("second")}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{routes:u("third")}}]}}).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",b),l.on("faxInteraction:update",b),l.on("faxInteractionTags:save",A),l.on("faxMessage:save",E),l.on("faxMessage:update",E),l.on("user_has_fax_interactions:save",h),l.on("user_has_fax_interactions:remove",f),g(m.query.page)})},m.success=p,m.getFaxInteractions=g,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=v,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,g())}).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(n){var e=[{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:n,MailAccountId:"null",SmsAccountId:"null",ChatWebsiteId:"null",OpenchannelAccountId:"null",WhatsappAccountId:"null",FaxAccountId:"null",ListId:"null",nolimit:!0}}],t=_.map(u.mailAccounts.rows,function(e){return{model:"mailAccount",action:"getDispositions",field:"name",params:{id:e.id,field:"name,level",level:n,nolimit:!0}}});return _.concat(t,e)}function p(e){!u.reloadingInteractions&&0<u.setting.mailInteractionsReloadTimeout&&S(!0),u.searchInProgress=!1,u.reloadingInteractions=!1,u.mailInteractions=e||{count:0,rows:[]};for(var n=0;n<u.mailInteractions.rows.length;n+=1)h(u.mailInteractions.rows[n])}function g(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,p).$promise}function v(e,n){o.$parent.vm.addInteractionTab("mail",n)}function h(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 f(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 b(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function A(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&&g(u.query.page)}}function E(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function y(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 S(e){e&&u.interactionsInterval&&n.cancel(u.interactionsInterval),u.interactionsInterval=n(function(){u.reloadingInteractions=!0,u.searchInProgress||g()},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.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"}],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:{routes:s("first")}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{routes:s("second")}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{routes:s("third")}}]}}).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",A),i.on("mailInteraction:update",A),i.on("mailInteractionTags:save",E),i.on("mailMessage:save",y),i.on("mailMessage:update",y),i.on("user_has_mail_interactions:save",f),i.on("user_has_mail_interactions:remove",b),g(u.query.page),0<u.setting.mailInteractionsReloadTimeout&&S()})},u.success=p,u.getMailInteractions=g,u.showMailInteraction=v,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=h,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,g())}).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,v(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(n){var e=[{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:n,MailAccountId:"null",SmsAccountId:"null",ChatWebsiteId:"null",OpenchannelAccountId:"null",WhatsappAccountId:"null",FaxAccountId:"null",ListId:"null",nolimit:!0}}],t=_.map(m.openchannelAccounts.rows,function(e){return{model:"openchannelAccount",action:"getDispositions",field:"name",params:{id:e.id,field:"name,level",level:n,nolimit:!0}}});return _.concat(t,e)}function p(e){!m.reloadingInteractions&&0<m.setting.openchannelInteractionsReloadTimeout&&y(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.openchannelInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelInteractions.rows.length;n+=1)v(m.openchannelInteractions.rows[n])}function g(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,p).$promise}function v(e){"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function h(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 f(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function b(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&&g(m.query.page)}}function A(e){if(e){var n=_.find(m.openchannelInteractions.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(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 y(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||g()},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.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"}],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:{routes:u("first")}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{routes:u("second")}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{routes:u("third")}}]}}).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",b),l.on("openchannelInteraction:update",b),l.on("openchannelInteractionTags:save",A),l.on("openchannelMessage:save",E),l.on("openchannelMessage:update",E),l.on("user_has_openchannel_interactions:save",h),l.on("user_has_openchannel_interactions:remove",f),g(m.query.page),0<m.setting.openchannelInteractionsReloadTimeout&&y()})},m.success=p,m.getOpenchannelInteractions=g,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=v,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,g())}).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(n){var e=[{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:n,MailAccountId:"null",SmsAccountId:"null",ChatWebsiteId:"null",OpenchannelAccountId:"null",WhatsappAccountId:"null",FaxAccountId:"null",ListId:"null",nolimit:!0}}],t=_.map(m.smsAccounts.rows,function(e){return{model:"smsAccount",action:"getDispositions",field:"name",params:{id:e.id,field:"name,level",level:n,nolimit:!0}}});return _.concat(t,e)}function p(e){!m.reloadingInteractions&&0<m.setting.smsInteractionsReloadTimeout&&y(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.smsInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsInteractions.rows.length;n+=1)v(m.smsInteractions.rows[n])}function g(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,p).$promise}function v(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function h(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 f(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function b(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&&g(m.query.page)}}function A(e){if(e){var n=_.find(m.smsInteractions.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(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 y(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||g()},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.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"}],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:{routes:u("first")}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{routes:u("second")}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{routes:u("third")}}]}}).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",b),l.on("smsInteraction:update",b),l.on("smsInteractionTags:save",A),l.on("smsMessage:save",E),l.on("smsMessage:update",E),l.on("user_has_sms_interactions:save",h),l.on("user_has_sms_interactions:remove",f),g(m.query.page),0<m.setting.smsInteractionsReloadTimeout&&y()})},m.success=p,m.getSmsInteractions=g,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=v,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,g())}).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(n){var e=[{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:n,MailAccountId:"null",SmsAccountId:"null",ChatWebsiteId:"null",OpenchannelAccountId:"null",WhatsappAccountId:"null",FaxAccountId:"null",ListId:"null",nolimit:!0}}],t=_.map(m.whatsappAccounts.rows,function(e){return{model:"whatsappAccount",action:"getDispositions",field:"name",params:{id:e.id,field:"name,level",level:n,nolimit:!0}}});return _.concat(t,e)}function p(e){!m.reloadingInteractions&&0<m.setting.whatsappInteractionsReloadTimeout&&y(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.whatsappInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappInteractions.rows.length;n+=1)v(m.whatsappInteractions.rows[n])}function g(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,p).$promise}function v(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function h(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 f(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function b(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&&g(m.query.page)}}function A(e){if(e){var n=_.find(m.whatsappInteractions.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(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 y(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||g()},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.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"}],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:{routes:u("first")}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{routes:u("second")}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{routes:u("third")}}]}}).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",b),l.on("whatsappInteraction:update",b),l.on("whatsappInteractionTags:save",A),l.on("whatsappMessage:save",E),l.on("whatsappMessage:update",E),l.on("user_has_whatsapp_interactions:save",h),l.on("user_has_whatsapp_interactions:remove",f),g(m.query.page),0<m.setting.whatsappInteractionsReloadTimeout&&y()})},m.success=p,m.getWhatsappInteractions=g,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=v,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,g())}).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"]}},{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.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){var n=[{model:"disposition",action:"get",field:"name",params:{field:"name,level",level:e,MailAccountId:"null",SmsAccountId:"null",ChatWebsiteId:"null",OpenchannelAccountId:"null",WhatsappAccountId:"null",FaxAccountId:"null",ListId:"null",nolimit:!0}}],t=[{model:"mailAccount",action:"getDispositions",field:"name",params:{id:m.mailAccount.id,field:"name,level",level:e,nolimit:!0}}];return _.concat(t,n)}function p(e){m.mailAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.mailAccountInteractions.rows.length;n+=1){var t=m.mailAccountInteractions.rows[n];h(t),t.Owner.name=f(t)}}function g(){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,p).$promise}function v(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||g(),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 h(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 f(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"]}},{name:"Disposition",column:"disposition",type:"multiselect",options:{routes:u("first")}},{name:"Second Disposition",column:"secondDisposition",type:"multiselect",options:{routes:u("second")}},{name:"Third Disposition",column:"thirdDisposition",type:"multiselect",options:{routes:u("third")}}]},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(){v(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=p,m.getMailAccountInteractions=g,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,g()}}).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=v,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){v(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"]}},{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.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"]}},{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.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-dialog-content .recall-me-info{position:relative;overflow-y:hidden;overflow-x:auto;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.12);min-height:64px;padding:8px 8px 8px 16px}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 _0x0deb=['contactManager[autoCreate(0=No,1=Yes)],\x20urlForward[URL],\x20script[type],\x20integration[AccountId],\x20motionbar[TemplateId,URL,WinAppPath],\x20browser[TemplateId,URL]','browser[location(0=NewTab,1=NewWindow,2=MotionTab)],\x20contactManager[autoCreateField]','urlForward[headers],\x20browser[wsindowHeight]','TEXT','sequelize','exports','VIRTUAL','action','STRING','contactManager','integration','motionbar','jscripty','urlForward','bot','Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script','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)]'];(function(_0x5bd426,_0x4878e5){var _0x23a7eb=function(_0x594b42){while(--_0x594b42){_0x5bd426['push'](_0x5bd426['shift']());}};_0x23a7eb(++_0x4878e5);}(_0x0deb,0xe1));var _0xb0de=function(_0x5caed0,_0x1daf33){_0x5caed0=_0x5caed0-0x0;var _0x159c04=_0x0deb[_0x5caed0];return _0x159c04;};'use strict';var Sequelize=require(_0xb0de('0x0'));module[_0xb0de('0x1')]={'name':{'type':Sequelize[_0xb0de('0x2')],'get':function(_0x8204cd){return this['getDataValue'](_0xb0de('0x3'));}},'action':{'type':Sequelize[_0xb0de('0x4')],'allowNull':![],'validate':{'isIn':{'args':[[_0xb0de('0x5'),_0xb0de('0x6'),_0xb0de('0x7'),_0xb0de('0x8'),_0xb0de('0x9'),'browser',_0xb0de('0xa'),'script']],'msg':_0xb0de('0xb')}},'comment':_0xb0de('0xb')},'data1':{'type':Sequelize[_0xb0de('0x4')](0x1000),'comment':_0xb0de('0xc')},'data2':{'type':Sequelize[_0xb0de('0x4')](0x1000),'comment':_0xb0de('0xd')},'data3':{'type':Sequelize[_0xb0de('0x4')](0x1000),'comment':'contactManager[searchFields],\x20script[script],\x20integration[ConfigurationId],\x20motionbar[NULL,eventVariables(0=No,1=Yes),WinAppArguments],\x20browser[NULL,eventVariables(0=No,1=Yes)]'},'data4':{'type':Sequelize['STRING'](0x1000),'comments':_0xb0de('0xe')},'data5':{'type':Sequelize[_0xb0de('0x4')](0x1000),'comments':'urlForward[timeout],\x20browser[windowWidth],\x20contactManager[ignoreDialerContactId]'},'data6':{'type':Sequelize['STRING'],'comments':_0xb0de('0xf')},'data7':{'type':Sequelize[_0xb0de('0x10')],'comments':'urlForward[body]'}};
\ No newline at end of file
+var _0x2675=['urlForward[timeout],\x20browser[windowWidth]','urlForward[headers],\x20browser[wsindowHeight]','urlForward[body]','sequelize','getDataValue','action','contactManager','integration','jscripty','urlForward','browser','bot','script','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]'];(function(_0x1d9c0d,_0x4634e1){var _0x35bb6f=function(_0x72bf1a){while(--_0x72bf1a){_0x1d9c0d['push'](_0x1d9c0d['shift']());}};_0x35bb6f(++_0x4634e1);}(_0x2675,0x75));var _0x5267=function(_0x14c552,_0x9a0dee){_0x14c552=_0x14c552-0x0;var _0x29dbef=_0x2675[_0x14c552];return _0x29dbef;};'use strict';var Sequelize=require(_0x5267('0x0'));module['exports']={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x4f8fae){return this[_0x5267('0x1')](_0x5267('0x2'));}},'action':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'isIn':{'args':[[_0x5267('0x3'),_0x5267('0x4'),'motionbar',_0x5267('0x5'),_0x5267('0x6'),_0x5267('0x7'),_0x5267('0x8'),_0x5267('0x9')]],'msg':_0x5267('0xa')}},'comment':'Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script'},'data1':{'type':Sequelize[_0x5267('0xb')](0x1000),'comment':_0x5267('0xc')},'data2':{'type':Sequelize['STRING'](0x1000),'comment':_0x5267('0xd')},'data3':{'type':Sequelize['STRING'](0x1000),'comment':_0x5267('0xe')},'data4':{'type':Sequelize[_0x5267('0xb')](0x1000),'comments':_0x5267('0xf')},'data5':{'type':Sequelize['STRING'](0x1000),'comments':_0x5267('0x10')},'data6':{'type':Sequelize['STRING'],'comments':_0x5267('0x11')},'data7':{'type':Sequelize['TEXT'],'comments':_0x5267('0x12')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd76a=['status','end','json','offset','undefined','limit','count','set','apply','reject','update','then','destroy','error','stack','name','send','body','Action','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','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','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x1cd3e3,_0xbeb106){var _0x4a3336=function(_0x2a385d){while(--_0x2a385d){_0x1cd3e3['push'](_0x1cd3e3['shift']());}};_0x4a3336(++_0xbeb106);}(_0xd76a,0x13a));var _0xad76=function(_0x1ac859,_0xb196e9){_0x1ac859=_0x1ac859-0x0;var _0x553169=_0xd76a[_0x1ac859];return _0x553169;};'use strict';var emlformat=require(_0xad76('0x0'));var rimraf=require(_0xad76('0x1'));var zipdir=require(_0xad76('0x2'));var jsonpatch=require(_0xad76('0x3'));var rp=require(_0xad76('0x4'));var moment=require(_0xad76('0x5'));var BPromise=require(_0xad76('0x6'));var Mustache=require(_0xad76('0x7'));var util=require(_0xad76('0x8'));var path=require('path');var sox=require(_0xad76('0x9'));var csv=require(_0xad76('0xa'));var ejs=require(_0xad76('0xb'));var fs=require('fs');var fs_extra=require(_0xad76('0xc'));var _=require(_0xad76('0xd'));var squel=require(_0xad76('0xe'));var crypto=require(_0xad76('0xf'));var jsforce=require(_0xad76('0x10'));var deskjs=require(_0xad76('0x11'));var toCsv=require(_0xad76('0xa'));var querystring=require(_0xad76('0x12'));var Papa=require(_0xad76('0x13'));var Redis=require(_0xad76('0x14'));var authService=require(_0xad76('0x15'));var qs=require(_0xad76('0x16'));var as=require(_0xad76('0x17'));var hardwareService=require(_0xad76('0x18'));var logger=require(_0xad76('0x19'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xad76('0x1a'));var db=require(_0xad76('0x1b'))['db'];function respondWithStatusCode(_0x266392,_0x3db442){_0x3db442=_0x3db442||0xcc;return function(_0x498ae3){if(_0x498ae3){return _0x266392[_0xad76('0x1c')](_0x3db442);}return _0x266392[_0xad76('0x1d')](_0x3db442)[_0xad76('0x1e')]();};}function respondWithResult(_0x2324e0,_0x3c0490){_0x3c0490=_0x3c0490||0xc8;return function(_0x2061f0){if(_0x2061f0){return _0x2324e0['status'](_0x3c0490)[_0xad76('0x1f')](_0x2061f0);}};}function respondWithFilteredResult(_0x55c0a5,_0x211b9e){return function(_0x1f043a){if(_0x1f043a){var _0x2be8b3=typeof _0x211b9e[_0xad76('0x20')]===_0xad76('0x21')&&typeof _0x211b9e[_0xad76('0x22')]===_0xad76('0x21');var _0x443b8c=_0x1f043a[_0xad76('0x23')];var _0x34308d=_0x2be8b3?0x0:_0x211b9e[_0xad76('0x20')];var _0x33437b=_0x2be8b3?_0x1f043a[_0xad76('0x23')]:_0x211b9e[_0xad76('0x20')]+_0x211b9e[_0xad76('0x22')];var _0xc1c44e;if(_0x33437b>=_0x443b8c){_0x33437b=_0x443b8c;_0xc1c44e=0xc8;}else{_0xc1c44e=0xce;}_0x55c0a5[_0xad76('0x1d')](_0xc1c44e);return _0x55c0a5[_0xad76('0x24')]('Content-Range',_0x34308d+'-'+_0x33437b+'/'+_0x443b8c)['json'](_0x1f043a);}return null;};}function patchUpdates(_0x281bed){return function(_0x6fef8a){try{jsonpatch[_0xad76('0x25')](_0x6fef8a,_0x281bed,!![]);}catch(_0x4fa97f){return BPromise[_0xad76('0x26')](_0x4fa97f);}return _0x6fef8a['save']();};}function saveUpdates(_0x492df3,_0x1a550c){return function(_0x2a7c1c){if(_0x2a7c1c){return _0x2a7c1c[_0xad76('0x27')](_0x492df3)[_0xad76('0x28')](function(_0x38e9b9){return _0x38e9b9;});}return null;};}function removeEntity(_0x1d570a,_0x1f1aa6){return function(_0x550c26){if(_0x550c26){return _0x550c26[_0xad76('0x29')]()[_0xad76('0x28')](function(){_0x1d570a['status'](0xcc)[_0xad76('0x1e')]();});}};}function handleEntityNotFound(_0x336d2c,_0x4d2a05){return function(_0x1449c9){if(!_0x1449c9){_0x336d2c['sendStatus'](0x194);}return _0x1449c9;};}function handleError(_0xd34aa4,_0x233a1e){_0x233a1e=_0x233a1e||0x1f4;return function(_0x4a69b){logger[_0xad76('0x2a')](_0x4a69b[_0xad76('0x2b')]);if(_0x4a69b[_0xad76('0x2c')]){delete _0x4a69b[_0xad76('0x2c')];}_0xd34aa4[_0xad76('0x1d')](_0x233a1e)[_0xad76('0x2d')](_0x4a69b);};}exports[_0xad76('0x27')]=function(_0x4a83fe,_0x510bde){if(_0x4a83fe['body']['id']){delete _0x4a83fe[_0xad76('0x2e')]['id'];}return db[_0xad76('0x2f')]['find']({'where':{'id':_0x4a83fe[_0xad76('0x30')]['id']}})['then'](handleEntityNotFound(_0x510bde,null))['then'](saveUpdates(_0x4a83fe[_0xad76('0x2e')],null))[_0xad76('0x28')](respondWithResult(_0x510bde,null))['catch'](handleError(_0x510bde,null));};exports[_0xad76('0x29')]=function(_0x2b4b12,_0x24a4d2){return db['Action']['find']({'where':{'id':_0x2b4b12['params']['id']}})[_0xad76('0x28')](handleEntityNotFound(_0x24a4d2,null))[_0xad76('0x28')](removeEntity(_0x24a4d2,null))['catch'](handleError(_0x24a4d2,null));};
\ No newline at end of file
+var _0x44dd=['eml-format','rimraf','zip-dir','fast-json-patch','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/license/hardware','../../config/logger','api','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','error','send','body','Action','find','catch','params'];(function(_0x10d811,_0x2871cc){var _0x350e84=function(_0x5bc8af){while(--_0x5bc8af){_0x10d811['push'](_0x10d811['shift']());}};_0x350e84(++_0x2871cc);}(_0x44dd,0x1b0));var _0xd44d=function(_0x18c7b8,_0x5d5bbd){_0x18c7b8=_0x18c7b8-0x0;var _0x37ff13=_0x44dd[_0x18c7b8];return _0x37ff13;};'use strict';var emlformat=require(_0xd44d('0x0'));var rimraf=require(_0xd44d('0x1'));var zipdir=require(_0xd44d('0x2'));var jsonpatch=require(_0xd44d('0x3'));var rp=require('request-promise');var moment=require(_0xd44d('0x4'));var BPromise=require(_0xd44d('0x5'));var Mustache=require(_0xd44d('0x6'));var util=require(_0xd44d('0x7'));var path=require(_0xd44d('0x8'));var sox=require(_0xd44d('0x9'));var csv=require(_0xd44d('0xa'));var ejs=require(_0xd44d('0xb'));var fs=require('fs');var fs_extra=require(_0xd44d('0xc'));var _=require(_0xd44d('0xd'));var squel=require(_0xd44d('0xe'));var crypto=require('crypto');var jsforce=require(_0xd44d('0xf'));var deskjs=require(_0xd44d('0x10'));var toCsv=require(_0xd44d('0xa'));var querystring=require(_0xd44d('0x11'));var Papa=require(_0xd44d('0x12'));var Redis=require(_0xd44d('0x13'));var authService=require(_0xd44d('0x14'));var qs=require(_0xd44d('0x15'));var as=require(_0xd44d('0x16'));var hardwareService=require(_0xd44d('0x17'));var logger=require(_0xd44d('0x18'))(_0xd44d('0x19'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xd44d('0x1a'))['db'];function respondWithStatusCode(_0x9de359,_0x5a0385){_0x5a0385=_0x5a0385||0xcc;return function(_0x4a4a61){if(_0x4a4a61){return _0x9de359[_0xd44d('0x1b')](_0x5a0385);}return _0x9de359['status'](_0x5a0385)[_0xd44d('0x1c')]();};}function respondWithResult(_0x18abfa,_0x4c8681){_0x4c8681=_0x4c8681||0xc8;return function(_0x5dc6a9){if(_0x5dc6a9){return _0x18abfa[_0xd44d('0x1d')](_0x4c8681)[_0xd44d('0x1e')](_0x5dc6a9);}};}function respondWithFilteredResult(_0x548b2e,_0x23d05b){return function(_0x39f306){if(_0x39f306){var _0x5cd52c=typeof _0x23d05b[_0xd44d('0x1f')]===_0xd44d('0x20')&&typeof _0x23d05b['limit']===_0xd44d('0x20');var _0x239352=_0x39f306[_0xd44d('0x21')];var _0x12fa0a=_0x5cd52c?0x0:_0x23d05b['offset'];var _0x1831f9=_0x5cd52c?_0x39f306[_0xd44d('0x21')]:_0x23d05b['offset']+_0x23d05b[_0xd44d('0x22')];var _0x2afce5;if(_0x1831f9>=_0x239352){_0x1831f9=_0x239352;_0x2afce5=0xc8;}else{_0x2afce5=0xce;}_0x548b2e['status'](_0x2afce5);return _0x548b2e[_0xd44d('0x23')](_0xd44d('0x24'),_0x12fa0a+'-'+_0x1831f9+'/'+_0x239352)[_0xd44d('0x1e')](_0x39f306);}return null;};}function patchUpdates(_0x3f1c16){return function(_0x2c582c){try{jsonpatch[_0xd44d('0x25')](_0x2c582c,_0x3f1c16,!![]);}catch(_0x58e28a){return BPromise['reject'](_0x58e28a);}return _0x2c582c[_0xd44d('0x26')]();};}function saveUpdates(_0x41b7c5,_0x43edf2){return function(_0x359c05){if(_0x359c05){return _0x359c05[_0xd44d('0x27')](_0x41b7c5)[_0xd44d('0x28')](function(_0x4e9844){return _0x4e9844;});}return null;};}function removeEntity(_0x15fee7,_0x57056f){return function(_0x186191){if(_0x186191){return _0x186191['destroy']()[_0xd44d('0x28')](function(){_0x15fee7[_0xd44d('0x1d')](0xcc)[_0xd44d('0x1c')]();});}};}function handleEntityNotFound(_0x5e0b24,_0x42e1f4){return function(_0x15ea33){if(!_0x15ea33){_0x5e0b24['sendStatus'](0x194);}return _0x15ea33;};}function handleError(_0x2808f1,_0x49d380){_0x49d380=_0x49d380||0x1f4;return function(_0x2275b2){logger[_0xd44d('0x29')](_0x2275b2['stack']);if(_0x2275b2['name']){delete _0x2275b2['name'];}_0x2808f1[_0xd44d('0x1d')](_0x49d380)[_0xd44d('0x2a')](_0x2275b2);};}exports['update']=function(_0x589e17,_0x435d58){if(_0x589e17[_0xd44d('0x2b')]['id']){delete _0x589e17[_0xd44d('0x2b')]['id'];}return db[_0xd44d('0x2c')][_0xd44d('0x2d')]({'where':{'id':_0x589e17['params']['id']}})[_0xd44d('0x28')](handleEntityNotFound(_0x435d58,null))[_0xd44d('0x28')](saveUpdates(_0x589e17[_0xd44d('0x2b')],null))['then'](respondWithResult(_0x435d58,null))[_0xd44d('0x2e')](handleError(_0x435d58,null));};exports['destroy']=function(_0x4c6fdd,_0x45c67c){return db[_0xd44d('0x2c')][_0xd44d('0x2d')]({'where':{'id':_0x4c6fdd[_0xd44d('0x2f')]['id']}})[_0xd44d('0x28')](handleEntityNotFound(_0x45c67c,null))[_0xd44d('0x28')](removeEntity(_0x45c67c,null))['catch'](handleError(_0x45c67c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c8c=['rimraf','./action.attributes','exports','define','Action','tools_actions','lodash','api','moment','bluebird','path'];(function(_0x5967c0,_0x452377){var _0x2ad249=function(_0x7eb26){while(--_0x7eb26){_0x5967c0['push'](_0x5967c0['shift']());}};_0x2ad249(++_0x452377);}(_0x4c8c,0x1b3));var _0xc4c8=function(_0x5c4f6b,_0x2cdfce){_0x5c4f6b=_0x5c4f6b-0x0;var _0x104c4e=_0x4c8c[_0x5c4f6b];return _0x104c4e;};'use strict';var _=require(_0xc4c8('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xc4c8('0x1'));var moment=require(_0xc4c8('0x2'));var BPromise=require(_0xc4c8('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc4c8('0x4'));var rimraf=require(_0xc4c8('0x5'));var config=require('../../config/environment');var attributes=require(_0xc4c8('0x6'));module[_0xc4c8('0x7')]=function(_0x5caf0a,_0x17af8d){return _0x5caf0a[_0xc4c8('0x8')](_0xc4c8('0x9'),attributes,{'tableName':_0xc4c8('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0f69=['rimraf','../../config/environment','exports','tools_actions','util','../../config/logger','api','request-promise'];(function(_0x219a43,_0x3e405a){var _0x17c865=function(_0x11305a){while(--_0x11305a){_0x219a43['push'](_0x219a43['shift']());}};_0x17c865(++_0x3e405a);}(_0x0f69,0x6c));var _0x90f6=function(_0x11005e,_0x20c3d2){_0x11005e=_0x11005e-0x0;var _0x29338f=_0x0f69[_0x11005e];return _0x29338f;};'use strict';var _=require('lodash');var util=require(_0x90f6('0x0'));var logger=require(_0x90f6('0x1'))(_0x90f6('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x90f6('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x90f6('0x4'));var config=require(_0x90f6('0x5'));var attributes=require('./action.attributes');module[_0x90f6('0x6')]=function(_0x396be0,_0x24b66f){return _0x396be0['define']('Action',attributes,{'tableName':_0x90f6('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc4aa=['moment','bluebird','randomstring','ioredis','rpc','../../config/environment','jayson/promise','client','http','request','then','Action,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info','catch','lodash','util'];(function(_0x27dc8a,_0x66fd4b){var _0x56a5a5=function(_0x4519e6){while(--_0x4519e6){_0x27dc8a['push'](_0x27dc8a['shift']());}};_0x56a5a5(++_0x66fd4b);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x1b2ff7,_0x12a034){_0x1b2ff7=_0x1b2ff7-0x0;var _0x31656a=_0xc4aa[_0x1b2ff7];return _0x31656a;};'use strict';var _=require(_0xac4a('0x0'));var util=require(_0xac4a('0x1'));var moment=require(_0xac4a('0x2'));var BPromise=require(_0xac4a('0x3'));var rs=require(_0xac4a('0x4'));var fs=require('fs');var Redis=require(_0xac4a('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xac4a('0x6'));var config=require(_0xac4a('0x7'));var jayson=require(_0xac4a('0x8'));var client=jayson[_0xac4a('0x9')][_0xac4a('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x15cd34,_0x3ef77c,_0x10525b){return new BPromise(function(_0x5c6179,_0x5b8339){return client[_0xac4a('0xb')](_0x15cd34,_0x10525b)[_0xac4a('0xc')](function(_0x26ec84){logger['info'](_0xac4a('0xd'),_0x3ef77c,_0xac4a('0xe'));logger[_0xac4a('0xf')]('Action,\x20%s,\x20%s,\x20%s',_0x3ef77c,_0xac4a('0xe'),JSON['stringify'](_0x26ec84));if(_0x26ec84[_0xac4a('0x10')]){if(_0x26ec84['error'][_0xac4a('0x11')]===0x1f4){logger[_0xac4a('0x10')](_0xac4a('0xd'),_0x3ef77c,_0x26ec84['error'][_0xac4a('0x12')]);return _0x5b8339(_0x26ec84[_0xac4a('0x10')][_0xac4a('0x12')]);}logger[_0xac4a('0x10')](_0xac4a('0xd'),_0x3ef77c,_0x26ec84[_0xac4a('0x10')][_0xac4a('0x12')]);return _0x5c6179(_0x26ec84[_0xac4a('0x10')][_0xac4a('0x12')]);}else{logger[_0xac4a('0x13')](_0xac4a('0xd'),_0x3ef77c,_0xac4a('0xe'));_0x5c6179(_0x26ec84['result'][_0xac4a('0x12')]);}})[_0xac4a('0x14')](function(_0x23eb66){logger[_0xac4a('0x10')](_0xac4a('0xd'),_0x3ef77c,_0x23eb66);_0x5b8339(_0x23eb66);});});}
\ No newline at end of file
+var _0x53ec=['error','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','client','request','then','info','Action,\x20%s,\x20%s','request\x20sent','debug','stringify','code'];(function(_0x725b8e,_0xc22b48){var _0x43ac45=function(_0x46bb4a){while(--_0x46bb4a){_0x725b8e['push'](_0x725b8e['shift']());}};_0x43ac45(++_0xc22b48);}(_0x53ec,0x192));var _0xc53e=function(_0x5e6cb8,_0x1d1eb5){_0x5e6cb8=_0x5e6cb8-0x0;var _0x41754f=_0x53ec[_0x5e6cb8];return _0x41754f;};'use strict';var _=require(_0xc53e('0x0'));var util=require(_0xc53e('0x1'));var moment=require(_0xc53e('0x2'));var BPromise=require(_0xc53e('0x3'));var rs=require(_0xc53e('0x4'));var fs=require('fs');var Redis=require(_0xc53e('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xc53e('0x6'));var logger=require('../../config/logger')(_0xc53e('0x7'));var config=require(_0xc53e('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xc53e('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x41a9e8,_0x2de88b,_0x5d3b28){return new BPromise(function(_0x1616ac,_0x1ac6c0){return client[_0xc53e('0xa')](_0x41a9e8,_0x5d3b28)[_0xc53e('0xb')](function(_0xd9612){logger[_0xc53e('0xc')](_0xc53e('0xd'),_0x2de88b,_0xc53e('0xe'));logger[_0xc53e('0xf')]('Action,\x20%s,\x20%s,\x20%s',_0x2de88b,'request\x20sent',JSON[_0xc53e('0x10')](_0xd9612));if(_0xd9612['error']){if(_0xd9612['error'][_0xc53e('0x11')]===0x1f4){logger[_0xc53e('0x12')](_0xc53e('0xd'),_0x2de88b,_0xd9612[_0xc53e('0x12')]['message']);return _0x1ac6c0(_0xd9612['error'][_0xc53e('0x13')]);}logger[_0xc53e('0x12')](_0xc53e('0xd'),_0x2de88b,_0xd9612[_0xc53e('0x12')][_0xc53e('0x13')]);return _0x1616ac(_0xd9612[_0xc53e('0x12')][_0xc53e('0x13')]);}else{logger[_0xc53e('0xc')](_0xc53e('0xd'),_0x2de88b,_0xc53e('0xe'));_0x1616ac(_0xd9612['result'][_0xc53e('0x13')]);}})[_0xc53e('0x14')](function(_0x535cd4){logger[_0xc53e('0x12')](_0xc53e('0xd'),_0x2de88b,_0x535cd4);_0x1ac6c0(_0x535cd4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd311=['isAuthenticated','update','delete','destroy','exports','path','../../components/interaction/service','./action.controller','/:id'];(function(_0xc645ce,_0xaa98c2){var _0x488871=function(_0x1db10d){while(--_0x1db10d){_0xc645ce['push'](_0xc645ce['shift']());}};_0x488871(++_0xaa98c2);}(_0xd311,0x1a3));var _0x1d31=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd311[_0x20a584];return _0x4b41a8;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1d31('0x0'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x1d31('0x1'));var config=require('../../config/environment');var controller=require(_0x1d31('0x2'));router['put'](_0x1d31('0x3'),auth[_0x1d31('0x4')](),controller[_0x1d31('0x5')]);router[_0x1d31('0x6')](_0x1d31('0x3'),auth['isAuthenticated'](),controller[_0x1d31('0x7')]);module[_0x1d31('0x8')]=router;
\ No newline at end of file
+var _0x2ab7=['put','/:id','isAuthenticated','delete','exports','multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x27eda0,_0x42a3cf){var _0x2b63a5=function(_0x431084){while(--_0x431084){_0x27eda0['push'](_0x27eda0['shift']());}};_0x2b63a5(++_0x42a3cf);}(_0x2ab7,0x109));var _0x72ab=function(_0x46f5a3,_0x2226c5){_0x46f5a3=_0x46f5a3-0x0;var _0x545ad7=_0x2ab7[_0x46f5a3];return _0x545ad7;};'use strict';var multer=require(_0x72ab('0x0'));var util=require('util');var path=require(_0x72ab('0x1'));var timeout=require(_0x72ab('0x2'));var express=require('express');var router=express[_0x72ab('0x3')]();var fs_extra=require(_0x72ab('0x4'));var auth=require(_0x72ab('0x5'));var interaction=require(_0x72ab('0x6'));var config=require(_0x72ab('0x7'));var controller=require('./action.controller');router[_0x72ab('0x8')](_0x72ab('0x9'),auth[_0x72ab('0xa')](),controller['update']);router[_0x72ab('0xb')](_0x72ab('0x9'),auth[_0x72ab('0xa')](),controller['destroy']);module[_0x72ab('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xafc4=['sequelize','STRING','TEXT'];(function(_0x147497,_0x43e433){var _0x35f45=function(_0x584421){while(--_0x584421){_0x147497['push'](_0x147497['shift']());}};_0x35f45(++_0x43e433);}(_0xafc4,0x69));var _0x4afc=function(_0x28ae5d,_0x159eae){_0x28ae5d=_0x28ae5d-0x0;var _0x20f7d4=_0xafc4[_0x28ae5d];return _0x20f7d4;};'use strict';var Sequelize=require(_0x4afc('0x0'));module['exports']={'name':{'type':Sequelize[_0x4afc('0x1')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'parent':{'type':Sequelize[_0x4afc('0x1')]},'table':{'type':Sequelize[_0x4afc('0x1')]},'conditions':{'type':Sequelize[_0x4afc('0x2')]},'joins':{'type':Sequelize[_0x4afc('0x2')]}};
\ No newline at end of file
+var _0x207c=['STRING','TEXT','exports'];(function(_0x1eeafd,_0x4e0733){var _0x27800b=function(_0x7ead25){while(--_0x7ead25){_0x1eeafd['push'](_0x1eeafd['shift']());}};_0x27800b(++_0x4e0733);}(_0x207c,0x1e8));var _0xc207=function(_0x31b90f,_0x35ef73){_0x31b90f=_0x31b90f-0x0;var _0x15653b=_0x207c[_0x31b90f];return _0x15653b;};'use strict';var Sequelize=require('sequelize');module[_0xc207('0x0')]={'name':{'type':Sequelize[_0xc207('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0xc207('0x1')]},'parent':{'type':Sequelize[_0xc207('0x1')]},'table':{'type':Sequelize[_0xc207('0x1')]},'conditions':{'type':Sequelize[_0xc207('0x2')]},'joins':{'type':Sequelize[_0xc207('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x07c9=['rawAttributes','type','model','query','keys','filters','intersection','attributes','length','nolimit','sort','where','VIRTUAL','filter','merge','options','include','findAll','rows','catch','show','fields','includeAll','find','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','preview','left_join','right_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','ROUND(%s)','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','field','condition','value','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','from','table','MetricId','metric','function','replace','format','orderBy','order','DESC','joins','includes','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','parse','group','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','join','cross_join','MAX(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','HOUR(%s)','select','groupBy','alias','clone','output','web','fullPath','%s-%s.%s','randomstring','generate','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','Run\x20Query:','fork','countTable','COUNT(*)','run','runReport','UNIX_TIMESTAMP(%s)','getFields','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','offset','limit','undefined','count','set','reject','then','destroy','get','CustomReports','UserProfileResource','error','name','send','index','map','AnalyticCustomReport'];(function(_0x421b4d,_0x5c838a){var _0x5e3062=function(_0x37e4ba){while(--_0x37e4ba){_0x421b4d['push'](_0x421b4d['shift']());}};_0x5e3062(++_0x5c838a);}(_0x07c9,0x6f));var _0x907c=function(_0x735221,_0x218427){_0x735221=_0x735221-0x0;var _0x47712c=_0x07c9[_0x735221];return _0x47712c;};'use strict';var emlformat=require(_0x907c('0x0'));var rimraf=require(_0x907c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x907c('0x2'));var rp=require(_0x907c('0x3'));var moment=require(_0x907c('0x4'));var BPromise=require(_0x907c('0x5'));var Mustache=require(_0x907c('0x6'));var util=require(_0x907c('0x7'));var path=require(_0x907c('0x8'));var sox=require(_0x907c('0x9'));var csv=require(_0x907c('0xa'));var ejs=require(_0x907c('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x907c('0xc'));var squel=require(_0x907c('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x907c('0xe'));var toCsv=require(_0x907c('0xa'));var querystring=require(_0x907c('0xf'));var Papa=require(_0x907c('0x10'));var Redis=require(_0x907c('0x11'));var authService=require(_0x907c('0x12'));var qs=require(_0x907c('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x907c('0x14'))('api');var utils=require(_0x907c('0x15'));var config=require(_0x907c('0x16'));var licenseUtil=require(_0x907c('0x17'));var db=require(_0x907c('0x18'))['db'];var dbH=require(_0x907c('0x18'))[_0x907c('0x19')];function respondWithStatusCode(_0x4e252d,_0x57e505){_0x57e505=_0x57e505||0xcc;return function(_0x16a01d){if(_0x16a01d){return _0x4e252d[_0x907c('0x1a')](_0x57e505);}return _0x4e252d[_0x907c('0x1b')](_0x57e505)[_0x907c('0x1c')]();};}function respondWithResult(_0x4f2f69,_0x5e151e){_0x5e151e=_0x5e151e||0xc8;return function(_0x124794){if(_0x124794){return _0x4f2f69['status'](_0x5e151e)['json'](_0x124794);}};}function respondWithFilteredResult(_0x24beb4,_0x2c6aa9){return function(_0x49e02c){if(_0x49e02c){var _0x49cda5=typeof _0x2c6aa9[_0x907c('0x1d')]==='undefined'&&typeof _0x2c6aa9[_0x907c('0x1e')]===_0x907c('0x1f');var _0x37cd38=_0x49e02c[_0x907c('0x20')];var _0x3f43ff=_0x49cda5?0x0:_0x2c6aa9[_0x907c('0x1d')];var _0x1cf431=_0x49cda5?_0x49e02c[_0x907c('0x20')]:_0x2c6aa9[_0x907c('0x1d')]+_0x2c6aa9[_0x907c('0x1e')];var _0x30164f;if(_0x1cf431>=_0x37cd38){_0x1cf431=_0x37cd38;_0x30164f=0xc8;}else{_0x30164f=0xce;}_0x24beb4['status'](_0x30164f);return _0x24beb4[_0x907c('0x21')]('Content-Range',_0x3f43ff+'-'+_0x1cf431+'/'+_0x37cd38)['json'](_0x49e02c);}return null;};}function patchUpdates(_0x1c9e03){return function(_0x4004c1){try{jsonpatch['apply'](_0x4004c1,_0x1c9e03,!![]);}catch(_0x1114f7){return BPromise[_0x907c('0x22')](_0x1114f7);}return _0x4004c1['save']();};}function saveUpdates(_0x48f82a,_0x58a73d){return function(_0x5280e1){if(_0x5280e1){return _0x5280e1['update'](_0x48f82a)[_0x907c('0x23')](function(_0xdeecde){return _0xdeecde;});}return null;};}function removeEntity(_0x3f56ad,_0x29a966){return function(_0x365d98){if(_0x365d98){return _0x365d98[_0x907c('0x24')]()[_0x907c('0x23')](function(){var _0x1da8da=_0x365d98[_0x907c('0x25')]({'plain':!![]});var _0x329895=_0x907c('0x26');return db[_0x907c('0x27')]['destroy']({'where':{'type':_0x329895,'resourceId':_0x1da8da['id']}})['then'](function(){return _0x365d98;});})[_0x907c('0x23')](function(){_0x3f56ad[_0x907c('0x1b')](0xcc)[_0x907c('0x1c')]();});}};}function handleEntityNotFound(_0x1ffa6f,_0x4fb908){return function(_0x2ce71d){if(!_0x2ce71d){_0x1ffa6f[_0x907c('0x1a')](0x194);}return _0x2ce71d;};}function handleError(_0x2d23cd,_0x5ee598){_0x5ee598=_0x5ee598||0x1f4;return function(_0x5da345){logger[_0x907c('0x28')](_0x5da345['stack']);if(_0x5da345['name']){delete _0x5da345[_0x907c('0x29')];}_0x2d23cd[_0x907c('0x1b')](_0x5ee598)[_0x907c('0x2a')](_0x5da345);};}exports[_0x907c('0x2b')]=function(_0x1bf0d9,_0x303be5){var _0x554ccc={},_0x21e046={},_0xba8edf={'count':0x0,'rows':[]};var _0x3e243f=_[_0x907c('0x2c')](db[_0x907c('0x2d')][_0x907c('0x2e')],function(_0x47cbb5){return{'name':_0x47cbb5['fieldName'],'type':_0x47cbb5[_0x907c('0x2f')]['key']};});_0x21e046[_0x907c('0x30')]=_[_0x907c('0x2c')](_0x3e243f,_0x907c('0x29'));_0x21e046[_0x907c('0x31')]=_[_0x907c('0x32')](_0x1bf0d9[_0x907c('0x31')]);_0x21e046[_0x907c('0x33')]=_[_0x907c('0x34')](_0x21e046[_0x907c('0x30')],_0x21e046['query']);_0x554ccc['attributes']=_[_0x907c('0x34')](_0x21e046[_0x907c('0x30')],qs['fields'](_0x1bf0d9[_0x907c('0x31')]['fields']));_0x554ccc['attributes']=_0x554ccc[_0x907c('0x35')][_0x907c('0x36')]?_0x554ccc['attributes']:_0x21e046['model'];if(!_0x1bf0d9[_0x907c('0x31')]['hasOwnProperty'](_0x907c('0x37'))){_0x554ccc['limit']=qs[_0x907c('0x1e')](_0x1bf0d9[_0x907c('0x31')]['limit']);_0x554ccc[_0x907c('0x1d')]=qs[_0x907c('0x1d')](_0x1bf0d9[_0x907c('0x31')][_0x907c('0x1d')]);}_0x554ccc['order']=qs['sort'](_0x1bf0d9[_0x907c('0x31')][_0x907c('0x38')]);_0x554ccc[_0x907c('0x39')]=qs['filters'](_['pick'](_0x1bf0d9['query'],_0x21e046['filters']),_0x3e243f);if(_0x1bf0d9['query']['filter']){_0x554ccc[_0x907c('0x39')]=_['merge'](_0x554ccc[_0x907c('0x39')],{'$or':_['map'](_0x3e243f,function(_0x39b7ed){if(_0x39b7ed[_0x907c('0x2f')]!==_0x907c('0x3a')){var _0x514475={};_0x514475[_0x39b7ed[_0x907c('0x29')]]={'$like':'%'+_0x1bf0d9[_0x907c('0x31')][_0x907c('0x3b')]+'%'};return _0x514475;}})});}_0x554ccc=_[_0x907c('0x3c')]({},_0x554ccc,_0x1bf0d9[_0x907c('0x3d')]);var _0x4f21d5={'where':_0x554ccc[_0x907c('0x39')]};return db[_0x907c('0x2d')]['count'](_0x4f21d5)[_0x907c('0x23')](function(_0x445b27){_0xba8edf[_0x907c('0x20')]=_0x445b27;if(_0x1bf0d9['query']['includeAll']){_0x554ccc[_0x907c('0x3e')]=[{'all':!![]}];}return db[_0x907c('0x2d')][_0x907c('0x3f')](_0x554ccc);})[_0x907c('0x23')](function(_0x24e1f9){_0xba8edf[_0x907c('0x40')]=_0x24e1f9;return _0xba8edf;})[_0x907c('0x23')](respondWithFilteredResult(_0x303be5,_0x554ccc))[_0x907c('0x41')](handleError(_0x303be5,null));};exports[_0x907c('0x42')]=function(_0x125625,_0xa4c4aa){var _0x54938d={'raw':![],'where':{'id':_0x125625['params']['id']}},_0x5b8f20={};_0x5b8f20['model']=_[_0x907c('0x32')](db['AnalyticCustomReport'][_0x907c('0x2e')]);_0x5b8f20[_0x907c('0x31')]=_[_0x907c('0x32')](_0x125625['query']);_0x5b8f20[_0x907c('0x33')]=_[_0x907c('0x34')](_0x5b8f20[_0x907c('0x30')],_0x5b8f20['query']);_0x54938d[_0x907c('0x35')]=_[_0x907c('0x34')](_0x5b8f20[_0x907c('0x30')],qs[_0x907c('0x43')](_0x125625[_0x907c('0x31')][_0x907c('0x43')]));_0x54938d[_0x907c('0x35')]=_0x54938d[_0x907c('0x35')][_0x907c('0x36')]?_0x54938d['attributes']:_0x5b8f20['model'];if(_0x125625[_0x907c('0x31')][_0x907c('0x44')]){_0x54938d['include']=[{'all':!![]}];}_0x54938d=_[_0x907c('0x3c')]({},_0x54938d,_0x125625[_0x907c('0x3d')]);return db[_0x907c('0x2d')][_0x907c('0x45')](_0x54938d)[_0x907c('0x23')](handleEntityNotFound(_0xa4c4aa,null))[_0x907c('0x23')](respondWithResult(_0xa4c4aa,null))[_0x907c('0x41')](handleError(_0xa4c4aa,null));};exports['create']=function(_0xe960ae,_0x486515){return db[_0x907c('0x2d')]['create'](_0xe960ae['body'],{})['then'](function(_0x3ae1c3){var _0x3199a2=_0xe960ae[_0x907c('0x46')][_0x907c('0x25')]({'plain':!![]});if(!_0x3199a2)throw new Error(_0x907c('0x47'));if(_0x3199a2['role']===_0x907c('0x46')){var _0x1d30f6=_0x3ae1c3[_0x907c('0x25')]({'plain':!![]});var _0x2f96d='Reports';return db[_0x907c('0x48')][_0x907c('0x45')]({'where':{'name':_0x2f96d,'userProfileId':_0x3199a2[_0x907c('0x49')]},'raw':!![]})[_0x907c('0x23')](function(_0x2f78ac){if(_0x2f78ac&&_0x2f78ac['autoAssociation']===0x0){return db[_0x907c('0x27')][_0x907c('0x4a')]({'name':_0x1d30f6['name'],'resourceId':_0x1d30f6['id'],'type':_0x907c('0x26'),'sectionId':_0x2f78ac['id']},{})['then'](function(){return _0x3ae1c3;});}else{return _0x3ae1c3;}})[_0x907c('0x41')](function(_0x1dae1a){logger[_0x907c('0x28')](_0x907c('0x4b'),_0x1dae1a);throw _0x1dae1a;});}return _0x3ae1c3;})[_0x907c('0x23')](respondWithResult(_0x486515,0xc9))[_0x907c('0x41')](handleError(_0x486515,null));};exports['update']=function(_0x374d76,_0x205017){if(_0x374d76[_0x907c('0x4c')]['id']){delete _0x374d76[_0x907c('0x4c')]['id'];}return db[_0x907c('0x2d')][_0x907c('0x45')]({'where':{'id':_0x374d76['params']['id']}})[_0x907c('0x23')](handleEntityNotFound(_0x205017,null))['then'](saveUpdates(_0x374d76[_0x907c('0x4c')],null))[_0x907c('0x23')](respondWithResult(_0x205017,null))[_0x907c('0x41')](handleError(_0x205017,null));};exports['destroy']=function(_0x29042e,_0x482f49){return db[_0x907c('0x2d')][_0x907c('0x45')]({'where':{'id':_0x29042e[_0x907c('0x4d')]['id']}})[_0x907c('0x23')](handleEntityNotFound(_0x482f49,null))[_0x907c('0x23')](removeEntity(_0x482f49,null))['catch'](handleError(_0x482f49,null));};exports[_0x907c('0x4e')]=function(_0x2bee61,_0x19402b){var _0x279681=0xa;var _0x576fd6=['join',_0x907c('0x4f'),_0x907c('0x50'),'cross_join'];var _0x5d36e6={'SUM':_0x907c('0x51'),'COUNT':_0x907c('0x52'),'COUNT DISTINCT':_0x907c('0x53'),'MAX':'MAX(%s)','MIN':_0x907c('0x54'),'AVG':_0x907c('0x55'),'GROUP_CONCAT':_0x907c('0x56'),'GROUP_CONCAT ASC':_0x907c('0x57'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0xa4094e={'SEC_TO_TIME':_0x907c('0x58'),'DATE':_0x907c('0x59'),'HOUR':'HOUR(%s)','ROUND':_0x907c('0x5a'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x45b01f=function(_0x511fd4){return!_['includes']([_0x907c('0x5b'),_0x907c('0x5c'),_0x907c('0x5d'),_0x907c('0x5e')],_0x511fd4);};var _0x43fab6=function(_0x2d9473){if(!_0x2d9473||!_0x2d9473[_0x907c('0x5f')][_0x907c('0x36')]){return'';}for(var _0xfae8ca='(',_0x343fd6=0x0;_0x343fd6<_0x2d9473['rules'][_0x907c('0x36')];_0x343fd6+=0x1){_0x343fd6>0x0&&(_0xfae8ca+='\x20'+_0x2d9473[_0x907c('0x60')]+'\x20');_0xfae8ca+=_0x2d9473[_0x907c('0x5f')][_0x343fd6]['group']?_0x43fab6(_0x2d9473[_0x907c('0x5f')][_0x343fd6]['group']):_0x2d9473[_0x907c('0x5f')][_0x343fd6][_0x907c('0x61')]+'\x20'+_0x2d9473['rules'][_0x343fd6][_0x907c('0x62')]+(_0x45b01f(_0x2d9473[_0x907c('0x5f')][_0x343fd6][_0x907c('0x62')])?'\x20'+_0x2d9473[_0x907c('0x5f')][_0x343fd6][_0x907c('0x63')]:'');}return _0xfae8ca+')';};var _0x54df3f={'where':{'id':_0x2bee61[_0x907c('0x4d')]['id']}},_0x11566a,_0x4250d6,_0x239f2,_0x1c92b1,_0x1eb036;_0x54df3f=_[_0x907c('0x3c')]({},_0x54df3f,_0x2bee61[_0x907c('0x3d')]);return db[_0x907c('0x2d')]['find'](_0x54df3f)[_0x907c('0x23')](function(_0x28d032){if(_0x28d032){_0x11566a=_0x28d032;return _0x28d032['getFields']();}return null;})[_0x907c('0x23')](function(_0x446517){if(_0x446517){if(!_0x446517['length']){throw new db[(_0x907c('0x64'))][(_0x907c('0x65'))](_0x907c('0x66'),0x193);}_0x4250d6=_0x446517;return db[_0x907c('0x67')][_0x907c('0x3f')]({'raw':!![]});}return null;})[_0x907c('0x23')](function(_0x505e1e){if(_0x505e1e){_0x239f2=_[_0x907c('0x68')](_0x505e1e,'id');var _0x180d24;var _0x3db5c7=squel['select']();_0x3db5c7[_0x907c('0x69')](_0x11566a[_0x907c('0x6a')]);for(var _0x529ada=0x0;_0x529ada<_0x4250d6[_0x907c('0x36')];_0x529ada+=0x1){_0x180d24=_0x4250d6[_0x529ada][_0x907c('0x6b')]?_0x239f2[_0x4250d6[_0x529ada][_0x907c('0x6b')]][_0x907c('0x6c')]:_0x4250d6[_0x529ada][_0x907c('0x61')];_0x180d24=_0x4250d6[_0x529ada][_0x907c('0x6d')]?_[_0x907c('0x6e')](_0x5d36e6[_0x4250d6[_0x529ada][_0x907c('0x6d')]],'%s',_0x180d24):_0x180d24;_0x180d24=_0x4250d6[_0x529ada][_0x907c('0x6f')]?_['replace'](_0xa4094e[_0x4250d6[_0x529ada][_0x907c('0x6f')]],'%s',_0x180d24):_0x180d24;if(_0x4250d6[_0x529ada]['groupBy']){_0x3db5c7['group'](_0x180d24);}_0x4250d6[_0x529ada][_0x907c('0x70')]&&_0x3db5c7[_0x907c('0x71')](_0x180d24,_0x4250d6[_0x529ada][_0x907c('0x70')]===_0x907c('0x72')?![]:!![]);_0x3db5c7[_0x907c('0x61')](_0x180d24,_0x4250d6[_0x529ada]['alias']||_0x180d24);}if(_0x11566a['joins']){_0x11566a['joins']=JSON['parse'](_0x11566a['joins']);for(var _0x7b8f0=0x0;_0x7b8f0<_0x11566a[_0x907c('0x73')][_0x907c('0x36')];_0x7b8f0+=0x1){if(_0x11566a[_0x907c('0x73')][_0x7b8f0]['type']&&_[_0x907c('0x74')](_0x576fd6,_0x11566a[_0x907c('0x73')][_0x7b8f0]['type'])&&_0x11566a[_0x907c('0x73')][_0x7b8f0][_0x907c('0x75')]&&_0x11566a[_0x907c('0x73')][_0x7b8f0][_0x907c('0x76')]&&_0x11566a[_0x907c('0x73')][_0x7b8f0][_0x907c('0x77')]){_0x3db5c7[_0x11566a[_0x907c('0x73')][_0x7b8f0][_0x907c('0x2f')]](_0x11566a[_0x907c('0x73')][_0x7b8f0][_0x907c('0x76')],null,util['format'](_0x907c('0x78'),_0x11566a[_0x907c('0x6a')],_0x11566a['joins'][_0x7b8f0][_0x907c('0x75')],_0x11566a[_0x907c('0x73')][_0x7b8f0][_0x907c('0x76')],_0x11566a[_0x907c('0x73')][_0x7b8f0][_0x907c('0x77')]));}}}if(_0x11566a[_0x907c('0x79')]){_0x11566a['conditions']=JSON[_0x907c('0x7a')](_0x11566a[_0x907c('0x79')]);_0x3db5c7[_0x907c('0x39')](_0x43fab6(_0x11566a['conditions'][_0x907c('0x7b')]));}_0x1eb036=_0x3db5c7['clone']();_0x3db5c7[_0x907c('0x1e')](_0x279681);_0x3db5c7['offset'](0x0);logger[_0x907c('0x7c')](_0x907c('0x7d'),_0x3db5c7[_0x907c('0x7e')]());return dbH[_0x907c('0x7f')][_0x907c('0x31')](_0x3db5c7[_0x907c('0x7e')](),{'type':dbH['sequelize'][_0x907c('0x80')][_0x907c('0x81')]});}})[_0x907c('0x23')](respondWithResult(_0x19402b,null))[_0x907c('0x41')](handleError(_0x19402b,null));};function runReport(_0x466156,_0x2da091,_0x279527){var _0x13237a=_0x2da091[_0x907c('0x29')];var _0x5b5005=0xa;var _0x18cb66=[_0x907c('0x82'),_0x907c('0x4f'),_0x907c('0x50'),_0x907c('0x83')];var _0x5c148f={'SUM':'SUM(%s)','COUNT':_0x907c('0x52'),'COUNT DISTINCT':_0x907c('0x53'),'MAX':_0x907c('0x84'),'MIN':_0x907c('0x54'),'AVG':_0x907c('0x55'),'GROUP_CONCAT':_0x907c('0x56'),'GROUP_CONCAT ASC':_0x907c('0x57'),'GROUP_CONCAT DESC':_0x907c('0x85')};var _0x3f0401={'SEC_TO_TIME':_0x907c('0x58'),'DATE':_0x907c('0x59'),'HOUR':_0x907c('0x86'),'ROUND':_0x907c('0x5a'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x228784=function(_0x501be5){return!_['includes']([_0x907c('0x5b'),_0x907c('0x5c'),_0x907c('0x5d'),_0x907c('0x5e')],_0x501be5);};var _0x23068c=function(_0x536d80){if(!_0x536d80||!_0x536d80[_0x907c('0x5f')][_0x907c('0x36')]){return'';}for(var _0x1a691a='(',_0x3b3a9d=0x0;_0x3b3a9d<_0x536d80[_0x907c('0x5f')]['length'];_0x3b3a9d+=0x1){_0x3b3a9d>0x0&&(_0x1a691a+='\x20'+_0x536d80['operator']+'\x20');_0x1a691a+=_0x536d80[_0x907c('0x5f')][_0x3b3a9d][_0x907c('0x7b')]?_0x23068c(_0x536d80['rules'][_0x3b3a9d]['group']):_0x536d80[_0x907c('0x5f')][_0x3b3a9d][_0x907c('0x61')]+'\x20'+_0x536d80[_0x907c('0x5f')][_0x3b3a9d][_0x907c('0x62')]+(_0x228784(_0x536d80[_0x907c('0x5f')][_0x3b3a9d][_0x907c('0x62')])?'\x20'+_0x536d80[_0x907c('0x5f')][_0x3b3a9d][_0x907c('0x63')]:'');}return _0x1a691a+')';};var _0x52496a={'where':{'id':_0x466156['id']}},_0x3b81f5,_0x239093,_0x219249,_0x1e5a23,_0x3938d0;_0x52496a=_[_0x907c('0x3c')]({},_0x52496a,_0x279527);return db[_0x907c('0x2d')]['find'](_0x52496a)[_0x907c('0x23')](function(_0x13f0ac){if(_0x13f0ac){_0x3b81f5=_0x13f0ac;return _0x13f0ac['getFields']();}return null;})['then'](function(_0x2ae827){if(_0x2ae827){if(!_0x2ae827[_0x907c('0x36')]){throw new db[(_0x907c('0x64'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x239093=_0x2ae827;return db[_0x907c('0x67')]['findAll']({'raw':!![]});}return null;})[_0x907c('0x23')](function(_0x29530c){if(_0x29530c){_0x219249=_['keyBy'](_0x29530c,'id');var _0x40d3f8;var _0x482394=squel[_0x907c('0x87')]();_0x482394[_0x907c('0x69')](_0x3b81f5['table']);for(var _0x5b7dd4=0x0;_0x5b7dd4<_0x239093['length'];_0x5b7dd4+=0x1){_0x40d3f8=_0x239093[_0x5b7dd4]['MetricId']?_0x219249[_0x239093[_0x5b7dd4][_0x907c('0x6b')]][_0x907c('0x6c')]:_0x239093[_0x5b7dd4][_0x907c('0x61')];_0x40d3f8=_0x239093[_0x5b7dd4][_0x907c('0x6d')]?_[_0x907c('0x6e')](_0x5c148f[_0x239093[_0x5b7dd4][_0x907c('0x6d')]],'%s',_0x40d3f8):_0x40d3f8;_0x40d3f8=_0x239093[_0x5b7dd4]['format']?_[_0x907c('0x6e')](_0x3f0401[_0x239093[_0x5b7dd4][_0x907c('0x6f')]],'%s',_0x40d3f8):_0x40d3f8;if(_0x239093[_0x5b7dd4][_0x907c('0x88')]){_0x482394[_0x907c('0x7b')](_0x40d3f8);}_0x239093[_0x5b7dd4][_0x907c('0x70')]&&_0x482394['order'](_0x40d3f8,_0x239093[_0x5b7dd4][_0x907c('0x70')]==='DESC'?![]:!![]);_0x482394[_0x907c('0x61')](_0x40d3f8,_0x239093[_0x5b7dd4][_0x907c('0x89')]||_0x40d3f8);}if(_0x3b81f5[_0x907c('0x73')]){_0x3b81f5[_0x907c('0x73')]=JSON['parse'](_0x3b81f5[_0x907c('0x73')]);for(var _0x3f72cb=0x0;_0x3f72cb<_0x3b81f5[_0x907c('0x73')][_0x907c('0x36')];_0x3f72cb+=0x1){if(_0x3b81f5[_0x907c('0x73')][_0x3f72cb][_0x907c('0x2f')]&&_[_0x907c('0x74')](_0x18cb66,_0x3b81f5[_0x907c('0x73')][_0x3f72cb][_0x907c('0x2f')])&&_0x3b81f5['joins'][_0x3f72cb][_0x907c('0x75')]&&_0x3b81f5[_0x907c('0x73')][_0x3f72cb][_0x907c('0x76')]&&_0x3b81f5[_0x907c('0x73')][_0x3f72cb][_0x907c('0x77')]){_0x482394[_0x3b81f5[_0x907c('0x73')][_0x3f72cb][_0x907c('0x2f')]](_0x3b81f5[_0x907c('0x73')][_0x3f72cb][_0x907c('0x76')],null,util['format'](_0x907c('0x78'),_0x3b81f5[_0x907c('0x6a')],_0x3b81f5[_0x907c('0x73')][_0x3f72cb]['parentKey'],_0x3b81f5['joins'][_0x3f72cb]['foreignTable'],_0x3b81f5['joins'][_0x3f72cb]['foreignKey']));}}}if(_0x3b81f5[_0x907c('0x79')]){_0x3b81f5[_0x907c('0x79')]=JSON['parse'](_0x3b81f5[_0x907c('0x79')]);_0x482394[_0x907c('0x39')](_0x23068c(_0x3b81f5[_0x907c('0x79')][_0x907c('0x7b')]));}_0x3938d0=_0x482394[_0x907c('0x8a')]();_0x482394[_0x907c('0x1e')](_0x5b5005);_0x482394[_0x907c('0x1d')](0x0);return;}})[_0x907c('0x23')](function(){if(_0x2da091[_0x907c('0x8b')]===_0x907c('0x8c')){return null;}var _0x2fc4be=_[_0x907c('0x3c')](_0x2da091,{'name':_0x2da091[_0x907c('0x8d')]||_0x2da091['name']||_0x3b81f5['name'],'basename':_0x13237a,'savename':util[_0x907c('0x6f')](_0x907c('0x8e'),_0x2da091[_0x907c('0x29')]||_0x3b81f5[_0x907c('0x29')],require(_0x907c('0x8f'))[_0x907c('0x90')](0x4),_0x2da091['output']||'csv'),'reportId':_0x3b81f5['id'],'reportType':'custom'});return db['AnalyticExtractedReport'][_0x907c('0x4a')](_0x2fc4be,{'raw':!![]});})[_0x907c('0x23')](function(_0x183542){if(_0x3b81f5[_0x907c('0x6a')]==='cdr'){_0x3938d0[_0x907c('0x39')](_0x3b81f5[_0x907c('0x6a')]+_0x907c('0x91'),_0x2da091[_0x907c('0x92')],_0x2da091[_0x907c('0x93')]);}else{_0x3938d0[_0x907c('0x39')](_0x3b81f5['table']+_0x907c('0x94'),_0x2da091[_0x907c('0x92')],_0x2da091[_0x907c('0x93')]);}if(_0x183542){logger['info'](_0x907c('0x95'),_0x3938d0[_0x907c('0x7e')]());require('child_process')[_0x907c('0x96')](path['join'](__dirname,'../../components/export/',_0x183542['output']),[_0x183542['id'],_0x3938d0[_0x907c('0x7e')](),path['join'](__dirname,'../../files/reports',_0x183542['savename']),_0x13237a]);return _0x183542;}else{var _0x4f7786=squel[_0x907c('0x87')]();_0x4f7786['from']('('+_0x3938d0['toString']()+')',_0x907c('0x97'));_0x4f7786[_0x907c('0x61')](_0x907c('0x98'),'count');_0x3938d0[_0x907c('0x1e')](_0x2da091[_0x907c('0x1e')]||_0x5b5005);_0x3938d0['offset'](_0x2da091[_0x907c('0x1d')]||0x0);return dbH['sequelize'][_0x907c('0x31')](_0x4f7786['toString'](),{'type':dbH[_0x907c('0x7f')][_0x907c('0x80')][_0x907c('0x81')]})[_0x907c('0x23')](function(_0x242a6f){if(!_0x242a6f[_0x907c('0x36')]){_0x1e5a23=0x0;}else{_0x1e5a23=_0x242a6f[0x0][_0x907c('0x20')]||0x0;}return dbH['sequelize'][_0x907c('0x31')](_0x3938d0[_0x907c('0x7e')](),{'type':dbH[_0x907c('0x7f')][_0x907c('0x80')]['SELECT']});})[_0x907c('0x23')](function(_0x50cd83){return{'rows':_0x50cd83||[],'count':_0x1e5a23};});}});}exports[_0x907c('0x99')]=function(_0x240f7f,_0x138823){return runReport(_0x240f7f['params'],_0x240f7f[_0x907c('0x31')],_0x240f7f[_0x907c('0x3d')])[_0x907c('0x23')](respondWithResult(_0x138823,null))[_0x907c('0x41')](handleError(_0x138823,null));};exports[_0x907c('0x9a')]=runReport;exports[_0x907c('0x31')]=function(_0x29c87f,_0x1cfff1){var _0x197a41=0xa;var _0x23d126=['join',_0x907c('0x4f'),_0x907c('0x50'),_0x907c('0x83')];var _0x4b3451={'SUM':_0x907c('0x51'),'COUNT':_0x907c('0x52'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x907c('0x84'),'MIN':_0x907c('0x54'),'AVG':_0x907c('0x55'),'GROUP_CONCAT':_0x907c('0x56'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x38e6c4={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x907c('0x59'),'HOUR':'HOUR(%s)','ROUND':_0x907c('0x5a'),'UNIX_TIMESTAMP':_0x907c('0x9b')};var _0x152879=function(_0x202bc3){return!_[_0x907c('0x74')]([_0x907c('0x5b'),_0x907c('0x5c'),_0x907c('0x5d'),_0x907c('0x5e')],_0x202bc3);};var _0x4c1ec3=function(_0x4464d7){if(!_0x4464d7||!_0x4464d7[_0x907c('0x5f')][_0x907c('0x36')]){return'';}for(var _0x577ab7='(',_0x39fcde=0x0;_0x39fcde<_0x4464d7[_0x907c('0x5f')][_0x907c('0x36')];_0x39fcde+=0x1){_0x39fcde>0x0&&(_0x577ab7+='\x20'+_0x4464d7[_0x907c('0x60')]+'\x20');_0x577ab7+=_0x4464d7['rules'][_0x39fcde][_0x907c('0x7b')]?_0x4c1ec3(_0x4464d7[_0x907c('0x5f')][_0x39fcde][_0x907c('0x7b')]):_0x4464d7[_0x907c('0x5f')][_0x39fcde][_0x907c('0x61')]+'\x20'+_0x4464d7[_0x907c('0x5f')][_0x39fcde]['condition']+(_0x152879(_0x4464d7[_0x907c('0x5f')][_0x39fcde][_0x907c('0x62')])?'\x20'+_0x4464d7[_0x907c('0x5f')][_0x39fcde]['value']:'');}return _0x577ab7+')';};var _0x41ca7e={'where':{'id':_0x29c87f['params']['id']}},_0x1a9f3a,_0x4ff267,_0x45a4a4,_0x49c9ee,_0x50fc7e;_0x41ca7e=_[_0x907c('0x3c')]({},_0x41ca7e,_0x29c87f[_0x907c('0x3d')]);return db[_0x907c('0x2d')]['find'](_0x41ca7e)['then'](function(_0x42a259){if(_0x42a259){_0x1a9f3a=_0x42a259;return _0x42a259[_0x907c('0x9c')]();}return null;})['then'](function(_0x4edde0){if(_0x4edde0){if(!_0x4edde0[_0x907c('0x36')]){throw new db[(_0x907c('0x64'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x4ff267=_0x4edde0;return db[_0x907c('0x67')][_0x907c('0x3f')]({'raw':!![]});}return null;})['then'](function(_0x59c303){if(_0x59c303){_0x45a4a4=_[_0x907c('0x68')](_0x59c303,'id');var _0x21d899;var _0x4a9882=squel[_0x907c('0x87')]();_0x4a9882[_0x907c('0x69')](_0x1a9f3a[_0x907c('0x6a')]);for(var _0x4d0b9d=0x0;_0x4d0b9d<_0x4ff267['length'];_0x4d0b9d+=0x1){_0x21d899=_0x4ff267[_0x4d0b9d][_0x907c('0x6b')]?_0x45a4a4[_0x4ff267[_0x4d0b9d]['MetricId']][_0x907c('0x6c')]:_0x4ff267[_0x4d0b9d][_0x907c('0x61')];_0x21d899=_0x4ff267[_0x4d0b9d][_0x907c('0x6d')]?_['replace'](_0x4b3451[_0x4ff267[_0x4d0b9d][_0x907c('0x6d')]],'%s',_0x21d899):_0x21d899;_0x21d899=_0x4ff267[_0x4d0b9d][_0x907c('0x6f')]?_[_0x907c('0x6e')](_0x38e6c4[_0x4ff267[_0x4d0b9d][_0x907c('0x6f')]],'%s',_0x21d899):_0x21d899;if(_0x4ff267[_0x4d0b9d][_0x907c('0x88')]){_0x4a9882[_0x907c('0x7b')](_0x21d899);}_0x4ff267[_0x4d0b9d][_0x907c('0x70')]&&_0x4a9882[_0x907c('0x71')](_0x21d899,_0x4ff267[_0x4d0b9d][_0x907c('0x70')]===_0x907c('0x72')?![]:!![]);_0x4a9882[_0x907c('0x61')](_0x21d899,_0x4ff267[_0x4d0b9d][_0x907c('0x89')]||_0x21d899);}if(_0x1a9f3a[_0x907c('0x73')]){_0x1a9f3a[_0x907c('0x73')]=JSON['parse'](_0x1a9f3a[_0x907c('0x73')]);for(var _0x5c53f9=0x0;_0x5c53f9<_0x1a9f3a['joins'][_0x907c('0x36')];_0x5c53f9+=0x1){if(_0x1a9f3a[_0x907c('0x73')][_0x5c53f9][_0x907c('0x2f')]&&_[_0x907c('0x74')](_0x23d126,_0x1a9f3a[_0x907c('0x73')][_0x5c53f9][_0x907c('0x2f')])&&_0x1a9f3a[_0x907c('0x73')][_0x5c53f9][_0x907c('0x75')]&&_0x1a9f3a[_0x907c('0x73')][_0x5c53f9]['foreignTable']&&_0x1a9f3a[_0x907c('0x73')][_0x5c53f9]['foreignKey']){_0x4a9882[_0x1a9f3a[_0x907c('0x73')][_0x5c53f9][_0x907c('0x2f')]](_0x1a9f3a[_0x907c('0x73')][_0x5c53f9][_0x907c('0x76')],null,util[_0x907c('0x6f')](_0x907c('0x78'),_0x1a9f3a[_0x907c('0x6a')],_0x1a9f3a['joins'][_0x5c53f9][_0x907c('0x75')],_0x1a9f3a['joins'][_0x5c53f9][_0x907c('0x76')],_0x1a9f3a[_0x907c('0x73')][_0x5c53f9]['foreignKey']));}}}if(_0x1a9f3a[_0x907c('0x79')]){_0x1a9f3a[_0x907c('0x79')]=JSON['parse'](_0x1a9f3a[_0x907c('0x79')]);_0x4a9882['where'](_0x4c1ec3(_0x1a9f3a['conditions'][_0x907c('0x7b')]));}_0x50fc7e=_0x4a9882[_0x907c('0x8a')]();_0x4a9882[_0x907c('0x1e')](_0x197a41);_0x4a9882[_0x907c('0x1d')](0x0);logger[_0x907c('0x7c')]('Limited\x20Query:',_0x4a9882[_0x907c('0x7e')]());return dbH[_0x907c('0x7f')][_0x907c('0x31')](_0x4a9882[_0x907c('0x7e')](),{'type':dbH[_0x907c('0x7f')][_0x907c('0x80')][_0x907c('0x81')]});}})[_0x907c('0x23')](function(){return{'sql':_0x50fc7e[_0x907c('0x7e')]()};})['then'](respondWithResult(_0x1cfff1,null))[_0x907c('0x41')](handleError(_0x1cfff1,null));};
\ No newline at end of file
+var _0xcf40=['save','then','get','CustomReports','UserProfileResource','destroy','name','send','index','map','AnalyticCustomReport','fieldName','type','key','model','keys','filters','intersection','attributes','fields','length','query','nolimit','order','where','pick','filter','merge','VIRTUAL','includeAll','include','rows','catch','params','rawAttributes','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Reports','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','join','cross_join','SUM(%s)','COUNT(%s)','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)','HOUR(%s)','ROUND(%s)','includes','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','keyBy','select','from','table','MetricId','metric','replace','function','format','groupBy','orderBy','DESC','joins','parse','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','left_join','DATE(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20NULL','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','alias','clone','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','run','runReport','right_join','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','dbH','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject'];(function(_0x2112d4,_0x3c863c){var _0x434972=function(_0x477020){while(--_0x477020){_0x2112d4['push'](_0x2112d4['shift']());}};_0x434972(++_0x3c863c);}(_0xcf40,0x1d0));var _0x0cf4=function(_0x4ffc16,_0x3df563){_0x4ffc16=_0x4ffc16-0x0;var _0x59b861=_0xcf40[_0x4ffc16];return _0x59b861;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0cf4('0x0'));var zipdir=require(_0x0cf4('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0cf4('0x2'));var moment=require(_0x0cf4('0x3'));var BPromise=require(_0x0cf4('0x4'));var Mustache=require(_0x0cf4('0x5'));var util=require('util');var path=require(_0x0cf4('0x6'));var sox=require(_0x0cf4('0x7'));var csv=require(_0x0cf4('0x8'));var ejs=require(_0x0cf4('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0cf4('0xa'));var squel=require(_0x0cf4('0xb'));var crypto=require('crypto');var jsforce=require(_0x0cf4('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x0cf4('0xd'));var Papa=require('papaparse');var Redis=require(_0x0cf4('0xe'));var authService=require(_0x0cf4('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x0cf4('0x10'));var hardwareService=require(_0x0cf4('0x11'));var logger=require('../../config/logger')(_0x0cf4('0x12'));var utils=require(_0x0cf4('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x0cf4('0x14'))['db'];var dbH=require('../../mysqldb')[_0x0cf4('0x15')];function respondWithStatusCode(_0x4db1f1,_0x7cc62e){_0x7cc62e=_0x7cc62e||0xcc;return function(_0x84b517){if(_0x84b517){return _0x4db1f1[_0x0cf4('0x16')](_0x7cc62e);}return _0x4db1f1[_0x0cf4('0x17')](_0x7cc62e)[_0x0cf4('0x18')]();};}function respondWithResult(_0x2e7db9,_0x52f992){_0x52f992=_0x52f992||0xc8;return function(_0x2ccc43){if(_0x2ccc43){return _0x2e7db9[_0x0cf4('0x17')](_0x52f992)[_0x0cf4('0x19')](_0x2ccc43);}};}function respondWithFilteredResult(_0x21f6f9,_0x5c99cc){return function(_0x5e05ce){if(_0x5e05ce){var _0x30948c=typeof _0x5c99cc[_0x0cf4('0x1a')]===_0x0cf4('0x1b')&&typeof _0x5c99cc['limit']===_0x0cf4('0x1b');var _0x511b8b=_0x5e05ce[_0x0cf4('0x1c')];var _0x570693=_0x30948c?0x0:_0x5c99cc[_0x0cf4('0x1a')];var _0x3c9e7b=_0x30948c?_0x5e05ce['count']:_0x5c99cc[_0x0cf4('0x1a')]+_0x5c99cc[_0x0cf4('0x1d')];var _0x2536d2;if(_0x3c9e7b>=_0x511b8b){_0x3c9e7b=_0x511b8b;_0x2536d2=0xc8;}else{_0x2536d2=0xce;}_0x21f6f9[_0x0cf4('0x17')](_0x2536d2);return _0x21f6f9[_0x0cf4('0x1e')](_0x0cf4('0x1f'),_0x570693+'-'+_0x3c9e7b+'/'+_0x511b8b)[_0x0cf4('0x19')](_0x5e05ce);}return null;};}function patchUpdates(_0x113a5c){return function(_0xf1578c){try{jsonpatch[_0x0cf4('0x20')](_0xf1578c,_0x113a5c,!![]);}catch(_0x49d083){return BPromise[_0x0cf4('0x21')](_0x49d083);}return _0xf1578c[_0x0cf4('0x22')]();};}function saveUpdates(_0x3b84a6,_0x1065fa){return function(_0x24b4a9){if(_0x24b4a9){return _0x24b4a9['update'](_0x3b84a6)['then'](function(_0x4c8b11){return _0x4c8b11;});}return null;};}function removeEntity(_0x1969a3,_0x17d142){return function(_0x34e29e){if(_0x34e29e){return _0x34e29e['destroy']()[_0x0cf4('0x23')](function(){var _0x51717c=_0x34e29e[_0x0cf4('0x24')]({'plain':!![]});var _0x391b7e=_0x0cf4('0x25');return db[_0x0cf4('0x26')][_0x0cf4('0x27')]({'where':{'type':_0x391b7e,'resourceId':_0x51717c['id']}})['then'](function(){return _0x34e29e;});})['then'](function(){_0x1969a3[_0x0cf4('0x17')](0xcc)[_0x0cf4('0x18')]();});}};}function handleEntityNotFound(_0x4d528d,_0x418c0a){return function(_0x2ed171){if(!_0x2ed171){_0x4d528d[_0x0cf4('0x16')](0x194);}return _0x2ed171;};}function handleError(_0x138e5b,_0x4b4c9e){_0x4b4c9e=_0x4b4c9e||0x1f4;return function(_0x388d71){logger['error'](_0x388d71['stack']);if(_0x388d71[_0x0cf4('0x28')]){delete _0x388d71['name'];}_0x138e5b['status'](_0x4b4c9e)[_0x0cf4('0x29')](_0x388d71);};}exports[_0x0cf4('0x2a')]=function(_0x130fba,_0x438698){var _0x132ee0={},_0x5a24b5={},_0x30ff4d={'count':0x0,'rows':[]};var _0x1db8be=_[_0x0cf4('0x2b')](db[_0x0cf4('0x2c')]['rawAttributes'],function(_0x14188d){return{'name':_0x14188d[_0x0cf4('0x2d')],'type':_0x14188d[_0x0cf4('0x2e')][_0x0cf4('0x2f')]};});_0x5a24b5[_0x0cf4('0x30')]=_[_0x0cf4('0x2b')](_0x1db8be,_0x0cf4('0x28'));_0x5a24b5['query']=_[_0x0cf4('0x31')](_0x130fba['query']);_0x5a24b5[_0x0cf4('0x32')]=_[_0x0cf4('0x33')](_0x5a24b5[_0x0cf4('0x30')],_0x5a24b5['query']);_0x132ee0[_0x0cf4('0x34')]=_[_0x0cf4('0x33')](_0x5a24b5[_0x0cf4('0x30')],qs[_0x0cf4('0x35')](_0x130fba['query'][_0x0cf4('0x35')]));_0x132ee0['attributes']=_0x132ee0['attributes'][_0x0cf4('0x36')]?_0x132ee0[_0x0cf4('0x34')]:_0x5a24b5[_0x0cf4('0x30')];if(!_0x130fba[_0x0cf4('0x37')]['hasOwnProperty'](_0x0cf4('0x38'))){_0x132ee0[_0x0cf4('0x1d')]=qs[_0x0cf4('0x1d')](_0x130fba[_0x0cf4('0x37')][_0x0cf4('0x1d')]);_0x132ee0[_0x0cf4('0x1a')]=qs[_0x0cf4('0x1a')](_0x130fba[_0x0cf4('0x37')]['offset']);}_0x132ee0[_0x0cf4('0x39')]=qs['sort'](_0x130fba[_0x0cf4('0x37')]['sort']);_0x132ee0[_0x0cf4('0x3a')]=qs[_0x0cf4('0x32')](_[_0x0cf4('0x3b')](_0x130fba[_0x0cf4('0x37')],_0x5a24b5[_0x0cf4('0x32')]),_0x1db8be);if(_0x130fba[_0x0cf4('0x37')][_0x0cf4('0x3c')]){_0x132ee0['where']=_[_0x0cf4('0x3d')](_0x132ee0[_0x0cf4('0x3a')],{'$or':_[_0x0cf4('0x2b')](_0x1db8be,function(_0xcf10e6){if(_0xcf10e6[_0x0cf4('0x2e')]!==_0x0cf4('0x3e')){var _0x41d6bd={};_0x41d6bd[_0xcf10e6[_0x0cf4('0x28')]]={'$like':'%'+_0x130fba['query'][_0x0cf4('0x3c')]+'%'};return _0x41d6bd;}})});}_0x132ee0=_[_0x0cf4('0x3d')]({},_0x132ee0,_0x130fba['options']);var _0x15720d={'where':_0x132ee0[_0x0cf4('0x3a')]};return db[_0x0cf4('0x2c')]['count'](_0x15720d)[_0x0cf4('0x23')](function(_0x14b453){_0x30ff4d[_0x0cf4('0x1c')]=_0x14b453;if(_0x130fba[_0x0cf4('0x37')][_0x0cf4('0x3f')]){_0x132ee0[_0x0cf4('0x40')]=[{'all':!![]}];}return db[_0x0cf4('0x2c')]['findAll'](_0x132ee0);})['then'](function(_0x428206){_0x30ff4d[_0x0cf4('0x41')]=_0x428206;return _0x30ff4d;})[_0x0cf4('0x23')](respondWithFilteredResult(_0x438698,_0x132ee0))[_0x0cf4('0x42')](handleError(_0x438698,null));};exports['show']=function(_0x1022c3,_0x20050b){var _0x54cad3={'raw':![],'where':{'id':_0x1022c3[_0x0cf4('0x43')]['id']}},_0x2b0950={};_0x2b0950[_0x0cf4('0x30')]=_[_0x0cf4('0x31')](db[_0x0cf4('0x2c')][_0x0cf4('0x44')]);_0x2b0950[_0x0cf4('0x37')]=_['keys'](_0x1022c3['query']);_0x2b0950[_0x0cf4('0x32')]=_['intersection'](_0x2b0950[_0x0cf4('0x30')],_0x2b0950[_0x0cf4('0x37')]);_0x54cad3[_0x0cf4('0x34')]=_[_0x0cf4('0x33')](_0x2b0950[_0x0cf4('0x30')],qs[_0x0cf4('0x35')](_0x1022c3[_0x0cf4('0x37')][_0x0cf4('0x35')]));_0x54cad3[_0x0cf4('0x34')]=_0x54cad3[_0x0cf4('0x34')][_0x0cf4('0x36')]?_0x54cad3[_0x0cf4('0x34')]:_0x2b0950[_0x0cf4('0x30')];if(_0x1022c3[_0x0cf4('0x37')][_0x0cf4('0x3f')]){_0x54cad3[_0x0cf4('0x40')]=[{'all':!![]}];}_0x54cad3=_[_0x0cf4('0x3d')]({},_0x54cad3,_0x1022c3[_0x0cf4('0x45')]);return db[_0x0cf4('0x2c')][_0x0cf4('0x46')](_0x54cad3)[_0x0cf4('0x23')](handleEntityNotFound(_0x20050b,null))[_0x0cf4('0x23')](respondWithResult(_0x20050b,null))[_0x0cf4('0x42')](handleError(_0x20050b,null));};exports[_0x0cf4('0x47')]=function(_0x19c239,_0x532ee9){return db['AnalyticCustomReport'][_0x0cf4('0x47')](_0x19c239['body'],{})[_0x0cf4('0x23')](function(_0x151dd7){var _0x37d08b=_0x19c239[_0x0cf4('0x48')][_0x0cf4('0x24')]({'plain':!![]});if(!_0x37d08b)throw new Error(_0x0cf4('0x49'));if(_0x37d08b['role']===_0x0cf4('0x48')){var _0x57834b=_0x151dd7['get']({'plain':!![]});var _0x2ffb31=_0x0cf4('0x4a');return db[_0x0cf4('0x4b')][_0x0cf4('0x46')]({'where':{'name':_0x2ffb31,'userProfileId':_0x37d08b[_0x0cf4('0x4c')]},'raw':!![]})[_0x0cf4('0x23')](function(_0x58c8cd){if(_0x58c8cd&&_0x58c8cd['autoAssociation']===0x0){return db[_0x0cf4('0x26')][_0x0cf4('0x47')]({'name':_0x57834b[_0x0cf4('0x28')],'resourceId':_0x57834b['id'],'type':_0x0cf4('0x25'),'sectionId':_0x58c8cd['id']},{})[_0x0cf4('0x23')](function(){return _0x151dd7;});}else{return _0x151dd7;}})[_0x0cf4('0x42')](function(_0x4dc155){logger[_0x0cf4('0x4d')](_0x0cf4('0x4e'),_0x4dc155);throw _0x4dc155;});}return _0x151dd7;})['then'](respondWithResult(_0x532ee9,0xc9))[_0x0cf4('0x42')](handleError(_0x532ee9,null));};exports['update']=function(_0x2df96a,_0x30ba53){if(_0x2df96a[_0x0cf4('0x4f')]['id']){delete _0x2df96a[_0x0cf4('0x4f')]['id'];}return db[_0x0cf4('0x2c')]['find']({'where':{'id':_0x2df96a[_0x0cf4('0x43')]['id']}})[_0x0cf4('0x23')](handleEntityNotFound(_0x30ba53,null))[_0x0cf4('0x23')](saveUpdates(_0x2df96a[_0x0cf4('0x4f')],null))[_0x0cf4('0x23')](respondWithResult(_0x30ba53,null))['catch'](handleError(_0x30ba53,null));};exports[_0x0cf4('0x27')]=function(_0x51c7f3,_0x8d5a1a){return db[_0x0cf4('0x2c')][_0x0cf4('0x46')]({'where':{'id':_0x51c7f3[_0x0cf4('0x43')]['id']}})[_0x0cf4('0x23')](handleEntityNotFound(_0x8d5a1a,null))[_0x0cf4('0x23')](removeEntity(_0x8d5a1a,null))[_0x0cf4('0x42')](handleError(_0x8d5a1a,null));};exports['preview']=function(_0x8dca6d,_0x3df663){var _0x42d888=0xa;var _0x217c62=[_0x0cf4('0x50'),'left_join','right_join',_0x0cf4('0x51')];var _0xbfe6ae={'SUM':_0x0cf4('0x52'),'COUNT':_0x0cf4('0x53'),'COUNT DISTINCT':_0x0cf4('0x54'),'MAX':_0x0cf4('0x55'),'MIN':_0x0cf4('0x56'),'AVG':_0x0cf4('0x57'),'GROUP_CONCAT':_0x0cf4('0x58'),'GROUP_CONCAT ASC':_0x0cf4('0x59'),'GROUP_CONCAT DESC':_0x0cf4('0x5a')};var _0x4f76d1={'SEC_TO_TIME':_0x0cf4('0x5b'),'DATE':'DATE(%s)','HOUR':_0x0cf4('0x5c'),'ROUND':_0x0cf4('0x5d'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x5aecf9=function(_0x1ab56a){return!_[_0x0cf4('0x5e')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x0cf4('0x5f'),_0x0cf4('0x60')],_0x1ab56a);};var _0x33965b=function(_0xd61d77){if(!_0xd61d77||!_0xd61d77[_0x0cf4('0x61')][_0x0cf4('0x36')]){return'';}for(var _0x27dc95='(',_0x2b1025=0x0;_0x2b1025<_0xd61d77[_0x0cf4('0x61')][_0x0cf4('0x36')];_0x2b1025+=0x1){_0x2b1025>0x0&&(_0x27dc95+='\x20'+_0xd61d77[_0x0cf4('0x62')]+'\x20');_0x27dc95+=_0xd61d77[_0x0cf4('0x61')][_0x2b1025][_0x0cf4('0x63')]?_0x33965b(_0xd61d77[_0x0cf4('0x61')][_0x2b1025][_0x0cf4('0x63')]):_0xd61d77['rules'][_0x2b1025][_0x0cf4('0x64')]+'\x20'+_0xd61d77[_0x0cf4('0x61')][_0x2b1025][_0x0cf4('0x65')]+(_0x5aecf9(_0xd61d77[_0x0cf4('0x61')][_0x2b1025][_0x0cf4('0x65')])?'\x20'+_0xd61d77['rules'][_0x2b1025][_0x0cf4('0x66')]:'');}return _0x27dc95+')';};var _0x5a24dd={'where':{'id':_0x8dca6d[_0x0cf4('0x43')]['id']}},_0x39f233,_0x294575,_0x47d7bd,_0x19a113,_0x400f24;_0x5a24dd=_['merge']({},_0x5a24dd,_0x8dca6d[_0x0cf4('0x45')]);return db[_0x0cf4('0x2c')][_0x0cf4('0x46')](_0x5a24dd)[_0x0cf4('0x23')](function(_0x5a86e6){if(_0x5a86e6){_0x39f233=_0x5a86e6;return _0x5a86e6[_0x0cf4('0x67')]();}return null;})[_0x0cf4('0x23')](function(_0x5e3ab2){if(_0x5e3ab2){if(!_0x5e3ab2['length']){throw new db[(_0x0cf4('0x68'))][(_0x0cf4('0x69'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x294575=_0x5e3ab2;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})[_0x0cf4('0x23')](function(_0xa03df8){if(_0xa03df8){_0x47d7bd=_[_0x0cf4('0x6a')](_0xa03df8,'id');var _0xadefac;var _0x46d240=squel[_0x0cf4('0x6b')]();_0x46d240[_0x0cf4('0x6c')](_0x39f233[_0x0cf4('0x6d')]);for(var _0x3ab342=0x0;_0x3ab342<_0x294575[_0x0cf4('0x36')];_0x3ab342+=0x1){_0xadefac=_0x294575[_0x3ab342][_0x0cf4('0x6e')]?_0x47d7bd[_0x294575[_0x3ab342]['MetricId']][_0x0cf4('0x6f')]:_0x294575[_0x3ab342][_0x0cf4('0x64')];_0xadefac=_0x294575[_0x3ab342]['function']?_[_0x0cf4('0x70')](_0xbfe6ae[_0x294575[_0x3ab342][_0x0cf4('0x71')]],'%s',_0xadefac):_0xadefac;_0xadefac=_0x294575[_0x3ab342][_0x0cf4('0x72')]?_[_0x0cf4('0x70')](_0x4f76d1[_0x294575[_0x3ab342][_0x0cf4('0x72')]],'%s',_0xadefac):_0xadefac;if(_0x294575[_0x3ab342][_0x0cf4('0x73')]){_0x46d240[_0x0cf4('0x63')](_0xadefac);}_0x294575[_0x3ab342]['orderBy']&&_0x46d240[_0x0cf4('0x39')](_0xadefac,_0x294575[_0x3ab342][_0x0cf4('0x74')]===_0x0cf4('0x75')?![]:!![]);_0x46d240['field'](_0xadefac,_0x294575[_0x3ab342]['alias']||_0xadefac);}if(_0x39f233[_0x0cf4('0x76')]){_0x39f233[_0x0cf4('0x76')]=JSON[_0x0cf4('0x77')](_0x39f233[_0x0cf4('0x76')]);for(var _0x337bbd=0x0;_0x337bbd<_0x39f233['joins'][_0x0cf4('0x36')];_0x337bbd+=0x1){if(_0x39f233['joins'][_0x337bbd]['type']&&_[_0x0cf4('0x5e')](_0x217c62,_0x39f233[_0x0cf4('0x76')][_0x337bbd][_0x0cf4('0x2e')])&&_0x39f233[_0x0cf4('0x76')][_0x337bbd][_0x0cf4('0x78')]&&_0x39f233[_0x0cf4('0x76')][_0x337bbd][_0x0cf4('0x79')]&&_0x39f233[_0x0cf4('0x76')][_0x337bbd][_0x0cf4('0x7a')]){_0x46d240[_0x39f233[_0x0cf4('0x76')][_0x337bbd][_0x0cf4('0x2e')]](_0x39f233['joins'][_0x337bbd][_0x0cf4('0x79')],null,util[_0x0cf4('0x72')](_0x0cf4('0x7b'),_0x39f233[_0x0cf4('0x6d')],_0x39f233[_0x0cf4('0x76')][_0x337bbd][_0x0cf4('0x78')],_0x39f233[_0x0cf4('0x76')][_0x337bbd][_0x0cf4('0x79')],_0x39f233[_0x0cf4('0x76')][_0x337bbd][_0x0cf4('0x7a')]));}}}if(_0x39f233[_0x0cf4('0x7c')]){_0x39f233[_0x0cf4('0x7c')]=JSON[_0x0cf4('0x77')](_0x39f233[_0x0cf4('0x7c')]);_0x46d240[_0x0cf4('0x3a')](_0x33965b(_0x39f233[_0x0cf4('0x7c')][_0x0cf4('0x63')]));}_0x400f24=_0x46d240['clone']();_0x46d240[_0x0cf4('0x1d')](_0x42d888);_0x46d240[_0x0cf4('0x1a')](0x0);logger[_0x0cf4('0x7d')](_0x0cf4('0x7e'),_0x46d240[_0x0cf4('0x7f')]());return dbH[_0x0cf4('0x80')][_0x0cf4('0x37')](_0x46d240[_0x0cf4('0x7f')](),{'type':dbH[_0x0cf4('0x80')][_0x0cf4('0x81')][_0x0cf4('0x82')]});}})[_0x0cf4('0x23')](respondWithResult(_0x3df663,null))[_0x0cf4('0x42')](handleError(_0x3df663,null));};function runReport(_0x4bc451,_0x5d2c0e,_0x584170){var _0x55b8f2=_0x5d2c0e[_0x0cf4('0x28')];var _0x18704f=0xa;var _0x29a7df=[_0x0cf4('0x50'),_0x0cf4('0x83'),'right_join',_0x0cf4('0x51')];var _0x44dc42={'SUM':_0x0cf4('0x52'),'COUNT':_0x0cf4('0x53'),'COUNT DISTINCT':_0x0cf4('0x54'),'MAX':_0x0cf4('0x55'),'MIN':_0x0cf4('0x56'),'AVG':_0x0cf4('0x57'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x0cf4('0x59'),'GROUP_CONCAT DESC':_0x0cf4('0x5a')};var _0x1ce4db={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x0cf4('0x84'),'HOUR':_0x0cf4('0x5c'),'ROUND':_0x0cf4('0x5d'),'UNIX_TIMESTAMP':_0x0cf4('0x85')};var _0x13d74a=function(_0x2db8ce){return!_[_0x0cf4('0x5e')]([_0x0cf4('0x86'),_0x0cf4('0x87'),_0x0cf4('0x5f'),_0x0cf4('0x60')],_0x2db8ce);};var _0x7e542f=function(_0x3dbe48){if(!_0x3dbe48||!_0x3dbe48[_0x0cf4('0x61')][_0x0cf4('0x36')]){return'';}for(var _0x364576='(',_0x20edd0=0x0;_0x20edd0<_0x3dbe48[_0x0cf4('0x61')]['length'];_0x20edd0+=0x1){_0x20edd0>0x0&&(_0x364576+='\x20'+_0x3dbe48[_0x0cf4('0x62')]+'\x20');_0x364576+=_0x3dbe48['rules'][_0x20edd0][_0x0cf4('0x63')]?_0x7e542f(_0x3dbe48[_0x0cf4('0x61')][_0x20edd0][_0x0cf4('0x63')]):_0x3dbe48[_0x0cf4('0x61')][_0x20edd0][_0x0cf4('0x64')]+'\x20'+_0x3dbe48['rules'][_0x20edd0][_0x0cf4('0x65')]+(_0x13d74a(_0x3dbe48['rules'][_0x20edd0][_0x0cf4('0x65')])?'\x20'+_0x3dbe48[_0x0cf4('0x61')][_0x20edd0][_0x0cf4('0x66')]:'');}return _0x364576+')';};var _0x4575a9={'where':{'id':_0x4bc451['id']}},_0x33ac69,_0xb4e5c1,_0x4a1b3b,_0x463d4a,_0x29e32c;_0x4575a9=_[_0x0cf4('0x3d')]({},_0x4575a9,_0x584170);return db[_0x0cf4('0x2c')]['find'](_0x4575a9)['then'](function(_0x1d5d7f){if(_0x1d5d7f){_0x33ac69=_0x1d5d7f;return _0x1d5d7f[_0x0cf4('0x67')]();}return null;})['then'](function(_0x41c780){if(_0x41c780){if(!_0x41c780[_0x0cf4('0x36')]){throw new db[(_0x0cf4('0x68'))][(_0x0cf4('0x69'))](_0x0cf4('0x88'),0x193);}_0xb4e5c1=_0x41c780;return db[_0x0cf4('0x89')][_0x0cf4('0x8a')]({'raw':!![]});}return null;})[_0x0cf4('0x23')](function(_0x56d05a){if(_0x56d05a){_0x4a1b3b=_['keyBy'](_0x56d05a,'id');var _0x2250b0;var _0x3e2c46=squel['select']();_0x3e2c46[_0x0cf4('0x6c')](_0x33ac69['table']);for(var _0x1ffa46=0x0;_0x1ffa46<_0xb4e5c1[_0x0cf4('0x36')];_0x1ffa46+=0x1){_0x2250b0=_0xb4e5c1[_0x1ffa46]['MetricId']?_0x4a1b3b[_0xb4e5c1[_0x1ffa46][_0x0cf4('0x6e')]]['metric']:_0xb4e5c1[_0x1ffa46]['field'];_0x2250b0=_0xb4e5c1[_0x1ffa46][_0x0cf4('0x71')]?_[_0x0cf4('0x70')](_0x44dc42[_0xb4e5c1[_0x1ffa46][_0x0cf4('0x71')]],'%s',_0x2250b0):_0x2250b0;_0x2250b0=_0xb4e5c1[_0x1ffa46][_0x0cf4('0x72')]?_[_0x0cf4('0x70')](_0x1ce4db[_0xb4e5c1[_0x1ffa46][_0x0cf4('0x72')]],'%s',_0x2250b0):_0x2250b0;if(_0xb4e5c1[_0x1ffa46]['groupBy']){_0x3e2c46[_0x0cf4('0x63')](_0x2250b0);}_0xb4e5c1[_0x1ffa46][_0x0cf4('0x74')]&&_0x3e2c46[_0x0cf4('0x39')](_0x2250b0,_0xb4e5c1[_0x1ffa46]['orderBy']===_0x0cf4('0x75')?![]:!![]);_0x3e2c46[_0x0cf4('0x64')](_0x2250b0,_0xb4e5c1[_0x1ffa46][_0x0cf4('0x8b')]||_0x2250b0);}if(_0x33ac69[_0x0cf4('0x76')]){_0x33ac69[_0x0cf4('0x76')]=JSON[_0x0cf4('0x77')](_0x33ac69[_0x0cf4('0x76')]);for(var _0x3c0bef=0x0;_0x3c0bef<_0x33ac69[_0x0cf4('0x76')][_0x0cf4('0x36')];_0x3c0bef+=0x1){if(_0x33ac69['joins'][_0x3c0bef][_0x0cf4('0x2e')]&&_['includes'](_0x29a7df,_0x33ac69[_0x0cf4('0x76')][_0x3c0bef][_0x0cf4('0x2e')])&&_0x33ac69[_0x0cf4('0x76')][_0x3c0bef][_0x0cf4('0x78')]&&_0x33ac69[_0x0cf4('0x76')][_0x3c0bef][_0x0cf4('0x79')]&&_0x33ac69[_0x0cf4('0x76')][_0x3c0bef][_0x0cf4('0x7a')]){_0x3e2c46[_0x33ac69[_0x0cf4('0x76')][_0x3c0bef]['type']](_0x33ac69[_0x0cf4('0x76')][_0x3c0bef][_0x0cf4('0x79')],null,util[_0x0cf4('0x72')]('%s.%s\x20=\x20%s.%s',_0x33ac69['table'],_0x33ac69['joins'][_0x3c0bef][_0x0cf4('0x78')],_0x33ac69['joins'][_0x3c0bef][_0x0cf4('0x79')],_0x33ac69[_0x0cf4('0x76')][_0x3c0bef]['foreignKey']));}}}if(_0x33ac69[_0x0cf4('0x7c')]){_0x33ac69['conditions']=JSON['parse'](_0x33ac69[_0x0cf4('0x7c')]);_0x3e2c46[_0x0cf4('0x3a')](_0x7e542f(_0x33ac69[_0x0cf4('0x7c')][_0x0cf4('0x63')]));}_0x29e32c=_0x3e2c46[_0x0cf4('0x8c')]();_0x3e2c46[_0x0cf4('0x1d')](_0x18704f);_0x3e2c46['offset'](0x0);return;}})[_0x0cf4('0x23')](function(){if(_0x5d2c0e[_0x0cf4('0x8d')]===_0x0cf4('0x8e')){return null;}var _0x467c5a=_[_0x0cf4('0x3d')](_0x5d2c0e,{'name':_0x5d2c0e[_0x0cf4('0x8f')]||_0x5d2c0e[_0x0cf4('0x28')]||_0x33ac69[_0x0cf4('0x28')],'basename':_0x55b8f2,'savename':util[_0x0cf4('0x72')](_0x0cf4('0x90'),_0x5d2c0e[_0x0cf4('0x28')]||_0x33ac69[_0x0cf4('0x28')],require(_0x0cf4('0x91'))[_0x0cf4('0x92')](0x4),_0x5d2c0e[_0x0cf4('0x8d')]||_0x0cf4('0x93')),'reportId':_0x33ac69['id'],'reportType':'custom'});return db[_0x0cf4('0x94')]['create'](_0x467c5a,{'raw':!![]});})[_0x0cf4('0x23')](function(_0x2f850e){if(_0x33ac69['table']===_0x0cf4('0x95')){_0x29e32c[_0x0cf4('0x3a')](_0x33ac69[_0x0cf4('0x6d')]+_0x0cf4('0x96'),_0x5d2c0e[_0x0cf4('0x97')],_0x5d2c0e[_0x0cf4('0x98')]);}else{_0x29e32c[_0x0cf4('0x3a')](_0x33ac69[_0x0cf4('0x6d')]+_0x0cf4('0x99'),_0x5d2c0e['startDate'],_0x5d2c0e[_0x0cf4('0x98')]);}if(_0x2f850e){logger[_0x0cf4('0x9a')](_0x0cf4('0x9b'),_0x29e32c['toString']());require(_0x0cf4('0x9c'))[_0x0cf4('0x9d')](path[_0x0cf4('0x50')](__dirname,_0x0cf4('0x9e'),_0x2f850e['output']),[_0x2f850e['id'],_0x29e32c[_0x0cf4('0x7f')](),path[_0x0cf4('0x50')](__dirname,_0x0cf4('0x9f'),_0x2f850e[_0x0cf4('0xa0')]),_0x55b8f2]);return _0x2f850e;}else{var _0x5bf96a=squel['select']();_0x5bf96a[_0x0cf4('0x6c')]('('+_0x29e32c['toString']()+')',_0x0cf4('0xa1'));_0x5bf96a[_0x0cf4('0x64')](_0x0cf4('0xa2'),'count');_0x29e32c[_0x0cf4('0x1d')](_0x5d2c0e['limit']||_0x18704f);_0x29e32c[_0x0cf4('0x1a')](_0x5d2c0e[_0x0cf4('0x1a')]||0x0);return dbH['sequelize'][_0x0cf4('0x37')](_0x5bf96a['toString'](),{'type':dbH[_0x0cf4('0x80')]['QueryTypes'][_0x0cf4('0x82')]})[_0x0cf4('0x23')](function(_0x3691dd){if(!_0x3691dd[_0x0cf4('0x36')]){_0x463d4a=0x0;}else{_0x463d4a=_0x3691dd[0x0][_0x0cf4('0x1c')]||0x0;}return dbH[_0x0cf4('0x80')][_0x0cf4('0x37')](_0x29e32c[_0x0cf4('0x7f')](),{'type':dbH[_0x0cf4('0x80')]['QueryTypes']['SELECT']});})['then'](function(_0x467fbd){return{'rows':_0x467fbd||[],'count':_0x463d4a};});}});}exports[_0x0cf4('0xa3')]=function(_0x9b9114,_0x3d71c9){return runReport(_0x9b9114[_0x0cf4('0x43')],_0x9b9114[_0x0cf4('0x37')],_0x9b9114['options'])[_0x0cf4('0x23')](respondWithResult(_0x3d71c9,null))[_0x0cf4('0x42')](handleError(_0x3d71c9,null));};exports[_0x0cf4('0xa4')]=runReport;exports[_0x0cf4('0x37')]=function(_0x7f3af,_0x19d9ab){var _0x4f4d22=0xa;var _0x2c2380=['join',_0x0cf4('0x83'),_0x0cf4('0xa5'),_0x0cf4('0x51')];var _0x1ce21a={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0x0cf4('0x54'),'MAX':'MAX(%s)','MIN':_0x0cf4('0x56'),'AVG':_0x0cf4('0x57'),'GROUP_CONCAT':_0x0cf4('0x58'),'GROUP_CONCAT ASC':_0x0cf4('0x59'),'GROUP_CONCAT DESC':_0x0cf4('0x5a')};var _0x10ebcb={'SEC_TO_TIME':_0x0cf4('0x5b'),'DATE':'DATE(%s)','HOUR':_0x0cf4('0x5c'),'ROUND':_0x0cf4('0x5d'),'UNIX_TIMESTAMP':_0x0cf4('0x85')};var _0x5891cc=function(_0x1cb3a7){return!_['includes']([_0x0cf4('0x86'),_0x0cf4('0x87'),_0x0cf4('0x5f'),_0x0cf4('0x60')],_0x1cb3a7);};var _0x2139cc=function(_0x424c2c){if(!_0x424c2c||!_0x424c2c[_0x0cf4('0x61')][_0x0cf4('0x36')]){return'';}for(var _0x10b0e5='(',_0x2e34fe=0x0;_0x2e34fe<_0x424c2c[_0x0cf4('0x61')][_0x0cf4('0x36')];_0x2e34fe+=0x1){_0x2e34fe>0x0&&(_0x10b0e5+='\x20'+_0x424c2c[_0x0cf4('0x62')]+'\x20');_0x10b0e5+=_0x424c2c[_0x0cf4('0x61')][_0x2e34fe]['group']?_0x2139cc(_0x424c2c[_0x0cf4('0x61')][_0x2e34fe][_0x0cf4('0x63')]):_0x424c2c[_0x0cf4('0x61')][_0x2e34fe][_0x0cf4('0x64')]+'\x20'+_0x424c2c[_0x0cf4('0x61')][_0x2e34fe]['condition']+(_0x5891cc(_0x424c2c['rules'][_0x2e34fe][_0x0cf4('0x65')])?'\x20'+_0x424c2c[_0x0cf4('0x61')][_0x2e34fe][_0x0cf4('0x66')]:'');}return _0x10b0e5+')';};var _0x3cbb72={'where':{'id':_0x7f3af[_0x0cf4('0x43')]['id']}},_0x1f13ac,_0x4cf048,_0x16e288,_0x4250b1,_0x63edd5;_0x3cbb72=_['merge']({},_0x3cbb72,_0x7f3af[_0x0cf4('0x45')]);return db[_0x0cf4('0x2c')][_0x0cf4('0x46')](_0x3cbb72)[_0x0cf4('0x23')](function(_0x3d0175){if(_0x3d0175){_0x1f13ac=_0x3d0175;return _0x3d0175[_0x0cf4('0x67')]();}return null;})[_0x0cf4('0x23')](function(_0x1a6297){if(_0x1a6297){if(!_0x1a6297[_0x0cf4('0x36')]){throw new db[(_0x0cf4('0x68'))][(_0x0cf4('0x69'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x4cf048=_0x1a6297;return db[_0x0cf4('0x89')][_0x0cf4('0x8a')]({'raw':!![]});}return null;})['then'](function(_0x475f14){if(_0x475f14){_0x16e288=_[_0x0cf4('0x6a')](_0x475f14,'id');var _0x334bc9;var _0x45c850=squel['select']();_0x45c850['from'](_0x1f13ac['table']);for(var _0x3e029c=0x0;_0x3e029c<_0x4cf048['length'];_0x3e029c+=0x1){_0x334bc9=_0x4cf048[_0x3e029c][_0x0cf4('0x6e')]?_0x16e288[_0x4cf048[_0x3e029c]['MetricId']][_0x0cf4('0x6f')]:_0x4cf048[_0x3e029c][_0x0cf4('0x64')];_0x334bc9=_0x4cf048[_0x3e029c]['function']?_['replace'](_0x1ce21a[_0x4cf048[_0x3e029c][_0x0cf4('0x71')]],'%s',_0x334bc9):_0x334bc9;_0x334bc9=_0x4cf048[_0x3e029c][_0x0cf4('0x72')]?_['replace'](_0x10ebcb[_0x4cf048[_0x3e029c][_0x0cf4('0x72')]],'%s',_0x334bc9):_0x334bc9;if(_0x4cf048[_0x3e029c]['groupBy']){_0x45c850[_0x0cf4('0x63')](_0x334bc9);}_0x4cf048[_0x3e029c]['orderBy']&&_0x45c850[_0x0cf4('0x39')](_0x334bc9,_0x4cf048[_0x3e029c]['orderBy']==='DESC'?![]:!![]);_0x45c850[_0x0cf4('0x64')](_0x334bc9,_0x4cf048[_0x3e029c]['alias']||_0x334bc9);}if(_0x1f13ac[_0x0cf4('0x76')]){_0x1f13ac[_0x0cf4('0x76')]=JSON[_0x0cf4('0x77')](_0x1f13ac[_0x0cf4('0x76')]);for(var _0x539a0d=0x0;_0x539a0d<_0x1f13ac[_0x0cf4('0x76')][_0x0cf4('0x36')];_0x539a0d+=0x1){if(_0x1f13ac[_0x0cf4('0x76')][_0x539a0d][_0x0cf4('0x2e')]&&_['includes'](_0x2c2380,_0x1f13ac[_0x0cf4('0x76')][_0x539a0d]['type'])&&_0x1f13ac[_0x0cf4('0x76')][_0x539a0d]['parentKey']&&_0x1f13ac[_0x0cf4('0x76')][_0x539a0d]['foreignTable']&&_0x1f13ac[_0x0cf4('0x76')][_0x539a0d][_0x0cf4('0x7a')]){_0x45c850[_0x1f13ac[_0x0cf4('0x76')][_0x539a0d][_0x0cf4('0x2e')]](_0x1f13ac[_0x0cf4('0x76')][_0x539a0d]['foreignTable'],null,util[_0x0cf4('0x72')](_0x0cf4('0x7b'),_0x1f13ac[_0x0cf4('0x6d')],_0x1f13ac['joins'][_0x539a0d][_0x0cf4('0x78')],_0x1f13ac[_0x0cf4('0x76')][_0x539a0d][_0x0cf4('0x79')],_0x1f13ac['joins'][_0x539a0d]['foreignKey']));}}}if(_0x1f13ac['conditions']){_0x1f13ac[_0x0cf4('0x7c')]=JSON[_0x0cf4('0x77')](_0x1f13ac['conditions']);_0x45c850[_0x0cf4('0x3a')](_0x2139cc(_0x1f13ac[_0x0cf4('0x7c')][_0x0cf4('0x63')]));}_0x63edd5=_0x45c850[_0x0cf4('0x8c')]();_0x45c850[_0x0cf4('0x1d')](_0x4f4d22);_0x45c850[_0x0cf4('0x1a')](0x0);logger[_0x0cf4('0x7d')](_0x0cf4('0x7e'),_0x45c850[_0x0cf4('0x7f')]());return dbH['sequelize'][_0x0cf4('0x37')](_0x45c850[_0x0cf4('0x7f')](),{'type':dbH[_0x0cf4('0x80')]['QueryTypes'][_0x0cf4('0x82')]});}})[_0x0cf4('0x23')](function(){return{'sql':_0x63edd5[_0x0cf4('0x7f')]()};})[_0x0cf4('0x23')](respondWithResult(_0x19d9ab,null))['catch'](handleError(_0x19d9ab,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4610=['../../config/environment','./analyticCustomReport.attributes','define','AnalyticCustomReport','lodash','util','../../config/logger','api','moment'];(function(_0x2390e5,_0x369025){var _0xa6038f=function(_0x2e74a3){while(--_0x2e74a3){_0x2390e5['push'](_0x2390e5['shift']());}};_0xa6038f(++_0x369025);}(_0x4610,0x1ea));var _0x0461=function(_0x1f16de,_0x548eb9){_0x1f16de=_0x1f16de-0x0;var _0x36cd80=_0x4610[_0x1f16de];return _0x36cd80;};'use strict';var _=require(_0x0461('0x0'));var util=require(_0x0461('0x1'));var logger=require(_0x0461('0x2'))(_0x0461('0x3'));var moment=require(_0x0461('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x0461('0x5'));var attributes=require(_0x0461('0x6'));module['exports']=function(_0x5214fc,_0x34f6a1){return _0x5214fc[_0x0461('0x7')](_0x0461('0x8'),attributes,{'tableName':'analytics_custom_reports','paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x718e=['moment','path','exports','define','AnalyticCustomReport','lodash','util','../../config/logger','api'];(function(_0x544dc9,_0x24cc13){var _0x2e2518=function(_0x13ff1f){while(--_0x13ff1f){_0x544dc9['push'](_0x544dc9['shift']());}};_0x2e2518(++_0x24cc13);}(_0x718e,0x1eb));var _0xe718=function(_0x42fd67,_0x5dbdfd){_0x42fd67=_0x42fd67-0x0;var _0x3293f5=_0x718e[_0x42fd67];return _0x3293f5;};'use strict';var _=require(_0xe718('0x0'));var util=require(_0xe718('0x1'));var logger=require(_0xe718('0x2'))(_0xe718('0x3'));var moment=require(_0xe718('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xe718('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./analyticCustomReport.attributes');module[_0xe718('0x6')]=function(_0x173637,_0x5b8cd6){return _0x173637[_0xe718('0x7')](_0xe718('0x8'),attributes,{'tableName':'analytics_custom_reports','paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x36ea=['rpc','../../config/environment','jayson/promise','http','request','info','AnalyticCustomReport,\x20%s,\x20%s','debug','AnalyticCustomReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger'];(function(_0x2e79bc,_0x3f343e){var _0x39e336=function(_0x218bb0){while(--_0x218bb0){_0x2e79bc['push'](_0x2e79bc['shift']());}};_0x39e336(++_0x3f343e);}(_0x36ea,0xf5));var _0xa36e=function(_0x19bf5f,_0x1ca6b9){_0x19bf5f=_0x19bf5f-0x0;var _0x237efa=_0x36ea[_0x19bf5f];return _0x237efa;};'use strict';var _=require(_0xa36e('0x0'));var util=require(_0xa36e('0x1'));var moment=require('moment');var BPromise=require(_0xa36e('0x2'));var rs=require(_0xa36e('0x3'));var fs=require('fs');var Redis=require(_0xa36e('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xa36e('0x5'));var logger=require(_0xa36e('0x6'))(_0xa36e('0x7'));var config=require(_0xa36e('0x8'));var jayson=require(_0xa36e('0x9'));var client=jayson['client'][_0xa36e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x10aace,_0x46a192,_0x1e2356){return new BPromise(function(_0x2971ad,_0x4a5877){return client[_0xa36e('0xb')](_0x10aace,_0x1e2356)['then'](function(_0x48dbd2){logger[_0xa36e('0xc')](_0xa36e('0xd'),_0x46a192,'request\x20sent');logger[_0xa36e('0xe')](_0xa36e('0xf'),_0x46a192,_0xa36e('0x10'),JSON[_0xa36e('0x11')](_0x48dbd2));if(_0x48dbd2[_0xa36e('0x12')]){if(_0x48dbd2[_0xa36e('0x12')]['code']===0x1f4){logger[_0xa36e('0x12')](_0xa36e('0xd'),_0x46a192,_0x48dbd2[_0xa36e('0x12')][_0xa36e('0x13')]);return _0x4a5877(_0x48dbd2['error']['message']);}logger[_0xa36e('0x12')](_0xa36e('0xd'),_0x46a192,_0x48dbd2[_0xa36e('0x12')][_0xa36e('0x13')]);return _0x2971ad(_0x48dbd2[_0xa36e('0x12')][_0xa36e('0x13')]);}else{logger[_0xa36e('0xc')](_0xa36e('0xd'),_0x46a192,_0xa36e('0x10'));_0x2971ad(_0x48dbd2[_0xa36e('0x14')][_0xa36e('0x13')]);}})['catch'](function(_0x212a45){logger[_0xa36e('0x12')](_0xa36e('0xd'),_0x46a192,_0x212a45);_0x4a5877(_0x212a45);});});}
\ No newline at end of file
+var _0x7296=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','AnalyticCustomReport,\x20%s,\x20%s','request\x20sent','stringify','error','message','info','result','catch','util','moment'];(function(_0x4b54fb,_0x2150e4){var _0x375eb4=function(_0x461679){while(--_0x461679){_0x4b54fb['push'](_0x4b54fb['shift']());}};_0x375eb4(++_0x2150e4);}(_0x7296,0x1e2));var _0x6729=function(_0xf91841,_0x182ae3){_0xf91841=_0xf91841-0x0;var _0x4b9c44=_0x7296[_0xf91841];return _0x4b9c44;};'use strict';var _=require('lodash');var util=require(_0x6729('0x0'));var moment=require(_0x6729('0x1'));var BPromise=require(_0x6729('0x2'));var rs=require(_0x6729('0x3'));var fs=require('fs');var Redis=require(_0x6729('0x4'));var db=require(_0x6729('0x5'))['db'];var utils=require(_0x6729('0x6'));var logger=require('../../config/logger')(_0x6729('0x7'));var config=require(_0x6729('0x8'));var jayson=require(_0x6729('0x9'));var client=jayson[_0x6729('0xa')][_0x6729('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x233f1c,_0x51454a,_0xf1ce5f){return new BPromise(function(_0x3efcdb,_0x1a6434){return client[_0x6729('0xc')](_0x233f1c,_0xf1ce5f)[_0x6729('0xd')](function(_0x1d688f){logger['info'](_0x6729('0xe'),_0x51454a,_0x6729('0xf'));logger['debug']('AnalyticCustomReport,\x20%s,\x20%s,\x20%s',_0x51454a,_0x6729('0xf'),JSON[_0x6729('0x10')](_0x1d688f));if(_0x1d688f['error']){if(_0x1d688f['error']['code']===0x1f4){logger['error'](_0x6729('0xe'),_0x51454a,_0x1d688f[_0x6729('0x11')]['message']);return _0x1a6434(_0x1d688f[_0x6729('0x11')][_0x6729('0x12')]);}logger[_0x6729('0x11')](_0x6729('0xe'),_0x51454a,_0x1d688f[_0x6729('0x11')][_0x6729('0x12')]);return _0x3efcdb(_0x1d688f['error']['message']);}else{logger[_0x6729('0x13')](_0x6729('0xe'),_0x51454a,'request\x20sent');_0x3efcdb(_0x1d688f[_0x6729('0x14')][_0x6729('0x12')]);}})[_0x6729('0x15')](function(_0x3c33f8){logger[_0x6729('0x11')]('AnalyticCustomReport,\x20%s,\x20%s',_0x51454a,_0x3c33f8);_0x1a6434(_0x3c33f8);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x66b3=['multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticCustomReport.controller','get','isAuthenticated','/:id','show','/:id/preview','preview','run','query','create','update','delete','exports'];(function(_0x1d1827,_0x25e11f){var _0x34b156=function(_0x5403db){while(--_0x5403db){_0x1d1827['push'](_0x1d1827['shift']());}};_0x34b156(++_0x25e11f);}(_0x66b3,0xc6));var _0x366b=function(_0x514a41,_0x5e9263){_0x514a41=_0x514a41-0x0;var _0x31511d=_0x66b3[_0x514a41];return _0x31511d;};'use strict';var multer=require(_0x366b('0x0'));var util=require(_0x366b('0x1'));var path=require(_0x366b('0x2'));var timeout=require(_0x366b('0x3'));var express=require('express');var router=express[_0x366b('0x4')]();var fs_extra=require(_0x366b('0x5'));var auth=require(_0x366b('0x6'));var interaction=require(_0x366b('0x7'));var config=require(_0x366b('0x8'));var controller=require(_0x366b('0x9'));router[_0x366b('0xa')]('/',auth[_0x366b('0xb')](),controller['index']);router[_0x366b('0xa')](_0x366b('0xc'),auth[_0x366b('0xb')](),controller[_0x366b('0xd')]);router[_0x366b('0xa')](_0x366b('0xe'),auth[_0x366b('0xb')](),controller[_0x366b('0xf')]);router[_0x366b('0xa')]('/:id/run',auth['isAuthenticated'](),controller[_0x366b('0x10')]);router[_0x366b('0xa')]('/:id/query',auth[_0x366b('0xb')](),controller[_0x366b('0x11')]);router['post']('/',auth[_0x366b('0xb')](),controller[_0x366b('0x12')]);router['put'](_0x366b('0xc'),auth[_0x366b('0xb')](),controller[_0x366b('0x13')]);router[_0x366b('0x14')](_0x366b('0xc'),auth[_0x366b('0xb')](),controller['destroy']);module[_0x366b('0x15')]=router;
\ No newline at end of file
+var _0x3655=['../../components/auth/service','../../config/environment','./analyticCustomReport.controller','isAuthenticated','index','/:id','show','get','run','/:id/query','post','create','put','delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x3655,0x19c));var _0x5365=function(_0x33d4dd,_0xab8529){_0x33d4dd=_0x33d4dd-0x0;var _0x44d328=_0x3655[_0x33d4dd];return _0x44d328;};'use strict';var multer=require(_0x5365('0x0'));var util=require(_0x5365('0x1'));var path=require(_0x5365('0x2'));var timeout=require(_0x5365('0x3'));var express=require('express');var router=express[_0x5365('0x4')]();var fs_extra=require(_0x5365('0x5'));var auth=require(_0x5365('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x5365('0x7'));var controller=require(_0x5365('0x8'));router['get']('/',auth[_0x5365('0x9')](),controller[_0x5365('0xa')]);router['get'](_0x5365('0xb'),auth[_0x5365('0x9')](),controller[_0x5365('0xc')]);router[_0x5365('0xd')]('/:id/preview',auth[_0x5365('0x9')](),controller['preview']);router[_0x5365('0xd')]('/:id/run',auth['isAuthenticated'](),controller[_0x5365('0xe')]);router['get'](_0x5365('0xf'),auth[_0x5365('0x9')](),controller['query']);router[_0x5365('0x10')]('/',auth[_0x5365('0x9')](),controller[_0x5365('0x11')]);router[_0x5365('0x12')](_0x5365('0xb'),auth[_0x5365('0x9')](),controller['update']);router[_0x5365('0x13')]('/:id',auth['isAuthenticated'](),controller[_0x5365('0x14')]);module[_0x5365('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7da7=['TEXT','sequelize','exports','STRING'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x7da7,0x10d));var _0x77da=function(_0x59ae8f,_0x148344){_0x59ae8f=_0x59ae8f-0x0;var _0x3900b5=_0x7da7[_0x59ae8f];return _0x3900b5;};'use strict';var Sequelize=require(_0x77da('0x0'));module[_0x77da('0x1')]={'name':{'type':Sequelize[_0x77da('0x2')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'parent':{'type':Sequelize['STRING']},'table':{'type':Sequelize[_0x77da('0x2')]},'conditions':{'type':Sequelize[_0x77da('0x3')]},'joins':{'type':Sequelize['TEXT']}};
\ No newline at end of file
+var _0x814b=['STRING','TEXT','sequelize','exports'];(function(_0x3fad49,_0x4e166b){var _0x3869d4=function(_0x172802){while(--_0x172802){_0x3fad49['push'](_0x3fad49['shift']());}};_0x3869d4(++_0x4e166b);}(_0x814b,0x1a2));var _0xb814=function(_0x1e4150,_0x55b02a){_0x1e4150=_0x1e4150-0x0;var _0x1ce3ee=_0x814b[_0x1e4150];return _0x1ce3ee;};'use strict';var Sequelize=require(_0xb814('0x0'));module[_0xb814('0x1')]={'name':{'type':Sequelize[_0xb814('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xb814('0x2')]},'parent':{'type':Sequelize[_0xb814('0x2')]},'table':{'type':Sequelize[_0xb814('0x2')]},'conditions':{'type':Sequelize['TEXT']},'joins':{'type':Sequelize[_0xb814('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef3=['Sequelize','from','foreignKey','output','web','fullPath','generate','csv','cdr','startDate','endDate','info','child_process','fork','../../components/export/','savename','countTable','COUNT(*)','runReport','IS\x20NULL','IS\x20NOT\x20EMPTY','metric','Limited\x20Query:','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','../../mysqldb','status','offset','undefined','count','limit','set','Content-Range','apply','save','then','destroy','get','DefaultReports','UserProfileResource','end','error','stack','name','send','index','map','rawAttributes','type','key','model','query','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','AnalyticDefaultReport','includeAll','include','findAll','rows','catch','show','params','keys','fields','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','autoAssociation','update','preview','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','HOUR(%s)','ROUND(%s)','includes','IS\x20EMPTY','operator','rules','group','condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','MetricId','field','function','replace','format','groupBy','orderBy','DESC','alias','joins','parentKey','foreignTable','%s.%s\x20=\x20%s.%s','table','conditions','parse','clone','debug','toString','sequelize','QueryTypes','SELECT','join','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','UNIX_TIMESTAMP(%s)','IS\x20NOT\x20NULL'];(function(_0x334841,_0x2bbc4c){var _0x5beb4b=function(_0x4bea72){while(--_0x4bea72){_0x334841['push'](_0x334841['shift']());}};_0x5beb4b(++_0x2bbc4c);}(_0x2ef3,0xba));var _0x32ef=function(_0x11b657,_0x17d9e4){_0x11b657=_0x11b657-0x0;var _0x51efc2=_0x2ef3[_0x11b657];return _0x51efc2;};'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'];var dbH=require(_0x32ef('0x18'))['dbH'];function respondWithStatusCode(_0x3e98df,_0x1ef1ae){_0x1ef1ae=_0x1ef1ae||0xcc;return function(_0x5c3eb9){if(_0x5c3eb9){return _0x3e98df['sendStatus'](_0x1ef1ae);}return _0x3e98df[_0x32ef('0x19')](_0x1ef1ae)['end']();};}function respondWithResult(_0x326fce,_0x40a6e6){_0x40a6e6=_0x40a6e6||0xc8;return function(_0x93d492){if(_0x93d492){return _0x326fce[_0x32ef('0x19')](_0x40a6e6)['json'](_0x93d492);}};}function respondWithFilteredResult(_0x55bf0b,_0x531e30){return function(_0x13db1a){if(_0x13db1a){var _0x3950e6=typeof _0x531e30[_0x32ef('0x1a')]==='undefined'&&typeof _0x531e30['limit']===_0x32ef('0x1b');var _0x1a9476=_0x13db1a[_0x32ef('0x1c')];var _0x57863c=_0x3950e6?0x0:_0x531e30[_0x32ef('0x1a')];var _0x33e230=_0x3950e6?_0x13db1a['count']:_0x531e30[_0x32ef('0x1a')]+_0x531e30[_0x32ef('0x1d')];var _0x26aff3;if(_0x33e230>=_0x1a9476){_0x33e230=_0x1a9476;_0x26aff3=0xc8;}else{_0x26aff3=0xce;}_0x55bf0b[_0x32ef('0x19')](_0x26aff3);return _0x55bf0b[_0x32ef('0x1e')](_0x32ef('0x1f'),_0x57863c+'-'+_0x33e230+'/'+_0x1a9476)['json'](_0x13db1a);}return null;};}function patchUpdates(_0x3c5b78){return function(_0x5cc3ef){try{jsonpatch[_0x32ef('0x20')](_0x5cc3ef,_0x3c5b78,!![]);}catch(_0x3a20ca){return BPromise['reject'](_0x3a20ca);}return _0x5cc3ef[_0x32ef('0x21')]();};}function saveUpdates(_0x97780,_0x5e8898){return function(_0x55f7f2){if(_0x55f7f2){return _0x55f7f2['update'](_0x97780)[_0x32ef('0x22')](function(_0xb30fab){return _0xb30fab;});}return null;};}function removeEntity(_0x225feb,_0x478bef){return function(_0x59585f){if(_0x59585f){return _0x59585f[_0x32ef('0x23')]()['then'](function(){var _0x51a412=_0x59585f[_0x32ef('0x24')]({'plain':!![]});var _0x14d4b3=_0x32ef('0x25');return db[_0x32ef('0x26')][_0x32ef('0x23')]({'where':{'type':_0x14d4b3,'resourceId':_0x51a412['id']}})[_0x32ef('0x22')](function(){return _0x59585f;});})[_0x32ef('0x22')](function(){_0x225feb[_0x32ef('0x19')](0xcc)[_0x32ef('0x27')]();});}};}function handleEntityNotFound(_0x2f52d7,_0x1335e2){return function(_0xba4b3f){if(!_0xba4b3f){_0x2f52d7['sendStatus'](0x194);}return _0xba4b3f;};}function handleError(_0xd65fde,_0x2f5d06){_0x2f5d06=_0x2f5d06||0x1f4;return function(_0x5a04cd){logger[_0x32ef('0x28')](_0x5a04cd[_0x32ef('0x29')]);if(_0x5a04cd[_0x32ef('0x2a')]){delete _0x5a04cd[_0x32ef('0x2a')];}_0xd65fde['status'](_0x2f5d06)[_0x32ef('0x2b')](_0x5a04cd);};}exports[_0x32ef('0x2c')]=function(_0x31dbc3,_0x2ac686){var _0x1b668a={},_0x1a6ed2={},_0x1a122d={'count':0x0,'rows':[]};var _0x575f3e=_[_0x32ef('0x2d')](db['AnalyticDefaultReport'][_0x32ef('0x2e')],function(_0x2b6c6a){return{'name':_0x2b6c6a['fieldName'],'type':_0x2b6c6a[_0x32ef('0x2f')][_0x32ef('0x30')]};});_0x1a6ed2[_0x32ef('0x31')]=_[_0x32ef('0x2d')](_0x575f3e,_0x32ef('0x2a'));_0x1a6ed2['query']=_['keys'](_0x31dbc3[_0x32ef('0x32')]);_0x1a6ed2['filters']=_[_0x32ef('0x33')](_0x1a6ed2[_0x32ef('0x31')],_0x1a6ed2[_0x32ef('0x32')]);_0x1b668a[_0x32ef('0x34')]=_[_0x32ef('0x33')](_0x1a6ed2[_0x32ef('0x31')],qs['fields'](_0x31dbc3['query']['fields']));_0x1b668a[_0x32ef('0x34')]=_0x1b668a[_0x32ef('0x34')][_0x32ef('0x35')]?_0x1b668a['attributes']:_0x1a6ed2['model'];if(!_0x31dbc3[_0x32ef('0x32')][_0x32ef('0x36')](_0x32ef('0x37'))){_0x1b668a['limit']=qs['limit'](_0x31dbc3[_0x32ef('0x32')][_0x32ef('0x1d')]);_0x1b668a[_0x32ef('0x1a')]=qs[_0x32ef('0x1a')](_0x31dbc3[_0x32ef('0x32')][_0x32ef('0x1a')]);}_0x1b668a[_0x32ef('0x38')]=qs[_0x32ef('0x39')](_0x31dbc3[_0x32ef('0x32')]['sort']);_0x1b668a[_0x32ef('0x3a')]=qs[_0x32ef('0x3b')](_[_0x32ef('0x3c')](_0x31dbc3['query'],_0x1a6ed2[_0x32ef('0x3b')]),_0x575f3e);if(_0x31dbc3[_0x32ef('0x32')][_0x32ef('0x3d')]){_0x1b668a[_0x32ef('0x3a')]=_[_0x32ef('0x3e')](_0x1b668a[_0x32ef('0x3a')],{'$or':_[_0x32ef('0x2d')](_0x575f3e,function(_0x1cebed){if(_0x1cebed[_0x32ef('0x2f')]!==_0x32ef('0x3f')){var _0xb4db74={};_0xb4db74[_0x1cebed[_0x32ef('0x2a')]]={'$like':'%'+_0x31dbc3['query'][_0x32ef('0x3d')]+'%'};return _0xb4db74;}})});}_0x1b668a=_[_0x32ef('0x3e')]({},_0x1b668a,_0x31dbc3[_0x32ef('0x40')]);var _0x1733e3={'where':_0x1b668a[_0x32ef('0x3a')]};return db[_0x32ef('0x41')][_0x32ef('0x1c')](_0x1733e3)['then'](function(_0x538758){_0x1a122d[_0x32ef('0x1c')]=_0x538758;if(_0x31dbc3[_0x32ef('0x32')][_0x32ef('0x42')]){_0x1b668a[_0x32ef('0x43')]=[{'all':!![]}];}return db['AnalyticDefaultReport'][_0x32ef('0x44')](_0x1b668a);})[_0x32ef('0x22')](function(_0x5d2f06){_0x1a122d[_0x32ef('0x45')]=_0x5d2f06;return _0x1a122d;})['then'](respondWithFilteredResult(_0x2ac686,_0x1b668a))[_0x32ef('0x46')](handleError(_0x2ac686,null));};exports[_0x32ef('0x47')]=function(_0x37a497,_0x3be46d){var _0x2c2b62={'raw':!![],'where':{'id':_0x37a497[_0x32ef('0x48')]['id']}},_0x2310ae={};_0x2310ae[_0x32ef('0x31')]=_[_0x32ef('0x49')](db[_0x32ef('0x41')]['rawAttributes']);_0x2310ae[_0x32ef('0x32')]=_['keys'](_0x37a497[_0x32ef('0x32')]);_0x2310ae[_0x32ef('0x3b')]=_[_0x32ef('0x33')](_0x2310ae['model'],_0x2310ae[_0x32ef('0x32')]);_0x2c2b62[_0x32ef('0x34')]=_[_0x32ef('0x33')](_0x2310ae[_0x32ef('0x31')],qs[_0x32ef('0x4a')](_0x37a497[_0x32ef('0x32')][_0x32ef('0x4a')]));_0x2c2b62['attributes']=_0x2c2b62['attributes'][_0x32ef('0x35')]?_0x2c2b62[_0x32ef('0x34')]:_0x2310ae[_0x32ef('0x31')];if(_0x37a497[_0x32ef('0x32')][_0x32ef('0x42')]){_0x2c2b62[_0x32ef('0x43')]=[{'all':!![]}];}_0x2c2b62=_[_0x32ef('0x3e')]({},_0x2c2b62,_0x37a497[_0x32ef('0x40')]);return db[_0x32ef('0x41')][_0x32ef('0x4b')](_0x2c2b62)[_0x32ef('0x22')](handleEntityNotFound(_0x3be46d,null))[_0x32ef('0x22')](respondWithResult(_0x3be46d,null))[_0x32ef('0x46')](handleError(_0x3be46d,null));};exports['create']=function(_0x420f00,_0x12fbd7){return db[_0x32ef('0x41')][_0x32ef('0x4c')](_0x420f00[_0x32ef('0x4d')],{})[_0x32ef('0x22')](function(_0x278696){var _0x1acded=_0x420f00[_0x32ef('0x4e')][_0x32ef('0x24')]({'plain':!![]});if(!_0x1acded)throw new Error(_0x32ef('0x4f'));if(_0x1acded[_0x32ef('0x50')]===_0x32ef('0x4e')){var _0x326445=_0x278696[_0x32ef('0x24')]({'plain':!![]});var _0x3fb4d8=_0x32ef('0x51');return db[_0x32ef('0x52')]['find']({'where':{'name':_0x3fb4d8,'userProfileId':_0x1acded['userProfileId']},'raw':!![]})[_0x32ef('0x22')](function(_0x259c32){if(_0x259c32&&_0x259c32[_0x32ef('0x53')]===0x0){return db[_0x32ef('0x26')][_0x32ef('0x4c')]({'name':_0x326445[_0x32ef('0x2a')],'resourceId':_0x326445['id'],'type':_0x32ef('0x25'),'sectionId':_0x259c32['id']},{})[_0x32ef('0x22')](function(){return _0x278696;});}else{return _0x278696;}})[_0x32ef('0x46')](function(_0x368bf1){logger[_0x32ef('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x368bf1);throw _0x368bf1;});}return _0x278696;})[_0x32ef('0x22')](respondWithResult(_0x12fbd7,0xc9))[_0x32ef('0x46')](handleError(_0x12fbd7,null));};exports[_0x32ef('0x54')]=function(_0x3fe01f,_0x38314a){if(_0x3fe01f[_0x32ef('0x4d')]['id']){delete _0x3fe01f['body']['id'];}return db[_0x32ef('0x41')][_0x32ef('0x4b')]({'where':{'id':_0x3fe01f[_0x32ef('0x48')]['id']}})['then'](handleEntityNotFound(_0x38314a,null))[_0x32ef('0x22')](saveUpdates(_0x3fe01f['body'],null))[_0x32ef('0x22')](respondWithResult(_0x38314a,null))[_0x32ef('0x46')](handleError(_0x38314a,null));};exports['destroy']=function(_0x206ad5,_0x59e5f9){return db[_0x32ef('0x41')][_0x32ef('0x4b')]({'where':{'id':_0x206ad5[_0x32ef('0x48')]['id']}})[_0x32ef('0x22')](handleEntityNotFound(_0x59e5f9,null))[_0x32ef('0x22')](removeEntity(_0x59e5f9,null))[_0x32ef('0x46')](handleError(_0x59e5f9,null));};exports[_0x32ef('0x55')]=function(_0x56260f,_0x56cc75){var _0xdfa103=0xa;var _0x52232a=['join',_0x32ef('0x56'),_0x32ef('0x57'),_0x32ef('0x58')];var _0x6aae59={'SUM':_0x32ef('0x59'),'COUNT':_0x32ef('0x5a'),'COUNT DISTINCT':_0x32ef('0x5b'),'MAX':_0x32ef('0x5c'),'MIN':_0x32ef('0x5d'),'AVG':_0x32ef('0x5e'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x32ef('0x5f')};var _0xbd059e={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x32ef('0x60'),'HOUR':_0x32ef('0x61'),'ROUND':_0x32ef('0x62'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x2ac877=function(_0x3c31d0){return!_[_0x32ef('0x63')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x32ef('0x64'),'IS\x20NOT\x20EMPTY'],_0x3c31d0);};var _0x17f447=function(_0x5bb114){if(!_0x5bb114||!_0x5bb114['rules'][_0x32ef('0x35')]){return'';}for(var _0x208989='(',_0x10cb37=0x0;_0x10cb37<_0x5bb114['rules'][_0x32ef('0x35')];_0x10cb37+=0x1){_0x10cb37>0x0&&(_0x208989+='\x20'+_0x5bb114[_0x32ef('0x65')]+'\x20');_0x208989+=_0x5bb114[_0x32ef('0x66')][_0x10cb37]['group']?_0x17f447(_0x5bb114[_0x32ef('0x66')][_0x10cb37][_0x32ef('0x67')]):_0x5bb114['rules'][_0x10cb37]['field']+'\x20'+_0x5bb114[_0x32ef('0x66')][_0x10cb37][_0x32ef('0x68')]+(_0x2ac877(_0x5bb114[_0x32ef('0x66')][_0x10cb37][_0x32ef('0x68')])?'\x20'+_0x5bb114[_0x32ef('0x66')][_0x10cb37][_0x32ef('0x69')]:'');}return _0x208989+')';};var _0x4c89e8={'where':{'id':_0x56260f[_0x32ef('0x48')]['id']}},_0x285330,_0x63b65,_0x25b6d6,_0x36ed97,_0x21e930;_0x4c89e8=_[_0x32ef('0x3e')]({},_0x4c89e8,_0x56260f[_0x32ef('0x40')]);return db[_0x32ef('0x41')]['find'](_0x4c89e8)[_0x32ef('0x22')](function(_0x29ff58){if(_0x29ff58){_0x285330=_0x29ff58;return _0x29ff58[_0x32ef('0x6a')]();}return null;})[_0x32ef('0x22')](function(_0x79ae28){if(_0x79ae28){if(!_0x79ae28['length']){throw new db['Sequelize'][(_0x32ef('0x6b'))](_0x32ef('0x6c'),0x193);}_0x63b65=_0x79ae28;return db[_0x32ef('0x6d')][_0x32ef('0x44')]({'raw':!![]});}return null;})[_0x32ef('0x22')](function(_0x526fb1){if(_0x526fb1){_0x25b6d6=_[_0x32ef('0x6e')](_0x526fb1,'id');var _0x544045;var _0x216e2f=squel[_0x32ef('0x6f')]();_0x216e2f['from'](_0x285330['table']);for(var _0x2c9f7a=0x0;_0x2c9f7a<_0x63b65[_0x32ef('0x35')];_0x2c9f7a+=0x1){_0x544045=_0x63b65[_0x2c9f7a][_0x32ef('0x70')]?_0x25b6d6[_0x63b65[_0x2c9f7a]['MetricId']]['metric']:_0x63b65[_0x2c9f7a][_0x32ef('0x71')];_0x544045=_0x63b65[_0x2c9f7a][_0x32ef('0x72')]?_[_0x32ef('0x73')](_0x6aae59[_0x63b65[_0x2c9f7a][_0x32ef('0x72')]],'%s',_0x544045):_0x544045;_0x544045=_0x63b65[_0x2c9f7a]['format']?_[_0x32ef('0x73')](_0xbd059e[_0x63b65[_0x2c9f7a][_0x32ef('0x74')]],'%s',_0x544045):_0x544045;if(_0x63b65[_0x2c9f7a][_0x32ef('0x75')]){_0x216e2f[_0x32ef('0x67')](_0x544045);}_0x63b65[_0x2c9f7a][_0x32ef('0x76')]&&_0x216e2f[_0x32ef('0x38')](_0x544045,_0x63b65[_0x2c9f7a][_0x32ef('0x76')]===_0x32ef('0x77')?![]:!![]);_0x216e2f[_0x32ef('0x71')](_0x544045,_0x63b65[_0x2c9f7a][_0x32ef('0x78')]||_0x544045);}if(_0x285330[_0x32ef('0x79')]){_0x285330[_0x32ef('0x79')]=JSON['parse'](_0x285330['joins']);for(var _0x3a9c97=0x0;_0x3a9c97<_0x285330[_0x32ef('0x79')]['length'];_0x3a9c97+=0x1){if(_0x285330[_0x32ef('0x79')][_0x3a9c97]['type']&&_[_0x32ef('0x63')](_0x52232a,_0x285330[_0x32ef('0x79')][_0x3a9c97][_0x32ef('0x2f')])&&_0x285330['joins'][_0x3a9c97][_0x32ef('0x7a')]&&_0x285330['joins'][_0x3a9c97][_0x32ef('0x7b')]&&_0x285330[_0x32ef('0x79')][_0x3a9c97]['foreignKey']){_0x216e2f[_0x285330['joins'][_0x3a9c97][_0x32ef('0x2f')]](_0x285330['joins'][_0x3a9c97][_0x32ef('0x7b')],null,util['format'](_0x32ef('0x7c'),_0x285330[_0x32ef('0x7d')],_0x285330[_0x32ef('0x79')][_0x3a9c97]['parentKey'],_0x285330['joins'][_0x3a9c97]['foreignTable'],_0x285330[_0x32ef('0x79')][_0x3a9c97]['foreignKey']));}}}if(_0x285330[_0x32ef('0x7e')]){_0x285330[_0x32ef('0x7e')]=JSON[_0x32ef('0x7f')](_0x285330[_0x32ef('0x7e')]);_0x216e2f[_0x32ef('0x3a')](_0x17f447(_0x285330[_0x32ef('0x7e')]['group']));}_0x21e930=_0x216e2f[_0x32ef('0x80')]();_0x216e2f['limit'](_0xdfa103);_0x216e2f['offset'](0x0);logger[_0x32ef('0x81')]('Limited\x20Query:',_0x216e2f[_0x32ef('0x82')]());return dbH[_0x32ef('0x83')]['query'](_0x216e2f[_0x32ef('0x82')](),{'type':dbH[_0x32ef('0x83')][_0x32ef('0x84')][_0x32ef('0x85')]});}})[_0x32ef('0x22')](respondWithResult(_0x56cc75,null))[_0x32ef('0x46')](handleError(_0x56cc75,null));};function runReport(_0x4b5506,_0x51736f,_0x35b10d){var _0x5e0b55=_0x51736f[_0x32ef('0x2a')];var _0x266688=0xa;var _0x114d8e=[_0x32ef('0x86'),_0x32ef('0x56'),_0x32ef('0x57'),'cross_join'];var _0x3232ca={'SUM':_0x32ef('0x59'),'COUNT':_0x32ef('0x5a'),'COUNT DISTINCT':_0x32ef('0x5b'),'MAX':_0x32ef('0x5c'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0x32ef('0x87'),'GROUP_CONCAT ASC':_0x32ef('0x88'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x211fb1={'SEC_TO_TIME':_0x32ef('0x89'),'DATE':_0x32ef('0x60'),'HOUR':_0x32ef('0x61'),'ROUND':_0x32ef('0x62'),'UNIX_TIMESTAMP':_0x32ef('0x8a')};var _0xfb4845=function(_0x21067e){return!_[_0x32ef('0x63')](['IS\x20NULL',_0x32ef('0x8b'),_0x32ef('0x64'),'IS\x20NOT\x20EMPTY'],_0x21067e);};var _0x35653b=function(_0x5ea727){if(!_0x5ea727||!_0x5ea727[_0x32ef('0x66')]['length']){return'';}for(var _0x43f36e='(',_0x39300f=0x0;_0x39300f<_0x5ea727[_0x32ef('0x66')][_0x32ef('0x35')];_0x39300f+=0x1){_0x39300f>0x0&&(_0x43f36e+='\x20'+_0x5ea727['operator']+'\x20');_0x43f36e+=_0x5ea727[_0x32ef('0x66')][_0x39300f][_0x32ef('0x67')]?_0x35653b(_0x5ea727[_0x32ef('0x66')][_0x39300f]['group']):_0x5ea727['rules'][_0x39300f]['field']+'\x20'+_0x5ea727[_0x32ef('0x66')][_0x39300f][_0x32ef('0x68')]+(_0xfb4845(_0x5ea727[_0x32ef('0x66')][_0x39300f][_0x32ef('0x68')])?'\x20'+_0x5ea727[_0x32ef('0x66')][_0x39300f]['value']:'');}return _0x43f36e+')';};var _0x2678e3={'where':{'id':_0x4b5506['id']}},_0x5b3deb,_0x471de6,_0x7b0ea5,_0xc43e1,_0x4baa7a;_0x2678e3=_[_0x32ef('0x3e')]({},_0x2678e3,_0x35b10d);return db[_0x32ef('0x41')][_0x32ef('0x4b')](_0x2678e3)[_0x32ef('0x22')](function(_0x28bebb){if(_0x28bebb){_0x5b3deb=_0x28bebb;return _0x28bebb['getFields']();}return null;})[_0x32ef('0x22')](function(_0x484df0){if(_0x484df0){if(!_0x484df0[_0x32ef('0x35')]){throw new db[(_0x32ef('0x8c'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x471de6=_0x484df0;return db[_0x32ef('0x6d')][_0x32ef('0x44')]({'raw':!![]});}return null;})[_0x32ef('0x22')](function(_0x3b9896){if(_0x3b9896){_0x7b0ea5=_['keyBy'](_0x3b9896,'id');var _0x356fd4;var _0x51ca6e=squel['select']();_0x51ca6e[_0x32ef('0x8d')](_0x5b3deb['table']);for(var _0x2237cf=0x0;_0x2237cf<_0x471de6[_0x32ef('0x35')];_0x2237cf+=0x1){_0x356fd4=_0x471de6[_0x2237cf][_0x32ef('0x70')]?_0x7b0ea5[_0x471de6[_0x2237cf]['MetricId']]['metric']:_0x471de6[_0x2237cf][_0x32ef('0x71')];_0x356fd4=_0x471de6[_0x2237cf][_0x32ef('0x72')]?_[_0x32ef('0x73')](_0x3232ca[_0x471de6[_0x2237cf][_0x32ef('0x72')]],'%s',_0x356fd4):_0x356fd4;_0x356fd4=_0x471de6[_0x2237cf][_0x32ef('0x74')]?_[_0x32ef('0x73')](_0x211fb1[_0x471de6[_0x2237cf][_0x32ef('0x74')]],'%s',_0x356fd4):_0x356fd4;if(_0x471de6[_0x2237cf]['groupBy']){_0x51ca6e[_0x32ef('0x67')](_0x356fd4);}_0x471de6[_0x2237cf][_0x32ef('0x76')]&&_0x51ca6e[_0x32ef('0x38')](_0x356fd4,_0x471de6[_0x2237cf][_0x32ef('0x76')]==='DESC'?![]:!![]);_0x51ca6e['field'](_0x356fd4,_0x471de6[_0x2237cf][_0x32ef('0x78')]||_0x356fd4);}if(_0x5b3deb['joins']){_0x5b3deb[_0x32ef('0x79')]=JSON[_0x32ef('0x7f')](_0x5b3deb['joins']);for(var _0x5c7594=0x0;_0x5c7594<_0x5b3deb['joins'][_0x32ef('0x35')];_0x5c7594+=0x1){if(_0x5b3deb[_0x32ef('0x79')][_0x5c7594][_0x32ef('0x2f')]&&_[_0x32ef('0x63')](_0x114d8e,_0x5b3deb['joins'][_0x5c7594][_0x32ef('0x2f')])&&_0x5b3deb[_0x32ef('0x79')][_0x5c7594][_0x32ef('0x7a')]&&_0x5b3deb['joins'][_0x5c7594][_0x32ef('0x7b')]&&_0x5b3deb['joins'][_0x5c7594][_0x32ef('0x8e')]){_0x51ca6e[_0x5b3deb[_0x32ef('0x79')][_0x5c7594]['type']](_0x5b3deb['joins'][_0x5c7594][_0x32ef('0x7b')],null,util[_0x32ef('0x74')](_0x32ef('0x7c'),_0x5b3deb[_0x32ef('0x7d')],_0x5b3deb[_0x32ef('0x79')][_0x5c7594][_0x32ef('0x7a')],_0x5b3deb[_0x32ef('0x79')][_0x5c7594][_0x32ef('0x7b')],_0x5b3deb[_0x32ef('0x79')][_0x5c7594]['foreignKey']));}}}if(_0x5b3deb[_0x32ef('0x7e')]){_0x5b3deb['conditions']=JSON[_0x32ef('0x7f')](_0x5b3deb[_0x32ef('0x7e')]);_0x51ca6e[_0x32ef('0x3a')](_0x35653b(_0x5b3deb[_0x32ef('0x7e')][_0x32ef('0x67')]));}_0x4baa7a=_0x51ca6e['clone']();_0x51ca6e[_0x32ef('0x1d')](_0x266688);_0x51ca6e[_0x32ef('0x1a')](0x0);return;}})[_0x32ef('0x22')](function(){if(_0x51736f[_0x32ef('0x8f')]===_0x32ef('0x90')){return null;}var _0x1cfdd8=_[_0x32ef('0x3e')](_0x51736f,{'name':_0x51736f[_0x32ef('0x91')]||_0x51736f[_0x32ef('0x2a')]||_0x5b3deb['name'],'basename':_0x5e0b55,'savename':util['format']('%s-%s.%s',_0x51736f[_0x32ef('0x2a')]||_0x5b3deb[_0x32ef('0x2a')],require('randomstring')[_0x32ef('0x92')](0x4),_0x51736f['output']||_0x32ef('0x93')),'reportId':_0x5b3deb['id'],'reportType':'default'});return db['AnalyticExtractedReport'][_0x32ef('0x4c')](_0x1cfdd8,{'raw':!![]});})[_0x32ef('0x22')](function(_0x118d2e){if(_0x5b3deb[_0x32ef('0x7d')]===_0x32ef('0x94')){_0x4baa7a['where'](_0x5b3deb[_0x32ef('0x7d')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x51736f[_0x32ef('0x95')],_0x51736f['endDate']);}else{_0x4baa7a['where'](_0x5b3deb['table']+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x51736f['startDate'],_0x51736f[_0x32ef('0x96')]);}if(_0x118d2e){logger[_0x32ef('0x97')]('Run\x20Query:',_0x4baa7a[_0x32ef('0x82')]());require(_0x32ef('0x98'))[_0x32ef('0x99')](path[_0x32ef('0x86')](__dirname,_0x32ef('0x9a'),_0x118d2e[_0x32ef('0x8f')]),[_0x118d2e['id'],_0x4baa7a['toString'](),path[_0x32ef('0x86')](__dirname,'../../files/reports',_0x118d2e[_0x32ef('0x9b')]),_0x5e0b55]);return _0x118d2e;}else{var _0x1be713=squel['select']();_0x1be713[_0x32ef('0x8d')]('('+_0x4baa7a['toString']()+')',_0x32ef('0x9c'));_0x1be713[_0x32ef('0x71')](_0x32ef('0x9d'),_0x32ef('0x1c'));_0x4baa7a['limit'](_0x51736f[_0x32ef('0x1d')]||_0x266688);_0x4baa7a[_0x32ef('0x1a')](_0x51736f[_0x32ef('0x1a')]||0x0);return dbH[_0x32ef('0x83')]['query'](_0x1be713[_0x32ef('0x82')](),{'type':dbH['sequelize'][_0x32ef('0x84')][_0x32ef('0x85')]})[_0x32ef('0x22')](function(_0x28ef17){if(!_0x28ef17[_0x32ef('0x35')]){_0xc43e1=0x0;}else{_0xc43e1=_0x28ef17[0x0][_0x32ef('0x1c')]||0x0;}return dbH['sequelize'][_0x32ef('0x32')](_0x4baa7a['toString'](),{'type':dbH['sequelize'][_0x32ef('0x84')][_0x32ef('0x85')]});})[_0x32ef('0x22')](function(_0x3956e7){return{'rows':_0x3956e7||[],'count':_0xc43e1};});}});}exports['run']=function(_0x8d3b24,_0x642716){return runReport(_0x8d3b24[_0x32ef('0x48')],_0x8d3b24[_0x32ef('0x32')],_0x8d3b24['options'])['then'](respondWithResult(_0x642716,null))['catch'](handleError(_0x642716,null));};exports[_0x32ef('0x9e')]=runReport;exports[_0x32ef('0x32')]=function(_0x4454f3,_0xc92dcc){var _0x3d18b9=0xa;var _0x9233cb=[_0x32ef('0x86'),_0x32ef('0x56'),_0x32ef('0x57'),_0x32ef('0x58')];var _0xa76912={'SUM':'SUM(%s)','COUNT':_0x32ef('0x5a'),'COUNT DISTINCT':_0x32ef('0x5b'),'MAX':_0x32ef('0x5c'),'MIN':_0x32ef('0x5d'),'AVG':_0x32ef('0x5e'),'GROUP_CONCAT':_0x32ef('0x87'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x32ef('0x5f')};var _0x1526a1={'SEC_TO_TIME':_0x32ef('0x89'),'DATE':_0x32ef('0x60'),'HOUR':_0x32ef('0x61'),'ROUND':_0x32ef('0x62'),'UNIX_TIMESTAMP':_0x32ef('0x8a')};var _0x2d4d2f=function(_0x292488){return!_[_0x32ef('0x63')]([_0x32ef('0x9f'),_0x32ef('0x8b'),_0x32ef('0x64'),_0x32ef('0xa0')],_0x292488);};var _0x50b674=function(_0x379d40){if(!_0x379d40||!_0x379d40[_0x32ef('0x66')][_0x32ef('0x35')]){return'';}for(var _0x4b7a4d='(',_0x16525b=0x0;_0x16525b<_0x379d40['rules'][_0x32ef('0x35')];_0x16525b+=0x1){_0x16525b>0x0&&(_0x4b7a4d+='\x20'+_0x379d40[_0x32ef('0x65')]+'\x20');_0x4b7a4d+=_0x379d40[_0x32ef('0x66')][_0x16525b]['group']?_0x50b674(_0x379d40[_0x32ef('0x66')][_0x16525b]['group']):_0x379d40[_0x32ef('0x66')][_0x16525b][_0x32ef('0x71')]+'\x20'+_0x379d40['rules'][_0x16525b][_0x32ef('0x68')]+(_0x2d4d2f(_0x379d40[_0x32ef('0x66')][_0x16525b][_0x32ef('0x68')])?'\x20'+_0x379d40[_0x32ef('0x66')][_0x16525b][_0x32ef('0x69')]:'');}return _0x4b7a4d+')';};var _0x264075={'where':{'id':_0x4454f3[_0x32ef('0x48')]['id']}},_0x3798d1,_0x4befa9,_0x493ae9,_0x143d39,_0x497948;_0x264075=_[_0x32ef('0x3e')]({},_0x264075,_0x4454f3['options']);return db[_0x32ef('0x41')][_0x32ef('0x4b')](_0x264075)['then'](function(_0x1200c9){if(_0x1200c9){_0x3798d1=_0x1200c9;return _0x1200c9[_0x32ef('0x6a')]();}return null;})[_0x32ef('0x22')](function(_0xa5f787){if(_0xa5f787){if(!_0xa5f787[_0x32ef('0x35')]){throw new db['Sequelize'][(_0x32ef('0x6b'))](_0x32ef('0x6c'),0x193);}_0x4befa9=_0xa5f787;return db['AnalyticMetric'][_0x32ef('0x44')]({'raw':!![]});}return null;})[_0x32ef('0x22')](function(_0x55ad11){if(_0x55ad11){_0x493ae9=_[_0x32ef('0x6e')](_0x55ad11,'id');var _0x2971a8;var _0x522c22=squel[_0x32ef('0x6f')]();_0x522c22[_0x32ef('0x8d')](_0x3798d1['table']);for(var _0xb41a01=0x0;_0xb41a01<_0x4befa9[_0x32ef('0x35')];_0xb41a01+=0x1){_0x2971a8=_0x4befa9[_0xb41a01][_0x32ef('0x70')]?_0x493ae9[_0x4befa9[_0xb41a01][_0x32ef('0x70')]][_0x32ef('0xa1')]:_0x4befa9[_0xb41a01][_0x32ef('0x71')];_0x2971a8=_0x4befa9[_0xb41a01][_0x32ef('0x72')]?_['replace'](_0xa76912[_0x4befa9[_0xb41a01]['function']],'%s',_0x2971a8):_0x2971a8;_0x2971a8=_0x4befa9[_0xb41a01][_0x32ef('0x74')]?_[_0x32ef('0x73')](_0x1526a1[_0x4befa9[_0xb41a01][_0x32ef('0x74')]],'%s',_0x2971a8):_0x2971a8;if(_0x4befa9[_0xb41a01]['groupBy']){_0x522c22[_0x32ef('0x67')](_0x2971a8);}_0x4befa9[_0xb41a01][_0x32ef('0x76')]&&_0x522c22['order'](_0x2971a8,_0x4befa9[_0xb41a01][_0x32ef('0x76')]===_0x32ef('0x77')?![]:!![]);_0x522c22['field'](_0x2971a8,_0x4befa9[_0xb41a01]['alias']||_0x2971a8);}if(_0x3798d1[_0x32ef('0x79')]){_0x3798d1[_0x32ef('0x79')]=JSON[_0x32ef('0x7f')](_0x3798d1['joins']);for(var _0x5f4eab=0x0;_0x5f4eab<_0x3798d1['joins'][_0x32ef('0x35')];_0x5f4eab+=0x1){if(_0x3798d1[_0x32ef('0x79')][_0x5f4eab][_0x32ef('0x2f')]&&_['includes'](_0x9233cb,_0x3798d1[_0x32ef('0x79')][_0x5f4eab][_0x32ef('0x2f')])&&_0x3798d1[_0x32ef('0x79')][_0x5f4eab]['parentKey']&&_0x3798d1[_0x32ef('0x79')][_0x5f4eab][_0x32ef('0x7b')]&&_0x3798d1['joins'][_0x5f4eab]['foreignKey']){_0x522c22[_0x3798d1[_0x32ef('0x79')][_0x5f4eab]['type']](_0x3798d1[_0x32ef('0x79')][_0x5f4eab][_0x32ef('0x7b')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x3798d1[_0x32ef('0x7d')],_0x3798d1['joins'][_0x5f4eab][_0x32ef('0x7a')],_0x3798d1[_0x32ef('0x79')][_0x5f4eab][_0x32ef('0x7b')],_0x3798d1[_0x32ef('0x79')][_0x5f4eab][_0x32ef('0x8e')]));}}}if(_0x3798d1[_0x32ef('0x7e')]){_0x3798d1[_0x32ef('0x7e')]=JSON[_0x32ef('0x7f')](_0x3798d1[_0x32ef('0x7e')]);_0x522c22[_0x32ef('0x3a')](_0x50b674(_0x3798d1['conditions']['group']));}_0x497948=_0x522c22[_0x32ef('0x80')]();_0x522c22[_0x32ef('0x1d')](_0x3d18b9);_0x522c22[_0x32ef('0x1a')](0x0);logger[_0x32ef('0x81')](_0x32ef('0xa2'),_0x522c22[_0x32ef('0x82')]());return dbH[_0x32ef('0x83')][_0x32ef('0x32')](_0x522c22[_0x32ef('0x82')](),{'type':dbH[_0x32ef('0x83')]['QueryTypes'][_0x32ef('0x85')]});}})[_0x32ef('0x22')](function(){return{'sql':_0x497948[_0x32ef('0x82')]()};})[_0x32ef('0x22')](respondWithResult(_0xc92dcc,null))[_0x32ef('0x46')](handleError(_0xc92dcc,null));};
\ No newline at end of file
+var _0x5fab=['debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','COUNT(DISTINCT\x20%s)','from','function','order','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','default','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','countTable','run','params','runReport','AVG(%s)','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','status','end','limit','undefined','count','offset','Content-Range','apply','save','update','then','destroy','get','DefaultReports','UserProfileResource','sendStatus','error','stack','name','send','index','map','AnalyticDefaultReport','rawAttributes','type','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','query','where','pick','filters','filter','VIRTUAL','merge','options','include','findAll','rows','catch','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','MAX(%s)','MIN(%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','operator','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','table','MetricId','metric','replace','format','groupBy','orderBy','DESC','alias','joins','parentKey','foreignKey','foreignTable','%s.%s\x20=\x20%s.%s','conditions','parse','clone'];(function(_0x53134e,_0x174bb2){var _0x46d999=function(_0x28240f){while(--_0x28240f){_0x53134e['push'](_0x53134e['shift']());}};_0x46d999(++_0x174bb2);}(_0x5fab,0x177));var _0xb5fa=function(_0x224012,_0x293e50){_0x224012=_0x224012-0x0;var _0x544142=_0x5fab[_0x224012];return _0x544142;};'use strict';var emlformat=require(_0xb5fa('0x0'));var rimraf=require(_0xb5fa('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb5fa('0x2'));var rp=require(_0xb5fa('0x3'));var moment=require(_0xb5fa('0x4'));var BPromise=require(_0xb5fa('0x5'));var Mustache=require(_0xb5fa('0x6'));var util=require(_0xb5fa('0x7'));var path=require(_0xb5fa('0x8'));var sox=require(_0xb5fa('0x9'));var csv=require(_0xb5fa('0xa'));var ejs=require(_0xb5fa('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xb5fa('0xc'));var crypto=require(_0xb5fa('0xd'));var jsforce=require(_0xb5fa('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xb5fa('0xa'));var querystring=require(_0xb5fa('0xf'));var Papa=require(_0xb5fa('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xb5fa('0x11'));var as=require(_0xb5fa('0x12'));var hardwareService=require(_0xb5fa('0x13'));var logger=require(_0xb5fa('0x14'))(_0xb5fa('0x15'));var utils=require(_0xb5fa('0x16'));var config=require(_0xb5fa('0x17'));var licenseUtil=require(_0xb5fa('0x18'));var db=require(_0xb5fa('0x19'))['db'];var dbH=require('../../mysqldb')[_0xb5fa('0x1a')];function respondWithStatusCode(_0x3dad4d,_0x56e8b0){_0x56e8b0=_0x56e8b0||0xcc;return function(_0x116849){if(_0x116849){return _0x3dad4d['sendStatus'](_0x56e8b0);}return _0x3dad4d[_0xb5fa('0x1b')](_0x56e8b0)[_0xb5fa('0x1c')]();};}function respondWithResult(_0x40c914,_0xca8d82){_0xca8d82=_0xca8d82||0xc8;return function(_0x8e9d1c){if(_0x8e9d1c){return _0x40c914['status'](_0xca8d82)['json'](_0x8e9d1c);}};}function respondWithFilteredResult(_0x38e964,_0x587043){return function(_0x31f252){if(_0x31f252){var _0x27c8f7=typeof _0x587043['offset']==='undefined'&&typeof _0x587043[_0xb5fa('0x1d')]===_0xb5fa('0x1e');var _0x32e9e5=_0x31f252[_0xb5fa('0x1f')];var _0x324ba5=_0x27c8f7?0x0:_0x587043[_0xb5fa('0x20')];var _0x3b0f69=_0x27c8f7?_0x31f252[_0xb5fa('0x1f')]:_0x587043[_0xb5fa('0x20')]+_0x587043[_0xb5fa('0x1d')];var _0x3c8d53;if(_0x3b0f69>=_0x32e9e5){_0x3b0f69=_0x32e9e5;_0x3c8d53=0xc8;}else{_0x3c8d53=0xce;}_0x38e964[_0xb5fa('0x1b')](_0x3c8d53);return _0x38e964['set'](_0xb5fa('0x21'),_0x324ba5+'-'+_0x3b0f69+'/'+_0x32e9e5)['json'](_0x31f252);}return null;};}function patchUpdates(_0x37ae06){return function(_0x4a6c04){try{jsonpatch[_0xb5fa('0x22')](_0x4a6c04,_0x37ae06,!![]);}catch(_0x43c09f){return BPromise['reject'](_0x43c09f);}return _0x4a6c04[_0xb5fa('0x23')]();};}function saveUpdates(_0x3a2ab9,_0x283a56){return function(_0x47f71a){if(_0x47f71a){return _0x47f71a[_0xb5fa('0x24')](_0x3a2ab9)[_0xb5fa('0x25')](function(_0x444237){return _0x444237;});}return null;};}function removeEntity(_0x542348,_0x224ec8){return function(_0x5d55f7){if(_0x5d55f7){return _0x5d55f7[_0xb5fa('0x26')]()[_0xb5fa('0x25')](function(){var _0x11053a=_0x5d55f7[_0xb5fa('0x27')]({'plain':!![]});var _0x2dbd22=_0xb5fa('0x28');return db[_0xb5fa('0x29')][_0xb5fa('0x26')]({'where':{'type':_0x2dbd22,'resourceId':_0x11053a['id']}})['then'](function(){return _0x5d55f7;});})['then'](function(){_0x542348['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x28a350,_0x460b54){return function(_0x12c0d4){if(!_0x12c0d4){_0x28a350[_0xb5fa('0x2a')](0x194);}return _0x12c0d4;};}function handleError(_0x534884,_0x3506a4){_0x3506a4=_0x3506a4||0x1f4;return function(_0x358549){logger[_0xb5fa('0x2b')](_0x358549[_0xb5fa('0x2c')]);if(_0x358549[_0xb5fa('0x2d')]){delete _0x358549[_0xb5fa('0x2d')];}_0x534884[_0xb5fa('0x1b')](_0x3506a4)[_0xb5fa('0x2e')](_0x358549);};}exports[_0xb5fa('0x2f')]=function(_0xed02e,_0x116773){var _0x5a0152={},_0x3fd1fb={},_0x21fc7e={'count':0x0,'rows':[]};var _0x319c48=_[_0xb5fa('0x30')](db[_0xb5fa('0x31')][_0xb5fa('0x32')],function(_0x25fc7c){return{'name':_0x25fc7c['fieldName'],'type':_0x25fc7c[_0xb5fa('0x33')]['key']};});_0x3fd1fb['model']=_['map'](_0x319c48,_0xb5fa('0x2d'));_0x3fd1fb['query']=_[_0xb5fa('0x34')](_0xed02e['query']);_0x3fd1fb['filters']=_[_0xb5fa('0x35')](_0x3fd1fb[_0xb5fa('0x36')],_0x3fd1fb['query']);_0x5a0152['attributes']=_[_0xb5fa('0x35')](_0x3fd1fb[_0xb5fa('0x36')],qs[_0xb5fa('0x37')](_0xed02e['query'][_0xb5fa('0x37')]));_0x5a0152[_0xb5fa('0x38')]=_0x5a0152['attributes'][_0xb5fa('0x39')]?_0x5a0152[_0xb5fa('0x38')]:_0x3fd1fb[_0xb5fa('0x36')];if(!_0xed02e['query'][_0xb5fa('0x3a')](_0xb5fa('0x3b'))){_0x5a0152[_0xb5fa('0x1d')]=qs['limit'](_0xed02e[_0xb5fa('0x3c')][_0xb5fa('0x1d')]);_0x5a0152[_0xb5fa('0x20')]=qs[_0xb5fa('0x20')](_0xed02e['query']['offset']);}_0x5a0152['order']=qs['sort'](_0xed02e['query']['sort']);_0x5a0152[_0xb5fa('0x3d')]=qs['filters'](_[_0xb5fa('0x3e')](_0xed02e[_0xb5fa('0x3c')],_0x3fd1fb[_0xb5fa('0x3f')]),_0x319c48);if(_0xed02e[_0xb5fa('0x3c')][_0xb5fa('0x40')]){_0x5a0152[_0xb5fa('0x3d')]=_['merge'](_0x5a0152['where'],{'$or':_['map'](_0x319c48,function(_0x534b38){if(_0x534b38['type']!==_0xb5fa('0x41')){var _0x5addd5={};_0x5addd5[_0x534b38['name']]={'$like':'%'+_0xed02e[_0xb5fa('0x3c')][_0xb5fa('0x40')]+'%'};return _0x5addd5;}})});}_0x5a0152=_[_0xb5fa('0x42')]({},_0x5a0152,_0xed02e[_0xb5fa('0x43')]);var _0x5bc93f={'where':_0x5a0152[_0xb5fa('0x3d')]};return db[_0xb5fa('0x31')][_0xb5fa('0x1f')](_0x5bc93f)[_0xb5fa('0x25')](function(_0x402a68){_0x21fc7e['count']=_0x402a68;if(_0xed02e[_0xb5fa('0x3c')]['includeAll']){_0x5a0152[_0xb5fa('0x44')]=[{'all':!![]}];}return db[_0xb5fa('0x31')][_0xb5fa('0x45')](_0x5a0152);})[_0xb5fa('0x25')](function(_0x1c706b){_0x21fc7e[_0xb5fa('0x46')]=_0x1c706b;return _0x21fc7e;})[_0xb5fa('0x25')](respondWithFilteredResult(_0x116773,_0x5a0152))[_0xb5fa('0x47')](handleError(_0x116773,null));};exports['show']=function(_0x1c3c2c,_0xc03e44){var _0x59ae64={'raw':!![],'where':{'id':_0x1c3c2c['params']['id']}},_0x293c19={};_0x293c19[_0xb5fa('0x36')]=_[_0xb5fa('0x34')](db['AnalyticDefaultReport']['rawAttributes']);_0x293c19[_0xb5fa('0x3c')]=_[_0xb5fa('0x34')](_0x1c3c2c[_0xb5fa('0x3c')]);_0x293c19[_0xb5fa('0x3f')]=_[_0xb5fa('0x35')](_0x293c19[_0xb5fa('0x36')],_0x293c19[_0xb5fa('0x3c')]);_0x59ae64[_0xb5fa('0x38')]=_['intersection'](_0x293c19[_0xb5fa('0x36')],qs[_0xb5fa('0x37')](_0x1c3c2c['query'][_0xb5fa('0x37')]));_0x59ae64[_0xb5fa('0x38')]=_0x59ae64[_0xb5fa('0x38')][_0xb5fa('0x39')]?_0x59ae64[_0xb5fa('0x38')]:_0x293c19[_0xb5fa('0x36')];if(_0x1c3c2c[_0xb5fa('0x3c')][_0xb5fa('0x48')]){_0x59ae64[_0xb5fa('0x44')]=[{'all':!![]}];}_0x59ae64=_[_0xb5fa('0x42')]({},_0x59ae64,_0x1c3c2c[_0xb5fa('0x43')]);return db[_0xb5fa('0x31')][_0xb5fa('0x49')](_0x59ae64)[_0xb5fa('0x25')](handleEntityNotFound(_0xc03e44,null))[_0xb5fa('0x25')](respondWithResult(_0xc03e44,null))[_0xb5fa('0x47')](handleError(_0xc03e44,null));};exports['create']=function(_0x56dceb,_0x46194d){return db['AnalyticDefaultReport'][_0xb5fa('0x4a')](_0x56dceb[_0xb5fa('0x4b')],{})['then'](function(_0x4ef1d0){var _0x2931a7=_0x56dceb[_0xb5fa('0x4c')][_0xb5fa('0x27')]({'plain':!![]});if(!_0x2931a7)throw new Error(_0xb5fa('0x4d'));if(_0x2931a7[_0xb5fa('0x4e')]==='user'){var _0x27a651=_0x4ef1d0['get']({'plain':!![]});var _0x251d36=_0xb5fa('0x4f');return db[_0xb5fa('0x50')]['find']({'where':{'name':_0x251d36,'userProfileId':_0x2931a7[_0xb5fa('0x51')]},'raw':!![]})[_0xb5fa('0x25')](function(_0x4dea87){if(_0x4dea87&&_0x4dea87['autoAssociation']===0x0){return db[_0xb5fa('0x29')][_0xb5fa('0x4a')]({'name':_0x27a651[_0xb5fa('0x2d')],'resourceId':_0x27a651['id'],'type':_0xb5fa('0x28'),'sectionId':_0x4dea87['id']},{})[_0xb5fa('0x25')](function(){return _0x4ef1d0;});}else{return _0x4ef1d0;}})[_0xb5fa('0x47')](function(_0x31c91f){logger[_0xb5fa('0x2b')](_0xb5fa('0x52'),_0x31c91f);throw _0x31c91f;});}return _0x4ef1d0;})[_0xb5fa('0x25')](respondWithResult(_0x46194d,0xc9))[_0xb5fa('0x47')](handleError(_0x46194d,null));};exports[_0xb5fa('0x24')]=function(_0x3ccfd1,_0x2799e7){if(_0x3ccfd1[_0xb5fa('0x4b')]['id']){delete _0x3ccfd1[_0xb5fa('0x4b')]['id'];}return db[_0xb5fa('0x31')][_0xb5fa('0x49')]({'where':{'id':_0x3ccfd1['params']['id']}})[_0xb5fa('0x25')](handleEntityNotFound(_0x2799e7,null))[_0xb5fa('0x25')](saveUpdates(_0x3ccfd1[_0xb5fa('0x4b')],null))[_0xb5fa('0x25')](respondWithResult(_0x2799e7,null))[_0xb5fa('0x47')](handleError(_0x2799e7,null));};exports[_0xb5fa('0x26')]=function(_0x4224cf,_0x24117e){return db[_0xb5fa('0x31')][_0xb5fa('0x49')]({'where':{'id':_0x4224cf['params']['id']}})['then'](handleEntityNotFound(_0x24117e,null))[_0xb5fa('0x25')](removeEntity(_0x24117e,null))[_0xb5fa('0x47')](handleError(_0x24117e,null));};exports[_0xb5fa('0x53')]=function(_0x5caf84,_0x441c41){var _0x367f7a=0xa;var _0x1572fb=[_0xb5fa('0x54'),_0xb5fa('0x55'),_0xb5fa('0x56'),_0xb5fa('0x57')];var _0x4f82f0={'SUM':_0xb5fa('0x58'),'COUNT':_0xb5fa('0x59'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0xb5fa('0x5a'),'MIN':_0xb5fa('0x5b'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xb5fa('0x5c'),'GROUP_CONCAT ASC':_0xb5fa('0x5d'),'GROUP_CONCAT DESC':_0xb5fa('0x5e')};var _0x2b9a45={'SEC_TO_TIME':_0xb5fa('0x5f'),'DATE':_0xb5fa('0x60'),'HOUR':_0xb5fa('0x61'),'ROUND':_0xb5fa('0x62'),'UNIX_TIMESTAMP':_0xb5fa('0x63')};var _0x1c24e3=function(_0xfb88cc){return!_[_0xb5fa('0x64')]([_0xb5fa('0x65'),_0xb5fa('0x66'),_0xb5fa('0x67'),_0xb5fa('0x68')],_0xfb88cc);};var _0x41cce9=function(_0x23fb01){if(!_0x23fb01||!_0x23fb01[_0xb5fa('0x69')][_0xb5fa('0x39')]){return'';}for(var _0x421a93='(',_0x36fc0f=0x0;_0x36fc0f<_0x23fb01['rules'][_0xb5fa('0x39')];_0x36fc0f+=0x1){_0x36fc0f>0x0&&(_0x421a93+='\x20'+_0x23fb01[_0xb5fa('0x6a')]+'\x20');_0x421a93+=_0x23fb01[_0xb5fa('0x69')][_0x36fc0f]['group']?_0x41cce9(_0x23fb01[_0xb5fa('0x69')][_0x36fc0f][_0xb5fa('0x6b')]):_0x23fb01['rules'][_0x36fc0f][_0xb5fa('0x6c')]+'\x20'+_0x23fb01[_0xb5fa('0x69')][_0x36fc0f][_0xb5fa('0x6d')]+(_0x1c24e3(_0x23fb01['rules'][_0x36fc0f]['condition'])?'\x20'+_0x23fb01[_0xb5fa('0x69')][_0x36fc0f][_0xb5fa('0x6e')]:'');}return _0x421a93+')';};var _0x432f04={'where':{'id':_0x5caf84['params']['id']}},_0x57d8b7,_0x597206,_0x30d53b,_0x199555,_0x12b0a2;_0x432f04=_['merge']({},_0x432f04,_0x5caf84['options']);return db[_0xb5fa('0x31')][_0xb5fa('0x49')](_0x432f04)[_0xb5fa('0x25')](function(_0x4ce1bd){if(_0x4ce1bd){_0x57d8b7=_0x4ce1bd;return _0x4ce1bd[_0xb5fa('0x6f')]();}return null;})[_0xb5fa('0x25')](function(_0x13ef3a){if(_0x13ef3a){if(!_0x13ef3a[_0xb5fa('0x39')]){throw new db[(_0xb5fa('0x70'))][(_0xb5fa('0x71'))](_0xb5fa('0x72'),0x193);}_0x597206=_0x13ef3a;return db[_0xb5fa('0x73')][_0xb5fa('0x45')]({'raw':!![]});}return null;})[_0xb5fa('0x25')](function(_0x3a1db9){if(_0x3a1db9){_0x30d53b=_[_0xb5fa('0x74')](_0x3a1db9,'id');var _0xecdff3;var _0x38faa6=squel[_0xb5fa('0x75')]();_0x38faa6['from'](_0x57d8b7[_0xb5fa('0x76')]);for(var _0x5a6f74=0x0;_0x5a6f74<_0x597206[_0xb5fa('0x39')];_0x5a6f74+=0x1){_0xecdff3=_0x597206[_0x5a6f74][_0xb5fa('0x77')]?_0x30d53b[_0x597206[_0x5a6f74][_0xb5fa('0x77')]][_0xb5fa('0x78')]:_0x597206[_0x5a6f74][_0xb5fa('0x6c')];_0xecdff3=_0x597206[_0x5a6f74]['function']?_[_0xb5fa('0x79')](_0x4f82f0[_0x597206[_0x5a6f74]['function']],'%s',_0xecdff3):_0xecdff3;_0xecdff3=_0x597206[_0x5a6f74][_0xb5fa('0x7a')]?_[_0xb5fa('0x79')](_0x2b9a45[_0x597206[_0x5a6f74][_0xb5fa('0x7a')]],'%s',_0xecdff3):_0xecdff3;if(_0x597206[_0x5a6f74][_0xb5fa('0x7b')]){_0x38faa6['group'](_0xecdff3);}_0x597206[_0x5a6f74]['orderBy']&&_0x38faa6['order'](_0xecdff3,_0x597206[_0x5a6f74][_0xb5fa('0x7c')]===_0xb5fa('0x7d')?![]:!![]);_0x38faa6[_0xb5fa('0x6c')](_0xecdff3,_0x597206[_0x5a6f74][_0xb5fa('0x7e')]||_0xecdff3);}if(_0x57d8b7[_0xb5fa('0x7f')]){_0x57d8b7[_0xb5fa('0x7f')]=JSON['parse'](_0x57d8b7[_0xb5fa('0x7f')]);for(var _0x5c08e1=0x0;_0x5c08e1<_0x57d8b7['joins'][_0xb5fa('0x39')];_0x5c08e1+=0x1){if(_0x57d8b7['joins'][_0x5c08e1]['type']&&_['includes'](_0x1572fb,_0x57d8b7[_0xb5fa('0x7f')][_0x5c08e1]['type'])&&_0x57d8b7[_0xb5fa('0x7f')][_0x5c08e1][_0xb5fa('0x80')]&&_0x57d8b7[_0xb5fa('0x7f')][_0x5c08e1]['foreignTable']&&_0x57d8b7['joins'][_0x5c08e1][_0xb5fa('0x81')]){_0x38faa6[_0x57d8b7[_0xb5fa('0x7f')][_0x5c08e1]['type']](_0x57d8b7[_0xb5fa('0x7f')][_0x5c08e1][_0xb5fa('0x82')],null,util[_0xb5fa('0x7a')](_0xb5fa('0x83'),_0x57d8b7['table'],_0x57d8b7[_0xb5fa('0x7f')][_0x5c08e1][_0xb5fa('0x80')],_0x57d8b7[_0xb5fa('0x7f')][_0x5c08e1][_0xb5fa('0x82')],_0x57d8b7[_0xb5fa('0x7f')][_0x5c08e1][_0xb5fa('0x81')]));}}}if(_0x57d8b7[_0xb5fa('0x84')]){_0x57d8b7['conditions']=JSON[_0xb5fa('0x85')](_0x57d8b7['conditions']);_0x38faa6[_0xb5fa('0x3d')](_0x41cce9(_0x57d8b7[_0xb5fa('0x84')]['group']));}_0x12b0a2=_0x38faa6[_0xb5fa('0x86')]();_0x38faa6[_0xb5fa('0x1d')](_0x367f7a);_0x38faa6[_0xb5fa('0x20')](0x0);logger[_0xb5fa('0x87')](_0xb5fa('0x88'),_0x38faa6[_0xb5fa('0x89')]());return dbH[_0xb5fa('0x8a')][_0xb5fa('0x3c')](_0x38faa6['toString'](),{'type':dbH[_0xb5fa('0x8a')][_0xb5fa('0x8b')][_0xb5fa('0x8c')]});}})[_0xb5fa('0x25')](respondWithResult(_0x441c41,null))['catch'](handleError(_0x441c41,null));};function runReport(_0x593386,_0x47d72b,_0x5557a3){var _0x1c60bd=_0x47d72b[_0xb5fa('0x2d')];var _0xff504d=0xa;var _0x188e66=['join','left_join',_0xb5fa('0x56'),'cross_join'];var _0x32eebd={'SUM':_0xb5fa('0x58'),'COUNT':_0xb5fa('0x59'),'COUNT DISTINCT':_0xb5fa('0x8d'),'MAX':'MAX(%s)','MIN':_0xb5fa('0x5b'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xb5fa('0x5c'),'GROUP_CONCAT ASC':_0xb5fa('0x5d'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x5e6852={'SEC_TO_TIME':_0xb5fa('0x5f'),'DATE':_0xb5fa('0x60'),'HOUR':_0xb5fa('0x61'),'ROUND':_0xb5fa('0x62'),'UNIX_TIMESTAMP':_0xb5fa('0x63')};var _0xa7fd3b=function(_0x42e210){return!_[_0xb5fa('0x64')]([_0xb5fa('0x65'),_0xb5fa('0x66'),_0xb5fa('0x67'),_0xb5fa('0x68')],_0x42e210);};var _0x86dfe9=function(_0x53c7b5){if(!_0x53c7b5||!_0x53c7b5['rules'][_0xb5fa('0x39')]){return'';}for(var _0x52384b='(',_0x1cb113=0x0;_0x1cb113<_0x53c7b5[_0xb5fa('0x69')]['length'];_0x1cb113+=0x1){_0x1cb113>0x0&&(_0x52384b+='\x20'+_0x53c7b5[_0xb5fa('0x6a')]+'\x20');_0x52384b+=_0x53c7b5[_0xb5fa('0x69')][_0x1cb113]['group']?_0x86dfe9(_0x53c7b5[_0xb5fa('0x69')][_0x1cb113][_0xb5fa('0x6b')]):_0x53c7b5['rules'][_0x1cb113][_0xb5fa('0x6c')]+'\x20'+_0x53c7b5[_0xb5fa('0x69')][_0x1cb113][_0xb5fa('0x6d')]+(_0xa7fd3b(_0x53c7b5['rules'][_0x1cb113]['condition'])?'\x20'+_0x53c7b5[_0xb5fa('0x69')][_0x1cb113][_0xb5fa('0x6e')]:'');}return _0x52384b+')';};var _0x3b5e1d={'where':{'id':_0x593386['id']}},_0x3d18a9,_0x397830,_0x234d9d,_0x10222c,_0x1eec65;_0x3b5e1d=_[_0xb5fa('0x42')]({},_0x3b5e1d,_0x5557a3);return db[_0xb5fa('0x31')]['find'](_0x3b5e1d)['then'](function(_0x3c5563){if(_0x3c5563){_0x3d18a9=_0x3c5563;return _0x3c5563[_0xb5fa('0x6f')]();}return null;})[_0xb5fa('0x25')](function(_0x18498d){if(_0x18498d){if(!_0x18498d['length']){throw new db[(_0xb5fa('0x70'))][(_0xb5fa('0x71'))](_0xb5fa('0x72'),0x193);}_0x397830=_0x18498d;return db['AnalyticMetric'][_0xb5fa('0x45')]({'raw':!![]});}return null;})[_0xb5fa('0x25')](function(_0x109dd9){if(_0x109dd9){_0x234d9d=_[_0xb5fa('0x74')](_0x109dd9,'id');var _0x5ba2e7;var _0x1175da=squel[_0xb5fa('0x75')]();_0x1175da[_0xb5fa('0x8e')](_0x3d18a9[_0xb5fa('0x76')]);for(var _0x19717a=0x0;_0x19717a<_0x397830[_0xb5fa('0x39')];_0x19717a+=0x1){_0x5ba2e7=_0x397830[_0x19717a][_0xb5fa('0x77')]?_0x234d9d[_0x397830[_0x19717a][_0xb5fa('0x77')]][_0xb5fa('0x78')]:_0x397830[_0x19717a][_0xb5fa('0x6c')];_0x5ba2e7=_0x397830[_0x19717a][_0xb5fa('0x8f')]?_[_0xb5fa('0x79')](_0x32eebd[_0x397830[_0x19717a][_0xb5fa('0x8f')]],'%s',_0x5ba2e7):_0x5ba2e7;_0x5ba2e7=_0x397830[_0x19717a][_0xb5fa('0x7a')]?_[_0xb5fa('0x79')](_0x5e6852[_0x397830[_0x19717a]['format']],'%s',_0x5ba2e7):_0x5ba2e7;if(_0x397830[_0x19717a][_0xb5fa('0x7b')]){_0x1175da[_0xb5fa('0x6b')](_0x5ba2e7);}_0x397830[_0x19717a][_0xb5fa('0x7c')]&&_0x1175da[_0xb5fa('0x90')](_0x5ba2e7,_0x397830[_0x19717a][_0xb5fa('0x7c')]===_0xb5fa('0x7d')?![]:!![]);_0x1175da[_0xb5fa('0x6c')](_0x5ba2e7,_0x397830[_0x19717a][_0xb5fa('0x7e')]||_0x5ba2e7);}if(_0x3d18a9['joins']){_0x3d18a9['joins']=JSON[_0xb5fa('0x85')](_0x3d18a9['joins']);for(var _0x5d0ca8=0x0;_0x5d0ca8<_0x3d18a9[_0xb5fa('0x7f')][_0xb5fa('0x39')];_0x5d0ca8+=0x1){if(_0x3d18a9[_0xb5fa('0x7f')][_0x5d0ca8]['type']&&_[_0xb5fa('0x64')](_0x188e66,_0x3d18a9[_0xb5fa('0x7f')][_0x5d0ca8][_0xb5fa('0x33')])&&_0x3d18a9['joins'][_0x5d0ca8][_0xb5fa('0x80')]&&_0x3d18a9[_0xb5fa('0x7f')][_0x5d0ca8]['foreignTable']&&_0x3d18a9[_0xb5fa('0x7f')][_0x5d0ca8][_0xb5fa('0x81')]){_0x1175da[_0x3d18a9[_0xb5fa('0x7f')][_0x5d0ca8][_0xb5fa('0x33')]](_0x3d18a9[_0xb5fa('0x7f')][_0x5d0ca8][_0xb5fa('0x82')],null,util[_0xb5fa('0x7a')]('%s.%s\x20=\x20%s.%s',_0x3d18a9[_0xb5fa('0x76')],_0x3d18a9[_0xb5fa('0x7f')][_0x5d0ca8][_0xb5fa('0x80')],_0x3d18a9[_0xb5fa('0x7f')][_0x5d0ca8]['foreignTable'],_0x3d18a9['joins'][_0x5d0ca8][_0xb5fa('0x81')]));}}}if(_0x3d18a9[_0xb5fa('0x84')]){_0x3d18a9[_0xb5fa('0x84')]=JSON[_0xb5fa('0x85')](_0x3d18a9['conditions']);_0x1175da['where'](_0x86dfe9(_0x3d18a9['conditions']['group']));}_0x1eec65=_0x1175da[_0xb5fa('0x86')]();_0x1175da[_0xb5fa('0x1d')](_0xff504d);_0x1175da[_0xb5fa('0x20')](0x0);return;}})[_0xb5fa('0x25')](function(){if(_0x47d72b[_0xb5fa('0x91')]===_0xb5fa('0x92')){return null;}var _0x3c36a8=_[_0xb5fa('0x42')](_0x47d72b,{'name':_0x47d72b[_0xb5fa('0x93')]||_0x47d72b[_0xb5fa('0x2d')]||_0x3d18a9[_0xb5fa('0x2d')],'basename':_0x1c60bd,'savename':util['format'](_0xb5fa('0x94'),_0x47d72b[_0xb5fa('0x2d')]||_0x3d18a9['name'],require(_0xb5fa('0x95'))[_0xb5fa('0x96')](0x4),_0x47d72b['output']||_0xb5fa('0x97')),'reportId':_0x3d18a9['id'],'reportType':_0xb5fa('0x98')});return db[_0xb5fa('0x99')][_0xb5fa('0x4a')](_0x3c36a8,{'raw':!![]});})[_0xb5fa('0x25')](function(_0x2b449a){if(_0x3d18a9[_0xb5fa('0x76')]===_0xb5fa('0x9a')){_0x1eec65[_0xb5fa('0x3d')](_0x3d18a9['table']+_0xb5fa('0x9b'),_0x47d72b[_0xb5fa('0x9c')],_0x47d72b[_0xb5fa('0x9d')]);}else{_0x1eec65[_0xb5fa('0x3d')](_0x3d18a9[_0xb5fa('0x76')]+_0xb5fa('0x9e'),_0x47d72b[_0xb5fa('0x9c')],_0x47d72b[_0xb5fa('0x9d')]);}if(_0x2b449a){logger['info'](_0xb5fa('0x9f'),_0x1eec65['toString']());require(_0xb5fa('0xa0'))[_0xb5fa('0xa1')](path[_0xb5fa('0x54')](__dirname,_0xb5fa('0xa2'),_0x2b449a[_0xb5fa('0x91')]),[_0x2b449a['id'],_0x1eec65[_0xb5fa('0x89')](),path[_0xb5fa('0x54')](__dirname,_0xb5fa('0xa3'),_0x2b449a[_0xb5fa('0xa4')]),_0x1c60bd]);return _0x2b449a;}else{var _0x4bb9b4=squel['select']();_0x4bb9b4[_0xb5fa('0x8e')]('('+_0x1eec65[_0xb5fa('0x89')]()+')',_0xb5fa('0xa5'));_0x4bb9b4[_0xb5fa('0x6c')]('COUNT(*)',_0xb5fa('0x1f'));_0x1eec65['limit'](_0x47d72b[_0xb5fa('0x1d')]||_0xff504d);_0x1eec65[_0xb5fa('0x20')](_0x47d72b['offset']||0x0);return dbH[_0xb5fa('0x8a')]['query'](_0x4bb9b4[_0xb5fa('0x89')](),{'type':dbH['sequelize'][_0xb5fa('0x8b')][_0xb5fa('0x8c')]})[_0xb5fa('0x25')](function(_0x70e4ae){if(!_0x70e4ae[_0xb5fa('0x39')]){_0x10222c=0x0;}else{_0x10222c=_0x70e4ae[0x0][_0xb5fa('0x1f')]||0x0;}return dbH[_0xb5fa('0x8a')][_0xb5fa('0x3c')](_0x1eec65[_0xb5fa('0x89')](),{'type':dbH[_0xb5fa('0x8a')][_0xb5fa('0x8b')]['SELECT']});})[_0xb5fa('0x25')](function(_0x284b34){return{'rows':_0x284b34||[],'count':_0x10222c};});}});}exports[_0xb5fa('0xa6')]=function(_0x497931,_0x2145d8){return runReport(_0x497931[_0xb5fa('0xa7')],_0x497931[_0xb5fa('0x3c')],_0x497931[_0xb5fa('0x43')])[_0xb5fa('0x25')](respondWithResult(_0x2145d8,null))[_0xb5fa('0x47')](handleError(_0x2145d8,null));};exports[_0xb5fa('0xa8')]=runReport;exports[_0xb5fa('0x3c')]=function(_0x59fd75,_0x245ee1){var _0x5c1e1f=0xa;var _0x3ba723=[_0xb5fa('0x54'),_0xb5fa('0x55'),_0xb5fa('0x56'),_0xb5fa('0x57')];var _0x105c0f={'SUM':_0xb5fa('0x58'),'COUNT':_0xb5fa('0x59'),'COUNT DISTINCT':_0xb5fa('0x8d'),'MAX':_0xb5fa('0x5a'),'MIN':_0xb5fa('0x5b'),'AVG':_0xb5fa('0xa9'),'GROUP_CONCAT':_0xb5fa('0x5c'),'GROUP_CONCAT ASC':_0xb5fa('0x5d'),'GROUP_CONCAT DESC':_0xb5fa('0x5e')};var _0x41e086={'SEC_TO_TIME':_0xb5fa('0x5f'),'DATE':'DATE(%s)','HOUR':_0xb5fa('0x61'),'ROUND':_0xb5fa('0x62'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0xd34c31=function(_0x2e614e){return!_['includes'](['IS\x20NULL','IS\x20NOT\x20NULL',_0xb5fa('0x67'),_0xb5fa('0x68')],_0x2e614e);};var _0x1aae82=function(_0x474bb){if(!_0x474bb||!_0x474bb[_0xb5fa('0x69')][_0xb5fa('0x39')]){return'';}for(var _0x17ae50='(',_0x51c9ba=0x0;_0x51c9ba<_0x474bb['rules']['length'];_0x51c9ba+=0x1){_0x51c9ba>0x0&&(_0x17ae50+='\x20'+_0x474bb[_0xb5fa('0x6a')]+'\x20');_0x17ae50+=_0x474bb['rules'][_0x51c9ba]['group']?_0x1aae82(_0x474bb[_0xb5fa('0x69')][_0x51c9ba]['group']):_0x474bb[_0xb5fa('0x69')][_0x51c9ba][_0xb5fa('0x6c')]+'\x20'+_0x474bb[_0xb5fa('0x69')][_0x51c9ba][_0xb5fa('0x6d')]+(_0xd34c31(_0x474bb[_0xb5fa('0x69')][_0x51c9ba]['condition'])?'\x20'+_0x474bb[_0xb5fa('0x69')][_0x51c9ba][_0xb5fa('0x6e')]:'');}return _0x17ae50+')';};var _0x2fe715={'where':{'id':_0x59fd75[_0xb5fa('0xa7')]['id']}},_0x3c5ac4,_0x23b70f,_0x488818,_0x15b228,_0x42fd84;_0x2fe715=_[_0xb5fa('0x42')]({},_0x2fe715,_0x59fd75[_0xb5fa('0x43')]);return db[_0xb5fa('0x31')]['find'](_0x2fe715)[_0xb5fa('0x25')](function(_0x390043){if(_0x390043){_0x3c5ac4=_0x390043;return _0x390043[_0xb5fa('0x6f')]();}return null;})[_0xb5fa('0x25')](function(_0x32c191){if(_0x32c191){if(!_0x32c191[_0xb5fa('0x39')]){throw new db[(_0xb5fa('0x70'))][(_0xb5fa('0x71'))](_0xb5fa('0x72'),0x193);}_0x23b70f=_0x32c191;return db[_0xb5fa('0x73')][_0xb5fa('0x45')]({'raw':!![]});}return null;})[_0xb5fa('0x25')](function(_0x1d307c){if(_0x1d307c){_0x488818=_[_0xb5fa('0x74')](_0x1d307c,'id');var _0x3347eb;var _0x349e0b=squel[_0xb5fa('0x75')]();_0x349e0b[_0xb5fa('0x8e')](_0x3c5ac4[_0xb5fa('0x76')]);for(var _0x2b1c3f=0x0;_0x2b1c3f<_0x23b70f[_0xb5fa('0x39')];_0x2b1c3f+=0x1){_0x3347eb=_0x23b70f[_0x2b1c3f][_0xb5fa('0x77')]?_0x488818[_0x23b70f[_0x2b1c3f]['MetricId']]['metric']:_0x23b70f[_0x2b1c3f][_0xb5fa('0x6c')];_0x3347eb=_0x23b70f[_0x2b1c3f][_0xb5fa('0x8f')]?_[_0xb5fa('0x79')](_0x105c0f[_0x23b70f[_0x2b1c3f][_0xb5fa('0x8f')]],'%s',_0x3347eb):_0x3347eb;_0x3347eb=_0x23b70f[_0x2b1c3f][_0xb5fa('0x7a')]?_[_0xb5fa('0x79')](_0x41e086[_0x23b70f[_0x2b1c3f]['format']],'%s',_0x3347eb):_0x3347eb;if(_0x23b70f[_0x2b1c3f]['groupBy']){_0x349e0b['group'](_0x3347eb);}_0x23b70f[_0x2b1c3f][_0xb5fa('0x7c')]&&_0x349e0b[_0xb5fa('0x90')](_0x3347eb,_0x23b70f[_0x2b1c3f]['orderBy']===_0xb5fa('0x7d')?![]:!![]);_0x349e0b[_0xb5fa('0x6c')](_0x3347eb,_0x23b70f[_0x2b1c3f]['alias']||_0x3347eb);}if(_0x3c5ac4[_0xb5fa('0x7f')]){_0x3c5ac4[_0xb5fa('0x7f')]=JSON[_0xb5fa('0x85')](_0x3c5ac4[_0xb5fa('0x7f')]);for(var _0x10dbdf=0x0;_0x10dbdf<_0x3c5ac4[_0xb5fa('0x7f')][_0xb5fa('0x39')];_0x10dbdf+=0x1){if(_0x3c5ac4[_0xb5fa('0x7f')][_0x10dbdf]['type']&&_[_0xb5fa('0x64')](_0x3ba723,_0x3c5ac4['joins'][_0x10dbdf][_0xb5fa('0x33')])&&_0x3c5ac4[_0xb5fa('0x7f')][_0x10dbdf][_0xb5fa('0x80')]&&_0x3c5ac4[_0xb5fa('0x7f')][_0x10dbdf]['foreignTable']&&_0x3c5ac4[_0xb5fa('0x7f')][_0x10dbdf][_0xb5fa('0x81')]){_0x349e0b[_0x3c5ac4[_0xb5fa('0x7f')][_0x10dbdf][_0xb5fa('0x33')]](_0x3c5ac4['joins'][_0x10dbdf][_0xb5fa('0x82')],null,util[_0xb5fa('0x7a')](_0xb5fa('0x83'),_0x3c5ac4[_0xb5fa('0x76')],_0x3c5ac4[_0xb5fa('0x7f')][_0x10dbdf][_0xb5fa('0x80')],_0x3c5ac4[_0xb5fa('0x7f')][_0x10dbdf]['foreignTable'],_0x3c5ac4[_0xb5fa('0x7f')][_0x10dbdf]['foreignKey']));}}}if(_0x3c5ac4[_0xb5fa('0x84')]){_0x3c5ac4[_0xb5fa('0x84')]=JSON[_0xb5fa('0x85')](_0x3c5ac4[_0xb5fa('0x84')]);_0x349e0b[_0xb5fa('0x3d')](_0x1aae82(_0x3c5ac4[_0xb5fa('0x84')][_0xb5fa('0x6b')]));}_0x42fd84=_0x349e0b['clone']();_0x349e0b['limit'](_0x5c1e1f);_0x349e0b[_0xb5fa('0x20')](0x0);logger[_0xb5fa('0x87')](_0xb5fa('0x88'),_0x349e0b[_0xb5fa('0x89')]());return dbH[_0xb5fa('0x8a')][_0xb5fa('0x3c')](_0x349e0b[_0xb5fa('0x89')](),{'type':dbH[_0xb5fa('0x8a')]['QueryTypes'][_0xb5fa('0x8c')]});}})[_0xb5fa('0x25')](function(){return{'sql':_0x42fd84[_0xb5fa('0x89')]()};})[_0xb5fa('0x25')](respondWithResult(_0x245ee1,null))[_0xb5fa('0x47')](handleError(_0x245ee1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c0b=['rimraf','../../config/environment','./analyticDefaultReport.attributes','define','AnalyticDefaultReport','analytics_default_reports','util','../../config/logger','api','moment','bluebird','path'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x5c0b,0xae));var _0xb5c0=function(_0x5d61b4,_0x5cf76c){_0x5d61b4=_0x5d61b4-0x0;var _0x523217=_0x5c0b[_0x5d61b4];return _0x523217;};'use strict';var _=require('lodash');var util=require(_0xb5c0('0x0'));var logger=require(_0xb5c0('0x1'))(_0xb5c0('0x2'));var moment=require(_0xb5c0('0x3'));var BPromise=require(_0xb5c0('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xb5c0('0x5'));var rimraf=require(_0xb5c0('0x6'));var config=require(_0xb5c0('0x7'));var attributes=require(_0xb5c0('0x8'));module['exports']=function(_0x5e921a,_0x11d768){return _0x5e921a[_0xb5c0('0x9')](_0xb5c0('0xa'),attributes,{'tableName':_0xb5c0('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3205=['api','moment','bluebird','path','rimraf','../../config/environment','./analyticDefaultReport.attributes','define','AnalyticDefaultReport','analytics_default_reports','lodash','util','../../config/logger'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x3205,0x14f));var _0x5320=function(_0x1f2ce3,_0x5ea85c){_0x1f2ce3=_0x1f2ce3-0x0;var _0x3942ad=_0x3205[_0x1f2ce3];return _0x3942ad;};'use strict';var _=require(_0x5320('0x0'));var util=require(_0x5320('0x1'));var logger=require(_0x5320('0x2'))(_0x5320('0x3'));var moment=require(_0x5320('0x4'));var BPromise=require(_0x5320('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x5320('0x6'));var rimraf=require(_0x5320('0x7'));var config=require(_0x5320('0x8'));var attributes=require(_0x5320('0x9'));module['exports']=function(_0x406eda,_0x291075){return _0x406eda[_0x5320('0xa')](_0x5320('0xb'),attributes,{'tableName':_0x5320('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb159=['result','catch','lodash','util','moment','bluebird','ioredis','../../config/environment','jayson/promise','client','http','request','info','AnalyticDefaultReport,\x20%s,\x20%s','request\x20sent','AnalyticDefaultReport,\x20%s,\x20%s,\x20%s','stringify','error','message'];(function(_0x41ee16,_0xfa94c3){var _0x1f60de=function(_0x1c8ffc){while(--_0x1c8ffc){_0x41ee16['push'](_0x41ee16['shift']());}};_0x1f60de(++_0xfa94c3);}(_0xb159,0xe6));var _0x9b15=function(_0x4e1faa,_0x13d482){_0x4e1faa=_0x4e1faa-0x0;var _0x53ab8b=_0xb159[_0x4e1faa];return _0x53ab8b;};'use strict';var _=require(_0x9b15('0x0'));var util=require(_0x9b15('0x1'));var moment=require(_0x9b15('0x2'));var BPromise=require(_0x9b15('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9b15('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x9b15('0x5'));var jayson=require(_0x9b15('0x6'));var client=jayson[_0x9b15('0x7')][_0x9b15('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1340bd,_0x3d93eb,_0x5c9129){return new BPromise(function(_0x65e69d,_0x10c0c9){return client[_0x9b15('0x9')](_0x1340bd,_0x5c9129)['then'](function(_0x3765fe){logger[_0x9b15('0xa')](_0x9b15('0xb'),_0x3d93eb,_0x9b15('0xc'));logger['debug'](_0x9b15('0xd'),_0x3d93eb,_0x9b15('0xc'),JSON[_0x9b15('0xe')](_0x3765fe));if(_0x3765fe[_0x9b15('0xf')]){if(_0x3765fe[_0x9b15('0xf')]['code']===0x1f4){logger[_0x9b15('0xf')](_0x9b15('0xb'),_0x3d93eb,_0x3765fe[_0x9b15('0xf')][_0x9b15('0x10')]);return _0x10c0c9(_0x3765fe['error']['message']);}logger[_0x9b15('0xf')](_0x9b15('0xb'),_0x3d93eb,_0x3765fe[_0x9b15('0xf')][_0x9b15('0x10')]);return _0x65e69d(_0x3765fe['error']['message']);}else{logger['info']('AnalyticDefaultReport,\x20%s,\x20%s',_0x3d93eb,_0x9b15('0xc'));_0x65e69d(_0x3765fe[_0x9b15('0x11')][_0x9b15('0x10')]);}})[_0x9b15('0x12')](function(_0x2bccf7){logger[_0x9b15('0xf')](_0x9b15('0xb'),_0x3d93eb,_0x2bccf7);_0x10c0c9(_0x2bccf7);});});}
\ No newline at end of file
+var _0x9879=['http','request','then','info','AnalyticDefaultReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticDefaultReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','moment','bluebird','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x3e8b25,_0x27c33b){var _0x1d9d28=function(_0x2e77ae){while(--_0x2e77ae){_0x3e8b25['push'](_0x3e8b25['shift']());}};_0x1d9d28(++_0x27c33b);}(_0x9879,0x10a));var _0x9987=function(_0x827f2,_0x43a9ea){_0x827f2=_0x827f2-0x0;var _0x3b54d2=_0x9879[_0x827f2];return _0x3b54d2;};'use strict';var _=require(_0x9987('0x0'));var util=require(_0x9987('0x1'));var moment=require(_0x9987('0x2'));var BPromise=require(_0x9987('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9987('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x9987('0x5'))(_0x9987('0x6'));var config=require(_0x9987('0x7'));var jayson=require(_0x9987('0x8'));var client=jayson[_0x9987('0x9')][_0x9987('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x379388,_0x248493,_0x3aafa2){return new BPromise(function(_0x5c46cc,_0x3815a8){return client[_0x9987('0xb')](_0x379388,_0x3aafa2)[_0x9987('0xc')](function(_0x1d07ff){logger[_0x9987('0xd')](_0x9987('0xe'),_0x248493,_0x9987('0xf'));logger[_0x9987('0x10')](_0x9987('0x11'),_0x248493,_0x9987('0xf'),JSON[_0x9987('0x12')](_0x1d07ff));if(_0x1d07ff[_0x9987('0x13')]){if(_0x1d07ff[_0x9987('0x13')][_0x9987('0x14')]===0x1f4){logger[_0x9987('0x13')](_0x9987('0xe'),_0x248493,_0x1d07ff[_0x9987('0x13')][_0x9987('0x15')]);return _0x3815a8(_0x1d07ff['error'][_0x9987('0x15')]);}logger[_0x9987('0x13')](_0x9987('0xe'),_0x248493,_0x1d07ff[_0x9987('0x13')][_0x9987('0x15')]);return _0x5c46cc(_0x1d07ff[_0x9987('0x13')][_0x9987('0x15')]);}else{logger[_0x9987('0xd')](_0x9987('0xe'),_0x248493,'request\x20sent');_0x5c46cc(_0x1d07ff['result']['message']);}})[_0x9987('0x16')](function(_0x22d86f){logger[_0x9987('0x13')](_0x9987('0xe'),_0x248493,_0x22d86f);_0x3815a8(_0x22d86f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6746=['post','create','/:id','update','delete','exports','multer','util','path','connect-timeout','Router','../../components/interaction/service','../../config/environment','./analyticDefaultReport.controller','isAuthenticated','get','show','/:id/preview','preview','/:id/run','run','/:id/query'];(function(_0xaa1350,_0x4a7ab4){var _0x5d5f6b=function(_0x27c7e4){while(--_0x27c7e4){_0xaa1350['push'](_0xaa1350['shift']());}};_0x5d5f6b(++_0x4a7ab4);}(_0x6746,0xf8));var _0x6674=function(_0x5401ae,_0x5e58ac){_0x5401ae=_0x5401ae-0x0;var _0x286068=_0x6746[_0x5401ae];return _0x286068;};'use strict';var multer=require(_0x6674('0x0'));var util=require(_0x6674('0x1'));var path=require(_0x6674('0x2'));var timeout=require(_0x6674('0x3'));var express=require('express');var router=express[_0x6674('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x6674('0x5'));var config=require(_0x6674('0x6'));var controller=require(_0x6674('0x7'));router['get']('/',auth[_0x6674('0x8')](),controller['index']);router[_0x6674('0x9')]('/:id',auth[_0x6674('0x8')](),controller[_0x6674('0xa')]);router[_0x6674('0x9')](_0x6674('0xb'),auth[_0x6674('0x8')](),controller[_0x6674('0xc')]);router[_0x6674('0x9')](_0x6674('0xd'),auth[_0x6674('0x8')](),controller[_0x6674('0xe')]);router[_0x6674('0x9')](_0x6674('0xf'),auth[_0x6674('0x8')](),controller['query']);router[_0x6674('0x10')]('/',auth[_0x6674('0x8')](),controller[_0x6674('0x11')]);router['put'](_0x6674('0x12'),auth[_0x6674('0x8')](),controller[_0x6674('0x13')]);router[_0x6674('0x14')](_0x6674('0x12'),auth[_0x6674('0x8')](),controller['destroy']);module[_0x6674('0x15')]=router;
\ No newline at end of file
+var _0x6c66=['preview','/:id/run','/:id/query','query','post','create','put','delete','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','isAuthenticated','index','/:id','get','/:id/preview'];(function(_0x3beb67,_0x44ae68){var _0x3d1d85=function(_0x56e806){while(--_0x56e806){_0x3beb67['push'](_0x3beb67['shift']());}};_0x3d1d85(++_0x44ae68);}(_0x6c66,0x119));var _0x66c6=function(_0x4bfb64,_0x200f62){_0x4bfb64=_0x4bfb64-0x0;var _0x2bd5be=_0x6c66[_0x4bfb64];return _0x2bd5be;};'use strict';var multer=require(_0x66c6('0x0'));var util=require(_0x66c6('0x1'));var path=require(_0x66c6('0x2'));var timeout=require(_0x66c6('0x3'));var express=require(_0x66c6('0x4'));var router=express['Router']();var fs_extra=require(_0x66c6('0x5'));var auth=require(_0x66c6('0x6'));var interaction=require(_0x66c6('0x7'));var config=require('../../config/environment');var controller=require('./analyticDefaultReport.controller');router['get']('/',auth[_0x66c6('0x8')](),controller[_0x66c6('0x9')]);router['get'](_0x66c6('0xa'),auth[_0x66c6('0x8')](),controller['show']);router[_0x66c6('0xb')](_0x66c6('0xc'),auth[_0x66c6('0x8')](),controller[_0x66c6('0xd')]);router[_0x66c6('0xb')](_0x66c6('0xe'),auth[_0x66c6('0x8')](),controller['run']);router['get'](_0x66c6('0xf'),auth['isAuthenticated'](),controller[_0x66c6('0x10')]);router[_0x66c6('0x11')]('/',auth[_0x66c6('0x8')](),controller[_0x66c6('0x12')]);router[_0x66c6('0x13')](_0x66c6('0xa'),auth[_0x66c6('0x8')](),controller['update']);router[_0x66c6('0x14')](_0x66c6('0xa'),auth[_0x66c6('0x8')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec44=['ENUM','pdf','xlsx','csv','DATE','Loading','manual','scheduled','UNSIGNED','exports','STRING'];(function(_0x47378d,_0x4c04bb){var _0x3c2b56=function(_0x815808){while(--_0x815808){_0x47378d['push'](_0x47378d['shift']());}};_0x3c2b56(++_0x4c04bb);}(_0xec44,0x195));var _0x4ec4=function(_0xed4881,_0x45771c){_0xed4881=_0xed4881-0x0;var _0x7fcbd5=_0xec44[_0xed4881];return _0x7fcbd5;};'use strict';var Sequelize=require('sequelize');var moment=require('moment');module[_0x4ec4('0x0')]={'name':{'type':Sequelize[_0x4ec4('0x1')],'allowNull':![]},'basename':{'type':Sequelize[_0x4ec4('0x1')],'allowNull':![]},'output':{'type':Sequelize[_0x4ec4('0x2')]('csv',_0x4ec4('0x3'),_0x4ec4('0x4')),'allowNull':![],'defaultValue':_0x4ec4('0x5')},'savename':{'type':Sequelize[_0x4ec4('0x1')],'allowNull':![]},'startDate':{'type':Sequelize[_0x4ec4('0x6')]},'endDate':{'type':Sequelize[_0x4ec4('0x6')]},'status':{'type':Sequelize[_0x4ec4('0x1')],'defaultValue':_0x4ec4('0x7')},'type':{'type':Sequelize[_0x4ec4('0x2')](_0x4ec4('0x8'),_0x4ec4('0x9')),'allowNull':![],'defaultValue':_0x4ec4('0x8')},'reportId':{'type':Sequelize['INTEGER'](0xb)[_0x4ec4('0xa')]},'reportType':{'type':Sequelize[_0x4ec4('0x1')]}};
\ No newline at end of file
+var _0x2383=['UNSIGNED','sequelize','moment','STRING','ENUM','csv','pdf','xlsx','DATE','Loading','manual','scheduled','INTEGER'];(function(_0x2a4235,_0x5b3292){var _0x26d692=function(_0x5d2200){while(--_0x5d2200){_0x2a4235['push'](_0x2a4235['shift']());}};_0x26d692(++_0x5b3292);}(_0x2383,0x11f));var _0x3238=function(_0x5c998b,_0x1166aa){_0x5c998b=_0x5c998b-0x0;var _0x29fa8b=_0x2383[_0x5c998b];return _0x29fa8b;};'use strict';var Sequelize=require(_0x3238('0x0'));var moment=require(_0x3238('0x1'));module['exports']={'name':{'type':Sequelize[_0x3238('0x2')],'allowNull':![]},'basename':{'type':Sequelize[_0x3238('0x2')],'allowNull':![]},'output':{'type':Sequelize[_0x3238('0x3')](_0x3238('0x4'),_0x3238('0x5'),_0x3238('0x6')),'allowNull':![],'defaultValue':'csv'},'savename':{'type':Sequelize[_0x3238('0x2')],'allowNull':![]},'startDate':{'type':Sequelize[_0x3238('0x7')]},'endDate':{'type':Sequelize[_0x3238('0x7')]},'status':{'type':Sequelize[_0x3238('0x2')],'defaultValue':_0x3238('0x8')},'type':{'type':Sequelize[_0x3238('0x3')](_0x3238('0x9'),_0x3238('0xa')),'allowNull':![],'defaultValue':_0x3238('0x9')},'reportId':{'type':Sequelize[_0x3238('0xb')](0xb)[_0x3238('0xc')]},'reportType':{'type':Sequelize[_0x3238('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4624=['jsforce','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','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','ExtractedReports','UserProfileResource','destroy','stack','name','send','AnalyticExtractedReport','rawAttributes','fieldName','type','model','map','query','filters','intersection','fields','attributes','hasOwnProperty','order','where','pick','filter','merge','options','includeAll','include','rows','catch','show','params','keys','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','basename','savename','output','join','root','server/files/reports','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','format','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0xe69bf1,_0x487cbc){var _0x1259d1=function(_0x5e610d){while(--_0x5e610d){_0xe69bf1['push'](_0xe69bf1['shift']());}};_0x1259d1(++_0x487cbc);}(_0x4624,0x16e));var _0x4462=function(_0x4e70cd,_0x11b320){_0x4e70cd=_0x4e70cd-0x0;var _0x35042c=_0x4624[_0x4e70cd];return _0x35042c;};'use strict';var emlformat=require(_0x4462('0x0'));var rimraf=require(_0x4462('0x1'));var zipdir=require(_0x4462('0x2'));var jsonpatch=require(_0x4462('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x4462('0x4'));var Mustache=require(_0x4462('0x5'));var util=require(_0x4462('0x6'));var path=require(_0x4462('0x7'));var sox=require(_0x4462('0x8'));var csv=require(_0x4462('0x9'));var ejs=require(_0x4462('0xa'));var fs=require('fs');var fs_extra=require(_0x4462('0xb'));var _=require(_0x4462('0xc'));var squel=require(_0x4462('0xd'));var crypto=require('crypto');var jsforce=require(_0x4462('0xe'));var deskjs=require(_0x4462('0xf'));var toCsv=require(_0x4462('0x9'));var querystring=require('querystring');var Papa=require(_0x4462('0x10'));var Redis=require(_0x4462('0x11'));var authService=require(_0x4462('0x12'));var qs=require(_0x4462('0x13'));var as=require(_0x4462('0x14'));var hardwareService=require(_0x4462('0x15'));var logger=require(_0x4462('0x16'))(_0x4462('0x17'));var utils=require(_0x4462('0x18'));var config=require(_0x4462('0x19'));var licenseUtil=require(_0x4462('0x1a'));var db=require(_0x4462('0x1b'))['db'];function respondWithStatusCode(_0x5c929c,_0x110481){_0x110481=_0x110481||0xcc;return function(_0x4bc6f0){if(_0x4bc6f0){return _0x5c929c[_0x4462('0x1c')](_0x110481);}return _0x5c929c[_0x4462('0x1d')](_0x110481)[_0x4462('0x1e')]();};}function respondWithResult(_0x131578,_0x363f19){_0x363f19=_0x363f19||0xc8;return function(_0x2e09c8){if(_0x2e09c8){return _0x131578['status'](_0x363f19)[_0x4462('0x1f')](_0x2e09c8);}};}function respondWithFilteredResult(_0x96383b,_0x5b7669){return function(_0xdc77bf){if(_0xdc77bf){var _0x416679=typeof _0x5b7669[_0x4462('0x20')]===_0x4462('0x21')&&typeof _0x5b7669[_0x4462('0x22')]==='undefined';var _0x249d40=_0xdc77bf[_0x4462('0x23')];var _0x357a04=_0x416679?0x0:_0x5b7669[_0x4462('0x20')];var _0xfd8003=_0x416679?_0xdc77bf[_0x4462('0x23')]:_0x5b7669[_0x4462('0x20')]+_0x5b7669[_0x4462('0x22')];var _0x3ff287;if(_0xfd8003>=_0x249d40){_0xfd8003=_0x249d40;_0x3ff287=0xc8;}else{_0x3ff287=0xce;}_0x96383b['status'](_0x3ff287);return _0x96383b[_0x4462('0x24')](_0x4462('0x25'),_0x357a04+'-'+_0xfd8003+'/'+_0x249d40)[_0x4462('0x1f')](_0xdc77bf);}return null;};}function patchUpdates(_0x47721f){return function(_0x3fc83b){try{jsonpatch[_0x4462('0x26')](_0x3fc83b,_0x47721f,!![]);}catch(_0x175177){return BPromise[_0x4462('0x27')](_0x175177);}return _0x3fc83b['save']();};}function saveUpdates(_0x214aec,_0x2df1b2){return function(_0x4cf119){if(_0x4cf119){return _0x4cf119[_0x4462('0x28')](_0x214aec)[_0x4462('0x29')](function(_0x357e06){return _0x357e06;});}return null;};}function removeEntity(_0x1ef66a,_0x2d035b){return function(_0x3068ce){if(_0x3068ce){return _0x3068ce['destroy']()[_0x4462('0x29')](function(){var _0x28986d=_0x3068ce['get']({'plain':!![]});var _0x55be28=_0x4462('0x2a');return db[_0x4462('0x2b')][_0x4462('0x2c')]({'where':{'type':_0x55be28,'resourceId':_0x28986d['id']}})[_0x4462('0x29')](function(){return _0x3068ce;});})['then'](function(){_0x1ef66a[_0x4462('0x1d')](0xcc)[_0x4462('0x1e')]();});}};}function handleEntityNotFound(_0x221cfa,_0x512a6e){return function(_0x6a6fb){if(!_0x6a6fb){_0x221cfa[_0x4462('0x1c')](0x194);}return _0x6a6fb;};}function handleError(_0x23e078,_0x175ded){_0x175ded=_0x175ded||0x1f4;return function(_0x58c26c){logger['error'](_0x58c26c[_0x4462('0x2d')]);if(_0x58c26c['name']){delete _0x58c26c[_0x4462('0x2e')];}_0x23e078[_0x4462('0x1d')](_0x175ded)[_0x4462('0x2f')](_0x58c26c);};}exports['index']=function(_0x2532be,_0x24745f){var _0x372d9f={},_0x160624={},_0x438fa4={'count':0x0,'rows':[]};var _0x48979d=_['map'](db[_0x4462('0x30')][_0x4462('0x31')],function(_0x14af84){return{'name':_0x14af84[_0x4462('0x32')],'type':_0x14af84[_0x4462('0x33')]['key']};});_0x160624[_0x4462('0x34')]=_[_0x4462('0x35')](_0x48979d,_0x4462('0x2e'));_0x160624[_0x4462('0x36')]=_['keys'](_0x2532be[_0x4462('0x36')]);_0x160624[_0x4462('0x37')]=_[_0x4462('0x38')](_0x160624[_0x4462('0x34')],_0x160624[_0x4462('0x36')]);_0x372d9f['attributes']=_['intersection'](_0x160624[_0x4462('0x34')],qs[_0x4462('0x39')](_0x2532be[_0x4462('0x36')][_0x4462('0x39')]));_0x372d9f[_0x4462('0x3a')]=_0x372d9f['attributes']['length']?_0x372d9f['attributes']:_0x160624[_0x4462('0x34')];if(!_0x2532be[_0x4462('0x36')][_0x4462('0x3b')]('nolimit')){_0x372d9f[_0x4462('0x22')]=qs[_0x4462('0x22')](_0x2532be[_0x4462('0x36')][_0x4462('0x22')]);_0x372d9f[_0x4462('0x20')]=qs[_0x4462('0x20')](_0x2532be[_0x4462('0x36')][_0x4462('0x20')]);}_0x372d9f[_0x4462('0x3c')]=qs['sort'](_0x2532be[_0x4462('0x36')]['sort']);_0x372d9f[_0x4462('0x3d')]=qs[_0x4462('0x37')](_[_0x4462('0x3e')](_0x2532be[_0x4462('0x36')],_0x160624[_0x4462('0x37')]),_0x48979d);if(_0x2532be[_0x4462('0x36')][_0x4462('0x3f')]){_0x372d9f['where']=_[_0x4462('0x40')](_0x372d9f[_0x4462('0x3d')],{'$or':_['map'](_0x48979d,function(_0x1280a9){if(_0x1280a9['type']!=='VIRTUAL'){var _0x591fc1={};_0x591fc1[_0x1280a9[_0x4462('0x2e')]]={'$like':'%'+_0x2532be[_0x4462('0x36')][_0x4462('0x3f')]+'%'};return _0x591fc1;}})});}_0x372d9f=_[_0x4462('0x40')]({},_0x372d9f,_0x2532be[_0x4462('0x41')]);var _0x21d7f4={'where':_0x372d9f[_0x4462('0x3d')]};return db[_0x4462('0x30')][_0x4462('0x23')](_0x21d7f4)[_0x4462('0x29')](function(_0x3e1e04){_0x438fa4[_0x4462('0x23')]=_0x3e1e04;if(_0x2532be['query'][_0x4462('0x42')]){_0x372d9f[_0x4462('0x43')]=[{'all':!![]}];}return db[_0x4462('0x30')]['findAll'](_0x372d9f);})[_0x4462('0x29')](function(_0x1253ce){_0x438fa4[_0x4462('0x44')]=_0x1253ce;return _0x438fa4;})['then'](respondWithFilteredResult(_0x24745f,_0x372d9f))[_0x4462('0x45')](handleError(_0x24745f,null));};exports[_0x4462('0x46')]=function(_0x16e35a,_0x611181){var _0x45e81e={'raw':!![],'where':{'id':_0x16e35a[_0x4462('0x47')]['id']}},_0x3ce894={};_0x3ce894[_0x4462('0x34')]=_['keys'](db[_0x4462('0x30')][_0x4462('0x31')]);_0x3ce894[_0x4462('0x36')]=_[_0x4462('0x48')](_0x16e35a[_0x4462('0x36')]);_0x3ce894[_0x4462('0x37')]=_[_0x4462('0x38')](_0x3ce894['model'],_0x3ce894['query']);_0x45e81e[_0x4462('0x3a')]=_[_0x4462('0x38')](_0x3ce894[_0x4462('0x34')],qs[_0x4462('0x39')](_0x16e35a['query'][_0x4462('0x39')]));_0x45e81e[_0x4462('0x3a')]=_0x45e81e[_0x4462('0x3a')]['length']?_0x45e81e[_0x4462('0x3a')]:_0x3ce894[_0x4462('0x34')];if(_0x16e35a[_0x4462('0x36')][_0x4462('0x42')]){_0x45e81e[_0x4462('0x43')]=[{'all':!![]}];}_0x45e81e=_[_0x4462('0x40')]({},_0x45e81e,_0x16e35a[_0x4462('0x41')]);return db[_0x4462('0x30')]['find'](_0x45e81e)[_0x4462('0x29')](handleEntityNotFound(_0x611181,null))['then'](respondWithResult(_0x611181,null))[_0x4462('0x45')](handleError(_0x611181,null));};exports[_0x4462('0x49')]=function(_0x540331,_0x589e66){return db[_0x4462('0x30')][_0x4462('0x49')](_0x540331[_0x4462('0x4a')],{})[_0x4462('0x29')](function(_0x4c72bc){var _0x43d240=_0x540331[_0x4462('0x4b')][_0x4462('0x4c')]({'plain':!![]});if(!_0x43d240)throw new Error(_0x4462('0x4d'));if(_0x43d240['role']==='user'){var _0x5870fb=_0x4c72bc[_0x4462('0x4c')]({'plain':!![]});var _0x342cd6=_0x4462('0x2a');return db[_0x4462('0x4e')]['find']({'where':{'name':_0x342cd6,'userProfileId':_0x43d240[_0x4462('0x4f')]},'raw':!![]})[_0x4462('0x29')](function(_0x460ae5){if(_0x460ae5&&_0x460ae5['autoAssociation']===0x0){return db['UserProfileResource'][_0x4462('0x49')]({'name':_0x5870fb[_0x4462('0x2e')],'resourceId':_0x5870fb['id'],'type':_0x460ae5[_0x4462('0x2e')],'sectionId':_0x460ae5['id']},{})[_0x4462('0x29')](function(){return _0x4c72bc;});}else{return _0x4c72bc;}})['catch'](function(_0x1d6dd9){logger[_0x4462('0x50')](_0x4462('0x51'),_0x1d6dd9);throw _0x1d6dd9;});}return _0x4c72bc;})['then'](respondWithResult(_0x589e66,0xc9))['catch'](handleError(_0x589e66,null));};exports[_0x4462('0x28')]=function(_0x1df493,_0x57af56){if(_0x1df493[_0x4462('0x4a')]['id']){delete _0x1df493[_0x4462('0x4a')]['id'];}return db[_0x4462('0x30')][_0x4462('0x52')]({'where':{'id':_0x1df493[_0x4462('0x47')]['id']}})[_0x4462('0x29')](handleEntityNotFound(_0x57af56,null))[_0x4462('0x29')](saveUpdates(_0x1df493[_0x4462('0x4a')],null))['then'](respondWithResult(_0x57af56,null))['catch'](handleError(_0x57af56,null));};exports[_0x4462('0x2c')]=function(_0x368930,_0x56c8a2){return db[_0x4462('0x30')][_0x4462('0x52')]({'where':{'id':_0x368930['params']['id']}})['then'](handleEntityNotFound(_0x56c8a2,null))[_0x4462('0x29')](removeEntity(_0x56c8a2,null))[_0x4462('0x45')](handleError(_0x56c8a2,null));};exports['download']=function(_0x47e3e1,_0x1a500c,_0x450091){return db[_0x4462('0x30')]['find']({'where':{'id':_0x47e3e1[_0x4462('0x47')]['id']},'attributes':[_0x4462('0x2e'),_0x4462('0x53'),_0x4462('0x54'),_0x4462('0x55')],'raw':!![]})[_0x4462('0x29')](handleEntityNotFound(_0x1a500c,null))[_0x4462('0x29')](function(_0x583644){if(_0x583644){if(!fs['existsSync'](path[_0x4462('0x56')](config[_0x4462('0x57')],_0x4462('0x58'),_0x583644[_0x4462('0x54')]))){throw new db[(_0x4462('0x59'))][(_0x4462('0x5a'))](_0x4462('0x5b'));}if(_0x47e3e1['query'][_0x4462('0x5c')]){return _0x1a500c[_0x4462('0x1c')](0xc8);}return _0x1a500c['download'](path['join'](config['root'],'server/files/reports',_0x583644[_0x4462('0x54')]),util[_0x4462('0x5d')]('%s.%s',_0x583644[_0x4462('0x53')]||_0x583644['name'],_0x583644[_0x4462('0x55')][_0x4462('0x5e')]()));}})['catch'](handleError(_0x1a500c,null));};
\ No newline at end of file
+var _0x3889=['index','AnalyticExtractedReport','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','map','VIRTUAL','includeAll','findAll','rows','show','include','options','find','catch','create','user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params','download','basename','savename','existsSync','join','root','server/files/reports','Sequelize','Report\x20not\x20found\x20or\x20empty','format','output','toLowerCase','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','then','destroy','get','ExtractedReports','UserProfileResource','sendStatus','error','stack','name'];(function(_0x4e0cba,_0x5cffd2){var _0x2ff912=function(_0x3152f8){while(--_0x3152f8){_0x4e0cba['push'](_0x4e0cba['shift']());}};_0x2ff912(++_0x5cffd2);}(_0x3889,0x1a7));var _0x9388=function(_0xe1a3d,_0x16906d){_0xe1a3d=_0xe1a3d-0x0;var _0x1a94de=_0x3889[_0xe1a3d];return _0x1a94de;};'use strict';var emlformat=require(_0x9388('0x0'));var rimraf=require(_0x9388('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9388('0x2'));var rp=require(_0x9388('0x3'));var moment=require(_0x9388('0x4'));var BPromise=require(_0x9388('0x5'));var Mustache=require('mustache');var util=require(_0x9388('0x6'));var path=require(_0x9388('0x7'));var sox=require(_0x9388('0x8'));var csv=require('to-csv');var ejs=require(_0x9388('0x9'));var fs=require('fs');var fs_extra=require(_0x9388('0xa'));var _=require(_0x9388('0xb'));var squel=require(_0x9388('0xc'));var crypto=require('crypto');var jsforce=require(_0x9388('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x9388('0xe'));var Papa=require(_0x9388('0xf'));var Redis=require(_0x9388('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x9388('0x11'));var as=require(_0x9388('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9388('0x13'))(_0x9388('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x9388('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x455fb8,_0x1f1f83){_0x1f1f83=_0x1f1f83||0xcc;return function(_0xb1d2b){if(_0xb1d2b){return _0x455fb8['sendStatus'](_0x1f1f83);}return _0x455fb8[_0x9388('0x16')](_0x1f1f83)[_0x9388('0x17')]();};}function respondWithResult(_0x27be08,_0x2d50ec){_0x2d50ec=_0x2d50ec||0xc8;return function(_0x39dc29){if(_0x39dc29){return _0x27be08[_0x9388('0x16')](_0x2d50ec)[_0x9388('0x18')](_0x39dc29);}};}function respondWithFilteredResult(_0x103e1e,_0x431b80){return function(_0xd92345){if(_0xd92345){var _0xbb569a=typeof _0x431b80[_0x9388('0x19')]===_0x9388('0x1a')&&typeof _0x431b80[_0x9388('0x1b')]===_0x9388('0x1a');var _0x5ede15=_0xd92345['count'];var _0x416819=_0xbb569a?0x0:_0x431b80[_0x9388('0x19')];var _0x6a37df=_0xbb569a?_0xd92345[_0x9388('0x1c')]:_0x431b80['offset']+_0x431b80[_0x9388('0x1b')];var _0x1f3704;if(_0x6a37df>=_0x5ede15){_0x6a37df=_0x5ede15;_0x1f3704=0xc8;}else{_0x1f3704=0xce;}_0x103e1e[_0x9388('0x16')](_0x1f3704);return _0x103e1e['set'](_0x9388('0x1d'),_0x416819+'-'+_0x6a37df+'/'+_0x5ede15)[_0x9388('0x18')](_0xd92345);}return null;};}function patchUpdates(_0x14a264){return function(_0x329c0b){try{jsonpatch[_0x9388('0x1e')](_0x329c0b,_0x14a264,!![]);}catch(_0x5782be){return BPromise[_0x9388('0x1f')](_0x5782be);}return _0x329c0b[_0x9388('0x20')]();};}function saveUpdates(_0x5362ac,_0x5d5232){return function(_0x2f2298){if(_0x2f2298){return _0x2f2298['update'](_0x5362ac)[_0x9388('0x21')](function(_0x479c42){return _0x479c42;});}return null;};}function removeEntity(_0x2cefdd,_0x237f85){return function(_0x10c2a6){if(_0x10c2a6){return _0x10c2a6[_0x9388('0x22')]()[_0x9388('0x21')](function(){var _0x534fa8=_0x10c2a6[_0x9388('0x23')]({'plain':!![]});var _0x14d83b=_0x9388('0x24');return db[_0x9388('0x25')]['destroy']({'where':{'type':_0x14d83b,'resourceId':_0x534fa8['id']}})[_0x9388('0x21')](function(){return _0x10c2a6;});})['then'](function(){_0x2cefdd[_0x9388('0x16')](0xcc)[_0x9388('0x17')]();});}};}function handleEntityNotFound(_0x223e03,_0x24bd4e){return function(_0x2adb17){if(!_0x2adb17){_0x223e03[_0x9388('0x26')](0x194);}return _0x2adb17;};}function handleError(_0x474521,_0x1affa0){_0x1affa0=_0x1affa0||0x1f4;return function(_0x506157){logger[_0x9388('0x27')](_0x506157[_0x9388('0x28')]);if(_0x506157[_0x9388('0x29')]){delete _0x506157['name'];}_0x474521[_0x9388('0x16')](_0x1affa0)['send'](_0x506157);};}exports[_0x9388('0x2a')]=function(_0x1b18de,_0x5e9c3f){var _0x545c42={},_0x3671f1={},_0x101e2d={'count':0x0,'rows':[]};var _0xae22ba=_['map'](db[_0x9388('0x2b')][_0x9388('0x2c')],function(_0x2c4dbd){return{'name':_0x2c4dbd[_0x9388('0x2d')],'type':_0x2c4dbd[_0x9388('0x2e')]['key']};});_0x3671f1[_0x9388('0x2f')]=_['map'](_0xae22ba,_0x9388('0x29'));_0x3671f1[_0x9388('0x30')]=_[_0x9388('0x31')](_0x1b18de[_0x9388('0x30')]);_0x3671f1[_0x9388('0x32')]=_[_0x9388('0x33')](_0x3671f1[_0x9388('0x2f')],_0x3671f1['query']);_0x545c42[_0x9388('0x34')]=_[_0x9388('0x33')](_0x3671f1[_0x9388('0x2f')],qs[_0x9388('0x35')](_0x1b18de[_0x9388('0x30')]['fields']));_0x545c42[_0x9388('0x34')]=_0x545c42[_0x9388('0x34')][_0x9388('0x36')]?_0x545c42[_0x9388('0x34')]:_0x3671f1['model'];if(!_0x1b18de['query']['hasOwnProperty']('nolimit')){_0x545c42[_0x9388('0x1b')]=qs['limit'](_0x1b18de[_0x9388('0x30')][_0x9388('0x1b')]);_0x545c42[_0x9388('0x19')]=qs[_0x9388('0x19')](_0x1b18de[_0x9388('0x30')][_0x9388('0x19')]);}_0x545c42[_0x9388('0x37')]=qs[_0x9388('0x38')](_0x1b18de[_0x9388('0x30')]['sort']);_0x545c42[_0x9388('0x39')]=qs[_0x9388('0x32')](_[_0x9388('0x3a')](_0x1b18de[_0x9388('0x30')],_0x3671f1[_0x9388('0x32')]),_0xae22ba);if(_0x1b18de[_0x9388('0x30')][_0x9388('0x3b')]){_0x545c42[_0x9388('0x39')]=_[_0x9388('0x3c')](_0x545c42[_0x9388('0x39')],{'$or':_[_0x9388('0x3d')](_0xae22ba,function(_0x92c76c){if(_0x92c76c['type']!==_0x9388('0x3e')){var _0x1bafaf={};_0x1bafaf[_0x92c76c['name']]={'$like':'%'+_0x1b18de['query']['filter']+'%'};return _0x1bafaf;}})});}_0x545c42=_[_0x9388('0x3c')]({},_0x545c42,_0x1b18de['options']);var _0x444b5c={'where':_0x545c42[_0x9388('0x39')]};return db[_0x9388('0x2b')][_0x9388('0x1c')](_0x444b5c)[_0x9388('0x21')](function(_0x5870ab){_0x101e2d[_0x9388('0x1c')]=_0x5870ab;if(_0x1b18de['query'][_0x9388('0x3f')]){_0x545c42['include']=[{'all':!![]}];}return db[_0x9388('0x2b')][_0x9388('0x40')](_0x545c42);})['then'](function(_0x1ca32e){_0x101e2d[_0x9388('0x41')]=_0x1ca32e;return _0x101e2d;})['then'](respondWithFilteredResult(_0x5e9c3f,_0x545c42))['catch'](handleError(_0x5e9c3f,null));};exports[_0x9388('0x42')]=function(_0x3daf54,_0x50b7e2){var _0x597fa2={'raw':!![],'where':{'id':_0x3daf54['params']['id']}},_0x3575c5={};_0x3575c5[_0x9388('0x2f')]=_['keys'](db[_0x9388('0x2b')]['rawAttributes']);_0x3575c5[_0x9388('0x30')]=_[_0x9388('0x31')](_0x3daf54[_0x9388('0x30')]);_0x3575c5[_0x9388('0x32')]=_['intersection'](_0x3575c5[_0x9388('0x2f')],_0x3575c5[_0x9388('0x30')]);_0x597fa2[_0x9388('0x34')]=_['intersection'](_0x3575c5[_0x9388('0x2f')],qs[_0x9388('0x35')](_0x3daf54['query']['fields']));_0x597fa2[_0x9388('0x34')]=_0x597fa2[_0x9388('0x34')]['length']?_0x597fa2[_0x9388('0x34')]:_0x3575c5[_0x9388('0x2f')];if(_0x3daf54[_0x9388('0x30')][_0x9388('0x3f')]){_0x597fa2[_0x9388('0x43')]=[{'all':!![]}];}_0x597fa2=_[_0x9388('0x3c')]({},_0x597fa2,_0x3daf54[_0x9388('0x44')]);return db[_0x9388('0x2b')][_0x9388('0x45')](_0x597fa2)[_0x9388('0x21')](handleEntityNotFound(_0x50b7e2,null))['then'](respondWithResult(_0x50b7e2,null))[_0x9388('0x46')](handleError(_0x50b7e2,null));};exports[_0x9388('0x47')]=function(_0x5b0f82,_0x574893){return db[_0x9388('0x2b')][_0x9388('0x47')](_0x5b0f82['body'],{})['then'](function(_0x127e35){var _0x34e1b4=_0x5b0f82[_0x9388('0x48')][_0x9388('0x23')]({'plain':!![]});if(!_0x34e1b4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x34e1b4[_0x9388('0x49')]===_0x9388('0x48')){var _0x1fa9f8=_0x127e35['get']({'plain':!![]});var _0x169333='ExtractedReports';return db[_0x9388('0x4a')][_0x9388('0x45')]({'where':{'name':_0x169333,'userProfileId':_0x34e1b4[_0x9388('0x4b')]},'raw':!![]})[_0x9388('0x21')](function(_0x5941d7){if(_0x5941d7&&_0x5941d7[_0x9388('0x4c')]===0x0){return db[_0x9388('0x25')][_0x9388('0x47')]({'name':_0x1fa9f8['name'],'resourceId':_0x1fa9f8['id'],'type':_0x5941d7[_0x9388('0x29')],'sectionId':_0x5941d7['id']},{})['then'](function(){return _0x127e35;});}else{return _0x127e35;}})[_0x9388('0x46')](function(_0x32115a){logger['error'](_0x9388('0x4d'),_0x32115a);throw _0x32115a;});}return _0x127e35;})[_0x9388('0x21')](respondWithResult(_0x574893,0xc9))[_0x9388('0x46')](handleError(_0x574893,null));};exports[_0x9388('0x4e')]=function(_0x53257b,_0x2649df){if(_0x53257b[_0x9388('0x4f')]['id']){delete _0x53257b[_0x9388('0x4f')]['id'];}return db['AnalyticExtractedReport'][_0x9388('0x45')]({'where':{'id':_0x53257b[_0x9388('0x50')]['id']}})[_0x9388('0x21')](handleEntityNotFound(_0x2649df,null))[_0x9388('0x21')](saveUpdates(_0x53257b['body'],null))[_0x9388('0x21')](respondWithResult(_0x2649df,null))[_0x9388('0x46')](handleError(_0x2649df,null));};exports[_0x9388('0x22')]=function(_0x46266c,_0x2f8d6a){return db[_0x9388('0x2b')][_0x9388('0x45')]({'where':{'id':_0x46266c[_0x9388('0x50')]['id']}})[_0x9388('0x21')](handleEntityNotFound(_0x2f8d6a,null))[_0x9388('0x21')](removeEntity(_0x2f8d6a,null))[_0x9388('0x46')](handleError(_0x2f8d6a,null));};exports[_0x9388('0x51')]=function(_0x3452c0,_0x32a038,_0x4b0543){return db[_0x9388('0x2b')]['find']({'where':{'id':_0x3452c0['params']['id']},'attributes':['name',_0x9388('0x52'),_0x9388('0x53'),'output'],'raw':!![]})[_0x9388('0x21')](handleEntityNotFound(_0x32a038,null))[_0x9388('0x21')](function(_0x36d03f){if(_0x36d03f){if(!fs[_0x9388('0x54')](path[_0x9388('0x55')](config[_0x9388('0x56')],_0x9388('0x57'),_0x36d03f[_0x9388('0x53')]))){throw new db[(_0x9388('0x58'))]['ValidationError'](_0x9388('0x59'));}if(_0x3452c0['query']['exists']){return _0x32a038['sendStatus'](0xc8);}return _0x32a038['download'](path['join'](config[_0x9388('0x56')],_0x9388('0x57'),_0x36d03f['savename']),util[_0x9388('0x5a')]('%s.%s',_0x36d03f[_0x9388('0x52')]||_0x36d03f[_0x9388('0x29')],_0x36d03f[_0x9388('0x5b')][_0x9388('0x5c')]()));}})['catch'](handleError(_0x32a038,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5861=['./analyticExtractedReport.attributes','exports','define','lodash','api','moment','bluebird','path','rimraf','../../config/environment'];(function(_0x2f7eb0,_0x3c4cc3){var _0x28ba03=function(_0x406e74){while(--_0x406e74){_0x2f7eb0['push'](_0x2f7eb0['shift']());}};_0x28ba03(++_0x3c4cc3);}(_0x5861,0x1c5));var _0x1586=function(_0x211296,_0x6e4654){_0x211296=_0x211296-0x0;var _0x3dd3f0=_0x5861[_0x211296];return _0x3dd3f0;};'use strict';var _=require(_0x1586('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x1586('0x1'));var moment=require(_0x1586('0x2'));var BPromise=require(_0x1586('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x1586('0x4'));var rimraf=require(_0x1586('0x5'));var config=require(_0x1586('0x6'));var attributes=require(_0x1586('0x7'));module[_0x1586('0x8')]=function(_0x243da5,_0x2795db){return _0x243da5[_0x1586('0x9')]('AnalyticExtractedReport',attributes,{'tableName':'analytics_extracted_reports','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf836=['./analyticExtractedReport.attributes','exports','AnalyticExtractedReport','lodash','util','../../config/logger','api','bluebird','request-promise'];(function(_0x1cb18a,_0x33167a){var _0x22442e=function(_0x46c611){while(--_0x46c611){_0x1cb18a['push'](_0x1cb18a['shift']());}};_0x22442e(++_0x33167a);}(_0xf836,0x1c5));var _0x6f83=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xf836[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x6f83('0x0'));var util=require(_0x6f83('0x1'));var logger=require(_0x6f83('0x2'))(_0x6f83('0x3'));var moment=require('moment');var BPromise=require(_0x6f83('0x4'));var rp=require(_0x6f83('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x6f83('0x6'));module[_0x6f83('0x7')]=function(_0x40e1c1,_0xbe65f3){return _0x40e1c1['define'](_0x6f83('0x8'),attributes,{'tableName':'analytics_extracted_reports','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58d2=['message','info','result','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','http','request','then','AnalyticExtractedReport,\x20%s,\x20%s','request\x20sent','AnalyticExtractedReport,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x22e4ca,_0x2bbe76){var _0x40711c=function(_0x3a0796){while(--_0x3a0796){_0x22e4ca['push'](_0x22e4ca['shift']());}};_0x40711c(++_0x2bbe76);}(_0x58d2,0xcb));var _0x258d=function(_0x12a568,_0x3d115b){_0x12a568=_0x12a568-0x0;var _0x43a263=_0x58d2[_0x12a568];return _0x43a263;};'use strict';var _=require(_0x258d('0x0'));var util=require(_0x258d('0x1'));var moment=require(_0x258d('0x2'));var BPromise=require(_0x258d('0x3'));var rs=require(_0x258d('0x4'));var fs=require('fs');var Redis=require(_0x258d('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x258d('0x6'));var logger=require(_0x258d('0x7'))('rpc');var config=require(_0x258d('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0x258d('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1e0cc2,_0x2eba8c,_0x2a59b7){return new BPromise(function(_0x1028ad,_0x1596c7){return client[_0x258d('0xa')](_0x1e0cc2,_0x2a59b7)[_0x258d('0xb')](function(_0x1e8991){logger['info'](_0x258d('0xc'),_0x2eba8c,_0x258d('0xd'));logger['debug'](_0x258d('0xe'),_0x2eba8c,_0x258d('0xd'),JSON[_0x258d('0xf')](_0x1e8991));if(_0x1e8991['error']){if(_0x1e8991[_0x258d('0x10')]['code']===0x1f4){logger['error'](_0x258d('0xc'),_0x2eba8c,_0x1e8991['error'][_0x258d('0x11')]);return _0x1596c7(_0x1e8991['error'][_0x258d('0x11')]);}logger['error'](_0x258d('0xc'),_0x2eba8c,_0x1e8991[_0x258d('0x10')]['message']);return _0x1028ad(_0x1e8991[_0x258d('0x10')][_0x258d('0x11')]);}else{logger[_0x258d('0x12')](_0x258d('0xc'),_0x2eba8c,_0x258d('0xd'));_0x1028ad(_0x1e8991[_0x258d('0x13')][_0x258d('0x11')]);}})['catch'](function(_0x687231){logger[_0x258d('0x10')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x2eba8c,_0x687231);_0x1596c7(_0x687231);});});}
\ No newline at end of file
+var _0xd60e=['moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','then','debug','stringify','error','message','AnalyticExtractedReport,\x20%s,\x20%s','request\x20sent','result','catch','lodash'];(function(_0x5c7939,_0x22f61e){var _0x5bcfbc=function(_0x80c86){while(--_0x80c86){_0x5c7939['push'](_0x5c7939['shift']());}};_0x5bcfbc(++_0x22f61e);}(_0xd60e,0x18e));var _0xed60=function(_0x213df8,_0x201510){_0x213df8=_0x213df8-0x0;var _0x5735f9=_0xd60e[_0x213df8];return _0x5735f9;};'use strict';var _=require(_0xed60('0x0'));var util=require('util');var moment=require(_0xed60('0x1'));var BPromise=require('bluebird');var rs=require(_0xed60('0x2'));var fs=require('fs');var Redis=require(_0xed60('0x3'));var db=require(_0xed60('0x4'))['db'];var utils=require(_0xed60('0x5'));var logger=require(_0xed60('0x6'))(_0xed60('0x7'));var config=require(_0xed60('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0xed60('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2198d6,_0x581aaa,_0x120327){return new BPromise(function(_0x55cf3f,_0x581a1d){return client['request'](_0x2198d6,_0x120327)[_0xed60('0xa')](function(_0x43ac58){logger['info']('AnalyticExtractedReport,\x20%s,\x20%s',_0x581aaa,'request\x20sent');logger[_0xed60('0xb')]('AnalyticExtractedReport,\x20%s,\x20%s,\x20%s',_0x581aaa,'request\x20sent',JSON[_0xed60('0xc')](_0x43ac58));if(_0x43ac58[_0xed60('0xd')]){if(_0x43ac58[_0xed60('0xd')]['code']===0x1f4){logger[_0xed60('0xd')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x581aaa,_0x43ac58[_0xed60('0xd')][_0xed60('0xe')]);return _0x581a1d(_0x43ac58[_0xed60('0xd')][_0xed60('0xe')]);}logger[_0xed60('0xd')](_0xed60('0xf'),_0x581aaa,_0x43ac58['error']['message']);return _0x55cf3f(_0x43ac58[_0xed60('0xd')][_0xed60('0xe')]);}else{logger['info']('AnalyticExtractedReport,\x20%s,\x20%s',_0x581aaa,_0xed60('0x10'));_0x55cf3f(_0x43ac58[_0xed60('0x11')][_0xed60('0xe')]);}})[_0xed60('0x12')](function(_0x5297a9){logger['error']('AnalyticExtractedReport,\x20%s,\x20%s',_0x581aaa,_0x5297a9);_0x581a1d(_0x5297a9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a4b=['put','delete','destroy','multer','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticExtractedReport.controller','isAuthenticated','index','get','/:id','show','/:id/download','download','post'];(function(_0xd25bc,_0x58f058){var _0x177b30=function(_0x1c880d){while(--_0x1c880d){_0xd25bc['push'](_0xd25bc['shift']());}};_0x177b30(++_0x58f058);}(_0x5a4b,0x88));var _0xb5a4=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0x5a4b[_0x40a045];return _0x1a687c;};'use strict';var multer=require(_0xb5a4('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xb5a4('0x1'));var router=express[_0xb5a4('0x2')]();var fs_extra=require(_0xb5a4('0x3'));var auth=require(_0xb5a4('0x4'));var interaction=require(_0xb5a4('0x5'));var config=require(_0xb5a4('0x6'));var controller=require(_0xb5a4('0x7'));router['get']('/',auth[_0xb5a4('0x8')](),controller[_0xb5a4('0x9')]);router[_0xb5a4('0xa')](_0xb5a4('0xb'),auth[_0xb5a4('0x8')](),controller[_0xb5a4('0xc')]);router['get'](_0xb5a4('0xd'),auth[_0xb5a4('0x8')](),controller[_0xb5a4('0xe')]);router[_0xb5a4('0xf')]('/',auth[_0xb5a4('0x8')](),controller['create']);router[_0xb5a4('0x10')](_0xb5a4('0xb'),auth[_0xb5a4('0x8')](),controller['update']);router[_0xb5a4('0x11')]('/:id',auth[_0xb5a4('0x8')](),controller[_0xb5a4('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0x9cbb=['create','put','delete','destroy','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./analyticExtractedReport.controller','get','isAuthenticated','index','/:id','show','/:id/download','post'];(function(_0x15a943,_0x2d8458){var _0x1a85aa=function(_0x20ec7d){while(--_0x20ec7d){_0x15a943['push'](_0x15a943['shift']());}};_0x1a85aa(++_0x2d8458);}(_0x9cbb,0x121));var _0xb9cb=function(_0x1c7daf,_0x32acbe){_0x1c7daf=_0x1c7daf-0x0;var _0x1c6779=_0x9cbb[_0x1c7daf];return _0x1c6779;};'use strict';var multer=require('multer');var util=require(_0xb9cb('0x0'));var path=require(_0xb9cb('0x1'));var timeout=require('connect-timeout');var express=require(_0xb9cb('0x2'));var router=express[_0xb9cb('0x3')]();var fs_extra=require(_0xb9cb('0x4'));var auth=require(_0xb9cb('0x5'));var interaction=require(_0xb9cb('0x6'));var config=require('../../config/environment');var controller=require(_0xb9cb('0x7'));router[_0xb9cb('0x8')]('/',auth[_0xb9cb('0x9')](),controller[_0xb9cb('0xa')]);router[_0xb9cb('0x8')](_0xb9cb('0xb'),auth[_0xb9cb('0x9')](),controller[_0xb9cb('0xc')]);router[_0xb9cb('0x8')](_0xb9cb('0xd'),auth[_0xb9cb('0x9')](),controller['download']);router[_0xb9cb('0xe')]('/',auth['isAuthenticated'](),controller[_0xb9cb('0xf')]);router[_0xb9cb('0x10')](_0xb9cb('0xb'),auth[_0xb9cb('0x9')](),controller['update']);router[_0xb9cb('0x11')](_0xb9cb('0xb'),auth[_0xb9cb('0x9')](),controller[_0xb9cb('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x461e=['TEXT','STRING','BOOLEAN','sequelize','exports'];(function(_0xa90bba,_0xac43e5){var _0x36d65f=function(_0xd6bba4){while(--_0xd6bba4){_0xa90bba['push'](_0xa90bba['shift']());}};_0x36d65f(++_0xac43e5);}(_0x461e,0x6c));var _0xe461=function(_0x327028,_0x34ed80){_0x327028=_0x327028-0x0;var _0x5eb425=_0x461e[_0x327028];return _0x5eb425;};'use strict';var Sequelize=require(_0xe461('0x0'));module[_0xe461('0x1')]={'field':{'type':Sequelize[_0xe461('0x2')]},'alias':{'type':Sequelize[_0xe461('0x3')]},'function':{'type':Sequelize[_0xe461('0x3')]},'format':{'type':Sequelize[_0xe461('0x3')]},'groupBy':{'type':Sequelize[_0xe461('0x4')],'defaultValue':![]},'orderBy':{'type':Sequelize['STRING']},'custom':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x57d9=['TEXT','STRING','BOOLEAN','sequelize','exports'];(function(_0x27b133,_0x1fca36){var _0x26a731=function(_0x4595e0){while(--_0x4595e0){_0x27b133['push'](_0x27b133['shift']());}};_0x26a731(++_0x1fca36);}(_0x57d9,0x14d));var _0x957d=function(_0x3888bc,_0x3539a2){_0x3888bc=_0x3888bc-0x0;var _0x59d7c1=_0x57d9[_0x3888bc];return _0x59d7c1;};'use strict';var Sequelize=require(_0x957d('0x0'));module[_0x957d('0x1')]={'field':{'type':Sequelize[_0x957d('0x2')]},'alias':{'type':Sequelize['STRING']},'function':{'type':Sequelize[_0x957d('0x3')]},'format':{'type':Sequelize[_0x957d('0x3')]},'groupBy':{'type':Sequelize[_0x957d('0x4')],'defaultValue':![]},'orderBy':{'type':Sequelize[_0x957d('0x3')]},'custom':{'type':Sequelize[_0x957d('0x4')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d21=['json','offset','undefined','count','apply','save','update','then','stack','name','index','map','AnalyticFieldReport','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','params','includeAll','catch','create','body','bulkCreate','destroy','find','bulkDestroy','addFields','AnalyticCustomReport','findOne','sequelize','CustomReportId','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','squel','crypto','jsforce','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end'];(function(_0x40220a,_0x22feb1){var _0x3903cc=function(_0x33a296){while(--_0x33a296){_0x40220a['push'](_0x40220a['shift']());}};_0x3903cc(++_0x22feb1);}(_0x1d21,0xd3));var _0x11d2=function(_0x5e745e,_0xde2931){_0x5e745e=_0x5e745e-0x0;var _0x122dab=_0x1d21[_0x5e745e];return _0x122dab;};'use strict';var emlformat=require(_0x11d2('0x0'));var rimraf=require(_0x11d2('0x1'));var zipdir=require(_0x11d2('0x2'));var jsonpatch=require(_0x11d2('0x3'));var rp=require(_0x11d2('0x4'));var moment=require(_0x11d2('0x5'));var BPromise=require(_0x11d2('0x6'));var Mustache=require(_0x11d2('0x7'));var util=require(_0x11d2('0x8'));var path=require(_0x11d2('0x9'));var sox=require(_0x11d2('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x11d2('0xb'));var _=require('lodash');var squel=require(_0x11d2('0xc'));var crypto=require(_0x11d2('0xd'));var jsforce=require(_0x11d2('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x11d2('0xf'));var querystring=require('querystring');var Papa=require(_0x11d2('0x10'));var Redis=require(_0x11d2('0x11'));var authService=require(_0x11d2('0x12'));var qs=require(_0x11d2('0x13'));var as=require(_0x11d2('0x14'));var hardwareService=require(_0x11d2('0x15'));var logger=require(_0x11d2('0x16'))('api');var utils=require(_0x11d2('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x11d2('0x18'));var db=require(_0x11d2('0x19'))['db'];function respondWithStatusCode(_0x5b6407,_0x49f2ab){_0x49f2ab=_0x49f2ab||0xcc;return function(_0x22dd53){if(_0x22dd53){return _0x5b6407[_0x11d2('0x1a')](_0x49f2ab);}return _0x5b6407[_0x11d2('0x1b')](_0x49f2ab)[_0x11d2('0x1c')]();};}function respondWithResult(_0x338289,_0x2ecca6){_0x2ecca6=_0x2ecca6||0xc8;return function(_0x35d77b){if(_0x35d77b){return _0x338289['status'](_0x2ecca6)[_0x11d2('0x1d')](_0x35d77b);}};}function respondWithFilteredResult(_0x25941e,_0x11c9b1){return function(_0x5ed1f0){if(_0x5ed1f0){var _0x383859=typeof _0x11c9b1[_0x11d2('0x1e')]===_0x11d2('0x1f')&&typeof _0x11c9b1['limit']===_0x11d2('0x1f');var _0x5b2d9a=_0x5ed1f0[_0x11d2('0x20')];var _0x5c6c1b=_0x383859?0x0:_0x11c9b1['offset'];var _0x368641=_0x383859?_0x5ed1f0['count']:_0x11c9b1['offset']+_0x11c9b1['limit'];var _0x266ebd;if(_0x368641>=_0x5b2d9a){_0x368641=_0x5b2d9a;_0x266ebd=0xc8;}else{_0x266ebd=0xce;}_0x25941e['status'](_0x266ebd);return _0x25941e['set']('Content-Range',_0x5c6c1b+'-'+_0x368641+'/'+_0x5b2d9a)[_0x11d2('0x1d')](_0x5ed1f0);}return null;};}function patchUpdates(_0x33e615){return function(_0x57e644){try{jsonpatch[_0x11d2('0x21')](_0x57e644,_0x33e615,!![]);}catch(_0x14deda){return BPromise['reject'](_0x14deda);}return _0x57e644[_0x11d2('0x22')]();};}function saveUpdates(_0x34f71e,_0x991c11){return function(_0x18b424){if(_0x18b424){return _0x18b424[_0x11d2('0x23')](_0x34f71e)[_0x11d2('0x24')](function(_0x569312){return _0x569312;});}return null;};}function removeEntity(_0x2218e3,_0x2e0297){return function(_0xbf4fe9){if(_0xbf4fe9){return _0xbf4fe9['destroy']()[_0x11d2('0x24')](function(){_0x2218e3[_0x11d2('0x1b')](0xcc)[_0x11d2('0x1c')]();});}};}function handleEntityNotFound(_0x2da43d,_0x18afe0){return function(_0x186bdb){if(!_0x186bdb){_0x2da43d[_0x11d2('0x1a')](0x194);}return _0x186bdb;};}function handleError(_0x480c54,_0x1b6ae5){_0x1b6ae5=_0x1b6ae5||0x1f4;return function(_0xa2ada4){logger['error'](_0xa2ada4[_0x11d2('0x25')]);if(_0xa2ada4[_0x11d2('0x26')]){delete _0xa2ada4['name'];}_0x480c54[_0x11d2('0x1b')](_0x1b6ae5)['send'](_0xa2ada4);};}exports[_0x11d2('0x27')]=function(_0x14360a,_0x557905){var _0x543458={},_0x5db59f={},_0xe19be1={'count':0x0,'rows':[]};var _0x253039=_[_0x11d2('0x28')](db[_0x11d2('0x29')][_0x11d2('0x2a')],function(_0x2e2469){return{'name':_0x2e2469['fieldName'],'type':_0x2e2469[_0x11d2('0x2b')][_0x11d2('0x2c')]};});_0x5db59f[_0x11d2('0x2d')]=_[_0x11d2('0x28')](_0x253039,_0x11d2('0x26'));_0x5db59f[_0x11d2('0x2e')]=_[_0x11d2('0x2f')](_0x14360a['query']);_0x5db59f[_0x11d2('0x30')]=_[_0x11d2('0x31')](_0x5db59f[_0x11d2('0x2d')],_0x5db59f[_0x11d2('0x2e')]);_0x543458[_0x11d2('0x32')]=_['intersection'](_0x5db59f['model'],qs[_0x11d2('0x33')](_0x14360a[_0x11d2('0x2e')][_0x11d2('0x33')]));_0x543458[_0x11d2('0x32')]=_0x543458[_0x11d2('0x32')][_0x11d2('0x34')]?_0x543458['attributes']:_0x5db59f[_0x11d2('0x2d')];if(!_0x14360a[_0x11d2('0x2e')][_0x11d2('0x35')](_0x11d2('0x36'))){_0x543458[_0x11d2('0x37')]=qs[_0x11d2('0x37')](_0x14360a['query'][_0x11d2('0x37')]);_0x543458[_0x11d2('0x1e')]=qs['offset'](_0x14360a[_0x11d2('0x2e')][_0x11d2('0x1e')]);}_0x543458['order']=qs['sort'](_0x14360a['query'][_0x11d2('0x38')]);_0x543458[_0x11d2('0x39')]=qs[_0x11d2('0x30')](_[_0x11d2('0x3a')](_0x14360a[_0x11d2('0x2e')],_0x5db59f[_0x11d2('0x30')]),_0x253039);if(_0x14360a[_0x11d2('0x2e')][_0x11d2('0x3b')]){_0x543458['where']=_[_0x11d2('0x3c')](_0x543458[_0x11d2('0x39')],{'$or':_[_0x11d2('0x28')](_0x253039,function(_0x405c20){if(_0x405c20[_0x11d2('0x2b')]!==_0x11d2('0x3d')){var _0x235a25={};_0x235a25[_0x405c20[_0x11d2('0x26')]]={'$like':'%'+_0x14360a['query'][_0x11d2('0x3b')]+'%'};return _0x235a25;}})});}_0x543458=_[_0x11d2('0x3c')]({},_0x543458,_0x14360a[_0x11d2('0x3e')]);var _0x160aa5={'where':_0x543458[_0x11d2('0x39')]};return db[_0x11d2('0x29')][_0x11d2('0x20')](_0x160aa5)[_0x11d2('0x24')](function(_0x99baf0){_0xe19be1['count']=_0x99baf0;if(_0x14360a['query']['includeAll']){_0x543458[_0x11d2('0x3f')]=[{'all':!![]}];}return db[_0x11d2('0x29')][_0x11d2('0x40')](_0x543458);})['then'](function(_0x2eb7ff){_0xe19be1[_0x11d2('0x41')]=_0x2eb7ff;return _0xe19be1;})['then'](respondWithFilteredResult(_0x557905,_0x543458))['catch'](handleError(_0x557905,null));};exports['show']=function(_0x168b5a,_0x5eb565){var _0x15db63={'raw':![],'where':{'id':_0x168b5a[_0x11d2('0x42')]['id']}},_0x832353={};_0x832353[_0x11d2('0x2d')]=_[_0x11d2('0x2f')](db[_0x11d2('0x29')][_0x11d2('0x2a')]);_0x832353[_0x11d2('0x2e')]=_['keys'](_0x168b5a[_0x11d2('0x2e')]);_0x832353[_0x11d2('0x30')]=_[_0x11d2('0x31')](_0x832353[_0x11d2('0x2d')],_0x832353[_0x11d2('0x2e')]);_0x15db63[_0x11d2('0x32')]=_[_0x11d2('0x31')](_0x832353[_0x11d2('0x2d')],qs[_0x11d2('0x33')](_0x168b5a['query']['fields']));_0x15db63['attributes']=_0x15db63[_0x11d2('0x32')][_0x11d2('0x34')]?_0x15db63['attributes']:_0x832353[_0x11d2('0x2d')];if(_0x168b5a['query'][_0x11d2('0x43')]){_0x15db63[_0x11d2('0x3f')]=[{'all':!![]}];}_0x15db63=_[_0x11d2('0x3c')]({},_0x15db63,_0x168b5a['options']);return db[_0x11d2('0x29')]['find'](_0x15db63)[_0x11d2('0x24')](handleEntityNotFound(_0x5eb565,null))[_0x11d2('0x24')](respondWithResult(_0x5eb565,null))[_0x11d2('0x44')](handleError(_0x5eb565,null));};exports[_0x11d2('0x45')]=function(_0x54e318,_0x5edfa6){return db[_0x11d2('0x29')][_0x11d2('0x45')](_0x54e318[_0x11d2('0x46')],{})[_0x11d2('0x24')](respondWithResult(_0x5edfa6,0xc9))[_0x11d2('0x44')](handleError(_0x5edfa6,null));};exports[_0x11d2('0x47')]=function(_0x4bc36b,_0xbc0fc9){return db[_0x11d2('0x29')][_0x11d2('0x47')](_0x4bc36b[_0x11d2('0x46')],{'raw':![],'individualHooks':!![]})[_0x11d2('0x24')](respondWithResult(_0xbc0fc9,0xc9))[_0x11d2('0x44')](handleError(_0xbc0fc9,null));};exports[_0x11d2('0x23')]=function(_0x3a9f55,_0x351197){if(_0x3a9f55['body']['id']){delete _0x3a9f55[_0x11d2('0x46')]['id'];}return db[_0x11d2('0x29')]['find']({'where':{'id':_0x3a9f55[_0x11d2('0x42')]['id']}})['then'](handleEntityNotFound(_0x351197,null))['then'](saveUpdates(_0x3a9f55[_0x11d2('0x46')],null))['then'](respondWithResult(_0x351197,null))['catch'](handleError(_0x351197,null));};exports[_0x11d2('0x48')]=function(_0x258119,_0x587c2f){return db[_0x11d2('0x29')][_0x11d2('0x49')]({'where':{'id':_0x258119[_0x11d2('0x42')]['id']}})[_0x11d2('0x24')](handleEntityNotFound(_0x587c2f,null))[_0x11d2('0x24')](removeEntity(_0x587c2f,null))[_0x11d2('0x44')](handleError(_0x587c2f,null));};exports[_0x11d2('0x4a')]=function(_0x1edd99,_0x5c8ccb){return db[_0x11d2('0x29')]['destroy']({'where':{'id':_0x1edd99[_0x11d2('0x2e')]['ids']||[]},'raw':![],'individualHooks':!![]})[_0x11d2('0x24')](respondWithResult(_0x5c8ccb,0xcc))[_0x11d2('0x44')](handleError(_0x5c8ccb,null));};exports[_0x11d2('0x4b')]=function(_0x3ac7c1,_0x240663,_0x41ae1a){return db[_0x11d2('0x4c')][_0x11d2('0x4d')]({'where':{'id':_0x3ac7c1[_0x11d2('0x42')]['id']}})[_0x11d2('0x24')](handleEntityNotFound(_0x240663,null))['then'](function(_0x3f046c){if(_0x3f046c){return db[_0x11d2('0x4e')]['transaction'](function(_0x3ac3d5){return db['AnalyticFieldReport']['destroy']({'where':{'CustomReportId':_0x3ac7c1[_0x11d2('0x42')]['id']},'transaction':_0x3ac3d5})[_0x11d2('0x24')](function(_0x5960b5){var _0x224221=_[_0x11d2('0x28')](_0x3ac7c1['body'],function(_0x3775ea){delete _0x3775ea['id'];_0x3775ea[_0x11d2('0x4f')]=_0x3ac7c1[_0x11d2('0x42')]['id'];return _0x3775ea;});return db[_0x11d2('0x29')]['bulkCreate'](_0x224221,{'transaction':_0x3ac3d5});});})[_0x11d2('0x24')](function(){return db[_0x11d2('0x29')][_0x11d2('0x40')]({'where':{'CustomReportId':_0x3ac7c1[_0x11d2('0x42')]['id']}});});}})[_0x11d2('0x24')](respondWithResult(_0x240663,null))[_0x11d2('0x44')](handleError(_0x240663,null));};
\ No newline at end of file
+var _0x46a7=['count','Content-Range','apply','save','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','model','keys','query','intersection','fields','attributes','length','hasOwnProperty','sort','where','filters','pick','filter','VIRTUAL','options','AnalyticFieldReport','includeAll','include','findAll','rows','catch','show','merge','find','create','bulkCreate','update','body','params','bulkDestroy','ids','addFields','AnalyticCustomReport','findOne','sequelize','transaction','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','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/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0x46a7,0x138));var _0x746a=function(_0x313697,_0x1d95d2){_0x313697=_0x313697-0x0;var _0x24f8a0=_0x46a7[_0x313697];return _0x24f8a0;};'use strict';var emlformat=require(_0x746a('0x0'));var rimraf=require(_0x746a('0x1'));var zipdir=require(_0x746a('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x746a('0x3'));var moment=require(_0x746a('0x4'));var BPromise=require(_0x746a('0x5'));var Mustache=require(_0x746a('0x6'));var util=require(_0x746a('0x7'));var path=require(_0x746a('0x8'));var sox=require(_0x746a('0x9'));var csv=require(_0x746a('0xa'));var ejs=require(_0x746a('0xb'));var fs=require('fs');var fs_extra=require(_0x746a('0xc'));var _=require(_0x746a('0xd'));var squel=require(_0x746a('0xe'));var crypto=require(_0x746a('0xf'));var jsforce=require(_0x746a('0x10'));var deskjs=require(_0x746a('0x11'));var toCsv=require('to-csv');var querystring=require(_0x746a('0x12'));var Papa=require(_0x746a('0x13'));var Redis=require(_0x746a('0x14'));var authService=require(_0x746a('0x15'));var qs=require(_0x746a('0x16'));var as=require(_0x746a('0x17'));var hardwareService=require(_0x746a('0x18'));var logger=require(_0x746a('0x19'))(_0x746a('0x1a'));var utils=require('../../config/utils');var config=require(_0x746a('0x1b'));var licenseUtil=require(_0x746a('0x1c'));var db=require(_0x746a('0x1d'))['db'];function respondWithStatusCode(_0x3e70b7,_0x3514b6){_0x3514b6=_0x3514b6||0xcc;return function(_0x38d774){if(_0x38d774){return _0x3e70b7[_0x746a('0x1e')](_0x3514b6);}return _0x3e70b7[_0x746a('0x1f')](_0x3514b6)[_0x746a('0x20')]();};}function respondWithResult(_0x3b0a40,_0x172f5b){_0x172f5b=_0x172f5b||0xc8;return function(_0x24e56e){if(_0x24e56e){return _0x3b0a40['status'](_0x172f5b)['json'](_0x24e56e);}};}function respondWithFilteredResult(_0xfce5fa,_0x3976d2){return function(_0x3825e1){if(_0x3825e1){var _0x1ff9a3=typeof _0x3976d2[_0x746a('0x21')]===_0x746a('0x22')&&typeof _0x3976d2[_0x746a('0x23')]===_0x746a('0x22');var _0x41b920=_0x3825e1['count'];var _0x482295=_0x1ff9a3?0x0:_0x3976d2['offset'];var _0x2a4e14=_0x1ff9a3?_0x3825e1[_0x746a('0x24')]:_0x3976d2[_0x746a('0x21')]+_0x3976d2[_0x746a('0x23')];var _0x108333;if(_0x2a4e14>=_0x41b920){_0x2a4e14=_0x41b920;_0x108333=0xc8;}else{_0x108333=0xce;}_0xfce5fa[_0x746a('0x1f')](_0x108333);return _0xfce5fa['set'](_0x746a('0x25'),_0x482295+'-'+_0x2a4e14+'/'+_0x41b920)['json'](_0x3825e1);}return null;};}function patchUpdates(_0x37845e){return function(_0x37158b){try{jsonpatch[_0x746a('0x26')](_0x37158b,_0x37845e,!![]);}catch(_0x257d1a){return BPromise['reject'](_0x257d1a);}return _0x37158b[_0x746a('0x27')]();};}function saveUpdates(_0x3719ee,_0x375462){return function(_0x3c930a){if(_0x3c930a){return _0x3c930a['update'](_0x3719ee)[_0x746a('0x28')](function(_0x1a46e4){return _0x1a46e4;});}return null;};}function removeEntity(_0x53a44e,_0x4f33cc){return function(_0x222edf){if(_0x222edf){return _0x222edf[_0x746a('0x29')]()['then'](function(){_0x53a44e[_0x746a('0x1f')](0xcc)[_0x746a('0x20')]();});}};}function handleEntityNotFound(_0x10cc56,_0x295752){return function(_0x3069b9){if(!_0x3069b9){_0x10cc56[_0x746a('0x1e')](0x194);}return _0x3069b9;};}function handleError(_0x2b91a0,_0x3016b5){_0x3016b5=_0x3016b5||0x1f4;return function(_0x46bfc0){logger[_0x746a('0x2a')](_0x46bfc0[_0x746a('0x2b')]);if(_0x46bfc0[_0x746a('0x2c')]){delete _0x46bfc0['name'];}_0x2b91a0['status'](_0x3016b5)[_0x746a('0x2d')](_0x46bfc0);};}exports[_0x746a('0x2e')]=function(_0x491250,_0x919096){var _0x953e4e={},_0x258441={},_0xacb076={'count':0x0,'rows':[]};var _0x5a5f9c=_[_0x746a('0x2f')](db['AnalyticFieldReport'][_0x746a('0x30')],function(_0x132b08){return{'name':_0x132b08[_0x746a('0x31')],'type':_0x132b08[_0x746a('0x32')]['key']};});_0x258441[_0x746a('0x33')]=_['map'](_0x5a5f9c,_0x746a('0x2c'));_0x258441['query']=_[_0x746a('0x34')](_0x491250[_0x746a('0x35')]);_0x258441['filters']=_[_0x746a('0x36')](_0x258441[_0x746a('0x33')],_0x258441[_0x746a('0x35')]);_0x953e4e['attributes']=_[_0x746a('0x36')](_0x258441[_0x746a('0x33')],qs[_0x746a('0x37')](_0x491250[_0x746a('0x35')][_0x746a('0x37')]));_0x953e4e[_0x746a('0x38')]=_0x953e4e[_0x746a('0x38')][_0x746a('0x39')]?_0x953e4e[_0x746a('0x38')]:_0x258441[_0x746a('0x33')];if(!_0x491250[_0x746a('0x35')][_0x746a('0x3a')]('nolimit')){_0x953e4e['limit']=qs[_0x746a('0x23')](_0x491250[_0x746a('0x35')]['limit']);_0x953e4e[_0x746a('0x21')]=qs[_0x746a('0x21')](_0x491250[_0x746a('0x35')][_0x746a('0x21')]);}_0x953e4e['order']=qs[_0x746a('0x3b')](_0x491250[_0x746a('0x35')]['sort']);_0x953e4e[_0x746a('0x3c')]=qs[_0x746a('0x3d')](_[_0x746a('0x3e')](_0x491250['query'],_0x258441[_0x746a('0x3d')]),_0x5a5f9c);if(_0x491250[_0x746a('0x35')][_0x746a('0x3f')]){_0x953e4e['where']=_['merge'](_0x953e4e[_0x746a('0x3c')],{'$or':_[_0x746a('0x2f')](_0x5a5f9c,function(_0x3a52f4){if(_0x3a52f4[_0x746a('0x32')]!==_0x746a('0x40')){var _0x47d531={};_0x47d531[_0x3a52f4['name']]={'$like':'%'+_0x491250['query'][_0x746a('0x3f')]+'%'};return _0x47d531;}})});}_0x953e4e=_['merge']({},_0x953e4e,_0x491250[_0x746a('0x41')]);var _0x8bbc85={'where':_0x953e4e[_0x746a('0x3c')]};return db[_0x746a('0x42')][_0x746a('0x24')](_0x8bbc85)[_0x746a('0x28')](function(_0x2dc8b8){_0xacb076['count']=_0x2dc8b8;if(_0x491250[_0x746a('0x35')][_0x746a('0x43')]){_0x953e4e[_0x746a('0x44')]=[{'all':!![]}];}return db[_0x746a('0x42')][_0x746a('0x45')](_0x953e4e);})[_0x746a('0x28')](function(_0x40554f){_0xacb076[_0x746a('0x46')]=_0x40554f;return _0xacb076;})[_0x746a('0x28')](respondWithFilteredResult(_0x919096,_0x953e4e))[_0x746a('0x47')](handleError(_0x919096,null));};exports[_0x746a('0x48')]=function(_0x3c57e2,_0x309608){var _0x4885a4={'raw':![],'where':{'id':_0x3c57e2['params']['id']}},_0x56177d={};_0x56177d[_0x746a('0x33')]=_[_0x746a('0x34')](db[_0x746a('0x42')][_0x746a('0x30')]);_0x56177d[_0x746a('0x35')]=_[_0x746a('0x34')](_0x3c57e2['query']);_0x56177d[_0x746a('0x3d')]=_[_0x746a('0x36')](_0x56177d[_0x746a('0x33')],_0x56177d[_0x746a('0x35')]);_0x4885a4[_0x746a('0x38')]=_['intersection'](_0x56177d[_0x746a('0x33')],qs[_0x746a('0x37')](_0x3c57e2['query'][_0x746a('0x37')]));_0x4885a4[_0x746a('0x38')]=_0x4885a4['attributes'][_0x746a('0x39')]?_0x4885a4[_0x746a('0x38')]:_0x56177d[_0x746a('0x33')];if(_0x3c57e2[_0x746a('0x35')][_0x746a('0x43')]){_0x4885a4[_0x746a('0x44')]=[{'all':!![]}];}_0x4885a4=_[_0x746a('0x49')]({},_0x4885a4,_0x3c57e2['options']);return db['AnalyticFieldReport'][_0x746a('0x4a')](_0x4885a4)[_0x746a('0x28')](handleEntityNotFound(_0x309608,null))[_0x746a('0x28')](respondWithResult(_0x309608,null))[_0x746a('0x47')](handleError(_0x309608,null));};exports[_0x746a('0x4b')]=function(_0xd14773,_0x5f1f89){return db[_0x746a('0x42')]['create'](_0xd14773['body'],{})['then'](respondWithResult(_0x5f1f89,0xc9))[_0x746a('0x47')](handleError(_0x5f1f89,null));};exports[_0x746a('0x4c')]=function(_0x361f88,_0x58cefc){return db['AnalyticFieldReport'][_0x746a('0x4c')](_0x361f88['body'],{'raw':![],'individualHooks':!![]})[_0x746a('0x28')](respondWithResult(_0x58cefc,0xc9))[_0x746a('0x47')](handleError(_0x58cefc,null));};exports[_0x746a('0x4d')]=function(_0x221db4,_0x3e6c9e){if(_0x221db4['body']['id']){delete _0x221db4[_0x746a('0x4e')]['id'];}return db[_0x746a('0x42')]['find']({'where':{'id':_0x221db4[_0x746a('0x4f')]['id']}})[_0x746a('0x28')](handleEntityNotFound(_0x3e6c9e,null))[_0x746a('0x28')](saveUpdates(_0x221db4[_0x746a('0x4e')],null))[_0x746a('0x28')](respondWithResult(_0x3e6c9e,null))[_0x746a('0x47')](handleError(_0x3e6c9e,null));};exports[_0x746a('0x29')]=function(_0x28fe11,_0xe6569a){return db[_0x746a('0x42')][_0x746a('0x4a')]({'where':{'id':_0x28fe11[_0x746a('0x4f')]['id']}})[_0x746a('0x28')](handleEntityNotFound(_0xe6569a,null))[_0x746a('0x28')](removeEntity(_0xe6569a,null))[_0x746a('0x47')](handleError(_0xe6569a,null));};exports[_0x746a('0x50')]=function(_0x5dfbb2,_0x56b9bd){return db['AnalyticFieldReport']['destroy']({'where':{'id':_0x5dfbb2[_0x746a('0x35')][_0x746a('0x51')]||[]},'raw':![],'individualHooks':!![]})[_0x746a('0x28')](respondWithResult(_0x56b9bd,0xcc))[_0x746a('0x47')](handleError(_0x56b9bd,null));};exports[_0x746a('0x52')]=function(_0xa9e552,_0x2c503b,_0x42c454){return db[_0x746a('0x53')][_0x746a('0x54')]({'where':{'id':_0xa9e552['params']['id']}})[_0x746a('0x28')](handleEntityNotFound(_0x2c503b,null))[_0x746a('0x28')](function(_0x3d1b9d){if(_0x3d1b9d){return db[_0x746a('0x55')][_0x746a('0x56')](function(_0x44afee){return db[_0x746a('0x42')][_0x746a('0x29')]({'where':{'CustomReportId':_0xa9e552['params']['id']},'transaction':_0x44afee})['then'](function(_0x1e7511){var _0x38f4a9=_['map'](_0xa9e552['body'],function(_0x2a5018){delete _0x2a5018['id'];_0x2a5018['CustomReportId']=_0xa9e552[_0x746a('0x4f')]['id'];return _0x2a5018;});return db['AnalyticFieldReport']['bulkCreate'](_0x38f4a9,{'transaction':_0x44afee});});})[_0x746a('0x28')](function(){return db['AnalyticFieldReport'][_0x746a('0x45')]({'where':{'CustomReportId':_0xa9e552[_0x746a('0x4f')]['id']}});});}})['then'](respondWithResult(_0x2c503b,null))['catch'](handleError(_0x2c503b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x749c=['define','AnalyticFieldReport','analytics_report_fields','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./analyticFieldReport.attributes','exports'];(function(_0x4dae00,_0x15b194){var _0x16bf42=function(_0x5f2a9a){while(--_0x5f2a9a){_0x4dae00['push'](_0x4dae00['shift']());}};_0x16bf42(++_0x15b194);}(_0x749c,0x1df));var _0xc749=function(_0x18d631,_0x4376d2){_0x18d631=_0x18d631-0x0;var _0x50d708=_0x749c[_0x18d631];return _0x50d708;};'use strict';var _=require(_0xc749('0x0'));var util=require(_0xc749('0x1'));var logger=require(_0xc749('0x2'))(_0xc749('0x3'));var moment=require(_0xc749('0x4'));var BPromise=require('bluebird');var rp=require(_0xc749('0x5'));var fs=require('fs');var path=require(_0xc749('0x6'));var rimraf=require(_0xc749('0x7'));var config=require(_0xc749('0x8'));var attributes=require(_0xc749('0x9'));module[_0xc749('0xa')]=function(_0x280260,_0x3851f6){return _0x280260[_0xc749('0xb')](_0xc749('0xc'),attributes,{'tableName':_0xc749('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8123=['path','rimraf','../../config/environment','exports','define','AnalyticFieldReport','analytics_report_fields','../../config/logger','api','moment','bluebird'];(function(_0x1167dc,_0x4fe3ff){var _0x47ff3d=function(_0x223c52){while(--_0x223c52){_0x1167dc['push'](_0x1167dc['shift']());}};_0x47ff3d(++_0x4fe3ff);}(_0x8123,0x167));var _0x3812=function(_0x31eb67,_0x9bc8c0){_0x31eb67=_0x31eb67-0x0;var _0x2a8cb8=_0x8123[_0x31eb67];return _0x2a8cb8;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x3812('0x0'))(_0x3812('0x1'));var moment=require(_0x3812('0x2'));var BPromise=require(_0x3812('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x3812('0x4'));var rimraf=require(_0x3812('0x5'));var config=require(_0x3812('0x6'));var attributes=require('./analyticFieldReport.attributes');module[_0x3812('0x7')]=function(_0x1b6581,_0x129ecf){return _0x1b6581[_0x3812('0x8')](_0x3812('0x9'),attributes,{'tableName':_0x3812('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d8f=['code','message','info','result','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/environment','client','http','request','then','AnalyticFieldReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticFieldReport,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0xf73c09,_0x4e424e){var _0xa8923c=function(_0x4831c1){while(--_0x4831c1){_0xf73c09['push'](_0xf73c09['shift']());}};_0xa8923c(++_0x4e424e);}(_0x8d8f,0x1e9));var _0xf8d8=function(_0x87ef72,_0x570105){_0x87ef72=_0x87ef72-0x0;var _0x22ba0f=_0x8d8f[_0x87ef72];return _0x22ba0f;};'use strict';var _=require(_0xf8d8('0x0'));var util=require(_0xf8d8('0x1'));var moment=require(_0xf8d8('0x2'));var BPromise=require('bluebird');var rs=require(_0xf8d8('0x3'));var fs=require('fs');var Redis=require(_0xf8d8('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xf8d8('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0xf8d8('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xf8d8('0x7')][_0xf8d8('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x2a2dbc,_0x52b43e,_0x5a9cc9){return new BPromise(function(_0x13d48f,_0x5de3a0){return client[_0xf8d8('0x9')](_0x2a2dbc,_0x5a9cc9)[_0xf8d8('0xa')](function(_0x5d1527){logger['info'](_0xf8d8('0xb'),_0x52b43e,_0xf8d8('0xc'));logger[_0xf8d8('0xd')](_0xf8d8('0xe'),_0x52b43e,_0xf8d8('0xc'),JSON[_0xf8d8('0xf')](_0x5d1527));if(_0x5d1527['error']){if(_0x5d1527[_0xf8d8('0x10')][_0xf8d8('0x11')]===0x1f4){logger[_0xf8d8('0x10')](_0xf8d8('0xb'),_0x52b43e,_0x5d1527[_0xf8d8('0x10')]['message']);return _0x5de3a0(_0x5d1527[_0xf8d8('0x10')][_0xf8d8('0x12')]);}logger[_0xf8d8('0x10')](_0xf8d8('0xb'),_0x52b43e,_0x5d1527[_0xf8d8('0x10')][_0xf8d8('0x12')]);return _0x13d48f(_0x5d1527['error'][_0xf8d8('0x12')]);}else{logger[_0xf8d8('0x13')](_0xf8d8('0xb'),_0x52b43e,_0xf8d8('0xc'));_0x13d48f(_0x5d1527[_0xf8d8('0x14')][_0xf8d8('0x12')]);}})[_0xf8d8('0x15')](function(_0x5e1bad){logger[_0xf8d8('0x10')](_0xf8d8('0xb'),_0x52b43e,_0x5e1bad);_0x5de3a0(_0x5e1bad);});});}
\ No newline at end of file
+var _0x9cba=['jayson/promise','http','request','then','info','AnalyticFieldReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticFieldReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0x15a21b,_0x5e7ddc){var _0x4f69c8=function(_0x225f12){while(--_0x225f12){_0x15a21b['push'](_0x15a21b['shift']());}};_0x4f69c8(++_0x5e7ddc);}(_0x9cba,0x1b0));var _0xa9cb=function(_0xb0f7c3,_0x4eae95){_0xb0f7c3=_0xb0f7c3-0x0;var _0x28ea68=_0x9cba[_0xb0f7c3];return _0x28ea68;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xa9cb('0x0'));var BPromise=require(_0xa9cb('0x1'));var rs=require(_0xa9cb('0x2'));var fs=require('fs');var Redis=require(_0xa9cb('0x3'));var db=require(_0xa9cb('0x4'))['db'];var utils=require(_0xa9cb('0x5'));var logger=require('../../config/logger')(_0xa9cb('0x6'));var config=require(_0xa9cb('0x7'));var jayson=require(_0xa9cb('0x8'));var client=jayson['client'][_0xa9cb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4ca031,_0xae037a,_0x442276){return new BPromise(function(_0x21052d,_0x1a128a){return client[_0xa9cb('0xa')](_0x4ca031,_0x442276)[_0xa9cb('0xb')](function(_0x35a060){logger[_0xa9cb('0xc')](_0xa9cb('0xd'),_0xae037a,_0xa9cb('0xe'));logger[_0xa9cb('0xf')](_0xa9cb('0x10'),_0xae037a,_0xa9cb('0xe'),JSON[_0xa9cb('0x11')](_0x35a060));if(_0x35a060[_0xa9cb('0x12')]){if(_0x35a060[_0xa9cb('0x12')]['code']===0x1f4){logger[_0xa9cb('0x12')](_0xa9cb('0xd'),_0xae037a,_0x35a060[_0xa9cb('0x12')]['message']);return _0x1a128a(_0x35a060[_0xa9cb('0x12')][_0xa9cb('0x13')]);}logger['error'](_0xa9cb('0xd'),_0xae037a,_0x35a060[_0xa9cb('0x12')][_0xa9cb('0x13')]);return _0x21052d(_0x35a060[_0xa9cb('0x12')][_0xa9cb('0x13')]);}else{logger[_0xa9cb('0xc')](_0xa9cb('0xd'),_0xae037a,_0xa9cb('0xe'));_0x21052d(_0x35a060[_0xa9cb('0x14')][_0xa9cb('0x13')]);}})[_0xa9cb('0x15')](function(_0x496a75){logger[_0xa9cb('0x12')](_0xa9cb('0xd'),_0xae037a,_0x496a75);_0x1a128a(_0x496a75);});});}
\ 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(_0x4acfdb,_0x57ea11){var _0x2a9214=function(_0x5ae267){while(--_0x5ae267){_0x4acfdb['push'](_0x4acfdb['shift']());}};_0x2a9214(++_0x57ea11);}(_0xa9e0,0x123));var _0x0a9e=function(_0x31e29a,_0x349c9b){_0x31e29a=_0x31e29a-0x0;var _0x32d892=_0xa9e0[_0x31e29a];return _0x32d892;};'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(_0xd4358b,_0x19a430){var _0xa91959=function(_0x1bedad){while(--_0x1bedad){_0xd4358b['push'](_0xd4358b['shift']());}};_0xa91959(++_0x19a430);}(_0xa9e0,0x123));var _0x0a9e=function(_0x32d457,_0x1a39c9){_0x32d457=_0x32d457-0x0;var _0x338386=_0xa9e0[_0x32d457];return _0x338386;};'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 _0x2917=['name','TEXT','sequelize','exports','STRING'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x2917,0x142));var _0x7291=function(_0x596c43,_0x28647a){_0x596c43=_0x596c43-0x0;var _0x4e1315=_0x2917[_0x596c43];return _0x4e1315;};'use strict';var Sequelize=require(_0x7291('0x0'));module[_0x7291('0x1')]={'name':{'type':Sequelize[_0x7291('0x2')],'allowNull':![],'unique':_0x7291('0x3')},'table':{'type':Sequelize[_0x7291('0x2')]},'metric':{'type':Sequelize[_0x7291('0x4')]},'description':{'type':Sequelize[_0x7291('0x2')]}};
\ No newline at end of file
+var _0x8c50=['TEXT','exports','STRING'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x8c50,0xcd));var _0x08c5=function(_0x77858d,_0xd00630){_0x77858d=_0x77858d-0x0;var _0x4d938b=_0x8c50[_0x77858d];return _0x4d938b;};'use strict';var Sequelize=require('sequelize');module[_0x08c5('0x0')]={'name':{'type':Sequelize[_0x08c5('0x1')],'allowNull':![],'unique':'name'},'table':{'type':Sequelize[_0x08c5('0x1')]},'metric':{'type':Sequelize[_0x08c5('0x2')]},'description':{'type':Sequelize[_0x08c5('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fbe=['util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','../../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','Content-Range','apply','save','update','then','get','UserProfileResource','destroy','end','error','stack','name','send','index','AnalyticMetric','fieldName','type','key','map','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','rows','show','params','create','body','role','user','Metrics','find','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache'];(function(_0x530bca,_0x1116cf){var _0x109ac3=function(_0x1695d3){while(--_0x1695d3){_0x530bca['push'](_0x530bca['shift']());}};_0x109ac3(++_0x1116cf);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x4b7391,_0x586f07){_0x4b7391=_0x4b7391-0x0;var _0x581212=_0x7fbe[_0x4b7391];return _0x581212;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe7fb('0x0'));var jsonpatch=require(_0xe7fb('0x1'));var rp=require(_0xe7fb('0x2'));var moment=require(_0xe7fb('0x3'));var BPromise=require(_0xe7fb('0x4'));var Mustache=require(_0xe7fb('0x5'));var util=require(_0xe7fb('0x6'));var path=require(_0xe7fb('0x7'));var sox=require(_0xe7fb('0x8'));var csv=require(_0xe7fb('0x9'));var ejs=require(_0xe7fb('0xa'));var fs=require('fs');var fs_extra=require(_0xe7fb('0xb'));var _=require(_0xe7fb('0xc'));var squel=require(_0xe7fb('0xd'));var crypto=require('crypto');var jsforce=require(_0xe7fb('0xe'));var deskjs=require(_0xe7fb('0xf'));var toCsv=require(_0xe7fb('0x9'));var querystring=require(_0xe7fb('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xe7fb('0x11'));var qs=require(_0xe7fb('0x12'));var as=require(_0xe7fb('0x13'));var hardwareService=require(_0xe7fb('0x14'));var logger=require(_0xe7fb('0x15'))(_0xe7fb('0x16'));var utils=require(_0xe7fb('0x17'));var config=require(_0xe7fb('0x18'));var licenseUtil=require(_0xe7fb('0x19'));var db=require(_0xe7fb('0x1a'))['db'];function respondWithStatusCode(_0x2437d4,_0x188e1d){_0x188e1d=_0x188e1d||0xcc;return function(_0xdf9760){if(_0xdf9760){return _0x2437d4[_0xe7fb('0x1b')](_0x188e1d);}return _0x2437d4[_0xe7fb('0x1c')](_0x188e1d)['end']();};}function respondWithResult(_0x278b75,_0x2225e5){_0x2225e5=_0x2225e5||0xc8;return function(_0x5573ab){if(_0x5573ab){return _0x278b75[_0xe7fb('0x1c')](_0x2225e5)[_0xe7fb('0x1d')](_0x5573ab);}};}function respondWithFilteredResult(_0x482f7d,_0xa76acf){return function(_0x559129){if(_0x559129){var _0x12fff6=typeof _0xa76acf[_0xe7fb('0x1e')]===_0xe7fb('0x1f')&&typeof _0xa76acf[_0xe7fb('0x20')]==='undefined';var _0x892b0f=_0x559129['count'];var _0x293a47=_0x12fff6?0x0:_0xa76acf['offset'];var _0x1e77fd=_0x12fff6?_0x559129[_0xe7fb('0x21')]:_0xa76acf[_0xe7fb('0x1e')]+_0xa76acf[_0xe7fb('0x20')];var _0x5df1a1;if(_0x1e77fd>=_0x892b0f){_0x1e77fd=_0x892b0f;_0x5df1a1=0xc8;}else{_0x5df1a1=0xce;}_0x482f7d[_0xe7fb('0x1c')](_0x5df1a1);return _0x482f7d['set'](_0xe7fb('0x22'),_0x293a47+'-'+_0x1e77fd+'/'+_0x892b0f)['json'](_0x559129);}return null;};}function patchUpdates(_0x15f7a4){return function(_0x4ea664){try{jsonpatch[_0xe7fb('0x23')](_0x4ea664,_0x15f7a4,!![]);}catch(_0x135624){return BPromise['reject'](_0x135624);}return _0x4ea664[_0xe7fb('0x24')]();};}function saveUpdates(_0x4742bd,_0x3ae8f1){return function(_0x4dcb4b){if(_0x4dcb4b){return _0x4dcb4b[_0xe7fb('0x25')](_0x4742bd)[_0xe7fb('0x26')](function(_0x5da3d9){return _0x5da3d9;});}return null;};}function removeEntity(_0x5bea27,_0x52f08b){return function(_0x35e4db){if(_0x35e4db){return _0x35e4db['destroy']()['then'](function(){var _0x4026b1=_0x35e4db[_0xe7fb('0x27')]({'plain':!![]});var _0x2996ae='Metrics';return db[_0xe7fb('0x28')][_0xe7fb('0x29')]({'where':{'type':_0x2996ae,'resourceId':_0x4026b1['id']}})[_0xe7fb('0x26')](function(){return _0x35e4db;});})[_0xe7fb('0x26')](function(){_0x5bea27[_0xe7fb('0x1c')](0xcc)[_0xe7fb('0x2a')]();});}};}function handleEntityNotFound(_0x380130,_0x59e015){return function(_0x5df9f2){if(!_0x5df9f2){_0x380130[_0xe7fb('0x1b')](0x194);}return _0x5df9f2;};}function handleError(_0x3bdee9,_0xead63){_0xead63=_0xead63||0x1f4;return function(_0x4fd290){logger[_0xe7fb('0x2b')](_0x4fd290[_0xe7fb('0x2c')]);if(_0x4fd290[_0xe7fb('0x2d')]){delete _0x4fd290[_0xe7fb('0x2d')];}_0x3bdee9[_0xe7fb('0x1c')](_0xead63)[_0xe7fb('0x2e')](_0x4fd290);};}exports[_0xe7fb('0x2f')]=function(_0x3dd0be,_0x4ce993){var _0x3d1fb5={},_0x1742f3={},_0x29d1ca={'count':0x0,'rows':[]};var _0x547a04=_['map'](db[_0xe7fb('0x30')]['rawAttributes'],function(_0xac56b4){return{'name':_0xac56b4[_0xe7fb('0x31')],'type':_0xac56b4[_0xe7fb('0x32')][_0xe7fb('0x33')]};});_0x1742f3['model']=_[_0xe7fb('0x34')](_0x547a04,_0xe7fb('0x2d'));_0x1742f3[_0xe7fb('0x35')]=_[_0xe7fb('0x36')](_0x3dd0be[_0xe7fb('0x35')]);_0x1742f3['filters']=_[_0xe7fb('0x37')](_0x1742f3[_0xe7fb('0x38')],_0x1742f3[_0xe7fb('0x35')]);_0x3d1fb5[_0xe7fb('0x39')]=_[_0xe7fb('0x37')](_0x1742f3[_0xe7fb('0x38')],qs[_0xe7fb('0x3a')](_0x3dd0be[_0xe7fb('0x35')][_0xe7fb('0x3a')]));_0x3d1fb5['attributes']=_0x3d1fb5[_0xe7fb('0x39')][_0xe7fb('0x3b')]?_0x3d1fb5[_0xe7fb('0x39')]:_0x1742f3['model'];if(!_0x3dd0be[_0xe7fb('0x35')][_0xe7fb('0x3c')](_0xe7fb('0x3d'))){_0x3d1fb5[_0xe7fb('0x20')]=qs[_0xe7fb('0x20')](_0x3dd0be[_0xe7fb('0x35')][_0xe7fb('0x20')]);_0x3d1fb5[_0xe7fb('0x1e')]=qs[_0xe7fb('0x1e')](_0x3dd0be[_0xe7fb('0x35')][_0xe7fb('0x1e')]);}_0x3d1fb5[_0xe7fb('0x3e')]=qs[_0xe7fb('0x3f')](_0x3dd0be[_0xe7fb('0x35')][_0xe7fb('0x3f')]);_0x3d1fb5[_0xe7fb('0x40')]=qs[_0xe7fb('0x41')](_[_0xe7fb('0x42')](_0x3dd0be[_0xe7fb('0x35')],_0x1742f3['filters']),_0x547a04);if(_0x3dd0be[_0xe7fb('0x35')][_0xe7fb('0x43')]){_0x3d1fb5[_0xe7fb('0x40')]=_[_0xe7fb('0x44')](_0x3d1fb5['where'],{'$or':_[_0xe7fb('0x34')](_0x547a04,function(_0x186418){if(_0x186418[_0xe7fb('0x32')]!==_0xe7fb('0x45')){var _0x49fe9d={};_0x49fe9d[_0x186418[_0xe7fb('0x2d')]]={'$like':'%'+_0x3dd0be[_0xe7fb('0x35')][_0xe7fb('0x43')]+'%'};return _0x49fe9d;}})});}_0x3d1fb5=_[_0xe7fb('0x44')]({},_0x3d1fb5,_0x3dd0be[_0xe7fb('0x46')]);var _0xb729fc={'where':_0x3d1fb5['where']};return db[_0xe7fb('0x30')][_0xe7fb('0x21')](_0xb729fc)[_0xe7fb('0x26')](function(_0x4b263d){_0x29d1ca[_0xe7fb('0x21')]=_0x4b263d;if(_0x3dd0be[_0xe7fb('0x35')]['includeAll']){_0x3d1fb5['include']=[{'all':!![]}];}return db['AnalyticMetric']['findAll'](_0x3d1fb5);})['then'](function(_0x900d67){_0x29d1ca[_0xe7fb('0x47')]=_0x900d67;return _0x29d1ca;})[_0xe7fb('0x26')](respondWithFilteredResult(_0x4ce993,_0x3d1fb5))['catch'](handleError(_0x4ce993,null));};exports[_0xe7fb('0x48')]=function(_0x58d743,_0x19277f){var _0x32cfa4={'raw':!![],'where':{'id':_0x58d743[_0xe7fb('0x49')]['id']}},_0x4d29d3={};_0x4d29d3[_0xe7fb('0x38')]=_[_0xe7fb('0x36')](db[_0xe7fb('0x30')]['rawAttributes']);_0x4d29d3[_0xe7fb('0x35')]=_[_0xe7fb('0x36')](_0x58d743[_0xe7fb('0x35')]);_0x4d29d3['filters']=_[_0xe7fb('0x37')](_0x4d29d3[_0xe7fb('0x38')],_0x4d29d3[_0xe7fb('0x35')]);_0x32cfa4[_0xe7fb('0x39')]=_[_0xe7fb('0x37')](_0x4d29d3['model'],qs[_0xe7fb('0x3a')](_0x58d743['query'][_0xe7fb('0x3a')]));_0x32cfa4[_0xe7fb('0x39')]=_0x32cfa4[_0xe7fb('0x39')][_0xe7fb('0x3b')]?_0x32cfa4[_0xe7fb('0x39')]:_0x4d29d3['model'];if(_0x58d743[_0xe7fb('0x35')]['includeAll']){_0x32cfa4['include']=[{'all':!![]}];}_0x32cfa4=_[_0xe7fb('0x44')]({},_0x32cfa4,_0x58d743[_0xe7fb('0x46')]);return db[_0xe7fb('0x30')]['find'](_0x32cfa4)[_0xe7fb('0x26')](handleEntityNotFound(_0x19277f,null))[_0xe7fb('0x26')](respondWithResult(_0x19277f,null))['catch'](handleError(_0x19277f,null));};exports['create']=function(_0x284bcb,_0x42270b){return db[_0xe7fb('0x30')][_0xe7fb('0x4a')](_0x284bcb[_0xe7fb('0x4b')],{})[_0xe7fb('0x26')](function(_0x18a590){var _0x347177=_0x284bcb['user'][_0xe7fb('0x27')]({'plain':!![]});if(!_0x347177)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x347177[_0xe7fb('0x4c')]===_0xe7fb('0x4d')){var _0x5cedfb=_0x18a590[_0xe7fb('0x27')]({'plain':!![]});var _0x5efd24=_0xe7fb('0x4e');return db['UserProfileSection'][_0xe7fb('0x4f')]({'where':{'name':_0x5efd24,'userProfileId':_0x347177['userProfileId']},'raw':!![]})[_0xe7fb('0x26')](function(_0x59158c){if(_0x59158c&&_0x59158c[_0xe7fb('0x50')]===0x0){return db[_0xe7fb('0x28')][_0xe7fb('0x4a')]({'name':_0x5cedfb[_0xe7fb('0x2d')],'resourceId':_0x5cedfb['id'],'type':_0x59158c[_0xe7fb('0x2d')],'sectionId':_0x59158c['id']},{})[_0xe7fb('0x26')](function(){return _0x18a590;});}else{return _0x18a590;}})[_0xe7fb('0x51')](function(_0x582a4a){logger['error'](_0xe7fb('0x52'),_0x582a4a);throw _0x582a4a;});}return _0x18a590;})['then'](respondWithResult(_0x42270b,0xc9))['catch'](handleError(_0x42270b,null));};exports['update']=function(_0x50b8df,_0x539252){if(_0x50b8df[_0xe7fb('0x4b')]['id']){delete _0x50b8df[_0xe7fb('0x4b')]['id'];}return db[_0xe7fb('0x30')][_0xe7fb('0x4f')]({'where':{'id':_0x50b8df['params']['id']}})[_0xe7fb('0x26')](handleEntityNotFound(_0x539252,null))[_0xe7fb('0x26')](saveUpdates(_0x50b8df[_0xe7fb('0x4b')],null))['then'](respondWithResult(_0x539252,null))['catch'](handleError(_0x539252,null));};exports[_0xe7fb('0x29')]=function(_0x377e5f,_0x300b8e){return db['AnalyticMetric'][_0xe7fb('0x4f')]({'where':{'id':_0x377e5f[_0xe7fb('0x49')]['id']}})[_0xe7fb('0x26')](handleEntityNotFound(_0x300b8e,null))[_0xe7fb('0x26')](removeEntity(_0x300b8e,null))['catch'](handleError(_0x300b8e,null));};
\ No newline at end of file
+var _0x4b84=['status','end','json','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','get','Metrics','UserProfileResource','sendStatus','stack','name','map','AnalyticMetric','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','request-promise','mustache','util','path','fs-extra','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb'];(function(_0x21273e,_0x29e20f){var _0x380679=function(_0x266f4d){while(--_0x266f4d){_0x21273e['push'](_0x21273e['shift']());}};_0x380679(++_0x29e20f);}(_0x4b84,0x1cc));var _0x44b8=function(_0x32f05c,_0x273aef){_0x32f05c=_0x32f05c-0x0;var _0x4307ed=_0x4b84[_0x32f05c];return _0x4307ed;};'use strict';var emlformat=require(_0x44b8('0x0'));var rimraf=require(_0x44b8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x44b8('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x44b8('0x3'));var util=require(_0x44b8('0x4'));var path=require(_0x44b8('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x44b8('0x6'));var _=require('lodash');var squel=require(_0x44b8('0x7'));var crypto=require('crypto');var jsforce=require(_0x44b8('0x8'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x44b8('0x9'));var Papa=require(_0x44b8('0xa'));var Redis=require(_0x44b8('0xb'));var authService=require('../../components/auth/service');var qs=require(_0x44b8('0xc'));var as=require(_0x44b8('0xd'));var hardwareService=require(_0x44b8('0xe'));var logger=require(_0x44b8('0xf'))(_0x44b8('0x10'));var utils=require(_0x44b8('0x11'));var config=require(_0x44b8('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x44b8('0x13'))['db'];function respondWithStatusCode(_0x4301a6,_0x4bcc43){_0x4bcc43=_0x4bcc43||0xcc;return function(_0x194230){if(_0x194230){return _0x4301a6['sendStatus'](_0x4bcc43);}return _0x4301a6[_0x44b8('0x14')](_0x4bcc43)[_0x44b8('0x15')]();};}function respondWithResult(_0x4df670,_0x63e8f6){_0x63e8f6=_0x63e8f6||0xc8;return function(_0x4be54c){if(_0x4be54c){return _0x4df670['status'](_0x63e8f6)[_0x44b8('0x16')](_0x4be54c);}};}function respondWithFilteredResult(_0x2af0ad,_0x1722da){return function(_0x41ab46){if(_0x41ab46){var _0x5e52f2=typeof _0x1722da['offset']==='undefined'&&typeof _0x1722da[_0x44b8('0x17')]==='undefined';var _0x28ef36=_0x41ab46[_0x44b8('0x18')];var _0x55e258=_0x5e52f2?0x0:_0x1722da[_0x44b8('0x19')];var _0xe3de8f=_0x5e52f2?_0x41ab46['count']:_0x1722da[_0x44b8('0x19')]+_0x1722da[_0x44b8('0x17')];var _0x4b600f;if(_0xe3de8f>=_0x28ef36){_0xe3de8f=_0x28ef36;_0x4b600f=0xc8;}else{_0x4b600f=0xce;}_0x2af0ad[_0x44b8('0x14')](_0x4b600f);return _0x2af0ad[_0x44b8('0x1a')](_0x44b8('0x1b'),_0x55e258+'-'+_0xe3de8f+'/'+_0x28ef36)[_0x44b8('0x16')](_0x41ab46);}return null;};}function patchUpdates(_0x102ef9){return function(_0x369c09){try{jsonpatch[_0x44b8('0x1c')](_0x369c09,_0x102ef9,!![]);}catch(_0x9b0536){return BPromise[_0x44b8('0x1d')](_0x9b0536);}return _0x369c09[_0x44b8('0x1e')]();};}function saveUpdates(_0x1d642b,_0x14996c){return function(_0x48327e){if(_0x48327e){return _0x48327e[_0x44b8('0x1f')](_0x1d642b)[_0x44b8('0x20')](function(_0x416b34){return _0x416b34;});}return null;};}function removeEntity(_0x1418db,_0x305a5c){return function(_0x51a34a){if(_0x51a34a){return _0x51a34a[_0x44b8('0x21')]()['then'](function(){var _0x41a922=_0x51a34a[_0x44b8('0x22')]({'plain':!![]});var _0x25a0c1=_0x44b8('0x23');return db[_0x44b8('0x24')]['destroy']({'where':{'type':_0x25a0c1,'resourceId':_0x41a922['id']}})[_0x44b8('0x20')](function(){return _0x51a34a;});})['then'](function(){_0x1418db[_0x44b8('0x14')](0xcc)[_0x44b8('0x15')]();});}};}function handleEntityNotFound(_0x549a26,_0x17ac44){return function(_0x470f49){if(!_0x470f49){_0x549a26[_0x44b8('0x25')](0x194);}return _0x470f49;};}function handleError(_0x59c1bf,_0xb22107){_0xb22107=_0xb22107||0x1f4;return function(_0x242342){logger['error'](_0x242342[_0x44b8('0x26')]);if(_0x242342['name']){delete _0x242342[_0x44b8('0x27')];}_0x59c1bf['status'](_0xb22107)['send'](_0x242342);};}exports['index']=function(_0x387293,_0x29b18d){var _0x44ce5a={},_0x1bd1be={},_0x38cd17={'count':0x0,'rows':[]};var _0xc3f667=_[_0x44b8('0x28')](db[_0x44b8('0x29')][_0x44b8('0x2a')],function(_0x28f918){return{'name':_0x28f918[_0x44b8('0x2b')],'type':_0x28f918[_0x44b8('0x2c')][_0x44b8('0x2d')]};});_0x1bd1be['model']=_[_0x44b8('0x28')](_0xc3f667,'name');_0x1bd1be[_0x44b8('0x2e')]=_[_0x44b8('0x2f')](_0x387293[_0x44b8('0x2e')]);_0x1bd1be[_0x44b8('0x30')]=_[_0x44b8('0x31')](_0x1bd1be['model'],_0x1bd1be[_0x44b8('0x2e')]);_0x44ce5a[_0x44b8('0x32')]=_[_0x44b8('0x31')](_0x1bd1be[_0x44b8('0x33')],qs[_0x44b8('0x34')](_0x387293['query'][_0x44b8('0x34')]));_0x44ce5a[_0x44b8('0x32')]=_0x44ce5a[_0x44b8('0x32')][_0x44b8('0x35')]?_0x44ce5a[_0x44b8('0x32')]:_0x1bd1be[_0x44b8('0x33')];if(!_0x387293[_0x44b8('0x2e')][_0x44b8('0x36')](_0x44b8('0x37'))){_0x44ce5a[_0x44b8('0x17')]=qs[_0x44b8('0x17')](_0x387293[_0x44b8('0x2e')][_0x44b8('0x17')]);_0x44ce5a[_0x44b8('0x19')]=qs[_0x44b8('0x19')](_0x387293[_0x44b8('0x2e')][_0x44b8('0x19')]);}_0x44ce5a[_0x44b8('0x38')]=qs[_0x44b8('0x39')](_0x387293[_0x44b8('0x2e')][_0x44b8('0x39')]);_0x44ce5a[_0x44b8('0x3a')]=qs['filters'](_[_0x44b8('0x3b')](_0x387293[_0x44b8('0x2e')],_0x1bd1be['filters']),_0xc3f667);if(_0x387293[_0x44b8('0x2e')][_0x44b8('0x3c')]){_0x44ce5a[_0x44b8('0x3a')]=_[_0x44b8('0x3d')](_0x44ce5a['where'],{'$or':_[_0x44b8('0x28')](_0xc3f667,function(_0x11e4e3){if(_0x11e4e3[_0x44b8('0x2c')]!==_0x44b8('0x3e')){var _0x9cb2a={};_0x9cb2a[_0x11e4e3[_0x44b8('0x27')]]={'$like':'%'+_0x387293[_0x44b8('0x2e')][_0x44b8('0x3c')]+'%'};return _0x9cb2a;}})});}_0x44ce5a=_[_0x44b8('0x3d')]({},_0x44ce5a,_0x387293[_0x44b8('0x3f')]);var _0x1c9983={'where':_0x44ce5a[_0x44b8('0x3a')]};return db[_0x44b8('0x29')][_0x44b8('0x18')](_0x1c9983)[_0x44b8('0x20')](function(_0x29b43f){_0x38cd17['count']=_0x29b43f;if(_0x387293[_0x44b8('0x2e')][_0x44b8('0x40')]){_0x44ce5a[_0x44b8('0x41')]=[{'all':!![]}];}return db['AnalyticMetric'][_0x44b8('0x42')](_0x44ce5a);})[_0x44b8('0x20')](function(_0x229cc9){_0x38cd17['rows']=_0x229cc9;return _0x38cd17;})[_0x44b8('0x20')](respondWithFilteredResult(_0x29b18d,_0x44ce5a))[_0x44b8('0x43')](handleError(_0x29b18d,null));};exports[_0x44b8('0x44')]=function(_0x334f86,_0xfd590a){var _0x499a3e={'raw':!![],'where':{'id':_0x334f86[_0x44b8('0x45')]['id']}},_0x5ae5f9={};_0x5ae5f9[_0x44b8('0x33')]=_[_0x44b8('0x2f')](db[_0x44b8('0x29')][_0x44b8('0x2a')]);_0x5ae5f9[_0x44b8('0x2e')]=_[_0x44b8('0x2f')](_0x334f86[_0x44b8('0x2e')]);_0x5ae5f9[_0x44b8('0x30')]=_[_0x44b8('0x31')](_0x5ae5f9[_0x44b8('0x33')],_0x5ae5f9[_0x44b8('0x2e')]);_0x499a3e[_0x44b8('0x32')]=_[_0x44b8('0x31')](_0x5ae5f9[_0x44b8('0x33')],qs[_0x44b8('0x34')](_0x334f86[_0x44b8('0x2e')][_0x44b8('0x34')]));_0x499a3e[_0x44b8('0x32')]=_0x499a3e['attributes']['length']?_0x499a3e[_0x44b8('0x32')]:_0x5ae5f9[_0x44b8('0x33')];if(_0x334f86[_0x44b8('0x2e')][_0x44b8('0x40')]){_0x499a3e[_0x44b8('0x41')]=[{'all':!![]}];}_0x499a3e=_[_0x44b8('0x3d')]({},_0x499a3e,_0x334f86[_0x44b8('0x3f')]);return db['AnalyticMetric'][_0x44b8('0x46')](_0x499a3e)['then'](handleEntityNotFound(_0xfd590a,null))[_0x44b8('0x20')](respondWithResult(_0xfd590a,null))[_0x44b8('0x43')](handleError(_0xfd590a,null));};exports[_0x44b8('0x47')]=function(_0x9207bf,_0x103d57){return db[_0x44b8('0x29')]['create'](_0x9207bf[_0x44b8('0x48')],{})[_0x44b8('0x20')](function(_0x10602c){var _0x25d266=_0x9207bf['user'][_0x44b8('0x22')]({'plain':!![]});if(!_0x25d266)throw new Error(_0x44b8('0x49'));if(_0x25d266[_0x44b8('0x4a')]===_0x44b8('0x4b')){var _0x44ec23=_0x10602c[_0x44b8('0x22')]({'plain':!![]});var _0x500bad=_0x44b8('0x23');return db[_0x44b8('0x4c')][_0x44b8('0x46')]({'where':{'name':_0x500bad,'userProfileId':_0x25d266[_0x44b8('0x4d')]},'raw':!![]})[_0x44b8('0x20')](function(_0x57d0e2){if(_0x57d0e2&&_0x57d0e2['autoAssociation']===0x0){return db[_0x44b8('0x24')]['create']({'name':_0x44ec23[_0x44b8('0x27')],'resourceId':_0x44ec23['id'],'type':_0x57d0e2['name'],'sectionId':_0x57d0e2['id']},{})[_0x44b8('0x20')](function(){return _0x10602c;});}else{return _0x10602c;}})[_0x44b8('0x43')](function(_0x1a29f6){logger[_0x44b8('0x4e')](_0x44b8('0x4f'),_0x1a29f6);throw _0x1a29f6;});}return _0x10602c;})[_0x44b8('0x20')](respondWithResult(_0x103d57,0xc9))[_0x44b8('0x43')](handleError(_0x103d57,null));};exports['update']=function(_0x3ad278,_0x37b2c2){if(_0x3ad278[_0x44b8('0x48')]['id']){delete _0x3ad278['body']['id'];}return db[_0x44b8('0x29')][_0x44b8('0x46')]({'where':{'id':_0x3ad278[_0x44b8('0x45')]['id']}})[_0x44b8('0x20')](handleEntityNotFound(_0x37b2c2,null))['then'](saveUpdates(_0x3ad278[_0x44b8('0x48')],null))[_0x44b8('0x20')](respondWithResult(_0x37b2c2,null))['catch'](handleError(_0x37b2c2,null));};exports[_0x44b8('0x21')]=function(_0x19f22b,_0x35136e){return db[_0x44b8('0x29')][_0x44b8('0x46')]({'where':{'id':_0x19f22b['params']['id']}})['then'](handleEntityNotFound(_0x35136e,null))[_0x44b8('0x20')](removeEntity(_0x35136e,null))[_0x44b8('0x43')](handleError(_0x35136e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x44ff=['../../config/environment','define','analytics_metrics','util','../../config/logger','api','rimraf'];(function(_0x246fe2,_0x33590f){var _0x24acc6=function(_0x3c8dfe){while(--_0x3c8dfe){_0x246fe2['push'](_0x246fe2['shift']());}};_0x24acc6(++_0x33590f);}(_0x44ff,0x1c3));var _0xf44f=function(_0x4c08f4,_0x4db005){_0x4c08f4=_0x4c08f4-0x0;var _0x2a7fae=_0x44ff[_0x4c08f4];return _0x2a7fae;};'use strict';var _=require('lodash');var util=require(_0xf44f('0x0'));var logger=require(_0xf44f('0x1'))(_0xf44f('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(_0xf44f('0x3'));var config=require(_0xf44f('0x4'));var attributes=require('./analyticMetric.attributes');module['exports']=function(_0x1e3227,_0x2ba2a5){return _0x1e3227[_0xf44f('0x5')]('AnalyticMetric',attributes,{'tableName':_0xf44f('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfd87=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./analyticMetric.attributes','AnalyticMetric','analytics_metrics','lodash','util'];(function(_0x2e4e19,_0x493b50){var _0x9ba20b=function(_0x2f6456){while(--_0x2f6456){_0x2e4e19['push'](_0x2e4e19['shift']());}};_0x9ba20b(++_0x493b50);}(_0xfd87,0x80));var _0x7fd8=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xfd87[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x7fd8('0x0'));var util=require(_0x7fd8('0x1'));var logger=require(_0x7fd8('0x2'))(_0x7fd8('0x3'));var moment=require(_0x7fd8('0x4'));var BPromise=require(_0x7fd8('0x5'));var rp=require(_0x7fd8('0x6'));var fs=require('fs');var path=require(_0x7fd8('0x7'));var rimraf=require(_0x7fd8('0x8'));var config=require(_0x7fd8('0x9'));var attributes=require(_0x7fd8('0xa'));module['exports']=function(_0x1395b6,_0x10a778){return _0x1395b6['define'](_0x7fd8('0xb'),attributes,{'tableName':_0x7fd8('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe120=['../../config/environment','jayson/promise','client','request','then','AnalyticMetric,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','rpc'];(function(_0x515afd,_0x1a1e91){var _0x536d53=function(_0x1d3a89){while(--_0x1d3a89){_0x515afd['push'](_0x515afd['shift']());}};_0x536d53(++_0x1a1e91);}(_0xe120,0x101));var _0x0e12=function(_0x5ac726,_0x5b8e8e){_0x5ac726=_0x5ac726-0x0;var _0x39d3bd=_0xe120[_0x5ac726];return _0x39d3bd;};'use strict';var _=require(_0x0e12('0x0'));var util=require(_0x0e12('0x1'));var moment=require(_0x0e12('0x2'));var BPromise=require(_0x0e12('0x3'));var rs=require(_0x0e12('0x4'));var fs=require('fs');var Redis=require(_0x0e12('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x0e12('0x6'));var config=require(_0x0e12('0x7'));var jayson=require(_0x0e12('0x8'));var client=jayson[_0x0e12('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5101ba,_0x496cc6,_0x4658ce){return new BPromise(function(_0x59dfad,_0x24d48c){return client[_0x0e12('0xa')](_0x5101ba,_0x4658ce)[_0x0e12('0xb')](function(_0x1871d3){logger['info'](_0x0e12('0xc'),_0x496cc6,_0x0e12('0xd'));logger[_0x0e12('0xe')]('AnalyticMetric,\x20%s,\x20%s,\x20%s',_0x496cc6,_0x0e12('0xd'),JSON[_0x0e12('0xf')](_0x1871d3));if(_0x1871d3['error']){if(_0x1871d3[_0x0e12('0x10')][_0x0e12('0x11')]===0x1f4){logger[_0x0e12('0x10')](_0x0e12('0xc'),_0x496cc6,_0x1871d3[_0x0e12('0x10')][_0x0e12('0x12')]);return _0x24d48c(_0x1871d3[_0x0e12('0x10')][_0x0e12('0x12')]);}logger[_0x0e12('0x10')]('AnalyticMetric,\x20%s,\x20%s',_0x496cc6,_0x1871d3['error'][_0x0e12('0x12')]);return _0x59dfad(_0x1871d3[_0x0e12('0x10')]['message']);}else{logger[_0x0e12('0x13')]('AnalyticMetric,\x20%s,\x20%s',_0x496cc6,'request\x20sent');_0x59dfad(_0x1871d3[_0x0e12('0x14')][_0x0e12('0x12')]);}})[_0x0e12('0x15')](function(_0x2f66d1){logger[_0x0e12('0x10')](_0x0e12('0xc'),_0x496cc6,_0x2f66d1);_0x24d48c(_0x2f66d1);});});}
\ No newline at end of file
+var _0x9117=['code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','request','then','info','AnalyticMetric,\x20%s,\x20%s','request\x20sent','debug','AnalyticMetric,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x1b6e2e,_0x27c5ba){var _0x2a24c4=function(_0x257b0e){while(--_0x257b0e){_0x1b6e2e['push'](_0x1b6e2e['shift']());}};_0x2a24c4(++_0x27c5ba);}(_0x9117,0x12f));var _0x7911=function(_0x121cf9,_0x5f2427){_0x121cf9=_0x121cf9-0x0;var _0x2e6ce7=_0x9117[_0x121cf9];return _0x2e6ce7;};'use strict';var _=require(_0x7911('0x0'));var util=require(_0x7911('0x1'));var moment=require(_0x7911('0x2'));var BPromise=require(_0x7911('0x3'));var rs=require(_0x7911('0x4'));var fs=require('fs');var Redis=require(_0x7911('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x7911('0x6'));var logger=require(_0x7911('0x7'))(_0x7911('0x8'));var config=require(_0x7911('0x9'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x9b6650,_0x10f2d9,_0x4c04f6){return new BPromise(function(_0x39fabe,_0x49aff7){return client[_0x7911('0xa')](_0x9b6650,_0x4c04f6)[_0x7911('0xb')](function(_0x56614c){logger[_0x7911('0xc')](_0x7911('0xd'),_0x10f2d9,_0x7911('0xe'));logger[_0x7911('0xf')](_0x7911('0x10'),_0x10f2d9,'request\x20sent',JSON[_0x7911('0x11')](_0x56614c));if(_0x56614c[_0x7911('0x12')]){if(_0x56614c['error'][_0x7911('0x13')]===0x1f4){logger[_0x7911('0x12')](_0x7911('0xd'),_0x10f2d9,_0x56614c['error']['message']);return _0x49aff7(_0x56614c[_0x7911('0x12')][_0x7911('0x14')]);}logger[_0x7911('0x12')]('AnalyticMetric,\x20%s,\x20%s',_0x10f2d9,_0x56614c[_0x7911('0x12')][_0x7911('0x14')]);return _0x39fabe(_0x56614c[_0x7911('0x12')][_0x7911('0x14')]);}else{logger['info']('AnalyticMetric,\x20%s,\x20%s',_0x10f2d9,_0x7911('0xe'));_0x39fabe(_0x56614c[_0x7911('0x15')][_0x7911('0x14')]);}})[_0x7911('0x16')](function(_0x19d936){logger[_0x7911('0x12')](_0x7911('0xd'),_0x10f2d9,_0x19d936);_0x49aff7(_0x19d936);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c79=['express','fs-extra','../../components/auth/service','../../config/environment','index','/:id','isAuthenticated','create','put','update','destroy','exports','multer'];(function(_0x487256,_0x49dca2){var _0x4db57d=function(_0x5560a3){while(--_0x5560a3){_0x487256['push'](_0x487256['shift']());}};_0x4db57d(++_0x49dca2);}(_0x8c79,0xa8));var _0x98c7=function(_0x39a71e,_0x128d6c){_0x39a71e=_0x39a71e-0x0;var _0x1d62fb=_0x8c79[_0x39a71e];return _0x1d62fb;};'use strict';var multer=require(_0x98c7('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0x98c7('0x1'));var router=express['Router']();var fs_extra=require(_0x98c7('0x2'));var auth=require(_0x98c7('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0x98c7('0x4'));var controller=require('./analyticMetric.controller');router['get']('/',auth['isAuthenticated'](),controller[_0x98c7('0x5')]);router['get'](_0x98c7('0x6'),auth[_0x98c7('0x7')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0x98c7('0x8')]);router[_0x98c7('0x9')](_0x98c7('0x6'),auth['isAuthenticated'](),controller[_0x98c7('0xa')]);router['delete'](_0x98c7('0x6'),auth[_0x98c7('0x7')](),controller[_0x98c7('0xb')]);module[_0x98c7('0xc')]=router;
\ No newline at end of file
+var _0x36b2=['../../config/environment','get','isAuthenticated','index','/:id','post','create','put','update','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/interaction/service'];(function(_0x1a51d5,_0x100621){var _0x55e71b=function(_0x318abd){while(--_0x318abd){_0x1a51d5['push'](_0x1a51d5['shift']());}};_0x55e71b(++_0x100621);}(_0x36b2,0x6b));var _0x236b=function(_0x13e708,_0x4c95ad){_0x13e708=_0x13e708-0x0;var _0x3209a9=_0x36b2[_0x13e708];return _0x3209a9;};'use strict';var multer=require(_0x236b('0x0'));var util=require(_0x236b('0x1'));var path=require(_0x236b('0x2'));var timeout=require('connect-timeout');var express=require(_0x236b('0x3'));var router=express[_0x236b('0x4')]();var fs_extra=require(_0x236b('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x236b('0x6'));var config=require(_0x236b('0x7'));var controller=require('./analyticMetric.controller');router[_0x236b('0x8')]('/',auth[_0x236b('0x9')](),controller[_0x236b('0xa')]);router[_0x236b('0x8')](_0x236b('0xb'),auth[_0x236b('0x9')](),controller['show']);router[_0x236b('0xc')]('/',auth[_0x236b('0x9')](),controller[_0x236b('0xd')]);router[_0x236b('0xe')]('/:id',auth[_0x236b('0x9')](),controller[_0x236b('0xf')]);router[_0x236b('0x10')]('/:id',auth[_0x236b('0x9')](),controller[_0x236b('0x11')]);module[_0x236b('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24ab=['exports','TEXT','sequelize'];(function(_0x2abc3d,_0x48edca){var _0x252745=function(_0x32bb6f){while(--_0x32bb6f){_0x2abc3d['push'](_0x2abc3d['shift']());}};_0x252745(++_0x48edca);}(_0x24ab,0x1c4));var _0xb24a=function(_0x318042,_0x20449a){_0x318042=_0x318042-0x0;var _0x3f0d02=_0x24ab[_0x318042];return _0x3f0d02;};'use strict';var Sequelize=require(_0xb24a('0x0'));module[_0xb24a('0x1')]={'tree':{'type':Sequelize[_0xb24a('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0xe93d=['TEXT','exports'];(function(_0x480fc2,_0x482fba){var _0x540a95=function(_0x4b5a56){while(--_0x4b5a56){_0x480fc2['push'](_0x480fc2['shift']());}};_0x540a95(++_0x482fba);}(_0xe93d,0x137));var _0xde93=function(_0x4bc91e,_0x26e1cd){_0x4bc91e=_0x4bc91e-0x0;var _0x1ebd55=_0xe93d[_0x4bc91e];return _0x1ebd55;};'use strict';var Sequelize=require('sequelize');module[_0xde93('0x0')]={'tree':{'type':Sequelize[_0xde93('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ede=['../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','json','apply','then','destroy','error','stack','name','index','map','AnalyticTreeReport','rawAttributes','fieldName','type','key','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','options','count','include','findAll','show','params','keys','includeAll','catch','create','body','update','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','sox','ejs','fs-extra','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service'];(function(_0xbd08b4,_0x4790ed){var _0x314f1e=function(_0x161589){while(--_0x161589){_0xbd08b4['push'](_0xbd08b4['shift']());}};_0x314f1e(++_0x4790ed);}(_0x0ede,0x14e));var _0xe0ed=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x0ede[_0x2dafbe];return _0x58a45a;};'use strict';var emlformat=require(_0xe0ed('0x0'));var rimraf=require(_0xe0ed('0x1'));var zipdir=require(_0xe0ed('0x2'));var jsonpatch=require(_0xe0ed('0x3'));var rp=require(_0xe0ed('0x4'));var moment=require(_0xe0ed('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xe0ed('0x6'));var path=require('path');var sox=require(_0xe0ed('0x7'));var csv=require('to-csv');var ejs=require(_0xe0ed('0x8'));var fs=require('fs');var fs_extra=require(_0xe0ed('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xe0ed('0xa'));var deskjs=require(_0xe0ed('0xb'));var toCsv=require(_0xe0ed('0xc'));var querystring=require(_0xe0ed('0xd'));var Papa=require('papaparse');var Redis=require(_0xe0ed('0xe'));var authService=require(_0xe0ed('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xe0ed('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe0ed('0x11'))(_0xe0ed('0x12'));var utils=require(_0xe0ed('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xe0ed('0x14'));var db=require(_0xe0ed('0x15'))['db'];function respondWithStatusCode(_0x47bbb2,_0x2f352e){_0x2f352e=_0x2f352e||0xcc;return function(_0x12f564){if(_0x12f564){return _0x47bbb2[_0xe0ed('0x16')](_0x2f352e);}return _0x47bbb2[_0xe0ed('0x17')](_0x2f352e)[_0xe0ed('0x18')]();};}function respondWithResult(_0x55dd62,_0x9d6233){_0x9d6233=_0x9d6233||0xc8;return function(_0x772285){if(_0x772285){return _0x55dd62[_0xe0ed('0x17')](_0x9d6233)['json'](_0x772285);}};}function respondWithFilteredResult(_0xf909e1,_0x2c6df9){return function(_0x4d6824){if(_0x4d6824){var _0x44a0e1=typeof _0x2c6df9[_0xe0ed('0x19')]===_0xe0ed('0x1a')&&typeof _0x2c6df9[_0xe0ed('0x1b')]===_0xe0ed('0x1a');var _0x499818=_0x4d6824['count'];var _0x421960=_0x44a0e1?0x0:_0x2c6df9['offset'];var _0xc5eb50=_0x44a0e1?_0x4d6824['count']:_0x2c6df9[_0xe0ed('0x19')]+_0x2c6df9[_0xe0ed('0x1b')];var _0x291528;if(_0xc5eb50>=_0x499818){_0xc5eb50=_0x499818;_0x291528=0xc8;}else{_0x291528=0xce;}_0xf909e1[_0xe0ed('0x17')](_0x291528);return _0xf909e1['set']('Content-Range',_0x421960+'-'+_0xc5eb50+'/'+_0x499818)[_0xe0ed('0x1c')](_0x4d6824);}return null;};}function patchUpdates(_0x210557){return function(_0x33fe5e){try{jsonpatch[_0xe0ed('0x1d')](_0x33fe5e,_0x210557,!![]);}catch(_0x446fd9){return BPromise['reject'](_0x446fd9);}return _0x33fe5e['save']();};}function saveUpdates(_0x4dc933,_0x3bd28c){return function(_0x471d0f){if(_0x471d0f){return _0x471d0f['update'](_0x4dc933)[_0xe0ed('0x1e')](function(_0x304523){return _0x304523;});}return null;};}function removeEntity(_0x37c869,_0x342d4d){return function(_0x44f9bd){if(_0x44f9bd){return _0x44f9bd[_0xe0ed('0x1f')]()['then'](function(){_0x37c869[_0xe0ed('0x17')](0xcc)[_0xe0ed('0x18')]();});}};}function handleEntityNotFound(_0x276d08,_0x156d79){return function(_0x187bbe){if(!_0x187bbe){_0x276d08[_0xe0ed('0x16')](0x194);}return _0x187bbe;};}function handleError(_0x7111e8,_0x30c265){_0x30c265=_0x30c265||0x1f4;return function(_0x32951d){logger[_0xe0ed('0x20')](_0x32951d[_0xe0ed('0x21')]);if(_0x32951d['name']){delete _0x32951d[_0xe0ed('0x22')];}_0x7111e8[_0xe0ed('0x17')](_0x30c265)['send'](_0x32951d);};}exports[_0xe0ed('0x23')]=function(_0x13a317,_0x206d8f){var _0x1ca1e2={},_0x53493e={},_0x4cb8d3={'count':0x0,'rows':[]};var _0x5c7107=_[_0xe0ed('0x24')](db[_0xe0ed('0x25')][_0xe0ed('0x26')],function(_0x488e9d){return{'name':_0x488e9d[_0xe0ed('0x27')],'type':_0x488e9d[_0xe0ed('0x28')][_0xe0ed('0x29')]};});_0x53493e['model']=_['map'](_0x5c7107,_0xe0ed('0x22'));_0x53493e[_0xe0ed('0x2a')]=_['keys'](_0x13a317['query']);_0x53493e[_0xe0ed('0x2b')]=_['intersection'](_0x53493e[_0xe0ed('0x2c')],_0x53493e['query']);_0x1ca1e2[_0xe0ed('0x2d')]=_[_0xe0ed('0x2e')](_0x53493e[_0xe0ed('0x2c')],qs[_0xe0ed('0x2f')](_0x13a317[_0xe0ed('0x2a')][_0xe0ed('0x2f')]));_0x1ca1e2[_0xe0ed('0x2d')]=_0x1ca1e2[_0xe0ed('0x2d')][_0xe0ed('0x30')]?_0x1ca1e2['attributes']:_0x53493e['model'];if(!_0x13a317[_0xe0ed('0x2a')][_0xe0ed('0x31')](_0xe0ed('0x32'))){_0x1ca1e2['limit']=qs[_0xe0ed('0x1b')](_0x13a317[_0xe0ed('0x2a')][_0xe0ed('0x1b')]);_0x1ca1e2['offset']=qs[_0xe0ed('0x19')](_0x13a317[_0xe0ed('0x2a')]['offset']);}_0x1ca1e2[_0xe0ed('0x33')]=qs[_0xe0ed('0x34')](_0x13a317[_0xe0ed('0x2a')][_0xe0ed('0x34')]);_0x1ca1e2[_0xe0ed('0x35')]=qs[_0xe0ed('0x2b')](_[_0xe0ed('0x36')](_0x13a317[_0xe0ed('0x2a')],_0x53493e['filters']),_0x5c7107);if(_0x13a317['query'][_0xe0ed('0x37')]){_0x1ca1e2[_0xe0ed('0x35')]=_['merge'](_0x1ca1e2['where'],{'$or':_[_0xe0ed('0x24')](_0x5c7107,function(_0x5e956b){if(_0x5e956b['type']!==_0xe0ed('0x38')){var _0x4b4a1e={};_0x4b4a1e[_0x5e956b[_0xe0ed('0x22')]]={'$like':'%'+_0x13a317[_0xe0ed('0x2a')]['filter']+'%'};return _0x4b4a1e;}})});}_0x1ca1e2=_['merge']({},_0x1ca1e2,_0x13a317[_0xe0ed('0x39')]);var _0x6ba435={'where':_0x1ca1e2[_0xe0ed('0x35')]};return db[_0xe0ed('0x25')][_0xe0ed('0x3a')](_0x6ba435)[_0xe0ed('0x1e')](function(_0x29b1b8){_0x4cb8d3[_0xe0ed('0x3a')]=_0x29b1b8;if(_0x13a317['query']['includeAll']){_0x1ca1e2[_0xe0ed('0x3b')]=[{'all':!![]}];}return db[_0xe0ed('0x25')][_0xe0ed('0x3c')](_0x1ca1e2);})[_0xe0ed('0x1e')](function(_0x1d9a76){_0x4cb8d3['rows']=_0x1d9a76;return _0x4cb8d3;})['then'](respondWithFilteredResult(_0x206d8f,_0x1ca1e2))['catch'](handleError(_0x206d8f,null));};exports[_0xe0ed('0x3d')]=function(_0x122301,_0x479b91){var _0x2b5126={'raw':!![],'where':{'id':_0x122301[_0xe0ed('0x3e')]['id']}},_0xd92635={};_0xd92635[_0xe0ed('0x2c')]=_[_0xe0ed('0x3f')](db['AnalyticTreeReport'][_0xe0ed('0x26')]);_0xd92635[_0xe0ed('0x2a')]=_[_0xe0ed('0x3f')](_0x122301[_0xe0ed('0x2a')]);_0xd92635['filters']=_[_0xe0ed('0x2e')](_0xd92635['model'],_0xd92635[_0xe0ed('0x2a')]);_0x2b5126['attributes']=_[_0xe0ed('0x2e')](_0xd92635[_0xe0ed('0x2c')],qs[_0xe0ed('0x2f')](_0x122301['query']['fields']));_0x2b5126[_0xe0ed('0x2d')]=_0x2b5126['attributes'][_0xe0ed('0x30')]?_0x2b5126[_0xe0ed('0x2d')]:_0xd92635[_0xe0ed('0x2c')];if(_0x122301['query'][_0xe0ed('0x40')]){_0x2b5126[_0xe0ed('0x3b')]=[{'all':!![]}];}_0x2b5126=_['merge']({},_0x2b5126,_0x122301[_0xe0ed('0x39')]);return db[_0xe0ed('0x25')]['find'](_0x2b5126)[_0xe0ed('0x1e')](handleEntityNotFound(_0x479b91,null))[_0xe0ed('0x1e')](respondWithResult(_0x479b91,null))[_0xe0ed('0x41')](handleError(_0x479b91,null));};exports[_0xe0ed('0x42')]=function(_0x25f6b5,_0xd1132b){return db[_0xe0ed('0x25')]['create'](_0x25f6b5[_0xe0ed('0x43')],{})[_0xe0ed('0x1e')](respondWithResult(_0xd1132b,0xc9))[_0xe0ed('0x41')](handleError(_0xd1132b,null));};exports[_0xe0ed('0x44')]=function(_0x545823,_0x3e22ea){if(_0x545823[_0xe0ed('0x43')]['id']){delete _0x545823['body']['id'];}return db[_0xe0ed('0x25')][_0xe0ed('0x45')]({'where':{'id':_0x545823[_0xe0ed('0x3e')]['id']}})[_0xe0ed('0x1e')](handleEntityNotFound(_0x3e22ea,null))['then'](saveUpdates(_0x545823[_0xe0ed('0x43')],null))[_0xe0ed('0x1e')](respondWithResult(_0x3e22ea,null))[_0xe0ed('0x41')](handleError(_0x3e22ea,null));};exports['destroy']=function(_0x499bf4,_0x2b3e22){return db[_0xe0ed('0x25')][_0xe0ed('0x45')]({'where':{'id':_0x499bf4['params']['id']}})[_0xe0ed('0x1e')](handleEntityNotFound(_0x2b3e22,null))[_0xe0ed('0x1e')](removeEntity(_0x2b3e22,null))['catch'](handleError(_0x2b3e22,null));};
\ No newline at end of file
+var _0xfeff=['querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','apply','save','update','then','stack','name','index','map','AnalyticTreeReport','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','params','find','create','body','destroy','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js'];(function(_0x4a3560,_0x400d45){var _0x21a1f0=function(_0x323cc7){while(--_0x323cc7){_0x4a3560['push'](_0x4a3560['shift']());}};_0x21a1f0(++_0x400d45);}(_0xfeff,0x162));var _0xffef=function(_0x68c979,_0x431cff){_0x68c979=_0x68c979-0x0;var _0x4f0001=_0xfeff[_0x68c979];return _0x4f0001;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xffef('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xffef('0x1'));var rp=require(_0xffef('0x2'));var moment=require(_0xffef('0x3'));var BPromise=require(_0xffef('0x4'));var Mustache=require(_0xffef('0x5'));var util=require(_0xffef('0x6'));var path=require(_0xffef('0x7'));var sox=require(_0xffef('0x8'));var csv=require(_0xffef('0x9'));var ejs=require(_0xffef('0xa'));var fs=require('fs');var fs_extra=require(_0xffef('0xb'));var _=require(_0xffef('0xc'));var squel=require(_0xffef('0xd'));var crypto=require(_0xffef('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xffef('0xf'));var toCsv=require(_0xffef('0x9'));var querystring=require(_0xffef('0x10'));var Papa=require(_0xffef('0x11'));var Redis=require(_0xffef('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xffef('0x13'));var logger=require(_0xffef('0x14'))(_0xffef('0x15'));var utils=require(_0xffef('0x16'));var config=require(_0xffef('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xffef('0x18'))['db'];function respondWithStatusCode(_0x402f4e,_0x2260d2){_0x2260d2=_0x2260d2||0xcc;return function(_0x50714d){if(_0x50714d){return _0x402f4e[_0xffef('0x19')](_0x2260d2);}return _0x402f4e[_0xffef('0x1a')](_0x2260d2)[_0xffef('0x1b')]();};}function respondWithResult(_0xc005a3,_0x5e71b8){_0x5e71b8=_0x5e71b8||0xc8;return function(_0x7ae384){if(_0x7ae384){return _0xc005a3['status'](_0x5e71b8)[_0xffef('0x1c')](_0x7ae384);}};}function respondWithFilteredResult(_0x16ad88,_0x431322){return function(_0x2cff63){if(_0x2cff63){var _0x813f5a=typeof _0x431322[_0xffef('0x1d')]==='undefined'&&typeof _0x431322[_0xffef('0x1e')]===_0xffef('0x1f');var _0x318053=_0x2cff63[_0xffef('0x20')];var _0x3cefc1=_0x813f5a?0x0:_0x431322['offset'];var _0x11a0fe=_0x813f5a?_0x2cff63['count']:_0x431322[_0xffef('0x1d')]+_0x431322[_0xffef('0x1e')];var _0x456aa5;if(_0x11a0fe>=_0x318053){_0x11a0fe=_0x318053;_0x456aa5=0xc8;}else{_0x456aa5=0xce;}_0x16ad88[_0xffef('0x1a')](_0x456aa5);return _0x16ad88['set'](_0xffef('0x21'),_0x3cefc1+'-'+_0x11a0fe+'/'+_0x318053)['json'](_0x2cff63);}return null;};}function patchUpdates(_0x159744){return function(_0x571905){try{jsonpatch[_0xffef('0x22')](_0x571905,_0x159744,!![]);}catch(_0x31fa89){return BPromise['reject'](_0x31fa89);}return _0x571905[_0xffef('0x23')]();};}function saveUpdates(_0xa580d5,_0x59e7bd){return function(_0x5e1031){if(_0x5e1031){return _0x5e1031[_0xffef('0x24')](_0xa580d5)['then'](function(_0x507824){return _0x507824;});}return null;};}function removeEntity(_0x367695,_0x612426){return function(_0x3784d2){if(_0x3784d2){return _0x3784d2['destroy']()[_0xffef('0x25')](function(){_0x367695['status'](0xcc)[_0xffef('0x1b')]();});}};}function handleEntityNotFound(_0x1365d4,_0xdbce7a){return function(_0x373345){if(!_0x373345){_0x1365d4['sendStatus'](0x194);}return _0x373345;};}function handleError(_0x2779cf,_0x3e5688){_0x3e5688=_0x3e5688||0x1f4;return function(_0x4d9ab9){logger['error'](_0x4d9ab9[_0xffef('0x26')]);if(_0x4d9ab9[_0xffef('0x27')]){delete _0x4d9ab9['name'];}_0x2779cf['status'](_0x3e5688)['send'](_0x4d9ab9);};}exports[_0xffef('0x28')]=function(_0x119c01,_0x4aa822){var _0x435a06={},_0x2d740b={},_0x392418={'count':0x0,'rows':[]};var _0x16e7ba=_[_0xffef('0x29')](db[_0xffef('0x2a')][_0xffef('0x2b')],function(_0x428497){return{'name':_0x428497[_0xffef('0x2c')],'type':_0x428497[_0xffef('0x2d')][_0xffef('0x2e')]};});_0x2d740b['model']=_[_0xffef('0x29')](_0x16e7ba,_0xffef('0x27'));_0x2d740b[_0xffef('0x2f')]=_[_0xffef('0x30')](_0x119c01['query']);_0x2d740b[_0xffef('0x31')]=_[_0xffef('0x32')](_0x2d740b[_0xffef('0x33')],_0x2d740b[_0xffef('0x2f')]);_0x435a06[_0xffef('0x34')]=_[_0xffef('0x32')](_0x2d740b[_0xffef('0x33')],qs[_0xffef('0x35')](_0x119c01[_0xffef('0x2f')][_0xffef('0x35')]));_0x435a06[_0xffef('0x34')]=_0x435a06['attributes'][_0xffef('0x36')]?_0x435a06['attributes']:_0x2d740b[_0xffef('0x33')];if(!_0x119c01[_0xffef('0x2f')][_0xffef('0x37')](_0xffef('0x38'))){_0x435a06[_0xffef('0x1e')]=qs[_0xffef('0x1e')](_0x119c01['query'][_0xffef('0x1e')]);_0x435a06[_0xffef('0x1d')]=qs[_0xffef('0x1d')](_0x119c01[_0xffef('0x2f')]['offset']);}_0x435a06[_0xffef('0x39')]=qs[_0xffef('0x3a')](_0x119c01['query'][_0xffef('0x3a')]);_0x435a06[_0xffef('0x3b')]=qs['filters'](_[_0xffef('0x3c')](_0x119c01['query'],_0x2d740b['filters']),_0x16e7ba);if(_0x119c01['query'][_0xffef('0x3d')]){_0x435a06[_0xffef('0x3b')]=_[_0xffef('0x3e')](_0x435a06[_0xffef('0x3b')],{'$or':_[_0xffef('0x29')](_0x16e7ba,function(_0xdce44a){if(_0xdce44a[_0xffef('0x2d')]!==_0xffef('0x3f')){var _0x26b828={};_0x26b828[_0xdce44a[_0xffef('0x27')]]={'$like':'%'+_0x119c01[_0xffef('0x2f')][_0xffef('0x3d')]+'%'};return _0x26b828;}})});}_0x435a06=_[_0xffef('0x3e')]({},_0x435a06,_0x119c01[_0xffef('0x40')]);var _0x230473={'where':_0x435a06['where']};return db['AnalyticTreeReport'][_0xffef('0x20')](_0x230473)['then'](function(_0x532e68){_0x392418[_0xffef('0x20')]=_0x532e68;if(_0x119c01[_0xffef('0x2f')][_0xffef('0x41')]){_0x435a06[_0xffef('0x42')]=[{'all':!![]}];}return db[_0xffef('0x2a')]['findAll'](_0x435a06);})[_0xffef('0x25')](function(_0xab8ee8){_0x392418[_0xffef('0x43')]=_0xab8ee8;return _0x392418;})[_0xffef('0x25')](respondWithFilteredResult(_0x4aa822,_0x435a06))[_0xffef('0x44')](handleError(_0x4aa822,null));};exports['show']=function(_0x43431f,_0xecdec7){var _0x42a7c8={'raw':!![],'where':{'id':_0x43431f[_0xffef('0x45')]['id']}},_0x19e19d={};_0x19e19d[_0xffef('0x33')]=_[_0xffef('0x30')](db[_0xffef('0x2a')][_0xffef('0x2b')]);_0x19e19d['query']=_[_0xffef('0x30')](_0x43431f[_0xffef('0x2f')]);_0x19e19d[_0xffef('0x31')]=_[_0xffef('0x32')](_0x19e19d[_0xffef('0x33')],_0x19e19d[_0xffef('0x2f')]);_0x42a7c8[_0xffef('0x34')]=_[_0xffef('0x32')](_0x19e19d[_0xffef('0x33')],qs[_0xffef('0x35')](_0x43431f['query'][_0xffef('0x35')]));_0x42a7c8[_0xffef('0x34')]=_0x42a7c8[_0xffef('0x34')][_0xffef('0x36')]?_0x42a7c8['attributes']:_0x19e19d[_0xffef('0x33')];if(_0x43431f[_0xffef('0x2f')][_0xffef('0x41')]){_0x42a7c8['include']=[{'all':!![]}];}_0x42a7c8=_[_0xffef('0x3e')]({},_0x42a7c8,_0x43431f['options']);return db['AnalyticTreeReport'][_0xffef('0x46')](_0x42a7c8)['then'](handleEntityNotFound(_0xecdec7,null))[_0xffef('0x25')](respondWithResult(_0xecdec7,null))['catch'](handleError(_0xecdec7,null));};exports[_0xffef('0x47')]=function(_0x47d96f,_0x2a3fe5){return db['AnalyticTreeReport'][_0xffef('0x47')](_0x47d96f['body'],{})[_0xffef('0x25')](respondWithResult(_0x2a3fe5,0xc9))[_0xffef('0x44')](handleError(_0x2a3fe5,null));};exports[_0xffef('0x24')]=function(_0x3c8095,_0x57c524){if(_0x3c8095['body']['id']){delete _0x3c8095['body']['id'];}return db[_0xffef('0x2a')]['find']({'where':{'id':_0x3c8095['params']['id']}})[_0xffef('0x25')](handleEntityNotFound(_0x57c524,null))[_0xffef('0x25')](saveUpdates(_0x3c8095[_0xffef('0x48')],null))[_0xffef('0x25')](respondWithResult(_0x57c524,null))['catch'](handleError(_0x57c524,null));};exports[_0xffef('0x49')]=function(_0x41cbbd,_0x3f76c3){return db[_0xffef('0x2a')]['find']({'where':{'id':_0x41cbbd['params']['id']}})[_0xffef('0x25')](handleEntityNotFound(_0x3f76c3,null))[_0xffef('0x25')](removeEntity(_0x3f76c3,null))['catch'](handleError(_0x3f76c3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb784=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./analyticTreeReport.attributes','define','analytics_report_trees','util'];(function(_0x134c2e,_0x3573c4){var _0x2825db=function(_0x2a574d){while(--_0x2a574d){_0x134c2e['push'](_0x134c2e['shift']());}};_0x2825db(++_0x3573c4);}(_0xb784,0x17f));var _0x4b78=function(_0x16a2cf,_0x6bd120){_0x16a2cf=_0x16a2cf-0x0;var _0x2acf75=_0xb784[_0x16a2cf];return _0x2acf75;};'use strict';var _=require('lodash');var util=require(_0x4b78('0x0'));var logger=require(_0x4b78('0x1'))(_0x4b78('0x2'));var moment=require(_0x4b78('0x3'));var BPromise=require(_0x4b78('0x4'));var rp=require(_0x4b78('0x5'));var fs=require('fs');var path=require(_0x4b78('0x6'));var rimraf=require(_0x4b78('0x7'));var config=require(_0x4b78('0x8'));var attributes=require(_0x4b78('0x9'));module['exports']=function(_0x3032d5,_0x438b1d){return _0x3032d5[_0x4b78('0xa')]('AnalyticTreeReport',attributes,{'tableName':_0x4b78('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6764=['define','analytics_report_trees','util','moment','bluebird','request-promise','rimraf','./analyticTreeReport.attributes'];(function(_0x2defa0,_0x4ddd55){var _0x15c59f=function(_0x313d8f){while(--_0x313d8f){_0x2defa0['push'](_0x2defa0['shift']());}};_0x15c59f(++_0x4ddd55);}(_0x6764,0x1c2));var _0x4676=function(_0x1d1779,_0x284147){_0x1d1779=_0x1d1779-0x0;var _0x2377e9=_0x6764[_0x1d1779];return _0x2377e9;};'use strict';var _=require('lodash');var util=require(_0x4676('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x4676('0x1'));var BPromise=require(_0x4676('0x2'));var rp=require(_0x4676('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x4676('0x4'));var config=require('../../config/environment');var attributes=require(_0x4676('0x5'));module['exports']=function(_0x3ad4a9,_0xdc0cc5){return _0x3ad4a9[_0x4676('0x6')]('AnalyticTreeReport',attributes,{'tableName':_0x4676('0x7'),'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(_0x66f455,_0x43978d){var _0x2f4d67=function(_0x5cc247){while(--_0x5cc247){_0x66f455['push'](_0x66f455['shift']());}};_0x2f4d67(++_0x43978d);}(_0xadb5,0xad));var _0x5adb=function(_0x18fe6b,_0x3e1d9d){_0x18fe6b=_0x18fe6b-0x0;var _0x1fa974=_0xadb5[_0x18fe6b];return _0x1fa974;};'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 _0x2ef3=['bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','request','then','info','AnalyticTreeReport,\x20%s,\x20%s','AnalyticTreeReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','moment'];(function(_0x3b119f,_0x4f10d3){var _0x1aff29=function(_0x5bba09){while(--_0x5bba09){_0x3b119f['push'](_0x3b119f['shift']());}};_0x1aff29(++_0x4f10d3);}(_0x2ef3,0xba));var _0x32ef=function(_0x16def7,_0x1046cd){_0x16def7=_0x16def7-0x0;var _0x475b02=_0x2ef3[_0x16def7];return _0x475b02;};'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')]('AnalyticTreeReport,\x20%s,\x20%s',_0x4bfcf8,'request\x20sent');_0x2fb8eb(_0x2bbb50['result'][_0x32ef('0x13')]);}})[_0x32ef('0x14')](function(_0xb5aed2){logger['error']('AnalyticTreeReport,\x20%s,\x20%s',_0x4bfcf8,_0xb5aed2);_0x234863(_0xb5aed2);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf222=['exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticTreeReport.controller','get','isAuthenticated','index','/:id','show','post','put','update','destroy'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0xf222,0x12d));var _0x2f22=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0xf222[_0x3947c9];return _0x2e7871;};'use strict';var multer=require(_0x2f22('0x0'));var util=require(_0x2f22('0x1'));var path=require(_0x2f22('0x2'));var timeout=require(_0x2f22('0x3'));var express=require(_0x2f22('0x4'));var router=express[_0x2f22('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x2f22('0x6'));var interaction=require(_0x2f22('0x7'));var config=require(_0x2f22('0x8'));var controller=require(_0x2f22('0x9'));router[_0x2f22('0xa')]('/',auth[_0x2f22('0xb')](),controller[_0x2f22('0xc')]);router[_0x2f22('0xa')](_0x2f22('0xd'),auth['isAuthenticated'](),controller[_0x2f22('0xe')]);router[_0x2f22('0xf')]('/',auth['isAuthenticated'](),controller['create']);router[_0x2f22('0x10')](_0x2f22('0xd'),auth[_0x2f22('0xb')](),controller[_0x2f22('0x11')]);router['delete']('/:id',auth[_0x2f22('0xb')](),controller[_0x2f22('0x12')]);module[_0x2f22('0x13')]=router;
\ No newline at end of file
+var _0x71b0=['/:id','show','post','create','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticTreeReport.controller','get','isAuthenticated','index'];(function(_0x3c82cb,_0x35bd82){var _0x164cc6=function(_0x13e361){while(--_0x13e361){_0x3c82cb['push'](_0x3c82cb['shift']());}};_0x164cc6(++_0x35bd82);}(_0x71b0,0x1ac));var _0x071b=function(_0x16b4c6,_0x43a344){_0x16b4c6=_0x16b4c6-0x0;var _0x2d1b30=_0x71b0[_0x16b4c6];return _0x2d1b30;};'use strict';var multer=require(_0x071b('0x0'));var util=require(_0x071b('0x1'));var path=require(_0x071b('0x2'));var timeout=require(_0x071b('0x3'));var express=require(_0x071b('0x4'));var router=express[_0x071b('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x071b('0x6'));var interaction=require(_0x071b('0x7'));var config=require(_0x071b('0x8'));var controller=require(_0x071b('0x9'));router[_0x071b('0xa')]('/',auth[_0x071b('0xb')](),controller[_0x071b('0xc')]);router[_0x071b('0xa')](_0x071b('0xd'),auth[_0x071b('0xb')](),controller[_0x071b('0xe')]);router[_0x071b('0xf')]('/',auth[_0x071b('0xb')](),controller[_0x071b('0x10')]);router['put'](_0x071b('0xd'),auth[_0x071b('0xb')](),controller[_0x071b('0x11')]);router[_0x071b('0x12')](_0x071b('0xd'),auth[_0x071b('0xb')](),controller[_0x071b('0x13')]);module[_0x071b('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa566=['exports','STRING','sequelize'];(function(_0x405b0b,_0x190562){var _0x35fa72=function(_0x48fe23){while(--_0x48fe23){_0x405b0b['push'](_0x405b0b['shift']());}};_0x35fa72(++_0x190562);}(_0xa566,0x1c1));var _0x6a56=function(_0x5e9efc,_0x3ded26){_0x5e9efc=_0x5e9efc-0x0;var _0x2403f6=_0xa566[_0x5e9efc];return _0x2403f6;};'use strict';var Sequelize=require(_0x6a56('0x0'));module[_0x6a56('0x1')]={'name':{'type':Sequelize[_0x6a56('0x2')]},'basename':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x6a56('0x2')]}};
\ No newline at end of file
+var _0xc999=['exports','STRING'];(function(_0x282576,_0x2803bc){var _0x4e9b6f=function(_0x16fb83){while(--_0x16fb83){_0x282576['push'](_0x282576['shift']());}};_0x4e9b6f(++_0x2803bc);}(_0xc999,0x176));var _0x9c99=function(_0x695b76,_0x551526){_0x695b76=_0x695b76-0x0;var _0x1dc21f=_0xc999[_0x695b76];return _0x1dc21f;};'use strict';var Sequelize=require('sequelize');module[_0x9c99('0x0')]={'name':{'type':Sequelize[_0x9c99('0x1')]},'basename':{'type':Sequelize[_0x9c99('0x1')]},'type':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe4b8=['query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','length','find','get','omit','createdAt','body','updatedAt','create','destroy','file','originalname','basename','mimetype','download','findOne','server/files/attachments/','join','offline-chat/','eml-format','zip-dir','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','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','json','offset','undefined','limit','count','set','Content-Range','reject','save','then','end','sendStatus','stack','name','index','map','Attachment','rawAttributes','fieldName','key'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xe4b8,0x1e7));var _0x8e4b=function(_0x4e676e,_0x2a7c6d){_0x4e676e=_0x4e676e-0x0;var _0x336a3c=_0xe4b8[_0x4e676e];return _0x336a3c;};'use strict';var emlformat=require(_0x8e4b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8e4b('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8e4b('0x2'));var moment=require(_0x8e4b('0x3'));var BPromise=require(_0x8e4b('0x4'));var Mustache=require(_0x8e4b('0x5'));var util=require('util');var path=require('path');var sox=require(_0x8e4b('0x6'));var csv=require(_0x8e4b('0x7'));var ejs=require(_0x8e4b('0x8'));var fs=require('fs');var fs_extra=require(_0x8e4b('0x9'));var _=require(_0x8e4b('0xa'));var squel=require(_0x8e4b('0xb'));var crypto=require('crypto');var jsforce=require(_0x8e4b('0xc'));var deskjs=require(_0x8e4b('0xd'));var toCsv=require('to-csv');var querystring=require(_0x8e4b('0xe'));var Papa=require(_0x8e4b('0xf'));var Redis=require(_0x8e4b('0x10'));var authService=require(_0x8e4b('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x8e4b('0x12'));var hardwareService=require(_0x8e4b('0x13'));var logger=require(_0x8e4b('0x14'))(_0x8e4b('0x15'));var utils=require(_0x8e4b('0x16'));var config=require(_0x8e4b('0x17'));var licenseUtil=require(_0x8e4b('0x18'));var db=require(_0x8e4b('0x19'))['db'];function respondWithStatusCode(_0x37680c,_0x286970){_0x286970=_0x286970||0xcc;return function(_0x27f6e4){if(_0x27f6e4){return _0x37680c['sendStatus'](_0x286970);}return _0x37680c[_0x8e4b('0x1a')](_0x286970)['end']();};}function respondWithResult(_0x1e14f0,_0x175f40){_0x175f40=_0x175f40||0xc8;return function(_0x58b91d){if(_0x58b91d){return _0x1e14f0['status'](_0x175f40)[_0x8e4b('0x1b')](_0x58b91d);}};}function respondWithFilteredResult(_0x2c223f,_0x26f5d7){return function(_0x3f838b){if(_0x3f838b){var _0x3076b3=typeof _0x26f5d7[_0x8e4b('0x1c')]===_0x8e4b('0x1d')&&typeof _0x26f5d7[_0x8e4b('0x1e')]===_0x8e4b('0x1d');var _0x37a73f=_0x3f838b['count'];var _0x547eaf=_0x3076b3?0x0:_0x26f5d7[_0x8e4b('0x1c')];var _0x84450=_0x3076b3?_0x3f838b[_0x8e4b('0x1f')]:_0x26f5d7[_0x8e4b('0x1c')]+_0x26f5d7[_0x8e4b('0x1e')];var _0x35cc8c;if(_0x84450>=_0x37a73f){_0x84450=_0x37a73f;_0x35cc8c=0xc8;}else{_0x35cc8c=0xce;}_0x2c223f[_0x8e4b('0x1a')](_0x35cc8c);return _0x2c223f[_0x8e4b('0x20')](_0x8e4b('0x21'),_0x547eaf+'-'+_0x84450+'/'+_0x37a73f)['json'](_0x3f838b);}return null;};}function patchUpdates(_0x5c7099){return function(_0x4317c0){try{jsonpatch['apply'](_0x4317c0,_0x5c7099,!![]);}catch(_0x3278a8){return BPromise[_0x8e4b('0x22')](_0x3278a8);}return _0x4317c0[_0x8e4b('0x23')]();};}function saveUpdates(_0x1162fc,_0x3e1286){return function(_0x4566e8){if(_0x4566e8){return _0x4566e8['update'](_0x1162fc)['then'](function(_0x16e9e6){return _0x16e9e6;});}return null;};}function removeEntity(_0x1ec934,_0x1f1ed8){return function(_0x58cd7e){if(_0x58cd7e){return _0x58cd7e['destroy']()[_0x8e4b('0x24')](function(){_0x1ec934['status'](0xcc)[_0x8e4b('0x25')]();});}};}function handleEntityNotFound(_0xda7f83,_0x5f1fa5){return function(_0x303c67){if(!_0x303c67){_0xda7f83[_0x8e4b('0x26')](0x194);}return _0x303c67;};}function handleError(_0x128ec0,_0x35cf36){_0x35cf36=_0x35cf36||0x1f4;return function(_0x1888b4){logger['error'](_0x1888b4[_0x8e4b('0x27')]);if(_0x1888b4['name']){delete _0x1888b4[_0x8e4b('0x28')];}_0x128ec0[_0x8e4b('0x1a')](_0x35cf36)['send'](_0x1888b4);};}exports[_0x8e4b('0x29')]=function(_0x442a3c,_0x47e2b9){var _0x26add1={},_0x56cf32={},_0x49b8c1={'count':0x0,'rows':[]};var _0x42b204=_[_0x8e4b('0x2a')](db[_0x8e4b('0x2b')][_0x8e4b('0x2c')],function(_0x2feff7){return{'name':_0x2feff7[_0x8e4b('0x2d')],'type':_0x2feff7['type'][_0x8e4b('0x2e')]};});_0x56cf32['model']=_[_0x8e4b('0x2a')](_0x42b204,_0x8e4b('0x28'));_0x56cf32[_0x8e4b('0x2f')]=_[_0x8e4b('0x30')](_0x442a3c[_0x8e4b('0x2f')]);_0x56cf32[_0x8e4b('0x31')]=_[_0x8e4b('0x32')](_0x56cf32[_0x8e4b('0x33')],_0x56cf32[_0x8e4b('0x2f')]);_0x26add1[_0x8e4b('0x34')]=_[_0x8e4b('0x32')](_0x56cf32[_0x8e4b('0x33')],qs[_0x8e4b('0x35')](_0x442a3c[_0x8e4b('0x2f')]['fields']));_0x26add1[_0x8e4b('0x34')]=_0x26add1[_0x8e4b('0x34')]['length']?_0x26add1['attributes']:_0x56cf32[_0x8e4b('0x33')];if(!_0x442a3c[_0x8e4b('0x2f')][_0x8e4b('0x36')]('nolimit')){_0x26add1['limit']=qs[_0x8e4b('0x1e')](_0x442a3c[_0x8e4b('0x2f')][_0x8e4b('0x1e')]);_0x26add1[_0x8e4b('0x1c')]=qs['offset'](_0x442a3c[_0x8e4b('0x2f')]['offset']);}_0x26add1[_0x8e4b('0x37')]=qs[_0x8e4b('0x38')](_0x442a3c[_0x8e4b('0x2f')][_0x8e4b('0x38')]);_0x26add1[_0x8e4b('0x39')]=qs[_0x8e4b('0x31')](_[_0x8e4b('0x3a')](_0x442a3c[_0x8e4b('0x2f')],_0x56cf32[_0x8e4b('0x31')]),_0x42b204);if(_0x442a3c[_0x8e4b('0x2f')][_0x8e4b('0x3b')]){_0x26add1[_0x8e4b('0x39')]=_[_0x8e4b('0x3c')](_0x26add1[_0x8e4b('0x39')],{'$or':_[_0x8e4b('0x2a')](_0x42b204,function(_0x4baadf){if(_0x4baadf[_0x8e4b('0x3d')]!==_0x8e4b('0x3e')){var _0x198126={};_0x198126[_0x4baadf[_0x8e4b('0x28')]]={'$like':'%'+_0x442a3c[_0x8e4b('0x2f')][_0x8e4b('0x3b')]+'%'};return _0x198126;}})});}_0x26add1=_[_0x8e4b('0x3c')]({},_0x26add1,_0x442a3c[_0x8e4b('0x3f')]);var _0x2b3853={'where':_0x26add1[_0x8e4b('0x39')]};return db[_0x8e4b('0x2b')][_0x8e4b('0x1f')](_0x2b3853)['then'](function(_0x11652c){_0x49b8c1[_0x8e4b('0x1f')]=_0x11652c;if(_0x442a3c[_0x8e4b('0x2f')][_0x8e4b('0x40')]){_0x26add1[_0x8e4b('0x41')]=[{'all':!![]}];}return db[_0x8e4b('0x2b')][_0x8e4b('0x42')](_0x26add1);})[_0x8e4b('0x24')](function(_0x569dcf){_0x49b8c1[_0x8e4b('0x43')]=_0x569dcf;return _0x49b8c1;})[_0x8e4b('0x24')](respondWithFilteredResult(_0x47e2b9,_0x26add1))[_0x8e4b('0x44')](handleError(_0x47e2b9,null));};exports[_0x8e4b('0x45')]=function(_0x14d804,_0xb3c8a){var _0x132eae={'raw':!![],'where':{'id':_0x14d804[_0x8e4b('0x46')]['id']}},_0x1d608b={};_0x1d608b[_0x8e4b('0x33')]=_[_0x8e4b('0x30')](db[_0x8e4b('0x2b')][_0x8e4b('0x2c')]);_0x1d608b['query']=_[_0x8e4b('0x30')](_0x14d804[_0x8e4b('0x2f')]);_0x1d608b[_0x8e4b('0x31')]=_[_0x8e4b('0x32')](_0x1d608b['model'],_0x1d608b[_0x8e4b('0x2f')]);_0x132eae[_0x8e4b('0x34')]=_[_0x8e4b('0x32')](_0x1d608b[_0x8e4b('0x33')],qs[_0x8e4b('0x35')](_0x14d804['query'][_0x8e4b('0x35')]));_0x132eae[_0x8e4b('0x34')]=_0x132eae[_0x8e4b('0x34')][_0x8e4b('0x47')]?_0x132eae[_0x8e4b('0x34')]:_0x1d608b[_0x8e4b('0x33')];if(_0x14d804[_0x8e4b('0x2f')][_0x8e4b('0x40')]){_0x132eae['include']=[{'all':!![]}];}_0x132eae=_[_0x8e4b('0x3c')]({},_0x132eae,_0x14d804[_0x8e4b('0x3f')]);return db[_0x8e4b('0x2b')][_0x8e4b('0x48')](_0x132eae)[_0x8e4b('0x24')](handleEntityNotFound(_0xb3c8a,null))[_0x8e4b('0x24')](respondWithResult(_0xb3c8a,null))[_0x8e4b('0x44')](handleError(_0xb3c8a,null));};exports['clone']=function(_0xc0aec4,_0x12404b){var _0x3b27b5={'where':{'id':_0xc0aec4[_0x8e4b('0x46')]['id']}},_0x43791b={};_0x43791b[_0x8e4b('0x33')]=_[_0x8e4b('0x30')](db[_0x8e4b('0x2b')][_0x8e4b('0x2c')]);_0x3b27b5[_0x8e4b('0x34')]=_[_0x8e4b('0x32')](_0x43791b[_0x8e4b('0x33')],qs[_0x8e4b('0x35')](_0xc0aec4[_0x8e4b('0x2f')][_0x8e4b('0x35')]));_0x3b27b5[_0x8e4b('0x34')]=_0x3b27b5[_0x8e4b('0x34')]['length']?_0x3b27b5[_0x8e4b('0x34')]:_0x43791b['model'];if(_0xc0aec4[_0x8e4b('0x2f')][_0x8e4b('0x40')]){_0x3b27b5[_0x8e4b('0x41')]=[{'all':!![]}];}_0x3b27b5=_[_0x8e4b('0x3c')]({},_0x3b27b5,_0xc0aec4[_0x8e4b('0x3f')]);return db[_0x8e4b('0x2b')][_0x8e4b('0x48')](_0x3b27b5)[_0x8e4b('0x24')](handleEntityNotFound(_0x12404b,null))[_0x8e4b('0x24')](function(_0x43f473){if(_0x43f473){var _0x4b244c=_0x43f473[_0x8e4b('0x49')]({'plain':!![]});_0x4b244c=qs[_0x8e4b('0x4a')](_0x4b244c,['id',_0x8e4b('0x4b'),'updatedAt']);_0xc0aec4['body']=_['omit'](_0xc0aec4[_0x8e4b('0x4c')],['id',_0x8e4b('0x4b'),_0x8e4b('0x4d')]);return db[_0x8e4b('0x2b')][_0x8e4b('0x4e')](_['merge'](_0x4b244c,_0xc0aec4[_0x8e4b('0x4c')]),{'include':_0xc0aec4['query']['includeAll']?[{'all':!![]}]:undefined});}})[_0x8e4b('0x24')](respondWithResult(_0x12404b,0xc9))[_0x8e4b('0x44')](handleError(_0x12404b,null));};exports['update']=function(_0x3b9851,_0x3db71a){if(_0x3b9851['body']['id']){delete _0x3b9851[_0x8e4b('0x4c')]['id'];}return db[_0x8e4b('0x2b')][_0x8e4b('0x48')]({'where':{'id':_0x3b9851[_0x8e4b('0x46')]['id']}})[_0x8e4b('0x24')](handleEntityNotFound(_0x3db71a,null))[_0x8e4b('0x24')](saveUpdates(_0x3b9851['body'],null))['then'](respondWithResult(_0x3db71a,null))['catch'](handleError(_0x3db71a,null));};exports[_0x8e4b('0x4f')]=function(_0x304aac,_0x2adcc3){return db['Attachment'][_0x8e4b('0x48')]({'where':{'id':_0x304aac[_0x8e4b('0x46')]['id']}})[_0x8e4b('0x24')](handleEntityNotFound(_0x2adcc3,null))['then'](removeEntity(_0x2adcc3,null))[_0x8e4b('0x44')](handleError(_0x2adcc3,null));};exports[_0x8e4b('0x4e')]=function(_0x31552e,_0x4225c4,_0x4bc324){_0x31552e['body'][_0x8e4b('0x28')]=_0x31552e[_0x8e4b('0x50')][_0x8e4b('0x51')];_0x31552e[_0x8e4b('0x4c')][_0x8e4b('0x52')]=_0x31552e[_0x8e4b('0x50')]['filename'];_0x31552e['body'][_0x8e4b('0x3d')]=_0x31552e[_0x8e4b('0x50')][_0x8e4b('0x53')];return db[_0x8e4b('0x2b')][_0x8e4b('0x4e')](_0x31552e[_0x8e4b('0x4c')])[_0x8e4b('0x24')](respondWithResult(_0x4225c4,0xc9))[_0x8e4b('0x44')](handleError(_0x4225c4,null));};exports[_0x8e4b('0x54')]=function(_0x24e0b9,_0x169769,_0x2f303b){return db[_0x8e4b('0x2b')][_0x8e4b('0x55')]({'where':{'id':_0x24e0b9['params']['id']},'raw':!![]})[_0x8e4b('0x24')](handleEntityNotFound(_0x169769,null))[_0x8e4b('0x24')](function(_0x1820a1){if(_0x1820a1){var _0x54dbd0=_0x1820a1['ChatOfflineMessageId']!==null;var _0x39d49c=path['join'](config['root'],_0x8e4b('0x56'));if(_0x54dbd0){_0x39d49c=path[_0x8e4b('0x57')](_0x39d49c,_0x8e4b('0x58'));}var _0x3f7641=path[_0x8e4b('0x57')](_0x39d49c,_0x1820a1[_0x8e4b('0x52')]);return _0x169769[_0x8e4b('0x54')](_0x3f7641);}})[_0x8e4b('0x44')](handleError(_0x169769,null));};
\ No newline at end of file
+var _0x136b=['params','keys','intersection','include','find','clone','get','omit','updatedAt','body','createdAt','create','catch','update','destroy','file','originalname','basename','filename','mimetype','findOne','ChatOfflineMessageId','join','root','offline-chat/','download','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','json','reject','save','then','end','error','stack','name','index','map','Attachment','rawAttributes','fieldName','type','key','query','filters','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll'];(function(_0x4fc435,_0x45eddf){var _0x3c5db1=function(_0x1d18c1){while(--_0x1d18c1){_0x4fc435['push'](_0x4fc435['shift']());}};_0x3c5db1(++_0x45eddf);}(_0x136b,0x17e));var _0xb136=function(_0x5317b5,_0x4dfd6e){_0x5317b5=_0x5317b5-0x0;var _0x3b7ce2=_0x136b[_0x5317b5];return _0x3b7ce2;};'use strict';var emlformat=require(_0xb136('0x0'));var rimraf=require(_0xb136('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb136('0x2'));var rp=require(_0xb136('0x3'));var moment=require(_0xb136('0x4'));var BPromise=require(_0xb136('0x5'));var Mustache=require(_0xb136('0x6'));var util=require(_0xb136('0x7'));var path=require('path');var sox=require(_0xb136('0x8'));var csv=require(_0xb136('0x9'));var ejs=require(_0xb136('0xa'));var fs=require('fs');var fs_extra=require(_0xb136('0xb'));var _=require(_0xb136('0xc'));var squel=require(_0xb136('0xd'));var crypto=require(_0xb136('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xb136('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb136('0x10'));var Redis=require('ioredis');var authService=require(_0xb136('0x11'));var qs=require(_0xb136('0x12'));var as=require(_0xb136('0x13'));var hardwareService=require(_0xb136('0x14'));var logger=require(_0xb136('0x15'))(_0xb136('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xb136('0x17'));var db=require(_0xb136('0x18'))['db'];function respondWithStatusCode(_0xad68c2,_0x3c3d20){_0x3c3d20=_0x3c3d20||0xcc;return function(_0x5886b6){if(_0x5886b6){return _0xad68c2[_0xb136('0x19')](_0x3c3d20);}return _0xad68c2['status'](_0x3c3d20)['end']();};}function respondWithResult(_0xa2d4c9,_0x1d2cd1){_0x1d2cd1=_0x1d2cd1||0xc8;return function(_0x740292){if(_0x740292){return _0xa2d4c9[_0xb136('0x1a')](_0x1d2cd1)['json'](_0x740292);}};}function respondWithFilteredResult(_0x4ec746,_0x77c072){return function(_0x130316){if(_0x130316){var _0x44695f=typeof _0x77c072[_0xb136('0x1b')]===_0xb136('0x1c')&&typeof _0x77c072[_0xb136('0x1d')]===_0xb136('0x1c');var _0x24defa=_0x130316[_0xb136('0x1e')];var _0x5169d4=_0x44695f?0x0:_0x77c072[_0xb136('0x1b')];var _0x335a31=_0x44695f?_0x130316['count']:_0x77c072[_0xb136('0x1b')]+_0x77c072[_0xb136('0x1d')];var _0x5c0644;if(_0x335a31>=_0x24defa){_0x335a31=_0x24defa;_0x5c0644=0xc8;}else{_0x5c0644=0xce;}_0x4ec746['status'](_0x5c0644);return _0x4ec746['set']('Content-Range',_0x5169d4+'-'+_0x335a31+'/'+_0x24defa)[_0xb136('0x1f')](_0x130316);}return null;};}function patchUpdates(_0x3fee49){return function(_0x58053c){try{jsonpatch['apply'](_0x58053c,_0x3fee49,!![]);}catch(_0x5e8071){return BPromise[_0xb136('0x20')](_0x5e8071);}return _0x58053c[_0xb136('0x21')]();};}function saveUpdates(_0x3dbbbc,_0x2c758b){return function(_0x196503){if(_0x196503){return _0x196503['update'](_0x3dbbbc)[_0xb136('0x22')](function(_0x599217){return _0x599217;});}return null;};}function removeEntity(_0xb24c57,_0x1f5411){return function(_0xea3938){if(_0xea3938){return _0xea3938['destroy']()[_0xb136('0x22')](function(){_0xb24c57[_0xb136('0x1a')](0xcc)[_0xb136('0x23')]();});}};}function handleEntityNotFound(_0x5495f1,_0x316c2d){return function(_0x5763ae){if(!_0x5763ae){_0x5495f1[_0xb136('0x19')](0x194);}return _0x5763ae;};}function handleError(_0x2d44d8,_0x50e9ee){_0x50e9ee=_0x50e9ee||0x1f4;return function(_0x158d51){logger[_0xb136('0x24')](_0x158d51[_0xb136('0x25')]);if(_0x158d51[_0xb136('0x26')]){delete _0x158d51[_0xb136('0x26')];}_0x2d44d8[_0xb136('0x1a')](_0x50e9ee)['send'](_0x158d51);};}exports[_0xb136('0x27')]=function(_0x30a271,_0x3bf213){var _0xf0684d={},_0x22bbef={},_0x20cb78={'count':0x0,'rows':[]};var _0x3f51df=_[_0xb136('0x28')](db[_0xb136('0x29')][_0xb136('0x2a')],function(_0x404896){return{'name':_0x404896[_0xb136('0x2b')],'type':_0x404896[_0xb136('0x2c')][_0xb136('0x2d')]};});_0x22bbef['model']=_['map'](_0x3f51df,_0xb136('0x26'));_0x22bbef[_0xb136('0x2e')]=_['keys'](_0x30a271[_0xb136('0x2e')]);_0x22bbef[_0xb136('0x2f')]=_['intersection'](_0x22bbef[_0xb136('0x30')],_0x22bbef[_0xb136('0x2e')]);_0xf0684d[_0xb136('0x31')]=_['intersection'](_0x22bbef['model'],qs[_0xb136('0x32')](_0x30a271['query'][_0xb136('0x32')]));_0xf0684d[_0xb136('0x31')]=_0xf0684d[_0xb136('0x31')][_0xb136('0x33')]?_0xf0684d[_0xb136('0x31')]:_0x22bbef[_0xb136('0x30')];if(!_0x30a271[_0xb136('0x2e')]['hasOwnProperty'](_0xb136('0x34'))){_0xf0684d[_0xb136('0x1d')]=qs[_0xb136('0x1d')](_0x30a271[_0xb136('0x2e')]['limit']);_0xf0684d[_0xb136('0x1b')]=qs['offset'](_0x30a271[_0xb136('0x2e')][_0xb136('0x1b')]);}_0xf0684d[_0xb136('0x35')]=qs[_0xb136('0x36')](_0x30a271['query'][_0xb136('0x36')]);_0xf0684d[_0xb136('0x37')]=qs[_0xb136('0x2f')](_[_0xb136('0x38')](_0x30a271[_0xb136('0x2e')],_0x22bbef[_0xb136('0x2f')]),_0x3f51df);if(_0x30a271[_0xb136('0x2e')][_0xb136('0x39')]){_0xf0684d[_0xb136('0x37')]=_[_0xb136('0x3a')](_0xf0684d['where'],{'$or':_[_0xb136('0x28')](_0x3f51df,function(_0x1ab638){if(_0x1ab638[_0xb136('0x2c')]!==_0xb136('0x3b')){var _0x205528={};_0x205528[_0x1ab638['name']]={'$like':'%'+_0x30a271[_0xb136('0x2e')]['filter']+'%'};return _0x205528;}})});}_0xf0684d=_[_0xb136('0x3a')]({},_0xf0684d,_0x30a271[_0xb136('0x3c')]);var _0x3f2a1f={'where':_0xf0684d['where']};return db[_0xb136('0x29')][_0xb136('0x1e')](_0x3f2a1f)[_0xb136('0x22')](function(_0x3d7765){_0x20cb78['count']=_0x3d7765;if(_0x30a271[_0xb136('0x2e')][_0xb136('0x3d')]){_0xf0684d['include']=[{'all':!![]}];}return db[_0xb136('0x29')][_0xb136('0x3e')](_0xf0684d);})[_0xb136('0x22')](function(_0x139d30){_0x20cb78['rows']=_0x139d30;return _0x20cb78;})['then'](respondWithFilteredResult(_0x3bf213,_0xf0684d))['catch'](handleError(_0x3bf213,null));};exports['show']=function(_0x3bdc03,_0x2acd5e){var _0x24ba66={'raw':!![],'where':{'id':_0x3bdc03[_0xb136('0x3f')]['id']}},_0x531e7b={};_0x531e7b[_0xb136('0x30')]=_[_0xb136('0x40')](db[_0xb136('0x29')]['rawAttributes']);_0x531e7b[_0xb136('0x2e')]=_[_0xb136('0x40')](_0x3bdc03[_0xb136('0x2e')]);_0x531e7b[_0xb136('0x2f')]=_[_0xb136('0x41')](_0x531e7b['model'],_0x531e7b[_0xb136('0x2e')]);_0x24ba66[_0xb136('0x31')]=_['intersection'](_0x531e7b[_0xb136('0x30')],qs[_0xb136('0x32')](_0x3bdc03[_0xb136('0x2e')]['fields']));_0x24ba66[_0xb136('0x31')]=_0x24ba66[_0xb136('0x31')][_0xb136('0x33')]?_0x24ba66[_0xb136('0x31')]:_0x531e7b[_0xb136('0x30')];if(_0x3bdc03[_0xb136('0x2e')]['includeAll']){_0x24ba66[_0xb136('0x42')]=[{'all':!![]}];}_0x24ba66=_[_0xb136('0x3a')]({},_0x24ba66,_0x3bdc03[_0xb136('0x3c')]);return db[_0xb136('0x29')][_0xb136('0x43')](_0x24ba66)[_0xb136('0x22')](handleEntityNotFound(_0x2acd5e,null))[_0xb136('0x22')](respondWithResult(_0x2acd5e,null))['catch'](handleError(_0x2acd5e,null));};exports[_0xb136('0x44')]=function(_0x1d1f75,_0x1c8e7a){var _0x26c3f4={'where':{'id':_0x1d1f75[_0xb136('0x3f')]['id']}},_0x236fdd={};_0x236fdd['model']=_[_0xb136('0x40')](db[_0xb136('0x29')][_0xb136('0x2a')]);_0x26c3f4[_0xb136('0x31')]=_[_0xb136('0x41')](_0x236fdd[_0xb136('0x30')],qs['fields'](_0x1d1f75[_0xb136('0x2e')]['fields']));_0x26c3f4[_0xb136('0x31')]=_0x26c3f4['attributes'][_0xb136('0x33')]?_0x26c3f4[_0xb136('0x31')]:_0x236fdd['model'];if(_0x1d1f75[_0xb136('0x2e')][_0xb136('0x3d')]){_0x26c3f4[_0xb136('0x42')]=[{'all':!![]}];}_0x26c3f4=_[_0xb136('0x3a')]({},_0x26c3f4,_0x1d1f75[_0xb136('0x3c')]);return db[_0xb136('0x29')][_0xb136('0x43')](_0x26c3f4)['then'](handleEntityNotFound(_0x1c8e7a,null))[_0xb136('0x22')](function(_0x7bb544){if(_0x7bb544){var _0x2ff245=_0x7bb544[_0xb136('0x45')]({'plain':!![]});_0x2ff245=qs[_0xb136('0x46')](_0x2ff245,['id','createdAt',_0xb136('0x47')]);_0x1d1f75[_0xb136('0x48')]=_[_0xb136('0x46')](_0x1d1f75[_0xb136('0x48')],['id',_0xb136('0x49'),_0xb136('0x47')]);return db[_0xb136('0x29')][_0xb136('0x4a')](_['merge'](_0x2ff245,_0x1d1f75['body']),{'include':_0x1d1f75['query'][_0xb136('0x3d')]?[{'all':!![]}]:undefined});}})[_0xb136('0x22')](respondWithResult(_0x1c8e7a,0xc9))[_0xb136('0x4b')](handleError(_0x1c8e7a,null));};exports[_0xb136('0x4c')]=function(_0xa5d23b,_0x365038){if(_0xa5d23b['body']['id']){delete _0xa5d23b[_0xb136('0x48')]['id'];}return db[_0xb136('0x29')][_0xb136('0x43')]({'where':{'id':_0xa5d23b[_0xb136('0x3f')]['id']}})[_0xb136('0x22')](handleEntityNotFound(_0x365038,null))[_0xb136('0x22')](saveUpdates(_0xa5d23b[_0xb136('0x48')],null))[_0xb136('0x22')](respondWithResult(_0x365038,null))[_0xb136('0x4b')](handleError(_0x365038,null));};exports[_0xb136('0x4d')]=function(_0x4ac960,_0x4fcfbd){return db[_0xb136('0x29')][_0xb136('0x43')]({'where':{'id':_0x4ac960[_0xb136('0x3f')]['id']}})['then'](handleEntityNotFound(_0x4fcfbd,null))[_0xb136('0x22')](removeEntity(_0x4fcfbd,null))['catch'](handleError(_0x4fcfbd,null));};exports[_0xb136('0x4a')]=function(_0x156f25,_0x4718de,_0x59833e){_0x156f25[_0xb136('0x48')][_0xb136('0x26')]=_0x156f25[_0xb136('0x4e')][_0xb136('0x4f')];_0x156f25[_0xb136('0x48')][_0xb136('0x50')]=_0x156f25[_0xb136('0x4e')][_0xb136('0x51')];_0x156f25[_0xb136('0x48')][_0xb136('0x2c')]=_0x156f25['file'][_0xb136('0x52')];return db[_0xb136('0x29')]['create'](_0x156f25[_0xb136('0x48')])['then'](respondWithResult(_0x4718de,0xc9))[_0xb136('0x4b')](handleError(_0x4718de,null));};exports['download']=function(_0x26d5ed,_0x387d00,_0x30c789){return db[_0xb136('0x29')][_0xb136('0x53')]({'where':{'id':_0x26d5ed[_0xb136('0x3f')]['id']},'raw':!![]})[_0xb136('0x22')](handleEntityNotFound(_0x387d00,null))[_0xb136('0x22')](function(_0x911577){if(_0x911577){var _0x5a2ee5=_0x911577[_0xb136('0x54')]!==null;var _0x1964f3=path[_0xb136('0x55')](config[_0xb136('0x56')],'server/files/attachments/');if(_0x5a2ee5){_0x1964f3=path[_0xb136('0x55')](_0x1964f3,_0xb136('0x57'));}var _0x15f941=path[_0xb136('0x55')](_0x1964f3,_0x911577['basename']);return _0x387d00[_0xb136('0x58')](_0x15f941);}})['catch'](handleError(_0x387d00,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x247b=['../../config/environment','./attachment.attributes','exports','define','Attachment','lodash','util','api','bluebird','request-promise','rimraf'];(function(_0x178e48,_0x3c9509){var _0x440d7e=function(_0xc2f8a0){while(--_0xc2f8a0){_0x178e48['push'](_0x178e48['shift']());}};_0x440d7e(++_0x3c9509);}(_0x247b,0x1d3));var _0xb247=function(_0x1e73e2,_0xaeba42){_0x1e73e2=_0x1e73e2-0x0;var _0xc84404=_0x247b[_0x1e73e2];return _0xc84404;};'use strict';var _=require(_0xb247('0x0'));var util=require(_0xb247('0x1'));var logger=require('../../config/logger')(_0xb247('0x2'));var moment=require('moment');var BPromise=require(_0xb247('0x3'));var rp=require(_0xb247('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xb247('0x5'));var config=require(_0xb247('0x6'));var attributes=require(_0xb247('0x7'));module[_0xb247('0x8')]=function(_0x3ec73d,_0x386c02){return _0x3ec73d[_0xb247('0x9')](_0xb247('0xa'),attributes,{'tableName':'attachments','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf552=['../../config/environment','exports','define','Attachment','lodash','util','api','bluebird','path','rimraf'];(function(_0x4b584a,_0x537262){var _0x17c84e=function(_0x189cf2){while(--_0x189cf2){_0x4b584a['push'](_0x4b584a['shift']());}};_0x17c84e(++_0x537262);}(_0xf552,0x90));var _0x2f55=function(_0x141310,_0x4fb243){_0x141310=_0x141310-0x0;var _0x4680ae=_0xf552[_0x141310];return _0x4680ae;};'use strict';var _=require(_0x2f55('0x0'));var util=require(_0x2f55('0x1'));var logger=require('../../config/logger')(_0x2f55('0x2'));var moment=require('moment');var BPromise=require(_0x2f55('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2f55('0x4'));var rimraf=require(_0x2f55('0x5'));var config=require(_0x2f55('0x6'));var attributes=require('./attachment.attributes');module[_0x2f55('0x7')]=function(_0x4dd05b,_0x52f50a){return _0x4dd05b[_0x2f55('0x8')](_0x2f55('0x9'),attributes,{'tableName':'attachments','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55e0=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','Attachment,\x20%s,\x20%s','request\x20sent','debug','Attachment,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','CreateAttachment','Attachment','body','options','raw','stringify','lodash','util','moment','bluebird'];(function(_0x3ce934,_0x431206){var _0x199da1=function(_0x203f2e){while(--_0x203f2e){_0x3ce934['push'](_0x3ce934['shift']());}};_0x199da1(++_0x431206);}(_0x55e0,0xdc));var _0x055e=function(_0x576190,_0x2b5637){_0x576190=_0x576190-0x0;var _0x120902=_0x55e0[_0x576190];return _0x120902;};'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);});});}exports[_0x055e('0x16')]=function(_0x4c85dd){var _0x36ef10=this;return new Promise(function(_0x2cf3de,_0x2f4a06){return db[_0x055e('0x17')]['create'](_0x4c85dd[_0x055e('0x18')],{'raw':_0x4c85dd[_0x055e('0x19')]?_0x4c85dd['options'][_0x055e('0x1a')]===undefined?!![]:![]:!![]})[_0x055e('0xb')](function(_0x10258f){logger[_0x055e('0xc')](_0x055e('0x16'),_0x4c85dd);logger[_0x055e('0xf')]('CreateAttachment',_0x4c85dd,JSON[_0x055e('0x1b')](_0x10258f));_0x2cf3de(_0x10258f);})[_0x055e('0x15')](function(_0x211594){logger['error'](_0x055e('0x16'),_0x211594[_0x055e('0x13')],_0x4c85dd);_0x2f4a06(_0x36ef10[_0x055e('0x11')](0x1f4,_0x211594[_0x055e('0x13')]));});});};
\ No newline at end of file
+var _0x6c50=['error','Attachment,\x20%s,\x20%s','message','request\x20sent','result','catch','CreateAttachment','Attachment','create','body','options','raw','debug','stringify','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Attachment,\x20%s,\x20%s,\x20%s'];(function(_0x34750b,_0x34aae5){var _0x244258=function(_0x503bf2){while(--_0x503bf2){_0x34750b['push'](_0x34750b['shift']());}};_0x244258(++_0x34aae5);}(_0x6c50,0xa4));var _0x06c5=function(_0x480f85,_0x1e3edc){_0x480f85=_0x480f85-0x0;var _0x12e7ae=_0x6c50[_0x480f85];return _0x12e7ae;};'use strict';var _=require(_0x06c5('0x0'));var util=require(_0x06c5('0x1'));var moment=require(_0x06c5('0x2'));var BPromise=require(_0x06c5('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x06c5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x06c5('0x5'));var logger=require(_0x06c5('0x6'))(_0x06c5('0x7'));var config=require(_0x06c5('0x8'));var jayson=require(_0x06c5('0x9'));var client=jayson[_0x06c5('0xa')][_0x06c5('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x427dd6,_0x181c7f,_0x17c636){return new BPromise(function(_0x154b0a,_0x546ae5){return client[_0x06c5('0xc')](_0x427dd6,_0x17c636)[_0x06c5('0xd')](function(_0x3010af){logger[_0x06c5('0xe')]('Attachment,\x20%s,\x20%s',_0x181c7f,'request\x20sent');logger['debug'](_0x06c5('0xf'),_0x181c7f,'request\x20sent',JSON['stringify'](_0x3010af));if(_0x3010af['error']){if(_0x3010af[_0x06c5('0x10')]['code']===0x1f4){logger[_0x06c5('0x10')](_0x06c5('0x11'),_0x181c7f,_0x3010af[_0x06c5('0x10')]['message']);return _0x546ae5(_0x3010af[_0x06c5('0x10')][_0x06c5('0x12')]);}logger[_0x06c5('0x10')](_0x06c5('0x11'),_0x181c7f,_0x3010af['error']['message']);return _0x154b0a(_0x3010af[_0x06c5('0x10')][_0x06c5('0x12')]);}else{logger[_0x06c5('0xe')]('Attachment,\x20%s,\x20%s',_0x181c7f,_0x06c5('0x13'));_0x154b0a(_0x3010af[_0x06c5('0x14')]['message']);}})[_0x06c5('0x15')](function(_0x9045e6){logger[_0x06c5('0x10')](_0x06c5('0x11'),_0x181c7f,_0x9045e6);_0x546ae5(_0x9045e6);});});}exports[_0x06c5('0x16')]=function(_0x36b9e9){var _0x44d14e=this;return new Promise(function(_0x18a070,_0x1393f5){return db[_0x06c5('0x17')][_0x06c5('0x18')](_0x36b9e9[_0x06c5('0x19')],{'raw':_0x36b9e9[_0x06c5('0x1a')]?_0x36b9e9[_0x06c5('0x1a')][_0x06c5('0x1b')]===undefined?!![]:![]:!![]})[_0x06c5('0xd')](function(_0x26a653){logger['info'](_0x06c5('0x16'),_0x36b9e9);logger[_0x06c5('0x1c')](_0x06c5('0x16'),_0x36b9e9,JSON[_0x06c5('0x1d')](_0x26a653));_0x18a070(_0x26a653);})[_0x06c5('0x15')](function(_0x3c9e49){logger[_0x06c5('0x10')]('CreateAttachment',_0x3c9e49[_0x06c5('0x12')],_0x36b9e9);_0x1393f5(_0x44d14e[_0x06c5('0x10')](0x1f4,_0x3c9e49[_0x06c5('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb28=['path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','show','/:id/download','download','/:id/clone','clone','join','root','server/files/attachments/','%s-%s','now','originalname','replace','post','single','file','create','put','update','delete','destroy','exports','multer','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xdb28,0x106));var _0x8db2=function(_0x506894,_0x59b681){_0x506894=_0x506894-0x0;var _0x930561=_0xdb28[_0x506894];return _0x930561;};'use strict';var multer=require(_0x8db2('0x0'));var util=require(_0x8db2('0x1'));var path=require(_0x8db2('0x2'));var timeout=require(_0x8db2('0x3'));var express=require('express');var router=express[_0x8db2('0x4')]();var fs_extra=require(_0x8db2('0x5'));var auth=require(_0x8db2('0x6'));var interaction=require(_0x8db2('0x7'));var config=require(_0x8db2('0x8'));var controller=require('./attachment.controller');router[_0x8db2('0x9')]('/',auth[_0x8db2('0xa')](),controller['index']);router['get'](_0x8db2('0xb'),auth[_0x8db2('0xa')](),controller[_0x8db2('0xc')]);router[_0x8db2('0x9')](_0x8db2('0xd'),auth[_0x8db2('0xa')](),controller[_0x8db2('0xe')]);router['post'](_0x8db2('0xf'),auth[_0x8db2('0xa')](),controller[_0x8db2('0x10')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x1d9371,_0x150942,_0x576475){_0x576475(null,path[_0x8db2('0x11')](config[_0x8db2('0x12')],_0x8db2('0x13')));},'filename':function(_0x204f49,_0x37d017,_0x559fb1){_0x559fb1(null,util['format'](_0x8db2('0x14'),Date[_0x8db2('0x15')](),_0x37d017[_0x8db2('0x16')][_0x8db2('0x17')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x8db2('0x18')]('/',upload[_0x8db2('0x19')](_0x8db2('0x1a')),controller[_0x8db2('0x1b')]);router[_0x8db2('0x1c')](_0x8db2('0xb'),auth['isAuthenticated'](),controller[_0x8db2('0x1d')]);router[_0x8db2('0x1e')]('/:id',auth[_0x8db2('0xa')](),controller[_0x8db2('0x1f')]);module[_0x8db2('0x20')]=router;
\ No newline at end of file
+var _0x2032=['./attachment.controller','get','isAuthenticated','index','/:id','show','download','/:id/clone','clone','root','server/files/attachments/','now','post','single','file','create','put','update','delete','destroy','exports','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment'];(function(_0xfffc22,_0x26784c){var _0x1f167c=function(_0xbb0d8d){while(--_0xbb0d8d){_0xfffc22['push'](_0xfffc22['shift']());}};_0x1f167c(++_0x26784c);}(_0x2032,0xd9));var _0x2203=function(_0x4b766e,_0x2d1b15){_0x4b766e=_0x4b766e-0x0;var _0x99d39d=_0x2032[_0x4b766e];return _0x99d39d;};'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/download',auth['isAuthenticated'](),controller[_0x2203('0xd')]);router['post'](_0x2203('0xe'),auth[_0x2203('0x9')](),controller[_0x2203('0xf')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x849049,_0x4a6832,_0x3f690a){_0x3f690a(null,path['join'](config[_0x2203('0x10')],_0x2203('0x11')));},'filename':function(_0x4b9376,_0x583bc7,_0x585c76){_0x585c76(null,util['format']('%s-%s',Date[_0x2203('0x12')](),_0x583bc7['originalname']['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x2203('0x13')]('/',upload[_0x2203('0x14')](_0x2203('0x15')),controller[_0x2203('0x16')]);router[_0x2203('0x17')](_0x2203('0xb'),auth[_0x2203('0x9')](),controller[_0x2203('0x18')]);router[_0x2203('0x19')](_0x2203('0xb'),auth['isAuthenticated'](),controller[_0x2203('0x1a')]);module[_0x2203('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x79f7=['clearBlockUser','getLicense','catch','passport','passport-google-oauth20','Strategy','moment','../../mysqldb','../../config/environment','../../components/auth/service','signToken','../../config/utils','login','google','/login','callback','authenticate','clientID','secret','Setting','findOne','blockDuration','then','find','map','emails','value','admin','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blocked','blockedAt','add','minutes'];(function(_0x418b55,_0x460d11){var _0x4a05c7=function(_0x1dae95){while(--_0x1dae95){_0x418b55['push'](_0x418b55['shift']());}};_0x4a05c7(++_0x460d11);}(_0x79f7,0xc9));var _0x779f=function(_0x1cd0d2,_0x11fcfa){_0x1cd0d2=_0x1cd0d2-0x0;var _0x32bb0a=_0x79f7[_0x1cd0d2];return _0x32bb0a;};'use strict';var _=require('lodash');var passport=require(_0x779f('0x0'));var GoogleStrategy=require(_0x779f('0x1'))[_0x779f('0x2')];var moment=require(_0x779f('0x3'));var db=require(_0x779f('0x4'))['db'];var config=require(_0x779f('0x5'));var signToken=require(_0x779f('0x6'))[_0x779f('0x7')];var utils=require(_0x779f('0x8'));exports[_0x779f('0x9')]=passport['authenticate'](_0x779f('0xa'),{'failureRedirect':_0x779f('0xb'),'scope':['profile','email'],'session':![]});exports[_0x779f('0xc')]=passport[_0x779f('0xd')](_0x779f('0xa'),{'failureRedirect':_0x779f('0xb'),'session':![]});passport['use'](new GoogleStrategy({'clientID':config['google']?config[_0x779f('0xa')][_0x779f('0xe')]:'id','clientSecret':config[_0x779f('0xa')]?config[_0x779f('0xa')]['clientSecret']:_0x779f('0xf'),'callbackURL':config[_0x779f('0xa')]?config['google']['callbackURL']:''},function(_0x141b25,_0x181782,_0x58b93b,_0x1e9103){var _0x4fab5b,_0x3263d9;return db[_0x779f('0x10')][_0x779f('0x11')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x779f('0x12')],'raw':!![]})[_0x779f('0x13')](function(_0x304a98){_0x4fab5b=_0x304a98;return db['User'][_0x779f('0x14')]({'where':{'email':_[_0x779f('0x15')](_0x58b93b[_0x779f('0x16')],_0x779f('0x17')),'role':{'$or':[_0x779f('0x18'),'user','agent']}}});})[_0x779f('0x13')](function(_0x3ae03e){_0x3263d9=_0x3ae03e;if(_0x3263d9){if(_0x3263d9['disabled']){return _0x1e9103(_0x779f('0x19'));}else if(_0x4fab5b[_0x779f('0x12')]>0x0){if(_0x3263d9[_0x779f('0x1a')]){if(moment(_0x3263d9[_0x779f('0x1b')])[_0x779f('0x1c')](_0x4fab5b['blockDuration'],_0x779f('0x1d'))>moment()){return _0x1e9103(_0x779f('0x19'));}else{return utils[_0x779f('0x1e')](_0x3263d9,0x0,![],null)[_0x779f('0x13')](function(){return utils['getLicense'](_0x3263d9);})['then'](function(){return _0x1e9103(null,_0x3263d9);});}}else{return utils[_0x779f('0x1f')](_0x3263d9)[_0x779f('0x13')](function(){return _0x1e9103(null,_0x3263d9);});}}else{return utils[_0x779f('0x1f')](_0x3263d9)[_0x779f('0x13')](function(){return _0x1e9103(null,_0x3263d9);});}}return _0x1e9103(_0x779f('0x19'));})[_0x779f('0x20')](function(_0x98705b){_0x1e9103(_0x98705b);});}));
\ No newline at end of file
+var _0xa825=['agent','disabled','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blockDuration','blocked','add','minutes','clearBlockUser','getLicense','catch','lodash','passport','passport-google-oauth20','Strategy','moment','../../mysqldb','../../config/environment','signToken','../../config/utils','google','/login','profile','email','callback','authenticate','secret','callbackURL','Setting','findOne','allowedLoginAttempts','then','find','emails','value','admin','user'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0xa825,0x196));var _0x5a82=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0xa825[_0x3b380d];return _0x54502b;};'use strict';var _=require(_0x5a82('0x0'));var passport=require(_0x5a82('0x1'));var GoogleStrategy=require(_0x5a82('0x2'))[_0x5a82('0x3')];var moment=require(_0x5a82('0x4'));var db=require(_0x5a82('0x5'))['db'];var config=require(_0x5a82('0x6'));var signToken=require('../../components/auth/service')[_0x5a82('0x7')];var utils=require(_0x5a82('0x8'));exports['login']=passport['authenticate'](_0x5a82('0x9'),{'failureRedirect':_0x5a82('0xa'),'scope':[_0x5a82('0xb'),_0x5a82('0xc')],'session':![]});exports[_0x5a82('0xd')]=passport[_0x5a82('0xe')](_0x5a82('0x9'),{'failureRedirect':_0x5a82('0xa'),'session':![]});passport['use'](new GoogleStrategy({'clientID':config[_0x5a82('0x9')]?config[_0x5a82('0x9')]['clientID']:'id','clientSecret':config[_0x5a82('0x9')]?config[_0x5a82('0x9')]['clientSecret']:_0x5a82('0xf'),'callbackURL':config['google']?config[_0x5a82('0x9')][_0x5a82('0x10')]:''},function(_0x4fd567,_0x305529,_0xef4b9b,_0x4de3e8){var _0x210209,_0x36c635;return db[_0x5a82('0x11')][_0x5a82('0x12')]({'where':{'id':0x1},'attributes':[_0x5a82('0x13'),'blockDuration'],'raw':!![]})[_0x5a82('0x14')](function(_0x33159a){_0x210209=_0x33159a;return db['User'][_0x5a82('0x15')]({'where':{'email':_['map'](_0xef4b9b[_0x5a82('0x16')],_0x5a82('0x17')),'role':{'$or':[_0x5a82('0x18'),_0x5a82('0x19'),_0x5a82('0x1a')]}}});})['then'](function(_0x3ca446){_0x36c635=_0x3ca446;if(_0x36c635){if(_0x36c635[_0x5a82('0x1b')]){return _0x4de3e8(_0x5a82('0x1c'));}else if(_0x210209[_0x5a82('0x1d')]>0x0){if(_0x36c635[_0x5a82('0x1e')]){if(moment(_0x36c635['blockedAt'])[_0x5a82('0x1f')](_0x210209['blockDuration'],_0x5a82('0x20'))>moment()){return _0x4de3e8(_0x5a82('0x1c'));}else{return utils[_0x5a82('0x21')](_0x36c635,0x0,![],null)[_0x5a82('0x14')](function(){return utils['getLicense'](_0x36c635);})[_0x5a82('0x14')](function(){return _0x4de3e8(null,_0x36c635);});}}else{return utils[_0x5a82('0x22')](_0x36c635)['then'](function(){return _0x4de3e8(null,_0x36c635);});}}else{return utils[_0x5a82('0x22')](_0x36c635)[_0x5a82('0x14')](function(){return _0x4de3e8(null,_0x36c635);});}}return _0x4de3e8(_0x5a82('0x1c'));})[_0x5a82('0x23')](function(_0x516b6c){_0x4de3e8(_0x516b6c);});}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9fb8=['get','login','/callback','callback','isMiddleware','setTokenCookie','express','passport','Router','../user/user.controller.js','../../components/auth/service'];(function(_0xdaf72f,_0x579728){var _0x36dadf=function(_0x51ca24){while(--_0x51ca24){_0xdaf72f['push'](_0xdaf72f['shift']());}};_0x36dadf(++_0x579728);}(_0x9fb8,0xa0));var _0x89fb=function(_0x17543f,_0x34a3aa){_0x17543f=_0x17543f-0x0;var _0x479c57=_0x9fb8[_0x17543f];return _0x479c57;};'use strict';var express=require(_0x89fb('0x0'));var passport=require(_0x89fb('0x1'));var router=express[_0x89fb('0x2')]();var controller=require('./authGoogle.controller');var userController=require(_0x89fb('0x3'));var authService=require(_0x89fb('0x4'));router[_0x89fb('0x5')]('/',controller[_0x89fb('0x6')]);router[_0x89fb('0x5')](_0x89fb('0x7'),controller[_0x89fb('0x8')],authService[_0x89fb('0x9')],userController[_0x89fb('0x6')],authService[_0x89fb('0xa')]);module['exports']=router;
\ No newline at end of file
+var _0x807b=['express','passport','Router','./authGoogle.controller','../user/user.controller.js','../../components/auth/service','get','login','callback','isMiddleware','setTokenCookie','exports'];(function(_0x500ea0,_0x1db62b){var _0x31b78e=function(_0x1bf570){while(--_0x1bf570){_0x500ea0['push'](_0x500ea0['shift']());}};_0x31b78e(++_0x1db62b);}(_0x807b,0x1bc));var _0xb807=function(_0x1e3872,_0xaceee8){_0x1e3872=_0x1e3872-0x0;var _0x5178c8=_0x807b[_0x1e3872];return _0x5178c8;};'use strict';var express=require(_0xb807('0x0'));var passport=require(_0xb807('0x1'));var router=express[_0xb807('0x2')]();var controller=require(_0xb807('0x3'));var userController=require(_0xb807('0x4'));var authService=require(_0xb807('0x5'));router[_0xb807('0x6')]('/',controller[_0xb807('0x7')]);router['get']('/callback',controller[_0xb807('0x8')],authService[_0xb807('0x9')],userController[_0xb807('0x7')],authService[_0xb807('0xa')]);module[_0xb807('0xb')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc2e5=['password','salt','role','disabled','blocked','blockedAt','agent','then','name','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','add','clearBlockUser','getLicense','catch','MailAccount','find','email','MailServerOut','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','Smtp','service','host','port','secure','authentication','auth','pass','format','\x22%s\x22\x20<%s>','user','request','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','stringify','message','login','authenticate','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','body','Email\x20parameter\x20is\x20missing','trim','toLowerCase','User','This\x20email\x20is\x20not\x20registered.','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','resetPasswordExpires','now','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://','headers','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','status','params','token','enforcePasswordHistory','passwordHistoryLimit','securePassword','validatePasswordPattern','previousPasswords','send','Password\x20reset!','use','passport-local','lodash','../../mysqldb','../../components/auth/service','client','http','Setting','allowedLoginAttempts','blockDuration','findOne'];(function(_0xe66cf2,_0x32ba5f){var _0x2d84e7=function(_0x58a7d8){while(--_0x58a7d8){_0xe66cf2['push'](_0xe66cf2['shift']());}};_0x2d84e7(++_0x32ba5f);}(_0xc2e5,0xe3));var _0x5c2e=function(_0x23c73d,_0x357b21){_0x23c73d=_0x23c73d-0x0;var _0x36ba47=_0xc2e5[_0x23c73d];return _0x36ba47;};'use strict';var util=require('util');var passport=require('passport');var LocalStrategy=require(_0x5c2e('0x0'))['Strategy'];var jayson=require('jayson/promise');var _=require(_0x5c2e('0x1'));var rs=require('randomstring');var moment=require('moment');var db=require(_0x5c2e('0x2'))['db'];var authService=require(_0x5c2e('0x3'));var utils=require('../../config/utils');var client=jayson[_0x5c2e('0x4')][_0x5c2e('0x5')]({'port':0x232b});function localAuthenticate(_0x478196,_0x266c00,_0x4e058f,_0x26e461){var _0x13f35a,_0x32eafb;return db[_0x5c2e('0x6')]['findOne']({'where':{'id':0x1},'attributes':[_0x5c2e('0x7'),_0x5c2e('0x8')],'raw':!![]})['then'](function(_0x33a885){_0x13f35a=_0x33a885;return _0x478196[_0x5c2e('0x9')]({'attributes':['id','name',_0x5c2e('0xa'),_0x5c2e('0xb'),_0x5c2e('0xc'),_0x5c2e('0xd'),_0x5c2e('0xe'),_0x5c2e('0xf'),'loginAttempts'],'where':{'name':_0x266c00,'role':{'$or':['admin','user',_0x5c2e('0x10')]}}});})[_0x5c2e('0x11')](function(_0x52d861){if(!_0x52d861||_0x52d861&&_0x52d861[_0x5c2e('0x12')]!==_0x266c00){throw new Error(_0x5c2e('0x13'));}else{_0x32eafb=_0x52d861;return _0x32eafb;}})[_0x5c2e('0x11')](function(){_0x32eafb['authenticate'](_0x4e058f,function(_0x2d5f0b,_0x182f19){var _0x17ac2c=_0x32eafb['loginAttempts']+0x1;if(_0x2d5f0b){return _0x26e461(_0x2d5f0b);}else if(!_0x182f19){if(_0x32eafb['disabled']){return _0x26e461(null,![],{'message':_0x5c2e('0x13')});}else if(_0x13f35a[_0x5c2e('0x7')]>0x0){if(_0x32eafb['blocked']){if(_0x13f35a[_0x5c2e('0x8')]>0x0){if(moment(_0x32eafb['blockedAt'])[_0x5c2e('0x14')](_0x13f35a[_0x5c2e('0x8')],'minutes')>moment()){return _0x26e461(null,![],{'message':_0x5c2e('0x13')});}else{return utils[_0x5c2e('0x15')](_0x32eafb,_0x17ac2c,![],null)['then'](function(){return _0x26e461(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}else{return _0x26e461(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x17ac2c>=_0x13f35a[_0x5c2e('0x7')]){return utils[_0x5c2e('0x15')](_0x32eafb,0x0,!![],moment())['then'](function(){return _0x26e461(null,![],{'message':_0x5c2e('0x13')});});}else{return utils[_0x5c2e('0x15')](_0x32eafb,_0x17ac2c,![],null)[_0x5c2e('0x11')](function(){return _0x26e461(null,![],{'message':_0x5c2e('0x13')});});}}}else{return _0x26e461(null,![],{'message':_0x5c2e('0x13')});}}else{if(_0x32eafb['disabled']){return _0x26e461(null,![],{'message':_0x5c2e('0x13')});}else if(_0x13f35a[_0x5c2e('0x7')]>0x0){if(_0x32eafb[_0x5c2e('0xe')]){if(_0x13f35a[_0x5c2e('0x8')]>0x0){if(moment(_0x32eafb[_0x5c2e('0xf')])[_0x5c2e('0x14')](_0x13f35a[_0x5c2e('0x8')],'minutes')>moment()){return _0x26e461(null,![],{'message':_0x5c2e('0x13')});}else{return utils['clearBlockUser'](_0x32eafb,0x0,![],null)[_0x5c2e('0x11')](function(){return utils[_0x5c2e('0x16')](_0x32eafb);})[_0x5c2e('0x11')](function(){return _0x26e461(null,_0x32eafb);});}}else{return _0x26e461(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{return utils[_0x5c2e('0x15')](_0x32eafb,0x0,![],null)[_0x5c2e('0x11')](function(){return utils[_0x5c2e('0x16')](_0x32eafb);})[_0x5c2e('0x11')](function(){return _0x26e461(null,_0x32eafb);})[_0x5c2e('0x17')](function(_0xea8563){return _0x26e461(null,![],_0xea8563);});}}else{if(_0x32eafb[_0x5c2e('0xe')]){return _0x26e461(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0x5c2e('0x16')](_0x32eafb)[_0x5c2e('0x11')](function(){return _0x26e461(null,_0x32eafb);});}}}});})['catch'](function(_0x915777){return _0x26e461(null,![],_0x915777);});}function sendServiceMail(_0x197ec3){return db[_0x5c2e('0x18')][_0x5c2e('0x19')]({'where':{'service':!![]},'attributes':['id',_0x5c2e('0x12'),_0x5c2e('0x1a')],'include':[{'model':db[_0x5c2e('0x1b')],'as':'Smtp'}]})[_0x5c2e('0x11')](function(_0x4067b5){if(!_0x4067b5){throw new Error(_0x5c2e('0x1c'));}var _0x4b3abd={'tls':{'rejectUnauthorized':![]}};if(_0x4067b5[_0x5c2e('0x1d')][_0x5c2e('0x1e')]){_0x4b3abd[_0x5c2e('0x1e')]=_0x4067b5[_0x5c2e('0x1d')]['service'];}else{_0x4b3abd[_0x5c2e('0x1f')]=_0x4067b5[_0x5c2e('0x1d')][_0x5c2e('0x1f')];_0x4b3abd[_0x5c2e('0x20')]=_0x4067b5[_0x5c2e('0x1d')][_0x5c2e('0x20')];_0x4b3abd[_0x5c2e('0x21')]=_0x4067b5[_0x5c2e('0x1d')][_0x5c2e('0x21')];}if(_0x4067b5[_0x5c2e('0x1d')][_0x5c2e('0x22')]){_0x4b3abd[_0x5c2e('0x23')]={'user':_0x4067b5['Smtp']['user'],'pass':_0x4067b5[_0x5c2e('0x1d')][_0x5c2e('0x24')]};}var _0x5ba8dd={'account':_0x4b3abd,'message':_['merge']({'from':util[_0x5c2e('0x25')](_0x5c2e('0x26'),_0x4067b5['name'],_0x4067b5[_0x5c2e('0x1a')]||_0x4067b5[_0x5c2e('0x1d')][_0x5c2e('0x27')])},_0x197ec3)};return client[_0x5c2e('0x28')]('SendMail',_0x5ba8dd);})[_0x5c2e('0x11')](function(_0x423a0e){if(_0x423a0e[_0x5c2e('0x29')]){throw new Error(util[_0x5c2e('0x25')](_0x5c2e('0x2a'),_0x423a0e[_0x5c2e('0x29')]['message']||JSON[_0x5c2e('0x2b')](_0x423a0e[_0x5c2e('0x29')])));}return!![];});}function handleError(_0x1d56df,_0x937b40,_0x52890e){return _0x1d56df['status'](_0x937b40||0x1f4)['send']({'message':_0x52890e?_0x52890e[_0x5c2e('0x2c')]||_0x52890e:''});}exports[_0x5c2e('0x2d')]=function(_0x17a1d5,_0x5537cb,_0x653be6){passport[_0x5c2e('0x2e')]('local',function(_0x271f4a,_0x541654,_0x32dbd3){var _0x5659bf=_0x271f4a||_0x32dbd3;if(_0x5659bf){return handleError(_0x5537cb,0x191,_0x5659bf);}if(!_0x541654){return handleError(_0x5537cb,0x194,{'message':_0x5c2e('0x2f')});}else{var _0x4c27a7={'payload':{'id':_0x541654['id'],'role':_0x541654[_0x5c2e('0xc')]},'options':{'expiresIn':0x15180}};return authService[_0x5c2e('0x30')](_0x4c27a7)[_0x5c2e('0x11')](function(_0x23852e){_0x5537cb[_0x5c2e('0x31')]({'id':_0x541654['id'],'token':_0x23852e,'statusCall':'','isAlreadyLogged':_0x541654['online']});});}})(_0x17a1d5,_0x5537cb,_0x653be6);};exports['forgot']=function(_0xd3e2f1,_0x4a9a10,_0x52aa0d){if(!_0xd3e2f1[_0x5c2e('0x32')][_0x5c2e('0x1a')]){return handleError(_0x4a9a10,0x1f4,{'message':_0x5c2e('0x33')});}var _0x3c1345=rs['generate']();_0xd3e2f1[_0x5c2e('0x32')]['email']=_0xd3e2f1[_0x5c2e('0x32')]['email'][_0x5c2e('0x34')]()[_0x5c2e('0x35')]();var _0x4f6a78;return db['Setting'][_0x5c2e('0x9')]({'where':{'id':0x1},'attributes':[_0x5c2e('0x7'),_0x5c2e('0x8')],'raw':!![]})[_0x5c2e('0x11')](function(_0x64188e){_0x4f6a78=_0x64188e;return db[_0x5c2e('0x36')][_0x5c2e('0x19')]({'where':{'email':_0xd3e2f1[_0x5c2e('0x32')][_0x5c2e('0x1a')]}});})[_0x5c2e('0x11')](function(_0x32198c){if(!_0x32198c){throw new Error(_0x5c2e('0x37'));}if(_0x32198c[_0x5c2e('0xd')]){throw new Error('The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.');}if(_0x32198c[_0x5c2e('0xe')]){if(moment(_0x32198c[_0x5c2e('0xf')])[_0x5c2e('0x14')](_0x4f6a78[_0x5c2e('0x8')],'minutes')>moment()){throw new Error(_0x5c2e('0x38'));}else{_0x32198c[_0x5c2e('0xe')]=![];_0x32198c[_0x5c2e('0xf')]=null;}}_0x32198c[_0x5c2e('0x39')]=_0x3c1345;_0x32198c[_0x5c2e('0x3a')]=Date[_0x5c2e('0x3b')]()+0x36ee80;return _0x32198c[_0x5c2e('0x3c')]();})[_0x5c2e('0x11')](function(){return sendServiceMail({'to':_0xd3e2f1[_0x5c2e('0x32')][_0x5c2e('0x1a')],'subject':_0x5c2e('0x3d'),'text':_0x5c2e('0x3e')+_0x5c2e('0x3f')+_0x5c2e('0x40')+_0xd3e2f1[_0x5c2e('0x41')][_0x5c2e('0x1f')]+_0x5c2e('0x42')+_0x3c1345+'\x0a\x0a'+_0x5c2e('0x43')});})['then'](function(){_0x4a9a10[_0x5c2e('0x44')](0xc8)['send']({'message':'Reset\x20Email\x20sent!'});})[_0x5c2e('0x17')](function(_0x559125){return handleError(_0x4a9a10,0x1f4,_0x559125);});};exports['reset']=function(_0x1a9e8c,_0x3f7888,_0x529d57){return db[_0x5c2e('0x36')][_0x5c2e('0x19')]({'where':{'resetPasswordToken':_0x1a9e8c[_0x5c2e('0x45')][_0x5c2e('0x46')],'resetPasswordExpires':{'$gt':Date[_0x5c2e('0x3b')]()}}})[_0x5c2e('0x11')](function(_0x12e3ba){if(!_0x12e3ba){throw new Error('Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.');}return db[_0x5c2e('0x6')][_0x5c2e('0x9')]({'attributes':['id','securePassword',_0x5c2e('0x47'),_0x5c2e('0x48')]})[_0x5c2e('0x11')](function(_0x2a3b31){if(_0x2a3b31[_0x5c2e('0x49')])authService[_0x5c2e('0x4a')](_0x1a9e8c[_0x5c2e('0x32')][_0x5c2e('0xa')]);if(!_0x2a3b31[_0x5c2e('0x47')]||!_0x12e3ba[_0x5c2e('0x4b')])return _0x12e3ba;authService['validatePasswordHistory'](_0x1a9e8c[_0x5c2e('0x32')][_0x5c2e('0xa')],_0x12e3ba['previousPasswords'],_0x2a3b31[_0x5c2e('0x48')]);return _0x12e3ba;})[_0x5c2e('0x11')](function(){_0x12e3ba[_0x5c2e('0xa')]=_0x1a9e8c[_0x5c2e('0x32')][_0x5c2e('0xa')];_0x12e3ba[_0x5c2e('0x39')]=null;_0x12e3ba[_0x5c2e('0x3a')]=null;return _0x12e3ba[_0x5c2e('0x3c')]();});})[_0x5c2e('0x11')](function(){_0x3f7888[_0x5c2e('0x44')](0xc8)[_0x5c2e('0x4c')]({'message':_0x5c2e('0x4d')});})[_0x5c2e('0x17')](function(_0x3194f8){return handleError(_0x3f7888,0x1f4,_0x3194f8);});};passport[_0x5c2e('0x4e')](new LocalStrategy({'usernameField':_0x5c2e('0x12'),'passwordField':_0x5c2e('0xa')},function(_0x2c7e1e,_0x4fd095,_0x42099f){return localAuthenticate(db[_0x5c2e('0x36')],_0x2c7e1e,_0x4fd095,_0x42099f);}));
\ No newline at end of file
+var _0xdd0f=['role','blocked','admin','user','agent','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','loginAttempts','disabled','blockDuration','blockedAt','add','minutes','clearBlockUser','getLicense','catch','MailAccount','find','MailServerOut','Smtp','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','service','host','port','authentication','auth','pass','format','\x22%s\x22\x20<%s>','request','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','status','send','login','authenticate','local','json','online','forgot','body','email','Email\x20parameter\x20is\x20missing','generate','trim','User','This\x20email\x20is\x20not\x20registered.','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','resetPasswordExpires','now','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://','headers','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','Reset\x20Email\x20sent!','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','enforcePasswordHistory','passwordHistoryLimit','validatePasswordPattern','validatePasswordHistory','previousPasswords','resetPasswordToken','Password\x20reset!','use','util','passport-local','randomstring','../../mysqldb','../../components/auth/service','../../config/utils','client','http','Setting','findOne','allowedLoginAttempts','then','name','password','salt'];(function(_0x47b5e6,_0x4d31e4){var _0xbd36ea=function(_0x3d2dd3){while(--_0x3d2dd3){_0x47b5e6['push'](_0x47b5e6['shift']());}};_0xbd36ea(++_0x4d31e4);}(_0xdd0f,0x9d));var _0xfdd0=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xdd0f[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xfdd0('0x0'));var passport=require('passport');var LocalStrategy=require(_0xfdd0('0x1'))['Strategy'];var jayson=require('jayson/promise');var _=require('lodash');var rs=require(_0xfdd0('0x2'));var moment=require('moment');var db=require(_0xfdd0('0x3'))['db'];var authService=require(_0xfdd0('0x4'));var utils=require(_0xfdd0('0x5'));var client=jayson[_0xfdd0('0x6')][_0xfdd0('0x7')]({'port':0x232b});function localAuthenticate(_0xfa4ce6,_0x564e3e,_0x3d7ab2,_0x444be4){var _0x4833e8,_0x10b29d;return db[_0xfdd0('0x8')][_0xfdd0('0x9')]({'where':{'id':0x1},'attributes':[_0xfdd0('0xa'),'blockDuration'],'raw':!![]})[_0xfdd0('0xb')](function(_0x229952){_0x4833e8=_0x229952;return _0xfa4ce6[_0xfdd0('0x9')]({'attributes':['id',_0xfdd0('0xc'),_0xfdd0('0xd'),_0xfdd0('0xe'),_0xfdd0('0xf'),'disabled',_0xfdd0('0x10'),'blockedAt','loginAttempts'],'where':{'name':_0x564e3e,'role':{'$or':[_0xfdd0('0x11'),_0xfdd0('0x12'),_0xfdd0('0x13')]}}});})[_0xfdd0('0xb')](function(_0x20ca9b){if(!_0x20ca9b||_0x20ca9b&&_0x20ca9b[_0xfdd0('0xc')]!==_0x564e3e){throw new Error(_0xfdd0('0x14'));}else{_0x10b29d=_0x20ca9b;return _0x10b29d;}})[_0xfdd0('0xb')](function(){_0x10b29d['authenticate'](_0x3d7ab2,function(_0xc0bf19,_0x22330b){var _0x4a83a4=_0x10b29d[_0xfdd0('0x15')]+0x1;if(_0xc0bf19){return _0x444be4(_0xc0bf19);}else if(!_0x22330b){if(_0x10b29d[_0xfdd0('0x16')]){return _0x444be4(null,![],{'message':_0xfdd0('0x14')});}else if(_0x4833e8['allowedLoginAttempts']>0x0){if(_0x10b29d['blocked']){if(_0x4833e8[_0xfdd0('0x17')]>0x0){if(moment(_0x10b29d[_0xfdd0('0x18')])[_0xfdd0('0x19')](_0x4833e8[_0xfdd0('0x17')],_0xfdd0('0x1a'))>moment()){return _0x444be4(null,![],{'message':_0xfdd0('0x14')});}else{return utils['clearBlockUser'](_0x10b29d,_0x4a83a4,![],null)[_0xfdd0('0xb')](function(){return _0x444be4(null,![],{'message':_0xfdd0('0x14')});});}}else{return _0x444be4(null,![],{'message':_0xfdd0('0x14')});}}else{if(_0x4a83a4>=_0x4833e8[_0xfdd0('0xa')]){return utils[_0xfdd0('0x1b')](_0x10b29d,0x0,!![],moment())[_0xfdd0('0xb')](function(){return _0x444be4(null,![],{'message':_0xfdd0('0x14')});});}else{return utils[_0xfdd0('0x1b')](_0x10b29d,_0x4a83a4,![],null)[_0xfdd0('0xb')](function(){return _0x444be4(null,![],{'message':_0xfdd0('0x14')});});}}}else{return _0x444be4(null,![],{'message':_0xfdd0('0x14')});}}else{if(_0x10b29d[_0xfdd0('0x16')]){return _0x444be4(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x4833e8[_0xfdd0('0xa')]>0x0){if(_0x10b29d[_0xfdd0('0x10')]){if(_0x4833e8[_0xfdd0('0x17')]>0x0){if(moment(_0x10b29d[_0xfdd0('0x18')])[_0xfdd0('0x19')](_0x4833e8['blockDuration'],_0xfdd0('0x1a'))>moment()){return _0x444be4(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0xfdd0('0x1b')](_0x10b29d,0x0,![],null)[_0xfdd0('0xb')](function(){return utils['getLicense'](_0x10b29d);})[_0xfdd0('0xb')](function(){return _0x444be4(null,_0x10b29d);});}}else{return _0x444be4(null,![],{'message':_0xfdd0('0x14')});}}else{return utils[_0xfdd0('0x1b')](_0x10b29d,0x0,![],null)[_0xfdd0('0xb')](function(){return utils[_0xfdd0('0x1c')](_0x10b29d);})[_0xfdd0('0xb')](function(){return _0x444be4(null,_0x10b29d);})[_0xfdd0('0x1d')](function(_0x27941f){return _0x444be4(null,![],_0x27941f);});}}else{if(_0x10b29d[_0xfdd0('0x10')]){return _0x444be4(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils['getLicense'](_0x10b29d)['then'](function(){return _0x444be4(null,_0x10b29d);});}}}});})[_0xfdd0('0x1d')](function(_0x157b28){return _0x444be4(null,![],_0x157b28);});}function sendServiceMail(_0x28c68d){return db[_0xfdd0('0x1e')][_0xfdd0('0x1f')]({'where':{'service':!![]},'attributes':['id','name','email'],'include':[{'model':db[_0xfdd0('0x20')],'as':_0xfdd0('0x21')}]})['then'](function(_0x51ef28){if(!_0x51ef28){throw new Error(_0xfdd0('0x22'));}var _0x2fd89f={'tls':{'rejectUnauthorized':![]}};if(_0x51ef28[_0xfdd0('0x21')][_0xfdd0('0x23')]){_0x2fd89f[_0xfdd0('0x23')]=_0x51ef28['Smtp'][_0xfdd0('0x23')];}else{_0x2fd89f['host']=_0x51ef28[_0xfdd0('0x21')][_0xfdd0('0x24')];_0x2fd89f['port']=_0x51ef28['Smtp'][_0xfdd0('0x25')];_0x2fd89f['secure']=_0x51ef28[_0xfdd0('0x21')]['secure'];}if(_0x51ef28['Smtp'][_0xfdd0('0x26')]){_0x2fd89f[_0xfdd0('0x27')]={'user':_0x51ef28['Smtp'][_0xfdd0('0x12')],'pass':_0x51ef28[_0xfdd0('0x21')][_0xfdd0('0x28')]};}var _0x395f0a={'account':_0x2fd89f,'message':_['merge']({'from':util[_0xfdd0('0x29')](_0xfdd0('0x2a'),_0x51ef28[_0xfdd0('0xc')],_0x51ef28['email']||_0x51ef28[_0xfdd0('0x21')][_0xfdd0('0x12')])},_0x28c68d)};return client[_0xfdd0('0x2b')](_0xfdd0('0x2c'),_0x395f0a);})[_0xfdd0('0xb')](function(_0x25d472){if(_0x25d472[_0xfdd0('0x2d')]){throw new Error(util[_0xfdd0('0x29')](_0xfdd0('0x2e'),_0x25d472[_0xfdd0('0x2d')][_0xfdd0('0x2f')]||JSON['stringify'](_0x25d472[_0xfdd0('0x2d')])));}return!![];});}function handleError(_0x9d03fc,_0x30db62,_0x3c6fc8){return _0x9d03fc[_0xfdd0('0x30')](_0x30db62||0x1f4)[_0xfdd0('0x31')]({'message':_0x3c6fc8?_0x3c6fc8['message']||_0x3c6fc8:''});}exports[_0xfdd0('0x32')]=function(_0x1bc4c1,_0x579128,_0x1c3684){passport[_0xfdd0('0x33')](_0xfdd0('0x34'),function(_0x36c81b,_0x5076e0,_0x36dea6){var _0x495d62=_0x36c81b||_0x36dea6;if(_0x495d62){return handleError(_0x579128,0x191,_0x495d62);}if(!_0x5076e0){return handleError(_0x579128,0x194,{'message':'Something\x20went\x20wrong,\x20please\x20try\x20again.'});}else{var _0x40349b={'payload':{'id':_0x5076e0['id'],'role':_0x5076e0[_0xfdd0('0xf')]},'options':{'expiresIn':0x15180}};return authService['signToken'](_0x40349b)[_0xfdd0('0xb')](function(_0x547edf){_0x579128[_0xfdd0('0x35')]({'id':_0x5076e0['id'],'token':_0x547edf,'statusCall':'','isAlreadyLogged':_0x5076e0[_0xfdd0('0x36')]});});}})(_0x1bc4c1,_0x579128,_0x1c3684);};exports[_0xfdd0('0x37')]=function(_0x52b922,_0x2edbff,_0x1d55d5){if(!_0x52b922[_0xfdd0('0x38')][_0xfdd0('0x39')]){return handleError(_0x2edbff,0x1f4,{'message':_0xfdd0('0x3a')});}var _0x174a29=rs[_0xfdd0('0x3b')]();_0x52b922[_0xfdd0('0x38')][_0xfdd0('0x39')]=_0x52b922[_0xfdd0('0x38')][_0xfdd0('0x39')][_0xfdd0('0x3c')]()['toLowerCase']();var _0x233fcf;return db[_0xfdd0('0x8')][_0xfdd0('0x9')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0xfdd0('0x17')],'raw':!![]})['then'](function(_0x305cc8){_0x233fcf=_0x305cc8;return db[_0xfdd0('0x3d')][_0xfdd0('0x1f')]({'where':{'email':_0x52b922[_0xfdd0('0x38')][_0xfdd0('0x39')]}});})[_0xfdd0('0xb')](function(_0x3e5829){if(!_0x3e5829){throw new Error(_0xfdd0('0x3e'));}if(_0x3e5829['disabled']){throw new Error(_0xfdd0('0x3f'));}if(_0x3e5829[_0xfdd0('0x10')]){if(moment(_0x3e5829[_0xfdd0('0x18')])[_0xfdd0('0x19')](_0x233fcf[_0xfdd0('0x17')],_0xfdd0('0x1a'))>moment()){throw new Error('The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.');}else{_0x3e5829[_0xfdd0('0x10')]=![];_0x3e5829['blockedAt']=null;}}_0x3e5829['resetPasswordToken']=_0x174a29;_0x3e5829[_0xfdd0('0x40')]=Date[_0xfdd0('0x41')]()+0x36ee80;return _0x3e5829[_0xfdd0('0x42')]();})[_0xfdd0('0xb')](function(){return sendServiceMail({'to':_0x52b922[_0xfdd0('0x38')][_0xfdd0('0x39')],'subject':_0xfdd0('0x43'),'text':_0xfdd0('0x44')+_0xfdd0('0x45')+_0xfdd0('0x46')+_0x52b922[_0xfdd0('0x47')][_0xfdd0('0x24')]+_0xfdd0('0x48')+_0x174a29+'\x0a\x0a'+_0xfdd0('0x49')});})[_0xfdd0('0xb')](function(){_0x2edbff['status'](0xc8)[_0xfdd0('0x31')]({'message':_0xfdd0('0x4a')});})['catch'](function(_0x1efb20){return handleError(_0x2edbff,0x1f4,_0x1efb20);});};exports['reset']=function(_0x14e11e,_0x5415a5,_0x12ae58){return db[_0xfdd0('0x3d')][_0xfdd0('0x1f')]({'where':{'resetPasswordToken':_0x14e11e['params'][_0xfdd0('0x4b')],'resetPasswordExpires':{'$gt':Date[_0xfdd0('0x41')]()}}})[_0xfdd0('0xb')](function(_0x4ca871){if(!_0x4ca871){throw new Error(_0xfdd0('0x4c'));}return db[_0xfdd0('0x8')]['findOne']({'attributes':['id',_0xfdd0('0x4d'),_0xfdd0('0x4e'),_0xfdd0('0x4f')]})['then'](function(_0x2b8b18){if(_0x2b8b18[_0xfdd0('0x4d')])authService[_0xfdd0('0x50')](_0x14e11e[_0xfdd0('0x38')]['password']);if(!_0x2b8b18['enforcePasswordHistory']||!_0x4ca871['previousPasswords'])return _0x4ca871;authService[_0xfdd0('0x51')](_0x14e11e[_0xfdd0('0x38')]['password'],_0x4ca871[_0xfdd0('0x52')],_0x2b8b18[_0xfdd0('0x4f')]);return _0x4ca871;})[_0xfdd0('0xb')](function(){_0x4ca871[_0xfdd0('0xd')]=_0x14e11e[_0xfdd0('0x38')][_0xfdd0('0xd')];_0x4ca871[_0xfdd0('0x53')]=null;_0x4ca871[_0xfdd0('0x40')]=null;return _0x4ca871[_0xfdd0('0x42')]();});})['then'](function(){_0x5415a5[_0xfdd0('0x30')](0xc8)['send']({'message':_0xfdd0('0x54')});})['catch'](function(_0x47c16c){return handleError(_0x5415a5,0x1f4,_0x47c16c);});};passport[_0xfdd0('0x55')](new LocalStrategy({'usernameField':'name','passwordField':'password'},function(_0x34a98d,_0x23dd74,_0x4a3d47){return localAuthenticate(db[_0xfdd0('0x3d')],_0x34a98d,_0x23dd74,_0x4a3d47);}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe987=['post','forgot','/reset/:token','reset','exports','express','./authLocal.controller'];(function(_0x1ec81d,_0x25e6cd){var _0x41beb1=function(_0x16c069){while(--_0x16c069){_0x1ec81d['push'](_0x1ec81d['shift']());}};_0x41beb1(++_0x25e6cd);}(_0xe987,0x75));var _0x7e98=function(_0x37a622,_0x47ca42){_0x37a622=_0x37a622-0x0;var _0x169179=_0xe987[_0x37a622];return _0x169179;};'use strict';var express=require(_0x7e98('0x0'));var router=express['Router']();var controller=require(_0x7e98('0x1'));router[_0x7e98('0x2')]('/',controller['login']);router[_0x7e98('0x2')]('/forgot',controller[_0x7e98('0x3')]);router[_0x7e98('0x2')](_0x7e98('0x4'),controller[_0x7e98('0x5')]);module[_0x7e98('0x6')]=router;
\ No newline at end of file
+var _0xbb8b=['./authLocal.controller','post','login','/forgot','forgot','/reset/:token','reset','exports','Router'];(function(_0x756238,_0x54c84d){var _0x2a279c=function(_0x1e1588){while(--_0x1e1588){_0x756238['push'](_0x756238['shift']());}};_0x2a279c(++_0x54c84d);}(_0xbb8b,0xce));var _0xbbb8=function(_0x19bc78,_0x5ddfcd){_0x19bc78=_0x19bc78-0x0;var _0x57e35e=_0xbb8b[_0x19bc78];return _0x57e35e;};'use strict';var express=require('express');var router=express[_0xbbb8('0x0')]();var controller=require(_0xbbb8('0x1'));router[_0xbbb8('0x2')]('/',controller[_0xbbb8('0x3')]);router[_0xbbb8('0x2')](_0xbbb8('0x4'),controller[_0xbbb8('0x5')]);router[_0xbbb8('0x2')](_0xbbb8('0x6'),controller[_0xbbb8('0x7')]);module[_0xbbb8('0x8')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd5f=['STRING','sequelize','exports'];(function(_0x33d581,_0x2da6d0){var _0x3320da=function(_0x17d76a){while(--_0x17d76a){_0x33d581['push'](_0x33d581['shift']());}};_0x3320da(++_0x2da6d0);}(_0xdd5f,0x16f));var _0xfdd5=function(_0x4d8ed9,_0x2ae284){_0x4d8ed9=_0x4d8ed9-0x0;var _0x1e2140=_0xdd5f[_0x4d8ed9];return _0x1e2140;};'use strict';var Sequelize=require(_0xfdd5('0x0'));module[_0xfdd5('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'channel':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xfdd5('0x2')]},'status':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'timeout':{'type':Sequelize['INTEGER'],'defaultValue':0xa}};
\ No newline at end of file
+var _0x2a97=['sequelize','exports','STRING','BOOLEAN','INTEGER'];(function(_0xf65193,_0x30ac63){var _0x2822f9=function(_0x16427b){while(--_0x16427b){_0xf65193['push'](_0xf65193['shift']());}};_0x2822f9(++_0x30ac63);}(_0x2a97,0x136));var _0x72a9=function(_0x19c7bb,_0x34babc){_0x19c7bb=_0x19c7bb-0x0;var _0x5fb5bd=_0x2a97[_0x19c7bb];return _0x5fb5bd;};'use strict';var Sequelize=require(_0x72a9('0x0'));module[_0x72a9('0x1')]={'name':{'type':Sequelize[_0x72a9('0x2')],'allowNull':![]},'channel':{'type':Sequelize[_0x72a9('0x2')]},'description':{'type':Sequelize[_0x72a9('0x2')]},'status':{'type':Sequelize[_0x72a9('0x3')],'defaultValue':![]},'timeout':{'type':Sequelize[_0x72a9('0x4')],'defaultValue':0xa}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf07d=['count','set','Content-Range','apply','reject','update','then','destroy','sendStatus','error','stack','name','send','Automation','rawAttributes','fieldName','type','key','map','query','keys','intersection','model','attributes','fields','length','nolimit','limit','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','include','find','create','body','params','addConditions','ids','omit','getConditions','Condition','order','hasOwnProperty','addActions','Action','getActions','findOne','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','ejs','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','status','json','offset','undefined'];(function(_0xae7c2f,_0xf31e04){var _0x5d7001=function(_0x4eeadb){while(--_0x4eeadb){_0xae7c2f['push'](_0xae7c2f['shift']());}};_0x5d7001(++_0xf31e04);}(_0xf07d,0xe1));var _0xdf07=function(_0x4e7d1f,_0x2e2da8){_0x4e7d1f=_0x4e7d1f-0x0;var _0x50428f=_0xf07d[_0x4e7d1f];return _0x50428f;};'use strict';var emlformat=require(_0xdf07('0x0'));var rimraf=require(_0xdf07('0x1'));var zipdir=require(_0xdf07('0x2'));var jsonpatch=require(_0xdf07('0x3'));var rp=require(_0xdf07('0x4'));var moment=require(_0xdf07('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xdf07('0x6'));var util=require('util');var path=require(_0xdf07('0x7'));var sox=require(_0xdf07('0x8'));var csv=require('to-csv');var ejs=require(_0xdf07('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xdf07('0xa'));var squel=require(_0xdf07('0xb'));var crypto=require(_0xdf07('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xdf07('0xd'));var toCsv=require(_0xdf07('0xe'));var querystring=require(_0xdf07('0xf'));var Papa=require(_0xdf07('0x10'));var Redis=require('ioredis');var authService=require(_0xdf07('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xdf07('0x12'));var logger=require('../../config/logger')(_0xdf07('0x13'));var utils=require(_0xdf07('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xdf07('0x15'));var db=require(_0xdf07('0x16'))['db'];function respondWithStatusCode(_0x563f9f,_0x2fa18f){_0x2fa18f=_0x2fa18f||0xcc;return function(_0x54476d){if(_0x54476d){return _0x563f9f['sendStatus'](_0x2fa18f);}return _0x563f9f[_0xdf07('0x17')](_0x2fa18f)['end']();};}function respondWithResult(_0x5d4c89,_0x5b7a94){_0x5b7a94=_0x5b7a94||0xc8;return function(_0x1e0275){if(_0x1e0275){return _0x5d4c89[_0xdf07('0x17')](_0x5b7a94)[_0xdf07('0x18')](_0x1e0275);}};}function respondWithFilteredResult(_0x1f6a8f,_0x5b8ea7){return function(_0x52193f){if(_0x52193f){var _0x4bbe44=typeof _0x5b8ea7[_0xdf07('0x19')]===_0xdf07('0x1a')&&typeof _0x5b8ea7['limit']===_0xdf07('0x1a');var _0x1aa71c=_0x52193f[_0xdf07('0x1b')];var _0x56178c=_0x4bbe44?0x0:_0x5b8ea7[_0xdf07('0x19')];var _0x612bd0=_0x4bbe44?_0x52193f['count']:_0x5b8ea7[_0xdf07('0x19')]+_0x5b8ea7['limit'];var _0x5ebcb3;if(_0x612bd0>=_0x1aa71c){_0x612bd0=_0x1aa71c;_0x5ebcb3=0xc8;}else{_0x5ebcb3=0xce;}_0x1f6a8f[_0xdf07('0x17')](_0x5ebcb3);return _0x1f6a8f[_0xdf07('0x1c')](_0xdf07('0x1d'),_0x56178c+'-'+_0x612bd0+'/'+_0x1aa71c)[_0xdf07('0x18')](_0x52193f);}return null;};}function patchUpdates(_0x2ee6df){return function(_0x5b33d3){try{jsonpatch[_0xdf07('0x1e')](_0x5b33d3,_0x2ee6df,!![]);}catch(_0x1f4ef3){return BPromise[_0xdf07('0x1f')](_0x1f4ef3);}return _0x5b33d3['save']();};}function saveUpdates(_0xf2e1a8,_0x599651){return function(_0x513831){if(_0x513831){return _0x513831[_0xdf07('0x20')](_0xf2e1a8)[_0xdf07('0x21')](function(_0x1c4f59){return _0x1c4f59;});}return null;};}function removeEntity(_0x1bcdae,_0x7087f2){return function(_0x30b107){if(_0x30b107){return _0x30b107[_0xdf07('0x22')]()[_0xdf07('0x21')](function(){_0x1bcdae[_0xdf07('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x56ea84,_0x15f4e5){return function(_0x2b412a){if(!_0x2b412a){_0x56ea84[_0xdf07('0x23')](0x194);}return _0x2b412a;};}function handleError(_0x36e53d,_0x24dfaf){_0x24dfaf=_0x24dfaf||0x1f4;return function(_0x6994fd){logger[_0xdf07('0x24')](_0x6994fd[_0xdf07('0x25')]);if(_0x6994fd[_0xdf07('0x26')]){delete _0x6994fd[_0xdf07('0x26')];}_0x36e53d[_0xdf07('0x17')](_0x24dfaf)[_0xdf07('0x27')](_0x6994fd);};}exports['index']=function(_0x3f57a9,_0x13d9d9){var _0x528b94={},_0xc56d10={},_0x2c3d8d={'count':0x0,'rows':[]};var _0x1bfe78=_['map'](db[_0xdf07('0x28')][_0xdf07('0x29')],function(_0xbe2264){return{'name':_0xbe2264[_0xdf07('0x2a')],'type':_0xbe2264[_0xdf07('0x2b')][_0xdf07('0x2c')]};});_0xc56d10['model']=_[_0xdf07('0x2d')](_0x1bfe78,_0xdf07('0x26'));_0xc56d10[_0xdf07('0x2e')]=_[_0xdf07('0x2f')](_0x3f57a9[_0xdf07('0x2e')]);_0xc56d10['filters']=_[_0xdf07('0x30')](_0xc56d10[_0xdf07('0x31')],_0xc56d10[_0xdf07('0x2e')]);_0x528b94[_0xdf07('0x32')]=_[_0xdf07('0x30')](_0xc56d10[_0xdf07('0x31')],qs[_0xdf07('0x33')](_0x3f57a9[_0xdf07('0x2e')][_0xdf07('0x33')]));_0x528b94[_0xdf07('0x32')]=_0x528b94[_0xdf07('0x32')][_0xdf07('0x34')]?_0x528b94[_0xdf07('0x32')]:_0xc56d10[_0xdf07('0x31')];if(!_0x3f57a9[_0xdf07('0x2e')]['hasOwnProperty'](_0xdf07('0x35'))){_0x528b94[_0xdf07('0x36')]=qs[_0xdf07('0x36')](_0x3f57a9[_0xdf07('0x2e')][_0xdf07('0x36')]);_0x528b94['offset']=qs[_0xdf07('0x19')](_0x3f57a9[_0xdf07('0x2e')]['offset']);}_0x528b94['order']=qs[_0xdf07('0x37')](_0x3f57a9[_0xdf07('0x2e')][_0xdf07('0x37')]);_0x528b94[_0xdf07('0x38')]=qs[_0xdf07('0x39')](_[_0xdf07('0x3a')](_0x3f57a9[_0xdf07('0x2e')],_0xc56d10['filters']),_0x1bfe78);if(_0x3f57a9[_0xdf07('0x2e')][_0xdf07('0x3b')]){_0x528b94[_0xdf07('0x38')]=_[_0xdf07('0x3c')](_0x528b94[_0xdf07('0x38')],{'$or':_[_0xdf07('0x2d')](_0x1bfe78,function(_0x332d9f){if(_0x332d9f['type']!==_0xdf07('0x3d')){var _0x16fa91={};_0x16fa91[_0x332d9f['name']]={'$like':'%'+_0x3f57a9[_0xdf07('0x2e')][_0xdf07('0x3b')]+'%'};return _0x16fa91;}})});}_0x528b94=_[_0xdf07('0x3c')]({},_0x528b94,_0x3f57a9[_0xdf07('0x3e')]);var _0x3596b6={'where':_0x528b94[_0xdf07('0x38')]};return db[_0xdf07('0x28')][_0xdf07('0x1b')](_0x3596b6)['then'](function(_0x753059){_0x2c3d8d['count']=_0x753059;if(_0x3f57a9['query'][_0xdf07('0x3f')]){_0x528b94['include']=[{'all':!![]}];}return db[_0xdf07('0x28')][_0xdf07('0x40')](_0x528b94);})[_0xdf07('0x21')](function(_0x416a46){_0x2c3d8d[_0xdf07('0x41')]=_0x416a46;return _0x2c3d8d;})[_0xdf07('0x21')](respondWithFilteredResult(_0x13d9d9,_0x528b94))[_0xdf07('0x42')](handleError(_0x13d9d9,null));};exports[_0xdf07('0x43')]=function(_0x37fa02,_0x4fcfee){var _0x57e23e={'raw':![],'where':{'id':_0x37fa02['params']['id']}},_0x39e650={};_0x39e650[_0xdf07('0x31')]=_['keys'](db['Automation'][_0xdf07('0x29')]);_0x39e650[_0xdf07('0x2e')]=_[_0xdf07('0x2f')](_0x37fa02[_0xdf07('0x2e')]);_0x39e650[_0xdf07('0x39')]=_[_0xdf07('0x30')](_0x39e650['model'],_0x39e650['query']);_0x57e23e[_0xdf07('0x32')]=_['intersection'](_0x39e650['model'],qs[_0xdf07('0x33')](_0x37fa02[_0xdf07('0x2e')][_0xdf07('0x33')]));_0x57e23e['attributes']=_0x57e23e[_0xdf07('0x32')][_0xdf07('0x34')]?_0x57e23e['attributes']:_0x39e650[_0xdf07('0x31')];if(_0x37fa02[_0xdf07('0x2e')]['includeAll']){_0x57e23e[_0xdf07('0x44')]=[{'all':!![]}];}_0x57e23e=_[_0xdf07('0x3c')]({},_0x57e23e,_0x37fa02[_0xdf07('0x3e')]);return db[_0xdf07('0x28')][_0xdf07('0x45')](_0x57e23e)[_0xdf07('0x21')](handleEntityNotFound(_0x4fcfee,null))[_0xdf07('0x21')](respondWithResult(_0x4fcfee,null))['catch'](handleError(_0x4fcfee,null));};exports[_0xdf07('0x46')]=function(_0x5662b4,_0x454517){return db['Automation']['create'](_0x5662b4[_0xdf07('0x47')],{})['then'](respondWithResult(_0x454517,0xc9))[_0xdf07('0x42')](handleError(_0x454517,null));};exports[_0xdf07('0x20')]=function(_0x12227c,_0x4bcf8a){if(_0x12227c[_0xdf07('0x47')]['id']){delete _0x12227c[_0xdf07('0x47')]['id'];}return db[_0xdf07('0x28')][_0xdf07('0x45')]({'where':{'id':_0x12227c[_0xdf07('0x48')]['id']}})[_0xdf07('0x21')](handleEntityNotFound(_0x4bcf8a,null))[_0xdf07('0x21')](saveUpdates(_0x12227c[_0xdf07('0x47')],null))[_0xdf07('0x21')](respondWithResult(_0x4bcf8a,null))[_0xdf07('0x42')](handleError(_0x4bcf8a,null));};exports[_0xdf07('0x22')]=function(_0x37039c,_0x55cc01){return db['Automation'][_0xdf07('0x45')]({'where':{'id':_0x37039c[_0xdf07('0x48')]['id']}})[_0xdf07('0x21')](handleEntityNotFound(_0x55cc01,null))[_0xdf07('0x21')](removeEntity(_0x55cc01,null))[_0xdf07('0x42')](handleError(_0x55cc01,null));};exports[_0xdf07('0x49')]=function(_0x2df68d,_0x3526e7,_0x355ec6){return db['Condition'][_0xdf07('0x45')]({'where':{'id':_0x2df68d[_0xdf07('0x48')]['id']}})['then'](handleEntityNotFound(_0x3526e7,null))[_0xdf07('0x21')](function(_0x5888ef){if(_0x5888ef){return _0x5888ef[_0xdf07('0x49')](_0x2df68d[_0xdf07('0x47')][_0xdf07('0x4a')],_[_0xdf07('0x4b')](_0x2df68d[_0xdf07('0x47')],[_0xdf07('0x4a'),'id'])||{});}})[_0xdf07('0x21')](respondWithResult(_0x3526e7,null))[_0xdf07('0x42')](handleError(_0x3526e7,null));};exports[_0xdf07('0x4c')]=function(_0x1735a3,_0x11b003,_0xe19384){var _0x59bf50={};var _0x18ef17={};var _0x1fe65c;var _0x3138c9;return db['Automation']['findOne']({'where':{'id':_0x1735a3[_0xdf07('0x48')]['id']}})[_0xdf07('0x21')](handleEntityNotFound(_0x11b003,null))[_0xdf07('0x21')](function(_0x55a9b1){if(_0x55a9b1){_0x1fe65c=_0x55a9b1;_0x18ef17[_0xdf07('0x31')]=_[_0xdf07('0x2f')](db[_0xdf07('0x4d')][_0xdf07('0x29')]);_0x18ef17['query']=_['keys'](_0x1735a3['query']);_0x18ef17[_0xdf07('0x39')]=_[_0xdf07('0x30')](_0x18ef17[_0xdf07('0x31')],_0x18ef17['query']);_0x59bf50[_0xdf07('0x32')]=_[_0xdf07('0x30')](_0x18ef17[_0xdf07('0x31')],qs[_0xdf07('0x33')](_0x1735a3[_0xdf07('0x2e')][_0xdf07('0x33')]));_0x59bf50[_0xdf07('0x32')]=_0x59bf50[_0xdf07('0x32')]['length']?_0x59bf50[_0xdf07('0x32')]:_0x18ef17[_0xdf07('0x31')];_0x59bf50[_0xdf07('0x4e')]=qs[_0xdf07('0x37')](_0x1735a3[_0xdf07('0x2e')]['sort']);_0x59bf50[_0xdf07('0x38')]=qs[_0xdf07('0x39')](_['pick'](_0x1735a3[_0xdf07('0x2e')],_0x18ef17[_0xdf07('0x39')]));if(_0x1735a3[_0xdf07('0x2e')]['filter']){_0x59bf50['where']=_[_0xdf07('0x3c')](_0x59bf50[_0xdf07('0x38')],{'$or':_[_0xdf07('0x2d')](_0x59bf50['attributes'],function(_0x2dd2da){var _0x17b540={};_0x17b540[_0x2dd2da]={'$like':'%'+_0x1735a3[_0xdf07('0x2e')][_0xdf07('0x3b')]+'%'};return _0x17b540;})});}_0x59bf50=_[_0xdf07('0x3c')]({},_0x59bf50,_0x1735a3[_0xdf07('0x3e')]);return _0x1fe65c['getConditions'](_0x59bf50);}})[_0xdf07('0x21')](function(_0x56be75){if(_0x56be75){_0x3138c9=_0x56be75['length'];if(!_0x1735a3[_0xdf07('0x2e')][_0xdf07('0x4f')]('nolimit')){_0x59bf50[_0xdf07('0x36')]=qs[_0xdf07('0x36')](_0x1735a3[_0xdf07('0x2e')][_0xdf07('0x36')]);_0x59bf50[_0xdf07('0x19')]=qs['offset'](_0x1735a3[_0xdf07('0x2e')][_0xdf07('0x19')]);}return _0x1fe65c[_0xdf07('0x4c')](_0x59bf50);}})[_0xdf07('0x21')](function(_0x335730){if(_0x335730){return _0x335730?{'count':_0x3138c9,'rows':_0x335730}:null;}})[_0xdf07('0x21')](respondWithResult(_0x11b003,null))['catch'](handleError(_0x11b003,null));};exports[_0xdf07('0x50')]=function(_0x1cb6ef,_0xe85501,_0xf6a08a){return db[_0xdf07('0x51')][_0xdf07('0x45')]({'where':{'id':_0x1cb6ef[_0xdf07('0x48')]['id']}})[_0xdf07('0x21')](handleEntityNotFound(_0xe85501,null))[_0xdf07('0x21')](function(_0x2cdb14){if(_0x2cdb14){return _0x2cdb14[_0xdf07('0x50')](_0x1cb6ef[_0xdf07('0x47')][_0xdf07('0x4a')],_[_0xdf07('0x4b')](_0x1cb6ef[_0xdf07('0x47')],[_0xdf07('0x4a'),'id'])||{});}})[_0xdf07('0x21')](respondWithResult(_0xe85501,null))[_0xdf07('0x42')](handleError(_0xe85501,null));};exports[_0xdf07('0x52')]=function(_0x28a319,_0x4f3d8b,_0x8bf1af){var _0x488f40={};var _0xcc9583={};var _0x1a4df6;var _0x149cc1;return db[_0xdf07('0x28')][_0xdf07('0x53')]({'where':{'id':_0x28a319[_0xdf07('0x48')]['id']}})['then'](handleEntityNotFound(_0x4f3d8b,null))['then'](function(_0x2e8b5f){if(_0x2e8b5f){_0x1a4df6=_0x2e8b5f;_0xcc9583[_0xdf07('0x31')]=_[_0xdf07('0x2f')](db[_0xdf07('0x51')]['rawAttributes']);_0xcc9583[_0xdf07('0x2e')]=_[_0xdf07('0x2f')](_0x28a319[_0xdf07('0x2e')]);_0xcc9583[_0xdf07('0x39')]=_[_0xdf07('0x30')](_0xcc9583[_0xdf07('0x31')],_0xcc9583[_0xdf07('0x2e')]);_0x488f40[_0xdf07('0x32')]=_[_0xdf07('0x30')](_0xcc9583[_0xdf07('0x31')],qs[_0xdf07('0x33')](_0x28a319['query']['fields']));_0x488f40[_0xdf07('0x32')]=_0x488f40[_0xdf07('0x32')]['length']?_0x488f40[_0xdf07('0x32')]:_0xcc9583[_0xdf07('0x31')];_0x488f40[_0xdf07('0x4e')]=qs['sort'](_0x28a319['query'][_0xdf07('0x37')]);_0x488f40[_0xdf07('0x38')]=qs[_0xdf07('0x39')](_[_0xdf07('0x3a')](_0x28a319[_0xdf07('0x2e')],_0xcc9583[_0xdf07('0x39')]));if(_0x28a319[_0xdf07('0x2e')]['filter']){_0x488f40['where']=_[_0xdf07('0x3c')](_0x488f40[_0xdf07('0x38')],{'$or':_[_0xdf07('0x2d')](_0x488f40['attributes'],function(_0x2ad4c5){var _0x47045d={};_0x47045d[_0x2ad4c5]={'$like':'%'+_0x28a319[_0xdf07('0x2e')][_0xdf07('0x3b')]+'%'};return _0x47045d;})});}_0x488f40=_['merge']({},_0x488f40,_0x28a319[_0xdf07('0x3e')]);return _0x1a4df6[_0xdf07('0x52')](_0x488f40);}})[_0xdf07('0x21')](function(_0x57a7d9){if(_0x57a7d9){_0x149cc1=_0x57a7d9['length'];if(!_0x28a319[_0xdf07('0x2e')]['hasOwnProperty'](_0xdf07('0x35'))){_0x488f40[_0xdf07('0x36')]=qs[_0xdf07('0x36')](_0x28a319[_0xdf07('0x2e')][_0xdf07('0x36')]);_0x488f40[_0xdf07('0x19')]=qs[_0xdf07('0x19')](_0x28a319[_0xdf07('0x2e')][_0xdf07('0x19')]);}return _0x1a4df6['getActions'](_0x488f40);}})[_0xdf07('0x21')](function(_0x56e5a3){if(_0x56e5a3){return _0x56e5a3?{'count':_0x149cc1,'rows':_0x56e5a3}:null;}})[_0xdf07('0x21')](respondWithResult(_0x4f3d8b,null))[_0xdf07('0x42')](handleError(_0x4f3d8b,null));};
\ No newline at end of file
+var _0xe997=['params','includeAll','find','create','body','addConditions','Condition','ids','omit','getConditions','options','Action','addActions','findOne','getActions','eml-format','fast-json-patch','request-promise','moment','mustache','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','end','json','offset','undefined','limit','count','status','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','rawAttributes','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filters','map','type','filter','merge','include','Automation','findAll','catch'];(function(_0x18e8c8,_0x5b6b81){var _0x1fa76e=function(_0x369790){while(--_0x369790){_0x18e8c8['push'](_0x18e8c8['shift']());}};_0x1fa76e(++_0x5b6b81);}(_0xe997,0xb1));var _0x7e99=function(_0x9791f9,_0x3b4236){_0x9791f9=_0x9791f9-0x0;var _0x5519b8=_0xe997[_0x9791f9];return _0x5519b8;};'use strict';var emlformat=require(_0x7e99('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x7e99('0x1'));var rp=require(_0x7e99('0x2'));var moment=require(_0x7e99('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x7e99('0x4'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x7e99('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7e99('0x6'));var _=require(_0x7e99('0x7'));var squel=require(_0x7e99('0x8'));var crypto=require(_0x7e99('0x9'));var jsforce=require(_0x7e99('0xa'));var deskjs=require(_0x7e99('0xb'));var toCsv=require('to-csv');var querystring=require(_0x7e99('0xc'));var Papa=require('papaparse');var Redis=require(_0x7e99('0xd'));var authService=require(_0x7e99('0xe'));var qs=require(_0x7e99('0xf'));var as=require(_0x7e99('0x10'));var hardwareService=require(_0x7e99('0x11'));var logger=require(_0x7e99('0x12'))(_0x7e99('0x13'));var utils=require(_0x7e99('0x14'));var config=require(_0x7e99('0x15'));var licenseUtil=require(_0x7e99('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x12385c,_0x2970dd){_0x2970dd=_0x2970dd||0xcc;return function(_0x5c1d29){if(_0x5c1d29){return _0x12385c[_0x7e99('0x17')](_0x2970dd);}return _0x12385c['status'](_0x2970dd)[_0x7e99('0x18')]();};}function respondWithResult(_0x267856,_0xa07a89){_0xa07a89=_0xa07a89||0xc8;return function(_0x5957d2){if(_0x5957d2){return _0x267856['status'](_0xa07a89)[_0x7e99('0x19')](_0x5957d2);}};}function respondWithFilteredResult(_0x4cdce0,_0x54cfe1){return function(_0x15029a){if(_0x15029a){var _0x503519=typeof _0x54cfe1[_0x7e99('0x1a')]===_0x7e99('0x1b')&&typeof _0x54cfe1[_0x7e99('0x1c')]===_0x7e99('0x1b');var _0x41432e=_0x15029a[_0x7e99('0x1d')];var _0x46d67a=_0x503519?0x0:_0x54cfe1[_0x7e99('0x1a')];var _0x2993fc=_0x503519?_0x15029a[_0x7e99('0x1d')]:_0x54cfe1[_0x7e99('0x1a')]+_0x54cfe1[_0x7e99('0x1c')];var _0x284f3a;if(_0x2993fc>=_0x41432e){_0x2993fc=_0x41432e;_0x284f3a=0xc8;}else{_0x284f3a=0xce;}_0x4cdce0[_0x7e99('0x1e')](_0x284f3a);return _0x4cdce0[_0x7e99('0x1f')](_0x7e99('0x20'),_0x46d67a+'-'+_0x2993fc+'/'+_0x41432e)[_0x7e99('0x19')](_0x15029a);}return null;};}function patchUpdates(_0x11e964){return function(_0x3c5f02){try{jsonpatch[_0x7e99('0x21')](_0x3c5f02,_0x11e964,!![]);}catch(_0x221832){return BPromise[_0x7e99('0x22')](_0x221832);}return _0x3c5f02[_0x7e99('0x23')]();};}function saveUpdates(_0x2ac565,_0x298f56){return function(_0x51e400){if(_0x51e400){return _0x51e400[_0x7e99('0x24')](_0x2ac565)[_0x7e99('0x25')](function(_0x3cb72b){return _0x3cb72b;});}return null;};}function removeEntity(_0x590041,_0x23e1a8){return function(_0x3e787a){if(_0x3e787a){return _0x3e787a[_0x7e99('0x26')]()['then'](function(){_0x590041[_0x7e99('0x1e')](0xcc)[_0x7e99('0x18')]();});}};}function handleEntityNotFound(_0x322b3c,_0x2ab068){return function(_0x4761d7){if(!_0x4761d7){_0x322b3c[_0x7e99('0x17')](0x194);}return _0x4761d7;};}function handleError(_0x3513a7,_0x689f9e){_0x689f9e=_0x689f9e||0x1f4;return function(_0x35fa34){logger[_0x7e99('0x27')](_0x35fa34[_0x7e99('0x28')]);if(_0x35fa34[_0x7e99('0x29')]){delete _0x35fa34[_0x7e99('0x29')];}_0x3513a7[_0x7e99('0x1e')](_0x689f9e)[_0x7e99('0x2a')](_0x35fa34);};}exports['index']=function(_0x322a68,_0x11e76c){var _0x3e470a={},_0x278558={},_0x4f7a1c={'count':0x0,'rows':[]};var _0x45448a=_['map'](db['Automation'][_0x7e99('0x2b')],function(_0xba193a){return{'name':_0xba193a['fieldName'],'type':_0xba193a['type'][_0x7e99('0x2c')]};});_0x278558[_0x7e99('0x2d')]=_['map'](_0x45448a,_0x7e99('0x29'));_0x278558[_0x7e99('0x2e')]=_[_0x7e99('0x2f')](_0x322a68[_0x7e99('0x2e')]);_0x278558['filters']=_[_0x7e99('0x30')](_0x278558[_0x7e99('0x2d')],_0x278558['query']);_0x3e470a[_0x7e99('0x31')]=_[_0x7e99('0x30')](_0x278558[_0x7e99('0x2d')],qs[_0x7e99('0x32')](_0x322a68['query'][_0x7e99('0x32')]));_0x3e470a[_0x7e99('0x31')]=_0x3e470a['attributes'][_0x7e99('0x33')]?_0x3e470a[_0x7e99('0x31')]:_0x278558['model'];if(!_0x322a68[_0x7e99('0x2e')][_0x7e99('0x34')]('nolimit')){_0x3e470a['limit']=qs['limit'](_0x322a68['query'][_0x7e99('0x1c')]);_0x3e470a['offset']=qs[_0x7e99('0x1a')](_0x322a68['query'][_0x7e99('0x1a')]);}_0x3e470a[_0x7e99('0x35')]=qs[_0x7e99('0x36')](_0x322a68[_0x7e99('0x2e')][_0x7e99('0x36')]);_0x3e470a[_0x7e99('0x37')]=qs['filters'](_[_0x7e99('0x38')](_0x322a68[_0x7e99('0x2e')],_0x278558[_0x7e99('0x39')]),_0x45448a);if(_0x322a68[_0x7e99('0x2e')]['filter']){_0x3e470a[_0x7e99('0x37')]=_['merge'](_0x3e470a[_0x7e99('0x37')],{'$or':_[_0x7e99('0x3a')](_0x45448a,function(_0x12c7d6){if(_0x12c7d6[_0x7e99('0x3b')]!=='VIRTUAL'){var _0x34f5ac={};_0x34f5ac[_0x12c7d6[_0x7e99('0x29')]]={'$like':'%'+_0x322a68[_0x7e99('0x2e')][_0x7e99('0x3c')]+'%'};return _0x34f5ac;}})});}_0x3e470a=_[_0x7e99('0x3d')]({},_0x3e470a,_0x322a68['options']);var _0x23c430={'where':_0x3e470a[_0x7e99('0x37')]};return db['Automation'][_0x7e99('0x1d')](_0x23c430)[_0x7e99('0x25')](function(_0x5dc661){_0x4f7a1c[_0x7e99('0x1d')]=_0x5dc661;if(_0x322a68[_0x7e99('0x2e')]['includeAll']){_0x3e470a[_0x7e99('0x3e')]=[{'all':!![]}];}return db[_0x7e99('0x3f')][_0x7e99('0x40')](_0x3e470a);})['then'](function(_0x28c616){_0x4f7a1c['rows']=_0x28c616;return _0x4f7a1c;})['then'](respondWithFilteredResult(_0x11e76c,_0x3e470a))[_0x7e99('0x41')](handleError(_0x11e76c,null));};exports['show']=function(_0x1c12e3,_0x2c9c93){var _0x46f159={'raw':![],'where':{'id':_0x1c12e3[_0x7e99('0x42')]['id']}},_0x5c73c8={};_0x5c73c8[_0x7e99('0x2d')]=_['keys'](db['Automation'][_0x7e99('0x2b')]);_0x5c73c8['query']=_[_0x7e99('0x2f')](_0x1c12e3[_0x7e99('0x2e')]);_0x5c73c8[_0x7e99('0x39')]=_[_0x7e99('0x30')](_0x5c73c8[_0x7e99('0x2d')],_0x5c73c8['query']);_0x46f159['attributes']=_['intersection'](_0x5c73c8[_0x7e99('0x2d')],qs[_0x7e99('0x32')](_0x1c12e3['query'][_0x7e99('0x32')]));_0x46f159['attributes']=_0x46f159[_0x7e99('0x31')][_0x7e99('0x33')]?_0x46f159['attributes']:_0x5c73c8[_0x7e99('0x2d')];if(_0x1c12e3[_0x7e99('0x2e')][_0x7e99('0x43')]){_0x46f159[_0x7e99('0x3e')]=[{'all':!![]}];}_0x46f159=_['merge']({},_0x46f159,_0x1c12e3['options']);return db['Automation'][_0x7e99('0x44')](_0x46f159)[_0x7e99('0x25')](handleEntityNotFound(_0x2c9c93,null))[_0x7e99('0x25')](respondWithResult(_0x2c9c93,null))[_0x7e99('0x41')](handleError(_0x2c9c93,null));};exports['create']=function(_0x1c55c0,_0x4abbb4){return db['Automation'][_0x7e99('0x45')](_0x1c55c0[_0x7e99('0x46')],{})['then'](respondWithResult(_0x4abbb4,0xc9))[_0x7e99('0x41')](handleError(_0x4abbb4,null));};exports['update']=function(_0x454efd,_0x29915e){if(_0x454efd[_0x7e99('0x46')]['id']){delete _0x454efd['body']['id'];}return db[_0x7e99('0x3f')][_0x7e99('0x44')]({'where':{'id':_0x454efd[_0x7e99('0x42')]['id']}})[_0x7e99('0x25')](handleEntityNotFound(_0x29915e,null))['then'](saveUpdates(_0x454efd[_0x7e99('0x46')],null))['then'](respondWithResult(_0x29915e,null))[_0x7e99('0x41')](handleError(_0x29915e,null));};exports[_0x7e99('0x26')]=function(_0x101e3e,_0x2b2ff9){return db[_0x7e99('0x3f')][_0x7e99('0x44')]({'where':{'id':_0x101e3e[_0x7e99('0x42')]['id']}})[_0x7e99('0x25')](handleEntityNotFound(_0x2b2ff9,null))[_0x7e99('0x25')](removeEntity(_0x2b2ff9,null))['catch'](handleError(_0x2b2ff9,null));};exports[_0x7e99('0x47')]=function(_0x225f85,_0x489513,_0x13675e){return db[_0x7e99('0x48')][_0x7e99('0x44')]({'where':{'id':_0x225f85[_0x7e99('0x42')]['id']}})[_0x7e99('0x25')](handleEntityNotFound(_0x489513,null))['then'](function(_0xcfb57f){if(_0xcfb57f){return _0xcfb57f[_0x7e99('0x47')](_0x225f85['body'][_0x7e99('0x49')],_[_0x7e99('0x4a')](_0x225f85[_0x7e99('0x46')],[_0x7e99('0x49'),'id'])||{});}})['then'](respondWithResult(_0x489513,null))[_0x7e99('0x41')](handleError(_0x489513,null));};exports[_0x7e99('0x4b')]=function(_0x1d43e4,_0x15b625,_0x22d86c){var _0x1df983={};var _0x4c32ff={};var _0x52a2e5;var _0x3ea5d4;return db[_0x7e99('0x3f')]['findOne']({'where':{'id':_0x1d43e4[_0x7e99('0x42')]['id']}})[_0x7e99('0x25')](handleEntityNotFound(_0x15b625,null))[_0x7e99('0x25')](function(_0xa18908){if(_0xa18908){_0x52a2e5=_0xa18908;_0x4c32ff[_0x7e99('0x2d')]=_[_0x7e99('0x2f')](db[_0x7e99('0x48')][_0x7e99('0x2b')]);_0x4c32ff[_0x7e99('0x2e')]=_[_0x7e99('0x2f')](_0x1d43e4[_0x7e99('0x2e')]);_0x4c32ff[_0x7e99('0x39')]=_[_0x7e99('0x30')](_0x4c32ff['model'],_0x4c32ff[_0x7e99('0x2e')]);_0x1df983[_0x7e99('0x31')]=_['intersection'](_0x4c32ff[_0x7e99('0x2d')],qs[_0x7e99('0x32')](_0x1d43e4[_0x7e99('0x2e')]['fields']));_0x1df983[_0x7e99('0x31')]=_0x1df983['attributes']['length']?_0x1df983[_0x7e99('0x31')]:_0x4c32ff['model'];_0x1df983[_0x7e99('0x35')]=qs[_0x7e99('0x36')](_0x1d43e4['query']['sort']);_0x1df983[_0x7e99('0x37')]=qs[_0x7e99('0x39')](_[_0x7e99('0x38')](_0x1d43e4[_0x7e99('0x2e')],_0x4c32ff[_0x7e99('0x39')]));if(_0x1d43e4[_0x7e99('0x2e')]['filter']){_0x1df983[_0x7e99('0x37')]=_[_0x7e99('0x3d')](_0x1df983[_0x7e99('0x37')],{'$or':_['map'](_0x1df983[_0x7e99('0x31')],function(_0x2954c3){var _0x143b33={};_0x143b33[_0x2954c3]={'$like':'%'+_0x1d43e4[_0x7e99('0x2e')]['filter']+'%'};return _0x143b33;})});}_0x1df983=_['merge']({},_0x1df983,_0x1d43e4[_0x7e99('0x4c')]);return _0x52a2e5[_0x7e99('0x4b')](_0x1df983);}})[_0x7e99('0x25')](function(_0x6ee69){if(_0x6ee69){_0x3ea5d4=_0x6ee69[_0x7e99('0x33')];if(!_0x1d43e4['query'][_0x7e99('0x34')]('nolimit')){_0x1df983['limit']=qs[_0x7e99('0x1c')](_0x1d43e4[_0x7e99('0x2e')][_0x7e99('0x1c')]);_0x1df983[_0x7e99('0x1a')]=qs[_0x7e99('0x1a')](_0x1d43e4[_0x7e99('0x2e')][_0x7e99('0x1a')]);}return _0x52a2e5[_0x7e99('0x4b')](_0x1df983);}})['then'](function(_0x4400dc){if(_0x4400dc){return _0x4400dc?{'count':_0x3ea5d4,'rows':_0x4400dc}:null;}})[_0x7e99('0x25')](respondWithResult(_0x15b625,null))[_0x7e99('0x41')](handleError(_0x15b625,null));};exports['addActions']=function(_0x50b2c5,_0x568641,_0x31fc58){return db[_0x7e99('0x4d')]['find']({'where':{'id':_0x50b2c5[_0x7e99('0x42')]['id']}})[_0x7e99('0x25')](handleEntityNotFound(_0x568641,null))[_0x7e99('0x25')](function(_0x4faf65){if(_0x4faf65){return _0x4faf65[_0x7e99('0x4e')](_0x50b2c5[_0x7e99('0x46')]['ids'],_[_0x7e99('0x4a')](_0x50b2c5[_0x7e99('0x46')],[_0x7e99('0x49'),'id'])||{});}})['then'](respondWithResult(_0x568641,null))[_0x7e99('0x41')](handleError(_0x568641,null));};exports['getActions']=function(_0x3a6d58,_0x30afd8,_0x420360){var _0x39fdf6={};var _0x56f908={};var _0x127fa8;var _0x5196df;return db[_0x7e99('0x3f')][_0x7e99('0x4f')]({'where':{'id':_0x3a6d58[_0x7e99('0x42')]['id']}})[_0x7e99('0x25')](handleEntityNotFound(_0x30afd8,null))[_0x7e99('0x25')](function(_0xb372d9){if(_0xb372d9){_0x127fa8=_0xb372d9;_0x56f908[_0x7e99('0x2d')]=_[_0x7e99('0x2f')](db[_0x7e99('0x4d')][_0x7e99('0x2b')]);_0x56f908['query']=_[_0x7e99('0x2f')](_0x3a6d58[_0x7e99('0x2e')]);_0x56f908[_0x7e99('0x39')]=_[_0x7e99('0x30')](_0x56f908[_0x7e99('0x2d')],_0x56f908[_0x7e99('0x2e')]);_0x39fdf6[_0x7e99('0x31')]=_['intersection'](_0x56f908['model'],qs[_0x7e99('0x32')](_0x3a6d58[_0x7e99('0x2e')][_0x7e99('0x32')]));_0x39fdf6[_0x7e99('0x31')]=_0x39fdf6['attributes']['length']?_0x39fdf6['attributes']:_0x56f908[_0x7e99('0x2d')];_0x39fdf6[_0x7e99('0x35')]=qs[_0x7e99('0x36')](_0x3a6d58[_0x7e99('0x2e')][_0x7e99('0x36')]);_0x39fdf6[_0x7e99('0x37')]=qs[_0x7e99('0x39')](_[_0x7e99('0x38')](_0x3a6d58[_0x7e99('0x2e')],_0x56f908['filters']));if(_0x3a6d58[_0x7e99('0x2e')][_0x7e99('0x3c')]){_0x39fdf6[_0x7e99('0x37')]=_[_0x7e99('0x3d')](_0x39fdf6['where'],{'$or':_[_0x7e99('0x3a')](_0x39fdf6[_0x7e99('0x31')],function(_0x4875a3){var _0x2ca0a6={};_0x2ca0a6[_0x4875a3]={'$like':'%'+_0x3a6d58['query'][_0x7e99('0x3c')]+'%'};return _0x2ca0a6;})});}_0x39fdf6=_[_0x7e99('0x3d')]({},_0x39fdf6,_0x3a6d58['options']);return _0x127fa8[_0x7e99('0x50')](_0x39fdf6);}})['then'](function(_0x1316c6){if(_0x1316c6){_0x5196df=_0x1316c6[_0x7e99('0x33')];if(!_0x3a6d58['query'][_0x7e99('0x34')]('nolimit')){_0x39fdf6[_0x7e99('0x1c')]=qs[_0x7e99('0x1c')](_0x3a6d58[_0x7e99('0x2e')]['limit']);_0x39fdf6[_0x7e99('0x1a')]=qs[_0x7e99('0x1a')](_0x3a6d58[_0x7e99('0x2e')][_0x7e99('0x1a')]);}return _0x127fa8[_0x7e99('0x50')](_0x39fdf6);}})[_0x7e99('0x25')](function(_0xb389eb){if(_0xb389eb){return _0xb389eb?{'count':_0x5196df,'rows':_0xb389eb}:null;}})[_0x7e99('0x25')](respondWithResult(_0x30afd8,null))[_0x7e99('0x41')](handleError(_0x30afd8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad07=['../../config/environment','./automation.attributes','exports','Automation','tools_automations','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x2a7481,_0x192a1b){var _0x1dc10e=function(_0x1b0208){while(--_0x1b0208){_0x2a7481['push'](_0x2a7481['shift']());}};_0x1dc10e(++_0x192a1b);}(_0xad07,0x144));var _0x7ad0=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xad07[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x7ad0('0x0'));var util=require(_0x7ad0('0x1'));var logger=require(_0x7ad0('0x2'))(_0x7ad0('0x3'));var moment=require(_0x7ad0('0x4'));var BPromise=require(_0x7ad0('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x7ad0('0x6'));var attributes=require(_0x7ad0('0x7'));module[_0x7ad0('0x8')]=function(_0x368749,_0xb8264a){return _0x368749['define'](_0x7ad0('0x9'),attributes,{'tableName':_0x7ad0('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa2f9=['moment','bluebird','request-promise','rimraf','./automation.attributes','exports','define','tools_automations','lodash','../../config/logger','api'];(function(_0x17c3d9,_0xdbe6df){var _0x5898a4=function(_0x4f982c){while(--_0x4f982c){_0x17c3d9['push'](_0x17c3d9['shift']());}};_0x5898a4(++_0xdbe6df);}(_0xa2f9,0xb8));var _0x9a2f=function(_0x1a4faa,_0x8e32b2){_0x1a4faa=_0x1a4faa-0x0;var _0x332f99=_0xa2f9[_0x1a4faa];return _0x332f99;};'use strict';var _=require(_0x9a2f('0x0'));var util=require('util');var logger=require(_0x9a2f('0x1'))(_0x9a2f('0x2'));var moment=require(_0x9a2f('0x3'));var BPromise=require(_0x9a2f('0x4'));var rp=require(_0x9a2f('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x9a2f('0x6'));var config=require('../../config/environment');var attributes=require(_0x9a2f('0x7'));module[_0x9a2f('0x8')]=function(_0x5ded3f,_0x1a3721){return _0x5ded3f[_0x9a2f('0x9')]('Automation',attributes,{'tableName':_0x9a2f('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ab8=['../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','request\x20sent','stringify','error','code','Automation,\x20%s,\x20%s','message','catch','lodash','util','moment','ioredis'];(function(_0x47a7d0,_0x4e182d){var _0xb9bd08=function(_0x588ee2){while(--_0x588ee2){_0x47a7d0['push'](_0x47a7d0['shift']());}};_0xb9bd08(++_0x4e182d);}(_0x9ab8,0x81));var _0x89ab=function(_0x15e4cd,_0x1094a0){_0x15e4cd=_0x15e4cd-0x0;var _0x10b6c2=_0x9ab8[_0x15e4cd];return _0x10b6c2;};'use strict';var _=require(_0x89ab('0x0'));var util=require(_0x89ab('0x1'));var moment=require(_0x89ab('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x89ab('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x89ab('0x4'));var logger=require(_0x89ab('0x5'))('rpc');var config=require(_0x89ab('0x6'));var jayson=require(_0x89ab('0x7'));var client=jayson[_0x89ab('0x8')][_0x89ab('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x29a984,_0x3ecaa0,_0x366c32){return new BPromise(function(_0x5fd99f,_0x42da87){return client[_0x89ab('0xa')](_0x29a984,_0x366c32)[_0x89ab('0xb')](function(_0x36dc63){logger['info']('Automation,\x20%s,\x20%s',_0x3ecaa0,'request\x20sent');logger['debug']('Automation,\x20%s,\x20%s,\x20%s',_0x3ecaa0,_0x89ab('0xc'),JSON[_0x89ab('0xd')](_0x36dc63));if(_0x36dc63[_0x89ab('0xe')]){if(_0x36dc63[_0x89ab('0xe')][_0x89ab('0xf')]===0x1f4){logger[_0x89ab('0xe')](_0x89ab('0x10'),_0x3ecaa0,_0x36dc63['error'][_0x89ab('0x11')]);return _0x42da87(_0x36dc63[_0x89ab('0xe')][_0x89ab('0x11')]);}logger[_0x89ab('0xe')](_0x89ab('0x10'),_0x3ecaa0,_0x36dc63['error'][_0x89ab('0x11')]);return _0x5fd99f(_0x36dc63[_0x89ab('0xe')]['message']);}else{logger['info']('Automation,\x20%s,\x20%s',_0x3ecaa0,'request\x20sent');_0x5fd99f(_0x36dc63['result']['message']);}})[_0x89ab('0x12')](function(_0x1ce918){logger[_0x89ab('0xe')](_0x89ab('0x10'),_0x3ecaa0,_0x1ce918);_0x42da87(_0x1ce918);});});}
\ No newline at end of file
+var _0x77e6=['client','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','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0x1f1c27,_0x3d5a0b){var _0x334749=function(_0x2f9222){while(--_0x2f9222){_0x1f1c27['push'](_0x1f1c27['shift']());}};_0x334749(++_0x3d5a0b);}(_0x77e6,0x1a6));var _0x677e=function(_0x143135,_0x30505b){_0x143135=_0x143135-0x0;var _0x427481=_0x77e6[_0x143135];return _0x427481;};'use strict';var _=require(_0x677e('0x0'));var util=require(_0x677e('0x1'));var moment=require(_0x677e('0x2'));var BPromise=require(_0x677e('0x3'));var rs=require(_0x677e('0x4'));var fs=require('fs');var Redis=require(_0x677e('0x5'));var db=require(_0x677e('0x6'))['db'];var utils=require(_0x677e('0x7'));var logger=require('../../config/logger')(_0x677e('0x8'));var config=require(_0x677e('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x677e('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x40d314,_0x4d1a57,_0x5a5dd3){return new BPromise(function(_0x2eb40c,_0x4c519f){return client[_0x677e('0xb')](_0x40d314,_0x5a5dd3)[_0x677e('0xc')](function(_0x552931){logger[_0x677e('0xd')]('Automation,\x20%s,\x20%s',_0x4d1a57,_0x677e('0xe'));logger[_0x677e('0xf')](_0x677e('0x10'),_0x4d1a57,_0x677e('0xe'),JSON[_0x677e('0x11')](_0x552931));if(_0x552931[_0x677e('0x12')]){if(_0x552931[_0x677e('0x12')][_0x677e('0x13')]===0x1f4){logger[_0x677e('0x12')](_0x677e('0x14'),_0x4d1a57,_0x552931[_0x677e('0x12')][_0x677e('0x15')]);return _0x4c519f(_0x552931[_0x677e('0x12')][_0x677e('0x15')]);}logger['error']('Automation,\x20%s,\x20%s',_0x4d1a57,_0x552931['error'][_0x677e('0x15')]);return _0x2eb40c(_0x552931[_0x677e('0x12')][_0x677e('0x15')]);}else{logger[_0x677e('0xd')](_0x677e('0x14'),_0x4d1a57,_0x677e('0xe'));_0x2eb40c(_0x552931[_0x677e('0x16')][_0x677e('0x15')]);}})[_0x677e('0x17')](function(_0x32d306){logger[_0x677e('0x12')](_0x677e('0x14'),_0x4d1a57,_0x32d306);_0x4c519f(_0x32d306);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24e2=['util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./automation.controller','get','index','/:id','show','/:id/conditions','isAuthenticated','getActions','create','post','/:id/actions','addActions','put','update','delete','destroy','exports','multer'];(function(_0x217446,_0x15b345){var _0x3df3fb=function(_0x21a431){while(--_0x21a431){_0x217446['push'](_0x217446['shift']());}};_0x3df3fb(++_0x15b345);}(_0x24e2,0x1c1));var _0x224e=function(_0x5c7bf6,_0x4a1bab){_0x5c7bf6=_0x5c7bf6-0x0;var _0x3fae0c=_0x24e2[_0x5c7bf6];return _0x3fae0c;};'use strict';var multer=require(_0x224e('0x0'));var util=require(_0x224e('0x1'));var path=require('path');var timeout=require(_0x224e('0x2'));var express=require(_0x224e('0x3'));var router=express[_0x224e('0x4')]();var fs_extra=require(_0x224e('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x224e('0x6'));var config=require(_0x224e('0x7'));var controller=require(_0x224e('0x8'));router[_0x224e('0x9')]('/',auth['isAuthenticated'](),controller[_0x224e('0xa')]);router[_0x224e('0x9')](_0x224e('0xb'),auth['isAuthenticated'](),controller[_0x224e('0xc')]);router[_0x224e('0x9')](_0x224e('0xd'),auth[_0x224e('0xe')](),controller['getConditions']);router[_0x224e('0x9')]('/:id/actions',auth[_0x224e('0xe')](),controller[_0x224e('0xf')]);router['post']('/',auth[_0x224e('0xe')](),controller[_0x224e('0x10')]);router[_0x224e('0x11')](_0x224e('0xd'),auth['isAuthenticated'](),controller['addConditions']);router[_0x224e('0x11')](_0x224e('0x12'),auth[_0x224e('0xe')](),controller[_0x224e('0x13')]);router[_0x224e('0x14')](_0x224e('0xb'),auth[_0x224e('0xe')](),controller[_0x224e('0x15')]);router[_0x224e('0x16')](_0x224e('0xb'),auth[_0x224e('0xe')](),controller[_0x224e('0x17')]);module[_0x224e('0x18')]=router;
\ No newline at end of file
+var _0x497d=['delete','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./automation.controller','isAuthenticated','index','get','/:id','show','getConditions','post','create','/:id/conditions','/:id/actions','addActions','update'];(function(_0x187ee1,_0x3fd1e6){var _0x388160=function(_0x542dd2){while(--_0x542dd2){_0x187ee1['push'](_0x187ee1['shift']());}};_0x388160(++_0x3fd1e6);}(_0x497d,0x1a0));var _0xd497=function(_0x286632,_0x34825d){_0x286632=_0x286632-0x0;var _0x1ce333=_0x497d[_0x286632];return _0x1ce333;};'use strict';var multer=require('multer');var util=require(_0xd497('0x0'));var path=require(_0xd497('0x1'));var timeout=require(_0xd497('0x2'));var express=require('express');var router=express[_0xd497('0x3')]();var fs_extra=require(_0xd497('0x4'));var auth=require(_0xd497('0x5'));var interaction=require(_0xd497('0x6'));var config=require(_0xd497('0x7'));var controller=require(_0xd497('0x8'));router['get']('/',auth[_0xd497('0x9')](),controller[_0xd497('0xa')]);router[_0xd497('0xb')](_0xd497('0xc'),auth[_0xd497('0x9')](),controller[_0xd497('0xd')]);router[_0xd497('0xb')]('/:id/conditions',auth['isAuthenticated'](),controller[_0xd497('0xe')]);router[_0xd497('0xb')]('/:id/actions',auth[_0xd497('0x9')](),controller['getActions']);router[_0xd497('0xf')]('/',auth[_0xd497('0x9')](),controller[_0xd497('0x10')]);router[_0xd497('0xf')](_0xd497('0x11'),auth['isAuthenticated'](),controller['addConditions']);router[_0xd497('0xf')](_0xd497('0x12'),auth[_0xd497('0x9')](),controller[_0xd497('0x13')]);router['put']('/:id',auth[_0xd497('0x9')](),controller[_0xd497('0x14')]);router[_0xd497('0x15')](_0xd497('0xc'),auth[_0xd497('0x9')](),controller['destroy']);module[_0xd497('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3da=['#AMD\x20Initial\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','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)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','sequelize','exports','STRING','name','ENUM','ivr','BOOLEAN','INTEGER','UNSIGNED','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Busy\x20Retry\x20(min:1,\x20max:999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','never','onlyIfOpen','always'];(function(_0x12ed8e,_0x4edc6d){var _0x5ecfb3=function(_0x4f145a){while(--_0x4f145a){_0x12ed8e['push'](_0x12ed8e['shift']());}};_0x5ecfb3(++_0x4edc6d);}(_0xf3da,0x143));var _0xaf3d=function(_0x23ce9b,_0x1678ea){_0x23ce9b=_0x23ce9b-0x0;var _0xcb2da5=_0xf3da[_0x23ce9b];return _0xcb2da5;};'use strict';var Sequelize=require(_0xaf3d('0x0'));module[_0xaf3d('0x1')]={'name':{'type':Sequelize[_0xaf3d('0x2')],'unique':_0xaf3d('0x3'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize[_0xaf3d('0x4')](_0xaf3d('0x5')),'allowNull':![],'defaultValue':_0xaf3d('0x5')},'description':{'type':Sequelize[_0xaf3d('0x2')]},'active':{'type':Sequelize[_0xaf3d('0x6')],'defaultValue':0x0,'comment':'Active/Disactive\x20Campaign'},'limitCalls':{'type':Sequelize[_0xaf3d('0x7')](0x4)[_0xaf3d('0x8')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':'Max\x20200\x20calls.'},'dialOriginateCallerIdName':{'type':Sequelize[_0xaf3d('0x2')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0xaf3d('0x2')]},'dialOriginateTimeout':{'type':Sequelize[_0xaf3d('0x7')](0x3)['UNSIGNED'],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':'Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialCongestionMaxRetry':{'type':Sequelize[_0xaf3d('0x7')](0x3)[_0xaf3d('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Congestion\x20Retry\x20(min:1,\x20max:999)'},'dialCongestionRetryFrequency':{'type':Sequelize[_0xaf3d('0x7')](0x5)[_0xaf3d('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xaf3d('0x9')},'dialBusyMaxRetry':{'type':Sequelize[_0xaf3d('0x7')](0x3)[_0xaf3d('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xaf3d('0xa')},'dialBusyRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xaf3d('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialNoAnswerMaxRetry':{'type':Sequelize[_0xaf3d('0x7')](0x3)[_0xaf3d('0x8')],'defaultValue':0x3,'comment':_0xaf3d('0xb')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0xaf3d('0x7')](0x5)[_0xaf3d('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialGlobalMaxRetry':{'type':Sequelize[_0xaf3d('0x7')](0x3)['UNSIGNED'],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0xaf3d('0xc')},'dialTimezone':{'type':Sequelize[_0xaf3d('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0xaf3d('0x2')],'defaultValue':_0xaf3d('0xd')},'dialCheckDuplicateType':{'type':Sequelize[_0xaf3d('0x4')]('always',_0xaf3d('0xe'),_0xaf3d('0xf')),'defaultValue':_0xaf3d('0x10')},'dialAMDActive':{'type':Sequelize[_0xaf3d('0x6')],'defaultValue':0x0,'comment':'Active/Disactive\x20AMD'},'dialAMDInitialSilence':{'type':Sequelize[_0xaf3d('0x7')](0x9)[_0xaf3d('0x8')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0xaf3d('0x11')},'dialAMDGreeting':{'type':Sequelize[_0xaf3d('0x7')](0x9)[_0xaf3d('0x8')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':'#AMD\x20Greeting'},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0xaf3d('0x7')](0x9)[_0xaf3d('0x8')],'defaultValue':0x320,'validate':{'min':0x0},'comment':'#AMD\x20After\x20Greeting\x20Silence'},'dialAMDTotalAnalysisTime':{'type':Sequelize['INTEGER'](0x9)[_0xaf3d('0x8')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xaf3d('0x12')},'dialAMDMinWordLength':{'type':Sequelize[_0xaf3d('0x7')](0x9)['UNSIGNED'],'defaultValue':0x64,'validate':{'min':0x0},'comment':'#AMD\x20Min\x20Word\x20Length'},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0xaf3d('0x7')](0x9)[_0xaf3d('0x8')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0xaf3d('0x13')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0xaf3d('0x7')](0x9)[_0xaf3d('0x8')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0xaf3d('0x14')},'dialAMDSilenceThreshold':{'type':Sequelize[_0xaf3d('0x7')](0x5)[_0xaf3d('0x8')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0xaf3d('0x15')},'dialAMDMaximumWordLength':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xaf3d('0x16')},'dialOrderByScheduledAt':{'type':Sequelize[_0xaf3d('0x4')](_0xaf3d('0x17'),'ASC'),'defaultValue':_0xaf3d('0x17')},'dialPrefix':{'type':Sequelize['STRING'],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0xaf3d('0x7')](0x3)[_0xaf3d('0x8')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Random\x20Last\x20Digit\x20(min:1,\x20max:15)'},'dialCutDigit':{'type':Sequelize['INTEGER'](0x3)[_0xaf3d('0x8')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xaf3d('0x18')},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0xaf3d('0x7')](0x3)[_0xaf3d('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xaf3d('0x19')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0xaf3d('0x7')](0x5)[_0xaf3d('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xaf3d('0x1a')},'dialDropMaxRetry':{'type':Sequelize[_0xaf3d('0x7')](0x3)[_0xaf3d('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xaf3d('0x1b')},'dialDropRetryFrequency':{'type':Sequelize[_0xaf3d('0x7')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xaf3d('0x1c')},'dialAbandonedMaxRetry':{'type':Sequelize[_0xaf3d('0x7')](0x3)[_0xaf3d('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xaf3d('0x1d')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0xaf3d('0x7')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xaf3d('0x1e')},'dialMachineMaxRetry':{'type':Sequelize[_0xaf3d('0x7')](0x3)[_0xaf3d('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xaf3d('0x1f')},'dialMachineRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xaf3d('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAgentRejectMaxRetry':{'type':Sequelize[_0xaf3d('0x7')](0x3)[_0xaf3d('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xaf3d('0x20')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0xaf3d('0x7')](0x5)[_0xaf3d('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xaf3d('0x21')}};
\ No newline at end of file
+var _0x0150=['#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Min\x20Word\x20Length','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','DESC','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)','#Machine\x20Retry\x20(min:1,\x20max:999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','sequelize','exports','STRING','ENUM','ivr','BOOLEAN','INTEGER','UNSIGNED','Max\x20200\x20calls.','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\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','always','onlyIfOpen','Active/Disactive\x20AMD','#AMD\x20Initial\x20Silence','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence'];(function(_0x316b71,_0x46b6bc){var _0x25cb45=function(_0x1dc414){while(--_0x1dc414){_0x316b71['push'](_0x316b71['shift']());}};_0x25cb45(++_0x46b6bc);}(_0x0150,0x16b));var _0x0015=function(_0x20be0f,_0x14edfd){_0x20be0f=_0x20be0f-0x0;var _0x3be0d9=_0x0150[_0x20be0f];return _0x3be0d9;};'use strict';var Sequelize=require(_0x0015('0x0'));module[_0x0015('0x1')]={'name':{'type':Sequelize[_0x0015('0x2')],'unique':'name','allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize[_0x0015('0x3')](_0x0015('0x4')),'allowNull':![],'defaultValue':_0x0015('0x4')},'description':{'type':Sequelize[_0x0015('0x2')]},'active':{'type':Sequelize[_0x0015('0x5')],'defaultValue':0x0,'comment':'Active/Disactive\x20Campaign'},'limitCalls':{'type':Sequelize[_0x0015('0x6')](0x4)[_0x0015('0x7')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':_0x0015('0x8')},'dialOriginateCallerIdName':{'type':Sequelize[_0x0015('0x2')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0x0015('0x2')]},'dialOriginateTimeout':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0x0015('0x9')},'dialCongestionMaxRetry':{'type':Sequelize[_0x0015('0x6')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x0015('0xa')},'dialCongestionRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x0015('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x0015('0xb')},'dialBusyMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x0015('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Busy\x20Retry\x20(min:1,\x20max:999)'},'dialBusyRetryFrequency':{'type':Sequelize[_0x0015('0x6')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x0015('0xc')},'dialNoAnswerMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x0015('0x7')],'defaultValue':0x3,'comment':_0x0015('0xd')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x0015('0x6')](0x5)[_0x0015('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialGlobalMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0x0015('0xe')},'dialTimezone':{'type':Sequelize[_0x0015('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x0015('0x2')],'defaultValue':_0x0015('0xf')},'dialCheckDuplicateType':{'type':Sequelize[_0x0015('0x3')](_0x0015('0x10'),'never',_0x0015('0x11')),'defaultValue':'always'},'dialAMDActive':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x0015('0x12')},'dialAMDInitialSilence':{'type':Sequelize[_0x0015('0x6')](0x9)['UNSIGNED'],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x0015('0x13')},'dialAMDGreeting':{'type':Sequelize['INTEGER'](0x9)[_0x0015('0x7')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0x0015('0x14')},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x0015('0x6')](0x9)[_0x0015('0x7')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x0015('0x15')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x0015('0x6')](0x9)[_0x0015('0x7')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x0015('0x16')},'dialAMDMinWordLength':{'type':Sequelize[_0x0015('0x6')](0x9)[_0x0015('0x7')],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0x0015('0x17')},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0x0015('0x6')](0x9)[_0x0015('0x7')],'defaultValue':0x32,'validate':{'min':0x0},'comment':'#AMD\x20Between\x20Words\x20Silence'},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0x0015('0x6')](0x9)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x0},'comment':'#AMD\x20Maximum\x20Number\x20Of\x20Words'},'dialAMDSilenceThreshold':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x0015('0x18')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x0015('0x6')](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':'#AMD\x20Maximum\x20Word\x20Length'},'dialOrderByScheduledAt':{'type':Sequelize[_0x0015('0x3')](_0x0015('0x19'),'ASC'),'defaultValue':_0x0015('0x19')},'dialPrefix':{'type':Sequelize[_0x0015('0x2')],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x0015('0x6')](0x3)[_0x0015('0x7')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Random\x20Last\x20Digit\x20(min:1,\x20max:15)'},'dialCutDigit':{'type':Sequelize[_0x0015('0x6')](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x0015('0x1a')},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0x0015('0x6')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x0015('0x1b')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x0015('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x0015('0x1c')},'dialDropMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x0015('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x0015('0x1d')},'dialDropRetryFrequency':{'type':Sequelize[_0x0015('0x6')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x0015('0x1e')},'dialAbandonedMaxRetry':{'type':Sequelize[_0x0015('0x6')](0x3)[_0x0015('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Abandoned\x20Retry\x20(min:1,\x20max:999)'},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x0015('0x6')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialMachineMaxRetry':{'type':Sequelize[_0x0015('0x6')](0x3)[_0x0015('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x0015('0x1f')},'dialMachineRetryFrequency':{'type':Sequelize[_0x0015('0x6')](0x5)[_0x0015('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x0015('0x20')},'dialAgentRejectMaxRetry':{'type':Sequelize[_0x0015('0x6')](0x3)[_0x0015('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x0015('0x21')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0x0015('0x6')](0x5)[_0x0015('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x0015('0x22')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x200a=['phone','scheduledAt','ListId','select','field','ContactId','CmListId','toString','NOW()','from','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','COALESCE(calleridnum,\x27\x27)','cm_hopper_final','phone\x20NOT\x20IN\x20(?)','COALESCE(phone,\x27\x27)','CampaignId\x20=\x20?','onlyIfOpen','insert','createdAt','push','sequelize','all','removeLists','getBlackLists','addBlackLists','omit','spread','cm_hopper_black','removeBlackLists','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','util','path','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/environment','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','save','update','destroy','then','error','stack','name','send','index','Campaign','fieldName','type','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','sort','filters','filter','where','merge','VIRTUAL','includeAll','findAll','rows','catch','show','params','rawAttributes','include','options','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','IvrCampaigns','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','updatedAt','autoAssociation','getHoppers','CmHopper','nolimit','order','pick','CampaignId','findOne','CmHopperHistory','getHopperFinals','CmHopperFinal','getHopperBlacks','CmHopperBlack','getLists','CmList','addLists','ids','dialCheckDuplicateType','always','into','cm_hopper','fromQuery'];(function(_0x22531b,_0xb88f39){var _0x5e1d2b=function(_0x1af2fa){while(--_0x1af2fa){_0x22531b['push'](_0x22531b['shift']());}};_0x5e1d2b(++_0xb88f39);}(_0x200a,0xac));var _0xa200=function(_0x5d72da,_0xb7ce32){_0x5d72da=_0x5d72da-0x0;var _0x43ebe7=_0x200a[_0x5d72da];return _0x43ebe7;};'use strict';var emlformat=require(_0xa200('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xa200('0x1'));var jsonpatch=require(_0xa200('0x2'));var rp=require(_0xa200('0x3'));var moment=require('moment');var BPromise=require(_0xa200('0x4'));var Mustache=require('mustache');var util=require(_0xa200('0x5'));var path=require(_0xa200('0x6'));var sox=require(_0xa200('0x7'));var csv=require(_0xa200('0x8'));var ejs=require(_0xa200('0x9'));var fs=require('fs');var fs_extra=require(_0xa200('0xa'));var _=require(_0xa200('0xb'));var squel=require(_0xa200('0xc'));var crypto=require(_0xa200('0xd'));var jsforce=require(_0xa200('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xa200('0x8'));var querystring=require(_0xa200('0xf'));var Papa=require(_0xa200('0x10'));var Redis=require('ioredis');var authService=require(_0xa200('0x11'));var qs=require(_0xa200('0x12'));var as=require(_0xa200('0x13'));var hardwareService=require(_0xa200('0x14'));var logger=require(_0xa200('0x15'))(_0xa200('0x16'));var utils=require(_0xa200('0x17'));var config=require(_0xa200('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xa200('0x19'))['db'];function respondWithStatusCode(_0x1a7eed,_0x55b857){_0x55b857=_0x55b857||0xcc;return function(_0xb29610){if(_0xb29610){return _0x1a7eed[_0xa200('0x1a')](_0x55b857);}return _0x1a7eed[_0xa200('0x1b')](_0x55b857)[_0xa200('0x1c')]();};}function respondWithResult(_0xc98207,_0xbd4a07){_0xbd4a07=_0xbd4a07||0xc8;return function(_0x5b47d5){if(_0x5b47d5){return _0xc98207[_0xa200('0x1b')](_0xbd4a07)['json'](_0x5b47d5);}};}function respondWithFilteredResult(_0x13c7fc,_0x30c566){return function(_0x167c5b){if(_0x167c5b){var _0x75525b=typeof _0x30c566[_0xa200('0x1d')]===_0xa200('0x1e')&&typeof _0x30c566['limit']==='undefined';var _0x35d30d=_0x167c5b[_0xa200('0x1f')];var _0x5f3552=_0x75525b?0x0:_0x30c566['offset'];var _0x14a6ce=_0x75525b?_0x167c5b[_0xa200('0x1f')]:_0x30c566[_0xa200('0x1d')]+_0x30c566[_0xa200('0x20')];var _0x568ab4;if(_0x14a6ce>=_0x35d30d){_0x14a6ce=_0x35d30d;_0x568ab4=0xc8;}else{_0x568ab4=0xce;}_0x13c7fc[_0xa200('0x1b')](_0x568ab4);return _0x13c7fc[_0xa200('0x21')](_0xa200('0x22'),_0x5f3552+'-'+_0x14a6ce+'/'+_0x35d30d)[_0xa200('0x23')](_0x167c5b);}return null;};}function patchUpdates(_0x31b964){return function(_0x4b055a){try{jsonpatch[_0xa200('0x24')](_0x4b055a,_0x31b964,!![]);}catch(_0x2778af){return BPromise['reject'](_0x2778af);}return _0x4b055a[_0xa200('0x25')]();};}function saveUpdates(_0x37bbd8,_0x53e136){return function(_0x4b748e){if(_0x4b748e){return _0x4b748e[_0xa200('0x26')](_0x37bbd8)['then'](function(_0x2e2862){return _0x2e2862;});}return null;};}function removeEntity(_0x52029d,_0x51acfe){return function(_0x43ab08){if(_0x43ab08){return _0x43ab08['destroy']()['then'](function(){var _0x1f53ef=_0x43ab08['get']({'plain':!![]});var _0x395d30='IvrCampaigns';return db['UserProfileResource'][_0xa200('0x27')]({'where':{'type':_0x395d30,'resourceId':_0x1f53ef['id']}})['then'](function(){return _0x43ab08;});})[_0xa200('0x28')](function(){_0x52029d[_0xa200('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x394e0a,_0x39ccad){return function(_0x357df8){if(!_0x357df8){_0x394e0a[_0xa200('0x1a')](0x194);}return _0x357df8;};}function handleError(_0x15a8d1,_0x587743){_0x587743=_0x587743||0x1f4;return function(_0x41d2d8){logger[_0xa200('0x29')](_0x41d2d8[_0xa200('0x2a')]);if(_0x41d2d8[_0xa200('0x2b')]){delete _0x41d2d8['name'];}_0x15a8d1[_0xa200('0x1b')](_0x587743)[_0xa200('0x2c')](_0x41d2d8);};}exports[_0xa200('0x2d')]=function(_0x131e77,_0x484027){var _0x3adb3f={},_0x30f526={},_0x2500ab={'count':0x0,'rows':[]};var _0x22e703=_['map'](db[_0xa200('0x2e')]['rawAttributes'],function(_0x1c0416){return{'name':_0x1c0416[_0xa200('0x2f')],'type':_0x1c0416[_0xa200('0x30')]['key']};});_0x30f526[_0xa200('0x31')]=_[_0xa200('0x32')](_0x22e703,_0xa200('0x2b'));_0x30f526[_0xa200('0x33')]=_[_0xa200('0x34')](_0x131e77['query']);_0x30f526['filters']=_[_0xa200('0x35')](_0x30f526['model'],_0x30f526[_0xa200('0x33')]);_0x3adb3f[_0xa200('0x36')]=_[_0xa200('0x35')](_0x30f526[_0xa200('0x31')],qs[_0xa200('0x37')](_0x131e77[_0xa200('0x33')]['fields']));_0x3adb3f[_0xa200('0x36')]=_0x3adb3f[_0xa200('0x36')][_0xa200('0x38')]?_0x3adb3f[_0xa200('0x36')]:_0x30f526[_0xa200('0x31')];if(!_0x131e77['query'][_0xa200('0x39')]('nolimit')){_0x3adb3f[_0xa200('0x20')]=qs[_0xa200('0x20')](_0x131e77[_0xa200('0x33')][_0xa200('0x20')]);_0x3adb3f[_0xa200('0x1d')]=qs[_0xa200('0x1d')](_0x131e77[_0xa200('0x33')][_0xa200('0x1d')]);}_0x3adb3f['order']=qs['sort'](_0x131e77[_0xa200('0x33')][_0xa200('0x3a')]);_0x3adb3f['where']=qs[_0xa200('0x3b')](_['pick'](_0x131e77['query'],_0x30f526[_0xa200('0x3b')]),_0x22e703);if(_0x131e77[_0xa200('0x33')][_0xa200('0x3c')]){_0x3adb3f[_0xa200('0x3d')]=_[_0xa200('0x3e')](_0x3adb3f['where'],{'$or':_['map'](_0x22e703,function(_0x5c985e){if(_0x5c985e['type']!==_0xa200('0x3f')){var _0x481c4b={};_0x481c4b[_0x5c985e[_0xa200('0x2b')]]={'$like':'%'+_0x131e77[_0xa200('0x33')][_0xa200('0x3c')]+'%'};return _0x481c4b;}})});}_0x3adb3f=_['merge']({},_0x3adb3f,_0x131e77['options']);var _0x5381b6={'where':_0x3adb3f['where']};return db[_0xa200('0x2e')][_0xa200('0x1f')](_0x5381b6)[_0xa200('0x28')](function(_0x148506){_0x2500ab[_0xa200('0x1f')]=_0x148506;if(_0x131e77[_0xa200('0x33')][_0xa200('0x40')]){_0x3adb3f['include']=[{'all':!![]}];}return db[_0xa200('0x2e')][_0xa200('0x41')](_0x3adb3f);})[_0xa200('0x28')](function(_0x2d9751){_0x2500ab[_0xa200('0x42')]=_0x2d9751;return _0x2500ab;})[_0xa200('0x28')](respondWithFilteredResult(_0x484027,_0x3adb3f))[_0xa200('0x43')](handleError(_0x484027,null));};exports[_0xa200('0x44')]=function(_0x111c9f,_0x777167){var _0x252ecd={'raw':![],'where':{'id':_0x111c9f[_0xa200('0x45')]['id']}},_0x2942f4={};_0x2942f4['model']=_['keys'](db['Campaign'][_0xa200('0x46')]);_0x2942f4[_0xa200('0x33')]=_[_0xa200('0x34')](_0x111c9f[_0xa200('0x33')]);_0x2942f4['filters']=_[_0xa200('0x35')](_0x2942f4['model'],_0x2942f4[_0xa200('0x33')]);_0x252ecd[_0xa200('0x36')]=_[_0xa200('0x35')](_0x2942f4[_0xa200('0x31')],qs['fields'](_0x111c9f['query']['fields']));_0x252ecd['attributes']=_0x252ecd[_0xa200('0x36')][_0xa200('0x38')]?_0x252ecd['attributes']:_0x2942f4[_0xa200('0x31')];if(_0x111c9f[_0xa200('0x33')][_0xa200('0x40')]){_0x252ecd[_0xa200('0x47')]=[{'all':!![]}];}_0x252ecd=_[_0xa200('0x3e')]({},_0x252ecd,_0x111c9f[_0xa200('0x48')]);return db[_0xa200('0x2e')][_0xa200('0x49')](_0x252ecd)[_0xa200('0x28')](handleEntityNotFound(_0x777167,null))[_0xa200('0x28')](respondWithResult(_0x777167,null))['catch'](handleError(_0x777167,null));};exports[_0xa200('0x4a')]=function(_0x5ee9ce,_0x46c7df){return db[_0xa200('0x2e')][_0xa200('0x4a')](_0x5ee9ce[_0xa200('0x4b')],{})['then'](function(_0x4b473a){var _0x2d0d0c=_0x5ee9ce[_0xa200('0x4c')][_0xa200('0x4d')]({'plain':!![]});if(!_0x2d0d0c)throw new Error(_0xa200('0x4e'));if(_0x2d0d0c[_0xa200('0x4f')]==='user'){var _0x156570=_0x4b473a['get']({'plain':!![]});var _0x28cf25=_0xa200('0x50');return db[_0xa200('0x51')][_0xa200('0x49')]({'where':{'name':_0x28cf25,'userProfileId':_0x2d0d0c[_0xa200('0x52')]},'raw':!![]})[_0xa200('0x28')](function(_0x367672){if(_0x367672&&_0x367672['autoAssociation']===0x0){return db['UserProfileResource'][_0xa200('0x4a')]({'name':_0x156570[_0xa200('0x2b')],'resourceId':_0x156570['id'],'type':_0x367672[_0xa200('0x2b')],'sectionId':_0x367672['id']},{})[_0xa200('0x28')](function(){return _0x4b473a;});}else{return _0x4b473a;}})['catch'](function(_0x138ebd){logger['error'](_0xa200('0x53'),_0x138ebd);throw _0x138ebd;});}return _0x4b473a;})[_0xa200('0x28')](respondWithResult(_0x46c7df,0xc9))[_0xa200('0x43')](handleError(_0x46c7df,null));};exports[_0xa200('0x54')]=function(_0x278111,_0x808dd1){var _0x199824={'where':{'id':_0x278111[_0xa200('0x45')]['id']}},_0x305d63={};_0x305d63[_0xa200('0x31')]=_['keys'](db[_0xa200('0x2e')][_0xa200('0x46')]);_0x199824[_0xa200('0x36')]=_['intersection'](_0x305d63[_0xa200('0x31')],qs['fields'](_0x278111[_0xa200('0x33')]['fields']));_0x199824['attributes']=_0x199824[_0xa200('0x36')][_0xa200('0x38')]?_0x199824[_0xa200('0x36')]:_0x305d63['model'];if(_0x278111['query'][_0xa200('0x40')]){_0x199824[_0xa200('0x47')]=[{'all':!![]}];}_0x199824=_[_0xa200('0x3e')]({},_0x199824,_0x278111[_0xa200('0x48')]);return db['Campaign'][_0xa200('0x49')](_0x199824)[_0xa200('0x28')](handleEntityNotFound(_0x808dd1,null))[_0xa200('0x28')](function(_0x40f437){if(_0x40f437){var _0x17d54d=_0x40f437[_0xa200('0x4d')]({'plain':!![]});_0x17d54d=qs['omit'](_0x17d54d,['id','createdAt',_0xa200('0x55')]);_0x278111[_0xa200('0x4b')]=_['omit'](_0x278111['body'],['id','createdAt',_0xa200('0x55')]);return db[_0xa200('0x2e')]['create'](_[_0xa200('0x3e')](_0x17d54d,_0x278111[_0xa200('0x4b')]),{'include':_0x278111[_0xa200('0x33')][_0xa200('0x40')]?[{'all':!![]}]:undefined})['then'](function(_0x4d4abe){var _0x465185=_0x278111[_0xa200('0x4c')][_0xa200('0x4d')]({'plain':!![]});if(!_0x465185)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x465185[_0xa200('0x4f')]===_0xa200('0x4c')){var _0x4e0831=_0x4d4abe[_0xa200('0x4d')]({'plain':!![]});var _0x19e642=_0xa200('0x50');return db[_0xa200('0x51')][_0xa200('0x49')]({'where':{'name':_0x19e642,'userProfileId':_0x465185[_0xa200('0x52')]},'raw':!![]})['then'](function(_0x1f527f){if(_0x1f527f&&_0x1f527f[_0xa200('0x56')]===0x0){return db['UserProfileResource'][_0xa200('0x4a')]({'name':_0x4e0831[_0xa200('0x2b')],'resourceId':_0x4e0831['id'],'type':_0x1f527f[_0xa200('0x2b')],'sectionId':_0x1f527f['id']},{})[_0xa200('0x28')](function(){return _0x4d4abe;});}else{return _0x4d4abe;}})[_0xa200('0x43')](function(_0x355d7d){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x355d7d);throw _0x355d7d;});}return _0x4d4abe;});}})[_0xa200('0x28')](respondWithResult(_0x808dd1,0xc9))[_0xa200('0x43')](handleError(_0x808dd1,null));};exports['update']=function(_0x2637ae,_0x102bb8){if(_0x2637ae[_0xa200('0x4b')]['id']){delete _0x2637ae[_0xa200('0x4b')]['id'];}return db[_0xa200('0x2e')][_0xa200('0x49')]({'where':{'id':_0x2637ae[_0xa200('0x45')]['id']}})[_0xa200('0x28')](handleEntityNotFound(_0x102bb8,null))[_0xa200('0x28')](saveUpdates(_0x2637ae['body'],null))[_0xa200('0x28')](respondWithResult(_0x102bb8,null))[_0xa200('0x43')](handleError(_0x102bb8,null));};exports[_0xa200('0x27')]=function(_0x279b63,_0x1e0cc0){return db[_0xa200('0x2e')][_0xa200('0x49')]({'where':{'id':_0x279b63['params']['id']}})[_0xa200('0x28')](handleEntityNotFound(_0x1e0cc0,null))[_0xa200('0x28')](removeEntity(_0x1e0cc0,null))[_0xa200('0x43')](handleError(_0x1e0cc0,null));};exports[_0xa200('0x57')]=function(_0x46616c,_0x366cf5,_0x421753){var _0x4e5477={'raw':!![],'where':{}};var _0x228f32={};var _0x22ddb0={'count':0x0,'rows':[]};return db['Campaign']['findOne']({'where':{'id':_0x46616c['params']['id']}})['then'](handleEntityNotFound(_0x366cf5,null))['then'](function(_0x3925d8){if(_0x3925d8){_0x228f32[_0xa200('0x31')]=_[_0xa200('0x34')](db[_0xa200('0x58')][_0xa200('0x46')]);_0x228f32[_0xa200('0x33')]=_[_0xa200('0x34')](_0x46616c[_0xa200('0x33')]);_0x228f32[_0xa200('0x3b')]=_[_0xa200('0x35')](_0x228f32[_0xa200('0x31')],_0x228f32[_0xa200('0x33')]);_0x4e5477[_0xa200('0x36')]=_[_0xa200('0x35')](_0x228f32[_0xa200('0x31')],qs['fields'](_0x46616c[_0xa200('0x33')][_0xa200('0x37')]));_0x4e5477[_0xa200('0x36')]=_0x4e5477[_0xa200('0x36')][_0xa200('0x38')]?_0x4e5477[_0xa200('0x36')]:_0x228f32['model'];if(!_0x46616c[_0xa200('0x33')]['hasOwnProperty'](_0xa200('0x59'))){_0x4e5477[_0xa200('0x20')]=qs[_0xa200('0x20')](_0x46616c[_0xa200('0x33')][_0xa200('0x20')]);_0x4e5477[_0xa200('0x1d')]=qs[_0xa200('0x1d')](_0x46616c[_0xa200('0x33')][_0xa200('0x1d')]);}_0x4e5477[_0xa200('0x5a')]=qs[_0xa200('0x3a')](_0x46616c['query'][_0xa200('0x3a')]);_0x4e5477[_0xa200('0x3d')]=qs[_0xa200('0x3b')](_[_0xa200('0x5b')](_0x46616c[_0xa200('0x33')],_0x228f32[_0xa200('0x3b')]));_0x4e5477[_0xa200('0x3d')][_0xa200('0x5c')]=_0x3925d8['id'];if(_0x46616c['query'][_0xa200('0x3c')]){_0x4e5477[_0xa200('0x3d')]=_[_0xa200('0x3e')](_0x4e5477[_0xa200('0x3d')],{'$or':_[_0xa200('0x32')](_0x4e5477[_0xa200('0x36')],function(_0x5361ec){var _0x1b2ac6={};_0x1b2ac6[_0x5361ec]={'$like':'%'+_0x46616c[_0xa200('0x33')][_0xa200('0x3c')]+'%'};return _0x1b2ac6;})});}_0x4e5477=_[_0xa200('0x3e')]({},_0x4e5477,_0x46616c[_0xa200('0x48')]);return db[_0xa200('0x58')][_0xa200('0x1f')]({'where':_0x4e5477['where']})['then'](function(_0x2f3b71){_0x22ddb0[_0xa200('0x1f')]=_0x2f3b71;if(_0x46616c[_0xa200('0x33')][_0xa200('0x40')]){_0x4e5477[_0xa200('0x47')]=[{'all':!![]}];}return db[_0xa200('0x58')][_0xa200('0x41')](_0x4e5477);})[_0xa200('0x28')](function(_0x1472c6){_0x22ddb0[_0xa200('0x42')]=_0x1472c6;return _0x22ddb0;});}})[_0xa200('0x28')](respondWithFilteredResult(_0x366cf5,_0x4e5477))[_0xa200('0x43')](handleError(_0x366cf5,null));};exports['getHopperHistories']=function(_0x416b9d,_0x3b0d11,_0x1a8f9e){var _0x58d2b2={'raw':!![],'where':{}};var _0x509422={};var _0x5bb505={'count':0x0,'rows':[]};return db[_0xa200('0x2e')][_0xa200('0x5d')]({'where':{'id':_0x416b9d[_0xa200('0x45')]['id']}})[_0xa200('0x28')](handleEntityNotFound(_0x3b0d11,null))[_0xa200('0x28')](function(_0x2a0537){if(_0x2a0537){_0x509422[_0xa200('0x31')]=_[_0xa200('0x34')](db[_0xa200('0x5e')][_0xa200('0x46')]);_0x509422['query']=_[_0xa200('0x34')](_0x416b9d['query']);_0x509422['filters']=_[_0xa200('0x35')](_0x509422[_0xa200('0x31')],_0x509422['query']);_0x58d2b2[_0xa200('0x36')]=_['intersection'](_0x509422[_0xa200('0x31')],qs[_0xa200('0x37')](_0x416b9d['query']['fields']));_0x58d2b2[_0xa200('0x36')]=_0x58d2b2[_0xa200('0x36')][_0xa200('0x38')]?_0x58d2b2[_0xa200('0x36')]:_0x509422['model'];if(!_0x416b9d[_0xa200('0x33')][_0xa200('0x39')](_0xa200('0x59'))){_0x58d2b2['limit']=qs[_0xa200('0x20')](_0x416b9d[_0xa200('0x33')]['limit']);_0x58d2b2[_0xa200('0x1d')]=qs[_0xa200('0x1d')](_0x416b9d[_0xa200('0x33')]['offset']);}_0x58d2b2[_0xa200('0x5a')]=qs[_0xa200('0x3a')](_0x416b9d[_0xa200('0x33')][_0xa200('0x3a')]);_0x58d2b2[_0xa200('0x3d')]=qs['filters'](_[_0xa200('0x5b')](_0x416b9d[_0xa200('0x33')],_0x509422[_0xa200('0x3b')]));_0x58d2b2['where'][_0xa200('0x5c')]=_0x2a0537['id'];if(_0x416b9d[_0xa200('0x33')]['filter']){_0x58d2b2['where']=_[_0xa200('0x3e')](_0x58d2b2[_0xa200('0x3d')],{'$or':_[_0xa200('0x32')](_0x58d2b2[_0xa200('0x36')],function(_0x22b0fa){var _0x464ba9={};_0x464ba9[_0x22b0fa]={'$like':'%'+_0x416b9d['query'][_0xa200('0x3c')]+'%'};return _0x464ba9;})});}_0x58d2b2=_['merge']({},_0x58d2b2,_0x416b9d[_0xa200('0x48')]);return db[_0xa200('0x5e')][_0xa200('0x1f')]({'where':_0x58d2b2[_0xa200('0x3d')]})[_0xa200('0x28')](function(_0x3b615a){_0x5bb505[_0xa200('0x1f')]=_0x3b615a;if(_0x416b9d[_0xa200('0x33')][_0xa200('0x40')]){_0x58d2b2[_0xa200('0x47')]=[{'all':!![]}];}return db[_0xa200('0x5e')][_0xa200('0x41')](_0x58d2b2);})['then'](function(_0x395c96){_0x5bb505[_0xa200('0x42')]=_0x395c96;return _0x5bb505;});}})[_0xa200('0x28')](respondWithFilteredResult(_0x3b0d11,_0x58d2b2))[_0xa200('0x43')](handleError(_0x3b0d11,null));};exports[_0xa200('0x5f')]=function(_0x15a914,_0x4bcf34,_0x104d90){var _0x1b2bbe={'raw':!![],'where':{}};var _0x468945={};var _0x2ab391={'count':0x0,'rows':[]};return db[_0xa200('0x2e')][_0xa200('0x5d')]({'where':{'id':_0x15a914['params']['id']}})[_0xa200('0x28')](handleEntityNotFound(_0x4bcf34,null))[_0xa200('0x28')](function(_0x5581de){if(_0x5581de){_0x468945[_0xa200('0x31')]=_[_0xa200('0x34')](db[_0xa200('0x60')][_0xa200('0x46')]);_0x468945['query']=_['keys'](_0x15a914[_0xa200('0x33')]);_0x468945[_0xa200('0x3b')]=_['intersection'](_0x468945[_0xa200('0x31')],_0x468945[_0xa200('0x33')]);_0x1b2bbe[_0xa200('0x36')]=_[_0xa200('0x35')](_0x468945[_0xa200('0x31')],qs['fields'](_0x15a914[_0xa200('0x33')][_0xa200('0x37')]));_0x1b2bbe[_0xa200('0x36')]=_0x1b2bbe[_0xa200('0x36')][_0xa200('0x38')]?_0x1b2bbe[_0xa200('0x36')]:_0x468945['model'];if(!_0x15a914[_0xa200('0x33')][_0xa200('0x39')](_0xa200('0x59'))){_0x1b2bbe[_0xa200('0x20')]=qs['limit'](_0x15a914['query'][_0xa200('0x20')]);_0x1b2bbe[_0xa200('0x1d')]=qs[_0xa200('0x1d')](_0x15a914['query'][_0xa200('0x1d')]);}_0x1b2bbe[_0xa200('0x5a')]=qs[_0xa200('0x3a')](_0x15a914[_0xa200('0x33')][_0xa200('0x3a')]);_0x1b2bbe[_0xa200('0x3d')]=qs[_0xa200('0x3b')](_[_0xa200('0x5b')](_0x15a914[_0xa200('0x33')],_0x468945[_0xa200('0x3b')]));_0x1b2bbe[_0xa200('0x3d')]['CampaignId']=_0x5581de['id'];if(_0x15a914['query'][_0xa200('0x3c')]){_0x1b2bbe[_0xa200('0x3d')]=_[_0xa200('0x3e')](_0x1b2bbe[_0xa200('0x3d')],{'$or':_[_0xa200('0x32')](_0x1b2bbe['attributes'],function(_0x479736){var _0x14bb1c={};_0x14bb1c[_0x479736]={'$like':'%'+_0x15a914['query'][_0xa200('0x3c')]+'%'};return _0x14bb1c;})});}_0x1b2bbe=_[_0xa200('0x3e')]({},_0x1b2bbe,_0x15a914[_0xa200('0x48')]);return db[_0xa200('0x60')]['count']({'where':_0x1b2bbe[_0xa200('0x3d')]})['then'](function(_0x227339){_0x2ab391['count']=_0x227339;if(_0x15a914[_0xa200('0x33')]['includeAll']){_0x1b2bbe[_0xa200('0x47')]=[{'all':!![]}];}return db['CmHopperFinal']['findAll'](_0x1b2bbe);})['then'](function(_0x259695){_0x2ab391[_0xa200('0x42')]=_0x259695;return _0x2ab391;});}})['then'](respondWithFilteredResult(_0x4bcf34,_0x1b2bbe))[_0xa200('0x43')](handleError(_0x4bcf34,null));};exports[_0xa200('0x61')]=function(_0x11e3af,_0x4ab221,_0xfb7819){var _0x181325={'raw':!![],'where':{}};var _0x2da552={};var _0xfd9926={'count':0x0,'rows':[]};return db['Campaign'][_0xa200('0x5d')]({'where':{'id':_0x11e3af[_0xa200('0x45')]['id']}})['then'](handleEntityNotFound(_0x4ab221,null))['then'](function(_0x1facd1){if(_0x1facd1){_0x2da552['model']=_['keys'](db[_0xa200('0x62')]['rawAttributes']);_0x2da552[_0xa200('0x33')]=_['keys'](_0x11e3af['query']);_0x2da552['filters']=_[_0xa200('0x35')](_0x2da552[_0xa200('0x31')],_0x2da552['query']);_0x181325[_0xa200('0x36')]=_[_0xa200('0x35')](_0x2da552['model'],qs[_0xa200('0x37')](_0x11e3af[_0xa200('0x33')][_0xa200('0x37')]));_0x181325[_0xa200('0x36')]=_0x181325['attributes'][_0xa200('0x38')]?_0x181325[_0xa200('0x36')]:_0x2da552[_0xa200('0x31')];if(!_0x11e3af[_0xa200('0x33')][_0xa200('0x39')]('nolimit')){_0x181325[_0xa200('0x20')]=qs[_0xa200('0x20')](_0x11e3af[_0xa200('0x33')][_0xa200('0x20')]);_0x181325['offset']=qs[_0xa200('0x1d')](_0x11e3af[_0xa200('0x33')]['offset']);}_0x181325[_0xa200('0x5a')]=qs[_0xa200('0x3a')](_0x11e3af[_0xa200('0x33')][_0xa200('0x3a')]);_0x181325[_0xa200('0x3d')]=qs[_0xa200('0x3b')](_[_0xa200('0x5b')](_0x11e3af[_0xa200('0x33')],_0x2da552[_0xa200('0x3b')]));_0x181325[_0xa200('0x3d')][_0xa200('0x5c')]=_0x1facd1['id'];if(_0x11e3af[_0xa200('0x33')][_0xa200('0x3c')]){_0x181325[_0xa200('0x3d')]=_[_0xa200('0x3e')](_0x181325[_0xa200('0x3d')],{'$or':_[_0xa200('0x32')](_0x181325['attributes'],function(_0x33b377){var _0x2869d3={};_0x2869d3[_0x33b377]={'$like':'%'+_0x11e3af['query'][_0xa200('0x3c')]+'%'};return _0x2869d3;})});}_0x181325=_[_0xa200('0x3e')]({},_0x181325,_0x11e3af[_0xa200('0x48')]);return db[_0xa200('0x62')][_0xa200('0x1f')]({'where':_0x181325[_0xa200('0x3d')]})[_0xa200('0x28')](function(_0x56b034){_0xfd9926[_0xa200('0x1f')]=_0x56b034;if(_0x11e3af['query'][_0xa200('0x40')]){_0x181325[_0xa200('0x47')]=[{'all':!![]}];}return db['CmHopperBlack'][_0xa200('0x41')](_0x181325);})['then'](function(_0x17256d){_0xfd9926[_0xa200('0x42')]=_0x17256d;return _0xfd9926;});}})[_0xa200('0x28')](respondWithFilteredResult(_0x4ab221,_0x181325))['catch'](handleError(_0x4ab221,null));};exports[_0xa200('0x63')]=function(_0x42da85,_0x316ae3,_0x2ae44b){var _0x810b7={};var _0x5d2b52={};var _0x37227b;var _0x2b5805;return db[_0xa200('0x2e')][_0xa200('0x5d')]({'where':{'id':_0x42da85['params']['id']}})['then'](handleEntityNotFound(_0x316ae3,null))[_0xa200('0x28')](function(_0x170bd2){if(_0x170bd2){_0x37227b=_0x170bd2;_0x5d2b52[_0xa200('0x31')]=_[_0xa200('0x34')](db[_0xa200('0x64')]['rawAttributes']);_0x5d2b52['query']=_[_0xa200('0x34')](_0x42da85['query']);_0x5d2b52[_0xa200('0x3b')]=_[_0xa200('0x35')](_0x5d2b52[_0xa200('0x31')],_0x5d2b52[_0xa200('0x33')]);_0x810b7[_0xa200('0x36')]=_[_0xa200('0x35')](_0x5d2b52['model'],qs[_0xa200('0x37')](_0x42da85[_0xa200('0x33')][_0xa200('0x37')]));_0x810b7[_0xa200('0x36')]=_0x810b7['attributes'][_0xa200('0x38')]?_0x810b7[_0xa200('0x36')]:_0x5d2b52[_0xa200('0x31')];_0x810b7[_0xa200('0x5a')]=qs[_0xa200('0x3a')](_0x42da85['query'][_0xa200('0x3a')]);_0x810b7[_0xa200('0x3d')]=qs[_0xa200('0x3b')](_['pick'](_0x42da85['query'],_0x5d2b52[_0xa200('0x3b')]));if(_0x42da85[_0xa200('0x33')]['filter']){_0x810b7['where']=_[_0xa200('0x3e')](_0x810b7[_0xa200('0x3d')],{'$or':_[_0xa200('0x32')](_0x810b7['attributes'],function(_0x33594d){var _0x4b2db4={};_0x4b2db4[_0x33594d]={'$like':'%'+_0x42da85[_0xa200('0x33')][_0xa200('0x3c')]+'%'};return _0x4b2db4;})});}_0x810b7=_[_0xa200('0x3e')]({},_0x810b7,_0x42da85[_0xa200('0x48')]);return _0x37227b[_0xa200('0x63')](_0x810b7);}})[_0xa200('0x28')](function(_0x340114){if(_0x340114){_0x2b5805=_0x340114[_0xa200('0x38')];if(!_0x42da85[_0xa200('0x33')]['hasOwnProperty']('nolimit')){_0x810b7[_0xa200('0x20')]=qs[_0xa200('0x20')](_0x42da85[_0xa200('0x33')][_0xa200('0x20')]);_0x810b7[_0xa200('0x1d')]=qs['offset'](_0x42da85[_0xa200('0x33')][_0xa200('0x1d')]);}return _0x37227b[_0xa200('0x63')](_0x810b7);}})['then'](function(_0x4cc8d7){if(_0x4cc8d7){return _0x4cc8d7?{'count':_0x2b5805,'rows':_0x4cc8d7}:null;}})[_0xa200('0x28')](respondWithResult(_0x316ae3,null))[_0xa200('0x43')](handleError(_0x316ae3,null));};exports[_0xa200('0x65')]=function(_0x49010c,_0xcc0759,_0x4fd24d){var _0x5c74b3,_0xc65ec9;return db[_0xa200('0x2e')][_0xa200('0x49')]({'where':{'id':_0x49010c['params']['id']}})[_0xa200('0x28')](handleEntityNotFound(_0xcc0759,null))['then'](function(_0x16ee42){if(_0x16ee42){_0xc65ec9=_0x16ee42;return _0x16ee42[_0xa200('0x65')](_0x49010c['body'][_0xa200('0x66')],_['omit'](_0x49010c[_0xa200('0x4b')],[_0xa200('0x66'),'id'])||{});}return null;})['spread'](function(_0x5d1c96){var _0x2a83ed;_0x5c74b3=_0x5d1c96||[];var _0x3c15af=[];if(_0x5d1c96){for(var _0x3b3922=0x0;_0x3b3922<_0x5d1c96[_0xa200('0x38')];_0x3b3922+=0x1){var _0xc61582=_0x5d1c96[_0x3b3922]['get']({'plain':!![]});_0xc65ec9[_0xa200('0x67')]=_0x49010c[_0xa200('0x4b')][_0xa200('0x67')]?_0x49010c[_0xa200('0x4b')]['dialCheckDuplicateType']:_0xc65ec9[_0xa200('0x67')];switch(_0xc65ec9[_0xa200('0x67')]){case _0xa200('0x68'):_0x2a83ed=squel['insert']()[_0xa200('0x69')](_0xa200('0x6a'))[_0xa200('0x6b')]([_0xa200('0x6c'),_0xa200('0x6d'),'ContactId',_0xa200('0x6e'),_0xa200('0x5c'),'createdAt',_0xa200('0x55')],squel[_0xa200('0x6f')]()[_0xa200('0x70')](_0xa200('0x6c'),_0xa200('0x6c'))['field']('NOW()',_0xa200('0x6d'))['field']('id',_0xa200('0x71'))[_0xa200('0x70')](_0xc61582[_0xa200('0x72')][_0xa200('0x73')](),_0xa200('0x6e'))['field'](_0x49010c[_0xa200('0x45')]['id']['toString'](),_0xa200('0x5c'))[_0xa200('0x70')](_0xa200('0x74'),'createdAt')[_0xa200('0x70')](_0xa200('0x74'),_0xa200('0x55'))[_0xa200('0x75')](_0xa200('0x76'))[_0xa200('0x3d')](_0xa200('0x77'))[_0xa200('0x3d')](_0xa200('0x78'),_0xc61582[_0xa200('0x72')]['toString']())['where'](_0xa200('0x79'))[_0xa200('0x3d')]('phone\x20NOT\x20IN\x20(?)',squel[_0xa200('0x6f')]()[_0xa200('0x70')](_0xa200('0x7a'))[_0xa200('0x75')](_0xa200('0x7b'))[_0xa200('0x3d')]('CampaignId\x20=\x20?',_0x49010c['params']['id'][_0xa200('0x73')]()))[_0xa200('0x3d')](_0xa200('0x7c'),squel[_0xa200('0x6f')]()[_0xa200('0x70')](_0xa200('0x7d'))[_0xa200('0x75')]('cm_hopper')[_0xa200('0x3d')](_0xa200('0x7e'),_0x49010c[_0xa200('0x45')]['id']['toString']())))[_0xa200('0x73')]();break;case _0xa200('0x7f'):_0x2a83ed=squel[_0xa200('0x80')]()[_0xa200('0x69')](_0xa200('0x6a'))[_0xa200('0x6b')](['phone','scheduledAt',_0xa200('0x71'),_0xa200('0x6e'),'CampaignId',_0xa200('0x81'),'updatedAt'],squel['select']()[_0xa200('0x70')]('phone','phone')['field']('NOW()','scheduledAt')['field']('id',_0xa200('0x71'))[_0xa200('0x70')](_0xc61582[_0xa200('0x72')]['toString'](),_0xa200('0x6e'))['field'](_0x49010c['params']['id'][_0xa200('0x73')](),_0xa200('0x5c'))[_0xa200('0x70')](_0xa200('0x74'),_0xa200('0x81'))[_0xa200('0x70')](_0xa200('0x74'),_0xa200('0x55'))[_0xa200('0x75')](_0xa200('0x76'))[_0xa200('0x3d')]('deletedAt\x20IS\x20NULL')[_0xa200('0x3d')]('ListId\x20=\x20?',_0xc61582[_0xa200('0x72')][_0xa200('0x73')]())['where'](_0xa200('0x79'))['where'](_0xa200('0x7c'),squel[_0xa200('0x6f')]()[_0xa200('0x70')](_0xa200('0x7d'))[_0xa200('0x75')](_0xa200('0x6a'))['where']('CampaignId\x20=\x20?',_0x49010c[_0xa200('0x45')]['id'][_0xa200('0x73')]())))[_0xa200('0x73')]();break;default:_0x2a83ed=squel[_0xa200('0x80')]()[_0xa200('0x69')](_0xa200('0x6a'))['fromQuery']([_0xa200('0x6c'),'scheduledAt',_0xa200('0x71'),'ListId',_0xa200('0x5c'),'createdAt',_0xa200('0x55')],squel[_0xa200('0x6f')]()[_0xa200('0x70')](_0xa200('0x6c'),'phone')[_0xa200('0x70')](_0xa200('0x74'),_0xa200('0x6d'))[_0xa200('0x70')]('id',_0xa200('0x71'))[_0xa200('0x70')](_0xc61582[_0xa200('0x72')][_0xa200('0x73')](),_0xa200('0x6e'))['field'](_0x49010c[_0xa200('0x45')]['id']['toString'](),'CampaignId')[_0xa200('0x70')](_0xa200('0x74'),_0xa200('0x81'))[_0xa200('0x70')]('NOW()',_0xa200('0x55'))[_0xa200('0x75')](_0xa200('0x76'))['where'](_0xa200('0x77'))[_0xa200('0x3d')]('ListId\x20=\x20?',_0xc61582[_0xa200('0x72')]['toString']())[_0xa200('0x3d')](_0xa200('0x79')))['toString']();}_0x3c15af[_0xa200('0x82')](db[_0xa200('0x83')][_0xa200('0x33')](_0x2a83ed));}return BPromise[_0xa200('0x84')](_0x3c15af);}})['then'](function(){return _0x5c74b3;})['then'](respondWithResult(_0xcc0759,null))[_0xa200('0x43')](handleError(_0xcc0759,null));};exports['removeLists']=function(_0x347b1e,_0x44d349,_0x27c766){return db['Campaign'][_0xa200('0x49')]({'where':{'id':_0x347b1e[_0xa200('0x45')]['id']}})[_0xa200('0x28')](handleEntityNotFound(_0x44d349,null))['then'](function(_0x20938f){if(_0x20938f){return _0x20938f[_0xa200('0x85')](_0x347b1e[_0xa200('0x33')][_0xa200('0x66')]);}})[_0xa200('0x28')](function(_0x1765fb){if(_0x1765fb){return db[_0xa200('0x58')][_0xa200('0x27')]({'where':{'ListId':_0x347b1e['query'][_0xa200('0x66')],'CampaignId':_0x347b1e[_0xa200('0x45')]['id']}})[_0xa200('0x28')](function(){return _0x1765fb;});}})[_0xa200('0x28')](respondWithStatusCode(_0x44d349,null))['catch'](handleError(_0x44d349,null));};exports['getBlackLists']=function(_0x294782,_0x12bd70,_0x2d85fe){var _0x27a80a={};var _0x40a13f={};var _0x564eb8;var _0x364fc6;return db[_0xa200('0x2e')][_0xa200('0x5d')]({'where':{'id':_0x294782[_0xa200('0x45')]['id']}})[_0xa200('0x28')](handleEntityNotFound(_0x12bd70,null))[_0xa200('0x28')](function(_0x54f5df){if(_0x54f5df){_0x564eb8=_0x54f5df;_0x40a13f['model']=_[_0xa200('0x34')](db['CmList'][_0xa200('0x46')]);_0x40a13f[_0xa200('0x33')]=_['keys'](_0x294782[_0xa200('0x33')]);_0x40a13f[_0xa200('0x3b')]=_[_0xa200('0x35')](_0x40a13f['model'],_0x40a13f[_0xa200('0x33')]);_0x27a80a[_0xa200('0x36')]=_[_0xa200('0x35')](_0x40a13f[_0xa200('0x31')],qs[_0xa200('0x37')](_0x294782['query'][_0xa200('0x37')]));_0x27a80a[_0xa200('0x36')]=_0x27a80a['attributes']['length']?_0x27a80a['attributes']:_0x40a13f['model'];_0x27a80a[_0xa200('0x5a')]=qs[_0xa200('0x3a')](_0x294782[_0xa200('0x33')][_0xa200('0x3a')]);_0x27a80a[_0xa200('0x3d')]=qs[_0xa200('0x3b')](_[_0xa200('0x5b')](_0x294782['query'],_0x40a13f[_0xa200('0x3b')]));if(_0x294782[_0xa200('0x33')][_0xa200('0x3c')]){_0x27a80a['where']=_[_0xa200('0x3e')](_0x27a80a[_0xa200('0x3d')],{'$or':_[_0xa200('0x32')](_0x27a80a['attributes'],function(_0x56537e){var _0x2d4270={};_0x2d4270[_0x56537e]={'$like':'%'+_0x294782[_0xa200('0x33')][_0xa200('0x3c')]+'%'};return _0x2d4270;})});}_0x27a80a=_[_0xa200('0x3e')]({},_0x27a80a,_0x294782[_0xa200('0x48')]);return _0x564eb8['getBlackLists'](_0x27a80a);}})['then'](function(_0x48f2bb){if(_0x48f2bb){_0x364fc6=_0x48f2bb[_0xa200('0x38')];if(!_0x294782['query'][_0xa200('0x39')](_0xa200('0x59'))){_0x27a80a[_0xa200('0x20')]=qs[_0xa200('0x20')](_0x294782[_0xa200('0x33')][_0xa200('0x20')]);_0x27a80a[_0xa200('0x1d')]=qs[_0xa200('0x1d')](_0x294782[_0xa200('0x33')][_0xa200('0x1d')]);}return _0x564eb8[_0xa200('0x86')](_0x27a80a);}})[_0xa200('0x28')](function(_0xa6239){if(_0xa6239){return _0xa6239?{'count':_0x364fc6,'rows':_0xa6239}:null;}})[_0xa200('0x28')](respondWithResult(_0x12bd70,null))[_0xa200('0x43')](handleError(_0x12bd70,null));};exports[_0xa200('0x87')]=function(_0x3ad303,_0x5342c2,_0x31340d){var _0x56e223,_0x35cf6b;return db['Campaign'][_0xa200('0x49')]({'where':{'id':_0x3ad303[_0xa200('0x45')]['id']}})[_0xa200('0x28')](handleEntityNotFound(_0x5342c2,null))[_0xa200('0x28')](function(_0x295067){if(_0x295067){_0x35cf6b=_0x295067;return _0x295067['addBlackLists'](_0x3ad303[_0xa200('0x4b')][_0xa200('0x66')],_[_0xa200('0x88')](_0x3ad303[_0xa200('0x4b')],[_0xa200('0x66'),'id'])||{});}return null;})[_0xa200('0x89')](function(_0x1cd80d){var _0x3c0dfd;_0x56e223=_0x1cd80d||[];var _0xf3d01d=[];if(_0x1cd80d){for(var _0x4c2d93=0x0;_0x4c2d93<_0x1cd80d[_0xa200('0x38')];_0x4c2d93+=0x1){var _0x381c34=_0x1cd80d[_0x4c2d93][_0xa200('0x4d')]({'plain':!![]});_0x3c0dfd=squel[_0xa200('0x80')]()[_0xa200('0x69')](_0xa200('0x8a'))[_0xa200('0x6b')]([_0xa200('0x6c'),_0xa200('0x71'),'ListId',_0xa200('0x5c'),_0xa200('0x81'),_0xa200('0x55')],squel[_0xa200('0x6f')]()[_0xa200('0x70')](_0xa200('0x6c'),_0xa200('0x6c'))[_0xa200('0x70')]('id',_0xa200('0x71'))[_0xa200('0x70')](_0x381c34[_0xa200('0x72')][_0xa200('0x73')](),_0xa200('0x6e'))[_0xa200('0x70')](_0x3ad303[_0xa200('0x45')]['id']['toString'](),_0xa200('0x5c'))[_0xa200('0x70')](_0xa200('0x74'),'createdAt')[_0xa200('0x70')](_0xa200('0x74'),'updatedAt')[_0xa200('0x75')]('cm_contacts')[_0xa200('0x3d')](_0xa200('0x77'))[_0xa200('0x3d')](_0xa200('0x78'),_0x381c34[_0xa200('0x72')]['toString']())['where'](_0xa200('0x79')))['toString']();_0xf3d01d[_0xa200('0x82')](db['sequelize'][_0xa200('0x33')](_0x3c0dfd));}return BPromise[_0xa200('0x84')](_0xf3d01d);}})['then'](function(){return _0x56e223;})[_0xa200('0x28')](respondWithResult(_0x5342c2,null))[_0xa200('0x43')](handleError(_0x5342c2,null));};exports[_0xa200('0x8b')]=function(_0x40e50a,_0x45edeb,_0x298667){return db[_0xa200('0x2e')][_0xa200('0x49')]({'where':{'id':_0x40e50a[_0xa200('0x45')]['id']}})[_0xa200('0x28')](handleEntityNotFound(_0x45edeb,null))[_0xa200('0x28')](function(_0x3c43f4){if(_0x3c43f4){return _0x3c43f4[_0xa200('0x8b')](_0x40e50a[_0xa200('0x33')][_0xa200('0x66')]);}})[_0xa200('0x28')](function(_0x1eb29f){if(_0x1eb29f){return db[_0xa200('0x62')][_0xa200('0x27')]({'where':{'ListId':_0x40e50a['query'][_0xa200('0x66')],'CampaignId':_0x40e50a[_0xa200('0x45')]['id']}})[_0xa200('0x28')](function(){return _0x1eb29f;});}})[_0xa200('0x28')](respondWithStatusCode(_0x45edeb,null))[_0xa200('0x43')](handleError(_0x45edeb,null));};
\ No newline at end of file
+var _0xe7ec=['fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','save','then','destroy','get','IvrCampaigns','UserProfileResource','error','stack','name','index','map','Campaign','fieldName','type','model','query','keys','filters','intersection','attributes','fields','nolimit','sort','filter','where','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','rawAttributes','find','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','length','includeAll','createdAt','updatedAt','omit','user','getHoppers','findOne','CmHopper','hasOwnProperty','order','pick','getHopperHistories','CmHopperHistory','CampaignId','CmHopperFinal','getHopperBlacks','CmHopperBlack','getLists','CmList','ids','spread','dialCheckDuplicateType','always','insert','into','phone','scheduledAt','ContactId','ListId','select','field','NOW()','CmListId','toString','from','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','COALESCE(calleridnum,\x27\x27)','CampaignId\x20=\x20?','COALESCE(phone,\x27\x27)','cm_hopper','fromQuery','cm_contacts','deletedAt\x20IS\x20NULL','push','sequelize','all','removeLists','getBlackLists','addBlackLists','cm_hopper_black','removeBlackLists','eml-format','rimraf','zip-dir'];(function(_0xa3c8df,_0x46b2b8){var _0x1bc7d4=function(_0x38275f){while(--_0x38275f){_0xa3c8df['push'](_0xa3c8df['shift']());}};_0x1bc7d4(++_0x46b2b8);}(_0xe7ec,0x192));var _0xce7e=function(_0x334841,_0x2bbc4c){_0x334841=_0x334841-0x0;var _0x5beb4b=_0xe7ec[_0x334841];return _0x5beb4b;};'use strict';var emlformat=require(_0xce7e('0x0'));var rimraf=require(_0xce7e('0x1'));var zipdir=require(_0xce7e('0x2'));var jsonpatch=require(_0xce7e('0x3'));var rp=require(_0xce7e('0x4'));var moment=require('moment');var BPromise=require(_0xce7e('0x5'));var Mustache=require('mustache');var util=require(_0xce7e('0x6'));var path=require(_0xce7e('0x7'));var sox=require(_0xce7e('0x8'));var csv=require(_0xce7e('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xce7e('0xa'));var _=require(_0xce7e('0xb'));var squel=require(_0xce7e('0xc'));var crypto=require(_0xce7e('0xd'));var jsforce=require(_0xce7e('0xe'));var deskjs=require(_0xce7e('0xf'));var toCsv=require(_0xce7e('0x9'));var querystring=require(_0xce7e('0x10'));var Papa=require(_0xce7e('0x11'));var Redis=require(_0xce7e('0x12'));var authService=require(_0xce7e('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xce7e('0x14'));var logger=require(_0xce7e('0x15'))(_0xce7e('0x16'));var utils=require('../../config/utils');var config=require(_0xce7e('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xce7e('0x18'))['db'];function respondWithStatusCode(_0x333924,_0x2bdcba){_0x2bdcba=_0x2bdcba||0xcc;return function(_0x337f7e){if(_0x337f7e){return _0x333924[_0xce7e('0x19')](_0x2bdcba);}return _0x333924[_0xce7e('0x1a')](_0x2bdcba)[_0xce7e('0x1b')]();};}function respondWithResult(_0x27c14a,_0x163db8){_0x163db8=_0x163db8||0xc8;return function(_0x48eacd){if(_0x48eacd){return _0x27c14a['status'](_0x163db8)['json'](_0x48eacd);}};}function respondWithFilteredResult(_0x419038,_0x2d91f0){return function(_0x344345){if(_0x344345){var _0x323c38=typeof _0x2d91f0[_0xce7e('0x1c')]===_0xce7e('0x1d')&&typeof _0x2d91f0[_0xce7e('0x1e')]==='undefined';var _0x4037e6=_0x344345[_0xce7e('0x1f')];var _0x192d57=_0x323c38?0x0:_0x2d91f0[_0xce7e('0x1c')];var _0x5ba8c3=_0x323c38?_0x344345[_0xce7e('0x1f')]:_0x2d91f0[_0xce7e('0x1c')]+_0x2d91f0[_0xce7e('0x1e')];var _0x5584ee;if(_0x5ba8c3>=_0x4037e6){_0x5ba8c3=_0x4037e6;_0x5584ee=0xc8;}else{_0x5584ee=0xce;}_0x419038[_0xce7e('0x1a')](_0x5584ee);return _0x419038['set'](_0xce7e('0x20'),_0x192d57+'-'+_0x5ba8c3+'/'+_0x4037e6)[_0xce7e('0x21')](_0x344345);}return null;};}function patchUpdates(_0x7af374){return function(_0x43d8ee){try{jsonpatch[_0xce7e('0x22')](_0x43d8ee,_0x7af374,!![]);}catch(_0x3b532f){return BPromise[_0xce7e('0x23')](_0x3b532f);}return _0x43d8ee[_0xce7e('0x24')]();};}function saveUpdates(_0x578ead,_0xa141b9){return function(_0x35dfc1){if(_0x35dfc1){return _0x35dfc1['update'](_0x578ead)[_0xce7e('0x25')](function(_0x3ce836){return _0x3ce836;});}return null;};}function removeEntity(_0x46ab10,_0x56a4e7){return function(_0x49849d){if(_0x49849d){return _0x49849d[_0xce7e('0x26')]()['then'](function(){var _0x411ebd=_0x49849d[_0xce7e('0x27')]({'plain':!![]});var _0x3b0526=_0xce7e('0x28');return db[_0xce7e('0x29')][_0xce7e('0x26')]({'where':{'type':_0x3b0526,'resourceId':_0x411ebd['id']}})[_0xce7e('0x25')](function(){return _0x49849d;});})[_0xce7e('0x25')](function(){_0x46ab10[_0xce7e('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5a4493,_0x1ad7d0){return function(_0x8b3ddb){if(!_0x8b3ddb){_0x5a4493[_0xce7e('0x19')](0x194);}return _0x8b3ddb;};}function handleError(_0x3f0a37,_0x423c92){_0x423c92=_0x423c92||0x1f4;return function(_0x2c5c16){logger[_0xce7e('0x2a')](_0x2c5c16[_0xce7e('0x2b')]);if(_0x2c5c16[_0xce7e('0x2c')]){delete _0x2c5c16[_0xce7e('0x2c')];}_0x3f0a37[_0xce7e('0x1a')](_0x423c92)['send'](_0x2c5c16);};}exports[_0xce7e('0x2d')]=function(_0x150299,_0x2d21f1){var _0x549869={},_0x32d7ad={},_0x2d55be={'count':0x0,'rows':[]};var _0x342884=_[_0xce7e('0x2e')](db[_0xce7e('0x2f')]['rawAttributes'],function(_0x1cda06){return{'name':_0x1cda06[_0xce7e('0x30')],'type':_0x1cda06[_0xce7e('0x31')]['key']};});_0x32d7ad[_0xce7e('0x32')]=_['map'](_0x342884,'name');_0x32d7ad[_0xce7e('0x33')]=_[_0xce7e('0x34')](_0x150299['query']);_0x32d7ad[_0xce7e('0x35')]=_[_0xce7e('0x36')](_0x32d7ad[_0xce7e('0x32')],_0x32d7ad[_0xce7e('0x33')]);_0x549869[_0xce7e('0x37')]=_[_0xce7e('0x36')](_0x32d7ad['model'],qs[_0xce7e('0x38')](_0x150299[_0xce7e('0x33')]['fields']));_0x549869['attributes']=_0x549869[_0xce7e('0x37')]['length']?_0x549869[_0xce7e('0x37')]:_0x32d7ad[_0xce7e('0x32')];if(!_0x150299[_0xce7e('0x33')]['hasOwnProperty'](_0xce7e('0x39'))){_0x549869['limit']=qs[_0xce7e('0x1e')](_0x150299['query']['limit']);_0x549869[_0xce7e('0x1c')]=qs[_0xce7e('0x1c')](_0x150299['query'][_0xce7e('0x1c')]);}_0x549869['order']=qs['sort'](_0x150299[_0xce7e('0x33')][_0xce7e('0x3a')]);_0x549869['where']=qs[_0xce7e('0x35')](_['pick'](_0x150299[_0xce7e('0x33')],_0x32d7ad[_0xce7e('0x35')]),_0x342884);if(_0x150299[_0xce7e('0x33')][_0xce7e('0x3b')]){_0x549869[_0xce7e('0x3c')]=_[_0xce7e('0x3d')](_0x549869['where'],{'$or':_[_0xce7e('0x2e')](_0x342884,function(_0x599f16){if(_0x599f16[_0xce7e('0x31')]!==_0xce7e('0x3e')){var _0x4771a2={};_0x4771a2[_0x599f16[_0xce7e('0x2c')]]={'$like':'%'+_0x150299[_0xce7e('0x33')]['filter']+'%'};return _0x4771a2;}})});}_0x549869=_[_0xce7e('0x3d')]({},_0x549869,_0x150299[_0xce7e('0x3f')]);var _0x2ad516={'where':_0x549869[_0xce7e('0x3c')]};return db[_0xce7e('0x2f')][_0xce7e('0x1f')](_0x2ad516)['then'](function(_0x2dea65){_0x2d55be[_0xce7e('0x1f')]=_0x2dea65;if(_0x150299[_0xce7e('0x33')]['includeAll']){_0x549869[_0xce7e('0x40')]=[{'all':!![]}];}return db['Campaign'][_0xce7e('0x41')](_0x549869);})[_0xce7e('0x25')](function(_0x4ccd35){_0x2d55be[_0xce7e('0x42')]=_0x4ccd35;return _0x2d55be;})['then'](respondWithFilteredResult(_0x2d21f1,_0x549869))[_0xce7e('0x43')](handleError(_0x2d21f1,null));};exports[_0xce7e('0x44')]=function(_0x4f463e,_0x23b1ac){var _0x2969b1={'raw':![],'where':{'id':_0x4f463e[_0xce7e('0x45')]['id']}},_0x15b256={};_0x15b256[_0xce7e('0x32')]=_[_0xce7e('0x34')](db[_0xce7e('0x2f')][_0xce7e('0x46')]);_0x15b256[_0xce7e('0x33')]=_[_0xce7e('0x34')](_0x4f463e[_0xce7e('0x33')]);_0x15b256['filters']=_[_0xce7e('0x36')](_0x15b256[_0xce7e('0x32')],_0x15b256[_0xce7e('0x33')]);_0x2969b1['attributes']=_[_0xce7e('0x36')](_0x15b256['model'],qs[_0xce7e('0x38')](_0x4f463e['query'][_0xce7e('0x38')]));_0x2969b1[_0xce7e('0x37')]=_0x2969b1[_0xce7e('0x37')]['length']?_0x2969b1[_0xce7e('0x37')]:_0x15b256[_0xce7e('0x32')];if(_0x4f463e[_0xce7e('0x33')]['includeAll']){_0x2969b1[_0xce7e('0x40')]=[{'all':!![]}];}_0x2969b1=_[_0xce7e('0x3d')]({},_0x2969b1,_0x4f463e[_0xce7e('0x3f')]);return db['Campaign'][_0xce7e('0x47')](_0x2969b1)['then'](handleEntityNotFound(_0x23b1ac,null))[_0xce7e('0x25')](respondWithResult(_0x23b1ac,null))[_0xce7e('0x43')](handleError(_0x23b1ac,null));};exports['create']=function(_0x18732a,_0x30bc83){return db[_0xce7e('0x2f')]['create'](_0x18732a[_0xce7e('0x48')],{})[_0xce7e('0x25')](function(_0x46149d){var _0x187651=_0x18732a['user'][_0xce7e('0x27')]({'plain':!![]});if(!_0x187651)throw new Error(_0xce7e('0x49'));if(_0x187651[_0xce7e('0x4a')]==='user'){var _0x3b0115=_0x46149d[_0xce7e('0x27')]({'plain':!![]});var _0x445fd7='IvrCampaigns';return db[_0xce7e('0x4b')][_0xce7e('0x47')]({'where':{'name':_0x445fd7,'userProfileId':_0x187651[_0xce7e('0x4c')]},'raw':!![]})[_0xce7e('0x25')](function(_0x458f4b){if(_0x458f4b&&_0x458f4b[_0xce7e('0x4d')]===0x0){return db[_0xce7e('0x29')][_0xce7e('0x4e')]({'name':_0x3b0115[_0xce7e('0x2c')],'resourceId':_0x3b0115['id'],'type':_0x458f4b[_0xce7e('0x2c')],'sectionId':_0x458f4b['id']},{})[_0xce7e('0x25')](function(){return _0x46149d;});}else{return _0x46149d;}})[_0xce7e('0x43')](function(_0x1f152a){logger[_0xce7e('0x2a')](_0xce7e('0x4f'),_0x1f152a);throw _0x1f152a;});}return _0x46149d;})['then'](respondWithResult(_0x30bc83,0xc9))[_0xce7e('0x43')](handleError(_0x30bc83,null));};exports[_0xce7e('0x50')]=function(_0x499361,_0x14334f){var _0x5e4184={'where':{'id':_0x499361[_0xce7e('0x45')]['id']}},_0x5e25de={};_0x5e25de[_0xce7e('0x32')]=_[_0xce7e('0x34')](db['Campaign']['rawAttributes']);_0x5e4184[_0xce7e('0x37')]=_[_0xce7e('0x36')](_0x5e25de[_0xce7e('0x32')],qs[_0xce7e('0x38')](_0x499361[_0xce7e('0x33')][_0xce7e('0x38')]));_0x5e4184[_0xce7e('0x37')]=_0x5e4184[_0xce7e('0x37')][_0xce7e('0x51')]?_0x5e4184[_0xce7e('0x37')]:_0x5e25de[_0xce7e('0x32')];if(_0x499361[_0xce7e('0x33')][_0xce7e('0x52')]){_0x5e4184[_0xce7e('0x40')]=[{'all':!![]}];}_0x5e4184=_[_0xce7e('0x3d')]({},_0x5e4184,_0x499361[_0xce7e('0x3f')]);return db[_0xce7e('0x2f')][_0xce7e('0x47')](_0x5e4184)[_0xce7e('0x25')](handleEntityNotFound(_0x14334f,null))['then'](function(_0x5e5ed1){if(_0x5e5ed1){var _0xc8798=_0x5e5ed1['get']({'plain':!![]});_0xc8798=qs['omit'](_0xc8798,['id',_0xce7e('0x53'),_0xce7e('0x54')]);_0x499361['body']=_[_0xce7e('0x55')](_0x499361['body'],['id',_0xce7e('0x53'),_0xce7e('0x54')]);return db['Campaign']['create'](_[_0xce7e('0x3d')](_0xc8798,_0x499361[_0xce7e('0x48')]),{'include':_0x499361[_0xce7e('0x33')][_0xce7e('0x52')]?[{'all':!![]}]:undefined})[_0xce7e('0x25')](function(_0x57158e){var _0x34022a=_0x499361[_0xce7e('0x56')][_0xce7e('0x27')]({'plain':!![]});if(!_0x34022a)throw new Error(_0xce7e('0x49'));if(_0x34022a[_0xce7e('0x4a')]===_0xce7e('0x56')){var _0x1ae89d=_0x57158e['get']({'plain':!![]});var _0xf445c0='IvrCampaigns';return db[_0xce7e('0x4b')][_0xce7e('0x47')]({'where':{'name':_0xf445c0,'userProfileId':_0x34022a[_0xce7e('0x4c')]},'raw':!![]})[_0xce7e('0x25')](function(_0xa1d84d){if(_0xa1d84d&&_0xa1d84d['autoAssociation']===0x0){return db['UserProfileResource'][_0xce7e('0x4e')]({'name':_0x1ae89d[_0xce7e('0x2c')],'resourceId':_0x1ae89d['id'],'type':_0xa1d84d[_0xce7e('0x2c')],'sectionId':_0xa1d84d['id']},{})[_0xce7e('0x25')](function(){return _0x57158e;});}else{return _0x57158e;}})[_0xce7e('0x43')](function(_0x394da3){logger['error'](_0xce7e('0x4f'),_0x394da3);throw _0x394da3;});}return _0x57158e;});}})['then'](respondWithResult(_0x14334f,0xc9))[_0xce7e('0x43')](handleError(_0x14334f,null));};exports['update']=function(_0x9250ff,_0x3c6900){if(_0x9250ff[_0xce7e('0x48')]['id']){delete _0x9250ff['body']['id'];}return db[_0xce7e('0x2f')]['find']({'where':{'id':_0x9250ff[_0xce7e('0x45')]['id']}})[_0xce7e('0x25')](handleEntityNotFound(_0x3c6900,null))['then'](saveUpdates(_0x9250ff[_0xce7e('0x48')],null))['then'](respondWithResult(_0x3c6900,null))[_0xce7e('0x43')](handleError(_0x3c6900,null));};exports[_0xce7e('0x26')]=function(_0x38ec85,_0x159b5b){return db[_0xce7e('0x2f')]['find']({'where':{'id':_0x38ec85[_0xce7e('0x45')]['id']}})[_0xce7e('0x25')](handleEntityNotFound(_0x159b5b,null))[_0xce7e('0x25')](removeEntity(_0x159b5b,null))[_0xce7e('0x43')](handleError(_0x159b5b,null));};exports[_0xce7e('0x57')]=function(_0x410707,_0xca6f66,_0x43b915){var _0x436db9={'raw':!![],'where':{}};var _0x3b46a8={};var _0x5c6bc9={'count':0x0,'rows':[]};return db[_0xce7e('0x2f')][_0xce7e('0x58')]({'where':{'id':_0x410707[_0xce7e('0x45')]['id']}})[_0xce7e('0x25')](handleEntityNotFound(_0xca6f66,null))[_0xce7e('0x25')](function(_0x1c597b){if(_0x1c597b){_0x3b46a8[_0xce7e('0x32')]=_['keys'](db[_0xce7e('0x59')][_0xce7e('0x46')]);_0x3b46a8[_0xce7e('0x33')]=_[_0xce7e('0x34')](_0x410707[_0xce7e('0x33')]);_0x3b46a8['filters']=_['intersection'](_0x3b46a8[_0xce7e('0x32')],_0x3b46a8['query']);_0x436db9[_0xce7e('0x37')]=_[_0xce7e('0x36')](_0x3b46a8['model'],qs[_0xce7e('0x38')](_0x410707[_0xce7e('0x33')][_0xce7e('0x38')]));_0x436db9[_0xce7e('0x37')]=_0x436db9[_0xce7e('0x37')][_0xce7e('0x51')]?_0x436db9[_0xce7e('0x37')]:_0x3b46a8['model'];if(!_0x410707[_0xce7e('0x33')][_0xce7e('0x5a')](_0xce7e('0x39'))){_0x436db9[_0xce7e('0x1e')]=qs['limit'](_0x410707[_0xce7e('0x33')]['limit']);_0x436db9['offset']=qs[_0xce7e('0x1c')](_0x410707['query']['offset']);}_0x436db9[_0xce7e('0x5b')]=qs[_0xce7e('0x3a')](_0x410707[_0xce7e('0x33')][_0xce7e('0x3a')]);_0x436db9[_0xce7e('0x3c')]=qs[_0xce7e('0x35')](_[_0xce7e('0x5c')](_0x410707['query'],_0x3b46a8[_0xce7e('0x35')]));_0x436db9[_0xce7e('0x3c')]['CampaignId']=_0x1c597b['id'];if(_0x410707[_0xce7e('0x33')][_0xce7e('0x3b')]){_0x436db9[_0xce7e('0x3c')]=_['merge'](_0x436db9['where'],{'$or':_['map'](_0x436db9[_0xce7e('0x37')],function(_0x2ac43c){var _0x21766f={};_0x21766f[_0x2ac43c]={'$like':'%'+_0x410707['query'][_0xce7e('0x3b')]+'%'};return _0x21766f;})});}_0x436db9=_[_0xce7e('0x3d')]({},_0x436db9,_0x410707[_0xce7e('0x3f')]);return db[_0xce7e('0x59')][_0xce7e('0x1f')]({'where':_0x436db9[_0xce7e('0x3c')]})[_0xce7e('0x25')](function(_0xdfcba){_0x5c6bc9[_0xce7e('0x1f')]=_0xdfcba;if(_0x410707['query'][_0xce7e('0x52')]){_0x436db9[_0xce7e('0x40')]=[{'all':!![]}];}return db[_0xce7e('0x59')][_0xce7e('0x41')](_0x436db9);})[_0xce7e('0x25')](function(_0x1b145a){_0x5c6bc9[_0xce7e('0x42')]=_0x1b145a;return _0x5c6bc9;});}})[_0xce7e('0x25')](respondWithFilteredResult(_0xca6f66,_0x436db9))[_0xce7e('0x43')](handleError(_0xca6f66,null));};exports[_0xce7e('0x5d')]=function(_0x5d376a,_0x15e9f2,_0x277ece){var _0x132685={'raw':!![],'where':{}};var _0x39bef9={};var _0x50bb45={'count':0x0,'rows':[]};return db[_0xce7e('0x2f')][_0xce7e('0x58')]({'where':{'id':_0x5d376a[_0xce7e('0x45')]['id']}})['then'](handleEntityNotFound(_0x15e9f2,null))[_0xce7e('0x25')](function(_0x4a6205){if(_0x4a6205){_0x39bef9[_0xce7e('0x32')]=_['keys'](db[_0xce7e('0x5e')][_0xce7e('0x46')]);_0x39bef9[_0xce7e('0x33')]=_[_0xce7e('0x34')](_0x5d376a[_0xce7e('0x33')]);_0x39bef9['filters']=_[_0xce7e('0x36')](_0x39bef9['model'],_0x39bef9['query']);_0x132685['attributes']=_[_0xce7e('0x36')](_0x39bef9[_0xce7e('0x32')],qs[_0xce7e('0x38')](_0x5d376a[_0xce7e('0x33')]['fields']));_0x132685[_0xce7e('0x37')]=_0x132685[_0xce7e('0x37')]['length']?_0x132685[_0xce7e('0x37')]:_0x39bef9[_0xce7e('0x32')];if(!_0x5d376a[_0xce7e('0x33')][_0xce7e('0x5a')](_0xce7e('0x39'))){_0x132685['limit']=qs[_0xce7e('0x1e')](_0x5d376a[_0xce7e('0x33')]['limit']);_0x132685[_0xce7e('0x1c')]=qs['offset'](_0x5d376a[_0xce7e('0x33')][_0xce7e('0x1c')]);}_0x132685[_0xce7e('0x5b')]=qs[_0xce7e('0x3a')](_0x5d376a[_0xce7e('0x33')][_0xce7e('0x3a')]);_0x132685[_0xce7e('0x3c')]=qs[_0xce7e('0x35')](_[_0xce7e('0x5c')](_0x5d376a[_0xce7e('0x33')],_0x39bef9['filters']));_0x132685[_0xce7e('0x3c')][_0xce7e('0x5f')]=_0x4a6205['id'];if(_0x5d376a[_0xce7e('0x33')][_0xce7e('0x3b')]){_0x132685['where']=_[_0xce7e('0x3d')](_0x132685['where'],{'$or':_[_0xce7e('0x2e')](_0x132685[_0xce7e('0x37')],function(_0x77222e){var _0x2070b4={};_0x2070b4[_0x77222e]={'$like':'%'+_0x5d376a[_0xce7e('0x33')][_0xce7e('0x3b')]+'%'};return _0x2070b4;})});}_0x132685=_[_0xce7e('0x3d')]({},_0x132685,_0x5d376a[_0xce7e('0x3f')]);return db[_0xce7e('0x5e')][_0xce7e('0x1f')]({'where':_0x132685['where']})[_0xce7e('0x25')](function(_0x16a434){_0x50bb45[_0xce7e('0x1f')]=_0x16a434;if(_0x5d376a[_0xce7e('0x33')][_0xce7e('0x52')]){_0x132685['include']=[{'all':!![]}];}return db[_0xce7e('0x5e')][_0xce7e('0x41')](_0x132685);})['then'](function(_0x3bb572){_0x50bb45['rows']=_0x3bb572;return _0x50bb45;});}})['then'](respondWithFilteredResult(_0x15e9f2,_0x132685))[_0xce7e('0x43')](handleError(_0x15e9f2,null));};exports['getHopperFinals']=function(_0x4f7d8d,_0x26ff76,_0x221ccb){var _0x2d6171={'raw':!![],'where':{}};var _0x143f89={};var _0x222026={'count':0x0,'rows':[]};return db[_0xce7e('0x2f')][_0xce7e('0x58')]({'where':{'id':_0x4f7d8d['params']['id']}})[_0xce7e('0x25')](handleEntityNotFound(_0x26ff76,null))[_0xce7e('0x25')](function(_0x22a82a){if(_0x22a82a){_0x143f89[_0xce7e('0x32')]=_[_0xce7e('0x34')](db[_0xce7e('0x60')][_0xce7e('0x46')]);_0x143f89[_0xce7e('0x33')]=_[_0xce7e('0x34')](_0x4f7d8d['query']);_0x143f89[_0xce7e('0x35')]=_[_0xce7e('0x36')](_0x143f89['model'],_0x143f89[_0xce7e('0x33')]);_0x2d6171[_0xce7e('0x37')]=_[_0xce7e('0x36')](_0x143f89['model'],qs[_0xce7e('0x38')](_0x4f7d8d[_0xce7e('0x33')][_0xce7e('0x38')]));_0x2d6171[_0xce7e('0x37')]=_0x2d6171[_0xce7e('0x37')]['length']?_0x2d6171[_0xce7e('0x37')]:_0x143f89['model'];if(!_0x4f7d8d['query'][_0xce7e('0x5a')](_0xce7e('0x39'))){_0x2d6171[_0xce7e('0x1e')]=qs[_0xce7e('0x1e')](_0x4f7d8d[_0xce7e('0x33')][_0xce7e('0x1e')]);_0x2d6171[_0xce7e('0x1c')]=qs['offset'](_0x4f7d8d[_0xce7e('0x33')][_0xce7e('0x1c')]);}_0x2d6171[_0xce7e('0x5b')]=qs['sort'](_0x4f7d8d[_0xce7e('0x33')][_0xce7e('0x3a')]);_0x2d6171[_0xce7e('0x3c')]=qs['filters'](_[_0xce7e('0x5c')](_0x4f7d8d['query'],_0x143f89[_0xce7e('0x35')]));_0x2d6171['where'][_0xce7e('0x5f')]=_0x22a82a['id'];if(_0x4f7d8d[_0xce7e('0x33')]['filter']){_0x2d6171['where']=_[_0xce7e('0x3d')](_0x2d6171[_0xce7e('0x3c')],{'$or':_['map'](_0x2d6171['attributes'],function(_0xc6b0e9){var _0x47fa74={};_0x47fa74[_0xc6b0e9]={'$like':'%'+_0x4f7d8d[_0xce7e('0x33')]['filter']+'%'};return _0x47fa74;})});}_0x2d6171=_[_0xce7e('0x3d')]({},_0x2d6171,_0x4f7d8d[_0xce7e('0x3f')]);return db[_0xce7e('0x60')]['count']({'where':_0x2d6171[_0xce7e('0x3c')]})['then'](function(_0x568cbd){_0x222026[_0xce7e('0x1f')]=_0x568cbd;if(_0x4f7d8d[_0xce7e('0x33')][_0xce7e('0x52')]){_0x2d6171[_0xce7e('0x40')]=[{'all':!![]}];}return db['CmHopperFinal'][_0xce7e('0x41')](_0x2d6171);})[_0xce7e('0x25')](function(_0x337e3c){_0x222026['rows']=_0x337e3c;return _0x222026;});}})[_0xce7e('0x25')](respondWithFilteredResult(_0x26ff76,_0x2d6171))[_0xce7e('0x43')](handleError(_0x26ff76,null));};exports[_0xce7e('0x61')]=function(_0x4c7bfa,_0x2b5b0e,_0x208c1a){var _0x16be90={'raw':!![],'where':{}};var _0x4e821a={};var _0x170d6f={'count':0x0,'rows':[]};return db[_0xce7e('0x2f')][_0xce7e('0x58')]({'where':{'id':_0x4c7bfa[_0xce7e('0x45')]['id']}})[_0xce7e('0x25')](handleEntityNotFound(_0x2b5b0e,null))[_0xce7e('0x25')](function(_0x586f72){if(_0x586f72){_0x4e821a['model']=_['keys'](db['CmHopperBlack'][_0xce7e('0x46')]);_0x4e821a[_0xce7e('0x33')]=_['keys'](_0x4c7bfa[_0xce7e('0x33')]);_0x4e821a['filters']=_[_0xce7e('0x36')](_0x4e821a[_0xce7e('0x32')],_0x4e821a[_0xce7e('0x33')]);_0x16be90['attributes']=_[_0xce7e('0x36')](_0x4e821a[_0xce7e('0x32')],qs[_0xce7e('0x38')](_0x4c7bfa[_0xce7e('0x33')][_0xce7e('0x38')]));_0x16be90['attributes']=_0x16be90[_0xce7e('0x37')][_0xce7e('0x51')]?_0x16be90[_0xce7e('0x37')]:_0x4e821a['model'];if(!_0x4c7bfa['query'][_0xce7e('0x5a')]('nolimit')){_0x16be90[_0xce7e('0x1e')]=qs['limit'](_0x4c7bfa[_0xce7e('0x33')]['limit']);_0x16be90['offset']=qs[_0xce7e('0x1c')](_0x4c7bfa[_0xce7e('0x33')][_0xce7e('0x1c')]);}_0x16be90['order']=qs[_0xce7e('0x3a')](_0x4c7bfa['query'][_0xce7e('0x3a')]);_0x16be90['where']=qs['filters'](_[_0xce7e('0x5c')](_0x4c7bfa[_0xce7e('0x33')],_0x4e821a[_0xce7e('0x35')]));_0x16be90['where'][_0xce7e('0x5f')]=_0x586f72['id'];if(_0x4c7bfa['query'][_0xce7e('0x3b')]){_0x16be90['where']=_[_0xce7e('0x3d')](_0x16be90[_0xce7e('0x3c')],{'$or':_[_0xce7e('0x2e')](_0x16be90[_0xce7e('0x37')],function(_0x5e995b){var _0x71fd77={};_0x71fd77[_0x5e995b]={'$like':'%'+_0x4c7bfa[_0xce7e('0x33')][_0xce7e('0x3b')]+'%'};return _0x71fd77;})});}_0x16be90=_[_0xce7e('0x3d')]({},_0x16be90,_0x4c7bfa[_0xce7e('0x3f')]);return db[_0xce7e('0x62')][_0xce7e('0x1f')]({'where':_0x16be90[_0xce7e('0x3c')]})[_0xce7e('0x25')](function(_0x42ac63){_0x170d6f[_0xce7e('0x1f')]=_0x42ac63;if(_0x4c7bfa[_0xce7e('0x33')][_0xce7e('0x52')]){_0x16be90['include']=[{'all':!![]}];}return db['CmHopperBlack'][_0xce7e('0x41')](_0x16be90);})[_0xce7e('0x25')](function(_0x19f0fc){_0x170d6f[_0xce7e('0x42')]=_0x19f0fc;return _0x170d6f;});}})[_0xce7e('0x25')](respondWithFilteredResult(_0x2b5b0e,_0x16be90))[_0xce7e('0x43')](handleError(_0x2b5b0e,null));};exports[_0xce7e('0x63')]=function(_0x4ae15c,_0x19b6f9,_0x1ec724){var _0x3d2597={};var _0x132236={};var _0x3d36a2;var _0x3b0cf2;return db[_0xce7e('0x2f')][_0xce7e('0x58')]({'where':{'id':_0x4ae15c[_0xce7e('0x45')]['id']}})[_0xce7e('0x25')](handleEntityNotFound(_0x19b6f9,null))[_0xce7e('0x25')](function(_0x47b19a){if(_0x47b19a){_0x3d36a2=_0x47b19a;_0x132236[_0xce7e('0x32')]=_[_0xce7e('0x34')](db[_0xce7e('0x64')][_0xce7e('0x46')]);_0x132236[_0xce7e('0x33')]=_[_0xce7e('0x34')](_0x4ae15c[_0xce7e('0x33')]);_0x132236['filters']=_[_0xce7e('0x36')](_0x132236[_0xce7e('0x32')],_0x132236[_0xce7e('0x33')]);_0x3d2597[_0xce7e('0x37')]=_[_0xce7e('0x36')](_0x132236['model'],qs['fields'](_0x4ae15c[_0xce7e('0x33')][_0xce7e('0x38')]));_0x3d2597['attributes']=_0x3d2597[_0xce7e('0x37')][_0xce7e('0x51')]?_0x3d2597['attributes']:_0x132236[_0xce7e('0x32')];_0x3d2597['order']=qs[_0xce7e('0x3a')](_0x4ae15c[_0xce7e('0x33')][_0xce7e('0x3a')]);_0x3d2597[_0xce7e('0x3c')]=qs['filters'](_[_0xce7e('0x5c')](_0x4ae15c[_0xce7e('0x33')],_0x132236[_0xce7e('0x35')]));if(_0x4ae15c['query'][_0xce7e('0x3b')]){_0x3d2597[_0xce7e('0x3c')]=_[_0xce7e('0x3d')](_0x3d2597[_0xce7e('0x3c')],{'$or':_[_0xce7e('0x2e')](_0x3d2597[_0xce7e('0x37')],function(_0x1795ef){var _0x6e2162={};_0x6e2162[_0x1795ef]={'$like':'%'+_0x4ae15c[_0xce7e('0x33')][_0xce7e('0x3b')]+'%'};return _0x6e2162;})});}_0x3d2597=_[_0xce7e('0x3d')]({},_0x3d2597,_0x4ae15c[_0xce7e('0x3f')]);return _0x3d36a2[_0xce7e('0x63')](_0x3d2597);}})['then'](function(_0x33eb79){if(_0x33eb79){_0x3b0cf2=_0x33eb79[_0xce7e('0x51')];if(!_0x4ae15c['query'][_0xce7e('0x5a')](_0xce7e('0x39'))){_0x3d2597['limit']=qs[_0xce7e('0x1e')](_0x4ae15c['query'][_0xce7e('0x1e')]);_0x3d2597['offset']=qs[_0xce7e('0x1c')](_0x4ae15c[_0xce7e('0x33')]['offset']);}return _0x3d36a2[_0xce7e('0x63')](_0x3d2597);}})[_0xce7e('0x25')](function(_0x1536e2){if(_0x1536e2){return _0x1536e2?{'count':_0x3b0cf2,'rows':_0x1536e2}:null;}})['then'](respondWithResult(_0x19b6f9,null))['catch'](handleError(_0x19b6f9,null));};exports['addLists']=function(_0x2f94b4,_0x4bbf83,_0x307527){var _0xb7c804,_0x52524d;return db[_0xce7e('0x2f')][_0xce7e('0x47')]({'where':{'id':_0x2f94b4[_0xce7e('0x45')]['id']}})[_0xce7e('0x25')](handleEntityNotFound(_0x4bbf83,null))[_0xce7e('0x25')](function(_0x24484d){if(_0x24484d){_0x52524d=_0x24484d;return _0x24484d['addLists'](_0x2f94b4[_0xce7e('0x48')][_0xce7e('0x65')],_[_0xce7e('0x55')](_0x2f94b4['body'],[_0xce7e('0x65'),'id'])||{});}return null;})[_0xce7e('0x66')](function(_0x1d086f){var _0x40c7f0;_0xb7c804=_0x1d086f||[];var _0x18d0c5=[];if(_0x1d086f){for(var _0x167422=0x0;_0x167422<_0x1d086f['length'];_0x167422+=0x1){var _0x1db204=_0x1d086f[_0x167422][_0xce7e('0x27')]({'plain':!![]});_0x52524d[_0xce7e('0x67')]=_0x2f94b4[_0xce7e('0x48')][_0xce7e('0x67')]?_0x2f94b4[_0xce7e('0x48')][_0xce7e('0x67')]:_0x52524d['dialCheckDuplicateType'];switch(_0x52524d[_0xce7e('0x67')]){case _0xce7e('0x68'):_0x40c7f0=squel[_0xce7e('0x69')]()[_0xce7e('0x6a')]('cm_hopper')['fromQuery']([_0xce7e('0x6b'),_0xce7e('0x6c'),_0xce7e('0x6d'),_0xce7e('0x6e'),'CampaignId',_0xce7e('0x53'),_0xce7e('0x54')],squel[_0xce7e('0x6f')]()[_0xce7e('0x70')](_0xce7e('0x6b'),_0xce7e('0x6b'))['field'](_0xce7e('0x71'),_0xce7e('0x6c'))[_0xce7e('0x70')]('id',_0xce7e('0x6d'))[_0xce7e('0x70')](_0x1db204[_0xce7e('0x72')][_0xce7e('0x73')](),_0xce7e('0x6e'))[_0xce7e('0x70')](_0x2f94b4[_0xce7e('0x45')]['id'][_0xce7e('0x73')](),_0xce7e('0x5f'))['field'](_0xce7e('0x71'),_0xce7e('0x53'))[_0xce7e('0x70')]('NOW()',_0xce7e('0x54'))[_0xce7e('0x74')]('cm_contacts')[_0xce7e('0x3c')]('deletedAt\x20IS\x20NULL')[_0xce7e('0x3c')](_0xce7e('0x75'),_0x1db204[_0xce7e('0x72')][_0xce7e('0x73')]())['where'](_0xce7e('0x76'))[_0xce7e('0x3c')](_0xce7e('0x77'),squel['select']()['field'](_0xce7e('0x78'))[_0xce7e('0x74')]('cm_hopper_final')[_0xce7e('0x3c')](_0xce7e('0x79'),_0x2f94b4['params']['id'][_0xce7e('0x73')]()))[_0xce7e('0x3c')](_0xce7e('0x77'),squel[_0xce7e('0x6f')]()[_0xce7e('0x70')](_0xce7e('0x7a'))['from']('cm_hopper')['where'](_0xce7e('0x79'),_0x2f94b4[_0xce7e('0x45')]['id'][_0xce7e('0x73')]())))[_0xce7e('0x73')]();break;case'onlyIfOpen':_0x40c7f0=squel[_0xce7e('0x69')]()['into'](_0xce7e('0x7b'))[_0xce7e('0x7c')](['phone',_0xce7e('0x6c'),_0xce7e('0x6d'),_0xce7e('0x6e'),'CampaignId',_0xce7e('0x53'),_0xce7e('0x54')],squel['select']()[_0xce7e('0x70')]('phone','phone')[_0xce7e('0x70')](_0xce7e('0x71'),_0xce7e('0x6c'))[_0xce7e('0x70')]('id',_0xce7e('0x6d'))[_0xce7e('0x70')](_0x1db204[_0xce7e('0x72')][_0xce7e('0x73')](),_0xce7e('0x6e'))[_0xce7e('0x70')](_0x2f94b4[_0xce7e('0x45')]['id'][_0xce7e('0x73')](),_0xce7e('0x5f'))[_0xce7e('0x70')](_0xce7e('0x71'),'createdAt')[_0xce7e('0x70')](_0xce7e('0x71'),'updatedAt')[_0xce7e('0x74')](_0xce7e('0x7d'))[_0xce7e('0x3c')](_0xce7e('0x7e'))[_0xce7e('0x3c')](_0xce7e('0x75'),_0x1db204[_0xce7e('0x72')][_0xce7e('0x73')]())[_0xce7e('0x3c')](_0xce7e('0x76'))[_0xce7e('0x3c')](_0xce7e('0x77'),squel[_0xce7e('0x6f')]()['field']('COALESCE(phone,\x27\x27)')[_0xce7e('0x74')](_0xce7e('0x7b'))[_0xce7e('0x3c')](_0xce7e('0x79'),_0x2f94b4[_0xce7e('0x45')]['id'][_0xce7e('0x73')]())))[_0xce7e('0x73')]();break;default:_0x40c7f0=squel[_0xce7e('0x69')]()[_0xce7e('0x6a')](_0xce7e('0x7b'))[_0xce7e('0x7c')](['phone',_0xce7e('0x6c'),'ContactId',_0xce7e('0x6e'),_0xce7e('0x5f'),'createdAt',_0xce7e('0x54')],squel[_0xce7e('0x6f')]()[_0xce7e('0x70')]('phone',_0xce7e('0x6b'))['field'](_0xce7e('0x71'),_0xce7e('0x6c'))['field']('id',_0xce7e('0x6d'))[_0xce7e('0x70')](_0x1db204[_0xce7e('0x72')][_0xce7e('0x73')](),_0xce7e('0x6e'))[_0xce7e('0x70')](_0x2f94b4[_0xce7e('0x45')]['id'][_0xce7e('0x73')](),'CampaignId')['field'](_0xce7e('0x71'),_0xce7e('0x53'))['field'](_0xce7e('0x71'),_0xce7e('0x54'))[_0xce7e('0x74')](_0xce7e('0x7d'))[_0xce7e('0x3c')](_0xce7e('0x7e'))['where'](_0xce7e('0x75'),_0x1db204[_0xce7e('0x72')]['toString']())[_0xce7e('0x3c')](_0xce7e('0x76')))[_0xce7e('0x73')]();}_0x18d0c5[_0xce7e('0x7f')](db[_0xce7e('0x80')]['query'](_0x40c7f0));}return BPromise[_0xce7e('0x81')](_0x18d0c5);}})[_0xce7e('0x25')](function(){return _0xb7c804;})['then'](respondWithResult(_0x4bbf83,null))[_0xce7e('0x43')](handleError(_0x4bbf83,null));};exports[_0xce7e('0x82')]=function(_0xadc010,_0x4ca47d,_0x552b0b){return db[_0xce7e('0x2f')][_0xce7e('0x47')]({'where':{'id':_0xadc010[_0xce7e('0x45')]['id']}})['then'](handleEntityNotFound(_0x4ca47d,null))[_0xce7e('0x25')](function(_0x88a458){if(_0x88a458){return _0x88a458['removeLists'](_0xadc010[_0xce7e('0x33')][_0xce7e('0x65')]);}})[_0xce7e('0x25')](function(_0x27dedc){if(_0x27dedc){return db[_0xce7e('0x59')][_0xce7e('0x26')]({'where':{'ListId':_0xadc010[_0xce7e('0x33')][_0xce7e('0x65')],'CampaignId':_0xadc010[_0xce7e('0x45')]['id']}})[_0xce7e('0x25')](function(){return _0x27dedc;});}})[_0xce7e('0x25')](respondWithStatusCode(_0x4ca47d,null))['catch'](handleError(_0x4ca47d,null));};exports[_0xce7e('0x83')]=function(_0x5bed87,_0x531baa,_0x1f1b50){var _0x2e682b={};var _0x223f5a={};var _0x1b3d69;var _0x399d3f;return db[_0xce7e('0x2f')]['findOne']({'where':{'id':_0x5bed87['params']['id']}})['then'](handleEntityNotFound(_0x531baa,null))[_0xce7e('0x25')](function(_0x3dc668){if(_0x3dc668){_0x1b3d69=_0x3dc668;_0x223f5a['model']=_[_0xce7e('0x34')](db[_0xce7e('0x64')][_0xce7e('0x46')]);_0x223f5a[_0xce7e('0x33')]=_[_0xce7e('0x34')](_0x5bed87[_0xce7e('0x33')]);_0x223f5a[_0xce7e('0x35')]=_['intersection'](_0x223f5a['model'],_0x223f5a['query']);_0x2e682b['attributes']=_[_0xce7e('0x36')](_0x223f5a[_0xce7e('0x32')],qs[_0xce7e('0x38')](_0x5bed87[_0xce7e('0x33')]['fields']));_0x2e682b['attributes']=_0x2e682b[_0xce7e('0x37')]['length']?_0x2e682b[_0xce7e('0x37')]:_0x223f5a['model'];_0x2e682b['order']=qs[_0xce7e('0x3a')](_0x5bed87['query'][_0xce7e('0x3a')]);_0x2e682b[_0xce7e('0x3c')]=qs[_0xce7e('0x35')](_[_0xce7e('0x5c')](_0x5bed87['query'],_0x223f5a[_0xce7e('0x35')]));if(_0x5bed87[_0xce7e('0x33')][_0xce7e('0x3b')]){_0x2e682b[_0xce7e('0x3c')]=_[_0xce7e('0x3d')](_0x2e682b[_0xce7e('0x3c')],{'$or':_[_0xce7e('0x2e')](_0x2e682b[_0xce7e('0x37')],function(_0x3aeb73){var _0x34aac2={};_0x34aac2[_0x3aeb73]={'$like':'%'+_0x5bed87[_0xce7e('0x33')][_0xce7e('0x3b')]+'%'};return _0x34aac2;})});}_0x2e682b=_[_0xce7e('0x3d')]({},_0x2e682b,_0x5bed87[_0xce7e('0x3f')]);return _0x1b3d69[_0xce7e('0x83')](_0x2e682b);}})[_0xce7e('0x25')](function(_0x48f610){if(_0x48f610){_0x399d3f=_0x48f610[_0xce7e('0x51')];if(!_0x5bed87['query'][_0xce7e('0x5a')](_0xce7e('0x39'))){_0x2e682b['limit']=qs[_0xce7e('0x1e')](_0x5bed87[_0xce7e('0x33')][_0xce7e('0x1e')]);_0x2e682b[_0xce7e('0x1c')]=qs[_0xce7e('0x1c')](_0x5bed87[_0xce7e('0x33')][_0xce7e('0x1c')]);}return _0x1b3d69['getBlackLists'](_0x2e682b);}})[_0xce7e('0x25')](function(_0x45f6a3){if(_0x45f6a3){return _0x45f6a3?{'count':_0x399d3f,'rows':_0x45f6a3}:null;}})['then'](respondWithResult(_0x531baa,null))[_0xce7e('0x43')](handleError(_0x531baa,null));};exports['addBlackLists']=function(_0x3e3ea2,_0x4b3e8b,_0x3b8762){var _0x476c2d,_0x397c03;return db['Campaign']['find']({'where':{'id':_0x3e3ea2[_0xce7e('0x45')]['id']}})[_0xce7e('0x25')](handleEntityNotFound(_0x4b3e8b,null))[_0xce7e('0x25')](function(_0x2bfe13){if(_0x2bfe13){_0x397c03=_0x2bfe13;return _0x2bfe13[_0xce7e('0x84')](_0x3e3ea2[_0xce7e('0x48')][_0xce7e('0x65')],_[_0xce7e('0x55')](_0x3e3ea2[_0xce7e('0x48')],[_0xce7e('0x65'),'id'])||{});}return null;})[_0xce7e('0x66')](function(_0x43b223){var _0x22e144;_0x476c2d=_0x43b223||[];var _0x10f6dd=[];if(_0x43b223){for(var _0x35c1de=0x0;_0x35c1de<_0x43b223[_0xce7e('0x51')];_0x35c1de+=0x1){var _0x5c3a32=_0x43b223[_0x35c1de]['get']({'plain':!![]});_0x22e144=squel[_0xce7e('0x69')]()[_0xce7e('0x6a')](_0xce7e('0x85'))[_0xce7e('0x7c')](['phone','ContactId',_0xce7e('0x6e'),_0xce7e('0x5f'),_0xce7e('0x53'),'updatedAt'],squel[_0xce7e('0x6f')]()['field'](_0xce7e('0x6b'),_0xce7e('0x6b'))[_0xce7e('0x70')]('id',_0xce7e('0x6d'))[_0xce7e('0x70')](_0x5c3a32[_0xce7e('0x72')][_0xce7e('0x73')](),'ListId')[_0xce7e('0x70')](_0x3e3ea2[_0xce7e('0x45')]['id'][_0xce7e('0x73')](),_0xce7e('0x5f'))[_0xce7e('0x70')](_0xce7e('0x71'),'createdAt')[_0xce7e('0x70')]('NOW()',_0xce7e('0x54'))['from'](_0xce7e('0x7d'))['where'](_0xce7e('0x7e'))[_0xce7e('0x3c')]('ListId\x20=\x20?',_0x5c3a32[_0xce7e('0x72')][_0xce7e('0x73')]())['where'](_0xce7e('0x76')))[_0xce7e('0x73')]();_0x10f6dd[_0xce7e('0x7f')](db[_0xce7e('0x80')]['query'](_0x22e144));}return BPromise[_0xce7e('0x81')](_0x10f6dd);}})[_0xce7e('0x25')](function(){return _0x476c2d;})[_0xce7e('0x25')](respondWithResult(_0x4b3e8b,null))['catch'](handleError(_0x4b3e8b,null));};exports[_0xce7e('0x86')]=function(_0x106412,_0x1346e7,_0x42772b){return db[_0xce7e('0x2f')]['find']({'where':{'id':_0x106412[_0xce7e('0x45')]['id']}})[_0xce7e('0x25')](handleEntityNotFound(_0x1346e7,null))['then'](function(_0x1d88b6){if(_0x1d88b6){return _0x1d88b6[_0xce7e('0x86')](_0x106412[_0xce7e('0x33')]['ids']);}})[_0xce7e('0x25')](function(_0x332877){if(_0x332877){return db[_0xce7e('0x62')]['destroy']({'where':{'ListId':_0x106412[_0xce7e('0x33')][_0xce7e('0x65')],'CampaignId':_0x106412[_0xce7e('0x45')]['id']}})[_0xce7e('0x25')](function(){return _0x332877;});}})[_0xce7e('0x25')](respondWithStatusCode(_0x1346e7,null))[_0xce7e('0x43')](handleError(_0x1346e7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./campaign.attributes','exports','Campaign','campaigns','lodash','util'];(function(_0x5ca3d6,_0x5c7599){var _0x3a1032=function(_0x2b70fb){while(--_0x2b70fb){_0x5ca3d6['push'](_0x5ca3d6['shift']());}};_0x3a1032(++_0x5c7599);}(_0x7a54,0x106));var _0x47a5=function(_0x328b15,_0x36c6ac){_0x328b15=_0x328b15-0x0;var _0x507560=_0x7a54[_0x328b15];return _0x507560;};'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':[],'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(_0x2b9b7f,_0x4d47df){var _0x4ed19a=function(_0x72b5ff){while(--_0x72b5ff){_0x2b9b7f['push'](_0x2b9b7f['shift']());}};_0x4ed19a(++_0x4d47df);}(_0x9957,0x93));var _0x7995=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0x9957[_0x1ac595];return _0x455fff;};'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 _0x2e31=['error','code','message','GetCampaign','Campaign','raw','options','where','attributes','limit','include','map','model','then','debug','lodash','util','moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','client','http','request','info','Campaign,\x20%s,\x20%s','Campaign,\x20%s,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x40d0cb,_0x7deefe){var _0x597bc0=function(_0x588c3b){while(--_0x588c3b){_0x40d0cb['push'](_0x40d0cb['shift']());}};_0x597bc0(++_0x7deefe);}(_0x2e31,0x145));var _0x12e3=function(_0x23d437,_0x6f7770){_0x23d437=_0x23d437-0x0;var _0x1f779d=_0x2e31[_0x23d437];return _0x1f779d;};'use strict';var _=require(_0x12e3('0x0'));var util=require(_0x12e3('0x1'));var moment=require(_0x12e3('0x2'));var BPromise=require('bluebird');var rs=require(_0x12e3('0x3'));var fs=require('fs');var Redis=require(_0x12e3('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x12e3('0x5'))(_0x12e3('0x6'));var config=require(_0x12e3('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x12e3('0x8')][_0x12e3('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5aefcf,_0x5f056f,_0x37f287){return new BPromise(function(_0x403cc5,_0x31e2cf){return client[_0x12e3('0xa')](_0x5aefcf,_0x37f287)['then'](function(_0x438c7e){logger[_0x12e3('0xb')](_0x12e3('0xc'),_0x5f056f,'request\x20sent');logger['debug'](_0x12e3('0xd'),_0x5f056f,_0x12e3('0xe'),JSON[_0x12e3('0xf')](_0x438c7e));if(_0x438c7e[_0x12e3('0x10')]){if(_0x438c7e[_0x12e3('0x10')][_0x12e3('0x11')]===0x1f4){logger[_0x12e3('0x10')](_0x12e3('0xc'),_0x5f056f,_0x438c7e[_0x12e3('0x10')][_0x12e3('0x12')]);return _0x31e2cf(_0x438c7e[_0x12e3('0x10')][_0x12e3('0x12')]);}logger['error'](_0x12e3('0xc'),_0x5f056f,_0x438c7e[_0x12e3('0x10')][_0x12e3('0x12')]);return _0x403cc5(_0x438c7e['error'][_0x12e3('0x12')]);}else{logger[_0x12e3('0xb')]('Campaign,\x20%s,\x20%s',_0x5f056f,'request\x20sent');_0x403cc5(_0x438c7e['result'][_0x12e3('0x12')]);}})['catch'](function(_0x2f26b1){logger[_0x12e3('0x10')](_0x12e3('0xc'),_0x5f056f,_0x2f26b1);_0x31e2cf(_0x2f26b1);});});}exports[_0x12e3('0x13')]=function(_0x211c6a){var _0x2041e9=this;return new Promise(function(_0x5a63c8,_0x77ad03){return db[_0x12e3('0x14')]['findAll']({'raw':_0x211c6a['options']?_0x211c6a['options'][_0x12e3('0x15')]===undefined?!![]:![]:!![],'where':_0x211c6a['options']?_0x211c6a[_0x12e3('0x16')][_0x12e3('0x17')]||null:null,'attributes':_0x211c6a['options']?_0x211c6a['options'][_0x12e3('0x18')]||null:null,'limit':_0x211c6a[_0x12e3('0x16')]?_0x211c6a[_0x12e3('0x16')][_0x12e3('0x19')]||null:null,'include':_0x211c6a['options']?_0x211c6a['options'][_0x12e3('0x1a')]?_[_0x12e3('0x1b')](_0x211c6a[_0x12e3('0x16')][_0x12e3('0x1a')],function(_0x2cf78a){return{'model':db[_0x2cf78a['model']],'as':_0x2cf78a['as'],'attributes':_0x2cf78a[_0x12e3('0x18')],'include':_0x2cf78a[_0x12e3('0x1a')]?_[_0x12e3('0x1b')](_0x2cf78a[_0x12e3('0x1a')],function(_0x43a59f){return{'model':db[_0x43a59f[_0x12e3('0x1c')]],'as':_0x43a59f['as'],'attributes':_0x43a59f['attributes'],'include':_0x43a59f[_0x12e3('0x1a')]?_[_0x12e3('0x1b')](_0x43a59f[_0x12e3('0x1a')],function(_0x42765f){return{'model':db[_0x42765f['model']],'as':_0x42765f['as'],'attributes':_0x42765f[_0x12e3('0x18')]};}):[]};}):[]};}):[]:[]})[_0x12e3('0x1d')](function(_0x2293ec){logger['info'](_0x12e3('0x13'),_0x211c6a);logger[_0x12e3('0x1e')](_0x12e3('0x13'),_0x211c6a,JSON[_0x12e3('0xf')](_0x2293ec));_0x5a63c8(_0x2293ec);})['catch'](function(_0x342ad2){logger[_0x12e3('0x10')](_0x12e3('0x13'),_0x342ad2['message'],_0x211c6a);_0x77ad03(_0x2041e9[_0x12e3('0x10')](0x1f4,_0x342ad2['message']));});});};
\ No newline at end of file
+var _0x9755=['then','Campaign,\x20%s,\x20%s','Campaign,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','catch','GetCampaign','options','raw','where','attributes','limit','include','map','model','debug','lodash','moment','bluebird','randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request'];(function(_0x271894,_0x47b4b7){var _0x2cbeb1=function(_0x3ffc47){while(--_0x3ffc47){_0x271894['push'](_0x271894['shift']());}};_0x2cbeb1(++_0x47b4b7);}(_0x9755,0x1c6));var _0x5975=function(_0x432169,_0x7ffbe9){_0x432169=_0x432169-0x0;var _0x28e745=_0x9755[_0x432169];return _0x28e745;};'use strict';var _=require(_0x5975('0x0'));var util=require('util');var moment=require(_0x5975('0x1'));var BPromise=require(_0x5975('0x2'));var rs=require(_0x5975('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x5975('0x4'))(_0x5975('0x5'));var config=require(_0x5975('0x6'));var jayson=require(_0x5975('0x7'));var client=jayson[_0x5975('0x8')][_0x5975('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x365ac3,_0x56fc2e,_0x48d8b5){return new BPromise(function(_0x2209f1,_0x55e597){return client[_0x5975('0xa')](_0x365ac3,_0x48d8b5)[_0x5975('0xb')](function(_0x15ebfd){logger['info'](_0x5975('0xc'),_0x56fc2e,'request\x20sent');logger['debug'](_0x5975('0xd'),_0x56fc2e,_0x5975('0xe'),JSON[_0x5975('0xf')](_0x15ebfd));if(_0x15ebfd['error']){if(_0x15ebfd[_0x5975('0x10')][_0x5975('0x11')]===0x1f4){logger[_0x5975('0x10')]('Campaign,\x20%s,\x20%s',_0x56fc2e,_0x15ebfd[_0x5975('0x10')][_0x5975('0x12')]);return _0x55e597(_0x15ebfd[_0x5975('0x10')][_0x5975('0x12')]);}logger['error']('Campaign,\x20%s,\x20%s',_0x56fc2e,_0x15ebfd[_0x5975('0x10')][_0x5975('0x12')]);return _0x2209f1(_0x15ebfd[_0x5975('0x10')]['message']);}else{logger[_0x5975('0x13')]('Campaign,\x20%s,\x20%s',_0x56fc2e,_0x5975('0xe'));_0x2209f1(_0x15ebfd['result'][_0x5975('0x12')]);}})[_0x5975('0x14')](function(_0x16706c){logger[_0x5975('0x10')](_0x5975('0xc'),_0x56fc2e,_0x16706c);_0x55e597(_0x16706c);});});}exports[_0x5975('0x15')]=function(_0x203829){var _0x5e248b=this;return new Promise(function(_0x4e6806,_0x5a7071){return db['Campaign']['findAll']({'raw':_0x203829[_0x5975('0x16')]?_0x203829['options'][_0x5975('0x17')]===undefined?!![]:![]:!![],'where':_0x203829[_0x5975('0x16')]?_0x203829[_0x5975('0x16')][_0x5975('0x18')]||null:null,'attributes':_0x203829['options']?_0x203829[_0x5975('0x16')][_0x5975('0x19')]||null:null,'limit':_0x203829[_0x5975('0x16')]?_0x203829['options'][_0x5975('0x1a')]||null:null,'include':_0x203829[_0x5975('0x16')]?_0x203829[_0x5975('0x16')][_0x5975('0x1b')]?_['map'](_0x203829['options'][_0x5975('0x1b')],function(_0x2da6c8){return{'model':db[_0x2da6c8['model']],'as':_0x2da6c8['as'],'attributes':_0x2da6c8[_0x5975('0x19')],'include':_0x2da6c8['include']?_[_0x5975('0x1c')](_0x2da6c8['include'],function(_0x5e8b5a){return{'model':db[_0x5e8b5a[_0x5975('0x1d')]],'as':_0x5e8b5a['as'],'attributes':_0x5e8b5a['attributes'],'include':_0x5e8b5a[_0x5975('0x1b')]?_[_0x5975('0x1c')](_0x5e8b5a['include'],function(_0x54f304){return{'model':db[_0x54f304[_0x5975('0x1d')]],'as':_0x54f304['as'],'attributes':_0x54f304[_0x5975('0x19')]};}):[]};}):[]};}):[]:[]})[_0x5975('0xb')](function(_0x154e1a){logger[_0x5975('0x13')](_0x5975('0x15'),_0x203829);logger[_0x5975('0x1e')](_0x5975('0x15'),_0x203829,JSON[_0x5975('0xf')](_0x154e1a));_0x4e6806(_0x154e1a);})['catch'](function(_0x37db84){logger[_0x5975('0x10')](_0x5975('0x15'),_0x37db84['message'],_0x203829);_0x5a7071(_0x5e248b[_0x5975('0x10')](0x1f4,_0x37db84['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf58a=['getBlackLists','post','create','/:id/clone','clone','/:id/blacklists','addBlackLists','put','update','delete','destroy','removeLists','exports','util','Router','fs-extra','./campaign.controller','isAuthenticated','get','/:id','show','/:id/hoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','/:id/hopper_black','getHopperBlacks','/:id/lists'];(function(_0x2a3ce4,_0x266091){var _0x4a1654=function(_0x8b0be){while(--_0x8b0be){_0x2a3ce4['push'](_0x2a3ce4['shift']());}};_0x4a1654(++_0x266091);}(_0xf58a,0x1a3));var _0xaf58=function(_0x4ebc94,_0x1b5aa1){_0x4ebc94=_0x4ebc94-0x0;var _0x1bbfdb=_0xf58a[_0x4ebc94];return _0x1bbfdb;};'use strict';var multer=require('multer');var util=require(_0xaf58('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0xaf58('0x1')]();var fs_extra=require(_0xaf58('0x2'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xaf58('0x3'));router['get']('/',auth[_0xaf58('0x4')](),controller['index']);router[_0xaf58('0x5')](_0xaf58('0x6'),auth['isAuthenticated'](),controller[_0xaf58('0x7')]);router[_0xaf58('0x5')](_0xaf58('0x8'),auth[_0xaf58('0x4')](),controller['getHoppers']);router[_0xaf58('0x5')](_0xaf58('0x9'),auth['isAuthenticated'](),controller[_0xaf58('0xa')]);router[_0xaf58('0x5')](_0xaf58('0xb'),auth[_0xaf58('0x4')](),controller[_0xaf58('0xc')]);router['get'](_0xaf58('0xd'),auth['isAuthenticated'](),controller[_0xaf58('0xe')]);router[_0xaf58('0x5')](_0xaf58('0xf'),auth[_0xaf58('0x4')](),controller['getLists']);router[_0xaf58('0x5')]('/:id/blacklists',auth[_0xaf58('0x4')](),controller[_0xaf58('0x10')]);router[_0xaf58('0x11')]('/',auth[_0xaf58('0x4')](),controller[_0xaf58('0x12')]);router['post'](_0xaf58('0x13'),auth[_0xaf58('0x4')](),controller[_0xaf58('0x14')]);router[_0xaf58('0x11')]('/:id/lists',auth[_0xaf58('0x4')](),controller['addLists']);router[_0xaf58('0x11')](_0xaf58('0x15'),auth[_0xaf58('0x4')](),controller[_0xaf58('0x16')]);router[_0xaf58('0x17')](_0xaf58('0x6'),auth[_0xaf58('0x4')](),controller[_0xaf58('0x18')]);router[_0xaf58('0x19')](_0xaf58('0x6'),auth[_0xaf58('0x4')](),controller[_0xaf58('0x1a')]);router[_0xaf58('0x19')]('/:id/lists',auth[_0xaf58('0x4')](),controller[_0xaf58('0x1b')]);router[_0xaf58('0x19')](_0xaf58('0x15'),auth[_0xaf58('0x4')](),controller['removeBlackLists']);module[_0xaf58('0x1c')]=router;
\ No newline at end of file
+var _0xefd6=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/hoppers','getHoppers','getHopperHistories','/:id/hopper_finals','/:id/hopper_black','getHopperBlacks','/:id/lists','getLists','/:id/blacklists','getBlackLists','post','addLists','addBlackLists','put','update','delete','destroy','removeBlackLists','exports','multer','util','express'];(function(_0x399d8a,_0x46e4ff){var _0x42a5d3=function(_0x4ca21a){while(--_0x4ca21a){_0x399d8a['push'](_0x399d8a['shift']());}};_0x42a5d3(++_0x46e4ff);}(_0xefd6,0x171));var _0x6efd=function(_0x463d2f,_0x4e33b2){_0x463d2f=_0x463d2f-0x0;var _0x50bfb7=_0xefd6[_0x463d2f];return _0x50bfb7;};'use strict';var multer=require(_0x6efd('0x0'));var util=require(_0x6efd('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x6efd('0x2'));var router=express[_0x6efd('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x6efd('0x4'));var interaction=require(_0x6efd('0x5'));var config=require(_0x6efd('0x6'));var controller=require('./campaign.controller');router[_0x6efd('0x7')]('/',auth[_0x6efd('0x8')](),controller[_0x6efd('0x9')]);router[_0x6efd('0x7')](_0x6efd('0xa'),auth[_0x6efd('0x8')](),controller[_0x6efd('0xb')]);router[_0x6efd('0x7')](_0x6efd('0xc'),auth['isAuthenticated'](),controller[_0x6efd('0xd')]);router[_0x6efd('0x7')]('/:id/hopper_histories',auth[_0x6efd('0x8')](),controller[_0x6efd('0xe')]);router['get'](_0x6efd('0xf'),auth['isAuthenticated'](),controller['getHopperFinals']);router[_0x6efd('0x7')](_0x6efd('0x10'),auth[_0x6efd('0x8')](),controller[_0x6efd('0x11')]);router['get'](_0x6efd('0x12'),auth[_0x6efd('0x8')](),controller[_0x6efd('0x13')]);router['get'](_0x6efd('0x14'),auth[_0x6efd('0x8')](),controller[_0x6efd('0x15')]);router[_0x6efd('0x16')]('/',auth[_0x6efd('0x8')](),controller['create']);router['post']('/:id/clone',auth[_0x6efd('0x8')](),controller['clone']);router[_0x6efd('0x16')](_0x6efd('0x12'),auth[_0x6efd('0x8')](),controller[_0x6efd('0x17')]);router[_0x6efd('0x16')](_0x6efd('0x14'),auth[_0x6efd('0x8')](),controller[_0x6efd('0x18')]);router[_0x6efd('0x19')](_0x6efd('0xa'),auth[_0x6efd('0x8')](),controller[_0x6efd('0x1a')]);router[_0x6efd('0x1b')]('/:id',auth[_0x6efd('0x8')](),controller[_0x6efd('0x1c')]);router[_0x6efd('0x1b')](_0x6efd('0x12'),auth['isAuthenticated'](),controller['removeLists']);router[_0x6efd('0x1b')]('/:id/blacklists',auth['isAuthenticated'](),controller[_0x6efd('0x1d')]);module[_0x6efd('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x171b=['exports','STRING','VIRTUAL','getDataValue','key','sequelize'];(function(_0x483a61,_0x3e6646){var _0x3bca4f=function(_0xce29e){while(--_0xce29e){_0x483a61['push'](_0x483a61['shift']());}};_0x3bca4f(++_0x3e6646);}(_0x171b,0xef));var _0xb171=function(_0x30f51e,_0x3486eb){_0x30f51e=_0x30f51e-0x0;var _0xe1b5bc=_0x171b[_0x30f51e];return _0xe1b5bc;};'use strict';var Sequelize=require(_0xb171('0x0'));module[_0xb171('0x1')]={'key':{'type':Sequelize[_0xb171('0x2')],'allowNull':![]},'value':{'type':Sequelize['TEXT'],'allowNull':![]},'description':{'type':Sequelize['STRING']},'name':{'type':Sequelize[_0xb171('0x3')],'get':function(){return this[_0xb171('0x4')](_0xb171('0x5'));}}};
\ No newline at end of file
+var _0xbe90=['STRING','TEXT','VIRTUAL','getDataValue','key','sequelize','exports'];(function(_0x4b966b,_0x463b51){var _0x86b205=function(_0x292ef9){while(--_0x292ef9){_0x4b966b['push'](_0x4b966b['shift']());}};_0x86b205(++_0x463b51);}(_0xbe90,0xfa));var _0x0be9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xbe90[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x0be9('0x0'));module[_0x0be9('0x1')]={'key':{'type':Sequelize[_0x0be9('0x2')],'allowNull':![]},'value':{'type':Sequelize[_0x0be9('0x3')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'name':{'type':Sequelize[_0x0be9('0x4')],'get':function(){return this[_0x0be9('0x5')](_0x0be9('0x6'));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x417c=['attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','options','CannedAnswer','includeAll','include','catch','show','params','body','find','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','update','then','destroy','get','CannedAnswers','error','stack','name','send','index','rawAttributes','type','key','model','map','query','keys','filters','intersection'];(function(_0x3e878c,_0x293aae){var _0x2d096a=function(_0x3f6e30){while(--_0x3f6e30){_0x3e878c['push'](_0x3e878c['shift']());}};_0x2d096a(++_0x293aae);}(_0x417c,0x126));var _0xc417=function(_0x316d99,_0x14592f){_0x316d99=_0x316d99-0x0;var _0x58dd15=_0x417c[_0x316d99];return _0x58dd15;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xc417('0x0'));var moment=require(_0xc417('0x1'));var BPromise=require(_0xc417('0x2'));var Mustache=require(_0xc417('0x3'));var util=require('util');var path=require(_0xc417('0x4'));var sox=require(_0xc417('0x5'));var csv=require('to-csv');var ejs=require(_0xc417('0x6'));var fs=require('fs');var fs_extra=require(_0xc417('0x7'));var _=require(_0xc417('0x8'));var squel=require(_0xc417('0x9'));var crypto=require(_0xc417('0xa'));var jsforce=require(_0xc417('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xc417('0xc'));var querystring=require('querystring');var Papa=require(_0xc417('0xd'));var Redis=require(_0xc417('0xe'));var authService=require(_0xc417('0xf'));var qs=require(_0xc417('0x10'));var as=require(_0xc417('0x11'));var hardwareService=require(_0xc417('0x12'));var logger=require(_0xc417('0x13'))(_0xc417('0x14'));var utils=require(_0xc417('0x15'));var config=require(_0xc417('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xc417('0x17'))['db'];function respondWithStatusCode(_0x8b0f9,_0x5386ff){_0x5386ff=_0x5386ff||0xcc;return function(_0xf640d8){if(_0xf640d8){return _0x8b0f9[_0xc417('0x18')](_0x5386ff);}return _0x8b0f9[_0xc417('0x19')](_0x5386ff)[_0xc417('0x1a')]();};}function respondWithResult(_0x4556da,_0x562b43){_0x562b43=_0x562b43||0xc8;return function(_0x4610ff){if(_0x4610ff){return _0x4556da[_0xc417('0x19')](_0x562b43)[_0xc417('0x1b')](_0x4610ff);}};}function respondWithFilteredResult(_0x1130f8,_0x2efea6){return function(_0x40a888){if(_0x40a888){var _0x155459=typeof _0x2efea6['offset']===_0xc417('0x1c')&&typeof _0x2efea6[_0xc417('0x1d')]==='undefined';var _0x26ccc5=_0x40a888['count'];var _0x1f1a57=_0x155459?0x0:_0x2efea6['offset'];var _0x173e23=_0x155459?_0x40a888[_0xc417('0x1e')]:_0x2efea6[_0xc417('0x1f')]+_0x2efea6['limit'];var _0xe0df41;if(_0x173e23>=_0x26ccc5){_0x173e23=_0x26ccc5;_0xe0df41=0xc8;}else{_0xe0df41=0xce;}_0x1130f8[_0xc417('0x19')](_0xe0df41);return _0x1130f8[_0xc417('0x20')](_0xc417('0x21'),_0x1f1a57+'-'+_0x173e23+'/'+_0x26ccc5)['json'](_0x40a888);}return null;};}function patchUpdates(_0x2f3397){return function(_0x18aa6b){try{jsonpatch[_0xc417('0x22')](_0x18aa6b,_0x2f3397,!![]);}catch(_0x5a5e13){return BPromise['reject'](_0x5a5e13);}return _0x18aa6b['save']();};}function saveUpdates(_0x4a2882,_0x2a5898){return function(_0x45eeed){if(_0x45eeed){return _0x45eeed[_0xc417('0x23')](_0x4a2882)[_0xc417('0x24')](function(_0x4dba84){return _0x4dba84;});}return null;};}function removeEntity(_0x5aeb09,_0x580016){return function(_0x431657){if(_0x431657){return _0x431657[_0xc417('0x25')]()['then'](function(){var _0x29fa1c=_0x431657[_0xc417('0x26')]({'plain':!![]});var _0x58ac4b=_0xc417('0x27');return db['UserProfileResource'][_0xc417('0x25')]({'where':{'type':_0x58ac4b,'resourceId':_0x29fa1c['id']}})[_0xc417('0x24')](function(){return _0x431657;});})[_0xc417('0x24')](function(){_0x5aeb09[_0xc417('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3c49e6,_0x3ada53){return function(_0x364fff){if(!_0x364fff){_0x3c49e6[_0xc417('0x18')](0x194);}return _0x364fff;};}function handleError(_0x383b04,_0x4444c1){_0x4444c1=_0x4444c1||0x1f4;return function(_0x20cb16){logger[_0xc417('0x28')](_0x20cb16[_0xc417('0x29')]);if(_0x20cb16[_0xc417('0x2a')]){delete _0x20cb16['name'];}_0x383b04['status'](_0x4444c1)[_0xc417('0x2b')](_0x20cb16);};}exports[_0xc417('0x2c')]=function(_0x3cfa76,_0x4f7ccb){var _0x40f304={},_0x4d7d42={},_0x2ee63e={'count':0x0,'rows':[]};var _0x598493=_['map'](db['CannedAnswer'][_0xc417('0x2d')],function(_0x3e97b7){return{'name':_0x3e97b7['fieldName'],'type':_0x3e97b7[_0xc417('0x2e')][_0xc417('0x2f')]};});_0x4d7d42[_0xc417('0x30')]=_[_0xc417('0x31')](_0x598493,_0xc417('0x2a'));_0x4d7d42[_0xc417('0x32')]=_[_0xc417('0x33')](_0x3cfa76['query']);_0x4d7d42[_0xc417('0x34')]=_[_0xc417('0x35')](_0x4d7d42[_0xc417('0x30')],_0x4d7d42[_0xc417('0x32')]);_0x40f304[_0xc417('0x36')]=_['intersection'](_0x4d7d42[_0xc417('0x30')],qs[_0xc417('0x37')](_0x3cfa76[_0xc417('0x32')][_0xc417('0x37')]));_0x40f304[_0xc417('0x36')]=_0x40f304[_0xc417('0x36')][_0xc417('0x38')]?_0x40f304[_0xc417('0x36')]:_0x4d7d42[_0xc417('0x30')];if(!_0x3cfa76[_0xc417('0x32')][_0xc417('0x39')]('nolimit')){_0x40f304['limit']=qs[_0xc417('0x1d')](_0x3cfa76[_0xc417('0x32')][_0xc417('0x1d')]);_0x40f304['offset']=qs[_0xc417('0x1f')](_0x3cfa76[_0xc417('0x32')]['offset']);}_0x40f304[_0xc417('0x3a')]=qs['sort'](_0x3cfa76[_0xc417('0x32')][_0xc417('0x3b')]);_0x40f304[_0xc417('0x3c')]=qs[_0xc417('0x34')](_[_0xc417('0x3d')](_0x3cfa76[_0xc417('0x32')],_0x4d7d42[_0xc417('0x34')]),_0x598493);if(_0x3cfa76[_0xc417('0x32')][_0xc417('0x3e')]){_0x40f304[_0xc417('0x3c')]=_['merge'](_0x40f304[_0xc417('0x3c')],{'$or':[{'key':{'$like':'%'+_0x3cfa76[_0xc417('0x32')]['filter']+'%'}},{'value':{'$like':'%'+_0x3cfa76[_0xc417('0x32')]['filter']+'%'}}]});}_0x40f304=_[_0xc417('0x3f')]({},_0x40f304,_0x3cfa76[_0xc417('0x40')]);var _0x49075b={'where':_0x40f304[_0xc417('0x3c')]};return db[_0xc417('0x41')]['count'](_0x49075b)['then'](function(_0x2fa08b){_0x2ee63e[_0xc417('0x1e')]=_0x2fa08b;if(_0x3cfa76[_0xc417('0x32')][_0xc417('0x42')]){_0x40f304[_0xc417('0x43')]=[{'all':!![]}];}return db[_0xc417('0x41')]['findAll'](_0x40f304);})['then'](function(_0x3efb0d){_0x2ee63e['rows']=_0x3efb0d;return _0x2ee63e;})['then'](respondWithFilteredResult(_0x4f7ccb,_0x40f304))[_0xc417('0x44')](handleError(_0x4f7ccb,null));};exports[_0xc417('0x45')]=function(_0x306bba,_0x47630b){var _0x4a3b4c={'raw':!![],'where':{'id':_0x306bba[_0xc417('0x46')]['id']}},_0x4e68d3={};_0x4e68d3[_0xc417('0x30')]=_[_0xc417('0x33')](db[_0xc417('0x41')][_0xc417('0x2d')]);_0x4e68d3[_0xc417('0x32')]=_[_0xc417('0x33')](_0x306bba[_0xc417('0x32')]);_0x4e68d3[_0xc417('0x34')]=_['intersection'](_0x4e68d3[_0xc417('0x30')],_0x4e68d3[_0xc417('0x32')]);_0x4a3b4c[_0xc417('0x36')]=_[_0xc417('0x35')](_0x4e68d3[_0xc417('0x30')],qs[_0xc417('0x37')](_0x306bba[_0xc417('0x32')][_0xc417('0x37')]));_0x4a3b4c['attributes']=_0x4a3b4c[_0xc417('0x36')][_0xc417('0x38')]?_0x4a3b4c[_0xc417('0x36')]:_0x4e68d3[_0xc417('0x30')];if(_0x306bba[_0xc417('0x32')][_0xc417('0x42')]){_0x4a3b4c[_0xc417('0x43')]=[{'all':!![]}];}_0x4a3b4c=_[_0xc417('0x3f')]({},_0x4a3b4c,_0x306bba[_0xc417('0x40')]);return db[_0xc417('0x41')]['find'](_0x4a3b4c)[_0xc417('0x24')](handleEntityNotFound(_0x47630b,null))[_0xc417('0x24')](respondWithResult(_0x47630b,null))['catch'](handleError(_0x47630b,null));};exports[_0xc417('0x23')]=function(_0x43447b,_0x2b17d2){if(_0x43447b[_0xc417('0x47')]['id']){delete _0x43447b[_0xc417('0x47')]['id'];}return db['CannedAnswer'][_0xc417('0x48')]({'where':{'id':_0x43447b[_0xc417('0x46')]['id']}})['then'](handleEntityNotFound(_0x2b17d2,null))['then'](saveUpdates(_0x43447b['body'],null))[_0xc417('0x24')](respondWithResult(_0x2b17d2,null))[_0xc417('0x44')](handleError(_0x2b17d2,null));};exports[_0xc417('0x25')]=function(_0x4fea60,_0x110cee){return db[_0xc417('0x41')]['find']({'where':{'id':_0x4fea60[_0xc417('0x46')]['id']}})[_0xc417('0x24')](handleEntityNotFound(_0x110cee,null))[_0xc417('0x24')](removeEntity(_0x110cee,null))[_0xc417('0x44')](handleError(_0x110cee,null));};exports[_0xc417('0x49')]=function(_0x44fb3e,_0x2af9d7){var _0x39416d={'key':_0x44fb3e[_0xc417('0x47')][_0xc417('0x2f')]};if(_0x44fb3e[_0xc417('0x47')][_0xc417('0x4a')]){_0x39416d['MailAccountId']=_0x44fb3e['body'][_0xc417('0x4a')];}else if(_0x44fb3e[_0xc417('0x47')][_0xc417('0x4b')]){_0x39416d[_0xc417('0x4b')]=_0x44fb3e[_0xc417('0x47')][_0xc417('0x4b')];}else if(_0x44fb3e[_0xc417('0x47')]['OpenchannelAccountId']){_0x39416d[_0xc417('0x4c')]=_0x44fb3e[_0xc417('0x47')]['OpenchannelAccountId'];}else if(_0x44fb3e[_0xc417('0x47')][_0xc417('0x4d')]){_0x39416d[_0xc417('0x4d')]=_0x44fb3e[_0xc417('0x47')][_0xc417('0x4d')];}return db[_0xc417('0x41')][_0xc417('0x48')]({'where':_0x39416d})[_0xc417('0x24')](function(_0x2e57a8){if(_0x2e57a8){throw new db['Sequelize'][(_0xc417('0x4e'))](_0xc417('0x4f'));}return db[_0xc417('0x41')][_0xc417('0x49')](_0x44fb3e[_0xc417('0x47')]);})[_0xc417('0x24')](function(_0xc71b92){var _0x2a13a7=_0x44fb3e[_0xc417('0x50')][_0xc417('0x26')]({'plain':!![]});if(!_0x2a13a7)throw new Error(_0xc417('0x51'));if(_0x2a13a7[_0xc417('0x52')]===_0xc417('0x50')){var _0x57f3ce=_0xc71b92[_0xc417('0x26')]({'plain':!![]});return db[_0xc417('0x53')]['find']({'where':{'name':_0xc417('0x27'),'userProfileId':_0x2a13a7[_0xc417('0x54')]},'raw':!![]})[_0xc417('0x24')](function(_0x2ba47d){if(_0x2ba47d&&_0x2ba47d['autoAssociation']===0x0){return db[_0xc417('0x55')][_0xc417('0x49')]({'name':_0x57f3ce['name'],'resourceId':_0x57f3ce['id'],'type':_0x2ba47d['name'],'sectionId':_0x2ba47d['id']},{})[_0xc417('0x24')](function(){return _0xc71b92;});}else{return _0xc71b92;}})[_0xc417('0x44')](function(_0xc9e135){logger[_0xc417('0x28')](_0xc417('0x56'),_0xc9e135);throw _0xc9e135;});}return _0xc71b92;})[_0xc417('0x24')](respondWithResult(_0x2af9d7,0xc9))[_0xc417('0x44')](handleError(_0x2af9d7,null));};
\ No newline at end of file
+var _0x6e16=['key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','CannedAnswer','includeAll','include','findAll','rows','catch','show','params','options','find','body','destroy','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','get','CannedAnswers','UserProfileResource','stack','name','send','index','map','rawAttributes','fieldName','type'];(function(_0x59e725,_0x7d39bb){var _0x43f28f=function(_0x16aa26){while(--_0x16aa26){_0x59e725['push'](_0x59e725['shift']());}};_0x43f28f(++_0x7d39bb);}(_0x6e16,0x197));var _0x66e1=function(_0x1a32dc,_0x4381d2){_0x1a32dc=_0x1a32dc-0x0;var _0x42118a=_0x6e16[_0x1a32dc];return _0x42118a;};'use strict';var emlformat=require(_0x66e1('0x0'));var rimraf=require(_0x66e1('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x66e1('0x2'));var moment=require(_0x66e1('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x66e1('0x4'));var path=require(_0x66e1('0x5'));var sox=require(_0x66e1('0x6'));var csv=require(_0x66e1('0x7'));var ejs=require(_0x66e1('0x8'));var fs=require('fs');var fs_extra=require(_0x66e1('0x9'));var _=require(_0x66e1('0xa'));var squel=require(_0x66e1('0xb'));var crypto=require('crypto');var jsforce=require(_0x66e1('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x66e1('0x7'));var querystring=require(_0x66e1('0xd'));var Papa=require(_0x66e1('0xe'));var Redis=require(_0x66e1('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x66e1('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x66e1('0x11'))(_0x66e1('0x12'));var utils=require(_0x66e1('0x13'));var config=require(_0x66e1('0x14'));var licenseUtil=require(_0x66e1('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4bf9a4,_0x42de16){_0x42de16=_0x42de16||0xcc;return function(_0x35e1f1){if(_0x35e1f1){return _0x4bf9a4[_0x66e1('0x16')](_0x42de16);}return _0x4bf9a4[_0x66e1('0x17')](_0x42de16)[_0x66e1('0x18')]();};}function respondWithResult(_0x4636d5,_0x19af07){_0x19af07=_0x19af07||0xc8;return function(_0x8e36f8){if(_0x8e36f8){return _0x4636d5['status'](_0x19af07)[_0x66e1('0x19')](_0x8e36f8);}};}function respondWithFilteredResult(_0x1cdecd,_0x494817){return function(_0x14b505){if(_0x14b505){var _0x578844=typeof _0x494817[_0x66e1('0x1a')]===_0x66e1('0x1b')&&typeof _0x494817[_0x66e1('0x1c')]===_0x66e1('0x1b');var _0x5eff1f=_0x14b505[_0x66e1('0x1d')];var _0x53d710=_0x578844?0x0:_0x494817[_0x66e1('0x1a')];var _0x2881b6=_0x578844?_0x14b505[_0x66e1('0x1d')]:_0x494817[_0x66e1('0x1a')]+_0x494817[_0x66e1('0x1c')];var _0x2fc264;if(_0x2881b6>=_0x5eff1f){_0x2881b6=_0x5eff1f;_0x2fc264=0xc8;}else{_0x2fc264=0xce;}_0x1cdecd[_0x66e1('0x17')](_0x2fc264);return _0x1cdecd[_0x66e1('0x1e')](_0x66e1('0x1f'),_0x53d710+'-'+_0x2881b6+'/'+_0x5eff1f)[_0x66e1('0x19')](_0x14b505);}return null;};}function patchUpdates(_0x1b7dfc){return function(_0x463079){try{jsonpatch[_0x66e1('0x20')](_0x463079,_0x1b7dfc,!![]);}catch(_0x92d904){return BPromise[_0x66e1('0x21')](_0x92d904);}return _0x463079[_0x66e1('0x22')]();};}function saveUpdates(_0xca969,_0x1c9c16){return function(_0x2245ac){if(_0x2245ac){return _0x2245ac[_0x66e1('0x23')](_0xca969)[_0x66e1('0x24')](function(_0x19517a){return _0x19517a;});}return null;};}function removeEntity(_0x309b7c,_0x1f394c){return function(_0x38f892){if(_0x38f892){return _0x38f892['destroy']()['then'](function(){var _0x306599=_0x38f892[_0x66e1('0x25')]({'plain':!![]});var _0x19ead2=_0x66e1('0x26');return db[_0x66e1('0x27')]['destroy']({'where':{'type':_0x19ead2,'resourceId':_0x306599['id']}})[_0x66e1('0x24')](function(){return _0x38f892;});})[_0x66e1('0x24')](function(){_0x309b7c['status'](0xcc)[_0x66e1('0x18')]();});}};}function handleEntityNotFound(_0x3e962b,_0xb9ced5){return function(_0x3333c4){if(!_0x3333c4){_0x3e962b['sendStatus'](0x194);}return _0x3333c4;};}function handleError(_0x24d75b,_0x5046e3){_0x5046e3=_0x5046e3||0x1f4;return function(_0xc3e2f9){logger['error'](_0xc3e2f9[_0x66e1('0x28')]);if(_0xc3e2f9[_0x66e1('0x29')]){delete _0xc3e2f9['name'];}_0x24d75b[_0x66e1('0x17')](_0x5046e3)[_0x66e1('0x2a')](_0xc3e2f9);};}exports[_0x66e1('0x2b')]=function(_0x58be9e,_0x398a98){var _0xd10865={},_0x4ae0a5={},_0x8ec585={'count':0x0,'rows':[]};var _0x1576eb=_[_0x66e1('0x2c')](db['CannedAnswer'][_0x66e1('0x2d')],function(_0x1ae265){return{'name':_0x1ae265[_0x66e1('0x2e')],'type':_0x1ae265[_0x66e1('0x2f')][_0x66e1('0x30')]};});_0x4ae0a5[_0x66e1('0x31')]=_['map'](_0x1576eb,_0x66e1('0x29'));_0x4ae0a5[_0x66e1('0x32')]=_[_0x66e1('0x33')](_0x58be9e['query']);_0x4ae0a5[_0x66e1('0x34')]=_[_0x66e1('0x35')](_0x4ae0a5[_0x66e1('0x31')],_0x4ae0a5[_0x66e1('0x32')]);_0xd10865[_0x66e1('0x36')]=_[_0x66e1('0x35')](_0x4ae0a5[_0x66e1('0x31')],qs[_0x66e1('0x37')](_0x58be9e[_0x66e1('0x32')][_0x66e1('0x37')]));_0xd10865[_0x66e1('0x36')]=_0xd10865['attributes']['length']?_0xd10865[_0x66e1('0x36')]:_0x4ae0a5[_0x66e1('0x31')];if(!_0x58be9e[_0x66e1('0x32')][_0x66e1('0x38')](_0x66e1('0x39'))){_0xd10865[_0x66e1('0x1c')]=qs[_0x66e1('0x1c')](_0x58be9e[_0x66e1('0x32')][_0x66e1('0x1c')]);_0xd10865[_0x66e1('0x1a')]=qs[_0x66e1('0x1a')](_0x58be9e[_0x66e1('0x32')][_0x66e1('0x1a')]);}_0xd10865['order']=qs[_0x66e1('0x3a')](_0x58be9e[_0x66e1('0x32')][_0x66e1('0x3a')]);_0xd10865[_0x66e1('0x3b')]=qs['filters'](_[_0x66e1('0x3c')](_0x58be9e[_0x66e1('0x32')],_0x4ae0a5[_0x66e1('0x34')]),_0x1576eb);if(_0x58be9e['query'][_0x66e1('0x3d')]){_0xd10865[_0x66e1('0x3b')]=_[_0x66e1('0x3e')](_0xd10865[_0x66e1('0x3b')],{'$or':[{'key':{'$like':'%'+_0x58be9e[_0x66e1('0x32')][_0x66e1('0x3d')]+'%'}},{'value':{'$like':'%'+_0x58be9e[_0x66e1('0x32')]['filter']+'%'}}]});}_0xd10865=_[_0x66e1('0x3e')]({},_0xd10865,_0x58be9e['options']);var _0x5b00e3={'where':_0xd10865[_0x66e1('0x3b')]};return db[_0x66e1('0x3f')][_0x66e1('0x1d')](_0x5b00e3)['then'](function(_0x495f3c){_0x8ec585[_0x66e1('0x1d')]=_0x495f3c;if(_0x58be9e[_0x66e1('0x32')][_0x66e1('0x40')]){_0xd10865[_0x66e1('0x41')]=[{'all':!![]}];}return db[_0x66e1('0x3f')][_0x66e1('0x42')](_0xd10865);})[_0x66e1('0x24')](function(_0x2ca1cb){_0x8ec585[_0x66e1('0x43')]=_0x2ca1cb;return _0x8ec585;})[_0x66e1('0x24')](respondWithFilteredResult(_0x398a98,_0xd10865))[_0x66e1('0x44')](handleError(_0x398a98,null));};exports[_0x66e1('0x45')]=function(_0x5186d1,_0x2c9c17){var _0x353b6a={'raw':!![],'where':{'id':_0x5186d1[_0x66e1('0x46')]['id']}},_0x4c5fd7={};_0x4c5fd7[_0x66e1('0x31')]=_['keys'](db['CannedAnswer'][_0x66e1('0x2d')]);_0x4c5fd7['query']=_[_0x66e1('0x33')](_0x5186d1[_0x66e1('0x32')]);_0x4c5fd7[_0x66e1('0x34')]=_[_0x66e1('0x35')](_0x4c5fd7[_0x66e1('0x31')],_0x4c5fd7[_0x66e1('0x32')]);_0x353b6a[_0x66e1('0x36')]=_[_0x66e1('0x35')](_0x4c5fd7['model'],qs[_0x66e1('0x37')](_0x5186d1['query'][_0x66e1('0x37')]));_0x353b6a[_0x66e1('0x36')]=_0x353b6a[_0x66e1('0x36')]['length']?_0x353b6a['attributes']:_0x4c5fd7[_0x66e1('0x31')];if(_0x5186d1['query']['includeAll']){_0x353b6a[_0x66e1('0x41')]=[{'all':!![]}];}_0x353b6a=_[_0x66e1('0x3e')]({},_0x353b6a,_0x5186d1[_0x66e1('0x47')]);return db['CannedAnswer'][_0x66e1('0x48')](_0x353b6a)[_0x66e1('0x24')](handleEntityNotFound(_0x2c9c17,null))[_0x66e1('0x24')](respondWithResult(_0x2c9c17,null))[_0x66e1('0x44')](handleError(_0x2c9c17,null));};exports[_0x66e1('0x23')]=function(_0x346c25,_0x2875f8){if(_0x346c25['body']['id']){delete _0x346c25[_0x66e1('0x49')]['id'];}return db[_0x66e1('0x3f')][_0x66e1('0x48')]({'where':{'id':_0x346c25[_0x66e1('0x46')]['id']}})[_0x66e1('0x24')](handleEntityNotFound(_0x2875f8,null))['then'](saveUpdates(_0x346c25[_0x66e1('0x49')],null))['then'](respondWithResult(_0x2875f8,null))[_0x66e1('0x44')](handleError(_0x2875f8,null));};exports[_0x66e1('0x4a')]=function(_0x1be7f4,_0x1036a8){return db[_0x66e1('0x3f')][_0x66e1('0x48')]({'where':{'id':_0x1be7f4[_0x66e1('0x46')]['id']}})['then'](handleEntityNotFound(_0x1036a8,null))['then'](removeEntity(_0x1036a8,null))['catch'](handleError(_0x1036a8,null));};exports[_0x66e1('0x4b')]=function(_0x5852cb,_0x4a99d4){var _0x548acc={'key':_0x5852cb[_0x66e1('0x49')][_0x66e1('0x30')]};if(_0x5852cb[_0x66e1('0x49')][_0x66e1('0x4c')]){_0x548acc[_0x66e1('0x4c')]=_0x5852cb[_0x66e1('0x49')]['MailAccountId'];}else if(_0x5852cb[_0x66e1('0x49')][_0x66e1('0x4d')]){_0x548acc[_0x66e1('0x4d')]=_0x5852cb['body'][_0x66e1('0x4d')];}else if(_0x5852cb[_0x66e1('0x49')]['OpenchannelAccountId']){_0x548acc[_0x66e1('0x4e')]=_0x5852cb[_0x66e1('0x49')][_0x66e1('0x4e')];}else if(_0x5852cb[_0x66e1('0x49')]['ChatWebsiteId']){_0x548acc[_0x66e1('0x4f')]=_0x5852cb[_0x66e1('0x49')][_0x66e1('0x4f')];}return db[_0x66e1('0x3f')]['find']({'where':_0x548acc})[_0x66e1('0x24')](function(_0x17d3af){if(_0x17d3af){throw new db[(_0x66e1('0x50'))][(_0x66e1('0x51'))](_0x66e1('0x52'));}return db['CannedAnswer'][_0x66e1('0x4b')](_0x5852cb[_0x66e1('0x49')]);})['then'](function(_0xb12689){var _0x204863=_0x5852cb[_0x66e1('0x53')]['get']({'plain':!![]});if(!_0x204863)throw new Error(_0x66e1('0x54'));if(_0x204863[_0x66e1('0x55')]===_0x66e1('0x53')){var _0x1f08f7=_0xb12689[_0x66e1('0x25')]({'plain':!![]});return db[_0x66e1('0x56')][_0x66e1('0x48')]({'where':{'name':'CannedAnswers','userProfileId':_0x204863[_0x66e1('0x57')]},'raw':!![]})[_0x66e1('0x24')](function(_0x4677e8){if(_0x4677e8&&_0x4677e8[_0x66e1('0x58')]===0x0){return db[_0x66e1('0x27')][_0x66e1('0x4b')]({'name':_0x1f08f7['name'],'resourceId':_0x1f08f7['id'],'type':_0x4677e8[_0x66e1('0x29')],'sectionId':_0x4677e8['id']},{})[_0x66e1('0x24')](function(){return _0xb12689;});}else{return _0xb12689;}})['catch'](function(_0x1499b0){logger[_0x66e1('0x59')](_0x66e1('0x5a'),_0x1499b0);throw _0x1499b0;});}return _0xb12689;})[_0x66e1('0x24')](respondWithResult(_0x4a99d4,0xc9))['catch'](handleError(_0x4a99d4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe50d=['request-promise','rimraf','exports','define','CannedAnswer','tools_canned_answers','utf8mb4_unicode_ci','lodash','../../config/logger','api','moment'];(function(_0x5866bb,_0x5e93a){var _0x1ae995=function(_0x240d12){while(--_0x240d12){_0x5866bb['push'](_0x5866bb['shift']());}};_0x1ae995(++_0x5e93a);}(_0xe50d,0xc2));var _0xde50=function(_0x6d1be5,_0x445c53){_0x6d1be5=_0x6d1be5-0x0;var _0x39984a=_0xe50d[_0x6d1be5];return _0x39984a;};'use strict';var _=require(_0xde50('0x0'));var util=require('util');var logger=require(_0xde50('0x1'))(_0xde50('0x2'));var moment=require(_0xde50('0x3'));var BPromise=require('bluebird');var rp=require(_0xde50('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xde50('0x5'));var config=require('../../config/environment');var attributes=require('./cannedAnswer.attributes');module[_0xde50('0x6')]=function(_0x297aee,_0x2804dc){return _0x297aee[_0xde50('0x7')](_0xde50('0x8'),attributes,{'tableName':_0xde50('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0xde50('0xa')});};
\ No newline at end of file
+var _0x04cc=['api','moment','request-promise','path','rimraf','../../config/environment','./cannedAnswer.attributes','exports','define','CannedAnswer','tools_canned_answers','utf8mb4_unicode_ci','lodash','util','../../config/logger'];(function(_0x196169,_0x2b0b0a){var _0x169ec3=function(_0x4dcfa6){while(--_0x4dcfa6){_0x196169['push'](_0x196169['shift']());}};_0x169ec3(++_0x2b0b0a);}(_0x04cc,0x1bf));var _0xc04c=function(_0x1a08cf,_0x186382){_0x1a08cf=_0x1a08cf-0x0;var _0x4174b7=_0x04cc[_0x1a08cf];return _0x4174b7;};'use strict';var _=require(_0xc04c('0x0'));var util=require(_0xc04c('0x1'));var logger=require(_0xc04c('0x2'))(_0xc04c('0x3'));var moment=require(_0xc04c('0x4'));var BPromise=require('bluebird');var rp=require(_0xc04c('0x5'));var fs=require('fs');var path=require(_0xc04c('0x6'));var rimraf=require(_0xc04c('0x7'));var config=require(_0xc04c('0x8'));var attributes=require(_0xc04c('0x9'));module[_0xc04c('0xa')]=function(_0x3ed884,_0x227653){return _0x3ed884[_0xc04c('0xb')](_0xc04c('0xc'),attributes,{'tableName':_0xc04c('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0xc04c('0xe')});};
\ 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(_0x32d902,_0x1a23a2){var _0x1bdc38=function(_0x203f8f){while(--_0x203f8f){_0x32d902['push'](_0x32d902['shift']());}};_0x1bdc38(++_0x1a23a2);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2763f2,_0x416af8){_0x2763f2=_0x2763f2-0x0;var _0x3ef471=_0xa9e0[_0x2763f2];return _0x3ef471;};'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(_0x18156a,_0x4b7f18){var _0x394240=function(_0x173e6d){while(--_0x173e6d){_0x18156a['push'](_0x18156a['shift']());}};_0x394240(++_0x4b7f18);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5b561d,_0x422b7c){_0x5b561d=_0x5b561d-0x0;var _0x431060=_0xa9e0[_0x5b561d];return _0x431060;};'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 _0xf990=['put','update','delete','destroy','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','index','/:id','isAuthenticated','show','post','create'];(function(_0x54eab6,_0x5e262f){var _0x1e7435=function(_0x468c91){while(--_0x468c91){_0x54eab6['push'](_0x54eab6['shift']());}};_0x1e7435(++_0x5e262f);}(_0xf990,0xc3));var _0x0f99=function(_0x22f8ab,_0x15d8ff){_0x22f8ab=_0x22f8ab-0x0;var _0x2a70e5=_0xf990[_0x22f8ab];return _0x2a70e5;};'use strict';var multer=require(_0x0f99('0x0'));var util=require('util');var path=require(_0x0f99('0x1'));var timeout=require('connect-timeout');var express=require(_0x0f99('0x2'));var router=express[_0x0f99('0x3')]();var fs_extra=require(_0x0f99('0x4'));var auth=require(_0x0f99('0x5'));var interaction=require(_0x0f99('0x6'));var config=require(_0x0f99('0x7'));var controller=require('./cannedAnswer.controller');router['get']('/',auth['isAuthenticated'](),controller[_0x0f99('0x8')]);router['get'](_0x0f99('0x9'),auth[_0x0f99('0xa')](),controller[_0x0f99('0xb')]);router[_0x0f99('0xc')]('/',auth[_0x0f99('0xa')](),controller[_0x0f99('0xd')]);router[_0x0f99('0xe')]('/:id',auth[_0x0f99('0xa')](),controller[_0x0f99('0xf')]);router[_0x0f99('0x10')]('/:id',auth['isAuthenticated'](),controller[_0x0f99('0x11')]);module[_0x0f99('0x12')]=router;
\ No newline at end of file
+var _0x9b13=['index','post','create','update','delete','/:id','multer','util','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','get','isAuthenticated'];(function(_0x1b4c68,_0x47e505){var _0x3642ba=function(_0x67cfbc){while(--_0x67cfbc){_0x1b4c68['push'](_0x1b4c68['shift']());}};_0x3642ba(++_0x47e505);}(_0x9b13,0x1c8));var _0x39b1=function(_0x59250f,_0x13a768){_0x59250f=_0x59250f-0x0;var _0x48818d=_0x9b13[_0x59250f];return _0x48818d;};'use strict';var multer=require(_0x39b1('0x0'));var util=require(_0x39b1('0x1'));var path=require('path');var timeout=require(_0x39b1('0x2'));var express=require(_0x39b1('0x3'));var router=express[_0x39b1('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x39b1('0x5'));var config=require(_0x39b1('0x6'));var controller=require('./cannedAnswer.controller');router[_0x39b1('0x7')]('/',auth[_0x39b1('0x8')](),controller[_0x39b1('0x9')]);router[_0x39b1('0x7')]('/:id',auth[_0x39b1('0x8')](),controller['show']);router[_0x39b1('0xa')]('/',auth['isAuthenticated'](),controller[_0x39b1('0xb')]);router['put']('/:id',auth[_0x39b1('0x8')](),controller[_0x39b1('0xc')]);router[_0x39b1('0xd')](_0x39b1('0xe'),auth[_0x39b1('0x8')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5451=['DATE','STRING','INTEGER','exports'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x5451,0x16f));var _0x1545=function(_0x1ef9b2,_0x57eb5a){_0x1ef9b2=_0x1ef9b2-0x0;var _0x38c67c=_0x5451[_0x1ef9b2];return _0x38c67c;};'use strict';var Sequelize=require('sequelize');module[_0x1545('0x0')]={'calldate':{'type':Sequelize[_0x1545('0x1')],'allowNull':![],'defaultValue':'1970-01-01\x2000:00:01'},'clid':{'type':Sequelize['STRING']},'src':{'type':Sequelize[_0x1545('0x2')]},'dst':{'type':Sequelize['STRING']},'dcontext':{'type':Sequelize[_0x1545('0x2')]},'channel':{'type':Sequelize['STRING']},'dstchannel':{'type':Sequelize[_0x1545('0x2')]},'lastapp':{'type':Sequelize[_0x1545('0x2')]},'lastdata':{'type':Sequelize['STRING']},'duration':{'type':Sequelize[_0x1545('0x3')],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0x1545('0x3')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x1545('0x2')]},'amaflags':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize[_0x1545('0x2')]},'userfield':{'type':Sequelize[_0x1545('0x2')]},'uniqueid':{'type':Sequelize['STRING']},'linkedid':{'type':Sequelize[_0x1545('0x2')]},'sequence':{'type':Sequelize[_0x1545('0x2')]},'peeraccount':{'type':Sequelize[_0x1545('0x2')]},'type':{'type':Sequelize['STRING']},'tag':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x0f93=['STRING','INTEGER','exports','DATE','1970-01-01\x2000:00:01'];(function(_0x53cf6f,_0x4c2318){var _0x3f0b36=function(_0x1e8148){while(--_0x1e8148){_0x53cf6f['push'](_0x53cf6f['shift']());}};_0x3f0b36(++_0x4c2318);}(_0x0f93,0x66));var _0x30f9=function(_0x23cfd0,_0x48e98b){_0x23cfd0=_0x23cfd0-0x0;var _0x33cd01=_0x0f93[_0x23cfd0];return _0x33cd01;};'use strict';var Sequelize=require('sequelize');module[_0x30f9('0x0')]={'calldate':{'type':Sequelize[_0x30f9('0x1')],'allowNull':![],'defaultValue':_0x30f9('0x2')},'clid':{'type':Sequelize[_0x30f9('0x3')]},'src':{'type':Sequelize[_0x30f9('0x3')]},'dst':{'type':Sequelize[_0x30f9('0x3')]},'dcontext':{'type':Sequelize[_0x30f9('0x3')]},'channel':{'type':Sequelize[_0x30f9('0x3')]},'dstchannel':{'type':Sequelize[_0x30f9('0x3')]},'lastapp':{'type':Sequelize[_0x30f9('0x3')]},'lastdata':{'type':Sequelize[_0x30f9('0x3')]},'duration':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0x30f9('0x4')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x30f9('0x3')]},'amaflags':{'type':Sequelize[_0x30f9('0x4')],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize['STRING']},'userfield':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x30f9('0x3')]},'linkedid':{'type':Sequelize['STRING']},'sequence':{'type':Sequelize['STRING']},'peeraccount':{'type':Sequelize[_0x30f9('0x3')]},'type':{'type':Sequelize['STRING']},'tag':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24ca=['squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','save','destroy','then','error','send','index','map','Cdr','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','name','merge','options','includeAll','include','findAll','show','params','length','find','catch','create','update','body','describe','eml-format','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv'];(function(_0x6ae8d2,_0x39c5be){var _0x57d6a7=function(_0x349c72){while(--_0x349c72){_0x6ae8d2['push'](_0x6ae8d2['shift']());}};_0x57d6a7(++_0x39c5be);}(_0x24ca,0x8c));var _0xa24c=function(_0x33a694,_0x9b6640){_0x33a694=_0x33a694-0x0;var _0x41ff01=_0x24ca[_0x33a694];return _0x41ff01;};'use strict';var emlformat=require(_0xa24c('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xa24c('0x1'));var rp=require('request-promise');var moment=require(_0xa24c('0x2'));var BPromise=require(_0xa24c('0x3'));var Mustache=require(_0xa24c('0x4'));var util=require('util');var path=require(_0xa24c('0x5'));var sox=require(_0xa24c('0x6'));var csv=require(_0xa24c('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xa24c('0x8'));var crypto=require(_0xa24c('0x9'));var jsforce=require(_0xa24c('0xa'));var deskjs=require(_0xa24c('0xb'));var toCsv=require(_0xa24c('0x7'));var querystring=require(_0xa24c('0xc'));var Papa=require('papaparse');var Redis=require(_0xa24c('0xd'));var authService=require(_0xa24c('0xe'));var qs=require(_0xa24c('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xa24c('0x10'))(_0xa24c('0x11'));var utils=require(_0xa24c('0x12'));var config=require(_0xa24c('0x13'));var licenseUtil=require(_0xa24c('0x14'));var db=require(_0xa24c('0x15'))['db'];function respondWithStatusCode(_0x566313,_0x5bb631){_0x5bb631=_0x5bb631||0xcc;return function(_0x4907f6){if(_0x4907f6){return _0x566313[_0xa24c('0x16')](_0x5bb631);}return _0x566313[_0xa24c('0x17')](_0x5bb631)[_0xa24c('0x18')]();};}function respondWithResult(_0x9fe9e3,_0x4351a8){_0x4351a8=_0x4351a8||0xc8;return function(_0x4971af){if(_0x4971af){return _0x9fe9e3[_0xa24c('0x17')](_0x4351a8)['json'](_0x4971af);}};}function respondWithFilteredResult(_0x493bcb,_0x588acf){return function(_0x2e8dc9){if(_0x2e8dc9){var _0x2a4270=typeof _0x588acf[_0xa24c('0x19')]===_0xa24c('0x1a')&&typeof _0x588acf[_0xa24c('0x1b')]===_0xa24c('0x1a');var _0x2197da=_0x2e8dc9[_0xa24c('0x1c')];var _0x14f0aa=_0x2a4270?0x0:_0x588acf[_0xa24c('0x19')];var _0x1970fc=_0x2a4270?_0x2e8dc9[_0xa24c('0x1c')]:_0x588acf[_0xa24c('0x19')]+_0x588acf[_0xa24c('0x1b')];var _0x5276b6;if(_0x1970fc>=_0x2197da){_0x1970fc=_0x2197da;_0x5276b6=0xc8;}else{_0x5276b6=0xce;}_0x493bcb[_0xa24c('0x17')](_0x5276b6);return _0x493bcb['set'](_0xa24c('0x1d'),_0x14f0aa+'-'+_0x1970fc+'/'+_0x2197da)[_0xa24c('0x1e')](_0x2e8dc9);}return null;};}function patchUpdates(_0x8c3949){return function(_0x37e20e){try{jsonpatch[_0xa24c('0x1f')](_0x37e20e,_0x8c3949,!![]);}catch(_0x416dea){return BPromise[_0xa24c('0x20')](_0x416dea);}return _0x37e20e[_0xa24c('0x21')]();};}function saveUpdates(_0xba710,_0x2ec5ad){return function(_0x2b471a){if(_0x2b471a){return _0x2b471a['update'](_0xba710)['then'](function(_0x10fa25){return _0x10fa25;});}return null;};}function removeEntity(_0xdd32a8,_0x316a68){return function(_0x1a04ff){if(_0x1a04ff){return _0x1a04ff[_0xa24c('0x22')]()[_0xa24c('0x23')](function(){_0xdd32a8[_0xa24c('0x17')](0xcc)[_0xa24c('0x18')]();});}};}function handleEntityNotFound(_0x304d6c,_0x4dc3dc){return function(_0x2290e1){if(!_0x2290e1){_0x304d6c['sendStatus'](0x194);}return _0x2290e1;};}function handleError(_0x1f347b,_0x256fbc){_0x256fbc=_0x256fbc||0x1f4;return function(_0x471421){logger[_0xa24c('0x24')](_0x471421['stack']);if(_0x471421['name']){delete _0x471421['name'];}_0x1f347b['status'](_0x256fbc)[_0xa24c('0x25')](_0x471421);};}exports[_0xa24c('0x26')]=function(_0xab6197,_0x1cdee4){var _0x37cbd3={},_0x5361d4={},_0x5c8113={'count':0x0,'rows':[]};var _0x33c208=_[_0xa24c('0x27')](db[_0xa24c('0x28')][_0xa24c('0x29')],function(_0x4566dc){return{'name':_0x4566dc[_0xa24c('0x2a')],'type':_0x4566dc[_0xa24c('0x2b')][_0xa24c('0x2c')]};});_0x5361d4[_0xa24c('0x2d')]=_[_0xa24c('0x27')](_0x33c208,'name');_0x5361d4[_0xa24c('0x2e')]=_[_0xa24c('0x2f')](_0xab6197['query']);_0x5361d4[_0xa24c('0x30')]=_[_0xa24c('0x31')](_0x5361d4[_0xa24c('0x2d')],_0x5361d4[_0xa24c('0x2e')]);_0x37cbd3[_0xa24c('0x32')]=_[_0xa24c('0x31')](_0x5361d4[_0xa24c('0x2d')],qs[_0xa24c('0x33')](_0xab6197[_0xa24c('0x2e')][_0xa24c('0x33')]));_0x37cbd3['attributes']=_0x37cbd3['attributes']['length']?_0x37cbd3[_0xa24c('0x32')]:_0x5361d4['model'];if(!_0xab6197[_0xa24c('0x2e')][_0xa24c('0x34')](_0xa24c('0x35'))){_0x37cbd3['limit']=qs[_0xa24c('0x1b')](_0xab6197[_0xa24c('0x2e')][_0xa24c('0x1b')]);_0x37cbd3['offset']=qs[_0xa24c('0x19')](_0xab6197[_0xa24c('0x2e')]['offset']);}_0x37cbd3[_0xa24c('0x36')]=qs[_0xa24c('0x37')](_0xab6197[_0xa24c('0x2e')]['sort']);_0x37cbd3[_0xa24c('0x38')]=qs[_0xa24c('0x30')](_[_0xa24c('0x39')](_0xab6197[_0xa24c('0x2e')],_0x5361d4[_0xa24c('0x30')]),_0x33c208);if(_0xab6197['query'][_0xa24c('0x3a')]){_0x37cbd3[_0xa24c('0x38')]=_['merge'](_0x37cbd3[_0xa24c('0x38')],{'$or':_[_0xa24c('0x27')](_0x33c208,function(_0x2417d9){if(_0x2417d9['type']!=='VIRTUAL'){var _0x1f7535={};_0x1f7535[_0x2417d9[_0xa24c('0x3b')]]={'$like':'%'+_0xab6197[_0xa24c('0x2e')][_0xa24c('0x3a')]+'%'};return _0x1f7535;}})});}_0x37cbd3=_[_0xa24c('0x3c')]({},_0x37cbd3,_0xab6197[_0xa24c('0x3d')]);var _0x54ea40={'where':_0x37cbd3[_0xa24c('0x38')]};return db[_0xa24c('0x28')][_0xa24c('0x1c')](_0x54ea40)[_0xa24c('0x23')](function(_0x5f3cd4){_0x5c8113[_0xa24c('0x1c')]=_0x5f3cd4;if(_0xab6197[_0xa24c('0x2e')][_0xa24c('0x3e')]){_0x37cbd3[_0xa24c('0x3f')]=[{'all':!![]}];}return db[_0xa24c('0x28')][_0xa24c('0x40')](_0x37cbd3);})[_0xa24c('0x23')](function(_0x54939b){_0x5c8113['rows']=_0x54939b;return _0x5c8113;})[_0xa24c('0x23')](respondWithFilteredResult(_0x1cdee4,_0x37cbd3))['catch'](handleError(_0x1cdee4,null));};exports[_0xa24c('0x41')]=function(_0x4fae76,_0x32e151){var _0x214627={'raw':!![],'where':{'id':_0x4fae76[_0xa24c('0x42')]['id']}},_0x37372d={};_0x37372d[_0xa24c('0x2d')]=_[_0xa24c('0x2f')](db[_0xa24c('0x28')][_0xa24c('0x29')]);_0x37372d[_0xa24c('0x2e')]=_[_0xa24c('0x2f')](_0x4fae76[_0xa24c('0x2e')]);_0x37372d[_0xa24c('0x30')]=_[_0xa24c('0x31')](_0x37372d[_0xa24c('0x2d')],_0x37372d[_0xa24c('0x2e')]);_0x214627[_0xa24c('0x32')]=_['intersection'](_0x37372d[_0xa24c('0x2d')],qs[_0xa24c('0x33')](_0x4fae76[_0xa24c('0x2e')]['fields']));_0x214627[_0xa24c('0x32')]=_0x214627[_0xa24c('0x32')][_0xa24c('0x43')]?_0x214627[_0xa24c('0x32')]:_0x37372d['model'];if(_0x4fae76[_0xa24c('0x2e')][_0xa24c('0x3e')]){_0x214627[_0xa24c('0x3f')]=[{'all':!![]}];}_0x214627=_[_0xa24c('0x3c')]({},_0x214627,_0x4fae76[_0xa24c('0x3d')]);return db[_0xa24c('0x28')][_0xa24c('0x44')](_0x214627)[_0xa24c('0x23')](handleEntityNotFound(_0x32e151,null))[_0xa24c('0x23')](respondWithResult(_0x32e151,null))[_0xa24c('0x45')](handleError(_0x32e151,null));};exports[_0xa24c('0x46')]=function(_0xeac74f,_0x261c41){return db['Cdr'][_0xa24c('0x46')](_0xeac74f['body'],{})[_0xa24c('0x23')](respondWithResult(_0x261c41,0xc9))[_0xa24c('0x45')](handleError(_0x261c41,null));};exports[_0xa24c('0x47')]=function(_0x1641b8,_0xd4761e){if(_0x1641b8[_0xa24c('0x48')]['id']){delete _0x1641b8[_0xa24c('0x48')]['id'];}return db[_0xa24c('0x28')][_0xa24c('0x44')]({'where':{'id':_0x1641b8[_0xa24c('0x42')]['id']}})[_0xa24c('0x23')](handleEntityNotFound(_0xd4761e,null))[_0xa24c('0x23')](saveUpdates(_0x1641b8[_0xa24c('0x48')],null))['then'](respondWithResult(_0xd4761e,null))[_0xa24c('0x45')](handleError(_0xd4761e,null));};exports[_0xa24c('0x22')]=function(_0x3875fb,_0x456181){return db['Cdr'][_0xa24c('0x44')]({'where':{'id':_0x3875fb[_0xa24c('0x42')]['id']}})[_0xa24c('0x23')](handleEntityNotFound(_0x456181,null))['then'](removeEntity(_0x456181,null))['catch'](handleError(_0x456181,null));};exports[_0xa24c('0x49')]=function(_0x1c8980,_0x4992ee){return db[_0xa24c('0x28')][_0xa24c('0x49')]()['then'](respondWithResult(_0x4992ee,null))[_0xa24c('0x45')](handleError(_0x4992ee,null));};
\ No newline at end of file
+var _0x2caf=['type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','include','find','create','body','describe','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','end','status','json','offset','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','sendStatus','error','name','send','index','map','Cdr','rawAttributes','fieldName'];(function(_0x56bc4f,_0x7cb5){var _0x4deeae=function(_0x4cdfdb){while(--_0x4cdfdb){_0x56bc4f['push'](_0x56bc4f['shift']());}};_0x4deeae(++_0x7cb5);}(_0x2caf,0x6a));var _0xf2ca=function(_0x4b7c8f,_0x2b4302){_0x4b7c8f=_0x4b7c8f-0x0;var _0x438fbc=_0x2caf[_0x4b7c8f];return _0x438fbc;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xf2ca('0x0'));var rp=require('request-promise');var moment=require(_0xf2ca('0x1'));var BPromise=require(_0xf2ca('0x2'));var Mustache=require(_0xf2ca('0x3'));var util=require(_0xf2ca('0x4'));var path=require(_0xf2ca('0x5'));var sox=require(_0xf2ca('0x6'));var csv=require(_0xf2ca('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf2ca('0x8'));var _=require(_0xf2ca('0x9'));var squel=require(_0xf2ca('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xf2ca('0xb'));var toCsv=require(_0xf2ca('0x7'));var querystring=require(_0xf2ca('0xc'));var Papa=require(_0xf2ca('0xd'));var Redis=require(_0xf2ca('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xf2ca('0xf'));var as=require(_0xf2ca('0x10'));var hardwareService=require(_0xf2ca('0x11'));var logger=require(_0xf2ca('0x12'))(_0xf2ca('0x13'));var utils=require(_0xf2ca('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xf2ca('0x15'));var db=require(_0xf2ca('0x16'))['db'];function respondWithStatusCode(_0x54a3cb,_0x88529f){_0x88529f=_0x88529f||0xcc;return function(_0x383112){if(_0x383112){return _0x54a3cb['sendStatus'](_0x88529f);}return _0x54a3cb['status'](_0x88529f)[_0xf2ca('0x17')]();};}function respondWithResult(_0x52a278,_0x284484){_0x284484=_0x284484||0xc8;return function(_0x3123fe){if(_0x3123fe){return _0x52a278[_0xf2ca('0x18')](_0x284484)[_0xf2ca('0x19')](_0x3123fe);}};}function respondWithFilteredResult(_0x410997,_0x2057a2){return function(_0x2ddfac){if(_0x2ddfac){var _0x5aec64=typeof _0x2057a2[_0xf2ca('0x1a')]==='undefined'&&typeof _0x2057a2[_0xf2ca('0x1b')]==='undefined';var _0x235e79=_0x2ddfac[_0xf2ca('0x1c')];var _0x59ea3c=_0x5aec64?0x0:_0x2057a2[_0xf2ca('0x1a')];var _0x160230=_0x5aec64?_0x2ddfac[_0xf2ca('0x1c')]:_0x2057a2[_0xf2ca('0x1a')]+_0x2057a2[_0xf2ca('0x1b')];var _0x1ca233;if(_0x160230>=_0x235e79){_0x160230=_0x235e79;_0x1ca233=0xc8;}else{_0x1ca233=0xce;}_0x410997[_0xf2ca('0x18')](_0x1ca233);return _0x410997[_0xf2ca('0x1d')](_0xf2ca('0x1e'),_0x59ea3c+'-'+_0x160230+'/'+_0x235e79)[_0xf2ca('0x19')](_0x2ddfac);}return null;};}function patchUpdates(_0xea662){return function(_0x55dc6a){try{jsonpatch[_0xf2ca('0x1f')](_0x55dc6a,_0xea662,!![]);}catch(_0x45a028){return BPromise[_0xf2ca('0x20')](_0x45a028);}return _0x55dc6a[_0xf2ca('0x21')]();};}function saveUpdates(_0x41cb71,_0x386c58){return function(_0x1bbd60){if(_0x1bbd60){return _0x1bbd60[_0xf2ca('0x22')](_0x41cb71)['then'](function(_0x14791b){return _0x14791b;});}return null;};}function removeEntity(_0x1767f7,_0x56ebed){return function(_0x1c032c){if(_0x1c032c){return _0x1c032c[_0xf2ca('0x23')]()[_0xf2ca('0x24')](function(){_0x1767f7['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xbfcb0b,_0x1b3c01){return function(_0x214fa9){if(!_0x214fa9){_0xbfcb0b[_0xf2ca('0x25')](0x194);}return _0x214fa9;};}function handleError(_0x1255ba,_0x427a17){_0x427a17=_0x427a17||0x1f4;return function(_0x339e10){logger[_0xf2ca('0x26')](_0x339e10['stack']);if(_0x339e10[_0xf2ca('0x27')]){delete _0x339e10[_0xf2ca('0x27')];}_0x1255ba[_0xf2ca('0x18')](_0x427a17)[_0xf2ca('0x28')](_0x339e10);};}exports[_0xf2ca('0x29')]=function(_0x41fc04,_0x17707e){var _0xb0ae21={},_0x1b44fb={},_0x20a523={'count':0x0,'rows':[]};var _0xf92250=_[_0xf2ca('0x2a')](db[_0xf2ca('0x2b')][_0xf2ca('0x2c')],function(_0x2b0649){return{'name':_0x2b0649[_0xf2ca('0x2d')],'type':_0x2b0649[_0xf2ca('0x2e')][_0xf2ca('0x2f')]};});_0x1b44fb[_0xf2ca('0x30')]=_['map'](_0xf92250,_0xf2ca('0x27'));_0x1b44fb[_0xf2ca('0x31')]=_[_0xf2ca('0x32')](_0x41fc04[_0xf2ca('0x31')]);_0x1b44fb[_0xf2ca('0x33')]=_[_0xf2ca('0x34')](_0x1b44fb[_0xf2ca('0x30')],_0x1b44fb[_0xf2ca('0x31')]);_0xb0ae21[_0xf2ca('0x35')]=_['intersection'](_0x1b44fb[_0xf2ca('0x30')],qs[_0xf2ca('0x36')](_0x41fc04[_0xf2ca('0x31')]['fields']));_0xb0ae21[_0xf2ca('0x35')]=_0xb0ae21['attributes'][_0xf2ca('0x37')]?_0xb0ae21[_0xf2ca('0x35')]:_0x1b44fb[_0xf2ca('0x30')];if(!_0x41fc04[_0xf2ca('0x31')][_0xf2ca('0x38')]('nolimit')){_0xb0ae21['limit']=qs[_0xf2ca('0x1b')](_0x41fc04['query'][_0xf2ca('0x1b')]);_0xb0ae21[_0xf2ca('0x1a')]=qs[_0xf2ca('0x1a')](_0x41fc04[_0xf2ca('0x31')][_0xf2ca('0x1a')]);}_0xb0ae21[_0xf2ca('0x39')]=qs[_0xf2ca('0x3a')](_0x41fc04[_0xf2ca('0x31')][_0xf2ca('0x3a')]);_0xb0ae21[_0xf2ca('0x3b')]=qs[_0xf2ca('0x33')](_[_0xf2ca('0x3c')](_0x41fc04[_0xf2ca('0x31')],_0x1b44fb[_0xf2ca('0x33')]),_0xf92250);if(_0x41fc04[_0xf2ca('0x31')][_0xf2ca('0x3d')]){_0xb0ae21['where']=_[_0xf2ca('0x3e')](_0xb0ae21[_0xf2ca('0x3b')],{'$or':_[_0xf2ca('0x2a')](_0xf92250,function(_0x148570){if(_0x148570['type']!==_0xf2ca('0x3f')){var _0x4b0e0e={};_0x4b0e0e[_0x148570[_0xf2ca('0x27')]]={'$like':'%'+_0x41fc04[_0xf2ca('0x31')][_0xf2ca('0x3d')]+'%'};return _0x4b0e0e;}})});}_0xb0ae21=_[_0xf2ca('0x3e')]({},_0xb0ae21,_0x41fc04[_0xf2ca('0x40')]);var _0x4fbaec={'where':_0xb0ae21[_0xf2ca('0x3b')]};return db[_0xf2ca('0x2b')]['count'](_0x4fbaec)[_0xf2ca('0x24')](function(_0x29ebce){_0x20a523[_0xf2ca('0x1c')]=_0x29ebce;if(_0x41fc04['query'][_0xf2ca('0x41')]){_0xb0ae21['include']=[{'all':!![]}];}return db[_0xf2ca('0x2b')][_0xf2ca('0x42')](_0xb0ae21);})[_0xf2ca('0x24')](function(_0x43b2c2){_0x20a523[_0xf2ca('0x43')]=_0x43b2c2;return _0x20a523;})[_0xf2ca('0x24')](respondWithFilteredResult(_0x17707e,_0xb0ae21))[_0xf2ca('0x44')](handleError(_0x17707e,null));};exports[_0xf2ca('0x45')]=function(_0x43b3c7,_0x128535){var _0x17de81={'raw':!![],'where':{'id':_0x43b3c7[_0xf2ca('0x46')]['id']}},_0x3360d9={};_0x3360d9[_0xf2ca('0x30')]=_[_0xf2ca('0x32')](db['Cdr'][_0xf2ca('0x2c')]);_0x3360d9[_0xf2ca('0x31')]=_[_0xf2ca('0x32')](_0x43b3c7[_0xf2ca('0x31')]);_0x3360d9[_0xf2ca('0x33')]=_[_0xf2ca('0x34')](_0x3360d9[_0xf2ca('0x30')],_0x3360d9[_0xf2ca('0x31')]);_0x17de81[_0xf2ca('0x35')]=_[_0xf2ca('0x34')](_0x3360d9[_0xf2ca('0x30')],qs[_0xf2ca('0x36')](_0x43b3c7[_0xf2ca('0x31')]['fields']));_0x17de81['attributes']=_0x17de81[_0xf2ca('0x35')][_0xf2ca('0x37')]?_0x17de81['attributes']:_0x3360d9[_0xf2ca('0x30')];if(_0x43b3c7['query'][_0xf2ca('0x41')]){_0x17de81[_0xf2ca('0x47')]=[{'all':!![]}];}_0x17de81=_[_0xf2ca('0x3e')]({},_0x17de81,_0x43b3c7['options']);return db[_0xf2ca('0x2b')][_0xf2ca('0x48')](_0x17de81)['then'](handleEntityNotFound(_0x128535,null))[_0xf2ca('0x24')](respondWithResult(_0x128535,null))[_0xf2ca('0x44')](handleError(_0x128535,null));};exports[_0xf2ca('0x49')]=function(_0x3e92cf,_0x4a6439){return db[_0xf2ca('0x2b')][_0xf2ca('0x49')](_0x3e92cf[_0xf2ca('0x4a')],{})['then'](respondWithResult(_0x4a6439,0xc9))['catch'](handleError(_0x4a6439,null));};exports[_0xf2ca('0x22')]=function(_0x2f7596,_0x1a65c6){if(_0x2f7596[_0xf2ca('0x4a')]['id']){delete _0x2f7596[_0xf2ca('0x4a')]['id'];}return db[_0xf2ca('0x2b')]['find']({'where':{'id':_0x2f7596['params']['id']}})[_0xf2ca('0x24')](handleEntityNotFound(_0x1a65c6,null))[_0xf2ca('0x24')](saveUpdates(_0x2f7596['body'],null))[_0xf2ca('0x24')](respondWithResult(_0x1a65c6,null))['catch'](handleError(_0x1a65c6,null));};exports[_0xf2ca('0x23')]=function(_0x59bbb8,_0x26a483){return db['Cdr']['find']({'where':{'id':_0x59bbb8[_0xf2ca('0x46')]['id']}})[_0xf2ca('0x24')](handleEntityNotFound(_0x26a483,null))['then'](removeEntity(_0x26a483,null))[_0xf2ca('0x44')](handleError(_0x26a483,null));};exports[_0xf2ca('0x4b')]=function(_0x2eb8d5,_0x14850c){return db[_0xf2ca('0x2b')][_0xf2ca('0x4b')]()['then'](respondWithResult(_0x14850c,null))[_0xf2ca('0x44')](handleError(_0x14850c,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(_0x26c699,_0x1e90d8){var _0x43f82=function(_0x4240b5){while(--_0x4240b5){_0x26c699['push'](_0x26c699['shift']());}};_0x43f82(++_0x1e90d8);}(_0x9957,0x93));var _0x7995=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x9957[_0x4cf98e];return _0x1623ac;};'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(_0x11f46e,_0x5b89cb){var _0x21f0fe=function(_0x24f6a0){while(--_0x24f6a0){_0x11f46e['push'](_0x11f46e['shift']());}};_0x21f0fe(++_0x5b89cb);}(_0x7a54,0x106));var _0x47a5=function(_0x1fe659,_0x561806){_0x1fe659=_0x1fe659-0x0;var _0x5db843=_0x7a54[_0x1fe659];return _0x5db843;};'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 _0x168c=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','Cdr,\x20%s,\x20%s,\x20%s','stringify','code','error','Cdr,\x20%s,\x20%s','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x64632e,_0x3bc63b){var _0x36e6a1=function(_0x50946f){while(--_0x50946f){_0x64632e['push'](_0x64632e['shift']());}};_0x36e6a1(++_0x3bc63b);}(_0x168c,0xc1));var _0xc168=function(_0x299e88,_0x400179){_0x299e88=_0x299e88-0x0;var _0x193a95=_0x168c[_0x299e88];return _0x193a95;};'use strict';var _=require('lodash');var util=require(_0xc168('0x0'));var moment=require(_0xc168('0x1'));var BPromise=require(_0xc168('0x2'));var rs=require(_0xc168('0x3'));var fs=require('fs');var Redis=require(_0xc168('0x4'));var db=require(_0xc168('0x5'))['db'];var utils=require(_0xc168('0x6'));var logger=require(_0xc168('0x7'))(_0xc168('0x8'));var config=require(_0xc168('0x9'));var jayson=require(_0xc168('0xa'));var client=jayson[_0xc168('0xb')][_0xc168('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x232ed5,_0x5ca67c,_0x4c4a97){return new BPromise(function(_0x195d0c,_0x15a44a){return client[_0xc168('0xd')](_0x232ed5,_0x4c4a97)[_0xc168('0xe')](function(_0x5074f2){logger[_0xc168('0xf')]('Cdr,\x20%s,\x20%s',_0x5ca67c,_0xc168('0x10'));logger['debug'](_0xc168('0x11'),_0x5ca67c,_0xc168('0x10'),JSON[_0xc168('0x12')](_0x5074f2));if(_0x5074f2['error']){if(_0x5074f2['error'][_0xc168('0x13')]===0x1f4){logger[_0xc168('0x14')](_0xc168('0x15'),_0x5ca67c,_0x5074f2['error'][_0xc168('0x16')]);return _0x15a44a(_0x5074f2['error'][_0xc168('0x16')]);}logger['error'](_0xc168('0x15'),_0x5ca67c,_0x5074f2[_0xc168('0x14')][_0xc168('0x16')]);return _0x195d0c(_0x5074f2[_0xc168('0x14')][_0xc168('0x16')]);}else{logger[_0xc168('0xf')](_0xc168('0x15'),_0x5ca67c,_0xc168('0x10'));_0x195d0c(_0x5074f2[_0xc168('0x17')]['message']);}})[_0xc168('0x18')](function(_0x22b38f){logger[_0xc168('0x14')](_0xc168('0x15'),_0x5ca67c,_0x22b38f);_0x15a44a(_0x22b38f);});});}
\ No newline at end of file
+var _0xf296=['../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','Cdr,\x20%s,\x20%s','request\x20sent','debug','Cdr,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb'];(function(_0x232cbf,_0x3e2f33){var _0x1cd460=function(_0x29b4f3){while(--_0x29b4f3){_0x232cbf['push'](_0x232cbf['shift']());}};_0x1cd460(++_0x3e2f33);}(_0xf296,0x14a));var _0x6f29=function(_0x3a0863,_0x4cd5ef){_0x3a0863=_0x3a0863-0x0;var _0x85c557=_0xf296[_0x3a0863];return _0x85c557;};'use strict';var _=require(_0x6f29('0x0'));var util=require(_0x6f29('0x1'));var moment=require(_0x6f29('0x2'));var BPromise=require('bluebird');var rs=require(_0x6f29('0x3'));var fs=require('fs');var Redis=require(_0x6f29('0x4'));var db=require(_0x6f29('0x5'))['db'];var utils=require(_0x6f29('0x6'));var logger=require(_0x6f29('0x7'))(_0x6f29('0x8'));var config=require('../../config/environment');var jayson=require(_0x6f29('0x9'));var client=jayson[_0x6f29('0xa')][_0x6f29('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3e5b4b,_0x3a9f5a,_0x3945a4){return new BPromise(function(_0x56d257,_0x59f35c){return client[_0x6f29('0xc')](_0x3e5b4b,_0x3945a4)[_0x6f29('0xd')](function(_0x56648d){logger[_0x6f29('0xe')](_0x6f29('0xf'),_0x3a9f5a,_0x6f29('0x10'));logger[_0x6f29('0x11')](_0x6f29('0x12'),_0x3a9f5a,_0x6f29('0x10'),JSON['stringify'](_0x56648d));if(_0x56648d[_0x6f29('0x13')]){if(_0x56648d['error'][_0x6f29('0x14')]===0x1f4){logger[_0x6f29('0x13')](_0x6f29('0xf'),_0x3a9f5a,_0x56648d[_0x6f29('0x13')][_0x6f29('0x15')]);return _0x59f35c(_0x56648d[_0x6f29('0x13')]['message']);}logger[_0x6f29('0x13')](_0x6f29('0xf'),_0x3a9f5a,_0x56648d['error'][_0x6f29('0x15')]);return _0x56d257(_0x56648d[_0x6f29('0x13')][_0x6f29('0x15')]);}else{logger[_0x6f29('0xe')]('Cdr,\x20%s,\x20%s',_0x3a9f5a,_0x6f29('0x10'));_0x56d257(_0x56648d[_0x6f29('0x16')][_0x6f29('0x15')]);}})[_0x6f29('0x17')](function(_0xa2ece3){logger['error'](_0x6f29('0xf'),_0x3a9f5a,_0xa2ece3);_0x59f35c(_0xa2ece3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','create','put','update'];(function(_0x4057ec,_0x425f09){var _0xe062c=function(_0x4a9644){while(--_0x4a9644){_0x4057ec['push'](_0x4057ec['shift']());}};_0xe062c(++_0x425f09);}(_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('./cdr.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xb'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);router['delete'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x11')]);module[_0x0d8b('0x12')]=router;
\ No newline at end of file
+var _0xd8b0=['destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','create','put','update'];(function(_0x152136,_0x4f14f1){var _0x20df44=function(_0x362877){while(--_0x362877){_0x152136['push'](_0x152136['shift']());}};_0x20df44(++_0x4f14f1);}(_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'));var controller=require('./cdr.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xb'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);router['delete'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x11')]);module[_0x0d8b('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x10e9=['TEXT','*,*,*,*','sequelize','exports','INTEGER','STRING'];(function(_0x4fc5f8,_0x47e645){var _0x33be96=function(_0x470840){while(--_0x470840){_0x4fc5f8['push'](_0x4fc5f8['shift']());}};_0x33be96(++_0x47e645);}(_0x10e9,0x1c4));var _0x910e=function(_0x5f09c5,_0x2bfca0){_0x5f09c5=_0x5f09c5-0x0;var _0x426ad9=_0x10e9[_0x5f09c5];return _0x426ad9;};'use strict';var Sequelize=require(_0x910e('0x0'));module[_0x910e('0x1')]={'priority':{'type':Sequelize[_0x910e('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x910e('0x3')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0x910e('0x4')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x910e('0x3')],'defaultValue':_0x910e('0x5')}};
\ No newline at end of file
+var _0x13ad=['noop','TEXT','*,*,*,*','sequelize','exports','STRING'];(function(_0xbc550a,_0x2bb605){var _0xd16ba4=function(_0x5e55e5){while(--_0x5e55e5){_0xbc550a['push'](_0xbc550a['shift']());}};_0xd16ba4(++_0x2bb605);}(_0x13ad,0x1a1));var _0xd13a=function(_0x217265,_0x10a02a){_0x217265=_0x217265-0x0;var _0x3d6de7=_0x13ad[_0x217265];return _0x3d6de7;};'use strict';var Sequelize=require(_0xd13a('0x0'));module[_0xd13a('0x1')]={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize[_0xd13a('0x2')],'allowNull':![],'defaultValue':_0xd13a('0x3')},'appdata':{'type':Sequelize[_0xd13a('0x4')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0xd13a('0x2')],'defaultValue':_0xd13a('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x44a3=['error','stack','name','send','show','params','ChatApplication','rawAttributes','query','intersection','model','fields','attributes','include','merge','options','find','catch','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','desk.js','querystring','papaparse','ioredis','../../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','save','update','then','destroy'];(function(_0x349728,_0x1a7079){var _0x33157b=function(_0x589af2){while(--_0x589af2){_0x349728['push'](_0x349728['shift']());}};_0x33157b(++_0x1a7079);}(_0x44a3,0x1a9));var _0x344a=function(_0x3c719e,_0x19719d){_0x3c719e=_0x3c719e-0x0;var _0x2d09af=_0x44a3[_0x3c719e];return _0x2d09af;};'use strict';var emlformat=require(_0x344a('0x0'));var rimraf=require(_0x344a('0x1'));var zipdir=require(_0x344a('0x2'));var jsonpatch=require(_0x344a('0x3'));var rp=require(_0x344a('0x4'));var moment=require(_0x344a('0x5'));var BPromise=require(_0x344a('0x6'));var Mustache=require(_0x344a('0x7'));var util=require('util');var path=require(_0x344a('0x8'));var sox=require(_0x344a('0x9'));var csv=require(_0x344a('0xa'));var ejs=require(_0x344a('0xb'));var fs=require('fs');var fs_extra=require(_0x344a('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x344a('0xd'));var toCsv=require(_0x344a('0xa'));var querystring=require(_0x344a('0xe'));var Papa=require(_0x344a('0xf'));var Redis=require(_0x344a('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x344a('0x11'));var as=require(_0x344a('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x344a('0x13'))('api');var utils=require(_0x344a('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x344a('0x15'));var db=require(_0x344a('0x16'))['db'];function respondWithStatusCode(_0x57e42e,_0x4a69ea){_0x4a69ea=_0x4a69ea||0xcc;return function(_0x304b70){if(_0x304b70){return _0x57e42e[_0x344a('0x17')](_0x4a69ea);}return _0x57e42e[_0x344a('0x18')](_0x4a69ea)[_0x344a('0x19')]();};}function respondWithResult(_0x5a0df6,_0x133ad4){_0x133ad4=_0x133ad4||0xc8;return function(_0x4ee562){if(_0x4ee562){return _0x5a0df6[_0x344a('0x18')](_0x133ad4)[_0x344a('0x1a')](_0x4ee562);}};}function respondWithFilteredResult(_0xce0f65,_0x6e1639){return function(_0x58c8cd){if(_0x58c8cd){var _0x54a643=typeof _0x6e1639[_0x344a('0x1b')]===_0x344a('0x1c')&&typeof _0x6e1639[_0x344a('0x1d')]===_0x344a('0x1c');var _0x48b3ab=_0x58c8cd[_0x344a('0x1e')];var _0x277c06=_0x54a643?0x0:_0x6e1639['offset'];var _0x9fe854=_0x54a643?_0x58c8cd[_0x344a('0x1e')]:_0x6e1639[_0x344a('0x1b')]+_0x6e1639[_0x344a('0x1d')];var _0x13b382;if(_0x9fe854>=_0x48b3ab){_0x9fe854=_0x48b3ab;_0x13b382=0xc8;}else{_0x13b382=0xce;}_0xce0f65[_0x344a('0x18')](_0x13b382);return _0xce0f65[_0x344a('0x1f')](_0x344a('0x20'),_0x277c06+'-'+_0x9fe854+'/'+_0x48b3ab)[_0x344a('0x1a')](_0x58c8cd);}return null;};}function patchUpdates(_0x450922){return function(_0x4b3552){try{jsonpatch[_0x344a('0x21')](_0x4b3552,_0x450922,!![]);}catch(_0x4232eb){return BPromise[_0x344a('0x22')](_0x4232eb);}return _0x4b3552[_0x344a('0x23')]();};}function saveUpdates(_0x240be3,_0x80ae12){return function(_0x185303){if(_0x185303){return _0x185303[_0x344a('0x24')](_0x240be3)[_0x344a('0x25')](function(_0x27f527){return _0x27f527;});}return null;};}function removeEntity(_0x90070c,_0x3b2ab9){return function(_0x5ce9da){if(_0x5ce9da){return _0x5ce9da[_0x344a('0x26')]()['then'](function(){_0x90070c[_0x344a('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2a5e49,_0x484f97){return function(_0x36c920){if(!_0x36c920){_0x2a5e49[_0x344a('0x17')](0x194);}return _0x36c920;};}function handleError(_0x2ebae9,_0x16d404){_0x16d404=_0x16d404||0x1f4;return function(_0x26f059){logger[_0x344a('0x27')](_0x26f059[_0x344a('0x28')]);if(_0x26f059[_0x344a('0x29')]){delete _0x26f059['name'];}_0x2ebae9[_0x344a('0x18')](_0x16d404)[_0x344a('0x2a')](_0x26f059);};}exports[_0x344a('0x2b')]=function(_0xc02d6,_0x14bd54){var _0x2d72c9={'raw':!![],'where':{'id':_0xc02d6[_0x344a('0x2c')]['id']}},_0x5b877d={};_0x5b877d['model']=_['keys'](db[_0x344a('0x2d')][_0x344a('0x2e')]);_0x5b877d[_0x344a('0x2f')]=_['keys'](_0xc02d6['query']);_0x5b877d['filters']=_[_0x344a('0x30')](_0x5b877d[_0x344a('0x31')],_0x5b877d[_0x344a('0x2f')]);_0x2d72c9['attributes']=_[_0x344a('0x30')](_0x5b877d[_0x344a('0x31')],qs[_0x344a('0x32')](_0xc02d6[_0x344a('0x2f')][_0x344a('0x32')]));_0x2d72c9[_0x344a('0x33')]=_0x2d72c9[_0x344a('0x33')]['length']?_0x2d72c9[_0x344a('0x33')]:_0x5b877d['model'];if(_0xc02d6['query']['includeAll']){_0x2d72c9[_0x344a('0x34')]=[{'all':!![]}];}_0x2d72c9=_[_0x344a('0x35')]({},_0x2d72c9,_0xc02d6[_0x344a('0x36')]);return db[_0x344a('0x2d')][_0x344a('0x37')](_0x2d72c9)[_0x344a('0x25')](handleEntityNotFound(_0x14bd54,null))['then'](respondWithResult(_0x14bd54,null))[_0x344a('0x38')](handleError(_0x14bd54,null));};exports[_0x344a('0x24')]=function(_0x458d8f,_0x5ed2f9){if(_0x458d8f[_0x344a('0x39')]['id']){delete _0x458d8f[_0x344a('0x39')]['id'];}return db[_0x344a('0x2d')][_0x344a('0x37')]({'where':{'id':_0x458d8f[_0x344a('0x2c')]['id']}})['then'](handleEntityNotFound(_0x5ed2f9,null))[_0x344a('0x25')](saveUpdates(_0x458d8f[_0x344a('0x39')],null))[_0x344a('0x25')](respondWithResult(_0x5ed2f9,null))[_0x344a('0x38')](handleError(_0x5ed2f9,null));};exports[_0x344a('0x26')]=function(_0x5a148c,_0x123a9c){return db[_0x344a('0x2d')][_0x344a('0x37')]({'where':{'id':_0x5a148c[_0x344a('0x2c')]['id']}})[_0x344a('0x25')](handleEntityNotFound(_0x123a9c,null))['then'](removeEntity(_0x123a9c,null))[_0x344a('0x38')](handleError(_0x123a9c,null));};
\ No newline at end of file
+var _0xb32d=['body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','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','sendStatus','status','json','offset','count','Content-Range','apply','reject','save','update','destroy','end','error','stack','name','send','model','keys','ChatApplication','query','filters','intersection','attributes','length','include','merge','find','then','catch'];(function(_0x413feb,_0x10477f){var _0x40ee88=function(_0x32a3f6){while(--_0x32a3f6){_0x413feb['push'](_0x413feb['shift']());}};_0x40ee88(++_0x10477f);}(_0xb32d,0x1da));var _0xdb32=function(_0x590ef7,_0x175f08){_0x590ef7=_0x590ef7-0x0;var _0x4c2634=_0xb32d[_0x590ef7];return _0x4c2634;};'use strict';var emlformat=require(_0xdb32('0x0'));var rimraf=require(_0xdb32('0x1'));var zipdir=require(_0xdb32('0x2'));var jsonpatch=require(_0xdb32('0x3'));var rp=require(_0xdb32('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xdb32('0x5'));var util=require(_0xdb32('0x6'));var path=require('path');var sox=require(_0xdb32('0x7'));var csv=require(_0xdb32('0x8'));var ejs=require(_0xdb32('0x9'));var fs=require('fs');var fs_extra=require(_0xdb32('0xa'));var _=require(_0xdb32('0xb'));var squel=require(_0xdb32('0xc'));var crypto=require('crypto');var jsforce=require(_0xdb32('0xd'));var deskjs=require(_0xdb32('0xe'));var toCsv=require(_0xdb32('0x8'));var querystring=require(_0xdb32('0xf'));var Papa=require(_0xdb32('0x10'));var Redis=require(_0xdb32('0x11'));var authService=require(_0xdb32('0x12'));var qs=require(_0xdb32('0x13'));var as=require(_0xdb32('0x14'));var hardwareService=require(_0xdb32('0x15'));var logger=require(_0xdb32('0x16'))(_0xdb32('0x17'));var utils=require(_0xdb32('0x18'));var config=require(_0xdb32('0x19'));var licenseUtil=require(_0xdb32('0x1a'));var db=require(_0xdb32('0x1b'))['db'];function respondWithStatusCode(_0x2ca4a2,_0x301f98){_0x301f98=_0x301f98||0xcc;return function(_0x2db670){if(_0x2db670){return _0x2ca4a2[_0xdb32('0x1c')](_0x301f98);}return _0x2ca4a2[_0xdb32('0x1d')](_0x301f98)['end']();};}function respondWithResult(_0x7a72cb,_0x223890){_0x223890=_0x223890||0xc8;return function(_0x1c182c){if(_0x1c182c){return _0x7a72cb[_0xdb32('0x1d')](_0x223890)[_0xdb32('0x1e')](_0x1c182c);}};}function respondWithFilteredResult(_0x4b38ab,_0x540bc4){return function(_0x1c7b54){if(_0x1c7b54){var _0x3a4028=typeof _0x540bc4['offset']==='undefined'&&typeof _0x540bc4['limit']==='undefined';var _0x2f84ea=_0x1c7b54['count'];var _0x1fd22b=_0x3a4028?0x0:_0x540bc4[_0xdb32('0x1f')];var _0x1ba5f4=_0x3a4028?_0x1c7b54[_0xdb32('0x20')]:_0x540bc4['offset']+_0x540bc4['limit'];var _0x5be1f2;if(_0x1ba5f4>=_0x2f84ea){_0x1ba5f4=_0x2f84ea;_0x5be1f2=0xc8;}else{_0x5be1f2=0xce;}_0x4b38ab[_0xdb32('0x1d')](_0x5be1f2);return _0x4b38ab['set'](_0xdb32('0x21'),_0x1fd22b+'-'+_0x1ba5f4+'/'+_0x2f84ea)[_0xdb32('0x1e')](_0x1c7b54);}return null;};}function patchUpdates(_0x8a5f88){return function(_0x3125f9){try{jsonpatch[_0xdb32('0x22')](_0x3125f9,_0x8a5f88,!![]);}catch(_0x4b08b1){return BPromise[_0xdb32('0x23')](_0x4b08b1);}return _0x3125f9[_0xdb32('0x24')]();};}function saveUpdates(_0x2429ea,_0x5a5a84){return function(_0x4c140c){if(_0x4c140c){return _0x4c140c[_0xdb32('0x25')](_0x2429ea)['then'](function(_0x49f01f){return _0x49f01f;});}return null;};}function removeEntity(_0x42ac9d,_0x14b5fd){return function(_0x307aaf){if(_0x307aaf){return _0x307aaf[_0xdb32('0x26')]()['then'](function(){_0x42ac9d['status'](0xcc)[_0xdb32('0x27')]();});}};}function handleEntityNotFound(_0x2168d9,_0x2d2555){return function(_0x5b0a48){if(!_0x5b0a48){_0x2168d9[_0xdb32('0x1c')](0x194);}return _0x5b0a48;};}function handleError(_0x5175fe,_0x251340){_0x251340=_0x251340||0x1f4;return function(_0x17f627){logger[_0xdb32('0x28')](_0x17f627[_0xdb32('0x29')]);if(_0x17f627[_0xdb32('0x2a')]){delete _0x17f627['name'];}_0x5175fe['status'](_0x251340)[_0xdb32('0x2b')](_0x17f627);};}exports['show']=function(_0x37c703,_0x38d7a0){var _0x33a134={'raw':!![],'where':{'id':_0x37c703['params']['id']}},_0x5a6109={};_0x5a6109[_0xdb32('0x2c')]=_[_0xdb32('0x2d')](db[_0xdb32('0x2e')]['rawAttributes']);_0x5a6109[_0xdb32('0x2f')]=_[_0xdb32('0x2d')](_0x37c703[_0xdb32('0x2f')]);_0x5a6109[_0xdb32('0x30')]=_[_0xdb32('0x31')](_0x5a6109[_0xdb32('0x2c')],_0x5a6109[_0xdb32('0x2f')]);_0x33a134[_0xdb32('0x32')]=_[_0xdb32('0x31')](_0x5a6109['model'],qs['fields'](_0x37c703[_0xdb32('0x2f')]['fields']));_0x33a134[_0xdb32('0x32')]=_0x33a134[_0xdb32('0x32')][_0xdb32('0x33')]?_0x33a134['attributes']:_0x5a6109[_0xdb32('0x2c')];if(_0x37c703[_0xdb32('0x2f')]['includeAll']){_0x33a134[_0xdb32('0x34')]=[{'all':!![]}];}_0x33a134=_[_0xdb32('0x35')]({},_0x33a134,_0x37c703['options']);return db[_0xdb32('0x2e')][_0xdb32('0x36')](_0x33a134)[_0xdb32('0x37')](handleEntityNotFound(_0x38d7a0,null))[_0xdb32('0x37')](respondWithResult(_0x38d7a0,null))[_0xdb32('0x38')](handleError(_0x38d7a0,null));};exports[_0xdb32('0x25')]=function(_0x3968b4,_0x5b4d77){if(_0x3968b4[_0xdb32('0x39')]['id']){delete _0x3968b4[_0xdb32('0x39')]['id'];}return db[_0xdb32('0x2e')][_0xdb32('0x36')]({'where':{'id':_0x3968b4['params']['id']}})['then'](handleEntityNotFound(_0x5b4d77,null))['then'](saveUpdates(_0x3968b4[_0xdb32('0x39')],null))['then'](respondWithResult(_0x5b4d77,null))['catch'](handleError(_0x5b4d77,null));};exports[_0xdb32('0x26')]=function(_0x5acf07,_0x65cb27){return db[_0xdb32('0x2e')][_0xdb32('0x36')]({'where':{'id':_0x5acf07[_0xdb32('0x3a')]['id']}})['then'](handleEntityNotFound(_0x65cb27,null))[_0xdb32('0x37')](removeEntity(_0x65cb27,null))[_0xdb32('0x38')](handleError(_0x65cb27,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x795a=['util','../../config/logger','moment','request-promise','path','./chatApplication.attributes','exports','ChatApplication','utf8mb4'];(function(_0x54f3e8,_0x3ed493){var _0x267b37=function(_0x58247e){while(--_0x58247e){_0x54f3e8['push'](_0x54f3e8['shift']());}};_0x267b37(++_0x3ed493);}(_0x795a,0xa2));var _0xa795=function(_0x22b2a0,_0x5b3c07){_0x22b2a0=_0x22b2a0-0x0;var _0x99b480=_0x795a[_0x22b2a0];return _0x99b480;};'use strict';var _=require('lodash');var util=require(_0xa795('0x0'));var logger=require(_0xa795('0x1'))('api');var moment=require(_0xa795('0x2'));var BPromise=require('bluebird');var rp=require(_0xa795('0x3'));var fs=require('fs');var path=require(_0xa795('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xa795('0x5'));module[_0xa795('0x6')]=function(_0x26a4f2,_0x2efc9b){return _0x26a4f2['define'](_0xa795('0x7'),attributes,{'tableName':'chat_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xa795('0x8'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x6b7b=['moment','bluebird','path','rimraf','../../config/environment','./chatApplication.attributes','exports','define','ChatApplication','chat_applications','utf8mb4','utf8mb4_unicode_ci','util','../../config/logger','api'];(function(_0x379490,_0x11ae67){var _0x322c42=function(_0x5519c8){while(--_0x5519c8){_0x379490['push'](_0x379490['shift']());}};_0x322c42(++_0x11ae67);}(_0x6b7b,0x93));var _0xb6b7=function(_0x2ef7ef,_0x423609){_0x2ef7ef=_0x2ef7ef-0x0;var _0x4b03d2=_0x6b7b[_0x2ef7ef];return _0x4b03d2;};'use strict';var _=require('lodash');var util=require(_0xb6b7('0x0'));var logger=require(_0xb6b7('0x1'))(_0xb6b7('0x2'));var moment=require(_0xb6b7('0x3'));var BPromise=require(_0xb6b7('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xb6b7('0x5'));var rimraf=require(_0xb6b7('0x6'));var config=require(_0xb6b7('0x7'));var attributes=require(_0xb6b7('0x8'));module[_0xb6b7('0x9')]=function(_0x696e78,_0x282d45){return _0x696e78[_0xb6b7('0xa')](_0xb6b7('0xb'),attributes,{'tableName':_0xb6b7('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xb6b7('0xd'),'collate':_0xb6b7('0xe')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x379c=['moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','then','info','ChatApplication,\x20%s,\x20%s','debug','ChatApplication,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','lodash','util'];(function(_0x4295a6,_0x21f19c){var _0x187f49=function(_0x575324){while(--_0x575324){_0x4295a6['push'](_0x4295a6['shift']());}};_0x187f49(++_0x21f19c);}(_0x379c,0x18d));var _0xc379=function(_0x3c73f6,_0x1721eb){_0x3c73f6=_0x3c73f6-0x0;var _0x122400=_0x379c[_0x3c73f6];return _0x122400;};'use strict';var _=require(_0xc379('0x0'));var util=require(_0xc379('0x1'));var moment=require(_0xc379('0x2'));var BPromise=require(_0xc379('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc379('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xc379('0x5'));var logger=require(_0xc379('0x6'))(_0xc379('0x7'));var config=require('../../config/environment');var jayson=require(_0xc379('0x8'));var client=jayson[_0xc379('0x9')][_0xc379('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x39e679,_0x14bf43,_0x484a40){return new BPromise(function(_0x4c217d,_0x5e8079){return client['request'](_0x39e679,_0x484a40)[_0xc379('0xb')](function(_0x3f7ad6){logger[_0xc379('0xc')](_0xc379('0xd'),_0x14bf43,'request\x20sent');logger[_0xc379('0xe')](_0xc379('0xf'),_0x14bf43,_0xc379('0x10'),JSON[_0xc379('0x11')](_0x3f7ad6));if(_0x3f7ad6[_0xc379('0x12')]){if(_0x3f7ad6[_0xc379('0x12')]['code']===0x1f4){logger['error'](_0xc379('0xd'),_0x14bf43,_0x3f7ad6[_0xc379('0x12')][_0xc379('0x13')]);return _0x5e8079(_0x3f7ad6[_0xc379('0x12')]['message']);}logger[_0xc379('0x12')](_0xc379('0xd'),_0x14bf43,_0x3f7ad6[_0xc379('0x12')][_0xc379('0x13')]);return _0x4c217d(_0x3f7ad6[_0xc379('0x12')][_0xc379('0x13')]);}else{logger[_0xc379('0xc')]('ChatApplication,\x20%s,\x20%s',_0x14bf43,_0xc379('0x10'));_0x4c217d(_0x3f7ad6[_0xc379('0x14')][_0xc379('0x13')]);}})['catch'](function(_0x4f7624){logger[_0xc379('0x12')](_0xc379('0xd'),_0x14bf43,_0x4f7624);_0x5e8079(_0x4f7624);});});}
\ No newline at end of file
+var _0xcd63=['../../config/utils','../../config/environment','jayson/promise','client','http','request','then','ChatApplication,\x20%s,\x20%s','request\x20sent','debug','ChatApplication,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','moment','randomstring','../../mysqldb'];(function(_0x5d7b4d,_0xed93ee){var _0x35c935=function(_0xf88de){while(--_0xf88de){_0x5d7b4d['push'](_0x5d7b4d['shift']());}};_0x35c935(++_0xed93ee);}(_0xcd63,0xb0));var _0x3cd6=function(_0x4985c5,_0xaedeec){_0x4985c5=_0x4985c5-0x0;var _0xbd42d7=_0xcd63[_0x4985c5];return _0xbd42d7;};'use strict';var _=require(_0x3cd6('0x0'));var util=require('util');var moment=require(_0x3cd6('0x1'));var BPromise=require('bluebird');var rs=require(_0x3cd6('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3cd6('0x3'))['db'];var utils=require(_0x3cd6('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0x3cd6('0x5'));var jayson=require(_0x3cd6('0x6'));var client=jayson[_0x3cd6('0x7')][_0x3cd6('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x535a54,_0x4b48b1,_0x4a51fc){return new BPromise(function(_0x3513c4,_0x3b9c2b){return client[_0x3cd6('0x9')](_0x535a54,_0x4a51fc)[_0x3cd6('0xa')](function(_0x5b0140){logger['info'](_0x3cd6('0xb'),_0x4b48b1,_0x3cd6('0xc'));logger[_0x3cd6('0xd')](_0x3cd6('0xe'),_0x4b48b1,_0x3cd6('0xc'),JSON[_0x3cd6('0xf')](_0x5b0140));if(_0x5b0140['error']){if(_0x5b0140[_0x3cd6('0x10')]['code']===0x1f4){logger[_0x3cd6('0x10')](_0x3cd6('0xb'),_0x4b48b1,_0x5b0140[_0x3cd6('0x10')][_0x3cd6('0x11')]);return _0x3b9c2b(_0x5b0140['error'][_0x3cd6('0x11')]);}logger['error'](_0x3cd6('0xb'),_0x4b48b1,_0x5b0140[_0x3cd6('0x10')]['message']);return _0x3513c4(_0x5b0140['error'][_0x3cd6('0x11')]);}else{logger['info']('ChatApplication,\x20%s,\x20%s',_0x4b48b1,_0x3cd6('0xc'));_0x3513c4(_0x5b0140[_0x3cd6('0x12')]['message']);}})[_0x3cd6('0x13')](function(_0x10f04a){logger[_0x3cd6('0x10')](_0x3cd6('0xb'),_0x4b48b1,_0x10f04a);_0x3b9c2b(_0x10f04a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9657=['show','put','/:id','destroy','multer','util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./chatApplication.controller','get','isAuthenticated'];(function(_0x1cc8a2,_0x5dce88){var _0xadb7a6=function(_0x385f03){while(--_0x385f03){_0x1cc8a2['push'](_0x1cc8a2['shift']());}};_0xadb7a6(++_0x5dce88);}(_0x9657,0xd6));var _0x7965=function(_0x44db46,_0x7ea814){_0x44db46=_0x44db46-0x0;var _0x4cd442=_0x9657[_0x44db46];return _0x4cd442;};'use strict';var multer=require(_0x7965('0x0'));var util=require(_0x7965('0x1'));var path=require('path');var timeout=require(_0x7965('0x2'));var express=require(_0x7965('0x3'));var router=express[_0x7965('0x4')]();var fs_extra=require(_0x7965('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x7965('0x6'));var config=require(_0x7965('0x7'));var controller=require(_0x7965('0x8'));router[_0x7965('0x9')]('/:id',auth[_0x7965('0xa')](),controller[_0x7965('0xb')]);router[_0x7965('0xc')](_0x7965('0xd'),auth[_0x7965('0xa')](),controller['update']);router['delete']('/:id',auth['isAuthenticated'](),controller[_0x7965('0xe')]);module['exports']=router;
\ No newline at end of file
+var _0x9c0d=['get','/:id','put','isAuthenticated','update','delete','destroy','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0xe416af,_0x3c9ac0){var _0x192342=function(_0x4c0d15){while(--_0x4c0d15){_0xe416af['push'](_0xe416af['shift']());}};_0x192342(++_0x3c9ac0);}(_0x9c0d,0xb7));var _0xd9c0=function(_0x1e4652,_0x3d7833){_0x1e4652=_0x1e4652-0x0;var _0x70fd1b=_0x9c0d[_0x1e4652];return _0x70fd1b;};'use strict';var multer=require(_0xd9c0('0x0'));var util=require(_0xd9c0('0x1'));var path=require(_0xd9c0('0x2'));var timeout=require('connect-timeout');var express=require(_0xd9c0('0x3'));var router=express[_0xd9c0('0x4')]();var fs_extra=require(_0xd9c0('0x5'));var auth=require(_0xd9c0('0x6'));var interaction=require(_0xd9c0('0x7'));var config=require(_0xd9c0('0x8'));var controller=require('./chatApplication.controller');router[_0xd9c0('0x9')](_0xd9c0('0xa'),auth['isAuthenticated'](),controller['show']);router[_0xd9c0('0xb')](_0xd9c0('0xa'),auth[_0xd9c0('0xc')](),controller[_0xd9c0('0xd')]);router[_0xd9c0('0xe')]('/:id',auth[_0xd9c0('0xc')](),controller[_0xd9c0('0xf')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdc9e=['exports','STRING'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xdc9e,0x76));var _0xedc9=function(_0x579800,_0x3b2aa3){_0x579800=_0x579800-0x0;var _0x12f505=_0xdc9e[_0x579800];return _0x12f505;};'use strict';var Sequelize=require('sequelize');module[_0xedc9('0x0')]={'name':{'type':Sequelize[_0xedc9('0x1')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'write':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0xb5dd=['BOOLEAN','sequelize','exports','STRING'];(function(_0x323fff,_0x38f93e){var _0x326de5=function(_0x5520f9){while(--_0x5520f9){_0x323fff['push'](_0x323fff['shift']());}};_0x326de5(++_0x38f93e);}(_0xb5dd,0xd9));var _0xdb5d=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0xb5dd[_0x4b369d];return _0x571a98;};'use strict';var Sequelize=require(_0xdb5d('0x0'));module[_0xdb5d('0x1')]={'name':{'type':Sequelize[_0xdb5d('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xdb5d('0x2')]},'write':{'type':Sequelize[_0xdb5d('0x3')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x35bd=['format','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./chatGroup.socket','status','json','offset','undefined','limit','count','set','reject','update','then','destroy','end','sendStatus','error','stack','name','send','index','map','ChatGroup','rawAttributes','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','keys','find','create','body','params','describe','ChatInternalMessage','user','toInteger','addMembers','omit','ids','getMembers','findOne','pick','removeMembers','addMessage','ChatGroupId','getMessages','$gte','split'];(function(_0xda464c,_0x26e47d){var _0x19e222=function(_0x1ec605){while(--_0x1ec605){_0xda464c['push'](_0xda464c['shift']());}};_0x19e222(++_0x26e47d);}(_0x35bd,0x1dc));var _0xd35b=function(_0x34eb04,_0x39a2b3){_0x34eb04=_0x34eb04-0x0;var _0x319a9b=_0x35bd[_0x34eb04];return _0x319a9b;};'use strict';var emlformat=require(_0xd35b('0x0'));var rimraf=require(_0xd35b('0x1'));var zipdir=require(_0xd35b('0x2'));var jsonpatch=require(_0xd35b('0x3'));var rp=require(_0xd35b('0x4'));var moment=require(_0xd35b('0x5'));var BPromise=require(_0xd35b('0x6'));var Mustache=require(_0xd35b('0x7'));var util=require('util');var path=require(_0xd35b('0x8'));var sox=require(_0xd35b('0x9'));var csv=require(_0xd35b('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd35b('0xb'));var squel=require(_0xd35b('0xc'));var crypto=require(_0xd35b('0xd'));var jsforce=require(_0xd35b('0xe'));var deskjs=require(_0xd35b('0xf'));var toCsv=require(_0xd35b('0xa'));var querystring=require('querystring');var Papa=require(_0xd35b('0x10'));var Redis=require('ioredis');var authService=require(_0xd35b('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd35b('0x12'));var logger=require(_0xd35b('0x13'))(_0xd35b('0x14'));var utils=require('../../config/utils');var config=require(_0xd35b('0x15'));var licenseUtil=require(_0xd35b('0x16'));var db=require(_0xd35b('0x17'))['db'];config[_0xd35b('0x18')]=_['defaults'](config[_0xd35b('0x18')],{'host':_0xd35b('0x19'),'port':0x18eb});var socket=require(_0xd35b('0x1a'))(new Redis(config[_0xd35b('0x18')]));require(_0xd35b('0x1b'))['register'](socket);function respondWithStatusCode(_0x233d18,_0x1a0c59){_0x1a0c59=_0x1a0c59||0xcc;return function(_0x3dea44){if(_0x3dea44){return _0x233d18['sendStatus'](_0x1a0c59);}return _0x233d18[_0xd35b('0x1c')](_0x1a0c59)['end']();};}function respondWithResult(_0x180b10,_0x3ad1cc){_0x3ad1cc=_0x3ad1cc||0xc8;return function(_0x3eb77f){if(_0x3eb77f){return _0x180b10[_0xd35b('0x1c')](_0x3ad1cc)[_0xd35b('0x1d')](_0x3eb77f);}};}function respondWithFilteredResult(_0x5dce6c,_0xe3ddae){return function(_0x29f528){if(_0x29f528){var _0x1e8bdc=typeof _0xe3ddae[_0xd35b('0x1e')]===_0xd35b('0x1f')&&typeof _0xe3ddae[_0xd35b('0x20')]==='undefined';var _0x13eea5=_0x29f528[_0xd35b('0x21')];var _0x2ce407=_0x1e8bdc?0x0:_0xe3ddae[_0xd35b('0x1e')];var _0x913c9f=_0x1e8bdc?_0x29f528[_0xd35b('0x21')]:_0xe3ddae[_0xd35b('0x1e')]+_0xe3ddae[_0xd35b('0x20')];var _0x294f55;if(_0x913c9f>=_0x13eea5){_0x913c9f=_0x13eea5;_0x294f55=0xc8;}else{_0x294f55=0xce;}_0x5dce6c['status'](_0x294f55);return _0x5dce6c[_0xd35b('0x22')]('Content-Range',_0x2ce407+'-'+_0x913c9f+'/'+_0x13eea5)[_0xd35b('0x1d')](_0x29f528);}return null;};}function patchUpdates(_0x293304){return function(_0x1107be){try{jsonpatch['apply'](_0x1107be,_0x293304,!![]);}catch(_0x4fbc32){return BPromise[_0xd35b('0x23')](_0x4fbc32);}return _0x1107be['save']();};}function saveUpdates(_0x295d28,_0x29e8ba){return function(_0x1b00c4){if(_0x1b00c4){return _0x1b00c4[_0xd35b('0x24')](_0x295d28)[_0xd35b('0x25')](function(_0x3c6c45){return _0x3c6c45;});}return null;};}function removeEntity(_0x2cfd3a,_0x290ed9){return function(_0x45406e){if(_0x45406e){return _0x45406e[_0xd35b('0x26')]()[_0xd35b('0x25')](function(){_0x2cfd3a['status'](0xcc)[_0xd35b('0x27')]();});}};}function handleEntityNotFound(_0x4275ad,_0x17bb84){return function(_0x2ebfd1){if(!_0x2ebfd1){_0x4275ad[_0xd35b('0x28')](0x194);}return _0x2ebfd1;};}function handleError(_0x1ab4da,_0x26ab9d){_0x26ab9d=_0x26ab9d||0x1f4;return function(_0x2a9051){logger[_0xd35b('0x29')](_0x2a9051[_0xd35b('0x2a')]);if(_0x2a9051['name']){delete _0x2a9051[_0xd35b('0x2b')];}_0x1ab4da['status'](_0x26ab9d)[_0xd35b('0x2c')](_0x2a9051);};}exports[_0xd35b('0x2d')]=function(_0x4c11dd,_0xb3c78a){var _0x19d549={},_0x415de2={},_0x25a800={'count':0x0,'rows':[]};var _0x2f6d32=_[_0xd35b('0x2e')](db[_0xd35b('0x2f')][_0xd35b('0x30')],function(_0x3cebbf){return{'name':_0x3cebbf['fieldName'],'type':_0x3cebbf['type'][_0xd35b('0x31')]};});_0x415de2[_0xd35b('0x32')]=_['map'](_0x2f6d32,'name');_0x415de2[_0xd35b('0x33')]=_['keys'](_0x4c11dd['query']);_0x415de2[_0xd35b('0x34')]=_[_0xd35b('0x35')](_0x415de2[_0xd35b('0x32')],_0x415de2[_0xd35b('0x33')]);_0x19d549[_0xd35b('0x36')]=_[_0xd35b('0x35')](_0x415de2[_0xd35b('0x32')],qs[_0xd35b('0x37')](_0x4c11dd['query'][_0xd35b('0x37')]));_0x19d549[_0xd35b('0x36')]=_0x19d549[_0xd35b('0x36')][_0xd35b('0x38')]?_0x19d549[_0xd35b('0x36')]:_0x415de2['model'];if(!_0x4c11dd[_0xd35b('0x33')][_0xd35b('0x39')](_0xd35b('0x3a'))){_0x19d549[_0xd35b('0x20')]=qs[_0xd35b('0x20')](_0x4c11dd['query'][_0xd35b('0x20')]);_0x19d549['offset']=qs[_0xd35b('0x1e')](_0x4c11dd[_0xd35b('0x33')][_0xd35b('0x1e')]);}_0x19d549[_0xd35b('0x3b')]=qs[_0xd35b('0x3c')](_0x4c11dd[_0xd35b('0x33')][_0xd35b('0x3c')]);_0x19d549[_0xd35b('0x3d')]=qs['filters'](_['pick'](_0x4c11dd['query'],_0x415de2[_0xd35b('0x34')]),_0x2f6d32);if(_0x4c11dd[_0xd35b('0x33')][_0xd35b('0x3e')]){_0x19d549[_0xd35b('0x3d')]=_[_0xd35b('0x3f')](_0x19d549[_0xd35b('0x3d')],{'$or':_[_0xd35b('0x2e')](_0x2f6d32,function(_0x144d4f){if(_0x144d4f[_0xd35b('0x40')]!==_0xd35b('0x41')){var _0x599765={};_0x599765[_0x144d4f[_0xd35b('0x2b')]]={'$like':'%'+_0x4c11dd[_0xd35b('0x33')][_0xd35b('0x3e')]+'%'};return _0x599765;}})});}_0x19d549=_[_0xd35b('0x3f')]({},_0x19d549,_0x4c11dd[_0xd35b('0x42')]);var _0x31aa07={'where':_0x19d549[_0xd35b('0x3d')]};return db[_0xd35b('0x2f')][_0xd35b('0x21')](_0x31aa07)[_0xd35b('0x25')](function(_0x48a530){_0x25a800['count']=_0x48a530;if(_0x4c11dd[_0xd35b('0x33')][_0xd35b('0x43')]){_0x19d549[_0xd35b('0x44')]=[{'all':!![]}];}return db[_0xd35b('0x2f')][_0xd35b('0x45')](_0x19d549);})[_0xd35b('0x25')](function(_0x2f49c1){_0x25a800[_0xd35b('0x46')]=_0x2f49c1;return _0x25a800;})[_0xd35b('0x25')](respondWithFilteredResult(_0xb3c78a,_0x19d549))[_0xd35b('0x47')](handleError(_0xb3c78a,null));};exports[_0xd35b('0x48')]=function(_0x1f7bc6,_0x22710b){var _0x580558={'raw':!![],'where':{'id':_0x1f7bc6['params']['id']}},_0x3c7d9a={};_0x3c7d9a[_0xd35b('0x32')]=_[_0xd35b('0x49')](db[_0xd35b('0x2f')]['rawAttributes']);_0x3c7d9a[_0xd35b('0x33')]=_['keys'](_0x1f7bc6[_0xd35b('0x33')]);_0x3c7d9a[_0xd35b('0x34')]=_[_0xd35b('0x35')](_0x3c7d9a[_0xd35b('0x32')],_0x3c7d9a[_0xd35b('0x33')]);_0x580558['attributes']=_[_0xd35b('0x35')](_0x3c7d9a[_0xd35b('0x32')],qs[_0xd35b('0x37')](_0x1f7bc6['query'][_0xd35b('0x37')]));_0x580558[_0xd35b('0x36')]=_0x580558[_0xd35b('0x36')][_0xd35b('0x38')]?_0x580558[_0xd35b('0x36')]:_0x3c7d9a['model'];if(_0x1f7bc6[_0xd35b('0x33')][_0xd35b('0x43')]){_0x580558[_0xd35b('0x44')]=[{'all':!![]}];}_0x580558=_['merge']({},_0x580558,_0x1f7bc6[_0xd35b('0x42')]);return db[_0xd35b('0x2f')][_0xd35b('0x4a')](_0x580558)['then'](handleEntityNotFound(_0x22710b,null))[_0xd35b('0x25')](respondWithResult(_0x22710b,null))[_0xd35b('0x47')](handleError(_0x22710b,null));};exports[_0xd35b('0x4b')]=function(_0x4e184f,_0x3d354c){return db[_0xd35b('0x2f')][_0xd35b('0x4b')](_0x4e184f['body'],{})[_0xd35b('0x25')](respondWithResult(_0x3d354c,0xc9))['catch'](handleError(_0x3d354c,null));};exports[_0xd35b('0x24')]=function(_0x305ee7,_0x1810ec){if(_0x305ee7[_0xd35b('0x4c')]['id']){delete _0x305ee7[_0xd35b('0x4c')]['id'];}return db[_0xd35b('0x2f')][_0xd35b('0x4a')]({'where':{'id':_0x305ee7[_0xd35b('0x4d')]['id']}})[_0xd35b('0x25')](handleEntityNotFound(_0x1810ec,null))[_0xd35b('0x25')](saveUpdates(_0x305ee7[_0xd35b('0x4c')],null))[_0xd35b('0x25')](respondWithResult(_0x1810ec,null))[_0xd35b('0x47')](handleError(_0x1810ec,null));};exports[_0xd35b('0x26')]=function(_0x5c3464,_0x3387e8){return db[_0xd35b('0x2f')][_0xd35b('0x4a')]({'where':{'id':_0x5c3464['params']['id']}})[_0xd35b('0x25')](handleEntityNotFound(_0x3387e8,null))[_0xd35b('0x25')](removeEntity(_0x3387e8,null))[_0xd35b('0x47')](handleError(_0x3387e8,null));};exports['describe']=function(_0x3b1bed,_0x301a53){return db[_0xd35b('0x2f')][_0xd35b('0x4e')]()['then'](respondWithResult(_0x301a53,null))['catch'](handleError(_0x301a53,null));};exports['getUnread']=function(_0x53575d,_0x2fe529,_0x161ec8){return db[_0xd35b('0x4f')]['count']({'where':{'ChatGroupId':_0x53575d[_0xd35b('0x4d')]['id'],'ToId':_0x53575d[_0xd35b('0x50')]['id'],'read':![]}})[_0xd35b('0x25')](function(_0x59b6ea){return{'id':_[_0xd35b('0x51')](_0x53575d[_0xd35b('0x4d')]['id']),'count':_0x59b6ea};})[_0xd35b('0x25')](respondWithResult(_0x2fe529,null))[_0xd35b('0x47')](handleError(_0x2fe529,null));};exports[_0xd35b('0x52')]=function(_0x451ee3,_0x1498da,_0x4efa60){return db[_0xd35b('0x2f')]['find']({'where':{'id':_0x451ee3[_0xd35b('0x4d')]['id']}})[_0xd35b('0x25')](handleEntityNotFound(_0x1498da,null))[_0xd35b('0x25')](function(_0x4dcc1c){if(_0x4dcc1c){return _0x4dcc1c[_0xd35b('0x52')](_0x451ee3[_0xd35b('0x4c')]['ids'],_[_0xd35b('0x53')](_0x451ee3[_0xd35b('0x4c')],[_0xd35b('0x54'),'id'])||{});}})['then'](respondWithResult(_0x1498da,null))[_0xd35b('0x47')](handleError(_0x1498da,null));};exports[_0xd35b('0x55')]=function(_0x1615d2,_0x18435c,_0x4c6d49){var _0x4f703d={};var _0x401359={};var _0x59573d;var _0x388c23;return db[_0xd35b('0x2f')][_0xd35b('0x56')]({'where':{'id':_0x1615d2['params']['id']}})[_0xd35b('0x25')](handleEntityNotFound(_0x18435c,null))[_0xd35b('0x25')](function(_0x4d5a5c){if(_0x4d5a5c){_0x59573d=_0x4d5a5c;_0x401359[_0xd35b('0x32')]=_[_0xd35b('0x49')](db['User'][_0xd35b('0x30')]);_0x401359['query']=_['keys'](_0x1615d2['query']);_0x401359[_0xd35b('0x34')]=_[_0xd35b('0x35')](_0x401359[_0xd35b('0x32')],_0x401359[_0xd35b('0x33')]);_0x4f703d[_0xd35b('0x36')]=_[_0xd35b('0x35')](_0x401359[_0xd35b('0x32')],qs[_0xd35b('0x37')](_0x1615d2['query'][_0xd35b('0x37')]));_0x4f703d[_0xd35b('0x36')]=_0x4f703d['attributes']['length']?_0x4f703d[_0xd35b('0x36')]:_0x401359['model'];_0x4f703d[_0xd35b('0x3b')]=qs[_0xd35b('0x3c')](_0x1615d2[_0xd35b('0x33')][_0xd35b('0x3c')]);_0x4f703d[_0xd35b('0x3d')]=qs['filters'](_[_0xd35b('0x57')](_0x1615d2['query'],_0x401359[_0xd35b('0x34')]));if(_0x1615d2['query'][_0xd35b('0x3e')]){_0x4f703d['where']=_[_0xd35b('0x3f')](_0x4f703d[_0xd35b('0x3d')],{'$or':_[_0xd35b('0x2e')](_0x4f703d['attributes'],function(_0xe0f6d6){var _0x32ea5a={};_0x32ea5a[_0xe0f6d6]={'$like':'%'+_0x1615d2[_0xd35b('0x33')][_0xd35b('0x3e')]+'%'};return _0x32ea5a;})});}_0x4f703d=_[_0xd35b('0x3f')]({},_0x4f703d,_0x1615d2['options']);return _0x59573d['getMembers'](_0x4f703d);}})[_0xd35b('0x25')](function(_0x3eabc3){if(_0x3eabc3){_0x388c23=_0x3eabc3[_0xd35b('0x38')];if(!_0x1615d2['query'][_0xd35b('0x39')](_0xd35b('0x3a'))){_0x4f703d[_0xd35b('0x20')]=qs[_0xd35b('0x20')](_0x1615d2[_0xd35b('0x33')][_0xd35b('0x20')]);_0x4f703d['offset']=qs[_0xd35b('0x1e')](_0x1615d2['query'][_0xd35b('0x1e')]);}return _0x59573d[_0xd35b('0x55')](_0x4f703d);}})[_0xd35b('0x25')](function(_0x347aeb){if(_0x347aeb){return _0x347aeb?{'count':_0x388c23,'rows':_0x347aeb}:null;}})[_0xd35b('0x25')](respondWithResult(_0x18435c,null))[_0xd35b('0x47')](handleError(_0x18435c,null));};exports[_0xd35b('0x58')]=function(_0xe20f85,_0x3992cf,_0x4b15b4){return db[_0xd35b('0x2f')]['find']({'where':{'id':_0xe20f85[_0xd35b('0x4d')]['id']}})[_0xd35b('0x25')](handleEntityNotFound(_0x3992cf,null))[_0xd35b('0x25')](function(_0xeacbf0){if(_0xeacbf0){return _0xeacbf0[_0xd35b('0x58')](_0xe20f85[_0xd35b('0x33')][_0xd35b('0x54')]);}})[_0xd35b('0x25')](respondWithStatusCode(_0x3992cf,null))['catch'](handleError(_0x3992cf,null));};exports[_0xd35b('0x59')]=function(_0x5f29c1,_0x5193f8,_0x1112b0){if(_0x5f29c1[_0xd35b('0x4c')]['id']){delete _0x5f29c1['body']['id'];}return db['ChatGroup'][_0xd35b('0x4a')]({'where':{'id':_0x5f29c1[_0xd35b('0x4d')]['id']}})['then'](handleEntityNotFound(_0x5193f8,null))[_0xd35b('0x25')](function(_0x1c7d77){if(_0x1c7d77){_0x5f29c1[_0xd35b('0x4c')][_0xd35b('0x5a')]=_0x1c7d77['id'];return db[_0xd35b('0x4f')][_0xd35b('0x4b')](_0x5f29c1[_0xd35b('0x4c')]);}})['then'](respondWithResult(_0x5193f8,null))[_0xd35b('0x47')](handleError(_0x5193f8,null));};exports[_0xd35b('0x5b')]=function(_0x164e5e,_0x4fcd38,_0x5c065f){var _0x6bb801={};var _0x2ed032={};var _0x510b5a;var _0x302c35;return db[_0xd35b('0x2f')][_0xd35b('0x56')]({'where':{'id':_0x164e5e[_0xd35b('0x4d')]['id']}})[_0xd35b('0x25')](handleEntityNotFound(_0x4fcd38,null))[_0xd35b('0x25')](function(_0x2acfce){if(_0x2acfce){_0x510b5a=_0x2acfce;_0x2ed032[_0xd35b('0x32')]=_[_0xd35b('0x49')](db[_0xd35b('0x4f')][_0xd35b('0x30')]);_0x2ed032[_0xd35b('0x33')]=_[_0xd35b('0x49')](_0x164e5e[_0xd35b('0x33')]);_0x2ed032[_0xd35b('0x34')]=_[_0xd35b('0x35')](_0x2ed032[_0xd35b('0x32')],_0x2ed032['query']);_0x6bb801[_0xd35b('0x36')]=_[_0xd35b('0x35')](_0x2ed032[_0xd35b('0x32')],qs[_0xd35b('0x37')](_0x164e5e[_0xd35b('0x33')]['fields']));_0x6bb801[_0xd35b('0x36')]=_0x6bb801[_0xd35b('0x36')][_0xd35b('0x38')]?_0x6bb801[_0xd35b('0x36')]:_0x2ed032[_0xd35b('0x32')];_0x6bb801[_0xd35b('0x3b')]=qs[_0xd35b('0x3c')](_0x164e5e['query'][_0xd35b('0x3c')]);_0x6bb801[_0xd35b('0x3d')]=qs['filters'](_['pick'](_0x164e5e[_0xd35b('0x33')],_0x2ed032['filters']));if(_0x164e5e[_0xd35b('0x33')][_0xd35b('0x3e')]){_0x6bb801[_0xd35b('0x3d')]=_[_0xd35b('0x3f')](_0x6bb801[_0xd35b('0x3d')],{'$or':_[_0xd35b('0x2e')](_0x6bb801[_0xd35b('0x36')],function(_0x72f95c){var _0x21e190={};_0x21e190[_0x72f95c]={'$like':'%'+_0x164e5e[_0xd35b('0x33')][_0xd35b('0x3e')]+'%'};return _0x21e190;})});}if(_0x164e5e[_0xd35b('0x33')][_0xd35b('0x5c')]){var _0x4aa00b=_0x164e5e[_0xd35b('0x33')]['$gte'][_0xd35b('0x5d')](',');var _0x3151c0={};_0x3151c0[_0x4aa00b[0x0]]={'$gte':moment(_0x4aa00b[0x1])[_0xd35b('0x5e')]('YYYY-MM-DD\x20HH:mm:ss')};_0x6bb801['where']=_[_0xd35b('0x3f')](_0x6bb801[_0xd35b('0x3d')],_0x3151c0);}_0x6bb801=_[_0xd35b('0x3f')]({},_0x6bb801,_0x164e5e[_0xd35b('0x42')]);return _0x510b5a['getMessages'](_0x6bb801);}})[_0xd35b('0x25')](function(_0x274a16){if(_0x274a16){_0x302c35=_0x274a16[_0xd35b('0x38')];if(!_0x164e5e[_0xd35b('0x33')][_0xd35b('0x39')]('nolimit')){_0x6bb801[_0xd35b('0x20')]=qs[_0xd35b('0x20')](_0x164e5e['query'][_0xd35b('0x20')]);_0x6bb801[_0xd35b('0x1e')]=qs[_0xd35b('0x1e')](_0x164e5e['query']['offset']);}return _0x510b5a[_0xd35b('0x5b')](_0x6bb801);}})['then'](function(_0x526f73){if(_0x526f73){return _0x526f73?{'count':_0x302c35,'rows':_0x526f73}:null;}})[_0xd35b('0x25')](respondWithResult(_0x4fcd38,null))[_0xd35b('0x47')](handleError(_0x4fcd38,null));};
\ No newline at end of file
+var _0x28f4=['toInteger','addMembers','omit','ids','getMembers','options','removeMembers','addMessage','ChatGroupId','getMessages','findOne','$gte','format','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','zip-dir','fast-json-patch','moment','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','../../config/logger','api','../../config/environment','redis','localhost','socket.io-emitter','./chatGroup.socket','register','sendStatus','end','json','offset','limit','count','apply','reject','save','update','then','status','error','stack','name','send','index','map','ChatGroup','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filters','filter','merge','where','VIRTUAL','include','findAll','catch','show','params','find','create','body','describe','ChatInternalMessage','user'];(function(_0xba1760,_0x191969){var _0x1f3143=function(_0x5aa807){while(--_0x5aa807){_0xba1760['push'](_0xba1760['shift']());}};_0x1f3143(++_0x191969);}(_0x28f4,0x12e));var _0x428f=function(_0x5235d7,_0x49473f){_0x5235d7=_0x5235d7-0x0;var _0x5242c1=_0x28f4[_0x5235d7];return _0x5242c1;};'use strict';var emlformat=require(_0x428f('0x0'));var rimraf=require(_0x428f('0x1'));var zipdir=require(_0x428f('0x2'));var jsonpatch=require(_0x428f('0x3'));var rp=require('request-promise');var moment=require(_0x428f('0x4'));var BPromise=require(_0x428f('0x5'));var Mustache=require(_0x428f('0x6'));var util=require(_0x428f('0x7'));var path=require('path');var sox=require(_0x428f('0x8'));var csv=require(_0x428f('0x9'));var ejs=require(_0x428f('0xa'));var fs=require('fs');var fs_extra=require(_0x428f('0xb'));var _=require(_0x428f('0xc'));var squel=require('squel');var crypto=require(_0x428f('0xd'));var jsforce=require(_0x428f('0xe'));var deskjs=require(_0x428f('0xf'));var toCsv=require(_0x428f('0x9'));var querystring=require(_0x428f('0x10'));var Papa=require(_0x428f('0x11'));var Redis=require(_0x428f('0x12'));var authService=require(_0x428f('0x13'));var qs=require(_0x428f('0x14'));var as=require(_0x428f('0x15'));var hardwareService=require(_0x428f('0x16'));var logger=require(_0x428f('0x17'))(_0x428f('0x18'));var utils=require('../../config/utils');var config=require(_0x428f('0x19'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config[_0x428f('0x1a')],{'host':_0x428f('0x1b'),'port':0x18eb});var socket=require(_0x428f('0x1c'))(new Redis(config['redis']));require(_0x428f('0x1d'))[_0x428f('0x1e')](socket);function respondWithStatusCode(_0x5d8edc,_0x45a1b5){_0x45a1b5=_0x45a1b5||0xcc;return function(_0x44834c){if(_0x44834c){return _0x5d8edc[_0x428f('0x1f')](_0x45a1b5);}return _0x5d8edc['status'](_0x45a1b5)[_0x428f('0x20')]();};}function respondWithResult(_0x3fa572,_0x163fd5){_0x163fd5=_0x163fd5||0xc8;return function(_0x38e1ff){if(_0x38e1ff){return _0x3fa572['status'](_0x163fd5)[_0x428f('0x21')](_0x38e1ff);}};}function respondWithFilteredResult(_0x217ba9,_0x588f76){return function(_0x26a3c6){if(_0x26a3c6){var _0x2e8397=typeof _0x588f76[_0x428f('0x22')]==='undefined'&&typeof _0x588f76[_0x428f('0x23')]==='undefined';var _0x36dfae=_0x26a3c6[_0x428f('0x24')];var _0x53a590=_0x2e8397?0x0:_0x588f76[_0x428f('0x22')];var _0x24987b=_0x2e8397?_0x26a3c6[_0x428f('0x24')]:_0x588f76['offset']+_0x588f76['limit'];var _0x192f50;if(_0x24987b>=_0x36dfae){_0x24987b=_0x36dfae;_0x192f50=0xc8;}else{_0x192f50=0xce;}_0x217ba9['status'](_0x192f50);return _0x217ba9['set']('Content-Range',_0x53a590+'-'+_0x24987b+'/'+_0x36dfae)['json'](_0x26a3c6);}return null;};}function patchUpdates(_0x19e942){return function(_0x2a212c){try{jsonpatch[_0x428f('0x25')](_0x2a212c,_0x19e942,!![]);}catch(_0x4b3d15){return BPromise[_0x428f('0x26')](_0x4b3d15);}return _0x2a212c[_0x428f('0x27')]();};}function saveUpdates(_0x5d8f8e,_0x21d627){return function(_0x278ddf){if(_0x278ddf){return _0x278ddf[_0x428f('0x28')](_0x5d8f8e)[_0x428f('0x29')](function(_0x5070c6){return _0x5070c6;});}return null;};}function removeEntity(_0x12c79d,_0x1e076f){return function(_0x1acc17){if(_0x1acc17){return _0x1acc17['destroy']()[_0x428f('0x29')](function(){_0x12c79d[_0x428f('0x2a')](0xcc)[_0x428f('0x20')]();});}};}function handleEntityNotFound(_0x8213dc,_0x4c4ed5){return function(_0xcf3645){if(!_0xcf3645){_0x8213dc[_0x428f('0x1f')](0x194);}return _0xcf3645;};}function handleError(_0x574c6a,_0x41c40d){_0x41c40d=_0x41c40d||0x1f4;return function(_0x4f7afc){logger[_0x428f('0x2b')](_0x4f7afc[_0x428f('0x2c')]);if(_0x4f7afc['name']){delete _0x4f7afc[_0x428f('0x2d')];}_0x574c6a[_0x428f('0x2a')](_0x41c40d)[_0x428f('0x2e')](_0x4f7afc);};}exports[_0x428f('0x2f')]=function(_0x4b40db,_0x2b92e5){var _0xa1d613={},_0x1677a2={},_0x1c1024={'count':0x0,'rows':[]};var _0x354fd4=_[_0x428f('0x30')](db[_0x428f('0x31')][_0x428f('0x32')],function(_0x1011ee){return{'name':_0x1011ee[_0x428f('0x33')],'type':_0x1011ee[_0x428f('0x34')][_0x428f('0x35')]};});_0x1677a2[_0x428f('0x36')]=_[_0x428f('0x30')](_0x354fd4,_0x428f('0x2d'));_0x1677a2[_0x428f('0x37')]=_[_0x428f('0x38')](_0x4b40db['query']);_0x1677a2['filters']=_[_0x428f('0x39')](_0x1677a2['model'],_0x1677a2[_0x428f('0x37')]);_0xa1d613[_0x428f('0x3a')]=_[_0x428f('0x39')](_0x1677a2['model'],qs[_0x428f('0x3b')](_0x4b40db[_0x428f('0x37')][_0x428f('0x3b')]));_0xa1d613[_0x428f('0x3a')]=_0xa1d613[_0x428f('0x3a')][_0x428f('0x3c')]?_0xa1d613[_0x428f('0x3a')]:_0x1677a2['model'];if(!_0x4b40db['query'][_0x428f('0x3d')](_0x428f('0x3e'))){_0xa1d613['limit']=qs['limit'](_0x4b40db['query'][_0x428f('0x23')]);_0xa1d613[_0x428f('0x22')]=qs[_0x428f('0x22')](_0x4b40db[_0x428f('0x37')][_0x428f('0x22')]);}_0xa1d613[_0x428f('0x3f')]=qs[_0x428f('0x40')](_0x4b40db['query'][_0x428f('0x40')]);_0xa1d613['where']=qs['filters'](_[_0x428f('0x41')](_0x4b40db[_0x428f('0x37')],_0x1677a2[_0x428f('0x42')]),_0x354fd4);if(_0x4b40db[_0x428f('0x37')][_0x428f('0x43')]){_0xa1d613['where']=_[_0x428f('0x44')](_0xa1d613[_0x428f('0x45')],{'$or':_[_0x428f('0x30')](_0x354fd4,function(_0x17a5a0){if(_0x17a5a0[_0x428f('0x34')]!==_0x428f('0x46')){var _0x551989={};_0x551989[_0x17a5a0[_0x428f('0x2d')]]={'$like':'%'+_0x4b40db[_0x428f('0x37')][_0x428f('0x43')]+'%'};return _0x551989;}})});}_0xa1d613=_[_0x428f('0x44')]({},_0xa1d613,_0x4b40db['options']);var _0x5a39e6={'where':_0xa1d613[_0x428f('0x45')]};return db[_0x428f('0x31')][_0x428f('0x24')](_0x5a39e6)[_0x428f('0x29')](function(_0x283fed){_0x1c1024[_0x428f('0x24')]=_0x283fed;if(_0x4b40db[_0x428f('0x37')]['includeAll']){_0xa1d613[_0x428f('0x47')]=[{'all':!![]}];}return db[_0x428f('0x31')][_0x428f('0x48')](_0xa1d613);})['then'](function(_0x4f22e4){_0x1c1024['rows']=_0x4f22e4;return _0x1c1024;})[_0x428f('0x29')](respondWithFilteredResult(_0x2b92e5,_0xa1d613))[_0x428f('0x49')](handleError(_0x2b92e5,null));};exports[_0x428f('0x4a')]=function(_0x58d702,_0x2362e8){var _0xadc00a={'raw':!![],'where':{'id':_0x58d702[_0x428f('0x4b')]['id']}},_0x412835={};_0x412835[_0x428f('0x36')]=_[_0x428f('0x38')](db[_0x428f('0x31')][_0x428f('0x32')]);_0x412835[_0x428f('0x37')]=_[_0x428f('0x38')](_0x58d702[_0x428f('0x37')]);_0x412835[_0x428f('0x42')]=_['intersection'](_0x412835['model'],_0x412835['query']);_0xadc00a[_0x428f('0x3a')]=_[_0x428f('0x39')](_0x412835[_0x428f('0x36')],qs[_0x428f('0x3b')](_0x58d702[_0x428f('0x37')][_0x428f('0x3b')]));_0xadc00a['attributes']=_0xadc00a[_0x428f('0x3a')][_0x428f('0x3c')]?_0xadc00a[_0x428f('0x3a')]:_0x412835[_0x428f('0x36')];if(_0x58d702[_0x428f('0x37')]['includeAll']){_0xadc00a[_0x428f('0x47')]=[{'all':!![]}];}_0xadc00a=_['merge']({},_0xadc00a,_0x58d702['options']);return db[_0x428f('0x31')][_0x428f('0x4c')](_0xadc00a)['then'](handleEntityNotFound(_0x2362e8,null))['then'](respondWithResult(_0x2362e8,null))[_0x428f('0x49')](handleError(_0x2362e8,null));};exports[_0x428f('0x4d')]=function(_0x527751,_0xcee9e4){return db[_0x428f('0x31')][_0x428f('0x4d')](_0x527751[_0x428f('0x4e')],{})[_0x428f('0x29')](respondWithResult(_0xcee9e4,0xc9))[_0x428f('0x49')](handleError(_0xcee9e4,null));};exports['update']=function(_0x5d97a3,_0x550f5c){if(_0x5d97a3[_0x428f('0x4e')]['id']){delete _0x5d97a3[_0x428f('0x4e')]['id'];}return db[_0x428f('0x31')]['find']({'where':{'id':_0x5d97a3[_0x428f('0x4b')]['id']}})['then'](handleEntityNotFound(_0x550f5c,null))[_0x428f('0x29')](saveUpdates(_0x5d97a3[_0x428f('0x4e')],null))[_0x428f('0x29')](respondWithResult(_0x550f5c,null))[_0x428f('0x49')](handleError(_0x550f5c,null));};exports['destroy']=function(_0x3ef31f,_0x26a0be){return db['ChatGroup'][_0x428f('0x4c')]({'where':{'id':_0x3ef31f[_0x428f('0x4b')]['id']}})[_0x428f('0x29')](handleEntityNotFound(_0x26a0be,null))['then'](removeEntity(_0x26a0be,null))[_0x428f('0x49')](handleError(_0x26a0be,null));};exports['describe']=function(_0x51b499,_0x382afa){return db['ChatGroup'][_0x428f('0x4f')]()[_0x428f('0x29')](respondWithResult(_0x382afa,null))[_0x428f('0x49')](handleError(_0x382afa,null));};exports['getUnread']=function(_0x182119,_0x488744,_0xd434f6){return db[_0x428f('0x50')][_0x428f('0x24')]({'where':{'ChatGroupId':_0x182119[_0x428f('0x4b')]['id'],'ToId':_0x182119[_0x428f('0x51')]['id'],'read':![]}})['then'](function(_0x3e8a6a){return{'id':_[_0x428f('0x52')](_0x182119[_0x428f('0x4b')]['id']),'count':_0x3e8a6a};})[_0x428f('0x29')](respondWithResult(_0x488744,null))[_0x428f('0x49')](handleError(_0x488744,null));};exports['addMembers']=function(_0x37fa38,_0x3f11ad,_0x3bbf3f){return db[_0x428f('0x31')][_0x428f('0x4c')]({'where':{'id':_0x37fa38[_0x428f('0x4b')]['id']}})[_0x428f('0x29')](handleEntityNotFound(_0x3f11ad,null))[_0x428f('0x29')](function(_0x6ac1e5){if(_0x6ac1e5){return _0x6ac1e5[_0x428f('0x53')](_0x37fa38[_0x428f('0x4e')]['ids'],_[_0x428f('0x54')](_0x37fa38[_0x428f('0x4e')],[_0x428f('0x55'),'id'])||{});}})[_0x428f('0x29')](respondWithResult(_0x3f11ad,null))[_0x428f('0x49')](handleError(_0x3f11ad,null));};exports[_0x428f('0x56')]=function(_0x7ded2c,_0x3db91f,_0x164070){var _0x5ae472={};var _0x64d3db={};var _0x41a9a5;var _0x175549;return db[_0x428f('0x31')]['findOne']({'where':{'id':_0x7ded2c[_0x428f('0x4b')]['id']}})['then'](handleEntityNotFound(_0x3db91f,null))[_0x428f('0x29')](function(_0x129259){if(_0x129259){_0x41a9a5=_0x129259;_0x64d3db['model']=_[_0x428f('0x38')](db['User'][_0x428f('0x32')]);_0x64d3db[_0x428f('0x37')]=_[_0x428f('0x38')](_0x7ded2c[_0x428f('0x37')]);_0x64d3db[_0x428f('0x42')]=_[_0x428f('0x39')](_0x64d3db['model'],_0x64d3db[_0x428f('0x37')]);_0x5ae472['attributes']=_['intersection'](_0x64d3db['model'],qs[_0x428f('0x3b')](_0x7ded2c[_0x428f('0x37')][_0x428f('0x3b')]));_0x5ae472['attributes']=_0x5ae472[_0x428f('0x3a')][_0x428f('0x3c')]?_0x5ae472[_0x428f('0x3a')]:_0x64d3db[_0x428f('0x36')];_0x5ae472['order']=qs['sort'](_0x7ded2c['query']['sort']);_0x5ae472['where']=qs[_0x428f('0x42')](_[_0x428f('0x41')](_0x7ded2c[_0x428f('0x37')],_0x64d3db[_0x428f('0x42')]));if(_0x7ded2c[_0x428f('0x37')][_0x428f('0x43')]){_0x5ae472['where']=_[_0x428f('0x44')](_0x5ae472['where'],{'$or':_['map'](_0x5ae472[_0x428f('0x3a')],function(_0x417157){var _0x3f9cec={};_0x3f9cec[_0x417157]={'$like':'%'+_0x7ded2c[_0x428f('0x37')][_0x428f('0x43')]+'%'};return _0x3f9cec;})});}_0x5ae472=_[_0x428f('0x44')]({},_0x5ae472,_0x7ded2c[_0x428f('0x57')]);return _0x41a9a5[_0x428f('0x56')](_0x5ae472);}})[_0x428f('0x29')](function(_0x4e6dc5){if(_0x4e6dc5){_0x175549=_0x4e6dc5[_0x428f('0x3c')];if(!_0x7ded2c[_0x428f('0x37')]['hasOwnProperty'](_0x428f('0x3e'))){_0x5ae472[_0x428f('0x23')]=qs['limit'](_0x7ded2c[_0x428f('0x37')][_0x428f('0x23')]);_0x5ae472[_0x428f('0x22')]=qs['offset'](_0x7ded2c[_0x428f('0x37')][_0x428f('0x22')]);}return _0x41a9a5[_0x428f('0x56')](_0x5ae472);}})[_0x428f('0x29')](function(_0x4afefd){if(_0x4afefd){return _0x4afefd?{'count':_0x175549,'rows':_0x4afefd}:null;}})[_0x428f('0x29')](respondWithResult(_0x3db91f,null))[_0x428f('0x49')](handleError(_0x3db91f,null));};exports[_0x428f('0x58')]=function(_0x292455,_0x55cff1,_0x446877){return db[_0x428f('0x31')][_0x428f('0x4c')]({'where':{'id':_0x292455['params']['id']}})[_0x428f('0x29')](handleEntityNotFound(_0x55cff1,null))[_0x428f('0x29')](function(_0x4cb08c){if(_0x4cb08c){return _0x4cb08c['removeMembers'](_0x292455[_0x428f('0x37')][_0x428f('0x55')]);}})[_0x428f('0x29')](respondWithStatusCode(_0x55cff1,null))[_0x428f('0x49')](handleError(_0x55cff1,null));};exports[_0x428f('0x59')]=function(_0x3e8976,_0x3addd7,_0x12940b){if(_0x3e8976['body']['id']){delete _0x3e8976[_0x428f('0x4e')]['id'];}return db[_0x428f('0x31')][_0x428f('0x4c')]({'where':{'id':_0x3e8976[_0x428f('0x4b')]['id']}})[_0x428f('0x29')](handleEntityNotFound(_0x3addd7,null))[_0x428f('0x29')](function(_0x496266){if(_0x496266){_0x3e8976[_0x428f('0x4e')][_0x428f('0x5a')]=_0x496266['id'];return db[_0x428f('0x50')][_0x428f('0x4d')](_0x3e8976[_0x428f('0x4e')]);}})[_0x428f('0x29')](respondWithResult(_0x3addd7,null))[_0x428f('0x49')](handleError(_0x3addd7,null));};exports[_0x428f('0x5b')]=function(_0x43e313,_0x15bdfc,_0x50e522){var _0x27972e={};var _0x12630d={};var _0x4ce3ab;var _0x2b1f6d;return db[_0x428f('0x31')][_0x428f('0x5c')]({'where':{'id':_0x43e313[_0x428f('0x4b')]['id']}})[_0x428f('0x29')](handleEntityNotFound(_0x15bdfc,null))[_0x428f('0x29')](function(_0x5319bb){if(_0x5319bb){_0x4ce3ab=_0x5319bb;_0x12630d[_0x428f('0x36')]=_[_0x428f('0x38')](db[_0x428f('0x50')][_0x428f('0x32')]);_0x12630d[_0x428f('0x37')]=_[_0x428f('0x38')](_0x43e313[_0x428f('0x37')]);_0x12630d[_0x428f('0x42')]=_['intersection'](_0x12630d[_0x428f('0x36')],_0x12630d['query']);_0x27972e['attributes']=_[_0x428f('0x39')](_0x12630d[_0x428f('0x36')],qs[_0x428f('0x3b')](_0x43e313[_0x428f('0x37')]['fields']));_0x27972e['attributes']=_0x27972e[_0x428f('0x3a')][_0x428f('0x3c')]?_0x27972e[_0x428f('0x3a')]:_0x12630d[_0x428f('0x36')];_0x27972e[_0x428f('0x3f')]=qs[_0x428f('0x40')](_0x43e313[_0x428f('0x37')]['sort']);_0x27972e['where']=qs[_0x428f('0x42')](_[_0x428f('0x41')](_0x43e313[_0x428f('0x37')],_0x12630d[_0x428f('0x42')]));if(_0x43e313['query'][_0x428f('0x43')]){_0x27972e[_0x428f('0x45')]=_[_0x428f('0x44')](_0x27972e[_0x428f('0x45')],{'$or':_[_0x428f('0x30')](_0x27972e[_0x428f('0x3a')],function(_0x254eb9){var _0x540100={};_0x540100[_0x254eb9]={'$like':'%'+_0x43e313[_0x428f('0x37')]['filter']+'%'};return _0x540100;})});}if(_0x43e313['query'][_0x428f('0x5d')]){var _0x443e9c=_0x43e313[_0x428f('0x37')][_0x428f('0x5d')]['split'](',');var _0x218491={};_0x218491[_0x443e9c[0x0]]={'$gte':moment(_0x443e9c[0x1])[_0x428f('0x5e')](_0x428f('0x5f'))};_0x27972e['where']=_[_0x428f('0x44')](_0x27972e['where'],_0x218491);}_0x27972e=_[_0x428f('0x44')]({},_0x27972e,_0x43e313[_0x428f('0x57')]);return _0x4ce3ab[_0x428f('0x5b')](_0x27972e);}})[_0x428f('0x29')](function(_0x294444){if(_0x294444){_0x2b1f6d=_0x294444[_0x428f('0x3c')];if(!_0x43e313[_0x428f('0x37')][_0x428f('0x3d')](_0x428f('0x3e'))){_0x27972e['limit']=qs[_0x428f('0x23')](_0x43e313[_0x428f('0x37')][_0x428f('0x23')]);_0x27972e[_0x428f('0x22')]=qs[_0x428f('0x22')](_0x43e313[_0x428f('0x37')][_0x428f('0x22')]);}return _0x4ce3ab[_0x428f('0x5b')](_0x27972e);}})['then'](function(_0x2cd2be){if(_0x2cd2be){return _0x2cd2be?{'count':_0x2b1f6d,'rows':_0x2cd2be}:null;}})[_0x428f('0x29')](respondWithResult(_0x15bdfc,null))[_0x428f('0x49')](handleError(_0x15bdfc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c7a=['hook','exports','events','../../mysqldb','ChatGroup','setMaxListeners','save','emit','hasOwnProperty'];(function(_0x5db635,_0x361c01){var _0x5e5ddd=function(_0x242a61){while(--_0x242a61){_0x5db635['push'](_0x5db635['shift']());}};_0x5e5ddd(++_0x361c01);}(_0x8c7a,0x197));var _0xa8c7=function(_0x174443,_0x3cd1e4){_0x174443=_0x174443-0x0;var _0x4b16d8=_0x8c7a[_0x174443];return _0x4b16d8;};'use strict';var EventEmitter=require(_0xa8c7('0x0'));var ChatGroup=require(_0xa8c7('0x1'))['db'][_0xa8c7('0x2')];var ChatGroupEvents=new EventEmitter();ChatGroupEvents[_0xa8c7('0x3')](0x0);var events={'afterCreate':_0xa8c7('0x4'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x5b31d1){return function(_0x189754,_0x44d295,_0x40d483){ChatGroupEvents[_0xa8c7('0x5')](_0x5b31d1+':'+_0x189754['id'],_0x189754);ChatGroupEvents['emit'](_0x5b31d1,_0x189754);_0x40d483(null);};}for(var e in events){if(events[_0xa8c7('0x6')](e)){var event=events[e];ChatGroup[_0xa8c7('0x7')](e,emitEvent(event));}}module[_0xa8c7('0x8')]=ChatGroupEvents;
\ No newline at end of file
+var _0x020a=['emit','hasOwnProperty','exports','events','../../mysqldb','ChatGroup','save','update','remove'];(function(_0xd3541e,_0x2889a9){var _0x1f8419=function(_0x5b7065){while(--_0x5b7065){_0xd3541e['push'](_0xd3541e['shift']());}};_0x1f8419(++_0x2889a9);}(_0x020a,0xc9));var _0xa020=function(_0x1d2bbb,_0x202267){_0x1d2bbb=_0x1d2bbb-0x0;var _0x38082b=_0x020a[_0x1d2bbb];return _0x38082b;};'use strict';var EventEmitter=require(_0xa020('0x0'));var ChatGroup=require(_0xa020('0x1'))['db'][_0xa020('0x2')];var ChatGroupEvents=new EventEmitter();ChatGroupEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xa020('0x3'),'afterUpdate':_0xa020('0x4'),'afterDestroy':_0xa020('0x5')};function emitEvent(_0xdb747f){return function(_0xa15fd7,_0x347152,_0x37acd6){ChatGroupEvents[_0xa020('0x6')](_0xdb747f+':'+_0xa15fd7['id'],_0xa15fd7);ChatGroupEvents[_0xa020('0x6')](_0xdb747f,_0xa15fd7);_0x37acd6(null);};}for(var e in events){if(events[_0xa020('0x7')](e)){var event=events[e];ChatGroup['hook'](e,emitEvent(event));}}module[_0xa020('0x8')]=ChatGroupEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x20f6=['bluebird','request-promise','path','rimraf','../../config/environment','exports','define','ChatGroup','chat_groups','lodash','../../config/logger','moment'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x20f6,0x1b9));var _0x620f=function(_0x1d057f,_0x3f5184){_0x1d057f=_0x1d057f-0x0;var _0x1508e4=_0x20f6[_0x1d057f];return _0x1508e4;};'use strict';var _=require(_0x620f('0x0'));var util=require('util');var logger=require(_0x620f('0x1'))('api');var moment=require(_0x620f('0x2'));var BPromise=require(_0x620f('0x3'));var rp=require(_0x620f('0x4'));var fs=require('fs');var path=require(_0x620f('0x5'));var rimraf=require(_0x620f('0x6'));var config=require(_0x620f('0x7'));var attributes=require('./chatGroup.attributes');module[_0x620f('0x8')]=function(_0x2d4659,_0x5c9ddc){return _0x2d4659[_0x620f('0x9')](_0x620f('0xa'),attributes,{'tableName':_0x620f('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4fba=['./chatGroup.attributes','exports','define','ChatGroup','util','../../config/logger','api','path','rimraf','../../config/environment'];(function(_0x4243a3,_0x447337){var _0x1b2a33=function(_0x6a8200){while(--_0x6a8200){_0x4243a3['push'](_0x4243a3['shift']());}};_0x1b2a33(++_0x447337);}(_0x4fba,0x86));var _0xa4fb=function(_0x5a15ff,_0x5a3630){_0x5a15ff=_0x5a15ff-0x0;var _0x32cdf8=_0x4fba[_0x5a15ff];return _0x32cdf8;};'use strict';var _=require('lodash');var util=require(_0xa4fb('0x0'));var logger=require(_0xa4fb('0x1'))(_0xa4fb('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xa4fb('0x3'));var rimraf=require(_0xa4fb('0x4'));var config=require(_0xa4fb('0x5'));var attributes=require(_0xa4fb('0x6'));module[_0xa4fb('0x7')]=function(_0x5df38b,_0x2883a6){return _0x5df38b[_0xa4fb('0x8')](_0xa4fb('0x9'),attributes,{'tableName':'chat_groups','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe437=['catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','socket.io-emitter','./chatGroup.socket','register','request','then','info','ChatGroup,\x20%s,\x20%s','request\x20sent','debug','error','message'];(function(_0x190417,_0x54dc0d){var _0x110e9c=function(_0x517b86){while(--_0x517b86){_0x190417['push'](_0x190417['shift']());}};_0x110e9c(++_0x54dc0d);}(_0xe437,0x69));var _0x7e43=function(_0x65efc5,_0x5d978c){_0x65efc5=_0x65efc5-0x0;var _0x4c387a=_0xe437[_0x65efc5];return _0x4c387a;};'use strict';var _=require(_0x7e43('0x0'));var util=require(_0x7e43('0x1'));var moment=require(_0x7e43('0x2'));var BPromise=require('bluebird');var rs=require(_0x7e43('0x3'));var fs=require('fs');var Redis=require(_0x7e43('0x4'));var db=require(_0x7e43('0x5'))['db'];var utils=require(_0x7e43('0x6'));var logger=require(_0x7e43('0x7'))(_0x7e43('0x8'));var config=require(_0x7e43('0x9'));var jayson=require(_0x7e43('0xa'));var client=jayson['client'][_0x7e43('0xb')]({'port':0x232a});config[_0x7e43('0xc')]=_[_0x7e43('0xd')](config[_0x7e43('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0x7e43('0xe'))(new Redis(config[_0x7e43('0xc')]));require(_0x7e43('0xf'))[_0x7e43('0x10')](socket);function respondWithRpcPromise(_0x16e369,_0x289484,_0x1bf5a8){return new BPromise(function(_0x49e6e2,_0x46febb){return client[_0x7e43('0x11')](_0x16e369,_0x1bf5a8)[_0x7e43('0x12')](function(_0xad7391){logger[_0x7e43('0x13')](_0x7e43('0x14'),_0x289484,_0x7e43('0x15'));logger[_0x7e43('0x16')]('ChatGroup,\x20%s,\x20%s,\x20%s',_0x289484,_0x7e43('0x15'),JSON['stringify'](_0xad7391));if(_0xad7391['error']){if(_0xad7391['error']['code']===0x1f4){logger[_0x7e43('0x17')]('ChatGroup,\x20%s,\x20%s',_0x289484,_0xad7391['error'][_0x7e43('0x18')]);return _0x46febb(_0xad7391[_0x7e43('0x17')][_0x7e43('0x18')]);}logger[_0x7e43('0x17')]('ChatGroup,\x20%s,\x20%s',_0x289484,_0xad7391[_0x7e43('0x17')][_0x7e43('0x18')]);return _0x49e6e2(_0xad7391[_0x7e43('0x17')][_0x7e43('0x18')]);}else{logger[_0x7e43('0x13')](_0x7e43('0x14'),_0x289484,_0x7e43('0x15'));_0x49e6e2(_0xad7391['result'][_0x7e43('0x18')]);}})[_0x7e43('0x19')](function(_0x1369dd){logger[_0x7e43('0x17')](_0x7e43('0x14'),_0x289484,_0x1369dd);_0x46febb(_0x1369dd);});});}
\ No newline at end of file
+var _0x8910=['./chatGroup.socket','register','request','then','info','request\x20sent','debug','ChatGroup,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatGroup,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','defaults','localhost','socket.io-emitter','redis'];(function(_0x180890,_0x4bc2cd){var _0x4f4d0f=function(_0xc64239){while(--_0xc64239){_0x180890['push'](_0x180890['shift']());}};_0x4f4d0f(++_0x4bc2cd);}(_0x8910,0x1ef));var _0x0891=function(_0x5c9865,_0x1a299a){_0x5c9865=_0x5c9865-0x0;var _0x54c22b=_0x8910[_0x5c9865];return _0x54c22b;};'use strict';var _=require(_0x0891('0x0'));var util=require(_0x0891('0x1'));var moment=require(_0x0891('0x2'));var BPromise=require(_0x0891('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0891('0x4'));var db=require(_0x0891('0x5'))['db'];var utils=require(_0x0891('0x6'));var logger=require(_0x0891('0x7'))(_0x0891('0x8'));var config=require(_0x0891('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x0891('0xa')]['http']({'port':0x232a});config['redis']=_[_0x0891('0xb')](config['redis'],{'host':_0x0891('0xc'),'port':0x18eb});var socket=require(_0x0891('0xd'))(new Redis(config[_0x0891('0xe')]));require(_0x0891('0xf'))[_0x0891('0x10')](socket);function respondWithRpcPromise(_0x14535b,_0x1f1f9d,_0x442477){return new BPromise(function(_0xea4569,_0x436c2e){return client[_0x0891('0x11')](_0x14535b,_0x442477)[_0x0891('0x12')](function(_0x3f6906){logger[_0x0891('0x13')]('ChatGroup,\x20%s,\x20%s',_0x1f1f9d,_0x0891('0x14'));logger[_0x0891('0x15')](_0x0891('0x16'),_0x1f1f9d,_0x0891('0x14'),JSON[_0x0891('0x17')](_0x3f6906));if(_0x3f6906[_0x0891('0x18')]){if(_0x3f6906[_0x0891('0x18')][_0x0891('0x19')]===0x1f4){logger[_0x0891('0x18')](_0x0891('0x1a'),_0x1f1f9d,_0x3f6906[_0x0891('0x18')][_0x0891('0x1b')]);return _0x436c2e(_0x3f6906[_0x0891('0x18')][_0x0891('0x1b')]);}logger[_0x0891('0x18')](_0x0891('0x1a'),_0x1f1f9d,_0x3f6906[_0x0891('0x18')][_0x0891('0x1b')]);return _0xea4569(_0x3f6906[_0x0891('0x18')][_0x0891('0x1b')]);}else{logger[_0x0891('0x13')](_0x0891('0x1a'),_0x1f1f9d,_0x0891('0x14'));_0xea4569(_0x3f6906[_0x0891('0x1c')][_0x0891('0x1b')]);}})[_0x0891('0x1d')](function(_0x18d5d8){logger[_0x0891('0x18')]('ChatGroup,\x20%s,\x20%s',_0x1f1f9d,_0x18d5d8);_0x436c2e(_0x18d5d8);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90a7=['./chatGroup.events','save','remove','update','emit','length','chatGroup:'];(function(_0x3d0d71,_0x3c4811){var _0xc3c53f=function(_0x5c08ab){while(--_0x5c08ab){_0x3d0d71['push'](_0x3d0d71['shift']());}};_0xc3c53f(++_0x3c4811);}(_0x90a7,0x1d5));var _0x790a=function(_0x2f3077,_0x34ec73){_0x2f3077=_0x2f3077-0x0;var _0x132704=_0x90a7[_0x2f3077];return _0x132704;};'use strict';var ChatGroupEvents=require(_0x790a('0x0'));var events=[_0x790a('0x1'),_0x790a('0x2'),_0x790a('0x3')];function createListener(_0x1f479f,_0x3d1a56){return function(_0x4f3efc){_0x3d1a56[_0x790a('0x4')](_0x1f479f,_0x4f3efc);};}function removeListener(_0x42b87c,_0x26185a){return function(){ChatGroupEvents['removeListener'](_0x42b87c,_0x26185a);};}exports['register']=function(_0x1f0def){for(var _0x11c61c=0x0,_0x1628a9=events[_0x790a('0x5')];_0x11c61c<_0x1628a9;_0x11c61c++){var _0x516d9a=events[_0x11c61c];var _0x1973a5=createListener(_0x790a('0x6')+_0x516d9a,_0x1f0def);ChatGroupEvents['on'](_0x516d9a,_0x1973a5);}};
\ No newline at end of file
+var _0x097a=['register','./chatGroup.events','save','update','emit','removeListener'];(function(_0x49d1df,_0x5b1388){var _0x354ee5=function(_0x24fde6){while(--_0x24fde6){_0x49d1df['push'](_0x49d1df['shift']());}};_0x354ee5(++_0x5b1388);}(_0x097a,0x1c3));var _0xa097=function(_0x27f2c6,_0x4421d4){_0x27f2c6=_0x27f2c6-0x0;var _0x20cf63=_0x097a[_0x27f2c6];return _0x20cf63;};'use strict';var ChatGroupEvents=require(_0xa097('0x0'));var events=[_0xa097('0x1'),'remove',_0xa097('0x2')];function createListener(_0xe25f20,_0x1e5d8e){return function(_0x16413b){_0x1e5d8e[_0xa097('0x3')](_0xe25f20,_0x16413b);};}function removeListener(_0xfdf35a,_0x146399){return function(){ChatGroupEvents[_0xa097('0x4')](_0xfdf35a,_0x146399);};}exports[_0xa097('0x5')]=function(_0x3a4f90){for(var _0xd091d1=0x0,_0x1e090f=events['length'];_0xd091d1<_0x1e090f;_0xd091d1++){var _0xee46fe=events[_0xd091d1];var _0xda0fe5=createListener('chatGroup:'+_0xee46fe,_0x3a4f90);ChatGroupEvents['on'](_0xee46fe,_0xda0fe5);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d6d=['put','delete','destroy','/:id/members','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./chatGroup.controller','get','isAuthenticated','index','describe','/:id','show','/:id/unread','getMembers','/:id/messages','getMessages','create','post','addMembers'];(function(_0x492294,_0x3f063b){var _0x128d30=function(_0xda4df2){while(--_0xda4df2){_0x492294['push'](_0x492294['shift']());}};_0x128d30(++_0x3f063b);}(_0x4d6d,0x1a5));var _0xd4d6=function(_0x5b6a50,_0x54faa4){_0x5b6a50=_0x5b6a50-0x0;var _0x20a3b5=_0x4d6d[_0x5b6a50];return _0x20a3b5;};'use strict';var multer=require(_0xd4d6('0x0'));var util=require(_0xd4d6('0x1'));var path=require('path');var timeout=require(_0xd4d6('0x2'));var express=require(_0xd4d6('0x3'));var router=express[_0xd4d6('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xd4d6('0x5'));var interaction=require(_0xd4d6('0x6'));var config=require('../../config/environment');var controller=require(_0xd4d6('0x7'));router[_0xd4d6('0x8')]('/',auth[_0xd4d6('0x9')](),controller[_0xd4d6('0xa')]);router[_0xd4d6('0x8')]('/describe',auth[_0xd4d6('0x9')](),controller[_0xd4d6('0xb')]);router['get'](_0xd4d6('0xc'),auth['isAuthenticated'](),controller[_0xd4d6('0xd')]);router[_0xd4d6('0x8')](_0xd4d6('0xe'),auth['isAuthenticated'](),controller['getUnread']);router['get']('/:id/members',auth['isAuthenticated'](),controller[_0xd4d6('0xf')]);router[_0xd4d6('0x8')](_0xd4d6('0x10'),auth[_0xd4d6('0x9')](),controller[_0xd4d6('0x11')]);router['post']('/',auth[_0xd4d6('0x9')](),controller[_0xd4d6('0x12')]);router[_0xd4d6('0x13')]('/:id/members',auth[_0xd4d6('0x9')](),controller[_0xd4d6('0x14')]);router[_0xd4d6('0x13')]('/:id/messages',auth[_0xd4d6('0x9')](),controller['addMessage']);router[_0xd4d6('0x15')]('/:id',auth[_0xd4d6('0x9')](),controller['update']);router[_0xd4d6('0x16')]('/:id',auth['isAuthenticated'](),controller[_0xd4d6('0x17')]);router[_0xd4d6('0x16')](_0xd4d6('0x18'),auth[_0xd4d6('0x9')](),controller['removeMembers']);module[_0xd4d6('0x19')]=router;
\ No newline at end of file
+var _0x9f11=['destroy','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./chatGroup.controller','get','isAuthenticated','index','/describe','describe','show','/:id/unread','getUnread','/:id/members','/:id/messages','getMessages','post','create','addMembers','put','/:id'];(function(_0x1d3ba5,_0x7febb1){var _0x3ffeaa=function(_0x4f8b5e){while(--_0x4f8b5e){_0x1d3ba5['push'](_0x1d3ba5['shift']());}};_0x3ffeaa(++_0x7febb1);}(_0x9f11,0x199));var _0x19f1=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x9f11[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x19f1('0x0'));var util=require(_0x19f1('0x1'));var path=require(_0x19f1('0x2'));var timeout=require(_0x19f1('0x3'));var express=require(_0x19f1('0x4'));var router=express[_0x19f1('0x5')]();var fs_extra=require(_0x19f1('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x19f1('0x7'));var config=require(_0x19f1('0x8'));var controller=require(_0x19f1('0x9'));router[_0x19f1('0xa')]('/',auth[_0x19f1('0xb')](),controller[_0x19f1('0xc')]);router[_0x19f1('0xa')](_0x19f1('0xd'),auth[_0x19f1('0xb')](),controller[_0x19f1('0xe')]);router['get']('/:id',auth['isAuthenticated'](),controller[_0x19f1('0xf')]);router[_0x19f1('0xa')](_0x19f1('0x10'),auth[_0x19f1('0xb')](),controller[_0x19f1('0x11')]);router['get'](_0x19f1('0x12'),auth[_0x19f1('0xb')](),controller['getMembers']);router[_0x19f1('0xa')](_0x19f1('0x13'),auth[_0x19f1('0xb')](),controller[_0x19f1('0x14')]);router[_0x19f1('0x15')]('/',auth[_0x19f1('0xb')](),controller[_0x19f1('0x16')]);router[_0x19f1('0x15')]('/:id/members',auth['isAuthenticated'](),controller[_0x19f1('0x17')]);router['post'](_0x19f1('0x13'),auth[_0x19f1('0xb')](),controller['addMessage']);router[_0x19f1('0x18')](_0x19f1('0x19'),auth[_0x19f1('0xb')](),controller['update']);router['delete']('/:id',auth[_0x19f1('0xb')](),controller[_0x19f1('0x1a')]);router[_0x19f1('0x1b')](_0x19f1('0x12'),auth[_0x19f1('0xb')](),controller['removeMembers']);module[_0x19f1('0x1c')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1219=['thumb','TEXT','STRING','DATE','long','out','sequelize','exports','BOOLEAN','INTEGER','ENUM'];(function(_0x55c3dd,_0x1ec958){var _0x1b58d2=function(_0x24521a){while(--_0x24521a){_0x55c3dd['push'](_0x55c3dd['shift']());}};_0x1b58d2(++_0x1ec958);}(_0x1219,0x17c));var _0x9121=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x1219[_0x14add3];return _0x4a174f;};'use strict';var Sequelize=require(_0x9121('0x0'));module[_0x9121('0x1')]={'closed':{'type':Sequelize[_0x9121('0x2')],'defaultValue':![]},'ratingValue':{'type':Sequelize[_0x9121('0x3')]},'ratingType':{'type':Sequelize[_0x9121('0x4')]('star',_0x9121('0x5')),'defaultValue':'star'},'ratingMessage':{'type':Sequelize[_0x9121('0x6')]},'pathTranscript':{'type':Sequelize[_0x9121('0x6')]},'mailTranscript':{'type':Sequelize[_0x9121('0x7')],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x9121('0x8')]},'disposition':{'type':Sequelize[_0x9121('0x7')]},'secondDisposition':{'type':Sequelize[_0x9121('0x7')]},'thirdDisposition':{'type':Sequelize[_0x9121('0x7')]},'note':{'type':Sequelize[_0x9121('0x7')]},'browserName':{'type':Sequelize[_0x9121('0x7')]},'browserVersion':{'type':Sequelize[_0x9121('0x7')]},'osName':{'type':Sequelize[_0x9121('0x7')]},'osVersion':{'type':Sequelize['STRING']},'deviceModel':{'type':Sequelize[_0x9121('0x7')]},'deviceVendor':{'type':Sequelize[_0x9121('0x7')]},'deviceType':{'type':Sequelize[_0x9121('0x7')]},'referer':{'type':Sequelize[_0x9121('0x6')]},'customerIp':{'type':Sequelize['STRING']},'formData':{'type':Sequelize[_0x9121('0x6')](_0x9121('0x9'))},'read1stAt':{'type':Sequelize[_0x9121('0x8')]},'lastMsgAt':{'type':Sequelize[_0x9121('0x8')]},'lastMsgDirection':{'type':Sequelize[_0x9121('0x4')]('in',_0x9121('0xa')),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize[_0x9121('0x7')]},'customerPort':{'type':Sequelize[_0x9121('0x7')]},'vidaooSessionId':{'type':Sequelize[_0x9121('0x6')]},'autoreplyExecuted':{'type':Sequelize[_0x9121('0x2')],'defaultValue':![]}};
\ No newline at end of file
+var _0x1219=['thumb','TEXT','STRING','DATE','long','out','sequelize','exports','BOOLEAN','INTEGER','ENUM'];(function(_0x11d27e,_0x229b36){var _0x6fa82b=function(_0x952539){while(--_0x952539){_0x11d27e['push'](_0x11d27e['shift']());}};_0x6fa82b(++_0x229b36);}(_0x1219,0x17c));var _0x9121=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1219[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x9121('0x0'));module[_0x9121('0x1')]={'closed':{'type':Sequelize[_0x9121('0x2')],'defaultValue':![]},'ratingValue':{'type':Sequelize[_0x9121('0x3')]},'ratingType':{'type':Sequelize[_0x9121('0x4')]('star',_0x9121('0x5')),'defaultValue':'star'},'ratingMessage':{'type':Sequelize[_0x9121('0x6')]},'pathTranscript':{'type':Sequelize[_0x9121('0x6')]},'mailTranscript':{'type':Sequelize[_0x9121('0x7')],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x9121('0x8')]},'disposition':{'type':Sequelize[_0x9121('0x7')]},'secondDisposition':{'type':Sequelize[_0x9121('0x7')]},'thirdDisposition':{'type':Sequelize[_0x9121('0x7')]},'note':{'type':Sequelize[_0x9121('0x7')]},'browserName':{'type':Sequelize[_0x9121('0x7')]},'browserVersion':{'type':Sequelize[_0x9121('0x7')]},'osName':{'type':Sequelize[_0x9121('0x7')]},'osVersion':{'type':Sequelize['STRING']},'deviceModel':{'type':Sequelize[_0x9121('0x7')]},'deviceVendor':{'type':Sequelize[_0x9121('0x7')]},'deviceType':{'type':Sequelize[_0x9121('0x7')]},'referer':{'type':Sequelize[_0x9121('0x6')]},'customerIp':{'type':Sequelize['STRING']},'formData':{'type':Sequelize[_0x9121('0x6')](_0x9121('0x9'))},'read1stAt':{'type':Sequelize[_0x9121('0x8')]},'lastMsgAt':{'type':Sequelize[_0x9121('0x8')]},'lastMsgDirection':{'type':Sequelize[_0x9121('0x4')]('in',_0x9121('0xa')),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize[_0x9121('0x7')]},'customerPort':{'type':Sequelize[_0x9121('0x7')]},'vidaooSessionId':{'type':Sequelize[_0x9121('0x6')]},'autoreplyExecuted':{'type':Sequelize[_0x9121('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef0f=['alias','fullname','agent_fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','secret','appendFileSync','MailAccount','MailServerOut','Smtp','service','host','port','secure','auth','pass','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','mailTranscript','addMessage','ids','getMessages','YYYY-MM-DD\x20HH:mm:ss','findAll','hasOwnProperty','includeAgent','addTags','setTags','omit','emit','removeTags','download','unix','server','files','tmp','attachments','transcript-%d-%s.zip','firstName','lastName','direction','Account','mkdirSync','Chat','Owner','N.A.','browserName','osName','existsSync','pipe','createWriteStream','renderFile','views','downloadInteraction.ejs','transcript-','createPdfFromHTML','err','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../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','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','jayson/promise','http','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','sendStatus','status','json','offset','undefined','limit','set','Content-Range','save','update','destroy','end','stack','name','send','render','body','contact','interaction','account','Users','TagIds','Tags','split','forEach','push','index','ChatInteraction','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','nolimit','sort','where','pick','select','field','u.id','u.fullname','ui.ChatInteractionId','from','user_has_chat_interactions','left_join','users','chat_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','a.id\x20=\x20i.ChatWebsiteId','chat_messages','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','length','find','unreadMessages','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)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','type','text','start','Tag','map','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','some','compact','isEmpty','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','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','Sequelize','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','DESC','t.id\x20IN\x20?','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','role','agent','getChatWebsites','ChatWebsiteId','sequelize','toString','count','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','contactName','Contact.firstName','Contact.lastName','c.phone','Contact.phone','Contact.mobile','c.fax','Contact.fax','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','all','rows','params','keys','includeAll','include','options','create','describe','createVidaooSession','ChatWebsite','findOne','vidaooEscalation','vidaooTopic','vidaooMetadata','vidaooApiKey','email','isNull','vidaooNote','follow','metadata','ValidationError','join_url','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','CmContact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','Interaction\x20already\x20assigned','closed','disposition','attachmentUpload','originalname','basename','file','filename','mimetype','Unauthorized','Attachment','attachId','join','root','server/files/attachments/','offline-chat/','server/files/chat/upload/','format','now','Messages','%s%d','agentAlias','System','customer','Visitor','agentIdentifier','website_alias'];(function(_0x346f10,_0x58d117){var _0x5ddd19=function(_0x352c83){while(--_0x352c83){_0x346f10['push'](_0x346f10['shift']());}};_0x5ddd19(++_0x58d117);}(_0xef0f,0x168));var _0xfef0=function(_0x1bcf9c,_0x3ac0ee){_0x1bcf9c=_0x1bcf9c-0x0;var _0x3bc9cb=_0xef0f[_0x1bcf9c];return _0x3bc9cb;};'use strict';var emlformat=require(_0xfef0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xfef0('0x1'));var jsonpatch=require(_0xfef0('0x2'));var rp=require(_0xfef0('0x3'));var moment=require('moment');var BPromise=require(_0xfef0('0x4'));var Mustache=require(_0xfef0('0x5'));var util=require(_0xfef0('0x6'));var path=require('path');var sox=require(_0xfef0('0x7'));var csv=require(_0xfef0('0x8'));var ejs=require(_0xfef0('0x9'));var fs=require('fs');var fs_extra=require(_0xfef0('0xa'));var _=require(_0xfef0('0xb'));var squel=require(_0xfef0('0xc'));var crypto=require('crypto');var jsforce=require(_0xfef0('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xfef0('0x8'));var querystring=require(_0xfef0('0xe'));var Papa=require(_0xfef0('0xf'));var Redis=require(_0xfef0('0x10'));var authService=require(_0xfef0('0x11'));var qs=require(_0xfef0('0x12'));var as=require(_0xfef0('0x13'));var pdf=require(_0xfef0('0x14'));var hardwareService=require(_0xfef0('0x15'));var logger=require(_0xfef0('0x16'))(_0xfef0('0x17'));var utils=require(_0xfef0('0x18'));var config=require(_0xfef0('0x19'));var licenseUtil=require(_0xfef0('0x1a'));var db=require('../../mysqldb')['db'];config[_0xfef0('0x1b')]=_[_0xfef0('0x1c')](config[_0xfef0('0x1b')],{'host':_0xfef0('0x1d'),'port':0x18eb});var socket=require(_0xfef0('0x1e'))(new Redis(config[_0xfef0('0x1b')]));require(_0xfef0('0x1f'))['register'](socket);var jayson=require(_0xfef0('0x20'));var client=jayson['client']['http']({'port':0x232b});var client9004=jayson['client'][_0xfef0('0x21')]({'port':0x232c});function respondWithRpcPromise(_0x284b6d,_0x3510a7,_0x1bce2f,_0x2a96d9){return new BPromise(function(_0x3f9a6c,_0x155833){var _0x2887e6=_0x2a96d9||client;return _0x2887e6['request'](_0x284b6d,_0x1bce2f)[_0xfef0('0x22')](function(_0x1642cd){logger[_0xfef0('0x23')](_0xfef0('0x24'),_0x3510a7,_0xfef0('0x25'));logger['debug'](_0xfef0('0x26'),_0x3510a7,'request\x20sent',JSON[_0xfef0('0x27')](_0x1642cd));if(_0x1642cd[_0xfef0('0x28')]){if(_0x1642cd[_0xfef0('0x28')]['code']===0x1f4){logger[_0xfef0('0x28')]('ChatInteraction,\x20%s,\x20%s',_0x3510a7,_0x1642cd[_0xfef0('0x28')][_0xfef0('0x29')]);return _0x155833(_0x1642cd['error']['message']);}logger['error'](_0xfef0('0x24'),_0x3510a7,_0x1642cd['error'][_0xfef0('0x29')]);return _0x3f9a6c(_0x1642cd[_0xfef0('0x28')][_0xfef0('0x29')]);}else{logger[_0xfef0('0x23')](_0xfef0('0x24'),_0x3510a7,_0xfef0('0x25'));_0x3f9a6c(_0x1642cd['result']['message']);}})[_0xfef0('0x2a')](function(_0x1ffaa4){logger[_0xfef0('0x28')](_0xfef0('0x24'),_0x3510a7,_0x1ffaa4);_0x155833(_0x1ffaa4);});});}function respondWithStatusCode(_0xab231c,_0xf60f2){_0xf60f2=_0xf60f2||0xcc;return function(_0x5df04f){if(_0x5df04f){return _0xab231c[_0xfef0('0x2b')](_0xf60f2);}return _0xab231c[_0xfef0('0x2c')](_0xf60f2)['end']();};}function respondWithResult(_0x1a6758,_0x394bad){_0x394bad=_0x394bad||0xc8;return function(_0xca0cce){if(_0xca0cce){return _0x1a6758[_0xfef0('0x2c')](_0x394bad)[_0xfef0('0x2d')](_0xca0cce);}};}function respondWithFilteredResult(_0x1ac4a3,_0x3e3c4c){return function(_0x3e026a){if(_0x3e026a){var _0x26cb9a=typeof _0x3e3c4c[_0xfef0('0x2e')]===_0xfef0('0x2f')&&typeof _0x3e3c4c[_0xfef0('0x30')]==='undefined';var _0x445625=_0x3e026a['count'];var _0x4eaf74=_0x26cb9a?0x0:_0x3e3c4c[_0xfef0('0x2e')];var _0x2ae54a=_0x26cb9a?_0x3e026a['count']:_0x3e3c4c['offset']+_0x3e3c4c['limit'];var _0x4f65cd;if(_0x2ae54a>=_0x445625){_0x2ae54a=_0x445625;_0x4f65cd=0xc8;}else{_0x4f65cd=0xce;}_0x1ac4a3['status'](_0x4f65cd);return _0x1ac4a3[_0xfef0('0x31')](_0xfef0('0x32'),_0x4eaf74+'-'+_0x2ae54a+'/'+_0x445625)[_0xfef0('0x2d')](_0x3e026a);}return null;};}function patchUpdates(_0x5cda6b){return function(_0x4d0778){try{jsonpatch['apply'](_0x4d0778,_0x5cda6b,!![]);}catch(_0x1f8110){return BPromise['reject'](_0x1f8110);}return _0x4d0778[_0xfef0('0x33')]();};}function saveUpdates(_0x3783f9,_0x1b9f39){return function(_0x4a2773){if(_0x4a2773){return _0x4a2773[_0xfef0('0x34')](_0x3783f9)['then'](function(_0x4234e4){return _0x4234e4;});}return null;};}function removeEntity(_0x1f21b7,_0x234d49){return function(_0xe5188e){if(_0xe5188e){return _0xe5188e[_0xfef0('0x35')]()[_0xfef0('0x22')](function(){_0x1f21b7[_0xfef0('0x2c')](0xcc)[_0xfef0('0x36')]();});}};}function handleEntityNotFound(_0x590e37,_0x24ea7c){return function(_0xea09ec){if(!_0xea09ec){_0x590e37[_0xfef0('0x2b')](0x194);}return _0xea09ec;};}function handleError(_0x36b2d1,_0xae697){_0xae697=_0xae697||0x1f4;return function(_0x262341){logger[_0xfef0('0x28')](_0x262341[_0xfef0('0x37')]);if(_0x262341[_0xfef0('0x38')]){delete _0x262341[_0xfef0('0x38')];}_0x36b2d1[_0xfef0('0x2c')](_0xae697)[_0xfef0('0x39')](_0x262341);};}function getMustacheRender(_0x366667,_0x4a8af4){return Mustache[_0xfef0('0x3a')](_0x366667,_['merge'](_0x4a8af4[_0xfef0('0x3b')],{'contact':_0x4a8af4[_0xfef0('0x3c')],'message':_0x4a8af4[_0xfef0('0x29')],'agent':_0x4a8af4['agent'],'interaction':_0x4a8af4[_0xfef0('0x3d')],'account':_0x4a8af4[_0xfef0('0x3e')]}))||'';}function getInteractionUsers(_0x3f2753,_0x5537c8){return new BPromise(function(_0x8613a0,_0x3abcc5){try{if(_0x5537c8[_0x3f2753['id']]){_0x3f2753[_0xfef0('0x3f')]=_['map'](_0x5537c8[_0x3f2753['id']],function(_0x3a6667){return{'id':_0x3a6667['id'],'fullname':_0x3a6667['fullname']};});}}catch(_0x49ed48){_0x3abcc5(_0x49ed48);}_0x8613a0(_0x3f2753);});}function getInteractionTags(_0xf30aff,_0x547a5d){return new BPromise(function(_0x5c3305,_0xbf6ddd){try{if(_0xf30aff[_0xfef0('0x40')]){_0xf30aff[_0xfef0('0x41')]=[];_0xf30aff[_0xfef0('0x40')][_0xfef0('0x42')](',')[_0xfef0('0x43')](function(_0x4dd8f8){_0xf30aff[_0xfef0('0x41')][_0xfef0('0x44')](_0x547a5d[_0x4dd8f8]);});}delete _0xf30aff['TagIds'];}catch(_0x54d5cb){_0xbf6ddd(_0x54d5cb);}_0x5c3305(_0xf30aff);});}function updateChatInteraction(_0x1d554e,_0x5dc824,_0x1fc518){return new BPromise(function(_0x22c940,_0x3c100c){return getInteractionUsers(_0x1d554e,_0x1fc518)[_0xfef0('0x22')](function(_0x199c57){return getInteractionTags(_0x199c57,_0x5dc824);})[_0xfef0('0x22')](function(_0x166a7b){_0x22c940(_0x166a7b);})[_0xfef0('0x2a')](function(_0x4e63f3){_0x3c100c(_0x4e63f3);});});}exports[_0xfef0('0x45')]=function(_0x50e372,_0x4b6da1){var _0x18c656={},_0x17d7f2={},_0x5bf416={'count':0x0,'rows':[]};var _0x2af79f=_['map'](db[_0xfef0('0x46')][_0xfef0('0x47')],function(_0x1f252e){return{'name':_0x1f252e[_0xfef0('0x48')],'type':_0x1f252e['type'][_0xfef0('0x49')]};});_0x17d7f2[_0xfef0('0x4a')]=_['map'](_0x2af79f,'name');_0x17d7f2[_0xfef0('0x4b')]=_['keys'](_0x50e372[_0xfef0('0x4b')]);_0x17d7f2[_0xfef0('0x4c')]=_[_0xfef0('0x4d')](_0x17d7f2[_0xfef0('0x4a')],_0x17d7f2[_0xfef0('0x4b')]);_0x18c656[_0xfef0('0x4e')]=_['intersection'](_0x17d7f2[_0xfef0('0x4a')],qs['fields'](_0x50e372['query'][_0xfef0('0x4f')]));_0x18c656[_0xfef0('0x4e')]=_0x18c656[_0xfef0('0x4e')]['length']?_0x18c656[_0xfef0('0x4e')]:_0x17d7f2['model'];if(!_0x50e372['query']['hasOwnProperty'](_0xfef0('0x50'))){_0x18c656[_0xfef0('0x30')]=qs[_0xfef0('0x30')](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x30')]);_0x18c656[_0xfef0('0x2e')]=qs[_0xfef0('0x2e')](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x2e')]);}_0x18c656['order']=qs['sort'](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x51')]);_0x18c656[_0xfef0('0x52')]=qs[_0xfef0('0x4c')](_[_0xfef0('0x53')](_0x50e372[_0xfef0('0x4b')],_0x17d7f2[_0xfef0('0x4c')]),_0x2af79f);var _0x20b647=[];var _0x5e989f=squel[_0xfef0('0x54')]()[_0xfef0('0x55')]('id')[_0xfef0('0x55')](_0xfef0('0x38'))[_0xfef0('0x55')]('color')['from']('tools_tags');var _0x445f3f=squel[_0xfef0('0x54')]()[_0xfef0('0x55')](_0xfef0('0x56'))['field'](_0xfef0('0x57'))[_0xfef0('0x55')](_0xfef0('0x58'))[_0xfef0('0x59')](_0xfef0('0x5a'),'ui')[_0xfef0('0x5b')](_0xfef0('0x5c'),'u','u.id\x20=\x20ui.UserId');var _0x3458b0=squel[_0xfef0('0x54')]()['from'](_0xfef0('0x5d'),'i')['left_join'](_0xfef0('0x5e'),'c',_0xfef0('0x5f'))['left_join'](_0xfef0('0x5c'),'o','o.id\x20=\x20i.UserId')['left_join']('chat_websites','a',_0xfef0('0x60'))[_0xfef0('0x5b')](_0xfef0('0x61'),'me',_0xfef0('0x62'))[_0xfef0('0x5b')](_0xfef0('0x63'),'it','it.ChatInteractionId\x20=\x20i.id')[_0xfef0('0x5b')](_0xfef0('0x64'),'t',_0xfef0('0x65'));var _0x45abb3=squel[_0xfef0('0x66')]();var _0x58d95e=[];var _0x59d1b6=squel['expr']();var _0x135653;if(_0x50e372['query'][_0xfef0('0x67')]){_0x135653=as[_0xfef0('0x68')](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x67')]);var _0xd0255c=_0x135653['sqlOperator'];for(var _0x2abdb7=0x0;_0x2abdb7<_0x135653['conditions'][_0xfef0('0x69')];_0x2abdb7++){var _0x4a1316=_0x135653['conditions'][_0x2abdb7];var _0x3a12c5='i';var _0x3c5640=_[_0xfef0('0x6a')](_0x2af79f,[_0xfef0('0x38'),_0x4a1316[_0xfef0('0x55')]]);if(!_0x3c5640){switch(_0x4a1316[_0xfef0('0x55')]){case _0xfef0('0x6b'):if(_0x4a1316[_0xfef0('0x6c')]==0x1){_0x3458b0[_0xfef0('0x6d')]('`'+_0x4a1316[_0xfef0('0x55')]+_0xfef0('0x6e'));}else{_0x3458b0[_0xfef0('0x6d')]('`'+_0x4a1316['field']+_0xfef0('0x6f'));}break;case _0xfef0('0x70'):if(_0x4a1316[_0xfef0('0x71')]===_0xfef0('0x72')){if(_0x4a1316[_0xfef0('0x6c')]['split']('\x20')[_0xfef0('0x69')]>0x1){_0x45abb3[_0xd0255c](_0xfef0('0x73'),qs[_0xfef0('0x74')](_0x4a1316[_0xfef0('0x6c')]),null);}else{var _0x176fc7='%'+_0x4a1316[_0xfef0('0x6c')]+'%';_0x45abb3[_0xd0255c](_0xfef0('0x75'),_0x176fc7,_0x176fc7,_0x176fc7);}}else{_0x3c5640=_[_0xfef0('0x6a')](_0x2af79f,[_0xfef0('0x38'),_0xfef0('0x76')]);_0x4a1316['field']=_0xfef0('0x76');_0x1d7caf=as['buildExpression'](_0x3a12c5,_0x3c5640[_0xfef0('0x77')],_0x4a1316);_0x45abb3[_0xd0255c](_0x1d7caf[_0xfef0('0x78')],_0x1d7caf['value'][_0xfef0('0x79')],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x36')]);}break;case _0xfef0('0x7a'):var _0x1e0ad5=_0x4a1316['value'][_0xfef0('0x42')](',')[_0xfef0('0x7b')](function(_0x2ccb33){return Number(_0x2ccb33);});_0x1e0ad5['forEach'](function(_0x117b74){_0x59d1b6['or'](_0xfef0('0x7c'),'%,'+_0x117b74+',%');});_0x58d95e=_[_0xfef0('0x7d')](_0x58d95e,_0x1e0ad5);break;case _0xfef0('0x7e'):if(_0x4a1316[_0xfef0('0x71')]===_0xfef0('0x72')){_0x45abb3[_0xd0255c](_0xfef0('0x7f'),'%'+_0x4a1316['value']+'%',null);}else{_0x3c5640=_[_0xfef0('0x6a')](_0x2af79f,[_0xfef0('0x38'),_0xfef0('0x80')]);_0x4a1316[_0xfef0('0x55')]=_0xfef0('0x80');_0x1d7caf=as[_0xfef0('0x81')](_0x3a12c5,_0x3c5640['type'],_0x4a1316);_0x45abb3[_0xd0255c](_0x1d7caf[_0xfef0('0x78')],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x79')],_0x1d7caf[_0xfef0('0x6c')]['end']);}break;case _0xfef0('0x3b'):_0x1d7caf=as[_0xfef0('0x81')]('me',null,_0x4a1316);_0x45abb3[_0xd0255c](_0x1d7caf['text'],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x79')],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x36')]);break;}}else{var _0x1d7caf=as['buildExpression'](_0x3a12c5,_0x3c5640['type'],_0x4a1316);_0x45abb3[_0xd0255c](_0x1d7caf['text'],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x79')],_0x1d7caf[_0xfef0('0x6c')]['end']);}}}else{var _0x24229e=_(_0x50e372['query'])['keys']()['map'](function(_0x2a92de){return _[_0xfef0('0x82')](_0x2af79f,['name',_0x2a92de])?_0x2a92de:undefined;})[_0xfef0('0x83')]()[_0xfef0('0x6c')]();if(!_[_0xfef0('0x84')](_0x24229e)){_0x24229e['forEach'](function(_0x3f2b55){if(_0x3f2b55==='ChatWebsiteId'){_0x3458b0['where'](_0xfef0('0x85'),[][_0xfef0('0x86')](_0x50e372[_0xfef0('0x4b')][_0x3f2b55]));}else if(_0x3f2b55===_0xfef0('0x87')){var _0x4df63b=JSON['parse'](_0x50e372['query'][_0x3f2b55])[_0xfef0('0x88')];var _0x546455=JSON[_0xfef0('0x89')](_0x50e372[_0xfef0('0x4b')][_0x3f2b55])[_0xfef0('0x8a')];_0x3458b0[_0xfef0('0x52')](_0xfef0('0x8b'),_0x4df63b,_0x546455);}else{if(_0x50e372['query'][_0x3f2b55]===_0xfef0('0x8c')){_0x3458b0['where']('i.'+_0x3f2b55+'\x20IS\x20NULL');}else{_0x3458b0[_0xfef0('0x52')]('i.'+_0x3f2b55+_0xfef0('0x8d'),_0x50e372[_0xfef0('0x4b')][_0x3f2b55]);}}});}if(_0x50e372[_0xfef0('0x4b')]['read']){if(_0x50e372['query'][_0xfef0('0x8e')]==0x1){_0x3458b0[_0xfef0('0x6d')]('`unreadMessages`\x20=\x200');}else{_0x3458b0[_0xfef0('0x6d')](_0xfef0('0x8f'));}}if(_0x50e372[_0xfef0('0x4b')][_0xfef0('0x90')]){_0x58d95e=_[_0xfef0('0x91')](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x90')])?_0x50e372[_0xfef0('0x4b')][_0xfef0('0x90')]:new Array(_0x50e372[_0xfef0('0x4b')][_0xfef0('0x90')]);_0x58d95e[_0xfef0('0x43')](function(_0x3c1136){_0x59d1b6['or'](_0xfef0('0x7c'),'%,'+_0x3c1136+',%');});}if(_0x50e372[_0xfef0('0x4b')][_0xfef0('0x92')]){var _0x1a61e4=_0x50e372['query'][_0xfef0('0x92')][_0xfef0('0x93')]('\x5c','\x5c\x5c')[_0xfef0('0x93')](/'/g,'\x27\x27');if(qs[_0xfef0('0x94')](_0x1a61e4)){_0x45abb3['or'](_0xfef0('0x95'),_0x1a61e4+'%');}else{_0x45abb3['or'](_0xfef0('0x96'),qs[_0xfef0('0x74')](_0x1a61e4))['or'](_0xfef0('0x97'),_0x1a61e4+'%');}}}_0x3458b0[_0xfef0('0x52')](_0x45abb3);_0x3458b0[_0xfef0('0x98')](_0xfef0('0x99'));var _0x17c350={'type':db[_0xfef0('0x9a')]['QueryTypes'][_0xfef0('0x9b')],'raw':!![]};var _0x56af65=_0x3458b0['clone']();_0x56af65[_0xfef0('0x55')](_0xfef0('0x99'));_0x56af65['field'](_0xfef0('0x9c'),'unreadMessages');if(_0x18c656['order']){_0x18c656[_0xfef0('0x9d')][_0xfef0('0x43')](function(_0x4ebcf){var _0x437cb2=_0x4ebcf[0x0]==='contactName'?_0x4ebcf[0x0]:'i.'+_0x4ebcf[0x0];_0x3458b0[_0xfef0('0x9d')](_0x437cb2,_0x4ebcf[0x1]===_0xfef0('0x9e')?![]:!![]);});}if(!_['isEmpty'](_0x58d95e)){_0x3458b0[_0xfef0('0x6d')](_0x59d1b6);_0x56af65[_0xfef0('0x52')](_0xfef0('0x9f'),_0x58d95e);}BPromise['resolve']()['then'](function(){if(!_0x135653){if(_0x50e372[_0xfef0('0x4b')]['ChatWebsiteId'])return;_0x56af65['where'](_0xfef0('0xa0'));_0x3458b0['where'](_0xfef0('0xa0'));return;}if(_0x50e372[_0xfef0('0xa1')][_0xfef0('0xa2')]!==_0xfef0('0xa3'))return;return _0x50e372[_0xfef0('0xa1')][_0xfef0('0xa4')]({'attributes':['id'],'raw':!![]})[_0xfef0('0x22')](function(_0x28cc77){if(_[_0xfef0('0x84')](_0x28cc77)){_0x56af65[_0xfef0('0x52')]('i.ChatWebsiteId\x20IS\x20NULL');_0x3458b0[_0xfef0('0x52')]('i.ChatWebsiteId\x20IS\x20NULL');}else{_0x56af65['where'](_0xfef0('0x85'),_['map'](_0x28cc77,'id'));_0x3458b0[_0xfef0('0x52')](_0xfef0('0x85'),_[_0xfef0('0x7b')](_0x28cc77,'id'));}});})[_0xfef0('0x22')](function(){if(_0x50e372[_0xfef0('0xa1')][_0xfef0('0xa2')]==='agent'&&!_0x135653&&!_0x50e372[_0xfef0('0x4b')][_0xfef0('0xa5')])return[];return db[_0xfef0('0xa6')][_0xfef0('0x4b')](_0x56af65[_0xfef0('0xa7')](),_0x17c350);})[_0xfef0('0x22')](function(_0x3cc27e){_0x5bf416[_0xfef0('0xa8')]=_0x3cc27e['length'];if(_0x5bf416[_0xfef0('0xa8')]===0x0)return[];return db[_0xfef0('0xa6')]['query'](_0x5e989f[_0xfef0('0xa7')](),_0x17c350)[_0xfef0('0x22')](function(_0x221b17){_0x20b647=_['keyBy'](_0x221b17,'id');_0x17c350=_[_0xfef0('0xa9')](_0x17c350,{'model':db['ChatInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x50e372[_0xfef0('0x4b')][_0xfef0('0x4f')]){_0x18c656['attributes'][_0xfef0('0x43')](function(_0x51f79b){_0x3458b0[_0xfef0('0x55')]('i.'+_0x51f79b);});}else{_0x3458b0[_0xfef0('0x55')](_0xfef0('0x9c'),_0xfef0('0x6b'));_0x3458b0[_0xfef0('0x55')](_0xfef0('0xaa'),_0xfef0('0xab'));_0x3458b0[_0xfef0('0x55')](_0xfef0('0xac'),_0xfef0('0xad'));_0x3458b0[_0xfef0('0x55')]('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',_0xfef0('0xae'));_0x3458b0['field']('i.*');_0x3458b0[_0xfef0('0x55')]('c.firstName',_0xfef0('0xaf'));_0x3458b0['field']('c.lastName',_0xfef0('0xb0'));_0x3458b0['field']('c.email','Contact.email');_0x3458b0[_0xfef0('0x55')](_0xfef0('0xb1'),_0xfef0('0xb2'));_0x3458b0[_0xfef0('0x55')]('c.mobile',_0xfef0('0xb3'));_0x3458b0[_0xfef0('0x55')](_0xfef0('0xb4'),_0xfef0('0xb5'));_0x3458b0[_0xfef0('0x55')]('o.fullname','Owner.fullname');_0x3458b0[_0xfef0('0x55')](_0xfef0('0xb6'),'Owner.internal');_0x3458b0[_0xfef0('0x55')](_0xfef0('0xb7'),_0xfef0('0x40'));}if(_0x18c656[_0xfef0('0x30')])_0x3458b0[_0xfef0('0x30')](_0x18c656[_0xfef0('0x30')]);if(_0x18c656[_0xfef0('0x2e')])_0x3458b0[_0xfef0('0x2e')](_0x18c656['offset']);return db['sequelize'][_0xfef0('0x4b')](_0x3458b0[_0xfef0('0xa7')](),_0x17c350);})[_0xfef0('0x22')](function(_0x475eb7){if(_0x475eb7[_0xfef0('0x69')]>0x0)_0x445f3f[_0xfef0('0x52')](_0xfef0('0xb8'),_[_0xfef0('0x7b')](_0x475eb7,'id'));return db['sequelize']['query'](_0x445f3f[_0xfef0('0xa7')](),_0x17c350)[_0xfef0('0x22')](function(_0x374877){var _0xd780bb=_[_0xfef0('0xb9')](_0x374877,_0xfef0('0xba'));var _0x5ac2df=[];_0x475eb7[_0xfef0('0x43')](function(_0x1060c2){_0x5ac2df['push'](updateChatInteraction(_0x1060c2,_0x20b647,_0xd780bb));});return BPromise[_0xfef0('0xbb')](_0x5ac2df);});});})[_0xfef0('0x22')](function(_0x36873f){_0x5bf416[_0xfef0('0xbc')]=_0x36873f;return _0x5bf416;})[_0xfef0('0x22')](respondWithFilteredResult(_0x4b6da1,_0x18c656))[_0xfef0('0x2a')](handleError(_0x4b6da1,null));};exports['show']=function(_0x4dd6e8,_0x1084b9){var _0xd7c5b={'raw':![],'where':{'id':_0x4dd6e8[_0xfef0('0xbd')]['id']}},_0xd2c0be={};_0xd2c0be[_0xfef0('0x4a')]=_[_0xfef0('0xbe')](db['ChatInteraction'][_0xfef0('0x47')]);_0xd2c0be['query']=_[_0xfef0('0xbe')](_0x4dd6e8['query']);_0xd2c0be[_0xfef0('0x4c')]=_[_0xfef0('0x4d')](_0xd2c0be['model'],_0xd2c0be[_0xfef0('0x4b')]);_0xd7c5b[_0xfef0('0x4e')]=_[_0xfef0('0x4d')](_0xd2c0be['model'],qs['fields'](_0x4dd6e8['query'][_0xfef0('0x4f')]));_0xd7c5b['attributes']=_0xd7c5b[_0xfef0('0x4e')][_0xfef0('0x69')]?_0xd7c5b['attributes']:_0xd2c0be[_0xfef0('0x4a')];if(_0x4dd6e8['query'][_0xfef0('0xbf')]){_0xd7c5b[_0xfef0('0xc0')]=[{'all':!![]}];}_0xd7c5b=_[_0xfef0('0xa9')]({},_0xd7c5b,_0x4dd6e8[_0xfef0('0xc1')]);return db[_0xfef0('0x46')][_0xfef0('0x6a')](_0xd7c5b)[_0xfef0('0x22')](handleEntityNotFound(_0x1084b9,null))['then'](respondWithResult(_0x1084b9,null))[_0xfef0('0x2a')](handleError(_0x1084b9,null));};exports[_0xfef0('0xc2')]=function(_0x38f96f,_0x1bdf18){return db[_0xfef0('0x46')][_0xfef0('0xc2')](_0x38f96f[_0xfef0('0x3b')],{})[_0xfef0('0x22')](respondWithResult(_0x1bdf18,0xc9))[_0xfef0('0x2a')](handleError(_0x1bdf18,null));};exports[_0xfef0('0x34')]=function(_0x2a25cb,_0x34f1db){if(_0x2a25cb[_0xfef0('0x3b')]['id']){delete _0x2a25cb[_0xfef0('0x3b')]['id'];}return db['ChatInteraction'][_0xfef0('0x6a')]({'where':{'id':_0x2a25cb[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x34f1db,null))[_0xfef0('0x22')](saveUpdates(_0x2a25cb[_0xfef0('0x3b')],null))[_0xfef0('0x22')](respondWithResult(_0x34f1db,null))[_0xfef0('0x2a')](handleError(_0x34f1db,null));};exports[_0xfef0('0x35')]=function(_0x191072,_0x5b5a15){return db['ChatInteraction'][_0xfef0('0x6a')]({'where':{'id':_0x191072['params']['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x5b5a15,null))[_0xfef0('0x22')](removeEntity(_0x5b5a15,null))[_0xfef0('0x2a')](handleError(_0x5b5a15,null));};exports[_0xfef0('0xc3')]=function(_0xd9c290,_0x365938){return db[_0xfef0('0x46')][_0xfef0('0xc3')]()[_0xfef0('0x22')](respondWithResult(_0x365938,null))[_0xfef0('0x2a')](handleError(_0x365938,null));};exports[_0xfef0('0xc4')]=function(_0x4c6ddd,_0x17ac08){var _0x40afcb=_0x4c6ddd['params']['id'];var _0xaa5902;var _0x189964;var _0x524db7;return db[_0xfef0('0x46')]['findOne']({'where':{'id':_0x40afcb}})[_0xfef0('0x22')](function(_0x41aadf){_0xaa5902=_0x41aadf;return db[_0xfef0('0xc5')][_0xfef0('0xc6')]({'where':{'id':_0x41aadf[_0xfef0('0xa5')]},'attributes':['id','vidaooApiKey',_0xfef0('0xc7'),_0xfef0('0xc8'),'vidaooNote',_0xfef0('0xc9')],'raw':!![]});})['then'](function(_0x3a180e){if(_0x3a180e&&_0x3a180e[_0xfef0('0xca')]&&_0x3a180e[_0xfef0('0xc7')]){_0x189964=_0x3a180e;var _0x52fb8b={'interaction':{'id':_0x40afcb},'agent':{'id':_0x4c6ddd[_0xfef0('0xa1')]['id'],'name':_0x4c6ddd['user']['name'],'fullname':_0x4c6ddd[_0xfef0('0xa1')]['fullname'],'email':_0x4c6ddd[_0xfef0('0xa1')][_0xfef0('0xcb')]},'contact':_0x4c6ddd[_0xfef0('0x3b')][_0xfef0('0x3c')],'account':_0x4c6ddd[_0xfef0('0x3b')][_0xfef0('0x3e')]};var _0x7f9b61={'rejectUnauthorized':![],'method':'POST','url':'https://api-vidaoo.xcally.com/api/v1/meetings','headers':{'X-APIKEY':_0x3a180e[_0xfef0('0xca')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x4c6ddd['user'][_0xfef0('0xcb')]],'buttons':null,'topic':_0x189964[_0xfef0('0xc8')],'note':_[_0xfef0('0xcc')](_0x189964[_0xfef0('0xcd')])?null:getMustacheRender(_0x189964[_0xfef0('0xcd')],_0x52fb8b),'metadata':null},'redirect':_0xfef0('0xce'),'json':!![]};try{if(!_[_0xfef0('0xcc')](_0x189964[_0xfef0('0xc9')])){var _0x4a3b68=getMustacheRender(_0x189964['vidaooMetadata'],_0x52fb8b);var _0x3c5471=JSON[_0xfef0('0x89')](_0x4a3b68);_0x7f9b61[_0xfef0('0x3b')][_0xfef0('0xcf')]=_0x3c5471;}}catch(_0xdbd7f2){throw new db['Sequelize']['ValidationError']('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0x7f9b61);}else{throw new db[(_0xfef0('0x9a'))][(_0xfef0('0xd0'))]('Error\x20in\x20Vidaoo\x20configuration');}})[_0xfef0('0x22')](function(_0x4f171b){_0x524db7=_0x4f171b;if(_0x524db7['id']){var _0x236523={'body':_0x524db7[_0xfef0('0xd1')],'ChatWebsiteId':_0x189964['id'],'ChatInteractionId':_0xaa5902['id'],'direction':_0xfef0('0xd2'),'UserId':_0x4c6ddd[_0xfef0('0xa1')]['id']};return db[_0xfef0('0xd3')][_0xfef0('0xc2')](_0x236523,{});}else{throw new db[(_0xfef0('0x9a'))][(_0xfef0('0xd0'))](_0xfef0('0xd4'));}})[_0xfef0('0x22')](function(){return _0xaa5902[_0xfef0('0xd5')]({'vidaooSessionId':_0x524db7['id']});})['then'](respondWithResult(_0x17ac08,null))[_0xfef0('0x2a')](handleError(_0x17ac08,null));};exports['customUpdate']=function(_0xf763b1,_0x1fc6a0){if(_0xf763b1[_0xfef0('0x3b')]['id']){delete _0xf763b1[_0xfef0('0x3b')]['id'];}return db[_0xfef0('0x46')][_0xfef0('0x6a')]({'where':{'id':_0xf763b1[_0xfef0('0xbd')]['id']},'include':[{'model':db[_0xfef0('0xd6')],'as':_0xfef0('0x70')}]})['then'](handleEntityNotFound(_0x1fc6a0,null))['then'](saveUpdates(_0xf763b1[_0xfef0('0x3b')],null))['then'](respondWithResult(_0x1fc6a0,null))[_0xfef0('0x2a')](handleError(_0x1fc6a0,null));};exports[_0xfef0('0xd7')]=function(_0x45049d,_0x238112,_0x3a7c93){if(_0x45049d['body']['id']){delete _0x45049d[_0xfef0('0x3b')]['id'];}return db['ChatInteraction'][_0xfef0('0x6a')]({'where':{'id':_0x45049d[_0xfef0('0xbd')]['id']}})['then'](function(_0x34bcc3){if(!_0x34bcc3){logger['error'](_0xfef0('0xd8'),'abandon',0x194,'entity\x20not\x20found');_0x238112[_0xfef0('0x2b')](0x194);}else{if(_0x34bcc3['UserId']){throw new db[(_0xfef0('0x9a'))][(_0xfef0('0xd0'))](_0xfef0('0xd9'));}}return _0x34bcc3;})['then'](function(_0x5c7b35){if(_0x5c7b35){return _0x5c7b35[_0xfef0('0x34')]({'closed':_0x45049d[_0xfef0('0x3b')][_0xfef0('0xda')],'disposition':_0x45049d[_0xfef0('0x3b')][_0xfef0('0xdb')]})[_0xfef0('0x22')](function(_0x3107e2){return _0x3107e2;});}})[_0xfef0('0x22')](function(_0x325d36){return respondWithRpcPromise('AbandonInteraction',_0xfef0('0xd7'),_0x45049d[_0xfef0('0x3b')],client9004);})[_0xfef0('0x22')](respondWithResult(_0x238112,null))[_0xfef0('0x2a')](handleError(_0x238112,null));};exports[_0xfef0('0xdc')]=function(_0xb1df6f,_0x42604b,_0x5969d2){_0xb1df6f[_0xfef0('0x3b')][_0xfef0('0x38')]=_0xb1df6f['file'][_0xfef0('0xdd')];_0xb1df6f[_0xfef0('0x3b')][_0xfef0('0xde')]=_0xb1df6f[_0xfef0('0xdf')][_0xfef0('0xe0')];_0xb1df6f['body'][_0xfef0('0x77')]=_0xb1df6f['file'][_0xfef0('0xe1')];return db['Attachment']['create'](_0xb1df6f['body'])[_0xfef0('0x22')](respondWithResult(_0x42604b,0xc9))['catch'](handleError(_0x42604b,null));};exports['attachmentDownload']=function(_0x25fed0,_0x43453b,_0x4da5b0){return db[_0xfef0('0x46')][_0xfef0('0xc6')]({'where':{'id':_0x25fed0[_0xfef0('0xbd')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x43453b,null))['then'](function(_0x39a2a7){if(_0x39a2a7){if(_0x39a2a7[_0xfef0('0xda')]){return _0x43453b[_0xfef0('0x2c')](0x193)[_0xfef0('0x2d')]({'status':0x193,'message':_0xfef0('0xe2')});}return db[_0xfef0('0xe3')][_0xfef0('0xc6')]({'where':{'id':_0x25fed0['query'][_0xfef0('0xe4')]},'raw':!![]})[_0xfef0('0x22')](handleEntityNotFound(_0x43453b,null));}})[_0xfef0('0x22')](function(_0x4544fe){if(_0x4544fe){var _0x5c0f32=_0x4544fe['ChatOfflineMessageId']!==null;var _0x461c91=path[_0xfef0('0xe5')](config[_0xfef0('0xe6')],_0xfef0('0xe7'));if(_0x5c0f32){_0x461c91=path[_0xfef0('0xe5')](_0x461c91,_0xfef0('0xe8'));}var _0xe24c2d=path['join'](_0x461c91,_0x4544fe['basename']);return _0x43453b['download'](_0xe24c2d);}})[_0xfef0('0x2a')](handleError(_0x43453b,null));};exports['close']=function(_0x38ac84,_0x4a1406){var _0x2daf2a=null;var _0x4f703e=null;var _0x20cf67=null;var _0x235122=null;if(_0x38ac84[_0xfef0('0x3b')]['id']){delete _0x38ac84[_0xfef0('0x3b')]['id'];}if(_0x38ac84[_0xfef0('0x3b')]['mailTranscript']){_0x235122=path[_0xfef0('0xe5')](config[_0xfef0('0xe6')],_0xfef0('0xe9'),util[_0xfef0('0xea')]('transcript-%s.txt',Date[_0xfef0('0xeb')]()));_0x38ac84['body']['pathTranscript']=_0x235122;}return db[_0xfef0('0x46')]['find']({'where':{'id':_0x38ac84['params']['id']},'include':[{'model':db[_0xfef0('0xd3')],'as':'Messages','include':[{'model':db[_0xfef0('0x7e')],'as':_0xfef0('0x7e')}]}]})[_0xfef0('0x22')](handleEntityNotFound(_0x4a1406,null))[_0xfef0('0x22')](saveUpdates(_0x38ac84[_0xfef0('0x3b')],null))[_0xfef0('0x22')](function(_0x4f6c50){if(_0x4f6c50){_0x2daf2a=_0x4f6c50;return db[_0xfef0('0xc5')][_0xfef0('0x6a')]({'where':{'id':_0x2daf2a[_0xfef0('0xa5')]}});}})['then'](function(_0x3ac462){if(_0x3ac462){_0x20cf67=_0x3ac462;return db['CmContact'][_0xfef0('0x6a')]({'where':{'id':_0x2daf2a[_0xfef0('0x76')]}});}})[_0xfef0('0x22')](function(_0x5ef687){if(_0x5ef687){_0x4f703e=_0x5ef687;if(_0x235122){var _0x906e55=null;for(var _0x4cec7d=0x1;_0x4cec7d<_0x2daf2a['Messages'][_0xfef0('0x69')];++_0x4cec7d){_0x906e55=_0x2daf2a[_0xfef0('0xec')][_0x4cec7d];var _0x58a4ef=_0x906e55[_0xfef0('0x80')]?util[_0xfef0('0xea')](_0xfef0('0xed'),_0x20cf67[_0xfef0('0xee')],_0x906e55['UserId']):_0xfef0('0xef');var _0x484cc3=_0x38ac84[_0xfef0('0x3b')][_0xfef0('0xf0')]||util[_0xfef0('0xea')](_0xfef0('0xed'),_0xfef0('0xf1'),_0x906e55[_0xfef0('0x76')]);switch(_0x20cf67[_0xfef0('0xf2')]){case _0xfef0('0xf3'):_0x58a4ef=_0x906e55[_0xfef0('0x80')]?util['format'](_0xfef0('0xed'),_0x20cf67[_0xfef0('0xee')],_0x906e55['UserId']):_0xfef0('0xef');break;case'agent_alias':_0x58a4ef=_0x906e55[_0xfef0('0x80')]?_0x906e55[_0xfef0('0x7e')][_0xfef0('0xf4')]||_0x906e55[_0xfef0('0x7e')][_0xfef0('0xf5')]:'System';break;case _0xfef0('0xf6'):_0x58a4ef=_0x906e55[_0xfef0('0x80')]?_0x906e55[_0xfef0('0x7e')]['fullname']:'System';break;default:_0x58a4ef=_0x906e55[_0xfef0('0x80')]?util[_0xfef0('0xea')](_0xfef0('0xed'),_0x20cf67[_0xfef0('0xee')],_0x906e55['UserId']):_0xfef0('0xef');}var _0x4b4986=util[_0xfef0('0xea')](_0xfef0('0xf7'),moment(_0x906e55[_0xfef0('0x87')])[_0xfef0('0xea')](_0xfef0('0xf8')),_0x906e55['direction']==='in'?_0x484cc3:_0x58a4ef,_0x906e55[_0xfef0('0x3b')]);if(!_0x906e55[_0xfef0('0xf9')]){fs[_0xfef0('0xfa')](_0x235122,_0x4b4986);}}return db[_0xfef0('0xfb')]['findOne']({'where':{'service':!![]},'include':[{'model':db[_0xfef0('0xfc')],'as':'Smtp','raw':!![]}]});}}})[_0xfef0('0x22')](function(_0x402c7d){if(_0x402c7d&&_0x402c7d[_0xfef0('0xfd')]&&_0x38ac84[_0xfef0('0x3b')]){var _0x5315eb={'tls':{'rejectUnauthorized':![]}};if(_0x402c7d['Smtp'][_0xfef0('0xfe')]){_0x5315eb[_0xfef0('0xfe')]=_0x402c7d[_0xfef0('0xfd')][_0xfef0('0xfe')];}else{_0x5315eb[_0xfef0('0xff')]=_0x402c7d[_0xfef0('0xfd')][_0xfef0('0xff')];_0x5315eb['port']=_0x402c7d['Smtp'][_0xfef0('0x100')];_0x5315eb[_0xfef0('0x101')]=_0x402c7d['Smtp'][_0xfef0('0x101')];}if(_0x402c7d['Smtp']['authentication']){_0x5315eb[_0xfef0('0x102')]={'user':_0x402c7d[_0xfef0('0xfd')][_0xfef0('0xa1')],'pass':_0x402c7d[_0xfef0('0xfd')][_0xfef0('0x103')]};}return respondWithRpcPromise('SendMail',_0xfef0('0x104'),{'account':_0x5315eb,'message':{'from':util[_0xfef0('0xea')](_0xfef0('0x105'),_0x402c7d[_0xfef0('0x38')],_0x402c7d['email']||_0x402c7d['Smtp']['user']),'to':_0x38ac84[_0xfef0('0x3b')]['mailTranscript'],'subject':_0xfef0('0x106'),'text':util['format']('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x38ac84['body'][_0xfef0('0x107')]),'attachments':[{'path':_0x235122}]}})[_0xfef0('0x22')](function(){return _0x2daf2a;})['catch'](function(_0x411870){console['error'](_0x411870);});}else{return _0x2daf2a;}})[_0xfef0('0x22')](respondWithStatusCode(_0x4a1406,0xc8))[_0xfef0('0x2a')](handleError(_0x4a1406,null));};exports[_0xfef0('0x108')]=function(_0x9b2969,_0x1f842f,_0x36c978){return db[_0xfef0('0xd3')][_0xfef0('0x6a')]({'where':{'id':_0x9b2969[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x1f842f,null))['then'](function(_0x1d342a){if(_0x1d342a){return _0x1d342a[_0xfef0('0x108')](_0x9b2969['body'][_0xfef0('0x109')],_['omit'](_0x9b2969[_0xfef0('0x3b')],[_0xfef0('0x109'),'id'])||{});}})[_0xfef0('0x22')](respondWithResult(_0x1f842f,null))[_0xfef0('0x2a')](handleError(_0x1f842f,null));};exports[_0xfef0('0x10a')]=function(_0x422af1,_0xcb9eb8,_0x38e829){var _0x287403={'raw':![],'where':{}};var _0x2ebd8d={};var _0x115454={'count':0x0,'rows':[]};return db[_0xfef0('0x46')][_0xfef0('0xc6')]({'where':{'id':_0x422af1[_0xfef0('0xbd')]['id']}})['then'](handleEntityNotFound(_0xcb9eb8,null))[_0xfef0('0x22')](function(_0x5593de){if(_0x5593de){_0x2ebd8d['model']=_[_0xfef0('0xbe')](db['ChatMessage'][_0xfef0('0x47')]);_0x2ebd8d[_0xfef0('0x4b')]=_[_0xfef0('0xbe')](_0x422af1['query']);_0x2ebd8d[_0xfef0('0x4c')]=_[_0xfef0('0x4d')](_0x2ebd8d[_0xfef0('0x4a')],_0x2ebd8d[_0xfef0('0x4b')]);_0x287403[_0xfef0('0x4e')]=_[_0xfef0('0x4d')](_0x2ebd8d[_0xfef0('0x4a')],qs[_0xfef0('0x4f')](_0x422af1[_0xfef0('0x4b')][_0xfef0('0x4f')]));_0x287403[_0xfef0('0x4e')]=_0x287403[_0xfef0('0x4e')][_0xfef0('0x69')]?_0x287403[_0xfef0('0x4e')]:_0x2ebd8d['model'];if(!_0x422af1[_0xfef0('0x4b')]['hasOwnProperty'](_0xfef0('0x50'))){_0x287403['limit']=qs[_0xfef0('0x30')](_0x422af1[_0xfef0('0x4b')][_0xfef0('0x30')]);_0x287403[_0xfef0('0x2e')]=qs[_0xfef0('0x2e')](_0x422af1['query']['offset']);}_0x287403[_0xfef0('0x9d')]=qs[_0xfef0('0x51')](_0x422af1['query'][_0xfef0('0x51')]);_0x287403[_0xfef0('0x52')]=qs[_0xfef0('0x4c')](_[_0xfef0('0x53')](_0x422af1[_0xfef0('0x4b')],_0x2ebd8d[_0xfef0('0x4c')]));_0x287403[_0xfef0('0x52')][_0xfef0('0xba')]=_0x5593de['id'];if(_0x422af1['query'][_0xfef0('0x92')]){_0x287403[_0xfef0('0x52')]=_['merge'](_0x287403[_0xfef0('0x52')],{'$or':_['map'](_0x287403[_0xfef0('0x4e')],function(_0x41790c){var _0x189965={};_0x189965[_0x41790c]={'$like':'%'+_0x422af1[_0xfef0('0x4b')][_0xfef0('0x92')]+'%'};return _0x189965;})});}if(_0x422af1[_0xfef0('0x4b')][_0xfef0('0x88')]){var _0x5b1b34=_0x422af1[_0xfef0('0x4b')][_0xfef0('0x88')]['split'](',');var _0xfa83e1={};_0xfa83e1[_0x5b1b34[0x0]]={'$gte':moment(_0x5b1b34[0x1])[_0xfef0('0xea')](_0xfef0('0x10b'))};_0x287403['where']=_[_0xfef0('0xa9')](_0x287403[_0xfef0('0x52')],_0xfa83e1);}_0x287403=_[_0xfef0('0xa9')]({},_0x287403,_0x422af1[_0xfef0('0xc1')]);return db[_0xfef0('0xd3')][_0xfef0('0xa8')]({'where':_0x287403[_0xfef0('0x52')]})[_0xfef0('0x22')](function(_0x464d00){_0x115454[_0xfef0('0xa8')]=_0x464d00;if(_0x422af1['query'][_0xfef0('0xbf')]){_0x287403[_0xfef0('0xc0')]=[{'all':!![]}];}return db[_0xfef0('0xd3')][_0xfef0('0x10c')](_0x287403);})[_0xfef0('0x22')](function(_0x1b23f0){_0x115454['rows']=_0x1b23f0;return _0x115454;});}})['then'](respondWithFilteredResult(_0xcb9eb8,_0x287403))[_0xfef0('0x2a')](handleError(_0xcb9eb8,null));};exports['getMyMessages']=function(_0x30f7d5,_0x1a53fa,_0x14a37e){var _0x303128={'where':{}},_0x2b3263={},_0x43e758={'count':0x0,'rows':[]};return db['ChatInteraction'][_0xfef0('0xc6')]({'where':{'id':_0x30f7d5[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x1a53fa,null))[_0xfef0('0x22')](function(_0x273e8b){if(_0x273e8b){_0x2b3263[_0xfef0('0x4a')]=_[_0xfef0('0xbe')](db['ChatMessage'][_0xfef0('0x47')]);_0x2b3263[_0xfef0('0x4b')]=_[_0xfef0('0xbe')](_0x30f7d5[_0xfef0('0x4b')]);_0x2b3263[_0xfef0('0x4c')]=_[_0xfef0('0x4d')](_0x2b3263['model'],_0x2b3263['query']);_0x303128[_0xfef0('0x4e')]=_[_0xfef0('0x4d')](_0x2b3263[_0xfef0('0x4a')],qs[_0xfef0('0x4f')](_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x4f')]));_0x303128[_0xfef0('0x4e')]=_0x303128[_0xfef0('0x4e')][_0xfef0('0x69')]?_0x303128[_0xfef0('0x4e')]:_0x2b3263[_0xfef0('0x4a')];if(!_0x30f7d5['query'][_0xfef0('0x10d')](_0xfef0('0x50'))){_0x303128[_0xfef0('0x30')]=qs[_0xfef0('0x30')](_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x30')]);_0x303128['offset']=qs[_0xfef0('0x2e')](_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x2e')]);}_0x303128[_0xfef0('0x9d')]=qs['sort'](_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x51')]);_0x303128['where']=qs[_0xfef0('0x4c')](_[_0xfef0('0x53')](_0x30f7d5[_0xfef0('0x4b')],_0x2b3263[_0xfef0('0x4c')]));_0x303128[_0xfef0('0x52')][_0xfef0('0xba')]=_0x273e8b['id'];if(_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x92')]){_0x303128['where']=_[_0xfef0('0xa9')](_0x303128[_0xfef0('0x52')],{'$or':_['map'](_0x303128['attributes'],function(_0x3081e){var _0xd34b68={};_0xd34b68[_0x3081e]={'$like':'%'+_0x30f7d5[_0xfef0('0x4b')]['filter']+'%'};return _0xd34b68;})});}_0x303128[_0xfef0('0x52')][_0xfef0('0xf9')]=![];if(_0x30f7d5['query']['id']){_0x303128[_0xfef0('0x52')]['id']={'$gt':_0x30f7d5[_0xfef0('0x4b')]['id']};}_0x303128=_[_0xfef0('0xa9')]({},_0x303128,_0x30f7d5[_0xfef0('0xc1')]);return db[_0xfef0('0xd3')]['count']({'where':_0x303128[_0xfef0('0x52')]})['then'](function(_0x63bcae){_0x43e758['count']=_0x63bcae;_0x303128[_0xfef0('0xc0')]=[];if(_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x10e')]){_0x303128['include'][_0xfef0('0x44')]({'model':db[_0xfef0('0x7e')],'as':'User','attributes':['id','fullname',_0xfef0('0xf4')]});}if(_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0xbf')]){_0x303128['include']=[{'all':!![]}];}return db[_0xfef0('0xd3')][_0xfef0('0x10c')](_0x303128);})['then'](function(_0x527d0d){_0x43e758[_0xfef0('0xbc')]=_0x527d0d;return _0x43e758;});}})[_0xfef0('0x22')](respondWithFilteredResult(_0x1a53fa,_0x303128))['catch'](handleError(_0x1a53fa,null));};exports[_0xfef0('0x10f')]=function(_0x3f68ed,_0x45a5e8,_0x33cecb){return db[_0xfef0('0x46')][_0xfef0('0x6a')]({'where':{'id':_0x3f68ed[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x45a5e8,null))[_0xfef0('0x22')](function(_0x53ce05){if(_0x53ce05){return _0x53ce05[_0xfef0('0x110')](_0x3f68ed[_0xfef0('0x3b')][_0xfef0('0x109')],_[_0xfef0('0x111')](_0x3f68ed[_0xfef0('0x3b')],[_0xfef0('0x109'),'id'])||{})['spread'](function(){return db[_0xfef0('0x7a')][_0xfef0('0x10c')]({'attributes':['id','name','color'],'where':{'id':_0x3f68ed[_0xfef0('0x3b')][_0xfef0('0x109')]}});})[_0xfef0('0x22')](function(_0x4697ee){socket[_0xfef0('0x112')]('chatInteractionTags:save',{'id':Number(_0x3f68ed[_0xfef0('0xbd')]['id']),'tags':_0x4697ee||[]});return{'id':Number(_0x3f68ed[_0xfef0('0xbd')]['id']),'tags':_0x4697ee||[]};});}})[_0xfef0('0x22')](respondWithResult(_0x45a5e8,null))['catch'](handleError(_0x45a5e8,null));};exports[_0xfef0('0x113')]=function(_0x2a229b,_0xcb6d50,_0x53ed7e){return db['ChatInteraction'][_0xfef0('0x6a')]({'where':{'id':_0x2a229b[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0xcb6d50,null))['then'](function(_0x241763){if(_0x241763){return _0x241763[_0xfef0('0x113')](_0x2a229b['query'][_0xfef0('0x109')]);}})[_0xfef0('0x22')](respondWithStatusCode(_0xcb6d50,null))['catch'](handleError(_0xcb6d50,null));};exports[_0xfef0('0x114')]=function(_0x57e2d8,_0x3fdeae){var _0x30b0a9=moment()[_0xfef0('0x115')]()['toString']();var _0x416d36=path[_0xfef0('0xe5')](config['root'],_0xfef0('0x116'),_0xfef0('0x117'),_0xfef0('0x118'));var _0x50b3d7=path[_0xfef0('0xe5')](config[_0xfef0('0xe6')],_0xfef0('0x116'),_0xfef0('0x117'),_0xfef0('0x119'));var _0x2a9a1e=path[_0xfef0('0xe5')](_0x416d36,_0x30b0a9);var _0x584c9b=util[_0xfef0('0xea')](_0xfef0('0x11a'),_0x57e2d8[_0xfef0('0xbd')]['id'],_0x30b0a9);var _0x4f4c4e=path[_0xfef0('0xe5')](_0x416d36,_0x584c9b);var _0x1c6ab9=[];_0x1c6ab9[_0xfef0('0x44')]({'model':db[_0xfef0('0x7e')],'as':_0xfef0('0x7e'),'attributes':['id',_0xfef0('0xf5')],'raw':!![]});_0x1c6ab9['push']({'model':db[_0xfef0('0xd6')],'as':'Contact','attributes':['id',_0xfef0('0x11b'),_0xfef0('0x11c')],'raw':!![]});if(_0x57e2d8[_0xfef0('0x4b')][_0xfef0('0x119')]){_0x1c6ab9[_0xfef0('0x44')]({'model':db[_0xfef0('0xe3')],'as':'Attachment','raw':!![]});}var _0x937d8e=[{'model':db[_0xfef0('0xd3')],'as':_0xfef0('0xec'),'attributes':['id',_0xfef0('0x3b'),'createdAt',_0xfef0('0x11d'),_0xfef0('0xf9'),'read'],'include':_0x1c6ab9}];_0x937d8e['push']({'model':db[_0xfef0('0xc5')],'as':_0xfef0('0x11e'),'attributes':['id',_0xfef0('0x38')]});_0x937d8e[_0xfef0('0x44')]({'model':db['User'],'as':'Owner','attributes':['id',_0xfef0('0xf5')]});return db[_0xfef0('0x46')][_0xfef0('0x6a')]({'where':{'id':_0x57e2d8[_0xfef0('0xbd')]['id']},'include':_0x937d8e})[_0xfef0('0x22')](handleEntityNotFound(_0x3fdeae,null))['then'](function(_0x2978cc){if(_0x2978cc){var _0x81bcee=_0x2978cc['get']({'plain':!![]});fs[_0xfef0('0x11f')](_0x2a9a1e);var _0xc8d0ca={'channel':_0xfef0('0x120'),'account':_0x81bcee[_0xfef0('0x11e')][_0xfef0('0x38')],'agent':_0x81bcee[_0xfef0('0x121')]?_0x81bcee['Owner']['fullname']:_0xfef0('0x122'),'createdAt':moment(_0x81bcee[_0xfef0('0x87')])[_0xfef0('0xea')](_0xfef0('0x10b'))['toString'](),'closedAt':_0x81bcee['closed']?moment(_0x81bcee['closedAt'])[_0xfef0('0xea')](_0xfef0('0x10b'))[_0xfef0('0xa7')]():'','disposition':_0x81bcee[_0xfef0('0xdb')],'chatInfo':{'browser':_0x81bcee[_0xfef0('0x123')],'os':_0x81bcee[_0xfef0('0x124')],'referer':_0x81bcee['referer'],'customerIp':_0x81bcee['customerIp'],'customerPort':_0x81bcee['customerPort']?_0x81bcee['customerPort']:'N.A.'},'messages':_(_0x81bcee[_0xfef0('0xec')])['tail']()[_0xfef0('0x92')]({'secret':![]})[_0xfef0('0x7b')](function(_0x46ab62){if(_0x46ab62[_0xfef0('0xe3')]){var _0x3507a8=path['join'](_0x50b3d7,_0x46ab62[_0xfef0('0xe3')][_0xfef0('0xde')]);if(fs[_0xfef0('0x125')](_0x3507a8)){fs['createReadStream'](_0x3507a8)[_0xfef0('0x126')](fs[_0xfef0('0x127')](path[_0xfef0('0xe5')](_0x2a9a1e,_0x46ab62[_0xfef0('0xe3')][_0xfef0('0xde')])));}}return{'date':moment(_0x46ab62[_0xfef0('0x87')])[_0xfef0('0xea')](_0xfef0('0x10b'))[_0xfef0('0xa7')](),'sender':_0x46ab62[_0xfef0('0x11d')]===_0xfef0('0xd2')?_0x46ab62[_0xfef0('0x7e')]?_0x46ab62[_0xfef0('0x7e')][_0xfef0('0xf5')]:_0xfef0('0xef'):_0x46ab62[_0xfef0('0x70')][_0xfef0('0x11b')]+(_0x46ab62[_0xfef0('0x70')][_0xfef0('0x11c')]?'\x20'+_0x46ab62[_0xfef0('0x70')]['lastName']:''),'body':_0x46ab62['Attachment']?_0x46ab62['Attachment']['basename']:_0x46ab62[_0xfef0('0x3b')],'direction':_0x46ab62[_0xfef0('0x11d')]===_0xfef0('0xd2')?'A':'C','secret':_0x46ab62['secret'],'read':_0x46ab62[_0xfef0('0x8e')],'attachment':_0x46ab62[_0xfef0('0xe3')]};})[_0xfef0('0x6c')]()};return ejs[_0xfef0('0x128')](path['join'](config['root'],'server',_0xfef0('0x129'),_0xfef0('0x12a')),{'interaction':_0xc8d0ca})[_0xfef0('0x22')](function(_0x2b1f64){var _0x55ecff=path[_0xfef0('0xe5')](_0x2a9a1e,_0xfef0('0x12b')+_0x81bcee['id']+'-'+_0x30b0a9+'.pdf');var _0x409147={'path':_0x55ecff,'channel':_0xfef0('0x120'),'interactionId':_0x81bcee['id']};return pdf[_0xfef0('0x12c')](_0x2b1f64,_0x409147);})[_0xfef0('0x22')](function(){return new BPromise(function(_0x27856d,_0x44081d){zipdir(_0x2a9a1e,{'saveTo':_0x4f4c4e},function(_0x177c9b,_0x322672){if(_0x177c9b)return _0x44081d(_0x177c9b);return _0x27856d(_0x322672);});})[_0xfef0('0x22')](function(){return new BPromise(function(_0x102b4e,_0x2a206b){rimraf(_0x2a9a1e,function(_0x279f5b){if(_0x279f5b)_0x2a206b(_0x279f5b);return _0x102b4e();});});})[_0xfef0('0x22')](function(){return _0x3fdeae[_0xfef0('0x114')](_0x4f4c4e,_0x584c9b,function(_0x44603e){if(_0x44603e){console['log'](_0xfef0('0x12d'),_0x44603e);}else{fs['unlinkSync'](_0x4f4c4e);}});});});}else{return _0x3fdeae[_0xfef0('0x2b')](0xc8);}})['catch'](handleError(_0x3fdeae,null));};
\ No newline at end of file
+var _0xea28=['fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','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','redis','defaults','localhost','./chatInteraction.socket','register','jayson/promise','client','http','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','error','code','message','catch','status','end','json','offset','undefined','limit','count','Content-Range','apply','update','destroy','sendStatus','stack','name','merge','contact','agent','interaction','account','Users','map','TagIds','Tags','split','forEach','index','ChatInteraction','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','select','field','color','u.id','ui.ChatInteractionId','from','user_has_chat_interactions','users','u.id\x20=\x20ui.UserId','chat_interactions','left_join','cm_contacts','o.id\x20=\x20i.UserId','chat_websites','a.id\x20=\x20i.ChatWebsiteId','chat_messages','me.ChatInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','search','parseSearch','conditions','find','unreadMessages','having','`\x20=\x200','Contact','$substring','value','getFullTextValue','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','compact','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','isNumeric','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','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','isEmpty','t.id\x20IN\x20?','resolve','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','role','user','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','sequelize','toString','keyBy','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.*','Contact.firstName','Contact.lastName','Contact.email','Contact.phone','c.mobile','Contact.mobile','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','push','all','params','includeAll','options','create','body','describe','createVidaooSession','findOne','ChatWebsite','ChatWebsiteId','vidaooApiKey','vidaooEscalation','vidaooNote','vidaooMetadata','POST','https://api-vidaoo.xcally.com/api/v1/meetings','email','isNull','follow','metadata','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','join_url','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','CmContact','abandon','entity\x20not\x20found','Interaction\x20already\x20assigned','disposition','AbandonInteraction','attachmentUpload','file','originalname','basename','filename','mimetype','attachmentDownload','closed','Unauthorized','Attachment','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','download','close','mailTranscript','server/files/chat/upload/','now','pathTranscript','%s%d','agentAlias','System','customer','format','Visitor','agentIdentifier','website_alias','agent_alias','alias','agent_fullname','fullname','[%s]\x20%s:\x20%s\x0a','direction','appendFileSync','MailServerOut','Smtp','service','port','secure','authentication','auth','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','addMessage','ids','omit','getMessages','include','findAll','rows','getMyMessages','secret','includeAgent','addTags','setTags','spread','emit','removeTags','files','attachments','transcript-%d-%s.zip','firstName','lastName','Messages','read','Account','Chat','Owner','YYYY-MM-DD\x20HH:mm:ss','browserName','customerIp','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','out','renderFile','views','downloadInteraction.ejs','transcript-','log','unlinkSync','eml-format','rimraf','zip-dir'];(function(_0x2c7a09,_0x38fd0d){var _0x478678=function(_0x2bd608){while(--_0x2bd608){_0x2c7a09['push'](_0x2c7a09['shift']());}};_0x478678(++_0x38fd0d);}(_0xea28,0x13a));var _0x8ea2=function(_0x34dc0e,_0x54886e){_0x34dc0e=_0x34dc0e-0x0;var _0x35b50e=_0xea28[_0x34dc0e];return _0x35b50e;};'use strict';var emlformat=require(_0x8ea2('0x0'));var rimraf=require(_0x8ea2('0x1'));var zipdir=require(_0x8ea2('0x2'));var jsonpatch=require(_0x8ea2('0x3'));var rp=require(_0x8ea2('0x4'));var moment=require(_0x8ea2('0x5'));var BPromise=require(_0x8ea2('0x6'));var Mustache=require(_0x8ea2('0x7'));var util=require('util');var path=require(_0x8ea2('0x8'));var sox=require(_0x8ea2('0x9'));var csv=require(_0x8ea2('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8ea2('0xb'));var _=require(_0x8ea2('0xc'));var squel=require(_0x8ea2('0xd'));var crypto=require(_0x8ea2('0xe'));var jsforce=require(_0x8ea2('0xf'));var deskjs=require(_0x8ea2('0x10'));var toCsv=require(_0x8ea2('0xa'));var querystring=require(_0x8ea2('0x11'));var Papa=require(_0x8ea2('0x12'));var Redis=require(_0x8ea2('0x13'));var authService=require(_0x8ea2('0x14'));var qs=require(_0x8ea2('0x15'));var as=require('../../components/parsers/advancedSearch');var pdf=require('../../components/export/pdf');var hardwareService=require(_0x8ea2('0x16'));var logger=require(_0x8ea2('0x17'))(_0x8ea2('0x18'));var utils=require('../../config/utils');var config=require(_0x8ea2('0x19'));var licenseUtil=require(_0x8ea2('0x1a'));var db=require(_0x8ea2('0x1b'))['db'];config[_0x8ea2('0x1c')]=_[_0x8ea2('0x1d')](config['redis'],{'host':_0x8ea2('0x1e'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x8ea2('0x1f'))[_0x8ea2('0x20')](socket);var jayson=require(_0x8ea2('0x21'));var client=jayson[_0x8ea2('0x22')][_0x8ea2('0x23')]({'port':0x232b});var client9004=jayson[_0x8ea2('0x22')][_0x8ea2('0x23')]({'port':0x232c});function respondWithRpcPromise(_0x11f5e8,_0x474873,_0x396aab,_0x2dfa7c){return new BPromise(function(_0x1c1715,_0x3bc774){var _0xaa8abf=_0x2dfa7c||client;return _0xaa8abf[_0x8ea2('0x24')](_0x11f5e8,_0x396aab)[_0x8ea2('0x25')](function(_0x467045){logger[_0x8ea2('0x26')](_0x8ea2('0x27'),_0x474873,_0x8ea2('0x28'));logger[_0x8ea2('0x29')](_0x8ea2('0x2a'),_0x474873,'request\x20sent',JSON['stringify'](_0x467045));if(_0x467045[_0x8ea2('0x2b')]){if(_0x467045[_0x8ea2('0x2b')][_0x8ea2('0x2c')]===0x1f4){logger['error'](_0x8ea2('0x27'),_0x474873,_0x467045[_0x8ea2('0x2b')]['message']);return _0x3bc774(_0x467045[_0x8ea2('0x2b')][_0x8ea2('0x2d')]);}logger[_0x8ea2('0x2b')](_0x8ea2('0x27'),_0x474873,_0x467045[_0x8ea2('0x2b')][_0x8ea2('0x2d')]);return _0x1c1715(_0x467045[_0x8ea2('0x2b')][_0x8ea2('0x2d')]);}else{logger[_0x8ea2('0x26')]('ChatInteraction,\x20%s,\x20%s',_0x474873,_0x8ea2('0x28'));_0x1c1715(_0x467045['result'][_0x8ea2('0x2d')]);}})[_0x8ea2('0x2e')](function(_0x29b38f){logger['error']('ChatInteraction,\x20%s,\x20%s',_0x474873,_0x29b38f);_0x3bc774(_0x29b38f);});});}function respondWithStatusCode(_0x2e4da3,_0x4dc7bf){_0x4dc7bf=_0x4dc7bf||0xcc;return function(_0x200a49){if(_0x200a49){return _0x2e4da3['sendStatus'](_0x4dc7bf);}return _0x2e4da3[_0x8ea2('0x2f')](_0x4dc7bf)[_0x8ea2('0x30')]();};}function respondWithResult(_0x21c526,_0x266db8){_0x266db8=_0x266db8||0xc8;return function(_0x4e1b90){if(_0x4e1b90){return _0x21c526['status'](_0x266db8)[_0x8ea2('0x31')](_0x4e1b90);}};}function respondWithFilteredResult(_0x4da5b3,_0x4a9875){return function(_0x287078){if(_0x287078){var _0x24f187=typeof _0x4a9875[_0x8ea2('0x32')]===_0x8ea2('0x33')&&typeof _0x4a9875[_0x8ea2('0x34')]===_0x8ea2('0x33');var _0x316707=_0x287078[_0x8ea2('0x35')];var _0x9c5fac=_0x24f187?0x0:_0x4a9875['offset'];var _0x5b7ff9=_0x24f187?_0x287078[_0x8ea2('0x35')]:_0x4a9875[_0x8ea2('0x32')]+_0x4a9875['limit'];var _0x4a110f;if(_0x5b7ff9>=_0x316707){_0x5b7ff9=_0x316707;_0x4a110f=0xc8;}else{_0x4a110f=0xce;}_0x4da5b3[_0x8ea2('0x2f')](_0x4a110f);return _0x4da5b3['set'](_0x8ea2('0x36'),_0x9c5fac+'-'+_0x5b7ff9+'/'+_0x316707)[_0x8ea2('0x31')](_0x287078);}return null;};}function patchUpdates(_0x53fd06){return function(_0x17b21c){try{jsonpatch[_0x8ea2('0x37')](_0x17b21c,_0x53fd06,!![]);}catch(_0x33abc8){return BPromise['reject'](_0x33abc8);}return _0x17b21c['save']();};}function saveUpdates(_0x49a252,_0x3880c3){return function(_0x233e12){if(_0x233e12){return _0x233e12[_0x8ea2('0x38')](_0x49a252)['then'](function(_0x456487){return _0x456487;});}return null;};}function removeEntity(_0x391b08,_0x3d5bf0){return function(_0x278e5d){if(_0x278e5d){return _0x278e5d[_0x8ea2('0x39')]()[_0x8ea2('0x25')](function(){_0x391b08[_0x8ea2('0x2f')](0xcc)[_0x8ea2('0x30')]();});}};}function handleEntityNotFound(_0x5e9b1f,_0x955ef3){return function(_0x29e3f5){if(!_0x29e3f5){_0x5e9b1f[_0x8ea2('0x3a')](0x194);}return _0x29e3f5;};}function handleError(_0x467d97,_0x4eebc1){_0x4eebc1=_0x4eebc1||0x1f4;return function(_0x2a1f14){logger['error'](_0x2a1f14[_0x8ea2('0x3b')]);if(_0x2a1f14[_0x8ea2('0x3c')]){delete _0x2a1f14[_0x8ea2('0x3c')];}_0x467d97[_0x8ea2('0x2f')](_0x4eebc1)['send'](_0x2a1f14);};}function getMustacheRender(_0x2bed24,_0x531979){return Mustache['render'](_0x2bed24,_[_0x8ea2('0x3d')](_0x531979['body'],{'contact':_0x531979[_0x8ea2('0x3e')],'message':_0x531979[_0x8ea2('0x2d')],'agent':_0x531979[_0x8ea2('0x3f')],'interaction':_0x531979[_0x8ea2('0x40')],'account':_0x531979[_0x8ea2('0x41')]}))||'';}function getInteractionUsers(_0x4ae536,_0x84685d){return new BPromise(function(_0x5c5d2d,_0x12a6c2){try{if(_0x84685d[_0x4ae536['id']]){_0x4ae536[_0x8ea2('0x42')]=_[_0x8ea2('0x43')](_0x84685d[_0x4ae536['id']],function(_0x3995ff){return{'id':_0x3995ff['id'],'fullname':_0x3995ff['fullname']};});}}catch(_0x44e8bc){_0x12a6c2(_0x44e8bc);}_0x5c5d2d(_0x4ae536);});}function getInteractionTags(_0x57a6b8,_0x3f0c78){return new BPromise(function(_0x5ba351,_0x2ee78b){try{if(_0x57a6b8[_0x8ea2('0x44')]){_0x57a6b8[_0x8ea2('0x45')]=[];_0x57a6b8[_0x8ea2('0x44')][_0x8ea2('0x46')](',')[_0x8ea2('0x47')](function(_0x2f4fa8){_0x57a6b8['Tags']['push'](_0x3f0c78[_0x2f4fa8]);});}delete _0x57a6b8[_0x8ea2('0x44')];}catch(_0x53455a){_0x2ee78b(_0x53455a);}_0x5ba351(_0x57a6b8);});}function updateChatInteraction(_0x4b03fa,_0x59e2fa,_0x3cbc09){return new BPromise(function(_0x5d9ba0,_0x40a532){return getInteractionUsers(_0x4b03fa,_0x3cbc09)[_0x8ea2('0x25')](function(_0x39c944){return getInteractionTags(_0x39c944,_0x59e2fa);})[_0x8ea2('0x25')](function(_0x989d9b){_0x5d9ba0(_0x989d9b);})[_0x8ea2('0x2e')](function(_0x3b2219){_0x40a532(_0x3b2219);});});}exports[_0x8ea2('0x48')]=function(_0x5352b9,_0x3afb80){var _0x1ef615={},_0x1db25c={},_0x5cb6ad={'count':0x0,'rows':[]};var _0x2d6bbb=_[_0x8ea2('0x43')](db[_0x8ea2('0x49')][_0x8ea2('0x4a')],function(_0x20992d){return{'name':_0x20992d['fieldName'],'type':_0x20992d[_0x8ea2('0x4b')][_0x8ea2('0x4c')]};});_0x1db25c[_0x8ea2('0x4d')]=_['map'](_0x2d6bbb,_0x8ea2('0x3c'));_0x1db25c[_0x8ea2('0x4e')]=_[_0x8ea2('0x4f')](_0x5352b9[_0x8ea2('0x4e')]);_0x1db25c[_0x8ea2('0x50')]=_[_0x8ea2('0x51')](_0x1db25c[_0x8ea2('0x4d')],_0x1db25c[_0x8ea2('0x4e')]);_0x1ef615[_0x8ea2('0x52')]=_[_0x8ea2('0x51')](_0x1db25c[_0x8ea2('0x4d')],qs[_0x8ea2('0x53')](_0x5352b9[_0x8ea2('0x4e')][_0x8ea2('0x53')]));_0x1ef615['attributes']=_0x1ef615[_0x8ea2('0x52')][_0x8ea2('0x54')]?_0x1ef615[_0x8ea2('0x52')]:_0x1db25c[_0x8ea2('0x4d')];if(!_0x5352b9[_0x8ea2('0x4e')][_0x8ea2('0x55')](_0x8ea2('0x56'))){_0x1ef615[_0x8ea2('0x34')]=qs['limit'](_0x5352b9[_0x8ea2('0x4e')][_0x8ea2('0x34')]);_0x1ef615[_0x8ea2('0x32')]=qs['offset'](_0x5352b9['query'][_0x8ea2('0x32')]);}_0x1ef615[_0x8ea2('0x57')]=qs[_0x8ea2('0x58')](_0x5352b9['query'][_0x8ea2('0x58')]);_0x1ef615[_0x8ea2('0x59')]=qs[_0x8ea2('0x50')](_[_0x8ea2('0x5a')](_0x5352b9[_0x8ea2('0x4e')],_0x1db25c['filters']),_0x2d6bbb);var _0x4afd85=[];var _0x24a22a=squel[_0x8ea2('0x5b')]()[_0x8ea2('0x5c')]('id')['field'](_0x8ea2('0x3c'))[_0x8ea2('0x5c')](_0x8ea2('0x5d'))['from']('tools_tags');var _0x48aebf=squel['select']()['field'](_0x8ea2('0x5e'))[_0x8ea2('0x5c')]('u.fullname')['field'](_0x8ea2('0x5f'))[_0x8ea2('0x60')](_0x8ea2('0x61'),'ui')['left_join'](_0x8ea2('0x62'),'u',_0x8ea2('0x63'));var _0x59e3df=squel[_0x8ea2('0x5b')]()[_0x8ea2('0x60')](_0x8ea2('0x64'),'i')[_0x8ea2('0x65')](_0x8ea2('0x66'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')['left_join']('users','o',_0x8ea2('0x67'))[_0x8ea2('0x65')](_0x8ea2('0x68'),'a',_0x8ea2('0x69'))[_0x8ea2('0x65')](_0x8ea2('0x6a'),'me',_0x8ea2('0x6b'))['left_join']('chat_interaction_has_tags','it','it.ChatInteractionId\x20=\x20i.id')[_0x8ea2('0x65')](_0x8ea2('0x6c'),'t',_0x8ea2('0x6d'));var _0x2bbec0=squel['expr']();var _0x11824e=[];var _0x2b8662=squel['expr']();var _0x21485a;if(_0x5352b9[_0x8ea2('0x4e')][_0x8ea2('0x6e')]){_0x21485a=as[_0x8ea2('0x6f')](_0x5352b9[_0x8ea2('0x4e')]['search']);var _0x479c05=_0x21485a['sqlOperator'];for(var _0x53a62c=0x0;_0x53a62c<_0x21485a[_0x8ea2('0x70')][_0x8ea2('0x54')];_0x53a62c++){var _0x2d8221=_0x21485a[_0x8ea2('0x70')][_0x53a62c];var _0x491d3d='i';var _0x461d32=_[_0x8ea2('0x71')](_0x2d6bbb,[_0x8ea2('0x3c'),_0x2d8221[_0x8ea2('0x5c')]]);if(!_0x461d32){switch(_0x2d8221['field']){case _0x8ea2('0x72'):if(_0x2d8221['value']==0x1){_0x59e3df[_0x8ea2('0x73')]('`'+_0x2d8221['field']+_0x8ea2('0x74'));}else{_0x59e3df[_0x8ea2('0x73')]('`'+_0x2d8221['field']+'`\x20>\x200');}break;case _0x8ea2('0x75'):if(_0x2d8221['operator']===_0x8ea2('0x76')){if(_0x2d8221[_0x8ea2('0x77')][_0x8ea2('0x46')]('\x20')[_0x8ea2('0x54')]>0x1){_0x2bbec0[_0x479c05]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x8ea2('0x78')](_0x2d8221[_0x8ea2('0x77')]),null);}else{var _0x39776d='%'+_0x2d8221[_0x8ea2('0x77')]+'%';_0x2bbec0[_0x479c05](_0x8ea2('0x79'),_0x39776d,_0x39776d,_0x39776d);}}else{_0x461d32=_[_0x8ea2('0x71')](_0x2d6bbb,[_0x8ea2('0x3c'),_0x8ea2('0x7a')]);_0x2d8221[_0x8ea2('0x5c')]=_0x8ea2('0x7a');_0x3d55db=as[_0x8ea2('0x7b')](_0x491d3d,_0x461d32[_0x8ea2('0x4b')],_0x2d8221);_0x2bbec0[_0x479c05](_0x3d55db['text'],_0x3d55db[_0x8ea2('0x77')][_0x8ea2('0x7c')],_0x3d55db[_0x8ea2('0x77')][_0x8ea2('0x30')]);}break;case _0x8ea2('0x7d'):var _0x219f78=_0x2d8221[_0x8ea2('0x77')][_0x8ea2('0x46')](',')[_0x8ea2('0x43')](function(_0xefb7b){return Number(_0xefb7b);});_0x219f78[_0x8ea2('0x47')](function(_0x35cfc5){_0x2b8662['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x35cfc5+',%');});_0x11824e=_[_0x8ea2('0x7e')](_0x11824e,_0x219f78);break;case _0x8ea2('0x7f'):if(_0x2d8221[_0x8ea2('0x80')]===_0x8ea2('0x76')){_0x2bbec0[_0x479c05](_0x8ea2('0x81'),'%'+_0x2d8221['value']+'%',null);}else{_0x461d32=_['find'](_0x2d6bbb,['name',_0x8ea2('0x82')]);_0x2d8221[_0x8ea2('0x5c')]=_0x8ea2('0x82');_0x3d55db=as[_0x8ea2('0x7b')](_0x491d3d,_0x461d32[_0x8ea2('0x4b')],_0x2d8221);_0x2bbec0[_0x479c05](_0x3d55db[_0x8ea2('0x83')],_0x3d55db['value'][_0x8ea2('0x7c')],_0x3d55db[_0x8ea2('0x77')]['end']);}break;case'body':_0x3d55db=as[_0x8ea2('0x7b')]('me',null,_0x2d8221);_0x2bbec0[_0x479c05](_0x3d55db[_0x8ea2('0x83')],_0x3d55db[_0x8ea2('0x77')][_0x8ea2('0x7c')],_0x3d55db[_0x8ea2('0x77')][_0x8ea2('0x30')]);break;}}else{var _0x3d55db=as['buildExpression'](_0x491d3d,_0x461d32[_0x8ea2('0x4b')],_0x2d8221);_0x2bbec0[_0x479c05](_0x3d55db[_0x8ea2('0x83')],_0x3d55db[_0x8ea2('0x77')][_0x8ea2('0x7c')],_0x3d55db['value'][_0x8ea2('0x30')]);}}}else{var _0x356099=_(_0x5352b9[_0x8ea2('0x4e')])['keys']()[_0x8ea2('0x43')](function(_0x5c2d05){return _['some'](_0x2d6bbb,[_0x8ea2('0x3c'),_0x5c2d05])?_0x5c2d05:undefined;})[_0x8ea2('0x84')]()['value']();if(!_['isEmpty'](_0x356099)){_0x356099['forEach'](function(_0x167f15){if(_0x167f15==='ChatWebsiteId'){_0x59e3df['where'](_0x8ea2('0x85'),[][_0x8ea2('0x86')](_0x5352b9[_0x8ea2('0x4e')][_0x167f15]));}else if(_0x167f15===_0x8ea2('0x87')){var _0x1681d8=JSON[_0x8ea2('0x88')](_0x5352b9[_0x8ea2('0x4e')][_0x167f15])[_0x8ea2('0x89')];var _0x14a5de=JSON[_0x8ea2('0x88')](_0x5352b9[_0x8ea2('0x4e')][_0x167f15])[_0x8ea2('0x8a')];_0x59e3df[_0x8ea2('0x59')](_0x8ea2('0x8b'),_0x1681d8,_0x14a5de);}else{if(_0x5352b9['query'][_0x167f15]===_0x8ea2('0x8c')){_0x59e3df[_0x8ea2('0x59')]('i.'+_0x167f15+_0x8ea2('0x8d'));}else{_0x59e3df['where']('i.'+_0x167f15+_0x8ea2('0x8e'),_0x5352b9['query'][_0x167f15]);}}});}if(_0x5352b9[_0x8ea2('0x4e')]['read']){if(_0x5352b9[_0x8ea2('0x4e')]['read']==0x1){_0x59e3df[_0x8ea2('0x73')](_0x8ea2('0x8f'));}else{_0x59e3df['having'](_0x8ea2('0x90'));}}if(_0x5352b9['query'][_0x8ea2('0x91')]){_0x11824e=_[_0x8ea2('0x92')](_0x5352b9[_0x8ea2('0x4e')][_0x8ea2('0x91')])?_0x5352b9[_0x8ea2('0x4e')]['tag']:new Array(_0x5352b9['query'][_0x8ea2('0x91')]);_0x11824e['forEach'](function(_0x410f78){_0x2b8662['or'](_0x8ea2('0x93'),'%,'+_0x410f78+',%');});}if(_0x5352b9[_0x8ea2('0x4e')][_0x8ea2('0x94')]){var _0x262cef=_0x5352b9[_0x8ea2('0x4e')]['filter']['replace']('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x8ea2('0x95')](_0x262cef)){_0x2bbec0['or']('i.id\x20LIKE\x20?',_0x262cef+'%');}else{_0x2bbec0['or'](_0x8ea2('0x96'),qs[_0x8ea2('0x78')](_0x262cef))['or'](_0x8ea2('0x97'),_0x262cef+'%');}}}_0x59e3df[_0x8ea2('0x59')](_0x2bbec0);_0x59e3df[_0x8ea2('0x98')](_0x8ea2('0x99'));var _0x4b4d64={'type':db[_0x8ea2('0x9a')][_0x8ea2('0x9b')][_0x8ea2('0x9c')],'raw':!![]};var _0x335a96=_0x59e3df[_0x8ea2('0x9d')]();_0x335a96['field']('i.id');_0x335a96[_0x8ea2('0x5c')](_0x8ea2('0x9e'),_0x8ea2('0x72'));if(_0x1ef615[_0x8ea2('0x57')]){_0x1ef615[_0x8ea2('0x57')][_0x8ea2('0x47')](function(_0x2e0bbe){var _0x9c4960=_0x2e0bbe[0x0]===_0x8ea2('0x9f')?_0x2e0bbe[0x0]:'i.'+_0x2e0bbe[0x0];_0x59e3df[_0x8ea2('0x57')](_0x9c4960,_0x2e0bbe[0x1]===_0x8ea2('0xa0')?![]:!![]);});}if(!_[_0x8ea2('0xa1')](_0x11824e)){_0x59e3df[_0x8ea2('0x73')](_0x2b8662);_0x335a96[_0x8ea2('0x59')](_0x8ea2('0xa2'),_0x11824e);}BPromise[_0x8ea2('0xa3')]()[_0x8ea2('0x25')](function(){if(!_0x21485a){if(_0x5352b9['query']['ChatWebsiteId'])return;_0x335a96[_0x8ea2('0x59')]('i.ChatWebsiteId\x20IS\x20NOT\x20NULL');_0x59e3df[_0x8ea2('0x59')](_0x8ea2('0xa4'));return;}if(_0x5352b9['user'][_0x8ea2('0xa5')]!=='agent')return;return _0x5352b9[_0x8ea2('0xa6')][_0x8ea2('0xa7')]({'attributes':['id'],'raw':!![]})['then'](function(_0x17dee8){if(_[_0x8ea2('0xa1')](_0x17dee8)){_0x335a96[_0x8ea2('0x59')](_0x8ea2('0xa8'));_0x59e3df[_0x8ea2('0x59')](_0x8ea2('0xa8'));}else{_0x335a96[_0x8ea2('0x59')](_0x8ea2('0x85'),_[_0x8ea2('0x43')](_0x17dee8,'id'));_0x59e3df[_0x8ea2('0x59')]('i.ChatWebsiteId\x20IN\x20?',_[_0x8ea2('0x43')](_0x17dee8,'id'));}});})[_0x8ea2('0x25')](function(){if(_0x5352b9['user'][_0x8ea2('0xa5')]==='agent'&&!_0x21485a&&!_0x5352b9['query']['ChatWebsiteId'])return[];return db[_0x8ea2('0xa9')]['query'](_0x335a96[_0x8ea2('0xaa')](),_0x4b4d64);})[_0x8ea2('0x25')](function(_0x12ed20){_0x5cb6ad[_0x8ea2('0x35')]=_0x12ed20[_0x8ea2('0x54')];if(_0x5cb6ad[_0x8ea2('0x35')]===0x0)return[];return db['sequelize'][_0x8ea2('0x4e')](_0x24a22a['toString'](),_0x4b4d64)[_0x8ea2('0x25')](function(_0x18aa81){_0x4afd85=_[_0x8ea2('0xab')](_0x18aa81,'id');_0x4b4d64=_[_0x8ea2('0x3d')](_0x4b4d64,{'model':db[_0x8ea2('0x49')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5352b9['query'][_0x8ea2('0x53')]){_0x1ef615[_0x8ea2('0x52')][_0x8ea2('0x47')](function(_0x2a82b2){_0x59e3df[_0x8ea2('0x5c')]('i.'+_0x2a82b2);});}else{_0x59e3df[_0x8ea2('0x5c')](_0x8ea2('0x9e'),_0x8ea2('0x72'));_0x59e3df[_0x8ea2('0x5c')](_0x8ea2('0xac'),_0x8ea2('0xad'));_0x59e3df[_0x8ea2('0x5c')](_0x8ea2('0xae'),_0x8ea2('0xaf'));_0x59e3df[_0x8ea2('0x5c')](_0x8ea2('0xb0'),_0x8ea2('0x9f'));_0x59e3df['field'](_0x8ea2('0xb1'));_0x59e3df['field']('c.firstName',_0x8ea2('0xb2'));_0x59e3df[_0x8ea2('0x5c')]('c.lastName',_0x8ea2('0xb3'));_0x59e3df[_0x8ea2('0x5c')]('c.email',_0x8ea2('0xb4'));_0x59e3df[_0x8ea2('0x5c')]('c.phone',_0x8ea2('0xb5'));_0x59e3df[_0x8ea2('0x5c')](_0x8ea2('0xb6'),_0x8ea2('0xb7'));_0x59e3df[_0x8ea2('0x5c')]('c.fax',_0x8ea2('0xb8'));_0x59e3df[_0x8ea2('0x5c')](_0x8ea2('0xb9'),_0x8ea2('0xba'));_0x59e3df[_0x8ea2('0x5c')](_0x8ea2('0xbb'),_0x8ea2('0xbc'));_0x59e3df[_0x8ea2('0x5c')](_0x8ea2('0xbd'),'TagIds');}if(_0x1ef615[_0x8ea2('0x34')])_0x59e3df['limit'](_0x1ef615[_0x8ea2('0x34')]);if(_0x1ef615[_0x8ea2('0x32')])_0x59e3df[_0x8ea2('0x32')](_0x1ef615[_0x8ea2('0x32')]);return db[_0x8ea2('0xa9')]['query'](_0x59e3df[_0x8ea2('0xaa')](),_0x4b4d64);})[_0x8ea2('0x25')](function(_0x4fdd16){if(_0x4fdd16['length']>0x0)_0x48aebf[_0x8ea2('0x59')](_0x8ea2('0xbe'),_['map'](_0x4fdd16,'id'));return db['sequelize'][_0x8ea2('0x4e')](_0x48aebf[_0x8ea2('0xaa')](),_0x4b4d64)['then'](function(_0x2b7e80){var _0x2f6673=_[_0x8ea2('0xbf')](_0x2b7e80,_0x8ea2('0xc0'));var _0xdf4de9=[];_0x4fdd16['forEach'](function(_0x2e3a5d){_0xdf4de9[_0x8ea2('0xc1')](updateChatInteraction(_0x2e3a5d,_0x4afd85,_0x2f6673));});return BPromise[_0x8ea2('0xc2')](_0xdf4de9);});});})[_0x8ea2('0x25')](function(_0x412af1){_0x5cb6ad['rows']=_0x412af1;return _0x5cb6ad;})[_0x8ea2('0x25')](respondWithFilteredResult(_0x3afb80,_0x1ef615))['catch'](handleError(_0x3afb80,null));};exports['show']=function(_0x9468be,_0x17e9fc){var _0x5c95ec={'raw':![],'where':{'id':_0x9468be[_0x8ea2('0xc3')]['id']}},_0x239516={};_0x239516[_0x8ea2('0x4d')]=_[_0x8ea2('0x4f')](db[_0x8ea2('0x49')][_0x8ea2('0x4a')]);_0x239516['query']=_[_0x8ea2('0x4f')](_0x9468be[_0x8ea2('0x4e')]);_0x239516[_0x8ea2('0x50')]=_['intersection'](_0x239516[_0x8ea2('0x4d')],_0x239516[_0x8ea2('0x4e')]);_0x5c95ec[_0x8ea2('0x52')]=_[_0x8ea2('0x51')](_0x239516[_0x8ea2('0x4d')],qs['fields'](_0x9468be[_0x8ea2('0x4e')][_0x8ea2('0x53')]));_0x5c95ec[_0x8ea2('0x52')]=_0x5c95ec[_0x8ea2('0x52')]['length']?_0x5c95ec['attributes']:_0x239516[_0x8ea2('0x4d')];if(_0x9468be['query'][_0x8ea2('0xc4')]){_0x5c95ec['include']=[{'all':!![]}];}_0x5c95ec=_[_0x8ea2('0x3d')]({},_0x5c95ec,_0x9468be[_0x8ea2('0xc5')]);return db[_0x8ea2('0x49')][_0x8ea2('0x71')](_0x5c95ec)[_0x8ea2('0x25')](handleEntityNotFound(_0x17e9fc,null))[_0x8ea2('0x25')](respondWithResult(_0x17e9fc,null))[_0x8ea2('0x2e')](handleError(_0x17e9fc,null));};exports['create']=function(_0x2c5677,_0x224fca){return db[_0x8ea2('0x49')][_0x8ea2('0xc6')](_0x2c5677[_0x8ea2('0xc7')],{})[_0x8ea2('0x25')](respondWithResult(_0x224fca,0xc9))['catch'](handleError(_0x224fca,null));};exports[_0x8ea2('0x38')]=function(_0x463372,_0x76085){if(_0x463372[_0x8ea2('0xc7')]['id']){delete _0x463372['body']['id'];}return db['ChatInteraction']['find']({'where':{'id':_0x463372[_0x8ea2('0xc3')]['id']}})[_0x8ea2('0x25')](handleEntityNotFound(_0x76085,null))[_0x8ea2('0x25')](saveUpdates(_0x463372['body'],null))[_0x8ea2('0x25')](respondWithResult(_0x76085,null))[_0x8ea2('0x2e')](handleError(_0x76085,null));};exports[_0x8ea2('0x39')]=function(_0x500b47,_0x331019){return db[_0x8ea2('0x49')]['find']({'where':{'id':_0x500b47[_0x8ea2('0xc3')]['id']}})['then'](handleEntityNotFound(_0x331019,null))['then'](removeEntity(_0x331019,null))[_0x8ea2('0x2e')](handleError(_0x331019,null));};exports[_0x8ea2('0xc8')]=function(_0x405020,_0x5c9359){return db[_0x8ea2('0x49')][_0x8ea2('0xc8')]()[_0x8ea2('0x25')](respondWithResult(_0x5c9359,null))[_0x8ea2('0x2e')](handleError(_0x5c9359,null));};exports[_0x8ea2('0xc9')]=function(_0x11c59e,_0x11b02a){var _0x5ab2c4=_0x11c59e[_0x8ea2('0xc3')]['id'];var _0x111f97;var _0xf76d70;var _0x384500;return db[_0x8ea2('0x49')][_0x8ea2('0xca')]({'where':{'id':_0x5ab2c4}})[_0x8ea2('0x25')](function(_0x568581){_0x111f97=_0x568581;return db[_0x8ea2('0xcb')][_0x8ea2('0xca')]({'where':{'id':_0x568581[_0x8ea2('0xcc')]},'attributes':['id',_0x8ea2('0xcd'),_0x8ea2('0xce'),'vidaooTopic',_0x8ea2('0xcf'),_0x8ea2('0xd0')],'raw':!![]});})[_0x8ea2('0x25')](function(_0x1c336e){if(_0x1c336e&&_0x1c336e[_0x8ea2('0xcd')]&&_0x1c336e[_0x8ea2('0xce')]){_0xf76d70=_0x1c336e;var _0x473ae2={'interaction':{'id':_0x5ab2c4},'agent':{'id':_0x11c59e[_0x8ea2('0xa6')]['id'],'name':_0x11c59e[_0x8ea2('0xa6')]['name'],'fullname':_0x11c59e['user']['fullname'],'email':_0x11c59e[_0x8ea2('0xa6')]['email']},'contact':_0x11c59e[_0x8ea2('0xc7')][_0x8ea2('0x3e')],'account':_0x11c59e[_0x8ea2('0xc7')][_0x8ea2('0x41')]};var _0x6c0ccc={'rejectUnauthorized':![],'method':_0x8ea2('0xd1'),'url':_0x8ea2('0xd2'),'headers':{'X-APIKEY':_0x1c336e[_0x8ea2('0xcd')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x11c59e[_0x8ea2('0xa6')][_0x8ea2('0xd3')]],'buttons':null,'topic':_0xf76d70['vidaooTopic'],'note':_[_0x8ea2('0xd4')](_0xf76d70[_0x8ea2('0xcf')])?null:getMustacheRender(_0xf76d70[_0x8ea2('0xcf')],_0x473ae2),'metadata':null},'redirect':_0x8ea2('0xd5'),'json':!![]};try{if(!_[_0x8ea2('0xd4')](_0xf76d70[_0x8ea2('0xd0')])){var _0xc6888c=getMustacheRender(_0xf76d70[_0x8ea2('0xd0')],_0x473ae2);var _0x152d46=JSON[_0x8ea2('0x88')](_0xc6888c);_0x6c0ccc[_0x8ea2('0xc7')][_0x8ea2('0xd6')]=_0x152d46;}}catch(_0x465e7f){throw new db[(_0x8ea2('0x9a'))][(_0x8ea2('0xd7'))](_0x8ea2('0xd8'));}return rp(_0x6c0ccc);}else{throw new db[(_0x8ea2('0x9a'))]['ValidationError']('Error\x20in\x20Vidaoo\x20configuration');}})['then'](function(_0x4b2c0f){_0x384500=_0x4b2c0f;if(_0x384500['id']){var _0x2fcddc={'body':_0x384500[_0x8ea2('0xd9')],'ChatWebsiteId':_0xf76d70['id'],'ChatInteractionId':_0x111f97['id'],'direction':'out','UserId':_0x11c59e[_0x8ea2('0xa6')]['id']};return db[_0x8ea2('0xda')][_0x8ea2('0xc6')](_0x2fcddc,{});}else{throw new db[(_0x8ea2('0x9a'))]['ValidationError'](_0x8ea2('0xdb'));}})['then'](function(){return _0x111f97[_0x8ea2('0xdc')]({'vidaooSessionId':_0x384500['id']});})[_0x8ea2('0x25')](respondWithResult(_0x11b02a,null))[_0x8ea2('0x2e')](handleError(_0x11b02a,null));};exports[_0x8ea2('0xdd')]=function(_0x3b6b03,_0x3292bc){if(_0x3b6b03['body']['id']){delete _0x3b6b03['body']['id'];}return db[_0x8ea2('0x49')][_0x8ea2('0x71')]({'where':{'id':_0x3b6b03['params']['id']},'include':[{'model':db[_0x8ea2('0xde')],'as':'Contact'}]})[_0x8ea2('0x25')](handleEntityNotFound(_0x3292bc,null))[_0x8ea2('0x25')](saveUpdates(_0x3b6b03[_0x8ea2('0xc7')],null))[_0x8ea2('0x25')](respondWithResult(_0x3292bc,null))[_0x8ea2('0x2e')](handleError(_0x3292bc,null));};exports[_0x8ea2('0xdf')]=function(_0x1383b4,_0x4c1b9d,_0x3f3822){if(_0x1383b4[_0x8ea2('0xc7')]['id']){delete _0x1383b4[_0x8ea2('0xc7')]['id'];}return db[_0x8ea2('0x49')][_0x8ea2('0x71')]({'where':{'id':_0x1383b4[_0x8ea2('0xc3')]['id']}})[_0x8ea2('0x25')](function(_0x1c974d){if(!_0x1c974d){logger[_0x8ea2('0x2b')]('abandonInteraction,\x20%s,\x20%s,\x20%s',_0x8ea2('0xdf'),0x194,_0x8ea2('0xe0'));_0x4c1b9d[_0x8ea2('0x3a')](0x194);}else{if(_0x1c974d['UserId']){throw new db[(_0x8ea2('0x9a'))][(_0x8ea2('0xd7'))](_0x8ea2('0xe1'));}}return _0x1c974d;})[_0x8ea2('0x25')](function(_0xe18090){if(_0xe18090){return _0xe18090[_0x8ea2('0x38')]({'closed':_0x1383b4['body']['closed'],'disposition':_0x1383b4[_0x8ea2('0xc7')][_0x8ea2('0xe2')]})[_0x8ea2('0x25')](function(_0x695f4a){return _0x695f4a;});}})[_0x8ea2('0x25')](function(_0x57ff72){return respondWithRpcPromise(_0x8ea2('0xe3'),'abandon',_0x1383b4[_0x8ea2('0xc7')],client9004);})[_0x8ea2('0x25')](respondWithResult(_0x4c1b9d,null))['catch'](handleError(_0x4c1b9d,null));};exports[_0x8ea2('0xe4')]=function(_0x254b51,_0x2c11d2,_0x2aaa88){_0x254b51[_0x8ea2('0xc7')][_0x8ea2('0x3c')]=_0x254b51[_0x8ea2('0xe5')][_0x8ea2('0xe6')];_0x254b51[_0x8ea2('0xc7')][_0x8ea2('0xe7')]=_0x254b51['file'][_0x8ea2('0xe8')];_0x254b51[_0x8ea2('0xc7')][_0x8ea2('0x4b')]=_0x254b51['file'][_0x8ea2('0xe9')];return db['Attachment'][_0x8ea2('0xc6')](_0x254b51[_0x8ea2('0xc7')])[_0x8ea2('0x25')](respondWithResult(_0x2c11d2,0xc9))[_0x8ea2('0x2e')](handleError(_0x2c11d2,null));};exports[_0x8ea2('0xea')]=function(_0x1786ac,_0x7a45a8,_0x3a68e2){return db[_0x8ea2('0x49')]['findOne']({'where':{'id':_0x1786ac[_0x8ea2('0xc3')]['id']},'raw':!![]})[_0x8ea2('0x25')](handleEntityNotFound(_0x7a45a8,null))[_0x8ea2('0x25')](function(_0x8d4abd){if(_0x8d4abd){if(_0x8d4abd[_0x8ea2('0xeb')]){return _0x7a45a8[_0x8ea2('0x2f')](0x193)[_0x8ea2('0x31')]({'status':0x193,'message':_0x8ea2('0xec')});}return db[_0x8ea2('0xed')]['findOne']({'where':{'id':_0x1786ac[_0x8ea2('0x4e')][_0x8ea2('0xee')]},'raw':!![]})[_0x8ea2('0x25')](handleEntityNotFound(_0x7a45a8,null));}})[_0x8ea2('0x25')](function(_0xcbb6b3){if(_0xcbb6b3){var _0x4bdbe0=_0xcbb6b3[_0x8ea2('0xef')]!==null;var _0x44791f=path[_0x8ea2('0xf0')](config[_0x8ea2('0xf1')],_0x8ea2('0xf2'));if(_0x4bdbe0){_0x44791f=path['join'](_0x44791f,_0x8ea2('0xf3'));}var _0x4e7aff=path[_0x8ea2('0xf0')](_0x44791f,_0xcbb6b3[_0x8ea2('0xe7')]);return _0x7a45a8[_0x8ea2('0xf4')](_0x4e7aff);}})['catch'](handleError(_0x7a45a8,null));};exports[_0x8ea2('0xf5')]=function(_0x48a2e2,_0x4e804c){var _0x487bab=null;var _0x1a0966=null;var _0x50087b=null;var _0x196b89=null;if(_0x48a2e2[_0x8ea2('0xc7')]['id']){delete _0x48a2e2[_0x8ea2('0xc7')]['id'];}if(_0x48a2e2[_0x8ea2('0xc7')][_0x8ea2('0xf6')]){_0x196b89=path[_0x8ea2('0xf0')](config[_0x8ea2('0xf1')],_0x8ea2('0xf7'),util['format']('transcript-%s.txt',Date[_0x8ea2('0xf8')]()));_0x48a2e2[_0x8ea2('0xc7')][_0x8ea2('0xf9')]=_0x196b89;}return db['ChatInteraction']['find']({'where':{'id':_0x48a2e2['params']['id']},'include':[{'model':db[_0x8ea2('0xda')],'as':'Messages','include':[{'model':db['User'],'as':_0x8ea2('0x7f')}]}]})[_0x8ea2('0x25')](handleEntityNotFound(_0x4e804c,null))['then'](saveUpdates(_0x48a2e2['body'],null))[_0x8ea2('0x25')](function(_0x48eac8){if(_0x48eac8){_0x487bab=_0x48eac8;return db['ChatWebsite'][_0x8ea2('0x71')]({'where':{'id':_0x487bab[_0x8ea2('0xcc')]}});}})[_0x8ea2('0x25')](function(_0x54da21){if(_0x54da21){_0x50087b=_0x54da21;return db[_0x8ea2('0xde')][_0x8ea2('0x71')]({'where':{'id':_0x487bab[_0x8ea2('0x7a')]}});}})[_0x8ea2('0x25')](function(_0x3a43d5){if(_0x3a43d5){_0x1a0966=_0x3a43d5;if(_0x196b89){var _0x535b01=null;for(var _0x22e4cd=0x1;_0x22e4cd<_0x487bab['Messages'][_0x8ea2('0x54')];++_0x22e4cd){_0x535b01=_0x487bab['Messages'][_0x22e4cd];var _0x230a70=_0x535b01['UserId']?util['format'](_0x8ea2('0xfa'),_0x50087b[_0x8ea2('0xfb')],_0x535b01[_0x8ea2('0x82')]):_0x8ea2('0xfc');var _0x332670=_0x48a2e2[_0x8ea2('0xc7')][_0x8ea2('0xfd')]||util[_0x8ea2('0xfe')]('%s%d',_0x8ea2('0xff'),_0x535b01[_0x8ea2('0x7a')]);switch(_0x50087b[_0x8ea2('0x100')]){case _0x8ea2('0x101'):_0x230a70=_0x535b01[_0x8ea2('0x82')]?util['format'](_0x8ea2('0xfa'),_0x50087b['agentAlias'],_0x535b01[_0x8ea2('0x82')]):'System';break;case _0x8ea2('0x102'):_0x230a70=_0x535b01[_0x8ea2('0x82')]?_0x535b01[_0x8ea2('0x7f')][_0x8ea2('0x103')]||_0x535b01['User']['fullname']:'System';break;case _0x8ea2('0x104'):_0x230a70=_0x535b01[_0x8ea2('0x82')]?_0x535b01['User'][_0x8ea2('0x105')]:_0x8ea2('0xfc');break;default:_0x230a70=_0x535b01[_0x8ea2('0x82')]?util[_0x8ea2('0xfe')](_0x8ea2('0xfa'),_0x50087b[_0x8ea2('0xfb')],_0x535b01[_0x8ea2('0x82')]):_0x8ea2('0xfc');}var _0x422280=util[_0x8ea2('0xfe')](_0x8ea2('0x106'),moment(_0x535b01[_0x8ea2('0x87')])[_0x8ea2('0xfe')]('MM/DD/YYYY\x20HH:mm:ss'),_0x535b01[_0x8ea2('0x107')]==='in'?_0x332670:_0x230a70,_0x535b01['body']);if(!_0x535b01['secret']){fs[_0x8ea2('0x108')](_0x196b89,_0x422280);}}return db['MailAccount'][_0x8ea2('0xca')]({'where':{'service':!![]},'include':[{'model':db[_0x8ea2('0x109')],'as':_0x8ea2('0x10a'),'raw':!![]}]});}}})[_0x8ea2('0x25')](function(_0xff0fae){if(_0xff0fae&&_0xff0fae['Smtp']&&_0x48a2e2[_0x8ea2('0xc7')]){var _0x3f5688={'tls':{'rejectUnauthorized':![]}};if(_0xff0fae[_0x8ea2('0x10a')]['service']){_0x3f5688['service']=_0xff0fae[_0x8ea2('0x10a')][_0x8ea2('0x10b')];}else{_0x3f5688['host']=_0xff0fae[_0x8ea2('0x10a')]['host'];_0x3f5688[_0x8ea2('0x10c')]=_0xff0fae[_0x8ea2('0x10a')][_0x8ea2('0x10c')];_0x3f5688[_0x8ea2('0x10d')]=_0xff0fae[_0x8ea2('0x10a')][_0x8ea2('0x10d')];}if(_0xff0fae[_0x8ea2('0x10a')][_0x8ea2('0x10e')]){_0x3f5688[_0x8ea2('0x10f')]={'user':_0xff0fae['Smtp']['user'],'pass':_0xff0fae[_0x8ea2('0x10a')]['pass']};}return respondWithRpcPromise(_0x8ea2('0x110'),_0x8ea2('0x111'),{'account':_0x3f5688,'message':{'from':util[_0x8ea2('0xfe')](_0x8ea2('0x112'),_0xff0fae['name'],_0xff0fae[_0x8ea2('0xd3')]||_0xff0fae[_0x8ea2('0x10a')]['user']),'to':_0x48a2e2[_0x8ea2('0xc7')][_0x8ea2('0xf6')],'subject':_0x8ea2('0x113'),'text':util['format']('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x48a2e2['body'][_0x8ea2('0xf6')]),'attachments':[{'path':_0x196b89}]}})['then'](function(){return _0x487bab;})[_0x8ea2('0x2e')](function(_0x488acb){console[_0x8ea2('0x2b')](_0x488acb);});}else{return _0x487bab;}})[_0x8ea2('0x25')](respondWithStatusCode(_0x4e804c,0xc8))[_0x8ea2('0x2e')](handleError(_0x4e804c,null));};exports[_0x8ea2('0x114')]=function(_0x54925a,_0x295339,_0x55c23c){return db['ChatMessage']['find']({'where':{'id':_0x54925a[_0x8ea2('0xc3')]['id']}})[_0x8ea2('0x25')](handleEntityNotFound(_0x295339,null))[_0x8ea2('0x25')](function(_0x48b51d){if(_0x48b51d){return _0x48b51d[_0x8ea2('0x114')](_0x54925a[_0x8ea2('0xc7')][_0x8ea2('0x115')],_[_0x8ea2('0x116')](_0x54925a[_0x8ea2('0xc7')],[_0x8ea2('0x115'),'id'])||{});}})[_0x8ea2('0x25')](respondWithResult(_0x295339,null))[_0x8ea2('0x2e')](handleError(_0x295339,null));};exports[_0x8ea2('0x117')]=function(_0x102d70,_0x2b014d,_0xc35654){var _0x355b91={'raw':![],'where':{}};var _0x1cf414={};var _0x48e543={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x8ea2('0xca')]({'where':{'id':_0x102d70['params']['id']}})[_0x8ea2('0x25')](handleEntityNotFound(_0x2b014d,null))[_0x8ea2('0x25')](function(_0x3ebbc8){if(_0x3ebbc8){_0x1cf414['model']=_[_0x8ea2('0x4f')](db['ChatMessage']['rawAttributes']);_0x1cf414[_0x8ea2('0x4e')]=_[_0x8ea2('0x4f')](_0x102d70[_0x8ea2('0x4e')]);_0x1cf414[_0x8ea2('0x50')]=_[_0x8ea2('0x51')](_0x1cf414[_0x8ea2('0x4d')],_0x1cf414[_0x8ea2('0x4e')]);_0x355b91['attributes']=_[_0x8ea2('0x51')](_0x1cf414[_0x8ea2('0x4d')],qs[_0x8ea2('0x53')](_0x102d70['query'][_0x8ea2('0x53')]));_0x355b91[_0x8ea2('0x52')]=_0x355b91[_0x8ea2('0x52')]['length']?_0x355b91[_0x8ea2('0x52')]:_0x1cf414[_0x8ea2('0x4d')];if(!_0x102d70[_0x8ea2('0x4e')]['hasOwnProperty']('nolimit')){_0x355b91[_0x8ea2('0x34')]=qs['limit'](_0x102d70[_0x8ea2('0x4e')]['limit']);_0x355b91[_0x8ea2('0x32')]=qs[_0x8ea2('0x32')](_0x102d70[_0x8ea2('0x4e')][_0x8ea2('0x32')]);}_0x355b91[_0x8ea2('0x57')]=qs['sort'](_0x102d70[_0x8ea2('0x4e')][_0x8ea2('0x58')]);_0x355b91[_0x8ea2('0x59')]=qs[_0x8ea2('0x50')](_[_0x8ea2('0x5a')](_0x102d70[_0x8ea2('0x4e')],_0x1cf414['filters']));_0x355b91['where'][_0x8ea2('0xc0')]=_0x3ebbc8['id'];if(_0x102d70[_0x8ea2('0x4e')]['filter']){_0x355b91[_0x8ea2('0x59')]=_[_0x8ea2('0x3d')](_0x355b91[_0x8ea2('0x59')],{'$or':_[_0x8ea2('0x43')](_0x355b91['attributes'],function(_0x19ea2b){var _0x4450e8={};_0x4450e8[_0x19ea2b]={'$like':'%'+_0x102d70['query'][_0x8ea2('0x94')]+'%'};return _0x4450e8;})});}if(_0x102d70['query'][_0x8ea2('0x89')]){var _0x479b40=_0x102d70['query'][_0x8ea2('0x89')][_0x8ea2('0x46')](',');var _0xbb5964={};_0xbb5964[_0x479b40[0x0]]={'$gte':moment(_0x479b40[0x1])[_0x8ea2('0xfe')]('YYYY-MM-DD\x20HH:mm:ss')};_0x355b91[_0x8ea2('0x59')]=_[_0x8ea2('0x3d')](_0x355b91[_0x8ea2('0x59')],_0xbb5964);}_0x355b91=_['merge']({},_0x355b91,_0x102d70[_0x8ea2('0xc5')]);return db[_0x8ea2('0xda')][_0x8ea2('0x35')]({'where':_0x355b91[_0x8ea2('0x59')]})[_0x8ea2('0x25')](function(_0x46d38e){_0x48e543[_0x8ea2('0x35')]=_0x46d38e;if(_0x102d70['query'][_0x8ea2('0xc4')]){_0x355b91[_0x8ea2('0x118')]=[{'all':!![]}];}return db[_0x8ea2('0xda')][_0x8ea2('0x119')](_0x355b91);})[_0x8ea2('0x25')](function(_0x23f247){_0x48e543[_0x8ea2('0x11a')]=_0x23f247;return _0x48e543;});}})[_0x8ea2('0x25')](respondWithFilteredResult(_0x2b014d,_0x355b91))[_0x8ea2('0x2e')](handleError(_0x2b014d,null));};exports[_0x8ea2('0x11b')]=function(_0x3a37fb,_0x455009,_0x556919){var _0x58a0e5={'where':{}},_0x3be2ce={},_0x56a973={'count':0x0,'rows':[]};return db[_0x8ea2('0x49')][_0x8ea2('0xca')]({'where':{'id':_0x3a37fb[_0x8ea2('0xc3')]['id']}})[_0x8ea2('0x25')](handleEntityNotFound(_0x455009,null))[_0x8ea2('0x25')](function(_0x515381){if(_0x515381){_0x3be2ce[_0x8ea2('0x4d')]=_[_0x8ea2('0x4f')](db['ChatMessage'][_0x8ea2('0x4a')]);_0x3be2ce[_0x8ea2('0x4e')]=_[_0x8ea2('0x4f')](_0x3a37fb[_0x8ea2('0x4e')]);_0x3be2ce['filters']=_[_0x8ea2('0x51')](_0x3be2ce[_0x8ea2('0x4d')],_0x3be2ce[_0x8ea2('0x4e')]);_0x58a0e5[_0x8ea2('0x52')]=_['intersection'](_0x3be2ce[_0x8ea2('0x4d')],qs[_0x8ea2('0x53')](_0x3a37fb[_0x8ea2('0x4e')]['fields']));_0x58a0e5[_0x8ea2('0x52')]=_0x58a0e5[_0x8ea2('0x52')][_0x8ea2('0x54')]?_0x58a0e5['attributes']:_0x3be2ce['model'];if(!_0x3a37fb[_0x8ea2('0x4e')]['hasOwnProperty'](_0x8ea2('0x56'))){_0x58a0e5[_0x8ea2('0x34')]=qs[_0x8ea2('0x34')](_0x3a37fb[_0x8ea2('0x4e')]['limit']);_0x58a0e5[_0x8ea2('0x32')]=qs['offset'](_0x3a37fb['query']['offset']);}_0x58a0e5['order']=qs[_0x8ea2('0x58')](_0x3a37fb[_0x8ea2('0x4e')][_0x8ea2('0x58')]);_0x58a0e5[_0x8ea2('0x59')]=qs[_0x8ea2('0x50')](_['pick'](_0x3a37fb['query'],_0x3be2ce[_0x8ea2('0x50')]));_0x58a0e5['where']['ChatInteractionId']=_0x515381['id'];if(_0x3a37fb[_0x8ea2('0x4e')][_0x8ea2('0x94')]){_0x58a0e5[_0x8ea2('0x59')]=_['merge'](_0x58a0e5[_0x8ea2('0x59')],{'$or':_['map'](_0x58a0e5[_0x8ea2('0x52')],function(_0x4041ec){var _0x56178b={};_0x56178b[_0x4041ec]={'$like':'%'+_0x3a37fb[_0x8ea2('0x4e')][_0x8ea2('0x94')]+'%'};return _0x56178b;})});}_0x58a0e5['where'][_0x8ea2('0x11c')]=![];if(_0x3a37fb[_0x8ea2('0x4e')]['id']){_0x58a0e5[_0x8ea2('0x59')]['id']={'$gt':_0x3a37fb[_0x8ea2('0x4e')]['id']};}_0x58a0e5=_[_0x8ea2('0x3d')]({},_0x58a0e5,_0x3a37fb[_0x8ea2('0xc5')]);return db[_0x8ea2('0xda')][_0x8ea2('0x35')]({'where':_0x58a0e5[_0x8ea2('0x59')]})['then'](function(_0xcedece){_0x56a973['count']=_0xcedece;_0x58a0e5[_0x8ea2('0x118')]=[];if(_0x3a37fb[_0x8ea2('0x4e')][_0x8ea2('0x11d')]){_0x58a0e5[_0x8ea2('0x118')][_0x8ea2('0xc1')]({'model':db[_0x8ea2('0x7f')],'as':_0x8ea2('0x7f'),'attributes':['id',_0x8ea2('0x105'),'alias']});}if(_0x3a37fb['query'][_0x8ea2('0xc4')]){_0x58a0e5[_0x8ea2('0x118')]=[{'all':!![]}];}return db[_0x8ea2('0xda')][_0x8ea2('0x119')](_0x58a0e5);})[_0x8ea2('0x25')](function(_0x52bf7c){_0x56a973[_0x8ea2('0x11a')]=_0x52bf7c;return _0x56a973;});}})[_0x8ea2('0x25')](respondWithFilteredResult(_0x455009,_0x58a0e5))['catch'](handleError(_0x455009,null));};exports[_0x8ea2('0x11e')]=function(_0x3be5d0,_0x3ac848,_0x52ce76){return db['ChatInteraction'][_0x8ea2('0x71')]({'where':{'id':_0x3be5d0['params']['id']}})[_0x8ea2('0x25')](handleEntityNotFound(_0x3ac848,null))[_0x8ea2('0x25')](function(_0x1030c9){if(_0x1030c9){return _0x1030c9[_0x8ea2('0x11f')](_0x3be5d0[_0x8ea2('0xc7')][_0x8ea2('0x115')],_[_0x8ea2('0x116')](_0x3be5d0[_0x8ea2('0xc7')],[_0x8ea2('0x115'),'id'])||{})[_0x8ea2('0x120')](function(){return db[_0x8ea2('0x7d')][_0x8ea2('0x119')]({'attributes':['id',_0x8ea2('0x3c'),_0x8ea2('0x5d')],'where':{'id':_0x3be5d0[_0x8ea2('0xc7')][_0x8ea2('0x115')]}});})[_0x8ea2('0x25')](function(_0x452b94){socket[_0x8ea2('0x121')]('chatInteractionTags:save',{'id':Number(_0x3be5d0['params']['id']),'tags':_0x452b94||[]});return{'id':Number(_0x3be5d0['params']['id']),'tags':_0x452b94||[]};});}})[_0x8ea2('0x25')](respondWithResult(_0x3ac848,null))[_0x8ea2('0x2e')](handleError(_0x3ac848,null));};exports[_0x8ea2('0x122')]=function(_0x9410dd,_0x497671,_0x5e3e8d){return db[_0x8ea2('0x49')]['find']({'where':{'id':_0x9410dd[_0x8ea2('0xc3')]['id']}})[_0x8ea2('0x25')](handleEntityNotFound(_0x497671,null))[_0x8ea2('0x25')](function(_0x19b042){if(_0x19b042){return _0x19b042[_0x8ea2('0x122')](_0x9410dd[_0x8ea2('0x4e')][_0x8ea2('0x115')]);}})['then'](respondWithStatusCode(_0x497671,null))[_0x8ea2('0x2e')](handleError(_0x497671,null));};exports[_0x8ea2('0xf4')]=function(_0x2dc450,_0x34e1c5){var _0x5b929c=moment()['unix']()[_0x8ea2('0xaa')]();var _0x263123=path[_0x8ea2('0xf0')](config['root'],'server',_0x8ea2('0x123'),'tmp');var _0x40e8e6=path[_0x8ea2('0xf0')](config[_0x8ea2('0xf1')],'server',_0x8ea2('0x123'),_0x8ea2('0x124'));var _0x2dfabc=path[_0x8ea2('0xf0')](_0x263123,_0x5b929c);var _0x515049=util['format'](_0x8ea2('0x125'),_0x2dc450[_0x8ea2('0xc3')]['id'],_0x5b929c);var _0x39000d=path['join'](_0x263123,_0x515049);var _0x3a1752=[];_0x3a1752['push']({'model':db[_0x8ea2('0x7f')],'as':'User','attributes':['id',_0x8ea2('0x105')],'raw':!![]});_0x3a1752['push']({'model':db[_0x8ea2('0xde')],'as':_0x8ea2('0x75'),'attributes':['id',_0x8ea2('0x126'),_0x8ea2('0x127')],'raw':!![]});if(_0x2dc450['query'][_0x8ea2('0x124')]){_0x3a1752[_0x8ea2('0xc1')]({'model':db[_0x8ea2('0xed')],'as':_0x8ea2('0xed'),'raw':!![]});}var _0x5ba508=[{'model':db[_0x8ea2('0xda')],'as':_0x8ea2('0x128'),'attributes':['id',_0x8ea2('0xc7'),_0x8ea2('0x87'),_0x8ea2('0x107'),'secret',_0x8ea2('0x129')],'include':_0x3a1752}];_0x5ba508[_0x8ea2('0xc1')]({'model':db[_0x8ea2('0xcb')],'as':_0x8ea2('0x12a'),'attributes':['id','name']});_0x5ba508[_0x8ea2('0xc1')]({'model':db[_0x8ea2('0x7f')],'as':'Owner','attributes':['id','fullname']});return db['ChatInteraction'][_0x8ea2('0x71')]({'where':{'id':_0x2dc450[_0x8ea2('0xc3')]['id']},'include':_0x5ba508})[_0x8ea2('0x25')](handleEntityNotFound(_0x34e1c5,null))[_0x8ea2('0x25')](function(_0x3c9013){if(_0x3c9013){var _0x103c43=_0x3c9013['get']({'plain':!![]});fs['mkdirSync'](_0x2dfabc);var _0xc099b6={'channel':_0x8ea2('0x12b'),'account':_0x103c43[_0x8ea2('0x12a')]['name'],'agent':_0x103c43['Owner']?_0x103c43[_0x8ea2('0x12c')][_0x8ea2('0x105')]:'N.A.','createdAt':moment(_0x103c43[_0x8ea2('0x87')])['format'](_0x8ea2('0x12d'))[_0x8ea2('0xaa')](),'closedAt':_0x103c43[_0x8ea2('0xeb')]?moment(_0x103c43['closedAt'])[_0x8ea2('0xfe')](_0x8ea2('0x12d'))['toString']():'','disposition':_0x103c43[_0x8ea2('0xe2')],'chatInfo':{'browser':_0x103c43[_0x8ea2('0x12e')],'os':_0x103c43['osName'],'referer':_0x103c43['referer'],'customerIp':_0x103c43[_0x8ea2('0x12f')],'customerPort':_0x103c43[_0x8ea2('0x130')]?_0x103c43[_0x8ea2('0x130')]:'N.A.'},'messages':_(_0x103c43[_0x8ea2('0x128')])[_0x8ea2('0x131')]()[_0x8ea2('0x94')]({'secret':![]})[_0x8ea2('0x43')](function(_0x36799a){if(_0x36799a['Attachment']){var _0x1cc1d9=path['join'](_0x40e8e6,_0x36799a[_0x8ea2('0xed')]['basename']);if(fs[_0x8ea2('0x132')](_0x1cc1d9)){fs[_0x8ea2('0x133')](_0x1cc1d9)[_0x8ea2('0x134')](fs[_0x8ea2('0x135')](path['join'](_0x2dfabc,_0x36799a[_0x8ea2('0xed')][_0x8ea2('0xe7')])));}}return{'date':moment(_0x36799a[_0x8ea2('0x87')])[_0x8ea2('0xfe')](_0x8ea2('0x12d'))[_0x8ea2('0xaa')](),'sender':_0x36799a[_0x8ea2('0x107')]===_0x8ea2('0x136')?_0x36799a[_0x8ea2('0x7f')]?_0x36799a[_0x8ea2('0x7f')][_0x8ea2('0x105')]:'System':_0x36799a[_0x8ea2('0x75')][_0x8ea2('0x126')]+(_0x36799a[_0x8ea2('0x75')]['lastName']?'\x20'+_0x36799a[_0x8ea2('0x75')][_0x8ea2('0x127')]:''),'body':_0x36799a[_0x8ea2('0xed')]?_0x36799a[_0x8ea2('0xed')][_0x8ea2('0xe7')]:_0x36799a[_0x8ea2('0xc7')],'direction':_0x36799a[_0x8ea2('0x107')]===_0x8ea2('0x136')?'A':'C','secret':_0x36799a[_0x8ea2('0x11c')],'read':_0x36799a[_0x8ea2('0x129')],'attachment':_0x36799a['Attachment']};})[_0x8ea2('0x77')]()};return ejs[_0x8ea2('0x137')](path[_0x8ea2('0xf0')](config[_0x8ea2('0xf1')],'server',_0x8ea2('0x138'),_0x8ea2('0x139')),{'interaction':_0xc099b6})[_0x8ea2('0x25')](function(_0x10d2b3){var _0x12a217=path[_0x8ea2('0xf0')](_0x2dfabc,_0x8ea2('0x13a')+_0x103c43['id']+'-'+_0x5b929c+'.pdf');var _0x44b0dc={'path':_0x12a217,'channel':_0x8ea2('0x12b'),'interactionId':_0x103c43['id']};return pdf['createPdfFromHTML'](_0x10d2b3,_0x44b0dc);})[_0x8ea2('0x25')](function(){return new BPromise(function(_0x27f5e9,_0x19b678){zipdir(_0x2dfabc,{'saveTo':_0x39000d},function(_0x50ebcd,_0x5d6c63){if(_0x50ebcd)return _0x19b678(_0x50ebcd);return _0x27f5e9(_0x5d6c63);});})[_0x8ea2('0x25')](function(){return new BPromise(function(_0x55b3a1,_0x57e228){rimraf(_0x2dfabc,function(_0x3c669b){if(_0x3c669b)_0x57e228(_0x3c669b);return _0x55b3a1();});});})[_0x8ea2('0x25')](function(){return _0x34e1c5['download'](_0x39000d,_0x515049,function(_0x688d21){if(_0x688d21){console[_0x8ea2('0x13b')]('err',_0x688d21);}else{fs[_0x8ea2('0x13c')](_0x39000d);}});});});}else{return _0x34e1c5['sendStatus'](0xc8);}})[_0x8ea2('0x2e')](handleError(_0x34e1c5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb1b=['getUsers','then','Users','setDataValue','unreadMessages','length','emit','hasOwnProperty','exports','../../mysqldb','ChatInteraction','setMaxListeners','update'];(function(_0x50c4ec,_0x51d55e){var _0x22ae78=function(_0x58238c){while(--_0x58238c){_0x50c4ec['push'](_0x50c4ec['shift']());}};_0x22ae78(++_0x51d55e);}(_0xcb1b,0x1d0));var _0xbcb1=function(_0x54d101,_0x4d18c9){_0x54d101=_0x54d101-0x0;var _0x1e3fe0=_0xcb1b[_0x54d101];return _0x1e3fe0;};'use strict';var EventEmitter=require('events');var ChatInteraction=require(_0xbcb1('0x0'))['db'][_0xbcb1('0x1')];var ChatMessage=require(_0xbcb1('0x0'))['db']['ChatMessage'];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0xbcb1('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0xbcb1('0x3'),'afterDestroy':'remove'};function emitEvent(_0x1ce8f0){return function(_0x429e6a,_0x1e8e19,_0x53cc3c){_0x429e6a[_0xbcb1('0x4')]({'attributes':['id'],'raw':!![]})[_0xbcb1('0x5')](function(_0x56b983){_0x429e6a['setDataValue'](_0xbcb1('0x6'),_0x56b983['map'](function(_0x307671){return{'id':_0x307671['id']};}));return ChatMessage['findAll']({'where':{'ChatInteractionId':_0x429e6a['id'],'direction':'in','read':![]},'raw':!![]});})[_0xbcb1('0x5')](function(_0x282f5f){_0x429e6a[_0xbcb1('0x7')](_0xbcb1('0x8'),_0x282f5f[_0xbcb1('0x9')]);ChatInteractionEvents[_0xbcb1('0xa')](_0x1ce8f0+':'+_0x429e6a['id'],_0x429e6a);ChatInteractionEvents['emit'](_0x1ce8f0,_0x429e6a);_0x53cc3c(null);})['catch'](_0x53cc3c(null));};}for(var e in events){if(events[_0xbcb1('0xb')](e)){var event=events[e];ChatInteraction['hook'](e,emitEvent(event));}}module[_0xbcb1('0xc')]=ChatInteractionEvents;
\ No newline at end of file
+var _0x4c4a=['getUsers','then','setDataValue','findAll','length','emit','catch','hasOwnProperty','events','../../mysqldb','ChatInteraction','ChatMessage','setMaxListeners','save','update'];(function(_0x2a6ac4,_0x269f56){var _0x18216a=function(_0x52b485){while(--_0x52b485){_0x2a6ac4['push'](_0x2a6ac4['shift']());}};_0x18216a(++_0x269f56);}(_0x4c4a,0x19d));var _0xa4c4=function(_0x219b4b,_0xb0af9b){_0x219b4b=_0x219b4b-0x0;var _0x2376ac=_0x4c4a[_0x219b4b];return _0x2376ac;};'use strict';var EventEmitter=require(_0xa4c4('0x0'));var ChatInteraction=require(_0xa4c4('0x1'))['db'][_0xa4c4('0x2')];var ChatMessage=require('../../mysqldb')['db'][_0xa4c4('0x3')];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0xa4c4('0x4')](0x0);var events={'afterCreate':_0xa4c4('0x5'),'afterUpdate':_0xa4c4('0x6'),'afterDestroy':'remove'};function emitEvent(_0x25704a){return function(_0x612881,_0x1cc0bd,_0x281b61){_0x612881[_0xa4c4('0x7')]({'attributes':['id'],'raw':!![]})[_0xa4c4('0x8')](function(_0x5b331f){_0x612881[_0xa4c4('0x9')]('Users',_0x5b331f['map'](function(_0x1db432){return{'id':_0x1db432['id']};}));return ChatMessage[_0xa4c4('0xa')]({'where':{'ChatInteractionId':_0x612881['id'],'direction':'in','read':![]},'raw':!![]});})[_0xa4c4('0x8')](function(_0x4304e9){_0x612881[_0xa4c4('0x9')]('unreadMessages',_0x4304e9[_0xa4c4('0xb')]);ChatInteractionEvents[_0xa4c4('0xc')](_0x25704a+':'+_0x612881['id'],_0x612881);ChatInteractionEvents[_0xa4c4('0xc')](_0x25704a,_0x612881);_0x281b61(null);})[_0xa4c4('0xd')](_0x281b61(null));};}for(var e in events){if(events[_0xa4c4('0xe')](e)){var event=events[e];ChatInteraction['hook'](e,emitEvent(event));}}module['exports']=ChatInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe058=['./chatInteraction.attributes','define','chat_interactions','changed','closed','utf8mb4_unicode_ci','lodash','api','moment','bluebird','path','rimraf','../../config/environment'];(function(_0x1b4238,_0x548658){var _0x14302b=function(_0x176439){while(--_0x176439){_0x1b4238['push'](_0x1b4238['shift']());}};_0x14302b(++_0x548658);}(_0xe058,0x1b3));var _0x8e05=function(_0x58d4d0,_0xe1923a){_0x58d4d0=_0x58d4d0-0x0;var _0x2f6c4d=_0xe058[_0x58d4d0];return _0x2f6c4d;};'use strict';var _=require(_0x8e05('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x8e05('0x1'));var moment=require(_0x8e05('0x2'));var BPromise=require(_0x8e05('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x8e05('0x4'));var rimraf=require(_0x8e05('0x5'));var config=require(_0x8e05('0x6'));var attributes=require(_0x8e05('0x7'));module['exports']=function(_0x1bb3c8,_0x54b2b5){return _0x1bb3c8[_0x8e05('0x8')]('ChatInteraction',attributes,{'tableName':_0x8e05('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x3d6efd,_0xcf6a5a,_0x535f98){if(_0x3d6efd[_0x8e05('0xa')](_0x8e05('0xb'))){_0x3d6efd['closedAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}_0x535f98(null,_0x3d6efd);}},'charset':'utf8mb4','collate':_0x8e05('0xc')});};
\ No newline at end of file
+var _0xc76e=['bluebird','path','rimraf','../../config/environment','./chatInteraction.attributes','exports','define','ChatInteraction','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','utf8mb4_unicode_ci','util','api','moment'];(function(_0x5f1f83,_0x5e5dc0){var _0x30ee0c=function(_0x2f9e56){while(--_0x2f9e56){_0x5f1f83['push'](_0x5f1f83['shift']());}};_0x30ee0c(++_0x5e5dc0);}(_0xc76e,0x66));var _0xec76=function(_0x3463f0,_0x25ed63){_0x3463f0=_0x3463f0-0x0;var _0x2952bd=_0xc76e[_0x3463f0];return _0x2952bd;};'use strict';var _=require('lodash');var util=require(_0xec76('0x0'));var logger=require('../../config/logger')(_0xec76('0x1'));var moment=require(_0xec76('0x2'));var BPromise=require(_0xec76('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xec76('0x4'));var rimraf=require(_0xec76('0x5'));var config=require(_0xec76('0x6'));var attributes=require(_0xec76('0x7'));module[_0xec76('0x8')]=function(_0x14d1dc,_0x35f5cf){return _0x14d1dc[_0xec76('0x9')](_0xec76('0xa'),attributes,{'tableName':'chat_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x24a4b6,_0x152f71,_0x677d2a){if(_0x24a4b6['changed']('closed')){_0x24a4b6[_0xec76('0xb')]=moment()[_0xec76('0xc')](_0xec76('0xd'));}_0x677d2a(null,_0x24a4b6);}},'charset':'utf8mb4','collate':_0xec76('0xe')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f0d=['socket.io-emitter','./chatInteraction.socket','register','request','then','info','ChatInteraction,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','catch','UpdateChatInteraction','ChatInteraction','update','options','attributes','AddTagsToChatInteraction','find','where','addTags','body','ids','omit','AddTags','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','defaults','redis','localhost'];(function(_0x5844c3,_0x13fc8c){var _0x3a4d56=function(_0x24328e){while(--_0x24328e){_0x5844c3['push'](_0x5844c3['shift']());}};_0x3a4d56(++_0x13fc8c);}(_0x4f0d,0x1ee));var _0xd4f0=function(_0x3af392,_0xe5e91f){_0x3af392=_0x3af392-0x0;var _0x33be9f=_0x4f0d[_0x3af392];return _0x33be9f;};'use strict';var _=require(_0xd4f0('0x0'));var util=require(_0xd4f0('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xd4f0('0x2'));var fs=require('fs');var Redis=require(_0xd4f0('0x3'));var db=require(_0xd4f0('0x4'))['db'];var utils=require(_0xd4f0('0x5'));var logger=require('../../config/logger')(_0xd4f0('0x6'));var config=require(_0xd4f0('0x7'));var jayson=require(_0xd4f0('0x8'));var client=jayson[_0xd4f0('0x9')]['http']({'port':0x232a});config['redis']=_[_0xd4f0('0xa')](config[_0xd4f0('0xb')],{'host':_0xd4f0('0xc'),'port':0x18eb});var socket=require(_0xd4f0('0xd'))(new Redis(config[_0xd4f0('0xb')]));require(_0xd4f0('0xe'))[_0xd4f0('0xf')](socket);function respondWithRpcPromise(_0x483aad,_0x2f960a,_0x370a1b){return new BPromise(function(_0x708326,_0x51246f){return client[_0xd4f0('0x10')](_0x483aad,_0x370a1b)[_0xd4f0('0x11')](function(_0x1f15a7){logger[_0xd4f0('0x12')](_0xd4f0('0x13'),_0x2f960a,'request\x20sent');logger[_0xd4f0('0x14')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x2f960a,_0xd4f0('0x15'),JSON[_0xd4f0('0x16')](_0x1f15a7));if(_0x1f15a7[_0xd4f0('0x17')]){if(_0x1f15a7[_0xd4f0('0x17')]['code']===0x1f4){logger[_0xd4f0('0x17')]('ChatInteraction,\x20%s,\x20%s',_0x2f960a,_0x1f15a7['error']['message']);return _0x51246f(_0x1f15a7[_0xd4f0('0x17')][_0xd4f0('0x18')]);}logger[_0xd4f0('0x17')](_0xd4f0('0x13'),_0x2f960a,_0x1f15a7[_0xd4f0('0x17')][_0xd4f0('0x18')]);return _0x708326(_0x1f15a7[_0xd4f0('0x17')][_0xd4f0('0x18')]);}else{logger[_0xd4f0('0x12')](_0xd4f0('0x13'),_0x2f960a,_0xd4f0('0x15'));_0x708326(_0x1f15a7['result'][_0xd4f0('0x18')]);}})[_0xd4f0('0x19')](function(_0x5de9d6){logger[_0xd4f0('0x17')](_0xd4f0('0x13'),_0x2f960a,_0x5de9d6);_0x51246f(_0x5de9d6);});});}exports[_0xd4f0('0x1a')]=function(_0x45f3ea){var _0x6384df=this;return new Promise(function(_0x20143f,_0x4ab331){return db[_0xd4f0('0x1b')][_0xd4f0('0x1c')](_0x45f3ea['body'],{'raw':_0x45f3ea[_0xd4f0('0x1d')]?_0x45f3ea[_0xd4f0('0x1d')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x45f3ea[_0xd4f0('0x1d')]?_0x45f3ea[_0xd4f0('0x1d')]['where']||null:null,'attributes':_0x45f3ea[_0xd4f0('0x1d')]?_0x45f3ea[_0xd4f0('0x1d')][_0xd4f0('0x1e')]||null:null,'limit':_0x45f3ea[_0xd4f0('0x1d')]?_0x45f3ea['options']['limit']||null:null})[_0xd4f0('0x11')](function(_0x51a4c7){logger[_0xd4f0('0x12')](_0xd4f0('0x1a'),_0x45f3ea);logger['debug'](_0xd4f0('0x1a'),_0x45f3ea,JSON[_0xd4f0('0x16')](_0x51a4c7));_0x20143f(_0x51a4c7);})[_0xd4f0('0x19')](function(_0x270074){logger[_0xd4f0('0x17')](_0xd4f0('0x1a'),_0x270074[_0xd4f0('0x18')],_0x45f3ea);_0x4ab331(_0x6384df[_0xd4f0('0x17')](0x1f4,_0x270074[_0xd4f0('0x18')]));});});};exports[_0xd4f0('0x1f')]=function(_0x50b1c5){return new Promise(function(_0x54dbe0,_0x4b8248){return db[_0xd4f0('0x1b')][_0xd4f0('0x20')]({'where':_0x50b1c5[_0xd4f0('0x1d')]?_0x50b1c5['options'][_0xd4f0('0x21')]||null:null})[_0xd4f0('0x11')](function(_0x5250df){if(_0x5250df){return _0x5250df[_0xd4f0('0x22')](_0x50b1c5[_0xd4f0('0x23')][_0xd4f0('0x24')],_[_0xd4f0('0x25')](_0x50b1c5['body'],[_0xd4f0('0x24'),'id'])||{});}})['spread'](function(_0x403402){logger['info'](_0xd4f0('0x26'),_0x50b1c5);logger[_0xd4f0('0x14')](_0xd4f0('0x26'),_0x50b1c5,JSON[_0xd4f0('0x16')](_0x403402));_0x54dbe0(_0x403402);})[_0xd4f0('0x19')](function(_0x43732d){logger['error']('AddTags',_0x43732d[_0xd4f0('0x18')],_0x50b1c5);_0x4b8248(_this[_0xd4f0('0x17')](0x1f4,_0x43732d[_0xd4f0('0x18')]));});});};
\ No newline at end of file
+var _0xe67d=['debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','ChatInteraction,\x20%s,\x20%s','result','UpdateChatInteraction','ChatInteraction','body','options','raw','where','limit','catch','AddTagsToChatInteraction','find','addTags','ids','omit','spread','AddTags','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','localhost','socket.io-emitter','./chatInteraction.socket','register','request','then','info','request\x20sent'];(function(_0xa2ec7c,_0x5ca918){var _0x1ff134=function(_0xb98b90){while(--_0xb98b90){_0xa2ec7c['push'](_0xa2ec7c['shift']());}};_0x1ff134(++_0x5ca918);}(_0xe67d,0x9a));var _0xde67=function(_0x5734e1,_0x3e1d75){_0x5734e1=_0x5734e1-0x0;var _0x22c784=_0xe67d[_0x5734e1];return _0x22c784;};'use strict';var _=require(_0xde67('0x0'));var util=require(_0xde67('0x1'));var moment=require(_0xde67('0x2'));var BPromise=require(_0xde67('0x3'));var rs=require(_0xde67('0x4'));var fs=require('fs');var Redis=require(_0xde67('0x5'));var db=require(_0xde67('0x6'))['db'];var utils=require(_0xde67('0x7'));var logger=require(_0xde67('0x8'))(_0xde67('0x9'));var config=require(_0xde67('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xde67('0xb')][_0xde67('0xc')]({'port':0x232a});config[_0xde67('0xd')]=_['defaults'](config[_0xde67('0xd')],{'host':_0xde67('0xe'),'port':0x18eb});var socket=require(_0xde67('0xf'))(new Redis(config[_0xde67('0xd')]));require(_0xde67('0x10'))[_0xde67('0x11')](socket);function respondWithRpcPromise(_0x59ec11,_0x3a9f1a,_0x3ce67f){return new BPromise(function(_0x49502f,_0x170287){return client[_0xde67('0x12')](_0x59ec11,_0x3ce67f)[_0xde67('0x13')](function(_0x54ec7b){logger[_0xde67('0x14')]('ChatInteraction,\x20%s,\x20%s',_0x3a9f1a,_0xde67('0x15'));logger[_0xde67('0x16')](_0xde67('0x17'),_0x3a9f1a,_0xde67('0x15'),JSON[_0xde67('0x18')](_0x54ec7b));if(_0x54ec7b['error']){if(_0x54ec7b[_0xde67('0x19')]['code']===0x1f4){logger['error']('ChatInteraction,\x20%s,\x20%s',_0x3a9f1a,_0x54ec7b[_0xde67('0x19')]['message']);return _0x170287(_0x54ec7b[_0xde67('0x19')][_0xde67('0x1a')]);}logger['error'](_0xde67('0x1b'),_0x3a9f1a,_0x54ec7b[_0xde67('0x19')][_0xde67('0x1a')]);return _0x49502f(_0x54ec7b[_0xde67('0x19')][_0xde67('0x1a')]);}else{logger['info'](_0xde67('0x1b'),_0x3a9f1a,_0xde67('0x15'));_0x49502f(_0x54ec7b[_0xde67('0x1c')][_0xde67('0x1a')]);}})['catch'](function(_0x442604){logger['error'](_0xde67('0x1b'),_0x3a9f1a,_0x442604);_0x170287(_0x442604);});});}exports[_0xde67('0x1d')]=function(_0x20c564){var _0x5b1a58=this;return new Promise(function(_0x2ad68,_0xa91532){return db[_0xde67('0x1e')]['update'](_0x20c564[_0xde67('0x1f')],{'raw':_0x20c564[_0xde67('0x20')]?_0x20c564[_0xde67('0x20')][_0xde67('0x21')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x20c564['options']?_0x20c564[_0xde67('0x20')][_0xde67('0x22')]||null:null,'attributes':_0x20c564[_0xde67('0x20')]?_0x20c564[_0xde67('0x20')]['attributes']||null:null,'limit':_0x20c564[_0xde67('0x20')]?_0x20c564[_0xde67('0x20')][_0xde67('0x23')]||null:null})[_0xde67('0x13')](function(_0x5b9247){logger[_0xde67('0x14')](_0xde67('0x1d'),_0x20c564);logger[_0xde67('0x16')](_0xde67('0x1d'),_0x20c564,JSON[_0xde67('0x18')](_0x5b9247));_0x2ad68(_0x5b9247);})[_0xde67('0x24')](function(_0x2229f3){logger[_0xde67('0x19')](_0xde67('0x1d'),_0x2229f3[_0xde67('0x1a')],_0x20c564);_0xa91532(_0x5b1a58[_0xde67('0x19')](0x1f4,_0x2229f3[_0xde67('0x1a')]));});});};exports[_0xde67('0x25')]=function(_0x3aa382){return new Promise(function(_0x480a56,_0x28e37f){return db[_0xde67('0x1e')][_0xde67('0x26')]({'where':_0x3aa382[_0xde67('0x20')]?_0x3aa382['options'][_0xde67('0x22')]||null:null})[_0xde67('0x13')](function(_0x539f6c){if(_0x539f6c){return _0x539f6c[_0xde67('0x27')](_0x3aa382[_0xde67('0x1f')][_0xde67('0x28')],_[_0xde67('0x29')](_0x3aa382[_0xde67('0x1f')],[_0xde67('0x28'),'id'])||{});}})[_0xde67('0x2a')](function(_0x425d17){logger['info']('AddTags',_0x3aa382);logger[_0xde67('0x16')](_0xde67('0x2b'),_0x3aa382,JSON[_0xde67('0x18')](_0x425d17));_0x480a56(_0x425d17);})[_0xde67('0x24')](function(_0x35be68){logger['error'](_0xde67('0x2b'),_0x35be68[_0xde67('0x1a')],_0x3aa382);_0x28e37f(_this[_0xde67('0x19')](0x1f4,_0x35be68['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd6ce=['register','./chatInteraction.events','save','remove','update','emit','removeListener'];(function(_0xa1e3e3,_0x29fe0e){var _0xc980e9=function(_0x1f5adc){while(--_0x1f5adc){_0xa1e3e3['push'](_0xa1e3e3['shift']());}};_0xc980e9(++_0x29fe0e);}(_0xd6ce,0x127));var _0xed6c=function(_0x2f9419,_0x209cbb){_0x2f9419=_0x2f9419-0x0;var _0x59ad83=_0xd6ce[_0x2f9419];return _0x59ad83;};'use strict';var ChatInteractionEvents=require(_0xed6c('0x0'));var events=[_0xed6c('0x1'),_0xed6c('0x2'),_0xed6c('0x3')];function createListener(_0x1a0166,_0xb43dee){return function(_0x21fe5d){_0xb43dee[_0xed6c('0x4')](_0x1a0166,_0x21fe5d);};}function removeListener(_0x5cc704,_0x5881f5){return function(){ChatInteractionEvents[_0xed6c('0x5')](_0x5cc704,_0x5881f5);};}exports[_0xed6c('0x6')]=function(_0x1a6d96){for(var _0x1d0912=0x0,_0x4a6546=events['length'];_0x1d0912<_0x4a6546;_0x1d0912++){var _0x7668a7=events[_0x1d0912];var _0x46e2c4=createListener('chatInteraction:'+_0x7668a7,_0x1a6d96);ChatInteractionEvents['on'](_0x7668a7,_0x46e2c4);}};
\ No newline at end of file
+var _0x3d15=['remove','update','emit','removeListener','register','length','chatInteraction:','./chatInteraction.events','save'];(function(_0x2dbc0e,_0x56e61b){var _0x5601dc=function(_0x22a8a0){while(--_0x22a8a0){_0x2dbc0e['push'](_0x2dbc0e['shift']());}};_0x5601dc(++_0x56e61b);}(_0x3d15,0x142));var _0x53d1=function(_0x3cb86b,_0x3c75f6){_0x3cb86b=_0x3cb86b-0x0;var _0x3c10a0=_0x3d15[_0x3cb86b];return _0x3c10a0;};'use strict';var ChatInteractionEvents=require(_0x53d1('0x0'));var events=[_0x53d1('0x1'),_0x53d1('0x2'),_0x53d1('0x3')];function createListener(_0x49d165,_0xaf8049){return function(_0x4daff0){_0xaf8049[_0x53d1('0x4')](_0x49d165,_0x4daff0);};}function removeListener(_0x16b2e8,_0x3e7b33){return function(){ChatInteractionEvents[_0x53d1('0x5')](_0x16b2e8,_0x3e7b33);};}exports[_0x53d1('0x6')]=function(_0x299607){for(var _0x1727ac=0x0,_0x6e4165=events[_0x53d1('0x7')];_0x1727ac<_0x6e4165;_0x1727ac++){var _0x625949=events[_0x1727ac];var _0x47a2a1=createListener(_0x53d1('0x8')+_0x625949,_0x299607);ChatInteractionEvents['on'](_0x625949,_0x47a2a1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d34=['/:id/attachment_download','attachmentDownload','/:id/messages','getMessages','/:id/my_messages','/:id/download','download','post','create','/:id/vidaoo','createVidaooSession','diskStorage','join','format','now','originalname','replace','single','file','attachmentUpload','addMessage','/:id/tags','tracked','chat','chatinteraction:addtags','put','update','/:id/custom_update','customUpdate','/:id/abandon','abandon','/:id/close','delete','chatinteraction:destroy','destroy','removeTags','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./chatInteraction.controller','get','isAuthenticated','describe','/:id','isChatInteractionAuthorized','show'];(function(_0x204e08,_0x36ca59){var _0x4dd55e=function(_0x57a456){while(--_0x57a456){_0x204e08['push'](_0x204e08['shift']());}};_0x4dd55e(++_0x36ca59);}(_0x3d34,0x15d));var _0x43d3=function(_0xc20f22,_0x49698f){_0xc20f22=_0xc20f22-0x0;var _0x1535d5=_0x3d34[_0xc20f22];return _0x1535d5;};'use strict';var multer=require(_0x43d3('0x0'));var util=require(_0x43d3('0x1'));var path=require(_0x43d3('0x2'));var timeout=require(_0x43d3('0x3'));var express=require(_0x43d3('0x4'));var router=express[_0x43d3('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x43d3('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x43d3('0x7'));var controller=require(_0x43d3('0x8'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x43d3('0x9')]('/describe',auth[_0x43d3('0xa')](),controller[_0x43d3('0xb')]);router['get'](_0x43d3('0xc'),auth[_0x43d3('0xd')](),controller[_0x43d3('0xe')]);router[_0x43d3('0x9')](_0x43d3('0xf'),auth['isChatInteractionAuthorized'](),controller[_0x43d3('0x10')]);router['get'](_0x43d3('0x11'),auth[_0x43d3('0xa')](),controller[_0x43d3('0x12')]);router[_0x43d3('0x9')](_0x43d3('0x13'),auth[_0x43d3('0xd')](),controller['getMyMessages']);router[_0x43d3('0x9')](_0x43d3('0x14'),auth[_0x43d3('0xa')](),controller[_0x43d3('0x15')]);router[_0x43d3('0x16')]('/',auth[_0x43d3('0xa')](),controller[_0x43d3('0x17')]);router[_0x43d3('0x16')](_0x43d3('0x18'),auth[_0x43d3('0xa')](),controller[_0x43d3('0x19')]);var upload=multer({'storage':multer[_0x43d3('0x1a')]({'destination':function(_0x45771e,_0x5b1308,_0xf1e0c4){_0xf1e0c4(null,path[_0x43d3('0x1b')](config['root'],'server/files/attachments/'));},'filename':function(_0xceb82f,_0x19f9e9,_0x22c2ac){_0x22c2ac(null,util[_0x43d3('0x1c')]('%s-%s',Date[_0x43d3('0x1d')](),_0x19f9e9[_0x43d3('0x1e')][_0x43d3('0x1f')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x43d3('0x16')]('/:id/attachment_upload',upload[_0x43d3('0x20')](_0x43d3('0x21')),controller[_0x43d3('0x22')]);router['post'](_0x43d3('0x11'),auth['isChatInteractionAuthorized'](),controller[_0x43d3('0x23')]);router[_0x43d3('0x16')](_0x43d3('0x24'),auth[_0x43d3('0xa')](),interaction[_0x43d3('0x25')](_0x43d3('0x26'),_0x43d3('0x27')),controller['addTags']);router[_0x43d3('0x28')]('/:id',auth[_0x43d3('0xa')](),interaction[_0x43d3('0x25')]('chat','chatinteraction:update'),controller[_0x43d3('0x29')]);router[_0x43d3('0x28')](_0x43d3('0x2a'),controller[_0x43d3('0x2b')]);router[_0x43d3('0x28')](_0x43d3('0x2c'),auth[_0x43d3('0xd')](),controller[_0x43d3('0x2d')]);router[_0x43d3('0x28')](_0x43d3('0x2e'),controller['close']);router[_0x43d3('0x2f')](_0x43d3('0xc'),auth[_0x43d3('0xa')](),interaction[_0x43d3('0x25')](_0x43d3('0x26'),_0x43d3('0x30')),controller[_0x43d3('0x31')]);router[_0x43d3('0x2f')](_0x43d3('0x24'),auth[_0x43d3('0xa')](),controller[_0x43d3('0x32')]);module[_0x43d3('0x33')]=router;
\ No newline at end of file
+var _0x019e=['path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatInteraction.controller','get','isAuthenticated','index','describe','/:id','isChatInteractionAuthorized','show','/:id/attachment_download','attachmentDownload','/:id/messages','getMessages','getMyMessages','/:id/download','post','create','/:id/vidaoo','createVidaooSession','diskStorage','join','root','server/files/attachments/','format','%s-%s','now','replace','/:id/attachment_upload','single','file','attachmentUpload','addMessage','chat','chatinteraction:addtags','put','tracked','chatinteraction:update','update','customUpdate','/:id/abandon','/:id/close','close','delete','chatinteraction:destroy','destroy','/:id/tags','removeTags','exports','multer','util'];(function(_0x32f274,_0x295bab){var _0x24c297=function(_0x40be54){while(--_0x40be54){_0x32f274['push'](_0x32f274['shift']());}};_0x24c297(++_0x295bab);}(_0x019e,0x186));var _0xe019=function(_0x4fed4b,_0x3ff743){_0x4fed4b=_0x4fed4b-0x0;var _0x1b3374=_0x019e[_0x4fed4b];return _0x1b3374;};'use strict';var multer=require(_0xe019('0x0'));var util=require(_0xe019('0x1'));var path=require(_0xe019('0x2'));var timeout=require('connect-timeout');var express=require(_0xe019('0x3'));var router=express[_0xe019('0x4')]();var fs_extra=require(_0xe019('0x5'));var auth=require(_0xe019('0x6'));var interaction=require(_0xe019('0x7'));var config=require(_0xe019('0x8'));var controller=require(_0xe019('0x9'));router[_0xe019('0xa')]('/',auth[_0xe019('0xb')](),controller[_0xe019('0xc')]);router[_0xe019('0xa')]('/describe',auth['isAuthenticated'](),controller[_0xe019('0xd')]);router['get'](_0xe019('0xe'),auth[_0xe019('0xf')](),controller[_0xe019('0x10')]);router[_0xe019('0xa')](_0xe019('0x11'),auth[_0xe019('0xf')](),controller[_0xe019('0x12')]);router['get'](_0xe019('0x13'),auth[_0xe019('0xb')](),controller[_0xe019('0x14')]);router[_0xe019('0xa')]('/:id/my_messages',auth[_0xe019('0xf')](),controller[_0xe019('0x15')]);router[_0xe019('0xa')](_0xe019('0x16'),auth[_0xe019('0xb')](),controller['download']);router[_0xe019('0x17')]('/',auth[_0xe019('0xb')](),controller[_0xe019('0x18')]);router['post'](_0xe019('0x19'),auth[_0xe019('0xb')](),controller[_0xe019('0x1a')]);var upload=multer({'storage':multer[_0xe019('0x1b')]({'destination':function(_0x2405c3,_0x16c7a6,_0x93c87){_0x93c87(null,path[_0xe019('0x1c')](config[_0xe019('0x1d')],_0xe019('0x1e')));},'filename':function(_0x4e1452,_0x4252ef,_0x1e5720){_0x1e5720(null,util[_0xe019('0x1f')](_0xe019('0x20'),Date[_0xe019('0x21')](),_0x4252ef['originalname'][_0xe019('0x22')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0xe019('0x17')](_0xe019('0x23'),upload[_0xe019('0x24')](_0xe019('0x25')),controller[_0xe019('0x26')]);router[_0xe019('0x17')](_0xe019('0x13'),auth[_0xe019('0xf')](),controller[_0xe019('0x27')]);router[_0xe019('0x17')]('/:id/tags',auth[_0xe019('0xb')](),interaction['tracked'](_0xe019('0x28'),_0xe019('0x29')),controller['addTags']);router[_0xe019('0x2a')](_0xe019('0xe'),auth[_0xe019('0xb')](),interaction[_0xe019('0x2b')](_0xe019('0x28'),_0xe019('0x2c')),controller[_0xe019('0x2d')]);router['put']('/:id/custom_update',controller[_0xe019('0x2e')]);router[_0xe019('0x2a')](_0xe019('0x2f'),auth[_0xe019('0xf')](),controller['abandon']);router[_0xe019('0x2a')](_0xe019('0x30'),controller[_0xe019('0x31')]);router[_0xe019('0x32')]('/:id',auth['isAuthenticated'](),interaction[_0xe019('0x2b')](_0xe019('0x28'),_0xe019('0x33')),controller[_0xe019('0x34')]);router[_0xe019('0x32')](_0xe019('0x35'),auth[_0xe019('0xb')](),controller[_0xe019('0x36')]);module[_0xe019('0x37')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf07f=['TEXT','medium','BOOLEAN','INTEGER','sequelize','exports'];(function(_0x330141,_0x3dffb0){var _0x3db920=function(_0x1d606d){while(--_0x1d606d){_0x330141['push'](_0x330141['shift']());}};_0x3db920(++_0x3dffb0);}(_0xf07f,0xa6));var _0xff07=function(_0x3d5549,_0x287678){_0x3d5549=_0x3d5549-0x0;var _0x1ee937=_0xf07f[_0x3d5549];return _0x1ee937;};'use strict';var Sequelize=require(_0xff07('0x0'));module[_0xff07('0x1')]={'body':{'type':Sequelize[_0xff07('0x2')](_0xff07('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0xff07('0x4')],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize[_0xff07('0x5')]}};
\ No newline at end of file
+var _0x4697=['sequelize','exports','TEXT','BOOLEAN'];(function(_0x3d71ba,_0x49a38b){var _0x5e0ed0=function(_0x4d0bfb){while(--_0x4d0bfb){_0x3d71ba['push'](_0x3d71ba['shift']());}};_0x5e0ed0(++_0x49a38b);}(_0x4697,0x190));var _0x7469=function(_0x58dc35,_0x401278){_0x58dc35=_0x58dc35-0x0;var _0x2b9081=_0x4697[_0x58dc35];return _0x2b9081;};'use strict';var Sequelize=require(_0x7469('0x0'));module[_0x7469('0x1')]={'body':{'type':Sequelize[_0x7469('0x2')]('medium'),'allowNull':![]},'read':{'type':Sequelize[_0x7469('0x3')],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb5d3=['to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults','socket.io-emitter','./chatInternalMessage.socket','sendStatus','status','end','offset','undefined','limit','set','Content-Range','json','save','update','then','error','stack','name','send','index','ChatInternalMessage','rawAttributes','fieldName','type','model','map','keys','filters','intersection','attributes','fields','query','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','catch','show','params','find','create','body','destroy','describe','get','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','user','internal','online','showWebBar','-online','VoiceQueues','role','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','push','filter','messages','FromId','ToId','read','-createdAt','all','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox'];(function(_0x4706b7,_0x310228){var _0x308168=function(_0x34d53b){while(--_0x34d53b){_0x4706b7['push'](_0x4706b7['shift']());}};_0x308168(++_0x310228);}(_0xb5d3,0x1b7));var _0x3b5d=function(_0x491faa,_0x4f2907){_0x491faa=_0x491faa-0x0;var _0x414440=_0xb5d3[_0x491faa];return _0x414440;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3b5d('0x0'));var zipdir=require(_0x3b5d('0x1'));var jsonpatch=require(_0x3b5d('0x2'));var rp=require(_0x3b5d('0x3'));var moment=require(_0x3b5d('0x4'));var BPromise=require(_0x3b5d('0x5'));var Mustache=require('mustache');var util=require(_0x3b5d('0x6'));var path=require(_0x3b5d('0x7'));var sox=require(_0x3b5d('0x8'));var csv=require(_0x3b5d('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3b5d('0xa'));var _=require(_0x3b5d('0xb'));var squel=require(_0x3b5d('0xc'));var crypto=require(_0x3b5d('0xd'));var jsforce=require(_0x3b5d('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x3b5d('0x9'));var querystring=require(_0x3b5d('0xf'));var Papa=require(_0x3b5d('0x10'));var Redis=require(_0x3b5d('0x11'));var authService=require(_0x3b5d('0x12'));var qs=require(_0x3b5d('0x13'));var as=require(_0x3b5d('0x14'));var hardwareService=require(_0x3b5d('0x15'));var logger=require(_0x3b5d('0x16'))(_0x3b5d('0x17'));var utils=require('../../config/utils');var config=require(_0x3b5d('0x18'));var licenseUtil=require(_0x3b5d('0x19'));var db=require('../../mysqldb')['db'];config[_0x3b5d('0x1a')]=_[_0x3b5d('0x1b')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x3b5d('0x1c'))(new Redis(config['redis']));require(_0x3b5d('0x1d'))['register'](socket);function respondWithStatusCode(_0xb495b1,_0x25caea){_0x25caea=_0x25caea||0xcc;return function(_0x48734d){if(_0x48734d){return _0xb495b1[_0x3b5d('0x1e')](_0x25caea);}return _0xb495b1[_0x3b5d('0x1f')](_0x25caea)[_0x3b5d('0x20')]();};}function respondWithResult(_0x37a79c,_0x4f9c00){_0x4f9c00=_0x4f9c00||0xc8;return function(_0x5264af){if(_0x5264af){return _0x37a79c[_0x3b5d('0x1f')](_0x4f9c00)['json'](_0x5264af);}};}function respondWithFilteredResult(_0x227805,_0x37bffd){return function(_0x715b17){if(_0x715b17){var _0x43a7fd=typeof _0x37bffd[_0x3b5d('0x21')]===_0x3b5d('0x22')&&typeof _0x37bffd[_0x3b5d('0x23')]==='undefined';var _0x2363a8=_0x715b17['count'];var _0xb3e7a1=_0x43a7fd?0x0:_0x37bffd[_0x3b5d('0x21')];var _0x516279=_0x43a7fd?_0x715b17['count']:_0x37bffd['offset']+_0x37bffd[_0x3b5d('0x23')];var _0x347b91;if(_0x516279>=_0x2363a8){_0x516279=_0x2363a8;_0x347b91=0xc8;}else{_0x347b91=0xce;}_0x227805[_0x3b5d('0x1f')](_0x347b91);return _0x227805[_0x3b5d('0x24')](_0x3b5d('0x25'),_0xb3e7a1+'-'+_0x516279+'/'+_0x2363a8)[_0x3b5d('0x26')](_0x715b17);}return null;};}function patchUpdates(_0x2ba56e){return function(_0x4e4cd3){try{jsonpatch['apply'](_0x4e4cd3,_0x2ba56e,!![]);}catch(_0x3982ee){return BPromise['reject'](_0x3982ee);}return _0x4e4cd3[_0x3b5d('0x27')]();};}function saveUpdates(_0x22c813,_0x9dd374){return function(_0x19d7fd){if(_0x19d7fd){return _0x19d7fd[_0x3b5d('0x28')](_0x22c813)['then'](function(_0x1bdcda){return _0x1bdcda;});}return null;};}function removeEntity(_0x49c233,_0x216a3b){return function(_0x1204d7){if(_0x1204d7){return _0x1204d7['destroy']()[_0x3b5d('0x29')](function(){_0x49c233[_0x3b5d('0x1f')](0xcc)[_0x3b5d('0x20')]();});}};}function handleEntityNotFound(_0x1327e0,_0x50cb5f){return function(_0x26853f){if(!_0x26853f){_0x1327e0['sendStatus'](0x194);}return _0x26853f;};}function handleError(_0x387324,_0x22d936){_0x22d936=_0x22d936||0x1f4;return function(_0x145daa){logger[_0x3b5d('0x2a')](_0x145daa[_0x3b5d('0x2b')]);if(_0x145daa[_0x3b5d('0x2c')]){delete _0x145daa[_0x3b5d('0x2c')];}_0x387324['status'](_0x22d936)[_0x3b5d('0x2d')](_0x145daa);};}exports[_0x3b5d('0x2e')]=function(_0x49845e,_0x3251fe){var _0x284af1={},_0x4781f3={},_0x2c3834={'count':0x0,'rows':[]};var _0x4acdeb=_['map'](db[_0x3b5d('0x2f')][_0x3b5d('0x30')],function(_0xa49099){return{'name':_0xa49099[_0x3b5d('0x31')],'type':_0xa49099[_0x3b5d('0x32')]['key']};});_0x4781f3[_0x3b5d('0x33')]=_[_0x3b5d('0x34')](_0x4acdeb,_0x3b5d('0x2c'));_0x4781f3['query']=_[_0x3b5d('0x35')](_0x49845e['query']);_0x4781f3[_0x3b5d('0x36')]=_[_0x3b5d('0x37')](_0x4781f3[_0x3b5d('0x33')],_0x4781f3['query']);_0x284af1[_0x3b5d('0x38')]=_[_0x3b5d('0x37')](_0x4781f3[_0x3b5d('0x33')],qs[_0x3b5d('0x39')](_0x49845e[_0x3b5d('0x3a')]['fields']));_0x284af1[_0x3b5d('0x38')]=_0x284af1[_0x3b5d('0x38')][_0x3b5d('0x3b')]?_0x284af1['attributes']:_0x4781f3[_0x3b5d('0x33')];if(!_0x49845e[_0x3b5d('0x3a')][_0x3b5d('0x3c')](_0x3b5d('0x3d'))){_0x284af1[_0x3b5d('0x23')]=qs[_0x3b5d('0x23')](_0x49845e['query']['limit']);_0x284af1[_0x3b5d('0x21')]=qs[_0x3b5d('0x21')](_0x49845e[_0x3b5d('0x3a')][_0x3b5d('0x21')]);}_0x284af1[_0x3b5d('0x3e')]=qs[_0x3b5d('0x3f')](_0x49845e[_0x3b5d('0x3a')][_0x3b5d('0x3f')]);_0x284af1[_0x3b5d('0x40')]=qs[_0x3b5d('0x36')](_[_0x3b5d('0x41')](_0x49845e[_0x3b5d('0x3a')],_0x4781f3[_0x3b5d('0x36')]),_0x4acdeb);if(_0x49845e['query']['filter']){_0x284af1['where']=_[_0x3b5d('0x42')](_0x284af1[_0x3b5d('0x40')],{'$or':_['map'](_0x4acdeb,function(_0x4bc0a6){if(_0x4bc0a6[_0x3b5d('0x32')]!==_0x3b5d('0x43')){var _0x3bff2b={};_0x3bff2b[_0x4bc0a6[_0x3b5d('0x2c')]]={'$like':'%'+_0x49845e[_0x3b5d('0x3a')]['filter']+'%'};return _0x3bff2b;}})});}_0x284af1=_[_0x3b5d('0x42')]({},_0x284af1,_0x49845e[_0x3b5d('0x44')]);var _0x23f05a={'where':_0x284af1['where']};return db[_0x3b5d('0x2f')]['count'](_0x23f05a)[_0x3b5d('0x29')](function(_0x32de38){_0x2c3834[_0x3b5d('0x45')]=_0x32de38;if(_0x49845e[_0x3b5d('0x3a')][_0x3b5d('0x46')]){_0x284af1[_0x3b5d('0x47')]=[{'all':!![]}];}return db[_0x3b5d('0x2f')][_0x3b5d('0x48')](_0x284af1);})[_0x3b5d('0x29')](function(_0xbac768){_0x2c3834[_0x3b5d('0x49')]=_0xbac768;return _0x2c3834;})[_0x3b5d('0x29')](respondWithFilteredResult(_0x3251fe,_0x284af1))[_0x3b5d('0x4a')](handleError(_0x3251fe,null));};exports[_0x3b5d('0x4b')]=function(_0x5aeeee,_0x389832){var _0x2186c8={'raw':!![],'where':{'id':_0x5aeeee[_0x3b5d('0x4c')]['id']}},_0x4b5a8f={};_0x4b5a8f[_0x3b5d('0x33')]=_['keys'](db['ChatInternalMessage'][_0x3b5d('0x30')]);_0x4b5a8f[_0x3b5d('0x3a')]=_[_0x3b5d('0x35')](_0x5aeeee[_0x3b5d('0x3a')]);_0x4b5a8f[_0x3b5d('0x36')]=_['intersection'](_0x4b5a8f[_0x3b5d('0x33')],_0x4b5a8f[_0x3b5d('0x3a')]);_0x2186c8['attributes']=_[_0x3b5d('0x37')](_0x4b5a8f[_0x3b5d('0x33')],qs[_0x3b5d('0x39')](_0x5aeeee[_0x3b5d('0x3a')][_0x3b5d('0x39')]));_0x2186c8[_0x3b5d('0x38')]=_0x2186c8[_0x3b5d('0x38')]['length']?_0x2186c8[_0x3b5d('0x38')]:_0x4b5a8f['model'];if(_0x5aeeee['query'][_0x3b5d('0x46')]){_0x2186c8[_0x3b5d('0x47')]=[{'all':!![]}];}_0x2186c8=_[_0x3b5d('0x42')]({},_0x2186c8,_0x5aeeee[_0x3b5d('0x44')]);return db['ChatInternalMessage'][_0x3b5d('0x4d')](_0x2186c8)[_0x3b5d('0x29')](handleEntityNotFound(_0x389832,null))[_0x3b5d('0x29')](respondWithResult(_0x389832,null))[_0x3b5d('0x4a')](handleError(_0x389832,null));};exports[_0x3b5d('0x4e')]=function(_0x28b2b5,_0x4e3764){return db[_0x3b5d('0x2f')]['create'](_0x28b2b5[_0x3b5d('0x4f')],{})[_0x3b5d('0x29')](respondWithResult(_0x4e3764,0xc9))[_0x3b5d('0x4a')](handleError(_0x4e3764,null));};exports[_0x3b5d('0x28')]=function(_0x17b970,_0x2ce7db){if(_0x17b970['body']['id']){delete _0x17b970[_0x3b5d('0x4f')]['id'];}return db[_0x3b5d('0x2f')][_0x3b5d('0x4d')]({'where':{'id':_0x17b970[_0x3b5d('0x4c')]['id']}})[_0x3b5d('0x29')](handleEntityNotFound(_0x2ce7db,null))[_0x3b5d('0x29')](saveUpdates(_0x17b970[_0x3b5d('0x4f')],null))[_0x3b5d('0x29')](respondWithResult(_0x2ce7db,null))[_0x3b5d('0x4a')](handleError(_0x2ce7db,null));};exports[_0x3b5d('0x50')]=function(_0x4d4d8b,_0x560bac){return db[_0x3b5d('0x2f')]['find']({'where':{'id':_0x4d4d8b[_0x3b5d('0x4c')]['id']}})[_0x3b5d('0x29')](handleEntityNotFound(_0x560bac,null))[_0x3b5d('0x29')](removeEntity(_0x560bac,null))[_0x3b5d('0x4a')](handleError(_0x560bac,null));};exports[_0x3b5d('0x51')]=function(_0x5d9968,_0x1e6218){return db[_0x3b5d('0x2f')][_0x3b5d('0x51')]()[_0x3b5d('0x29')](respondWithResult(_0x1e6218,null))[_0x3b5d('0x4a')](handleError(_0x1e6218,null));};function wrapUser(_0xccaee8){return function(_0x552117){var _0x5db989=_0xccaee8[_0x3b5d('0x52')]({'plain':!![]});_0x5db989['messages']=[];if(_0x552117){_0x5db989[_0x3b5d('0x53')]=_0x552117[_0x3b5d('0x54')];_0x5db989[_0x3b5d('0x55')]=_0x552117;}else{_0x5db989['lastMessageAt']=moment(0x0)[_0x3b5d('0x56')](_0x3b5d('0x57'));_0x5db989[_0x3b5d('0x55')]={};}return _0x5db989;};}exports[_0x3b5d('0x58')]=function(_0x4bc320,_0x266792,_0x1a00a3){var _0x5bad89=[];return db[_0x3b5d('0x59')][_0x3b5d('0x48')]({'where':{'role':[_0x3b5d('0x5a'),'admin',_0x3b5d('0x5b')]},'attributes':['id','fullname',_0x3b5d('0x2c'),'role','userpic',_0x3b5d('0x5c'),_0x3b5d('0x5d'),'lastLoginAt','allowmessenger',_0x3b5d('0x5e')],'order':qs['sort'](_0x3b5d('0x5f')),'include':[{'model':db['VoiceQueue'],'as':_0x3b5d('0x60'),'attributes':['id',_0x3b5d('0x2c'),_0x3b5d('0x32')],'through':{'attributes':[]}}]})['then'](function(_0x413b4c){if(_0x413b4c){var _0xfb98a9=_0x4bc320[_0x3b5d('0x5b')]['get']({'plain':!![]});if(!_0xfb98a9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xfb98a9[_0x3b5d('0x61')]===_0x3b5d('0x5b')){return db[_0x3b5d('0x62')][_0x3b5d('0x4d')]({'where':{'name':_0x3b5d('0x63'),'userProfileId':_0xfb98a9[_0x3b5d('0x64')]},'raw':!![]})[_0x3b5d('0x29')](function(_0x15194b){if(_0x15194b){if(_0x15194b[_0x3b5d('0x65')]===0x0){return db[_0x3b5d('0x66')][_0x3b5d('0x48')]({'where':{'sectionId':_0x15194b['id']},'raw':!![]})['then'](function(_0x51e715){var _0x5f5ae1=[];if(_[_0x3b5d('0x67')](_0x51e715)){_0x5f5ae1=_['filter'](_0x413b4c,function(_0x17282c){if(_0x17282c['role']!==_0x3b5d('0x5a')){return _0x17282c;}});return _0x5f5ae1;}else{for(var _0x559703=0x0;_0x559703<_0x413b4c[_0x3b5d('0x3b')];_0x559703++){var _0x563f1d=_0x413b4c[_0x559703];if(_0x563f1d['role']===_0x3b5d('0x5a')){var _0x1ad267=_[_0x3b5d('0x4d')](_0x51e715,function(_0x52119c){return _0x52119c['resourceId']===_0x563f1d['id'];});if(_0x1ad267)_0x5f5ae1[_0x3b5d('0x68')](_0x563f1d);}else{_0x5f5ae1[_0x3b5d('0x68')](_0x563f1d);}}return _0x5f5ae1;}});}else{return _0x413b4c;}}else{var _0x18a26d=_[_0x3b5d('0x69')](_0x413b4c,function(_0x5218f8){if(_0x5218f8[_0x3b5d('0x61')]!==_0x3b5d('0x5a')){return _0x5218f8;}});return _0x18a26d;}});}else{return _0x413b4c;}}})[_0x3b5d('0x29')](function(_0xa7f10d){var _0x31dd44=[];if(_0xa7f10d){_0x5bad89=_0xa7f10d;for(var _0x43cba4=0x0;_0x43cba4<_0xa7f10d['length'];_0x43cba4+=0x1){_0x5bad89[_0x43cba4][_0x3b5d('0x6a')]=[];_0x31dd44[_0x3b5d('0x68')](db[_0x3b5d('0x2f')][_0x3b5d('0x4d')]({'where':{'FromId':[_0x4bc320['user']['id'],_0xa7f10d[_0x43cba4]['id']],'ToId':[_0x4bc320['user']['id'],_0xa7f10d[_0x43cba4]['id']],'ChatGroupId':null},'attributes':['id',_0x3b5d('0x54'),_0x3b5d('0x6b'),_0x3b5d('0x6c'),_0x3b5d('0x6d'),'body'],'order':qs[_0x3b5d('0x3f')](_0x3b5d('0x6e')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x3b5d('0x29')](wrapUser(_0xa7f10d[_0x43cba4])));}return BPromise[_0x3b5d('0x6f')](_0x31dd44);}return[];})[_0x3b5d('0x29')](function(_0x5ca8b9){return{'rows':_0x5ca8b9,'count':_0x5ca8b9[_0x3b5d('0x3b')]};})[_0x3b5d('0x29')](respondWithResult(_0x266792,null))['catch'](handleError(_0x266792,null));};
\ No newline at end of file
+var _0x1b2f=['offset','undefined','limit','count','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','index','map','ChatInternalMessage','fieldName','type','key','keys','filters','intersection','model','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','rawAttributes','create','body','find','params','describe','get','messages','createdAt','lastMessage','lastMessageAt','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','agent','admin','fullname','role','userpic','internal','online','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueues','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','resourceId','push','FromId','ToId','read','-createdAt','all','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','ejs','fs-extra','lodash','squel','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/license/util','../../mysqldb','defaults','redis','localhost','./chatInternalMessage.socket','sendStatus','status','end','json'];(function(_0x51b0dc,_0x5307b7){var _0x13fa89=function(_0x2c880f){while(--_0x2c880f){_0x51b0dc['push'](_0x51b0dc['shift']());}};_0x13fa89(++_0x5307b7);}(_0x1b2f,0x13e));var _0xf1b2=function(_0x40d570,_0xe5f8be){_0x40d570=_0x40d570-0x0;var _0x18cb06=_0x1b2f[_0x40d570];return _0x18cb06;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf1b2('0x0'));var zipdir=require(_0xf1b2('0x1'));var jsonpatch=require(_0xf1b2('0x2'));var rp=require(_0xf1b2('0x3'));var moment=require(_0xf1b2('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xf1b2('0x5'));var util=require(_0xf1b2('0x6'));var path=require(_0xf1b2('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xf1b2('0x8'));var fs=require('fs');var fs_extra=require(_0xf1b2('0x9'));var _=require(_0xf1b2('0xa'));var squel=require(_0xf1b2('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xf1b2('0xc'));var toCsv=require(_0xf1b2('0xd'));var querystring=require(_0xf1b2('0xe'));var Papa=require(_0xf1b2('0xf'));var Redis=require('ioredis');var authService=require(_0xf1b2('0x10'));var qs=require(_0xf1b2('0x11'));var as=require(_0xf1b2('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xf1b2('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xf1b2('0x14'));var db=require(_0xf1b2('0x15'))['db'];config['redis']=_[_0xf1b2('0x16')](config[_0xf1b2('0x17')],{'host':_0xf1b2('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xf1b2('0x19'))['register'](socket);function respondWithStatusCode(_0xd3b0eb,_0x2eccf8){_0x2eccf8=_0x2eccf8||0xcc;return function(_0x12e6a){if(_0x12e6a){return _0xd3b0eb[_0xf1b2('0x1a')](_0x2eccf8);}return _0xd3b0eb[_0xf1b2('0x1b')](_0x2eccf8)[_0xf1b2('0x1c')]();};}function respondWithResult(_0x5752b5,_0x1102ec){_0x1102ec=_0x1102ec||0xc8;return function(_0x26d241){if(_0x26d241){return _0x5752b5[_0xf1b2('0x1b')](_0x1102ec)[_0xf1b2('0x1d')](_0x26d241);}};}function respondWithFilteredResult(_0x2cf734,_0x2f50b8){return function(_0x4246f3){if(_0x4246f3){var _0x128316=typeof _0x2f50b8[_0xf1b2('0x1e')]===_0xf1b2('0x1f')&&typeof _0x2f50b8[_0xf1b2('0x20')]==='undefined';var _0x3bc9b9=_0x4246f3[_0xf1b2('0x21')];var _0x5b7b79=_0x128316?0x0:_0x2f50b8['offset'];var _0x27175b=_0x128316?_0x4246f3['count']:_0x2f50b8[_0xf1b2('0x1e')]+_0x2f50b8[_0xf1b2('0x20')];var _0x558b96;if(_0x27175b>=_0x3bc9b9){_0x27175b=_0x3bc9b9;_0x558b96=0xc8;}else{_0x558b96=0xce;}_0x2cf734['status'](_0x558b96);return _0x2cf734['set'](_0xf1b2('0x22'),_0x5b7b79+'-'+_0x27175b+'/'+_0x3bc9b9)['json'](_0x4246f3);}return null;};}function patchUpdates(_0x2ea9af){return function(_0x15ce01){try{jsonpatch[_0xf1b2('0x23')](_0x15ce01,_0x2ea9af,!![]);}catch(_0x4946b3){return BPromise[_0xf1b2('0x24')](_0x4946b3);}return _0x15ce01[_0xf1b2('0x25')]();};}function saveUpdates(_0x14d1fe,_0x4e2d62){return function(_0x513366){if(_0x513366){return _0x513366[_0xf1b2('0x26')](_0x14d1fe)['then'](function(_0x579330){return _0x579330;});}return null;};}function removeEntity(_0x351044,_0x5d356b){return function(_0x1b8c0c){if(_0x1b8c0c){return _0x1b8c0c[_0xf1b2('0x27')]()[_0xf1b2('0x28')](function(){_0x351044[_0xf1b2('0x1b')](0xcc)[_0xf1b2('0x1c')]();});}};}function handleEntityNotFound(_0x30f648,_0x215170){return function(_0x29a3d1){if(!_0x29a3d1){_0x30f648[_0xf1b2('0x1a')](0x194);}return _0x29a3d1;};}function handleError(_0x3714a5,_0x4934ab){_0x4934ab=_0x4934ab||0x1f4;return function(_0x4c43ed){logger[_0xf1b2('0x29')](_0x4c43ed[_0xf1b2('0x2a')]);if(_0x4c43ed[_0xf1b2('0x2b')]){delete _0x4c43ed[_0xf1b2('0x2b')];}_0x3714a5[_0xf1b2('0x1b')](_0x4934ab)[_0xf1b2('0x2c')](_0x4c43ed);};}exports[_0xf1b2('0x2d')]=function(_0x5703d3,_0x469e19){var _0x22ea26={},_0x181625={},_0x179a1e={'count':0x0,'rows':[]};var _0x462047=_[_0xf1b2('0x2e')](db[_0xf1b2('0x2f')]['rawAttributes'],function(_0x988790){return{'name':_0x988790[_0xf1b2('0x30')],'type':_0x988790[_0xf1b2('0x31')][_0xf1b2('0x32')]};});_0x181625['model']=_[_0xf1b2('0x2e')](_0x462047,_0xf1b2('0x2b'));_0x181625['query']=_[_0xf1b2('0x33')](_0x5703d3['query']);_0x181625[_0xf1b2('0x34')]=_[_0xf1b2('0x35')](_0x181625[_0xf1b2('0x36')],_0x181625[_0xf1b2('0x37')]);_0x22ea26[_0xf1b2('0x38')]=_[_0xf1b2('0x35')](_0x181625[_0xf1b2('0x36')],qs[_0xf1b2('0x39')](_0x5703d3[_0xf1b2('0x37')]['fields']));_0x22ea26[_0xf1b2('0x38')]=_0x22ea26['attributes'][_0xf1b2('0x3a')]?_0x22ea26[_0xf1b2('0x38')]:_0x181625[_0xf1b2('0x36')];if(!_0x5703d3[_0xf1b2('0x37')][_0xf1b2('0x3b')](_0xf1b2('0x3c'))){_0x22ea26[_0xf1b2('0x20')]=qs[_0xf1b2('0x20')](_0x5703d3[_0xf1b2('0x37')][_0xf1b2('0x20')]);_0x22ea26['offset']=qs[_0xf1b2('0x1e')](_0x5703d3[_0xf1b2('0x37')]['offset']);}_0x22ea26[_0xf1b2('0x3d')]=qs[_0xf1b2('0x3e')](_0x5703d3[_0xf1b2('0x37')][_0xf1b2('0x3e')]);_0x22ea26[_0xf1b2('0x3f')]=qs['filters'](_['pick'](_0x5703d3[_0xf1b2('0x37')],_0x181625[_0xf1b2('0x34')]),_0x462047);if(_0x5703d3['query'][_0xf1b2('0x40')]){_0x22ea26[_0xf1b2('0x3f')]=_[_0xf1b2('0x41')](_0x22ea26['where'],{'$or':_['map'](_0x462047,function(_0x331f23){if(_0x331f23[_0xf1b2('0x31')]!==_0xf1b2('0x42')){var _0x3ee447={};_0x3ee447[_0x331f23[_0xf1b2('0x2b')]]={'$like':'%'+_0x5703d3[_0xf1b2('0x37')][_0xf1b2('0x40')]+'%'};return _0x3ee447;}})});}_0x22ea26=_[_0xf1b2('0x41')]({},_0x22ea26,_0x5703d3[_0xf1b2('0x43')]);var _0x3078fb={'where':_0x22ea26[_0xf1b2('0x3f')]};return db[_0xf1b2('0x2f')][_0xf1b2('0x21')](_0x3078fb)[_0xf1b2('0x28')](function(_0x4be834){_0x179a1e['count']=_0x4be834;if(_0x5703d3['query'][_0xf1b2('0x44')]){_0x22ea26[_0xf1b2('0x45')]=[{'all':!![]}];}return db[_0xf1b2('0x2f')][_0xf1b2('0x46')](_0x22ea26);})[_0xf1b2('0x28')](function(_0x59108d){_0x179a1e[_0xf1b2('0x47')]=_0x59108d;return _0x179a1e;})[_0xf1b2('0x28')](respondWithFilteredResult(_0x469e19,_0x22ea26))[_0xf1b2('0x48')](handleError(_0x469e19,null));};exports[_0xf1b2('0x49')]=function(_0x3b168d,_0x1f2afa){var _0x405d12={'raw':!![],'where':{'id':_0x3b168d['params']['id']}},_0x4ffee3={};_0x4ffee3[_0xf1b2('0x36')]=_[_0xf1b2('0x33')](db[_0xf1b2('0x2f')][_0xf1b2('0x4a')]);_0x4ffee3[_0xf1b2('0x37')]=_[_0xf1b2('0x33')](_0x3b168d[_0xf1b2('0x37')]);_0x4ffee3['filters']=_[_0xf1b2('0x35')](_0x4ffee3[_0xf1b2('0x36')],_0x4ffee3[_0xf1b2('0x37')]);_0x405d12[_0xf1b2('0x38')]=_[_0xf1b2('0x35')](_0x4ffee3[_0xf1b2('0x36')],qs['fields'](_0x3b168d[_0xf1b2('0x37')]['fields']));_0x405d12[_0xf1b2('0x38')]=_0x405d12['attributes'][_0xf1b2('0x3a')]?_0x405d12['attributes']:_0x4ffee3[_0xf1b2('0x36')];if(_0x3b168d[_0xf1b2('0x37')][_0xf1b2('0x44')]){_0x405d12[_0xf1b2('0x45')]=[{'all':!![]}];}_0x405d12=_[_0xf1b2('0x41')]({},_0x405d12,_0x3b168d[_0xf1b2('0x43')]);return db['ChatInternalMessage']['find'](_0x405d12)[_0xf1b2('0x28')](handleEntityNotFound(_0x1f2afa,null))['then'](respondWithResult(_0x1f2afa,null))[_0xf1b2('0x48')](handleError(_0x1f2afa,null));};exports['create']=function(_0x4053cb,_0x111345){return db[_0xf1b2('0x2f')][_0xf1b2('0x4b')](_0x4053cb[_0xf1b2('0x4c')],{})[_0xf1b2('0x28')](respondWithResult(_0x111345,0xc9))['catch'](handleError(_0x111345,null));};exports['update']=function(_0x16c7eb,_0x1bcedc){if(_0x16c7eb['body']['id']){delete _0x16c7eb[_0xf1b2('0x4c')]['id'];}return db[_0xf1b2('0x2f')][_0xf1b2('0x4d')]({'where':{'id':_0x16c7eb[_0xf1b2('0x4e')]['id']}})[_0xf1b2('0x28')](handleEntityNotFound(_0x1bcedc,null))[_0xf1b2('0x28')](saveUpdates(_0x16c7eb[_0xf1b2('0x4c')],null))[_0xf1b2('0x28')](respondWithResult(_0x1bcedc,null))[_0xf1b2('0x48')](handleError(_0x1bcedc,null));};exports[_0xf1b2('0x27')]=function(_0x3a04e7,_0x17129a){return db[_0xf1b2('0x2f')][_0xf1b2('0x4d')]({'where':{'id':_0x3a04e7[_0xf1b2('0x4e')]['id']}})[_0xf1b2('0x28')](handleEntityNotFound(_0x17129a,null))['then'](removeEntity(_0x17129a,null))[_0xf1b2('0x48')](handleError(_0x17129a,null));};exports[_0xf1b2('0x4f')]=function(_0x5e3897,_0x16d92d){return db[_0xf1b2('0x2f')][_0xf1b2('0x4f')]()[_0xf1b2('0x28')](respondWithResult(_0x16d92d,null))['catch'](handleError(_0x16d92d,null));};function wrapUser(_0x50f6db){return function(_0x2fde21){var _0x57cae6=_0x50f6db[_0xf1b2('0x50')]({'plain':!![]});_0x57cae6[_0xf1b2('0x51')]=[];if(_0x2fde21){_0x57cae6['lastMessageAt']=_0x2fde21[_0xf1b2('0x52')];_0x57cae6[_0xf1b2('0x53')]=_0x2fde21;}else{_0x57cae6[_0xf1b2('0x54')]=moment(0x0)[_0xf1b2('0x55')](_0xf1b2('0x56'));_0x57cae6[_0xf1b2('0x53')]={};}return _0x57cae6;};}exports[_0xf1b2('0x57')]=function(_0x66a2ec,_0x4f08c7,_0x3b51a3){var _0x34fffb=[];return db[_0xf1b2('0x58')][_0xf1b2('0x46')]({'where':{'role':[_0xf1b2('0x59'),_0xf1b2('0x5a'),'user']},'attributes':['id',_0xf1b2('0x5b'),'name',_0xf1b2('0x5c'),_0xf1b2('0x5d'),_0xf1b2('0x5e'),_0xf1b2('0x5f'),_0xf1b2('0x60'),_0xf1b2('0x61'),_0xf1b2('0x62')],'order':qs[_0xf1b2('0x3e')](_0xf1b2('0x63')),'include':[{'model':db['VoiceQueue'],'as':_0xf1b2('0x64'),'attributes':['id','name','type'],'through':{'attributes':[]}}]})['then'](function(_0x368135){if(_0x368135){var _0x12577c=_0x66a2ec[_0xf1b2('0x65')][_0xf1b2('0x50')]({'plain':!![]});if(!_0x12577c)throw new Error(_0xf1b2('0x66'));if(_0x12577c[_0xf1b2('0x5c')]===_0xf1b2('0x65')){return db[_0xf1b2('0x67')][_0xf1b2('0x4d')]({'where':{'name':_0xf1b2('0x68'),'userProfileId':_0x12577c[_0xf1b2('0x69')]},'raw':!![]})['then'](function(_0x40d004){if(_0x40d004){if(_0x40d004[_0xf1b2('0x6a')]===0x0){return db[_0xf1b2('0x6b')]['findAll']({'where':{'sectionId':_0x40d004['id']},'raw':!![]})['then'](function(_0xb330e2){var _0x27a9ab=[];if(_[_0xf1b2('0x6c')](_0xb330e2)){_0x27a9ab=_[_0xf1b2('0x40')](_0x368135,function(_0x5205d2){if(_0x5205d2['role']!==_0xf1b2('0x59')){return _0x5205d2;}});return _0x27a9ab;}else{for(var _0x5c7a3d=0x0;_0x5c7a3d<_0x368135[_0xf1b2('0x3a')];_0x5c7a3d++){var _0x94f9f=_0x368135[_0x5c7a3d];if(_0x94f9f[_0xf1b2('0x5c')]==='agent'){var _0x563791=_['find'](_0xb330e2,function(_0x32df82){return _0x32df82[_0xf1b2('0x6d')]===_0x94f9f['id'];});if(_0x563791)_0x27a9ab[_0xf1b2('0x6e')](_0x94f9f);}else{_0x27a9ab[_0xf1b2('0x6e')](_0x94f9f);}}return _0x27a9ab;}});}else{return _0x368135;}}else{var _0x243627=_[_0xf1b2('0x40')](_0x368135,function(_0x4535c5){if(_0x4535c5['role']!==_0xf1b2('0x59')){return _0x4535c5;}});return _0x243627;}});}else{return _0x368135;}}})['then'](function(_0x2ebb0c){var _0x39772e=[];if(_0x2ebb0c){_0x34fffb=_0x2ebb0c;for(var _0x38a9f7=0x0;_0x38a9f7<_0x2ebb0c[_0xf1b2('0x3a')];_0x38a9f7+=0x1){_0x34fffb[_0x38a9f7]['messages']=[];_0x39772e[_0xf1b2('0x6e')](db[_0xf1b2('0x2f')][_0xf1b2('0x4d')]({'where':{'FromId':[_0x66a2ec[_0xf1b2('0x65')]['id'],_0x2ebb0c[_0x38a9f7]['id']],'ToId':[_0x66a2ec[_0xf1b2('0x65')]['id'],_0x2ebb0c[_0x38a9f7]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0xf1b2('0x6f'),_0xf1b2('0x70'),_0xf1b2('0x71'),_0xf1b2('0x4c')],'order':qs['sort'](_0xf1b2('0x72')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xf1b2('0x28')](wrapUser(_0x2ebb0c[_0x38a9f7])));}return BPromise[_0xf1b2('0x73')](_0x39772e);}return[];})['then'](function(_0x1ff834){return{'rows':_0x1ff834,'count':_0x1ff834['length']};})[_0xf1b2('0x28')](respondWithResult(_0x4f08c7,null))['catch'](handleError(_0x4f08c7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe58f=['hook','exports','events','../../mysqldb','ChatInternalMessage','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0xcd9ece,_0x33ff67){var _0x36f54f=function(_0x54ec76){while(--_0x54ec76){_0xcd9ece['push'](_0xcd9ece['shift']());}};_0x36f54f(++_0x33ff67);}(_0xe58f,0x1c5));var _0xfe58=function(_0x33c6c9,_0x4bd7b6){_0x33c6c9=_0x33c6c9-0x0;var _0x37a2c7=_0xe58f[_0x33c6c9];return _0x37a2c7;};'use strict';var EventEmitter=require(_0xfe58('0x0'));var ChatInternalMessage=require(_0xfe58('0x1'))['db'][_0xfe58('0x2')];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents[_0xfe58('0x3')](0x0);var events={'afterCreate':_0xfe58('0x4'),'afterUpdate':_0xfe58('0x5'),'afterDestroy':_0xfe58('0x6')};function emitEvent(_0x25d79e){return function(_0x4560ea,_0x308c77,_0x585aa8){ChatInternalMessageEvents[_0xfe58('0x7')](_0x25d79e+':'+_0x4560ea['id'],_0x4560ea);ChatInternalMessageEvents[_0xfe58('0x7')](_0x25d79e,_0x4560ea);_0x585aa8(null);};}for(var e in events){if(events[_0xfe58('0x8')](e)){var event=events[e];ChatInternalMessage[_0xfe58('0x9')](e,emitEvent(event));}}module[_0xfe58('0xa')]=ChatInternalMessageEvents;
\ No newline at end of file
+var _0x9437=['../../mysqldb','ChatInternalMessage','save','remove','emit','hasOwnProperty','hook'];(function(_0x10dc5d,_0x4b62cc){var _0x2c1e6f=function(_0x5f7307){while(--_0x5f7307){_0x10dc5d['push'](_0x10dc5d['shift']());}};_0x2c1e6f(++_0x4b62cc);}(_0x9437,0x1c7));var _0x7943=function(_0x4e8275,_0x1511f1){_0x4e8275=_0x4e8275-0x0;var _0x396363=_0x9437[_0x4e8275];return _0x396363;};'use strict';var EventEmitter=require('events');var ChatInternalMessage=require(_0x7943('0x0'))['db'][_0x7943('0x1')];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x7943('0x2'),'afterUpdate':'update','afterDestroy':_0x7943('0x3')};function emitEvent(_0x10e222){return function(_0x4ac6f8,_0x2629c7,_0x3b2813){ChatInternalMessageEvents[_0x7943('0x4')](_0x10e222+':'+_0x4ac6f8['id'],_0x4ac6f8);ChatInternalMessageEvents[_0x7943('0x4')](_0x10e222,_0x4ac6f8);_0x3b2813(null);};}for(var e in events){if(events[_0x7943('0x5')](e)){var event=events[e];ChatInternalMessage[_0x7943('0x6')](e,emitEvent(event));}}module['exports']=ChatInternalMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc9e4=['./chatInternalMessage.attributes','exports','chat_internal_messages','utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x5dde2c,_0x4ad32c){var _0x5e6c94=function(_0x38e789){while(--_0x38e789){_0x5dde2c['push'](_0x5dde2c['shift']());}};_0x5e6c94(++_0x4ad32c);}(_0xc9e4,0x6c));var _0x4c9e=function(_0x52850c,_0x249dc8){_0x52850c=_0x52850c-0x0;var _0x113595=_0xc9e4[_0x52850c];return _0x113595;};'use strict';var _=require(_0x4c9e('0x0'));var util=require(_0x4c9e('0x1'));var logger=require(_0x4c9e('0x2'))('api');var moment=require(_0x4c9e('0x3'));var BPromise=require(_0x4c9e('0x4'));var rp=require(_0x4c9e('0x5'));var fs=require('fs');var path=require(_0x4c9e('0x6'));var rimraf=require(_0x4c9e('0x7'));var config=require(_0x4c9e('0x8'));var attributes=require(_0x4c9e('0x9'));module[_0x4c9e('0xa')]=function(_0x244c7f,_0x1d5586){return _0x244c7f['define']('ChatInternalMessage',attributes,{'tableName':_0x4c9e('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x4c9e('0xc')});};
\ No newline at end of file
+var _0xf54c=['exports','define','ChatInternalMessage','chat_internal_messages','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','bluebird','rimraf','../../config/environment','./chatInternalMessage.attributes'];(function(_0x8fa4bc,_0x5cd2af){var _0x35b6a7=function(_0x357c25){while(--_0x357c25){_0x8fa4bc['push'](_0x8fa4bc['shift']());}};_0x35b6a7(++_0x5cd2af);}(_0xf54c,0xd8));var _0xcf54=function(_0x371e95,_0x17a4c1){_0x371e95=_0x371e95-0x0;var _0x4d037f=_0xf54c[_0x371e95];return _0x4d037f;};'use strict';var _=require(_0xcf54('0x0'));var util=require(_0xcf54('0x1'));var logger=require(_0xcf54('0x2'))('api');var moment=require(_0xcf54('0x3'));var BPromise=require(_0xcf54('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xcf54('0x5'));var config=require(_0xcf54('0x6'));var attributes=require(_0xcf54('0x7'));module[_0xcf54('0x8')]=function(_0x3f30c0,_0x8506c4){return _0x3f30c0[_0xcf54('0x9')](_0xcf54('0xa'),attributes,{'tableName':_0xcf54('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xcf54('0xc'),'collate':_0xcf54('0xd')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3056=['message','result','catch','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','redis','defaults','localhost','./chatInternalMessage.socket','register','request','then','info','ChatInternalMessage,\x20%s,\x20%s','request\x20sent','debug','ChatInternalMessage,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x58dfd3,_0x278df4){var _0x311ed9=function(_0x4f7836){while(--_0x4f7836){_0x58dfd3['push'](_0x58dfd3['shift']());}};_0x311ed9(++_0x278df4);}(_0x3056,0x153));var _0x6305=function(_0x54c07c,_0x5402e6){_0x54c07c=_0x54c07c-0x0;var _0x4440a7=_0x3056[_0x54c07c];return _0x4440a7;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x6305('0x0'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6305('0x1'))['db'];var utils=require(_0x6305('0x2'));var logger=require(_0x6305('0x3'))('rpc');var config=require(_0x6305('0x4'));var jayson=require(_0x6305('0x5'));var client=jayson['client']['http']({'port':0x232a});config[_0x6305('0x6')]=_[_0x6305('0x7')](config[_0x6305('0x6')],{'host':_0x6305('0x8'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6305('0x6')]));require(_0x6305('0x9'))[_0x6305('0xa')](socket);function respondWithRpcPromise(_0x12ba06,_0x1f3d82,_0x10fb89){return new BPromise(function(_0x270707,_0x1d6e91){return client[_0x6305('0xb')](_0x12ba06,_0x10fb89)[_0x6305('0xc')](function(_0x566cf4){logger[_0x6305('0xd')](_0x6305('0xe'),_0x1f3d82,_0x6305('0xf'));logger[_0x6305('0x10')](_0x6305('0x11'),_0x1f3d82,'request\x20sent',JSON[_0x6305('0x12')](_0x566cf4));if(_0x566cf4['error']){if(_0x566cf4[_0x6305('0x13')][_0x6305('0x14')]===0x1f4){logger['error']('ChatInternalMessage,\x20%s,\x20%s',_0x1f3d82,_0x566cf4[_0x6305('0x13')][_0x6305('0x15')]);return _0x1d6e91(_0x566cf4[_0x6305('0x13')][_0x6305('0x15')]);}logger[_0x6305('0x13')]('ChatInternalMessage,\x20%s,\x20%s',_0x1f3d82,_0x566cf4[_0x6305('0x13')]['message']);return _0x270707(_0x566cf4[_0x6305('0x13')][_0x6305('0x15')]);}else{logger[_0x6305('0xd')](_0x6305('0xe'),_0x1f3d82,_0x6305('0xf'));_0x270707(_0x566cf4[_0x6305('0x16')][_0x6305('0x15')]);}})[_0x6305('0x17')](function(_0x481a84){logger['error'](_0x6305('0xe'),_0x1f3d82,_0x481a84);_0x1d6e91(_0x481a84);});});}
\ No newline at end of file
+var _0xc3d6=['rpc','jayson/promise','http','defaults','redis','localhost','socket.io-emitter','./chatInternalMessage.socket','register','then','info','ChatInternalMessage,\x20%s,\x20%s','request\x20sent','debug','ChatInternalMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x5eef05,_0x1be989){var _0x56d4b8=function(_0x57993d){while(--_0x57993d){_0x5eef05['push'](_0x5eef05['shift']());}};_0x56d4b8(++_0x1be989);}(_0xc3d6,0x153));var _0x6c3d=function(_0x5d15cb,_0x1a6f26){_0x5d15cb=_0x5d15cb-0x0;var _0xc8a616=_0xc3d6[_0x5d15cb];return _0xc8a616;};'use strict';var _=require(_0x6c3d('0x0'));var util=require(_0x6c3d('0x1'));var moment=require(_0x6c3d('0x2'));var BPromise=require(_0x6c3d('0x3'));var rs=require(_0x6c3d('0x4'));var fs=require('fs');var Redis=require(_0x6c3d('0x5'));var db=require(_0x6c3d('0x6'))['db'];var utils=require(_0x6c3d('0x7'));var logger=require(_0x6c3d('0x8'))(_0x6c3d('0x9'));var config=require('../../config/environment');var jayson=require(_0x6c3d('0xa'));var client=jayson['client'][_0x6c3d('0xb')]({'port':0x232a});config['redis']=_[_0x6c3d('0xc')](config[_0x6c3d('0xd')],{'host':_0x6c3d('0xe'),'port':0x18eb});var socket=require(_0x6c3d('0xf'))(new Redis(config[_0x6c3d('0xd')]));require(_0x6c3d('0x10'))[_0x6c3d('0x11')](socket);function respondWithRpcPromise(_0xb39cd9,_0x42bfb9,_0x50e102){return new BPromise(function(_0x13b9cf,_0xc7716d){return client['request'](_0xb39cd9,_0x50e102)[_0x6c3d('0x12')](function(_0xbda80c){logger[_0x6c3d('0x13')](_0x6c3d('0x14'),_0x42bfb9,_0x6c3d('0x15'));logger[_0x6c3d('0x16')](_0x6c3d('0x17'),_0x42bfb9,_0x6c3d('0x15'),JSON[_0x6c3d('0x18')](_0xbda80c));if(_0xbda80c[_0x6c3d('0x19')]){if(_0xbda80c['error'][_0x6c3d('0x1a')]===0x1f4){logger[_0x6c3d('0x19')](_0x6c3d('0x14'),_0x42bfb9,_0xbda80c[_0x6c3d('0x19')][_0x6c3d('0x1b')]);return _0xc7716d(_0xbda80c[_0x6c3d('0x19')][_0x6c3d('0x1b')]);}logger[_0x6c3d('0x19')](_0x6c3d('0x14'),_0x42bfb9,_0xbda80c[_0x6c3d('0x19')][_0x6c3d('0x1b')]);return _0x13b9cf(_0xbda80c['error'][_0x6c3d('0x1b')]);}else{logger[_0x6c3d('0x13')](_0x6c3d('0x14'),_0x42bfb9,_0x6c3d('0x15'));_0x13b9cf(_0xbda80c['result'][_0x6c3d('0x1b')]);}})[_0x6c3d('0x1c')](function(_0x588a51){logger[_0x6c3d('0x19')](_0x6c3d('0x14'),_0x42bfb9,_0x588a51);_0xc7716d(_0x588a51);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x003b=['removeListener','register','length','./chatInternalMessage.events','update','emit'];(function(_0x46800d,_0x588500){var _0x3824cd=function(_0x14b132){while(--_0x14b132){_0x46800d['push'](_0x46800d['shift']());}};_0x3824cd(++_0x588500);}(_0x003b,0x105));var _0xb003=function(_0x468685,_0x1ed7d5){_0x468685=_0x468685-0x0;var _0x2f7132=_0x003b[_0x468685];return _0x2f7132;};'use strict';var ChatInternalMessageEvents=require(_0xb003('0x0'));var events=['save','remove',_0xb003('0x1')];function createListener(_0x441dfc,_0x57dccd){return function(_0x36711e){_0x57dccd[_0xb003('0x2')](_0x441dfc,_0x36711e);};}function removeListener(_0x51c62a,_0x17a995){return function(){ChatInternalMessageEvents[_0xb003('0x3')](_0x51c62a,_0x17a995);};}exports[_0xb003('0x4')]=function(_0x21eac7){for(var _0x313465=0x0,_0x30d442=events[_0xb003('0x5')];_0x313465<_0x30d442;_0x313465++){var _0x325e2a=events[_0x313465];var _0x459712=createListener('chatInternalMessage:'+_0x325e2a,_0x21eac7);ChatInternalMessageEvents['on'](_0x325e2a,_0x459712);}};
\ No newline at end of file
+var _0x461f=['removeListener','register','chatInternalMessage:','./chatInternalMessage.events','save','remove','update','emit'];(function(_0x58ff11,_0x16f9e8){var _0x4af53f=function(_0x282d9d){while(--_0x282d9d){_0x58ff11['push'](_0x58ff11['shift']());}};_0x4af53f(++_0x16f9e8);}(_0x461f,0x18b));var _0xf461=function(_0x588258,_0x5b26a8){_0x588258=_0x588258-0x0;var _0x4efce8=_0x461f[_0x588258];return _0x4efce8;};'use strict';var ChatInternalMessageEvents=require(_0xf461('0x0'));var events=[_0xf461('0x1'),_0xf461('0x2'),_0xf461('0x3')];function createListener(_0x3cd2cf,_0x4a0cdf){return function(_0x461a6f){_0x4a0cdf[_0xf461('0x4')](_0x3cd2cf,_0x461a6f);};}function removeListener(_0x114064,_0x50be6e){return function(){ChatInternalMessageEvents[_0xf461('0x5')](_0x114064,_0x50be6e);};}exports[_0xf461('0x6')]=function(_0x3b55e6){for(var _0xd461d4=0x0,_0x31adab=events['length'];_0xd461d4<_0x31adab;_0xd461d4++){var _0x248dff=events[_0xd461d4];var _0x50bb47=createListener(_0xf461('0x7')+_0x248dff,_0x3b55e6);ChatInternalMessageEvents['on'](_0x248dff,_0x50bb47);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x339c=['/:id','post','create','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','./chatInternalMessage.controller','get','index','describe','/users','isAuthenticated'];(function(_0x2edfbb,_0x159544){var _0x110887=function(_0x3e1410){while(--_0x3e1410){_0x2edfbb['push'](_0x2edfbb['shift']());}};_0x110887(++_0x159544);}(_0x339c,0x1d5));var _0xc339=function(_0x2a6809,_0x44edde){_0x2a6809=_0x2a6809-0x0;var _0x11c371=_0x339c[_0x2a6809];return _0x11c371;};'use strict';var multer=require(_0xc339('0x0'));var util=require(_0xc339('0x1'));var path=require(_0xc339('0x2'));var timeout=require(_0xc339('0x3'));var express=require(_0xc339('0x4'));var router=express[_0xc339('0x5')]();var fs_extra=require(_0xc339('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xc339('0x7'));var controller=require(_0xc339('0x8'));router[_0xc339('0x9')]('/',auth['isAuthenticated'](),controller[_0xc339('0xa')]);router[_0xc339('0x9')]('/describe',auth['isAuthenticated'](),controller[_0xc339('0xb')]);router[_0xc339('0x9')](_0xc339('0xc'),auth[_0xc339('0xd')](),controller['getUsers']);router[_0xc339('0x9')](_0xc339('0xe'),auth[_0xc339('0xd')](),controller['show']);router[_0xc339('0xf')]('/',auth[_0xc339('0xd')](),controller[_0xc339('0x10')]);router[_0xc339('0x11')](_0xc339('0xe'),controller[_0xc339('0x12')]);router[_0xc339('0x13')](_0xc339('0xe'),auth['isAuthenticated'](),controller['destroy']);module[_0xc339('0x14')]=router;
\ No newline at end of file
+var _0x11e4=['/:id','show','post','create','put','delete','destroy','multer','util','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatInternalMessage.controller','get','index','/describe','isAuthenticated','describe','getUsers'];(function(_0x5520fe,_0x4769ce){var _0x61c4ce=function(_0xcc14a2){while(--_0xcc14a2){_0x5520fe['push'](_0x5520fe['shift']());}};_0x61c4ce(++_0x4769ce);}(_0x11e4,0x118));var _0x411e=function(_0x279d37,_0x14de3f){_0x279d37=_0x279d37-0x0;var _0x530173=_0x11e4[_0x279d37];return _0x530173;};'use strict';var multer=require(_0x411e('0x0'));var util=require(_0x411e('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x411e('0x2'));var router=express[_0x411e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x411e('0x4'));var interaction=require(_0x411e('0x5'));var config=require(_0x411e('0x6'));var controller=require(_0x411e('0x7'));router[_0x411e('0x8')]('/',auth['isAuthenticated'](),controller[_0x411e('0x9')]);router[_0x411e('0x8')](_0x411e('0xa'),auth[_0x411e('0xb')](),controller[_0x411e('0xc')]);router[_0x411e('0x8')]('/users',auth[_0x411e('0xb')](),controller[_0x411e('0xd')]);router['get'](_0x411e('0xe'),auth[_0x411e('0xb')](),controller[_0x411e('0xf')]);router[_0x411e('0x10')]('/',auth[_0x411e('0xb')](),controller[_0x411e('0x11')]);router[_0x411e('0x12')](_0x411e('0xe'),controller['update']);router[_0x411e('0x13')]('/:id',auth[_0x411e('0xb')](),controller[_0x411e('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x80ed=['BOOLEAN','ENUM','out','DATE','sequelize','TEXT','medium'];(function(_0x2ca06e,_0x2721d1){var _0x3ac3f9=function(_0x14ae15){while(--_0x14ae15){_0x2ca06e['push'](_0x2ca06e['shift']());}};_0x3ac3f9(++_0x2721d1);}(_0x80ed,0x11c));var _0xd80e=function(_0x1f3119,_0x4021f1){_0x1f3119=_0x1f3119-0x0;var _0x353139=_0x80ed[_0x1f3119];return _0x353139;};'use strict';var Sequelize=require(_0xd80e('0x0'));module['exports']={'body':{'type':Sequelize[_0xd80e('0x1')](_0xd80e('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0xd80e('0x3')],'defaultValue':![]},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0xd80e('0x4')]('in',_0xd80e('0x5')),'defaultValue':_0xd80e('0x5'),'allowNull':![]},'readAt':{'type':Sequelize[_0xd80e('0x6')]},'providerName':{'type':Sequelize['STRING']},'providerResponse':{'type':Sequelize[_0xd80e('0x1')]}};
\ No newline at end of file
+var _0x0647=['medium','BOOLEAN','ENUM','DATE','STRING','sequelize','TEXT'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x0647,0xd0));var _0x7064=function(_0x62c958,_0x2bfdbc){_0x62c958=_0x62c958-0x0;var _0x57ec61=_0x0647[_0x62c958];return _0x57ec61;};'use strict';var Sequelize=require(_0x7064('0x0'));module['exports']={'body':{'type':Sequelize[_0x7064('0x1')](_0x7064('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x7064('0x3')],'defaultValue':![]},'secret':{'type':Sequelize[_0x7064('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0x7064('0x4')]('in','out'),'defaultValue':'out','allowNull':![]},'readAt':{'type':Sequelize[_0x7064('0x5')]},'providerName':{'type':Sequelize[_0x7064('0x6')]},'providerResponse':{'type':Sequelize[_0x7064('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ca5=['zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','redis','localhost','socket.io-emitter','./chatMessage.socket','register','jayson/promise','client','http','request','then','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','update','destroy','end','name','send','ChatMessage','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','include','findAll','catch','show','params','rawAttributes','keys','includeAll','options','create','body','find','describe','chat-interactions','chat','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','ChatInteraction','ChatInteractionId','isNil','read1stAt','interaction','get','role','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','User','fullname','email','internal','interface','channel','motionChannel','accept','EventManager','acceptmessage','parse','info','[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','contact','SIP/%s','event','rejectmessage','formData','eml-format','rimraf'];(function(_0xd42e4f,_0x4d0e31){var _0x2369f1=function(_0x4df2d1){while(--_0x4df2d1){_0xd42e4f['push'](_0xd42e4f['shift']());}};_0x2369f1(++_0x4d0e31);}(_0x6ca5,0x193));var _0x56ca=function(_0x4a2e95,_0x42d4bb){_0x4a2e95=_0x4a2e95-0x0;var _0x2a43ea=_0x6ca5[_0x4a2e95];return _0x2a43ea;};'use strict';var emlformat=require(_0x56ca('0x0'));var rimraf=require(_0x56ca('0x1'));var zipdir=require(_0x56ca('0x2'));var jsonpatch=require(_0x56ca('0x3'));var rp=require(_0x56ca('0x4'));var moment=require(_0x56ca('0x5'));var BPromise=require(_0x56ca('0x6'));var Mustache=require('mustache');var util=require(_0x56ca('0x7'));var path=require(_0x56ca('0x8'));var sox=require('sox');var csv=require(_0x56ca('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x56ca('0xa'));var crypto=require(_0x56ca('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x56ca('0xc'));var toCsv=require('to-csv');var querystring=require(_0x56ca('0xd'));var Papa=require(_0x56ca('0xe'));var Redis=require(_0x56ca('0xf'));var authService=require(_0x56ca('0x10'));var qs=require(_0x56ca('0x11'));var as=require(_0x56ca('0x12'));var hardwareService=require(_0x56ca('0x13'));var logger=require(_0x56ca('0x14'))(_0x56ca('0x15'));var utils=require(_0x56ca('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x56ca('0x17'))['db'];config['redis']=_['defaults'](config[_0x56ca('0x18')],{'host':_0x56ca('0x19'),'port':0x18eb});var socket=require(_0x56ca('0x1a'))(new Redis(config[_0x56ca('0x18')]));require(_0x56ca('0x1b'))[_0x56ca('0x1c')](socket);var jayson=require(_0x56ca('0x1d'));var client=jayson[_0x56ca('0x1e')][_0x56ca('0x1f')]({'port':0x232c});var client9002=jayson[_0x56ca('0x1e')][_0x56ca('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x5265b2,_0x4dafd7,_0x1f9d54,_0x17ef5b){return new BPromise(function(_0x5bd765,_0x237c2c){var _0x3c890b=_0x17ef5b||client;return _0x3c890b[_0x56ca('0x20')](_0x5265b2,_0x1f9d54)[_0x56ca('0x21')](function(_0x59d593){logger['info'](_0x56ca('0x22'),_0x4dafd7,_0x56ca('0x23'));logger[_0x56ca('0x24')](_0x56ca('0x25'),_0x4dafd7,'request\x20sent',JSON[_0x56ca('0x26')](_0x59d593));if(_0x59d593[_0x56ca('0x27')]){if(_0x59d593['error'][_0x56ca('0x28')]===0x1f4){logger[_0x56ca('0x27')]('ChatMessage,\x20%s,\x20%s',_0x4dafd7,_0x59d593[_0x56ca('0x27')]['message']);return _0x237c2c(_0x59d593['error'][_0x56ca('0x29')]);}logger[_0x56ca('0x27')](_0x56ca('0x22'),_0x4dafd7,_0x59d593[_0x56ca('0x27')][_0x56ca('0x29')]);return _0x5bd765(_0x59d593['error'][_0x56ca('0x29')]);}else{logger['info'](_0x56ca('0x22'),_0x4dafd7,_0x56ca('0x23'));_0x5bd765(_0x59d593[_0x56ca('0x2a')]['message']);}})['catch'](function(_0x1652aa){logger[_0x56ca('0x27')](_0x56ca('0x22'),_0x4dafd7,_0x1652aa);_0x237c2c(_0x1652aa);});});}function respondWithStatusCode(_0xf4d031,_0x284291){_0x284291=_0x284291||0xcc;return function(_0x2939b4){if(_0x2939b4){return _0xf4d031[_0x56ca('0x2b')](_0x284291);}return _0xf4d031[_0x56ca('0x2c')](_0x284291)['end']();};}function respondWithResult(_0x6fbcb1,_0x5c2baa){_0x5c2baa=_0x5c2baa||0xc8;return function(_0x3a9d54){if(_0x3a9d54){return _0x6fbcb1[_0x56ca('0x2c')](_0x5c2baa)[_0x56ca('0x2d')](_0x3a9d54);}};}function respondWithFilteredResult(_0x580480,_0x56e047){return function(_0x290f42){if(_0x290f42){var _0x43221a=typeof _0x56e047['offset']==='undefined'&&typeof _0x56e047[_0x56ca('0x2e')]===_0x56ca('0x2f');var _0x229dd3=_0x290f42[_0x56ca('0x30')];var _0x2ebe56=_0x43221a?0x0:_0x56e047[_0x56ca('0x31')];var _0x29e027=_0x43221a?_0x290f42['count']:_0x56e047['offset']+_0x56e047['limit'];var _0x134df3;if(_0x29e027>=_0x229dd3){_0x29e027=_0x229dd3;_0x134df3=0xc8;}else{_0x134df3=0xce;}_0x580480[_0x56ca('0x2c')](_0x134df3);return _0x580480[_0x56ca('0x32')](_0x56ca('0x33'),_0x2ebe56+'-'+_0x29e027+'/'+_0x229dd3)[_0x56ca('0x2d')](_0x290f42);}return null;};}function patchUpdates(_0x374afa){return function(_0x22473c){try{jsonpatch[_0x56ca('0x34')](_0x22473c,_0x374afa,!![]);}catch(_0x477dda){return BPromise[_0x56ca('0x35')](_0x477dda);}return _0x22473c[_0x56ca('0x36')]();};}function saveUpdates(_0x90619a,_0x532398){return function(_0x1f926a){if(_0x1f926a){return _0x1f926a[_0x56ca('0x37')](_0x90619a)[_0x56ca('0x21')](function(_0x3a545a){return _0x3a545a;});}return null;};}function removeEntity(_0x435324,_0x361d13){return function(_0x4129bf){if(_0x4129bf){return _0x4129bf[_0x56ca('0x38')]()['then'](function(){_0x435324['status'](0xcc)[_0x56ca('0x39')]();});}};}function handleEntityNotFound(_0x1b3b5f,_0x1314ee){return function(_0x29ad92){if(!_0x29ad92){_0x1b3b5f[_0x56ca('0x2b')](0x194);}return _0x29ad92;};}function handleError(_0x74b186,_0x3de55e){_0x3de55e=_0x3de55e||0x1f4;return function(_0x12492c){logger[_0x56ca('0x27')](_0x12492c['stack']);if(_0x12492c[_0x56ca('0x3a')]){delete _0x12492c[_0x56ca('0x3a')];}_0x74b186['status'](_0x3de55e)[_0x56ca('0x3b')](_0x12492c);};}exports['index']=function(_0x253cfb,_0x2f1c51){var _0x39819e={},_0x1ba398={},_0x29af10={'count':0x0,'rows':[]};var _0x515da4=_['map'](db[_0x56ca('0x3c')]['rawAttributes'],function(_0x7ca750){return{'name':_0x7ca750[_0x56ca('0x3d')],'type':_0x7ca750[_0x56ca('0x3e')][_0x56ca('0x3f')]};});_0x1ba398[_0x56ca('0x40')]=_[_0x56ca('0x41')](_0x515da4,_0x56ca('0x3a'));_0x1ba398[_0x56ca('0x42')]=_['keys'](_0x253cfb[_0x56ca('0x42')]);_0x1ba398[_0x56ca('0x43')]=_[_0x56ca('0x44')](_0x1ba398[_0x56ca('0x40')],_0x1ba398[_0x56ca('0x42')]);_0x39819e[_0x56ca('0x45')]=_[_0x56ca('0x44')](_0x1ba398[_0x56ca('0x40')],qs[_0x56ca('0x46')](_0x253cfb[_0x56ca('0x42')]['fields']));_0x39819e['attributes']=_0x39819e[_0x56ca('0x45')][_0x56ca('0x47')]?_0x39819e[_0x56ca('0x45')]:_0x1ba398[_0x56ca('0x40')];if(!_0x253cfb['query'][_0x56ca('0x48')]('nolimit')){_0x39819e[_0x56ca('0x2e')]=qs['limit'](_0x253cfb['query'][_0x56ca('0x2e')]);_0x39819e[_0x56ca('0x31')]=qs[_0x56ca('0x31')](_0x253cfb[_0x56ca('0x42')]['offset']);}_0x39819e['order']=qs[_0x56ca('0x49')](_0x253cfb[_0x56ca('0x42')][_0x56ca('0x49')]);_0x39819e[_0x56ca('0x4a')]=qs['filters'](_[_0x56ca('0x4b')](_0x253cfb[_0x56ca('0x42')],_0x1ba398['filters']),_0x515da4);if(_0x253cfb['query'][_0x56ca('0x4c')]){_0x39819e[_0x56ca('0x4a')]=_[_0x56ca('0x4d')](_0x39819e[_0x56ca('0x4a')],{'$or':_[_0x56ca('0x41')](_0x515da4,function(_0x37565b){if(_0x37565b[_0x56ca('0x3e')]!==_0x56ca('0x4e')){var _0x4bf143={};_0x4bf143[_0x37565b['name']]={'$like':'%'+_0x253cfb[_0x56ca('0x42')][_0x56ca('0x4c')]+'%'};return _0x4bf143;}})});}_0x39819e=_[_0x56ca('0x4d')]({},_0x39819e,_0x253cfb['options']);var _0xb1038e={'where':_0x39819e[_0x56ca('0x4a')]};return db['ChatMessage']['count'](_0xb1038e)[_0x56ca('0x21')](function(_0xd0f34a){_0x29af10[_0x56ca('0x30')]=_0xd0f34a;if(_0x253cfb[_0x56ca('0x42')]['includeAll']){_0x39819e[_0x56ca('0x4f')]=[{'all':!![]}];}return db[_0x56ca('0x3c')][_0x56ca('0x50')](_0x39819e);})[_0x56ca('0x21')](function(_0x59cafb){_0x29af10['rows']=_0x59cafb;return _0x29af10;})['then'](respondWithFilteredResult(_0x2f1c51,_0x39819e))[_0x56ca('0x51')](handleError(_0x2f1c51,null));};exports[_0x56ca('0x52')]=function(_0x5bde5e,_0x441ba0){var _0xf129d5={'raw':!![],'where':{'id':_0x5bde5e[_0x56ca('0x53')]['id']}},_0x5f120a={};_0x5f120a[_0x56ca('0x40')]=_['keys'](db['ChatMessage'][_0x56ca('0x54')]);_0x5f120a[_0x56ca('0x42')]=_[_0x56ca('0x55')](_0x5bde5e['query']);_0x5f120a['filters']=_[_0x56ca('0x44')](_0x5f120a['model'],_0x5f120a[_0x56ca('0x42')]);_0xf129d5[_0x56ca('0x45')]=_[_0x56ca('0x44')](_0x5f120a[_0x56ca('0x40')],qs[_0x56ca('0x46')](_0x5bde5e[_0x56ca('0x42')]['fields']));_0xf129d5[_0x56ca('0x45')]=_0xf129d5[_0x56ca('0x45')][_0x56ca('0x47')]?_0xf129d5[_0x56ca('0x45')]:_0x5f120a[_0x56ca('0x40')];if(_0x5bde5e[_0x56ca('0x42')][_0x56ca('0x56')]){_0xf129d5[_0x56ca('0x4f')]=[{'all':!![]}];}_0xf129d5=_[_0x56ca('0x4d')]({},_0xf129d5,_0x5bde5e[_0x56ca('0x57')]);return db['ChatMessage']['find'](_0xf129d5)[_0x56ca('0x21')](handleEntityNotFound(_0x441ba0,null))[_0x56ca('0x21')](respondWithResult(_0x441ba0,null))[_0x56ca('0x51')](handleError(_0x441ba0,null));};exports[_0x56ca('0x58')]=function(_0x89c32d,_0x24d170){return db[_0x56ca('0x3c')]['create'](_0x89c32d[_0x56ca('0x59')],{})[_0x56ca('0x21')](respondWithResult(_0x24d170,0xc9))[_0x56ca('0x51')](handleError(_0x24d170,null));};exports['update']=function(_0x5b3823,_0x108535){if(_0x5b3823[_0x56ca('0x59')]['id']){delete _0x5b3823['body']['id'];}return db[_0x56ca('0x3c')][_0x56ca('0x5a')]({'where':{'id':_0x5b3823[_0x56ca('0x53')]['id']}})['then'](handleEntityNotFound(_0x108535,null))[_0x56ca('0x21')](saveUpdates(_0x5b3823[_0x56ca('0x59')],null))[_0x56ca('0x21')](respondWithResult(_0x108535,null))[_0x56ca('0x51')](handleError(_0x108535,null));};exports[_0x56ca('0x38')]=function(_0x1a5e1d,_0x5f5787){return db['ChatMessage'][_0x56ca('0x5a')]({'where':{'id':_0x1a5e1d[_0x56ca('0x53')]['id']}})[_0x56ca('0x21')](handleEntityNotFound(_0x5f5787,null))[_0x56ca('0x21')](removeEntity(_0x5f5787,null))[_0x56ca('0x51')](handleError(_0x5f5787,null));};exports[_0x56ca('0x5b')]=function(_0x47243d,_0x2cbb02){return db[_0x56ca('0x3c')][_0x56ca('0x5b')]()[_0x56ca('0x21')](respondWithResult(_0x2cbb02,null))[_0x56ca('0x51')](handleError(_0x2cbb02,null));};var interaction_log=require('../../config/logger')(_0x56ca('0x5c'));exports['accept']=function(_0x457d43,_0x3fedd0,_0x14dd27){var _0x183115={'agent':{},'channel':_0x56ca('0x5d')};if(_0x457d43[_0x56ca('0x59')]['id']){delete _0x457d43[_0x56ca('0x59')]['id'];}_0x457d43[_0x56ca('0x59')][_0x56ca('0x5e')]=!![];_0x457d43[_0x56ca('0x59')][_0x56ca('0x5f')]=moment()[_0x56ca('0x60')](_0x56ca('0x61'));_0x457d43[_0x56ca('0x59')][_0x56ca('0x62')]=_0x457d43[_0x56ca('0x59')][_0x56ca('0x62')]||_0x457d43[_0x56ca('0x63')]['id'];_0x183115[_0x56ca('0x64')]['id']=_0x457d43[_0x56ca('0x59')][_0x56ca('0x62')];return db[_0x56ca('0x3c')]['find']({'where':{'id':_0x457d43[_0x56ca('0x53')]['id'],'UserId':null}})[_0x56ca('0x21')](handleEntityNotFound(_0x3fedd0,null))[_0x56ca('0x21')](saveUpdates(_0x457d43[_0x56ca('0x59')],null))[_0x56ca('0x21')](function(_0x1abfdc){if(_0x1abfdc){_0x183115[_0x56ca('0x29')]=_0x1abfdc['get']({'plain':!![]});return db[_0x56ca('0x65')][_0x56ca('0x5a')]({'where':{'id':_0x1abfdc[_0x56ca('0x66')]}});}return null;})[_0x56ca('0x21')](handleEntityNotFound(_0x3fedd0,null))[_0x56ca('0x21')](function(_0x396c23){if(_0x396c23){return _0x396c23[_0x56ca('0x37')]({'UserId':_0x457d43['body'][_0x56ca('0x62')],'read1stAt':_[_0x56ca('0x67')](_0x396c23[_0x56ca('0x68')])?moment()[_0x56ca('0x60')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x56ca('0x21')](function(_0x332fc3){if(_0x332fc3){_0x183115[_0x56ca('0x69')]=_0x332fc3[_0x56ca('0x6a')]({'plain':!![]});interaction_log['info']('[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x457d43[_0x56ca('0x63')]['id'],_0x457d43['user'][_0x56ca('0x3a')],_0x457d43[_0x56ca('0x63')][_0x56ca('0x6b')],_0x183115[_0x56ca('0x69')]['id'],_0x457d43[_0x56ca('0x59')]?JSON['stringify'](_0x457d43[_0x56ca('0x59')]):_0x56ca('0x6c'));return respondWithRpcPromise(_0x56ca('0x6d'),_0x56ca('0x6e'),_0x183115);}return null;})[_0x56ca('0x21')](function(_0xa3f786){var _0x47dbff=_0x56ca('0x6f')+_0xa3f786['message'][_0x56ca('0x70')];return db[_0x56ca('0x71')][_0x56ca('0x42')](_0x47dbff,{'type':db[_0x56ca('0x72')][_0x56ca('0x73')][_0x56ca('0x74')],'raw':!![]})[_0x56ca('0x21')](function(_0x12dd11){return _0x12dd11;});})[_0x56ca('0x21')](function(_0x4a6add){if(_0x4a6add){_0x183115[_0x56ca('0x29')]['contact']=_0x4a6add[0x0];if(!_0x457d43[_0x56ca('0x59')][_0x56ca('0x62')])return;return db[_0x56ca('0x75')][_0x56ca('0x5a')]({'where':{'id':_0x457d43[_0x56ca('0x59')][_0x56ca('0x62')],'role':_0x56ca('0x64')},'attributes':['id',_0x56ca('0x3a'),_0x56ca('0x76'),_0x56ca('0x77'),_0x56ca('0x78')],'raw':!![]});}return null;})[_0x56ca('0x21')](function(_0x1530b4){if(!_0x1530b4)return null;_0x183115['message'][_0x56ca('0x64')]=_0x1530b4;return _0x183115;})['then'](function(_0x280839){if(_0x280839){if(_0x457d43[_0x56ca('0x59')]['manual']){_0x183115[_0x56ca('0x29')][_0x56ca('0x79')]=util[_0x56ca('0x60')]('SIP/%s',_0x457d43[_0x56ca('0x63')][_0x56ca('0x3a')]);_0x183115['message'][_0x56ca('0x7a')]=_0x183115[_0x56ca('0x7a')];_0x183115[_0x56ca('0x29')][_0x56ca('0x7b')]=_0x183115[_0x56ca('0x7a')];_0x183115[_0x56ca('0x29')]['event']=_0x56ca('0x7c');return respondWithRpcPromise(_0x56ca('0x7d'),_0x56ca('0x7d'),{'event':_0x56ca('0x7e'),'message':_[_0x56ca('0x4d')](_0x183115[_0x56ca('0x29')],JSON[_0x56ca('0x7f')](_0x183115[_0x56ca('0x69')]['formData']))},client9002)['then'](function(){return _0x183115;});}return _0x183115;}return null;})[_0x56ca('0x21')](respondWithResult(_0x3fedd0,null))[_0x56ca('0x51')](handleError(_0x3fedd0,null));};var interaction_log=require(_0x56ca('0x14'))(_0x56ca('0x5c'));exports[_0x56ca('0x35')]=function(_0x2ea7e,_0x3e890c,_0x1af363){var _0x2d06b4={'agent':{},'channel':_0x56ca('0x5d')};if(_0x2ea7e['body']['id']){delete _0x2ea7e[_0x56ca('0x59')]['id'];}_0x2ea7e[_0x56ca('0x59')][_0x56ca('0x62')]=_0x2ea7e['body'][_0x56ca('0x62')]||_0x2ea7e[_0x56ca('0x63')]['id'];_0x2d06b4['agent']['id']=_0x2ea7e['body'][_0x56ca('0x62')];return db[_0x56ca('0x3c')][_0x56ca('0x5a')]({'where':{'id':_0x2ea7e[_0x56ca('0x53')]['id'],'UserId':null}})[_0x56ca('0x21')](handleEntityNotFound(_0x3e890c,null))[_0x56ca('0x21')](function(_0x987984){if(_0x987984){_0x2d06b4['message']=_0x987984[_0x56ca('0x6a')]({'plain':!![]});return db[_0x56ca('0x65')][_0x56ca('0x5a')]({'where':{'id':_0x987984[_0x56ca('0x66')]}});}return null;})[_0x56ca('0x21')](handleEntityNotFound(_0x3e890c,null))['then'](function(_0x482767){if(_0x482767){_0x2d06b4[_0x56ca('0x69')]=_0x482767[_0x56ca('0x6a')]({'plain':!![]});interaction_log[_0x56ca('0x80')](_0x56ca('0x81'),_0x2ea7e[_0x56ca('0x63')]['id'],_0x2ea7e['user'][_0x56ca('0x3a')],_0x2ea7e['user']['role'],_0x2d06b4['interaction']['id'],_0x2ea7e[_0x56ca('0x59')]?JSON[_0x56ca('0x26')](_0x2ea7e[_0x56ca('0x59')]):_0x56ca('0x6c'));return respondWithRpcPromise('RejectMessage','rejectMessage',_0x2d06b4);}return null;})['then'](function(_0x2847a5){var _0x400bb4='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2847a5[_0x56ca('0x29')][_0x56ca('0x70')];return db['sequelize']['query'](_0x400bb4,{'type':db[_0x56ca('0x72')][_0x56ca('0x73')][_0x56ca('0x74')],'raw':!![]})[_0x56ca('0x21')](function(_0x59a91c){return _0x59a91c;});})[_0x56ca('0x21')](function(_0x3ba7f4){if(_0x3ba7f4){_0x2d06b4[_0x56ca('0x29')][_0x56ca('0x82')]=_0x3ba7f4[0x0];if(!_0x2ea7e[_0x56ca('0x59')]['UserId'])return;return db[_0x56ca('0x75')]['find']({'where':{'id':_0x2ea7e['body'][_0x56ca('0x62')],'role':_0x56ca('0x64')},'attributes':['id',_0x56ca('0x3a'),_0x56ca('0x76'),_0x56ca('0x77'),_0x56ca('0x78')],'raw':!![]});}return null;})[_0x56ca('0x21')](function(_0xc37459){if(!_0xc37459)return null;_0x2d06b4[_0x56ca('0x29')][_0x56ca('0x64')]=_0xc37459;return _0x2d06b4;})[_0x56ca('0x21')](function(_0x151da1){if(_0x151da1){_0x151da1['message'][_0x56ca('0x79')]=util[_0x56ca('0x60')](_0x56ca('0x83'),_0x2ea7e[_0x56ca('0x63')][_0x56ca('0x3a')]);_0x151da1['message'][_0x56ca('0x7a')]=_0x2d06b4[_0x56ca('0x7a')];_0x151da1[_0x56ca('0x29')][_0x56ca('0x7b')]=_0x2d06b4['channel'];_0x151da1['message'][_0x56ca('0x84')]='reject';respondWithRpcPromise(_0x56ca('0x7d'),_0x56ca('0x7d'),{'event':_0x56ca('0x85'),'message':_[_0x56ca('0x4d')](_0x2d06b4[_0x56ca('0x29')],JSON[_0x56ca('0x7f')](_0x2d06b4[_0x56ca('0x69')][_0x56ca('0x86')]))},client9002);return _0x2d06b4;}return null;})[_0x56ca('0x21')](respondWithResult(_0x3e890c,null))[_0x56ca('0x51')](handleError(_0x3e890c,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(_0x1aa459,_0x48260b){var _0x1ca0a7=function(_0x2e86c2){while(--_0x2e86c2){_0x1aa459['push'](_0x1aa459['shift']());}};_0x1ca0a7(++_0x48260b);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3899d1,_0x4aa04c){_0x3899d1=_0x3899d1-0x0;var _0xeb4a7d=_0xa9e0[_0x3899d1];return _0xeb4a7d;};'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 _0x14f6=['hook','exports','../../mysqldb','ChatMessage','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0x4154a6,_0x2c0b8e){var _0x3b2786=function(_0x2f5936){while(--_0x2f5936){_0x4154a6['push'](_0x4154a6['shift']());}};_0x3b2786(++_0x2c0b8e);}(_0x14f6,0x84));var _0x614f=function(_0x6b0ba4,_0x183b0c){_0x6b0ba4=_0x6b0ba4-0x0;var _0x47748e=_0x14f6[_0x6b0ba4];return _0x47748e;};'use strict';var EventEmitter=require('events');var ChatMessage=require(_0x614f('0x0'))['db'][_0x614f('0x1')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents[_0x614f('0x2')](0x0);var events={'afterCreate':_0x614f('0x3'),'afterUpdate':_0x614f('0x4'),'afterDestroy':_0x614f('0x5')};function emitEvent(_0x26e894){return function(_0x5889fd,_0x5bfb81,_0x59c02c){ChatMessageEvents['emit'](_0x26e894+':'+_0x5889fd['id'],_0x5889fd);ChatMessageEvents[_0x614f('0x6')](_0x26e894,_0x5889fd);_0x59c02c(null);};}for(var e in events){if(events[_0x614f('0x7')](e)){var event=events[e];ChatMessage[_0x614f('0x8')](e,emitEvent(event));}}module[_0x614f('0x9')]=ChatMessageEvents;
\ No newline at end of file
+var _0x3e0c=['update','emit','hasOwnProperty','events','../../mysqldb','ChatMessage','setMaxListeners','save'];(function(_0x2cc119,_0x468257){var _0x4d72e=function(_0x380535){while(--_0x380535){_0x2cc119['push'](_0x2cc119['shift']());}};_0x4d72e(++_0x468257);}(_0x3e0c,0xbb));var _0xc3e0=function(_0x5f1c73,_0x4f9432){_0x5f1c73=_0x5f1c73-0x0;var _0x3c1fa4=_0x3e0c[_0x5f1c73];return _0x3c1fa4;};'use strict';var EventEmitter=require(_0xc3e0('0x0'));var ChatMessage=require(_0xc3e0('0x1'))['db'][_0xc3e0('0x2')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents[_0xc3e0('0x3')](0x0);var events={'afterCreate':_0xc3e0('0x4'),'afterUpdate':_0xc3e0('0x5'),'afterDestroy':'remove'};function emitEvent(_0x10743c){return function(_0x1130f8,_0x51ac58,_0x2bc67b){ChatMessageEvents['emit'](_0x10743c+':'+_0x1130f8['id'],_0x1130f8);ChatMessageEvents[_0xc3e0('0x6')](_0x10743c,_0x1130f8);_0x2bc67b(null);};}for(var e in events){if(events[_0xc3e0('0x7')](e)){var event=events[e];ChatMessage['hook'](e,emitEvent(event));}}module['exports']=ChatMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe23b=['fti_chat_messages','body','FULLTEXT','models','get','direction','toLowerCase','out','isNil','UserId','ChatInteraction','findOne','ChatInteractionId','then','update','createdAt','catch','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','exports','define','ChatMessage','chat_messages'];(function(_0x128198,_0x19531f){var _0x1ca348=function(_0x1e993c){while(--_0x1e993c){_0x128198['push'](_0x128198['shift']());}};_0x1ca348(++_0x19531f);}(_0xe23b,0xc7));var _0xbe23=function(_0x3e4f57,_0x984b36){_0x3e4f57=_0x3e4f57-0x0;var _0x56428f=_0xe23b[_0x3e4f57];return _0x56428f;};'use strict';var _=require(_0xbe23('0x0'));var util=require(_0xbe23('0x1'));var logger=require(_0xbe23('0x2'))(_0xbe23('0x3'));var moment=require(_0xbe23('0x4'));var BPromise=require(_0xbe23('0x5'));var rp=require(_0xbe23('0x6'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./chatMessage.attributes');module[_0xbe23('0x7')]=function(_0x3505b6,_0x2d2189){return _0x3505b6[_0xbe23('0x8')](_0xbe23('0x9'),attributes,{'tableName':_0xbe23('0xa'),'paranoid':![],'indexes':[{'name':_0xbe23('0xb'),'fields':[_0xbe23('0xc')],'type':_0xbe23('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4ee93b,_0xfa618c,_0x3c25e0){var _0xe3c3df=_0x3505b6[_0xbe23('0xe')];var _0x3bdc66=_0x4ee93b[_0xbe23('0xf')]({'plain':!![]});if(_0x3bdc66[_0xbe23('0x10')][_0xbe23('0x11')]()==='in'||_0x3bdc66['direction'][_0xbe23('0x11')]()===_0xbe23('0x12')&&!_0x3bdc66['secret']&&!_[_0xbe23('0x13')](_0x3bdc66[_0xbe23('0x14')])){_0xe3c3df[_0xbe23('0x15')][_0xbe23('0x16')]({'where':{'id':_0x3bdc66[_0xbe23('0x17')]}})[_0xbe23('0x18')](function(_0x15b30d){if(_0x15b30d){_0x15b30d[_0xbe23('0x19')]({'lastMsgAt':_0x3bdc66[_0xbe23('0x1a')],'lastMsgDirection':_0x3bdc66[_0xbe23('0x10')]['toLowerCase']()});}})[_0xbe23('0x1b')](function(_0x44d60f){console['error'](_0x44d60f);});}_0x3c25e0();}},'charset':_0xbe23('0x1c'),'collate':_0xbe23('0x1d')});};
\ No newline at end of file
+var _0xbc5b=['toLowerCase','out','secret','isNil','ChatInteraction','findOne','ChatInteractionId','then','update','error','utf8mb4_unicode_ci','util','../../config/logger','api','moment','request-promise','path','rimraf','./chatMessage.attributes','exports','define','ChatMessage','chat_messages','fti_chat_messages','body','FULLTEXT','models','direction'];(function(_0x4629ed,_0x59ef85){var _0x52ca04=function(_0x59dc63){while(--_0x59dc63){_0x4629ed['push'](_0x4629ed['shift']());}};_0x52ca04(++_0x59ef85);}(_0xbc5b,0x177));var _0xbbc5=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0xbc5b[_0x502c7d];return _0x30b7ed;};'use strict';var _=require('lodash');var util=require(_0xbbc5('0x0'));var logger=require(_0xbbc5('0x1'))(_0xbbc5('0x2'));var moment=require(_0xbbc5('0x3'));var BPromise=require('bluebird');var rp=require(_0xbbc5('0x4'));var fs=require('fs');var path=require(_0xbbc5('0x5'));var rimraf=require(_0xbbc5('0x6'));var config=require('../../config/environment');var attributes=require(_0xbbc5('0x7'));module[_0xbbc5('0x8')]=function(_0x482ddf,_0x3b2da2){return _0x482ddf[_0xbbc5('0x9')](_0xbbc5('0xa'),attributes,{'tableName':_0xbbc5('0xb'),'paranoid':![],'indexes':[{'name':_0xbbc5('0xc'),'fields':[_0xbbc5('0xd')],'type':_0xbbc5('0xe')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4888e7,_0x412a1f,_0x53d8ba){var _0x3531bf=_0x482ddf[_0xbbc5('0xf')];var _0x4e56d9=_0x4888e7['get']({'plain':!![]});if(_0x4e56d9[_0xbbc5('0x10')]['toLowerCase']()==='in'||_0x4e56d9[_0xbbc5('0x10')][_0xbbc5('0x11')]()===_0xbbc5('0x12')&&!_0x4e56d9[_0xbbc5('0x13')]&&!_[_0xbbc5('0x14')](_0x4e56d9['UserId'])){_0x3531bf[_0xbbc5('0x15')][_0xbbc5('0x16')]({'where':{'id':_0x4e56d9[_0xbbc5('0x17')]}})[_0xbbc5('0x18')](function(_0x177ec7){if(_0x177ec7){_0x177ec7[_0xbbc5('0x19')]({'lastMsgAt':_0x4e56d9['createdAt'],'lastMsgDirection':_0x4e56d9['direction']['toLowerCase']()});}})['catch'](function(_0x1669cc){console[_0xbbc5('0x1a')](_0x1669cc);});}_0x53d8ba();}},'charset':'utf8mb4','collate':_0xbbc5('0x1b')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x586b=['debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','result','CreateChatMessage','ChatMessage','create','body','options','raw','catch','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','redis','defaults','socket.io-emitter','./chatMessage.socket','register','request','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent'];(function(_0x46e484,_0x57ac0f){var _0x4d71ce=function(_0x56fba4){while(--_0x56fba4){_0x46e484['push'](_0x46e484['shift']());}};_0x4d71ce(++_0x57ac0f);}(_0x586b,0xb2));var _0xb586=function(_0x9a1a19,_0x4b4b9a){_0x9a1a19=_0x9a1a19-0x0;var _0x259c9a=_0x586b[_0x9a1a19];return _0x259c9a;};'use strict';var _=require(_0xb586('0x0'));var util=require(_0xb586('0x1'));var moment=require('moment');var BPromise=require(_0xb586('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xb586('0x3'));var db=require(_0xb586('0x4'))['db'];var utils=require(_0xb586('0x5'));var logger=require(_0xb586('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0xb586('0x7'));var client=jayson[_0xb586('0x8')][_0xb586('0x9')]({'port':0x232a});config[_0xb586('0xa')]=_[_0xb586('0xb')](config[_0xb586('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0xb586('0xc'))(new Redis(config[_0xb586('0xa')]));require(_0xb586('0xd'))[_0xb586('0xe')](socket);function respondWithRpcPromise(_0x39d8b5,_0x1fd9ef,_0x4c5e1b){return new BPromise(function(_0x3ae6b9,_0x19a2ad){return client[_0xb586('0xf')](_0x39d8b5,_0x4c5e1b)[_0xb586('0x10')](function(_0x436a4d){logger[_0xb586('0x11')](_0xb586('0x12'),_0x1fd9ef,_0xb586('0x13'));logger[_0xb586('0x14')](_0xb586('0x15'),_0x1fd9ef,_0xb586('0x13'),JSON[_0xb586('0x16')](_0x436a4d));if(_0x436a4d[_0xb586('0x17')]){if(_0x436a4d[_0xb586('0x17')]['code']===0x1f4){logger[_0xb586('0x17')]('ChatMessage,\x20%s,\x20%s',_0x1fd9ef,_0x436a4d[_0xb586('0x17')][_0xb586('0x18')]);return _0x19a2ad(_0x436a4d[_0xb586('0x17')][_0xb586('0x18')]);}logger[_0xb586('0x17')]('ChatMessage,\x20%s,\x20%s',_0x1fd9ef,_0x436a4d[_0xb586('0x17')][_0xb586('0x18')]);return _0x3ae6b9(_0x436a4d['error'][_0xb586('0x18')]);}else{logger[_0xb586('0x11')](_0xb586('0x12'),_0x1fd9ef,_0xb586('0x13'));_0x3ae6b9(_0x436a4d[_0xb586('0x19')][_0xb586('0x18')]);}})['catch'](function(_0x50a973){logger[_0xb586('0x17')](_0xb586('0x12'),_0x1fd9ef,_0x50a973);_0x19a2ad(_0x50a973);});});}exports[_0xb586('0x1a')]=function(_0x3c4eef){var _0x1648ed=this;return new Promise(function(_0x93bcda,_0x33ea61){return db[_0xb586('0x1b')][_0xb586('0x1c')](_0x3c4eef[_0xb586('0x1d')],{'raw':_0x3c4eef['options']?_0x3c4eef[_0xb586('0x1e')][_0xb586('0x1f')]===undefined?!![]:![]:!![]})[_0xb586('0x10')](function(_0x2bbdc2){logger[_0xb586('0x11')](_0xb586('0x1a'),_0x3c4eef);logger[_0xb586('0x14')](_0xb586('0x1a'),_0x3c4eef,JSON[_0xb586('0x16')](_0x2bbdc2));_0x93bcda(_0x2bbdc2);})[_0xb586('0x20')](function(_0x524e1a){logger['error']('CreateChatMessage',_0x524e1a[_0xb586('0x18')],_0x3c4eef);_0x33ea61(_0x1648ed[_0xb586('0x17')](0x1f4,_0x524e1a[_0xb586('0x18')]));});});};
\ No newline at end of file
+var _0x028d=['socket.io-emitter','./chatMessage.socket','register','then','info','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s','error','code','ChatMessage,\x20%s,\x20%s','message','result','catch','CreateChatMessage','ChatMessage','options','raw','stringify','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','redis','defaults','localhost'];(function(_0x2ba933,_0x320b32){var _0x217996=function(_0x48f946){while(--_0x48f946){_0x2ba933['push'](_0x2ba933['shift']());}};_0x217996(++_0x320b32);}(_0x028d,0x1e1));var _0xd028=function(_0x343f84,_0x2723a4){_0x343f84=_0x343f84-0x0;var _0x434f34=_0x028d[_0x343f84];return _0x434f34;};'use strict';var _=require('lodash');var util=require(_0xd028('0x0'));var moment=require(_0xd028('0x1'));var BPromise=require(_0xd028('0x2'));var rs=require(_0xd028('0x3'));var fs=require('fs');var Redis=require(_0xd028('0x4'));var db=require(_0xd028('0x5'))['db'];var utils=require(_0xd028('0x6'));var logger=require(_0xd028('0x7'))(_0xd028('0x8'));var config=require(_0xd028('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xd028('0xa')]['http']({'port':0x232a});config[_0xd028('0xb')]=_[_0xd028('0xc')](config[_0xd028('0xb')],{'host':_0xd028('0xd'),'port':0x18eb});var socket=require(_0xd028('0xe'))(new Redis(config[_0xd028('0xb')]));require(_0xd028('0xf'))[_0xd028('0x10')](socket);function respondWithRpcPromise(_0x4ce66c,_0x4fd68a,_0x5bfbbc){return new BPromise(function(_0x448418,_0x21b194){return client['request'](_0x4ce66c,_0x5bfbbc)[_0xd028('0x11')](function(_0x3a3045){logger[_0xd028('0x12')]('ChatMessage,\x20%s,\x20%s',_0x4fd68a,_0xd028('0x13'));logger[_0xd028('0x14')](_0xd028('0x15'),_0x4fd68a,_0xd028('0x13'),JSON['stringify'](_0x3a3045));if(_0x3a3045['error']){if(_0x3a3045[_0xd028('0x16')][_0xd028('0x17')]===0x1f4){logger[_0xd028('0x16')](_0xd028('0x18'),_0x4fd68a,_0x3a3045[_0xd028('0x16')][_0xd028('0x19')]);return _0x21b194(_0x3a3045[_0xd028('0x16')]['message']);}logger['error'](_0xd028('0x18'),_0x4fd68a,_0x3a3045[_0xd028('0x16')][_0xd028('0x19')]);return _0x448418(_0x3a3045['error'][_0xd028('0x19')]);}else{logger[_0xd028('0x12')](_0xd028('0x18'),_0x4fd68a,_0xd028('0x13'));_0x448418(_0x3a3045[_0xd028('0x1a')][_0xd028('0x19')]);}})[_0xd028('0x1b')](function(_0x54824d){logger['error'](_0xd028('0x18'),_0x4fd68a,_0x54824d);_0x21b194(_0x54824d);});});}exports[_0xd028('0x1c')]=function(_0x38aee){var _0xdf6e1d=this;return new Promise(function(_0x1a7c8b,_0x209335){return db[_0xd028('0x1d')]['create'](_0x38aee['body'],{'raw':_0x38aee[_0xd028('0x1e')]?_0x38aee[_0xd028('0x1e')][_0xd028('0x1f')]===undefined?!![]:![]:!![]})[_0xd028('0x11')](function(_0x6025d8){logger['info'](_0xd028('0x1c'),_0x38aee);logger[_0xd028('0x14')](_0xd028('0x1c'),_0x38aee,JSON[_0xd028('0x20')](_0x6025d8));_0x1a7c8b(_0x6025d8);})[_0xd028('0x1b')](function(_0x3769de){logger[_0xd028('0x16')](_0xd028('0x1c'),_0x3769de[_0xd028('0x19')],_0x38aee);_0x209335(_0xdf6e1d[_0xd028('0x16')](0x1f4,_0x3769de['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa786=['removeListener','register','length','chatMessage:','remove','update','emit'];(function(_0x1b60e0,_0x46a879){var _0x1bda6c=function(_0x10d051){while(--_0x10d051){_0x1b60e0['push'](_0x1b60e0['shift']());}};_0x1bda6c(++_0x46a879);}(_0xa786,0x1d2));var _0x6a78=function(_0xd5856e,_0x4aabba){_0xd5856e=_0xd5856e-0x0;var _0x6f0d2=_0xa786[_0xd5856e];return _0x6f0d2;};'use strict';var ChatMessageEvents=require('./chatMessage.events');var events=['save',_0x6a78('0x0'),_0x6a78('0x1')];function createListener(_0x96d812,_0x2c7e2a){return function(_0x22723f){_0x2c7e2a[_0x6a78('0x2')](_0x96d812,_0x22723f);};}function removeListener(_0x34b520,_0x521b4a){return function(){ChatMessageEvents[_0x6a78('0x3')](_0x34b520,_0x521b4a);};}exports[_0x6a78('0x4')]=function(_0xc0be8b){for(var _0x45470e=0x0,_0x28d286=events[_0x6a78('0x5')];_0x45470e<_0x28d286;_0x45470e++){var _0x2b8c4c=events[_0x45470e];var _0x2a6de6=createListener(_0x6a78('0x6')+_0x2b8c4c,_0xc0be8b);ChatMessageEvents['on'](_0x2b8c4c,_0x2a6de6);}};
\ No newline at end of file
+var _0xfcbd=['length','chatMessage:','./chatMessage.events','update','emit','removeListener','register'];(function(_0x1d5400,_0x567e3c){var _0x21d9fe=function(_0x23fb75){while(--_0x23fb75){_0x1d5400['push'](_0x1d5400['shift']());}};_0x21d9fe(++_0x567e3c);}(_0xfcbd,0x160));var _0xdfcb=function(_0x145016,_0x40ba0b){_0x145016=_0x145016-0x0;var _0x4a57e8=_0xfcbd[_0x145016];return _0x4a57e8;};'use strict';var ChatMessageEvents=require(_0xdfcb('0x0'));var events=['save','remove',_0xdfcb('0x1')];function createListener(_0x3df05b,_0x2785df){return function(_0x3ec4cc){_0x2785df[_0xdfcb('0x2')](_0x3df05b,_0x3ec4cc);};}function removeListener(_0xde9380,_0x545391){return function(){ChatMessageEvents[_0xdfcb('0x3')](_0xde9380,_0x545391);};}exports[_0xdfcb('0x4')]=function(_0x4bdf76){for(var _0x5615a6=0x0,_0x46956c=events[_0xdfcb('0x5')];_0x5615a6<_0x46956c;_0x5615a6++){var _0xb8de95=events[_0x5615a6];var _0x3c5431=createListener(_0xdfcb('0x6')+_0xb8de95,_0x4bdf76);ChatMessageEvents['on'](_0xb8de95,_0x3c5431);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x055d=['/describe','/:id','show','chat','chatmessage:create','create','put','update','/:id/accept','accept','/:id/reject','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../config/environment','get','isAuthenticated','index'];(function(_0x50007c,_0x1cbf11){var _0x5c1ec7=function(_0x52d038){while(--_0x52d038){_0x50007c['push'](_0x50007c['shift']());}};_0x5c1ec7(++_0x1cbf11);}(_0x055d,0x69));var _0xd055=function(_0xf5613d,_0x1063ad){_0xf5613d=_0xf5613d-0x0;var _0x38a5b0=_0x055d[_0xf5613d];return _0x38a5b0;};'use strict';var multer=require(_0xd055('0x0'));var util=require(_0xd055('0x1'));var path=require('path');var timeout=require(_0xd055('0x2'));var express=require(_0xd055('0x3'));var router=express[_0xd055('0x4')]();var fs_extra=require(_0xd055('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xd055('0x6'));var controller=require('./chatMessage.controller');router[_0xd055('0x7')]('/',auth[_0xd055('0x8')](),controller[_0xd055('0x9')]);router[_0xd055('0x7')](_0xd055('0xa'),auth[_0xd055('0x8')](),controller['describe']);router['get'](_0xd055('0xb'),auth[_0xd055('0x8')](),controller[_0xd055('0xc')]);router['post']('/',auth[_0xd055('0x8')](),interaction['tracked'](_0xd055('0xd'),_0xd055('0xe')),controller[_0xd055('0xf')]);router[_0xd055('0x10')]('/:id',controller[_0xd055('0x11')]);router[_0xd055('0x10')](_0xd055('0x12'),auth[_0xd055('0x8')](),controller[_0xd055('0x13')]);router[_0xd055('0x10')](_0xd055('0x14'),auth[_0xd055('0x8')](),controller['reject']);router['delete']('/:id',auth[_0xd055('0x8')](),controller[_0xd055('0x15')]);module[_0xd055('0x16')]=router;
\ No newline at end of file
+var _0xe4c7=['util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','get','/describe','isAuthenticated','/:id','show','post','tracked','chatmessage:create','put','update','/:id/accept','accept','/:id/reject','reject','destroy','exports','multer'];(function(_0x58b693,_0x14ee77){var _0x400350=function(_0x55a488){while(--_0x55a488){_0x58b693['push'](_0x58b693['shift']());}};_0x400350(++_0x14ee77);}(_0xe4c7,0x158));var _0x7e4c=function(_0x216bb8,_0x103b3b){_0x216bb8=_0x216bb8-0x0;var _0x5756ad=_0xe4c7[_0x216bb8];return _0x5756ad;};'use strict';var multer=require(_0x7e4c('0x0'));var util=require(_0x7e4c('0x1'));var path=require(_0x7e4c('0x2'));var timeout=require(_0x7e4c('0x3'));var express=require('express');var router=express[_0x7e4c('0x4')]();var fs_extra=require(_0x7e4c('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x7e4c('0x6'));var config=require('../../config/environment');var controller=require('./chatMessage.controller');router[_0x7e4c('0x7')]('/',auth['isAuthenticated'](),controller['index']);router[_0x7e4c('0x7')](_0x7e4c('0x8'),auth[_0x7e4c('0x9')](),controller['describe']);router[_0x7e4c('0x7')](_0x7e4c('0xa'),auth['isAuthenticated'](),controller[_0x7e4c('0xb')]);router[_0x7e4c('0xc')]('/',auth[_0x7e4c('0x9')](),interaction[_0x7e4c('0xd')]('chat',_0x7e4c('0xe')),controller['create']);router[_0x7e4c('0xf')](_0x7e4c('0xa'),controller[_0x7e4c('0x10')]);router[_0x7e4c('0xf')](_0x7e4c('0x11'),auth[_0x7e4c('0x9')](),controller[_0x7e4c('0x12')]);router[_0x7e4c('0xf')](_0x7e4c('0x13'),auth[_0x7e4c('0x9')](),controller[_0x7e4c('0x14')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0x7e4c('0x15')]);module[_0x7e4c('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9174=['sequelize'];(function(_0x2ef682,_0x3922af){var _0x2640ca=function(_0x37f6bb){while(--_0x37f6bb){_0x2ef682['push'](_0x2ef682['shift']());}};_0x2640ca(++_0x3922af);}(_0x9174,0xf6));var _0x4917=function(_0x5ed0c7,_0x1ea298){_0x5ed0c7=_0x5ed0c7-0x0;var _0x3c932c=_0x9174[_0x5ed0c7];return _0x3c932c;};'use strict';var Sequelize=require(_0x4917('0x0'));module['exports']={'body':{'type':Sequelize['TEXT']('medium'),'allowNull':![]}};
\ No newline at end of file
+var _0x9657=['exports','medium','sequelize'];(function(_0x3a95c3,_0x3985d4){var _0x4cdc4c=function(_0x55369d){while(--_0x55369d){_0x3a95c3['push'](_0x3a95c3['shift']());}};_0x4cdc4c(++_0x3985d4);}(_0x9657,0x125));var _0x7965=function(_0x3a5c00,_0x4106d1){_0x3a5c00=_0x3a5c00-0x0;var _0x58e0f6=_0x9657[_0x3a5c00];return _0x58e0f6;};'use strict';var Sequelize=require(_0x7965('0x0'));module[_0x7965('0x1')]={'body':{'type':Sequelize['TEXT'](_0x7965('0x2')),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-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(_0x1abb09,_0x18ee91){var _0xea1c07=function(_0x38f42c){while(--_0x38f42c){_0x1abb09['push'](_0x1abb09['shift']());}};_0xea1c07(++_0x18ee91);}(_0x7a54,0x106));var _0x47a5=function(_0x59472d,_0x2c6af2){_0x59472d=_0x59472d-0x0;var _0x4f34df=_0x7a54[_0x59472d];return _0x4f34df;};'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
+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(_0x3ac87f,_0x3975db){var _0x134c8b=function(_0x5ec12e){while(--_0x5ec12e){_0x3ac87f['push'](_0x3ac87f['shift']());}};_0x134c8b(++_0x3975db);}(_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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1b9=['chat_offline_messages','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./chatOfflineMessage.attributes','exports','define'];(function(_0xacb5d6,_0xfe015e){var _0x34cf8a=function(_0x5748ef){while(--_0x5748ef){_0xacb5d6['push'](_0xacb5d6['shift']());}};_0x34cf8a(++_0xfe015e);}(_0xa1b9,0xa3));var _0x9a1b=function(_0x2cfb58,_0x3d9412){_0x2cfb58=_0x2cfb58-0x0;var _0xd99951=_0xa1b9[_0x2cfb58];return _0xd99951;};'use strict';var _=require(_0x9a1b('0x0'));var util=require(_0x9a1b('0x1'));var logger=require(_0x9a1b('0x2'))(_0x9a1b('0x3'));var moment=require(_0x9a1b('0x4'));var BPromise=require(_0x9a1b('0x5'));var rp=require(_0x9a1b('0x6'));var fs=require('fs');var path=require(_0x9a1b('0x7'));var rimraf=require(_0x9a1b('0x8'));var config=require(_0x9a1b('0x9'));var attributes=require(_0x9a1b('0xa'));module[_0x9a1b('0xb')]=function(_0x1bf0fd,_0x160e45){return _0x1bf0fd[_0x9a1b('0xc')]('ChatOfflineMessage',attributes,{'tableName':_0x9a1b('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x9a1b('0xe'),'collate':_0x9a1b('0xf')});};
\ No newline at end of file
+var _0xc3c9=['rimraf','../../config/environment','ChatOfflineMessage','chat_offline_messages','utf8mb4','utf8mb4_unicode_ci','lodash','util','api','bluebird','request-promise','path'];(function(_0x3ba555,_0x1d1e39){var _0x2a759a=function(_0x12bb21){while(--_0x12bb21){_0x3ba555['push'](_0x3ba555['shift']());}};_0x2a759a(++_0x1d1e39);}(_0xc3c9,0x13e));var _0x9c3c=function(_0x280918,_0x5b4cbc){_0x280918=_0x280918-0x0;var _0x5020b9=_0xc3c9[_0x280918];return _0x5020b9;};'use strict';var _=require(_0x9c3c('0x0'));var util=require(_0x9c3c('0x1'));var logger=require('../../config/logger')(_0x9c3c('0x2'));var moment=require('moment');var BPromise=require(_0x9c3c('0x3'));var rp=require(_0x9c3c('0x4'));var fs=require('fs');var path=require(_0x9c3c('0x5'));var rimraf=require(_0x9c3c('0x6'));var config=require(_0x9c3c('0x7'));var attributes=require('./chatOfflineMessage.attributes');module['exports']=function(_0xfbf592,_0x43dc85){return _0xfbf592['define'](_0x9c3c('0x8'),attributes,{'tableName':_0x9c3c('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x9c3c('0xa'),'collate':_0x9c3c('0xb')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe1e5=['debug','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','ChatOfflineMessage,\x20%s,\x20%s','request\x20sent'];(function(_0x49c3fd,_0x1336fe){var _0x1a1cfb=function(_0x5ae51a){while(--_0x5ae51a){_0x49c3fd['push'](_0x49c3fd['shift']());}};_0x1a1cfb(++_0x1336fe);}(_0xe1e5,0x156));var _0x5e1e=function(_0x5de390,_0x3b9908){_0x5de390=_0x5de390-0x0;var _0x12bf75=_0xe1e5[_0x5de390];return _0x12bf75;};'use strict';var _=require(_0x5e1e('0x0'));var util=require(_0x5e1e('0x1'));var moment=require(_0x5e1e('0x2'));var BPromise=require(_0x5e1e('0x3'));var rs=require(_0x5e1e('0x4'));var fs=require('fs');var Redis=require(_0x5e1e('0x5'));var db=require(_0x5e1e('0x6'))['db'];var utils=require(_0x5e1e('0x7'));var logger=require(_0x5e1e('0x8'))(_0x5e1e('0x9'));var config=require('../../config/environment');var jayson=require(_0x5e1e('0xa'));var client=jayson[_0x5e1e('0xb')][_0x5e1e('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x4aa6ed,_0x2f6dcc,_0x1c8cc2){return new BPromise(function(_0x525a9a,_0x459546){return client[_0x5e1e('0xd')](_0x4aa6ed,_0x1c8cc2)[_0x5e1e('0xe')](function(_0x43acef){logger[_0x5e1e('0xf')](_0x5e1e('0x10'),_0x2f6dcc,_0x5e1e('0x11'));logger[_0x5e1e('0x12')]('ChatOfflineMessage,\x20%s,\x20%s,\x20%s',_0x2f6dcc,'request\x20sent',JSON[_0x5e1e('0x13')](_0x43acef));if(_0x43acef[_0x5e1e('0x14')]){if(_0x43acef[_0x5e1e('0x14')][_0x5e1e('0x15')]===0x1f4){logger[_0x5e1e('0x14')](_0x5e1e('0x10'),_0x2f6dcc,_0x43acef[_0x5e1e('0x14')]['message']);return _0x459546(_0x43acef['error'][_0x5e1e('0x16')]);}logger[_0x5e1e('0x14')](_0x5e1e('0x10'),_0x2f6dcc,_0x43acef[_0x5e1e('0x14')][_0x5e1e('0x16')]);return _0x525a9a(_0x43acef[_0x5e1e('0x14')][_0x5e1e('0x16')]);}else{logger['info']('ChatOfflineMessage,\x20%s,\x20%s',_0x2f6dcc,_0x5e1e('0x11'));_0x525a9a(_0x43acef['result']['message']);}})[_0x5e1e('0x17')](function(_0x419f54){logger['error'](_0x5e1e('0x10'),_0x2f6dcc,_0x419f54);_0x459546(_0x419f54);});});}
\ No newline at end of file
+var _0xa3b9=['error','code','message','request\x20sent','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','info','ChatOfflineMessage,\x20%s,\x20%s','ChatOfflineMessage,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x31be68,_0x3ca6b9){var _0x39f52=function(_0x40ea91){while(--_0x40ea91){_0x31be68['push'](_0x31be68['shift']());}};_0x39f52(++_0x3ca6b9);}(_0xa3b9,0x102));var _0x9a3b=function(_0x280b65,_0x1585d8){_0x280b65=_0x280b65-0x0;var _0x5bc9b4=_0xa3b9[_0x280b65];return _0x5bc9b4;};'use strict';var _=require(_0x9a3b('0x0'));var util=require(_0x9a3b('0x1'));var moment=require(_0x9a3b('0x2'));var BPromise=require(_0x9a3b('0x3'));var rs=require(_0x9a3b('0x4'));var fs=require('fs');var Redis=require(_0x9a3b('0x5'));var db=require(_0x9a3b('0x6'))['db'];var utils=require(_0x9a3b('0x7'));var logger=require(_0x9a3b('0x8'))(_0x9a3b('0x9'));var config=require('../../config/environment');var jayson=require(_0x9a3b('0xa'));var client=jayson[_0x9a3b('0xb')][_0x9a3b('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x21dccb,_0x70da0a,_0x421c6d){return new BPromise(function(_0x17d680,_0x145732){return client[_0x9a3b('0xd')](_0x21dccb,_0x421c6d)['then'](function(_0x63c732){logger[_0x9a3b('0xe')](_0x9a3b('0xf'),_0x70da0a,'request\x20sent');logger['debug'](_0x9a3b('0x10'),_0x70da0a,'request\x20sent',JSON[_0x9a3b('0x11')](_0x63c732));if(_0x63c732[_0x9a3b('0x12')]){if(_0x63c732[_0x9a3b('0x12')][_0x9a3b('0x13')]===0x1f4){logger[_0x9a3b('0x12')]('ChatOfflineMessage,\x20%s,\x20%s',_0x70da0a,_0x63c732[_0x9a3b('0x12')][_0x9a3b('0x14')]);return _0x145732(_0x63c732['error'][_0x9a3b('0x14')]);}logger[_0x9a3b('0x12')](_0x9a3b('0xf'),_0x70da0a,_0x63c732[_0x9a3b('0x12')][_0x9a3b('0x14')]);return _0x17d680(_0x63c732[_0x9a3b('0x12')][_0x9a3b('0x14')]);}else{logger[_0x9a3b('0xe')]('ChatOfflineMessage,\x20%s,\x20%s',_0x70da0a,_0x9a3b('0x15'));_0x17d680(_0x63c732[_0x9a3b('0x16')]['message']);}})['catch'](function(_0x463e1b){logger['error'](_0x9a3b('0xf'),_0x70da0a,_0x463e1b);_0x145732(_0x463e1b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b76=['../../components/auth/service','../../config/environment','./chatOfflineMessage.controller','get','isAuthenticated','index','/describe','describe','/:id','create','put','update','delete','destroy','exports','multer','util','connect-timeout','express','Router'];(function(_0x7791d5,_0xdab65f){var _0x5ce288=function(_0x2b818d){while(--_0x2b818d){_0x7791d5['push'](_0x7791d5['shift']());}};_0x5ce288(++_0xdab65f);}(_0x5b76,0x1b3));var _0x65b7=function(_0x39f11f,_0x3201ac){_0x39f11f=_0x39f11f-0x0;var _0x39054c=_0x5b76[_0x39f11f];return _0x39054c;};'use strict';var multer=require(_0x65b7('0x0'));var util=require(_0x65b7('0x1'));var path=require('path');var timeout=require(_0x65b7('0x2'));var express=require(_0x65b7('0x3'));var router=express[_0x65b7('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x65b7('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x65b7('0x6'));var controller=require(_0x65b7('0x7'));router[_0x65b7('0x8')]('/',auth[_0x65b7('0x9')](),controller[_0x65b7('0xa')]);router[_0x65b7('0x8')](_0x65b7('0xb'),auth['isAuthenticated'](),controller[_0x65b7('0xc')]);router['get'](_0x65b7('0xd'),auth[_0x65b7('0x9')](),controller['show']);router['post']('/',auth[_0x65b7('0x9')](),controller[_0x65b7('0xe')]);router[_0x65b7('0xf')]('/:id',auth['isAuthenticated'](),controller[_0x65b7('0x10')]);router[_0x65b7('0x11')](_0x65b7('0xd'),auth[_0x65b7('0x9')](),controller[_0x65b7('0x12')]);module[_0x65b7('0x13')]=router;
\ No newline at end of file
+var _0x2bd1=['destroy','exports','multer','util','path','connect-timeout','../../config/environment','./chatOfflineMessage.controller','get','index','/describe','isAuthenticated','describe','show','post','create','put','/:id','update','delete'];(function(_0x2bd59b,_0x5abd10){var _0x4ef8bb=function(_0x2a6e75){while(--_0x2a6e75){_0x2bd59b['push'](_0x2bd59b['shift']());}};_0x4ef8bb(++_0x5abd10);}(_0x2bd1,0x66));var _0x12bd=function(_0x286e62,_0x14b6cc){_0x286e62=_0x286e62-0x0;var _0x419530=_0x2bd1[_0x286e62];return _0x419530;};'use strict';var multer=require(_0x12bd('0x0'));var util=require(_0x12bd('0x1'));var path=require(_0x12bd('0x2'));var timeout=require(_0x12bd('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x12bd('0x4'));var controller=require(_0x12bd('0x5'));router[_0x12bd('0x6')]('/',auth['isAuthenticated'](),controller[_0x12bd('0x7')]);router['get'](_0x12bd('0x8'),auth[_0x12bd('0x9')](),controller[_0x12bd('0xa')]);router[_0x12bd('0x6')]('/:id',auth[_0x12bd('0x9')](),controller[_0x12bd('0xb')]);router[_0x12bd('0xc')]('/',auth[_0x12bd('0x9')](),controller[_0x12bd('0xd')]);router[_0x12bd('0xe')](_0x12bd('0xf'),auth['isAuthenticated'](),controller[_0x12bd('0x10')]);router[_0x12bd('0x11')](_0x12bd('0xf'),auth[_0x12bd('0x9')](),controller[_0x12bd('0x12')]);module[_0x12bd('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe367=['mouseOver','timeout','INTEGER','STRING','ENUM'];(function(_0x331085,_0x46ef3b){var _0x1547f4=function(_0x549b5d){while(--_0x549b5d){_0x331085['push'](_0x331085['shift']());}};_0x1547f4(++_0x46ef3b);}(_0xe367,0x157));var _0x7e36=function(_0x4e676e,_0x2a7c6d){_0x4e676e=_0x4e676e-0x0;var _0x336a3c=_0xe367[_0x4e676e];return _0x336a3c;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x7e36('0x0')],'allowNull':![]},'type':{'type':Sequelize[_0x7e36('0x1')](_0x7e36('0x2'),_0x7e36('0x3')),'defaultValue':_0x7e36('0x2')},'selector':{'type':Sequelize[_0x7e36('0x0')]},'timeout':{'type':Sequelize[_0x7e36('0x4')]}};
\ No newline at end of file
+var _0xbbb5=['mouseOver','STRING','INTEGER','sequelize','exports','ENUM'];(function(_0x281548,_0x272151){var _0x11cdfc=function(_0x2237c){while(--_0x2237c){_0x281548['push'](_0x281548['shift']());}};_0x11cdfc(++_0x272151);}(_0xbbb5,0x19b));var _0x5bbb=function(_0x5a79a2,_0x3fa820){_0x5a79a2=_0x5a79a2-0x0;var _0x1b9470=_0xbbb5[_0x5a79a2];return _0x1b9470;};'use strict';var Sequelize=require(_0x5bbb('0x0'));module[_0x5bbb('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x5bbb('0x2')](_0x5bbb('0x3'),'timeout'),'defaultValue':'mouseOver'},'selector':{'type':Sequelize[_0x5bbb('0x4')]},'timeout':{'type':Sequelize[_0x5bbb('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c22=['lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','destroy','error','stack','name','show','params','model','ChatProactiveAction','rawAttributes','query','keys','filters','attributes','fields','length','includeAll','include','merge','options','find','catch','create','body','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','sox','ejs'];(function(_0x87c1d4,_0x15228a){var _0x2cefe7=function(_0x5d575a){while(--_0x5d575a){_0x87c1d4['push'](_0x87c1d4['shift']());}};_0x2cefe7(++_0x15228a);}(_0x7c22,0x6c));var _0x27c2=function(_0x2bad42,_0x8db335){_0x2bad42=_0x2bad42-0x0;var _0xbdf690=_0x7c22[_0x2bad42];return _0xbdf690;};'use strict';var emlformat=require(_0x27c2('0x0'));var rimraf=require(_0x27c2('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x27c2('0x2'));var rp=require(_0x27c2('0x3'));var moment=require('moment');var BPromise=require(_0x27c2('0x4'));var Mustache=require(_0x27c2('0x5'));var util=require('util');var path=require('path');var sox=require(_0x27c2('0x6'));var csv=require('to-csv');var ejs=require(_0x27c2('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x27c2('0x8'));var squel=require(_0x27c2('0x9'));var crypto=require('crypto');var jsforce=require(_0x27c2('0xa'));var deskjs=require(_0x27c2('0xb'));var toCsv=require(_0x27c2('0xc'));var querystring=require(_0x27c2('0xd'));var Papa=require(_0x27c2('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x27c2('0xf'));var as=require(_0x27c2('0x10'));var hardwareService=require(_0x27c2('0x11'));var logger=require(_0x27c2('0x12'))('api');var utils=require(_0x27c2('0x13'));var config=require(_0x27c2('0x14'));var licenseUtil=require(_0x27c2('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4c654a,_0x23a6ed){_0x23a6ed=_0x23a6ed||0xcc;return function(_0x3a8d1f){if(_0x3a8d1f){return _0x4c654a[_0x27c2('0x16')](_0x23a6ed);}return _0x4c654a[_0x27c2('0x17')](_0x23a6ed)[_0x27c2('0x18')]();};}function respondWithResult(_0x599589,_0xa704c2){_0xa704c2=_0xa704c2||0xc8;return function(_0x4db64a){if(_0x4db64a){return _0x599589[_0x27c2('0x17')](_0xa704c2)[_0x27c2('0x19')](_0x4db64a);}};}function respondWithFilteredResult(_0x333db1,_0x2e2193){return function(_0x49241e){if(_0x49241e){var _0x272038=typeof _0x2e2193[_0x27c2('0x1a')]===_0x27c2('0x1b')&&typeof _0x2e2193[_0x27c2('0x1c')]===_0x27c2('0x1b');var _0x2db0b6=_0x49241e[_0x27c2('0x1d')];var _0x2daee4=_0x272038?0x0:_0x2e2193[_0x27c2('0x1a')];var _0x5f197c=_0x272038?_0x49241e[_0x27c2('0x1d')]:_0x2e2193[_0x27c2('0x1a')]+_0x2e2193[_0x27c2('0x1c')];var _0x824e60;if(_0x5f197c>=_0x2db0b6){_0x5f197c=_0x2db0b6;_0x824e60=0xc8;}else{_0x824e60=0xce;}_0x333db1['status'](_0x824e60);return _0x333db1['set'](_0x27c2('0x1e'),_0x2daee4+'-'+_0x5f197c+'/'+_0x2db0b6)[_0x27c2('0x19')](_0x49241e);}return null;};}function patchUpdates(_0x25136d){return function(_0x282cdb){try{jsonpatch[_0x27c2('0x1f')](_0x282cdb,_0x25136d,!![]);}catch(_0x9f380){return BPromise['reject'](_0x9f380);}return _0x282cdb[_0x27c2('0x20')]();};}function saveUpdates(_0x111287,_0x38e982){return function(_0x136a63){if(_0x136a63){return _0x136a63[_0x27c2('0x21')](_0x111287)[_0x27c2('0x22')](function(_0x311cd2){return _0x311cd2;});}return null;};}function removeEntity(_0xb9af7f,_0x52ecc5){return function(_0x58ffa6){if(_0x58ffa6){return _0x58ffa6[_0x27c2('0x23')]()[_0x27c2('0x22')](function(){_0xb9af7f['status'](0xcc)[_0x27c2('0x18')]();});}};}function handleEntityNotFound(_0x66bf45,_0x21ccb2){return function(_0x1cf775){if(!_0x1cf775){_0x66bf45['sendStatus'](0x194);}return _0x1cf775;};}function handleError(_0x3e7563,_0x2d9974){_0x2d9974=_0x2d9974||0x1f4;return function(_0x3d2338){logger[_0x27c2('0x24')](_0x3d2338[_0x27c2('0x25')]);if(_0x3d2338[_0x27c2('0x26')]){delete _0x3d2338[_0x27c2('0x26')];}_0x3e7563[_0x27c2('0x17')](_0x2d9974)['send'](_0x3d2338);};}exports[_0x27c2('0x27')]=function(_0x3c13a1,_0x54b061){var _0x48ef72={'raw':!![],'where':{'id':_0x3c13a1[_0x27c2('0x28')]['id']}},_0xeeba0b={};_0xeeba0b[_0x27c2('0x29')]=_['keys'](db[_0x27c2('0x2a')][_0x27c2('0x2b')]);_0xeeba0b[_0x27c2('0x2c')]=_[_0x27c2('0x2d')](_0x3c13a1[_0x27c2('0x2c')]);_0xeeba0b[_0x27c2('0x2e')]=_['intersection'](_0xeeba0b[_0x27c2('0x29')],_0xeeba0b[_0x27c2('0x2c')]);_0x48ef72[_0x27c2('0x2f')]=_['intersection'](_0xeeba0b[_0x27c2('0x29')],qs[_0x27c2('0x30')](_0x3c13a1[_0x27c2('0x2c')][_0x27c2('0x30')]));_0x48ef72['attributes']=_0x48ef72[_0x27c2('0x2f')][_0x27c2('0x31')]?_0x48ef72[_0x27c2('0x2f')]:_0xeeba0b[_0x27c2('0x29')];if(_0x3c13a1[_0x27c2('0x2c')][_0x27c2('0x32')]){_0x48ef72[_0x27c2('0x33')]=[{'all':!![]}];}_0x48ef72=_[_0x27c2('0x34')]({},_0x48ef72,_0x3c13a1[_0x27c2('0x35')]);return db['ChatProactiveAction'][_0x27c2('0x36')](_0x48ef72)[_0x27c2('0x22')](handleEntityNotFound(_0x54b061,null))[_0x27c2('0x22')](respondWithResult(_0x54b061,null))[_0x27c2('0x37')](handleError(_0x54b061,null));};exports[_0x27c2('0x38')]=function(_0x48ba14,_0x11e4a1){return db[_0x27c2('0x2a')][_0x27c2('0x38')](_0x48ba14[_0x27c2('0x39')],{})['then'](respondWithResult(_0x11e4a1,0xc9))[_0x27c2('0x37')](handleError(_0x11e4a1,null));};exports[_0x27c2('0x21')]=function(_0x97ef60,_0x2f0221){if(_0x97ef60[_0x27c2('0x39')]['id']){delete _0x97ef60[_0x27c2('0x39')]['id'];}return db[_0x27c2('0x2a')]['find']({'where':{'id':_0x97ef60[_0x27c2('0x28')]['id']}})[_0x27c2('0x22')](handleEntityNotFound(_0x2f0221,null))['then'](saveUpdates(_0x97ef60[_0x27c2('0x39')],null))[_0x27c2('0x22')](respondWithResult(_0x2f0221,null))[_0x27c2('0x37')](handleError(_0x2f0221,null));};exports['destroy']=function(_0x286ed5,_0x303ace){return db[_0x27c2('0x2a')][_0x27c2('0x36')]({'where':{'id':_0x286ed5[_0x27c2('0x28')]['id']}})['then'](handleEntityNotFound(_0x303ace,null))[_0x27c2('0x22')](removeEntity(_0x303ace,null))['catch'](handleError(_0x303ace,null));};
\ No newline at end of file
+var _0xe0c3=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','apply','reject','save','destroy','then','end','error','name','send','show','model','keys','rawAttributes','query','intersection','fields','attributes','length','includeAll','include','merge','options','ChatProactiveAction','find','catch','create','body','params','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware'];(function(_0x416bfc,_0x35d2d1){var _0x29308d=function(_0xac43c7){while(--_0xac43c7){_0x416bfc['push'](_0x416bfc['shift']());}};_0x29308d(++_0x35d2d1);}(_0xe0c3,0xea));var _0x3e0c=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xe0c3[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0x3e0c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3e0c('0x1'));var jsonpatch=require(_0x3e0c('0x2'));var rp=require(_0x3e0c('0x3'));var moment=require(_0x3e0c('0x4'));var BPromise=require(_0x3e0c('0x5'));var Mustache=require(_0x3e0c('0x6'));var util=require(_0x3e0c('0x7'));var path=require(_0x3e0c('0x8'));var sox=require(_0x3e0c('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3e0c('0xa'));var _=require(_0x3e0c('0xb'));var squel=require(_0x3e0c('0xc'));var crypto=require(_0x3e0c('0xd'));var jsforce=require(_0x3e0c('0xe'));var deskjs=require(_0x3e0c('0xf'));var toCsv=require(_0x3e0c('0x10'));var querystring=require(_0x3e0c('0x11'));var Papa=require(_0x3e0c('0x12'));var Redis=require(_0x3e0c('0x13'));var authService=require(_0x3e0c('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3e0c('0x15'));var logger=require(_0x3e0c('0x16'))(_0x3e0c('0x17'));var utils=require(_0x3e0c('0x18'));var config=require(_0x3e0c('0x19'));var licenseUtil=require(_0x3e0c('0x1a'));var db=require(_0x3e0c('0x1b'))['db'];function respondWithStatusCode(_0x5dc732,_0x38b416){_0x38b416=_0x38b416||0xcc;return function(_0x491432){if(_0x491432){return _0x5dc732[_0x3e0c('0x1c')](_0x38b416);}return _0x5dc732[_0x3e0c('0x1d')](_0x38b416)['end']();};}function respondWithResult(_0x5f2654,_0x6d9c61){_0x6d9c61=_0x6d9c61||0xc8;return function(_0x409b2c){if(_0x409b2c){return _0x5f2654[_0x3e0c('0x1d')](_0x6d9c61)[_0x3e0c('0x1e')](_0x409b2c);}};}function respondWithFilteredResult(_0x15a269,_0x24fcf9){return function(_0x1947c2){if(_0x1947c2){var _0x274d75=typeof _0x24fcf9[_0x3e0c('0x1f')]===_0x3e0c('0x20')&&typeof _0x24fcf9[_0x3e0c('0x21')]==='undefined';var _0x58c498=_0x1947c2[_0x3e0c('0x22')];var _0x216993=_0x274d75?0x0:_0x24fcf9[_0x3e0c('0x1f')];var _0x41b19f=_0x274d75?_0x1947c2[_0x3e0c('0x22')]:_0x24fcf9[_0x3e0c('0x1f')]+_0x24fcf9['limit'];var _0x2e4a4a;if(_0x41b19f>=_0x58c498){_0x41b19f=_0x58c498;_0x2e4a4a=0xc8;}else{_0x2e4a4a=0xce;}_0x15a269[_0x3e0c('0x1d')](_0x2e4a4a);return _0x15a269[_0x3e0c('0x23')]('Content-Range',_0x216993+'-'+_0x41b19f+'/'+_0x58c498)[_0x3e0c('0x1e')](_0x1947c2);}return null;};}function patchUpdates(_0x5e3a93){return function(_0x479265){try{jsonpatch[_0x3e0c('0x24')](_0x479265,_0x5e3a93,!![]);}catch(_0x1f3bad){return BPromise[_0x3e0c('0x25')](_0x1f3bad);}return _0x479265[_0x3e0c('0x26')]();};}function saveUpdates(_0x4f8d38,_0x4cd447){return function(_0x3320c6){if(_0x3320c6){return _0x3320c6['update'](_0x4f8d38)['then'](function(_0x3fd7de){return _0x3fd7de;});}return null;};}function removeEntity(_0x1769b1,_0x44ce68){return function(_0x5bb7aa){if(_0x5bb7aa){return _0x5bb7aa[_0x3e0c('0x27')]()[_0x3e0c('0x28')](function(){_0x1769b1['status'](0xcc)[_0x3e0c('0x29')]();});}};}function handleEntityNotFound(_0x3de58b,_0x308fd5){return function(_0x1db945){if(!_0x1db945){_0x3de58b['sendStatus'](0x194);}return _0x1db945;};}function handleError(_0x412960,_0xc2f3cc){_0xc2f3cc=_0xc2f3cc||0x1f4;return function(_0x2c5fba){logger[_0x3e0c('0x2a')](_0x2c5fba['stack']);if(_0x2c5fba[_0x3e0c('0x2b')]){delete _0x2c5fba['name'];}_0x412960['status'](_0xc2f3cc)[_0x3e0c('0x2c')](_0x2c5fba);};}exports[_0x3e0c('0x2d')]=function(_0x4d3ce2,_0x16fb92){var _0x3f22b1={'raw':!![],'where':{'id':_0x4d3ce2['params']['id']}},_0x21d7a0={};_0x21d7a0[_0x3e0c('0x2e')]=_[_0x3e0c('0x2f')](db['ChatProactiveAction'][_0x3e0c('0x30')]);_0x21d7a0[_0x3e0c('0x31')]=_[_0x3e0c('0x2f')](_0x4d3ce2[_0x3e0c('0x31')]);_0x21d7a0['filters']=_[_0x3e0c('0x32')](_0x21d7a0[_0x3e0c('0x2e')],_0x21d7a0[_0x3e0c('0x31')]);_0x3f22b1['attributes']=_[_0x3e0c('0x32')](_0x21d7a0[_0x3e0c('0x2e')],qs[_0x3e0c('0x33')](_0x4d3ce2['query'][_0x3e0c('0x33')]));_0x3f22b1[_0x3e0c('0x34')]=_0x3f22b1[_0x3e0c('0x34')][_0x3e0c('0x35')]?_0x3f22b1[_0x3e0c('0x34')]:_0x21d7a0[_0x3e0c('0x2e')];if(_0x4d3ce2[_0x3e0c('0x31')][_0x3e0c('0x36')]){_0x3f22b1[_0x3e0c('0x37')]=[{'all':!![]}];}_0x3f22b1=_[_0x3e0c('0x38')]({},_0x3f22b1,_0x4d3ce2[_0x3e0c('0x39')]);return db[_0x3e0c('0x3a')][_0x3e0c('0x3b')](_0x3f22b1)[_0x3e0c('0x28')](handleEntityNotFound(_0x16fb92,null))['then'](respondWithResult(_0x16fb92,null))[_0x3e0c('0x3c')](handleError(_0x16fb92,null));};exports[_0x3e0c('0x3d')]=function(_0x1b5a4c,_0x2784e5){return db[_0x3e0c('0x3a')][_0x3e0c('0x3d')](_0x1b5a4c[_0x3e0c('0x3e')],{})[_0x3e0c('0x28')](respondWithResult(_0x2784e5,0xc9))['catch'](handleError(_0x2784e5,null));};exports['update']=function(_0x12b8b9,_0x120b35){if(_0x12b8b9[_0x3e0c('0x3e')]['id']){delete _0x12b8b9[_0x3e0c('0x3e')]['id'];}return db[_0x3e0c('0x3a')][_0x3e0c('0x3b')]({'where':{'id':_0x12b8b9['params']['id']}})[_0x3e0c('0x28')](handleEntityNotFound(_0x120b35,null))[_0x3e0c('0x28')](saveUpdates(_0x12b8b9['body'],null))['then'](respondWithResult(_0x120b35,null))['catch'](handleError(_0x120b35,null));};exports[_0x3e0c('0x27')]=function(_0x18588e,_0x3d6ed7){return db[_0x3e0c('0x3a')][_0x3e0c('0x3b')]({'where':{'id':_0x18588e[_0x3e0c('0x3f')]['id']}})[_0x3e0c('0x28')](handleEntityNotFound(_0x3d6ed7,null))[_0x3e0c('0x28')](removeEntity(_0x3d6ed7,null))[_0x3e0c('0x3c')](handleError(_0x3d6ed7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x08be=['exports','define','chat_proactive_actions','lodash','util','../../config/logger','moment','bluebird','request-promise','rimraf','../../config/environment','./chatProactiveAction.attributes'];(function(_0x250b9c,_0x4e1d04){var _0x368080=function(_0x15748d){while(--_0x15748d){_0x250b9c['push'](_0x250b9c['shift']());}};_0x368080(++_0x4e1d04);}(_0x08be,0x1b3));var _0xe08b=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x08be[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0xe08b('0x0'));var util=require(_0xe08b('0x1'));var logger=require(_0xe08b('0x2'))('api');var moment=require(_0xe08b('0x3'));var BPromise=require(_0xe08b('0x4'));var rp=require(_0xe08b('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xe08b('0x6'));var config=require(_0xe08b('0x7'));var attributes=require(_0xe08b('0x8'));module[_0xe08b('0x9')]=function(_0x29746d,_0xc30fba){return _0x29746d[_0xe08b('0xa')]('ChatProactiveAction',attributes,{'tableName':_0xe08b('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1982=['api','moment','request-promise','path','../../config/environment','./chatProactiveAction.attributes','exports','define','ChatProactiveAction','lodash','util'];(function(_0x3a98cf,_0x237708){var _0x4ea20c=function(_0x1a8284){while(--_0x1a8284){_0x3a98cf['push'](_0x3a98cf['shift']());}};_0x4ea20c(++_0x237708);}(_0x1982,0x98));var _0x2198=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1982[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x2198('0x0'));var util=require(_0x2198('0x1'));var logger=require('../../config/logger')(_0x2198('0x2'));var moment=require(_0x2198('0x3'));var BPromise=require('bluebird');var rp=require(_0x2198('0x4'));var fs=require('fs');var path=require(_0x2198('0x5'));var rimraf=require('rimraf');var config=require(_0x2198('0x6'));var attributes=require(_0x2198('0x7'));module[_0x2198('0x8')]=function(_0x19075b,_0x22b494){return _0x19075b[_0x2198('0x9')](_0x2198('0xa'),attributes,{'tableName':'chat_proactive_actions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6af4=['info','ChatProactiveAction,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x5eef05,_0x1be989){var _0x56d4b8=function(_0x57993d){while(--_0x57993d){_0x5eef05['push'](_0x5eef05['shift']());}};_0x56d4b8(++_0x1be989);}(_0x6af4,0xbc));var _0x46af=function(_0x256fd4,_0x3a852a){_0x256fd4=_0x256fd4-0x0;var _0x4f5622=_0x6af4[_0x256fd4];return _0x4f5622;};'use strict';var _=require(_0x46af('0x0'));var util=require(_0x46af('0x1'));var moment=require(_0x46af('0x2'));var BPromise=require(_0x46af('0x3'));var rs=require(_0x46af('0x4'));var fs=require('fs');var Redis=require(_0x46af('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x46af('0x6'))(_0x46af('0x7'));var config=require(_0x46af('0x8'));var jayson=require(_0x46af('0x9'));var client=jayson[_0x46af('0xa')][_0x46af('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x453489,_0x41f6b4,_0x31e179){return new BPromise(function(_0x20714f,_0x455ca2){return client['request'](_0x453489,_0x31e179)['then'](function(_0x2581f4){logger[_0x46af('0xc')](_0x46af('0xd'),_0x41f6b4,'request\x20sent');logger[_0x46af('0xe')]('ChatProactiveAction,\x20%s,\x20%s,\x20%s',_0x41f6b4,_0x46af('0xf'),JSON[_0x46af('0x10')](_0x2581f4));if(_0x2581f4[_0x46af('0x11')]){if(_0x2581f4['error'][_0x46af('0x12')]===0x1f4){logger[_0x46af('0x11')](_0x46af('0xd'),_0x41f6b4,_0x2581f4['error'][_0x46af('0x13')]);return _0x455ca2(_0x2581f4[_0x46af('0x11')]['message']);}logger[_0x46af('0x11')](_0x46af('0xd'),_0x41f6b4,_0x2581f4[_0x46af('0x11')][_0x46af('0x13')]);return _0x20714f(_0x2581f4[_0x46af('0x11')]['message']);}else{logger[_0x46af('0xc')](_0x46af('0xd'),_0x41f6b4,_0x46af('0xf'));_0x20714f(_0x2581f4['result'][_0x46af('0x13')]);}})['catch'](function(_0x124ed1){logger[_0x46af('0x11')]('ChatProactiveAction,\x20%s,\x20%s',_0x41f6b4,_0x124ed1);_0x455ca2(_0x124ed1);});});}
\ No newline at end of file
+var _0xbde5=['../../config/environment','jayson/promise','http','request','then','info','ChatProactiveAction,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','rpc'];(function(_0x51b429,_0x2a84ae){var _0x105894=function(_0x569648){while(--_0x569648){_0x51b429['push'](_0x51b429['shift']());}};_0x105894(++_0x2a84ae);}(_0xbde5,0xfd));var _0x5bde=function(_0xc84b4e,_0x5dc5b1){_0xc84b4e=_0xc84b4e-0x0;var _0x260a86=_0xbde5[_0xc84b4e];return _0x260a86;};'use strict';var _=require(_0x5bde('0x0'));var util=require(_0x5bde('0x1'));var moment=require('moment');var BPromise=require(_0x5bde('0x2'));var rs=require(_0x5bde('0x3'));var fs=require('fs');var Redis=require(_0x5bde('0x4'));var db=require(_0x5bde('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x5bde('0x6'));var config=require(_0x5bde('0x7'));var jayson=require(_0x5bde('0x8'));var client=jayson['client'][_0x5bde('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5a8b78,_0x46dfc9,_0x36e15f){return new BPromise(function(_0x331ecf,_0x14d6f8){return client[_0x5bde('0xa')](_0x5a8b78,_0x36e15f)[_0x5bde('0xb')](function(_0x481a69){logger[_0x5bde('0xc')](_0x5bde('0xd'),_0x46dfc9,_0x5bde('0xe'));logger[_0x5bde('0xf')]('ChatProactiveAction,\x20%s,\x20%s,\x20%s',_0x46dfc9,_0x5bde('0xe'),JSON[_0x5bde('0x10')](_0x481a69));if(_0x481a69[_0x5bde('0x11')]){if(_0x481a69[_0x5bde('0x11')]['code']===0x1f4){logger['error']('ChatProactiveAction,\x20%s,\x20%s',_0x46dfc9,_0x481a69[_0x5bde('0x11')]['message']);return _0x14d6f8(_0x481a69[_0x5bde('0x11')]['message']);}logger[_0x5bde('0x11')](_0x5bde('0xd'),_0x46dfc9,_0x481a69[_0x5bde('0x11')]['message']);return _0x331ecf(_0x481a69[_0x5bde('0x11')][_0x5bde('0x12')]);}else{logger['info'](_0x5bde('0xd'),_0x46dfc9,_0x5bde('0xe'));_0x331ecf(_0x481a69['result'][_0x5bde('0x12')]);}})[_0x5bde('0x13')](function(_0x49d7b5){logger[_0x5bde('0x11')]('ChatProactiveAction,\x20%s,\x20%s',_0x46dfc9,_0x49d7b5);_0x14d6f8(_0x49d7b5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fd1=['../../components/auth/service','../../components/interaction/service','../../config/environment','get','/:id','isAuthenticated','show','post','create','put','update','multer','path','connect-timeout','express'];(function(_0x5cdd61,_0x387a06){var _0x3c072f=function(_0x230871){while(--_0x230871){_0x5cdd61['push'](_0x5cdd61['shift']());}};_0x3c072f(++_0x387a06);}(_0x5fd1,0x155));var _0x15fd=function(_0x33c744,_0x18101d){_0x33c744=_0x33c744-0x0;var _0xa5ed3a=_0x5fd1[_0x33c744];return _0xa5ed3a;};'use strict';var multer=require(_0x15fd('0x0'));var util=require('util');var path=require(_0x15fd('0x1'));var timeout=require(_0x15fd('0x2'));var express=require(_0x15fd('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x15fd('0x4'));var interaction=require(_0x15fd('0x5'));var config=require(_0x15fd('0x6'));var controller=require('./chatProactiveAction.controller');router[_0x15fd('0x7')](_0x15fd('0x8'),auth[_0x15fd('0x9')](),controller[_0x15fd('0xa')]);router[_0x15fd('0xb')]('/',auth['isAuthenticated'](),controller[_0x15fd('0xc')]);router[_0x15fd('0xd')](_0x15fd('0x8'),auth['isAuthenticated'](),controller[_0x15fd('0xe')]);router['delete'](_0x15fd('0x8'),auth[_0x15fd('0x9')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x038b=['isAuthenticated','/:id','exports','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','./chatProactiveAction.controller','get','show','post'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x038b,0x114));var _0xb038=function(_0x5734a4,_0x2e395c){_0x5734a4=_0x5734a4-0x0;var _0x265004=_0x038b[_0x5734a4];return _0x265004;};'use strict';var multer=require('multer');var util=require(_0xb038('0x0'));var path=require(_0xb038('0x1'));var timeout=require(_0xb038('0x2'));var express=require('express');var router=express[_0xb038('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xb038('0x4'));var interaction=require(_0xb038('0x5'));var config=require('../../config/environment');var controller=require(_0xb038('0x6'));router[_0xb038('0x7')]('/:id',auth['isAuthenticated'](),controller[_0xb038('0x8')]);router[_0xb038('0x9')]('/',auth[_0xb038('0xa')](),controller['create']);router['put'](_0xb038('0xb'),auth[_0xb038('0xa')](),controller['update']);router['delete'](_0xb038('0xb'),auth[_0xb038('0xa')](),controller['destroy']);module[_0xb038('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3c0=['roundrobin','sequelize','exports','STRING','name','ENUM'];(function(_0x310215,_0x541b20){var _0x1e9d59=function(_0xa3b3f9){while(--_0xa3b3f9){_0x310215['push'](_0x310215['shift']());}};_0x1e9d59(++_0x541b20);}(_0xe3c0,0x109));var _0x0e3c=function(_0x28d18d,_0x55896b){_0x28d18d=_0x28d18d-0x0;var _0x470640=_0xe3c0[_0x28d18d];return _0x470640;};'use strict';var Sequelize=require(_0x0e3c('0x0'));module[_0x0e3c('0x1')]={'name':{'type':Sequelize[_0x0e3c('0x2')],'unique':_0x0e3c('0x3'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x0e3c('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x0e3c('0x4')]('rrmemory','beepall',_0x0e3c('0x5'))}};
\ No newline at end of file
+var _0x485e=['beepall','roundrobin','exports','STRING','INTEGER','rrmemory'];(function(_0x4cf98e,_0xba4b79){var _0x1623ac=function(_0x459bc0){while(--_0x459bc0){_0x4cf98e['push'](_0x4cf98e['shift']());}};_0x1623ac(++_0xba4b79);}(_0x485e,0xbc));var _0xe485=function(_0x3747ae,_0x408e61){_0x3747ae=_0x3747ae-0x0;var _0x339035=_0x485e[_0x3747ae];return _0x339035;};'use strict';var Sequelize=require('sequelize');module[_0xe485('0x0')]={'name':{'type':Sequelize[_0xe485('0x1')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xe485('0x1')]},'timeout':{'type':Sequelize[_0xe485('0x2')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0xe485('0x3'),_0xe485('0x4'),_0xe485('0x5'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a99=['SIP','chatPause','getTeams','findOne','Team','nolimit','Agents','online','voicePause','interface','flatMap','sequelize','transaction','findOrCreate','forEach','emit','removeTeams','ids','tq.TeamId','from','team_has_chat_queues','user_has_teams','clone','push','toString','QueryTypes','TeamId','includes','all','union','compact','value','isEmpty','removeAgents','userChatQueue:remove','addAgents','omit','userChatQueue:save','isArray','getAgents','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','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','../../mysqldb','redis','socket.io-emitter','register','client','then','info','ChatQueue,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','result','catch','sendStatus','status','offset','undefined','count','limit','set','Content-Range','json','reject','save','update','destroy','get','end','stack','name','send','ChatQueue','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','map','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','create','body','ChatQueues','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','UserChatQueue','filter','User','findAndCountAll','agent','updatedAt','%s/%s'];(function(_0x2074db,_0x10b81b){var _0x27324c=function(_0x5c3d5c){while(--_0x5c3d5c){_0x2074db['push'](_0x2074db['shift']());}};_0x27324c(++_0x10b81b);}(_0x3a99,0x1d5));var _0x93a9=function(_0x1a24f1,_0x354a3c){_0x1a24f1=_0x1a24f1-0x0;var _0x26521f=_0x3a99[_0x1a24f1];return _0x26521f;};'use strict';var emlformat=require(_0x93a9('0x0'));var rimraf=require(_0x93a9('0x1'));var zipdir=require(_0x93a9('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x93a9('0x3'));var moment=require(_0x93a9('0x4'));var BPromise=require(_0x93a9('0x5'));var Mustache=require('mustache');var util=require(_0x93a9('0x6'));var path=require(_0x93a9('0x7'));var sox=require(_0x93a9('0x8'));var csv=require('to-csv');var ejs=require(_0x93a9('0x9'));var fs=require('fs');var fs_extra=require(_0x93a9('0xa'));var _=require(_0x93a9('0xb'));var squel=require('squel');var crypto=require(_0x93a9('0xc'));var jsforce=require(_0x93a9('0xd'));var deskjs=require(_0x93a9('0xe'));var toCsv=require('to-csv');var querystring=require(_0x93a9('0xf'));var Papa=require(_0x93a9('0x10'));var Redis=require('ioredis');var authService=require(_0x93a9('0x11'));var qs=require(_0x93a9('0x12'));var as=require(_0x93a9('0x13'));var hardwareService=require(_0x93a9('0x14'));var logger=require(_0x93a9('0x15'))(_0x93a9('0x16'));var utils=require(_0x93a9('0x17'));var config=require(_0x93a9('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x93a9('0x19'))['db'];config[_0x93a9('0x1a')]=_['defaults'](config[_0x93a9('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x93a9('0x1b'))(new Redis(config[_0x93a9('0x1a')]));require('./chatQueue.socket')[_0x93a9('0x1c')](socket);var jayson=require('jayson/promise');var client=jayson[_0x93a9('0x1d')]['http']({'port':0x232a});function respondWithRpcPromise(_0xf2f6da,_0x40649f,_0x12ed8b,_0x5cef2f){return new BPromise(function(_0x188cf8,_0x1792bc){var _0x404777=_0x5cef2f||client;return _0x404777['request'](_0xf2f6da,_0x12ed8b)[_0x93a9('0x1e')](function(_0x4baf2d){logger[_0x93a9('0x1f')](_0x93a9('0x20'),_0x40649f,'request\x20sent');logger[_0x93a9('0x21')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x40649f,_0x93a9('0x22'),JSON[_0x93a9('0x23')](_0x4baf2d));if(_0x4baf2d['error']){if(_0x4baf2d['error']['code']===0x1f4){logger[_0x93a9('0x24')](_0x93a9('0x20'),_0x40649f,_0x4baf2d[_0x93a9('0x24')][_0x93a9('0x25')]);return _0x1792bc(_0x4baf2d[_0x93a9('0x24')][_0x93a9('0x25')]);}logger[_0x93a9('0x24')]('ChatQueue,\x20%s,\x20%s',_0x40649f,_0x4baf2d[_0x93a9('0x24')]['message']);return _0x188cf8(_0x4baf2d[_0x93a9('0x24')][_0x93a9('0x25')]);}else{logger['info'](_0x93a9('0x20'),_0x40649f,'request\x20sent');_0x188cf8(_0x4baf2d[_0x93a9('0x26')][_0x93a9('0x25')]);}})[_0x93a9('0x27')](function(_0x1ac3a2){logger[_0x93a9('0x24')](_0x93a9('0x20'),_0x40649f,_0x1ac3a2);_0x1792bc(_0x1ac3a2);});});}function respondWithStatusCode(_0x189f53,_0x160d34){_0x160d34=_0x160d34||0xcc;return function(_0x2f191e){if(_0x2f191e){return _0x189f53[_0x93a9('0x28')](_0x160d34);}return _0x189f53[_0x93a9('0x29')](_0x160d34)['end']();};}function respondWithResult(_0xdbbb04,_0x460b56){_0x460b56=_0x460b56||0xc8;return function(_0x56cec7){if(_0x56cec7){return _0xdbbb04[_0x93a9('0x29')](_0x460b56)['json'](_0x56cec7);}};}function respondWithFilteredResult(_0xed707b,_0xf14a02){return function(_0xe975ae){if(_0xe975ae){var _0x3b7148=typeof _0xf14a02[_0x93a9('0x2a')]===_0x93a9('0x2b')&&typeof _0xf14a02['limit']===_0x93a9('0x2b');var _0x87fb0a=_0xe975ae[_0x93a9('0x2c')];var _0x55447d=_0x3b7148?0x0:_0xf14a02[_0x93a9('0x2a')];var _0x594ad9=_0x3b7148?_0xe975ae[_0x93a9('0x2c')]:_0xf14a02['offset']+_0xf14a02[_0x93a9('0x2d')];var _0xfdc01b;if(_0x594ad9>=_0x87fb0a){_0x594ad9=_0x87fb0a;_0xfdc01b=0xc8;}else{_0xfdc01b=0xce;}_0xed707b[_0x93a9('0x29')](_0xfdc01b);return _0xed707b[_0x93a9('0x2e')](_0x93a9('0x2f'),_0x55447d+'-'+_0x594ad9+'/'+_0x87fb0a)[_0x93a9('0x30')](_0xe975ae);}return null;};}function patchUpdates(_0x39635e){return function(_0x209ef1){try{jsonpatch['apply'](_0x209ef1,_0x39635e,!![]);}catch(_0xfcfa7e){return BPromise[_0x93a9('0x31')](_0xfcfa7e);}return _0x209ef1[_0x93a9('0x32')]();};}function saveUpdates(_0x1f1195,_0x2fc6fe){return function(_0x4a58a8){if(_0x4a58a8){return _0x4a58a8[_0x93a9('0x33')](_0x1f1195)['then'](function(_0x10f794){return _0x10f794;});}return null;};}function removeEntity(_0x412422,_0x71b991){return function(_0x1a7fe4){if(_0x1a7fe4){return _0x1a7fe4[_0x93a9('0x34')]()['then'](function(){var _0x39539f=_0x1a7fe4[_0x93a9('0x35')]({'plain':!![]});var _0x1c3884='ChatQueues';return db['UserProfileResource'][_0x93a9('0x34')]({'where':{'type':_0x1c3884,'resourceId':_0x39539f['id']}})[_0x93a9('0x1e')](function(){return _0x1a7fe4;});})[_0x93a9('0x1e')](function(){_0x412422['status'](0xcc)[_0x93a9('0x36')]();});}};}function handleEntityNotFound(_0x569c18,_0xe5d70e){return function(_0x4657ca){if(!_0x4657ca){_0x569c18['sendStatus'](0x194);}return _0x4657ca;};}function handleError(_0x5be021,_0x9332ee){_0x9332ee=_0x9332ee||0x1f4;return function(_0x41666f){logger['error'](_0x41666f[_0x93a9('0x37')]);if(_0x41666f[_0x93a9('0x38')]){delete _0x41666f['name'];}_0x5be021['status'](_0x9332ee)[_0x93a9('0x39')](_0x41666f);};}exports['index']=function(_0x4c9e6e,_0x2fa216){var _0x3fb5d4={},_0x27db53={},_0x2bb867={'count':0x0,'rows':[]};var _0x51c794=_['map'](db[_0x93a9('0x3a')][_0x93a9('0x3b')],function(_0x113eb3){return{'name':_0x113eb3[_0x93a9('0x3c')],'type':_0x113eb3['type'][_0x93a9('0x3d')]};});_0x27db53[_0x93a9('0x3e')]=_['map'](_0x51c794,_0x93a9('0x38'));_0x27db53['query']=_[_0x93a9('0x3f')](_0x4c9e6e[_0x93a9('0x40')]);_0x27db53[_0x93a9('0x41')]=_[_0x93a9('0x42')](_0x27db53[_0x93a9('0x3e')],_0x27db53[_0x93a9('0x40')]);_0x3fb5d4[_0x93a9('0x43')]=_[_0x93a9('0x42')](_0x27db53[_0x93a9('0x3e')],qs[_0x93a9('0x44')](_0x4c9e6e[_0x93a9('0x40')][_0x93a9('0x44')]));_0x3fb5d4[_0x93a9('0x43')]=_0x3fb5d4[_0x93a9('0x43')][_0x93a9('0x45')]?_0x3fb5d4[_0x93a9('0x43')]:_0x27db53[_0x93a9('0x3e')];if(!_0x4c9e6e['query'][_0x93a9('0x46')]('nolimit')){_0x3fb5d4[_0x93a9('0x2d')]=qs['limit'](_0x4c9e6e[_0x93a9('0x40')][_0x93a9('0x2d')]);_0x3fb5d4['offset']=qs['offset'](_0x4c9e6e[_0x93a9('0x40')][_0x93a9('0x2a')]);}_0x3fb5d4[_0x93a9('0x47')]=qs[_0x93a9('0x48')](_0x4c9e6e[_0x93a9('0x40')]['sort']);_0x3fb5d4[_0x93a9('0x49')]=qs[_0x93a9('0x41')](_[_0x93a9('0x4a')](_0x4c9e6e[_0x93a9('0x40')],_0x27db53[_0x93a9('0x41')]),_0x51c794);if(_0x4c9e6e[_0x93a9('0x40')]['filter']){_0x3fb5d4['where']=_['merge'](_0x3fb5d4[_0x93a9('0x49')],{'$or':_[_0x93a9('0x4b')](_0x51c794,function(_0x42536a){if(_0x42536a['type']!==_0x93a9('0x4c')){var _0xba29b0={};_0xba29b0[_0x42536a[_0x93a9('0x38')]]={'$like':'%'+_0x4c9e6e[_0x93a9('0x40')]['filter']+'%'};return _0xba29b0;}})});}_0x3fb5d4=_[_0x93a9('0x4d')]({},_0x3fb5d4,_0x4c9e6e[_0x93a9('0x4e')]);var _0x10ac22={'where':_0x3fb5d4[_0x93a9('0x49')]};return db[_0x93a9('0x3a')][_0x93a9('0x2c')](_0x10ac22)['then'](function(_0x595546){_0x2bb867[_0x93a9('0x2c')]=_0x595546;if(_0x4c9e6e[_0x93a9('0x40')][_0x93a9('0x4f')]){_0x3fb5d4[_0x93a9('0x50')]=[{'all':!![]}];}return db['ChatQueue'][_0x93a9('0x51')](_0x3fb5d4);})[_0x93a9('0x1e')](function(_0x4a0d92){_0x2bb867[_0x93a9('0x52')]=_0x4a0d92;return _0x2bb867;})[_0x93a9('0x1e')](respondWithFilteredResult(_0x2fa216,_0x3fb5d4))[_0x93a9('0x27')](handleError(_0x2fa216,null));};exports[_0x93a9('0x53')]=function(_0x362892,_0x45ebd9){var _0x155ace={'raw':!![],'where':{'id':_0x362892[_0x93a9('0x54')]['id']}},_0x4bee6d={};_0x4bee6d[_0x93a9('0x3e')]=_[_0x93a9('0x3f')](db[_0x93a9('0x3a')]['rawAttributes']);_0x4bee6d['query']=_[_0x93a9('0x3f')](_0x362892['query']);_0x4bee6d[_0x93a9('0x41')]=_['intersection'](_0x4bee6d[_0x93a9('0x3e')],_0x4bee6d[_0x93a9('0x40')]);_0x155ace[_0x93a9('0x43')]=_['intersection'](_0x4bee6d['model'],qs['fields'](_0x362892[_0x93a9('0x40')][_0x93a9('0x44')]));_0x155ace['attributes']=_0x155ace[_0x93a9('0x43')]['length']?_0x155ace[_0x93a9('0x43')]:_0x4bee6d[_0x93a9('0x3e')];if(_0x362892[_0x93a9('0x40')][_0x93a9('0x4f')]){_0x155ace[_0x93a9('0x50')]=[{'all':!![]}];}_0x155ace=_[_0x93a9('0x4d')]({},_0x155ace,_0x362892['options']);return db[_0x93a9('0x3a')]['find'](_0x155ace)[_0x93a9('0x1e')](handleEntityNotFound(_0x45ebd9,null))['then'](respondWithResult(_0x45ebd9,null))[_0x93a9('0x27')](handleError(_0x45ebd9,null));};exports[_0x93a9('0x55')]=function(_0x3846dc,_0x1e469f){return db[_0x93a9('0x3a')]['create'](_0x3846dc[_0x93a9('0x56')],{})[_0x93a9('0x1e')](function(_0x467ce8){var _0x3c9dbc=_0x3846dc['user'][_0x93a9('0x35')]({'plain':!![]});if(!_0x3c9dbc)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3c9dbc['role']==='user'){var _0x668875=_0x467ce8['get']({'plain':!![]});var _0xe924d9=_0x93a9('0x57');return db[_0x93a9('0x58')][_0x93a9('0x59')]({'where':{'name':_0xe924d9,'userProfileId':_0x3c9dbc[_0x93a9('0x5a')]},'raw':!![]})[_0x93a9('0x1e')](function(_0xf040a2){if(_0xf040a2&&_0xf040a2[_0x93a9('0x5b')]===0x0){return db[_0x93a9('0x5c')][_0x93a9('0x55')]({'name':_0x668875[_0x93a9('0x38')],'resourceId':_0x668875['id'],'type':_0xf040a2[_0x93a9('0x38')],'sectionId':_0xf040a2['id']},{})[_0x93a9('0x1e')](function(){return _0x467ce8;});}else{return _0x467ce8;}})[_0x93a9('0x27')](function(_0x38ddcf){logger[_0x93a9('0x24')](_0x93a9('0x5d'),_0x38ddcf);throw _0x38ddcf;});}return _0x467ce8;})[_0x93a9('0x1e')](respondWithResult(_0x1e469f,0xc9))[_0x93a9('0x27')](handleError(_0x1e469f,null));};exports[_0x93a9('0x33')]=function(_0x40e317,_0x59b855){if(_0x40e317[_0x93a9('0x56')]['id']){delete _0x40e317[_0x93a9('0x56')]['id'];}return db[_0x93a9('0x3a')][_0x93a9('0x59')]({'where':{'id':_0x40e317[_0x93a9('0x54')]['id']}})[_0x93a9('0x1e')](handleEntityNotFound(_0x59b855,null))[_0x93a9('0x1e')](saveUpdates(_0x40e317['body'],null))[_0x93a9('0x1e')](respondWithResult(_0x59b855,null))[_0x93a9('0x27')](handleError(_0x59b855,null));};exports['destroy']=function(_0x3e9c03,_0x41edbd){return db['ChatQueue'][_0x93a9('0x59')]({'where':{'id':_0x3e9c03[_0x93a9('0x54')]['id']}})['then'](handleEntityNotFound(_0x41edbd,null))[_0x93a9('0x1e')](removeEntity(_0x41edbd,null))['catch'](handleError(_0x41edbd,null));};exports[_0x93a9('0x5e')]=function(_0x39dd3f,_0x5bc7ff){return db[_0x93a9('0x3a')]['describe']()[_0x93a9('0x1e')](respondWithResult(_0x5bc7ff,null))['catch'](handleError(_0x5bc7ff,null));};exports[_0x93a9('0x5f')]=function(_0x44b1d,_0xfc168,_0x513892){var _0x5cd3aa={'raw':!![],'where':{}},_0x298339={},_0x42a380;return db[_0x93a9('0x3a')]['findOne']({'where':{'id':_0x44b1d[_0x93a9('0x54')]['id']}})['then'](handleEntityNotFound(_0xfc168,null))[_0x93a9('0x1e')](function(_0x576a65){if(_0x576a65){_0x42a380=_0x576a65[_0x93a9('0x35')]({'plain':!![]});_0x298339[_0x93a9('0x3e')]=_['keys'](db[_0x93a9('0x60')][_0x93a9('0x3b')]);_0x298339['query']=_[_0x93a9('0x3f')](_0x44b1d[_0x93a9('0x40')]);_0x298339['filters']=_[_0x93a9('0x42')](_0x298339[_0x93a9('0x3e')],_0x298339['query']);_0x5cd3aa[_0x93a9('0x43')]=_[_0x93a9('0x42')](_0x298339[_0x93a9('0x3e')],qs[_0x93a9('0x44')](_0x44b1d[_0x93a9('0x40')]['fields']));_0x5cd3aa[_0x93a9('0x43')]=_0x5cd3aa[_0x93a9('0x43')][_0x93a9('0x45')]?_0x5cd3aa[_0x93a9('0x43')]:_0x298339[_0x93a9('0x3e')];if(!_0x44b1d[_0x93a9('0x40')][_0x93a9('0x46')]('nolimit')){_0x5cd3aa[_0x93a9('0x2d')]=qs[_0x93a9('0x2d')](_0x44b1d[_0x93a9('0x40')][_0x93a9('0x2d')]);_0x5cd3aa[_0x93a9('0x2a')]=qs['offset'](_0x44b1d['query'][_0x93a9('0x2a')]);}_0x5cd3aa[_0x93a9('0x47')]=qs[_0x93a9('0x48')](_0x44b1d[_0x93a9('0x40')][_0x93a9('0x48')]);_0x5cd3aa[_0x93a9('0x49')]=qs['filters'](_[_0x93a9('0x4a')](_0x44b1d['query'],_0x298339[_0x93a9('0x41')]));_0x5cd3aa[_0x93a9('0x49')]['ChatQueueId']=_0x576a65['id'];if(_0x44b1d['query'][_0x93a9('0x61')]){_0x5cd3aa[_0x93a9('0x49')]=_['merge'](_0x5cd3aa[_0x93a9('0x49')],{'$or':_[_0x93a9('0x4b')](_0x5cd3aa[_0x93a9('0x43')],function(_0x53fbfc){var _0x5f437b={};_0x5f437b[_0x53fbfc]={'$like':'%'+_0x44b1d[_0x93a9('0x40')]['filter']+'%'};return _0x5f437b;})});}_0x5cd3aa=_[_0x93a9('0x4d')]({},_0x5cd3aa,_0x44b1d[_0x93a9('0x4e')]);return db['UserChatQueue'][_0x93a9('0x51')](_0x5cd3aa);}})[_0x93a9('0x1e')](function(_0x2256da){if(_0x2256da){return db[_0x93a9('0x62')][_0x93a9('0x63')]({'where':{'id':_[_0x93a9('0x4b')](_0x2256da,'UserId'),'role':_0x93a9('0x64')},'attributes':['id',_0x93a9('0x38'),'chatPause',_0x93a9('0x65'),'createdAt']});}})[_0x93a9('0x1e')](function(_0x5cbfb6){if(_0x5cbfb6){return{'count':_0x5cbfb6['count'],'rows':_['map'](_0x5cbfb6['rows'],function(_0xffde50){return{'membername':_0xffde50[_0x93a9('0x38')],'UserId':_0xffde50['id'],'queue_name':_0x42a380['name'],'ChatQueueId':_0x42a380['id'],'interface':util['format'](_0x93a9('0x66'),_0x93a9('0x67'),_0xffde50['name']),'penalty':0x0,'paused':_0xffde50[_0x93a9('0x68')],'createdAt':_0xffde50['createdAt'],'updatedAt':_0xffde50[_0x93a9('0x65')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x93a9('0x1e')](respondWithFilteredResult(_0xfc168,_0x5cd3aa))[_0x93a9('0x27')](handleError(_0xfc168,null));};exports[_0x93a9('0x69')]=function(_0x187537,_0x27adc1,_0x1475dc){var _0x5c3f0c={};var _0x2e3bb3={};var _0x20aab8;var _0x2adaea;return db[_0x93a9('0x3a')][_0x93a9('0x6a')]({'where':{'id':_0x187537[_0x93a9('0x54')]['id']}})['then'](handleEntityNotFound(_0x27adc1,null))[_0x93a9('0x1e')](function(_0x2ab40f){if(_0x2ab40f){_0x20aab8=_0x2ab40f;_0x2e3bb3[_0x93a9('0x3e')]=_[_0x93a9('0x3f')](db[_0x93a9('0x6b')][_0x93a9('0x3b')]);_0x2e3bb3[_0x93a9('0x40')]=_[_0x93a9('0x3f')](_0x187537[_0x93a9('0x40')]);_0x2e3bb3[_0x93a9('0x41')]=_[_0x93a9('0x42')](_0x2e3bb3[_0x93a9('0x3e')],_0x2e3bb3[_0x93a9('0x40')]);_0x5c3f0c[_0x93a9('0x43')]=_[_0x93a9('0x42')](_0x2e3bb3[_0x93a9('0x3e')],qs[_0x93a9('0x44')](_0x187537['query'][_0x93a9('0x44')]));_0x5c3f0c[_0x93a9('0x43')]=_0x5c3f0c[_0x93a9('0x43')][_0x93a9('0x45')]?_0x5c3f0c[_0x93a9('0x43')]:_0x2e3bb3[_0x93a9('0x3e')];_0x5c3f0c['order']=qs['sort'](_0x187537[_0x93a9('0x40')][_0x93a9('0x48')]);_0x5c3f0c[_0x93a9('0x49')]=qs['filters'](_[_0x93a9('0x4a')](_0x187537[_0x93a9('0x40')],_0x2e3bb3[_0x93a9('0x41')]));if(_0x187537[_0x93a9('0x40')][_0x93a9('0x61')]){_0x5c3f0c[_0x93a9('0x49')]=_[_0x93a9('0x4d')](_0x5c3f0c[_0x93a9('0x49')],{'$or':_['map'](_0x5c3f0c[_0x93a9('0x43')],function(_0x22612f){var _0xf9503c={};_0xf9503c[_0x22612f]={'$like':'%'+_0x187537[_0x93a9('0x40')][_0x93a9('0x61')]+'%'};return _0xf9503c;})});}_0x5c3f0c=_[_0x93a9('0x4d')]({},_0x5c3f0c,_0x187537[_0x93a9('0x4e')]);return _0x20aab8['getTeams'](_0x5c3f0c);}})['then'](function(_0x5f1465){if(_0x5f1465){_0x2adaea=_0x5f1465[_0x93a9('0x45')];if(!_0x187537[_0x93a9('0x40')][_0x93a9('0x46')](_0x93a9('0x6c'))){_0x5c3f0c[_0x93a9('0x2d')]=qs['limit'](_0x187537['query']['limit']);_0x5c3f0c['offset']=qs['offset'](_0x187537['query']['offset']);}return _0x20aab8[_0x93a9('0x69')](_0x5c3f0c);}})[_0x93a9('0x1e')](function(_0x3ed3c4){if(_0x3ed3c4){return _0x3ed3c4?{'count':_0x2adaea,'rows':_0x3ed3c4}:null;}})[_0x93a9('0x1e')](respondWithResult(_0x27adc1,null))[_0x93a9('0x27')](handleError(_0x27adc1,null));};exports['addTeams']=function(_0x241754,_0x4381d1,_0x4a0b4c){var _0x4b1f80=_0x241754[_0x93a9('0x56')]['ids'];return db[_0x93a9('0x6b')][_0x93a9('0x51')]({'where':{'id':_0x4b1f80},'attributes':['id'],'include':[{'model':db[_0x93a9('0x62')],'as':_0x93a9('0x6d'),'attributes':['id','name',_0x93a9('0x6e'),_0x93a9('0x6f'),_0x93a9('0x70')],'raw':!![]}]})[_0x93a9('0x1e')](function(_0x227612){if(_0x227612){var _0xffc686=_[_0x93a9('0x71')](_0x227612,function(_0x41b0ee){var _0x3fa7c6=_0x41b0ee[_0x93a9('0x35')]({'plain':!![]});return _0x3fa7c6[_0x93a9('0x6d')];});return db[_0x93a9('0x3a')]['find']({'where':{'id':_0x241754['params']['id']}})[_0x93a9('0x1e')](function(_0x27a15b){return db[_0x93a9('0x72')][_0x93a9('0x73')](function(_0x5c5b57){return _0x27a15b['addTeams'](_0x4b1f80,{'transaction':_0x5c5b57})[_0x93a9('0x1e')](function(){return BPromise['each'](_0xffc686,function(_0x4c0d67){return db['UserChatQueue'][_0x93a9('0x74')]({'where':{'UserId':_0x4c0d67['id'],'ChatQueueId':_0x241754[_0x93a9('0x54')]['id']},'transaction':_0x5c5b57});});})[_0x93a9('0x1e')](function(){_0xffc686[_0x93a9('0x75')](function(_0x44d299){socket[_0x93a9('0x76')]('userChatQueue:save',{'UserId':_0x44d299['id'],'ChatQueueId':_0x27a15b['id']});});});});});}})[_0x93a9('0x1e')](respondWithStatusCode(_0x4381d1,null))[_0x93a9('0x27')](handleError(_0x4381d1,null));};exports[_0x93a9('0x77')]=function(_0x2a3d03,_0x40d8fe,_0x2478f3){return db[_0x93a9('0x6b')][_0x93a9('0x51')]({'where':{'id':_0x2a3d03['query'][_0x93a9('0x78')]},'attributes':['id'],'include':[{'model':db[_0x93a9('0x62')],'as':_0x93a9('0x6d'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x40d8fe,null))['then'](function(_0x3f3a9a){var _0x1e76ef=_[_0x93a9('0x4b')](_0x3f3a9a,'id');var _0x5ceb09=[];var _0x1435b0=[];var _0x480e19=squel['select']();_0x480e19['field'](_0x93a9('0x79'))[_0x93a9('0x7a')](_0x93a9('0x7b'),'tq')['join'](_0x93a9('0x7c'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0x93a9('0x49')]('ChatQueueId\x20=\x20?',_0x2a3d03[_0x93a9('0x54')]['id']);for(var _0x57f914=0x0;_0x57f914<_0x3f3a9a[_0x93a9('0x45')];_0x57f914+=0x1){let _0x302cc5=_0x3f3a9a[_0x57f914];for(var _0x13edb=0x0;_0x13edb<_0x302cc5[_0x93a9('0x6d')][_0x93a9('0x45')];_0x13edb+=0x1){let _0x183a8d=_0x302cc5[_0x93a9('0x6d')][_0x13edb];var _0x29c5fc=_0x480e19[_0x93a9('0x7d')]();_0x29c5fc[_0x93a9('0x49')]('ut.UserId\x20=\x20?',_0x183a8d['id']);_0x1435b0[_0x93a9('0x7e')](db[_0x93a9('0x72')][_0x93a9('0x40')](_0x29c5fc[_0x93a9('0x7f')](),{'type':db[_0x93a9('0x72')][_0x93a9('0x80')]['SELECT']})['then'](function(_0x4fbe01){if(_0x4fbe01['length']===0x1){return _0x183a8d['id'];}else{var _0x204385=_['every'](_[_0x93a9('0x4b')](_0x4fbe01,_0x93a9('0x81')),function(_0xd4824c){return _[_0x93a9('0x82')](_0x1e76ef,_0xd4824c);});if(_0x204385){return _0x183a8d['id'];}}}));}}return BPromise[_0x93a9('0x83')](_0x1435b0)[_0x93a9('0x1e')](function(_0x3e263e){_0x5ceb09=_(_0x5ceb09)[_0x93a9('0x84')](_0x3e263e)[_0x93a9('0x85')]()[_0x93a9('0x86')]();return db[_0x93a9('0x3a')][_0x93a9('0x59')]({'where':{'id':_0x2a3d03[_0x93a9('0x54')]['id']}})[_0x93a9('0x1e')](function(_0x549e72){return db['sequelize'][_0x93a9('0x73')](function(_0x14262b){return _0x549e72[_0x93a9('0x77')](_0x2a3d03[_0x93a9('0x40')]['ids'],{'transaction':_0x14262b})['then'](function(){if(!_[_0x93a9('0x87')](_0x5ceb09)){return _0x549e72[_0x93a9('0x88')](_0x5ceb09,{'transaction':_0x14262b});}})[_0x93a9('0x1e')](function(){_0x5ceb09[_0x93a9('0x75')](function(_0x568eb9){socket[_0x93a9('0x76')](_0x93a9('0x89'),{'UserId':_0x568eb9,'ChatQueueId':_0x549e72['id']});});});});});});})[_0x93a9('0x1e')](respondWithStatusCode(_0x40d8fe,null))['catch'](handleError(_0x40d8fe,null));};exports[_0x93a9('0x8a')]=function(_0x1bf683,_0x3247db,_0x4e3440){return db['ChatQueue'][_0x93a9('0x59')]({'where':{'id':_0x1bf683['params']['id']}})[_0x93a9('0x1e')](handleEntityNotFound(_0x3247db,null))[_0x93a9('0x1e')](function(_0x2364a5){if(_0x2364a5){return _0x2364a5[_0x93a9('0x8a')](_0x1bf683[_0x93a9('0x56')][_0x93a9('0x78')],_[_0x93a9('0x8b')](_0x1bf683[_0x93a9('0x56')],[_0x93a9('0x78'),'id'])||{})['spread'](function(_0x15434e){for(var _0x2f61c4=0x0;_0x2f61c4<_0x1bf683[_0x93a9('0x56')][_0x93a9('0x78')][_0x93a9('0x45')];_0x2f61c4+=0x1){socket[_0x93a9('0x76')](_0x93a9('0x8c'),{'UserId':Number(_0x1bf683['body'][_0x93a9('0x78')][_0x2f61c4]),'ChatQueueId':Number(_0x1bf683[_0x93a9('0x54')]['id'])});}return _0x15434e;});}})[_0x93a9('0x1e')](respondWithResult(_0x3247db,null))[_0x93a9('0x27')](handleError(_0x3247db,null));};exports['removeAgents']=function(_0x3f8bc4,_0x5db65a,_0x3f73be){return db['ChatQueue'][_0x93a9('0x59')]({'where':{'id':_0x3f8bc4[_0x93a9('0x54')]['id']}})[_0x93a9('0x1e')](handleEntityNotFound(_0x5db65a,null))[_0x93a9('0x1e')](function(_0x5265ae){if(_0x5265ae){return _0x5265ae[_0x93a9('0x88')](_0x3f8bc4[_0x93a9('0x40')][_0x93a9('0x78')])[_0x93a9('0x1e')](function(){if(_[_0x93a9('0x8d')](_0x3f8bc4['query'][_0x93a9('0x78')])){for(var _0x59f370=0x0;_0x59f370<_0x3f8bc4[_0x93a9('0x40')][_0x93a9('0x78')][_0x93a9('0x45')];_0x59f370+=0x1){socket['emit'](_0x93a9('0x89'),{'UserId':Number(_0x3f8bc4[_0x93a9('0x40')][_0x93a9('0x78')][_0x59f370]),'ChatQueueId':Number(_0x3f8bc4['params']['id'])});}}else{socket[_0x93a9('0x76')](_0x93a9('0x89'),{'UserId':Number(_0x3f8bc4[_0x93a9('0x40')]['ids']),'ChatQueueId':Number(_0x3f8bc4[_0x93a9('0x54')]['id'])});}});}})[_0x93a9('0x1e')](respondWithStatusCode(_0x5db65a,null))['catch'](handleError(_0x5db65a,null));};exports[_0x93a9('0x8e')]=function(_0x353568,_0x19cc19,_0x28d2e2){var _0x5b9a65={};var _0x1960d5={};var _0x1a1abe;var _0x548264;return db['ChatQueue'][_0x93a9('0x6a')]({'where':{'id':_0x353568['params']['id']}})[_0x93a9('0x1e')](handleEntityNotFound(_0x19cc19,null))[_0x93a9('0x1e')](function(_0x1c5409){if(_0x1c5409){_0x1a1abe=_0x1c5409;_0x1960d5[_0x93a9('0x3e')]=_[_0x93a9('0x3f')](db['User'][_0x93a9('0x3b')]);_0x1960d5[_0x93a9('0x40')]=_[_0x93a9('0x3f')](_0x353568[_0x93a9('0x40')]);_0x1960d5[_0x93a9('0x41')]=_[_0x93a9('0x42')](_0x1960d5[_0x93a9('0x3e')],_0x1960d5[_0x93a9('0x40')]);_0x5b9a65[_0x93a9('0x43')]=_[_0x93a9('0x42')](_0x1960d5[_0x93a9('0x3e')],qs[_0x93a9('0x44')](_0x353568[_0x93a9('0x40')]['fields']));_0x5b9a65[_0x93a9('0x43')]=_0x5b9a65[_0x93a9('0x43')][_0x93a9('0x45')]?_0x5b9a65[_0x93a9('0x43')]:_0x1960d5['model'];_0x5b9a65['order']=qs[_0x93a9('0x48')](_0x353568[_0x93a9('0x40')][_0x93a9('0x48')]);_0x5b9a65[_0x93a9('0x49')]=qs[_0x93a9('0x41')](_[_0x93a9('0x4a')](_0x353568[_0x93a9('0x40')],_0x1960d5[_0x93a9('0x41')]));if(_0x353568['query'][_0x93a9('0x61')]){_0x5b9a65[_0x93a9('0x49')]=_[_0x93a9('0x4d')](_0x5b9a65[_0x93a9('0x49')],{'$or':_[_0x93a9('0x4b')](_0x5b9a65['attributes'],function(_0x184536){var _0x5a3498={};_0x5a3498[_0x184536]={'$like':'%'+_0x353568[_0x93a9('0x40')][_0x93a9('0x61')]+'%'};return _0x5a3498;})});}_0x5b9a65=_[_0x93a9('0x4d')]({},_0x5b9a65,_0x353568[_0x93a9('0x4e')]);return _0x1a1abe[_0x93a9('0x8e')](_0x5b9a65);}})[_0x93a9('0x1e')](function(_0x2a2240){if(_0x2a2240){_0x548264=_0x2a2240[_0x93a9('0x45')];if(!_0x353568[_0x93a9('0x40')][_0x93a9('0x46')](_0x93a9('0x6c'))){_0x5b9a65[_0x93a9('0x2d')]=qs[_0x93a9('0x2d')](_0x353568['query'][_0x93a9('0x2d')]);_0x5b9a65['offset']=qs[_0x93a9('0x2a')](_0x353568[_0x93a9('0x40')]['offset']);}return _0x1a1abe[_0x93a9('0x8e')](_0x5b9a65);}})[_0x93a9('0x1e')](function(_0x38b04b){if(_0x38b04b){return _0x38b04b?{'count':_0x548264,'rows':_0x38b04b}:null;}})[_0x93a9('0x1e')](respondWithResult(_0x19cc19,null))[_0x93a9('0x27')](handleError(_0x19cc19,null));};
\ No newline at end of file
+var _0xb398=['jayson/promise','client','http','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','end','json','offset','limit','undefined','set','Content-Range','reject','save','update','destroy','stack','name','send','index','map','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','ChatQueue','count','includeAll','include','findAll','rows','show','params','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','describe','getMembers','findOne','rawAttributes','ChatQueueId','User','findAndCountAll','UserId','agent','chatPause','updatedAt','format','%s/%s','SIP','getTeams','addTeams','Team','online','voicePause','flatMap','Agents','sequelize','each','UserChatQueue','findOrCreate','removeTeams','ids','tq.TeamId','from','team_has_chat_queues','join','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','includes','all','union','compact','value','transaction','removeAgents','forEach','addAgents','omit','spread','emit','userChatQueue:save','isArray','userChatQueue:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','fs-extra','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','./chatQueue.socket','register'];(function(_0x2de49c,_0x4710da){var _0x333733=function(_0x1daa19){while(--_0x1daa19){_0x2de49c['push'](_0x2de49c['shift']());}};_0x333733(++_0x4710da);}(_0xb398,0x81));var _0x8b39=function(_0x295ac5,_0x3bc650){_0x295ac5=_0x295ac5-0x0;var _0x89ceb3=_0xb398[_0x295ac5];return _0x89ceb3;};'use strict';var emlformat=require(_0x8b39('0x0'));var rimraf=require(_0x8b39('0x1'));var zipdir=require(_0x8b39('0x2'));var jsonpatch=require(_0x8b39('0x3'));var rp=require(_0x8b39('0x4'));var moment=require('moment');var BPromise=require(_0x8b39('0x5'));var Mustache=require(_0x8b39('0x6'));var util=require(_0x8b39('0x7'));var path=require('path');var sox=require(_0x8b39('0x8'));var csv=require('to-csv');var ejs=require(_0x8b39('0x9'));var fs=require('fs');var fs_extra=require(_0x8b39('0xa'));var _=require('lodash');var squel=require(_0x8b39('0xb'));var crypto=require(_0x8b39('0xc'));var jsforce=require(_0x8b39('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x8b39('0xe'));var querystring=require(_0x8b39('0xf'));var Papa=require(_0x8b39('0x10'));var Redis=require(_0x8b39('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x8b39('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x8b39('0x13'));var utils=require(_0x8b39('0x14'));var config=require(_0x8b39('0x15'));var licenseUtil=require(_0x8b39('0x16'));var db=require(_0x8b39('0x17'))['db'];config[_0x8b39('0x18')]=_[_0x8b39('0x19')](config[_0x8b39('0x18')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8b39('0x18')]));require(_0x8b39('0x1a'))[_0x8b39('0x1b')](socket);var jayson=require(_0x8b39('0x1c'));var client=jayson[_0x8b39('0x1d')][_0x8b39('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x5a6952,_0x7c1d26,_0x10c5e7,_0x49ef89){return new BPromise(function(_0x5472f0,_0x2b4c54){var _0x54fef7=_0x49ef89||client;return _0x54fef7[_0x8b39('0x1f')](_0x5a6952,_0x10c5e7)[_0x8b39('0x20')](function(_0x4b1dc6){logger[_0x8b39('0x21')](_0x8b39('0x22'),_0x7c1d26,_0x8b39('0x23'));logger['debug'](_0x8b39('0x24'),_0x7c1d26,_0x8b39('0x23'),JSON[_0x8b39('0x25')](_0x4b1dc6));if(_0x4b1dc6[_0x8b39('0x26')]){if(_0x4b1dc6[_0x8b39('0x26')]['code']===0x1f4){logger[_0x8b39('0x26')](_0x8b39('0x22'),_0x7c1d26,_0x4b1dc6['error']['message']);return _0x2b4c54(_0x4b1dc6[_0x8b39('0x26')]['message']);}logger[_0x8b39('0x26')](_0x8b39('0x22'),_0x7c1d26,_0x4b1dc6['error'][_0x8b39('0x27')]);return _0x5472f0(_0x4b1dc6[_0x8b39('0x26')][_0x8b39('0x27')]);}else{logger[_0x8b39('0x21')](_0x8b39('0x22'),_0x7c1d26,'request\x20sent');_0x5472f0(_0x4b1dc6[_0x8b39('0x28')][_0x8b39('0x27')]);}})[_0x8b39('0x29')](function(_0x4a2d2f){logger[_0x8b39('0x26')](_0x8b39('0x22'),_0x7c1d26,_0x4a2d2f);_0x2b4c54(_0x4a2d2f);});});}function respondWithStatusCode(_0x452150,_0x236e8d){_0x236e8d=_0x236e8d||0xcc;return function(_0x8ae664){if(_0x8ae664){return _0x452150[_0x8b39('0x2a')](_0x236e8d);}return _0x452150[_0x8b39('0x2b')](_0x236e8d)[_0x8b39('0x2c')]();};}function respondWithResult(_0x43579a,_0x4f2c7c){_0x4f2c7c=_0x4f2c7c||0xc8;return function(_0x68e164){if(_0x68e164){return _0x43579a['status'](_0x4f2c7c)[_0x8b39('0x2d')](_0x68e164);}};}function respondWithFilteredResult(_0x463533,_0x14eb1c){return function(_0x17dd7f){if(_0x17dd7f){var _0x358e14=typeof _0x14eb1c[_0x8b39('0x2e')]==='undefined'&&typeof _0x14eb1c[_0x8b39('0x2f')]===_0x8b39('0x30');var _0xd19911=_0x17dd7f['count'];var _0x1e9dae=_0x358e14?0x0:_0x14eb1c[_0x8b39('0x2e')];var _0x2b517e=_0x358e14?_0x17dd7f['count']:_0x14eb1c['offset']+_0x14eb1c['limit'];var _0x1064c7;if(_0x2b517e>=_0xd19911){_0x2b517e=_0xd19911;_0x1064c7=0xc8;}else{_0x1064c7=0xce;}_0x463533[_0x8b39('0x2b')](_0x1064c7);return _0x463533[_0x8b39('0x31')](_0x8b39('0x32'),_0x1e9dae+'-'+_0x2b517e+'/'+_0xd19911)[_0x8b39('0x2d')](_0x17dd7f);}return null;};}function patchUpdates(_0x34451c){return function(_0x244698){try{jsonpatch['apply'](_0x244698,_0x34451c,!![]);}catch(_0x31760a){return BPromise[_0x8b39('0x33')](_0x31760a);}return _0x244698[_0x8b39('0x34')]();};}function saveUpdates(_0x15beac,_0x484422){return function(_0x5d872f){if(_0x5d872f){return _0x5d872f[_0x8b39('0x35')](_0x15beac)[_0x8b39('0x20')](function(_0x1382ea){return _0x1382ea;});}return null;};}function removeEntity(_0x510797,_0x1ea219){return function(_0x4ccd0a){if(_0x4ccd0a){return _0x4ccd0a['destroy']()[_0x8b39('0x20')](function(){var _0x334183=_0x4ccd0a['get']({'plain':!![]});var _0x184fd4='ChatQueues';return db['UserProfileResource'][_0x8b39('0x36')]({'where':{'type':_0x184fd4,'resourceId':_0x334183['id']}})[_0x8b39('0x20')](function(){return _0x4ccd0a;});})['then'](function(){_0x510797[_0x8b39('0x2b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x35797e,_0x1b5011){return function(_0x447f34){if(!_0x447f34){_0x35797e[_0x8b39('0x2a')](0x194);}return _0x447f34;};}function handleError(_0x7b6389,_0x458c82){_0x458c82=_0x458c82||0x1f4;return function(_0x409494){logger['error'](_0x409494[_0x8b39('0x37')]);if(_0x409494[_0x8b39('0x38')]){delete _0x409494[_0x8b39('0x38')];}_0x7b6389[_0x8b39('0x2b')](_0x458c82)[_0x8b39('0x39')](_0x409494);};}exports[_0x8b39('0x3a')]=function(_0x49e729,_0xfdd5c){var _0x4800b3={},_0x6a0f0b={},_0x3be31f={'count':0x0,'rows':[]};var _0x58147c=_[_0x8b39('0x3b')](db['ChatQueue']['rawAttributes'],function(_0x4b9ae5){return{'name':_0x4b9ae5[_0x8b39('0x3c')],'type':_0x4b9ae5[_0x8b39('0x3d')][_0x8b39('0x3e')]};});_0x6a0f0b[_0x8b39('0x3f')]=_['map'](_0x58147c,_0x8b39('0x38'));_0x6a0f0b[_0x8b39('0x40')]=_[_0x8b39('0x41')](_0x49e729[_0x8b39('0x40')]);_0x6a0f0b['filters']=_[_0x8b39('0x42')](_0x6a0f0b[_0x8b39('0x3f')],_0x6a0f0b[_0x8b39('0x40')]);_0x4800b3[_0x8b39('0x43')]=_['intersection'](_0x6a0f0b['model'],qs[_0x8b39('0x44')](_0x49e729[_0x8b39('0x40')]['fields']));_0x4800b3[_0x8b39('0x43')]=_0x4800b3[_0x8b39('0x43')][_0x8b39('0x45')]?_0x4800b3[_0x8b39('0x43')]:_0x6a0f0b[_0x8b39('0x3f')];if(!_0x49e729[_0x8b39('0x40')][_0x8b39('0x46')](_0x8b39('0x47'))){_0x4800b3[_0x8b39('0x2f')]=qs[_0x8b39('0x2f')](_0x49e729[_0x8b39('0x40')][_0x8b39('0x2f')]);_0x4800b3[_0x8b39('0x2e')]=qs[_0x8b39('0x2e')](_0x49e729[_0x8b39('0x40')][_0x8b39('0x2e')]);}_0x4800b3[_0x8b39('0x48')]=qs['sort'](_0x49e729['query'][_0x8b39('0x49')]);_0x4800b3[_0x8b39('0x4a')]=qs[_0x8b39('0x4b')](_[_0x8b39('0x4c')](_0x49e729['query'],_0x6a0f0b[_0x8b39('0x4b')]),_0x58147c);if(_0x49e729[_0x8b39('0x40')][_0x8b39('0x4d')]){_0x4800b3[_0x8b39('0x4a')]=_[_0x8b39('0x4e')](_0x4800b3[_0x8b39('0x4a')],{'$or':_[_0x8b39('0x3b')](_0x58147c,function(_0x5a878f){if(_0x5a878f[_0x8b39('0x3d')]!==_0x8b39('0x4f')){var _0x2e5bd3={};_0x2e5bd3[_0x5a878f[_0x8b39('0x38')]]={'$like':'%'+_0x49e729[_0x8b39('0x40')][_0x8b39('0x4d')]+'%'};return _0x2e5bd3;}})});}_0x4800b3=_[_0x8b39('0x4e')]({},_0x4800b3,_0x49e729[_0x8b39('0x50')]);var _0x2af518={'where':_0x4800b3[_0x8b39('0x4a')]};return db[_0x8b39('0x51')][_0x8b39('0x52')](_0x2af518)[_0x8b39('0x20')](function(_0x50b538){_0x3be31f[_0x8b39('0x52')]=_0x50b538;if(_0x49e729['query'][_0x8b39('0x53')]){_0x4800b3[_0x8b39('0x54')]=[{'all':!![]}];}return db[_0x8b39('0x51')][_0x8b39('0x55')](_0x4800b3);})['then'](function(_0x89f5){_0x3be31f[_0x8b39('0x56')]=_0x89f5;return _0x3be31f;})[_0x8b39('0x20')](respondWithFilteredResult(_0xfdd5c,_0x4800b3))['catch'](handleError(_0xfdd5c,null));};exports[_0x8b39('0x57')]=function(_0x134fd5,_0x4413ae){var _0x31a350={'raw':!![],'where':{'id':_0x134fd5[_0x8b39('0x58')]['id']}},_0xe77196={};_0xe77196[_0x8b39('0x3f')]=_[_0x8b39('0x41')](db[_0x8b39('0x51')]['rawAttributes']);_0xe77196[_0x8b39('0x40')]=_[_0x8b39('0x41')](_0x134fd5['query']);_0xe77196[_0x8b39('0x4b')]=_[_0x8b39('0x42')](_0xe77196[_0x8b39('0x3f')],_0xe77196[_0x8b39('0x40')]);_0x31a350[_0x8b39('0x43')]=_[_0x8b39('0x42')](_0xe77196[_0x8b39('0x3f')],qs[_0x8b39('0x44')](_0x134fd5[_0x8b39('0x40')][_0x8b39('0x44')]));_0x31a350[_0x8b39('0x43')]=_0x31a350['attributes']['length']?_0x31a350[_0x8b39('0x43')]:_0xe77196[_0x8b39('0x3f')];if(_0x134fd5[_0x8b39('0x40')][_0x8b39('0x53')]){_0x31a350[_0x8b39('0x54')]=[{'all':!![]}];}_0x31a350=_[_0x8b39('0x4e')]({},_0x31a350,_0x134fd5[_0x8b39('0x50')]);return db['ChatQueue'][_0x8b39('0x59')](_0x31a350)[_0x8b39('0x20')](handleEntityNotFound(_0x4413ae,null))[_0x8b39('0x20')](respondWithResult(_0x4413ae,null))[_0x8b39('0x29')](handleError(_0x4413ae,null));};exports[_0x8b39('0x5a')]=function(_0x2cb594,_0x2d3384){return db[_0x8b39('0x51')]['create'](_0x2cb594[_0x8b39('0x5b')],{})[_0x8b39('0x20')](function(_0x33ec86){var _0x1ae6fc=_0x2cb594[_0x8b39('0x5c')][_0x8b39('0x5d')]({'plain':!![]});if(!_0x1ae6fc)throw new Error(_0x8b39('0x5e'));if(_0x1ae6fc[_0x8b39('0x5f')]===_0x8b39('0x5c')){var _0x5f2e4b=_0x33ec86['get']({'plain':!![]});var _0x5acdce='ChatQueues';return db[_0x8b39('0x60')][_0x8b39('0x59')]({'where':{'name':_0x5acdce,'userProfileId':_0x1ae6fc[_0x8b39('0x61')]},'raw':!![]})[_0x8b39('0x20')](function(_0x322eb5){if(_0x322eb5&&_0x322eb5[_0x8b39('0x62')]===0x0){return db[_0x8b39('0x63')][_0x8b39('0x5a')]({'name':_0x5f2e4b[_0x8b39('0x38')],'resourceId':_0x5f2e4b['id'],'type':_0x322eb5[_0x8b39('0x38')],'sectionId':_0x322eb5['id']},{})[_0x8b39('0x20')](function(){return _0x33ec86;});}else{return _0x33ec86;}})[_0x8b39('0x29')](function(_0x21c59f){logger[_0x8b39('0x26')](_0x8b39('0x64'),_0x21c59f);throw _0x21c59f;});}return _0x33ec86;})[_0x8b39('0x20')](respondWithResult(_0x2d3384,0xc9))[_0x8b39('0x29')](handleError(_0x2d3384,null));};exports[_0x8b39('0x35')]=function(_0x4f24f7,_0x402472){if(_0x4f24f7['body']['id']){delete _0x4f24f7[_0x8b39('0x5b')]['id'];}return db[_0x8b39('0x51')][_0x8b39('0x59')]({'where':{'id':_0x4f24f7[_0x8b39('0x58')]['id']}})[_0x8b39('0x20')](handleEntityNotFound(_0x402472,null))[_0x8b39('0x20')](saveUpdates(_0x4f24f7[_0x8b39('0x5b')],null))[_0x8b39('0x20')](respondWithResult(_0x402472,null))['catch'](handleError(_0x402472,null));};exports['destroy']=function(_0x212ca1,_0x3af191){return db['ChatQueue']['find']({'where':{'id':_0x212ca1[_0x8b39('0x58')]['id']}})[_0x8b39('0x20')](handleEntityNotFound(_0x3af191,null))['then'](removeEntity(_0x3af191,null))['catch'](handleError(_0x3af191,null));};exports[_0x8b39('0x65')]=function(_0x382a85,_0x289067){return db[_0x8b39('0x51')][_0x8b39('0x65')]()[_0x8b39('0x20')](respondWithResult(_0x289067,null))[_0x8b39('0x29')](handleError(_0x289067,null));};exports[_0x8b39('0x66')]=function(_0x4c844d,_0x4c1dd9,_0x4ebe39){var _0xf5410b={'raw':!![],'where':{}},_0x2d9279={},_0x1a32cc;return db[_0x8b39('0x51')][_0x8b39('0x67')]({'where':{'id':_0x4c844d[_0x8b39('0x58')]['id']}})[_0x8b39('0x20')](handleEntityNotFound(_0x4c1dd9,null))[_0x8b39('0x20')](function(_0x407cff){if(_0x407cff){_0x1a32cc=_0x407cff['get']({'plain':!![]});_0x2d9279[_0x8b39('0x3f')]=_[_0x8b39('0x41')](db['UserChatQueue'][_0x8b39('0x68')]);_0x2d9279[_0x8b39('0x40')]=_['keys'](_0x4c844d['query']);_0x2d9279[_0x8b39('0x4b')]=_[_0x8b39('0x42')](_0x2d9279[_0x8b39('0x3f')],_0x2d9279[_0x8b39('0x40')]);_0xf5410b[_0x8b39('0x43')]=_[_0x8b39('0x42')](_0x2d9279[_0x8b39('0x3f')],qs[_0x8b39('0x44')](_0x4c844d[_0x8b39('0x40')][_0x8b39('0x44')]));_0xf5410b[_0x8b39('0x43')]=_0xf5410b[_0x8b39('0x43')][_0x8b39('0x45')]?_0xf5410b[_0x8b39('0x43')]:_0x2d9279[_0x8b39('0x3f')];if(!_0x4c844d[_0x8b39('0x40')][_0x8b39('0x46')](_0x8b39('0x47'))){_0xf5410b[_0x8b39('0x2f')]=qs[_0x8b39('0x2f')](_0x4c844d['query'][_0x8b39('0x2f')]);_0xf5410b['offset']=qs[_0x8b39('0x2e')](_0x4c844d['query'][_0x8b39('0x2e')]);}_0xf5410b[_0x8b39('0x48')]=qs[_0x8b39('0x49')](_0x4c844d[_0x8b39('0x40')][_0x8b39('0x49')]);_0xf5410b[_0x8b39('0x4a')]=qs['filters'](_['pick'](_0x4c844d[_0x8b39('0x40')],_0x2d9279[_0x8b39('0x4b')]));_0xf5410b['where'][_0x8b39('0x69')]=_0x407cff['id'];if(_0x4c844d[_0x8b39('0x40')][_0x8b39('0x4d')]){_0xf5410b[_0x8b39('0x4a')]=_[_0x8b39('0x4e')](_0xf5410b['where'],{'$or':_[_0x8b39('0x3b')](_0xf5410b[_0x8b39('0x43')],function(_0x1f0170){var _0x588fc9={};_0x588fc9[_0x1f0170]={'$like':'%'+_0x4c844d['query'][_0x8b39('0x4d')]+'%'};return _0x588fc9;})});}_0xf5410b=_[_0x8b39('0x4e')]({},_0xf5410b,_0x4c844d[_0x8b39('0x50')]);return db['UserChatQueue'][_0x8b39('0x55')](_0xf5410b);}})[_0x8b39('0x20')](function(_0x455d94){if(_0x455d94){return db[_0x8b39('0x6a')][_0x8b39('0x6b')]({'where':{'id':_['map'](_0x455d94,_0x8b39('0x6c')),'role':_0x8b39('0x6d')},'attributes':['id',_0x8b39('0x38'),_0x8b39('0x6e'),_0x8b39('0x6f'),'createdAt']});}})[_0x8b39('0x20')](function(_0xeff6c2){if(_0xeff6c2){return{'count':_0xeff6c2[_0x8b39('0x52')],'rows':_[_0x8b39('0x3b')](_0xeff6c2[_0x8b39('0x56')],function(_0x319705){return{'membername':_0x319705['name'],'UserId':_0x319705['id'],'queue_name':_0x1a32cc[_0x8b39('0x38')],'ChatQueueId':_0x1a32cc['id'],'interface':util[_0x8b39('0x70')](_0x8b39('0x71'),_0x8b39('0x72'),_0x319705[_0x8b39('0x38')]),'penalty':0x0,'paused':_0x319705[_0x8b39('0x6e')],'createdAt':_0x319705['createdAt'],'updatedAt':_0x319705[_0x8b39('0x6f')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x8b39('0x20')](respondWithFilteredResult(_0x4c1dd9,_0xf5410b))[_0x8b39('0x29')](handleError(_0x4c1dd9,null));};exports['getTeams']=function(_0x41d2d4,_0x6ffdcc,_0x21ab02){var _0x3861da={};var _0x331b0f={};var _0x3ab8c8;var _0x1ac023;return db[_0x8b39('0x51')]['findOne']({'where':{'id':_0x41d2d4[_0x8b39('0x58')]['id']}})[_0x8b39('0x20')](handleEntityNotFound(_0x6ffdcc,null))[_0x8b39('0x20')](function(_0x10132c){if(_0x10132c){_0x3ab8c8=_0x10132c;_0x331b0f[_0x8b39('0x3f')]=_[_0x8b39('0x41')](db['Team'][_0x8b39('0x68')]);_0x331b0f[_0x8b39('0x40')]=_[_0x8b39('0x41')](_0x41d2d4['query']);_0x331b0f[_0x8b39('0x4b')]=_['intersection'](_0x331b0f[_0x8b39('0x3f')],_0x331b0f['query']);_0x3861da[_0x8b39('0x43')]=_[_0x8b39('0x42')](_0x331b0f['model'],qs[_0x8b39('0x44')](_0x41d2d4[_0x8b39('0x40')][_0x8b39('0x44')]));_0x3861da[_0x8b39('0x43')]=_0x3861da['attributes'][_0x8b39('0x45')]?_0x3861da[_0x8b39('0x43')]:_0x331b0f['model'];_0x3861da['order']=qs[_0x8b39('0x49')](_0x41d2d4[_0x8b39('0x40')][_0x8b39('0x49')]);_0x3861da[_0x8b39('0x4a')]=qs['filters'](_[_0x8b39('0x4c')](_0x41d2d4['query'],_0x331b0f[_0x8b39('0x4b')]));if(_0x41d2d4['query']['filter']){_0x3861da[_0x8b39('0x4a')]=_[_0x8b39('0x4e')](_0x3861da[_0x8b39('0x4a')],{'$or':_[_0x8b39('0x3b')](_0x3861da['attributes'],function(_0x4de916){var _0x468530={};_0x468530[_0x4de916]={'$like':'%'+_0x41d2d4[_0x8b39('0x40')]['filter']+'%'};return _0x468530;})});}_0x3861da=_[_0x8b39('0x4e')]({},_0x3861da,_0x41d2d4[_0x8b39('0x50')]);return _0x3ab8c8[_0x8b39('0x73')](_0x3861da);}})[_0x8b39('0x20')](function(_0x3d4df1){if(_0x3d4df1){_0x1ac023=_0x3d4df1[_0x8b39('0x45')];if(!_0x41d2d4[_0x8b39('0x40')]['hasOwnProperty'](_0x8b39('0x47'))){_0x3861da[_0x8b39('0x2f')]=qs[_0x8b39('0x2f')](_0x41d2d4[_0x8b39('0x40')][_0x8b39('0x2f')]);_0x3861da[_0x8b39('0x2e')]=qs['offset'](_0x41d2d4[_0x8b39('0x40')]['offset']);}return _0x3ab8c8['getTeams'](_0x3861da);}})['then'](function(_0x577d9b){if(_0x577d9b){return _0x577d9b?{'count':_0x1ac023,'rows':_0x577d9b}:null;}})[_0x8b39('0x20')](respondWithResult(_0x6ffdcc,null))[_0x8b39('0x29')](handleError(_0x6ffdcc,null));};exports[_0x8b39('0x74')]=function(_0x17b83f,_0x40573a,_0x5a923e){var _0x1eb0b5=_0x17b83f[_0x8b39('0x5b')]['ids'];return db[_0x8b39('0x75')][_0x8b39('0x55')]({'where':{'id':_0x1eb0b5},'attributes':['id'],'include':[{'model':db[_0x8b39('0x6a')],'as':'Agents','attributes':['id',_0x8b39('0x38'),_0x8b39('0x76'),_0x8b39('0x77'),'interface'],'raw':!![]}]})['then'](function(_0x1e4f6a){if(_0x1e4f6a){var _0x1bb412=_[_0x8b39('0x78')](_0x1e4f6a,function(_0x1060f0){var _0xb7c649=_0x1060f0[_0x8b39('0x5d')]({'plain':!![]});return _0xb7c649[_0x8b39('0x79')];});return db[_0x8b39('0x51')][_0x8b39('0x59')]({'where':{'id':_0x17b83f[_0x8b39('0x58')]['id']}})[_0x8b39('0x20')](function(_0x5bd317){return db[_0x8b39('0x7a')]['transaction'](function(_0x35c342){return _0x5bd317[_0x8b39('0x74')](_0x1eb0b5,{'transaction':_0x35c342})[_0x8b39('0x20')](function(){return BPromise[_0x8b39('0x7b')](_0x1bb412,function(_0x3c2416){return db[_0x8b39('0x7c')][_0x8b39('0x7d')]({'where':{'UserId':_0x3c2416['id'],'ChatQueueId':_0x17b83f['params']['id']},'transaction':_0x35c342});});})['then'](function(){_0x1bb412['forEach'](function(_0x5ee38a){socket['emit']('userChatQueue:save',{'UserId':_0x5ee38a['id'],'ChatQueueId':_0x5bd317['id']});});});});});}})[_0x8b39('0x20')](respondWithStatusCode(_0x40573a,null))['catch'](handleError(_0x40573a,null));};exports[_0x8b39('0x7e')]=function(_0xf8342f,_0xac7049,_0x680f65){return db[_0x8b39('0x75')][_0x8b39('0x55')]({'where':{'id':_0xf8342f['query'][_0x8b39('0x7f')]},'attributes':['id'],'include':[{'model':db[_0x8b39('0x6a')],'as':_0x8b39('0x79'),'attributes':['id'],'raw':!![]}]})[_0x8b39('0x20')](handleEntityNotFound(_0xac7049,null))['then'](function(_0x5e34d1){var _0x4ad271=_[_0x8b39('0x3b')](_0x5e34d1,'id');var _0x4fcbac=[];var _0x543604=[];var _0x313740=squel['select']();_0x313740['field'](_0x8b39('0x80'))[_0x8b39('0x81')](_0x8b39('0x82'),'tq')[_0x8b39('0x83')]('user_has_teams','ut',_0x8b39('0x84'))[_0x8b39('0x4a')](_0x8b39('0x85'),_0xf8342f[_0x8b39('0x58')]['id']);for(var _0x192825=0x0;_0x192825<_0x5e34d1[_0x8b39('0x45')];_0x192825+=0x1){let _0xdf3454=_0x5e34d1[_0x192825];for(var _0x510d8e=0x0;_0x510d8e<_0xdf3454['Agents']['length'];_0x510d8e+=0x1){let _0x3bdc08=_0xdf3454[_0x8b39('0x79')][_0x510d8e];var _0x21c6b3=_0x313740['clone']();_0x21c6b3[_0x8b39('0x4a')](_0x8b39('0x86'),_0x3bdc08['id']);_0x543604[_0x8b39('0x87')](db[_0x8b39('0x7a')][_0x8b39('0x40')](_0x21c6b3[_0x8b39('0x88')](),{'type':db[_0x8b39('0x7a')][_0x8b39('0x89')][_0x8b39('0x8a')]})[_0x8b39('0x20')](function(_0x3e4fbd){if(_0x3e4fbd[_0x8b39('0x45')]===0x1){return _0x3bdc08['id'];}else{var _0x2c5aaa=_[_0x8b39('0x8b')](_[_0x8b39('0x3b')](_0x3e4fbd,_0x8b39('0x8c')),function(_0x266afd){return _[_0x8b39('0x8d')](_0x4ad271,_0x266afd);});if(_0x2c5aaa){return _0x3bdc08['id'];}}}));}}return BPromise[_0x8b39('0x8e')](_0x543604)[_0x8b39('0x20')](function(_0x1f66c7){_0x4fcbac=_(_0x4fcbac)[_0x8b39('0x8f')](_0x1f66c7)[_0x8b39('0x90')]()[_0x8b39('0x91')]();return db[_0x8b39('0x51')]['find']({'where':{'id':_0xf8342f['params']['id']}})['then'](function(_0x352f2b){return db['sequelize'][_0x8b39('0x92')](function(_0x53cf41){return _0x352f2b[_0x8b39('0x7e')](_0xf8342f[_0x8b39('0x40')][_0x8b39('0x7f')],{'transaction':_0x53cf41})[_0x8b39('0x20')](function(){if(!_['isEmpty'](_0x4fcbac)){return _0x352f2b[_0x8b39('0x93')](_0x4fcbac,{'transaction':_0x53cf41});}})[_0x8b39('0x20')](function(){_0x4fcbac[_0x8b39('0x94')](function(_0x5063ef){socket['emit']('userChatQueue:remove',{'UserId':_0x5063ef,'ChatQueueId':_0x352f2b['id']});});});});});});})[_0x8b39('0x20')](respondWithStatusCode(_0xac7049,null))[_0x8b39('0x29')](handleError(_0xac7049,null));};exports['addAgents']=function(_0x1ad550,_0x57c997,_0x478f5a){return db[_0x8b39('0x51')][_0x8b39('0x59')]({'where':{'id':_0x1ad550[_0x8b39('0x58')]['id']}})[_0x8b39('0x20')](handleEntityNotFound(_0x57c997,null))['then'](function(_0x2abe6d){if(_0x2abe6d){return _0x2abe6d[_0x8b39('0x95')](_0x1ad550[_0x8b39('0x5b')][_0x8b39('0x7f')],_[_0x8b39('0x96')](_0x1ad550[_0x8b39('0x5b')],['ids','id'])||{})[_0x8b39('0x97')](function(_0xf37962){for(var _0x59b16c=0x0;_0x59b16c<_0x1ad550[_0x8b39('0x5b')][_0x8b39('0x7f')][_0x8b39('0x45')];_0x59b16c+=0x1){socket[_0x8b39('0x98')](_0x8b39('0x99'),{'UserId':Number(_0x1ad550[_0x8b39('0x5b')][_0x8b39('0x7f')][_0x59b16c]),'ChatQueueId':Number(_0x1ad550['params']['id'])});}return _0xf37962;});}})['then'](respondWithResult(_0x57c997,null))[_0x8b39('0x29')](handleError(_0x57c997,null));};exports[_0x8b39('0x93')]=function(_0x1d4170,_0x364b30,_0x25f819){return db[_0x8b39('0x51')][_0x8b39('0x59')]({'where':{'id':_0x1d4170[_0x8b39('0x58')]['id']}})[_0x8b39('0x20')](handleEntityNotFound(_0x364b30,null))[_0x8b39('0x20')](function(_0x151bcf){if(_0x151bcf){return _0x151bcf[_0x8b39('0x93')](_0x1d4170[_0x8b39('0x40')]['ids'])['then'](function(){if(_[_0x8b39('0x9a')](_0x1d4170[_0x8b39('0x40')][_0x8b39('0x7f')])){for(var _0x226e69=0x0;_0x226e69<_0x1d4170['query'][_0x8b39('0x7f')][_0x8b39('0x45')];_0x226e69+=0x1){socket[_0x8b39('0x98')](_0x8b39('0x9b'),{'UserId':Number(_0x1d4170['query'][_0x8b39('0x7f')][_0x226e69]),'ChatQueueId':Number(_0x1d4170[_0x8b39('0x58')]['id'])});}}else{socket[_0x8b39('0x98')]('userChatQueue:remove',{'UserId':Number(_0x1d4170[_0x8b39('0x40')][_0x8b39('0x7f')]),'ChatQueueId':Number(_0x1d4170[_0x8b39('0x58')]['id'])});}});}})['then'](respondWithStatusCode(_0x364b30,null))[_0x8b39('0x29')](handleError(_0x364b30,null));};exports['getAgents']=function(_0x1fe1c1,_0x2f5d64,_0x532277){var _0x23c3b3={};var _0x13b3c5={};var _0x33af50;var _0x3a0ebf;return db[_0x8b39('0x51')][_0x8b39('0x67')]({'where':{'id':_0x1fe1c1[_0x8b39('0x58')]['id']}})[_0x8b39('0x20')](handleEntityNotFound(_0x2f5d64,null))['then'](function(_0x379a16){if(_0x379a16){_0x33af50=_0x379a16;_0x13b3c5[_0x8b39('0x3f')]=_[_0x8b39('0x41')](db[_0x8b39('0x6a')]['rawAttributes']);_0x13b3c5[_0x8b39('0x40')]=_[_0x8b39('0x41')](_0x1fe1c1[_0x8b39('0x40')]);_0x13b3c5['filters']=_[_0x8b39('0x42')](_0x13b3c5[_0x8b39('0x3f')],_0x13b3c5[_0x8b39('0x40')]);_0x23c3b3[_0x8b39('0x43')]=_['intersection'](_0x13b3c5['model'],qs[_0x8b39('0x44')](_0x1fe1c1[_0x8b39('0x40')][_0x8b39('0x44')]));_0x23c3b3[_0x8b39('0x43')]=_0x23c3b3['attributes'][_0x8b39('0x45')]?_0x23c3b3[_0x8b39('0x43')]:_0x13b3c5['model'];_0x23c3b3['order']=qs[_0x8b39('0x49')](_0x1fe1c1['query'][_0x8b39('0x49')]);_0x23c3b3['where']=qs['filters'](_[_0x8b39('0x4c')](_0x1fe1c1[_0x8b39('0x40')],_0x13b3c5['filters']));if(_0x1fe1c1[_0x8b39('0x40')][_0x8b39('0x4d')]){_0x23c3b3[_0x8b39('0x4a')]=_[_0x8b39('0x4e')](_0x23c3b3[_0x8b39('0x4a')],{'$or':_[_0x8b39('0x3b')](_0x23c3b3['attributes'],function(_0xe5263b){var _0x4338b8={};_0x4338b8[_0xe5263b]={'$like':'%'+_0x1fe1c1[_0x8b39('0x40')][_0x8b39('0x4d')]+'%'};return _0x4338b8;})});}_0x23c3b3=_[_0x8b39('0x4e')]({},_0x23c3b3,_0x1fe1c1[_0x8b39('0x50')]);return _0x33af50[_0x8b39('0x9c')](_0x23c3b3);}})[_0x8b39('0x20')](function(_0x48d3e9){if(_0x48d3e9){_0x3a0ebf=_0x48d3e9[_0x8b39('0x45')];if(!_0x1fe1c1[_0x8b39('0x40')]['hasOwnProperty'](_0x8b39('0x47'))){_0x23c3b3['limit']=qs[_0x8b39('0x2f')](_0x1fe1c1['query'][_0x8b39('0x2f')]);_0x23c3b3['offset']=qs[_0x8b39('0x2e')](_0x1fe1c1[_0x8b39('0x40')]['offset']);}return _0x33af50[_0x8b39('0x9c')](_0x23c3b3);}})[_0x8b39('0x20')](function(_0xb0be1d){if(_0xb0be1d){return _0xb0be1d?{'count':_0x3a0ebf,'rows':_0xb0be1d}:null;}})['then'](respondWithResult(_0x2f5d64,null))[_0x8b39('0x29')](handleError(_0x2f5d64,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3aff=['remove','emit','hasOwnProperty','hook','events','save'];(function(_0xf686cc,_0x4d7cfc){var _0x3dd711=function(_0x4e92fa){while(--_0x4e92fa){_0xf686cc['push'](_0xf686cc['shift']());}};_0x3dd711(++_0x4d7cfc);}(_0x3aff,0x148));var _0xf3af=function(_0x57c916,_0x1eca1c){_0x57c916=_0x57c916-0x0;var _0x2e9f13=_0x3aff[_0x57c916];return _0x2e9f13;};'use strict';var EventEmitter=require(_0xf3af('0x0'));var ChatQueue=require('../../mysqldb')['db']['ChatQueue'];var ChatQueueEvents=new EventEmitter();ChatQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xf3af('0x1'),'afterUpdate':'update','afterDestroy':_0xf3af('0x2')};function emitEvent(_0x4e6750){return function(_0x21e3ff,_0x5d03ea,_0x12a1b9){ChatQueueEvents[_0xf3af('0x3')](_0x4e6750+':'+_0x21e3ff['id'],_0x21e3ff);ChatQueueEvents[_0xf3af('0x3')](_0x4e6750,_0x21e3ff);_0x12a1b9(null);};}for(var e in events){if(events[_0xf3af('0x4')](e)){var event=events[e];ChatQueue[_0xf3af('0x5')](e,emitEvent(event));}}module['exports']=ChatQueueEvents;
\ No newline at end of file
+var _0x43c9=['hasOwnProperty','hook','events','../../mysqldb','save','emit'];(function(_0x3eae3e,_0x57f222){var _0x4f732b=function(_0x58a223){while(--_0x58a223){_0x3eae3e['push'](_0x3eae3e['shift']());}};_0x4f732b(++_0x57f222);}(_0x43c9,0x8c));var _0x943c=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x43c9[_0x42cae2];return _0x5f256f;};'use strict';var EventEmitter=require(_0x943c('0x0'));var ChatQueue=require(_0x943c('0x1'))['db']['ChatQueue'];var ChatQueueEvents=new EventEmitter();ChatQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x943c('0x2'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x21c38c){return function(_0x48b745,_0x3387a3,_0x5bf04e){ChatQueueEvents['emit'](_0x21c38c+':'+_0x48b745['id'],_0x48b745);ChatQueueEvents[_0x943c('0x3')](_0x21c38c,_0x48b745);_0x5bf04e(null);};}for(var e in events){if(events[_0x943c('0x4')](e)){var event=events[e];ChatQueue[_0x943c('0x5')](e,emitEvent(event));}}module['exports']=ChatQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf39e=['moment','request-promise','path','rimraf','../../config/environment','./chatQueue.attributes','chat_queues','lodash','util','../../config/logger','api'];(function(_0x3ae24a,_0x7d32f9){var _0x18690f=function(_0x2c2389){while(--_0x2c2389){_0x3ae24a['push'](_0x3ae24a['shift']());}};_0x18690f(++_0x7d32f9);}(_0xf39e,0xd8));var _0xef39=function(_0x3eb1e4,_0xb75aee){_0x3eb1e4=_0x3eb1e4-0x0;var _0x3633bc=_0xf39e[_0x3eb1e4];return _0x3633bc;};'use strict';var _=require(_0xef39('0x0'));var util=require(_0xef39('0x1'));var logger=require(_0xef39('0x2'))(_0xef39('0x3'));var moment=require(_0xef39('0x4'));var BPromise=require('bluebird');var rp=require(_0xef39('0x5'));var fs=require('fs');var path=require(_0xef39('0x6'));var rimraf=require(_0xef39('0x7'));var config=require(_0xef39('0x8'));var attributes=require(_0xef39('0x9'));module['exports']=function(_0x5d3e89,_0x2440f9){return _0x5d3e89['define']('ChatQueue',attributes,{'tableName':_0xef39('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0cf9=['ChatQueue','chat_queues','lodash','util','../../config/logger','api','moment','bluebird','exports','define'];(function(_0x11f541,_0x4a053d){var _0x58827b=function(_0x412a07){while(--_0x412a07){_0x11f541['push'](_0x11f541['shift']());}};_0x58827b(++_0x4a053d);}(_0x0cf9,0x17e));var _0x90cf=function(_0x519c88,_0xb84103){_0x519c88=_0x519c88-0x0;var _0x4668d7=_0x0cf9[_0x519c88];return _0x4668d7;};'use strict';var _=require(_0x90cf('0x0'));var util=require(_0x90cf('0x1'));var logger=require(_0x90cf('0x2'))(_0x90cf('0x3'));var moment=require(_0x90cf('0x4'));var BPromise=require(_0x90cf('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('./chatQueue.attributes');module[_0x90cf('0x6')]=function(_0x1dfe6e,_0x1bd2d9){return _0x1dfe6e[_0x90cf('0x7')](_0x90cf('0x8'),attributes,{'tableName':_0x90cf('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdacc=['moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','request','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','GetChatQueue','ChatQueue','findAll','options','raw','where','attributes','limit','include','map','model','then','ShowChatQueue','find','util'];(function(_0x519533,_0x974322){var _0xee0c21=function(_0xc82785){while(--_0xc82785){_0x519533['push'](_0x519533['shift']());}};_0xee0c21(++_0x974322);}(_0xdacc,0x14f));var _0xcdac=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xdacc[_0x2dafbe];return _0x58a45a;};'use strict';var _=require('lodash');var util=require(_0xcdac('0x0'));var moment=require(_0xcdac('0x1'));var BPromise=require(_0xcdac('0x2'));var rs=require(_0xcdac('0x3'));var fs=require('fs');var Redis=require(_0xcdac('0x4'));var db=require(_0xcdac('0x5'))['db'];var utils=require(_0xcdac('0x6'));var logger=require('../../config/logger')(_0xcdac('0x7'));var config=require(_0xcdac('0x8'));var jayson=require(_0xcdac('0x9'));var client=jayson[_0xcdac('0xa')][_0xcdac('0xb')]({'port':0x232a});config[_0xcdac('0xc')]=_[_0xcdac('0xd')](config[_0xcdac('0xc')],{'host':_0xcdac('0xe'),'port':0x18eb});var socket=require(_0xcdac('0xf'))(new Redis(config[_0xcdac('0xc')]));require(_0xcdac('0x10'))[_0xcdac('0x11')](socket);function respondWithRpcPromise(_0x1c930e,_0x337348,_0x45b1bc){return new BPromise(function(_0x48de54,_0x3c105b){return client[_0xcdac('0x12')](_0x1c930e,_0x45b1bc)['then'](function(_0x20706f){logger[_0xcdac('0x13')](_0xcdac('0x14'),_0x337348,_0xcdac('0x15'));logger[_0xcdac('0x16')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x337348,'request\x20sent',JSON[_0xcdac('0x17')](_0x20706f));if(_0x20706f['error']){if(_0x20706f[_0xcdac('0x18')]['code']===0x1f4){logger['error'](_0xcdac('0x14'),_0x337348,_0x20706f[_0xcdac('0x18')][_0xcdac('0x19')]);return _0x3c105b(_0x20706f[_0xcdac('0x18')][_0xcdac('0x19')]);}logger[_0xcdac('0x18')]('ChatQueue,\x20%s,\x20%s',_0x337348,_0x20706f[_0xcdac('0x18')][_0xcdac('0x19')]);return _0x48de54(_0x20706f['error'][_0xcdac('0x19')]);}else{logger[_0xcdac('0x13')](_0xcdac('0x14'),_0x337348,_0xcdac('0x15'));_0x48de54(_0x20706f[_0xcdac('0x1a')][_0xcdac('0x19')]);}})[_0xcdac('0x1b')](function(_0x9e3029){logger['error']('ChatQueue,\x20%s,\x20%s',_0x337348,_0x9e3029);_0x3c105b(_0x9e3029);});});}exports[_0xcdac('0x1c')]=function(_0x46dc29){var _0x3c47bd=this;return new Promise(function(_0x443c86,_0xeb1f4){return db[_0xcdac('0x1d')][_0xcdac('0x1e')]({'raw':_0x46dc29[_0xcdac('0x1f')]?_0x46dc29[_0xcdac('0x1f')][_0xcdac('0x20')]===undefined?!![]:![]:!![],'where':_0x46dc29[_0xcdac('0x1f')]?_0x46dc29[_0xcdac('0x1f')][_0xcdac('0x21')]||null:null,'attributes':_0x46dc29[_0xcdac('0x1f')]?_0x46dc29[_0xcdac('0x1f')][_0xcdac('0x22')]||null:null,'limit':_0x46dc29[_0xcdac('0x1f')]?_0x46dc29[_0xcdac('0x1f')][_0xcdac('0x23')]||null:null,'include':_0x46dc29['options']?_0x46dc29[_0xcdac('0x1f')][_0xcdac('0x24')]?_[_0xcdac('0x25')](_0x46dc29[_0xcdac('0x1f')][_0xcdac('0x24')],function(_0x2b43e9){return{'model':db[_0x2b43e9['model']],'as':_0x2b43e9['as'],'attributes':_0x2b43e9[_0xcdac('0x22')],'include':_0x2b43e9[_0xcdac('0x24')]?_['map'](_0x2b43e9['include'],function(_0x305be2){return{'model':db[_0x305be2[_0xcdac('0x26')]],'as':_0x305be2['as'],'attributes':_0x305be2[_0xcdac('0x22')],'include':_0x305be2[_0xcdac('0x24')]?_[_0xcdac('0x25')](_0x305be2[_0xcdac('0x24')],function(_0x1a8071){return{'model':db[_0x1a8071[_0xcdac('0x26')]],'as':_0x1a8071['as'],'attributes':_0x1a8071['attributes']};}):[]};}):[]};}):[]:[]})[_0xcdac('0x27')](function(_0x5798fd){logger[_0xcdac('0x13')](_0xcdac('0x1c'),_0x46dc29);logger['debug'](_0xcdac('0x1c'),_0x46dc29,JSON['stringify'](_0x5798fd));_0x443c86(_0x5798fd);})[_0xcdac('0x1b')](function(_0x46ca8a){logger[_0xcdac('0x18')](_0xcdac('0x1c'),_0x46ca8a[_0xcdac('0x19')],_0x46dc29);_0xeb1f4(_0x3c47bd[_0xcdac('0x18')](0x1f4,_0x46ca8a['message']));});});};exports[_0xcdac('0x28')]=function(_0x1d0923){var _0x44bead=this;return new Promise(function(_0x4d6311,_0x245425){return db[_0xcdac('0x1d')][_0xcdac('0x29')]({'raw':_0x1d0923['options']?_0x1d0923[_0xcdac('0x1f')][_0xcdac('0x20')]===undefined?!![]:![]:!![],'where':_0x1d0923[_0xcdac('0x1f')]?_0x1d0923[_0xcdac('0x1f')]['where']||null:null,'attributes':_0x1d0923['options']?_0x1d0923[_0xcdac('0x1f')][_0xcdac('0x22')]||null:null,'include':_0x1d0923[_0xcdac('0x1f')]?_0x1d0923['options'][_0xcdac('0x24')]?_[_0xcdac('0x25')](_0x1d0923[_0xcdac('0x1f')][_0xcdac('0x24')],function(_0x323051){return{'model':db[_0x323051[_0xcdac('0x26')]],'as':_0x323051['as'],'attributes':_0x323051[_0xcdac('0x22')],'include':_0x323051[_0xcdac('0x24')]?_[_0xcdac('0x25')](_0x323051[_0xcdac('0x24')],function(_0x1c2f28){return{'model':db[_0x1c2f28[_0xcdac('0x26')]],'as':_0x1c2f28['as'],'attributes':_0x1c2f28[_0xcdac('0x22')],'include':_0x1c2f28['include']?_[_0xcdac('0x25')](_0x1c2f28[_0xcdac('0x24')],function(_0x1dc2ff){return{'model':db[_0x1dc2ff[_0xcdac('0x26')]],'as':_0x1dc2ff['as'],'attributes':_0x1dc2ff['attributes']};}):[]};}):[]};}):[]:[]})[_0xcdac('0x27')](function(_0x698533){logger[_0xcdac('0x13')](_0xcdac('0x28'),_0x1d0923);logger[_0xcdac('0x16')]('ShowChatQueue',_0x1d0923,JSON[_0xcdac('0x17')](_0x698533));_0x4d6311(_0x698533);})[_0xcdac('0x1b')](function(_0x49bf47){logger[_0xcdac('0x18')]('ShowChatQueue',_0x49bf47[_0xcdac('0x19')],_0x1d0923);_0x245425(_0x44bead['error'](0x1f4,_0x49bf47[_0xcdac('0x19')]));});});};
\ No newline at end of file
+var _0xefe2=['findAll','options','raw','where','attributes','limit','include','map','model','ShowChatQueue','ChatQueue','find','lodash','util','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','./chatQueue.socket','register','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','GetChatQueue'];(function(_0x1d50f2,_0x3c3ec6){var _0x3769b8=function(_0x50926a){while(--_0x50926a){_0x1d50f2['push'](_0x1d50f2['shift']());}};_0x3769b8(++_0x3c3ec6);}(_0xefe2,0xd9));var _0x2efe=function(_0x123092,_0x4655bc){_0x123092=_0x123092-0x0;var _0x2816cc=_0xefe2[_0x123092];return _0x2816cc;};'use strict';var _=require(_0x2efe('0x0'));var util=require(_0x2efe('0x1'));var moment=require('moment');var BPromise=require(_0x2efe('0x2'));var rs=require(_0x2efe('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x2efe('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x2efe('0x5'))(_0x2efe('0x6'));var config=require(_0x2efe('0x7'));var jayson=require(_0x2efe('0x8'));var client=jayson[_0x2efe('0x9')]['http']({'port':0x232a});config[_0x2efe('0xa')]=_[_0x2efe('0xb')](config[_0x2efe('0xa')],{'host':_0x2efe('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x2efe('0xa')]));require(_0x2efe('0xd'))[_0x2efe('0xe')](socket);function respondWithRpcPromise(_0x54c846,_0x498eb4,_0x28f5c9){return new BPromise(function(_0x5a17d3,_0x58ba63){return client[_0x2efe('0xf')](_0x54c846,_0x28f5c9)[_0x2efe('0x10')](function(_0x45f674){logger[_0x2efe('0x11')](_0x2efe('0x12'),_0x498eb4,_0x2efe('0x13'));logger[_0x2efe('0x14')](_0x2efe('0x15'),_0x498eb4,_0x2efe('0x13'),JSON[_0x2efe('0x16')](_0x45f674));if(_0x45f674['error']){if(_0x45f674['error'][_0x2efe('0x17')]===0x1f4){logger[_0x2efe('0x18')]('ChatQueue,\x20%s,\x20%s',_0x498eb4,_0x45f674['error'][_0x2efe('0x19')]);return _0x58ba63(_0x45f674['error'][_0x2efe('0x19')]);}logger[_0x2efe('0x18')]('ChatQueue,\x20%s,\x20%s',_0x498eb4,_0x45f674[_0x2efe('0x18')][_0x2efe('0x19')]);return _0x5a17d3(_0x45f674['error'][_0x2efe('0x19')]);}else{logger['info']('ChatQueue,\x20%s,\x20%s',_0x498eb4,_0x2efe('0x13'));_0x5a17d3(_0x45f674[_0x2efe('0x1a')][_0x2efe('0x19')]);}})[_0x2efe('0x1b')](function(_0x40fa2e){logger[_0x2efe('0x18')](_0x2efe('0x12'),_0x498eb4,_0x40fa2e);_0x58ba63(_0x40fa2e);});});}exports[_0x2efe('0x1c')]=function(_0x2a78f8){var _0x1eb9f4=this;return new Promise(function(_0x3ed3a1,_0x6962df){return db['ChatQueue'][_0x2efe('0x1d')]({'raw':_0x2a78f8['options']?_0x2a78f8[_0x2efe('0x1e')][_0x2efe('0x1f')]===undefined?!![]:![]:!![],'where':_0x2a78f8[_0x2efe('0x1e')]?_0x2a78f8['options'][_0x2efe('0x20')]||null:null,'attributes':_0x2a78f8[_0x2efe('0x1e')]?_0x2a78f8['options'][_0x2efe('0x21')]||null:null,'limit':_0x2a78f8[_0x2efe('0x1e')]?_0x2a78f8[_0x2efe('0x1e')][_0x2efe('0x22')]||null:null,'include':_0x2a78f8[_0x2efe('0x1e')]?_0x2a78f8[_0x2efe('0x1e')][_0x2efe('0x23')]?_[_0x2efe('0x24')](_0x2a78f8[_0x2efe('0x1e')][_0x2efe('0x23')],function(_0x1beaad){return{'model':db[_0x1beaad[_0x2efe('0x25')]],'as':_0x1beaad['as'],'attributes':_0x1beaad[_0x2efe('0x21')],'include':_0x1beaad[_0x2efe('0x23')]?_['map'](_0x1beaad[_0x2efe('0x23')],function(_0x5e18d3){return{'model':db[_0x5e18d3[_0x2efe('0x25')]],'as':_0x5e18d3['as'],'attributes':_0x5e18d3[_0x2efe('0x21')],'include':_0x5e18d3[_0x2efe('0x23')]?_[_0x2efe('0x24')](_0x5e18d3[_0x2efe('0x23')],function(_0xa11a23){return{'model':db[_0xa11a23[_0x2efe('0x25')]],'as':_0xa11a23['as'],'attributes':_0xa11a23[_0x2efe('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x145b1e){logger[_0x2efe('0x11')](_0x2efe('0x1c'),_0x2a78f8);logger[_0x2efe('0x14')](_0x2efe('0x1c'),_0x2a78f8,JSON['stringify'](_0x145b1e));_0x3ed3a1(_0x145b1e);})[_0x2efe('0x1b')](function(_0x1ce936){logger[_0x2efe('0x18')](_0x2efe('0x1c'),_0x1ce936[_0x2efe('0x19')],_0x2a78f8);_0x6962df(_0x1eb9f4[_0x2efe('0x18')](0x1f4,_0x1ce936[_0x2efe('0x19')]));});});};exports[_0x2efe('0x26')]=function(_0x3a7e18){var _0x356bad=this;return new Promise(function(_0x5f3de8,_0x3ab92b){return db[_0x2efe('0x27')][_0x2efe('0x28')]({'raw':_0x3a7e18[_0x2efe('0x1e')]?_0x3a7e18[_0x2efe('0x1e')][_0x2efe('0x1f')]===undefined?!![]:![]:!![],'where':_0x3a7e18[_0x2efe('0x1e')]?_0x3a7e18[_0x2efe('0x1e')][_0x2efe('0x20')]||null:null,'attributes':_0x3a7e18['options']?_0x3a7e18[_0x2efe('0x1e')][_0x2efe('0x21')]||null:null,'include':_0x3a7e18['options']?_0x3a7e18['options']['include']?_[_0x2efe('0x24')](_0x3a7e18[_0x2efe('0x1e')][_0x2efe('0x23')],function(_0x5a8ba4){return{'model':db[_0x5a8ba4[_0x2efe('0x25')]],'as':_0x5a8ba4['as'],'attributes':_0x5a8ba4[_0x2efe('0x21')],'include':_0x5a8ba4[_0x2efe('0x23')]?_['map'](_0x5a8ba4['include'],function(_0x2ee1bf){return{'model':db[_0x2ee1bf['model']],'as':_0x2ee1bf['as'],'attributes':_0x2ee1bf[_0x2efe('0x21')],'include':_0x2ee1bf[_0x2efe('0x23')]?_[_0x2efe('0x24')](_0x2ee1bf['include'],function(_0xd3ce22){return{'model':db[_0xd3ce22[_0x2efe('0x25')]],'as':_0xd3ce22['as'],'attributes':_0xd3ce22[_0x2efe('0x21')]};}):[]};}):[]};}):[]:[]})[_0x2efe('0x10')](function(_0x17a5b4){logger[_0x2efe('0x11')](_0x2efe('0x26'),_0x3a7e18);logger['debug'](_0x2efe('0x26'),_0x3a7e18,JSON['stringify'](_0x17a5b4));_0x5f3de8(_0x17a5b4);})[_0x2efe('0x1b')](function(_0x326781){logger[_0x2efe('0x18')](_0x2efe('0x26'),_0x326781[_0x2efe('0x19')],_0x3a7e18);_0x3ab92b(_0x356bad['error'](0x1f4,_0x326781[_0x2efe('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed1f=['register','length','./chatQueue.events','save','remove','update','emit','removeListener'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0xed1f,0x6a));var _0xfed1=function(_0x26462c,_0xd20a35){_0x26462c=_0x26462c-0x0;var _0x509a42=_0xed1f[_0x26462c];return _0x509a42;};'use strict';var ChatQueueEvents=require(_0xfed1('0x0'));var events=[_0xfed1('0x1'),_0xfed1('0x2'),_0xfed1('0x3')];function createListener(_0xa45937,_0x25f345){return function(_0x1dd614){_0x25f345[_0xfed1('0x4')](_0xa45937,_0x1dd614);};}function removeListener(_0x2209b3,_0x45c3c1){return function(){ChatQueueEvents[_0xfed1('0x5')](_0x2209b3,_0x45c3c1);};}exports[_0xfed1('0x6')]=function(_0x3d6706){for(var _0x42751d=0x0,_0x380e18=events[_0xfed1('0x7')];_0x42751d<_0x380e18;_0x42751d++){var _0x2a6082=events[_0x42751d];var _0x2967ef=createListener('chatQueue:'+_0x2a6082,_0x3d6706);ChatQueueEvents['on'](_0x2a6082,_0x2967ef);}};
\ No newline at end of file
+var _0x6737=['chatQueue:','save','remove','emit','removeListener'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0x6737,0xe2));var _0x7673=function(_0x17dc76,_0x1876fa){_0x17dc76=_0x17dc76-0x0;var _0x3fe30e=_0x6737[_0x17dc76];return _0x3fe30e;};'use strict';var ChatQueueEvents=require('./chatQueue.events');var events=[_0x7673('0x0'),_0x7673('0x1'),'update'];function createListener(_0x2f05d4,_0x2a9cd0){return function(_0x43ee27){_0x2a9cd0[_0x7673('0x2')](_0x2f05d4,_0x43ee27);};}function removeListener(_0x54002e,_0x32e6f2){return function(){ChatQueueEvents[_0x7673('0x3')](_0x54002e,_0x32e6f2);};}exports['register']=function(_0x2f5edc){for(var _0x15230f=0x0,_0x5af802=events['length'];_0x15230f<_0x5af802;_0x15230f++){var _0x53d67d=events[_0x15230f];var _0x5292f7=createListener(_0x7673('0x4')+_0x53d67d,_0x2f5edc);ChatQueueEvents['on'](_0x53d67d,_0x5292f7);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-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(_0x578482,_0x5f3424){var _0x5582ea=function(_0x5bbe5f){while(--_0x5bbe5f){_0x578482['push'](_0x578482['shift']());}};_0x5582ea(++_0x5f3424);}(_0x55ca,0x126));var _0xa55c=function(_0x131e60,_0x5352ce){_0x131e60=_0x131e60-0x0;var _0x4bc497=_0x55ca[_0x131e60];return _0x4bc497;};'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
+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(_0x27f139,_0x21f072){var _0x28a1bd=function(_0x5dfadd){while(--_0x5dfadd){_0x27f139['push'](_0x27f139['shift']());}};_0x28a1bd(++_0x21f072);}(_0x55ca,0x126));var _0xa55c=function(_0x266ddc,_0x45aa52){_0x266ddc=_0x266ddc-0x0;var _0x39c1d7=_0x55ca[_0x266ddc];return _0x39c1d7;};'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 _0x9b34=['STRING','DATE','sequelize'];(function(_0x3c6ae2,_0x5c52d8){var _0x4edda=function(_0x5593eb){while(--_0x5593eb){_0x3c6ae2['push'](_0x3c6ae2['shift']());}};_0x4edda(++_0x5c52d8);}(_0x9b34,0xd4));var _0x49b3=function(_0x4d1b78,_0x44efad){_0x4d1b78=_0x4d1b78-0x0;var _0x283c40=_0x9b34[_0x4d1b78];return _0x283c40;};'use strict';var moment=require('moment');var Sequelize=require(_0x49b3('0x0'));module['exports']={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0x49b3('0x1')]},'joinAt':{'type':Sequelize[_0x49b3('0x2')]},'leaveAt':{'type':Sequelize[_0x49b3('0x2')]},'acceptAt':{'type':Sequelize[_0x49b3('0x2')]},'exitAt':{'type':Sequelize[_0x49b3('0x2')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x4e1e=['DATE','sequelize','exports','STRING'];(function(_0x3bac54,_0x3a8587){var _0x1f928e=function(_0x43fe89){while(--_0x43fe89){_0x3bac54['push'](_0x3bac54['shift']());}};_0x1f928e(++_0x3a8587);}(_0x4e1e,0x1f1));var _0xe4e1=function(_0x131fe7,_0x21fcdb){_0x131fe7=_0x131fe7-0x0;var _0x2eddf3=_0x4e1e[_0x131fe7];return _0x2eddf3;};'use strict';var moment=require('moment');var Sequelize=require(_0xe4e1('0x0'));module[_0xe4e1('0x1')]={'uniqueid':{'type':Sequelize[_0xe4e1('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0xe4e1('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0xe4e1('0x3')]},'acceptAt':{'type':Sequelize[_0xe4e1('0x3')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize[_0xe4e1('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf470=['filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','where','pick','filter','merge','options','includeAll','catch','show','params','include','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','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/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','sendStatus','stack','name','send','index','ChatQueueReport','rawAttributes','fieldName','type','model','map','keys','query'];(function(_0x4bc4c8,_0x3139d3){var _0x3bb121=function(_0x95ad12){while(--_0x95ad12){_0x4bc4c8['push'](_0x4bc4c8['shift']());}};_0x3bb121(++_0x3139d3);}(_0xf470,0xfd));var _0x0f47=function(_0x256b72,_0x340985){_0x256b72=_0x256b72-0x0;var _0x2183e3=_0xf470[_0x256b72];return _0x2183e3;};'use strict';var emlformat=require(_0x0f47('0x0'));var rimraf=require(_0x0f47('0x1'));var zipdir=require(_0x0f47('0x2'));var jsonpatch=require(_0x0f47('0x3'));var rp=require(_0x0f47('0x4'));var moment=require(_0x0f47('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x0f47('0x6'));var util=require(_0x0f47('0x7'));var path=require('path');var sox=require(_0x0f47('0x8'));var csv=require(_0x0f47('0x9'));var ejs=require(_0x0f47('0xa'));var fs=require('fs');var fs_extra=require(_0x0f47('0xb'));var _=require(_0x0f47('0xc'));var squel=require(_0x0f47('0xd'));var crypto=require(_0x0f47('0xe'));var jsforce=require(_0x0f47('0xf'));var deskjs=require(_0x0f47('0x10'));var toCsv=require(_0x0f47('0x9'));var querystring=require(_0x0f47('0x11'));var Papa=require(_0x0f47('0x12'));var Redis=require(_0x0f47('0x13'));var authService=require(_0x0f47('0x14'));var qs=require(_0x0f47('0x15'));var as=require(_0x0f47('0x16'));var hardwareService=require(_0x0f47('0x17'));var logger=require(_0x0f47('0x18'))(_0x0f47('0x19'));var utils=require('../../config/utils');var config=require(_0x0f47('0x1a'));var licenseUtil=require(_0x0f47('0x1b'));var db=require(_0x0f47('0x1c'))['db'];function respondWithStatusCode(_0x26095f,_0x128b8c){_0x128b8c=_0x128b8c||0xcc;return function(_0x4ce7e6){if(_0x4ce7e6){return _0x26095f['sendStatus'](_0x128b8c);}return _0x26095f[_0x0f47('0x1d')](_0x128b8c)[_0x0f47('0x1e')]();};}function respondWithResult(_0x42ace5,_0x327f2f){_0x327f2f=_0x327f2f||0xc8;return function(_0x7579d1){if(_0x7579d1){return _0x42ace5['status'](_0x327f2f)[_0x0f47('0x1f')](_0x7579d1);}};}function respondWithFilteredResult(_0x553f66,_0x4e5c11){return function(_0x1e08f6){if(_0x1e08f6){var _0x2c2ba8=typeof _0x4e5c11[_0x0f47('0x20')]===_0x0f47('0x21')&&typeof _0x4e5c11[_0x0f47('0x22')]===_0x0f47('0x21');var _0x25e2e9=_0x1e08f6['count'];var _0x1d8fe5=_0x2c2ba8?0x0:_0x4e5c11[_0x0f47('0x20')];var _0x524868=_0x2c2ba8?_0x1e08f6[_0x0f47('0x23')]:_0x4e5c11[_0x0f47('0x20')]+_0x4e5c11[_0x0f47('0x22')];var _0x87f9da;if(_0x524868>=_0x25e2e9){_0x524868=_0x25e2e9;_0x87f9da=0xc8;}else{_0x87f9da=0xce;}_0x553f66[_0x0f47('0x1d')](_0x87f9da);return _0x553f66[_0x0f47('0x24')](_0x0f47('0x25'),_0x1d8fe5+'-'+_0x524868+'/'+_0x25e2e9)[_0x0f47('0x1f')](_0x1e08f6);}return null;};}function patchUpdates(_0xb34491){return function(_0x40fff8){try{jsonpatch[_0x0f47('0x26')](_0x40fff8,_0xb34491,!![]);}catch(_0x55a0ef){return BPromise['reject'](_0x55a0ef);}return _0x40fff8['save']();};}function saveUpdates(_0x1fe6ea,_0x5a0c8c){return function(_0x5f1830){if(_0x5f1830){return _0x5f1830[_0x0f47('0x27')](_0x1fe6ea)[_0x0f47('0x28')](function(_0x456611){return _0x456611;});}return null;};}function removeEntity(_0x19a68c,_0x28edc5){return function(_0x46c30f){if(_0x46c30f){return _0x46c30f[_0x0f47('0x29')]()['then'](function(){_0x19a68c['status'](0xcc)[_0x0f47('0x1e')]();});}};}function handleEntityNotFound(_0x48c86,_0x3c0ae0){return function(_0x49f2ff){if(!_0x49f2ff){_0x48c86[_0x0f47('0x2a')](0x194);}return _0x49f2ff;};}function handleError(_0x41a31e,_0x3e1fb0){_0x3e1fb0=_0x3e1fb0||0x1f4;return function(_0x17c7cf){logger['error'](_0x17c7cf[_0x0f47('0x2b')]);if(_0x17c7cf[_0x0f47('0x2c')]){delete _0x17c7cf[_0x0f47('0x2c')];}_0x41a31e[_0x0f47('0x1d')](_0x3e1fb0)[_0x0f47('0x2d')](_0x17c7cf);};}exports[_0x0f47('0x2e')]=function(_0x1142cd,_0xd47c98){var _0x2b902e={},_0x2648f1={},_0x8e5d1f={'count':0x0,'rows':[]};var _0x3a3687=_['map'](db[_0x0f47('0x2f')][_0x0f47('0x30')],function(_0xd503e4){return{'name':_0xd503e4[_0x0f47('0x31')],'type':_0xd503e4[_0x0f47('0x32')]['key']};});_0x2648f1[_0x0f47('0x33')]=_[_0x0f47('0x34')](_0x3a3687,_0x0f47('0x2c'));_0x2648f1['query']=_[_0x0f47('0x35')](_0x1142cd[_0x0f47('0x36')]);_0x2648f1[_0x0f47('0x37')]=_[_0x0f47('0x38')](_0x2648f1[_0x0f47('0x33')],_0x2648f1[_0x0f47('0x36')]);_0x2b902e['attributes']=_['intersection'](_0x2648f1['model'],qs[_0x0f47('0x39')](_0x1142cd['query'][_0x0f47('0x39')]));_0x2b902e['attributes']=_0x2b902e[_0x0f47('0x3a')][_0x0f47('0x3b')]?_0x2b902e[_0x0f47('0x3a')]:_0x2648f1[_0x0f47('0x33')];if(!_0x1142cd['query'][_0x0f47('0x3c')](_0x0f47('0x3d'))){_0x2b902e[_0x0f47('0x22')]=qs[_0x0f47('0x22')](_0x1142cd[_0x0f47('0x36')]['limit']);_0x2b902e[_0x0f47('0x20')]=qs[_0x0f47('0x20')](_0x1142cd[_0x0f47('0x36')][_0x0f47('0x20')]);}_0x2b902e[_0x0f47('0x3e')]=qs['sort'](_0x1142cd['query']['sort']);_0x2b902e[_0x0f47('0x3f')]=qs[_0x0f47('0x37')](_[_0x0f47('0x40')](_0x1142cd['query'],_0x2648f1[_0x0f47('0x37')]),_0x3a3687);if(_0x1142cd[_0x0f47('0x36')]['filter']){_0x2b902e['where']=_['merge'](_0x2b902e[_0x0f47('0x3f')],{'$or':_['map'](_0x3a3687,function(_0x1a812b){if(_0x1a812b[_0x0f47('0x32')]!=='VIRTUAL'){var _0x477c59={};_0x477c59[_0x1a812b[_0x0f47('0x2c')]]={'$like':'%'+_0x1142cd[_0x0f47('0x36')][_0x0f47('0x41')]+'%'};return _0x477c59;}})});}_0x2b902e=_[_0x0f47('0x42')]({},_0x2b902e,_0x1142cd[_0x0f47('0x43')]);var _0x331c8c={'where':_0x2b902e[_0x0f47('0x3f')]};return db['ChatQueueReport'][_0x0f47('0x23')](_0x331c8c)[_0x0f47('0x28')](function(_0x30bcdc){_0x8e5d1f[_0x0f47('0x23')]=_0x30bcdc;if(_0x1142cd[_0x0f47('0x36')][_0x0f47('0x44')]){_0x2b902e['include']=[{'all':!![]}];}return db[_0x0f47('0x2f')]['findAll'](_0x2b902e);})[_0x0f47('0x28')](function(_0x1753be){_0x8e5d1f['rows']=_0x1753be;return _0x8e5d1f;})[_0x0f47('0x28')](respondWithFilteredResult(_0xd47c98,_0x2b902e))[_0x0f47('0x45')](handleError(_0xd47c98,null));};exports[_0x0f47('0x46')]=function(_0x2d6c86,_0x46f86b){var _0x48dfee={'raw':!![],'where':{'id':_0x2d6c86[_0x0f47('0x47')]['id']}},_0x4a2305={};_0x4a2305[_0x0f47('0x33')]=_[_0x0f47('0x35')](db[_0x0f47('0x2f')][_0x0f47('0x30')]);_0x4a2305[_0x0f47('0x36')]=_[_0x0f47('0x35')](_0x2d6c86['query']);_0x4a2305['filters']=_[_0x0f47('0x38')](_0x4a2305[_0x0f47('0x33')],_0x4a2305[_0x0f47('0x36')]);_0x48dfee['attributes']=_[_0x0f47('0x38')](_0x4a2305[_0x0f47('0x33')],qs[_0x0f47('0x39')](_0x2d6c86[_0x0f47('0x36')][_0x0f47('0x39')]));_0x48dfee[_0x0f47('0x3a')]=_0x48dfee[_0x0f47('0x3a')][_0x0f47('0x3b')]?_0x48dfee[_0x0f47('0x3a')]:_0x4a2305['model'];if(_0x2d6c86[_0x0f47('0x36')][_0x0f47('0x44')]){_0x48dfee[_0x0f47('0x48')]=[{'all':!![]}];}_0x48dfee=_[_0x0f47('0x42')]({},_0x48dfee,_0x2d6c86[_0x0f47('0x43')]);return db[_0x0f47('0x2f')][_0x0f47('0x49')](_0x48dfee)[_0x0f47('0x28')](handleEntityNotFound(_0x46f86b,null))[_0x0f47('0x28')](respondWithResult(_0x46f86b,null))['catch'](handleError(_0x46f86b,null));};exports['create']=function(_0x16a4b2,_0x341aeb){return db[_0x0f47('0x2f')][_0x0f47('0x4a')](_0x16a4b2[_0x0f47('0x4b')],{})[_0x0f47('0x28')](respondWithResult(_0x341aeb,0xc9))[_0x0f47('0x45')](handleError(_0x341aeb,null));};exports['update']=function(_0x358c09,_0x143667){if(_0x358c09[_0x0f47('0x4b')]['id']){delete _0x358c09[_0x0f47('0x4b')]['id'];}return db[_0x0f47('0x2f')][_0x0f47('0x49')]({'where':{'id':_0x358c09[_0x0f47('0x47')]['id']}})['then'](handleEntityNotFound(_0x143667,null))[_0x0f47('0x28')](saveUpdates(_0x358c09[_0x0f47('0x4b')],null))[_0x0f47('0x28')](respondWithResult(_0x143667,null))[_0x0f47('0x45')](handleError(_0x143667,null));};exports['destroy']=function(_0x1a1fb4,_0x3f8bb9){return db[_0x0f47('0x2f')][_0x0f47('0x49')]({'where':{'id':_0x1a1fb4[_0x0f47('0x47')]['id']}})[_0x0f47('0x28')](handleEntityNotFound(_0x3f8bb9,null))[_0x0f47('0x28')](removeEntity(_0x3f8bb9,null))[_0x0f47('0x45')](handleError(_0x3f8bb9,null));};exports[_0x0f47('0x4c')]=function(_0x58927d,_0x120a02){return db[_0x0f47('0x2f')][_0x0f47('0x4c')]()[_0x0f47('0x28')](respondWithResult(_0x120a02,null))[_0x0f47('0x45')](handleError(_0x120a02,null));};
\ No newline at end of file
+var _0x4253=['name','send','map','ChatQueueReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','show','include','options','catch','create','body','find','params','describe','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','ioredis','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','count','set','Content-Range','json','reject','update','then','destroy','error','stack'];(function(_0x116707,_0x42345a){var _0x32ed73=function(_0x1f9a61){while(--_0x1f9a61){_0x116707['push'](_0x116707['shift']());}};_0x32ed73(++_0x42345a);}(_0x4253,0x14c));var _0x3425=function(_0x379166,_0x2ca9f7){_0x379166=_0x379166-0x0;var _0x27f007=_0x4253[_0x379166];return _0x27f007;};'use strict';var emlformat=require(_0x3425('0x0'));var rimraf=require(_0x3425('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3425('0x2'));var rp=require('request-promise');var moment=require(_0x3425('0x3'));var BPromise=require(_0x3425('0x4'));var Mustache=require(_0x3425('0x5'));var util=require(_0x3425('0x6'));var path=require(_0x3425('0x7'));var sox=require(_0x3425('0x8'));var csv=require(_0x3425('0x9'));var ejs=require(_0x3425('0xa'));var fs=require('fs');var fs_extra=require(_0x3425('0xb'));var _=require('lodash');var squel=require(_0x3425('0xc'));var crypto=require(_0x3425('0xd'));var jsforce=require(_0x3425('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x3425('0x9'));var querystring=require(_0x3425('0xf'));var Papa=require('papaparse');var Redis=require(_0x3425('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3425('0x11'));var logger=require(_0x3425('0x12'))(_0x3425('0x13'));var utils=require('../../config/utils');var config=require(_0x3425('0x14'));var licenseUtil=require(_0x3425('0x15'));var db=require(_0x3425('0x16'))['db'];function respondWithStatusCode(_0x5a5cd2,_0xb19960){_0xb19960=_0xb19960||0xcc;return function(_0x31afd8){if(_0x31afd8){return _0x5a5cd2[_0x3425('0x17')](_0xb19960);}return _0x5a5cd2[_0x3425('0x18')](_0xb19960)[_0x3425('0x19')]();};}function respondWithResult(_0x440cc1,_0x42e226){_0x42e226=_0x42e226||0xc8;return function(_0x4ded18){if(_0x4ded18){return _0x440cc1[_0x3425('0x18')](_0x42e226)['json'](_0x4ded18);}};}function respondWithFilteredResult(_0x3c77e6,_0x23aac7){return function(_0x534aed){if(_0x534aed){var _0x169458=typeof _0x23aac7[_0x3425('0x1a')]==='undefined'&&typeof _0x23aac7[_0x3425('0x1b')]==='undefined';var _0xd43449=_0x534aed[_0x3425('0x1c')];var _0x1565c8=_0x169458?0x0:_0x23aac7[_0x3425('0x1a')];var _0x4d5933=_0x169458?_0x534aed[_0x3425('0x1c')]:_0x23aac7['offset']+_0x23aac7[_0x3425('0x1b')];var _0xe4b66e;if(_0x4d5933>=_0xd43449){_0x4d5933=_0xd43449;_0xe4b66e=0xc8;}else{_0xe4b66e=0xce;}_0x3c77e6[_0x3425('0x18')](_0xe4b66e);return _0x3c77e6[_0x3425('0x1d')](_0x3425('0x1e'),_0x1565c8+'-'+_0x4d5933+'/'+_0xd43449)[_0x3425('0x1f')](_0x534aed);}return null;};}function patchUpdates(_0x1e12bb){return function(_0x264d65){try{jsonpatch['apply'](_0x264d65,_0x1e12bb,!![]);}catch(_0x4a6131){return BPromise[_0x3425('0x20')](_0x4a6131);}return _0x264d65['save']();};}function saveUpdates(_0x1ef660,_0x26710c){return function(_0x11705a){if(_0x11705a){return _0x11705a[_0x3425('0x21')](_0x1ef660)[_0x3425('0x22')](function(_0x2f9881){return _0x2f9881;});}return null;};}function removeEntity(_0x520aba,_0x38b577){return function(_0x34617c){if(_0x34617c){return _0x34617c[_0x3425('0x23')]()[_0x3425('0x22')](function(){_0x520aba['status'](0xcc)[_0x3425('0x19')]();});}};}function handleEntityNotFound(_0x31d4d5,_0x2a2162){return function(_0x407a76){if(!_0x407a76){_0x31d4d5[_0x3425('0x17')](0x194);}return _0x407a76;};}function handleError(_0x3322be,_0x3f2e34){_0x3f2e34=_0x3f2e34||0x1f4;return function(_0x2638b5){logger[_0x3425('0x24')](_0x2638b5[_0x3425('0x25')]);if(_0x2638b5[_0x3425('0x26')]){delete _0x2638b5[_0x3425('0x26')];}_0x3322be[_0x3425('0x18')](_0x3f2e34)[_0x3425('0x27')](_0x2638b5);};}exports['index']=function(_0x1ae04f,_0x453914){var _0x3ca2b7={},_0x27f416={},_0x1452b6={'count':0x0,'rows':[]};var _0x1b732a=_[_0x3425('0x28')](db[_0x3425('0x29')][_0x3425('0x2a')],function(_0x15aca6){return{'name':_0x15aca6[_0x3425('0x2b')],'type':_0x15aca6[_0x3425('0x2c')][_0x3425('0x2d')]};});_0x27f416[_0x3425('0x2e')]=_[_0x3425('0x28')](_0x1b732a,_0x3425('0x26'));_0x27f416[_0x3425('0x2f')]=_[_0x3425('0x30')](_0x1ae04f['query']);_0x27f416[_0x3425('0x31')]=_[_0x3425('0x32')](_0x27f416[_0x3425('0x2e')],_0x27f416['query']);_0x3ca2b7[_0x3425('0x33')]=_[_0x3425('0x32')](_0x27f416[_0x3425('0x2e')],qs[_0x3425('0x34')](_0x1ae04f[_0x3425('0x2f')][_0x3425('0x34')]));_0x3ca2b7[_0x3425('0x33')]=_0x3ca2b7[_0x3425('0x33')][_0x3425('0x35')]?_0x3ca2b7[_0x3425('0x33')]:_0x27f416[_0x3425('0x2e')];if(!_0x1ae04f[_0x3425('0x2f')]['hasOwnProperty'](_0x3425('0x36'))){_0x3ca2b7[_0x3425('0x1b')]=qs[_0x3425('0x1b')](_0x1ae04f[_0x3425('0x2f')][_0x3425('0x1b')]);_0x3ca2b7[_0x3425('0x1a')]=qs[_0x3425('0x1a')](_0x1ae04f[_0x3425('0x2f')][_0x3425('0x1a')]);}_0x3ca2b7[_0x3425('0x37')]=qs[_0x3425('0x38')](_0x1ae04f[_0x3425('0x2f')]['sort']);_0x3ca2b7[_0x3425('0x39')]=qs[_0x3425('0x31')](_[_0x3425('0x3a')](_0x1ae04f[_0x3425('0x2f')],_0x27f416[_0x3425('0x31')]),_0x1b732a);if(_0x1ae04f[_0x3425('0x2f')][_0x3425('0x3b')]){_0x3ca2b7[_0x3425('0x39')]=_[_0x3425('0x3c')](_0x3ca2b7[_0x3425('0x39')],{'$or':_[_0x3425('0x28')](_0x1b732a,function(_0x48f5dc){if(_0x48f5dc[_0x3425('0x2c')]!==_0x3425('0x3d')){var _0x526c3b={};_0x526c3b[_0x48f5dc[_0x3425('0x26')]]={'$like':'%'+_0x1ae04f[_0x3425('0x2f')][_0x3425('0x3b')]+'%'};return _0x526c3b;}})});}_0x3ca2b7=_[_0x3425('0x3c')]({},_0x3ca2b7,_0x1ae04f['options']);var _0x23733e={'where':_0x3ca2b7[_0x3425('0x39')]};return db[_0x3425('0x29')]['count'](_0x23733e)['then'](function(_0x40a959){_0x1452b6[_0x3425('0x1c')]=_0x40a959;if(_0x1ae04f[_0x3425('0x2f')][_0x3425('0x3e')]){_0x3ca2b7['include']=[{'all':!![]}];}return db[_0x3425('0x29')][_0x3425('0x3f')](_0x3ca2b7);})[_0x3425('0x22')](function(_0x175084){_0x1452b6[_0x3425('0x40')]=_0x175084;return _0x1452b6;})[_0x3425('0x22')](respondWithFilteredResult(_0x453914,_0x3ca2b7))['catch'](handleError(_0x453914,null));};exports[_0x3425('0x41')]=function(_0xfa49c0,_0x56348d){var _0x4a5fb1={'raw':!![],'where':{'id':_0xfa49c0['params']['id']}},_0x1b8633={};_0x1b8633[_0x3425('0x2e')]=_[_0x3425('0x30')](db[_0x3425('0x29')][_0x3425('0x2a')]);_0x1b8633[_0x3425('0x2f')]=_[_0x3425('0x30')](_0xfa49c0[_0x3425('0x2f')]);_0x1b8633['filters']=_['intersection'](_0x1b8633[_0x3425('0x2e')],_0x1b8633[_0x3425('0x2f')]);_0x4a5fb1[_0x3425('0x33')]=_[_0x3425('0x32')](_0x1b8633[_0x3425('0x2e')],qs[_0x3425('0x34')](_0xfa49c0['query'][_0x3425('0x34')]));_0x4a5fb1[_0x3425('0x33')]=_0x4a5fb1[_0x3425('0x33')][_0x3425('0x35')]?_0x4a5fb1[_0x3425('0x33')]:_0x1b8633[_0x3425('0x2e')];if(_0xfa49c0['query'][_0x3425('0x3e')]){_0x4a5fb1[_0x3425('0x42')]=[{'all':!![]}];}_0x4a5fb1=_['merge']({},_0x4a5fb1,_0xfa49c0[_0x3425('0x43')]);return db['ChatQueueReport']['find'](_0x4a5fb1)[_0x3425('0x22')](handleEntityNotFound(_0x56348d,null))[_0x3425('0x22')](respondWithResult(_0x56348d,null))[_0x3425('0x44')](handleError(_0x56348d,null));};exports['create']=function(_0x11715f,_0x4cb1f5){return db[_0x3425('0x29')][_0x3425('0x45')](_0x11715f['body'],{})[_0x3425('0x22')](respondWithResult(_0x4cb1f5,0xc9))[_0x3425('0x44')](handleError(_0x4cb1f5,null));};exports[_0x3425('0x21')]=function(_0x17626f,_0x357312){if(_0x17626f[_0x3425('0x46')]['id']){delete _0x17626f[_0x3425('0x46')]['id'];}return db[_0x3425('0x29')][_0x3425('0x47')]({'where':{'id':_0x17626f[_0x3425('0x48')]['id']}})[_0x3425('0x22')](handleEntityNotFound(_0x357312,null))['then'](saveUpdates(_0x17626f[_0x3425('0x46')],null))[_0x3425('0x22')](respondWithResult(_0x357312,null))['catch'](handleError(_0x357312,null));};exports[_0x3425('0x23')]=function(_0x397727,_0x4b2a9a){return db['ChatQueueReport'][_0x3425('0x47')]({'where':{'id':_0x397727[_0x3425('0x48')]['id']}})[_0x3425('0x22')](handleEntityNotFound(_0x4b2a9a,null))['then'](removeEntity(_0x4b2a9a,null))[_0x3425('0x44')](handleError(_0x4b2a9a,null));};exports[_0x3425('0x49')]=function(_0x3d4dff,_0x5eab7a){return db['ChatQueueReport'][_0x3425('0x49')]()[_0x3425('0x22')](respondWithResult(_0x5eab7a,null))[_0x3425('0x44')](handleError(_0x5eab7a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./chatQueueReport.attributes','exports','define','ChatQueueReport','report_chat_queue','uniqueid','lodash','util'];(function(_0x4a5055,_0x3c97aa){var _0x329f81=function(_0x565b76){while(--_0x565b76){_0x4a5055['push'](_0x4a5055['shift']());}};_0x329f81(++_0x3c97aa);}(_0xe706,0xa3));var _0x6e70=function(_0x37153e,_0x15c383){_0x37153e=_0x37153e-0x0;var _0x3d2981=_0xe706[_0x37153e];return _0x3d2981;};'use strict';var _=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var logger=require(_0x6e70('0x2'))('api');var moment=require(_0x6e70('0x3'));var BPromise=require(_0x6e70('0x4'));var rp=require(_0x6e70('0x5'));var fs=require('fs');var path=require(_0x6e70('0x6'));var rimraf=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));var attributes=require(_0x6e70('0x9'));module[_0x6e70('0xa')]=function(_0x1b0389,_0x4381d1){return _0x1b0389[_0x6e70('0xb')](_0x6e70('0xc'),attributes,{'tableName':_0x6e70('0xd'),'paranoid':![],'indexes':[{'name':_0x6e70('0xe'),'fields':[_0x6e70('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb10b=['../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./chatQueueReport.attributes','exports','define','report_chat_queue','uniqueid','lodash'];(function(_0x26a74d,_0x37ecfc){var _0xcbb1a3=function(_0x24b978){while(--_0x24b978){_0x26a74d['push'](_0x26a74d['shift']());}};_0xcbb1a3(++_0x37ecfc);}(_0xb10b,0x12a));var _0xbb10=function(_0x2fc284,_0x5d271c){_0x2fc284=_0x2fc284-0x0;var _0x221234=_0xb10b[_0x2fc284];return _0x221234;};'use strict';var _=require(_0xbb10('0x0'));var util=require('util');var logger=require(_0xbb10('0x1'))(_0xbb10('0x2'));var moment=require(_0xbb10('0x3'));var BPromise=require('bluebird');var rp=require(_0xbb10('0x4'));var fs=require('fs');var path=require(_0xbb10('0x5'));var rimraf=require(_0xbb10('0x6'));var config=require(_0xbb10('0x7'));var attributes=require(_0xbb10('0x8'));module[_0xbb10('0x9')]=function(_0x481979,_0x328583){return _0x481979[_0xbb10('0xa')]('ChatQueueReport',attributes,{'tableName':_0xbb10('0xb'),'paranoid':![],'indexes':[{'name':_0xbb10('0xc'),'fields':[_0xbb10('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fc2=['limit','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','request','then','info','ChatQueueReport,\x20%s,\x20%s','request\x20sent','debug','ChatQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','create','body','options','raw','CreateChatQueueReport','UpdateChatQueueReport','ChatQueueReport','update','where','attributes'];(function(_0x13843f,_0x50422d){var _0x1063ae=function(_0x12fd6b){while(--_0x12fd6b){_0x13843f['push'](_0x13843f['shift']());}};_0x1063ae(++_0x50422d);}(_0x4fc2,0x111));var _0x24fc=function(_0x126bcd,_0x4a1c06){_0x126bcd=_0x126bcd-0x0;var _0x488a50=_0x4fc2[_0x126bcd];return _0x488a50;};'use strict';var _=require(_0x24fc('0x0'));var util=require(_0x24fc('0x1'));var moment=require(_0x24fc('0x2'));var BPromise=require(_0x24fc('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x24fc('0x4'));var db=require(_0x24fc('0x5'))['db'];var utils=require(_0x24fc('0x6'));var logger=require('../../config/logger')(_0x24fc('0x7'));var config=require(_0x24fc('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x24fc('0x9')][_0x24fc('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4889f4,_0x115851,_0x22a0c8){return new BPromise(function(_0x220f9a,_0x123eff){return client[_0x24fc('0xb')](_0x4889f4,_0x22a0c8)[_0x24fc('0xc')](function(_0x5afdf1){logger[_0x24fc('0xd')](_0x24fc('0xe'),_0x115851,_0x24fc('0xf'));logger[_0x24fc('0x10')](_0x24fc('0x11'),_0x115851,_0x24fc('0xf'),JSON[_0x24fc('0x12')](_0x5afdf1));if(_0x5afdf1[_0x24fc('0x13')]){if(_0x5afdf1['error'][_0x24fc('0x14')]===0x1f4){logger[_0x24fc('0x13')]('ChatQueueReport,\x20%s,\x20%s',_0x115851,_0x5afdf1[_0x24fc('0x13')][_0x24fc('0x15')]);return _0x123eff(_0x5afdf1[_0x24fc('0x13')][_0x24fc('0x15')]);}logger[_0x24fc('0x13')](_0x24fc('0xe'),_0x115851,_0x5afdf1['error'][_0x24fc('0x15')]);return _0x220f9a(_0x5afdf1[_0x24fc('0x13')][_0x24fc('0x15')]);}else{logger[_0x24fc('0xd')]('ChatQueueReport,\x20%s,\x20%s',_0x115851,_0x24fc('0xf'));_0x220f9a(_0x5afdf1['result'][_0x24fc('0x15')]);}})[_0x24fc('0x16')](function(_0x218fb6){logger[_0x24fc('0x13')](_0x24fc('0xe'),_0x115851,_0x218fb6);_0x123eff(_0x218fb6);});});}exports['CreateChatQueueReport']=function(_0x23873c){var _0x1cb3d0=this;return new Promise(function(_0x6cfa0a,_0x8ac114){return db['ChatQueueReport'][_0x24fc('0x17')](_0x23873c[_0x24fc('0x18')],{'raw':_0x23873c[_0x24fc('0x19')]?_0x23873c['options'][_0x24fc('0x1a')]===undefined?!![]:![]:!![]})[_0x24fc('0xc')](function(_0xbf1d6b){logger[_0x24fc('0xd')]('CreateChatQueueReport',_0x23873c);logger[_0x24fc('0x10')]('CreateChatQueueReport',_0x23873c,JSON[_0x24fc('0x12')](_0xbf1d6b));_0x6cfa0a(_0xbf1d6b);})['catch'](function(_0x3ed464){logger[_0x24fc('0x13')](_0x24fc('0x1b'),_0x3ed464['message'],_0x23873c);_0x8ac114(_0x1cb3d0[_0x24fc('0x13')](0x1f4,_0x3ed464['message']));});});};exports[_0x24fc('0x1c')]=function(_0x2bb93a){var _0x36a9b4=this;return new Promise(function(_0x34b5b2,_0x3296fc){return db[_0x24fc('0x1d')][_0x24fc('0x1e')](_0x2bb93a[_0x24fc('0x18')],{'raw':_0x2bb93a[_0x24fc('0x19')]?_0x2bb93a[_0x24fc('0x19')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2bb93a[_0x24fc('0x19')]?_0x2bb93a[_0x24fc('0x19')][_0x24fc('0x1f')]||null:null,'attributes':_0x2bb93a['options']?_0x2bb93a[_0x24fc('0x19')][_0x24fc('0x20')]||null:null,'limit':_0x2bb93a[_0x24fc('0x19')]?_0x2bb93a[_0x24fc('0x19')][_0x24fc('0x21')]||null:null})[_0x24fc('0xc')](function(_0x5ac1f2){logger[_0x24fc('0xd')](_0x24fc('0x1c'),_0x2bb93a);logger[_0x24fc('0x10')](_0x24fc('0x1c'),_0x2bb93a,JSON[_0x24fc('0x12')](_0x5ac1f2));_0x34b5b2(_0x5ac1f2);})['catch'](function(_0x55c27f){logger['error'](_0x24fc('0x1c'),_0x55c27f['message'],_0x2bb93a);_0x3296fc(_0x36a9b4[_0x24fc('0x13')](0x1f4,_0x55c27f[_0x24fc('0x15')]));});});};
\ No newline at end of file
+var _0x5d84=['where','limit','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','ChatQueueReport,\x20%s,\x20%s','request\x20sent','debug','ChatQueueReport,\x20%s,\x20%s,\x20%s','error','message','result','CreateChatQueueReport','options','raw','stringify','UpdateChatQueueReport','ChatQueueReport','update','body'];(function(_0x2e5c50,_0x4c7443){var _0x5b7bdd=function(_0x823b6){while(--_0x823b6){_0x2e5c50['push'](_0x2e5c50['shift']());}};_0x5b7bdd(++_0x4c7443);}(_0x5d84,0x82));var _0x45d8=function(_0x4bdedb,_0x315ed4){_0x4bdedb=_0x4bdedb-0x0;var _0x240371=_0x5d84[_0x4bdedb];return _0x240371;};'use strict';var _=require(_0x45d8('0x0'));var util=require(_0x45d8('0x1'));var moment=require(_0x45d8('0x2'));var BPromise=require('bluebird');var rs=require(_0x45d8('0x3'));var fs=require('fs');var Redis=require(_0x45d8('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x45d8('0x5'));var logger=require(_0x45d8('0x6'))(_0x45d8('0x7'));var config=require(_0x45d8('0x8'));var jayson=require(_0x45d8('0x9'));var client=jayson[_0x45d8('0xa')][_0x45d8('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1cf177,_0x6fe875,_0x128284){return new BPromise(function(_0x5d10a1,_0x343556){return client[_0x45d8('0xc')](_0x1cf177,_0x128284)[_0x45d8('0xd')](function(_0x4d2693){logger[_0x45d8('0xe')](_0x45d8('0xf'),_0x6fe875,_0x45d8('0x10'));logger[_0x45d8('0x11')](_0x45d8('0x12'),_0x6fe875,'request\x20sent',JSON['stringify'](_0x4d2693));if(_0x4d2693[_0x45d8('0x13')]){if(_0x4d2693['error']['code']===0x1f4){logger[_0x45d8('0x13')]('ChatQueueReport,\x20%s,\x20%s',_0x6fe875,_0x4d2693[_0x45d8('0x13')][_0x45d8('0x14')]);return _0x343556(_0x4d2693[_0x45d8('0x13')][_0x45d8('0x14')]);}logger[_0x45d8('0x13')](_0x45d8('0xf'),_0x6fe875,_0x4d2693[_0x45d8('0x13')][_0x45d8('0x14')]);return _0x5d10a1(_0x4d2693[_0x45d8('0x13')][_0x45d8('0x14')]);}else{logger[_0x45d8('0xe')](_0x45d8('0xf'),_0x6fe875,_0x45d8('0x10'));_0x5d10a1(_0x4d2693[_0x45d8('0x15')][_0x45d8('0x14')]);}})['catch'](function(_0x134bfa){logger[_0x45d8('0x13')](_0x45d8('0xf'),_0x6fe875,_0x134bfa);_0x343556(_0x134bfa);});});}exports[_0x45d8('0x16')]=function(_0x3999c2){var _0x16163d=this;return new Promise(function(_0x2074a5,_0x11efec){return db['ChatQueueReport']['create'](_0x3999c2['body'],{'raw':_0x3999c2[_0x45d8('0x17')]?_0x3999c2['options'][_0x45d8('0x18')]===undefined?!![]:![]:!![]})['then'](function(_0x112863){logger[_0x45d8('0xe')]('CreateChatQueueReport',_0x3999c2);logger[_0x45d8('0x11')](_0x45d8('0x16'),_0x3999c2,JSON[_0x45d8('0x19')](_0x112863));_0x2074a5(_0x112863);})['catch'](function(_0xb7d960){logger[_0x45d8('0x13')]('CreateChatQueueReport',_0xb7d960[_0x45d8('0x14')],_0x3999c2);_0x11efec(_0x16163d[_0x45d8('0x13')](0x1f4,_0xb7d960[_0x45d8('0x14')]));});});};exports[_0x45d8('0x1a')]=function(_0x35d706){var _0xb54e9c=this;return new Promise(function(_0x38d850,_0x19ab07){return db[_0x45d8('0x1b')][_0x45d8('0x1c')](_0x35d706[_0x45d8('0x1d')],{'raw':_0x35d706[_0x45d8('0x17')]?_0x35d706['options'][_0x45d8('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x35d706[_0x45d8('0x17')]?_0x35d706['options'][_0x45d8('0x1e')]||null:null,'attributes':_0x35d706['options']?_0x35d706[_0x45d8('0x17')]['attributes']||null:null,'limit':_0x35d706[_0x45d8('0x17')]?_0x35d706['options'][_0x45d8('0x1f')]||null:null})[_0x45d8('0xd')](function(_0x2c12a2){logger[_0x45d8('0xe')](_0x45d8('0x1a'),_0x35d706);logger[_0x45d8('0x11')](_0x45d8('0x1a'),_0x35d706,JSON[_0x45d8('0x19')](_0x2c12a2));_0x38d850(_0x2c12a2);})['catch'](function(_0x2749aa){logger['error'](_0x45d8('0x1a'),_0x2749aa[_0x45d8('0x14')],_0x35d706);_0x19ab07(_0xb54e9c[_0x45d8('0x13')](0x1f4,_0x2749aa[_0x45d8('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d24=['util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./chatQueueReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','create','put','update','destroy'];(function(_0x51295e,_0x169964){var _0x140778=function(_0x8bafb0){while(--_0x8bafb0){_0x51295e['push'](_0x51295e['shift']());}};_0x140778(++_0x169964);}(_0x5d24,0x130));var _0x45d2=function(_0x2b45e5,_0x4c66bd){_0x2b45e5=_0x2b45e5-0x0;var _0x5c80a0=_0x5d24[_0x2b45e5];return _0x5c80a0;};'use strict';var multer=require('multer');var util=require(_0x45d2('0x0'));var path=require('path');var timeout=require(_0x45d2('0x1'));var express=require(_0x45d2('0x2'));var router=express[_0x45d2('0x3')]();var fs_extra=require(_0x45d2('0x4'));var auth=require(_0x45d2('0x5'));var interaction=require(_0x45d2('0x6'));var config=require('../../config/environment');var controller=require(_0x45d2('0x7'));router[_0x45d2('0x8')]('/',auth[_0x45d2('0x9')](),controller[_0x45d2('0xa')]);router['get'](_0x45d2('0xb'),auth[_0x45d2('0x9')](),controller[_0x45d2('0xc')]);router[_0x45d2('0x8')](_0x45d2('0xd'),auth[_0x45d2('0x9')](),controller[_0x45d2('0xe')]);router['post']('/',auth[_0x45d2('0x9')](),controller[_0x45d2('0xf')]);router[_0x45d2('0x10')](_0x45d2('0xd'),auth['isAuthenticated'](),controller[_0x45d2('0x11')]);router['delete'](_0x45d2('0xd'),auth[_0x45d2('0x9')](),controller[_0x45d2('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0xae4d=['exports','multer','util','connect-timeout','express','Router','../../config/environment','./chatQueueReport.controller','isAuthenticated','index','get','/describe','/:id','show','post','create','put','delete','destroy'];(function(_0x338f2f,_0x39aff1){var _0x741aa3=function(_0x51fd58){while(--_0x51fd58){_0x338f2f['push'](_0x338f2f['shift']());}};_0x741aa3(++_0x39aff1);}(_0xae4d,0x157));var _0xdae4=function(_0x57deff,_0x2d8d5d){_0x57deff=_0x57deff-0x0;var _0x6ae725=_0xae4d[_0x57deff];return _0x6ae725;};'use strict';var multer=require(_0xdae4('0x0'));var util=require(_0xdae4('0x1'));var path=require('path');var timeout=require(_0xdae4('0x2'));var express=require(_0xdae4('0x3'));var router=express[_0xdae4('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xdae4('0x5'));var controller=require(_0xdae4('0x6'));router['get']('/',auth[_0xdae4('0x7')](),controller[_0xdae4('0x8')]);router[_0xdae4('0x9')](_0xdae4('0xa'),auth[_0xdae4('0x7')](),controller['describe']);router[_0xdae4('0x9')](_0xdae4('0xb'),auth[_0xdae4('0x7')](),controller[_0xdae4('0xc')]);router[_0xdae4('0xd')]('/',auth[_0xdae4('0x7')](),controller[_0xdae4('0xe')]);router[_0xdae4('0xf')](_0xdae4('0xb'),auth['isAuthenticated'](),controller['update']);router[_0xdae4('0x10')](_0xdae4('0xb'),auth[_0xdae4('0x7')](),controller[_0xdae4('0x11')]);module[_0xdae4('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb43b=['DATE','NOW','moment','sequelize','STRING','ENUM','account','queue'];(function(_0x2a8860,_0x2da926){var _0x2f47a4=function(_0x3b7f54){while(--_0x3b7f54){_0x2a8860['push'](_0x2a8860['shift']());}};_0x2f47a4(++_0x2da926);}(_0xb43b,0x1b2));var _0xbb43=function(_0x3a3dec,_0x2f7395){_0x3a3dec=_0x3a3dec-0x0;var _0x55373d=_0xb43b[_0x3a3dec];return _0x55373d;};'use strict';var moment=require(_0xbb43('0x0'));var Sequelize=require(_0xbb43('0x1'));module['exports']={'uniqueid':{'type':Sequelize[_0xbb43('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0xbb43('0x3')](_0xbb43('0x4'),'agent',_0xbb43('0x5')),'allowNull':![],'defaultValue':_0xbb43('0x5')},'transferredAt':{'type':Sequelize[_0xbb43('0x6')],'allowNull':![],'defaultValue':Sequelize[_0xbb43('0x7')]}};
\ No newline at end of file
+var _0xaa88=['account','agent','queue','DATE','NOW','moment','sequelize','exports','STRING'];(function(_0x1b0688,_0x2469e6){var _0x3e9b7b=function(_0x41bdd4){while(--_0x41bdd4){_0x1b0688['push'](_0x1b0688['shift']());}};_0x3e9b7b(++_0x2469e6);}(_0xaa88,0x137));var _0x8aa8=function(_0x21f931,_0x598b2d){_0x21f931=_0x21f931-0x0;var _0x3f083c=_0xaa88[_0x21f931];return _0x3f083c;};'use strict';var moment=require(_0x8aa8('0x0'));var Sequelize=require(_0x8aa8('0x1'));module[_0x8aa8('0x2')]={'uniqueid':{'type':Sequelize[_0x8aa8('0x3')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x8aa8('0x4'),_0x8aa8('0x5'),_0x8aa8('0x6')),'allowNull':![],'defaultValue':_0x8aa8('0x6')},'transferredAt':{'type':Sequelize[_0x8aa8('0x7')],'allowNull':![],'defaultValue':Sequelize[_0x8aa8('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7cc5=['moment','bluebird','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','then','stack','name','send','index','map','ChatTransferReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise'];(function(_0x2f5ac5,_0x1ee939){var _0x37c9a8=function(_0x15031f){while(--_0x15031f){_0x2f5ac5['push'](_0x2f5ac5['shift']());}};_0x37c9a8(++_0x1ee939);}(_0x7cc5,0x186));var _0x57cc=function(_0x327b51,_0x4a20bd){_0x327b51=_0x327b51-0x0;var _0x1b6be1=_0x7cc5[_0x327b51];return _0x1b6be1;};'use strict';var emlformat=require(_0x57cc('0x0'));var rimraf=require(_0x57cc('0x1'));var zipdir=require(_0x57cc('0x2'));var jsonpatch=require(_0x57cc('0x3'));var rp=require(_0x57cc('0x4'));var moment=require(_0x57cc('0x5'));var BPromise=require(_0x57cc('0x6'));var Mustache=require('mustache');var util=require(_0x57cc('0x7'));var path=require(_0x57cc('0x8'));var sox=require(_0x57cc('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x57cc('0xa'));var _=require(_0x57cc('0xb'));var squel=require(_0x57cc('0xc'));var crypto=require(_0x57cc('0xd'));var jsforce=require(_0x57cc('0xe'));var deskjs=require(_0x57cc('0xf'));var toCsv=require(_0x57cc('0x10'));var querystring=require(_0x57cc('0x11'));var Papa=require(_0x57cc('0x12'));var Redis=require(_0x57cc('0x13'));var authService=require(_0x57cc('0x14'));var qs=require(_0x57cc('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x57cc('0x16'));var logger=require(_0x57cc('0x17'))(_0x57cc('0x18'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x57cc('0x19'));var db=require(_0x57cc('0x1a'))['db'];function respondWithStatusCode(_0x3d7fee,_0x38e0fd){_0x38e0fd=_0x38e0fd||0xcc;return function(_0x33c4fc){if(_0x33c4fc){return _0x3d7fee['sendStatus'](_0x38e0fd);}return _0x3d7fee[_0x57cc('0x1b')](_0x38e0fd)[_0x57cc('0x1c')]();};}function respondWithResult(_0x533b1d,_0x3a7543){_0x3a7543=_0x3a7543||0xc8;return function(_0xe096e0){if(_0xe096e0){return _0x533b1d[_0x57cc('0x1b')](_0x3a7543)[_0x57cc('0x1d')](_0xe096e0);}};}function respondWithFilteredResult(_0x2a9519,_0xc26c7a){return function(_0x471f4f){if(_0x471f4f){var _0x3ac4b2=typeof _0xc26c7a[_0x57cc('0x1e')]===_0x57cc('0x1f')&&typeof _0xc26c7a[_0x57cc('0x20')]==='undefined';var _0x35240d=_0x471f4f[_0x57cc('0x21')];var _0x56694b=_0x3ac4b2?0x0:_0xc26c7a[_0x57cc('0x1e')];var _0x5b38dc=_0x3ac4b2?_0x471f4f[_0x57cc('0x21')]:_0xc26c7a['offset']+_0xc26c7a['limit'];var _0x2212ea;if(_0x5b38dc>=_0x35240d){_0x5b38dc=_0x35240d;_0x2212ea=0xc8;}else{_0x2212ea=0xce;}_0x2a9519['status'](_0x2212ea);return _0x2a9519[_0x57cc('0x22')]('Content-Range',_0x56694b+'-'+_0x5b38dc+'/'+_0x35240d)['json'](_0x471f4f);}return null;};}function patchUpdates(_0x5c6928){return function(_0x268829){try{jsonpatch[_0x57cc('0x23')](_0x268829,_0x5c6928,!![]);}catch(_0x438c81){return BPromise[_0x57cc('0x24')](_0x438c81);}return _0x268829[_0x57cc('0x25')]();};}function saveUpdates(_0x3bd890,_0x183436){return function(_0x5d9f0a){if(_0x5d9f0a){return _0x5d9f0a[_0x57cc('0x26')](_0x3bd890)[_0x57cc('0x27')](function(_0x4565e0){return _0x4565e0;});}return null;};}function removeEntity(_0xdd9d03,_0x55f3b0){return function(_0x15827){if(_0x15827){return _0x15827['destroy']()[_0x57cc('0x27')](function(){_0xdd9d03['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2fee33,_0x56596b){return function(_0x834e8d){if(!_0x834e8d){_0x2fee33['sendStatus'](0x194);}return _0x834e8d;};}function handleError(_0x4f690b,_0x408863){_0x408863=_0x408863||0x1f4;return function(_0x151c82){logger['error'](_0x151c82[_0x57cc('0x28')]);if(_0x151c82[_0x57cc('0x29')]){delete _0x151c82[_0x57cc('0x29')];}_0x4f690b[_0x57cc('0x1b')](_0x408863)[_0x57cc('0x2a')](_0x151c82);};}exports[_0x57cc('0x2b')]=function(_0x468567,_0x19dddb){var _0x1d38e9={},_0x5b5251={},_0x46d91f={'count':0x0,'rows':[]};var _0x1dee68=_[_0x57cc('0x2c')](db[_0x57cc('0x2d')][_0x57cc('0x2e')],function(_0x5e1697){return{'name':_0x5e1697[_0x57cc('0x2f')],'type':_0x5e1697[_0x57cc('0x30')][_0x57cc('0x31')]};});_0x5b5251[_0x57cc('0x32')]=_[_0x57cc('0x2c')](_0x1dee68,_0x57cc('0x29'));_0x5b5251[_0x57cc('0x33')]=_[_0x57cc('0x34')](_0x468567[_0x57cc('0x33')]);_0x5b5251[_0x57cc('0x35')]=_[_0x57cc('0x36')](_0x5b5251[_0x57cc('0x32')],_0x5b5251['query']);_0x1d38e9[_0x57cc('0x37')]=_[_0x57cc('0x36')](_0x5b5251['model'],qs[_0x57cc('0x38')](_0x468567['query'][_0x57cc('0x38')]));_0x1d38e9[_0x57cc('0x37')]=_0x1d38e9[_0x57cc('0x37')][_0x57cc('0x39')]?_0x1d38e9['attributes']:_0x5b5251['model'];if(!_0x468567[_0x57cc('0x33')]['hasOwnProperty'](_0x57cc('0x3a'))){_0x1d38e9['limit']=qs['limit'](_0x468567['query']['limit']);_0x1d38e9['offset']=qs['offset'](_0x468567[_0x57cc('0x33')]['offset']);}_0x1d38e9[_0x57cc('0x3b')]=qs[_0x57cc('0x3c')](_0x468567[_0x57cc('0x33')][_0x57cc('0x3c')]);_0x1d38e9[_0x57cc('0x3d')]=qs[_0x57cc('0x35')](_[_0x57cc('0x3e')](_0x468567[_0x57cc('0x33')],_0x5b5251['filters']),_0x1dee68);if(_0x468567[_0x57cc('0x33')][_0x57cc('0x3f')]){_0x1d38e9[_0x57cc('0x3d')]=_['merge'](_0x1d38e9[_0x57cc('0x3d')],{'$or':_[_0x57cc('0x2c')](_0x1dee68,function(_0x5ccaf8){if(_0x5ccaf8['type']!==_0x57cc('0x40')){var _0x1f7e20={};_0x1f7e20[_0x5ccaf8[_0x57cc('0x29')]]={'$like':'%'+_0x468567[_0x57cc('0x33')]['filter']+'%'};return _0x1f7e20;}})});}_0x1d38e9=_[_0x57cc('0x41')]({},_0x1d38e9,_0x468567['options']);var _0x34fa13={'where':_0x1d38e9[_0x57cc('0x3d')]};return db['ChatTransferReport']['count'](_0x34fa13)[_0x57cc('0x27')](function(_0x35e2ce){_0x46d91f[_0x57cc('0x21')]=_0x35e2ce;if(_0x468567[_0x57cc('0x33')][_0x57cc('0x42')]){_0x1d38e9[_0x57cc('0x43')]=[{'all':!![]}];}return db[_0x57cc('0x2d')][_0x57cc('0x44')](_0x1d38e9);})['then'](function(_0x5aea93){_0x46d91f[_0x57cc('0x45')]=_0x5aea93;return _0x46d91f;})['then'](respondWithFilteredResult(_0x19dddb,_0x1d38e9))[_0x57cc('0x46')](handleError(_0x19dddb,null));};exports[_0x57cc('0x47')]=function(_0x1cbbf0,_0x34b4a7){var _0x4dbf33={'raw':!![],'where':{'id':_0x1cbbf0[_0x57cc('0x48')]['id']}},_0x470b25={};_0x470b25[_0x57cc('0x32')]=_[_0x57cc('0x34')](db['ChatTransferReport'][_0x57cc('0x2e')]);_0x470b25[_0x57cc('0x33')]=_['keys'](_0x1cbbf0[_0x57cc('0x33')]);_0x470b25[_0x57cc('0x35')]=_[_0x57cc('0x36')](_0x470b25[_0x57cc('0x32')],_0x470b25[_0x57cc('0x33')]);_0x4dbf33[_0x57cc('0x37')]=_[_0x57cc('0x36')](_0x470b25[_0x57cc('0x32')],qs['fields'](_0x1cbbf0['query']['fields']));_0x4dbf33[_0x57cc('0x37')]=_0x4dbf33[_0x57cc('0x37')]['length']?_0x4dbf33[_0x57cc('0x37')]:_0x470b25['model'];if(_0x1cbbf0['query']['includeAll']){_0x4dbf33[_0x57cc('0x43')]=[{'all':!![]}];}_0x4dbf33=_[_0x57cc('0x41')]({},_0x4dbf33,_0x1cbbf0[_0x57cc('0x49')]);return db[_0x57cc('0x2d')][_0x57cc('0x4a')](_0x4dbf33)[_0x57cc('0x27')](handleEntityNotFound(_0x34b4a7,null))[_0x57cc('0x27')](respondWithResult(_0x34b4a7,null))['catch'](handleError(_0x34b4a7,null));};exports['create']=function(_0x179bef,_0x1ab66f){return db[_0x57cc('0x2d')][_0x57cc('0x4b')](_0x179bef[_0x57cc('0x4c')],{})[_0x57cc('0x27')](respondWithResult(_0x1ab66f,0xc9))[_0x57cc('0x46')](handleError(_0x1ab66f,null));};exports[_0x57cc('0x26')]=function(_0x2678a5,_0x713d16){if(_0x2678a5[_0x57cc('0x4c')]['id']){delete _0x2678a5['body']['id'];}return db[_0x57cc('0x2d')][_0x57cc('0x4a')]({'where':{'id':_0x2678a5[_0x57cc('0x48')]['id']}})[_0x57cc('0x27')](handleEntityNotFound(_0x713d16,null))['then'](saveUpdates(_0x2678a5[_0x57cc('0x4c')],null))[_0x57cc('0x27')](respondWithResult(_0x713d16,null))[_0x57cc('0x46')](handleError(_0x713d16,null));};exports[_0x57cc('0x4d')]=function(_0x521f92,_0x349813){return db[_0x57cc('0x2d')]['find']({'where':{'id':_0x521f92[_0x57cc('0x48')]['id']}})[_0x57cc('0x27')](handleEntityNotFound(_0x349813,null))[_0x57cc('0x27')](removeEntity(_0x349813,null))[_0x57cc('0x46')](handleError(_0x349813,null));};exports['describe']=function(_0x2dab49,_0x1b6bd9){return db['ChatTransferReport'][_0x57cc('0x4e')]()[_0x57cc('0x27')](respondWithResult(_0x1b6bd9,null))[_0x57cc('0x46')](handleError(_0x1b6bd9,null));};
\ No newline at end of file
+var _0x3ea4=['fields','length','nolimit','offset','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','create','body','describe','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','ChatTransferReport','fieldName','type','key','map','query','keys','filters','intersection','model','attributes'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0x3ea4,0xb1));var _0x43ea=function(_0x30033a,_0x5ce4a6){_0x30033a=_0x30033a-0x0;var _0x5e3518=_0x3ea4[_0x30033a];return _0x5e3518;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x43ea('0x0'));var zipdir=require(_0x43ea('0x1'));var jsonpatch=require(_0x43ea('0x2'));var rp=require('request-promise');var moment=require(_0x43ea('0x3'));var BPromise=require(_0x43ea('0x4'));var Mustache=require(_0x43ea('0x5'));var util=require(_0x43ea('0x6'));var path=require(_0x43ea('0x7'));var sox=require(_0x43ea('0x8'));var csv=require(_0x43ea('0x9'));var ejs=require(_0x43ea('0xa'));var fs=require('fs');var fs_extra=require(_0x43ea('0xb'));var _=require('lodash');var squel=require(_0x43ea('0xc'));var crypto=require(_0x43ea('0xd'));var jsforce=require(_0x43ea('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x43ea('0x9'));var querystring=require(_0x43ea('0xf'));var Papa=require(_0x43ea('0x10'));var Redis=require(_0x43ea('0x11'));var authService=require(_0x43ea('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x43ea('0x13'));var logger=require(_0x43ea('0x14'))(_0x43ea('0x15'));var utils=require(_0x43ea('0x16'));var config=require(_0x43ea('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x43ea('0x18'))['db'];function respondWithStatusCode(_0x306545,_0x5d7ec4){_0x5d7ec4=_0x5d7ec4||0xcc;return function(_0x42e9b5){if(_0x42e9b5){return _0x306545['sendStatus'](_0x5d7ec4);}return _0x306545[_0x43ea('0x19')](_0x5d7ec4)[_0x43ea('0x1a')]();};}function respondWithResult(_0x59416f,_0xe50572){_0xe50572=_0xe50572||0xc8;return function(_0xf3dbf0){if(_0xf3dbf0){return _0x59416f['status'](_0xe50572)['json'](_0xf3dbf0);}};}function respondWithFilteredResult(_0x208a73,_0x230a9b){return function(_0x26eb6c){if(_0x26eb6c){var _0x30b30d=typeof _0x230a9b['offset']===_0x43ea('0x1b')&&typeof _0x230a9b[_0x43ea('0x1c')]===_0x43ea('0x1b');var _0x365e10=_0x26eb6c[_0x43ea('0x1d')];var _0x281756=_0x30b30d?0x0:_0x230a9b['offset'];var _0x3d5c41=_0x30b30d?_0x26eb6c[_0x43ea('0x1d')]:_0x230a9b['offset']+_0x230a9b[_0x43ea('0x1c')];var _0x46b895;if(_0x3d5c41>=_0x365e10){_0x3d5c41=_0x365e10;_0x46b895=0xc8;}else{_0x46b895=0xce;}_0x208a73[_0x43ea('0x19')](_0x46b895);return _0x208a73[_0x43ea('0x1e')](_0x43ea('0x1f'),_0x281756+'-'+_0x3d5c41+'/'+_0x365e10)[_0x43ea('0x20')](_0x26eb6c);}return null;};}function patchUpdates(_0x1a92e2){return function(_0x3b308a){try{jsonpatch[_0x43ea('0x21')](_0x3b308a,_0x1a92e2,!![]);}catch(_0x1b1a75){return BPromise[_0x43ea('0x22')](_0x1b1a75);}return _0x3b308a[_0x43ea('0x23')]();};}function saveUpdates(_0x1ce0d7,_0x360903){return function(_0x43a2c6){if(_0x43a2c6){return _0x43a2c6[_0x43ea('0x24')](_0x1ce0d7)[_0x43ea('0x25')](function(_0x4895cb){return _0x4895cb;});}return null;};}function removeEntity(_0x344272,_0x38eef7){return function(_0x211077){if(_0x211077){return _0x211077[_0x43ea('0x26')]()[_0x43ea('0x25')](function(){_0x344272[_0x43ea('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x22c93d,_0x3876f3){return function(_0x286c1a){if(!_0x286c1a){_0x22c93d[_0x43ea('0x27')](0x194);}return _0x286c1a;};}function handleError(_0xd545b3,_0x4abaf1){_0x4abaf1=_0x4abaf1||0x1f4;return function(_0xd1e4b6){logger[_0x43ea('0x28')](_0xd1e4b6[_0x43ea('0x29')]);if(_0xd1e4b6[_0x43ea('0x2a')]){delete _0xd1e4b6[_0x43ea('0x2a')];}_0xd545b3['status'](_0x4abaf1)['send'](_0xd1e4b6);};}exports['index']=function(_0x25af3e,_0x52c57a){var _0x37f09b={},_0x3d08f5={},_0x3f8c65={'count':0x0,'rows':[]};var _0x23b251=_['map'](db[_0x43ea('0x2b')]['rawAttributes'],function(_0x3d7202){return{'name':_0x3d7202[_0x43ea('0x2c')],'type':_0x3d7202[_0x43ea('0x2d')][_0x43ea('0x2e')]};});_0x3d08f5['model']=_[_0x43ea('0x2f')](_0x23b251,'name');_0x3d08f5[_0x43ea('0x30')]=_[_0x43ea('0x31')](_0x25af3e[_0x43ea('0x30')]);_0x3d08f5[_0x43ea('0x32')]=_[_0x43ea('0x33')](_0x3d08f5[_0x43ea('0x34')],_0x3d08f5[_0x43ea('0x30')]);_0x37f09b[_0x43ea('0x35')]=_[_0x43ea('0x33')](_0x3d08f5[_0x43ea('0x34')],qs[_0x43ea('0x36')](_0x25af3e[_0x43ea('0x30')][_0x43ea('0x36')]));_0x37f09b[_0x43ea('0x35')]=_0x37f09b[_0x43ea('0x35')][_0x43ea('0x37')]?_0x37f09b[_0x43ea('0x35')]:_0x3d08f5[_0x43ea('0x34')];if(!_0x25af3e['query']['hasOwnProperty'](_0x43ea('0x38'))){_0x37f09b[_0x43ea('0x1c')]=qs[_0x43ea('0x1c')](_0x25af3e[_0x43ea('0x30')][_0x43ea('0x1c')]);_0x37f09b[_0x43ea('0x39')]=qs[_0x43ea('0x39')](_0x25af3e[_0x43ea('0x30')][_0x43ea('0x39')]);}_0x37f09b[_0x43ea('0x3a')]=qs['sort'](_0x25af3e[_0x43ea('0x30')][_0x43ea('0x3b')]);_0x37f09b[_0x43ea('0x3c')]=qs[_0x43ea('0x32')](_[_0x43ea('0x3d')](_0x25af3e[_0x43ea('0x30')],_0x3d08f5['filters']),_0x23b251);if(_0x25af3e[_0x43ea('0x30')][_0x43ea('0x3e')]){_0x37f09b[_0x43ea('0x3c')]=_['merge'](_0x37f09b[_0x43ea('0x3c')],{'$or':_[_0x43ea('0x2f')](_0x23b251,function(_0x2ea3bb){if(_0x2ea3bb[_0x43ea('0x2d')]!==_0x43ea('0x3f')){var _0x201e44={};_0x201e44[_0x2ea3bb[_0x43ea('0x2a')]]={'$like':'%'+_0x25af3e['query'][_0x43ea('0x3e')]+'%'};return _0x201e44;}})});}_0x37f09b=_[_0x43ea('0x40')]({},_0x37f09b,_0x25af3e[_0x43ea('0x41')]);var _0x4f4092={'where':_0x37f09b[_0x43ea('0x3c')]};return db[_0x43ea('0x2b')][_0x43ea('0x1d')](_0x4f4092)[_0x43ea('0x25')](function(_0x2b50bc){_0x3f8c65['count']=_0x2b50bc;if(_0x25af3e[_0x43ea('0x30')][_0x43ea('0x42')]){_0x37f09b[_0x43ea('0x43')]=[{'all':!![]}];}return db[_0x43ea('0x2b')][_0x43ea('0x44')](_0x37f09b);})[_0x43ea('0x25')](function(_0x50e2c7){_0x3f8c65[_0x43ea('0x45')]=_0x50e2c7;return _0x3f8c65;})[_0x43ea('0x25')](respondWithFilteredResult(_0x52c57a,_0x37f09b))[_0x43ea('0x46')](handleError(_0x52c57a,null));};exports[_0x43ea('0x47')]=function(_0x4ff421,_0x268f11){var _0x2a5d2f={'raw':!![],'where':{'id':_0x4ff421[_0x43ea('0x48')]['id']}},_0x773bfe={};_0x773bfe[_0x43ea('0x34')]=_[_0x43ea('0x31')](db['ChatTransferReport'][_0x43ea('0x49')]);_0x773bfe[_0x43ea('0x30')]=_['keys'](_0x4ff421[_0x43ea('0x30')]);_0x773bfe[_0x43ea('0x32')]=_[_0x43ea('0x33')](_0x773bfe['model'],_0x773bfe['query']);_0x2a5d2f['attributes']=_[_0x43ea('0x33')](_0x773bfe[_0x43ea('0x34')],qs[_0x43ea('0x36')](_0x4ff421[_0x43ea('0x30')][_0x43ea('0x36')]));_0x2a5d2f[_0x43ea('0x35')]=_0x2a5d2f['attributes'][_0x43ea('0x37')]?_0x2a5d2f['attributes']:_0x773bfe[_0x43ea('0x34')];if(_0x4ff421[_0x43ea('0x30')]['includeAll']){_0x2a5d2f[_0x43ea('0x43')]=[{'all':!![]}];}_0x2a5d2f=_['merge']({},_0x2a5d2f,_0x4ff421[_0x43ea('0x41')]);return db['ChatTransferReport']['find'](_0x2a5d2f)[_0x43ea('0x25')](handleEntityNotFound(_0x268f11,null))[_0x43ea('0x25')](respondWithResult(_0x268f11,null))[_0x43ea('0x46')](handleError(_0x268f11,null));};exports[_0x43ea('0x4a')]=function(_0x25ed48,_0x4d5225){return db['ChatTransferReport'][_0x43ea('0x4a')](_0x25ed48[_0x43ea('0x4b')],{})[_0x43ea('0x25')](respondWithResult(_0x4d5225,0xc9))[_0x43ea('0x46')](handleError(_0x4d5225,null));};exports[_0x43ea('0x24')]=function(_0x523295,_0x33b365){if(_0x523295[_0x43ea('0x4b')]['id']){delete _0x523295[_0x43ea('0x4b')]['id'];}return db[_0x43ea('0x2b')]['find']({'where':{'id':_0x523295[_0x43ea('0x48')]['id']}})[_0x43ea('0x25')](handleEntityNotFound(_0x33b365,null))[_0x43ea('0x25')](saveUpdates(_0x523295[_0x43ea('0x4b')],null))[_0x43ea('0x25')](respondWithResult(_0x33b365,null))[_0x43ea('0x46')](handleError(_0x33b365,null));};exports[_0x43ea('0x26')]=function(_0x5bff6e,_0x4677cb){return db['ChatTransferReport']['find']({'where':{'id':_0x5bff6e[_0x43ea('0x48')]['id']}})['then'](handleEntityNotFound(_0x4677cb,null))['then'](removeEntity(_0x4677cb,null))[_0x43ea('0x46')](handleError(_0x4677cb,null));};exports[_0x43ea('0x4c')]=function(_0x10e663,_0x2d8d93){return db[_0x43ea('0x2b')][_0x43ea('0x4c')]()[_0x43ea('0x25')](respondWithResult(_0x2d8d93,null))[_0x43ea('0x46')](handleError(_0x2d8d93,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb5a=['rimraf','../../config/environment','./chatTransferReport.attributes','exports','uniqueid','../../config/logger','api','moment','request-promise'];(function(_0xc0754,_0x37f107){var _0x195498=function(_0x23dba7){while(--_0x23dba7){_0xc0754['push'](_0xc0754['shift']());}};_0x195498(++_0x37f107);}(_0xeb5a,0x83));var _0xaeb5=function(_0x4e7f80,_0x4728ac){_0x4e7f80=_0x4e7f80-0x0;var _0x64ace=_0xeb5a[_0x4e7f80];return _0x64ace;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xaeb5('0x0'))(_0xaeb5('0x1'));var moment=require(_0xaeb5('0x2'));var BPromise=require('bluebird');var rp=require(_0xaeb5('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xaeb5('0x4'));var config=require(_0xaeb5('0x5'));var attributes=require(_0xaeb5('0x6'));module[_0xaeb5('0x7')]=function(_0x421037,_0x16ff33){return _0x421037['define']('ChatTransferReport',attributes,{'tableName':'report_chat_transfer','paranoid':![],'indexes':[{'name':_0xaeb5('0x8'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5023=['../../config/environment','./chatTransferReport.attributes','exports','define','report_chat_transfer','uniqueid','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x34ac87,_0x2315b8){var _0x457d55=function(_0x34795d){while(--_0x34795d){_0x34ac87['push'](_0x34ac87['shift']());}};_0x457d55(++_0x2315b8);}(_0x5023,0x123));var _0x3502=function(_0x4f8a2a,_0x38c0e2){_0x4f8a2a=_0x4f8a2a-0x0;var _0x384c7d=_0x5023[_0x4f8a2a];return _0x384c7d;};'use strict';var _=require(_0x3502('0x0'));var util=require(_0x3502('0x1'));var logger=require(_0x3502('0x2'))(_0x3502('0x3'));var moment=require(_0x3502('0x4'));var BPromise=require(_0x3502('0x5'));var rp=require(_0x3502('0x6'));var fs=require('fs');var path=require(_0x3502('0x7'));var rimraf=require(_0x3502('0x8'));var config=require(_0x3502('0x9'));var attributes=require(_0x3502('0xa'));module[_0x3502('0xb')]=function(_0x3abb50,_0x316cb5){return _0x3abb50[_0x3502('0xc')]('ChatTransferReport',attributes,{'tableName':_0x3502('0xd'),'paranoid':![],'indexes':[{'name':_0x3502('0xe'),'fields':[_0x3502('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x714b=['catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','debug','ChatTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message'];(function(_0x5da27f,_0x504b76){var _0x54a3fb=function(_0x3b65a8){while(--_0x3b65a8){_0x5da27f['push'](_0x5da27f['shift']());}};_0x54a3fb(++_0x504b76);}(_0x714b,0xe7));var _0xb714=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x714b[_0x3bf83f];return _0x22c4a9;};'use strict';var _=require('lodash');var util=require(_0xb714('0x0'));var moment=require(_0xb714('0x1'));var BPromise=require(_0xb714('0x2'));var rs=require(_0xb714('0x3'));var fs=require('fs');var Redis=require(_0xb714('0x4'));var db=require(_0xb714('0x5'))['db'];var utils=require(_0xb714('0x6'));var logger=require(_0xb714('0x7'))(_0xb714('0x8'));var config=require(_0xb714('0x9'));var jayson=require(_0xb714('0xa'));var client=jayson[_0xb714('0xb')][_0xb714('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x438ec8,_0x9fd418,_0x300bc2){return new BPromise(function(_0xcdb724,_0x2bc701){return client[_0xb714('0xd')](_0x438ec8,_0x300bc2)[_0xb714('0xe')](function(_0x270f10){logger[_0xb714('0xf')]('ChatTransferReport,\x20%s,\x20%s',_0x9fd418,'request\x20sent');logger[_0xb714('0x10')](_0xb714('0x11'),_0x9fd418,_0xb714('0x12'),JSON[_0xb714('0x13')](_0x270f10));if(_0x270f10['error']){if(_0x270f10[_0xb714('0x14')]['code']===0x1f4){logger[_0xb714('0x14')]('ChatTransferReport,\x20%s,\x20%s',_0x9fd418,_0x270f10[_0xb714('0x14')][_0xb714('0x15')]);return _0x2bc701(_0x270f10[_0xb714('0x14')][_0xb714('0x15')]);}logger[_0xb714('0x14')]('ChatTransferReport,\x20%s,\x20%s',_0x9fd418,_0x270f10['error']['message']);return _0xcdb724(_0x270f10[_0xb714('0x14')]['message']);}else{logger[_0xb714('0xf')]('ChatTransferReport,\x20%s,\x20%s',_0x9fd418,'request\x20sent');_0xcdb724(_0x270f10['result']['message']);}})[_0xb714('0x16')](function(_0x57d68d){logger[_0xb714('0x14')]('ChatTransferReport,\x20%s,\x20%s',_0x9fd418,_0x57d68d);_0x2bc701(_0x57d68d);});});}
\ No newline at end of file
+var _0x5922=['request','then','info','request\x20sent','debug','ChatTransferReport,\x20%s,\x20%s,\x20%s','error','ChatTransferReport,\x20%s,\x20%s','message','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x8a969d,_0x339d9f){var _0x1d8dc7=function(_0x283ec0){while(--_0x283ec0){_0x8a969d['push'](_0x8a969d['shift']());}};_0x1d8dc7(++_0x339d9f);}(_0x5922,0x9b));var _0x2592=function(_0x5447fd,_0x52a6b5){_0x5447fd=_0x5447fd-0x0;var _0x15b28a=_0x5922[_0x5447fd];return _0x15b28a;};'use strict';var _=require(_0x2592('0x0'));var util=require(_0x2592('0x1'));var moment=require('moment');var BPromise=require(_0x2592('0x2'));var rs=require(_0x2592('0x3'));var fs=require('fs');var Redis=require(_0x2592('0x4'));var db=require(_0x2592('0x5'))['db'];var utils=require(_0x2592('0x6'));var logger=require(_0x2592('0x7'))(_0x2592('0x8'));var config=require(_0x2592('0x9'));var jayson=require(_0x2592('0xa'));var client=jayson[_0x2592('0xb')][_0x2592('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x551311,_0x3573c2,_0x13758d){return new BPromise(function(_0x398028,_0x23541c){return client[_0x2592('0xd')](_0x551311,_0x13758d)[_0x2592('0xe')](function(_0x237974){logger[_0x2592('0xf')]('ChatTransferReport,\x20%s,\x20%s',_0x3573c2,_0x2592('0x10'));logger[_0x2592('0x11')](_0x2592('0x12'),_0x3573c2,'request\x20sent',JSON['stringify'](_0x237974));if(_0x237974[_0x2592('0x13')]){if(_0x237974['error']['code']===0x1f4){logger[_0x2592('0x13')](_0x2592('0x14'),_0x3573c2,_0x237974[_0x2592('0x13')][_0x2592('0x15')]);return _0x23541c(_0x237974['error'][_0x2592('0x15')]);}logger[_0x2592('0x13')]('ChatTransferReport,\x20%s,\x20%s',_0x3573c2,_0x237974['error']['message']);return _0x398028(_0x237974[_0x2592('0x13')][_0x2592('0x15')]);}else{logger[_0x2592('0xf')](_0x2592('0x14'),_0x3573c2,'request\x20sent');_0x398028(_0x237974[_0x2592('0x16')][_0x2592('0x15')]);}})[_0x2592('0x17')](function(_0x19229b){logger[_0x2592('0x13')](_0x2592('0x14'),_0x3573c2,_0x19229b);_0x23541c(_0x19229b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x570f=['Router','fs-extra','../../components/auth/service','./chatTransferReport.controller','get','isAuthenticated','describe','/:id','show','create','put','delete','destroy','exports','multer','util','path','connect-timeout'];(function(_0x453469,_0x5681c8){var _0x2a81d1=function(_0x2d378e){while(--_0x2d378e){_0x453469['push'](_0x453469['shift']());}};_0x2a81d1(++_0x5681c8);}(_0x570f,0x176));var _0xf570=function(_0x1a4cfc,_0x53a1af){_0x1a4cfc=_0x1a4cfc-0x0;var _0x1bb003=_0x570f[_0x1a4cfc];return _0x1bb003;};'use strict';var multer=require(_0xf570('0x0'));var util=require(_0xf570('0x1'));var path=require(_0xf570('0x2'));var timeout=require(_0xf570('0x3'));var express=require('express');var router=express[_0xf570('0x4')]();var fs_extra=require(_0xf570('0x5'));var auth=require(_0xf570('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xf570('0x7'));router[_0xf570('0x8')]('/',auth['isAuthenticated'](),controller['index']);router[_0xf570('0x8')]('/describe',auth[_0xf570('0x9')](),controller[_0xf570('0xa')]);router[_0xf570('0x8')](_0xf570('0xb'),auth[_0xf570('0x9')](),controller[_0xf570('0xc')]);router['post']('/',auth[_0xf570('0x9')](),controller[_0xf570('0xd')]);router[_0xf570('0xe')](_0xf570('0xb'),auth[_0xf570('0x9')](),controller['update']);router[_0xf570('0xf')](_0xf570('0xb'),auth[_0xf570('0x9')](),controller[_0xf570('0x10')]);module[_0xf570('0x11')]=router;
\ No newline at end of file
+var _0x5c98=['path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatTransferReport.controller','get','index','/describe','isAuthenticated','describe','show','post','create','put','/:id','delete','destroy','exports','multer','util'];(function(_0x22c235,_0x47feb7){var _0x38ab0e=function(_0x43fdbc){while(--_0x43fdbc){_0x22c235['push'](_0x22c235['shift']());}};_0x38ab0e(++_0x47feb7);}(_0x5c98,0x9f));var _0x85c9=function(_0x16db32,_0x3a6175){_0x16db32=_0x16db32-0x0;var _0x43a8e1=_0x5c98[_0x16db32];return _0x43a8e1;};'use strict';var multer=require(_0x85c9('0x0'));var util=require(_0x85c9('0x1'));var path=require(_0x85c9('0x2'));var timeout=require(_0x85c9('0x3'));var express=require(_0x85c9('0x4'));var router=express[_0x85c9('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x85c9('0x6'));var interaction=require(_0x85c9('0x7'));var config=require(_0x85c9('0x8'));var controller=require(_0x85c9('0x9'));router[_0x85c9('0xa')]('/',auth['isAuthenticated'](),controller[_0x85c9('0xb')]);router[_0x85c9('0xa')](_0x85c9('0xc'),auth[_0x85c9('0xd')](),controller[_0x85c9('0xe')]);router[_0x85c9('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x85c9('0xf')]);router[_0x85c9('0x10')]('/',auth[_0x85c9('0xd')](),controller[_0x85c9('0x11')]);router[_0x85c9('0x12')](_0x85c9('0x13'),auth['isAuthenticated'](),controller['update']);router[_0x85c9('0x14')](_0x85c9('0x13'),auth['isAuthenticated'](),controller[_0x85c9('0x15')]);module[_0x85c9('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x025f=['New\x20offline\x20message\x20from\x20websiteName','You\x20received\x20a\x20new\x20offline\x20message\x20from\x20websiteName.\x20Here\x20you\x20can\x20find\x20the\x20details\x20of\x20the\x20request:','Skip','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','website_alias','#fafafa','System','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','Generated\x20by\x20XCALLY\x20Motion','Meeting\x20generated\x20for\x20interaction\x20#{{interaction.id}}\x20by\x20{{agent.name}}','sequelize','randomstring','STRING','address','email','Agent','#011F6A','#ffffff','INTEGER','BOOLEAN','ENUM','rounded','squared','Chat','Send','Contact\x20us','Form\x20properly\x20submitted','Form\x20submission\x20error','Note','Type\x20a\x20message','Feedback','star','TEXT','stringify','input','name','getDataValue','onlineForm','setDataValue','textarea','Comments','Leave\x20your\x20comments','offlineForm','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.'];(function(_0x513bbf,_0x123f3e){var _0xc52843=function(_0x2aac0c){while(--_0x2aac0c){_0x513bbf['push'](_0x513bbf['shift']());}};_0xc52843(++_0x123f3e);}(_0x025f,0x99));var _0xf025=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x025f[_0x502c7d];return _0x30b7ed;};'use strict';var Sequelize=require(_0xf025('0x0'));var rs=require(_0xf025('0x1'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![]},'address':{'type':Sequelize[_0xf025('0x2')],'allowNull':![],'unique':_0xf025('0x3')},'description':{'type':Sequelize['STRING']},'mapKey':{'type':Sequelize[_0xf025('0x2')],'defaultValue':'email'},'mapKeyOffline':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0x4')},'key':{'type':Sequelize['STRING'],'allowNull':![]},'agentAlias':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0x5')},'customerAlias':{'type':Sequelize['STRING'],'defaultValue':'Me'},'color':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xf025('0x6'),'validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize[_0xf025('0x2')],'allowNull':![],'defaultValue':'#011F6A','validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize[_0xf025('0x2')],'allowNull':![],'defaultValue':_0xf025('0x7'),'validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize[_0xf025('0x8')],'defaultValue':0xf},'remote':{'type':Sequelize[_0xf025('0x2')]},'animation':{'type':Sequelize[_0xf025('0x9')],'defaultValue':!![]},'header_shape':{'type':Sequelize[_0xf025('0xa')](_0xf025('0xb'),_0xf025('0xc')),'defaultValue':_0xf025('0xb')},'header_online':{'type':Sequelize[_0xf025('0x2')],'defaultValue':'We\x20are\x20here!'},'start_chat_button':{'type':Sequelize['STRING'],'defaultValue':_0xf025('0xd')},'offline_chat_button':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0xe')},'header_offline':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0xf')},'download_transcript':{'type':Sequelize[_0xf025('0x9')],'defaultValue':!![]},'timeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'whiteLabel':{'type':Sequelize['STRING'],'defaultValue':'Powered\x20by\x20xCALLY'},'defaultWhiteLabel':{'type':Sequelize[_0xf025('0x9')],'defaultValue':!![]},'sitepic':{'type':Sequelize['TEXT']},'closingQuestion':{'type':Sequelize['STRING'],'defaultValue':'Do\x20you\x20want\x20to\x20close\x20the\x20interaction?'},'formSubmitSuccessMessage':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0x10')},'formSubmitFailureMessage':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0x11')},'noteTitle':{'type':Sequelize['STRING'],'defaultValue':_0xf025('0x12')},'placeholderMessage':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0x13')},'closingMessage':{'type':Sequelize[_0xf025('0x2')],'defaultValue':'Thanks\x20you\x20for\x20your\x20time!'},'closingMessageButton':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0xe')},'skipMessageButton':{'type':Sequelize[_0xf025('0x2')],'defaultValue':'Skip'},'conditionAgreement':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![]},'enableRating':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![]},'enableFeedback':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![]},'enableSendButton':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'feedbackTitle':{'type':Sequelize['STRING'],'defaultValue':_0xf025('0x14')},'ratingType':{'type':Sequelize[_0xf025('0xa')](_0xf025('0x15'),'thumb'),'defaultValue':'star'},'ratingStarsNumber':{'type':Sequelize['INTEGER'],'defaultValue':0x5},'onlineForm':{'type':Sequelize[_0xf025('0x16')],'defaultValue':function(){return JSON[_0xf025('0x17')]({'items':[{'type':_0xf025('0x18'),'variable':null,'config':{'placeholder':_0xf025('0x19'),'type':'text','required':!![]},'props':{'title':_0xf025('0x19'),'helpText':''}},{'type':_0xf025('0x18'),'props':{'title':_0xf025('0x4'),'helpText':''},'config':{'required':!![],'placeholder':_0xf025('0x4'),'type':_0xf025('0x4')},'variable':null}],'fromKey':0x1});},'get':function(){return this[_0xf025('0x1a')](_0xf025('0x1b'))?JSON['parse'](this['getDataValue']('onlineForm')):{};},'set':function(_0x2dea5f){return this[_0xf025('0x1c')](_0xf025('0x1b'),JSON[_0xf025('0x17')](_0x2dea5f));}},'offlineForm':{'type':Sequelize[_0xf025('0x16')],'defaultValue':function(){return JSON[_0xf025('0x17')]({'items':[{'type':'input','props':{'title':'email','helpText':''},'config':{'required':!![],'placeholder':'email','type':_0xf025('0x4')},'variable':null},{'type':_0xf025('0x1d'),'config':{'placeholder':'Comments'},'props':{'title':_0xf025('0x1e'),'helpText':_0xf025('0x1f')}}],'fromKey':0x0});},'get':function(){return this[_0xf025('0x1a')](_0xf025('0x20'))?JSON['parse'](this[_0xf025('0x1a')](_0xf025('0x20'))):{};},'set':function(_0x269c5e){return this['setDataValue'](_0xf025('0x20'),JSON['stringify'](_0x269c5e));}},'token':{'type':Sequelize[_0xf025('0x2')],'defaultValue':function(){return rs['generate']();}},'autoclose':{'type':Sequelize[_0xf025('0x9')],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![]},'forwardTranscript':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize[_0xf025('0x2')]},'forwardOffline':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize[_0xf025('0x2')]},'waitingTitle':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0x21')},'waitingMessage':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0x22')},'offlineMessageSubject':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0x23')},'offlineMessageBody':{'type':Sequelize['STRING'],'defaultValue':_0xf025('0x24')},'enableUnmanagedNote':{'type':Sequelize[_0xf025('0x9')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize[_0xf025('0x2')],'defaultValue':'Your\x20request\x20has\x20not\x20been\x20processed.'},'skipUnmanaged':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0x25')},'sendUnmanaged':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0xe')},'enableCustomerAttachment':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![]},'agentAvatar':{'type':Sequelize['TEXT']},'showAgentAvatar':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![]},'timezone':{'type':Sequelize[_0xf025('0x2')]},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return _0xf025('0x26');}},'notificationSound':{'type':Sequelize[_0xf025('0x9')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![]},'agentIdentifier':{'type':Sequelize['STRING'],'defaultValue':_0xf025('0x27')},'waitForTheAssignedAgent':{'type':Sequelize[_0xf025('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize[_0xf025('0x2')],'defaultValue':'bottom_right'},'verticalAlignment':{'type':Sequelize[_0xf025('0x8')],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize['STRING'],'defaultValue':'alternate'},'defaultTitle':{'type':Sequelize[_0xf025('0x2')]},'customerAvatar':{'type':Sequelize[_0xf025('0x16')]},'showCustomerAvatar':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![]},'messageFontSize':{'type':Sequelize[_0xf025('0x8')],'defaultValue':0xc},'backgroundColor':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xf025('0x28'),'validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xf025('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0xf025('0x2')],'defaultValue':_0xf025('0x29')},'systemAvatar':{'type':Sequelize[_0xf025('0x16')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0xf025('0x8')],'comment':_0xf025('0x2a')},'mandatoryDisposition':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![],'comment':_0xf025('0x2b'),'set':function(_0x4bbf0b){if(!_0x4bbf0b)this[_0xf025('0x1c')](_0xf025('0x2c'),null);this['setDataValue']('mandatoryDisposition',_0x4bbf0b);}},'vidaooEscalation':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![]},'vidaooApiKey':{'type':Sequelize[_0xf025('0x2')]},'vidaooTopic':{'type':Sequelize[_0xf025('0x2')],'allowNull':![],'defaultValue':_0xf025('0x2d')},'vidaooNote':{'type':Sequelize[_0xf025('0x2')],'defaultValue':function(){return _0xf025('0x2e');}},'vidaooMetadata':{'type':Sequelize['TEXT'],'defaultValue':null},'openNewInteraction':{'type':Sequelize[_0xf025('0x9')],'defaultValue':![],'allowNull':!![]},'subjectOffline':{'type':Sequelize[_0xf025('0x16')]}};
\ No newline at end of file
+var _0x923d=['Skip','Feedback','star','thumb','stringify','input','name','getDataValue','onlineForm','parse','setDataValue','TEXT','Comments','Leave\x20your\x20comments','offlineForm','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:','Your\x20request\x20has\x20not\x20been\x20processed.','Send','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','bottom_right','alternate','#fafafa','System','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','mandatoryDispositionPauseId','mandatoryDisposition','Generated\x20by\x20XCALLY\x20Motion','exports','STRING','address','email','Agent','#011F6A','INTEGER','BOOLEAN','ENUM','rounded','We\x20are\x20here!','Contact\x20us','Powered\x20by\x20xCALLY','Do\x20you\x20want\x20to\x20close\x20the\x20interaction?','Form\x20properly\x20submitted','Form\x20submission\x20error','Note','Type\x20a\x20message','Thanks\x20you\x20for\x20your\x20time!'];(function(_0x14dbd2,_0x573674){var _0x4c3c04=function(_0x11d99f){while(--_0x11d99f){_0x14dbd2['push'](_0x14dbd2['shift']());}};_0x4c3c04(++_0x573674);}(_0x923d,0x17d));var _0xd923=function(_0x440aa3,_0x3ca449){_0x440aa3=_0x440aa3-0x0;var _0x799766=_0x923d[_0x440aa3];return _0x799766;};'use strict';var Sequelize=require('sequelize');var rs=require('randomstring');module[_0xd923('0x0')]={'name':{'type':Sequelize[_0xd923('0x1')],'allowNull':![]},'address':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xd923('0x2')},'description':{'type':Sequelize[_0xd923('0x1')]},'mapKey':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0x3')},'mapKeyOffline':{'type':Sequelize[_0xd923('0x1')],'defaultValue':'email'},'key':{'type':Sequelize[_0xd923('0x1')],'allowNull':![]},'agentAlias':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0x4')},'customerAlias':{'type':Sequelize['STRING'],'defaultValue':'Me'},'color':{'type':Sequelize[_0xd923('0x1')],'allowNull':![],'defaultValue':_0xd923('0x5'),'validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'#011F6A','validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize[_0xd923('0x1')],'allowNull':![],'defaultValue':'#ffffff','validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize[_0xd923('0x6')],'defaultValue':0xf},'remote':{'type':Sequelize[_0xd923('0x1')]},'animation':{'type':Sequelize[_0xd923('0x7')],'defaultValue':!![]},'header_shape':{'type':Sequelize[_0xd923('0x8')](_0xd923('0x9'),'squared'),'defaultValue':_0xd923('0x9')},'header_online':{'type':Sequelize['STRING'],'defaultValue':_0xd923('0xa')},'start_chat_button':{'type':Sequelize[_0xd923('0x1')],'defaultValue':'Chat'},'offline_chat_button':{'type':Sequelize[_0xd923('0x1')],'defaultValue':'Send'},'header_offline':{'type':Sequelize['STRING'],'defaultValue':_0xd923('0xb')},'download_transcript':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'timeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'whiteLabel':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0xc')},'defaultWhiteLabel':{'type':Sequelize[_0xd923('0x7')],'defaultValue':!![]},'sitepic':{'type':Sequelize['TEXT']},'closingQuestion':{'type':Sequelize['STRING'],'defaultValue':_0xd923('0xd')},'formSubmitSuccessMessage':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0xe')},'formSubmitFailureMessage':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0xf')},'noteTitle':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0x10')},'placeholderMessage':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0x11')},'closingMessage':{'type':Sequelize['STRING'],'defaultValue':_0xd923('0x12')},'closingMessageButton':{'type':Sequelize[_0xd923('0x1')],'defaultValue':'Send'},'skipMessageButton':{'type':Sequelize['STRING'],'defaultValue':_0xd923('0x13')},'conditionAgreement':{'type':Sequelize[_0xd923('0x7')],'defaultValue':![]},'enableRating':{'type':Sequelize[_0xd923('0x7')],'defaultValue':![]},'enableFeedback':{'type':Sequelize[_0xd923('0x7')],'defaultValue':![]},'enableSendButton':{'type':Sequelize[_0xd923('0x7')],'defaultValue':![]},'feedbackTitle':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0x14')},'ratingType':{'type':Sequelize[_0xd923('0x8')](_0xd923('0x15'),_0xd923('0x16')),'defaultValue':_0xd923('0x15')},'ratingStarsNumber':{'type':Sequelize[_0xd923('0x6')],'defaultValue':0x5},'onlineForm':{'type':Sequelize['TEXT'],'defaultValue':function(){return JSON[_0xd923('0x17')]({'items':[{'type':_0xd923('0x18'),'variable':null,'config':{'placeholder':_0xd923('0x19'),'type':'text','required':!![]},'props':{'title':_0xd923('0x19'),'helpText':''}},{'type':_0xd923('0x18'),'props':{'title':_0xd923('0x3'),'helpText':''},'config':{'required':!![],'placeholder':'email','type':_0xd923('0x3')},'variable':null}],'fromKey':0x1});},'get':function(){return this[_0xd923('0x1a')](_0xd923('0x1b'))?JSON[_0xd923('0x1c')](this[_0xd923('0x1a')]('onlineForm')):{};},'set':function(_0x5c2781){return this[_0xd923('0x1d')](_0xd923('0x1b'),JSON[_0xd923('0x17')](_0x5c2781));}},'offlineForm':{'type':Sequelize[_0xd923('0x1e')],'defaultValue':function(){return JSON[_0xd923('0x17')]({'items':[{'type':_0xd923('0x18'),'props':{'title':'email','helpText':''},'config':{'required':!![],'placeholder':_0xd923('0x3'),'type':_0xd923('0x3')},'variable':null},{'type':'textarea','config':{'placeholder':'Comments'},'props':{'title':_0xd923('0x1f'),'helpText':_0xd923('0x20')}}],'fromKey':0x0});},'get':function(){return this[_0xd923('0x1a')](_0xd923('0x21'))?JSON[_0xd923('0x1c')](this[_0xd923('0x1a')]('offlineForm')):{};},'set':function(_0x2552a3){return this['setDataValue'](_0xd923('0x21'),JSON[_0xd923('0x17')](_0x2552a3));}},'token':{'type':Sequelize[_0xd923('0x1')],'defaultValue':function(){return rs[_0xd923('0x22')]();}},'autoclose':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'forwardTranscript':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize['STRING']},'forwardOffline':{'type':Sequelize[_0xd923('0x7')],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize[_0xd923('0x1')]},'waitingTitle':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0x23')},'waitingMessage':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0x24')},'offlineMessageSubject':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0x25')},'offlineMessageBody':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0x26')},'enableUnmanagedNote':{'type':Sequelize[_0xd923('0x7')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0x27')},'skipUnmanaged':{'type':Sequelize['STRING'],'defaultValue':_0xd923('0x13')},'sendUnmanaged':{'type':Sequelize['STRING'],'defaultValue':_0xd923('0x28')},'enableCustomerAttachment':{'type':Sequelize[_0xd923('0x7')],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize[_0xd923('0x7')],'defaultValue':![]},'agentAvatar':{'type':Sequelize[_0xd923('0x1e')]},'showAgentAvatar':{'type':Sequelize[_0xd923('0x7')],'defaultValue':![]},'timezone':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize[_0xd923('0x1e')],'defaultValue':function(){return _0xd923('0x29');}},'notificationSound':{'type':Sequelize[_0xd923('0x7')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentIdentifier':{'type':Sequelize[_0xd923('0x1')],'defaultValue':'website_alias'},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize['STRING'],'defaultValue':_0xd923('0x2a')},'verticalAlignment':{'type':Sequelize[_0xd923('0x6')],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize['STRING'],'defaultValue':_0xd923('0x2b')},'defaultTitle':{'type':Sequelize['STRING']},'customerAvatar':{'type':Sequelize[_0xd923('0x1e')]},'showCustomerAvatar':{'type':Sequelize[_0xd923('0x7')],'defaultValue':![]},'messageFontSize':{'type':Sequelize[_0xd923('0x6')],'defaultValue':0xc},'backgroundColor':{'type':Sequelize[_0xd923('0x1')],'allowNull':![],'defaultValue':_0xd923('0x2c'),'validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize[_0xd923('0x7')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xd923('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xd923('0x7')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xd923('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0xd923('0x1')],'defaultValue':_0xd923('0x2d')},'systemAvatar':{'type':Sequelize[_0xd923('0x1e')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0xd923('0x6')],'comment':_0xd923('0x2e')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':'Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','set':function(_0x5cc35a){if(!_0x5cc35a)this['setDataValue'](_0xd923('0x2f'),null);this['setDataValue'](_0xd923('0x30'),_0x5cc35a);}},'vidaooEscalation':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'vidaooApiKey':{'type':Sequelize[_0xd923('0x1')]},'vidaooTopic':{'type':Sequelize[_0xd923('0x1')],'allowNull':![],'defaultValue':_0xd923('0x31')},'vidaooNote':{'type':Sequelize[_0xd923('0x1')],'defaultValue':function(){return'Meeting\x20generated\x20for\x20interaction\x20#{{interaction.id}}\x20by\x20{{agent.name}}';}},'vidaooMetadata':{'type':Sequelize[_0xd923('0x1e')],'defaultValue':null},'openNewInteraction':{'type':Sequelize[_0xd923('0x7')],'defaultValue':![],'allowNull':!![]},'subjectOffline':{'type':Sequelize[_0xd923('0x1e')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7b0=['server/files/images/avatars/','download','server/files/images/avatars/customer_avatar.png','showCustomerAvatar','isNil','getSystemAvatar','server/files/images/avatars/system_avatar.png','notify','user-agent-parser','setUA','user-agent','getResult','chat','Sequelize','ValidationError','no\x20available\x20attributes','difference','ListId','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','CmList','CmContact','Contacts','updatedAt','DESC','ChatApplication','Applications','List','account','applications','list','orderBy','priority','contact','customerIp','cf-connecting-ip','headers','x-forwarded-for','first','split','firstName','lastName','x-real-port','referer','browser','version','format','%s\x20%s','vendor','%s\x20%s\x20%s','device','threadId','externalUrl','ChatInteraction','ContactId','interaction','spread','messageId','created','autoclose','push','unmanaged','*,*,*,*','ChatMessage','AttachmentId','UserId','User','unshift','agent','startRouting','Start','EventManager','files','createdAt','mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','MailAccount','mapKeyOffline','findOrCreate','readFileSync','server/files/templates/chatOfflineMessage.ejs','utf8','render','toPairs','ChatOfflineMessage','originalname','mimetype','server','offline-chat','basename','sequelize','transaction','bulkCreate','Smtp','forwardOfflineAddress','service','host','port','secure','authentication','auth','SendMail','sendMail','\x22%s\x22\x20<%s>','offlineMessageSubject','openNewInteraction','MailAccountId','subjectOffline','toPairsIn','email','Chat','NotifyMailAccount','attachments','remove','Could\x20not\x20remove\x20attachment\x20file','addInteraction','omit','getInteractions','Contact','Owner','internal','Tags','color','tag','getSnippet','timezone','iftime\x20%s,%s','interval','OFFLINE','inspect','No\x20timezone','Interval','Intervals','virtual','increment','chatLicenseExceeded','some','server/files/chat/iframe.ejs','remote','x-real-ip','connection','remoteAddress','replace','alignment','verticalAlignment','color_button','backgroundColor','addApplications','findAndCountAll','getApplications','addProactiveActions','chatProactiveAction','getProactiveActions','ChatProactiveAction','getFields','online','offlineForm','onlineForm','items','fromKey','getOfflineMessages','Attachment','Attachments','addAgents','emit','userChatWebsite:save','removeAgents','userChatWebsite:remove','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','util','to-csv','fs-extra','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','defaults','redis','localhost','socket.io-emitter','./chatWebsite.socket','register','jayson/promise','client','http','then','info','ChatWebsite,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','sendStatus','status','json','offset','undefined','count','limit','Content-Range','apply','reject','save','destroy','get','ChatWebsites','UserProfileResource','end','stack','name','send','index','Pause','mandatoryDispositionPause','map','ChatWebsite','rawAttributes','type','key','query','keys','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','includeAll','include','findAll','rows','options','find','catch','create','body','user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','describe','addDisposition','ChatWebsiteId','getDispositions','findOne','pick','Disposition','removeDispositions','ids','addAnswer','getAnswers','CannedAnswer','removeAnswers','addLogo','sitepic','file','filename','addAvatar','agentAvatar','addCustomerAvatar','customerAvatar','addSystemAvatar','systemAvatar','getLogo','join','server/files/images/logos/default_logo.svg','custom','existsSync','root','server/files/images/logos/','getAvatar','server/files/images/avatars/default_avatar.png'];(function(_0x53b2a9,_0x1273e7){var _0x4964e7=function(_0x122478){while(--_0x122478){_0x53b2a9['push'](_0x53b2a9['shift']());}};_0x4964e7(++_0x1273e7);}(_0xb7b0,0xac));var _0x0b7b=function(_0x5e06a1,_0x340f61){_0x5e06a1=_0x5e06a1-0x0;var _0x5b3253=_0xb7b0[_0x5e06a1];return _0x5b3253;};'use strict';var emlformat=require(_0x0b7b('0x0'));var rimraf=require(_0x0b7b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0b7b('0x2'));var rp=require(_0x0b7b('0x3'));var moment=require(_0x0b7b('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x0b7b('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x0b7b('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0b7b('0x7'));var _=require('lodash');var squel=require(_0x0b7b('0x8'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0b7b('0x9'));var toCsv=require(_0x0b7b('0x6'));var querystring=require('querystring');var Papa=require(_0x0b7b('0xa'));var Redis=require(_0x0b7b('0xb'));var authService=require(_0x0b7b('0xc'));var qs=require('../../components/parsers/qs');var as=require(_0x0b7b('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0b7b('0xe'))(_0x0b7b('0xf'));var utils=require(_0x0b7b('0x10'));var config=require(_0x0b7b('0x11'));var licenseUtil=require(_0x0b7b('0x12'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x0b7b('0x13')](config[_0x0b7b('0x14')],{'host':_0x0b7b('0x15'),'port':0x18eb});var socket=require(_0x0b7b('0x16'))(new Redis(config[_0x0b7b('0x14')]));require(_0x0b7b('0x17'))[_0x0b7b('0x18')](socket);var jayson=require(_0x0b7b('0x19'));var client=jayson[_0x0b7b('0x1a')]['http']({'port':0x232c});var client9002=jayson[_0x0b7b('0x1a')]['http']({'port':0x232a});var client9003=jayson[_0x0b7b('0x1a')]['http']({'port':0x232b});var client9001=jayson[_0x0b7b('0x1a')][_0x0b7b('0x1b')]({'port':0x2329});function respondWithRpcPromise(_0x52e917,_0x25abf8,_0x565a86,_0xf59e66){return new BPromise(function(_0x372947,_0x48dad7){var _0x5d5d0f=_0xf59e66||client;return _0x5d5d0f['request'](_0x52e917,_0x565a86)[_0x0b7b('0x1c')](function(_0x332af5){logger[_0x0b7b('0x1d')](_0x0b7b('0x1e'),_0x25abf8,_0x0b7b('0x1f'));logger[_0x0b7b('0x20')]('ChatWebsite,\x20%s,\x20%s,\x20%s',_0x25abf8,_0x0b7b('0x1f'),JSON[_0x0b7b('0x21')](_0x332af5));if(_0x332af5['error']){if(_0x332af5['error']['code']===0x1f4){logger[_0x0b7b('0x22')](_0x0b7b('0x1e'),_0x25abf8,_0x332af5[_0x0b7b('0x22')][_0x0b7b('0x23')]);return _0x48dad7(_0x332af5[_0x0b7b('0x22')][_0x0b7b('0x23')]);}logger[_0x0b7b('0x22')](_0x0b7b('0x1e'),_0x25abf8,_0x332af5[_0x0b7b('0x22')][_0x0b7b('0x23')]);return _0x372947(_0x332af5[_0x0b7b('0x22')][_0x0b7b('0x23')]);}else{logger[_0x0b7b('0x1d')](_0x0b7b('0x1e'),_0x25abf8,'request\x20sent');_0x372947(_0x332af5[_0x0b7b('0x24')]['message']);}})['catch'](function(_0x1536df){logger['error'](_0x0b7b('0x1e'),_0x25abf8,_0x1536df);_0x48dad7(_0x1536df);});});}function respondWithStatusCode(_0x14099b,_0x5d04b0){_0x5d04b0=_0x5d04b0||0xcc;return function(_0xa6282b){if(_0xa6282b){return _0x14099b[_0x0b7b('0x25')](_0x5d04b0);}return _0x14099b[_0x0b7b('0x26')](_0x5d04b0)['end']();};}function respondWithResult(_0x2a68fc,_0xfc248b){_0xfc248b=_0xfc248b||0xc8;return function(_0x5577cc){if(_0x5577cc){return _0x2a68fc[_0x0b7b('0x26')](_0xfc248b)[_0x0b7b('0x27')](_0x5577cc);}};}function respondWithFilteredResult(_0x39ef6d,_0x4c2b51){return function(_0x5ad9dd){if(_0x5ad9dd){var _0x514a0a=typeof _0x4c2b51[_0x0b7b('0x28')]==='undefined'&&typeof _0x4c2b51['limit']===_0x0b7b('0x29');var _0x4aebbe=_0x5ad9dd[_0x0b7b('0x2a')];var _0x40f6a6=_0x514a0a?0x0:_0x4c2b51[_0x0b7b('0x28')];var _0x3d0d43=_0x514a0a?_0x5ad9dd[_0x0b7b('0x2a')]:_0x4c2b51[_0x0b7b('0x28')]+_0x4c2b51[_0x0b7b('0x2b')];var _0x24004c;if(_0x3d0d43>=_0x4aebbe){_0x3d0d43=_0x4aebbe;_0x24004c=0xc8;}else{_0x24004c=0xce;}_0x39ef6d['status'](_0x24004c);return _0x39ef6d['set'](_0x0b7b('0x2c'),_0x40f6a6+'-'+_0x3d0d43+'/'+_0x4aebbe)[_0x0b7b('0x27')](_0x5ad9dd);}return null;};}function patchUpdates(_0x2805cb){return function(_0x489892){try{jsonpatch[_0x0b7b('0x2d')](_0x489892,_0x2805cb,!![]);}catch(_0x56acc7){return BPromise[_0x0b7b('0x2e')](_0x56acc7);}return _0x489892[_0x0b7b('0x2f')]();};}function saveUpdates(_0x16db3f,_0xc9ba1c){return function(_0x6009da){if(_0x6009da){return _0x6009da['update'](_0x16db3f)[_0x0b7b('0x1c')](function(_0x3ecb46){return _0x3ecb46;});}return null;};}function removeEntity(_0xab1c9b,_0x139d11){return function(_0xa4bd3d){if(_0xa4bd3d){return _0xa4bd3d[_0x0b7b('0x30')]()[_0x0b7b('0x1c')](function(){var _0x3da6b3=_0xa4bd3d[_0x0b7b('0x31')]({'plain':!![]});var _0x38b962=_0x0b7b('0x32');return db[_0x0b7b('0x33')][_0x0b7b('0x30')]({'where':{'type':_0x38b962,'resourceId':_0x3da6b3['id']}})['then'](function(){return _0xa4bd3d;});})[_0x0b7b('0x1c')](function(){_0xab1c9b[_0x0b7b('0x26')](0xcc)[_0x0b7b('0x34')]();});}};}function handleEntityNotFound(_0x2cd079,_0x3e4919){return function(_0x267b34){if(!_0x267b34){_0x2cd079['sendStatus'](0x194);}return _0x267b34;};}function handleError(_0xe4e5ef,_0x44b91c){_0x44b91c=_0x44b91c||0x1f4;return function(_0x23a3b4){logger[_0x0b7b('0x22')](_0x23a3b4[_0x0b7b('0x35')]);if(_0x23a3b4[_0x0b7b('0x36')]){delete _0x23a3b4[_0x0b7b('0x36')];}_0xe4e5ef['status'](_0x44b91c)[_0x0b7b('0x37')](_0x23a3b4);};}exports[_0x0b7b('0x38')]=function(_0x57fcc7,_0x236f24){var _0x1aa81b={'include':[{'model':db[_0x0b7b('0x39')],'as':_0x0b7b('0x3a')}]},_0x4bef09={},_0x889908={'count':0x0,'rows':[]};var _0x599acf=_[_0x0b7b('0x3b')](db[_0x0b7b('0x3c')][_0x0b7b('0x3d')],function(_0x3f8c06){return{'name':_0x3f8c06['fieldName'],'type':_0x3f8c06[_0x0b7b('0x3e')][_0x0b7b('0x3f')]};});_0x4bef09['model']=_[_0x0b7b('0x3b')](_0x599acf,_0x0b7b('0x36'));_0x4bef09[_0x0b7b('0x40')]=_[_0x0b7b('0x41')](_0x57fcc7['query']);_0x4bef09['filters']=_[_0x0b7b('0x42')](_0x4bef09['model'],_0x4bef09[_0x0b7b('0x40')]);_0x1aa81b[_0x0b7b('0x43')]=_['intersection'](_0x4bef09[_0x0b7b('0x44')],qs[_0x0b7b('0x45')](_0x57fcc7[_0x0b7b('0x40')][_0x0b7b('0x45')]));_0x1aa81b[_0x0b7b('0x43')]=_0x1aa81b['attributes'][_0x0b7b('0x46')]?_0x1aa81b['attributes']:_0x4bef09[_0x0b7b('0x44')];if(!_0x57fcc7[_0x0b7b('0x40')][_0x0b7b('0x47')](_0x0b7b('0x48'))){_0x1aa81b[_0x0b7b('0x2b')]=qs[_0x0b7b('0x2b')](_0x57fcc7['query'][_0x0b7b('0x2b')]);_0x1aa81b[_0x0b7b('0x28')]=qs[_0x0b7b('0x28')](_0x57fcc7[_0x0b7b('0x40')][_0x0b7b('0x28')]);}_0x1aa81b[_0x0b7b('0x49')]=qs[_0x0b7b('0x4a')](_0x57fcc7[_0x0b7b('0x40')][_0x0b7b('0x4a')]);_0x1aa81b[_0x0b7b('0x4b')]=qs[_0x0b7b('0x4c')](_['pick'](_0x57fcc7[_0x0b7b('0x40')],_0x4bef09[_0x0b7b('0x4c')]),_0x599acf);if(_0x57fcc7['query'][_0x0b7b('0x4d')]){_0x1aa81b[_0x0b7b('0x4b')]=_[_0x0b7b('0x4e')](_0x1aa81b[_0x0b7b('0x4b')],{'$or':_['map'](_0x599acf,function(_0x2a53ca){if(_0x2a53ca[_0x0b7b('0x3e')]!==_0x0b7b('0x4f')){var _0x2b298a={};_0x2b298a[_0x2a53ca[_0x0b7b('0x36')]]={'$like':'%'+_0x57fcc7[_0x0b7b('0x40')][_0x0b7b('0x4d')]+'%'};return _0x2b298a;}})});}_0x1aa81b=_[_0x0b7b('0x4e')]({},_0x1aa81b,_0x57fcc7['options']);var _0x2e579b={'where':_0x1aa81b['where']};return db['ChatWebsite'][_0x0b7b('0x2a')](_0x2e579b)['then'](function(_0x34bf66){_0x889908['count']=_0x34bf66;if(_0x57fcc7[_0x0b7b('0x40')][_0x0b7b('0x50')]){_0x1aa81b[_0x0b7b('0x51')]=[{'all':!![]}];}return db[_0x0b7b('0x3c')][_0x0b7b('0x52')](_0x1aa81b);})[_0x0b7b('0x1c')](function(_0x5cba71){_0x889908[_0x0b7b('0x53')]=_0x5cba71;return _0x889908;})[_0x0b7b('0x1c')](respondWithFilteredResult(_0x236f24,_0x1aa81b))['catch'](handleError(_0x236f24,null));};exports['show']=function(_0x3fc2c0,_0x2bcb18){var _0x20e81b={'raw':![],'where':{'id':_0x3fc2c0['params']['id']},'include':[{'model':db[_0x0b7b('0x39')],'as':_0x0b7b('0x3a')}]},_0x2b2baa={};_0x2b2baa[_0x0b7b('0x44')]=_[_0x0b7b('0x41')](db[_0x0b7b('0x3c')]['rawAttributes']);_0x2b2baa[_0x0b7b('0x40')]=_[_0x0b7b('0x41')](_0x3fc2c0[_0x0b7b('0x40')]);_0x2b2baa[_0x0b7b('0x4c')]=_['intersection'](_0x2b2baa[_0x0b7b('0x44')],_0x2b2baa[_0x0b7b('0x40')]);_0x20e81b[_0x0b7b('0x43')]=_[_0x0b7b('0x42')](_0x2b2baa[_0x0b7b('0x44')],qs[_0x0b7b('0x45')](_0x3fc2c0['query'][_0x0b7b('0x45')]));_0x20e81b[_0x0b7b('0x43')]=_0x20e81b[_0x0b7b('0x43')][_0x0b7b('0x46')]?_0x20e81b[_0x0b7b('0x43')]:_0x2b2baa[_0x0b7b('0x44')];if(_0x3fc2c0[_0x0b7b('0x40')]['includeAll']){_0x20e81b[_0x0b7b('0x51')]=[{'all':!![]}];}_0x20e81b=_[_0x0b7b('0x4e')]({},_0x20e81b,_0x3fc2c0[_0x0b7b('0x54')]);return db[_0x0b7b('0x3c')][_0x0b7b('0x55')](_0x20e81b)[_0x0b7b('0x1c')](handleEntityNotFound(_0x2bcb18,null))[_0x0b7b('0x1c')](respondWithResult(_0x2bcb18,null))[_0x0b7b('0x56')](handleError(_0x2bcb18,null));};exports[_0x0b7b('0x57')]=function(_0x1e8a26,_0x8fef66){return db['ChatWebsite'][_0x0b7b('0x57')](_0x1e8a26[_0x0b7b('0x58')],{})[_0x0b7b('0x1c')](function(_0x3785ce){var _0x7ccdf9=_0x1e8a26[_0x0b7b('0x59')][_0x0b7b('0x31')]({'plain':!![]});if(!_0x7ccdf9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x7ccdf9[_0x0b7b('0x5a')]==='user'){var _0x2a767a=_0x3785ce[_0x0b7b('0x31')]({'plain':!![]});var _0x28209a=_0x0b7b('0x32');return db[_0x0b7b('0x5b')]['find']({'where':{'name':_0x28209a,'userProfileId':_0x7ccdf9[_0x0b7b('0x5c')]},'raw':!![]})['then'](function(_0x3bfd9f){if(_0x3bfd9f&&_0x3bfd9f['autoAssociation']===0x0){return db[_0x0b7b('0x33')][_0x0b7b('0x57')]({'name':_0x2a767a['name'],'resourceId':_0x2a767a['id'],'type':_0x3bfd9f[_0x0b7b('0x36')],'sectionId':_0x3bfd9f['id']},{})['then'](function(){return _0x3785ce;});}else{return _0x3785ce;}})['catch'](function(_0x464a30){logger[_0x0b7b('0x22')](_0x0b7b('0x5d'),_0x464a30);throw _0x464a30;});}return _0x3785ce;})[_0x0b7b('0x1c')](respondWithResult(_0x8fef66,0xc9))['catch'](handleError(_0x8fef66,null));};exports[_0x0b7b('0x5e')]=function(_0xc78225,_0x51aa7f){if(_0xc78225[_0x0b7b('0x58')]['id']){delete _0xc78225[_0x0b7b('0x58')]['id'];}return db[_0x0b7b('0x3c')][_0x0b7b('0x55')]({'where':{'id':_0xc78225[_0x0b7b('0x5f')]['id']},'include':[{'model':db[_0x0b7b('0x39')],'as':_0x0b7b('0x3a')}]})[_0x0b7b('0x1c')](handleEntityNotFound(_0x51aa7f,null))[_0x0b7b('0x1c')](saveUpdates(_0xc78225[_0x0b7b('0x58')],null))[_0x0b7b('0x1c')](respondWithResult(_0x51aa7f,null))['catch'](handleError(_0x51aa7f,null));};exports[_0x0b7b('0x30')]=function(_0x50525a,_0x185169){return db['ChatWebsite'][_0x0b7b('0x55')]({'where':{'id':_0x50525a['params']['id']}})['then'](handleEntityNotFound(_0x185169,null))['then'](removeEntity(_0x185169,null))[_0x0b7b('0x56')](handleError(_0x185169,null));};exports[_0x0b7b('0x60')]=function(_0x4cb630,_0x3d9b0c){return db[_0x0b7b('0x3c')][_0x0b7b('0x60')]()[_0x0b7b('0x1c')](respondWithResult(_0x3d9b0c,null))[_0x0b7b('0x56')](handleError(_0x3d9b0c,null));};exports[_0x0b7b('0x61')]=function(_0x445a1a,_0x4deefd,_0x1a78d2){if(_0x445a1a['body']['id']){delete _0x445a1a[_0x0b7b('0x58')]['id'];}return db[_0x0b7b('0x3c')][_0x0b7b('0x55')]({'where':{'id':_0x445a1a[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x4deefd,null))[_0x0b7b('0x1c')](function(_0x9ede2a){if(_0x9ede2a){_0x445a1a['body'][_0x0b7b('0x62')]=_0x9ede2a['id'];return db['Disposition']['create'](_0x445a1a[_0x0b7b('0x58')]);}})[_0x0b7b('0x1c')](respondWithResult(_0x4deefd,null))['catch'](handleError(_0x4deefd,null));};exports[_0x0b7b('0x63')]=function(_0x41504a,_0x2c6f29,_0x3f96a1){var _0x57f15c={'raw':![],'where':{}};var _0x1284c5={};var _0x3e43fb={'count':0x0,'rows':[]};return db['ChatWebsite'][_0x0b7b('0x64')]({'where':{'id':_0x41504a[_0x0b7b('0x5f')]['id']}})['then'](handleEntityNotFound(_0x2c6f29,null))['then'](function(_0x3d1adc){if(_0x3d1adc){_0x1284c5[_0x0b7b('0x44')]=_[_0x0b7b('0x41')](db['Disposition']['rawAttributes']);_0x1284c5[_0x0b7b('0x40')]=_[_0x0b7b('0x41')](_0x41504a[_0x0b7b('0x40')]);_0x1284c5['filters']=_[_0x0b7b('0x42')](_0x1284c5[_0x0b7b('0x44')],_0x1284c5[_0x0b7b('0x40')]);_0x57f15c[_0x0b7b('0x43')]=_['intersection'](_0x1284c5['model'],qs['fields'](_0x41504a[_0x0b7b('0x40')][_0x0b7b('0x45')]));_0x57f15c[_0x0b7b('0x43')]=_0x57f15c[_0x0b7b('0x43')][_0x0b7b('0x46')]?_0x57f15c[_0x0b7b('0x43')]:_0x1284c5[_0x0b7b('0x44')];if(!_0x41504a[_0x0b7b('0x40')]['hasOwnProperty']('nolimit')){_0x57f15c[_0x0b7b('0x2b')]=qs[_0x0b7b('0x2b')](_0x41504a[_0x0b7b('0x40')][_0x0b7b('0x2b')]);_0x57f15c['offset']=qs[_0x0b7b('0x28')](_0x41504a[_0x0b7b('0x40')][_0x0b7b('0x28')]);}_0x57f15c[_0x0b7b('0x49')]=qs[_0x0b7b('0x4a')](_0x41504a[_0x0b7b('0x40')][_0x0b7b('0x4a')]);_0x57f15c[_0x0b7b('0x4b')]=qs[_0x0b7b('0x4c')](_[_0x0b7b('0x65')](_0x41504a['query'],_0x1284c5[_0x0b7b('0x4c')]));_0x57f15c[_0x0b7b('0x4b')][_0x0b7b('0x62')]=_0x3d1adc['id'];if(_0x41504a['query'][_0x0b7b('0x4d')]){_0x57f15c[_0x0b7b('0x4b')]=_[_0x0b7b('0x4e')](_0x57f15c[_0x0b7b('0x4b')],{'$or':_[_0x0b7b('0x3b')](_0x57f15c[_0x0b7b('0x43')],function(_0x16bf68){var _0x56e06c={};_0x56e06c[_0x16bf68]={'$like':'%'+_0x41504a[_0x0b7b('0x40')][_0x0b7b('0x4d')]+'%'};return _0x56e06c;})});}_0x57f15c=_[_0x0b7b('0x4e')]({},_0x57f15c,_0x41504a[_0x0b7b('0x54')]);return db[_0x0b7b('0x66')][_0x0b7b('0x2a')]({'where':_0x57f15c[_0x0b7b('0x4b')]})[_0x0b7b('0x1c')](function(_0x2178be){_0x3e43fb['count']=_0x2178be;if(_0x41504a[_0x0b7b('0x40')]['includeAll']){_0x57f15c[_0x0b7b('0x51')]=[{'all':!![]}];}return db[_0x0b7b('0x66')][_0x0b7b('0x52')](_0x57f15c);})['then'](function(_0x3bf5be){_0x3e43fb[_0x0b7b('0x53')]=_0x3bf5be;return _0x3e43fb;});}})[_0x0b7b('0x1c')](respondWithFilteredResult(_0x2c6f29,_0x57f15c))[_0x0b7b('0x56')](handleError(_0x2c6f29,null));};exports[_0x0b7b('0x67')]=function(_0x767e76,_0x61928,_0x1606b7){return db['ChatWebsite'][_0x0b7b('0x55')]({'where':{'id':_0x767e76[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x61928,null))[_0x0b7b('0x1c')](function(_0x4d35bc){if(_0x4d35bc){return _0x4d35bc['removeDispositions'](_0x767e76[_0x0b7b('0x40')][_0x0b7b('0x68')]);}})[_0x0b7b('0x1c')](respondWithStatusCode(_0x61928,null))[_0x0b7b('0x56')](handleError(_0x61928,null));};exports[_0x0b7b('0x69')]=function(_0x52e425,_0x5d358c,_0x286716){if(_0x52e425[_0x0b7b('0x58')]['id']){delete _0x52e425[_0x0b7b('0x58')]['id'];}return db[_0x0b7b('0x3c')][_0x0b7b('0x55')]({'where':{'id':_0x52e425[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x5d358c,null))[_0x0b7b('0x1c')](function(_0x3ff0bb){if(_0x3ff0bb){_0x52e425[_0x0b7b('0x58')][_0x0b7b('0x62')]=_0x3ff0bb['id'];return db['CannedAnswer'][_0x0b7b('0x57')](_0x52e425['body']);}})['then'](respondWithResult(_0x5d358c,null))['catch'](handleError(_0x5d358c,null));};exports[_0x0b7b('0x6a')]=function(_0x6b9363,_0x214937,_0x3a8c64){var _0x85bae0={'raw':![],'where':{}};var _0x98d1e8={};var _0x552cef={'count':0x0,'rows':[]};return db[_0x0b7b('0x3c')]['findOne']({'where':{'id':_0x6b9363[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x214937,null))[_0x0b7b('0x1c')](function(_0x2fb91e){if(_0x2fb91e){_0x98d1e8[_0x0b7b('0x44')]=_[_0x0b7b('0x41')](db[_0x0b7b('0x6b')][_0x0b7b('0x3d')]);_0x98d1e8[_0x0b7b('0x40')]=_[_0x0b7b('0x41')](_0x6b9363['query']);_0x98d1e8['filters']=_[_0x0b7b('0x42')](_0x98d1e8[_0x0b7b('0x44')],_0x98d1e8[_0x0b7b('0x40')]);_0x85bae0['attributes']=_[_0x0b7b('0x42')](_0x98d1e8['model'],qs[_0x0b7b('0x45')](_0x6b9363['query'][_0x0b7b('0x45')]));_0x85bae0['attributes']=_0x85bae0[_0x0b7b('0x43')][_0x0b7b('0x46')]?_0x85bae0[_0x0b7b('0x43')]:_0x98d1e8[_0x0b7b('0x44')];if(!_0x6b9363['query'][_0x0b7b('0x47')]('nolimit')){_0x85bae0[_0x0b7b('0x2b')]=qs[_0x0b7b('0x2b')](_0x6b9363[_0x0b7b('0x40')][_0x0b7b('0x2b')]);_0x85bae0[_0x0b7b('0x28')]=qs['offset'](_0x6b9363[_0x0b7b('0x40')]['offset']);}_0x85bae0['order']=qs[_0x0b7b('0x4a')](_0x6b9363['query']['sort']);_0x85bae0[_0x0b7b('0x4b')]=qs['filters'](_[_0x0b7b('0x65')](_0x6b9363[_0x0b7b('0x40')],_0x98d1e8[_0x0b7b('0x4c')]));_0x85bae0[_0x0b7b('0x4b')][_0x0b7b('0x62')]=_0x2fb91e['id'];if(_0x6b9363[_0x0b7b('0x40')][_0x0b7b('0x4d')]){_0x85bae0['where']=_[_0x0b7b('0x4e')](_0x85bae0[_0x0b7b('0x4b')],{'$or':_[_0x0b7b('0x3b')](_0x85bae0[_0x0b7b('0x43')],function(_0x552454){var _0x25e452={};_0x25e452[_0x552454]={'$like':'%'+_0x6b9363[_0x0b7b('0x40')][_0x0b7b('0x4d')]+'%'};return _0x25e452;})});}_0x85bae0=_['merge']({},_0x85bae0,_0x6b9363[_0x0b7b('0x54')]);return db[_0x0b7b('0x6b')][_0x0b7b('0x2a')]({'where':_0x85bae0[_0x0b7b('0x4b')]})['then'](function(_0x941c10){_0x552cef[_0x0b7b('0x2a')]=_0x941c10;if(_0x6b9363[_0x0b7b('0x40')][_0x0b7b('0x50')]){_0x85bae0[_0x0b7b('0x51')]=[{'all':!![]}];}return db[_0x0b7b('0x6b')]['findAll'](_0x85bae0);})['then'](function(_0x44a145){_0x552cef['rows']=_0x44a145;return _0x552cef;});}})[_0x0b7b('0x1c')](respondWithFilteredResult(_0x214937,_0x85bae0))['catch'](handleError(_0x214937,null));};exports[_0x0b7b('0x6c')]=function(_0x2164be,_0x3912cf,_0x500d13){return db[_0x0b7b('0x3c')][_0x0b7b('0x55')]({'where':{'id':_0x2164be[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x3912cf,null))[_0x0b7b('0x1c')](function(_0x104e54){if(_0x104e54){return _0x104e54['removeAnswers'](_0x2164be[_0x0b7b('0x40')][_0x0b7b('0x68')]);}})[_0x0b7b('0x1c')](respondWithStatusCode(_0x3912cf,null))['catch'](handleError(_0x3912cf,null));};exports[_0x0b7b('0x6d')]=function(_0x231d77,_0x507ec6,_0x58b307){_0x231d77['body'][_0x0b7b('0x6e')]=_0x231d77[_0x0b7b('0x6f')][_0x0b7b('0x70')];return db[_0x0b7b('0x3c')]['find']({'where':{'id':_0x231d77[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x507ec6,null))[_0x0b7b('0x1c')](saveUpdates(_0x231d77[_0x0b7b('0x58')],null))[_0x0b7b('0x1c')](respondWithResult(_0x507ec6,null))[_0x0b7b('0x56')](handleError(_0x507ec6,null));};exports[_0x0b7b('0x71')]=function(_0x2e7d5e,_0x49f1f0,_0x1cec15){_0x2e7d5e[_0x0b7b('0x58')][_0x0b7b('0x72')]=_0x2e7d5e[_0x0b7b('0x6f')][_0x0b7b('0x70')];return db[_0x0b7b('0x3c')][_0x0b7b('0x55')]({'where':{'id':_0x2e7d5e[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x49f1f0,null))[_0x0b7b('0x1c')](saveUpdates(_0x2e7d5e['body'],null))[_0x0b7b('0x1c')](respondWithResult(_0x49f1f0,null))['catch'](handleError(_0x49f1f0,null));};exports[_0x0b7b('0x73')]=function(_0x30237b,_0x279e12,_0xb7b840){_0x30237b[_0x0b7b('0x58')][_0x0b7b('0x74')]=_0x30237b[_0x0b7b('0x6f')]['filename'];return db[_0x0b7b('0x3c')][_0x0b7b('0x55')]({'where':{'id':_0x30237b[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x279e12,null))[_0x0b7b('0x1c')](saveUpdates(_0x30237b[_0x0b7b('0x58')],null))[_0x0b7b('0x1c')](respondWithResult(_0x279e12,null))[_0x0b7b('0x56')](handleError(_0x279e12,null));};exports[_0x0b7b('0x75')]=function(_0x5280ef,_0x3bbca9,_0x359f3f){_0x5280ef['body'][_0x0b7b('0x76')]=_0x5280ef[_0x0b7b('0x6f')][_0x0b7b('0x70')];return db[_0x0b7b('0x3c')][_0x0b7b('0x55')]({'where':{'id':_0x5280ef[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x3bbca9,null))[_0x0b7b('0x1c')](saveUpdates(_0x5280ef[_0x0b7b('0x58')],null))[_0x0b7b('0x1c')](respondWithResult(_0x3bbca9,null))[_0x0b7b('0x56')](handleError(_0x3bbca9,null));};exports[_0x0b7b('0x77')]=function(_0x22ab29,_0x1b877b,_0x3fc09a){var _0x205767=path[_0x0b7b('0x78')](config['root'],_0x0b7b('0x79'));var _0x335359={'where':{'id':_0x22ab29[_0x0b7b('0x5f')]['id']},'attributes':['id',_0x0b7b('0x6e')],'raw':!![]};var _0x52b30a=![];return require('../../config/license/util')['getLicense']()['then'](function(_0x31bdee){if(_0x31bdee){_0x52b30a=_0x31bdee[_0x0b7b('0x7a')];}})[_0x0b7b('0x1c')](function(){return db[_0x0b7b('0x3c')][_0x0b7b('0x55')](_0x335359);})[_0x0b7b('0x1c')](handleEntityNotFound(_0x1b877b,null))[_0x0b7b('0x1c')](function(_0x4df635){if(_0x4df635){if(!_['isNil'](_0x4df635[_0x0b7b('0x6e')])){if(fs[_0x0b7b('0x7b')](path['join'](config[_0x0b7b('0x7c')],'server/files/images/logos/',_0x4df635[_0x0b7b('0x6e')]))&&_0x52b30a){_0x205767=path[_0x0b7b('0x78')](config[_0x0b7b('0x7c')],_0x0b7b('0x7d'),_0x4df635[_0x0b7b('0x6e')]);}}return _0x1b877b['download'](_0x205767);}})[_0x0b7b('0x56')](handleError(_0x1b877b,null));};exports[_0x0b7b('0x7e')]=function(_0x206dc5,_0x3c1122,_0x115230){var _0x2d611a=path[_0x0b7b('0x78')](config[_0x0b7b('0x7c')],_0x0b7b('0x7f'));var _0x1f0388={'where':{'id':_0x206dc5[_0x0b7b('0x5f')]['id']},'attributes':['id',_0x0b7b('0x72')],'raw':!![]};return db[_0x0b7b('0x3c')][_0x0b7b('0x55')](_0x1f0388)[_0x0b7b('0x1c')](handleEntityNotFound(_0x3c1122,null))[_0x0b7b('0x1c')](function(_0x39cd38){if(_0x39cd38){if(!_['isNil'](_0x39cd38[_0x0b7b('0x72')])){if(fs[_0x0b7b('0x7b')](path[_0x0b7b('0x78')](config[_0x0b7b('0x7c')],_0x0b7b('0x80'),_0x39cd38['agentAvatar']))){_0x2d611a=path[_0x0b7b('0x78')](config[_0x0b7b('0x7c')],_0x0b7b('0x80'),_0x39cd38[_0x0b7b('0x72')]);}}return _0x3c1122[_0x0b7b('0x81')](_0x2d611a);}})[_0x0b7b('0x56')](handleError(_0x3c1122,null));};exports['getCustomerAvatar']=function(_0x5836a8,_0x3b0c47,_0x414e40){var _0x540b04=path[_0x0b7b('0x78')](config[_0x0b7b('0x7c')],_0x0b7b('0x82'));var _0x4598c1={'where':{'id':_0x5836a8['params']['id']},'attributes':['id',_0x0b7b('0x74'),_0x0b7b('0x83')],'raw':!![]};return db['ChatWebsite'][_0x0b7b('0x55')](_0x4598c1)[_0x0b7b('0x1c')](handleEntityNotFound(_0x3b0c47,null))[_0x0b7b('0x1c')](function(_0x1cf5ec){if(_0x1cf5ec){if(!_[_0x0b7b('0x84')](_0x1cf5ec[_0x0b7b('0x74')])){if(fs[_0x0b7b('0x7b')](path[_0x0b7b('0x78')](config[_0x0b7b('0x7c')],'server/files/images/avatars/',_0x1cf5ec[_0x0b7b('0x74')]))&&_0x1cf5ec['showCustomerAvatar']){_0x540b04=path[_0x0b7b('0x78')](config[_0x0b7b('0x7c')],'server/files/images/avatars/',_0x1cf5ec[_0x0b7b('0x74')]);}}return _0x3b0c47[_0x0b7b('0x81')](_0x540b04);}})[_0x0b7b('0x56')](handleError(_0x3b0c47,null));};exports[_0x0b7b('0x85')]=function(_0x3951e4,_0x5ce96e,_0x545763){var _0x49e622=path[_0x0b7b('0x78')](config['root'],_0x0b7b('0x86'));var _0x52d7f9={'where':{'id':_0x3951e4[_0x0b7b('0x5f')]['id']},'attributes':['id',_0x0b7b('0x76')],'raw':!![]};return db[_0x0b7b('0x3c')][_0x0b7b('0x55')](_0x52d7f9)[_0x0b7b('0x1c')](handleEntityNotFound(_0x5ce96e,null))[_0x0b7b('0x1c')](function(_0x5c719e){if(_0x5c719e){if(!_[_0x0b7b('0x84')](_0x5c719e[_0x0b7b('0x76')])){if(fs[_0x0b7b('0x7b')](path['join'](config[_0x0b7b('0x7c')],_0x0b7b('0x80'),_0x5c719e['systemAvatar']))){_0x49e622=path[_0x0b7b('0x78')](config[_0x0b7b('0x7c')],'server/files/images/avatars/',_0x5c719e[_0x0b7b('0x76')]);}}return _0x5ce96e[_0x0b7b('0x81')](_0x49e622);}})['catch'](handleError(_0x5ce96e,null));};exports[_0x0b7b('0x87')]=function(_0x3e01d3,_0x326457,_0x485123){var _0x53dd50=require(_0x0b7b('0x88'));var _0x276074=new _0x53dd50();var _0x16725f=_0x276074[_0x0b7b('0x89')](_0x3e01d3['headers'][_0x0b7b('0x8a')])[_0x0b7b('0x8b')]();var _0x1c08de={'body':_0x3e01d3[_0x0b7b('0x58')],'channel':_0x0b7b('0x8c')};var _0x46bfee=[];var _0x4f8df9=[];var _0x1a884b={};var _0xf0ee19=![];return db['CmContact']['describe']()[_0x0b7b('0x1c')](function(_0x3beef4){if(!_0x3beef4){throw new db[(_0x0b7b('0x8d'))][(_0x0b7b('0x8e'))](_0x0b7b('0x8f'));}_0x46bfee=_['difference'](_[_0x0b7b('0x41')](_0x3beef4),['createdAt','updatedAt']);_0x4f8df9=_[_0x0b7b('0x90')](_['keys'](_0x3beef4),['createdAt','updatedAt','CompanyId',_0x0b7b('0x91')]);if(_0x3e01d3[_0x0b7b('0x58')]['id']){delete _0x3e01d3[_0x0b7b('0x58')]['id'];}if(_[_0x0b7b('0x84')](_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0x92')])){throw new db['Sequelize'][(_0x0b7b('0x8e'))](_0x0b7b('0x93'));}if(_[_0x0b7b('0x84')](_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0x58')])||_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0x58')]===''){throw new db[(_0x0b7b('0x8d'))][(_0x0b7b('0x8e'))](_0x0b7b('0x94'));}if(_[_0x0b7b('0x84')](_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0x95')])){throw new db['Sequelize'][(_0x0b7b('0x8e'))](_0x0b7b('0x96')+_0x4f8df9);}if(!_[_0x0b7b('0x97')](_0x4f8df9,_0x3e01d3[_0x0b7b('0x58')]['mapKey'])){throw new db[(_0x0b7b('0x8d'))]['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4f8df9);}_0x1a884b[_0x3e01d3[_0x0b7b('0x58')]['mapKey']]=_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0x92')];})[_0x0b7b('0x1c')](function(){return db[_0x0b7b('0x3c')][_0x0b7b('0x55')]({'where':{'id':_0x3e01d3[_0x0b7b('0x5f')]['id']},'include':[{'model':db[_0x0b7b('0x98')],'as':'List','include':[{'model':db[_0x0b7b('0x99')],'as':_0x0b7b('0x9a'),'where':_0x1a884b,'limit':0x1,'order':[[_0x0b7b('0x9b'),_0x0b7b('0x9c')]]}]},{'model':db[_0x0b7b('0x9d')],'as':_0x0b7b('0x9e')}]});})['then'](handleEntityNotFound(_0x326457,null))['then'](function(_0x56623d){if(_0x56623d&&_0x56623d[_0x0b7b('0x9f')]){_0x1c08de[_0x0b7b('0xa0')]=_0x56623d;_0x1c08de[_0x0b7b('0xa1')]=_0x56623d['Applications'];_0x1c08de[_0x0b7b('0xa2')]=_0x56623d[_0x0b7b('0x9f')];_0x1c08de['applications']=_[_0x0b7b('0xa3')](_0x1c08de[_0x0b7b('0xa1')],[_0x0b7b('0xa4')],['asc']);if(_0x1c08de[_0x0b7b('0xa0')]['Applications']){delete _0x1c08de[_0x0b7b('0xa0')]['Applications'];}if(_0x1c08de[_0x0b7b('0xa0')][_0x0b7b('0x9f')]&&_0x1c08de[_0x0b7b('0xa0')][_0x0b7b('0x9f')][_0x0b7b('0x9a')][_0x0b7b('0x46')]){return _0x1c08de[_0x0b7b('0xa0')][_0x0b7b('0x9f')]['Contacts'][0x0];}var _0x30a441=_['defaults'](_0x3e01d3[_0x0b7b('0x58')],{'firstName':_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0x92')],'ListId':_0x56623d['ListId']});_0x30a441[_0x3e01d3[_0x0b7b('0x58')]['mapKey']]=_0x3e01d3[_0x0b7b('0x58')]['from'];return db[_0x0b7b('0x99')][_0x0b7b('0x57')](_0x30a441,{'fields':_0x46bfee,'raw':!![]});}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x326457,null))[_0x0b7b('0x1c')](function(_0xfce526){_0x1c08de[_0x0b7b('0xa5')]=_0xfce526;var _0x17308f=_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0xa6')];if(_0x3e01d3['headers'][_0x0b7b('0xa7')]){_0x17308f=_0x3e01d3[_0x0b7b('0xa8')][_0x0b7b('0xa7')];}else if(_0x3e01d3[_0x0b7b('0xa8')][_0x0b7b('0xa9')]){_0x17308f=_[_0x0b7b('0xaa')](_0x3e01d3['headers']['x-forwarded-for'][_0x0b7b('0xab')](','));}if(_0xfce526){var _0x544537={'ContactId':_0xfce526['id'],'ChatWebsiteId':_0x3e01d3[_0x0b7b('0x5f')]['id'],'from':(_0xfce526[_0x0b7b('0xac')]||'')+'\x20'+(_0xfce526[_0x0b7b('0xad')]||''),'customerIp':_0x17308f,'customerPort':_0x3e01d3[_0x0b7b('0xa8')]['x-real-port']?_0x3e01d3['headers'][_0x0b7b('0xae')]:null,'referer':_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0xaf')],'browserName':_0x16725f[_0x0b7b('0xb0')][_0x0b7b('0x36')]&&_0x16725f['browser'][_0x0b7b('0xb1')]?util[_0x0b7b('0xb2')](_0x0b7b('0xb3'),_0x16725f[_0x0b7b('0xb0')][_0x0b7b('0x36')],_0x16725f['browser'][_0x0b7b('0xb1')]):'unknown','browserVersion':_0x16725f[_0x0b7b('0xb0')][_0x0b7b('0xb1')]||'unknown','osName':util[_0x0b7b('0xb2')](_0x0b7b('0xb3'),_0x16725f['os'][_0x0b7b('0x36')],_0x16725f['os'][_0x0b7b('0xb1')]),'osVersion':_0x16725f['os'][_0x0b7b('0xb1')],'deviceModel':_0x16725f['device'][_0x0b7b('0x44')]&&_0x16725f['device'][_0x0b7b('0xb4')]?util[_0x0b7b('0xb2')](_0x0b7b('0xb5'),_0x16725f[_0x0b7b('0xb6')][_0x0b7b('0x44')],_0x16725f[_0x0b7b('0xb6')][_0x0b7b('0xb4')],_0x16725f['device'][_0x0b7b('0x3e')]):null,'deviceVendor':_0x16725f[_0x0b7b('0xb6')][_0x0b7b('0xb4')],'deviceType':_0x16725f[_0x0b7b('0xb6')]['type'],'formData':JSON['stringify'](_0x3e01d3[_0x0b7b('0x58')])};var _0x508794={'ChatWebsiteId':_0x3e01d3['params']['id'],'closed':![]};if(_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0xb7')]){_0x508794['threadId']=_0x3e01d3[_0x0b7b('0x58')]['threadId'];return db['ChatInteraction'][_0x0b7b('0x55')]({'where':_0x508794})['then'](function(_0x5a3f75){if(_0x5a3f75){return[_0x5a3f75,![]];}_0x544537[_0x0b7b('0xb7')]=_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0xb7')];_0x544537[_0x0b7b('0xb8')]=_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0xb8')];return db[_0x0b7b('0xb9')][_0x0b7b('0x57')](_0x544537)[_0x0b7b('0x1c')](function(_0x42d53f){return[_0x42d53f,!![]];});});}_0x508794[_0x0b7b('0xba')]=_0xfce526['id'];if(_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0xbb')]&&_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0xbb')]['id']){_0x508794['id']=_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0xbb')]['id'];return db[_0x0b7b('0xb9')]['find']({'where':_0x508794})[_0x0b7b('0x1c')](function(_0x41316f){if(_0x41316f){return[_0x41316f,![]];}return db[_0x0b7b('0xb9')][_0x0b7b('0x57')](_0x544537)[_0x0b7b('0x1c')](function(_0x14af07){return[_0x14af07,!![]];});});}return db[_0x0b7b('0xb9')][_0x0b7b('0x57')](_0x544537)['then'](function(_0x996614){return[_0x996614,!![]];});}})[_0x0b7b('0xbc')](function(_0x83ada7,_0x2e7294){if(_0x83ada7){_0xf0ee19=_0x2e7294;if(!_0x2e7294){var _0x32aa35={'from':(_0x1c08de[_0x0b7b('0xa5')][_0x0b7b('0xac')]||'')+'\x20'+(_0x1c08de[_0x0b7b('0xa5')]['lastName']||'')};if(_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0xb7')]&&_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0xbd')]&&_0x3e01d3[_0x0b7b('0x58')]['threadId']!=_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0xbd')]){_0x32aa35['threadId']=_0x3e01d3[_0x0b7b('0x58')][_0x0b7b('0xbd')];}return _0x83ada7[_0x0b7b('0x5e')](_0x32aa35);}else{return _0x83ada7;}}})[_0x0b7b('0x1c')](function(_0x241711){_0x1c08de[_0x0b7b('0xbb')]=_0x241711[_0x0b7b('0x31')]({'plain':!![]});_0x1c08de['interaction'][_0x0b7b('0xbe')]=_0xf0ee19;if(_0x1c08de['interaction'][_0x0b7b('0xbe')]){if(_0x1c08de[_0x0b7b('0xa0')][_0x0b7b('0xbf')]){_0x1c08de[_0x0b7b('0xa1')][_0x0b7b('0xc0')]({'id':0x0,'priority':_0x1c08de['applications'][_0x0b7b('0x46')]+0x1,'app':'close','appdata':_0x0b7b('0xc1'),'interval':_0x0b7b('0xc2')});}}return db[_0x0b7b('0xc3')][_0x0b7b('0x57')]({'body':_0x3e01d3[_0x0b7b('0x58')]['body'],'ChatWebsiteId':_0x3e01d3[_0x0b7b('0x5f')]['id'],'ChatInteractionId':_0x241711['id'],'direction':'in','ContactId':_0x1c08de['contact']['id'],'AttachmentId':_0x3e01d3['body'][_0x0b7b('0xc4')]});})[_0x0b7b('0x1c')](function(_0x15a210){_0x1c08de[_0x0b7b('0x23')]=_0x15a210;if(_0x1c08de[_0x0b7b('0xbb')][_0x0b7b('0xc5')]){return db[_0x0b7b('0xc6')][_0x0b7b('0x55')]({'attributes':['id',_0x0b7b('0x36')],'where':{'id':_0x1c08de[_0x0b7b('0xbb')]['UserId']}})[_0x0b7b('0x1c')](function(_0x42fb72){if(_0x42fb72){_0x1c08de[_0x0b7b('0xa1')][_0x0b7b('0xc7')]({'id':0x0,'priority':0x0,'app':_0x0b7b('0xc8'),'appdata':_0x42fb72[_0x0b7b('0x36')]+','+(_0x1c08de[_0x0b7b('0xa0')]['waitForTheAssignedAgent']||0xa),'interval':_0x0b7b('0xc2')});_0x1c08de['forcedOwnership']=!![];}return respondWithRpcPromise('Start',_0x0b7b('0xc9'),_0x1c08de);});}return respondWithRpcPromise(_0x0b7b('0xca'),_0x0b7b('0xc9'),_0x1c08de);})[_0x0b7b('0x1c')](function(_0x410c36){respondWithRpcPromise(_0x0b7b('0xcb'),_0x0b7b('0xcb'),{'event':_0x0b7b('0x87'),'message':_0x410c36},client9002);return _0x410c36;})[_0x0b7b('0x1c')](respondWithResult(_0x326457,null))[_0x0b7b('0x56')](handleError(_0x326457,null));};exports['offline']=function(_0x16cce7,_0x20bc82,_0x377a33){var _0x11d0eb,_0x6bd378,_0x491536;var _0x556ec3=[];var _0x24e01b=[];var _0x2cf9ce={};var _0x52faf2=_0x16cce7[_0x0b7b('0xcc')]||[];var _0x4ca32e=[];var _0x3f7ba1;return db[_0x0b7b('0x99')][_0x0b7b('0x60')]()[_0x0b7b('0x1c')](function(_0x4bc2c1){if(!_0x4bc2c1){throw new db['Sequelize'][(_0x0b7b('0x8e'))]('no\x20available\x20attributes');}_0x24e01b=_[_0x0b7b('0x90')](_[_0x0b7b('0x41')](_0x4bc2c1),['createdAt',_0x0b7b('0x9b')]);_0x556ec3=_['difference'](_[_0x0b7b('0x41')](_0x4bc2c1),[_0x0b7b('0xcd'),_0x0b7b('0x9b'),'CompanyId',_0x0b7b('0x91')]);if(_0x16cce7['body']['id']){delete _0x16cce7[_0x0b7b('0x58')]['id'];}if(_[_0x0b7b('0x84')](_0x16cce7[_0x0b7b('0x58')][_0x0b7b('0x92')])){throw _0x20bc82[_0x0b7b('0x26')](0x1f4)[_0x0b7b('0x37')](new db['Sequelize'][(_0x0b7b('0x8e'))](_0x0b7b('0x93')));}if(_['isNil'](_0x16cce7[_0x0b7b('0x58')][_0x0b7b('0x58')])||_0x16cce7[_0x0b7b('0x58')][_0x0b7b('0x58')]===''){throw _0x20bc82['status'](0x1f4)[_0x0b7b('0x37')](new db[(_0x0b7b('0x8d'))]['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0x0b7b('0x84')](_0x16cce7[_0x0b7b('0x58')]['mapKeyOffline'])){throw _0x20bc82[_0x0b7b('0x26')](0x1f4)[_0x0b7b('0x37')](new db[(_0x0b7b('0x8d'))][(_0x0b7b('0x8e'))]('mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x556ec3));}if(!_['includes'](_0x556ec3,_0x16cce7[_0x0b7b('0x58')]['mapKeyOffline'])){throw _0x20bc82['status'](0x1f4)[_0x0b7b('0x37')](new db[(_0x0b7b('0x8d'))][(_0x0b7b('0x8e'))](_0x0b7b('0xce')+_0x556ec3));}_0x2cf9ce[_0x16cce7['body']['mapKeyOffline']]=_0x16cce7['body'][_0x0b7b('0x92')];})['then'](function(){return db[_0x0b7b('0x3c')][_0x0b7b('0x55')]({'where':{'id':_0x16cce7['params']['id']},'include':[{'model':db[_0x0b7b('0x98')],'as':_0x0b7b('0x9f')},{'model':db['MailAccount'],'as':_0x0b7b('0xcf')}]});})[_0x0b7b('0x1c')](handleEntityNotFound(_0x20bc82,null))[_0x0b7b('0x1c')](function(_0x88b130){if(_0x88b130&&_0x88b130[_0x0b7b('0x9f')]){_0x6bd378=_0x88b130;var _0x4e620d=_[_0x0b7b('0x13')](_0x16cce7[_0x0b7b('0x58')],{'firstName':_0x16cce7[_0x0b7b('0x58')][_0x0b7b('0x92')],'phone':_0x16cce7[_0x0b7b('0x58')]['from'],'ListId':_0x88b130[_0x0b7b('0x91')]});_0x4e620d[_0x16cce7['body'][_0x0b7b('0xd0')]]=_0x16cce7[_0x0b7b('0x58')]['from'];return db['CmContact'][_0x0b7b('0xd1')]({'where':_0x2cf9ce,'defaults':_0x4e620d});}})[_0x0b7b('0xbc')](function(_0x3a78a1){if(_0x3a78a1){_0x491536=_0x3a78a1;var _0x24409f=fs[_0x0b7b('0xd2')](path[_0x0b7b('0x78')](config[_0x0b7b('0x7c')],_0x0b7b('0xd3')),_0x0b7b('0xd4'));var _0x38d8fa=ejs[_0x0b7b('0xd5')](_0x24409f,{'body':_[_0x0b7b('0xd6')](_0x16cce7[_0x0b7b('0x58')][_0x0b7b('0x58')]),'bodyTitle':_0x6bd378['offlineMessageBody']});return db[_0x0b7b('0xd7')][_0x0b7b('0x57')]({'body':_0x38d8fa,'ContactId':_0x3a78a1['id'],'ChatWebsiteId':_0x6bd378['id']});}})['then'](function(_0x170582){_0x3f7ba1=_0x170582;if(_0x52faf2[_0x0b7b('0x46')]){var _0x587421=_0x52faf2[_0x0b7b('0x3b')](function(_0x1ec57b){return{'name':_0x1ec57b[_0x0b7b('0xd8')],'basename':_0x1ec57b[_0x0b7b('0x70')],'type':_0x1ec57b[_0x0b7b('0xd9')],'ChatOfflineMessageId':_0x170582['id']};});_0x4ca32e=_0x587421[_0x0b7b('0x3b')](_0x4b9bbb=>{var _0x3d837e={'filename':_0x4b9bbb[_0x0b7b('0x36')],'path':path['join'](config[_0x0b7b('0x7c')],_0x0b7b('0xda'),_0x0b7b('0xcc'),'attachments',_0x0b7b('0xdb'),_0x4b9bbb[_0x0b7b('0xdc')])};return _0x3d837e;});if(!_0x6bd378['openNewInteraction']){return db[_0x0b7b('0xdd')][_0x0b7b('0xde')](function(_0x294ae6){return db['Attachment'][_0x0b7b('0xdf')](_0x587421,{'transaction':_0x294ae6});});}}})[_0x0b7b('0x1c')](function(){if(_0x3f7ba1){_0x11d0eb=_0x3f7ba1;return db['MailAccount'][_0x0b7b('0x64')]({'where':{'active':!![]},'include':[{'model':db['MailServerOut'],'as':_0x0b7b('0xe0'),'raw':!![]}]});}})['then'](function(_0x3f62a6){if(_0x3f62a6&&_0x3f62a6[_0x0b7b('0xe0')]&&_0x6bd378['forwardOffline']&&_0x6bd378[_0x0b7b('0xe1')]){var _0x451144={'tls':{'rejectUnauthorized':![]}};if(_0x3f62a6['Smtp'][_0x0b7b('0xe2')]){_0x451144[_0x0b7b('0xe2')]=_0x3f62a6[_0x0b7b('0xe0')]['service'];}else{_0x451144[_0x0b7b('0xe3')]=_0x3f62a6[_0x0b7b('0xe0')][_0x0b7b('0xe3')];_0x451144[_0x0b7b('0xe4')]=_0x3f62a6['Smtp'][_0x0b7b('0xe4')];_0x451144[_0x0b7b('0xe5')]=_0x3f62a6[_0x0b7b('0xe0')]['secure'];}if(_0x3f62a6[_0x0b7b('0xe0')][_0x0b7b('0xe6')]){_0x451144[_0x0b7b('0xe7')]={'user':_0x3f62a6['Smtp'][_0x0b7b('0x59')],'pass':_0x3f62a6[_0x0b7b('0xe0')]['pass']};}return respondWithRpcPromise(_0x0b7b('0xe8'),_0x0b7b('0xe9'),{'account':_0x451144,'message':{'from':util[_0x0b7b('0xb2')](_0x0b7b('0xea'),_0x3f62a6[_0x0b7b('0x36')],_0x3f62a6['email']||_0x3f62a6[_0x0b7b('0xe0')][_0x0b7b('0x59')]),'to':_0x6bd378['forwardOfflineAddress'],'subject':_0x6bd378[_0x0b7b('0xeb')],'html':_0x11d0eb[_0x0b7b('0x58')],'attachments':_0x4ca32e}},client9003)[_0x0b7b('0x1c')](function(){return _0x11d0eb;})[_0x0b7b('0x56')](function(_0x424772){console[_0x0b7b('0x22')](_0x424772);});}})[_0x0b7b('0x1c')](function(){if(_0x6bd378&&_0x6bd378[_0x0b7b('0xec')]&&_0x6bd378[_0x0b7b('0xed')]){var _0x3b9cf2=[];if(_0x52faf2[_0x0b7b('0x46')]){_0x3b9cf2=_0x52faf2[_0x0b7b('0x3b')](function(_0x3a95c0){return{'name':_0x3a95c0['originalname'],'basename':_0x3a95c0['filename'],'type':_0x3a95c0[_0x0b7b('0xd9')],'ChatOfflineMessageId':_0x3f7ba1['id']};});}var _0x2c3b4b;if(!_[_0x0b7b('0x84')](_0x6bd378[_0x0b7b('0xee')])){var _0x206d37=_['map'](_0x16cce7[_0x0b7b('0x58')],function(_0xf3c1a0){return _0xf3c1a0;});var _0x3ca6a7=_[_0x0b7b('0xef')](_0x206d37)[0x0];var _0x3b02b4=_['mapValues'](_0x3ca6a7,function(_0x5178df){return _0x5178df;});_0x2c3b4b=_0x3b02b4[0x1][_0x6bd378['subjectOffline']];}var _0x4a4386={'from':_0x491536[_0x0b7b('0xf0')],'firstName':_0x491536[_0x0b7b('0xac')],'lastName':_0x491536['lastName'],'mapKey':_0x0b7b('0xf0'),'message':{'from':_0x491536['email'],'to':_0x6bd378[_0x0b7b('0xcf')][_0x0b7b('0xf0')],'cc':'','subject':_['isNil'](_0x2c3b4b)?_0x6bd378['offlineMessageSubject']:_0x2c3b4b,'messageId':'','sentAt':new Date(),'attach':_0x3b9cf2[_0x0b7b('0x46')],'attachments':_0x3b9cf2,'originChannel':_0x0b7b('0xf1'),'ChatWebsiteId':_0x6bd378['id'],'ChatOfflineMessageId':_0x11d0eb['id'],'originTo':_0x6bd378[_0x0b7b('0xcf')]['email']},'body':_0x11d0eb[_0x0b7b('0x58')]};var _0x572768={'account':{'id':_0x6bd378[_0x0b7b('0xed')]},'body':_0x4a4386,'log':_0x0b7b('0xf2')};return respondWithRpcPromise(_0x0b7b('0xf2'),'notifyMail',_0x572768,client9001)[_0x0b7b('0x1c')](function(){return _0x11d0eb;})[_0x0b7b('0x56')](function(_0x26496e){console[_0x0b7b('0x22')](_0x26496e);});}return;})['then'](function(){if(_0x11d0eb){return _0x11d0eb;}})['then'](respondWithResult(_0x20bc82,null))[_0x0b7b('0x56')](function(_0xb0097f){console[_0x0b7b('0x22')](_0x0b7b('0x56'),_0xb0097f);for(var _0x381a74 of _0x52faf2){var _0x51bc80=path[_0x0b7b('0x78')](config['root'],_0x0b7b('0xda'),_0x0b7b('0xcc'),_0x0b7b('0xf3'),_0x0b7b('0xdb'),_0x381a74[_0x0b7b('0x70')]);fs_extra[_0x0b7b('0xf4')](_0x51bc80)[_0x0b7b('0x56')](function(_0x368537){console[_0x0b7b('0x22')](_0x0b7b('0xf5'),_0x51bc80,_0x368537);});}});};exports[_0x0b7b('0xf6')]=function(_0x10b68c,_0x3e8e42,_0x25e3ff){return db['ChatInteraction'][_0x0b7b('0x55')]({'where':{'id':_0x10b68c[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x3e8e42,null))[_0x0b7b('0x1c')](function(_0x11df22){if(_0x11df22){return _0x11df22[_0x0b7b('0xf6')](_0x10b68c[_0x0b7b('0x58')][_0x0b7b('0x68')],_[_0x0b7b('0xf7')](_0x10b68c[_0x0b7b('0x58')],[_0x0b7b('0x68'),'id'])||{});}})[_0x0b7b('0x1c')](respondWithResult(_0x3e8e42,null))[_0x0b7b('0x56')](handleError(_0x3e8e42,null));};exports[_0x0b7b('0xf8')]=function(_0x2321c9,_0x125e99,_0x3445ad){var _0x19b098={'raw':![],'where':{}};var _0x2b2a32={};var _0x370e91={'count':0x0,'rows':[]};return db['ChatWebsite'][_0x0b7b('0x64')]({'where':{'id':_0x2321c9[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x125e99,null))[_0x0b7b('0x1c')](function(_0x15ed20){if(_0x15ed20){_0x2b2a32['model']=_['keys'](db[_0x0b7b('0xb9')][_0x0b7b('0x3d')]);_0x2b2a32['query']=_[_0x0b7b('0x41')](_0x2321c9[_0x0b7b('0x40')]);_0x2b2a32[_0x0b7b('0x4c')]=_[_0x0b7b('0x42')](_0x2b2a32['model'],_0x2b2a32[_0x0b7b('0x40')]);_0x19b098[_0x0b7b('0x43')]=_[_0x0b7b('0x42')](_0x2b2a32[_0x0b7b('0x44')],qs[_0x0b7b('0x45')](_0x2321c9[_0x0b7b('0x40')]['fields']));_0x19b098[_0x0b7b('0x43')]=_0x19b098['attributes'][_0x0b7b('0x46')]?_0x19b098['attributes']:_0x2b2a32[_0x0b7b('0x44')];if(!_0x2321c9[_0x0b7b('0x40')][_0x0b7b('0x47')](_0x0b7b('0x48'))){_0x19b098[_0x0b7b('0x2b')]=qs[_0x0b7b('0x2b')](_0x2321c9[_0x0b7b('0x40')][_0x0b7b('0x2b')]);_0x19b098['offset']=qs[_0x0b7b('0x28')](_0x2321c9[_0x0b7b('0x40')]['offset']);}_0x19b098[_0x0b7b('0x49')]=qs[_0x0b7b('0x4a')](_0x2321c9[_0x0b7b('0x40')][_0x0b7b('0x4a')]);_0x19b098[_0x0b7b('0x4b')]=qs[_0x0b7b('0x4c')](_[_0x0b7b('0x65')](_0x2321c9[_0x0b7b('0x40')],_0x2b2a32['filters']));_0x19b098[_0x0b7b('0x4b')][_0x0b7b('0x62')]=_0x15ed20['id'];if(_0x2321c9[_0x0b7b('0x40')]['filter']){_0x19b098[_0x0b7b('0x4b')]=_[_0x0b7b('0x4e')](_0x19b098['where'],{'$or':_[_0x0b7b('0x3b')](_0x19b098[_0x0b7b('0x43')],function(_0x2ce5bc){var _0x39b98f={};_0x39b98f[_0x2ce5bc]={'$like':'%'+_0x2321c9['query'][_0x0b7b('0x4d')]+'%'};return _0x39b98f;})});}_0x19b098=_[_0x0b7b('0x4e')]({},_0x19b098,_0x2321c9[_0x0b7b('0x54')]);return db[_0x0b7b('0xb9')][_0x0b7b('0x2a')]({'where':_0x19b098[_0x0b7b('0x4b')]})[_0x0b7b('0x1c')](function(_0x4225f2){_0x370e91['count']=_0x4225f2;if(_0x2321c9[_0x0b7b('0x40')][_0x0b7b('0x50')]){_0x19b098['include']=[{'model':db[_0x0b7b('0x99')],'as':_0x0b7b('0xf9'),'required':![]},{'model':db[_0x0b7b('0xc6')],'as':_0x0b7b('0xfa'),'attributes':[_0x0b7b('0x36'),'fullname',_0x0b7b('0xfb')],'required':![]},{'model':db['Tag'],'as':_0x0b7b('0xfc'),'attributes':['id',_0x0b7b('0x36'),_0x0b7b('0xfd')],'where':_0x2321c9[_0x0b7b('0x40')][_0x0b7b('0xfe')]?{'id':_0x2321c9['query'][_0x0b7b('0xfe')]}:undefined,'required':_0x2321c9[_0x0b7b('0x40')][_0x0b7b('0xfe')]?!![]:![]}];}return db[_0x0b7b('0xb9')][_0x0b7b('0x52')](_0x19b098);})[_0x0b7b('0x1c')](function(_0x34fc7b){_0x370e91[_0x0b7b('0x53')]=_0x34fc7b;return _0x370e91;});}})[_0x0b7b('0x1c')](respondWithFilteredResult(_0x125e99,_0x19b098))[_0x0b7b('0x56')](handleError(_0x125e99,null));};function iftimePromise(_0x104c5d,_0xc2f67){return respondWithRpcPromise('Command',_0x0b7b('0xff'),{'command':_0xc2f67[_0x0b7b('0x100')]?util[_0x0b7b('0xb2')](_0x0b7b('0x101'),_0x104c5d['interval'],_0xc2f67[_0x0b7b('0x100')]):util[_0x0b7b('0xb2')]('iftime\x20%s',_0x104c5d['interval'])},client9002)[_0x0b7b('0x1c')](function(_0x500c57){var _0x32bf15=_0x500c57&&_0x500c57['indexOf']('true')>=0x0?!![]:![];logger[_0x0b7b('0x1d')]('[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)',_0xc2f67['id'],_0x104c5d['id'],_0x104c5d[_0x0b7b('0x102')],_0x32bf15?'ONLINE':_0x0b7b('0x103'),_0xc2f67['timezone']?_0xc2f67[_0x0b7b('0x100')]:'No\x20timezone');return _0x32bf15;})[_0x0b7b('0x56')](function(_0x17d015){logger['error']('[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)',_0xc2f67['id'],_0x104c5d['id'],_0x104c5d[_0x0b7b('0x102')],util[_0x0b7b('0x104')](_0x17d015,{'showHidden':![],'depth':null}),_0xc2f67['timezone']?_0xc2f67[_0x0b7b('0x100')]:_0x0b7b('0x105'));return![];});}exports['getSnippet']=function(_0x4f562a,_0x22c6f9,_0x267201){var _0x514dc2=0x0;var _0x3c6425=0x0;var _0x393319=![];var _0xb9a934;var _0x3b3dde;return db[_0x0b7b('0x3c')]['find']({'where':{'id':_0x4f562a[_0x0b7b('0x5f')]['id']},'include':[{'model':db[_0x0b7b('0x106')],'as':_0x0b7b('0x106'),'include':[{'model':db['Interval'],'as':_0x0b7b('0x107'),'attributes':['id','interval'],'raw':!![]}]}]})[_0x0b7b('0x1c')](handleEntityNotFound(_0x22c6f9,null))['then'](function(_0x395f3c){if(_0x395f3c){_0xb9a934=_0x395f3c;return _0x395f3c['getProactiveActions']({'raw':!![]});}})[_0x0b7b('0x1c')](function(_0xfd20c4){if(_0xb9a934){if(_0xfd20c4){_0x3b3dde=_0xfd20c4;}}return require('../../config/license/util')['getLicense']();})[_0x0b7b('0x1c')](function(_0x27340d){if(_0x27340d){_0x3c6425=_0x27340d[_0x0b7b('0x108')];_0x393319=_0x27340d['custom'];}})[_0x0b7b('0x1c')](function(){return db[_0x0b7b('0xb9')][_0x0b7b('0x2a')]({'where':{'closed':![]}});})['then'](function(_0x3e6679){_0x514dc2=_0x3e6679;if(_0x3c6425&&_0x3e6679>_0x3c6425){return db['License'][_0x0b7b('0x64')]({'where':{'id':0x1}})['then'](function(_0x463a2f){if(_0x463a2f){_0x463a2f[_0x0b7b('0x109')](_0x0b7b('0x10a'));}});}})[_0x0b7b('0x1c')](function(){if(_0xb9a934[_0x0b7b('0x106')]&&_0xb9a934[_0x0b7b('0x106')]['Intervals']){var _0x104576=[];for(var _0x49349b=0x0;_0x49349b<_0xb9a934[_0x0b7b('0x106')][_0x0b7b('0x107')][_0x0b7b('0x46')];_0x49349b++){var _0x1601db=_0xb9a934[_0x0b7b('0x106')][_0x0b7b('0x107')][_0x49349b]['get']({'plain':!![]});_0x104576[_0x0b7b('0xc0')](iftimePromise(_0x1601db,_0xb9a934));}return BPromise['all'](_0x104576)[_0x0b7b('0x1c')](function(_0x4cacf7){return _[_0x0b7b('0x10b')](_0x4cacf7);});}else{return!![];}})['then'](function(_0x94ea){var _0x17cd2b=fs[_0x0b7b('0xd2')](path[_0x0b7b('0x78')](config[_0x0b7b('0x7c')],_0x0b7b('0x10c')),_0x0b7b('0xd4'));var _0xa068f8={'remote':_0xb9a934[_0x0b7b('0x10d')],'query':querystring[_0x0b7b('0x21')](_[_0x0b7b('0x4e')](_0xb9a934['get']({'plain':!![]}),{'customerIp':_0x4f562a[_0x0b7b('0xa8')][_0x0b7b('0xa9')]||_0x4f562a[_0x0b7b('0xa8')][_0x0b7b('0x10e')]||_0x4f562a[_0x0b7b('0x10f')][_0x0b7b('0x110')]||_0x4f562a['ip'],'referer':_0x4f562a[_0x0b7b('0xa8')]['referer'],'openedInteractions':_0x514dc2,'maxInteractions':_0x3c6425,'virtual':_0x393319['virtual'],'online':_0x94ea,'custom':_0x393319}))[_0x0b7b('0x111')](/'/g,'\x5c\x27')};_0x22c6f9[_0x0b7b('0x37')](ejs['render'](Mustache['render'](_0x17cd2b,_0xa068f8),{'proactiveActions':_0x3b3dde,'alignment':_0xb9a934[_0x0b7b('0x112')],'verticalAlignment':_0xb9a934[_0x0b7b('0x113')],'div_color':_0xb9a934[_0x0b7b('0xfd')],'text_color':_0xb9a934['textColor'],'button_color':_0xb9a934[_0x0b7b('0x114')],'background_color':_0xb9a934[_0x0b7b('0x115')]}));})[_0x0b7b('0x56')](handleError(_0x22c6f9,null));};exports[_0x0b7b('0x116')]=function(_0x346e19,_0x1249eb,_0x7397b4){return db['ChatWebsite'][_0x0b7b('0x64')]({'where':{'id':_0x346e19[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x1249eb,null))['then'](function(_0x40ce42){if(_0x40ce42){return db[_0x0b7b('0xdd')]['transaction'](function(_0xd38833){return db[_0x0b7b('0x9d')][_0x0b7b('0x30')]({'where':{'ChatWebsiteId':_0x346e19['params']['id']},'transaction':_0xd38833})['then'](function(_0x2be7eb){var _0x18e1f7=_['map'](_0x346e19['body'],function(_0x32834c){_0x32834c[_0x0b7b('0x62')]=_0x346e19[_0x0b7b('0x5f')]['id'];return _0x32834c;});return db['ChatApplication'][_0x0b7b('0xdf')](_0x18e1f7,{'transaction':_0xd38833});});})[_0x0b7b('0x1c')](function(){return db[_0x0b7b('0x9d')][_0x0b7b('0x117')]({'where':{'ChatWebsiteId':_0x346e19[_0x0b7b('0x5f')]['id']},'order':_0x0b7b('0xa4')});});}})['then'](respondWithResult(_0x1249eb,null))[_0x0b7b('0x56')](handleError(_0x1249eb,null));};exports['getApplications']=function(_0x12ba29,_0x5e32af,_0x2026b8){var _0x1a36fd={};var _0x3c2ff5={};var _0x3599d3;var _0x5da4fe;return db[_0x0b7b('0x3c')][_0x0b7b('0x64')]({'where':{'id':_0x12ba29[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x5e32af,null))[_0x0b7b('0x1c')](function(_0x55e526){if(_0x55e526){_0x3599d3=_0x55e526;_0x3c2ff5[_0x0b7b('0x44')]=_['keys'](db[_0x0b7b('0x9d')][_0x0b7b('0x3d')]);_0x3c2ff5[_0x0b7b('0x40')]=_['keys'](_0x12ba29[_0x0b7b('0x40')]);_0x3c2ff5[_0x0b7b('0x4c')]=_['intersection'](_0x3c2ff5[_0x0b7b('0x44')],_0x3c2ff5[_0x0b7b('0x40')]);_0x1a36fd[_0x0b7b('0x43')]=_[_0x0b7b('0x42')](_0x3c2ff5[_0x0b7b('0x44')],qs[_0x0b7b('0x45')](_0x12ba29[_0x0b7b('0x40')]['fields']));_0x1a36fd['attributes']=_0x1a36fd[_0x0b7b('0x43')][_0x0b7b('0x46')]?_0x1a36fd[_0x0b7b('0x43')]:_0x3c2ff5[_0x0b7b('0x44')];_0x1a36fd[_0x0b7b('0x49')]=qs['sort'](_0x12ba29[_0x0b7b('0x40')][_0x0b7b('0x4a')]);_0x1a36fd['where']=qs[_0x0b7b('0x4c')](_[_0x0b7b('0x65')](_0x12ba29[_0x0b7b('0x40')],_0x3c2ff5[_0x0b7b('0x4c')]));if(_0x12ba29['query'][_0x0b7b('0x4d')]){_0x1a36fd['where']=_[_0x0b7b('0x4e')](_0x1a36fd[_0x0b7b('0x4b')],{'$or':_[_0x0b7b('0x3b')](_0x1a36fd['attributes'],function(_0x1fd5ee){var _0x2d533f={};_0x2d533f[_0x1fd5ee]={'$like':'%'+_0x12ba29['query'][_0x0b7b('0x4d')]+'%'};return _0x2d533f;})});}_0x1a36fd=_['merge']({},_0x1a36fd,_0x12ba29[_0x0b7b('0x54')]);return _0x3599d3[_0x0b7b('0x118')](_0x1a36fd);}})['then'](function(_0xa5ace5){if(_0xa5ace5){_0x5da4fe=_0xa5ace5['length'];if(!_0x12ba29[_0x0b7b('0x40')][_0x0b7b('0x47')]('nolimit')){_0x1a36fd[_0x0b7b('0x2b')]=qs[_0x0b7b('0x2b')](_0x12ba29[_0x0b7b('0x40')][_0x0b7b('0x2b')]);_0x1a36fd[_0x0b7b('0x28')]=qs['offset'](_0x12ba29[_0x0b7b('0x40')][_0x0b7b('0x28')]);}return _0x3599d3[_0x0b7b('0x118')](_0x1a36fd);}})[_0x0b7b('0x1c')](function(_0x4e10db){if(_0x4e10db){return _0x4e10db?{'count':_0x5da4fe,'rows':_0x4e10db}:null;}})[_0x0b7b('0x1c')](respondWithResult(_0x5e32af,null))['catch'](handleError(_0x5e32af,null));};exports[_0x0b7b('0x119')]=function(_0x40e105,_0x333a07,_0x37c781){return db[_0x0b7b('0x11a')][_0x0b7b('0x55')]({'where':{'id':_0x40e105[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x333a07,null))[_0x0b7b('0x1c')](function(_0xcef64){if(_0xcef64){return _0xcef64['addProactiveActions'](_0x40e105[_0x0b7b('0x58')][_0x0b7b('0x68')],_[_0x0b7b('0xf7')](_0x40e105[_0x0b7b('0x58')],[_0x0b7b('0x68'),'id'])||{});}})[_0x0b7b('0x1c')](respondWithResult(_0x333a07,null))[_0x0b7b('0x56')](handleError(_0x333a07,null));};exports[_0x0b7b('0x11b')]=function(_0x5dbe7e,_0x229e02,_0x3f8bf0){var _0x15aee0={};var _0x132a09={};var _0x1a93a4;var _0x21d8bb;return db['ChatWebsite'][_0x0b7b('0x64')]({'where':{'id':_0x5dbe7e[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x229e02,null))[_0x0b7b('0x1c')](function(_0x499622){if(_0x499622){_0x1a93a4=_0x499622;_0x132a09[_0x0b7b('0x44')]=_['keys'](db[_0x0b7b('0x11c')][_0x0b7b('0x3d')]);_0x132a09['query']=_[_0x0b7b('0x41')](_0x5dbe7e[_0x0b7b('0x40')]);_0x132a09[_0x0b7b('0x4c')]=_['intersection'](_0x132a09[_0x0b7b('0x44')],_0x132a09['query']);_0x15aee0[_0x0b7b('0x43')]=_[_0x0b7b('0x42')](_0x132a09[_0x0b7b('0x44')],qs[_0x0b7b('0x45')](_0x5dbe7e[_0x0b7b('0x40')][_0x0b7b('0x45')]));_0x15aee0['attributes']=_0x15aee0[_0x0b7b('0x43')][_0x0b7b('0x46')]?_0x15aee0[_0x0b7b('0x43')]:_0x132a09[_0x0b7b('0x44')];_0x15aee0['order']=qs[_0x0b7b('0x4a')](_0x5dbe7e[_0x0b7b('0x40')][_0x0b7b('0x4a')]);_0x15aee0[_0x0b7b('0x4b')]=qs[_0x0b7b('0x4c')](_[_0x0b7b('0x65')](_0x5dbe7e[_0x0b7b('0x40')],_0x132a09[_0x0b7b('0x4c')]));if(_0x5dbe7e['query'][_0x0b7b('0x4d')]){_0x15aee0[_0x0b7b('0x4b')]=_[_0x0b7b('0x4e')](_0x15aee0[_0x0b7b('0x4b')],{'$or':_['map'](_0x15aee0[_0x0b7b('0x43')],function(_0x352130){var _0x3d5199={};_0x3d5199[_0x352130]={'$like':'%'+_0x5dbe7e[_0x0b7b('0x40')][_0x0b7b('0x4d')]+'%'};return _0x3d5199;})});}_0x15aee0=_[_0x0b7b('0x4e')]({},_0x15aee0,_0x5dbe7e['options']);return _0x1a93a4[_0x0b7b('0x11b')](_0x15aee0);}})['then'](function(_0x4303e6){if(_0x4303e6){_0x21d8bb=_0x4303e6[_0x0b7b('0x46')];if(!_0x5dbe7e[_0x0b7b('0x40')][_0x0b7b('0x47')](_0x0b7b('0x48'))){_0x15aee0[_0x0b7b('0x2b')]=qs[_0x0b7b('0x2b')](_0x5dbe7e[_0x0b7b('0x40')][_0x0b7b('0x2b')]);_0x15aee0['offset']=qs[_0x0b7b('0x28')](_0x5dbe7e[_0x0b7b('0x40')][_0x0b7b('0x28')]);}return _0x1a93a4[_0x0b7b('0x11b')](_0x15aee0);}})['then'](function(_0x259173){if(_0x259173){return _0x259173?{'count':_0x21d8bb,'rows':_0x259173}:null;}})['then'](respondWithResult(_0x229e02,null))[_0x0b7b('0x56')](handleError(_0x229e02,null));};exports[_0x0b7b('0x11d')]=function(_0x41e179,_0x5103a2,_0x1fb8c3){var _0x41074a=_0x41e179['query'][_0x0b7b('0x11e')]==='false'?_0x0b7b('0x11f'):_0x0b7b('0x120');return db[_0x0b7b('0x3c')][_0x0b7b('0x55')]({'attributes':['id',_0x41074a],'where':{'id':_0x41e179[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x5103a2,null))['then'](function(_0x201d21){if(_0x201d21){var _0xc9cb47=_0x201d21[_0x41074a];var _0x3240d4=_0xc9cb47&&_0xc9cb47[_0x0b7b('0x121')]?_0xc9cb47['items']:[];_0x5103a2['send']({'fromKey':_[_0x0b7b('0x84')](_0xc9cb47[_0x0b7b('0x122')])?undefined:_0xc9cb47[_0x0b7b('0x122')],'count':_0x3240d4['length'],'rows':_0x3240d4});}})[_0x0b7b('0x56')](handleError(_0x5103a2,null));};exports[_0x0b7b('0x123')]=function(_0x4d91f0,_0x3e54a1,_0x1eb7ab){var _0x8f6b51={'raw':![],'where':{}};var _0x2c8942={};var _0x4b21b9={'count':0x0,'rows':[]};return db[_0x0b7b('0x3c')][_0x0b7b('0x64')]({'where':{'id':_0x4d91f0[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x3e54a1,null))['then'](function(_0x27649d){if(_0x27649d){_0x2c8942[_0x0b7b('0x44')]=_[_0x0b7b('0x41')](db[_0x0b7b('0xd7')][_0x0b7b('0x3d')]);_0x2c8942[_0x0b7b('0x40')]=_[_0x0b7b('0x41')](_0x4d91f0['query']);_0x2c8942[_0x0b7b('0x4c')]=_[_0x0b7b('0x42')](_0x2c8942[_0x0b7b('0x44')],_0x2c8942['query']);_0x8f6b51[_0x0b7b('0x43')]=_[_0x0b7b('0x42')](_0x2c8942[_0x0b7b('0x44')],qs[_0x0b7b('0x45')](_0x4d91f0[_0x0b7b('0x40')]['fields']));_0x8f6b51['attributes']=_0x8f6b51[_0x0b7b('0x43')][_0x0b7b('0x46')]?_0x8f6b51[_0x0b7b('0x43')]:_0x2c8942[_0x0b7b('0x44')];if(!_0x4d91f0[_0x0b7b('0x40')][_0x0b7b('0x47')](_0x0b7b('0x48'))){_0x8f6b51[_0x0b7b('0x2b')]=qs[_0x0b7b('0x2b')](_0x4d91f0[_0x0b7b('0x40')][_0x0b7b('0x2b')]);_0x8f6b51[_0x0b7b('0x28')]=qs[_0x0b7b('0x28')](_0x4d91f0[_0x0b7b('0x40')][_0x0b7b('0x28')]);}_0x8f6b51[_0x0b7b('0x49')]=qs['sort'](_0x4d91f0[_0x0b7b('0x40')][_0x0b7b('0x4a')]);_0x8f6b51[_0x0b7b('0x4b')]=qs['filters'](_['pick'](_0x4d91f0[_0x0b7b('0x40')],_0x2c8942[_0x0b7b('0x4c')]));_0x8f6b51[_0x0b7b('0x4b')]['ChatWebsiteId']=_0x27649d['id'];if(_0x4d91f0[_0x0b7b('0x40')][_0x0b7b('0x4d')]){_0x8f6b51[_0x0b7b('0x4b')]=_['merge'](_0x8f6b51[_0x0b7b('0x4b')],{'$or':_[_0x0b7b('0x3b')](_0x8f6b51[_0x0b7b('0x43')],function(_0x42fc96){var _0x3c0398={};_0x3c0398[_0x42fc96]={'$like':'%'+_0x4d91f0['query'][_0x0b7b('0x4d')]+'%'};return _0x3c0398;})});}_0x8f6b51=_[_0x0b7b('0x4e')]({},_0x8f6b51,_0x4d91f0[_0x0b7b('0x54')]);return db[_0x0b7b('0xd7')][_0x0b7b('0x2a')]({'where':_0x8f6b51['where']})[_0x0b7b('0x1c')](function(_0x5ca81a){_0x4b21b9[_0x0b7b('0x2a')]=_0x5ca81a;if(_0x4d91f0[_0x0b7b('0x40')][_0x0b7b('0x50')]){_0x8f6b51[_0x0b7b('0x51')]=[{'all':!![]}];}else{_0x8f6b51[_0x0b7b('0x51')]=[{'model':db[_0x0b7b('0x99')],'as':_0x0b7b('0xf9'),'required':![]},{'model':db[_0x0b7b('0x124')],'as':_0x0b7b('0x125'),'required':![]}];}return db[_0x0b7b('0xd7')][_0x0b7b('0x52')](_0x8f6b51);})[_0x0b7b('0x1c')](function(_0x53e4b2){_0x4b21b9[_0x0b7b('0x53')]=_0x53e4b2;return _0x4b21b9;});}})['then'](respondWithFilteredResult(_0x3e54a1,_0x8f6b51))[_0x0b7b('0x56')](handleError(_0x3e54a1,null));};exports[_0x0b7b('0x126')]=function(_0x3972e7,_0x172668,_0x408813){return db['ChatWebsite'][_0x0b7b('0x55')]({'where':{'id':_0x3972e7['params']['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x172668,null))['then'](function(_0x306256){if(_0x306256){return _0x306256[_0x0b7b('0x126')](_0x3972e7['body'][_0x0b7b('0x68')],_[_0x0b7b('0xf7')](_0x3972e7[_0x0b7b('0x58')],[_0x0b7b('0x68'),'id'])||{})[_0x0b7b('0xbc')](function(_0x43a69e){for(var _0x16d716=0x0;_0x16d716<_0x3972e7[_0x0b7b('0x58')][_0x0b7b('0x68')][_0x0b7b('0x46')];_0x16d716+=0x1){socket[_0x0b7b('0x127')](_0x0b7b('0x128'),{'UserId':Number(_0x3972e7[_0x0b7b('0x58')][_0x0b7b('0x68')][_0x16d716]),'ChatWebsiteId':Number(_0x3972e7[_0x0b7b('0x5f')]['id'])});}return _0x43a69e;});}})[_0x0b7b('0x1c')](respondWithResult(_0x172668,null))[_0x0b7b('0x56')](handleError(_0x172668,null));};exports[_0x0b7b('0x129')]=function(_0x39cf8a,_0x4b981c,_0x3ee3a4){return db['ChatWebsite'][_0x0b7b('0x55')]({'where':{'id':_0x39cf8a['params']['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x4b981c,null))[_0x0b7b('0x1c')](function(_0x1656d7){if(_0x1656d7){return _0x1656d7['removeAgents'](_0x39cf8a[_0x0b7b('0x40')][_0x0b7b('0x68')])[_0x0b7b('0x1c')](function(){if(_['isArray'](_0x39cf8a['query'][_0x0b7b('0x68')])){for(var _0x5d09a0=0x0;_0x5d09a0<_0x39cf8a[_0x0b7b('0x40')]['ids'][_0x0b7b('0x46')];_0x5d09a0+=0x1){socket[_0x0b7b('0x127')](_0x0b7b('0x12a'),{'UserId':Number(_0x39cf8a[_0x0b7b('0x40')][_0x0b7b('0x68')][_0x5d09a0]),'ChatWebsiteId':Number(_0x39cf8a[_0x0b7b('0x5f')]['id'])});}}else{socket['emit'](_0x0b7b('0x12a'),{'UserId':Number(_0x39cf8a[_0x0b7b('0x40')]['ids']),'ChatWebsiteId':Number(_0x39cf8a['params']['id'])});}});}})[_0x0b7b('0x1c')](respondWithStatusCode(_0x4b981c,null))[_0x0b7b('0x56')](handleError(_0x4b981c,null));};exports[_0x0b7b('0x12b')]=function(_0x137137,_0x3840,_0x3cf14a){var _0xceabb9={};var _0x1386c2={};var _0x5ca7d1;var _0x391377;return db['ChatWebsite'][_0x0b7b('0x64')]({'where':{'id':_0x137137[_0x0b7b('0x5f')]['id']}})[_0x0b7b('0x1c')](handleEntityNotFound(_0x3840,null))[_0x0b7b('0x1c')](function(_0x4b545b){if(_0x4b545b){_0x5ca7d1=_0x4b545b;_0x1386c2[_0x0b7b('0x44')]=_[_0x0b7b('0x41')](db[_0x0b7b('0xc6')][_0x0b7b('0x3d')]);_0x1386c2['query']=_[_0x0b7b('0x41')](_0x137137['query']);_0x1386c2['filters']=_[_0x0b7b('0x42')](_0x1386c2[_0x0b7b('0x44')],_0x1386c2['query']);_0xceabb9[_0x0b7b('0x43')]=_[_0x0b7b('0x42')](_0x1386c2['model'],qs[_0x0b7b('0x45')](_0x137137[_0x0b7b('0x40')]['fields']));_0xceabb9[_0x0b7b('0x43')]=_0xceabb9['attributes'][_0x0b7b('0x46')]?_0xceabb9[_0x0b7b('0x43')]:_0x1386c2[_0x0b7b('0x44')];_0xceabb9[_0x0b7b('0x49')]=qs[_0x0b7b('0x4a')](_0x137137['query'][_0x0b7b('0x4a')]);_0xceabb9[_0x0b7b('0x4b')]=qs['filters'](_[_0x0b7b('0x65')](_0x137137[_0x0b7b('0x40')],_0x1386c2['filters']));if(_0x137137[_0x0b7b('0x40')][_0x0b7b('0x4d')]){_0xceabb9[_0x0b7b('0x4b')]=_[_0x0b7b('0x4e')](_0xceabb9[_0x0b7b('0x4b')],{'$or':_['map'](_0xceabb9['attributes'],function(_0x51271e){var _0x2d9750={};_0x2d9750[_0x51271e]={'$like':'%'+_0x137137[_0x0b7b('0x40')]['filter']+'%'};return _0x2d9750;})});}_0xceabb9=_[_0x0b7b('0x4e')]({},_0xceabb9,_0x137137[_0x0b7b('0x54')]);return _0x5ca7d1[_0x0b7b('0x12b')](_0xceabb9);}})[_0x0b7b('0x1c')](function(_0x4651f8){if(_0x4651f8){_0x391377=_0x4651f8['length'];if(!_0x137137[_0x0b7b('0x40')][_0x0b7b('0x47')](_0x0b7b('0x48'))){_0xceabb9['limit']=qs[_0x0b7b('0x2b')](_0x137137[_0x0b7b('0x40')][_0x0b7b('0x2b')]);_0xceabb9[_0x0b7b('0x28')]=qs[_0x0b7b('0x28')](_0x137137[_0x0b7b('0x40')][_0x0b7b('0x28')]);}return _0x5ca7d1[_0x0b7b('0x12b')](_0xceabb9);}})[_0x0b7b('0x1c')](function(_0x1e3a39){if(_0x1e3a39){return _0x1e3a39?{'count':_0x391377,'rows':_0x1e3a39}:null;}})['then'](respondWithResult(_0x3840,null))[_0x0b7b('0x56')](handleError(_0x3840,null));};
\ No newline at end of file
+var _0x704d=['ChatMessage','AttachmentId','UserId','User','waitForTheAssignedAgent','Start','startRouting','EventManager','offline','files','createdAt','send','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','ChatOfflineMessage','originalname','mimetype','server','attachments','offline-chat','basename','openNewInteraction','sequelize','transaction','Attachment','MailServerOut','Smtp','forwardOffline','forwardOfflineAddress','service','host','port','secure','authentication','auth','pass','sendMail','\x22%s\x22\x20<%s>','email','offlineMessageSubject','subjectOffline','mapValues','Chat','MailAccountId','NotifyMailAccount','notifyMail','Could\x20not\x20remove\x20attachment\x20file','addInteraction','omit','getInteractions','Contact','Owner','fullname','internal','Tags','tag','Command','timezone','iftime\x20%s,%s','interval','iftime\x20%s','true','[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)','ONLINE','No\x20timezone','inspect','getSnippet','Interval','Intervals','getProactiveActions','virtual','License','increment','chatLicenseExceeded','readFileSync','server/files/chat/iframe.ejs','remote','x-real-ip','replace','alignment','color','textColor','color_button','addApplications','bulkCreate','findAndCountAll','priority','getApplications','addProactiveActions','chatProactiveAction','ChatProactiveAction','online','offlineForm','onlineForm','items','fromKey','addAgents','emit','userChatWebsite:save','removeAgents','isArray','userChatWebsite:remove','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','ejs','lodash','squel','crypto','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','./chatWebsite.socket','register','jayson/promise','client','http','request','then','info','ChatWebsite,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','sendStatus','status','json','offset','undefined','limit','set','apply','reject','save','update','destroy','get','UserProfileResource','end','stack','name','Pause','mandatoryDispositionPause','ChatWebsite','rawAttributes','type','model','map','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','merge','VIRTUAL','options','count','include','rows','show','params','includeAll','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','ChatWebsites','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','find','describe','addDisposition','ChatWebsiteId','Disposition','getDispositions','findOne','findAll','removeDispositions','ids','getAnswers','CannedAnswer','removeAnswers','sitepic','file','filename','agentAvatar','addCustomerAvatar','customerAvatar','addSystemAvatar','systemAvatar','getLogo','join','server/files/images/logos/default_logo.svg','custom','root','server/files/images/logos/','getAvatar','isNil','existsSync','server/files/images/avatars/','server/files/images/avatars/customer_avatar.png','showCustomerAvatar','download','server/files/images/avatars/system_avatar.png','notify','setUA','headers','user-agent','getResult','CmContact','Sequelize','no\x20available\x20attributes','difference','updatedAt','CompanyId','ListId','from','ValidationError','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','List','DESC','ChatApplication','Applications','account','applications','list','orderBy','asc','Contacts','contact','customerIp','cf-connecting-ip','first','x-forwarded-for','split','lastName','x-real-port','referer','browser','version','format','%s\x20%s','device','vendor','%s\x20%s\x20%s','threadId','externalUrl','ChatInteraction','ContactId','interaction','spread','firstName','messageId','created','autoclose','push','close','unmanaged','*,*,*,*'];(function(_0x5a2439,_0x9ad4b5){var _0x33657e=function(_0x5e95ae){while(--_0x5e95ae){_0x5a2439['push'](_0x5a2439['shift']());}};_0x33657e(++_0x9ad4b5);}(_0x704d,0x6e));var _0xd704=function(_0x550673,_0x62ecd3){_0x550673=_0x550673-0x0;var _0x31f4d1=_0x704d[_0x550673];return _0x31f4d1;};'use strict';var emlformat=require(_0xd704('0x0'));var rimraf=require(_0xd704('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd704('0x2'));var rp=require(_0xd704('0x3'));var moment=require(_0xd704('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xd704('0x5'));var util=require(_0xd704('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xd704('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd704('0x8'));var squel=require(_0xd704('0x9'));var crypto=require(_0xd704('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xd704('0xb'));var Papa=require(_0xd704('0xc'));var Redis=require(_0xd704('0xd'));var authService=require(_0xd704('0xe'));var qs=require(_0xd704('0xf'));var as=require(_0xd704('0x10'));var hardwareService=require(_0xd704('0x11'));var logger=require('../../config/logger')(_0xd704('0x12'));var utils=require('../../config/utils');var config=require(_0xd704('0x13'));var licenseUtil=require(_0xd704('0x14'));var db=require(_0xd704('0x15'))['db'];config[_0xd704('0x16')]=_[_0xd704('0x17')](config[_0xd704('0x16')],{'host':_0xd704('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd704('0x16')]));require(_0xd704('0x19'))[_0xd704('0x1a')](socket);var jayson=require(_0xd704('0x1b'));var client=jayson[_0xd704('0x1c')][_0xd704('0x1d')]({'port':0x232c});var client9002=jayson[_0xd704('0x1c')]['http']({'port':0x232a});var client9003=jayson[_0xd704('0x1c')]['http']({'port':0x232b});var client9001=jayson[_0xd704('0x1c')][_0xd704('0x1d')]({'port':0x2329});function respondWithRpcPromise(_0x42af73,_0x2a4c61,_0x1cc209,_0x4bbf64){return new BPromise(function(_0x51f483,_0x476e60){var _0x2c122f=_0x4bbf64||client;return _0x2c122f[_0xd704('0x1e')](_0x42af73,_0x1cc209)[_0xd704('0x1f')](function(_0x2263e5){logger[_0xd704('0x20')](_0xd704('0x21'),_0x2a4c61,'request\x20sent');logger[_0xd704('0x22')]('ChatWebsite,\x20%s,\x20%s,\x20%s',_0x2a4c61,_0xd704('0x23'),JSON[_0xd704('0x24')](_0x2263e5));if(_0x2263e5['error']){if(_0x2263e5[_0xd704('0x25')][_0xd704('0x26')]===0x1f4){logger['error']('ChatWebsite,\x20%s,\x20%s',_0x2a4c61,_0x2263e5[_0xd704('0x25')][_0xd704('0x27')]);return _0x476e60(_0x2263e5[_0xd704('0x25')][_0xd704('0x27')]);}logger[_0xd704('0x25')](_0xd704('0x21'),_0x2a4c61,_0x2263e5['error']['message']);return _0x51f483(_0x2263e5['error'][_0xd704('0x27')]);}else{logger[_0xd704('0x20')](_0xd704('0x21'),_0x2a4c61,'request\x20sent');_0x51f483(_0x2263e5[_0xd704('0x28')][_0xd704('0x27')]);}})[_0xd704('0x29')](function(_0x3de314){logger['error'](_0xd704('0x21'),_0x2a4c61,_0x3de314);_0x476e60(_0x3de314);});});}function respondWithStatusCode(_0x37240d,_0x94e5cb){_0x94e5cb=_0x94e5cb||0xcc;return function(_0x931200){if(_0x931200){return _0x37240d[_0xd704('0x2a')](_0x94e5cb);}return _0x37240d['status'](_0x94e5cb)['end']();};}function respondWithResult(_0x5b7a25,_0x221926){_0x221926=_0x221926||0xc8;return function(_0x16d066){if(_0x16d066){return _0x5b7a25[_0xd704('0x2b')](_0x221926)[_0xd704('0x2c')](_0x16d066);}};}function respondWithFilteredResult(_0x25d690,_0x462861){return function(_0x80e20c){if(_0x80e20c){var _0x11163b=typeof _0x462861[_0xd704('0x2d')]===_0xd704('0x2e')&&typeof _0x462861[_0xd704('0x2f')]===_0xd704('0x2e');var _0x51476d=_0x80e20c['count'];var _0x46ce73=_0x11163b?0x0:_0x462861['offset'];var _0x4e99ad=_0x11163b?_0x80e20c['count']:_0x462861[_0xd704('0x2d')]+_0x462861[_0xd704('0x2f')];var _0x18571c;if(_0x4e99ad>=_0x51476d){_0x4e99ad=_0x51476d;_0x18571c=0xc8;}else{_0x18571c=0xce;}_0x25d690[_0xd704('0x2b')](_0x18571c);return _0x25d690[_0xd704('0x30')]('Content-Range',_0x46ce73+'-'+_0x4e99ad+'/'+_0x51476d)[_0xd704('0x2c')](_0x80e20c);}return null;};}function patchUpdates(_0x474993){return function(_0x80bf0a){try{jsonpatch[_0xd704('0x31')](_0x80bf0a,_0x474993,!![]);}catch(_0x261c57){return BPromise[_0xd704('0x32')](_0x261c57);}return _0x80bf0a[_0xd704('0x33')]();};}function saveUpdates(_0x3df3b5,_0x45b487){return function(_0x666814){if(_0x666814){return _0x666814[_0xd704('0x34')](_0x3df3b5)[_0xd704('0x1f')](function(_0x19ea4a){return _0x19ea4a;});}return null;};}function removeEntity(_0x4039e5,_0x45cf65){return function(_0x53d859){if(_0x53d859){return _0x53d859[_0xd704('0x35')]()['then'](function(){var _0x9f5c1a=_0x53d859[_0xd704('0x36')]({'plain':!![]});var _0x535ea1='ChatWebsites';return db[_0xd704('0x37')]['destroy']({'where':{'type':_0x535ea1,'resourceId':_0x9f5c1a['id']}})[_0xd704('0x1f')](function(){return _0x53d859;});})[_0xd704('0x1f')](function(){_0x4039e5[_0xd704('0x2b')](0xcc)[_0xd704('0x38')]();});}};}function handleEntityNotFound(_0x137e22,_0x584d88){return function(_0x3e644e){if(!_0x3e644e){_0x137e22[_0xd704('0x2a')](0x194);}return _0x3e644e;};}function handleError(_0xf7d5b7,_0x1d4fc8){_0x1d4fc8=_0x1d4fc8||0x1f4;return function(_0x22145b){logger[_0xd704('0x25')](_0x22145b[_0xd704('0x39')]);if(_0x22145b[_0xd704('0x3a')]){delete _0x22145b[_0xd704('0x3a')];}_0xf7d5b7[_0xd704('0x2b')](_0x1d4fc8)['send'](_0x22145b);};}exports['index']=function(_0xb2c548,_0x21bc93){var _0x12c7f1={'include':[{'model':db[_0xd704('0x3b')],'as':_0xd704('0x3c')}]},_0x48fee7={},_0xc6564e={'count':0x0,'rows':[]};var _0x42f9e0=_['map'](db[_0xd704('0x3d')][_0xd704('0x3e')],function(_0x5a7694){return{'name':_0x5a7694['fieldName'],'type':_0x5a7694[_0xd704('0x3f')]['key']};});_0x48fee7[_0xd704('0x40')]=_[_0xd704('0x41')](_0x42f9e0,_0xd704('0x3a'));_0x48fee7[_0xd704('0x42')]=_[_0xd704('0x43')](_0xb2c548['query']);_0x48fee7['filters']=_['intersection'](_0x48fee7[_0xd704('0x40')],_0x48fee7[_0xd704('0x42')]);_0x12c7f1[_0xd704('0x44')]=_[_0xd704('0x45')](_0x48fee7[_0xd704('0x40')],qs['fields'](_0xb2c548[_0xd704('0x42')][_0xd704('0x46')]));_0x12c7f1['attributes']=_0x12c7f1['attributes'][_0xd704('0x47')]?_0x12c7f1[_0xd704('0x44')]:_0x48fee7[_0xd704('0x40')];if(!_0xb2c548['query'][_0xd704('0x48')](_0xd704('0x49'))){_0x12c7f1[_0xd704('0x2f')]=qs[_0xd704('0x2f')](_0xb2c548['query'][_0xd704('0x2f')]);_0x12c7f1[_0xd704('0x2d')]=qs['offset'](_0xb2c548[_0xd704('0x42')][_0xd704('0x2d')]);}_0x12c7f1[_0xd704('0x4a')]=qs[_0xd704('0x4b')](_0xb2c548[_0xd704('0x42')][_0xd704('0x4b')]);_0x12c7f1[_0xd704('0x4c')]=qs['filters'](_[_0xd704('0x4d')](_0xb2c548[_0xd704('0x42')],_0x48fee7[_0xd704('0x4e')]),_0x42f9e0);if(_0xb2c548[_0xd704('0x42')][_0xd704('0x4f')]){_0x12c7f1[_0xd704('0x4c')]=_[_0xd704('0x50')](_0x12c7f1[_0xd704('0x4c')],{'$or':_[_0xd704('0x41')](_0x42f9e0,function(_0x1e7043){if(_0x1e7043[_0xd704('0x3f')]!==_0xd704('0x51')){var _0x54fa9b={};_0x54fa9b[_0x1e7043[_0xd704('0x3a')]]={'$like':'%'+_0xb2c548[_0xd704('0x42')]['filter']+'%'};return _0x54fa9b;}})});}_0x12c7f1=_['merge']({},_0x12c7f1,_0xb2c548[_0xd704('0x52')]);var _0x56683d={'where':_0x12c7f1[_0xd704('0x4c')]};return db[_0xd704('0x3d')]['count'](_0x56683d)['then'](function(_0xf39629){_0xc6564e[_0xd704('0x53')]=_0xf39629;if(_0xb2c548[_0xd704('0x42')]['includeAll']){_0x12c7f1[_0xd704('0x54')]=[{'all':!![]}];}return db[_0xd704('0x3d')]['findAll'](_0x12c7f1);})['then'](function(_0x348a83){_0xc6564e[_0xd704('0x55')]=_0x348a83;return _0xc6564e;})[_0xd704('0x1f')](respondWithFilteredResult(_0x21bc93,_0x12c7f1))[_0xd704('0x29')](handleError(_0x21bc93,null));};exports[_0xd704('0x56')]=function(_0x56af34,_0x879b73){var _0x2be78d={'raw':![],'where':{'id':_0x56af34[_0xd704('0x57')]['id']},'include':[{'model':db[_0xd704('0x3b')],'as':_0xd704('0x3c')}]},_0x39d657={};_0x39d657['model']=_[_0xd704('0x43')](db[_0xd704('0x3d')]['rawAttributes']);_0x39d657[_0xd704('0x42')]=_[_0xd704('0x43')](_0x56af34[_0xd704('0x42')]);_0x39d657[_0xd704('0x4e')]=_[_0xd704('0x45')](_0x39d657[_0xd704('0x40')],_0x39d657[_0xd704('0x42')]);_0x2be78d[_0xd704('0x44')]=_['intersection'](_0x39d657[_0xd704('0x40')],qs[_0xd704('0x46')](_0x56af34['query'][_0xd704('0x46')]));_0x2be78d['attributes']=_0x2be78d[_0xd704('0x44')][_0xd704('0x47')]?_0x2be78d[_0xd704('0x44')]:_0x39d657[_0xd704('0x40')];if(_0x56af34[_0xd704('0x42')][_0xd704('0x58')]){_0x2be78d[_0xd704('0x54')]=[{'all':!![]}];}_0x2be78d=_[_0xd704('0x50')]({},_0x2be78d,_0x56af34[_0xd704('0x52')]);return db['ChatWebsite']['find'](_0x2be78d)[_0xd704('0x1f')](handleEntityNotFound(_0x879b73,null))[_0xd704('0x1f')](respondWithResult(_0x879b73,null))['catch'](handleError(_0x879b73,null));};exports[_0xd704('0x59')]=function(_0x4e8174,_0x49fc59){return db[_0xd704('0x3d')]['create'](_0x4e8174['body'],{})[_0xd704('0x1f')](function(_0x304431){var _0x58dd70=_0x4e8174[_0xd704('0x5a')][_0xd704('0x36')]({'plain':!![]});if(!_0x58dd70)throw new Error(_0xd704('0x5b'));if(_0x58dd70[_0xd704('0x5c')]===_0xd704('0x5a')){var _0x26821f=_0x304431[_0xd704('0x36')]({'plain':!![]});var _0x460083=_0xd704('0x5d');return db[_0xd704('0x5e')]['find']({'where':{'name':_0x460083,'userProfileId':_0x58dd70[_0xd704('0x5f')]},'raw':!![]})[_0xd704('0x1f')](function(_0x422902){if(_0x422902&&_0x422902[_0xd704('0x60')]===0x0){return db[_0xd704('0x37')][_0xd704('0x59')]({'name':_0x26821f['name'],'resourceId':_0x26821f['id'],'type':_0x422902[_0xd704('0x3a')],'sectionId':_0x422902['id']},{})[_0xd704('0x1f')](function(){return _0x304431;});}else{return _0x304431;}})[_0xd704('0x29')](function(_0x7a6758){logger[_0xd704('0x25')](_0xd704('0x61'),_0x7a6758);throw _0x7a6758;});}return _0x304431;})[_0xd704('0x1f')](respondWithResult(_0x49fc59,0xc9))['catch'](handleError(_0x49fc59,null));};exports[_0xd704('0x34')]=function(_0x2e477e,_0x560cc0){if(_0x2e477e[_0xd704('0x62')]['id']){delete _0x2e477e[_0xd704('0x62')]['id'];}return db[_0xd704('0x3d')][_0xd704('0x63')]({'where':{'id':_0x2e477e[_0xd704('0x57')]['id']},'include':[{'model':db['Pause'],'as':_0xd704('0x3c')}]})['then'](handleEntityNotFound(_0x560cc0,null))[_0xd704('0x1f')](saveUpdates(_0x2e477e[_0xd704('0x62')],null))[_0xd704('0x1f')](respondWithResult(_0x560cc0,null))[_0xd704('0x29')](handleError(_0x560cc0,null));};exports[_0xd704('0x35')]=function(_0x12d725,_0x2e828d){return db[_0xd704('0x3d')][_0xd704('0x63')]({'where':{'id':_0x12d725[_0xd704('0x57')]['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x2e828d,null))['then'](removeEntity(_0x2e828d,null))[_0xd704('0x29')](handleError(_0x2e828d,null));};exports[_0xd704('0x64')]=function(_0x1d05a6,_0x543983){return db[_0xd704('0x3d')][_0xd704('0x64')]()['then'](respondWithResult(_0x543983,null))[_0xd704('0x29')](handleError(_0x543983,null));};exports[_0xd704('0x65')]=function(_0x55f691,_0x1369cd,_0x5892e1){if(_0x55f691[_0xd704('0x62')]['id']){delete _0x55f691[_0xd704('0x62')]['id'];}return db[_0xd704('0x3d')][_0xd704('0x63')]({'where':{'id':_0x55f691[_0xd704('0x57')]['id']}})['then'](handleEntityNotFound(_0x1369cd,null))[_0xd704('0x1f')](function(_0xd70cf4){if(_0xd70cf4){_0x55f691[_0xd704('0x62')][_0xd704('0x66')]=_0xd70cf4['id'];return db[_0xd704('0x67')]['create'](_0x55f691['body']);}})[_0xd704('0x1f')](respondWithResult(_0x1369cd,null))[_0xd704('0x29')](handleError(_0x1369cd,null));};exports[_0xd704('0x68')]=function(_0xeca8cc,_0x2bed67,_0x2236b7){var _0x44a221={'raw':![],'where':{}};var _0x39aa5e={};var _0x290e3b={'count':0x0,'rows':[]};return db[_0xd704('0x3d')][_0xd704('0x69')]({'where':{'id':_0xeca8cc[_0xd704('0x57')]['id']}})['then'](handleEntityNotFound(_0x2bed67,null))[_0xd704('0x1f')](function(_0x238034){if(_0x238034){_0x39aa5e[_0xd704('0x40')]=_['keys'](db[_0xd704('0x67')][_0xd704('0x3e')]);_0x39aa5e[_0xd704('0x42')]=_[_0xd704('0x43')](_0xeca8cc[_0xd704('0x42')]);_0x39aa5e[_0xd704('0x4e')]=_[_0xd704('0x45')](_0x39aa5e[_0xd704('0x40')],_0x39aa5e[_0xd704('0x42')]);_0x44a221[_0xd704('0x44')]=_[_0xd704('0x45')](_0x39aa5e[_0xd704('0x40')],qs[_0xd704('0x46')](_0xeca8cc[_0xd704('0x42')][_0xd704('0x46')]));_0x44a221[_0xd704('0x44')]=_0x44a221['attributes']['length']?_0x44a221[_0xd704('0x44')]:_0x39aa5e[_0xd704('0x40')];if(!_0xeca8cc['query'][_0xd704('0x48')](_0xd704('0x49'))){_0x44a221['limit']=qs[_0xd704('0x2f')](_0xeca8cc['query'][_0xd704('0x2f')]);_0x44a221['offset']=qs[_0xd704('0x2d')](_0xeca8cc[_0xd704('0x42')][_0xd704('0x2d')]);}_0x44a221['order']=qs[_0xd704('0x4b')](_0xeca8cc[_0xd704('0x42')]['sort']);_0x44a221[_0xd704('0x4c')]=qs['filters'](_[_0xd704('0x4d')](_0xeca8cc[_0xd704('0x42')],_0x39aa5e[_0xd704('0x4e')]));_0x44a221[_0xd704('0x4c')][_0xd704('0x66')]=_0x238034['id'];if(_0xeca8cc[_0xd704('0x42')][_0xd704('0x4f')]){_0x44a221[_0xd704('0x4c')]=_[_0xd704('0x50')](_0x44a221[_0xd704('0x4c')],{'$or':_[_0xd704('0x41')](_0x44a221[_0xd704('0x44')],function(_0x3be697){var _0x4a94e7={};_0x4a94e7[_0x3be697]={'$like':'%'+_0xeca8cc[_0xd704('0x42')][_0xd704('0x4f')]+'%'};return _0x4a94e7;})});}_0x44a221=_[_0xd704('0x50')]({},_0x44a221,_0xeca8cc[_0xd704('0x52')]);return db[_0xd704('0x67')]['count']({'where':_0x44a221[_0xd704('0x4c')]})[_0xd704('0x1f')](function(_0x282fd7){_0x290e3b[_0xd704('0x53')]=_0x282fd7;if(_0xeca8cc['query'][_0xd704('0x58')]){_0x44a221['include']=[{'all':!![]}];}return db[_0xd704('0x67')][_0xd704('0x6a')](_0x44a221);})[_0xd704('0x1f')](function(_0x2a3c0b){_0x290e3b[_0xd704('0x55')]=_0x2a3c0b;return _0x290e3b;});}})['then'](respondWithFilteredResult(_0x2bed67,_0x44a221))[_0xd704('0x29')](handleError(_0x2bed67,null));};exports['removeDispositions']=function(_0xc29a19,_0x51ed2e,_0x53c2ff){return db['ChatWebsite'][_0xd704('0x63')]({'where':{'id':_0xc29a19['params']['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x51ed2e,null))[_0xd704('0x1f')](function(_0x415eb6){if(_0x415eb6){return _0x415eb6[_0xd704('0x6b')](_0xc29a19[_0xd704('0x42')][_0xd704('0x6c')]);}})[_0xd704('0x1f')](respondWithStatusCode(_0x51ed2e,null))[_0xd704('0x29')](handleError(_0x51ed2e,null));};exports['addAnswer']=function(_0x6b08cc,_0x66aba2,_0x573f22){if(_0x6b08cc['body']['id']){delete _0x6b08cc[_0xd704('0x62')]['id'];}return db[_0xd704('0x3d')]['find']({'where':{'id':_0x6b08cc['params']['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x66aba2,null))[_0xd704('0x1f')](function(_0x26a4e4){if(_0x26a4e4){_0x6b08cc[_0xd704('0x62')]['ChatWebsiteId']=_0x26a4e4['id'];return db['CannedAnswer'][_0xd704('0x59')](_0x6b08cc[_0xd704('0x62')]);}})['then'](respondWithResult(_0x66aba2,null))['catch'](handleError(_0x66aba2,null));};exports[_0xd704('0x6d')]=function(_0x43036a,_0x455127,_0x4d5c74){var _0x4c9ccd={'raw':![],'where':{}};var _0x2fdfa2={};var _0x47c3b7={'count':0x0,'rows':[]};return db['ChatWebsite'][_0xd704('0x69')]({'where':{'id':_0x43036a[_0xd704('0x57')]['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x455127,null))[_0xd704('0x1f')](function(_0x96ab21){if(_0x96ab21){_0x2fdfa2[_0xd704('0x40')]=_[_0xd704('0x43')](db['CannedAnswer'][_0xd704('0x3e')]);_0x2fdfa2[_0xd704('0x42')]=_[_0xd704('0x43')](_0x43036a[_0xd704('0x42')]);_0x2fdfa2[_0xd704('0x4e')]=_[_0xd704('0x45')](_0x2fdfa2['model'],_0x2fdfa2[_0xd704('0x42')]);_0x4c9ccd[_0xd704('0x44')]=_[_0xd704('0x45')](_0x2fdfa2[_0xd704('0x40')],qs[_0xd704('0x46')](_0x43036a[_0xd704('0x42')][_0xd704('0x46')]));_0x4c9ccd[_0xd704('0x44')]=_0x4c9ccd[_0xd704('0x44')][_0xd704('0x47')]?_0x4c9ccd[_0xd704('0x44')]:_0x2fdfa2['model'];if(!_0x43036a[_0xd704('0x42')]['hasOwnProperty'](_0xd704('0x49'))){_0x4c9ccd[_0xd704('0x2f')]=qs[_0xd704('0x2f')](_0x43036a['query']['limit']);_0x4c9ccd[_0xd704('0x2d')]=qs[_0xd704('0x2d')](_0x43036a['query'][_0xd704('0x2d')]);}_0x4c9ccd[_0xd704('0x4a')]=qs[_0xd704('0x4b')](_0x43036a[_0xd704('0x42')]['sort']);_0x4c9ccd['where']=qs[_0xd704('0x4e')](_[_0xd704('0x4d')](_0x43036a[_0xd704('0x42')],_0x2fdfa2['filters']));_0x4c9ccd[_0xd704('0x4c')][_0xd704('0x66')]=_0x96ab21['id'];if(_0x43036a[_0xd704('0x42')][_0xd704('0x4f')]){_0x4c9ccd[_0xd704('0x4c')]=_[_0xd704('0x50')](_0x4c9ccd['where'],{'$or':_[_0xd704('0x41')](_0x4c9ccd[_0xd704('0x44')],function(_0x57992a){var _0x3a02bc={};_0x3a02bc[_0x57992a]={'$like':'%'+_0x43036a['query']['filter']+'%'};return _0x3a02bc;})});}_0x4c9ccd=_[_0xd704('0x50')]({},_0x4c9ccd,_0x43036a[_0xd704('0x52')]);return db[_0xd704('0x6e')][_0xd704('0x53')]({'where':_0x4c9ccd[_0xd704('0x4c')]})[_0xd704('0x1f')](function(_0x38d8a3){_0x47c3b7[_0xd704('0x53')]=_0x38d8a3;if(_0x43036a[_0xd704('0x42')][_0xd704('0x58')]){_0x4c9ccd['include']=[{'all':!![]}];}return db['CannedAnswer'][_0xd704('0x6a')](_0x4c9ccd);})[_0xd704('0x1f')](function(_0x2289db){_0x47c3b7[_0xd704('0x55')]=_0x2289db;return _0x47c3b7;});}})[_0xd704('0x1f')](respondWithFilteredResult(_0x455127,_0x4c9ccd))[_0xd704('0x29')](handleError(_0x455127,null));};exports[_0xd704('0x6f')]=function(_0x34152f,_0xf39d03,_0x41cbf4){return db['ChatWebsite'][_0xd704('0x63')]({'where':{'id':_0x34152f[_0xd704('0x57')]['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0xf39d03,null))[_0xd704('0x1f')](function(_0x3df397){if(_0x3df397){return _0x3df397[_0xd704('0x6f')](_0x34152f[_0xd704('0x42')][_0xd704('0x6c')]);}})[_0xd704('0x1f')](respondWithStatusCode(_0xf39d03,null))['catch'](handleError(_0xf39d03,null));};exports['addLogo']=function(_0x31360c,_0x4de045,_0x429dd1){_0x31360c[_0xd704('0x62')][_0xd704('0x70')]=_0x31360c[_0xd704('0x71')][_0xd704('0x72')];return db[_0xd704('0x3d')]['find']({'where':{'id':_0x31360c['params']['id']}})['then'](handleEntityNotFound(_0x4de045,null))['then'](saveUpdates(_0x31360c[_0xd704('0x62')],null))[_0xd704('0x1f')](respondWithResult(_0x4de045,null))[_0xd704('0x29')](handleError(_0x4de045,null));};exports['addAvatar']=function(_0x40b212,_0x183931,_0x1e21a2){_0x40b212[_0xd704('0x62')][_0xd704('0x73')]=_0x40b212[_0xd704('0x71')][_0xd704('0x72')];return db[_0xd704('0x3d')]['find']({'where':{'id':_0x40b212[_0xd704('0x57')]['id']}})['then'](handleEntityNotFound(_0x183931,null))[_0xd704('0x1f')](saveUpdates(_0x40b212[_0xd704('0x62')],null))[_0xd704('0x1f')](respondWithResult(_0x183931,null))[_0xd704('0x29')](handleError(_0x183931,null));};exports[_0xd704('0x74')]=function(_0x3dd7c0,_0x56eba2,_0xc2d765){_0x3dd7c0[_0xd704('0x62')][_0xd704('0x75')]=_0x3dd7c0[_0xd704('0x71')]['filename'];return db[_0xd704('0x3d')][_0xd704('0x63')]({'where':{'id':_0x3dd7c0[_0xd704('0x57')]['id']}})['then'](handleEntityNotFound(_0x56eba2,null))[_0xd704('0x1f')](saveUpdates(_0x3dd7c0[_0xd704('0x62')],null))[_0xd704('0x1f')](respondWithResult(_0x56eba2,null))[_0xd704('0x29')](handleError(_0x56eba2,null));};exports[_0xd704('0x76')]=function(_0xdd2823,_0x20d321,_0x3fc096){_0xdd2823[_0xd704('0x62')][_0xd704('0x77')]=_0xdd2823[_0xd704('0x71')][_0xd704('0x72')];return db[_0xd704('0x3d')][_0xd704('0x63')]({'where':{'id':_0xdd2823['params']['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x20d321,null))[_0xd704('0x1f')](saveUpdates(_0xdd2823[_0xd704('0x62')],null))['then'](respondWithResult(_0x20d321,null))[_0xd704('0x29')](handleError(_0x20d321,null));};exports[_0xd704('0x78')]=function(_0x2f7695,_0x2ca9a3,_0x40845c){var _0x1ef683=path[_0xd704('0x79')](config['root'],_0xd704('0x7a'));var _0x45a3c9={'where':{'id':_0x2f7695['params']['id']},'attributes':['id',_0xd704('0x70')],'raw':!![]};var _0x5f48b4=![];return require(_0xd704('0x14'))['getLicense']()[_0xd704('0x1f')](function(_0x57cf49){if(_0x57cf49){_0x5f48b4=_0x57cf49[_0xd704('0x7b')];}})['then'](function(){return db[_0xd704('0x3d')][_0xd704('0x63')](_0x45a3c9);})[_0xd704('0x1f')](handleEntityNotFound(_0x2ca9a3,null))[_0xd704('0x1f')](function(_0x3056eb){if(_0x3056eb){if(!_['isNil'](_0x3056eb[_0xd704('0x70')])){if(fs['existsSync'](path[_0xd704('0x79')](config[_0xd704('0x7c')],'server/files/images/logos/',_0x3056eb[_0xd704('0x70')]))&&_0x5f48b4){_0x1ef683=path[_0xd704('0x79')](config[_0xd704('0x7c')],_0xd704('0x7d'),_0x3056eb['sitepic']);}}return _0x2ca9a3['download'](_0x1ef683);}})[_0xd704('0x29')](handleError(_0x2ca9a3,null));};exports[_0xd704('0x7e')]=function(_0x48c5ac,_0x21c9e5,_0x13f955){var _0x50151f=path[_0xd704('0x79')](config['root'],'server/files/images/avatars/default_avatar.png');var _0x2076eb={'where':{'id':_0x48c5ac[_0xd704('0x57')]['id']},'attributes':['id',_0xd704('0x73')],'raw':!![]};return db[_0xd704('0x3d')]['find'](_0x2076eb)['then'](handleEntityNotFound(_0x21c9e5,null))[_0xd704('0x1f')](function(_0x21ec2d){if(_0x21ec2d){if(!_[_0xd704('0x7f')](_0x21ec2d[_0xd704('0x73')])){if(fs[_0xd704('0x80')](path[_0xd704('0x79')](config['root'],_0xd704('0x81'),_0x21ec2d[_0xd704('0x73')]))){_0x50151f=path['join'](config[_0xd704('0x7c')],'server/files/images/avatars/',_0x21ec2d[_0xd704('0x73')]);}}return _0x21c9e5['download'](_0x50151f);}})[_0xd704('0x29')](handleError(_0x21c9e5,null));};exports['getCustomerAvatar']=function(_0x1113b5,_0x52c518,_0x534ce7){var _0x23d13e=path[_0xd704('0x79')](config[_0xd704('0x7c')],_0xd704('0x82'));var _0x3113bc={'where':{'id':_0x1113b5[_0xd704('0x57')]['id']},'attributes':['id',_0xd704('0x75'),_0xd704('0x83')],'raw':!![]};return db[_0xd704('0x3d')][_0xd704('0x63')](_0x3113bc)['then'](handleEntityNotFound(_0x52c518,null))['then'](function(_0x38de1e){if(_0x38de1e){if(!_[_0xd704('0x7f')](_0x38de1e['customerAvatar'])){if(fs['existsSync'](path[_0xd704('0x79')](config[_0xd704('0x7c')],_0xd704('0x81'),_0x38de1e[_0xd704('0x75')]))&&_0x38de1e[_0xd704('0x83')]){_0x23d13e=path['join'](config[_0xd704('0x7c')],_0xd704('0x81'),_0x38de1e[_0xd704('0x75')]);}}return _0x52c518[_0xd704('0x84')](_0x23d13e);}})[_0xd704('0x29')](handleError(_0x52c518,null));};exports['getSystemAvatar']=function(_0x4671d1,_0x870e2e,_0x4c4d43){var _0x4730da=path[_0xd704('0x79')](config[_0xd704('0x7c')],_0xd704('0x85'));var _0x4c4e1c={'where':{'id':_0x4671d1['params']['id']},'attributes':['id',_0xd704('0x77')],'raw':!![]};return db['ChatWebsite'][_0xd704('0x63')](_0x4c4e1c)[_0xd704('0x1f')](handleEntityNotFound(_0x870e2e,null))[_0xd704('0x1f')](function(_0x17404a){if(_0x17404a){if(!_[_0xd704('0x7f')](_0x17404a[_0xd704('0x77')])){if(fs[_0xd704('0x80')](path['join'](config[_0xd704('0x7c')],_0xd704('0x81'),_0x17404a[_0xd704('0x77')]))){_0x4730da=path['join'](config[_0xd704('0x7c')],'server/files/images/avatars/',_0x17404a['systemAvatar']);}}return _0x870e2e[_0xd704('0x84')](_0x4730da);}})['catch'](handleError(_0x870e2e,null));};exports[_0xd704('0x86')]=function(_0x478338,_0x264341,_0x42e98d){var _0x5ece2c=require('user-agent-parser');var _0xda01c0=new _0x5ece2c();var _0x1ba456=_0xda01c0[_0xd704('0x87')](_0x478338[_0xd704('0x88')][_0xd704('0x89')])[_0xd704('0x8a')]();var _0x5b0579={'body':_0x478338[_0xd704('0x62')],'channel':'chat'};var _0x5d6407=[];var _0xaa8323=[];var _0x59e1da={};var _0x488cdc=![];return db[_0xd704('0x8b')][_0xd704('0x64')]()['then'](function(_0x38e8d4){if(!_0x38e8d4){throw new db[(_0xd704('0x8c'))]['ValidationError'](_0xd704('0x8d'));}_0x5d6407=_[_0xd704('0x8e')](_[_0xd704('0x43')](_0x38e8d4),['createdAt',_0xd704('0x8f')]);_0xaa8323=_[_0xd704('0x8e')](_['keys'](_0x38e8d4),['createdAt',_0xd704('0x8f'),_0xd704('0x90'),_0xd704('0x91')]);if(_0x478338[_0xd704('0x62')]['id']){delete _0x478338[_0xd704('0x62')]['id'];}if(_['isNil'](_0x478338[_0xd704('0x62')][_0xd704('0x92')])){throw new db[(_0xd704('0x8c'))][(_0xd704('0x93'))](_0xd704('0x94'));}if(_[_0xd704('0x7f')](_0x478338['body']['body'])||_0x478338['body'][_0xd704('0x62')]===''){throw new db[(_0xd704('0x8c'))][(_0xd704('0x93'))](_0xd704('0x95'));}if(_[_0xd704('0x7f')](_0x478338[_0xd704('0x62')][_0xd704('0x96')])){throw new db[(_0xd704('0x8c'))][(_0xd704('0x93'))](_0xd704('0x97')+_0xaa8323);}if(!_[_0xd704('0x98')](_0xaa8323,_0x478338[_0xd704('0x62')][_0xd704('0x96')])){throw new db[(_0xd704('0x8c'))]['ValidationError'](_0xd704('0x99')+_0xaa8323);}_0x59e1da[_0x478338[_0xd704('0x62')][_0xd704('0x96')]]=_0x478338[_0xd704('0x62')]['from'];})[_0xd704('0x1f')](function(){return db[_0xd704('0x3d')]['find']({'where':{'id':_0x478338['params']['id']},'include':[{'model':db['CmList'],'as':_0xd704('0x9a'),'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x59e1da,'limit':0x1,'order':[[_0xd704('0x8f'),_0xd704('0x9b')]]}]},{'model':db[_0xd704('0x9c')],'as':_0xd704('0x9d')}]});})[_0xd704('0x1f')](handleEntityNotFound(_0x264341,null))[_0xd704('0x1f')](function(_0x4570ec){if(_0x4570ec&&_0x4570ec[_0xd704('0x9a')]){_0x5b0579[_0xd704('0x9e')]=_0x4570ec;_0x5b0579[_0xd704('0x9f')]=_0x4570ec[_0xd704('0x9d')];_0x5b0579[_0xd704('0xa0')]=_0x4570ec[_0xd704('0x9a')];_0x5b0579[_0xd704('0x9f')]=_[_0xd704('0xa1')](_0x5b0579[_0xd704('0x9f')],['priority'],[_0xd704('0xa2')]);if(_0x5b0579[_0xd704('0x9e')][_0xd704('0x9d')]){delete _0x5b0579[_0xd704('0x9e')][_0xd704('0x9d')];}if(_0x5b0579[_0xd704('0x9e')]['List']&&_0x5b0579[_0xd704('0x9e')][_0xd704('0x9a')][_0xd704('0xa3')]['length']){return _0x5b0579[_0xd704('0x9e')][_0xd704('0x9a')]['Contacts'][0x0];}var _0x48e416=_[_0xd704('0x17')](_0x478338['body'],{'firstName':_0x478338[_0xd704('0x62')][_0xd704('0x92')],'ListId':_0x4570ec['ListId']});_0x48e416[_0x478338[_0xd704('0x62')][_0xd704('0x96')]]=_0x478338['body'][_0xd704('0x92')];return db[_0xd704('0x8b')][_0xd704('0x59')](_0x48e416,{'fields':_0x5d6407,'raw':!![]});}})['then'](handleEntityNotFound(_0x264341,null))[_0xd704('0x1f')](function(_0x26a522){_0x5b0579[_0xd704('0xa4')]=_0x26a522;var _0xb8d7d6=_0x478338[_0xd704('0x62')][_0xd704('0xa5')];if(_0x478338[_0xd704('0x88')][_0xd704('0xa6')]){_0xb8d7d6=_0x478338[_0xd704('0x88')][_0xd704('0xa6')];}else if(_0x478338[_0xd704('0x88')]['x-forwarded-for']){_0xb8d7d6=_[_0xd704('0xa7')](_0x478338[_0xd704('0x88')][_0xd704('0xa8')][_0xd704('0xa9')](','));}if(_0x26a522){var _0x2b51b2={'ContactId':_0x26a522['id'],'ChatWebsiteId':_0x478338[_0xd704('0x57')]['id'],'from':(_0x26a522['firstName']||'')+'\x20'+(_0x26a522[_0xd704('0xaa')]||''),'customerIp':_0xb8d7d6,'customerPort':_0x478338['headers'][_0xd704('0xab')]?_0x478338['headers'][_0xd704('0xab')]:null,'referer':_0x478338['body'][_0xd704('0xac')],'browserName':_0x1ba456['browser']['name']&&_0x1ba456[_0xd704('0xad')][_0xd704('0xae')]?util[_0xd704('0xaf')](_0xd704('0xb0'),_0x1ba456['browser'][_0xd704('0x3a')],_0x1ba456[_0xd704('0xad')][_0xd704('0xae')]):'unknown','browserVersion':_0x1ba456[_0xd704('0xad')][_0xd704('0xae')]||'unknown','osName':util[_0xd704('0xaf')](_0xd704('0xb0'),_0x1ba456['os'][_0xd704('0x3a')],_0x1ba456['os'][_0xd704('0xae')]),'osVersion':_0x1ba456['os'][_0xd704('0xae')],'deviceModel':_0x1ba456[_0xd704('0xb1')]['model']&&_0x1ba456[_0xd704('0xb1')][_0xd704('0xb2')]?util[_0xd704('0xaf')](_0xd704('0xb3'),_0x1ba456['device'][_0xd704('0x40')],_0x1ba456[_0xd704('0xb1')][_0xd704('0xb2')],_0x1ba456[_0xd704('0xb1')]['type']):null,'deviceVendor':_0x1ba456['device'][_0xd704('0xb2')],'deviceType':_0x1ba456[_0xd704('0xb1')]['type'],'formData':JSON[_0xd704('0x24')](_0x478338['body'])};var _0xe58ee0={'ChatWebsiteId':_0x478338[_0xd704('0x57')]['id'],'closed':![]};if(_0x478338[_0xd704('0x62')][_0xd704('0xb4')]){_0xe58ee0[_0xd704('0xb4')]=_0x478338[_0xd704('0x62')][_0xd704('0xb4')];return db['ChatInteraction'][_0xd704('0x63')]({'where':_0xe58ee0})[_0xd704('0x1f')](function(_0x576511){if(_0x576511){return[_0x576511,![]];}_0x2b51b2['threadId']=_0x478338[_0xd704('0x62')]['threadId'];_0x2b51b2[_0xd704('0xb5')]=_0x478338[_0xd704('0x62')][_0xd704('0xb5')];return db[_0xd704('0xb6')]['create'](_0x2b51b2)[_0xd704('0x1f')](function(_0x2d6c05){return[_0x2d6c05,!![]];});});}_0xe58ee0[_0xd704('0xb7')]=_0x26a522['id'];if(_0x478338['body'][_0xd704('0xb8')]&&_0x478338[_0xd704('0x62')][_0xd704('0xb8')]['id']){_0xe58ee0['id']=_0x478338['body'][_0xd704('0xb8')]['id'];return db[_0xd704('0xb6')]['find']({'where':_0xe58ee0})[_0xd704('0x1f')](function(_0x2988be){if(_0x2988be){return[_0x2988be,![]];}return db[_0xd704('0xb6')][_0xd704('0x59')](_0x2b51b2)['then'](function(_0x55f10d){return[_0x55f10d,!![]];});});}return db[_0xd704('0xb6')][_0xd704('0x59')](_0x2b51b2)['then'](function(_0x4e5aab){return[_0x4e5aab,!![]];});}})[_0xd704('0xb9')](function(_0x51a960,_0x19b4c2){if(_0x51a960){_0x488cdc=_0x19b4c2;if(!_0x19b4c2){var _0x255dbd={'from':(_0x5b0579[_0xd704('0xa4')][_0xd704('0xba')]||'')+'\x20'+(_0x5b0579[_0xd704('0xa4')][_0xd704('0xaa')]||'')};if(_0x478338[_0xd704('0x62')][_0xd704('0xb4')]&&_0x478338['body'][_0xd704('0xbb')]&&_0x478338[_0xd704('0x62')][_0xd704('0xb4')]!=_0x478338[_0xd704('0x62')][_0xd704('0xbb')]){_0x255dbd[_0xd704('0xb4')]=_0x478338[_0xd704('0x62')][_0xd704('0xbb')];}return _0x51a960[_0xd704('0x34')](_0x255dbd);}else{return _0x51a960;}}})['then'](function(_0x5d66a8){_0x5b0579[_0xd704('0xb8')]=_0x5d66a8[_0xd704('0x36')]({'plain':!![]});_0x5b0579[_0xd704('0xb8')]['created']=_0x488cdc;if(_0x5b0579[_0xd704('0xb8')][_0xd704('0xbc')]){if(_0x5b0579[_0xd704('0x9e')][_0xd704('0xbd')]){_0x5b0579[_0xd704('0x9f')][_0xd704('0xbe')]({'id':0x0,'priority':_0x5b0579['applications'][_0xd704('0x47')]+0x1,'app':_0xd704('0xbf'),'appdata':_0xd704('0xc0'),'interval':_0xd704('0xc1')});}}return db[_0xd704('0xc2')][_0xd704('0x59')]({'body':_0x478338['body'][_0xd704('0x62')],'ChatWebsiteId':_0x478338[_0xd704('0x57')]['id'],'ChatInteractionId':_0x5d66a8['id'],'direction':'in','ContactId':_0x5b0579['contact']['id'],'AttachmentId':_0x478338[_0xd704('0x62')][_0xd704('0xc3')]});})[_0xd704('0x1f')](function(_0x288b09){_0x5b0579['message']=_0x288b09;if(_0x5b0579[_0xd704('0xb8')][_0xd704('0xc4')]){return db[_0xd704('0xc5')][_0xd704('0x63')]({'attributes':['id',_0xd704('0x3a')],'where':{'id':_0x5b0579[_0xd704('0xb8')]['UserId']}})[_0xd704('0x1f')](function(_0x21f72c){if(_0x21f72c){_0x5b0579[_0xd704('0x9f')]['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x21f72c[_0xd704('0x3a')]+','+(_0x5b0579[_0xd704('0x9e')][_0xd704('0xc6')]||0xa),'interval':_0xd704('0xc1')});_0x5b0579['forcedOwnership']=!![];}return respondWithRpcPromise(_0xd704('0xc7'),_0xd704('0xc8'),_0x5b0579);});}return respondWithRpcPromise(_0xd704('0xc7'),'startRouting',_0x5b0579);})[_0xd704('0x1f')](function(_0x1f7cfe){respondWithRpcPromise('EventManager',_0xd704('0xc9'),{'event':_0xd704('0x86'),'message':_0x1f7cfe},client9002);return _0x1f7cfe;})[_0xd704('0x1f')](respondWithResult(_0x264341,null))[_0xd704('0x29')](handleError(_0x264341,null));};exports[_0xd704('0xca')]=function(_0x559368,_0x4f60b1,_0x456dbf){var _0x2b83af,_0x208d97,_0x2c767a;var _0x1ca65e=[];var _0x25764f=[];var _0x33d711={};var _0x47c9d5=_0x559368[_0xd704('0xcb')]||[];var _0x1d47a6=[];var _0x33cb85;return db[_0xd704('0x8b')][_0xd704('0x64')]()['then'](function(_0x2ad7eb){if(!_0x2ad7eb){throw new db[(_0xd704('0x8c'))][(_0xd704('0x93'))](_0xd704('0x8d'));}_0x25764f=_[_0xd704('0x8e')](_[_0xd704('0x43')](_0x2ad7eb),[_0xd704('0xcc'),_0xd704('0x8f')]);_0x1ca65e=_[_0xd704('0x8e')](_[_0xd704('0x43')](_0x2ad7eb),[_0xd704('0xcc'),_0xd704('0x8f'),'CompanyId',_0xd704('0x91')]);if(_0x559368[_0xd704('0x62')]['id']){delete _0x559368[_0xd704('0x62')]['id'];}if(_[_0xd704('0x7f')](_0x559368[_0xd704('0x62')][_0xd704('0x92')])){throw _0x4f60b1[_0xd704('0x2b')](0x1f4)[_0xd704('0xcd')](new db[(_0xd704('0x8c'))][(_0xd704('0x93'))](_0xd704('0x94')));}if(_[_0xd704('0x7f')](_0x559368['body'][_0xd704('0x62')])||_0x559368[_0xd704('0x62')]['body']===''){throw _0x4f60b1[_0xd704('0x2b')](0x1f4)[_0xd704('0xcd')](new db[(_0xd704('0x8c'))][(_0xd704('0x93'))](_0xd704('0x95')));}if(_['isNil'](_0x559368[_0xd704('0x62')]['mapKeyOffline'])){throw _0x4f60b1[_0xd704('0x2b')](0x1f4)[_0xd704('0xcd')](new db[(_0xd704('0x8c'))][(_0xd704('0x93'))](_0xd704('0xce')+_0x1ca65e));}if(!_[_0xd704('0x98')](_0x1ca65e,_0x559368['body'][_0xd704('0xcf')])){throw _0x4f60b1[_0xd704('0x2b')](0x1f4)['send'](new db[(_0xd704('0x8c'))][(_0xd704('0x93'))](_0xd704('0xd0')+_0x1ca65e));}_0x33d711[_0x559368[_0xd704('0x62')][_0xd704('0xcf')]]=_0x559368[_0xd704('0x62')][_0xd704('0x92')];})[_0xd704('0x1f')](function(){return db[_0xd704('0x3d')][_0xd704('0x63')]({'where':{'id':_0x559368['params']['id']},'include':[{'model':db[_0xd704('0xd1')],'as':_0xd704('0x9a')},{'model':db[_0xd704('0xd2')],'as':'MailAccount'}]});})[_0xd704('0x1f')](handleEntityNotFound(_0x4f60b1,null))[_0xd704('0x1f')](function(_0x1ca32f){if(_0x1ca32f&&_0x1ca32f[_0xd704('0x9a')]){_0x208d97=_0x1ca32f;var _0x38cd30=_[_0xd704('0x17')](_0x559368[_0xd704('0x62')],{'firstName':_0x559368[_0xd704('0x62')][_0xd704('0x92')],'phone':_0x559368[_0xd704('0x62')][_0xd704('0x92')],'ListId':_0x1ca32f['ListId']});_0x38cd30[_0x559368[_0xd704('0x62')]['mapKeyOffline']]=_0x559368[_0xd704('0x62')][_0xd704('0x92')];return db[_0xd704('0x8b')][_0xd704('0xd3')]({'where':_0x33d711,'defaults':_0x38cd30});}})[_0xd704('0xb9')](function(_0x2efb55){if(_0x2efb55){_0x2c767a=_0x2efb55;var _0x5a3544=fs['readFileSync'](path['join'](config[_0xd704('0x7c')],_0xd704('0xd4')),_0xd704('0xd5'));var _0x4642b3=ejs[_0xd704('0xd6')](_0x5a3544,{'body':_['toPairs'](_0x559368[_0xd704('0x62')]['body']),'bodyTitle':_0x208d97['offlineMessageBody']});return db[_0xd704('0xd7')][_0xd704('0x59')]({'body':_0x4642b3,'ContactId':_0x2efb55['id'],'ChatWebsiteId':_0x208d97['id']});}})[_0xd704('0x1f')](function(_0x55aa3c){_0x33cb85=_0x55aa3c;if(_0x47c9d5[_0xd704('0x47')]){var _0x282299=_0x47c9d5[_0xd704('0x41')](function(_0x482042){return{'name':_0x482042[_0xd704('0xd8')],'basename':_0x482042[_0xd704('0x72')],'type':_0x482042[_0xd704('0xd9')],'ChatOfflineMessageId':_0x55aa3c['id']};});_0x1d47a6=_0x282299[_0xd704('0x41')](_0x407ab2=>{var _0x5be4c1={'filename':_0x407ab2[_0xd704('0x3a')],'path':path[_0xd704('0x79')](config[_0xd704('0x7c')],_0xd704('0xda'),'files',_0xd704('0xdb'),_0xd704('0xdc'),_0x407ab2[_0xd704('0xdd')])};return _0x5be4c1;});if(!_0x208d97[_0xd704('0xde')]){return db[_0xd704('0xdf')][_0xd704('0xe0')](function(_0xa10818){return db[_0xd704('0xe1')]['bulkCreate'](_0x282299,{'transaction':_0xa10818});});}}})[_0xd704('0x1f')](function(){if(_0x33cb85){_0x2b83af=_0x33cb85;return db[_0xd704('0xd2')]['findOne']({'where':{'active':!![]},'include':[{'model':db[_0xd704('0xe2')],'as':'Smtp','raw':!![]}]});}})[_0xd704('0x1f')](function(_0x1645f3){if(_0x1645f3&&_0x1645f3[_0xd704('0xe3')]&&_0x208d97[_0xd704('0xe4')]&&_0x208d97[_0xd704('0xe5')]){var _0x1fa995={'tls':{'rejectUnauthorized':![]}};if(_0x1645f3[_0xd704('0xe3')][_0xd704('0xe6')]){_0x1fa995[_0xd704('0xe6')]=_0x1645f3[_0xd704('0xe3')][_0xd704('0xe6')];}else{_0x1fa995[_0xd704('0xe7')]=_0x1645f3['Smtp']['host'];_0x1fa995[_0xd704('0xe8')]=_0x1645f3[_0xd704('0xe3')]['port'];_0x1fa995[_0xd704('0xe9')]=_0x1645f3[_0xd704('0xe3')][_0xd704('0xe9')];}if(_0x1645f3[_0xd704('0xe3')][_0xd704('0xea')]){_0x1fa995[_0xd704('0xeb')]={'user':_0x1645f3[_0xd704('0xe3')][_0xd704('0x5a')],'pass':_0x1645f3[_0xd704('0xe3')][_0xd704('0xec')]};}return respondWithRpcPromise('SendMail',_0xd704('0xed'),{'account':_0x1fa995,'message':{'from':util['format'](_0xd704('0xee'),_0x1645f3[_0xd704('0x3a')],_0x1645f3[_0xd704('0xef')]||_0x1645f3[_0xd704('0xe3')]['user']),'to':_0x208d97[_0xd704('0xe5')],'subject':_0x208d97[_0xd704('0xf0')],'html':_0x2b83af[_0xd704('0x62')],'attachments':_0x1d47a6}},client9003)[_0xd704('0x1f')](function(){return _0x2b83af;})['catch'](function(_0x240a0b){console['error'](_0x240a0b);});}})[_0xd704('0x1f')](function(){if(_0x208d97&&_0x208d97[_0xd704('0xde')]&&_0x208d97['MailAccountId']){var _0x3d13f1=[];if(_0x47c9d5[_0xd704('0x47')]){_0x3d13f1=_0x47c9d5[_0xd704('0x41')](function(_0x45a4ff){return{'name':_0x45a4ff[_0xd704('0xd8')],'basename':_0x45a4ff['filename'],'type':_0x45a4ff[_0xd704('0xd9')],'ChatOfflineMessageId':_0x33cb85['id']};});}var _0x3f53e4;if(!_[_0xd704('0x7f')](_0x208d97[_0xd704('0xf1')])){var _0x505342=_['map'](_0x559368['body'],function(_0x2997a5){return _0x2997a5;});var _0x5b70ce=_['toPairsIn'](_0x505342)[0x0];var _0xe163b3=_[_0xd704('0xf2')](_0x5b70ce,function(_0x4fb1d7){return _0x4fb1d7;});_0x3f53e4=_0xe163b3[0x1][_0x208d97[_0xd704('0xf1')]];}var _0x3547dd={'from':_0x2c767a[_0xd704('0xef')],'firstName':_0x2c767a[_0xd704('0xba')],'lastName':_0x2c767a[_0xd704('0xaa')],'mapKey':'email','message':{'from':_0x2c767a[_0xd704('0xef')],'to':_0x208d97[_0xd704('0xd2')][_0xd704('0xef')],'cc':'','subject':_[_0xd704('0x7f')](_0x3f53e4)?_0x208d97[_0xd704('0xf0')]:_0x3f53e4,'messageId':'','sentAt':new Date(),'attach':_0x3d13f1[_0xd704('0x47')],'attachments':_0x3d13f1,'originChannel':_0xd704('0xf3'),'ChatWebsiteId':_0x208d97['id'],'ChatOfflineMessageId':_0x2b83af['id'],'originTo':_0x208d97[_0xd704('0xd2')][_0xd704('0xef')]},'body':_0x2b83af[_0xd704('0x62')]};var _0x4e0436={'account':{'id':_0x208d97[_0xd704('0xf4')]},'body':_0x3547dd,'log':'NotifyMailAccount'};return respondWithRpcPromise(_0xd704('0xf5'),_0xd704('0xf6'),_0x4e0436,client9001)[_0xd704('0x1f')](function(){return _0x2b83af;})[_0xd704('0x29')](function(_0x359b68){console[_0xd704('0x25')](_0x359b68);});}return;})['then'](function(){if(_0x2b83af){return _0x2b83af;}})['then'](respondWithResult(_0x4f60b1,null))[_0xd704('0x29')](function(_0x3ee782){console[_0xd704('0x25')](_0xd704('0x29'),_0x3ee782);for(var _0x2cc4a0 of _0x47c9d5){var _0x35e5a6=path[_0xd704('0x79')](config[_0xd704('0x7c')],'server','files','attachments',_0xd704('0xdc'),_0x2cc4a0[_0xd704('0x72')]);fs_extra['remove'](_0x35e5a6)[_0xd704('0x29')](function(_0x510154){console[_0xd704('0x25')](_0xd704('0xf7'),_0x35e5a6,_0x510154);});}});};exports[_0xd704('0xf8')]=function(_0x3df865,_0x1199a9,_0x2dacb9){return db['ChatInteraction'][_0xd704('0x63')]({'where':{'id':_0x3df865[_0xd704('0x57')]['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x1199a9,null))[_0xd704('0x1f')](function(_0x238135){if(_0x238135){return _0x238135[_0xd704('0xf8')](_0x3df865[_0xd704('0x62')][_0xd704('0x6c')],_[_0xd704('0xf9')](_0x3df865[_0xd704('0x62')],['ids','id'])||{});}})[_0xd704('0x1f')](respondWithResult(_0x1199a9,null))['catch'](handleError(_0x1199a9,null));};exports[_0xd704('0xfa')]=function(_0x4edbba,_0x24c5e4,_0x89c231){var _0x79cdff={'raw':![],'where':{}};var _0xf8eb7={};var _0x4daec3={'count':0x0,'rows':[]};return db[_0xd704('0x3d')][_0xd704('0x69')]({'where':{'id':_0x4edbba[_0xd704('0x57')]['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x24c5e4,null))['then'](function(_0x2bb59d){if(_0x2bb59d){_0xf8eb7[_0xd704('0x40')]=_['keys'](db[_0xd704('0xb6')][_0xd704('0x3e')]);_0xf8eb7[_0xd704('0x42')]=_['keys'](_0x4edbba['query']);_0xf8eb7[_0xd704('0x4e')]=_['intersection'](_0xf8eb7['model'],_0xf8eb7[_0xd704('0x42')]);_0x79cdff['attributes']=_[_0xd704('0x45')](_0xf8eb7[_0xd704('0x40')],qs['fields'](_0x4edbba[_0xd704('0x42')][_0xd704('0x46')]));_0x79cdff[_0xd704('0x44')]=_0x79cdff[_0xd704('0x44')]['length']?_0x79cdff[_0xd704('0x44')]:_0xf8eb7[_0xd704('0x40')];if(!_0x4edbba['query'][_0xd704('0x48')](_0xd704('0x49'))){_0x79cdff[_0xd704('0x2f')]=qs[_0xd704('0x2f')](_0x4edbba['query']['limit']);_0x79cdff[_0xd704('0x2d')]=qs[_0xd704('0x2d')](_0x4edbba['query'][_0xd704('0x2d')]);}_0x79cdff[_0xd704('0x4a')]=qs[_0xd704('0x4b')](_0x4edbba['query'][_0xd704('0x4b')]);_0x79cdff[_0xd704('0x4c')]=qs[_0xd704('0x4e')](_[_0xd704('0x4d')](_0x4edbba['query'],_0xf8eb7[_0xd704('0x4e')]));_0x79cdff['where'][_0xd704('0x66')]=_0x2bb59d['id'];if(_0x4edbba[_0xd704('0x42')][_0xd704('0x4f')]){_0x79cdff['where']=_[_0xd704('0x50')](_0x79cdff[_0xd704('0x4c')],{'$or':_['map'](_0x79cdff['attributes'],function(_0x512a90){var _0x3121a5={};_0x3121a5[_0x512a90]={'$like':'%'+_0x4edbba[_0xd704('0x42')][_0xd704('0x4f')]+'%'};return _0x3121a5;})});}_0x79cdff=_[_0xd704('0x50')]({},_0x79cdff,_0x4edbba[_0xd704('0x52')]);return db[_0xd704('0xb6')][_0xd704('0x53')]({'where':_0x79cdff[_0xd704('0x4c')]})[_0xd704('0x1f')](function(_0x523d43){_0x4daec3[_0xd704('0x53')]=_0x523d43;if(_0x4edbba['query'][_0xd704('0x58')]){_0x79cdff[_0xd704('0x54')]=[{'model':db['CmContact'],'as':_0xd704('0xfb'),'required':![]},{'model':db['User'],'as':_0xd704('0xfc'),'attributes':[_0xd704('0x3a'),_0xd704('0xfd'),_0xd704('0xfe')],'required':![]},{'model':db['Tag'],'as':_0xd704('0xff'),'attributes':['id',_0xd704('0x3a'),'color'],'where':_0x4edbba['query'][_0xd704('0x100')]?{'id':_0x4edbba[_0xd704('0x42')][_0xd704('0x100')]}:undefined,'required':_0x4edbba[_0xd704('0x42')]['tag']?!![]:![]}];}return db[_0xd704('0xb6')][_0xd704('0x6a')](_0x79cdff);})[_0xd704('0x1f')](function(_0x4aca3b){_0x4daec3[_0xd704('0x55')]=_0x4aca3b;return _0x4daec3;});}})[_0xd704('0x1f')](respondWithFilteredResult(_0x24c5e4,_0x79cdff))[_0xd704('0x29')](handleError(_0x24c5e4,null));};function iftimePromise(_0x36740c,_0x5483de){return respondWithRpcPromise(_0xd704('0x101'),'getSnippet',{'command':_0x5483de[_0xd704('0x102')]?util[_0xd704('0xaf')](_0xd704('0x103'),_0x36740c[_0xd704('0x104')],_0x5483de[_0xd704('0x102')]):util[_0xd704('0xaf')](_0xd704('0x105'),_0x36740c['interval'])},client9002)[_0xd704('0x1f')](function(_0x57fc25){var _0x1b0b86=_0x57fc25&&_0x57fc25['indexOf'](_0xd704('0x106'))>=0x0?!![]:![];logger[_0xd704('0x20')](_0xd704('0x107'),_0x5483de['id'],_0x36740c['id'],_0x36740c['interval'],_0x1b0b86?_0xd704('0x108'):'OFFLINE',_0x5483de[_0xd704('0x102')]?_0x5483de['timezone']:_0xd704('0x109'));return _0x1b0b86;})[_0xd704('0x29')](function(_0x5ae341){logger[_0xd704('0x25')]('[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)',_0x5483de['id'],_0x36740c['id'],_0x36740c[_0xd704('0x104')],util[_0xd704('0x10a')](_0x5ae341,{'showHidden':![],'depth':null}),_0x5483de['timezone']?_0x5483de[_0xd704('0x102')]:_0xd704('0x109'));return![];});}exports[_0xd704('0x10b')]=function(_0x236fb5,_0x2d3525,_0xca192e){var _0xa1e37e=0x0;var _0x59d60a=0x0;var _0xa347d4=![];var _0x1b490e;var _0x14faa1;return db[_0xd704('0x3d')][_0xd704('0x63')]({'where':{'id':_0x236fb5[_0xd704('0x57')]['id']},'include':[{'model':db[_0xd704('0x10c')],'as':_0xd704('0x10c'),'include':[{'model':db[_0xd704('0x10c')],'as':_0xd704('0x10d'),'attributes':['id',_0xd704('0x104')],'raw':!![]}]}]})[_0xd704('0x1f')](handleEntityNotFound(_0x2d3525,null))['then'](function(_0x77c179){if(_0x77c179){_0x1b490e=_0x77c179;return _0x77c179[_0xd704('0x10e')]({'raw':!![]});}})[_0xd704('0x1f')](function(_0x18fd9c){if(_0x1b490e){if(_0x18fd9c){_0x14faa1=_0x18fd9c;}}return require(_0xd704('0x14'))['getLicense']();})[_0xd704('0x1f')](function(_0x1cf59c){if(_0x1cf59c){_0x59d60a=_0x1cf59c[_0xd704('0x10f')];_0xa347d4=_0x1cf59c[_0xd704('0x7b')];}})['then'](function(){return db[_0xd704('0xb6')][_0xd704('0x53')]({'where':{'closed':![]}});})[_0xd704('0x1f')](function(_0x391d47){_0xa1e37e=_0x391d47;if(_0x59d60a&&_0x391d47>_0x59d60a){return db[_0xd704('0x110')]['findOne']({'where':{'id':0x1}})['then'](function(_0x1ca802){if(_0x1ca802){_0x1ca802[_0xd704('0x111')](_0xd704('0x112'));}});}})['then'](function(){if(_0x1b490e[_0xd704('0x10c')]&&_0x1b490e[_0xd704('0x10c')][_0xd704('0x10d')]){var _0x13bf04=[];for(var _0x18e026=0x0;_0x18e026<_0x1b490e[_0xd704('0x10c')][_0xd704('0x10d')][_0xd704('0x47')];_0x18e026++){var _0x621725=_0x1b490e['Interval'][_0xd704('0x10d')][_0x18e026][_0xd704('0x36')]({'plain':!![]});_0x13bf04[_0xd704('0xbe')](iftimePromise(_0x621725,_0x1b490e));}return BPromise['all'](_0x13bf04)[_0xd704('0x1f')](function(_0x26e443){return _['some'](_0x26e443);});}else{return!![];}})[_0xd704('0x1f')](function(_0x257157){var _0x2b37f0=fs[_0xd704('0x113')](path[_0xd704('0x79')](config[_0xd704('0x7c')],_0xd704('0x114')),_0xd704('0xd5'));var _0x439b50={'remote':_0x1b490e[_0xd704('0x115')],'query':querystring['stringify'](_[_0xd704('0x50')](_0x1b490e['get']({'plain':!![]}),{'customerIp':_0x236fb5['headers'][_0xd704('0xa8')]||_0x236fb5[_0xd704('0x88')][_0xd704('0x116')]||_0x236fb5['connection']['remoteAddress']||_0x236fb5['ip'],'referer':_0x236fb5[_0xd704('0x88')]['referer'],'openedInteractions':_0xa1e37e,'maxInteractions':_0x59d60a,'virtual':_0xa347d4[_0xd704('0x10f')],'online':_0x257157,'custom':_0xa347d4}))[_0xd704('0x117')](/'/g,'\x5c\x27')};_0x2d3525[_0xd704('0xcd')](ejs[_0xd704('0xd6')](Mustache[_0xd704('0xd6')](_0x2b37f0,_0x439b50),{'proactiveActions':_0x14faa1,'alignment':_0x1b490e[_0xd704('0x118')],'verticalAlignment':_0x1b490e['verticalAlignment'],'div_color':_0x1b490e[_0xd704('0x119')],'text_color':_0x1b490e[_0xd704('0x11a')],'button_color':_0x1b490e[_0xd704('0x11b')],'background_color':_0x1b490e['backgroundColor']}));})['catch'](handleError(_0x2d3525,null));};exports[_0xd704('0x11c')]=function(_0x2a2a64,_0x26cc99,_0x4f11a9){return db[_0xd704('0x3d')][_0xd704('0x69')]({'where':{'id':_0x2a2a64[_0xd704('0x57')]['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x26cc99,null))[_0xd704('0x1f')](function(_0x3bed8e){if(_0x3bed8e){return db[_0xd704('0xdf')]['transaction'](function(_0x488174){return db[_0xd704('0x9c')][_0xd704('0x35')]({'where':{'ChatWebsiteId':_0x2a2a64[_0xd704('0x57')]['id']},'transaction':_0x488174})[_0xd704('0x1f')](function(_0x2fc133){var _0x406d61=_[_0xd704('0x41')](_0x2a2a64[_0xd704('0x62')],function(_0x3e72ce){_0x3e72ce['ChatWebsiteId']=_0x2a2a64['params']['id'];return _0x3e72ce;});return db[_0xd704('0x9c')][_0xd704('0x11d')](_0x406d61,{'transaction':_0x488174});});})[_0xd704('0x1f')](function(){return db['ChatApplication'][_0xd704('0x11e')]({'where':{'ChatWebsiteId':_0x2a2a64[_0xd704('0x57')]['id']},'order':_0xd704('0x11f')});});}})['then'](respondWithResult(_0x26cc99,null))['catch'](handleError(_0x26cc99,null));};exports[_0xd704('0x120')]=function(_0x233eff,_0x365dd1,_0x185062){var _0x38f162={};var _0x47d372={};var _0x3921c7;var _0x10e3b6;return db[_0xd704('0x3d')][_0xd704('0x69')]({'where':{'id':_0x233eff[_0xd704('0x57')]['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x365dd1,null))[_0xd704('0x1f')](function(_0x4a6f38){if(_0x4a6f38){_0x3921c7=_0x4a6f38;_0x47d372[_0xd704('0x40')]=_['keys'](db[_0xd704('0x9c')]['rawAttributes']);_0x47d372['query']=_[_0xd704('0x43')](_0x233eff[_0xd704('0x42')]);_0x47d372['filters']=_[_0xd704('0x45')](_0x47d372[_0xd704('0x40')],_0x47d372[_0xd704('0x42')]);_0x38f162[_0xd704('0x44')]=_['intersection'](_0x47d372[_0xd704('0x40')],qs[_0xd704('0x46')](_0x233eff[_0xd704('0x42')][_0xd704('0x46')]));_0x38f162[_0xd704('0x44')]=_0x38f162[_0xd704('0x44')][_0xd704('0x47')]?_0x38f162['attributes']:_0x47d372['model'];_0x38f162['order']=qs['sort'](_0x233eff[_0xd704('0x42')][_0xd704('0x4b')]);_0x38f162[_0xd704('0x4c')]=qs['filters'](_[_0xd704('0x4d')](_0x233eff[_0xd704('0x42')],_0x47d372[_0xd704('0x4e')]));if(_0x233eff['query'][_0xd704('0x4f')]){_0x38f162[_0xd704('0x4c')]=_[_0xd704('0x50')](_0x38f162[_0xd704('0x4c')],{'$or':_[_0xd704('0x41')](_0x38f162[_0xd704('0x44')],function(_0x10c212){var _0x4e9e72={};_0x4e9e72[_0x10c212]={'$like':'%'+_0x233eff[_0xd704('0x42')][_0xd704('0x4f')]+'%'};return _0x4e9e72;})});}_0x38f162=_[_0xd704('0x50')]({},_0x38f162,_0x233eff[_0xd704('0x52')]);return _0x3921c7['getApplications'](_0x38f162);}})[_0xd704('0x1f')](function(_0x151bd3){if(_0x151bd3){_0x10e3b6=_0x151bd3['length'];if(!_0x233eff[_0xd704('0x42')][_0xd704('0x48')]('nolimit')){_0x38f162[_0xd704('0x2f')]=qs[_0xd704('0x2f')](_0x233eff[_0xd704('0x42')]['limit']);_0x38f162['offset']=qs[_0xd704('0x2d')](_0x233eff[_0xd704('0x42')][_0xd704('0x2d')]);}return _0x3921c7['getApplications'](_0x38f162);}})['then'](function(_0x58374e){if(_0x58374e){return _0x58374e?{'count':_0x10e3b6,'rows':_0x58374e}:null;}})[_0xd704('0x1f')](respondWithResult(_0x365dd1,null))[_0xd704('0x29')](handleError(_0x365dd1,null));};exports[_0xd704('0x121')]=function(_0x6f37cb,_0x4b801d,_0x5d7da6){return db[_0xd704('0x122')][_0xd704('0x63')]({'where':{'id':_0x6f37cb['params']['id']}})['then'](handleEntityNotFound(_0x4b801d,null))[_0xd704('0x1f')](function(_0x2c9f82){if(_0x2c9f82){return _0x2c9f82[_0xd704('0x121')](_0x6f37cb[_0xd704('0x62')][_0xd704('0x6c')],_[_0xd704('0xf9')](_0x6f37cb[_0xd704('0x62')],['ids','id'])||{});}})[_0xd704('0x1f')](respondWithResult(_0x4b801d,null))['catch'](handleError(_0x4b801d,null));};exports[_0xd704('0x10e')]=function(_0x46b67d,_0xf04d03,_0x10d26b){var _0x58366c={};var _0x1cf548={};var _0x54fb0a;var _0x106f1f;return db[_0xd704('0x3d')][_0xd704('0x69')]({'where':{'id':_0x46b67d[_0xd704('0x57')]['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0xf04d03,null))[_0xd704('0x1f')](function(_0x1b2e0c){if(_0x1b2e0c){_0x54fb0a=_0x1b2e0c;_0x1cf548[_0xd704('0x40')]=_[_0xd704('0x43')](db[_0xd704('0x123')][_0xd704('0x3e')]);_0x1cf548[_0xd704('0x42')]=_[_0xd704('0x43')](_0x46b67d[_0xd704('0x42')]);_0x1cf548[_0xd704('0x4e')]=_[_0xd704('0x45')](_0x1cf548[_0xd704('0x40')],_0x1cf548[_0xd704('0x42')]);_0x58366c[_0xd704('0x44')]=_[_0xd704('0x45')](_0x1cf548[_0xd704('0x40')],qs[_0xd704('0x46')](_0x46b67d[_0xd704('0x42')][_0xd704('0x46')]));_0x58366c[_0xd704('0x44')]=_0x58366c[_0xd704('0x44')][_0xd704('0x47')]?_0x58366c['attributes']:_0x1cf548['model'];_0x58366c['order']=qs[_0xd704('0x4b')](_0x46b67d[_0xd704('0x42')][_0xd704('0x4b')]);_0x58366c[_0xd704('0x4c')]=qs[_0xd704('0x4e')](_[_0xd704('0x4d')](_0x46b67d[_0xd704('0x42')],_0x1cf548[_0xd704('0x4e')]));if(_0x46b67d['query'][_0xd704('0x4f')]){_0x58366c[_0xd704('0x4c')]=_['merge'](_0x58366c[_0xd704('0x4c')],{'$or':_['map'](_0x58366c[_0xd704('0x44')],function(_0x122002){var _0x1a639e={};_0x1a639e[_0x122002]={'$like':'%'+_0x46b67d[_0xd704('0x42')][_0xd704('0x4f')]+'%'};return _0x1a639e;})});}_0x58366c=_['merge']({},_0x58366c,_0x46b67d[_0xd704('0x52')]);return _0x54fb0a[_0xd704('0x10e')](_0x58366c);}})['then'](function(_0x15d992){if(_0x15d992){_0x106f1f=_0x15d992['length'];if(!_0x46b67d[_0xd704('0x42')][_0xd704('0x48')](_0xd704('0x49'))){_0x58366c[_0xd704('0x2f')]=qs[_0xd704('0x2f')](_0x46b67d[_0xd704('0x42')][_0xd704('0x2f')]);_0x58366c[_0xd704('0x2d')]=qs[_0xd704('0x2d')](_0x46b67d[_0xd704('0x42')]['offset']);}return _0x54fb0a[_0xd704('0x10e')](_0x58366c);}})[_0xd704('0x1f')](function(_0x452e4a){if(_0x452e4a){return _0x452e4a?{'count':_0x106f1f,'rows':_0x452e4a}:null;}})[_0xd704('0x1f')](respondWithResult(_0xf04d03,null))[_0xd704('0x29')](handleError(_0xf04d03,null));};exports['getFields']=function(_0x3deb58,_0x1ecb06,_0x25918d){var _0x4ec8ba=_0x3deb58[_0xd704('0x42')][_0xd704('0x124')]==='false'?_0xd704('0x125'):_0xd704('0x126');return db[_0xd704('0x3d')][_0xd704('0x63')]({'attributes':['id',_0x4ec8ba],'where':{'id':_0x3deb58[_0xd704('0x57')]['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x1ecb06,null))[_0xd704('0x1f')](function(_0x487713){if(_0x487713){var _0x1cdebf=_0x487713[_0x4ec8ba];var _0x56dbbe=_0x1cdebf&&_0x1cdebf[_0xd704('0x127')]?_0x1cdebf[_0xd704('0x127')]:[];_0x1ecb06[_0xd704('0xcd')]({'fromKey':_[_0xd704('0x7f')](_0x1cdebf[_0xd704('0x128')])?undefined:_0x1cdebf[_0xd704('0x128')],'count':_0x56dbbe['length'],'rows':_0x56dbbe});}})[_0xd704('0x29')](handleError(_0x1ecb06,null));};exports['getOfflineMessages']=function(_0x4e07f4,_0x224bbe,_0x2f37cb){var _0x2ffd97={'raw':![],'where':{}};var _0x406fa7={};var _0x2c1f5e={'count':0x0,'rows':[]};return db[_0xd704('0x3d')][_0xd704('0x69')]({'where':{'id':_0x4e07f4[_0xd704('0x57')]['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x224bbe,null))[_0xd704('0x1f')](function(_0x44fbca){if(_0x44fbca){_0x406fa7[_0xd704('0x40')]=_[_0xd704('0x43')](db[_0xd704('0xd7')][_0xd704('0x3e')]);_0x406fa7[_0xd704('0x42')]=_[_0xd704('0x43')](_0x4e07f4[_0xd704('0x42')]);_0x406fa7['filters']=_[_0xd704('0x45')](_0x406fa7[_0xd704('0x40')],_0x406fa7[_0xd704('0x42')]);_0x2ffd97[_0xd704('0x44')]=_[_0xd704('0x45')](_0x406fa7[_0xd704('0x40')],qs[_0xd704('0x46')](_0x4e07f4[_0xd704('0x42')]['fields']));_0x2ffd97[_0xd704('0x44')]=_0x2ffd97[_0xd704('0x44')][_0xd704('0x47')]?_0x2ffd97[_0xd704('0x44')]:_0x406fa7['model'];if(!_0x4e07f4[_0xd704('0x42')]['hasOwnProperty'](_0xd704('0x49'))){_0x2ffd97[_0xd704('0x2f')]=qs[_0xd704('0x2f')](_0x4e07f4[_0xd704('0x42')][_0xd704('0x2f')]);_0x2ffd97[_0xd704('0x2d')]=qs[_0xd704('0x2d')](_0x4e07f4[_0xd704('0x42')][_0xd704('0x2d')]);}_0x2ffd97[_0xd704('0x4a')]=qs['sort'](_0x4e07f4['query']['sort']);_0x2ffd97[_0xd704('0x4c')]=qs[_0xd704('0x4e')](_[_0xd704('0x4d')](_0x4e07f4['query'],_0x406fa7[_0xd704('0x4e')]));_0x2ffd97['where']['ChatWebsiteId']=_0x44fbca['id'];if(_0x4e07f4[_0xd704('0x42')][_0xd704('0x4f')]){_0x2ffd97[_0xd704('0x4c')]=_[_0xd704('0x50')](_0x2ffd97['where'],{'$or':_['map'](_0x2ffd97[_0xd704('0x44')],function(_0x51e4db){var _0x3dc852={};_0x3dc852[_0x51e4db]={'$like':'%'+_0x4e07f4['query'][_0xd704('0x4f')]+'%'};return _0x3dc852;})});}_0x2ffd97=_[_0xd704('0x50')]({},_0x2ffd97,_0x4e07f4[_0xd704('0x52')]);return db[_0xd704('0xd7')]['count']({'where':_0x2ffd97[_0xd704('0x4c')]})['then'](function(_0x51378d){_0x2c1f5e[_0xd704('0x53')]=_0x51378d;if(_0x4e07f4[_0xd704('0x42')][_0xd704('0x58')]){_0x2ffd97[_0xd704('0x54')]=[{'all':!![]}];}else{_0x2ffd97[_0xd704('0x54')]=[{'model':db['CmContact'],'as':_0xd704('0xfb'),'required':![]},{'model':db[_0xd704('0xe1')],'as':'Attachments','required':![]}];}return db[_0xd704('0xd7')][_0xd704('0x6a')](_0x2ffd97);})[_0xd704('0x1f')](function(_0x1c6cc8){_0x2c1f5e[_0xd704('0x55')]=_0x1c6cc8;return _0x2c1f5e;});}})['then'](respondWithFilteredResult(_0x224bbe,_0x2ffd97))[_0xd704('0x29')](handleError(_0x224bbe,null));};exports[_0xd704('0x129')]=function(_0x5ecd1d,_0x21be49,_0x50b705){return db['ChatWebsite'][_0xd704('0x63')]({'where':{'id':_0x5ecd1d[_0xd704('0x57')]['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x21be49,null))[_0xd704('0x1f')](function(_0x114419){if(_0x114419){return _0x114419[_0xd704('0x129')](_0x5ecd1d[_0xd704('0x62')][_0xd704('0x6c')],_[_0xd704('0xf9')](_0x5ecd1d[_0xd704('0x62')],['ids','id'])||{})['spread'](function(_0x2da629){for(var _0x4b3db2=0x0;_0x4b3db2<_0x5ecd1d[_0xd704('0x62')]['ids']['length'];_0x4b3db2+=0x1){socket[_0xd704('0x12a')](_0xd704('0x12b'),{'UserId':Number(_0x5ecd1d[_0xd704('0x62')]['ids'][_0x4b3db2]),'ChatWebsiteId':Number(_0x5ecd1d['params']['id'])});}return _0x2da629;});}})[_0xd704('0x1f')](respondWithResult(_0x21be49,null))[_0xd704('0x29')](handleError(_0x21be49,null));};exports[_0xd704('0x12c')]=function(_0x3679d2,_0x1c222b,_0x25a79a){return db[_0xd704('0x3d')][_0xd704('0x63')]({'where':{'id':_0x3679d2[_0xd704('0x57')]['id']}})['then'](handleEntityNotFound(_0x1c222b,null))[_0xd704('0x1f')](function(_0x1ba88a){if(_0x1ba88a){return _0x1ba88a[_0xd704('0x12c')](_0x3679d2[_0xd704('0x42')]['ids'])[_0xd704('0x1f')](function(){if(_[_0xd704('0x12d')](_0x3679d2['query']['ids'])){for(var _0x10dd09=0x0;_0x10dd09<_0x3679d2[_0xd704('0x42')]['ids'][_0xd704('0x47')];_0x10dd09+=0x1){socket[_0xd704('0x12a')](_0xd704('0x12e'),{'UserId':Number(_0x3679d2[_0xd704('0x42')][_0xd704('0x6c')][_0x10dd09]),'ChatWebsiteId':Number(_0x3679d2[_0xd704('0x57')]['id'])});}}else{socket['emit'](_0xd704('0x12e'),{'UserId':Number(_0x3679d2[_0xd704('0x42')][_0xd704('0x6c')]),'ChatWebsiteId':Number(_0x3679d2[_0xd704('0x57')]['id'])});}});}})[_0xd704('0x1f')](respondWithStatusCode(_0x1c222b,null))['catch'](handleError(_0x1c222b,null));};exports[_0xd704('0x12f')]=function(_0x4324d1,_0x1cb7c2,_0x426939){var _0x3d097b={};var _0x244fdf={};var _0x1fc81a;var _0x122783;return db[_0xd704('0x3d')][_0xd704('0x69')]({'where':{'id':_0x4324d1[_0xd704('0x57')]['id']}})[_0xd704('0x1f')](handleEntityNotFound(_0x1cb7c2,null))[_0xd704('0x1f')](function(_0x52e3f3){if(_0x52e3f3){_0x1fc81a=_0x52e3f3;_0x244fdf['model']=_['keys'](db[_0xd704('0xc5')]['rawAttributes']);_0x244fdf[_0xd704('0x42')]=_[_0xd704('0x43')](_0x4324d1[_0xd704('0x42')]);_0x244fdf[_0xd704('0x4e')]=_[_0xd704('0x45')](_0x244fdf[_0xd704('0x40')],_0x244fdf['query']);_0x3d097b[_0xd704('0x44')]=_[_0xd704('0x45')](_0x244fdf['model'],qs['fields'](_0x4324d1['query']['fields']));_0x3d097b[_0xd704('0x44')]=_0x3d097b[_0xd704('0x44')]['length']?_0x3d097b[_0xd704('0x44')]:_0x244fdf[_0xd704('0x40')];_0x3d097b[_0xd704('0x4a')]=qs['sort'](_0x4324d1[_0xd704('0x42')][_0xd704('0x4b')]);_0x3d097b[_0xd704('0x4c')]=qs[_0xd704('0x4e')](_[_0xd704('0x4d')](_0x4324d1['query'],_0x244fdf[_0xd704('0x4e')]));if(_0x4324d1[_0xd704('0x42')]['filter']){_0x3d097b[_0xd704('0x4c')]=_[_0xd704('0x50')](_0x3d097b[_0xd704('0x4c')],{'$or':_[_0xd704('0x41')](_0x3d097b[_0xd704('0x44')],function(_0xe1101e){var _0x3beff2={};_0x3beff2[_0xe1101e]={'$like':'%'+_0x4324d1['query'][_0xd704('0x4f')]+'%'};return _0x3beff2;})});}_0x3d097b=_[_0xd704('0x50')]({},_0x3d097b,_0x4324d1[_0xd704('0x52')]);return _0x1fc81a[_0xd704('0x12f')](_0x3d097b);}})[_0xd704('0x1f')](function(_0x4a7d14){if(_0x4a7d14){_0x122783=_0x4a7d14['length'];if(!_0x4324d1[_0xd704('0x42')][_0xd704('0x48')](_0xd704('0x49'))){_0x3d097b[_0xd704('0x2f')]=qs[_0xd704('0x2f')](_0x4324d1[_0xd704('0x42')][_0xd704('0x2f')]);_0x3d097b['offset']=qs[_0xd704('0x2d')](_0x4324d1[_0xd704('0x42')][_0xd704('0x2d')]);}return _0x1fc81a[_0xd704('0x12f')](_0x3d097b);}})[_0xd704('0x1f')](function(_0xeb2fe3){if(_0xeb2fe3){return _0xeb2fe3?{'count':_0x122783,'rows':_0xeb2fe3}:null;}})[_0xd704('0x1f')](respondWithResult(_0x1cb7c2,null))[_0xd704('0x29')](handleError(_0x1cb7c2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf50b=['events','../../mysqldb','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports'];(function(_0x505bde,_0x1557e1){var _0x5b34be=function(_0x55c046){while(--_0x55c046){_0x505bde['push'](_0x505bde['shift']());}};_0x5b34be(++_0x1557e1);}(_0xf50b,0xc8));var _0xbf50=function(_0xeb32cc,_0x2fc30f){_0xeb32cc=_0xeb32cc-0x0;var _0xa8b38=_0xf50b[_0xeb32cc];return _0xa8b38;};'use strict';var EventEmitter=require(_0xbf50('0x0'));var ChatWebsite=require(_0xbf50('0x1'))['db']['ChatWebsite'];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents[_0xbf50('0x2')](0x0);var events={'afterCreate':_0xbf50('0x3'),'afterUpdate':_0xbf50('0x4'),'afterDestroy':_0xbf50('0x5')};function emitEvent(_0x5f0c1a){return function(_0x32217d,_0x4f5ba8,_0x36e4d6){ChatWebsiteEvents[_0xbf50('0x6')](_0x5f0c1a+':'+_0x32217d['id'],_0x32217d);ChatWebsiteEvents[_0xbf50('0x6')](_0x5f0c1a,_0x32217d);_0x36e4d6(null);};}for(var e in events){if(events[_0xbf50('0x7')](e)){var event=events[e];ChatWebsite[_0xbf50('0x8')](e,emitEvent(event));}}module[_0xbf50('0x9')]=ChatWebsiteEvents;
\ No newline at end of file
+var _0x07c3=['save','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','ChatWebsite','setMaxListeners'];(function(_0x1e175d,_0x41ff45){var _0x3a3ce5=function(_0x186001){while(--_0x186001){_0x1e175d['push'](_0x1e175d['shift']());}};_0x3a3ce5(++_0x41ff45);}(_0x07c3,0x1bf));var _0x307c=function(_0x412e27,_0x20a978){_0x412e27=_0x412e27-0x0;var _0x53da42=_0x07c3[_0x412e27];return _0x53da42;};'use strict';var EventEmitter=require(_0x307c('0x0'));var ChatWebsite=require(_0x307c('0x1'))['db'][_0x307c('0x2')];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents[_0x307c('0x3')](0x0);var events={'afterCreate':_0x307c('0x4'),'afterUpdate':_0x307c('0x5'),'afterDestroy':_0x307c('0x6')};function emitEvent(_0x186b09){return function(_0x52cf54,_0x37adf4,_0x3c761a){ChatWebsiteEvents[_0x307c('0x7')](_0x186b09+':'+_0x52cf54['id'],_0x52cf54);ChatWebsiteEvents[_0x307c('0x7')](_0x186b09,_0x52cf54);_0x3c761a(null);};}for(var e in events){if(events[_0x307c('0x8')](e)){var event=events[e];ChatWebsite[_0x307c('0x9')](e,emitEvent(event));}}module[_0x307c('0xa')]=ChatWebsiteEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a11=['util','../../config/logger','api','moment','bluebird','path','rimraf','exports','define','chat_websites','lodash'];(function(_0x287138,_0x879c5b){var _0x50d454=function(_0x52183f){while(--_0x52183f){_0x287138['push'](_0x287138['shift']());}};_0x50d454(++_0x879c5b);}(_0x5a11,0x1cd));var _0x15a1=function(_0x1a8b9b,_0x470b11){_0x1a8b9b=_0x1a8b9b-0x0;var _0x5618b3=_0x5a11[_0x1a8b9b];return _0x5618b3;};'use strict';var _=require(_0x15a1('0x0'));var util=require(_0x15a1('0x1'));var logger=require(_0x15a1('0x2'))(_0x15a1('0x3'));var moment=require(_0x15a1('0x4'));var BPromise=require(_0x15a1('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x15a1('0x6'));var rimraf=require(_0x15a1('0x7'));var config=require('../../config/environment');var attributes=require('./chatWebsite.attributes');module[_0x15a1('0x8')]=function(_0x3d5834,_0x58528c){return _0x3d5834[_0x15a1('0x9')]('ChatWebsite',attributes,{'tableName':_0x15a1('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x78f6=['../../config/environment','exports','define','lodash','../../config/logger','api','bluebird','path','rimraf'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x78f6,0x123));var _0x678f=function(_0x3af97a,_0x51eee5){_0x3af97a=_0x3af97a-0x0;var _0x29b764=_0x78f6[_0x3af97a];return _0x29b764;};'use strict';var _=require(_0x678f('0x0'));var util=require('util');var logger=require(_0x678f('0x1'))(_0x678f('0x2'));var moment=require('moment');var BPromise=require(_0x678f('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x678f('0x4'));var rimraf=require(_0x678f('0x5'));var config=require(_0x678f('0x6'));var attributes=require('./chatWebsite.attributes');module[_0x678f('0x7')]=function(_0x35956a,_0x1b004e){return _0x35956a[_0x678f('0x8')]('ChatWebsite',attributes,{'tableName':'chat_websites','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x28b0=['ChatWebsite,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','defaults','redis','localhost','socket.io-emitter','register','request','then','info','ChatWebsite,\x20%s,\x20%s','debug'];(function(_0x2f5095,_0x27f230){var _0xf7376e=function(_0x5226d0){while(--_0x5226d0){_0x2f5095['push'](_0x2f5095['shift']());}};_0xf7376e(++_0x27f230);}(_0x28b0,0x1e3));var _0x028b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x28b0[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x028b('0x0'));var util=require(_0x028b('0x1'));var moment=require(_0x028b('0x2'));var BPromise=require(_0x028b('0x3'));var rs=require(_0x028b('0x4'));var fs=require('fs');var Redis=require(_0x028b('0x5'));var db=require(_0x028b('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x028b('0x7'));var config=require(_0x028b('0x8'));var jayson=require(_0x028b('0x9'));var client=jayson[_0x028b('0xa')]['http']({'port':0x232a});config['redis']=_[_0x028b('0xb')](config[_0x028b('0xc')],{'host':_0x028b('0xd'),'port':0x18eb});var socket=require(_0x028b('0xe'))(new Redis(config[_0x028b('0xc')]));require('./chatWebsite.socket')[_0x028b('0xf')](socket);function respondWithRpcPromise(_0xe680b8,_0x2955ea,_0x1086c3){return new BPromise(function(_0x3a8577,_0x1a7b83){return client[_0x028b('0x10')](_0xe680b8,_0x1086c3)[_0x028b('0x11')](function(_0x206495){logger[_0x028b('0x12')](_0x028b('0x13'),_0x2955ea,'request\x20sent');logger[_0x028b('0x14')](_0x028b('0x15'),_0x2955ea,_0x028b('0x16'),JSON[_0x028b('0x17')](_0x206495));if(_0x206495[_0x028b('0x18')]){if(_0x206495['error']['code']===0x1f4){logger[_0x028b('0x18')](_0x028b('0x13'),_0x2955ea,_0x206495[_0x028b('0x18')][_0x028b('0x19')]);return _0x1a7b83(_0x206495[_0x028b('0x18')][_0x028b('0x19')]);}logger[_0x028b('0x18')]('ChatWebsite,\x20%s,\x20%s',_0x2955ea,_0x206495[_0x028b('0x18')][_0x028b('0x19')]);return _0x3a8577(_0x206495[_0x028b('0x18')][_0x028b('0x19')]);}else{logger[_0x028b('0x12')](_0x028b('0x13'),_0x2955ea,_0x028b('0x16'));_0x3a8577(_0x206495[_0x028b('0x1a')][_0x028b('0x19')]);}})[_0x028b('0x1b')](function(_0x618e96){logger['error'](_0x028b('0x13'),_0x2955ea,_0x618e96);_0x1a7b83(_0x618e96);});});}
\ No newline at end of file
+var _0x2cfa=['./chatWebsite.socket','register','then','info','ChatWebsite,\x20%s,\x20%s','request\x20sent','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','error','code','message','catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter'];(function(_0x52d461,_0x289904){var _0x5c76b8=function(_0x363ffb){while(--_0x363ffb){_0x52d461['push'](_0x52d461['shift']());}};_0x5c76b8(++_0x289904);}(_0x2cfa,0x93));var _0xa2cf=function(_0xadc7d9,_0x203608){_0xadc7d9=_0xadc7d9-0x0;var _0x915ca1=_0x2cfa[_0xadc7d9];return _0x915ca1;};'use strict';var _=require(_0xa2cf('0x0'));var util=require('util');var moment=require(_0xa2cf('0x1'));var BPromise=require(_0xa2cf('0x2'));var rs=require(_0xa2cf('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa2cf('0x4'))['db'];var utils=require(_0xa2cf('0x5'));var logger=require(_0xa2cf('0x6'))(_0xa2cf('0x7'));var config=require(_0xa2cf('0x8'));var jayson=require(_0xa2cf('0x9'));var client=jayson[_0xa2cf('0xa')][_0xa2cf('0xb')]({'port':0x232a});config[_0xa2cf('0xc')]=_['defaults'](config[_0xa2cf('0xc')],{'host':_0xa2cf('0xd'),'port':0x18eb});var socket=require(_0xa2cf('0xe'))(new Redis(config[_0xa2cf('0xc')]));require(_0xa2cf('0xf'))[_0xa2cf('0x10')](socket);function respondWithRpcPromise(_0x44be18,_0x2c9797,_0x1069a9){return new BPromise(function(_0x5838bb,_0x47f152){return client['request'](_0x44be18,_0x1069a9)[_0xa2cf('0x11')](function(_0xc4b965){logger[_0xa2cf('0x12')](_0xa2cf('0x13'),_0x2c9797,_0xa2cf('0x14'));logger[_0xa2cf('0x15')](_0xa2cf('0x16'),_0x2c9797,_0xa2cf('0x14'),JSON['stringify'](_0xc4b965));if(_0xc4b965[_0xa2cf('0x17')]){if(_0xc4b965[_0xa2cf('0x17')][_0xa2cf('0x18')]===0x1f4){logger[_0xa2cf('0x17')]('ChatWebsite,\x20%s,\x20%s',_0x2c9797,_0xc4b965['error'][_0xa2cf('0x19')]);return _0x47f152(_0xc4b965[_0xa2cf('0x17')]['message']);}logger[_0xa2cf('0x17')](_0xa2cf('0x13'),_0x2c9797,_0xc4b965['error'][_0xa2cf('0x19')]);return _0x5838bb(_0xc4b965[_0xa2cf('0x17')][_0xa2cf('0x19')]);}else{logger['info']('ChatWebsite,\x20%s,\x20%s',_0x2c9797,_0xa2cf('0x14'));_0x5838bb(_0xc4b965['result'][_0xa2cf('0x19')]);}})[_0xa2cf('0x1a')](function(_0x55731c){logger[_0xa2cf('0x17')]('ChatWebsite,\x20%s,\x20%s',_0x2c9797,_0x55731c);_0x47f152(_0x55731c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x38a9=['length','chatWebsite:','save','update','removeListener'];(function(_0x45e8c0,_0x4163a5){var _0x320a07=function(_0x2e9a44){while(--_0x2e9a44){_0x45e8c0['push'](_0x45e8c0['shift']());}};_0x320a07(++_0x4163a5);}(_0x38a9,0x13d));var _0x938a=function(_0x30cbb3,_0x499c45){_0x30cbb3=_0x30cbb3-0x0;var _0x59177e=_0x38a9[_0x30cbb3];return _0x59177e;};'use strict';var ChatWebsiteEvents=require('./chatWebsite.events');var events=[_0x938a('0x0'),'remove',_0x938a('0x1')];function createListener(_0x37dc85,_0x501587){return function(_0x213c12){_0x501587['emit'](_0x37dc85,_0x213c12);};}function removeListener(_0x5ad0ea,_0xc71ffd){return function(){ChatWebsiteEvents[_0x938a('0x2')](_0x5ad0ea,_0xc71ffd);};}exports['register']=function(_0x31ef0c){for(var _0x51b67f=0x0,_0x1f9400=events[_0x938a('0x3')];_0x51b67f<_0x1f9400;_0x51b67f++){var _0x3b2744=events[_0x51b67f];var _0xdda1cc=createListener(_0x938a('0x4')+_0x3b2744,_0x31ef0c);ChatWebsiteEvents['on'](_0x3b2744,_0xdda1cc);}};
\ No newline at end of file
+var _0x2d66=['./chatWebsite.events','update','register'];(function(_0x4a0860,_0x35db63){var _0x104ce5=function(_0x372e98){while(--_0x372e98){_0x4a0860['push'](_0x4a0860['shift']());}};_0x104ce5(++_0x35db63);}(_0x2d66,0x1da));var _0x62d6=function(_0xd42f23,_0x4a7917){_0xd42f23=_0xd42f23-0x0;var _0x8b06e3=_0x2d66[_0xd42f23];return _0x8b06e3;};'use strict';var ChatWebsiteEvents=require(_0x62d6('0x0'));var events=['save','remove',_0x62d6('0x1')];function createListener(_0x1b8d2c,_0x18c989){return function(_0x47e61d){_0x18c989['emit'](_0x1b8d2c,_0x47e61d);};}function removeListener(_0x488ecd,_0x1c9cd0){return function(){ChatWebsiteEvents['removeListener'](_0x488ecd,_0x1c9cd0);};}exports[_0x62d6('0x2')]=function(_0x489465){for(var _0xb78f95=0x0,_0x440740=events['length'];_0xb78f95<_0x440740;_0xb78f95++){var _0x109a3f=events[_0xb78f95];var _0x47b39b=createListener('chatWebsite:'+_0x109a3f,_0x489465);ChatWebsiteEvents['on'](_0x109a3f,_0x47b39b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f0b=['/:id/canned_answers','getAnswers','/:id/logo','getLogo','/:id/avatar','getAvatar','/:id/customer_avatar','getCustomerAvatar','/:id/system_avatar','getSystemAvatar','/:id/interactions','getInteractions','getSnippet','getApplications','/:id/proactive_actions','getProactiveActions','getFields','/:id/offline_messages','/:id/users','getAgents','post','create','addAnswer','join','root','server/files/images/logos/','format','%s-%s','now','originalname','addLogo','server/files/images/avatars/','single','file','diskStorage','addCustomerAvatar','addSystemAvatar','/:id/notify','notify','server/files','attachments','offline-chat','ensureDir','extname','replace','/:id/offline','any','offline','addInteraction','/:id/applications','addApplications','addProactiveActions','addAgents','update','delete','destroy','removeAnswers','removeAgents','exports','multer','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/dispositions','getDispositions'];(function(_0x42ec50,_0x13563d){var _0x35e7c0=function(_0x57f2f1){while(--_0x57f2f1){_0x42ec50['push'](_0x42ec50['shift']());}};_0x35e7c0(++_0x13563d);}(_0x7f0b,0x85));var _0xb7f0=function(_0x3b150c,_0x2f93f8){_0x3b150c=_0x3b150c-0x0;var _0x5cd414=_0x7f0b[_0x3b150c];return _0x5cd414;};'use strict';var multer=require(_0xb7f0('0x0'));var util=require(_0xb7f0('0x1'));var path=require('path');var timeout=require(_0xb7f0('0x2'));var express=require('express');var router=express[_0xb7f0('0x3')]();var fs_extra=require(_0xb7f0('0x4'));var auth=require(_0xb7f0('0x5'));var interaction=require(_0xb7f0('0x6'));var config=require(_0xb7f0('0x7'));var controller=require('./chatWebsite.controller');router[_0xb7f0('0x8')]('/',auth[_0xb7f0('0x9')](),controller[_0xb7f0('0xa')]);router[_0xb7f0('0x8')]('/describe',auth['isAuthenticated'](),controller['describe']);router['get'](_0xb7f0('0xb'),auth[_0xb7f0('0x9')](),controller[_0xb7f0('0xc')]);router[_0xb7f0('0x8')](_0xb7f0('0xd'),auth[_0xb7f0('0x9')](),controller[_0xb7f0('0xe')]);router['get'](_0xb7f0('0xf'),auth[_0xb7f0('0x9')](),controller[_0xb7f0('0x10')]);router['get'](_0xb7f0('0x11'),controller[_0xb7f0('0x12')]);router['get'](_0xb7f0('0x13'),controller[_0xb7f0('0x14')]);router[_0xb7f0('0x8')](_0xb7f0('0x15'),controller[_0xb7f0('0x16')]);router[_0xb7f0('0x8')](_0xb7f0('0x17'),controller[_0xb7f0('0x18')]);router[_0xb7f0('0x8')](_0xb7f0('0x19'),auth['isAuthenticated'](),controller[_0xb7f0('0x1a')]);router[_0xb7f0('0x8')]('/:id/snippet',controller[_0xb7f0('0x1b')]);router[_0xb7f0('0x8')]('/:id/applications',auth[_0xb7f0('0x9')](),controller[_0xb7f0('0x1c')]);router['get'](_0xb7f0('0x1d'),auth[_0xb7f0('0x9')](),controller[_0xb7f0('0x1e')]);router['get']('/:id/fields',controller[_0xb7f0('0x1f')]);router[_0xb7f0('0x8')](_0xb7f0('0x20'),auth[_0xb7f0('0x9')](),controller['getOfflineMessages']);router[_0xb7f0('0x8')](_0xb7f0('0x21'),auth[_0xb7f0('0x9')](),controller[_0xb7f0('0x22')]);router[_0xb7f0('0x23')]('/',auth['isAuthenticated'](),controller[_0xb7f0('0x24')]);router[_0xb7f0('0x23')](_0xb7f0('0xd'),auth['isAuthenticated'](),controller['addDisposition']);router[_0xb7f0('0x23')]('/:id/canned_answers',auth[_0xb7f0('0x9')](),controller[_0xb7f0('0x25')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x40f8ec,_0x289274,_0x30ceb5){_0x30ceb5(null,path[_0xb7f0('0x26')](config[_0xb7f0('0x27')],_0xb7f0('0x28')));},'filename':function(_0x5e23ec,_0x4a6279,_0x1668f2){_0x1668f2(null,util[_0xb7f0('0x29')](_0xb7f0('0x2a'),Date[_0xb7f0('0x2b')](),_0x4a6279[_0xb7f0('0x2c')]));}})});router['post'](_0xb7f0('0x11'),upload['single']('file'),controller[_0xb7f0('0x2d')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x3709fc,_0x487deb,_0x53047b){_0x53047b(null,path[_0xb7f0('0x26')](config[_0xb7f0('0x27')],_0xb7f0('0x2e')));},'filename':function(_0x5b7f3c,_0xa26810,_0x4fd4ce){_0x4fd4ce(null,util[_0xb7f0('0x29')](_0xb7f0('0x2a'),Date[_0xb7f0('0x2b')](),_0xa26810[_0xb7f0('0x2c')]));}})});router['post'](_0xb7f0('0x13'),upload[_0xb7f0('0x2f')](_0xb7f0('0x30')),controller['addAvatar']);var upload=multer({'storage':multer[_0xb7f0('0x31')]({'destination':function(_0x1bc18a,_0x20400a,_0x5e6fa9){_0x5e6fa9(null,path[_0xb7f0('0x26')](config[_0xb7f0('0x27')],'server/files/images/avatars/'));},'filename':function(_0x5d9be3,_0x299bb0,_0x22ba83){_0x22ba83(null,util[_0xb7f0('0x29')]('%s-%s',Date['now'](),_0x299bb0['originalname']));}})});router[_0xb7f0('0x23')](_0xb7f0('0x15'),upload['single']('file'),controller[_0xb7f0('0x32')]);var upload=multer({'storage':multer[_0xb7f0('0x31')]({'destination':function(_0x16adfe,_0xae9972,_0x3f6b8a){_0x3f6b8a(null,path[_0xb7f0('0x26')](config[_0xb7f0('0x27')],_0xb7f0('0x2e')));},'filename':function(_0x22de44,_0x259495,_0x3ebc9c){_0x3ebc9c(null,util[_0xb7f0('0x29')](_0xb7f0('0x2a'),Date[_0xb7f0('0x2b')](),_0x259495['originalname']));}})});router['post']('/:id/system_avatar',upload[_0xb7f0('0x2f')](_0xb7f0('0x30')),controller[_0xb7f0('0x33')]);router[_0xb7f0('0x23')](_0xb7f0('0x34'),controller[_0xb7f0('0x35')]);const offlineUploadMulter=multer({'storage':multer[_0xb7f0('0x31')]({'destination':function(_0x575097,_0x51e168,_0x20e029){const _0x56fb58=path[_0xb7f0('0x26')](config[_0xb7f0('0x27')],_0xb7f0('0x36'),_0xb7f0('0x37'),_0xb7f0('0x38'));fs_extra[_0xb7f0('0x39')](_0x56fb58,function(){_0x20e029(null,_0x56fb58);});},'filename':function(_0x274386,_0x25a74a,_0x166b14){const _0x497a07=_0x25a74a[_0xb7f0('0x2c')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');const _0x2c5f04=path[_0xb7f0('0x3a')](_0x497a07);const _0x1924eb=Date[_0xb7f0('0x2b')]()+'-'+_0x497a07[_0xb7f0('0x3b')](_0x2c5f04,'')+_0x2c5f04;_0x166b14(null,_0x1924eb);}})});router[_0xb7f0('0x23')](_0xb7f0('0x3c'),offlineUploadMulter[_0xb7f0('0x3d')](),controller[_0xb7f0('0x3e')]);router['post'](_0xb7f0('0x19'),auth[_0xb7f0('0x9')](),controller[_0xb7f0('0x3f')]);router[_0xb7f0('0x23')](_0xb7f0('0x40'),auth['isAuthenticated'](),controller[_0xb7f0('0x41')]);router[_0xb7f0('0x23')](_0xb7f0('0x1d'),auth[_0xb7f0('0x9')](),controller[_0xb7f0('0x42')]);router['post']('/:id/users',auth[_0xb7f0('0x9')](),controller[_0xb7f0('0x43')]);router['put'](_0xb7f0('0xb'),auth[_0xb7f0('0x9')](),controller[_0xb7f0('0x44')]);router[_0xb7f0('0x45')](_0xb7f0('0xb'),auth[_0xb7f0('0x9')](),controller[_0xb7f0('0x46')]);router[_0xb7f0('0x45')](_0xb7f0('0xd'),auth[_0xb7f0('0x9')](),controller['removeDispositions']);router[_0xb7f0('0x45')](_0xb7f0('0xf'),auth[_0xb7f0('0x9')](),controller[_0xb7f0('0x47')]);router[_0xb7f0('0x45')](_0xb7f0('0x21'),auth[_0xb7f0('0x9')](),controller[_0xb7f0('0x48')]);module[_0xb7f0('0x49')]=router;
\ No newline at end of file
+var _0xd7f6=['/:id','update','delete','removeAnswers','removeAgents','exports','util','path','connect-timeout','express','fs-extra','../../config/environment','get','isAuthenticated','index','/describe','describe','show','/:id/canned_answers','/:id/logo','getLogo','/:id/avatar','getCustomerAvatar','/:id/system_avatar','getSystemAvatar','getInteractions','/:id/snippet','getSnippet','/:id/applications','/:id/proactive_actions','getProactiveActions','getFields','/:id/offline_messages','getOfflineMessages','/:id/users','getAgents','post','create','/:id/dispositions','addDisposition','addAnswer','diskStorage','join','root','format','%s-%s','originalname','single','file','addLogo','server/files/images/avatars/','now','addAvatar','addSystemAvatar','notify','server/files','offline-chat','ensureDir','replace','/:id/offline','any','addProactiveActions','put'];(function(_0x50cb5c,_0x377a47){var _0x361ad4=function(_0x3c8d51){while(--_0x3c8d51){_0x50cb5c['push'](_0x50cb5c['shift']());}};_0x361ad4(++_0x377a47);}(_0xd7f6,0xc3));var _0x6d7f=function(_0x2b99bc,_0xf7f42b){_0x2b99bc=_0x2b99bc-0x0;var _0x4a4c65=_0xd7f6[_0x2b99bc];return _0x4a4c65;};'use strict';var multer=require('multer');var util=require(_0x6d7f('0x0'));var path=require(_0x6d7f('0x1'));var timeout=require(_0x6d7f('0x2'));var express=require(_0x6d7f('0x3'));var router=express['Router']();var fs_extra=require(_0x6d7f('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x6d7f('0x5'));var controller=require('./chatWebsite.controller');router[_0x6d7f('0x6')]('/',auth[_0x6d7f('0x7')](),controller[_0x6d7f('0x8')]);router[_0x6d7f('0x6')](_0x6d7f('0x9'),auth['isAuthenticated'](),controller[_0x6d7f('0xa')]);router[_0x6d7f('0x6')]('/:id',auth[_0x6d7f('0x7')](),controller[_0x6d7f('0xb')]);router['get']('/:id/dispositions',auth['isAuthenticated'](),controller['getDispositions']);router['get'](_0x6d7f('0xc'),auth[_0x6d7f('0x7')](),controller['getAnswers']);router[_0x6d7f('0x6')](_0x6d7f('0xd'),controller[_0x6d7f('0xe')]);router[_0x6d7f('0x6')](_0x6d7f('0xf'),controller['getAvatar']);router[_0x6d7f('0x6')]('/:id/customer_avatar',controller[_0x6d7f('0x10')]);router['get'](_0x6d7f('0x11'),controller[_0x6d7f('0x12')]);router[_0x6d7f('0x6')]('/:id/interactions',auth[_0x6d7f('0x7')](),controller[_0x6d7f('0x13')]);router['get'](_0x6d7f('0x14'),controller[_0x6d7f('0x15')]);router[_0x6d7f('0x6')](_0x6d7f('0x16'),auth[_0x6d7f('0x7')](),controller['getApplications']);router['get'](_0x6d7f('0x17'),auth['isAuthenticated'](),controller[_0x6d7f('0x18')]);router[_0x6d7f('0x6')]('/:id/fields',controller[_0x6d7f('0x19')]);router[_0x6d7f('0x6')](_0x6d7f('0x1a'),auth[_0x6d7f('0x7')](),controller[_0x6d7f('0x1b')]);router['get'](_0x6d7f('0x1c'),auth[_0x6d7f('0x7')](),controller[_0x6d7f('0x1d')]);router[_0x6d7f('0x1e')]('/',auth[_0x6d7f('0x7')](),controller[_0x6d7f('0x1f')]);router[_0x6d7f('0x1e')](_0x6d7f('0x20'),auth[_0x6d7f('0x7')](),controller[_0x6d7f('0x21')]);router['post'](_0x6d7f('0xc'),auth['isAuthenticated'](),controller[_0x6d7f('0x22')]);var upload=multer({'storage':multer[_0x6d7f('0x23')]({'destination':function(_0x9adc41,_0x5d082d,_0x56de9d){_0x56de9d(null,path[_0x6d7f('0x24')](config[_0x6d7f('0x25')],'server/files/images/logos/'));},'filename':function(_0x4dc36d,_0xebf9af,_0x3a7be2){_0x3a7be2(null,util[_0x6d7f('0x26')](_0x6d7f('0x27'),Date['now'](),_0xebf9af[_0x6d7f('0x28')]));}})});router['post'](_0x6d7f('0xd'),upload[_0x6d7f('0x29')](_0x6d7f('0x2a')),controller[_0x6d7f('0x2b')]);var upload=multer({'storage':multer[_0x6d7f('0x23')]({'destination':function(_0x4b3da8,_0x1bd33b,_0x3c69a7){_0x3c69a7(null,path[_0x6d7f('0x24')](config[_0x6d7f('0x25')],_0x6d7f('0x2c')));},'filename':function(_0x32d2b3,_0x3764d5,_0x5f34a5){_0x5f34a5(null,util[_0x6d7f('0x26')](_0x6d7f('0x27'),Date[_0x6d7f('0x2d')](),_0x3764d5[_0x6d7f('0x28')]));}})});router['post'](_0x6d7f('0xf'),upload[_0x6d7f('0x29')](_0x6d7f('0x2a')),controller[_0x6d7f('0x2e')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x4e70f2,_0x1d0f24,_0xe32981){_0xe32981(null,path[_0x6d7f('0x24')](config['root'],_0x6d7f('0x2c')));},'filename':function(_0x40bd7a,_0x58aaf0,_0x55614a){_0x55614a(null,util[_0x6d7f('0x26')]('%s-%s',Date[_0x6d7f('0x2d')](),_0x58aaf0[_0x6d7f('0x28')]));}})});router[_0x6d7f('0x1e')]('/:id/customer_avatar',upload['single'](_0x6d7f('0x2a')),controller['addCustomerAvatar']);var upload=multer({'storage':multer[_0x6d7f('0x23')]({'destination':function(_0x32d0f7,_0x23e06f,_0xc46f65){_0xc46f65(null,path[_0x6d7f('0x24')](config[_0x6d7f('0x25')],_0x6d7f('0x2c')));},'filename':function(_0x1d6f9e,_0x5bce61,_0x475b1b){_0x475b1b(null,util['format']('%s-%s',Date[_0x6d7f('0x2d')](),_0x5bce61[_0x6d7f('0x28')]));}})});router[_0x6d7f('0x1e')](_0x6d7f('0x11'),upload['single']('file'),controller[_0x6d7f('0x2f')]);router['post']('/:id/notify',controller[_0x6d7f('0x30')]);const offlineUploadMulter=multer({'storage':multer[_0x6d7f('0x23')]({'destination':function(_0x5412b9,_0x431370,_0xb437bf){const _0x5b7f67=path['join'](config[_0x6d7f('0x25')],_0x6d7f('0x31'),'attachments',_0x6d7f('0x32'));fs_extra[_0x6d7f('0x33')](_0x5b7f67,function(){_0xb437bf(null,_0x5b7f67);});},'filename':function(_0x21d3ff,_0x28a731,_0x4d0706){const _0x3154e0=_0x28a731[_0x6d7f('0x28')][_0x6d7f('0x34')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');const _0x1590b1=path['extname'](_0x3154e0);const _0x2c07bb=Date[_0x6d7f('0x2d')]()+'-'+_0x3154e0[_0x6d7f('0x34')](_0x1590b1,'')+_0x1590b1;_0x4d0706(null,_0x2c07bb);}})});router['post'](_0x6d7f('0x35'),offlineUploadMulter[_0x6d7f('0x36')](),controller['offline']);router['post']('/:id/interactions',auth[_0x6d7f('0x7')](),controller['addInteraction']);router['post']('/:id/applications',auth[_0x6d7f('0x7')](),controller['addApplications']);router['post'](_0x6d7f('0x17'),auth['isAuthenticated'](),controller[_0x6d7f('0x37')]);router['post']('/:id/users',auth[_0x6d7f('0x7')](),controller['addAgents']);router[_0x6d7f('0x38')](_0x6d7f('0x39'),auth[_0x6d7f('0x7')](),controller[_0x6d7f('0x3a')]);router[_0x6d7f('0x3b')](_0x6d7f('0x39'),auth[_0x6d7f('0x7')](),controller['destroy']);router[_0x6d7f('0x3b')]('/:id/dispositions',auth[_0x6d7f('0x7')](),controller['removeDispositions']);router[_0x6d7f('0x3b')](_0x6d7f('0xc'),auth[_0x6d7f('0x7')](),controller[_0x6d7f('0x3c')]);router[_0x6d7f('0x3b')](_0x6d7f('0x1c'),auth[_0x6d7f('0x7')](),controller[_0x6d7f('0x3d')]);module[_0x6d7f('0x3e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c49=['STRING','sequelize','exports','AmazonAWS'];(function(_0x20ab05,_0x40518d){var _0x157ca4=function(_0x4859d9){while(--_0x4859d9){_0x20ab05['push'](_0x20ab05['shift']());}};_0x157ca4(++_0x40518d);}(_0x7c49,0x141));var _0x97c4=function(_0x7032e2,_0x3e094e){_0x7032e2=_0x7032e2-0x0;var _0x521d3d=_0x7c49[_0x7032e2];return _0x521d3d;};'use strict';var Sequelize=require(_0x97c4('0x0'));module[_0x97c4('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'notEmpty':!![]}},'service':{'type':Sequelize['ENUM'](_0x97c4('0x2'),'Google'),'allowNull':![],'validate':{'notEmpty':!![]}},'data1':{'type':Sequelize[_0x97c4('0x3')]},'data2':{'type':Sequelize[_0x97c4('0x3')]}};
\ No newline at end of file
+var _0xd69e=['sequelize','exports','STRING','AmazonAWS','Google'];(function(_0x28d5bb,_0x1c2231){var _0x293952=function(_0x86f071){while(--_0x86f071){_0x28d5bb['push'](_0x28d5bb['shift']());}};_0x293952(++_0x1c2231);}(_0xd69e,0xa0));var _0xed69=function(_0x5d4607,_0x6b5e7b){_0x5d4607=_0x5d4607-0x0;var _0x5e4a86=_0xd69e[_0x5d4607];return _0x5e4a86;};'use strict';var Sequelize=require(_0xed69('0x0'));module[_0xed69('0x1')]={'name':{'type':Sequelize[_0xed69('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'service':{'type':Sequelize['ENUM'](_0xed69('0x3'),_0xed69('0x4')),'allowNull':![],'validate':{'notEmpty':!![]}},'data1':{'type':Sequelize['STRING']},'data2':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['hasOwnProperty','nolimit','order','sort','filters','filter','merge','where','VIRTUAL','options','count','includeAll','findAll','rows','catch','show','include','find','create','body','params','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','undefined','offset','limit','set','json','apply','reject','save','then','destroy','error','stack','name','index','map','CloudProvider','rawAttributes','fieldName','type','query','keys','intersection','model','attributes','fields','length'];(function(_0x3c9da6,_0x3a6e49){var _0x420bae=function(_0x1f2732){while(--_0x1f2732){_0x3c9da6['push'](_0x3c9da6['shift']());}};_0x420bae(++_0x3a6e49);}(_0x0b0e,0x187));var _0xe0b0=function(_0x2f7023,_0x1aa399){_0x2f7023=_0x2f7023-0x0;var _0x2f5e4e=_0x0b0e[_0x2f7023];return _0x2f5e4e;};'use strict';var emlformat=require(_0xe0b0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe0b0('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe0b0('0x2'));var moment=require(_0xe0b0('0x3'));var BPromise=require(_0xe0b0('0x4'));var Mustache=require(_0xe0b0('0x5'));var util=require(_0xe0b0('0x6'));var path=require(_0xe0b0('0x7'));var sox=require(_0xe0b0('0x8'));var csv=require(_0xe0b0('0x9'));var ejs=require(_0xe0b0('0xa'));var fs=require('fs');var fs_extra=require(_0xe0b0('0xb'));var _=require(_0xe0b0('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xe0b0('0xd'));var deskjs=require(_0xe0b0('0xe'));var toCsv=require(_0xe0b0('0x9'));var querystring=require(_0xe0b0('0xf'));var Papa=require('papaparse');var Redis=require(_0xe0b0('0x10'));var authService=require(_0xe0b0('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xe0b0('0x12'));var hardwareService=require(_0xe0b0('0x13'));var logger=require('../../config/logger')(_0xe0b0('0x14'));var utils=require(_0xe0b0('0x15'));var config=require(_0xe0b0('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xe0b0('0x17'))['db'];function respondWithStatusCode(_0x1c358a,_0x3cc19a){_0x3cc19a=_0x3cc19a||0xcc;return function(_0x45f914){if(_0x45f914){return _0x1c358a[_0xe0b0('0x18')](_0x3cc19a);}return _0x1c358a['status'](_0x3cc19a)[_0xe0b0('0x19')]();};}function respondWithResult(_0x154de6,_0x743318){_0x743318=_0x743318||0xc8;return function(_0x24babd){if(_0x24babd){return _0x154de6[_0xe0b0('0x1a')](_0x743318)['json'](_0x24babd);}};}function respondWithFilteredResult(_0x41a7e2,_0x5adb01){return function(_0x35cb40){if(_0x35cb40){var _0xadee6e=typeof _0x5adb01['offset']===_0xe0b0('0x1b')&&typeof _0x5adb01['limit']===_0xe0b0('0x1b');var _0x100204=_0x35cb40['count'];var _0x54a3eb=_0xadee6e?0x0:_0x5adb01[_0xe0b0('0x1c')];var _0x50a441=_0xadee6e?_0x35cb40['count']:_0x5adb01['offset']+_0x5adb01[_0xe0b0('0x1d')];var _0x50fa4a;if(_0x50a441>=_0x100204){_0x50a441=_0x100204;_0x50fa4a=0xc8;}else{_0x50fa4a=0xce;}_0x41a7e2['status'](_0x50fa4a);return _0x41a7e2[_0xe0b0('0x1e')]('Content-Range',_0x54a3eb+'-'+_0x50a441+'/'+_0x100204)[_0xe0b0('0x1f')](_0x35cb40);}return null;};}function patchUpdates(_0x5dba2f){return function(_0x2c84cc){try{jsonpatch[_0xe0b0('0x20')](_0x2c84cc,_0x5dba2f,!![]);}catch(_0x3e10b3){return BPromise[_0xe0b0('0x21')](_0x3e10b3);}return _0x2c84cc[_0xe0b0('0x22')]();};}function saveUpdates(_0x58b804,_0x4cae54){return function(_0x2fa820){if(_0x2fa820){return _0x2fa820['update'](_0x58b804)[_0xe0b0('0x23')](function(_0x31b5f8){return _0x31b5f8;});}return null;};}function removeEntity(_0x513e63,_0x170ad8){return function(_0x503883){if(_0x503883){return _0x503883[_0xe0b0('0x24')]()['then'](function(){_0x513e63[_0xe0b0('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3e5c88,_0x4de537){return function(_0x4700cc){if(!_0x4700cc){_0x3e5c88['sendStatus'](0x194);}return _0x4700cc;};}function handleError(_0x3c221d,_0x5c5317){_0x5c5317=_0x5c5317||0x1f4;return function(_0x362aba){logger[_0xe0b0('0x25')](_0x362aba[_0xe0b0('0x26')]);if(_0x362aba[_0xe0b0('0x27')]){delete _0x362aba[_0xe0b0('0x27')];}_0x3c221d[_0xe0b0('0x1a')](_0x5c5317)['send'](_0x362aba);};}exports[_0xe0b0('0x28')]=function(_0x1b8aa8,_0x5b7a64){var _0x15e13b={},_0x419b1f={},_0x36d137={'count':0x0,'rows':[]};var _0x1d5759=_[_0xe0b0('0x29')](db[_0xe0b0('0x2a')][_0xe0b0('0x2b')],function(_0x4fb3b7){return{'name':_0x4fb3b7[_0xe0b0('0x2c')],'type':_0x4fb3b7[_0xe0b0('0x2d')]['key']};});_0x419b1f['model']=_[_0xe0b0('0x29')](_0x1d5759,_0xe0b0('0x27'));_0x419b1f[_0xe0b0('0x2e')]=_[_0xe0b0('0x2f')](_0x1b8aa8[_0xe0b0('0x2e')]);_0x419b1f['filters']=_[_0xe0b0('0x30')](_0x419b1f[_0xe0b0('0x31')],_0x419b1f[_0xe0b0('0x2e')]);_0x15e13b[_0xe0b0('0x32')]=_[_0xe0b0('0x30')](_0x419b1f['model'],qs[_0xe0b0('0x33')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x33')]));_0x15e13b[_0xe0b0('0x32')]=_0x15e13b[_0xe0b0('0x32')][_0xe0b0('0x34')]?_0x15e13b[_0xe0b0('0x32')]:_0x419b1f[_0xe0b0('0x31')];if(!_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x35')](_0xe0b0('0x36'))){_0x15e13b[_0xe0b0('0x1d')]=qs[_0xe0b0('0x1d')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x1d')]);_0x15e13b['offset']=qs[_0xe0b0('0x1c')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x1c')]);}_0x15e13b[_0xe0b0('0x37')]=qs[_0xe0b0('0x38')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x38')]);_0x15e13b['where']=qs['filters'](_['pick'](_0x1b8aa8['query'],_0x419b1f[_0xe0b0('0x39')]),_0x1d5759);if(_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x3a')]){_0x15e13b['where']=_[_0xe0b0('0x3b')](_0x15e13b[_0xe0b0('0x3c')],{'$or':_[_0xe0b0('0x29')](_0x1d5759,function(_0x297c64){if(_0x297c64['type']!==_0xe0b0('0x3d')){var _0xfbb61d={};_0xfbb61d[_0x297c64[_0xe0b0('0x27')]]={'$like':'%'+_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x3a')]+'%'};return _0xfbb61d;}})});}_0x15e13b=_[_0xe0b0('0x3b')]({},_0x15e13b,_0x1b8aa8[_0xe0b0('0x3e')]);var _0x115a69={'where':_0x15e13b[_0xe0b0('0x3c')]};return db['CloudProvider'][_0xe0b0('0x3f')](_0x115a69)['then'](function(_0x34178d){_0x36d137[_0xe0b0('0x3f')]=_0x34178d;if(_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x40')]){_0x15e13b['include']=[{'all':!![]}];}return db[_0xe0b0('0x2a')][_0xe0b0('0x41')](_0x15e13b);})[_0xe0b0('0x23')](function(_0x402a0e){_0x36d137[_0xe0b0('0x42')]=_0x402a0e;return _0x36d137;})[_0xe0b0('0x23')](respondWithFilteredResult(_0x5b7a64,_0x15e13b))[_0xe0b0('0x43')](handleError(_0x5b7a64,null));};exports[_0xe0b0('0x44')]=function(_0x52ffe4,_0x2aad80){var _0x309bbf={'raw':!![],'where':{'id':_0x52ffe4['params']['id']}},_0x528818={};_0x528818[_0xe0b0('0x31')]=_[_0xe0b0('0x2f')](db['CloudProvider'][_0xe0b0('0x2b')]);_0x528818[_0xe0b0('0x2e')]=_[_0xe0b0('0x2f')](_0x52ffe4[_0xe0b0('0x2e')]);_0x528818[_0xe0b0('0x39')]=_['intersection'](_0x528818['model'],_0x528818['query']);_0x309bbf[_0xe0b0('0x32')]=_[_0xe0b0('0x30')](_0x528818['model'],qs[_0xe0b0('0x33')](_0x52ffe4[_0xe0b0('0x2e')][_0xe0b0('0x33')]));_0x309bbf[_0xe0b0('0x32')]=_0x309bbf[_0xe0b0('0x32')]['length']?_0x309bbf['attributes']:_0x528818[_0xe0b0('0x31')];if(_0x52ffe4[_0xe0b0('0x2e')][_0xe0b0('0x40')]){_0x309bbf[_0xe0b0('0x45')]=[{'all':!![]}];}_0x309bbf=_[_0xe0b0('0x3b')]({},_0x309bbf,_0x52ffe4['options']);return db[_0xe0b0('0x2a')][_0xe0b0('0x46')](_0x309bbf)['then'](handleEntityNotFound(_0x2aad80,null))['then'](respondWithResult(_0x2aad80,null))['catch'](handleError(_0x2aad80,null));};exports[_0xe0b0('0x47')]=function(_0x2184d3,_0x2419ce){return db[_0xe0b0('0x2a')]['create'](_0x2184d3[_0xe0b0('0x48')],{})[_0xe0b0('0x23')](respondWithResult(_0x2419ce,0xc9))['catch'](handleError(_0x2419ce,null));};exports['update']=function(_0x2365be,_0x1bc6e0){if(_0x2365be['body']['id']){delete _0x2365be[_0xe0b0('0x48')]['id'];}return db[_0xe0b0('0x2a')]['find']({'where':{'id':_0x2365be['params']['id']}})[_0xe0b0('0x23')](handleEntityNotFound(_0x1bc6e0,null))['then'](saveUpdates(_0x2365be[_0xe0b0('0x48')],null))[_0xe0b0('0x23')](respondWithResult(_0x1bc6e0,null))[_0xe0b0('0x43')](handleError(_0x1bc6e0,null));};exports[_0xe0b0('0x24')]=function(_0x19ee71,_0xf9e694){return db['CloudProvider']['find']({'where':{'id':_0x19ee71[_0xe0b0('0x49')]['id']}})['then'](handleEntityNotFound(_0xf9e694,null))['then'](removeEntity(_0xf9e694,null))[_0xe0b0('0x43')](handleError(_0xf9e694,null));};
\ No newline at end of file
+var _0x0b0e=['hasOwnProperty','nolimit','order','sort','filters','filter','merge','where','VIRTUAL','options','count','includeAll','findAll','rows','catch','show','include','find','create','body','params','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','undefined','offset','limit','set','json','apply','reject','save','then','destroy','error','stack','name','index','map','CloudProvider','rawAttributes','fieldName','type','query','keys','intersection','model','attributes','fields','length'];(function(_0x5159b2,_0x5073a3){var _0x3e0ade=function(_0xa2f269){while(--_0xa2f269){_0x5159b2['push'](_0x5159b2['shift']());}};_0x3e0ade(++_0x5073a3);}(_0x0b0e,0x187));var _0xe0b0=function(_0x27c3f0,_0x198aa2){_0x27c3f0=_0x27c3f0-0x0;var _0x11e51c=_0x0b0e[_0x27c3f0];return _0x11e51c;};'use strict';var emlformat=require(_0xe0b0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe0b0('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe0b0('0x2'));var moment=require(_0xe0b0('0x3'));var BPromise=require(_0xe0b0('0x4'));var Mustache=require(_0xe0b0('0x5'));var util=require(_0xe0b0('0x6'));var path=require(_0xe0b0('0x7'));var sox=require(_0xe0b0('0x8'));var csv=require(_0xe0b0('0x9'));var ejs=require(_0xe0b0('0xa'));var fs=require('fs');var fs_extra=require(_0xe0b0('0xb'));var _=require(_0xe0b0('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xe0b0('0xd'));var deskjs=require(_0xe0b0('0xe'));var toCsv=require(_0xe0b0('0x9'));var querystring=require(_0xe0b0('0xf'));var Papa=require('papaparse');var Redis=require(_0xe0b0('0x10'));var authService=require(_0xe0b0('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xe0b0('0x12'));var hardwareService=require(_0xe0b0('0x13'));var logger=require('../../config/logger')(_0xe0b0('0x14'));var utils=require(_0xe0b0('0x15'));var config=require(_0xe0b0('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xe0b0('0x17'))['db'];function respondWithStatusCode(_0x1c358a,_0x3cc19a){_0x3cc19a=_0x3cc19a||0xcc;return function(_0x45f914){if(_0x45f914){return _0x1c358a[_0xe0b0('0x18')](_0x3cc19a);}return _0x1c358a['status'](_0x3cc19a)[_0xe0b0('0x19')]();};}function respondWithResult(_0x154de6,_0x743318){_0x743318=_0x743318||0xc8;return function(_0x24babd){if(_0x24babd){return _0x154de6[_0xe0b0('0x1a')](_0x743318)['json'](_0x24babd);}};}function respondWithFilteredResult(_0x41a7e2,_0x5adb01){return function(_0x35cb40){if(_0x35cb40){var _0xadee6e=typeof _0x5adb01['offset']===_0xe0b0('0x1b')&&typeof _0x5adb01['limit']===_0xe0b0('0x1b');var _0x100204=_0x35cb40['count'];var _0x54a3eb=_0xadee6e?0x0:_0x5adb01[_0xe0b0('0x1c')];var _0x50a441=_0xadee6e?_0x35cb40['count']:_0x5adb01['offset']+_0x5adb01[_0xe0b0('0x1d')];var _0x50fa4a;if(_0x50a441>=_0x100204){_0x50a441=_0x100204;_0x50fa4a=0xc8;}else{_0x50fa4a=0xce;}_0x41a7e2['status'](_0x50fa4a);return _0x41a7e2[_0xe0b0('0x1e')]('Content-Range',_0x54a3eb+'-'+_0x50a441+'/'+_0x100204)[_0xe0b0('0x1f')](_0x35cb40);}return null;};}function patchUpdates(_0x5dba2f){return function(_0x2c84cc){try{jsonpatch[_0xe0b0('0x20')](_0x2c84cc,_0x5dba2f,!![]);}catch(_0x3e10b3){return BPromise[_0xe0b0('0x21')](_0x3e10b3);}return _0x2c84cc[_0xe0b0('0x22')]();};}function saveUpdates(_0x58b804,_0x4cae54){return function(_0x2fa820){if(_0x2fa820){return _0x2fa820['update'](_0x58b804)[_0xe0b0('0x23')](function(_0x31b5f8){return _0x31b5f8;});}return null;};}function removeEntity(_0x513e63,_0x170ad8){return function(_0x503883){if(_0x503883){return _0x503883[_0xe0b0('0x24')]()['then'](function(){_0x513e63[_0xe0b0('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3e5c88,_0x4de537){return function(_0x4700cc){if(!_0x4700cc){_0x3e5c88['sendStatus'](0x194);}return _0x4700cc;};}function handleError(_0x3c221d,_0x5c5317){_0x5c5317=_0x5c5317||0x1f4;return function(_0x362aba){logger[_0xe0b0('0x25')](_0x362aba[_0xe0b0('0x26')]);if(_0x362aba[_0xe0b0('0x27')]){delete _0x362aba[_0xe0b0('0x27')];}_0x3c221d[_0xe0b0('0x1a')](_0x5c5317)['send'](_0x362aba);};}exports[_0xe0b0('0x28')]=function(_0x1b8aa8,_0x5b7a64){var _0x15e13b={},_0x419b1f={},_0x36d137={'count':0x0,'rows':[]};var _0x1d5759=_[_0xe0b0('0x29')](db[_0xe0b0('0x2a')][_0xe0b0('0x2b')],function(_0x4fb3b7){return{'name':_0x4fb3b7[_0xe0b0('0x2c')],'type':_0x4fb3b7[_0xe0b0('0x2d')]['key']};});_0x419b1f['model']=_[_0xe0b0('0x29')](_0x1d5759,_0xe0b0('0x27'));_0x419b1f[_0xe0b0('0x2e')]=_[_0xe0b0('0x2f')](_0x1b8aa8[_0xe0b0('0x2e')]);_0x419b1f['filters']=_[_0xe0b0('0x30')](_0x419b1f[_0xe0b0('0x31')],_0x419b1f[_0xe0b0('0x2e')]);_0x15e13b[_0xe0b0('0x32')]=_[_0xe0b0('0x30')](_0x419b1f['model'],qs[_0xe0b0('0x33')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x33')]));_0x15e13b[_0xe0b0('0x32')]=_0x15e13b[_0xe0b0('0x32')][_0xe0b0('0x34')]?_0x15e13b[_0xe0b0('0x32')]:_0x419b1f[_0xe0b0('0x31')];if(!_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x35')](_0xe0b0('0x36'))){_0x15e13b[_0xe0b0('0x1d')]=qs[_0xe0b0('0x1d')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x1d')]);_0x15e13b['offset']=qs[_0xe0b0('0x1c')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x1c')]);}_0x15e13b[_0xe0b0('0x37')]=qs[_0xe0b0('0x38')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x38')]);_0x15e13b['where']=qs['filters'](_['pick'](_0x1b8aa8['query'],_0x419b1f[_0xe0b0('0x39')]),_0x1d5759);if(_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x3a')]){_0x15e13b['where']=_[_0xe0b0('0x3b')](_0x15e13b[_0xe0b0('0x3c')],{'$or':_[_0xe0b0('0x29')](_0x1d5759,function(_0x297c64){if(_0x297c64['type']!==_0xe0b0('0x3d')){var _0xfbb61d={};_0xfbb61d[_0x297c64[_0xe0b0('0x27')]]={'$like':'%'+_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x3a')]+'%'};return _0xfbb61d;}})});}_0x15e13b=_[_0xe0b0('0x3b')]({},_0x15e13b,_0x1b8aa8[_0xe0b0('0x3e')]);var _0x115a69={'where':_0x15e13b[_0xe0b0('0x3c')]};return db['CloudProvider'][_0xe0b0('0x3f')](_0x115a69)['then'](function(_0x34178d){_0x36d137[_0xe0b0('0x3f')]=_0x34178d;if(_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x40')]){_0x15e13b['include']=[{'all':!![]}];}return db[_0xe0b0('0x2a')][_0xe0b0('0x41')](_0x15e13b);})[_0xe0b0('0x23')](function(_0x402a0e){_0x36d137[_0xe0b0('0x42')]=_0x402a0e;return _0x36d137;})[_0xe0b0('0x23')](respondWithFilteredResult(_0x5b7a64,_0x15e13b))[_0xe0b0('0x43')](handleError(_0x5b7a64,null));};exports[_0xe0b0('0x44')]=function(_0x52ffe4,_0x2aad80){var _0x309bbf={'raw':!![],'where':{'id':_0x52ffe4['params']['id']}},_0x528818={};_0x528818[_0xe0b0('0x31')]=_[_0xe0b0('0x2f')](db['CloudProvider'][_0xe0b0('0x2b')]);_0x528818[_0xe0b0('0x2e')]=_[_0xe0b0('0x2f')](_0x52ffe4[_0xe0b0('0x2e')]);_0x528818[_0xe0b0('0x39')]=_['intersection'](_0x528818['model'],_0x528818['query']);_0x309bbf[_0xe0b0('0x32')]=_[_0xe0b0('0x30')](_0x528818['model'],qs[_0xe0b0('0x33')](_0x52ffe4[_0xe0b0('0x2e')][_0xe0b0('0x33')]));_0x309bbf[_0xe0b0('0x32')]=_0x309bbf[_0xe0b0('0x32')]['length']?_0x309bbf['attributes']:_0x528818[_0xe0b0('0x31')];if(_0x52ffe4[_0xe0b0('0x2e')][_0xe0b0('0x40')]){_0x309bbf[_0xe0b0('0x45')]=[{'all':!![]}];}_0x309bbf=_[_0xe0b0('0x3b')]({},_0x309bbf,_0x52ffe4['options']);return db[_0xe0b0('0x2a')][_0xe0b0('0x46')](_0x309bbf)['then'](handleEntityNotFound(_0x2aad80,null))['then'](respondWithResult(_0x2aad80,null))['catch'](handleError(_0x2aad80,null));};exports[_0xe0b0('0x47')]=function(_0x2184d3,_0x2419ce){return db[_0xe0b0('0x2a')]['create'](_0x2184d3[_0xe0b0('0x48')],{})[_0xe0b0('0x23')](respondWithResult(_0x2419ce,0xc9))['catch'](handleError(_0x2419ce,null));};exports['update']=function(_0x2365be,_0x1bc6e0){if(_0x2365be['body']['id']){delete _0x2365be[_0xe0b0('0x48')]['id'];}return db[_0xe0b0('0x2a')]['find']({'where':{'id':_0x2365be['params']['id']}})[_0xe0b0('0x23')](handleEntityNotFound(_0x1bc6e0,null))['then'](saveUpdates(_0x2365be[_0xe0b0('0x48')],null))[_0xe0b0('0x23')](respondWithResult(_0x1bc6e0,null))[_0xe0b0('0x43')](handleError(_0x1bc6e0,null));};exports[_0xe0b0('0x24')]=function(_0x19ee71,_0xf9e694){return db['CloudProvider']['find']({'where':{'id':_0x19ee71[_0xe0b0('0x49')]['id']}})['then'](handleEntityNotFound(_0xf9e694,null))['then'](removeEntity(_0xf9e694,null))[_0xe0b0('0x43')](handleError(_0xf9e694,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb6c8=['rimraf','../../config/environment','./cloudProvider.attributes','exports','define','CloudProvider','cloud_providers','api','moment','bluebird'];(function(_0x593d89,_0x45145f){var _0x4aa403=function(_0x21f674){while(--_0x21f674){_0x593d89['push'](_0x593d89['shift']());}};_0x4aa403(++_0x45145f);}(_0xb6c8,0x183));var _0x8b6c=function(_0x5a92f8,_0x407a35){_0x5a92f8=_0x5a92f8-0x0;var _0x726ab9=_0xb6c8[_0x5a92f8];return _0x726ab9;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x8b6c('0x0'));var moment=require(_0x8b6c('0x1'));var BPromise=require(_0x8b6c('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x8b6c('0x3'));var config=require(_0x8b6c('0x4'));var attributes=require(_0x8b6c('0x5'));module[_0x8b6c('0x6')]=function(_0x16da46,_0x27ea54){return _0x16da46[_0x8b6c('0x7')](_0x8b6c('0x8'),attributes,{'tableName':_0x8b6c('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5556=['rimraf','./cloudProvider.attributes','exports','CloudProvider','cloud_providers','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x21cf72,_0x27e452){var _0x21e12c=function(_0x3b42ee){while(--_0x3b42ee){_0x21cf72['push'](_0x21cf72['shift']());}};_0x21e12c(++_0x27e452);}(_0x5556,0x13d));var _0x6555=function(_0x34ded7,_0x5752df){_0x34ded7=_0x34ded7-0x0;var _0x39e7ce=_0x5556[_0x34ded7];return _0x39e7ce;};'use strict';var _=require('lodash');var util=require(_0x6555('0x0'));var logger=require(_0x6555('0x1'))(_0x6555('0x2'));var moment=require(_0x6555('0x3'));var BPromise=require(_0x6555('0x4'));var rp=require(_0x6555('0x5'));var fs=require('fs');var path=require(_0x6555('0x6'));var rimraf=require(_0x6555('0x7'));var config=require('../../config/environment');var attributes=require(_0x6555('0x8'));module[_0x6555('0x9')]=function(_0x367c0d,_0x1dbb51){return _0x367c0d['define'](_0x6555('0xa'),attributes,{'tableName':_0x6555('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2432=['message','catch','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','CloudProvider,\x20%s,\x20%s','request\x20sent','debug','CloudProvider,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2432,0x7a));var _0x2243=function(_0x34799d,_0x92eb4b){_0x34799d=_0x34799d-0x0;var _0x45ef57=_0x2432[_0x34799d];return _0x45ef57;};'use strict';var _=require(_0x2243('0x0'));var util=require(_0x2243('0x1'));var moment=require(_0x2243('0x2'));var BPromise=require(_0x2243('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2243('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x2243('0x5'));var logger=require(_0x2243('0x6'))(_0x2243('0x7'));var config=require(_0x2243('0x8'));var jayson=require(_0x2243('0x9'));var client=jayson[_0x2243('0xa')][_0x2243('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x28678a,_0x1c42af,_0x4f196b){return new BPromise(function(_0x440203,_0x128d83){return client[_0x2243('0xc')](_0x28678a,_0x4f196b)[_0x2243('0xd')](function(_0x31a479){logger[_0x2243('0xe')](_0x2243('0xf'),_0x1c42af,_0x2243('0x10'));logger[_0x2243('0x11')](_0x2243('0x12'),_0x1c42af,_0x2243('0x10'),JSON[_0x2243('0x13')](_0x31a479));if(_0x31a479[_0x2243('0x14')]){if(_0x31a479[_0x2243('0x14')][_0x2243('0x15')]===0x1f4){logger[_0x2243('0x14')]('CloudProvider,\x20%s,\x20%s',_0x1c42af,_0x31a479[_0x2243('0x14')][_0x2243('0x16')]);return _0x128d83(_0x31a479[_0x2243('0x14')][_0x2243('0x16')]);}logger['error'](_0x2243('0xf'),_0x1c42af,_0x31a479['error'][_0x2243('0x16')]);return _0x440203(_0x31a479['error'][_0x2243('0x16')]);}else{logger[_0x2243('0xe')](_0x2243('0xf'),_0x1c42af,_0x2243('0x10'));_0x440203(_0x31a479['result']['message']);}})[_0x2243('0x17')](function(_0x31ca17){logger[_0x2243('0x14')](_0x2243('0xf'),_0x1c42af,_0x31ca17);_0x128d83(_0x31ca17);});});}
\ No newline at end of file
+var _0x3af5=['stringify','error','code','message','info','request\x20sent','catch','lodash','util','bluebird','randomstring','../../config/utils','../../config/environment','jayson/promise','http','request','then','CloudProvider,\x20%s,\x20%s','debug','CloudProvider,\x20%s,\x20%s,\x20%s'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x3af5,0x1d3));var _0x53af=function(_0x507965,_0x4944f4){_0x507965=_0x507965-0x0;var _0x3608fc=_0x3af5[_0x507965];return _0x3608fc;};'use strict';var _=require(_0x53af('0x0'));var util=require(_0x53af('0x1'));var moment=require('moment');var BPromise=require(_0x53af('0x2'));var rs=require(_0x53af('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x53af('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0x53af('0x5'));var jayson=require(_0x53af('0x6'));var client=jayson['client'][_0x53af('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x4eb461,_0x3aefaf,_0x27eed3){return new BPromise(function(_0x2875ab,_0x22c0cb){return client[_0x53af('0x8')](_0x4eb461,_0x27eed3)[_0x53af('0x9')](function(_0x56751b){logger['info'](_0x53af('0xa'),_0x3aefaf,'request\x20sent');logger[_0x53af('0xb')](_0x53af('0xc'),_0x3aefaf,'request\x20sent',JSON[_0x53af('0xd')](_0x56751b));if(_0x56751b[_0x53af('0xe')]){if(_0x56751b['error'][_0x53af('0xf')]===0x1f4){logger[_0x53af('0xe')](_0x53af('0xa'),_0x3aefaf,_0x56751b['error'][_0x53af('0x10')]);return _0x22c0cb(_0x56751b['error'][_0x53af('0x10')]);}logger[_0x53af('0xe')](_0x53af('0xa'),_0x3aefaf,_0x56751b[_0x53af('0xe')][_0x53af('0x10')]);return _0x2875ab(_0x56751b[_0x53af('0xe')][_0x53af('0x10')]);}else{logger[_0x53af('0x11')](_0x53af('0xa'),_0x3aefaf,_0x53af('0x12'));_0x2875ab(_0x56751b['result'][_0x53af('0x10')]);}})[_0x53af('0x13')](function(_0x29bb86){logger[_0x53af('0xe')](_0x53af('0xa'),_0x3aefaf,_0x29bb86);_0x22c0cb(_0x29bb86);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x06a7=['multer','util','path','express','Router','fs-extra','../../config/environment','./cloudProvider.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','exports'];(function(_0x4a8da4,_0x332484){var _0xe6a853=function(_0xc460d1){while(--_0xc460d1){_0x4a8da4['push'](_0x4a8da4['shift']());}};_0xe6a853(++_0x332484);}(_0x06a7,0x18f));var _0x706a=function(_0x34ecbf,_0x210898){_0x34ecbf=_0x34ecbf-0x0;var _0x115f8a=_0x06a7[_0x34ecbf];return _0x115f8a;};'use strict';var multer=require(_0x706a('0x0'));var util=require(_0x706a('0x1'));var path=require(_0x706a('0x2'));var timeout=require('connect-timeout');var express=require(_0x706a('0x3'));var router=express[_0x706a('0x4')]();var fs_extra=require(_0x706a('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x706a('0x6'));var controller=require(_0x706a('0x7'));router[_0x706a('0x8')]('/',auth[_0x706a('0x9')](),controller[_0x706a('0xa')]);router[_0x706a('0x8')](_0x706a('0xb'),auth[_0x706a('0x9')](),controller[_0x706a('0xc')]);router[_0x706a('0xd')]('/',auth[_0x706a('0x9')](),controller[_0x706a('0xe')]);router[_0x706a('0xf')](_0x706a('0xb'),auth[_0x706a('0x9')](),controller[_0x706a('0x10')]);router[_0x706a('0x11')](_0x706a('0xb'),auth[_0x706a('0x9')](),controller['destroy']);module[_0x706a('0x12')]=router;
\ No newline at end of file
+var _0x299c=['isAuthenticated','index','/:id','show','update','delete','multer','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get'];(function(_0x12a26d,_0x132d64){var _0x42f07c=function(_0x3d6ed0){while(--_0x3d6ed0){_0x12a26d['push'](_0x12a26d['shift']());}};_0x42f07c(++_0x132d64);}(_0x299c,0x180));var _0xc299=function(_0x3490c2,_0x548c5e){_0x3490c2=_0x3490c2-0x0;var _0x891d41=_0x299c[_0x3490c2];return _0x891d41;};'use strict';var multer=require(_0xc299('0x0'));var util=require('util');var path=require(_0xc299('0x1'));var timeout=require('connect-timeout');var express=require(_0xc299('0x2'));var router=express[_0xc299('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xc299('0x4'));var interaction=require(_0xc299('0x5'));var config=require(_0xc299('0x6'));var controller=require('./cloudProvider.controller');router[_0xc299('0x7')]('/',auth[_0xc299('0x8')](),controller[_0xc299('0x9')]);router['get'](_0xc299('0xa'),auth[_0xc299('0x8')](),controller[_0xc299('0xb')]);router['post']('/',auth[_0xc299('0x8')](),controller['create']);router['put'](_0xc299('0xa'),auth[_0xc299('0x8')](),controller[_0xc299('0xc')]);router[_0xc299('0xd')]('/:id',auth[_0xc299('0x8')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe970=['exports','STRING','name'];(function(_0x572bf1,_0x333c36){var _0x441ef9=function(_0x3f9910){while(--_0x3f9910){_0x572bf1['push'](_0x572bf1['shift']());}};_0x441ef9(++_0x333c36);}(_0xe970,0xc9));var _0x0e97=function(_0x4085a2,_0x5be97a){_0x4085a2=_0x4085a2-0x0;var _0x54f34a=_0xe970[_0x4085a2];return _0x54f34a;};'use strict';var Sequelize=require('sequelize');module[_0x0e97('0x0')]={'name':{'type':Sequelize[_0x0e97('0x1')],'unique':_0x0e97('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize[_0x0e97('0x1')]},'companyId':{'type':Sequelize['STRING']},'website':{'type':Sequelize[_0x0e97('0x1')]},'phone':{'type':Sequelize[_0x0e97('0x1')]},'fax':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x0e97('0x1')]},'street':{'type':Sequelize['STRING']},'postalCode':{'type':Sequelize[_0x0e97('0x1')]},'city':{'type':Sequelize[_0x0e97('0x1')]},'country':{'type':Sequelize[_0x0e97('0x1')]},'email':{'type':Sequelize[_0x0e97('0x1')],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize[_0x0e97('0x1')]},'sStreet':{'type':Sequelize[_0x0e97('0x1')]},'sPostalCode':{'type':Sequelize[_0x0e97('0x1')]},'sCity':{'type':Sequelize[_0x0e97('0x1')]},'sCountry':{'type':Sequelize[_0x0e97('0x1')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x1fc9=['name','STRING','sequelize','exports'];(function(_0x159d15,_0x4eda0d){var _0x1bce7c=function(_0x261521){while(--_0x261521){_0x159d15['push'](_0x159d15['shift']());}};_0x1bce7c(++_0x4eda0d);}(_0x1fc9,0x136));var _0x91fc=function(_0xf139fb,_0x3cc921){_0xf139fb=_0xf139fb-0x0;var _0x2a9824=_0x1fc9[_0xf139fb];return _0x2a9824;};'use strict';var Sequelize=require(_0x91fc('0x0'));module[_0x91fc('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x91fc('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize[_0x91fc('0x3')]},'companyId':{'type':Sequelize['STRING']},'website':{'type':Sequelize[_0x91fc('0x3')]},'phone':{'type':Sequelize[_0x91fc('0x3')]},'fax':{'type':Sequelize[_0x91fc('0x3')]},'type':{'type':Sequelize[_0x91fc('0x3')]},'street':{'type':Sequelize[_0x91fc('0x3')]},'postalCode':{'type':Sequelize[_0x91fc('0x3')]},'city':{'type':Sequelize[_0x91fc('0x3')]},'country':{'type':Sequelize[_0x91fc('0x3')]},'email':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize[_0x91fc('0x3')]},'sStreet':{'type':Sequelize[_0x91fc('0x3')]},'sPostalCode':{'type':Sequelize['STRING']},'sCity':{'type':Sequelize['STRING']},'sCountry':{'type':Sequelize[_0x91fc('0x3')]},'description':{'type':Sequelize[_0x91fc('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c35=['then','destroy','get','UserProfileResource','error','stack','name','send','index','CmCompany','model','keys','query','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','map','options','include','catch','show','includeAll','find','create','user','Companies','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','describe','addContacts','CmContact','ids','omit','getContacts','rawAttributes','hasOwnProperty','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','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','offset','undefined','limit','count','Content-Range','json','reject','update'];(function(_0x7275e9,_0x321fa5){var _0x17b99d=function(_0x54af41){while(--_0x54af41){_0x7275e9['push'](_0x7275e9['shift']());}};_0x17b99d(++_0x321fa5);}(_0x4c35,0x86));var _0x54c3=function(_0x3cf5a3,_0x5a4492){_0x3cf5a3=_0x3cf5a3-0x0;var _0x39ba2d=_0x4c35[_0x3cf5a3];return _0x39ba2d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x54c3('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x54c3('0x1'));var rp=require('request-promise');var moment=require(_0x54c3('0x2'));var BPromise=require(_0x54c3('0x3'));var Mustache=require(_0x54c3('0x4'));var util=require(_0x54c3('0x5'));var path=require(_0x54c3('0x6'));var sox=require(_0x54c3('0x7'));var csv=require(_0x54c3('0x8'));var ejs=require(_0x54c3('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x54c3('0xa'));var squel=require('squel');var crypto=require(_0x54c3('0xb'));var jsforce=require(_0x54c3('0xc'));var deskjs=require(_0x54c3('0xd'));var toCsv=require(_0x54c3('0x8'));var querystring=require(_0x54c3('0xe'));var Papa=require('papaparse');var Redis=require(_0x54c3('0xf'));var authService=require(_0x54c3('0x10'));var qs=require(_0x54c3('0x11'));var as=require(_0x54c3('0x12'));var hardwareService=require(_0x54c3('0x13'));var logger=require(_0x54c3('0x14'))(_0x54c3('0x15'));var utils=require('../../config/utils');var config=require(_0x54c3('0x16'));var licenseUtil=require(_0x54c3('0x17'));var db=require(_0x54c3('0x18'))['db'];function respondWithStatusCode(_0x33a56e,_0x66a6f3){_0x66a6f3=_0x66a6f3||0xcc;return function(_0x4761a1){if(_0x4761a1){return _0x33a56e[_0x54c3('0x19')](_0x66a6f3);}return _0x33a56e[_0x54c3('0x1a')](_0x66a6f3)[_0x54c3('0x1b')]();};}function respondWithResult(_0x9437ae,_0x56729e){_0x56729e=_0x56729e||0xc8;return function(_0xebb6c){if(_0xebb6c){return _0x9437ae[_0x54c3('0x1a')](_0x56729e)['json'](_0xebb6c);}};}function respondWithFilteredResult(_0x183454,_0x3a1334){return function(_0xf5d99f){if(_0xf5d99f){var _0x17ec0b=typeof _0x3a1334[_0x54c3('0x1c')]===_0x54c3('0x1d')&&typeof _0x3a1334[_0x54c3('0x1e')]===_0x54c3('0x1d');var _0x4c485f=_0xf5d99f[_0x54c3('0x1f')];var _0x5ee4bd=_0x17ec0b?0x0:_0x3a1334[_0x54c3('0x1c')];var _0x4ee3bf=_0x17ec0b?_0xf5d99f[_0x54c3('0x1f')]:_0x3a1334['offset']+_0x3a1334['limit'];var _0x3fa161;if(_0x4ee3bf>=_0x4c485f){_0x4ee3bf=_0x4c485f;_0x3fa161=0xc8;}else{_0x3fa161=0xce;}_0x183454[_0x54c3('0x1a')](_0x3fa161);return _0x183454['set'](_0x54c3('0x20'),_0x5ee4bd+'-'+_0x4ee3bf+'/'+_0x4c485f)[_0x54c3('0x21')](_0xf5d99f);}return null;};}function patchUpdates(_0x333e68){return function(_0x464f32){try{jsonpatch['apply'](_0x464f32,_0x333e68,!![]);}catch(_0x5e8efb){return BPromise[_0x54c3('0x22')](_0x5e8efb);}return _0x464f32['save']();};}function saveUpdates(_0x4118c5,_0x34e6ea){return function(_0x139184){if(_0x139184){return _0x139184[_0x54c3('0x23')](_0x4118c5)[_0x54c3('0x24')](function(_0x38d7c0){return _0x38d7c0;});}return null;};}function removeEntity(_0x428f7b,_0x1ff444){return function(_0xb64497){if(_0xb64497){return _0xb64497[_0x54c3('0x25')]()[_0x54c3('0x24')](function(){var _0x2a556e=_0xb64497[_0x54c3('0x26')]({'plain':!![]});var _0x4546a4='Companies';return db[_0x54c3('0x27')][_0x54c3('0x25')]({'where':{'type':_0x4546a4,'resourceId':_0x2a556e['id']}})[_0x54c3('0x24')](function(){return _0xb64497;});})[_0x54c3('0x24')](function(){_0x428f7b[_0x54c3('0x1a')](0xcc)[_0x54c3('0x1b')]();});}};}function handleEntityNotFound(_0x2bbec9,_0x188993){return function(_0x36ff26){if(!_0x36ff26){_0x2bbec9[_0x54c3('0x19')](0x194);}return _0x36ff26;};}function handleError(_0x16b310,_0xfa7714){_0xfa7714=_0xfa7714||0x1f4;return function(_0x3cecc4){logger[_0x54c3('0x28')](_0x3cecc4[_0x54c3('0x29')]);if(_0x3cecc4[_0x54c3('0x2a')]){delete _0x3cecc4[_0x54c3('0x2a')];}_0x16b310[_0x54c3('0x1a')](_0xfa7714)[_0x54c3('0x2b')](_0x3cecc4);};}exports[_0x54c3('0x2c')]=function(_0x2f4252,_0x49a29e){var _0x51bffb={},_0x22f7ca={},_0x4dcbe9={'count':0x0,'rows':[]};return db[_0x54c3('0x2d')]['describe']()[_0x54c3('0x24')](function(_0x4e8969){_0x22f7ca[_0x54c3('0x2e')]=_[_0x54c3('0x2f')](_0x4e8969);_0x22f7ca[_0x54c3('0x30')]=_[_0x54c3('0x2f')](_0x2f4252['query']);_0x22f7ca['filters']=_[_0x54c3('0x31')](_0x22f7ca[_0x54c3('0x2e')],_0x22f7ca[_0x54c3('0x30')]);_0x51bffb[_0x54c3('0x32')]=_[_0x54c3('0x31')](_0x22f7ca[_0x54c3('0x2e')],qs[_0x54c3('0x33')](_0x2f4252[_0x54c3('0x30')]['fields']));_0x51bffb[_0x54c3('0x32')]=_0x51bffb[_0x54c3('0x32')][_0x54c3('0x34')]?_0x51bffb[_0x54c3('0x32')]:_0x22f7ca[_0x54c3('0x2e')];if(!_0x2f4252[_0x54c3('0x30')]['hasOwnProperty'](_0x54c3('0x35'))){_0x51bffb[_0x54c3('0x1e')]=qs[_0x54c3('0x1e')](_0x2f4252['query'][_0x54c3('0x1e')]);_0x51bffb['offset']=qs[_0x54c3('0x1c')](_0x2f4252['query'][_0x54c3('0x1c')]);}_0x51bffb[_0x54c3('0x36')]=qs[_0x54c3('0x37')](_0x2f4252[_0x54c3('0x30')][_0x54c3('0x37')]);_0x51bffb[_0x54c3('0x38')]=qs[_0x54c3('0x39')](_[_0x54c3('0x3a')](_0x2f4252['query'],_0x22f7ca[_0x54c3('0x39')]),_0x4e8969);if(_0x2f4252[_0x54c3('0x30')][_0x54c3('0x3b')]){_0x51bffb[_0x54c3('0x38')]=_[_0x54c3('0x3c')](_0x51bffb[_0x54c3('0x38')],{'$or':_[_0x54c3('0x3d')](_0x51bffb[_0x54c3('0x32')],function(_0x2b441e){var _0x477be8={};_0x477be8[_0x2b441e]={'$like':'%'+_0x2f4252['query'][_0x54c3('0x3b')]+'%'};return _0x477be8;})});}_0x51bffb=_[_0x54c3('0x3c')]({},_0x51bffb,_0x2f4252[_0x54c3('0x3e')]);var _0x2471a3={'where':_0x51bffb[_0x54c3('0x38')]};return db[_0x54c3('0x2d')][_0x54c3('0x1f')](_0x2471a3)[_0x54c3('0x24')](function(_0x40fae6){_0x4dcbe9['count']=_0x40fae6;if(_0x2f4252['query']['includeAll']){_0x51bffb[_0x54c3('0x3f')]=[{'all':!![]}];}return db[_0x54c3('0x2d')]['findAll'](_0x51bffb);})[_0x54c3('0x24')](function(_0x8c4d50){_0x4dcbe9['rows']=_0x8c4d50;return _0x4dcbe9;})[_0x54c3('0x24')](respondWithFilteredResult(_0x49a29e,_0x51bffb))[_0x54c3('0x40')](handleError(_0x49a29e,null));})['catch'](handleError(_0x49a29e,null));};exports[_0x54c3('0x41')]=function(_0x869454,_0x189172){var _0x3c4c2f={'raw':![],'where':{'id':_0x869454['params']['id']}},_0x2a5ad4={};_0x2a5ad4[_0x54c3('0x2e')]=_[_0x54c3('0x2f')](db['CmCompany']['rawAttributes']);_0x2a5ad4[_0x54c3('0x30')]=_[_0x54c3('0x2f')](_0x869454['query']);_0x2a5ad4[_0x54c3('0x39')]=_[_0x54c3('0x31')](_0x2a5ad4[_0x54c3('0x2e')],_0x2a5ad4[_0x54c3('0x30')]);_0x3c4c2f['attributes']=_[_0x54c3('0x31')](_0x2a5ad4['model'],qs[_0x54c3('0x33')](_0x869454[_0x54c3('0x30')][_0x54c3('0x33')]));_0x3c4c2f[_0x54c3('0x32')]=_0x3c4c2f[_0x54c3('0x32')][_0x54c3('0x34')]?_0x3c4c2f['attributes']:_0x2a5ad4[_0x54c3('0x2e')];if(_0x869454['query'][_0x54c3('0x42')]){_0x3c4c2f[_0x54c3('0x3f')]=[{'all':!![]}];}_0x3c4c2f=_['merge']({},_0x3c4c2f,_0x869454[_0x54c3('0x3e')]);return db[_0x54c3('0x2d')][_0x54c3('0x43')](_0x3c4c2f)[_0x54c3('0x24')](handleEntityNotFound(_0x189172,null))[_0x54c3('0x24')](respondWithResult(_0x189172,null))[_0x54c3('0x40')](handleError(_0x189172,null));};exports[_0x54c3('0x44')]=function(_0x2dd704,_0x1d35d1){return db[_0x54c3('0x2d')][_0x54c3('0x44')](_0x2dd704['body'],{})[_0x54c3('0x24')](function(_0x32c420){var _0x5172c8=_0x2dd704[_0x54c3('0x45')][_0x54c3('0x26')]({'plain':!![]});if(!_0x5172c8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5172c8['role']===_0x54c3('0x45')){var _0x164939=_0x32c420[_0x54c3('0x26')]({'plain':!![]});var _0x2517b9=_0x54c3('0x46');return db[_0x54c3('0x47')][_0x54c3('0x43')]({'where':{'name':_0x2517b9,'userProfileId':_0x5172c8[_0x54c3('0x48')]},'raw':!![]})[_0x54c3('0x24')](function(_0x4e84d0){if(_0x4e84d0&&_0x4e84d0[_0x54c3('0x49')]===0x0){return db['UserProfileResource'][_0x54c3('0x44')]({'name':_0x164939['name'],'resourceId':_0x164939['id'],'type':_0x4e84d0['name'],'sectionId':_0x4e84d0['id']},{})['then'](function(){return _0x32c420;});}else{return _0x32c420;}})[_0x54c3('0x40')](function(_0x4c092a){logger[_0x54c3('0x28')](_0x54c3('0x4a'),_0x4c092a);throw _0x4c092a;});}return _0x32c420;})[_0x54c3('0x24')](respondWithResult(_0x1d35d1,0xc9))[_0x54c3('0x40')](handleError(_0x1d35d1,null));};exports[_0x54c3('0x23')]=function(_0x307a39,_0xbf1b0c){if(_0x307a39[_0x54c3('0x4b')]['id']){delete _0x307a39[_0x54c3('0x4b')]['id'];}return db['CmCompany'][_0x54c3('0x43')]({'where':{'id':_0x307a39[_0x54c3('0x4c')]['id']}})[_0x54c3('0x24')](handleEntityNotFound(_0xbf1b0c,null))[_0x54c3('0x24')](saveUpdates(_0x307a39[_0x54c3('0x4b')],null))['then'](respondWithResult(_0xbf1b0c,null))[_0x54c3('0x40')](handleError(_0xbf1b0c,null));};exports['destroy']=function(_0x54af60,_0x2612c0){return db[_0x54c3('0x2d')][_0x54c3('0x43')]({'where':{'id':_0x54af60[_0x54c3('0x4c')]['id']}})[_0x54c3('0x24')](handleEntityNotFound(_0x2612c0,null))[_0x54c3('0x24')](removeEntity(_0x2612c0,null))[_0x54c3('0x40')](handleError(_0x2612c0,null));};exports[_0x54c3('0x4d')]=function(_0xc16b89,_0x471505){return db[_0x54c3('0x2d')]['describe']()[_0x54c3('0x24')](respondWithResult(_0x471505,null))[_0x54c3('0x40')](handleError(_0x471505,null));};exports[_0x54c3('0x4e')]=function(_0x20459a,_0x45e7e8,_0x47cd8c){return db[_0x54c3('0x4f')][_0x54c3('0x43')]({'where':{'id':_0x20459a['params']['id']}})[_0x54c3('0x24')](handleEntityNotFound(_0x45e7e8,null))[_0x54c3('0x24')](function(_0x289db3){if(_0x289db3){return _0x289db3[_0x54c3('0x4e')](_0x20459a[_0x54c3('0x4b')][_0x54c3('0x50')],_[_0x54c3('0x51')](_0x20459a['body'],['ids','id'])||{});}})[_0x54c3('0x24')](respondWithResult(_0x45e7e8,null))[_0x54c3('0x40')](handleError(_0x45e7e8,null));};exports[_0x54c3('0x52')]=function(_0x5f02a7,_0x1dfaaf,_0x4f10f8){var _0x43b8f9={};var _0x2381ef={};var _0x310818;var _0x4ef516;return db[_0x54c3('0x2d')]['findOne']({'where':{'id':_0x5f02a7[_0x54c3('0x4c')]['id']}})['then'](handleEntityNotFound(_0x1dfaaf,null))['then'](function(_0x32b5d3){if(_0x32b5d3){_0x310818=_0x32b5d3;_0x2381ef[_0x54c3('0x2e')]=_['keys'](db[_0x54c3('0x4f')][_0x54c3('0x53')]);_0x2381ef[_0x54c3('0x30')]=_[_0x54c3('0x2f')](_0x5f02a7[_0x54c3('0x30')]);_0x2381ef['filters']=_[_0x54c3('0x31')](_0x2381ef[_0x54c3('0x2e')],_0x2381ef[_0x54c3('0x30')]);_0x43b8f9[_0x54c3('0x32')]=_[_0x54c3('0x31')](_0x2381ef['model'],qs[_0x54c3('0x33')](_0x5f02a7[_0x54c3('0x30')][_0x54c3('0x33')]));_0x43b8f9[_0x54c3('0x32')]=_0x43b8f9['attributes']['length']?_0x43b8f9[_0x54c3('0x32')]:_0x2381ef[_0x54c3('0x2e')];_0x43b8f9[_0x54c3('0x36')]=qs[_0x54c3('0x37')](_0x5f02a7[_0x54c3('0x30')][_0x54c3('0x37')]);_0x43b8f9[_0x54c3('0x38')]=qs[_0x54c3('0x39')](_[_0x54c3('0x3a')](_0x5f02a7[_0x54c3('0x30')],_0x2381ef['filters']));if(_0x5f02a7[_0x54c3('0x30')]['filter']){_0x43b8f9['where']=_[_0x54c3('0x3c')](_0x43b8f9[_0x54c3('0x38')],{'$or':_[_0x54c3('0x3d')](_0x43b8f9['attributes'],function(_0x5cccdf){var _0x5cb8b6={};_0x5cb8b6[_0x5cccdf]={'$like':'%'+_0x5f02a7[_0x54c3('0x30')][_0x54c3('0x3b')]+'%'};return _0x5cb8b6;})});}_0x43b8f9=_[_0x54c3('0x3c')]({},_0x43b8f9,_0x5f02a7[_0x54c3('0x3e')]);return _0x310818[_0x54c3('0x52')](_0x43b8f9);}})['then'](function(_0x32b1ed){if(_0x32b1ed){_0x4ef516=_0x32b1ed[_0x54c3('0x34')];if(!_0x5f02a7[_0x54c3('0x30')][_0x54c3('0x54')](_0x54c3('0x35'))){_0x43b8f9[_0x54c3('0x1e')]=qs[_0x54c3('0x1e')](_0x5f02a7[_0x54c3('0x30')]['limit']);_0x43b8f9['offset']=qs[_0x54c3('0x1c')](_0x5f02a7['query'][_0x54c3('0x1c')]);}return _0x310818[_0x54c3('0x52')](_0x43b8f9);}})[_0x54c3('0x24')](function(_0x44cd61){if(_0x44cd61){return _0x44cd61?{'count':_0x4ef516,'rows':_0x44cd61}:null;}})['then'](respondWithResult(_0x1dfaaf,null))[_0x54c3('0x40')](handleError(_0x1dfaaf,null));};
\ No newline at end of file
+var _0x1e8e=['Companies','UserProfileResource','error','stack','name','index','CmCompany','describe','keys','query','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','map','filter','include','rows','catch','show','params','options','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addContacts','CmContact','omit','ids','getContacts','findOne','rawAttributes','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','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','offset','undefined','limit','count','set','json','reject','update','destroy','then','get'];(function(_0xb29b6e,_0x59d03e){var _0x96fab1=function(_0xb40fba){while(--_0xb40fba){_0xb29b6e['push'](_0xb29b6e['shift']());}};_0x96fab1(++_0x59d03e);}(_0x1e8e,0x12d));var _0xe1e8=function(_0x4c730e,_0x287a09){_0x4c730e=_0x4c730e-0x0;var _0x2294f2=_0x1e8e[_0x4c730e];return _0x2294f2;};'use strict';var emlformat=require(_0xe1e8('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe1e8('0x1'));var jsonpatch=require(_0xe1e8('0x2'));var rp=require(_0xe1e8('0x3'));var moment=require(_0xe1e8('0x4'));var BPromise=require(_0xe1e8('0x5'));var Mustache=require(_0xe1e8('0x6'));var util=require(_0xe1e8('0x7'));var path=require('path');var sox=require(_0xe1e8('0x8'));var csv=require(_0xe1e8('0x9'));var ejs=require(_0xe1e8('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe1e8('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xe1e8('0xc'));var deskjs=require(_0xe1e8('0xd'));var toCsv=require(_0xe1e8('0x9'));var querystring=require(_0xe1e8('0xe'));var Papa=require(_0xe1e8('0xf'));var Redis=require(_0xe1e8('0x10'));var authService=require(_0xe1e8('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xe1e8('0x12'));var hardwareService=require(_0xe1e8('0x13'));var logger=require(_0xe1e8('0x14'))('api');var utils=require(_0xe1e8('0x15'));var config=require(_0xe1e8('0x16'));var licenseUtil=require(_0xe1e8('0x17'));var db=require(_0xe1e8('0x18'))['db'];function respondWithStatusCode(_0x3f22e2,_0x5dd019){_0x5dd019=_0x5dd019||0xcc;return function(_0x319cec){if(_0x319cec){return _0x3f22e2[_0xe1e8('0x19')](_0x5dd019);}return _0x3f22e2[_0xe1e8('0x1a')](_0x5dd019)[_0xe1e8('0x1b')]();};}function respondWithResult(_0x2e4ee5,_0x123ca3){_0x123ca3=_0x123ca3||0xc8;return function(_0x2feabb){if(_0x2feabb){return _0x2e4ee5['status'](_0x123ca3)['json'](_0x2feabb);}};}function respondWithFilteredResult(_0x5b5c55,_0x52e18b){return function(_0x4e09cd){if(_0x4e09cd){var _0x259a59=typeof _0x52e18b[_0xe1e8('0x1c')]===_0xe1e8('0x1d')&&typeof _0x52e18b[_0xe1e8('0x1e')]===_0xe1e8('0x1d');var _0x5ea148=_0x4e09cd[_0xe1e8('0x1f')];var _0x48dad4=_0x259a59?0x0:_0x52e18b['offset'];var _0x896893=_0x259a59?_0x4e09cd[_0xe1e8('0x1f')]:_0x52e18b[_0xe1e8('0x1c')]+_0x52e18b[_0xe1e8('0x1e')];var _0xca1e71;if(_0x896893>=_0x5ea148){_0x896893=_0x5ea148;_0xca1e71=0xc8;}else{_0xca1e71=0xce;}_0x5b5c55['status'](_0xca1e71);return _0x5b5c55[_0xe1e8('0x20')]('Content-Range',_0x48dad4+'-'+_0x896893+'/'+_0x5ea148)[_0xe1e8('0x21')](_0x4e09cd);}return null;};}function patchUpdates(_0x37cc65){return function(_0x337b9e){try{jsonpatch['apply'](_0x337b9e,_0x37cc65,!![]);}catch(_0x5cf9d3){return BPromise[_0xe1e8('0x22')](_0x5cf9d3);}return _0x337b9e['save']();};}function saveUpdates(_0x402fd8,_0x4b01c1){return function(_0x4f14f7){if(_0x4f14f7){return _0x4f14f7[_0xe1e8('0x23')](_0x402fd8)['then'](function(_0x2ed533){return _0x2ed533;});}return null;};}function removeEntity(_0x3e2702,_0x50b99f){return function(_0x31b912){if(_0x31b912){return _0x31b912[_0xe1e8('0x24')]()[_0xe1e8('0x25')](function(){var _0x5d8683=_0x31b912[_0xe1e8('0x26')]({'plain':!![]});var _0x166c30=_0xe1e8('0x27');return db[_0xe1e8('0x28')][_0xe1e8('0x24')]({'where':{'type':_0x166c30,'resourceId':_0x5d8683['id']}})[_0xe1e8('0x25')](function(){return _0x31b912;});})[_0xe1e8('0x25')](function(){_0x3e2702[_0xe1e8('0x1a')](0xcc)[_0xe1e8('0x1b')]();});}};}function handleEntityNotFound(_0x4c5f2f,_0x1d607f){return function(_0x5bd3f2){if(!_0x5bd3f2){_0x4c5f2f[_0xe1e8('0x19')](0x194);}return _0x5bd3f2;};}function handleError(_0x3ff368,_0x1f507c){_0x1f507c=_0x1f507c||0x1f4;return function(_0x302733){logger[_0xe1e8('0x29')](_0x302733[_0xe1e8('0x2a')]);if(_0x302733[_0xe1e8('0x2b')]){delete _0x302733['name'];}_0x3ff368['status'](_0x1f507c)['send'](_0x302733);};}exports[_0xe1e8('0x2c')]=function(_0x562bcc,_0xccf046){var _0x1f4fb7={},_0x5816b4={},_0x56a14d={'count':0x0,'rows':[]};return db[_0xe1e8('0x2d')][_0xe1e8('0x2e')]()[_0xe1e8('0x25')](function(_0x1fc4ec){_0x5816b4['model']=_[_0xe1e8('0x2f')](_0x1fc4ec);_0x5816b4[_0xe1e8('0x30')]=_[_0xe1e8('0x2f')](_0x562bcc['query']);_0x5816b4[_0xe1e8('0x31')]=_[_0xe1e8('0x32')](_0x5816b4['model'],_0x5816b4[_0xe1e8('0x30')]);_0x1f4fb7[_0xe1e8('0x33')]=_['intersection'](_0x5816b4[_0xe1e8('0x34')],qs[_0xe1e8('0x35')](_0x562bcc[_0xe1e8('0x30')][_0xe1e8('0x35')]));_0x1f4fb7['attributes']=_0x1f4fb7[_0xe1e8('0x33')][_0xe1e8('0x36')]?_0x1f4fb7[_0xe1e8('0x33')]:_0x5816b4[_0xe1e8('0x34')];if(!_0x562bcc[_0xe1e8('0x30')][_0xe1e8('0x37')](_0xe1e8('0x38'))){_0x1f4fb7[_0xe1e8('0x1e')]=qs['limit'](_0x562bcc[_0xe1e8('0x30')][_0xe1e8('0x1e')]);_0x1f4fb7[_0xe1e8('0x1c')]=qs['offset'](_0x562bcc['query']['offset']);}_0x1f4fb7[_0xe1e8('0x39')]=qs[_0xe1e8('0x3a')](_0x562bcc['query'][_0xe1e8('0x3a')]);_0x1f4fb7[_0xe1e8('0x3b')]=qs[_0xe1e8('0x31')](_[_0xe1e8('0x3c')](_0x562bcc[_0xe1e8('0x30')],_0x5816b4[_0xe1e8('0x31')]),_0x1fc4ec);if(_0x562bcc['query']['filter']){_0x1f4fb7['where']=_[_0xe1e8('0x3d')](_0x1f4fb7[_0xe1e8('0x3b')],{'$or':_[_0xe1e8('0x3e')](_0x1f4fb7[_0xe1e8('0x33')],function(_0x17e4e0){var _0x3f0012={};_0x3f0012[_0x17e4e0]={'$like':'%'+_0x562bcc[_0xe1e8('0x30')][_0xe1e8('0x3f')]+'%'};return _0x3f0012;})});}_0x1f4fb7=_[_0xe1e8('0x3d')]({},_0x1f4fb7,_0x562bcc['options']);var _0x3b2039={'where':_0x1f4fb7[_0xe1e8('0x3b')]};return db[_0xe1e8('0x2d')][_0xe1e8('0x1f')](_0x3b2039)[_0xe1e8('0x25')](function(_0x485239){_0x56a14d['count']=_0x485239;if(_0x562bcc['query']['includeAll']){_0x1f4fb7[_0xe1e8('0x40')]=[{'all':!![]}];}return db[_0xe1e8('0x2d')]['findAll'](_0x1f4fb7);})[_0xe1e8('0x25')](function(_0x3bb3ae){_0x56a14d[_0xe1e8('0x41')]=_0x3bb3ae;return _0x56a14d;})[_0xe1e8('0x25')](respondWithFilteredResult(_0xccf046,_0x1f4fb7))[_0xe1e8('0x42')](handleError(_0xccf046,null));})[_0xe1e8('0x42')](handleError(_0xccf046,null));};exports[_0xe1e8('0x43')]=function(_0x4d0717,_0x2edd7b){var _0xbb3bcd={'raw':![],'where':{'id':_0x4d0717[_0xe1e8('0x44')]['id']}},_0x7524b7={};_0x7524b7[_0xe1e8('0x34')]=_[_0xe1e8('0x2f')](db['CmCompany']['rawAttributes']);_0x7524b7[_0xe1e8('0x30')]=_[_0xe1e8('0x2f')](_0x4d0717[_0xe1e8('0x30')]);_0x7524b7['filters']=_[_0xe1e8('0x32')](_0x7524b7[_0xe1e8('0x34')],_0x7524b7[_0xe1e8('0x30')]);_0xbb3bcd[_0xe1e8('0x33')]=_[_0xe1e8('0x32')](_0x7524b7[_0xe1e8('0x34')],qs[_0xe1e8('0x35')](_0x4d0717[_0xe1e8('0x30')]['fields']));_0xbb3bcd['attributes']=_0xbb3bcd[_0xe1e8('0x33')][_0xe1e8('0x36')]?_0xbb3bcd['attributes']:_0x7524b7[_0xe1e8('0x34')];if(_0x4d0717[_0xe1e8('0x30')]['includeAll']){_0xbb3bcd[_0xe1e8('0x40')]=[{'all':!![]}];}_0xbb3bcd=_[_0xe1e8('0x3d')]({},_0xbb3bcd,_0x4d0717[_0xe1e8('0x45')]);return db['CmCompany'][_0xe1e8('0x46')](_0xbb3bcd)[_0xe1e8('0x25')](handleEntityNotFound(_0x2edd7b,null))[_0xe1e8('0x25')](respondWithResult(_0x2edd7b,null))['catch'](handleError(_0x2edd7b,null));};exports[_0xe1e8('0x47')]=function(_0x2bf5b5,_0x4f316c){return db['CmCompany'][_0xe1e8('0x47')](_0x2bf5b5['body'],{})['then'](function(_0x46ebab){var _0x198f3b=_0x2bf5b5['user'][_0xe1e8('0x26')]({'plain':!![]});if(!_0x198f3b)throw new Error(_0xe1e8('0x48'));if(_0x198f3b['role']===_0xe1e8('0x49')){var _0x5d38a2=_0x46ebab['get']({'plain':!![]});var _0x31e3a7=_0xe1e8('0x27');return db['UserProfileSection'][_0xe1e8('0x46')]({'where':{'name':_0x31e3a7,'userProfileId':_0x198f3b[_0xe1e8('0x4a')]},'raw':!![]})[_0xe1e8('0x25')](function(_0x47f460){if(_0x47f460&&_0x47f460[_0xe1e8('0x4b')]===0x0){return db[_0xe1e8('0x28')]['create']({'name':_0x5d38a2['name'],'resourceId':_0x5d38a2['id'],'type':_0x47f460[_0xe1e8('0x2b')],'sectionId':_0x47f460['id']},{})[_0xe1e8('0x25')](function(){return _0x46ebab;});}else{return _0x46ebab;}})[_0xe1e8('0x42')](function(_0x168fb3){logger[_0xe1e8('0x29')](_0xe1e8('0x4c'),_0x168fb3);throw _0x168fb3;});}return _0x46ebab;})[_0xe1e8('0x25')](respondWithResult(_0x4f316c,0xc9))[_0xe1e8('0x42')](handleError(_0x4f316c,null));};exports[_0xe1e8('0x23')]=function(_0x1cb860,_0x2b2cd1){if(_0x1cb860[_0xe1e8('0x4d')]['id']){delete _0x1cb860[_0xe1e8('0x4d')]['id'];}return db[_0xe1e8('0x2d')][_0xe1e8('0x46')]({'where':{'id':_0x1cb860[_0xe1e8('0x44')]['id']}})[_0xe1e8('0x25')](handleEntityNotFound(_0x2b2cd1,null))['then'](saveUpdates(_0x1cb860[_0xe1e8('0x4d')],null))[_0xe1e8('0x25')](respondWithResult(_0x2b2cd1,null))[_0xe1e8('0x42')](handleError(_0x2b2cd1,null));};exports[_0xe1e8('0x24')]=function(_0x2607fa,_0x10ec16){return db[_0xe1e8('0x2d')][_0xe1e8('0x46')]({'where':{'id':_0x2607fa[_0xe1e8('0x44')]['id']}})['then'](handleEntityNotFound(_0x10ec16,null))[_0xe1e8('0x25')](removeEntity(_0x10ec16,null))[_0xe1e8('0x42')](handleError(_0x10ec16,null));};exports[_0xe1e8('0x2e')]=function(_0x40d17d,_0xdd1f53){return db['CmCompany'][_0xe1e8('0x2e')]()['then'](respondWithResult(_0xdd1f53,null))['catch'](handleError(_0xdd1f53,null));};exports[_0xe1e8('0x4e')]=function(_0x40c69d,_0x5c78ed,_0x3cf0c5){return db[_0xe1e8('0x4f')]['find']({'where':{'id':_0x40c69d[_0xe1e8('0x44')]['id']}})['then'](handleEntityNotFound(_0x5c78ed,null))[_0xe1e8('0x25')](function(_0x464c5c){if(_0x464c5c){return _0x464c5c[_0xe1e8('0x4e')](_0x40c69d[_0xe1e8('0x4d')]['ids'],_[_0xe1e8('0x50')](_0x40c69d['body'],[_0xe1e8('0x51'),'id'])||{});}})['then'](respondWithResult(_0x5c78ed,null))[_0xe1e8('0x42')](handleError(_0x5c78ed,null));};exports[_0xe1e8('0x52')]=function(_0x49d0cb,_0x49a953,_0x16235b){var _0x2ae558={};var _0x4f6c3a={};var _0x407618;var _0x40f900;return db[_0xe1e8('0x2d')][_0xe1e8('0x53')]({'where':{'id':_0x49d0cb['params']['id']}})[_0xe1e8('0x25')](handleEntityNotFound(_0x49a953,null))[_0xe1e8('0x25')](function(_0x558037){if(_0x558037){_0x407618=_0x558037;_0x4f6c3a[_0xe1e8('0x34')]=_[_0xe1e8('0x2f')](db['CmContact'][_0xe1e8('0x54')]);_0x4f6c3a[_0xe1e8('0x30')]=_[_0xe1e8('0x2f')](_0x49d0cb['query']);_0x4f6c3a[_0xe1e8('0x31')]=_[_0xe1e8('0x32')](_0x4f6c3a[_0xe1e8('0x34')],_0x4f6c3a['query']);_0x2ae558[_0xe1e8('0x33')]=_[_0xe1e8('0x32')](_0x4f6c3a['model'],qs['fields'](_0x49d0cb[_0xe1e8('0x30')]['fields']));_0x2ae558['attributes']=_0x2ae558[_0xe1e8('0x33')][_0xe1e8('0x36')]?_0x2ae558[_0xe1e8('0x33')]:_0x4f6c3a[_0xe1e8('0x34')];_0x2ae558[_0xe1e8('0x39')]=qs[_0xe1e8('0x3a')](_0x49d0cb['query']['sort']);_0x2ae558[_0xe1e8('0x3b')]=qs[_0xe1e8('0x31')](_[_0xe1e8('0x3c')](_0x49d0cb[_0xe1e8('0x30')],_0x4f6c3a[_0xe1e8('0x31')]));if(_0x49d0cb[_0xe1e8('0x30')]['filter']){_0x2ae558[_0xe1e8('0x3b')]=_[_0xe1e8('0x3d')](_0x2ae558[_0xe1e8('0x3b')],{'$or':_[_0xe1e8('0x3e')](_0x2ae558[_0xe1e8('0x33')],function(_0x4577ab){var _0x1b920c={};_0x1b920c[_0x4577ab]={'$like':'%'+_0x49d0cb[_0xe1e8('0x30')][_0xe1e8('0x3f')]+'%'};return _0x1b920c;})});}_0x2ae558=_['merge']({},_0x2ae558,_0x49d0cb['options']);return _0x407618[_0xe1e8('0x52')](_0x2ae558);}})[_0xe1e8('0x25')](function(_0x5095d2){if(_0x5095d2){_0x40f900=_0x5095d2[_0xe1e8('0x36')];if(!_0x49d0cb['query']['hasOwnProperty'](_0xe1e8('0x38'))){_0x2ae558[_0xe1e8('0x1e')]=qs[_0xe1e8('0x1e')](_0x49d0cb[_0xe1e8('0x30')][_0xe1e8('0x1e')]);_0x2ae558[_0xe1e8('0x1c')]=qs[_0xe1e8('0x1c')](_0x49d0cb[_0xe1e8('0x30')][_0xe1e8('0x1c')]);}return _0x407618[_0xe1e8('0x52')](_0x2ae558);}})[_0xe1e8('0x25')](function(_0x31af9f){if(_0x31af9f){return _0x31af9f?{'count':_0x40f900,'rows':_0x31af9f}:null;}})[_0xe1e8('0x25')](respondWithResult(_0x49a953,null))['catch'](handleError(_0x49a953,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x15e5=['define','CmCompany','cm_companies','lodash','util','api','moment','bluebird','path','rimraf','../../config/environment','./cmCompany.attributes','exports'];(function(_0x21d36e,_0x5dc096){var _0x4cc307=function(_0x4ae995){while(--_0x4ae995){_0x21d36e['push'](_0x21d36e['shift']());}};_0x4cc307(++_0x5dc096);}(_0x15e5,0x12e));var _0x515e=function(_0x19a211,_0x504694){_0x19a211=_0x19a211-0x0;var _0x5833ba=_0x15e5[_0x19a211];return _0x5833ba;};'use strict';var _=require(_0x515e('0x0'));var util=require(_0x515e('0x1'));var logger=require('../../config/logger')(_0x515e('0x2'));var moment=require(_0x515e('0x3'));var BPromise=require(_0x515e('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x515e('0x5'));var rimraf=require(_0x515e('0x6'));var config=require(_0x515e('0x7'));var attributes=require(_0x515e('0x8'));module[_0x515e('0x9')]=function(_0x448314,_0x234bee){return _0x448314[_0x515e('0xa')](_0x515e('0xb'),attributes,{'tableName':_0x515e('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4eeb=['request-promise','path','../../config/environment','./cmCompany.attributes','exports','define','CmCompany','cm_companies','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x5c49f1,_0xbf249d){var _0x3913ad=function(_0x45a2b4){while(--_0x45a2b4){_0x5c49f1['push'](_0x5c49f1['shift']());}};_0x3913ad(++_0xbf249d);}(_0x4eeb,0xe8));var _0xb4ee=function(_0x8c9e52,_0x3d0891){_0x8c9e52=_0x8c9e52-0x0;var _0x3e11b0=_0x4eeb[_0x8c9e52];return _0x3e11b0;};'use strict';var _=require(_0xb4ee('0x0'));var util=require(_0xb4ee('0x1'));var logger=require(_0xb4ee('0x2'))(_0xb4ee('0x3'));var moment=require(_0xb4ee('0x4'));var BPromise=require(_0xb4ee('0x5'));var rp=require(_0xb4ee('0x6'));var fs=require('fs');var path=require(_0xb4ee('0x7'));var rimraf=require('rimraf');var config=require(_0xb4ee('0x8'));var attributes=require(_0xb4ee('0x9'));module[_0xb4ee('0xa')]=function(_0x5a2d3b,_0x4a4617){return _0x5a2d3b[_0xb4ee('0xb')](_0xb4ee('0xc'),attributes,{'tableName':_0xb4ee('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb61b=['client','http','request','then','info','CmCompany,\x20%s,\x20%s','request\x20sent','CmCompany,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x5a7aec,_0x537511){var _0x3942e2=function(_0x25d6ca){while(--_0x25d6ca){_0x5a7aec['push'](_0x5a7aec['shift']());}};_0x3942e2(++_0x537511);}(_0xb61b,0x98));var _0xbb61=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xb61b[_0x2dafbe];return _0x58a45a;};'use strict';var _=require('lodash');var util=require(_0xbb61('0x0'));var moment=require(_0xbb61('0x1'));var BPromise=require(_0xbb61('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbb61('0x3'))['db'];var utils=require(_0xbb61('0x4'));var logger=require(_0xbb61('0x5'))(_0xbb61('0x6'));var config=require(_0xbb61('0x7'));var jayson=require(_0xbb61('0x8'));var client=jayson[_0xbb61('0x9')][_0xbb61('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1033bc,_0x25b561,_0x105d23){return new BPromise(function(_0x440d5b,_0x3733be){return client[_0xbb61('0xb')](_0x1033bc,_0x105d23)[_0xbb61('0xc')](function(_0x222f28){logger[_0xbb61('0xd')](_0xbb61('0xe'),_0x25b561,_0xbb61('0xf'));logger['debug'](_0xbb61('0x10'),_0x25b561,'request\x20sent',JSON[_0xbb61('0x11')](_0x222f28));if(_0x222f28[_0xbb61('0x12')]){if(_0x222f28['error'][_0xbb61('0x13')]===0x1f4){logger[_0xbb61('0x12')](_0xbb61('0xe'),_0x25b561,_0x222f28[_0xbb61('0x12')][_0xbb61('0x14')]);return _0x3733be(_0x222f28['error']['message']);}logger[_0xbb61('0x12')]('CmCompany,\x20%s,\x20%s',_0x25b561,_0x222f28[_0xbb61('0x12')]['message']);return _0x440d5b(_0x222f28[_0xbb61('0x12')][_0xbb61('0x14')]);}else{logger[_0xbb61('0xd')]('CmCompany,\x20%s,\x20%s',_0x25b561,'request\x20sent');_0x440d5b(_0x222f28[_0xbb61('0x15')]['message']);}})[_0xbb61('0x16')](function(_0x215809){logger[_0xbb61('0x12')](_0xbb61('0xe'),_0x25b561,_0x215809);_0x3733be(_0x215809);});});}
\ No newline at end of file
+var _0x1f29=['message','result','catch','lodash','util','bluebird','ioredis','../../mysqldb','../../config/logger','jayson/promise','request','then','info','CmCompany,\x20%s,\x20%s','request\x20sent','debug','CmCompany,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x74912e,_0x25c8c9){var _0x54e755=function(_0x46c8f1){while(--_0x46c8f1){_0x74912e['push'](_0x74912e['shift']());}};_0x54e755(++_0x25c8c9);}(_0x1f29,0x10d));var _0x91f2=function(_0x2fc7a2,_0x4a9b39){_0x2fc7a2=_0x2fc7a2-0x0;var _0x4c9beb=_0x1f29[_0x2fc7a2];return _0x4c9beb;};'use strict';var _=require(_0x91f2('0x0'));var util=require(_0x91f2('0x1'));var moment=require('moment');var BPromise=require(_0x91f2('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x91f2('0x3'));var db=require(_0x91f2('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x91f2('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0x91f2('0x6'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2e6685,_0x218584,_0x184d58){return new BPromise(function(_0x28ac41,_0xf650a1){return client[_0x91f2('0x7')](_0x2e6685,_0x184d58)[_0x91f2('0x8')](function(_0x3d1236){logger[_0x91f2('0x9')](_0x91f2('0xa'),_0x218584,_0x91f2('0xb'));logger[_0x91f2('0xc')](_0x91f2('0xd'),_0x218584,_0x91f2('0xb'),JSON[_0x91f2('0xe')](_0x3d1236));if(_0x3d1236[_0x91f2('0xf')]){if(_0x3d1236[_0x91f2('0xf')]['code']===0x1f4){logger[_0x91f2('0xf')]('CmCompany,\x20%s,\x20%s',_0x218584,_0x3d1236[_0x91f2('0xf')]['message']);return _0xf650a1(_0x3d1236[_0x91f2('0xf')][_0x91f2('0x10')]);}logger['error'](_0x91f2('0xa'),_0x218584,_0x3d1236['error'][_0x91f2('0x10')]);return _0x28ac41(_0x3d1236['error'][_0x91f2('0x10')]);}else{logger['info'](_0x91f2('0xa'),_0x218584,_0x91f2('0xb'));_0x28ac41(_0x3d1236[_0x91f2('0x11')][_0x91f2('0x10')]);}})[_0x91f2('0x12')](function(_0x16a276){logger[_0x91f2('0xf')]('CmCompany,\x20%s,\x20%s',_0x218584,_0x16a276);_0xf650a1(_0x16a276);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f0a=['isAuthenticated','show','/:id/contacts','getContacts','post','addContacts','put','/:id','delete','exports','util','path','express','fs-extra','../../config/environment','get','/describe','describe'];(function(_0x2e3f40,_0x47410c){var _0x28abc1=function(_0x472028){while(--_0x472028){_0x2e3f40['push'](_0x2e3f40['shift']());}};_0x28abc1(++_0x47410c);}(_0x7f0a,0x12a));var _0xa7f0=function(_0x47a7d0,_0x4e182d){_0x47a7d0=_0x47a7d0-0x0;var _0xb9bd08=_0x7f0a[_0x47a7d0];return _0xb9bd08;};'use strict';var multer=require('multer');var util=require(_0xa7f0('0x0'));var path=require(_0xa7f0('0x1'));var timeout=require('connect-timeout');var express=require(_0xa7f0('0x2'));var router=express['Router']();var fs_extra=require(_0xa7f0('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xa7f0('0x4'));var controller=require('./cmCompany.controller');router[_0xa7f0('0x5')]('/',auth['isAuthenticated'](),controller['index']);router[_0xa7f0('0x5')](_0xa7f0('0x6'),auth['isAuthenticated'](),controller[_0xa7f0('0x7')]);router[_0xa7f0('0x5')]('/:id',auth[_0xa7f0('0x8')](),controller[_0xa7f0('0x9')]);router['get'](_0xa7f0('0xa'),auth[_0xa7f0('0x8')](),controller[_0xa7f0('0xb')]);router['post']('/',auth[_0xa7f0('0x8')](),controller['create']);router[_0xa7f0('0xc')](_0xa7f0('0xa'),auth['isAuthenticated'](),controller[_0xa7f0('0xd')]);router[_0xa7f0('0xe')](_0xa7f0('0xf'),auth[_0xa7f0('0x8')](),controller['update']);router[_0xa7f0('0x10')](_0xa7f0('0xf'),auth[_0xa7f0('0x8')](),controller['destroy']);module[_0xa7f0('0x11')]=router;
\ No newline at end of file
+var _0xa410=['/:id','show','/:id/contacts','getContacts','create','post','addContacts','update','exports','multer','path','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe'];(function(_0x407545,_0x4b90c4){var _0x3ef24b=function(_0x26b0c9){while(--_0x26b0c9){_0x407545['push'](_0x407545['shift']());}};_0x3ef24b(++_0x4b90c4);}(_0xa410,0xa9));var _0x0a41=function(_0x3d798f,_0x544807){_0x3d798f=_0x3d798f-0x0;var _0x2e7e6f=_0xa410[_0x3d798f];return _0x2e7e6f;};'use strict';var multer=require(_0x0a41('0x0'));var util=require('util');var path=require(_0x0a41('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a41('0x2')]();var fs_extra=require(_0x0a41('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x0a41('0x4'));var config=require(_0x0a41('0x5'));var controller=require('./cmCompany.controller');router[_0x0a41('0x6')]('/',auth[_0x0a41('0x7')](),controller[_0x0a41('0x8')]);router['get'](_0x0a41('0x9'),auth['isAuthenticated'](),controller[_0x0a41('0xa')]);router[_0x0a41('0x6')](_0x0a41('0xb'),auth[_0x0a41('0x7')](),controller[_0x0a41('0xc')]);router[_0x0a41('0x6')](_0x0a41('0xd'),auth[_0x0a41('0x7')](),controller[_0x0a41('0xe')]);router['post']('/',auth[_0x0a41('0x7')](),controller[_0x0a41('0xf')]);router[_0x0a41('0x10')](_0x0a41('0xd'),auth[_0x0a41('0x7')](),controller[_0x0a41('0x11')]);router['put']('/:id',auth[_0x0a41('0x7')](),controller[_0x0a41('0x12')]);router['delete'](_0x0a41('0xb'),auth[_0x0a41('0x7')](),controller['destroy']);module[_0x0a41('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb1d6=['sequelize','exports','STRING','INTEGER','UNSIGNED','DATE','NOW','lodash'];(function(_0x5c6374,_0x2232e7){var _0x1fe09a=function(_0x47812c){while(--_0x47812c){_0x5c6374['push'](_0x5c6374['shift']());}};_0x1fe09a(++_0x2232e7);}(_0xb1d6,0x7f));var _0x6b1d=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0xb1d6[_0x19e35c];return _0x3e1fe8;};'use strict';var _=require(_0x6b1d('0x0'));var Sequelize=require(_0x6b1d('0x1'));module[_0x6b1d('0x2')]={'firstName':{'type':Sequelize['STRING'],'allowNull':![]},'lastName':{'type':Sequelize[_0x6b1d('0x3')]},'street':{'type':Sequelize[_0x6b1d('0x3')]},'postalCode':{'type':Sequelize[_0x6b1d('0x3')]},'city':{'type':Sequelize[_0x6b1d('0x3')]},'country':{'type':Sequelize['STRING']},'dateOfBirth':{'type':Sequelize[_0x6b1d('0x3')]},'description':{'type':Sequelize['TEXT']},'phone':{'type':Sequelize[_0x6b1d('0x3')]},'mobile':{'type':Sequelize[_0x6b1d('0x3')]},'fax':{'type':Sequelize[_0x6b1d('0x3')]},'email':{'type':Sequelize[_0x6b1d('0x3')]},'url':{'type':Sequelize[_0x6b1d('0x3')]},'facebook':{'type':Sequelize[_0x6b1d('0x3')]},'fb_data':{'type':Sequelize[_0x6b1d('0x3')]},'twitter':{'type':Sequelize[_0x6b1d('0x3')]},'skype':{'type':Sequelize[_0x6b1d('0x3')]},'teams':{'type':Sequelize['STRING']},'viber':{'type':Sequelize[_0x6b1d('0x3')]},'line':{'type':Sequelize['STRING']},'wechat':{'type':Sequelize['STRING']},'telegram':{'type':Sequelize[_0x6b1d('0x3')]},'UserId':{'type':Sequelize[_0x6b1d('0x4')]},'priority':{'type':Sequelize['INTEGER'](0x2)[_0x6b1d('0x5')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize[_0x6b1d('0x6')],'defaultValue':Sequelize[_0x6b1d('0x7')]}};
\ No newline at end of file
+var _0x5b8e=['STRING','INTEGER','UNSIGNED','DATE','NOW','lodash','sequelize','exports'];(function(_0x2fa1c6,_0x4a5b8d){var _0x5f3257=function(_0x195b53){while(--_0x195b53){_0x2fa1c6['push'](_0x2fa1c6['shift']());}};_0x5f3257(++_0x4a5b8d);}(_0x5b8e,0x11d));var _0xe5b8=function(_0x52215e,_0x3644bd){_0x52215e=_0x52215e-0x0;var _0x5e787c=_0x5b8e[_0x52215e];return _0x5e787c;};'use strict';var _=require(_0xe5b8('0x0'));var Sequelize=require(_0xe5b8('0x1'));module[_0xe5b8('0x2')]={'firstName':{'type':Sequelize[_0xe5b8('0x3')],'allowNull':![]},'lastName':{'type':Sequelize[_0xe5b8('0x3')]},'street':{'type':Sequelize[_0xe5b8('0x3')]},'postalCode':{'type':Sequelize[_0xe5b8('0x3')]},'city':{'type':Sequelize[_0xe5b8('0x3')]},'country':{'type':Sequelize['STRING']},'dateOfBirth':{'type':Sequelize['STRING']},'description':{'type':Sequelize['TEXT']},'phone':{'type':Sequelize[_0xe5b8('0x3')]},'mobile':{'type':Sequelize['STRING']},'fax':{'type':Sequelize[_0xe5b8('0x3')]},'email':{'type':Sequelize[_0xe5b8('0x3')]},'url':{'type':Sequelize[_0xe5b8('0x3')]},'facebook':{'type':Sequelize[_0xe5b8('0x3')]},'fb_data':{'type':Sequelize[_0xe5b8('0x3')]},'twitter':{'type':Sequelize['STRING']},'skype':{'type':Sequelize['STRING']},'teams':{'type':Sequelize['STRING']},'viber':{'type':Sequelize['STRING']},'line':{'type':Sequelize[_0xe5b8('0x3')]},'wechat':{'type':Sequelize[_0xe5b8('0x3')]},'telegram':{'type':Sequelize['STRING']},'UserId':{'type':Sequelize[_0xe5b8('0x4')]},'priority':{'type':Sequelize[_0xe5b8('0x4')](0x2)[_0xe5b8('0x5')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize[_0xe5b8('0x6')],'defaultValue':Sequelize[_0xe5b8('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x40e8=['c.phone\x20LIKE\x20?','c.mobile\x20LIKE\x20?','c.email\x20LIKE\x20?','c.firstName\x20LIKE\x20?','c.lastName\x20LIKE\x20?','group','Sequelize','QueryTypes','SELECT','clone','c.id','having','t.id\x20IN\x20?','user','agent','some','getLists','c.ListId\x20IS\x20NULL','role','sequelize','keyBy','merge','c.firstName','c.phone','c.mobile','c.fax','c.ListId','c.createdAt','c.deletedAt','c.CompanyId','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','Tags','rows','catch','describe','tags','analytics','findAll','columnName','displayName','alias','custom','values','body','get','mergeWith','isArray','info','[CmContact][merge]\x20to\x20%s\x20from\x20%s','[CmContact][merge][destroy][CmHopper],\x20%s','CmHopperBlack','[CmContact][merge][destroy][CmHopperBlack],\x20%s','create','ChatOfflineMessage','MailInteraction','MailMessage','SmsMessage','FaxMessage','OpenchannelInteraction','ReportAgentPreview','VoiceCallReport','FaxQueueReport','MailQueueReport','JscriptySessionReport','WhatsappMessage','WhatsappQueueReport','join','bulkCreate','each','duplicates','findOrCreate','spread','show','params','$and','omit','format','cf_%d','pickBy','table','id\x20=\x20?','phone','getTags','rawAttributes','ids','getHoppers','CmHopper','options','includeAll','include','getHopperHistories','CmHopperHistory','ContactId','getHopperFinals','CmHopperFinal','getJscriptySessions','uploadCsv','No\x20ListId\x20specified','No\x20association\x20keys\x20specified!','binding_values','No\x20association\x20values\x20specified!','socket_timestamp','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','binding_keys','firstName','No\x20firstName\x20column\x20specified','server/files/tmp','filename','0777','child_process','fork','../../components/import/cm/csv','CompanyId','File\x20uploaded\x20correctly!','upload','createReadStream','file','meta','binding','No\x20phone\x20column\x20specified','../../components/import/cm/csv2','stringify','message','start\x20child\x20process\x20correctly!','pid','exit','getJourney','mail','chat','sms','openchannel','fax','whatsapp','voice','resolve','channel','includes','toLowerCase','Invalid\x20channel','range','parse','Invalid\x20date\x20for\x20range\x20from\x20filter','isValid','Invalid\x20date\x20for\x20range\x20to\x20filter','Invalid\x20createdAt\x20filter','uniqueid','destination','callerid','endtime','duration','note','createdAt','userDisposition','userSecondDisposition','userThirdDisposition','UserId','fullname','DESC','startCase','Website','Account','closed','disposition','secondDisposition','thirdDisposition','key','Owner','browserName','customerIp','customerPort','deviceModel','osName','ratingMessage','ratingType','ratingValue','referer','subject','substatus','externalUrl','Interaction','flatten','sortBy','reverse','slice','bluebird','util','path','squel','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../mysqldb','redis','defaults','socket.io-emitter','register','json','offset','undefined','count','set','Content-Range','update','then','destroy','status','end','sendStatus','error','stack','name','send','index','CmContact','keys','length','startsWith','CmCustomField','findOne','cf_','all','fieldType','type','model','query','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','select','field','color','from','cm_contacts','left_join','cm_user_has_contacts','cm_contact_has_tags','ct.CmContactId\x20=\x20c.id','tools_tags','t.id\x20=\x20ct.TagId','c.deletedAt\x20IS\x20NULL','expr','search','parseSearch','sqlOperator','conditions','find','Tag','value','split','map','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','dateOfBirth','datetime','buildExpression','text','start','filter','isNil','Contact','push','isEmpty','ListId','concat','CONCAT_WS(\x27\x20\x27,\x20c.firstName,\x20c.lastName,\x20c.email)\x20LIKE\x20?','tag','replace','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','isNumeric','c.id\x20LIKE\x20?'];(function(_0xd19fa5,_0x3f5172){var _0x528ebd=function(_0x26f578){while(--_0x26f578){_0xd19fa5['push'](_0xd19fa5['shift']());}};_0x528ebd(++_0x3f5172);}(_0x40e8,0x1d5));var _0x840e=function(_0x476bf4,_0x2a3755){_0x476bf4=_0x476bf4-0x0;var _0x788ffe=_0x40e8[_0x476bf4];return _0x788ffe;};'use strict';var moment=require('moment');var BPromise=require(_0x840e('0x0'));var util=require(_0x840e('0x1'));var path=require(_0x840e('0x2'));var fs=require('fs');var _=require('lodash');var squel=require(_0x840e('0x3'));var Papa=require(_0x840e('0x4'));var Redis=require(_0x840e('0x5'));var qs=require(_0x840e('0x6'));var as=require(_0x840e('0x7'));var logger=require('../../config/logger')(_0x840e('0x8'));var config=require('../../config/environment');var db=require(_0x840e('0x9'))['db'];config[_0x840e('0xa')]=_[_0x840e('0xb')](config[_0x840e('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x840e('0xc'))(new Redis(config[_0x840e('0xa')]));require('./cmContact.socket')[_0x840e('0xd')](socket);function respondWithResult(_0x110d53,_0x1e9b6f){_0x1e9b6f=_0x1e9b6f||0xc8;return function(_0x137a52){if(_0x137a52){return _0x110d53['status'](_0x1e9b6f)[_0x840e('0xe')](_0x137a52);}};}function respondWithFilteredResult(_0x32c82b,_0x2a2e06){return function(_0x4534e3){if(_0x4534e3){var _0x30ba6b=typeof _0x2a2e06[_0x840e('0xf')]===_0x840e('0x10')&&typeof _0x2a2e06['limit']==='undefined';var _0x37599e=_0x4534e3[_0x840e('0x11')];var _0x4fbae8=_0x30ba6b?0x0:_0x2a2e06[_0x840e('0xf')];var _0x35b95c=_0x30ba6b?_0x4534e3[_0x840e('0x11')]:_0x2a2e06['offset']+_0x2a2e06['limit'];var _0x24fb14;if(_0x35b95c>=_0x37599e){_0x35b95c=_0x37599e;_0x24fb14=0xc8;}else{_0x24fb14=0xce;}_0x32c82b['status'](_0x24fb14);return _0x32c82b[_0x840e('0x12')](_0x840e('0x13'),_0x4fbae8+'-'+_0x35b95c+'/'+_0x37599e)[_0x840e('0xe')](_0x4534e3);}return null;};}function saveUpdates(_0xf49f47){return function(_0x399895){if(_0x399895){return _0x399895[_0x840e('0x14')](_0xf49f47)[_0x840e('0x15')](function(_0x4b7616){return _0x4b7616;});}return null;};}function removeEntity(_0x26d5fc){return function(_0x322813){if(_0x322813){return _0x322813[_0x840e('0x16')]()[_0x840e('0x15')](function(){_0x26d5fc[_0x840e('0x17')](0xcc)[_0x840e('0x18')]();});}};}function handleEntityNotFound(_0x35afca){return function(_0x3c4ffa){if(!_0x3c4ffa){_0x35afca[_0x840e('0x19')](0x194);}return _0x3c4ffa;};}function handleError(_0x5ccbc4,_0x13f827){_0x13f827=_0x13f827||0x1f4;return function(_0x3fbebe){logger[_0x840e('0x1a')](_0x3fbebe[_0x840e('0x1b')]);if(_0x3fbebe['name']){delete _0x3fbebe[_0x840e('0x1c')];}_0x5ccbc4[_0x840e('0x17')](_0x13f827)[_0x840e('0x1d')](_0x3fbebe);};}exports[_0x840e('0x1e')]=function(_0x4ddb71,_0x844547){var _0x33a7ef={},_0xf8e2b9={},_0x2f81bc={'count':0x0,'rows':[]};return db[_0x840e('0x1f')]['describe']()['then'](function(_0x83b2e7){var _0x1d4b01=[];for(var _0xf5cb6b=0x0;_0xf5cb6b<Object[_0x840e('0x20')](_0x83b2e7)[_0x840e('0x21')];_0xf5cb6b++){var _0x64644a=Object[_0x840e('0x20')](_0x83b2e7)[_0xf5cb6b];if(_[_0x840e('0x22')](_0x64644a,'cf_')){_0x1d4b01['push'](db[_0x840e('0x23')][_0x840e('0x24')]({'where':{'id':_['trimStart'](_0x64644a,_0x840e('0x25'))},'raw':!![]}));}}return BPromise[_0x840e('0x26')](_0x1d4b01)[_0x840e('0x15')](function(_0x2cfac4){for(var _0x2e04fa=0x0;_0x2e04fa<_0x2cfac4[_0x840e('0x21')];_0x2e04fa++){if(_0x2cfac4[_0x2e04fa]){var _0xb54044=_0x840e('0x25')+_0x2cfac4[_0x2e04fa]['id'];var _0x37677b=_0x83b2e7[_0xb54044];_0x37677b[_0x840e('0x27')]=_0x2cfac4[_0x2e04fa][_0x840e('0x28')];}}return _0x83b2e7;});})[_0x840e('0x15')](function(_0x38227a){_0xf8e2b9[_0x840e('0x29')]=_[_0x840e('0x20')](_0x38227a);_0xf8e2b9[_0x840e('0x2a')]=_[_0x840e('0x20')](_0x4ddb71['query']);_0xf8e2b9['filters']=_[_0x840e('0x2b')](_0xf8e2b9[_0x840e('0x29')],_0xf8e2b9[_0x840e('0x2a')]);_0x33a7ef[_0x840e('0x2c')]=_['intersection'](_0xf8e2b9[_0x840e('0x29')],qs[_0x840e('0x2d')](_0x4ddb71[_0x840e('0x2a')][_0x840e('0x2d')]));_0x33a7ef[_0x840e('0x2c')]=_0x33a7ef['attributes'][_0x840e('0x21')]?_0x33a7ef[_0x840e('0x2c')]:_0xf8e2b9[_0x840e('0x29')];if(!_0x4ddb71[_0x840e('0x2a')][_0x840e('0x2e')](_0x840e('0x2f'))){_0x33a7ef[_0x840e('0x30')]=qs['limit'](_0x4ddb71['query']['limit']);_0x33a7ef['offset']=qs[_0x840e('0xf')](_0x4ddb71[_0x840e('0x2a')]['offset']);}_0x33a7ef[_0x840e('0x31')]=qs[_0x840e('0x32')](_0x4ddb71[_0x840e('0x2a')]['sort']);_0x33a7ef[_0x840e('0x33')]=qs[_0x840e('0x34')](_[_0x840e('0x35')](_0x4ddb71['query'],_0xf8e2b9[_0x840e('0x34')]),_0x38227a);var _0x47e904=[];var _0x3a678d=squel[_0x840e('0x36')]()['field']('id')['field'](_0x840e('0x1c'))[_0x840e('0x37')](_0x840e('0x38'))[_0x840e('0x39')]('tools_tags');var _0x51ac5b=squel['select']()[_0x840e('0x39')](_0x840e('0x3a'),'c')[_0x840e('0x3b')](_0x840e('0x3c'),'uc','uc.CmContactId\x20=\x20c.id')[_0x840e('0x3b')](_0x840e('0x3d'),'ct',_0x840e('0x3e'))[_0x840e('0x3b')](_0x840e('0x3f'),'t',_0x840e('0x40'))['where'](_0x840e('0x41'));var _0x17ce3d=squel[_0x840e('0x42')]();var _0x51fe97=[];var _0x5c7e32=squel[_0x840e('0x42')]();var _0x30bc9f;if(_0x4ddb71['query'][_0x840e('0x43')]){_0x30bc9f=as[_0x840e('0x44')](_0x4ddb71[_0x840e('0x2a')][_0x840e('0x43')]);var _0x43f62a=_0x30bc9f[_0x840e('0x45')];for(var _0x46a4bc=0x0;_0x46a4bc<_0x30bc9f[_0x840e('0x46')][_0x840e('0x21')];_0x46a4bc++){var _0x18aa4f=_0x30bc9f[_0x840e('0x46')][_0x46a4bc];var _0x4b1d3c='c';var _0x10cb0c=_(_0x38227a)[_0x840e('0x20')]()[_0x840e('0x47')](function(_0x1390b6){return _0x1390b6===_0x18aa4f[_0x840e('0x37')];});if(_0x10cb0c)_0x10cb0c=_0x38227a[_0x18aa4f[_0x840e('0x37')]];if(!_0x10cb0c){if(_0x18aa4f[_0x840e('0x37')]===_0x840e('0x48')){var _0x4cba9a=_0x18aa4f[_0x840e('0x49')][_0x840e('0x4a')](',')[_0x840e('0x4b')](function(_0x2ab457){return Number(_0x2ab457);});_0x4cba9a[_0x840e('0x4c')](function(_0x138502){_0x5c7e32['or'](_0x840e('0x4d'),'%,'+_0x138502+',%');});_0x51fe97=_[_0x840e('0x4e')](_0x51fe97,_0x4cba9a);}else if(_0x18aa4f[_0x840e('0x37')]===_0x840e('0x4f')){_0x17ce3d['and']('uc.UserId\x20=\x20?',_0x18aa4f['value']);}}else{if(_0x18aa4f[_0x840e('0x37')]===_0x840e('0x50')||_0x10cb0c[_0x840e('0x27')]===_0x840e('0x51'))_0x18aa4f['castTo']='DATE';var _0x2faf81=as[_0x840e('0x52')](_0x4b1d3c,_0x10cb0c[_0x840e('0x28')],_0x18aa4f);_0x17ce3d[_0x43f62a](_0x2faf81[_0x840e('0x53')],_0x2faf81[_0x840e('0x49')][_0x840e('0x54')],_0x2faf81[_0x840e('0x49')][_0x840e('0x18')]);}}}else{var _0x270f30=_(Object[_0x840e('0x20')](_0x4ddb71[_0x840e('0x2a')]))[_0x840e('0x4b')](function(_0x50faad){return _0x38227a[_0x840e('0x2e')](_0x50faad)?_0x50faad:undefined;})[_0x840e('0x55')](function(_0x476ecc){return!_[_0x840e('0x56')](_0x476ecc);})[_0x840e('0x49')]();if(_0x4ddb71[_0x840e('0x2a')][_0x840e('0x57')])_0x270f30[_0x840e('0x58')](_0x840e('0x57'));if(!_[_0x840e('0x59')](_0x270f30)){_0x270f30[_0x840e('0x4c')](function(_0x3630c5){if(_0x3630c5===_0x840e('0x5a')){_0x51ac5b['where']('c.ListId\x20IN\x20?',[][_0x840e('0x5b')](_0x4ddb71[_0x840e('0x2a')][_0x3630c5]));}else if(_0x3630c5==='Contact'){var _0x37f7a7='%'+_0x4ddb71[_0x840e('0x2a')][_0x3630c5]+'%';_0x51ac5b[_0x840e('0x33')](_0x840e('0x5c'),_0x37f7a7);}else{_0x51ac5b[_0x840e('0x33')]('c.'+_0x3630c5+'\x20=\x20?',_0x4ddb71['query'][_0x3630c5]);}});}if(_0x4ddb71[_0x840e('0x2a')][_0x840e('0x5d')]){_0x51fe97=_['isArray'](_0x4ddb71[_0x840e('0x2a')]['tag'])?_0x4ddb71[_0x840e('0x2a')][_0x840e('0x5d')]:new Array(_0x4ddb71[_0x840e('0x2a')]['tag']);_0x51fe97['forEach'](function(_0x26d74c){_0x5c7e32['or'](_0x840e('0x4d'),'%,'+_0x26d74c+',%');});}if(_0x4ddb71[_0x840e('0x2a')]['filter']){var _0x12849a=_0x4ddb71['query'][_0x840e('0x55')][_0x840e('0x5e')]('\x5c','\x5c\x5c')[_0x840e('0x5e')](/'/g,'\x27\x27');if(_0x12849a[_0x840e('0x4a')]('\x20')['length']>0x1){_0x17ce3d['or'](_0x840e('0x5f'),qs[_0x840e('0x60')](_0x12849a),null);}else{if(qs[_0x840e('0x61')](_0x12849a)){_0x17ce3d['or'](_0x840e('0x62'),_0x12849a+'%');_0x17ce3d['or'](_0x840e('0x63'),_0x12849a+'%');_0x17ce3d['or'](_0x840e('0x64'),_0x12849a+'%');_0x17ce3d['or']('c.fax\x20LIKE\x20?',_0x12849a+'%');}else if(qs['isEmail'](_0x12849a)){_0x17ce3d['or'](_0x840e('0x65'),_0x12849a+'%');}else{_0x17ce3d['or'](_0x840e('0x66'),'%'+_0x12849a+'%');_0x17ce3d['or'](_0x840e('0x67'),'%'+_0x12849a+'%');_0x17ce3d['or'](_0x840e('0x65'),'%'+_0x12849a+'%');}}}}_0x51ac5b[_0x840e('0x33')](_0x17ce3d);_0x51ac5b[_0x840e('0x68')]('c.id');var _0x4b5a19={'type':db[_0x840e('0x69')][_0x840e('0x6a')][_0x840e('0x6b')],'raw':!![]};var _0x3e61d5=_0x51ac5b[_0x840e('0x6c')]()['field'](_0x840e('0x6d'));if(_0x33a7ef[_0x840e('0x31')]){_0x33a7ef[_0x840e('0x31')]['forEach'](function(_0x3ae591){_0x51ac5b[_0x840e('0x31')]('c.'+_0x3ae591[0x0],_0x3ae591[0x1]==='DESC'?![]:!![]);});}if(!_[_0x840e('0x59')](_0x51fe97)){_0x51ac5b[_0x840e('0x6e')](_0x5c7e32);_0x3e61d5[_0x840e('0x33')](_0x840e('0x6f'),_0x51fe97);}BPromise['resolve']()[_0x840e('0x15')](function(){if(!_0x30bc9f)return;if(_0x4ddb71[_0x840e('0x70')]['role']!==_0x840e('0x71'))return;if(!_[_0x840e('0x72')](_0x30bc9f['conditions'],[_0x840e('0x37'),'User'])){return _0x4ddb71[_0x840e('0x70')][_0x840e('0x73')]({'attributes':['id'],'raw':!![]})[_0x840e('0x15')](function(_0x377fa5){if(_[_0x840e('0x59')](_0x377fa5)){_0x3e61d5[_0x840e('0x33')](_0x840e('0x74'));_0x51ac5b[_0x840e('0x33')](_0x840e('0x74'));}else{_0x3e61d5['where']('c.ListId\x20IN\x20?',_[_0x840e('0x4b')](_0x377fa5,'id'));_0x51ac5b[_0x840e('0x33')]('c.ListId\x20IN\x20?',_[_0x840e('0x4b')](_0x377fa5,'id'));}});}})['then'](function(){if(_0x4ddb71['user'][_0x840e('0x75')]===_0x840e('0x71')&&!_0x30bc9f&&!_0x4ddb71[_0x840e('0x2a')][_0x840e('0x5a')])return[];return db['sequelize'][_0x840e('0x2a')](_0x3e61d5['toString'](),_0x4b5a19);})[_0x840e('0x15')](function(_0xe4b685){_0x2f81bc[_0x840e('0x11')]=_0xe4b685[_0x840e('0x21')];if(_0x2f81bc['count']===0x0)return[];return db[_0x840e('0x76')][_0x840e('0x2a')](_0x3a678d['toString'](),_0x4b5a19)['then'](function(_0x25face){_0x47e904=_[_0x840e('0x77')](_0x25face,'id');_0x4b5a19=_[_0x840e('0x78')](_0x4b5a19,{'model':db[_0x840e('0x1f')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x4ddb71['query'][_0x840e('0x2d')]){_0x33a7ef[_0x840e('0x2c')][_0x840e('0x4c')](function(_0x445c9b){_0x51ac5b['field']('c.'+_0x445c9b);});}else{_0x51ac5b[_0x840e('0x37')](_0x840e('0x6d'));_0x51ac5b[_0x840e('0x37')](_0x840e('0x79'));_0x51ac5b[_0x840e('0x37')]('c.lastName');_0x51ac5b[_0x840e('0x37')](_0x840e('0x7a'));_0x51ac5b[_0x840e('0x37')](_0x840e('0x7b'));_0x51ac5b[_0x840e('0x37')](_0x840e('0x7c'));_0x51ac5b['field']('c.email');_0x51ac5b[_0x840e('0x37')](_0x840e('0x7d'));_0x51ac5b[_0x840e('0x37')](_0x840e('0x7e'));_0x51ac5b[_0x840e('0x37')](_0x840e('0x7f'));_0x51ac5b[_0x840e('0x37')](_0x840e('0x80'));_0x51ac5b[_0x840e('0x37')](_0x840e('0x81'),_0x840e('0x82'));}if(_0x33a7ef[_0x840e('0x30')])_0x51ac5b[_0x840e('0x30')](_0x33a7ef['limit']);if(_0x33a7ef[_0x840e('0xf')])_0x51ac5b[_0x840e('0xf')](_0x33a7ef['offset']);return db['sequelize'][_0x840e('0x2a')](_0x51ac5b['toString'](),_0x4b5a19);});})[_0x840e('0x15')](function(_0x84c5d1){_0x84c5d1[_0x840e('0x4c')](function(_0x1e3ee4){if(_0x1e3ee4[_0x840e('0x82')]){_0x1e3ee4[_0x840e('0x83')]=[];_0x1e3ee4[_0x840e('0x82')][_0x840e('0x4a')](',')[_0x840e('0x4c')](function(_0x3ab100){_0x1e3ee4['Tags'][_0x840e('0x58')](_0x47e904[_0x3ab100]);});}delete _0x1e3ee4[_0x840e('0x82')];});_0x2f81bc[_0x840e('0x84')]=_0x84c5d1;return _0x2f81bc;})['then'](respondWithFilteredResult(_0x844547,_0x33a7ef));})[_0x840e('0x85')](handleError(_0x844547,null));};exports[_0x840e('0x16')]=function(_0x2eefb0,_0x43b2ec){return db[_0x840e('0x1f')]['find']({'where':{'id':_0x2eefb0['params']['id']}})[_0x840e('0x15')](handleEntityNotFound(_0x43b2ec,null))[_0x840e('0x15')](removeEntity(_0x43b2ec,null))[_0x840e('0x85')](handleError(_0x43b2ec,null));};exports[_0x840e('0x86')]=function(_0x1a3ca3,_0x210dee){return db['CmContact'][_0x840e('0x86')]()['then'](function(_0x300766){delete _0x300766[_0x840e('0x87')];for(var _0x1b59ff=0x0;_0x1b59ff<Object[_0x840e('0x20')](_0x300766)[_0x840e('0x21')];_0x1b59ff++){var _0x297713=Object['keys'](_0x300766)[_0x1b59ff];if(!_[_0x840e('0x22')](_0x297713,_0x840e('0x25'))){_0x300766[_0x297713]['columnName']=_0x297713;_0x300766[_0x297713]['displayName']=_0x297713;}}return _0x300766;})['then'](function(_0x1f3759){var _0x3f3cc2={'where':Boolean(_0x1a3ca3[_0x840e('0x2a')][_0x840e('0x88')])===!![]?undefined:{'$or':[{'ListId':_0x1a3ca3[_0x840e('0x2a')]['id']},{'ListId':null}]},'raw':!![]};return db[_0x840e('0x23')][_0x840e('0x89')](_0x3f3cc2)[_0x840e('0x15')](function(_0x3e5e9d){for(var _0x3a92ac=0x0;_0x3a92ac<_0x3e5e9d[_0x840e('0x21')];_0x3a92ac++){var _0x2d7ba7='cf_'+_0x3e5e9d[_0x3a92ac]['id'];_0x1f3759[_0x2d7ba7][_0x840e('0x8a')]=_0x2d7ba7;_0x1f3759[_0x2d7ba7][_0x840e('0x8b')]=_0x3e5e9d[_0x3a92ac][_0x840e('0x8c')];_0x1f3759[_0x2d7ba7][_0x840e('0x8d')]={'type':_0x3e5e9d[_0x3a92ac][_0x840e('0x28')],'values':_0x3e5e9d[_0x3a92ac][_0x840e('0x8e')]};}Object[_0x840e('0x20')](_0x1f3759)[_0x840e('0x4c')](function(_0x201ab6){if(!_0x1f3759[_0x201ab6][_0x840e('0x2e')]('columnName')){delete _0x1f3759[_0x201ab6];}});return _0x1f3759;});})[_0x840e('0x15')](respondWithResult(_0x210dee,null))['catch'](handleError(_0x210dee,null));};exports[_0x840e('0x78')]=function(_0xe9f72e,_0x284d42){var _0x20b308;var _0xa8eb4c;var _0x24c372;if(_0xe9f72e[_0x840e('0x8f')]['id']){delete _0xe9f72e[_0x840e('0x8f')]['id'];}return db['CmContact'][_0x840e('0x89')]({'where':{'id':[_0xe9f72e[_0x840e('0x8f')]['to'],_0xe9f72e[_0x840e('0x8f')]['from']]}})[_0x840e('0x15')](function(_0x3faafb){if(_0x3faafb){if(_0x3faafb['length']!==0x2){return null;}_0x3faafb[0x0]=_0x3faafb[0x0][_0x840e('0x90')]({'plain':!![]});_0x3faafb[0x1]=_0x3faafb[0x1][_0x840e('0x90')]({'plain':!![]});delete _0x3faafb[0x0]['id'];delete _0x3faafb[0x1]['id'];return _[_0x840e('0x91')](_0x3faafb[0x0],_0x3faafb[0x1],function(_0x49e4c5,_0x10c901){if(Array[_0x840e('0x92')](_0x10c901)&&!_0x10c901[_0x840e('0x21')]){return _0x49e4c5;}else if(!_0x10c901){return _0x49e4c5;}});}})[_0x840e('0x15')](handleEntityNotFound(_0x284d42,null))[_0x840e('0x15')](function(_0x528b93){if(_0x528b93){if(_0x528b93[_0x840e('0x87')]&&_[_0x840e('0x92')](_0x528b93[_0x840e('0x87')])){_0x528b93[_0x840e('0x87')]=_0x528b93[_0x840e('0x87')]['join']();}logger[_0x840e('0x93')](_0x840e('0x94'),_0xe9f72e[_0x840e('0x8f')]['to'],_0xe9f72e[_0x840e('0x8f')][_0x840e('0x39')]);return db['CmHopper'][_0x840e('0x16')]({'where':{'ContactId':[_0xe9f72e[_0x840e('0x8f')]['to'],_0xe9f72e['body'][_0x840e('0x39')]]}})[_0x840e('0x15')](function(_0x56749e){logger['info'](_0x840e('0x95'),_0x56749e);return db[_0x840e('0x96')][_0x840e('0x16')]({'where':{'ContactId':[_0xe9f72e[_0x840e('0x8f')]['to'],_0xe9f72e[_0x840e('0x8f')][_0x840e('0x39')]]}})[_0x840e('0x15')](function(_0x1805f2){logger[_0x840e('0x93')](_0x840e('0x97'),_0x1805f2);return db[_0x840e('0x1f')][_0x840e('0x98')](_0x528b93);});});}})[_0x840e('0x15')](function(_0x584f1d){if(_0x584f1d){_0x20b308=_0x584f1d;_0xa8eb4c={'ContactId':_0x20b308['id']};_0x24c372={'where':{'ContactId':[_0xe9f72e[_0x840e('0x8f')]['to'],_0xe9f72e[_0x840e('0x8f')][_0x840e('0x39')]]}};return db['ChatInteraction'][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db['ChatMessage'][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db[_0x840e('0x99')]['update'](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db[_0x840e('0x9a')][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db[_0x840e('0x9b')][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db['MailInteraction'][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db[_0x840e('0x9b')][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})['then'](function(){if(_0x20b308){return db['SmsInteraction']['update'](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db[_0x840e('0x9c')][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db['FaxInteraction']['update'](_0xa8eb4c,_0x24c372);}})['then'](function(){if(_0x20b308){return db[_0x840e('0x9d')][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db[_0x840e('0x9e')]['update'](_0xa8eb4c,_0x24c372);}})['then'](function(){if(_0x20b308){return db['OpenchannelMessage'][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db['CmHopperFinal']['update'](_0xa8eb4c,_0x24c372);}})['then'](function(){if(_0x20b308){return db['CmHopperHistory']['update'](_0xa8eb4c,_0x24c372);}})['then'](function(){if(_0x20b308){return db[_0x840e('0x9f')][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db[_0x840e('0xa0')]['update'](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db['ChatQueueReport']['update'](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db[_0x840e('0xa1')][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db[_0x840e('0xa2')][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db['OpenchannelQueueReport']['update'](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db['SmsQueueReport'][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db[_0x840e('0xa3')]['update'](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db['WhatsappInteraction'][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})['then'](function(){if(_0x20b308){return db[_0x840e('0xa4')][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})['then'](function(){if(_0x20b308){return db[_0x840e('0xa5')][_0x840e('0x14')](_0xa8eb4c,_0x24c372);}})[_0x840e('0x15')](function(){if(_0x20b308){return db['CmContact']['destroy']({'where':{'id':[_0xe9f72e[_0x840e('0x8f')]['to'],_0xe9f72e['body']['from']]}});}})[_0x840e('0x15')](function(){if(_0x20b308){return _0x20b308;}})['then'](respondWithResult(_0x284d42,null))['catch'](handleError(_0x284d42,null));};exports['create']=function(_0x2b1fd5,_0x3e70bc){return db['CmContact']['describe']()[_0x840e('0x15')](function(_0x5b83bd){if(_0x2b1fd5[_0x840e('0x8f')][_0x840e('0x87')]&&_[_0x840e('0x92')](_0x2b1fd5[_0x840e('0x8f')][_0x840e('0x87')])){if(_0x2b1fd5[_0x840e('0x8f')][_0x840e('0x87')][_0x840e('0x21')]){_0x2b1fd5[_0x840e('0x8f')][_0x840e('0x87')]=_0x2b1fd5['body'][_0x840e('0x87')][_0x840e('0xa6')](';')+';';}else{_0x2b1fd5['body'][_0x840e('0x87')]=null;}}else{_0x2b1fd5['body'][_0x840e('0x87')]=null;}return db[_0x840e('0x1f')][_0x840e('0x98')](_0x2b1fd5[_0x840e('0x8f')],{'fields':_[_0x840e('0x20')](_0x5b83bd),'raw':!![]});})['then'](respondWithResult(_0x3e70bc,0xc9))[_0x840e('0x85')](handleError(_0x3e70bc,null));};exports[_0x840e('0xa7')]=function(_0x1b9ea9,_0x134bb3){var _0x3b46de=0x0;var _0x48c174=0x0;var _0x5be244=0x0;return db[_0x840e('0x1f')][_0x840e('0x86')]()[_0x840e('0x15')](function(_0x36bacd){return BPromise[_0x840e('0xa8')](_0x1b9ea9['body'],function(_0x549015){var _0x12a3c0={'where':{'$or':[]},'defaults':_0x549015,'fields':_[_0x840e('0x20')](_0x36bacd),'raw':!![]};if(_0x549015[_0x840e('0xa9')]){for(var _0x417bd5=0x0;_0x417bd5<_0x549015[_0x840e('0xa9')][_0x840e('0x21')];_0x417bd5++){var _0x153502={};_0x153502[_0x549015[_0x840e('0xa9')][_0x417bd5]]=_0x549015[_0x549015[_0x840e('0xa9')][_0x417bd5]];_0x12a3c0[_0x840e('0x33')]['$or'][_0x840e('0x58')](_0x153502);}_0x12a3c0['where']['ListId']=_0x549015[_0x840e('0x5a')];}return db['CmContact'][_0x840e('0xaa')](_0x12a3c0)[_0x840e('0xab')](function(_0x8eacf4,_0x26ab2a){if(_0x26ab2a){_0x3b46de++;}else{_0x5be244++;}})['catch'](function(){_0x48c174++;});});})[_0x840e('0x15')](function(_0x777c6a){if(_0x777c6a){return{'success':_0x3b46de,'failure':_0x48c174,'duplicates':_0x5be244};}})['then'](respondWithResult(_0x134bb3,0xc9))[_0x840e('0x85')](handleError(_0x134bb3,null));};exports[_0x840e('0xac')]=function(_0x555df7,_0xfc9f40){var _0x589d9b;return db['CmContact']['describe']()['then'](function(_0x555337){return db['CmContact']['find']({'where':{'id':_0x555df7[_0x840e('0xad')]['id']},'include':[{'model':db[_0x840e('0x48')],'as':'Tags','attributes':['id','name',_0x840e('0x38')],'required':_0x555df7[_0x840e('0x2a')][_0x840e('0x5d')]?!![]:![]}],'attributes':_[_0x840e('0x20')](_0x555337)});})[_0x840e('0x15')](function(_0x57b6f3){if(!_[_0x840e('0x56')](_0x57b6f3)){_0x589d9b=_0x57b6f3['get']({'plain':!![]});var _0x5f4650={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x57b6f3&&_0x57b6f3[_0x840e('0x5a')]){if(_0x57b6f3[_0x840e('0x5a')]){_0x5f4650[_0x840e('0x33')][_0x840e('0xae')][_0x840e('0x58')]({'ListId':{'$ne':_0x57b6f3['ListId']}});}}return db[_0x840e('0x23')]['findAll'](_0x5f4650);}})[_0x840e('0x15')](function(_0x3e883d){if(!_[_0x840e('0x56')](_0x3e883d)){return _[_0x840e('0xaf')](_0x589d9b,_[_0x840e('0x4b')](_0x3e883d,function(_0x1156a3){return util[_0x840e('0xb0')](_0x840e('0xb1'),_0x1156a3['id']);}));}})[_0x840e('0x15')](handleEntityNotFound(_0xfc9f40,null))[_0x840e('0x15')](respondWithResult(_0xfc9f40,null))[_0x840e('0x85')](handleError(_0xfc9f40,null));};exports[_0x840e('0x14')]=function(_0x173a23,_0x21ffd2){var _0x2ba00e;if(_0x173a23[_0x840e('0x8f')]['id']){delete _0x173a23[_0x840e('0x8f')]['id'];}return db[_0x840e('0x1f')]['find']({'where':{'id':_0x173a23[_0x840e('0xad')]['id']}})['then'](handleEntityNotFound(_0x21ffd2,null))['then'](saveUpdates(_0x173a23[_0x840e('0x8f')],null))[_0x840e('0x15')](function(_0x771ae3){_0x2ba00e=_0x771ae3;var _0x4911e7={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x771ae3&&_0x771ae3[_0x840e('0x5a')]){if(_0x771ae3[_0x840e('0x5a')]){_0x4911e7[_0x840e('0x33')][_0x840e('0xae')][_0x840e('0x58')]({'ListId':{'$ne':_0x771ae3[_0x840e('0x5a')]}});}}return db[_0x840e('0x23')]['findAll'](_0x4911e7);})[_0x840e('0x15')](function(_0x21bc40){if(_0x21bc40){return _[_0x840e('0xaf')](_[_0x840e('0xb2')](_0x173a23[_0x840e('0x8f')],function(_0x35bc3b,_0x1706fd){return _[_0x840e('0x22')](_0x1706fd,_0x840e('0x25'));}),_['map'](_0x21bc40,function(_0x4558ce){return util[_0x840e('0xb0')](_0x840e('0xb1'),_0x4558ce['id']);}));}})[_0x840e('0x15')](function(_0x550c8d){if(_0x550c8d&&!_[_0x840e('0x59')](_0x550c8d)){var _0x2bf96a=squel['update']()[_0x840e('0xb3')](_0x840e('0x3a'))['setFields'](_0x550c8d)['where'](_0x840e('0xb4'),_0x173a23['params']['id'])['toParam']();return db[_0x840e('0x76')][_0x840e('0x2a')](_0x2bf96a[_0x840e('0x53')],{'replacements':_0x2bf96a[_0x840e('0x8e')]});}})[_0x840e('0x15')](function(){if(_0x173a23[_0x840e('0x8f')][_0x840e('0xb5')]&&_0x2ba00e){return db['CmHopper'][_0x840e('0x14')]({'phone':_0x173a23[_0x840e('0x8f')][_0x840e('0xb5')]},{'where':{'ContactId':_0x2ba00e['id']}});}})[_0x840e('0x15')](function(){return _0x2ba00e;})[_0x840e('0x15')](respondWithResult(_0x21ffd2,null))['catch'](handleError(_0x21ffd2,null));};exports[_0x840e('0xb6')]=function(_0x1995d3,_0x2e6df9){var _0x4056e3={};var _0x2dae7c={};var _0x10d4a7;var _0x3fefa8;return db['CmContact'][_0x840e('0x24')]({'where':{'id':_0x1995d3[_0x840e('0xad')]['id']}})[_0x840e('0x15')](handleEntityNotFound(_0x2e6df9,null))['then'](function(_0x47e367){if(_0x47e367){_0x10d4a7=_0x47e367;_0x2dae7c[_0x840e('0x29')]=_[_0x840e('0x20')](db[_0x840e('0x48')][_0x840e('0xb7')]);_0x2dae7c['query']=_[_0x840e('0x20')](_0x1995d3['query']);_0x2dae7c[_0x840e('0x34')]=_[_0x840e('0x2b')](_0x2dae7c['model'],_0x2dae7c[_0x840e('0x2a')]);_0x4056e3[_0x840e('0x2c')]=_[_0x840e('0x2b')](_0x2dae7c['model'],qs[_0x840e('0x2d')](_0x1995d3[_0x840e('0x2a')][_0x840e('0x2d')]));_0x4056e3[_0x840e('0x2c')]=_0x4056e3[_0x840e('0x2c')][_0x840e('0x21')]?_0x4056e3[_0x840e('0x2c')]:_0x2dae7c['model'];_0x4056e3['order']=qs[_0x840e('0x32')](_0x1995d3[_0x840e('0x2a')][_0x840e('0x32')]);_0x4056e3[_0x840e('0x33')]=qs[_0x840e('0x34')](_['pick'](_0x1995d3[_0x840e('0x2a')],_0x2dae7c[_0x840e('0x34')]));if(_0x1995d3[_0x840e('0x2a')][_0x840e('0x55')]){_0x4056e3[_0x840e('0x33')]=_[_0x840e('0x78')](_0x4056e3['where'],{'$or':_['map'](_0x4056e3[_0x840e('0x2c')],function(_0x22dbc4){var _0x45304f={};_0x45304f[_0x22dbc4]={'$like':'%'+_0x1995d3[_0x840e('0x2a')][_0x840e('0x55')]+'%'};return _0x45304f;})});}_0x4056e3=_[_0x840e('0x78')]({},_0x4056e3,_0x1995d3['options']);return _0x10d4a7[_0x840e('0xb6')](_0x4056e3);}})['then'](function(_0xa24569){if(_0xa24569){_0x3fefa8=_0xa24569[_0x840e('0x21')];if(!_0x1995d3[_0x840e('0x2a')][_0x840e('0x2e')](_0x840e('0x2f'))){_0x4056e3[_0x840e('0x30')]=qs[_0x840e('0x30')](_0x1995d3[_0x840e('0x2a')][_0x840e('0x30')]);_0x4056e3['offset']=qs[_0x840e('0xf')](_0x1995d3[_0x840e('0x2a')][_0x840e('0xf')]);}return _0x10d4a7[_0x840e('0xb6')](_0x4056e3);}})[_0x840e('0x15')](function(_0x1c18d2){if(_0x1c18d2){return _0x1c18d2?{'count':_0x3fefa8,'rows':_0x1c18d2}:null;}})['then'](respondWithResult(_0x2e6df9,null))['catch'](handleError(_0x2e6df9,null));};exports['setTags']=function(_0x445896,_0x678419){if(_0x445896['body']['id']){delete _0x445896[_0x840e('0x8f')]['id'];}return db['CmContact']['findOne']({'where':{'id':_0x445896[_0x840e('0xad')]['id']}})[_0x840e('0x15')](handleEntityNotFound(_0x678419,null))[_0x840e('0x15')](function(_0x474d59){if(_0x474d59){return _0x474d59['setTags'](_0x445896[_0x840e('0x8f')][_0x840e('0xb8')]||[]);}return null;})[_0x840e('0x15')](respondWithResult(_0x678419,null))[_0x840e('0x85')](handleError(_0x678419,null));};exports[_0x840e('0xb9')]=function(_0xf95435,_0x260cf4){var _0x1016cc={'raw':![],'where':{}};var _0x4a3640={};var _0x82aef1={'count':0x0,'rows':[]};return db[_0x840e('0x1f')][_0x840e('0x24')]({'where':{'id':_0xf95435[_0x840e('0xad')]['id']}})[_0x840e('0x15')](handleEntityNotFound(_0x260cf4,null))[_0x840e('0x15')](function(_0x443f12){if(_0x443f12){_0x4a3640[_0x840e('0x29')]=_[_0x840e('0x20')](db[_0x840e('0xba')][_0x840e('0xb7')]);_0x4a3640[_0x840e('0x2a')]=_[_0x840e('0x20')](_0xf95435[_0x840e('0x2a')]);_0x4a3640[_0x840e('0x34')]=_[_0x840e('0x2b')](_0x4a3640[_0x840e('0x29')],_0x4a3640[_0x840e('0x2a')]);_0x1016cc[_0x840e('0x2c')]=_[_0x840e('0x2b')](_0x4a3640[_0x840e('0x29')],qs[_0x840e('0x2d')](_0xf95435['query'][_0x840e('0x2d')]));_0x1016cc['attributes']=_0x1016cc['attributes'][_0x840e('0x21')]?_0x1016cc[_0x840e('0x2c')]:_0x4a3640[_0x840e('0x29')];if(!_0xf95435[_0x840e('0x2a')][_0x840e('0x2e')]('nolimit')){_0x1016cc['limit']=qs[_0x840e('0x30')](_0xf95435[_0x840e('0x2a')][_0x840e('0x30')]);_0x1016cc[_0x840e('0xf')]=qs[_0x840e('0xf')](_0xf95435[_0x840e('0x2a')][_0x840e('0xf')]);}_0x1016cc['order']=qs['sort'](_0xf95435[_0x840e('0x2a')][_0x840e('0x32')]);_0x1016cc[_0x840e('0x33')]=qs['filters'](_[_0x840e('0x35')](_0xf95435['query'],_0x4a3640[_0x840e('0x34')]));_0x1016cc['where']['ContactId']=_0x443f12['id'];if(_0xf95435[_0x840e('0x2a')][_0x840e('0x55')]){_0x1016cc[_0x840e('0x33')]=_[_0x840e('0x78')](_0x1016cc[_0x840e('0x33')],{'$or':_['map'](_0x1016cc['attributes'],function(_0x2b1602){var _0x2146ee={};_0x2146ee[_0x2b1602]={'$like':'%'+_0xf95435[_0x840e('0x2a')][_0x840e('0x55')]+'%'};return _0x2146ee;})});}_0x1016cc=_[_0x840e('0x78')]({},_0x1016cc,_0xf95435[_0x840e('0xbb')]);return db[_0x840e('0xba')][_0x840e('0x11')]({'where':_0x1016cc[_0x840e('0x33')]})[_0x840e('0x15')](function(_0x2a66b7){_0x82aef1[_0x840e('0x11')]=_0x2a66b7;if(_0xf95435[_0x840e('0x2a')][_0x840e('0xbc')]){_0x1016cc[_0x840e('0xbd')]=[{'all':!![]}];}return db[_0x840e('0xba')][_0x840e('0x89')](_0x1016cc);})[_0x840e('0x15')](function(_0x2e5cfe){_0x82aef1['rows']=_0x2e5cfe;return _0x82aef1;});}})[_0x840e('0x15')](respondWithFilteredResult(_0x260cf4,_0x1016cc))['catch'](handleError(_0x260cf4,null));};exports[_0x840e('0xbe')]=function(_0x1f0181,_0x58ad7b){var _0x4c7d10={'raw':!![],'where':{}};var _0x232f13={};var _0x1bf34d={'count':0x0,'rows':[]};return db['CmContact'][_0x840e('0x24')]({'where':{'id':_0x1f0181[_0x840e('0xad')]['id']}})[_0x840e('0x15')](handleEntityNotFound(_0x58ad7b,null))[_0x840e('0x15')](function(_0x5122f9){if(_0x5122f9){_0x232f13[_0x840e('0x29')]=_[_0x840e('0x20')](db[_0x840e('0xbf')][_0x840e('0xb7')]);_0x232f13[_0x840e('0x2a')]=_[_0x840e('0x20')](_0x1f0181[_0x840e('0x2a')]);_0x232f13['filters']=_['intersection'](_0x232f13[_0x840e('0x29')],_0x232f13[_0x840e('0x2a')]);_0x4c7d10['attributes']=_['intersection'](_0x232f13['model'],qs['fields'](_0x1f0181[_0x840e('0x2a')][_0x840e('0x2d')]));_0x4c7d10[_0x840e('0x2c')]=_0x4c7d10[_0x840e('0x2c')]['length']?_0x4c7d10[_0x840e('0x2c')]:_0x232f13[_0x840e('0x29')];if(!_0x1f0181['query'][_0x840e('0x2e')](_0x840e('0x2f'))){_0x4c7d10[_0x840e('0x30')]=qs['limit'](_0x1f0181[_0x840e('0x2a')]['limit']);_0x4c7d10[_0x840e('0xf')]=qs[_0x840e('0xf')](_0x1f0181[_0x840e('0x2a')]['offset']);}_0x4c7d10[_0x840e('0x31')]=qs['sort'](_0x1f0181[_0x840e('0x2a')][_0x840e('0x32')]);_0x4c7d10[_0x840e('0x33')]=qs[_0x840e('0x34')](_[_0x840e('0x35')](_0x1f0181[_0x840e('0x2a')],_0x232f13[_0x840e('0x34')]));_0x4c7d10[_0x840e('0x33')][_0x840e('0xc0')]=_0x5122f9['id'];if(_0x1f0181[_0x840e('0x2a')][_0x840e('0x55')]){_0x4c7d10['where']=_[_0x840e('0x78')](_0x4c7d10['where'],{'$or':_[_0x840e('0x4b')](_0x4c7d10[_0x840e('0x2c')],function(_0x7bb61c){var _0x79b53e={};_0x79b53e[_0x7bb61c]={'$like':'%'+_0x1f0181[_0x840e('0x2a')][_0x840e('0x55')]+'%'};return _0x79b53e;})});}_0x4c7d10=_[_0x840e('0x78')]({},_0x4c7d10,_0x1f0181[_0x840e('0xbb')]);return db[_0x840e('0xbf')][_0x840e('0x11')]({'where':_0x4c7d10[_0x840e('0x33')]})[_0x840e('0x15')](function(_0x3546a4){_0x1bf34d[_0x840e('0x11')]=_0x3546a4;if(_0x1f0181['query'][_0x840e('0xbc')]){_0x4c7d10[_0x840e('0xbd')]=[{'all':!![]}];}return db[_0x840e('0xbf')][_0x840e('0x89')](_0x4c7d10);})['then'](function(_0x1151b9){_0x1bf34d[_0x840e('0x84')]=_0x1151b9;return _0x1bf34d;});}})[_0x840e('0x15')](respondWithFilteredResult(_0x58ad7b,_0x4c7d10))[_0x840e('0x85')](handleError(_0x58ad7b,null));};exports[_0x840e('0xc1')]=function(_0xdf8a5e,_0x468e93){var _0x1c333b={'raw':!![],'where':{}};var _0x3b3c08={};var _0xf8be95={'count':0x0,'rows':[]};return db[_0x840e('0x1f')][_0x840e('0x24')]({'where':{'id':_0xdf8a5e[_0x840e('0xad')]['id']}})[_0x840e('0x15')](handleEntityNotFound(_0x468e93,null))[_0x840e('0x15')](function(_0x3ac639){if(_0x3ac639){_0x3b3c08[_0x840e('0x29')]=_[_0x840e('0x20')](db[_0x840e('0xc2')][_0x840e('0xb7')]);_0x3b3c08[_0x840e('0x2a')]=_[_0x840e('0x20')](_0xdf8a5e[_0x840e('0x2a')]);_0x3b3c08['filters']=_[_0x840e('0x2b')](_0x3b3c08[_0x840e('0x29')],_0x3b3c08[_0x840e('0x2a')]);_0x1c333b[_0x840e('0x2c')]=_[_0x840e('0x2b')](_0x3b3c08[_0x840e('0x29')],qs[_0x840e('0x2d')](_0xdf8a5e[_0x840e('0x2a')][_0x840e('0x2d')]));_0x1c333b[_0x840e('0x2c')]=_0x1c333b[_0x840e('0x2c')][_0x840e('0x21')]?_0x1c333b[_0x840e('0x2c')]:_0x3b3c08[_0x840e('0x29')];if(!_0xdf8a5e['query'][_0x840e('0x2e')]('nolimit')){_0x1c333b[_0x840e('0x30')]=qs[_0x840e('0x30')](_0xdf8a5e['query'][_0x840e('0x30')]);_0x1c333b[_0x840e('0xf')]=qs[_0x840e('0xf')](_0xdf8a5e['query'][_0x840e('0xf')]);}_0x1c333b['order']=qs[_0x840e('0x32')](_0xdf8a5e[_0x840e('0x2a')]['sort']);_0x1c333b[_0x840e('0x33')]=qs[_0x840e('0x34')](_['pick'](_0xdf8a5e[_0x840e('0x2a')],_0x3b3c08[_0x840e('0x34')]));_0x1c333b[_0x840e('0x33')]['ContactId']=_0x3ac639['id'];if(_0xdf8a5e['query'][_0x840e('0x55')]){_0x1c333b[_0x840e('0x33')]=_[_0x840e('0x78')](_0x1c333b[_0x840e('0x33')],{'$or':_[_0x840e('0x4b')](_0x1c333b[_0x840e('0x2c')],function(_0x37ef8d){var _0x6cd864={};_0x6cd864[_0x37ef8d]={'$like':'%'+_0xdf8a5e[_0x840e('0x2a')]['filter']+'%'};return _0x6cd864;})});}_0x1c333b=_[_0x840e('0x78')]({},_0x1c333b,_0xdf8a5e[_0x840e('0xbb')]);return db[_0x840e('0xc2')][_0x840e('0x11')]({'where':_0x1c333b['where']})['then'](function(_0x1cb554){_0xf8be95['count']=_0x1cb554;if(_0xdf8a5e['query']['includeAll']){_0x1c333b['include']=[{'all':!![]}];}return db[_0x840e('0xc2')][_0x840e('0x89')](_0x1c333b);})['then'](function(_0x339412){_0xf8be95[_0x840e('0x84')]=_0x339412;return _0xf8be95;});}})[_0x840e('0x15')](respondWithFilteredResult(_0x468e93,_0x1c333b))[_0x840e('0x85')](handleError(_0x468e93,null));};exports[_0x840e('0xc3')]=function(_0x1b6860,_0x3bd4b1){var _0x4d9b00={'raw':!![],'where':{}};var _0x3f70da={};var _0x54ac43={'count':0x0,'rows':[]};return db[_0x840e('0x1f')]['findOne']({'where':{'id':_0x1b6860[_0x840e('0xad')]['id']}})['then'](handleEntityNotFound(_0x3bd4b1,null))[_0x840e('0x15')](function(_0x39b423){if(_0x39b423){_0x3f70da[_0x840e('0x29')]=_['keys'](db[_0x840e('0xa3')][_0x840e('0xb7')]);_0x3f70da[_0x840e('0x2a')]=_[_0x840e('0x20')](_0x1b6860[_0x840e('0x2a')]);_0x3f70da[_0x840e('0x34')]=_[_0x840e('0x2b')](_0x3f70da[_0x840e('0x29')],_0x3f70da[_0x840e('0x2a')]);_0x4d9b00[_0x840e('0x2c')]=_[_0x840e('0x2b')](_0x3f70da[_0x840e('0x29')],qs[_0x840e('0x2d')](_0x1b6860[_0x840e('0x2a')][_0x840e('0x2d')]));_0x4d9b00[_0x840e('0x2c')]=_0x4d9b00['attributes'][_0x840e('0x21')]?_0x4d9b00[_0x840e('0x2c')]:_0x3f70da[_0x840e('0x29')];if(!_0x1b6860[_0x840e('0x2a')][_0x840e('0x2e')](_0x840e('0x2f'))){_0x4d9b00[_0x840e('0x30')]=qs['limit'](_0x1b6860['query'][_0x840e('0x30')]);_0x4d9b00[_0x840e('0xf')]=qs[_0x840e('0xf')](_0x1b6860['query'][_0x840e('0xf')]);}_0x4d9b00[_0x840e('0x31')]=qs[_0x840e('0x32')](_0x1b6860[_0x840e('0x2a')]['sort']);_0x4d9b00[_0x840e('0x33')]=qs[_0x840e('0x34')](_[_0x840e('0x35')](_0x1b6860[_0x840e('0x2a')],_0x3f70da[_0x840e('0x34')]));_0x4d9b00[_0x840e('0x33')][_0x840e('0xc0')]=_0x39b423['id'];if(_0x1b6860['query'][_0x840e('0x55')]){_0x4d9b00[_0x840e('0x33')]=_[_0x840e('0x78')](_0x4d9b00[_0x840e('0x33')],{'$or':_['map'](_0x4d9b00[_0x840e('0x2c')],function(_0x4054d3){var _0x578cf9={};_0x578cf9[_0x4054d3]={'$like':'%'+_0x1b6860[_0x840e('0x2a')][_0x840e('0x55')]+'%'};return _0x578cf9;})});}_0x4d9b00=_[_0x840e('0x78')]({},_0x4d9b00,_0x1b6860['options']);return db[_0x840e('0xa3')][_0x840e('0x11')]({'where':_0x4d9b00[_0x840e('0x33')]})[_0x840e('0x15')](function(_0x18a5c2){_0x54ac43[_0x840e('0x11')]=_0x18a5c2;if(_0x1b6860[_0x840e('0x2a')]['includeAll']){_0x4d9b00[_0x840e('0xbd')]=[{'all':!![]}];}return db['JscriptySessionReport'][_0x840e('0x89')](_0x4d9b00);})[_0x840e('0x15')](function(_0x2ce4f9){_0x54ac43[_0x840e('0x84')]=_0x2ce4f9;return _0x54ac43;});}})[_0x840e('0x15')](respondWithFilteredResult(_0x3bd4b1,_0x4d9b00))[_0x840e('0x85')](handleError(_0x3bd4b1,null));};exports[_0x840e('0xc4')]=function(_0x267ec7,_0x247ecb){try{if(!_0x267ec7[_0x840e('0x8f')][_0x840e('0x5a')]){throw new Error(_0x840e('0xc5'));}if(!_0x267ec7['body']['binding_keys']){throw new Error(_0x840e('0xc6'));}if(!_0x267ec7[_0x840e('0x8f')][_0x840e('0xc7')]){throw new Error(_0x840e('0xc8'));}if(!_0x267ec7[_0x840e('0x8f')][_0x840e('0xc9')]){throw new Error(_0x840e('0xca'));}var _0x4bd46f=_0x267ec7[_0x840e('0x8f')][_0x840e('0xcb')]['split'](',');var _0x5331cc=_0x267ec7[_0x840e('0x8f')][_0x840e('0xc7')][_0x840e('0x4a')](',');if(!_0x4bd46f[_0x840e('0x21')]||!_0x5331cc[_0x840e('0x21')]||_0x4bd46f['length']!==_0x5331cc[_0x840e('0x21')]){throw new Error('Incorrect\x20binding\x20parameters\x20passed!');}_0x267ec7[_0x840e('0x8f')][_0x840e('0x2d')]=_['zipObject'](_0x4bd46f,_0x5331cc);if(!_0x267ec7['body'][_0x840e('0x2d')]['phone']){throw new Error('No\x20phone\x20column\x20specified');}if(!_0x267ec7[_0x840e('0x8f')][_0x840e('0x2d')][_0x840e('0xcc')]){throw new Error(_0x840e('0xcd'));}var _0x263bf4=path[_0x840e('0xa6')](config['root'],_0x840e('0xce'),_0x267ec7['file'][_0x840e('0xcf')]);fs['chmodSync'](_0x263bf4,parseInt(_0x840e('0xd0'),0x8));var _0x1cde23=require(_0x840e('0xd1'))[_0x840e('0xd2')](path[_0x840e('0xa6')](__dirname,_0x840e('0xd3')),[_0x263bf4,_0x267ec7[_0x840e('0x8f')][_0x840e('0xcb')],_0x267ec7[_0x840e('0x8f')][_0x840e('0xc7')],_0x267ec7['body']['ListId'],_0x267ec7['body'][_0x840e('0xd4')],_0x267ec7[_0x840e('0x8f')]['duplicates'],_0x267ec7[_0x840e('0x8f')][_0x840e('0xc9')]]);return _0x247ecb[_0x840e('0x17')](0xc8)['json']({'message':_0x840e('0xd5'),'pid':_0x1cde23['pid']});}catch(_0x142222){return _0x247ecb[_0x840e('0x17')](0x1f4)[_0x840e('0x1d')](_0x142222);}};exports[_0x840e('0xd6')]=function(_0x24da99,_0x2e34a4){var _0x579846=fs[_0x840e('0xd7')](_0x24da99[_0x840e('0xd8')][_0x840e('0x2')]);Papa['parse'](_0x579846,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x3cc3b5){return _0x2e34a4[_0x840e('0x17')](0xc8)['json']({'file':_0x24da99[_0x840e('0xd8')],'fields':_0x3cc3b5[_0x840e('0xd9')][_0x840e('0x2d')]});}});};exports['import']=function(_0x78ac22,_0x22030b){return db[_0x840e('0x4f')]['findAll']({'raw':!![],'attributes':['id'],'where':{'role':_0x840e('0x71')}})['then'](function(_0x35da12){var _0x2d80da=![];if(!_0x78ac22['body'][_0x840e('0x5a')]){throw new Error('No\x20ListId\x20specified');}if(!_0x78ac22['body'][_0x840e('0xda')][_0x840e('0xb5')]){throw new Error(_0x840e('0xdb'));}if(!_0x78ac22[_0x840e('0x8f')][_0x840e('0xda')]['firstName']){throw new Error(_0x840e('0xcd'));}if(!_0x78ac22[_0x840e('0x8f')][_0x840e('0xc9')]){throw new Error('Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed');}var _0x2e0c3e=require(_0x840e('0xd1'))[_0x840e('0xd2')](path[_0x840e('0xa6')](__dirname,_0x840e('0xdc')),[_0x78ac22[_0x840e('0xad')]['id'],JSON['stringify'](_0x78ac22[_0x840e('0x8f')]),JSON[_0x840e('0xdd')](_0x35da12)]);_0x2e0c3e['on'](_0x840e('0xde'),function(){_0x2d80da=!![];return _0x22030b[_0x840e('0x17')](0xc8)[_0x840e('0xe')]({'message':_0x840e('0xdf'),'pid':_0x2e0c3e[_0x840e('0xe0')]});});_0x2e0c3e['on'](_0x840e('0xe1'),function(_0x498193){if(_0x498193&&!_0x2d80da){return _0x22030b[_0x840e('0x17')](0x1f4)[_0x840e('0xe')]({'message':'error\x20child\x20process','pid':_0x2e0c3e[_0x840e('0xe0')]});}});})[_0x840e('0x85')](handleError(_0x22030b,null));};exports[_0x840e('0xe2')]=function(_0x5ab2e8,_0x97c532){var _0x46849f=[_0x840e('0xe3'),_0x840e('0xe4'),_0x840e('0xe5'),_0x840e('0xe6'),_0x840e('0xe7'),_0x840e('0xe8'),_0x840e('0xe9')];var _0x2c494a={'offset':0x0,'order':qs[_0x840e('0x32')]('-createdAt')},_0x3bf6ed={'count':0x0,'rows':[]};Promise[_0x840e('0xea')]()[_0x840e('0x15')](function(){if(_0x5ab2e8[_0x840e('0x2a')][_0x840e('0xeb')]){if(!_[_0x840e('0xec')](_0x46849f,_0x5ab2e8[_0x840e('0x2a')][_0x840e('0xeb')][_0x840e('0xed')]())){throw new Error(_0x840e('0xee'));}_0x46849f=[_0x5ab2e8['query']['channel']['toLowerCase']()];}if(_0x5ab2e8[_0x840e('0x2a')][_0x840e('0xef')]){try{var _0x232413=JSON[_0x840e('0xf0')](_0x5ab2e8[_0x840e('0x2a')][_0x840e('0xef')]);if(!moment(_0x232413['from'])['isValid']()){throw new Error(_0x840e('0xf1'));}if(!moment(_0x232413['to'])[_0x840e('0xf2')]()){throw new Error(_0x840e('0xf3'));}}catch(_0x13a780){throw new Error(_0x840e('0xf4'));}}if(!_0x5ab2e8[_0x840e('0x2a')][_0x840e('0x2e')](_0x840e('0x2f'))){_0x2c494a['limit']=qs[_0x840e('0x30')](_0x5ab2e8[_0x840e('0x2a')][_0x840e('0x30')]||0xa);_0x2c494a[_0x840e('0xf')]=qs[_0x840e('0xf')](_0x5ab2e8[_0x840e('0x2a')][_0x840e('0xf')]);}var _0x1cf3d1=_0x46849f[_0x840e('0x4b')](function(_0x68ca66){if(_0x68ca66===_0x840e('0xe9')){var _0x53413d={'attributes':['id',_0x840e('0xf5'),'type','source',_0x840e('0xf6'),_0x840e('0xf7'),'starttime',_0x840e('0xf8'),_0x840e('0xf9'),_0x840e('0xfa'),_0x840e('0xfb'),_0x840e('0xfc'),_0x840e('0xfd'),_0x840e('0xfe'),_0x840e('0xff')],'where':{'ContactId':_0x5ab2e8[_0x840e('0xad')]['id']},'include':[{'model':db[_0x840e('0x4f')],'as':_0x840e('0x4f'),'attributes':['id',_0x840e('0x1c'),_0x840e('0x100'),_0x840e('0x8c')]}],'order':[[_0x840e('0xfb'),_0x840e('0x101')]]};if(_0x5ab2e8[_0x840e('0x2a')]['range']){_0x53413d[_0x840e('0x33')]['createdAt']={'$gte':_0x232413[_0x840e('0x39')],'$lte':_0x232413['to']};}return db[_0x840e('0xa0')]['findAndCountAll'](_0x53413d)[_0x840e('0x15')](function(_0x2b8479){_0x3bf6ed[_0x840e('0x11')]+=_0x2b8479[_0x840e('0x11')];return _[_0x840e('0x4b')](_0x2b8479[_0x840e('0x84')],function(_0x43bcfd){var _0x22e08a=_0x43bcfd[_0x840e('0x90')]({'plain':!![]});_0x22e08a[_0x840e('0xeb')]=_0x68ca66;if(_0x22e08a[_0x840e('0x4f')]){_0x22e08a[_0x840e('0x4f')]={'id':_0x22e08a[_0x840e('0x4f')]['id'],'name':_0x22e08a['User'][_0x840e('0x1c')],'fullname':_0x22e08a[_0x840e('0x4f')][_0x840e('0x100')],'alias':_0x22e08a['User'][_0x840e('0x8c')]};}return _0x22e08a;});});}else{var _0xdb15e0=_[_0x840e('0x102')](_0x68ca66)+(_0x68ca66==='chat'?_0x840e('0x103'):_0x840e('0x104'));var _0x5cc485={'attributes':['id',_0x840e('0x105'),'closedAt',_0x840e('0xfb'),_0x840e('0xfa'),_0x840e('0x106'),_0x840e('0x107'),_0x840e('0x108'),_0x840e('0xff'),_0xdb15e0+'Id'],'where':{'ContactId':_0x5ab2e8[_0x840e('0xad')]['id']},'include':[{'model':db[_0xdb15e0],'as':'Account','attributes':['id',_0x840e('0x1c'),_0x840e('0x109')]},{'model':db['User'],'as':_0x840e('0x10a'),'attributes':['id',_0x840e('0x1c'),_0x840e('0x100')]},{'model':db[_0x840e('0x48')],'as':_0x840e('0x83'),'attributes':['id','name',_0x840e('0x38')],'through':{'attributes':[]}}],'order':[[_0x840e('0xfb'),_0x840e('0x101')]]};if(_0x5ab2e8[_0x840e('0x2a')]['range']){_0x5cc485['where'][_0x840e('0xfb')]={'$gte':_0x232413[_0x840e('0x39')],'$lte':_0x232413['to']};}switch(_0x68ca66){case _0x840e('0xe4'):_0x5cc485[_0x840e('0x2c')][_0x840e('0x58')](_0x840e('0x10b'),_0x840e('0x10c'),_0x840e('0x10d'),_0x840e('0x10e'),_0x840e('0x10f'),_0x840e('0x110'),_0x840e('0x111'),_0x840e('0x112'),_0x840e('0x113'));break;case _0x840e('0xe3'):_0x5cc485[_0x840e('0x2c')]['push'](_0x840e('0x114'),_0x840e('0x115'));break;case'openchannel':_0x5cc485[_0x840e('0x2c')]['push'](_0x840e('0x116'),'threadId');break;}return db[_['startCase'](_0x68ca66)+_0x840e('0x117')]['findAndCountAll'](_0x5cc485)[_0x840e('0x15')](function(_0x299ba2){_0x3bf6ed['count']+=_0x299ba2[_0x840e('0x11')];return _[_0x840e('0x4b')](_0x299ba2[_0x840e('0x84')],function(_0x597ce7){var _0x51c0e2=_0x597ce7[_0x840e('0x90')]({'plain':!![]});_0x51c0e2[_0x840e('0xeb')]=_0x68ca66;if(_0x51c0e2[_0x840e('0x10a')]){_0x51c0e2[_0x840e('0x10a')]={'id':_0x51c0e2[_0x840e('0x10a')]['id'],'name':_0x51c0e2['Owner']['name'],'fullname':_0x51c0e2[_0x840e('0x10a')][_0x840e('0x100')]};}return _0x51c0e2;});});}});return Promise['all'](_0x1cf3d1);})[_0x840e('0x15')](function(_0x9bf900){return _(_0x9bf900)[_0x840e('0x118')]()[_0x840e('0x119')](_0x840e('0xfb'))[_0x840e('0x11a')]()[_0x840e('0x49')]();})[_0x840e('0x15')](function(_0x19dfc9){_0x3bf6ed[_0x840e('0x84')]=_0x2c494a[_0x840e('0x30')]?_0x19dfc9[_0x840e('0x11b')](_0x2c494a[_0x840e('0xf')],_0x2c494a[_0x840e('0xf')]+_0x2c494a[_0x840e('0x30')]):_0x19dfc9;return _0x3bf6ed;})[_0x840e('0x15')](respondWithFilteredResult(_0x97c532,_0x2c494a))[_0x840e('0x85')](handleError(_0x97c532,null));};
\ No newline at end of file
+var _0x3691=['uc.UserId\x20=\x20?','datetime','castTo','DATE','buildExpression','text','start','hasOwnProperty','isNil','Contact','ListId','c.ListId\x20IN\x20?','concat','CONCAT_WS(\x27\x20\x27,\x20c.firstName,\x20c.lastName,\x20c.email)\x20LIKE\x20?','\x20=\x20?','isArray','tag','filter','replace','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','isNumeric','c.id\x20LIKE\x20?','c.phone\x20LIKE\x20?','c.fax\x20LIKE\x20?','isEmail','c.firstName\x20LIKE\x20?','c.lastName\x20LIKE\x20?','group','c.id','Sequelize','QueryTypes','clone','order','DESC','t.id\x20IN\x20?','resolve','user','agent','some','getLists','isEmpty','c.ListId\x20IS\x20NULL','role','sequelize','toString','merge','CmContact','c.firstName','c.lastName','c.fax','c.email','c.ListId','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','Tags','rows','catch','columnName','displayName','CmCustomField','findAll','values','body','get','mergeWith','tags','join','info','[CmContact][merge]\x20to\x20%s\x20from\x20%s','CmHopper','[CmContact][merge][destroy][CmHopper],\x20%s','CmHopperBlack','[CmContact][merge][destroy][CmHopperBlack],\x20%s','ChatInteraction','ChatMessage','update','MailInteraction','MailMessage','SmsInteraction','FaxInteraction','FaxMessage','OpenchannelInteraction','OpenchannelMessage','CmHopperFinal','CmHopperHistory','ReportAgentPreview','VoiceCallReport','FaxQueueReport','MailQueueReport','OpenchannelQueueReport','JscriptySessionReport','WhatsappMessage','WhatsappQueueReport','each','duplicates','$or','findOrCreate','spread','params','$and','omit','cf_%d','pickBy','format','table','cm_contacts','setFields','id\x20=\x20?','toParam','phone','pick','options','getTags','nolimit','setTags','ids','getHoppers','rawAttributes','ContactId','includeAll','include','getHopperHistories','getJscriptySessions','binding_keys','No\x20association\x20keys\x20specified!','No\x20association\x20values\x20specified!','socket_timestamp','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','binding_values','No\x20phone\x20column\x20specified','No\x20firstName\x20column\x20specified','root','server/files/tmp','file','filename','0777','child_process','fork','CompanyId','pid','send','upload','meta','import','No\x20ListId\x20specified','binding','firstName','../../components/import/cm/csv2','stringify','message','start\x20child\x20process\x20correctly!','error\x20child\x20process','getJourney','chat','sms','fax','voice','-createdAt','channel','includes','toLowerCase','Invalid\x20channel','range','parse','isValid','Invalid\x20date\x20for\x20range\x20from\x20filter','Invalid\x20date\x20for\x20range\x20to\x20filter','Invalid\x20createdAt\x20filter','uniqueid','destination','callerid','starttime','endtime','duration','note','createdAt','userDisposition','userSecondDisposition','userThirdDisposition','UserId','fullname','findAndCountAll','alias','startCase','Website','Account','closedAt','disposition','thirdDisposition','Owner','browserName','customerIp','customerPort','deviceModel','osName','ratingMessage','ratingType','ratingValue','subject','substatus','openchannel','threadId','Interaction','flatten','sortBy','reverse','eml-format','rimraf','moment','bluebird','mustache','path','sox','fs-extra','lodash','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','./cmContact.socket','register','status','json','offset','undefined','limit','count','set','apply','reject','then','destroy','end','sendStatus','error','stack','describe','keys','length','startsWith','cf_','push','findOne','all','fieldType','type','model','query','filters','intersection','attributes','fields','sort','where','select','field','name','color','tools_tags','from','left_join','cm_user_has_contacts','uc.CmContactId\x20=\x20c.id','ct.CmContactId\x20=\x20c.id','expr','search','parseSearch','sqlOperator','conditions','find','Tag','value','split','map','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','and'];(function(_0x1fa759,_0x4ecdce){var _0x2da9f4=function(_0x463e2a){while(--_0x463e2a){_0x1fa759['push'](_0x1fa759['shift']());}};_0x2da9f4(++_0x4ecdce);}(_0x3691,0xcf));var _0x1369=function(_0x32009e,_0x3d6d16){_0x32009e=_0x32009e-0x0;var _0xaeacae=_0x3691[_0x32009e];return _0xaeacae;};'use strict';var emlformat=require(_0x1369('0x0'));var rimraf=require(_0x1369('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1369('0x2'));var BPromise=require(_0x1369('0x3'));var Mustache=require(_0x1369('0x4'));var util=require('util');var path=require(_0x1369('0x5'));var sox=require(_0x1369('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1369('0x7'));var _=require(_0x1369('0x8'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x1369('0x9'));var toCsv=require(_0x1369('0xa'));var querystring=require('querystring');var Papa=require(_0x1369('0xb'));var Redis=require(_0x1369('0xc'));var authService=require(_0x1369('0xd'));var qs=require(_0x1369('0xe'));var as=require(_0x1369('0xf'));var hardwareService=require(_0x1369('0x10'));var logger=require(_0x1369('0x11'))(_0x1369('0x12'));var utils=require('../../config/utils');var config=require(_0x1369('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x1369('0x14'))['db'];config['redis']=_[_0x1369('0x15')](config[_0x1369('0x16')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x1369('0x16')]));require(_0x1369('0x17'))[_0x1369('0x18')](socket);function respondWithStatusCode(_0x509c2e,_0x352b05){_0x352b05=_0x352b05||0xcc;return function(_0x59d75f){if(_0x59d75f){return _0x509c2e['sendStatus'](_0x352b05);}return _0x509c2e[_0x1369('0x19')](_0x352b05)['end']();};}function respondWithResult(_0x4534bf,_0x4f1021){_0x4f1021=_0x4f1021||0xc8;return function(_0x627d8f){if(_0x627d8f){return _0x4534bf['status'](_0x4f1021)[_0x1369('0x1a')](_0x627d8f);}};}function respondWithFilteredResult(_0x10c613,_0x45340e){return function(_0x7eb699){if(_0x7eb699){var _0x19f5d4=typeof _0x45340e[_0x1369('0x1b')]===_0x1369('0x1c')&&typeof _0x45340e[_0x1369('0x1d')]===_0x1369('0x1c');var _0x31fe7a=_0x7eb699[_0x1369('0x1e')];var _0x2262cb=_0x19f5d4?0x0:_0x45340e['offset'];var _0x5d76f4=_0x19f5d4?_0x7eb699[_0x1369('0x1e')]:_0x45340e[_0x1369('0x1b')]+_0x45340e[_0x1369('0x1d')];var _0x471aff;if(_0x5d76f4>=_0x31fe7a){_0x5d76f4=_0x31fe7a;_0x471aff=0xc8;}else{_0x471aff=0xce;}_0x10c613[_0x1369('0x19')](_0x471aff);return _0x10c613[_0x1369('0x1f')]('Content-Range',_0x2262cb+'-'+_0x5d76f4+'/'+_0x31fe7a)['json'](_0x7eb699);}return null;};}function patchUpdates(_0x1fc159){return function(_0x323049){try{jsonpatch[_0x1369('0x20')](_0x323049,_0x1fc159,!![]);}catch(_0xcd6a1c){return BPromise[_0x1369('0x21')](_0xcd6a1c);}return _0x323049['save']();};}function saveUpdates(_0x48bf2b,_0x3e5fb3){return function(_0x493f0f){if(_0x493f0f){return _0x493f0f['update'](_0x48bf2b)[_0x1369('0x22')](function(_0x1fd488){return _0x1fd488;});}return null;};}function removeEntity(_0x3039d4,_0x499093){return function(_0x36de02){if(_0x36de02){return _0x36de02[_0x1369('0x23')]()[_0x1369('0x22')](function(){_0x3039d4[_0x1369('0x19')](0xcc)[_0x1369('0x24')]();});}};}function handleEntityNotFound(_0x4c6ae9,_0x271c01){return function(_0x4edb28){if(!_0x4edb28){_0x4c6ae9[_0x1369('0x25')](0x194);}return _0x4edb28;};}function handleError(_0x2fd36e,_0x461311){_0x461311=_0x461311||0x1f4;return function(_0x2471fb){logger[_0x1369('0x26')](_0x2471fb[_0x1369('0x27')]);if(_0x2471fb['name']){delete _0x2471fb['name'];}_0x2fd36e['status'](_0x461311)['send'](_0x2471fb);};}exports['index']=function(_0x26884e,_0x2ac244){var _0x156522={},_0xd4d72d={},_0x109e04={'count':0x0,'rows':[]};return db['CmContact'][_0x1369('0x28')]()[_0x1369('0x22')](function(_0x4a60eb){var _0x2fa5c5=[];for(var _0x2d0259=0x0;_0x2d0259<Object[_0x1369('0x29')](_0x4a60eb)[_0x1369('0x2a')];_0x2d0259++){var _0x3b69f5=Object['keys'](_0x4a60eb)[_0x2d0259];if(_[_0x1369('0x2b')](_0x3b69f5,_0x1369('0x2c'))){_0x2fa5c5[_0x1369('0x2d')](db['CmCustomField'][_0x1369('0x2e')]({'where':{'id':_['trimStart'](_0x3b69f5,'cf_')},'raw':!![]}));}}return BPromise[_0x1369('0x2f')](_0x2fa5c5)[_0x1369('0x22')](function(_0x4e14bf){for(var _0x4a9e4a=0x0;_0x4a9e4a<_0x4e14bf[_0x1369('0x2a')];_0x4a9e4a++){if(_0x4e14bf[_0x4a9e4a]){var _0xa164db=_0x1369('0x2c')+_0x4e14bf[_0x4a9e4a]['id'];var _0x413834=_0x4a60eb[_0xa164db];_0x413834[_0x1369('0x30')]=_0x4e14bf[_0x4a9e4a][_0x1369('0x31')];}}return _0x4a60eb;});})[_0x1369('0x22')](function(_0x59fc51){_0xd4d72d[_0x1369('0x32')]=_[_0x1369('0x29')](_0x59fc51);_0xd4d72d[_0x1369('0x33')]=_[_0x1369('0x29')](_0x26884e[_0x1369('0x33')]);_0xd4d72d[_0x1369('0x34')]=_[_0x1369('0x35')](_0xd4d72d[_0x1369('0x32')],_0xd4d72d[_0x1369('0x33')]);_0x156522[_0x1369('0x36')]=_[_0x1369('0x35')](_0xd4d72d[_0x1369('0x32')],qs['fields'](_0x26884e['query'][_0x1369('0x37')]));_0x156522[_0x1369('0x36')]=_0x156522[_0x1369('0x36')][_0x1369('0x2a')]?_0x156522[_0x1369('0x36')]:_0xd4d72d[_0x1369('0x32')];if(!_0x26884e[_0x1369('0x33')]['hasOwnProperty']('nolimit')){_0x156522[_0x1369('0x1d')]=qs[_0x1369('0x1d')](_0x26884e[_0x1369('0x33')][_0x1369('0x1d')]);_0x156522['offset']=qs[_0x1369('0x1b')](_0x26884e['query']['offset']);}_0x156522['order']=qs[_0x1369('0x38')](_0x26884e['query']['sort']);_0x156522[_0x1369('0x39')]=qs[_0x1369('0x34')](_['pick'](_0x26884e[_0x1369('0x33')],_0xd4d72d['filters']),_0x59fc51);var _0x3ed85a=[];var _0x53e45e=squel[_0x1369('0x3a')]()[_0x1369('0x3b')]('id')[_0x1369('0x3b')](_0x1369('0x3c'))[_0x1369('0x3b')](_0x1369('0x3d'))['from'](_0x1369('0x3e'));var _0x31e850=squel['select']()[_0x1369('0x3f')]('cm_contacts','c')[_0x1369('0x40')](_0x1369('0x41'),'uc',_0x1369('0x42'))[_0x1369('0x40')]('cm_contact_has_tags','ct',_0x1369('0x43'))[_0x1369('0x40')]('tools_tags','t','t.id\x20=\x20ct.TagId')['where']('c.deletedAt\x20IS\x20NULL');var _0x577889=squel[_0x1369('0x44')]();var _0x132f99=[];var _0x1b26ed=squel[_0x1369('0x44')]();var _0x58467f;if(_0x26884e[_0x1369('0x33')][_0x1369('0x45')]){_0x58467f=as[_0x1369('0x46')](_0x26884e[_0x1369('0x33')]['search']);var _0x3136b8=_0x58467f[_0x1369('0x47')];for(var _0x552a6c=0x0;_0x552a6c<_0x58467f[_0x1369('0x48')][_0x1369('0x2a')];_0x552a6c++){var _0x2781a1=_0x58467f['conditions'][_0x552a6c];var _0x31c197='c';var _0x53b6c1=_(_0x59fc51)[_0x1369('0x29')]()[_0x1369('0x49')](function(_0x171456){return _0x171456===_0x2781a1[_0x1369('0x3b')];});if(_0x53b6c1)_0x53b6c1=_0x59fc51[_0x2781a1[_0x1369('0x3b')]];if(!_0x53b6c1){if(_0x2781a1[_0x1369('0x3b')]===_0x1369('0x4a')){var _0x46a9cb=_0x2781a1[_0x1369('0x4b')][_0x1369('0x4c')](',')[_0x1369('0x4d')](function(_0x3dbc6c){return Number(_0x3dbc6c);});_0x46a9cb[_0x1369('0x4e')](function(_0x4fdd7b){_0x1b26ed['or'](_0x1369('0x4f'),'%,'+_0x4fdd7b+',%');});_0x132f99=_['union'](_0x132f99,_0x46a9cb);}else if(_0x2781a1[_0x1369('0x3b')]===_0x1369('0x50')){_0x577889[_0x1369('0x51')](_0x1369('0x52'),_0x2781a1['value']);}}else{if(_0x2781a1['field']==='dateOfBirth'||_0x53b6c1[_0x1369('0x30')]===_0x1369('0x53'))_0x2781a1[_0x1369('0x54')]=_0x1369('0x55');var _0xa75c87=as[_0x1369('0x56')](_0x31c197,_0x53b6c1['type'],_0x2781a1);_0x577889[_0x3136b8](_0xa75c87[_0x1369('0x57')],_0xa75c87[_0x1369('0x4b')][_0x1369('0x58')],_0xa75c87[_0x1369('0x4b')][_0x1369('0x24')]);}}}else{var _0x187fb8=_(Object[_0x1369('0x29')](_0x26884e[_0x1369('0x33')]))[_0x1369('0x4d')](function(_0x49ed71){return _0x59fc51[_0x1369('0x59')](_0x49ed71)?_0x49ed71:undefined;})['filter'](function(_0x50bf08){return!_[_0x1369('0x5a')](_0x50bf08);})['value']();if(_0x26884e[_0x1369('0x33')][_0x1369('0x5b')])_0x187fb8[_0x1369('0x2d')](_0x1369('0x5b'));if(!_['isEmpty'](_0x187fb8)){_0x187fb8[_0x1369('0x4e')](function(_0x1d99b1){if(_0x1d99b1===_0x1369('0x5c')){_0x31e850[_0x1369('0x39')](_0x1369('0x5d'),[][_0x1369('0x5e')](_0x26884e[_0x1369('0x33')][_0x1d99b1]));}else if(_0x1d99b1===_0x1369('0x5b')){var _0x4438ef='%'+_0x26884e[_0x1369('0x33')][_0x1d99b1]+'%';_0x31e850[_0x1369('0x39')](_0x1369('0x5f'),_0x4438ef);}else{_0x31e850[_0x1369('0x39')]('c.'+_0x1d99b1+_0x1369('0x60'),_0x26884e['query'][_0x1d99b1]);}});}if(_0x26884e[_0x1369('0x33')]['tag']){_0x132f99=_[_0x1369('0x61')](_0x26884e[_0x1369('0x33')][_0x1369('0x62')])?_0x26884e[_0x1369('0x33')][_0x1369('0x62')]:new Array(_0x26884e['query'][_0x1369('0x62')]);_0x132f99[_0x1369('0x4e')](function(_0x464096){_0x1b26ed['or'](_0x1369('0x4f'),'%,'+_0x464096+',%');});}if(_0x26884e[_0x1369('0x33')][_0x1369('0x63')]){var _0xc5c81f=_0x26884e['query'][_0x1369('0x63')][_0x1369('0x64')]('\x5c','\x5c\x5c')[_0x1369('0x64')](/'/g,'\x27\x27');if(_0xc5c81f[_0x1369('0x4c')]('\x20')['length']>0x1){_0x577889['or'](_0x1369('0x65'),qs[_0x1369('0x66')](_0xc5c81f),null);}else{if(qs[_0x1369('0x67')](_0xc5c81f)){_0x577889['or'](_0x1369('0x68'),_0xc5c81f+'%');_0x577889['or'](_0x1369('0x69'),_0xc5c81f+'%');_0x577889['or']('c.mobile\x20LIKE\x20?',_0xc5c81f+'%');_0x577889['or'](_0x1369('0x6a'),_0xc5c81f+'%');}else if(qs[_0x1369('0x6b')](_0xc5c81f)){_0x577889['or']('c.email\x20LIKE\x20?',_0xc5c81f+'%');}else{_0x577889['or'](_0x1369('0x6c'),'%'+_0xc5c81f+'%');_0x577889['or'](_0x1369('0x6d'),'%'+_0xc5c81f+'%');_0x577889['or']('c.email\x20LIKE\x20?','%'+_0xc5c81f+'%');}}}}_0x31e850[_0x1369('0x39')](_0x577889);_0x31e850[_0x1369('0x6e')](_0x1369('0x6f'));var _0x49d637={'type':db[_0x1369('0x70')][_0x1369('0x71')]['SELECT'],'raw':!![]};var _0x51d23b=_0x31e850[_0x1369('0x72')]()[_0x1369('0x3b')](_0x1369('0x6f'));if(_0x156522[_0x1369('0x73')]){_0x156522[_0x1369('0x73')][_0x1369('0x4e')](function(_0x203f6f){_0x31e850[_0x1369('0x73')]('c.'+_0x203f6f[0x0],_0x203f6f[0x1]===_0x1369('0x74')?![]:!![]);});}if(!_['isEmpty'](_0x132f99)){_0x31e850['having'](_0x1b26ed);_0x51d23b[_0x1369('0x39')](_0x1369('0x75'),_0x132f99);}BPromise[_0x1369('0x76')]()[_0x1369('0x22')](function(){if(!_0x58467f)return;if(_0x26884e[_0x1369('0x77')]['role']!==_0x1369('0x78'))return;if(!_[_0x1369('0x79')](_0x58467f['conditions'],[_0x1369('0x3b'),_0x1369('0x50')])){return _0x26884e['user'][_0x1369('0x7a')]({'attributes':['id'],'raw':!![]})['then'](function(_0x4bbdd9){if(_[_0x1369('0x7b')](_0x4bbdd9)){_0x51d23b[_0x1369('0x39')](_0x1369('0x7c'));_0x31e850[_0x1369('0x39')](_0x1369('0x7c'));}else{_0x51d23b['where'](_0x1369('0x5d'),_[_0x1369('0x4d')](_0x4bbdd9,'id'));_0x31e850[_0x1369('0x39')]('c.ListId\x20IN\x20?',_[_0x1369('0x4d')](_0x4bbdd9,'id'));}});}})[_0x1369('0x22')](function(){if(_0x26884e['user'][_0x1369('0x7d')]===_0x1369('0x78')&&!_0x58467f&&!_0x26884e[_0x1369('0x33')]['ListId'])return[];return db[_0x1369('0x7e')][_0x1369('0x33')](_0x51d23b[_0x1369('0x7f')](),_0x49d637);})[_0x1369('0x22')](function(_0x30e19f){_0x109e04[_0x1369('0x1e')]=_0x30e19f['length'];if(_0x109e04[_0x1369('0x1e')]===0x0)return[];return db[_0x1369('0x7e')][_0x1369('0x33')](_0x53e45e[_0x1369('0x7f')](),_0x49d637)['then'](function(_0x3a8b9f){_0x3ed85a=_['keyBy'](_0x3a8b9f,'id');_0x49d637=_[_0x1369('0x80')](_0x49d637,{'model':db[_0x1369('0x81')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x26884e[_0x1369('0x33')][_0x1369('0x37')]){_0x156522[_0x1369('0x36')]['forEach'](function(_0x2fdc3c){_0x31e850['field']('c.'+_0x2fdc3c);});}else{_0x31e850[_0x1369('0x3b')](_0x1369('0x6f'));_0x31e850[_0x1369('0x3b')](_0x1369('0x82'));_0x31e850[_0x1369('0x3b')](_0x1369('0x83'));_0x31e850[_0x1369('0x3b')]('c.phone');_0x31e850[_0x1369('0x3b')]('c.mobile');_0x31e850[_0x1369('0x3b')](_0x1369('0x84'));_0x31e850['field'](_0x1369('0x85'));_0x31e850['field'](_0x1369('0x86'));_0x31e850[_0x1369('0x3b')]('c.createdAt');_0x31e850[_0x1369('0x3b')]('c.deletedAt');_0x31e850['field']('c.CompanyId');_0x31e850[_0x1369('0x3b')](_0x1369('0x87'),_0x1369('0x88'));}if(_0x156522[_0x1369('0x1d')])_0x31e850[_0x1369('0x1d')](_0x156522[_0x1369('0x1d')]);if(_0x156522['offset'])_0x31e850['offset'](_0x156522[_0x1369('0x1b')]);return db[_0x1369('0x7e')][_0x1369('0x33')](_0x31e850[_0x1369('0x7f')](),_0x49d637);});})[_0x1369('0x22')](function(_0x143ae3){_0x143ae3[_0x1369('0x4e')](function(_0x545b0d){if(_0x545b0d[_0x1369('0x88')]){_0x545b0d[_0x1369('0x89')]=[];_0x545b0d[_0x1369('0x88')][_0x1369('0x4c')](',')[_0x1369('0x4e')](function(_0x1d80d6){_0x545b0d[_0x1369('0x89')][_0x1369('0x2d')](_0x3ed85a[_0x1d80d6]);});}delete _0x545b0d[_0x1369('0x88')];});_0x109e04[_0x1369('0x8a')]=_0x143ae3;return _0x109e04;})[_0x1369('0x22')](respondWithFilteredResult(_0x2ac244,_0x156522));})[_0x1369('0x8b')](handleError(_0x2ac244,null));};exports[_0x1369('0x23')]=function(_0xeb97e0,_0x14319d){return db[_0x1369('0x81')][_0x1369('0x49')]({'where':{'id':_0xeb97e0['params']['id']}})['then'](handleEntityNotFound(_0x14319d,null))['then'](removeEntity(_0x14319d,null))[_0x1369('0x8b')](handleError(_0x14319d,null));};exports[_0x1369('0x28')]=function(_0x9f8e4c,_0x193f2b){return db['CmContact'][_0x1369('0x28')]()[_0x1369('0x22')](function(_0x52cb10){delete _0x52cb10['tags'];for(var _0x36d986=0x0;_0x36d986<Object[_0x1369('0x29')](_0x52cb10)[_0x1369('0x2a')];_0x36d986++){var _0x2f1f71=Object[_0x1369('0x29')](_0x52cb10)[_0x36d986];if(!_[_0x1369('0x2b')](_0x2f1f71,_0x1369('0x2c'))){_0x52cb10[_0x2f1f71][_0x1369('0x8c')]=_0x2f1f71;_0x52cb10[_0x2f1f71][_0x1369('0x8d')]=_0x2f1f71;}}return _0x52cb10;})[_0x1369('0x22')](function(_0xb4df5b){var _0x18b66f={'where':{'$or':[{'ListId':_0x9f8e4c['query']['id']},{'ListId':null}]},'raw':!![]};return db[_0x1369('0x8e')][_0x1369('0x8f')](_0x18b66f)[_0x1369('0x22')](function(_0x2b4cd6){for(var _0x3650bb=0x0;_0x3650bb<_0x2b4cd6[_0x1369('0x2a')];_0x3650bb++){var _0x51428b='cf_'+_0x2b4cd6[_0x3650bb]['id'];_0xb4df5b[_0x51428b][_0x1369('0x8c')]=_0x51428b;_0xb4df5b[_0x51428b][_0x1369('0x8d')]=_0x2b4cd6[_0x3650bb]['alias'];_0xb4df5b[_0x51428b]['custom']={'type':_0x2b4cd6[_0x3650bb][_0x1369('0x31')],'values':_0x2b4cd6[_0x3650bb][_0x1369('0x90')]};}Object['keys'](_0xb4df5b)[_0x1369('0x4e')](function(_0x485bf9){if(!_0xb4df5b[_0x485bf9][_0x1369('0x59')](_0x1369('0x8c'))){delete _0xb4df5b[_0x485bf9];}});return _0xb4df5b;});})[_0x1369('0x22')](respondWithResult(_0x193f2b,null))[_0x1369('0x8b')](handleError(_0x193f2b,null));};exports['merge']=function(_0x328ced,_0x56ed43){var _0xffbbe3;var _0x104973;var _0x18bcd2;if(_0x328ced[_0x1369('0x91')]['id']){delete _0x328ced[_0x1369('0x91')]['id'];}return db['CmContact'][_0x1369('0x8f')]({'where':{'id':[_0x328ced['body']['to'],_0x328ced['body'][_0x1369('0x3f')]]}})['then'](function(_0x31bacc){if(_0x31bacc){if(_0x31bacc[_0x1369('0x2a')]!==0x2){return null;}_0x31bacc[0x0]=_0x31bacc[0x0]['get']({'plain':!![]});_0x31bacc[0x1]=_0x31bacc[0x1][_0x1369('0x92')]({'plain':!![]});delete _0x31bacc[0x0]['id'];delete _0x31bacc[0x1]['id'];return _[_0x1369('0x93')](_0x31bacc[0x0],_0x31bacc[0x1],function(_0x250074,_0x1ff33d){if(Array[_0x1369('0x61')](_0x1ff33d)&&!_0x1ff33d[_0x1369('0x2a')]){return _0x250074;}else if(!_0x1ff33d){return _0x250074;}});}})[_0x1369('0x22')](handleEntityNotFound(_0x56ed43,null))['then'](function(_0x1b67f8){if(_0x1b67f8){if(_0x1b67f8['tags']&&_[_0x1369('0x61')](_0x1b67f8[_0x1369('0x94')])){_0x1b67f8['tags']=_0x1b67f8[_0x1369('0x94')][_0x1369('0x95')]();}logger[_0x1369('0x96')](_0x1369('0x97'),_0x328ced[_0x1369('0x91')]['to'],_0x328ced['body'][_0x1369('0x3f')]);return db[_0x1369('0x98')][_0x1369('0x23')]({'where':{'ContactId':[_0x328ced[_0x1369('0x91')]['to'],_0x328ced[_0x1369('0x91')][_0x1369('0x3f')]]}})[_0x1369('0x22')](function(_0x5f202c){logger[_0x1369('0x96')](_0x1369('0x99'),_0x5f202c);return db[_0x1369('0x9a')]['destroy']({'where':{'ContactId':[_0x328ced[_0x1369('0x91')]['to'],_0x328ced[_0x1369('0x91')]['from']]}})[_0x1369('0x22')](function(_0x27221e){logger['info'](_0x1369('0x9b'),_0x27221e);return db[_0x1369('0x81')]['create'](_0x1b67f8);});});}})['then'](function(_0x26b1b9){if(_0x26b1b9){_0xffbbe3=_0x26b1b9;_0x104973={'ContactId':_0xffbbe3['id']};_0x18bcd2={'where':{'ContactId':[_0x328ced['body']['to'],_0x328ced[_0x1369('0x91')][_0x1369('0x3f')]]}};return db[_0x1369('0x9c')]['update'](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0x9d')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db['ChatOfflineMessage'][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0x9f')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})['then'](function(){if(_0xffbbe3){return db[_0x1369('0xa0')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})['then'](function(){if(_0xffbbe3){return db[_0x1369('0x9f')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xa0')]['update'](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xa1')]['update'](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db['SmsMessage']['update'](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xa2')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xa3')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xa4')]['update'](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xa5')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xa6')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xa7')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xa8')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})['then'](function(){if(_0xffbbe3){return db[_0x1369('0xa9')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})['then'](function(){if(_0xffbbe3){return db['ChatQueueReport'][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})['then'](function(){if(_0xffbbe3){return db[_0x1369('0xaa')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xab')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xac')]['update'](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db['SmsQueueReport'][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xad')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})['then'](function(){if(_0xffbbe3){return db['WhatsappInteraction'][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xae')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0xaf')][_0x1369('0x9e')](_0x104973,_0x18bcd2);}})[_0x1369('0x22')](function(){if(_0xffbbe3){return db[_0x1369('0x81')][_0x1369('0x23')]({'where':{'id':[_0x328ced[_0x1369('0x91')]['to'],_0x328ced['body']['from']]}});}})[_0x1369('0x22')](function(){if(_0xffbbe3){return _0xffbbe3;}})[_0x1369('0x22')](respondWithResult(_0x56ed43,null))[_0x1369('0x8b')](handleError(_0x56ed43,null));};exports['create']=function(_0x409e0f,_0x2ed43f){return db[_0x1369('0x81')][_0x1369('0x28')]()[_0x1369('0x22')](function(_0x119ea6){if(_0x409e0f[_0x1369('0x91')][_0x1369('0x94')]&&_[_0x1369('0x61')](_0x409e0f[_0x1369('0x91')]['tags'])){if(_0x409e0f[_0x1369('0x91')][_0x1369('0x94')][_0x1369('0x2a')]){_0x409e0f[_0x1369('0x91')]['tags']=_0x409e0f[_0x1369('0x91')][_0x1369('0x94')][_0x1369('0x95')](';')+';';}else{_0x409e0f[_0x1369('0x91')][_0x1369('0x94')]=null;}}else{_0x409e0f['body'][_0x1369('0x94')]=null;}return db[_0x1369('0x81')]['create'](_0x409e0f[_0x1369('0x91')],{'fields':_[_0x1369('0x29')](_0x119ea6),'raw':!![]});})[_0x1369('0x22')](respondWithResult(_0x2ed43f,0xc9))[_0x1369('0x8b')](handleError(_0x2ed43f,null));};exports['bulkCreate']=function(_0x1a935d,_0xe5e605){var _0x223076=[];var _0x5c62d9=0x0;var _0x2526ac=0x0;var _0x242490=0x0;return db[_0x1369('0x81')][_0x1369('0x28')]()[_0x1369('0x22')](function(_0xd7c431){return BPromise[_0x1369('0xb0')](_0x1a935d[_0x1369('0x91')],function(_0x2323e7){var _0x3065d2={'where':{'$or':[]},'defaults':_0x2323e7,'fields':_[_0x1369('0x29')](_0xd7c431),'raw':!![]};if(_0x2323e7[_0x1369('0xb1')]){for(var _0x53c138=0x0;_0x53c138<_0x2323e7[_0x1369('0xb1')][_0x1369('0x2a')];_0x53c138++){var _0x4360a5={};_0x4360a5[_0x2323e7[_0x1369('0xb1')][_0x53c138]]=_0x2323e7[_0x2323e7[_0x1369('0xb1')][_0x53c138]];_0x3065d2['where'][_0x1369('0xb2')]['push'](_0x4360a5);}_0x3065d2[_0x1369('0x39')][_0x1369('0x5c')]=_0x2323e7[_0x1369('0x5c')];}return db[_0x1369('0x81')][_0x1369('0xb3')](_0x3065d2)[_0x1369('0xb4')](function(_0x3af700,_0x4156fb){if(_0x4156fb){_0x5c62d9++;}else{_0x242490++;}})[_0x1369('0x8b')](function(_0x8f9df){console[_0x1369('0x26')](_0x8f9df);_0x2526ac++;});});})[_0x1369('0x22')](function(_0x27df71){if(_0x27df71){return{'success':_0x5c62d9,'failure':_0x2526ac,'duplicates':_0x242490};}})[_0x1369('0x22')](respondWithResult(_0xe5e605,0xc9))[_0x1369('0x8b')](handleError(_0xe5e605,null));};exports['show']=function(_0x2706fc,_0x39f134,_0xa55d02){var _0x17bec4;return db[_0x1369('0x81')][_0x1369('0x28')]()['then'](function(_0x4a34e1){return db['CmContact'][_0x1369('0x49')]({'where':{'id':_0x2706fc[_0x1369('0xb5')]['id']},'include':[{'model':db[_0x1369('0x4a')],'as':'Tags','attributes':['id',_0x1369('0x3c'),_0x1369('0x3d')],'required':_0x2706fc[_0x1369('0x33')][_0x1369('0x62')]?!![]:![]}],'attributes':_[_0x1369('0x29')](_0x4a34e1)});})['then'](function(_0x28ae03){_0x17bec4=_0x28ae03['get']({'plain':!![]});var _0x275c4e={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x28ae03&&_0x28ae03[_0x1369('0x5c')]){if(_0x28ae03['ListId']){_0x275c4e['where'][_0x1369('0xb6')][_0x1369('0x2d')]({'ListId':{'$ne':_0x28ae03[_0x1369('0x5c')]}});}}return db[_0x1369('0x8e')][_0x1369('0x8f')](_0x275c4e);})['then'](function(_0x3c8772){return _[_0x1369('0xb7')](_0x17bec4,_['map'](_0x3c8772,function(_0x592eab){return util['format'](_0x1369('0xb8'),_0x592eab['id']);}));})[_0x1369('0x22')](handleEntityNotFound(_0x39f134,null))['then'](respondWithResult(_0x39f134,null))[_0x1369('0x8b')](handleError(_0x39f134,null));};exports[_0x1369('0x9e')]=function(_0x860988,_0x446a83){var _0x3127b2;if(_0x860988[_0x1369('0x91')]['id']){delete _0x860988['body']['id'];}return db[_0x1369('0x81')][_0x1369('0x49')]({'where':{'id':_0x860988['params']['id']}})[_0x1369('0x22')](handleEntityNotFound(_0x446a83,null))[_0x1369('0x22')](saveUpdates(_0x860988[_0x1369('0x91')],null))[_0x1369('0x22')](function(_0x6446b0){_0x3127b2=_0x6446b0;var _0x5155f8={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x6446b0&&_0x6446b0[_0x1369('0x5c')]){if(_0x6446b0[_0x1369('0x5c')]){_0x5155f8[_0x1369('0x39')][_0x1369('0xb6')][_0x1369('0x2d')]({'ListId':{'$ne':_0x6446b0['ListId']}});}}return db[_0x1369('0x8e')]['findAll'](_0x5155f8);})['then'](function(_0x24eb35){if(_0x24eb35){return _[_0x1369('0xb7')](_[_0x1369('0xb9')](_0x860988['body'],function(_0x373275,_0x1308bd){return _[_0x1369('0x2b')](_0x1308bd,_0x1369('0x2c'));}),_[_0x1369('0x4d')](_0x24eb35,function(_0x26bca1){return util[_0x1369('0xba')](_0x1369('0xb8'),_0x26bca1['id']);}));}})[_0x1369('0x22')](function(_0x7192f){if(_0x7192f&&!_[_0x1369('0x7b')](_0x7192f)){var _0x4a5ec0=squel[_0x1369('0x9e')]()[_0x1369('0xbb')](_0x1369('0xbc'))[_0x1369('0xbd')](_0x7192f)[_0x1369('0x39')](_0x1369('0xbe'),_0x860988[_0x1369('0xb5')]['id'])[_0x1369('0xbf')]();return db[_0x1369('0x7e')]['query'](_0x4a5ec0[_0x1369('0x57')],{'replacements':_0x4a5ec0['values']});}})[_0x1369('0x22')](function(){if(_0x860988[_0x1369('0x91')][_0x1369('0xc0')]&&_0x3127b2){return db[_0x1369('0x98')][_0x1369('0x9e')]({'phone':_0x860988[_0x1369('0x91')][_0x1369('0xc0')]},{'where':{'ContactId':_0x3127b2['id']}});}})[_0x1369('0x22')](function(){return _0x3127b2;})['then'](respondWithResult(_0x446a83,null))[_0x1369('0x8b')](handleError(_0x446a83,null));};exports['getTags']=function(_0x5f412b,_0x3ad6f3,_0x116cc5){var _0x12243b={};var _0x29d0bc={};var _0x373958;var _0x5ba371;return db[_0x1369('0x81')][_0x1369('0x2e')]({'where':{'id':_0x5f412b[_0x1369('0xb5')]['id']}})[_0x1369('0x22')](handleEntityNotFound(_0x3ad6f3,null))[_0x1369('0x22')](function(_0x17bd08){if(_0x17bd08){_0x373958=_0x17bd08;_0x29d0bc[_0x1369('0x32')]=_['keys'](db[_0x1369('0x4a')]['rawAttributes']);_0x29d0bc[_0x1369('0x33')]=_[_0x1369('0x29')](_0x5f412b[_0x1369('0x33')]);_0x29d0bc['filters']=_[_0x1369('0x35')](_0x29d0bc[_0x1369('0x32')],_0x29d0bc['query']);_0x12243b[_0x1369('0x36')]=_['intersection'](_0x29d0bc[_0x1369('0x32')],qs[_0x1369('0x37')](_0x5f412b[_0x1369('0x33')][_0x1369('0x37')]));_0x12243b['attributes']=_0x12243b[_0x1369('0x36')][_0x1369('0x2a')]?_0x12243b['attributes']:_0x29d0bc[_0x1369('0x32')];_0x12243b[_0x1369('0x73')]=qs['sort'](_0x5f412b[_0x1369('0x33')][_0x1369('0x38')]);_0x12243b[_0x1369('0x39')]=qs[_0x1369('0x34')](_[_0x1369('0xc1')](_0x5f412b['query'],_0x29d0bc['filters']));if(_0x5f412b['query'][_0x1369('0x63')]){_0x12243b['where']=_['merge'](_0x12243b[_0x1369('0x39')],{'$or':_['map'](_0x12243b[_0x1369('0x36')],function(_0x479661){var _0x4884d7={};_0x4884d7[_0x479661]={'$like':'%'+_0x5f412b[_0x1369('0x33')]['filter']+'%'};return _0x4884d7;})});}_0x12243b=_['merge']({},_0x12243b,_0x5f412b[_0x1369('0xc2')]);return _0x373958[_0x1369('0xc3')](_0x12243b);}})['then'](function(_0x128a55){if(_0x128a55){_0x5ba371=_0x128a55[_0x1369('0x2a')];if(!_0x5f412b['query'][_0x1369('0x59')](_0x1369('0xc4'))){_0x12243b['limit']=qs['limit'](_0x5f412b[_0x1369('0x33')][_0x1369('0x1d')]);_0x12243b['offset']=qs[_0x1369('0x1b')](_0x5f412b[_0x1369('0x33')][_0x1369('0x1b')]);}return _0x373958[_0x1369('0xc3')](_0x12243b);}})['then'](function(_0x13afe6){if(_0x13afe6){return _0x13afe6?{'count':_0x5ba371,'rows':_0x13afe6}:null;}})[_0x1369('0x22')](respondWithResult(_0x3ad6f3,null))[_0x1369('0x8b')](handleError(_0x3ad6f3,null));};exports['setTags']=function(_0x568404,_0x49b4a5,_0x247916){if(_0x568404[_0x1369('0x91')]['id']){delete _0x568404[_0x1369('0x91')]['id'];}return db['CmContact'][_0x1369('0x2e')]({'where':{'id':_0x568404[_0x1369('0xb5')]['id']}})[_0x1369('0x22')](handleEntityNotFound(_0x49b4a5,null))[_0x1369('0x22')](function(_0xad69d6){if(_0xad69d6){return _0xad69d6[_0x1369('0xc5')](_0x568404[_0x1369('0x91')][_0x1369('0xc6')]||[]);}return null;})[_0x1369('0x22')](respondWithResult(_0x49b4a5,null))['catch'](handleError(_0x49b4a5,null));};exports[_0x1369('0xc7')]=function(_0x3386f3,_0x339ce6,_0x2712e8){var _0x423562={'raw':![],'where':{}};var _0xf11ab0={};var _0x328883={'count':0x0,'rows':[]};return db[_0x1369('0x81')][_0x1369('0x2e')]({'where':{'id':_0x3386f3[_0x1369('0xb5')]['id']}})['then'](handleEntityNotFound(_0x339ce6,null))[_0x1369('0x22')](function(_0x58479d){if(_0x58479d){_0xf11ab0[_0x1369('0x32')]=_['keys'](db[_0x1369('0x98')][_0x1369('0xc8')]);_0xf11ab0[_0x1369('0x33')]=_[_0x1369('0x29')](_0x3386f3[_0x1369('0x33')]);_0xf11ab0['filters']=_[_0x1369('0x35')](_0xf11ab0[_0x1369('0x32')],_0xf11ab0['query']);_0x423562[_0x1369('0x36')]=_[_0x1369('0x35')](_0xf11ab0[_0x1369('0x32')],qs[_0x1369('0x37')](_0x3386f3[_0x1369('0x33')][_0x1369('0x37')]));_0x423562[_0x1369('0x36')]=_0x423562[_0x1369('0x36')][_0x1369('0x2a')]?_0x423562[_0x1369('0x36')]:_0xf11ab0[_0x1369('0x32')];if(!_0x3386f3[_0x1369('0x33')][_0x1369('0x59')]('nolimit')){_0x423562['limit']=qs['limit'](_0x3386f3[_0x1369('0x33')][_0x1369('0x1d')]);_0x423562[_0x1369('0x1b')]=qs[_0x1369('0x1b')](_0x3386f3[_0x1369('0x33')][_0x1369('0x1b')]);}_0x423562['order']=qs['sort'](_0x3386f3[_0x1369('0x33')][_0x1369('0x38')]);_0x423562[_0x1369('0x39')]=qs[_0x1369('0x34')](_[_0x1369('0xc1')](_0x3386f3[_0x1369('0x33')],_0xf11ab0[_0x1369('0x34')]));_0x423562['where'][_0x1369('0xc9')]=_0x58479d['id'];if(_0x3386f3[_0x1369('0x33')][_0x1369('0x63')]){_0x423562[_0x1369('0x39')]=_[_0x1369('0x80')](_0x423562[_0x1369('0x39')],{'$or':_[_0x1369('0x4d')](_0x423562[_0x1369('0x36')],function(_0x2f0043){var _0x259c22={};_0x259c22[_0x2f0043]={'$like':'%'+_0x3386f3[_0x1369('0x33')][_0x1369('0x63')]+'%'};return _0x259c22;})});}_0x423562=_[_0x1369('0x80')]({},_0x423562,_0x3386f3[_0x1369('0xc2')]);return db[_0x1369('0x98')]['count']({'where':_0x423562[_0x1369('0x39')]})[_0x1369('0x22')](function(_0x32f070){_0x328883[_0x1369('0x1e')]=_0x32f070;if(_0x3386f3[_0x1369('0x33')][_0x1369('0xca')]){_0x423562[_0x1369('0xcb')]=[{'all':!![]}];}return db[_0x1369('0x98')][_0x1369('0x8f')](_0x423562);})[_0x1369('0x22')](function(_0x176c88){_0x328883[_0x1369('0x8a')]=_0x176c88;return _0x328883;});}})['then'](respondWithFilteredResult(_0x339ce6,_0x423562))['catch'](handleError(_0x339ce6,null));};exports[_0x1369('0xcc')]=function(_0x4ed8c0,_0x4f57cb,_0x879ad9){var _0x4df0b0={'raw':!![],'where':{}};var _0x3e3836={};var _0x5f4fdb={'count':0x0,'rows':[]};return db[_0x1369('0x81')][_0x1369('0x2e')]({'where':{'id':_0x4ed8c0[_0x1369('0xb5')]['id']}})[_0x1369('0x22')](handleEntityNotFound(_0x4f57cb,null))[_0x1369('0x22')](function(_0x5b39ec){if(_0x5b39ec){_0x3e3836['model']=_[_0x1369('0x29')](db[_0x1369('0xa7')][_0x1369('0xc8')]);_0x3e3836[_0x1369('0x33')]=_['keys'](_0x4ed8c0[_0x1369('0x33')]);_0x3e3836[_0x1369('0x34')]=_[_0x1369('0x35')](_0x3e3836[_0x1369('0x32')],_0x3e3836[_0x1369('0x33')]);_0x4df0b0[_0x1369('0x36')]=_[_0x1369('0x35')](_0x3e3836[_0x1369('0x32')],qs[_0x1369('0x37')](_0x4ed8c0[_0x1369('0x33')][_0x1369('0x37')]));_0x4df0b0[_0x1369('0x36')]=_0x4df0b0['attributes'][_0x1369('0x2a')]?_0x4df0b0[_0x1369('0x36')]:_0x3e3836[_0x1369('0x32')];if(!_0x4ed8c0[_0x1369('0x33')][_0x1369('0x59')](_0x1369('0xc4'))){_0x4df0b0['limit']=qs[_0x1369('0x1d')](_0x4ed8c0['query'][_0x1369('0x1d')]);_0x4df0b0['offset']=qs[_0x1369('0x1b')](_0x4ed8c0['query'][_0x1369('0x1b')]);}_0x4df0b0[_0x1369('0x73')]=qs['sort'](_0x4ed8c0[_0x1369('0x33')][_0x1369('0x38')]);_0x4df0b0[_0x1369('0x39')]=qs[_0x1369('0x34')](_[_0x1369('0xc1')](_0x4ed8c0[_0x1369('0x33')],_0x3e3836[_0x1369('0x34')]));_0x4df0b0[_0x1369('0x39')][_0x1369('0xc9')]=_0x5b39ec['id'];if(_0x4ed8c0[_0x1369('0x33')][_0x1369('0x63')]){_0x4df0b0['where']=_['merge'](_0x4df0b0[_0x1369('0x39')],{'$or':_['map'](_0x4df0b0[_0x1369('0x36')],function(_0x178951){var _0x2e21e8={};_0x2e21e8[_0x178951]={'$like':'%'+_0x4ed8c0[_0x1369('0x33')][_0x1369('0x63')]+'%'};return _0x2e21e8;})});}_0x4df0b0=_[_0x1369('0x80')]({},_0x4df0b0,_0x4ed8c0[_0x1369('0xc2')]);return db[_0x1369('0xa7')][_0x1369('0x1e')]({'where':_0x4df0b0[_0x1369('0x39')]})[_0x1369('0x22')](function(_0x11d952){_0x5f4fdb['count']=_0x11d952;if(_0x4ed8c0['query'][_0x1369('0xca')]){_0x4df0b0['include']=[{'all':!![]}];}return db['CmHopperHistory'][_0x1369('0x8f')](_0x4df0b0);})[_0x1369('0x22')](function(_0x8ba67){_0x5f4fdb[_0x1369('0x8a')]=_0x8ba67;return _0x5f4fdb;});}})[_0x1369('0x22')](respondWithFilteredResult(_0x4f57cb,_0x4df0b0))['catch'](handleError(_0x4f57cb,null));};exports['getHopperFinals']=function(_0x2c05c3,_0x1a3790,_0x285a9e){var _0x21b991={'raw':!![],'where':{}};var _0x24e784={};var _0x476f03={'count':0x0,'rows':[]};return db[_0x1369('0x81')][_0x1369('0x2e')]({'where':{'id':_0x2c05c3[_0x1369('0xb5')]['id']}})[_0x1369('0x22')](handleEntityNotFound(_0x1a3790,null))[_0x1369('0x22')](function(_0x3b98ab){if(_0x3b98ab){_0x24e784[_0x1369('0x32')]=_['keys'](db[_0x1369('0xa6')]['rawAttributes']);_0x24e784[_0x1369('0x33')]=_[_0x1369('0x29')](_0x2c05c3[_0x1369('0x33')]);_0x24e784[_0x1369('0x34')]=_['intersection'](_0x24e784[_0x1369('0x32')],_0x24e784[_0x1369('0x33')]);_0x21b991[_0x1369('0x36')]=_[_0x1369('0x35')](_0x24e784[_0x1369('0x32')],qs['fields'](_0x2c05c3[_0x1369('0x33')][_0x1369('0x37')]));_0x21b991[_0x1369('0x36')]=_0x21b991['attributes'][_0x1369('0x2a')]?_0x21b991['attributes']:_0x24e784[_0x1369('0x32')];if(!_0x2c05c3[_0x1369('0x33')]['hasOwnProperty'](_0x1369('0xc4'))){_0x21b991['limit']=qs[_0x1369('0x1d')](_0x2c05c3[_0x1369('0x33')]['limit']);_0x21b991[_0x1369('0x1b')]=qs[_0x1369('0x1b')](_0x2c05c3[_0x1369('0x33')][_0x1369('0x1b')]);}_0x21b991[_0x1369('0x73')]=qs[_0x1369('0x38')](_0x2c05c3[_0x1369('0x33')][_0x1369('0x38')]);_0x21b991[_0x1369('0x39')]=qs[_0x1369('0x34')](_[_0x1369('0xc1')](_0x2c05c3[_0x1369('0x33')],_0x24e784['filters']));_0x21b991[_0x1369('0x39')][_0x1369('0xc9')]=_0x3b98ab['id'];if(_0x2c05c3[_0x1369('0x33')][_0x1369('0x63')]){_0x21b991[_0x1369('0x39')]=_[_0x1369('0x80')](_0x21b991[_0x1369('0x39')],{'$or':_[_0x1369('0x4d')](_0x21b991[_0x1369('0x36')],function(_0x1d3eaf){var _0x2e943b={};_0x2e943b[_0x1d3eaf]={'$like':'%'+_0x2c05c3[_0x1369('0x33')][_0x1369('0x63')]+'%'};return _0x2e943b;})});}_0x21b991=_[_0x1369('0x80')]({},_0x21b991,_0x2c05c3[_0x1369('0xc2')]);return db['CmHopperFinal'][_0x1369('0x1e')]({'where':_0x21b991[_0x1369('0x39')]})[_0x1369('0x22')](function(_0x3bcae0){_0x476f03[_0x1369('0x1e')]=_0x3bcae0;if(_0x2c05c3[_0x1369('0x33')][_0x1369('0xca')]){_0x21b991[_0x1369('0xcb')]=[{'all':!![]}];}return db['CmHopperFinal'][_0x1369('0x8f')](_0x21b991);})[_0x1369('0x22')](function(_0x37403b){_0x476f03[_0x1369('0x8a')]=_0x37403b;return _0x476f03;});}})[_0x1369('0x22')](respondWithFilteredResult(_0x1a3790,_0x21b991))[_0x1369('0x8b')](handleError(_0x1a3790,null));};exports[_0x1369('0xcd')]=function(_0x224dc2,_0x3a973a,_0x5838cf){var _0x4ab376={'raw':!![],'where':{}};var _0x3ba9bd={};var _0x2e4289={'count':0x0,'rows':[]};return db['CmContact'][_0x1369('0x2e')]({'where':{'id':_0x224dc2['params']['id']}})[_0x1369('0x22')](handleEntityNotFound(_0x3a973a,null))[_0x1369('0x22')](function(_0x40c454){if(_0x40c454){_0x3ba9bd[_0x1369('0x32')]=_[_0x1369('0x29')](db[_0x1369('0xad')][_0x1369('0xc8')]);_0x3ba9bd['query']=_[_0x1369('0x29')](_0x224dc2[_0x1369('0x33')]);_0x3ba9bd[_0x1369('0x34')]=_[_0x1369('0x35')](_0x3ba9bd[_0x1369('0x32')],_0x3ba9bd['query']);_0x4ab376[_0x1369('0x36')]=_[_0x1369('0x35')](_0x3ba9bd[_0x1369('0x32')],qs[_0x1369('0x37')](_0x224dc2[_0x1369('0x33')][_0x1369('0x37')]));_0x4ab376[_0x1369('0x36')]=_0x4ab376['attributes']['length']?_0x4ab376[_0x1369('0x36')]:_0x3ba9bd[_0x1369('0x32')];if(!_0x224dc2[_0x1369('0x33')][_0x1369('0x59')](_0x1369('0xc4'))){_0x4ab376['limit']=qs[_0x1369('0x1d')](_0x224dc2[_0x1369('0x33')][_0x1369('0x1d')]);_0x4ab376[_0x1369('0x1b')]=qs[_0x1369('0x1b')](_0x224dc2[_0x1369('0x33')][_0x1369('0x1b')]);}_0x4ab376['order']=qs[_0x1369('0x38')](_0x224dc2[_0x1369('0x33')][_0x1369('0x38')]);_0x4ab376['where']=qs[_0x1369('0x34')](_[_0x1369('0xc1')](_0x224dc2[_0x1369('0x33')],_0x3ba9bd['filters']));_0x4ab376[_0x1369('0x39')]['ContactId']=_0x40c454['id'];if(_0x224dc2['query'][_0x1369('0x63')]){_0x4ab376[_0x1369('0x39')]=_[_0x1369('0x80')](_0x4ab376[_0x1369('0x39')],{'$or':_['map'](_0x4ab376[_0x1369('0x36')],function(_0xbcdf02){var _0x118969={};_0x118969[_0xbcdf02]={'$like':'%'+_0x224dc2[_0x1369('0x33')][_0x1369('0x63')]+'%'};return _0x118969;})});}_0x4ab376=_[_0x1369('0x80')]({},_0x4ab376,_0x224dc2[_0x1369('0xc2')]);return db[_0x1369('0xad')][_0x1369('0x1e')]({'where':_0x4ab376[_0x1369('0x39')]})[_0x1369('0x22')](function(_0x3d405c){_0x2e4289[_0x1369('0x1e')]=_0x3d405c;if(_0x224dc2[_0x1369('0x33')][_0x1369('0xca')]){_0x4ab376[_0x1369('0xcb')]=[{'all':!![]}];}return db['JscriptySessionReport'][_0x1369('0x8f')](_0x4ab376);})[_0x1369('0x22')](function(_0x464c67){_0x2e4289[_0x1369('0x8a')]=_0x464c67;return _0x2e4289;});}})[_0x1369('0x22')](respondWithFilteredResult(_0x3a973a,_0x4ab376))[_0x1369('0x8b')](handleError(_0x3a973a,null));};exports['uploadCsv']=function(_0x2c141b,_0x36b5b4,_0x51a0b5){try{if(!_0x2c141b['body'][_0x1369('0x5c')]){throw new Error('No\x20ListId\x20specified');}if(!_0x2c141b[_0x1369('0x91')][_0x1369('0xce')]){throw new Error(_0x1369('0xcf'));}if(!_0x2c141b['body']['binding_values']){throw new Error(_0x1369('0xd0'));}if(!_0x2c141b[_0x1369('0x91')][_0x1369('0xd1')]){throw new Error(_0x1369('0xd2'));}var _0x4dd94f=_0x2c141b[_0x1369('0x91')][_0x1369('0xce')][_0x1369('0x4c')](',');var _0x49e3be=_0x2c141b['body'][_0x1369('0xd3')][_0x1369('0x4c')](',');if(!_0x4dd94f[_0x1369('0x2a')]||!_0x49e3be['length']||_0x4dd94f[_0x1369('0x2a')]!==_0x49e3be[_0x1369('0x2a')]){throw new Error('Incorrect\x20binding\x20parameters\x20passed!');}_0x2c141b['body'][_0x1369('0x37')]=_['zipObject'](_0x4dd94f,_0x49e3be);if(!_0x2c141b[_0x1369('0x91')][_0x1369('0x37')][_0x1369('0xc0')]){throw new Error(_0x1369('0xd4'));}if(!_0x2c141b['body'][_0x1369('0x37')]['firstName']){throw new Error(_0x1369('0xd5'));}var _0x13e61b=path[_0x1369('0x95')](config[_0x1369('0xd6')],_0x1369('0xd7'),_0x2c141b[_0x1369('0xd8')][_0x1369('0xd9')]);fs['chmodSync'](_0x13e61b,parseInt(_0x1369('0xda'),0x8));var _0x23266a=require(_0x1369('0xdb'))[_0x1369('0xdc')](path[_0x1369('0x95')](__dirname,'../../components/import/cm/csv'),[_0x13e61b,_0x2c141b[_0x1369('0x91')][_0x1369('0xce')],_0x2c141b[_0x1369('0x91')]['binding_values'],_0x2c141b['body'][_0x1369('0x5c')],_0x2c141b[_0x1369('0x91')][_0x1369('0xdd')],_0x2c141b[_0x1369('0x91')][_0x1369('0xb1')],_0x2c141b[_0x1369('0x91')][_0x1369('0xd1')]]);return _0x36b5b4['status'](0xc8)['json']({'message':'File\x20uploaded\x20correctly!','pid':_0x23266a[_0x1369('0xde')]});}catch(_0x4c09bc){return _0x36b5b4[_0x1369('0x19')](0x1f4)[_0x1369('0xdf')](_0x4c09bc);}};exports[_0x1369('0xe0')]=function(_0x1f1b49,_0x52a3ab,_0x9b510f){var _0x1b76aa=fs['createReadStream'](_0x1f1b49[_0x1369('0xd8')]['path']);Papa['parse'](_0x1b76aa,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x385a6c){return _0x52a3ab[_0x1369('0x19')](0xc8)['json']({'file':_0x1f1b49['file'],'fields':_0x385a6c[_0x1369('0xe1')][_0x1369('0x37')]});}});};exports[_0x1369('0xe2')]=function(_0x431cfb,_0x38ec70,_0x5ec6c5){return db[_0x1369('0x50')][_0x1369('0x8f')]({'raw':!![],'attributes':['id'],'where':{'role':_0x1369('0x78')}})[_0x1369('0x22')](function(_0x11a62e){var _0x2e3a7e=![];if(!_0x431cfb[_0x1369('0x91')][_0x1369('0x5c')]){throw new Error(_0x1369('0xe3'));}if(!_0x431cfb[_0x1369('0x91')][_0x1369('0xe4')][_0x1369('0xc0')]){throw new Error(_0x1369('0xd4'));}if(!_0x431cfb[_0x1369('0x91')][_0x1369('0xe4')][_0x1369('0xe5')]){throw new Error('No\x20firstName\x20column\x20specified');}if(!_0x431cfb['body']['socket_timestamp']){throw new Error(_0x1369('0xd2'));}var _0x311831=require('child_process')[_0x1369('0xdc')](path[_0x1369('0x95')](__dirname,_0x1369('0xe6')),[_0x431cfb[_0x1369('0xb5')]['id'],JSON[_0x1369('0xe7')](_0x431cfb[_0x1369('0x91')]),JSON[_0x1369('0xe7')](_0x11a62e)]);_0x311831['on'](_0x1369('0xe8'),function(_0xd39b5c){_0x2e3a7e=!![];return _0x38ec70['status'](0xc8)['json']({'message':_0x1369('0xe9'),'pid':_0x311831[_0x1369('0xde')]});});_0x311831['on']('exit',function(_0x108219){if(_0x108219&&!_0x2e3a7e){return _0x38ec70[_0x1369('0x19')](0x1f4)[_0x1369('0x1a')]({'message':_0x1369('0xea'),'pid':_0x311831[_0x1369('0xde')]});}});})[_0x1369('0x8b')](handleError(_0x38ec70,null));};exports[_0x1369('0xeb')]=function(_0x513122,_0x27cfde){var _0x15492a=['mail',_0x1369('0xec'),_0x1369('0xed'),'openchannel',_0x1369('0xee'),'whatsapp',_0x1369('0xef')];var _0x14f037={'offset':0x0,'order':qs[_0x1369('0x38')](_0x1369('0xf0'))},_0x34302a={'count':0x0,'rows':[]};Promise['resolve']()[_0x1369('0x22')](function(){if(_0x513122['query'][_0x1369('0xf1')]){if(!_[_0x1369('0xf2')](_0x15492a,_0x513122[_0x1369('0x33')][_0x1369('0xf1')][_0x1369('0xf3')]())){throw new Error(_0x1369('0xf4'));}_0x15492a=[_0x513122[_0x1369('0x33')][_0x1369('0xf1')]['toLowerCase']()];}if(_0x513122['query'][_0x1369('0xf5')]){try{var _0xed7db5=JSON[_0x1369('0xf6')](_0x513122[_0x1369('0x33')][_0x1369('0xf5')]);if(!moment(_0xed7db5[_0x1369('0x3f')])[_0x1369('0xf7')]()){throw new Error(_0x1369('0xf8'));}if(!moment(_0xed7db5['to'])[_0x1369('0xf7')]()){throw new Error(_0x1369('0xf9'));}}catch(_0x546262){throw new Error(_0x1369('0xfa'));}}if(!_0x513122[_0x1369('0x33')]['hasOwnProperty'](_0x1369('0xc4'))){_0x14f037[_0x1369('0x1d')]=qs['limit'](_0x513122['query']['limit']||0xa);_0x14f037[_0x1369('0x1b')]=qs[_0x1369('0x1b')](_0x513122[_0x1369('0x33')][_0x1369('0x1b')]);}var _0x526f34=_0x15492a[_0x1369('0x4d')](function(_0x1067f8){if(_0x1067f8===_0x1369('0xef')){var _0x3fd453={'attributes':['id',_0x1369('0xfb'),_0x1369('0x31'),'source',_0x1369('0xfc'),_0x1369('0xfd'),_0x1369('0xfe'),_0x1369('0xff'),_0x1369('0x100'),_0x1369('0x101'),_0x1369('0x102'),_0x1369('0x103'),_0x1369('0x104'),_0x1369('0x105'),_0x1369('0x106')],'where':{'ContactId':_0x513122['params']['id']},'include':[{'model':db['User'],'as':'User','attributes':['id',_0x1369('0x3c'),_0x1369('0x107'),'alias']}],'order':[[_0x1369('0x102'),_0x1369('0x74')]]};if(_0x513122[_0x1369('0x33')][_0x1369('0xf5')]){_0x3fd453[_0x1369('0x39')]['createdAt']={'$gte':_0xed7db5[_0x1369('0x3f')],'$lte':_0xed7db5['to']};}return db[_0x1369('0xa9')][_0x1369('0x108')](_0x3fd453)[_0x1369('0x22')](function(_0x10a6b9){_0x34302a['count']+=_0x10a6b9[_0x1369('0x1e')];return _['map'](_0x10a6b9[_0x1369('0x8a')],function(_0xaba465){var _0x3c2674=_0xaba465[_0x1369('0x92')]({'plain':!![]});_0x3c2674['channel']=_0x1067f8;if(_0x3c2674[_0x1369('0x50')]){_0x3c2674[_0x1369('0x50')]={'id':_0x3c2674['User']['id'],'name':_0x3c2674[_0x1369('0x50')][_0x1369('0x3c')],'fullname':_0x3c2674[_0x1369('0x50')][_0x1369('0x107')],'alias':_0x3c2674[_0x1369('0x50')][_0x1369('0x109')]};}return _0x3c2674;});});}else{var _0x2f768a=_[_0x1369('0x10a')](_0x1067f8)+(_0x1067f8==='chat'?_0x1369('0x10b'):_0x1369('0x10c'));var _0x4864af={'attributes':['id','closed',_0x1369('0x10d'),_0x1369('0x102'),_0x1369('0x101'),_0x1369('0x10e'),'secondDisposition',_0x1369('0x10f'),_0x1369('0x106'),_0x2f768a+'Id'],'where':{'ContactId':_0x513122['params']['id']},'include':[{'model':db[_0x2f768a],'as':_0x1369('0x10c'),'attributes':['id',_0x1369('0x3c'),'key']},{'model':db[_0x1369('0x50')],'as':_0x1369('0x110'),'attributes':['id',_0x1369('0x3c'),_0x1369('0x107')]},{'model':db[_0x1369('0x4a')],'as':_0x1369('0x89'),'attributes':['id',_0x1369('0x3c'),'color'],'through':{'attributes':[]}}],'order':[[_0x1369('0x102'),'DESC']]};if(_0x513122[_0x1369('0x33')][_0x1369('0xf5')]){_0x4864af['where'][_0x1369('0x102')]={'$gte':_0xed7db5[_0x1369('0x3f')],'$lte':_0xed7db5['to']};}switch(_0x1067f8){case _0x1369('0xec'):_0x4864af[_0x1369('0x36')][_0x1369('0x2d')](_0x1369('0x111'),_0x1369('0x112'),_0x1369('0x113'),_0x1369('0x114'),_0x1369('0x115'),_0x1369('0x116'),_0x1369('0x117'),_0x1369('0x118'),'referer');break;case'mail':_0x4864af['attributes']['push'](_0x1369('0x119'),_0x1369('0x11a'));break;case _0x1369('0x11b'):_0x4864af[_0x1369('0x36')][_0x1369('0x2d')]('externalUrl',_0x1369('0x11c'));break;}return db[_[_0x1369('0x10a')](_0x1067f8)+_0x1369('0x11d')][_0x1369('0x108')](_0x4864af)[_0x1369('0x22')](function(_0x985f6c){_0x34302a['count']+=_0x985f6c[_0x1369('0x1e')];return _[_0x1369('0x4d')](_0x985f6c[_0x1369('0x8a')],function(_0x57bc76){var _0xdbf148=_0x57bc76['get']({'plain':!![]});_0xdbf148[_0x1369('0xf1')]=_0x1067f8;if(_0xdbf148[_0x1369('0x110')]){_0xdbf148[_0x1369('0x110')]={'id':_0xdbf148[_0x1369('0x110')]['id'],'name':_0xdbf148[_0x1369('0x110')][_0x1369('0x3c')],'fullname':_0xdbf148['Owner'][_0x1369('0x107')]};}return _0xdbf148;});});}});return Promise['all'](_0x526f34);})[_0x1369('0x22')](function(_0x312679){return _(_0x312679)[_0x1369('0x11e')]()[_0x1369('0x11f')](_0x1369('0x102'))[_0x1369('0x120')]()[_0x1369('0x4b')]();})[_0x1369('0x22')](function(_0x48f5f6){_0x34302a[_0x1369('0x8a')]=_0x14f037[_0x1369('0x1d')]?_0x48f5f6['slice'](_0x14f037['offset'],_0x14f037['offset']+_0x14f037[_0x1369('0x1d')]):_0x48f5f6;return _0x34302a;})[_0x1369('0x22')](respondWithFilteredResult(_0x27cfde,_0x14f037))[_0x1369('0x8b')](handleError(_0x27cfde,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdda3=['hasOwnProperty','exports','events','../../mysqldb','CmContact','setMaxListeners','save','update','remove','emit'];(function(_0x59f413,_0x4ac153){var _0x3d6aac=function(_0x23c591){while(--_0x23c591){_0x59f413['push'](_0x59f413['shift']());}};_0x3d6aac(++_0x4ac153);}(_0xdda3,0x19c));var _0x3dda=function(_0x553a87,_0x1d621f){_0x553a87=_0x553a87-0x0;var _0x12d1e6=_0xdda3[_0x553a87];return _0x12d1e6;};'use strict';var EventEmitter=require(_0x3dda('0x0'));var CmContact=require(_0x3dda('0x1'))['db'][_0x3dda('0x2')];var CmContactEvents=new EventEmitter();CmContactEvents[_0x3dda('0x3')](0x0);var events={'afterCreate':_0x3dda('0x4'),'afterUpdate':_0x3dda('0x5'),'afterDestroy':_0x3dda('0x6')};function emitEvent(_0x4b998a){return function(_0x4d52a4,_0x58e7c8,_0x52c62d){CmContactEvents[_0x3dda('0x7')](_0x4b998a+':'+_0x4d52a4['id'],_0x4d52a4);CmContactEvents['emit'](_0x4b998a,_0x4d52a4);_0x52c62d(null);};}for(var e in events){if(events[_0x3dda('0x8')](e)){var event=events[e];CmContact['hook'](e,emitEvent(event));}}module[_0x3dda('0x9')]=CmContactEvents;
\ No newline at end of file
+var _0x6ac4=['emit','hook','CmContact','setMaxListeners','update','remove'];(function(_0x15e6fe,_0x1a5c39){var _0x34894d=function(_0x32eec2){while(--_0x32eec2){_0x15e6fe['push'](_0x15e6fe['shift']());}};_0x34894d(++_0x1a5c39);}(_0x6ac4,0x11c));var _0x46ac=function(_0x1e890f,_0x50d225){_0x1e890f=_0x1e890f-0x0;var _0x479e79=_0x6ac4[_0x1e890f];return _0x479e79;};'use strict';var EventEmitter=require('events');var CmContact=require('../../mysqldb')['db'][_0x46ac('0x0')];var CmContactEvents=new EventEmitter();CmContactEvents[_0x46ac('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0x46ac('0x2'),'afterDestroy':_0x46ac('0x3')};function emitEvent(_0x22b5ee){return function(_0x7a804b,_0xf66328,_0xff8c7b){CmContactEvents[_0x46ac('0x4')](_0x22b5ee+':'+_0x7a804b['id'],_0x7a804b);CmContactEvents[_0x46ac('0x4')](_0x22b5ee,_0x7a804b);_0xff8c7b(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];CmContact[_0x46ac('0x5')](e,emitEvent(event));}}module['exports']=CmContactEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x71a1=['destroy','ContactId','VoiceQueueId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','path','rimraf','exports','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','lastName','fax','email','FULLTEXT','utf8mb4','utf8mb4_unicode_ci','get','error','cmContact','afterCreate','inspect','CmHopper','findOne','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','priority','scheduledat','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','cmContact,\x20afterCreate,\x20','format','catch','\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','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','outbound','dialCheckDuplicateType','CmList','Lists','onlyIfOpen','BlackLists','length','CmHopperBlack','cmContact,\x20%s,\x20%s','Campaign','findAll','always','message','models','isEmpty'];(function(_0x1339c0,_0x5cf576){var _0x59023a=function(_0x1d247e){while(--_0x1d247e){_0x1339c0['push'](_0x1339c0['shift']());}};_0x59023a(++_0x5cf576);}(_0x71a1,0x1eb));var _0x171a=function(_0x30a700,_0xbc2352){_0x30a700=_0x30a700-0x0;var _0x4a2a48=_0x71a1[_0x30a700];return _0x4a2a48;};'use strict';var _=require(_0x171a('0x0'));var util=require(_0x171a('0x1'));var logger=require(_0x171a('0x2'))(_0x171a('0x3'));var moment=require(_0x171a('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x171a('0x5'));var rimraf=require(_0x171a('0x6'));var config=require('../../config/environment');var attributes=require('./cmContact.attributes');module[_0x171a('0x7')]=function(_0x2c4147,_0x490e36){return _0x2c4147[_0x171a('0x8')](_0x171a('0x9'),attributes,{'tableName':_0x171a('0xa'),'paranoid':!![],'indexes':[{'name':_0x171a('0xb'),'fields':[_0x171a('0xb')]},{'name':_0x171a('0xc'),'fields':[_0x171a('0xd'),_0x171a('0xe'),'phone','mobile',_0x171a('0xf'),_0x171a('0x10')],'type':_0x171a('0x11')}],'timestamps':!![],'charset':_0x171a('0x12'),'collate':_0x171a('0x13'),'hooks':{'afterCreate':function(_0x32dd5d,_0x2f4027,_0x59997a){var _0x2775e3=_0x2c4147['models'];var _0x26f64b=_0x32dd5d[_0x171a('0x14')]({'plain':!![]});function _0x4a9064(){return function(_0x5c8a00){logger[_0x171a('0x15')](_0x171a('0x16'),_0x171a('0x17'),util[_0x171a('0x18')](_0x5c8a00,{'showHidden':![],'depth':null}));};}var _0x7df1e5=function(_0x42c1d3){return new BPromise(function(_0x3c737f,_0x209c7f){_0x2775e3[_0x171a('0x19')][_0x171a('0x1a')]({'where':{'phone':_0x26f64b[_0x171a('0xb')],'VoiceQueueId':_0x42c1d3['id']}})[_0x171a('0x1b')](function(_0x42320d){if(!_[_0x171a('0x1c')](_0x42320d)){throw new Error(_0x171a('0x1d')+_0x26f64b[_0x171a('0xb')]+_0x171a('0x1e')+_0x42c1d3['id']);}return _0x2775e3[_0x171a('0x19')][_0x171a('0x1f')]({'phone':_0x26f64b[_0x171a('0xb')],'ContactId':_0x26f64b['id'],'ListId':_0x26f64b[_0x171a('0x20')],'priority':_0x26f64b['priority']?_0x26f64b[_0x171a('0x21')]:0x2,'scheduledat':_0x26f64b[_0x171a('0x22')]?_0x26f64b[_0x171a('0x22')]:moment()['format'](_0x171a('0x23')),'callback':_0x26f64b[_0x171a('0x24')]?!![]:![],'callbackuniqueid':_0x26f64b[_0x171a('0x24')]?_0x26f64b[_0x171a('0x24')]:undefined,'callbackat':_0x26f64b[_0x171a('0x24')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x42c1d3['id']});})['catch'](function(_0x9714bf){_0x209c7f(_0x9714bf);});});};var _0x1a1627=function(_0x2b5e97){return new BPromise(function(_0x468ccb,_0x4fe162){_0x2775e3[_0x171a('0x19')][_0x171a('0x1a')]({'where':{'phone':_0x26f64b[_0x171a('0xb')],'VoiceQueueId':_0x2b5e97['id']}})['then'](function(_0x4ca4ad){if(!_[_0x171a('0x1c')](_0x4ca4ad)){throw new Error(_0x171a('0x1d')+_0x26f64b['phone']+_0x171a('0x25')+_0x2b5e97['id']);}return _0x2775e3['CmHopperFinal'][_0x171a('0x1a')]({'where':{'calleridnum':_0x26f64b[_0x171a('0xb')],'VoiceQueueId':_0x2b5e97['id']}});})['then'](function(_0x15b6ce){if(!_[_0x171a('0x1c')](_0x15b6ce)){throw new Error(_0x171a('0x26')+_0x26f64b[_0x171a('0xb')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0x2b5e97['id']);}return _0x2775e3['CmHopper'][_0x171a('0x1f')]({'phone':_0x26f64b[_0x171a('0xb')],'ContactId':_0x26f64b['id'],'ListId':_0x26f64b['ListId'],'priority':_0x26f64b[_0x171a('0x21')]?_0x26f64b[_0x171a('0x21')]:0x2,'scheduledat':_0x26f64b[_0x171a('0x22')]?_0x26f64b[_0x171a('0x22')]:moment()['format'](_0x171a('0x23')),'callback':_0x26f64b[_0x171a('0x24')]?!![]:![],'callbackuniqueid':_0x26f64b[_0x171a('0x24')]?_0x26f64b[_0x171a('0x24')]:undefined,'callbackat':_0x26f64b[_0x171a('0x24')]?moment()[_0x171a('0x27')](_0x171a('0x23')):undefined,'VoiceQueueId':_0x2b5e97['id']});})[_0x171a('0x28')](function(_0x5e3718){_0x4fe162(_0x5e3718);});});};function _0x48161f(){return function(_0x588acb){logger['error'](_0x171a('0x16'),'afterCreate',util['inspect'](_0x588acb,{'showHidden':![],'depth':null}));};}var _0x4298b8=function(_0x5547ec){return new BPromise(function(_0x1d025c,_0x3d03a6){_0x2775e3[_0x171a('0x19')][_0x171a('0x1a')]({'where':{'phone':_0x26f64b[_0x171a('0xb')],'CampaignId':_0x5547ec['id']}})[_0x171a('0x1b')](function(_0x33c68b){if(!_[_0x171a('0x1c')](_0x33c68b)){throw new Error(_0x171a('0x1d')+_0x26f64b[_0x171a('0xb')]+_0x171a('0x29')+_0x5547ec['id']);}return _0x2775e3[_0x171a('0x19')]['create']({'phone':_0x26f64b[_0x171a('0xb')],'ContactId':_0x26f64b['id'],'ListId':_0x26f64b[_0x171a('0x20')],'priority':_0x26f64b[_0x171a('0x21')]?_0x26f64b['priority']:0x2,'scheduledat':_0x26f64b['scheduledat']?_0x26f64b[_0x171a('0x22')]:moment()['format'](_0x171a('0x23')),'callback':_0x26f64b[_0x171a('0x24')]?!![]:![],'callbackuniqueid':_0x26f64b[_0x171a('0x24')]?_0x26f64b['callbackUniqueid']:undefined,'callbackat':_0x26f64b[_0x171a('0x24')]?moment()['format'](_0x171a('0x23')):undefined,'CampaignId':_0x5547ec['id']});})['catch'](function(_0x35852b){_0x3d03a6(_0x35852b);});});};var _0x4de305=function(_0x212cff){return new BPromise(function(_0x5223b9,_0x94210c){_0x2775e3[_0x171a('0x19')][_0x171a('0x1a')]({'where':{'phone':_0x26f64b['phone'],'CampaignId':_0x212cff['id']}})[_0x171a('0x1b')](function(_0x265c81){if(!_[_0x171a('0x1c')](_0x265c81)){throw new Error('cmContact,\x20afterCreate\x20'+_0x26f64b[_0x171a('0xb')]+_0x171a('0x2a')+_0x212cff['id']);}return _0x2775e3[_0x171a('0x2b')][_0x171a('0x1a')]({'where':{'calleridnum':_0x26f64b[_0x171a('0xb')],'CampaignId':_0x212cff['id']}});})['then'](function(_0x2aeed0){if(!_['isNil'](_0x2aeed0)){throw new Error(_0x171a('0x26')+_0x26f64b[_0x171a('0xb')]+_0x171a('0x2c')+_0x212cff['id']);}return _0x2775e3['CmHopper']['create']({'phone':_0x26f64b['phone'],'ContactId':_0x26f64b['id'],'ListId':_0x26f64b['ListId'],'priority':_0x26f64b[_0x171a('0x21')]?_0x26f64b[_0x171a('0x21')]:0x2,'scheduledat':_0x26f64b[_0x171a('0x22')]?_0x26f64b[_0x171a('0x22')]:moment()[_0x171a('0x27')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x26f64b[_0x171a('0x24')]?!![]:![],'callbackuniqueid':_0x26f64b[_0x171a('0x24')]?_0x26f64b[_0x171a('0x24')]:undefined,'callbackat':_0x26f64b['callbackUniqueid']?moment()[_0x171a('0x27')](_0x171a('0x23')):undefined,'CampaignId':_0x212cff['id']});})[_0x171a('0x28')](function(_0x28cf3f){_0x94210c(_0x28cf3f);});});};if(_0x26f64b['ListId']){_0x2775e3[_0x171a('0x2d')]['findAll']({'where':{'type':_0x171a('0x2e')},'attributes':['id',_0x171a('0x2f')],'include':[{'model':_0x2775e3[_0x171a('0x30')],'as':_0x171a('0x31'),'where':{'id':_0x26f64b[_0x171a('0x20')]}}]})[_0x171a('0x1b')](function(_0x2e5726){if(_0x2e5726){var _0x2cec7a=[];for(var _0x1fef70=0x0,_0x36d828;_0x1fef70<_0x2e5726['length'];_0x1fef70+=0x1){_0x36d828=_0x2e5726[_0x1fef70][_0x171a('0x14')]({'plain':!![]});switch(_0x36d828[_0x171a('0x2f')]){case'always':_0x1a1627(_0x36d828)[_0x171a('0x28')](_0x4a9064());break;case _0x171a('0x32'):_0x7df1e5(_0x36d828)[_0x171a('0x28')](_0x4a9064());break;default:_0x2775e3[_0x171a('0x19')]['create']({'phone':_0x26f64b['phone'],'ContactId':_0x26f64b['id'],'ListId':_0x26f64b[_0x171a('0x20')],'scheduledat':_0x26f64b['scheduledat']?_0x26f64b[_0x171a('0x22')]:moment()['format'](_0x171a('0x23')),'priority':_0x26f64b[_0x171a('0x21')]?_0x26f64b[_0x171a('0x21')]:0x2,'callback':_0x26f64b[_0x171a('0x24')]?!![]:![],'callbackuniqueid':_0x26f64b[_0x171a('0x24')]?_0x26f64b[_0x171a('0x24')]:undefined,'callbackat':_0x26f64b[_0x171a('0x24')]?moment()[_0x171a('0x27')](_0x171a('0x23')):undefined,'VoiceQueueId':_0x36d828['id']})[_0x171a('0x28')](_0x4a9064());}}}})['then'](function(){return _0x2775e3[_0x171a('0x2d')]['findAll']({'where':{'type':_0x171a('0x2e')},'attributes':['id'],'include':[{'model':_0x2775e3['CmList'],'as':_0x171a('0x33'),'where':{'id':_0x26f64b[_0x171a('0x20')]}}]})[_0x171a('0x1b')](function(_0x113201){if(_0x113201){var _0x189a80=[];for(var _0x312380=0x0,_0x3fca04;_0x312380<_0x113201[_0x171a('0x34')];_0x312380+=0x1){_0x3fca04=_0x113201[_0x312380][_0x171a('0x14')]({'plain':!![]});_0x2775e3[_0x171a('0x35')][_0x171a('0x1f')]({'phone':_0x26f64b[_0x171a('0xb')],'ContactId':_0x26f64b['id'],'ListId':_0x26f64b[_0x171a('0x20')],'VoiceQueueId':_0x3fca04['id']})[_0x171a('0x28')](function(_0x7f0f33){logger[_0x171a('0x15')](_0x171a('0x36'),_0x171a('0x17'),_0x7f0f33['message']);});}}});})[_0x171a('0x1b')](function(){return _0x2775e3[_0x171a('0x37')][_0x171a('0x38')]({'attributes':['id',_0x171a('0x2f')],'include':[{'model':_0x2775e3['CmList'],'as':_0x171a('0x31'),'where':{'id':_0x26f64b[_0x171a('0x20')]}}]})[_0x171a('0x1b')](function(_0x436277){if(_0x436277){var _0x1c5782=[];for(var _0x1dc986=0x0,_0x1b79db;_0x1dc986<_0x436277[_0x171a('0x34')];_0x1dc986+=0x1){_0x1b79db=_0x436277[_0x1dc986][_0x171a('0x14')]({'plain':!![]});switch(_0x1b79db[_0x171a('0x2f')]){case _0x171a('0x39'):_0x4de305(_0x1b79db)[_0x171a('0x28')](_0x48161f());break;case _0x171a('0x32'):_0x4298b8(_0x1b79db)[_0x171a('0x28')](_0x48161f());break;default:_0x2775e3[_0x171a('0x19')][_0x171a('0x1f')]({'phone':_0x26f64b['phone'],'ContactId':_0x26f64b['id'],'ListId':_0x26f64b[_0x171a('0x20')],'scheduledat':_0x26f64b[_0x171a('0x22')]?_0x26f64b[_0x171a('0x22')]:moment()[_0x171a('0x27')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x26f64b[_0x171a('0x21')]?_0x26f64b[_0x171a('0x21')]:0x2,'callback':_0x26f64b[_0x171a('0x24')]?!![]:![],'callbackuniqueid':_0x26f64b[_0x171a('0x24')]?_0x26f64b[_0x171a('0x24')]:undefined,'callbackat':_0x26f64b[_0x171a('0x24')]?moment()[_0x171a('0x27')](_0x171a('0x23')):undefined,'CampaignId':_0x1b79db['id']})['catch'](_0x48161f());}}}});})[_0x171a('0x1b')](function(){return _0x2775e3['Campaign'][_0x171a('0x38')]({'attributes':['id'],'include':[{'model':_0x2775e3[_0x171a('0x30')],'as':_0x171a('0x33'),'where':{'id':_0x26f64b[_0x171a('0x20')]}}]})[_0x171a('0x1b')](function(_0xf2b095){if(_0xf2b095){var _0x22565b=[];for(var _0x1f5e1f=0x0,_0x14cc82;_0x1f5e1f<_0xf2b095[_0x171a('0x34')];_0x1f5e1f+=0x1){_0x14cc82=_0xf2b095[_0x1f5e1f][_0x171a('0x14')]({'plain':!![]});_0x2775e3['CmHopperBlack']['create']({'phone':_0x26f64b[_0x171a('0xb')],'ContactId':_0x26f64b['id'],'ListId':_0x26f64b[_0x171a('0x20')],'CampaignId':_0x14cc82['id']})[_0x171a('0x28')](function(_0x693906){logger[_0x171a('0x15')](_0x171a('0x36'),_0x171a('0x17'),_0x693906[_0x171a('0x3a')]);});}}});})[_0x171a('0x1b')](function(){_0x59997a();})[_0x171a('0x28')](function(_0x19dea3){logger[_0x171a('0x15')](_0x171a('0x36'),'afterCreate',_0x19dea3[_0x171a('0x3a')]);_0x59997a(_0x19dea3);});}else{_0x59997a(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x2268b6,_0x11037e,_0x161050){var _0x5242b9=_0x2c4147[_0x171a('0x3b')];var _0x259450=_0x2268b6['get']({'plain':!![]});return _0x5242b9[_0x171a('0x19')][_0x171a('0x38')]({'raw':!![],'where':{'ListId':_0x259450[_0x171a('0x20')],'ContactId':_0x259450['id']}})[_0x171a('0x1b')](function(_0x3738dc){if(!_[_0x171a('0x3c')](_0x3738dc)){var _0x2d1c09=[];for(var _0x214cfc=0x0;_0x214cfc<_0x3738dc[_0x171a('0x34')];_0x214cfc+=0x1){var _0x22cbda=_0x5242b9['CmHopper'][_0x171a('0x3d')]({'where':{'ListId':_0x3738dc[_0x214cfc][_0x171a('0x20')],'ContactId':_0x3738dc[_0x214cfc][_0x171a('0x3e')],'VoiceQueueId':_0x3738dc[_0x214cfc][_0x171a('0x3f')],'CampaignId':_0x3738dc[_0x214cfc]['CampaignId']}});_0x2d1c09[_0x171a('0x40')](_0x22cbda);}return BPromise[_0x171a('0x41')](_0x2d1c09);}})[_0x171a('0x1b')](function(_0xd0a40c){logger[_0x171a('0x42')](_0x171a('0x43'),util[_0x171a('0x18')](_0xd0a40c,{'showHidden':![],'depth':null}));_0x161050();})[_0x171a('0x28')](function(_0x2a935f){logger[_0x171a('0x15')](_0x171a('0x44'),util[_0x171a('0x18')](_0x2a935f,{'showHidden':![],'depth':null}));_0x161050(_0x2a935f);});}}});};
\ No newline at end of file
+var _0x0cef=['cmContact','findOne','\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','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','findAll','dialCheckDuplicateType','CmList','Lists','length','always','onlyIfOpen','BlackLists','get','CmHopperBlack','cmContact,\x20%s,\x20%s','Campaign','message','List\x20not\x20found','destroy','ContactId','VoiceQueueId','push','info','[CmContact][afterDestroy][Succesfull]','lodash','../../config/logger','api','moment','bluebird','request-promise','path','./cmContact.attributes','exports','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','lastName','mobile','fax','email','FULLTEXT','utf8mb4','models','error','afterCreate','inspect','CmHopper','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','then','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','ListId'];(function(_0x1c5ffb,_0xf65383){var _0x1aa85f=function(_0x539527){while(--_0x539527){_0x1c5ffb['push'](_0x1c5ffb['shift']());}};_0x1aa85f(++_0xf65383);}(_0x0cef,0xe0));var _0xf0ce=function(_0x12b449,_0x2b8a36){_0x12b449=_0x12b449-0x0;var _0x4e3784=_0x0cef[_0x12b449];return _0x4e3784;};'use strict';var _=require(_0xf0ce('0x0'));var util=require('util');var logger=require(_0xf0ce('0x1'))(_0xf0ce('0x2'));var moment=require(_0xf0ce('0x3'));var BPromise=require(_0xf0ce('0x4'));var rp=require(_0xf0ce('0x5'));var fs=require('fs');var path=require(_0xf0ce('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xf0ce('0x7'));module[_0xf0ce('0x8')]=function(_0x16ca6f,_0x2483e5){return _0x16ca6f['define'](_0xf0ce('0x9'),attributes,{'tableName':_0xf0ce('0xa'),'paranoid':!![],'indexes':[{'name':'phone','fields':[_0xf0ce('0xb')]},{'name':_0xf0ce('0xc'),'fields':[_0xf0ce('0xd'),_0xf0ce('0xe'),_0xf0ce('0xb'),_0xf0ce('0xf'),_0xf0ce('0x10'),_0xf0ce('0x11')],'type':_0xf0ce('0x12')}],'timestamps':!![],'charset':_0xf0ce('0x13'),'collate':'utf8mb4_unicode_ci','hooks':{'afterCreate':function(_0x1ffc90,_0x24b2dc,_0x327934){var _0x29990c=_0x16ca6f[_0xf0ce('0x14')];var _0x532186=_0x1ffc90['get']({'plain':!![]});function _0x1a5a6a(){return function(_0x430181){logger[_0xf0ce('0x15')]('cmContact',_0xf0ce('0x16'),util[_0xf0ce('0x17')](_0x430181,{'showHidden':![],'depth':null}));};}var _0x544c55=function(_0x130661){return new BPromise(function(_0x263898,_0x3ac895){_0x29990c[_0xf0ce('0x18')]['findOne']({'where':{'phone':_0x532186[_0xf0ce('0xb')],'VoiceQueueId':_0x130661['id']}})['then'](function(_0x502fee){if(!_[_0xf0ce('0x19')](_0x502fee)){throw new Error(_0xf0ce('0x1a')+_0x532186['phone']+_0xf0ce('0x1b')+_0x130661['id']);}return _0x29990c[_0xf0ce('0x18')][_0xf0ce('0x1c')]({'phone':_0x532186[_0xf0ce('0xb')],'ContactId':_0x532186['id'],'ListId':_0x532186['ListId'],'priority':_0x532186['priority']?_0x532186[_0xf0ce('0x1d')]:0x2,'scheduledat':_0x532186[_0xf0ce('0x1e')]?_0x532186['scheduledat']:moment()[_0xf0ce('0x1f')](_0xf0ce('0x20')),'callback':_0x532186['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x532186['callbackUniqueid']?_0x532186[_0xf0ce('0x21')]:undefined,'callbackat':_0x532186[_0xf0ce('0x21')]?moment()[_0xf0ce('0x1f')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x130661['id']});})[_0xf0ce('0x22')](function(_0x18900a){_0x3ac895(_0x18900a);});});};var _0x594015=function(_0x419999){return new BPromise(function(_0x126177,_0x4ba0f1){_0x29990c[_0xf0ce('0x18')]['findOne']({'where':{'phone':_0x532186[_0xf0ce('0xb')],'VoiceQueueId':_0x419999['id']}})[_0xf0ce('0x23')](function(_0x43d03a){if(!_['isNil'](_0x43d03a)){throw new Error(_0xf0ce('0x1a')+_0x532186[_0xf0ce('0xb')]+_0xf0ce('0x24')+_0x419999['id']);}return _0x29990c[_0xf0ce('0x25')]['findOne']({'where':{'calleridnum':_0x532186[_0xf0ce('0xb')],'VoiceQueueId':_0x419999['id']}});})['then'](function(_0x4812ad){if(!_[_0xf0ce('0x19')](_0x4812ad)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x532186[_0xf0ce('0xb')]+_0xf0ce('0x26')+_0x419999['id']);}return _0x29990c['CmHopper'][_0xf0ce('0x1c')]({'phone':_0x532186[_0xf0ce('0xb')],'ContactId':_0x532186['id'],'ListId':_0x532186[_0xf0ce('0x27')],'priority':_0x532186[_0xf0ce('0x1d')]?_0x532186[_0xf0ce('0x1d')]:0x2,'scheduledat':_0x532186[_0xf0ce('0x1e')]?_0x532186[_0xf0ce('0x1e')]:moment()[_0xf0ce('0x1f')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x532186[_0xf0ce('0x21')]?!![]:![],'callbackuniqueid':_0x532186[_0xf0ce('0x21')]?_0x532186['callbackUniqueid']:undefined,'callbackat':_0x532186['callbackUniqueid']?moment()[_0xf0ce('0x1f')](_0xf0ce('0x20')):undefined,'VoiceQueueId':_0x419999['id']});})[_0xf0ce('0x22')](function(_0x307875){_0x4ba0f1(_0x307875);});});};function _0x308603(){return function(_0x4e1cde){logger[_0xf0ce('0x15')](_0xf0ce('0x28'),_0xf0ce('0x16'),util['inspect'](_0x4e1cde,{'showHidden':![],'depth':null}));};}var _0x3ee0cf=function(_0x459f8c){return new BPromise(function(_0x2a5493,_0x4b338f){_0x29990c[_0xf0ce('0x18')][_0xf0ce('0x29')]({'where':{'phone':_0x532186[_0xf0ce('0xb')],'CampaignId':_0x459f8c['id']}})[_0xf0ce('0x23')](function(_0x40defe){if(!_['isNil'](_0x40defe)){throw new Error(_0xf0ce('0x1a')+_0x532186[_0xf0ce('0xb')]+_0xf0ce('0x2a')+_0x459f8c['id']);}return _0x29990c[_0xf0ce('0x18')][_0xf0ce('0x1c')]({'phone':_0x532186['phone'],'ContactId':_0x532186['id'],'ListId':_0x532186[_0xf0ce('0x27')],'priority':_0x532186[_0xf0ce('0x1d')]?_0x532186[_0xf0ce('0x1d')]:0x2,'scheduledat':_0x532186[_0xf0ce('0x1e')]?_0x532186[_0xf0ce('0x1e')]:moment()[_0xf0ce('0x1f')](_0xf0ce('0x20')),'callback':_0x532186['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x532186['callbackUniqueid']?_0x532186['callbackUniqueid']:undefined,'callbackat':_0x532186[_0xf0ce('0x21')]?moment()['format'](_0xf0ce('0x20')):undefined,'CampaignId':_0x459f8c['id']});})[_0xf0ce('0x22')](function(_0x9bb2f7){_0x4b338f(_0x9bb2f7);});});};var _0x2d12a6=function(_0x55ada1){return new BPromise(function(_0x43b8d0,_0x46fe10){_0x29990c[_0xf0ce('0x18')][_0xf0ce('0x29')]({'where':{'phone':_0x532186[_0xf0ce('0xb')],'CampaignId':_0x55ada1['id']}})[_0xf0ce('0x23')](function(_0x26ae80){if(!_[_0xf0ce('0x19')](_0x26ae80)){throw new Error(_0xf0ce('0x1a')+_0x532186['phone']+_0xf0ce('0x2b')+_0x55ada1['id']);}return _0x29990c[_0xf0ce('0x25')][_0xf0ce('0x29')]({'where':{'calleridnum':_0x532186[_0xf0ce('0xb')],'CampaignId':_0x55ada1['id']}});})[_0xf0ce('0x23')](function(_0x48dab1){if(!_[_0xf0ce('0x19')](_0x48dab1)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x532186[_0xf0ce('0xb')]+_0xf0ce('0x2c')+_0x55ada1['id']);}return _0x29990c[_0xf0ce('0x18')][_0xf0ce('0x1c')]({'phone':_0x532186[_0xf0ce('0xb')],'ContactId':_0x532186['id'],'ListId':_0x532186[_0xf0ce('0x27')],'priority':_0x532186[_0xf0ce('0x1d')]?_0x532186[_0xf0ce('0x1d')]:0x2,'scheduledat':_0x532186[_0xf0ce('0x1e')]?_0x532186[_0xf0ce('0x1e')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x532186[_0xf0ce('0x21')]?!![]:![],'callbackuniqueid':_0x532186['callbackUniqueid']?_0x532186[_0xf0ce('0x21')]:undefined,'callbackat':_0x532186[_0xf0ce('0x21')]?moment()[_0xf0ce('0x1f')](_0xf0ce('0x20')):undefined,'CampaignId':_0x55ada1['id']});})[_0xf0ce('0x22')](function(_0x5f360f){_0x46fe10(_0x5f360f);});});};if(_0x532186[_0xf0ce('0x27')]){_0x29990c[_0xf0ce('0x2d')][_0xf0ce('0x2e')]({'where':{'type':'outbound'},'attributes':['id',_0xf0ce('0x2f')],'include':[{'model':_0x29990c[_0xf0ce('0x30')],'as':_0xf0ce('0x31'),'where':{'id':_0x532186[_0xf0ce('0x27')]}}]})['then'](function(_0x3609e0){if(_0x3609e0){var _0x561b04=[];for(var _0x25830e=0x0,_0x129465;_0x25830e<_0x3609e0[_0xf0ce('0x32')];_0x25830e+=0x1){_0x129465=_0x3609e0[_0x25830e]['get']({'plain':!![]});switch(_0x129465[_0xf0ce('0x2f')]){case _0xf0ce('0x33'):_0x594015(_0x129465)[_0xf0ce('0x22')](_0x1a5a6a());break;case _0xf0ce('0x34'):_0x544c55(_0x129465)[_0xf0ce('0x22')](_0x1a5a6a());break;default:_0x29990c[_0xf0ce('0x18')][_0xf0ce('0x1c')]({'phone':_0x532186[_0xf0ce('0xb')],'ContactId':_0x532186['id'],'ListId':_0x532186[_0xf0ce('0x27')],'scheduledat':_0x532186[_0xf0ce('0x1e')]?_0x532186[_0xf0ce('0x1e')]:moment()[_0xf0ce('0x1f')](_0xf0ce('0x20')),'priority':_0x532186['priority']?_0x532186[_0xf0ce('0x1d')]:0x2,'callback':_0x532186[_0xf0ce('0x21')]?!![]:![],'callbackuniqueid':_0x532186[_0xf0ce('0x21')]?_0x532186['callbackUniqueid']:undefined,'callbackat':_0x532186[_0xf0ce('0x21')]?moment()[_0xf0ce('0x1f')](_0xf0ce('0x20')):undefined,'VoiceQueueId':_0x129465['id']})[_0xf0ce('0x22')](_0x1a5a6a());}}}})['then'](function(){return _0x29990c[_0xf0ce('0x2d')][_0xf0ce('0x2e')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':_0x29990c['CmList'],'as':_0xf0ce('0x35'),'where':{'id':_0x532186[_0xf0ce('0x27')]}}]})['then'](function(_0x4e0cf4){if(_0x4e0cf4){var _0x2b16e9=[];for(var _0x23f84a=0x0,_0x56c7b7;_0x23f84a<_0x4e0cf4['length'];_0x23f84a+=0x1){_0x56c7b7=_0x4e0cf4[_0x23f84a][_0xf0ce('0x36')]({'plain':!![]});_0x29990c[_0xf0ce('0x37')][_0xf0ce('0x1c')]({'phone':_0x532186['phone'],'ContactId':_0x532186['id'],'ListId':_0x532186[_0xf0ce('0x27')],'VoiceQueueId':_0x56c7b7['id']})['catch'](function(_0x1a1738){logger['error'](_0xf0ce('0x38'),'afterCreate',_0x1a1738['message']);});}}});})['then'](function(){return _0x29990c['Campaign'][_0xf0ce('0x2e')]({'attributes':['id',_0xf0ce('0x2f')],'include':[{'model':_0x29990c['CmList'],'as':_0xf0ce('0x31'),'where':{'id':_0x532186[_0xf0ce('0x27')]}}]})['then'](function(_0xe8db64){if(_0xe8db64){var _0x1f497c=[];for(var _0x23020c=0x0,_0x229a55;_0x23020c<_0xe8db64[_0xf0ce('0x32')];_0x23020c+=0x1){_0x229a55=_0xe8db64[_0x23020c][_0xf0ce('0x36')]({'plain':!![]});switch(_0x229a55[_0xf0ce('0x2f')]){case _0xf0ce('0x33'):_0x2d12a6(_0x229a55)[_0xf0ce('0x22')](_0x308603());break;case _0xf0ce('0x34'):_0x3ee0cf(_0x229a55)[_0xf0ce('0x22')](_0x308603());break;default:_0x29990c[_0xf0ce('0x18')]['create']({'phone':_0x532186[_0xf0ce('0xb')],'ContactId':_0x532186['id'],'ListId':_0x532186['ListId'],'scheduledat':_0x532186['scheduledat']?_0x532186[_0xf0ce('0x1e')]:moment()['format'](_0xf0ce('0x20')),'priority':_0x532186[_0xf0ce('0x1d')]?_0x532186['priority']:0x2,'callback':_0x532186['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x532186[_0xf0ce('0x21')]?_0x532186[_0xf0ce('0x21')]:undefined,'callbackat':_0x532186[_0xf0ce('0x21')]?moment()[_0xf0ce('0x1f')](_0xf0ce('0x20')):undefined,'CampaignId':_0x229a55['id']})['catch'](_0x308603());}}}});})[_0xf0ce('0x23')](function(){return _0x29990c[_0xf0ce('0x39')][_0xf0ce('0x2e')]({'attributes':['id'],'include':[{'model':_0x29990c[_0xf0ce('0x30')],'as':_0xf0ce('0x35'),'where':{'id':_0x532186['ListId']}}]})[_0xf0ce('0x23')](function(_0xc00518){if(_0xc00518){var _0x24628d=[];for(var _0x482206=0x0,_0x40d395;_0x482206<_0xc00518['length'];_0x482206+=0x1){_0x40d395=_0xc00518[_0x482206][_0xf0ce('0x36')]({'plain':!![]});_0x29990c['CmHopperBlack']['create']({'phone':_0x532186[_0xf0ce('0xb')],'ContactId':_0x532186['id'],'ListId':_0x532186[_0xf0ce('0x27')],'CampaignId':_0x40d395['id']})[_0xf0ce('0x22')](function(_0x344931){logger[_0xf0ce('0x15')](_0xf0ce('0x38'),_0xf0ce('0x16'),_0x344931[_0xf0ce('0x3a')]);});}}});})['then'](function(){_0x327934();})[_0xf0ce('0x22')](function(_0x2f442f){logger[_0xf0ce('0x15')](_0xf0ce('0x38'),'afterCreate',_0x2f442f[_0xf0ce('0x3a')]);_0x327934(_0x2f442f);});}else{_0x327934(new Error(_0xf0ce('0x3b')));}},'afterDestroy':function(_0x23bd9f,_0x3c8b13,_0x4927ba){var _0x46f3a0=_0x16ca6f[_0xf0ce('0x14')];var _0x4b1b53=_0x23bd9f[_0xf0ce('0x36')]({'plain':!![]});return _0x46f3a0[_0xf0ce('0x18')][_0xf0ce('0x2e')]({'raw':!![],'where':{'ListId':_0x4b1b53['ListId'],'ContactId':_0x4b1b53['id']}})[_0xf0ce('0x23')](function(_0x1369a1){if(!_['isEmpty'](_0x1369a1)){var _0x9d9c45=[];for(var _0x37e1ac=0x0;_0x37e1ac<_0x1369a1[_0xf0ce('0x32')];_0x37e1ac+=0x1){var _0x5000f6=_0x46f3a0[_0xf0ce('0x18')][_0xf0ce('0x3c')]({'where':{'ListId':_0x1369a1[_0x37e1ac]['ListId'],'ContactId':_0x1369a1[_0x37e1ac][_0xf0ce('0x3d')],'VoiceQueueId':_0x1369a1[_0x37e1ac][_0xf0ce('0x3e')],'CampaignId':_0x1369a1[_0x37e1ac]['CampaignId']}});_0x9d9c45[_0xf0ce('0x3f')](_0x5000f6);}return BPromise['all'](_0x9d9c45);}})['then'](function(_0x9e1efc){logger[_0xf0ce('0x40')](_0xf0ce('0x41'),util[_0xf0ce('0x17')](_0x9e1efc,{'showHidden':![],'depth':null}));_0x4927ba();})[_0xf0ce('0x22')](function(_0x40dbe4){logger[_0xf0ce('0x15')]('[CmContact][afterDestroy][Error]',util[_0xf0ce('0x17')](_0x40dbe4,{'showHidden':![],'depth':null}));_0x4927ba(_0x40dbe4);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3604=['CreateCmContact','util','moment','bluebird','randomstring','ioredis','squel','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','defaults','redis','./cmContact.socket','request','info','CmContact,\x20%s,\x20%s','request\x20sent','CmContact,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','CmContact','options','where','attributes','limit','map','include','model','then','GetCmContact','debug','catch','create','raw','body','length','keys','cf_','update','table','cm_contacts','id\x20=\x20?','toString','query'];(function(_0x249e96,_0x3ea39d){var _0x17444c=function(_0x1221d0){while(--_0x1221d0){_0x249e96['push'](_0x249e96['shift']());}};_0x17444c(++_0x3ea39d);}(_0x3604,0x191));var _0x4360=function(_0x24061a,_0x1c9f4d){_0x24061a=_0x24061a-0x0;var _0x82054e=_0x3604[_0x24061a];return _0x82054e;};'use strict';var _=require('lodash');var util=require(_0x4360('0x0'));var moment=require(_0x4360('0x1'));var BPromise=require(_0x4360('0x2'));var rs=require(_0x4360('0x3'));var fs=require('fs');var Redis=require(_0x4360('0x4'));var squel=require(_0x4360('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x4360('0x6'));var logger=require(_0x4360('0x7'))(_0x4360('0x8'));var config=require('../../config/environment');var jayson=require(_0x4360('0x9'));var client=jayson[_0x4360('0xa')][_0x4360('0xb')]({'port':0x232a});config['redis']=_[_0x4360('0xc')](config[_0x4360('0xd')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4360('0xd')]));require(_0x4360('0xe'))['register'](socket);function respondWithRpcPromise(_0x5c34d0,_0x2e40d2,_0x2fce06){return new BPromise(function(_0x139bff,_0x3b4669){return client[_0x4360('0xf')](_0x5c34d0,_0x2fce06)['then'](function(_0x4f1e28){logger[_0x4360('0x10')](_0x4360('0x11'),_0x2e40d2,_0x4360('0x12'));logger['debug'](_0x4360('0x13'),_0x2e40d2,_0x4360('0x12'),JSON[_0x4360('0x14')](_0x4f1e28));if(_0x4f1e28[_0x4360('0x15')]){if(_0x4f1e28[_0x4360('0x15')][_0x4360('0x16')]===0x1f4){logger[_0x4360('0x15')](_0x4360('0x11'),_0x2e40d2,_0x4f1e28[_0x4360('0x15')][_0x4360('0x17')]);return _0x3b4669(_0x4f1e28[_0x4360('0x15')][_0x4360('0x17')]);}logger[_0x4360('0x15')]('CmContact,\x20%s,\x20%s',_0x2e40d2,_0x4f1e28['error']['message']);return _0x139bff(_0x4f1e28[_0x4360('0x15')][_0x4360('0x17')]);}else{logger[_0x4360('0x10')](_0x4360('0x11'),_0x2e40d2,_0x4360('0x12'));_0x139bff(_0x4f1e28[_0x4360('0x18')]['message']);}})['catch'](function(_0xfaf3d0){logger[_0x4360('0x15')](_0x4360('0x11'),_0x2e40d2,_0xfaf3d0);_0x3b4669(_0xfaf3d0);});});}exports['GetCmContact']=function(_0x50a1f2){var _0x4b9a69=this;return new Promise(function(_0x37e7e6,_0x418aac){return db[_0x4360('0x19')]['findAll']({'raw':_0x50a1f2[_0x4360('0x1a')]?_0x50a1f2[_0x4360('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x50a1f2[_0x4360('0x1a')]?_0x50a1f2[_0x4360('0x1a')][_0x4360('0x1b')]||null:null,'attributes':_0x50a1f2[_0x4360('0x1a')]?_0x50a1f2[_0x4360('0x1a')][_0x4360('0x1c')]||null:null,'limit':_0x50a1f2[_0x4360('0x1a')]?_0x50a1f2[_0x4360('0x1a')][_0x4360('0x1d')]||null:null,'include':_0x50a1f2[_0x4360('0x1a')]?_0x50a1f2['options']['include']?_[_0x4360('0x1e')](_0x50a1f2[_0x4360('0x1a')][_0x4360('0x1f')],function(_0x141bf7){return{'model':db[_0x141bf7[_0x4360('0x20')]],'as':_0x141bf7['as'],'attributes':_0x141bf7[_0x4360('0x1c')],'include':_0x141bf7[_0x4360('0x1f')]?_[_0x4360('0x1e')](_0x141bf7[_0x4360('0x1f')],function(_0x519757){return{'model':db[_0x519757[_0x4360('0x20')]],'as':_0x519757['as'],'attributes':_0x519757[_0x4360('0x1c')],'include':_0x519757[_0x4360('0x1f')]?_[_0x4360('0x1e')](_0x519757[_0x4360('0x1f')],function(_0x129fcf){return{'model':db[_0x129fcf[_0x4360('0x20')]],'as':_0x129fcf['as'],'attributes':_0x129fcf[_0x4360('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x4360('0x21')](function(_0xca3ee0){logger[_0x4360('0x10')](_0x4360('0x22'),_0x50a1f2);logger[_0x4360('0x23')](_0x4360('0x22'),_0x50a1f2,JSON[_0x4360('0x14')](_0xca3ee0));_0x37e7e6(_0xca3ee0);})[_0x4360('0x24')](function(_0x5eaf49){logger[_0x4360('0x15')](_0x4360('0x22'),_0x5eaf49[_0x4360('0x17')],_0x50a1f2);_0x418aac(_0x4b9a69[_0x4360('0x15')](0x1f4,_0x5eaf49['message']));});});};exports['CreateCmContact']=function(_0x469584){var _0x123b2d=this;return new Promise(function(_0xc08eb9,_0x238473){return db[_0x4360('0x19')][_0x4360('0x25')](_0x469584['body'],{'raw':_0x469584[_0x4360('0x1a')]?_0x469584[_0x4360('0x1a')][_0x4360('0x26')]===undefined?!![]:![]:!![]})[_0x4360('0x21')](function(_0x505b4d){var _0x17797f;for(var _0x4247e2=0x0;_0x4247e2<Object['keys'](_0x469584[_0x4360('0x27')])[_0x4360('0x28')];_0x4247e2++){var _0x2a5557=Object[_0x4360('0x29')](_0x469584[_0x4360('0x27')])[_0x4247e2];if(_0x2a5557['startsWith'](_0x4360('0x2a'))){_0x17797f=squel[_0x4360('0x2b')]()[_0x4360('0x2c')](_0x4360('0x2d'))['set'](_0x2a5557,_0x469584['body'][_0x2a5557])['where'](_0x4360('0x2e'),_0x505b4d['id'])[_0x4360('0x2f')]();break;}}if(!_0x17797f)return _0x505b4d;return db['sequelize'][_0x4360('0x30')](_0x17797f)[_0x4360('0x21')](function(){return _0x505b4d;});})['then'](function(_0x1fa270){logger[_0x4360('0x10')](_0x4360('0x31'),_0x469584);logger['debug'](_0x4360('0x31'),_0x469584,JSON[_0x4360('0x14')](_0x1fa270));_0xc08eb9(_0x1fa270);})[_0x4360('0x24')](function(_0x37911d){logger[_0x4360('0x15')](_0x4360('0x31'),_0x37911d[_0x4360('0x17')],_0x469584);_0x238473(_0x123b2d[_0x4360('0x15')](0x1f4,_0x37911d['message']));});});};
\ No newline at end of file
+var _0x1d12=['../../config/logger','../../config/environment','client','redis','localhost','socket.io-emitter','./cmContact.socket','then','info','request\x20sent','stringify','error','code','CmContact,\x20%s,\x20%s','message','catch','GetCmContact','CmContact','findAll','options','raw','where','attributes','include','map','model','debug','CreateCmContact','create','body','length','startsWith','cf_','update','table','id\x20=\x20?','toString','sequelize','lodash','moment','bluebird','randomstring','ioredis','squel','../../mysqldb','../../config/utils'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x1d12,0x82));var _0x21d1=function(_0x4f1d17,_0x245fb2){_0x4f1d17=_0x4f1d17-0x0;var _0x55783b=_0x1d12[_0x4f1d17];return _0x55783b;};'use strict';var _=require(_0x21d1('0x0'));var util=require('util');var moment=require(_0x21d1('0x1'));var BPromise=require(_0x21d1('0x2'));var rs=require(_0x21d1('0x3'));var fs=require('fs');var Redis=require(_0x21d1('0x4'));var squel=require(_0x21d1('0x5'));var db=require(_0x21d1('0x6'))['db'];var utils=require(_0x21d1('0x7'));var logger=require(_0x21d1('0x8'))('rpc');var config=require(_0x21d1('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x21d1('0xa')]['http']({'port':0x232a});config['redis']=_['defaults'](config[_0x21d1('0xb')],{'host':_0x21d1('0xc'),'port':0x18eb});var socket=require(_0x21d1('0xd'))(new Redis(config[_0x21d1('0xb')]));require(_0x21d1('0xe'))['register'](socket);function respondWithRpcPromise(_0x2c7ff1,_0x50653d,_0x329f3f){return new BPromise(function(_0x18eeb7,_0x21e240){return client['request'](_0x2c7ff1,_0x329f3f)[_0x21d1('0xf')](function(_0x32fade){logger[_0x21d1('0x10')]('CmContact,\x20%s,\x20%s',_0x50653d,'request\x20sent');logger['debug']('CmContact,\x20%s,\x20%s,\x20%s',_0x50653d,_0x21d1('0x11'),JSON[_0x21d1('0x12')](_0x32fade));if(_0x32fade[_0x21d1('0x13')]){if(_0x32fade[_0x21d1('0x13')][_0x21d1('0x14')]===0x1f4){logger['error']('CmContact,\x20%s,\x20%s',_0x50653d,_0x32fade['error']['message']);return _0x21e240(_0x32fade[_0x21d1('0x13')]['message']);}logger[_0x21d1('0x13')](_0x21d1('0x15'),_0x50653d,_0x32fade['error'][_0x21d1('0x16')]);return _0x18eeb7(_0x32fade[_0x21d1('0x13')]['message']);}else{logger[_0x21d1('0x10')](_0x21d1('0x15'),_0x50653d,_0x21d1('0x11'));_0x18eeb7(_0x32fade['result']['message']);}})[_0x21d1('0x17')](function(_0x3d81d2){logger[_0x21d1('0x13')](_0x21d1('0x15'),_0x50653d,_0x3d81d2);_0x21e240(_0x3d81d2);});});}exports[_0x21d1('0x18')]=function(_0x3989bb){var _0x38684f=this;return new Promise(function(_0x3ab05c,_0x5afefc){return db[_0x21d1('0x19')][_0x21d1('0x1a')]({'raw':_0x3989bb[_0x21d1('0x1b')]?_0x3989bb[_0x21d1('0x1b')][_0x21d1('0x1c')]===undefined?!![]:![]:!![],'where':_0x3989bb[_0x21d1('0x1b')]?_0x3989bb['options'][_0x21d1('0x1d')]||null:null,'attributes':_0x3989bb['options']?_0x3989bb['options'][_0x21d1('0x1e')]||null:null,'limit':_0x3989bb['options']?_0x3989bb[_0x21d1('0x1b')]['limit']||null:null,'include':_0x3989bb[_0x21d1('0x1b')]?_0x3989bb[_0x21d1('0x1b')][_0x21d1('0x1f')]?_[_0x21d1('0x20')](_0x3989bb[_0x21d1('0x1b')][_0x21d1('0x1f')],function(_0x54108a){return{'model':db[_0x54108a['model']],'as':_0x54108a['as'],'attributes':_0x54108a[_0x21d1('0x1e')],'include':_0x54108a['include']?_['map'](_0x54108a[_0x21d1('0x1f')],function(_0x54795b){return{'model':db[_0x54795b['model']],'as':_0x54795b['as'],'attributes':_0x54795b['attributes'],'include':_0x54795b[_0x21d1('0x1f')]?_['map'](_0x54795b[_0x21d1('0x1f')],function(_0x53b726){return{'model':db[_0x53b726[_0x21d1('0x21')]],'as':_0x53b726['as'],'attributes':_0x53b726['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x3557c2){logger['info'](_0x21d1('0x18'),_0x3989bb);logger[_0x21d1('0x22')](_0x21d1('0x18'),_0x3989bb,JSON[_0x21d1('0x12')](_0x3557c2));_0x3ab05c(_0x3557c2);})['catch'](function(_0xea0a32){logger['error'](_0x21d1('0x18'),_0xea0a32['message'],_0x3989bb);_0x5afefc(_0x38684f[_0x21d1('0x13')](0x1f4,_0xea0a32[_0x21d1('0x16')]));});});};exports[_0x21d1('0x23')]=function(_0x45f8b0){var _0x5cb492=this;return new Promise(function(_0x4c5ca6,_0x7294d){return db['CmContact'][_0x21d1('0x24')](_0x45f8b0[_0x21d1('0x25')],{'raw':_0x45f8b0[_0x21d1('0x1b')]?_0x45f8b0[_0x21d1('0x1b')][_0x21d1('0x1c')]===undefined?!![]:![]:!![]})[_0x21d1('0xf')](function(_0x597938){var _0x1b2bfc;for(var _0x1b45fa=0x0;_0x1b45fa<Object['keys'](_0x45f8b0[_0x21d1('0x25')])[_0x21d1('0x26')];_0x1b45fa++){var _0x38871f=Object['keys'](_0x45f8b0['body'])[_0x1b45fa];if(_0x38871f[_0x21d1('0x27')](_0x21d1('0x28'))){_0x1b2bfc=squel[_0x21d1('0x29')]()[_0x21d1('0x2a')]('cm_contacts')['set'](_0x38871f,_0x45f8b0['body'][_0x38871f])['where'](_0x21d1('0x2b'),_0x597938['id'])[_0x21d1('0x2c')]();break;}}if(!_0x1b2bfc)return _0x597938;return db[_0x21d1('0x2d')]['query'](_0x1b2bfc)[_0x21d1('0xf')](function(){return _0x597938;});})[_0x21d1('0xf')](function(_0x3fdde8){logger['info'](_0x21d1('0x23'),_0x45f8b0);logger[_0x21d1('0x22')]('CreateCmContact',_0x45f8b0,JSON[_0x21d1('0x12')](_0x3fdde8));_0x4c5ca6(_0x3fdde8);})[_0x21d1('0x17')](function(_0x251042){logger['error'](_0x21d1('0x23'),_0x251042[_0x21d1('0x16')],_0x45f8b0);_0x7294d(_0x5cb492['error'](0x1f4,_0x251042[_0x21d1('0x16')]));});});};
\ 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(_0x9aada2,_0xd2d349){_0x9aada2=_0x9aada2-0x0;var _0x196dff=_0xa9e0[_0x9aada2];return _0x196dff;};'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(_0x4bfac3,_0x58324d){_0x4bfac3=_0x4bfac3-0x0;var _0x15f0f2=_0xa9e0[_0x4bfac3];return _0x15f0f2;};'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 _0xcf1a=['show','/:id/tags','getTags','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','/:id/jscripty_sessions','getJourney','post','merge','create','setTags','diskStorage','join','root','server/files/tmp','originalname','replace','format','basename','extname','/csv','single','file','uploadCsv','%s-%s%s','now','/upload','/upload/:id','import','put','update','delete','/:id','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./cmContact.controller','get','isAuthenticated','index','describe'];(function(_0x2853c1,_0x215466){var _0x2a6d80=function(_0x153347){while(--_0x153347){_0x2853c1['push'](_0x2853c1['shift']());}};_0x2a6d80(++_0x215466);}(_0xcf1a,0xfb));var _0xacf1=function(_0x5e8602,_0x2ce012){_0x5e8602=_0x5e8602-0x0;var _0x4434fb=_0xcf1a[_0x5e8602];return _0x4434fb;};'use strict';var multer=require(_0xacf1('0x0'));var util=require(_0xacf1('0x1'));var path=require(_0xacf1('0x2'));var timeout=require(_0xacf1('0x3'));var express=require(_0xacf1('0x4'));var router=express[_0xacf1('0x5')]();var fs_extra=require(_0xacf1('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0xacf1('0x7'));var config=require(_0xacf1('0x8'));var controller=require(_0xacf1('0x9'));router[_0xacf1('0xa')]('/',auth[_0xacf1('0xb')](),controller[_0xacf1('0xc')]);router[_0xacf1('0xa')]('/describe',auth[_0xacf1('0xb')](),controller[_0xacf1('0xd')]);router['get']('/:id',auth[_0xacf1('0xb')](),controller[_0xacf1('0xe')]);router[_0xacf1('0xa')](_0xacf1('0xf'),auth[_0xacf1('0xb')](),controller[_0xacf1('0x10')]);router['get'](_0xacf1('0x11'),auth[_0xacf1('0xb')](),controller[_0xacf1('0x12')]);router[_0xacf1('0xa')](_0xacf1('0x13'),auth[_0xacf1('0xb')](),controller[_0xacf1('0x14')]);router[_0xacf1('0xa')](_0xacf1('0x15'),auth['isAuthenticated'](),controller[_0xacf1('0x16')]);router[_0xacf1('0xa')](_0xacf1('0x17'),auth['isAuthenticated'](),controller['getJscriptySessions']);router[_0xacf1('0xa')]('/:id/journey',auth[_0xacf1('0xb')](),controller[_0xacf1('0x18')]);router[_0xacf1('0x19')]('/merge',auth[_0xacf1('0xb')](),controller[_0xacf1('0x1a')]);router[_0xacf1('0x19')]('/',auth[_0xacf1('0xb')](),controller[_0xacf1('0x1b')]);router[_0xacf1('0x19')]('/create_many',auth[_0xacf1('0xb')](),controller['bulkCreate']);router[_0xacf1('0x19')](_0xacf1('0xf'),auth['isAuthenticated'](),controller[_0xacf1('0x1c')]);var upload=multer({'storage':multer[_0xacf1('0x1d')]({'destination':function(_0x407eb8,_0x5e7413,_0x3ce7f0){_0x3ce7f0(null,path[_0xacf1('0x1e')](config[_0xacf1('0x1f')],_0xacf1('0x20')));},'filename':function(_0x55a9c7,_0x38e391,_0x2ae8b1){_0x38e391[_0xacf1('0x21')]=_0x38e391[_0xacf1('0x21')][_0xacf1('0x22')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x2ae8b1(null,util[_0xacf1('0x23')]('%s-%s%s',path[_0xacf1('0x24')](_0x38e391['originalname'],path[_0xacf1('0x25')](_0x38e391['originalname'])),Date['now'](),path[_0xacf1('0x25')](_0x38e391[_0xacf1('0x21')])));}})});router[_0xacf1('0x19')](_0xacf1('0x26'),upload[_0xacf1('0x27')](_0xacf1('0x28')),controller[_0xacf1('0x29')]);var upload=multer({'storage':multer[_0xacf1('0x1d')]({'destination':function(_0xbb6d2f,_0x16c3a2,_0x4df884){_0x4df884(null,path[_0xacf1('0x1e')](config[_0xacf1('0x1f')],'server/files/tmp'));},'filename':function(_0x18d0fd,_0x2bfb3e,_0x1d1aa1){_0x2bfb3e[_0xacf1('0x21')]=_0x2bfb3e[_0xacf1('0x21')][_0xacf1('0x22')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x1d1aa1(null,util['format'](_0xacf1('0x2a'),path[_0xacf1('0x24')](_0x2bfb3e['originalname'],path[_0xacf1('0x25')](_0x2bfb3e[_0xacf1('0x21')])),Date[_0xacf1('0x2b')](),path['extname'](_0x2bfb3e[_0xacf1('0x21')])));}})});router[_0xacf1('0x19')](_0xacf1('0x2c'),upload[_0xacf1('0x27')]('file'),controller['upload']);router[_0xacf1('0x19')](_0xacf1('0x2d'),auth['isAuthenticated'](),controller[_0xacf1('0x2e')]);router[_0xacf1('0x2f')]('/:id',auth['isAuthenticated'](),controller[_0xacf1('0x30')]);router[_0xacf1('0x31')](_0xacf1('0x32'),auth['isAuthenticated'](),controller[_0xacf1('0x33')]);module[_0xacf1('0x34')]=router;
\ No newline at end of file
+var _0xf51b=['/:id/hoppers','getHoppers','/:id/hopper_histories','/:id/hopper_finals','getHopperFinals','/:id/jscripty_sessions','/:id/journey','post','/merge','create','/create_many','bulkCreate','/:id/tags','setTags','root','server/files/tmp','originalname','format','%s-%s%s','extname','now','/csv','single','uploadCsv','replace','basename','/upload','file','/upload/:id','import','update','delete','destroy','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmContact.controller','index','get','/describe','isAuthenticated','describe','/:id','show','getTags'];(function(_0x11dc39,_0x491115){var _0x457277=function(_0x1d77cd){while(--_0x1d77cd){_0x11dc39['push'](_0x11dc39['shift']());}};_0x457277(++_0x491115);}(_0xf51b,0xf2));var _0xbf51=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xf51b[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0xbf51('0x0'));var util=require('util');var path=require(_0xbf51('0x1'));var timeout=require(_0xbf51('0x2'));var express=require(_0xbf51('0x3'));var router=express[_0xbf51('0x4')]();var fs_extra=require(_0xbf51('0x5'));var auth=require(_0xbf51('0x6'));var interaction=require(_0xbf51('0x7'));var config=require(_0xbf51('0x8'));var controller=require(_0xbf51('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0xbf51('0xa')]);router[_0xbf51('0xb')](_0xbf51('0xc'),auth[_0xbf51('0xd')](),controller[_0xbf51('0xe')]);router[_0xbf51('0xb')](_0xbf51('0xf'),auth[_0xbf51('0xd')](),controller[_0xbf51('0x10')]);router[_0xbf51('0xb')]('/:id/tags',auth[_0xbf51('0xd')](),controller[_0xbf51('0x11')]);router[_0xbf51('0xb')](_0xbf51('0x12'),auth[_0xbf51('0xd')](),controller[_0xbf51('0x13')]);router[_0xbf51('0xb')](_0xbf51('0x14'),auth[_0xbf51('0xd')](),controller['getHopperHistories']);router[_0xbf51('0xb')](_0xbf51('0x15'),auth[_0xbf51('0xd')](),controller[_0xbf51('0x16')]);router['get'](_0xbf51('0x17'),auth[_0xbf51('0xd')](),controller['getJscriptySessions']);router[_0xbf51('0xb')](_0xbf51('0x18'),auth['isAuthenticated'](),controller['getJourney']);router[_0xbf51('0x19')](_0xbf51('0x1a'),auth[_0xbf51('0xd')](),controller['merge']);router[_0xbf51('0x19')]('/',auth[_0xbf51('0xd')](),controller[_0xbf51('0x1b')]);router[_0xbf51('0x19')](_0xbf51('0x1c'),auth[_0xbf51('0xd')](),controller[_0xbf51('0x1d')]);router[_0xbf51('0x19')](_0xbf51('0x1e'),auth[_0xbf51('0xd')](),controller[_0xbf51('0x1f')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x289436,_0x302b96,_0x584cd2){_0x584cd2(null,path['join'](config[_0xbf51('0x20')],_0xbf51('0x21')));},'filename':function(_0x5ada63,_0x5643e2,_0x5351d2){_0x5643e2[_0xbf51('0x22')]=_0x5643e2[_0xbf51('0x22')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x5351d2(null,util[_0xbf51('0x23')](_0xbf51('0x24'),path['basename'](_0x5643e2['originalname'],path[_0xbf51('0x25')](_0x5643e2[_0xbf51('0x22')])),Date[_0xbf51('0x26')](),path[_0xbf51('0x25')](_0x5643e2[_0xbf51('0x22')])));}})});router[_0xbf51('0x19')](_0xbf51('0x27'),upload[_0xbf51('0x28')]('file'),controller[_0xbf51('0x29')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x5d8053,_0x3dfb86,_0x4e2c44){_0x4e2c44(null,path['join'](config[_0xbf51('0x20')],_0xbf51('0x21')));},'filename':function(_0x4ed2fb,_0x4512f4,_0x3c79a1){_0x4512f4['originalname']=_0x4512f4[_0xbf51('0x22')][_0xbf51('0x2a')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x3c79a1(null,util[_0xbf51('0x23')](_0xbf51('0x24'),path[_0xbf51('0x2b')](_0x4512f4[_0xbf51('0x22')],path[_0xbf51('0x25')](_0x4512f4[_0xbf51('0x22')])),Date[_0xbf51('0x26')](),path[_0xbf51('0x25')](_0x4512f4[_0xbf51('0x22')])));}})});router[_0xbf51('0x19')](_0xbf51('0x2c'),upload[_0xbf51('0x28')](_0xbf51('0x2d')),controller['upload']);router['post'](_0xbf51('0x2e'),auth[_0xbf51('0xd')](),controller[_0xbf51('0x2f')]);router['put'](_0xbf51('0xf'),auth[_0xbf51('0xd')](),controller[_0xbf51('0x30')]);router[_0xbf51('0x31')](_0xbf51('0xf'),auth['isAuthenticated'](),controller[_0xbf51('0x32')]);module[_0xbf51('0x33')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8882=['exports','VIRTUAL','alias','STRING','getDataValue','name','TEXT','type','select','values','isArray','setDataValue','stringify','BOOLEAN','ENUM','voice','sequelize'];(function(_0xc2100d,_0x3c552c){var _0x4bce11=function(_0x522e2a){while(--_0x522e2a){_0xc2100d['push'](_0xc2100d['shift']());}};_0x4bce11(++_0x3c552c);}(_0x8882,0xa9));var _0x2888=function(_0x1f2ce7,_0x42a750){_0x1f2ce7=_0x1f2ce7-0x0;var _0x2a095b=_0x8882[_0x1f2ce7];return _0x2a095b;};'use strict';var Sequelize=require(_0x2888('0x0'));var _=require('lodash');module[_0x2888('0x1')]={'name':{'type':Sequelize[_0x2888('0x2')],'get':function(_0x36e981){return this['getDataValue'](_0x2888('0x3'));}},'alias':{'type':Sequelize[_0x2888('0x4')],'allowNull':![],'set':function(_0x4f39cc){this['setDataValue'](_0x2888('0x3'),_0x4f39cc?_0x4f39cc:this[_0x2888('0x5')](_0x2888('0x6')));}},'type':{'type':Sequelize[_0x2888('0x4')],'allowNull':![]},'values':{'type':Sequelize[_0x2888('0x7')]('long'),'get':function(){if(this['getDataValue'](_0x2888('0x8'))===_0x2888('0x9')){return JSON['parse'](this[_0x2888('0x5')](_0x2888('0xa')));}else{return this[_0x2888('0x5')](_0x2888('0xa'));}},'set':function(_0x34a24c){if(Array[_0x2888('0xb')](_0x34a24c)){this[_0x2888('0xc')](_0x2888('0xa'),JSON[_0x2888('0xd')](_0x34a24c));}else{this[_0x2888('0xc')](_0x2888('0xa'),_0x34a24c);}}},'required':{'type':Sequelize[_0x2888('0xe')],'defaultValue':![]},'clickToAction':{'type':Sequelize[_0x2888('0xe')],'defaultValue':![]},'actionType':{'type':Sequelize[_0x2888('0xf')](_0x2888('0x10'))}};
\ No newline at end of file
+var _0x92e9=['long','type','select','parse','values','isArray','setDataValue','stringify','BOOLEAN','ENUM','sequelize','lodash','exports','VIRTUAL','getDataValue','alias','STRING'];(function(_0x2ca453,_0x518513){var _0x454bb4=function(_0x3a2620){while(--_0x3a2620){_0x2ca453['push'](_0x2ca453['shift']());}};_0x454bb4(++_0x518513);}(_0x92e9,0x15e));var _0x992e=function(_0x1b4b07,_0x150b64){_0x1b4b07=_0x1b4b07-0x0;var _0x5dce6f=_0x92e9[_0x1b4b07];return _0x5dce6f;};'use strict';var Sequelize=require(_0x992e('0x0'));var _=require(_0x992e('0x1'));module[_0x992e('0x2')]={'name':{'type':Sequelize[_0x992e('0x3')],'get':function(_0x1cae74){return this[_0x992e('0x4')](_0x992e('0x5'));}},'alias':{'type':Sequelize[_0x992e('0x6')],'allowNull':![],'set':function(_0x5535bb){this['setDataValue'](_0x992e('0x5'),_0x5535bb?_0x5535bb:this[_0x992e('0x4')]('name'));}},'type':{'type':Sequelize[_0x992e('0x6')],'allowNull':![]},'values':{'type':Sequelize['TEXT'](_0x992e('0x7')),'get':function(){if(this[_0x992e('0x4')](_0x992e('0x8'))===_0x992e('0x9')){return JSON[_0x992e('0xa')](this[_0x992e('0x4')](_0x992e('0xb')));}else{return this['getDataValue'](_0x992e('0xb'));}},'set':function(_0x30a798){if(Array[_0x992e('0xc')](_0x30a798)){this[_0x992e('0xd')]('values',JSON[_0x992e('0xe')](_0x30a798));}else{this[_0x992e('0xd')](_0x992e('0xb'),_0x30a798);}}},'required':{'type':Sequelize[_0x992e('0xf')],'defaultValue':![]},'clickToAction':{'type':Sequelize[_0x992e('0xf')],'defaultValue':![]},'actionType':{'type':Sequelize[_0x992e('0x10')]('voice')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x92d7=['cf_%d','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','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','../../mysqldb','sendStatus','status','json','offset','limit','undefined','count','set','Content-Range','apply','save','update','then','destroy','end','error','stack','name','index','map','CmCustomField','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','find','body','params','create','sequelize','TEXT','text','Sequelize','INTEGER','switch','BOOLEAN','defaultValue','queryInterface','addColumn','cm_contacts','format'];(function(_0xd63b06,_0x34850f){var _0x343035=function(_0x17f681){while(--_0x17f681){_0xd63b06['push'](_0xd63b06['shift']());}};_0x343035(++_0x34850f);}(_0x92d7,0xb3));var _0x792d=function(_0x2aefde,_0x8bc56){_0x2aefde=_0x2aefde-0x0;var _0x19621f=_0x92d7[_0x2aefde];return _0x19621f;};'use strict';var emlformat=require(_0x792d('0x0'));var rimraf=require(_0x792d('0x1'));var zipdir=require(_0x792d('0x2'));var jsonpatch=require(_0x792d('0x3'));var rp=require(_0x792d('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x792d('0x5'));var util=require(_0x792d('0x6'));var path=require(_0x792d('0x7'));var sox=require('sox');var csv=require(_0x792d('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x792d('0x9'));var _=require('lodash');var squel=require(_0x792d('0xa'));var crypto=require(_0x792d('0xb'));var jsforce=require(_0x792d('0xc'));var deskjs=require(_0x792d('0xd'));var toCsv=require(_0x792d('0x8'));var querystring=require(_0x792d('0xe'));var Papa=require(_0x792d('0xf'));var Redis=require(_0x792d('0x10'));var authService=require(_0x792d('0x11'));var qs=require(_0x792d('0x12'));var as=require(_0x792d('0x13'));var hardwareService=require(_0x792d('0x14'));var logger=require(_0x792d('0x15'))(_0x792d('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x792d('0x17'))['db'];function respondWithStatusCode(_0x491f0f,_0x51782b){_0x51782b=_0x51782b||0xcc;return function(_0x2a370c){if(_0x2a370c){return _0x491f0f[_0x792d('0x18')](_0x51782b);}return _0x491f0f[_0x792d('0x19')](_0x51782b)['end']();};}function respondWithResult(_0x1d8744,_0xd9e04a){_0xd9e04a=_0xd9e04a||0xc8;return function(_0x2e0fe5){if(_0x2e0fe5){return _0x1d8744[_0x792d('0x19')](_0xd9e04a)[_0x792d('0x1a')](_0x2e0fe5);}};}function respondWithFilteredResult(_0x13ee32,_0x52c914){return function(_0x1bb38d){if(_0x1bb38d){var _0x3ae773=typeof _0x52c914[_0x792d('0x1b')]==='undefined'&&typeof _0x52c914[_0x792d('0x1c')]===_0x792d('0x1d');var _0x3c6498=_0x1bb38d[_0x792d('0x1e')];var _0x39fc7d=_0x3ae773?0x0:_0x52c914[_0x792d('0x1b')];var _0x88e576=_0x3ae773?_0x1bb38d[_0x792d('0x1e')]:_0x52c914[_0x792d('0x1b')]+_0x52c914[_0x792d('0x1c')];var _0x177cfa;if(_0x88e576>=_0x3c6498){_0x88e576=_0x3c6498;_0x177cfa=0xc8;}else{_0x177cfa=0xce;}_0x13ee32[_0x792d('0x19')](_0x177cfa);return _0x13ee32[_0x792d('0x1f')](_0x792d('0x20'),_0x39fc7d+'-'+_0x88e576+'/'+_0x3c6498)[_0x792d('0x1a')](_0x1bb38d);}return null;};}function patchUpdates(_0x51b640){return function(_0x4c3783){try{jsonpatch[_0x792d('0x21')](_0x4c3783,_0x51b640,!![]);}catch(_0x4eda36){return BPromise['reject'](_0x4eda36);}return _0x4c3783[_0x792d('0x22')]();};}function saveUpdates(_0x3fd995,_0x216e79){return function(_0x1565e6){if(_0x1565e6){return _0x1565e6[_0x792d('0x23')](_0x3fd995)[_0x792d('0x24')](function(_0x343443){return _0x343443;});}return null;};}function removeEntity(_0x10a18b,_0xb06b77){return function(_0x57a009){if(_0x57a009){return _0x57a009[_0x792d('0x25')]()[_0x792d('0x24')](function(){_0x10a18b[_0x792d('0x19')](0xcc)[_0x792d('0x26')]();});}};}function handleEntityNotFound(_0x3ba6e7,_0x2f7f03){return function(_0x5a2921){if(!_0x5a2921){_0x3ba6e7[_0x792d('0x18')](0x194);}return _0x5a2921;};}function handleError(_0x4823e6,_0x4546ca){_0x4546ca=_0x4546ca||0x1f4;return function(_0x5d41f4){logger[_0x792d('0x27')](_0x5d41f4[_0x792d('0x28')]);if(_0x5d41f4[_0x792d('0x29')]){delete _0x5d41f4[_0x792d('0x29')];}_0x4823e6['status'](_0x4546ca)['send'](_0x5d41f4);};}exports[_0x792d('0x2a')]=function(_0x11e783,_0x520e1a){var _0x5c46a6={},_0x129ed7={},_0x593635={'count':0x0,'rows':[]};var _0x5e7cbd=_[_0x792d('0x2b')](db[_0x792d('0x2c')][_0x792d('0x2d')],function(_0x5e63dd){return{'name':_0x5e63dd[_0x792d('0x2e')],'type':_0x5e63dd[_0x792d('0x2f')][_0x792d('0x30')]};});_0x129ed7[_0x792d('0x31')]=_['differenceBy'](_['map'](_0x5e7cbd,_0x792d('0x29')),[_0x792d('0x29')]);_0x129ed7[_0x792d('0x32')]=_[_0x792d('0x33')](_0x11e783[_0x792d('0x32')]);_0x129ed7['filters']=_['intersection'](_0x129ed7[_0x792d('0x31')],_0x129ed7[_0x792d('0x32')]);_0x5c46a6[_0x792d('0x34')]=_[_0x792d('0x35')](_0x129ed7[_0x792d('0x31')],qs[_0x792d('0x36')](_0x11e783[_0x792d('0x32')][_0x792d('0x36')]));_0x5c46a6[_0x792d('0x34')]=_0x5c46a6[_0x792d('0x34')][_0x792d('0x37')]?_0x5c46a6[_0x792d('0x34')]:_0x129ed7['model'];if(!_0x11e783[_0x792d('0x32')][_0x792d('0x38')](_0x792d('0x39'))){_0x5c46a6[_0x792d('0x1c')]=qs[_0x792d('0x1c')](_0x11e783[_0x792d('0x32')]['limit']);_0x5c46a6[_0x792d('0x1b')]=qs[_0x792d('0x1b')](_0x11e783[_0x792d('0x32')]['offset']);}_0x5c46a6[_0x792d('0x3a')]=qs[_0x792d('0x3b')](_0x11e783[_0x792d('0x32')][_0x792d('0x3b')]);_0x5c46a6[_0x792d('0x3c')]=qs['filters'](_[_0x792d('0x3d')](_0x11e783[_0x792d('0x32')],_0x129ed7[_0x792d('0x3e')]),_0x5e7cbd);if(_0x11e783[_0x792d('0x32')][_0x792d('0x3f')]){_0x5c46a6['where']=_[_0x792d('0x40')](_0x5c46a6[_0x792d('0x3c')],{'$or':_[_0x792d('0x2b')](_0x5e7cbd,function(_0x4909b5){if(_0x4909b5[_0x792d('0x2f')]!==_0x792d('0x41')){var _0x1460ae={};_0x1460ae[_0x4909b5[_0x792d('0x29')]]={'$like':'%'+_0x11e783['query']['filter']+'%'};return _0x1460ae;}})});}_0x5c46a6=_[_0x792d('0x40')]({},_0x5c46a6,_0x11e783['options']);var _0x22eb14={'where':_0x5c46a6[_0x792d('0x3c')]};return db['CmCustomField'][_0x792d('0x1e')](_0x22eb14)['then'](function(_0x5db6f3){_0x593635[_0x792d('0x1e')]=_0x5db6f3;if(_0x11e783[_0x792d('0x32')][_0x792d('0x42')]){_0x5c46a6[_0x792d('0x43')]=[{'all':!![]}];}return db[_0x792d('0x2c')][_0x792d('0x44')](_0x5c46a6);})[_0x792d('0x24')](function(_0x5cce46){_0x593635[_0x792d('0x45')]=_0x5cce46;return _0x593635;})[_0x792d('0x24')](respondWithFilteredResult(_0x520e1a,_0x5c46a6))[_0x792d('0x46')](handleError(_0x520e1a,null));};exports[_0x792d('0x47')]=function(_0x269879,_0x464410){var _0x48d0a3={'raw':!![],'where':{'id':_0x269879['params']['id']}},_0x47225f={};_0x47225f['model']=_[_0x792d('0x33')](db[_0x792d('0x2c')]['rawAttributes']);_0x47225f['query']=_[_0x792d('0x33')](_0x269879[_0x792d('0x32')]);_0x47225f[_0x792d('0x3e')]=_[_0x792d('0x35')](_0x47225f[_0x792d('0x31')],_0x47225f[_0x792d('0x32')]);_0x48d0a3[_0x792d('0x34')]=_[_0x792d('0x35')](_0x47225f['model'],qs[_0x792d('0x36')](_0x269879[_0x792d('0x32')][_0x792d('0x36')]));_0x48d0a3[_0x792d('0x34')]=_0x48d0a3[_0x792d('0x34')][_0x792d('0x37')]?_0x48d0a3[_0x792d('0x34')]:_0x47225f[_0x792d('0x31')];if(_0x269879['query'][_0x792d('0x42')]){_0x48d0a3['include']=[{'all':!![]}];}_0x48d0a3=_[_0x792d('0x40')]({},_0x48d0a3,_0x269879['options']);return db[_0x792d('0x2c')][_0x792d('0x48')](_0x48d0a3)['then'](handleEntityNotFound(_0x464410,null))[_0x792d('0x24')](respondWithResult(_0x464410,null))[_0x792d('0x46')](handleError(_0x464410,null));};exports[_0x792d('0x23')]=function(_0x520aca,_0x4d0792){if(_0x520aca[_0x792d('0x49')]['id']){delete _0x520aca[_0x792d('0x49')]['id'];}return db['CmCustomField'][_0x792d('0x48')]({'where':{'id':_0x520aca[_0x792d('0x4a')]['id']}})[_0x792d('0x24')](handleEntityNotFound(_0x4d0792,null))[_0x792d('0x24')](saveUpdates(_0x520aca[_0x792d('0x49')],null))[_0x792d('0x24')](respondWithResult(_0x4d0792,null))['catch'](handleError(_0x4d0792,null));};exports[_0x792d('0x25')]=function(_0xf4baa1,_0x306cea){return db[_0x792d('0x2c')][_0x792d('0x48')]({'where':{'id':_0xf4baa1['params']['id']}})['then'](handleEntityNotFound(_0x306cea,null))[_0x792d('0x24')](removeEntity(_0x306cea,null))[_0x792d('0x46')](handleError(_0x306cea,null));};exports[_0x792d('0x4b')]=function(_0x3618e3,_0x369bea){var _0x142d6e;return db[_0x792d('0x4c')]['transaction'](function(_0x33c178){return db[_0x792d('0x2c')][_0x792d('0x4b')](_0x3618e3['body'],{'transaction':_0x33c178})[_0x792d('0x24')](function(_0x31ed53){_0x142d6e=_0x31ed53;var _0x467fd9={'type':db['Sequelize'][_0x792d('0x4d')],'transaction':_0x33c178};switch(_0x3618e3[_0x792d('0x49')]['type']){case _0x792d('0x4e'):_0x467fd9[_0x792d('0x2f')]=db[_0x792d('0x4f')]['TEXT'];break;case'number':_0x467fd9[_0x792d('0x2f')]=db[_0x792d('0x4f')][_0x792d('0x50')];break;case _0x792d('0x51'):_0x467fd9[_0x792d('0x2f')]=db['Sequelize'][_0x792d('0x52')];_0x467fd9[_0x792d('0x53')]=![];break;default:}return db['sequelize'][_0x792d('0x54')][_0x792d('0x55')](_0x792d('0x56'),util[_0x792d('0x57')](_0x792d('0x58'),_0x142d6e['id']),_0x467fd9);})[_0x792d('0x24')](function(){return _0x142d6e;});})[_0x792d('0x24')](respondWithResult(_0x369bea,0xc9))[_0x792d('0x46')](handleError(_0x369bea,null));};
\ No newline at end of file
+var _0x4346=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','count','limit','set','apply','reject','update','destroy','send','map','fieldName','model','name','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','CmCustomField','then','includeAll','include','findAll','catch','show','params','rawAttributes','options','find','body','create','sequelize','transaction','TEXT','text','INTEGER','switch','Sequelize','BOOLEAN','defaultValue','queryInterface','addColumn','cm_contacts','cf_%d','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis'];(function(_0x35da42,_0x5c2610){var _0x370035=function(_0x546db5){while(--_0x546db5){_0x35da42['push'](_0x35da42['shift']());}};_0x370035(++_0x5c2610);}(_0x4346,0x1f1));var _0x6434=function(_0x5b406e,_0xcd06bc){_0x5b406e=_0x5b406e-0x0;var _0xe7d242=_0x4346[_0x5b406e];return _0xe7d242;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6434('0x0'));var zipdir=require(_0x6434('0x1'));var jsonpatch=require(_0x6434('0x2'));var rp=require(_0x6434('0x3'));var moment=require(_0x6434('0x4'));var BPromise=require(_0x6434('0x5'));var Mustache=require(_0x6434('0x6'));var util=require(_0x6434('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x6434('0x8'));var ejs=require(_0x6434('0x9'));var fs=require('fs');var fs_extra=require(_0x6434('0xa'));var _=require(_0x6434('0xb'));var squel=require(_0x6434('0xc'));var crypto=require(_0x6434('0xd'));var jsforce=require(_0x6434('0xe'));var deskjs=require(_0x6434('0xf'));var toCsv=require(_0x6434('0x8'));var querystring=require(_0x6434('0x10'));var Papa=require(_0x6434('0x11'));var Redis=require(_0x6434('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x6434('0x13'));var as=require(_0x6434('0x14'));var hardwareService=require(_0x6434('0x15'));var logger=require(_0x6434('0x16'))(_0x6434('0x17'));var utils=require(_0x6434('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x6434('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x45bcde,_0x2df95b){_0x2df95b=_0x2df95b||0xcc;return function(_0x322053){if(_0x322053){return _0x45bcde[_0x6434('0x1a')](_0x2df95b);}return _0x45bcde[_0x6434('0x1b')](_0x2df95b)['end']();};}function respondWithResult(_0x22061c,_0x2cff5d){_0x2cff5d=_0x2cff5d||0xc8;return function(_0x2c9442){if(_0x2c9442){return _0x22061c['status'](_0x2cff5d)[_0x6434('0x1c')](_0x2c9442);}};}function respondWithFilteredResult(_0x3116b5,_0x4ecc85){return function(_0x440c64){if(_0x440c64){var _0x321c0e=typeof _0x4ecc85[_0x6434('0x1d')]==='undefined'&&typeof _0x4ecc85['limit']===_0x6434('0x1e');var _0x3f2355=_0x440c64[_0x6434('0x1f')];var _0x208e48=_0x321c0e?0x0:_0x4ecc85[_0x6434('0x1d')];var _0x40ea1d=_0x321c0e?_0x440c64[_0x6434('0x1f')]:_0x4ecc85[_0x6434('0x1d')]+_0x4ecc85[_0x6434('0x20')];var _0x1852fe;if(_0x40ea1d>=_0x3f2355){_0x40ea1d=_0x3f2355;_0x1852fe=0xc8;}else{_0x1852fe=0xce;}_0x3116b5[_0x6434('0x1b')](_0x1852fe);return _0x3116b5[_0x6434('0x21')]('Content-Range',_0x208e48+'-'+_0x40ea1d+'/'+_0x3f2355)['json'](_0x440c64);}return null;};}function patchUpdates(_0x432f97){return function(_0x438561){try{jsonpatch[_0x6434('0x22')](_0x438561,_0x432f97,!![]);}catch(_0x43b662){return BPromise[_0x6434('0x23')](_0x43b662);}return _0x438561['save']();};}function saveUpdates(_0x27b01a,_0x170d0c){return function(_0x183327){if(_0x183327){return _0x183327[_0x6434('0x24')](_0x27b01a)['then'](function(_0x12d188){return _0x12d188;});}return null;};}function removeEntity(_0xc2c368,_0x2a40ef){return function(_0x41470){if(_0x41470){return _0x41470[_0x6434('0x25')]()['then'](function(){_0xc2c368[_0x6434('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x442bc3,_0x3b0b26){return function(_0x14d775){if(!_0x14d775){_0x442bc3['sendStatus'](0x194);}return _0x14d775;};}function handleError(_0x3181cc,_0x2641cd){_0x2641cd=_0x2641cd||0x1f4;return function(_0x31e2d3){logger['error'](_0x31e2d3['stack']);if(_0x31e2d3['name']){delete _0x31e2d3['name'];}_0x3181cc[_0x6434('0x1b')](_0x2641cd)[_0x6434('0x26')](_0x31e2d3);};}exports['index']=function(_0x14b028,_0x52c1f9){var _0x279cc3={},_0xc43434={},_0x2ad23c={'count':0x0,'rows':[]};var _0x4f341c=_[_0x6434('0x27')](db['CmCustomField']['rawAttributes'],function(_0x5b378c){return{'name':_0x5b378c[_0x6434('0x28')],'type':_0x5b378c['type']['key']};});_0xc43434[_0x6434('0x29')]=_['differenceBy'](_[_0x6434('0x27')](_0x4f341c,_0x6434('0x2a')),['name']);_0xc43434['query']=_[_0x6434('0x2b')](_0x14b028[_0x6434('0x2c')]);_0xc43434[_0x6434('0x2d')]=_[_0x6434('0x2e')](_0xc43434['model'],_0xc43434[_0x6434('0x2c')]);_0x279cc3[_0x6434('0x2f')]=_[_0x6434('0x2e')](_0xc43434[_0x6434('0x29')],qs[_0x6434('0x30')](_0x14b028[_0x6434('0x2c')][_0x6434('0x30')]));_0x279cc3[_0x6434('0x2f')]=_0x279cc3['attributes'][_0x6434('0x31')]?_0x279cc3[_0x6434('0x2f')]:_0xc43434[_0x6434('0x29')];if(!_0x14b028['query'][_0x6434('0x32')](_0x6434('0x33'))){_0x279cc3[_0x6434('0x20')]=qs['limit'](_0x14b028[_0x6434('0x2c')]['limit']);_0x279cc3[_0x6434('0x1d')]=qs[_0x6434('0x1d')](_0x14b028[_0x6434('0x2c')][_0x6434('0x1d')]);}_0x279cc3[_0x6434('0x34')]=qs[_0x6434('0x35')](_0x14b028[_0x6434('0x2c')]['sort']);_0x279cc3[_0x6434('0x36')]=qs['filters'](_[_0x6434('0x37')](_0x14b028[_0x6434('0x2c')],_0xc43434[_0x6434('0x2d')]),_0x4f341c);if(_0x14b028[_0x6434('0x2c')][_0x6434('0x38')]){_0x279cc3['where']=_[_0x6434('0x39')](_0x279cc3['where'],{'$or':_[_0x6434('0x27')](_0x4f341c,function(_0x443903){if(_0x443903[_0x6434('0x3a')]!==_0x6434('0x3b')){var _0x23aa35={};_0x23aa35[_0x443903[_0x6434('0x2a')]]={'$like':'%'+_0x14b028[_0x6434('0x2c')]['filter']+'%'};return _0x23aa35;}})});}_0x279cc3=_[_0x6434('0x39')]({},_0x279cc3,_0x14b028['options']);var _0x31a231={'where':_0x279cc3[_0x6434('0x36')]};return db[_0x6434('0x3c')]['count'](_0x31a231)[_0x6434('0x3d')](function(_0x2047fe){_0x2ad23c[_0x6434('0x1f')]=_0x2047fe;if(_0x14b028[_0x6434('0x2c')][_0x6434('0x3e')]){_0x279cc3[_0x6434('0x3f')]=[{'all':!![]}];}return db[_0x6434('0x3c')][_0x6434('0x40')](_0x279cc3);})[_0x6434('0x3d')](function(_0x5ac5b2){_0x2ad23c['rows']=_0x5ac5b2;return _0x2ad23c;})[_0x6434('0x3d')](respondWithFilteredResult(_0x52c1f9,_0x279cc3))[_0x6434('0x41')](handleError(_0x52c1f9,null));};exports[_0x6434('0x42')]=function(_0xe93ae8,_0x2b69b2){var _0x11d111={'raw':!![],'where':{'id':_0xe93ae8[_0x6434('0x43')]['id']}},_0x5163d9={};_0x5163d9[_0x6434('0x29')]=_[_0x6434('0x2b')](db[_0x6434('0x3c')][_0x6434('0x44')]);_0x5163d9['query']=_['keys'](_0xe93ae8[_0x6434('0x2c')]);_0x5163d9[_0x6434('0x2d')]=_['intersection'](_0x5163d9[_0x6434('0x29')],_0x5163d9[_0x6434('0x2c')]);_0x11d111[_0x6434('0x2f')]=_['intersection'](_0x5163d9[_0x6434('0x29')],qs['fields'](_0xe93ae8[_0x6434('0x2c')][_0x6434('0x30')]));_0x11d111[_0x6434('0x2f')]=_0x11d111['attributes'][_0x6434('0x31')]?_0x11d111[_0x6434('0x2f')]:_0x5163d9[_0x6434('0x29')];if(_0xe93ae8[_0x6434('0x2c')][_0x6434('0x3e')]){_0x11d111[_0x6434('0x3f')]=[{'all':!![]}];}_0x11d111=_[_0x6434('0x39')]({},_0x11d111,_0xe93ae8[_0x6434('0x45')]);return db['CmCustomField'][_0x6434('0x46')](_0x11d111)[_0x6434('0x3d')](handleEntityNotFound(_0x2b69b2,null))[_0x6434('0x3d')](respondWithResult(_0x2b69b2,null))['catch'](handleError(_0x2b69b2,null));};exports[_0x6434('0x24')]=function(_0x1cf708,_0x427285){if(_0x1cf708[_0x6434('0x47')]['id']){delete _0x1cf708[_0x6434('0x47')]['id'];}return db[_0x6434('0x3c')][_0x6434('0x46')]({'where':{'id':_0x1cf708[_0x6434('0x43')]['id']}})[_0x6434('0x3d')](handleEntityNotFound(_0x427285,null))[_0x6434('0x3d')](saveUpdates(_0x1cf708['body'],null))[_0x6434('0x3d')](respondWithResult(_0x427285,null))['catch'](handleError(_0x427285,null));};exports[_0x6434('0x25')]=function(_0x4b2a95,_0x387923){return db[_0x6434('0x3c')][_0x6434('0x46')]({'where':{'id':_0x4b2a95[_0x6434('0x43')]['id']}})[_0x6434('0x3d')](handleEntityNotFound(_0x387923,null))['then'](removeEntity(_0x387923,null))['catch'](handleError(_0x387923,null));};exports[_0x6434('0x48')]=function(_0x124a54,_0x1e3ef8){var _0x2b673e;return db[_0x6434('0x49')][_0x6434('0x4a')](function(_0x1193e9){return db[_0x6434('0x3c')][_0x6434('0x48')](_0x124a54[_0x6434('0x47')],{'transaction':_0x1193e9})['then'](function(_0x37366b){_0x2b673e=_0x37366b;var _0x3c1246={'type':db['Sequelize'][_0x6434('0x4b')],'transaction':_0x1193e9};switch(_0x124a54[_0x6434('0x47')][_0x6434('0x3a')]){case _0x6434('0x4c'):_0x3c1246[_0x6434('0x3a')]=db['Sequelize'][_0x6434('0x4b')];break;case'number':_0x3c1246['type']=db['Sequelize'][_0x6434('0x4d')];break;case _0x6434('0x4e'):_0x3c1246['type']=db[_0x6434('0x4f')][_0x6434('0x50')];_0x3c1246[_0x6434('0x51')]=![];break;default:}return db[_0x6434('0x49')][_0x6434('0x52')][_0x6434('0x53')](_0x6434('0x54'),util['format'](_0x6434('0x55'),_0x2b673e['id']),_0x3c1246);})[_0x6434('0x3d')](function(){return _0x2b673e;});})['then'](respondWithResult(_0x1e3ef8,0xc9))[_0x6434('0x41')](handleError(_0x1e3ef8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcbea=['define','CmCustomField','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf'];(function(_0x4aa7f2,_0x47f905){var _0x5f382d=function(_0x383967){while(--_0x383967){_0x4aa7f2['push'](_0x4aa7f2['shift']());}};_0x5f382d(++_0x47f905);}(_0xcbea,0x1d8));var _0xacbe=function(_0x578483,_0x2dfc3e){_0x578483=_0x578483-0x0;var _0x139ab6=_0xcbea[_0x578483];return _0x139ab6;};'use strict';var _=require(_0xacbe('0x0'));var util=require(_0xacbe('0x1'));var logger=require(_0xacbe('0x2'))(_0xacbe('0x3'));var moment=require('moment');var BPromise=require(_0xacbe('0x4'));var rp=require(_0xacbe('0x5'));var fs=require('fs');var path=require(_0xacbe('0x6'));var rimraf=require(_0xacbe('0x7'));var config=require('../../config/environment');var attributes=require('./cmCustomField.attributes');module['exports']=function(_0x415647,_0x58f899){return _0x415647[_0xacbe('0x8')](_0xacbe('0x9'),attributes,{'tableName':'cm_custom_fields','paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1030=['./cmCustomField.attributes','exports','define','cm_custom_fields','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf'];(function(_0x29a6a9,_0x3331a6){var _0x203ba7=function(_0x274fd4){while(--_0x274fd4){_0x29a6a9['push'](_0x29a6a9['shift']());}};_0x203ba7(++_0x3331a6);}(_0x1030,0x160));var _0x0103=function(_0x231ede,_0x3e708d){_0x231ede=_0x231ede-0x0;var _0x278531=_0x1030[_0x231ede];return _0x278531;};'use strict';var _=require(_0x0103('0x0'));var util=require(_0x0103('0x1'));var logger=require(_0x0103('0x2'))(_0x0103('0x3'));var moment=require(_0x0103('0x4'));var BPromise=require(_0x0103('0x5'));var rp=require(_0x0103('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0103('0x7'));var config=require('../../config/environment');var attributes=require(_0x0103('0x8'));module[_0x0103('0x9')]=function(_0x5a6162,_0x34406a){return _0x5a6162[_0x0103('0xa')]('CmCustomField',attributes,{'tableName':_0x0103('0xb'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb67=['catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','info','CmCustomField,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','result'];(function(_0x1dd467,_0x4a19b4){var _0x106e44=function(_0x3ef7b7){while(--_0x3ef7b7){_0x1dd467['push'](_0x1dd467['shift']());}};_0x106e44(++_0x4a19b4);}(_0xfb67,0xdd));var _0x7fb6=function(_0x3e3a4e,_0x5e1eac){_0x3e3a4e=_0x3e3a4e-0x0;var _0x1521ed=_0xfb67[_0x3e3a4e];return _0x1521ed;};'use strict';var _=require(_0x7fb6('0x0'));var util=require(_0x7fb6('0x1'));var moment=require(_0x7fb6('0x2'));var BPromise=require(_0x7fb6('0x3'));var rs=require(_0x7fb6('0x4'));var fs=require('fs');var Redis=require(_0x7fb6('0x5'));var db=require(_0x7fb6('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x7fb6('0x7'))(_0x7fb6('0x8'));var config=require(_0x7fb6('0x9'));var jayson=require(_0x7fb6('0xa'));var client=jayson[_0x7fb6('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2f5f19,_0x26ea4c,_0xa448b4){return new BPromise(function(_0x485f45,_0x168ebb){return client[_0x7fb6('0xc')](_0x2f5f19,_0xa448b4)['then'](function(_0x27f819){logger[_0x7fb6('0xd')](_0x7fb6('0xe'),_0x26ea4c,'request\x20sent');logger[_0x7fb6('0xf')]('CmCustomField,\x20%s,\x20%s,\x20%s',_0x26ea4c,_0x7fb6('0x10'),JSON[_0x7fb6('0x11')](_0x27f819));if(_0x27f819[_0x7fb6('0x12')]){if(_0x27f819[_0x7fb6('0x12')]['code']===0x1f4){logger[_0x7fb6('0x12')](_0x7fb6('0xe'),_0x26ea4c,_0x27f819[_0x7fb6('0x12')]['message']);return _0x168ebb(_0x27f819['error']['message']);}logger['error']('CmCustomField,\x20%s,\x20%s',_0x26ea4c,_0x27f819['error'][_0x7fb6('0x13')]);return _0x485f45(_0x27f819[_0x7fb6('0x12')]['message']);}else{logger[_0x7fb6('0xd')](_0x7fb6('0xe'),_0x26ea4c,_0x7fb6('0x10'));_0x485f45(_0x27f819[_0x7fb6('0x14')][_0x7fb6('0x13')]);}})[_0x7fb6('0x15')](function(_0x3e89c7){logger[_0x7fb6('0x12')](_0x7fb6('0xe'),_0x26ea4c,_0x3e89c7);_0x168ebb(_0x3e89c7);});});}
\ No newline at end of file
+var _0x8df0=['request\x20sent','CmCustomField,\x20%s,\x20%s,\x20%s','error','code','CmCustomField,\x20%s,\x20%s','message','result','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','then','info'];(function(_0x1bdaf9,_0x247f4e){var _0x194d98=function(_0x152916){while(--_0x152916){_0x1bdaf9['push'](_0x1bdaf9['shift']());}};_0x194d98(++_0x247f4e);}(_0x8df0,0x127));var _0x08df=function(_0x4c92d0,_0x394220){_0x4c92d0=_0x4c92d0-0x0;var _0x4734c2=_0x8df0[_0x4c92d0];return _0x4734c2;};'use strict';var _=require('lodash');var util=require(_0x08df('0x0'));var moment=require(_0x08df('0x1'));var BPromise=require(_0x08df('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x08df('0x3'))['db'];var utils=require(_0x08df('0x4'));var logger=require(_0x08df('0x5'))('rpc');var config=require(_0x08df('0x6'));var jayson=require(_0x08df('0x7'));var client=jayson['client'][_0x08df('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x2ba088,_0x4de9c2,_0x4169ec){return new BPromise(function(_0x5df03b,_0x202069){return client['request'](_0x2ba088,_0x4169ec)[_0x08df('0x9')](function(_0x370863){logger[_0x08df('0xa')]('CmCustomField,\x20%s,\x20%s',_0x4de9c2,_0x08df('0xb'));logger['debug'](_0x08df('0xc'),_0x4de9c2,_0x08df('0xb'),JSON['stringify'](_0x370863));if(_0x370863['error']){if(_0x370863[_0x08df('0xd')][_0x08df('0xe')]===0x1f4){logger[_0x08df('0xd')](_0x08df('0xf'),_0x4de9c2,_0x370863['error'][_0x08df('0x10')]);return _0x202069(_0x370863[_0x08df('0xd')][_0x08df('0x10')]);}logger[_0x08df('0xd')]('CmCustomField,\x20%s,\x20%s',_0x4de9c2,_0x370863[_0x08df('0xd')][_0x08df('0x10')]);return _0x5df03b(_0x370863[_0x08df('0xd')]['message']);}else{logger[_0x08df('0xa')](_0x08df('0xf'),_0x4de9c2,'request\x20sent');_0x5df03b(_0x370863[_0x08df('0x11')][_0x08df('0x10')]);}})['catch'](function(_0x531cc3){logger[_0x08df('0xd')](_0x08df('0xf'),_0x4de9c2,_0x531cc3);_0x202069(_0x531cc3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd943=['./cmCustomField.controller','get','isAuthenticated','index','create','update','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x26054b,_0x555485){var _0x58a596=function(_0x52a85b){while(--_0x52a85b){_0x26054b['push'](_0x26054b['shift']());}};_0x58a596(++_0x555485);}(_0xd943,0x14a));var _0x3d94=function(_0x323c4c,_0x3b9188){_0x323c4c=_0x323c4c-0x0;var _0xc22913=_0xd943[_0x323c4c];return _0xc22913;};'use strict';var multer=require(_0x3d94('0x0'));var util=require(_0x3d94('0x1'));var path=require(_0x3d94('0x2'));var timeout=require(_0x3d94('0x3'));var express=require(_0x3d94('0x4'));var router=express[_0x3d94('0x5')]();var fs_extra=require(_0x3d94('0x6'));var auth=require(_0x3d94('0x7'));var interaction=require(_0x3d94('0x8'));var config=require(_0x3d94('0x9'));var controller=require(_0x3d94('0xa'));router[_0x3d94('0xb')]('/',auth[_0x3d94('0xc')](),controller[_0x3d94('0xd')]);router[_0x3d94('0xb')]('/:id',auth['isAuthenticated'](),controller['show']);router['post']('/',auth[_0x3d94('0xc')](),controller[_0x3d94('0xe')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0x3d94('0xf')]);router['delete']('/:id',auth[_0x3d94('0xc')](),controller['destroy']);module[_0x3d94('0x10')]=router;
\ No newline at end of file
+var _0xc57c=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmCustomField.controller','isAuthenticated','index','/:id','show','create','put','update','delete','destroy','exports','multer'];(function(_0x48728d,_0x18488d){var _0x4e9057=function(_0x3e5612){while(--_0x3e5612){_0x48728d['push'](_0x48728d['shift']());}};_0x4e9057(++_0x18488d);}(_0xc57c,0x9f));var _0xcc57=function(_0x538425,_0x21e433){_0x538425=_0x538425-0x0;var _0x1bc0ca=_0xc57c[_0x538425];return _0x1bc0ca;};'use strict';var multer=require(_0xcc57('0x0'));var util=require('util');var path=require(_0xcc57('0x1'));var timeout=require(_0xcc57('0x2'));var express=require(_0xcc57('0x3'));var router=express[_0xcc57('0x4')]();var fs_extra=require(_0xcc57('0x5'));var auth=require(_0xcc57('0x6'));var interaction=require(_0xcc57('0x7'));var config=require(_0xcc57('0x8'));var controller=require(_0xcc57('0x9'));router['get']('/',auth[_0xcc57('0xa')](),controller[_0xcc57('0xb')]);router['get'](_0xcc57('0xc'),auth[_0xcc57('0xa')](),controller[_0xcc57('0xd')]);router['post']('/',auth[_0xcc57('0xa')](),controller[_0xcc57('0xe')]);router[_0xcc57('0xf')](_0xcc57('0xc'),auth[_0xcc57('0xa')](),controller[_0xcc57('0x10')]);router[_0xcc57('0x11')]('/:id',auth[_0xcc57('0xa')](),controller[_0xcc57('0x12')]);module[_0xcc57('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c44=['INTEGER','DATE','UNSIGNED','contactListQueue','sequelize','exports','STRING','BOOLEAN','format'];(function(_0x175f1b,_0x1a7de0){var _0x2da79a=function(_0x9a0ed7){while(--_0x9a0ed7){_0x175f1b['push'](_0x175f1b['shift']());}};_0x2da79a(++_0x1a7de0);}(_0x6c44,0xe5));var _0x46c4=function(_0x30033a,_0x5ce4a6){_0x30033a=_0x30033a-0x0;var _0x5e3518=_0x6c44[_0x30033a];return _0x5e3518;};'use strict';var moment=require('moment');var Sequelize=require(_0x46c4('0x0'));module[_0x46c4('0x1')]={'phone':{'type':Sequelize[_0x46c4('0x2')],'allowNull':![]},'active':{'type':Sequelize[_0x46c4('0x3')],'defaultValue':![]},'scheduledat':{'type':Sequelize['DATE'],'defaultValue':moment()[_0x46c4('0x4')]('YYYY-MM-DD\x20HH:mm:ss')},'countbusyretry':{'type':Sequelize[_0x46c4('0x5')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x46c4('0x5')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'callback':{'type':Sequelize[_0x46c4('0x3')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x46c4('0x2')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x46c4('0x6')]},'priority':{'type':Sequelize[_0x46c4('0x5')](0x2)[_0x46c4('0x7')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize[_0x46c4('0x3')],'defaultValue':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':_0x46c4('0x8')},'ListId':{'type':Sequelize[_0x46c4('0x5')],'unique':_0x46c4('0x8')},'UserId':{'type':Sequelize[_0x46c4('0x5')]},'VoiceQueueId':{'type':Sequelize['INTEGER'],'unique':'contactListQueue'},'CampaignId':{'type':Sequelize[_0x46c4('0x5')]},'countnosuchnumberretry':{'type':Sequelize[_0x46c4('0x5')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x46c4('0x5')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x46c4('0x5')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x46c4('0x5')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x46c4('0x5')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe007=['BOOLEAN','format','INTEGER','DATE','UNSIGNED','contactListQueue','moment','sequelize','exports','STRING'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe007,0x196));var _0x7e00=function(_0x16c7c5,_0x46fa20){_0x16c7c5=_0x16c7c5-0x0;var _0x442341=_0xe007[_0x16c7c5];return _0x442341;};'use strict';var moment=require(_0x7e00('0x0'));var Sequelize=require(_0x7e00('0x1'));module[_0x7e00('0x2')]={'phone':{'type':Sequelize[_0x7e00('0x3')],'allowNull':![]},'active':{'type':Sequelize[_0x7e00('0x4')],'defaultValue':![]},'scheduledat':{'type':Sequelize['DATE'],'defaultValue':moment()[_0x7e00('0x5')]('YYYY-MM-DD\x20HH:mm:ss')},'countbusyretry':{'type':Sequelize[_0x7e00('0x6')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x7e00('0x6')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x7e00('0x6')],'defaultValue':0x0},'callback':{'type':Sequelize[_0x7e00('0x4')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize['STRING'],'defaultValue':null},'callbackat':{'type':Sequelize[_0x7e00('0x7')]},'priority':{'type':Sequelize[_0x7e00('0x6')](0x2)[_0x7e00('0x8')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize[_0x7e00('0x4')],'defaultValue':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':_0x7e00('0x9')},'ListId':{'type':Sequelize[_0x7e00('0x6')],'unique':_0x7e00('0x9')},'UserId':{'type':Sequelize[_0x7e00('0x6')]},'VoiceQueueId':{'type':Sequelize[_0x7e00('0x6')],'unique':_0x7e00('0x9')},'CampaignId':{'type':Sequelize[_0x7e00('0x6')]},'countnosuchnumberretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x7e00('0x6')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x7e00('0x6')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x7e00('0x6')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x7e00('0x6')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d04=['zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','end','error','stack','name','send','index','map','CmHopper','rawAttributes','key','model','query','keys','intersection','filters','concat','$or','$lt','$lte','$ne','$eq','$not','$in','$notLike','$iLike','$notILike','$like','$overlap','$contains','$contained','$any','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filter','merge','where','type','includeAll','findAll','rows','catch','params','include','find','create','body','describe','VoiceQueueId','CampaignId','VoiceQueue','Campaign','omit','dataValues','createdAt','state','statedesc','deleted','campaign','membername','user','UserId','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','finally','dialOrderByScheduledAt','dialPreviewAutoRecallMe','sequelize','transaction','direction','prev','isEmpty','hopperIds','priority','ASC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','DESC','COALESCE(CmHopper.UserId,\x200)\x20DESC','scheduledat','recallme','Contact','List','Queue','dialActive','getOpenContacts','getVoiceQueues','outbound','preview','entity\x20not\x20found','rimraf'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x6d04,0x11f));var _0x46d0=function(_0x406dfd,_0x3b48cb){_0x406dfd=_0x406dfd-0x0;var _0x5a9101=_0x6d04[_0x406dfd];return _0x5a9101;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x46d0('0x0'));var zipdir=require(_0x46d0('0x1'));var jsonpatch=require(_0x46d0('0x2'));var rp=require(_0x46d0('0x3'));var moment=require('moment');var BPromise=require(_0x46d0('0x4'));var Mustache=require(_0x46d0('0x5'));var util=require(_0x46d0('0x6'));var path=require(_0x46d0('0x7'));var sox=require(_0x46d0('0x8'));var csv=require(_0x46d0('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x46d0('0xa'));var _=require(_0x46d0('0xb'));var squel=require(_0x46d0('0xc'));var crypto=require('crypto');var jsforce=require(_0x46d0('0xd'));var deskjs=require(_0x46d0('0xe'));var toCsv=require(_0x46d0('0x9'));var querystring=require(_0x46d0('0xf'));var Papa=require('papaparse');var Redis=require(_0x46d0('0x10'));var authService=require(_0x46d0('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x46d0('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x46d0('0x13'))(_0x46d0('0x14'));var utils=require(_0x46d0('0x15'));var config=require(_0x46d0('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x46d0('0x17'))['db'];function respondWithStatusCode(_0x23a326,_0x3afd5a){_0x3afd5a=_0x3afd5a||0xcc;return function(_0x26122f){if(_0x26122f){return _0x23a326[_0x46d0('0x18')](_0x3afd5a);}return _0x23a326[_0x46d0('0x19')](_0x3afd5a)['end']();};}function respondWithResult(_0x186570,_0x574ffd){_0x574ffd=_0x574ffd||0xc8;return function(_0x291471){if(_0x291471){return _0x186570[_0x46d0('0x19')](_0x574ffd)['json'](_0x291471);}};}function respondWithFilteredResult(_0x55a8ab,_0x4dbf4a){return function(_0x1a25ee){if(_0x1a25ee){var _0x3dfaf1=typeof _0x4dbf4a[_0x46d0('0x1a')]===_0x46d0('0x1b')&&typeof _0x4dbf4a[_0x46d0('0x1c')]===_0x46d0('0x1b');var _0x3316da=_0x1a25ee[_0x46d0('0x1d')];var _0xf1ecbc=_0x3dfaf1?0x0:_0x4dbf4a[_0x46d0('0x1a')];var _0x4700eb=_0x3dfaf1?_0x1a25ee[_0x46d0('0x1d')]:_0x4dbf4a[_0x46d0('0x1a')]+_0x4dbf4a['limit'];var _0x20131b;if(_0x4700eb>=_0x3316da){_0x4700eb=_0x3316da;_0x20131b=0xc8;}else{_0x20131b=0xce;}_0x55a8ab[_0x46d0('0x19')](_0x20131b);return _0x55a8ab[_0x46d0('0x1e')](_0x46d0('0x1f'),_0xf1ecbc+'-'+_0x4700eb+'/'+_0x3316da)[_0x46d0('0x20')](_0x1a25ee);}return null;};}function patchUpdates(_0x3466f0){return function(_0x25d0b8){try{jsonpatch[_0x46d0('0x21')](_0x25d0b8,_0x3466f0,!![]);}catch(_0x120710){return BPromise[_0x46d0('0x22')](_0x120710);}return _0x25d0b8[_0x46d0('0x23')]();};}function saveUpdates(_0x2bea91,_0x2f0ce7){return function(_0x3d9312){if(_0x3d9312){return _0x3d9312[_0x46d0('0x24')](_0x2bea91)[_0x46d0('0x25')](function(_0x3f73bb){return _0x3f73bb;});}return null;};}function removeEntity(_0x5ce1ef,_0x3bf6ba){return function(_0x6bef92){if(_0x6bef92){return _0x6bef92[_0x46d0('0x26')]()[_0x46d0('0x25')](function(){_0x5ce1ef['status'](0xcc)[_0x46d0('0x27')]();});}};}function handleEntityNotFound(_0x59ac62,_0x5deb93){return function(_0x148f76){if(!_0x148f76){_0x59ac62[_0x46d0('0x18')](0x194);}return _0x148f76;};}function handleError(_0x4301db,_0x12ec02){_0x12ec02=_0x12ec02||0x1f4;return function(_0x4f812e){logger[_0x46d0('0x28')](_0x4f812e[_0x46d0('0x29')]);if(_0x4f812e[_0x46d0('0x2a')]){delete _0x4f812e[_0x46d0('0x2a')];}_0x4301db['status'](_0x12ec02)[_0x46d0('0x2b')](_0x4f812e);};}exports[_0x46d0('0x2c')]=function(_0x3e38d6,_0x5c71b8){var _0x3709e9={},_0x4372c3={},_0x5c46c5={'count':0x0,'rows':[]};var _0x19f1a0=_[_0x46d0('0x2d')](db[_0x46d0('0x2e')][_0x46d0('0x2f')],function(_0x1e5438){return{'name':_0x1e5438['fieldName'],'type':_0x1e5438['type'][_0x46d0('0x30')]};});_0x4372c3[_0x46d0('0x31')]=_[_0x46d0('0x2d')](_0x19f1a0,_0x46d0('0x2a'));_0x4372c3[_0x46d0('0x32')]=_[_0x46d0('0x33')](_0x3e38d6[_0x46d0('0x32')]);_0x4372c3['filters']=_[_0x46d0('0x34')](_0x4372c3[_0x46d0('0x31')],_0x4372c3[_0x46d0('0x32')]);_0x4372c3[_0x46d0('0x35')]=_[_0x46d0('0x36')](_0x4372c3['filters'],['$and',_0x46d0('0x37'),'$gt','$gte',_0x46d0('0x38'),_0x46d0('0x39'),_0x46d0('0x3a'),_0x46d0('0x3b'),_0x46d0('0x3c'),'$between','$notBetween',_0x46d0('0x3d'),'$notIn','$like',_0x46d0('0x3e'),_0x46d0('0x3f'),_0x46d0('0x40'),_0x46d0('0x41'),_0x46d0('0x42'),_0x46d0('0x43'),_0x46d0('0x44'),_0x46d0('0x45')]);_0x3709e9[_0x46d0('0x46')]=_[_0x46d0('0x34')](_0x4372c3['model'],qs[_0x46d0('0x47')](_0x3e38d6[_0x46d0('0x32')][_0x46d0('0x47')]));_0x3709e9['attributes']=_0x3709e9[_0x46d0('0x46')][_0x46d0('0x48')]?_0x3709e9[_0x46d0('0x46')]:_0x4372c3['model'];if(!_0x3e38d6[_0x46d0('0x32')][_0x46d0('0x49')](_0x46d0('0x4a'))){_0x3709e9[_0x46d0('0x1c')]=qs['limit'](_0x3e38d6[_0x46d0('0x32')]['limit']);_0x3709e9[_0x46d0('0x1a')]=qs[_0x46d0('0x1a')](_0x3e38d6[_0x46d0('0x32')][_0x46d0('0x1a')]);}_0x3709e9[_0x46d0('0x4b')]=qs[_0x46d0('0x4c')](_0x3e38d6[_0x46d0('0x32')][_0x46d0('0x4c')]);_0x3709e9['where']=qs[_0x46d0('0x35')](_['pick'](_0x3e38d6[_0x46d0('0x32')],_0x4372c3[_0x46d0('0x35')]),_0x19f1a0);if(_0x3e38d6[_0x46d0('0x32')][_0x46d0('0x4d')]){_0x3709e9['where']=_[_0x46d0('0x4e')](_0x3709e9[_0x46d0('0x4f')],{'$or':_[_0x46d0('0x2d')](_0x19f1a0,function(_0x24b2e6){if(_0x24b2e6[_0x46d0('0x50')]!=='VIRTUAL'){var _0x22d418={};_0x22d418[_0x24b2e6[_0x46d0('0x2a')]]={'$like':'%'+_0x3e38d6[_0x46d0('0x32')]['filter']+'%'};return _0x22d418;}})});}_0x3709e9=_[_0x46d0('0x4e')]({},_0x3709e9,_0x3e38d6['options']);var _0x5cec30={'where':_0x3709e9['where']};return db[_0x46d0('0x2e')][_0x46d0('0x1d')](_0x5cec30)['then'](function(_0x308222){_0x5c46c5[_0x46d0('0x1d')]=_0x308222;if(_0x3e38d6['query'][_0x46d0('0x51')]){_0x3709e9['include']=[{'all':!![]}];}return db[_0x46d0('0x2e')][_0x46d0('0x52')](_0x3709e9);})[_0x46d0('0x25')](function(_0x7ff1e4){_0x5c46c5[_0x46d0('0x53')]=_0x7ff1e4;return _0x5c46c5;})[_0x46d0('0x25')](respondWithFilteredResult(_0x5c71b8,_0x3709e9))[_0x46d0('0x54')](handleError(_0x5c71b8,null));};exports['show']=function(_0x2b616e,_0x4c8b6c){var _0x4da1f2={'raw':!![],'where':{'id':_0x2b616e[_0x46d0('0x55')]['id']}},_0x425eff={};_0x425eff[_0x46d0('0x31')]=_[_0x46d0('0x33')](db[_0x46d0('0x2e')][_0x46d0('0x2f')]);_0x425eff[_0x46d0('0x32')]=_['keys'](_0x2b616e['query']);_0x425eff['filters']=_['intersection'](_0x425eff['model'],_0x425eff[_0x46d0('0x32')]);_0x4da1f2['attributes']=_[_0x46d0('0x34')](_0x425eff[_0x46d0('0x31')],qs[_0x46d0('0x47')](_0x2b616e['query'][_0x46d0('0x47')]));_0x4da1f2[_0x46d0('0x46')]=_0x4da1f2[_0x46d0('0x46')]['length']?_0x4da1f2['attributes']:_0x425eff[_0x46d0('0x31')];if(_0x2b616e[_0x46d0('0x32')]['includeAll']){_0x4da1f2[_0x46d0('0x56')]=[{'all':!![]}];}_0x4da1f2=_[_0x46d0('0x4e')]({},_0x4da1f2,_0x2b616e['options']);return db[_0x46d0('0x2e')][_0x46d0('0x57')](_0x4da1f2)[_0x46d0('0x25')](handleEntityNotFound(_0x4c8b6c,null))[_0x46d0('0x25')](respondWithResult(_0x4c8b6c,null))['catch'](handleError(_0x4c8b6c,null));};exports[_0x46d0('0x58')]=function(_0x1212e0,_0x212e06){return db[_0x46d0('0x2e')][_0x46d0('0x58')](_0x1212e0['body'],{})[_0x46d0('0x25')](respondWithResult(_0x212e06,0xc9))[_0x46d0('0x54')](handleError(_0x212e06,null));};exports['update']=function(_0x3224bd,_0x3d9188){if(_0x3224bd[_0x46d0('0x59')]['id']){delete _0x3224bd[_0x46d0('0x59')]['id'];}return db[_0x46d0('0x2e')]['find']({'where':{'id':_0x3224bd[_0x46d0('0x55')]['id']}})['then'](handleEntityNotFound(_0x3d9188,null))[_0x46d0('0x25')](saveUpdates(_0x3224bd[_0x46d0('0x59')],null))[_0x46d0('0x25')](respondWithResult(_0x3d9188,null))[_0x46d0('0x54')](handleError(_0x3d9188,null));};exports[_0x46d0('0x5a')]=function(_0x15be69,_0x831248){return db[_0x46d0('0x2e')][_0x46d0('0x5a')]()[_0x46d0('0x25')](respondWithResult(_0x831248,null))[_0x46d0('0x54')](handleError(_0x831248,null));};exports[_0x46d0('0x26')]=function(_0x164cd8,_0x3213ac){var _0x3fa4d5;return db['CmHopper'][_0x46d0('0x57')]({'where':{'id':_0x164cd8[_0x46d0('0x55')]['id']}})[_0x46d0('0x25')](handleEntityNotFound(_0x3213ac,null))['then'](function(_0x2dd043){if(_0x2dd043){return _0x2dd043[_0x46d0('0x26')]()['then'](function(_0x56a7d7){return _0x56a7d7;});}})[_0x46d0('0x25')](function(_0x5b5297){_0x3fa4d5=_0x5b5297;if(_0x5b5297){if(_0x5b5297[_0x46d0('0x5b')]||_0x5b5297[_0x46d0('0x5c')]){return db[_0x5b5297[_0x46d0('0x5b')]?_0x46d0('0x5d'):_0x46d0('0x5e')][_0x46d0('0x57')]({'where':{'id':_0x5b5297['VoiceQueueId']?_0x5b5297[_0x46d0('0x5b')]:_0x5b5297[_0x46d0('0x5c')]},'attributes':['id',_0x46d0('0x2a')],'raw':!![]});}}})[_0x46d0('0x25')](function(_0x141121){var _0x3cd2cf={};if(_0x141121){_[_0x46d0('0x4e')](_0x3cd2cf,_[_0x46d0('0x5f')](_0x3fa4d5[_0x46d0('0x60')],[_0x46d0('0x61'),'updatedAt','id']));_0x3cd2cf[_0x46d0('0x62')]=0x15;_0x3cd2cf[_0x46d0('0x63')]=_0x46d0('0x64');_0x3cd2cf[_0x46d0('0x65')]=_0x141121[_0x46d0('0x2a')];_0x3cd2cf[_0x46d0('0x66')]=_0x164cd8[_0x46d0('0x67')][_0x46d0('0x2a')];_0x3cd2cf[_0x46d0('0x68')]=_0x164cd8[_0x46d0('0x67')]['id'];_0x3cd2cf['deleted']=!![];_0x3cd2cf[_0x46d0('0x69')]=moment()[_0x46d0('0x6a')](_0x46d0('0x6b'));_0x3cd2cf[_0x46d0('0x6c')]=_0x3fa4d5[_0x46d0('0x6d')];_0x3cd2cf[_0x46d0('0x6e')]=_0x3fa4d5[_0x46d0('0x5b')]?_0x46d0('0x6f'):_0x46d0('0x70');return db[_0x46d0('0x71')]['find']({'where':{'id':_0x3cd2cf[_0x46d0('0x72')]},'attributes':[_0x46d0('0x73'),_0x46d0('0x74')]})[_0x46d0('0x25')](function(_0xec99f0){if(!_[_0x46d0('0x75')](_0x3213ac)&&!_[_0x46d0('0x75')](_0xec99f0['firstName'])){_0x3cd2cf['calleridname']=_0xec99f0[_0x46d0('0x73')];if(!_[_0x46d0('0x75')](_0xec99f0['lastName'])){_0x3cd2cf['calleridname']+='\x20'+_0xec99f0['lastName'];}}})[_0x46d0('0x76')](function(){return db['CmHopperFinal']['create'](_0x3cd2cf);});}})[_0x46d0('0x25')](function(){return _0x3213ac[_0x46d0('0x19')](0xcc)['end']();})['catch'](handleError(_0x3213ac,null));};exports['getPreview']=function(_0x5cc311,_0x2f1acb,_0x5be88a){var _0x399ee3=[];return db[_0x46d0('0x71')]['describe']()['then'](function(_0x2cdd1a){_0x399ee3=_[_0x46d0('0x33')](_0x2cdd1a);return _0x5cc311['user']['getVoiceQueues']({'where':{'type':'outbound','dialActive':!![],'dialMethod':'preview'},'attributes':['id',_0x46d0('0x77'),_0x46d0('0x78')],'raw':!![]});})['then'](function(_0x35068e){if(_0x35068e&&_0x35068e[_0x46d0('0x48')]){return db[_0x46d0('0x79')][_0x46d0('0x7a')](function(_0x5f52ac){var _0x52b660={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x46d0('0x6a')](_0x46d0('0x6b'))},'VoiceQueueId':{'$in':_[_0x46d0('0x2d')](_0x35068e,'id')},'$or':[{'UserId':null},{'UserId':_0x5cc311[_0x46d0('0x67')]['id']}]};var _0x34f367={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0x35068e)[_0x46d0('0x4d')](['dialPreviewAutoRecallMe',0x0])['map']('id')['value']()},'$or':[{'UserId':null},{'UserId':_0x5cc311['user']['id']}]};var _0xe3c9f8={'$or':[_0x52b660,_0x34f367]};var _0xa47b1b=[];if(_0x5cc311[_0x46d0('0x59')][_0x46d0('0x7b')]&&_0x5cc311['body'][_0x46d0('0x7b')]===_0x46d0('0x7c')){if(!_[_0x46d0('0x7d')](_0x5cc311[_0x46d0('0x59')]['hopperIds'])){_0xe3c9f8['id']={'$in':_0x5cc311[_0x46d0('0x59')][_0x46d0('0x7e')]};}_0xa47b1b=[[_0x46d0('0x7f'),_0x46d0('0x80')],['scheduledAt',_0x35068e[0x0][_0x46d0('0x77')]==='ASC'?'DESC':_0x46d0('0x80')],db[_0x46d0('0x79')][_0x46d0('0x81')](_0x46d0('0x82')),['id',_0x46d0('0x83')]];}else{if(!_[_0x46d0('0x7d')](_0x5cc311[_0x46d0('0x59')][_0x46d0('0x7e')])){_0xe3c9f8['id']={'$notIn':_0x5cc311[_0x46d0('0x59')]['hopperIds']};}_0xa47b1b=[[_0x46d0('0x7f'),_0x46d0('0x83')],['scheduledAt',_0x35068e[0x0][_0x46d0('0x77')]],db[_0x46d0('0x79')][_0x46d0('0x81')](_0x46d0('0x84')),['id',_0x46d0('0x80')]];}return db['CmHopper']['findOne']({'attributes':['id',_0x46d0('0x85'),_0x46d0('0x86')],'where':_0xe3c9f8,'order':_0xa47b1b,'transaction':_0x5f52ac,'lock':_0x5f52ac['LOCK']['UPDATE'],'include':[{'model':db[_0x46d0('0x71')],'as':_0x46d0('0x87'),'attributes':_0x399ee3,'include':[{'model':db['CmCompany'],'as':'Company','attributes':['id',_0x46d0('0x2a')]}]},{'model':db['CmList'],'as':_0x46d0('0x88'),'attributes':['id',_0x46d0('0x2a')]},{'model':db[_0x46d0('0x5d')],'as':_0x46d0('0x89'),'attributes':['id',_0x46d0('0x2a'),_0x46d0('0x8a')]}]})[_0x46d0('0x25')](function(_0x226097){if(_0x226097){return _0x226097[_0x46d0('0x24')]({'UserId':_0x5cc311['user']['id']},{'transaction':_0x5f52ac});}});});}})['then'](handleEntityNotFound(_0x2f1acb,null))[_0x46d0('0x25')](respondWithResult(_0x2f1acb,null))['catch'](handleError(_0x2f1acb,null));};exports[_0x46d0('0x8b')]=function(_0x249a3f,_0xc51093,_0x5731a7){return _0x249a3f['user'][_0x46d0('0x8c')]({'where':{'type':_0x46d0('0x8d'),'dialActive':!![],'dialMethod':_0x46d0('0x8e')},'attributes':['id'],'raw':!![]})[_0x46d0('0x25')](function(_0x2c7521){if(_0x2c7521&&_0x2c7521[_0x46d0('0x48')]){return db['CmHopper'][_0x46d0('0x1d')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x46d0('0x6a')](_0x46d0('0x6b'))},'VoiceQueueId':{'$in':_[_0x46d0('0x2d')](_0x2c7521,'id')},'$or':[{'UserId':null},{'UserId':_0x249a3f[_0x46d0('0x67')]['id']}]}});}return 0x0;})[_0x46d0('0x25')](function(_0x5e133f){if(!_[_0x46d0('0x75')](_0x5e133f)&&_['isNumber'](_0x5e133f)){return _0xc51093[_0x46d0('0x19')](0xc8)['json']({'contacts':_0x5e133f});}else{logger[_0x46d0('0x28')]('CmHopper,\x20%s,\x20%s,\x20%s',_0x46d0('0x8b'),0x194,_0x46d0('0x8f'));_0xc51093[_0x46d0('0x18')](0x194);}})[_0x46d0('0x54')](handleError(_0xc51093,null));};
\ No newline at end of file
+var _0x0e69=['$notILike','$like','$overlap','$any','attributes','intersection','fields','hasOwnProperty','nolimit','pick','filter','merge','where','VIRTUAL','options','includeAll','include','rows','catch','show','params','keys','find','create','body','update','describe','destroy','VoiceQueueId','VoiceQueue','Campaign','CampaignId','omit','dataValues','createdAt','updatedAt','statedesc','deleted','campaign','membername','user','UserId','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','end','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','length','sequelize','direction','prev','hopperIds','priority','ASC','scheduledAt','DESC','literal','isEmpty','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','CmCompany','Company','Queue','dialActive','getOpenContacts','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','count','limit','set','reject','then','sendStatus','error','stack','name','send','map','CmHopper','rawAttributes','fieldName','type','key','model','query','filters','concat','$and','$gte','$lt','$lte','$not','$between','$in','$notIn','$notLike','$iLike'];(function(_0x53fba5,_0x580aeb){var _0x47b96b=function(_0x4237c0){while(--_0x4237c0){_0x53fba5['push'](_0x53fba5['shift']());}};_0x47b96b(++_0x580aeb);}(_0x0e69,0xe2));var _0x90e6=function(_0x1a36a5,_0x746928){_0x1a36a5=_0x1a36a5-0x0;var _0x746243=_0x0e69[_0x1a36a5];return _0x746243;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x90e6('0x0'));var util=require(_0x90e6('0x1'));var path=require(_0x90e6('0x2'));var sox=require(_0x90e6('0x3'));var csv=require(_0x90e6('0x4'));var ejs=require(_0x90e6('0x5'));var fs=require('fs');var fs_extra=require(_0x90e6('0x6'));var _=require('lodash');var squel=require(_0x90e6('0x7'));var crypto=require('crypto');var jsforce=require(_0x90e6('0x8'));var deskjs=require('desk.js');var toCsv=require(_0x90e6('0x4'));var querystring=require(_0x90e6('0x9'));var Papa=require(_0x90e6('0xa'));var Redis=require('ioredis');var authService=require(_0x90e6('0xb'));var qs=require('../../components/parsers/qs');var as=require(_0x90e6('0xc'));var hardwareService=require(_0x90e6('0xd'));var logger=require(_0x90e6('0xe'))(_0x90e6('0xf'));var utils=require(_0x90e6('0x10'));var config=require(_0x90e6('0x11'));var licenseUtil=require(_0x90e6('0x12'));var db=require(_0x90e6('0x13'))['db'];function respondWithStatusCode(_0x5c359b,_0x1d2a94){_0x1d2a94=_0x1d2a94||0xcc;return function(_0xa81ee9){if(_0xa81ee9){return _0x5c359b['sendStatus'](_0x1d2a94);}return _0x5c359b[_0x90e6('0x14')](_0x1d2a94)['end']();};}function respondWithResult(_0x151983,_0x120e6c){_0x120e6c=_0x120e6c||0xc8;return function(_0xf16077){if(_0xf16077){return _0x151983[_0x90e6('0x14')](_0x120e6c)[_0x90e6('0x15')](_0xf16077);}};}function respondWithFilteredResult(_0x4f6f06,_0x168a19){return function(_0x1a9d18){if(_0x1a9d18){var _0x594169=typeof _0x168a19[_0x90e6('0x16')]===_0x90e6('0x17')&&typeof _0x168a19['limit']===_0x90e6('0x17');var _0x296734=_0x1a9d18[_0x90e6('0x18')];var _0x360afc=_0x594169?0x0:_0x168a19[_0x90e6('0x16')];var _0x140dec=_0x594169?_0x1a9d18[_0x90e6('0x18')]:_0x168a19[_0x90e6('0x16')]+_0x168a19[_0x90e6('0x19')];var _0x5b3b77;if(_0x140dec>=_0x296734){_0x140dec=_0x296734;_0x5b3b77=0xc8;}else{_0x5b3b77=0xce;}_0x4f6f06[_0x90e6('0x14')](_0x5b3b77);return _0x4f6f06[_0x90e6('0x1a')]('Content-Range',_0x360afc+'-'+_0x140dec+'/'+_0x296734)[_0x90e6('0x15')](_0x1a9d18);}return null;};}function patchUpdates(_0x1d0de1){return function(_0x23bc75){try{jsonpatch['apply'](_0x23bc75,_0x1d0de1,!![]);}catch(_0x1e564c){return BPromise[_0x90e6('0x1b')](_0x1e564c);}return _0x23bc75['save']();};}function saveUpdates(_0x3ee6ac,_0x59edb9){return function(_0x1543e2){if(_0x1543e2){return _0x1543e2['update'](_0x3ee6ac)[_0x90e6('0x1c')](function(_0x5c407f){return _0x5c407f;});}return null;};}function removeEntity(_0x9b6a17,_0x26e12a){return function(_0x1328d5){if(_0x1328d5){return _0x1328d5['destroy']()[_0x90e6('0x1c')](function(){_0x9b6a17[_0x90e6('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x23b082,_0x136bb7){return function(_0xd4bdd1){if(!_0xd4bdd1){_0x23b082[_0x90e6('0x1d')](0x194);}return _0xd4bdd1;};}function handleError(_0x2c26e9,_0x56e792){_0x56e792=_0x56e792||0x1f4;return function(_0x17c2a9){logger[_0x90e6('0x1e')](_0x17c2a9[_0x90e6('0x1f')]);if(_0x17c2a9[_0x90e6('0x20')]){delete _0x17c2a9[_0x90e6('0x20')];}_0x2c26e9[_0x90e6('0x14')](_0x56e792)[_0x90e6('0x21')](_0x17c2a9);};}exports['index']=function(_0x49edd0,_0x29a189){var _0x6f0436={},_0x37e79c={},_0x33cbb1={'count':0x0,'rows':[]};var _0xcad7a3=_[_0x90e6('0x22')](db[_0x90e6('0x23')][_0x90e6('0x24')],function(_0x3b9efb){return{'name':_0x3b9efb[_0x90e6('0x25')],'type':_0x3b9efb[_0x90e6('0x26')][_0x90e6('0x27')]};});_0x37e79c[_0x90e6('0x28')]=_[_0x90e6('0x22')](_0xcad7a3,_0x90e6('0x20'));_0x37e79c[_0x90e6('0x29')]=_['keys'](_0x49edd0[_0x90e6('0x29')]);_0x37e79c['filters']=_['intersection'](_0x37e79c[_0x90e6('0x28')],_0x37e79c[_0x90e6('0x29')]);_0x37e79c[_0x90e6('0x2a')]=_[_0x90e6('0x2b')](_0x37e79c[_0x90e6('0x2a')],[_0x90e6('0x2c'),'$or','$gt',_0x90e6('0x2d'),_0x90e6('0x2e'),_0x90e6('0x2f'),'$ne','$eq',_0x90e6('0x30'),_0x90e6('0x31'),'$notBetween',_0x90e6('0x32'),_0x90e6('0x33'),'$like',_0x90e6('0x34'),_0x90e6('0x35'),_0x90e6('0x36'),_0x90e6('0x37'),_0x90e6('0x38'),'$contains','$contained',_0x90e6('0x39')]);_0x6f0436[_0x90e6('0x3a')]=_[_0x90e6('0x3b')](_0x37e79c['model'],qs[_0x90e6('0x3c')](_0x49edd0[_0x90e6('0x29')]['fields']));_0x6f0436['attributes']=_0x6f0436['attributes']['length']?_0x6f0436[_0x90e6('0x3a')]:_0x37e79c[_0x90e6('0x28')];if(!_0x49edd0[_0x90e6('0x29')][_0x90e6('0x3d')](_0x90e6('0x3e'))){_0x6f0436[_0x90e6('0x19')]=qs['limit'](_0x49edd0[_0x90e6('0x29')]['limit']);_0x6f0436[_0x90e6('0x16')]=qs[_0x90e6('0x16')](_0x49edd0[_0x90e6('0x29')][_0x90e6('0x16')]);}_0x6f0436['order']=qs['sort'](_0x49edd0[_0x90e6('0x29')]['sort']);_0x6f0436['where']=qs[_0x90e6('0x2a')](_[_0x90e6('0x3f')](_0x49edd0[_0x90e6('0x29')],_0x37e79c[_0x90e6('0x2a')]),_0xcad7a3);if(_0x49edd0[_0x90e6('0x29')][_0x90e6('0x40')]){_0x6f0436['where']=_[_0x90e6('0x41')](_0x6f0436[_0x90e6('0x42')],{'$or':_[_0x90e6('0x22')](_0xcad7a3,function(_0xde384f){if(_0xde384f[_0x90e6('0x26')]!==_0x90e6('0x43')){var _0x5e85e2={};_0x5e85e2[_0xde384f[_0x90e6('0x20')]]={'$like':'%'+_0x49edd0['query'][_0x90e6('0x40')]+'%'};return _0x5e85e2;}})});}_0x6f0436=_[_0x90e6('0x41')]({},_0x6f0436,_0x49edd0[_0x90e6('0x44')]);var _0x35403f={'where':_0x6f0436[_0x90e6('0x42')]};return db[_0x90e6('0x23')][_0x90e6('0x18')](_0x35403f)['then'](function(_0x340cd2){_0x33cbb1[_0x90e6('0x18')]=_0x340cd2;if(_0x49edd0['query'][_0x90e6('0x45')]){_0x6f0436[_0x90e6('0x46')]=[{'all':!![]}];}return db[_0x90e6('0x23')]['findAll'](_0x6f0436);})[_0x90e6('0x1c')](function(_0x25f304){_0x33cbb1[_0x90e6('0x47')]=_0x25f304;return _0x33cbb1;})[_0x90e6('0x1c')](respondWithFilteredResult(_0x29a189,_0x6f0436))[_0x90e6('0x48')](handleError(_0x29a189,null));};exports[_0x90e6('0x49')]=function(_0x35b110,_0x241ec8){var _0x42d796={'raw':!![],'where':{'id':_0x35b110[_0x90e6('0x4a')]['id']}},_0x5a4a5e={};_0x5a4a5e[_0x90e6('0x28')]=_['keys'](db[_0x90e6('0x23')][_0x90e6('0x24')]);_0x5a4a5e['query']=_[_0x90e6('0x4b')](_0x35b110[_0x90e6('0x29')]);_0x5a4a5e[_0x90e6('0x2a')]=_[_0x90e6('0x3b')](_0x5a4a5e[_0x90e6('0x28')],_0x5a4a5e['query']);_0x42d796[_0x90e6('0x3a')]=_[_0x90e6('0x3b')](_0x5a4a5e[_0x90e6('0x28')],qs[_0x90e6('0x3c')](_0x35b110['query']['fields']));_0x42d796[_0x90e6('0x3a')]=_0x42d796[_0x90e6('0x3a')]['length']?_0x42d796[_0x90e6('0x3a')]:_0x5a4a5e[_0x90e6('0x28')];if(_0x35b110[_0x90e6('0x29')]['includeAll']){_0x42d796[_0x90e6('0x46')]=[{'all':!![]}];}_0x42d796=_['merge']({},_0x42d796,_0x35b110[_0x90e6('0x44')]);return db[_0x90e6('0x23')][_0x90e6('0x4c')](_0x42d796)[_0x90e6('0x1c')](handleEntityNotFound(_0x241ec8,null))['then'](respondWithResult(_0x241ec8,null))[_0x90e6('0x48')](handleError(_0x241ec8,null));};exports['create']=function(_0x443b90,_0x9c5551){return db[_0x90e6('0x23')][_0x90e6('0x4d')](_0x443b90[_0x90e6('0x4e')],{})[_0x90e6('0x1c')](respondWithResult(_0x9c5551,0xc9))['catch'](handleError(_0x9c5551,null));};exports[_0x90e6('0x4f')]=function(_0x541e34,_0x1fb86e){if(_0x541e34['body']['id']){delete _0x541e34['body']['id'];}return db[_0x90e6('0x23')][_0x90e6('0x4c')]({'where':{'id':_0x541e34[_0x90e6('0x4a')]['id']}})['then'](handleEntityNotFound(_0x1fb86e,null))[_0x90e6('0x1c')](saveUpdates(_0x541e34[_0x90e6('0x4e')],null))['then'](respondWithResult(_0x1fb86e,null))['catch'](handleError(_0x1fb86e,null));};exports[_0x90e6('0x50')]=function(_0x53dacf,_0x492af1){return db[_0x90e6('0x23')][_0x90e6('0x50')]()[_0x90e6('0x1c')](respondWithResult(_0x492af1,null))['catch'](handleError(_0x492af1,null));};exports['destroy']=function(_0x5d8400,_0x334d96){var _0x444533;return db[_0x90e6('0x23')][_0x90e6('0x4c')]({'where':{'id':_0x5d8400[_0x90e6('0x4a')]['id']}})['then'](handleEntityNotFound(_0x334d96,null))[_0x90e6('0x1c')](function(_0x582c41){if(_0x582c41){return _0x582c41[_0x90e6('0x51')]()[_0x90e6('0x1c')](function(_0x3567bb){return _0x3567bb;});}})['then'](function(_0xbc65a){_0x444533=_0xbc65a;if(_0xbc65a){if(_0xbc65a[_0x90e6('0x52')]||_0xbc65a['CampaignId']){return db[_0xbc65a['VoiceQueueId']?_0x90e6('0x53'):_0x90e6('0x54')][_0x90e6('0x4c')]({'where':{'id':_0xbc65a[_0x90e6('0x52')]?_0xbc65a[_0x90e6('0x52')]:_0xbc65a[_0x90e6('0x55')]},'attributes':['id',_0x90e6('0x20')],'raw':!![]});}}})['then'](function(_0x45685e){var _0x34caeb={};if(_0x45685e){_[_0x90e6('0x41')](_0x34caeb,_[_0x90e6('0x56')](_0x444533[_0x90e6('0x57')],[_0x90e6('0x58'),_0x90e6('0x59'),'id']));_0x34caeb['state']=0x15;_0x34caeb[_0x90e6('0x5a')]=_0x90e6('0x5b');_0x34caeb[_0x90e6('0x5c')]=_0x45685e['name'];_0x34caeb[_0x90e6('0x5d')]=_0x5d8400[_0x90e6('0x5e')][_0x90e6('0x20')];_0x34caeb[_0x90e6('0x5f')]=_0x5d8400['user']['id'];_0x34caeb['deleted']=!![];_0x34caeb[_0x90e6('0x60')]=moment()[_0x90e6('0x61')](_0x90e6('0x62'));_0x34caeb[_0x90e6('0x63')]=_0x444533[_0x90e6('0x64')];_0x34caeb['campaigntype']=_0x444533[_0x90e6('0x52')]?_0x90e6('0x65'):_0x90e6('0x66');return db[_0x90e6('0x67')]['find']({'where':{'id':_0x34caeb[_0x90e6('0x68')]},'attributes':[_0x90e6('0x69'),_0x90e6('0x6a')]})['then'](function(_0x456176){if(!_[_0x90e6('0x6b')](_0x334d96)&&!_[_0x90e6('0x6b')](_0x456176[_0x90e6('0x69')])){_0x34caeb['calleridname']=_0x456176['firstName'];if(!_[_0x90e6('0x6b')](_0x456176[_0x90e6('0x6a')])){_0x34caeb[_0x90e6('0x6c')]+='\x20'+_0x456176[_0x90e6('0x6a')];}}})[_0x90e6('0x6d')](function(){return db[_0x90e6('0x6e')][_0x90e6('0x4d')](_0x34caeb);});}})[_0x90e6('0x1c')](function(){return _0x334d96[_0x90e6('0x14')](0xcc)[_0x90e6('0x6f')]();})[_0x90e6('0x48')](handleError(_0x334d96,null));};exports['getPreview']=function(_0x58cf4d,_0x5d40c6,_0x2a5334){var _0x168ab2=[];return db[_0x90e6('0x67')]['describe']()[_0x90e6('0x1c')](function(_0x31754f){_0x168ab2=_[_0x90e6('0x4b')](_0x31754f);return _0x58cf4d[_0x90e6('0x5e')][_0x90e6('0x70')]({'where':{'type':_0x90e6('0x71'),'dialActive':!![],'dialMethod':_0x90e6('0x72')},'attributes':['id',_0x90e6('0x73')],'raw':!![]});})[_0x90e6('0x1c')](function(_0x24a7db){if(_0x24a7db&&_0x24a7db[_0x90e6('0x74')]){return db[_0x90e6('0x75')]['transaction'](function(_0x24ae51){var _0xc528ab={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x90e6('0x61')](_0x90e6('0x62'))},'VoiceQueueId':{'$in':_[_0x90e6('0x22')](_0x24a7db,'id')},'$or':[{'UserId':null},{'UserId':_0x58cf4d[_0x90e6('0x5e')]['id']}]};var _0x2032c4=[];if(_0x58cf4d[_0x90e6('0x4e')][_0x90e6('0x76')]&&_0x58cf4d[_0x90e6('0x4e')]['direction']===_0x90e6('0x77')){if(!_['isEmpty'](_0x58cf4d[_0x90e6('0x4e')][_0x90e6('0x78')])){_0xc528ab['id']={'$in':_0x58cf4d['body'][_0x90e6('0x78')]};}_0x2032c4=[[_0x90e6('0x79'),_0x90e6('0x7a')],[_0x90e6('0x7b'),_0x24a7db[0x0][_0x90e6('0x73')]===_0x90e6('0x7a')?_0x90e6('0x7c'):'ASC'],db['sequelize'][_0x90e6('0x7d')]('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id',_0x90e6('0x7c')]];}else{if(!_[_0x90e6('0x7e')](_0x58cf4d[_0x90e6('0x4e')][_0x90e6('0x78')])){_0xc528ab['id']={'$notIn':_0x58cf4d['body']['hopperIds']};}_0x2032c4=[[_0x90e6('0x79'),_0x90e6('0x7c')],[_0x90e6('0x7b'),_0x24a7db[0x0][_0x90e6('0x73')]],db[_0x90e6('0x75')][_0x90e6('0x7d')](_0x90e6('0x7f')),['id',_0x90e6('0x7a')]];}return db[_0x90e6('0x23')][_0x90e6('0x80')]({'attributes':['id',_0x90e6('0x81')],'where':_0xc528ab,'order':_0x2032c4,'transaction':_0x24ae51,'lock':_0x24ae51[_0x90e6('0x82')][_0x90e6('0x83')],'include':[{'model':db[_0x90e6('0x67')],'as':'Contact','attributes':_0x168ab2,'include':[{'model':db[_0x90e6('0x84')],'as':_0x90e6('0x85'),'attributes':['id',_0x90e6('0x20')]}]},{'model':db['CmList'],'as':'List','attributes':['id',_0x90e6('0x20')]},{'model':db[_0x90e6('0x53')],'as':_0x90e6('0x86'),'attributes':['id',_0x90e6('0x20'),_0x90e6('0x87')]}]})['then'](function(_0x1a0130){if(_0x1a0130){return _0x1a0130[_0x90e6('0x4f')]({'UserId':_0x58cf4d[_0x90e6('0x5e')]['id']},{'transaction':_0x24ae51});}});});}})['then'](handleEntityNotFound(_0x5d40c6,null))[_0x90e6('0x1c')](respondWithResult(_0x5d40c6,null))[_0x90e6('0x48')](handleError(_0x5d40c6,null));};exports[_0x90e6('0x88')]=function(_0x177027,_0x340791,_0x1ea1a4){return _0x177027[_0x90e6('0x5e')]['getVoiceQueues']({'where':{'type':_0x90e6('0x71'),'dialActive':!![],'dialMethod':_0x90e6('0x72')},'attributes':['id'],'raw':!![]})[_0x90e6('0x1c')](function(_0x46b0f0){if(_0x46b0f0&&_0x46b0f0['length']){return db[_0x90e6('0x23')][_0x90e6('0x18')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0x90e6('0x62'))},'VoiceQueueId':{'$in':_['map'](_0x46b0f0,'id')},'$or':[{'UserId':null},{'UserId':_0x177027['user']['id']}]}});}return 0x0;})[_0x90e6('0x1c')](function(_0x1ff5d8){if(!_['isNil'](_0x1ff5d8)&&_[_0x90e6('0x89')](_0x1ff5d8)){return _0x340791[_0x90e6('0x14')](0xc8)[_0x90e6('0x15')]({'contacts':_0x1ff5d8});}else{logger['error'](_0x90e6('0x8a'),_0x90e6('0x88'),0x194,_0x90e6('0x8b'));_0x340791[_0x90e6('0x1d')](0x194);}})['catch'](handleError(_0x340791,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeff8=['lodash','util','api','moment','bluebird','path','rimraf','../../config/environment','./cmHopper.attributes','define','CmHopper','scheduledat','phone'];(function(_0x17f5b4,_0x3716fa){var _0x37e3d6=function(_0x2d73fc){while(--_0x2d73fc){_0x17f5b4['push'](_0x17f5b4['shift']());}};_0x37e3d6(++_0x3716fa);}(_0xeff8,0x186));var _0x8eff=function(_0x365be9,_0x3c88b9){_0x365be9=_0x365be9-0x0;var _0x185c12=_0xeff8[_0x365be9];return _0x185c12;};'use strict';var _=require(_0x8eff('0x0'));var util=require(_0x8eff('0x1'));var logger=require('../../config/logger')(_0x8eff('0x2'));var moment=require(_0x8eff('0x3'));var BPromise=require(_0x8eff('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x8eff('0x5'));var rimraf=require(_0x8eff('0x6'));var config=require(_0x8eff('0x7'));var attributes=require(_0x8eff('0x8'));module['exports']=function(_0x469641,_0xb54063){return _0x469641[_0x8eff('0x9')](_0x8eff('0xa'),attributes,{'tableName':'cm_hopper','paranoid':![],'indexes':[{'name':_0x8eff('0xb'),'fields':[_0x8eff('0xb')]},{'name':_0x8eff('0xc'),'fields':[_0x8eff('0xc')]},{'name':'priority','fields':['priority']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x1883=['../../config/environment','./cmHopper.attributes','exports','define','CmHopper','cm_hopper','scheduledat','phone','priority','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x4d662b,_0x3da4aa){var _0x5003b6=function(_0x134798){while(--_0x134798){_0x4d662b['push'](_0x4d662b['shift']());}};_0x5003b6(++_0x3da4aa);}(_0x1883,0xab));var _0x3188=function(_0x36e84a,_0xc37a13){_0x36e84a=_0x36e84a-0x0;var _0x11839e=_0x1883[_0x36e84a];return _0x11839e;};'use strict';var _=require(_0x3188('0x0'));var util=require(_0x3188('0x1'));var logger=require(_0x3188('0x2'))(_0x3188('0x3'));var moment=require(_0x3188('0x4'));var BPromise=require(_0x3188('0x5'));var rp=require(_0x3188('0x6'));var fs=require('fs');var path=require(_0x3188('0x7'));var rimraf=require(_0x3188('0x8'));var config=require(_0x3188('0x9'));var attributes=require(_0x3188('0xa'));module[_0x3188('0xb')]=function(_0x408ae0,_0x33b62d){return _0x408ae0[_0x3188('0xc')](_0x3188('0xd'),attributes,{'tableName':_0x3188('0xe'),'paranoid':![],'indexes':[{'name':'scheduledat','fields':[_0x3188('0xf')]},{'name':_0x3188('0x10'),'fields':['phone']},{'name':_0x3188('0x11'),'fields':['priority']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a27=['all','MoveContactManagedDialer','sequelize','CmHopperFinal','CountReScheduled','COUNT','`scheduledat`\x20>=\x20','\x22%s\x22','YYYY-MM-DD\x20HH:mm:ss','\x20,\x201,\x20null','GetContactRecallMe','describe','GetCmHopperPreview','lodash','util','moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','client','http','then','info','request\x20sent','debug','CmHopper,\x20%s,\x20%s,\x20%s','stringify','error','code','CmHopper,\x20%s,\x20%s','message','result','catch','CmHopper','options','raw','include','model','map','attributes','GetCmHopper','ShowCmHopper','where','CreateCmHopper','create','UpdateCmHopper','update','body','limit','DestroyCmHopper','destroy','GetContactDialer','CmContact','transaction','findAll','order','LOCK','Contact','keys','User','voicePause','length','UserId','push','includes'];(function(_0x231578,_0x2a37be){var _0x25c8a8=function(_0x4058c4){while(--_0x4058c4){_0x231578['push'](_0x231578['shift']());}};_0x25c8a8(++_0x2a37be);}(_0x8a27,0x93));var _0x78a2=function(_0x198ef4,_0x1c40b6){_0x198ef4=_0x198ef4-0x0;var _0x43bb30=_0x8a27[_0x198ef4];return _0x43bb30;};'use strict';var _=require(_0x78a2('0x0'));var util=require(_0x78a2('0x1'));var moment=require(_0x78a2('0x2'));var BPromise=require('bluebird');var rs=require(_0x78a2('0x3'));var fs=require('fs');var Redis=require(_0x78a2('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x78a2('0x5'))(_0x78a2('0x6'));var config=require(_0x78a2('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x78a2('0x8')][_0x78a2('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x28f56a,_0x3d6e45,_0x587465){return new BPromise(function(_0x14be8c,_0xab7b55){return client['request'](_0x28f56a,_0x587465)[_0x78a2('0xa')](function(_0x1aee4b){logger[_0x78a2('0xb')]('CmHopper,\x20%s,\x20%s',_0x3d6e45,_0x78a2('0xc'));logger[_0x78a2('0xd')](_0x78a2('0xe'),_0x3d6e45,_0x78a2('0xc'),JSON[_0x78a2('0xf')](_0x1aee4b));if(_0x1aee4b[_0x78a2('0x10')]){if(_0x1aee4b['error'][_0x78a2('0x11')]===0x1f4){logger[_0x78a2('0x10')](_0x78a2('0x12'),_0x3d6e45,_0x1aee4b[_0x78a2('0x10')]['message']);return _0xab7b55(_0x1aee4b[_0x78a2('0x10')][_0x78a2('0x13')]);}logger['error'](_0x78a2('0x12'),_0x3d6e45,_0x1aee4b[_0x78a2('0x10')][_0x78a2('0x13')]);return _0x14be8c(_0x1aee4b['error'][_0x78a2('0x13')]);}else{logger[_0x78a2('0xb')]('CmHopper,\x20%s,\x20%s',_0x3d6e45,'request\x20sent');_0x14be8c(_0x1aee4b[_0x78a2('0x14')][_0x78a2('0x13')]);}})[_0x78a2('0x15')](function(_0x4a1c8e){logger['error'](_0x78a2('0x12'),_0x3d6e45,_0x4a1c8e);_0xab7b55(_0x4a1c8e);});});}exports['GetCmHopper']=function(_0x107d00){var _0x16def=this;return new Promise(function(_0x3ef568,_0x3df0b5){return db[_0x78a2('0x16')]['findAll']({'raw':_0x107d00[_0x78a2('0x17')]?_0x107d00[_0x78a2('0x17')][_0x78a2('0x18')]===undefined?!![]:![]:!![],'where':_0x107d00['options']?_0x107d00[_0x78a2('0x17')]['where']||null:null,'attributes':_0x107d00[_0x78a2('0x17')]?_0x107d00['options']['attributes']||null:null,'limit':_0x107d00[_0x78a2('0x17')]?_0x107d00[_0x78a2('0x17')]['limit']||null:null,'include':_0x107d00['options']?_0x107d00[_0x78a2('0x17')][_0x78a2('0x19')]?_['map'](_0x107d00['options']['include'],function(_0x11a838){return{'model':db[_0x11a838['model']],'as':_0x11a838['as'],'attributes':_0x11a838['attributes'],'include':_0x11a838['include']?_['map'](_0x11a838[_0x78a2('0x19')],function(_0x36b0f5){return{'model':db[_0x36b0f5[_0x78a2('0x1a')]],'as':_0x36b0f5['as'],'attributes':_0x36b0f5['attributes'],'include':_0x36b0f5[_0x78a2('0x19')]?_[_0x78a2('0x1b')](_0x36b0f5[_0x78a2('0x19')],function(_0x15be88){return{'model':db[_0x15be88[_0x78a2('0x1a')]],'as':_0x15be88['as'],'attributes':_0x15be88[_0x78a2('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x78a2('0xa')](function(_0x420e5d){logger[_0x78a2('0xb')](_0x78a2('0x1d'),_0x107d00);logger[_0x78a2('0xd')](_0x78a2('0x1d'),_0x107d00,JSON[_0x78a2('0xf')](_0x420e5d));_0x3ef568(_0x420e5d);})[_0x78a2('0x15')](function(_0x27ba57){logger[_0x78a2('0x10')]('GetCmHopper',_0x27ba57[_0x78a2('0x13')],_0x107d00);_0x3df0b5(_0x16def[_0x78a2('0x10')](0x1f4,_0x27ba57[_0x78a2('0x13')]));});});};exports[_0x78a2('0x1e')]=function(_0x87966b){var _0x173f0f=this;return new Promise(function(_0x17cbad,_0x9dc4f9){return db['CmHopper']['find']({'raw':_0x87966b['options']?_0x87966b[_0x78a2('0x17')][_0x78a2('0x18')]===undefined?!![]:![]:!![],'where':_0x87966b['options']?_0x87966b[_0x78a2('0x17')][_0x78a2('0x1f')]||null:null,'attributes':_0x87966b['options']?_0x87966b[_0x78a2('0x17')]['attributes']||null:null,'include':_0x87966b['options']?_0x87966b[_0x78a2('0x17')][_0x78a2('0x19')]?_[_0x78a2('0x1b')](_0x87966b[_0x78a2('0x17')][_0x78a2('0x19')],function(_0x533b84){return{'model':db[_0x533b84[_0x78a2('0x1a')]],'as':_0x533b84['as'],'attributes':_0x533b84['attributes'],'include':_0x533b84[_0x78a2('0x19')]?_[_0x78a2('0x1b')](_0x533b84[_0x78a2('0x19')],function(_0x2ba08a){return{'model':db[_0x2ba08a[_0x78a2('0x1a')]],'as':_0x2ba08a['as'],'attributes':_0x2ba08a[_0x78a2('0x1c')],'include':_0x2ba08a[_0x78a2('0x19')]?_[_0x78a2('0x1b')](_0x2ba08a[_0x78a2('0x19')],function(_0x383b6c){return{'model':db[_0x383b6c['model']],'as':_0x383b6c['as'],'attributes':_0x383b6c[_0x78a2('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x78a2('0xa')](function(_0x23fae2){logger['info'](_0x78a2('0x1e'),_0x87966b);logger[_0x78a2('0xd')](_0x78a2('0x1e'),_0x87966b,JSON['stringify'](_0x23fae2));_0x17cbad(_0x23fae2);})[_0x78a2('0x15')](function(_0x4088aa){logger[_0x78a2('0x10')](_0x78a2('0x1e'),_0x4088aa[_0x78a2('0x13')],_0x87966b);_0x9dc4f9(_0x173f0f[_0x78a2('0x10')](0x1f4,_0x4088aa[_0x78a2('0x13')]));});});};exports[_0x78a2('0x20')]=function(_0x2d3779){var _0x27712b=this;return new Promise(function(_0x44e264,_0x222399){return db[_0x78a2('0x16')][_0x78a2('0x21')](_0x2d3779['body'],{'raw':_0x2d3779[_0x78a2('0x17')]?_0x2d3779[_0x78a2('0x17')]['raw']===undefined?!![]:![]:!![]})[_0x78a2('0xa')](function(_0x4dad23){logger[_0x78a2('0xb')](_0x78a2('0x20'),_0x2d3779);logger[_0x78a2('0xd')](_0x78a2('0x20'),_0x2d3779,JSON[_0x78a2('0xf')](_0x4dad23));_0x44e264(_0x4dad23);})[_0x78a2('0x15')](function(_0x49ccc7){logger[_0x78a2('0x10')](_0x78a2('0x20'),_0x49ccc7[_0x78a2('0x13')],_0x2d3779);_0x222399(_0x27712b[_0x78a2('0x10')](0x1f4,_0x49ccc7[_0x78a2('0x13')]));});});};exports[_0x78a2('0x22')]=function(_0x19fa6c){var _0x449b6d=this;return new Promise(function(_0x8852c3,_0x3740d9){return db['CmHopper'][_0x78a2('0x23')](_0x19fa6c[_0x78a2('0x24')],{'raw':_0x19fa6c['options']?_0x19fa6c[_0x78a2('0x17')][_0x78a2('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x19fa6c[_0x78a2('0x17')]?_0x19fa6c[_0x78a2('0x17')][_0x78a2('0x1f')]||null:null,'attributes':_0x19fa6c[_0x78a2('0x17')]?_0x19fa6c[_0x78a2('0x17')]['attributes']||null:null,'limit':_0x19fa6c[_0x78a2('0x17')]?_0x19fa6c['options'][_0x78a2('0x25')]||null:null})[_0x78a2('0xa')](function(_0x2eccca){logger[_0x78a2('0xb')](_0x78a2('0x22'),_0x19fa6c);logger['debug'](_0x78a2('0x22'),_0x19fa6c,JSON['stringify'](_0x2eccca));_0x8852c3(_0x2eccca);})[_0x78a2('0x15')](function(_0x22c2e0){logger[_0x78a2('0x10')](_0x78a2('0x22'),_0x22c2e0[_0x78a2('0x13')],_0x19fa6c);_0x3740d9(_0x449b6d[_0x78a2('0x10')](0x1f4,_0x22c2e0[_0x78a2('0x13')]));});});};exports[_0x78a2('0x26')]=function(_0x547ab0){var _0x55b0ec=this;return new Promise(function(_0xc1e04f,_0x500aee){return db[_0x78a2('0x16')][_0x78a2('0x27')]({'where':_0x547ab0[_0x78a2('0x17')]?_0x547ab0[_0x78a2('0x17')][_0x78a2('0x1f')]||null:null})[_0x78a2('0xa')](function(_0x3d6d00){logger[_0x78a2('0xb')](_0x78a2('0x26'),_0x547ab0);logger[_0x78a2('0xd')](_0x78a2('0x26'),_0x547ab0,JSON[_0x78a2('0xf')](_0x3d6d00));_0xc1e04f(_0x3d6d00);})[_0x78a2('0x15')](function(_0x5b5be0){logger[_0x78a2('0x10')](_0x78a2('0x26'),_0x5b5be0['message'],_0x547ab0);_0x500aee(_0x55b0ec[_0x78a2('0x10')](0x1f4,_0x5b5be0[_0x78a2('0x13')]));});});};exports[_0x78a2('0x28')]=function(_0x53d5f0){var _0x1f389a=this;return new Promise(function(_0x69bf85,_0x37dba5){return db[_0x78a2('0x29')]['describe']()['then'](function(_0x178e4d){return db['sequelize'][_0x78a2('0x2a')](function(_0xdfb4a2){return db[_0x78a2('0x16')][_0x78a2('0x2b')]({'where':_0x53d5f0[_0x78a2('0x17')]?_0x53d5f0['options'][_0x78a2('0x1f')]||null:null,'attributes':_0x53d5f0[_0x78a2('0x17')]?_0x53d5f0[_0x78a2('0x17')][_0x78a2('0x1c')]||null:null,'limit':_0x53d5f0[_0x78a2('0x17')]?_0x53d5f0[_0x78a2('0x17')][_0x78a2('0x25')]||null:null,'order':_0x53d5f0[_0x78a2('0x17')]?_0x53d5f0[_0x78a2('0x17')][_0x78a2('0x2c')]||null:null,'transaction':_0xdfb4a2,'lock':_0xdfb4a2[_0x78a2('0x2d')]['UPDATE'],'include':[{'model':db[_0x78a2('0x29')],'as':_0x78a2('0x2e'),'attributes':_[_0x78a2('0x2f')](_0x178e4d)},{'model':db[_0x78a2('0x30')],'as':'Agent','attributes':['id','name',_0x78a2('0x31')]}]})[_0x78a2('0xa')](function(_0x2e1b07){var _0x48be71=[];var _0x2c627a=[];for(var _0x231f50=0x0;_0x231f50<_0x2e1b07[_0x78a2('0x32')];_0x231f50+=0x1){var _0x4a1729=_0x2e1b07[_0x231f50][_0x78a2('0x33')];if(_0x4a1729===null){_0x48be71[_0x78a2('0x34')](_0x2e1b07[_0x231f50][_0x78a2('0x23')](_0x53d5f0['body'],{'transaction':_0xdfb4a2}));}else if(!_0x2c627a[_0x78a2('0x35')](_0x4a1729)){_0x2c627a[_0x78a2('0x34')](_0x4a1729);_0x48be71['push'](_0x2e1b07[_0x231f50][_0x78a2('0x23')](_0x53d5f0[_0x78a2('0x24')],{'transaction':_0xdfb4a2}));}}return BPromise[_0x78a2('0x36')](_0x48be71);});})[_0x78a2('0xa')](function(_0x42680a){logger[_0x78a2('0xb')](_0x78a2('0x28'),_0x53d5f0);logger['debug']('GetContactDialer',_0x53d5f0,JSON['stringify'](_0x42680a));_0x69bf85(_0x42680a);})[_0x78a2('0x15')](function(_0xbefce1){logger['error'](_0x78a2('0x28'),_0xbefce1['message'],_0x53d5f0);_0x37dba5(_0x1f389a[_0x78a2('0x10')](0x1f4,_0xbefce1[_0x78a2('0x13')]));});});});};exports[_0x78a2('0x37')]=function(_0x53bc66){var _0x2f5bd=this;return new Promise(function(_0x207595,_0x34e0b2){return db[_0x78a2('0x38')]['transaction'](function(_0x4da975){return db[_0x78a2('0x39')][_0x78a2('0x21')](_0x53bc66[_0x78a2('0x24')],{'raw':_0x53bc66[_0x78a2('0x17')]?_0x53bc66[_0x78a2('0x17')][_0x78a2('0x18')]===undefined?!![]:![]:!![],'transaction':_0x4da975})[_0x78a2('0xa')](function(){return db[_0x78a2('0x16')][_0x78a2('0x27')]({'where':_0x53bc66[_0x78a2('0x17')]?_0x53bc66[_0x78a2('0x17')]['where']||null:null,'transaction':_0x4da975});});})['then'](function(_0x1ae2cc){logger[_0x78a2('0xb')](_0x78a2('0x37'),_0x53bc66);logger[_0x78a2('0xd')]('MoveContactManagedDialer',_0x53bc66,JSON[_0x78a2('0xf')](_0x1ae2cc));_0x207595(_0x1ae2cc);})['catch'](function(_0x222e0d){logger['error']('MoveContactManagedDialer',_0x222e0d[_0x78a2('0x13')],_0x53bc66);_0x34e0b2(_0x2f5bd[_0x78a2('0x10')](0x1f4,_0x222e0d[_0x78a2('0x13')]));});});};exports[_0x78a2('0x3a')]=function(_0x5e0684){var _0x1dc753=this;return new Promise(function(_0x243c57,_0x40b9c5){return db[_0x78a2('0x16')][_0x78a2('0x2b')]({'raw':_0x5e0684['options']?_0x5e0684[_0x78a2('0x17')][_0x78a2('0x18')]===undefined?!![]:![]:!![],'where':_0x5e0684[_0x78a2('0x17')]?_0x5e0684[_0x78a2('0x17')][_0x78a2('0x1f')]||null:null,'attributes':[[db['sequelize']['fn'](_0x78a2('0x3b'),db[_0x78a2('0x38')]['fn']('IF',db['sequelize']['literal'](_0x78a2('0x3c')+util['format'](_0x78a2('0x3d'),moment()['format'](_0x78a2('0x3e')))+_0x78a2('0x3f')))),'contactsRescheduled']]})[_0x78a2('0xa')](function(_0x216532){logger['info']('CountReScheduled',_0x5e0684);logger[_0x78a2('0xd')](_0x78a2('0x3a'),_0x5e0684,JSON[_0x78a2('0xf')](_0x216532));_0x243c57(_0x216532);})['catch'](function(_0x22737c){logger[_0x78a2('0x10')](_0x78a2('0x3a'),_0x22737c[_0x78a2('0x13')],_0x5e0684);_0x40b9c5(_0x1dc753['error'](0x1f4,_0x22737c['message']));});});};exports[_0x78a2('0x40')]=function(_0xab5874){var _0xf78bcf=this;return new Promise(function(_0x2f6a4d,_0x3ece69){return db[_0x78a2('0x29')][_0x78a2('0x41')]()[_0x78a2('0xa')](function(_0x33765c){return db[_0x78a2('0x38')][_0x78a2('0x2a')](function(_0x3f7e6e){return db[_0x78a2('0x16')][_0x78a2('0x2b')]({'where':_0xab5874[_0x78a2('0x17')]?_0xab5874[_0x78a2('0x17')]['where']||null:null,'attributes':_0xab5874[_0x78a2('0x17')]?_0xab5874[_0x78a2('0x17')]['attributes']||null:null,'limit':0x1,'order':_0xab5874[_0x78a2('0x17')]?_0xab5874[_0x78a2('0x17')][_0x78a2('0x2c')]||null:null,'group':db[_0x78a2('0x16')][_0x78a2('0x33')],'transaction':_0x3f7e6e,'lock':_0x3f7e6e[_0x78a2('0x2d')]['UPDATE'],'include':_0xab5874[_0x78a2('0x17')]?_0xab5874[_0x78a2('0x17')][_0x78a2('0x19')]?_[_0x78a2('0x1b')](_0xab5874[_0x78a2('0x17')]['include'],function(_0x4768fb){return{'model':db[_0x4768fb['model']],'as':_0x4768fb['as'],'attributes':_0x4768fb[_0x78a2('0x1c')],'include':_0x4768fb[_0x78a2('0x19')]?_[_0x78a2('0x1b')](_0x4768fb[_0x78a2('0x19')],function(_0xb733cb){return{'model':db[_0xb733cb[_0x78a2('0x1a')]],'as':_0xb733cb['as'],'attributes':_0xb733cb['attributes'],'include':_0xb733cb[_0x78a2('0x19')]?_[_0x78a2('0x1b')](_0xb733cb[_0x78a2('0x19')],function(_0x40b606){return{'model':db[_0x40b606[_0x78a2('0x1a')]],'as':_0x40b606['as'],'attributes':_0x40b606[_0x78a2('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x78a2('0xa')](function(_0x476f2f){var _0x1e5bef=[];for(var _0x534283=0x0;_0x534283<_0x476f2f[_0x78a2('0x32')];_0x534283+=0x1){_0x1e5bef[_0x78a2('0x34')](_0x476f2f[_0x534283][_0x78a2('0x23')](_0xab5874['body'],{'transaction':_0x3f7e6e}));}return BPromise[_0x78a2('0x36')](_0x1e5bef);});})[_0x78a2('0xa')](function(_0x2a2a62){logger[_0x78a2('0xb')]('GetContactRecallMe',_0xab5874);logger[_0x78a2('0xd')](_0x78a2('0x40'),_0xab5874,JSON['stringify'](_0x2a2a62));_0x2f6a4d(_0x2a2a62);})[_0x78a2('0x15')](function(_0x3ee98d){logger[_0x78a2('0x10')](_0x78a2('0x40'),_0x3ee98d['message'],_0xab5874);_0x3ece69(_0xf78bcf[_0x78a2('0x10')](0x1f4,_0x3ee98d[_0x78a2('0x13')]));});});});};exports[_0x78a2('0x42')]=function(_0x5036ec){var _0x1d93c8=this;return new Promise(function(_0x37af29,_0x25eb6c){db['CmContact'][_0x78a2('0x41')]()[_0x78a2('0xa')](function(_0x4e6f32){return db[_0x78a2('0x16')][_0x78a2('0x2b')]({'raw':_0x5036ec[_0x78a2('0x17')]?_0x5036ec['options'][_0x78a2('0x18')]===undefined?!![]:![]:!![],'where':_0x5036ec[_0x78a2('0x17')]?_0x5036ec[_0x78a2('0x17')][_0x78a2('0x1f')]||null:null,'attributes':_0x5036ec[_0x78a2('0x17')]?_0x5036ec[_0x78a2('0x17')][_0x78a2('0x1c')]||null:null,'limit':_0x5036ec['options']?_0x5036ec['options'][_0x78a2('0x25')]||null:null,'include':_0x5036ec[_0x78a2('0x17')]?_0x5036ec[_0x78a2('0x17')][_0x78a2('0x19')]?_['map'](_0x5036ec[_0x78a2('0x17')][_0x78a2('0x19')],function(_0x533a8c){return{'model':db[_0x533a8c[_0x78a2('0x1a')]],'as':_0x533a8c['as'],'attributes':_0x533a8c['as']===_0x78a2('0x2e')?_[_0x78a2('0x2f')](_0x4e6f32):_0x533a8c[_0x78a2('0x1c')],'include':_0x533a8c['include']?_[_0x78a2('0x1b')](_0x533a8c[_0x78a2('0x19')],function(_0x3049fe){return{'model':db[_0x3049fe['model']],'as':_0x3049fe['as'],'attributes':_0x3049fe[_0x78a2('0x1c')],'include':_0x3049fe[_0x78a2('0x19')]?_[_0x78a2('0x1b')](_0x3049fe[_0x78a2('0x19')],function(_0x3f927c){return{'model':db[_0x3f927c['model']],'as':_0x3f927c['as'],'attributes':_0x3f927c[_0x78a2('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x78a2('0xa')](function(_0x57f11b){logger['info'](_0x78a2('0x1d'),_0x5036ec);logger['debug']('GetCmHopper',_0x5036ec,JSON[_0x78a2('0xf')](_0x57f11b));_0x37af29(_0x57f11b);})['catch'](function(_0x180585){logger[_0x78a2('0x10')](_0x78a2('0x1d'),_0x180585[_0x78a2('0x13')],_0x5036ec);_0x25eb6c(_0x1d93c8[_0x78a2('0x10')](0x1f4,_0x180585[_0x78a2('0x13')]));});});});};
\ No newline at end of file
+var _0x7fd4=['catch','GetCmHopper','CmHopper','findAll','options','attributes','limit','include','map','model','ShowCmHopper','find','where','CreateCmHopper','UpdateCmHopper','body','raw','DestroyCmHopper','destroy','GetContactDialer','sequelize','transaction','LOCK','UPDATE','Contact','keys','User','Agent','name','voicePause','length','UserId','push','update','all','create','MoveContactManagedDialer','COUNT','literal','`scheduledat`\x20>=\x20','format','YYYY-MM-DD\x20HH:mm:ss','\x20,\x201,\x20null','contactsRescheduled','CountReScheduled','GetContactRecallMe','CmContact','describe','order','lodash','moment','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','request','then','info','CmHopper,\x20%s,\x20%s','debug','CmHopper,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result'];(function(_0x5b9a30,_0x2b3667){var _0x35f722=function(_0xfb962b){while(--_0xfb962b){_0x5b9a30['push'](_0x5b9a30['shift']());}};_0x35f722(++_0x2b3667);}(_0x7fd4,0x103));var _0x47fd=function(_0x2e913b,_0x4b7071){_0x2e913b=_0x2e913b-0x0;var _0x173899=_0x7fd4[_0x2e913b];return _0x173899;};'use strict';var _=require(_0x47fd('0x0'));var util=require('util');var moment=require(_0x47fd('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x47fd('0x2'));var db=require(_0x47fd('0x3'))['db'];var utils=require(_0x47fd('0x4'));var logger=require('../../config/logger')(_0x47fd('0x5'));var config=require(_0x47fd('0x6'));var jayson=require(_0x47fd('0x7'));var client=jayson['client'][_0x47fd('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x31fa2a,_0x115f15,_0x1727ca){return new BPromise(function(_0x4b1642,_0x1a06c5){return client[_0x47fd('0x9')](_0x31fa2a,_0x1727ca)[_0x47fd('0xa')](function(_0x249bab){logger[_0x47fd('0xb')](_0x47fd('0xc'),_0x115f15,'request\x20sent');logger[_0x47fd('0xd')](_0x47fd('0xe'),_0x115f15,_0x47fd('0xf'),JSON[_0x47fd('0x10')](_0x249bab));if(_0x249bab['error']){if(_0x249bab['error'][_0x47fd('0x11')]===0x1f4){logger[_0x47fd('0x12')](_0x47fd('0xc'),_0x115f15,_0x249bab[_0x47fd('0x12')][_0x47fd('0x13')]);return _0x1a06c5(_0x249bab['error'][_0x47fd('0x13')]);}logger['error'](_0x47fd('0xc'),_0x115f15,_0x249bab[_0x47fd('0x12')][_0x47fd('0x13')]);return _0x4b1642(_0x249bab[_0x47fd('0x12')][_0x47fd('0x13')]);}else{logger[_0x47fd('0xb')]('CmHopper,\x20%s,\x20%s',_0x115f15,_0x47fd('0xf'));_0x4b1642(_0x249bab[_0x47fd('0x14')][_0x47fd('0x13')]);}})[_0x47fd('0x15')](function(_0x59ca1c){logger['error'](_0x47fd('0xc'),_0x115f15,_0x59ca1c);_0x1a06c5(_0x59ca1c);});});}exports[_0x47fd('0x16')]=function(_0x338a77){var _0x4c3a2d=this;return new Promise(function(_0x17597a,_0x1c4f15){return db[_0x47fd('0x17')][_0x47fd('0x18')]({'raw':_0x338a77[_0x47fd('0x19')]?_0x338a77[_0x47fd('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x338a77['options']?_0x338a77['options']['where']||null:null,'attributes':_0x338a77['options']?_0x338a77['options'][_0x47fd('0x1a')]||null:null,'limit':_0x338a77[_0x47fd('0x19')]?_0x338a77['options'][_0x47fd('0x1b')]||null:null,'include':_0x338a77[_0x47fd('0x19')]?_0x338a77[_0x47fd('0x19')][_0x47fd('0x1c')]?_[_0x47fd('0x1d')](_0x338a77[_0x47fd('0x19')][_0x47fd('0x1c')],function(_0x21b63e){return{'model':db[_0x21b63e[_0x47fd('0x1e')]],'as':_0x21b63e['as'],'attributes':_0x21b63e[_0x47fd('0x1a')],'include':_0x21b63e[_0x47fd('0x1c')]?_[_0x47fd('0x1d')](_0x21b63e['include'],function(_0x4533c9){return{'model':db[_0x4533c9[_0x47fd('0x1e')]],'as':_0x4533c9['as'],'attributes':_0x4533c9['attributes'],'include':_0x4533c9[_0x47fd('0x1c')]?_[_0x47fd('0x1d')](_0x4533c9[_0x47fd('0x1c')],function(_0x2630a6){return{'model':db[_0x2630a6[_0x47fd('0x1e')]],'as':_0x2630a6['as'],'attributes':_0x2630a6['attributes']};}):[]};}):[]};}):[]:[]})[_0x47fd('0xa')](function(_0x182dae){logger[_0x47fd('0xb')](_0x47fd('0x16'),_0x338a77);logger['debug']('GetCmHopper',_0x338a77,JSON[_0x47fd('0x10')](_0x182dae));_0x17597a(_0x182dae);})[_0x47fd('0x15')](function(_0x43d92d){logger[_0x47fd('0x12')](_0x47fd('0x16'),_0x43d92d[_0x47fd('0x13')],_0x338a77);_0x1c4f15(_0x4c3a2d[_0x47fd('0x12')](0x1f4,_0x43d92d[_0x47fd('0x13')]));});});};exports[_0x47fd('0x1f')]=function(_0x172e46){var _0x2daa21=this;return new Promise(function(_0x269e84,_0x2b61ca){return db[_0x47fd('0x17')][_0x47fd('0x20')]({'raw':_0x172e46[_0x47fd('0x19')]?_0x172e46[_0x47fd('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x172e46[_0x47fd('0x19')]?_0x172e46[_0x47fd('0x19')][_0x47fd('0x21')]||null:null,'attributes':_0x172e46[_0x47fd('0x19')]?_0x172e46[_0x47fd('0x19')][_0x47fd('0x1a')]||null:null,'include':_0x172e46[_0x47fd('0x19')]?_0x172e46[_0x47fd('0x19')][_0x47fd('0x1c')]?_['map'](_0x172e46['options'][_0x47fd('0x1c')],function(_0x51aa30){return{'model':db[_0x51aa30[_0x47fd('0x1e')]],'as':_0x51aa30['as'],'attributes':_0x51aa30[_0x47fd('0x1a')],'include':_0x51aa30[_0x47fd('0x1c')]?_[_0x47fd('0x1d')](_0x51aa30['include'],function(_0x481ca6){return{'model':db[_0x481ca6[_0x47fd('0x1e')]],'as':_0x481ca6['as'],'attributes':_0x481ca6[_0x47fd('0x1a')],'include':_0x481ca6[_0x47fd('0x1c')]?_[_0x47fd('0x1d')](_0x481ca6[_0x47fd('0x1c')],function(_0x123875){return{'model':db[_0x123875[_0x47fd('0x1e')]],'as':_0x123875['as'],'attributes':_0x123875[_0x47fd('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x47fd('0xa')](function(_0x4eb5c0){logger[_0x47fd('0xb')](_0x47fd('0x1f'),_0x172e46);logger[_0x47fd('0xd')](_0x47fd('0x1f'),_0x172e46,JSON[_0x47fd('0x10')](_0x4eb5c0));_0x269e84(_0x4eb5c0);})[_0x47fd('0x15')](function(_0x14959d){logger[_0x47fd('0x12')](_0x47fd('0x1f'),_0x14959d['message'],_0x172e46);_0x2b61ca(_0x2daa21[_0x47fd('0x12')](0x1f4,_0x14959d[_0x47fd('0x13')]));});});};exports[_0x47fd('0x22')]=function(_0x2fe771){var _0x17b91d=this;return new Promise(function(_0x340dfd,_0x258a5a){return db[_0x47fd('0x17')]['create'](_0x2fe771['body'],{'raw':_0x2fe771['options']?_0x2fe771[_0x47fd('0x19')]['raw']===undefined?!![]:![]:!![]})[_0x47fd('0xa')](function(_0x525e5f){logger[_0x47fd('0xb')](_0x47fd('0x22'),_0x2fe771);logger['debug'](_0x47fd('0x22'),_0x2fe771,JSON[_0x47fd('0x10')](_0x525e5f));_0x340dfd(_0x525e5f);})[_0x47fd('0x15')](function(_0x189460){logger['error'](_0x47fd('0x22'),_0x189460['message'],_0x2fe771);_0x258a5a(_0x17b91d[_0x47fd('0x12')](0x1f4,_0x189460[_0x47fd('0x13')]));});});};exports[_0x47fd('0x23')]=function(_0x2527a1){var _0x39c265=this;return new Promise(function(_0x35e386,_0x3d6e3c){return db[_0x47fd('0x17')]['update'](_0x2527a1[_0x47fd('0x24')],{'raw':_0x2527a1['options']?_0x2527a1['options'][_0x47fd('0x25')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2527a1[_0x47fd('0x19')]?_0x2527a1['options'][_0x47fd('0x21')]||null:null,'attributes':_0x2527a1['options']?_0x2527a1['options'][_0x47fd('0x1a')]||null:null,'limit':_0x2527a1[_0x47fd('0x19')]?_0x2527a1[_0x47fd('0x19')][_0x47fd('0x1b')]||null:null})[_0x47fd('0xa')](function(_0x4a4049){logger[_0x47fd('0xb')](_0x47fd('0x23'),_0x2527a1);logger[_0x47fd('0xd')](_0x47fd('0x23'),_0x2527a1,JSON[_0x47fd('0x10')](_0x4a4049));_0x35e386(_0x4a4049);})['catch'](function(_0xb02a09){logger[_0x47fd('0x12')](_0x47fd('0x23'),_0xb02a09[_0x47fd('0x13')],_0x2527a1);_0x3d6e3c(_0x39c265[_0x47fd('0x12')](0x1f4,_0xb02a09['message']));});});};exports[_0x47fd('0x26')]=function(_0x1e32f7){var _0x2b9173=this;return new Promise(function(_0x2ba510,_0x464f22){return db[_0x47fd('0x17')][_0x47fd('0x27')]({'where':_0x1e32f7[_0x47fd('0x19')]?_0x1e32f7[_0x47fd('0x19')]['where']||null:null})[_0x47fd('0xa')](function(_0x4043a4){logger[_0x47fd('0xb')](_0x47fd('0x26'),_0x1e32f7);logger[_0x47fd('0xd')](_0x47fd('0x26'),_0x1e32f7,JSON['stringify'](_0x4043a4));_0x2ba510(_0x4043a4);})[_0x47fd('0x15')](function(_0x1e12df){logger[_0x47fd('0x12')]('DestroyCmHopper',_0x1e12df[_0x47fd('0x13')],_0x1e32f7);_0x464f22(_0x2b9173['error'](0x1f4,_0x1e12df[_0x47fd('0x13')]));});});};exports[_0x47fd('0x28')]=function(_0x36790e){var _0x4c76ce=this;return new Promise(function(_0x18da5c,_0x32c510){return db['CmContact']['describe']()[_0x47fd('0xa')](function(_0x31b273){return db[_0x47fd('0x29')][_0x47fd('0x2a')](function(_0x1b146a){return db[_0x47fd('0x17')]['findAll']({'where':_0x36790e[_0x47fd('0x19')]?_0x36790e['options'][_0x47fd('0x21')]||null:null,'attributes':_0x36790e[_0x47fd('0x19')]?_0x36790e[_0x47fd('0x19')][_0x47fd('0x1a')]||null:null,'limit':_0x36790e[_0x47fd('0x19')]?_0x36790e[_0x47fd('0x19')]['limit']||null:null,'order':_0x36790e[_0x47fd('0x19')]?_0x36790e['options']['order']||null:null,'transaction':_0x1b146a,'lock':_0x1b146a[_0x47fd('0x2b')][_0x47fd('0x2c')],'include':[{'model':db['CmContact'],'as':_0x47fd('0x2d'),'attributes':_[_0x47fd('0x2e')](_0x31b273)},{'model':db[_0x47fd('0x2f')],'as':_0x47fd('0x30'),'attributes':['id',_0x47fd('0x31'),_0x47fd('0x32')]}]})['then'](function(_0x5c4647){var _0x5855e5=[];var _0x236ad5=[];for(var _0x5d518c=0x0;_0x5d518c<_0x5c4647[_0x47fd('0x33')];_0x5d518c+=0x1){var _0xc667e0=_0x5c4647[_0x5d518c][_0x47fd('0x34')];if(_0xc667e0===null){_0x5855e5[_0x47fd('0x35')](_0x5c4647[_0x5d518c][_0x47fd('0x36')](_0x36790e[_0x47fd('0x24')],{'transaction':_0x1b146a}));}else if(!_0x236ad5['includes'](_0xc667e0)){_0x236ad5[_0x47fd('0x35')](_0xc667e0);_0x5855e5['push'](_0x5c4647[_0x5d518c]['update'](_0x36790e[_0x47fd('0x24')],{'transaction':_0x1b146a}));}}return BPromise[_0x47fd('0x37')](_0x5855e5);});})[_0x47fd('0xa')](function(_0x3e06ef){logger[_0x47fd('0xb')](_0x47fd('0x28'),_0x36790e);logger[_0x47fd('0xd')](_0x47fd('0x28'),_0x36790e,JSON['stringify'](_0x3e06ef));_0x18da5c(_0x3e06ef);})[_0x47fd('0x15')](function(_0x453fa3){logger[_0x47fd('0x12')](_0x47fd('0x28'),_0x453fa3['message'],_0x36790e);_0x32c510(_0x4c76ce['error'](0x1f4,_0x453fa3['message']));});});});};exports['MoveContactManagedDialer']=function(_0x1e4f7c){var _0x47b87c=this;return new Promise(function(_0xd1e76a,_0x34dfe0){return db[_0x47fd('0x29')]['transaction'](function(_0x50d907){return db['CmHopperFinal'][_0x47fd('0x38')](_0x1e4f7c[_0x47fd('0x24')],{'raw':_0x1e4f7c['options']?_0x1e4f7c['options'][_0x47fd('0x25')]===undefined?!![]:![]:!![],'transaction':_0x50d907})[_0x47fd('0xa')](function(){return db[_0x47fd('0x17')][_0x47fd('0x27')]({'where':_0x1e4f7c[_0x47fd('0x19')]?_0x1e4f7c[_0x47fd('0x19')]['where']||null:null,'transaction':_0x50d907});});})[_0x47fd('0xa')](function(_0x100768){logger[_0x47fd('0xb')](_0x47fd('0x39'),_0x1e4f7c);logger[_0x47fd('0xd')](_0x47fd('0x39'),_0x1e4f7c,JSON[_0x47fd('0x10')](_0x100768));_0xd1e76a(_0x100768);})[_0x47fd('0x15')](function(_0x6f9e9a){logger[_0x47fd('0x12')](_0x47fd('0x39'),_0x6f9e9a['message'],_0x1e4f7c);_0x34dfe0(_0x47b87c[_0x47fd('0x12')](0x1f4,_0x6f9e9a[_0x47fd('0x13')]));});});};exports['CountReScheduled']=function(_0x1e5db8){var _0x1af468=this;return new Promise(function(_0x36b77b,_0x1bd152){return db[_0x47fd('0x17')][_0x47fd('0x18')]({'raw':_0x1e5db8['options']?_0x1e5db8[_0x47fd('0x19')][_0x47fd('0x25')]===undefined?!![]:![]:!![],'where':_0x1e5db8[_0x47fd('0x19')]?_0x1e5db8[_0x47fd('0x19')][_0x47fd('0x21')]||null:null,'attributes':[[db[_0x47fd('0x29')]['fn'](_0x47fd('0x3a'),db[_0x47fd('0x29')]['fn']('IF',db['sequelize'][_0x47fd('0x3b')](_0x47fd('0x3c')+util[_0x47fd('0x3d')]('\x22%s\x22',moment()[_0x47fd('0x3d')](_0x47fd('0x3e')))+_0x47fd('0x3f')))),_0x47fd('0x40')]]})[_0x47fd('0xa')](function(_0x45ac1e){logger[_0x47fd('0xb')](_0x47fd('0x41'),_0x1e5db8);logger[_0x47fd('0xd')](_0x47fd('0x41'),_0x1e5db8,JSON[_0x47fd('0x10')](_0x45ac1e));_0x36b77b(_0x45ac1e);})['catch'](function(_0x3bbb9b){logger[_0x47fd('0x12')](_0x47fd('0x41'),_0x3bbb9b[_0x47fd('0x13')],_0x1e5db8);_0x1bd152(_0x1af468['error'](0x1f4,_0x3bbb9b[_0x47fd('0x13')]));});});};exports[_0x47fd('0x42')]=function(_0x4650b7){var _0x5f02c6=this;return new Promise(function(_0x3a9c38,_0x17196a){return db[_0x47fd('0x43')][_0x47fd('0x44')]()[_0x47fd('0xa')](function(_0x4442be){return db[_0x47fd('0x29')][_0x47fd('0x2a')](function(_0x51cfba){return db['CmHopper'][_0x47fd('0x18')]({'where':_0x4650b7['options']?_0x4650b7['options']['where']||null:null,'attributes':_0x4650b7[_0x47fd('0x19')]?_0x4650b7['options'][_0x47fd('0x1a')]||null:null,'limit':0x1,'order':_0x4650b7[_0x47fd('0x19')]?_0x4650b7[_0x47fd('0x19')][_0x47fd('0x45')]||null:null,'group':db[_0x47fd('0x17')][_0x47fd('0x34')],'transaction':_0x51cfba,'lock':_0x51cfba[_0x47fd('0x2b')][_0x47fd('0x2c')],'include':_0x4650b7[_0x47fd('0x19')]?_0x4650b7[_0x47fd('0x19')][_0x47fd('0x1c')]?_[_0x47fd('0x1d')](_0x4650b7['options']['include'],function(_0x2fcdc5){return{'model':db[_0x2fcdc5[_0x47fd('0x1e')]],'as':_0x2fcdc5['as'],'attributes':_0x2fcdc5[_0x47fd('0x1a')],'include':_0x2fcdc5['include']?_['map'](_0x2fcdc5[_0x47fd('0x1c')],function(_0x471f){return{'model':db[_0x471f[_0x47fd('0x1e')]],'as':_0x471f['as'],'attributes':_0x471f[_0x47fd('0x1a')],'include':_0x471f['include']?_[_0x47fd('0x1d')](_0x471f[_0x47fd('0x1c')],function(_0x5e28da){return{'model':db[_0x5e28da[_0x47fd('0x1e')]],'as':_0x5e28da['as'],'attributes':_0x5e28da[_0x47fd('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4f8373){var _0x3dd654=[];for(var _0x526380=0x0;_0x526380<_0x4f8373[_0x47fd('0x33')];_0x526380+=0x1){_0x3dd654[_0x47fd('0x35')](_0x4f8373[_0x526380][_0x47fd('0x36')](_0x4650b7[_0x47fd('0x24')],{'transaction':_0x51cfba}));}return BPromise[_0x47fd('0x37')](_0x3dd654);});})[_0x47fd('0xa')](function(_0x352cd9){logger[_0x47fd('0xb')](_0x47fd('0x42'),_0x4650b7);logger[_0x47fd('0xd')]('GetContactRecallMe',_0x4650b7,JSON[_0x47fd('0x10')](_0x352cd9));_0x3a9c38(_0x352cd9);})['catch'](function(_0x1579b0){logger[_0x47fd('0x12')](_0x47fd('0x42'),_0x1579b0[_0x47fd('0x13')],_0x4650b7);_0x17196a(_0x5f02c6['error'](0x1f4,_0x1579b0[_0x47fd('0x13')]));});});});};exports['GetCmHopperPreview']=function(_0x50f061){var _0x418c27=this;return new Promise(function(_0x369541,_0x43c880){db[_0x47fd('0x43')][_0x47fd('0x44')]()[_0x47fd('0xa')](function(_0x25ccb3){return db[_0x47fd('0x17')][_0x47fd('0x18')]({'raw':_0x50f061[_0x47fd('0x19')]?_0x50f061[_0x47fd('0x19')][_0x47fd('0x25')]===undefined?!![]:![]:!![],'where':_0x50f061['options']?_0x50f061[_0x47fd('0x19')][_0x47fd('0x21')]||null:null,'attributes':_0x50f061[_0x47fd('0x19')]?_0x50f061[_0x47fd('0x19')][_0x47fd('0x1a')]||null:null,'limit':_0x50f061['options']?_0x50f061[_0x47fd('0x19')]['limit']||null:null,'include':_0x50f061[_0x47fd('0x19')]?_0x50f061['options'][_0x47fd('0x1c')]?_['map'](_0x50f061[_0x47fd('0x19')]['include'],function(_0x40378c){return{'model':db[_0x40378c['model']],'as':_0x40378c['as'],'attributes':_0x40378c['as']===_0x47fd('0x2d')?_['keys'](_0x25ccb3):_0x40378c[_0x47fd('0x1a')],'include':_0x40378c[_0x47fd('0x1c')]?_[_0x47fd('0x1d')](_0x40378c[_0x47fd('0x1c')],function(_0x5b5869){return{'model':db[_0x5b5869['model']],'as':_0x5b5869['as'],'attributes':_0x5b5869[_0x47fd('0x1a')],'include':_0x5b5869['include']?_[_0x47fd('0x1d')](_0x5b5869[_0x47fd('0x1c')],function(_0xf96815){return{'model':db[_0xf96815[_0x47fd('0x1e')]],'as':_0xf96815['as'],'attributes':_0xf96815['attributes']};}):[]};}):[]};}):[]:[]})[_0x47fd('0xa')](function(_0xc79e41){logger[_0x47fd('0xb')](_0x47fd('0x16'),_0x50f061);logger[_0x47fd('0xd')]('GetCmHopper',_0x50f061,JSON['stringify'](_0xc79e41));_0x369541(_0xc79e41);})[_0x47fd('0x15')](function(_0x2bbbc6){logger[_0x47fd('0x12')](_0x47fd('0x16'),_0x2bbbc6[_0x47fd('0x13')],_0x50f061);_0x43c880(_0x418c27[_0x47fd('0x12')](0x1f4,_0x2bbbc6['message']));});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54fc=['put','update','delete','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./cmHopper.controller','isAuthenticated','describe','get','/opencontacts','getOpenContacts','/:id','show','post','create','/preview','getPreview'];(function(_0x25b588,_0x1beccb){var _0x225333=function(_0x31c157){while(--_0x31c157){_0x25b588['push'](_0x25b588['shift']());}};_0x225333(++_0x1beccb);}(_0x54fc,0x125));var _0xc54f=function(_0x5ef20c,_0x4abc22){_0x5ef20c=_0x5ef20c-0x0;var _0x4c9129=_0x54fc[_0x5ef20c];return _0x4c9129;};'use strict';var multer=require(_0xc54f('0x0'));var util=require(_0xc54f('0x1'));var path=require('path');var timeout=require(_0xc54f('0x2'));var express=require(_0xc54f('0x3'));var router=express[_0xc54f('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xc54f('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xc54f('0x6'));var controller=require(_0xc54f('0x7'));router['get']('/',auth[_0xc54f('0x8')](),controller['index']);router['get']('/describe',auth[_0xc54f('0x8')](),controller[_0xc54f('0x9')]);router[_0xc54f('0xa')](_0xc54f('0xb'),auth[_0xc54f('0x8')](),controller[_0xc54f('0xc')]);router['get'](_0xc54f('0xd'),auth[_0xc54f('0x8')](),controller[_0xc54f('0xe')]);router[_0xc54f('0xf')]('/',auth[_0xc54f('0x8')](),controller[_0xc54f('0x10')]);router['post'](_0xc54f('0x11'),auth['isAuthenticated'](),controller[_0xc54f('0x12')]);router[_0xc54f('0x13')](_0xc54f('0xd'),auth[_0xc54f('0x8')](),controller[_0xc54f('0x14')]);router[_0xc54f('0x15')]('/:id',auth[_0xc54f('0x8')](),controller[_0xc54f('0x16')]);module[_0xc54f('0x17')]=router;
\ No newline at end of file
+var _0xd6f3=['../../config/environment','isAuthenticated','index','/describe','describe','get','getOpenContacts','/:id','show','create','post','/preview','put','update','delete','destroy','exports','multer','util','connect-timeout','Router','../../components/interaction/service'];(function(_0xb71632,_0x246506){var _0x2f8124=function(_0x50a3a5){while(--_0x50a3a5){_0xb71632['push'](_0xb71632['shift']());}};_0x2f8124(++_0x246506);}(_0xd6f3,0xc1));var _0x3d6f=function(_0x4334b1,_0x1ee3d2){_0x4334b1=_0x4334b1-0x0;var _0x1e4efa=_0xd6f3[_0x4334b1];return _0x1e4efa;};'use strict';var multer=require(_0x3d6f('0x0'));var util=require(_0x3d6f('0x1'));var path=require('path');var timeout=require(_0x3d6f('0x2'));var express=require('express');var router=express[_0x3d6f('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x3d6f('0x4'));var config=require(_0x3d6f('0x5'));var controller=require('./cmHopper.controller');router['get']('/',auth[_0x3d6f('0x6')](),controller[_0x3d6f('0x7')]);router['get'](_0x3d6f('0x8'),auth['isAuthenticated'](),controller[_0x3d6f('0x9')]);router[_0x3d6f('0xa')]('/opencontacts',auth[_0x3d6f('0x6')](),controller[_0x3d6f('0xb')]);router[_0x3d6f('0xa')](_0x3d6f('0xc'),auth['isAuthenticated'](),controller[_0x3d6f('0xd')]);router['post']('/',auth[_0x3d6f('0x6')](),controller[_0x3d6f('0xe')]);router[_0x3d6f('0xf')](_0x3d6f('0x10'),auth['isAuthenticated'](),controller['getPreview']);router[_0x3d6f('0x11')](_0x3d6f('0xc'),auth[_0x3d6f('0x6')](),controller[_0x3d6f('0x12')]);router[_0x3d6f('0x13')](_0x3d6f('0xc'),auth[_0x3d6f('0x6')](),controller[_0x3d6f('0x14')]);module[_0x3d6f('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc492=['moment','sequelize','exports','contactListQueue','INTEGER'];(function(_0x4ae6de,_0x3f2058){var _0x4887c3=function(_0x50f714){while(--_0x50f714){_0x4ae6de['push'](_0x4ae6de['shift']());}};_0x4887c3(++_0x3f2058);}(_0xc492,0xd7));var _0x2c49=function(_0x1d3270,_0x24dace){_0x1d3270=_0x1d3270-0x0;var _0x3742e0=_0xc492[_0x1d3270];return _0x3742e0;};'use strict';var moment=require(_0x2c49('0x0'));var Sequelize=require(_0x2c49('0x1'));module[_0x2c49('0x2')]={'phone':{'type':Sequelize['STRING'],'allowNull':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':_0x2c49('0x3')},'ListId':{'type':Sequelize['INTEGER'],'unique':'contactListQueue'},'VoiceQueueId':{'type':Sequelize[_0x2c49('0x4')],'unique':_0x2c49('0x3')}};
\ No newline at end of file
+var _0x80cf=['INTEGER','contactListQueue','moment','sequelize','exports'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x80cf,0xfc));var _0xf80c=function(_0x4a051e,_0x87acaa){_0x4a051e=_0x4a051e-0x0;var _0xede580=_0x80cf[_0x4a051e];return _0xede580;};'use strict';var moment=require(_0xf80c('0x0'));var Sequelize=require(_0xf80c('0x1'));module[_0xf80c('0x2')]={'phone':{'type':Sequelize['STRING'],'allowNull':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':'contactListQueue'},'ListId':{'type':Sequelize[_0xf80c('0x3')],'unique':_0xf80c('0x4')},'VoiceQueueId':{'type':Sequelize[_0xf80c('0x3')],'unique':_0xf80c('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae59=['mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','status','json','undefined','limit','count','offset','set','Content-Range','reject','save','then','destroy','end','sendStatus','error','stack','send','index','map','CmHopperBlack','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','length','nolimit','order','sort','where','pick','filter','VIRTUAL','name','merge','options','includeAll','findAll','catch','show','params','fields','include','find','update','body','describe','eml-format','zip-dir','fast-json-patch','request-promise'];(function(_0x1ee74c,_0x54bb4c){var _0x588396=function(_0x4aa7e1){while(--_0x4aa7e1){_0x1ee74c['push'](_0x1ee74c['shift']());}};_0x588396(++_0x54bb4c);}(_0xae59,0x1b8));var _0x9ae5=function(_0xfc53fc,_0x4204d6){_0xfc53fc=_0xfc53fc-0x0;var _0x423828=_0xae59[_0xfc53fc];return _0x423828;};'use strict';var emlformat=require(_0x9ae5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9ae5('0x1'));var jsonpatch=require(_0x9ae5('0x2'));var rp=require(_0x9ae5('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x9ae5('0x4'));var util=require(_0x9ae5('0x5'));var path=require(_0x9ae5('0x6'));var sox=require(_0x9ae5('0x7'));var csv=require(_0x9ae5('0x8'));var ejs=require(_0x9ae5('0x9'));var fs=require('fs');var fs_extra=require(_0x9ae5('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x9ae5('0xb'));var jsforce=require(_0x9ae5('0xc'));var deskjs=require(_0x9ae5('0xd'));var toCsv=require(_0x9ae5('0x8'));var querystring=require(_0x9ae5('0xe'));var Papa=require(_0x9ae5('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x9ae5('0x10'));var as=require(_0x9ae5('0x11'));var hardwareService=require(_0x9ae5('0x12'));var logger=require(_0x9ae5('0x13'))(_0x9ae5('0x14'));var utils=require(_0x9ae5('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x9ae5('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4ab0a5,_0x3f94c4){_0x3f94c4=_0x3f94c4||0xcc;return function(_0x44ee4f){if(_0x44ee4f){return _0x4ab0a5['sendStatus'](_0x3f94c4);}return _0x4ab0a5[_0x9ae5('0x17')](_0x3f94c4)['end']();};}function respondWithResult(_0x1abea4,_0x17ffec){_0x17ffec=_0x17ffec||0xc8;return function(_0x3544bc){if(_0x3544bc){return _0x1abea4[_0x9ae5('0x17')](_0x17ffec)[_0x9ae5('0x18')](_0x3544bc);}};}function respondWithFilteredResult(_0x2ed8aa,_0x5ce9af){return function(_0x41cda8){if(_0x41cda8){var _0x5b0488=typeof _0x5ce9af['offset']===_0x9ae5('0x19')&&typeof _0x5ce9af[_0x9ae5('0x1a')]===_0x9ae5('0x19');var _0x480c5a=_0x41cda8[_0x9ae5('0x1b')];var _0x2230cc=_0x5b0488?0x0:_0x5ce9af[_0x9ae5('0x1c')];var _0x35ac34=_0x5b0488?_0x41cda8[_0x9ae5('0x1b')]:_0x5ce9af[_0x9ae5('0x1c')]+_0x5ce9af['limit'];var _0x2df94f;if(_0x35ac34>=_0x480c5a){_0x35ac34=_0x480c5a;_0x2df94f=0xc8;}else{_0x2df94f=0xce;}_0x2ed8aa[_0x9ae5('0x17')](_0x2df94f);return _0x2ed8aa[_0x9ae5('0x1d')](_0x9ae5('0x1e'),_0x2230cc+'-'+_0x35ac34+'/'+_0x480c5a)[_0x9ae5('0x18')](_0x41cda8);}return null;};}function patchUpdates(_0x5c0cb9){return function(_0x4480ad){try{jsonpatch['apply'](_0x4480ad,_0x5c0cb9,!![]);}catch(_0x44fbbb){return BPromise[_0x9ae5('0x1f')](_0x44fbbb);}return _0x4480ad[_0x9ae5('0x20')]();};}function saveUpdates(_0xbcfe65,_0x8a02cb){return function(_0x5ee884){if(_0x5ee884){return _0x5ee884['update'](_0xbcfe65)[_0x9ae5('0x21')](function(_0x4e34c5){return _0x4e34c5;});}return null;};}function removeEntity(_0x1316c2,_0x57e767){return function(_0x1855b7){if(_0x1855b7){return _0x1855b7[_0x9ae5('0x22')]()[_0x9ae5('0x21')](function(){_0x1316c2[_0x9ae5('0x17')](0xcc)[_0x9ae5('0x23')]();});}};}function handleEntityNotFound(_0x142f95,_0x38942f){return function(_0x569afd){if(!_0x569afd){_0x142f95[_0x9ae5('0x24')](0x194);}return _0x569afd;};}function handleError(_0x110512,_0x79a11b){_0x79a11b=_0x79a11b||0x1f4;return function(_0x94942a){logger[_0x9ae5('0x25')](_0x94942a[_0x9ae5('0x26')]);if(_0x94942a['name']){delete _0x94942a['name'];}_0x110512[_0x9ae5('0x17')](_0x79a11b)[_0x9ae5('0x27')](_0x94942a);};}exports[_0x9ae5('0x28')]=function(_0x595d1c,_0x26c1c6){var _0x1f63d5={},_0x3cf164={},_0x204cda={'count':0x0,'rows':[]};var _0xb7139e=_[_0x9ae5('0x29')](db[_0x9ae5('0x2a')][_0x9ae5('0x2b')],function(_0x3c806e){return{'name':_0x3c806e[_0x9ae5('0x2c')],'type':_0x3c806e['type'][_0x9ae5('0x2d')]};});_0x3cf164[_0x9ae5('0x2e')]=_[_0x9ae5('0x29')](_0xb7139e,'name');_0x3cf164[_0x9ae5('0x2f')]=_[_0x9ae5('0x30')](_0x595d1c['query']);_0x3cf164[_0x9ae5('0x31')]=_[_0x9ae5('0x32')](_0x3cf164[_0x9ae5('0x2e')],_0x3cf164[_0x9ae5('0x2f')]);_0x1f63d5[_0x9ae5('0x33')]=_[_0x9ae5('0x32')](_0x3cf164[_0x9ae5('0x2e')],qs['fields'](_0x595d1c[_0x9ae5('0x2f')]['fields']));_0x1f63d5['attributes']=_0x1f63d5[_0x9ae5('0x33')][_0x9ae5('0x34')]?_0x1f63d5[_0x9ae5('0x33')]:_0x3cf164['model'];if(!_0x595d1c['query']['hasOwnProperty'](_0x9ae5('0x35'))){_0x1f63d5[_0x9ae5('0x1a')]=qs[_0x9ae5('0x1a')](_0x595d1c[_0x9ae5('0x2f')][_0x9ae5('0x1a')]);_0x1f63d5[_0x9ae5('0x1c')]=qs['offset'](_0x595d1c['query'][_0x9ae5('0x1c')]);}_0x1f63d5[_0x9ae5('0x36')]=qs[_0x9ae5('0x37')](_0x595d1c[_0x9ae5('0x2f')][_0x9ae5('0x37')]);_0x1f63d5[_0x9ae5('0x38')]=qs['filters'](_[_0x9ae5('0x39')](_0x595d1c[_0x9ae5('0x2f')],_0x3cf164[_0x9ae5('0x31')]),_0xb7139e);if(_0x595d1c['query'][_0x9ae5('0x3a')]){_0x1f63d5[_0x9ae5('0x38')]=_['merge'](_0x1f63d5[_0x9ae5('0x38')],{'$or':_[_0x9ae5('0x29')](_0xb7139e,function(_0x8cac54){if(_0x8cac54['type']!==_0x9ae5('0x3b')){var _0x19e260={};_0x19e260[_0x8cac54[_0x9ae5('0x3c')]]={'$like':'%'+_0x595d1c['query'][_0x9ae5('0x3a')]+'%'};return _0x19e260;}})});}_0x1f63d5=_[_0x9ae5('0x3d')]({},_0x1f63d5,_0x595d1c[_0x9ae5('0x3e')]);var _0x3b117a={'where':_0x1f63d5['where']};return db[_0x9ae5('0x2a')][_0x9ae5('0x1b')](_0x3b117a)[_0x9ae5('0x21')](function(_0x4881da){_0x204cda[_0x9ae5('0x1b')]=_0x4881da;if(_0x595d1c[_0x9ae5('0x2f')][_0x9ae5('0x3f')]){_0x1f63d5['include']=[{'all':!![]}];}return db['CmHopperBlack'][_0x9ae5('0x40')](_0x1f63d5);})[_0x9ae5('0x21')](function(_0xdcb0bf){_0x204cda['rows']=_0xdcb0bf;return _0x204cda;})[_0x9ae5('0x21')](respondWithFilteredResult(_0x26c1c6,_0x1f63d5))[_0x9ae5('0x41')](handleError(_0x26c1c6,null));};exports[_0x9ae5('0x42')]=function(_0x14c55d,_0x374452){var _0x7f36e2={'raw':!![],'where':{'id':_0x14c55d[_0x9ae5('0x43')]['id']}},_0x36484b={};_0x36484b[_0x9ae5('0x2e')]=_[_0x9ae5('0x30')](db[_0x9ae5('0x2a')][_0x9ae5('0x2b')]);_0x36484b[_0x9ae5('0x2f')]=_['keys'](_0x14c55d['query']);_0x36484b[_0x9ae5('0x31')]=_[_0x9ae5('0x32')](_0x36484b['model'],_0x36484b['query']);_0x7f36e2[_0x9ae5('0x33')]=_[_0x9ae5('0x32')](_0x36484b[_0x9ae5('0x2e')],qs['fields'](_0x14c55d['query'][_0x9ae5('0x44')]));_0x7f36e2[_0x9ae5('0x33')]=_0x7f36e2[_0x9ae5('0x33')][_0x9ae5('0x34')]?_0x7f36e2['attributes']:_0x36484b[_0x9ae5('0x2e')];if(_0x14c55d[_0x9ae5('0x2f')][_0x9ae5('0x3f')]){_0x7f36e2[_0x9ae5('0x45')]=[{'all':!![]}];}_0x7f36e2=_[_0x9ae5('0x3d')]({},_0x7f36e2,_0x14c55d['options']);return db[_0x9ae5('0x2a')][_0x9ae5('0x46')](_0x7f36e2)['then'](handleEntityNotFound(_0x374452,null))[_0x9ae5('0x21')](respondWithResult(_0x374452,null))[_0x9ae5('0x41')](handleError(_0x374452,null));};exports[_0x9ae5('0x47')]=function(_0x4ee358,_0x48ae0d){if(_0x4ee358[_0x9ae5('0x48')]['id']){delete _0x4ee358[_0x9ae5('0x48')]['id'];}return db[_0x9ae5('0x2a')][_0x9ae5('0x46')]({'where':{'id':_0x4ee358[_0x9ae5('0x43')]['id']}})[_0x9ae5('0x21')](handleEntityNotFound(_0x48ae0d,null))['then'](saveUpdates(_0x4ee358[_0x9ae5('0x48')],null))[_0x9ae5('0x21')](respondWithResult(_0x48ae0d,null))[_0x9ae5('0x41')](handleError(_0x48ae0d,null));};exports[_0x9ae5('0x22')]=function(_0x1a31ef,_0xa3b3d1){return db['CmHopperBlack']['find']({'where':{'id':_0x1a31ef[_0x9ae5('0x43')]['id']}})[_0x9ae5('0x21')](handleEntityNotFound(_0xa3b3d1,null))[_0x9ae5('0x21')](removeEntity(_0xa3b3d1,null))[_0x9ae5('0x41')](handleError(_0xa3b3d1,null));};exports[_0x9ae5('0x49')]=function(_0x527900,_0x4cb07b){return db['CmHopperBlack']['describe']()[_0x9ae5('0x21')](respondWithResult(_0x4cb07b,null))[_0x9ae5('0x41')](handleError(_0x4cb07b,null));};
\ No newline at end of file
+var _0xe81d=['then','destroy','end','error','stack','name','send','CmHopperBlack','fieldName','key','map','query','filters','intersection','attributes','model','fields','length','nolimit','offset','order','sort','pick','filter','where','merge','type','includeAll','include','catch','show','params','keys','rawAttributes','options','find','body','describe','eml-format','rimraf','moment','bluebird','mustache','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','json','undefined','count','limit','status','Content-Range','apply','reject','save','update'];(function(_0x59cf8b,_0x266915){var _0x460ae2=function(_0x46d43d){while(--_0x46d43d){_0x59cf8b['push'](_0x59cf8b['shift']());}};_0x460ae2(++_0x266915);}(_0xe81d,0x142));var _0xde81=function(_0x54f5bb,_0x18d3fc){_0x54f5bb=_0x54f5bb-0x0;var _0x5f605b=_0xe81d[_0x54f5bb];return _0x5f605b;};'use strict';var emlformat=require(_0xde81('0x0'));var rimraf=require(_0xde81('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xde81('0x2'));var BPromise=require(_0xde81('0x3'));var Mustache=require(_0xde81('0x4'));var util=require('util');var path=require(_0xde81('0x5'));var sox=require(_0xde81('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xde81('0x7'));var _=require(_0xde81('0x8'));var squel=require(_0xde81('0x9'));var crypto=require(_0xde81('0xa'));var jsforce=require(_0xde81('0xb'));var deskjs=require(_0xde81('0xc'));var toCsv=require('to-csv');var querystring=require(_0xde81('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xde81('0xe'));var qs=require(_0xde81('0xf'));var as=require(_0xde81('0x10'));var hardwareService=require(_0xde81('0x11'));var logger=require('../../config/logger')(_0xde81('0x12'));var utils=require(_0xde81('0x13'));var config=require(_0xde81('0x14'));var licenseUtil=require(_0xde81('0x15'));var db=require(_0xde81('0x16'))['db'];function respondWithStatusCode(_0x58ba52,_0x399e90){_0x399e90=_0x399e90||0xcc;return function(_0xb265a6){if(_0xb265a6){return _0x58ba52['sendStatus'](_0x399e90);}return _0x58ba52['status'](_0x399e90)['end']();};}function respondWithResult(_0x146dd9,_0xdb8853){_0xdb8853=_0xdb8853||0xc8;return function(_0x4f329c){if(_0x4f329c){return _0x146dd9['status'](_0xdb8853)[_0xde81('0x17')](_0x4f329c);}};}function respondWithFilteredResult(_0x2b8407,_0x2992cb){return function(_0x446052){if(_0x446052){var _0x2f3e0c=typeof _0x2992cb['offset']===_0xde81('0x18')&&typeof _0x2992cb['limit']===_0xde81('0x18');var _0x1014f0=_0x446052[_0xde81('0x19')];var _0x100cc1=_0x2f3e0c?0x0:_0x2992cb['offset'];var _0x34cd3f=_0x2f3e0c?_0x446052['count']:_0x2992cb['offset']+_0x2992cb[_0xde81('0x1a')];var _0x516d0d;if(_0x34cd3f>=_0x1014f0){_0x34cd3f=_0x1014f0;_0x516d0d=0xc8;}else{_0x516d0d=0xce;}_0x2b8407[_0xde81('0x1b')](_0x516d0d);return _0x2b8407['set'](_0xde81('0x1c'),_0x100cc1+'-'+_0x34cd3f+'/'+_0x1014f0)[_0xde81('0x17')](_0x446052);}return null;};}function patchUpdates(_0x562160){return function(_0x56f585){try{jsonpatch[_0xde81('0x1d')](_0x56f585,_0x562160,!![]);}catch(_0x4d353d){return BPromise[_0xde81('0x1e')](_0x4d353d);}return _0x56f585[_0xde81('0x1f')]();};}function saveUpdates(_0x1f0a22,_0x4a3948){return function(_0x267dc4){if(_0x267dc4){return _0x267dc4[_0xde81('0x20')](_0x1f0a22)[_0xde81('0x21')](function(_0x489cf9){return _0x489cf9;});}return null;};}function removeEntity(_0xd8a8a6,_0x130fd4){return function(_0x429918){if(_0x429918){return _0x429918[_0xde81('0x22')]()[_0xde81('0x21')](function(){_0xd8a8a6['status'](0xcc)[_0xde81('0x23')]();});}};}function handleEntityNotFound(_0x2b7dae,_0x125466){return function(_0x5aa545){if(!_0x5aa545){_0x2b7dae['sendStatus'](0x194);}return _0x5aa545;};}function handleError(_0x321927,_0xf66b73){_0xf66b73=_0xf66b73||0x1f4;return function(_0x4412df){logger[_0xde81('0x24')](_0x4412df[_0xde81('0x25')]);if(_0x4412df['name']){delete _0x4412df[_0xde81('0x26')];}_0x321927[_0xde81('0x1b')](_0xf66b73)[_0xde81('0x27')](_0x4412df);};}exports['index']=function(_0x17a097,_0x1748e1){var _0x294894={},_0x3f7094={},_0x47449b={'count':0x0,'rows':[]};var _0x18174b=_['map'](db[_0xde81('0x28')]['rawAttributes'],function(_0x20cc27){return{'name':_0x20cc27[_0xde81('0x29')],'type':_0x20cc27['type'][_0xde81('0x2a')]};});_0x3f7094['model']=_[_0xde81('0x2b')](_0x18174b,'name');_0x3f7094[_0xde81('0x2c')]=_['keys'](_0x17a097[_0xde81('0x2c')]);_0x3f7094[_0xde81('0x2d')]=_[_0xde81('0x2e')](_0x3f7094['model'],_0x3f7094[_0xde81('0x2c')]);_0x294894[_0xde81('0x2f')]=_['intersection'](_0x3f7094[_0xde81('0x30')],qs[_0xde81('0x31')](_0x17a097[_0xde81('0x2c')]['fields']));_0x294894[_0xde81('0x2f')]=_0x294894[_0xde81('0x2f')][_0xde81('0x32')]?_0x294894[_0xde81('0x2f')]:_0x3f7094[_0xde81('0x30')];if(!_0x17a097[_0xde81('0x2c')]['hasOwnProperty'](_0xde81('0x33'))){_0x294894['limit']=qs[_0xde81('0x1a')](_0x17a097['query'][_0xde81('0x1a')]);_0x294894['offset']=qs[_0xde81('0x34')](_0x17a097[_0xde81('0x2c')][_0xde81('0x34')]);}_0x294894[_0xde81('0x35')]=qs[_0xde81('0x36')](_0x17a097[_0xde81('0x2c')][_0xde81('0x36')]);_0x294894['where']=qs[_0xde81('0x2d')](_[_0xde81('0x37')](_0x17a097['query'],_0x3f7094[_0xde81('0x2d')]),_0x18174b);if(_0x17a097['query'][_0xde81('0x38')]){_0x294894[_0xde81('0x39')]=_[_0xde81('0x3a')](_0x294894[_0xde81('0x39')],{'$or':_[_0xde81('0x2b')](_0x18174b,function(_0x5c5aaf){if(_0x5c5aaf[_0xde81('0x3b')]!=='VIRTUAL'){var _0x4e2306={};_0x4e2306[_0x5c5aaf[_0xde81('0x26')]]={'$like':'%'+_0x17a097[_0xde81('0x2c')]['filter']+'%'};return _0x4e2306;}})});}_0x294894=_[_0xde81('0x3a')]({},_0x294894,_0x17a097['options']);var _0x2efb61={'where':_0x294894['where']};return db[_0xde81('0x28')][_0xde81('0x19')](_0x2efb61)[_0xde81('0x21')](function(_0x2016b6){_0x47449b[_0xde81('0x19')]=_0x2016b6;if(_0x17a097[_0xde81('0x2c')][_0xde81('0x3c')]){_0x294894[_0xde81('0x3d')]=[{'all':!![]}];}return db['CmHopperBlack']['findAll'](_0x294894);})['then'](function(_0x1cf729){_0x47449b['rows']=_0x1cf729;return _0x47449b;})[_0xde81('0x21')](respondWithFilteredResult(_0x1748e1,_0x294894))[_0xde81('0x3e')](handleError(_0x1748e1,null));};exports[_0xde81('0x3f')]=function(_0x494d3e,_0x275986){var _0x3184aa={'raw':!![],'where':{'id':_0x494d3e[_0xde81('0x40')]['id']}},_0x809d0={};_0x809d0[_0xde81('0x30')]=_[_0xde81('0x41')](db[_0xde81('0x28')][_0xde81('0x42')]);_0x809d0[_0xde81('0x2c')]=_[_0xde81('0x41')](_0x494d3e[_0xde81('0x2c')]);_0x809d0['filters']=_['intersection'](_0x809d0[_0xde81('0x30')],_0x809d0['query']);_0x3184aa[_0xde81('0x2f')]=_['intersection'](_0x809d0[_0xde81('0x30')],qs['fields'](_0x494d3e[_0xde81('0x2c')]['fields']));_0x3184aa['attributes']=_0x3184aa[_0xde81('0x2f')][_0xde81('0x32')]?_0x3184aa[_0xde81('0x2f')]:_0x809d0[_0xde81('0x30')];if(_0x494d3e['query'][_0xde81('0x3c')]){_0x3184aa[_0xde81('0x3d')]=[{'all':!![]}];}_0x3184aa=_[_0xde81('0x3a')]({},_0x3184aa,_0x494d3e[_0xde81('0x43')]);return db[_0xde81('0x28')][_0xde81('0x44')](_0x3184aa)[_0xde81('0x21')](handleEntityNotFound(_0x275986,null))[_0xde81('0x21')](respondWithResult(_0x275986,null))['catch'](handleError(_0x275986,null));};exports['update']=function(_0x2f6a93,_0x23cd64){if(_0x2f6a93[_0xde81('0x45')]['id']){delete _0x2f6a93['body']['id'];}return db[_0xde81('0x28')][_0xde81('0x44')]({'where':{'id':_0x2f6a93[_0xde81('0x40')]['id']}})[_0xde81('0x21')](handleEntityNotFound(_0x23cd64,null))[_0xde81('0x21')](saveUpdates(_0x2f6a93[_0xde81('0x45')],null))[_0xde81('0x21')](respondWithResult(_0x23cd64,null))[_0xde81('0x3e')](handleError(_0x23cd64,null));};exports[_0xde81('0x22')]=function(_0x30678b,_0x15ca4b){return db[_0xde81('0x28')][_0xde81('0x44')]({'where':{'id':_0x30678b['params']['id']}})['then'](handleEntityNotFound(_0x15ca4b,null))[_0xde81('0x21')](removeEntity(_0x15ca4b,null))[_0xde81('0x3e')](handleError(_0x15ca4b,null));};exports['describe']=function(_0x551588,_0x599d26){return db[_0xde81('0x28')][_0xde81('0x46')]()[_0xde81('0x21')](respondWithResult(_0x599d26,null))['catch'](handleError(_0x599d26,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7af8=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmHopperBlack.attributes','exports','define','CmHopperBlack','cm_hopper_black','../../config/logger','api'];(function(_0x404e77,_0x4c4f6b){var _0x332a79=function(_0x551161){while(--_0x551161){_0x404e77['push'](_0x404e77['shift']());}};_0x332a79(++_0x4c4f6b);}(_0x7af8,0x1ab));var _0x87af=function(_0x322186,_0x318e25){_0x322186=_0x322186-0x0;var _0x31b855=_0x7af8[_0x322186];return _0x31b855;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x87af('0x0'))(_0x87af('0x1'));var moment=require(_0x87af('0x2'));var BPromise=require(_0x87af('0x3'));var rp=require(_0x87af('0x4'));var fs=require('fs');var path=require(_0x87af('0x5'));var rimraf=require(_0x87af('0x6'));var config=require(_0x87af('0x7'));var attributes=require(_0x87af('0x8'));module[_0x87af('0x9')]=function(_0x325e96,_0x5a4aef){return _0x325e96[_0x87af('0xa')](_0x87af('0xb'),attributes,{'tableName':_0x87af('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5cde=['cm_hopper_black','lodash','util','../../config/logger','api','request-promise','path','rimraf','../../config/environment','./cmHopperBlack.attributes','exports','CmHopperBlack'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x5cde,0x18d));var _0xe5cd=function(_0x45d55e,_0x2fede3){_0x45d55e=_0x45d55e-0x0;var _0x29812a=_0x5cde[_0x45d55e];return _0x29812a;};'use strict';var _=require(_0xe5cd('0x0'));var util=require(_0xe5cd('0x1'));var logger=require(_0xe5cd('0x2'))(_0xe5cd('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xe5cd('0x4'));var fs=require('fs');var path=require(_0xe5cd('0x5'));var rimraf=require(_0xe5cd('0x6'));var config=require(_0xe5cd('0x7'));var attributes=require(_0xe5cd('0x8'));module[_0xe5cd('0x9')]=function(_0x53d68a,_0xaf2824){return _0x53d68a['define'](_0xe5cd('0xa'),attributes,{'tableName':_0xe5cd('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca3d=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','info','CmHopperBlack,\x20%s,\x20%s','request\x20sent','debug','CmHopperBlack,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetCmHopperBlack','CmHopperBlack','findAll','options','limit','include','map','model','attributes','update','body','UpdateCmHopperBlack','DestroyCmHopperBlack','destroy','where','lodash','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xca3d,0x1de));var _0xdca3=function(_0x59e815,_0x8c9d72){_0x59e815=_0x59e815-0x0;var _0x16bf37=_0xca3d[_0x59e815];return _0x16bf37;};'use strict';var _=require(_0xdca3('0x0'));var util=require(_0xdca3('0x1'));var moment=require('moment');var BPromise=require(_0xdca3('0x2'));var rs=require(_0xdca3('0x3'));var fs=require('fs');var Redis=require(_0xdca3('0x4'));var db=require(_0xdca3('0x5'))['db'];var utils=require(_0xdca3('0x6'));var logger=require('../../config/logger')(_0xdca3('0x7'));var config=require(_0xdca3('0x8'));var jayson=require(_0xdca3('0x9'));var client=jayson[_0xdca3('0xa')][_0xdca3('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x391987,_0x5dbfb4,_0x2de053){return new BPromise(function(_0xb5fdd9,_0x1c18c4){return client[_0xdca3('0xc')](_0x391987,_0x2de053)[_0xdca3('0xd')](function(_0x582297){logger[_0xdca3('0xe')](_0xdca3('0xf'),_0x5dbfb4,_0xdca3('0x10'));logger[_0xdca3('0x11')](_0xdca3('0x12'),_0x5dbfb4,'request\x20sent',JSON[_0xdca3('0x13')](_0x582297));if(_0x582297[_0xdca3('0x14')]){if(_0x582297['error'][_0xdca3('0x15')]===0x1f4){logger[_0xdca3('0x14')](_0xdca3('0xf'),_0x5dbfb4,_0x582297[_0xdca3('0x14')][_0xdca3('0x16')]);return _0x1c18c4(_0x582297[_0xdca3('0x14')][_0xdca3('0x16')]);}logger[_0xdca3('0x14')](_0xdca3('0xf'),_0x5dbfb4,_0x582297['error']['message']);return _0xb5fdd9(_0x582297[_0xdca3('0x14')][_0xdca3('0x16')]);}else{logger['info'](_0xdca3('0xf'),_0x5dbfb4,_0xdca3('0x10'));_0xb5fdd9(_0x582297[_0xdca3('0x17')][_0xdca3('0x16')]);}})[_0xdca3('0x18')](function(_0xddf38e){logger[_0xdca3('0x14')]('CmHopperBlack,\x20%s,\x20%s',_0x5dbfb4,_0xddf38e);_0x1c18c4(_0xddf38e);});});}exports[_0xdca3('0x19')]=function(_0x4a4217){var _0x16ef0c=this;return new Promise(function(_0x67c08b,_0x142b80){return db[_0xdca3('0x1a')][_0xdca3('0x1b')]({'raw':_0x4a4217[_0xdca3('0x1c')]?_0x4a4217[_0xdca3('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x4a4217[_0xdca3('0x1c')]?_0x4a4217[_0xdca3('0x1c')]['where']||null:null,'attributes':_0x4a4217[_0xdca3('0x1c')]?_0x4a4217[_0xdca3('0x1c')]['attributes']||null:null,'limit':_0x4a4217[_0xdca3('0x1c')]?_0x4a4217[_0xdca3('0x1c')][_0xdca3('0x1d')]||null:null,'include':_0x4a4217[_0xdca3('0x1c')]?_0x4a4217[_0xdca3('0x1c')][_0xdca3('0x1e')]?_[_0xdca3('0x1f')](_0x4a4217[_0xdca3('0x1c')][_0xdca3('0x1e')],function(_0x471a08){return{'model':db[_0x471a08[_0xdca3('0x20')]],'as':_0x471a08['as'],'attributes':_0x471a08[_0xdca3('0x21')],'include':_0x471a08['include']?_[_0xdca3('0x1f')](_0x471a08[_0xdca3('0x1e')],function(_0x1119a0){return{'model':db[_0x1119a0[_0xdca3('0x20')]],'as':_0x1119a0['as'],'attributes':_0x1119a0[_0xdca3('0x21')],'include':_0x1119a0[_0xdca3('0x1e')]?_['map'](_0x1119a0[_0xdca3('0x1e')],function(_0x2b9cbc){return{'model':db[_0x2b9cbc['model']],'as':_0x2b9cbc['as'],'attributes':_0x2b9cbc[_0xdca3('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4aefa9){logger[_0xdca3('0xe')](_0xdca3('0x19'),_0x4a4217);logger[_0xdca3('0x11')](_0xdca3('0x19'),_0x4a4217,JSON[_0xdca3('0x13')](_0x4aefa9));_0x67c08b(_0x4aefa9);})[_0xdca3('0x18')](function(_0x5dffce){logger[_0xdca3('0x14')](_0xdca3('0x19'),_0x5dffce['message'],_0x4a4217);_0x142b80(_0x16ef0c['error'](0x1f4,_0x5dffce[_0xdca3('0x16')]));});});};exports['UpdateCmHopperBlack']=function(_0xb64e36){var _0x1b8faa=this;return new Promise(function(_0xb767c8,_0x10bbf3){return db[_0xdca3('0x1a')][_0xdca3('0x22')](_0xb64e36[_0xdca3('0x23')],{'raw':_0xb64e36[_0xdca3('0x1c')]?_0xb64e36[_0xdca3('0x1c')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xb64e36[_0xdca3('0x1c')]?_0xb64e36[_0xdca3('0x1c')]['where']||null:null,'attributes':_0xb64e36['options']?_0xb64e36[_0xdca3('0x1c')][_0xdca3('0x21')]||null:null,'limit':_0xb64e36[_0xdca3('0x1c')]?_0xb64e36[_0xdca3('0x1c')][_0xdca3('0x1d')]||null:null})[_0xdca3('0xd')](function(_0x46ff43){logger[_0xdca3('0xe')](_0xdca3('0x24'),_0xb64e36);logger[_0xdca3('0x11')](_0xdca3('0x24'),_0xb64e36,JSON[_0xdca3('0x13')](_0x46ff43));_0xb767c8(_0x46ff43);})[_0xdca3('0x18')](function(_0x98f886){logger[_0xdca3('0x14')](_0xdca3('0x24'),_0x98f886['message'],_0xb64e36);_0x10bbf3(_0x1b8faa[_0xdca3('0x14')](0x1f4,_0x98f886[_0xdca3('0x16')]));});});};exports[_0xdca3('0x25')]=function(_0x32a304){var _0x12c8c2=this;return new Promise(function(_0x356621,_0x58a6b5){return db['CmHopperBlack'][_0xdca3('0x26')]({'where':_0x32a304[_0xdca3('0x1c')]?_0x32a304[_0xdca3('0x1c')][_0xdca3('0x27')]||null:null})[_0xdca3('0xd')](function(_0x548534){logger[_0xdca3('0xe')](_0xdca3('0x25'),_0x32a304);logger[_0xdca3('0x11')](_0xdca3('0x25'),_0x32a304,JSON['stringify'](_0x548534));_0x356621(_0x548534);})[_0xdca3('0x18')](function(_0x4706c8){logger[_0xdca3('0x14')](_0xdca3('0x25'),_0x4706c8['message'],_0x32a304);_0x58a6b5(_0x12c8c2[_0xdca3('0x14')](0x1f4,_0x4706c8[_0xdca3('0x16')]));});});};
\ No newline at end of file
+var _0xcb89=['CmHopperBlack,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','GetCmHopperBlack','CmHopperBlack','findAll','options','raw','limit','include','map','model','attributes','UpdateCmHopperBlack','update','body','where','DestroyCmHopperBlack','destroy','then','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/environment','jayson/promise','request','CmHopperBlack,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x418355,_0x31d168){var _0x2deb1f=function(_0x16cced){while(--_0x16cced){_0x418355['push'](_0x418355['shift']());}};_0x2deb1f(++_0x31d168);}(_0xcb89,0xad));var _0x9cb8=function(_0x5c2e3e,_0x26ecd3){_0x5c2e3e=_0x5c2e3e-0x0;var _0x53f64a=_0xcb89[_0x5c2e3e];return _0x53f64a;};'use strict';var _=require(_0x9cb8('0x0'));var util=require('util');var moment=require(_0x9cb8('0x1'));var BPromise=require(_0x9cb8('0x2'));var rs=require(_0x9cb8('0x3'));var fs=require('fs');var Redis=require(_0x9cb8('0x4'));var db=require(_0x9cb8('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x9cb8('0x6'));var jayson=require(_0x9cb8('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x9f8482,_0x1e6fa5,_0x233f0f){return new BPromise(function(_0x19e700,_0x29f603){return client[_0x9cb8('0x8')](_0x9f8482,_0x233f0f)['then'](function(_0x382f45){logger['info'](_0x9cb8('0x9'),_0x1e6fa5,_0x9cb8('0xa'));logger[_0x9cb8('0xb')](_0x9cb8('0xc'),_0x1e6fa5,'request\x20sent',JSON[_0x9cb8('0xd')](_0x382f45));if(_0x382f45[_0x9cb8('0xe')]){if(_0x382f45[_0x9cb8('0xe')][_0x9cb8('0xf')]===0x1f4){logger[_0x9cb8('0xe')]('CmHopperBlack,\x20%s,\x20%s',_0x1e6fa5,_0x382f45['error'][_0x9cb8('0x10')]);return _0x29f603(_0x382f45[_0x9cb8('0xe')]['message']);}logger[_0x9cb8('0xe')](_0x9cb8('0x9'),_0x1e6fa5,_0x382f45[_0x9cb8('0xe')][_0x9cb8('0x10')]);return _0x19e700(_0x382f45[_0x9cb8('0xe')][_0x9cb8('0x10')]);}else{logger[_0x9cb8('0x11')](_0x9cb8('0x9'),_0x1e6fa5,'request\x20sent');_0x19e700(_0x382f45[_0x9cb8('0x12')]['message']);}})[_0x9cb8('0x13')](function(_0x65ff42){logger[_0x9cb8('0xe')](_0x9cb8('0x9'),_0x1e6fa5,_0x65ff42);_0x29f603(_0x65ff42);});});}exports[_0x9cb8('0x14')]=function(_0x942682){var _0x4bbbbf=this;return new Promise(function(_0x4a13e5,_0x478f51){return db[_0x9cb8('0x15')][_0x9cb8('0x16')]({'raw':_0x942682[_0x9cb8('0x17')]?_0x942682[_0x9cb8('0x17')][_0x9cb8('0x18')]===undefined?!![]:![]:!![],'where':_0x942682[_0x9cb8('0x17')]?_0x942682['options']['where']||null:null,'attributes':_0x942682['options']?_0x942682[_0x9cb8('0x17')]['attributes']||null:null,'limit':_0x942682[_0x9cb8('0x17')]?_0x942682['options'][_0x9cb8('0x19')]||null:null,'include':_0x942682[_0x9cb8('0x17')]?_0x942682[_0x9cb8('0x17')][_0x9cb8('0x1a')]?_[_0x9cb8('0x1b')](_0x942682[_0x9cb8('0x17')][_0x9cb8('0x1a')],function(_0x882353){return{'model':db[_0x882353[_0x9cb8('0x1c')]],'as':_0x882353['as'],'attributes':_0x882353[_0x9cb8('0x1d')],'include':_0x882353[_0x9cb8('0x1a')]?_['map'](_0x882353['include'],function(_0x2b9ba3){return{'model':db[_0x2b9ba3[_0x9cb8('0x1c')]],'as':_0x2b9ba3['as'],'attributes':_0x2b9ba3[_0x9cb8('0x1d')],'include':_0x2b9ba3['include']?_[_0x9cb8('0x1b')](_0x2b9ba3[_0x9cb8('0x1a')],function(_0x5bb3ec){return{'model':db[_0x5bb3ec[_0x9cb8('0x1c')]],'as':_0x5bb3ec['as'],'attributes':_0x5bb3ec[_0x9cb8('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2a5183){logger[_0x9cb8('0x11')](_0x9cb8('0x14'),_0x942682);logger[_0x9cb8('0xb')](_0x9cb8('0x14'),_0x942682,JSON[_0x9cb8('0xd')](_0x2a5183));_0x4a13e5(_0x2a5183);})[_0x9cb8('0x13')](function(_0x7e4813){logger[_0x9cb8('0xe')](_0x9cb8('0x14'),_0x7e4813['message'],_0x942682);_0x478f51(_0x4bbbbf[_0x9cb8('0xe')](0x1f4,_0x7e4813[_0x9cb8('0x10')]));});});};exports[_0x9cb8('0x1e')]=function(_0x1e1d16){var _0x3b7ac4=this;return new Promise(function(_0x2aaaad,_0x21873a){return db['CmHopperBlack'][_0x9cb8('0x1f')](_0x1e1d16[_0x9cb8('0x20')],{'raw':_0x1e1d16[_0x9cb8('0x17')]?_0x1e1d16[_0x9cb8('0x17')][_0x9cb8('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1e1d16[_0x9cb8('0x17')]?_0x1e1d16[_0x9cb8('0x17')][_0x9cb8('0x21')]||null:null,'attributes':_0x1e1d16['options']?_0x1e1d16[_0x9cb8('0x17')]['attributes']||null:null,'limit':_0x1e1d16['options']?_0x1e1d16[_0x9cb8('0x17')][_0x9cb8('0x19')]||null:null})['then'](function(_0x21345c){logger['info'](_0x9cb8('0x1e'),_0x1e1d16);logger[_0x9cb8('0xb')](_0x9cb8('0x1e'),_0x1e1d16,JSON[_0x9cb8('0xd')](_0x21345c));_0x2aaaad(_0x21345c);})[_0x9cb8('0x13')](function(_0x5ea343){logger['error']('UpdateCmHopperBlack',_0x5ea343[_0x9cb8('0x10')],_0x1e1d16);_0x21873a(_0x3b7ac4[_0x9cb8('0xe')](0x1f4,_0x5ea343['message']));});});};exports[_0x9cb8('0x22')]=function(_0x6786e){var _0x25c7df=this;return new Promise(function(_0x3d30aa,_0x34ed9f){return db['CmHopperBlack'][_0x9cb8('0x23')]({'where':_0x6786e['options']?_0x6786e['options'][_0x9cb8('0x21')]||null:null})[_0x9cb8('0x24')](function(_0x5b21e3){logger[_0x9cb8('0x11')](_0x9cb8('0x22'),_0x6786e);logger[_0x9cb8('0xb')](_0x9cb8('0x22'),_0x6786e,JSON['stringify'](_0x5b21e3));_0x3d30aa(_0x5b21e3);})[_0x9cb8('0x13')](function(_0x43b83a){logger['error'](_0x9cb8('0x22'),_0x43b83a[_0x9cb8('0x10')],_0x6786e);_0x34ed9f(_0x25c7df['error'](0x1f4,_0x43b83a[_0x9cb8('0x10')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeff8=['util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperBlack.controller','isAuthenticated','index','get','/describe','describe','/:id','update','exports','multer'];(function(_0x4efbb9,_0x2c063c){var _0x2b9e72=function(_0x2cd5c4){while(--_0x2cd5c4){_0x4efbb9['push'](_0x4efbb9['shift']());}};_0x2b9e72(++_0x2c063c);}(_0xeff8,0x186));var _0x8eff=function(_0x4c0622,_0x5dacaf){_0x4c0622=_0x4c0622-0x0;var _0x1799d8=_0xeff8[_0x4c0622];return _0x1799d8;};'use strict';var multer=require(_0x8eff('0x0'));var util=require(_0x8eff('0x1'));var path=require('path');var timeout=require(_0x8eff('0x2'));var express=require(_0x8eff('0x3'));var router=express[_0x8eff('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x8eff('0x5'));var interaction=require(_0x8eff('0x6'));var config=require(_0x8eff('0x7'));var controller=require(_0x8eff('0x8'));router['get']('/',auth[_0x8eff('0x9')](),controller[_0x8eff('0xa')]);router[_0x8eff('0xb')](_0x8eff('0xc'),auth['isAuthenticated'](),controller[_0x8eff('0xd')]);router[_0x8eff('0xb')](_0x8eff('0xe'),auth[_0x8eff('0x9')](),controller['show']);router['put'](_0x8eff('0xe'),auth[_0x8eff('0x9')](),controller[_0x8eff('0xf')]);router['delete'](_0x8eff('0xe'),auth[_0x8eff('0x9')](),controller['destroy']);module[_0x8eff('0x10')]=router;
\ No newline at end of file
+var _0x9536=['connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperBlack.controller','get','index','/describe','isAuthenticated','describe','/:id','show','update','delete','destroy','exports','multer','util','path'];(function(_0x54c64a,_0x5189d4){var _0x483d41=function(_0x3e4339){while(--_0x3e4339){_0x54c64a['push'](_0x54c64a['shift']());}};_0x483d41(++_0x5189d4);}(_0x9536,0x179));var _0x6953=function(_0x54d4a8,_0x585a59){_0x54d4a8=_0x54d4a8-0x0;var _0x3b321b=_0x9536[_0x54d4a8];return _0x3b321b;};'use strict';var multer=require(_0x6953('0x0'));var util=require(_0x6953('0x1'));var path=require(_0x6953('0x2'));var timeout=require(_0x6953('0x3'));var express=require('express');var router=express[_0x6953('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x6953('0x5'));var interaction=require(_0x6953('0x6'));var config=require(_0x6953('0x7'));var controller=require(_0x6953('0x8'));router[_0x6953('0x9')]('/',auth['isAuthenticated'](),controller[_0x6953('0xa')]);router[_0x6953('0x9')](_0x6953('0xb'),auth[_0x6953('0xc')](),controller[_0x6953('0xd')]);router['get'](_0x6953('0xe'),auth[_0x6953('0xc')](),controller[_0x6953('0xf')]);router['put'](_0x6953('0xe'),auth[_0x6953('0xc')](),controller[_0x6953('0x10')]);router[_0x6953('0x11')](_0x6953('0xe'),auth[_0x6953('0xc')](),controller[_0x6953('0x12')]);module[_0x6953('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac3f=['setDataValue','followuptime','diff','seconds','dispositionat','BOOLEAN','INTEGER','STRING','DATE','getDataValue','endtime'];(function(_0x153395,_0x4984c1){var _0x255d05=function(_0x170bb4){while(--_0x170bb4){_0x153395['push'](_0x153395['shift']());}};_0x255d05(++_0x4984c1);}(_0xac3f,0x1b3));var _0xfac3=function(_0x4695e2,_0x3d5f15){_0x4695e2=_0x4695e2-0x0;var _0x160563=_0xac3f[_0x4695e2];return _0x160563;};'use strict';var Sequelize=require('sequelize');var moment=require('moment');module['exports']={'state':{'type':Sequelize[_0xfac3('0x0')](0x2)},'statedesc':{'type':Sequelize[_0xfac3('0x1')]},'scheduledat':{'type':Sequelize[_0xfac3('0x2')]},'countbusyretry':{'type':Sequelize[_0xfac3('0x0')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xfac3('0x0')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0xfac3('0x0')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0xfac3('0x1')]},'originatecalleridnum':{'type':Sequelize[_0xfac3('0x1')]},'originatecalleridname':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xfac3('0x1')]},'calleridname':{'type':Sequelize['STRING']},'starttime':{'type':Sequelize['DATE']},'responsetime':{'type':Sequelize[_0xfac3('0x2')]},'answertime':{'type':Sequelize[_0xfac3('0x2')]},'droptime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize[_0xfac3('0x2')]},'ringtime':{'type':Sequelize[_0xfac3('0x0')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0xfac3('0x0')],'defaultValue':0x0},'talktime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0xfac3('0x0')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0xfac3('0x1')]},'campaign':{'type':Sequelize[_0xfac3('0x1')]},'campaigntype':{'type':Sequelize[_0xfac3('0x1')]},'membername':{'type':Sequelize[_0xfac3('0x1')]},'reason':{'type':Sequelize['STRING']},'disposition':{'type':Sequelize[_0xfac3('0x1')]},'secondDisposition':{'type':Sequelize[_0xfac3('0x1')]},'thirdDisposition':{'type':Sequelize[_0xfac3('0x1')]},'dispositionat':{'type':Sequelize[_0xfac3('0x2')],'set':function(_0x4eb8a2){var _0x3d61ac=this[_0xfac3('0x3')](_0xfac3('0x4'));if(_0x3d61ac&&_0x4eb8a2){this[_0xfac3('0x5')](_0xfac3('0x6'),moment(_0x4eb8a2)[_0xfac3('0x7')](moment(_0x3d61ac),_0xfac3('0x8')));}return this[_0xfac3('0x5')](_0xfac3('0x9'),_0x4eb8a2);}},'amd':{'type':Sequelize[_0xfac3('0xa')],'defaultValue':![]},'fax':{'type':Sequelize[_0xfac3('0xa')],'defaultValue':![]},'blacklist':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'rescheduled':{'type':Sequelize[_0xfac3('0xa')],'defaultValue':![]},'rescheduledat':{'type':Sequelize[_0xfac3('0x2')]},'callback':{'type':Sequelize[_0xfac3('0xa')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xfac3('0x1')],'defaultValue':null},'callbackat':{'type':Sequelize['DATE']},'deleted':{'type':Sequelize[_0xfac3('0x1')],'defaultValue':null},'deletedat':{'type':Sequelize['DATE']},'recallme':{'type':Sequelize[_0xfac3('0xa')],'defaultValue':![]},'agiafterat':{'type':Sequelize['DATE']},'countnosuchnumberretry':{'type':Sequelize[_0xfac3('0x0')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xfac3('0x0')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xfac3('0x0')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xfac3('0x0')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0xfac3('0x0')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe274=['INTEGER','STRING','DATE','getDataValue','endtime','followuptime','diff','dispositionat','BOOLEAN','sequelize','moment','exports'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xe274,0x189));var _0x4e27=function(_0x45909d,_0x5d2200){_0x45909d=_0x45909d-0x0;var _0x2d7e8e=_0xe274[_0x45909d];return _0x2d7e8e;};'use strict';var Sequelize=require(_0x4e27('0x0'));var moment=require(_0x4e27('0x1'));module[_0x4e27('0x2')]={'state':{'type':Sequelize[_0x4e27('0x3')](0x2)},'statedesc':{'type':Sequelize[_0x4e27('0x4')]},'scheduledat':{'type':Sequelize[_0x4e27('0x5')]},'countbusyretry':{'type':Sequelize[_0x4e27('0x3')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x4e27('0x3')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0x4e27('0x3')],'defaultValue':0x0},'uniqueid':{'type':Sequelize['STRING']},'originatecalleridnum':{'type':Sequelize[_0x4e27('0x4')]},'originatecalleridname':{'type':Sequelize[_0x4e27('0x4')]},'calleridnum':{'type':Sequelize[_0x4e27('0x4')]},'calleridname':{'type':Sequelize[_0x4e27('0x4')]},'starttime':{'type':Sequelize[_0x4e27('0x5')]},'responsetime':{'type':Sequelize['DATE']},'answertime':{'type':Sequelize[_0x4e27('0x5')]},'droptime':{'type':Sequelize[_0x4e27('0x5')]},'endtime':{'type':Sequelize[_0x4e27('0x5')]},'ringtime':{'type':Sequelize[_0x4e27('0x3')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0x4e27('0x3')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0x4e27('0x3')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0x4e27('0x3')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0x4e27('0x4')]},'campaign':{'type':Sequelize['STRING']},'campaigntype':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0x4e27('0x4')]},'reason':{'type':Sequelize[_0x4e27('0x4')]},'disposition':{'type':Sequelize[_0x4e27('0x4')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0x4e27('0x4')]},'dispositionat':{'type':Sequelize['DATE'],'set':function(_0x2f5c7a){var _0xac3298=this[_0x4e27('0x6')](_0x4e27('0x7'));if(_0xac3298&&_0x2f5c7a){this['setDataValue'](_0x4e27('0x8'),moment(_0x2f5c7a)[_0x4e27('0x9')](moment(_0xac3298),'seconds'));}return this['setDataValue'](_0x4e27('0xa'),_0x2f5c7a);}},'amd':{'type':Sequelize[_0x4e27('0xb')],'defaultValue':![]},'fax':{'type':Sequelize[_0x4e27('0xb')],'defaultValue':![]},'blacklist':{'type':Sequelize[_0x4e27('0xb')],'defaultValue':![]},'rescheduled':{'type':Sequelize[_0x4e27('0xb')],'defaultValue':![]},'rescheduledat':{'type':Sequelize['DATE']},'callback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x4e27('0x4')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x4e27('0x5')]},'deleted':{'type':Sequelize['STRING'],'defaultValue':null},'deletedat':{'type':Sequelize[_0x4e27('0x5')]},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agiafterat':{'type':Sequelize[_0x4e27('0x5')]},'countnosuchnumberretry':{'type':Sequelize[_0x4e27('0x3')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x4e27('0x3')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x4e27('0x3')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x4e27('0x3')],'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(_0x197d72,_0x19b07b){var _0x1e3507=function(_0x34e0b6){while(--_0x34e0b6){_0x197d72['push'](_0x197d72['shift']());}};_0x1e3507(++_0x19b07b);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x5a776b,_0x46f785){_0x5a776b=_0x5a776b-0x0;var _0xbbef59=_0xc4aa[_0x5a776b];return _0xbbef59;};'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 _0xafc4=['../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','stack','name','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge','map','VIRTUAL','options','CmHopperFinal','includeAll','catch','show','params','describe','body','uniqueid','find','countContactsQueueCampaignHopperFinal','findAll','sequelize','COUNT','literal','`state`\x20=\x200,\x201,\x20null','noSuchContacts','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','busyContacts','congestionContacts','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','countContactsIvrCampaignHopperFinal','`state`\x20=\x203,\x201,\x20null','`state`\x20=\x208,\x201,\x20null','`state`\x20=\x2010\x20,\x201,\x20null','moveContactsQueueCampaignHopperFinal','insert','into','cm_hopper','phone','scheduledAt','ListId','VoiceQueueId','createdAt','select','field','ANY_VALUE(calleridnum)','NOW()','ContactId','ANY_VALUE(VoiceQueueId)','updatedAt','from','cm_hopper_final','VoiceQueueId\x20=\x20?','toString','state\x20=\x20?','state','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','calleridnum','state\x20=\x204','Campaign','fromQuery','CampaignId','CampaignId\x20=\x20?','group','CmHopper','findOne','eml-format','zip-dir','request-promise','moment','bluebird','mustache','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api'];(function(_0x585876,_0x174c06){var _0x2e5e8a=function(_0x42bf90){while(--_0x42bf90){_0x585876['push'](_0x585876['shift']());}};_0x2e5e8a(++_0x174c06);}(_0xafc4,0x69));var _0x4afc=function(_0x2f1c49,_0x49116e){_0x2f1c49=_0x2f1c49-0x0;var _0x68516d=_0xafc4[_0x2f1c49];return _0x68516d;};'use strict';var emlformat=require(_0x4afc('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4afc('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4afc('0x2'));var moment=require(_0x4afc('0x3'));var BPromise=require(_0x4afc('0x4'));var Mustache=require(_0x4afc('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x4afc('0x6'));var ejs=require(_0x4afc('0x7'));var fs=require('fs');var fs_extra=require(_0x4afc('0x8'));var _=require(_0x4afc('0x9'));var squel=require(_0x4afc('0xa'));var crypto=require(_0x4afc('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x4afc('0xc'));var toCsv=require(_0x4afc('0x6'));var querystring=require(_0x4afc('0xd'));var Papa=require(_0x4afc('0xe'));var Redis=require(_0x4afc('0xf'));var authService=require(_0x4afc('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4afc('0x11'));var logger=require('../../config/logger')(_0x4afc('0x12'));var utils=require(_0x4afc('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x4afc('0x14'));var db=require(_0x4afc('0x15'))['db'];function respondWithStatusCode(_0x2b191c,_0x2768bf){_0x2768bf=_0x2768bf||0xcc;return function(_0x1d8f98){if(_0x1d8f98){return _0x2b191c[_0x4afc('0x16')](_0x2768bf);}return _0x2b191c[_0x4afc('0x17')](_0x2768bf)[_0x4afc('0x18')]();};}function respondWithResult(_0x5effb4,_0x26f3f1){_0x26f3f1=_0x26f3f1||0xc8;return function(_0x429fd8){if(_0x429fd8){return _0x5effb4[_0x4afc('0x17')](_0x26f3f1)[_0x4afc('0x19')](_0x429fd8);}};}function respondWithFilteredResult(_0x5f2dc9,_0x4e32e8){return function(_0x2452ae){if(_0x2452ae){var _0x4f3127=typeof _0x4e32e8[_0x4afc('0x1a')]===_0x4afc('0x1b')&&typeof _0x4e32e8[_0x4afc('0x1c')]===_0x4afc('0x1b');var _0x3a306f=_0x2452ae[_0x4afc('0x1d')];var _0x22f809=_0x4f3127?0x0:_0x4e32e8[_0x4afc('0x1a')];var _0x16365f=_0x4f3127?_0x2452ae[_0x4afc('0x1d')]:_0x4e32e8[_0x4afc('0x1a')]+_0x4e32e8['limit'];var _0x1a8f49;if(_0x16365f>=_0x3a306f){_0x16365f=_0x3a306f;_0x1a8f49=0xc8;}else{_0x1a8f49=0xce;}_0x5f2dc9[_0x4afc('0x17')](_0x1a8f49);return _0x5f2dc9[_0x4afc('0x1e')](_0x4afc('0x1f'),_0x22f809+'-'+_0x16365f+'/'+_0x3a306f)['json'](_0x2452ae);}return null;};}function patchUpdates(_0x3bddc0){return function(_0x30eda3){try{jsonpatch[_0x4afc('0x20')](_0x30eda3,_0x3bddc0,!![]);}catch(_0x280587){return BPromise[_0x4afc('0x21')](_0x280587);}return _0x30eda3[_0x4afc('0x22')]();};}function saveUpdates(_0x3ad7a5,_0x573a75){return function(_0x5403e4){if(_0x5403e4){return _0x5403e4[_0x4afc('0x23')](_0x3ad7a5)['then'](function(_0x37debf){return _0x37debf;});}return null;};}function removeEntity(_0x4e9a48,_0x1aa676){return function(_0x2a0314){if(_0x2a0314){return _0x2a0314[_0x4afc('0x24')]()[_0x4afc('0x25')](function(){_0x4e9a48[_0x4afc('0x17')](0xcc)[_0x4afc('0x18')]();});}};}function handleEntityNotFound(_0x40a0db,_0x383a71){return function(_0x2bb837){if(!_0x2bb837){_0x40a0db[_0x4afc('0x16')](0x194);}return _0x2bb837;};}function handleError(_0x4e8273,_0x359c07){_0x359c07=_0x359c07||0x1f4;return function(_0x35f5b3){logger['error'](_0x35f5b3[_0x4afc('0x26')]);if(_0x35f5b3[_0x4afc('0x27')]){delete _0x35f5b3[_0x4afc('0x27')];}_0x4e8273['status'](_0x359c07)['send'](_0x35f5b3);};}exports['index']=function(_0x426e9d,_0x5db47e){var _0x5e4747={},_0xd26d2f={},_0x628e42={'count':0x0,'rows':[]};var _0x494fe7=_['map'](db['CmHopperFinal'][_0x4afc('0x28')],function(_0x34434a){return{'name':_0x34434a[_0x4afc('0x29')],'type':_0x34434a[_0x4afc('0x2a')][_0x4afc('0x2b')]};});_0xd26d2f[_0x4afc('0x2c')]=_['map'](_0x494fe7,_0x4afc('0x27'));_0xd26d2f[_0x4afc('0x2d')]=_[_0x4afc('0x2e')](_0x426e9d[_0x4afc('0x2d')]);_0xd26d2f[_0x4afc('0x2f')]=_[_0x4afc('0x30')](_0xd26d2f[_0x4afc('0x2c')],_0xd26d2f[_0x4afc('0x2d')]);_0x5e4747['attributes']=_[_0x4afc('0x30')](_0xd26d2f['model'],qs['fields'](_0x426e9d[_0x4afc('0x2d')][_0x4afc('0x31')]));_0x5e4747[_0x4afc('0x32')]=_0x5e4747[_0x4afc('0x32')][_0x4afc('0x33')]?_0x5e4747[_0x4afc('0x32')]:_0xd26d2f['model'];if(!_0x426e9d[_0x4afc('0x2d')][_0x4afc('0x34')](_0x4afc('0x35'))){_0x5e4747[_0x4afc('0x1c')]=qs[_0x4afc('0x1c')](_0x426e9d[_0x4afc('0x2d')]['limit']);_0x5e4747[_0x4afc('0x1a')]=qs[_0x4afc('0x1a')](_0x426e9d[_0x4afc('0x2d')][_0x4afc('0x1a')]);}_0x5e4747['order']=qs['sort'](_0x426e9d[_0x4afc('0x2d')][_0x4afc('0x36')]);_0x5e4747[_0x4afc('0x37')]=qs['filters'](_['pick'](_0x426e9d[_0x4afc('0x2d')],_0xd26d2f['filters']),_0x494fe7);if(_0x426e9d['query'][_0x4afc('0x38')]){_0x5e4747[_0x4afc('0x37')]=_[_0x4afc('0x39')](_0x5e4747[_0x4afc('0x37')],{'$or':_[_0x4afc('0x3a')](_0x494fe7,function(_0x4420fb){if(_0x4420fb[_0x4afc('0x2a')]!==_0x4afc('0x3b')){var _0x3ccc5a={};_0x3ccc5a[_0x4420fb[_0x4afc('0x27')]]={'$like':'%'+_0x426e9d[_0x4afc('0x2d')][_0x4afc('0x38')]+'%'};return _0x3ccc5a;}})});}_0x5e4747=_[_0x4afc('0x39')]({},_0x5e4747,_0x426e9d[_0x4afc('0x3c')]);var _0x46dd2a={'where':_0x5e4747['where']};return db[_0x4afc('0x3d')][_0x4afc('0x1d')](_0x46dd2a)[_0x4afc('0x25')](function(_0xe6db12){_0x628e42[_0x4afc('0x1d')]=_0xe6db12;if(_0x426e9d[_0x4afc('0x2d')][_0x4afc('0x3e')]){_0x5e4747['include']=[{'all':!![]}];}return db['CmHopperFinal']['findAll'](_0x5e4747);})[_0x4afc('0x25')](function(_0x105c03){_0x628e42['rows']=_0x105c03;return _0x628e42;})[_0x4afc('0x25')](respondWithFilteredResult(_0x5db47e,_0x5e4747))[_0x4afc('0x3f')](handleError(_0x5db47e,null));};exports[_0x4afc('0x40')]=function(_0x397996,_0x545109){var _0x12b5db={'raw':!![],'where':{'id':_0x397996[_0x4afc('0x41')]['id']}},_0x45c9c3={};_0x45c9c3[_0x4afc('0x2c')]=_[_0x4afc('0x2e')](db[_0x4afc('0x3d')]['rawAttributes']);_0x45c9c3[_0x4afc('0x2d')]=_['keys'](_0x397996[_0x4afc('0x2d')]);_0x45c9c3[_0x4afc('0x2f')]=_[_0x4afc('0x30')](_0x45c9c3['model'],_0x45c9c3['query']);_0x12b5db[_0x4afc('0x32')]=_[_0x4afc('0x30')](_0x45c9c3[_0x4afc('0x2c')],qs[_0x4afc('0x31')](_0x397996[_0x4afc('0x2d')][_0x4afc('0x31')]));_0x12b5db[_0x4afc('0x32')]=_0x12b5db[_0x4afc('0x32')]['length']?_0x12b5db[_0x4afc('0x32')]:_0x45c9c3[_0x4afc('0x2c')];if(_0x397996['query'][_0x4afc('0x3e')]){_0x12b5db['include']=[{'all':!![]}];}_0x12b5db=_[_0x4afc('0x39')]({},_0x12b5db,_0x397996[_0x4afc('0x3c')]);return db[_0x4afc('0x3d')]['find'](_0x12b5db)[_0x4afc('0x25')](handleEntityNotFound(_0x545109,null))[_0x4afc('0x25')](respondWithResult(_0x545109,null))[_0x4afc('0x3f')](handleError(_0x545109,null));};exports[_0x4afc('0x42')]=function(_0x4772db,_0x19a0ac){return db['CmHopperFinal']['describe']()['then'](respondWithResult(_0x19a0ac,null))[_0x4afc('0x3f')](handleError(_0x19a0ac,null));};exports[_0x4afc('0x23')]=function(_0x42e274,_0x269c24){if(_0x42e274[_0x4afc('0x43')][_0x4afc('0x44')]){delete _0x42e274[_0x4afc('0x43')][_0x4afc('0x44')];}return db[_0x4afc('0x3d')][_0x4afc('0x45')]({'where':{'uniqueid':_0x42e274['params']['id']}})[_0x4afc('0x25')](handleEntityNotFound(_0x269c24,null))['then'](saveUpdates(_0x42e274['body'],null))[_0x4afc('0x25')](respondWithResult(_0x269c24,null))['catch'](handleError(_0x269c24,null));};exports[_0x4afc('0x46')]=function(_0x355198,_0x2fe2ae,_0x2cafc3){return db['CmHopperFinal'][_0x4afc('0x47')]({'raw':![],'where':{'VoiceQueueId':_0x355198['params']['id']},'attributes':[[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db[_0x4afc('0x48')]['fn']('IF',db[_0x4afc('0x48')][_0x4afc('0x4a')](_0x4afc('0x4b')))),_0x4afc('0x4c')],[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db[_0x4afc('0x48')]['fn']('IF',db[_0x4afc('0x48')][_0x4afc('0x4a')]('`state`\x20=\x203,\x201,\x20null'))),_0x4afc('0x4d')],[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db[_0x4afc('0x48')]['fn']('IF',db[_0x4afc('0x48')][_0x4afc('0x4a')](_0x4afc('0x4e')))),_0x4afc('0x4f')],[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db[_0x4afc('0x48')]['fn']('IF',db[_0x4afc('0x48')][_0x4afc('0x4a')]('`state`\x20=\x208,\x201,\x20null'))),_0x4afc('0x50')],[db['sequelize']['fn'](_0x4afc('0x49'),db[_0x4afc('0x48')]['fn']('IF',db[_0x4afc('0x48')][_0x4afc('0x4a')]('`state`\x20=\x2010\x20,\x201,\x20null'))),'dropContacts'],[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db['sequelize']['fn']('IF',db[_0x4afc('0x48')][_0x4afc('0x4a')](_0x4afc('0x51')))),_0x4afc('0x52')],[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db[_0x4afc('0x48')]['fn']('IF',db[_0x4afc('0x48')][_0x4afc('0x4a')](_0x4afc('0x53')))),_0x4afc('0x54')],[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db[_0x4afc('0x48')]['fn']('IF',db['sequelize'][_0x4afc('0x4a')](_0x4afc('0x55')))),_0x4afc('0x56')]]})[_0x4afc('0x25')](handleEntityNotFound(_0x2fe2ae,null))[_0x4afc('0x25')](respondWithResult(_0x2fe2ae,null))[_0x4afc('0x3f')](handleError(_0x2fe2ae,null));};exports[_0x4afc('0x57')]=function(_0x4985c6,_0x1771e8,_0x323c65){return db['CmHopperFinal']['findAll']({'raw':![],'where':{'CampaignId':_0x4985c6[_0x4afc('0x41')]['id']},'attributes':[[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db[_0x4afc('0x48')]['fn']('IF',db[_0x4afc('0x48')][_0x4afc('0x4a')](_0x4afc('0x4b')))),_0x4afc('0x4c')],[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db['sequelize']['fn']('IF',db['sequelize'][_0x4afc('0x4a')](_0x4afc('0x58')))),'noAnswerContacts'],[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db['sequelize']['fn']('IF',db['sequelize'][_0x4afc('0x4a')](_0x4afc('0x4e')))),_0x4afc('0x4f')],[db['sequelize']['fn'](_0x4afc('0x49'),db['sequelize']['fn']('IF',db['sequelize'][_0x4afc('0x4a')](_0x4afc('0x59')))),_0x4afc('0x50')],[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db[_0x4afc('0x48')]['fn']('IF',db[_0x4afc('0x48')][_0x4afc('0x4a')](_0x4afc('0x5a')))),'dropContacts'],[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db[_0x4afc('0x48')]['fn']('IF',db['sequelize']['literal']('`state`\x20=\x2011\x20,\x201,\x20null'))),_0x4afc('0x52')],[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db['sequelize']['fn']('IF',db[_0x4afc('0x48')]['literal']('`state`\x20=\x2022,\x201,\x20null'))),'reCallContacts'],[db[_0x4afc('0x48')]['fn'](_0x4afc('0x49'),db[_0x4afc('0x48')]['fn']('IF',db['sequelize'][_0x4afc('0x4a')](_0x4afc('0x55')))),_0x4afc('0x56')]]})['then'](handleEntityNotFound(_0x1771e8,null))[_0x4afc('0x25')](respondWithResult(_0x1771e8,null))[_0x4afc('0x3f')](handleError(_0x1771e8,null));};exports[_0x4afc('0x5b')]=function(_0x392252,_0x1f652a,_0x481263){return db['VoiceQueue'][_0x4afc('0x45')]({'where':{'id':_0x392252[_0x4afc('0x41')]['id']}})[_0x4afc('0x25')](handleEntityNotFound(_0x1f652a,null))['then'](function(_0x380c56){var _0x14a216;if(_0x380c56){_0x14a216=squel[_0x4afc('0x5c')]()[_0x4afc('0x5d')](_0x4afc('0x5e'))['fromQuery']([_0x4afc('0x5f'),_0x4afc('0x60'),'ContactId',_0x4afc('0x61'),_0x4afc('0x62'),_0x4afc('0x63'),'updatedAt'],squel[_0x4afc('0x64')]()[_0x4afc('0x65')](_0x4afc('0x66'),_0x4afc('0x5f'))[_0x4afc('0x65')](_0x4afc('0x67'),_0x4afc('0x60'))[_0x4afc('0x65')]('ANY_VALUE(ContactId)',_0x4afc('0x68'))['field']('ANY_VALUE(ListId)',_0x4afc('0x61'))[_0x4afc('0x65')](_0x4afc('0x69'),'VoiceQueueId')['field'](_0x4afc('0x67'),_0x4afc('0x63'))[_0x4afc('0x65')](_0x4afc('0x67'),_0x4afc('0x6a'))[_0x4afc('0x6b')](_0x4afc('0x6c'))[_0x4afc('0x37')](_0x4afc('0x6d'),_0x392252[_0x4afc('0x41')]['id'][_0x4afc('0x6e')]())[_0x4afc('0x37')](_0x4afc('0x6f'),_0x392252[_0x4afc('0x43')][_0x4afc('0x70')][_0x4afc('0x6e')]())['where'](_0x4afc('0x71'))[_0x4afc('0x37')](_0x4afc('0x72'),squel[_0x4afc('0x64')]()[_0x4afc('0x65')](_0x4afc('0x5f'))[_0x4afc('0x6b')](_0x4afc('0x5e'))[_0x4afc('0x37')]('VoiceQueueId\x20=\x20?',_0x392252[_0x4afc('0x41')]['id'][_0x4afc('0x6e')]()))[_0x4afc('0x37')](_0x4afc('0x72'),squel['select']()[_0x4afc('0x65')](_0x4afc('0x73'))[_0x4afc('0x6b')](_0x4afc('0x6c'))[_0x4afc('0x37')](_0x4afc('0x6d'),_0x392252[_0x4afc('0x41')]['id'][_0x4afc('0x6e')]())[_0x4afc('0x37')](_0x4afc('0x74')))['group'](_0x4afc('0x68')))[_0x4afc('0x6e')]();return db['sequelize'][_0x4afc('0x2d')](_0x14a216);}return[];})[_0x4afc('0x25')](respondWithResult(_0x1f652a,null))[_0x4afc('0x3f')](handleError(_0x1f652a,null));};exports['moveContactsIvrCampaignHopperFinal']=function(_0x1c3d20,_0x3478aa,_0x24553b){return db[_0x4afc('0x75')]['find']({'where':{'id':_0x1c3d20[_0x4afc('0x41')]['id']}})[_0x4afc('0x25')](handleEntityNotFound(_0x3478aa,null))['then'](function(_0x2dc8a1){var _0x36f3ea;if(_0x2dc8a1){_0x36f3ea=squel[_0x4afc('0x5c')]()['into']('cm_hopper')[_0x4afc('0x76')]([_0x4afc('0x5f'),_0x4afc('0x60'),_0x4afc('0x68'),_0x4afc('0x61'),_0x4afc('0x77'),_0x4afc('0x63'),_0x4afc('0x6a')],squel[_0x4afc('0x64')]()[_0x4afc('0x65')](_0x4afc('0x66'),_0x4afc('0x5f'))[_0x4afc('0x65')](_0x4afc('0x67'),_0x4afc('0x60'))[_0x4afc('0x65')]('ANY_VALUE(ContactId)',_0x4afc('0x68'))[_0x4afc('0x65')]('ANY_VALUE(ListId)',_0x4afc('0x61'))['field']('ANY_VALUE(CampaignId)',_0x4afc('0x77'))['field']('NOW()',_0x4afc('0x63'))['field'](_0x4afc('0x67'),'updatedAt')[_0x4afc('0x6b')](_0x4afc('0x6c'))[_0x4afc('0x37')](_0x4afc('0x78'),_0x1c3d20[_0x4afc('0x41')]['id']['toString']())[_0x4afc('0x37')](_0x4afc('0x6f'),_0x1c3d20['body']['state'][_0x4afc('0x6e')]())[_0x4afc('0x37')](_0x4afc('0x71'))[_0x4afc('0x37')](_0x4afc('0x72'),squel['select']()[_0x4afc('0x65')](_0x4afc('0x5f'))[_0x4afc('0x6b')](_0x4afc('0x5e'))['where'](_0x4afc('0x78'),_0x1c3d20['params']['id'][_0x4afc('0x6e')]()))[_0x4afc('0x37')](_0x4afc('0x72'),squel[_0x4afc('0x64')]()[_0x4afc('0x65')](_0x4afc('0x73'))[_0x4afc('0x6b')](_0x4afc('0x6c'))[_0x4afc('0x37')](_0x4afc('0x78'),_0x1c3d20[_0x4afc('0x41')]['id']['toString']())[_0x4afc('0x37')]('state\x20=\x204'))[_0x4afc('0x79')]('ContactId'))['toString']();return db[_0x4afc('0x48')]['query'](_0x36f3ea);}return[];})['then'](respondWithResult(_0x3478aa,null))[_0x4afc('0x3f')](handleError(_0x3478aa,null));};exports['checkContactHopper']=function(_0x272e36,_0x24bf53,_0x5b1421){return db[_0x4afc('0x7a')][_0x4afc('0x7b')]({'where':{'VoiceQueueId':_0x272e36['body'][_0x4afc('0x62')],'CampaignId':_0x272e36[_0x4afc('0x43')][_0x4afc('0x77')],'ContactId':_0x272e36['body'][_0x4afc('0x68')]}})[_0x4afc('0x25')](handleEntityNotFound(_0x24bf53,null))[_0x4afc('0x25')](function(_0x16eb6d){if(_0x16eb6d){return _0x16eb6d;}return null;})[_0x4afc('0x25')](respondWithResult(_0x24bf53,null))[_0x4afc('0x3f')](handleError(_0x24bf53,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdcd2=['./cmHopperFinal.attributes','CmHopperFinal','cm_hopper_final','calleridnum','uniqueid','util','moment','bluebird','path','rimraf','../../config/environment'];(function(_0x307712,_0x321a12){var _0x1367a3=function(_0x1c2a2d){while(--_0x1c2a2d){_0x307712['push'](_0x307712['shift']());}};_0x1367a3(++_0x321a12);}(_0xdcd2,0xe1));var _0x2dcd=function(_0x2c2208,_0x3b3e16){_0x2c2208=_0x2c2208-0x0;var _0x3f58f6=_0xdcd2[_0x2c2208];return _0x3f58f6;};'use strict';var _=require('lodash');var util=require(_0x2dcd('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x2dcd('0x1'));var BPromise=require(_0x2dcd('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2dcd('0x3'));var rimraf=require(_0x2dcd('0x4'));var config=require(_0x2dcd('0x5'));var attributes=require(_0x2dcd('0x6'));module['exports']=function(_0x248d1e,_0x882a35){return _0x248d1e['define'](_0x2dcd('0x7'),attributes,{'tableName':_0x2dcd('0x8'),'paranoid':![],'indexes':[{'name':_0x2dcd('0x9'),'fields':[_0x2dcd('0x9')]},{'name':_0x2dcd('0xa'),'fields':[_0x2dcd('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x3246=['bluebird','request-promise','rimraf','./cmHopperFinal.attributes','exports','define','CmHopperFinal','cm_hopper_final','calleridnum','uniqueid','util','../../config/logger','api'];(function(_0x3e44fa,_0x75ed2a){var _0x2a0aba=function(_0x1db6a7){while(--_0x1db6a7){_0x3e44fa['push'](_0x3e44fa['shift']());}};_0x2a0aba(++_0x75ed2a);}(_0x3246,0x72));var _0x6324=function(_0x54738a,_0xf35ebb){_0x54738a=_0x54738a-0x0;var _0x3ffdd4=_0x3246[_0x54738a];return _0x3ffdd4;};'use strict';var _=require('lodash');var util=require(_0x6324('0x0'));var logger=require(_0x6324('0x1'))(_0x6324('0x2'));var moment=require('moment');var BPromise=require(_0x6324('0x3'));var rp=require(_0x6324('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x6324('0x5'));var config=require('../../config/environment');var attributes=require(_0x6324('0x6'));module[_0x6324('0x7')]=function(_0x4af0fc,_0x447f10){return _0x4af0fc[_0x6324('0x8')](_0x6324('0x9'),attributes,{'tableName':_0x6324('0xa'),'paranoid':![],'indexes':[{'name':_0x6324('0xb'),'fields':[_0x6324('0xb')]},{'name':_0x6324('0xc'),'fields':[_0x6324('0xc')]}],'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(_0x591e72,_0x593ac7){var _0x161c4d=function(_0x22464f){while(--_0x22464f){_0x591e72['push'](_0x591e72['shift']());}};_0x161c4d(++_0x593ac7);}(_0xb10b,0x12a));var _0xbb10=function(_0x3f2d02,_0x2c7deb){_0x3f2d02=_0x3f2d02-0x0;var _0x54092b=_0xb10b[_0x3f2d02];return _0x54092b;};'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 _0x7a54=['../../config/environment','jayson/promise','http','info','CmHopperFinal,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','CmHopperFinal','create','body','options','raw','CreateCmHopperFinal','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x40c802,_0x4e896c){var _0x2ed275=function(_0x206652){while(--_0x206652){_0x40c802['push'](_0x40c802['shift']());}};_0x2ed275(++_0x4e896c);}(_0x7a54,0x106));var _0x47a5=function(_0x1ce23f,_0x5ae2e9){_0x1ce23f=_0x1ce23f-0x0;var _0x22a1fe=_0x7a54[_0x1ce23f];return _0x22a1fe;};'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')]('CmHopperFinal,\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['CreateCmHopperFinal']=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')]('CreateCmHopperFinal',_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')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ed0=['update','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../config/environment','./cmHopperFinal.controller','get','index','/describe','isAuthenticated','describe','/:id','show','countContactsQueueCampaignHopperFinal','post','/voice/queue/moveContacts/:id','moveContactsQueueCampaignHopperFinal','/voice/campaign/moveContacts/:id','moveContactsIvrCampaignHopperFinal','/checkContactHopper','checkContactHopper','put'];(function(_0x27e5a3,_0x28b862){var _0x3ea564=function(_0x3eff20){while(--_0x3eff20){_0x27e5a3['push'](_0x27e5a3['shift']());}};_0x3ea564(++_0x28b862);}(_0x9ed0,0x153));var _0x09ed=function(_0x16d793,_0x22f0f7){_0x16d793=_0x16d793-0x0;var _0x444f4f=_0x9ed0[_0x16d793];return _0x444f4f;};'use strict';var multer=require(_0x09ed('0x0'));var util=require(_0x09ed('0x1'));var path=require(_0x09ed('0x2'));var timeout=require('connect-timeout');var express=require(_0x09ed('0x3'));var router=express[_0x09ed('0x4')]();var fs_extra=require(_0x09ed('0x5'));var auth=require(_0x09ed('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x09ed('0x7'));var controller=require(_0x09ed('0x8'));router[_0x09ed('0x9')]('/',auth['isAuthenticated'](),controller[_0x09ed('0xa')]);router[_0x09ed('0x9')](_0x09ed('0xb'),auth[_0x09ed('0xc')](),controller[_0x09ed('0xd')]);router[_0x09ed('0x9')](_0x09ed('0xe'),auth[_0x09ed('0xc')](),controller[_0x09ed('0xf')]);router[_0x09ed('0x9')]('/voice/queue/countAttributes/:id',auth[_0x09ed('0xc')](),controller[_0x09ed('0x10')]);router[_0x09ed('0x9')]('/campaign/countAttributes/:id',auth['isAuthenticated'](),controller['countContactsIvrCampaignHopperFinal']);router[_0x09ed('0x11')](_0x09ed('0x12'),auth[_0x09ed('0xc')](),controller[_0x09ed('0x13')]);router['post'](_0x09ed('0x14'),auth['isAuthenticated'](),controller[_0x09ed('0x15')]);router[_0x09ed('0x11')](_0x09ed('0x16'),auth[_0x09ed('0xc')](),controller[_0x09ed('0x17')]);router[_0x09ed('0x18')](_0x09ed('0xe'),auth[_0x09ed('0xc')](),controller[_0x09ed('0x19')]);module['exports']=router;
\ No newline at end of file
+var _0xdfcf=['/voice/queue/countAttributes/:id','countContactsQueueCampaignHopperFinal','countContactsIvrCampaignHopperFinal','post','/voice/queue/moveContacts/:id','moveContactsQueueCampaignHopperFinal','/voice/campaign/moveContacts/:id','/checkContactHopper','checkContactHopper','put','update','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperFinal.controller','get','isAuthenticated','index','/describe','describe','/:id','show'];(function(_0x4914e2,_0x48be8f){var _0x2dcd07=function(_0x1a2565){while(--_0x1a2565){_0x4914e2['push'](_0x4914e2['shift']());}};_0x2dcd07(++_0x48be8f);}(_0xdfcf,0x185));var _0xfdfc=function(_0x11ce46,_0x177a85){_0x11ce46=_0x11ce46-0x0;var _0x368a1e=_0xdfcf[_0x11ce46];return _0x368a1e;};'use strict';var multer=require('multer');var util=require(_0xfdfc('0x0'));var path=require(_0xfdfc('0x1'));var timeout=require(_0xfdfc('0x2'));var express=require(_0xfdfc('0x3'));var router=express[_0xfdfc('0x4')]();var fs_extra=require(_0xfdfc('0x5'));var auth=require(_0xfdfc('0x6'));var interaction=require(_0xfdfc('0x7'));var config=require(_0xfdfc('0x8'));var controller=require(_0xfdfc('0x9'));router[_0xfdfc('0xa')]('/',auth[_0xfdfc('0xb')](),controller[_0xfdfc('0xc')]);router[_0xfdfc('0xa')](_0xfdfc('0xd'),auth[_0xfdfc('0xb')](),controller[_0xfdfc('0xe')]);router['get'](_0xfdfc('0xf'),auth[_0xfdfc('0xb')](),controller[_0xfdfc('0x10')]);router[_0xfdfc('0xa')](_0xfdfc('0x11'),auth['isAuthenticated'](),controller[_0xfdfc('0x12')]);router[_0xfdfc('0xa')]('/campaign/countAttributes/:id',auth[_0xfdfc('0xb')](),controller[_0xfdfc('0x13')]);router[_0xfdfc('0x14')](_0xfdfc('0x15'),auth['isAuthenticated'](),controller[_0xfdfc('0x16')]);router[_0xfdfc('0x14')](_0xfdfc('0x17'),auth[_0xfdfc('0xb')](),controller['moveContactsIvrCampaignHopperFinal']);router[_0xfdfc('0x14')](_0xfdfc('0x18'),auth[_0xfdfc('0xb')](),controller[_0xfdfc('0x19')]);router[_0xfdfc('0x1a')](_0xfdfc('0xf'),auth[_0xfdfc('0xb')](),controller[_0xfdfc('0x1b')]);module[_0xfdfc('0x1c')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2afc=['INTEGER','STRING','DATE','BOOLEAN','sequelize','exports'];(function(_0x1f20bf,_0x30113a){var _0x127384=function(_0x48da19){while(--_0x48da19){_0x1f20bf['push'](_0x1f20bf['shift']());}};_0x127384(++_0x30113a);}(_0x2afc,0x154));var _0xc2af=function(_0x2cb58b,_0x5a879d){_0x2cb58b=_0x2cb58b-0x0;var _0xe9dd9c=_0x2afc[_0x2cb58b];return _0xe9dd9c;};'use strict';var Sequelize=require(_0xc2af('0x0'));module[_0xc2af('0x1')]={'state':{'type':Sequelize[_0xc2af('0x2')](0x2)},'statedesc':{'type':Sequelize[_0xc2af('0x3')]},'scheduledat':{'type':Sequelize[_0xc2af('0x4')]},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0xc2af('0x2')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xc2af('0x2')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0xc2af('0x2')],'defaultValue':0x0},'uniqueid':{'type':Sequelize['STRING']},'originatecalleridnum':{'type':Sequelize[_0xc2af('0x3')]},'originatecalleridname':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xc2af('0x3')]},'calleridname':{'type':Sequelize[_0xc2af('0x3')]},'starttime':{'type':Sequelize[_0xc2af('0x4')]},'responsetime':{'type':Sequelize[_0xc2af('0x4')]},'answertime':{'type':Sequelize[_0xc2af('0x4')]},'droptime':{'type':Sequelize[_0xc2af('0x4')]},'endtime':{'type':Sequelize[_0xc2af('0x4')]},'ringtime':{'type':Sequelize[_0xc2af('0x2')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0xc2af('0x2')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0xc2af('0x2')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0xc2af('0x2')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0xc2af('0x3')]},'campaign':{'type':Sequelize[_0xc2af('0x3')]},'campaigntype':{'type':Sequelize[_0xc2af('0x3')]},'membername':{'type':Sequelize['STRING']},'reason':{'type':Sequelize[_0xc2af('0x3')]},'amd':{'type':Sequelize[_0xc2af('0x5')],'defaultValue':![]},'fax':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'callback':{'type':Sequelize[_0xc2af('0x5')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xc2af('0x3')],'defaultValue':null},'callbackat':{'type':Sequelize[_0xc2af('0x4')]},'recallme':{'type':Sequelize[_0xc2af('0x5')],'defaultValue':![]},'editedat':{'type':Sequelize[_0xc2af('0x4')]},'edited':{'type':Sequelize[_0xc2af('0x5')],'defaultValue':![]},'countnosuchnumberretry':{'type':Sequelize[_0xc2af('0x2')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xc2af('0x2')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xc2af('0x2')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0xc2af('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x5a6a=['INTEGER','DATE','BOOLEAN','sequelize','STRING'];(function(_0x4dd63a,_0x1464a5){var _0xc80f1b=function(_0x4628c4){while(--_0x4628c4){_0x4dd63a['push'](_0x4dd63a['shift']());}};_0xc80f1b(++_0x1464a5);}(_0x5a6a,0x170));var _0xa5a6=function(_0x22bc2b,_0xb2deee){_0x22bc2b=_0x22bc2b-0x0;var _0x2b652a=_0x5a6a[_0x22bc2b];return _0x2b652a;};'use strict';var Sequelize=require(_0xa5a6('0x0'));module['exports']={'state':{'type':Sequelize['INTEGER'](0x2)},'statedesc':{'type':Sequelize[_0xa5a6('0x1')]},'scheduledat':{'type':Sequelize['DATE']},'countbusyretry':{'type':Sequelize[_0xa5a6('0x2')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xa5a6('0x2')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0xa5a6('0x2')],'defaultValue':0x0},'uniqueid':{'type':Sequelize['STRING']},'originatecalleridnum':{'type':Sequelize['STRING']},'originatecalleridname':{'type':Sequelize[_0xa5a6('0x1')]},'calleridnum':{'type':Sequelize[_0xa5a6('0x1')]},'calleridname':{'type':Sequelize[_0xa5a6('0x1')]},'starttime':{'type':Sequelize[_0xa5a6('0x3')]},'responsetime':{'type':Sequelize[_0xa5a6('0x3')]},'answertime':{'type':Sequelize[_0xa5a6('0x3')]},'droptime':{'type':Sequelize[_0xa5a6('0x3')]},'endtime':{'type':Sequelize[_0xa5a6('0x3')]},'ringtime':{'type':Sequelize[_0xa5a6('0x2')],'defaultValue':0x0},'holdtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'talktime':{'type':Sequelize[_0xa5a6('0x2')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0xa5a6('0x2')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0xa5a6('0x1')]},'campaign':{'type':Sequelize['STRING']},'campaigntype':{'type':Sequelize[_0xa5a6('0x1')]},'membername':{'type':Sequelize[_0xa5a6('0x1')]},'reason':{'type':Sequelize['STRING']},'amd':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fax':{'type':Sequelize[_0xa5a6('0x4')],'defaultValue':![]},'callback':{'type':Sequelize[_0xa5a6('0x4')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xa5a6('0x1')],'defaultValue':null},'callbackat':{'type':Sequelize[_0xa5a6('0x3')]},'recallme':{'type':Sequelize[_0xa5a6('0x4')],'defaultValue':![]},'editedat':{'type':Sequelize[_0xa5a6('0x3')]},'edited':{'type':Sequelize[_0xa5a6('0x4')],'defaultValue':![]},'countnosuchnumberretry':{'type':Sequelize[_0xa5a6('0x2')],'defaultValue':0x0},'countdropretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xa5a6('0x2')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xa5a6('0x2')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0xa5a6('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d6c=['type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','include','findAll','rows','catch','rawAttributes','length','includeAll','options','find','body','describe','uniqueid','eml-format','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','lodash','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','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','save','update','then','stack','name','map','CmHopperHistory','fieldName'];(function(_0x2bc09e,_0x1ae747){var _0x3f7c75=function(_0x49bed4){while(--_0x49bed4){_0x2bc09e['push'](_0x2bc09e['shift']());}};_0x3f7c75(++_0x1ae747);}(_0x1d6c,0x133));var _0xc1d6=function(_0x367725,_0x1888d4){_0x367725=_0x367725-0x0;var _0x2526f6=_0x1d6c[_0x367725];return _0x2526f6;};'use strict';var emlformat=require(_0xc1d6('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xc1d6('0x1'));var rp=require(_0xc1d6('0x2'));var moment=require('moment');var BPromise=require(_0xc1d6('0x3'));var Mustache=require(_0xc1d6('0x4'));var util=require(_0xc1d6('0x5'));var path=require(_0xc1d6('0x6'));var sox=require(_0xc1d6('0x7'));var csv=require(_0xc1d6('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc1d6('0x9'));var squel=require('squel');var crypto=require(_0xc1d6('0xa'));var jsforce=require(_0xc1d6('0xb'));var deskjs=require(_0xc1d6('0xc'));var toCsv=require(_0xc1d6('0x8'));var querystring=require(_0xc1d6('0xd'));var Papa=require('papaparse');var Redis=require(_0xc1d6('0xe'));var authService=require(_0xc1d6('0xf'));var qs=require(_0xc1d6('0x10'));var as=require(_0xc1d6('0x11'));var hardwareService=require(_0xc1d6('0x12'));var logger=require('../../config/logger')(_0xc1d6('0x13'));var utils=require(_0xc1d6('0x14'));var config=require(_0xc1d6('0x15'));var licenseUtil=require(_0xc1d6('0x16'));var db=require(_0xc1d6('0x17'))['db'];function respondWithStatusCode(_0x2e6f89,_0x45496a){_0x45496a=_0x45496a||0xcc;return function(_0x3df467){if(_0x3df467){return _0x2e6f89[_0xc1d6('0x18')](_0x45496a);}return _0x2e6f89[_0xc1d6('0x19')](_0x45496a)[_0xc1d6('0x1a')]();};}function respondWithResult(_0x403076,_0x27c8d2){_0x27c8d2=_0x27c8d2||0xc8;return function(_0x161533){if(_0x161533){return _0x403076[_0xc1d6('0x19')](_0x27c8d2)['json'](_0x161533);}};}function respondWithFilteredResult(_0x40c4e5,_0x56e7e4){return function(_0x237098){if(_0x237098){var _0x11cf86=typeof _0x56e7e4[_0xc1d6('0x1b')]===_0xc1d6('0x1c')&&typeof _0x56e7e4[_0xc1d6('0x1d')]===_0xc1d6('0x1c');var _0x1e0419=_0x237098['count'];var _0x3980ee=_0x11cf86?0x0:_0x56e7e4[_0xc1d6('0x1b')];var _0x12aa90=_0x11cf86?_0x237098[_0xc1d6('0x1e')]:_0x56e7e4['offset']+_0x56e7e4[_0xc1d6('0x1d')];var _0x305400;if(_0x12aa90>=_0x1e0419){_0x12aa90=_0x1e0419;_0x305400=0xc8;}else{_0x305400=0xce;}_0x40c4e5[_0xc1d6('0x19')](_0x305400);return _0x40c4e5['set'](_0xc1d6('0x1f'),_0x3980ee+'-'+_0x12aa90+'/'+_0x1e0419)[_0xc1d6('0x20')](_0x237098);}return null;};}function patchUpdates(_0x224c6c){return function(_0x577bf5){try{jsonpatch[_0xc1d6('0x21')](_0x577bf5,_0x224c6c,!![]);}catch(_0x47f00f){return BPromise[_0xc1d6('0x22')](_0x47f00f);}return _0x577bf5[_0xc1d6('0x23')]();};}function saveUpdates(_0x352c1b,_0x3c3dbc){return function(_0x4789b6){if(_0x4789b6){return _0x4789b6[_0xc1d6('0x24')](_0x352c1b)[_0xc1d6('0x25')](function(_0x5bf051){return _0x5bf051;});}return null;};}function removeEntity(_0x5d844e,_0x463b47){return function(_0x17d512){if(_0x17d512){return _0x17d512['destroy']()[_0xc1d6('0x25')](function(){_0x5d844e['status'](0xcc)[_0xc1d6('0x1a')]();});}};}function handleEntityNotFound(_0x5957c0,_0x30a27d){return function(_0x16ff82){if(!_0x16ff82){_0x5957c0['sendStatus'](0x194);}return _0x16ff82;};}function handleError(_0x1094d5,_0x40447e){_0x40447e=_0x40447e||0x1f4;return function(_0x17e859){logger['error'](_0x17e859[_0xc1d6('0x26')]);if(_0x17e859['name']){delete _0x17e859[_0xc1d6('0x27')];}_0x1094d5[_0xc1d6('0x19')](_0x40447e)['send'](_0x17e859);};}exports['index']=function(_0x44be54,_0x274ded){var _0x1c5ee4={},_0x5b3dc3={},_0x15c56c={'count':0x0,'rows':[]};var _0x2f20c1=_[_0xc1d6('0x28')](db[_0xc1d6('0x29')]['rawAttributes'],function(_0x3d5b1e){return{'name':_0x3d5b1e[_0xc1d6('0x2a')],'type':_0x3d5b1e[_0xc1d6('0x2b')]['key']};});_0x5b3dc3[_0xc1d6('0x2c')]=_[_0xc1d6('0x28')](_0x2f20c1,_0xc1d6('0x27'));_0x5b3dc3[_0xc1d6('0x2d')]=_[_0xc1d6('0x2e')](_0x44be54[_0xc1d6('0x2d')]);_0x5b3dc3[_0xc1d6('0x2f')]=_[_0xc1d6('0x30')](_0x5b3dc3[_0xc1d6('0x2c')],_0x5b3dc3[_0xc1d6('0x2d')]);_0x1c5ee4[_0xc1d6('0x31')]=_[_0xc1d6('0x30')](_0x5b3dc3[_0xc1d6('0x2c')],qs['fields'](_0x44be54[_0xc1d6('0x2d')][_0xc1d6('0x32')]));_0x1c5ee4[_0xc1d6('0x31')]=_0x1c5ee4[_0xc1d6('0x31')]['length']?_0x1c5ee4['attributes']:_0x5b3dc3[_0xc1d6('0x2c')];if(!_0x44be54[_0xc1d6('0x2d')][_0xc1d6('0x33')]('nolimit')){_0x1c5ee4[_0xc1d6('0x1d')]=qs[_0xc1d6('0x1d')](_0x44be54[_0xc1d6('0x2d')]['limit']);_0x1c5ee4['offset']=qs['offset'](_0x44be54['query'][_0xc1d6('0x1b')]);}_0x1c5ee4[_0xc1d6('0x34')]=qs['sort'](_0x44be54[_0xc1d6('0x2d')][_0xc1d6('0x35')]);_0x1c5ee4[_0xc1d6('0x36')]=qs[_0xc1d6('0x2f')](_['pick'](_0x44be54[_0xc1d6('0x2d')],_0x5b3dc3[_0xc1d6('0x2f')]),_0x2f20c1);if(_0x44be54[_0xc1d6('0x2d')][_0xc1d6('0x37')]){_0x1c5ee4[_0xc1d6('0x36')]=_[_0xc1d6('0x38')](_0x1c5ee4[_0xc1d6('0x36')],{'$or':_[_0xc1d6('0x28')](_0x2f20c1,function(_0x17255f){if(_0x17255f[_0xc1d6('0x2b')]!==_0xc1d6('0x39')){var _0x36b683={};_0x36b683[_0x17255f[_0xc1d6('0x27')]]={'$like':'%'+_0x44be54[_0xc1d6('0x2d')][_0xc1d6('0x37')]+'%'};return _0x36b683;}})});}_0x1c5ee4=_[_0xc1d6('0x38')]({},_0x1c5ee4,_0x44be54['options']);var _0x3e66bc={'where':_0x1c5ee4['where']};return db['CmHopperHistory'][_0xc1d6('0x1e')](_0x3e66bc)[_0xc1d6('0x25')](function(_0x4a06fa){_0x15c56c[_0xc1d6('0x1e')]=_0x4a06fa;if(_0x44be54[_0xc1d6('0x2d')]['includeAll']){_0x1c5ee4[_0xc1d6('0x3a')]=[{'all':!![]}];}return db['CmHopperHistory'][_0xc1d6('0x3b')](_0x1c5ee4);})[_0xc1d6('0x25')](function(_0x49d737){_0x15c56c[_0xc1d6('0x3c')]=_0x49d737;return _0x15c56c;})[_0xc1d6('0x25')](respondWithFilteredResult(_0x274ded,_0x1c5ee4))[_0xc1d6('0x3d')](handleError(_0x274ded,null));};exports['show']=function(_0x39578c,_0x40acd3){var _0x194755={'raw':!![],'where':{'id':_0x39578c['params']['id']}},_0x3c99b4={};_0x3c99b4[_0xc1d6('0x2c')]=_[_0xc1d6('0x2e')](db['CmHopperHistory'][_0xc1d6('0x3e')]);_0x3c99b4[_0xc1d6('0x2d')]=_['keys'](_0x39578c['query']);_0x3c99b4[_0xc1d6('0x2f')]=_[_0xc1d6('0x30')](_0x3c99b4[_0xc1d6('0x2c')],_0x3c99b4[_0xc1d6('0x2d')]);_0x194755[_0xc1d6('0x31')]=_[_0xc1d6('0x30')](_0x3c99b4[_0xc1d6('0x2c')],qs[_0xc1d6('0x32')](_0x39578c[_0xc1d6('0x2d')][_0xc1d6('0x32')]));_0x194755[_0xc1d6('0x31')]=_0x194755[_0xc1d6('0x31')][_0xc1d6('0x3f')]?_0x194755[_0xc1d6('0x31')]:_0x3c99b4[_0xc1d6('0x2c')];if(_0x39578c[_0xc1d6('0x2d')][_0xc1d6('0x40')]){_0x194755[_0xc1d6('0x3a')]=[{'all':!![]}];}_0x194755=_[_0xc1d6('0x38')]({},_0x194755,_0x39578c[_0xc1d6('0x41')]);return db[_0xc1d6('0x29')][_0xc1d6('0x42')](_0x194755)[_0xc1d6('0x25')](handleEntityNotFound(_0x40acd3,null))['then'](respondWithResult(_0x40acd3,null))['catch'](handleError(_0x40acd3,null));};exports['create']=function(_0x3537f6,_0x3b66ee){return db[_0xc1d6('0x29')]['create'](_0x3537f6[_0xc1d6('0x43')],{})['then'](respondWithResult(_0x3b66ee,0xc9))[_0xc1d6('0x3d')](handleError(_0x3b66ee,null));};exports[_0xc1d6('0x44')]=function(_0x21df0b,_0x39f7cd){return db['CmHopperHistory'][_0xc1d6('0x44')]()[_0xc1d6('0x25')](respondWithResult(_0x39f7cd,null))[_0xc1d6('0x3d')](handleError(_0x39f7cd,null));};exports[_0xc1d6('0x24')]=function(_0x3a5eab,_0x358e2d){if(_0x3a5eab[_0xc1d6('0x43')][_0xc1d6('0x45')]){delete _0x3a5eab[_0xc1d6('0x43')][_0xc1d6('0x45')];}return db['CmHopperHistory'][_0xc1d6('0x42')]({'where':{'uniqueid':_0x3a5eab['params']['id']}})[_0xc1d6('0x25')](handleEntityNotFound(_0x358e2d,null))[_0xc1d6('0x25')](saveUpdates(_0x3a5eab[_0xc1d6('0x43')],null))[_0xc1d6('0x25')](respondWithResult(_0x358e2d,null))['catch'](handleError(_0x358e2d,null));};
\ No newline at end of file
+var _0x38bb=['save','update','then','error','stack','name','send','index','map','CmHopperHistory','rawAttributes','fieldName','type','key','model','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','show','params','keys','include','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','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','offset','limit','count','Content-Range','apply','reject'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x38bb,0xcc));var _0xb38b=function(_0x530950,_0x355068){_0x530950=_0x530950-0x0;var _0x30a1f3=_0x38bb[_0x530950];return _0x30a1f3;};'use strict';var emlformat=require(_0xb38b('0x0'));var rimraf=require(_0xb38b('0x1'));var zipdir=require(_0xb38b('0x2'));var jsonpatch=require(_0xb38b('0x3'));var rp=require(_0xb38b('0x4'));var moment=require(_0xb38b('0x5'));var BPromise=require(_0xb38b('0x6'));var Mustache=require(_0xb38b('0x7'));var util=require(_0xb38b('0x8'));var path=require(_0xb38b('0x9'));var sox=require(_0xb38b('0xa'));var csv=require(_0xb38b('0xb'));var ejs=require(_0xb38b('0xc'));var fs=require('fs');var fs_extra=require(_0xb38b('0xd'));var _=require(_0xb38b('0xe'));var squel=require(_0xb38b('0xf'));var crypto=require(_0xb38b('0x10'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xb38b('0x11'));var Papa=require(_0xb38b('0x12'));var Redis=require(_0xb38b('0x13'));var authService=require(_0xb38b('0x14'));var qs=require(_0xb38b('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb38b('0x16'));var logger=require(_0xb38b('0x17'))(_0xb38b('0x18'));var utils=require(_0xb38b('0x19'));var config=require(_0xb38b('0x1a'));var licenseUtil=require(_0xb38b('0x1b'));var db=require(_0xb38b('0x1c'))['db'];function respondWithStatusCode(_0x2d120f,_0x1a6c54){_0x1a6c54=_0x1a6c54||0xcc;return function(_0x9be4ed){if(_0x9be4ed){return _0x2d120f[_0xb38b('0x1d')](_0x1a6c54);}return _0x2d120f[_0xb38b('0x1e')](_0x1a6c54)[_0xb38b('0x1f')]();};}function respondWithResult(_0xb2bd5d,_0x53b436){_0x53b436=_0x53b436||0xc8;return function(_0x201ded){if(_0x201ded){return _0xb2bd5d[_0xb38b('0x1e')](_0x53b436)[_0xb38b('0x20')](_0x201ded);}};}function respondWithFilteredResult(_0x1f4df9,_0x1dfdf8){return function(_0x1e1981){if(_0x1e1981){var _0x518e37=typeof _0x1dfdf8[_0xb38b('0x21')]==='undefined'&&typeof _0x1dfdf8[_0xb38b('0x22')]==='undefined';var _0x498e1b=_0x1e1981[_0xb38b('0x23')];var _0x9ffa5a=_0x518e37?0x0:_0x1dfdf8[_0xb38b('0x21')];var _0x1d5eb0=_0x518e37?_0x1e1981[_0xb38b('0x23')]:_0x1dfdf8[_0xb38b('0x21')]+_0x1dfdf8[_0xb38b('0x22')];var _0x39cde5;if(_0x1d5eb0>=_0x498e1b){_0x1d5eb0=_0x498e1b;_0x39cde5=0xc8;}else{_0x39cde5=0xce;}_0x1f4df9[_0xb38b('0x1e')](_0x39cde5);return _0x1f4df9['set'](_0xb38b('0x24'),_0x9ffa5a+'-'+_0x1d5eb0+'/'+_0x498e1b)['json'](_0x1e1981);}return null;};}function patchUpdates(_0x1aebda){return function(_0xb98e1e){try{jsonpatch[_0xb38b('0x25')](_0xb98e1e,_0x1aebda,!![]);}catch(_0x1681d9){return BPromise[_0xb38b('0x26')](_0x1681d9);}return _0xb98e1e[_0xb38b('0x27')]();};}function saveUpdates(_0x279293,_0xba97b9){return function(_0x293c6d){if(_0x293c6d){return _0x293c6d[_0xb38b('0x28')](_0x279293)[_0xb38b('0x29')](function(_0x1ab2ad){return _0x1ab2ad;});}return null;};}function removeEntity(_0x59ab90,_0x3620d2){return function(_0x5c4eee){if(_0x5c4eee){return _0x5c4eee['destroy']()[_0xb38b('0x29')](function(){_0x59ab90[_0xb38b('0x1e')](0xcc)[_0xb38b('0x1f')]();});}};}function handleEntityNotFound(_0x246767,_0x1d7f3b){return function(_0x460992){if(!_0x460992){_0x246767[_0xb38b('0x1d')](0x194);}return _0x460992;};}function handleError(_0x27ac79,_0x2c9473){_0x2c9473=_0x2c9473||0x1f4;return function(_0x50bbe0){logger[_0xb38b('0x2a')](_0x50bbe0[_0xb38b('0x2b')]);if(_0x50bbe0[_0xb38b('0x2c')]){delete _0x50bbe0[_0xb38b('0x2c')];}_0x27ac79[_0xb38b('0x1e')](_0x2c9473)[_0xb38b('0x2d')](_0x50bbe0);};}exports[_0xb38b('0x2e')]=function(_0x47a1de,_0x5235c1){var _0x16517e={},_0xcfd641={},_0x2ffb6a={'count':0x0,'rows':[]};var _0x105714=_[_0xb38b('0x2f')](db[_0xb38b('0x30')][_0xb38b('0x31')],function(_0x28aeb2){return{'name':_0x28aeb2[_0xb38b('0x32')],'type':_0x28aeb2[_0xb38b('0x33')][_0xb38b('0x34')]};});_0xcfd641[_0xb38b('0x35')]=_[_0xb38b('0x2f')](_0x105714,_0xb38b('0x2c'));_0xcfd641['query']=_['keys'](_0x47a1de['query']);_0xcfd641['filters']=_[_0xb38b('0x36')](_0xcfd641[_0xb38b('0x35')],_0xcfd641[_0xb38b('0x37')]);_0x16517e[_0xb38b('0x38')]=_[_0xb38b('0x36')](_0xcfd641[_0xb38b('0x35')],qs['fields'](_0x47a1de[_0xb38b('0x37')][_0xb38b('0x39')]));_0x16517e['attributes']=_0x16517e[_0xb38b('0x38')][_0xb38b('0x3a')]?_0x16517e[_0xb38b('0x38')]:_0xcfd641['model'];if(!_0x47a1de[_0xb38b('0x37')][_0xb38b('0x3b')](_0xb38b('0x3c'))){_0x16517e[_0xb38b('0x22')]=qs[_0xb38b('0x22')](_0x47a1de['query'][_0xb38b('0x22')]);_0x16517e[_0xb38b('0x21')]=qs[_0xb38b('0x21')](_0x47a1de[_0xb38b('0x37')]['offset']);}_0x16517e[_0xb38b('0x3d')]=qs[_0xb38b('0x3e')](_0x47a1de['query'][_0xb38b('0x3e')]);_0x16517e[_0xb38b('0x3f')]=qs[_0xb38b('0x40')](_[_0xb38b('0x41')](_0x47a1de['query'],_0xcfd641[_0xb38b('0x40')]),_0x105714);if(_0x47a1de[_0xb38b('0x37')][_0xb38b('0x42')]){_0x16517e['where']=_[_0xb38b('0x43')](_0x16517e['where'],{'$or':_['map'](_0x105714,function(_0x320f90){if(_0x320f90['type']!==_0xb38b('0x44')){var _0x465dbd={};_0x465dbd[_0x320f90[_0xb38b('0x2c')]]={'$like':'%'+_0x47a1de['query'][_0xb38b('0x42')]+'%'};return _0x465dbd;}})});}_0x16517e=_[_0xb38b('0x43')]({},_0x16517e,_0x47a1de['options']);var _0x5b0ae5={'where':_0x16517e[_0xb38b('0x3f')]};return db[_0xb38b('0x30')][_0xb38b('0x23')](_0x5b0ae5)[_0xb38b('0x29')](function(_0xb4a857){_0x2ffb6a[_0xb38b('0x23')]=_0xb4a857;if(_0x47a1de['query'][_0xb38b('0x45')]){_0x16517e['include']=[{'all':!![]}];}return db[_0xb38b('0x30')][_0xb38b('0x46')](_0x16517e);})[_0xb38b('0x29')](function(_0x2536c4){_0x2ffb6a[_0xb38b('0x47')]=_0x2536c4;return _0x2ffb6a;})[_0xb38b('0x29')](respondWithFilteredResult(_0x5235c1,_0x16517e))[_0xb38b('0x48')](handleError(_0x5235c1,null));};exports[_0xb38b('0x49')]=function(_0x3b978c,_0x3a60a6){var _0x5215a7={'raw':!![],'where':{'id':_0x3b978c[_0xb38b('0x4a')]['id']}},_0x5ef5f7={};_0x5ef5f7['model']=_[_0xb38b('0x4b')](db[_0xb38b('0x30')]['rawAttributes']);_0x5ef5f7[_0xb38b('0x37')]=_[_0xb38b('0x4b')](_0x3b978c[_0xb38b('0x37')]);_0x5ef5f7[_0xb38b('0x40')]=_[_0xb38b('0x36')](_0x5ef5f7['model'],_0x5ef5f7[_0xb38b('0x37')]);_0x5215a7[_0xb38b('0x38')]=_[_0xb38b('0x36')](_0x5ef5f7['model'],qs[_0xb38b('0x39')](_0x3b978c['query']['fields']));_0x5215a7[_0xb38b('0x38')]=_0x5215a7[_0xb38b('0x38')][_0xb38b('0x3a')]?_0x5215a7[_0xb38b('0x38')]:_0x5ef5f7[_0xb38b('0x35')];if(_0x3b978c[_0xb38b('0x37')][_0xb38b('0x45')]){_0x5215a7[_0xb38b('0x4c')]=[{'all':!![]}];}_0x5215a7=_[_0xb38b('0x43')]({},_0x5215a7,_0x3b978c['options']);return db[_0xb38b('0x30')][_0xb38b('0x4d')](_0x5215a7)['then'](handleEntityNotFound(_0x3a60a6,null))['then'](respondWithResult(_0x3a60a6,null))[_0xb38b('0x48')](handleError(_0x3a60a6,null));};exports['create']=function(_0x3a99aa,_0x2a49f4){return db[_0xb38b('0x30')][_0xb38b('0x4e')](_0x3a99aa[_0xb38b('0x4f')],{})[_0xb38b('0x29')](respondWithResult(_0x2a49f4,0xc9))[_0xb38b('0x48')](handleError(_0x2a49f4,null));};exports[_0xb38b('0x50')]=function(_0x21f1fe,_0x4e4f39){return db[_0xb38b('0x30')][_0xb38b('0x50')]()[_0xb38b('0x29')](respondWithResult(_0x4e4f39,null))[_0xb38b('0x48')](handleError(_0x4e4f39,null));};exports[_0xb38b('0x28')]=function(_0x21e4d6,_0x16f250){if(_0x21e4d6[_0xb38b('0x4f')]['uniqueid']){delete _0x21e4d6[_0xb38b('0x4f')]['uniqueid'];}return db[_0xb38b('0x30')][_0xb38b('0x4d')]({'where':{'uniqueid':_0x21e4d6[_0xb38b('0x4a')]['id']}})[_0xb38b('0x29')](handleEntityNotFound(_0x16f250,null))[_0xb38b('0x29')](saveUpdates(_0x21e4d6[_0xb38b('0x4f')],null))[_0xb38b('0x29')](respondWithResult(_0x16f250,null))[_0xb38b('0x48')](handleError(_0x16f250,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdbb9=['moment','request-promise','path','rimraf','../../config/environment','./cmHopperHistory.attributes','exports','CmHopperHistory','cm_hopper_history','endtime','uniqueid','util','../../config/logger','api'];(function(_0x4c284a,_0x1085f6){var _0xccb15f=function(_0x16c300){while(--_0x16c300){_0x4c284a['push'](_0x4c284a['shift']());}};_0xccb15f(++_0x1085f6);}(_0xdbb9,0xf9));var _0x9dbb=function(_0x389a25,_0x21fe63){_0x389a25=_0x389a25-0x0;var _0x40e9b7=_0xdbb9[_0x389a25];return _0x40e9b7;};'use strict';var _=require('lodash');var util=require(_0x9dbb('0x0'));var logger=require(_0x9dbb('0x1'))(_0x9dbb('0x2'));var moment=require(_0x9dbb('0x3'));var BPromise=require('bluebird');var rp=require(_0x9dbb('0x4'));var fs=require('fs');var path=require(_0x9dbb('0x5'));var rimraf=require(_0x9dbb('0x6'));var config=require(_0x9dbb('0x7'));var attributes=require(_0x9dbb('0x8'));module[_0x9dbb('0x9')]=function(_0x4c7cb2,_0x4f1eec){return _0x4c7cb2['define'](_0x9dbb('0xa'),attributes,{'tableName':_0x9dbb('0xb'),'paranoid':![],'indexes':[{'name':_0x9dbb('0xc'),'fields':['endtime']},{'name':'uniqueid','fields':[_0x9dbb('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x2d0b=['api','bluebird','request-promise','path','rimraf','./cmHopperHistory.attributes','define','CmHopperHistory','cm_hopper_history','endtime','uniqueid','util','../../config/logger'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x2d0b,0x102));var _0xb2d0=function(_0x425727,_0x159a35){_0x425727=_0x425727-0x0;var _0x25cd98=_0x2d0b[_0x425727];return _0x25cd98;};'use strict';var _=require('lodash');var util=require(_0xb2d0('0x0'));var logger=require(_0xb2d0('0x1'))(_0xb2d0('0x2'));var moment=require('moment');var BPromise=require(_0xb2d0('0x3'));var rp=require(_0xb2d0('0x4'));var fs=require('fs');var path=require(_0xb2d0('0x5'));var rimraf=require(_0xb2d0('0x6'));var config=require('../../config/environment');var attributes=require(_0xb2d0('0x7'));module['exports']=function(_0x395e69,_0x41521f){return _0x395e69[_0xb2d0('0x8')](_0xb2d0('0x9'),attributes,{'tableName':_0xb2d0('0xa'),'paranoid':![],'indexes':[{'name':_0xb2d0('0xb'),'fields':[_0xb2d0('0xb')]},{'name':_0xb2d0('0xc'),'fields':[_0xb2d0('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7314=['CmHopperHistory,\x20%s,\x20%s','debug','CmHopperHistory,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','CreateCmHopperHistory','create','body','options','raw','then','AvgHandleTime','CmHopperHistory','findAll','where','sequelize','COUNT','col','predictiveIntervalTotalCalls','`state`\x20=\x204,\x201,\x20null','literal','`state`\x20=\x2010,\x201,\x20null','predictiveIntervalDroppedCallsTimeout','`state`\x20=\x2011,\x201,\x20null','predictiveIntervalDroppedCallsCallersExit','`state`\x20=\x204,\x20`holdtime`,\x20null','`state`\x20=\x204,\x20`talktime`,\x20null','predictiveIntervalAvgTalktime','GetVoiceQueueHopperHistory','name','`state`\x20=\x203,\x201,\x20null','outboundNoAnswerCallsDay','`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','`state`\x20=\x2013,\x201,\x20null','outboundBlacklistCallsDay','`state`\x20=\x2014,\x201,\x20null','outboundOriginateFailureCallsDay','`state`\x20=\x2018,\x201,\x20null','outboundRejectCallsDay','`state`\x20=\x2016,\x201,\x20null','outboundReCallsDay','campaign','GetCampaignHopperHistory','ivrAnswerCallsDay','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','info'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x7314,0x100));var _0x4731=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x7314[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x4731('0x0'));var util=require(_0x4731('0x1'));var moment=require('moment');var BPromise=require(_0x4731('0x2'));var rs=require(_0x4731('0x3'));var fs=require('fs');var Redis=require(_0x4731('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x4731('0x5'));var logger=require(_0x4731('0x6'))(_0x4731('0x7'));var config=require('../../config/environment');var jayson=require(_0x4731('0x8'));var client=jayson[_0x4731('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0xb73308,_0x3d181e,_0x3635a6){return new BPromise(function(_0x2f76d0,_0x5389b5){return client[_0x4731('0xa')](_0xb73308,_0x3635a6)['then'](function(_0x2087ca){logger[_0x4731('0xb')](_0x4731('0xc'),_0x3d181e,'request\x20sent');logger[_0x4731('0xd')](_0x4731('0xe'),_0x3d181e,_0x4731('0xf'),JSON[_0x4731('0x10')](_0x2087ca));if(_0x2087ca[_0x4731('0x11')]){if(_0x2087ca[_0x4731('0x11')][_0x4731('0x12')]===0x1f4){logger[_0x4731('0x11')](_0x4731('0xc'),_0x3d181e,_0x2087ca[_0x4731('0x11')][_0x4731('0x13')]);return _0x5389b5(_0x2087ca['error']['message']);}logger[_0x4731('0x11')](_0x4731('0xc'),_0x3d181e,_0x2087ca['error'][_0x4731('0x13')]);return _0x2f76d0(_0x2087ca[_0x4731('0x11')][_0x4731('0x13')]);}else{logger[_0x4731('0xb')]('CmHopperHistory,\x20%s,\x20%s',_0x3d181e,_0x4731('0xf'));_0x2f76d0(_0x2087ca[_0x4731('0x14')]['message']);}})[_0x4731('0x15')](function(_0x1597ac){logger['error'](_0x4731('0xc'),_0x3d181e,_0x1597ac);_0x5389b5(_0x1597ac);});});}exports[_0x4731('0x16')]=function(_0x48764e){var _0x1398b4=this;return new Promise(function(_0x562505,_0x4a4475){return db['CmHopperHistory'][_0x4731('0x17')](_0x48764e[_0x4731('0x18')],{'raw':_0x48764e[_0x4731('0x19')]?_0x48764e['options'][_0x4731('0x1a')]===undefined?!![]:![]:!![]})[_0x4731('0x1b')](function(_0xc6efce){logger[_0x4731('0xb')](_0x4731('0x16'),_0x48764e);logger[_0x4731('0xd')](_0x4731('0x16'),_0x48764e,JSON[_0x4731('0x10')](_0xc6efce));_0x562505(_0xc6efce);})[_0x4731('0x15')](function(_0x31aa48){logger[_0x4731('0x11')](_0x4731('0x16'),_0x31aa48[_0x4731('0x13')],_0x48764e);_0x4a4475(_0x1398b4[_0x4731('0x11')](0x1f4,_0x31aa48[_0x4731('0x13')]));});});};exports[_0x4731('0x1c')]=function(_0x2540f6){var _0x4bdc9a=this;return new Promise(function(_0xcae8df,_0x19c733){return db[_0x4731('0x1d')][_0x4731('0x1e')]({'raw':_0x2540f6['options']?_0x2540f6[_0x4731('0x19')][_0x4731('0x1a')]===undefined?!![]:![]:!![],'where':_0x2540f6[_0x4731('0x19')]?_0x2540f6[_0x4731('0x19')][_0x4731('0x1f')]||null:null,'attributes':[[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db['sequelize'][_0x4731('0x22')]('id')),_0x4731('0x23')],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db[_0x4731('0x20')]['fn']('IF',db[_0x4731('0x20')]['literal'](_0x4731('0x24')))),'predictiveIntervalAnsweredCalls'],[db['sequelize']['fn'](_0x4731('0x21'),db['sequelize']['fn']('IF',db[_0x4731('0x20')][_0x4731('0x25')](_0x4731('0x26')))),_0x4731('0x27')],[db[_0x4731('0x20')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x4731('0x20')][_0x4731('0x25')](_0x4731('0x28')))),_0x4731('0x29')],[db['sequelize']['fn']('AVG',db[_0x4731('0x20')]['fn']('IF',db[_0x4731('0x20')][_0x4731('0x25')](_0x4731('0x2a')))),'predictiveIntervalAvgHoldtime'],[db[_0x4731('0x20')]['fn']('AVG',db[_0x4731('0x20')]['fn']('IF',db['sequelize'][_0x4731('0x25')](_0x4731('0x2b')))),_0x4731('0x2c')]]})[_0x4731('0x1b')](function(_0x11054b){logger[_0x4731('0xb')](_0x4731('0x1c'),_0x2540f6);logger[_0x4731('0xd')](_0x4731('0x1c'),_0x2540f6,JSON[_0x4731('0x10')](_0x11054b));_0xcae8df(_0x11054b);})[_0x4731('0x15')](function(_0x583e5a){logger[_0x4731('0x11')](_0x4731('0x1c'),_0x583e5a[_0x4731('0x13')],_0x2540f6);_0x19c733(_0x4bdc9a[_0x4731('0x11')](0x1f4,_0x583e5a[_0x4731('0x13')]));});});};exports[_0x4731('0x2d')]=function(_0x483faa){var _0x57b04e=this;return new Promise(function(_0x32148c,_0x4fb932){return db[_0x4731('0x1d')][_0x4731('0x1e')]({'raw':_0x483faa[_0x4731('0x19')]?_0x483faa['options'][_0x4731('0x1a')]===undefined?!![]:![]:!![],'where':_0x483faa[_0x4731('0x19')]?_0x483faa[_0x4731('0x19')][_0x4731('0x1f')]||null:null,'attributes':[['campaign',_0x4731('0x2e')],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db['sequelize']['fn']('IF',db['sequelize'][_0x4731('0x25')]('`state`\x20=\x200,\x201,\x20null'))),'outboundNoSuchCallsDay'],[db[_0x4731('0x20')]['fn']('COUNT',db[_0x4731('0x20')]['fn']('IF',db['sequelize'][_0x4731('0x25')](_0x4731('0x2f')))),_0x4731('0x30')],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db['sequelize']['fn']('IF',db[_0x4731('0x20')][_0x4731('0x25')](_0x4731('0x24')))),'outboundAnswerCallsDay'],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db[_0x4731('0x20')]['fn']('IF',db[_0x4731('0x20')][_0x4731('0x25')]('`state`\x20=\x205,\x201,\x20null'))),'outboundBusyCallsDay'],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db[_0x4731('0x20')]['fn']('IF',db[_0x4731('0x20')][_0x4731('0x25')](_0x4731('0x31')))),_0x4731('0x32')],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db[_0x4731('0x20')]['fn']('IF',db[_0x4731('0x20')][_0x4731('0x25')](_0x4731('0x33')))),_0x4731('0x34')],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db['sequelize']['fn']('IF',db['sequelize'][_0x4731('0x25')](_0x4731('0x35')))),_0x4731('0x36')],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db['sequelize']['fn']('IF',db[_0x4731('0x20')][_0x4731('0x25')](_0x4731('0x37')))),'outboundUnknownCallsDay'],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db[_0x4731('0x20')]['fn']('IF',db[_0x4731('0x20')]['literal'](_0x4731('0x38')))),_0x4731('0x39')],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db[_0x4731('0x20')]['fn']('IF',db[_0x4731('0x20')]['literal'](_0x4731('0x3a')))),_0x4731('0x3b')],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db[_0x4731('0x20')]['fn']('IF',db['sequelize'][_0x4731('0x25')](_0x4731('0x3c')))),_0x4731('0x3d')],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db['sequelize']['fn']('IF',db['sequelize']['literal'](_0x4731('0x3e')))),'outboundAnswerAgiCallsDay'],[db[_0x4731('0x20')]['fn']('COUNT',db[_0x4731('0x20')]['fn']('IF',db[_0x4731('0x20')][_0x4731('0x25')]('`state`\x20=\x2020,\x201,\x20null'))),_0x4731('0x3d')],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db[_0x4731('0x20')]['fn']('IF',db['sequelize'][_0x4731('0x25')]('`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null'))),_0x4731('0x3f')]],'group':[_0x4731('0x40')]})[_0x4731('0x1b')](function(_0x40ae04){logger[_0x4731('0xb')](_0x4731('0x2d'),_0x483faa);logger[_0x4731('0xd')](_0x4731('0x2d'),_0x483faa,JSON[_0x4731('0x10')](_0x40ae04));_0x32148c(_0x40ae04);})[_0x4731('0x15')](function(_0x529bbe){logger[_0x4731('0x11')](_0x4731('0x2d'),_0x529bbe['message'],_0x483faa);_0x4fb932(_0x57b04e[_0x4731('0x11')](0x1f4,_0x529bbe[_0x4731('0x13')]));});});};exports[_0x4731('0x41')]=function(_0x5b36b9){var _0xf3680=this;return new Promise(function(_0x52fc51,_0x473e2a){return db[_0x4731('0x1d')]['findAll']({'raw':_0x5b36b9[_0x4731('0x19')]?_0x5b36b9[_0x4731('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x5b36b9[_0x4731('0x19')]?_0x5b36b9[_0x4731('0x19')][_0x4731('0x1f')]||null:null,'attributes':[[_0x4731('0x40'),_0x4731('0x2e')],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db[_0x4731('0x20')][_0x4731('0x22')]('id')),'ivrTotalCallsDays'],[db[_0x4731('0x20')]['fn'](_0x4731('0x21'),db[_0x4731('0x20')]['fn']('IF',db['sequelize']['literal']('`state`\x20=\x204,\x201,\x20null'))),_0x4731('0x42')]],'group':['campaign']})['then'](function(_0x4c765e){logger['info'](_0x4731('0x41'),_0x5b36b9);logger[_0x4731('0xd')](_0x4731('0x41'),_0x5b36b9,JSON[_0x4731('0x10')](_0x4c765e));_0x52fc51(_0x4c765e);})[_0x4731('0x15')](function(_0x18df31){logger[_0x4731('0x11')](_0x4731('0x41'),_0x18df31[_0x4731('0x13')],_0x5b36b9);_0x473e2a(_0xf3680[_0x4731('0x11')](0x1f4,_0x18df31[_0x4731('0x13')]));});});};
\ No newline at end of file
+var _0xe829=['GetCampaignHopperHistory','name','ivrTotalCallsDays','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then','request\x20sent','debug','CmHopperHistory,\x20%s,\x20%s,\x20%s','stringify','error','code','CmHopperHistory,\x20%s,\x20%s','message','info','catch','CmHopperHistory','create','options','raw','CreateCmHopperHistory','AvgHandleTime','findAll','where','sequelize','COUNT','col','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','GetVoiceQueueHopperHistory','campaign','`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','outboundDropCallsDayTimeout','`state`\x20=\x2011\x20,\x201,\x20null','outboundUnknownCallsDay','`state`\x20=\x2013,\x201,\x20null','outboundBlacklistCallsDay','`state`\x20=\x2018,\x201,\x20null','outboundRejectCallsDay','outboundAnswerAgiCallsDay','`state`\x20=\x2020,\x201,\x20null'];(function(_0x32ad2c,_0xc381de){var _0x2df995=function(_0x722eed){while(--_0x722eed){_0x32ad2c['push'](_0x32ad2c['shift']());}};_0x2df995(++_0xc381de);}(_0xe829,0x1d8));var _0x9e82=function(_0x18eb1a,_0x446792){_0x18eb1a=_0x18eb1a-0x0;var _0x279ad8=_0xe829[_0x18eb1a];return _0x279ad8;};'use strict';var _=require(_0x9e82('0x0'));var util=require(_0x9e82('0x1'));var moment=require(_0x9e82('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9e82('0x3'));var db=require(_0x9e82('0x4'))['db'];var utils=require(_0x9e82('0x5'));var logger=require(_0x9e82('0x6'))(_0x9e82('0x7'));var config=require(_0x9e82('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x9e82('0x9')][_0x9e82('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1a63b3,_0x7cebd4,_0x2d91ba){return new BPromise(function(_0x5c4c57,_0x149f39){return client['request'](_0x1a63b3,_0x2d91ba)[_0x9e82('0xb')](function(_0x13070b){logger['info']('CmHopperHistory,\x20%s,\x20%s',_0x7cebd4,_0x9e82('0xc'));logger[_0x9e82('0xd')](_0x9e82('0xe'),_0x7cebd4,_0x9e82('0xc'),JSON[_0x9e82('0xf')](_0x13070b));if(_0x13070b[_0x9e82('0x10')]){if(_0x13070b[_0x9e82('0x10')][_0x9e82('0x11')]===0x1f4){logger[_0x9e82('0x10')](_0x9e82('0x12'),_0x7cebd4,_0x13070b[_0x9e82('0x10')][_0x9e82('0x13')]);return _0x149f39(_0x13070b['error']['message']);}logger[_0x9e82('0x10')](_0x9e82('0x12'),_0x7cebd4,_0x13070b[_0x9e82('0x10')][_0x9e82('0x13')]);return _0x5c4c57(_0x13070b['error'][_0x9e82('0x13')]);}else{logger[_0x9e82('0x14')](_0x9e82('0x12'),_0x7cebd4,_0x9e82('0xc'));_0x5c4c57(_0x13070b['result'][_0x9e82('0x13')]);}})[_0x9e82('0x15')](function(_0x3f70a3){logger[_0x9e82('0x10')]('CmHopperHistory,\x20%s,\x20%s',_0x7cebd4,_0x3f70a3);_0x149f39(_0x3f70a3);});});}exports['CreateCmHopperHistory']=function(_0x4815d8){var _0x40757e=this;return new Promise(function(_0x2de033,_0xdb5e7b){return db[_0x9e82('0x16')][_0x9e82('0x17')](_0x4815d8['body'],{'raw':_0x4815d8[_0x9e82('0x18')]?_0x4815d8[_0x9e82('0x18')][_0x9e82('0x19')]===undefined?!![]:![]:!![]})[_0x9e82('0xb')](function(_0x528ff4){logger['info'](_0x9e82('0x1a'),_0x4815d8);logger[_0x9e82('0xd')](_0x9e82('0x1a'),_0x4815d8,JSON[_0x9e82('0xf')](_0x528ff4));_0x2de033(_0x528ff4);})[_0x9e82('0x15')](function(_0x10c3d6){logger['error'](_0x9e82('0x1a'),_0x10c3d6[_0x9e82('0x13')],_0x4815d8);_0xdb5e7b(_0x40757e[_0x9e82('0x10')](0x1f4,_0x10c3d6[_0x9e82('0x13')]));});});};exports[_0x9e82('0x1b')]=function(_0x4e0570){var _0x21519d=this;return new Promise(function(_0x4a628c,_0x2112ee){return db['CmHopperHistory'][_0x9e82('0x1c')]({'raw':_0x4e0570[_0x9e82('0x18')]?_0x4e0570[_0x9e82('0x18')][_0x9e82('0x19')]===undefined?!![]:![]:!![],'where':_0x4e0570[_0x9e82('0x18')]?_0x4e0570[_0x9e82('0x18')][_0x9e82('0x1d')]||null:null,'attributes':[[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')][_0x9e82('0x20')]('id')),'predictiveIntervalTotalCalls'],[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db[_0x9e82('0x1e')][_0x9e82('0x21')](_0x9e82('0x22')))),_0x9e82('0x23')],[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db[_0x9e82('0x1e')][_0x9e82('0x21')](_0x9e82('0x24')))),_0x9e82('0x25')],[db['sequelize']['fn']('COUNT',db[_0x9e82('0x1e')]['fn']('IF',db[_0x9e82('0x1e')][_0x9e82('0x21')](_0x9e82('0x26')))),_0x9e82('0x27')],[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x28'),db[_0x9e82('0x1e')]['fn']('IF',db[_0x9e82('0x1e')][_0x9e82('0x21')]('`state`\x20=\x204,\x20`holdtime`,\x20null'))),_0x9e82('0x29')],[db[_0x9e82('0x1e')]['fn']('AVG',db[_0x9e82('0x1e')]['fn']('IF',db[_0x9e82('0x1e')][_0x9e82('0x21')](_0x9e82('0x2a')))),_0x9e82('0x2b')]]})[_0x9e82('0xb')](function(_0x2fe280){logger['info'](_0x9e82('0x1b'),_0x4e0570);logger['debug']('AvgHandleTime',_0x4e0570,JSON[_0x9e82('0xf')](_0x2fe280));_0x4a628c(_0x2fe280);})[_0x9e82('0x15')](function(_0x17b0a9){logger[_0x9e82('0x10')]('AvgHandleTime',_0x17b0a9['message'],_0x4e0570);_0x2112ee(_0x21519d[_0x9e82('0x10')](0x1f4,_0x17b0a9[_0x9e82('0x13')]));});});};exports[_0x9e82('0x2c')]=function(_0x3b75ac){var _0xbe42f0=this;return new Promise(function(_0x151ee5,_0x26b921){return db[_0x9e82('0x16')][_0x9e82('0x1c')]({'raw':_0x3b75ac[_0x9e82('0x18')]?_0x3b75ac['options'][_0x9e82('0x19')]===undefined?!![]:![]:!![],'where':_0x3b75ac[_0x9e82('0x18')]?_0x3b75ac[_0x9e82('0x18')][_0x9e82('0x1d')]||null:null,'attributes':[[_0x9e82('0x2d'),'name'],[db['sequelize']['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x9e82('0x1e')][_0x9e82('0x21')](_0x9e82('0x2e')))),_0x9e82('0x2f')],[db[_0x9e82('0x1e')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x9e82('0x1e')][_0x9e82('0x21')](_0x9e82('0x30')))),_0x9e82('0x31')],[db['sequelize']['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db[_0x9e82('0x1e')]['literal']('`state`\x20=\x204,\x201,\x20null'))),_0x9e82('0x32')],[db['sequelize']['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db['sequelize'][_0x9e82('0x21')](_0x9e82('0x33')))),_0x9e82('0x34')],[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db['sequelize'][_0x9e82('0x21')]('`state`\x20=\x208,\x201,\x20null'))),_0x9e82('0x35')],[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db['sequelize'][_0x9e82('0x21')](_0x9e82('0x36')))),_0x9e82('0x37')],[db['sequelize']['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db[_0x9e82('0x1e')][_0x9e82('0x21')](_0x9e82('0x38')))),'outboundDropCallsDayCallersExit'],[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db[_0x9e82('0x1e')]['literal']('`state`\x20=\x2012,\x201,\x20null'))),_0x9e82('0x39')],[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db[_0x9e82('0x1e')]['literal'](_0x9e82('0x3a')))),_0x9e82('0x3b')],[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x1f'),db['sequelize']['fn']('IF',db['sequelize'][_0x9e82('0x21')]('`state`\x20=\x2014,\x201,\x20null'))),'outboundOriginateFailureCallsDay'],[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db[_0x9e82('0x1e')][_0x9e82('0x21')](_0x9e82('0x3c')))),_0x9e82('0x3d')],[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db[_0x9e82('0x1e')][_0x9e82('0x21')]('`state`\x20=\x2016,\x201,\x20null'))),_0x9e82('0x3e')],[db['sequelize']['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db['sequelize'][_0x9e82('0x21')](_0x9e82('0x3f')))),'outboundRejectCallsDay'],[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')]['fn']('IF',db[_0x9e82('0x1e')][_0x9e82('0x21')]('`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null'))),'outboundReCallsDay']],'group':[_0x9e82('0x2d')]})['then'](function(_0x5beca7){logger[_0x9e82('0x14')](_0x9e82('0x2c'),_0x3b75ac);logger[_0x9e82('0xd')](_0x9e82('0x2c'),_0x3b75ac,JSON[_0x9e82('0xf')](_0x5beca7));_0x151ee5(_0x5beca7);})[_0x9e82('0x15')](function(_0x32dcdc){logger['error'](_0x9e82('0x2c'),_0x32dcdc[_0x9e82('0x13')],_0x3b75ac);_0x26b921(_0xbe42f0['error'](0x1f4,_0x32dcdc['message']));});});};exports[_0x9e82('0x40')]=function(_0xc1f02b){var _0x2ed5ef=this;return new Promise(function(_0xf2060a,_0x163947){return db[_0x9e82('0x16')][_0x9e82('0x1c')]({'raw':_0xc1f02b[_0x9e82('0x18')]?_0xc1f02b['options']['raw']===undefined?!![]:![]:!![],'where':_0xc1f02b[_0x9e82('0x18')]?_0xc1f02b[_0x9e82('0x18')][_0x9e82('0x1d')]||null:null,'attributes':[[_0x9e82('0x2d'),_0x9e82('0x41')],[db['sequelize']['fn'](_0x9e82('0x1f'),db[_0x9e82('0x1e')][_0x9e82('0x20')]('id')),_0x9e82('0x42')],[db[_0x9e82('0x1e')]['fn'](_0x9e82('0x1f'),db['sequelize']['fn']('IF',db[_0x9e82('0x1e')][_0x9e82('0x21')](_0x9e82('0x22')))),'ivrAnswerCallsDay']],'group':['campaign']})[_0x9e82('0xb')](function(_0xf67a3b){logger['info'](_0x9e82('0x40'),_0xc1f02b);logger['debug'](_0x9e82('0x40'),_0xc1f02b,JSON['stringify'](_0xf67a3b));_0xf2060a(_0xf67a3b);})[_0x9e82('0x15')](function(_0x142b4d){logger[_0x9e82('0x10')](_0x9e82('0x40'),_0x142b4d[_0x9e82('0x13')],_0xc1f02b);_0x163947(_0x2ed5ef[_0x9e82('0x10')](0x1f4,_0x142b4d[_0x9e82('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fe5=['Router','fs-extra','../../components/interaction/service','../../config/environment','./cmHopperHistory.controller','get','isAuthenticated','/describe','describe','/:id','show','post','put','update','exports','multer','util','connect-timeout','express'];(function(_0x57ac61,_0x467eb9){var _0x2df10f=function(_0xf348de){while(--_0xf348de){_0x57ac61['push'](_0x57ac61['shift']());}};_0x2df10f(++_0x467eb9);}(_0x4fe5,0xcd));var _0x54fe=function(_0x45a2d5,_0x34fde4){_0x45a2d5=_0x45a2d5-0x0;var _0xfd69f2=_0x4fe5[_0x45a2d5];return _0xfd69f2;};'use strict';var multer=require(_0x54fe('0x0'));var util=require(_0x54fe('0x1'));var path=require('path');var timeout=require(_0x54fe('0x2'));var express=require(_0x54fe('0x3'));var router=express[_0x54fe('0x4')]();var fs_extra=require(_0x54fe('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x54fe('0x6'));var config=require(_0x54fe('0x7'));var controller=require(_0x54fe('0x8'));router[_0x54fe('0x9')]('/',auth[_0x54fe('0xa')](),controller['index']);router['get'](_0x54fe('0xb'),auth['isAuthenticated'](),controller[_0x54fe('0xc')]);router[_0x54fe('0x9')](_0x54fe('0xd'),auth[_0x54fe('0xa')](),controller[_0x54fe('0xe')]);router[_0x54fe('0xf')]('/',auth[_0x54fe('0xa')](),controller['create']);router[_0x54fe('0x10')]('/:id',auth[_0x54fe('0xa')](),controller[_0x54fe('0x11')]);module[_0x54fe('0x12')]=router;
\ No newline at end of file
+var _0x1aae=['./cmHopperHistory.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','create','put','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment'];(function(_0x399731,_0x416945){var _0x25c691=function(_0x595bce){while(--_0x595bce){_0x399731['push'](_0x399731['shift']());}};_0x25c691(++_0x416945);}(_0x1aae,0x14c));var _0xe1aa=function(_0x34c0f3,_0x166ac7){_0x34c0f3=_0x34c0f3-0x0;var _0x378067=_0x1aae[_0x34c0f3];return _0x378067;};'use strict';var multer=require(_0xe1aa('0x0'));var util=require(_0xe1aa('0x1'));var path=require(_0xe1aa('0x2'));var timeout=require(_0xe1aa('0x3'));var express=require('express');var router=express[_0xe1aa('0x4')]();var fs_extra=require(_0xe1aa('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xe1aa('0x6'));var config=require(_0xe1aa('0x7'));var controller=require(_0xe1aa('0x8'));router[_0xe1aa('0x9')]('/',auth[_0xe1aa('0xa')](),controller[_0xe1aa('0xb')]);router[_0xe1aa('0x9')](_0xe1aa('0xc'),auth['isAuthenticated'](),controller[_0xe1aa('0xd')]);router[_0xe1aa('0x9')](_0xe1aa('0xe'),auth[_0xe1aa('0xa')](),controller[_0xe1aa('0xf')]);router[_0xe1aa('0x10')]('/',auth['isAuthenticated'](),controller[_0xe1aa('0x11')]);router[_0xe1aa('0x12')](_0xe1aa('0xe'),auth[_0xe1aa('0xa')](),controller['update']);module[_0xe1aa('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe57e=['STRING','name','sequelize'];(function(_0x3eb54a,_0x39c1d4){var _0x25d2b5=function(_0x3847e2){while(--_0x3847e2){_0x3eb54a['push'](_0x3eb54a['shift']());}};_0x25d2b5(++_0x39c1d4);}(_0xe57e,0xf2));var _0xee57=function(_0x2e4166,_0xa5612){_0x2e4166=_0x2e4166-0x0;var _0x318bb3=_0xe57e[_0x2e4166];return _0x318bb3;};'use strict';var Sequelize=require(_0xee57('0x0'));module['exports']={'name':{'type':Sequelize[_0xee57('0x1')],'unique':_0xee57('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xee57('0x1')]},'dialPrefix':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xea89=['STRING','name','sequelize','exports'];(function(_0x1d54f9,_0x1a648){var _0x14d524=function(_0x7d5c3){while(--_0x7d5c3){_0x1d54f9['push'](_0x1d54f9['shift']());}};_0x14d524(++_0x1a648);}(_0xea89,0x1e2));var _0x9ea8=function(_0x34f9e2,_0x5a8e00){_0x34f9e2=_0x34f9e2-0x0;var _0xd6447f=_0xea89[_0x34f9e2];return _0xd6447f;};'use strict';var Sequelize=require(_0x9ea8('0x0'));module[_0x9ea8('0x1')]={'name':{'type':Sequelize[_0x9ea8('0x2')],'unique':_0x9ea8('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x9ea8('0x2')]},'dialPrefix':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcca8=['switch','BOOLEAN','defaultValue','queryInterface','addColumn','cm_contacts','cf_%s','getCustomFields','addAgents','spread','emit','userCmList:save','removeAgents','userCmList:remove','getAgents','User','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','defaults','redis','socket.io-emitter','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','Lists','UserProfileResource','end','name','send','index','map','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','order','sort','where','pick','filters','filter','merge','options','include','findAll','rows','catch','show','params','CmList','includeAll','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','getDispositions','findOne','Disposition','hasOwnProperty','removeDispositions','ids','addContacts','isArray','tags','ListId','push','each','CmContact','omit','dataValues','errors','message','Malformed\x20request\x20syntax','getContacts','CmCustomField','concat','nolimit','raw','CustomFields','format','cf_%d','now','writeFileSync','/tmp/list_%d_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','Content-type','download','sendStatus','addCustomField','transaction','addCustomFields','Sequelize','TEXT','number','INTEGER'];(function(_0x484607,_0x4305b4){var _0x4411e7=function(_0x31bf9a){while(--_0x31bf9a){_0x484607['push'](_0x484607['shift']());}};_0x4411e7(++_0x4305b4);}(_0xcca8,0xa4));var _0x8cca=function(_0x4248e9,_0x19f4bc){_0x4248e9=_0x4248e9-0x0;var _0x4a26af=_0xcca8[_0x4248e9];return _0x4a26af;};'use strict';var emlformat=require(_0x8cca('0x0'));var rimraf=require(_0x8cca('0x1'));var zipdir=require(_0x8cca('0x2'));var jsonpatch=require(_0x8cca('0x3'));var rp=require('request-promise');var moment=require(_0x8cca('0x4'));var BPromise=require(_0x8cca('0x5'));var Mustache=require('mustache');var util=require(_0x8cca('0x6'));var path=require(_0x8cca('0x7'));var sox=require(_0x8cca('0x8'));var csv=require('to-csv');var ejs=require(_0x8cca('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8cca('0xa'));var squel=require(_0x8cca('0xb'));var crypto=require(_0x8cca('0xc'));var jsforce=require(_0x8cca('0xd'));var deskjs=require(_0x8cca('0xe'));var toCsv=require(_0x8cca('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x8cca('0x10'));var authService=require(_0x8cca('0x11'));var qs=require(_0x8cca('0x12'));var as=require(_0x8cca('0x13'));var hardwareService=require(_0x8cca('0x14'));var logger=require(_0x8cca('0x15'))(_0x8cca('0x16'));var utils=require(_0x8cca('0x17'));var config=require(_0x8cca('0x18'));var licenseUtil=require(_0x8cca('0x19'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x8cca('0x1a')](config[_0x8cca('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0x8cca('0x1c'))(new Redis(config['redis']));require('./cmList.socket')['register'](socket);function respondWithStatusCode(_0x1a4954,_0x58efc3){_0x58efc3=_0x58efc3||0xcc;return function(_0x4d0d47){if(_0x4d0d47){return _0x1a4954['sendStatus'](_0x58efc3);}return _0x1a4954[_0x8cca('0x1d')](_0x58efc3)['end']();};}function respondWithResult(_0x4630af,_0x5ac7c6){_0x5ac7c6=_0x5ac7c6||0xc8;return function(_0x26fa13){if(_0x26fa13){return _0x4630af[_0x8cca('0x1d')](_0x5ac7c6)[_0x8cca('0x1e')](_0x26fa13);}};}function respondWithFilteredResult(_0x1f7808,_0x1be5c7){return function(_0x2a8802){if(_0x2a8802){var _0x26a382=typeof _0x1be5c7[_0x8cca('0x1f')]===_0x8cca('0x20')&&typeof _0x1be5c7[_0x8cca('0x21')]==='undefined';var _0x1c8853=_0x2a8802[_0x8cca('0x22')];var _0x2d08ed=_0x26a382?0x0:_0x1be5c7[_0x8cca('0x1f')];var _0x4b2fef=_0x26a382?_0x2a8802['count']:_0x1be5c7[_0x8cca('0x1f')]+_0x1be5c7[_0x8cca('0x21')];var _0x103d14;if(_0x4b2fef>=_0x1c8853){_0x4b2fef=_0x1c8853;_0x103d14=0xc8;}else{_0x103d14=0xce;}_0x1f7808['status'](_0x103d14);return _0x1f7808[_0x8cca('0x23')](_0x8cca('0x24'),_0x2d08ed+'-'+_0x4b2fef+'/'+_0x1c8853)[_0x8cca('0x1e')](_0x2a8802);}return null;};}function patchUpdates(_0x173abf){return function(_0x5494af){try{jsonpatch[_0x8cca('0x25')](_0x5494af,_0x173abf,!![]);}catch(_0x2e5900){return BPromise[_0x8cca('0x26')](_0x2e5900);}return _0x5494af[_0x8cca('0x27')]();};}function saveUpdates(_0x2c7825,_0x149583){return function(_0x180656){if(_0x180656){return _0x180656[_0x8cca('0x28')](_0x2c7825)[_0x8cca('0x29')](function(_0x59b1e0){return _0x59b1e0;});}return null;};}function removeEntity(_0x355027,_0x3a8190){return function(_0x54f71e){if(_0x54f71e){return _0x54f71e[_0x8cca('0x2a')]()[_0x8cca('0x29')](function(){var _0x5060eb=_0x54f71e[_0x8cca('0x2b')]({'plain':!![]});var _0x1cfd64=_0x8cca('0x2c');return db[_0x8cca('0x2d')][_0x8cca('0x2a')]({'where':{'type':_0x1cfd64,'resourceId':_0x5060eb['id']}})[_0x8cca('0x29')](function(){return _0x54f71e;});})[_0x8cca('0x29')](function(){_0x355027['status'](0xcc)[_0x8cca('0x2e')]();});}};}function handleEntityNotFound(_0x5e7668,_0xc9d931){return function(_0x4733cf){if(!_0x4733cf){_0x5e7668['sendStatus'](0x194);}return _0x4733cf;};}function handleError(_0x3a8156,_0x578967){_0x578967=_0x578967||0x1f4;return function(_0x5ebb0e){logger['error'](_0x5ebb0e['stack']);if(_0x5ebb0e[_0x8cca('0x2f')]){delete _0x5ebb0e['name'];}_0x3a8156['status'](_0x578967)[_0x8cca('0x30')](_0x5ebb0e);};}exports[_0x8cca('0x31')]=function(_0x5b2f5e,_0x39bea5){var _0x5b2ff9={},_0x5daaf5={},_0x2b8c75={'count':0x0,'rows':[]};var _0x39a56a=_[_0x8cca('0x32')](db['CmList'][_0x8cca('0x33')],function(_0x1e0ea9){return{'name':_0x1e0ea9['fieldName'],'type':_0x1e0ea9[_0x8cca('0x34')][_0x8cca('0x35')]};});_0x5daaf5[_0x8cca('0x36')]=_[_0x8cca('0x32')](_0x39a56a,_0x8cca('0x2f'));_0x5daaf5[_0x8cca('0x37')]=_[_0x8cca('0x38')](_0x5b2f5e[_0x8cca('0x37')]);_0x5daaf5['filters']=_[_0x8cca('0x39')](_0x5daaf5[_0x8cca('0x36')],_0x5daaf5['query']);_0x5b2ff9[_0x8cca('0x3a')]=_[_0x8cca('0x39')](_0x5daaf5[_0x8cca('0x36')],qs[_0x8cca('0x3b')](_0x5b2f5e[_0x8cca('0x37')][_0x8cca('0x3b')]));_0x5b2ff9[_0x8cca('0x3a')]=_0x5b2ff9[_0x8cca('0x3a')][_0x8cca('0x3c')]?_0x5b2ff9[_0x8cca('0x3a')]:_0x5daaf5[_0x8cca('0x36')];if(!_0x5b2f5e[_0x8cca('0x37')]['hasOwnProperty']('nolimit')){_0x5b2ff9[_0x8cca('0x21')]=qs['limit'](_0x5b2f5e[_0x8cca('0x37')][_0x8cca('0x21')]);_0x5b2ff9[_0x8cca('0x1f')]=qs[_0x8cca('0x1f')](_0x5b2f5e[_0x8cca('0x37')][_0x8cca('0x1f')]);}_0x5b2ff9[_0x8cca('0x3d')]=qs[_0x8cca('0x3e')](_0x5b2f5e['query'][_0x8cca('0x3e')]);_0x5b2ff9[_0x8cca('0x3f')]=qs['filters'](_[_0x8cca('0x40')](_0x5b2f5e[_0x8cca('0x37')],_0x5daaf5[_0x8cca('0x41')]),_0x39a56a);if(_0x5b2f5e[_0x8cca('0x37')][_0x8cca('0x42')]){_0x5b2ff9[_0x8cca('0x3f')]=_[_0x8cca('0x43')](_0x5b2ff9[_0x8cca('0x3f')],{'$or':_['map'](_0x39a56a,function(_0x133af4){if(_0x133af4[_0x8cca('0x34')]!=='VIRTUAL'){var _0x5b8bd9={};_0x5b8bd9[_0x133af4['name']]={'$like':'%'+_0x5b2f5e[_0x8cca('0x37')][_0x8cca('0x42')]+'%'};return _0x5b8bd9;}})});}_0x5b2ff9=_['merge']({},_0x5b2ff9,_0x5b2f5e[_0x8cca('0x44')]);var _0x400937={'where':_0x5b2ff9['where']};return db['CmList'][_0x8cca('0x22')](_0x400937)[_0x8cca('0x29')](function(_0x10de7d){_0x2b8c75[_0x8cca('0x22')]=_0x10de7d;if(_0x5b2f5e[_0x8cca('0x37')]['includeAll']){_0x5b2ff9[_0x8cca('0x45')]=[{'all':!![]}];}return db['CmList'][_0x8cca('0x46')](_0x5b2ff9);})[_0x8cca('0x29')](function(_0xa2a7e9){_0x2b8c75[_0x8cca('0x47')]=_0xa2a7e9;return _0x2b8c75;})[_0x8cca('0x29')](respondWithFilteredResult(_0x39bea5,_0x5b2ff9))[_0x8cca('0x48')](handleError(_0x39bea5,null));};exports[_0x8cca('0x49')]=function(_0x4d0b2a,_0x3bbd40){var _0x46238c={'raw':![],'where':{'id':_0x4d0b2a[_0x8cca('0x4a')]['id']}},_0x2f01ce={};_0x2f01ce[_0x8cca('0x36')]=_[_0x8cca('0x38')](db[_0x8cca('0x4b')][_0x8cca('0x33')]);_0x2f01ce[_0x8cca('0x37')]=_[_0x8cca('0x38')](_0x4d0b2a[_0x8cca('0x37')]);_0x2f01ce[_0x8cca('0x41')]=_[_0x8cca('0x39')](_0x2f01ce[_0x8cca('0x36')],_0x2f01ce[_0x8cca('0x37')]);_0x46238c[_0x8cca('0x3a')]=_[_0x8cca('0x39')](_0x2f01ce[_0x8cca('0x36')],qs[_0x8cca('0x3b')](_0x4d0b2a[_0x8cca('0x37')][_0x8cca('0x3b')]));_0x46238c[_0x8cca('0x3a')]=_0x46238c[_0x8cca('0x3a')][_0x8cca('0x3c')]?_0x46238c['attributes']:_0x2f01ce[_0x8cca('0x36')];if(_0x4d0b2a['query'][_0x8cca('0x4c')]){_0x46238c[_0x8cca('0x45')]=[{'all':!![]}];}_0x46238c=_['merge']({},_0x46238c,_0x4d0b2a[_0x8cca('0x44')]);return db[_0x8cca('0x4b')]['find'](_0x46238c)[_0x8cca('0x29')](handleEntityNotFound(_0x3bbd40,null))['then'](respondWithResult(_0x3bbd40,null))[_0x8cca('0x48')](handleError(_0x3bbd40,null));};exports['create']=function(_0x5b7f85,_0xee551b){return db[_0x8cca('0x4b')][_0x8cca('0x4d')](_0x5b7f85[_0x8cca('0x4e')],{})[_0x8cca('0x29')](function(_0x23935a){var _0x300323=_0x5b7f85[_0x8cca('0x4f')][_0x8cca('0x2b')]({'plain':!![]});if(!_0x300323)throw new Error(_0x8cca('0x50'));if(_0x300323[_0x8cca('0x51')]===_0x8cca('0x4f')){var _0x1380e4=_0x23935a['get']({'plain':!![]});var _0x38aa4e='Lists';return db[_0x8cca('0x52')][_0x8cca('0x53')]({'where':{'name':_0x38aa4e,'userProfileId':_0x300323[_0x8cca('0x54')]},'raw':!![]})[_0x8cca('0x29')](function(_0x220aea){if(_0x220aea&&_0x220aea[_0x8cca('0x55')]===0x0){return db['UserProfileResource'][_0x8cca('0x4d')]({'name':_0x1380e4[_0x8cca('0x2f')],'resourceId':_0x1380e4['id'],'type':_0x220aea[_0x8cca('0x2f')],'sectionId':_0x220aea['id']},{})[_0x8cca('0x29')](function(){return _0x23935a;});}else{return _0x23935a;}})['catch'](function(_0x11d894){logger[_0x8cca('0x56')](_0x8cca('0x57'),_0x11d894);throw _0x11d894;});}return _0x23935a;})[_0x8cca('0x29')](respondWithResult(_0xee551b,0xc9))[_0x8cca('0x48')](handleError(_0xee551b,null));};exports[_0x8cca('0x28')]=function(_0x320fcc,_0x29c489){if(_0x320fcc[_0x8cca('0x4e')]['id']){delete _0x320fcc[_0x8cca('0x4e')]['id'];}return db[_0x8cca('0x4b')][_0x8cca('0x53')]({'where':{'id':_0x320fcc[_0x8cca('0x4a')]['id']}})[_0x8cca('0x29')](handleEntityNotFound(_0x29c489,null))[_0x8cca('0x29')](saveUpdates(_0x320fcc['body'],null))[_0x8cca('0x29')](respondWithResult(_0x29c489,null))[_0x8cca('0x48')](handleError(_0x29c489,null));};exports[_0x8cca('0x2a')]=function(_0x338fc5,_0x57f175){return db[_0x8cca('0x4b')][_0x8cca('0x53')]({'where':{'id':_0x338fc5[_0x8cca('0x4a')]['id']}})['then'](handleEntityNotFound(_0x57f175,null))[_0x8cca('0x29')](removeEntity(_0x57f175,null))[_0x8cca('0x48')](handleError(_0x57f175,null));};exports[_0x8cca('0x58')]=function(_0x1c1662,_0x416a67){return db['CmList'][_0x8cca('0x58')]()[_0x8cca('0x29')](respondWithResult(_0x416a67,null))[_0x8cca('0x48')](handleError(_0x416a67,null));};exports[_0x8cca('0x59')]=function(_0x3a77ef,_0x4fb640,_0x34ee16){if(_0x3a77ef[_0x8cca('0x4e')]['id']){delete _0x3a77ef[_0x8cca('0x4e')]['id'];}return db[_0x8cca('0x4b')][_0x8cca('0x53')]({'where':{'id':_0x3a77ef['params']['id']}})[_0x8cca('0x29')](handleEntityNotFound(_0x4fb640,null))[_0x8cca('0x29')](function(_0x13d51c){if(_0x13d51c){_0x3a77ef['body']['ListId']=_0x13d51c['id'];return db['Disposition'][_0x8cca('0x4d')](_0x3a77ef['body']);}})[_0x8cca('0x29')](respondWithResult(_0x4fb640,null))[_0x8cca('0x48')](handleError(_0x4fb640,null));};exports[_0x8cca('0x5a')]=function(_0x32897f,_0x38e3e4,_0x25b5e1){var _0x2abd6b={'raw':![],'where':{}};var _0x3137d1={};var _0x342bec={'count':0x0,'rows':[]};return db['CmList'][_0x8cca('0x5b')]({'where':{'id':_0x32897f[_0x8cca('0x4a')]['id']}})[_0x8cca('0x29')](handleEntityNotFound(_0x38e3e4,null))[_0x8cca('0x29')](function(_0x7ecfd2){if(_0x7ecfd2){_0x3137d1[_0x8cca('0x36')]=_[_0x8cca('0x38')](db[_0x8cca('0x5c')][_0x8cca('0x33')]);_0x3137d1[_0x8cca('0x37')]=_['keys'](_0x32897f[_0x8cca('0x37')]);_0x3137d1[_0x8cca('0x41')]=_[_0x8cca('0x39')](_0x3137d1[_0x8cca('0x36')],_0x3137d1[_0x8cca('0x37')]);_0x2abd6b[_0x8cca('0x3a')]=_['intersection'](_0x3137d1['model'],qs[_0x8cca('0x3b')](_0x32897f[_0x8cca('0x37')][_0x8cca('0x3b')]));_0x2abd6b[_0x8cca('0x3a')]=_0x2abd6b[_0x8cca('0x3a')][_0x8cca('0x3c')]?_0x2abd6b[_0x8cca('0x3a')]:_0x3137d1[_0x8cca('0x36')];if(!_0x32897f[_0x8cca('0x37')][_0x8cca('0x5d')]('nolimit')){_0x2abd6b[_0x8cca('0x21')]=qs[_0x8cca('0x21')](_0x32897f[_0x8cca('0x37')][_0x8cca('0x21')]);_0x2abd6b[_0x8cca('0x1f')]=qs[_0x8cca('0x1f')](_0x32897f['query'][_0x8cca('0x1f')]);}_0x2abd6b[_0x8cca('0x3d')]=qs[_0x8cca('0x3e')](_0x32897f['query'][_0x8cca('0x3e')]);_0x2abd6b[_0x8cca('0x3f')]=qs[_0x8cca('0x41')](_[_0x8cca('0x40')](_0x32897f[_0x8cca('0x37')],_0x3137d1['filters']));_0x2abd6b['where']['ListId']=_0x7ecfd2['id'];if(_0x32897f[_0x8cca('0x37')][_0x8cca('0x42')]){_0x2abd6b['where']=_['merge'](_0x2abd6b['where'],{'$or':_[_0x8cca('0x32')](_0x2abd6b[_0x8cca('0x3a')],function(_0x29cb4c){var _0x5320e2={};_0x5320e2[_0x29cb4c]={'$like':'%'+_0x32897f['query'][_0x8cca('0x42')]+'%'};return _0x5320e2;})});}_0x2abd6b=_[_0x8cca('0x43')]({},_0x2abd6b,_0x32897f[_0x8cca('0x44')]);return db[_0x8cca('0x5c')][_0x8cca('0x22')]({'where':_0x2abd6b[_0x8cca('0x3f')]})[_0x8cca('0x29')](function(_0xe80791){_0x342bec[_0x8cca('0x22')]=_0xe80791;if(_0x32897f[_0x8cca('0x37')][_0x8cca('0x4c')]){_0x2abd6b[_0x8cca('0x45')]=[{'all':!![]}];}return db[_0x8cca('0x5c')][_0x8cca('0x46')](_0x2abd6b);})[_0x8cca('0x29')](function(_0x2cec4e){_0x342bec[_0x8cca('0x47')]=_0x2cec4e;return _0x342bec;});}})[_0x8cca('0x29')](respondWithFilteredResult(_0x38e3e4,_0x2abd6b))[_0x8cca('0x48')](handleError(_0x38e3e4,null));};exports[_0x8cca('0x5e')]=function(_0x20d203,_0x2ea38c,_0x6a58f){return db[_0x8cca('0x4b')][_0x8cca('0x53')]({'where':{'id':_0x20d203['params']['id']}})['then'](handleEntityNotFound(_0x2ea38c,null))[_0x8cca('0x29')](function(_0x1f99b1){if(_0x1f99b1){return _0x1f99b1[_0x8cca('0x5e')](_0x20d203[_0x8cca('0x37')][_0x8cca('0x5f')]);}})[_0x8cca('0x29')](respondWithStatusCode(_0x2ea38c,null))[_0x8cca('0x48')](handleError(_0x2ea38c,null));};exports[_0x8cca('0x60')]=function(_0xdbbe38,_0x329873,_0x1f7498){return db[_0x8cca('0x4b')][_0x8cca('0x53')]({'where':{'id':_0xdbbe38[_0x8cca('0x4a')]['id']}})['then'](handleEntityNotFound(_0x329873,null))[_0x8cca('0x29')](function(_0x5c4063){if(_0x5c4063){var _0x27f1f5=[];var _0x859eb8={'success':[],'errors':[]};return db['CmContact']['describe']()[_0x8cca('0x29')](function(_0x4e20f1){if(_0xdbbe38['body']['tags']&&_[_0x8cca('0x61')](_0xdbbe38[_0x8cca('0x4e')]['tags'])){if(_0xdbbe38['body'][_0x8cca('0x62')][_0x8cca('0x3c')]){_0xdbbe38[_0x8cca('0x4e')]['tags']=_0xdbbe38[_0x8cca('0x4e')][_0x8cca('0x62')]['join'](';')+';';}else{_0xdbbe38['body'][_0x8cca('0x62')]=null;}}else{_0xdbbe38[_0x8cca('0x4e')][_0x8cca('0x62')]=null;}if(_0xdbbe38[_0x8cca('0x4e')]&&_['isArray'](_0xdbbe38[_0x8cca('0x4e')])){for(var _0x18f450=0x0;_0x18f450<_0xdbbe38[_0x8cca('0x4e')][_0x8cca('0x3c')];_0x18f450+=0x1){_0xdbbe38[_0x8cca('0x4e')][_0x18f450][_0x8cca('0x63')]=_0xdbbe38[_0x8cca('0x4a')]['id'];_0x27f1f5[_0x8cca('0x64')](_0xdbbe38[_0x8cca('0x4e')][_0x18f450]);}return BPromise[_0x8cca('0x65')](_0x27f1f5,function(_0x20de49){return db[_0x8cca('0x66')]['create'](_[_0x8cca('0x67')](_0x20de49,[_0x8cca('0x5f'),'id'])||{},{'fields':_['keys'](_0x4e20f1),'raw':!![]})[_0x8cca('0x29')](function(_0x404c74){_0x859eb8['success'][_0x8cca('0x64')](_0x404c74[_0x8cca('0x68')]);})[_0x8cca('0x48')](function(_0xde10b3){_0x859eb8[_0x8cca('0x69')][_0x8cca('0x64')]({'data':_0x20de49,'error':_0xde10b3[_0x8cca('0x6a')]});});})[_0x8cca('0x29')](function(_0x195f34){return _0x859eb8;})['catch'](function(_0x259c8a){return _0x259c8a;});}else{_0x329873[_0x8cca('0x1d')](0x190)[_0x8cca('0x1e')]({'message':_0x8cca('0x6b')});}});}})[_0x8cca('0x29')](respondWithResult(_0x329873,null))['catch'](handleError(_0x329873,null));};exports[_0x8cca('0x6c')]=function(_0x2b0c9a,_0x569872,_0x53e94a){var _0x48d31e;return db['CmList'][_0x8cca('0x53')]({'where':{'id':_0x2b0c9a[_0x8cca('0x4a')]['id']},'include':[{'model':db[_0x8cca('0x6d')],'as':'CustomFields'}]})[_0x8cca('0x29')](handleEntityNotFound(_0x569872,null))[_0x8cca('0x29')](function(_0x267a2d){if(_0x267a2d){_0x48d31e=_0x267a2d;return db['CmContact'][_0x8cca('0x33')];}})['then'](function(_0x2a54d9){if(_0x2a54d9){var _0x5de0fc={};var _0x2b6889={};_0x2b6889[_0x8cca('0x36')]=_[_0x8cca('0x6e')](_['keys'](_0x2a54d9),_[_0x8cca('0x32')](_0x48d31e['CustomFields'],function(_0x5b4d86){return util['format']('cf_%d',_0x5b4d86['id']);}));_0x2b6889['query']=_['keys'](_0x2b0c9a['query']);_0x2b6889[_0x8cca('0x41')]=_[_0x8cca('0x39')](_0x2b6889[_0x8cca('0x36')],_0x2b6889[_0x8cca('0x37')]);_0x5de0fc[_0x8cca('0x3a')]=_[_0x8cca('0x39')](_0x2b6889['model'],qs['fields'](_0x2b0c9a[_0x8cca('0x37')]['fields']));_0x5de0fc[_0x8cca('0x3a')]=_0x5de0fc['attributes']['length']?_0x5de0fc[_0x8cca('0x3a')]:_0x2b6889[_0x8cca('0x36')];if(!_0x2b0c9a['query'][_0x8cca('0x5d')](_0x8cca('0x6f'))){_0x5de0fc['limit']=qs[_0x8cca('0x21')](_0x2b0c9a['query'][_0x8cca('0x21')]);_0x5de0fc[_0x8cca('0x1f')]=qs['offset'](_0x2b0c9a['query'][_0x8cca('0x1f')]);}_0x5de0fc[_0x8cca('0x3d')]=qs[_0x8cca('0x3e')](_0x2b0c9a[_0x8cca('0x37')][_0x8cca('0x3e')]);_0x5de0fc[_0x8cca('0x3f')]=qs[_0x8cca('0x41')](_[_0x8cca('0x40')](_0x2b0c9a[_0x8cca('0x37')],_0x2b6889['filters']));_0x5de0fc[_0x8cca('0x70')]=!![];if(_0x2b0c9a[_0x8cca('0x37')][_0x8cca('0x42')]){_0x5de0fc[_0x8cca('0x3f')]=_[_0x8cca('0x43')](_0x5de0fc['where'],{'$or':_[_0x8cca('0x32')](_0x5de0fc[_0x8cca('0x3a')],function(_0x10b1a4){var _0x593079={};_0x593079[_0x10b1a4]={'$like':'%'+_0x2b0c9a[_0x8cca('0x37')]['filter']+'%'};return _0x593079;})});}_0x5de0fc=_[_0x8cca('0x43')]({},_0x5de0fc,_0x2b0c9a[_0x8cca('0x44')]);return _0x48d31e[_0x8cca('0x6c')](_0x5de0fc);}})[_0x8cca('0x29')](respondWithResult(_0x569872,null))[_0x8cca('0x48')](handleError(_0x569872,null));};exports['getContactsCsv']=function(_0xe35bce,_0x1b97f9,_0x4f46fe){var _0x3c4092;return db[_0x8cca('0x4b')][_0x8cca('0x53')]({'where':{'id':_0xe35bce[_0x8cca('0x4a')]['id']},'include':[{'model':db[_0x8cca('0x6d')],'as':_0x8cca('0x71')}]})[_0x8cca('0x29')](handleEntityNotFound(_0x1b97f9,null))[_0x8cca('0x29')](function(_0x2b5774){if(_0x2b5774){_0x3c4092=_0x2b5774;return db[_0x8cca('0x66')]['rawAttributes'];}})['then'](function(_0x4e9051){if(_0x4e9051){var _0xa609f9={};var _0x58866b={};_0x58866b[_0x8cca('0x36')]=_[_0x8cca('0x6e')](_[_0x8cca('0x38')](_0x4e9051),_[_0x8cca('0x32')](_0x3c4092[_0x8cca('0x71')],function(_0x145c10){return util[_0x8cca('0x72')](_0x8cca('0x73'),_0x145c10['id']);}));_0x58866b[_0x8cca('0x37')]=_[_0x8cca('0x38')](_0xe35bce[_0x8cca('0x37')]);_0x58866b[_0x8cca('0x41')]=_[_0x8cca('0x39')](_0x58866b[_0x8cca('0x36')],_0x58866b[_0x8cca('0x37')]);_0xa609f9[_0x8cca('0x3a')]=_[_0x8cca('0x39')](_0x58866b[_0x8cca('0x36')],qs['fields'](_0xe35bce[_0x8cca('0x37')][_0x8cca('0x3b')]));_0xa609f9['attributes']=_0xa609f9[_0x8cca('0x3a')][_0x8cca('0x3c')]?_0xa609f9[_0x8cca('0x3a')]:_0x58866b['model'];if(!_0xe35bce[_0x8cca('0x37')][_0x8cca('0x5d')](_0x8cca('0x6f'))){_0xa609f9[_0x8cca('0x21')]=qs[_0x8cca('0x21')](_0xe35bce[_0x8cca('0x37')][_0x8cca('0x21')]);_0xa609f9[_0x8cca('0x1f')]=qs[_0x8cca('0x1f')](_0xe35bce['query'][_0x8cca('0x1f')]);}_0xa609f9[_0x8cca('0x3d')]=qs['sort'](_0xe35bce[_0x8cca('0x37')][_0x8cca('0x3e')]);_0xa609f9[_0x8cca('0x3f')]=qs[_0x8cca('0x41')](_['pick'](_0xe35bce[_0x8cca('0x37')],_0x58866b[_0x8cca('0x41')]));_0xa609f9[_0x8cca('0x70')]=!![];if(_0xe35bce[_0x8cca('0x37')]['filter']){_0xa609f9[_0x8cca('0x3f')]=_[_0x8cca('0x43')](_0xa609f9[_0x8cca('0x3f')],{'$or':_['map'](_0xa609f9['attributes'],function(_0x113b38){var _0x51567e={};_0x51567e[_0x113b38]={'$like':'%'+_0xe35bce[_0x8cca('0x37')]['filter']+'%'};return _0x51567e;})});}_0xa609f9=_[_0x8cca('0x43')]({},_0xa609f9,_0xe35bce[_0x8cca('0x44')]);return _0x3c4092[_0x8cca('0x6c')](_0xa609f9);}})[_0x8cca('0x29')](function(_0x24b90b){if(!_['isEmpty'](_0x24b90b)){var _0x4cedcb=toCsv(_0x24b90b);var _0x342278=Date[_0x8cca('0x74')]();fs[_0x8cca('0x75')](util[_0x8cca('0x72')](_0x8cca('0x76'),_0x3c4092['id'],_0x342278),_0x4cedcb);_0x1b97f9[_0x8cca('0x77')](_0x8cca('0x78'),_0x8cca('0x79')+util[_0x8cca('0x72')]('list_%d_%s.csv',_0x3c4092['id'],_0x342278));_0x1b97f9[_0x8cca('0x77')](_0x8cca('0x7a'),'text/csv');return _0x1b97f9[_0x8cca('0x7b')](util[_0x8cca('0x72')](_0x8cca('0x76'),_0x3c4092['id'],_0x342278));}else{return _0x1b97f9[_0x8cca('0x7c')](0xcc);}})['catch'](handleError(_0x1b97f9,null));};exports[_0x8cca('0x7d')]=function(_0x1fd8d8,_0x3a64e0,_0xee2332){var _0x432453;delete _0x1fd8d8[_0x8cca('0x4e')]['id'];return db[_0x8cca('0x4b')][_0x8cca('0x5b')]({'where':{'id':_0x1fd8d8['params']['id']}})[_0x8cca('0x29')](handleEntityNotFound(_0x3a64e0,null))[_0x8cca('0x29')](function(_0x1cca16){if(_0x1cca16){return db['sequelize'][_0x8cca('0x7e')](function(_0x5874fb){return db[_0x8cca('0x6d')][_0x8cca('0x4d')](_0x1fd8d8[_0x8cca('0x4e')],{'transaction':_0x5874fb})['then'](function(_0x1a0f80){_0x432453=_0x1a0f80;return _0x1cca16[_0x8cca('0x7f')](_0x1a0f80,{'transaction':_0x5874fb});})['then'](function(){var _0x25f787={'type':db[_0x8cca('0x80')][_0x8cca('0x81')],'transaction':_0x5874fb};switch(_0x1fd8d8[_0x8cca('0x4e')][_0x8cca('0x34')]){case'text':_0x25f787[_0x8cca('0x34')]=db[_0x8cca('0x80')][_0x8cca('0x81')];break;case _0x8cca('0x82'):_0x25f787[_0x8cca('0x34')]=db['Sequelize'][_0x8cca('0x83')];break;case _0x8cca('0x84'):_0x25f787[_0x8cca('0x34')]=db[_0x8cca('0x80')][_0x8cca('0x85')];_0x25f787[_0x8cca('0x86')]=![];break;default:}return db['sequelize'][_0x8cca('0x87')][_0x8cca('0x88')](_0x8cca('0x89'),util[_0x8cca('0x72')](_0x8cca('0x8a'),_0x432453['id']),_0x25f787);})[_0x8cca('0x29')](function(){return _0x432453;});});}})[_0x8cca('0x29')](respondWithResult(_0x3a64e0,null))[_0x8cca('0x48')](handleError(_0x3a64e0,null));};exports[_0x8cca('0x8b')]=function(_0x5cabad,_0x3a7085,_0x46a319){var _0x299559={};var _0x507f45={};var _0x15fe4f;var _0x1239c9;return db[_0x8cca('0x4b')][_0x8cca('0x5b')]({'where':{'id':_0x5cabad[_0x8cca('0x4a')]['id']}})[_0x8cca('0x29')](handleEntityNotFound(_0x3a7085,null))[_0x8cca('0x29')](function(_0x5985ec){if(_0x5985ec){_0x15fe4f=_0x5985ec;_0x507f45['model']=_['keys'](db['CmCustomField'][_0x8cca('0x33')]);_0x507f45[_0x8cca('0x37')]=_[_0x8cca('0x38')](_0x5cabad[_0x8cca('0x37')]);_0x507f45[_0x8cca('0x41')]=_[_0x8cca('0x39')](_0x507f45[_0x8cca('0x36')],_0x507f45['query']);_0x299559[_0x8cca('0x3a')]=_['intersection'](_0x507f45[_0x8cca('0x36')],qs[_0x8cca('0x3b')](_0x5cabad[_0x8cca('0x37')][_0x8cca('0x3b')]));_0x299559[_0x8cca('0x3a')]=_0x299559['attributes'][_0x8cca('0x3c')]?_0x299559[_0x8cca('0x3a')]:_0x507f45[_0x8cca('0x36')];_0x299559[_0x8cca('0x3d')]=qs[_0x8cca('0x3e')](_0x5cabad[_0x8cca('0x37')][_0x8cca('0x3e')]);_0x299559[_0x8cca('0x3f')]=qs[_0x8cca('0x41')](_['pick'](_0x5cabad['query'],_0x507f45[_0x8cca('0x41')]));_0x299559['where']=_[_0x8cca('0x43')](_0x299559[_0x8cca('0x3f')],{'$or':[{'ListId':_0x5985ec['id']},{'ListId':null}]});if(_0x5cabad[_0x8cca('0x37')][_0x8cca('0x42')]){_0x299559[_0x8cca('0x3f')]=_['merge'](_0x299559[_0x8cca('0x3f')],{'$or':_[_0x8cca('0x32')](_0x299559['attributes'],function(_0x16f841){var _0x307b58={};_0x307b58[_0x16f841]={'$like':'%'+_0x5cabad[_0x8cca('0x37')]['filter']+'%'};return _0x307b58;})});}_0x299559=_[_0x8cca('0x43')]({},_0x299559,_0x5cabad['options']);return db[_0x8cca('0x6d')]['findAndCountAll'](_0x299559);}})[_0x8cca('0x29')](respondWithResult(_0x3a7085,null))['catch'](handleError(_0x3a7085,null));};exports[_0x8cca('0x8c')]=function(_0x38fd60,_0x132a19,_0x144716){return db[_0x8cca('0x4b')]['find']({'where':{'id':_0x38fd60[_0x8cca('0x4a')]['id']}})[_0x8cca('0x29')](handleEntityNotFound(_0x132a19,null))[_0x8cca('0x29')](function(_0x327e12){if(_0x327e12){return _0x327e12[_0x8cca('0x8c')](_0x38fd60[_0x8cca('0x4e')]['ids'],_[_0x8cca('0x67')](_0x38fd60['body'],[_0x8cca('0x5f'),'id'])||{})[_0x8cca('0x8d')](function(_0x1c4f28){for(var _0x5b46d2=0x0;_0x5b46d2<_0x38fd60[_0x8cca('0x4e')][_0x8cca('0x5f')]['length'];_0x5b46d2+=0x1){socket[_0x8cca('0x8e')](_0x8cca('0x8f'),{'UserId':Number(_0x38fd60[_0x8cca('0x4e')][_0x8cca('0x5f')][_0x5b46d2]),'CmListId':Number(_0x38fd60['params']['id'])});}return _0x1c4f28;});}})['then'](respondWithResult(_0x132a19,null))['catch'](handleError(_0x132a19,null));};exports[_0x8cca('0x90')]=function(_0x14e5a0,_0x386e41,_0x7c69ae){return db[_0x8cca('0x4b')][_0x8cca('0x53')]({'where':{'id':_0x14e5a0[_0x8cca('0x4a')]['id']}})[_0x8cca('0x29')](handleEntityNotFound(_0x386e41,null))[_0x8cca('0x29')](function(_0xd3b516){if(_0xd3b516){return _0xd3b516['removeAgents'](_0x14e5a0[_0x8cca('0x37')]['ids'])[_0x8cca('0x29')](function(){if(_[_0x8cca('0x61')](_0x14e5a0['query'][_0x8cca('0x5f')])){for(var _0x5161f1=0x0;_0x5161f1<_0x14e5a0[_0x8cca('0x37')]['ids'][_0x8cca('0x3c')];_0x5161f1+=0x1){socket[_0x8cca('0x8e')]('userCmList:remove',{'UserId':Number(_0x14e5a0[_0x8cca('0x37')][_0x8cca('0x5f')][_0x5161f1]),'CmListId':Number(_0x14e5a0['params']['id'])});}}else{socket[_0x8cca('0x8e')](_0x8cca('0x91'),{'UserId':Number(_0x14e5a0[_0x8cca('0x37')]['ids']),'CmListId':Number(_0x14e5a0[_0x8cca('0x4a')]['id'])});}});}})['then'](respondWithStatusCode(_0x386e41,null))[_0x8cca('0x48')](handleError(_0x386e41,null));};exports[_0x8cca('0x92')]=function(_0x3db965,_0x219eb0,_0x5d00ea){var _0x1e0d65={};var _0x41d5e8={};var _0x3647d9;var _0x240ca2;return db[_0x8cca('0x4b')][_0x8cca('0x5b')]({'where':{'id':_0x3db965[_0x8cca('0x4a')]['id']}})[_0x8cca('0x29')](handleEntityNotFound(_0x219eb0,null))[_0x8cca('0x29')](function(_0x3c880f){if(_0x3c880f){_0x3647d9=_0x3c880f;_0x41d5e8[_0x8cca('0x36')]=_['keys'](db[_0x8cca('0x93')][_0x8cca('0x33')]);_0x41d5e8[_0x8cca('0x37')]=_['keys'](_0x3db965[_0x8cca('0x37')]);_0x41d5e8['filters']=_[_0x8cca('0x39')](_0x41d5e8[_0x8cca('0x36')],_0x41d5e8[_0x8cca('0x37')]);_0x1e0d65[_0x8cca('0x3a')]=_[_0x8cca('0x39')](_0x41d5e8[_0x8cca('0x36')],qs[_0x8cca('0x3b')](_0x3db965[_0x8cca('0x37')]['fields']));_0x1e0d65[_0x8cca('0x3a')]=_0x1e0d65[_0x8cca('0x3a')][_0x8cca('0x3c')]?_0x1e0d65[_0x8cca('0x3a')]:_0x41d5e8[_0x8cca('0x36')];_0x1e0d65[_0x8cca('0x3d')]=qs[_0x8cca('0x3e')](_0x3db965[_0x8cca('0x37')][_0x8cca('0x3e')]);_0x1e0d65[_0x8cca('0x3f')]=qs[_0x8cca('0x41')](_[_0x8cca('0x40')](_0x3db965['query'],_0x41d5e8['filters']));if(_0x3db965['query'][_0x8cca('0x42')]){_0x1e0d65[_0x8cca('0x3f')]=_[_0x8cca('0x43')](_0x1e0d65[_0x8cca('0x3f')],{'$or':_['map'](_0x1e0d65['attributes'],function(_0x30fdbe){var _0x43c974={};_0x43c974[_0x30fdbe]={'$like':'%'+_0x3db965[_0x8cca('0x37')]['filter']+'%'};return _0x43c974;})});}_0x1e0d65=_[_0x8cca('0x43')]({},_0x1e0d65,_0x3db965[_0x8cca('0x44')]);return _0x3647d9[_0x8cca('0x92')](_0x1e0d65);}})[_0x8cca('0x29')](function(_0x1c1500){if(_0x1c1500){_0x240ca2=_0x1c1500[_0x8cca('0x3c')];if(!_0x3db965[_0x8cca('0x37')][_0x8cca('0x5d')](_0x8cca('0x6f'))){_0x1e0d65[_0x8cca('0x21')]=qs[_0x8cca('0x21')](_0x3db965[_0x8cca('0x37')][_0x8cca('0x21')]);_0x1e0d65[_0x8cca('0x1f')]=qs[_0x8cca('0x1f')](_0x3db965[_0x8cca('0x37')][_0x8cca('0x1f')]);}return _0x3647d9[_0x8cca('0x92')](_0x1e0d65);}})[_0x8cca('0x29')](function(_0xb639b3){if(_0xb639b3){return _0xb639b3?{'count':_0x240ca2,'rows':_0xb639b3}:null;}})[_0x8cca('0x29')](respondWithResult(_0x219eb0,null))[_0x8cca('0x48')](handleError(_0x219eb0,null));};
\ No newline at end of file
+var _0x97f3=['../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','register','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','get','UserProfileResource','then','error','stack','send','index','map','CmList','rawAttributes','fieldName','type','key','model','name','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','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','describe','addDisposition','ListId','Disposition','getDispositions','findOne','removeDispositions','ids','addContacts','CmContact','isArray','tags','join','push','each','omit','success','dataValues','errors','getContacts','CmCustomField','CustomFields','format','raw','concat','cf_%d','isEmpty','now','writeFileSync','/tmp/list_%d_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','list_%d_%s.csv','download','sequelize','transaction','addCustomFields','Sequelize','TEXT','text','INTEGER','BOOLEAN','queryInterface','addColumn','cm_contacts','getCustomFields','addAgents','userCmList:save','removeAgents','emit','userCmList:remove','getAgents','User','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','ioredis'];(function(_0x27be61,_0x5331d9){var _0x10d04c=function(_0x38dc44){while(--_0x38dc44){_0x27be61['push'](_0x27be61['shift']());}};_0x10d04c(++_0x5331d9);}(_0x97f3,0x1ad));var _0x397f=function(_0x15b89c,_0x346d3e){_0x15b89c=_0x15b89c-0x0;var _0x425a35=_0x97f3[_0x15b89c];return _0x425a35;};'use strict';var emlformat=require(_0x397f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x397f('0x1'));var jsonpatch=require(_0x397f('0x2'));var rp=require(_0x397f('0x3'));var moment=require(_0x397f('0x4'));var BPromise=require(_0x397f('0x5'));var Mustache=require(_0x397f('0x6'));var util=require(_0x397f('0x7'));var path=require(_0x397f('0x8'));var sox=require(_0x397f('0x9'));var csv=require(_0x397f('0xa'));var ejs=require(_0x397f('0xb'));var fs=require('fs');var fs_extra=require(_0x397f('0xc'));var _=require(_0x397f('0xd'));var squel=require(_0x397f('0xe'));var crypto=require('crypto');var jsforce=require(_0x397f('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x397f('0x10'));var Papa=require('papaparse');var Redis=require(_0x397f('0x11'));var authService=require(_0x397f('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x397f('0x13'));var hardwareService=require(_0x397f('0x14'));var logger=require(_0x397f('0x15'))(_0x397f('0x16'));var utils=require(_0x397f('0x17'));var config=require(_0x397f('0x18'));var licenseUtil=require(_0x397f('0x19'));var db=require(_0x397f('0x1a'))['db'];config[_0x397f('0x1b')]=_[_0x397f('0x1c')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x397f('0x1d'))(new Redis(config[_0x397f('0x1b')]));require('./cmList.socket')[_0x397f('0x1e')](socket);function respondWithStatusCode(_0x3d795c,_0x5b1e48){_0x5b1e48=_0x5b1e48||0xcc;return function(_0x45a285){if(_0x45a285){return _0x3d795c[_0x397f('0x1f')](_0x5b1e48);}return _0x3d795c['status'](_0x5b1e48)[_0x397f('0x20')]();};}function respondWithResult(_0x24b8e1,_0x59079e){_0x59079e=_0x59079e||0xc8;return function(_0x9deb9e){if(_0x9deb9e){return _0x24b8e1[_0x397f('0x21')](_0x59079e)[_0x397f('0x22')](_0x9deb9e);}};}function respondWithFilteredResult(_0x33af47,_0x49e591){return function(_0x20cc3e){if(_0x20cc3e){var _0x270106=typeof _0x49e591[_0x397f('0x23')]===_0x397f('0x24')&&typeof _0x49e591[_0x397f('0x25')]==='undefined';var _0x4eb277=_0x20cc3e[_0x397f('0x26')];var _0x1680d4=_0x270106?0x0:_0x49e591['offset'];var _0x7bd61=_0x270106?_0x20cc3e[_0x397f('0x26')]:_0x49e591[_0x397f('0x23')]+_0x49e591['limit'];var _0x1e7714;if(_0x7bd61>=_0x4eb277){_0x7bd61=_0x4eb277;_0x1e7714=0xc8;}else{_0x1e7714=0xce;}_0x33af47[_0x397f('0x21')](_0x1e7714);return _0x33af47[_0x397f('0x27')](_0x397f('0x28'),_0x1680d4+'-'+_0x7bd61+'/'+_0x4eb277)['json'](_0x20cc3e);}return null;};}function patchUpdates(_0xb06fd){return function(_0x415845){try{jsonpatch[_0x397f('0x29')](_0x415845,_0xb06fd,!![]);}catch(_0x4a5fe4){return BPromise[_0x397f('0x2a')](_0x4a5fe4);}return _0x415845[_0x397f('0x2b')]();};}function saveUpdates(_0x2ea3b8,_0x26b9ed){return function(_0x2eec26){if(_0x2eec26){return _0x2eec26[_0x397f('0x2c')](_0x2ea3b8)['then'](function(_0x30f96c){return _0x30f96c;});}return null;};}function removeEntity(_0x37888b,_0x251bcc){return function(_0x9b9934){if(_0x9b9934){return _0x9b9934[_0x397f('0x2d')]()['then'](function(){var _0x21482e=_0x9b9934[_0x397f('0x2e')]({'plain':!![]});var _0x351a04='Lists';return db[_0x397f('0x2f')][_0x397f('0x2d')]({'where':{'type':_0x351a04,'resourceId':_0x21482e['id']}})['then'](function(){return _0x9b9934;});})[_0x397f('0x30')](function(){_0x37888b['status'](0xcc)[_0x397f('0x20')]();});}};}function handleEntityNotFound(_0x404c6d,_0x5d6e75){return function(_0xd5a7c3){if(!_0xd5a7c3){_0x404c6d[_0x397f('0x1f')](0x194);}return _0xd5a7c3;};}function handleError(_0x485a43,_0x1772a6){_0x1772a6=_0x1772a6||0x1f4;return function(_0x28dd4d){logger[_0x397f('0x31')](_0x28dd4d[_0x397f('0x32')]);if(_0x28dd4d['name']){delete _0x28dd4d['name'];}_0x485a43[_0x397f('0x21')](_0x1772a6)[_0x397f('0x33')](_0x28dd4d);};}exports[_0x397f('0x34')]=function(_0x4518bd,_0x266cf2){var _0x24d479={},_0x275789={},_0x31caa1={'count':0x0,'rows':[]};var _0x46e48b=_[_0x397f('0x35')](db[_0x397f('0x36')][_0x397f('0x37')],function(_0x321e3f){return{'name':_0x321e3f[_0x397f('0x38')],'type':_0x321e3f[_0x397f('0x39')][_0x397f('0x3a')]};});_0x275789[_0x397f('0x3b')]=_['map'](_0x46e48b,_0x397f('0x3c'));_0x275789[_0x397f('0x3d')]=_[_0x397f('0x3e')](_0x4518bd[_0x397f('0x3d')]);_0x275789[_0x397f('0x3f')]=_[_0x397f('0x40')](_0x275789[_0x397f('0x3b')],_0x275789[_0x397f('0x3d')]);_0x24d479['attributes']=_[_0x397f('0x40')](_0x275789['model'],qs[_0x397f('0x41')](_0x4518bd[_0x397f('0x3d')][_0x397f('0x41')]));_0x24d479[_0x397f('0x42')]=_0x24d479['attributes'][_0x397f('0x43')]?_0x24d479[_0x397f('0x42')]:_0x275789['model'];if(!_0x4518bd['query'][_0x397f('0x44')](_0x397f('0x45'))){_0x24d479[_0x397f('0x25')]=qs[_0x397f('0x25')](_0x4518bd[_0x397f('0x3d')][_0x397f('0x25')]);_0x24d479[_0x397f('0x23')]=qs[_0x397f('0x23')](_0x4518bd[_0x397f('0x3d')][_0x397f('0x23')]);}_0x24d479[_0x397f('0x46')]=qs[_0x397f('0x47')](_0x4518bd[_0x397f('0x3d')][_0x397f('0x47')]);_0x24d479['where']=qs[_0x397f('0x3f')](_[_0x397f('0x48')](_0x4518bd['query'],_0x275789[_0x397f('0x3f')]),_0x46e48b);if(_0x4518bd[_0x397f('0x3d')][_0x397f('0x49')]){_0x24d479[_0x397f('0x4a')]=_[_0x397f('0x4b')](_0x24d479['where'],{'$or':_[_0x397f('0x35')](_0x46e48b,function(_0x4ad06a){if(_0x4ad06a['type']!==_0x397f('0x4c')){var _0x2bad61={};_0x2bad61[_0x4ad06a[_0x397f('0x3c')]]={'$like':'%'+_0x4518bd['query'][_0x397f('0x49')]+'%'};return _0x2bad61;}})});}_0x24d479=_[_0x397f('0x4b')]({},_0x24d479,_0x4518bd[_0x397f('0x4d')]);var _0x14c036={'where':_0x24d479[_0x397f('0x4a')]};return db['CmList'][_0x397f('0x26')](_0x14c036)['then'](function(_0x1f6b2d){_0x31caa1[_0x397f('0x26')]=_0x1f6b2d;if(_0x4518bd[_0x397f('0x3d')][_0x397f('0x4e')]){_0x24d479[_0x397f('0x4f')]=[{'all':!![]}];}return db[_0x397f('0x36')][_0x397f('0x50')](_0x24d479);})[_0x397f('0x30')](function(_0x494321){_0x31caa1[_0x397f('0x51')]=_0x494321;return _0x31caa1;})[_0x397f('0x30')](respondWithFilteredResult(_0x266cf2,_0x24d479))[_0x397f('0x52')](handleError(_0x266cf2,null));};exports[_0x397f('0x53')]=function(_0x286214,_0x12134b){var _0x2bca10={'raw':![],'where':{'id':_0x286214[_0x397f('0x54')]['id']}},_0x1c8b99={};_0x1c8b99['model']=_[_0x397f('0x3e')](db[_0x397f('0x36')][_0x397f('0x37')]);_0x1c8b99[_0x397f('0x3d')]=_[_0x397f('0x3e')](_0x286214['query']);_0x1c8b99['filters']=_[_0x397f('0x40')](_0x1c8b99[_0x397f('0x3b')],_0x1c8b99['query']);_0x2bca10[_0x397f('0x42')]=_[_0x397f('0x40')](_0x1c8b99[_0x397f('0x3b')],qs[_0x397f('0x41')](_0x286214[_0x397f('0x3d')][_0x397f('0x41')]));_0x2bca10['attributes']=_0x2bca10[_0x397f('0x42')][_0x397f('0x43')]?_0x2bca10[_0x397f('0x42')]:_0x1c8b99[_0x397f('0x3b')];if(_0x286214[_0x397f('0x3d')][_0x397f('0x4e')]){_0x2bca10[_0x397f('0x4f')]=[{'all':!![]}];}_0x2bca10=_[_0x397f('0x4b')]({},_0x2bca10,_0x286214['options']);return db[_0x397f('0x36')][_0x397f('0x55')](_0x2bca10)[_0x397f('0x30')](handleEntityNotFound(_0x12134b,null))[_0x397f('0x30')](respondWithResult(_0x12134b,null))[_0x397f('0x52')](handleError(_0x12134b,null));};exports['create']=function(_0x834a01,_0x447ab1){return db[_0x397f('0x36')][_0x397f('0x56')](_0x834a01['body'],{})[_0x397f('0x30')](function(_0x46d676){var _0x2f04f5=_0x834a01[_0x397f('0x57')]['get']({'plain':!![]});if(!_0x2f04f5)throw new Error(_0x397f('0x58'));if(_0x2f04f5[_0x397f('0x59')]==='user'){var _0x4639be=_0x46d676[_0x397f('0x2e')]({'plain':!![]});var _0x5d6d87='Lists';return db[_0x397f('0x5a')]['find']({'where':{'name':_0x5d6d87,'userProfileId':_0x2f04f5[_0x397f('0x5b')]},'raw':!![]})[_0x397f('0x30')](function(_0x12d200){if(_0x12d200&&_0x12d200[_0x397f('0x5c')]===0x0){return db[_0x397f('0x2f')][_0x397f('0x56')]({'name':_0x4639be['name'],'resourceId':_0x4639be['id'],'type':_0x12d200[_0x397f('0x3c')],'sectionId':_0x12d200['id']},{})[_0x397f('0x30')](function(){return _0x46d676;});}else{return _0x46d676;}})[_0x397f('0x52')](function(_0x206089){logger[_0x397f('0x31')](_0x397f('0x5d'),_0x206089);throw _0x206089;});}return _0x46d676;})[_0x397f('0x30')](respondWithResult(_0x447ab1,0xc9))[_0x397f('0x52')](handleError(_0x447ab1,null));};exports['update']=function(_0x13be4b,_0xb223e9){if(_0x13be4b[_0x397f('0x5e')]['id']){delete _0x13be4b['body']['id'];}return db['CmList'][_0x397f('0x55')]({'where':{'id':_0x13be4b['params']['id']}})[_0x397f('0x30')](handleEntityNotFound(_0xb223e9,null))[_0x397f('0x30')](saveUpdates(_0x13be4b[_0x397f('0x5e')],null))[_0x397f('0x30')](respondWithResult(_0xb223e9,null))[_0x397f('0x52')](handleError(_0xb223e9,null));};exports[_0x397f('0x2d')]=function(_0x33b30a,_0x45fd2f){return db['CmList'][_0x397f('0x55')]({'where':{'id':_0x33b30a['params']['id']}})[_0x397f('0x30')](handleEntityNotFound(_0x45fd2f,null))[_0x397f('0x30')](removeEntity(_0x45fd2f,null))[_0x397f('0x52')](handleError(_0x45fd2f,null));};exports[_0x397f('0x5f')]=function(_0x32d5b9,_0x1a7f90){return db[_0x397f('0x36')]['describe']()[_0x397f('0x30')](respondWithResult(_0x1a7f90,null))[_0x397f('0x52')](handleError(_0x1a7f90,null));};exports[_0x397f('0x60')]=function(_0x4eaa63,_0x1ac5f8,_0x40f72e){if(_0x4eaa63[_0x397f('0x5e')]['id']){delete _0x4eaa63[_0x397f('0x5e')]['id'];}return db[_0x397f('0x36')]['find']({'where':{'id':_0x4eaa63[_0x397f('0x54')]['id']}})[_0x397f('0x30')](handleEntityNotFound(_0x1ac5f8,null))[_0x397f('0x30')](function(_0x5af963){if(_0x5af963){_0x4eaa63[_0x397f('0x5e')][_0x397f('0x61')]=_0x5af963['id'];return db[_0x397f('0x62')][_0x397f('0x56')](_0x4eaa63[_0x397f('0x5e')]);}})[_0x397f('0x30')](respondWithResult(_0x1ac5f8,null))[_0x397f('0x52')](handleError(_0x1ac5f8,null));};exports[_0x397f('0x63')]=function(_0x5a2403,_0x34db50,_0x43b1d8){var _0x406129={'raw':![],'where':{}};var _0x24b17c={};var _0x298e69={'count':0x0,'rows':[]};return db[_0x397f('0x36')][_0x397f('0x64')]({'where':{'id':_0x5a2403[_0x397f('0x54')]['id']}})[_0x397f('0x30')](handleEntityNotFound(_0x34db50,null))[_0x397f('0x30')](function(_0x22e394){if(_0x22e394){_0x24b17c[_0x397f('0x3b')]=_[_0x397f('0x3e')](db['Disposition'][_0x397f('0x37')]);_0x24b17c['query']=_[_0x397f('0x3e')](_0x5a2403[_0x397f('0x3d')]);_0x24b17c[_0x397f('0x3f')]=_[_0x397f('0x40')](_0x24b17c[_0x397f('0x3b')],_0x24b17c[_0x397f('0x3d')]);_0x406129[_0x397f('0x42')]=_[_0x397f('0x40')](_0x24b17c[_0x397f('0x3b')],qs['fields'](_0x5a2403[_0x397f('0x3d')][_0x397f('0x41')]));_0x406129[_0x397f('0x42')]=_0x406129[_0x397f('0x42')][_0x397f('0x43')]?_0x406129[_0x397f('0x42')]:_0x24b17c['model'];if(!_0x5a2403[_0x397f('0x3d')][_0x397f('0x44')](_0x397f('0x45'))){_0x406129[_0x397f('0x25')]=qs['limit'](_0x5a2403['query']['limit']);_0x406129['offset']=qs[_0x397f('0x23')](_0x5a2403['query'][_0x397f('0x23')]);}_0x406129[_0x397f('0x46')]=qs[_0x397f('0x47')](_0x5a2403['query'][_0x397f('0x47')]);_0x406129[_0x397f('0x4a')]=qs['filters'](_[_0x397f('0x48')](_0x5a2403[_0x397f('0x3d')],_0x24b17c['filters']));_0x406129[_0x397f('0x4a')][_0x397f('0x61')]=_0x22e394['id'];if(_0x5a2403[_0x397f('0x3d')][_0x397f('0x49')]){_0x406129[_0x397f('0x4a')]=_[_0x397f('0x4b')](_0x406129['where'],{'$or':_['map'](_0x406129[_0x397f('0x42')],function(_0x4ed46a){var _0x2810e8={};_0x2810e8[_0x4ed46a]={'$like':'%'+_0x5a2403[_0x397f('0x3d')]['filter']+'%'};return _0x2810e8;})});}_0x406129=_['merge']({},_0x406129,_0x5a2403[_0x397f('0x4d')]);return db[_0x397f('0x62')][_0x397f('0x26')]({'where':_0x406129[_0x397f('0x4a')]})[_0x397f('0x30')](function(_0x38bba0){_0x298e69[_0x397f('0x26')]=_0x38bba0;if(_0x5a2403[_0x397f('0x3d')][_0x397f('0x4e')]){_0x406129[_0x397f('0x4f')]=[{'all':!![]}];}return db[_0x397f('0x62')][_0x397f('0x50')](_0x406129);})[_0x397f('0x30')](function(_0x5011f2){_0x298e69['rows']=_0x5011f2;return _0x298e69;});}})[_0x397f('0x30')](respondWithFilteredResult(_0x34db50,_0x406129))[_0x397f('0x52')](handleError(_0x34db50,null));};exports[_0x397f('0x65')]=function(_0x899144,_0x3b6cbe,_0x558ba3){return db[_0x397f('0x36')]['find']({'where':{'id':_0x899144[_0x397f('0x54')]['id']}})[_0x397f('0x30')](handleEntityNotFound(_0x3b6cbe,null))[_0x397f('0x30')](function(_0x52be61){if(_0x52be61){return _0x52be61['removeDispositions'](_0x899144[_0x397f('0x3d')][_0x397f('0x66')]);}})['then'](respondWithStatusCode(_0x3b6cbe,null))['catch'](handleError(_0x3b6cbe,null));};exports[_0x397f('0x67')]=function(_0x2f42ff,_0x4f35d1,_0x569de0){return db['CmList'][_0x397f('0x55')]({'where':{'id':_0x2f42ff['params']['id']}})['then'](handleEntityNotFound(_0x4f35d1,null))[_0x397f('0x30')](function(_0x4a6c82){if(_0x4a6c82){var _0x208682=[];var _0x122308={'success':[],'errors':[]};return db[_0x397f('0x68')]['describe']()[_0x397f('0x30')](function(_0x834164){if(_0x2f42ff[_0x397f('0x5e')]['tags']&&_[_0x397f('0x69')](_0x2f42ff['body'][_0x397f('0x6a')])){if(_0x2f42ff['body'][_0x397f('0x6a')][_0x397f('0x43')]){_0x2f42ff[_0x397f('0x5e')][_0x397f('0x6a')]=_0x2f42ff['body'][_0x397f('0x6a')][_0x397f('0x6b')](';')+';';}else{_0x2f42ff[_0x397f('0x5e')][_0x397f('0x6a')]=null;}}else{_0x2f42ff[_0x397f('0x5e')][_0x397f('0x6a')]=null;}if(_0x2f42ff[_0x397f('0x5e')]&&_['isArray'](_0x2f42ff[_0x397f('0x5e')])){for(var _0x44f71d=0x0;_0x44f71d<_0x2f42ff['body']['length'];_0x44f71d+=0x1){_0x2f42ff[_0x397f('0x5e')][_0x44f71d][_0x397f('0x61')]=_0x2f42ff[_0x397f('0x54')]['id'];_0x208682[_0x397f('0x6c')](_0x2f42ff[_0x397f('0x5e')][_0x44f71d]);}return BPromise[_0x397f('0x6d')](_0x208682,function(_0x3161aa){return db[_0x397f('0x68')][_0x397f('0x56')](_[_0x397f('0x6e')](_0x3161aa,['ids','id'])||{},{'fields':_['keys'](_0x834164),'raw':!![]})[_0x397f('0x30')](function(_0x55fb06){_0x122308[_0x397f('0x6f')][_0x397f('0x6c')](_0x55fb06[_0x397f('0x70')]);})[_0x397f('0x52')](function(_0x5d7e1f){_0x122308[_0x397f('0x71')][_0x397f('0x6c')]({'data':_0x3161aa,'error':_0x5d7e1f['message']});});})[_0x397f('0x30')](function(_0x305c6b){return _0x122308;})[_0x397f('0x52')](function(_0x1418e8){return _0x1418e8;});}else{_0x4f35d1['status'](0x190)[_0x397f('0x22')]({'message':'Malformed\x20request\x20syntax'});}});}})['then'](respondWithResult(_0x4f35d1,null))[_0x397f('0x52')](handleError(_0x4f35d1,null));};exports[_0x397f('0x72')]=function(_0x405dd5,_0x1767d9,_0x50c8f1){var _0x4ffafc;return db[_0x397f('0x36')][_0x397f('0x55')]({'where':{'id':_0x405dd5['params']['id']},'include':[{'model':db[_0x397f('0x73')],'as':'CustomFields'}]})[_0x397f('0x30')](handleEntityNotFound(_0x1767d9,null))['then'](function(_0x13d3ad){if(_0x13d3ad){_0x4ffafc=_0x13d3ad;return db['CmContact']['rawAttributes'];}})[_0x397f('0x30')](function(_0x46f1de){if(_0x46f1de){var _0x563981={};var _0x4ce4f5={};_0x4ce4f5[_0x397f('0x3b')]=_['concat'](_[_0x397f('0x3e')](_0x46f1de),_[_0x397f('0x35')](_0x4ffafc[_0x397f('0x74')],function(_0x53d841){return util[_0x397f('0x75')]('cf_%d',_0x53d841['id']);}));_0x4ce4f5[_0x397f('0x3d')]=_[_0x397f('0x3e')](_0x405dd5[_0x397f('0x3d')]);_0x4ce4f5[_0x397f('0x3f')]=_['intersection'](_0x4ce4f5[_0x397f('0x3b')],_0x4ce4f5['query']);_0x563981['attributes']=_['intersection'](_0x4ce4f5[_0x397f('0x3b')],qs[_0x397f('0x41')](_0x405dd5[_0x397f('0x3d')][_0x397f('0x41')]));_0x563981[_0x397f('0x42')]=_0x563981[_0x397f('0x42')]['length']?_0x563981[_0x397f('0x42')]:_0x4ce4f5[_0x397f('0x3b')];if(!_0x405dd5[_0x397f('0x3d')][_0x397f('0x44')](_0x397f('0x45'))){_0x563981['limit']=qs[_0x397f('0x25')](_0x405dd5[_0x397f('0x3d')][_0x397f('0x25')]);_0x563981[_0x397f('0x23')]=qs[_0x397f('0x23')](_0x405dd5['query']['offset']);}_0x563981[_0x397f('0x46')]=qs[_0x397f('0x47')](_0x405dd5[_0x397f('0x3d')]['sort']);_0x563981['where']=qs[_0x397f('0x3f')](_[_0x397f('0x48')](_0x405dd5[_0x397f('0x3d')],_0x4ce4f5[_0x397f('0x3f')]));_0x563981[_0x397f('0x76')]=!![];if(_0x405dd5[_0x397f('0x3d')]['filter']){_0x563981['where']=_[_0x397f('0x4b')](_0x563981[_0x397f('0x4a')],{'$or':_[_0x397f('0x35')](_0x563981[_0x397f('0x42')],function(_0x56242f){var _0x92a010={};_0x92a010[_0x56242f]={'$like':'%'+_0x405dd5[_0x397f('0x3d')][_0x397f('0x49')]+'%'};return _0x92a010;})});}_0x563981=_[_0x397f('0x4b')]({},_0x563981,_0x405dd5[_0x397f('0x4d')]);return _0x4ffafc[_0x397f('0x72')](_0x563981);}})[_0x397f('0x30')](respondWithResult(_0x1767d9,null))[_0x397f('0x52')](handleError(_0x1767d9,null));};exports['getContactsCsv']=function(_0x15e7ab,_0x1b73b2,_0x4848ce){var _0x3b40f5;return db[_0x397f('0x36')][_0x397f('0x55')]({'where':{'id':_0x15e7ab[_0x397f('0x54')]['id']},'include':[{'model':db['CmCustomField'],'as':'CustomFields'}]})[_0x397f('0x30')](handleEntityNotFound(_0x1b73b2,null))[_0x397f('0x30')](function(_0x516aeb){if(_0x516aeb){_0x3b40f5=_0x516aeb;return db[_0x397f('0x68')][_0x397f('0x37')];}})[_0x397f('0x30')](function(_0xd2cea3){if(_0xd2cea3){var _0x1b6097={};var _0x5aee66={};_0x5aee66[_0x397f('0x3b')]=_[_0x397f('0x77')](_['keys'](_0xd2cea3),_[_0x397f('0x35')](_0x3b40f5[_0x397f('0x74')],function(_0xc6057c){return util[_0x397f('0x75')](_0x397f('0x78'),_0xc6057c['id']);}));_0x5aee66['query']=_[_0x397f('0x3e')](_0x15e7ab[_0x397f('0x3d')]);_0x5aee66[_0x397f('0x3f')]=_[_0x397f('0x40')](_0x5aee66['model'],_0x5aee66[_0x397f('0x3d')]);_0x1b6097[_0x397f('0x42')]=_['intersection'](_0x5aee66[_0x397f('0x3b')],qs[_0x397f('0x41')](_0x15e7ab[_0x397f('0x3d')]['fields']));_0x1b6097[_0x397f('0x42')]=_0x1b6097[_0x397f('0x42')][_0x397f('0x43')]?_0x1b6097['attributes']:_0x5aee66[_0x397f('0x3b')];if(!_0x15e7ab[_0x397f('0x3d')]['hasOwnProperty'](_0x397f('0x45'))){_0x1b6097[_0x397f('0x25')]=qs[_0x397f('0x25')](_0x15e7ab[_0x397f('0x3d')][_0x397f('0x25')]);_0x1b6097[_0x397f('0x23')]=qs['offset'](_0x15e7ab[_0x397f('0x3d')][_0x397f('0x23')]);}_0x1b6097[_0x397f('0x46')]=qs[_0x397f('0x47')](_0x15e7ab[_0x397f('0x3d')][_0x397f('0x47')]);_0x1b6097[_0x397f('0x4a')]=qs[_0x397f('0x3f')](_['pick'](_0x15e7ab[_0x397f('0x3d')],_0x5aee66['filters']));_0x1b6097[_0x397f('0x76')]=!![];if(_0x15e7ab[_0x397f('0x3d')]['filter']){_0x1b6097['where']=_[_0x397f('0x4b')](_0x1b6097['where'],{'$or':_[_0x397f('0x35')](_0x1b6097['attributes'],function(_0x3c31cb){var _0x22a353={};_0x22a353[_0x3c31cb]={'$like':'%'+_0x15e7ab[_0x397f('0x3d')][_0x397f('0x49')]+'%'};return _0x22a353;})});}_0x1b6097=_[_0x397f('0x4b')]({},_0x1b6097,_0x15e7ab['options']);return _0x3b40f5[_0x397f('0x72')](_0x1b6097);}})[_0x397f('0x30')](function(_0x29dd12){if(!_[_0x397f('0x79')](_0x29dd12)){var _0x4df175=toCsv(_0x29dd12);var _0x44f32d=Date[_0x397f('0x7a')]();fs[_0x397f('0x7b')](util['format'](_0x397f('0x7c'),_0x3b40f5['id'],_0x44f32d),_0x4df175);_0x1b73b2[_0x397f('0x7d')](_0x397f('0x7e'),_0x397f('0x7f')+util[_0x397f('0x75')](_0x397f('0x80'),_0x3b40f5['id'],_0x44f32d));_0x1b73b2[_0x397f('0x7d')]('Content-type','text/csv');return _0x1b73b2[_0x397f('0x81')](util['format'](_0x397f('0x7c'),_0x3b40f5['id'],_0x44f32d));}else{return _0x1b73b2[_0x397f('0x1f')](0xcc);}})[_0x397f('0x52')](handleError(_0x1b73b2,null));};exports['addCustomField']=function(_0x4122de,_0x3df1f5,_0x450a7f){var _0x3435ee;delete _0x4122de['body']['id'];return db[_0x397f('0x36')][_0x397f('0x64')]({'where':{'id':_0x4122de[_0x397f('0x54')]['id']}})[_0x397f('0x30')](handleEntityNotFound(_0x3df1f5,null))['then'](function(_0x14bdf0){if(_0x14bdf0){return db[_0x397f('0x82')][_0x397f('0x83')](function(_0x2c1561){return db[_0x397f('0x73')][_0x397f('0x56')](_0x4122de['body'],{'transaction':_0x2c1561})[_0x397f('0x30')](function(_0x17d792){_0x3435ee=_0x17d792;return _0x14bdf0[_0x397f('0x84')](_0x17d792,{'transaction':_0x2c1561});})[_0x397f('0x30')](function(){var _0x38a50={'type':db[_0x397f('0x85')][_0x397f('0x86')],'transaction':_0x2c1561};switch(_0x4122de[_0x397f('0x5e')]['type']){case _0x397f('0x87'):_0x38a50['type']=db[_0x397f('0x85')][_0x397f('0x86')];break;case'number':_0x38a50[_0x397f('0x39')]=db[_0x397f('0x85')][_0x397f('0x88')];break;case'switch':_0x38a50[_0x397f('0x39')]=db[_0x397f('0x85')][_0x397f('0x89')];_0x38a50['defaultValue']=![];break;default:}return db[_0x397f('0x82')][_0x397f('0x8a')][_0x397f('0x8b')](_0x397f('0x8c'),util[_0x397f('0x75')]('cf_%s',_0x3435ee['id']),_0x38a50);})[_0x397f('0x30')](function(){return _0x3435ee;});});}})[_0x397f('0x30')](respondWithResult(_0x3df1f5,null))[_0x397f('0x52')](handleError(_0x3df1f5,null));};exports[_0x397f('0x8d')]=function(_0x33664e,_0x4b0548,_0x4888fc){var _0x2312c9={};var _0xcb9119={};var _0x3d5cfe;var _0x5779d0;return db[_0x397f('0x36')][_0x397f('0x64')]({'where':{'id':_0x33664e[_0x397f('0x54')]['id']}})['then'](handleEntityNotFound(_0x4b0548,null))['then'](function(_0x55ebcf){if(_0x55ebcf){_0x3d5cfe=_0x55ebcf;_0xcb9119[_0x397f('0x3b')]=_[_0x397f('0x3e')](db[_0x397f('0x73')][_0x397f('0x37')]);_0xcb9119[_0x397f('0x3d')]=_[_0x397f('0x3e')](_0x33664e[_0x397f('0x3d')]);_0xcb9119[_0x397f('0x3f')]=_[_0x397f('0x40')](_0xcb9119[_0x397f('0x3b')],_0xcb9119['query']);_0x2312c9[_0x397f('0x42')]=_[_0x397f('0x40')](_0xcb9119[_0x397f('0x3b')],qs[_0x397f('0x41')](_0x33664e[_0x397f('0x3d')][_0x397f('0x41')]));_0x2312c9['attributes']=_0x2312c9['attributes'][_0x397f('0x43')]?_0x2312c9[_0x397f('0x42')]:_0xcb9119['model'];_0x2312c9['order']=qs[_0x397f('0x47')](_0x33664e['query'][_0x397f('0x47')]);_0x2312c9[_0x397f('0x4a')]=qs[_0x397f('0x3f')](_[_0x397f('0x48')](_0x33664e[_0x397f('0x3d')],_0xcb9119[_0x397f('0x3f')]));_0x2312c9[_0x397f('0x4a')]=_[_0x397f('0x4b')](_0x2312c9[_0x397f('0x4a')],{'$or':[{'ListId':_0x55ebcf['id']},{'ListId':null}]});if(_0x33664e[_0x397f('0x3d')][_0x397f('0x49')]){_0x2312c9['where']=_[_0x397f('0x4b')](_0x2312c9[_0x397f('0x4a')],{'$or':_[_0x397f('0x35')](_0x2312c9[_0x397f('0x42')],function(_0x3a10c1){var _0x29e5f9={};_0x29e5f9[_0x3a10c1]={'$like':'%'+_0x33664e[_0x397f('0x3d')]['filter']+'%'};return _0x29e5f9;})});}_0x2312c9=_[_0x397f('0x4b')]({},_0x2312c9,_0x33664e[_0x397f('0x4d')]);return db[_0x397f('0x73')]['findAndCountAll'](_0x2312c9);}})[_0x397f('0x30')](respondWithResult(_0x4b0548,null))['catch'](handleError(_0x4b0548,null));};exports[_0x397f('0x8e')]=function(_0x29db63,_0x31d7bb,_0x44c5a3){return db['CmList'][_0x397f('0x55')]({'where':{'id':_0x29db63[_0x397f('0x54')]['id']}})['then'](handleEntityNotFound(_0x31d7bb,null))[_0x397f('0x30')](function(_0x3dd47b){if(_0x3dd47b){return _0x3dd47b[_0x397f('0x8e')](_0x29db63[_0x397f('0x5e')][_0x397f('0x66')],_[_0x397f('0x6e')](_0x29db63[_0x397f('0x5e')],[_0x397f('0x66'),'id'])||{})['spread'](function(_0x357bbc){for(var _0x814c49=0x0;_0x814c49<_0x29db63['body']['ids']['length'];_0x814c49+=0x1){socket['emit'](_0x397f('0x8f'),{'UserId':Number(_0x29db63['body'][_0x397f('0x66')][_0x814c49]),'CmListId':Number(_0x29db63['params']['id'])});}return _0x357bbc;});}})['then'](respondWithResult(_0x31d7bb,null))['catch'](handleError(_0x31d7bb,null));};exports[_0x397f('0x90')]=function(_0x3fbf9f,_0x4476c0,_0x538362){return db['CmList'][_0x397f('0x55')]({'where':{'id':_0x3fbf9f[_0x397f('0x54')]['id']}})['then'](handleEntityNotFound(_0x4476c0,null))[_0x397f('0x30')](function(_0x3b1507){if(_0x3b1507){return _0x3b1507[_0x397f('0x90')](_0x3fbf9f[_0x397f('0x3d')][_0x397f('0x66')])[_0x397f('0x30')](function(){if(_['isArray'](_0x3fbf9f[_0x397f('0x3d')][_0x397f('0x66')])){for(var _0x3dd59d=0x0;_0x3dd59d<_0x3fbf9f[_0x397f('0x3d')][_0x397f('0x66')][_0x397f('0x43')];_0x3dd59d+=0x1){socket[_0x397f('0x91')](_0x397f('0x92'),{'UserId':Number(_0x3fbf9f[_0x397f('0x3d')][_0x397f('0x66')][_0x3dd59d]),'CmListId':Number(_0x3fbf9f[_0x397f('0x54')]['id'])});}}else{socket[_0x397f('0x91')]('userCmList:remove',{'UserId':Number(_0x3fbf9f[_0x397f('0x3d')][_0x397f('0x66')]),'CmListId':Number(_0x3fbf9f[_0x397f('0x54')]['id'])});}});}})[_0x397f('0x30')](respondWithStatusCode(_0x4476c0,null))[_0x397f('0x52')](handleError(_0x4476c0,null));};exports[_0x397f('0x93')]=function(_0x165cf8,_0x4000d2,_0x56b729){var _0x607025={};var _0x3c01f8={};var _0x24e857;var _0x402c3a;return db[_0x397f('0x36')]['findOne']({'where':{'id':_0x165cf8[_0x397f('0x54')]['id']}})['then'](handleEntityNotFound(_0x4000d2,null))[_0x397f('0x30')](function(_0x35efd3){if(_0x35efd3){_0x24e857=_0x35efd3;_0x3c01f8[_0x397f('0x3b')]=_[_0x397f('0x3e')](db[_0x397f('0x94')]['rawAttributes']);_0x3c01f8['query']=_['keys'](_0x165cf8[_0x397f('0x3d')]);_0x3c01f8[_0x397f('0x3f')]=_['intersection'](_0x3c01f8[_0x397f('0x3b')],_0x3c01f8[_0x397f('0x3d')]);_0x607025['attributes']=_['intersection'](_0x3c01f8[_0x397f('0x3b')],qs['fields'](_0x165cf8['query'][_0x397f('0x41')]));_0x607025[_0x397f('0x42')]=_0x607025['attributes'][_0x397f('0x43')]?_0x607025[_0x397f('0x42')]:_0x3c01f8[_0x397f('0x3b')];_0x607025['order']=qs['sort'](_0x165cf8[_0x397f('0x3d')][_0x397f('0x47')]);_0x607025['where']=qs[_0x397f('0x3f')](_[_0x397f('0x48')](_0x165cf8[_0x397f('0x3d')],_0x3c01f8[_0x397f('0x3f')]));if(_0x165cf8[_0x397f('0x3d')][_0x397f('0x49')]){_0x607025['where']=_[_0x397f('0x4b')](_0x607025[_0x397f('0x4a')],{'$or':_[_0x397f('0x35')](_0x607025[_0x397f('0x42')],function(_0x5e206c){var _0x207e9a={};_0x207e9a[_0x5e206c]={'$like':'%'+_0x165cf8[_0x397f('0x3d')][_0x397f('0x49')]+'%'};return _0x207e9a;})});}_0x607025=_[_0x397f('0x4b')]({},_0x607025,_0x165cf8['options']);return _0x24e857['getAgents'](_0x607025);}})[_0x397f('0x30')](function(_0x5ba85a){if(_0x5ba85a){_0x402c3a=_0x5ba85a[_0x397f('0x43')];if(!_0x165cf8[_0x397f('0x3d')][_0x397f('0x44')](_0x397f('0x45'))){_0x607025[_0x397f('0x25')]=qs[_0x397f('0x25')](_0x165cf8[_0x397f('0x3d')][_0x397f('0x25')]);_0x607025[_0x397f('0x23')]=qs[_0x397f('0x23')](_0x165cf8[_0x397f('0x3d')]['offset']);}return _0x24e857[_0x397f('0x93')](_0x607025);}})['then'](function(_0x1023e0){if(_0x1023e0){return _0x1023e0?{'count':_0x402c3a,'rows':_0x1023e0}:null;}})['then'](respondWithResult(_0x4000d2,null))[_0x397f('0x52')](handleError(_0x4000d2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['hasOwnProperty','hook','exports','events','../../mysqldb','save','update','emit'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe14b,0x93));var _0xbe14=function(_0x56213d,_0x2bc3b0){_0x56213d=_0x56213d-0x0;var _0xf449a2=_0xe14b[_0x56213d];return _0xf449a2;};'use strict';var EventEmitter=require(_0xbe14('0x0'));var CmList=require(_0xbe14('0x1'))['db']['CmList'];var CmListEvents=new EventEmitter();CmListEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xbe14('0x2'),'afterUpdate':_0xbe14('0x3'),'afterDestroy':'remove'};function emitEvent(_0x7d3665){return function(_0x5ce8fb,_0x496c04,_0x1833e3){CmListEvents[_0xbe14('0x4')](_0x7d3665+':'+_0x5ce8fb['id'],_0x5ce8fb);CmListEvents[_0xbe14('0x4')](_0x7d3665,_0x5ce8fb);_0x1833e3(null);};}for(var e in events){if(events[_0xbe14('0x5')](e)){var event=events[e];CmList[_0xbe14('0x6')](e,emitEvent(event));}}module[_0xbe14('0x7')]=CmListEvents;
\ No newline at end of file
+var _0x326f=['exports','events','setMaxListeners','save','update','remove','emit','hook'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x326f,0xd1));var _0xf326=function(_0x507ad2,_0x423ad3){_0x507ad2=_0x507ad2-0x0;var _0x129517=_0x326f[_0x507ad2];return _0x129517;};'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 _0xe5b5=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmList.attributes','exports','define','CmList','cm_lists','lodash'];(function(_0x123a3d,_0x11d23b){var _0x48c8cf=function(_0x34f7c5){while(--_0x34f7c5){_0x123a3d['push'](_0x123a3d['shift']());}};_0x48c8cf(++_0x11d23b);}(_0xe5b5,0x12b));var _0x5e5b=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0xe5b5[_0x126558];return _0x1f6d14;};'use strict';var _=require(_0x5e5b('0x0'));var util=require(_0x5e5b('0x1'));var logger=require(_0x5e5b('0x2'))(_0x5e5b('0x3'));var moment=require(_0x5e5b('0x4'));var BPromise=require(_0x5e5b('0x5'));var rp=require(_0x5e5b('0x6'));var fs=require('fs');var path=require(_0x5e5b('0x7'));var rimraf=require(_0x5e5b('0x8'));var config=require(_0x5e5b('0x9'));var attributes=require(_0x5e5b('0xa'));module[_0x5e5b('0xb')]=function(_0xf1fbe2,_0x11e0e0){return _0xf1fbe2[_0x5e5b('0xc')](_0x5e5b('0xd'),attributes,{'tableName':_0x5e5b('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe706=['request-promise','path','rimraf','../../config/environment','./cmList.attributes','exports','define','CmList','cm_lists','lodash','util','../../config/logger','moment','bluebird'];(function(_0x3d4e2e,_0x2a90ea){var _0x1f710b=function(_0x3f090b){while(--_0x3f090b){_0x3d4e2e['push'](_0x3d4e2e['shift']());}};_0x1f710b(++_0x2a90ea);}(_0xe706,0xa3));var _0x6e70=function(_0x54cef6,_0x146b0e){_0x54cef6=_0x54cef6-0x0;var _0x39aacf=_0xe706[_0x54cef6];return _0x39aacf;};'use strict';var _=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var logger=require(_0x6e70('0x2'))('api');var moment=require(_0x6e70('0x3'));var BPromise=require(_0x6e70('0x4'));var rp=require(_0x6e70('0x5'));var fs=require('fs');var path=require(_0x6e70('0x6'));var rimraf=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));var attributes=require(_0x6e70('0x9'));module[_0x6e70('0xa')]=function(_0x1b0389,_0x4381d1){return _0x1b0389[_0x6e70('0xb')](_0x6e70('0xc'),attributes,{'tableName':_0x6e70('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xebb8=['stringify','error','message','result','catch','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','redis','defaults','socket.io-emitter','register','request','info','CmList,\x20%s,\x20%s','debug'];(function(_0x4ffbbe,_0x4805d1){var _0x5e778d=function(_0x31681d){while(--_0x31681d){_0x4ffbbe['push'](_0x4ffbbe['shift']());}};_0x5e778d(++_0x4805d1);}(_0xebb8,0x1be));var _0x8ebb=function(_0x2ce5fa,_0x35efcc){_0x2ce5fa=_0x2ce5fa-0x0;var _0x305ffe=_0xebb8[_0x2ce5fa];return _0x305ffe;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x8ebb('0x0'));var BPromise=require(_0x8ebb('0x1'));var rs=require(_0x8ebb('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8ebb('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x8ebb('0x4'))(_0x8ebb('0x5'));var config=require(_0x8ebb('0x6'));var jayson=require(_0x8ebb('0x7'));var client=jayson['client']['http']({'port':0x232a});config[_0x8ebb('0x8')]=_[_0x8ebb('0x9')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x8ebb('0xa'))(new Redis(config[_0x8ebb('0x8')]));require('./cmList.socket')[_0x8ebb('0xb')](socket);function respondWithRpcPromise(_0x4355cd,_0x4e75e1,_0x4e2dac){return new BPromise(function(_0x1af7ba,_0x440734){return client[_0x8ebb('0xc')](_0x4355cd,_0x4e2dac)['then'](function(_0xb378b6){logger[_0x8ebb('0xd')](_0x8ebb('0xe'),_0x4e75e1,'request\x20sent');logger[_0x8ebb('0xf')]('CmList,\x20%s,\x20%s,\x20%s',_0x4e75e1,'request\x20sent',JSON[_0x8ebb('0x10')](_0xb378b6));if(_0xb378b6[_0x8ebb('0x11')]){if(_0xb378b6[_0x8ebb('0x11')]['code']===0x1f4){logger[_0x8ebb('0x11')](_0x8ebb('0xe'),_0x4e75e1,_0xb378b6['error'][_0x8ebb('0x12')]);return _0x440734(_0xb378b6['error'][_0x8ebb('0x12')]);}logger['error'](_0x8ebb('0xe'),_0x4e75e1,_0xb378b6['error'][_0x8ebb('0x12')]);return _0x1af7ba(_0xb378b6[_0x8ebb('0x11')]['message']);}else{logger['info'](_0x8ebb('0xe'),_0x4e75e1,'request\x20sent');_0x1af7ba(_0xb378b6[_0x8ebb('0x13')][_0x8ebb('0x12')]);}})[_0x8ebb('0x14')](function(_0xda66e5){logger[_0x8ebb('0x11')]('CmList,\x20%s,\x20%s',_0x4e75e1,_0xda66e5);_0x440734(_0xda66e5);});});}
\ No newline at end of file
+var _0x48be=['error','code','message','result','catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','http','redis','defaults','localhost','socket.io-emitter','./cmList.socket','register','request','then','info','CmList,\x20%s,\x20%s','request\x20sent','debug','CmList,\x20%s,\x20%s,\x20%s','stringify'];(function(_0xbd08b4,_0x4790ed){var _0x314f1e=function(_0x161589){while(--_0x161589){_0xbd08b4['push'](_0xbd08b4['shift']());}};_0x314f1e(++_0x4790ed);}(_0x48be,0x155));var _0xe48b=function(_0x5585a0,_0x2ccd63){_0x5585a0=_0x5585a0-0x0;var _0x143254=_0x48be[_0x5585a0];return _0x143254;};'use strict';var _=require(_0xe48b('0x0'));var util=require('util');var moment=require(_0xe48b('0x1'));var BPromise=require(_0xe48b('0x2'));var rs=require(_0xe48b('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe48b('0x4'))['db'];var utils=require(_0xe48b('0x5'));var logger=require(_0xe48b('0x6'))('rpc');var config=require(_0xe48b('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0xe48b('0x8')]({'port':0x232a});config[_0xe48b('0x9')]=_[_0xe48b('0xa')](config[_0xe48b('0x9')],{'host':_0xe48b('0xb'),'port':0x18eb});var socket=require(_0xe48b('0xc'))(new Redis(config[_0xe48b('0x9')]));require(_0xe48b('0xd'))[_0xe48b('0xe')](socket);function respondWithRpcPromise(_0x2a3b1b,_0x80a15f,_0x3e788b){return new BPromise(function(_0x81b062,_0x3750f7){return client[_0xe48b('0xf')](_0x2a3b1b,_0x3e788b)[_0xe48b('0x10')](function(_0x2261a6){logger[_0xe48b('0x11')](_0xe48b('0x12'),_0x80a15f,_0xe48b('0x13'));logger[_0xe48b('0x14')](_0xe48b('0x15'),_0x80a15f,_0xe48b('0x13'),JSON[_0xe48b('0x16')](_0x2261a6));if(_0x2261a6[_0xe48b('0x17')]){if(_0x2261a6[_0xe48b('0x17')][_0xe48b('0x18')]===0x1f4){logger[_0xe48b('0x17')](_0xe48b('0x12'),_0x80a15f,_0x2261a6[_0xe48b('0x17')][_0xe48b('0x19')]);return _0x3750f7(_0x2261a6['error'][_0xe48b('0x19')]);}logger[_0xe48b('0x17')](_0xe48b('0x12'),_0x80a15f,_0x2261a6[_0xe48b('0x17')][_0xe48b('0x19')]);return _0x81b062(_0x2261a6[_0xe48b('0x17')][_0xe48b('0x19')]);}else{logger[_0xe48b('0x11')](_0xe48b('0x12'),_0x80a15f,'request\x20sent');_0x81b062(_0x2261a6[_0xe48b('0x1a')]['message']);}})[_0xe48b('0x1b')](function(_0x1efa6b){logger[_0xe48b('0x17')](_0xe48b('0x12'),_0x80a15f,_0x1efa6b);_0x3750f7(_0x1efa6b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x852f=['./cmList.events','save','remove','update','emit','removeListener','cmList:'];(function(_0x52bd27,_0x2b2dae){var _0x15f5bd=function(_0x3c8142){while(--_0x3c8142){_0x52bd27['push'](_0x52bd27['shift']());}};_0x15f5bd(++_0x2b2dae);}(_0x852f,0x126));var _0xf852=function(_0x55616d,_0x1fb518){_0x55616d=_0x55616d-0x0;var _0x38f462=_0x852f[_0x55616d];return _0x38f462;};'use strict';var CmListEvents=require(_0xf852('0x0'));var events=[_0xf852('0x1'),_0xf852('0x2'),_0xf852('0x3')];function createListener(_0x3b8b19,_0x5e9e07){return function(_0x66692a){_0x5e9e07[_0xf852('0x4')](_0x3b8b19,_0x66692a);};}function removeListener(_0x42e3be,_0x4226d8){return function(){CmListEvents[_0xf852('0x5')](_0x42e3be,_0x4226d8);};}exports['register']=function(_0x4142c6){for(var _0x5d563b=0x0,_0x18afb0=events['length'];_0x5d563b<_0x18afb0;_0x5d563b++){var _0x5ec199=events[_0x5d563b];var _0x437b96=createListener(_0xf852('0x6')+_0x5ec199,_0x4142c6);CmListEvents['on'](_0x5ec199,_0x437b96);}};
\ No newline at end of file
+var _0xe454=['length','remove','update','emit','removeListener'];(function(_0x413feb,_0x10477f){var _0x40ee88=function(_0x32a3f6){while(--_0x32a3f6){_0x413feb['push'](_0x413feb['shift']());}};_0x40ee88(++_0x10477f);}(_0xe454,0xba));var _0x4e45=function(_0x163ce2,_0x3df5ee){_0x163ce2=_0x163ce2-0x0;var _0x5ad2d8=_0xe454[_0x163ce2];return _0x5ad2d8;};'use strict';var CmListEvents=require('./cmList.events');var events=['save',_0x4e45('0x0'),_0x4e45('0x1')];function createListener(_0x4273d1,_0x31fd7d){return function(_0x1c1e89){_0x31fd7d[_0x4e45('0x2')](_0x4273d1,_0x1c1e89);};}function removeListener(_0x207489,_0x890d0f){return function(){CmListEvents[_0x4e45('0x3')](_0x207489,_0x890d0f);};}exports['register']=function(_0x1eba60){for(var _0x470d82=0x0,_0x5511f1=events[_0x4e45('0x4')];_0x470d82<_0x5511f1;_0x470d82++){var _0x29a749=events[_0x470d82];var _0x1b3439=createListener('cmList:'+_0x29a749,_0x1eba60);CmListEvents['on'](_0x29a749,_0x1b3439);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcfd7=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','describe','/:id','show','getDispositions','/:id/contacts','/:id/contacts/csv','getContactsCsv','getCustomFields','/:id/users','post','addDisposition','/:id/fields','addCustomField','addAgents','put','update','delete','destroy','removeAgents','exports','multer','util','path'];(function(_0x4e676e,_0x2a7c6d){var _0x336a3c=function(_0x4767c4){while(--_0x4767c4){_0x4e676e['push'](_0x4e676e['shift']());}};_0x336a3c(++_0x2a7c6d);}(_0xcfd7,0x133));var _0x7cfd=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xcfd7[_0x321bb2];return _0x9c12ed;};'use strict';var multer=require(_0x7cfd('0x0'));var util=require(_0x7cfd('0x1'));var path=require(_0x7cfd('0x2'));var timeout=require(_0x7cfd('0x3'));var express=require(_0x7cfd('0x4'));var router=express[_0x7cfd('0x5')]();var fs_extra=require(_0x7cfd('0x6'));var auth=require(_0x7cfd('0x7'));var interaction=require(_0x7cfd('0x8'));var config=require('../../config/environment');var controller=require('./cmList.controller');router[_0x7cfd('0x9')]('/',auth[_0x7cfd('0xa')](),controller['index']);router[_0x7cfd('0x9')]('/describe',auth['isAuthenticated'](),controller[_0x7cfd('0xb')]);router[_0x7cfd('0x9')](_0x7cfd('0xc'),auth[_0x7cfd('0xa')](),controller[_0x7cfd('0xd')]);router[_0x7cfd('0x9')]('/:id/dispositions',auth[_0x7cfd('0xa')](),controller[_0x7cfd('0xe')]);router['get'](_0x7cfd('0xf'),auth['isAuthenticated'](),controller['getContacts']);router[_0x7cfd('0x9')](_0x7cfd('0x10'),auth[_0x7cfd('0xa')](),controller[_0x7cfd('0x11')]);router['get']('/:id/fields',auth[_0x7cfd('0xa')](),controller[_0x7cfd('0x12')]);router[_0x7cfd('0x9')](_0x7cfd('0x13'),auth[_0x7cfd('0xa')](),controller['getAgents']);router[_0x7cfd('0x14')]('/',auth['isAuthenticated'](),controller['create']);router[_0x7cfd('0x14')]('/:id/dispositions',auth[_0x7cfd('0xa')](),controller[_0x7cfd('0x15')]);router[_0x7cfd('0x14')](_0x7cfd('0xf'),auth[_0x7cfd('0xa')](),controller['addContacts']);router[_0x7cfd('0x14')](_0x7cfd('0x16'),auth['isAuthenticated'](),controller[_0x7cfd('0x17')]);router[_0x7cfd('0x14')]('/:id/users',auth['isAuthenticated'](),controller[_0x7cfd('0x18')]);router[_0x7cfd('0x19')](_0x7cfd('0xc'),auth['isAuthenticated'](),controller[_0x7cfd('0x1a')]);router[_0x7cfd('0x1b')]('/:id',auth['isAuthenticated'](),controller[_0x7cfd('0x1c')]);router[_0x7cfd('0x1b')]('/:id/dispositions',auth[_0x7cfd('0xa')](),controller['removeDispositions']);router[_0x7cfd('0x1b')](_0x7cfd('0x13'),auth[_0x7cfd('0xa')](),controller[_0x7cfd('0x1d')]);module[_0x7cfd('0x1e')]=router;
\ No newline at end of file
+var _0x5b0b=['fs-extra','../../components/interaction/service','../../config/environment','./cmList.controller','get','isAuthenticated','describe','show','/:id/dispositions','/:id/contacts','getContacts','/:id/contacts/csv','getContactsCsv','getCustomFields','/:id/users','getAgents','create','post','addDisposition','addContacts','/:id/fields','addCustomField','addAgents','put','update','delete','/:id','destroy','removeDispositions','removeAgents','exports','multer','util','path','connect-timeout','express'];(function(_0x2d4a77,_0x30ff36){var _0x3479a5=function(_0x2256e3){while(--_0x2256e3){_0x2d4a77['push'](_0x2d4a77['shift']());}};_0x3479a5(++_0x30ff36);}(_0x5b0b,0x1ab));var _0xb5b0=function(_0x46749e,_0x273725){_0x46749e=_0x46749e-0x0;var _0x2c1d66=_0x5b0b[_0x46749e];return _0x2c1d66;};'use strict';var multer=require(_0xb5b0('0x0'));var util=require(_0xb5b0('0x1'));var path=require(_0xb5b0('0x2'));var timeout=require(_0xb5b0('0x3'));var express=require(_0xb5b0('0x4'));var router=express['Router']();var fs_extra=require(_0xb5b0('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xb5b0('0x6'));var config=require(_0xb5b0('0x7'));var controller=require(_0xb5b0('0x8'));router[_0xb5b0('0x9')]('/',auth[_0xb5b0('0xa')](),controller['index']);router[_0xb5b0('0x9')]('/describe',auth['isAuthenticated'](),controller[_0xb5b0('0xb')]);router['get']('/:id',auth['isAuthenticated'](),controller[_0xb5b0('0xc')]);router[_0xb5b0('0x9')](_0xb5b0('0xd'),auth['isAuthenticated'](),controller['getDispositions']);router[_0xb5b0('0x9')](_0xb5b0('0xe'),auth[_0xb5b0('0xa')](),controller[_0xb5b0('0xf')]);router[_0xb5b0('0x9')](_0xb5b0('0x10'),auth[_0xb5b0('0xa')](),controller[_0xb5b0('0x11')]);router[_0xb5b0('0x9')]('/:id/fields',auth[_0xb5b0('0xa')](),controller[_0xb5b0('0x12')]);router[_0xb5b0('0x9')](_0xb5b0('0x13'),auth[_0xb5b0('0xa')](),controller[_0xb5b0('0x14')]);router['post']('/',auth['isAuthenticated'](),controller[_0xb5b0('0x15')]);router[_0xb5b0('0x16')](_0xb5b0('0xd'),auth[_0xb5b0('0xa')](),controller[_0xb5b0('0x17')]);router[_0xb5b0('0x16')](_0xb5b0('0xe'),auth[_0xb5b0('0xa')](),controller[_0xb5b0('0x18')]);router[_0xb5b0('0x16')](_0xb5b0('0x19'),auth[_0xb5b0('0xa')](),controller[_0xb5b0('0x1a')]);router[_0xb5b0('0x16')](_0xb5b0('0x13'),auth[_0xb5b0('0xa')](),controller[_0xb5b0('0x1b')]);router[_0xb5b0('0x1c')]('/:id',auth[_0xb5b0('0xa')](),controller[_0xb5b0('0x1d')]);router[_0xb5b0('0x1e')](_0xb5b0('0x1f'),auth[_0xb5b0('0xa')](),controller[_0xb5b0('0x20')]);router[_0xb5b0('0x1e')](_0xb5b0('0xd'),auth[_0xb5b0('0xa')](),controller[_0xb5b0('0x21')]);router[_0xb5b0('0x1e')](_0xb5b0('0x13'),auth[_0xb5b0('0xa')](),controller[_0xb5b0('0x22')]);module[_0xb5b0('0x23')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9453=['VIRTUAL','getDataValue','field','STRING','sequelize','exports'];(function(_0x5641c,_0x1d1c33){var _0x446435=function(_0x4650b5){while(--_0x4650b5){_0x5641c['push'](_0x5641c['shift']());}};_0x446435(++_0x1d1c33);}(_0x9453,0x7c));var _0x3945=function(_0x313b12,_0x34f20a){_0x313b12=_0x313b12-0x0;var _0x2cdfd7=_0x9453[_0x313b12];return _0x2cdfd7;};'use strict';var Sequelize=require(_0x3945('0x0'));module[_0x3945('0x1')]={'name':{'type':Sequelize[_0x3945('0x2')],'get':function(_0x2c249f){return this[_0x3945('0x3')](_0x3945('0x4'));}},'field':{'type':Sequelize[_0x3945('0x5')],'allowNull':![]},'operator':{'type':Sequelize[_0x3945('0x5')],'allowNull':![]},'value':{'type':Sequelize[_0x3945('0x5')],'allowNull':![]}};
\ No newline at end of file
+var _0x4048=['STRING','sequelize','exports','VIRTUAL','field'];(function(_0x14e010,_0x220f30){var _0x322072=function(_0xcf085f){while(--_0xcf085f){_0x14e010['push'](_0x14e010['shift']());}};_0x322072(++_0x220f30);}(_0x4048,0x1eb));var _0x8404=function(_0x3f4574,_0x3bbfdb){_0x3f4574=_0x3f4574-0x0;var _0x48c17c=_0x4048[_0x3f4574];return _0x48c17c;};'use strict';var Sequelize=require(_0x8404('0x0'));module[_0x8404('0x1')]={'name':{'type':Sequelize[_0x8404('0x2')],'get':function(_0x22bdba){return this['getDataValue'](_0x8404('0x3'));}},'field':{'type':Sequelize['STRING'],'allowNull':![]},'operator':{'type':Sequelize[_0x8404('0x4')],'allowNull':![]},'value':{'type':Sequelize[_0x8404('0x4')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['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','sendStatus','status','json','undefined','count','offset','limit','set','Content-Range','reject','save','then','destroy','error','name','send','update','body','Condition','find','catch','params'];(function(_0x2869ca,_0x18e661){var _0x32b987=function(_0xa04fb){while(--_0xa04fb){_0x2869ca['push'](_0x2869ca['shift']());}};_0x32b987(++_0x18e661);}(_0x9957,0x93));var _0x7995=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0x9957[_0x6c993a];return _0x27f547;};'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){if(_0x4b6f99['body']['id']){delete _0x4b6f99[_0x7995('0x2c')]['id'];}return db[_0x7995('0x2d')][_0x7995('0x2e')]({'where':{'id':_0x4b6f99['params']['id']}})['then'](handleEntityNotFound(_0x9b2a15,null))['then'](saveUpdates(_0x4b6f99[_0x7995('0x2c')],null))[_0x7995('0x26')](respondWithResult(_0x9b2a15,null))[_0x7995('0x2f')](handleError(_0x9b2a15,null));};exports[_0x7995('0x27')]=function(_0x2e3493,_0x1ca460){return db['Condition']['find']({'where':{'id':_0x2e3493[_0x7995('0x30')]['id']}})['then'](handleEntityNotFound(_0x1ca460,null))[_0x7995('0x26')](removeEntity(_0x1ca460,null))[_0x7995('0x2f')](handleError(_0x1ca460,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(_0x42e193,_0x4ebc3c){var _0x4bc064=function(_0x38fef0){while(--_0x38fef0){_0x42e193['push'](_0x42e193['shift']());}};_0x4bc064(++_0x4ebc3c);}(_0x7a54,0x106));var _0x47a5=function(_0x1eba79,_0x4c742c){_0x1eba79=_0x1eba79-0x0;var _0x494a95=_0x7a54[_0x1eba79];return _0x494a95;};'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 _0x1917=['rimraf','../../config/environment','./condition.attributes','define','Condition','tools_conditions','lodash','util','../../config/logger','moment','bluebird','path'];(function(_0x35d59c,_0x341ef9){var _0x18cd27=function(_0x16a9c4){while(--_0x16a9c4){_0x35d59c['push'](_0x35d59c['shift']());}};_0x18cd27(++_0x341ef9);}(_0x1917,0xba));var _0x7191=function(_0x282277,_0x310b7e){_0x282277=_0x282277-0x0;var _0x11fc27=_0x1917[_0x282277];return _0x11fc27;};'use strict';var _=require(_0x7191('0x0'));var util=require(_0x7191('0x1'));var logger=require(_0x7191('0x2'))('api');var moment=require(_0x7191('0x3'));var BPromise=require(_0x7191('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x7191('0x5'));var rimraf=require(_0x7191('0x6'));var config=require(_0x7191('0x7'));var attributes=require(_0x7191('0x8'));module['exports']=function(_0x21d519,_0x5c6bfd){return _0x21d519[_0x7191('0x9')](_0x7191('0xa'),attributes,{'tableName':_0x7191('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x08c4=['request-promise','path','rimraf','../../config/environment','./condition.attributes','exports','Condition','tools_conditions','lodash','util','moment','bluebird'];(function(_0x3b19e5,_0x16ffd7){var _0x13871d=function(_0x30e1a4){while(--_0x30e1a4){_0x3b19e5['push'](_0x3b19e5['shift']());}};_0x13871d(++_0x16ffd7);}(_0x08c4,0xbc));var _0x408c=function(_0x1cdc80,_0x43e7e5){_0x1cdc80=_0x1cdc80-0x0;var _0x85b591=_0x08c4[_0x1cdc80];return _0x85b591;};'use strict';var _=require(_0x408c('0x0'));var util=require(_0x408c('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x408c('0x2'));var BPromise=require(_0x408c('0x3'));var rp=require(_0x408c('0x4'));var fs=require('fs');var path=require(_0x408c('0x5'));var rimraf=require(_0x408c('0x6'));var config=require(_0x408c('0x7'));var attributes=require(_0x408c('0x8'));module[_0x408c('0x9')]=function(_0x58810e,_0x7d1448){return _0x58810e['define'](_0x408c('0xa'),attributes,{'tableName':_0x408c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7ad=['message','result','catch','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Condition,\x20%s,\x20%s','request\x20sent','debug','Condition,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x4c445a,_0x4ee80f){var _0x2f611c=function(_0x4f3699){while(--_0x4f3699){_0x4c445a['push'](_0x4c445a['shift']());}};_0x2f611c(++_0x4ee80f);}(_0xb7ad,0x145));var _0xdb7a=function(_0x449445,_0x45ccea){_0x449445=_0x449445-0x0;var _0x2b0677=_0xb7ad[_0x449445];return _0x2b0677;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xdb7a('0x0'));var rs=require(_0xdb7a('0x1'));var fs=require('fs');var Redis=require(_0xdb7a('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xdb7a('0x3'));var logger=require(_0xdb7a('0x4'))(_0xdb7a('0x5'));var config=require(_0xdb7a('0x6'));var jayson=require(_0xdb7a('0x7'));var client=jayson[_0xdb7a('0x8')][_0xdb7a('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3e1b59,_0x1447a5,_0x2fa28e){return new BPromise(function(_0x3fb7a9,_0x51488b){return client[_0xdb7a('0xa')](_0x3e1b59,_0x2fa28e)[_0xdb7a('0xb')](function(_0x16a6ab){logger[_0xdb7a('0xc')](_0xdb7a('0xd'),_0x1447a5,_0xdb7a('0xe'));logger[_0xdb7a('0xf')](_0xdb7a('0x10'),_0x1447a5,_0xdb7a('0xe'),JSON[_0xdb7a('0x11')](_0x16a6ab));if(_0x16a6ab[_0xdb7a('0x12')]){if(_0x16a6ab[_0xdb7a('0x12')][_0xdb7a('0x13')]===0x1f4){logger[_0xdb7a('0x12')](_0xdb7a('0xd'),_0x1447a5,_0x16a6ab[_0xdb7a('0x12')][_0xdb7a('0x14')]);return _0x51488b(_0x16a6ab[_0xdb7a('0x12')][_0xdb7a('0x14')]);}logger[_0xdb7a('0x12')]('Condition,\x20%s,\x20%s',_0x1447a5,_0x16a6ab[_0xdb7a('0x12')]['message']);return _0x3fb7a9(_0x16a6ab[_0xdb7a('0x12')]['message']);}else{logger[_0xdb7a('0xc')]('Condition,\x20%s,\x20%s',_0x1447a5,_0xdb7a('0xe'));_0x3fb7a9(_0x16a6ab[_0xdb7a('0x15')][_0xdb7a('0x14')]);}})[_0xdb7a('0x16')](function(_0x3631df){logger['error'](_0xdb7a('0xd'),_0x1447a5,_0x3631df);_0x51488b(_0x3631df);});});}
\ No newline at end of file
+var _0x6536=['info','Condition,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','lodash','util','randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then'];(function(_0x47b58b,_0x41a189){var _0x46bebe=function(_0x22bbfa){while(--_0x22bbfa){_0x47b58b['push'](_0x47b58b['shift']());}};_0x46bebe(++_0x41a189);}(_0x6536,0xf9));var _0x6653=function(_0x485e18,_0x8792ff){_0x485e18=_0x485e18-0x0;var _0x193f49=_0x6536[_0x485e18];return _0x193f49;};'use strict';var _=require(_0x6653('0x0'));var util=require(_0x6653('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x6653('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x6653('0x3'))(_0x6653('0x4'));var config=require(_0x6653('0x5'));var jayson=require(_0x6653('0x6'));var client=jayson[_0x6653('0x7')][_0x6653('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x8a8ac,_0x180551,_0x52c2af){return new BPromise(function(_0xea45ed,_0x1af55b){return client[_0x6653('0x9')](_0x8a8ac,_0x52c2af)[_0x6653('0xa')](function(_0x13642f){logger[_0x6653('0xb')](_0x6653('0xc'),_0x180551,_0x6653('0xd'));logger[_0x6653('0xe')]('Condition,\x20%s,\x20%s,\x20%s',_0x180551,_0x6653('0xd'),JSON[_0x6653('0xf')](_0x13642f));if(_0x13642f[_0x6653('0x10')]){if(_0x13642f[_0x6653('0x10')][_0x6653('0x11')]===0x1f4){logger[_0x6653('0x10')](_0x6653('0xc'),_0x180551,_0x13642f[_0x6653('0x10')][_0x6653('0x12')]);return _0x1af55b(_0x13642f[_0x6653('0x10')]['message']);}logger[_0x6653('0x10')]('Condition,\x20%s,\x20%s',_0x180551,_0x13642f[_0x6653('0x10')][_0x6653('0x12')]);return _0xea45ed(_0x13642f[_0x6653('0x10')]['message']);}else{logger[_0x6653('0xb')](_0x6653('0xc'),_0x180551,_0x6653('0xd'));_0xea45ed(_0x13642f[_0x6653('0x13')][_0x6653('0x12')]);}})['catch'](function(_0xa3b74f){logger[_0x6653('0x10')](_0x6653('0xc'),_0x180551,_0xa3b74f);_0x1af55b(_0xa3b74f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2015=['update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./condition.controller','put','/:id','isAuthenticated'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2015,0x193));var _0x5201=function(_0x562008,_0x3d6aff){_0x562008=_0x562008-0x0;var _0x46f3ba=_0x2015[_0x562008];return _0x46f3ba;};'use strict';var multer=require(_0x5201('0x0'));var util=require(_0x5201('0x1'));var path=require(_0x5201('0x2'));var timeout=require(_0x5201('0x3'));var express=require(_0x5201('0x4'));var router=express[_0x5201('0x5')]();var fs_extra=require(_0x5201('0x6'));var auth=require(_0x5201('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x5201('0x8'));var controller=require(_0x5201('0x9'));router[_0x5201('0xa')](_0x5201('0xb'),auth[_0x5201('0xc')](),controller[_0x5201('0xd')]);router[_0x5201('0xe')](_0x5201('0xb'),auth[_0x5201('0xc')](),controller[_0x5201('0xf')]);module['exports']=router;
\ No newline at end of file
+var _0xe7ec=['./condition.controller','put','/:id','isAuthenticated','update','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment'];(function(_0x3e5d6c,_0x2d5148){var _0x34449b=function(_0x26c2b9){while(--_0x26c2b9){_0x3e5d6c['push'](_0x3e5d6c['shift']());}};_0x34449b(++_0x2d5148);}(_0xe7ec,0x150));var _0xce7e=function(_0x564821,_0x4d037e){_0x564821=_0x564821-0x0;var _0x2b604d=_0xe7ec[_0x564821];return _0x2b604d;};'use strict';var multer=require(_0xce7e('0x0'));var util=require(_0xce7e('0x1'));var path=require(_0xce7e('0x2'));var timeout=require(_0xce7e('0x3'));var express=require(_0xce7e('0x4'));var router=express[_0xce7e('0x5')]();var fs_extra=require(_0xce7e('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0xce7e('0x7'));var config=require(_0xce7e('0x8'));var controller=require(_0xce7e('0x9'));router[_0xce7e('0xa')](_0xce7e('0xb'),auth[_0xce7e('0xc')](),controller[_0xce7e('0xd')]);router['delete'](_0xce7e('0xb'),auth[_0xce7e('0xc')](),controller[_0xce7e('0xe')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e7=['STRING','sequelize'];(function(_0x377a6e,_0x59b99d){var _0x37f751=function(_0x2ed25c){while(--_0x2ed25c){_0x377a6e['push'](_0x377a6e['shift']());}};_0x37f751(++_0x59b99d);}(_0xb7e7,0x121));var _0x7b7e=function(_0x1abb09,_0x18ee91){_0x1abb09=_0x1abb09-0x0;var _0xea1c07=_0xb7e7[_0x1abb09];return _0xea1c07;};'use strict';var Sequelize=require(_0x7b7e('0x0'));module['exports']={'name':{'type':Sequelize[_0x7b7e('0x1')],'allowNull':![],'unique':'name'},'description':{'type':Sequelize[_0x7b7e('0x1')]}};
\ No newline at end of file
+var _0xd8b0=['exports','sequelize'];(function(_0x178295,_0x27c3c4){var _0x4fa35b=function(_0x5c0e97){while(--_0x5c0e97){_0x178295['push'](_0x178295['shift']());}};_0x4fa35b(++_0x27c3c4);}(_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 _0x2c0e=['find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','clone','params','omit','createdAt','updatedAt','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','attrUrl','attrs','value','https://','attrPath','attrHourFormat','HH:mm:ss','0.00','attrFontSize','attrMetric','total','pie-chart','attrSerie1','attrSerie2','attrSerie3','attrVoiceQueues','reportType','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','addItem','DashboardId','getItems','findOne','DashboardItem','order','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','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','api','../../config/utils','../../config/environment','redis','defaults','localhost','./dashboard.socket','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','CustomDashboards','UserProfileResource','error','stack','send','index','map','Dashboard','rawAttributes','fieldName','type','key','model','name','keys','filters','intersection','query','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show'];(function(_0x570483,_0x48844f){var _0x4bc234=function(_0x33cf55){while(--_0x33cf55){_0x570483['push'](_0x570483['shift']());}};_0x4bc234(++_0x48844f);}(_0x2c0e,0x19b));var _0xe2c0=function(_0x503950,_0x5022eb){_0x503950=_0x503950-0x0;var _0x1657a9=_0x2c0e[_0x503950];return _0x1657a9;};'use strict';var emlformat=require(_0xe2c0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe2c0('0x1'));var jsonpatch=require(_0xe2c0('0x2'));var rp=require(_0xe2c0('0x3'));var moment=require('moment');var BPromise=require(_0xe2c0('0x4'));var Mustache=require(_0xe2c0('0x5'));var util=require(_0xe2c0('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xe2c0('0x7'));var ejs=require(_0xe2c0('0x8'));var fs=require('fs');var fs_extra=require(_0xe2c0('0x9'));var _=require(_0xe2c0('0xa'));var squel=require(_0xe2c0('0xb'));var crypto=require(_0xe2c0('0xc'));var jsforce=require(_0xe2c0('0xd'));var deskjs=require(_0xe2c0('0xe'));var toCsv=require('to-csv');var querystring=require(_0xe2c0('0xf'));var Papa=require(_0xe2c0('0x10'));var Redis=require(_0xe2c0('0x11'));var authService=require(_0xe2c0('0x12'));var qs=require(_0xe2c0('0x13'));var as=require(_0xe2c0('0x14'));var hardwareService=require(_0xe2c0('0x15'));var logger=require('../../config/logger')(_0xe2c0('0x16'));var utils=require(_0xe2c0('0x17'));var config=require(_0xe2c0('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xe2c0('0x19')]=_[_0xe2c0('0x1a')](config[_0xe2c0('0x19')],{'host':_0xe2c0('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xe2c0('0x1c'))[_0xe2c0('0x1d')](socket);function respondWithStatusCode(_0xa44f51,_0x4a19aa){_0x4a19aa=_0x4a19aa||0xcc;return function(_0x30b2b5){if(_0x30b2b5){return _0xa44f51[_0xe2c0('0x1e')](_0x4a19aa);}return _0xa44f51['status'](_0x4a19aa)['end']();};}function respondWithResult(_0x5c0a0b,_0x3edd9c){_0x3edd9c=_0x3edd9c||0xc8;return function(_0x547193){if(_0x547193){return _0x5c0a0b[_0xe2c0('0x1f')](_0x3edd9c)[_0xe2c0('0x20')](_0x547193);}};}function respondWithFilteredResult(_0x26921b,_0x42d5c9){return function(_0x31d830){if(_0x31d830){var _0x173b9c=typeof _0x42d5c9[_0xe2c0('0x21')]===_0xe2c0('0x22')&&typeof _0x42d5c9[_0xe2c0('0x23')]===_0xe2c0('0x22');var _0x24294c=_0x31d830[_0xe2c0('0x24')];var _0x530430=_0x173b9c?0x0:_0x42d5c9['offset'];var _0x204623=_0x173b9c?_0x31d830['count']:_0x42d5c9[_0xe2c0('0x21')]+_0x42d5c9[_0xe2c0('0x23')];var _0x780ed1;if(_0x204623>=_0x24294c){_0x204623=_0x24294c;_0x780ed1=0xc8;}else{_0x780ed1=0xce;}_0x26921b[_0xe2c0('0x1f')](_0x780ed1);return _0x26921b[_0xe2c0('0x25')](_0xe2c0('0x26'),_0x530430+'-'+_0x204623+'/'+_0x24294c)[_0xe2c0('0x20')](_0x31d830);}return null;};}function patchUpdates(_0x1b7e93){return function(_0x50c1c2){try{jsonpatch[_0xe2c0('0x27')](_0x50c1c2,_0x1b7e93,!![]);}catch(_0xafafe9){return BPromise[_0xe2c0('0x28')](_0xafafe9);}return _0x50c1c2[_0xe2c0('0x29')]();};}function saveUpdates(_0x8ba37a,_0x43d551){return function(_0x2ad4b9){if(_0x2ad4b9){return _0x2ad4b9[_0xe2c0('0x2a')](_0x8ba37a)[_0xe2c0('0x2b')](function(_0x17dc03){return _0x17dc03;});}return null;};}function removeEntity(_0x31973,_0x158c07){return function(_0x1a43e1){if(_0x1a43e1){return _0x1a43e1[_0xe2c0('0x2c')]()[_0xe2c0('0x2b')](function(){var _0x554b21=_0x1a43e1[_0xe2c0('0x2d')]({'plain':!![]});var _0x234416=_0xe2c0('0x2e');return db[_0xe2c0('0x2f')][_0xe2c0('0x2c')]({'where':{'type':_0x234416,'resourceId':_0x554b21['id']}})[_0xe2c0('0x2b')](function(){return _0x1a43e1;});})['then'](function(){_0x31973['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5c9cac,_0x454836){return function(_0x15721b){if(!_0x15721b){_0x5c9cac['sendStatus'](0x194);}return _0x15721b;};}function handleError(_0x567580,_0x237a28){_0x237a28=_0x237a28||0x1f4;return function(_0x3eaad3){logger[_0xe2c0('0x30')](_0x3eaad3[_0xe2c0('0x31')]);if(_0x3eaad3['name']){delete _0x3eaad3['name'];}_0x567580[_0xe2c0('0x1f')](_0x237a28)[_0xe2c0('0x32')](_0x3eaad3);};}exports[_0xe2c0('0x33')]=function(_0x1bd8b4,_0x165877){var _0xf1cc49={},_0x32ba96={},_0x5b9036={'count':0x0,'rows':[]};var _0x1d5aaa=_[_0xe2c0('0x34')](db[_0xe2c0('0x35')][_0xe2c0('0x36')],function(_0x22a415){return{'name':_0x22a415[_0xe2c0('0x37')],'type':_0x22a415[_0xe2c0('0x38')][_0xe2c0('0x39')]};});_0x32ba96[_0xe2c0('0x3a')]=_['map'](_0x1d5aaa,_0xe2c0('0x3b'));_0x32ba96['query']=_[_0xe2c0('0x3c')](_0x1bd8b4['query']);_0x32ba96[_0xe2c0('0x3d')]=_[_0xe2c0('0x3e')](_0x32ba96[_0xe2c0('0x3a')],_0x32ba96[_0xe2c0('0x3f')]);_0xf1cc49['attributes']=_[_0xe2c0('0x3e')](_0x32ba96['model'],qs[_0xe2c0('0x40')](_0x1bd8b4[_0xe2c0('0x3f')][_0xe2c0('0x40')]));_0xf1cc49['attributes']=_0xf1cc49[_0xe2c0('0x41')][_0xe2c0('0x42')]?_0xf1cc49['attributes']:_0x32ba96[_0xe2c0('0x3a')];if(!_0x1bd8b4['query'][_0xe2c0('0x43')](_0xe2c0('0x44'))){_0xf1cc49['limit']=qs['limit'](_0x1bd8b4[_0xe2c0('0x3f')][_0xe2c0('0x23')]);_0xf1cc49['offset']=qs['offset'](_0x1bd8b4[_0xe2c0('0x3f')]['offset']);}_0xf1cc49['order']=qs[_0xe2c0('0x45')](_0x1bd8b4[_0xe2c0('0x3f')][_0xe2c0('0x45')]);_0xf1cc49[_0xe2c0('0x46')]=qs[_0xe2c0('0x3d')](_[_0xe2c0('0x47')](_0x1bd8b4[_0xe2c0('0x3f')],_0x32ba96[_0xe2c0('0x3d')]),_0x1d5aaa);if(_0x1bd8b4[_0xe2c0('0x3f')][_0xe2c0('0x48')]){_0xf1cc49[_0xe2c0('0x46')]=_['merge'](_0xf1cc49[_0xe2c0('0x46')],{'$or':_['map'](_0x1d5aaa,function(_0x447d47){if(_0x447d47['type']!=='VIRTUAL'){var _0x47fb29={};_0x47fb29[_0x447d47[_0xe2c0('0x3b')]]={'$like':'%'+_0x1bd8b4[_0xe2c0('0x3f')][_0xe2c0('0x48')]+'%'};return _0x47fb29;}})});}_0xf1cc49=_[_0xe2c0('0x49')]({},_0xf1cc49,_0x1bd8b4[_0xe2c0('0x4a')]);var _0x1361ef={'where':_0xf1cc49['where']};return db[_0xe2c0('0x35')][_0xe2c0('0x24')](_0x1361ef)[_0xe2c0('0x2b')](function(_0x3fd528){_0x5b9036[_0xe2c0('0x24')]=_0x3fd528;if(_0x1bd8b4[_0xe2c0('0x3f')][_0xe2c0('0x4b')]){_0xf1cc49[_0xe2c0('0x4c')]=[{'all':!![]}];}return db['Dashboard'][_0xe2c0('0x4d')](_0xf1cc49);})[_0xe2c0('0x2b')](function(_0x2b7a76){_0x5b9036[_0xe2c0('0x4e')]=_0x2b7a76;return _0x5b9036;})[_0xe2c0('0x2b')](respondWithFilteredResult(_0x165877,_0xf1cc49))[_0xe2c0('0x4f')](handleError(_0x165877,null));};exports[_0xe2c0('0x50')]=function(_0x17eac2,_0x32fcb6){var _0x4407e7={'raw':![],'where':{'id':_0x17eac2['params']['id']}},_0x42b7d7={};_0x42b7d7[_0xe2c0('0x3a')]=_[_0xe2c0('0x3c')](db[_0xe2c0('0x35')][_0xe2c0('0x36')]);_0x42b7d7['query']=_['keys'](_0x17eac2[_0xe2c0('0x3f')]);_0x42b7d7[_0xe2c0('0x3d')]=_[_0xe2c0('0x3e')](_0x42b7d7[_0xe2c0('0x3a')],_0x42b7d7[_0xe2c0('0x3f')]);_0x4407e7[_0xe2c0('0x41')]=_[_0xe2c0('0x3e')](_0x42b7d7['model'],qs[_0xe2c0('0x40')](_0x17eac2[_0xe2c0('0x3f')][_0xe2c0('0x40')]));_0x4407e7['attributes']=_0x4407e7[_0xe2c0('0x41')][_0xe2c0('0x42')]?_0x4407e7[_0xe2c0('0x41')]:_0x42b7d7[_0xe2c0('0x3a')];if(_0x17eac2[_0xe2c0('0x3f')][_0xe2c0('0x4b')]){_0x4407e7['include']=[{'all':!![]}];}_0x4407e7=_[_0xe2c0('0x49')]({},_0x4407e7,_0x17eac2[_0xe2c0('0x4a')]);return db[_0xe2c0('0x35')][_0xe2c0('0x51')](_0x4407e7)['then'](handleEntityNotFound(_0x32fcb6,null))[_0xe2c0('0x2b')](respondWithResult(_0x32fcb6,null))[_0xe2c0('0x4f')](handleError(_0x32fcb6,null));};exports[_0xe2c0('0x52')]=function(_0x1f0aec,_0x24e859){return db[_0xe2c0('0x35')]['create'](_0x1f0aec[_0xe2c0('0x53')],{})[_0xe2c0('0x2b')](function(_0x13e8b4){var _0x367a6d=_0x1f0aec[_0xe2c0('0x54')][_0xe2c0('0x2d')]({'plain':!![]});if(!_0x367a6d)throw new Error(_0xe2c0('0x55'));if(_0x367a6d[_0xe2c0('0x56')]===_0xe2c0('0x54')){var _0x1c348e=_0x13e8b4['get']({'plain':!![]});var _0x293b27=_0xe2c0('0x2e');return db[_0xe2c0('0x57')]['find']({'where':{'name':_0x293b27,'userProfileId':_0x367a6d[_0xe2c0('0x58')]},'raw':!![]})[_0xe2c0('0x2b')](function(_0xca3a5f){if(_0xca3a5f&&_0xca3a5f[_0xe2c0('0x59')]===0x0){return db[_0xe2c0('0x2f')][_0xe2c0('0x52')]({'name':_0x1c348e[_0xe2c0('0x3b')],'resourceId':_0x1c348e['id'],'type':_0xca3a5f['name'],'sectionId':_0xca3a5f['id']},{})[_0xe2c0('0x2b')](function(){return _0x13e8b4;});}else{return _0x13e8b4;}})[_0xe2c0('0x4f')](function(_0x4ebfb2){logger[_0xe2c0('0x30')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4ebfb2);throw _0x4ebfb2;});}return _0x13e8b4;})[_0xe2c0('0x2b')](respondWithResult(_0x24e859,0xc9))[_0xe2c0('0x4f')](handleError(_0x24e859,null));};exports[_0xe2c0('0x5a')]=function(_0x834a9e,_0xb1d0d2){var _0x3b8c76={'where':{'id':_0x834a9e[_0xe2c0('0x5b')]['id']}},_0xaf38c3={};_0xaf38c3[_0xe2c0('0x3a')]=_[_0xe2c0('0x3c')](db[_0xe2c0('0x35')][_0xe2c0('0x36')]);_0x3b8c76[_0xe2c0('0x41')]=_['intersection'](_0xaf38c3[_0xe2c0('0x3a')],qs[_0xe2c0('0x40')](_0x834a9e[_0xe2c0('0x3f')][_0xe2c0('0x40')]));_0x3b8c76[_0xe2c0('0x41')]=_0x3b8c76[_0xe2c0('0x41')][_0xe2c0('0x42')]?_0x3b8c76['attributes']:_0xaf38c3['model'];if(_0x834a9e[_0xe2c0('0x3f')][_0xe2c0('0x4b')]){_0x3b8c76[_0xe2c0('0x4c')]=[{'all':!![]}];}_0x3b8c76=_[_0xe2c0('0x49')]({},_0x3b8c76,_0x834a9e['options']);return db['Dashboard'][_0xe2c0('0x51')](_0x3b8c76)[_0xe2c0('0x2b')](handleEntityNotFound(_0xb1d0d2,null))[_0xe2c0('0x2b')](function(_0x55f435){if(_0x55f435){var _0x34923f=_0x55f435[_0xe2c0('0x2d')]({'plain':!![]});_0x34923f=qs[_0xe2c0('0x5c')](_0x34923f,['id',_0xe2c0('0x5d'),_0xe2c0('0x5e')]);_0x834a9e[_0xe2c0('0x53')]=_[_0xe2c0('0x5c')](_0x834a9e[_0xe2c0('0x53')],['id','createdAt',_0xe2c0('0x5e')]);return db[_0xe2c0('0x35')][_0xe2c0('0x52')](_['merge'](_0x34923f,_0x834a9e['body']),{'include':_0x834a9e[_0xe2c0('0x3f')][_0xe2c0('0x4b')]?[{'all':!![]}]:undefined})[_0xe2c0('0x2b')](function(_0x35b6bc){var _0x58ece8=_0x834a9e[_0xe2c0('0x54')][_0xe2c0('0x2d')]({'plain':!![]});if(!_0x58ece8)throw new Error(_0xe2c0('0x55'));if(_0x58ece8[_0xe2c0('0x56')]===_0xe2c0('0x54')){var _0x3498f8=_0x35b6bc[_0xe2c0('0x2d')]({'plain':!![]});var _0x2a42c0='CustomDashboards';return db[_0xe2c0('0x57')][_0xe2c0('0x51')]({'where':{'name':_0x2a42c0,'userProfileId':_0x58ece8[_0xe2c0('0x58')]},'raw':!![]})['then'](function(_0x3cdeba){if(_0x3cdeba&&_0x3cdeba[_0xe2c0('0x59')]===0x0){return db[_0xe2c0('0x2f')][_0xe2c0('0x52')]({'name':_0x3498f8[_0xe2c0('0x3b')],'resourceId':_0x3498f8['id'],'type':_0x3cdeba[_0xe2c0('0x3b')],'sectionId':_0x3cdeba['id']},{})[_0xe2c0('0x2b')](function(){return _0x35b6bc;});}else{return _0x35b6bc;}})['catch'](function(_0x3b9d93){logger[_0xe2c0('0x30')](_0xe2c0('0x5f'),_0x3b9d93);throw _0x3b9d93;});}return _0x35b6bc;});}})[_0xe2c0('0x2b')](respondWithResult(_0xb1d0d2,0xc9))['catch'](handleError(_0xb1d0d2,null));};exports['update']=function(_0xfb1d58,_0x4460fc){if(_0xfb1d58[_0xe2c0('0x53')]['id']){delete _0xfb1d58['body']['id'];}return db[_0xe2c0('0x35')]['find']({'where':{'id':_0xfb1d58['params']['id']}})[_0xe2c0('0x2b')](handleEntityNotFound(_0x4460fc,null))[_0xe2c0('0x2b')](saveUpdates(_0xfb1d58[_0xe2c0('0x53')],null))['then'](respondWithResult(_0x4460fc,null))[_0xe2c0('0x4f')](handleError(_0x4460fc,null));};exports[_0xe2c0('0x2c')]=function(_0xd52103,_0x496b1d){return db['Dashboard'][_0xe2c0('0x51')]({'where':{'id':_0xd52103[_0xe2c0('0x5b')]['id']}})[_0xe2c0('0x2b')](handleEntityNotFound(_0x496b1d,null))[_0xe2c0('0x2b')](removeEntity(_0x496b1d,null))[_0xe2c0('0x4f')](handleError(_0x496b1d,null));};function widgetAttributes(_0x41361e){try{switch(_0x41361e['type']){case'iframe':return[{'name':_0xe2c0('0x60'),'value':_0x41361e[_0xe2c0('0x60')]||(_0x41361e[_0xe2c0('0x61')]&&_0x41361e[_0xe2c0('0x61')][0x0]?_0x41361e[_0xe2c0('0x61')][0x0][_0xe2c0('0x62')]:undefined)||_0xe2c0('0x63')}];case'custom':return[{'name':'attrPath','value':_0x41361e[_0xe2c0('0x64')]||(_0x41361e['attrs']&&_0x41361e[_0xe2c0('0x61')][0x0]?_0x41361e[_0xe2c0('0x61')][0x0][_0xe2c0('0x62')]:undefined)||''}];case'clock':return[{'name':_0xe2c0('0x65'),'value':_0x41361e[_0xe2c0('0x65')]||(_0x41361e['attrs']&&_0x41361e[_0xe2c0('0x61')][0x0]?_0x41361e[_0xe2c0('0x61')][0x0][_0xe2c0('0x62')]:undefined)||_0xe2c0('0x66')},{'name':'attrTimezone','value':_0x41361e['attrTimezone']||(_0x41361e[_0xe2c0('0x61')]&&_0x41361e[_0xe2c0('0x61')][0x1]?_0x41361e[_0xe2c0('0x61')][0x1]['value']:undefined)||_0xe2c0('0x67')},{'name':'attrFontSize','value':_0x41361e[_0xe2c0('0x68')]||(_0x41361e['attrs']&&_0x41361e['attrs'][0x2]?_0x41361e[_0xe2c0('0x61')][0x2][_0xe2c0('0x62')]:undefined)||0xc}];case'counter':return[{'name':_0xe2c0('0x69'),'value':_0x41361e[_0xe2c0('0x69')]||(_0x41361e[_0xe2c0('0x61')]&&_0x41361e[_0xe2c0('0x61')][0x0]?_0x41361e[_0xe2c0('0x61')][0x0][_0xe2c0('0x62')]:undefined)||_0xe2c0('0x6a')},{'name':'attrVoiceQueues','value':_0x41361e['attrVoiceQueues']||(_0x41361e['attrs']&&_0x41361e[_0xe2c0('0x61')][0x1]?_0x41361e[_0xe2c0('0x61')][0x1]['value']:undefined)||[]},{'name':_0xe2c0('0x68'),'value':_0x41361e[_0xe2c0('0x68')]||(_0x41361e['attrs']&&_0x41361e[_0xe2c0('0x61')][0x2]?_0x41361e[_0xe2c0('0x61')][0x2][_0xe2c0('0x62')]:undefined)||0x14}];case'multibar-chart':case _0xe2c0('0x6b'):return[{'name':'attrSerie1','value':_0x41361e[_0xe2c0('0x6c')]||(_0x41361e[_0xe2c0('0x61')]&&_0x41361e['attrs'][0x0]?_0x41361e['attrs'][0x0][_0xe2c0('0x62')]:undefined)||_0xe2c0('0x6a')},{'name':_0xe2c0('0x6d'),'value':_0x41361e[_0xe2c0('0x6d')]||(_0x41361e[_0xe2c0('0x61')]&&_0x41361e[_0xe2c0('0x61')][0x1]?_0x41361e['attrs'][0x1][_0xe2c0('0x62')]:undefined)||null},{'name':_0xe2c0('0x6e'),'value':_0x41361e[_0xe2c0('0x6e')]||(_0x41361e[_0xe2c0('0x61')]&&_0x41361e[_0xe2c0('0x61')][0x2]?_0x41361e['attrs'][0x2][_0xe2c0('0x62')]:undefined)||null},{'name':_0xe2c0('0x6f'),'value':_0x41361e[_0xe2c0('0x6f')]||(_0x41361e[_0xe2c0('0x61')]&&_0x41361e['attrs'][0x3]?_0x41361e[_0xe2c0('0x61')][0x3][_0xe2c0('0x62')]:undefined)||[]}];case'web-report':return[{'name':'attrReport','type':_0x41361e[_0xe2c0('0x70')]||(_0x41361e[_0xe2c0('0x61')]&&_0x41361e[_0xe2c0('0x61')][0x0]?_0x41361e[_0xe2c0('0x61')][0x0][_0xe2c0('0x38')]:undefined)||null,'value':_0x41361e[_0xe2c0('0x71')]||(_0x41361e['attrs']&&_0x41361e['attrs'][0x0]?_0x41361e[_0xe2c0('0x61')][0x0][_0xe2c0('0x62')]:undefined)||null},{'name':_0xe2c0('0x72'),'value':_0x41361e[_0xe2c0('0x72')]||(_0x41361e['attrs']&&_0x41361e[_0xe2c0('0x61')][0x1]?_0x41361e['attrs'][0x1][_0xe2c0('0x62')]:undefined)||0x0}];default:return[];}}catch(_0x32b7fb){logger['error'](_0xe2c0('0x73'),JSON[_0xe2c0('0x74')](_0x32b7fb));return[];}}exports[_0xe2c0('0x75')]=function(_0x26b68b,_0x3ba861,_0x4d6891){if(_0x26b68b[_0xe2c0('0x53')]['id']){delete _0x26b68b[_0xe2c0('0x53')]['id'];}return db['Dashboard'][_0xe2c0('0x51')]({'where':{'id':_0x26b68b[_0xe2c0('0x5b')]['id']}})['then'](handleEntityNotFound(_0x3ba861,null))['then'](function(_0x557c91){if(_0x557c91){_0x26b68b[_0xe2c0('0x53')][_0xe2c0('0x76')]=_0x557c91['id'];_0x26b68b[_0xe2c0('0x53')][_0xe2c0('0x61')]=widgetAttributes(_0x26b68b[_0xe2c0('0x53')]);return db['DashboardItem'][_0xe2c0('0x52')](_0x26b68b['body']);}})[_0xe2c0('0x2b')](respondWithResult(_0x3ba861,null))[_0xe2c0('0x4f')](handleError(_0x3ba861,null));};exports[_0xe2c0('0x77')]=function(_0x306754,_0x1fc807,_0x3aece6){var _0x44cd48={};var _0x527647={};var _0x39e636;var _0x503b51;return db[_0xe2c0('0x35')][_0xe2c0('0x78')]({'where':{'id':_0x306754[_0xe2c0('0x5b')]['id']}})[_0xe2c0('0x2b')](handleEntityNotFound(_0x1fc807,null))['then'](function(_0x4f89c4){if(_0x4f89c4){_0x39e636=_0x4f89c4;_0x527647[_0xe2c0('0x3a')]=_[_0xe2c0('0x3c')](db[_0xe2c0('0x79')]['rawAttributes']);_0x527647[_0xe2c0('0x3f')]=_[_0xe2c0('0x3c')](_0x306754['query']);_0x527647[_0xe2c0('0x3d')]=_[_0xe2c0('0x3e')](_0x527647[_0xe2c0('0x3a')],_0x527647[_0xe2c0('0x3f')]);_0x44cd48[_0xe2c0('0x41')]=_[_0xe2c0('0x3e')](_0x527647[_0xe2c0('0x3a')],qs[_0xe2c0('0x40')](_0x306754['query'][_0xe2c0('0x40')]));_0x44cd48[_0xe2c0('0x41')]=_0x44cd48[_0xe2c0('0x41')][_0xe2c0('0x42')]?_0x44cd48[_0xe2c0('0x41')]:_0x527647[_0xe2c0('0x3a')];_0x44cd48[_0xe2c0('0x7a')]=qs[_0xe2c0('0x45')](_0x306754['query'][_0xe2c0('0x45')]);_0x44cd48['where']=qs[_0xe2c0('0x3d')](_[_0xe2c0('0x47')](_0x306754[_0xe2c0('0x3f')],_0x527647[_0xe2c0('0x3d')]));if(_0x306754[_0xe2c0('0x3f')][_0xe2c0('0x48')]){_0x44cd48[_0xe2c0('0x46')]=_[_0xe2c0('0x49')](_0x44cd48[_0xe2c0('0x46')],{'$or':_[_0xe2c0('0x34')](_0x44cd48['attributes'],function(_0x1f0c1b){var _0x269b2f={};_0x269b2f[_0x1f0c1b]={'$like':'%'+_0x306754[_0xe2c0('0x3f')][_0xe2c0('0x48')]+'%'};return _0x269b2f;})});}_0x44cd48=_[_0xe2c0('0x49')]({},_0x44cd48,_0x306754['options']);return _0x39e636[_0xe2c0('0x77')](_0x44cd48);}})['then'](function(_0x158d9c){if(_0x158d9c){_0x503b51=_0x158d9c['length'];if(!_0x306754['query'][_0xe2c0('0x43')](_0xe2c0('0x44'))){_0x44cd48[_0xe2c0('0x23')]=qs[_0xe2c0('0x23')](_0x306754['query'][_0xe2c0('0x23')]);_0x44cd48[_0xe2c0('0x21')]=qs['offset'](_0x306754['query'][_0xe2c0('0x21')]);}return _0x39e636[_0xe2c0('0x77')](_0x44cd48);}})[_0xe2c0('0x2b')](function(_0x12538e){if(_0x12538e){return _0x12538e?{'count':_0x503b51,'rows':_0x12538e}:null;}})[_0xe2c0('0x2b')](respondWithResult(_0x1fc807,null))[_0xe2c0('0x4f')](handleError(_0x1fc807,null));};
\ No newline at end of file
+var _0xc4c8=['save','then','get','UserProfileResource','destroy','name','send','index','map','Dashboard','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','find','create','user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','params','include','createdAt','updatedAt','body','omit','CustomDashboards','iframe','attrUrl','attrs','value','https://','custom','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','web-report','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','addItem','DashboardId','DashboardItem','getItems','findOne','order','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','sox','fs-extra','squel','crypto','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./dashboard.socket','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','reject'];(function(_0x9cfe28,_0x1a335c){var _0x54a1d0=function(_0x46bc02){while(--_0x46bc02){_0x9cfe28['push'](_0x9cfe28['shift']());}};_0x54a1d0(++_0x1a335c);}(_0xc4c8,0x13e));var _0x8c4c=function(_0x430170,_0x4e9fd9){_0x430170=_0x430170-0x0;var _0x126913=_0xc4c8[_0x430170];return _0x126913;};'use strict';var emlformat=require(_0x8c4c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8c4c('0x1'));var jsonpatch=require(_0x8c4c('0x2'));var rp=require(_0x8c4c('0x3'));var moment=require(_0x8c4c('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x8c4c('0x5'));var util=require('util');var path=require('path');var sox=require(_0x8c4c('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8c4c('0x7'));var _=require('lodash');var squel=require(_0x8c4c('0x8'));var crypto=require(_0x8c4c('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x8c4c('0xa'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x8c4c('0xb'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8c4c('0xc'))(_0x8c4c('0xd'));var utils=require(_0x8c4c('0xe'));var config=require(_0x8c4c('0xf'));var licenseUtil=require(_0x8c4c('0x10'));var db=require(_0x8c4c('0x11'))['db'];config[_0x8c4c('0x12')]=_[_0x8c4c('0x13')](config[_0x8c4c('0x12')],{'host':_0x8c4c('0x14'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8c4c('0x12')]));require(_0x8c4c('0x15'))['register'](socket);function respondWithStatusCode(_0x3782c4,_0x11670a){_0x11670a=_0x11670a||0xcc;return function(_0x1bec09){if(_0x1bec09){return _0x3782c4[_0x8c4c('0x16')](_0x11670a);}return _0x3782c4['status'](_0x11670a)[_0x8c4c('0x17')]();};}function respondWithResult(_0x39bcad,_0x2a7c79){_0x2a7c79=_0x2a7c79||0xc8;return function(_0x5cf40b){if(_0x5cf40b){return _0x39bcad[_0x8c4c('0x18')](_0x2a7c79)[_0x8c4c('0x19')](_0x5cf40b);}};}function respondWithFilteredResult(_0x322508,_0x57db4f){return function(_0xcad323){if(_0xcad323){var _0x129e1f=typeof _0x57db4f[_0x8c4c('0x1a')]===_0x8c4c('0x1b')&&typeof _0x57db4f[_0x8c4c('0x1c')]===_0x8c4c('0x1b');var _0x431faf=_0xcad323['count'];var _0x1287a9=_0x129e1f?0x0:_0x57db4f[_0x8c4c('0x1a')];var _0x4e993d=_0x129e1f?_0xcad323[_0x8c4c('0x1d')]:_0x57db4f[_0x8c4c('0x1a')]+_0x57db4f[_0x8c4c('0x1c')];var _0x353646;if(_0x4e993d>=_0x431faf){_0x4e993d=_0x431faf;_0x353646=0xc8;}else{_0x353646=0xce;}_0x322508['status'](_0x353646);return _0x322508[_0x8c4c('0x1e')](_0x8c4c('0x1f'),_0x1287a9+'-'+_0x4e993d+'/'+_0x431faf)[_0x8c4c('0x19')](_0xcad323);}return null;};}function patchUpdates(_0x2c69a6){return function(_0x1e8468){try{jsonpatch['apply'](_0x1e8468,_0x2c69a6,!![]);}catch(_0x4e2c5f){return BPromise[_0x8c4c('0x20')](_0x4e2c5f);}return _0x1e8468[_0x8c4c('0x21')]();};}function saveUpdates(_0x45b879,_0x311aff){return function(_0x8c0d75){if(_0x8c0d75){return _0x8c0d75['update'](_0x45b879)[_0x8c4c('0x22')](function(_0x582840){return _0x582840;});}return null;};}function removeEntity(_0x5f4fb3,_0x236dc1){return function(_0x48a6c6){if(_0x48a6c6){return _0x48a6c6['destroy']()[_0x8c4c('0x22')](function(){var _0x3abf6a=_0x48a6c6[_0x8c4c('0x23')]({'plain':!![]});var _0x50fc7f='CustomDashboards';return db[_0x8c4c('0x24')][_0x8c4c('0x25')]({'where':{'type':_0x50fc7f,'resourceId':_0x3abf6a['id']}})['then'](function(){return _0x48a6c6;});})[_0x8c4c('0x22')](function(){_0x5f4fb3[_0x8c4c('0x18')](0xcc)[_0x8c4c('0x17')]();});}};}function handleEntityNotFound(_0x1fa43a,_0x440a24){return function(_0x336a9a){if(!_0x336a9a){_0x1fa43a['sendStatus'](0x194);}return _0x336a9a;};}function handleError(_0xb02cdf,_0xdb1392){_0xdb1392=_0xdb1392||0x1f4;return function(_0x2b6325){logger['error'](_0x2b6325['stack']);if(_0x2b6325[_0x8c4c('0x26')]){delete _0x2b6325['name'];}_0xb02cdf['status'](_0xdb1392)[_0x8c4c('0x27')](_0x2b6325);};}exports[_0x8c4c('0x28')]=function(_0x3b987b,_0x13705e){var _0x59e837={},_0x4ff7f6={},_0x4818dc={'count':0x0,'rows':[]};var _0x446caa=_[_0x8c4c('0x29')](db[_0x8c4c('0x2a')][_0x8c4c('0x2b')],function(_0x5e00f4){return{'name':_0x5e00f4[_0x8c4c('0x2c')],'type':_0x5e00f4[_0x8c4c('0x2d')][_0x8c4c('0x2e')]};});_0x4ff7f6[_0x8c4c('0x2f')]=_[_0x8c4c('0x29')](_0x446caa,_0x8c4c('0x26'));_0x4ff7f6[_0x8c4c('0x30')]=_[_0x8c4c('0x31')](_0x3b987b[_0x8c4c('0x30')]);_0x4ff7f6[_0x8c4c('0x32')]=_[_0x8c4c('0x33')](_0x4ff7f6['model'],_0x4ff7f6['query']);_0x59e837[_0x8c4c('0x34')]=_[_0x8c4c('0x33')](_0x4ff7f6[_0x8c4c('0x2f')],qs[_0x8c4c('0x35')](_0x3b987b[_0x8c4c('0x30')]['fields']));_0x59e837['attributes']=_0x59e837['attributes'][_0x8c4c('0x36')]?_0x59e837[_0x8c4c('0x34')]:_0x4ff7f6[_0x8c4c('0x2f')];if(!_0x3b987b['query'][_0x8c4c('0x37')](_0x8c4c('0x38'))){_0x59e837[_0x8c4c('0x1c')]=qs[_0x8c4c('0x1c')](_0x3b987b[_0x8c4c('0x30')]['limit']);_0x59e837[_0x8c4c('0x1a')]=qs[_0x8c4c('0x1a')](_0x3b987b[_0x8c4c('0x30')][_0x8c4c('0x1a')]);}_0x59e837['order']=qs[_0x8c4c('0x39')](_0x3b987b['query'][_0x8c4c('0x39')]);_0x59e837[_0x8c4c('0x3a')]=qs[_0x8c4c('0x32')](_[_0x8c4c('0x3b')](_0x3b987b['query'],_0x4ff7f6[_0x8c4c('0x32')]),_0x446caa);if(_0x3b987b[_0x8c4c('0x30')][_0x8c4c('0x3c')]){_0x59e837[_0x8c4c('0x3a')]=_['merge'](_0x59e837['where'],{'$or':_[_0x8c4c('0x29')](_0x446caa,function(_0x542808){if(_0x542808[_0x8c4c('0x2d')]!==_0x8c4c('0x3d')){var _0x50adfc={};_0x50adfc[_0x542808['name']]={'$like':'%'+_0x3b987b['query'][_0x8c4c('0x3c')]+'%'};return _0x50adfc;}})});}_0x59e837=_[_0x8c4c('0x3e')]({},_0x59e837,_0x3b987b[_0x8c4c('0x3f')]);var _0x47d307={'where':_0x59e837[_0x8c4c('0x3a')]};return db[_0x8c4c('0x2a')]['count'](_0x47d307)['then'](function(_0x57aea5){_0x4818dc['count']=_0x57aea5;if(_0x3b987b[_0x8c4c('0x30')][_0x8c4c('0x40')]){_0x59e837['include']=[{'all':!![]}];}return db[_0x8c4c('0x2a')][_0x8c4c('0x41')](_0x59e837);})[_0x8c4c('0x22')](function(_0x2b3e50){_0x4818dc[_0x8c4c('0x42')]=_0x2b3e50;return _0x4818dc;})[_0x8c4c('0x22')](respondWithFilteredResult(_0x13705e,_0x59e837))[_0x8c4c('0x43')](handleError(_0x13705e,null));};exports[_0x8c4c('0x44')]=function(_0x58b0ab,_0xd2fc3e){var _0xe75b1e={'raw':![],'where':{'id':_0x58b0ab['params']['id']}},_0x5c211a={};_0x5c211a[_0x8c4c('0x2f')]=_[_0x8c4c('0x31')](db[_0x8c4c('0x2a')][_0x8c4c('0x2b')]);_0x5c211a[_0x8c4c('0x30')]=_[_0x8c4c('0x31')](_0x58b0ab[_0x8c4c('0x30')]);_0x5c211a['filters']=_['intersection'](_0x5c211a[_0x8c4c('0x2f')],_0x5c211a['query']);_0xe75b1e[_0x8c4c('0x34')]=_[_0x8c4c('0x33')](_0x5c211a[_0x8c4c('0x2f')],qs[_0x8c4c('0x35')](_0x58b0ab[_0x8c4c('0x30')][_0x8c4c('0x35')]));_0xe75b1e[_0x8c4c('0x34')]=_0xe75b1e[_0x8c4c('0x34')]['length']?_0xe75b1e[_0x8c4c('0x34')]:_0x5c211a['model'];if(_0x58b0ab[_0x8c4c('0x30')][_0x8c4c('0x40')]){_0xe75b1e['include']=[{'all':!![]}];}_0xe75b1e=_[_0x8c4c('0x3e')]({},_0xe75b1e,_0x58b0ab['options']);return db[_0x8c4c('0x2a')][_0x8c4c('0x45')](_0xe75b1e)[_0x8c4c('0x22')](handleEntityNotFound(_0xd2fc3e,null))[_0x8c4c('0x22')](respondWithResult(_0xd2fc3e,null))[_0x8c4c('0x43')](handleError(_0xd2fc3e,null));};exports[_0x8c4c('0x46')]=function(_0x29434c,_0x5f4643){return db['Dashboard']['create'](_0x29434c['body'],{})[_0x8c4c('0x22')](function(_0x1913aa){var _0x5a6cca=_0x29434c[_0x8c4c('0x47')][_0x8c4c('0x23')]({'plain':!![]});if(!_0x5a6cca)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5a6cca[_0x8c4c('0x48')]===_0x8c4c('0x47')){var _0x163d61=_0x1913aa[_0x8c4c('0x23')]({'plain':!![]});var _0x1672f7='CustomDashboards';return db[_0x8c4c('0x49')]['find']({'where':{'name':_0x1672f7,'userProfileId':_0x5a6cca[_0x8c4c('0x4a')]},'raw':!![]})[_0x8c4c('0x22')](function(_0x1b0d59){if(_0x1b0d59&&_0x1b0d59[_0x8c4c('0x4b')]===0x0){return db['UserProfileResource'][_0x8c4c('0x46')]({'name':_0x163d61[_0x8c4c('0x26')],'resourceId':_0x163d61['id'],'type':_0x1b0d59['name'],'sectionId':_0x1b0d59['id']},{})[_0x8c4c('0x22')](function(){return _0x1913aa;});}else{return _0x1913aa;}})[_0x8c4c('0x43')](function(_0xd0f58d){logger[_0x8c4c('0x4c')](_0x8c4c('0x4d'),_0xd0f58d);throw _0xd0f58d;});}return _0x1913aa;})[_0x8c4c('0x22')](respondWithResult(_0x5f4643,0xc9))['catch'](handleError(_0x5f4643,null));};exports[_0x8c4c('0x4e')]=function(_0x406be2,_0x114f47){var _0x561e3c={'where':{'id':_0x406be2[_0x8c4c('0x4f')]['id']}},_0x4dd98a={};_0x4dd98a['model']=_['keys'](db[_0x8c4c('0x2a')]['rawAttributes']);_0x561e3c[_0x8c4c('0x34')]=_[_0x8c4c('0x33')](_0x4dd98a[_0x8c4c('0x2f')],qs[_0x8c4c('0x35')](_0x406be2[_0x8c4c('0x30')]['fields']));_0x561e3c[_0x8c4c('0x34')]=_0x561e3c[_0x8c4c('0x34')][_0x8c4c('0x36')]?_0x561e3c[_0x8c4c('0x34')]:_0x4dd98a[_0x8c4c('0x2f')];if(_0x406be2['query']['includeAll']){_0x561e3c[_0x8c4c('0x50')]=[{'all':!![]}];}_0x561e3c=_[_0x8c4c('0x3e')]({},_0x561e3c,_0x406be2[_0x8c4c('0x3f')]);return db[_0x8c4c('0x2a')]['find'](_0x561e3c)[_0x8c4c('0x22')](handleEntityNotFound(_0x114f47,null))[_0x8c4c('0x22')](function(_0x4da978){if(_0x4da978){var _0x193d22=_0x4da978[_0x8c4c('0x23')]({'plain':!![]});_0x193d22=qs['omit'](_0x193d22,['id',_0x8c4c('0x51'),_0x8c4c('0x52')]);_0x406be2[_0x8c4c('0x53')]=_[_0x8c4c('0x54')](_0x406be2[_0x8c4c('0x53')],['id',_0x8c4c('0x51'),_0x8c4c('0x52')]);return db[_0x8c4c('0x2a')]['create'](_['merge'](_0x193d22,_0x406be2[_0x8c4c('0x53')]),{'include':_0x406be2[_0x8c4c('0x30')][_0x8c4c('0x40')]?[{'all':!![]}]:undefined})[_0x8c4c('0x22')](function(_0x56f2b4){var _0x2cc5e9=_0x406be2[_0x8c4c('0x47')][_0x8c4c('0x23')]({'plain':!![]});if(!_0x2cc5e9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2cc5e9['role']===_0x8c4c('0x47')){var _0x2d1849=_0x56f2b4[_0x8c4c('0x23')]({'plain':!![]});var _0x40320b=_0x8c4c('0x55');return db[_0x8c4c('0x49')][_0x8c4c('0x45')]({'where':{'name':_0x40320b,'userProfileId':_0x2cc5e9[_0x8c4c('0x4a')]},'raw':!![]})['then'](function(_0x17f4b5){if(_0x17f4b5&&_0x17f4b5[_0x8c4c('0x4b')]===0x0){return db[_0x8c4c('0x24')][_0x8c4c('0x46')]({'name':_0x2d1849[_0x8c4c('0x26')],'resourceId':_0x2d1849['id'],'type':_0x17f4b5[_0x8c4c('0x26')],'sectionId':_0x17f4b5['id']},{})[_0x8c4c('0x22')](function(){return _0x56f2b4;});}else{return _0x56f2b4;}})[_0x8c4c('0x43')](function(_0x453d85){logger[_0x8c4c('0x4c')](_0x8c4c('0x4d'),_0x453d85);throw _0x453d85;});}return _0x56f2b4;});}})[_0x8c4c('0x22')](respondWithResult(_0x114f47,0xc9))[_0x8c4c('0x43')](handleError(_0x114f47,null));};exports['update']=function(_0x5d2a97,_0x11dfe2){if(_0x5d2a97['body']['id']){delete _0x5d2a97[_0x8c4c('0x53')]['id'];}return db[_0x8c4c('0x2a')][_0x8c4c('0x45')]({'where':{'id':_0x5d2a97[_0x8c4c('0x4f')]['id']}})[_0x8c4c('0x22')](handleEntityNotFound(_0x11dfe2,null))[_0x8c4c('0x22')](saveUpdates(_0x5d2a97[_0x8c4c('0x53')],null))[_0x8c4c('0x22')](respondWithResult(_0x11dfe2,null))['catch'](handleError(_0x11dfe2,null));};exports['destroy']=function(_0x129c00,_0x19c6c5){return db[_0x8c4c('0x2a')][_0x8c4c('0x45')]({'where':{'id':_0x129c00['params']['id']}})['then'](handleEntityNotFound(_0x19c6c5,null))[_0x8c4c('0x22')](removeEntity(_0x19c6c5,null))['catch'](handleError(_0x19c6c5,null));};function widgetAttributes(_0x3ff6e7){try{switch(_0x3ff6e7['type']){case _0x8c4c('0x56'):return[{'name':_0x8c4c('0x57'),'value':_0x3ff6e7[_0x8c4c('0x57')]||(_0x3ff6e7['attrs']&&_0x3ff6e7[_0x8c4c('0x58')][0x0]?_0x3ff6e7[_0x8c4c('0x58')][0x0][_0x8c4c('0x59')]:undefined)||_0x8c4c('0x5a')}];case _0x8c4c('0x5b'):return[{'name':'attrPath','value':_0x3ff6e7['attrPath']||(_0x3ff6e7[_0x8c4c('0x58')]&&_0x3ff6e7['attrs'][0x0]?_0x3ff6e7[_0x8c4c('0x58')][0x0][_0x8c4c('0x59')]:undefined)||''}];case _0x8c4c('0x5c'):return[{'name':_0x8c4c('0x5d'),'value':_0x3ff6e7[_0x8c4c('0x5d')]||(_0x3ff6e7[_0x8c4c('0x58')]&&_0x3ff6e7[_0x8c4c('0x58')][0x0]?_0x3ff6e7[_0x8c4c('0x58')][0x0][_0x8c4c('0x59')]:undefined)||_0x8c4c('0x5e')},{'name':_0x8c4c('0x5f'),'value':_0x3ff6e7[_0x8c4c('0x5f')]||(_0x3ff6e7['attrs']&&_0x3ff6e7[_0x8c4c('0x58')][0x1]?_0x3ff6e7['attrs'][0x1][_0x8c4c('0x59')]:undefined)||_0x8c4c('0x60')},{'name':_0x8c4c('0x61'),'value':_0x3ff6e7[_0x8c4c('0x61')]||(_0x3ff6e7['attrs']&&_0x3ff6e7['attrs'][0x2]?_0x3ff6e7['attrs'][0x2][_0x8c4c('0x59')]:undefined)||0xc}];case _0x8c4c('0x62'):return[{'name':_0x8c4c('0x63'),'value':_0x3ff6e7[_0x8c4c('0x63')]||(_0x3ff6e7[_0x8c4c('0x58')]&&_0x3ff6e7[_0x8c4c('0x58')][0x0]?_0x3ff6e7['attrs'][0x0]['value']:undefined)||_0x8c4c('0x64')},{'name':_0x8c4c('0x65'),'value':_0x3ff6e7[_0x8c4c('0x65')]||(_0x3ff6e7['attrs']&&_0x3ff6e7[_0x8c4c('0x58')][0x1]?_0x3ff6e7[_0x8c4c('0x58')][0x1]['value']:undefined)||[]},{'name':'attrFontSize','value':_0x3ff6e7['attrFontSize']||(_0x3ff6e7[_0x8c4c('0x58')]&&_0x3ff6e7[_0x8c4c('0x58')][0x2]?_0x3ff6e7['attrs'][0x2][_0x8c4c('0x59')]:undefined)||0x14}];case _0x8c4c('0x66'):case _0x8c4c('0x67'):return[{'name':_0x8c4c('0x68'),'value':_0x3ff6e7[_0x8c4c('0x68')]||(_0x3ff6e7[_0x8c4c('0x58')]&&_0x3ff6e7[_0x8c4c('0x58')][0x0]?_0x3ff6e7['attrs'][0x0]['value']:undefined)||_0x8c4c('0x64')},{'name':_0x8c4c('0x69'),'value':_0x3ff6e7[_0x8c4c('0x69')]||(_0x3ff6e7['attrs']&&_0x3ff6e7[_0x8c4c('0x58')][0x1]?_0x3ff6e7[_0x8c4c('0x58')][0x1][_0x8c4c('0x59')]:undefined)||null},{'name':'attrSerie3','value':_0x3ff6e7['attrSerie3']||(_0x3ff6e7[_0x8c4c('0x58')]&&_0x3ff6e7[_0x8c4c('0x58')][0x2]?_0x3ff6e7[_0x8c4c('0x58')][0x2][_0x8c4c('0x59')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x3ff6e7[_0x8c4c('0x65')]||(_0x3ff6e7[_0x8c4c('0x58')]&&_0x3ff6e7['attrs'][0x3]?_0x3ff6e7[_0x8c4c('0x58')][0x3][_0x8c4c('0x59')]:undefined)||[]}];case _0x8c4c('0x6a'):return[{'name':_0x8c4c('0x6b'),'type':_0x3ff6e7['reportType']||(_0x3ff6e7[_0x8c4c('0x58')]&&_0x3ff6e7[_0x8c4c('0x58')][0x0]?_0x3ff6e7[_0x8c4c('0x58')][0x0][_0x8c4c('0x2d')]:undefined)||null,'value':_0x3ff6e7[_0x8c4c('0x6b')]||(_0x3ff6e7[_0x8c4c('0x58')]&&_0x3ff6e7[_0x8c4c('0x58')][0x0]?_0x3ff6e7[_0x8c4c('0x58')][0x0][_0x8c4c('0x59')]:undefined)||null},{'name':_0x8c4c('0x6c'),'value':_0x3ff6e7[_0x8c4c('0x6c')]||(_0x3ff6e7['attrs']&&_0x3ff6e7[_0x8c4c('0x58')][0x1]?_0x3ff6e7['attrs'][0x1][_0x8c4c('0x59')]:undefined)||0x0}];default:return[];}}catch(_0x3eca3a){logger['error'](_0x8c4c('0x6d'),JSON[_0x8c4c('0x6e')](_0x3eca3a));return[];}}exports[_0x8c4c('0x6f')]=function(_0x2d6b3e,_0x126c16,_0x19813a){if(_0x2d6b3e[_0x8c4c('0x53')]['id']){delete _0x2d6b3e[_0x8c4c('0x53')]['id'];}return db['Dashboard']['find']({'where':{'id':_0x2d6b3e['params']['id']}})[_0x8c4c('0x22')](handleEntityNotFound(_0x126c16,null))[_0x8c4c('0x22')](function(_0xb65b3a){if(_0xb65b3a){_0x2d6b3e[_0x8c4c('0x53')][_0x8c4c('0x70')]=_0xb65b3a['id'];_0x2d6b3e[_0x8c4c('0x53')][_0x8c4c('0x58')]=widgetAttributes(_0x2d6b3e['body']);return db[_0x8c4c('0x71')]['create'](_0x2d6b3e[_0x8c4c('0x53')]);}})['then'](respondWithResult(_0x126c16,null))[_0x8c4c('0x43')](handleError(_0x126c16,null));};exports[_0x8c4c('0x72')]=function(_0x11a87b,_0xde98ce,_0x18a4af){var _0x5518eb={};var _0x5d428b={};var _0x425fad;var _0x52171b;return db['Dashboard'][_0x8c4c('0x73')]({'where':{'id':_0x11a87b['params']['id']}})['then'](handleEntityNotFound(_0xde98ce,null))[_0x8c4c('0x22')](function(_0x4fdbdd){if(_0x4fdbdd){_0x425fad=_0x4fdbdd;_0x5d428b[_0x8c4c('0x2f')]=_[_0x8c4c('0x31')](db[_0x8c4c('0x71')][_0x8c4c('0x2b')]);_0x5d428b[_0x8c4c('0x30')]=_[_0x8c4c('0x31')](_0x11a87b['query']);_0x5d428b[_0x8c4c('0x32')]=_[_0x8c4c('0x33')](_0x5d428b[_0x8c4c('0x2f')],_0x5d428b[_0x8c4c('0x30')]);_0x5518eb['attributes']=_[_0x8c4c('0x33')](_0x5d428b[_0x8c4c('0x2f')],qs[_0x8c4c('0x35')](_0x11a87b[_0x8c4c('0x30')][_0x8c4c('0x35')]));_0x5518eb[_0x8c4c('0x34')]=_0x5518eb[_0x8c4c('0x34')][_0x8c4c('0x36')]?_0x5518eb[_0x8c4c('0x34')]:_0x5d428b[_0x8c4c('0x2f')];_0x5518eb[_0x8c4c('0x74')]=qs[_0x8c4c('0x39')](_0x11a87b[_0x8c4c('0x30')][_0x8c4c('0x39')]);_0x5518eb[_0x8c4c('0x3a')]=qs[_0x8c4c('0x32')](_['pick'](_0x11a87b['query'],_0x5d428b[_0x8c4c('0x32')]));if(_0x11a87b['query'][_0x8c4c('0x3c')]){_0x5518eb['where']=_[_0x8c4c('0x3e')](_0x5518eb[_0x8c4c('0x3a')],{'$or':_['map'](_0x5518eb[_0x8c4c('0x34')],function(_0x20301e){var _0x396b0b={};_0x396b0b[_0x20301e]={'$like':'%'+_0x11a87b[_0x8c4c('0x30')][_0x8c4c('0x3c')]+'%'};return _0x396b0b;})});}_0x5518eb=_[_0x8c4c('0x3e')]({},_0x5518eb,_0x11a87b[_0x8c4c('0x3f')]);return _0x425fad[_0x8c4c('0x72')](_0x5518eb);}})[_0x8c4c('0x22')](function(_0x1c822a){if(_0x1c822a){_0x52171b=_0x1c822a[_0x8c4c('0x36')];if(!_0x11a87b[_0x8c4c('0x30')][_0x8c4c('0x37')](_0x8c4c('0x38'))){_0x5518eb[_0x8c4c('0x1c')]=qs[_0x8c4c('0x1c')](_0x11a87b[_0x8c4c('0x30')][_0x8c4c('0x1c')]);_0x5518eb[_0x8c4c('0x1a')]=qs[_0x8c4c('0x1a')](_0x11a87b[_0x8c4c('0x30')][_0x8c4c('0x1a')]);}return _0x425fad['getItems'](_0x5518eb);}})[_0x8c4c('0x22')](function(_0x37cbf9){if(_0x37cbf9){return _0x37cbf9?{'count':_0x52171b,'rows':_0x37cbf9}:null;}})[_0x8c4c('0x22')](respondWithResult(_0xde98ce,null))[_0x8c4c('0x43')](handleError(_0xde98ce,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x885b=['Dashboard','save','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb'];(function(_0x1bfc7b,_0x360a77){var _0x3004cf=function(_0x3dde42){while(--_0x3dde42){_0x1bfc7b['push'](_0x1bfc7b['shift']());}};_0x3004cf(++_0x360a77);}(_0x885b,0x6a));var _0xb885=function(_0x56778a,_0xf4ffb3){_0x56778a=_0x56778a-0x0;var _0x2356ef=_0x885b[_0x56778a];return _0x2356ef;};'use strict';var EventEmitter=require(_0xb885('0x0'));var Dashboard=require(_0xb885('0x1'))['db'][_0xb885('0x2')];var DashboardEvents=new EventEmitter();DashboardEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xb885('0x3'),'afterUpdate':'update','afterDestroy':_0xb885('0x4')};function emitEvent(_0x589317){return function(_0x35e26f,_0x4bec7e,_0x4fe6cd){DashboardEvents['emit'](_0x589317+':'+_0x35e26f['id'],_0x35e26f);DashboardEvents[_0xb885('0x5')](_0x589317,_0x35e26f);_0x4fe6cd(null);};}for(var e in events){if(events[_0xb885('0x6')](e)){var event=events[e];Dashboard[_0xb885('0x7')](e,emitEvent(event));}}module[_0xb885('0x8')]=DashboardEvents;
\ No newline at end of file
+var _0xc387=['setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','Dashboard'];(function(_0x2c7975,_0x66dbbb){var _0x78299e=function(_0x7314f8){while(--_0x7314f8){_0x2c7975['push'](_0x2c7975['shift']());}};_0x78299e(++_0x66dbbb);}(_0xc387,0x128));var _0x7c38=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xc387[_0x14add3];return _0x4a174f;};'use strict';var EventEmitter=require('events');var Dashboard=require('../../mysqldb')['db'][_0x7c38('0x0')];var DashboardEvents=new EventEmitter();DashboardEvents[_0x7c38('0x1')](0x0);var events={'afterCreate':_0x7c38('0x2'),'afterUpdate':_0x7c38('0x3'),'afterDestroy':_0x7c38('0x4')};function emitEvent(_0x5dc4b1){return function(_0x56b428,_0x1df709,_0x678893){DashboardEvents[_0x7c38('0x5')](_0x5dc4b1+':'+_0x56b428['id'],_0x56b428);DashboardEvents[_0x7c38('0x5')](_0x5dc4b1,_0x56b428);_0x678893(null);};}for(var e in events){if(events[_0x7c38('0x6')](e)){var event=events[e];Dashboard[_0x7c38('0x7')](e,emitEvent(event));}}module[_0x7c38('0x8')]=DashboardEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c2f=['rimraf','../../config/environment','./dashboard.attributes','define','dashboards','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x14031c,_0x3c31cd){var _0x2d1f49=function(_0x3b8d8a){while(--_0x3b8d8a){_0x14031c['push'](_0x14031c['shift']());}};_0x2d1f49(++_0x3c31cd);}(_0x9c2f,0x1c8));var _0xf9c2=function(_0x4c3a4e,_0x34ddca){_0x4c3a4e=_0x4c3a4e-0x0;var _0x39a6a3=_0x9c2f[_0x4c3a4e];return _0x39a6a3;};'use strict';var _=require('lodash');var util=require(_0xf9c2('0x0'));var logger=require(_0xf9c2('0x1'))(_0xf9c2('0x2'));var moment=require(_0xf9c2('0x3'));var BPromise=require(_0xf9c2('0x4'));var rp=require(_0xf9c2('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xf9c2('0x6'));var config=require(_0xf9c2('0x7'));var attributes=require(_0xf9c2('0x8'));module['exports']=function(_0x114c9c,_0x4e5ee7){return _0x114c9c[_0xf9c2('0x9')]('Dashboard',attributes,{'tableName':_0xf9c2('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x173c=['define','Dashboard','lodash','util','../../config/logger','api','moment','bluebird','rimraf','../../config/environment','./dashboard.attributes','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x173c,0xf2));var _0xc173=function(_0xe7bd0a,_0xd166e8){_0xe7bd0a=_0xe7bd0a-0x0;var _0x5901b0=_0x173c[_0xe7bd0a];return _0x5901b0;};'use strict';var _=require(_0xc173('0x0'));var util=require(_0xc173('0x1'));var logger=require(_0xc173('0x2'))(_0xc173('0x3'));var moment=require(_0xc173('0x4'));var BPromise=require(_0xc173('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xc173('0x6'));var config=require(_0xc173('0x7'));var attributes=require(_0xc173('0x8'));module[_0xc173('0x9')]=function(_0x5a0bbd,_0x5a7804){return _0x5a0bbd[_0xc173('0xa')](_0xc173('0xb'),attributes,{'tableName':'dashboards','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x465c=['code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','localhost','./dashboard.socket','register','request','then','info','Dashboard,\x20%s,\x20%s','request\x20sent','debug','Dashboard,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x3b1191,_0x5d40ed){var _0x4b55c3=function(_0x1efb0b){while(--_0x1efb0b){_0x3b1191['push'](_0x3b1191['shift']());}};_0x4b55c3(++_0x5d40ed);}(_0x465c,0xb2));var _0xc465=function(_0x4c7f7b,_0x457df3){_0x4c7f7b=_0x4c7f7b-0x0;var _0x1c7cfe=_0x465c[_0x4c7f7b];return _0x1c7cfe;};'use strict';var _=require(_0xc465('0x0'));var util=require(_0xc465('0x1'));var moment=require(_0xc465('0x2'));var BPromise=require(_0xc465('0x3'));var rs=require(_0xc465('0x4'));var fs=require('fs');var Redis=require(_0xc465('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xc465('0x6'));var logger=require(_0xc465('0x7'))(_0xc465('0x8'));var config=require(_0xc465('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xc465('0xa')][_0xc465('0xb')]({'port':0x232a});config[_0xc465('0xc')]=_['defaults'](config[_0xc465('0xc')],{'host':_0xc465('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xc465('0xe'))[_0xc465('0xf')](socket);function respondWithRpcPromise(_0x185ef8,_0x17463d,_0x2a8344){return new BPromise(function(_0x10878c,_0x1c30e6){return client[_0xc465('0x10')](_0x185ef8,_0x2a8344)[_0xc465('0x11')](function(_0x4bf1d1){logger[_0xc465('0x12')](_0xc465('0x13'),_0x17463d,_0xc465('0x14'));logger[_0xc465('0x15')](_0xc465('0x16'),_0x17463d,_0xc465('0x14'),JSON[_0xc465('0x17')](_0x4bf1d1));if(_0x4bf1d1[_0xc465('0x18')]){if(_0x4bf1d1[_0xc465('0x18')][_0xc465('0x19')]===0x1f4){logger[_0xc465('0x18')](_0xc465('0x13'),_0x17463d,_0x4bf1d1['error'][_0xc465('0x1a')]);return _0x1c30e6(_0x4bf1d1['error']['message']);}logger[_0xc465('0x18')](_0xc465('0x13'),_0x17463d,_0x4bf1d1[_0xc465('0x18')][_0xc465('0x1a')]);return _0x10878c(_0x4bf1d1['error'][_0xc465('0x1a')]);}else{logger[_0xc465('0x12')](_0xc465('0x13'),_0x17463d,_0xc465('0x14'));_0x10878c(_0x4bf1d1[_0xc465('0x1b')][_0xc465('0x1a')]);}})[_0xc465('0x1c')](function(_0x4d7569){logger[_0xc465('0x18')](_0xc465('0x13'),_0x17463d,_0x4d7569);_0x1c30e6(_0x4d7569);});});}
\ No newline at end of file
+var _0x1d0f=['error','code','message','info','result','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./dashboard.socket','register','request','then','Dashboard,\x20%s,\x20%s','request\x20sent','Dashboard,\x20%s,\x20%s,\x20%s'];(function(_0x2c45f7,_0x14e99e){var _0x14e48b=function(_0x57854e){while(--_0x57854e){_0x2c45f7['push'](_0x2c45f7['shift']());}};_0x14e48b(++_0x14e99e);}(_0x1d0f,0x1c5));var _0xf1d0=function(_0x436f0a,_0x26573e){_0x436f0a=_0x436f0a-0x0;var _0xbd3230=_0x1d0f[_0x436f0a];return _0xbd3230;};'use strict';var _=require(_0xf1d0('0x0'));var util=require(_0xf1d0('0x1'));var moment=require(_0xf1d0('0x2'));var BPromise=require(_0xf1d0('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf1d0('0x4'));var db=require(_0xf1d0('0x5'))['db'];var utils=require(_0xf1d0('0x6'));var logger=require(_0xf1d0('0x7'))(_0xf1d0('0x8'));var config=require('../../config/environment');var jayson=require(_0xf1d0('0x9'));var client=jayson[_0xf1d0('0xa')][_0xf1d0('0xb')]({'port':0x232a});config[_0xf1d0('0xc')]=_[_0xf1d0('0xd')](config[_0xf1d0('0xc')],{'host':_0xf1d0('0xe'),'port':0x18eb});var socket=require(_0xf1d0('0xf'))(new Redis(config[_0xf1d0('0xc')]));require(_0xf1d0('0x10'))[_0xf1d0('0x11')](socket);function respondWithRpcPromise(_0x2c111a,_0x3043dd,_0x53e836){return new BPromise(function(_0x45fde6,_0x128921){return client[_0xf1d0('0x12')](_0x2c111a,_0x53e836)[_0xf1d0('0x13')](function(_0x49243f){logger['info'](_0xf1d0('0x14'),_0x3043dd,_0xf1d0('0x15'));logger['debug'](_0xf1d0('0x16'),_0x3043dd,_0xf1d0('0x15'),JSON['stringify'](_0x49243f));if(_0x49243f[_0xf1d0('0x17')]){if(_0x49243f['error'][_0xf1d0('0x18')]===0x1f4){logger[_0xf1d0('0x17')](_0xf1d0('0x14'),_0x3043dd,_0x49243f[_0xf1d0('0x17')]['message']);return _0x128921(_0x49243f[_0xf1d0('0x17')]['message']);}logger[_0xf1d0('0x17')](_0xf1d0('0x14'),_0x3043dd,_0x49243f[_0xf1d0('0x17')]['message']);return _0x45fde6(_0x49243f['error'][_0xf1d0('0x19')]);}else{logger[_0xf1d0('0x1a')]('Dashboard,\x20%s,\x20%s',_0x3043dd,_0xf1d0('0x15'));_0x45fde6(_0x49243f[_0xf1d0('0x1b')][_0xf1d0('0x19')]);}})['catch'](function(_0x13e5dc){logger['error'](_0xf1d0('0x14'),_0x3043dd,_0x13e5dc);_0x128921(_0x13e5dc);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2e49=['removeListener','register','length','dashboard:','save','remove','update','emit'];(function(_0x255d5b,_0x4f6f35){var _0x3e141a=function(_0x249ee2){while(--_0x249ee2){_0x255d5b['push'](_0x255d5b['shift']());}};_0x3e141a(++_0x4f6f35);}(_0x2e49,0x184));var _0x92e4=function(_0x3bc898,_0x5efdcf){_0x3bc898=_0x3bc898-0x0;var _0x302d39=_0x2e49[_0x3bc898];return _0x302d39;};'use strict';var DashboardEvents=require('./dashboard.events');var events=[_0x92e4('0x0'),_0x92e4('0x1'),_0x92e4('0x2')];function createListener(_0x2c5f95,_0x2f668b){return function(_0xeab173){_0x2f668b[_0x92e4('0x3')](_0x2c5f95,_0xeab173);};}function removeListener(_0xb657c2,_0x307b7c){return function(){DashboardEvents[_0x92e4('0x4')](_0xb657c2,_0x307b7c);};}exports[_0x92e4('0x5')]=function(_0x454c1a){for(var _0x44ce0f=0x0,_0x13490e=events[_0x92e4('0x6')];_0x44ce0f<_0x13490e;_0x44ce0f++){var _0x3eb4c1=events[_0x44ce0f];var _0x54676f=createListener(_0x92e4('0x7')+_0x3eb4c1,_0x454c1a);DashboardEvents['on'](_0x3eb4c1,_0x54676f);}};
\ No newline at end of file
+var _0x0ecc=['emit','register','length','dashboard:','./dashboard.events','save','remove'];(function(_0xc03391,_0x4d56df){var _0xe361bf=function(_0x289330){while(--_0x289330){_0xc03391['push'](_0xc03391['shift']());}};_0xe361bf(++_0x4d56df);}(_0x0ecc,0xf2));var _0xc0ec=function(_0x1ba24e,_0x1f6ed6){_0x1ba24e=_0x1ba24e-0x0;var _0x4356a3=_0x0ecc[_0x1ba24e];return _0x4356a3;};'use strict';var DashboardEvents=require(_0xc0ec('0x0'));var events=[_0xc0ec('0x1'),_0xc0ec('0x2'),'update'];function createListener(_0x1c5f5c,_0x1f5812){return function(_0x1e0b3b){_0x1f5812[_0xc0ec('0x3')](_0x1c5f5c,_0x1e0b3b);};}function removeListener(_0x5a6376,_0x459127){return function(){DashboardEvents['removeListener'](_0x5a6376,_0x459127);};}exports[_0xc0ec('0x4')]=function(_0x487daf){for(var _0x38b551=0x0,_0x2bb5bd=events[_0xc0ec('0x5')];_0x38b551<_0x2bb5bd;_0x38b551++){var _0x5b46b8=events[_0x38b551];var _0x355b03=createListener(_0xc0ec('0x6')+_0x5b46b8,_0x487daf);DashboardEvents['on'](_0x5b46b8,_0x355b03);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc71f=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./dashboard.controller','get','isAuthenticated','index','show','/:id/items','getItems','post','create','/:id/clone','clone','addItem','put','/:id','update','delete','destroy','exports','multer','util','connect-timeout'];(function(_0x4a6102,_0xedf422){var _0x416650=function(_0x4be9ec){while(--_0x4be9ec){_0x4a6102['push'](_0x4a6102['shift']());}};_0x416650(++_0xedf422);}(_0xc71f,0xcd));var _0xfc71=function(_0x523212,_0x437cc3){_0x523212=_0x523212-0x0;var _0x38c3b2=_0xc71f[_0x523212];return _0x38c3b2;};'use strict';var multer=require(_0xfc71('0x0'));var util=require(_0xfc71('0x1'));var path=require('path');var timeout=require(_0xfc71('0x2'));var express=require(_0xfc71('0x3'));var router=express[_0xfc71('0x4')]();var fs_extra=require(_0xfc71('0x5'));var auth=require(_0xfc71('0x6'));var interaction=require(_0xfc71('0x7'));var config=require('../../config/environment');var controller=require(_0xfc71('0x8'));router[_0xfc71('0x9')]('/',auth[_0xfc71('0xa')](),controller[_0xfc71('0xb')]);router['get']('/:id',auth['isAuthenticated'](),controller[_0xfc71('0xc')]);router[_0xfc71('0x9')](_0xfc71('0xd'),auth['isAuthenticated'](),controller[_0xfc71('0xe')]);router[_0xfc71('0xf')]('/',auth[_0xfc71('0xa')](),controller[_0xfc71('0x10')]);router[_0xfc71('0xf')](_0xfc71('0x11'),auth[_0xfc71('0xa')](),controller[_0xfc71('0x12')]);router[_0xfc71('0xf')](_0xfc71('0xd'),auth[_0xfc71('0xa')](),controller[_0xfc71('0x13')]);router[_0xfc71('0x14')](_0xfc71('0x15'),auth[_0xfc71('0xa')](),controller[_0xfc71('0x16')]);router[_0xfc71('0x17')](_0xfc71('0x15'),auth[_0xfc71('0xa')](),controller[_0xfc71('0x18')]);module[_0xfc71('0x19')]=router;
\ No newline at end of file
+var _0xad88=['put','delete','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','./dashboard.controller','get','isAuthenticated','index','/:id','show','/:id/items','create','clone','post','addItem'];(function(_0x21092d,_0x142920){var _0x543018=function(_0x3db396){while(--_0x3db396){_0x21092d['push'](_0x21092d['shift']());}};_0x543018(++_0x142920);}(_0xad88,0x13e));var _0x8ad8=function(_0x2faddb,_0xc18b78){_0x2faddb=_0x2faddb-0x0;var _0x273c05=_0xad88[_0x2faddb];return _0x273c05;};'use strict';var multer=require(_0x8ad8('0x0'));var util=require(_0x8ad8('0x1'));var path=require('path');var timeout=require(_0x8ad8('0x2'));var express=require(_0x8ad8('0x3'));var router=express[_0x8ad8('0x4')]();var fs_extra=require(_0x8ad8('0x5'));var auth=require(_0x8ad8('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x8ad8('0x7'));router[_0x8ad8('0x8')]('/',auth[_0x8ad8('0x9')](),controller[_0x8ad8('0xa')]);router[_0x8ad8('0x8')](_0x8ad8('0xb'),auth[_0x8ad8('0x9')](),controller[_0x8ad8('0xc')]);router[_0x8ad8('0x8')](_0x8ad8('0xd'),auth['isAuthenticated'](),controller['getItems']);router['post']('/',auth[_0x8ad8('0x9')](),controller[_0x8ad8('0xe')]);router['post']('/:id/clone',auth[_0x8ad8('0x9')](),controller[_0x8ad8('0xf')]);router[_0x8ad8('0x10')]('/:id/items',auth[_0x8ad8('0x9')](),controller[_0x8ad8('0x11')]);router[_0x8ad8('0x12')](_0x8ad8('0xb'),auth[_0x8ad8('0x9')](),controller['update']);router[_0x8ad8('0x13')]('/:id',auth[_0x8ad8('0x9')](),controller['destroy']);module[_0x8ad8('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2542=['exports','STRING','long','parse','getDataValue','attrs','setDataValue','stringify','INTEGER','#ffffff','#2196f3','sequelize','squel','lodash'];(function(_0x5bc75a,_0x38ce5c){var _0x51abb3=function(_0x2622c0){while(--_0x2622c0){_0x5bc75a['push'](_0x5bc75a['shift']());}};_0x51abb3(++_0x38ce5c);}(_0x2542,0x169));var _0x2254=function(_0x5b469f,_0x4a22fb){_0x5b469f=_0x5b469f-0x0;var _0x8e623=_0x2542[_0x5b469f];return _0x8e623;};'use strict';var Sequelize=require(_0x2254('0x0'));var squel=require(_0x2254('0x1'));var _=require(_0x2254('0x2'));module[_0x2254('0x3')]={'title':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x2254('0x4')](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize['TEXT'](_0x2254('0x5')),'get':function(){try{return JSON[_0x2254('0x6')](this[_0x2254('0x7')](_0x2254('0x8')));}catch(_0x76c902){return[];}},'set':function(_0x508183){try{this[_0x2254('0x9')](_0x2254('0x8'),JSON[_0x2254('0xa')](_0x508183));}catch(_0x3c45ec){this[_0x2254('0x9')](_0x2254('0x8'),JSON[_0x2254('0xa')]([]));}}},'sizeX':{'type':Sequelize[_0x2254('0xb')],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize[_0x2254('0xb')],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize[_0x2254('0xb')]},'col':{'type':Sequelize[_0x2254('0xb')]},'background':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x2254('0xc'),'validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize[_0x2254('0x4')],'allowNull':![],'defaultValue':_0x2254('0xd'),'validate':{'notEmpty':!![]}},'link':{'type':Sequelize[_0x2254('0x4')]},'titleFontSize':{'type':Sequelize['INTEGER'],'defaultValue':0xc}};
\ No newline at end of file
+var _0x4c60=['attrs','setDataValue','stringify','INTEGER','#ffffff','#2196f3','sequelize','squel','lodash','exports','STRING'];(function(_0x4ffab7,_0x2790ea){var _0x2857cc=function(_0x40d7ac){while(--_0x40d7ac){_0x4ffab7['push'](_0x4ffab7['shift']());}};_0x2857cc(++_0x2790ea);}(_0x4c60,0xc1));var _0x04c6=function(_0x3fef39,_0x1e4923){_0x3fef39=_0x3fef39-0x0;var _0x1147ea=_0x4c60[_0x3fef39];return _0x1147ea;};'use strict';var Sequelize=require(_0x04c6('0x0'));var squel=require(_0x04c6('0x1'));var _=require(_0x04c6('0x2'));module[_0x04c6('0x3')]={'title':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x04c6('0x4')](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize['TEXT']('long'),'get':function(){try{return JSON['parse'](this['getDataValue'](_0x04c6('0x5')));}catch(_0xc6e772){return[];}},'set':function(_0x2054da){try{this[_0x04c6('0x6')](_0x04c6('0x5'),JSON[_0x04c6('0x7')](_0x2054da));}catch(_0x8f9b13){this['setDataValue'](_0x04c6('0x5'),JSON[_0x04c6('0x7')]([]));}}},'sizeX':{'type':Sequelize[_0x04c6('0x8')],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize[_0x04c6('0x8')],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize['INTEGER']},'col':{'type':Sequelize['INTEGER']},'background':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x04c6('0x9'),'validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x04c6('0xa'),'validate':{'notEmpty':!![]}},'link':{'type':Sequelize[_0x04c6('0x4')]},'titleFontSize':{'type':Sequelize['INTEGER'],'defaultValue':0xc}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb001=['fields','length','includeAll','include','merge','options','DashboardItem','find','catch','params','type','iframe','attrUrl','attrs','value','attrPath','clock','attrHourFormat','HH:mm:ss','0.00','attrFontSize','counter','attrMetric','attrVoiceQueues','pie-chart','attrSerie1','total','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','stringify','create','body','eml-format','zip-dir','fast-json-patch','bluebird','mustache','path','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','register','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','update','then','destroy','stack','name','send','show','model','keys','rawAttributes','query','filters','intersection','attributes'];(function(_0x50cfb3,_0xc73be6){var _0x35d439=function(_0x38786f){while(--_0x38786f){_0x50cfb3['push'](_0x50cfb3['shift']());}};_0x35d439(++_0xc73be6);}(_0xb001,0x7a));var _0x1b00=function(_0x4b055c,_0x4b870b){_0x4b055c=_0x4b055c-0x0;var _0x4b62bb=_0xb001[_0x4b055c];return _0x4b62bb;};'use strict';var emlformat=require(_0x1b00('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1b00('0x1'));var jsonpatch=require(_0x1b00('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x1b00('0x3'));var Mustache=require(_0x1b00('0x4'));var util=require('util');var path=require(_0x1b00('0x5'));var sox=require(_0x1b00('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1b00('0x7'));var squel=require(_0x1b00('0x8'));var crypto=require(_0x1b00('0x9'));var jsforce=require(_0x1b00('0xa'));var deskjs=require(_0x1b00('0xb'));var toCsv=require(_0x1b00('0xc'));var querystring=require(_0x1b00('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x1b00('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x1b00('0xf'));var hardwareService=require(_0x1b00('0x10'));var logger=require('../../config/logger')(_0x1b00('0x11'));var utils=require(_0x1b00('0x12'));var config=require(_0x1b00('0x13'));var licenseUtil=require(_0x1b00('0x14'));var db=require(_0x1b00('0x15'))['db'];config[_0x1b00('0x16')]=_[_0x1b00('0x17')](config[_0x1b00('0x16')],{'host':'localhost','port':0x18eb});var socket=require(_0x1b00('0x18'))(new Redis(config['redis']));require('./dashboardItem.socket')[_0x1b00('0x19')](socket);function respondWithStatusCode(_0x4fdaa5,_0x463cf3){_0x463cf3=_0x463cf3||0xcc;return function(_0x135eee){if(_0x135eee){return _0x4fdaa5[_0x1b00('0x1a')](_0x463cf3);}return _0x4fdaa5[_0x1b00('0x1b')](_0x463cf3)[_0x1b00('0x1c')]();};}function respondWithResult(_0x3de75b,_0x54fe19){_0x54fe19=_0x54fe19||0xc8;return function(_0x293a20){if(_0x293a20){return _0x3de75b[_0x1b00('0x1b')](_0x54fe19)[_0x1b00('0x1d')](_0x293a20);}};}function respondWithFilteredResult(_0xf4104c,_0x4023e6){return function(_0x45304a){if(_0x45304a){var _0x5f2ba8=typeof _0x4023e6['offset']==='undefined'&&typeof _0x4023e6[_0x1b00('0x1e')]===_0x1b00('0x1f');var _0x32a0ef=_0x45304a[_0x1b00('0x20')];var _0x3d29ef=_0x5f2ba8?0x0:_0x4023e6['offset'];var _0x53453c=_0x5f2ba8?_0x45304a[_0x1b00('0x20')]:_0x4023e6[_0x1b00('0x21')]+_0x4023e6['limit'];var _0x2c5ed9;if(_0x53453c>=_0x32a0ef){_0x53453c=_0x32a0ef;_0x2c5ed9=0xc8;}else{_0x2c5ed9=0xce;}_0xf4104c[_0x1b00('0x1b')](_0x2c5ed9);return _0xf4104c[_0x1b00('0x22')](_0x1b00('0x23'),_0x3d29ef+'-'+_0x53453c+'/'+_0x32a0ef)[_0x1b00('0x1d')](_0x45304a);}return null;};}function patchUpdates(_0x5edd3b){return function(_0x39e87b){try{jsonpatch[_0x1b00('0x24')](_0x39e87b,_0x5edd3b,!![]);}catch(_0x26572f){return BPromise[_0x1b00('0x25')](_0x26572f);}return _0x39e87b['save']();};}function saveUpdates(_0x1a6794,_0x3a06e0){return function(_0x57625f){if(_0x57625f){return _0x57625f[_0x1b00('0x26')](_0x1a6794)[_0x1b00('0x27')](function(_0x385045){return _0x385045;});}return null;};}function removeEntity(_0xea6897,_0x3d79de){return function(_0x43ea7b){if(_0x43ea7b){return _0x43ea7b[_0x1b00('0x28')]()[_0x1b00('0x27')](function(){_0xea6897['status'](0xcc)[_0x1b00('0x1c')]();});}};}function handleEntityNotFound(_0x910e81,_0x4efd84){return function(_0x589788){if(!_0x589788){_0x910e81[_0x1b00('0x1a')](0x194);}return _0x589788;};}function handleError(_0x42f9c3,_0x1ce6f6){_0x1ce6f6=_0x1ce6f6||0x1f4;return function(_0x4d5bc5){logger['error'](_0x4d5bc5[_0x1b00('0x29')]);if(_0x4d5bc5[_0x1b00('0x2a')]){delete _0x4d5bc5['name'];}_0x42f9c3[_0x1b00('0x1b')](_0x1ce6f6)[_0x1b00('0x2b')](_0x4d5bc5);};}exports[_0x1b00('0x2c')]=function(_0x5e0f07,_0x17fa8e){var _0x15d898={'raw':![],'where':{'id':_0x5e0f07['params']['id']}},_0x484722={};_0x484722[_0x1b00('0x2d')]=_[_0x1b00('0x2e')](db['DashboardItem'][_0x1b00('0x2f')]);_0x484722[_0x1b00('0x30')]=_[_0x1b00('0x2e')](_0x5e0f07[_0x1b00('0x30')]);_0x484722[_0x1b00('0x31')]=_[_0x1b00('0x32')](_0x484722[_0x1b00('0x2d')],_0x484722[_0x1b00('0x30')]);_0x15d898[_0x1b00('0x33')]=_['intersection'](_0x484722[_0x1b00('0x2d')],qs['fields'](_0x5e0f07['query'][_0x1b00('0x34')]));_0x15d898['attributes']=_0x15d898['attributes'][_0x1b00('0x35')]?_0x15d898[_0x1b00('0x33')]:_0x484722[_0x1b00('0x2d')];if(_0x5e0f07['query'][_0x1b00('0x36')]){_0x15d898[_0x1b00('0x37')]=[{'all':!![]}];}_0x15d898=_[_0x1b00('0x38')]({},_0x15d898,_0x5e0f07[_0x1b00('0x39')]);return db[_0x1b00('0x3a')][_0x1b00('0x3b')](_0x15d898)['then'](handleEntityNotFound(_0x17fa8e,null))[_0x1b00('0x27')](respondWithResult(_0x17fa8e,null))[_0x1b00('0x3c')](handleError(_0x17fa8e,null));};exports['destroy']=function(_0x4ca734,_0x4b6701){return db[_0x1b00('0x3a')][_0x1b00('0x3b')]({'where':{'id':_0x4ca734[_0x1b00('0x3d')]['id']}})[_0x1b00('0x27')](handleEntityNotFound(_0x4b6701,null))[_0x1b00('0x27')](removeEntity(_0x4b6701,null))['catch'](handleError(_0x4b6701,null));};function widgetAttributes(_0x2e02d4){try{switch(_0x2e02d4[_0x1b00('0x3e')]){case _0x1b00('0x3f'):return[{'name':_0x1b00('0x40'),'value':_0x2e02d4[_0x1b00('0x40')]||(_0x2e02d4[_0x1b00('0x41')]&&_0x2e02d4[_0x1b00('0x41')][0x0]?_0x2e02d4[_0x1b00('0x41')][0x0][_0x1b00('0x42')]:undefined)||'https://'}];case'custom':return[{'name':_0x1b00('0x43'),'value':_0x2e02d4['attrPath']||(_0x2e02d4[_0x1b00('0x41')]&&_0x2e02d4['attrs'][0x0]?_0x2e02d4['attrs'][0x0][_0x1b00('0x42')]:undefined)||''}];case _0x1b00('0x44'):return[{'name':_0x1b00('0x45'),'value':_0x2e02d4[_0x1b00('0x45')]||(_0x2e02d4[_0x1b00('0x41')]&&_0x2e02d4[_0x1b00('0x41')][0x0]?_0x2e02d4[_0x1b00('0x41')][0x0][_0x1b00('0x42')]:undefined)||_0x1b00('0x46')},{'name':'attrTimezone','value':_0x2e02d4['attrTimezone']||(_0x2e02d4[_0x1b00('0x41')]&&_0x2e02d4[_0x1b00('0x41')][0x1]?_0x2e02d4['attrs'][0x1][_0x1b00('0x42')]:undefined)||_0x1b00('0x47')},{'name':_0x1b00('0x48'),'value':_0x2e02d4[_0x1b00('0x48')]||(_0x2e02d4[_0x1b00('0x41')]&&_0x2e02d4[_0x1b00('0x41')][0x2]?_0x2e02d4[_0x1b00('0x41')][0x2]['value']:undefined)||0xc}];case _0x1b00('0x49'):return[{'name':_0x1b00('0x4a'),'value':_0x2e02d4[_0x1b00('0x4a')]||(_0x2e02d4[_0x1b00('0x41')]&&_0x2e02d4[_0x1b00('0x41')][0x0]?_0x2e02d4[_0x1b00('0x41')][0x0]['value']:undefined)||'total'},{'name':_0x1b00('0x4b'),'value':_0x2e02d4['attrVoiceQueues']||(_0x2e02d4[_0x1b00('0x41')]&&_0x2e02d4[_0x1b00('0x41')][0x1]?_0x2e02d4[_0x1b00('0x41')][0x1][_0x1b00('0x42')]:undefined)||[]},{'name':_0x1b00('0x48'),'value':_0x2e02d4[_0x1b00('0x48')]||(_0x2e02d4[_0x1b00('0x41')]&&_0x2e02d4[_0x1b00('0x41')][0x2]?_0x2e02d4[_0x1b00('0x41')][0x2]['value']:undefined)||0x14}];case'multibar-chart':case _0x1b00('0x4c'):return[{'name':'attrSerie1','value':_0x2e02d4[_0x1b00('0x4d')]||(_0x2e02d4[_0x1b00('0x41')]&&_0x2e02d4[_0x1b00('0x41')][0x0]?_0x2e02d4[_0x1b00('0x41')][0x0][_0x1b00('0x42')]:undefined)||_0x1b00('0x4e')},{'name':_0x1b00('0x4f'),'value':_0x2e02d4[_0x1b00('0x4f')]||(_0x2e02d4[_0x1b00('0x41')]&&_0x2e02d4['attrs'][0x1]?_0x2e02d4[_0x1b00('0x41')][0x1][_0x1b00('0x42')]:undefined)||null},{'name':_0x1b00('0x50'),'value':_0x2e02d4['attrSerie3']||(_0x2e02d4[_0x1b00('0x41')]&&_0x2e02d4[_0x1b00('0x41')][0x2]?_0x2e02d4[_0x1b00('0x41')][0x2]['value']:undefined)||null},{'name':_0x1b00('0x4b'),'value':_0x2e02d4[_0x1b00('0x4b')]||(_0x2e02d4['attrs']&&_0x2e02d4['attrs'][0x3]?_0x2e02d4[_0x1b00('0x41')][0x3][_0x1b00('0x42')]:undefined)||[]}];case _0x1b00('0x51'):return[{'name':_0x1b00('0x52'),'type':_0x2e02d4['reportType']||(_0x2e02d4['attrs']&&_0x2e02d4[_0x1b00('0x41')][0x0]?_0x2e02d4[_0x1b00('0x41')][0x0][_0x1b00('0x3e')]:undefined)||null,'value':_0x2e02d4[_0x1b00('0x52')]||(_0x2e02d4[_0x1b00('0x41')]&&_0x2e02d4[_0x1b00('0x41')][0x0]?_0x2e02d4[_0x1b00('0x41')][0x0]['value']:undefined)||null},{'name':_0x1b00('0x53'),'value':_0x2e02d4[_0x1b00('0x53')]||(_0x2e02d4['attrs']&&_0x2e02d4[_0x1b00('0x41')][0x1]?_0x2e02d4['attrs'][0x1][_0x1b00('0x42')]:undefined)||0x0}];default:return[];}}catch(_0x2d6f1c){logger['error']('widgetAttributes:\x20%s',JSON[_0x1b00('0x54')](_0x2d6f1c));return[];}}exports[_0x1b00('0x55')]=function(_0x45d4b3,_0x261597){if(_0x45d4b3[_0x1b00('0x56')]){_0x45d4b3[_0x1b00('0x56')][_0x1b00('0x41')]=widgetAttributes(_0x45d4b3[_0x1b00('0x56')]);}return db[_0x1b00('0x3a')][_0x1b00('0x55')](_0x45d4b3[_0x1b00('0x56')],{})[_0x1b00('0x27')](respondWithResult(_0x261597,0xc9))['catch'](handleError(_0x261597,null));};exports[_0x1b00('0x26')]=function(_0x4e7802,_0x3324cb){if(_0x4e7802[_0x1b00('0x56')]['id']){delete _0x4e7802[_0x1b00('0x56')]['id'];}_0x4e7802[_0x1b00('0x56')][_0x1b00('0x41')]=widgetAttributes(_0x4e7802[_0x1b00('0x56')]);return db[_0x1b00('0x3a')][_0x1b00('0x3b')]({'where':{'id':_0x4e7802[_0x1b00('0x3d')]['id']}})[_0x1b00('0x27')](handleEntityNotFound(_0x3324cb,null))[_0x1b00('0x27')](saveUpdates(_0x4e7802[_0x1b00('0x56')],null))[_0x1b00('0x27')](respondWithResult(_0x3324cb,null))[_0x1b00('0x3c')](handleError(_0x3324cb,null));};
\ No newline at end of file
+var _0x4b8a=['attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','rimraf','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/environment','../../config/license/util','defaults','localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','offset','count','limit','set','Content-Range','json','apply','reject','update','then','destroy','error','stack','name','send','show','params','model','keys','rawAttributes','query','attributes','intersection','fields','length','includeAll','include','merge','options','DashboardItem','catch','find','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone'];(function(_0x1b3d60,_0x51583b){var _0x4abc3d=function(_0x5c9acb){while(--_0x5c9acb){_0x1b3d60['push'](_0x1b3d60['shift']());}};_0x4abc3d(++_0x51583b);}(_0x4b8a,0xd3));var _0xa4b8=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0x4b8a[_0x167cc1];return _0x10bc4b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa4b8('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa4b8('0x1'));var rp=require(_0xa4b8('0x2'));var moment=require(_0xa4b8('0x3'));var BPromise=require(_0xa4b8('0x4'));var Mustache=require(_0xa4b8('0x5'));var util=require(_0xa4b8('0x6'));var path=require(_0xa4b8('0x7'));var sox=require(_0xa4b8('0x8'));var csv=require(_0xa4b8('0x9'));var ejs=require(_0xa4b8('0xa'));var fs=require('fs');var fs_extra=require(_0xa4b8('0xb'));var _=require(_0xa4b8('0xc'));var squel=require(_0xa4b8('0xd'));var crypto=require(_0xa4b8('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xa4b8('0xf'));var toCsv=require(_0xa4b8('0x9'));var querystring=require(_0xa4b8('0x10'));var Papa=require(_0xa4b8('0x11'));var Redis=require(_0xa4b8('0x12'));var authService=require(_0xa4b8('0x13'));var qs=require(_0xa4b8('0x14'));var as=require(_0xa4b8('0x15'));var hardwareService=require(_0xa4b8('0x16'));var logger=require(_0xa4b8('0x17'))(_0xa4b8('0x18'));var utils=require(_0xa4b8('0x19'));var config=require(_0xa4b8('0x1a'));var licenseUtil=require(_0xa4b8('0x1b'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xa4b8('0x1c')](config['redis'],{'host':_0xa4b8('0x1d'),'port':0x18eb});var socket=require(_0xa4b8('0x1e'))(new Redis(config['redis']));require(_0xa4b8('0x1f'))[_0xa4b8('0x20')](socket);function respondWithStatusCode(_0x1c8369,_0x17c3be){_0x17c3be=_0x17c3be||0xcc;return function(_0x28bcdd){if(_0x28bcdd){return _0x1c8369[_0xa4b8('0x21')](_0x17c3be);}return _0x1c8369[_0xa4b8('0x22')](_0x17c3be)[_0xa4b8('0x23')]();};}function respondWithResult(_0x2fd884,_0x48fda9){_0x48fda9=_0x48fda9||0xc8;return function(_0x4c5b32){if(_0x4c5b32){return _0x2fd884[_0xa4b8('0x22')](_0x48fda9)['json'](_0x4c5b32);}};}function respondWithFilteredResult(_0x315df1,_0x3dc7a4){return function(_0x215cdf){if(_0x215cdf){var _0x2b7f3a=typeof _0x3dc7a4[_0xa4b8('0x24')]==='undefined'&&typeof _0x3dc7a4['limit']==='undefined';var _0x518134=_0x215cdf[_0xa4b8('0x25')];var _0xe11af1=_0x2b7f3a?0x0:_0x3dc7a4[_0xa4b8('0x24')];var _0x3e728c=_0x2b7f3a?_0x215cdf[_0xa4b8('0x25')]:_0x3dc7a4[_0xa4b8('0x24')]+_0x3dc7a4[_0xa4b8('0x26')];var _0x10534b;if(_0x3e728c>=_0x518134){_0x3e728c=_0x518134;_0x10534b=0xc8;}else{_0x10534b=0xce;}_0x315df1[_0xa4b8('0x22')](_0x10534b);return _0x315df1[_0xa4b8('0x27')](_0xa4b8('0x28'),_0xe11af1+'-'+_0x3e728c+'/'+_0x518134)[_0xa4b8('0x29')](_0x215cdf);}return null;};}function patchUpdates(_0x144e62){return function(_0x3e218d){try{jsonpatch[_0xa4b8('0x2a')](_0x3e218d,_0x144e62,!![]);}catch(_0xeb5ae1){return BPromise[_0xa4b8('0x2b')](_0xeb5ae1);}return _0x3e218d['save']();};}function saveUpdates(_0x27530c,_0x1f3c4b){return function(_0x5e2f85){if(_0x5e2f85){return _0x5e2f85[_0xa4b8('0x2c')](_0x27530c)[_0xa4b8('0x2d')](function(_0x5b0257){return _0x5b0257;});}return null;};}function removeEntity(_0x58b94d,_0x4cd363){return function(_0xc17660){if(_0xc17660){return _0xc17660[_0xa4b8('0x2e')]()[_0xa4b8('0x2d')](function(){_0x58b94d[_0xa4b8('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3ff3de,_0x1508fe){return function(_0x175c5d){if(!_0x175c5d){_0x3ff3de[_0xa4b8('0x21')](0x194);}return _0x175c5d;};}function handleError(_0x4aa5af,_0x1f715e){_0x1f715e=_0x1f715e||0x1f4;return function(_0x4475eb){logger[_0xa4b8('0x2f')](_0x4475eb[_0xa4b8('0x30')]);if(_0x4475eb[_0xa4b8('0x31')]){delete _0x4475eb[_0xa4b8('0x31')];}_0x4aa5af[_0xa4b8('0x22')](_0x1f715e)[_0xa4b8('0x32')](_0x4475eb);};}exports[_0xa4b8('0x33')]=function(_0x3dbc1c,_0x41f627){var _0x127d1d={'raw':![],'where':{'id':_0x3dbc1c[_0xa4b8('0x34')]['id']}},_0x513aa8={};_0x513aa8[_0xa4b8('0x35')]=_[_0xa4b8('0x36')](db['DashboardItem'][_0xa4b8('0x37')]);_0x513aa8[_0xa4b8('0x38')]=_['keys'](_0x3dbc1c['query']);_0x513aa8['filters']=_['intersection'](_0x513aa8[_0xa4b8('0x35')],_0x513aa8['query']);_0x127d1d[_0xa4b8('0x39')]=_[_0xa4b8('0x3a')](_0x513aa8[_0xa4b8('0x35')],qs['fields'](_0x3dbc1c[_0xa4b8('0x38')][_0xa4b8('0x3b')]));_0x127d1d[_0xa4b8('0x39')]=_0x127d1d[_0xa4b8('0x39')][_0xa4b8('0x3c')]?_0x127d1d['attributes']:_0x513aa8[_0xa4b8('0x35')];if(_0x3dbc1c[_0xa4b8('0x38')][_0xa4b8('0x3d')]){_0x127d1d[_0xa4b8('0x3e')]=[{'all':!![]}];}_0x127d1d=_[_0xa4b8('0x3f')]({},_0x127d1d,_0x3dbc1c[_0xa4b8('0x40')]);return db[_0xa4b8('0x41')]['find'](_0x127d1d)[_0xa4b8('0x2d')](handleEntityNotFound(_0x41f627,null))[_0xa4b8('0x2d')](respondWithResult(_0x41f627,null))[_0xa4b8('0x42')](handleError(_0x41f627,null));};exports[_0xa4b8('0x2e')]=function(_0x29f28b,_0x4c236c){return db[_0xa4b8('0x41')][_0xa4b8('0x43')]({'where':{'id':_0x29f28b[_0xa4b8('0x34')]['id']}})[_0xa4b8('0x2d')](handleEntityNotFound(_0x4c236c,null))['then'](removeEntity(_0x4c236c,null))['catch'](handleError(_0x4c236c,null));};function widgetAttributes(_0x1204b3){try{switch(_0x1204b3[_0xa4b8('0x44')]){case _0xa4b8('0x45'):return[{'name':_0xa4b8('0x46'),'value':_0x1204b3[_0xa4b8('0x46')]||(_0x1204b3[_0xa4b8('0x47')]&&_0x1204b3[_0xa4b8('0x47')][0x0]?_0x1204b3[_0xa4b8('0x47')][0x0][_0xa4b8('0x48')]:undefined)||_0xa4b8('0x49')}];case _0xa4b8('0x4a'):return[{'name':_0xa4b8('0x4b'),'value':_0x1204b3[_0xa4b8('0x4b')]||(_0x1204b3[_0xa4b8('0x47')]&&_0x1204b3['attrs'][0x0]?_0x1204b3[_0xa4b8('0x47')][0x0]['value']:undefined)||''}];case _0xa4b8('0x4c'):return[{'name':_0xa4b8('0x4d'),'value':_0x1204b3['attrHourFormat']||(_0x1204b3['attrs']&&_0x1204b3[_0xa4b8('0x47')][0x0]?_0x1204b3[_0xa4b8('0x47')][0x0][_0xa4b8('0x48')]:undefined)||_0xa4b8('0x4e')},{'name':_0xa4b8('0x4f'),'value':_0x1204b3[_0xa4b8('0x4f')]||(_0x1204b3['attrs']&&_0x1204b3[_0xa4b8('0x47')][0x1]?_0x1204b3[_0xa4b8('0x47')][0x1][_0xa4b8('0x48')]:undefined)||'0.00'},{'name':_0xa4b8('0x50'),'value':_0x1204b3[_0xa4b8('0x50')]||(_0x1204b3[_0xa4b8('0x47')]&&_0x1204b3[_0xa4b8('0x47')][0x2]?_0x1204b3[_0xa4b8('0x47')][0x2][_0xa4b8('0x48')]:undefined)||0xc}];case _0xa4b8('0x51'):return[{'name':_0xa4b8('0x52'),'value':_0x1204b3[_0xa4b8('0x52')]||(_0x1204b3['attrs']&&_0x1204b3[_0xa4b8('0x47')][0x0]?_0x1204b3[_0xa4b8('0x47')][0x0][_0xa4b8('0x48')]:undefined)||_0xa4b8('0x53')},{'name':_0xa4b8('0x54'),'value':_0x1204b3[_0xa4b8('0x54')]||(_0x1204b3[_0xa4b8('0x47')]&&_0x1204b3['attrs'][0x1]?_0x1204b3[_0xa4b8('0x47')][0x1]['value']:undefined)||[]},{'name':_0xa4b8('0x50'),'value':_0x1204b3[_0xa4b8('0x50')]||(_0x1204b3['attrs']&&_0x1204b3[_0xa4b8('0x47')][0x2]?_0x1204b3['attrs'][0x2][_0xa4b8('0x48')]:undefined)||0x14}];case _0xa4b8('0x55'):case _0xa4b8('0x56'):return[{'name':_0xa4b8('0x57'),'value':_0x1204b3[_0xa4b8('0x57')]||(_0x1204b3[_0xa4b8('0x47')]&&_0x1204b3[_0xa4b8('0x47')][0x0]?_0x1204b3[_0xa4b8('0x47')][0x0][_0xa4b8('0x48')]:undefined)||'total'},{'name':_0xa4b8('0x58'),'value':_0x1204b3['attrSerie2']||(_0x1204b3[_0xa4b8('0x47')]&&_0x1204b3[_0xa4b8('0x47')][0x1]?_0x1204b3[_0xa4b8('0x47')][0x1]['value']:undefined)||null},{'name':'attrSerie3','value':_0x1204b3[_0xa4b8('0x59')]||(_0x1204b3[_0xa4b8('0x47')]&&_0x1204b3['attrs'][0x2]?_0x1204b3[_0xa4b8('0x47')][0x2]['value']:undefined)||null},{'name':_0xa4b8('0x54'),'value':_0x1204b3[_0xa4b8('0x54')]||(_0x1204b3[_0xa4b8('0x47')]&&_0x1204b3['attrs'][0x3]?_0x1204b3[_0xa4b8('0x47')][0x3][_0xa4b8('0x48')]:undefined)||[]}];case _0xa4b8('0x5a'):return[{'name':'attrReport','type':_0x1204b3['reportType']||(_0x1204b3[_0xa4b8('0x47')]&&_0x1204b3[_0xa4b8('0x47')][0x0]?_0x1204b3[_0xa4b8('0x47')][0x0][_0xa4b8('0x44')]:undefined)||null,'value':_0x1204b3[_0xa4b8('0x5b')]||(_0x1204b3['attrs']&&_0x1204b3[_0xa4b8('0x47')][0x0]?_0x1204b3['attrs'][0x0][_0xa4b8('0x48')]:undefined)||null},{'name':_0xa4b8('0x5c'),'value':_0x1204b3[_0xa4b8('0x5c')]||(_0x1204b3['attrs']&&_0x1204b3[_0xa4b8('0x47')][0x1]?_0x1204b3[_0xa4b8('0x47')][0x1][_0xa4b8('0x48')]:undefined)||0x0}];default:return[];}}catch(_0x46ba07){logger[_0xa4b8('0x2f')](_0xa4b8('0x5d'),JSON[_0xa4b8('0x5e')](_0x46ba07));return[];}}exports[_0xa4b8('0x5f')]=function(_0x3c2c6b,_0x22cdd4){if(_0x3c2c6b[_0xa4b8('0x60')]){_0x3c2c6b['body'][_0xa4b8('0x47')]=widgetAttributes(_0x3c2c6b[_0xa4b8('0x60')]);}return db[_0xa4b8('0x41')][_0xa4b8('0x5f')](_0x3c2c6b[_0xa4b8('0x60')],{})[_0xa4b8('0x2d')](respondWithResult(_0x22cdd4,0xc9))[_0xa4b8('0x42')](handleError(_0x22cdd4,null));};exports['update']=function(_0x589af0,_0x296c08){if(_0x589af0[_0xa4b8('0x60')]['id']){delete _0x589af0['body']['id'];}_0x589af0['body']['attrs']=widgetAttributes(_0x589af0['body']);return db['DashboardItem'][_0xa4b8('0x43')]({'where':{'id':_0x589af0[_0xa4b8('0x34')]['id']}})[_0xa4b8('0x2d')](handleEntityNotFound(_0x296c08,null))[_0xa4b8('0x2d')](saveUpdates(_0x589af0[_0xa4b8('0x60')],null))[_0xa4b8('0x2d')](respondWithResult(_0x296c08,null))['catch'](handleError(_0x296c08,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed26=['remove','emit','hasOwnProperty','hook','events','../../mysqldb','DashboardItem','save','update'];(function(_0x28151f,_0x32f209){var _0x299212=function(_0x227017){while(--_0x227017){_0x28151f['push'](_0x28151f['shift']());}};_0x299212(++_0x32f209);}(_0xed26,0x1d8));var _0x6ed2=function(_0x4f3714,_0x2ccab9){_0x4f3714=_0x4f3714-0x0;var _0x1a7435=_0xed26[_0x4f3714];return _0x1a7435;};'use strict';var EventEmitter=require(_0x6ed2('0x0'));var DashboardItem=require(_0x6ed2('0x1'))['db'][_0x6ed2('0x2')];var DashboardItemEvents=new EventEmitter();DashboardItemEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x6ed2('0x3'),'afterUpdate':_0x6ed2('0x4'),'afterDestroy':_0x6ed2('0x5')};function emitEvent(_0x1f1bdc){return function(_0x5aa21c,_0x8968df,_0x74bf9d){DashboardItemEvents[_0x6ed2('0x6')](_0x1f1bdc+':'+_0x5aa21c['id'],_0x5aa21c);DashboardItemEvents[_0x6ed2('0x6')](_0x1f1bdc,_0x5aa21c);_0x74bf9d(null);};}for(var e in events){if(events[_0x6ed2('0x7')](e)){var event=events[e];DashboardItem[_0x6ed2('0x8')](e,emitEvent(event));}}module['exports']=DashboardItemEvents;
\ No newline at end of file
+var _0xc822=['DashboardItem','save','update','emit','hasOwnProperty','hook','exports','events','../../mysqldb'];(function(_0x5d4d08,_0x449f98){var _0x138d9d=function(_0x44173d){while(--_0x44173d){_0x5d4d08['push'](_0x5d4d08['shift']());}};_0x138d9d(++_0x449f98);}(_0xc822,0x1b7));var _0x2c82=function(_0x44268d,_0xad8443){_0x44268d=_0x44268d-0x0;var _0x4be92d=_0xc822[_0x44268d];return _0x4be92d;};'use strict';var EventEmitter=require(_0x2c82('0x0'));var DashboardItem=require(_0x2c82('0x1'))['db'][_0x2c82('0x2')];var DashboardItemEvents=new EventEmitter();DashboardItemEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x2c82('0x3'),'afterUpdate':_0x2c82('0x4'),'afterDestroy':'remove'};function emitEvent(_0x2b0b50){return function(_0x126745,_0x1cb1b4,_0x236e55){DashboardItemEvents[_0x2c82('0x5')](_0x2b0b50+':'+_0x126745['id'],_0x126745);DashboardItemEvents['emit'](_0x2b0b50,_0x126745);_0x236e55(null);};}for(var e in events){if(events[_0x2c82('0x6')](e)){var event=events[e];DashboardItem[_0x2c82('0x7')](e,emitEvent(event));}}module[_0x2c82('0x8')]=DashboardItemEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x996b=['util','../../config/logger','api','moment','bluebird','request-promise','../../config/environment','./dashboardItem.attributes','exports','define','DashboardItem','lodash'];(function(_0x25a4a1,_0x516862){var _0x3cac71=function(_0x33913d){while(--_0x33913d){_0x25a4a1['push'](_0x25a4a1['shift']());}};_0x3cac71(++_0x516862);}(_0x996b,0x9b));var _0xb996=function(_0x416b1a,_0x474d23){_0x416b1a=_0x416b1a-0x0;var _0x498c67=_0x996b[_0x416b1a];return _0x498c67;};'use strict';var _=require(_0xb996('0x0'));var util=require(_0xb996('0x1'));var logger=require(_0xb996('0x2'))(_0xb996('0x3'));var moment=require(_0xb996('0x4'));var BPromise=require(_0xb996('0x5'));var rp=require(_0xb996('0x6'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xb996('0x7'));var attributes=require(_0xb996('0x8'));module[_0xb996('0x9')]=function(_0x26fc01,_0x4552da){return _0x26fc01[_0xb996('0xa')](_0xb996('0xb'),attributes,{'tableName':'dashboard_items','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x070c=['exports','define','DashboardItem','dashboard_items','lodash','util','../../config/logger','api','moment','bluebird','path','../../config/environment','./dashboardItem.attributes'];(function(_0x12ea97,_0x3405b6){var _0x3bad0=function(_0x4d5a74){while(--_0x4d5a74){_0x12ea97['push'](_0x12ea97['shift']());}};_0x3bad0(++_0x3405b6);}(_0x070c,0xfb));var _0xc070=function(_0x2f0ae8,_0x2bd1c4){_0x2f0ae8=_0x2f0ae8-0x0;var _0x1e7b13=_0x070c[_0x2f0ae8];return _0x1e7b13;};'use strict';var _=require(_0xc070('0x0'));var util=require(_0xc070('0x1'));var logger=require(_0xc070('0x2'))(_0xc070('0x3'));var moment=require(_0xc070('0x4'));var BPromise=require(_0xc070('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc070('0x6'));var rimraf=require('rimraf');var config=require(_0xc070('0x7'));var attributes=require(_0xc070('0x8'));module[_0xc070('0x9')]=function(_0x429369,_0x9c4f6f){return _0x429369[_0xc070('0xa')](_0xc070('0xb'),attributes,{'tableName':_0xc070('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x269e=['DashboardItem,\x20%s,\x20%s','request\x20sent','debug','DashboardItem,\x20%s,\x20%s,\x20%s','stringify','error','message','info','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./dashboardItem.socket','register','then'];(function(_0x25d06e,_0x151ce6){var _0x17ea8b=function(_0x1df833){while(--_0x1df833){_0x25d06e['push'](_0x25d06e['shift']());}};_0x17ea8b(++_0x151ce6);}(_0x269e,0x175));var _0xe269=function(_0x1eefa5,_0x2950ec){_0x1eefa5=_0x1eefa5-0x0;var _0x2d1282=_0x269e[_0x1eefa5];return _0x2d1282;};'use strict';var _=require('lodash');var util=require(_0xe269('0x0'));var moment=require(_0xe269('0x1'));var BPromise=require(_0xe269('0x2'));var rs=require(_0xe269('0x3'));var fs=require('fs');var Redis=require(_0xe269('0x4'));var db=require(_0xe269('0x5'))['db'];var utils=require(_0xe269('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0xe269('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xe269('0x8')][_0xe269('0x9')]({'port':0x232a});config[_0xe269('0xa')]=_[_0xe269('0xb')](config[_0xe269('0xa')],{'host':_0xe269('0xc'),'port':0x18eb});var socket=require(_0xe269('0xd'))(new Redis(config[_0xe269('0xa')]));require(_0xe269('0xe'))[_0xe269('0xf')](socket);function respondWithRpcPromise(_0x2c7144,_0x170ab9,_0xb1edcc){return new BPromise(function(_0x537f6b,_0x5c983f){return client['request'](_0x2c7144,_0xb1edcc)[_0xe269('0x10')](function(_0x76fa92){logger['info'](_0xe269('0x11'),_0x170ab9,_0xe269('0x12'));logger[_0xe269('0x13')](_0xe269('0x14'),_0x170ab9,_0xe269('0x12'),JSON[_0xe269('0x15')](_0x76fa92));if(_0x76fa92[_0xe269('0x16')]){if(_0x76fa92['error']['code']===0x1f4){logger[_0xe269('0x16')]('DashboardItem,\x20%s,\x20%s',_0x170ab9,_0x76fa92[_0xe269('0x16')][_0xe269('0x17')]);return _0x5c983f(_0x76fa92['error'][_0xe269('0x17')]);}logger[_0xe269('0x16')](_0xe269('0x11'),_0x170ab9,_0x76fa92[_0xe269('0x16')][_0xe269('0x17')]);return _0x537f6b(_0x76fa92[_0xe269('0x16')][_0xe269('0x17')]);}else{logger[_0xe269('0x18')](_0xe269('0x11'),_0x170ab9,_0xe269('0x12'));_0x537f6b(_0x76fa92['result']['message']);}})[_0xe269('0x19')](function(_0x14dec7){logger['error'](_0xe269('0x11'),_0x170ab9,_0x14dec7);_0x5c983f(_0x14dec7);});});}
\ No newline at end of file
+var _0xa6cd=['http','redis','defaults','socket.io-emitter','./dashboardItem.socket','register','request','then','request\x20sent','DashboardItem,\x20%s,\x20%s,\x20%s','stringify','error','code','DashboardItem,\x20%s,\x20%s','message','info','result','lodash','util','moment','randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x4274a3,_0x26a309){var _0x5bfa4e=function(_0x1fa2ec){while(--_0x1fa2ec){_0x4274a3['push'](_0x4274a3['shift']());}};_0x5bfa4e(++_0x26a309);}(_0xa6cd,0x79));var _0xda6c=function(_0x3881c8,_0x5f028f){_0x3881c8=_0x3881c8-0x0;var _0x2e26b0=_0xa6cd[_0x3881c8];return _0x2e26b0;};'use strict';var _=require(_0xda6c('0x0'));var util=require(_0xda6c('0x1'));var moment=require(_0xda6c('0x2'));var BPromise=require('bluebird');var rs=require(_0xda6c('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xda6c('0x4'))(_0xda6c('0x5'));var config=require(_0xda6c('0x6'));var jayson=require(_0xda6c('0x7'));var client=jayson[_0xda6c('0x8')][_0xda6c('0x9')]({'port':0x232a});config[_0xda6c('0xa')]=_[_0xda6c('0xb')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xda6c('0xc'))(new Redis(config[_0xda6c('0xa')]));require(_0xda6c('0xd'))[_0xda6c('0xe')](socket);function respondWithRpcPromise(_0x4c14f5,_0x5c76ff,_0x20b493){return new BPromise(function(_0x505ed8,_0x4ecc2a){return client[_0xda6c('0xf')](_0x4c14f5,_0x20b493)[_0xda6c('0x10')](function(_0x55f6e5){logger['info']('DashboardItem,\x20%s,\x20%s',_0x5c76ff,_0xda6c('0x11'));logger['debug'](_0xda6c('0x12'),_0x5c76ff,_0xda6c('0x11'),JSON[_0xda6c('0x13')](_0x55f6e5));if(_0x55f6e5[_0xda6c('0x14')]){if(_0x55f6e5[_0xda6c('0x14')][_0xda6c('0x15')]===0x1f4){logger[_0xda6c('0x14')](_0xda6c('0x16'),_0x5c76ff,_0x55f6e5['error'][_0xda6c('0x17')]);return _0x4ecc2a(_0x55f6e5[_0xda6c('0x14')][_0xda6c('0x17')]);}logger[_0xda6c('0x14')](_0xda6c('0x16'),_0x5c76ff,_0x55f6e5['error'][_0xda6c('0x17')]);return _0x505ed8(_0x55f6e5['error'][_0xda6c('0x17')]);}else{logger[_0xda6c('0x18')]('DashboardItem,\x20%s,\x20%s',_0x5c76ff,_0xda6c('0x11'));_0x505ed8(_0x55f6e5[_0xda6c('0x19')][_0xda6c('0x17')]);}})['catch'](function(_0xc9b06c){logger[_0xda6c('0x14')](_0xda6c('0x16'),_0x5c76ff,_0xc9b06c);_0x4ecc2a(_0xc9b06c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ff2=['emit','removeListener','register','length','dashboardItem:','./dashboardItem.events','save','remove','update'];(function(_0x33521,_0x5a6aeb){var _0x32403b=function(_0x159ebf){while(--_0x159ebf){_0x33521['push'](_0x33521['shift']());}};_0x32403b(++_0x5a6aeb);}(_0x9ff2,0xf8));var _0x29ff=function(_0x3826ad,_0x49a30d){_0x3826ad=_0x3826ad-0x0;var _0x17b900=_0x9ff2[_0x3826ad];return _0x17b900;};'use strict';var DashboardItemEvents=require(_0x29ff('0x0'));var events=[_0x29ff('0x1'),_0x29ff('0x2'),_0x29ff('0x3')];function createListener(_0x1a1bd7,_0x9c3e4f){return function(_0x2c4725){_0x9c3e4f[_0x29ff('0x4')](_0x1a1bd7,_0x2c4725);};}function removeListener(_0x2f568c,_0x1ef31f){return function(){DashboardItemEvents[_0x29ff('0x5')](_0x2f568c,_0x1ef31f);};}exports[_0x29ff('0x6')]=function(_0x3cb122){for(var _0x2da167=0x0,_0x224334=events[_0x29ff('0x7')];_0x2da167<_0x224334;_0x2da167++){var _0x50861e=events[_0x2da167];var _0x540b7a=createListener(_0x29ff('0x8')+_0x50861e,_0x3cb122);DashboardItemEvents['on'](_0x50861e,_0x540b7a);}};
\ No newline at end of file
+var _0x6fdf=['remove','update','emit','removeListener','register','length','dashboardItem:','save'];(function(_0x434e82,_0x3985f8){var _0x3cb611=function(_0x5d9397){while(--_0x5d9397){_0x434e82['push'](_0x434e82['shift']());}};_0x3cb611(++_0x3985f8);}(_0x6fdf,0xb7));var _0xf6fd=function(_0x2262b8,_0x11b9aa){_0x2262b8=_0x2262b8-0x0;var _0x41d373=_0x6fdf[_0x2262b8];return _0x41d373;};'use strict';var DashboardItemEvents=require('./dashboardItem.events');var events=[_0xf6fd('0x0'),_0xf6fd('0x1'),_0xf6fd('0x2')];function createListener(_0x54f7cb,_0x1e18f2){return function(_0x3b3589){_0x1e18f2[_0xf6fd('0x3')](_0x54f7cb,_0x3b3589);};}function removeListener(_0x946194,_0x4baab7){return function(){DashboardItemEvents[_0xf6fd('0x4')](_0x946194,_0x4baab7);};}exports[_0xf6fd('0x5')]=function(_0x4ddbd3){for(var _0x56bd22=0x0,_0x2f2f4c=events[_0xf6fd('0x6')];_0x56bd22<_0x2f2f4c;_0x56bd22++){var _0x110434=events[_0x56bd22];var _0x23610c=createListener(_0xf6fd('0x7')+_0x110434,_0x4ddbd3);DashboardItemEvents['on'](_0x110434,_0x23610c);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c93=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./dashboardItem.controller','get','/:id','show','post','isAuthenticated','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router'];(function(_0x5ab2dc,_0x5ed057){var _0x278342=function(_0x5303df){while(--_0x5303df){_0x5ab2dc['push'](_0x5ab2dc['shift']());}};_0x278342(++_0x5ed057);}(_0x1c93,0x186));var _0x31c9=function(_0x4fa8e5,_0x266c82){_0x4fa8e5=_0x4fa8e5-0x0;var _0xc9c596=_0x1c93[_0x4fa8e5];return _0xc9c596;};'use strict';var multer=require(_0x31c9('0x0'));var util=require(_0x31c9('0x1'));var path=require(_0x31c9('0x2'));var timeout=require(_0x31c9('0x3'));var express=require(_0x31c9('0x4'));var router=express[_0x31c9('0x5')]();var fs_extra=require(_0x31c9('0x6'));var auth=require(_0x31c9('0x7'));var interaction=require(_0x31c9('0x8'));var config=require(_0x31c9('0x9'));var controller=require(_0x31c9('0xa'));router[_0x31c9('0xb')](_0x31c9('0xc'),auth['isAuthenticated'](),controller[_0x31c9('0xd')]);router[_0x31c9('0xe')]('/',auth[_0x31c9('0xf')](),controller[_0x31c9('0x10')]);router[_0x31c9('0x11')](_0x31c9('0xc'),auth[_0x31c9('0xf')](),controller[_0x31c9('0x12')]);router[_0x31c9('0x13')]('/:id',auth[_0x31c9('0xf')](),controller[_0x31c9('0x14')]);module[_0x31c9('0x15')]=router;
\ No newline at end of file
+var _0xa3f2=['delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','/:id','isAuthenticated','post','create','put'];(function(_0x391db1,_0xf3c31f){var _0x1ae1d5=function(_0x5b798f){while(--_0x5b798f){_0x391db1['push'](_0x391db1['shift']());}};_0x1ae1d5(++_0xf3c31f);}(_0xa3f2,0x1d7));var _0x2a3f=function(_0x199169,_0x4ef0e5){_0x199169=_0x199169-0x0;var _0x2d5391=_0xa3f2[_0x199169];return _0x2d5391;};'use strict';var multer=require(_0x2a3f('0x0'));var util=require(_0x2a3f('0x1'));var path=require(_0x2a3f('0x2'));var timeout=require(_0x2a3f('0x3'));var express=require(_0x2a3f('0x4'));var router=express[_0x2a3f('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x2a3f('0x6'));var interaction=require(_0x2a3f('0x7'));var config=require(_0x2a3f('0x8'));var controller=require('./dashboardItem.controller');router[_0x2a3f('0x9')](_0x2a3f('0xa'),auth[_0x2a3f('0xb')](),controller['show']);router[_0x2a3f('0xc')]('/',auth[_0x2a3f('0xb')](),controller[_0x2a3f('0xd')]);router[_0x2a3f('0xe')](_0x2a3f('0xa'),auth['isAuthenticated'](),controller['update']);router[_0x2a3f('0xf')](_0x2a3f('0xa'),auth[_0x2a3f('0xb')](),controller[_0x2a3f('0x10')]);module[_0x2a3f('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5cfe=['second','third','exports','STRING','ENUM','first'];(function(_0x2a9280,_0x15dd77){var _0x138c16=function(_0x33f536){while(--_0x33f536){_0x2a9280['push'](_0x2a9280['shift']());}};_0x138c16(++_0x15dd77);}(_0x5cfe,0xc8));var _0xe5cf=function(_0x1e2418,_0x376846){_0x1e2418=_0x1e2418-0x0;var _0x282aeb=_0x5cfe[_0x1e2418];return _0x282aeb;};'use strict';var Sequelize=require('sequelize');module[_0xe5cf('0x0')]={'name':{'type':Sequelize[_0xe5cf('0x1')],'allowNull':![]},'level':{'type':Sequelize[_0xe5cf('0x2')](_0xe5cf('0x3'),_0xe5cf('0x4'),_0xe5cf('0x5')),'allowNull':![],'defaultValue':_0xe5cf('0x3')},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x9f6e=['second','sequelize','STRING','first'];(function(_0x5466ab,_0x227b13){var _0x40751a=function(_0x477f9e){while(--_0x477f9e){_0x5466ab['push'](_0x5466ab['shift']());}};_0x40751a(++_0x227b13);}(_0x9f6e,0x1f1));var _0xe9f6=function(_0x333ff0,_0x4f7386){_0x333ff0=_0x333ff0-0x0;var _0x19f208=_0x9f6e[_0x333ff0];return _0x19f208;};'use strict';var Sequelize=require(_0xe9f6('0x0'));module['exports']={'name':{'type':Sequelize[_0xe9f6('0x1')],'allowNull':![]},'level':{'type':Sequelize['ENUM'](_0xe9f6('0x2'),_0xe9f6('0x3'),'third'),'allowNull':![],'defaultValue':_0xe9f6('0x2')},'description':{'type':Sequelize[_0xe9f6('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa6bb=['../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','offset','count','limit','Content-Range','apply','reject','update','then','get','Dispositions','UserProfileResource','destroy','error','stack','name','index','map','Disposition','rawAttributes','fieldName','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','keys','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils'];(function(_0x35c9db,_0x2e8eb2){var _0x251e58=function(_0x5bd762){while(--_0x5bd762){_0x35c9db['push'](_0x35c9db['shift']());}};_0x251e58(++_0x2e8eb2);}(_0xa6bb,0x12c));var _0xba6b=function(_0x4d61d4,_0x1695b4){_0x4d61d4=_0x4d61d4-0x0;var _0x53ea6d=_0xa6bb[_0x4d61d4];return _0x53ea6d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xba6b('0x0'));var zipdir=require(_0xba6b('0x1'));var jsonpatch=require(_0xba6b('0x2'));var rp=require(_0xba6b('0x3'));var moment=require(_0xba6b('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xba6b('0x5'));var path=require(_0xba6b('0x6'));var sox=require(_0xba6b('0x7'));var csv=require(_0xba6b('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xba6b('0x9'));var squel=require(_0xba6b('0xa'));var crypto=require(_0xba6b('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xba6b('0x8'));var querystring=require(_0xba6b('0xc'));var Papa=require(_0xba6b('0xd'));var Redis=require(_0xba6b('0xe'));var authService=require(_0xba6b('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xba6b('0x10'));var hardwareService=require(_0xba6b('0x11'));var logger=require(_0xba6b('0x12'))('api');var utils=require(_0xba6b('0x13'));var config=require(_0xba6b('0x14'));var licenseUtil=require(_0xba6b('0x15'));var db=require(_0xba6b('0x16'))['db'];function respondWithStatusCode(_0x55b6ab,_0x1e8473){_0x1e8473=_0x1e8473||0xcc;return function(_0x5b1d28){if(_0x5b1d28){return _0x55b6ab[_0xba6b('0x17')](_0x1e8473);}return _0x55b6ab[_0xba6b('0x18')](_0x1e8473)[_0xba6b('0x19')]();};}function respondWithResult(_0x15d4e2,_0x32144e){_0x32144e=_0x32144e||0xc8;return function(_0x53ec00){if(_0x53ec00){return _0x15d4e2[_0xba6b('0x18')](_0x32144e)[_0xba6b('0x1a')](_0x53ec00);}};}function respondWithFilteredResult(_0x50b58a,_0x16c3d0){return function(_0x1d280e){if(_0x1d280e){var _0x52b2ff=typeof _0x16c3d0['offset']===_0xba6b('0x1b')&&typeof _0x16c3d0['limit']==='undefined';var _0x5a553c=_0x1d280e['count'];var _0x4be059=_0x52b2ff?0x0:_0x16c3d0[_0xba6b('0x1c')];var _0x34aa97=_0x52b2ff?_0x1d280e[_0xba6b('0x1d')]:_0x16c3d0[_0xba6b('0x1c')]+_0x16c3d0[_0xba6b('0x1e')];var _0x15d1d2;if(_0x34aa97>=_0x5a553c){_0x34aa97=_0x5a553c;_0x15d1d2=0xc8;}else{_0x15d1d2=0xce;}_0x50b58a[_0xba6b('0x18')](_0x15d1d2);return _0x50b58a['set'](_0xba6b('0x1f'),_0x4be059+'-'+_0x34aa97+'/'+_0x5a553c)['json'](_0x1d280e);}return null;};}function patchUpdates(_0x54a392){return function(_0x13beca){try{jsonpatch[_0xba6b('0x20')](_0x13beca,_0x54a392,!![]);}catch(_0x3905ae){return BPromise[_0xba6b('0x21')](_0x3905ae);}return _0x13beca['save']();};}function saveUpdates(_0xa632cb,_0x436623){return function(_0x548c1b){if(_0x548c1b){return _0x548c1b[_0xba6b('0x22')](_0xa632cb)[_0xba6b('0x23')](function(_0x82b68f){return _0x82b68f;});}return null;};}function removeEntity(_0x12e4e6,_0x426641){return function(_0x5c2845){if(_0x5c2845){return _0x5c2845['destroy']()['then'](function(){var _0x5d9163=_0x5c2845[_0xba6b('0x24')]({'plain':!![]});var _0x2525f8=_0xba6b('0x25');return db[_0xba6b('0x26')][_0xba6b('0x27')]({'where':{'type':_0x2525f8,'resourceId':_0x5d9163['id']}})[_0xba6b('0x23')](function(){return _0x5c2845;});})['then'](function(){_0x12e4e6[_0xba6b('0x18')](0xcc)[_0xba6b('0x19')]();});}};}function handleEntityNotFound(_0x11785e,_0x4d7db9){return function(_0x47574c){if(!_0x47574c){_0x11785e[_0xba6b('0x17')](0x194);}return _0x47574c;};}function handleError(_0x57493a,_0x127f99){_0x127f99=_0x127f99||0x1f4;return function(_0x25d5e6){logger[_0xba6b('0x28')](_0x25d5e6[_0xba6b('0x29')]);if(_0x25d5e6[_0xba6b('0x2a')]){delete _0x25d5e6['name'];}_0x57493a[_0xba6b('0x18')](_0x127f99)['send'](_0x25d5e6);};}exports[_0xba6b('0x2b')]=function(_0x5286a9,_0x1a6b93){var _0x53649d={},_0x429954={},_0x5008c1={'count':0x0,'rows':[]};var _0x205af9=_[_0xba6b('0x2c')](db[_0xba6b('0x2d')][_0xba6b('0x2e')],function(_0x5e87ed){return{'name':_0x5e87ed[_0xba6b('0x2f')],'type':_0x5e87ed['type']['key']};});_0x429954[_0xba6b('0x30')]=_[_0xba6b('0x2c')](_0x205af9,'name');_0x429954[_0xba6b('0x31')]=_['keys'](_0x5286a9['query']);_0x429954[_0xba6b('0x32')]=_[_0xba6b('0x33')](_0x429954[_0xba6b('0x30')],_0x429954[_0xba6b('0x31')]);_0x53649d[_0xba6b('0x34')]=_['intersection'](_0x429954[_0xba6b('0x30')],qs[_0xba6b('0x35')](_0x5286a9[_0xba6b('0x31')][_0xba6b('0x35')]));_0x53649d[_0xba6b('0x34')]=_0x53649d[_0xba6b('0x34')][_0xba6b('0x36')]?_0x53649d[_0xba6b('0x34')]:_0x429954[_0xba6b('0x30')];if(!_0x5286a9['query'][_0xba6b('0x37')](_0xba6b('0x38'))){_0x53649d[_0xba6b('0x1e')]=qs[_0xba6b('0x1e')](_0x5286a9['query']['limit']);_0x53649d[_0xba6b('0x1c')]=qs[_0xba6b('0x1c')](_0x5286a9[_0xba6b('0x31')][_0xba6b('0x1c')]);}_0x53649d['order']=qs[_0xba6b('0x39')](_0x5286a9[_0xba6b('0x31')]['sort']);_0x53649d[_0xba6b('0x3a')]=qs['filters'](_[_0xba6b('0x3b')](_0x5286a9[_0xba6b('0x31')],_0x429954[_0xba6b('0x32')]),_0x205af9);if(_0x5286a9['query'][_0xba6b('0x3c')]){_0x53649d[_0xba6b('0x3a')]=_['merge'](_0x53649d[_0xba6b('0x3a')],{'$or':_['map'](_0x205af9,function(_0x87884b){if(_0x87884b['type']!==_0xba6b('0x3d')){var _0x4afc23={};_0x4afc23[_0x87884b[_0xba6b('0x2a')]]={'$like':'%'+_0x5286a9['query'][_0xba6b('0x3c')]+'%'};return _0x4afc23;}})});}_0x53649d=_[_0xba6b('0x3e')]({},_0x53649d,_0x5286a9[_0xba6b('0x3f')]);var _0xada3cf={'where':_0x53649d['where']};return db[_0xba6b('0x2d')][_0xba6b('0x1d')](_0xada3cf)[_0xba6b('0x23')](function(_0x31fe5a){_0x5008c1[_0xba6b('0x1d')]=_0x31fe5a;if(_0x5286a9['query'][_0xba6b('0x40')]){_0x53649d['include']=[{'all':!![]}];}return db[_0xba6b('0x2d')][_0xba6b('0x41')](_0x53649d);})['then'](function(_0x57e9b5){_0x5008c1[_0xba6b('0x42')]=_0x57e9b5;return _0x5008c1;})[_0xba6b('0x23')](respondWithFilteredResult(_0x1a6b93,_0x53649d))[_0xba6b('0x43')](handleError(_0x1a6b93,null));};exports[_0xba6b('0x44')]=function(_0x5afbf6,_0x464dd4){var _0x40e09d={'raw':!![],'where':{'id':_0x5afbf6[_0xba6b('0x45')]['id']}},_0x46475a={};_0x46475a['model']=_[_0xba6b('0x46')](db[_0xba6b('0x2d')][_0xba6b('0x2e')]);_0x46475a[_0xba6b('0x31')]=_[_0xba6b('0x46')](_0x5afbf6[_0xba6b('0x31')]);_0x46475a['filters']=_[_0xba6b('0x33')](_0x46475a[_0xba6b('0x30')],_0x46475a[_0xba6b('0x31')]);_0x40e09d['attributes']=_[_0xba6b('0x33')](_0x46475a[_0xba6b('0x30')],qs[_0xba6b('0x35')](_0x5afbf6[_0xba6b('0x31')][_0xba6b('0x35')]));_0x40e09d[_0xba6b('0x34')]=_0x40e09d[_0xba6b('0x34')][_0xba6b('0x36')]?_0x40e09d['attributes']:_0x46475a[_0xba6b('0x30')];if(_0x5afbf6[_0xba6b('0x31')][_0xba6b('0x40')]){_0x40e09d['include']=[{'all':!![]}];}_0x40e09d=_[_0xba6b('0x3e')]({},_0x40e09d,_0x5afbf6[_0xba6b('0x3f')]);return db[_0xba6b('0x2d')][_0xba6b('0x47')](_0x40e09d)[_0xba6b('0x23')](handleEntityNotFound(_0x464dd4,null))[_0xba6b('0x23')](respondWithResult(_0x464dd4,null))[_0xba6b('0x43')](handleError(_0x464dd4,null));};exports[_0xba6b('0x48')]=function(_0x2dea62,_0x5035b3){return db[_0xba6b('0x2d')][_0xba6b('0x48')](_0x2dea62[_0xba6b('0x49')],{})[_0xba6b('0x23')](function(_0x105325){var _0x3c8942=_0x2dea62[_0xba6b('0x4a')][_0xba6b('0x24')]({'plain':!![]});if(!_0x3c8942)throw new Error(_0xba6b('0x4b'));if(_0x3c8942[_0xba6b('0x4c')]==='user'){var _0x40c0ea=_0x105325[_0xba6b('0x24')]({'plain':!![]});var _0x5331cb=_0xba6b('0x25');return db[_0xba6b('0x4d')][_0xba6b('0x47')]({'where':{'name':_0x5331cb,'userProfileId':_0x3c8942['userProfileId']},'raw':!![]})[_0xba6b('0x23')](function(_0x43bc05){if(_0x43bc05&&_0x43bc05[_0xba6b('0x4e')]===0x0){return db['UserProfileResource'][_0xba6b('0x48')]({'name':_0x40c0ea['name'],'resourceId':_0x40c0ea['id'],'type':_0x43bc05['name'],'sectionId':_0x43bc05['id']},{})['then'](function(){return _0x105325;});}else{return _0x105325;}})['catch'](function(_0x34f374){logger[_0xba6b('0x28')](_0xba6b('0x4f'),_0x34f374);throw _0x34f374;});}return _0x105325;})['then'](respondWithResult(_0x5035b3,0xc9))[_0xba6b('0x43')](handleError(_0x5035b3,null));};exports['update']=function(_0x5d951f,_0x9d2811){if(_0x5d951f[_0xba6b('0x49')]['id']){delete _0x5d951f[_0xba6b('0x49')]['id'];}return db[_0xba6b('0x2d')][_0xba6b('0x47')]({'where':{'id':_0x5d951f['params']['id']}})['then'](handleEntityNotFound(_0x9d2811,null))[_0xba6b('0x23')](saveUpdates(_0x5d951f[_0xba6b('0x49')],null))['then'](respondWithResult(_0x9d2811,null))[_0xba6b('0x43')](handleError(_0x9d2811,null));};exports['destroy']=function(_0x3f59de,_0x94dafc){return db[_0xba6b('0x2d')][_0xba6b('0x47')]({'where':{'id':_0x3f59de['params']['id']}})[_0xba6b('0x23')](handleEntityNotFound(_0x94dafc,null))[_0xba6b('0x23')](removeEntity(_0x94dafc,null))['catch'](handleError(_0x94dafc,null));};
\ No newline at end of file
+var _0x58a7=['UserProfileResource','end','error','name','map','Disposition','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','merge','options','include','findAll','catch','show','includeAll','find','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','params','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','Dispositions'];(function(_0x134c2e,_0x3573c4){var _0x2825db=function(_0x2a574d){while(--_0x2a574d){_0x134c2e['push'](_0x134c2e['shift']());}};_0x2825db(++_0x3573c4);}(_0x58a7,0xc7));var _0x758a=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x58a7[_0x2c91e9];return _0x13f0ff;};'use strict';var emlformat=require(_0x758a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x758a('0x1'));var jsonpatch=require(_0x758a('0x2'));var rp=require(_0x758a('0x3'));var moment=require(_0x758a('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x758a('0x5'));var path=require(_0x758a('0x6'));var sox=require(_0x758a('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x758a('0x8'));var _=require(_0x758a('0x9'));var squel=require(_0x758a('0xa'));var crypto=require(_0x758a('0xb'));var jsforce=require(_0x758a('0xc'));var deskjs=require(_0x758a('0xd'));var toCsv=require(_0x758a('0xe'));var querystring=require(_0x758a('0xf'));var Papa=require(_0x758a('0x10'));var Redis=require('ioredis');var authService=require(_0x758a('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x758a('0x12'));var logger=require('../../config/logger')(_0x758a('0x13'));var utils=require(_0x758a('0x14'));var config=require(_0x758a('0x15'));var licenseUtil=require(_0x758a('0x16'));var db=require(_0x758a('0x17'))['db'];function respondWithStatusCode(_0x2f9ea7,_0x1784d1){_0x1784d1=_0x1784d1||0xcc;return function(_0x3e89aa){if(_0x3e89aa){return _0x2f9ea7[_0x758a('0x18')](_0x1784d1);}return _0x2f9ea7[_0x758a('0x19')](_0x1784d1)['end']();};}function respondWithResult(_0x5dc507,_0x33a2b0){_0x33a2b0=_0x33a2b0||0xc8;return function(_0x1e9045){if(_0x1e9045){return _0x5dc507[_0x758a('0x19')](_0x33a2b0)['json'](_0x1e9045);}};}function respondWithFilteredResult(_0x191b47,_0x341386){return function(_0x4197ec){if(_0x4197ec){var _0x1ff4ec=typeof _0x341386[_0x758a('0x1a')]===_0x758a('0x1b')&&typeof _0x341386[_0x758a('0x1c')]===_0x758a('0x1b');var _0x387166=_0x4197ec[_0x758a('0x1d')];var _0x29ee6a=_0x1ff4ec?0x0:_0x341386['offset'];var _0x285295=_0x1ff4ec?_0x4197ec['count']:_0x341386['offset']+_0x341386[_0x758a('0x1c')];var _0x5467ab;if(_0x285295>=_0x387166){_0x285295=_0x387166;_0x5467ab=0xc8;}else{_0x5467ab=0xce;}_0x191b47[_0x758a('0x19')](_0x5467ab);return _0x191b47['set'](_0x758a('0x1e'),_0x29ee6a+'-'+_0x285295+'/'+_0x387166)['json'](_0x4197ec);}return null;};}function patchUpdates(_0x45e285){return function(_0x5c249e){try{jsonpatch[_0x758a('0x1f')](_0x5c249e,_0x45e285,!![]);}catch(_0x18ccf9){return BPromise[_0x758a('0x20')](_0x18ccf9);}return _0x5c249e[_0x758a('0x21')]();};}function saveUpdates(_0x112311,_0x2af358){return function(_0x455bce){if(_0x455bce){return _0x455bce[_0x758a('0x22')](_0x112311)[_0x758a('0x23')](function(_0x3cddb1){return _0x3cddb1;});}return null;};}function removeEntity(_0x18ce9e,_0xf5ae8){return function(_0x56150c){if(_0x56150c){return _0x56150c[_0x758a('0x24')]()[_0x758a('0x23')](function(){var _0x1540d8=_0x56150c['get']({'plain':!![]});var _0x1283ea=_0x758a('0x25');return db[_0x758a('0x26')][_0x758a('0x24')]({'where':{'type':_0x1283ea,'resourceId':_0x1540d8['id']}})[_0x758a('0x23')](function(){return _0x56150c;});})['then'](function(){_0x18ce9e[_0x758a('0x19')](0xcc)[_0x758a('0x27')]();});}};}function handleEntityNotFound(_0x352d50,_0x276a74){return function(_0x392070){if(!_0x392070){_0x352d50['sendStatus'](0x194);}return _0x392070;};}function handleError(_0x54493a,_0xc4741a){_0xc4741a=_0xc4741a||0x1f4;return function(_0x15ad21){logger[_0x758a('0x28')](_0x15ad21['stack']);if(_0x15ad21[_0x758a('0x29')]){delete _0x15ad21[_0x758a('0x29')];}_0x54493a[_0x758a('0x19')](_0xc4741a)['send'](_0x15ad21);};}exports['index']=function(_0x45703f,_0x3af087){var _0x355840={},_0x402045={},_0x27db21={'count':0x0,'rows':[]};var _0x432449=_[_0x758a('0x2a')](db[_0x758a('0x2b')][_0x758a('0x2c')],function(_0x445eca){return{'name':_0x445eca[_0x758a('0x2d')],'type':_0x445eca[_0x758a('0x2e')][_0x758a('0x2f')]};});_0x402045[_0x758a('0x30')]=_[_0x758a('0x2a')](_0x432449,_0x758a('0x29'));_0x402045[_0x758a('0x31')]=_[_0x758a('0x32')](_0x45703f[_0x758a('0x31')]);_0x402045[_0x758a('0x33')]=_[_0x758a('0x34')](_0x402045[_0x758a('0x30')],_0x402045[_0x758a('0x31')]);_0x355840[_0x758a('0x35')]=_[_0x758a('0x34')](_0x402045[_0x758a('0x30')],qs[_0x758a('0x36')](_0x45703f['query'][_0x758a('0x36')]));_0x355840['attributes']=_0x355840[_0x758a('0x35')]['length']?_0x355840[_0x758a('0x35')]:_0x402045['model'];if(!_0x45703f[_0x758a('0x31')][_0x758a('0x37')]('nolimit')){_0x355840[_0x758a('0x1c')]=qs[_0x758a('0x1c')](_0x45703f[_0x758a('0x31')][_0x758a('0x1c')]);_0x355840['offset']=qs[_0x758a('0x1a')](_0x45703f[_0x758a('0x31')][_0x758a('0x1a')]);}_0x355840[_0x758a('0x38')]=qs[_0x758a('0x39')](_0x45703f[_0x758a('0x31')][_0x758a('0x39')]);_0x355840[_0x758a('0x3a')]=qs[_0x758a('0x33')](_[_0x758a('0x3b')](_0x45703f['query'],_0x402045['filters']),_0x432449);if(_0x45703f[_0x758a('0x31')]['filter']){_0x355840['where']=_['merge'](_0x355840['where'],{'$or':_[_0x758a('0x2a')](_0x432449,function(_0x84bdfa){if(_0x84bdfa[_0x758a('0x2e')]!=='VIRTUAL'){var _0x117f0c={};_0x117f0c[_0x84bdfa['name']]={'$like':'%'+_0x45703f[_0x758a('0x31')]['filter']+'%'};return _0x117f0c;}})});}_0x355840=_[_0x758a('0x3c')]({},_0x355840,_0x45703f[_0x758a('0x3d')]);var _0x37f78c={'where':_0x355840[_0x758a('0x3a')]};return db[_0x758a('0x2b')]['count'](_0x37f78c)[_0x758a('0x23')](function(_0xcf37b7){_0x27db21[_0x758a('0x1d')]=_0xcf37b7;if(_0x45703f[_0x758a('0x31')]['includeAll']){_0x355840[_0x758a('0x3e')]=[{'all':!![]}];}return db[_0x758a('0x2b')][_0x758a('0x3f')](_0x355840);})[_0x758a('0x23')](function(_0x576286){_0x27db21['rows']=_0x576286;return _0x27db21;})[_0x758a('0x23')](respondWithFilteredResult(_0x3af087,_0x355840))[_0x758a('0x40')](handleError(_0x3af087,null));};exports[_0x758a('0x41')]=function(_0x550ef2,_0x160428){var _0x54b209={'raw':!![],'where':{'id':_0x550ef2['params']['id']}},_0x1f105e={};_0x1f105e[_0x758a('0x30')]=_[_0x758a('0x32')](db[_0x758a('0x2b')]['rawAttributes']);_0x1f105e['query']=_[_0x758a('0x32')](_0x550ef2[_0x758a('0x31')]);_0x1f105e[_0x758a('0x33')]=_[_0x758a('0x34')](_0x1f105e['model'],_0x1f105e['query']);_0x54b209['attributes']=_['intersection'](_0x1f105e[_0x758a('0x30')],qs[_0x758a('0x36')](_0x550ef2[_0x758a('0x31')][_0x758a('0x36')]));_0x54b209['attributes']=_0x54b209[_0x758a('0x35')]['length']?_0x54b209[_0x758a('0x35')]:_0x1f105e['model'];if(_0x550ef2[_0x758a('0x31')][_0x758a('0x42')]){_0x54b209['include']=[{'all':!![]}];}_0x54b209=_[_0x758a('0x3c')]({},_0x54b209,_0x550ef2[_0x758a('0x3d')]);return db[_0x758a('0x2b')][_0x758a('0x43')](_0x54b209)[_0x758a('0x23')](handleEntityNotFound(_0x160428,null))[_0x758a('0x23')](respondWithResult(_0x160428,null))['catch'](handleError(_0x160428,null));};exports[_0x758a('0x44')]=function(_0x11f7c5,_0x484eda){return db['Disposition'][_0x758a('0x44')](_0x11f7c5[_0x758a('0x45')],{})['then'](function(_0x1bc1f7){var _0x1fe551=_0x11f7c5[_0x758a('0x46')][_0x758a('0x47')]({'plain':!![]});if(!_0x1fe551)throw new Error(_0x758a('0x48'));if(_0x1fe551[_0x758a('0x49')]===_0x758a('0x46')){var _0x63a04=_0x1bc1f7[_0x758a('0x47')]({'plain':!![]});var _0xb7645d=_0x758a('0x25');return db[_0x758a('0x4a')][_0x758a('0x43')]({'where':{'name':_0xb7645d,'userProfileId':_0x1fe551[_0x758a('0x4b')]},'raw':!![]})[_0x758a('0x23')](function(_0x3ef934){if(_0x3ef934&&_0x3ef934[_0x758a('0x4c')]===0x0){return db[_0x758a('0x26')][_0x758a('0x44')]({'name':_0x63a04[_0x758a('0x29')],'resourceId':_0x63a04['id'],'type':_0x3ef934[_0x758a('0x29')],'sectionId':_0x3ef934['id']},{})['then'](function(){return _0x1bc1f7;});}else{return _0x1bc1f7;}})[_0x758a('0x40')](function(_0x4e4e08){logger[_0x758a('0x28')](_0x758a('0x4d'),_0x4e4e08);throw _0x4e4e08;});}return _0x1bc1f7;})[_0x758a('0x23')](respondWithResult(_0x484eda,0xc9))['catch'](handleError(_0x484eda,null));};exports[_0x758a('0x22')]=function(_0x40497a,_0x32fa62){if(_0x40497a['body']['id']){delete _0x40497a[_0x758a('0x45')]['id'];}return db[_0x758a('0x2b')][_0x758a('0x43')]({'where':{'id':_0x40497a[_0x758a('0x4e')]['id']}})[_0x758a('0x23')](handleEntityNotFound(_0x32fa62,null))[_0x758a('0x23')](saveUpdates(_0x40497a[_0x758a('0x45')],null))[_0x758a('0x23')](respondWithResult(_0x32fa62,null))[_0x758a('0x40')](handleError(_0x32fa62,null));};exports[_0x758a('0x24')]=function(_0x469efc,_0x29c5a4){return db['Disposition'][_0x758a('0x43')]({'where':{'id':_0x469efc[_0x758a('0x4e')]['id']}})[_0x758a('0x23')](handleEntityNotFound(_0x29c5a4,null))[_0x758a('0x23')](removeEntity(_0x29c5a4,null))[_0x758a('0x40')](handleError(_0x29c5a4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13e4=['exports','define','Disposition','tools_dispositions','name_voice','name','name_chat','ChatWebsiteId','name_mail','MailAccountId','name_sms','SmsAccountId','name_fax','FaxAccountId','OpenchannelAccountId','name_whatsapp','WhatsappAccountId','util','api','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x2faddb,_0xc18b78){var _0x273c05=function(_0x1a3785){while(--_0x1a3785){_0x2faddb['push'](_0x2faddb['shift']());}};_0x273c05(++_0xc18b78);}(_0x13e4,0x131));var _0x413e=function(_0x53b3ee,_0x12feb7){_0x53b3ee=_0x53b3ee-0x0;var _0x50fae3=_0x13e4[_0x53b3ee];return _0x50fae3;};'use strict';var _=require('lodash');var util=require(_0x413e('0x0'));var logger=require('../../config/logger')(_0x413e('0x1'));var moment=require('moment');var BPromise=require(_0x413e('0x2'));var rp=require(_0x413e('0x3'));var fs=require('fs');var path=require(_0x413e('0x4'));var rimraf=require(_0x413e('0x5'));var config=require(_0x413e('0x6'));var attributes=require('./disposition.attributes');module[_0x413e('0x7')]=function(_0x520be4,_0x50c185){return _0x520be4[_0x413e('0x8')](_0x413e('0x9'),attributes,{'tableName':_0x413e('0xa'),'paranoid':![],'indexes':[{'unique':!![],'name':_0x413e('0xb'),'fields':[_0x413e('0xc'),'ListId']},{'unique':!![],'name':_0x413e('0xd'),'fields':[_0x413e('0xc'),_0x413e('0xe')]},{'unique':!![],'name':_0x413e('0xf'),'fields':[_0x413e('0xc'),_0x413e('0x10')]},{'unique':!![],'name':_0x413e('0x11'),'fields':['name',_0x413e('0x12')]},{'unique':!![],'name':_0x413e('0x13'),'fields':[_0x413e('0xc'),_0x413e('0x14')]},{'unique':!![],'name':'name_openchannel','fields':[_0x413e('0xc'),_0x413e('0x15')]},{'unique':!![],'name':_0x413e('0x16'),'fields':[_0x413e('0xc'),_0x413e('0x17')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x22c6=['util','../../config/logger','api','moment','bluebird','../../config/environment','exports','Disposition','tools_dispositions','name_voice','name','ListId','name_chat','ChatWebsiteId','name_mail','MailAccountId','name_fax','FaxAccountId','OpenchannelAccountId','name_whatsapp','WhatsappAccountId'];(function(_0x5b3e54,_0x56c5a6){var _0x1d6821=function(_0x2c68a5){while(--_0x2c68a5){_0x5b3e54['push'](_0x5b3e54['shift']());}};_0x1d6821(++_0x56c5a6);}(_0x22c6,0x18f));var _0x622c=function(_0x16d132,_0x505f87){_0x16d132=_0x16d132-0x0;var _0x40be52=_0x22c6[_0x16d132];return _0x40be52;};'use strict';var _=require('lodash');var util=require(_0x622c('0x0'));var logger=require(_0x622c('0x1'))(_0x622c('0x2'));var moment=require(_0x622c('0x3'));var BPromise=require(_0x622c('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x622c('0x5'));var attributes=require('./disposition.attributes');module[_0x622c('0x6')]=function(_0x398fb6,_0x4053d1){return _0x398fb6['define'](_0x622c('0x7'),attributes,{'tableName':_0x622c('0x8'),'paranoid':![],'indexes':[{'unique':!![],'name':_0x622c('0x9'),'fields':[_0x622c('0xa'),_0x622c('0xb')]},{'unique':!![],'name':_0x622c('0xc'),'fields':[_0x622c('0xa'),_0x622c('0xd')]},{'unique':!![],'name':_0x622c('0xe'),'fields':[_0x622c('0xa'),_0x622c('0xf')]},{'unique':!![],'name':'name_sms','fields':[_0x622c('0xa'),'SmsAccountId']},{'unique':!![],'name':_0x622c('0x10'),'fields':['name',_0x622c('0x11')]},{'unique':!![],'name':'name_openchannel','fields':['name',_0x622c('0x12')]},{'unique':!![],'name':_0x622c('0x13'),'fields':[_0x622c('0xa'),_0x622c('0x14')]}],'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(_0x36d9b5,_0x2aa5a0){var _0xd57b4=function(_0x4fa061){while(--_0x4fa061){_0x36d9b5['push'](_0x36d9b5['shift']());}};_0xd57b4(++_0x2aa5a0);}(_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);});});}
\ 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(_0x2f83e6,_0x1da53e){var _0x5bc2b1=function(_0x277a8c){while(--_0x277a8c){_0x2f83e6['push'](_0x2f83e6['shift']());}};_0x5bc2b1(++_0x1da53e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0xa9e0[_0x6c993a];return _0x27f547;};'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 _0x87ab=['index','/:id','isAuthenticated','show','post','create','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./disposition.controller','get'];(function(_0x1558ab,_0x39d1de){var _0x53b64a=function(_0x4771ed){while(--_0x4771ed){_0x1558ab['push'](_0x1558ab['shift']());}};_0x53b64a(++_0x39d1de);}(_0x87ab,0x14a));var _0xb87a=function(_0x48e475,_0x75146b){_0x48e475=_0x48e475-0x0;var _0x24b99e=_0x87ab[_0x48e475];return _0x24b99e;};'use strict';var multer=require(_0xb87a('0x0'));var util=require(_0xb87a('0x1'));var path=require(_0xb87a('0x2'));var timeout=require(_0xb87a('0x3'));var express=require(_0xb87a('0x4'));var router=express[_0xb87a('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xb87a('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xb87a('0x7'));var controller=require(_0xb87a('0x8'));router[_0xb87a('0x9')]('/',auth['isAuthenticated'](),controller[_0xb87a('0xa')]);router[_0xb87a('0x9')](_0xb87a('0xb'),auth[_0xb87a('0xc')](),controller[_0xb87a('0xd')]);router[_0xb87a('0xe')]('/',auth[_0xb87a('0xc')](),controller[_0xb87a('0xf')]);router[_0xb87a('0x10')](_0xb87a('0xb'),auth[_0xb87a('0xc')](),controller[_0xb87a('0x11')]);router[_0xb87a('0x12')](_0xb87a('0xb'),auth['isAuthenticated'](),controller['destroy']);module[_0xb87a('0x13')]=router;
\ No newline at end of file
+var _0x923d=['fs-extra','../../components/interaction/service','../../config/environment','./disposition.controller','get','isAuthenticated','index','show','post','create','put','/:id','delete','destroy','multer','util','path','Router'];(function(_0x2e54e9,_0x22f214){var _0x34f392=function(_0x38987e){while(--_0x38987e){_0x2e54e9['push'](_0x2e54e9['shift']());}};_0x34f392(++_0x22f214);}(_0x923d,0x9e));var _0xd923=function(_0x48aba3,_0x23efea){_0x48aba3=_0x48aba3-0x0;var _0x2eac03=_0x923d[_0x48aba3];return _0x2eac03;};'use strict';var multer=require(_0xd923('0x0'));var util=require(_0xd923('0x1'));var path=require(_0xd923('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xd923('0x3')]();var fs_extra=require(_0xd923('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xd923('0x5'));var config=require(_0xd923('0x6'));var controller=require(_0xd923('0x7'));router[_0xd923('0x8')]('/',auth[_0xd923('0x9')](),controller[_0xd923('0xa')]);router[_0xd923('0x8')]('/:id',auth[_0xd923('0x9')](),controller[_0xd923('0xb')]);router[_0xd923('0xc')]('/',auth['isAuthenticated'](),controller[_0xd923('0xd')]);router[_0xd923('0xe')](_0xd923('0xf'),auth[_0xd923('0x9')](),controller['update']);router[_0xd923('0x10')](_0xd923('0xf'),auth[_0xd923('0x9')](),controller[_0xd923('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe071=['setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','STRING','ENUM','yes','xCALLY\x20Motion\x20Fax','localstationid','4800','7200','9600','14400','2400','12000','v17,v27,v29','INTEGER','SIP','IAX','DADHI','KHOMP','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue'];(function(_0x14799c,_0x3bca2e){var _0x3f9e1d=function(_0x11b889){while(--_0x11b889){_0x14799c['push'](_0x14799c['shift']());}};_0x3f9e1d(++_0x3bca2e);}(_0xe071,0xa4));var _0x1e07=function(_0x2f4afc,_0x1d0f82){_0x2f4afc=_0x2f4afc-0x0;var _0x47490c=_0xe071[_0x2f4afc];return _0x47490c;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x1e07('0x0')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize['STRING']},'ecm':{'type':Sequelize[_0x1e07('0x1')](_0x1e07('0x2'),'no'),'defaultValue':_0x1e07('0x2')},'headerinfo':{'type':Sequelize[_0x1e07('0x0')],'defaultValue':_0x1e07('0x3')},'localstationid':{'type':Sequelize['STRING'],'unique':_0x1e07('0x4')},'minrate':{'type':Sequelize[_0x1e07('0x1')]('2400',_0x1e07('0x5'),_0x1e07('0x6'),_0x1e07('0x7'),'12000',_0x1e07('0x8')),'defaultValue':_0x1e07('0x5')},'maxrate':{'type':Sequelize[_0x1e07('0x1')](_0x1e07('0x9'),_0x1e07('0x5'),'7200',_0x1e07('0x7'),_0x1e07('0xa'),_0x1e07('0x8')),'defaultValue':_0x1e07('0x8')},'modem':{'type':Sequelize[_0x1e07('0x0')],'defaultValue':_0x1e07('0xb')},'gateway':{'type':Sequelize[_0x1e07('0x0')],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0x1e07('0x0')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0x1e07('0xc')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize['ENUM'](_0x1e07('0xd'),_0x1e07('0xe'),_0x1e07('0xf'),_0x1e07('0x10')),'defaultValue':_0x1e07('0xd')},'key':{'type':Sequelize[_0x1e07('0x0')],'allowNull':![]},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return _0x1e07('0x11');}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x1e07('0x12')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x1e07('0x12')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x1e07('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x1e07('0xc')],'allowNull':!![],'defaultValue':null,'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x1e07('0x12')],'defaultValue':![],'comment':_0x1e07('0x13'),'set':function(_0x3295f6){if(!_0x3295f6)this[_0x1e07('0x14')](_0x1e07('0x15'),null);this[_0x1e07('0x14')](_0x1e07('0x16'),_0x3295f6);}}};
\ No newline at end of file
+var _0x2da7=['BOOLEAN','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','exports','STRING','ENUM','xCALLY\x20Motion\x20Fax','localstationid','2400','4800','7200','9600','12000','14400','INTEGER','IAX','DADHI','KHOMP','SIP','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}'];(function(_0x507e09,_0x17712f){var _0x4904e8=function(_0x5ece3e){while(--_0x5ece3e){_0x507e09['push'](_0x507e09['shift']());}};_0x4904e8(++_0x17712f);}(_0x2da7,0xc5));var _0x72da=function(_0x3e401e,_0x93e08d){_0x3e401e=_0x3e401e-0x0;var _0x720da3=_0x2da7[_0x3e401e];return _0x720da3;};'use strict';var Sequelize=require(_0x72da('0x0'));module[_0x72da('0x1')]={'name':{'type':Sequelize[_0x72da('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x72da('0x2')]},'ecm':{'type':Sequelize[_0x72da('0x3')]('yes','no'),'defaultValue':'yes'},'headerinfo':{'type':Sequelize[_0x72da('0x2')],'defaultValue':_0x72da('0x4')},'localstationid':{'type':Sequelize[_0x72da('0x2')],'unique':_0x72da('0x5')},'minrate':{'type':Sequelize['ENUM'](_0x72da('0x6'),_0x72da('0x7'),_0x72da('0x8'),_0x72da('0x9'),_0x72da('0xa'),_0x72da('0xb')),'defaultValue':_0x72da('0x7')},'maxrate':{'type':Sequelize['ENUM'](_0x72da('0x6'),_0x72da('0x7'),_0x72da('0x8'),'9600',_0x72da('0xa'),'14400'),'defaultValue':_0x72da('0xb')},'modem':{'type':Sequelize[_0x72da('0x2')],'defaultValue':'v17,v27,v29'},'gateway':{'type':Sequelize[_0x72da('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize['STRING'],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0x72da('0xc')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize[_0x72da('0x3')]('SIP',_0x72da('0xd'),_0x72da('0xe'),_0x72da('0xf')),'defaultValue':_0x72da('0x10')},'key':{'type':Sequelize['STRING'],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x72da('0x11')],'defaultValue':function(){return _0x72da('0x12');}},'notificationSound':{'type':Sequelize[_0x72da('0x13')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x72da('0x13')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x72da('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x72da('0x13')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x72da('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x72da('0x13')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x72da('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x72da('0xc')],'allowNull':!![],'defaultValue':null,'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x72da('0x13')],'defaultValue':![],'comment':_0x72da('0x14'),'set':function(_0x42118b){if(!_0x42118b)this[_0x72da('0x15')](_0x72da('0x16'),null);this[_0x72da('0x15')](_0x72da('0x17'),_0x42118b);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd843=['describe','addDisposition','Disposition','findOne','length','nolimit','rows','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','options','removeAnswers','FaxInteraction','omit','CmContact','Contact','User','Owner','fullname','internal','Tags','color','tag','sequelize','transaction','FaxApplication','FaxAccountId','bulkCreate','findAndCountAll','priority','getApplications','from-voip-provider','exten','localstationid','app','Fax\x20Extension','appdata','push','Answer','gateway','headerinfo','maxrate','minrate','modem','t38timeout','FAXOPT(','Set','Wait','addAccountApplications','VoiceExtension','updateAccountApplications','tech','createdAt','updatedAt','findById','FaxMessage','$gte','format','YYYY-MM-DD\x20HH:mm:ss','List','DESC','attachments','join','server/files/attachments','basename','CheckAfterSend','isNil','from','\x22%s\x22\x20<%s>','fax','List\x20not\x20found','Send\x20Fax\x20failed','filename','Contact\x20not\x20found','spread','out','Messages','dataValues','SendFax','SendFaxRpc,\x20%s','addAgents','userFaxAccount:save','removeAgents','emit','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','util','path','sox','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','redis','./faxAccount.socket','register','client','http','request','then','info','request\x20sent','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','FaxAccount,\x20%s,\x20%s','message','result','catch','sendStatus','end','json','offset','undefined','limit','count','status','set','apply','reject','update','destroy','get','UserProfileResource','stack','Pause','mandatoryDispositionPause','rawAttributes','fieldName','model','map','name','keys','query','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','merge','type','FaxAccount','findAll','params','includeAll','include','find','create','body','user','role','FaxAccounts','UserProfileSection','autoAssociation'];(function(_0x1aaa8f,_0xb555dc){var _0x4ddf3c=function(_0x4af867){while(--_0x4af867){_0x1aaa8f['push'](_0x1aaa8f['shift']());}};_0x4ddf3c(++_0xb555dc);}(_0xd843,0x1b1));var _0x3d84=function(_0x1aa3fe,_0x27c5fa){_0x1aa3fe=_0x1aa3fe-0x0;var _0x163cee=_0xd843[_0x1aa3fe];return _0x163cee;};'use strict';var emlformat=require(_0x3d84('0x0'));var rimraf=require(_0x3d84('0x1'));var zipdir=require(_0x3d84('0x2'));var jsonpatch=require(_0x3d84('0x3'));var rp=require('request-promise');var moment=require(_0x3d84('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x3d84('0x5'));var path=require(_0x3d84('0x6'));var sox=require(_0x3d84('0x7'));var csv=require(_0x3d84('0x8'));var ejs=require(_0x3d84('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3d84('0xa'));var squel=require(_0x3d84('0xb'));var crypto=require(_0x3d84('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x3d84('0x8'));var querystring=require(_0x3d84('0xd'));var Papa=require(_0x3d84('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x3d84('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3d84('0x10'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x3d84('0x11'));var licenseUtil=require(_0x3d84('0x12'));var db=require(_0x3d84('0x13'))['db'];config[_0x3d84('0x14')]=_['defaults'](config[_0x3d84('0x14')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x3d84('0x14')]));require(_0x3d84('0x15'))[_0x3d84('0x16')](socket);var jayson=require('jayson/promise');var client=jayson[_0x3d84('0x17')][_0x3d84('0x18')]({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x6f119b,_0x4c67f8,_0x31a525,_0x5792c2){return new BPromise(function(_0x5bb9f0,_0x194b21){var _0xded7ba=_0x5792c2||client;return _0xded7ba[_0x3d84('0x19')](_0x6f119b,_0x31a525)[_0x3d84('0x1a')](function(_0x540484){logger[_0x3d84('0x1b')]('FaxAccount,\x20%s,\x20%s',_0x4c67f8,_0x3d84('0x1c'));logger['debug'](_0x3d84('0x1d'),_0x4c67f8,_0x3d84('0x1c'),JSON[_0x3d84('0x1e')](_0x540484));if(_0x540484['error']){if(_0x540484[_0x3d84('0x1f')]['code']===0x1f4){logger[_0x3d84('0x1f')](_0x3d84('0x20'),_0x4c67f8,_0x540484[_0x3d84('0x1f')][_0x3d84('0x21')]);return _0x194b21(_0x540484[_0x3d84('0x1f')]['message']);}logger[_0x3d84('0x1f')](_0x3d84('0x20'),_0x4c67f8,_0x540484[_0x3d84('0x1f')][_0x3d84('0x21')]);return _0x5bb9f0(_0x540484[_0x3d84('0x1f')][_0x3d84('0x21')]);}else{logger[_0x3d84('0x1b')](_0x3d84('0x20'),_0x4c67f8,_0x3d84('0x1c'));_0x5bb9f0(_0x540484[_0x3d84('0x22')][_0x3d84('0x21')]);}})[_0x3d84('0x23')](function(_0x3e3344){logger['error'](_0x3d84('0x20'),_0x4c67f8,_0x3e3344);_0x194b21(_0x3e3344);});});}function respondWithStatusCode(_0x4f09bf,_0xa7f416){_0xa7f416=_0xa7f416||0xcc;return function(_0x3723ca){if(_0x3723ca){return _0x4f09bf[_0x3d84('0x24')](_0xa7f416);}return _0x4f09bf['status'](_0xa7f416)[_0x3d84('0x25')]();};}function respondWithResult(_0x17de49,_0x2269b3){_0x2269b3=_0x2269b3||0xc8;return function(_0x2c0e7b){if(_0x2c0e7b){return _0x17de49['status'](_0x2269b3)[_0x3d84('0x26')](_0x2c0e7b);}};}function respondWithFilteredResult(_0x52fc62,_0x397352){return function(_0x21b98b){if(_0x21b98b){var _0x4f0915=typeof _0x397352[_0x3d84('0x27')]===_0x3d84('0x28')&&typeof _0x397352[_0x3d84('0x29')]===_0x3d84('0x28');var _0x57e347=_0x21b98b[_0x3d84('0x2a')];var _0x213d92=_0x4f0915?0x0:_0x397352['offset'];var _0x2cb009=_0x4f0915?_0x21b98b[_0x3d84('0x2a')]:_0x397352['offset']+_0x397352[_0x3d84('0x29')];var _0x58516a;if(_0x2cb009>=_0x57e347){_0x2cb009=_0x57e347;_0x58516a=0xc8;}else{_0x58516a=0xce;}_0x52fc62[_0x3d84('0x2b')](_0x58516a);return _0x52fc62[_0x3d84('0x2c')]('Content-Range',_0x213d92+'-'+_0x2cb009+'/'+_0x57e347)[_0x3d84('0x26')](_0x21b98b);}return null;};}function patchUpdates(_0x1a1775){return function(_0x738d76){try{jsonpatch[_0x3d84('0x2d')](_0x738d76,_0x1a1775,!![]);}catch(_0x149ae7){return BPromise[_0x3d84('0x2e')](_0x149ae7);}return _0x738d76['save']();};}function saveUpdates(_0x398e54,_0x629bba){return function(_0x300ab1){if(_0x300ab1){return _0x300ab1[_0x3d84('0x2f')](_0x398e54)['then'](function(_0x47f5d5){return _0x47f5d5;});}return null;};}function removeEntity(_0x1e86a3,_0x1d4f9d){return function(_0x11dbe3){if(_0x11dbe3){return _0x11dbe3[_0x3d84('0x30')]()[_0x3d84('0x1a')](function(){var _0x27b4be=_0x11dbe3[_0x3d84('0x31')]({'plain':!![]});var _0x50b9a='FaxAccounts';return db[_0x3d84('0x32')][_0x3d84('0x30')]({'where':{'type':_0x50b9a,'resourceId':_0x27b4be['id']}})[_0x3d84('0x1a')](function(){return _0x11dbe3;});})[_0x3d84('0x1a')](function(){_0x1e86a3[_0x3d84('0x2b')](0xcc)[_0x3d84('0x25')]();});}};}function handleEntityNotFound(_0x2229cd,_0x1cb18b){return function(_0x36f7f5){if(!_0x36f7f5){_0x2229cd['sendStatus'](0x194);}return _0x36f7f5;};}function handleError(_0x182902,_0x21a68c){_0x21a68c=_0x21a68c||0x1f4;return function(_0x5c43b0){logger[_0x3d84('0x1f')](_0x5c43b0[_0x3d84('0x33')]);if(_0x5c43b0['name']){delete _0x5c43b0['name'];}_0x182902['status'](_0x21a68c)['send'](_0x5c43b0);};}exports['index']=function(_0x301f52,_0x4e1fc3){var _0x240fc2={'include':[{'model':db[_0x3d84('0x34')],'as':_0x3d84('0x35')}]},_0x4a8d11={},_0x36eecb={'count':0x0,'rows':[]};var _0x4794fb=_['map'](db['FaxAccount'][_0x3d84('0x36')],function(_0x12a70a){return{'name':_0x12a70a[_0x3d84('0x37')],'type':_0x12a70a['type']['key']};});_0x4a8d11[_0x3d84('0x38')]=_[_0x3d84('0x39')](_0x4794fb,_0x3d84('0x3a'));_0x4a8d11['query']=_[_0x3d84('0x3b')](_0x301f52[_0x3d84('0x3c')]);_0x4a8d11[_0x3d84('0x3d')]=_[_0x3d84('0x3e')](_0x4a8d11[_0x3d84('0x38')],_0x4a8d11['query']);_0x240fc2[_0x3d84('0x3f')]=_[_0x3d84('0x3e')](_0x4a8d11[_0x3d84('0x38')],qs[_0x3d84('0x40')](_0x301f52[_0x3d84('0x3c')]['fields']));_0x240fc2['attributes']=_0x240fc2[_0x3d84('0x3f')]['length']?_0x240fc2['attributes']:_0x4a8d11[_0x3d84('0x38')];if(!_0x301f52[_0x3d84('0x3c')][_0x3d84('0x41')]('nolimit')){_0x240fc2['limit']=qs[_0x3d84('0x29')](_0x301f52[_0x3d84('0x3c')]['limit']);_0x240fc2['offset']=qs[_0x3d84('0x27')](_0x301f52[_0x3d84('0x3c')][_0x3d84('0x27')]);}_0x240fc2[_0x3d84('0x42')]=qs['sort'](_0x301f52[_0x3d84('0x3c')][_0x3d84('0x43')]);_0x240fc2[_0x3d84('0x44')]=qs[_0x3d84('0x3d')](_[_0x3d84('0x45')](_0x301f52['query'],_0x4a8d11[_0x3d84('0x3d')]),_0x4794fb);if(_0x301f52[_0x3d84('0x3c')][_0x3d84('0x46')]){_0x240fc2[_0x3d84('0x44')]=_[_0x3d84('0x47')](_0x240fc2[_0x3d84('0x44')],{'$or':_[_0x3d84('0x39')](_0x4794fb,function(_0x5876ad){if(_0x5876ad[_0x3d84('0x48')]!=='VIRTUAL'){var _0x4ad713={};_0x4ad713[_0x5876ad['name']]={'$like':'%'+_0x301f52['query'][_0x3d84('0x46')]+'%'};return _0x4ad713;}})});}_0x240fc2=_[_0x3d84('0x47')]({},_0x240fc2,_0x301f52['options']);var _0x19aa90={'where':_0x240fc2['where']};return db[_0x3d84('0x49')]['count'](_0x19aa90)['then'](function(_0x15c0b2){_0x36eecb[_0x3d84('0x2a')]=_0x15c0b2;if(_0x301f52[_0x3d84('0x3c')]['includeAll']){_0x240fc2['include']=[{'all':!![]}];}return db[_0x3d84('0x49')][_0x3d84('0x4a')](_0x240fc2);})[_0x3d84('0x1a')](function(_0x3f2676){_0x36eecb['rows']=_0x3f2676;return _0x36eecb;})[_0x3d84('0x1a')](respondWithFilteredResult(_0x4e1fc3,_0x240fc2))[_0x3d84('0x23')](handleError(_0x4e1fc3,null));};exports['show']=function(_0x4da887,_0x5b23e4){var _0x9b40c9={'raw':![],'where':{'id':_0x4da887[_0x3d84('0x4b')]['id']},'include':[{'model':db[_0x3d84('0x34')],'as':'mandatoryDispositionPause'}]},_0x4843ec={};_0x4843ec[_0x3d84('0x38')]=_['keys'](db[_0x3d84('0x49')]['rawAttributes']);_0x4843ec[_0x3d84('0x3c')]=_[_0x3d84('0x3b')](_0x4da887[_0x3d84('0x3c')]);_0x4843ec[_0x3d84('0x3d')]=_['intersection'](_0x4843ec[_0x3d84('0x38')],_0x4843ec[_0x3d84('0x3c')]);_0x9b40c9['attributes']=_['intersection'](_0x4843ec[_0x3d84('0x38')],qs[_0x3d84('0x40')](_0x4da887[_0x3d84('0x3c')][_0x3d84('0x40')]));_0x9b40c9[_0x3d84('0x3f')]=_0x9b40c9[_0x3d84('0x3f')]['length']?_0x9b40c9[_0x3d84('0x3f')]:_0x4843ec[_0x3d84('0x38')];if(_0x4da887[_0x3d84('0x3c')][_0x3d84('0x4c')]){_0x9b40c9[_0x3d84('0x4d')]=[{'all':!![]}];}_0x9b40c9=_['merge']({},_0x9b40c9,_0x4da887['options']);return db[_0x3d84('0x49')][_0x3d84('0x4e')](_0x9b40c9)[_0x3d84('0x1a')](handleEntityNotFound(_0x5b23e4,null))[_0x3d84('0x1a')](respondWithResult(_0x5b23e4,null))[_0x3d84('0x23')](handleError(_0x5b23e4,null));};exports[_0x3d84('0x4f')]=function(_0xc98cf8,_0x4a1f66){return db[_0x3d84('0x49')]['create'](_0xc98cf8[_0x3d84('0x50')],{})['then'](function(_0x3513e9){var _0x1d4289=_0xc98cf8[_0x3d84('0x51')]['get']({'plain':!![]});if(!_0x1d4289)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1d4289[_0x3d84('0x52')]===_0x3d84('0x51')){var _0x362d0d=_0x3513e9[_0x3d84('0x31')]({'plain':!![]});var _0x3fac3d=_0x3d84('0x53');return db[_0x3d84('0x54')][_0x3d84('0x4e')]({'where':{'name':_0x3fac3d,'userProfileId':_0x1d4289['userProfileId']},'raw':!![]})[_0x3d84('0x1a')](function(_0x28abaf){if(_0x28abaf&&_0x28abaf[_0x3d84('0x55')]===0x0){return db[_0x3d84('0x32')]['create']({'name':_0x362d0d[_0x3d84('0x3a')],'resourceId':_0x362d0d['id'],'type':_0x28abaf[_0x3d84('0x3a')],'sectionId':_0x28abaf['id']},{})[_0x3d84('0x1a')](function(){return _0x3513e9;});}else{return _0x3513e9;}})[_0x3d84('0x23')](function(_0xc2f11){logger[_0x3d84('0x1f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xc2f11);throw _0xc2f11;});}return _0x3513e9;})[_0x3d84('0x1a')](respondWithResult(_0x4a1f66,0xc9))[_0x3d84('0x23')](handleError(_0x4a1f66,null));};exports[_0x3d84('0x2f')]=function(_0xfe9d91,_0x411aea){if(_0xfe9d91[_0x3d84('0x50')]['id']){delete _0xfe9d91[_0x3d84('0x50')]['id'];}return db[_0x3d84('0x49')][_0x3d84('0x4e')]({'where':{'id':_0xfe9d91[_0x3d84('0x4b')]['id']},'include':[{'model':db[_0x3d84('0x34')],'as':_0x3d84('0x35')}]})['then'](handleEntityNotFound(_0x411aea,null))['then'](saveUpdates(_0xfe9d91['body'],null))[_0x3d84('0x1a')](respondWithResult(_0x411aea,null))['catch'](handleError(_0x411aea,null));};exports[_0x3d84('0x30')]=function(_0x3a5754,_0x970066){return db[_0x3d84('0x49')][_0x3d84('0x4e')]({'where':{'id':_0x3a5754[_0x3d84('0x4b')]['id']}})['then'](handleEntityNotFound(_0x970066,null))['then'](removeEntity(_0x970066,null))[_0x3d84('0x23')](handleError(_0x970066,null));};exports['describe']=function(_0x5e27b1,_0x26f94e){return db[_0x3d84('0x49')][_0x3d84('0x56')]()[_0x3d84('0x1a')](respondWithResult(_0x26f94e,null))[_0x3d84('0x23')](handleError(_0x26f94e,null));};exports[_0x3d84('0x57')]=function(_0x5bb951,_0x200379,_0x2ec7f8){if(_0x5bb951[_0x3d84('0x50')]['id']){delete _0x5bb951[_0x3d84('0x50')]['id'];}return db[_0x3d84('0x49')][_0x3d84('0x4e')]({'where':{'id':_0x5bb951['params']['id']}})[_0x3d84('0x1a')](handleEntityNotFound(_0x200379,null))[_0x3d84('0x1a')](function(_0x42fc5c){if(_0x42fc5c){_0x5bb951[_0x3d84('0x50')]['FaxAccountId']=_0x42fc5c['id'];return db[_0x3d84('0x58')]['create'](_0x5bb951[_0x3d84('0x50')]);}})[_0x3d84('0x1a')](respondWithResult(_0x200379,null))[_0x3d84('0x23')](handleError(_0x200379,null));};exports['getDispositions']=function(_0x4d5b40,_0x342fdf,_0x1e066f){var _0x74cb80={'raw':![],'where':{}};var _0xb925e6={};var _0x226771={'count':0x0,'rows':[]};return db[_0x3d84('0x49')][_0x3d84('0x59')]({'where':{'id':_0x4d5b40[_0x3d84('0x4b')]['id']}})[_0x3d84('0x1a')](handleEntityNotFound(_0x342fdf,null))[_0x3d84('0x1a')](function(_0x4c32f2){if(_0x4c32f2){_0xb925e6[_0x3d84('0x38')]=_[_0x3d84('0x3b')](db['Disposition'][_0x3d84('0x36')]);_0xb925e6[_0x3d84('0x3c')]=_[_0x3d84('0x3b')](_0x4d5b40[_0x3d84('0x3c')]);_0xb925e6[_0x3d84('0x3d')]=_[_0x3d84('0x3e')](_0xb925e6['model'],_0xb925e6[_0x3d84('0x3c')]);_0x74cb80[_0x3d84('0x3f')]=_[_0x3d84('0x3e')](_0xb925e6[_0x3d84('0x38')],qs[_0x3d84('0x40')](_0x4d5b40[_0x3d84('0x3c')][_0x3d84('0x40')]));_0x74cb80[_0x3d84('0x3f')]=_0x74cb80['attributes'][_0x3d84('0x5a')]?_0x74cb80[_0x3d84('0x3f')]:_0xb925e6[_0x3d84('0x38')];if(!_0x4d5b40[_0x3d84('0x3c')]['hasOwnProperty'](_0x3d84('0x5b'))){_0x74cb80['limit']=qs['limit'](_0x4d5b40[_0x3d84('0x3c')]['limit']);_0x74cb80[_0x3d84('0x27')]=qs[_0x3d84('0x27')](_0x4d5b40[_0x3d84('0x3c')][_0x3d84('0x27')]);}_0x74cb80[_0x3d84('0x42')]=qs[_0x3d84('0x43')](_0x4d5b40['query']['sort']);_0x74cb80[_0x3d84('0x44')]=qs[_0x3d84('0x3d')](_[_0x3d84('0x45')](_0x4d5b40[_0x3d84('0x3c')],_0xb925e6[_0x3d84('0x3d')]));_0x74cb80[_0x3d84('0x44')]['FaxAccountId']=_0x4c32f2['id'];if(_0x4d5b40['query'][_0x3d84('0x46')]){_0x74cb80['where']=_[_0x3d84('0x47')](_0x74cb80[_0x3d84('0x44')],{'$or':_[_0x3d84('0x39')](_0x74cb80[_0x3d84('0x3f')],function(_0x5e7183){var _0xfbab5a={};_0xfbab5a[_0x5e7183]={'$like':'%'+_0x4d5b40['query']['filter']+'%'};return _0xfbab5a;})});}_0x74cb80=_[_0x3d84('0x47')]({},_0x74cb80,_0x4d5b40['options']);return db['Disposition'][_0x3d84('0x2a')]({'where':_0x74cb80[_0x3d84('0x44')]})[_0x3d84('0x1a')](function(_0x4bbf2b){_0x226771[_0x3d84('0x2a')]=_0x4bbf2b;if(_0x4d5b40[_0x3d84('0x3c')][_0x3d84('0x4c')]){_0x74cb80[_0x3d84('0x4d')]=[{'all':!![]}];}return db[_0x3d84('0x58')][_0x3d84('0x4a')](_0x74cb80);})[_0x3d84('0x1a')](function(_0x577d60){_0x226771[_0x3d84('0x5c')]=_0x577d60;return _0x226771;});}})[_0x3d84('0x1a')](respondWithFilteredResult(_0x342fdf,_0x74cb80))[_0x3d84('0x23')](handleError(_0x342fdf,null));};exports[_0x3d84('0x5d')]=function(_0x5e3f0e,_0x48cae3,_0x1e503a){return db['FaxAccount'][_0x3d84('0x4e')]({'where':{'id':_0x5e3f0e[_0x3d84('0x4b')]['id']}})[_0x3d84('0x1a')](handleEntityNotFound(_0x48cae3,null))[_0x3d84('0x1a')](function(_0x3b9512){if(_0x3b9512){return _0x3b9512[_0x3d84('0x5d')](_0x5e3f0e[_0x3d84('0x3c')][_0x3d84('0x5e')]);}})[_0x3d84('0x1a')](respondWithStatusCode(_0x48cae3,null))['catch'](handleError(_0x48cae3,null));};exports[_0x3d84('0x5f')]=function(_0x339508,_0x207dd8,_0xd82354){if(_0x339508[_0x3d84('0x50')]['id']){delete _0x339508[_0x3d84('0x50')]['id'];}return db['FaxAccount'][_0x3d84('0x4e')]({'where':{'id':_0x339508['params']['id']}})[_0x3d84('0x1a')](handleEntityNotFound(_0x207dd8,null))['then'](function(_0x727b35){if(_0x727b35){_0x339508[_0x3d84('0x50')]['FaxAccountId']=_0x727b35['id'];return db[_0x3d84('0x60')][_0x3d84('0x4f')](_0x339508[_0x3d84('0x50')]);}})['then'](respondWithResult(_0x207dd8,null))['catch'](handleError(_0x207dd8,null));};exports[_0x3d84('0x61')]=function(_0xa6f659,_0x560575,_0x4044d2){var _0x3d2947={'raw':![],'where':{}};var _0xc42a44={};var _0x345eca={'count':0x0,'rows':[]};return db[_0x3d84('0x49')][_0x3d84('0x59')]({'where':{'id':_0xa6f659['params']['id']}})[_0x3d84('0x1a')](handleEntityNotFound(_0x560575,null))[_0x3d84('0x1a')](function(_0x1c3e62){if(_0x1c3e62){_0xc42a44['model']=_[_0x3d84('0x3b')](db['CannedAnswer'][_0x3d84('0x36')]);_0xc42a44[_0x3d84('0x3c')]=_[_0x3d84('0x3b')](_0xa6f659[_0x3d84('0x3c')]);_0xc42a44[_0x3d84('0x3d')]=_['intersection'](_0xc42a44[_0x3d84('0x38')],_0xc42a44[_0x3d84('0x3c')]);_0x3d2947[_0x3d84('0x3f')]=_['intersection'](_0xc42a44[_0x3d84('0x38')],qs[_0x3d84('0x40')](_0xa6f659[_0x3d84('0x3c')][_0x3d84('0x40')]));_0x3d2947['attributes']=_0x3d2947[_0x3d84('0x3f')][_0x3d84('0x5a')]?_0x3d2947[_0x3d84('0x3f')]:_0xc42a44[_0x3d84('0x38')];if(!_0xa6f659[_0x3d84('0x3c')]['hasOwnProperty'](_0x3d84('0x5b'))){_0x3d2947['limit']=qs[_0x3d84('0x29')](_0xa6f659[_0x3d84('0x3c')]['limit']);_0x3d2947[_0x3d84('0x27')]=qs[_0x3d84('0x27')](_0xa6f659['query'][_0x3d84('0x27')]);}_0x3d2947['order']=qs[_0x3d84('0x43')](_0xa6f659[_0x3d84('0x3c')][_0x3d84('0x43')]);_0x3d2947[_0x3d84('0x44')]=qs[_0x3d84('0x3d')](_['pick'](_0xa6f659['query'],_0xc42a44[_0x3d84('0x3d')]));_0x3d2947['where']['FaxAccountId']=_0x1c3e62['id'];if(_0xa6f659[_0x3d84('0x3c')]['filter']){_0x3d2947[_0x3d84('0x44')]=_['merge'](_0x3d2947[_0x3d84('0x44')],{'$or':_['map'](_0x3d2947[_0x3d84('0x3f')],function(_0x2cdc34){var _0x1b72da={};_0x1b72da[_0x2cdc34]={'$like':'%'+_0xa6f659[_0x3d84('0x3c')][_0x3d84('0x46')]+'%'};return _0x1b72da;})});}_0x3d2947=_[_0x3d84('0x47')]({},_0x3d2947,_0xa6f659[_0x3d84('0x62')]);return db[_0x3d84('0x60')][_0x3d84('0x2a')]({'where':_0x3d2947['where']})[_0x3d84('0x1a')](function(_0x463e25){_0x345eca['count']=_0x463e25;if(_0xa6f659['query']['includeAll']){_0x3d2947[_0x3d84('0x4d')]=[{'all':!![]}];}return db[_0x3d84('0x60')][_0x3d84('0x4a')](_0x3d2947);})[_0x3d84('0x1a')](function(_0x38acf7){_0x345eca[_0x3d84('0x5c')]=_0x38acf7;return _0x345eca;});}})[_0x3d84('0x1a')](respondWithFilteredResult(_0x560575,_0x3d2947))['catch'](handleError(_0x560575,null));};exports[_0x3d84('0x63')]=function(_0x2eb84f,_0x238e5b,_0x1b9fe2){return db[_0x3d84('0x49')][_0x3d84('0x4e')]({'where':{'id':_0x2eb84f[_0x3d84('0x4b')]['id']}})[_0x3d84('0x1a')](handleEntityNotFound(_0x238e5b,null))[_0x3d84('0x1a')](function(_0x1f86ff){if(_0x1f86ff){return _0x1f86ff[_0x3d84('0x63')](_0x2eb84f[_0x3d84('0x3c')]['ids']);}})['then'](respondWithStatusCode(_0x238e5b,null))[_0x3d84('0x23')](handleError(_0x238e5b,null));};exports['addInteraction']=function(_0x17fab2,_0x424160,_0x23cf76){return db[_0x3d84('0x64')][_0x3d84('0x4e')]({'where':{'id':_0x17fab2[_0x3d84('0x4b')]['id']}})[_0x3d84('0x1a')](handleEntityNotFound(_0x424160,null))['then'](function(_0x3fe964){if(_0x3fe964){return _0x3fe964['addInteraction'](_0x17fab2[_0x3d84('0x50')][_0x3d84('0x5e')],_[_0x3d84('0x65')](_0x17fab2['body'],[_0x3d84('0x5e'),'id'])||{});}})['then'](respondWithResult(_0x424160,null))[_0x3d84('0x23')](handleError(_0x424160,null));};exports['getInteractions']=function(_0x484ef0,_0x39e77b,_0x5f5988){var _0x9327={'raw':![],'where':{}};var _0x15f47a={};var _0x32744a={'count':0x0,'rows':[]};return db[_0x3d84('0x49')][_0x3d84('0x59')]({'where':{'id':_0x484ef0['params']['id']}})[_0x3d84('0x1a')](handleEntityNotFound(_0x39e77b,null))[_0x3d84('0x1a')](function(_0x1cf19d){if(_0x1cf19d){_0x15f47a['model']=_[_0x3d84('0x3b')](db[_0x3d84('0x64')][_0x3d84('0x36')]);_0x15f47a[_0x3d84('0x3c')]=_[_0x3d84('0x3b')](_0x484ef0[_0x3d84('0x3c')]);_0x15f47a['filters']=_['intersection'](_0x15f47a['model'],_0x15f47a[_0x3d84('0x3c')]);_0x9327[_0x3d84('0x3f')]=_['intersection'](_0x15f47a[_0x3d84('0x38')],qs[_0x3d84('0x40')](_0x484ef0[_0x3d84('0x3c')][_0x3d84('0x40')]));_0x9327['attributes']=_0x9327[_0x3d84('0x3f')][_0x3d84('0x5a')]?_0x9327[_0x3d84('0x3f')]:_0x15f47a[_0x3d84('0x38')];if(!_0x484ef0[_0x3d84('0x3c')][_0x3d84('0x41')](_0x3d84('0x5b'))){_0x9327[_0x3d84('0x29')]=qs[_0x3d84('0x29')](_0x484ef0[_0x3d84('0x3c')][_0x3d84('0x29')]);_0x9327[_0x3d84('0x27')]=qs[_0x3d84('0x27')](_0x484ef0['query'][_0x3d84('0x27')]);}_0x9327['order']=qs[_0x3d84('0x43')](_0x484ef0['query']['sort']);_0x9327[_0x3d84('0x44')]=qs[_0x3d84('0x3d')](_['pick'](_0x484ef0[_0x3d84('0x3c')],_0x15f47a[_0x3d84('0x3d')]));_0x9327[_0x3d84('0x44')]['FaxAccountId']=_0x1cf19d['id'];if(_0x484ef0['query'][_0x3d84('0x46')]){_0x9327['where']=_[_0x3d84('0x47')](_0x9327[_0x3d84('0x44')],{'$or':_['map'](_0x9327['attributes'],function(_0x53f972){var _0x29fc2a={};_0x29fc2a[_0x53f972]={'$like':'%'+_0x484ef0[_0x3d84('0x3c')][_0x3d84('0x46')]+'%'};return _0x29fc2a;})});}_0x9327=_[_0x3d84('0x47')]({},_0x9327,_0x484ef0['options']);return db['FaxInteraction']['count']({'where':_0x9327['where']})[_0x3d84('0x1a')](function(_0x4896cd){_0x32744a[_0x3d84('0x2a')]=_0x4896cd;if(_0x484ef0[_0x3d84('0x3c')]['includeAll']){_0x9327[_0x3d84('0x4d')]=[{'model':db[_0x3d84('0x66')],'as':_0x3d84('0x67'),'required':![]},{'model':db[_0x3d84('0x68')],'as':_0x3d84('0x69'),'attributes':['name',_0x3d84('0x6a'),_0x3d84('0x6b')],'required':![]},{'model':db['Tag'],'as':_0x3d84('0x6c'),'attributes':['id','name',_0x3d84('0x6d')],'where':_0x484ef0[_0x3d84('0x3c')][_0x3d84('0x6e')]?{'id':_0x484ef0[_0x3d84('0x3c')][_0x3d84('0x6e')]}:undefined,'required':_0x484ef0['query'][_0x3d84('0x6e')]?!![]:![]}];}return db['FaxInteraction'][_0x3d84('0x4a')](_0x9327);})['then'](function(_0x1a5e01){_0x32744a[_0x3d84('0x5c')]=_0x1a5e01;return _0x32744a;});}})[_0x3d84('0x1a')](respondWithFilteredResult(_0x39e77b,_0x9327))[_0x3d84('0x23')](handleError(_0x39e77b,null));};exports['addApplications']=function(_0x518435,_0x1c971c,_0x5efb0b){return db[_0x3d84('0x49')]['findOne']({'where':{'id':_0x518435[_0x3d84('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1c971c,null))[_0x3d84('0x1a')](function(_0x474863){if(_0x474863){return db[_0x3d84('0x6f')][_0x3d84('0x70')](function(_0x5116e7){return db[_0x3d84('0x71')]['destroy']({'where':{'FaxAccountId':_0x518435['params']['id']},'transaction':_0x5116e7})['then'](function(_0x3ee446){var _0x208c07=_[_0x3d84('0x39')](_0x518435[_0x3d84('0x50')],function(_0x1231a1){_0x1231a1[_0x3d84('0x72')]=_0x518435['params']['id'];return _0x1231a1;});return db[_0x3d84('0x71')][_0x3d84('0x73')](_0x208c07,{'transaction':_0x5116e7});});})[_0x3d84('0x1a')](function(){return db[_0x3d84('0x71')][_0x3d84('0x74')]({'where':{'FaxAccountId':_0x518435[_0x3d84('0x4b')]['id']},'order':_0x3d84('0x75')});});}})[_0x3d84('0x1a')](respondWithResult(_0x1c971c,null))['catch'](handleError(_0x1c971c,null));};exports['getApplications']=function(_0x2ecb80,_0x20be37,_0x1b51da){var _0x43c550={};var _0xf4585d={};var _0x2896df;var _0x2d1d1c;return db[_0x3d84('0x49')][_0x3d84('0x59')]({'where':{'id':_0x2ecb80[_0x3d84('0x4b')]['id']}})[_0x3d84('0x1a')](handleEntityNotFound(_0x20be37,null))[_0x3d84('0x1a')](function(_0x3b74bd){if(_0x3b74bd){_0x2896df=_0x3b74bd;_0xf4585d[_0x3d84('0x38')]=_['keys'](db[_0x3d84('0x71')][_0x3d84('0x36')]);_0xf4585d[_0x3d84('0x3c')]=_[_0x3d84('0x3b')](_0x2ecb80[_0x3d84('0x3c')]);_0xf4585d[_0x3d84('0x3d')]=_[_0x3d84('0x3e')](_0xf4585d[_0x3d84('0x38')],_0xf4585d[_0x3d84('0x3c')]);_0x43c550['attributes']=_[_0x3d84('0x3e')](_0xf4585d[_0x3d84('0x38')],qs[_0x3d84('0x40')](_0x2ecb80['query'][_0x3d84('0x40')]));_0x43c550[_0x3d84('0x3f')]=_0x43c550[_0x3d84('0x3f')][_0x3d84('0x5a')]?_0x43c550['attributes']:_0xf4585d['model'];_0x43c550['order']=qs[_0x3d84('0x43')](_0x2ecb80[_0x3d84('0x3c')]['sort']);_0x43c550[_0x3d84('0x44')]=qs[_0x3d84('0x3d')](_[_0x3d84('0x45')](_0x2ecb80['query'],_0xf4585d[_0x3d84('0x3d')]));if(_0x2ecb80[_0x3d84('0x3c')][_0x3d84('0x46')]){_0x43c550['where']=_[_0x3d84('0x47')](_0x43c550[_0x3d84('0x44')],{'$or':_['map'](_0x43c550[_0x3d84('0x3f')],function(_0x498fda){var _0x3c15ad={};_0x3c15ad[_0x498fda]={'$like':'%'+_0x2ecb80[_0x3d84('0x3c')]['filter']+'%'};return _0x3c15ad;})});}_0x43c550=_[_0x3d84('0x47')]({},_0x43c550,_0x2ecb80[_0x3d84('0x62')]);return _0x2896df[_0x3d84('0x76')](_0x43c550);}})[_0x3d84('0x1a')](function(_0x384fe5){if(_0x384fe5){_0x2d1d1c=_0x384fe5[_0x3d84('0x5a')];if(!_0x2ecb80[_0x3d84('0x3c')][_0x3d84('0x41')]('nolimit')){_0x43c550[_0x3d84('0x29')]=qs[_0x3d84('0x29')](_0x2ecb80[_0x3d84('0x3c')][_0x3d84('0x29')]);_0x43c550[_0x3d84('0x27')]=qs[_0x3d84('0x27')](_0x2ecb80['query'][_0x3d84('0x27')]);}return _0x2896df[_0x3d84('0x76')](_0x43c550);}})[_0x3d84('0x1a')](function(_0x63ff59){if(_0x63ff59){return _0x63ff59?{'count':_0x2d1d1c,'rows':_0x63ff59}:null;}})[_0x3d84('0x1a')](respondWithResult(_0x20be37,null))[_0x3d84('0x23')](handleError(_0x20be37,null));};function Extension(_0x4c49e9,_0x58e494,_0x540889,_0x18cfd7){this['context']=_0x3d84('0x77');this[_0x3d84('0x78')]=_0x4c49e9[_0x3d84('0x79')];this[_0x3d84('0x7a')]=_0x18cfd7;this[_0x3d84('0x48')]='system';this['description']=_0x3d84('0x7b');this[_0x3d84('0x72')]=_0x4c49e9['id'];this[_0x3d84('0x75')]=_0x58e494;this[_0x3d84('0x7c')]=_0x540889;}function createExtensionsReciveFax(_0x3f3d8e){var _0x2d8693=0x1;var _0x24c20f=[];_0x24c20f[_0x3d84('0x7d')](new Extension(_0x3f3d8e,_0x2d8693,'',_0x3d84('0x7e')));_0x2d8693+=0x1;_0x24c20f[_0x3d84('0x7d')](new Extension(_0x3f3d8e,_0x2d8693,'CDR(type)=inbound-fax','Set'));_0x2d8693+=0x1;for(var _0x4c0e37 in _0x3f3d8e){if(_0x3f3d8e['hasOwnProperty'](_0x4c0e37)&&(_0x4c0e37==='ecm'||_0x4c0e37===_0x3d84('0x79')||_0x4c0e37===_0x3d84('0x7f')||_0x4c0e37==='faxdetect'||_0x4c0e37===_0x3d84('0x80')||_0x4c0e37===_0x3d84('0x81')||_0x4c0e37===_0x3d84('0x82')||_0x4c0e37===_0x3d84('0x83')||_0x4c0e37===_0x3d84('0x84'))){_0x24c20f['push'](new Extension(_0x3f3d8e,_0x2d8693,_0x3d84('0x85')+_0x4c0e37+')='+_0x3f3d8e[_0x4c0e37],_0x3d84('0x86')));_0x2d8693+=0x1;}}_0x24c20f['push'](new Extension(_0x3f3d8e,_0x2d8693,'6',_0x3d84('0x87')));_0x2d8693+=0x1;_0x24c20f[_0x3d84('0x7d')](new Extension(_0x3f3d8e,_0x2d8693,'/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'));_0x2d8693=0x0;return _0x24c20f;}exports[_0x3d84('0x88')]=function(_0x37ca26,_0x2f06bc,_0xa4aef0){var _0x426a53;return db[_0x3d84('0x6f')][_0x3d84('0x70')](function(_0xbe5ca0){return db['FaxAccount'][_0x3d84('0x4f')](_0x37ca26[_0x3d84('0x50')],{'transaction':_0xbe5ca0})[_0x3d84('0x1a')](function(_0x43b7e7){_0x426a53=_0x43b7e7[_0x3d84('0x31')]({'plain':!![]});return db[_0x3d84('0x89')][_0x3d84('0x73')](createExtensionsReciveFax(_0x426a53),{'transaction':_0xbe5ca0});});})[_0x3d84('0x1a')](function(){return _0x426a53;})[_0x3d84('0x1a')](respondWithResult(_0x2f06bc,null))[_0x3d84('0x23')](handleError(_0x2f06bc,null));};exports[_0x3d84('0x8a')]=function(_0x59edc1,_0x2aa425,_0x15567f){var _0x57de00;return db[_0x3d84('0x6f')]['transaction'](function(_0x54cb85){return db[_0x3d84('0x49')][_0x3d84('0x2f')](_0x59edc1[_0x3d84('0x50')],{'where':{'id':_0x59edc1[_0x3d84('0x50')]['id']},'transaction':_0x54cb85})[_0x3d84('0x1a')](function(_0xb44c08){return db[_0x3d84('0x89')][_0x3d84('0x30')]({'where':{'FaxAccountId':_0x59edc1[_0x3d84('0x50')]['id']},'transaction':_0x54cb85})[_0x3d84('0x1a')](function(_0x3a1fc1){return db[_0x3d84('0x89')][_0x3d84('0x73')](createExtensionsReciveFax(_['omit'](_0x59edc1[_0x3d84('0x50')],[_0x3d84('0x8b'),'key',_0x3d84('0x8c'),_0x3d84('0x8d'),'TrunkId','ListId'])),{'transaction':_0x54cb85});});});})['then'](function(){return db[_0x3d84('0x49')][_0x3d84('0x8e')](_0x59edc1[_0x3d84('0x50')]['id']);})['then'](respondWithResult(_0x2aa425,null))[_0x3d84('0x23')](handleError(_0x2aa425,null));};exports['getMessages']=function(_0x482c52,_0x19f684,_0x5b4c07){var _0x444a13={'raw':!![],'where':{}};var _0x2251d2={};var _0x21cb04={'count':0x0,'rows':[]};return db[_0x3d84('0x49')]['findOne']({'where':{'id':_0x482c52[_0x3d84('0x4b')]['id']}})[_0x3d84('0x1a')](handleEntityNotFound(_0x19f684,null))[_0x3d84('0x1a')](function(_0x58f647){if(_0x58f647){_0x2251d2[_0x3d84('0x38')]=_[_0x3d84('0x3b')](db[_0x3d84('0x8f')][_0x3d84('0x36')]);_0x2251d2['query']=_[_0x3d84('0x3b')](_0x482c52[_0x3d84('0x3c')]);_0x2251d2['filters']=_['intersection'](_0x2251d2[_0x3d84('0x38')],_0x2251d2[_0x3d84('0x3c')]);_0x444a13[_0x3d84('0x3f')]=_[_0x3d84('0x3e')](_0x2251d2[_0x3d84('0x38')],qs['fields'](_0x482c52[_0x3d84('0x3c')]['fields']));_0x444a13[_0x3d84('0x3f')]=_0x444a13[_0x3d84('0x3f')][_0x3d84('0x5a')]?_0x444a13[_0x3d84('0x3f')]:_0x2251d2['model'];if(!_0x482c52['query'][_0x3d84('0x41')](_0x3d84('0x5b'))){_0x444a13[_0x3d84('0x29')]=qs[_0x3d84('0x29')](_0x482c52['query'][_0x3d84('0x29')]);_0x444a13[_0x3d84('0x27')]=qs[_0x3d84('0x27')](_0x482c52[_0x3d84('0x3c')][_0x3d84('0x27')]);}_0x444a13['order']=qs['sort'](_0x482c52[_0x3d84('0x3c')]['sort']);_0x444a13[_0x3d84('0x44')]=qs[_0x3d84('0x3d')](_['pick'](_0x482c52['query'],_0x2251d2['filters']));_0x444a13['where'][_0x3d84('0x72')]=_0x58f647['id'];if(_0x482c52[_0x3d84('0x3c')][_0x3d84('0x46')]){_0x444a13[_0x3d84('0x44')]=_[_0x3d84('0x47')](_0x444a13[_0x3d84('0x44')],{'$or':_['map'](_0x444a13[_0x3d84('0x3f')],function(_0x1d0120){var _0x35ca6f={};_0x35ca6f[_0x1d0120]={'$like':'%'+_0x482c52[_0x3d84('0x3c')][_0x3d84('0x46')]+'%'};return _0x35ca6f;})});}if(_0x482c52[_0x3d84('0x3c')][_0x3d84('0x90')]){var _0x148b52=_0x482c52[_0x3d84('0x3c')][_0x3d84('0x90')]['split'](',');var _0x3c5e31={};_0x3c5e31[_0x148b52[0x0]]={'$gte':moment(_0x148b52[0x1])[_0x3d84('0x91')](_0x3d84('0x92'))};_0x444a13[_0x3d84('0x44')]=_[_0x3d84('0x47')](_0x444a13[_0x3d84('0x44')],_0x3c5e31);}_0x444a13=_['merge']({},_0x444a13,_0x482c52[_0x3d84('0x62')]);return db[_0x3d84('0x8f')][_0x3d84('0x2a')]({'where':_0x444a13['where']})[_0x3d84('0x1a')](function(_0x542d5e){_0x21cb04[_0x3d84('0x2a')]=_0x542d5e;if(_0x482c52[_0x3d84('0x3c')][_0x3d84('0x4c')]){_0x444a13[_0x3d84('0x4d')]=[{'all':!![]}];}return db[_0x3d84('0x8f')][_0x3d84('0x4a')](_0x444a13);})[_0x3d84('0x1a')](function(_0x34a2c3){_0x21cb04['rows']=_0x34a2c3;return _0x21cb04;});}})['then'](respondWithFilteredResult(_0x19f684,_0x444a13))['catch'](handleError(_0x19f684,null));};exports['send']=function(_0x28376f,_0x31460c,_0x53d80f){var _0x3a3ecc,_0x53799d={},_0x4aa546;if(_0x28376f['body']['to']){_0x4aa546=_0x28376f[_0x3d84('0x50')]['to'][0x0];}return db[_0x3d84('0x49')][_0x3d84('0x4e')]({'where':{'id':_0x28376f['params']['id']},'include':[{'model':db['CmList'],'as':_0x3d84('0x93'),'include':[{'model':db[_0x3d84('0x66')],'as':'Contacts','where':{'fax':_0x4aa546},'limit':0x1,'order':[[_0x3d84('0x8d'),_0x3d84('0x94')]]}]}]})[_0x3d84('0x1a')](handleEntityNotFound(_0x31460c,null))[_0x3d84('0x1a')](function(_0x45b3f3){_0x3a3ecc=_0x45b3f3;if(_0x28376f[_0x3d84('0x50')][_0x3d84('0x95')]&&_0x28376f['body']['attachments'][_0x3d84('0x5a')]){for(var _0x2add95=0x0;_0x2add95<_0x28376f['body'][_0x3d84('0x95')][_0x3d84('0x5a')];_0x2add95+=0x1){_0x28376f['body']['attachments'][_0x2add95]={'filename':_0x28376f[_0x3d84('0x50')][_0x3d84('0x95')][_0x2add95][_0x3d84('0x3a')],'id':_0x28376f['body'][_0x3d84('0x95')][_0x2add95]['id'],'path':path[_0x3d84('0x96')](config['root'],_0x3d84('0x97'),_0x28376f[_0x3d84('0x50')][_0x3d84('0x95')][_0x2add95][_0x3d84('0x98')])};}}return respondWithRpcPromise(_0x3d84('0x99'),_0x3d84('0x99'),{'FaxAccountId':_[_0x3d84('0x9a')](_0x28376f['params']['id'])?undefined:_0x28376f['params']['id'],'path':_[_0x3d84('0x9a')](_0x28376f['body'][_0x3d84('0x95')][0x0][_0x3d84('0x6')])?undefined:_0x28376f[_0x3d84('0x50')][_0x3d84('0x95')][0x0][_0x3d84('0x6')],'fax':_[_0x3d84('0x9a')](_0x28376f[_0x3d84('0x50')]['to'][0x0])?undefined:_0x28376f['body']['to'][0x0]},client9002);})[_0x3d84('0x1a')](function(){if(_0x3a3ecc){if(_['isNil'](_0x28376f[_0x3d84('0x50')][_0x3d84('0x9b')])){_0x28376f[_0x3d84('0x50')][_0x3d84('0x9b')]=util[_0x3d84('0x91')](_0x3d84('0x9c'),_0x3a3ecc[_0x3d84('0x3a')],_0x3a3ecc[_0x3d84('0x9d')]);}if(_0x3a3ecc[_0x3d84('0x93')]){if(_0x3a3ecc[_0x3d84('0x93')]['Contacts'][_0x3d84('0x5a')]){return _0x3a3ecc[_0x3d84('0x93')]['Contacts'][0x0];}else{return db[_0x3d84('0x66')][_0x3d84('0x4f')](_['defaults'](_0x28376f[_0x3d84('0x50')],{'firstName':_0x28376f[_0x3d84('0x50')]['to'][0x0],'phone':_0x28376f[_0x3d84('0x50')]['to'][0x0],'fax':_0x28376f[_0x3d84('0x50')]['to'][0x0],'ListId':_0x3a3ecc['ListId']}));}}else{throw new Error(_0x3d84('0x9e'));}}else{throw new Error(_0x3d84('0x9f'));}})['then'](function(_0x18013c){if(_0x18013c){return db['FaxInteraction'][_0x3d84('0x4e')]({'where':{'ContactId':_0x18013c['id'],'closed':![],'FaxAccountId':_0x3a3ecc['id']}})[_0x3d84('0x1a')](function(_0x93c79){if(_0x93c79){return[_0x93c79,![]];}return db['FaxInteraction'][_0x3d84('0x4f')]({'UserId':_0x28376f[_0x3d84('0x51')]['id'],'ContactId':_0x18013c['id'],'FaxAccountId':_0x3a3ecc['id'],'fax':_0x28376f[_0x3d84('0x50')]['to'][0x0],'firstMsgDirection':'out','Messages':[_[_0x3d84('0x47')](_0x28376f[_0x3d84('0x50')],{'read':![],'body':_0x28376f[_0x3d84('0x50')][_0x3d84('0x95')][0x0][_0x3d84('0xa0')],'FaxAccountId':_0x3a3ecc['id'],'UserId':_0x28376f[_0x3d84('0x51')]['id'],'ContactId':_0x18013c['id'],'AttachmentId':_0x28376f['body'][_0x3d84('0x95')][0x0]['id']})]},{'include':[{'model':db[_0x3d84('0x8f')],'as':'Messages'}]})['then'](function(_0x4ba703){return[_0x4ba703,!![]];});});}else{throw new Error(_0x3d84('0xa1'));}})[_0x3d84('0xa2')](function(_0x2733d3,_0x1e3d25){if(_0x1e3d25){return _0x2733d3;}return db[_0x3d84('0x8f')]['create']({'direction':_0x3d84('0xa3'),'read':![],'body':_0x28376f[_0x3d84('0x50')]['attachments'][0x0][_0x3d84('0xa0')],'FaxAccountId':_0x3a3ecc['id'],'FaxInteractionId':_0x2733d3['id'],'UserId':_0x28376f[_0x3d84('0x51')]['id'],'ContactId':_0x2733d3['ContactId'],'AttachmentId':_0x28376f['body'][_0x3d84('0x95')][0x0]['id']})['then'](function(_0x2d62c8){_0x2733d3['dataValues'][_0x3d84('0xa4')]=[];_0x2733d3[_0x3d84('0xa5')]['Messages']['push'](_0x2d62c8[_0x3d84('0xa5')]);return _0x2733d3;});})[_0x3d84('0x1a')](function(_0x5a4acd){respondWithRpcPromise(_0x3d84('0xa6'),_0x3d84('0xa6'),{'FaxAccountId':_['isNil'](_0x28376f[_0x3d84('0x4b')]['id'])?undefined:_0x28376f[_0x3d84('0x4b')]['id'],'path':_[_0x3d84('0x9a')](_0x28376f[_0x3d84('0x50')]['attachments'][0x0]['path'])?undefined:_0x28376f[_0x3d84('0x50')]['attachments'][0x0][_0x3d84('0x6')],'fax':_[_0x3d84('0x9a')](_0x28376f[_0x3d84('0x50')]['to'][0x0])?undefined:_0x28376f[_0x3d84('0x50')]['to'][0x0],'AttachmentId':_0x28376f[_0x3d84('0x50')][_0x3d84('0x95')][0x0]['id']},client9002)[_0x3d84('0x1a')](function(_0x2b39dc){logger[_0x3d84('0x1b')](_0x3d84('0xa7'),_0x2b39dc);})[_0x3d84('0x23')](function(_0x30aa02){logger[_0x3d84('0x1b')](_0x3d84('0xa7'),_0x30aa02);});return _0x5a4acd;})['then'](respondWithResult(_0x31460c,null))[_0x3d84('0x23')](handleError(_0x31460c,null));};exports[_0x3d84('0xa8')]=function(_0x6f38ba,_0x51db79,_0x1d3fd2){return db[_0x3d84('0x49')][_0x3d84('0x4e')]({'where':{'id':_0x6f38ba[_0x3d84('0x4b')]['id']}})['then'](handleEntityNotFound(_0x51db79,null))[_0x3d84('0x1a')](function(_0xc2c91f){if(_0xc2c91f){return _0xc2c91f[_0x3d84('0xa8')](_0x6f38ba[_0x3d84('0x50')][_0x3d84('0x5e')],_['omit'](_0x6f38ba[_0x3d84('0x50')],['ids','id'])||{})[_0x3d84('0xa2')](function(_0xdee5b7){for(var _0x3be26b=0x0;_0x3be26b<_0x6f38ba[_0x3d84('0x50')][_0x3d84('0x5e')][_0x3d84('0x5a')];_0x3be26b+=0x1){socket['emit'](_0x3d84('0xa9'),{'UserId':Number(_0x6f38ba['body']['ids'][_0x3be26b]),'FaxAccountId':Number(_0x6f38ba[_0x3d84('0x4b')]['id'])});}return _0xdee5b7;});}})[_0x3d84('0x1a')](respondWithResult(_0x51db79,null))['catch'](handleError(_0x51db79,null));};exports[_0x3d84('0xaa')]=function(_0x7b8af,_0x5053ad,_0x56fa9d){return db[_0x3d84('0x49')][_0x3d84('0x4e')]({'where':{'id':_0x7b8af['params']['id']}})['then'](handleEntityNotFound(_0x5053ad,null))[_0x3d84('0x1a')](function(_0x21b976){if(_0x21b976){return _0x21b976[_0x3d84('0xaa')](_0x7b8af['query']['ids'])[_0x3d84('0x1a')](function(){if(_['isArray'](_0x7b8af['query'][_0x3d84('0x5e')])){for(var _0x33a9f9=0x0;_0x33a9f9<_0x7b8af[_0x3d84('0x3c')][_0x3d84('0x5e')]['length'];_0x33a9f9+=0x1){socket[_0x3d84('0xab')]('userFaxAccount:remove',{'UserId':Number(_0x7b8af['query'][_0x3d84('0x5e')][_0x33a9f9]),'FaxAccountId':Number(_0x7b8af['params']['id'])});}}else{socket['emit']('userFaxAccount:remove',{'UserId':Number(_0x7b8af['query'][_0x3d84('0x5e')]),'FaxAccountId':Number(_0x7b8af[_0x3d84('0x4b')]['id'])});}});}})[_0x3d84('0x1a')](respondWithStatusCode(_0x5053ad,null))[_0x3d84('0x23')](handleError(_0x5053ad,null));};exports[_0x3d84('0xac')]=function(_0x3c6e1e,_0x2da465,_0x2b2655){var _0x34a60f={};var _0x4889c5={};var _0x35866c;var _0x44f8b0;return db[_0x3d84('0x49')][_0x3d84('0x59')]({'where':{'id':_0x3c6e1e['params']['id']}})[_0x3d84('0x1a')](handleEntityNotFound(_0x2da465,null))['then'](function(_0x59f01c){if(_0x59f01c){_0x35866c=_0x59f01c;_0x4889c5[_0x3d84('0x38')]=_['keys'](db[_0x3d84('0x68')][_0x3d84('0x36')]);_0x4889c5[_0x3d84('0x3c')]=_['keys'](_0x3c6e1e['query']);_0x4889c5['filters']=_['intersection'](_0x4889c5[_0x3d84('0x38')],_0x4889c5['query']);_0x34a60f[_0x3d84('0x3f')]=_[_0x3d84('0x3e')](_0x4889c5[_0x3d84('0x38')],qs[_0x3d84('0x40')](_0x3c6e1e[_0x3d84('0x3c')][_0x3d84('0x40')]));_0x34a60f[_0x3d84('0x3f')]=_0x34a60f[_0x3d84('0x3f')][_0x3d84('0x5a')]?_0x34a60f['attributes']:_0x4889c5[_0x3d84('0x38')];_0x34a60f['order']=qs['sort'](_0x3c6e1e[_0x3d84('0x3c')][_0x3d84('0x43')]);_0x34a60f[_0x3d84('0x44')]=qs[_0x3d84('0x3d')](_[_0x3d84('0x45')](_0x3c6e1e[_0x3d84('0x3c')],_0x4889c5['filters']));if(_0x3c6e1e['query'][_0x3d84('0x46')]){_0x34a60f[_0x3d84('0x44')]=_[_0x3d84('0x47')](_0x34a60f[_0x3d84('0x44')],{'$or':_['map'](_0x34a60f['attributes'],function(_0x26b75d){var _0x2765ad={};_0x2765ad[_0x26b75d]={'$like':'%'+_0x3c6e1e[_0x3d84('0x3c')][_0x3d84('0x46')]+'%'};return _0x2765ad;})});}_0x34a60f=_[_0x3d84('0x47')]({},_0x34a60f,_0x3c6e1e[_0x3d84('0x62')]);return _0x35866c[_0x3d84('0xac')](_0x34a60f);}})[_0x3d84('0x1a')](function(_0x28ddfd){if(_0x28ddfd){_0x44f8b0=_0x28ddfd['length'];if(!_0x3c6e1e[_0x3d84('0x3c')][_0x3d84('0x41')](_0x3d84('0x5b'))){_0x34a60f['limit']=qs[_0x3d84('0x29')](_0x3c6e1e[_0x3d84('0x3c')][_0x3d84('0x29')]);_0x34a60f[_0x3d84('0x27')]=qs[_0x3d84('0x27')](_0x3c6e1e[_0x3d84('0x3c')][_0x3d84('0x27')]);}return _0x35866c[_0x3d84('0xac')](_0x34a60f);}})[_0x3d84('0x1a')](function(_0x127728){if(_0x127728){return _0x127728?{'count':_0x44f8b0,'rows':_0x127728}:null;}})[_0x3d84('0x1a')](respondWithResult(_0x2da465,null))[_0x3d84('0x23')](handleError(_0x2da465,null));};
\ No newline at end of file
+var _0x808e=['userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','FaxAccountId','Disposition','findOne','hasOwnProperty','removeDispositions','addAnswer','CannedAnswer','getAnswers','removeAnswers','ids','addInteraction','FaxInteraction','omit','getInteractions','CmContact','User','Owner','fullname','Tag','Tags','color','tag','FaxApplication','bulkCreate','priority','getApplications','context','from-voip-provider','exten','system','description','appdata','push','CDR(type)=inbound-fax','Set','ecm','localstationid','gateway','faxdetect','headerinfo','minrate','modem','t38timeout','FAXOPT(','/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','sequelize','transaction','VoiceExtension','updateAccountApplications','tech','key','createdAt','TrunkId','ListId','findById','getMessages','FaxMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','send','List','Contacts','DESC','attachments','join','root','basename','CheckAfterSend','isNil','from','\x22%s\x22\x20<%s>','fax','Send\x20Fax\x20failed','out','filename','Messages','Contact\x20not\x20found','spread','ContactId','dataValues','SendFax','SendFaxRpc,\x20%s','addAgents','emit','userFaxAccount:save','removeAgents','isArray','userFaxAccount:remove','getAgents','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','http','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','error','message','result','catch','sendStatus','status','end','json','limit','count','offset','set','Content-Range','apply','reject','save','update','destroy','get','FaxAccounts','stack','name','index','Pause','mandatoryDispositionPause','map','rawAttributes','fieldName','model','query','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','FaxAccount','includeAll','include','findAll','rows','show','params','keys','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find'];(function(_0x57195c,_0x204f43){var _0x420d35=function(_0x22f886){while(--_0x22f886){_0x57195c['push'](_0x57195c['shift']());}};_0x420d35(++_0x204f43);}(_0x808e,0x11d));var _0xe808=function(_0x4fc9e6,_0xc51915){_0x4fc9e6=_0x4fc9e6-0x0;var _0x551d28=_0x808e[_0x4fc9e6];return _0x551d28;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe808('0x0'));var zipdir=require(_0xe808('0x1'));var jsonpatch=require(_0xe808('0x2'));var rp=require(_0xe808('0x3'));var moment=require(_0xe808('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xe808('0x5'));var path=require(_0xe808('0x6'));var sox=require(_0xe808('0x7'));var csv=require(_0xe808('0x8'));var ejs=require(_0xe808('0x9'));var fs=require('fs');var fs_extra=require(_0xe808('0xa'));var _=require(_0xe808('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xe808('0xc'));var toCsv=require(_0xe808('0x8'));var querystring=require('querystring');var Papa=require(_0xe808('0xd'));var Redis=require(_0xe808('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xe808('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe808('0x10'));var logger=require(_0xe808('0x11'))(_0xe808('0x12'));var utils=require('../../config/utils');var config=require(_0xe808('0x13'));var licenseUtil=require(_0xe808('0x14'));var db=require(_0xe808('0x15'))['db'];config[_0xe808('0x16')]=_[_0xe808('0x17')](config[_0xe808('0x16')],{'host':_0xe808('0x18'),'port':0x18eb});var socket=require(_0xe808('0x19'))(new Redis(config[_0xe808('0x16')]));require(_0xe808('0x1a'))[_0xe808('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson['client'][_0xe808('0x1c')]({'port':0x232c});var client9002=jayson['client'][_0xe808('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x2816d6,_0x32b150,_0x46e1e8,_0x11dd3c){return new BPromise(function(_0x5a8640,_0x2f9540){var _0x13460c=_0x11dd3c||client;return _0x13460c[_0xe808('0x1d')](_0x2816d6,_0x46e1e8)[_0xe808('0x1e')](function(_0x18304a){logger[_0xe808('0x1f')](_0xe808('0x20'),_0x32b150,_0xe808('0x21'));logger['debug']('FaxAccount,\x20%s,\x20%s,\x20%s',_0x32b150,_0xe808('0x21'),JSON['stringify'](_0x18304a));if(_0x18304a['error']){if(_0x18304a[_0xe808('0x22')]['code']===0x1f4){logger[_0xe808('0x22')](_0xe808('0x20'),_0x32b150,_0x18304a[_0xe808('0x22')][_0xe808('0x23')]);return _0x2f9540(_0x18304a[_0xe808('0x22')][_0xe808('0x23')]);}logger['error'](_0xe808('0x20'),_0x32b150,_0x18304a[_0xe808('0x22')][_0xe808('0x23')]);return _0x5a8640(_0x18304a[_0xe808('0x22')][_0xe808('0x23')]);}else{logger[_0xe808('0x1f')](_0xe808('0x20'),_0x32b150,_0xe808('0x21'));_0x5a8640(_0x18304a[_0xe808('0x24')][_0xe808('0x23')]);}})[_0xe808('0x25')](function(_0x2b1481){logger[_0xe808('0x22')](_0xe808('0x20'),_0x32b150,_0x2b1481);_0x2f9540(_0x2b1481);});});}function respondWithStatusCode(_0xb1e262,_0x4d86e3){_0x4d86e3=_0x4d86e3||0xcc;return function(_0x31b3d3){if(_0x31b3d3){return _0xb1e262[_0xe808('0x26')](_0x4d86e3);}return _0xb1e262[_0xe808('0x27')](_0x4d86e3)[_0xe808('0x28')]();};}function respondWithResult(_0x53d8ea,_0x2f4fab){_0x2f4fab=_0x2f4fab||0xc8;return function(_0x2ffd82){if(_0x2ffd82){return _0x53d8ea[_0xe808('0x27')](_0x2f4fab)[_0xe808('0x29')](_0x2ffd82);}};}function respondWithFilteredResult(_0x46ae4c,_0x3e5e1b){return function(_0x555915){if(_0x555915){var _0x1e836d=typeof _0x3e5e1b['offset']==='undefined'&&typeof _0x3e5e1b[_0xe808('0x2a')]==='undefined';var _0x3503ce=_0x555915[_0xe808('0x2b')];var _0x4d96bd=_0x1e836d?0x0:_0x3e5e1b[_0xe808('0x2c')];var _0x4992f3=_0x1e836d?_0x555915[_0xe808('0x2b')]:_0x3e5e1b[_0xe808('0x2c')]+_0x3e5e1b[_0xe808('0x2a')];var _0xfe95e5;if(_0x4992f3>=_0x3503ce){_0x4992f3=_0x3503ce;_0xfe95e5=0xc8;}else{_0xfe95e5=0xce;}_0x46ae4c[_0xe808('0x27')](_0xfe95e5);return _0x46ae4c[_0xe808('0x2d')](_0xe808('0x2e'),_0x4d96bd+'-'+_0x4992f3+'/'+_0x3503ce)[_0xe808('0x29')](_0x555915);}return null;};}function patchUpdates(_0x3e24e4){return function(_0x363e68){try{jsonpatch[_0xe808('0x2f')](_0x363e68,_0x3e24e4,!![]);}catch(_0xd417c){return BPromise[_0xe808('0x30')](_0xd417c);}return _0x363e68[_0xe808('0x31')]();};}function saveUpdates(_0x482604,_0x39f742){return function(_0x546975){if(_0x546975){return _0x546975[_0xe808('0x32')](_0x482604)[_0xe808('0x1e')](function(_0x7eaf3e){return _0x7eaf3e;});}return null;};}function removeEntity(_0x785f27,_0x880183){return function(_0x57b292){if(_0x57b292){return _0x57b292[_0xe808('0x33')]()[_0xe808('0x1e')](function(){var _0x1fe2d8=_0x57b292[_0xe808('0x34')]({'plain':!![]});var _0x5e2870=_0xe808('0x35');return db['UserProfileResource']['destroy']({'where':{'type':_0x5e2870,'resourceId':_0x1fe2d8['id']}})[_0xe808('0x1e')](function(){return _0x57b292;});})[_0xe808('0x1e')](function(){_0x785f27[_0xe808('0x27')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1941ac,_0x109765){return function(_0x1e5370){if(!_0x1e5370){_0x1941ac[_0xe808('0x26')](0x194);}return _0x1e5370;};}function handleError(_0x78f7a9,_0x5d30a0){_0x5d30a0=_0x5d30a0||0x1f4;return function(_0x401309){logger['error'](_0x401309[_0xe808('0x36')]);if(_0x401309[_0xe808('0x37')]){delete _0x401309[_0xe808('0x37')];}_0x78f7a9[_0xe808('0x27')](_0x5d30a0)['send'](_0x401309);};}exports[_0xe808('0x38')]=function(_0x1f534c,_0x48cb07){var _0x1c5bad={'include':[{'model':db[_0xe808('0x39')],'as':_0xe808('0x3a')}]},_0xfbdc17={},_0x53a36a={'count':0x0,'rows':[]};var _0x2cea72=_[_0xe808('0x3b')](db['FaxAccount'][_0xe808('0x3c')],function(_0x5901ec){return{'name':_0x5901ec[_0xe808('0x3d')],'type':_0x5901ec['type']['key']};});_0xfbdc17[_0xe808('0x3e')]=_[_0xe808('0x3b')](_0x2cea72,'name');_0xfbdc17[_0xe808('0x3f')]=_['keys'](_0x1f534c['query']);_0xfbdc17[_0xe808('0x40')]=_[_0xe808('0x41')](_0xfbdc17[_0xe808('0x3e')],_0xfbdc17[_0xe808('0x3f')]);_0x1c5bad['attributes']=_[_0xe808('0x41')](_0xfbdc17[_0xe808('0x3e')],qs[_0xe808('0x42')](_0x1f534c[_0xe808('0x3f')][_0xe808('0x42')]));_0x1c5bad[_0xe808('0x43')]=_0x1c5bad[_0xe808('0x43')][_0xe808('0x44')]?_0x1c5bad[_0xe808('0x43')]:_0xfbdc17[_0xe808('0x3e')];if(!_0x1f534c[_0xe808('0x3f')]['hasOwnProperty'](_0xe808('0x45'))){_0x1c5bad[_0xe808('0x2a')]=qs[_0xe808('0x2a')](_0x1f534c[_0xe808('0x3f')]['limit']);_0x1c5bad[_0xe808('0x2c')]=qs[_0xe808('0x2c')](_0x1f534c[_0xe808('0x3f')][_0xe808('0x2c')]);}_0x1c5bad[_0xe808('0x46')]=qs[_0xe808('0x47')](_0x1f534c[_0xe808('0x3f')][_0xe808('0x47')]);_0x1c5bad[_0xe808('0x48')]=qs[_0xe808('0x40')](_[_0xe808('0x49')](_0x1f534c[_0xe808('0x3f')],_0xfbdc17['filters']),_0x2cea72);if(_0x1f534c[_0xe808('0x3f')][_0xe808('0x4a')]){_0x1c5bad[_0xe808('0x48')]=_[_0xe808('0x4b')](_0x1c5bad[_0xe808('0x48')],{'$or':_[_0xe808('0x3b')](_0x2cea72,function(_0x3833b1){if(_0x3833b1[_0xe808('0x4c')]!==_0xe808('0x4d')){var _0x232b0f={};_0x232b0f[_0x3833b1[_0xe808('0x37')]]={'$like':'%'+_0x1f534c['query']['filter']+'%'};return _0x232b0f;}})});}_0x1c5bad=_[_0xe808('0x4b')]({},_0x1c5bad,_0x1f534c['options']);var _0x71ee60={'where':_0x1c5bad[_0xe808('0x48')]};return db[_0xe808('0x4e')][_0xe808('0x2b')](_0x71ee60)[_0xe808('0x1e')](function(_0x7a3c9){_0x53a36a['count']=_0x7a3c9;if(_0x1f534c[_0xe808('0x3f')][_0xe808('0x4f')]){_0x1c5bad[_0xe808('0x50')]=[{'all':!![]}];}return db[_0xe808('0x4e')][_0xe808('0x51')](_0x1c5bad);})['then'](function(_0x2669c4){_0x53a36a[_0xe808('0x52')]=_0x2669c4;return _0x53a36a;})[_0xe808('0x1e')](respondWithFilteredResult(_0x48cb07,_0x1c5bad))[_0xe808('0x25')](handleError(_0x48cb07,null));};exports[_0xe808('0x53')]=function(_0x51e2dc,_0x699d93){var _0x330145={'raw':![],'where':{'id':_0x51e2dc[_0xe808('0x54')]['id']},'include':[{'model':db[_0xe808('0x39')],'as':_0xe808('0x3a')}]},_0x579819={};_0x579819[_0xe808('0x3e')]=_[_0xe808('0x55')](db['FaxAccount'][_0xe808('0x3c')]);_0x579819['query']=_[_0xe808('0x55')](_0x51e2dc[_0xe808('0x3f')]);_0x579819[_0xe808('0x40')]=_[_0xe808('0x41')](_0x579819[_0xe808('0x3e')],_0x579819[_0xe808('0x3f')]);_0x330145[_0xe808('0x43')]=_[_0xe808('0x41')](_0x579819[_0xe808('0x3e')],qs['fields'](_0x51e2dc[_0xe808('0x3f')]['fields']));_0x330145[_0xe808('0x43')]=_0x330145['attributes'][_0xe808('0x44')]?_0x330145[_0xe808('0x43')]:_0x579819['model'];if(_0x51e2dc[_0xe808('0x3f')][_0xe808('0x4f')]){_0x330145[_0xe808('0x50')]=[{'all':!![]}];}_0x330145=_[_0xe808('0x4b')]({},_0x330145,_0x51e2dc[_0xe808('0x56')]);return db[_0xe808('0x4e')]['find'](_0x330145)['then'](handleEntityNotFound(_0x699d93,null))[_0xe808('0x1e')](respondWithResult(_0x699d93,null))[_0xe808('0x25')](handleError(_0x699d93,null));};exports[_0xe808('0x57')]=function(_0x26b610,_0x51b094){return db[_0xe808('0x4e')][_0xe808('0x57')](_0x26b610[_0xe808('0x58')],{})[_0xe808('0x1e')](function(_0x309fd6){var _0x533856=_0x26b610[_0xe808('0x59')][_0xe808('0x34')]({'plain':!![]});if(!_0x533856)throw new Error(_0xe808('0x5a'));if(_0x533856['role']===_0xe808('0x59')){var _0x4ad7c3=_0x309fd6['get']({'plain':!![]});var _0x3863ce=_0xe808('0x35');return db[_0xe808('0x5b')][_0xe808('0x5c')]({'where':{'name':_0x3863ce,'userProfileId':_0x533856[_0xe808('0x5d')]},'raw':!![]})['then'](function(_0x3a4dc9){if(_0x3a4dc9&&_0x3a4dc9['autoAssociation']===0x0){return db[_0xe808('0x5e')][_0xe808('0x57')]({'name':_0x4ad7c3['name'],'resourceId':_0x4ad7c3['id'],'type':_0x3a4dc9[_0xe808('0x37')],'sectionId':_0x3a4dc9['id']},{})[_0xe808('0x1e')](function(){return _0x309fd6;});}else{return _0x309fd6;}})['catch'](function(_0x521b8d){logger[_0xe808('0x22')](_0xe808('0x5f'),_0x521b8d);throw _0x521b8d;});}return _0x309fd6;})[_0xe808('0x1e')](respondWithResult(_0x51b094,0xc9))[_0xe808('0x25')](handleError(_0x51b094,null));};exports[_0xe808('0x32')]=function(_0x343959,_0x46d077){if(_0x343959[_0xe808('0x58')]['id']){delete _0x343959[_0xe808('0x58')]['id'];}return db[_0xe808('0x4e')][_0xe808('0x5c')]({'where':{'id':_0x343959[_0xe808('0x54')]['id']},'include':[{'model':db[_0xe808('0x39')],'as':_0xe808('0x3a')}]})[_0xe808('0x1e')](handleEntityNotFound(_0x46d077,null))[_0xe808('0x1e')](saveUpdates(_0x343959[_0xe808('0x58')],null))[_0xe808('0x1e')](respondWithResult(_0x46d077,null))[_0xe808('0x25')](handleError(_0x46d077,null));};exports['destroy']=function(_0xe4b90c,_0x533f53){return db[_0xe808('0x4e')]['find']({'where':{'id':_0xe4b90c['params']['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x533f53,null))['then'](removeEntity(_0x533f53,null))[_0xe808('0x25')](handleError(_0x533f53,null));};exports[_0xe808('0x60')]=function(_0x4e2f28,_0x26b07e){return db[_0xe808('0x4e')]['describe']()[_0xe808('0x1e')](respondWithResult(_0x26b07e,null))[_0xe808('0x25')](handleError(_0x26b07e,null));};exports[_0xe808('0x61')]=function(_0x31d231,_0x12720c,_0x46c5bb){if(_0x31d231[_0xe808('0x58')]['id']){delete _0x31d231['body']['id'];}return db[_0xe808('0x4e')][_0xe808('0x5c')]({'where':{'id':_0x31d231[_0xe808('0x54')]['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x12720c,null))[_0xe808('0x1e')](function(_0x4d8ee1){if(_0x4d8ee1){_0x31d231[_0xe808('0x58')][_0xe808('0x62')]=_0x4d8ee1['id'];return db[_0xe808('0x63')][_0xe808('0x57')](_0x31d231[_0xe808('0x58')]);}})[_0xe808('0x1e')](respondWithResult(_0x12720c,null))[_0xe808('0x25')](handleError(_0x12720c,null));};exports['getDispositions']=function(_0x465783,_0x525721,_0x4bbd4c){var _0x4fdcbc={'raw':![],'where':{}};var _0x9399ba={};var _0x10c159={'count':0x0,'rows':[]};return db[_0xe808('0x4e')][_0xe808('0x64')]({'where':{'id':_0x465783['params']['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x525721,null))[_0xe808('0x1e')](function(_0x3582b9){if(_0x3582b9){_0x9399ba[_0xe808('0x3e')]=_[_0xe808('0x55')](db[_0xe808('0x63')][_0xe808('0x3c')]);_0x9399ba['query']=_['keys'](_0x465783['query']);_0x9399ba[_0xe808('0x40')]=_[_0xe808('0x41')](_0x9399ba[_0xe808('0x3e')],_0x9399ba[_0xe808('0x3f')]);_0x4fdcbc[_0xe808('0x43')]=_['intersection'](_0x9399ba['model'],qs['fields'](_0x465783[_0xe808('0x3f')][_0xe808('0x42')]));_0x4fdcbc['attributes']=_0x4fdcbc[_0xe808('0x43')][_0xe808('0x44')]?_0x4fdcbc[_0xe808('0x43')]:_0x9399ba[_0xe808('0x3e')];if(!_0x465783[_0xe808('0x3f')][_0xe808('0x65')](_0xe808('0x45'))){_0x4fdcbc[_0xe808('0x2a')]=qs[_0xe808('0x2a')](_0x465783[_0xe808('0x3f')][_0xe808('0x2a')]);_0x4fdcbc[_0xe808('0x2c')]=qs['offset'](_0x465783['query'][_0xe808('0x2c')]);}_0x4fdcbc[_0xe808('0x46')]=qs['sort'](_0x465783[_0xe808('0x3f')]['sort']);_0x4fdcbc[_0xe808('0x48')]=qs[_0xe808('0x40')](_[_0xe808('0x49')](_0x465783[_0xe808('0x3f')],_0x9399ba[_0xe808('0x40')]));_0x4fdcbc['where'][_0xe808('0x62')]=_0x3582b9['id'];if(_0x465783['query'][_0xe808('0x4a')]){_0x4fdcbc['where']=_[_0xe808('0x4b')](_0x4fdcbc[_0xe808('0x48')],{'$or':_['map'](_0x4fdcbc[_0xe808('0x43')],function(_0x2bd218){var _0x26c087={};_0x26c087[_0x2bd218]={'$like':'%'+_0x465783[_0xe808('0x3f')][_0xe808('0x4a')]+'%'};return _0x26c087;})});}_0x4fdcbc=_[_0xe808('0x4b')]({},_0x4fdcbc,_0x465783[_0xe808('0x56')]);return db[_0xe808('0x63')]['count']({'where':_0x4fdcbc[_0xe808('0x48')]})[_0xe808('0x1e')](function(_0x175ac3){_0x10c159['count']=_0x175ac3;if(_0x465783[_0xe808('0x3f')][_0xe808('0x4f')]){_0x4fdcbc['include']=[{'all':!![]}];}return db['Disposition']['findAll'](_0x4fdcbc);})[_0xe808('0x1e')](function(_0x1e25e7){_0x10c159[_0xe808('0x52')]=_0x1e25e7;return _0x10c159;});}})[_0xe808('0x1e')](respondWithFilteredResult(_0x525721,_0x4fdcbc))[_0xe808('0x25')](handleError(_0x525721,null));};exports[_0xe808('0x66')]=function(_0x3d40ba,_0x366a81,_0x5a32e1){return db[_0xe808('0x4e')][_0xe808('0x5c')]({'where':{'id':_0x3d40ba[_0xe808('0x54')]['id']}})['then'](handleEntityNotFound(_0x366a81,null))[_0xe808('0x1e')](function(_0x1d45b1){if(_0x1d45b1){return _0x1d45b1[_0xe808('0x66')](_0x3d40ba[_0xe808('0x3f')]['ids']);}})['then'](respondWithStatusCode(_0x366a81,null))[_0xe808('0x25')](handleError(_0x366a81,null));};exports[_0xe808('0x67')]=function(_0x38cc3f,_0x307ed6,_0x4eef38){if(_0x38cc3f[_0xe808('0x58')]['id']){delete _0x38cc3f[_0xe808('0x58')]['id'];}return db[_0xe808('0x4e')][_0xe808('0x5c')]({'where':{'id':_0x38cc3f['params']['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x307ed6,null))[_0xe808('0x1e')](function(_0x2b74ab){if(_0x2b74ab){_0x38cc3f[_0xe808('0x58')]['FaxAccountId']=_0x2b74ab['id'];return db[_0xe808('0x68')]['create'](_0x38cc3f[_0xe808('0x58')]);}})[_0xe808('0x1e')](respondWithResult(_0x307ed6,null))[_0xe808('0x25')](handleError(_0x307ed6,null));};exports[_0xe808('0x69')]=function(_0x5b27dc,_0x490798,_0xee609d){var _0x50acd8={'raw':![],'where':{}};var _0x2a509c={};var _0x366b6d={'count':0x0,'rows':[]};return db[_0xe808('0x4e')][_0xe808('0x64')]({'where':{'id':_0x5b27dc['params']['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x490798,null))[_0xe808('0x1e')](function(_0x5a1b85){if(_0x5a1b85){_0x2a509c[_0xe808('0x3e')]=_['keys'](db[_0xe808('0x68')][_0xe808('0x3c')]);_0x2a509c['query']=_[_0xe808('0x55')](_0x5b27dc[_0xe808('0x3f')]);_0x2a509c[_0xe808('0x40')]=_[_0xe808('0x41')](_0x2a509c['model'],_0x2a509c[_0xe808('0x3f')]);_0x50acd8[_0xe808('0x43')]=_['intersection'](_0x2a509c[_0xe808('0x3e')],qs[_0xe808('0x42')](_0x5b27dc[_0xe808('0x3f')][_0xe808('0x42')]));_0x50acd8[_0xe808('0x43')]=_0x50acd8[_0xe808('0x43')][_0xe808('0x44')]?_0x50acd8[_0xe808('0x43')]:_0x2a509c[_0xe808('0x3e')];if(!_0x5b27dc[_0xe808('0x3f')][_0xe808('0x65')]('nolimit')){_0x50acd8[_0xe808('0x2a')]=qs[_0xe808('0x2a')](_0x5b27dc['query'][_0xe808('0x2a')]);_0x50acd8[_0xe808('0x2c')]=qs[_0xe808('0x2c')](_0x5b27dc['query'][_0xe808('0x2c')]);}_0x50acd8['order']=qs[_0xe808('0x47')](_0x5b27dc[_0xe808('0x3f')][_0xe808('0x47')]);_0x50acd8[_0xe808('0x48')]=qs[_0xe808('0x40')](_['pick'](_0x5b27dc[_0xe808('0x3f')],_0x2a509c['filters']));_0x50acd8[_0xe808('0x48')][_0xe808('0x62')]=_0x5a1b85['id'];if(_0x5b27dc[_0xe808('0x3f')][_0xe808('0x4a')]){_0x50acd8[_0xe808('0x48')]=_['merge'](_0x50acd8[_0xe808('0x48')],{'$or':_[_0xe808('0x3b')](_0x50acd8[_0xe808('0x43')],function(_0x186f5c){var _0x309301={};_0x309301[_0x186f5c]={'$like':'%'+_0x5b27dc[_0xe808('0x3f')]['filter']+'%'};return _0x309301;})});}_0x50acd8=_[_0xe808('0x4b')]({},_0x50acd8,_0x5b27dc[_0xe808('0x56')]);return db[_0xe808('0x68')]['count']({'where':_0x50acd8[_0xe808('0x48')]})['then'](function(_0x5d953c){_0x366b6d[_0xe808('0x2b')]=_0x5d953c;if(_0x5b27dc['query'][_0xe808('0x4f')]){_0x50acd8['include']=[{'all':!![]}];}return db[_0xe808('0x68')][_0xe808('0x51')](_0x50acd8);})[_0xe808('0x1e')](function(_0x3a2705){_0x366b6d[_0xe808('0x52')]=_0x3a2705;return _0x366b6d;});}})['then'](respondWithFilteredResult(_0x490798,_0x50acd8))['catch'](handleError(_0x490798,null));};exports[_0xe808('0x6a')]=function(_0x4f4608,_0x3c35b2,_0x510bac){return db[_0xe808('0x4e')][_0xe808('0x5c')]({'where':{'id':_0x4f4608[_0xe808('0x54')]['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x3c35b2,null))[_0xe808('0x1e')](function(_0x374a19){if(_0x374a19){return _0x374a19[_0xe808('0x6a')](_0x4f4608['query'][_0xe808('0x6b')]);}})['then'](respondWithStatusCode(_0x3c35b2,null))['catch'](handleError(_0x3c35b2,null));};exports[_0xe808('0x6c')]=function(_0x444b23,_0x2f2206,_0x597d6d){return db[_0xe808('0x6d')][_0xe808('0x5c')]({'where':{'id':_0x444b23[_0xe808('0x54')]['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x2f2206,null))[_0xe808('0x1e')](function(_0x136737){if(_0x136737){return _0x136737[_0xe808('0x6c')](_0x444b23[_0xe808('0x58')]['ids'],_[_0xe808('0x6e')](_0x444b23[_0xe808('0x58')],[_0xe808('0x6b'),'id'])||{});}})[_0xe808('0x1e')](respondWithResult(_0x2f2206,null))['catch'](handleError(_0x2f2206,null));};exports[_0xe808('0x6f')]=function(_0x59da2c,_0x280826,_0x13130c){var _0x4f4147={'raw':![],'where':{}};var _0x15ef9f={};var _0x46bcd3={'count':0x0,'rows':[]};return db[_0xe808('0x4e')][_0xe808('0x64')]({'where':{'id':_0x59da2c[_0xe808('0x54')]['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x280826,null))[_0xe808('0x1e')](function(_0x484d32){if(_0x484d32){_0x15ef9f['model']=_[_0xe808('0x55')](db['FaxInteraction']['rawAttributes']);_0x15ef9f['query']=_['keys'](_0x59da2c[_0xe808('0x3f')]);_0x15ef9f[_0xe808('0x40')]=_[_0xe808('0x41')](_0x15ef9f['model'],_0x15ef9f[_0xe808('0x3f')]);_0x4f4147[_0xe808('0x43')]=_[_0xe808('0x41')](_0x15ef9f[_0xe808('0x3e')],qs[_0xe808('0x42')](_0x59da2c[_0xe808('0x3f')][_0xe808('0x42')]));_0x4f4147[_0xe808('0x43')]=_0x4f4147['attributes'][_0xe808('0x44')]?_0x4f4147[_0xe808('0x43')]:_0x15ef9f[_0xe808('0x3e')];if(!_0x59da2c[_0xe808('0x3f')][_0xe808('0x65')]('nolimit')){_0x4f4147[_0xe808('0x2a')]=qs[_0xe808('0x2a')](_0x59da2c[_0xe808('0x3f')][_0xe808('0x2a')]);_0x4f4147[_0xe808('0x2c')]=qs['offset'](_0x59da2c[_0xe808('0x3f')][_0xe808('0x2c')]);}_0x4f4147[_0xe808('0x46')]=qs[_0xe808('0x47')](_0x59da2c[_0xe808('0x3f')][_0xe808('0x47')]);_0x4f4147[_0xe808('0x48')]=qs['filters'](_[_0xe808('0x49')](_0x59da2c[_0xe808('0x3f')],_0x15ef9f[_0xe808('0x40')]));_0x4f4147[_0xe808('0x48')][_0xe808('0x62')]=_0x484d32['id'];if(_0x59da2c[_0xe808('0x3f')][_0xe808('0x4a')]){_0x4f4147[_0xe808('0x48')]=_['merge'](_0x4f4147[_0xe808('0x48')],{'$or':_['map'](_0x4f4147['attributes'],function(_0x4c01a6){var _0x1f8eef={};_0x1f8eef[_0x4c01a6]={'$like':'%'+_0x59da2c[_0xe808('0x3f')][_0xe808('0x4a')]+'%'};return _0x1f8eef;})});}_0x4f4147=_['merge']({},_0x4f4147,_0x59da2c[_0xe808('0x56')]);return db[_0xe808('0x6d')][_0xe808('0x2b')]({'where':_0x4f4147[_0xe808('0x48')]})['then'](function(_0x42036c){_0x46bcd3[_0xe808('0x2b')]=_0x42036c;if(_0x59da2c[_0xe808('0x3f')][_0xe808('0x4f')]){_0x4f4147[_0xe808('0x50')]=[{'model':db[_0xe808('0x70')],'as':'Contact','required':![]},{'model':db[_0xe808('0x71')],'as':_0xe808('0x72'),'attributes':[_0xe808('0x37'),_0xe808('0x73'),'internal'],'required':![]},{'model':db[_0xe808('0x74')],'as':_0xe808('0x75'),'attributes':['id',_0xe808('0x37'),_0xe808('0x76')],'where':_0x59da2c[_0xe808('0x3f')][_0xe808('0x77')]?{'id':_0x59da2c[_0xe808('0x3f')][_0xe808('0x77')]}:undefined,'required':_0x59da2c[_0xe808('0x3f')][_0xe808('0x77')]?!![]:![]}];}return db[_0xe808('0x6d')][_0xe808('0x51')](_0x4f4147);})[_0xe808('0x1e')](function(_0x42220d){_0x46bcd3[_0xe808('0x52')]=_0x42220d;return _0x46bcd3;});}})[_0xe808('0x1e')](respondWithFilteredResult(_0x280826,_0x4f4147))['catch'](handleError(_0x280826,null));};exports['addApplications']=function(_0x349085,_0x46cbf8,_0x3ea338){return db[_0xe808('0x4e')]['findOne']({'where':{'id':_0x349085['params']['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x46cbf8,null))[_0xe808('0x1e')](function(_0x3203ce){if(_0x3203ce){return db['sequelize']['transaction'](function(_0x6bb956){return db['FaxApplication']['destroy']({'where':{'FaxAccountId':_0x349085[_0xe808('0x54')]['id']},'transaction':_0x6bb956})[_0xe808('0x1e')](function(_0x5694e5){var _0x3a1b0a=_[_0xe808('0x3b')](_0x349085[_0xe808('0x58')],function(_0x4e6308){_0x4e6308[_0xe808('0x62')]=_0x349085[_0xe808('0x54')]['id'];return _0x4e6308;});return db[_0xe808('0x78')][_0xe808('0x79')](_0x3a1b0a,{'transaction':_0x6bb956});});})[_0xe808('0x1e')](function(){return db[_0xe808('0x78')]['findAndCountAll']({'where':{'FaxAccountId':_0x349085[_0xe808('0x54')]['id']},'order':_0xe808('0x7a')});});}})[_0xe808('0x1e')](respondWithResult(_0x46cbf8,null))[_0xe808('0x25')](handleError(_0x46cbf8,null));};exports['getApplications']=function(_0x2ad1be,_0x1e8855,_0x742091){var _0x1f9f3a={};var _0x17c514={};var _0x517fa2;var _0x5eaf11;return db[_0xe808('0x4e')]['findOne']({'where':{'id':_0x2ad1be['params']['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x1e8855,null))['then'](function(_0x148b44){if(_0x148b44){_0x517fa2=_0x148b44;_0x17c514[_0xe808('0x3e')]=_[_0xe808('0x55')](db[_0xe808('0x78')][_0xe808('0x3c')]);_0x17c514[_0xe808('0x3f')]=_['keys'](_0x2ad1be['query']);_0x17c514['filters']=_[_0xe808('0x41')](_0x17c514['model'],_0x17c514[_0xe808('0x3f')]);_0x1f9f3a['attributes']=_['intersection'](_0x17c514['model'],qs[_0xe808('0x42')](_0x2ad1be['query'][_0xe808('0x42')]));_0x1f9f3a[_0xe808('0x43')]=_0x1f9f3a['attributes']['length']?_0x1f9f3a['attributes']:_0x17c514[_0xe808('0x3e')];_0x1f9f3a[_0xe808('0x46')]=qs['sort'](_0x2ad1be[_0xe808('0x3f')][_0xe808('0x47')]);_0x1f9f3a['where']=qs[_0xe808('0x40')](_[_0xe808('0x49')](_0x2ad1be[_0xe808('0x3f')],_0x17c514[_0xe808('0x40')]));if(_0x2ad1be['query'][_0xe808('0x4a')]){_0x1f9f3a['where']=_[_0xe808('0x4b')](_0x1f9f3a['where'],{'$or':_['map'](_0x1f9f3a[_0xe808('0x43')],function(_0x536deb){var _0x465467={};_0x465467[_0x536deb]={'$like':'%'+_0x2ad1be['query'][_0xe808('0x4a')]+'%'};return _0x465467;})});}_0x1f9f3a=_['merge']({},_0x1f9f3a,_0x2ad1be['options']);return _0x517fa2[_0xe808('0x7b')](_0x1f9f3a);}})[_0xe808('0x1e')](function(_0x750d46){if(_0x750d46){_0x5eaf11=_0x750d46[_0xe808('0x44')];if(!_0x2ad1be[_0xe808('0x3f')][_0xe808('0x65')](_0xe808('0x45'))){_0x1f9f3a['limit']=qs[_0xe808('0x2a')](_0x2ad1be[_0xe808('0x3f')][_0xe808('0x2a')]);_0x1f9f3a['offset']=qs[_0xe808('0x2c')](_0x2ad1be[_0xe808('0x3f')][_0xe808('0x2c')]);}return _0x517fa2[_0xe808('0x7b')](_0x1f9f3a);}})['then'](function(_0x113c58){if(_0x113c58){return _0x113c58?{'count':_0x5eaf11,'rows':_0x113c58}:null;}})[_0xe808('0x1e')](respondWithResult(_0x1e8855,null))[_0xe808('0x25')](handleError(_0x1e8855,null));};function Extension(_0x23f447,_0x1a769e,_0x215e41,_0x15ac6b){this[_0xe808('0x7c')]=_0xe808('0x7d');this[_0xe808('0x7e')]=_0x23f447['localstationid'];this['app']=_0x15ac6b;this[_0xe808('0x4c')]=_0xe808('0x7f');this[_0xe808('0x80')]='Fax\x20Extension';this[_0xe808('0x62')]=_0x23f447['id'];this[_0xe808('0x7a')]=_0x1a769e;this[_0xe808('0x81')]=_0x215e41;}function createExtensionsReciveFax(_0x566901){var _0xda74ac=0x1;var _0x5ac3ce=[];_0x5ac3ce[_0xe808('0x82')](new Extension(_0x566901,_0xda74ac,'','Answer'));_0xda74ac+=0x1;_0x5ac3ce[_0xe808('0x82')](new Extension(_0x566901,_0xda74ac,_0xe808('0x83'),_0xe808('0x84')));_0xda74ac+=0x1;for(var _0x17e10b in _0x566901){if(_0x566901[_0xe808('0x65')](_0x17e10b)&&(_0x17e10b===_0xe808('0x85')||_0x17e10b===_0xe808('0x86')||_0x17e10b===_0xe808('0x87')||_0x17e10b===_0xe808('0x88')||_0x17e10b===_0xe808('0x89')||_0x17e10b==='maxrate'||_0x17e10b===_0xe808('0x8a')||_0x17e10b===_0xe808('0x8b')||_0x17e10b===_0xe808('0x8c'))){_0x5ac3ce[_0xe808('0x82')](new Extension(_0x566901,_0xda74ac,_0xe808('0x8d')+_0x17e10b+')='+_0x566901[_0x17e10b],_0xe808('0x84')));_0xda74ac+=0x1;}}_0x5ac3ce[_0xe808('0x82')](new Extension(_0x566901,_0xda74ac,'6','Wait'));_0xda74ac+=0x1;_0x5ac3ce[_0xe808('0x82')](new Extension(_0x566901,_0xda74ac,_0xe808('0x8e'),'ReceiveFax'));_0xda74ac=0x0;return _0x5ac3ce;}exports['addAccountApplications']=function(_0x5e9d24,_0x2b9a33,_0xc4a4ab){var _0x4fdcb3;return db[_0xe808('0x8f')][_0xe808('0x90')](function(_0x3f28a8){return db[_0xe808('0x4e')][_0xe808('0x57')](_0x5e9d24[_0xe808('0x58')],{'transaction':_0x3f28a8})[_0xe808('0x1e')](function(_0x56f2d8){_0x4fdcb3=_0x56f2d8[_0xe808('0x34')]({'plain':!![]});return db[_0xe808('0x91')]['bulkCreate'](createExtensionsReciveFax(_0x4fdcb3),{'transaction':_0x3f28a8});});})[_0xe808('0x1e')](function(){return _0x4fdcb3;})[_0xe808('0x1e')](respondWithResult(_0x2b9a33,null))[_0xe808('0x25')](handleError(_0x2b9a33,null));};exports[_0xe808('0x92')]=function(_0x28c0f2,_0x5abf88,_0x1350e9){var _0x21485e;return db['sequelize']['transaction'](function(_0x2b6a9d){return db['FaxAccount'][_0xe808('0x32')](_0x28c0f2[_0xe808('0x58')],{'where':{'id':_0x28c0f2[_0xe808('0x58')]['id']},'transaction':_0x2b6a9d})[_0xe808('0x1e')](function(_0x5291dd){return db[_0xe808('0x91')][_0xe808('0x33')]({'where':{'FaxAccountId':_0x28c0f2[_0xe808('0x58')]['id']},'transaction':_0x2b6a9d})[_0xe808('0x1e')](function(_0x291f71){return db[_0xe808('0x91')]['bulkCreate'](createExtensionsReciveFax(_[_0xe808('0x6e')](_0x28c0f2[_0xe808('0x58')],[_0xe808('0x93'),_0xe808('0x94'),_0xe808('0x95'),'updatedAt',_0xe808('0x96'),_0xe808('0x97')])),{'transaction':_0x2b6a9d});});});})[_0xe808('0x1e')](function(){return db[_0xe808('0x4e')][_0xe808('0x98')](_0x28c0f2[_0xe808('0x58')]['id']);})['then'](respondWithResult(_0x5abf88,null))[_0xe808('0x25')](handleError(_0x5abf88,null));};exports[_0xe808('0x99')]=function(_0x4230f1,_0xb56be3,_0x3f1971){var _0x5d4b8a={'raw':!![],'where':{}};var _0x5b60c6={};var _0x74aa9c={'count':0x0,'rows':[]};return db[_0xe808('0x4e')][_0xe808('0x64')]({'where':{'id':_0x4230f1[_0xe808('0x54')]['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0xb56be3,null))[_0xe808('0x1e')](function(_0x50217b){if(_0x50217b){_0x5b60c6[_0xe808('0x3e')]=_[_0xe808('0x55')](db[_0xe808('0x9a')][_0xe808('0x3c')]);_0x5b60c6[_0xe808('0x3f')]=_[_0xe808('0x55')](_0x4230f1[_0xe808('0x3f')]);_0x5b60c6['filters']=_[_0xe808('0x41')](_0x5b60c6[_0xe808('0x3e')],_0x5b60c6[_0xe808('0x3f')]);_0x5d4b8a[_0xe808('0x43')]=_[_0xe808('0x41')](_0x5b60c6[_0xe808('0x3e')],qs[_0xe808('0x42')](_0x4230f1[_0xe808('0x3f')][_0xe808('0x42')]));_0x5d4b8a[_0xe808('0x43')]=_0x5d4b8a[_0xe808('0x43')]['length']?_0x5d4b8a[_0xe808('0x43')]:_0x5b60c6[_0xe808('0x3e')];if(!_0x4230f1[_0xe808('0x3f')]['hasOwnProperty']('nolimit')){_0x5d4b8a[_0xe808('0x2a')]=qs[_0xe808('0x2a')](_0x4230f1[_0xe808('0x3f')][_0xe808('0x2a')]);_0x5d4b8a[_0xe808('0x2c')]=qs[_0xe808('0x2c')](_0x4230f1[_0xe808('0x3f')]['offset']);}_0x5d4b8a[_0xe808('0x46')]=qs[_0xe808('0x47')](_0x4230f1[_0xe808('0x3f')][_0xe808('0x47')]);_0x5d4b8a[_0xe808('0x48')]=qs[_0xe808('0x40')](_[_0xe808('0x49')](_0x4230f1[_0xe808('0x3f')],_0x5b60c6['filters']));_0x5d4b8a['where']['FaxAccountId']=_0x50217b['id'];if(_0x4230f1[_0xe808('0x3f')][_0xe808('0x4a')]){_0x5d4b8a[_0xe808('0x48')]=_[_0xe808('0x4b')](_0x5d4b8a[_0xe808('0x48')],{'$or':_[_0xe808('0x3b')](_0x5d4b8a[_0xe808('0x43')],function(_0x3f0599){var _0x16b096={};_0x16b096[_0x3f0599]={'$like':'%'+_0x4230f1[_0xe808('0x3f')][_0xe808('0x4a')]+'%'};return _0x16b096;})});}if(_0x4230f1[_0xe808('0x3f')][_0xe808('0x9b')]){var _0x18d387=_0x4230f1[_0xe808('0x3f')][_0xe808('0x9b')][_0xe808('0x9c')](',');var _0x364b32={};_0x364b32[_0x18d387[0x0]]={'$gte':moment(_0x18d387[0x1])[_0xe808('0x9d')](_0xe808('0x9e'))};_0x5d4b8a[_0xe808('0x48')]=_['merge'](_0x5d4b8a['where'],_0x364b32);}_0x5d4b8a=_[_0xe808('0x4b')]({},_0x5d4b8a,_0x4230f1['options']);return db[_0xe808('0x9a')]['count']({'where':_0x5d4b8a['where']})['then'](function(_0x18f4e2){_0x74aa9c[_0xe808('0x2b')]=_0x18f4e2;if(_0x4230f1[_0xe808('0x3f')][_0xe808('0x4f')]){_0x5d4b8a['include']=[{'all':!![]}];}return db[_0xe808('0x9a')][_0xe808('0x51')](_0x5d4b8a);})[_0xe808('0x1e')](function(_0x1c4acf){_0x74aa9c['rows']=_0x1c4acf;return _0x74aa9c;});}})[_0xe808('0x1e')](respondWithFilteredResult(_0xb56be3,_0x5d4b8a))[_0xe808('0x25')](handleError(_0xb56be3,null));};exports[_0xe808('0x9f')]=function(_0x44af43,_0x47019b,_0x23025e){var _0x20bcc2,_0x2df315={},_0x23ba30;if(_0x44af43[_0xe808('0x58')]['to']){_0x23ba30=_0x44af43[_0xe808('0x58')]['to'][0x0];}return db[_0xe808('0x4e')]['find']({'where':{'id':_0x44af43[_0xe808('0x54')]['id']},'include':[{'model':db['CmList'],'as':_0xe808('0xa0'),'include':[{'model':db['CmContact'],'as':_0xe808('0xa1'),'where':{'fax':_0x23ba30},'limit':0x1,'order':[['updatedAt',_0xe808('0xa2')]]}]}]})[_0xe808('0x1e')](handleEntityNotFound(_0x47019b,null))[_0xe808('0x1e')](function(_0x4cbb9d){_0x20bcc2=_0x4cbb9d;if(_0x44af43[_0xe808('0x58')][_0xe808('0xa3')]&&_0x44af43['body'][_0xe808('0xa3')][_0xe808('0x44')]){for(var _0x56b859=0x0;_0x56b859<_0x44af43[_0xe808('0x58')][_0xe808('0xa3')][_0xe808('0x44')];_0x56b859+=0x1){_0x44af43[_0xe808('0x58')][_0xe808('0xa3')][_0x56b859]={'filename':_0x44af43[_0xe808('0x58')][_0xe808('0xa3')][_0x56b859][_0xe808('0x37')],'id':_0x44af43['body'][_0xe808('0xa3')][_0x56b859]['id'],'path':path[_0xe808('0xa4')](config[_0xe808('0xa5')],'server/files/attachments',_0x44af43['body']['attachments'][_0x56b859][_0xe808('0xa6')])};}}return respondWithRpcPromise(_0xe808('0xa7'),_0xe808('0xa7'),{'FaxAccountId':_[_0xe808('0xa8')](_0x44af43[_0xe808('0x54')]['id'])?undefined:_0x44af43['params']['id'],'path':_[_0xe808('0xa8')](_0x44af43[_0xe808('0x58')][_0xe808('0xa3')][0x0]['path'])?undefined:_0x44af43['body'][_0xe808('0xa3')][0x0]['path'],'fax':_[_0xe808('0xa8')](_0x44af43[_0xe808('0x58')]['to'][0x0])?undefined:_0x44af43[_0xe808('0x58')]['to'][0x0]},client9002);})[_0xe808('0x1e')](function(){if(_0x20bcc2){if(_[_0xe808('0xa8')](_0x44af43['body'][_0xe808('0xa9')])){_0x44af43['body'][_0xe808('0xa9')]=util[_0xe808('0x9d')](_0xe808('0xaa'),_0x20bcc2[_0xe808('0x37')],_0x20bcc2[_0xe808('0xab')]);}if(_0x20bcc2[_0xe808('0xa0')]){if(_0x20bcc2[_0xe808('0xa0')][_0xe808('0xa1')][_0xe808('0x44')]){return _0x20bcc2['List'][_0xe808('0xa1')][0x0];}else{return db[_0xe808('0x70')]['create'](_['defaults'](_0x44af43['body'],{'firstName':_0x44af43[_0xe808('0x58')]['to'][0x0],'phone':_0x44af43[_0xe808('0x58')]['to'][0x0],'fax':_0x44af43[_0xe808('0x58')]['to'][0x0],'ListId':_0x20bcc2['ListId']}));}}else{throw new Error('List\x20not\x20found');}}else{throw new Error(_0xe808('0xac'));}})[_0xe808('0x1e')](function(_0x362cd5){if(_0x362cd5){return db[_0xe808('0x6d')][_0xe808('0x5c')]({'where':{'ContactId':_0x362cd5['id'],'closed':![],'FaxAccountId':_0x20bcc2['id']}})['then'](function(_0x22106a){if(_0x22106a){return[_0x22106a,![]];}return db['FaxInteraction'][_0xe808('0x57')]({'UserId':_0x44af43[_0xe808('0x59')]['id'],'ContactId':_0x362cd5['id'],'FaxAccountId':_0x20bcc2['id'],'fax':_0x44af43[_0xe808('0x58')]['to'][0x0],'firstMsgDirection':_0xe808('0xad'),'Messages':[_['merge'](_0x44af43[_0xe808('0x58')],{'read':![],'body':_0x44af43[_0xe808('0x58')][_0xe808('0xa3')][0x0][_0xe808('0xae')],'FaxAccountId':_0x20bcc2['id'],'UserId':_0x44af43['user']['id'],'ContactId':_0x362cd5['id'],'AttachmentId':_0x44af43[_0xe808('0x58')]['attachments'][0x0]['id']})]},{'include':[{'model':db['FaxMessage'],'as':_0xe808('0xaf')}]})[_0xe808('0x1e')](function(_0x4051e3){return[_0x4051e3,!![]];});});}else{throw new Error(_0xe808('0xb0'));}})[_0xe808('0xb1')](function(_0xa05dc4,_0x4e2084){if(_0x4e2084){return _0xa05dc4;}return db[_0xe808('0x9a')][_0xe808('0x57')]({'direction':'out','read':![],'body':_0x44af43[_0xe808('0x58')][_0xe808('0xa3')][0x0][_0xe808('0xae')],'FaxAccountId':_0x20bcc2['id'],'FaxInteractionId':_0xa05dc4['id'],'UserId':_0x44af43[_0xe808('0x59')]['id'],'ContactId':_0xa05dc4[_0xe808('0xb2')],'AttachmentId':_0x44af43[_0xe808('0x58')][_0xe808('0xa3')][0x0]['id']})['then'](function(_0x28c76f){_0xa05dc4['dataValues'][_0xe808('0xaf')]=[];_0xa05dc4['dataValues'][_0xe808('0xaf')][_0xe808('0x82')](_0x28c76f[_0xe808('0xb3')]);return _0xa05dc4;});})[_0xe808('0x1e')](function(_0x25f6cd){respondWithRpcPromise(_0xe808('0xb4'),_0xe808('0xb4'),{'FaxAccountId':_[_0xe808('0xa8')](_0x44af43[_0xe808('0x54')]['id'])?undefined:_0x44af43['params']['id'],'path':_[_0xe808('0xa8')](_0x44af43[_0xe808('0x58')]['attachments'][0x0][_0xe808('0x6')])?undefined:_0x44af43[_0xe808('0x58')][_0xe808('0xa3')][0x0][_0xe808('0x6')],'fax':_[_0xe808('0xa8')](_0x44af43['body']['to'][0x0])?undefined:_0x44af43['body']['to'][0x0],'AttachmentId':_0x44af43[_0xe808('0x58')][_0xe808('0xa3')][0x0]['id']},client9002)[_0xe808('0x1e')](function(_0x150854){logger[_0xe808('0x1f')](_0xe808('0xb5'),_0x150854);})['catch'](function(_0x3dd847){logger[_0xe808('0x1f')](_0xe808('0xb5'),_0x3dd847);});return _0x25f6cd;})['then'](respondWithResult(_0x47019b,null))[_0xe808('0x25')](handleError(_0x47019b,null));};exports[_0xe808('0xb6')]=function(_0x2fabb3,_0x4327d6,_0x1703ff){return db['FaxAccount'][_0xe808('0x5c')]({'where':{'id':_0x2fabb3['params']['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x4327d6,null))[_0xe808('0x1e')](function(_0x3acb3d){if(_0x3acb3d){return _0x3acb3d[_0xe808('0xb6')](_0x2fabb3[_0xe808('0x58')][_0xe808('0x6b')],_[_0xe808('0x6e')](_0x2fabb3[_0xe808('0x58')],[_0xe808('0x6b'),'id'])||{})[_0xe808('0xb1')](function(_0x22ebc8){for(var _0x72c83a=0x0;_0x72c83a<_0x2fabb3[_0xe808('0x58')][_0xe808('0x6b')][_0xe808('0x44')];_0x72c83a+=0x1){socket[_0xe808('0xb7')](_0xe808('0xb8'),{'UserId':Number(_0x2fabb3[_0xe808('0x58')][_0xe808('0x6b')][_0x72c83a]),'FaxAccountId':Number(_0x2fabb3['params']['id'])});}return _0x22ebc8;});}})[_0xe808('0x1e')](respondWithResult(_0x4327d6,null))[_0xe808('0x25')](handleError(_0x4327d6,null));};exports[_0xe808('0xb9')]=function(_0x72f69,_0x5718d0,_0x530a94){return db[_0xe808('0x4e')]['find']({'where':{'id':_0x72f69['params']['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x5718d0,null))['then'](function(_0x124f75){if(_0x124f75){return _0x124f75['removeAgents'](_0x72f69[_0xe808('0x3f')][_0xe808('0x6b')])[_0xe808('0x1e')](function(){if(_[_0xe808('0xba')](_0x72f69[_0xe808('0x3f')][_0xe808('0x6b')])){for(var _0x1ecbd3=0x0;_0x1ecbd3<_0x72f69[_0xe808('0x3f')][_0xe808('0x6b')]['length'];_0x1ecbd3+=0x1){socket[_0xe808('0xb7')](_0xe808('0xbb'),{'UserId':Number(_0x72f69['query'][_0xe808('0x6b')][_0x1ecbd3]),'FaxAccountId':Number(_0x72f69['params']['id'])});}}else{socket['emit'](_0xe808('0xbb'),{'UserId':Number(_0x72f69['query'][_0xe808('0x6b')]),'FaxAccountId':Number(_0x72f69['params']['id'])});}});}})[_0xe808('0x1e')](respondWithStatusCode(_0x5718d0,null))[_0xe808('0x25')](handleError(_0x5718d0,null));};exports[_0xe808('0xbc')]=function(_0x5ca7e7,_0x4e23f2,_0x53858d){var _0x517948={};var _0x2e8e11={};var _0xfd0e6;var _0x3a124d;return db[_0xe808('0x4e')]['findOne']({'where':{'id':_0x5ca7e7[_0xe808('0x54')]['id']}})[_0xe808('0x1e')](handleEntityNotFound(_0x4e23f2,null))[_0xe808('0x1e')](function(_0x185a72){if(_0x185a72){_0xfd0e6=_0x185a72;_0x2e8e11[_0xe808('0x3e')]=_['keys'](db[_0xe808('0x71')][_0xe808('0x3c')]);_0x2e8e11[_0xe808('0x3f')]=_[_0xe808('0x55')](_0x5ca7e7[_0xe808('0x3f')]);_0x2e8e11[_0xe808('0x40')]=_[_0xe808('0x41')](_0x2e8e11[_0xe808('0x3e')],_0x2e8e11[_0xe808('0x3f')]);_0x517948['attributes']=_[_0xe808('0x41')](_0x2e8e11[_0xe808('0x3e')],qs[_0xe808('0x42')](_0x5ca7e7['query'][_0xe808('0x42')]));_0x517948[_0xe808('0x43')]=_0x517948[_0xe808('0x43')][_0xe808('0x44')]?_0x517948[_0xe808('0x43')]:_0x2e8e11[_0xe808('0x3e')];_0x517948[_0xe808('0x46')]=qs[_0xe808('0x47')](_0x5ca7e7[_0xe808('0x3f')][_0xe808('0x47')]);_0x517948[_0xe808('0x48')]=qs[_0xe808('0x40')](_[_0xe808('0x49')](_0x5ca7e7[_0xe808('0x3f')],_0x2e8e11[_0xe808('0x40')]));if(_0x5ca7e7[_0xe808('0x3f')][_0xe808('0x4a')]){_0x517948['where']=_['merge'](_0x517948[_0xe808('0x48')],{'$or':_['map'](_0x517948[_0xe808('0x43')],function(_0x1838d8){var _0x17c269={};_0x17c269[_0x1838d8]={'$like':'%'+_0x5ca7e7[_0xe808('0x3f')][_0xe808('0x4a')]+'%'};return _0x17c269;})});}_0x517948=_[_0xe808('0x4b')]({},_0x517948,_0x5ca7e7[_0xe808('0x56')]);return _0xfd0e6[_0xe808('0xbc')](_0x517948);}})[_0xe808('0x1e')](function(_0x3f7e0d){if(_0x3f7e0d){_0x3a124d=_0x3f7e0d[_0xe808('0x44')];if(!_0x5ca7e7[_0xe808('0x3f')]['hasOwnProperty'](_0xe808('0x45'))){_0x517948[_0xe808('0x2a')]=qs[_0xe808('0x2a')](_0x5ca7e7[_0xe808('0x3f')]['limit']);_0x517948['offset']=qs[_0xe808('0x2c')](_0x5ca7e7['query'][_0xe808('0x2c')]);}return _0xfd0e6[_0xe808('0xbc')](_0x517948);}})[_0xe808('0x1e')](function(_0xe20d61){if(_0xe20d61){return _0xe20d61?{'count':_0x3a124d,'rows':_0xe20d61}:null;}})[_0xe808('0x1e')](respondWithResult(_0x4e23f2,null))['catch'](handleError(_0x4e23f2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x523a=['setMaxListeners','save','remove','emit','hasOwnProperty','hook','exports','../../mysqldb'];(function(_0x3bf03d,_0x4735ac){var _0x93d35b=function(_0x36c7e6){while(--_0x36c7e6){_0x3bf03d['push'](_0x3bf03d['shift']());}};_0x93d35b(++_0x4735ac);}(_0x523a,0x1bf));var _0xa523=function(_0x24259d,_0x64a194){_0x24259d=_0x24259d-0x0;var _0x5a701=_0x523a[_0x24259d];return _0x5a701;};'use strict';var EventEmitter=require('events');var FaxAccount=require(_0xa523('0x0'))['db']['FaxAccount'];var FaxAccountEvents=new EventEmitter();FaxAccountEvents[_0xa523('0x1')](0x0);var events={'afterCreate':_0xa523('0x2'),'afterUpdate':'update','afterDestroy':_0xa523('0x3')};function emitEvent(_0x4dca5d){return function(_0x424aa3,_0x43f6dc,_0x1b20da){FaxAccountEvents['emit'](_0x4dca5d+':'+_0x424aa3['id'],_0x424aa3);FaxAccountEvents[_0xa523('0x4')](_0x4dca5d,_0x424aa3);_0x1b20da(null);};}for(var e in events){if(events[_0xa523('0x5')](e)){var event=events[e];FaxAccount[_0xa523('0x6')](e,emitEvent(event));}}module[_0xa523('0x7')]=FaxAccountEvents;
\ No newline at end of file
+var _0xfd5b=['remove','emit','hasOwnProperty','hook','events','../../mysqldb','setMaxListeners','save','update'];(function(_0x1589dd,_0x2b9d22){var _0x1bddd1=function(_0x3687f8){while(--_0x3687f8){_0x1589dd['push'](_0x1589dd['shift']());}};_0x1bddd1(++_0x2b9d22);}(_0xfd5b,0x15a));var _0xbfd5=function(_0xbc2b14,_0x51b5ab){_0xbc2b14=_0xbc2b14-0x0;var _0x523b70=_0xfd5b[_0xbc2b14];return _0x523b70;};'use strict';var EventEmitter=require(_0xbfd5('0x0'));var FaxAccount=require(_0xbfd5('0x1'))['db']['FaxAccount'];var FaxAccountEvents=new EventEmitter();FaxAccountEvents[_0xbfd5('0x2')](0x0);var events={'afterCreate':_0xbfd5('0x3'),'afterUpdate':_0xbfd5('0x4'),'afterDestroy':_0xbfd5('0x5')};function emitEvent(_0x154a10){return function(_0x37c974,_0x1fb6ba,_0x16738b){FaxAccountEvents[_0xbfd5('0x6')](_0x154a10+':'+_0x37c974['id'],_0x37c974);FaxAccountEvents[_0xbfd5('0x6')](_0x154a10,_0x37c974);_0x16738b(null);};}for(var e in events){if(events[_0xbfd5('0x7')](e)){var event=events[e];FaxAccount[_0xbfd5('0x8')](e,emitEvent(event));}}module['exports']=FaxAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd68e=['rimraf','../../config/environment','define','FaxAccount','fax_accounts','lodash','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x13b02f,_0x462a53){var _0x12e9a6=function(_0x187d57){while(--_0x187d57){_0x13b02f['push'](_0x13b02f['shift']());}};_0x12e9a6(++_0x462a53);}(_0xd68e,0x71));var _0xed68=function(_0x1db831,_0x42b7b5){_0x1db831=_0x1db831-0x0;var _0x39ba56=_0xd68e[_0x1db831];return _0x39ba56;};'use strict';var _=require(_0xed68('0x0'));var util=require('util');var logger=require(_0xed68('0x1'))(_0xed68('0x2'));var moment=require(_0xed68('0x3'));var BPromise=require(_0xed68('0x4'));var rp=require(_0xed68('0x5'));var fs=require('fs');var path=require(_0xed68('0x6'));var rimraf=require(_0xed68('0x7'));var config=require(_0xed68('0x8'));var attributes=require('./faxAccount.attributes');module['exports']=function(_0x47ce98,_0x315d83){return _0x47ce98[_0xed68('0x9')](_0xed68('0xa'),attributes,{'tableName':_0xed68('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc03b=['exports','define','FaxAccount','fax_accounts','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./faxAccount.attributes'];(function(_0x571e9e,_0x8b6e7f){var _0x1a9eab=function(_0xd84dd8){while(--_0xd84dd8){_0x571e9e['push'](_0x571e9e['shift']());}};_0x1a9eab(++_0x8b6e7f);}(_0xc03b,0xf2));var _0xbc03=function(_0x174a2d,_0x44cf92){_0x174a2d=_0x174a2d-0x0;var _0x3a58c3=_0xc03b[_0x174a2d];return _0x3a58c3;};'use strict';var _=require(_0xbc03('0x0'));var util=require(_0xbc03('0x1'));var logger=require(_0xbc03('0x2'))(_0xbc03('0x3'));var moment=require(_0xbc03('0x4'));var BPromise=require('bluebird');var rp=require(_0xbc03('0x5'));var fs=require('fs');var path=require(_0xbc03('0x6'));var rimraf=require(_0xbc03('0x7'));var config=require(_0xbc03('0x8'));var attributes=require(_0xbc03('0x9'));module[_0xbc03('0xa')]=function(_0x23135b,_0xd528ed){return _0x23135b[_0xbc03('0xb')](_0xbc03('0xc'),attributes,{'tableName':_0xbc03('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2090=['CmContact','describe','Sequelize','no\x20available\x20attributes','createdAt','updatedAt','difference','keys','CompanyId','isNil','from','ValidationError','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','FaxAccount','find','CmList','List','Contacts','DESC','Applications','get','account','applications','list','orderBy','priority','length','create','FaxInteraction','spread','push','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','AttachmentId','UserId','User','name','unshift','agent','startRouting','Start','lodash','util','moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','GetFaxAccount','findAll','options','where','attributes','limit','include','map','model','debug','NotifyFaxAccount','body','fax'];(function(_0x54d49e,_0x5d9911){var _0x4af0f1=function(_0xf117b3){while(--_0xf117b3){_0x54d49e['push'](_0x54d49e['shift']());}};_0x4af0f1(++_0x5d9911);}(_0x2090,0x140));var _0x0209=function(_0x49b474,_0x41a9aa){_0x49b474=_0x49b474-0x0;var _0x2a26de=_0x2090[_0x49b474];return _0x2a26de;};'use strict';var _=require(_0x0209('0x0'));var util=require(_0x0209('0x1'));var moment=require(_0x0209('0x2'));var BPromise=require('bluebird');var rs=require(_0x0209('0x3'));var fs=require('fs');var Redis=require(_0x0209('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x0209('0x5'))(_0x0209('0x6'));var config=require(_0x0209('0x7'));var jayson=require(_0x0209('0x8'));var client=jayson['client'][_0x0209('0x9')]({'port':0x232c});config[_0x0209('0xa')]=_[_0x0209('0xb')](config['redis'],{'host':_0x0209('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0209('0xa')]));require(_0x0209('0xd'))[_0x0209('0xe')](socket);function respondWithRpcPromise(_0x58f436,_0x562336,_0x1c24d1){return new BPromise(function(_0x5540c4,_0x5db6f6){return client[_0x0209('0xf')](_0x58f436,_0x1c24d1)[_0x0209('0x10')](function(_0x10a1f3){logger[_0x0209('0x11')](_0x0209('0x12'),_0x562336,_0x0209('0x13'));logger['debug'](_0x0209('0x14'),_0x562336,'request\x20sent',JSON[_0x0209('0x15')](_0x10a1f3));if(_0x10a1f3['error']){if(_0x10a1f3['error'][_0x0209('0x16')]===0x1f4){logger[_0x0209('0x17')](_0x0209('0x12'),_0x562336,_0x10a1f3[_0x0209('0x17')][_0x0209('0x18')]);return _0x5db6f6(_0x10a1f3[_0x0209('0x17')][_0x0209('0x18')]);}logger['error'](_0x0209('0x12'),_0x562336,_0x10a1f3['error']['message']);return _0x5540c4(_0x10a1f3[_0x0209('0x17')][_0x0209('0x18')]);}else{logger[_0x0209('0x11')](_0x0209('0x12'),_0x562336,_0x0209('0x13'));_0x5540c4(_0x10a1f3[_0x0209('0x19')]['message']);}})[_0x0209('0x1a')](function(_0x58f86c){logger[_0x0209('0x17')](_0x0209('0x12'),_0x562336,_0x58f86c);_0x5db6f6(_0x58f86c);});});}exports[_0x0209('0x1b')]=function(_0x15b7d0){var _0x25c16b=this;return new Promise(function(_0x4f986e,_0x409b9f){return db['FaxAccount'][_0x0209('0x1c')]({'raw':_0x15b7d0[_0x0209('0x1d')]?_0x15b7d0[_0x0209('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x15b7d0[_0x0209('0x1d')]?_0x15b7d0['options'][_0x0209('0x1e')]||null:null,'attributes':_0x15b7d0[_0x0209('0x1d')]?_0x15b7d0[_0x0209('0x1d')][_0x0209('0x1f')]||null:null,'limit':_0x15b7d0[_0x0209('0x1d')]?_0x15b7d0[_0x0209('0x1d')][_0x0209('0x20')]||null:null,'include':_0x15b7d0[_0x0209('0x1d')]?_0x15b7d0['options'][_0x0209('0x21')]?_['map'](_0x15b7d0[_0x0209('0x1d')][_0x0209('0x21')],function(_0x22532d){return{'model':db[_0x22532d['model']],'as':_0x22532d['as'],'attributes':_0x22532d['attributes'],'include':_0x22532d[_0x0209('0x21')]?_[_0x0209('0x22')](_0x22532d[_0x0209('0x21')],function(_0x72b0fc){return{'model':db[_0x72b0fc[_0x0209('0x23')]],'as':_0x72b0fc['as'],'attributes':_0x72b0fc['attributes'],'include':_0x72b0fc[_0x0209('0x21')]?_[_0x0209('0x22')](_0x72b0fc['include'],function(_0x3cb8c8){return{'model':db[_0x3cb8c8['model']],'as':_0x3cb8c8['as'],'attributes':_0x3cb8c8[_0x0209('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4afd08){logger[_0x0209('0x11')]('GetFaxAccount',_0x15b7d0);logger[_0x0209('0x24')](_0x0209('0x1b'),_0x15b7d0,JSON['stringify'](_0x4afd08));_0x4f986e(_0x4afd08);})[_0x0209('0x1a')](function(_0x45fac8){logger[_0x0209('0x17')]('GetFaxAccount',_0x45fac8['message'],_0x15b7d0);_0x409b9f(_0x25c16b[_0x0209('0x17')](0x1f4,_0x45fac8[_0x0209('0x18')]));});});};exports[_0x0209('0x25')]=function(_0x4924ed,_0x690ddc,_0xf7582e){var _0x286384=this;return new Promise(function(_0x2cc6ce,_0x70d702){var _0x2e742a={'body':_0x4924ed[_0x0209('0x26')],'channel':_0x0209('0x27')};var _0x4fb766=[];var _0x1f87d6=[];var _0x38460c={};return db[_0x0209('0x28')][_0x0209('0x29')]()[_0x0209('0x10')](function(_0x434033){if(!_0x434033){throw new db[(_0x0209('0x2a'))]['ValidationError'](_0x0209('0x2b'));}_0x4fb766=_['difference'](_['keys'](_0x434033),[_0x0209('0x2c'),_0x0209('0x2d')]);_0x1f87d6=_[_0x0209('0x2e')](_[_0x0209('0x2f')](_0x434033),[_0x0209('0x2c'),_0x0209('0x2d'),_0x0209('0x30'),'ListId']);if(_0x4924ed[_0x0209('0x26')]['id']){delete _0x4924ed['body']['id'];}if(_[_0x0209('0x31')](_0x4924ed[_0x0209('0x26')][_0x0209('0x32')])){throw new db[(_0x0209('0x2a'))][(_0x0209('0x33'))](_0x0209('0x34'));}if(_[_0x0209('0x31')](_0x4924ed[_0x0209('0x26')][_0x0209('0x26')])||_0x4924ed['body']['body']===''){throw new db[(_0x0209('0x2a'))][(_0x0209('0x33'))](_0x0209('0x35'));}if(_[_0x0209('0x31')](_0x4924ed['body'][_0x0209('0x36')])){throw new db[(_0x0209('0x2a'))][(_0x0209('0x33'))](_0x0209('0x37')+_0x1f87d6);}if(!_[_0x0209('0x38')](_0x1f87d6,_0x4924ed[_0x0209('0x26')][_0x0209('0x36')])){throw new db[(_0x0209('0x2a'))]['ValidationError'](_0x0209('0x39')+_0x1f87d6);}_0x38460c[_0x4924ed[_0x0209('0x26')][_0x0209('0x36')]]=_0x4924ed[_0x0209('0x26')]['from'];})[_0x0209('0x10')](function(){return db[_0x0209('0x3a')][_0x0209('0x3b')]({'where':{'id':_0x4924ed['account']['id']},'include':[{'model':db[_0x0209('0x3c')],'as':_0x0209('0x3d'),'include':[{'model':db[_0x0209('0x28')],'as':_0x0209('0x3e'),'where':_0x38460c,'limit':0x1,'order':[['updatedAt',_0x0209('0x3f')]]}]},{'model':db['FaxApplication'],'as':_0x0209('0x40')}]});})[_0x0209('0x10')](function(_0x1fbab7){if(_0x1fbab7&&_0x1fbab7[_0x0209('0x3d')]){var _0x572121=_0x1fbab7[_0x0209('0x41')]({'plain':!![]});_0x2e742a[_0x0209('0x42')]=_0x572121;_0x2e742a[_0x0209('0x43')]=_0x572121['Applications'];_0x2e742a[_0x0209('0x44')]=_0x572121[_0x0209('0x3d')];_0x2e742a['applications']=_[_0x0209('0x45')](_0x2e742a['applications'],[_0x0209('0x46')],['asc']);if(_0x2e742a[_0x0209('0x42')][_0x0209('0x40')]){delete _0x2e742a[_0x0209('0x42')][_0x0209('0x40')];}if(_0x2e742a[_0x0209('0x42')]['List']&&_0x2e742a['account'][_0x0209('0x3d')][_0x0209('0x3e')][_0x0209('0x47')]){return _0x2e742a[_0x0209('0x42')][_0x0209('0x3d')][_0x0209('0x3e')][0x0];}var _0x5f5b87=_['defaults'](_0x4924ed[_0x0209('0x26')],{'firstName':_0x4924ed[_0x0209('0x26')][_0x0209('0x32')],'ListId':_0x572121['ListId']});_0x5f5b87[_0x4924ed[_0x0209('0x26')]['mapKey']]=_0x4924ed['body'][_0x0209('0x32')];return db[_0x0209('0x28')][_0x0209('0x48')](_0x5f5b87,{'fields':_0x4fb766,'raw':!![]});}})[_0x0209('0x10')](function(_0xe27572){_0x2e742a['contact']=_0xe27572;if(_0xe27572){var _0x399110={'ContactId':_0xe27572['id'],'FaxAccountId':_0x4924ed[_0x0209('0x42')]['id'],'fax':_0xe27572[_0x0209('0x27')]};return db[_0x0209('0x49')][_0x0209('0x3b')]({'where':{'ContactId':_0xe27572['id'],'closed':![],'FaxAccountId':_0x4924ed[_0x0209('0x42')]['id']}})[_0x0209('0x10')](function(_0x5ecf3a){if(_0x5ecf3a){return[_0x5ecf3a,![]];}return db[_0x0209('0x49')][_0x0209('0x48')](_0x399110)['then'](function(_0x4f7d52){return[_0x4f7d52,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x0209('0x4a')](function(_0x825636,_0xd6ba63){var _0x254745=_0x825636[_0x0209('0x41')]({'plain':!![]});if(_0xd6ba63){if(_0x2e742a[_0x0209('0x42')]['autoclose']){_0x2e742a['applications'][_0x0209('0x4b')]({'id':0x0,'priority':_0x2e742a[_0x0209('0x43')][_0x0209('0x47')]+0x1,'app':_0x0209('0x4c'),'appdata':_0x0209('0x4d'),'interval':_0x0209('0x4e')});}_0x254745['created']=!![];}else{_0x254745[_0x0209('0x4f')]=![];}_0x2e742a[_0x0209('0x50')]=_0x254745;return db[_0x0209('0x51')][_0x0209('0x48')]({'body':_0x4924ed[_0x0209('0x26')][_0x0209('0x26')],'FaxAccountId':_0x4924ed[_0x0209('0x42')]['id'],'FaxInteractionId':_0x825636['id'],'direction':'in','ContactId':_0x825636['ContactId'],'AttachmentId':_0x4924ed[_0x0209('0x26')][_0x0209('0x52')]});})[_0x0209('0x10')](function(_0x115f10){_0x2e742a['message']=_0x115f10;if(_0x2e742a['interaction'][_0x0209('0x53')]){return db[_0x0209('0x54')]['find']({'attributes':['id',_0x0209('0x55')],'where':{'id':_0x2e742a[_0x0209('0x50')][_0x0209('0x53')]}})[_0x0209('0x10')](function(_0x196f84){if(_0x196f84){_0x2e742a[_0x0209('0x43')][_0x0209('0x56')]({'id':0x0,'priority':0x0,'app':_0x0209('0x57'),'appdata':_0x196f84[_0x0209('0x55')]+','+(_0x2e742a[_0x0209('0x42')]['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise('Start',_0x0209('0x58'),_0x2e742a);});}return respondWithRpcPromise(_0x0209('0x59'),'startRouting',_0x2e742a);})[_0x0209('0x10')](function(_0x4e621c){_0x2cc6ce(_0x4e621c);})[_0x0209('0x1a')](function(_0x4ae1a6){_0x70d702(_0x286384[_0x0209('0x17')](0x1f4,_0x4ae1a6['message']));});});};
\ No newline at end of file
+var _0xc467=['include','map','model','attributes','NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','ValidationError','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','List','DESC','FaxApplication','applications','Applications','list','priority','asc','Contacts','length','contact','FaxInteraction','create','spread','autoclose','push','close','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','agent','waitForTheAssignedAgent','startRouting','Start','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','redis','defaults','socket.io-emitter','./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetFaxAccount','FaxAccount','findAll','options','where','limit'];(function(_0x2571dc,_0x7493fc){var _0x3b0e9e=function(_0x378121){while(--_0x378121){_0x2571dc['push'](_0x2571dc['shift']());}};_0x3b0e9e(++_0x7493fc);}(_0xc467,0x149));var _0x7c46=function(_0x37a7c6,_0x3a84b6){_0x37a7c6=_0x37a7c6-0x0;var _0x539905=_0xc467[_0x37a7c6];return _0x539905;};'use strict';var _=require(_0x7c46('0x0'));var util=require(_0x7c46('0x1'));var moment=require(_0x7c46('0x2'));var BPromise=require('bluebird');var rs=require(_0x7c46('0x3'));var fs=require('fs');var Redis=require(_0x7c46('0x4'));var db=require(_0x7c46('0x5'))['db'];var utils=require(_0x7c46('0x6'));var logger=require(_0x7c46('0x7'))('rpc');var config=require(_0x7c46('0x8'));var jayson=require(_0x7c46('0x9'));var client=jayson[_0x7c46('0xa')]['http']({'port':0x232c});config[_0x7c46('0xb')]=_[_0x7c46('0xc')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x7c46('0xd'))(new Redis(config[_0x7c46('0xb')]));require(_0x7c46('0xe'))[_0x7c46('0xf')](socket);function respondWithRpcPromise(_0x49a8a2,_0xf388de,_0x17204f){return new BPromise(function(_0x431825,_0x5b8738){return client[_0x7c46('0x10')](_0x49a8a2,_0x17204f)[_0x7c46('0x11')](function(_0x38ed2b){logger[_0x7c46('0x12')](_0x7c46('0x13'),_0xf388de,_0x7c46('0x14'));logger[_0x7c46('0x15')](_0x7c46('0x16'),_0xf388de,_0x7c46('0x14'),JSON[_0x7c46('0x17')](_0x38ed2b));if(_0x38ed2b[_0x7c46('0x18')]){if(_0x38ed2b[_0x7c46('0x18')][_0x7c46('0x19')]===0x1f4){logger['error'](_0x7c46('0x13'),_0xf388de,_0x38ed2b[_0x7c46('0x18')]['message']);return _0x5b8738(_0x38ed2b['error'][_0x7c46('0x1a')]);}logger[_0x7c46('0x18')]('FaxAccount,\x20%s,\x20%s',_0xf388de,_0x38ed2b['error'][_0x7c46('0x1a')]);return _0x431825(_0x38ed2b[_0x7c46('0x18')]['message']);}else{logger['info']('FaxAccount,\x20%s,\x20%s',_0xf388de,_0x7c46('0x14'));_0x431825(_0x38ed2b[_0x7c46('0x1b')][_0x7c46('0x1a')]);}})[_0x7c46('0x1c')](function(_0x536683){logger[_0x7c46('0x18')](_0x7c46('0x13'),_0xf388de,_0x536683);_0x5b8738(_0x536683);});});}exports[_0x7c46('0x1d')]=function(_0x4df16f){var _0x67f7c5=this;return new Promise(function(_0x5e6b4f,_0x360fe7){return db[_0x7c46('0x1e')][_0x7c46('0x1f')]({'raw':_0x4df16f[_0x7c46('0x20')]?_0x4df16f['options']['raw']===undefined?!![]:![]:!![],'where':_0x4df16f[_0x7c46('0x20')]?_0x4df16f[_0x7c46('0x20')][_0x7c46('0x21')]||null:null,'attributes':_0x4df16f[_0x7c46('0x20')]?_0x4df16f[_0x7c46('0x20')]['attributes']||null:null,'limit':_0x4df16f[_0x7c46('0x20')]?_0x4df16f[_0x7c46('0x20')][_0x7c46('0x22')]||null:null,'include':_0x4df16f[_0x7c46('0x20')]?_0x4df16f['options'][_0x7c46('0x23')]?_[_0x7c46('0x24')](_0x4df16f[_0x7c46('0x20')]['include'],function(_0x5cf1e8){return{'model':db[_0x5cf1e8[_0x7c46('0x25')]],'as':_0x5cf1e8['as'],'attributes':_0x5cf1e8['attributes'],'include':_0x5cf1e8[_0x7c46('0x23')]?_[_0x7c46('0x24')](_0x5cf1e8[_0x7c46('0x23')],function(_0x123f1a){return{'model':db[_0x123f1a[_0x7c46('0x25')]],'as':_0x123f1a['as'],'attributes':_0x123f1a[_0x7c46('0x26')],'include':_0x123f1a[_0x7c46('0x23')]?_[_0x7c46('0x24')](_0x123f1a['include'],function(_0x5222a7){return{'model':db[_0x5222a7[_0x7c46('0x25')]],'as':_0x5222a7['as'],'attributes':_0x5222a7[_0x7c46('0x26')]};}):[]};}):[]};}):[]:[]})[_0x7c46('0x11')](function(_0x1f6574){logger[_0x7c46('0x12')](_0x7c46('0x1d'),_0x4df16f);logger[_0x7c46('0x15')](_0x7c46('0x1d'),_0x4df16f,JSON[_0x7c46('0x17')](_0x1f6574));_0x5e6b4f(_0x1f6574);})[_0x7c46('0x1c')](function(_0x590559){logger[_0x7c46('0x18')](_0x7c46('0x1d'),_0x590559[_0x7c46('0x1a')],_0x4df16f);_0x360fe7(_0x67f7c5[_0x7c46('0x18')](0x1f4,_0x590559[_0x7c46('0x1a')]));});});};exports[_0x7c46('0x27')]=function(_0x213044,_0x1a0d40,_0x1d7a1d){var _0x18c404=this;return new Promise(function(_0x4f668b,_0x5202a4){var _0x4f2b5c={'body':_0x213044[_0x7c46('0x28')],'channel':_0x7c46('0x29')};var _0x4656b4=[];var _0x79c29=[];var _0x10c9c3={};return db[_0x7c46('0x2a')][_0x7c46('0x2b')]()[_0x7c46('0x11')](function(_0x79d347){if(!_0x79d347){throw new db[(_0x7c46('0x2c'))][(_0x7c46('0x2d'))]('no\x20available\x20attributes');}_0x4656b4=_[_0x7c46('0x2e')](_[_0x7c46('0x2f')](_0x79d347),[_0x7c46('0x30'),_0x7c46('0x31')]);_0x79c29=_[_0x7c46('0x2e')](_[_0x7c46('0x2f')](_0x79d347),[_0x7c46('0x30'),_0x7c46('0x31'),_0x7c46('0x32'),_0x7c46('0x33')]);if(_0x213044[_0x7c46('0x28')]['id']){delete _0x213044[_0x7c46('0x28')]['id'];}if(_[_0x7c46('0x34')](_0x213044[_0x7c46('0x28')][_0x7c46('0x35')])){throw new db[(_0x7c46('0x2c'))]['ValidationError'](_0x7c46('0x36'));}if(_['isNil'](_0x213044[_0x7c46('0x28')][_0x7c46('0x28')])||_0x213044[_0x7c46('0x28')][_0x7c46('0x28')]===''){throw new db['Sequelize'][(_0x7c46('0x2d'))](_0x7c46('0x37'));}if(_[_0x7c46('0x34')](_0x213044[_0x7c46('0x28')][_0x7c46('0x38')])){throw new db[(_0x7c46('0x2c'))][(_0x7c46('0x2d'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x79c29);}if(!_[_0x7c46('0x39')](_0x79c29,_0x213044[_0x7c46('0x28')]['mapKey'])){throw new db['Sequelize'][(_0x7c46('0x2d'))](_0x7c46('0x3a')+_0x79c29);}_0x10c9c3[_0x213044[_0x7c46('0x28')][_0x7c46('0x38')]]=_0x213044[_0x7c46('0x28')]['from'];})[_0x7c46('0x11')](function(){return db[_0x7c46('0x1e')][_0x7c46('0x3b')]({'where':{'id':_0x213044[_0x7c46('0x3c')]['id']},'include':[{'model':db['CmList'],'as':_0x7c46('0x3d'),'include':[{'model':db[_0x7c46('0x2a')],'as':'Contacts','where':_0x10c9c3,'limit':0x1,'order':[[_0x7c46('0x31'),_0x7c46('0x3e')]]}]},{'model':db[_0x7c46('0x3f')],'as':'Applications'}]});})[_0x7c46('0x11')](function(_0x491fae){if(_0x491fae&&_0x491fae[_0x7c46('0x3d')]){var _0x36266f=_0x491fae['get']({'plain':!![]});_0x4f2b5c[_0x7c46('0x3c')]=_0x36266f;_0x4f2b5c[_0x7c46('0x40')]=_0x36266f[_0x7c46('0x41')];_0x4f2b5c[_0x7c46('0x42')]=_0x36266f[_0x7c46('0x3d')];_0x4f2b5c[_0x7c46('0x40')]=_['orderBy'](_0x4f2b5c[_0x7c46('0x40')],[_0x7c46('0x43')],[_0x7c46('0x44')]);if(_0x4f2b5c['account'][_0x7c46('0x41')]){delete _0x4f2b5c[_0x7c46('0x3c')][_0x7c46('0x41')];}if(_0x4f2b5c['account'][_0x7c46('0x3d')]&&_0x4f2b5c['account']['List'][_0x7c46('0x45')][_0x7c46('0x46')]){return _0x4f2b5c[_0x7c46('0x3c')][_0x7c46('0x3d')][_0x7c46('0x45')][0x0];}var _0x579061=_[_0x7c46('0xc')](_0x213044[_0x7c46('0x28')],{'firstName':_0x213044[_0x7c46('0x28')][_0x7c46('0x35')],'ListId':_0x36266f[_0x7c46('0x33')]});_0x579061[_0x213044[_0x7c46('0x28')][_0x7c46('0x38')]]=_0x213044[_0x7c46('0x28')][_0x7c46('0x35')];return db[_0x7c46('0x2a')]['create'](_0x579061,{'fields':_0x4656b4,'raw':!![]});}})[_0x7c46('0x11')](function(_0x4e9367){_0x4f2b5c[_0x7c46('0x47')]=_0x4e9367;if(_0x4e9367){var _0x25d15e={'ContactId':_0x4e9367['id'],'FaxAccountId':_0x213044[_0x7c46('0x3c')]['id'],'fax':_0x4e9367[_0x7c46('0x29')]};return db[_0x7c46('0x48')][_0x7c46('0x3b')]({'where':{'ContactId':_0x4e9367['id'],'closed':![],'FaxAccountId':_0x213044[_0x7c46('0x3c')]['id']}})['then'](function(_0x2b20b5){if(_0x2b20b5){return[_0x2b20b5,![]];}return db[_0x7c46('0x48')][_0x7c46('0x49')](_0x25d15e)['then'](function(_0x385215){return[_0x385215,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x7c46('0x4a')](function(_0x53a24d,_0x3d784e){var _0x152c96=_0x53a24d['get']({'plain':!![]});if(_0x3d784e){if(_0x4f2b5c[_0x7c46('0x3c')][_0x7c46('0x4b')]){_0x4f2b5c[_0x7c46('0x40')][_0x7c46('0x4c')]({'id':0x0,'priority':_0x4f2b5c[_0x7c46('0x40')][_0x7c46('0x46')]+0x1,'app':_0x7c46('0x4d'),'appdata':'unmanaged','interval':'*,*,*,*'});}_0x152c96[_0x7c46('0x4e')]=!![];}else{_0x152c96[_0x7c46('0x4e')]=![];}_0x4f2b5c[_0x7c46('0x4f')]=_0x152c96;return db[_0x7c46('0x50')]['create']({'body':_0x213044[_0x7c46('0x28')]['body'],'FaxAccountId':_0x213044['account']['id'],'FaxInteractionId':_0x53a24d['id'],'direction':'in','ContactId':_0x53a24d[_0x7c46('0x51')],'AttachmentId':_0x213044[_0x7c46('0x28')][_0x7c46('0x52')]});})[_0x7c46('0x11')](function(_0x241800){_0x4f2b5c['message']=_0x241800;if(_0x4f2b5c[_0x7c46('0x4f')][_0x7c46('0x53')]){return db[_0x7c46('0x54')][_0x7c46('0x3b')]({'attributes':['id',_0x7c46('0x55')],'where':{'id':_0x4f2b5c[_0x7c46('0x4f')][_0x7c46('0x53')]}})[_0x7c46('0x11')](function(_0x284e3c){if(_0x284e3c){_0x4f2b5c[_0x7c46('0x40')][_0x7c46('0x56')]({'id':0x0,'priority':0x0,'app':_0x7c46('0x57'),'appdata':_0x284e3c[_0x7c46('0x55')]+','+(_0x4f2b5c[_0x7c46('0x3c')][_0x7c46('0x58')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise('Start',_0x7c46('0x59'),_0x4f2b5c);});}return respondWithRpcPromise(_0x7c46('0x5a'),_0x7c46('0x59'),_0x4f2b5c);})[_0x7c46('0x11')](function(_0xc1dda9){_0x4f668b(_0xc1dda9);})[_0x7c46('0x1c')](function(_0x543a7a){_0x5202a4(_0x18c404[_0x7c46('0x18')](0x1f4,_0x543a7a[_0x7c46('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5564=['save','update','emit','length','./faxAccount.events'];(function(_0x17367e,_0x4acfd6){var _0x56c598=function(_0x50a93a){while(--_0x50a93a){_0x17367e['push'](_0x17367e['shift']());}};_0x56c598(++_0x4acfd6);}(_0x5564,0x18f));var _0x4556=function(_0xa2bd49,_0x419e11){_0xa2bd49=_0xa2bd49-0x0;var _0x3a2c5d=_0x5564[_0xa2bd49];return _0x3a2c5d;};'use strict';var FaxAccountEvents=require(_0x4556('0x0'));var events=[_0x4556('0x1'),'remove',_0x4556('0x2')];function createListener(_0x36eda3,_0x1cb5b8){return function(_0x86e180){_0x1cb5b8[_0x4556('0x3')](_0x36eda3,_0x86e180);};}function removeListener(_0x2ca548,_0x180a53){return function(){FaxAccountEvents['removeListener'](_0x2ca548,_0x180a53);};}exports['register']=function(_0x3fa499){for(var _0x110a94=0x0,_0x449d1b=events[_0x4556('0x4')];_0x110a94<_0x449d1b;_0x110a94++){var _0x290198=events[_0x110a94];var _0x3ac545=createListener('faxAccount:'+_0x290198,_0x3fa499);FaxAccountEvents['on'](_0x290198,_0x3ac545);}};
\ No newline at end of file
+var _0xfd9f=['save','remove','update','emit','removeListener','register','length','./faxAccount.events'];(function(_0x3f1710,_0x3877a2){var _0x528458=function(_0x4b5d0f){while(--_0x4b5d0f){_0x3f1710['push'](_0x3f1710['shift']());}};_0x528458(++_0x3877a2);}(_0xfd9f,0x167));var _0xffd9=function(_0x5eb782,_0x32b544){_0x5eb782=_0x5eb782-0x0;var _0x7c28b=_0xfd9f[_0x5eb782];return _0x7c28b;};'use strict';var FaxAccountEvents=require(_0xffd9('0x0'));var events=[_0xffd9('0x1'),_0xffd9('0x2'),_0xffd9('0x3')];function createListener(_0x4cf183,_0x2139ba){return function(_0x54ed32){_0x2139ba[_0xffd9('0x4')](_0x4cf183,_0x54ed32);};}function removeListener(_0x350a68,_0x3ea352){return function(){FaxAccountEvents[_0xffd9('0x5')](_0x350a68,_0x3ea352);};}exports[_0xffd9('0x6')]=function(_0x3e282d){for(var _0x289f8e=0x0,_0x48bd8a=events[_0xffd9('0x7')];_0x289f8e<_0x48bd8a;_0x289f8e++){var _0x3fae98=events[_0x289f8e];var _0x487ca0=createListener('faxAccount:'+_0x3fae98,_0x3e282d);FaxAccountEvents['on'](_0x3fae98,_0x487ca0);}};
\ 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(_0x12ec3f,_0x1718a8){var _0x50dfc=function(_0x54407e){while(--_0x54407e){_0x12ec3f['push'](_0x12ec3f['shift']());}};_0x50dfc(++_0x1718a8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x298ed3,_0x4ab5e1){_0x298ed3=_0x298ed3-0x0;var _0x5aad28=_0xa9e0[_0x298ed3];return _0x5aad28;};'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(_0x52b839,_0x27dbe9){var _0x521c91=function(_0x3e8bf1){while(--_0x3e8bf1){_0x52b839['push'](_0x52b839['shift']());}};_0x521c91(++_0x27dbe9);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2d8fc2,_0x1c461d){_0x2d8fc2=_0x2d8fc2-0x0;var _0x3a9e53=_0xa9e0[_0x2d8fc2];return _0x3a9e53;};'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 _0x1035=['TEXT','STRING','*,*,*,*','exports'];(function(_0x3806c1,_0x43a6e8){var _0x1cd87f=function(_0x20f6bb){while(--_0x20f6bb){_0x3806c1['push'](_0x3806c1['shift']());}};_0x1cd87f(++_0x43a6e8);}(_0x1035,0x113));var _0x5103=function(_0x1e920c,_0x2e73de){_0x1e920c=_0x1e920c-0x0;var _0x347799=_0x1035[_0x1e920c];return _0x347799;};'use strict';var Sequelize=require('sequelize');module[_0x5103('0x0')]={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0x5103('0x1')]()},'description':{'type':Sequelize[_0x5103('0x2')]},'interval':{'type':Sequelize[_0x5103('0x2')],'defaultValue':_0x5103('0x3')}};
\ No newline at end of file
+var _0x3da7=['TEXT','sequelize','INTEGER','STRING','noop'];(function(_0x2ba00c,_0x10f136){var _0x4a4853=function(_0x42add8){while(--_0x42add8){_0x2ba00c['push'](_0x2ba00c['shift']());}};_0x4a4853(++_0x10f136);}(_0x3da7,0xe2));var _0x73da=function(_0x5ddaac,_0x2697a8){_0x5ddaac=_0x5ddaac-0x0;var _0x2a9c58=_0x3da7[_0x5ddaac];return _0x2a9c58;};'use strict';var Sequelize=require(_0x73da('0x0'));module['exports']={'priority':{'type':Sequelize[_0x73da('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x73da('0x2')],'allowNull':![],'defaultValue':_0x73da('0x3')},'appdata':{'type':Sequelize[_0x73da('0x4')]()},'description':{'type':Sequelize[_0x73da('0x2')]},'interval':{'type':Sequelize[_0x73da('0x2')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7df8=['zip-dir','request-promise','moment','mustache','path','sox','to-csv','fs-extra','lodash','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','undefined','limit','count','offset','Content-Range','apply','reject','save','then','stack','name','send','index','FaxApplication','rawAttributes','fieldName','type','key','model','map','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','includeAll','findAll','rows','catch','show','params','keys','include','options','create','body','update','find','destroy','eml-format','rimraf'];(function(_0x128115,_0x31d50e){var _0x3b10af=function(_0x29b65a){while(--_0x29b65a){_0x128115['push'](_0x128115['shift']());}};_0x3b10af(++_0x31d50e);}(_0x7df8,0x1c6));var _0x87df=function(_0x26d44e,_0x5b228c){_0x26d44e=_0x26d44e-0x0;var _0x2a294b=_0x7df8[_0x26d44e];return _0x2a294b;};'use strict';var emlformat=require(_0x87df('0x0'));var rimraf=require(_0x87df('0x1'));var zipdir=require(_0x87df('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x87df('0x3'));var moment=require(_0x87df('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x87df('0x5'));var util=require('util');var path=require(_0x87df('0x6'));var sox=require(_0x87df('0x7'));var csv=require(_0x87df('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x87df('0x9'));var _=require(_0x87df('0xa'));var squel=require(_0x87df('0xb'));var crypto=require('crypto');var jsforce=require(_0x87df('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x87df('0xd'));var Redis=require(_0x87df('0xe'));var authService=require(_0x87df('0xf'));var qs=require(_0x87df('0x10'));var as=require(_0x87df('0x11'));var hardwareService=require(_0x87df('0x12'));var logger=require(_0x87df('0x13'))(_0x87df('0x14'));var utils=require(_0x87df('0x15'));var config=require(_0x87df('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x87df('0x17'))['db'];function respondWithStatusCode(_0x9b735e,_0x47ba29){_0x47ba29=_0x47ba29||0xcc;return function(_0x3e5fa0){if(_0x3e5fa0){return _0x9b735e['sendStatus'](_0x47ba29);}return _0x9b735e[_0x87df('0x18')](_0x47ba29)[_0x87df('0x19')]();};}function respondWithResult(_0x37dda6,_0x8536c7){_0x8536c7=_0x8536c7||0xc8;return function(_0x3807df){if(_0x3807df){return _0x37dda6[_0x87df('0x18')](_0x8536c7)[_0x87df('0x1a')](_0x3807df);}};}function respondWithFilteredResult(_0x4d4ce3,_0x2e5ac6){return function(_0x1cc456){if(_0x1cc456){var _0x370635=typeof _0x2e5ac6['offset']===_0x87df('0x1b')&&typeof _0x2e5ac6[_0x87df('0x1c')]==='undefined';var _0x443bb8=_0x1cc456['count'];var _0x2f7a40=_0x370635?0x0:_0x2e5ac6['offset'];var _0x420ad1=_0x370635?_0x1cc456[_0x87df('0x1d')]:_0x2e5ac6[_0x87df('0x1e')]+_0x2e5ac6['limit'];var _0x528b48;if(_0x420ad1>=_0x443bb8){_0x420ad1=_0x443bb8;_0x528b48=0xc8;}else{_0x528b48=0xce;}_0x4d4ce3['status'](_0x528b48);return _0x4d4ce3['set'](_0x87df('0x1f'),_0x2f7a40+'-'+_0x420ad1+'/'+_0x443bb8)[_0x87df('0x1a')](_0x1cc456);}return null;};}function patchUpdates(_0x1e069f){return function(_0x42479e){try{jsonpatch[_0x87df('0x20')](_0x42479e,_0x1e069f,!![]);}catch(_0xf9a07e){return BPromise[_0x87df('0x21')](_0xf9a07e);}return _0x42479e[_0x87df('0x22')]();};}function saveUpdates(_0x23fc7d,_0x134281){return function(_0x127fac){if(_0x127fac){return _0x127fac['update'](_0x23fc7d)['then'](function(_0x3a3f78){return _0x3a3f78;});}return null;};}function removeEntity(_0x9c07e0,_0x6738e7){return function(_0x5cd56e){if(_0x5cd56e){return _0x5cd56e['destroy']()[_0x87df('0x23')](function(){_0x9c07e0['status'](0xcc)[_0x87df('0x19')]();});}};}function handleEntityNotFound(_0x1ccc22,_0x262812){return function(_0x24697f){if(!_0x24697f){_0x1ccc22['sendStatus'](0x194);}return _0x24697f;};}function handleError(_0x1d4bd8,_0x6e3fbe){_0x6e3fbe=_0x6e3fbe||0x1f4;return function(_0x3bdd62){logger['error'](_0x3bdd62[_0x87df('0x24')]);if(_0x3bdd62[_0x87df('0x25')]){delete _0x3bdd62[_0x87df('0x25')];}_0x1d4bd8[_0x87df('0x18')](_0x6e3fbe)[_0x87df('0x26')](_0x3bdd62);};}exports[_0x87df('0x27')]=function(_0x5c0d66,_0x489c59){var _0x208467={},_0x1d3fd1={},_0x20ed16={'count':0x0,'rows':[]};var _0x7265c9=_['map'](db[_0x87df('0x28')][_0x87df('0x29')],function(_0x554bf4){return{'name':_0x554bf4[_0x87df('0x2a')],'type':_0x554bf4[_0x87df('0x2b')][_0x87df('0x2c')]};});_0x1d3fd1[_0x87df('0x2d')]=_[_0x87df('0x2e')](_0x7265c9,'name');_0x1d3fd1[_0x87df('0x2f')]=_['keys'](_0x5c0d66[_0x87df('0x2f')]);_0x1d3fd1[_0x87df('0x30')]=_['intersection'](_0x1d3fd1[_0x87df('0x2d')],_0x1d3fd1[_0x87df('0x2f')]);_0x208467[_0x87df('0x31')]=_[_0x87df('0x32')](_0x1d3fd1[_0x87df('0x2d')],qs[_0x87df('0x33')](_0x5c0d66[_0x87df('0x2f')][_0x87df('0x33')]));_0x208467[_0x87df('0x31')]=_0x208467['attributes'][_0x87df('0x34')]?_0x208467[_0x87df('0x31')]:_0x1d3fd1[_0x87df('0x2d')];if(!_0x5c0d66['query'][_0x87df('0x35')](_0x87df('0x36'))){_0x208467[_0x87df('0x1c')]=qs[_0x87df('0x1c')](_0x5c0d66[_0x87df('0x2f')][_0x87df('0x1c')]);_0x208467[_0x87df('0x1e')]=qs[_0x87df('0x1e')](_0x5c0d66[_0x87df('0x2f')][_0x87df('0x1e')]);}_0x208467[_0x87df('0x37')]=qs[_0x87df('0x38')](_0x5c0d66[_0x87df('0x2f')][_0x87df('0x38')]);_0x208467[_0x87df('0x39')]=qs[_0x87df('0x30')](_[_0x87df('0x3a')](_0x5c0d66['query'],_0x1d3fd1[_0x87df('0x30')]),_0x7265c9);if(_0x5c0d66[_0x87df('0x2f')]['filter']){_0x208467[_0x87df('0x39')]=_[_0x87df('0x3b')](_0x208467[_0x87df('0x39')],{'$or':_[_0x87df('0x2e')](_0x7265c9,function(_0x39ac1c){if(_0x39ac1c[_0x87df('0x2b')]!==_0x87df('0x3c')){var _0x430896={};_0x430896[_0x39ac1c[_0x87df('0x25')]]={'$like':'%'+_0x5c0d66[_0x87df('0x2f')][_0x87df('0x3d')]+'%'};return _0x430896;}})});}_0x208467=_[_0x87df('0x3b')]({},_0x208467,_0x5c0d66['options']);var _0x5f0722={'where':_0x208467['where']};return db[_0x87df('0x28')]['count'](_0x5f0722)[_0x87df('0x23')](function(_0x4a6e91){_0x20ed16[_0x87df('0x1d')]=_0x4a6e91;if(_0x5c0d66[_0x87df('0x2f')][_0x87df('0x3e')]){_0x208467['include']=[{'all':!![]}];}return db[_0x87df('0x28')][_0x87df('0x3f')](_0x208467);})['then'](function(_0x2cc275){_0x20ed16[_0x87df('0x40')]=_0x2cc275;return _0x20ed16;})['then'](respondWithFilteredResult(_0x489c59,_0x208467))[_0x87df('0x41')](handleError(_0x489c59,null));};exports[_0x87df('0x42')]=function(_0x144b11,_0x4c27b2){var _0x36fe73={'raw':!![],'where':{'id':_0x144b11[_0x87df('0x43')]['id']}},_0x2a0e95={};_0x2a0e95['model']=_[_0x87df('0x44')](db['FaxApplication'][_0x87df('0x29')]);_0x2a0e95[_0x87df('0x2f')]=_[_0x87df('0x44')](_0x144b11['query']);_0x2a0e95[_0x87df('0x30')]=_['intersection'](_0x2a0e95[_0x87df('0x2d')],_0x2a0e95[_0x87df('0x2f')]);_0x36fe73[_0x87df('0x31')]=_[_0x87df('0x32')](_0x2a0e95[_0x87df('0x2d')],qs[_0x87df('0x33')](_0x144b11[_0x87df('0x2f')][_0x87df('0x33')]));_0x36fe73[_0x87df('0x31')]=_0x36fe73['attributes']['length']?_0x36fe73[_0x87df('0x31')]:_0x2a0e95['model'];if(_0x144b11[_0x87df('0x2f')][_0x87df('0x3e')]){_0x36fe73[_0x87df('0x45')]=[{'all':!![]}];}_0x36fe73=_[_0x87df('0x3b')]({},_0x36fe73,_0x144b11[_0x87df('0x46')]);return db[_0x87df('0x28')]['find'](_0x36fe73)[_0x87df('0x23')](handleEntityNotFound(_0x4c27b2,null))[_0x87df('0x23')](respondWithResult(_0x4c27b2,null))[_0x87df('0x41')](handleError(_0x4c27b2,null));};exports[_0x87df('0x47')]=function(_0x5929ac,_0x520c66){return db['FaxApplication'][_0x87df('0x47')](_0x5929ac[_0x87df('0x48')],{})[_0x87df('0x23')](respondWithResult(_0x520c66,0xc9))[_0x87df('0x41')](handleError(_0x520c66,null));};exports[_0x87df('0x49')]=function(_0x209f2f,_0x49e0d1){if(_0x209f2f[_0x87df('0x48')]['id']){delete _0x209f2f[_0x87df('0x48')]['id'];}return db[_0x87df('0x28')][_0x87df('0x4a')]({'where':{'id':_0x209f2f['params']['id']}})[_0x87df('0x23')](handleEntityNotFound(_0x49e0d1,null))['then'](saveUpdates(_0x209f2f[_0x87df('0x48')],null))[_0x87df('0x23')](respondWithResult(_0x49e0d1,null))[_0x87df('0x41')](handleError(_0x49e0d1,null));};exports[_0x87df('0x4b')]=function(_0x4b1694,_0x5333c9){return db[_0x87df('0x28')][_0x87df('0x4a')]({'where':{'id':_0x4b1694[_0x87df('0x43')]['id']}})[_0x87df('0x23')](handleEntityNotFound(_0x5333c9,null))[_0x87df('0x23')](removeEntity(_0x5333c9,null))[_0x87df('0x41')](handleError(_0x5333c9,null));};
\ No newline at end of file
+var _0x760c=['model','query','filters','attributes','intersection','fields','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','length','create','body','update','find','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','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','end','status','json','undefined','count','offset','limit','set','apply','reject','save','then','destroy','error','name','send','index','map','FaxApplication','rawAttributes','fieldName','type'];(function(_0x56d590,_0x4da1e7){var _0x5c5955=function(_0x47104a){while(--_0x47104a){_0x56d590['push'](_0x56d590['shift']());}};_0x5c5955(++_0x4da1e7);}(_0x760c,0x1e2));var _0xc760=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0x760c[_0x178e48];return _0x440d7e;};'use strict';var emlformat=require(_0xc760('0x0'));var rimraf=require(_0xc760('0x1'));var zipdir=require(_0xc760('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xc760('0x3'));var BPromise=require(_0xc760('0x4'));var Mustache=require(_0xc760('0x5'));var util=require(_0xc760('0x6'));var path=require(_0xc760('0x7'));var sox=require(_0xc760('0x8'));var csv=require(_0xc760('0x9'));var ejs=require(_0xc760('0xa'));var fs=require('fs');var fs_extra=require(_0xc760('0xb'));var _=require('lodash');var squel=require(_0xc760('0xc'));var crypto=require(_0xc760('0xd'));var jsforce=require(_0xc760('0xe'));var deskjs=require(_0xc760('0xf'));var toCsv=require(_0xc760('0x9'));var querystring=require(_0xc760('0x10'));var Papa=require(_0xc760('0x11'));var Redis=require(_0xc760('0x12'));var authService=require(_0xc760('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xc760('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc760('0x15'))(_0xc760('0x16'));var utils=require(_0xc760('0x17'));var config=require(_0xc760('0x18'));var licenseUtil=require(_0xc760('0x19'));var db=require(_0xc760('0x1a'))['db'];function respondWithStatusCode(_0x596840,_0x12a956){_0x12a956=_0x12a956||0xcc;return function(_0x25fe10){if(_0x25fe10){return _0x596840[_0xc760('0x1b')](_0x12a956);}return _0x596840['status'](_0x12a956)[_0xc760('0x1c')]();};}function respondWithResult(_0x264fb0,_0x1612f9){_0x1612f9=_0x1612f9||0xc8;return function(_0x230c67){if(_0x230c67){return _0x264fb0[_0xc760('0x1d')](_0x1612f9)[_0xc760('0x1e')](_0x230c67);}};}function respondWithFilteredResult(_0x3855e6,_0x253b1d){return function(_0x237ad4){if(_0x237ad4){var _0x34f764=typeof _0x253b1d['offset']==='undefined'&&typeof _0x253b1d['limit']===_0xc760('0x1f');var _0x206aab=_0x237ad4[_0xc760('0x20')];var _0x3820c9=_0x34f764?0x0:_0x253b1d['offset'];var _0x1ea2a9=_0x34f764?_0x237ad4[_0xc760('0x20')]:_0x253b1d[_0xc760('0x21')]+_0x253b1d[_0xc760('0x22')];var _0x37a80a;if(_0x1ea2a9>=_0x206aab){_0x1ea2a9=_0x206aab;_0x37a80a=0xc8;}else{_0x37a80a=0xce;}_0x3855e6[_0xc760('0x1d')](_0x37a80a);return _0x3855e6[_0xc760('0x23')]('Content-Range',_0x3820c9+'-'+_0x1ea2a9+'/'+_0x206aab)[_0xc760('0x1e')](_0x237ad4);}return null;};}function patchUpdates(_0x12c765){return function(_0x7884f2){try{jsonpatch[_0xc760('0x24')](_0x7884f2,_0x12c765,!![]);}catch(_0x4a7113){return BPromise[_0xc760('0x25')](_0x4a7113);}return _0x7884f2[_0xc760('0x26')]();};}function saveUpdates(_0x4a63f2,_0x326a15){return function(_0x57dc40){if(_0x57dc40){return _0x57dc40['update'](_0x4a63f2)[_0xc760('0x27')](function(_0x1dab5d){return _0x1dab5d;});}return null;};}function removeEntity(_0xa2cc4b,_0x36c679){return function(_0x21d529){if(_0x21d529){return _0x21d529[_0xc760('0x28')]()[_0xc760('0x27')](function(){_0xa2cc4b[_0xc760('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x53c235,_0x20aa79){return function(_0x22c5a0){if(!_0x22c5a0){_0x53c235[_0xc760('0x1b')](0x194);}return _0x22c5a0;};}function handleError(_0x145c40,_0x12b139){_0x12b139=_0x12b139||0x1f4;return function(_0x573801){logger[_0xc760('0x29')](_0x573801['stack']);if(_0x573801[_0xc760('0x2a')]){delete _0x573801[_0xc760('0x2a')];}_0x145c40[_0xc760('0x1d')](_0x12b139)[_0xc760('0x2b')](_0x573801);};}exports[_0xc760('0x2c')]=function(_0x221965,_0x4a7b86){var _0x2dd9be={},_0x3abf6c={},_0x52d658={'count':0x0,'rows':[]};var _0x2b71e7=_[_0xc760('0x2d')](db[_0xc760('0x2e')][_0xc760('0x2f')],function(_0x50f7bf){return{'name':_0x50f7bf[_0xc760('0x30')],'type':_0x50f7bf[_0xc760('0x31')]['key']};});_0x3abf6c[_0xc760('0x32')]=_['map'](_0x2b71e7,_0xc760('0x2a'));_0x3abf6c[_0xc760('0x33')]=_['keys'](_0x221965[_0xc760('0x33')]);_0x3abf6c[_0xc760('0x34')]=_['intersection'](_0x3abf6c[_0xc760('0x32')],_0x3abf6c[_0xc760('0x33')]);_0x2dd9be[_0xc760('0x35')]=_[_0xc760('0x36')](_0x3abf6c[_0xc760('0x32')],qs[_0xc760('0x37')](_0x221965[_0xc760('0x33')][_0xc760('0x37')]));_0x2dd9be[_0xc760('0x35')]=_0x2dd9be[_0xc760('0x35')]['length']?_0x2dd9be['attributes']:_0x3abf6c[_0xc760('0x32')];if(!_0x221965['query'][_0xc760('0x38')]('nolimit')){_0x2dd9be[_0xc760('0x22')]=qs[_0xc760('0x22')](_0x221965[_0xc760('0x33')][_0xc760('0x22')]);_0x2dd9be[_0xc760('0x21')]=qs[_0xc760('0x21')](_0x221965[_0xc760('0x33')][_0xc760('0x21')]);}_0x2dd9be[_0xc760('0x39')]=qs[_0xc760('0x3a')](_0x221965[_0xc760('0x33')][_0xc760('0x3a')]);_0x2dd9be[_0xc760('0x3b')]=qs['filters'](_[_0xc760('0x3c')](_0x221965['query'],_0x3abf6c['filters']),_0x2b71e7);if(_0x221965[_0xc760('0x33')][_0xc760('0x3d')]){_0x2dd9be[_0xc760('0x3b')]=_[_0xc760('0x3e')](_0x2dd9be[_0xc760('0x3b')],{'$or':_[_0xc760('0x2d')](_0x2b71e7,function(_0x45c11f){if(_0x45c11f[_0xc760('0x31')]!==_0xc760('0x3f')){var _0x40c9ec={};_0x40c9ec[_0x45c11f['name']]={'$like':'%'+_0x221965['query'][_0xc760('0x3d')]+'%'};return _0x40c9ec;}})});}_0x2dd9be=_[_0xc760('0x3e')]({},_0x2dd9be,_0x221965[_0xc760('0x40')]);var _0x53e4e8={'where':_0x2dd9be[_0xc760('0x3b')]};return db['FaxApplication']['count'](_0x53e4e8)[_0xc760('0x27')](function(_0x553bb2){_0x52d658[_0xc760('0x20')]=_0x553bb2;if(_0x221965[_0xc760('0x33')][_0xc760('0x41')]){_0x2dd9be[_0xc760('0x42')]=[{'all':!![]}];}return db[_0xc760('0x2e')]['findAll'](_0x2dd9be);})[_0xc760('0x27')](function(_0x5c288a){_0x52d658[_0xc760('0x43')]=_0x5c288a;return _0x52d658;})['then'](respondWithFilteredResult(_0x4a7b86,_0x2dd9be))[_0xc760('0x44')](handleError(_0x4a7b86,null));};exports[_0xc760('0x45')]=function(_0x4ccb1e,_0x5c1a69){var _0x11e503={'raw':!![],'where':{'id':_0x4ccb1e[_0xc760('0x46')]['id']}},_0x241edd={};_0x241edd[_0xc760('0x32')]=_['keys'](db[_0xc760('0x2e')]['rawAttributes']);_0x241edd[_0xc760('0x33')]=_['keys'](_0x4ccb1e[_0xc760('0x33')]);_0x241edd[_0xc760('0x34')]=_[_0xc760('0x36')](_0x241edd[_0xc760('0x32')],_0x241edd[_0xc760('0x33')]);_0x11e503[_0xc760('0x35')]=_[_0xc760('0x36')](_0x241edd[_0xc760('0x32')],qs[_0xc760('0x37')](_0x4ccb1e[_0xc760('0x33')][_0xc760('0x37')]));_0x11e503[_0xc760('0x35')]=_0x11e503[_0xc760('0x35')][_0xc760('0x47')]?_0x11e503[_0xc760('0x35')]:_0x241edd[_0xc760('0x32')];if(_0x4ccb1e[_0xc760('0x33')][_0xc760('0x41')]){_0x11e503[_0xc760('0x42')]=[{'all':!![]}];}_0x11e503=_[_0xc760('0x3e')]({},_0x11e503,_0x4ccb1e[_0xc760('0x40')]);return db[_0xc760('0x2e')]['find'](_0x11e503)[_0xc760('0x27')](handleEntityNotFound(_0x5c1a69,null))[_0xc760('0x27')](respondWithResult(_0x5c1a69,null))[_0xc760('0x44')](handleError(_0x5c1a69,null));};exports[_0xc760('0x48')]=function(_0x2b98b9,_0x94cee4){return db[_0xc760('0x2e')][_0xc760('0x48')](_0x2b98b9[_0xc760('0x49')],{})[_0xc760('0x27')](respondWithResult(_0x94cee4,0xc9))[_0xc760('0x44')](handleError(_0x94cee4,null));};exports[_0xc760('0x4a')]=function(_0x4beebe,_0x25ef43){if(_0x4beebe[_0xc760('0x49')]['id']){delete _0x4beebe['body']['id'];}return db[_0xc760('0x2e')][_0xc760('0x4b')]({'where':{'id':_0x4beebe['params']['id']}})[_0xc760('0x27')](handleEntityNotFound(_0x25ef43,null))[_0xc760('0x27')](saveUpdates(_0x4beebe[_0xc760('0x49')],null))[_0xc760('0x27')](respondWithResult(_0x25ef43,null))[_0xc760('0x44')](handleError(_0x25ef43,null));};exports[_0xc760('0x28')]=function(_0x4a02c3,_0x3c0b72){return db[_0xc760('0x2e')]['find']({'where':{'id':_0x4a02c3['params']['id']}})['then'](handleEntityNotFound(_0x3c0b72,null))[_0xc760('0x27')](removeEntity(_0x3c0b72,null))[_0xc760('0x44')](handleError(_0x3c0b72,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x65f1=['request-promise','path','rimraf','../../config/environment','./faxApplication.attributes','exports','fax_applications','utf8mb4','utf8mb4_unicode_ci','lodash','api','moment'];(function(_0x3e0c59,_0x3920b9){var _0x7bbc07=function(_0x55e181){while(--_0x55e181){_0x3e0c59['push'](_0x3e0c59['shift']());}};_0x7bbc07(++_0x3920b9);}(_0x65f1,0x141));var _0x165f=function(_0xdd82b4,_0x5cd8b8){_0xdd82b4=_0xdd82b4-0x0;var _0x549bb2=_0x65f1[_0xdd82b4];return _0x549bb2;};'use strict';var _=require(_0x165f('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x165f('0x1'));var moment=require(_0x165f('0x2'));var BPromise=require('bluebird');var rp=require(_0x165f('0x3'));var fs=require('fs');var path=require(_0x165f('0x4'));var rimraf=require(_0x165f('0x5'));var config=require(_0x165f('0x6'));var attributes=require(_0x165f('0x7'));module[_0x165f('0x8')]=function(_0x35f9c7,_0x37b630){return _0x35f9c7['define']('FaxApplication',attributes,{'tableName':_0x165f('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x165f('0xa'),'collate':_0x165f('0xb')});};
\ No newline at end of file
+var _0x43eb=['path','rimraf','../../config/environment','exports','define','FaxApplication','fax_applications','utf8mb4','lodash','api','moment'];(function(_0x22943f,_0x33b25e){var _0xc270a7=function(_0x12345f){while(--_0x12345f){_0x22943f['push'](_0x22943f['shift']());}};_0xc270a7(++_0x33b25e);}(_0x43eb,0x97));var _0xb43e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x43eb[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xb43e('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xb43e('0x1'));var moment=require(_0xb43e('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xb43e('0x3'));var rimraf=require(_0xb43e('0x4'));var config=require(_0xb43e('0x5'));var attributes=require('./faxApplication.attributes');module[_0xb43e('0x6')]=function(_0x4123b7,_0x365fc2){return _0x4123b7[_0xb43e('0x7')](_0xb43e('0x8'),attributes,{'tableName':_0xb43e('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xb43e('0xa'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x692c=['result','catch','UpdateFaxApplication','update','body','options','raw','attributes','limit','debug','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','FaxApplication,\x20%s,\x20%s','FaxApplication,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message'];(function(_0x53b53e,_0x498437){var _0xbb6179=function(_0x3975eb){while(--_0x3975eb){_0x53b53e['push'](_0x53b53e['shift']());}};_0xbb6179(++_0x498437);}(_0x692c,0x166));var _0xc692=function(_0x41b21a,_0x2eb22e){_0x41b21a=_0x41b21a-0x0;var _0x271bdf=_0x692c[_0x41b21a];return _0x271bdf;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xc692('0x0'));var BPromise=require(_0xc692('0x1'));var rs=require(_0xc692('0x2'));var fs=require('fs');var Redis=require(_0xc692('0x3'));var db=require(_0xc692('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xc692('0x5'))(_0xc692('0x6'));var config=require(_0xc692('0x7'));var jayson=require(_0xc692('0x8'));var client=jayson['client'][_0xc692('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3c59ec,_0x3a81fd,_0x31e0db){return new BPromise(function(_0x15a4c0,_0x3ba3b5){return client[_0xc692('0xa')](_0x3c59ec,_0x31e0db)[_0xc692('0xb')](function(_0x3f74d5){logger[_0xc692('0xc')](_0xc692('0xd'),_0x3a81fd,'request\x20sent');logger['debug'](_0xc692('0xe'),_0x3a81fd,_0xc692('0xf'),JSON[_0xc692('0x10')](_0x3f74d5));if(_0x3f74d5[_0xc692('0x11')]){if(_0x3f74d5[_0xc692('0x11')]['code']===0x1f4){logger['error'](_0xc692('0xd'),_0x3a81fd,_0x3f74d5['error'][_0xc692('0x12')]);return _0x3ba3b5(_0x3f74d5['error'][_0xc692('0x12')]);}logger['error'](_0xc692('0xd'),_0x3a81fd,_0x3f74d5[_0xc692('0x11')][_0xc692('0x12')]);return _0x15a4c0(_0x3f74d5['error'][_0xc692('0x12')]);}else{logger[_0xc692('0xc')](_0xc692('0xd'),_0x3a81fd,'request\x20sent');_0x15a4c0(_0x3f74d5[_0xc692('0x13')][_0xc692('0x12')]);}})[_0xc692('0x14')](function(_0x286e24){logger[_0xc692('0x11')](_0xc692('0xd'),_0x3a81fd,_0x286e24);_0x3ba3b5(_0x286e24);});});}exports[_0xc692('0x15')]=function(_0x53dc02){var _0x43359b=this;return new Promise(function(_0x3741ee,_0x55e289){return db['FaxApplication'][_0xc692('0x16')](_0x53dc02[_0xc692('0x17')],{'raw':_0x53dc02[_0xc692('0x18')]?_0x53dc02[_0xc692('0x18')][_0xc692('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x53dc02[_0xc692('0x18')]?_0x53dc02['options']['where']||null:null,'attributes':_0x53dc02[_0xc692('0x18')]?_0x53dc02[_0xc692('0x18')][_0xc692('0x1a')]||null:null,'limit':_0x53dc02[_0xc692('0x18')]?_0x53dc02[_0xc692('0x18')][_0xc692('0x1b')]||null:null})[_0xc692('0xb')](function(_0x461885){logger[_0xc692('0xc')](_0xc692('0x15'),_0x53dc02);logger[_0xc692('0x1c')](_0xc692('0x15'),_0x53dc02,JSON[_0xc692('0x10')](_0x461885));_0x3741ee(_0x461885);})[_0xc692('0x14')](function(_0x4e0046){logger[_0xc692('0x11')]('UpdateFaxApplication',_0x4e0046[_0xc692('0x12')],_0x53dc02);_0x55e289(_0x43359b[_0xc692('0x11')](0x1f4,_0x4e0046[_0xc692('0x12')]));});});};
\ No newline at end of file
+var _0xede3=['limit','debug','stringify','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','FaxApplication,\x20%s,\x20%s,\x20%s','error','code','FaxApplication,\x20%s,\x20%s','message','result','catch','UpdateFaxApplication','body','options','raw','where','attributes'];(function(_0x49b8db,_0x3c2fb8){var _0x311d7f=function(_0x4b5ccc){while(--_0x4b5ccc){_0x49b8db['push'](_0x49b8db['shift']());}};_0x311d7f(++_0x3c2fb8);}(_0xede3,0xf3));var _0x3ede=function(_0x4563e3,_0x3a197e){_0x4563e3=_0x4563e3-0x0;var _0x54bdd3=_0xede3[_0x4563e3];return _0x54bdd3;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x3ede('0x0'));var BPromise=require(_0x3ede('0x1'));var rs=require(_0x3ede('0x2'));var fs=require('fs');var Redis=require(_0x3ede('0x3'));var db=require(_0x3ede('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x3ede('0x5'))(_0x3ede('0x6'));var config=require(_0x3ede('0x7'));var jayson=require(_0x3ede('0x8'));var client=jayson['client'][_0x3ede('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x58e26d,_0x20b663,_0x4d4071){return new BPromise(function(_0x199875,_0xcccda1){return client[_0x3ede('0xa')](_0x58e26d,_0x4d4071)[_0x3ede('0xb')](function(_0x3af4d7){logger[_0x3ede('0xc')]('FaxApplication,\x20%s,\x20%s',_0x20b663,_0x3ede('0xd'));logger['debug'](_0x3ede('0xe'),_0x20b663,_0x3ede('0xd'),JSON['stringify'](_0x3af4d7));if(_0x3af4d7['error']){if(_0x3af4d7[_0x3ede('0xf')][_0x3ede('0x10')]===0x1f4){logger[_0x3ede('0xf')](_0x3ede('0x11'),_0x20b663,_0x3af4d7[_0x3ede('0xf')][_0x3ede('0x12')]);return _0xcccda1(_0x3af4d7['error'][_0x3ede('0x12')]);}logger[_0x3ede('0xf')](_0x3ede('0x11'),_0x20b663,_0x3af4d7[_0x3ede('0xf')][_0x3ede('0x12')]);return _0x199875(_0x3af4d7[_0x3ede('0xf')]['message']);}else{logger['info'](_0x3ede('0x11'),_0x20b663,_0x3ede('0xd'));_0x199875(_0x3af4d7[_0x3ede('0x13')][_0x3ede('0x12')]);}})[_0x3ede('0x14')](function(_0x2f1b31){logger[_0x3ede('0xf')](_0x3ede('0x11'),_0x20b663,_0x2f1b31);_0xcccda1(_0x2f1b31);});});}exports[_0x3ede('0x15')]=function(_0xf24b82){var _0x28d7dc=this;return new Promise(function(_0x428333,_0x10a124){return db['FaxApplication']['update'](_0xf24b82[_0x3ede('0x16')],{'raw':_0xf24b82[_0x3ede('0x17')]?_0xf24b82['options'][_0x3ede('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xf24b82[_0x3ede('0x17')]?_0xf24b82[_0x3ede('0x17')][_0x3ede('0x19')]||null:null,'attributes':_0xf24b82[_0x3ede('0x17')]?_0xf24b82[_0x3ede('0x17')][_0x3ede('0x1a')]||null:null,'limit':_0xf24b82[_0x3ede('0x17')]?_0xf24b82[_0x3ede('0x17')][_0x3ede('0x1b')]||null:null})[_0x3ede('0xb')](function(_0x241a2d){logger['info'](_0x3ede('0x15'),_0xf24b82);logger[_0x3ede('0x1c')](_0x3ede('0x15'),_0xf24b82,JSON[_0x3ede('0x1d')](_0x241a2d));_0x428333(_0x241a2d);})[_0x3ede('0x14')](function(_0x51d052){logger['error'](_0x3ede('0x15'),_0x51d052[_0x3ede('0x12')],_0xf24b82);_0x10a124(_0x28d7dc[_0x3ede('0xf')](0x1f4,_0x51d052[_0x3ede('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1775=['../../config/environment','./faxApplication.controller','get','isAuthenticated','index','/:id','show','post','create','put','delete','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x1b143c,_0x458b30){var _0xe5e851=function(_0x7a8e6f){while(--_0x7a8e6f){_0x1b143c['push'](_0x1b143c['shift']());}};_0xe5e851(++_0x458b30);}(_0x1775,0x1db));var _0x5177=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x1775[_0x502c7d];return _0x30b7ed;};'use strict';var multer=require('multer');var util=require(_0x5177('0x0'));var path=require(_0x5177('0x1'));var timeout=require(_0x5177('0x2'));var express=require(_0x5177('0x3'));var router=express[_0x5177('0x4')]();var fs_extra=require(_0x5177('0x5'));var auth=require(_0x5177('0x6'));var interaction=require(_0x5177('0x7'));var config=require(_0x5177('0x8'));var controller=require(_0x5177('0x9'));router[_0x5177('0xa')]('/',auth[_0x5177('0xb')](),controller[_0x5177('0xc')]);router[_0x5177('0xa')](_0x5177('0xd'),auth[_0x5177('0xb')](),controller[_0x5177('0xe')]);router[_0x5177('0xf')]('/',auth[_0x5177('0xb')](),controller[_0x5177('0x10')]);router[_0x5177('0x11')](_0x5177('0xd'),auth['isAuthenticated'](),controller['update']);router[_0x5177('0x12')](_0x5177('0xd'),auth[_0x5177('0xb')](),controller[_0x5177('0x13')]);module[_0x5177('0x14')]=router;
\ No newline at end of file
+var _0xf4f4=['../../config/environment','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service'];(function(_0x12954a,_0x304691){var _0x5ccde2=function(_0x5c3d68){while(--_0x5c3d68){_0x12954a['push'](_0x12954a['shift']());}};_0x5ccde2(++_0x304691);}(_0xf4f4,0xe3));var _0x4f4f=function(_0xab1a13,_0x5e6076){_0xab1a13=_0xab1a13-0x0;var _0x24ce8b=_0xf4f4[_0xab1a13];return _0x24ce8b;};'use strict';var multer=require(_0x4f4f('0x0'));var util=require(_0x4f4f('0x1'));var path=require('path');var timeout=require(_0x4f4f('0x2'));var express=require(_0x4f4f('0x3'));var router=express[_0x4f4f('0x4')]();var fs_extra=require(_0x4f4f('0x5'));var auth=require(_0x4f4f('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x4f4f('0x7'));var controller=require('./faxApplication.controller');router[_0x4f4f('0x8')]('/',auth[_0x4f4f('0x9')](),controller[_0x4f4f('0xa')]);router[_0x4f4f('0x8')](_0x4f4f('0xb'),auth[_0x4f4f('0x9')](),controller[_0x4f4f('0xc')]);router[_0x4f4f('0xd')]('/',auth['isAuthenticated'](),controller[_0x4f4f('0xe')]);router[_0x4f4f('0xf')](_0x4f4f('0xb'),auth[_0x4f4f('0x9')](),controller[_0x4f4f('0x10')]);router[_0x4f4f('0x11')](_0x4f4f('0xb'),auth[_0x4f4f('0x9')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f68=['DATE','ENUM','out','sequelize','BOOLEAN','STRING'];(function(_0x5cc7e3,_0x1d79c1){var _0x2ab05d=function(_0x40ba1f){while(--_0x40ba1f){_0x5cc7e3['push'](_0x5cc7e3['shift']());}};_0x2ab05d(++_0x1d79c1);}(_0x9f68,0x135));var _0x89f6=function(_0x4d1866,_0x1a5e44){_0x4d1866=_0x4d1866-0x0;var _0x1c0ef9=_0x9f68[_0x4d1866];return _0x1c0ef9;};'use strict';var Sequelize=require(_0x89f6('0x0'));module['exports']={'closed':{'type':Sequelize[_0x89f6('0x1')],'defaultValue':![]},'closedAt':{'type':Sequelize['DATE']},'disposition':{'type':Sequelize[_0x89f6('0x2')]},'secondDisposition':{'type':Sequelize[_0x89f6('0x2')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x89f6('0x2')]},'read1stAt':{'type':Sequelize[_0x89f6('0x3')]},'fax':{'type':Sequelize[_0x89f6('0x2')]},'firstMsgDirection':{'type':Sequelize[_0x89f6('0x4')]('in',_0x89f6('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x89f6('0x3')]},'lastMsgDirection':{'type':Sequelize[_0x89f6('0x4')]('in',_0x89f6('0x5')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
+var _0x44be=['DATE','STRING','ENUM','sequelize','exports','BOOLEAN'];(function(_0x2a42ee,_0x4d099b){var _0x30b78a=function(_0x36598c){while(--_0x36598c){_0x2a42ee['push'](_0x2a42ee['shift']());}};_0x30b78a(++_0x4d099b);}(_0x44be,0xbd));var _0xe44b=function(_0x183b97,_0x2d297c){_0x183b97=_0x183b97-0x0;var _0x629cf7=_0x44be[_0x183b97];return _0x629cf7;};'use strict';var Sequelize=require(_0xe44b('0x0'));module[_0xe44b('0x1')]={'closed':{'type':Sequelize[_0xe44b('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xe44b('0x3')]},'disposition':{'type':Sequelize[_0xe44b('0x4')]},'secondDisposition':{'type':Sequelize[_0xe44b('0x4')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0xe44b('0x4')]},'read1stAt':{'type':Sequelize[_0xe44b('0x3')]},'fax':{'type':Sequelize[_0xe44b('0x4')]},'firstMsgDirection':{'type':Sequelize[_0xe44b('0x5')]('in','out'),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xe44b('0x3')]},'lastMsgDirection':{'type':Sequelize[_0xe44b('0x5')]('in','out'),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57ec=['model','query','keys','intersection','attributes','fields','length','hasOwnProperty','sort','where','filters','pick','select','field','color','from','u.id','u.fullname','ui.FaxInteractionId','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','it.FaxInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','find','unreadMessages','value','having','`\x20>\x200','Contact','operator','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','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','some','compact','isEmpty','FaxAccountId','concat','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','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)','order','contactName','resolve','i.FaxAccountId\x20IS\x20NOT\x20NULL','user','agent','getFaxAccounts','i.FaxAccountId\x20IS\x20NULL','i.FaxAccountId\x20IN\x20?','role','sequelize','toString','merge','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.email','Contact.email','Contact.phone','c.mobile','Contact.mobile','Contact.fax','o.fullname','Owner.fullname','o.internal','ui.FaxInteractionId\x20IN\x20?','groupBy','FaxInteractionId','all','rows','params','includeAll','include','create','destroy','describe','FaxMessage','addMessage','omit','ids','nolimit','format','options','findAll','addTags','spread','emit','faxInteractionTags:save','removeTags','download','unix','root','server','files','tmp','attachments','join','push','Attachment','Messages','createdAt','get','basename','existsSync','createReadStream','pipe','createWriteStream','log','err','unlinkSync','rimraf','fast-json-patch','request-promise','bluebird','path','sox','lodash','squel','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','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','update','then','stack','name','send','map','fullname','TagIds','Tags','split','forEach','catch','index','FaxInteraction','rawAttributes','fieldName','type','key'];(function(_0x4f321c,_0x103664){var _0x3dceb8=function(_0x22a8a1){while(--_0x22a8a1){_0x4f321c['push'](_0x4f321c['shift']());}};_0x3dceb8(++_0x103664);}(_0x57ec,0x99));var _0xc57e=function(_0x5d6456,_0x58ecc7){_0x5d6456=_0x5d6456-0x0;var _0x4d66c1=_0x57ec[_0x5d6456];return _0x4d66c1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc57e('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc57e('0x1'));var rp=require(_0xc57e('0x2'));var moment=require('moment');var BPromise=require(_0xc57e('0x3'));var Mustache=require('mustache');var util=require('util');var path=require(_0xc57e('0x4'));var sox=require(_0xc57e('0x5'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc57e('0x6'));var squel=require(_0xc57e('0x7'));var crypto=require('crypto');var jsforce=require(_0xc57e('0x8'));var deskjs=require(_0xc57e('0x9'));var toCsv=require('to-csv');var querystring=require(_0xc57e('0xa'));var Papa=require(_0xc57e('0xb'));var Redis=require(_0xc57e('0xc'));var authService=require(_0xc57e('0xd'));var qs=require(_0xc57e('0xe'));var as=require(_0xc57e('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc57e('0x10'))(_0xc57e('0x11'));var utils=require(_0xc57e('0x12'));var config=require(_0xc57e('0x13'));var licenseUtil=require(_0xc57e('0x14'));var db=require(_0xc57e('0x15'))['db'];config[_0xc57e('0x16')]=_[_0xc57e('0x17')](config[_0xc57e('0x16')],{'host':_0xc57e('0x18'),'port':0x18eb});var socket=require(_0xc57e('0x19'))(new Redis(config[_0xc57e('0x16')]));require('./faxInteraction.socket')['register'](socket);function respondWithStatusCode(_0x698fc3,_0x4e3c09){_0x4e3c09=_0x4e3c09||0xcc;return function(_0x403a0d){if(_0x403a0d){return _0x698fc3[_0xc57e('0x1a')](_0x4e3c09);}return _0x698fc3[_0xc57e('0x1b')](_0x4e3c09)[_0xc57e('0x1c')]();};}function respondWithResult(_0x24128a,_0x2b64d1){_0x2b64d1=_0x2b64d1||0xc8;return function(_0x432bce){if(_0x432bce){return _0x24128a[_0xc57e('0x1b')](_0x2b64d1)['json'](_0x432bce);}};}function respondWithFilteredResult(_0x1e5305,_0x4ee36a){return function(_0x3adc37){if(_0x3adc37){var _0x6960be=typeof _0x4ee36a[_0xc57e('0x1d')]===_0xc57e('0x1e')&&typeof _0x4ee36a[_0xc57e('0x1f')]===_0xc57e('0x1e');var _0x267c34=_0x3adc37[_0xc57e('0x20')];var _0x239707=_0x6960be?0x0:_0x4ee36a[_0xc57e('0x1d')];var _0x395350=_0x6960be?_0x3adc37['count']:_0x4ee36a[_0xc57e('0x1d')]+_0x4ee36a['limit'];var _0x1980e0;if(_0x395350>=_0x267c34){_0x395350=_0x267c34;_0x1980e0=0xc8;}else{_0x1980e0=0xce;}_0x1e5305[_0xc57e('0x1b')](_0x1980e0);return _0x1e5305['set'](_0xc57e('0x21'),_0x239707+'-'+_0x395350+'/'+_0x267c34)[_0xc57e('0x22')](_0x3adc37);}return null;};}function patchUpdates(_0x3153e3){return function(_0x4a91e7){try{jsonpatch[_0xc57e('0x23')](_0x4a91e7,_0x3153e3,!![]);}catch(_0x336fac){return BPromise[_0xc57e('0x24')](_0x336fac);}return _0x4a91e7['save']();};}function saveUpdates(_0x1bfbe,_0x4de797){return function(_0xa6bbdb){if(_0xa6bbdb){return _0xa6bbdb[_0xc57e('0x25')](_0x1bfbe)[_0xc57e('0x26')](function(_0x5c138c){return _0x5c138c;});}return null;};}function removeEntity(_0x427a8f,_0x365202){return function(_0x2f78e3){if(_0x2f78e3){return _0x2f78e3['destroy']()[_0xc57e('0x26')](function(){_0x427a8f[_0xc57e('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5054fa,_0x35849e){return function(_0x22be0b){if(!_0x22be0b){_0x5054fa[_0xc57e('0x1a')](0x194);}return _0x22be0b;};}function handleError(_0x5a8b83,_0x21adc5){_0x21adc5=_0x21adc5||0x1f4;return function(_0x4c9de0){logger['error'](_0x4c9de0[_0xc57e('0x27')]);if(_0x4c9de0[_0xc57e('0x28')]){delete _0x4c9de0[_0xc57e('0x28')];}_0x5a8b83['status'](_0x21adc5)[_0xc57e('0x29')](_0x4c9de0);};}function getInteractionUsers(_0x36b952,_0x3ce3b6){return new BPromise(function(_0x54002e,_0x126983){try{if(_0x3ce3b6[_0x36b952['id']]){_0x36b952['Users']=_[_0xc57e('0x2a')](_0x3ce3b6[_0x36b952['id']],function(_0x386468){return{'id':_0x386468['id'],'fullname':_0x386468[_0xc57e('0x2b')]};});}}catch(_0x325052){_0x126983(_0x325052);}_0x54002e(_0x36b952);});}function getInteractionTags(_0x582947,_0x19624b){return new BPromise(function(_0x98a91c,_0x65f126){try{if(_0x582947[_0xc57e('0x2c')]){_0x582947[_0xc57e('0x2d')]=[];_0x582947[_0xc57e('0x2c')][_0xc57e('0x2e')](',')[_0xc57e('0x2f')](function(_0x116107){_0x582947['Tags']['push'](_0x19624b[_0x116107]);});}delete _0x582947[_0xc57e('0x2c')];}catch(_0x136262){_0x65f126(_0x136262);}_0x98a91c(_0x582947);});}function updateFaxInteraction(_0x2a3f7c,_0x11b2ff,_0x4a0e01){return new BPromise(function(_0x4aea2f,_0x28b704){return getInteractionUsers(_0x2a3f7c,_0x4a0e01)[_0xc57e('0x26')](function(_0x465833){return getInteractionTags(_0x465833,_0x11b2ff);})[_0xc57e('0x26')](function(_0x2ebd93){_0x4aea2f(_0x2ebd93);})[_0xc57e('0x30')](function(_0x2f3fff){_0x28b704(_0x2f3fff);});});}exports[_0xc57e('0x31')]=function(_0xaf5628,_0x28b20a){var _0x19f7f5={},_0x116a14={},_0x5976b9={'count':0x0,'rows':[]};var _0x48a00d=_[_0xc57e('0x2a')](db[_0xc57e('0x32')][_0xc57e('0x33')],function(_0x3a7080){return{'name':_0x3a7080[_0xc57e('0x34')],'type':_0x3a7080[_0xc57e('0x35')][_0xc57e('0x36')]};});_0x116a14[_0xc57e('0x37')]=_[_0xc57e('0x2a')](_0x48a00d,_0xc57e('0x28'));_0x116a14[_0xc57e('0x38')]=_[_0xc57e('0x39')](_0xaf5628['query']);_0x116a14['filters']=_[_0xc57e('0x3a')](_0x116a14[_0xc57e('0x37')],_0x116a14['query']);_0x19f7f5[_0xc57e('0x3b')]=_[_0xc57e('0x3a')](_0x116a14[_0xc57e('0x37')],qs[_0xc57e('0x3c')](_0xaf5628['query'][_0xc57e('0x3c')]));_0x19f7f5[_0xc57e('0x3b')]=_0x19f7f5['attributes'][_0xc57e('0x3d')]?_0x19f7f5[_0xc57e('0x3b')]:_0x116a14[_0xc57e('0x37')];if(!_0xaf5628[_0xc57e('0x38')][_0xc57e('0x3e')]('nolimit')){_0x19f7f5[_0xc57e('0x1f')]=qs[_0xc57e('0x1f')](_0xaf5628[_0xc57e('0x38')]['limit']);_0x19f7f5[_0xc57e('0x1d')]=qs['offset'](_0xaf5628[_0xc57e('0x38')][_0xc57e('0x1d')]);}_0x19f7f5['order']=qs[_0xc57e('0x3f')](_0xaf5628['query'][_0xc57e('0x3f')]);_0x19f7f5[_0xc57e('0x40')]=qs[_0xc57e('0x41')](_[_0xc57e('0x42')](_0xaf5628['query'],_0x116a14[_0xc57e('0x41')]),_0x48a00d);var _0x5b0b6f=[];var _0x97f061=squel[_0xc57e('0x43')]()['field']('id')[_0xc57e('0x44')]('name')[_0xc57e('0x44')](_0xc57e('0x45'))[_0xc57e('0x46')]('tools_tags');var _0x44413b=squel[_0xc57e('0x43')]()[_0xc57e('0x44')](_0xc57e('0x47'))[_0xc57e('0x44')](_0xc57e('0x48'))['field'](_0xc57e('0x49'))[_0xc57e('0x46')](_0xc57e('0x4a'),'ui')[_0xc57e('0x4b')]('users','u',_0xc57e('0x4c'));var _0x9d67a3=squel[_0xc57e('0x43')]()[_0xc57e('0x46')](_0xc57e('0x4d'),'i')[_0xc57e('0x4b')](_0xc57e('0x4e'),'c',_0xc57e('0x4f'))[_0xc57e('0x4b')](_0xc57e('0x50'),'o',_0xc57e('0x51'))['left_join']('fax_accounts','a',_0xc57e('0x52'))[_0xc57e('0x4b')](_0xc57e('0x53'),'me',_0xc57e('0x54'))['left_join'](_0xc57e('0x55'),'it',_0xc57e('0x56'))[_0xc57e('0x4b')]('tools_tags','t',_0xc57e('0x57'));var _0x49d879=squel[_0xc57e('0x58')]();var _0x1b50ac=[];var _0x55bf11=squel[_0xc57e('0x58')]();var _0x3ae69e;if(_0xaf5628[_0xc57e('0x38')][_0xc57e('0x59')]){_0x3ae69e=as[_0xc57e('0x5a')](_0xaf5628['query']['search']);var _0x470eb2=_0x3ae69e['sqlOperator'];for(var _0x23d8d4=0x0;_0x23d8d4<_0x3ae69e['conditions']['length'];_0x23d8d4++){var _0x4dfd56=_0x3ae69e['conditions'][_0x23d8d4];var _0x34b825='i';var _0x4f9c02=_[_0xc57e('0x5b')](_0x48a00d,['name',_0x4dfd56[_0xc57e('0x44')]]);if(!_0x4f9c02){switch(_0x4dfd56['field']){case _0xc57e('0x5c'):if(_0x4dfd56[_0xc57e('0x5d')]==0x1){_0x9d67a3[_0xc57e('0x5e')]('`'+_0x4dfd56['field']+'`\x20=\x200');}else{_0x9d67a3['having']('`'+_0x4dfd56['field']+_0xc57e('0x5f'));}break;case _0xc57e('0x60'):if(_0x4dfd56[_0xc57e('0x61')]==='$substring'){if(_0x4dfd56['value']['split']('\x20')[_0xc57e('0x3d')]>0x1){_0x49d879[_0x470eb2](_0xc57e('0x62'),qs['getFullTextValue'](_0x4dfd56[_0xc57e('0x5d')]),null);}else{var _0xe902f7='%'+_0x4dfd56[_0xc57e('0x5d')]+'%';_0x49d879[_0x470eb2](_0xc57e('0x63'),_0xe902f7,_0xe902f7,_0xe902f7);}}else{_0x4f9c02=_[_0xc57e('0x5b')](_0x48a00d,[_0xc57e('0x28'),_0xc57e('0x64')]);_0x4dfd56[_0xc57e('0x44')]='ContactId';_0x3aff73=as[_0xc57e('0x65')](_0x34b825,_0x4f9c02[_0xc57e('0x35')],_0x4dfd56);_0x49d879[_0x470eb2](_0x3aff73[_0xc57e('0x66')],_0x3aff73['value'][_0xc57e('0x67')],_0x3aff73['value'][_0xc57e('0x1c')]);}break;case _0xc57e('0x68'):var _0x3ba9f8=_0x4dfd56[_0xc57e('0x5d')][_0xc57e('0x2e')](',')['map'](function(_0x200199){return Number(_0x200199);});_0x3ba9f8[_0xc57e('0x2f')](function(_0xef5700){_0x55bf11['or'](_0xc57e('0x69'),'%,'+_0xef5700+',%');});_0x1b50ac=_[_0xc57e('0x6a')](_0x1b50ac,_0x3ba9f8);break;case'User':if(_0x4dfd56[_0xc57e('0x61')]===_0xc57e('0x6b')){_0x49d879[_0x470eb2](_0xc57e('0x6c'),'%'+_0x4dfd56[_0xc57e('0x5d')]+'%',null);}else{_0x4f9c02=_[_0xc57e('0x5b')](_0x48a00d,['name',_0xc57e('0x6d')]);_0x4dfd56[_0xc57e('0x44')]=_0xc57e('0x6d');_0x3aff73=as['buildExpression'](_0x34b825,_0x4f9c02['type'],_0x4dfd56);_0x49d879[_0x470eb2](_0x3aff73[_0xc57e('0x66')],_0x3aff73[_0xc57e('0x5d')][_0xc57e('0x67')],_0x3aff73[_0xc57e('0x5d')][_0xc57e('0x1c')]);}break;case _0xc57e('0x6e'):_0x3aff73=as[_0xc57e('0x65')]('me',null,_0x4dfd56);_0x49d879[_0x470eb2](_0x3aff73['text'],_0x3aff73[_0xc57e('0x5d')]['start'],_0x3aff73['value'][_0xc57e('0x1c')]);break;}}else{var _0x3aff73=as[_0xc57e('0x65')](_0x34b825,_0x4f9c02[_0xc57e('0x35')],_0x4dfd56);_0x49d879[_0x470eb2](_0x3aff73[_0xc57e('0x66')],_0x3aff73[_0xc57e('0x5d')][_0xc57e('0x67')],_0x3aff73[_0xc57e('0x5d')]['end']);}}}else{var _0x478d69=_(_0xaf5628['query'])['keys']()[_0xc57e('0x2a')](function(_0x4eb65e){return _[_0xc57e('0x6f')](_0x48a00d,[_0xc57e('0x28'),_0x4eb65e])?_0x4eb65e:undefined;})[_0xc57e('0x70')]()[_0xc57e('0x5d')]();if(!_[_0xc57e('0x71')](_0x478d69)){_0x478d69[_0xc57e('0x2f')](function(_0x4ab2e7){if(_0x4ab2e7===_0xc57e('0x72')){_0x9d67a3[_0xc57e('0x40')]('i.FaxAccountId\x20IN\x20?',[][_0xc57e('0x73')](_0xaf5628['query'][_0x4ab2e7]));}else if(_0x4ab2e7==='createdAt'){var _0x29de1b=JSON[_0xc57e('0x74')](_0xaf5628[_0xc57e('0x38')][_0x4ab2e7])[_0xc57e('0x75')];var _0x523f0e=JSON[_0xc57e('0x74')](_0xaf5628[_0xc57e('0x38')][_0x4ab2e7])[_0xc57e('0x76')];_0x9d67a3[_0xc57e('0x40')](_0xc57e('0x77'),_0x29de1b,_0x523f0e);}else{if(_0xaf5628[_0xc57e('0x38')][_0x4ab2e7]===_0xc57e('0x78')){_0x9d67a3[_0xc57e('0x40')]('i.'+_0x4ab2e7+'\x20IS\x20NULL');}else{_0x9d67a3[_0xc57e('0x40')]('i.'+_0x4ab2e7+_0xc57e('0x79'),_0xaf5628[_0xc57e('0x38')][_0x4ab2e7]);}}});}if(_0xaf5628[_0xc57e('0x38')][_0xc57e('0x7a')]){if(_0xaf5628['query'][_0xc57e('0x7a')]==0x1){_0x9d67a3[_0xc57e('0x5e')](_0xc57e('0x7b'));}else{_0x9d67a3['having']('`unreadMessages`\x20>\x200');}}if(_0xaf5628[_0xc57e('0x38')][_0xc57e('0x7c')]){_0x1b50ac=_[_0xc57e('0x7d')](_0xaf5628[_0xc57e('0x38')]['tag'])?_0xaf5628[_0xc57e('0x38')][_0xc57e('0x7c')]:new Array(_0xaf5628['query']['tag']);_0x1b50ac[_0xc57e('0x2f')](function(_0x1d561c){_0x55bf11['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x1d561c+',%');});}if(_0xaf5628[_0xc57e('0x38')]['filter']){var _0x3e0940=_0xaf5628['query'][_0xc57e('0x7e')][_0xc57e('0x7f')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0xc57e('0x80')](_0x3e0940)){_0x49d879['or'](_0xc57e('0x81'),_0x3e0940+'%')['or']('i.fax\x20LIKE\x20?',_0x3e0940+'%');}_0x49d879['or'](_0xc57e('0x82'),_0x3e0940+'%');}}_0x9d67a3[_0xc57e('0x40')](_0x49d879);_0x9d67a3['group'](_0xc57e('0x83'));var _0x2308e8={'type':db[_0xc57e('0x84')][_0xc57e('0x85')][_0xc57e('0x86')],'raw':!![]};var _0x5ec427=_0x9d67a3[_0xc57e('0x87')]();_0x5ec427['field'](_0xc57e('0x83'));_0x5ec427[_0xc57e('0x44')](_0xc57e('0x88'),_0xc57e('0x5c'));if(_0x19f7f5[_0xc57e('0x89')]){_0x19f7f5['order'][_0xc57e('0x2f')](function(_0xab32ad){var _0x35b034=_0xab32ad[0x0]===_0xc57e('0x8a')?_0xab32ad[0x0]:'i.'+_0xab32ad[0x0];_0x9d67a3[_0xc57e('0x89')](_0x35b034,_0xab32ad[0x1]==='DESC'?![]:!![]);});}if(!_[_0xc57e('0x71')](_0x1b50ac)){_0x9d67a3[_0xc57e('0x5e')](_0x55bf11);_0x5ec427[_0xc57e('0x40')]('t.id\x20IN\x20?',_0x1b50ac);}BPromise[_0xc57e('0x8b')]()['then'](function(){if(!_0x3ae69e){if(_0xaf5628[_0xc57e('0x38')][_0xc57e('0x72')])return;_0x5ec427['where'](_0xc57e('0x8c'));_0x9d67a3['where']('i.FaxAccountId\x20IS\x20NOT\x20NULL');return;}if(_0xaf5628[_0xc57e('0x8d')]['role']!==_0xc57e('0x8e'))return;return _0xaf5628['user'][_0xc57e('0x8f')]({'attributes':['id'],'raw':!![]})[_0xc57e('0x26')](function(_0x398f9b){if(_['isEmpty'](_0x398f9b)){_0x5ec427[_0xc57e('0x40')](_0xc57e('0x90'));_0x9d67a3['where'](_0xc57e('0x90'));}else{_0x5ec427['where'](_0xc57e('0x91'),_[_0xc57e('0x2a')](_0x398f9b,'id'));_0x9d67a3[_0xc57e('0x40')]('i.FaxAccountId\x20IN\x20?',_[_0xc57e('0x2a')](_0x398f9b,'id'));}});})[_0xc57e('0x26')](function(){if(_0xaf5628['user'][_0xc57e('0x92')]===_0xc57e('0x8e')&&!_0x3ae69e&&!_0xaf5628['query']['FaxAccountId'])return[];return db[_0xc57e('0x93')]['query'](_0x5ec427[_0xc57e('0x94')](),_0x2308e8);})[_0xc57e('0x26')](function(_0x563a2b){_0x5976b9[_0xc57e('0x20')]=_0x563a2b[_0xc57e('0x3d')];if(_0x5976b9['count']===0x0)return[];return db[_0xc57e('0x93')][_0xc57e('0x38')](_0x97f061['toString'](),_0x2308e8)[_0xc57e('0x26')](function(_0x13d94e){_0x5b0b6f=_['keyBy'](_0x13d94e,'id');_0x2308e8=_[_0xc57e('0x95')](_0x2308e8,{'model':db[_0xc57e('0x32')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xaf5628['query'][_0xc57e('0x3c')]){_0x19f7f5[_0xc57e('0x3b')][_0xc57e('0x2f')](function(_0xc4e208){_0x9d67a3[_0xc57e('0x44')]('i.'+_0xc4e208);});}else{_0x9d67a3[_0xc57e('0x44')](_0xc57e('0x88'),_0xc57e('0x5c'));_0x9d67a3[_0xc57e('0x44')]('a.key','Account.key');_0x9d67a3[_0xc57e('0x44')](_0xc57e('0x96'),_0xc57e('0x97'));_0x9d67a3[_0xc57e('0x44')](_0xc57e('0x98'),_0xc57e('0x8a'));_0x9d67a3[_0xc57e('0x44')](_0xc57e('0x99'));_0x9d67a3[_0xc57e('0x44')]('c.firstName','Contact.firstName');_0x9d67a3[_0xc57e('0x44')]('c.lastName','Contact.lastName');_0x9d67a3[_0xc57e('0x44')](_0xc57e('0x9a'),_0xc57e('0x9b'));_0x9d67a3['field']('c.phone',_0xc57e('0x9c'));_0x9d67a3[_0xc57e('0x44')](_0xc57e('0x9d'),_0xc57e('0x9e'));_0x9d67a3[_0xc57e('0x44')]('c.fax',_0xc57e('0x9f'));_0x9d67a3[_0xc57e('0x44')](_0xc57e('0xa0'),_0xc57e('0xa1'));_0x9d67a3[_0xc57e('0x44')](_0xc57e('0xa2'),'Owner.internal');_0x9d67a3[_0xc57e('0x44')]('GROUP_CONCAT(DISTINCT\x20t.id)','TagIds');}if(_0x19f7f5['limit'])_0x9d67a3[_0xc57e('0x1f')](_0x19f7f5['limit']);if(_0x19f7f5['offset'])_0x9d67a3[_0xc57e('0x1d')](_0x19f7f5[_0xc57e('0x1d')]);return db['sequelize'][_0xc57e('0x38')](_0x9d67a3[_0xc57e('0x94')](),_0x2308e8);})[_0xc57e('0x26')](function(_0x4ea626){if(_0x4ea626[_0xc57e('0x3d')]>0x0)_0x44413b[_0xc57e('0x40')](_0xc57e('0xa3'),_[_0xc57e('0x2a')](_0x4ea626,'id'));return db['sequelize'][_0xc57e('0x38')](_0x44413b['toString'](),_0x2308e8)[_0xc57e('0x26')](function(_0x1b9113){var _0x37d9c1=_[_0xc57e('0xa4')](_0x1b9113,_0xc57e('0xa5'));var _0x5d222a=[];_0x4ea626[_0xc57e('0x2f')](function(_0x4dc1d0){_0x5d222a['push'](updateFaxInteraction(_0x4dc1d0,_0x5b0b6f,_0x37d9c1));});return BPromise[_0xc57e('0xa6')](_0x5d222a);});});})['then'](function(_0x44f7fc){_0x5976b9[_0xc57e('0xa7')]=_0x44f7fc;return _0x5976b9;})[_0xc57e('0x26')](respondWithFilteredResult(_0x28b20a,_0x19f7f5))[_0xc57e('0x30')](handleError(_0x28b20a,null));};exports['show']=function(_0x18585b,_0x379075){var _0x16fec2={'raw':![],'where':{'id':_0x18585b[_0xc57e('0xa8')]['id']}},_0x2b260a={};_0x2b260a['model']=_['keys'](db['FaxInteraction'][_0xc57e('0x33')]);_0x2b260a['query']=_[_0xc57e('0x39')](_0x18585b[_0xc57e('0x38')]);_0x2b260a[_0xc57e('0x41')]=_[_0xc57e('0x3a')](_0x2b260a[_0xc57e('0x37')],_0x2b260a['query']);_0x16fec2['attributes']=_[_0xc57e('0x3a')](_0x2b260a[_0xc57e('0x37')],qs[_0xc57e('0x3c')](_0x18585b[_0xc57e('0x38')]['fields']));_0x16fec2[_0xc57e('0x3b')]=_0x16fec2['attributes'][_0xc57e('0x3d')]?_0x16fec2['attributes']:_0x2b260a['model'];if(_0x18585b['query'][_0xc57e('0xa9')]){_0x16fec2[_0xc57e('0xaa')]=[{'all':!![]}];}_0x16fec2=_[_0xc57e('0x95')]({},_0x16fec2,_0x18585b['options']);return db[_0xc57e('0x32')]['find'](_0x16fec2)['then'](handleEntityNotFound(_0x379075,null))[_0xc57e('0x26')](respondWithResult(_0x379075,null))[_0xc57e('0x30')](handleError(_0x379075,null));};exports['create']=function(_0x577ee7,_0x4d171d){return db['FaxInteraction'][_0xc57e('0xab')](_0x577ee7[_0xc57e('0x6e')],{})[_0xc57e('0x26')](respondWithResult(_0x4d171d,0xc9))['catch'](handleError(_0x4d171d,null));};exports[_0xc57e('0x25')]=function(_0x46c7d8,_0x1e3ec6){if(_0x46c7d8[_0xc57e('0x6e')]['id']){delete _0x46c7d8['body']['id'];}return db['FaxInteraction'][_0xc57e('0x5b')]({'where':{'id':_0x46c7d8[_0xc57e('0xa8')]['id']}})['then'](handleEntityNotFound(_0x1e3ec6,null))[_0xc57e('0x26')](saveUpdates(_0x46c7d8[_0xc57e('0x6e')],null))['then'](respondWithResult(_0x1e3ec6,null))[_0xc57e('0x30')](handleError(_0x1e3ec6,null));};exports[_0xc57e('0xac')]=function(_0x2af6f9,_0x154ea1){return db[_0xc57e('0x32')]['find']({'where':{'id':_0x2af6f9[_0xc57e('0xa8')]['id']}})['then'](handleEntityNotFound(_0x154ea1,null))['then'](removeEntity(_0x154ea1,null))[_0xc57e('0x30')](handleError(_0x154ea1,null));};exports['describe']=function(_0x1afc9e,_0x31e2d0){return db[_0xc57e('0x32')][_0xc57e('0xad')]()[_0xc57e('0x26')](respondWithResult(_0x31e2d0,null))['catch'](handleError(_0x31e2d0,null));};exports['addMessage']=function(_0x488dd9,_0x1bc41f,_0x3222db){return db[_0xc57e('0xae')][_0xc57e('0x5b')]({'where':{'id':_0x488dd9[_0xc57e('0xa8')]['id']}})[_0xc57e('0x26')](handleEntityNotFound(_0x1bc41f,null))[_0xc57e('0x26')](function(_0x3644ab){if(_0x3644ab){return _0x3644ab[_0xc57e('0xaf')](_0x488dd9['body']['ids'],_[_0xc57e('0xb0')](_0x488dd9[_0xc57e('0x6e')],[_0xc57e('0xb1'),'id'])||{});}})[_0xc57e('0x26')](respondWithResult(_0x1bc41f,null))[_0xc57e('0x30')](handleError(_0x1bc41f,null));};exports['getMessages']=function(_0x416dd9,_0xab434b,_0x141f91){var _0x2bb22b={'raw':![],'where':{}};var _0x3771b3={};var _0x519f8f={'count':0x0,'rows':[]};return db[_0xc57e('0x32')]['findOne']({'where':{'id':_0x416dd9['params']['id']}})[_0xc57e('0x26')](handleEntityNotFound(_0xab434b,null))[_0xc57e('0x26')](function(_0x55921c){if(_0x55921c){_0x3771b3[_0xc57e('0x37')]=_['keys'](db['FaxMessage']['rawAttributes']);_0x3771b3[_0xc57e('0x38')]=_['keys'](_0x416dd9['query']);_0x3771b3[_0xc57e('0x41')]=_['intersection'](_0x3771b3[_0xc57e('0x37')],_0x3771b3[_0xc57e('0x38')]);_0x2bb22b['attributes']=_['intersection'](_0x3771b3[_0xc57e('0x37')],qs['fields'](_0x416dd9[_0xc57e('0x38')][_0xc57e('0x3c')]));_0x2bb22b[_0xc57e('0x3b')]=_0x2bb22b[_0xc57e('0x3b')]['length']?_0x2bb22b['attributes']:_0x3771b3[_0xc57e('0x37')];if(!_0x416dd9[_0xc57e('0x38')][_0xc57e('0x3e')](_0xc57e('0xb2'))){_0x2bb22b['limit']=qs[_0xc57e('0x1f')](_0x416dd9[_0xc57e('0x38')][_0xc57e('0x1f')]);_0x2bb22b[_0xc57e('0x1d')]=qs['offset'](_0x416dd9[_0xc57e('0x38')][_0xc57e('0x1d')]);}_0x2bb22b[_0xc57e('0x89')]=qs[_0xc57e('0x3f')](_0x416dd9[_0xc57e('0x38')][_0xc57e('0x3f')]);_0x2bb22b[_0xc57e('0x40')]=qs[_0xc57e('0x41')](_[_0xc57e('0x42')](_0x416dd9['query'],_0x3771b3['filters']));_0x2bb22b['where'][_0xc57e('0xa5')]=_0x55921c['id'];if(_0x416dd9[_0xc57e('0x38')][_0xc57e('0x7e')]){_0x2bb22b[_0xc57e('0x40')]=_['merge'](_0x2bb22b[_0xc57e('0x40')],{'$or':_[_0xc57e('0x2a')](_0x2bb22b[_0xc57e('0x3b')],function(_0x53097f){var _0x2b2309={};_0x2b2309[_0x53097f]={'$like':'%'+_0x416dd9['query'][_0xc57e('0x7e')]+'%'};return _0x2b2309;})});}if(_0x416dd9[_0xc57e('0x38')]['$gte']){var _0x3b52ef=_0x416dd9[_0xc57e('0x38')][_0xc57e('0x75')]['split'](',');var _0x2b0876={};_0x2b0876[_0x3b52ef[0x0]]={'$gte':moment(_0x3b52ef[0x1])[_0xc57e('0xb3')]('YYYY-MM-DD\x20HH:mm:ss')};_0x2bb22b[_0xc57e('0x40')]=_[_0xc57e('0x95')](_0x2bb22b[_0xc57e('0x40')],_0x2b0876);}_0x2bb22b=_[_0xc57e('0x95')]({},_0x2bb22b,_0x416dd9[_0xc57e('0xb4')]);return db[_0xc57e('0xae')][_0xc57e('0x20')]({'where':_0x2bb22b[_0xc57e('0x40')]})[_0xc57e('0x26')](function(_0x57618f){_0x519f8f[_0xc57e('0x20')]=_0x57618f;if(_0x416dd9['query'][_0xc57e('0xa9')]){_0x2bb22b[_0xc57e('0xaa')]=[{'all':!![]}];}return db[_0xc57e('0xae')][_0xc57e('0xb5')](_0x2bb22b);})[_0xc57e('0x26')](function(_0x2133ab){_0x519f8f[_0xc57e('0xa7')]=_0x2133ab;return _0x519f8f;});}})[_0xc57e('0x26')](respondWithFilteredResult(_0xab434b,_0x2bb22b))[_0xc57e('0x30')](handleError(_0xab434b,null));};exports[_0xc57e('0xb6')]=function(_0x441902,_0x559bb9,_0xaf2f06){return db['FaxInteraction'][_0xc57e('0x5b')]({'where':{'id':_0x441902['params']['id']}})[_0xc57e('0x26')](handleEntityNotFound(_0x559bb9,null))[_0xc57e('0x26')](function(_0xb62d51){if(_0xb62d51){return _0xb62d51['setTags'](_0x441902[_0xc57e('0x6e')][_0xc57e('0xb1')],_['omit'](_0x441902['body'],['ids','id'])||{})[_0xc57e('0xb7')](function(){return db[_0xc57e('0x68')][_0xc57e('0xb5')]({'attributes':['id','name',_0xc57e('0x45')],'where':{'id':_0x441902[_0xc57e('0x6e')][_0xc57e('0xb1')]}});})[_0xc57e('0x26')](function(_0x217e58){socket[_0xc57e('0xb8')](_0xc57e('0xb9'),{'id':Number(_0x441902[_0xc57e('0xa8')]['id']),'tags':_0x217e58||[]});return{'id':Number(_0x441902[_0xc57e('0xa8')]['id']),'tags':_0x217e58||[]};});}})[_0xc57e('0x26')](respondWithResult(_0x559bb9,null))[_0xc57e('0x30')](handleError(_0x559bb9,null));};exports['removeTags']=function(_0x3bde4d,_0x3f1595,_0x165af2){return db[_0xc57e('0x32')]['find']({'where':{'id':_0x3bde4d[_0xc57e('0xa8')]['id']}})[_0xc57e('0x26')](handleEntityNotFound(_0x3f1595,null))[_0xc57e('0x26')](function(_0x3f1f91){if(_0x3f1f91){return _0x3f1f91[_0xc57e('0xba')](_0x3bde4d['query']['ids']);}})[_0xc57e('0x26')](respondWithStatusCode(_0x3f1595,null))['catch'](handleError(_0x3f1595,null));};exports[_0xc57e('0xbb')]=function(_0x2c4050,_0x46875a){var _0x3ce2bf=moment()[_0xc57e('0xbc')]()[_0xc57e('0x94')]();var _0x411a44=path['join'](config[_0xc57e('0xbd')],_0xc57e('0xbe'),_0xc57e('0xbf'),_0xc57e('0xc0'));var _0x429a81=path['join'](config[_0xc57e('0xbd')],_0xc57e('0xbe'),_0xc57e('0xbf'),_0xc57e('0xc1'));var _0x4caf53=path[_0xc57e('0xc2')](_0x411a44,_0x3ce2bf);var _0x36845b=util[_0xc57e('0xb3')]('transcript-%d-%s.zip',_0x2c4050[_0xc57e('0xa8')]['id'],_0x3ce2bf);var _0x9a9afd=path[_0xc57e('0xc2')](_0x411a44,_0x36845b);var _0x33a738=[];_0x33a738[_0xc57e('0xc3')]({'model':db[_0xc57e('0xc4')],'as':_0xc57e('0xc4'),'raw':!![]});var _0x4fd32f=[{'model':db['FaxMessage'],'as':_0xc57e('0xc5'),'attributes':['id',_0xc57e('0x6e'),_0xc57e('0xc6')],'include':_0x33a738}];return db['FaxInteraction']['find']({'where':{'id':_0x2c4050[_0xc57e('0xa8')]['id']},'include':_0x4fd32f})[_0xc57e('0x26')](handleEntityNotFound(_0x46875a,null))[_0xc57e('0x26')](function(_0x4999ee){if(_0x4999ee&&_0x4999ee[_0xc57e('0xc5')]){var _0x2d26fb=_0x4999ee[_0xc57e('0xc7')]({'plain':!![]});fs['mkdirSync'](_0x4caf53);for(var _0x17736a=0x0;_0x17736a<_0x2d26fb[_0xc57e('0xc5')][_0xc57e('0x3d')];_0x17736a++){var _0x1e6bb5=_0x2d26fb[_0xc57e('0xc5')][_0x17736a][_0xc57e('0xc4')];if(_0x1e6bb5){var _0x3680ee=path[_0xc57e('0xc2')](_0x429a81,_0x1e6bb5[_0xc57e('0xc8')]);if(fs[_0xc57e('0xc9')](_0x3680ee)){fs[_0xc57e('0xca')](_0x3680ee)[_0xc57e('0xcb')](fs[_0xc57e('0xcc')](path[_0xc57e('0xc2')](_0x4caf53,_0x1e6bb5[_0xc57e('0xc8')])));}}}return BPromise['resolve']()[_0xc57e('0x26')](function(){return new BPromise(function(_0x5ab2be,_0x1b36eb){zipdir(_0x4caf53,{'saveTo':_0x9a9afd},function(_0xa784c3,_0x76d955){if(_0xa784c3)return _0x1b36eb(_0xa784c3);return _0x5ab2be(_0x76d955);});})[_0xc57e('0x26')](function(){return new BPromise(function(_0x3db00e,_0x28d7d8){rimraf(_0x4caf53,function(_0x37d6c3){if(_0x37d6c3)_0x28d7d8(_0x37d6c3);return _0x3db00e();});});})[_0xc57e('0x26')](function(){return _0x46875a[_0xc57e('0xbb')](_0x9a9afd,_0x36845b,function(_0x3ee1d0){if(_0x3ee1d0){console[_0xc57e('0xcd')](_0xc57e('0xce'),_0x3ee1d0);}else{fs[_0xc57e('0xcf')](_0x9a9afd);}});});});}else{return _0x46875a['sendStatus'](0xc8);}})[_0xc57e('0x30')](handleError(_0x46875a,null));};
\ No newline at end of file
+var _0x24b8=['set','Content-Range','json','apply','save','update','error','stack','name','send','TagIds','split','forEach','push','then','index','map','FaxInteraction','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','filters','pick','field','from','tools_tags','select','ui.FaxInteractionId','user_has_fax_interactions','left_join','users','fax_interactions','cm_contacts','o.id\x20=\x20i.UserId','fax_accounts','a.id\x20=\x20i.FaxAccountId','fax_messages','me.FaxInteractionId\x20=\x20i.id','fax_interaction_has_tags','it.FaxInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','value','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','ContactId','Tag','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','text','start','where','i.FaxAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','replace','i.id\x20LIKE\x20?','i.fax\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','isEmpty','resolve','FaxAccountId','i.FaxAccountId\x20IS\x20NOT\x20NULL','role','agent','user','getFaxAccounts','i.FaxAccountId\x20IS\x20NULL','sequelize','toString','count','keyBy','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','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','Contact.phone','Contact.mobile','c.fax','Contact.fax','Owner.fullname','o.internal','Owner.internal','ui.FaxInteractionId\x20IN\x20?','FaxInteractionId','all','show','params','includeAll','include','options','catch','create','body','destroy','describe','FaxMessage','addMessage','ids','omit','getMessages','findOne','filter','format','YYYY-MM-DD\x20HH:mm:ss','findAll','rows','addTags','setTags','faxInteractionTags:save','removeTags','download','unix','join','root','server','attachments','transcript-%d-%s.zip','Attachment','Messages','get','mkdirSync','basename','existsSync','createReadStream','log','err','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','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','./faxInteraction.socket','register','sendStatus','status','end','offset','undefined'];(function(_0x317c38,_0x9d154d){var _0x304c05=function(_0x27a100){while(--_0x27a100){_0x317c38['push'](_0x317c38['shift']());}};_0x304c05(++_0x9d154d);}(_0x24b8,0xb2));var _0x824b=function(_0x17a752,_0x820c0){_0x17a752=_0x17a752-0x0;var _0x2aa4a0=_0x24b8[_0x17a752];return _0x2aa4a0;};'use strict';var emlformat=require(_0x824b('0x0'));var rimraf=require(_0x824b('0x1'));var zipdir=require(_0x824b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x824b('0x3'));var moment=require(_0x824b('0x4'));var BPromise=require(_0x824b('0x5'));var Mustache=require(_0x824b('0x6'));var util=require('util');var path=require('path');var sox=require(_0x824b('0x7'));var csv=require(_0x824b('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x824b('0x9'));var _=require(_0x824b('0xa'));var squel=require(_0x824b('0xb'));var crypto=require(_0x824b('0xc'));var jsforce=require(_0x824b('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x824b('0x8'));var querystring=require(_0x824b('0xe'));var Papa=require(_0x824b('0xf'));var Redis=require(_0x824b('0x10'));var authService=require(_0x824b('0x11'));var qs=require(_0x824b('0x12'));var as=require(_0x824b('0x13'));var hardwareService=require(_0x824b('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x824b('0x15'));var config=require(_0x824b('0x16'));var licenseUtil=require(_0x824b('0x17'));var db=require(_0x824b('0x18'))['db'];config[_0x824b('0x19')]=_[_0x824b('0x1a')](config[_0x824b('0x19')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x824b('0x19')]));require(_0x824b('0x1b'))[_0x824b('0x1c')](socket);function respondWithStatusCode(_0x52c74a,_0x17e7b0){_0x17e7b0=_0x17e7b0||0xcc;return function(_0x536071){if(_0x536071){return _0x52c74a[_0x824b('0x1d')](_0x17e7b0);}return _0x52c74a[_0x824b('0x1e')](_0x17e7b0)[_0x824b('0x1f')]();};}function respondWithResult(_0x16323a,_0x31b944){_0x31b944=_0x31b944||0xc8;return function(_0x31df76){if(_0x31df76){return _0x16323a[_0x824b('0x1e')](_0x31b944)['json'](_0x31df76);}};}function respondWithFilteredResult(_0x28f2fe,_0x325704){return function(_0x4442ed){if(_0x4442ed){var _0x2e891c=typeof _0x325704[_0x824b('0x20')]===_0x824b('0x21')&&typeof _0x325704['limit']===_0x824b('0x21');var _0x303cee=_0x4442ed['count'];var _0x44740b=_0x2e891c?0x0:_0x325704[_0x824b('0x20')];var _0x8fcd4b=_0x2e891c?_0x4442ed['count']:_0x325704[_0x824b('0x20')]+_0x325704['limit'];var _0xe80504;if(_0x8fcd4b>=_0x303cee){_0x8fcd4b=_0x303cee;_0xe80504=0xc8;}else{_0xe80504=0xce;}_0x28f2fe['status'](_0xe80504);return _0x28f2fe[_0x824b('0x22')](_0x824b('0x23'),_0x44740b+'-'+_0x8fcd4b+'/'+_0x303cee)[_0x824b('0x24')](_0x4442ed);}return null;};}function patchUpdates(_0x373a39){return function(_0x474e3a){try{jsonpatch[_0x824b('0x25')](_0x474e3a,_0x373a39,!![]);}catch(_0x14af69){return BPromise['reject'](_0x14af69);}return _0x474e3a[_0x824b('0x26')]();};}function saveUpdates(_0x2a1431,_0x5ca1b3){return function(_0x472deb){if(_0x472deb){return _0x472deb[_0x824b('0x27')](_0x2a1431)['then'](function(_0x57b28e){return _0x57b28e;});}return null;};}function removeEntity(_0x4b99a0,_0x3855ca){return function(_0x4161f4){if(_0x4161f4){return _0x4161f4['destroy']()['then'](function(){_0x4b99a0['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5c0dc8,_0x5b34ec){return function(_0x3f97ef){if(!_0x3f97ef){_0x5c0dc8['sendStatus'](0x194);}return _0x3f97ef;};}function handleError(_0x271622,_0x3ed49d){_0x3ed49d=_0x3ed49d||0x1f4;return function(_0xb9f565){logger[_0x824b('0x28')](_0xb9f565[_0x824b('0x29')]);if(_0xb9f565[_0x824b('0x2a')]){delete _0xb9f565['name'];}_0x271622[_0x824b('0x1e')](_0x3ed49d)[_0x824b('0x2b')](_0xb9f565);};}function getInteractionUsers(_0x1e1525,_0x2dfbea){return new BPromise(function(_0x5bc5bf,_0x5e4bbd){try{if(_0x2dfbea[_0x1e1525['id']]){_0x1e1525['Users']=_['map'](_0x2dfbea[_0x1e1525['id']],function(_0x9bec48){return{'id':_0x9bec48['id'],'fullname':_0x9bec48['fullname']};});}}catch(_0x4908a2){_0x5e4bbd(_0x4908a2);}_0x5bc5bf(_0x1e1525);});}function getInteractionTags(_0x51f8d3,_0x24e309){return new BPromise(function(_0x53fd28,_0x26470c){try{if(_0x51f8d3[_0x824b('0x2c')]){_0x51f8d3['Tags']=[];_0x51f8d3[_0x824b('0x2c')][_0x824b('0x2d')](',')[_0x824b('0x2e')](function(_0x1a9c36){_0x51f8d3['Tags'][_0x824b('0x2f')](_0x24e309[_0x1a9c36]);});}delete _0x51f8d3['TagIds'];}catch(_0x2a79bd){_0x26470c(_0x2a79bd);}_0x53fd28(_0x51f8d3);});}function updateFaxInteraction(_0x18b48d,_0x4888d4,_0x46bd55){return new BPromise(function(_0x4dcd03,_0x46c885){return getInteractionUsers(_0x18b48d,_0x46bd55)['then'](function(_0x41eae2){return getInteractionTags(_0x41eae2,_0x4888d4);})[_0x824b('0x30')](function(_0x3f8ae5){_0x4dcd03(_0x3f8ae5);})['catch'](function(_0x3b5b7a){_0x46c885(_0x3b5b7a);});});}exports[_0x824b('0x31')]=function(_0x5d498d,_0x23ceb6){var _0x37fda5={},_0x5c6f8c={},_0x27a979={'count':0x0,'rows':[]};var _0x119766=_[_0x824b('0x32')](db[_0x824b('0x33')][_0x824b('0x34')],function(_0x5f0abd){return{'name':_0x5f0abd['fieldName'],'type':_0x5f0abd[_0x824b('0x35')][_0x824b('0x36')]};});_0x5c6f8c[_0x824b('0x37')]=_[_0x824b('0x32')](_0x119766,'name');_0x5c6f8c[_0x824b('0x38')]=_[_0x824b('0x39')](_0x5d498d[_0x824b('0x38')]);_0x5c6f8c['filters']=_[_0x824b('0x3a')](_0x5c6f8c[_0x824b('0x37')],_0x5c6f8c[_0x824b('0x38')]);_0x37fda5[_0x824b('0x3b')]=_[_0x824b('0x3a')](_0x5c6f8c['model'],qs[_0x824b('0x3c')](_0x5d498d[_0x824b('0x38')][_0x824b('0x3c')]));_0x37fda5[_0x824b('0x3b')]=_0x37fda5[_0x824b('0x3b')][_0x824b('0x3d')]?_0x37fda5['attributes']:_0x5c6f8c[_0x824b('0x37')];if(!_0x5d498d[_0x824b('0x38')][_0x824b('0x3e')](_0x824b('0x3f'))){_0x37fda5[_0x824b('0x40')]=qs[_0x824b('0x40')](_0x5d498d[_0x824b('0x38')]['limit']);_0x37fda5[_0x824b('0x20')]=qs[_0x824b('0x20')](_0x5d498d[_0x824b('0x38')][_0x824b('0x20')]);}_0x37fda5[_0x824b('0x41')]=qs[_0x824b('0x42')](_0x5d498d[_0x824b('0x38')][_0x824b('0x42')]);_0x37fda5['where']=qs[_0x824b('0x43')](_[_0x824b('0x44')](_0x5d498d['query'],_0x5c6f8c[_0x824b('0x43')]),_0x119766);var _0x55faa4=[];var _0x58d2a5=squel['select']()[_0x824b('0x45')]('id')[_0x824b('0x45')](_0x824b('0x2a'))[_0x824b('0x45')]('color')[_0x824b('0x46')](_0x824b('0x47'));var _0x2df492=squel[_0x824b('0x48')]()['field']('u.id')['field']('u.fullname')[_0x824b('0x45')](_0x824b('0x49'))['from'](_0x824b('0x4a'),'ui')[_0x824b('0x4b')](_0x824b('0x4c'),'u','u.id\x20=\x20ui.UserId');var _0x7d6e8=squel[_0x824b('0x48')]()['from'](_0x824b('0x4d'),'i')[_0x824b('0x4b')](_0x824b('0x4e'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x824b('0x4b')]('users','o',_0x824b('0x4f'))[_0x824b('0x4b')](_0x824b('0x50'),'a',_0x824b('0x51'))[_0x824b('0x4b')](_0x824b('0x52'),'me',_0x824b('0x53'))['left_join'](_0x824b('0x54'),'it',_0x824b('0x55'))[_0x824b('0x4b')]('tools_tags','t',_0x824b('0x56'));var _0x505763=squel['expr']();var _0x2bf720=[];var _0x3d64fd=squel[_0x824b('0x57')]();var _0x14d296;if(_0x5d498d['query'][_0x824b('0x58')]){_0x14d296=as[_0x824b('0x59')](_0x5d498d['query'][_0x824b('0x58')]);var _0x5d9f2d=_0x14d296[_0x824b('0x5a')];for(var _0x3390b7=0x0;_0x3390b7<_0x14d296[_0x824b('0x5b')][_0x824b('0x3d')];_0x3390b7++){var _0x42a7a0=_0x14d296['conditions'][_0x3390b7];var _0x40c004='i';var _0xbd5b5c=_[_0x824b('0x5c')](_0x119766,[_0x824b('0x2a'),_0x42a7a0[_0x824b('0x45')]]);if(!_0xbd5b5c){switch(_0x42a7a0['field']){case _0x824b('0x5d'):if(_0x42a7a0['value']==0x1){_0x7d6e8[_0x824b('0x5e')]('`'+_0x42a7a0[_0x824b('0x45')]+_0x824b('0x5f'));}else{_0x7d6e8[_0x824b('0x5e')]('`'+_0x42a7a0['field']+_0x824b('0x60'));}break;case _0x824b('0x61'):if(_0x42a7a0[_0x824b('0x62')]===_0x824b('0x63')){if(_0x42a7a0[_0x824b('0x64')][_0x824b('0x2d')]('\x20')['length']>0x1){_0x505763[_0x5d9f2d](_0x824b('0x65'),qs['getFullTextValue'](_0x42a7a0[_0x824b('0x64')]),null);}else{var _0x1b3be8='%'+_0x42a7a0['value']+'%';_0x505763[_0x5d9f2d]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x1b3be8,_0x1b3be8,_0x1b3be8);}}else{_0xbd5b5c=_['find'](_0x119766,['name',_0x824b('0x66')]);_0x42a7a0[_0x824b('0x45')]=_0x824b('0x66');_0x476345=as['buildExpression'](_0x40c004,_0xbd5b5c[_0x824b('0x35')],_0x42a7a0);_0x505763[_0x5d9f2d](_0x476345['text'],_0x476345[_0x824b('0x64')]['start'],_0x476345[_0x824b('0x64')][_0x824b('0x1f')]);}break;case _0x824b('0x67'):var _0x2f9052=_0x42a7a0[_0x824b('0x64')][_0x824b('0x2d')](',')[_0x824b('0x32')](function(_0x2d3cb4){return Number(_0x2d3cb4);});_0x2f9052[_0x824b('0x2e')](function(_0x5b2612){_0x3d64fd['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x5b2612+',%');});_0x2bf720=_[_0x824b('0x68')](_0x2bf720,_0x2f9052);break;case _0x824b('0x69'):if(_0x42a7a0['operator']===_0x824b('0x63')){_0x505763[_0x5d9f2d](_0x824b('0x6a'),'%'+_0x42a7a0[_0x824b('0x64')]+'%',null);}else{_0xbd5b5c=_[_0x824b('0x5c')](_0x119766,[_0x824b('0x2a'),_0x824b('0x6b')]);_0x42a7a0['field']='UserId';_0x476345=as[_0x824b('0x6c')](_0x40c004,_0xbd5b5c[_0x824b('0x35')],_0x42a7a0);_0x505763[_0x5d9f2d](_0x476345[_0x824b('0x6d')],_0x476345[_0x824b('0x64')]['start'],_0x476345['value'][_0x824b('0x1f')]);}break;case'body':_0x476345=as[_0x824b('0x6c')]('me',null,_0x42a7a0);_0x505763[_0x5d9f2d](_0x476345['text'],_0x476345[_0x824b('0x64')]['start'],_0x476345[_0x824b('0x64')][_0x824b('0x1f')]);break;}}else{var _0x476345=as[_0x824b('0x6c')](_0x40c004,_0xbd5b5c['type'],_0x42a7a0);_0x505763[_0x5d9f2d](_0x476345[_0x824b('0x6d')],_0x476345['value'][_0x824b('0x6e')],_0x476345[_0x824b('0x64')][_0x824b('0x1f')]);}}}else{var _0x3314b4=_(_0x5d498d[_0x824b('0x38')])[_0x824b('0x39')]()[_0x824b('0x32')](function(_0x4d2def){return _['some'](_0x119766,[_0x824b('0x2a'),_0x4d2def])?_0x4d2def:undefined;})['compact']()[_0x824b('0x64')]();if(!_['isEmpty'](_0x3314b4)){_0x3314b4[_0x824b('0x2e')](function(_0x2ad5ac){if(_0x2ad5ac==='FaxAccountId'){_0x7d6e8[_0x824b('0x6f')](_0x824b('0x70'),[][_0x824b('0x71')](_0x5d498d[_0x824b('0x38')][_0x2ad5ac]));}else if(_0x2ad5ac===_0x824b('0x72')){var _0x35da9a=JSON[_0x824b('0x73')](_0x5d498d['query'][_0x2ad5ac])[_0x824b('0x74')];var _0x332b10=JSON[_0x824b('0x73')](_0x5d498d[_0x824b('0x38')][_0x2ad5ac])[_0x824b('0x75')];_0x7d6e8[_0x824b('0x6f')](_0x824b('0x76'),_0x35da9a,_0x332b10);}else{if(_0x5d498d[_0x824b('0x38')][_0x2ad5ac]==='null'){_0x7d6e8[_0x824b('0x6f')]('i.'+_0x2ad5ac+_0x824b('0x77'));}else{_0x7d6e8[_0x824b('0x6f')]('i.'+_0x2ad5ac+_0x824b('0x78'),_0x5d498d[_0x824b('0x38')][_0x2ad5ac]);}}});}if(_0x5d498d[_0x824b('0x38')][_0x824b('0x79')]){if(_0x5d498d[_0x824b('0x38')][_0x824b('0x79')]==0x1){_0x7d6e8[_0x824b('0x5e')](_0x824b('0x7a'));}else{_0x7d6e8[_0x824b('0x5e')](_0x824b('0x7b'));}}if(_0x5d498d[_0x824b('0x38')][_0x824b('0x7c')]){_0x2bf720=_[_0x824b('0x7d')](_0x5d498d[_0x824b('0x38')][_0x824b('0x7c')])?_0x5d498d[_0x824b('0x38')][_0x824b('0x7c')]:new Array(_0x5d498d[_0x824b('0x38')][_0x824b('0x7c')]);_0x2bf720[_0x824b('0x2e')](function(_0x26b6cc){_0x3d64fd['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x26b6cc+',%');});}if(_0x5d498d[_0x824b('0x38')]['filter']){var _0x344b87=_0x5d498d['query']['filter'][_0x824b('0x7e')]('\x5c','\x5c\x5c')[_0x824b('0x7e')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x344b87)){_0x505763['or'](_0x824b('0x7f'),_0x344b87+'%')['or'](_0x824b('0x80'),_0x344b87+'%');}_0x505763['or'](_0x824b('0x81'),_0x344b87+'%');}}_0x7d6e8[_0x824b('0x6f')](_0x505763);_0x7d6e8[_0x824b('0x82')](_0x824b('0x83'));var _0x185074={'type':db[_0x824b('0x84')][_0x824b('0x85')]['SELECT'],'raw':!![]};var _0x2ce1ad=_0x7d6e8['clone']();_0x2ce1ad[_0x824b('0x45')](_0x824b('0x83'));_0x2ce1ad[_0x824b('0x45')](_0x824b('0x86'),_0x824b('0x5d'));if(_0x37fda5[_0x824b('0x41')]){_0x37fda5['order'][_0x824b('0x2e')](function(_0x2d452c){var _0x10777d=_0x2d452c[0x0]===_0x824b('0x87')?_0x2d452c[0x0]:'i.'+_0x2d452c[0x0];_0x7d6e8[_0x824b('0x41')](_0x10777d,_0x2d452c[0x1]===_0x824b('0x88')?![]:!![]);});}if(!_[_0x824b('0x89')](_0x2bf720)){_0x7d6e8['having'](_0x3d64fd);_0x2ce1ad[_0x824b('0x6f')]('t.id\x20IN\x20?',_0x2bf720);}BPromise[_0x824b('0x8a')]()[_0x824b('0x30')](function(){if(!_0x14d296){if(_0x5d498d[_0x824b('0x38')][_0x824b('0x8b')])return;_0x2ce1ad[_0x824b('0x6f')](_0x824b('0x8c'));_0x7d6e8[_0x824b('0x6f')]('i.FaxAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x5d498d['user'][_0x824b('0x8d')]!==_0x824b('0x8e'))return;return _0x5d498d[_0x824b('0x8f')][_0x824b('0x90')]({'attributes':['id'],'raw':!![]})[_0x824b('0x30')](function(_0x2dc769){if(_[_0x824b('0x89')](_0x2dc769)){_0x2ce1ad[_0x824b('0x6f')](_0x824b('0x91'));_0x7d6e8[_0x824b('0x6f')]('i.FaxAccountId\x20IS\x20NULL');}else{_0x2ce1ad['where']('i.FaxAccountId\x20IN\x20?',_[_0x824b('0x32')](_0x2dc769,'id'));_0x7d6e8[_0x824b('0x6f')]('i.FaxAccountId\x20IN\x20?',_[_0x824b('0x32')](_0x2dc769,'id'));}});})[_0x824b('0x30')](function(){if(_0x5d498d['user'][_0x824b('0x8d')]===_0x824b('0x8e')&&!_0x14d296&&!_0x5d498d[_0x824b('0x38')][_0x824b('0x8b')])return[];return db[_0x824b('0x92')][_0x824b('0x38')](_0x2ce1ad[_0x824b('0x93')](),_0x185074);})[_0x824b('0x30')](function(_0x45481e){_0x27a979[_0x824b('0x94')]=_0x45481e['length'];if(_0x27a979[_0x824b('0x94')]===0x0)return[];return db[_0x824b('0x92')]['query'](_0x58d2a5[_0x824b('0x93')](),_0x185074)['then'](function(_0x1cd72f){_0x55faa4=_[_0x824b('0x95')](_0x1cd72f,'id');_0x185074=_[_0x824b('0x96')](_0x185074,{'model':db['FaxInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5d498d['query']['fields']){_0x37fda5[_0x824b('0x3b')][_0x824b('0x2e')](function(_0x22efa5){_0x7d6e8[_0x824b('0x45')]('i.'+_0x22efa5);});}else{_0x7d6e8[_0x824b('0x45')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x824b('0x5d'));_0x7d6e8['field'](_0x824b('0x97'),_0x824b('0x98'));_0x7d6e8[_0x824b('0x45')](_0x824b('0x99'),'Account.mandatoryDisposition');_0x7d6e8['field'](_0x824b('0x9a'),_0x824b('0x87'));_0x7d6e8['field']('i.*');_0x7d6e8['field'](_0x824b('0x9b'),_0x824b('0x9c'));_0x7d6e8[_0x824b('0x45')](_0x824b('0x9d'),_0x824b('0x9e'));_0x7d6e8[_0x824b('0x45')](_0x824b('0x9f'),_0x824b('0xa0'));_0x7d6e8['field']('c.phone',_0x824b('0xa1'));_0x7d6e8[_0x824b('0x45')]('c.mobile',_0x824b('0xa2'));_0x7d6e8[_0x824b('0x45')](_0x824b('0xa3'),_0x824b('0xa4'));_0x7d6e8[_0x824b('0x45')]('o.fullname',_0x824b('0xa5'));_0x7d6e8[_0x824b('0x45')](_0x824b('0xa6'),_0x824b('0xa7'));_0x7d6e8['field']('GROUP_CONCAT(DISTINCT\x20t.id)',_0x824b('0x2c'));}if(_0x37fda5[_0x824b('0x40')])_0x7d6e8[_0x824b('0x40')](_0x37fda5['limit']);if(_0x37fda5[_0x824b('0x20')])_0x7d6e8['offset'](_0x37fda5['offset']);return db[_0x824b('0x92')][_0x824b('0x38')](_0x7d6e8[_0x824b('0x93')](),_0x185074);})[_0x824b('0x30')](function(_0x344083){if(_0x344083[_0x824b('0x3d')]>0x0)_0x2df492['where'](_0x824b('0xa8'),_[_0x824b('0x32')](_0x344083,'id'));return db[_0x824b('0x92')]['query'](_0x2df492[_0x824b('0x93')](),_0x185074)[_0x824b('0x30')](function(_0x29575b){var _0x1bbafb=_['groupBy'](_0x29575b,_0x824b('0xa9'));var _0x1ff1ec=[];_0x344083[_0x824b('0x2e')](function(_0x519e8e){_0x1ff1ec[_0x824b('0x2f')](updateFaxInteraction(_0x519e8e,_0x55faa4,_0x1bbafb));});return BPromise[_0x824b('0xaa')](_0x1ff1ec);});});})[_0x824b('0x30')](function(_0x56ab8b){_0x27a979['rows']=_0x56ab8b;return _0x27a979;})[_0x824b('0x30')](respondWithFilteredResult(_0x23ceb6,_0x37fda5))['catch'](handleError(_0x23ceb6,null));};exports[_0x824b('0xab')]=function(_0x3ad8fa,_0x1a2280){var _0x2c6613={'raw':![],'where':{'id':_0x3ad8fa[_0x824b('0xac')]['id']}},_0x4558bb={};_0x4558bb[_0x824b('0x37')]=_['keys'](db[_0x824b('0x33')][_0x824b('0x34')]);_0x4558bb['query']=_[_0x824b('0x39')](_0x3ad8fa[_0x824b('0x38')]);_0x4558bb['filters']=_[_0x824b('0x3a')](_0x4558bb[_0x824b('0x37')],_0x4558bb[_0x824b('0x38')]);_0x2c6613[_0x824b('0x3b')]=_[_0x824b('0x3a')](_0x4558bb['model'],qs[_0x824b('0x3c')](_0x3ad8fa[_0x824b('0x38')]['fields']));_0x2c6613['attributes']=_0x2c6613['attributes'][_0x824b('0x3d')]?_0x2c6613[_0x824b('0x3b')]:_0x4558bb[_0x824b('0x37')];if(_0x3ad8fa[_0x824b('0x38')][_0x824b('0xad')]){_0x2c6613[_0x824b('0xae')]=[{'all':!![]}];}_0x2c6613=_['merge']({},_0x2c6613,_0x3ad8fa[_0x824b('0xaf')]);return db[_0x824b('0x33')][_0x824b('0x5c')](_0x2c6613)['then'](handleEntityNotFound(_0x1a2280,null))[_0x824b('0x30')](respondWithResult(_0x1a2280,null))[_0x824b('0xb0')](handleError(_0x1a2280,null));};exports[_0x824b('0xb1')]=function(_0x2b2bba,_0x2b08fc){return db[_0x824b('0x33')][_0x824b('0xb1')](_0x2b2bba[_0x824b('0xb2')],{})[_0x824b('0x30')](respondWithResult(_0x2b08fc,0xc9))[_0x824b('0xb0')](handleError(_0x2b08fc,null));};exports[_0x824b('0x27')]=function(_0x4e0cf2,_0x12cbb0){if(_0x4e0cf2['body']['id']){delete _0x4e0cf2['body']['id'];}return db['FaxInteraction'][_0x824b('0x5c')]({'where':{'id':_0x4e0cf2[_0x824b('0xac')]['id']}})['then'](handleEntityNotFound(_0x12cbb0,null))[_0x824b('0x30')](saveUpdates(_0x4e0cf2['body'],null))['then'](respondWithResult(_0x12cbb0,null))[_0x824b('0xb0')](handleError(_0x12cbb0,null));};exports[_0x824b('0xb3')]=function(_0x3707fd,_0x4eecf6){return db['FaxInteraction']['find']({'where':{'id':_0x3707fd[_0x824b('0xac')]['id']}})['then'](handleEntityNotFound(_0x4eecf6,null))[_0x824b('0x30')](removeEntity(_0x4eecf6,null))[_0x824b('0xb0')](handleError(_0x4eecf6,null));};exports[_0x824b('0xb4')]=function(_0x56b46c,_0x411299){return db['FaxInteraction'][_0x824b('0xb4')]()[_0x824b('0x30')](respondWithResult(_0x411299,null))[_0x824b('0xb0')](handleError(_0x411299,null));};exports['addMessage']=function(_0x415586,_0x55549f,_0x68cbd8){return db[_0x824b('0xb5')][_0x824b('0x5c')]({'where':{'id':_0x415586[_0x824b('0xac')]['id']}})['then'](handleEntityNotFound(_0x55549f,null))[_0x824b('0x30')](function(_0x35d8c2){if(_0x35d8c2){return _0x35d8c2[_0x824b('0xb6')](_0x415586[_0x824b('0xb2')][_0x824b('0xb7')],_[_0x824b('0xb8')](_0x415586[_0x824b('0xb2')],['ids','id'])||{});}})[_0x824b('0x30')](respondWithResult(_0x55549f,null))[_0x824b('0xb0')](handleError(_0x55549f,null));};exports[_0x824b('0xb9')]=function(_0x1d6b28,_0xd020e4,_0x4aac7f){var _0x3c554e={'raw':![],'where':{}};var _0x90647={};var _0xec1ed3={'count':0x0,'rows':[]};return db[_0x824b('0x33')][_0x824b('0xba')]({'where':{'id':_0x1d6b28[_0x824b('0xac')]['id']}})[_0x824b('0x30')](handleEntityNotFound(_0xd020e4,null))['then'](function(_0x2a62b8){if(_0x2a62b8){_0x90647[_0x824b('0x37')]=_[_0x824b('0x39')](db[_0x824b('0xb5')][_0x824b('0x34')]);_0x90647['query']=_[_0x824b('0x39')](_0x1d6b28['query']);_0x90647[_0x824b('0x43')]=_[_0x824b('0x3a')](_0x90647['model'],_0x90647['query']);_0x3c554e[_0x824b('0x3b')]=_[_0x824b('0x3a')](_0x90647[_0x824b('0x37')],qs[_0x824b('0x3c')](_0x1d6b28[_0x824b('0x38')][_0x824b('0x3c')]));_0x3c554e[_0x824b('0x3b')]=_0x3c554e[_0x824b('0x3b')][_0x824b('0x3d')]?_0x3c554e[_0x824b('0x3b')]:_0x90647[_0x824b('0x37')];if(!_0x1d6b28[_0x824b('0x38')]['hasOwnProperty'](_0x824b('0x3f'))){_0x3c554e[_0x824b('0x40')]=qs['limit'](_0x1d6b28[_0x824b('0x38')]['limit']);_0x3c554e[_0x824b('0x20')]=qs[_0x824b('0x20')](_0x1d6b28['query'][_0x824b('0x20')]);}_0x3c554e[_0x824b('0x41')]=qs['sort'](_0x1d6b28[_0x824b('0x38')]['sort']);_0x3c554e[_0x824b('0x6f')]=qs[_0x824b('0x43')](_[_0x824b('0x44')](_0x1d6b28[_0x824b('0x38')],_0x90647[_0x824b('0x43')]));_0x3c554e['where'][_0x824b('0xa9')]=_0x2a62b8['id'];if(_0x1d6b28[_0x824b('0x38')][_0x824b('0xbb')]){_0x3c554e[_0x824b('0x6f')]=_[_0x824b('0x96')](_0x3c554e[_0x824b('0x6f')],{'$or':_[_0x824b('0x32')](_0x3c554e[_0x824b('0x3b')],function(_0x509027){var _0x56d3a9={};_0x56d3a9[_0x509027]={'$like':'%'+_0x1d6b28[_0x824b('0x38')][_0x824b('0xbb')]+'%'};return _0x56d3a9;})});}if(_0x1d6b28[_0x824b('0x38')][_0x824b('0x74')]){var _0x207d53=_0x1d6b28[_0x824b('0x38')][_0x824b('0x74')][_0x824b('0x2d')](',');var _0x893ee2={};_0x893ee2[_0x207d53[0x0]]={'$gte':moment(_0x207d53[0x1])[_0x824b('0xbc')](_0x824b('0xbd'))};_0x3c554e['where']=_[_0x824b('0x96')](_0x3c554e[_0x824b('0x6f')],_0x893ee2);}_0x3c554e=_[_0x824b('0x96')]({},_0x3c554e,_0x1d6b28[_0x824b('0xaf')]);return db[_0x824b('0xb5')][_0x824b('0x94')]({'where':_0x3c554e[_0x824b('0x6f')]})[_0x824b('0x30')](function(_0x561eec){_0xec1ed3['count']=_0x561eec;if(_0x1d6b28[_0x824b('0x38')][_0x824b('0xad')]){_0x3c554e[_0x824b('0xae')]=[{'all':!![]}];}return db[_0x824b('0xb5')][_0x824b('0xbe')](_0x3c554e);})[_0x824b('0x30')](function(_0x4dc5f6){_0xec1ed3[_0x824b('0xbf')]=_0x4dc5f6;return _0xec1ed3;});}})[_0x824b('0x30')](respondWithFilteredResult(_0xd020e4,_0x3c554e))[_0x824b('0xb0')](handleError(_0xd020e4,null));};exports[_0x824b('0xc0')]=function(_0x271775,_0x4169b2,_0x10ca39){return db[_0x824b('0x33')]['find']({'where':{'id':_0x271775['params']['id']}})[_0x824b('0x30')](handleEntityNotFound(_0x4169b2,null))['then'](function(_0x371c60){if(_0x371c60){return _0x371c60[_0x824b('0xc1')](_0x271775['body']['ids'],_['omit'](_0x271775[_0x824b('0xb2')],[_0x824b('0xb7'),'id'])||{})['spread'](function(){return db[_0x824b('0x67')][_0x824b('0xbe')]({'attributes':['id','name','color'],'where':{'id':_0x271775[_0x824b('0xb2')][_0x824b('0xb7')]}});})[_0x824b('0x30')](function(_0x1f5926){socket['emit'](_0x824b('0xc2'),{'id':Number(_0x271775[_0x824b('0xac')]['id']),'tags':_0x1f5926||[]});return{'id':Number(_0x271775[_0x824b('0xac')]['id']),'tags':_0x1f5926||[]};});}})[_0x824b('0x30')](respondWithResult(_0x4169b2,null))[_0x824b('0xb0')](handleError(_0x4169b2,null));};exports[_0x824b('0xc3')]=function(_0x308c48,_0x1a8c8b,_0xd85ce1){return db[_0x824b('0x33')][_0x824b('0x5c')]({'where':{'id':_0x308c48[_0x824b('0xac')]['id']}})[_0x824b('0x30')](handleEntityNotFound(_0x1a8c8b,null))[_0x824b('0x30')](function(_0x5d50e5){if(_0x5d50e5){return _0x5d50e5['removeTags'](_0x308c48['query'][_0x824b('0xb7')]);}})[_0x824b('0x30')](respondWithStatusCode(_0x1a8c8b,null))[_0x824b('0xb0')](handleError(_0x1a8c8b,null));};exports[_0x824b('0xc4')]=function(_0x1b71f7,_0x520f06){var _0x19850d=moment()[_0x824b('0xc5')]()[_0x824b('0x93')]();var _0x4cfe0f=path[_0x824b('0xc6')](config[_0x824b('0xc7')],_0x824b('0xc8'),'files','tmp');var _0x234737=path[_0x824b('0xc6')](config[_0x824b('0xc7')],_0x824b('0xc8'),'files',_0x824b('0xc9'));var _0x5e258a=path[_0x824b('0xc6')](_0x4cfe0f,_0x19850d);var _0x355ff9=util[_0x824b('0xbc')](_0x824b('0xca'),_0x1b71f7[_0x824b('0xac')]['id'],_0x19850d);var _0x24940d=path[_0x824b('0xc6')](_0x4cfe0f,_0x355ff9);var _0x315bfe=[];_0x315bfe[_0x824b('0x2f')]({'model':db[_0x824b('0xcb')],'as':_0x824b('0xcb'),'raw':!![]});var _0x134ef4=[{'model':db[_0x824b('0xb5')],'as':'Messages','attributes':['id',_0x824b('0xb2'),'createdAt'],'include':_0x315bfe}];return db[_0x824b('0x33')][_0x824b('0x5c')]({'where':{'id':_0x1b71f7['params']['id']},'include':_0x134ef4})[_0x824b('0x30')](handleEntityNotFound(_0x520f06,null))[_0x824b('0x30')](function(_0x5dda6f){if(_0x5dda6f&&_0x5dda6f[_0x824b('0xcc')]){var _0x4d55f3=_0x5dda6f[_0x824b('0xcd')]({'plain':!![]});fs[_0x824b('0xce')](_0x5e258a);for(var _0x34e8ce=0x0;_0x34e8ce<_0x4d55f3[_0x824b('0xcc')]['length'];_0x34e8ce++){var _0x15ea78=_0x4d55f3[_0x824b('0xcc')][_0x34e8ce][_0x824b('0xcb')];if(_0x15ea78){var _0x356289=path[_0x824b('0xc6')](_0x234737,_0x15ea78[_0x824b('0xcf')]);if(fs[_0x824b('0xd0')](_0x356289)){fs[_0x824b('0xd1')](_0x356289)['pipe'](fs['createWriteStream'](path[_0x824b('0xc6')](_0x5e258a,_0x15ea78[_0x824b('0xcf')])));}}}return BPromise[_0x824b('0x8a')]()[_0x824b('0x30')](function(){return new BPromise(function(_0x1560ae,_0x1868a2){zipdir(_0x5e258a,{'saveTo':_0x24940d},function(_0x2e07b3,_0x444296){if(_0x2e07b3)return _0x1868a2(_0x2e07b3);return _0x1560ae(_0x444296);});})[_0x824b('0x30')](function(){return new BPromise(function(_0x39b6c0,_0x5acd1e){rimraf(_0x5e258a,function(_0x5c679c){if(_0x5c679c)_0x5acd1e(_0x5c679c);return _0x39b6c0();});});})[_0x824b('0x30')](function(){return _0x520f06[_0x824b('0xc4')](_0x24940d,_0x355ff9,function(_0x593d1e){if(_0x593d1e){console[_0x824b('0xd2')](_0x824b('0xd3'),_0x593d1e);}else{fs['unlinkSync'](_0x24940d);}});});});}else{return _0x520f06[_0x824b('0x1d')](0xc8);}})[_0x824b('0xb0')](handleError(_0x520f06,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3c7=['remove','then','setDataValue','Users','findAll','unreadMessages','length','emit','catch','hasOwnProperty','hook','exports','events','../../mysqldb','FaxInteraction','FaxMessage','setMaxListeners','save'];(function(_0x2c7618,_0x26be9c){var _0x5ce3f0=function(_0x1837b3){while(--_0x1837b3){_0x2c7618['push'](_0x2c7618['shift']());}};_0x5ce3f0(++_0x26be9c);}(_0xd3c7,0x1e0));var _0x7d3c=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0xd3c7[_0x432682];return _0x463d05;};'use strict';var EventEmitter=require(_0x7d3c('0x0'));var FaxInteraction=require(_0x7d3c('0x1'))['db'][_0x7d3c('0x2')];var FaxMessage=require('../../mysqldb')['db'][_0x7d3c('0x3')];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents[_0x7d3c('0x4')](0x0);var events={'afterCreate':_0x7d3c('0x5'),'afterUpdate':'update','afterDestroy':_0x7d3c('0x6')};function emitEvent(_0x30c08b){return function(_0x2921a6,_0x2f531c,_0x449011){_0x2921a6['getUsers']({'attributes':['id'],'raw':!![]})[_0x7d3c('0x7')](function(_0x19cdc7){_0x2921a6[_0x7d3c('0x8')](_0x7d3c('0x9'),_0x19cdc7['map'](function(_0xa2609c){return{'id':_0xa2609c['id']};}));return FaxMessage[_0x7d3c('0xa')]({'where':{'FaxInteractionId':_0x2921a6['id'],'direction':'in','read':![]},'raw':!![]});})[_0x7d3c('0x7')](function(_0x474fdb){_0x2921a6[_0x7d3c('0x8')](_0x7d3c('0xb'),_0x474fdb[_0x7d3c('0xc')]);FaxInteractionEvents[_0x7d3c('0xd')](_0x30c08b+':'+_0x2921a6['id'],_0x2921a6);FaxInteractionEvents[_0x7d3c('0xd')](_0x30c08b,_0x2921a6);_0x449011(null);})[_0x7d3c('0xe')](_0x449011(null));};}for(var e in events){if(events[_0x7d3c('0xf')](e)){var event=events[e];FaxInteraction[_0x7d3c('0x10')](e,emitEvent(event));}}module[_0x7d3c('0x11')]=FaxInteractionEvents;
\ No newline at end of file
+var _0x8d56=['exports','../../mysqldb','FaxMessage','save','update','setDataValue','Users','map','then','unreadMessages','emit','catch','hasOwnProperty','hook'];(function(_0x3eb36f,_0x1a9c89){var _0x51212c=function(_0x37271c){while(--_0x37271c){_0x3eb36f['push'](_0x3eb36f['shift']());}};_0x51212c(++_0x1a9c89);}(_0x8d56,0x1cf));var _0x68d5=function(_0x3df871,_0xda2e11){_0x3df871=_0x3df871-0x0;var _0x570f7b=_0x8d56[_0x3df871];return _0x570f7b;};'use strict';var EventEmitter=require('events');var FaxInteraction=require(_0x68d5('0x0'))['db']['FaxInteraction'];var FaxMessage=require(_0x68d5('0x0'))['db'][_0x68d5('0x1')];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x68d5('0x2'),'afterUpdate':_0x68d5('0x3'),'afterDestroy':'remove'};function emitEvent(_0x25caf7){return function(_0x54b97b,_0x37ec10,_0x418e9e){_0x54b97b['getUsers']({'attributes':['id'],'raw':!![]})['then'](function(_0x52d922){_0x54b97b[_0x68d5('0x4')](_0x68d5('0x5'),_0x52d922[_0x68d5('0x6')](function(_0x3a7e15){return{'id':_0x3a7e15['id']};}));return FaxMessage['findAll']({'where':{'FaxInteractionId':_0x54b97b['id'],'direction':'in','read':![]},'raw':!![]});})[_0x68d5('0x7')](function(_0x1595d7){_0x54b97b['setDataValue'](_0x68d5('0x8'),_0x1595d7['length']);FaxInteractionEvents['emit'](_0x25caf7+':'+_0x54b97b['id'],_0x54b97b);FaxInteractionEvents[_0x68d5('0x9')](_0x25caf7,_0x54b97b);_0x418e9e(null);})[_0x68d5('0xa')](_0x418e9e(null));};}for(var e in events){if(events[_0x68d5('0xb')](e)){var event=events[e];FaxInteraction[_0x68d5('0xc')](e,emitEvent(event));}}module[_0x68d5('0xd')]=FaxInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x426b=['closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','FaxInteraction','changed','closed'];(function(_0x543d1b,_0x2ce3b7){var _0x4667e4=function(_0x52ab14){while(--_0x52ab14){_0x543d1b['push'](_0x543d1b['shift']());}};_0x4667e4(++_0x2ce3b7);}(_0x426b,0x193));var _0xb426=function(_0x6bb9,_0x10f2b6){_0x6bb9=_0x6bb9-0x0;var _0xe3b3bc=_0x426b[_0x6bb9];return _0xe3b3bc;};'use strict';var _=require(_0xb426('0x0'));var util=require(_0xb426('0x1'));var logger=require('../../config/logger')(_0xb426('0x2'));var moment=require(_0xb426('0x3'));var BPromise=require(_0xb426('0x4'));var rp=require(_0xb426('0x5'));var fs=require('fs');var path=require(_0xb426('0x6'));var rimraf=require(_0xb426('0x7'));var config=require(_0xb426('0x8'));var attributes=require('./faxInteraction.attributes');module[_0xb426('0x9')]=function(_0x23d805,_0x475569){return _0x23d805['define'](_0xb426('0xa'),attributes,{'tableName':'fax_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x5b8839,_0x5bdaae,_0x454b3d){if(_0x5b8839[_0xb426('0xb')](_0xb426('0xc'))){_0x5b8839[_0xb426('0xd')]=moment()[_0xb426('0xe')](_0xb426('0xf'));}_0x454b3d(null,_0x5b8839);}}});};
\ No newline at end of file
+var _0x0254=['changed','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','bluebird','request-promise','path','rimraf','../../config/environment','./faxInteraction.attributes','define','FaxInteraction'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x0254,0x1b8));var _0x4025=function(_0x262915,_0x151191){_0x262915=_0x262915-0x0;var _0x332e60=_0x0254[_0x262915];return _0x332e60;};'use strict';var _=require(_0x4025('0x0'));var util=require(_0x4025('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0x4025('0x2'));var rp=require(_0x4025('0x3'));var fs=require('fs');var path=require(_0x4025('0x4'));var rimraf=require(_0x4025('0x5'));var config=require(_0x4025('0x6'));var attributes=require(_0x4025('0x7'));module['exports']=function(_0x3311b9,_0x5b2e73){return _0x3311b9[_0x4025('0x8')](_0x4025('0x9'),attributes,{'tableName':'fax_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x4b378e,_0x5ad128,_0x4ddc8e){if(_0x4b378e[_0x4025('0xa')](_0x4025('0xb'))){_0x4b378e[_0x4025('0xc')]=moment()[_0x4025('0xd')](_0x4025('0xe'));}_0x4ddc8e(null,_0x4b378e);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9381=['catch','UpdateFaxInteraction','FaxInteraction','update','body','options','where','limit','AddTagsToFaxInteraction','find','addTags','ids','spread','AddTags','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','redis','localhost','socket.io-emitter','./faxInteraction.socket','request','then','info','FaxInteraction,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result'];(function(_0x59162a,_0x10e547){var _0x35e50d=function(_0x578425){while(--_0x578425){_0x59162a['push'](_0x59162a['shift']());}};_0x35e50d(++_0x10e547);}(_0x9381,0xcc));var _0x1938=function(_0x2b9b7f,_0x4d47df){_0x2b9b7f=_0x2b9b7f-0x0;var _0x4ed19a=_0x9381[_0x2b9b7f];return _0x4ed19a;};'use strict';var _=require(_0x1938('0x0'));var util=require('util');var moment=require(_0x1938('0x1'));var BPromise=require(_0x1938('0x2'));var rs=require(_0x1938('0x3'));var fs=require('fs');var Redis=require(_0x1938('0x4'));var db=require(_0x1938('0x5'))['db'];var utils=require(_0x1938('0x6'));var logger=require(_0x1938('0x7'))('rpc');var config=require(_0x1938('0x8'));var jayson=require(_0x1938('0x9'));var client=jayson['client']['http']({'port':0x232a});config[_0x1938('0xa')]=_['defaults'](config[_0x1938('0xa')],{'host':_0x1938('0xb'),'port':0x18eb});var socket=require(_0x1938('0xc'))(new Redis(config['redis']));require(_0x1938('0xd'))['register'](socket);function respondWithRpcPromise(_0x144384,_0x37c188,_0x21bc05){return new BPromise(function(_0x4e2a95,_0x4e4be0){return client[_0x1938('0xe')](_0x144384,_0x21bc05)[_0x1938('0xf')](function(_0x4004ca){logger[_0x1938('0x10')](_0x1938('0x11'),_0x37c188,_0x1938('0x12'));logger[_0x1938('0x13')]('FaxInteraction,\x20%s,\x20%s,\x20%s',_0x37c188,'request\x20sent',JSON[_0x1938('0x14')](_0x4004ca));if(_0x4004ca[_0x1938('0x15')]){if(_0x4004ca['error']['code']===0x1f4){logger[_0x1938('0x15')](_0x1938('0x11'),_0x37c188,_0x4004ca['error'][_0x1938('0x16')]);return _0x4e4be0(_0x4004ca[_0x1938('0x15')][_0x1938('0x16')]);}logger[_0x1938('0x15')](_0x1938('0x11'),_0x37c188,_0x4004ca['error'][_0x1938('0x16')]);return _0x4e2a95(_0x4004ca['error']['message']);}else{logger['info'](_0x1938('0x11'),_0x37c188,_0x1938('0x12'));_0x4e2a95(_0x4004ca[_0x1938('0x17')][_0x1938('0x16')]);}})[_0x1938('0x18')](function(_0x426146){logger['error']('FaxInteraction,\x20%s,\x20%s',_0x37c188,_0x426146);_0x4e4be0(_0x426146);});});}exports[_0x1938('0x19')]=function(_0x98b12b){var _0x28b7a8=this;return new Promise(function(_0x3aa56f,_0x74f295){return db[_0x1938('0x1a')][_0x1938('0x1b')](_0x98b12b[_0x1938('0x1c')],{'raw':_0x98b12b[_0x1938('0x1d')]?_0x98b12b[_0x1938('0x1d')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x98b12b[_0x1938('0x1d')]?_0x98b12b['options'][_0x1938('0x1e')]||null:null,'attributes':_0x98b12b[_0x1938('0x1d')]?_0x98b12b['options']['attributes']||null:null,'limit':_0x98b12b[_0x1938('0x1d')]?_0x98b12b['options'][_0x1938('0x1f')]||null:null})[_0x1938('0xf')](function(_0xf02d60){logger['info'](_0x1938('0x19'),_0x98b12b);logger[_0x1938('0x13')](_0x1938('0x19'),_0x98b12b,JSON[_0x1938('0x14')](_0xf02d60));_0x3aa56f(_0xf02d60);})[_0x1938('0x18')](function(_0x5d503e){logger['error'](_0x1938('0x19'),_0x5d503e[_0x1938('0x16')],_0x98b12b);_0x74f295(_0x28b7a8['error'](0x1f4,_0x5d503e[_0x1938('0x16')]));});});};exports[_0x1938('0x20')]=function(_0x1c4fae){return new Promise(function(_0x2543a4,_0x599435){return db[_0x1938('0x1a')][_0x1938('0x21')]({'where':_0x1c4fae[_0x1938('0x1d')]?_0x1c4fae[_0x1938('0x1d')]['where']||null:null})[_0x1938('0xf')](function(_0x5cbe91){if(_0x5cbe91){return _0x5cbe91[_0x1938('0x22')](_0x1c4fae[_0x1938('0x1c')][_0x1938('0x23')],_['omit'](_0x1c4fae['body'],['ids','id'])||{});}})[_0x1938('0x24')](function(_0x2dad03){logger['info'](_0x1938('0x25'),_0x1c4fae);logger[_0x1938('0x13')](_0x1938('0x25'),_0x1c4fae,JSON[_0x1938('0x14')](_0x2dad03));_0x2543a4(_0x2dad03);})['catch'](function(_0x4bfcd1){logger[_0x1938('0x15')](_0x1938('0x25'),_0x4bfcd1[_0x1938('0x16')],_0x1c4fae);_0x599435(_this[_0x1938('0x15')](0x1f4,_0x4bfcd1[_0x1938('0x16')]));});});};
\ No newline at end of file
+var _0x9d3f=['stringify','AddTagsToFaxInteraction','find','addTags','ids','omit','spread','AddTags','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./faxInteraction.socket','info','FaxInteraction,\x20%s,\x20%s','debug','FaxInteraction,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','UpdateFaxInteraction','FaxInteraction','update','body','options','where','limit','then'];(function(_0x499009,_0x76d2c){var _0x413967=function(_0x2ec265){while(--_0x2ec265){_0x499009['push'](_0x499009['shift']());}};_0x413967(++_0x76d2c);}(_0x9d3f,0x1cb));var _0xf9d3=function(_0x2314b7,_0x1bea46){_0x2314b7=_0x2314b7-0x0;var _0x10d950=_0x9d3f[_0x2314b7];return _0x10d950;};'use strict';var _=require(_0xf9d3('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xf9d3('0x1'));var rs=require(_0xf9d3('0x2'));var fs=require('fs');var Redis=require(_0xf9d3('0x3'));var db=require(_0xf9d3('0x4'))['db'];var utils=require(_0xf9d3('0x5'));var logger=require(_0xf9d3('0x6'))('rpc');var config=require(_0xf9d3('0x7'));var jayson=require(_0xf9d3('0x8'));var client=jayson[_0xf9d3('0x9')][_0xf9d3('0xa')]({'port':0x232a});config[_0xf9d3('0xb')]=_[_0xf9d3('0xc')](config[_0xf9d3('0xb')],{'host':_0xf9d3('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xf9d3('0xb')]));require(_0xf9d3('0xe'))['register'](socket);function respondWithRpcPromise(_0x2b2c9f,_0x3f3c2f,_0x23ca78){return new BPromise(function(_0x21a595,_0x2d3efc){return client['request'](_0x2b2c9f,_0x23ca78)['then'](function(_0x598146){logger[_0xf9d3('0xf')](_0xf9d3('0x10'),_0x3f3c2f,'request\x20sent');logger[_0xf9d3('0x11')](_0xf9d3('0x12'),_0x3f3c2f,_0xf9d3('0x13'),JSON['stringify'](_0x598146));if(_0x598146[_0xf9d3('0x14')]){if(_0x598146['error'][_0xf9d3('0x15')]===0x1f4){logger[_0xf9d3('0x14')]('FaxInteraction,\x20%s,\x20%s',_0x3f3c2f,_0x598146[_0xf9d3('0x14')][_0xf9d3('0x16')]);return _0x2d3efc(_0x598146['error'][_0xf9d3('0x16')]);}logger[_0xf9d3('0x14')]('FaxInteraction,\x20%s,\x20%s',_0x3f3c2f,_0x598146['error']['message']);return _0x21a595(_0x598146[_0xf9d3('0x14')][_0xf9d3('0x16')]);}else{logger[_0xf9d3('0xf')](_0xf9d3('0x10'),_0x3f3c2f,_0xf9d3('0x13'));_0x21a595(_0x598146[_0xf9d3('0x17')][_0xf9d3('0x16')]);}})[_0xf9d3('0x18')](function(_0x274d3e){logger[_0xf9d3('0x14')]('FaxInteraction,\x20%s,\x20%s',_0x3f3c2f,_0x274d3e);_0x2d3efc(_0x274d3e);});});}exports[_0xf9d3('0x19')]=function(_0x37dc2b){var _0x384265=this;return new Promise(function(_0x2dae46,_0x42130d){return db[_0xf9d3('0x1a')][_0xf9d3('0x1b')](_0x37dc2b[_0xf9d3('0x1c')],{'raw':_0x37dc2b[_0xf9d3('0x1d')]?_0x37dc2b[_0xf9d3('0x1d')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x37dc2b[_0xf9d3('0x1d')]?_0x37dc2b[_0xf9d3('0x1d')][_0xf9d3('0x1e')]||null:null,'attributes':_0x37dc2b[_0xf9d3('0x1d')]?_0x37dc2b[_0xf9d3('0x1d')]['attributes']||null:null,'limit':_0x37dc2b[_0xf9d3('0x1d')]?_0x37dc2b['options'][_0xf9d3('0x1f')]||null:null})[_0xf9d3('0x20')](function(_0xdf46d7){logger['info'](_0xf9d3('0x19'),_0x37dc2b);logger[_0xf9d3('0x11')]('UpdateFaxInteraction',_0x37dc2b,JSON[_0xf9d3('0x21')](_0xdf46d7));_0x2dae46(_0xdf46d7);})[_0xf9d3('0x18')](function(_0x3daa01){logger[_0xf9d3('0x14')](_0xf9d3('0x19'),_0x3daa01[_0xf9d3('0x16')],_0x37dc2b);_0x42130d(_0x384265[_0xf9d3('0x14')](0x1f4,_0x3daa01[_0xf9d3('0x16')]));});});};exports[_0xf9d3('0x22')]=function(_0x5a7c6e){return new Promise(function(_0x18fa74,_0x38e96a){return db[_0xf9d3('0x1a')][_0xf9d3('0x23')]({'where':_0x5a7c6e[_0xf9d3('0x1d')]?_0x5a7c6e[_0xf9d3('0x1d')][_0xf9d3('0x1e')]||null:null})[_0xf9d3('0x20')](function(_0xdae0c6){if(_0xdae0c6){return _0xdae0c6[_0xf9d3('0x24')](_0x5a7c6e['body'][_0xf9d3('0x25')],_[_0xf9d3('0x26')](_0x5a7c6e[_0xf9d3('0x1c')],[_0xf9d3('0x25'),'id'])||{});}})[_0xf9d3('0x27')](function(_0x541ba4){logger[_0xf9d3('0xf')]('AddTags',_0x5a7c6e);logger[_0xf9d3('0x11')](_0xf9d3('0x28'),_0x5a7c6e,JSON[_0xf9d3('0x21')](_0x541ba4));_0x18fa74(_0x541ba4);})['catch'](function(_0x5b82eb){logger[_0xf9d3('0x14')](_0xf9d3('0x28'),_0x5b82eb[_0xf9d3('0x16')],_0x5a7c6e);_0x38e96a(_this[_0xf9d3('0x14')](0x1f4,_0x5b82eb[_0xf9d3('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdc38=['faxInteraction:','./faxInteraction.events','remove','emit','removeListener'];(function(_0x11cb95,_0x21bb00){var _0xcbd5de=function(_0xfb4ec8){while(--_0xfb4ec8){_0x11cb95['push'](_0x11cb95['shift']());}};_0xcbd5de(++_0x21bb00);}(_0xdc38,0xec));var _0x8dc3=function(_0x132333,_0x28f80b){_0x132333=_0x132333-0x0;var _0x145a1d=_0xdc38[_0x132333];return _0x145a1d;};'use strict';var FaxInteractionEvents=require(_0x8dc3('0x0'));var events=['save',_0x8dc3('0x1'),'update'];function createListener(_0x21bad1,_0x5560cc){return function(_0x3ac434){_0x5560cc[_0x8dc3('0x2')](_0x21bad1,_0x3ac434);};}function removeListener(_0x19c5c2,_0x28c6b4){return function(){FaxInteractionEvents[_0x8dc3('0x3')](_0x19c5c2,_0x28c6b4);};}exports['register']=function(_0x17dfce){for(var _0x37af43=0x0,_0x7ab888=events['length'];_0x37af43<_0x7ab888;_0x37af43++){var _0x212ce4=events[_0x37af43];var _0x535a7e=createListener(_0x8dc3('0x4')+_0x212ce4,_0x17dfce);FaxInteractionEvents['on'](_0x212ce4,_0x535a7e);}};
\ No newline at end of file
+var _0x5935=['update','emit','register','length','faxInteraction:','save'];(function(_0x3c0aa8,_0x46552e){var _0x4b89be=function(_0x48779c){while(--_0x48779c){_0x3c0aa8['push'](_0x3c0aa8['shift']());}};_0x4b89be(++_0x46552e);}(_0x5935,0xd1));var _0x5593=function(_0x67f95e,_0x3ca797){_0x67f95e=_0x67f95e-0x0;var _0x538f5a=_0x5935[_0x67f95e];return _0x538f5a;};'use strict';var FaxInteractionEvents=require('./faxInteraction.events');var events=[_0x5593('0x0'),'remove',_0x5593('0x1')];function createListener(_0x3a1510,_0x44bf1a){return function(_0x137f27){_0x44bf1a[_0x5593('0x2')](_0x3a1510,_0x137f27);};}function removeListener(_0x3c5a6a,_0xc7aa6d){return function(){FaxInteractionEvents['removeListener'](_0x3c5a6a,_0xc7aa6d);};}exports[_0x5593('0x3')]=function(_0x1c3b39){for(var _0x1e7e8e=0x0,_0x5b4193=events[_0x5593('0x4')];_0x1e7e8e<_0x5b4193;_0x1e7e8e++){var _0x2151de=events[_0x1e7e8e];var _0x326e31=createListener(_0x5593('0x5')+_0x2151de,_0x1c3b39);FaxInteractionEvents['on'](_0x2151de,_0x326e31);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde1d=['../../components/interaction/service','../../config/environment','./faxInteraction.controller','get','isAuthenticated','index','/describe','/:id','show','/:id/messages','getMessages','/:id/download','create','post','/:id/tags','fax','faxinteraction:addtags','addTags','tracked','faxinteraction:update','delete','faxinteraction:destroy','destroy','removeTags','exports','util','path','connect-timeout','express','fs-extra'];(function(_0x184e95,_0x576649){var _0xc68987=function(_0x55cba0){while(--_0x55cba0){_0x184e95['push'](_0x184e95['shift']());}};_0xc68987(++_0x576649);}(_0xde1d,0x109));var _0xdde1=function(_0x35d59c,_0x4aa57e){_0x35d59c=_0x35d59c-0x0;var _0x55d5cc=_0xde1d[_0x35d59c];return _0x55d5cc;};'use strict';var multer=require('multer');var util=require(_0xdde1('0x0'));var path=require(_0xdde1('0x1'));var timeout=require(_0xdde1('0x2'));var express=require(_0xdde1('0x3'));var router=express['Router']();var fs_extra=require(_0xdde1('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xdde1('0x5'));var config=require(_0xdde1('0x6'));var controller=require(_0xdde1('0x7'));router[_0xdde1('0x8')]('/',auth[_0xdde1('0x9')](),controller[_0xdde1('0xa')]);router['get'](_0xdde1('0xb'),auth[_0xdde1('0x9')](),controller['describe']);router[_0xdde1('0x8')](_0xdde1('0xc'),auth[_0xdde1('0x9')](),controller[_0xdde1('0xd')]);router['get'](_0xdde1('0xe'),auth[_0xdde1('0x9')](),controller[_0xdde1('0xf')]);router[_0xdde1('0x8')](_0xdde1('0x10'),auth[_0xdde1('0x9')](),controller['download']);router['post']('/',auth[_0xdde1('0x9')](),controller[_0xdde1('0x11')]);router[_0xdde1('0x12')](_0xdde1('0xe'),auth['isAuthenticated'](),controller['addMessage']);router[_0xdde1('0x12')](_0xdde1('0x13'),auth[_0xdde1('0x9')](),interaction['tracked'](_0xdde1('0x14'),_0xdde1('0x15')),controller[_0xdde1('0x16')]);router['put'](_0xdde1('0xc'),auth[_0xdde1('0x9')](),interaction[_0xdde1('0x17')](_0xdde1('0x14'),_0xdde1('0x18')),controller['update']);router[_0xdde1('0x19')](_0xdde1('0xc'),auth[_0xdde1('0x9')](),interaction['tracked']('fax',_0xdde1('0x1a')),controller[_0xdde1('0x1b')]);router[_0xdde1('0x19')]('/:id/tags',auth[_0xdde1('0x9')](),controller[_0xdde1('0x1c')]);module[_0xdde1('0x1d')]=router;
\ No newline at end of file
+var _0xdc03=['/:id','faxinteraction:update','delete','faxinteraction:destroy','destroy','/:id/tags','removeTags','exports','multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxInteraction.controller','isAuthenticated','index','get','show','/:id/messages','getMessages','download','post','addMessage','tracked','fax','faxinteraction:addtags','addTags','put'];(function(_0x88cd7b,_0x4c884c){var _0x56fcc8=function(_0x513b3d){while(--_0x513b3d){_0x88cd7b['push'](_0x88cd7b['shift']());}};_0x56fcc8(++_0x4c884c);}(_0xdc03,0x65));var _0x3dc0=function(_0x22093e,_0x58e80f){_0x22093e=_0x22093e-0x0;var _0x1684c0=_0xdc03[_0x22093e];return _0x1684c0;};'use strict';var multer=require(_0x3dc0('0x0'));var util=require('util');var path=require(_0x3dc0('0x1'));var timeout=require(_0x3dc0('0x2'));var express=require('express');var router=express[_0x3dc0('0x3')]();var fs_extra=require(_0x3dc0('0x4'));var auth=require(_0x3dc0('0x5'));var interaction=require(_0x3dc0('0x6'));var config=require(_0x3dc0('0x7'));var controller=require(_0x3dc0('0x8'));router['get']('/',auth[_0x3dc0('0x9')](),controller[_0x3dc0('0xa')]);router[_0x3dc0('0xb')]('/describe',auth[_0x3dc0('0x9')](),controller['describe']);router['get']('/:id',auth[_0x3dc0('0x9')](),controller[_0x3dc0('0xc')]);router[_0x3dc0('0xb')](_0x3dc0('0xd'),auth[_0x3dc0('0x9')](),controller[_0x3dc0('0xe')]);router[_0x3dc0('0xb')]('/:id/download',auth['isAuthenticated'](),controller[_0x3dc0('0xf')]);router[_0x3dc0('0x10')]('/',auth[_0x3dc0('0x9')](),controller['create']);router['post'](_0x3dc0('0xd'),auth['isAuthenticated'](),controller[_0x3dc0('0x11')]);router['post']('/:id/tags',auth[_0x3dc0('0x9')](),interaction[_0x3dc0('0x12')](_0x3dc0('0x13'),_0x3dc0('0x14')),controller[_0x3dc0('0x15')]);router[_0x3dc0('0x16')](_0x3dc0('0x17'),auth[_0x3dc0('0x9')](),interaction['tracked'](_0x3dc0('0x13'),_0x3dc0('0x18')),controller['update']);router[_0x3dc0('0x19')](_0x3dc0('0x17'),auth[_0x3dc0('0x9')](),interaction['tracked'](_0x3dc0('0x13'),_0x3dc0('0x1a')),controller[_0x3dc0('0x1b')]);router['delete'](_0x3dc0('0x1c'),auth[_0x3dc0('0x9')](),controller[_0x3dc0('0x1d')]);module[_0x3dc0('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1da1=['sequelize','exports','TEXT','medium','BOOLEAN','out','DATE'];(function(_0x16a43a,_0x504546){var _0x394a67=function(_0x302a81){while(--_0x302a81){_0x16a43a['push'](_0x16a43a['shift']());}};_0x394a67(++_0x504546);}(_0x1da1,0x1a4));var _0x11da=function(_0x5bdb63,_0xbe5c5){_0x5bdb63=_0x5bdb63-0x0;var _0x17bcfe=_0x1da1[_0x5bdb63];return _0x17bcfe;};'use strict';var Sequelize=require(_0x11da('0x0'));module[_0x11da('0x1')]={'body':{'type':Sequelize[_0x11da('0x2')](_0x11da('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0x11da('0x4')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in','out'),'defaultValue':_0x11da('0x5'),'allowNull':![]},'failMessage':{'type':Sequelize[_0x11da('0x2')],'defaultValue':null},'readAt':{'type':Sequelize[_0x11da('0x6')]}};
\ No newline at end of file
+var _0xda65=['out','DATE','sequelize','exports','TEXT','BOOLEAN','ENUM'];(function(_0x4474d3,_0x72afd6){var _0xd87b54=function(_0x2fa4af){while(--_0x2fa4af){_0x4474d3['push'](_0x4474d3['shift']());}};_0xd87b54(++_0x72afd6);}(_0xda65,0x1d0));var _0x5da6=function(_0x218447,_0x284713){_0x218447=_0x218447-0x0;var _0x165a37=_0xda65[_0x218447];return _0x165a37;};'use strict';var Sequelize=require(_0x5da6('0x0'));module[_0x5da6('0x1')]={'body':{'type':Sequelize[_0x5da6('0x2')]('medium'),'allowNull':![]},'read':{'type':Sequelize[_0x5da6('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0x5da6('0x4')]('in',_0x5da6('0x5')),'defaultValue':'out','allowNull':![]},'failMessage':{'type':Sequelize['TEXT'],'defaultValue':null},'readAt':{'type':Sequelize[_0x5da6('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x28f2=['key','model','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','FaxMessage','include','findAll','rows','catch','keys','includeAll','options','find','body','params','describe','fax-interactions','accept','fax','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','user','agent','UserId','get','FaxInteraction','FaxInteractionId','isNil','read1stAt','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','interaction','null','AcceptMessage','acceptMessage','ContactId','sequelize','QueryTypes','contact','User','fullname','internal','manual','interface','SIP/%s','channel','motionChannel','EventManager','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','Sequelize','SELECT','email','event','rejectmessage','create','CmContact','findOne','Attachment','AttachmentId','SendFax','/var/opt/motion2/server/files/attachments/%s','basename','download','join','root','server','files','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','sox','ejs','fs-extra','lodash','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','client','http','then','info','FaxMessage,\x20%s,\x20%s','request\x20sent','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','end','status','offset','undefined','limit','count','Content-Range','json','reject','update','destroy','stack','name','send','index','map','rawAttributes','fieldName','type'];(function(_0x2674b0,_0x683165){var _0x5f1007=function(_0x157f19){while(--_0x157f19){_0x2674b0['push'](_0x2674b0['shift']());}};_0x5f1007(++_0x683165);}(_0x28f2,0x177));var _0x228f=function(_0x32c880,_0x17ffe9){_0x32c880=_0x32c880-0x0;var _0x29736c=_0x28f2[_0x32c880];return _0x29736c;};'use strict';var emlformat=require(_0x228f('0x0'));var rimraf=require(_0x228f('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x228f('0x2'));var rp=require(_0x228f('0x3'));var moment=require(_0x228f('0x4'));var BPromise=require(_0x228f('0x5'));var Mustache=require('mustache');var util=require(_0x228f('0x6'));var path=require('path');var sox=require(_0x228f('0x7'));var csv=require('to-csv');var ejs=require(_0x228f('0x8'));var fs=require('fs');var fs_extra=require(_0x228f('0x9'));var _=require(_0x228f('0xa'));var squel=require('squel');var crypto=require(_0x228f('0xb'));var jsforce=require(_0x228f('0xc'));var deskjs=require(_0x228f('0xd'));var toCsv=require(_0x228f('0xe'));var querystring=require(_0x228f('0xf'));var Papa=require(_0x228f('0x10'));var Redis=require(_0x228f('0x11'));var authService=require(_0x228f('0x12'));var qs=require(_0x228f('0x13'));var as=require(_0x228f('0x14'));var hardwareService=require(_0x228f('0x15'));var logger=require(_0x228f('0x16'))(_0x228f('0x17'));var utils=require(_0x228f('0x18'));var config=require(_0x228f('0x19'));var licenseUtil=require(_0x228f('0x1a'));var db=require(_0x228f('0x1b'))['db'];config[_0x228f('0x1c')]=_[_0x228f('0x1d')](config[_0x228f('0x1c')],{'host':'localhost','port':0x18eb});var socket=require(_0x228f('0x1e'))(new Redis(config[_0x228f('0x1c')]));require('./faxMessage.socket')['register'](socket);var jayson=require('jayson/promise');var client=jayson[_0x228f('0x1f')][_0x228f('0x20')]({'port':0x232c});var client9002=jayson['client'][_0x228f('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x2ea075,_0x3b3fb6,_0x12d54c,_0x5c8d94){return new BPromise(function(_0x1078c3,_0x3642cf){var _0xbdcefd=_0x5c8d94||client;return _0xbdcefd['request'](_0x2ea075,_0x12d54c)[_0x228f('0x21')](function(_0x22588b){logger[_0x228f('0x22')](_0x228f('0x23'),_0x3b3fb6,_0x228f('0x24'));logger['debug'](_0x228f('0x25'),_0x3b3fb6,_0x228f('0x24'),JSON[_0x228f('0x26')](_0x22588b));if(_0x22588b[_0x228f('0x27')]){if(_0x22588b[_0x228f('0x27')][_0x228f('0x28')]===0x1f4){logger['error']('FaxMessage,\x20%s,\x20%s',_0x3b3fb6,_0x22588b[_0x228f('0x27')]['message']);return _0x3642cf(_0x22588b[_0x228f('0x27')][_0x228f('0x29')]);}logger[_0x228f('0x27')](_0x228f('0x23'),_0x3b3fb6,_0x22588b[_0x228f('0x27')][_0x228f('0x29')]);return _0x1078c3(_0x22588b[_0x228f('0x27')][_0x228f('0x29')]);}else{logger[_0x228f('0x22')](_0x228f('0x23'),_0x3b3fb6,'request\x20sent');_0x1078c3(_0x22588b[_0x228f('0x2a')]['message']);}})['catch'](function(_0x5afbfb){logger[_0x228f('0x27')](_0x228f('0x23'),_0x3b3fb6,_0x5afbfb);_0x3642cf(_0x5afbfb);});});}function respondWithStatusCode(_0x18abaf,_0x7acd90){_0x7acd90=_0x7acd90||0xcc;return function(_0x5e6990){if(_0x5e6990){return _0x18abaf[_0x228f('0x2b')](_0x7acd90);}return _0x18abaf['status'](_0x7acd90)[_0x228f('0x2c')]();};}function respondWithResult(_0x101e98,_0x3836b0){_0x3836b0=_0x3836b0||0xc8;return function(_0x196c80){if(_0x196c80){return _0x101e98[_0x228f('0x2d')](_0x3836b0)['json'](_0x196c80);}};}function respondWithFilteredResult(_0xb23564,_0x436859){return function(_0x3bb41d){if(_0x3bb41d){var _0x3ba5b1=typeof _0x436859[_0x228f('0x2e')]===_0x228f('0x2f')&&typeof _0x436859[_0x228f('0x30')]===_0x228f('0x2f');var _0x443e7b=_0x3bb41d[_0x228f('0x31')];var _0x29f346=_0x3ba5b1?0x0:_0x436859['offset'];var _0x2c9b89=_0x3ba5b1?_0x3bb41d[_0x228f('0x31')]:_0x436859[_0x228f('0x2e')]+_0x436859[_0x228f('0x30')];var _0x29d2ec;if(_0x2c9b89>=_0x443e7b){_0x2c9b89=_0x443e7b;_0x29d2ec=0xc8;}else{_0x29d2ec=0xce;}_0xb23564[_0x228f('0x2d')](_0x29d2ec);return _0xb23564['set'](_0x228f('0x32'),_0x29f346+'-'+_0x2c9b89+'/'+_0x443e7b)[_0x228f('0x33')](_0x3bb41d);}return null;};}function patchUpdates(_0x16bf39){return function(_0x1c30e9){try{jsonpatch['apply'](_0x1c30e9,_0x16bf39,!![]);}catch(_0x31a7c7){return BPromise[_0x228f('0x34')](_0x31a7c7);}return _0x1c30e9['save']();};}function saveUpdates(_0x36c77b,_0x54b47b){return function(_0x184980){if(_0x184980){return _0x184980[_0x228f('0x35')](_0x36c77b)[_0x228f('0x21')](function(_0x167aa3){return _0x167aa3;});}return null;};}function removeEntity(_0x3e0040,_0x215a21){return function(_0x357e6e){if(_0x357e6e){return _0x357e6e[_0x228f('0x36')]()['then'](function(){_0x3e0040[_0x228f('0x2d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x547e9e,_0x58745c){return function(_0x594609){if(!_0x594609){_0x547e9e[_0x228f('0x2b')](0x194);}return _0x594609;};}function handleError(_0x518475,_0x401a3b){_0x401a3b=_0x401a3b||0x1f4;return function(_0x14ba3c){logger[_0x228f('0x27')](_0x14ba3c[_0x228f('0x37')]);if(_0x14ba3c['name']){delete _0x14ba3c[_0x228f('0x38')];}_0x518475[_0x228f('0x2d')](_0x401a3b)[_0x228f('0x39')](_0x14ba3c);};}exports[_0x228f('0x3a')]=function(_0x21cbbf,_0x1559d1){var _0x2d19cf={},_0x1001ab={},_0x4da865={'count':0x0,'rows':[]};var _0x5ae147=_[_0x228f('0x3b')](db['FaxMessage'][_0x228f('0x3c')],function(_0x5719cb){return{'name':_0x5719cb[_0x228f('0x3d')],'type':_0x5719cb[_0x228f('0x3e')][_0x228f('0x3f')]};});_0x1001ab[_0x228f('0x40')]=_[_0x228f('0x3b')](_0x5ae147,_0x228f('0x38'));_0x1001ab['query']=_['keys'](_0x21cbbf[_0x228f('0x41')]);_0x1001ab[_0x228f('0x42')]=_[_0x228f('0x43')](_0x1001ab['model'],_0x1001ab['query']);_0x2d19cf[_0x228f('0x44')]=_[_0x228f('0x43')](_0x1001ab[_0x228f('0x40')],qs[_0x228f('0x45')](_0x21cbbf[_0x228f('0x41')][_0x228f('0x45')]));_0x2d19cf[_0x228f('0x44')]=_0x2d19cf[_0x228f('0x44')][_0x228f('0x46')]?_0x2d19cf['attributes']:_0x1001ab[_0x228f('0x40')];if(!_0x21cbbf[_0x228f('0x41')]['hasOwnProperty'](_0x228f('0x47'))){_0x2d19cf[_0x228f('0x30')]=qs['limit'](_0x21cbbf[_0x228f('0x41')][_0x228f('0x30')]);_0x2d19cf[_0x228f('0x2e')]=qs[_0x228f('0x2e')](_0x21cbbf[_0x228f('0x41')][_0x228f('0x2e')]);}_0x2d19cf[_0x228f('0x48')]=qs['sort'](_0x21cbbf[_0x228f('0x41')][_0x228f('0x49')]);_0x2d19cf[_0x228f('0x4a')]=qs['filters'](_[_0x228f('0x4b')](_0x21cbbf[_0x228f('0x41')],_0x1001ab[_0x228f('0x42')]),_0x5ae147);if(_0x21cbbf['query']['filter']){_0x2d19cf[_0x228f('0x4a')]=_[_0x228f('0x4c')](_0x2d19cf[_0x228f('0x4a')],{'$or':_[_0x228f('0x3b')](_0x5ae147,function(_0x4655a5){if(_0x4655a5[_0x228f('0x3e')]!==_0x228f('0x4d')){var _0x128506={};_0x128506[_0x4655a5[_0x228f('0x38')]]={'$like':'%'+_0x21cbbf[_0x228f('0x41')][_0x228f('0x4e')]+'%'};return _0x128506;}})});}_0x2d19cf=_[_0x228f('0x4c')]({},_0x2d19cf,_0x21cbbf['options']);var _0x484e01={'where':_0x2d19cf[_0x228f('0x4a')]};return db[_0x228f('0x4f')]['count'](_0x484e01)[_0x228f('0x21')](function(_0x471295){_0x4da865[_0x228f('0x31')]=_0x471295;if(_0x21cbbf[_0x228f('0x41')]['includeAll']){_0x2d19cf[_0x228f('0x50')]=[{'all':!![]}];}return db[_0x228f('0x4f')][_0x228f('0x51')](_0x2d19cf);})['then'](function(_0x2ce079){_0x4da865[_0x228f('0x52')]=_0x2ce079;return _0x4da865;})[_0x228f('0x21')](respondWithFilteredResult(_0x1559d1,_0x2d19cf))[_0x228f('0x53')](handleError(_0x1559d1,null));};exports['show']=function(_0x87a5ef,_0xf3ac5c){var _0x5314f0={'raw':!![],'where':{'id':_0x87a5ef['params']['id']}},_0x6dc36e={};_0x6dc36e[_0x228f('0x40')]=_['keys'](db[_0x228f('0x4f')][_0x228f('0x3c')]);_0x6dc36e[_0x228f('0x41')]=_[_0x228f('0x54')](_0x87a5ef[_0x228f('0x41')]);_0x6dc36e['filters']=_['intersection'](_0x6dc36e[_0x228f('0x40')],_0x6dc36e['query']);_0x5314f0['attributes']=_['intersection'](_0x6dc36e['model'],qs['fields'](_0x87a5ef[_0x228f('0x41')][_0x228f('0x45')]));_0x5314f0[_0x228f('0x44')]=_0x5314f0[_0x228f('0x44')][_0x228f('0x46')]?_0x5314f0[_0x228f('0x44')]:_0x6dc36e[_0x228f('0x40')];if(_0x87a5ef[_0x228f('0x41')][_0x228f('0x55')]){_0x5314f0[_0x228f('0x50')]=[{'all':!![]}];}_0x5314f0=_[_0x228f('0x4c')]({},_0x5314f0,_0x87a5ef[_0x228f('0x56')]);return db[_0x228f('0x4f')][_0x228f('0x57')](_0x5314f0)[_0x228f('0x21')](handleEntityNotFound(_0xf3ac5c,null))[_0x228f('0x21')](respondWithResult(_0xf3ac5c,null))[_0x228f('0x53')](handleError(_0xf3ac5c,null));};exports[_0x228f('0x35')]=function(_0x3f7fd9,_0x1c3261){if(_0x3f7fd9[_0x228f('0x58')]['id']){delete _0x3f7fd9[_0x228f('0x58')]['id'];}return db['FaxMessage']['find']({'where':{'id':_0x3f7fd9[_0x228f('0x59')]['id']}})['then'](handleEntityNotFound(_0x1c3261,null))[_0x228f('0x21')](saveUpdates(_0x3f7fd9[_0x228f('0x58')],null))[_0x228f('0x21')](respondWithResult(_0x1c3261,null))[_0x228f('0x53')](handleError(_0x1c3261,null));};exports[_0x228f('0x36')]=function(_0xaa4b79,_0x3aa50c){return db['FaxMessage'][_0x228f('0x57')]({'where':{'id':_0xaa4b79['params']['id']}})[_0x228f('0x21')](handleEntityNotFound(_0x3aa50c,null))[_0x228f('0x21')](removeEntity(_0x3aa50c,null))[_0x228f('0x53')](handleError(_0x3aa50c,null));};exports['describe']=function(_0x1f99c0,_0x1781ab){return db[_0x228f('0x4f')][_0x228f('0x5a')]()[_0x228f('0x21')](respondWithResult(_0x1781ab,null))['catch'](handleError(_0x1781ab,null));};var interaction_log=require('../../config/logger')(_0x228f('0x5b'));exports[_0x228f('0x5c')]=function(_0x5c5598,_0x2d2097,_0x132849){var _0xea6f1b={'agent':{},'channel':_0x228f('0x5d')};if(_0x5c5598[_0x228f('0x58')]['id']){delete _0x5c5598[_0x228f('0x58')]['id'];}_0x5c5598['body'][_0x228f('0x5e')]=!![];_0x5c5598['body'][_0x228f('0x5f')]=moment()[_0x228f('0x60')](_0x228f('0x61'));_0x5c5598[_0x228f('0x58')]['UserId']=_0x5c5598[_0x228f('0x58')]['UserId']||_0x5c5598[_0x228f('0x62')]['id'];_0xea6f1b[_0x228f('0x63')]['id']=_0x5c5598[_0x228f('0x58')][_0x228f('0x64')];return db[_0x228f('0x4f')][_0x228f('0x57')]({'where':{'id':_0x5c5598['params']['id'],'UserId':null}})[_0x228f('0x21')](handleEntityNotFound(_0x2d2097,null))[_0x228f('0x21')](saveUpdates(_0x5c5598[_0x228f('0x58')],null))[_0x228f('0x21')](function(_0x48992b){if(_0x48992b){_0xea6f1b[_0x228f('0x29')]=_0x48992b[_0x228f('0x65')]({'plain':!![]});return db[_0x228f('0x66')]['find']({'where':{'id':_0x48992b[_0x228f('0x67')]}});}return null;})[_0x228f('0x21')](handleEntityNotFound(_0x2d2097,null))[_0x228f('0x21')](function(_0x45ebdc){if(_0x45ebdc){return _0x45ebdc[_0x228f('0x35')]({'UserId':_0x5c5598['body'][_0x228f('0x64')],'read1stAt':_[_0x228f('0x68')](_0x45ebdc[_0x228f('0x69')])?moment()['format'](_0x228f('0x61')):undefined});}return null;})[_0x228f('0x21')](function(_0x46ff74){if(_0x46ff74){_0xea6f1b['interaction']=_0x46ff74[_0x228f('0x65')]({'plain':!![]});interaction_log[_0x228f('0x22')](_0x228f('0x6a'),_0x5c5598[_0x228f('0x62')]['id'],_0x5c5598['user'][_0x228f('0x38')],_0x5c5598['user'][_0x228f('0x6b')],_0xea6f1b[_0x228f('0x6c')]['id'],_0x5c5598[_0x228f('0x58')]?JSON['stringify'](_0x5c5598[_0x228f('0x58')]):_0x228f('0x6d'));return respondWithRpcPromise(_0x228f('0x6e'),_0x228f('0x6f'),_0xea6f1b);}return null;})[_0x228f('0x21')](function(_0x521749){var _0x30f1cd='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x521749[_0x228f('0x29')][_0x228f('0x70')];return db[_0x228f('0x71')]['query'](_0x30f1cd,{'type':db['Sequelize'][_0x228f('0x72')]['SELECT'],'raw':!![]})[_0x228f('0x21')](function(_0x3fef4c){return _0x3fef4c;});})['then'](function(_0x410acf){if(_0x410acf){_0xea6f1b[_0x228f('0x29')][_0x228f('0x73')]=_0x410acf[0x0];if(!_0x5c5598['body'][_0x228f('0x64')])return;return db[_0x228f('0x74')]['find']({'where':{'id':_0x5c5598[_0x228f('0x58')][_0x228f('0x64')],'role':'agent'},'attributes':['id',_0x228f('0x38'),_0x228f('0x75'),'email',_0x228f('0x76')],'raw':!![]});}return null;})[_0x228f('0x21')](function(_0xf99973){if(!_0xf99973)return null;_0xea6f1b['message'][_0x228f('0x63')]=_0xf99973;return _0xea6f1b;})[_0x228f('0x21')](function(_0x49f5b){if(_0x49f5b){if(_0x5c5598[_0x228f('0x58')][_0x228f('0x77')]){_0xea6f1b[_0x228f('0x29')][_0x228f('0x78')]=util[_0x228f('0x60')](_0x228f('0x79'),_0x5c5598[_0x228f('0x62')][_0x228f('0x38')]);_0xea6f1b[_0x228f('0x29')][_0x228f('0x7a')]=_0xea6f1b[_0x228f('0x7a')];_0xea6f1b[_0x228f('0x29')][_0x228f('0x7b')]=_0xea6f1b['channel'];_0xea6f1b[_0x228f('0x29')]['event']=_0x228f('0x5c');return respondWithRpcPromise(_0x228f('0x7c'),_0x228f('0x7c'),{'event':'acceptmessage','message':_0xea6f1b['message']},client9002)['then'](function(){return _0xea6f1b;});}return _0xea6f1b;}return null;})['then'](respondWithResult(_0x2d2097,null))[_0x228f('0x53')](handleError(_0x2d2097,null));};var interaction_log=require('../../config/logger')(_0x228f('0x5b'));exports[_0x228f('0x34')]=function(_0x4c0f34,_0x413cd8,_0x5aa240){var _0x58c995={'agent':{},'channel':'fax'};if(_0x4c0f34[_0x228f('0x58')]['id']){delete _0x4c0f34[_0x228f('0x58')]['id'];}_0x4c0f34[_0x228f('0x58')][_0x228f('0x64')]=_0x4c0f34['body'][_0x228f('0x64')]||_0x4c0f34[_0x228f('0x62')]['id'];_0x58c995[_0x228f('0x63')]['id']=_0x4c0f34[_0x228f('0x58')][_0x228f('0x64')];return db[_0x228f('0x4f')][_0x228f('0x57')]({'where':{'id':_0x4c0f34[_0x228f('0x59')]['id'],'UserId':null}})[_0x228f('0x21')](handleEntityNotFound(_0x413cd8,null))[_0x228f('0x21')](function(_0x5034cb){if(_0x5034cb){_0x58c995[_0x228f('0x29')]=_0x5034cb[_0x228f('0x65')]({'plain':!![]});return db[_0x228f('0x66')][_0x228f('0x57')]({'where':{'id':_0x5034cb[_0x228f('0x67')]}});}return null;})[_0x228f('0x21')](handleEntityNotFound(_0x413cd8,null))[_0x228f('0x21')](function(_0x3c3a65){if(_0x3c3a65){_0x58c995[_0x228f('0x6c')]=_0x3c3a65[_0x228f('0x65')]({'plain':!![]});interaction_log[_0x228f('0x22')](_0x228f('0x7d'),_0x4c0f34[_0x228f('0x62')]['id'],_0x4c0f34['user'][_0x228f('0x38')],_0x4c0f34[_0x228f('0x62')]['role'],_0x58c995['interaction']['id'],_0x4c0f34[_0x228f('0x58')]?JSON[_0x228f('0x26')](_0x4c0f34[_0x228f('0x58')]):_0x228f('0x6d'));return respondWithRpcPromise('RejectMessage',_0x228f('0x7e'),_0x58c995);}return null;})[_0x228f('0x21')](function(_0x5120ef){var _0x36be82=_0x228f('0x7f')+_0x5120ef[_0x228f('0x29')][_0x228f('0x70')];return db[_0x228f('0x71')][_0x228f('0x41')](_0x36be82,{'type':db[_0x228f('0x80')][_0x228f('0x72')][_0x228f('0x81')],'raw':!![]})['then'](function(_0xb32086){return _0xb32086;});})[_0x228f('0x21')](function(_0x31cb0d){if(_0x31cb0d){_0x58c995[_0x228f('0x29')][_0x228f('0x73')]=_0x31cb0d[0x0];if(!_0x4c0f34[_0x228f('0x58')][_0x228f('0x64')])return;return db[_0x228f('0x74')][_0x228f('0x57')]({'where':{'id':_0x4c0f34['body'][_0x228f('0x64')],'role':_0x228f('0x63')},'attributes':['id',_0x228f('0x38'),'fullname',_0x228f('0x82'),'internal'],'raw':!![]});}return null;})[_0x228f('0x21')](function(_0x36e154){if(!_0x36e154)return null;_0x58c995[_0x228f('0x29')][_0x228f('0x63')]=_0x36e154;return _0x58c995;})[_0x228f('0x21')](function(_0x12f698){if(_0x12f698){_0x12f698[_0x228f('0x29')][_0x228f('0x78')]=util['format'](_0x228f('0x79'),_0x4c0f34[_0x228f('0x62')][_0x228f('0x38')]);_0x12f698[_0x228f('0x29')][_0x228f('0x7a')]=_0x58c995[_0x228f('0x7a')];_0x12f698[_0x228f('0x29')][_0x228f('0x7b')]=_0x58c995[_0x228f('0x7a')];_0x12f698[_0x228f('0x29')][_0x228f('0x83')]=_0x228f('0x34');respondWithRpcPromise(_0x228f('0x7c'),_0x228f('0x7c'),{'event':_0x228f('0x84'),'message':_0x12f698[_0x228f('0x29')]},client9002);return _0x58c995;}return null;})[_0x228f('0x21')](respondWithResult(_0x413cd8,null))['catch'](handleError(_0x413cd8,null));};exports[_0x228f('0x85')]=function(_0x3ed24d,_0x441cec){var _0x352707;return db['FaxMessage'][_0x228f('0x85')](_0x3ed24d[_0x228f('0x58')],{})[_0x228f('0x21')](function(_0x5af5bd){_0x352707=_0x5af5bd;return db[_0x228f('0x86')][_0x228f('0x87')]({'where':{'id':_0x352707[_0x228f('0x70')]}});})[_0x228f('0x21')](function(_0x2a75ae){if(_[_0x228f('0x68')](_0x2a75ae)){return;}else{_0x352707[_0x228f('0x5d')]=_0x2a75ae[_0x228f('0x5d')];return db[_0x228f('0x88')][_0x228f('0x87')]({'where':{'id':_0x352707[_0x228f('0x89')]}});}})['then'](function(_0xbd2fa3){return respondWithRpcPromise(_0x228f('0x8a'),_0x228f('0x8a'),{'FaxAccountId':_['isNil'](_0x3ed24d['body'])?undefined:_0x3ed24d['body']['FaxAccountId'],'path':_[_0x228f('0x68')](_0xbd2fa3)?undefined:util[_0x228f('0x60')](_0x228f('0x8b'),_0xbd2fa3[_0x228f('0x8c')]),'fax':_[_0x228f('0x68')](_0x352707[_0x228f('0x5d')])?undefined:_0x352707['fax'],'AttachmentId':_0x352707[_0x228f('0x89')]},client9002);})[_0x228f('0x21')](respondWithResult(_0x441cec,0xc9))[_0x228f('0x53')](handleError(_0x441cec,null));};exports[_0x228f('0x8d')]=function(_0x1a0896,_0x5e0dda){var _0x4593f7=path[_0x228f('0x8e')](config[_0x228f('0x8f')],_0x228f('0x90'),_0x228f('0x91'),'attachments');return db[_0x228f('0x4f')][_0x228f('0x57')]({'where':{'id':_0x1a0896[_0x228f('0x59')]['id']},'include':[{'model':db[_0x228f('0x88')],'as':_0x228f('0x88')}]})[_0x228f('0x21')](handleEntityNotFound(_0x5e0dda,null))[_0x228f('0x21')](function(_0x29cf4c){if(_0x29cf4c){return _0x5e0dda[_0x228f('0x8d')](path['join'](_0x4593f7,_0x29cf4c[_0x228f('0x88')][_0x228f('0x8c')]));}})[_0x228f('0x53')](handleError(_0x5e0dda,null));};
\ No newline at end of file
+var _0x122e=['code','FaxMessage,\x20%s,\x20%s','message','info','result','catch','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','stack','name','send','map','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','length','sort','where','pick','merge','VIRTUAL','filter','options','FaxMessage','includeAll','include','findAll','rows','params','find','body','destroy','describe','accept','fax','read','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','FaxInteraction','FaxInteractionId','isNil','read1stAt','interaction','get','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','Sequelize','QueryTypes','SELECT','User','fullname','internal','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','RejectMessage','rejectMessage','sequelize','contact','email','rejectmessage','create','Attachment','findOne','SendFax','FaxAccountId','AttachmentId','download','join','root','server','attachments','basename','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','redis','localhost','register','client','http','then','request\x20sent','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x5eb39e,_0x4bac19){var _0x401f5e=function(_0x1c6225){while(--_0x1c6225){_0x5eb39e['push'](_0x5eb39e['shift']());}};_0x401f5e(++_0x4bac19);}(_0x122e,0x178));var _0xe122=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x122e[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0xe122('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe122('0x1'));var jsonpatch=require(_0xe122('0x2'));var rp=require(_0xe122('0x3'));var moment=require(_0xe122('0x4'));var BPromise=require(_0xe122('0x5'));var Mustache=require('mustache');var util=require(_0xe122('0x6'));var path=require(_0xe122('0x7'));var sox=require(_0xe122('0x8'));var csv=require('to-csv');var ejs=require(_0xe122('0x9'));var fs=require('fs');var fs_extra=require(_0xe122('0xa'));var _=require('lodash');var squel=require(_0xe122('0xb'));var crypto=require(_0xe122('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xe122('0xd'));var toCsv=require(_0xe122('0xe'));var querystring=require(_0xe122('0xf'));var Papa=require(_0xe122('0x10'));var Redis=require(_0xe122('0x11'));var authService=require(_0xe122('0x12'));var qs=require(_0xe122('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe122('0x14'));var logger=require(_0xe122('0x15'))(_0xe122('0x16'));var utils=require(_0xe122('0x17'));var config=require(_0xe122('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xe122('0x19')]=_['defaults'](config[_0xe122('0x19')],{'host':_0xe122('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./faxMessage.socket')[_0xe122('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0xe122('0x1c')][_0xe122('0x1d')]({'port':0x232c});var client9002=jayson['client'][_0xe122('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x4850dd,_0x20984b,_0x466e73,_0x3dc61b){return new BPromise(function(_0x33a589,_0x5b5641){var _0x250796=_0x3dc61b||client;return _0x250796['request'](_0x4850dd,_0x466e73)[_0xe122('0x1e')](function(_0x4b8b4f){logger['info']('FaxMessage,\x20%s,\x20%s',_0x20984b,_0xe122('0x1f'));logger['debug'](_0xe122('0x20'),_0x20984b,_0xe122('0x1f'),JSON[_0xe122('0x21')](_0x4b8b4f));if(_0x4b8b4f['error']){if(_0x4b8b4f[_0xe122('0x22')][_0xe122('0x23')]===0x1f4){logger[_0xe122('0x22')]('FaxMessage,\x20%s,\x20%s',_0x20984b,_0x4b8b4f[_0xe122('0x22')]['message']);return _0x5b5641(_0x4b8b4f['error']['message']);}logger[_0xe122('0x22')](_0xe122('0x24'),_0x20984b,_0x4b8b4f['error'][_0xe122('0x25')]);return _0x33a589(_0x4b8b4f[_0xe122('0x22')][_0xe122('0x25')]);}else{logger[_0xe122('0x26')](_0xe122('0x24'),_0x20984b,_0xe122('0x1f'));_0x33a589(_0x4b8b4f[_0xe122('0x27')]['message']);}})[_0xe122('0x28')](function(_0x6dc5d0){logger[_0xe122('0x22')](_0xe122('0x24'),_0x20984b,_0x6dc5d0);_0x5b5641(_0x6dc5d0);});});}function respondWithStatusCode(_0xf8b3ec,_0x2ff45c){_0x2ff45c=_0x2ff45c||0xcc;return function(_0x25a5d3){if(_0x25a5d3){return _0xf8b3ec[_0xe122('0x29')](_0x2ff45c);}return _0xf8b3ec['status'](_0x2ff45c)[_0xe122('0x2a')]();};}function respondWithResult(_0x185760,_0x3ca583){_0x3ca583=_0x3ca583||0xc8;return function(_0x18a7ef){if(_0x18a7ef){return _0x185760[_0xe122('0x2b')](_0x3ca583)[_0xe122('0x2c')](_0x18a7ef);}};}function respondWithFilteredResult(_0x14febb,_0x6f51d3){return function(_0x22ebf8){if(_0x22ebf8){var _0x1b9cd6=typeof _0x6f51d3[_0xe122('0x2d')]==='undefined'&&typeof _0x6f51d3['limit']===_0xe122('0x2e');var _0x51a769=_0x22ebf8[_0xe122('0x2f')];var _0x5a3b02=_0x1b9cd6?0x0:_0x6f51d3[_0xe122('0x2d')];var _0x48f873=_0x1b9cd6?_0x22ebf8['count']:_0x6f51d3[_0xe122('0x2d')]+_0x6f51d3[_0xe122('0x30')];var _0x49a918;if(_0x48f873>=_0x51a769){_0x48f873=_0x51a769;_0x49a918=0xc8;}else{_0x49a918=0xce;}_0x14febb[_0xe122('0x2b')](_0x49a918);return _0x14febb[_0xe122('0x31')](_0xe122('0x32'),_0x5a3b02+'-'+_0x48f873+'/'+_0x51a769)['json'](_0x22ebf8);}return null;};}function patchUpdates(_0x38ac67){return function(_0x3ba407){try{jsonpatch[_0xe122('0x33')](_0x3ba407,_0x38ac67,!![]);}catch(_0x396179){return BPromise[_0xe122('0x34')](_0x396179);}return _0x3ba407[_0xe122('0x35')]();};}function saveUpdates(_0x3a7848,_0xfe024a){return function(_0x32a92a){if(_0x32a92a){return _0x32a92a[_0xe122('0x36')](_0x3a7848)[_0xe122('0x1e')](function(_0x5861b1){return _0x5861b1;});}return null;};}function removeEntity(_0x11081b,_0x31be88){return function(_0x455211){if(_0x455211){return _0x455211['destroy']()[_0xe122('0x1e')](function(){_0x11081b[_0xe122('0x2b')](0xcc)[_0xe122('0x2a')]();});}};}function handleEntityNotFound(_0xbe1b0a,_0x25ed56){return function(_0x463957){if(!_0x463957){_0xbe1b0a[_0xe122('0x29')](0x194);}return _0x463957;};}function handleError(_0x329add,_0x105e72){_0x105e72=_0x105e72||0x1f4;return function(_0x523969){logger[_0xe122('0x22')](_0x523969[_0xe122('0x37')]);if(_0x523969[_0xe122('0x38')]){delete _0x523969[_0xe122('0x38')];}_0x329add[_0xe122('0x2b')](_0x105e72)[_0xe122('0x39')](_0x523969);};}exports['index']=function(_0x51576b,_0x58c793){var _0xb66824={},_0x330214={},_0x4f7f49={'count':0x0,'rows':[]};var _0x491149=_[_0xe122('0x3a')](db['FaxMessage'][_0xe122('0x3b')],function(_0x2ee129){return{'name':_0x2ee129['fieldName'],'type':_0x2ee129[_0xe122('0x3c')]['key']};});_0x330214[_0xe122('0x3d')]=_[_0xe122('0x3a')](_0x491149,_0xe122('0x38'));_0x330214[_0xe122('0x3e')]=_[_0xe122('0x3f')](_0x51576b[_0xe122('0x3e')]);_0x330214[_0xe122('0x40')]=_[_0xe122('0x41')](_0x330214[_0xe122('0x3d')],_0x330214['query']);_0xb66824[_0xe122('0x42')]=_['intersection'](_0x330214[_0xe122('0x3d')],qs[_0xe122('0x43')](_0x51576b[_0xe122('0x3e')][_0xe122('0x43')]));_0xb66824['attributes']=_0xb66824['attributes'][_0xe122('0x44')]?_0xb66824[_0xe122('0x42')]:_0x330214[_0xe122('0x3d')];if(!_0x51576b[_0xe122('0x3e')]['hasOwnProperty']('nolimit')){_0xb66824[_0xe122('0x30')]=qs[_0xe122('0x30')](_0x51576b[_0xe122('0x3e')][_0xe122('0x30')]);_0xb66824[_0xe122('0x2d')]=qs[_0xe122('0x2d')](_0x51576b[_0xe122('0x3e')]['offset']);}_0xb66824['order']=qs[_0xe122('0x45')](_0x51576b[_0xe122('0x3e')]['sort']);_0xb66824[_0xe122('0x46')]=qs[_0xe122('0x40')](_[_0xe122('0x47')](_0x51576b[_0xe122('0x3e')],_0x330214[_0xe122('0x40')]),_0x491149);if(_0x51576b[_0xe122('0x3e')]['filter']){_0xb66824[_0xe122('0x46')]=_[_0xe122('0x48')](_0xb66824[_0xe122('0x46')],{'$or':_['map'](_0x491149,function(_0x1decf5){if(_0x1decf5[_0xe122('0x3c')]!==_0xe122('0x49')){var _0x4f85be={};_0x4f85be[_0x1decf5['name']]={'$like':'%'+_0x51576b[_0xe122('0x3e')][_0xe122('0x4a')]+'%'};return _0x4f85be;}})});}_0xb66824=_[_0xe122('0x48')]({},_0xb66824,_0x51576b[_0xe122('0x4b')]);var _0x282abf={'where':_0xb66824[_0xe122('0x46')]};return db[_0xe122('0x4c')][_0xe122('0x2f')](_0x282abf)[_0xe122('0x1e')](function(_0x1013d2){_0x4f7f49[_0xe122('0x2f')]=_0x1013d2;if(_0x51576b[_0xe122('0x3e')][_0xe122('0x4d')]){_0xb66824[_0xe122('0x4e')]=[{'all':!![]}];}return db[_0xe122('0x4c')][_0xe122('0x4f')](_0xb66824);})[_0xe122('0x1e')](function(_0x3e9add){_0x4f7f49[_0xe122('0x50')]=_0x3e9add;return _0x4f7f49;})['then'](respondWithFilteredResult(_0x58c793,_0xb66824))[_0xe122('0x28')](handleError(_0x58c793,null));};exports['show']=function(_0x3c22f6,_0x93deb4){var _0x3e29d7={'raw':!![],'where':{'id':_0x3c22f6[_0xe122('0x51')]['id']}},_0x11d0aa={};_0x11d0aa[_0xe122('0x3d')]=_[_0xe122('0x3f')](db[_0xe122('0x4c')][_0xe122('0x3b')]);_0x11d0aa[_0xe122('0x3e')]=_[_0xe122('0x3f')](_0x3c22f6[_0xe122('0x3e')]);_0x11d0aa[_0xe122('0x40')]=_[_0xe122('0x41')](_0x11d0aa[_0xe122('0x3d')],_0x11d0aa['query']);_0x3e29d7['attributes']=_[_0xe122('0x41')](_0x11d0aa[_0xe122('0x3d')],qs[_0xe122('0x43')](_0x3c22f6[_0xe122('0x3e')][_0xe122('0x43')]));_0x3e29d7[_0xe122('0x42')]=_0x3e29d7['attributes']['length']?_0x3e29d7['attributes']:_0x11d0aa['model'];if(_0x3c22f6[_0xe122('0x3e')][_0xe122('0x4d')]){_0x3e29d7[_0xe122('0x4e')]=[{'all':!![]}];}_0x3e29d7=_[_0xe122('0x48')]({},_0x3e29d7,_0x3c22f6[_0xe122('0x4b')]);return db[_0xe122('0x4c')][_0xe122('0x52')](_0x3e29d7)[_0xe122('0x1e')](handleEntityNotFound(_0x93deb4,null))[_0xe122('0x1e')](respondWithResult(_0x93deb4,null))['catch'](handleError(_0x93deb4,null));};exports[_0xe122('0x36')]=function(_0x5c3496,_0x470b23){if(_0x5c3496['body']['id']){delete _0x5c3496['body']['id'];}return db['FaxMessage'][_0xe122('0x52')]({'where':{'id':_0x5c3496[_0xe122('0x51')]['id']}})['then'](handleEntityNotFound(_0x470b23,null))[_0xe122('0x1e')](saveUpdates(_0x5c3496[_0xe122('0x53')],null))[_0xe122('0x1e')](respondWithResult(_0x470b23,null))[_0xe122('0x28')](handleError(_0x470b23,null));};exports[_0xe122('0x54')]=function(_0x430e67,_0x32b502){return db[_0xe122('0x4c')][_0xe122('0x52')]({'where':{'id':_0x430e67['params']['id']}})[_0xe122('0x1e')](handleEntityNotFound(_0x32b502,null))[_0xe122('0x1e')](removeEntity(_0x32b502,null))['catch'](handleError(_0x32b502,null));};exports[_0xe122('0x55')]=function(_0x8e09b7,_0x3c4440){return db[_0xe122('0x4c')][_0xe122('0x55')]()['then'](respondWithResult(_0x3c4440,null))[_0xe122('0x28')](handleError(_0x3c4440,null));};var interaction_log=require(_0xe122('0x15'))('fax-interactions');exports[_0xe122('0x56')]=function(_0x102ea1,_0x3826ea,_0x187897){var _0x4f579f={'agent':{},'channel':_0xe122('0x57')};if(_0x102ea1[_0xe122('0x53')]['id']){delete _0x102ea1[_0xe122('0x53')]['id'];}_0x102ea1['body'][_0xe122('0x58')]=!![];_0x102ea1[_0xe122('0x53')]['readAt']=moment()[_0xe122('0x59')](_0xe122('0x5a'));_0x102ea1[_0xe122('0x53')][_0xe122('0x5b')]=_0x102ea1['body'][_0xe122('0x5b')]||_0x102ea1[_0xe122('0x5c')]['id'];_0x4f579f[_0xe122('0x5d')]['id']=_0x102ea1['body'][_0xe122('0x5b')];return db['FaxMessage'][_0xe122('0x52')]({'where':{'id':_0x102ea1[_0xe122('0x51')]['id'],'UserId':null}})[_0xe122('0x1e')](handleEntityNotFound(_0x3826ea,null))['then'](saveUpdates(_0x102ea1[_0xe122('0x53')],null))['then'](function(_0x2b0956){if(_0x2b0956){_0x4f579f[_0xe122('0x25')]=_0x2b0956['get']({'plain':!![]});return db[_0xe122('0x5e')][_0xe122('0x52')]({'where':{'id':_0x2b0956[_0xe122('0x5f')]}});}return null;})[_0xe122('0x1e')](handleEntityNotFound(_0x3826ea,null))[_0xe122('0x1e')](function(_0x4054bd){if(_0x4054bd){return _0x4054bd[_0xe122('0x36')]({'UserId':_0x102ea1[_0xe122('0x53')]['UserId'],'read1stAt':_[_0xe122('0x60')](_0x4054bd[_0xe122('0x61')])?moment()[_0xe122('0x59')](_0xe122('0x5a')):undefined});}return null;})[_0xe122('0x1e')](function(_0x688835){if(_0x688835){_0x4f579f[_0xe122('0x62')]=_0x688835[_0xe122('0x63')]({'plain':!![]});interaction_log['info'](_0xe122('0x64'),_0x102ea1[_0xe122('0x5c')]['id'],_0x102ea1['user'][_0xe122('0x38')],_0x102ea1['user'][_0xe122('0x65')],_0x4f579f[_0xe122('0x62')]['id'],_0x102ea1[_0xe122('0x53')]?JSON[_0xe122('0x21')](_0x102ea1[_0xe122('0x53')]):_0xe122('0x66'));return respondWithRpcPromise('AcceptMessage',_0xe122('0x67'),_0x4f579f);}return null;})[_0xe122('0x1e')](function(_0x2a44e2){var _0x3025ef=_0xe122('0x68')+_0x2a44e2['message'][_0xe122('0x69')];return db['sequelize'][_0xe122('0x3e')](_0x3025ef,{'type':db[_0xe122('0x6a')][_0xe122('0x6b')][_0xe122('0x6c')],'raw':!![]})[_0xe122('0x1e')](function(_0x55abf9){return _0x55abf9;});})[_0xe122('0x1e')](function(_0xcf622f){if(_0xcf622f){_0x4f579f[_0xe122('0x25')]['contact']=_0xcf622f[0x0];if(!_0x102ea1[_0xe122('0x53')][_0xe122('0x5b')])return;return db[_0xe122('0x6d')][_0xe122('0x52')]({'where':{'id':_0x102ea1[_0xe122('0x53')]['UserId'],'role':_0xe122('0x5d')},'attributes':['id',_0xe122('0x38'),_0xe122('0x6e'),'email',_0xe122('0x6f')],'raw':!![]});}return null;})[_0xe122('0x1e')](function(_0x4d8f93){if(!_0x4d8f93)return null;_0x4f579f[_0xe122('0x25')][_0xe122('0x5d')]=_0x4d8f93;return _0x4f579f;})['then'](function(_0x297ed5){if(_0x297ed5){if(_0x102ea1[_0xe122('0x53')][_0xe122('0x70')]){_0x4f579f[_0xe122('0x25')][_0xe122('0x71')]=util[_0xe122('0x59')](_0xe122('0x72'),_0x102ea1[_0xe122('0x5c')][_0xe122('0x38')]);_0x4f579f[_0xe122('0x25')][_0xe122('0x73')]=_0x4f579f['channel'];_0x4f579f['message'][_0xe122('0x74')]=_0xe122('0x56');return respondWithRpcPromise(_0xe122('0x75'),_0xe122('0x75'),{'event':_0xe122('0x76'),'message':_0x4f579f[_0xe122('0x25')]},client9002)[_0xe122('0x1e')](function(){return _0x4f579f;});}return _0x4f579f;}return null;})['then'](respondWithResult(_0x3826ea,null))[_0xe122('0x28')](handleError(_0x3826ea,null));};var interaction_log=require(_0xe122('0x15'))('fax-interactions');exports['reject']=function(_0x344127,_0x24fb05,_0x51b888){var _0x1c1805={'agent':{},'channel':_0xe122('0x57')};if(_0x344127[_0xe122('0x53')]['id']){delete _0x344127[_0xe122('0x53')]['id'];}_0x344127['body'][_0xe122('0x5b')]=_0x344127[_0xe122('0x53')][_0xe122('0x5b')]||_0x344127[_0xe122('0x5c')]['id'];_0x1c1805[_0xe122('0x5d')]['id']=_0x344127['body'][_0xe122('0x5b')];return db[_0xe122('0x4c')][_0xe122('0x52')]({'where':{'id':_0x344127[_0xe122('0x51')]['id'],'UserId':null}})[_0xe122('0x1e')](handleEntityNotFound(_0x24fb05,null))[_0xe122('0x1e')](function(_0x4843c2){if(_0x4843c2){_0x1c1805[_0xe122('0x25')]=_0x4843c2[_0xe122('0x63')]({'plain':!![]});return db[_0xe122('0x5e')][_0xe122('0x52')]({'where':{'id':_0x4843c2[_0xe122('0x5f')]}});}return null;})[_0xe122('0x1e')](handleEntityNotFound(_0x24fb05,null))[_0xe122('0x1e')](function(_0x11c329){if(_0x11c329){_0x1c1805[_0xe122('0x62')]=_0x11c329[_0xe122('0x63')]({'plain':!![]});interaction_log[_0xe122('0x26')]('[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x344127['user']['id'],_0x344127['user'][_0xe122('0x38')],_0x344127[_0xe122('0x5c')][_0xe122('0x65')],_0x1c1805['interaction']['id'],_0x344127[_0xe122('0x53')]?JSON[_0xe122('0x21')](_0x344127['body']):_0xe122('0x66'));return respondWithRpcPromise(_0xe122('0x77'),_0xe122('0x78'),_0x1c1805);}return null;})[_0xe122('0x1e')](function(_0x2ed8a8){var _0x2f01c1=_0xe122('0x68')+_0x2ed8a8['message'][_0xe122('0x69')];return db[_0xe122('0x79')][_0xe122('0x3e')](_0x2f01c1,{'type':db[_0xe122('0x6a')]['QueryTypes']['SELECT'],'raw':!![]})[_0xe122('0x1e')](function(_0x504758){return _0x504758;});})[_0xe122('0x1e')](function(_0x398061){if(_0x398061){_0x1c1805[_0xe122('0x25')][_0xe122('0x7a')]=_0x398061[0x0];if(!_0x344127[_0xe122('0x53')][_0xe122('0x5b')])return;return db[_0xe122('0x6d')][_0xe122('0x52')]({'where':{'id':_0x344127[_0xe122('0x53')][_0xe122('0x5b')],'role':_0xe122('0x5d')},'attributes':['id','name',_0xe122('0x6e'),_0xe122('0x7b'),_0xe122('0x6f')],'raw':!![]});}return null;})['then'](function(_0xba2473){if(!_0xba2473)return null;_0x1c1805[_0xe122('0x25')]['agent']=_0xba2473;return _0x1c1805;})['then'](function(_0x35941f){if(_0x35941f){_0x35941f['message'][_0xe122('0x71')]=util[_0xe122('0x59')]('SIP/%s',_0x344127[_0xe122('0x5c')][_0xe122('0x38')]);_0x35941f[_0xe122('0x25')][_0xe122('0x73')]=_0x1c1805[_0xe122('0x73')];_0x35941f[_0xe122('0x25')]['event']='reject';respondWithRpcPromise('EventManager',_0xe122('0x75'),{'event':_0xe122('0x7c'),'message':_0x35941f[_0xe122('0x25')]},client9002);return _0x1c1805;}return null;})['then'](respondWithResult(_0x24fb05,null))['catch'](handleError(_0x24fb05,null));};exports[_0xe122('0x7d')]=function(_0x58aa95,_0x5186fa){var _0x3fdc6f;return db[_0xe122('0x4c')][_0xe122('0x7d')](_0x58aa95[_0xe122('0x53')],{})[_0xe122('0x1e')](function(_0x1c75a3){_0x3fdc6f=_0x1c75a3;return db['CmContact']['findOne']({'where':{'id':_0x3fdc6f[_0xe122('0x69')]}});})[_0xe122('0x1e')](function(_0xd0a3d7){if(_[_0xe122('0x60')](_0xd0a3d7)){return;}else{_0x3fdc6f[_0xe122('0x57')]=_0xd0a3d7[_0xe122('0x57')];return db[_0xe122('0x7e')][_0xe122('0x7f')]({'where':{'id':_0x3fdc6f['AttachmentId']}});}})[_0xe122('0x1e')](function(_0x560e36){return respondWithRpcPromise(_0xe122('0x80'),'SendFax',{'FaxAccountId':_['isNil'](_0x58aa95[_0xe122('0x53')])?undefined:_0x58aa95[_0xe122('0x53')][_0xe122('0x81')],'path':_[_0xe122('0x60')](_0x560e36)?undefined:util['format']('/var/opt/motion2/server/files/attachments/%s',_0x560e36['basename']),'fax':_[_0xe122('0x60')](_0x3fdc6f['fax'])?undefined:_0x3fdc6f[_0xe122('0x57')],'AttachmentId':_0x3fdc6f[_0xe122('0x82')]},client9002);})['then'](respondWithResult(_0x5186fa,0xc9))[_0xe122('0x28')](handleError(_0x5186fa,null));};exports[_0xe122('0x83')]=function(_0x3635b6,_0x269102){var _0x19ab90=path[_0xe122('0x84')](config[_0xe122('0x85')],_0xe122('0x86'),'files',_0xe122('0x87'));return db['FaxMessage'][_0xe122('0x52')]({'where':{'id':_0x3635b6[_0xe122('0x51')]['id']},'include':[{'model':db[_0xe122('0x7e')],'as':_0xe122('0x7e')}]})['then'](handleEntityNotFound(_0x269102,null))['then'](function(_0x57510d){if(_0x57510d){return _0x269102[_0xe122('0x83')](path[_0xe122('0x84')](_0x19ab90,_0x57510d[_0xe122('0x7e')][_0xe122('0x88')]));}})['catch'](handleError(_0x269102,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea1c=['setMaxListeners','save','update','emit','hasOwnProperty','hook','exports','FaxMessage'];(function(_0x30cc4d,_0x29b411){var _0x499629=function(_0x3b8570){while(--_0x3b8570){_0x30cc4d['push'](_0x30cc4d['shift']());}};_0x499629(++_0x29b411);}(_0xea1c,0x117));var _0xcea1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xea1c[_0x3dd15e];return _0x231fd0;};'use strict';var EventEmitter=require('events');var FaxMessage=require('../../mysqldb')['db'][_0xcea1('0x0')];var FaxMessageEvents=new EventEmitter();FaxMessageEvents[_0xcea1('0x1')](0x0);var events={'afterCreate':_0xcea1('0x2'),'afterUpdate':_0xcea1('0x3'),'afterDestroy':'remove'};function emitEvent(_0x1930dd){return function(_0x377ab8,_0xb835ce,_0xaad3f2){FaxMessageEvents[_0xcea1('0x4')](_0x1930dd+':'+_0x377ab8['id'],_0x377ab8);FaxMessageEvents[_0xcea1('0x4')](_0x1930dd,_0x377ab8);_0xaad3f2(null);};}for(var e in events){if(events[_0xcea1('0x5')](e)){var event=events[e];FaxMessage[_0xcea1('0x6')](e,emitEvent(event));}}module[_0xcea1('0x7')]=FaxMessageEvents;
\ No newline at end of file
+var _0x9303=['events','setMaxListeners','update','emit','hasOwnProperty'];(function(_0x34e106,_0x91d313){var _0x23a796=function(_0x288d36){while(--_0x288d36){_0x34e106['push'](_0x34e106['shift']());}};_0x23a796(++_0x91d313);}(_0x9303,0xd7));var _0x3930=function(_0x5cd675,_0x352cca){_0x5cd675=_0x5cd675-0x0;var _0x2379b0=_0x9303[_0x5cd675];return _0x2379b0;};'use strict';var EventEmitter=require(_0x3930('0x0'));var FaxMessage=require('../../mysqldb')['db']['FaxMessage'];var FaxMessageEvents=new EventEmitter();FaxMessageEvents[_0x3930('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0x3930('0x2'),'afterDestroy':'remove'};function emitEvent(_0x4fd19e){return function(_0x3e9314,_0x2dddd0,_0x1fb17){FaxMessageEvents[_0x3930('0x3')](_0x4fd19e+':'+_0x3e9314['id'],_0x3e9314);FaxMessageEvents['emit'](_0x4fd19e,_0x3e9314);_0x1fb17(null);};}for(var e in events){if(events[_0x3930('0x4')](e)){var event=events[e];FaxMessage['hook'](e,emitEvent(event));}}module['exports']=FaxMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8775=['fti_fax_messages','models','get','direction','toLowerCase','out','secret','UserId','FaxInteraction','FaxInteractionId','update','error','utf8mb4','utf8mb4_unicode_ci','lodash','api','bluebird','path','rimraf','../../config/environment','./faxMessage.attributes','exports','define','FaxMessage','fax_messages'];(function(_0xec510e,_0x3d2547){var _0x2f4254=function(_0x39f5ca){while(--_0x39f5ca){_0xec510e['push'](_0xec510e['shift']());}};_0x2f4254(++_0x3d2547);}(_0x8775,0xef));var _0x5877=function(_0x5f309e,_0x66e31){_0x5f309e=_0x5f309e-0x0;var _0x487b5e=_0x8775[_0x5f309e];return _0x487b5e;};'use strict';var _=require(_0x5877('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x5877('0x1'));var moment=require('moment');var BPromise=require(_0x5877('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x5877('0x3'));var rimraf=require(_0x5877('0x4'));var config=require(_0x5877('0x5'));var attributes=require(_0x5877('0x6'));module[_0x5877('0x7')]=function(_0x5ba016,_0x5a5da0){return _0x5ba016[_0x5877('0x8')](_0x5877('0x9'),attributes,{'tableName':_0x5877('0xa'),'paranoid':![],'indexes':[{'name':_0x5877('0xb'),'fields':['body'],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x5cf367,_0x1006d6,_0x1deb02){var _0x470a85=_0x5ba016[_0x5877('0xc')];var _0x4f2439=_0x5cf367[_0x5877('0xd')]({'plain':!![]});if(_0x4f2439[_0x5877('0xe')][_0x5877('0xf')]()==='in'||_0x4f2439['direction'][_0x5877('0xf')]()===_0x5877('0x10')&&!_0x4f2439[_0x5877('0x11')]&&!_['isNil'](_0x4f2439[_0x5877('0x12')])){_0x470a85[_0x5877('0x13')]['findOne']({'where':{'id':_0x4f2439[_0x5877('0x14')]}})['then'](function(_0x58241b){if(_0x58241b){_0x58241b[_0x5877('0x15')]({'lastMsgAt':_0x4f2439['createdAt'],'lastMsgDirection':_0x4f2439[_0x5877('0xe')][_0x5877('0xf')]()});}})['catch'](function(_0x585f6f){console[_0x5877('0x16')](_0x585f6f);});}_0x1deb02();}},'charset':_0x5877('0x17'),'collate':_0x5877('0x18')});};
\ No newline at end of file
+var _0x9c70=['utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','moment','bluebird','request-promise','rimraf','define','FaxMessage','fti_fax_messages','FULLTEXT','direction','toLowerCase','out','isNil','UserId','FaxInteraction','findOne','update','createdAt','error'];(function(_0x509131,_0x5c1fd3){var _0x2c1d66=function(_0xb12ec6){while(--_0xb12ec6){_0x509131['push'](_0x509131['shift']());}};_0x2c1d66(++_0x5c1fd3);}(_0x9c70,0x136));var _0x09c7=function(_0x463934,_0x1e38ec){_0x463934=_0x463934-0x0;var _0x44c1a2=_0x9c70[_0x463934];return _0x44c1a2;};'use strict';var _=require(_0x09c7('0x0'));var util=require('util');var logger=require(_0x09c7('0x1'))('api');var moment=require(_0x09c7('0x2'));var BPromise=require(_0x09c7('0x3'));var rp=require(_0x09c7('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x09c7('0x5'));var config=require('../../config/environment');var attributes=require('./faxMessage.attributes');module['exports']=function(_0x371c81,_0x427fe9){return _0x371c81[_0x09c7('0x6')](_0x09c7('0x7'),attributes,{'tableName':'fax_messages','paranoid':![],'indexes':[{'name':_0x09c7('0x8'),'fields':['body'],'type':_0x09c7('0x9')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3c1b52,_0x11f30f,_0x15b624){var _0x249a81=_0x371c81['models'];var _0x25db3c=_0x3c1b52['get']({'plain':!![]});if(_0x25db3c[_0x09c7('0xa')]['toLowerCase']()==='in'||_0x25db3c[_0x09c7('0xa')][_0x09c7('0xb')]()===_0x09c7('0xc')&&!_0x25db3c['secret']&&!_[_0x09c7('0xd')](_0x25db3c[_0x09c7('0xe')])){_0x249a81[_0x09c7('0xf')][_0x09c7('0x10')]({'where':{'id':_0x25db3c['FaxInteractionId']}})['then'](function(_0x59a90e){if(_0x59a90e){_0x59a90e[_0x09c7('0x11')]({'lastMsgAt':_0x25db3c[_0x09c7('0x12')],'lastMsgDirection':_0x25db3c[_0x09c7('0xa')]['toLowerCase']()});}})['catch'](function(_0x215d46){console[_0x09c7('0x13')](_0x215d46);});}_0x15b624();}},'charset':_0x09c7('0x14'),'collate':_0x09c7('0x15')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa8a8=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','request','then','FaxMessage,\x20%s,\x20%s','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','FaxMessage','create','body','options','raw','CreateFaxMessage','UpdateFaxMessage','where','attributes','limit','lodash','util','moment','bluebird'];(function(_0x2aec52,_0x59d962){var _0x3b8835=function(_0x3e2604){while(--_0x3e2604){_0x2aec52['push'](_0x2aec52['shift']());}};_0x3b8835(++_0x59d962);}(_0xa8a8,0xec));var _0x8a8a=function(_0x3431d8,_0x494a9a){_0x3431d8=_0x3431d8-0x0;var _0x5963de=_0xa8a8[_0x3431d8];return _0x5963de;};'use strict';var _=require(_0x8a8a('0x0'));var util=require(_0x8a8a('0x1'));var moment=require(_0x8a8a('0x2'));var BPromise=require(_0x8a8a('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8a8a('0x4'));var db=require(_0x8a8a('0x5'))['db'];var utils=require(_0x8a8a('0x6'));var logger=require(_0x8a8a('0x7'))(_0x8a8a('0x8'));var config=require(_0x8a8a('0x9'));var jayson=require(_0x8a8a('0xa'));var client=jayson[_0x8a8a('0xb')][_0x8a8a('0xc')]({'port':0x232a});config[_0x8a8a('0xd')]=_[_0x8a8a('0xe')](config[_0x8a8a('0xd')],{'host':_0x8a8a('0xf'),'port':0x18eb});var socket=require(_0x8a8a('0x10'))(new Redis(config[_0x8a8a('0xd')]));require('./faxMessage.socket')['register'](socket);function respondWithRpcPromise(_0x3c01cd,_0x497b8a,_0x11788d){return new BPromise(function(_0x3d3a00,_0x532621){return client[_0x8a8a('0x11')](_0x3c01cd,_0x11788d)[_0x8a8a('0x12')](function(_0xb13fca){logger['info'](_0x8a8a('0x13'),_0x497b8a,_0x8a8a('0x14'));logger[_0x8a8a('0x15')](_0x8a8a('0x16'),_0x497b8a,'request\x20sent',JSON[_0x8a8a('0x17')](_0xb13fca));if(_0xb13fca['error']){if(_0xb13fca[_0x8a8a('0x18')][_0x8a8a('0x19')]===0x1f4){logger[_0x8a8a('0x18')](_0x8a8a('0x13'),_0x497b8a,_0xb13fca[_0x8a8a('0x18')][_0x8a8a('0x1a')]);return _0x532621(_0xb13fca[_0x8a8a('0x18')]['message']);}logger[_0x8a8a('0x18')]('FaxMessage,\x20%s,\x20%s',_0x497b8a,_0xb13fca[_0x8a8a('0x18')][_0x8a8a('0x1a')]);return _0x3d3a00(_0xb13fca[_0x8a8a('0x18')][_0x8a8a('0x1a')]);}else{logger[_0x8a8a('0x1b')]('FaxMessage,\x20%s,\x20%s',_0x497b8a,_0x8a8a('0x14'));_0x3d3a00(_0xb13fca[_0x8a8a('0x1c')][_0x8a8a('0x1a')]);}})[_0x8a8a('0x1d')](function(_0x299827){logger[_0x8a8a('0x18')]('FaxMessage,\x20%s,\x20%s',_0x497b8a,_0x299827);_0x532621(_0x299827);});});}exports['CreateFaxMessage']=function(_0x5181b2){var _0x4e3d0a=this;return new Promise(function(_0x4a6601,_0x3a9b2f){return db[_0x8a8a('0x1e')][_0x8a8a('0x1f')](_0x5181b2[_0x8a8a('0x20')],{'raw':_0x5181b2[_0x8a8a('0x21')]?_0x5181b2[_0x8a8a('0x21')][_0x8a8a('0x22')]===undefined?!![]:![]:!![]})[_0x8a8a('0x12')](function(_0x25d5d4){logger[_0x8a8a('0x1b')](_0x8a8a('0x23'),_0x5181b2);logger[_0x8a8a('0x15')](_0x8a8a('0x23'),_0x5181b2,JSON[_0x8a8a('0x17')](_0x25d5d4));_0x4a6601(_0x25d5d4);})[_0x8a8a('0x1d')](function(_0x545a38){logger[_0x8a8a('0x18')](_0x8a8a('0x23'),_0x545a38[_0x8a8a('0x1a')],_0x5181b2);_0x3a9b2f(_0x4e3d0a[_0x8a8a('0x18')](0x1f4,_0x545a38[_0x8a8a('0x1a')]));});});};exports[_0x8a8a('0x24')]=function(_0x3aa46d){var _0x5f4dcc=this;return new Promise(function(_0x31d21a,_0x38c1e0){return db[_0x8a8a('0x1e')]['update'](_0x3aa46d['body'],{'raw':_0x3aa46d[_0x8a8a('0x21')]?_0x3aa46d[_0x8a8a('0x21')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3aa46d['options']?_0x3aa46d['options'][_0x8a8a('0x25')]||null:null,'attributes':_0x3aa46d['options']?_0x3aa46d[_0x8a8a('0x21')][_0x8a8a('0x26')]||null:null,'limit':_0x3aa46d['options']?_0x3aa46d[_0x8a8a('0x21')][_0x8a8a('0x27')]||null:null})[_0x8a8a('0x12')](function(_0x8df0cb){logger[_0x8a8a('0x1b')](_0x8a8a('0x24'),_0x3aa46d);logger[_0x8a8a('0x15')](_0x8a8a('0x24'),_0x3aa46d,JSON['stringify'](_0x8df0cb));_0x31d21a(_0x8df0cb);})['catch'](function(_0x56e79e){logger[_0x8a8a('0x18')](_0x8a8a('0x24'),_0x56e79e['message'],_0x3aa46d);_0x38c1e0(_0x5f4dcc[_0x8a8a('0x18')](0x1f4,_0x56e79e[_0x8a8a('0x1a')]));});});};
\ No newline at end of file
+var _0x70e0=['FaxMessage,\x20%s,\x20%s','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','error','message','result','CreateFaxMessage','FaxMessage','create','body','options','stringify','catch','update','raw','where','limit','UpdateFaxMessage','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','redis','localhost','socket.io-emitter','./faxMessage.socket','register','request','then','info'];(function(_0x3c7f1d,_0x44b37b){var _0xd7ab0c=function(_0x1dd6b2){while(--_0x1dd6b2){_0x3c7f1d['push'](_0x3c7f1d['shift']());}};_0xd7ab0c(++_0x44b37b);}(_0x70e0,0x17b));var _0x070e=function(_0x1ada1c,_0x4bc917){_0x1ada1c=_0x1ada1c-0x0;var _0x3baac4=_0x70e0[_0x1ada1c];return _0x3baac4;};'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});config['redis']=_['defaults'](config[_0x070e('0x9')],{'host':_0x070e('0xa'),'port':0x18eb});var socket=require(_0x070e('0xb'))(new Redis(config[_0x070e('0x9')]));require(_0x070e('0xc'))[_0x070e('0xd')](socket);function respondWithRpcPromise(_0x11ffa8,_0x4e99e6,_0x49b2fb){return new BPromise(function(_0x50f4eb,_0x2e3e5e){return client[_0x070e('0xe')](_0x11ffa8,_0x49b2fb)[_0x070e('0xf')](function(_0xa927a2){logger[_0x070e('0x10')](_0x070e('0x11'),_0x4e99e6,_0x070e('0x12'));logger[_0x070e('0x13')](_0x070e('0x14'),_0x4e99e6,_0x070e('0x12'),JSON['stringify'](_0xa927a2));if(_0xa927a2['error']){if(_0xa927a2[_0x070e('0x15')]['code']===0x1f4){logger['error']('FaxMessage,\x20%s,\x20%s',_0x4e99e6,_0xa927a2[_0x070e('0x15')][_0x070e('0x16')]);return _0x2e3e5e(_0xa927a2['error']['message']);}logger[_0x070e('0x15')](_0x070e('0x11'),_0x4e99e6,_0xa927a2[_0x070e('0x15')][_0x070e('0x16')]);return _0x50f4eb(_0xa927a2['error']['message']);}else{logger[_0x070e('0x10')](_0x070e('0x11'),_0x4e99e6,_0x070e('0x12'));_0x50f4eb(_0xa927a2[_0x070e('0x17')][_0x070e('0x16')]);}})['catch'](function(_0x3938b5){logger[_0x070e('0x15')](_0x070e('0x11'),_0x4e99e6,_0x3938b5);_0x2e3e5e(_0x3938b5);});});}exports[_0x070e('0x18')]=function(_0x259893){var _0x5c16fd=this;return new Promise(function(_0x5b2f48,_0x4e958f){return db[_0x070e('0x19')][_0x070e('0x1a')](_0x259893[_0x070e('0x1b')],{'raw':_0x259893['options']?_0x259893[_0x070e('0x1c')]['raw']===undefined?!![]:![]:!![]})[_0x070e('0xf')](function(_0x3f6985){logger[_0x070e('0x10')](_0x070e('0x18'),_0x259893);logger[_0x070e('0x13')](_0x070e('0x18'),_0x259893,JSON[_0x070e('0x1d')](_0x3f6985));_0x5b2f48(_0x3f6985);})[_0x070e('0x1e')](function(_0x595c7e){logger[_0x070e('0x15')](_0x070e('0x18'),_0x595c7e[_0x070e('0x16')],_0x259893);_0x4e958f(_0x5c16fd['error'](0x1f4,_0x595c7e[_0x070e('0x16')]));});});};exports['UpdateFaxMessage']=function(_0x4a2dbd){var _0x2ccbd7=this;return new Promise(function(_0x25f6e,_0x41deb1){return db[_0x070e('0x19')][_0x070e('0x1f')](_0x4a2dbd['body'],{'raw':_0x4a2dbd[_0x070e('0x1c')]?_0x4a2dbd[_0x070e('0x1c')][_0x070e('0x20')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4a2dbd[_0x070e('0x1c')]?_0x4a2dbd[_0x070e('0x1c')][_0x070e('0x21')]||null:null,'attributes':_0x4a2dbd[_0x070e('0x1c')]?_0x4a2dbd[_0x070e('0x1c')]['attributes']||null:null,'limit':_0x4a2dbd[_0x070e('0x1c')]?_0x4a2dbd[_0x070e('0x1c')][_0x070e('0x22')]||null:null})['then'](function(_0x5c5f0d){logger[_0x070e('0x10')](_0x070e('0x23'),_0x4a2dbd);logger[_0x070e('0x13')]('UpdateFaxMessage',_0x4a2dbd,JSON[_0x070e('0x1d')](_0x5c5f0d));_0x25f6e(_0x5c5f0d);})[_0x070e('0x1e')](function(_0x3a9425){logger[_0x070e('0x15')]('UpdateFaxMessage',_0x3a9425['message'],_0x4a2dbd);_0x41deb1(_0x2ccbd7['error'](0x1f4,_0x3a9425['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1cc2=['length','faxMessage:','./faxMessage.events','remove','update','register'];(function(_0x1ea625,_0x39305d){var _0x2cd948=function(_0x16badf){while(--_0x16badf){_0x1ea625['push'](_0x1ea625['shift']());}};_0x2cd948(++_0x39305d);}(_0x1cc2,0x74));var _0x21cc=function(_0x2ec5d8,_0x1578cd){_0x2ec5d8=_0x2ec5d8-0x0;var _0x36bd25=_0x1cc2[_0x2ec5d8];return _0x36bd25;};'use strict';var FaxMessageEvents=require(_0x21cc('0x0'));var events=['save',_0x21cc('0x1'),_0x21cc('0x2')];function createListener(_0xce2813,_0x12d773){return function(_0x149a14){_0x12d773['emit'](_0xce2813,_0x149a14);};}function removeListener(_0x5829e4,_0x18ea4){return function(){FaxMessageEvents['removeListener'](_0x5829e4,_0x18ea4);};}exports[_0x21cc('0x3')]=function(_0x323eeb){for(var _0x178d54=0x0,_0x15a9f5=events[_0x21cc('0x4')];_0x178d54<_0x15a9f5;_0x178d54++){var _0x561f61=events[_0x178d54];var _0x3e7c63=createListener(_0x21cc('0x5')+_0x561f61,_0x323eeb);FaxMessageEvents['on'](_0x561f61,_0x3e7c63);}};
\ No newline at end of file
+var _0x4c57=['faxMessage:','save','remove','update','removeListener','register','length'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x4c57,0x19e));var _0x74c5=function(_0x220ff3,_0x30214d){_0x220ff3=_0x220ff3-0x0;var _0x158d9a=_0x4c57[_0x220ff3];return _0x158d9a;};'use strict';var FaxMessageEvents=require('./faxMessage.events');var events=[_0x74c5('0x0'),_0x74c5('0x1'),_0x74c5('0x2')];function createListener(_0x412fd7,_0x36cdbe){return function(_0x645c5d){_0x36cdbe['emit'](_0x412fd7,_0x645c5d);};}function removeListener(_0x508de8,_0x2fb4c4){return function(){FaxMessageEvents[_0x74c5('0x3')](_0x508de8,_0x2fb4c4);};}exports[_0x74c5('0x4')]=function(_0x32e7ab){for(var _0x486c9a=0x0,_0x5de69a=events[_0x74c5('0x5')];_0x486c9a<_0x5de69a;_0x486c9a++){var _0x39a216=events[_0x486c9a];var _0x52f6cc=createListener(_0x74c5('0x6')+_0x39a216,_0x32e7ab);FaxMessageEvents['on'](_0x39a216,_0x52f6cc);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ce3=['show','/:id/download','download','post','tracked','fax','faxmessage:create','create','put','update','/:id/accept','/:id/reject','reject','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxMessage.controller','isAuthenticated','index','/describe','describe','/:id'];(function(_0x32b122,_0x1ad490){var _0x4ad25a=function(_0x590ee6){while(--_0x590ee6){_0x32b122['push'](_0x32b122['shift']());}};_0x4ad25a(++_0x1ad490);}(_0x8ce3,0xc3));var _0x38ce=function(_0x1f23b1,_0x57c83f){_0x1f23b1=_0x1f23b1-0x0;var _0x3c9197=_0x8ce3[_0x1f23b1];return _0x3c9197;};'use strict';var multer=require(_0x38ce('0x0'));var util=require(_0x38ce('0x1'));var path=require('path');var timeout=require(_0x38ce('0x2'));var express=require(_0x38ce('0x3'));var router=express[_0x38ce('0x4')]();var fs_extra=require(_0x38ce('0x5'));var auth=require(_0x38ce('0x6'));var interaction=require(_0x38ce('0x7'));var config=require(_0x38ce('0x8'));var controller=require(_0x38ce('0x9'));router['get']('/',auth[_0x38ce('0xa')](),controller[_0x38ce('0xb')]);router['get'](_0x38ce('0xc'),auth[_0x38ce('0xa')](),controller[_0x38ce('0xd')]);router['get'](_0x38ce('0xe'),auth['isAuthenticated'](),controller[_0x38ce('0xf')]);router['get'](_0x38ce('0x10'),auth[_0x38ce('0xa')](),controller[_0x38ce('0x11')]);router[_0x38ce('0x12')]('/',auth[_0x38ce('0xa')](),interaction[_0x38ce('0x13')](_0x38ce('0x14'),_0x38ce('0x15')),controller[_0x38ce('0x16')]);router[_0x38ce('0x17')](_0x38ce('0xe'),auth[_0x38ce('0xa')](),controller[_0x38ce('0x18')]);router[_0x38ce('0x17')](_0x38ce('0x19'),auth[_0x38ce('0xa')](),controller['accept']);router['put'](_0x38ce('0x1a'),auth[_0x38ce('0xa')](),controller[_0x38ce('0x1b')]);router['delete'](_0x38ce('0xe'),auth['isAuthenticated'](),controller[_0x38ce('0x1c')]);module[_0x38ce('0x1d')]=router;
\ No newline at end of file
+var _0x9348=['util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','./faxMessage.controller','get','isAuthenticated','index','describe','/:id/download','download','post','tracked','fax','faxmessage:create','create','put','update','/:id/accept','accept','/:id/reject','reject','delete','/:id','destroy','exports','multer'];(function(_0x2d5699,_0x1101c8){var _0x424d52=function(_0x7006f8){while(--_0x7006f8){_0x2d5699['push'](_0x2d5699['shift']());}};_0x424d52(++_0x1101c8);}(_0x9348,0x10d));var _0x8934=function(_0x425323,_0x2bb49f){_0x425323=_0x425323-0x0;var _0x23b6be=_0x9348[_0x425323];return _0x23b6be;};'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('0xf')]('/',auth[_0x8934('0xa')](),interaction[_0x8934('0x10')](_0x8934('0x11'),_0x8934('0x12')),controller[_0x8934('0x13')]);router[_0x8934('0x14')]('/:id',auth[_0x8934('0xa')](),controller[_0x8934('0x15')]);router[_0x8934('0x14')](_0x8934('0x16'),auth[_0x8934('0xa')](),controller[_0x8934('0x17')]);router['put'](_0x8934('0x18'),auth[_0x8934('0xa')](),controller[_0x8934('0x19')]);router[_0x8934('0x1a')](_0x8934('0x1b'),auth[_0x8934('0xa')](),controller[_0x8934('0x1c')]);module[_0x8934('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf11=['rrmemory','beepall','roundrobin','exports','name'];(function(_0x3a60b8,_0x47caab){var _0x4eb583=function(_0x2251b5){while(--_0x2251b5){_0x3a60b8['push'](_0x3a60b8['shift']());}};_0x4eb583(++_0x47caab);}(_0xbf11,0x14d));var _0x1bf1=function(_0x4caade,_0x549ce1){_0x4caade=_0x4caade-0x0;var _0x2041ff=_0xbf11[_0x4caade];return _0x2041ff;};'use strict';var Sequelize=require('sequelize');module[_0x1bf1('0x0')]={'name':{'type':Sequelize['STRING'],'unique':_0x1bf1('0x1'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize['INTEGER'],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0x1bf1('0x2'),_0x1bf1('0x3'),_0x1bf1('0x4')),'allowNull':![]},'lastAgent':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x84c6=['beepall','roundrobin','INTEGER','STRING','name','ENUM'];(function(_0x5551ce,_0x69b7ad){var _0x2f0f19=function(_0xd6189b){while(--_0xd6189b){_0x5551ce['push'](_0x5551ce['shift']());}};_0x2f0f19(++_0x69b7ad);}(_0x84c6,0xe7));var _0x684c=function(_0x4ea0d4,_0x2c9eaa){_0x4ea0d4=_0x4ea0d4-0x0;var _0x8ed333=_0x84c6[_0x4ea0d4];return _0x8ed333;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x684c('0x0')],'unique':_0x684c('0x1'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x684c('0x0')]},'timeout':{'type':Sequelize['INTEGER'],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x684c('0x2')]('rrmemory',_0x684c('0x3'),_0x684c('0x4')),'allowNull':![]},'lastAgent':{'type':Sequelize[_0x684c('0x5')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x113f=['json','apply','reject','update','then','destroy','get','FaxQueues','UserProfileResource','sendStatus','error','name','send','index','FaxQueue','fieldName','model','query','attributes','fields','hasOwnProperty','nolimit','sort','filters','filter','where','merge','map','type','includeAll','include','findAll','show','keys','rawAttributes','length','options','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','describe','getMembers','findOne','UserFaxQueue','intersection','User','faxPause','updatedAt','createdAt','rows','format','%s/%s','SIP','getTeams','Team','order','addTeams','ids','Agents','online','voicePause','interface','flatMap','sequelize','transaction','each','findOrCreate','forEach','emit','field','tq.TeamId','team_has_fax_queues','join','user_has_teams','FaxQueueId\x20=\x20?','clone','push','toString','QueryTypes','every','TeamId','includes','compact','value','removeTeams','isEmpty','removeAgents','addAgents','omit','spread','userFaxQueue:save','userFaxQueue:remove','pick','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./faxQueue.socket','end','undefined','limit','count','offset'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x113f,0x179));var _0xf113=function(_0x3e860a,_0x1816bd){_0x3e860a=_0x3e860a-0x0;var _0x53842a=_0x113f[_0x3e860a];return _0x53842a;};'use strict';var emlformat=require(_0xf113('0x0'));var rimraf=require(_0xf113('0x1'));var zipdir=require(_0xf113('0x2'));var jsonpatch=require(_0xf113('0x3'));var rp=require('request-promise');var moment=require(_0xf113('0x4'));var BPromise=require(_0xf113('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xf113('0x6'));var sox=require(_0xf113('0x7'));var csv=require(_0xf113('0x8'));var ejs=require(_0xf113('0x9'));var fs=require('fs');var fs_extra=require(_0xf113('0xa'));var _=require(_0xf113('0xb'));var squel=require(_0xf113('0xc'));var crypto=require(_0xf113('0xd'));var jsforce=require(_0xf113('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xf113('0x8'));var querystring=require('querystring');var Papa=require(_0xf113('0xf'));var Redis=require(_0xf113('0x10'));var authService=require(_0xf113('0x11'));var qs=require(_0xf113('0x12'));var as=require(_0xf113('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf113('0x14'))(_0xf113('0x15'));var utils=require(_0xf113('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xf113('0x17'))['db'];config['redis']=_[_0xf113('0x18')](config[_0xf113('0x19')],{'host':_0xf113('0x1a'),'port':0x18eb});var socket=require(_0xf113('0x1b'))(new Redis(config[_0xf113('0x19')]));require(_0xf113('0x1c'))['register'](socket);function respondWithStatusCode(_0x2258b1,_0x31b02e){_0x31b02e=_0x31b02e||0xcc;return function(_0x99583f){if(_0x99583f){return _0x2258b1['sendStatus'](_0x31b02e);}return _0x2258b1['status'](_0x31b02e)[_0xf113('0x1d')]();};}function respondWithResult(_0x22eef2,_0x417287){_0x417287=_0x417287||0xc8;return function(_0x162cea){if(_0x162cea){return _0x22eef2['status'](_0x417287)['json'](_0x162cea);}};}function respondWithFilteredResult(_0x20c05b,_0x3d6fe6){return function(_0x2eb5e0){if(_0x2eb5e0){var _0x295a55=typeof _0x3d6fe6['offset']===_0xf113('0x1e')&&typeof _0x3d6fe6[_0xf113('0x1f')]===_0xf113('0x1e');var _0x38a80=_0x2eb5e0[_0xf113('0x20')];var _0x4f4e71=_0x295a55?0x0:_0x3d6fe6[_0xf113('0x21')];var _0x571148=_0x295a55?_0x2eb5e0['count']:_0x3d6fe6[_0xf113('0x21')]+_0x3d6fe6[_0xf113('0x1f')];var _0x1cbd8d;if(_0x571148>=_0x38a80){_0x571148=_0x38a80;_0x1cbd8d=0xc8;}else{_0x1cbd8d=0xce;}_0x20c05b['status'](_0x1cbd8d);return _0x20c05b['set']('Content-Range',_0x4f4e71+'-'+_0x571148+'/'+_0x38a80)[_0xf113('0x22')](_0x2eb5e0);}return null;};}function patchUpdates(_0x1b2b9e){return function(_0x4aef4a){try{jsonpatch[_0xf113('0x23')](_0x4aef4a,_0x1b2b9e,!![]);}catch(_0x2af120){return BPromise[_0xf113('0x24')](_0x2af120);}return _0x4aef4a['save']();};}function saveUpdates(_0x177b70,_0x2428ea){return function(_0x53c35c){if(_0x53c35c){return _0x53c35c[_0xf113('0x25')](_0x177b70)[_0xf113('0x26')](function(_0x360f1c){return _0x360f1c;});}return null;};}function removeEntity(_0x5c9209,_0x4d2b44){return function(_0x3d42c9){if(_0x3d42c9){return _0x3d42c9[_0xf113('0x27')]()[_0xf113('0x26')](function(){var _0x41c97a=_0x3d42c9[_0xf113('0x28')]({'plain':!![]});var _0x180559=_0xf113('0x29');return db[_0xf113('0x2a')]['destroy']({'where':{'type':_0x180559,'resourceId':_0x41c97a['id']}})[_0xf113('0x26')](function(){return _0x3d42c9;});})[_0xf113('0x26')](function(){_0x5c9209['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x12edb0,_0x81fe46){return function(_0x4aef5e){if(!_0x4aef5e){_0x12edb0[_0xf113('0x2b')](0x194);}return _0x4aef5e;};}function handleError(_0x3b300a,_0x1bed3d){_0x1bed3d=_0x1bed3d||0x1f4;return function(_0x80c0ba){logger[_0xf113('0x2c')](_0x80c0ba['stack']);if(_0x80c0ba[_0xf113('0x2d')]){delete _0x80c0ba[_0xf113('0x2d')];}_0x3b300a['status'](_0x1bed3d)[_0xf113('0x2e')](_0x80c0ba);};}exports[_0xf113('0x2f')]=function(_0xc5d533,_0x750ae3){var _0x4684ea={},_0x2bc3fc={},_0x17121f={'count':0x0,'rows':[]};var _0x57abdf=_['map'](db[_0xf113('0x30')]['rawAttributes'],function(_0xc836ac){return{'name':_0xc836ac[_0xf113('0x31')],'type':_0xc836ac['type']['key']};});_0x2bc3fc[_0xf113('0x32')]=_['map'](_0x57abdf,_0xf113('0x2d'));_0x2bc3fc[_0xf113('0x33')]=_['keys'](_0xc5d533[_0xf113('0x33')]);_0x2bc3fc['filters']=_['intersection'](_0x2bc3fc[_0xf113('0x32')],_0x2bc3fc[_0xf113('0x33')]);_0x4684ea[_0xf113('0x34')]=_['intersection'](_0x2bc3fc['model'],qs['fields'](_0xc5d533[_0xf113('0x33')][_0xf113('0x35')]));_0x4684ea['attributes']=_0x4684ea['attributes']['length']?_0x4684ea['attributes']:_0x2bc3fc[_0xf113('0x32')];if(!_0xc5d533[_0xf113('0x33')][_0xf113('0x36')](_0xf113('0x37'))){_0x4684ea['limit']=qs[_0xf113('0x1f')](_0xc5d533[_0xf113('0x33')][_0xf113('0x1f')]);_0x4684ea[_0xf113('0x21')]=qs['offset'](_0xc5d533[_0xf113('0x33')][_0xf113('0x21')]);}_0x4684ea['order']=qs[_0xf113('0x38')](_0xc5d533[_0xf113('0x33')][_0xf113('0x38')]);_0x4684ea['where']=qs[_0xf113('0x39')](_['pick'](_0xc5d533[_0xf113('0x33')],_0x2bc3fc['filters']),_0x57abdf);if(_0xc5d533[_0xf113('0x33')][_0xf113('0x3a')]){_0x4684ea[_0xf113('0x3b')]=_[_0xf113('0x3c')](_0x4684ea[_0xf113('0x3b')],{'$or':_[_0xf113('0x3d')](_0x57abdf,function(_0x18a8c1){if(_0x18a8c1[_0xf113('0x3e')]!=='VIRTUAL'){var _0x1b8613={};_0x1b8613[_0x18a8c1['name']]={'$like':'%'+_0xc5d533[_0xf113('0x33')][_0xf113('0x3a')]+'%'};return _0x1b8613;}})});}_0x4684ea=_[_0xf113('0x3c')]({},_0x4684ea,_0xc5d533['options']);var _0x111d8c={'where':_0x4684ea['where']};return db[_0xf113('0x30')][_0xf113('0x20')](_0x111d8c)[_0xf113('0x26')](function(_0x48cb58){_0x17121f[_0xf113('0x20')]=_0x48cb58;if(_0xc5d533['query'][_0xf113('0x3f')]){_0x4684ea[_0xf113('0x40')]=[{'all':!![]}];}return db[_0xf113('0x30')][_0xf113('0x41')](_0x4684ea);})['then'](function(_0x2ba108){_0x17121f['rows']=_0x2ba108;return _0x17121f;})[_0xf113('0x26')](respondWithFilteredResult(_0x750ae3,_0x4684ea))['catch'](handleError(_0x750ae3,null));};exports[_0xf113('0x42')]=function(_0x2fb54c,_0x2cbc9a){var _0x33e3b3={'raw':!![],'where':{'id':_0x2fb54c['params']['id']}},_0x4ba3aa={};_0x4ba3aa['model']=_[_0xf113('0x43')](db[_0xf113('0x30')][_0xf113('0x44')]);_0x4ba3aa[_0xf113('0x33')]=_[_0xf113('0x43')](_0x2fb54c[_0xf113('0x33')]);_0x4ba3aa['filters']=_['intersection'](_0x4ba3aa[_0xf113('0x32')],_0x4ba3aa[_0xf113('0x33')]);_0x33e3b3['attributes']=_['intersection'](_0x4ba3aa[_0xf113('0x32')],qs[_0xf113('0x35')](_0x2fb54c[_0xf113('0x33')][_0xf113('0x35')]));_0x33e3b3['attributes']=_0x33e3b3[_0xf113('0x34')][_0xf113('0x45')]?_0x33e3b3['attributes']:_0x4ba3aa['model'];if(_0x2fb54c[_0xf113('0x33')]['includeAll']){_0x33e3b3[_0xf113('0x40')]=[{'all':!![]}];}_0x33e3b3=_[_0xf113('0x3c')]({},_0x33e3b3,_0x2fb54c[_0xf113('0x46')]);return db[_0xf113('0x30')][_0xf113('0x47')](_0x33e3b3)[_0xf113('0x26')](handleEntityNotFound(_0x2cbc9a,null))[_0xf113('0x26')](respondWithResult(_0x2cbc9a,null))[_0xf113('0x48')](handleError(_0x2cbc9a,null));};exports['create']=function(_0x24fcf8,_0x33b4aa){return db[_0xf113('0x30')][_0xf113('0x49')](_0x24fcf8['body'],{})[_0xf113('0x26')](function(_0x33ac6d){var _0x177d69=_0x24fcf8[_0xf113('0x4a')][_0xf113('0x28')]({'plain':!![]});if(!_0x177d69)throw new Error(_0xf113('0x4b'));if(_0x177d69[_0xf113('0x4c')]===_0xf113('0x4a')){var _0x1b385b=_0x33ac6d[_0xf113('0x28')]({'plain':!![]});var _0xb84dc3=_0xf113('0x29');return db[_0xf113('0x4d')][_0xf113('0x47')]({'where':{'name':_0xb84dc3,'userProfileId':_0x177d69[_0xf113('0x4e')]},'raw':!![]})[_0xf113('0x26')](function(_0x2dc803){if(_0x2dc803&&_0x2dc803[_0xf113('0x4f')]===0x0){return db['UserProfileResource']['create']({'name':_0x1b385b['name'],'resourceId':_0x1b385b['id'],'type':_0x2dc803[_0xf113('0x2d')],'sectionId':_0x2dc803['id']},{})['then'](function(){return _0x33ac6d;});}else{return _0x33ac6d;}})['catch'](function(_0x4533b7){logger[_0xf113('0x2c')](_0xf113('0x50'),_0x4533b7);throw _0x4533b7;});}return _0x33ac6d;})[_0xf113('0x26')](respondWithResult(_0x33b4aa,0xc9))[_0xf113('0x48')](handleError(_0x33b4aa,null));};exports[_0xf113('0x25')]=function(_0x36c815,_0x581eff){if(_0x36c815[_0xf113('0x51')]['id']){delete _0x36c815['body']['id'];}return db[_0xf113('0x30')][_0xf113('0x47')]({'where':{'id':_0x36c815['params']['id']}})[_0xf113('0x26')](handleEntityNotFound(_0x581eff,null))[_0xf113('0x26')](saveUpdates(_0x36c815['body'],null))[_0xf113('0x26')](respondWithResult(_0x581eff,null))['catch'](handleError(_0x581eff,null));};exports[_0xf113('0x27')]=function(_0x33e2ff,_0x51667e){return db[_0xf113('0x30')][_0xf113('0x47')]({'where':{'id':_0x33e2ff[_0xf113('0x52')]['id']}})[_0xf113('0x26')](handleEntityNotFound(_0x51667e,null))['then'](removeEntity(_0x51667e,null))[_0xf113('0x48')](handleError(_0x51667e,null));};exports[_0xf113('0x53')]=function(_0x12c098,_0x48d07c){return db['FaxQueue']['describe']()[_0xf113('0x26')](respondWithResult(_0x48d07c,null))[_0xf113('0x48')](handleError(_0x48d07c,null));};exports[_0xf113('0x54')]=function(_0x1daebc,_0x3a0dfc,_0x524f7f){var _0x296271={'raw':!![],'where':{}},_0x17f5ea={},_0x3df3d9;return db[_0xf113('0x30')][_0xf113('0x55')]({'where':{'id':_0x1daebc['params']['id']}})[_0xf113('0x26')](handleEntityNotFound(_0x3a0dfc,null))[_0xf113('0x26')](function(_0xd50ca9){if(_0xd50ca9){_0x3df3d9=_0xd50ca9[_0xf113('0x28')]({'plain':!![]});_0x17f5ea[_0xf113('0x32')]=_['keys'](db[_0xf113('0x56')]['rawAttributes']);_0x17f5ea[_0xf113('0x33')]=_['keys'](_0x1daebc['query']);_0x17f5ea['filters']=_[_0xf113('0x57')](_0x17f5ea[_0xf113('0x32')],_0x17f5ea['query']);_0x296271[_0xf113('0x34')]=_['intersection'](_0x17f5ea['model'],qs['fields'](_0x1daebc[_0xf113('0x33')][_0xf113('0x35')]));_0x296271[_0xf113('0x34')]=_0x296271[_0xf113('0x34')][_0xf113('0x45')]?_0x296271['attributes']:_0x17f5ea[_0xf113('0x32')];if(!_0x1daebc['query'][_0xf113('0x36')](_0xf113('0x37'))){_0x296271['limit']=qs['limit'](_0x1daebc[_0xf113('0x33')][_0xf113('0x1f')]);_0x296271[_0xf113('0x21')]=qs[_0xf113('0x21')](_0x1daebc[_0xf113('0x33')][_0xf113('0x21')]);}_0x296271['order']=qs[_0xf113('0x38')](_0x1daebc[_0xf113('0x33')]['sort']);_0x296271[_0xf113('0x3b')]=qs[_0xf113('0x39')](_['pick'](_0x1daebc['query'],_0x17f5ea[_0xf113('0x39')]));_0x296271[_0xf113('0x3b')]['FaxQueueId']=_0xd50ca9['id'];if(_0x1daebc['query'][_0xf113('0x3a')]){_0x296271[_0xf113('0x3b')]=_[_0xf113('0x3c')](_0x296271['where'],{'$or':_[_0xf113('0x3d')](_0x296271[_0xf113('0x34')],function(_0x2f36b7){var _0x1c8451={};_0x1c8451[_0x2f36b7]={'$like':'%'+_0x1daebc[_0xf113('0x33')]['filter']+'%'};return _0x1c8451;})});}_0x296271=_[_0xf113('0x3c')]({},_0x296271,_0x1daebc['options']);return db[_0xf113('0x56')][_0xf113('0x41')](_0x296271);}})[_0xf113('0x26')](function(_0x4db332){if(_0x4db332){return db[_0xf113('0x58')]['findAndCountAll']({'where':{'id':_[_0xf113('0x3d')](_0x4db332,'UserId'),'role':'agent'},'attributes':['id',_0xf113('0x2d'),_0xf113('0x59'),_0xf113('0x5a'),_0xf113('0x5b')]});}})[_0xf113('0x26')](function(_0x168003){if(_0x168003){return{'count':_0x168003[_0xf113('0x20')],'rows':_[_0xf113('0x3d')](_0x168003[_0xf113('0x5c')],function(_0x321fe0){return{'membername':_0x321fe0[_0xf113('0x2d')],'UserId':_0x321fe0['id'],'queue_name':_0x3df3d9[_0xf113('0x2d')],'FaxQueueId':_0x3df3d9['id'],'interface':util[_0xf113('0x5d')](_0xf113('0x5e'),_0xf113('0x5f'),_0x321fe0[_0xf113('0x2d')]),'penalty':0x0,'paused':_0x321fe0['faxPause'],'createdAt':_0x321fe0[_0xf113('0x5b')],'updatedAt':_0x321fe0[_0xf113('0x5a')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x3a0dfc,_0x296271))[_0xf113('0x48')](handleError(_0x3a0dfc,null));};exports[_0xf113('0x60')]=function(_0x361a70,_0x2a834c,_0x5fabcc){var _0x4a8534={};var _0x1e2d2c={};var _0x424076;var _0x1b23cd;return db[_0xf113('0x30')][_0xf113('0x55')]({'where':{'id':_0x361a70[_0xf113('0x52')]['id']}})[_0xf113('0x26')](handleEntityNotFound(_0x2a834c,null))[_0xf113('0x26')](function(_0xe1634){if(_0xe1634){_0x424076=_0xe1634;_0x1e2d2c[_0xf113('0x32')]=_[_0xf113('0x43')](db[_0xf113('0x61')]['rawAttributes']);_0x1e2d2c['query']=_[_0xf113('0x43')](_0x361a70['query']);_0x1e2d2c[_0xf113('0x39')]=_[_0xf113('0x57')](_0x1e2d2c[_0xf113('0x32')],_0x1e2d2c[_0xf113('0x33')]);_0x4a8534['attributes']=_[_0xf113('0x57')](_0x1e2d2c[_0xf113('0x32')],qs[_0xf113('0x35')](_0x361a70[_0xf113('0x33')][_0xf113('0x35')]));_0x4a8534[_0xf113('0x34')]=_0x4a8534[_0xf113('0x34')]['length']?_0x4a8534[_0xf113('0x34')]:_0x1e2d2c[_0xf113('0x32')];_0x4a8534[_0xf113('0x62')]=qs['sort'](_0x361a70[_0xf113('0x33')][_0xf113('0x38')]);_0x4a8534[_0xf113('0x3b')]=qs['filters'](_['pick'](_0x361a70[_0xf113('0x33')],_0x1e2d2c['filters']));if(_0x361a70['query'][_0xf113('0x3a')]){_0x4a8534[_0xf113('0x3b')]=_[_0xf113('0x3c')](_0x4a8534[_0xf113('0x3b')],{'$or':_[_0xf113('0x3d')](_0x4a8534[_0xf113('0x34')],function(_0x5f3bb6){var _0x37732d={};_0x37732d[_0x5f3bb6]={'$like':'%'+_0x361a70[_0xf113('0x33')]['filter']+'%'};return _0x37732d;})});}_0x4a8534=_['merge']({},_0x4a8534,_0x361a70[_0xf113('0x46')]);return _0x424076['getTeams'](_0x4a8534);}})['then'](function(_0x29c9c4){if(_0x29c9c4){_0x1b23cd=_0x29c9c4[_0xf113('0x45')];if(!_0x361a70['query'][_0xf113('0x36')](_0xf113('0x37'))){_0x4a8534['limit']=qs[_0xf113('0x1f')](_0x361a70[_0xf113('0x33')][_0xf113('0x1f')]);_0x4a8534[_0xf113('0x21')]=qs['offset'](_0x361a70['query'][_0xf113('0x21')]);}return _0x424076[_0xf113('0x60')](_0x4a8534);}})[_0xf113('0x26')](function(_0x371f1){if(_0x371f1){return _0x371f1?{'count':_0x1b23cd,'rows':_0x371f1}:null;}})['then'](respondWithResult(_0x2a834c,null))['catch'](handleError(_0x2a834c,null));};exports[_0xf113('0x63')]=function(_0x386380,_0x386f19,_0x2f64ee){var _0x46e2ad=_0x386380['body'][_0xf113('0x64')];return db[_0xf113('0x61')][_0xf113('0x41')]({'where':{'id':_0x46e2ad},'attributes':['id'],'include':[{'model':db['User'],'as':_0xf113('0x65'),'attributes':['id',_0xf113('0x2d'),_0xf113('0x66'),_0xf113('0x67'),_0xf113('0x68')],'raw':!![]}]})[_0xf113('0x26')](function(_0xb45c66){if(_0xb45c66){var _0x45e758=_[_0xf113('0x69')](_0xb45c66,function(_0x5c9299){var _0x569679=_0x5c9299[_0xf113('0x28')]({'plain':!![]});return _0x569679[_0xf113('0x65')];});return db[_0xf113('0x30')][_0xf113('0x47')]({'where':{'id':_0x386380['params']['id']}})['then'](function(_0x49217a){return db[_0xf113('0x6a')][_0xf113('0x6b')](function(_0x2f2a05){return _0x49217a['addTeams'](_0x46e2ad,{'transaction':_0x2f2a05})[_0xf113('0x26')](function(){return BPromise[_0xf113('0x6c')](_0x45e758,function(_0x4fa883){return db[_0xf113('0x56')][_0xf113('0x6d')]({'where':{'UserId':_0x4fa883['id'],'FaxQueueId':_0x386380[_0xf113('0x52')]['id']},'transaction':_0x2f2a05});});})[_0xf113('0x26')](function(){_0x45e758[_0xf113('0x6e')](function(_0xff5696){socket[_0xf113('0x6f')]('userFaxQueue:save',{'UserId':_0xff5696['id'],'FaxQueueId':_0x49217a['id']});});});});});}})[_0xf113('0x26')](respondWithStatusCode(_0x386f19,null))[_0xf113('0x48')](handleError(_0x386f19,null));};exports['removeTeams']=function(_0x33e54e,_0x37dc0c,_0x1f390c){return db[_0xf113('0x61')][_0xf113('0x41')]({'where':{'id':_0x33e54e[_0xf113('0x33')]['ids']},'attributes':['id'],'include':[{'model':db[_0xf113('0x58')],'as':_0xf113('0x65'),'attributes':['id'],'raw':!![]}]})[_0xf113('0x26')](handleEntityNotFound(_0x37dc0c,null))['then'](function(_0x4b1d2b){var _0x1aba49=_[_0xf113('0x3d')](_0x4b1d2b,'id');var _0x3fce5a=[];var _0x1ba81a=[];var _0x51d062=squel['select']();_0x51d062[_0xf113('0x70')](_0xf113('0x71'))['from'](_0xf113('0x72'),'tq')[_0xf113('0x73')](_0xf113('0x74'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0xf113('0x3b')](_0xf113('0x75'),_0x33e54e[_0xf113('0x52')]['id']);for(var _0x10773d=0x0;_0x10773d<_0x4b1d2b[_0xf113('0x45')];_0x10773d+=0x1){let _0x408118=_0x4b1d2b[_0x10773d];for(var _0x1c4bab=0x0;_0x1c4bab<_0x408118[_0xf113('0x65')][_0xf113('0x45')];_0x1c4bab+=0x1){let _0x39d072=_0x408118[_0xf113('0x65')][_0x1c4bab];var _0x4abf6c=_0x51d062[_0xf113('0x76')]();_0x4abf6c[_0xf113('0x3b')]('ut.UserId\x20=\x20?',_0x39d072['id']);_0x1ba81a[_0xf113('0x77')](db[_0xf113('0x6a')][_0xf113('0x33')](_0x4abf6c[_0xf113('0x78')](),{'type':db['sequelize'][_0xf113('0x79')]['SELECT']})[_0xf113('0x26')](function(_0x1ed641){if(_0x1ed641[_0xf113('0x45')]===0x1){return _0x39d072['id'];}else{var _0x309330=_[_0xf113('0x7a')](_[_0xf113('0x3d')](_0x1ed641,_0xf113('0x7b')),function(_0x28b90c){return _[_0xf113('0x7c')](_0x1aba49,_0x28b90c);});if(_0x309330){return _0x39d072['id'];}}}));}}return BPromise['all'](_0x1ba81a)[_0xf113('0x26')](function(_0x3af687){_0x3fce5a=_(_0x3fce5a)['union'](_0x3af687)[_0xf113('0x7d')]()[_0xf113('0x7e')]();return db['FaxQueue'][_0xf113('0x47')]({'where':{'id':_0x33e54e[_0xf113('0x52')]['id']}})[_0xf113('0x26')](function(_0x24211c){return db[_0xf113('0x6a')][_0xf113('0x6b')](function(_0x4d080f){return _0x24211c[_0xf113('0x7f')](_0x33e54e[_0xf113('0x33')]['ids'],{'transaction':_0x4d080f})[_0xf113('0x26')](function(){if(!_[_0xf113('0x80')](_0x3fce5a)){return _0x24211c[_0xf113('0x81')](_0x3fce5a,{'transaction':_0x4d080f});}})[_0xf113('0x26')](function(){_0x3fce5a[_0xf113('0x6e')](function(_0x1d4620){socket[_0xf113('0x6f')]('userFaxQueue:remove',{'UserId':_0x1d4620,'FaxQueueId':_0x24211c['id']});});});});});});})[_0xf113('0x26')](respondWithStatusCode(_0x37dc0c,null))['catch'](handleError(_0x37dc0c,null));};exports[_0xf113('0x82')]=function(_0x2b91a8,_0x2104ee,_0xaf4267){return db['FaxQueue'][_0xf113('0x47')]({'where':{'id':_0x2b91a8[_0xf113('0x52')]['id']}})['then'](handleEntityNotFound(_0x2104ee,null))[_0xf113('0x26')](function(_0x32ad5a){if(_0x32ad5a){return _0x32ad5a[_0xf113('0x82')](_0x2b91a8['body'][_0xf113('0x64')],_[_0xf113('0x83')](_0x2b91a8['body'],['ids','id'])||{})[_0xf113('0x84')](function(_0x848170){for(var _0x391bbe=0x0;_0x391bbe<_0x2b91a8[_0xf113('0x51')][_0xf113('0x64')][_0xf113('0x45')];_0x391bbe+=0x1){socket[_0xf113('0x6f')](_0xf113('0x85'),{'UserId':Number(_0x2b91a8[_0xf113('0x51')][_0xf113('0x64')][_0x391bbe]),'FaxQueueId':Number(_0x2b91a8['params']['id'])});}return _0x848170;});}})[_0xf113('0x26')](respondWithResult(_0x2104ee,null))[_0xf113('0x48')](handleError(_0x2104ee,null));};exports[_0xf113('0x81')]=function(_0x225741,_0xb98437,_0x1ec3eb){return db[_0xf113('0x30')][_0xf113('0x47')]({'where':{'id':_0x225741['params']['id']}})[_0xf113('0x26')](handleEntityNotFound(_0xb98437,null))[_0xf113('0x26')](function(_0x4a88db){if(_0x4a88db){return _0x4a88db[_0xf113('0x81')](_0x225741[_0xf113('0x33')][_0xf113('0x64')])[_0xf113('0x26')](function(){if(_['isArray'](_0x225741[_0xf113('0x33')]['ids'])){for(var _0x23006b=0x0;_0x23006b<_0x225741[_0xf113('0x33')][_0xf113('0x64')]['length'];_0x23006b+=0x1){socket['emit']('userFaxQueue:remove',{'UserId':Number(_0x225741[_0xf113('0x33')][_0xf113('0x64')][_0x23006b]),'FaxQueueId':Number(_0x225741[_0xf113('0x52')]['id'])});}}else{socket['emit'](_0xf113('0x86'),{'UserId':Number(_0x225741[_0xf113('0x33')]['ids']),'FaxQueueId':Number(_0x225741[_0xf113('0x52')]['id'])});}});}})[_0xf113('0x26')](respondWithStatusCode(_0xb98437,null))['catch'](handleError(_0xb98437,null));};exports['getAgents']=function(_0x1e7b7c,_0x54cd1f,_0x120c6b){var _0x5df35d={};var _0x242d77={};var _0x1ab293;var _0x5a20ba;return db['FaxQueue'][_0xf113('0x55')]({'where':{'id':_0x1e7b7c[_0xf113('0x52')]['id']}})[_0xf113('0x26')](handleEntityNotFound(_0x54cd1f,null))['then'](function(_0x705bf){if(_0x705bf){_0x1ab293=_0x705bf;_0x242d77[_0xf113('0x32')]=_[_0xf113('0x43')](db[_0xf113('0x58')][_0xf113('0x44')]);_0x242d77[_0xf113('0x33')]=_[_0xf113('0x43')](_0x1e7b7c[_0xf113('0x33')]);_0x242d77[_0xf113('0x39')]=_[_0xf113('0x57')](_0x242d77[_0xf113('0x32')],_0x242d77[_0xf113('0x33')]);_0x5df35d[_0xf113('0x34')]=_['intersection'](_0x242d77['model'],qs[_0xf113('0x35')](_0x1e7b7c[_0xf113('0x33')]['fields']));_0x5df35d['attributes']=_0x5df35d[_0xf113('0x34')][_0xf113('0x45')]?_0x5df35d[_0xf113('0x34')]:_0x242d77[_0xf113('0x32')];_0x5df35d[_0xf113('0x62')]=qs['sort'](_0x1e7b7c['query'][_0xf113('0x38')]);_0x5df35d[_0xf113('0x3b')]=qs[_0xf113('0x39')](_[_0xf113('0x87')](_0x1e7b7c[_0xf113('0x33')],_0x242d77[_0xf113('0x39')]));if(_0x1e7b7c[_0xf113('0x33')][_0xf113('0x3a')]){_0x5df35d[_0xf113('0x3b')]=_[_0xf113('0x3c')](_0x5df35d[_0xf113('0x3b')],{'$or':_[_0xf113('0x3d')](_0x5df35d[_0xf113('0x34')],function(_0x3c92c6){var _0x3a8422={};_0x3a8422[_0x3c92c6]={'$like':'%'+_0x1e7b7c['query'][_0xf113('0x3a')]+'%'};return _0x3a8422;})});}_0x5df35d=_[_0xf113('0x3c')]({},_0x5df35d,_0x1e7b7c['options']);return _0x1ab293[_0xf113('0x88')](_0x5df35d);}})[_0xf113('0x26')](function(_0x2bbe2b){if(_0x2bbe2b){_0x5a20ba=_0x2bbe2b[_0xf113('0x45')];if(!_0x1e7b7c[_0xf113('0x33')][_0xf113('0x36')](_0xf113('0x37'))){_0x5df35d[_0xf113('0x1f')]=qs['limit'](_0x1e7b7c[_0xf113('0x33')][_0xf113('0x1f')]);_0x5df35d[_0xf113('0x21')]=qs[_0xf113('0x21')](_0x1e7b7c['query'][_0xf113('0x21')]);}return _0x1ab293[_0xf113('0x88')](_0x5df35d);}})[_0xf113('0x26')](function(_0x14ad30){if(_0x14ad30){return _0x14ad30?{'count':_0x5a20ba,'rows':_0x14ad30}:null;}})[_0xf113('0x26')](respondWithResult(_0x54cd1f,null))[_0xf113('0x48')](handleError(_0x54cd1f,null));};
\ No newline at end of file
+var _0xd40f=['where','merge','VIRTUAL','includeAll','findAll','rows','catch','params','keys','rawAttributes','include','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','findOne','UserFaxQueue','FaxQueueId','filter','options','User','findAndCountAll','UserId','agent','faxPause','updatedAt','createdAt','SIP','getTeams','addTeams','ids','Agents','voicePause','interface','flatMap','sequelize','transaction','each','findOrCreate','forEach','userFaxQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_fax_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','FaxQueueId\x20=\x20?','ut.UserId\x20=\x20?','QueryTypes','SELECT','TeamId','union','value','isEmpty','removeAgents','emit','userFaxQueue:remove','addAgents','omit','spread','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxQueue.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','destroy','get','FaxQueues','error','stack','name','send','FaxQueue','fieldName','type','key','model','map','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick'];(function(_0x44e6a7,_0x4a6a11){var _0x18de7d=function(_0x472ecd){while(--_0x472ecd){_0x44e6a7['push'](_0x44e6a7['shift']());}};_0x18de7d(++_0x4a6a11);}(_0xd40f,0xd3));var _0xfd40=function(_0x50f0e9,_0x2f9300){_0x50f0e9=_0x50f0e9-0x0;var _0x12dae4=_0xd40f[_0x50f0e9];return _0x12dae4;};'use strict';var emlformat=require(_0xfd40('0x0'));var rimraf=require(_0xfd40('0x1'));var zipdir=require(_0xfd40('0x2'));var jsonpatch=require(_0xfd40('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xfd40('0x4'));var Mustache=require(_0xfd40('0x5'));var util=require(_0xfd40('0x6'));var path=require(_0xfd40('0x7'));var sox=require(_0xfd40('0x8'));var csv=require(_0xfd40('0x9'));var ejs=require(_0xfd40('0xa'));var fs=require('fs');var fs_extra=require(_0xfd40('0xb'));var _=require(_0xfd40('0xc'));var squel=require(_0xfd40('0xd'));var crypto=require(_0xfd40('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xfd40('0xf'));var toCsv=require('to-csv');var querystring=require(_0xfd40('0x10'));var Papa=require(_0xfd40('0x11'));var Redis=require(_0xfd40('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xfd40('0x13'));var as=require(_0xfd40('0x14'));var hardwareService=require(_0xfd40('0x15'));var logger=require('../../config/logger')(_0xfd40('0x16'));var utils=require(_0xfd40('0x17'));var config=require(_0xfd40('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xfd40('0x19'))['db'];config[_0xfd40('0x1a')]=_[_0xfd40('0x1b')](config[_0xfd40('0x1a')],{'host':_0xfd40('0x1c'),'port':0x18eb});var socket=require(_0xfd40('0x1d'))(new Redis(config[_0xfd40('0x1a')]));require(_0xfd40('0x1e'))[_0xfd40('0x1f')](socket);function respondWithStatusCode(_0x3a892b,_0x436102){_0x436102=_0x436102||0xcc;return function(_0x31ae29){if(_0x31ae29){return _0x3a892b[_0xfd40('0x20')](_0x436102);}return _0x3a892b['status'](_0x436102)[_0xfd40('0x21')]();};}function respondWithResult(_0x16a853,_0x13f160){_0x13f160=_0x13f160||0xc8;return function(_0x510fa7){if(_0x510fa7){return _0x16a853[_0xfd40('0x22')](_0x13f160)[_0xfd40('0x23')](_0x510fa7);}};}function respondWithFilteredResult(_0x588b27,_0xb2643b){return function(_0x52b280){if(_0x52b280){var _0x21fbed=typeof _0xb2643b[_0xfd40('0x24')]===_0xfd40('0x25')&&typeof _0xb2643b[_0xfd40('0x26')]===_0xfd40('0x25');var _0x204967=_0x52b280[_0xfd40('0x27')];var _0xfd51b1=_0x21fbed?0x0:_0xb2643b[_0xfd40('0x24')];var _0x697871=_0x21fbed?_0x52b280[_0xfd40('0x27')]:_0xb2643b[_0xfd40('0x24')]+_0xb2643b['limit'];var _0x4b41cb;if(_0x697871>=_0x204967){_0x697871=_0x204967;_0x4b41cb=0xc8;}else{_0x4b41cb=0xce;}_0x588b27[_0xfd40('0x22')](_0x4b41cb);return _0x588b27['set'](_0xfd40('0x28'),_0xfd51b1+'-'+_0x697871+'/'+_0x204967)['json'](_0x52b280);}return null;};}function patchUpdates(_0x27ec9a){return function(_0x412084){try{jsonpatch[_0xfd40('0x29')](_0x412084,_0x27ec9a,!![]);}catch(_0xb89a2b){return BPromise['reject'](_0xb89a2b);}return _0x412084[_0xfd40('0x2a')]();};}function saveUpdates(_0x2d9611,_0x1027bb){return function(_0x426b09){if(_0x426b09){return _0x426b09[_0xfd40('0x2b')](_0x2d9611)[_0xfd40('0x2c')](function(_0x1cd79a){return _0x1cd79a;});}return null;};}function removeEntity(_0x36cd3b,_0x1da023){return function(_0x1a5fa7){if(_0x1a5fa7){return _0x1a5fa7[_0xfd40('0x2d')]()[_0xfd40('0x2c')](function(){var _0x2c930f=_0x1a5fa7[_0xfd40('0x2e')]({'plain':!![]});var _0x2f0e75=_0xfd40('0x2f');return db['UserProfileResource'][_0xfd40('0x2d')]({'where':{'type':_0x2f0e75,'resourceId':_0x2c930f['id']}})['then'](function(){return _0x1a5fa7;});})[_0xfd40('0x2c')](function(){_0x36cd3b[_0xfd40('0x22')](0xcc)[_0xfd40('0x21')]();});}};}function handleEntityNotFound(_0x2c0ffc,_0x2a981c){return function(_0x3bf8ac){if(!_0x3bf8ac){_0x2c0ffc[_0xfd40('0x20')](0x194);}return _0x3bf8ac;};}function handleError(_0x5a531a,_0x4fa9fe){_0x4fa9fe=_0x4fa9fe||0x1f4;return function(_0xf3ce13){logger[_0xfd40('0x30')](_0xf3ce13[_0xfd40('0x31')]);if(_0xf3ce13['name']){delete _0xf3ce13[_0xfd40('0x32')];}_0x5a531a['status'](_0x4fa9fe)[_0xfd40('0x33')](_0xf3ce13);};}exports['index']=function(_0x2ad176,_0xf19076){var _0x319f3a={},_0x4a70c5={},_0x26a811={'count':0x0,'rows':[]};var _0x4b0d44=_['map'](db[_0xfd40('0x34')]['rawAttributes'],function(_0x24ad93){return{'name':_0x24ad93[_0xfd40('0x35')],'type':_0x24ad93[_0xfd40('0x36')][_0xfd40('0x37')]};});_0x4a70c5[_0xfd40('0x38')]=_[_0xfd40('0x39')](_0x4b0d44,_0xfd40('0x32'));_0x4a70c5[_0xfd40('0x3a')]=_['keys'](_0x2ad176[_0xfd40('0x3a')]);_0x4a70c5['filters']=_[_0xfd40('0x3b')](_0x4a70c5[_0xfd40('0x38')],_0x4a70c5['query']);_0x319f3a[_0xfd40('0x3c')]=_['intersection'](_0x4a70c5[_0xfd40('0x38')],qs['fields'](_0x2ad176[_0xfd40('0x3a')][_0xfd40('0x3d')]));_0x319f3a['attributes']=_0x319f3a[_0xfd40('0x3c')][_0xfd40('0x3e')]?_0x319f3a['attributes']:_0x4a70c5[_0xfd40('0x38')];if(!_0x2ad176['query'][_0xfd40('0x3f')](_0xfd40('0x40'))){_0x319f3a[_0xfd40('0x26')]=qs[_0xfd40('0x26')](_0x2ad176[_0xfd40('0x3a')]['limit']);_0x319f3a[_0xfd40('0x24')]=qs[_0xfd40('0x24')](_0x2ad176[_0xfd40('0x3a')]['offset']);}_0x319f3a[_0xfd40('0x41')]=qs[_0xfd40('0x42')](_0x2ad176['query'][_0xfd40('0x42')]);_0x319f3a['where']=qs[_0xfd40('0x43')](_[_0xfd40('0x44')](_0x2ad176[_0xfd40('0x3a')],_0x4a70c5[_0xfd40('0x43')]),_0x4b0d44);if(_0x2ad176[_0xfd40('0x3a')]['filter']){_0x319f3a[_0xfd40('0x45')]=_[_0xfd40('0x46')](_0x319f3a[_0xfd40('0x45')],{'$or':_[_0xfd40('0x39')](_0x4b0d44,function(_0xa4458a){if(_0xa4458a[_0xfd40('0x36')]!==_0xfd40('0x47')){var _0x5ed8cb={};_0x5ed8cb[_0xa4458a['name']]={'$like':'%'+_0x2ad176[_0xfd40('0x3a')]['filter']+'%'};return _0x5ed8cb;}})});}_0x319f3a=_[_0xfd40('0x46')]({},_0x319f3a,_0x2ad176['options']);var _0x278799={'where':_0x319f3a[_0xfd40('0x45')]};return db[_0xfd40('0x34')][_0xfd40('0x27')](_0x278799)[_0xfd40('0x2c')](function(_0x3b16ab){_0x26a811['count']=_0x3b16ab;if(_0x2ad176[_0xfd40('0x3a')][_0xfd40('0x48')]){_0x319f3a['include']=[{'all':!![]}];}return db[_0xfd40('0x34')][_0xfd40('0x49')](_0x319f3a);})['then'](function(_0x29db7b){_0x26a811[_0xfd40('0x4a')]=_0x29db7b;return _0x26a811;})[_0xfd40('0x2c')](respondWithFilteredResult(_0xf19076,_0x319f3a))[_0xfd40('0x4b')](handleError(_0xf19076,null));};exports['show']=function(_0x2f9cd5,_0x2af559){var _0x131d2d={'raw':!![],'where':{'id':_0x2f9cd5[_0xfd40('0x4c')]['id']}},_0x579ab8={};_0x579ab8[_0xfd40('0x38')]=_[_0xfd40('0x4d')](db[_0xfd40('0x34')][_0xfd40('0x4e')]);_0x579ab8[_0xfd40('0x3a')]=_[_0xfd40('0x4d')](_0x2f9cd5[_0xfd40('0x3a')]);_0x579ab8[_0xfd40('0x43')]=_[_0xfd40('0x3b')](_0x579ab8[_0xfd40('0x38')],_0x579ab8[_0xfd40('0x3a')]);_0x131d2d[_0xfd40('0x3c')]=_[_0xfd40('0x3b')](_0x579ab8[_0xfd40('0x38')],qs[_0xfd40('0x3d')](_0x2f9cd5[_0xfd40('0x3a')][_0xfd40('0x3d')]));_0x131d2d['attributes']=_0x131d2d[_0xfd40('0x3c')][_0xfd40('0x3e')]?_0x131d2d['attributes']:_0x579ab8[_0xfd40('0x38')];if(_0x2f9cd5['query'][_0xfd40('0x48')]){_0x131d2d[_0xfd40('0x4f')]=[{'all':!![]}];}_0x131d2d=_[_0xfd40('0x46')]({},_0x131d2d,_0x2f9cd5['options']);return db[_0xfd40('0x34')][_0xfd40('0x50')](_0x131d2d)['then'](handleEntityNotFound(_0x2af559,null))['then'](respondWithResult(_0x2af559,null))[_0xfd40('0x4b')](handleError(_0x2af559,null));};exports[_0xfd40('0x51')]=function(_0x31d07d,_0x3b892a){return db['FaxQueue'][_0xfd40('0x51')](_0x31d07d['body'],{})[_0xfd40('0x2c')](function(_0xa0d087){var _0x6f4174=_0x31d07d[_0xfd40('0x52')]['get']({'plain':!![]});if(!_0x6f4174)throw new Error(_0xfd40('0x53'));if(_0x6f4174['role']===_0xfd40('0x52')){var _0x57fcf9=_0xa0d087[_0xfd40('0x2e')]({'plain':!![]});var _0x3bb314='FaxQueues';return db[_0xfd40('0x54')][_0xfd40('0x50')]({'where':{'name':_0x3bb314,'userProfileId':_0x6f4174[_0xfd40('0x55')]},'raw':!![]})['then'](function(_0x438c46){if(_0x438c46&&_0x438c46['autoAssociation']===0x0){return db[_0xfd40('0x56')][_0xfd40('0x51')]({'name':_0x57fcf9['name'],'resourceId':_0x57fcf9['id'],'type':_0x438c46[_0xfd40('0x32')],'sectionId':_0x438c46['id']},{})[_0xfd40('0x2c')](function(){return _0xa0d087;});}else{return _0xa0d087;}})[_0xfd40('0x4b')](function(_0x44801e){logger[_0xfd40('0x30')](_0xfd40('0x57'),_0x44801e);throw _0x44801e;});}return _0xa0d087;})['then'](respondWithResult(_0x3b892a,0xc9))[_0xfd40('0x4b')](handleError(_0x3b892a,null));};exports[_0xfd40('0x2b')]=function(_0x130eda,_0x5c1f64){if(_0x130eda[_0xfd40('0x58')]['id']){delete _0x130eda[_0xfd40('0x58')]['id'];}return db['FaxQueue'][_0xfd40('0x50')]({'where':{'id':_0x130eda[_0xfd40('0x4c')]['id']}})[_0xfd40('0x2c')](handleEntityNotFound(_0x5c1f64,null))[_0xfd40('0x2c')](saveUpdates(_0x130eda['body'],null))[_0xfd40('0x2c')](respondWithResult(_0x5c1f64,null))[_0xfd40('0x4b')](handleError(_0x5c1f64,null));};exports[_0xfd40('0x2d')]=function(_0x4e9209,_0x1d0aaa){return db[_0xfd40('0x34')][_0xfd40('0x50')]({'where':{'id':_0x4e9209[_0xfd40('0x4c')]['id']}})[_0xfd40('0x2c')](handleEntityNotFound(_0x1d0aaa,null))[_0xfd40('0x2c')](removeEntity(_0x1d0aaa,null))[_0xfd40('0x4b')](handleError(_0x1d0aaa,null));};exports[_0xfd40('0x59')]=function(_0x2c4e2d,_0x21b3f4){return db['FaxQueue'][_0xfd40('0x59')]()[_0xfd40('0x2c')](respondWithResult(_0x21b3f4,null))[_0xfd40('0x4b')](handleError(_0x21b3f4,null));};exports['getMembers']=function(_0x24811a,_0xce118b,_0x26873d){var _0x4b8def={'raw':!![],'where':{}},_0x377341={},_0x54dbb4;return db[_0xfd40('0x34')][_0xfd40('0x5a')]({'where':{'id':_0x24811a[_0xfd40('0x4c')]['id']}})[_0xfd40('0x2c')](handleEntityNotFound(_0xce118b,null))[_0xfd40('0x2c')](function(_0x18b25b){if(_0x18b25b){_0x54dbb4=_0x18b25b[_0xfd40('0x2e')]({'plain':!![]});_0x377341[_0xfd40('0x38')]=_[_0xfd40('0x4d')](db[_0xfd40('0x5b')][_0xfd40('0x4e')]);_0x377341['query']=_[_0xfd40('0x4d')](_0x24811a['query']);_0x377341[_0xfd40('0x43')]=_[_0xfd40('0x3b')](_0x377341[_0xfd40('0x38')],_0x377341['query']);_0x4b8def[_0xfd40('0x3c')]=_[_0xfd40('0x3b')](_0x377341[_0xfd40('0x38')],qs[_0xfd40('0x3d')](_0x24811a[_0xfd40('0x3a')][_0xfd40('0x3d')]));_0x4b8def[_0xfd40('0x3c')]=_0x4b8def['attributes'][_0xfd40('0x3e')]?_0x4b8def[_0xfd40('0x3c')]:_0x377341[_0xfd40('0x38')];if(!_0x24811a[_0xfd40('0x3a')]['hasOwnProperty'](_0xfd40('0x40'))){_0x4b8def[_0xfd40('0x26')]=qs[_0xfd40('0x26')](_0x24811a[_0xfd40('0x3a')][_0xfd40('0x26')]);_0x4b8def[_0xfd40('0x24')]=qs['offset'](_0x24811a[_0xfd40('0x3a')]['offset']);}_0x4b8def['order']=qs[_0xfd40('0x42')](_0x24811a[_0xfd40('0x3a')][_0xfd40('0x42')]);_0x4b8def[_0xfd40('0x45')]=qs[_0xfd40('0x43')](_[_0xfd40('0x44')](_0x24811a[_0xfd40('0x3a')],_0x377341[_0xfd40('0x43')]));_0x4b8def[_0xfd40('0x45')][_0xfd40('0x5c')]=_0x18b25b['id'];if(_0x24811a[_0xfd40('0x3a')][_0xfd40('0x5d')]){_0x4b8def[_0xfd40('0x45')]=_[_0xfd40('0x46')](_0x4b8def[_0xfd40('0x45')],{'$or':_[_0xfd40('0x39')](_0x4b8def[_0xfd40('0x3c')],function(_0x3dcb98){var _0x1675cd={};_0x1675cd[_0x3dcb98]={'$like':'%'+_0x24811a[_0xfd40('0x3a')]['filter']+'%'};return _0x1675cd;})});}_0x4b8def=_[_0xfd40('0x46')]({},_0x4b8def,_0x24811a[_0xfd40('0x5e')]);return db['UserFaxQueue'][_0xfd40('0x49')](_0x4b8def);}})[_0xfd40('0x2c')](function(_0x3507ee){if(_0x3507ee){return db[_0xfd40('0x5f')][_0xfd40('0x60')]({'where':{'id':_[_0xfd40('0x39')](_0x3507ee,_0xfd40('0x61')),'role':_0xfd40('0x62')},'attributes':['id',_0xfd40('0x32'),_0xfd40('0x63'),_0xfd40('0x64'),_0xfd40('0x65')]});}})[_0xfd40('0x2c')](function(_0x1fc3ad){if(_0x1fc3ad){return{'count':_0x1fc3ad['count'],'rows':_[_0xfd40('0x39')](_0x1fc3ad[_0xfd40('0x4a')],function(_0x437ee7){return{'membername':_0x437ee7[_0xfd40('0x32')],'UserId':_0x437ee7['id'],'queue_name':_0x54dbb4[_0xfd40('0x32')],'FaxQueueId':_0x54dbb4['id'],'interface':util['format']('%s/%s',_0xfd40('0x66'),_0x437ee7[_0xfd40('0x32')]),'penalty':0x0,'paused':_0x437ee7[_0xfd40('0x63')],'createdAt':_0x437ee7['createdAt'],'updatedAt':_0x437ee7[_0xfd40('0x64')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xfd40('0x2c')](respondWithFilteredResult(_0xce118b,_0x4b8def))['catch'](handleError(_0xce118b,null));};exports['getTeams']=function(_0x54b725,_0x377009,_0x113dd7){var _0x1c9fda={};var _0x869009={};var _0x448a8c;var _0x5ab8a2;return db[_0xfd40('0x34')][_0xfd40('0x5a')]({'where':{'id':_0x54b725[_0xfd40('0x4c')]['id']}})[_0xfd40('0x2c')](handleEntityNotFound(_0x377009,null))[_0xfd40('0x2c')](function(_0x544ca3){if(_0x544ca3){_0x448a8c=_0x544ca3;_0x869009[_0xfd40('0x38')]=_['keys'](db['Team'][_0xfd40('0x4e')]);_0x869009[_0xfd40('0x3a')]=_[_0xfd40('0x4d')](_0x54b725[_0xfd40('0x3a')]);_0x869009[_0xfd40('0x43')]=_['intersection'](_0x869009[_0xfd40('0x38')],_0x869009[_0xfd40('0x3a')]);_0x1c9fda[_0xfd40('0x3c')]=_[_0xfd40('0x3b')](_0x869009[_0xfd40('0x38')],qs['fields'](_0x54b725['query'][_0xfd40('0x3d')]));_0x1c9fda[_0xfd40('0x3c')]=_0x1c9fda[_0xfd40('0x3c')][_0xfd40('0x3e')]?_0x1c9fda[_0xfd40('0x3c')]:_0x869009[_0xfd40('0x38')];_0x1c9fda[_0xfd40('0x41')]=qs[_0xfd40('0x42')](_0x54b725['query'][_0xfd40('0x42')]);_0x1c9fda[_0xfd40('0x45')]=qs[_0xfd40('0x43')](_[_0xfd40('0x44')](_0x54b725['query'],_0x869009[_0xfd40('0x43')]));if(_0x54b725['query']['filter']){_0x1c9fda['where']=_[_0xfd40('0x46')](_0x1c9fda[_0xfd40('0x45')],{'$or':_[_0xfd40('0x39')](_0x1c9fda['attributes'],function(_0xf7b4d4){var _0x1e67b6={};_0x1e67b6[_0xf7b4d4]={'$like':'%'+_0x54b725[_0xfd40('0x3a')]['filter']+'%'};return _0x1e67b6;})});}_0x1c9fda=_[_0xfd40('0x46')]({},_0x1c9fda,_0x54b725[_0xfd40('0x5e')]);return _0x448a8c[_0xfd40('0x67')](_0x1c9fda);}})['then'](function(_0x15b2c5){if(_0x15b2c5){_0x5ab8a2=_0x15b2c5['length'];if(!_0x54b725[_0xfd40('0x3a')]['hasOwnProperty'](_0xfd40('0x40'))){_0x1c9fda[_0xfd40('0x26')]=qs[_0xfd40('0x26')](_0x54b725['query'][_0xfd40('0x26')]);_0x1c9fda[_0xfd40('0x24')]=qs[_0xfd40('0x24')](_0x54b725['query'][_0xfd40('0x24')]);}return _0x448a8c['getTeams'](_0x1c9fda);}})['then'](function(_0x77050e){if(_0x77050e){return _0x77050e?{'count':_0x5ab8a2,'rows':_0x77050e}:null;}})['then'](respondWithResult(_0x377009,null))[_0xfd40('0x4b')](handleError(_0x377009,null));};exports[_0xfd40('0x68')]=function(_0x12709c,_0x48eb49,_0x52e71c){var _0x3661d9=_0x12709c[_0xfd40('0x58')][_0xfd40('0x69')];return db['Team'][_0xfd40('0x49')]({'where':{'id':_0x3661d9},'attributes':['id'],'include':[{'model':db[_0xfd40('0x5f')],'as':_0xfd40('0x6a'),'attributes':['id','name','online',_0xfd40('0x6b'),_0xfd40('0x6c')],'raw':!![]}]})[_0xfd40('0x2c')](function(_0x128e0c){if(_0x128e0c){var _0x3bec59=_[_0xfd40('0x6d')](_0x128e0c,function(_0x1c70f0){var _0x12740e=_0x1c70f0[_0xfd40('0x2e')]({'plain':!![]});return _0x12740e[_0xfd40('0x6a')];});return db['FaxQueue'][_0xfd40('0x50')]({'where':{'id':_0x12709c['params']['id']}})[_0xfd40('0x2c')](function(_0x15c810){return db[_0xfd40('0x6e')][_0xfd40('0x6f')](function(_0x18ae9a){return _0x15c810['addTeams'](_0x3661d9,{'transaction':_0x18ae9a})['then'](function(){return BPromise[_0xfd40('0x70')](_0x3bec59,function(_0x3b66c0){return db[_0xfd40('0x5b')][_0xfd40('0x71')]({'where':{'UserId':_0x3b66c0['id'],'FaxQueueId':_0x12709c[_0xfd40('0x4c')]['id']},'transaction':_0x18ae9a});});})[_0xfd40('0x2c')](function(){_0x3bec59[_0xfd40('0x72')](function(_0x46a7d1){socket['emit'](_0xfd40('0x73'),{'UserId':_0x46a7d1['id'],'FaxQueueId':_0x15c810['id']});});});});});}})[_0xfd40('0x2c')](respondWithStatusCode(_0x48eb49,null))[_0xfd40('0x4b')](handleError(_0x48eb49,null));};exports[_0xfd40('0x74')]=function(_0x178450,_0x1d5804,_0x400cf3){return db['Team'][_0xfd40('0x49')]({'where':{'id':_0x178450['query']['ids']},'attributes':['id'],'include':[{'model':db[_0xfd40('0x5f')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0xfd40('0x2c')](handleEntityNotFound(_0x1d5804,null))[_0xfd40('0x2c')](function(_0x1cd8be){var _0x1aa752=_['map'](_0x1cd8be,'id');var _0x37bdb0=[];var _0x454059=[];var _0x28bb06=squel[_0xfd40('0x75')]();_0x28bb06[_0xfd40('0x76')](_0xfd40('0x77'))[_0xfd40('0x78')](_0xfd40('0x79'),'tq')[_0xfd40('0x7a')](_0xfd40('0x7b'),'ut',_0xfd40('0x7c'))[_0xfd40('0x45')](_0xfd40('0x7d'),_0x178450[_0xfd40('0x4c')]['id']);for(var _0xc88ba=0x0;_0xc88ba<_0x1cd8be[_0xfd40('0x3e')];_0xc88ba+=0x1){let _0x1e15f2=_0x1cd8be[_0xc88ba];for(var _0x38f49e=0x0;_0x38f49e<_0x1e15f2['Agents'][_0xfd40('0x3e')];_0x38f49e+=0x1){let _0x1b46e0=_0x1e15f2[_0xfd40('0x6a')][_0x38f49e];var _0x364785=_0x28bb06['clone']();_0x364785[_0xfd40('0x45')](_0xfd40('0x7e'),_0x1b46e0['id']);_0x454059['push'](db[_0xfd40('0x6e')]['query'](_0x364785['toString'](),{'type':db[_0xfd40('0x6e')][_0xfd40('0x7f')][_0xfd40('0x80')]})[_0xfd40('0x2c')](function(_0x2db5fe){if(_0x2db5fe[_0xfd40('0x3e')]===0x1){return _0x1b46e0['id'];}else{var _0xe1b218=_['every'](_[_0xfd40('0x39')](_0x2db5fe,_0xfd40('0x81')),function(_0x6f5ee1){return _['includes'](_0x1aa752,_0x6f5ee1);});if(_0xe1b218){return _0x1b46e0['id'];}}}));}}return BPromise['all'](_0x454059)['then'](function(_0x2fe199){_0x37bdb0=_(_0x37bdb0)[_0xfd40('0x82')](_0x2fe199)['compact']()[_0xfd40('0x83')]();return db['FaxQueue']['find']({'where':{'id':_0x178450[_0xfd40('0x4c')]['id']}})[_0xfd40('0x2c')](function(_0x5a372c){return db[_0xfd40('0x6e')][_0xfd40('0x6f')](function(_0x198e5b){return _0x5a372c['removeTeams'](_0x178450['query']['ids'],{'transaction':_0x198e5b})[_0xfd40('0x2c')](function(){if(!_[_0xfd40('0x84')](_0x37bdb0)){return _0x5a372c[_0xfd40('0x85')](_0x37bdb0,{'transaction':_0x198e5b});}})[_0xfd40('0x2c')](function(){_0x37bdb0['forEach'](function(_0x53a985){socket[_0xfd40('0x86')](_0xfd40('0x87'),{'UserId':_0x53a985,'FaxQueueId':_0x5a372c['id']});});});});});});})[_0xfd40('0x2c')](respondWithStatusCode(_0x1d5804,null))[_0xfd40('0x4b')](handleError(_0x1d5804,null));};exports[_0xfd40('0x88')]=function(_0x3f6f7c,_0x150134,_0xc4e19b){return db[_0xfd40('0x34')][_0xfd40('0x50')]({'where':{'id':_0x3f6f7c[_0xfd40('0x4c')]['id']}})[_0xfd40('0x2c')](handleEntityNotFound(_0x150134,null))['then'](function(_0x58bdda){if(_0x58bdda){return _0x58bdda[_0xfd40('0x88')](_0x3f6f7c[_0xfd40('0x58')][_0xfd40('0x69')],_[_0xfd40('0x89')](_0x3f6f7c[_0xfd40('0x58')],['ids','id'])||{})[_0xfd40('0x8a')](function(_0x422d2b){for(var _0x4b106b=0x0;_0x4b106b<_0x3f6f7c[_0xfd40('0x58')][_0xfd40('0x69')]['length'];_0x4b106b+=0x1){socket[_0xfd40('0x86')]('userFaxQueue:save',{'UserId':Number(_0x3f6f7c['body']['ids'][_0x4b106b]),'FaxQueueId':Number(_0x3f6f7c[_0xfd40('0x4c')]['id'])});}return _0x422d2b;});}})[_0xfd40('0x2c')](respondWithResult(_0x150134,null))[_0xfd40('0x4b')](handleError(_0x150134,null));};exports[_0xfd40('0x85')]=function(_0xae2ce5,_0xfc5666,_0x27255b){return db[_0xfd40('0x34')][_0xfd40('0x50')]({'where':{'id':_0xae2ce5['params']['id']}})[_0xfd40('0x2c')](handleEntityNotFound(_0xfc5666,null))[_0xfd40('0x2c')](function(_0x190279){if(_0x190279){return _0x190279[_0xfd40('0x85')](_0xae2ce5['query']['ids'])[_0xfd40('0x2c')](function(){if(_['isArray'](_0xae2ce5[_0xfd40('0x3a')][_0xfd40('0x69')])){for(var _0x18e2e3=0x0;_0x18e2e3<_0xae2ce5[_0xfd40('0x3a')]['ids'][_0xfd40('0x3e')];_0x18e2e3+=0x1){socket['emit'](_0xfd40('0x87'),{'UserId':Number(_0xae2ce5['query'][_0xfd40('0x69')][_0x18e2e3]),'FaxQueueId':Number(_0xae2ce5[_0xfd40('0x4c')]['id'])});}}else{socket[_0xfd40('0x86')](_0xfd40('0x87'),{'UserId':Number(_0xae2ce5[_0xfd40('0x3a')]['ids']),'FaxQueueId':Number(_0xae2ce5[_0xfd40('0x4c')]['id'])});}});}})[_0xfd40('0x2c')](respondWithStatusCode(_0xfc5666,null))[_0xfd40('0x4b')](handleError(_0xfc5666,null));};exports[_0xfd40('0x8b')]=function(_0x88ebd8,_0x4a3941,_0x515ad5){var _0x1ae3bc={};var _0xd04c30={};var _0x500509;var _0x593dc3;return db['FaxQueue'][_0xfd40('0x5a')]({'where':{'id':_0x88ebd8[_0xfd40('0x4c')]['id']}})[_0xfd40('0x2c')](handleEntityNotFound(_0x4a3941,null))[_0xfd40('0x2c')](function(_0x40bfba){if(_0x40bfba){_0x500509=_0x40bfba;_0xd04c30[_0xfd40('0x38')]=_[_0xfd40('0x4d')](db[_0xfd40('0x5f')][_0xfd40('0x4e')]);_0xd04c30[_0xfd40('0x3a')]=_['keys'](_0x88ebd8[_0xfd40('0x3a')]);_0xd04c30[_0xfd40('0x43')]=_[_0xfd40('0x3b')](_0xd04c30[_0xfd40('0x38')],_0xd04c30[_0xfd40('0x3a')]);_0x1ae3bc[_0xfd40('0x3c')]=_[_0xfd40('0x3b')](_0xd04c30[_0xfd40('0x38')],qs[_0xfd40('0x3d')](_0x88ebd8[_0xfd40('0x3a')][_0xfd40('0x3d')]));_0x1ae3bc[_0xfd40('0x3c')]=_0x1ae3bc['attributes']['length']?_0x1ae3bc['attributes']:_0xd04c30['model'];_0x1ae3bc['order']=qs['sort'](_0x88ebd8[_0xfd40('0x3a')][_0xfd40('0x42')]);_0x1ae3bc[_0xfd40('0x45')]=qs['filters'](_[_0xfd40('0x44')](_0x88ebd8[_0xfd40('0x3a')],_0xd04c30['filters']));if(_0x88ebd8[_0xfd40('0x3a')][_0xfd40('0x5d')]){_0x1ae3bc[_0xfd40('0x45')]=_[_0xfd40('0x46')](_0x1ae3bc[_0xfd40('0x45')],{'$or':_[_0xfd40('0x39')](_0x1ae3bc[_0xfd40('0x3c')],function(_0x1e3f1a){var _0x40e259={};_0x40e259[_0x1e3f1a]={'$like':'%'+_0x88ebd8['query'][_0xfd40('0x5d')]+'%'};return _0x40e259;})});}_0x1ae3bc=_['merge']({},_0x1ae3bc,_0x88ebd8[_0xfd40('0x5e')]);return _0x500509[_0xfd40('0x8b')](_0x1ae3bc);}})[_0xfd40('0x2c')](function(_0x3cab81){if(_0x3cab81){_0x593dc3=_0x3cab81['length'];if(!_0x88ebd8[_0xfd40('0x3a')][_0xfd40('0x3f')](_0xfd40('0x40'))){_0x1ae3bc[_0xfd40('0x26')]=qs['limit'](_0x88ebd8['query']['limit']);_0x1ae3bc[_0xfd40('0x24')]=qs['offset'](_0x88ebd8['query']['offset']);}return _0x500509[_0xfd40('0x8b')](_0x1ae3bc);}})[_0xfd40('0x2c')](function(_0x4d46c0){if(_0x4d46c0){return _0x4d46c0?{'count':_0x593dc3,'rows':_0x4d46c0}:null;}})[_0xfd40('0x2c')](respondWithResult(_0x4a3941,null))[_0xfd40('0x4b')](handleError(_0x4a3941,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1807=['hasOwnProperty','hook','exports','events','setMaxListeners','save','update','remove','emit'];(function(_0x831dc9,_0x54fdca){var _0x4b3600=function(_0x5f172b){while(--_0x5f172b){_0x831dc9['push'](_0x831dc9['shift']());}};_0x4b3600(++_0x54fdca);}(_0x1807,0x1aa));var _0x7180=function(_0x25655f,_0x44fcc0){_0x25655f=_0x25655f-0x0;var _0x40d1af=_0x1807[_0x25655f];return _0x40d1af;};'use strict';var EventEmitter=require(_0x7180('0x0'));var FaxQueue=require('../../mysqldb')['db']['FaxQueue'];var FaxQueueEvents=new EventEmitter();FaxQueueEvents[_0x7180('0x1')](0x0);var events={'afterCreate':_0x7180('0x2'),'afterUpdate':_0x7180('0x3'),'afterDestroy':_0x7180('0x4')};function emitEvent(_0x355ac0){return function(_0x5f0936,_0x1436f3,_0x5b085c){FaxQueueEvents[_0x7180('0x5')](_0x355ac0+':'+_0x5f0936['id'],_0x5f0936);FaxQueueEvents['emit'](_0x355ac0,_0x5f0936);_0x5b085c(null);};}for(var e in events){if(events[_0x7180('0x6')](e)){var event=events[e];FaxQueue[_0x7180('0x7')](e,emitEvent(event));}}module[_0x7180('0x8')]=FaxQueueEvents;
\ No newline at end of file
+var _0x618e=['emit','hasOwnProperty','hook','FaxQueue','save','update','remove'];(function(_0x273ace,_0x3b28bc){var _0x5a5548=function(_0x2d2aaf){while(--_0x2d2aaf){_0x273ace['push'](_0x273ace['shift']());}};_0x5a5548(++_0x3b28bc);}(_0x618e,0xf1));var _0xe618=function(_0x2d08c5,_0x2b19f1){_0x2d08c5=_0x2d08c5-0x0;var _0x5c71b1=_0x618e[_0x2d08c5];return _0x5c71b1;};'use strict';var EventEmitter=require('events');var FaxQueue=require('../../mysqldb')['db'][_0xe618('0x0')];var FaxQueueEvents=new EventEmitter();FaxQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xe618('0x1'),'afterUpdate':_0xe618('0x2'),'afterDestroy':_0xe618('0x3')};function emitEvent(_0x1b11c8){return function(_0x1466a2,_0x31ebea,_0x5ecc25){FaxQueueEvents[_0xe618('0x4')](_0x1b11c8+':'+_0x1466a2['id'],_0x1466a2);FaxQueueEvents['emit'](_0x1b11c8,_0x1466a2);_0x5ecc25(null);};}for(var e in events){if(events[_0xe618('0x5')](e)){var event=events[e];FaxQueue[_0xe618('0x6')](e,emitEvent(event));}}module['exports']=FaxQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x01f9=['request-promise','path','rimraf','../../config/environment','./faxQueue.attributes','exports','define','FaxQueue','fax_queues','lodash','../../config/logger','api','moment','bluebird'];(function(_0x4063a4,_0x19d730){var _0x17908d=function(_0x3ce714){while(--_0x3ce714){_0x4063a4['push'](_0x4063a4['shift']());}};_0x17908d(++_0x19d730);}(_0x01f9,0x1ad));var _0x901f=function(_0x5f2e1f,_0x4e460e){_0x5f2e1f=_0x5f2e1f-0x0;var _0x18808b=_0x01f9[_0x5f2e1f];return _0x18808b;};'use strict';var _=require(_0x901f('0x0'));var util=require('util');var logger=require(_0x901f('0x1'))(_0x901f('0x2'));var moment=require(_0x901f('0x3'));var BPromise=require(_0x901f('0x4'));var rp=require(_0x901f('0x5'));var fs=require('fs');var path=require(_0x901f('0x6'));var rimraf=require(_0x901f('0x7'));var config=require(_0x901f('0x8'));var attributes=require(_0x901f('0x9'));module[_0x901f('0xa')]=function(_0x796a8,_0x124e2d){return _0x796a8[_0x901f('0xb')](_0x901f('0xc'),attributes,{'tableName':_0x901f('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5f2c=['exports','FaxQueue','fax_queues','lodash','../../config/logger','api','moment','bluebird','../../config/environment'];(function(_0x2d2c16,_0x4e88b6){var _0x53f2fb=function(_0x6b6dac){while(--_0x6b6dac){_0x2d2c16['push'](_0x2d2c16['shift']());}};_0x53f2fb(++_0x4e88b6);}(_0x5f2c,0x6f));var _0xc5f2=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x5f2c[_0xa464c9];return _0x3d73c4;};'use strict';var _=require(_0xc5f2('0x0'));var util=require('util');var logger=require(_0xc5f2('0x1'))(_0xc5f2('0x2'));var moment=require(_0xc5f2('0x3'));var BPromise=require(_0xc5f2('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xc5f2('0x5'));var attributes=require('./faxQueue.attributes');module[_0xc5f2('0x6')]=function(_0x489192,_0x3e83b6){return _0x489192['define'](_0xc5f2('0x7'),attributes,{'tableName':_0xc5f2('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0406=['request\x20sent','debug','FaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','GetFaxQueue','FaxQueue','findAll','options','where','limit','map','include','model','attributes','ShowFaxQueue','find','raw','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','redis','localhost','register','then','FaxQueue,\x20%s,\x20%s'];(function(_0x1cc6c9,_0x1be68d){var _0x22c4e2=function(_0x55f99b){while(--_0x55f99b){_0x1cc6c9['push'](_0x1cc6c9['shift']());}};_0x22c4e2(++_0x1be68d);}(_0x0406,0x197));var _0x6040=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x0406[_0x20a584];return _0x4b41a8;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x6040('0x0'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6040('0x1'));var db=require(_0x6040('0x2'))['db'];var utils=require(_0x6040('0x3'));var logger=require(_0x6040('0x4'))(_0x6040('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x6040('0x6')][_0x6040('0x7')]({'port':0x232a});config[_0x6040('0x8')]=_['defaults'](config[_0x6040('0x8')],{'host':_0x6040('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6040('0x8')]));require('./faxQueue.socket')[_0x6040('0xa')](socket);function respondWithRpcPromise(_0x3db61a,_0x3203eb,_0x459bb8){return new BPromise(function(_0x2224b5,_0x4aab40){return client['request'](_0x3db61a,_0x459bb8)[_0x6040('0xb')](function(_0x1a37e){logger['info'](_0x6040('0xc'),_0x3203eb,_0x6040('0xd'));logger[_0x6040('0xe')](_0x6040('0xf'),_0x3203eb,_0x6040('0xd'),JSON[_0x6040('0x10')](_0x1a37e));if(_0x1a37e['error']){if(_0x1a37e[_0x6040('0x11')][_0x6040('0x12')]===0x1f4){logger[_0x6040('0x11')](_0x6040('0xc'),_0x3203eb,_0x1a37e[_0x6040('0x11')][_0x6040('0x13')]);return _0x4aab40(_0x1a37e[_0x6040('0x11')][_0x6040('0x13')]);}logger[_0x6040('0x11')]('FaxQueue,\x20%s,\x20%s',_0x3203eb,_0x1a37e['error'][_0x6040('0x13')]);return _0x2224b5(_0x1a37e[_0x6040('0x11')][_0x6040('0x13')]);}else{logger[_0x6040('0x14')](_0x6040('0xc'),_0x3203eb,_0x6040('0xd'));_0x2224b5(_0x1a37e['result'][_0x6040('0x13')]);}})[_0x6040('0x15')](function(_0x328f28){logger['error']('FaxQueue,\x20%s,\x20%s',_0x3203eb,_0x328f28);_0x4aab40(_0x328f28);});});}exports[_0x6040('0x16')]=function(_0xdccbbd){var _0x5cc332=this;return new Promise(function(_0x440ad6,_0x2b9756){return db[_0x6040('0x17')][_0x6040('0x18')]({'raw':_0xdccbbd['options']?_0xdccbbd['options']['raw']===undefined?!![]:![]:!![],'where':_0xdccbbd[_0x6040('0x19')]?_0xdccbbd['options'][_0x6040('0x1a')]||null:null,'attributes':_0xdccbbd['options']?_0xdccbbd[_0x6040('0x19')]['attributes']||null:null,'limit':_0xdccbbd['options']?_0xdccbbd[_0x6040('0x19')][_0x6040('0x1b')]||null:null,'include':_0xdccbbd[_0x6040('0x19')]?_0xdccbbd[_0x6040('0x19')]['include']?_[_0x6040('0x1c')](_0xdccbbd[_0x6040('0x19')][_0x6040('0x1d')],function(_0x3b34e8){return{'model':db[_0x3b34e8[_0x6040('0x1e')]],'as':_0x3b34e8['as'],'attributes':_0x3b34e8[_0x6040('0x1f')],'include':_0x3b34e8[_0x6040('0x1d')]?_[_0x6040('0x1c')](_0x3b34e8[_0x6040('0x1d')],function(_0x4770fb){return{'model':db[_0x4770fb[_0x6040('0x1e')]],'as':_0x4770fb['as'],'attributes':_0x4770fb[_0x6040('0x1f')],'include':_0x4770fb[_0x6040('0x1d')]?_['map'](_0x4770fb['include'],function(_0x160281){return{'model':db[_0x160281['model']],'as':_0x160281['as'],'attributes':_0x160281['attributes']};}):[]};}):[]};}):[]:[]})[_0x6040('0xb')](function(_0x132f83){logger[_0x6040('0x14')]('GetFaxQueue',_0xdccbbd);logger['debug']('GetFaxQueue',_0xdccbbd,JSON['stringify'](_0x132f83));_0x440ad6(_0x132f83);})[_0x6040('0x15')](function(_0x36779c){logger[_0x6040('0x11')](_0x6040('0x16'),_0x36779c[_0x6040('0x13')],_0xdccbbd);_0x2b9756(_0x5cc332[_0x6040('0x11')](0x1f4,_0x36779c[_0x6040('0x13')]));});});};exports[_0x6040('0x20')]=function(_0x5ccecc){var _0x259abe=this;return new Promise(function(_0x59612b,_0x2351ca){return db[_0x6040('0x17')][_0x6040('0x21')]({'raw':_0x5ccecc[_0x6040('0x19')]?_0x5ccecc[_0x6040('0x19')][_0x6040('0x22')]===undefined?!![]:![]:!![],'where':_0x5ccecc[_0x6040('0x19')]?_0x5ccecc['options'][_0x6040('0x1a')]||null:null,'attributes':_0x5ccecc[_0x6040('0x19')]?_0x5ccecc[_0x6040('0x19')]['attributes']||null:null,'include':_0x5ccecc[_0x6040('0x19')]?_0x5ccecc['options'][_0x6040('0x1d')]?_['map'](_0x5ccecc[_0x6040('0x19')][_0x6040('0x1d')],function(_0xa4fe01){return{'model':db[_0xa4fe01[_0x6040('0x1e')]],'as':_0xa4fe01['as'],'attributes':_0xa4fe01[_0x6040('0x1f')],'include':_0xa4fe01[_0x6040('0x1d')]?_[_0x6040('0x1c')](_0xa4fe01[_0x6040('0x1d')],function(_0x4b32b6){return{'model':db[_0x4b32b6[_0x6040('0x1e')]],'as':_0x4b32b6['as'],'attributes':_0x4b32b6[_0x6040('0x1f')],'include':_0x4b32b6['include']?_['map'](_0x4b32b6['include'],function(_0x42dbbf){return{'model':db[_0x42dbbf[_0x6040('0x1e')]],'as':_0x42dbbf['as'],'attributes':_0x42dbbf[_0x6040('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x6040('0xb')](function(_0x37444d){logger[_0x6040('0x14')](_0x6040('0x20'),_0x5ccecc);logger['debug'](_0x6040('0x20'),_0x5ccecc,JSON[_0x6040('0x10')](_0x37444d));_0x59612b(_0x37444d);})[_0x6040('0x15')](function(_0x53c4c4){logger[_0x6040('0x11')](_0x6040('0x20'),_0x53c4c4[_0x6040('0x13')],_0x5ccecc);_0x2351ca(_0x259abe[_0x6040('0x11')](0x1f4,_0x53c4c4[_0x6040('0x13')]));});});};
\ No newline at end of file
+var _0xbff5=['GetFaxQueue','FaxQueue','options','where','attributes','limit','include','model','map','stringify','find','ShowFaxQueue','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./faxQueue.socket','register','request','then','FaxQueue,\x20%s,\x20%s','request\x20sent','debug','error','message','info','catch'];(function(_0x46361e,_0x243aaf){var _0x14e302=function(_0x9ebecf){while(--_0x9ebecf){_0x46361e['push'](_0x46361e['shift']());}};_0x14e302(++_0x243aaf);}(_0xbff5,0x1ae));var _0x5bff=function(_0x2e756d,_0x25710d){_0x2e756d=_0x2e756d-0x0;var _0x395fc8=_0xbff5[_0x2e756d];return _0x395fc8;};'use strict';var _=require(_0x5bff('0x0'));var util=require(_0x5bff('0x1'));var moment=require(_0x5bff('0x2'));var BPromise=require('bluebird');var rs=require(_0x5bff('0x3'));var fs=require('fs');var Redis=require(_0x5bff('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x5bff('0x5'));var logger=require(_0x5bff('0x6'))(_0x5bff('0x7'));var config=require(_0x5bff('0x8'));var jayson=require(_0x5bff('0x9'));var client=jayson[_0x5bff('0xa')][_0x5bff('0xb')]({'port':0x232a});config[_0x5bff('0xc')]=_[_0x5bff('0xd')](config['redis'],{'host':_0x5bff('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x5bff('0xc')]));require(_0x5bff('0xf'))[_0x5bff('0x10')](socket);function respondWithRpcPromise(_0x53b5aa,_0x3eff25,_0x18bb4a){return new BPromise(function(_0x29855b,_0x561cf4){return client[_0x5bff('0x11')](_0x53b5aa,_0x18bb4a)[_0x5bff('0x12')](function(_0x24dfc5){logger['info'](_0x5bff('0x13'),_0x3eff25,_0x5bff('0x14'));logger[_0x5bff('0x15')]('FaxQueue,\x20%s,\x20%s,\x20%s',_0x3eff25,'request\x20sent',JSON['stringify'](_0x24dfc5));if(_0x24dfc5['error']){if(_0x24dfc5[_0x5bff('0x16')]['code']===0x1f4){logger[_0x5bff('0x16')](_0x5bff('0x13'),_0x3eff25,_0x24dfc5[_0x5bff('0x16')]['message']);return _0x561cf4(_0x24dfc5['error'][_0x5bff('0x17')]);}logger['error']('FaxQueue,\x20%s,\x20%s',_0x3eff25,_0x24dfc5[_0x5bff('0x16')][_0x5bff('0x17')]);return _0x29855b(_0x24dfc5[_0x5bff('0x16')][_0x5bff('0x17')]);}else{logger[_0x5bff('0x18')](_0x5bff('0x13'),_0x3eff25,'request\x20sent');_0x29855b(_0x24dfc5['result'][_0x5bff('0x17')]);}})[_0x5bff('0x19')](function(_0x2c331a){logger[_0x5bff('0x16')](_0x5bff('0x13'),_0x3eff25,_0x2c331a);_0x561cf4(_0x2c331a);});});}exports[_0x5bff('0x1a')]=function(_0x316e2f){var _0x2470e9=this;return new Promise(function(_0x531973,_0x457e7a){return db[_0x5bff('0x1b')]['findAll']({'raw':_0x316e2f['options']?_0x316e2f['options']['raw']===undefined?!![]:![]:!![],'where':_0x316e2f[_0x5bff('0x1c')]?_0x316e2f[_0x5bff('0x1c')][_0x5bff('0x1d')]||null:null,'attributes':_0x316e2f[_0x5bff('0x1c')]?_0x316e2f[_0x5bff('0x1c')][_0x5bff('0x1e')]||null:null,'limit':_0x316e2f['options']?_0x316e2f[_0x5bff('0x1c')][_0x5bff('0x1f')]||null:null,'include':_0x316e2f[_0x5bff('0x1c')]?_0x316e2f[_0x5bff('0x1c')][_0x5bff('0x20')]?_['map'](_0x316e2f[_0x5bff('0x1c')][_0x5bff('0x20')],function(_0x2ac28e){return{'model':db[_0x2ac28e[_0x5bff('0x21')]],'as':_0x2ac28e['as'],'attributes':_0x2ac28e[_0x5bff('0x1e')],'include':_0x2ac28e['include']?_['map'](_0x2ac28e[_0x5bff('0x20')],function(_0x2ba0ee){return{'model':db[_0x2ba0ee['model']],'as':_0x2ba0ee['as'],'attributes':_0x2ba0ee['attributes'],'include':_0x2ba0ee[_0x5bff('0x20')]?_[_0x5bff('0x22')](_0x2ba0ee['include'],function(_0x312208){return{'model':db[_0x312208['model']],'as':_0x312208['as'],'attributes':_0x312208[_0x5bff('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x5bff('0x12')](function(_0x4f59f2){logger['info'](_0x5bff('0x1a'),_0x316e2f);logger['debug']('GetFaxQueue',_0x316e2f,JSON[_0x5bff('0x23')](_0x4f59f2));_0x531973(_0x4f59f2);})[_0x5bff('0x19')](function(_0x55fc3e){logger[_0x5bff('0x16')](_0x5bff('0x1a'),_0x55fc3e['message'],_0x316e2f);_0x457e7a(_0x2470e9[_0x5bff('0x16')](0x1f4,_0x55fc3e[_0x5bff('0x17')]));});});};exports['ShowFaxQueue']=function(_0x28662c){var _0x45eac7=this;return new Promise(function(_0x155046,_0x204699){return db[_0x5bff('0x1b')][_0x5bff('0x24')]({'raw':_0x28662c[_0x5bff('0x1c')]?_0x28662c[_0x5bff('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x28662c[_0x5bff('0x1c')]?_0x28662c[_0x5bff('0x1c')][_0x5bff('0x1d')]||null:null,'attributes':_0x28662c[_0x5bff('0x1c')]?_0x28662c[_0x5bff('0x1c')]['attributes']||null:null,'include':_0x28662c[_0x5bff('0x1c')]?_0x28662c[_0x5bff('0x1c')][_0x5bff('0x20')]?_[_0x5bff('0x22')](_0x28662c[_0x5bff('0x1c')]['include'],function(_0x1ad615){return{'model':db[_0x1ad615[_0x5bff('0x21')]],'as':_0x1ad615['as'],'attributes':_0x1ad615['attributes'],'include':_0x1ad615['include']?_['map'](_0x1ad615[_0x5bff('0x20')],function(_0x492500){return{'model':db[_0x492500[_0x5bff('0x21')]],'as':_0x492500['as'],'attributes':_0x492500['attributes'],'include':_0x492500['include']?_[_0x5bff('0x22')](_0x492500['include'],function(_0x1de906){return{'model':db[_0x1de906[_0x5bff('0x21')]],'as':_0x1de906['as'],'attributes':_0x1de906[_0x5bff('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x5bff('0x12')](function(_0x26d346){logger[_0x5bff('0x18')](_0x5bff('0x25'),_0x28662c);logger[_0x5bff('0x15')]('ShowFaxQueue',_0x28662c,JSON['stringify'](_0x26d346));_0x155046(_0x26d346);})['catch'](function(_0x381d51){logger[_0x5bff('0x16')](_0x5bff('0x25'),_0x381d51[_0x5bff('0x17')],_0x28662c);_0x204699(_0x45eac7[_0x5bff('0x16')](0x1f4,_0x381d51[_0x5bff('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc285=['emit','removeListener','register','length','./faxQueue.events','save','remove','update'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc285,0xcc));var _0x5c28=function(_0x13211b,_0x3050c2){_0x13211b=_0x13211b-0x0;var _0x4adb44=_0xc285[_0x13211b];return _0x4adb44;};'use strict';var FaxQueueEvents=require(_0x5c28('0x0'));var events=[_0x5c28('0x1'),_0x5c28('0x2'),_0x5c28('0x3')];function createListener(_0x49f127,_0x3ab797){return function(_0x2f227e){_0x3ab797[_0x5c28('0x4')](_0x49f127,_0x2f227e);};}function removeListener(_0x305246,_0x4a63da){return function(){FaxQueueEvents[_0x5c28('0x5')](_0x305246,_0x4a63da);};}exports[_0x5c28('0x6')]=function(_0x3e9398){for(var _0x2bd70e=0x0,_0x5505a5=events[_0x5c28('0x7')];_0x2bd70e<_0x5505a5;_0x2bd70e++){var _0x3a5d15=events[_0x2bd70e];var _0x398c05=createListener('faxQueue:'+_0x3a5d15,_0x3e9398);FaxQueueEvents['on'](_0x3a5d15,_0x398c05);}};
\ No newline at end of file
+var _0x5d6c=['./faxQueue.events','save','emit','removeListener','length','faxQueue:'];(function(_0x3e728e,_0xf37042){var _0x4ed513=function(_0xfd19d0){while(--_0xfd19d0){_0x3e728e['push'](_0x3e728e['shift']());}};_0x4ed513(++_0xf37042);}(_0x5d6c,0xfc));var _0xc5d6=function(_0x4c6225,_0x12c081){_0x4c6225=_0x4c6225-0x0;var _0x1a6ddf=_0x5d6c[_0x4c6225];return _0x1a6ddf;};'use strict';var FaxQueueEvents=require(_0xc5d6('0x0'));var events=[_0xc5d6('0x1'),'remove','update'];function createListener(_0x40b82f,_0x2ae640){return function(_0x4b6944){_0x2ae640[_0xc5d6('0x2')](_0x40b82f,_0x4b6944);};}function removeListener(_0x1e26ea,_0x5630ca){return function(){FaxQueueEvents[_0xc5d6('0x3')](_0x1e26ea,_0x5630ca);};}exports['register']=function(_0x43f4d0){for(var _0x2e06dc=0x0,_0x16704f=events[_0xc5d6('0x4')];_0x2e06dc<_0x16704f;_0x2e06dc++){var _0x3f14a3=events[_0x2e06dc];var _0xd9b8b=createListener(_0xc5d6('0x5')+_0x3f14a3,_0x43f4d0);FaxQueueEvents['on'](_0x3f14a3,_0xd9b8b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeda8=['get','isAuthenticated','index','describe','/:id','getMembers','/:id/users','getAgents','post','create','addTeams','addAgents','put','delete','/:id/teams','removeAgents','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxQueue.controller'];(function(_0x82617f,_0x37cb6e){var _0xb71bb=function(_0x12ac6a){while(--_0x12ac6a){_0x82617f['push'](_0x82617f['shift']());}};_0xb71bb(++_0x37cb6e);}(_0xeda8,0x104));var _0x8eda=function(_0x103e75,_0x2d39da){_0x103e75=_0x103e75-0x0;var _0x226b01=_0xeda8[_0x103e75];return _0x226b01;};'use strict';var multer=require(_0x8eda('0x0'));var util=require(_0x8eda('0x1'));var path=require('path');var timeout=require(_0x8eda('0x2'));var express=require(_0x8eda('0x3'));var router=express[_0x8eda('0x4')]();var fs_extra=require(_0x8eda('0x5'));var auth=require(_0x8eda('0x6'));var interaction=require(_0x8eda('0x7'));var config=require(_0x8eda('0x8'));var controller=require(_0x8eda('0x9'));router[_0x8eda('0xa')]('/',auth[_0x8eda('0xb')](),controller[_0x8eda('0xc')]);router[_0x8eda('0xa')]('/describe',auth[_0x8eda('0xb')](),controller[_0x8eda('0xd')]);router[_0x8eda('0xa')](_0x8eda('0xe'),auth['isAuthenticated'](),controller['show']);router['get']('/:id/members',auth[_0x8eda('0xb')](),controller[_0x8eda('0xf')]);router[_0x8eda('0xa')]('/:id/teams',auth[_0x8eda('0xb')](),controller['getTeams']);router[_0x8eda('0xa')](_0x8eda('0x10'),auth[_0x8eda('0xb')](),controller[_0x8eda('0x11')]);router[_0x8eda('0x12')]('/',auth[_0x8eda('0xb')](),controller[_0x8eda('0x13')]);router[_0x8eda('0x12')]('/:id/teams',auth['isAuthenticated'](),controller[_0x8eda('0x14')]);router[_0x8eda('0x12')]('/:id/users',auth[_0x8eda('0xb')](),controller[_0x8eda('0x15')]);router[_0x8eda('0x16')]('/:id',auth[_0x8eda('0xb')](),controller['update']);router[_0x8eda('0x17')]('/:id',auth[_0x8eda('0xb')](),controller['destroy']);router[_0x8eda('0x17')](_0x8eda('0x18'),auth['isAuthenticated'](),controller['removeTeams']);router[_0x8eda('0x17')](_0x8eda('0x10'),auth[_0x8eda('0xb')](),controller[_0x8eda('0x19')]);module[_0x8eda('0x1a')]=router;
\ No newline at end of file
+var _0x2272=['multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','/describe','describe','/:id','getMembers','/:id/teams','/:id/users','getAgents','post','addAgents','put','update','delete','destroy','removeTeams','removeAgents','exports'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x2272,0xd8));var _0x2227=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x2272[_0x17d9e3];return _0x14192d;};'use strict';var multer=require(_0x2227('0x0'));var util=require(_0x2227('0x1'));var path=require(_0x2227('0x2'));var timeout=require(_0x2227('0x3'));var express=require(_0x2227('0x4'));var router=express['Router']();var fs_extra=require(_0x2227('0x5'));var auth=require(_0x2227('0x6'));var interaction=require(_0x2227('0x7'));var config=require('../../config/environment');var controller=require('./faxQueue.controller');router[_0x2227('0x8')]('/',auth[_0x2227('0x9')](),controller[_0x2227('0xa')]);router[_0x2227('0x8')](_0x2227('0xb'),auth[_0x2227('0x9')](),controller[_0x2227('0xc')]);router[_0x2227('0x8')](_0x2227('0xd'),auth[_0x2227('0x9')](),controller['show']);router[_0x2227('0x8')]('/:id/members',auth[_0x2227('0x9')](),controller[_0x2227('0xe')]);router[_0x2227('0x8')](_0x2227('0xf'),auth[_0x2227('0x9')](),controller['getTeams']);router[_0x2227('0x8')](_0x2227('0x10'),auth[_0x2227('0x9')](),controller[_0x2227('0x11')]);router[_0x2227('0x12')]('/',auth[_0x2227('0x9')](),controller['create']);router['post']('/:id/teams',auth[_0x2227('0x9')](),controller['addTeams']);router[_0x2227('0x12')](_0x2227('0x10'),auth['isAuthenticated'](),controller[_0x2227('0x13')]);router[_0x2227('0x14')](_0x2227('0xd'),auth[_0x2227('0x9')](),controller[_0x2227('0x15')]);router[_0x2227('0x16')]('/:id',auth[_0x2227('0x9')](),controller[_0x2227('0x17')]);router[_0x2227('0x16')]('/:id/teams',auth[_0x2227('0x9')](),controller[_0x2227('0x18')]);router[_0x2227('0x16')](_0x2227('0x10'),auth[_0x2227('0x9')](),controller[_0x2227('0x19')]);module[_0x2227('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x68d7=['moment','STRING','DATE'];(function(_0x4492af,_0x47e25d){var _0x216729=function(_0x4964c8){while(--_0x4964c8){_0x4492af['push'](_0x4492af['shift']());}};_0x216729(++_0x47e25d);}(_0x68d7,0x102));var _0x768d=function(_0x3d2d57,_0x35666a){_0x3d2d57=_0x3d2d57-0x0;var _0x58adc4=_0x68d7[_0x3d2d57];return _0x58adc4;};'use strict';var moment=require(_0x768d('0x0'));var Sequelize=require('sequelize');module['exports']={'uniqueid':{'type':Sequelize[_0x768d('0x1')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x768d('0x2')]},'leaveAt':{'type':Sequelize[_0x768d('0x2')]},'acceptAt':{'type':Sequelize[_0x768d('0x2')]},'exitAt':{'type':Sequelize[_0x768d('0x2')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x32c2=['sequelize','exports','STRING','DATE','moment'];(function(_0x2d73a6,_0x224975){var _0x1effc7=function(_0x2e9ff2){while(--_0x2e9ff2){_0x2d73a6['push'](_0x2d73a6['shift']());}};_0x1effc7(++_0x224975);}(_0x32c2,0x90));var _0x232c=function(_0x1636b9,_0x511b43){_0x1636b9=_0x1636b9-0x0;var _0x22d9cb=_0x32c2[_0x1636b9];return _0x22d9cb;};'use strict';var moment=require(_0x232c('0x0'));var Sequelize=require(_0x232c('0x1'));module[_0x232c('0x2')]={'uniqueid':{'type':Sequelize[_0x232c('0x3')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize[_0x232c('0x4')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize[_0x232c('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x292b=['filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','keys','include','find','catch','create','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','save','update','destroy','then','end','name','index','map','FaxQueueReport','rawAttributes','fieldName','type','model','query'];(function(_0x319c7e,_0x312b62){var _0x59e511=function(_0xb109d0){while(--_0xb109d0){_0x319c7e['push'](_0x319c7e['shift']());}};_0x59e511(++_0x312b62);}(_0x292b,0x64));var _0xb292=function(_0x47e309,_0x1e771a){_0x47e309=_0x47e309-0x0;var _0x2e1900=_0x292b[_0x47e309];return _0x2e1900;};'use strict';var emlformat=require(_0xb292('0x0'));var rimraf=require(_0xb292('0x1'));var zipdir=require(_0xb292('0x2'));var jsonpatch=require(_0xb292('0x3'));var rp=require(_0xb292('0x4'));var moment=require(_0xb292('0x5'));var BPromise=require(_0xb292('0x6'));var Mustache=require(_0xb292('0x7'));var util=require(_0xb292('0x8'));var path=require(_0xb292('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb292('0xa'));var _=require(_0xb292('0xb'));var squel=require(_0xb292('0xc'));var crypto=require('crypto');var jsforce=require(_0xb292('0xd'));var deskjs=require(_0xb292('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb292('0xf'));var Redis=require(_0xb292('0x10'));var authService=require(_0xb292('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xb292('0x12'));var hardwareService=require(_0xb292('0x13'));var logger=require(_0xb292('0x14'))(_0xb292('0x15'));var utils=require('../../config/utils');var config=require(_0xb292('0x16'));var licenseUtil=require(_0xb292('0x17'));var db=require(_0xb292('0x18'))['db'];function respondWithStatusCode(_0x160ead,_0x5dbdf4){_0x5dbdf4=_0x5dbdf4||0xcc;return function(_0x22bdce){if(_0x22bdce){return _0x160ead[_0xb292('0x19')](_0x5dbdf4);}return _0x160ead['status'](_0x5dbdf4)['end']();};}function respondWithResult(_0x5858ed,_0x104e5f){_0x104e5f=_0x104e5f||0xc8;return function(_0x223a1d){if(_0x223a1d){return _0x5858ed[_0xb292('0x1a')](_0x104e5f)[_0xb292('0x1b')](_0x223a1d);}};}function respondWithFilteredResult(_0x128f66,_0x1677bf){return function(_0x18b43c){if(_0x18b43c){var _0x5c1c01=typeof _0x1677bf[_0xb292('0x1c')]===_0xb292('0x1d')&&typeof _0x1677bf[_0xb292('0x1e')]===_0xb292('0x1d');var _0x183287=_0x18b43c[_0xb292('0x1f')];var _0x4caec9=_0x5c1c01?0x0:_0x1677bf[_0xb292('0x1c')];var _0x36598f=_0x5c1c01?_0x18b43c[_0xb292('0x1f')]:_0x1677bf[_0xb292('0x1c')]+_0x1677bf[_0xb292('0x1e')];var _0x1b162f;if(_0x36598f>=_0x183287){_0x36598f=_0x183287;_0x1b162f=0xc8;}else{_0x1b162f=0xce;}_0x128f66[_0xb292('0x1a')](_0x1b162f);return _0x128f66['set'](_0xb292('0x20'),_0x4caec9+'-'+_0x36598f+'/'+_0x183287)[_0xb292('0x1b')](_0x18b43c);}return null;};}function patchUpdates(_0x4437d6){return function(_0x5ee1b8){try{jsonpatch[_0xb292('0x21')](_0x5ee1b8,_0x4437d6,!![]);}catch(_0x46972e){return BPromise['reject'](_0x46972e);}return _0x5ee1b8[_0xb292('0x22')]();};}function saveUpdates(_0x4e18be,_0x41c21c){return function(_0x55b728){if(_0x55b728){return _0x55b728[_0xb292('0x23')](_0x4e18be)['then'](function(_0x3be8c7){return _0x3be8c7;});}return null;};}function removeEntity(_0x5e9ccf,_0x44735d){return function(_0x1de6e5){if(_0x1de6e5){return _0x1de6e5[_0xb292('0x24')]()[_0xb292('0x25')](function(){_0x5e9ccf[_0xb292('0x1a')](0xcc)[_0xb292('0x26')]();});}};}function handleEntityNotFound(_0x5ec4ce,_0x53d64e){return function(_0x5537ee){if(!_0x5537ee){_0x5ec4ce['sendStatus'](0x194);}return _0x5537ee;};}function handleError(_0xc6985f,_0x1d1f4c){_0x1d1f4c=_0x1d1f4c||0x1f4;return function(_0x1ecd86){logger['error'](_0x1ecd86['stack']);if(_0x1ecd86[_0xb292('0x27')]){delete _0x1ecd86[_0xb292('0x27')];}_0xc6985f['status'](_0x1d1f4c)['send'](_0x1ecd86);};}exports[_0xb292('0x28')]=function(_0xde939c,_0x3c8005){var _0x5bd3af={},_0x2fc66d={},_0x5e5a29={'count':0x0,'rows':[]};var _0x2c231e=_[_0xb292('0x29')](db[_0xb292('0x2a')][_0xb292('0x2b')],function(_0x2a901a){return{'name':_0x2a901a[_0xb292('0x2c')],'type':_0x2a901a[_0xb292('0x2d')]['key']};});_0x2fc66d[_0xb292('0x2e')]=_[_0xb292('0x29')](_0x2c231e,_0xb292('0x27'));_0x2fc66d[_0xb292('0x2f')]=_['keys'](_0xde939c[_0xb292('0x2f')]);_0x2fc66d[_0xb292('0x30')]=_[_0xb292('0x31')](_0x2fc66d[_0xb292('0x2e')],_0x2fc66d[_0xb292('0x2f')]);_0x5bd3af[_0xb292('0x32')]=_[_0xb292('0x31')](_0x2fc66d[_0xb292('0x2e')],qs[_0xb292('0x33')](_0xde939c[_0xb292('0x2f')][_0xb292('0x33')]));_0x5bd3af['attributes']=_0x5bd3af[_0xb292('0x32')][_0xb292('0x34')]?_0x5bd3af[_0xb292('0x32')]:_0x2fc66d[_0xb292('0x2e')];if(!_0xde939c['query']['hasOwnProperty'](_0xb292('0x35'))){_0x5bd3af[_0xb292('0x1e')]=qs[_0xb292('0x1e')](_0xde939c[_0xb292('0x2f')]['limit']);_0x5bd3af['offset']=qs[_0xb292('0x1c')](_0xde939c[_0xb292('0x2f')][_0xb292('0x1c')]);}_0x5bd3af[_0xb292('0x36')]=qs[_0xb292('0x37')](_0xde939c['query'][_0xb292('0x37')]);_0x5bd3af[_0xb292('0x38')]=qs[_0xb292('0x30')](_[_0xb292('0x39')](_0xde939c[_0xb292('0x2f')],_0x2fc66d[_0xb292('0x30')]),_0x2c231e);if(_0xde939c[_0xb292('0x2f')][_0xb292('0x3a')]){_0x5bd3af[_0xb292('0x38')]=_[_0xb292('0x3b')](_0x5bd3af[_0xb292('0x38')],{'$or':_[_0xb292('0x29')](_0x2c231e,function(_0x307805){if(_0x307805['type']!==_0xb292('0x3c')){var _0xa6fc79={};_0xa6fc79[_0x307805[_0xb292('0x27')]]={'$like':'%'+_0xde939c[_0xb292('0x2f')][_0xb292('0x3a')]+'%'};return _0xa6fc79;}})});}_0x5bd3af=_['merge']({},_0x5bd3af,_0xde939c[_0xb292('0x3d')]);var _0x4eb807={'where':_0x5bd3af[_0xb292('0x38')]};return db[_0xb292('0x2a')]['count'](_0x4eb807)[_0xb292('0x25')](function(_0x428a25){_0x5e5a29['count']=_0x428a25;if(_0xde939c[_0xb292('0x2f')][_0xb292('0x3e')]){_0x5bd3af['include']=[{'all':!![]}];}return db[_0xb292('0x2a')][_0xb292('0x3f')](_0x5bd3af);})[_0xb292('0x25')](function(_0x10c2c3){_0x5e5a29[_0xb292('0x40')]=_0x10c2c3;return _0x5e5a29;})[_0xb292('0x25')](respondWithFilteredResult(_0x3c8005,_0x5bd3af))['catch'](handleError(_0x3c8005,null));};exports[_0xb292('0x41')]=function(_0x3827f9,_0x4d9ccd){var _0x2534f1={'raw':!![],'where':{'id':_0x3827f9['params']['id']}},_0x3308e0={};_0x3308e0[_0xb292('0x2e')]=_[_0xb292('0x42')](db[_0xb292('0x2a')][_0xb292('0x2b')]);_0x3308e0[_0xb292('0x2f')]=_[_0xb292('0x42')](_0x3827f9['query']);_0x3308e0[_0xb292('0x30')]=_[_0xb292('0x31')](_0x3308e0[_0xb292('0x2e')],_0x3308e0[_0xb292('0x2f')]);_0x2534f1[_0xb292('0x32')]=_['intersection'](_0x3308e0[_0xb292('0x2e')],qs[_0xb292('0x33')](_0x3827f9[_0xb292('0x2f')]['fields']));_0x2534f1[_0xb292('0x32')]=_0x2534f1[_0xb292('0x32')][_0xb292('0x34')]?_0x2534f1[_0xb292('0x32')]:_0x3308e0[_0xb292('0x2e')];if(_0x3827f9[_0xb292('0x2f')][_0xb292('0x3e')]){_0x2534f1[_0xb292('0x43')]=[{'all':!![]}];}_0x2534f1=_[_0xb292('0x3b')]({},_0x2534f1,_0x3827f9[_0xb292('0x3d')]);return db[_0xb292('0x2a')][_0xb292('0x44')](_0x2534f1)['then'](handleEntityNotFound(_0x4d9ccd,null))['then'](respondWithResult(_0x4d9ccd,null))[_0xb292('0x45')](handleError(_0x4d9ccd,null));};exports[_0xb292('0x46')]=function(_0x4f9953,_0x12c1cf){return db[_0xb292('0x2a')][_0xb292('0x46')](_0x4f9953[_0xb292('0x47')],{})[_0xb292('0x25')](respondWithResult(_0x12c1cf,0xc9))[_0xb292('0x45')](handleError(_0x12c1cf,null));};exports[_0xb292('0x23')]=function(_0x4016c2,_0x2e92f6){if(_0x4016c2[_0xb292('0x47')]['id']){delete _0x4016c2[_0xb292('0x47')]['id'];}return db['FaxQueueReport'][_0xb292('0x44')]({'where':{'id':_0x4016c2['params']['id']}})['then'](handleEntityNotFound(_0x2e92f6,null))[_0xb292('0x25')](saveUpdates(_0x4016c2[_0xb292('0x47')],null))['then'](respondWithResult(_0x2e92f6,null))['catch'](handleError(_0x2e92f6,null));};exports[_0xb292('0x24')]=function(_0x48f03a,_0x2d494c){return db[_0xb292('0x2a')]['find']({'where':{'id':_0x48f03a[_0xb292('0x48')]['id']}})[_0xb292('0x25')](handleEntityNotFound(_0x2d494c,null))[_0xb292('0x25')](removeEntity(_0x2d494c,null))['catch'](handleError(_0x2d494c,null));};exports[_0xb292('0x49')]=function(_0x3f0031,_0xb5c34){return db[_0xb292('0x2a')][_0xb292('0x49')]()[_0xb292('0x25')](respondWithResult(_0xb5c34,null))[_0xb292('0x45')](handleError(_0xb5c34,null));};
\ No newline at end of file
+var _0x559a=['rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','FaxQueueReport','then','includeAll','include','findAll','catch','show','params','keys','length','options','create','body','find','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','sendStatus','status','json','undefined','limit','count','offset','apply','reject','save','update','destroy','end','error','stack','name','index','map'];(function(_0x525847,_0x2ec50e){var _0x32a484=function(_0x2031ec){while(--_0x2031ec){_0x525847['push'](_0x525847['shift']());}};_0x32a484(++_0x2ec50e);}(_0x559a,0xb3));var _0xa559=function(_0x5897c6,_0x4d75a6){_0x5897c6=_0x5897c6-0x0;var _0x4bf07e=_0x559a[_0x5897c6];return _0x4bf07e;};'use strict';var emlformat=require(_0xa559('0x0'));var rimraf=require(_0xa559('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa559('0x2'));var rp=require(_0xa559('0x3'));var moment=require(_0xa559('0x4'));var BPromise=require(_0xa559('0x5'));var Mustache=require(_0xa559('0x6'));var util=require(_0xa559('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0xa559('0x8'));var ejs=require(_0xa559('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa559('0xa'));var squel=require(_0xa559('0xb'));var crypto=require('crypto');var jsforce=require(_0xa559('0xc'));var deskjs=require(_0xa559('0xd'));var toCsv=require(_0xa559('0x8'));var querystring=require(_0xa559('0xe'));var Papa=require('papaparse');var Redis=require(_0xa559('0xf'));var authService=require(_0xa559('0x10'));var qs=require(_0xa559('0x11'));var as=require(_0xa559('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xa559('0x13'));var utils=require(_0xa559('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xa559('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x442e26,_0x5f0463){_0x5f0463=_0x5f0463||0xcc;return function(_0x2a646e){if(_0x2a646e){return _0x442e26[_0xa559('0x16')](_0x5f0463);}return _0x442e26[_0xa559('0x17')](_0x5f0463)['end']();};}function respondWithResult(_0xe93c61,_0x3853fd){_0x3853fd=_0x3853fd||0xc8;return function(_0x5ed915){if(_0x5ed915){return _0xe93c61[_0xa559('0x17')](_0x3853fd)[_0xa559('0x18')](_0x5ed915);}};}function respondWithFilteredResult(_0x369d26,_0x1e48b3){return function(_0x539a4b){if(_0x539a4b){var _0x309c27=typeof _0x1e48b3['offset']===_0xa559('0x19')&&typeof _0x1e48b3[_0xa559('0x1a')]==='undefined';var _0x2c6993=_0x539a4b[_0xa559('0x1b')];var _0x163405=_0x309c27?0x0:_0x1e48b3[_0xa559('0x1c')];var _0x1a4c42=_0x309c27?_0x539a4b[_0xa559('0x1b')]:_0x1e48b3[_0xa559('0x1c')]+_0x1e48b3[_0xa559('0x1a')];var _0x329d59;if(_0x1a4c42>=_0x2c6993){_0x1a4c42=_0x2c6993;_0x329d59=0xc8;}else{_0x329d59=0xce;}_0x369d26[_0xa559('0x17')](_0x329d59);return _0x369d26['set']('Content-Range',_0x163405+'-'+_0x1a4c42+'/'+_0x2c6993)[_0xa559('0x18')](_0x539a4b);}return null;};}function patchUpdates(_0x3aa532){return function(_0x47cb65){try{jsonpatch[_0xa559('0x1d')](_0x47cb65,_0x3aa532,!![]);}catch(_0x190a9e){return BPromise[_0xa559('0x1e')](_0x190a9e);}return _0x47cb65[_0xa559('0x1f')]();};}function saveUpdates(_0x1812ef,_0x2dd8cf){return function(_0x572046){if(_0x572046){return _0x572046[_0xa559('0x20')](_0x1812ef)['then'](function(_0x1d4370){return _0x1d4370;});}return null;};}function removeEntity(_0x396fe9,_0x314fef){return function(_0x487a60){if(_0x487a60){return _0x487a60[_0xa559('0x21')]()['then'](function(){_0x396fe9[_0xa559('0x17')](0xcc)[_0xa559('0x22')]();});}};}function handleEntityNotFound(_0x5834c6,_0x2a5181){return function(_0x552c2c){if(!_0x552c2c){_0x5834c6['sendStatus'](0x194);}return _0x552c2c;};}function handleError(_0x1581b9,_0x1914e7){_0x1914e7=_0x1914e7||0x1f4;return function(_0x3fcf7f){logger[_0xa559('0x23')](_0x3fcf7f[_0xa559('0x24')]);if(_0x3fcf7f[_0xa559('0x25')]){delete _0x3fcf7f[_0xa559('0x25')];}_0x1581b9[_0xa559('0x17')](_0x1914e7)['send'](_0x3fcf7f);};}exports[_0xa559('0x26')]=function(_0x30a781,_0x21c8a0){var _0x1c92b9={},_0x5f3fbb={},_0x1fb70f={'count':0x0,'rows':[]};var _0x32db9d=_[_0xa559('0x27')](db['FaxQueueReport'][_0xa559('0x28')],function(_0x224a3a){return{'name':_0x224a3a[_0xa559('0x29')],'type':_0x224a3a[_0xa559('0x2a')][_0xa559('0x2b')]};});_0x5f3fbb[_0xa559('0x2c')]=_[_0xa559('0x27')](_0x32db9d,_0xa559('0x25'));_0x5f3fbb[_0xa559('0x2d')]=_['keys'](_0x30a781[_0xa559('0x2d')]);_0x5f3fbb[_0xa559('0x2e')]=_[_0xa559('0x2f')](_0x5f3fbb[_0xa559('0x2c')],_0x5f3fbb['query']);_0x1c92b9[_0xa559('0x30')]=_['intersection'](_0x5f3fbb[_0xa559('0x2c')],qs[_0xa559('0x31')](_0x30a781[_0xa559('0x2d')][_0xa559('0x31')]));_0x1c92b9[_0xa559('0x30')]=_0x1c92b9[_0xa559('0x30')]['length']?_0x1c92b9[_0xa559('0x30')]:_0x5f3fbb[_0xa559('0x2c')];if(!_0x30a781[_0xa559('0x2d')][_0xa559('0x32')](_0xa559('0x33'))){_0x1c92b9[_0xa559('0x1a')]=qs[_0xa559('0x1a')](_0x30a781[_0xa559('0x2d')]['limit']);_0x1c92b9[_0xa559('0x1c')]=qs[_0xa559('0x1c')](_0x30a781[_0xa559('0x2d')][_0xa559('0x1c')]);}_0x1c92b9[_0xa559('0x34')]=qs[_0xa559('0x35')](_0x30a781[_0xa559('0x2d')]['sort']);_0x1c92b9[_0xa559('0x36')]=qs[_0xa559('0x2e')](_[_0xa559('0x37')](_0x30a781[_0xa559('0x2d')],_0x5f3fbb[_0xa559('0x2e')]),_0x32db9d);if(_0x30a781[_0xa559('0x2d')][_0xa559('0x38')]){_0x1c92b9[_0xa559('0x36')]=_[_0xa559('0x39')](_0x1c92b9[_0xa559('0x36')],{'$or':_[_0xa559('0x27')](_0x32db9d,function(_0x2e9351){if(_0x2e9351[_0xa559('0x2a')]!=='VIRTUAL'){var _0x3e58e3={};_0x3e58e3[_0x2e9351['name']]={'$like':'%'+_0x30a781[_0xa559('0x2d')]['filter']+'%'};return _0x3e58e3;}})});}_0x1c92b9=_[_0xa559('0x39')]({},_0x1c92b9,_0x30a781['options']);var _0x3873c9={'where':_0x1c92b9[_0xa559('0x36')]};return db[_0xa559('0x3a')][_0xa559('0x1b')](_0x3873c9)[_0xa559('0x3b')](function(_0x2efc09){_0x1fb70f[_0xa559('0x1b')]=_0x2efc09;if(_0x30a781['query'][_0xa559('0x3c')]){_0x1c92b9[_0xa559('0x3d')]=[{'all':!![]}];}return db[_0xa559('0x3a')][_0xa559('0x3e')](_0x1c92b9);})[_0xa559('0x3b')](function(_0x278f31){_0x1fb70f['rows']=_0x278f31;return _0x1fb70f;})[_0xa559('0x3b')](respondWithFilteredResult(_0x21c8a0,_0x1c92b9))[_0xa559('0x3f')](handleError(_0x21c8a0,null));};exports[_0xa559('0x40')]=function(_0x429249,_0x5d6325){var _0x6340d3={'raw':!![],'where':{'id':_0x429249[_0xa559('0x41')]['id']}},_0x2af622={};_0x2af622[_0xa559('0x2c')]=_[_0xa559('0x42')](db['FaxQueueReport'][_0xa559('0x28')]);_0x2af622[_0xa559('0x2d')]=_[_0xa559('0x42')](_0x429249[_0xa559('0x2d')]);_0x2af622[_0xa559('0x2e')]=_[_0xa559('0x2f')](_0x2af622[_0xa559('0x2c')],_0x2af622['query']);_0x6340d3[_0xa559('0x30')]=_[_0xa559('0x2f')](_0x2af622[_0xa559('0x2c')],qs[_0xa559('0x31')](_0x429249[_0xa559('0x2d')][_0xa559('0x31')]));_0x6340d3[_0xa559('0x30')]=_0x6340d3[_0xa559('0x30')][_0xa559('0x43')]?_0x6340d3['attributes']:_0x2af622[_0xa559('0x2c')];if(_0x429249[_0xa559('0x2d')][_0xa559('0x3c')]){_0x6340d3[_0xa559('0x3d')]=[{'all':!![]}];}_0x6340d3=_[_0xa559('0x39')]({},_0x6340d3,_0x429249[_0xa559('0x44')]);return db[_0xa559('0x3a')]['find'](_0x6340d3)[_0xa559('0x3b')](handleEntityNotFound(_0x5d6325,null))[_0xa559('0x3b')](respondWithResult(_0x5d6325,null))[_0xa559('0x3f')](handleError(_0x5d6325,null));};exports[_0xa559('0x45')]=function(_0x425dda,_0x482e46){return db[_0xa559('0x3a')][_0xa559('0x45')](_0x425dda['body'],{})[_0xa559('0x3b')](respondWithResult(_0x482e46,0xc9))[_0xa559('0x3f')](handleError(_0x482e46,null));};exports['update']=function(_0x56a722,_0x140490){if(_0x56a722[_0xa559('0x46')]['id']){delete _0x56a722[_0xa559('0x46')]['id'];}return db[_0xa559('0x3a')][_0xa559('0x47')]({'where':{'id':_0x56a722[_0xa559('0x41')]['id']}})['then'](handleEntityNotFound(_0x140490,null))[_0xa559('0x3b')](saveUpdates(_0x56a722['body'],null))['then'](respondWithResult(_0x140490,null))['catch'](handleError(_0x140490,null));};exports[_0xa559('0x21')]=function(_0x2c200e,_0x17453f){return db[_0xa559('0x3a')][_0xa559('0x47')]({'where':{'id':_0x2c200e[_0xa559('0x41')]['id']}})[_0xa559('0x3b')](handleEntityNotFound(_0x17453f,null))[_0xa559('0x3b')](removeEntity(_0x17453f,null))[_0xa559('0x3f')](handleError(_0x17453f,null));};exports[_0xa559('0x48')]=function(_0x3be912,_0x4abc17){return db[_0xa559('0x3a')][_0xa559('0x48')]()[_0xa559('0x3b')](respondWithResult(_0x4abc17,null))[_0xa559('0x3f')](handleError(_0x4abc17,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['report_fax_queue','uniqueid','lodash','util','../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./faxQueueReport.attributes','exports','FaxQueueReport'];(function(_0x3e62e1,_0x3959b3){var _0x3d0012=function(_0x5bf87c){while(--_0x5bf87c){_0x3e62e1['push'](_0x3e62e1['shift']());}};_0x3d0012(++_0x3959b3);}(_0x7a54,0x106));var _0x47a5=function(_0x3a8cec,_0x1fb286){_0x3a8cec=_0x3a8cec-0x0;var _0x42eb54=_0x7a54[_0x3a8cec];return _0x42eb54;};'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':'uniqueid','fields':[_0x47a5('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x1261=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./faxQueueReport.attributes','define','report_fax_queue','uniqueid','util'];(function(_0x1ae0b2,_0x1f75b0){var _0x71e8fc=function(_0x306542){while(--_0x306542){_0x1ae0b2['push'](_0x1ae0b2['shift']());}};_0x71e8fc(++_0x1f75b0);}(_0x1261,0x144));var _0x1126=function(_0xdc0397,_0x20d1f1){_0xdc0397=_0xdc0397-0x0;var _0x553d02=_0x1261[_0xdc0397];return _0x553d02;};'use strict';var _=require('lodash');var util=require(_0x1126('0x0'));var logger=require(_0x1126('0x1'))(_0x1126('0x2'));var moment=require(_0x1126('0x3'));var BPromise=require(_0x1126('0x4'));var rp=require(_0x1126('0x5'));var fs=require('fs');var path=require(_0x1126('0x6'));var rimraf=require(_0x1126('0x7'));var config=require(_0x1126('0x8'));var attributes=require(_0x1126('0x9'));module['exports']=function(_0x5c68c8,_0x40ba58){return _0x5c68c8[_0x1126('0xa')]('FaxQueueReport',attributes,{'tableName':_0x1126('0xb'),'paranoid':![],'indexes':[{'name':_0x1126('0xc'),'fields':[_0x1126('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d64=['limit','lodash','util','moment','randomstring','../../config/utils','../../config/logger','rpc','jayson/promise','request','info','FaxQueueReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','CreateFaxQueueReport','FaxQueueReport','create','options','raw','then','UpdateFaxQueueReport','update','body','attributes'];(function(_0x4c9e32,_0x271dfd){var _0x45b118=function(_0x2a0738){while(--_0x2a0738){_0x4c9e32['push'](_0x4c9e32['shift']());}};_0x45b118(++_0x271dfd);}(_0x3d64,0x1ee));var _0x43d6=function(_0x5776e7,_0x5337e8){_0x5776e7=_0x5776e7-0x0;var _0x11eb0f=_0x3d64[_0x5776e7];return _0x11eb0f;};'use strict';var _=require(_0x43d6('0x0'));var util=require(_0x43d6('0x1'));var moment=require(_0x43d6('0x2'));var BPromise=require('bluebird');var rs=require(_0x43d6('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x43d6('0x4'));var logger=require(_0x43d6('0x5'))(_0x43d6('0x6'));var config=require('../../config/environment');var jayson=require(_0x43d6('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x142098,_0x4acded,_0x355819){return new BPromise(function(_0x5564b5,_0x2dcdfd){return client[_0x43d6('0x8')](_0x142098,_0x355819)['then'](function(_0x3c5de8){logger[_0x43d6('0x9')](_0x43d6('0xa'),_0x4acded,_0x43d6('0xb'));logger[_0x43d6('0xc')]('FaxQueueReport,\x20%s,\x20%s,\x20%s',_0x4acded,_0x43d6('0xb'),JSON[_0x43d6('0xd')](_0x3c5de8));if(_0x3c5de8['error']){if(_0x3c5de8[_0x43d6('0xe')][_0x43d6('0xf')]===0x1f4){logger[_0x43d6('0xe')]('FaxQueueReport,\x20%s,\x20%s',_0x4acded,_0x3c5de8[_0x43d6('0xe')][_0x43d6('0x10')]);return _0x2dcdfd(_0x3c5de8[_0x43d6('0xe')][_0x43d6('0x10')]);}logger[_0x43d6('0xe')](_0x43d6('0xa'),_0x4acded,_0x3c5de8[_0x43d6('0xe')][_0x43d6('0x10')]);return _0x5564b5(_0x3c5de8['error'][_0x43d6('0x10')]);}else{logger[_0x43d6('0x9')](_0x43d6('0xa'),_0x4acded,_0x43d6('0xb'));_0x5564b5(_0x3c5de8['result'][_0x43d6('0x10')]);}})[_0x43d6('0x11')](function(_0x3bde8c){logger[_0x43d6('0xe')](_0x43d6('0xa'),_0x4acded,_0x3bde8c);_0x2dcdfd(_0x3bde8c);});});}exports[_0x43d6('0x12')]=function(_0x30b6fa){var _0x3b0fb5=this;return new Promise(function(_0x2a17cc,_0x3748df){return db[_0x43d6('0x13')][_0x43d6('0x14')](_0x30b6fa['body'],{'raw':_0x30b6fa['options']?_0x30b6fa[_0x43d6('0x15')][_0x43d6('0x16')]===undefined?!![]:![]:!![]})[_0x43d6('0x17')](function(_0x187fb4){logger[_0x43d6('0x9')]('CreateFaxQueueReport',_0x30b6fa);logger[_0x43d6('0xc')]('CreateFaxQueueReport',_0x30b6fa,JSON[_0x43d6('0xd')](_0x187fb4));_0x2a17cc(_0x187fb4);})[_0x43d6('0x11')](function(_0x336048){logger[_0x43d6('0xe')]('CreateFaxQueueReport',_0x336048[_0x43d6('0x10')],_0x30b6fa);_0x3748df(_0x3b0fb5[_0x43d6('0xe')](0x1f4,_0x336048[_0x43d6('0x10')]));});});};exports[_0x43d6('0x18')]=function(_0x3b49c1){var _0x5da62e=this;return new Promise(function(_0x14e8fe,_0x18e57e){return db[_0x43d6('0x13')][_0x43d6('0x19')](_0x3b49c1[_0x43d6('0x1a')],{'raw':_0x3b49c1[_0x43d6('0x15')]?_0x3b49c1['options'][_0x43d6('0x16')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3b49c1[_0x43d6('0x15')]?_0x3b49c1['options']['where']||null:null,'attributes':_0x3b49c1[_0x43d6('0x15')]?_0x3b49c1[_0x43d6('0x15')][_0x43d6('0x1b')]||null:null,'limit':_0x3b49c1['options']?_0x3b49c1['options'][_0x43d6('0x1c')]||null:null})['then'](function(_0x4c4bb8){logger[_0x43d6('0x9')]('UpdateFaxQueueReport',_0x3b49c1);logger[_0x43d6('0xc')](_0x43d6('0x18'),_0x3b49c1,JSON['stringify'](_0x4c4bb8));_0x14e8fe(_0x4c4bb8);})[_0x43d6('0x11')](function(_0xc7bc49){logger[_0x43d6('0xe')](_0x43d6('0x18'),_0xc7bc49['message'],_0x3b49c1);_0x18e57e(_0x5da62e[_0x43d6('0xe')](0x1f4,_0xc7bc49[_0x43d6('0x10')]));});});};
\ No newline at end of file
+var _0xef60=['result','catch','CreateFaxQueueReport','FaxQueueReport','create','UpdateFaxQueueReport','update','body','options','raw','where','attributes','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','http','request','then','info','FaxQueueReport,\x20%s,\x20%s','request\x20sent','debug','FaxQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x397c86,_0x24edb8){var _0x5c40c5=function(_0x3c92a3){while(--_0x3c92a3){_0x397c86['push'](_0x397c86['shift']());}};_0x5c40c5(++_0x24edb8);}(_0xef60,0x1cc));var _0x0ef6=function(_0x28e066,_0x1c7046){_0x28e066=_0x28e066-0x0;var _0x13eed3=_0xef60[_0x28e066];return _0x13eed3;};'use strict';var _=require('lodash');var util=require(_0x0ef6('0x0'));var moment=require(_0x0ef6('0x1'));var BPromise=require('bluebird');var rs=require(_0x0ef6('0x2'));var fs=require('fs');var Redis=require(_0x0ef6('0x3'));var db=require(_0x0ef6('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x0ef6('0x5'))(_0x0ef6('0x6'));var config=require('../../config/environment');var jayson=require(_0x0ef6('0x7'));var client=jayson['client'][_0x0ef6('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x21a696,_0x4418db,_0x440227){return new BPromise(function(_0x25db70,_0x1b518b){return client[_0x0ef6('0x9')](_0x21a696,_0x440227)[_0x0ef6('0xa')](function(_0x39c602){logger[_0x0ef6('0xb')](_0x0ef6('0xc'),_0x4418db,_0x0ef6('0xd'));logger[_0x0ef6('0xe')](_0x0ef6('0xf'),_0x4418db,'request\x20sent',JSON[_0x0ef6('0x10')](_0x39c602));if(_0x39c602[_0x0ef6('0x11')]){if(_0x39c602[_0x0ef6('0x11')][_0x0ef6('0x12')]===0x1f4){logger[_0x0ef6('0x11')]('FaxQueueReport,\x20%s,\x20%s',_0x4418db,_0x39c602[_0x0ef6('0x11')][_0x0ef6('0x13')]);return _0x1b518b(_0x39c602[_0x0ef6('0x11')]['message']);}logger[_0x0ef6('0x11')](_0x0ef6('0xc'),_0x4418db,_0x39c602[_0x0ef6('0x11')][_0x0ef6('0x13')]);return _0x25db70(_0x39c602[_0x0ef6('0x11')][_0x0ef6('0x13')]);}else{logger[_0x0ef6('0xb')](_0x0ef6('0xc'),_0x4418db,_0x0ef6('0xd'));_0x25db70(_0x39c602[_0x0ef6('0x14')][_0x0ef6('0x13')]);}})[_0x0ef6('0x15')](function(_0x100a7f){logger['error'](_0x0ef6('0xc'),_0x4418db,_0x100a7f);_0x1b518b(_0x100a7f);});});}exports[_0x0ef6('0x16')]=function(_0x5e61e9){var _0x2be6bd=this;return new Promise(function(_0x53ccfa,_0x285c4b){return db[_0x0ef6('0x17')][_0x0ef6('0x18')](_0x5e61e9['body'],{'raw':_0x5e61e9['options']?_0x5e61e9['options']['raw']===undefined?!![]:![]:!![]})[_0x0ef6('0xa')](function(_0x14a56a){logger[_0x0ef6('0xb')](_0x0ef6('0x16'),_0x5e61e9);logger[_0x0ef6('0xe')](_0x0ef6('0x16'),_0x5e61e9,JSON[_0x0ef6('0x10')](_0x14a56a));_0x53ccfa(_0x14a56a);})[_0x0ef6('0x15')](function(_0xef6fe9){logger[_0x0ef6('0x11')](_0x0ef6('0x16'),_0xef6fe9[_0x0ef6('0x13')],_0x5e61e9);_0x285c4b(_0x2be6bd[_0x0ef6('0x11')](0x1f4,_0xef6fe9[_0x0ef6('0x13')]));});});};exports[_0x0ef6('0x19')]=function(_0x497b83){var _0x4aeaaf=this;return new Promise(function(_0x4d0661,_0x15a312){return db[_0x0ef6('0x17')][_0x0ef6('0x1a')](_0x497b83[_0x0ef6('0x1b')],{'raw':_0x497b83['options']?_0x497b83[_0x0ef6('0x1c')][_0x0ef6('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x497b83[_0x0ef6('0x1c')]?_0x497b83[_0x0ef6('0x1c')][_0x0ef6('0x1e')]||null:null,'attributes':_0x497b83[_0x0ef6('0x1c')]?_0x497b83[_0x0ef6('0x1c')][_0x0ef6('0x1f')]||null:null,'limit':_0x497b83['options']?_0x497b83[_0x0ef6('0x1c')]['limit']||null:null})[_0x0ef6('0xa')](function(_0x54e9c9){logger[_0x0ef6('0xb')](_0x0ef6('0x19'),_0x497b83);logger[_0x0ef6('0xe')]('UpdateFaxQueueReport',_0x497b83,JSON[_0x0ef6('0x10')](_0x54e9c9));_0x4d0661(_0x54e9c9);})['catch'](function(_0x48dceb){logger[_0x0ef6('0x11')](_0x0ef6('0x19'),_0x48dceb['message'],_0x497b83);_0x15a312(_0x4aeaaf[_0x0ef6('0x11')](0x1f4,_0x48dceb['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x040a=['isAuthenticated','describe','post','create','update','delete','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get'];(function(_0x2e1959,_0x5c5793){var _0x2e7aa8=function(_0xd5bc60){while(--_0xd5bc60){_0x2e1959['push'](_0x2e1959['shift']());}};_0x2e7aa8(++_0x5c5793);}(_0x040a,0xd7));var _0xa040=function(_0x5bf2b3,_0xfcd364){_0x5bf2b3=_0x5bf2b3-0x0;var _0x5e8a9b=_0x040a[_0x5bf2b3];return _0x5e8a9b;};'use strict';var multer=require('multer');var util=require(_0xa040('0x0'));var path=require(_0xa040('0x1'));var timeout=require(_0xa040('0x2'));var express=require('express');var router=express[_0xa040('0x3')]();var fs_extra=require(_0xa040('0x4'));var auth=require(_0xa040('0x5'));var interaction=require(_0xa040('0x6'));var config=require(_0xa040('0x7'));var controller=require('./faxQueueReport.controller');router[_0xa040('0x8')]('/',auth['isAuthenticated'](),controller['index']);router[_0xa040('0x8')]('/describe',auth[_0xa040('0x9')](),controller[_0xa040('0xa')]);router[_0xa040('0x8')]('/:id',auth[_0xa040('0x9')](),controller['show']);router[_0xa040('0xb')]('/',auth['isAuthenticated'](),controller[_0xa040('0xc')]);router['put']('/:id',auth[_0xa040('0x9')](),controller[_0xa040('0xd')]);router[_0xa040('0xe')]('/:id',auth[_0xa040('0x9')](),controller['destroy']);module[_0xa040('0xf')]=router;
\ No newline at end of file
+var _0x7a1a=['put','update','delete','destroy','exports','multer','util','express','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','/describe','/:id','show','post','create'];(function(_0x2468c3,_0x24b861){var _0x320a04=function(_0x1b5ccd){while(--_0x1b5ccd){_0x2468c3['push'](_0x2468c3['shift']());}};_0x320a04(++_0x24b861);}(_0x7a1a,0x1f3));var _0xa7a1=function(_0x24d15f,_0x4ecbcf){_0x24d15f=_0x24d15f-0x0;var _0x234339=_0x7a1a[_0x24d15f];return _0x234339;};'use strict';var multer=require(_0xa7a1('0x0'));var util=require(_0xa7a1('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xa7a1('0x2'));var router=express['Router']();var fs_extra=require(_0xa7a1('0x3'));var auth=require(_0xa7a1('0x4'));var interaction=require(_0xa7a1('0x5'));var config=require('../../config/environment');var controller=require('./faxQueueReport.controller');router[_0xa7a1('0x6')]('/',auth[_0xa7a1('0x7')](),controller[_0xa7a1('0x8')]);router['get'](_0xa7a1('0x9'),auth[_0xa7a1('0x7')](),controller['describe']);router[_0xa7a1('0x6')](_0xa7a1('0xa'),auth['isAuthenticated'](),controller[_0xa7a1('0xb')]);router[_0xa7a1('0xc')]('/',auth['isAuthenticated'](),controller[_0xa7a1('0xd')]);router[_0xa7a1('0xe')]('/:id',auth[_0xa7a1('0x7')](),controller[_0xa7a1('0xf')]);router[_0xa7a1('0x10')]('/:id',auth[_0xa7a1('0x7')](),controller[_0xa7a1('0x11')]);module[_0xa7a1('0x12')]=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(_0x3acb67,_0xbe0faa){var _0x534936=function(_0x4724a4){while(--_0x4724a4){_0x3acb67['push'](_0x3acb67['shift']());}};_0x534936(++_0xbe0faa);}(_0x34e8,0x12c));var _0x834e=function(_0x3ead0f,_0x21612e){_0x3ead0f=_0x3ead0f-0x0;var _0x38a6f6=_0x34e8[_0x3ead0f];return _0x38a6f6;};'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 _0x9c44=['ENUM','account','agent','queue','NOW','exports','STRING'];(function(_0x4d150a,_0x25f904){var _0x885bd4=function(_0x552a7d){while(--_0x552a7d){_0x4d150a['push'](_0x4d150a['shift']());}};_0x885bd4(++_0x25f904);}(_0x9c44,0x178));var _0x49c4=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0x9c44[_0x167cc1];return _0x10bc4b;};'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 _0x6383=['query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','params','include','find','create','body','describe','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','then','destroy','error','stack','name','index','map','FaxTransferReport','rawAttributes','fieldName','type','key','model'];(function(_0x413feb,_0x10477f){var _0x40ee88=function(_0x32a3f6){while(--_0x32a3f6){_0x413feb['push'](_0x413feb['shift']());}};_0x40ee88(++_0x10477f);}(_0x6383,0x18a));var _0x3638=function(_0x4a0c5b,_0x18e497){_0x4a0c5b=_0x4a0c5b-0x0;var _0x579229=_0x6383[_0x4a0c5b];return _0x579229;};'use strict';var emlformat=require(_0x3638('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3638('0x1'));var jsonpatch=require(_0x3638('0x2'));var rp=require('request-promise');var moment=require(_0x3638('0x3'));var BPromise=require(_0x3638('0x4'));var Mustache=require(_0x3638('0x5'));var util=require(_0x3638('0x6'));var path=require(_0x3638('0x7'));var sox=require(_0x3638('0x8'));var csv=require(_0x3638('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3638('0xa'));var _=require(_0x3638('0xb'));var squel=require('squel');var crypto=require(_0x3638('0xc'));var jsforce=require(_0x3638('0xd'));var deskjs=require(_0x3638('0xe'));var toCsv=require(_0x3638('0x9'));var querystring=require('querystring');var Papa=require(_0x3638('0xf'));var Redis=require(_0x3638('0x10'));var authService=require(_0x3638('0x11'));var qs=require(_0x3638('0x12'));var as=require(_0x3638('0x13'));var hardwareService=require(_0x3638('0x14'));var logger=require(_0x3638('0x15'))(_0x3638('0x16'));var utils=require(_0x3638('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4b910b,_0xd9645b){_0xd9645b=_0xd9645b||0xcc;return function(_0x2ada31){if(_0x2ada31){return _0x4b910b[_0x3638('0x18')](_0xd9645b);}return _0x4b910b[_0x3638('0x19')](_0xd9645b)[_0x3638('0x1a')]();};}function respondWithResult(_0x523840,_0x119b0d){_0x119b0d=_0x119b0d||0xc8;return function(_0x110d12){if(_0x110d12){return _0x523840['status'](_0x119b0d)[_0x3638('0x1b')](_0x110d12);}};}function respondWithFilteredResult(_0x45de8d,_0xff5473){return function(_0x2f97f1){if(_0x2f97f1){var _0x98d719=typeof _0xff5473['offset']===_0x3638('0x1c')&&typeof _0xff5473[_0x3638('0x1d')]===_0x3638('0x1c');var _0x1fcd1b=_0x2f97f1[_0x3638('0x1e')];var _0x227f94=_0x98d719?0x0:_0xff5473[_0x3638('0x1f')];var _0x24fdd8=_0x98d719?_0x2f97f1['count']:_0xff5473[_0x3638('0x1f')]+_0xff5473[_0x3638('0x1d')];var _0x136e6c;if(_0x24fdd8>=_0x1fcd1b){_0x24fdd8=_0x1fcd1b;_0x136e6c=0xc8;}else{_0x136e6c=0xce;}_0x45de8d[_0x3638('0x19')](_0x136e6c);return _0x45de8d[_0x3638('0x20')](_0x3638('0x21'),_0x227f94+'-'+_0x24fdd8+'/'+_0x1fcd1b)[_0x3638('0x1b')](_0x2f97f1);}return null;};}function patchUpdates(_0xb9f116){return function(_0x17ab95){try{jsonpatch[_0x3638('0x22')](_0x17ab95,_0xb9f116,!![]);}catch(_0x541505){return BPromise['reject'](_0x541505);}return _0x17ab95[_0x3638('0x23')]();};}function saveUpdates(_0x8297d5,_0x1a0d64){return function(_0x3ab3c8){if(_0x3ab3c8){return _0x3ab3c8[_0x3638('0x24')](_0x8297d5)[_0x3638('0x25')](function(_0x25a69a){return _0x25a69a;});}return null;};}function removeEntity(_0x4a2072,_0x42b5a0){return function(_0x527ba5){if(_0x527ba5){return _0x527ba5[_0x3638('0x26')]()[_0x3638('0x25')](function(){_0x4a2072[_0x3638('0x19')](0xcc)[_0x3638('0x1a')]();});}};}function handleEntityNotFound(_0x4b6e26,_0x3a3230){return function(_0x27ad43){if(!_0x27ad43){_0x4b6e26['sendStatus'](0x194);}return _0x27ad43;};}function handleError(_0x14412b,_0x23c223){_0x23c223=_0x23c223||0x1f4;return function(_0xad25a3){logger[_0x3638('0x27')](_0xad25a3[_0x3638('0x28')]);if(_0xad25a3[_0x3638('0x29')]){delete _0xad25a3[_0x3638('0x29')];}_0x14412b[_0x3638('0x19')](_0x23c223)['send'](_0xad25a3);};}exports[_0x3638('0x2a')]=function(_0x388d62,_0xab8e89){var _0x3ab3ca={},_0x29bba8={},_0x3eb94a={'count':0x0,'rows':[]};var _0x5bcc59=_[_0x3638('0x2b')](db[_0x3638('0x2c')][_0x3638('0x2d')],function(_0x4dd898){return{'name':_0x4dd898[_0x3638('0x2e')],'type':_0x4dd898[_0x3638('0x2f')][_0x3638('0x30')]};});_0x29bba8[_0x3638('0x31')]=_['map'](_0x5bcc59,_0x3638('0x29'));_0x29bba8[_0x3638('0x32')]=_[_0x3638('0x33')](_0x388d62[_0x3638('0x32')]);_0x29bba8[_0x3638('0x34')]=_[_0x3638('0x35')](_0x29bba8[_0x3638('0x31')],_0x29bba8[_0x3638('0x32')]);_0x3ab3ca[_0x3638('0x36')]=_[_0x3638('0x35')](_0x29bba8['model'],qs[_0x3638('0x37')](_0x388d62['query']['fields']));_0x3ab3ca[_0x3638('0x36')]=_0x3ab3ca[_0x3638('0x36')][_0x3638('0x38')]?_0x3ab3ca[_0x3638('0x36')]:_0x29bba8[_0x3638('0x31')];if(!_0x388d62[_0x3638('0x32')]['hasOwnProperty'](_0x3638('0x39'))){_0x3ab3ca[_0x3638('0x1d')]=qs[_0x3638('0x1d')](_0x388d62[_0x3638('0x32')][_0x3638('0x1d')]);_0x3ab3ca[_0x3638('0x1f')]=qs[_0x3638('0x1f')](_0x388d62[_0x3638('0x32')][_0x3638('0x1f')]);}_0x3ab3ca['order']=qs[_0x3638('0x3a')](_0x388d62[_0x3638('0x32')][_0x3638('0x3a')]);_0x3ab3ca[_0x3638('0x3b')]=qs[_0x3638('0x34')](_['pick'](_0x388d62[_0x3638('0x32')],_0x29bba8['filters']),_0x5bcc59);if(_0x388d62[_0x3638('0x32')][_0x3638('0x3c')]){_0x3ab3ca[_0x3638('0x3b')]=_[_0x3638('0x3d')](_0x3ab3ca[_0x3638('0x3b')],{'$or':_[_0x3638('0x2b')](_0x5bcc59,function(_0x257dfc){if(_0x257dfc['type']!==_0x3638('0x3e')){var _0x45c3bd={};_0x45c3bd[_0x257dfc[_0x3638('0x29')]]={'$like':'%'+_0x388d62[_0x3638('0x32')][_0x3638('0x3c')]+'%'};return _0x45c3bd;}})});}_0x3ab3ca=_[_0x3638('0x3d')]({},_0x3ab3ca,_0x388d62[_0x3638('0x3f')]);var _0x190795={'where':_0x3ab3ca[_0x3638('0x3b')]};return db['FaxTransferReport'][_0x3638('0x1e')](_0x190795)[_0x3638('0x25')](function(_0x507409){_0x3eb94a[_0x3638('0x1e')]=_0x507409;if(_0x388d62[_0x3638('0x32')][_0x3638('0x40')]){_0x3ab3ca['include']=[{'all':!![]}];}return db[_0x3638('0x2c')][_0x3638('0x41')](_0x3ab3ca);})[_0x3638('0x25')](function(_0x47d2b7){_0x3eb94a[_0x3638('0x42')]=_0x47d2b7;return _0x3eb94a;})[_0x3638('0x25')](respondWithFilteredResult(_0xab8e89,_0x3ab3ca))[_0x3638('0x43')](handleError(_0xab8e89,null));};exports['show']=function(_0x597de1,_0x789704){var _0x5c74e3={'raw':!![],'where':{'id':_0x597de1[_0x3638('0x44')]['id']}},_0x15afcf={};_0x15afcf['model']=_[_0x3638('0x33')](db[_0x3638('0x2c')][_0x3638('0x2d')]);_0x15afcf['query']=_[_0x3638('0x33')](_0x597de1[_0x3638('0x32')]);_0x15afcf[_0x3638('0x34')]=_['intersection'](_0x15afcf['model'],_0x15afcf[_0x3638('0x32')]);_0x5c74e3[_0x3638('0x36')]=_[_0x3638('0x35')](_0x15afcf[_0x3638('0x31')],qs[_0x3638('0x37')](_0x597de1[_0x3638('0x32')][_0x3638('0x37')]));_0x5c74e3['attributes']=_0x5c74e3['attributes'][_0x3638('0x38')]?_0x5c74e3[_0x3638('0x36')]:_0x15afcf[_0x3638('0x31')];if(_0x597de1[_0x3638('0x32')][_0x3638('0x40')]){_0x5c74e3[_0x3638('0x45')]=[{'all':!![]}];}_0x5c74e3=_['merge']({},_0x5c74e3,_0x597de1[_0x3638('0x3f')]);return db[_0x3638('0x2c')][_0x3638('0x46')](_0x5c74e3)[_0x3638('0x25')](handleEntityNotFound(_0x789704,null))[_0x3638('0x25')](respondWithResult(_0x789704,null))[_0x3638('0x43')](handleError(_0x789704,null));};exports[_0x3638('0x47')]=function(_0x4c41a1,_0x3480f3){return db[_0x3638('0x2c')][_0x3638('0x47')](_0x4c41a1['body'],{})[_0x3638('0x25')](respondWithResult(_0x3480f3,0xc9))[_0x3638('0x43')](handleError(_0x3480f3,null));};exports[_0x3638('0x24')]=function(_0x20174c,_0x884846){if(_0x20174c[_0x3638('0x48')]['id']){delete _0x20174c['body']['id'];}return db[_0x3638('0x2c')][_0x3638('0x46')]({'where':{'id':_0x20174c[_0x3638('0x44')]['id']}})['then'](handleEntityNotFound(_0x884846,null))[_0x3638('0x25')](saveUpdates(_0x20174c['body'],null))[_0x3638('0x25')](respondWithResult(_0x884846,null))['catch'](handleError(_0x884846,null));};exports['destroy']=function(_0x543421,_0x8bcb7b){return db['FaxTransferReport'][_0x3638('0x46')]({'where':{'id':_0x543421[_0x3638('0x44')]['id']}})[_0x3638('0x25')](handleEntityNotFound(_0x8bcb7b,null))[_0x3638('0x25')](removeEntity(_0x8bcb7b,null))[_0x3638('0x43')](handleError(_0x8bcb7b,null));};exports[_0x3638('0x49')]=function(_0x3fe137,_0x120a63){return db[_0x3638('0x2c')][_0x3638('0x49')]()['then'](respondWithResult(_0x120a63,null))[_0x3638('0x43')](handleError(_0x120a63,null));};
\ No newline at end of file
+var _0x0ee4=['filters','pick','merge','where','VIRTUAL','filter','options','includeAll','include','rows','then','catch','show','params','find','create','body','update','describe','eml-format','rimraf','fast-json-patch','bluebird','mustache','util','sox','to-csv','lodash','squel','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','Content-Range','json','apply','reject','destroy','end','error','stack','name','send','index','map','FaxTransferReport','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort'];(function(_0x4a62a3,_0x421085){var _0x45e176=function(_0x330944){while(--_0x330944){_0x4a62a3['push'](_0x4a62a3['shift']());}};_0x45e176(++_0x421085);}(_0x0ee4,0x12f));var _0x40ee=function(_0x236f1a,_0x3e03c4){_0x236f1a=_0x236f1a-0x0;var _0x4e3071=_0x0ee4[_0x236f1a];return _0x4e3071;};'use strict';var emlformat=require(_0x40ee('0x0'));var rimraf=require(_0x40ee('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x40ee('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x40ee('0x3'));var Mustache=require(_0x40ee('0x4'));var util=require(_0x40ee('0x5'));var path=require('path');var sox=require(_0x40ee('0x6'));var csv=require(_0x40ee('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x40ee('0x8'));var squel=require(_0x40ee('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x40ee('0xa'));var toCsv=require(_0x40ee('0x7'));var querystring=require(_0x40ee('0xb'));var Papa=require('papaparse');var Redis=require(_0x40ee('0xc'));var authService=require('../../components/auth/service');var qs=require(_0x40ee('0xd'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x40ee('0xe'));var logger=require('../../config/logger')(_0x40ee('0xf'));var utils=require(_0x40ee('0x10'));var config=require(_0x40ee('0x11'));var licenseUtil=require(_0x40ee('0x12'));var db=require(_0x40ee('0x13'))['db'];function respondWithStatusCode(_0x30c9ce,_0x16c664){_0x16c664=_0x16c664||0xcc;return function(_0x4c3ee7){if(_0x4c3ee7){return _0x30c9ce[_0x40ee('0x14')](_0x16c664);}return _0x30c9ce[_0x40ee('0x15')](_0x16c664)['end']();};}function respondWithResult(_0x2a48f0,_0x297652){_0x297652=_0x297652||0xc8;return function(_0x413dc8){if(_0x413dc8){return _0x2a48f0[_0x40ee('0x15')](_0x297652)['json'](_0x413dc8);}};}function respondWithFilteredResult(_0x4fcca7,_0x4775d7){return function(_0x5bfa3e){if(_0x5bfa3e){var _0x21cff7=typeof _0x4775d7[_0x40ee('0x16')]===_0x40ee('0x17')&&typeof _0x4775d7[_0x40ee('0x18')]===_0x40ee('0x17');var _0x417532=_0x5bfa3e[_0x40ee('0x19')];var _0x2e97e0=_0x21cff7?0x0:_0x4775d7[_0x40ee('0x16')];var _0x3ef345=_0x21cff7?_0x5bfa3e[_0x40ee('0x19')]:_0x4775d7['offset']+_0x4775d7[_0x40ee('0x18')];var _0x49140c;if(_0x3ef345>=_0x417532){_0x3ef345=_0x417532;_0x49140c=0xc8;}else{_0x49140c=0xce;}_0x4fcca7[_0x40ee('0x15')](_0x49140c);return _0x4fcca7['set'](_0x40ee('0x1a'),_0x2e97e0+'-'+_0x3ef345+'/'+_0x417532)[_0x40ee('0x1b')](_0x5bfa3e);}return null;};}function patchUpdates(_0x6a7119){return function(_0x438e9f){try{jsonpatch[_0x40ee('0x1c')](_0x438e9f,_0x6a7119,!![]);}catch(_0x54016a){return BPromise[_0x40ee('0x1d')](_0x54016a);}return _0x438e9f['save']();};}function saveUpdates(_0xea3af,_0x220249){return function(_0x4bc6ac){if(_0x4bc6ac){return _0x4bc6ac['update'](_0xea3af)['then'](function(_0x1d4c16){return _0x1d4c16;});}return null;};}function removeEntity(_0x55fbe1,_0x275209){return function(_0x46ef67){if(_0x46ef67){return _0x46ef67[_0x40ee('0x1e')]()['then'](function(){_0x55fbe1[_0x40ee('0x15')](0xcc)[_0x40ee('0x1f')]();});}};}function handleEntityNotFound(_0x2f3d0a,_0x4e1e7a){return function(_0x4da5be){if(!_0x4da5be){_0x2f3d0a[_0x40ee('0x14')](0x194);}return _0x4da5be;};}function handleError(_0xae321e,_0x1ab3b6){_0x1ab3b6=_0x1ab3b6||0x1f4;return function(_0x2b2cdf){logger[_0x40ee('0x20')](_0x2b2cdf[_0x40ee('0x21')]);if(_0x2b2cdf[_0x40ee('0x22')]){delete _0x2b2cdf[_0x40ee('0x22')];}_0xae321e[_0x40ee('0x15')](_0x1ab3b6)[_0x40ee('0x23')](_0x2b2cdf);};}exports[_0x40ee('0x24')]=function(_0x23fe27,_0x312bc2){var _0x21be2d={},_0x46dbcf={},_0x4d32ff={'count':0x0,'rows':[]};var _0x23839b=_[_0x40ee('0x25')](db[_0x40ee('0x26')][_0x40ee('0x27')],function(_0x2274f7){return{'name':_0x2274f7[_0x40ee('0x28')],'type':_0x2274f7[_0x40ee('0x29')]['key']};});_0x46dbcf[_0x40ee('0x2a')]=_[_0x40ee('0x25')](_0x23839b,_0x40ee('0x22'));_0x46dbcf[_0x40ee('0x2b')]=_[_0x40ee('0x2c')](_0x23fe27[_0x40ee('0x2b')]);_0x46dbcf['filters']=_[_0x40ee('0x2d')](_0x46dbcf[_0x40ee('0x2a')],_0x46dbcf[_0x40ee('0x2b')]);_0x21be2d[_0x40ee('0x2e')]=_['intersection'](_0x46dbcf[_0x40ee('0x2a')],qs['fields'](_0x23fe27[_0x40ee('0x2b')][_0x40ee('0x2f')]));_0x21be2d[_0x40ee('0x2e')]=_0x21be2d[_0x40ee('0x2e')][_0x40ee('0x30')]?_0x21be2d[_0x40ee('0x2e')]:_0x46dbcf[_0x40ee('0x2a')];if(!_0x23fe27[_0x40ee('0x2b')][_0x40ee('0x31')]('nolimit')){_0x21be2d['limit']=qs[_0x40ee('0x18')](_0x23fe27[_0x40ee('0x2b')][_0x40ee('0x18')]);_0x21be2d[_0x40ee('0x16')]=qs['offset'](_0x23fe27[_0x40ee('0x2b')]['offset']);}_0x21be2d[_0x40ee('0x32')]=qs[_0x40ee('0x33')](_0x23fe27[_0x40ee('0x2b')][_0x40ee('0x33')]);_0x21be2d['where']=qs[_0x40ee('0x34')](_[_0x40ee('0x35')](_0x23fe27['query'],_0x46dbcf[_0x40ee('0x34')]),_0x23839b);if(_0x23fe27[_0x40ee('0x2b')]['filter']){_0x21be2d['where']=_[_0x40ee('0x36')](_0x21be2d[_0x40ee('0x37')],{'$or':_[_0x40ee('0x25')](_0x23839b,function(_0x556177){if(_0x556177[_0x40ee('0x29')]!==_0x40ee('0x38')){var _0x3dc0ba={};_0x3dc0ba[_0x556177[_0x40ee('0x22')]]={'$like':'%'+_0x23fe27[_0x40ee('0x2b')][_0x40ee('0x39')]+'%'};return _0x3dc0ba;}})});}_0x21be2d=_[_0x40ee('0x36')]({},_0x21be2d,_0x23fe27[_0x40ee('0x3a')]);var _0x2e9733={'where':_0x21be2d['where']};return db[_0x40ee('0x26')][_0x40ee('0x19')](_0x2e9733)['then'](function(_0x5d21fc){_0x4d32ff[_0x40ee('0x19')]=_0x5d21fc;if(_0x23fe27[_0x40ee('0x2b')][_0x40ee('0x3b')]){_0x21be2d[_0x40ee('0x3c')]=[{'all':!![]}];}return db[_0x40ee('0x26')]['findAll'](_0x21be2d);})['then'](function(_0x5233f9){_0x4d32ff[_0x40ee('0x3d')]=_0x5233f9;return _0x4d32ff;})[_0x40ee('0x3e')](respondWithFilteredResult(_0x312bc2,_0x21be2d))[_0x40ee('0x3f')](handleError(_0x312bc2,null));};exports[_0x40ee('0x40')]=function(_0x5a0aff,_0x595c2c){var _0x2a463c={'raw':!![],'where':{'id':_0x5a0aff[_0x40ee('0x41')]['id']}},_0xc6be8a={};_0xc6be8a['model']=_[_0x40ee('0x2c')](db[_0x40ee('0x26')]['rawAttributes']);_0xc6be8a['query']=_[_0x40ee('0x2c')](_0x5a0aff[_0x40ee('0x2b')]);_0xc6be8a[_0x40ee('0x34')]=_[_0x40ee('0x2d')](_0xc6be8a[_0x40ee('0x2a')],_0xc6be8a[_0x40ee('0x2b')]);_0x2a463c[_0x40ee('0x2e')]=_['intersection'](_0xc6be8a['model'],qs[_0x40ee('0x2f')](_0x5a0aff['query']['fields']));_0x2a463c[_0x40ee('0x2e')]=_0x2a463c['attributes'][_0x40ee('0x30')]?_0x2a463c[_0x40ee('0x2e')]:_0xc6be8a[_0x40ee('0x2a')];if(_0x5a0aff[_0x40ee('0x2b')][_0x40ee('0x3b')]){_0x2a463c[_0x40ee('0x3c')]=[{'all':!![]}];}_0x2a463c=_['merge']({},_0x2a463c,_0x5a0aff[_0x40ee('0x3a')]);return db['FaxTransferReport'][_0x40ee('0x42')](_0x2a463c)[_0x40ee('0x3e')](handleEntityNotFound(_0x595c2c,null))['then'](respondWithResult(_0x595c2c,null))['catch'](handleError(_0x595c2c,null));};exports[_0x40ee('0x43')]=function(_0x241235,_0x1a331c){return db[_0x40ee('0x26')][_0x40ee('0x43')](_0x241235[_0x40ee('0x44')],{})[_0x40ee('0x3e')](respondWithResult(_0x1a331c,0xc9))[_0x40ee('0x3f')](handleError(_0x1a331c,null));};exports[_0x40ee('0x45')]=function(_0x365594,_0x44155b){if(_0x365594[_0x40ee('0x44')]['id']){delete _0x365594[_0x40ee('0x44')]['id'];}return db[_0x40ee('0x26')][_0x40ee('0x42')]({'where':{'id':_0x365594[_0x40ee('0x41')]['id']}})[_0x40ee('0x3e')](handleEntityNotFound(_0x44155b,null))[_0x40ee('0x3e')](saveUpdates(_0x365594[_0x40ee('0x44')],null))[_0x40ee('0x3e')](respondWithResult(_0x44155b,null))[_0x40ee('0x3f')](handleError(_0x44155b,null));};exports[_0x40ee('0x1e')]=function(_0xa9c285,_0x571908){return db[_0x40ee('0x26')][_0x40ee('0x42')]({'where':{'id':_0xa9c285[_0x40ee('0x41')]['id']}})[_0x40ee('0x3e')](handleEntityNotFound(_0x571908,null))['then'](removeEntity(_0x571908,null))[_0x40ee('0x3f')](handleError(_0x571908,null));};exports[_0x40ee('0x46')]=function(_0x441c4a,_0x199d11){return db[_0x40ee('0x26')][_0x40ee('0x46')]()[_0x40ee('0x3e')](respondWithResult(_0x199d11,null))[_0x40ee('0x3f')](handleError(_0x199d11,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd232=['bluebird','request-promise','../../config/environment','define','report_fax_transfer','uniqueid','lodash','../../config/logger','api','moment'];(function(_0xefed5e,_0x4e4012){var _0x349cbe=function(_0x27ea31){while(--_0x27ea31){_0xefed5e['push'](_0xefed5e['shift']());}};_0x349cbe(++_0x4e4012);}(_0xd232,0x74));var _0x2d23=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xd232[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x2d23('0x0'));var util=require('util');var logger=require(_0x2d23('0x1'))(_0x2d23('0x2'));var moment=require(_0x2d23('0x3'));var BPromise=require(_0x2d23('0x4'));var rp=require(_0x2d23('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x2d23('0x6'));var attributes=require('./faxTransferReport.attributes');module['exports']=function(_0x1ddf08,_0x1662f2){return _0x1ddf08[_0x2d23('0x7')]('FaxTransferReport',attributes,{'tableName':_0x2d23('0x8'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x2d23('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x52e1=['uniqueid','lodash','util','../../config/logger','moment','request-promise','path','rimraf','./faxTransferReport.attributes','exports','FaxTransferReport','report_fax_transfer'];(function(_0x534b0b,_0x3d3e7d){var _0x365628=function(_0xe4f1fa){while(--_0xe4f1fa){_0x534b0b['push'](_0x534b0b['shift']());}};_0x365628(++_0x3d3e7d);}(_0x52e1,0x175));var _0x152e=function(_0x14a3d9,_0x12f232){_0x14a3d9=_0x14a3d9-0x0;var _0xeef905=_0x52e1[_0x14a3d9];return _0xeef905;};'use strict';var _=require(_0x152e('0x0'));var util=require(_0x152e('0x1'));var logger=require(_0x152e('0x2'))('api');var moment=require(_0x152e('0x3'));var BPromise=require('bluebird');var rp=require(_0x152e('0x4'));var fs=require('fs');var path=require(_0x152e('0x5'));var rimraf=require(_0x152e('0x6'));var config=require('../../config/environment');var attributes=require(_0x152e('0x7'));module[_0x152e('0x8')]=function(_0x20e56d,_0x57e69e){return _0x20e56d['define'](_0x152e('0x9'),attributes,{'tableName':_0x152e('0xa'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x152e('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33dd=['then','info','FaxTransferReport,\x20%s,\x20%s','request\x20sent','FaxTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../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);}(_0x33dd,0x82));var _0xd33d=function(_0x5a6322,_0x5168eb){_0x5a6322=_0x5a6322-0x0;var _0x55889c=_0x33dd[_0x5a6322];return _0x55889c;};'use strict';var _=require(_0xd33d('0x0'));var util=require(_0xd33d('0x1'));var moment=require(_0xd33d('0x2'));var BPromise=require(_0xd33d('0x3'));var rs=require(_0xd33d('0x4'));var fs=require('fs');var Redis=require(_0xd33d('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xd33d('0x6'));var logger=require(_0xd33d('0x7'))(_0xd33d('0x8'));var config=require(_0xd33d('0x9'));var jayson=require(_0xd33d('0xa'));var client=jayson[_0xd33d('0xb')][_0xd33d('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1ccb1b,_0x313634,_0x1b4711){return new BPromise(function(_0x2d9629,_0x559bdf){return client[_0xd33d('0xd')](_0x1ccb1b,_0x1b4711)[_0xd33d('0xe')](function(_0x6b1568){logger[_0xd33d('0xf')](_0xd33d('0x10'),_0x313634,_0xd33d('0x11'));logger['debug'](_0xd33d('0x12'),_0x313634,_0xd33d('0x11'),JSON[_0xd33d('0x13')](_0x6b1568));if(_0x6b1568[_0xd33d('0x14')]){if(_0x6b1568['error'][_0xd33d('0x15')]===0x1f4){logger[_0xd33d('0x14')](_0xd33d('0x10'),_0x313634,_0x6b1568[_0xd33d('0x14')][_0xd33d('0x16')]);return _0x559bdf(_0x6b1568['error'][_0xd33d('0x16')]);}logger[_0xd33d('0x14')](_0xd33d('0x10'),_0x313634,_0x6b1568[_0xd33d('0x14')][_0xd33d('0x16')]);return _0x2d9629(_0x6b1568[_0xd33d('0x14')][_0xd33d('0x16')]);}else{logger['info'](_0xd33d('0x10'),_0x313634,_0xd33d('0x11'));_0x2d9629(_0x6b1568[_0xd33d('0x17')][_0xd33d('0x16')]);}})['catch'](function(_0x3f3e3b){logger[_0xd33d('0x14')](_0xd33d('0x10'),_0x313634,_0x3f3e3b);_0x559bdf(_0x3f3e3b);});});}
\ No newline at end of file
+var _0x8ecf=['stringify','error','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','FaxTransferReport,\x20%s,\x20%s','request\x20sent','debug','FaxTransferReport,\x20%s,\x20%s,\x20%s'];(function(_0x1c5bd4,_0x235a34){var _0xa1becc=function(_0x5ef8ce){while(--_0x5ef8ce){_0x1c5bd4['push'](_0x1c5bd4['shift']());}};_0xa1becc(++_0x235a34);}(_0x8ecf,0x1ad));var _0xf8ec=function(_0x8b5326,_0x19b767){_0x8b5326=_0x8b5326-0x0;var _0x105462=_0x8ecf[_0x8b5326];return _0x105462;};'use strict';var _=require(_0xf8ec('0x0'));var util=require(_0xf8ec('0x1'));var moment=require(_0xf8ec('0x2'));var BPromise=require(_0xf8ec('0x3'));var rs=require(_0xf8ec('0x4'));var fs=require('fs');var Redis=require(_0xf8ec('0x5'));var db=require(_0xf8ec('0x6'))['db'];var utils=require(_0xf8ec('0x7'));var logger=require(_0xf8ec('0x8'))(_0xf8ec('0x9'));var config=require(_0xf8ec('0xa'));var jayson=require(_0xf8ec('0xb'));var client=jayson[_0xf8ec('0xc')][_0xf8ec('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x4b8a66,_0xf83a95,_0x2ddaa){return new BPromise(function(_0x3ecdbe,_0x31bfcf){return client[_0xf8ec('0xe')](_0x4b8a66,_0x2ddaa)[_0xf8ec('0xf')](function(_0x3cca42){logger[_0xf8ec('0x10')](_0xf8ec('0x11'),_0xf83a95,_0xf8ec('0x12'));logger[_0xf8ec('0x13')](_0xf8ec('0x14'),_0xf83a95,_0xf8ec('0x12'),JSON[_0xf8ec('0x15')](_0x3cca42));if(_0x3cca42[_0xf8ec('0x16')]){if(_0x3cca42[_0xf8ec('0x16')]['code']===0x1f4){logger[_0xf8ec('0x16')](_0xf8ec('0x11'),_0xf83a95,_0x3cca42[_0xf8ec('0x16')]['message']);return _0x31bfcf(_0x3cca42[_0xf8ec('0x16')][_0xf8ec('0x17')]);}logger[_0xf8ec('0x16')](_0xf8ec('0x11'),_0xf83a95,_0x3cca42[_0xf8ec('0x16')][_0xf8ec('0x17')]);return _0x3ecdbe(_0x3cca42[_0xf8ec('0x16')][_0xf8ec('0x17')]);}else{logger['info'](_0xf8ec('0x11'),_0xf83a95,_0xf8ec('0x12'));_0x3ecdbe(_0x3cca42[_0xf8ec('0x18')]['message']);}})['catch'](function(_0x3a53ab){logger[_0xf8ec('0x16')]('FaxTransferReport,\x20%s,\x20%s',_0xf83a95,_0x3a53ab);_0x31bfcf(_0x3a53ab);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb03e=['path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxTransferReport.controller','get','isAuthenticated','index','/describe','/:id','show','post','create','put','destroy','exports','multer','util'];(function(_0x5c784e,_0x3d573e){var _0x3e2af8=function(_0x1427f9){while(--_0x1427f9){_0x5c784e['push'](_0x5c784e['shift']());}};_0x3e2af8(++_0x3d573e);}(_0xb03e,0x10f));var _0xeb03=function(_0x33dfbd,_0x631bde){_0x33dfbd=_0x33dfbd-0x0;var _0x25cbf8=_0xb03e[_0x33dfbd];return _0x25cbf8;};'use strict';var multer=require(_0xeb03('0x0'));var util=require(_0xeb03('0x1'));var path=require(_0xeb03('0x2'));var timeout=require(_0xeb03('0x3'));var express=require('express');var router=express[_0xeb03('0x4')]();var fs_extra=require(_0xeb03('0x5'));var auth=require(_0xeb03('0x6'));var interaction=require(_0xeb03('0x7'));var config=require(_0xeb03('0x8'));var controller=require(_0xeb03('0x9'));router[_0xeb03('0xa')]('/',auth[_0xeb03('0xb')](),controller[_0xeb03('0xc')]);router[_0xeb03('0xa')](_0xeb03('0xd'),auth[_0xeb03('0xb')](),controller['describe']);router[_0xeb03('0xa')](_0xeb03('0xe'),auth[_0xeb03('0xb')](),controller[_0xeb03('0xf')]);router[_0xeb03('0x10')]('/',auth[_0xeb03('0xb')](),controller[_0xeb03('0x11')]);router[_0xeb03('0x12')](_0xeb03('0xe'),auth[_0xeb03('0xb')](),controller['update']);router['delete'](_0xeb03('0xe'),auth[_0xeb03('0xb')](),controller[_0xeb03('0x13')]);module[_0xeb03('0x14')]=router;
\ No newline at end of file
+var _0xd3c6=['/describe','describe','/:id','show','post','create','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./faxTransferReport.controller','get','isAuthenticated','index'];(function(_0x25d6a3,_0x562002){var _0x5a8402=function(_0x372fe3){while(--_0x372fe3){_0x25d6a3['push'](_0x25d6a3['shift']());}};_0x5a8402(++_0x562002);}(_0xd3c6,0x1ac));var _0x6d3c=function(_0x244ec1,_0x5aefad){_0x244ec1=_0x244ec1-0x0;var _0x3c559e=_0xd3c6[_0x244ec1];return _0x3c559e;};'use strict';var multer=require(_0x6d3c('0x0'));var util=require(_0x6d3c('0x1'));var path=require('path');var timeout=require(_0x6d3c('0x2'));var express=require(_0x6d3c('0x3'));var router=express[_0x6d3c('0x4')]();var fs_extra=require(_0x6d3c('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x6d3c('0x6'));var config=require(_0x6d3c('0x7'));var controller=require(_0x6d3c('0x8'));router[_0x6d3c('0x9')]('/',auth[_0x6d3c('0xa')](),controller[_0x6d3c('0xb')]);router['get'](_0x6d3c('0xc'),auth['isAuthenticated'](),controller[_0x6d3c('0xd')]);router[_0x6d3c('0x9')](_0x6d3c('0xe'),auth['isAuthenticated'](),controller[_0x6d3c('0xf')]);router[_0x6d3c('0x10')]('/',auth[_0x6d3c('0xa')](),controller[_0x6d3c('0x11')]);router['put'](_0x6d3c('0xe'),auth['isAuthenticated'](),controller['update']);router['delete']('/:id',auth[_0x6d3c('0xa')](),controller[_0x6d3c('0x12')]);module[_0x6d3c('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf89=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDeskAccount.controller','get','isAuthenticated','/:id','show','/:id/configurations','getConfigurations','getFields','post','create','addConfiguration','put','update','destroy','exports','util','path','connect-timeout','express'];(function(_0x41e7d0,_0x22b473){var _0x274ea9=function(_0x8bff45){while(--_0x8bff45){_0x41e7d0['push'](_0x41e7d0['shift']());}};_0x274ea9(++_0x22b473);}(_0xdf89,0x11c));var _0x9df8=function(_0x166bd7,_0x411992){_0x166bd7=_0x166bd7-0x0;var _0x56b620=_0xdf89[_0x166bd7];return _0x56b620;};'use strict';var multer=require('multer');var util=require(_0x9df8('0x0'));var path=require(_0x9df8('0x1'));var timeout=require(_0x9df8('0x2'));var express=require(_0x9df8('0x3'));var router=express[_0x9df8('0x4')]();var fs_extra=require(_0x9df8('0x5'));var auth=require(_0x9df8('0x6'));var interaction=require(_0x9df8('0x7'));var config=require(_0x9df8('0x8'));var controller=require(_0x9df8('0x9'));router[_0x9df8('0xa')]('/',auth[_0x9df8('0xb')](),controller['index']);router[_0x9df8('0xa')](_0x9df8('0xc'),auth[_0x9df8('0xb')](),controller[_0x9df8('0xd')]);router['get'](_0x9df8('0xe'),auth['isAuthenticated'](),controller[_0x9df8('0xf')]);router[_0x9df8('0xa')]('/:id/fields',auth[_0x9df8('0xb')](),controller[_0x9df8('0x10')]);router[_0x9df8('0x11')]('/',auth[_0x9df8('0xb')](),controller[_0x9df8('0x12')]);router[_0x9df8('0x11')]('/:id/configurations',auth[_0x9df8('0xb')](),controller[_0x9df8('0x13')]);router[_0x9df8('0x14')](_0x9df8('0xc'),auth['isAuthenticated'](),controller[_0x9df8('0x15')]);router['delete'](_0x9df8('0xc'),auth[_0x9df8('0xb')](),controller[_0x9df8('0x16')]);module[_0x9df8('0x17')]=router;
\ No newline at end of file
+var _0x17ea=['exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDeskAccount.controller','get','isAuthenticated','/:id','show','/:id/configurations','/:id/fields','getFields','create','post','put','update','delete','destroy'];(function(_0x29f63a,_0x485ade){var _0x5b9b15=function(_0x516922){while(--_0x516922){_0x29f63a['push'](_0x29f63a['shift']());}};_0x5b9b15(++_0x485ade);}(_0x17ea,0x169));var _0xa17e=function(_0x112df6,_0x558a8b){_0x112df6=_0x112df6-0x0;var _0x88f50b=_0x17ea[_0x112df6];return _0x88f50b;};'use strict';var multer=require(_0xa17e('0x0'));var util=require(_0xa17e('0x1'));var path=require('path');var timeout=require(_0xa17e('0x2'));var express=require(_0xa17e('0x3'));var router=express[_0xa17e('0x4')]();var fs_extra=require(_0xa17e('0x5'));var auth=require(_0xa17e('0x6'));var interaction=require(_0xa17e('0x7'));var config=require(_0xa17e('0x8'));var controller=require(_0xa17e('0x9'));router[_0xa17e('0xa')]('/',auth[_0xa17e('0xb')](),controller['index']);router[_0xa17e('0xa')](_0xa17e('0xc'),auth[_0xa17e('0xb')](),controller[_0xa17e('0xd')]);router['get'](_0xa17e('0xe'),auth[_0xa17e('0xb')](),controller['getConfigurations']);router[_0xa17e('0xa')](_0xa17e('0xf'),auth[_0xa17e('0xb')](),controller[_0xa17e('0x10')]);router['post']('/',auth['isAuthenticated'](),controller[_0xa17e('0x11')]);router[_0xa17e('0x12')]('/:id/configurations',auth[_0xa17e('0xb')](),controller['addConfiguration']);router[_0xa17e('0x13')]('/:id',auth['isAuthenticated'](),controller[_0xa17e('0x14')]);router[_0xa17e('0x15')]('/:id',auth[_0xa17e('0xb')](),controller[_0xa17e('0x16')]);module[_0xa17e('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd97b=['newTab','exports','STRING','basic','ENUM','integrationTab'];(function(_0x301d02,_0x25bf0f){var _0x4ce8e5=function(_0xf278b2){while(--_0xf278b2){_0x301d02['push'](_0x301d02['shift']());}};_0x4ce8e5(++_0x25bf0f);}(_0xd97b,0xe5));var _0xbd97=function(_0x790d10,_0x468d61){_0x790d10=_0x790d10-0x0;var _0x38ced7=_0xd97b[_0x790d10];return _0x38ced7;};'use strict';var Sequelize=require('sequelize');module[_0xbd97('0x0')]={'name':{'type':Sequelize[_0xbd97('0x1')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0xbd97('0x1')]},'remoteUri':{'type':Sequelize[_0xbd97('0x1')]},'authType':{'type':Sequelize['ENUM'](_0xbd97('0x2')),'defaultValue':_0xbd97('0x2')},'password':{'type':Sequelize[_0xbd97('0x1')]},'consumerKey':{'type':Sequelize['STRING']},'consumerSecret':{'type':Sequelize[_0xbd97('0x1')]},'token':{'type':Sequelize[_0xbd97('0x1')]},'tokenSecret':{'type':Sequelize[_0xbd97('0x1')]},'serverUrl':{'type':Sequelize[_0xbd97('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0xbd97('0x3')](_0xbd97('0x4'),_0xbd97('0x5')),'defaultValue':_0xbd97('0x4')}};
\ No newline at end of file
+var _0x7e0c=['exports','STRING','basic','ENUM','integrationTab','sequelize'];(function(_0x1aeb02,_0xe0b4f2){var _0xf830fb=function(_0xf51734){while(--_0xf51734){_0x1aeb02['push'](_0x1aeb02['shift']());}};_0xf830fb(++_0xe0b4f2);}(_0x7e0c,0x83));var _0xc7e0=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x7e0c[_0x14add3];return _0x4a174f;};'use strict';var Sequelize=require(_0xc7e0('0x0'));module[_0xc7e0('0x1')]={'name':{'type':Sequelize[_0xc7e0('0x2')]},'description':{'type':Sequelize[_0xc7e0('0x2')]},'username':{'type':Sequelize[_0xc7e0('0x2')]},'remoteUri':{'type':Sequelize['STRING']},'authType':{'type':Sequelize['ENUM'](_0xc7e0('0x3')),'defaultValue':_0xc7e0('0x3')},'password':{'type':Sequelize['STRING']},'consumerKey':{'type':Sequelize[_0xc7e0('0x2')]},'consumerSecret':{'type':Sequelize[_0xc7e0('0x2')]},'token':{'type':Sequelize['STRING']},'tokenSecret':{'type':Sequelize[_0xc7e0('0x2')]},'serverUrl':{'type':Sequelize[_0xc7e0('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0xc7e0('0x4')](_0xc7e0('0x5'),'newTab'),'defaultValue':_0xc7e0('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x383c=['params','DeskConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','create','DeskField','getFields','priority','authType','username','password','consumerSecret','remoteUri','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','Authorization','Basic\x20%s','%s:%s','base64','concat','entries','active','label','test','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','offset','undefined','limit','Content-Range','json','apply','reject','save','update','destroy','then','error','stack','name','index','map','DeskAccount','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','count','include','findAll','rows','catch','show','rawAttributes','body','find','getConfigurations'];(function(_0xda7e3d,_0x48626a){var _0xa15846=function(_0x2dbb95){while(--_0x2dbb95){_0xda7e3d['push'](_0xda7e3d['shift']());}};_0xa15846(++_0x48626a);}(_0x383c,0x17b));var _0xc383=function(_0x4a53d,_0x58a95e){_0x4a53d=_0x4a53d-0x0;var _0x27410e=_0x383c[_0x4a53d];return _0x27410e;};'use strict';var emlformat=require(_0xc383('0x0'));var rimraf=require(_0xc383('0x1'));var zipdir=require(_0xc383('0x2'));var jsonpatch=require(_0xc383('0x3'));var rp=require(_0xc383('0x4'));var moment=require(_0xc383('0x5'));var BPromise=require(_0xc383('0x6'));var Mustache=require(_0xc383('0x7'));var util=require(_0xc383('0x8'));var path=require(_0xc383('0x9'));var sox=require(_0xc383('0xa'));var csv=require('to-csv');var ejs=require(_0xc383('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xc383('0xc'));var crypto=require(_0xc383('0xd'));var jsforce=require(_0xc383('0xe'));var deskjs=require(_0xc383('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xc383('0x10'));var Redis=require('ioredis');var authService=require(_0xc383('0x11'));var qs=require(_0xc383('0x12'));var as=require(_0xc383('0x13'));var hardwareService=require(_0xc383('0x14'));var logger=require(_0xc383('0x15'))(_0xc383('0x16'));var utils=require(_0xc383('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xc383('0x18'));var db=require(_0xc383('0x19'))['db'];var integrations=require(_0xc383('0x1a'));function respondWithStatusCode(_0x14455d,_0x1a5eb5){_0x1a5eb5=_0x1a5eb5||0xcc;return function(_0x4f1eab){if(_0x4f1eab){return _0x14455d[_0xc383('0x1b')](_0x1a5eb5);}return _0x14455d['status'](_0x1a5eb5)['end']();};}function respondWithResult(_0x449217,_0x4cb2bb){_0x4cb2bb=_0x4cb2bb||0xc8;return function(_0x5b4544){if(_0x5b4544){return _0x449217[_0xc383('0x1c')](_0x4cb2bb)['json'](_0x5b4544);}};}function respondWithFilteredResult(_0x15c6c6,_0x5e199a){return function(_0x24c56a){if(_0x24c56a){var _0xfc90ef=typeof _0x5e199a[_0xc383('0x1d')]===_0xc383('0x1e')&&typeof _0x5e199a['limit']===_0xc383('0x1e');var _0x35239c=_0x24c56a['count'];var _0x34e5fd=_0xfc90ef?0x0:_0x5e199a['offset'];var _0x55fe5c=_0xfc90ef?_0x24c56a['count']:_0x5e199a[_0xc383('0x1d')]+_0x5e199a[_0xc383('0x1f')];var _0x66a09c;if(_0x55fe5c>=_0x35239c){_0x55fe5c=_0x35239c;_0x66a09c=0xc8;}else{_0x66a09c=0xce;}_0x15c6c6[_0xc383('0x1c')](_0x66a09c);return _0x15c6c6['set'](_0xc383('0x20'),_0x34e5fd+'-'+_0x55fe5c+'/'+_0x35239c)[_0xc383('0x21')](_0x24c56a);}return null;};}function patchUpdates(_0x173850){return function(_0x116f5b){try{jsonpatch[_0xc383('0x22')](_0x116f5b,_0x173850,!![]);}catch(_0x36d15f){return BPromise[_0xc383('0x23')](_0x36d15f);}return _0x116f5b[_0xc383('0x24')]();};}function saveUpdates(_0x271b5b,_0x57e5da){return function(_0x448f23){if(_0x448f23){return _0x448f23[_0xc383('0x25')](_0x271b5b)['then'](function(_0x540ab7){return _0x540ab7;});}return null;};}function removeEntity(_0x550e66,_0x4df3ae){return function(_0x39c923){if(_0x39c923){return _0x39c923[_0xc383('0x26')]()[_0xc383('0x27')](function(){_0x550e66[_0xc383('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x223310,_0x634b99){return function(_0x21345f){if(!_0x21345f){_0x223310['sendStatus'](0x194);}return _0x21345f;};}function handleError(_0x2c0ad6,_0x591e50){_0x591e50=_0x591e50||0x1f4;return function(_0x659c34){logger[_0xc383('0x28')](_0x659c34[_0xc383('0x29')]);if(_0x659c34[_0xc383('0x2a')]){delete _0x659c34[_0xc383('0x2a')];}_0x2c0ad6[_0xc383('0x1c')](_0x591e50)['send'](_0x659c34);};}exports[_0xc383('0x2b')]=function(_0x568ff7,_0x713fb){var _0x59ce69={},_0x5043b8={},_0xeccd9b={'count':0x0,'rows':[]};var _0x729fe=_[_0xc383('0x2c')](db[_0xc383('0x2d')]['rawAttributes'],function(_0x37790f){return{'name':_0x37790f[_0xc383('0x2e')],'type':_0x37790f[_0xc383('0x2f')][_0xc383('0x30')]};});_0x5043b8[_0xc383('0x31')]=_[_0xc383('0x2c')](_0x729fe,_0xc383('0x2a'));_0x5043b8[_0xc383('0x32')]=_[_0xc383('0x33')](_0x568ff7[_0xc383('0x32')]);_0x5043b8[_0xc383('0x34')]=_['intersection'](_0x5043b8[_0xc383('0x31')],_0x5043b8['query']);_0x59ce69['attributes']=_[_0xc383('0x35')](_0x5043b8[_0xc383('0x31')],qs['fields'](_0x568ff7[_0xc383('0x32')][_0xc383('0x36')]));_0x59ce69[_0xc383('0x37')]=_0x59ce69[_0xc383('0x37')][_0xc383('0x38')]?_0x59ce69[_0xc383('0x37')]:_0x5043b8[_0xc383('0x31')];if(!_0x568ff7['query'][_0xc383('0x39')](_0xc383('0x3a'))){_0x59ce69[_0xc383('0x1f')]=qs['limit'](_0x568ff7[_0xc383('0x32')][_0xc383('0x1f')]);_0x59ce69[_0xc383('0x1d')]=qs[_0xc383('0x1d')](_0x568ff7[_0xc383('0x32')][_0xc383('0x1d')]);}_0x59ce69[_0xc383('0x3b')]=qs[_0xc383('0x3c')](_0x568ff7[_0xc383('0x32')][_0xc383('0x3c')]);_0x59ce69[_0xc383('0x3d')]=qs['filters'](_[_0xc383('0x3e')](_0x568ff7[_0xc383('0x32')],_0x5043b8[_0xc383('0x34')]),_0x729fe);if(_0x568ff7['query'][_0xc383('0x3f')]){_0x59ce69[_0xc383('0x3d')]=_['merge'](_0x59ce69[_0xc383('0x3d')],{'$or':_['map'](_0x729fe,function(_0x44ce46){if(_0x44ce46[_0xc383('0x2f')]!==_0xc383('0x40')){var _0x438e4d={};_0x438e4d[_0x44ce46['name']]={'$like':'%'+_0x568ff7['query'][_0xc383('0x3f')]+'%'};return _0x438e4d;}})});}_0x59ce69=_[_0xc383('0x41')]({},_0x59ce69,_0x568ff7[_0xc383('0x42')]);var _0x2b26d7={'where':_0x59ce69[_0xc383('0x3d')]};return db[_0xc383('0x2d')][_0xc383('0x43')](_0x2b26d7)[_0xc383('0x27')](function(_0x19cdba){_0xeccd9b[_0xc383('0x43')]=_0x19cdba;if(_0x568ff7[_0xc383('0x32')]['includeAll']){_0x59ce69[_0xc383('0x44')]=[{'all':!![]}];}return db[_0xc383('0x2d')][_0xc383('0x45')](_0x59ce69);})[_0xc383('0x27')](function(_0x4dfeea){_0xeccd9b[_0xc383('0x46')]=_0x4dfeea;return _0xeccd9b;})['then'](respondWithFilteredResult(_0x713fb,_0x59ce69))[_0xc383('0x47')](handleError(_0x713fb,null));};exports[_0xc383('0x48')]=function(_0x5812bb,_0x33f11f){var _0x1c3baa={'raw':![],'where':{'id':_0x5812bb['params']['id']}},_0x340ce7={};_0x340ce7[_0xc383('0x31')]=_[_0xc383('0x33')](db['DeskAccount'][_0xc383('0x49')]);_0x340ce7[_0xc383('0x32')]=_[_0xc383('0x33')](_0x5812bb[_0xc383('0x32')]);_0x340ce7[_0xc383('0x34')]=_[_0xc383('0x35')](_0x340ce7[_0xc383('0x31')],_0x340ce7[_0xc383('0x32')]);_0x1c3baa['attributes']=_[_0xc383('0x35')](_0x340ce7[_0xc383('0x31')],qs['fields'](_0x5812bb[_0xc383('0x32')][_0xc383('0x36')]));_0x1c3baa[_0xc383('0x37')]=_0x1c3baa[_0xc383('0x37')][_0xc383('0x38')]?_0x1c3baa['attributes']:_0x340ce7[_0xc383('0x31')];if(_0x5812bb[_0xc383('0x32')]['includeAll']){_0x1c3baa[_0xc383('0x44')]=[{'all':!![]}];}_0x1c3baa=_[_0xc383('0x41')]({},_0x1c3baa,_0x5812bb[_0xc383('0x42')]);return db[_0xc383('0x2d')]['find'](_0x1c3baa)[_0xc383('0x27')](handleEntityNotFound(_0x33f11f,null))['then'](respondWithResult(_0x33f11f,null))[_0xc383('0x47')](handleError(_0x33f11f,null));};exports['create']=function(_0x365ea1,_0x57934b){return db[_0xc383('0x2d')]['create'](_0x365ea1[_0xc383('0x4a')],{})['then'](respondWithResult(_0x57934b,0xc9))[_0xc383('0x47')](handleError(_0x57934b,null));};exports['update']=function(_0x2b910c,_0x5b75f7){if(_0x2b910c[_0xc383('0x4a')]['id']){delete _0x2b910c[_0xc383('0x4a')]['id'];}return db[_0xc383('0x2d')][_0xc383('0x4b')]({'where':{'id':_0x2b910c['params']['id']}})['then'](handleEntityNotFound(_0x5b75f7,null))['then'](saveUpdates(_0x2b910c[_0xc383('0x4a')],null))[_0xc383('0x27')](respondWithResult(_0x5b75f7,null))[_0xc383('0x47')](handleError(_0x5b75f7,null));};exports['destroy']=function(_0x79f2ff,_0x459651){return db['DeskAccount'][_0xc383('0x4b')]({'where':{'id':_0x79f2ff['params']['id']}})['then'](handleEntityNotFound(_0x459651,null))[_0xc383('0x27')](removeEntity(_0x459651,null))['catch'](handleError(_0x459651,null));};exports[_0xc383('0x4c')]=function(_0x274fa8,_0x5a970c,_0x4bd141){var _0x47d543={};var _0x392b7a={};var _0xb23b38;var _0x349afd;return db[_0xc383('0x2d')]['findOne']({'where':{'id':_0x274fa8[_0xc383('0x4d')]['id']}})['then'](handleEntityNotFound(_0x5a970c,null))[_0xc383('0x27')](function(_0x328fce){if(_0x328fce){_0xb23b38=_0x328fce;_0x392b7a[_0xc383('0x31')]=_[_0xc383('0x33')](db[_0xc383('0x4e')][_0xc383('0x49')]);_0x392b7a['query']=_['keys'](_0x274fa8[_0xc383('0x32')]);_0x392b7a[_0xc383('0x34')]=_[_0xc383('0x35')](_0x392b7a['model'],_0x392b7a[_0xc383('0x32')]);_0x47d543[_0xc383('0x37')]=_['intersection'](_0x392b7a[_0xc383('0x31')],qs[_0xc383('0x36')](_0x274fa8[_0xc383('0x32')]['fields']));_0x47d543['attributes']=_0x47d543[_0xc383('0x37')][_0xc383('0x38')]?_0x47d543['attributes']:_0x392b7a[_0xc383('0x31')];_0x47d543[_0xc383('0x3b')]=qs[_0xc383('0x3c')](_0x274fa8[_0xc383('0x32')][_0xc383('0x3c')]);_0x47d543['where']=qs[_0xc383('0x34')](_[_0xc383('0x3e')](_0x274fa8[_0xc383('0x32')],_0x392b7a[_0xc383('0x34')]));if(_0x274fa8[_0xc383('0x32')]['filter']){_0x47d543[_0xc383('0x3d')]=_[_0xc383('0x41')](_0x47d543[_0xc383('0x3d')],{'$or':_[_0xc383('0x2c')](_0x47d543['attributes'],function(_0x804165){var _0x282265={};_0x282265[_0x804165]={'$like':'%'+_0x274fa8[_0xc383('0x32')][_0xc383('0x3f')]+'%'};return _0x282265;})});}_0x47d543=_[_0xc383('0x41')]({},_0x47d543,_0x274fa8[_0xc383('0x42')]);return _0xb23b38['getConfigurations'](_0x47d543);}})[_0xc383('0x27')](function(_0x428789){if(_0x428789){_0x349afd=_0x428789['length'];if(!_0x274fa8[_0xc383('0x32')][_0xc383('0x39')](_0xc383('0x3a'))){_0x47d543[_0xc383('0x1f')]=qs[_0xc383('0x1f')](_0x274fa8[_0xc383('0x32')][_0xc383('0x1f')]);_0x47d543['offset']=qs[_0xc383('0x1d')](_0x274fa8['query']['offset']);}return _0xb23b38[_0xc383('0x4c')](_0x47d543);}})[_0xc383('0x27')](function(_0x226f12){if(_0x226f12){return _0x226f12?{'count':_0x349afd,'rows':_0x226f12}:null;}})[_0xc383('0x27')](respondWithResult(_0x5a970c,null))[_0xc383('0x47')](handleError(_0x5a970c,null));};exports['addConfiguration']=function(_0x2a6104,_0x350c6f,_0x5b0e62){if(_0x2a6104[_0xc383('0x4a')]['id']){delete _0x2a6104[_0xc383('0x4a')]['id'];}return db[_0xc383('0x2d')][_0xc383('0x4f')]({'where':{'id':_0x2a6104[_0xc383('0x4d')]['id']}})[_0xc383('0x27')](handleEntityNotFound(_0x350c6f,null))[_0xc383('0x27')](function(_0x239d25){if(_0x239d25){_0x2a6104[_0xc383('0x4a')][_0xc383('0x50')]=_0x239d25['id'];_0x2a6104['body'][_0xc383('0x51')]=integrations[_0xc383('0x52')](_0x2a6104[_0xc383('0x4a')][_0xc383('0x53')],_0x2a6104[_0xc383('0x4a')][_0xc383('0x2f')]);_0x2a6104['body'][_0xc383('0x54')]=integrations[_0xc383('0x55')](_0x2a6104[_0xc383('0x4a')][_0xc383('0x53')],_0x2a6104[_0xc383('0x4a')]['type']);return db[_0xc383('0x4e')][_0xc383('0x56')](_0x2a6104[_0xc383('0x4a')],{'include':[{'model':db[_0xc383('0x57')],'as':'Subjects'},{'model':db[_0xc383('0x57')],'as':_0xc383('0x54')}]});}return null;})[_0xc383('0x27')](respondWithResult(_0x350c6f,null))[_0xc383('0x47')](handleError(_0x350c6f,null));};exports[_0xc383('0x58')]=function(_0x13366b,_0x1996de,_0x3750e9){var _0x48abe6=[{'name':_0xc383('0x59'),'label':_0xc383('0x59'),'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 _0x2c95d7='';return db['DeskAccount'][_0xc383('0x4f')]({'where':{'id':_0x13366b[_0xc383('0x4d')]['id']},'attributes':['id','remoteUri',_0xc383('0x5a'),_0xc383('0x5b'),_0xc383('0x5c'),'consumerKey',_0xc383('0x5d'),'token','tokenSecret']})[_0xc383('0x27')](handleEntityNotFound(_0x1996de,null))['then'](function(_0x587221){if(_0x587221){_0x2c95d7=_0x587221[_0xc383('0x5e')];var _0x368904=_0x2c95d7['slice'](-0x1);if(_0x368904==='/'){_0x2c95d7=_0x2c95d7[_0xc383('0x5f')](0x0,_0x2c95d7[_0xc383('0x60')](_0x368904));}var _0x199476={'method':_0xc383('0x61'),'uri':util[_0xc383('0x62')](_0xc383('0x63'),_0x2c95d7),'headers':{'Content-Type':_0xc383('0x64'),'Accept':_0xc383('0x64')},'json':!![]};if(_0x587221[_0xc383('0x5a')]==='basic'){_0x199476['headers'][_0xc383('0x65')]=util['format'](_0xc383('0x66'),new Buffer(util[_0xc383('0x62')](_0xc383('0x67'),_0x587221[_0xc383('0x5b')],_0x587221['password']))['toString'](_0xc383('0x68')));}return rp(_0x199476)[_0xc383('0x27')](function(_0x474adb){return _0x48abe6[_0xc383('0x69')](_[_0xc383('0x2c')](_0x474adb['_embedded'][_0xc383('0x6a')],function(_0x506b48){return{'id':_0x506b48[_0xc383('0x2a')],'name':_0x506b48[_0xc383('0x2a')],'type':_0x506b48['type'],'active':_0x506b48[_0xc383('0x6b')],'label':_0x506b48[_0xc383('0x6c')],'custom':!![]};}));});}})[_0xc383('0x27')](function(_0x20e0f7){return{'count':_0x20e0f7[_0xc383('0x38')],'rows':_0x20e0f7};})[_0xc383('0x27')](respondWithResult(_0x1996de,null))['catch'](function(_0x184832){var _0x21fe46=_0x13366b[_0xc383('0x32')][_0xc383('0x6d')]?0x1f4:_0x184832['statusCode']||0x1f4;logger[_0xc383('0x28')](_0xc383('0x6e'),_0xc383('0x58'),_0x21fe46,JSON['stringify'](_0x184832));delete _0x184832['name'];if(_0x21fe46===0x191){_0x21fe46=0x190;}_0x1996de['status'](_0x21fe46)[_0xc383('0x6f')](_0x13366b[_0xc383('0x32')][_0xc383('0x6d')]?{'message':_0xc383('0x70'),'statusCode':_0x184832[_0xc383('0x71')]}:_0x184832);});};
\ No newline at end of file
+var _0xe63b=['bluebird','mustache','path','sox','to-csv','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json','reject','save','then','error','stack','name','send','index','DeskAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','show','merge','create','body','catch','find','destroy','params','getConfigurations','findOne','DeskConfiguration','map','hasOwnProperty','addConfiguration','AccountId','getSubjects','Descriptions','Subjects','getFields','priority','remoteUri','authType','username','password','consumerKey','consumerSecret','token','substring','%s/custom_fields','basic','headers','Authorization','format','Basic\x20%s','toString','base64','concat','active','label','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x4bf7f4,_0x292c2a){var _0x1bfd0d=function(_0xe8ca03){while(--_0xe8ca03){_0x4bf7f4['push'](_0x4bf7f4['shift']());}};_0x1bfd0d(++_0x292c2a);}(_0xe63b,0x14d));var _0xbe63=function(_0x4ed4d2,_0x47acf7){_0x4ed4d2=_0x4ed4d2-0x0;var _0x15ae2e=_0xe63b[_0x4ed4d2];return _0x15ae2e;};'use strict';var emlformat=require(_0xbe63('0x0'));var rimraf=require(_0xbe63('0x1'));var zipdir=require(_0xbe63('0x2'));var jsonpatch=require(_0xbe63('0x3'));var rp=require(_0xbe63('0x4'));var moment=require(_0xbe63('0x5'));var BPromise=require(_0xbe63('0x6'));var Mustache=require(_0xbe63('0x7'));var util=require('util');var path=require(_0xbe63('0x8'));var sox=require(_0xbe63('0x9'));var csv=require(_0xbe63('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xbe63('0xb'));var _=require('lodash');var squel=require(_0xbe63('0xc'));var crypto=require(_0xbe63('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xbe63('0xe'));var toCsv=require('to-csv');var querystring=require(_0xbe63('0xf'));var Papa=require(_0xbe63('0x10'));var Redis=require(_0xbe63('0x11'));var authService=require(_0xbe63('0x12'));var qs=require(_0xbe63('0x13'));var as=require(_0xbe63('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xbe63('0x15'))('api');var utils=require(_0xbe63('0x16'));var config=require(_0xbe63('0x17'));var licenseUtil=require(_0xbe63('0x18'));var db=require(_0xbe63('0x19'))['db'];var integrations=require(_0xbe63('0x1a'));function respondWithStatusCode(_0xf68bdc,_0xe9c4c){_0xe9c4c=_0xe9c4c||0xcc;return function(_0x55ab18){if(_0x55ab18){return _0xf68bdc[_0xbe63('0x1b')](_0xe9c4c);}return _0xf68bdc[_0xbe63('0x1c')](_0xe9c4c)[_0xbe63('0x1d')]();};}function respondWithResult(_0x458c5f,_0x20c8e0){_0x20c8e0=_0x20c8e0||0xc8;return function(_0x43d628){if(_0x43d628){return _0x458c5f['status'](_0x20c8e0)['json'](_0x43d628);}};}function respondWithFilteredResult(_0xab642b,_0x4c5f03){return function(_0x12b7f1){if(_0x12b7f1){var _0x13d007=typeof _0x4c5f03[_0xbe63('0x1e')]==='undefined'&&typeof _0x4c5f03[_0xbe63('0x1f')]===_0xbe63('0x20');var _0x5aff36=_0x12b7f1['count'];var _0x2e2167=_0x13d007?0x0:_0x4c5f03[_0xbe63('0x1e')];var _0x253a04=_0x13d007?_0x12b7f1[_0xbe63('0x21')]:_0x4c5f03[_0xbe63('0x1e')]+_0x4c5f03[_0xbe63('0x1f')];var _0x35cedc;if(_0x253a04>=_0x5aff36){_0x253a04=_0x5aff36;_0x35cedc=0xc8;}else{_0x35cedc=0xce;}_0xab642b[_0xbe63('0x1c')](_0x35cedc);return _0xab642b[_0xbe63('0x22')](_0xbe63('0x23'),_0x2e2167+'-'+_0x253a04+'/'+_0x5aff36)[_0xbe63('0x24')](_0x12b7f1);}return null;};}function patchUpdates(_0x5450bb){return function(_0x48bae8){try{jsonpatch['apply'](_0x48bae8,_0x5450bb,!![]);}catch(_0x2a1c41){return BPromise[_0xbe63('0x25')](_0x2a1c41);}return _0x48bae8[_0xbe63('0x26')]();};}function saveUpdates(_0x1fdd52,_0x160fff){return function(_0x1f2275){if(_0x1f2275){return _0x1f2275['update'](_0x1fdd52)[_0xbe63('0x27')](function(_0x5643bf){return _0x5643bf;});}return null;};}function removeEntity(_0x32f2b6,_0x1ce117){return function(_0x1df3f4){if(_0x1df3f4){return _0x1df3f4['destroy']()['then'](function(){_0x32f2b6[_0xbe63('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x423b17,_0xfac7e4){return function(_0x168b7e){if(!_0x168b7e){_0x423b17[_0xbe63('0x1b')](0x194);}return _0x168b7e;};}function handleError(_0x27a09d,_0x318ee7){_0x318ee7=_0x318ee7||0x1f4;return function(_0x35ab62){logger[_0xbe63('0x28')](_0x35ab62[_0xbe63('0x29')]);if(_0x35ab62[_0xbe63('0x2a')]){delete _0x35ab62[_0xbe63('0x2a')];}_0x27a09d[_0xbe63('0x1c')](_0x318ee7)[_0xbe63('0x2b')](_0x35ab62);};}exports[_0xbe63('0x2c')]=function(_0x409555,_0x2740bb){var _0x1fc765={},_0x1a783f={},_0x27192f={'count':0x0,'rows':[]};var _0x4ee2f3=_['map'](db[_0xbe63('0x2d')][_0xbe63('0x2e')],function(_0x355729){return{'name':_0x355729[_0xbe63('0x2f')],'type':_0x355729[_0xbe63('0x30')][_0xbe63('0x31')]};});_0x1a783f[_0xbe63('0x32')]=_['map'](_0x4ee2f3,_0xbe63('0x2a'));_0x1a783f[_0xbe63('0x33')]=_[_0xbe63('0x34')](_0x409555['query']);_0x1a783f[_0xbe63('0x35')]=_[_0xbe63('0x36')](_0x1a783f['model'],_0x1a783f[_0xbe63('0x33')]);_0x1fc765[_0xbe63('0x37')]=_[_0xbe63('0x36')](_0x1a783f['model'],qs[_0xbe63('0x38')](_0x409555[_0xbe63('0x33')][_0xbe63('0x38')]));_0x1fc765['attributes']=_0x1fc765[_0xbe63('0x37')][_0xbe63('0x39')]?_0x1fc765[_0xbe63('0x37')]:_0x1a783f[_0xbe63('0x32')];if(!_0x409555[_0xbe63('0x33')]['hasOwnProperty']('nolimit')){_0x1fc765[_0xbe63('0x1f')]=qs[_0xbe63('0x1f')](_0x409555[_0xbe63('0x33')][_0xbe63('0x1f')]);_0x1fc765[_0xbe63('0x1e')]=qs['offset'](_0x409555[_0xbe63('0x33')][_0xbe63('0x1e')]);}_0x1fc765[_0xbe63('0x3a')]=qs[_0xbe63('0x3b')](_0x409555[_0xbe63('0x33')][_0xbe63('0x3b')]);_0x1fc765[_0xbe63('0x3c')]=qs[_0xbe63('0x35')](_[_0xbe63('0x3d')](_0x409555['query'],_0x1a783f[_0xbe63('0x35')]),_0x4ee2f3);if(_0x409555[_0xbe63('0x33')][_0xbe63('0x3e')]){_0x1fc765[_0xbe63('0x3c')]=_['merge'](_0x1fc765['where'],{'$or':_['map'](_0x4ee2f3,function(_0x2b65c9){if(_0x2b65c9[_0xbe63('0x30')]!==_0xbe63('0x3f')){var _0x4d93e5={};_0x4d93e5[_0x2b65c9[_0xbe63('0x2a')]]={'$like':'%'+_0x409555[_0xbe63('0x33')][_0xbe63('0x3e')]+'%'};return _0x4d93e5;}})});}_0x1fc765=_['merge']({},_0x1fc765,_0x409555[_0xbe63('0x40')]);var _0x2e1a94={'where':_0x1fc765[_0xbe63('0x3c')]};return db[_0xbe63('0x2d')][_0xbe63('0x21')](_0x2e1a94)[_0xbe63('0x27')](function(_0x15e3ce){_0x27192f[_0xbe63('0x21')]=_0x15e3ce;if(_0x409555[_0xbe63('0x33')][_0xbe63('0x41')]){_0x1fc765[_0xbe63('0x42')]=[{'all':!![]}];}return db[_0xbe63('0x2d')][_0xbe63('0x43')](_0x1fc765);})[_0xbe63('0x27')](function(_0x16cab3){_0x27192f[_0xbe63('0x44')]=_0x16cab3;return _0x27192f;})['then'](respondWithFilteredResult(_0x2740bb,_0x1fc765))['catch'](handleError(_0x2740bb,null));};exports[_0xbe63('0x45')]=function(_0x55fb93,_0x18892b){var _0x49fe4f={'raw':![],'where':{'id':_0x55fb93['params']['id']}},_0x31416b={};_0x31416b[_0xbe63('0x32')]=_[_0xbe63('0x34')](db[_0xbe63('0x2d')][_0xbe63('0x2e')]);_0x31416b[_0xbe63('0x33')]=_['keys'](_0x55fb93[_0xbe63('0x33')]);_0x31416b[_0xbe63('0x35')]=_[_0xbe63('0x36')](_0x31416b[_0xbe63('0x32')],_0x31416b[_0xbe63('0x33')]);_0x49fe4f[_0xbe63('0x37')]=_[_0xbe63('0x36')](_0x31416b[_0xbe63('0x32')],qs[_0xbe63('0x38')](_0x55fb93[_0xbe63('0x33')][_0xbe63('0x38')]));_0x49fe4f[_0xbe63('0x37')]=_0x49fe4f[_0xbe63('0x37')][_0xbe63('0x39')]?_0x49fe4f['attributes']:_0x31416b[_0xbe63('0x32')];if(_0x55fb93[_0xbe63('0x33')]['includeAll']){_0x49fe4f['include']=[{'all':!![]}];}_0x49fe4f=_[_0xbe63('0x46')]({},_0x49fe4f,_0x55fb93[_0xbe63('0x40')]);return db['DeskAccount']['find'](_0x49fe4f)[_0xbe63('0x27')](handleEntityNotFound(_0x18892b,null))['then'](respondWithResult(_0x18892b,null))['catch'](handleError(_0x18892b,null));};exports[_0xbe63('0x47')]=function(_0x374cae,_0x368879){return db[_0xbe63('0x2d')]['create'](_0x374cae[_0xbe63('0x48')],{})[_0xbe63('0x27')](respondWithResult(_0x368879,0xc9))[_0xbe63('0x49')](handleError(_0x368879,null));};exports['update']=function(_0x15ec9f,_0x4b1c81){if(_0x15ec9f[_0xbe63('0x48')]['id']){delete _0x15ec9f[_0xbe63('0x48')]['id'];}return db[_0xbe63('0x2d')][_0xbe63('0x4a')]({'where':{'id':_0x15ec9f['params']['id']}})[_0xbe63('0x27')](handleEntityNotFound(_0x4b1c81,null))[_0xbe63('0x27')](saveUpdates(_0x15ec9f['body'],null))[_0xbe63('0x27')](respondWithResult(_0x4b1c81,null))[_0xbe63('0x49')](handleError(_0x4b1c81,null));};exports[_0xbe63('0x4b')]=function(_0xc8a1cf,_0x569cda){return db[_0xbe63('0x2d')][_0xbe63('0x4a')]({'where':{'id':_0xc8a1cf[_0xbe63('0x4c')]['id']}})[_0xbe63('0x27')](handleEntityNotFound(_0x569cda,null))[_0xbe63('0x27')](removeEntity(_0x569cda,null))[_0xbe63('0x49')](handleError(_0x569cda,null));};exports[_0xbe63('0x4d')]=function(_0x7cd5a6,_0x158291,_0x150ac8){var _0x51b222={};var _0x896092={};var _0x44ce19;var _0x47b9d4;return db[_0xbe63('0x2d')][_0xbe63('0x4e')]({'where':{'id':_0x7cd5a6['params']['id']}})[_0xbe63('0x27')](handleEntityNotFound(_0x158291,null))[_0xbe63('0x27')](function(_0xb38d8d){if(_0xb38d8d){_0x44ce19=_0xb38d8d;_0x896092[_0xbe63('0x32')]=_['keys'](db[_0xbe63('0x4f')][_0xbe63('0x2e')]);_0x896092['query']=_[_0xbe63('0x34')](_0x7cd5a6[_0xbe63('0x33')]);_0x896092[_0xbe63('0x35')]=_[_0xbe63('0x36')](_0x896092[_0xbe63('0x32')],_0x896092[_0xbe63('0x33')]);_0x51b222[_0xbe63('0x37')]=_[_0xbe63('0x36')](_0x896092[_0xbe63('0x32')],qs['fields'](_0x7cd5a6[_0xbe63('0x33')]['fields']));_0x51b222[_0xbe63('0x37')]=_0x51b222['attributes']['length']?_0x51b222[_0xbe63('0x37')]:_0x896092[_0xbe63('0x32')];_0x51b222['order']=qs[_0xbe63('0x3b')](_0x7cd5a6[_0xbe63('0x33')]['sort']);_0x51b222[_0xbe63('0x3c')]=qs[_0xbe63('0x35')](_['pick'](_0x7cd5a6[_0xbe63('0x33')],_0x896092[_0xbe63('0x35')]));if(_0x7cd5a6['query']['filter']){_0x51b222[_0xbe63('0x3c')]=_[_0xbe63('0x46')](_0x51b222[_0xbe63('0x3c')],{'$or':_[_0xbe63('0x50')](_0x51b222[_0xbe63('0x37')],function(_0xc3e176){var _0x128f28={};_0x128f28[_0xc3e176]={'$like':'%'+_0x7cd5a6[_0xbe63('0x33')][_0xbe63('0x3e')]+'%'};return _0x128f28;})});}_0x51b222=_[_0xbe63('0x46')]({},_0x51b222,_0x7cd5a6[_0xbe63('0x40')]);return _0x44ce19[_0xbe63('0x4d')](_0x51b222);}})['then'](function(_0x540487){if(_0x540487){_0x47b9d4=_0x540487[_0xbe63('0x39')];if(!_0x7cd5a6[_0xbe63('0x33')][_0xbe63('0x51')]('nolimit')){_0x51b222[_0xbe63('0x1f')]=qs[_0xbe63('0x1f')](_0x7cd5a6[_0xbe63('0x33')][_0xbe63('0x1f')]);_0x51b222[_0xbe63('0x1e')]=qs[_0xbe63('0x1e')](_0x7cd5a6['query'][_0xbe63('0x1e')]);}return _0x44ce19[_0xbe63('0x4d')](_0x51b222);}})[_0xbe63('0x27')](function(_0x3add67){if(_0x3add67){return _0x3add67?{'count':_0x47b9d4,'rows':_0x3add67}:null;}})[_0xbe63('0x27')](respondWithResult(_0x158291,null))[_0xbe63('0x49')](handleError(_0x158291,null));};exports[_0xbe63('0x52')]=function(_0x2de72f,_0x1003db,_0x2d94f7){if(_0x2de72f[_0xbe63('0x48')]['id']){delete _0x2de72f[_0xbe63('0x48')]['id'];}return db[_0xbe63('0x2d')][_0xbe63('0x4e')]({'where':{'id':_0x2de72f[_0xbe63('0x4c')]['id']}})[_0xbe63('0x27')](handleEntityNotFound(_0x1003db,null))[_0xbe63('0x27')](function(_0x4d4c6f){if(_0x4d4c6f){_0x2de72f['body'][_0xbe63('0x53')]=_0x4d4c6f['id'];_0x2de72f['body']['Subjects']=integrations[_0xbe63('0x54')](_0x2de72f['body']['channel'],_0x2de72f[_0xbe63('0x48')]['type']);_0x2de72f[_0xbe63('0x48')][_0xbe63('0x55')]=integrations['getDescriptions'](_0x2de72f[_0xbe63('0x48')]['channel'],_0x2de72f[_0xbe63('0x48')]['type']);return db['DeskConfiguration'][_0xbe63('0x47')](_0x2de72f[_0xbe63('0x48')],{'include':[{'model':db['DeskField'],'as':_0xbe63('0x56')},{'model':db['DeskField'],'as':'Descriptions'}]});}return null;})[_0xbe63('0x27')](respondWithResult(_0x1003db,null))[_0xbe63('0x49')](handleError(_0x1003db,null));};exports[_0xbe63('0x57')]=function(_0x8466c5,_0x169cbc,_0x13d073){var _0x437aca=[{'name':_0xbe63('0x58'),'label':_0xbe63('0x58'),'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 _0x168701='';return db[_0xbe63('0x2d')][_0xbe63('0x4e')]({'where':{'id':_0x8466c5[_0xbe63('0x4c')]['id']},'attributes':['id',_0xbe63('0x59'),_0xbe63('0x5a'),_0xbe63('0x5b'),_0xbe63('0x5c'),_0xbe63('0x5d'),_0xbe63('0x5e'),_0xbe63('0x5f'),'tokenSecret']})[_0xbe63('0x27')](handleEntityNotFound(_0x169cbc,null))[_0xbe63('0x27')](function(_0x11aec9){if(_0x11aec9){_0x168701=_0x11aec9[_0xbe63('0x59')];var _0x1e3295=_0x168701['slice'](-0x1);if(_0x1e3295==='/'){_0x168701=_0x168701[_0xbe63('0x60')](0x0,_0x168701['lastIndexOf'](_0x1e3295));}var _0x1bf3c5={'method':'GET','uri':util['format'](_0xbe63('0x61'),_0x168701),'headers':{'Content-Type':'application/json','Accept':'application/json'},'json':!![]};if(_0x11aec9[_0xbe63('0x5a')]===_0xbe63('0x62')){_0x1bf3c5[_0xbe63('0x63')][_0xbe63('0x64')]=util[_0xbe63('0x65')](_0xbe63('0x66'),new Buffer(util[_0xbe63('0x65')]('%s:%s',_0x11aec9[_0xbe63('0x5b')],_0x11aec9[_0xbe63('0x5c')]))[_0xbe63('0x67')](_0xbe63('0x68')));}return rp(_0x1bf3c5)[_0xbe63('0x27')](function(_0x8e82a3){return _0x437aca[_0xbe63('0x69')](_[_0xbe63('0x50')](_0x8e82a3['_embedded']['entries'],function(_0x4e4d3a){return{'id':_0x4e4d3a[_0xbe63('0x2a')],'name':_0x4e4d3a[_0xbe63('0x2a')],'type':_0x4e4d3a[_0xbe63('0x30')],'active':_0x4e4d3a[_0xbe63('0x6a')],'label':_0x4e4d3a[_0xbe63('0x6b')],'custom':!![]};}));});}})[_0xbe63('0x27')](function(_0x9adfe8){return{'count':_0x9adfe8[_0xbe63('0x39')],'rows':_0x9adfe8};})[_0xbe63('0x27')](respondWithResult(_0x169cbc,null))[_0xbe63('0x49')](function(_0x2c02da){var _0xc74934=_0x8466c5[_0xbe63('0x33')]['test']?0x1f4:_0x2c02da[_0xbe63('0x6c')]||0x1f4;logger[_0xbe63('0x28')](_0xbe63('0x6d'),_0xbe63('0x57'),_0xc74934,JSON[_0xbe63('0x6e')](_0x2c02da));delete _0x2c02da[_0xbe63('0x2a')];if(_0xc74934===0x191){_0xc74934=0x190;}_0x169cbc['status'](_0xc74934)[_0xbe63('0x2b')](_0x8466c5[_0xbe63('0x33')][_0xbe63('0x6f')]?{'message':_0xbe63('0x70'),'statusCode':_0x2c02da['statusCode']}:_0x2c02da);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf153=['exports','DeskAccount','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','../../components/integrations/configuration'];(function(_0x3b08de,_0x63ddd0){var _0x53fbe4=function(_0x16eea2){while(--_0x16eea2){_0x3b08de['push'](_0x3b08de['shift']());}};_0x53fbe4(++_0x63ddd0);}(_0xf153,0x176));var _0x3f15=function(_0x4ca858,_0x17c3da){_0x4ca858=_0x4ca858-0x0;var _0x14c241=_0xf153[_0x4ca858];return _0x14c241;};'use strict';var _=require(_0x3f15('0x0'));var util=require(_0x3f15('0x1'));var logger=require(_0x3f15('0x2'))(_0x3f15('0x3'));var moment=require('moment');var BPromise=require(_0x3f15('0x4'));var rp=require(_0x3f15('0x5'));var fs=require('fs');var path=require(_0x3f15('0x6'));var rimraf=require(_0x3f15('0x7'));var config=require(_0x3f15('0x8'));var attributes=require('./intDeskAccount.attributes');var integrations=require(_0x3f15('0x9'));module[_0x3f15('0xa')]=function(_0x48c318,_0x2c7ac4){return _0x48c318['define'](_0x3f15('0xb'),attributes,{'tableName':'int_desk_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x36a1=['lodash','../../config/logger','api','request-promise','path','rimraf','../../config/environment','./intDeskAccount.attributes','../../components/integrations/configuration','exports','define','DeskAccount','int_desk_accounts'];(function(_0x52d2b4,_0x1d67fa){var _0x149ff5=function(_0x2f24f1){while(--_0x2f24f1){_0x52d2b4['push'](_0x52d2b4['shift']());}};_0x149ff5(++_0x1d67fa);}(_0x36a1,0x75));var _0x136a=function(_0x39dc1e,_0x2b2859){_0x39dc1e=_0x39dc1e-0x0;var _0x2e4f03=_0x36a1[_0x39dc1e];return _0x2e4f03;};'use strict';var _=require(_0x136a('0x0'));var util=require('util');var logger=require(_0x136a('0x1'))(_0x136a('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x136a('0x3'));var fs=require('fs');var path=require(_0x136a('0x4'));var rimraf=require(_0x136a('0x5'));var config=require(_0x136a('0x6'));var attributes=require(_0x136a('0x7'));var integrations=require(_0x136a('0x8'));module[_0x136a('0x9')]=function(_0x280c86,_0x312017){return _0x280c86[_0x136a('0xa')](_0x136a('0xb'),attributes,{'tableName':_0x136a('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x61d0=['include','model','map','then','info','debug','stringify','ShowDeskAccount','DeskAccount','find','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','request','DeskAccount,\x20%s,\x20%s','DeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','GetDeskAccount','findAll','options','raw','where','attributes','limit'];(function(_0x5ed114,_0x5159e8){var _0x152d14=function(_0x2c32bf){while(--_0x2c32bf){_0x5ed114['push'](_0x5ed114['shift']());}};_0x152d14(++_0x5159e8);}(_0x61d0,0x9e));var _0x061d=function(_0x1e7701,_0x13fd0f){_0x1e7701=_0x1e7701-0x0;var _0x3ab707=_0x61d0[_0x1e7701];return _0x3ab707;};'use strict';var _=require(_0x061d('0x0'));var util=require(_0x061d('0x1'));var moment=require('moment');var BPromise=require(_0x061d('0x2'));var rs=require(_0x061d('0x3'));var fs=require('fs');var Redis=require(_0x061d('0x4'));var db=require(_0x061d('0x5'))['db'];var utils=require(_0x061d('0x6'));var logger=require(_0x061d('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x061d('0x8'));var client=jayson[_0x061d('0x9')][_0x061d('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2ee43e,_0x127f36,_0x351036){return new BPromise(function(_0x3bbd49,_0x233156){return client[_0x061d('0xb')](_0x2ee43e,_0x351036)['then'](function(_0x43c125){logger['info'](_0x061d('0xc'),_0x127f36,'request\x20sent');logger['debug'](_0x061d('0xd'),_0x127f36,_0x061d('0xe'),JSON['stringify'](_0x43c125));if(_0x43c125[_0x061d('0xf')]){if(_0x43c125[_0x061d('0xf')][_0x061d('0x10')]===0x1f4){logger['error'](_0x061d('0xc'),_0x127f36,_0x43c125[_0x061d('0xf')][_0x061d('0x11')]);return _0x233156(_0x43c125[_0x061d('0xf')][_0x061d('0x11')]);}logger[_0x061d('0xf')](_0x061d('0xc'),_0x127f36,_0x43c125[_0x061d('0xf')]['message']);return _0x3bbd49(_0x43c125['error'][_0x061d('0x11')]);}else{logger['info'](_0x061d('0xc'),_0x127f36,'request\x20sent');_0x3bbd49(_0x43c125[_0x061d('0x12')][_0x061d('0x11')]);}})[_0x061d('0x13')](function(_0x2aa03c){logger['error'](_0x061d('0xc'),_0x127f36,_0x2aa03c);_0x233156(_0x2aa03c);});});}exports[_0x061d('0x14')]=function(_0x3df7ff){var _0x591223=this;return new Promise(function(_0x485e9d,_0x2ade11){return db['DeskAccount'][_0x061d('0x15')]({'raw':_0x3df7ff[_0x061d('0x16')]?_0x3df7ff[_0x061d('0x16')][_0x061d('0x17')]===undefined?!![]:![]:!![],'where':_0x3df7ff[_0x061d('0x16')]?_0x3df7ff['options'][_0x061d('0x18')]||null:null,'attributes':_0x3df7ff['options']?_0x3df7ff[_0x061d('0x16')][_0x061d('0x19')]||null:null,'limit':_0x3df7ff[_0x061d('0x16')]?_0x3df7ff[_0x061d('0x16')][_0x061d('0x1a')]||null:null,'include':_0x3df7ff[_0x061d('0x16')]?_0x3df7ff['options'][_0x061d('0x1b')]?_['map'](_0x3df7ff[_0x061d('0x16')][_0x061d('0x1b')],function(_0x1d01d7){return{'model':db[_0x1d01d7[_0x061d('0x1c')]],'as':_0x1d01d7['as'],'attributes':_0x1d01d7[_0x061d('0x19')],'include':_0x1d01d7[_0x061d('0x1b')]?_[_0x061d('0x1d')](_0x1d01d7[_0x061d('0x1b')],function(_0x1af9c9){return{'model':db[_0x1af9c9[_0x061d('0x1c')]],'as':_0x1af9c9['as'],'attributes':_0x1af9c9['attributes'],'include':_0x1af9c9[_0x061d('0x1b')]?_[_0x061d('0x1d')](_0x1af9c9['include'],function(_0xf032e){return{'model':db[_0xf032e[_0x061d('0x1c')]],'as':_0xf032e['as'],'attributes':_0xf032e[_0x061d('0x19')]};}):[]};}):[]};}):[]:[]})[_0x061d('0x1e')](function(_0x4c08d4){logger[_0x061d('0x1f')](_0x061d('0x14'),_0x3df7ff);logger[_0x061d('0x20')](_0x061d('0x14'),_0x3df7ff,JSON[_0x061d('0x21')](_0x4c08d4));_0x485e9d(_0x4c08d4);})[_0x061d('0x13')](function(_0x419122){logger[_0x061d('0xf')](_0x061d('0x14'),_0x419122[_0x061d('0x11')],_0x3df7ff);_0x2ade11(_0x591223[_0x061d('0xf')](0x1f4,_0x419122['message']));});});};exports[_0x061d('0x22')]=function(_0x5eb69f){var _0x249b50=this;return new Promise(function(_0x72acd8,_0x1dedd9){return db[_0x061d('0x23')][_0x061d('0x24')]({'raw':_0x5eb69f[_0x061d('0x16')]?_0x5eb69f[_0x061d('0x16')]['raw']===undefined?!![]:![]:!![],'where':_0x5eb69f[_0x061d('0x16')]?_0x5eb69f[_0x061d('0x16')][_0x061d('0x18')]||null:null,'attributes':_0x5eb69f[_0x061d('0x16')]?_0x5eb69f[_0x061d('0x16')]['attributes']||null:null,'include':_0x5eb69f[_0x061d('0x16')]?_0x5eb69f[_0x061d('0x16')]['include']?_[_0x061d('0x1d')](_0x5eb69f[_0x061d('0x16')]['include'],function(_0x42082e){return{'model':db[_0x42082e[_0x061d('0x1c')]],'as':_0x42082e['as'],'attributes':_0x42082e[_0x061d('0x19')],'include':_0x42082e[_0x061d('0x1b')]?_['map'](_0x42082e[_0x061d('0x1b')],function(_0x35e7fd){return{'model':db[_0x35e7fd[_0x061d('0x1c')]],'as':_0x35e7fd['as'],'attributes':_0x35e7fd[_0x061d('0x19')],'include':_0x35e7fd[_0x061d('0x1b')]?_[_0x061d('0x1d')](_0x35e7fd['include'],function(_0x45c097){return{'model':db[_0x45c097[_0x061d('0x1c')]],'as':_0x45c097['as'],'attributes':_0x45c097['attributes']};}):[]};}):[]};}):[]:[]})[_0x061d('0x1e')](function(_0x4e05a3){logger[_0x061d('0x1f')](_0x061d('0x22'),_0x5eb69f);logger['debug'](_0x061d('0x22'),_0x5eb69f,JSON['stringify'](_0x4e05a3));_0x72acd8(_0x4e05a3);})[_0x061d('0x13')](function(_0x132a97){logger[_0x061d('0xf')](_0x061d('0x22'),_0x132a97[_0x061d('0x11')],_0x5eb69f);_0x1dedd9(_0x249b50['error'](0x1f4,_0x132a97[_0x061d('0x11')]));});});};
\ No newline at end of file
+var _0xc711=['map','include','model','debug','ShowDeskAccount','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','DeskAccount,\x20%s,\x20%s','DeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','GetDeskAccount','DeskAccount','findAll','options','raw','where','attributes'];(function(_0x3e08a3,_0x378ba7){var _0x402083=function(_0x46bb8e){while(--_0x46bb8e){_0x3e08a3['push'](_0x3e08a3['shift']());}};_0x402083(++_0x378ba7);}(_0xc711,0x163));var _0x1c71=function(_0x3e0b8f,_0x1cddeb){_0x3e0b8f=_0x3e0b8f-0x0;var _0x22f742=_0xc711[_0x3e0b8f];return _0x22f742;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x1c71('0x0'));var BPromise=require(_0x1c71('0x1'));var rs=require(_0x1c71('0x2'));var fs=require('fs');var Redis=require(_0x1c71('0x3'));var db=require(_0x1c71('0x4'))['db'];var utils=require(_0x1c71('0x5'));var logger=require(_0x1c71('0x6'))(_0x1c71('0x7'));var config=require(_0x1c71('0x8'));var jayson=require(_0x1c71('0x9'));var client=jayson[_0x1c71('0xa')][_0x1c71('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xf6a212,_0x3f51ea,_0x2c9ae0){return new BPromise(function(_0x4fe02d,_0x43aafd){return client[_0x1c71('0xc')](_0xf6a212,_0x2c9ae0)[_0x1c71('0xd')](function(_0x2287e7){logger[_0x1c71('0xe')](_0x1c71('0xf'),_0x3f51ea,'request\x20sent');logger['debug'](_0x1c71('0x10'),_0x3f51ea,_0x1c71('0x11'),JSON[_0x1c71('0x12')](_0x2287e7));if(_0x2287e7[_0x1c71('0x13')]){if(_0x2287e7['error'][_0x1c71('0x14')]===0x1f4){logger[_0x1c71('0x13')](_0x1c71('0xf'),_0x3f51ea,_0x2287e7[_0x1c71('0x13')]['message']);return _0x43aafd(_0x2287e7[_0x1c71('0x13')][_0x1c71('0x15')]);}logger[_0x1c71('0x13')](_0x1c71('0xf'),_0x3f51ea,_0x2287e7['error'][_0x1c71('0x15')]);return _0x4fe02d(_0x2287e7[_0x1c71('0x13')]['message']);}else{logger[_0x1c71('0xe')](_0x1c71('0xf'),_0x3f51ea,'request\x20sent');_0x4fe02d(_0x2287e7['result'][_0x1c71('0x15')]);}})[_0x1c71('0x16')](function(_0x18a799){logger[_0x1c71('0x13')](_0x1c71('0xf'),_0x3f51ea,_0x18a799);_0x43aafd(_0x18a799);});});}exports[_0x1c71('0x17')]=function(_0x1a576e){var _0x348c87=this;return new Promise(function(_0x1d4899,_0x150897){return db[_0x1c71('0x18')][_0x1c71('0x19')]({'raw':_0x1a576e[_0x1c71('0x1a')]?_0x1a576e[_0x1c71('0x1a')][_0x1c71('0x1b')]===undefined?!![]:![]:!![],'where':_0x1a576e[_0x1c71('0x1a')]?_0x1a576e['options'][_0x1c71('0x1c')]||null:null,'attributes':_0x1a576e['options']?_0x1a576e['options'][_0x1c71('0x1d')]||null:null,'limit':_0x1a576e['options']?_0x1a576e[_0x1c71('0x1a')]['limit']||null:null,'include':_0x1a576e['options']?_0x1a576e[_0x1c71('0x1a')]['include']?_[_0x1c71('0x1e')](_0x1a576e[_0x1c71('0x1a')][_0x1c71('0x1f')],function(_0x49cd4b){return{'model':db[_0x49cd4b['model']],'as':_0x49cd4b['as'],'attributes':_0x49cd4b[_0x1c71('0x1d')],'include':_0x49cd4b[_0x1c71('0x1f')]?_[_0x1c71('0x1e')](_0x49cd4b[_0x1c71('0x1f')],function(_0x3f759c){return{'model':db[_0x3f759c[_0x1c71('0x20')]],'as':_0x3f759c['as'],'attributes':_0x3f759c[_0x1c71('0x1d')],'include':_0x3f759c[_0x1c71('0x1f')]?_[_0x1c71('0x1e')](_0x3f759c['include'],function(_0x15c829){return{'model':db[_0x15c829[_0x1c71('0x20')]],'as':_0x15c829['as'],'attributes':_0x15c829['attributes']};}):[]};}):[]};}):[]:[]})[_0x1c71('0xd')](function(_0x4f2c9d){logger[_0x1c71('0xe')](_0x1c71('0x17'),_0x1a576e);logger[_0x1c71('0x21')]('GetDeskAccount',_0x1a576e,JSON[_0x1c71('0x12')](_0x4f2c9d));_0x1d4899(_0x4f2c9d);})['catch'](function(_0x473b60){logger[_0x1c71('0x13')](_0x1c71('0x17'),_0x473b60[_0x1c71('0x15')],_0x1a576e);_0x150897(_0x348c87[_0x1c71('0x13')](0x1f4,_0x473b60['message']));});});};exports['ShowDeskAccount']=function(_0x51d71c){var _0x5eb931=this;return new Promise(function(_0x1fdad9,_0xc52cc0){return db[_0x1c71('0x18')]['find']({'raw':_0x51d71c[_0x1c71('0x1a')]?_0x51d71c[_0x1c71('0x1a')][_0x1c71('0x1b')]===undefined?!![]:![]:!![],'where':_0x51d71c[_0x1c71('0x1a')]?_0x51d71c[_0x1c71('0x1a')]['where']||null:null,'attributes':_0x51d71c[_0x1c71('0x1a')]?_0x51d71c['options'][_0x1c71('0x1d')]||null:null,'include':_0x51d71c[_0x1c71('0x1a')]?_0x51d71c[_0x1c71('0x1a')][_0x1c71('0x1f')]?_[_0x1c71('0x1e')](_0x51d71c['options']['include'],function(_0x1d1a62){return{'model':db[_0x1d1a62[_0x1c71('0x20')]],'as':_0x1d1a62['as'],'attributes':_0x1d1a62[_0x1c71('0x1d')],'include':_0x1d1a62[_0x1c71('0x1f')]?_[_0x1c71('0x1e')](_0x1d1a62[_0x1c71('0x1f')],function(_0x45448f){return{'model':db[_0x45448f[_0x1c71('0x20')]],'as':_0x45448f['as'],'attributes':_0x45448f[_0x1c71('0x1d')],'include':_0x45448f[_0x1c71('0x1f')]?_[_0x1c71('0x1e')](_0x45448f[_0x1c71('0x1f')],function(_0x1a842a){return{'model':db[_0x1a842a[_0x1c71('0x20')]],'as':_0x1a842a['as'],'attributes':_0x1a842a[_0x1c71('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x21fb95){logger[_0x1c71('0xe')](_0x1c71('0x22'),_0x51d71c);logger[_0x1c71('0x21')](_0x1c71('0x22'),_0x51d71c,JSON['stringify'](_0x21fb95));_0x1fdad9(_0x21fb95);})[_0x1c71('0x16')](function(_0x28a5d6){logger[_0x1c71('0x13')]('ShowDeskAccount',_0x28a5d6[_0x1c71('0x15')],_0x51d71c);_0xc52cc0(_0x5eb931[_0x1c71('0x13')](0x1f4,_0x28a5d6['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['../../config/environment','./intDeskConfiguration.controller','get','index','/:id','isAuthenticated','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','/:id/tags','getTags','post','create','put','update','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x1103bb,_0x1378f2){var _0x30773e=function(_0xd2a918){while(--_0xd2a918){_0x1103bb['push'](_0x1103bb['shift']());}};_0x30773e(++_0x1378f2);}(_0x34e8,0x12c));var _0x834e=function(_0xb4e5b6,_0x1cb370){_0xb4e5b6=_0xb4e5b6-0x0;var _0x20d3c6=_0x34e8[_0xb4e5b6];return _0x20d3c6;};'use strict';var multer=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var path=require(_0x834e('0x2'));var timeout=require(_0x834e('0x3'));var express=require('express');var router=express[_0x834e('0x4')]();var fs_extra=require(_0x834e('0x5'));var auth=require(_0x834e('0x6'));var interaction=require(_0x834e('0x7'));var config=require(_0x834e('0x8'));var controller=require(_0x834e('0x9'));router[_0x834e('0xa')]('/',auth['isAuthenticated'](),controller[_0x834e('0xb')]);router['get'](_0x834e('0xc'),auth[_0x834e('0xd')](),controller[_0x834e('0xe')]);router[_0x834e('0xa')](_0x834e('0xf'),auth[_0x834e('0xd')](),controller[_0x834e('0x10')]);router[_0x834e('0xa')](_0x834e('0x11'),auth[_0x834e('0xd')](),controller[_0x834e('0x12')]);router[_0x834e('0xa')](_0x834e('0x13'),auth[_0x834e('0xd')](),controller[_0x834e('0x14')]);router[_0x834e('0xa')](_0x834e('0x15'),auth['isAuthenticated'](),controller[_0x834e('0x16')]);router[_0x834e('0x17')]('/',auth['isAuthenticated'](),controller[_0x834e('0x18')]);router[_0x834e('0x17')](_0x834e('0x15'),auth[_0x834e('0xd')](),controller['setTags']);router[_0x834e('0x19')](_0x834e('0xc'),auth['isAuthenticated'](),controller[_0x834e('0x1a')]);router['delete'](_0x834e('0xc'),auth[_0x834e('0xd')](),controller['destroy']);module[_0x834e('0x1b')]=router;
\ No newline at end of file
+var _0x9957=['/:id/subjects','getSubjects','getDescriptions','/:id/tags','getTags','post','create','setTags','put','update','delete','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intDeskConfiguration.controller','get','isAuthenticated','index','/:id','show','getFields'];(function(_0x31c65c,_0x14a757){var _0x5454c2=function(_0x2d4511){while(--_0x2d4511){_0x31c65c['push'](_0x31c65c['shift']());}};_0x5454c2(++_0x14a757);}(_0x9957,0x93));var _0x7995=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x9957[_0x501510];return _0x1e6ee5;};'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/fields',auth[_0x7995('0xa')](),controller[_0x7995('0xe')]);router[_0x7995('0x9')](_0x7995('0xf'),auth[_0x7995('0xa')](),controller[_0x7995('0x10')]);router[_0x7995('0x9')]('/:id/descriptions',auth[_0x7995('0xa')](),controller[_0x7995('0x11')]);router['get'](_0x7995('0x12'),auth[_0x7995('0xa')](),controller[_0x7995('0x13')]);router[_0x7995('0x14')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0x15')]);router[_0x7995('0x14')]('/:id/tags',auth['isAuthenticated'](),controller[_0x7995('0x16')]);router[_0x7995('0x17')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x18')]);router[_0x7995('0x19')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller['destroy']);module[_0x7995('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2104=['STRING','sequelize','exports'];(function(_0x364085,_0x2d22a6){var _0x3bccf5=function(_0x332ecc){while(--_0x332ecc){_0x364085['push'](_0x364085['shift']());}};_0x3bccf5(++_0x2d22a6);}(_0x2104,0x1c0));var _0x4210=function(_0x4a3898,_0x4c9853){_0x4a3898=_0x4a3898-0x0;var _0x25ceb0=_0x2104[_0x4a3898];return _0x25ceb0;};'use strict';var Sequelize=require(_0x4210('0x0'));module[_0x4210('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x4210('0x2')]}};
\ No newline at end of file
+var _0x8d24=['sequelize','STRING'];(function(_0x5e6c69,_0x516119){var _0x142383=function(_0x455809){while(--_0x455809){_0x5e6c69['push'](_0x5e6c69['shift']());}};_0x142383(++_0x516119);}(_0x8d24,0xc8));var _0x48d2=function(_0x3bf1e0,_0x1580be){_0x3bf1e0=_0x3bf1e0-0x0;var _0x5a9ded=_0x8d24[_0x3bf1e0];return _0x5a9ded;};'use strict';var Sequelize=require(_0x48d2('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x48d2('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8101=['merge','options','DeskConfiguration','include','rows','catch','params','includeAll','find','create','body','getFields','findOne','order','pick','getSubjects','DeskField','getDescriptions','Tag','getTags','setTags','ids','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','offset','limit','undefined','count','set','apply','reject','save','update','then','destroy','sendStatus','stack','name','index','map','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter'];(function(_0x3e9358,_0x5f0e8b){var _0x52ee07=function(_0x40429b){while(--_0x40429b){_0x3e9358['push'](_0x3e9358['shift']());}};_0x52ee07(++_0x5f0e8b);}(_0x8101,0x112));var _0x1810=function(_0xa148b7,_0x2f3eb2){_0xa148b7=_0xa148b7-0x0;var _0x51efd3=_0x8101[_0xa148b7];return _0x51efd3;};'use strict';var emlformat=require(_0x1810('0x0'));var rimraf=require(_0x1810('0x1'));var zipdir=require(_0x1810('0x2'));var jsonpatch=require(_0x1810('0x3'));var rp=require(_0x1810('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x1810('0x5'));var util=require(_0x1810('0x6'));var path=require(_0x1810('0x7'));var sox=require(_0x1810('0x8'));var csv=require(_0x1810('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1810('0xa'));var _=require(_0x1810('0xb'));var squel=require(_0x1810('0xc'));var crypto=require(_0x1810('0xd'));var jsforce=require(_0x1810('0xe'));var deskjs=require(_0x1810('0xf'));var toCsv=require(_0x1810('0x9'));var querystring=require('querystring');var Papa=require(_0x1810('0x10'));var Redis=require(_0x1810('0x11'));var authService=require(_0x1810('0x12'));var qs=require(_0x1810('0x13'));var as=require(_0x1810('0x14'));var hardwareService=require(_0x1810('0x15'));var logger=require(_0x1810('0x16'))(_0x1810('0x17'));var utils=require(_0x1810('0x18'));var config=require(_0x1810('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x1810('0x1a'))['db'];function respondWithStatusCode(_0xc76d5f,_0x4d41eb){_0x4d41eb=_0x4d41eb||0xcc;return function(_0x40c11e){if(_0x40c11e){return _0xc76d5f['sendStatus'](_0x4d41eb);}return _0xc76d5f[_0x1810('0x1b')](_0x4d41eb)[_0x1810('0x1c')]();};}function respondWithResult(_0x224496,_0x2bf36f){_0x2bf36f=_0x2bf36f||0xc8;return function(_0x2a6646){if(_0x2a6646){return _0x224496[_0x1810('0x1b')](_0x2bf36f)[_0x1810('0x1d')](_0x2a6646);}};}function respondWithFilteredResult(_0x54866b,_0x2e607f){return function(_0x12d5b0){if(_0x12d5b0){var _0x114c0c=typeof _0x2e607f[_0x1810('0x1e')]==='undefined'&&typeof _0x2e607f[_0x1810('0x1f')]===_0x1810('0x20');var _0x38d454=_0x12d5b0[_0x1810('0x21')];var _0x1666f1=_0x114c0c?0x0:_0x2e607f['offset'];var _0x26e738=_0x114c0c?_0x12d5b0[_0x1810('0x21')]:_0x2e607f[_0x1810('0x1e')]+_0x2e607f[_0x1810('0x1f')];var _0x29c0a5;if(_0x26e738>=_0x38d454){_0x26e738=_0x38d454;_0x29c0a5=0xc8;}else{_0x29c0a5=0xce;}_0x54866b[_0x1810('0x1b')](_0x29c0a5);return _0x54866b[_0x1810('0x22')]('Content-Range',_0x1666f1+'-'+_0x26e738+'/'+_0x38d454)[_0x1810('0x1d')](_0x12d5b0);}return null;};}function patchUpdates(_0x5b0438){return function(_0x544234){try{jsonpatch[_0x1810('0x23')](_0x544234,_0x5b0438,!![]);}catch(_0x27d4d4){return BPromise[_0x1810('0x24')](_0x27d4d4);}return _0x544234[_0x1810('0x25')]();};}function saveUpdates(_0x127ff3,_0x222892){return function(_0x100ff3){if(_0x100ff3){return _0x100ff3[_0x1810('0x26')](_0x127ff3)[_0x1810('0x27')](function(_0x4941f0){return _0x4941f0;});}return null;};}function removeEntity(_0x2f9fdf,_0x21596e){return function(_0x477579){if(_0x477579){return _0x477579[_0x1810('0x28')]()['then'](function(){_0x2f9fdf[_0x1810('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x547b1f,_0x3fd4c0){return function(_0xd05f71){if(!_0xd05f71){_0x547b1f[_0x1810('0x29')](0x194);}return _0xd05f71;};}function handleError(_0x4a7c9d,_0x1b5188){_0x1b5188=_0x1b5188||0x1f4;return function(_0x233ab4){logger['error'](_0x233ab4[_0x1810('0x2a')]);if(_0x233ab4[_0x1810('0x2b')]){delete _0x233ab4[_0x1810('0x2b')];}_0x4a7c9d['status'](_0x1b5188)['send'](_0x233ab4);};}exports[_0x1810('0x2c')]=function(_0x1acba4,_0x1a872b){var _0x96887a={},_0x693e65={},_0x435db6={'count':0x0,'rows':[]};var _0x3d7a31=_[_0x1810('0x2d')](db['DeskConfiguration'][_0x1810('0x2e')],function(_0x3e5c22){return{'name':_0x3e5c22['fieldName'],'type':_0x3e5c22[_0x1810('0x2f')][_0x1810('0x30')]};});_0x693e65[_0x1810('0x31')]=_['map'](_0x3d7a31,_0x1810('0x2b'));_0x693e65[_0x1810('0x32')]=_[_0x1810('0x33')](_0x1acba4['query']);_0x693e65[_0x1810('0x34')]=_[_0x1810('0x35')](_0x693e65['model'],_0x693e65[_0x1810('0x32')]);_0x96887a[_0x1810('0x36')]=_[_0x1810('0x35')](_0x693e65[_0x1810('0x31')],qs[_0x1810('0x37')](_0x1acba4[_0x1810('0x32')][_0x1810('0x37')]));_0x96887a['attributes']=_0x96887a[_0x1810('0x36')][_0x1810('0x38')]?_0x96887a['attributes']:_0x693e65[_0x1810('0x31')];if(!_0x1acba4[_0x1810('0x32')][_0x1810('0x39')](_0x1810('0x3a'))){_0x96887a[_0x1810('0x1f')]=qs['limit'](_0x1acba4['query'][_0x1810('0x1f')]);_0x96887a[_0x1810('0x1e')]=qs[_0x1810('0x1e')](_0x1acba4['query']['offset']);}_0x96887a['order']=qs['sort'](_0x1acba4[_0x1810('0x32')][_0x1810('0x3b')]);_0x96887a[_0x1810('0x3c')]=qs[_0x1810('0x34')](_['pick'](_0x1acba4[_0x1810('0x32')],_0x693e65[_0x1810('0x34')]),_0x3d7a31);if(_0x1acba4[_0x1810('0x32')][_0x1810('0x3d')]){_0x96887a[_0x1810('0x3c')]=_[_0x1810('0x3e')](_0x96887a[_0x1810('0x3c')],{'$or':_[_0x1810('0x2d')](_0x3d7a31,function(_0x2f602e){if(_0x2f602e['type']!=='VIRTUAL'){var _0x4cf8bc={};_0x4cf8bc[_0x2f602e['name']]={'$like':'%'+_0x1acba4[_0x1810('0x32')][_0x1810('0x3d')]+'%'};return _0x4cf8bc;}})});}_0x96887a=_['merge']({},_0x96887a,_0x1acba4[_0x1810('0x3f')]);var _0x3e5fec={'where':_0x96887a[_0x1810('0x3c')]};return db[_0x1810('0x40')]['count'](_0x3e5fec)[_0x1810('0x27')](function(_0x3896c3){_0x435db6[_0x1810('0x21')]=_0x3896c3;if(_0x1acba4[_0x1810('0x32')]['includeAll']){_0x96887a[_0x1810('0x41')]=[{'all':!![]}];}return db[_0x1810('0x40')]['findAll'](_0x96887a);})['then'](function(_0x2704e0){_0x435db6[_0x1810('0x42')]=_0x2704e0;return _0x435db6;})[_0x1810('0x27')](respondWithFilteredResult(_0x1a872b,_0x96887a))[_0x1810('0x43')](handleError(_0x1a872b,null));};exports['show']=function(_0x3cc6f0,_0x51affd){var _0xbb1874={'raw':![],'where':{'id':_0x3cc6f0[_0x1810('0x44')]['id']}},_0x1a0a62={};_0x1a0a62['model']=_[_0x1810('0x33')](db[_0x1810('0x40')][_0x1810('0x2e')]);_0x1a0a62[_0x1810('0x32')]=_[_0x1810('0x33')](_0x3cc6f0[_0x1810('0x32')]);_0x1a0a62[_0x1810('0x34')]=_[_0x1810('0x35')](_0x1a0a62[_0x1810('0x31')],_0x1a0a62[_0x1810('0x32')]);_0xbb1874[_0x1810('0x36')]=_[_0x1810('0x35')](_0x1a0a62[_0x1810('0x31')],qs[_0x1810('0x37')](_0x3cc6f0['query']['fields']));_0xbb1874[_0x1810('0x36')]=_0xbb1874[_0x1810('0x36')][_0x1810('0x38')]?_0xbb1874[_0x1810('0x36')]:_0x1a0a62[_0x1810('0x31')];if(_0x3cc6f0[_0x1810('0x32')][_0x1810('0x45')]){_0xbb1874[_0x1810('0x41')]=[{'all':!![]}];}_0xbb1874=_['merge']({},_0xbb1874,_0x3cc6f0[_0x1810('0x3f')]);return db[_0x1810('0x40')][_0x1810('0x46')](_0xbb1874)['then'](handleEntityNotFound(_0x51affd,null))[_0x1810('0x27')](respondWithResult(_0x51affd,null))[_0x1810('0x43')](handleError(_0x51affd,null));};exports[_0x1810('0x47')]=function(_0x2623dc,_0x53811c){return db[_0x1810('0x40')][_0x1810('0x47')](_0x2623dc[_0x1810('0x48')],{})[_0x1810('0x27')](respondWithResult(_0x53811c,0xc9))['catch'](handleError(_0x53811c,null));};exports[_0x1810('0x26')]=function(_0x109bd0,_0x37f623){if(_0x109bd0[_0x1810('0x48')]['id']){delete _0x109bd0[_0x1810('0x48')]['id'];}return db[_0x1810('0x40')][_0x1810('0x46')]({'where':{'id':_0x109bd0['params']['id']}})['then'](handleEntityNotFound(_0x37f623,null))[_0x1810('0x27')](saveUpdates(_0x109bd0[_0x1810('0x48')],null))['then'](respondWithResult(_0x37f623,null))['catch'](handleError(_0x37f623,null));};exports[_0x1810('0x28')]=function(_0x430a26,_0xa653c4){return db[_0x1810('0x40')][_0x1810('0x46')]({'where':{'id':_0x430a26['params']['id']}})[_0x1810('0x27')](handleEntityNotFound(_0xa653c4,null))[_0x1810('0x27')](removeEntity(_0xa653c4,null))[_0x1810('0x43')](handleError(_0xa653c4,null));};exports[_0x1810('0x49')]=function(_0x399aba,_0x54ac2b,_0x447ddf){var _0xf5a81e={};var _0x42bf41={};var _0x2fe0fc;var _0x5884db;return db['DeskConfiguration'][_0x1810('0x4a')]({'where':{'id':_0x399aba[_0x1810('0x44')]['id']}})['then'](handleEntityNotFound(_0x54ac2b,null))['then'](function(_0x1017e2){if(_0x1017e2){_0x2fe0fc=_0x1017e2;_0x42bf41['model']=_[_0x1810('0x33')](db['DeskField'][_0x1810('0x2e')]);_0x42bf41['query']=_[_0x1810('0x33')](_0x399aba['query']);_0x42bf41[_0x1810('0x34')]=_[_0x1810('0x35')](_0x42bf41['model'],_0x42bf41[_0x1810('0x32')]);_0xf5a81e[_0x1810('0x36')]=_[_0x1810('0x35')](_0x42bf41[_0x1810('0x31')],qs['fields'](_0x399aba[_0x1810('0x32')]['fields']));_0xf5a81e[_0x1810('0x36')]=_0xf5a81e[_0x1810('0x36')][_0x1810('0x38')]?_0xf5a81e[_0x1810('0x36')]:_0x42bf41[_0x1810('0x31')];_0xf5a81e[_0x1810('0x4b')]=qs[_0x1810('0x3b')](_0x399aba[_0x1810('0x32')][_0x1810('0x3b')]);_0xf5a81e[_0x1810('0x3c')]=qs[_0x1810('0x34')](_[_0x1810('0x4c')](_0x399aba['query'],_0x42bf41[_0x1810('0x34')]));if(_0x399aba[_0x1810('0x32')][_0x1810('0x3d')]){_0xf5a81e['where']=_[_0x1810('0x3e')](_0xf5a81e['where'],{'$or':_['map'](_0xf5a81e[_0x1810('0x36')],function(_0x5d52ec){var _0x1bb0ec={};_0x1bb0ec[_0x5d52ec]={'$like':'%'+_0x399aba[_0x1810('0x32')][_0x1810('0x3d')]+'%'};return _0x1bb0ec;})});}_0xf5a81e=_[_0x1810('0x3e')]({},_0xf5a81e,_0x399aba[_0x1810('0x3f')]);return _0x2fe0fc['getFields'](_0xf5a81e);}})[_0x1810('0x27')](function(_0x49e303){if(_0x49e303){_0x5884db=_0x49e303[_0x1810('0x38')];if(!_0x399aba[_0x1810('0x32')][_0x1810('0x39')]('nolimit')){_0xf5a81e[_0x1810('0x1f')]=qs['limit'](_0x399aba[_0x1810('0x32')]['limit']);_0xf5a81e['offset']=qs[_0x1810('0x1e')](_0x399aba[_0x1810('0x32')][_0x1810('0x1e')]);}return _0x2fe0fc[_0x1810('0x49')](_0xf5a81e);}})['then'](function(_0x47c5d7){if(_0x47c5d7){return _0x47c5d7?{'count':_0x5884db,'rows':_0x47c5d7}:null;}})['then'](respondWithResult(_0x54ac2b,null))[_0x1810('0x43')](handleError(_0x54ac2b,null));};exports[_0x1810('0x4d')]=function(_0x1e41fc,_0x1afe56,_0x46a07d){var _0xfcfa23={};var _0x490977={};var _0x43102f;var _0x810e29;return db[_0x1810('0x40')][_0x1810('0x4a')]({'where':{'id':_0x1e41fc[_0x1810('0x44')]['id']}})['then'](handleEntityNotFound(_0x1afe56,null))[_0x1810('0x27')](function(_0x2e64bb){if(_0x2e64bb){_0x43102f=_0x2e64bb;_0x490977[_0x1810('0x31')]=_[_0x1810('0x33')](db[_0x1810('0x4e')]['rawAttributes']);_0x490977['query']=_[_0x1810('0x33')](_0x1e41fc[_0x1810('0x32')]);_0x490977[_0x1810('0x34')]=_[_0x1810('0x35')](_0x490977['model'],_0x490977[_0x1810('0x32')]);_0xfcfa23[_0x1810('0x36')]=_['intersection'](_0x490977[_0x1810('0x31')],qs[_0x1810('0x37')](_0x1e41fc['query'][_0x1810('0x37')]));_0xfcfa23['attributes']=_0xfcfa23[_0x1810('0x36')][_0x1810('0x38')]?_0xfcfa23['attributes']:_0x490977['model'];_0xfcfa23[_0x1810('0x4b')]=qs['sort'](_0x1e41fc[_0x1810('0x32')][_0x1810('0x3b')]);_0xfcfa23[_0x1810('0x3c')]=qs[_0x1810('0x34')](_['pick'](_0x1e41fc[_0x1810('0x32')],_0x490977[_0x1810('0x34')]));if(_0x1e41fc[_0x1810('0x32')]['filter']){_0xfcfa23['where']=_[_0x1810('0x3e')](_0xfcfa23[_0x1810('0x3c')],{'$or':_[_0x1810('0x2d')](_0xfcfa23['attributes'],function(_0x2fc3c8){var _0x5043f9={};_0x5043f9[_0x2fc3c8]={'$like':'%'+_0x1e41fc[_0x1810('0x32')][_0x1810('0x3d')]+'%'};return _0x5043f9;})});}_0xfcfa23=_[_0x1810('0x3e')]({},_0xfcfa23,_0x1e41fc[_0x1810('0x3f')]);return _0x43102f['getSubjects'](_0xfcfa23);}})['then'](function(_0x13ca82){if(_0x13ca82){_0x810e29=_0x13ca82['length'];if(!_0x1e41fc[_0x1810('0x32')][_0x1810('0x39')](_0x1810('0x3a'))){_0xfcfa23[_0x1810('0x1f')]=qs[_0x1810('0x1f')](_0x1e41fc[_0x1810('0x32')]['limit']);_0xfcfa23[_0x1810('0x1e')]=qs[_0x1810('0x1e')](_0x1e41fc[_0x1810('0x32')][_0x1810('0x1e')]);}return _0x43102f['getSubjects'](_0xfcfa23);}})['then'](function(_0x315f94){if(_0x315f94){return _0x315f94?{'count':_0x810e29,'rows':_0x315f94}:null;}})[_0x1810('0x27')](respondWithResult(_0x1afe56,null))[_0x1810('0x43')](handleError(_0x1afe56,null));};exports[_0x1810('0x4f')]=function(_0xb19061,_0x389750,_0x4a844e){var _0x321054={};var _0x1604a3={};var _0x188821;var _0x4769cf;return db[_0x1810('0x40')][_0x1810('0x4a')]({'where':{'id':_0xb19061[_0x1810('0x44')]['id']}})['then'](handleEntityNotFound(_0x389750,null))[_0x1810('0x27')](function(_0x2f4807){if(_0x2f4807){_0x188821=_0x2f4807;_0x1604a3[_0x1810('0x31')]=_[_0x1810('0x33')](db[_0x1810('0x4e')][_0x1810('0x2e')]);_0x1604a3[_0x1810('0x32')]=_[_0x1810('0x33')](_0xb19061[_0x1810('0x32')]);_0x1604a3['filters']=_[_0x1810('0x35')](_0x1604a3[_0x1810('0x31')],_0x1604a3[_0x1810('0x32')]);_0x321054[_0x1810('0x36')]=_[_0x1810('0x35')](_0x1604a3['model'],qs[_0x1810('0x37')](_0xb19061[_0x1810('0x32')][_0x1810('0x37')]));_0x321054[_0x1810('0x36')]=_0x321054[_0x1810('0x36')][_0x1810('0x38')]?_0x321054[_0x1810('0x36')]:_0x1604a3[_0x1810('0x31')];_0x321054['order']=qs[_0x1810('0x3b')](_0xb19061['query']['sort']);_0x321054[_0x1810('0x3c')]=qs['filters'](_[_0x1810('0x4c')](_0xb19061[_0x1810('0x32')],_0x1604a3[_0x1810('0x34')]));if(_0xb19061[_0x1810('0x32')][_0x1810('0x3d')]){_0x321054[_0x1810('0x3c')]=_[_0x1810('0x3e')](_0x321054[_0x1810('0x3c')],{'$or':_[_0x1810('0x2d')](_0x321054['attributes'],function(_0x57bab8){var _0x2cc80e={};_0x2cc80e[_0x57bab8]={'$like':'%'+_0xb19061[_0x1810('0x32')][_0x1810('0x3d')]+'%'};return _0x2cc80e;})});}_0x321054=_[_0x1810('0x3e')]({},_0x321054,_0xb19061[_0x1810('0x3f')]);return _0x188821[_0x1810('0x4f')](_0x321054);}})[_0x1810('0x27')](function(_0xa46a1e){if(_0xa46a1e){_0x4769cf=_0xa46a1e[_0x1810('0x38')];if(!_0xb19061[_0x1810('0x32')][_0x1810('0x39')]('nolimit')){_0x321054[_0x1810('0x1f')]=qs[_0x1810('0x1f')](_0xb19061[_0x1810('0x32')][_0x1810('0x1f')]);_0x321054[_0x1810('0x1e')]=qs[_0x1810('0x1e')](_0xb19061['query'][_0x1810('0x1e')]);}return _0x188821[_0x1810('0x4f')](_0x321054);}})[_0x1810('0x27')](function(_0x4378af){if(_0x4378af){return _0x4378af?{'count':_0x4769cf,'rows':_0x4378af}:null;}})[_0x1810('0x27')](respondWithResult(_0x389750,null))['catch'](handleError(_0x389750,null));};exports['getTags']=function(_0x227f4f,_0x19c22f,_0x4e1e8f){var _0x194b1c={};var _0x433e23={};var _0x49ebeb;var _0x20badc;return db[_0x1810('0x40')][_0x1810('0x4a')]({'where':{'id':_0x227f4f[_0x1810('0x44')]['id']}})['then'](handleEntityNotFound(_0x19c22f,null))[_0x1810('0x27')](function(_0x53a3ed){if(_0x53a3ed){_0x49ebeb=_0x53a3ed;_0x433e23[_0x1810('0x31')]=_[_0x1810('0x33')](db[_0x1810('0x50')]['rawAttributes']);_0x433e23[_0x1810('0x32')]=_[_0x1810('0x33')](_0x227f4f['query']);_0x433e23['filters']=_[_0x1810('0x35')](_0x433e23['model'],_0x433e23['query']);_0x194b1c[_0x1810('0x36')]=_[_0x1810('0x35')](_0x433e23[_0x1810('0x31')],qs['fields'](_0x227f4f[_0x1810('0x32')][_0x1810('0x37')]));_0x194b1c[_0x1810('0x36')]=_0x194b1c[_0x1810('0x36')][_0x1810('0x38')]?_0x194b1c[_0x1810('0x36')]:_0x433e23[_0x1810('0x31')];_0x194b1c[_0x1810('0x4b')]=qs['sort'](_0x227f4f['query'][_0x1810('0x3b')]);_0x194b1c[_0x1810('0x3c')]=qs[_0x1810('0x34')](_['pick'](_0x227f4f[_0x1810('0x32')],_0x433e23[_0x1810('0x34')]));if(_0x227f4f['query'][_0x1810('0x3d')]){_0x194b1c[_0x1810('0x3c')]=_['merge'](_0x194b1c[_0x1810('0x3c')],{'$or':_['map'](_0x194b1c['attributes'],function(_0xea0c70){var _0x33d791={};_0x33d791[_0xea0c70]={'$like':'%'+_0x227f4f[_0x1810('0x32')][_0x1810('0x3d')]+'%'};return _0x33d791;})});}_0x194b1c=_['merge']({},_0x194b1c,_0x227f4f[_0x1810('0x3f')]);return _0x49ebeb[_0x1810('0x51')](_0x194b1c);}})[_0x1810('0x27')](function(_0x31c09d){if(_0x31c09d){_0x20badc=_0x31c09d[_0x1810('0x38')];if(!_0x227f4f[_0x1810('0x32')][_0x1810('0x39')]('nolimit')){_0x194b1c[_0x1810('0x1f')]=qs['limit'](_0x227f4f['query'][_0x1810('0x1f')]);_0x194b1c[_0x1810('0x1e')]=qs[_0x1810('0x1e')](_0x227f4f[_0x1810('0x32')][_0x1810('0x1e')]);}return _0x49ebeb[_0x1810('0x51')](_0x194b1c);}})['then'](function(_0x3a9ddb){if(_0x3a9ddb){return _0x3a9ddb?{'count':_0x20badc,'rows':_0x3a9ddb}:null;}})[_0x1810('0x27')](respondWithResult(_0x19c22f,null))[_0x1810('0x43')](handleError(_0x19c22f,null));};exports[_0x1810('0x52')]=function(_0x1b2648,_0x3fae78,_0x3fc977){if(_0x1b2648[_0x1810('0x48')]['id']){delete _0x1b2648[_0x1810('0x48')]['id'];}return db[_0x1810('0x40')][_0x1810('0x4a')]({'where':{'id':_0x1b2648[_0x1810('0x44')]['id']}})[_0x1810('0x27')](handleEntityNotFound(_0x3fae78,null))[_0x1810('0x27')](function(_0x46f0b2){if(_0x46f0b2){return _0x46f0b2[_0x1810('0x52')](_0x1b2648[_0x1810('0x48')][_0x1810('0x53')]||[]);}return null;})[_0x1810('0x27')](respondWithResult(_0x3fae78,null))[_0x1810('0x43')](handleError(_0x3fae78,null));};
\ No newline at end of file
+var _0xbf9b=['getSubjects','DeskField','getDescriptions','getTags','Tag','setTags','ids','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','crypto','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','map','DeskConfiguration','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','filter','merge','VIRTUAL','options','includeAll','rows','catch','show','params','include','find','create','body','findOne','sort','getFields'];(function(_0x5f275,_0x561d6b){var _0x17cd29=function(_0x909af0){while(--_0x909af0){_0x5f275['push'](_0x5f275['shift']());}};_0x17cd29(++_0x561d6b);}(_0xbf9b,0x103));var _0xbbf9=function(_0x13e741,_0x5d3c24){_0x13e741=_0x13e741-0x0;var _0x3f8bb3=_0xbf9b[_0x13e741];return _0x3f8bb3;};'use strict';var emlformat=require(_0xbbf9('0x0'));var rimraf=require(_0xbbf9('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbbf9('0x2'));var rp=require(_0xbbf9('0x3'));var moment=require('moment');var BPromise=require(_0xbbf9('0x4'));var Mustache=require(_0xbbf9('0x5'));var util=require(_0xbbf9('0x6'));var path=require(_0xbbf9('0x7'));var sox=require(_0xbbf9('0x8'));var csv=require('to-csv');var ejs=require(_0xbbf9('0x9'));var fs=require('fs');var fs_extra=require(_0xbbf9('0xa'));var _=require('lodash');var squel=require(_0xbbf9('0xb'));var crypto=require(_0xbbf9('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xbbf9('0xd'));var toCsv=require(_0xbbf9('0xe'));var querystring=require(_0xbbf9('0xf'));var Papa=require('papaparse');var Redis=require(_0xbbf9('0x10'));var authService=require(_0xbbf9('0x11'));var qs=require(_0xbbf9('0x12'));var as=require(_0xbbf9('0x13'));var hardwareService=require(_0xbbf9('0x14'));var logger=require(_0xbbf9('0x15'))(_0xbbf9('0x16'));var utils=require('../../config/utils');var config=require(_0xbbf9('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xbbf9('0x18'))['db'];function respondWithStatusCode(_0x41b384,_0x3c5a82){_0x3c5a82=_0x3c5a82||0xcc;return function(_0xe3d546){if(_0xe3d546){return _0x41b384['sendStatus'](_0x3c5a82);}return _0x41b384['status'](_0x3c5a82)['end']();};}function respondWithResult(_0x47cc92,_0x568b35){_0x568b35=_0x568b35||0xc8;return function(_0x44a388){if(_0x44a388){return _0x47cc92[_0xbbf9('0x19')](_0x568b35)[_0xbbf9('0x1a')](_0x44a388);}};}function respondWithFilteredResult(_0x31a80d,_0x1aee80){return function(_0x509bee){if(_0x509bee){var _0x5c1af1=typeof _0x1aee80[_0xbbf9('0x1b')]===_0xbbf9('0x1c')&&typeof _0x1aee80['limit']===_0xbbf9('0x1c');var _0x1b56ec=_0x509bee[_0xbbf9('0x1d')];var _0x9d7965=_0x5c1af1?0x0:_0x1aee80[_0xbbf9('0x1b')];var _0x1f7f51=_0x5c1af1?_0x509bee['count']:_0x1aee80[_0xbbf9('0x1b')]+_0x1aee80[_0xbbf9('0x1e')];var _0x57ceab;if(_0x1f7f51>=_0x1b56ec){_0x1f7f51=_0x1b56ec;_0x57ceab=0xc8;}else{_0x57ceab=0xce;}_0x31a80d[_0xbbf9('0x19')](_0x57ceab);return _0x31a80d[_0xbbf9('0x1f')](_0xbbf9('0x20'),_0x9d7965+'-'+_0x1f7f51+'/'+_0x1b56ec)[_0xbbf9('0x1a')](_0x509bee);}return null;};}function patchUpdates(_0x4bbbf4){return function(_0x2ba98b){try{jsonpatch[_0xbbf9('0x21')](_0x2ba98b,_0x4bbbf4,!![]);}catch(_0x4a5e81){return BPromise[_0xbbf9('0x22')](_0x4a5e81);}return _0x2ba98b[_0xbbf9('0x23')]();};}function saveUpdates(_0x37fdb4,_0x56f50e){return function(_0x4ed3a6){if(_0x4ed3a6){return _0x4ed3a6[_0xbbf9('0x24')](_0x37fdb4)[_0xbbf9('0x25')](function(_0x912c9f){return _0x912c9f;});}return null;};}function removeEntity(_0x1d4f26,_0x41e69a){return function(_0x2cb55b){if(_0x2cb55b){return _0x2cb55b[_0xbbf9('0x26')]()[_0xbbf9('0x25')](function(){_0x1d4f26[_0xbbf9('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4a9d20,_0x47967c){return function(_0x1f6359){if(!_0x1f6359){_0x4a9d20['sendStatus'](0x194);}return _0x1f6359;};}function handleError(_0x573057,_0xb90f00){_0xb90f00=_0xb90f00||0x1f4;return function(_0x3d200c){logger['error'](_0x3d200c[_0xbbf9('0x27')]);if(_0x3d200c['name']){delete _0x3d200c[_0xbbf9('0x28')];}_0x573057[_0xbbf9('0x19')](_0xb90f00)[_0xbbf9('0x29')](_0x3d200c);};}exports[_0xbbf9('0x2a')]=function(_0x1a0fd0,_0x59dad3){var _0x34db20={},_0x344927={},_0x443700={'count':0x0,'rows':[]};var _0x31b193=_[_0xbbf9('0x2b')](db[_0xbbf9('0x2c')][_0xbbf9('0x2d')],function(_0x4a0620){return{'name':_0x4a0620['fieldName'],'type':_0x4a0620[_0xbbf9('0x2e')][_0xbbf9('0x2f')]};});_0x344927[_0xbbf9('0x30')]=_['map'](_0x31b193,_0xbbf9('0x28'));_0x344927[_0xbbf9('0x31')]=_[_0xbbf9('0x32')](_0x1a0fd0[_0xbbf9('0x31')]);_0x344927[_0xbbf9('0x33')]=_[_0xbbf9('0x34')](_0x344927[_0xbbf9('0x30')],_0x344927[_0xbbf9('0x31')]);_0x34db20[_0xbbf9('0x35')]=_[_0xbbf9('0x34')](_0x344927[_0xbbf9('0x30')],qs[_0xbbf9('0x36')](_0x1a0fd0[_0xbbf9('0x31')]['fields']));_0x34db20[_0xbbf9('0x35')]=_0x34db20[_0xbbf9('0x35')][_0xbbf9('0x37')]?_0x34db20[_0xbbf9('0x35')]:_0x344927[_0xbbf9('0x30')];if(!_0x1a0fd0[_0xbbf9('0x31')][_0xbbf9('0x38')](_0xbbf9('0x39'))){_0x34db20[_0xbbf9('0x1e')]=qs[_0xbbf9('0x1e')](_0x1a0fd0[_0xbbf9('0x31')][_0xbbf9('0x1e')]);_0x34db20['offset']=qs['offset'](_0x1a0fd0[_0xbbf9('0x31')][_0xbbf9('0x1b')]);}_0x34db20[_0xbbf9('0x3a')]=qs['sort'](_0x1a0fd0['query']['sort']);_0x34db20[_0xbbf9('0x3b')]=qs[_0xbbf9('0x33')](_[_0xbbf9('0x3c')](_0x1a0fd0[_0xbbf9('0x31')],_0x344927[_0xbbf9('0x33')]),_0x31b193);if(_0x1a0fd0['query'][_0xbbf9('0x3d')]){_0x34db20['where']=_[_0xbbf9('0x3e')](_0x34db20[_0xbbf9('0x3b')],{'$or':_[_0xbbf9('0x2b')](_0x31b193,function(_0x1ed5f3){if(_0x1ed5f3[_0xbbf9('0x2e')]!==_0xbbf9('0x3f')){var _0x49df4a={};_0x49df4a[_0x1ed5f3[_0xbbf9('0x28')]]={'$like':'%'+_0x1a0fd0[_0xbbf9('0x31')]['filter']+'%'};return _0x49df4a;}})});}_0x34db20=_[_0xbbf9('0x3e')]({},_0x34db20,_0x1a0fd0[_0xbbf9('0x40')]);var _0x3d9d29={'where':_0x34db20[_0xbbf9('0x3b')]};return db[_0xbbf9('0x2c')][_0xbbf9('0x1d')](_0x3d9d29)['then'](function(_0x240bde){_0x443700['count']=_0x240bde;if(_0x1a0fd0[_0xbbf9('0x31')][_0xbbf9('0x41')]){_0x34db20['include']=[{'all':!![]}];}return db['DeskConfiguration']['findAll'](_0x34db20);})[_0xbbf9('0x25')](function(_0x177694){_0x443700[_0xbbf9('0x42')]=_0x177694;return _0x443700;})[_0xbbf9('0x25')](respondWithFilteredResult(_0x59dad3,_0x34db20))[_0xbbf9('0x43')](handleError(_0x59dad3,null));};exports[_0xbbf9('0x44')]=function(_0x36f9df,_0x5e4e30){var _0x5357e2={'raw':![],'where':{'id':_0x36f9df[_0xbbf9('0x45')]['id']}},_0x594139={};_0x594139[_0xbbf9('0x30')]=_['keys'](db['DeskConfiguration']['rawAttributes']);_0x594139[_0xbbf9('0x31')]=_['keys'](_0x36f9df[_0xbbf9('0x31')]);_0x594139[_0xbbf9('0x33')]=_[_0xbbf9('0x34')](_0x594139[_0xbbf9('0x30')],_0x594139['query']);_0x5357e2[_0xbbf9('0x35')]=_[_0xbbf9('0x34')](_0x594139['model'],qs[_0xbbf9('0x36')](_0x36f9df[_0xbbf9('0x31')]['fields']));_0x5357e2[_0xbbf9('0x35')]=_0x5357e2[_0xbbf9('0x35')]['length']?_0x5357e2[_0xbbf9('0x35')]:_0x594139[_0xbbf9('0x30')];if(_0x36f9df[_0xbbf9('0x31')]['includeAll']){_0x5357e2[_0xbbf9('0x46')]=[{'all':!![]}];}_0x5357e2=_[_0xbbf9('0x3e')]({},_0x5357e2,_0x36f9df[_0xbbf9('0x40')]);return db[_0xbbf9('0x2c')][_0xbbf9('0x47')](_0x5357e2)[_0xbbf9('0x25')](handleEntityNotFound(_0x5e4e30,null))[_0xbbf9('0x25')](respondWithResult(_0x5e4e30,null))[_0xbbf9('0x43')](handleError(_0x5e4e30,null));};exports[_0xbbf9('0x48')]=function(_0x17b5ed,_0x2f1cd7){return db['DeskConfiguration']['create'](_0x17b5ed['body'],{})[_0xbbf9('0x25')](respondWithResult(_0x2f1cd7,0xc9))[_0xbbf9('0x43')](handleError(_0x2f1cd7,null));};exports['update']=function(_0xfb96ca,_0x116ecf){if(_0xfb96ca['body']['id']){delete _0xfb96ca['body']['id'];}return db[_0xbbf9('0x2c')][_0xbbf9('0x47')]({'where':{'id':_0xfb96ca['params']['id']}})[_0xbbf9('0x25')](handleEntityNotFound(_0x116ecf,null))[_0xbbf9('0x25')](saveUpdates(_0xfb96ca[_0xbbf9('0x49')],null))[_0xbbf9('0x25')](respondWithResult(_0x116ecf,null))['catch'](handleError(_0x116ecf,null));};exports[_0xbbf9('0x26')]=function(_0x5a155b,_0x5877a7){return db['DeskConfiguration'][_0xbbf9('0x47')]({'where':{'id':_0x5a155b[_0xbbf9('0x45')]['id']}})['then'](handleEntityNotFound(_0x5877a7,null))[_0xbbf9('0x25')](removeEntity(_0x5877a7,null))['catch'](handleError(_0x5877a7,null));};exports['getFields']=function(_0x1b87db,_0x6c9f18,_0x411553){var _0x4b7e73={};var _0x3c3ccc={};var _0x449b29;var _0x329eda;return db['DeskConfiguration'][_0xbbf9('0x4a')]({'where':{'id':_0x1b87db[_0xbbf9('0x45')]['id']}})[_0xbbf9('0x25')](handleEntityNotFound(_0x6c9f18,null))[_0xbbf9('0x25')](function(_0x1490fe){if(_0x1490fe){_0x449b29=_0x1490fe;_0x3c3ccc[_0xbbf9('0x30')]=_[_0xbbf9('0x32')](db['DeskField'][_0xbbf9('0x2d')]);_0x3c3ccc[_0xbbf9('0x31')]=_[_0xbbf9('0x32')](_0x1b87db[_0xbbf9('0x31')]);_0x3c3ccc[_0xbbf9('0x33')]=_['intersection'](_0x3c3ccc[_0xbbf9('0x30')],_0x3c3ccc[_0xbbf9('0x31')]);_0x4b7e73[_0xbbf9('0x35')]=_[_0xbbf9('0x34')](_0x3c3ccc['model'],qs[_0xbbf9('0x36')](_0x1b87db[_0xbbf9('0x31')][_0xbbf9('0x36')]));_0x4b7e73[_0xbbf9('0x35')]=_0x4b7e73[_0xbbf9('0x35')][_0xbbf9('0x37')]?_0x4b7e73[_0xbbf9('0x35')]:_0x3c3ccc['model'];_0x4b7e73[_0xbbf9('0x3a')]=qs[_0xbbf9('0x4b')](_0x1b87db['query']['sort']);_0x4b7e73[_0xbbf9('0x3b')]=qs[_0xbbf9('0x33')](_[_0xbbf9('0x3c')](_0x1b87db[_0xbbf9('0x31')],_0x3c3ccc['filters']));if(_0x1b87db[_0xbbf9('0x31')][_0xbbf9('0x3d')]){_0x4b7e73[_0xbbf9('0x3b')]=_['merge'](_0x4b7e73[_0xbbf9('0x3b')],{'$or':_[_0xbbf9('0x2b')](_0x4b7e73[_0xbbf9('0x35')],function(_0x31e5b5){var _0x3513e7={};_0x3513e7[_0x31e5b5]={'$like':'%'+_0x1b87db['query'][_0xbbf9('0x3d')]+'%'};return _0x3513e7;})});}_0x4b7e73=_[_0xbbf9('0x3e')]({},_0x4b7e73,_0x1b87db[_0xbbf9('0x40')]);return _0x449b29[_0xbbf9('0x4c')](_0x4b7e73);}})[_0xbbf9('0x25')](function(_0x46eb4f){if(_0x46eb4f){_0x329eda=_0x46eb4f[_0xbbf9('0x37')];if(!_0x1b87db[_0xbbf9('0x31')][_0xbbf9('0x38')](_0xbbf9('0x39'))){_0x4b7e73[_0xbbf9('0x1e')]=qs[_0xbbf9('0x1e')](_0x1b87db['query']['limit']);_0x4b7e73[_0xbbf9('0x1b')]=qs[_0xbbf9('0x1b')](_0x1b87db[_0xbbf9('0x31')][_0xbbf9('0x1b')]);}return _0x449b29['getFields'](_0x4b7e73);}})[_0xbbf9('0x25')](function(_0x3c8f65){if(_0x3c8f65){return _0x3c8f65?{'count':_0x329eda,'rows':_0x3c8f65}:null;}})[_0xbbf9('0x25')](respondWithResult(_0x6c9f18,null))[_0xbbf9('0x43')](handleError(_0x6c9f18,null));};exports[_0xbbf9('0x4d')]=function(_0x1a6382,_0x49c9cf,_0x697b85){var _0x40f9cd={};var _0x407755={};var _0x3bb2b5;var _0x595708;return db[_0xbbf9('0x2c')]['findOne']({'where':{'id':_0x1a6382[_0xbbf9('0x45')]['id']}})[_0xbbf9('0x25')](handleEntityNotFound(_0x49c9cf,null))[_0xbbf9('0x25')](function(_0x4666c8){if(_0x4666c8){_0x3bb2b5=_0x4666c8;_0x407755[_0xbbf9('0x30')]=_[_0xbbf9('0x32')](db[_0xbbf9('0x4e')]['rawAttributes']);_0x407755[_0xbbf9('0x31')]=_[_0xbbf9('0x32')](_0x1a6382['query']);_0x407755[_0xbbf9('0x33')]=_[_0xbbf9('0x34')](_0x407755[_0xbbf9('0x30')],_0x407755['query']);_0x40f9cd[_0xbbf9('0x35')]=_[_0xbbf9('0x34')](_0x407755[_0xbbf9('0x30')],qs['fields'](_0x1a6382['query'][_0xbbf9('0x36')]));_0x40f9cd['attributes']=_0x40f9cd[_0xbbf9('0x35')][_0xbbf9('0x37')]?_0x40f9cd[_0xbbf9('0x35')]:_0x407755[_0xbbf9('0x30')];_0x40f9cd[_0xbbf9('0x3a')]=qs[_0xbbf9('0x4b')](_0x1a6382[_0xbbf9('0x31')]['sort']);_0x40f9cd[_0xbbf9('0x3b')]=qs[_0xbbf9('0x33')](_[_0xbbf9('0x3c')](_0x1a6382[_0xbbf9('0x31')],_0x407755[_0xbbf9('0x33')]));if(_0x1a6382[_0xbbf9('0x31')][_0xbbf9('0x3d')]){_0x40f9cd['where']=_[_0xbbf9('0x3e')](_0x40f9cd[_0xbbf9('0x3b')],{'$or':_[_0xbbf9('0x2b')](_0x40f9cd['attributes'],function(_0x513723){var _0x100aee={};_0x100aee[_0x513723]={'$like':'%'+_0x1a6382['query'][_0xbbf9('0x3d')]+'%'};return _0x100aee;})});}_0x40f9cd=_['merge']({},_0x40f9cd,_0x1a6382[_0xbbf9('0x40')]);return _0x3bb2b5[_0xbbf9('0x4d')](_0x40f9cd);}})[_0xbbf9('0x25')](function(_0x30e0fb){if(_0x30e0fb){_0x595708=_0x30e0fb[_0xbbf9('0x37')];if(!_0x1a6382[_0xbbf9('0x31')][_0xbbf9('0x38')](_0xbbf9('0x39'))){_0x40f9cd[_0xbbf9('0x1e')]=qs['limit'](_0x1a6382[_0xbbf9('0x31')][_0xbbf9('0x1e')]);_0x40f9cd[_0xbbf9('0x1b')]=qs['offset'](_0x1a6382[_0xbbf9('0x31')][_0xbbf9('0x1b')]);}return _0x3bb2b5['getSubjects'](_0x40f9cd);}})[_0xbbf9('0x25')](function(_0xacbb94){if(_0xacbb94){return _0xacbb94?{'count':_0x595708,'rows':_0xacbb94}:null;}})[_0xbbf9('0x25')](respondWithResult(_0x49c9cf,null))[_0xbbf9('0x43')](handleError(_0x49c9cf,null));};exports['getDescriptions']=function(_0x3ea126,_0x2b2f56,_0x3a0369){var _0x58de5d={};var _0x579549={};var _0x257fac;var _0x266c25;return db['DeskConfiguration'][_0xbbf9('0x4a')]({'where':{'id':_0x3ea126[_0xbbf9('0x45')]['id']}})[_0xbbf9('0x25')](handleEntityNotFound(_0x2b2f56,null))['then'](function(_0x223d6d){if(_0x223d6d){_0x257fac=_0x223d6d;_0x579549[_0xbbf9('0x30')]=_[_0xbbf9('0x32')](db['DeskField'][_0xbbf9('0x2d')]);_0x579549[_0xbbf9('0x31')]=_['keys'](_0x3ea126[_0xbbf9('0x31')]);_0x579549[_0xbbf9('0x33')]=_[_0xbbf9('0x34')](_0x579549[_0xbbf9('0x30')],_0x579549[_0xbbf9('0x31')]);_0x58de5d['attributes']=_[_0xbbf9('0x34')](_0x579549[_0xbbf9('0x30')],qs['fields'](_0x3ea126['query'][_0xbbf9('0x36')]));_0x58de5d['attributes']=_0x58de5d[_0xbbf9('0x35')]['length']?_0x58de5d[_0xbbf9('0x35')]:_0x579549[_0xbbf9('0x30')];_0x58de5d[_0xbbf9('0x3a')]=qs[_0xbbf9('0x4b')](_0x3ea126[_0xbbf9('0x31')][_0xbbf9('0x4b')]);_0x58de5d[_0xbbf9('0x3b')]=qs[_0xbbf9('0x33')](_[_0xbbf9('0x3c')](_0x3ea126['query'],_0x579549[_0xbbf9('0x33')]));if(_0x3ea126[_0xbbf9('0x31')][_0xbbf9('0x3d')]){_0x58de5d['where']=_[_0xbbf9('0x3e')](_0x58de5d[_0xbbf9('0x3b')],{'$or':_['map'](_0x58de5d['attributes'],function(_0x5b8f9e){var _0x4e16f2={};_0x4e16f2[_0x5b8f9e]={'$like':'%'+_0x3ea126[_0xbbf9('0x31')][_0xbbf9('0x3d')]+'%'};return _0x4e16f2;})});}_0x58de5d=_[_0xbbf9('0x3e')]({},_0x58de5d,_0x3ea126[_0xbbf9('0x40')]);return _0x257fac[_0xbbf9('0x4f')](_0x58de5d);}})[_0xbbf9('0x25')](function(_0x2ad1c2){if(_0x2ad1c2){_0x266c25=_0x2ad1c2['length'];if(!_0x3ea126[_0xbbf9('0x31')][_0xbbf9('0x38')](_0xbbf9('0x39'))){_0x58de5d[_0xbbf9('0x1e')]=qs['limit'](_0x3ea126['query'][_0xbbf9('0x1e')]);_0x58de5d[_0xbbf9('0x1b')]=qs['offset'](_0x3ea126[_0xbbf9('0x31')][_0xbbf9('0x1b')]);}return _0x257fac['getDescriptions'](_0x58de5d);}})[_0xbbf9('0x25')](function(_0x102ec1){if(_0x102ec1){return _0x102ec1?{'count':_0x266c25,'rows':_0x102ec1}:null;}})['then'](respondWithResult(_0x2b2f56,null))[_0xbbf9('0x43')](handleError(_0x2b2f56,null));};exports[_0xbbf9('0x50')]=function(_0x41446a,_0x1c693c,_0x32c682){var _0x3162ce={};var _0x308836={};var _0x393e32;var _0x33868f;return db[_0xbbf9('0x2c')][_0xbbf9('0x4a')]({'where':{'id':_0x41446a['params']['id']}})[_0xbbf9('0x25')](handleEntityNotFound(_0x1c693c,null))[_0xbbf9('0x25')](function(_0x55ded1){if(_0x55ded1){_0x393e32=_0x55ded1;_0x308836[_0xbbf9('0x30')]=_['keys'](db[_0xbbf9('0x51')][_0xbbf9('0x2d')]);_0x308836[_0xbbf9('0x31')]=_[_0xbbf9('0x32')](_0x41446a[_0xbbf9('0x31')]);_0x308836[_0xbbf9('0x33')]=_[_0xbbf9('0x34')](_0x308836[_0xbbf9('0x30')],_0x308836[_0xbbf9('0x31')]);_0x3162ce[_0xbbf9('0x35')]=_['intersection'](_0x308836['model'],qs[_0xbbf9('0x36')](_0x41446a['query'][_0xbbf9('0x36')]));_0x3162ce[_0xbbf9('0x35')]=_0x3162ce[_0xbbf9('0x35')][_0xbbf9('0x37')]?_0x3162ce[_0xbbf9('0x35')]:_0x308836[_0xbbf9('0x30')];_0x3162ce[_0xbbf9('0x3a')]=qs[_0xbbf9('0x4b')](_0x41446a['query']['sort']);_0x3162ce['where']=qs['filters'](_['pick'](_0x41446a[_0xbbf9('0x31')],_0x308836[_0xbbf9('0x33')]));if(_0x41446a[_0xbbf9('0x31')][_0xbbf9('0x3d')]){_0x3162ce[_0xbbf9('0x3b')]=_['merge'](_0x3162ce[_0xbbf9('0x3b')],{'$or':_[_0xbbf9('0x2b')](_0x3162ce[_0xbbf9('0x35')],function(_0x5f0db0){var _0x5bfbaa={};_0x5bfbaa[_0x5f0db0]={'$like':'%'+_0x41446a[_0xbbf9('0x31')][_0xbbf9('0x3d')]+'%'};return _0x5bfbaa;})});}_0x3162ce=_[_0xbbf9('0x3e')]({},_0x3162ce,_0x41446a[_0xbbf9('0x40')]);return _0x393e32['getTags'](_0x3162ce);}})[_0xbbf9('0x25')](function(_0x1e9924){if(_0x1e9924){_0x33868f=_0x1e9924['length'];if(!_0x41446a[_0xbbf9('0x31')][_0xbbf9('0x38')](_0xbbf9('0x39'))){_0x3162ce['limit']=qs[_0xbbf9('0x1e')](_0x41446a[_0xbbf9('0x31')][_0xbbf9('0x1e')]);_0x3162ce[_0xbbf9('0x1b')]=qs[_0xbbf9('0x1b')](_0x41446a['query']['offset']);}return _0x393e32[_0xbbf9('0x50')](_0x3162ce);}})['then'](function(_0x4f8af4){if(_0x4f8af4){return _0x4f8af4?{'count':_0x33868f,'rows':_0x4f8af4}:null;}})[_0xbbf9('0x25')](respondWithResult(_0x1c693c,null))['catch'](handleError(_0x1c693c,null));};exports[_0xbbf9('0x52')]=function(_0x5079a3,_0x543d11,_0x441994){if(_0x5079a3[_0xbbf9('0x49')]['id']){delete _0x5079a3['body']['id'];}return db[_0xbbf9('0x2c')][_0xbbf9('0x4a')]({'where':{'id':_0x5079a3[_0xbbf9('0x45')]['id']}})[_0xbbf9('0x25')](handleEntityNotFound(_0x543d11,null))[_0xbbf9('0x25')](function(_0x2a6757){if(_0x2a6757){return _0x2a6757['setTags'](_0x5079a3[_0xbbf9('0x49')][_0xbbf9('0x53')]||[]);}return null;})['then'](respondWithResult(_0x543d11,null))[_0xbbf9('0x43')](handleError(_0x543d11,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4796=['DeskConfiguration','int_desk_configurations','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./intDeskConfiguration.attributes','exports','define'];(function(_0x55393e,_0x2c0e1b){var _0x1f5885=function(_0x4d78b1){while(--_0x4d78b1){_0x55393e['push'](_0x55393e['shift']());}};_0x1f5885(++_0x2c0e1b);}(_0x4796,0x17c));var _0x6479=function(_0x11ebc9,_0x15e219){_0x11ebc9=_0x11ebc9-0x0;var _0x3c100b=_0x4796[_0x11ebc9];return _0x3c100b;};'use strict';var _=require(_0x6479('0x0'));var util=require(_0x6479('0x1'));var logger=require(_0x6479('0x2'))(_0x6479('0x3'));var moment=require(_0x6479('0x4'));var BPromise=require(_0x6479('0x5'));var rp=require(_0x6479('0x6'));var fs=require('fs');var path=require(_0x6479('0x7'));var rimraf=require('rimraf');var config=require(_0x6479('0x8'));var attributes=require(_0x6479('0x9'));module[_0x6479('0xa')]=function(_0x4e0d10,_0x1b9acf){return _0x4e0d10[_0x6479('0xb')](_0x6479('0xc'),attributes,{'tableName':_0x6479('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xba50=['bluebird','request-promise','path','rimraf','../../config/environment','define','DeskConfiguration','int_desk_configurations','lodash','util','../../config/logger','api','moment'];(function(_0x11f1f0,_0x375011){var _0x49d82e=function(_0x2017de){while(--_0x2017de){_0x11f1f0['push'](_0x11f1f0['shift']());}};_0x49d82e(++_0x375011);}(_0xba50,0x15a));var _0x0ba5=function(_0xe9e8f9,_0xa250b8){_0xe9e8f9=_0xe9e8f9-0x0;var _0x28768e=_0xba50[_0xe9e8f9];return _0x28768e;};'use strict';var _=require(_0x0ba5('0x0'));var util=require(_0x0ba5('0x1'));var logger=require(_0x0ba5('0x2'))(_0x0ba5('0x3'));var moment=require(_0x0ba5('0x4'));var BPromise=require(_0x0ba5('0x5'));var rp=require(_0x0ba5('0x6'));var fs=require('fs');var path=require(_0x0ba5('0x7'));var rimraf=require(_0x0ba5('0x8'));var config=require(_0x0ba5('0x9'));var attributes=require('./intDeskConfiguration.attributes');module['exports']=function(_0x441c35,_0x4f0471){return _0x441c35[_0x0ba5('0xa')](_0x0ba5('0xb'),attributes,{'tableName':_0x0ba5('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2899=['moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','then','info','DeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','code','error','message','result','lodash','util'];(function(_0xbab8d5,_0x45ae45){var _0x274ce6=function(_0x16b1cc){while(--_0x16b1cc){_0xbab8d5['push'](_0xbab8d5['shift']());}};_0x274ce6(++_0x45ae45);}(_0x2899,0x15e));var _0x9289=function(_0x7f1370,_0x1f8c33){_0x7f1370=_0x7f1370-0x0;var _0x54513b=_0x2899[_0x7f1370];return _0x54513b;};'use strict';var _=require(_0x9289('0x0'));var util=require(_0x9289('0x1'));var moment=require(_0x9289('0x2'));var BPromise=require('bluebird');var rs=require(_0x9289('0x3'));var fs=require('fs');var Redis=require(_0x9289('0x4'));var db=require(_0x9289('0x5'))['db'];var utils=require(_0x9289('0x6'));var logger=require(_0x9289('0x7'))(_0x9289('0x8'));var config=require('../../config/environment');var jayson=require(_0x9289('0x9'));var client=jayson[_0x9289('0xa')][_0x9289('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x438424,_0x1cfed4,_0x1a169c){return new BPromise(function(_0x49e992,_0x109733){return client['request'](_0x438424,_0x1a169c)[_0x9289('0xc')](function(_0x3704ad){logger[_0x9289('0xd')](_0x9289('0xe'),_0x1cfed4,_0x9289('0xf'));logger[_0x9289('0x10')](_0x9289('0x11'),_0x1cfed4,_0x9289('0xf'),JSON['stringify'](_0x3704ad));if(_0x3704ad['error']){if(_0x3704ad['error'][_0x9289('0x12')]===0x1f4){logger[_0x9289('0x13')](_0x9289('0xe'),_0x1cfed4,_0x3704ad[_0x9289('0x13')][_0x9289('0x14')]);return _0x109733(_0x3704ad[_0x9289('0x13')][_0x9289('0x14')]);}logger[_0x9289('0x13')](_0x9289('0xe'),_0x1cfed4,_0x3704ad[_0x9289('0x13')]['message']);return _0x49e992(_0x3704ad[_0x9289('0x13')][_0x9289('0x14')]);}else{logger[_0x9289('0xd')](_0x9289('0xe'),_0x1cfed4,'request\x20sent');_0x49e992(_0x3704ad[_0x9289('0x15')][_0x9289('0x14')]);}})['catch'](function(_0x3d63c5){logger[_0x9289('0x13')]('DeskConfiguration,\x20%s,\x20%s',_0x1cfed4,_0x3d63c5);_0x109733(_0x3d63c5);});});}
\ No newline at end of file
+var _0x9e63=['../../config/environment','jayson/promise','http','then','DeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','error','code','message','info','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x3f4cd0,_0x303070){var _0x3f9f01=function(_0x6ced93){while(--_0x6ced93){_0x3f4cd0['push'](_0x3f4cd0['shift']());}};_0x3f9f01(++_0x303070);}(_0x9e63,0x65));var _0x39e6=function(_0x40ac5e,_0x2de228){_0x40ac5e=_0x40ac5e-0x0;var _0x2839d6=_0x9e63[_0x40ac5e];return _0x2839d6;};'use strict';var _=require(_0x39e6('0x0'));var util=require(_0x39e6('0x1'));var moment=require(_0x39e6('0x2'));var BPromise=require('bluebird');var rs=require(_0x39e6('0x3'));var fs=require('fs');var Redis=require(_0x39e6('0x4'));var db=require(_0x39e6('0x5'))['db'];var utils=require(_0x39e6('0x6'));var logger=require(_0x39e6('0x7'))(_0x39e6('0x8'));var config=require(_0x39e6('0x9'));var jayson=require(_0x39e6('0xa'));var client=jayson['client'][_0x39e6('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3c2224,_0x3f2fa2,_0x554392){return new BPromise(function(_0x21938f,_0xddc291){return client['request'](_0x3c2224,_0x554392)[_0x39e6('0xc')](function(_0x4ee158){logger['info'](_0x39e6('0xd'),_0x3f2fa2,_0x39e6('0xe'));logger[_0x39e6('0xf')](_0x39e6('0x10'),_0x3f2fa2,_0x39e6('0xe'),JSON['stringify'](_0x4ee158));if(_0x4ee158['error']){if(_0x4ee158[_0x39e6('0x11')][_0x39e6('0x12')]===0x1f4){logger[_0x39e6('0x11')](_0x39e6('0xd'),_0x3f2fa2,_0x4ee158[_0x39e6('0x11')]['message']);return _0xddc291(_0x4ee158[_0x39e6('0x11')][_0x39e6('0x13')]);}logger[_0x39e6('0x11')](_0x39e6('0xd'),_0x3f2fa2,_0x4ee158['error']['message']);return _0x21938f(_0x4ee158[_0x39e6('0x11')][_0x39e6('0x13')]);}else{logger[_0x39e6('0x14')](_0x39e6('0xd'),_0x3f2fa2,_0x39e6('0xe'));_0x21938f(_0x4ee158['result'][_0x39e6('0x13')]);}})[_0x39e6('0x15')](function(_0x32ad13){logger[_0x39e6('0x11')](_0x39e6('0xd'),_0x3f2fa2,_0x32ad13);_0xddc291(_0x32ad13);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe85=['connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','post','create','/:id','update','delete','destroy','exports','util','path'];(function(_0x5adc93,_0x5371f7){var _0x55a945=function(_0x293083){while(--_0x293083){_0x5adc93['push'](_0x5adc93['shift']());}};_0x55a945(++_0x5371f7);}(_0xfe85,0x75));var _0x5fe8=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xfe85[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require(_0x5fe8('0x0'));var path=require(_0x5fe8('0x1'));var timeout=require(_0x5fe8('0x2'));var express=require('express');var router=express[_0x5fe8('0x3')]();var fs_extra=require(_0x5fe8('0x4'));var auth=require(_0x5fe8('0x5'));var interaction=require(_0x5fe8('0x6'));var config=require(_0x5fe8('0x7'));var controller=require('./intDeskField.controller');router[_0x5fe8('0x8')]('/',auth[_0x5fe8('0x9')](),controller['index']);router['get']('/:id',auth[_0x5fe8('0x9')](),controller['show']);router[_0x5fe8('0xa')]('/',auth[_0x5fe8('0x9')](),controller[_0x5fe8('0xb')]);router['put'](_0x5fe8('0xc'),auth[_0x5fe8('0x9')](),controller[_0x5fe8('0xd')]);router[_0x5fe8('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x5fe8('0xf')]);module[_0x5fe8('0x10')]=router;
\ No newline at end of file
+var _0xc582=['index','get','/:id','show','create','put','delete','exports','util','path','express','fs-extra','./intDeskField.controller','isAuthenticated'];(function(_0x57619a,_0xe16536){var _0xb177c8=function(_0x38bb63){while(--_0x38bb63){_0x57619a['push'](_0x57619a['shift']());}};_0xb177c8(++_0xe16536);}(_0xc582,0x182));var _0x2c58=function(_0x12fc8d,_0x19ee33){_0x12fc8d=_0x12fc8d-0x0;var _0x3f9d04=_0xc582[_0x12fc8d];return _0x3f9d04;};'use strict';var multer=require('multer');var util=require(_0x2c58('0x0'));var path=require(_0x2c58('0x1'));var timeout=require('connect-timeout');var express=require(_0x2c58('0x2'));var router=express['Router']();var fs_extra=require(_0x2c58('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x2c58('0x4'));router['get']('/',auth[_0x2c58('0x5')](),controller[_0x2c58('0x6')]);router[_0x2c58('0x7')](_0x2c58('0x8'),auth[_0x2c58('0x5')](),controller[_0x2c58('0x9')]);router['post']('/',auth[_0x2c58('0x5')](),controller[_0x2c58('0xa')]);router[_0x2c58('0xb')](_0x2c58('0x8'),auth[_0x2c58('0x5')](),controller['update']);router[_0x2c58('0xc')]('/:id',auth[_0x2c58('0x5')](),controller['destroy']);module[_0x2c58('0xd')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2990=['variable','customVariable','picklist','STRING','BOOLEAN','sequelize','exports','ENUM','string'];(function(_0x4fe7b,_0x5d3d99){var _0x4c31c5=function(_0x5badea){while(--_0x5badea){_0x4fe7b['push'](_0x4fe7b['shift']());}};_0x4c31c5(++_0x5d3d99);}(_0x2990,0xf8));var _0x0299=function(_0x3bb0b8,_0x2af7f9){_0x3bb0b8=_0x3bb0b8-0x0;var _0x52b34a=_0x2990[_0x3bb0b8];return _0x52b34a;};'use strict';var Sequelize=require(_0x0299('0x0'));module[_0x0299('0x1')]={'type':{'type':Sequelize[_0x0299('0x2')](_0x0299('0x3'),_0x0299('0x4'),_0x0299('0x5'),'keyValue',_0x0299('0x6')),'defaultValue':'string'},'content':{'type':Sequelize[_0x0299('0x7')]},'key':{'type':Sequelize[_0x0299('0x7')]},'keyType':{'type':Sequelize['ENUM']('string',_0x0299('0x4'),'customVariable')},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0x0299('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x23ef=['STRING','customVariable','ENUM','string','variable'];(function(_0x1fd81c,_0xc4fd7){var _0x395760=function(_0x88b6e){while(--_0x88b6e){_0x1fd81c['push'](_0x1fd81c['shift']());}};_0x395760(++_0xc4fd7);}(_0x23ef,0x75));var _0xf23e=function(_0x3b496e,_0x194b18){_0x3b496e=_0x3b496e-0x0;var _0x43376b=_0x23ef[_0x3b496e];return _0x43376b;};'use strict';var Sequelize=require('sequelize');module['exports']={'type':{'type':Sequelize[_0xf23e('0x0')](_0xf23e('0x1'),_0xf23e('0x2'),'customVariable','keyValue','picklist'),'defaultValue':_0xf23e('0x1')},'content':{'type':Sequelize[_0xf23e('0x3')]},'key':{'type':Sequelize[_0xf23e('0x3')]},'keyType':{'type':Sequelize[_0xf23e('0x0')]('string','variable',_0xf23e('0x4'))},'keyContent':{'type':Sequelize[_0xf23e('0x3')]},'idField':{'type':Sequelize[_0xf23e('0x3')]},'nameField':{'type':Sequelize[_0xf23e('0x3')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xf23e('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3946=['../../config/license/util','../../mysqldb','status','offset','undefined','limit','Content-Range','json','apply','save','update','then','destroy','sendStatus','error','name','send','index','map','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','VIRTUAL','options','count','includeAll','include','DeskField','rows','catch','merge','find','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment'];(function(_0x23807f,_0x3c5892){var _0x5351a7=function(_0x38a5e5){while(--_0x38a5e5){_0x23807f['push'](_0x23807f['shift']());}};_0x5351a7(++_0x3c5892);}(_0x3946,0x10e));var _0x6394=function(_0xee95aa,_0x56bc39){_0xee95aa=_0xee95aa-0x0;var _0x301db2=_0x3946[_0xee95aa];return _0x301db2;};'use strict';var emlformat=require(_0x6394('0x0'));var rimraf=require(_0x6394('0x1'));var zipdir=require(_0x6394('0x2'));var jsonpatch=require(_0x6394('0x3'));var rp=require(_0x6394('0x4'));var moment=require(_0x6394('0x5'));var BPromise=require(_0x6394('0x6'));var Mustache=require(_0x6394('0x7'));var util=require(_0x6394('0x8'));var path=require('path');var sox=require(_0x6394('0x9'));var csv=require('to-csv');var ejs=require(_0x6394('0xa'));var fs=require('fs');var fs_extra=require(_0x6394('0xb'));var _=require('lodash');var squel=require(_0x6394('0xc'));var crypto=require(_0x6394('0xd'));var jsforce=require(_0x6394('0xe'));var deskjs=require(_0x6394('0xf'));var toCsv=require(_0x6394('0x10'));var querystring=require(_0x6394('0x11'));var Papa=require(_0x6394('0x12'));var Redis=require(_0x6394('0x13'));var authService=require(_0x6394('0x14'));var qs=require(_0x6394('0x15'));var as=require(_0x6394('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6394('0x17'))(_0x6394('0x18'));var utils=require('../../config/utils');var config=require(_0x6394('0x19'));var licenseUtil=require(_0x6394('0x1a'));var db=require(_0x6394('0x1b'))['db'];function respondWithStatusCode(_0x2e4f99,_0x1ad634){_0x1ad634=_0x1ad634||0xcc;return function(_0xf70da7){if(_0xf70da7){return _0x2e4f99['sendStatus'](_0x1ad634);}return _0x2e4f99[_0x6394('0x1c')](_0x1ad634)['end']();};}function respondWithResult(_0x5e6574,_0x39350e){_0x39350e=_0x39350e||0xc8;return function(_0xbf2a2d){if(_0xbf2a2d){return _0x5e6574[_0x6394('0x1c')](_0x39350e)['json'](_0xbf2a2d);}};}function respondWithFilteredResult(_0x162056,_0x3f0813){return function(_0x35c074){if(_0x35c074){var _0x1ee379=typeof _0x3f0813[_0x6394('0x1d')]===_0x6394('0x1e')&&typeof _0x3f0813['limit']===_0x6394('0x1e');var _0x46b792=_0x35c074['count'];var _0x17a8e5=_0x1ee379?0x0:_0x3f0813[_0x6394('0x1d')];var _0x4470a4=_0x1ee379?_0x35c074['count']:_0x3f0813[_0x6394('0x1d')]+_0x3f0813[_0x6394('0x1f')];var _0x1c33ae;if(_0x4470a4>=_0x46b792){_0x4470a4=_0x46b792;_0x1c33ae=0xc8;}else{_0x1c33ae=0xce;}_0x162056['status'](_0x1c33ae);return _0x162056['set'](_0x6394('0x20'),_0x17a8e5+'-'+_0x4470a4+'/'+_0x46b792)[_0x6394('0x21')](_0x35c074);}return null;};}function patchUpdates(_0x560cb6){return function(_0x487fca){try{jsonpatch[_0x6394('0x22')](_0x487fca,_0x560cb6,!![]);}catch(_0x4d311e){return BPromise['reject'](_0x4d311e);}return _0x487fca[_0x6394('0x23')]();};}function saveUpdates(_0x5f37b2,_0x306495){return function(_0x6cb192){if(_0x6cb192){return _0x6cb192[_0x6394('0x24')](_0x5f37b2)[_0x6394('0x25')](function(_0x5b3f1c){return _0x5b3f1c;});}return null;};}function removeEntity(_0x16d4a1,_0x16f2d6){return function(_0x549ece){if(_0x549ece){return _0x549ece[_0x6394('0x26')]()['then'](function(){_0x16d4a1['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x28aa33,_0x2e2f60){return function(_0x2938d5){if(!_0x2938d5){_0x28aa33[_0x6394('0x27')](0x194);}return _0x2938d5;};}function handleError(_0x1ca3b2,_0x556973){_0x556973=_0x556973||0x1f4;return function(_0x28d427){logger[_0x6394('0x28')](_0x28d427['stack']);if(_0x28d427[_0x6394('0x29')]){delete _0x28d427['name'];}_0x1ca3b2[_0x6394('0x1c')](_0x556973)[_0x6394('0x2a')](_0x28d427);};}exports[_0x6394('0x2b')]=function(_0xf739a2,_0x28b95f){var _0x4de9ec={},_0x22d9c7={},_0x3eb426={'count':0x0,'rows':[]};var _0x91660f=_[_0x6394('0x2c')](db['DeskField']['rawAttributes'],function(_0x4f657a){return{'name':_0x4f657a[_0x6394('0x2d')],'type':_0x4f657a[_0x6394('0x2e')][_0x6394('0x2f')]};});_0x22d9c7['model']=_['map'](_0x91660f,_0x6394('0x29'));_0x22d9c7['query']=_[_0x6394('0x30')](_0xf739a2[_0x6394('0x31')]);_0x22d9c7[_0x6394('0x32')]=_[_0x6394('0x33')](_0x22d9c7[_0x6394('0x34')],_0x22d9c7[_0x6394('0x31')]);_0x4de9ec[_0x6394('0x35')]=_[_0x6394('0x33')](_0x22d9c7[_0x6394('0x34')],qs[_0x6394('0x36')](_0xf739a2[_0x6394('0x31')][_0x6394('0x36')]));_0x4de9ec['attributes']=_0x4de9ec[_0x6394('0x35')][_0x6394('0x37')]?_0x4de9ec[_0x6394('0x35')]:_0x22d9c7['model'];if(!_0xf739a2[_0x6394('0x31')][_0x6394('0x38')](_0x6394('0x39'))){_0x4de9ec[_0x6394('0x1f')]=qs[_0x6394('0x1f')](_0xf739a2['query'][_0x6394('0x1f')]);_0x4de9ec['offset']=qs[_0x6394('0x1d')](_0xf739a2[_0x6394('0x31')]['offset']);}_0x4de9ec['order']=qs[_0x6394('0x3a')](_0xf739a2[_0x6394('0x31')][_0x6394('0x3a')]);_0x4de9ec[_0x6394('0x3b')]=qs[_0x6394('0x32')](_['pick'](_0xf739a2[_0x6394('0x31')],_0x22d9c7[_0x6394('0x32')]),_0x91660f);if(_0xf739a2['query'][_0x6394('0x3c')]){_0x4de9ec[_0x6394('0x3b')]=_['merge'](_0x4de9ec[_0x6394('0x3b')],{'$or':_['map'](_0x91660f,function(_0x55aabd){if(_0x55aabd[_0x6394('0x2e')]!==_0x6394('0x3d')){var _0x2f9b44={};_0x2f9b44[_0x55aabd[_0x6394('0x29')]]={'$like':'%'+_0xf739a2[_0x6394('0x31')][_0x6394('0x3c')]+'%'};return _0x2f9b44;}})});}_0x4de9ec=_['merge']({},_0x4de9ec,_0xf739a2[_0x6394('0x3e')]);var _0x16fb02={'where':_0x4de9ec['where']};return db['DeskField'][_0x6394('0x3f')](_0x16fb02)[_0x6394('0x25')](function(_0x1db994){_0x3eb426['count']=_0x1db994;if(_0xf739a2[_0x6394('0x31')][_0x6394('0x40')]){_0x4de9ec[_0x6394('0x41')]=[{'all':!![]}];}return db[_0x6394('0x42')]['findAll'](_0x4de9ec);})['then'](function(_0xdebb29){_0x3eb426[_0x6394('0x43')]=_0xdebb29;return _0x3eb426;})[_0x6394('0x25')](respondWithFilteredResult(_0x28b95f,_0x4de9ec))[_0x6394('0x44')](handleError(_0x28b95f,null));};exports['show']=function(_0x8bf427,_0x2afe6f){var _0x4fb62a={'raw':!![],'where':{'id':_0x8bf427['params']['id']}},_0x2dd080={};_0x2dd080[_0x6394('0x34')]=_[_0x6394('0x30')](db[_0x6394('0x42')]['rawAttributes']);_0x2dd080['query']=_[_0x6394('0x30')](_0x8bf427[_0x6394('0x31')]);_0x2dd080['filters']=_[_0x6394('0x33')](_0x2dd080[_0x6394('0x34')],_0x2dd080[_0x6394('0x31')]);_0x4fb62a[_0x6394('0x35')]=_['intersection'](_0x2dd080[_0x6394('0x34')],qs[_0x6394('0x36')](_0x8bf427['query'][_0x6394('0x36')]));_0x4fb62a[_0x6394('0x35')]=_0x4fb62a[_0x6394('0x35')][_0x6394('0x37')]?_0x4fb62a[_0x6394('0x35')]:_0x2dd080[_0x6394('0x34')];if(_0x8bf427[_0x6394('0x31')][_0x6394('0x40')]){_0x4fb62a[_0x6394('0x41')]=[{'all':!![]}];}_0x4fb62a=_[_0x6394('0x45')]({},_0x4fb62a,_0x8bf427[_0x6394('0x3e')]);return db[_0x6394('0x42')][_0x6394('0x46')](_0x4fb62a)[_0x6394('0x25')](handleEntityNotFound(_0x2afe6f,null))[_0x6394('0x25')](respondWithResult(_0x2afe6f,null))[_0x6394('0x44')](handleError(_0x2afe6f,null));};exports[_0x6394('0x47')]=function(_0x762797,_0x1744b3){return db['DeskField'][_0x6394('0x47')](_0x762797['body'],{})[_0x6394('0x25')](respondWithResult(_0x1744b3,0xc9))['catch'](handleError(_0x1744b3,null));};exports[_0x6394('0x24')]=function(_0x322b8d,_0x5882db){if(_0x322b8d[_0x6394('0x48')]['id']){delete _0x322b8d[_0x6394('0x48')]['id'];}return db['DeskField'][_0x6394('0x46')]({'where':{'id':_0x322b8d[_0x6394('0x49')]['id']}})['then'](handleEntityNotFound(_0x5882db,null))[_0x6394('0x25')](saveUpdates(_0x322b8d['body'],null))['then'](respondWithResult(_0x5882db,null))[_0x6394('0x44')](handleError(_0x5882db,null));};exports[_0x6394('0x26')]=function(_0x2bc514,_0x3b9a83){return db[_0x6394('0x42')][_0x6394('0x46')]({'where':{'id':_0x2bc514[_0x6394('0x49')]['id']}})['then'](handleEntityNotFound(_0x3b9a83,null))[_0x6394('0x25')](removeEntity(_0x3b9a83,null))[_0x6394('0x44')](handleError(_0x3b9a83,null));};
\ No newline at end of file
+var _0xbe52=['set','Content-Range','apply','reject','update','then','destroy','error','name','send','index','map','DeskField','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','keys','create','body','find','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count'];(function(_0x54aaac,_0x162860){var _0x37a771=function(_0x1ca4f0){while(--_0x1ca4f0){_0x54aaac['push'](_0x54aaac['shift']());}};_0x37a771(++_0x162860);}(_0xbe52,0x164));var _0x2be5=function(_0x39af63,_0x1f24f3){_0x39af63=_0x39af63-0x0;var _0x5e9dfa=_0xbe52[_0x39af63];return _0x5e9dfa;};'use strict';var emlformat=require(_0x2be5('0x0'));var rimraf=require(_0x2be5('0x1'));var zipdir=require(_0x2be5('0x2'));var jsonpatch=require(_0x2be5('0x3'));var rp=require(_0x2be5('0x4'));var moment=require('moment');var BPromise=require(_0x2be5('0x5'));var Mustache=require(_0x2be5('0x6'));var util=require(_0x2be5('0x7'));var path=require(_0x2be5('0x8'));var sox=require(_0x2be5('0x9'));var csv=require(_0x2be5('0xa'));var ejs=require(_0x2be5('0xb'));var fs=require('fs');var fs_extra=require(_0x2be5('0xc'));var _=require(_0x2be5('0xd'));var squel=require(_0x2be5('0xe'));var crypto=require(_0x2be5('0xf'));var jsforce=require(_0x2be5('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x2be5('0xa'));var querystring=require(_0x2be5('0x11'));var Papa=require(_0x2be5('0x12'));var Redis=require('ioredis');var authService=require(_0x2be5('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2be5('0x14'));var logger=require(_0x2be5('0x15'))(_0x2be5('0x16'));var utils=require(_0x2be5('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x2be5('0x18'));var db=require(_0x2be5('0x19'))['db'];function respondWithStatusCode(_0x5ce5ca,_0x588a62){_0x588a62=_0x588a62||0xcc;return function(_0x25b643){if(_0x25b643){return _0x5ce5ca[_0x2be5('0x1a')](_0x588a62);}return _0x5ce5ca['status'](_0x588a62)[_0x2be5('0x1b')]();};}function respondWithResult(_0x3af879,_0xd905c9){_0xd905c9=_0xd905c9||0xc8;return function(_0x71834e){if(_0x71834e){return _0x3af879[_0x2be5('0x1c')](_0xd905c9)[_0x2be5('0x1d')](_0x71834e);}};}function respondWithFilteredResult(_0x4a1be3,_0x4f8fce){return function(_0x3f4996){if(_0x3f4996){var _0x5e6f16=typeof _0x4f8fce[_0x2be5('0x1e')]==='undefined'&&typeof _0x4f8fce[_0x2be5('0x1f')]===_0x2be5('0x20');var _0x35db37=_0x3f4996['count'];var _0x8ea605=_0x5e6f16?0x0:_0x4f8fce[_0x2be5('0x1e')];var _0x544625=_0x5e6f16?_0x3f4996[_0x2be5('0x21')]:_0x4f8fce[_0x2be5('0x1e')]+_0x4f8fce[_0x2be5('0x1f')];var _0x1bffbf;if(_0x544625>=_0x35db37){_0x544625=_0x35db37;_0x1bffbf=0xc8;}else{_0x1bffbf=0xce;}_0x4a1be3[_0x2be5('0x1c')](_0x1bffbf);return _0x4a1be3[_0x2be5('0x22')](_0x2be5('0x23'),_0x8ea605+'-'+_0x544625+'/'+_0x35db37)['json'](_0x3f4996);}return null;};}function patchUpdates(_0x514223){return function(_0x329cf0){try{jsonpatch[_0x2be5('0x24')](_0x329cf0,_0x514223,!![]);}catch(_0x1bafd2){return BPromise[_0x2be5('0x25')](_0x1bafd2);}return _0x329cf0['save']();};}function saveUpdates(_0x2ecc64,_0x2bc13e){return function(_0x2bbe9f){if(_0x2bbe9f){return _0x2bbe9f[_0x2be5('0x26')](_0x2ecc64)[_0x2be5('0x27')](function(_0x3f78d4){return _0x3f78d4;});}return null;};}function removeEntity(_0x2b776f,_0x29910d){return function(_0x3f4430){if(_0x3f4430){return _0x3f4430[_0x2be5('0x28')]()['then'](function(){_0x2b776f[_0x2be5('0x1c')](0xcc)[_0x2be5('0x1b')]();});}};}function handleEntityNotFound(_0x323c2d,_0x4d3aee){return function(_0x25c47c){if(!_0x25c47c){_0x323c2d[_0x2be5('0x1a')](0x194);}return _0x25c47c;};}function handleError(_0x33ecf1,_0x127093){_0x127093=_0x127093||0x1f4;return function(_0x434637){logger[_0x2be5('0x29')](_0x434637['stack']);if(_0x434637[_0x2be5('0x2a')]){delete _0x434637[_0x2be5('0x2a')];}_0x33ecf1[_0x2be5('0x1c')](_0x127093)[_0x2be5('0x2b')](_0x434637);};}exports[_0x2be5('0x2c')]=function(_0x28c6bb,_0x19edba){var _0x5c8fec={},_0xed9be3={},_0x38e698={'count':0x0,'rows':[]};var _0x52ed0f=_[_0x2be5('0x2d')](db[_0x2be5('0x2e')][_0x2be5('0x2f')],function(_0x16afa0){return{'name':_0x16afa0['fieldName'],'type':_0x16afa0[_0x2be5('0x30')][_0x2be5('0x31')]};});_0xed9be3[_0x2be5('0x32')]=_['map'](_0x52ed0f,_0x2be5('0x2a'));_0xed9be3[_0x2be5('0x33')]=_['keys'](_0x28c6bb[_0x2be5('0x33')]);_0xed9be3[_0x2be5('0x34')]=_[_0x2be5('0x35')](_0xed9be3[_0x2be5('0x32')],_0xed9be3['query']);_0x5c8fec[_0x2be5('0x36')]=_[_0x2be5('0x35')](_0xed9be3[_0x2be5('0x32')],qs['fields'](_0x28c6bb['query'][_0x2be5('0x37')]));_0x5c8fec[_0x2be5('0x36')]=_0x5c8fec[_0x2be5('0x36')][_0x2be5('0x38')]?_0x5c8fec[_0x2be5('0x36')]:_0xed9be3[_0x2be5('0x32')];if(!_0x28c6bb['query'][_0x2be5('0x39')](_0x2be5('0x3a'))){_0x5c8fec['limit']=qs[_0x2be5('0x1f')](_0x28c6bb[_0x2be5('0x33')][_0x2be5('0x1f')]);_0x5c8fec['offset']=qs['offset'](_0x28c6bb[_0x2be5('0x33')][_0x2be5('0x1e')]);}_0x5c8fec[_0x2be5('0x3b')]=qs[_0x2be5('0x3c')](_0x28c6bb[_0x2be5('0x33')][_0x2be5('0x3c')]);_0x5c8fec[_0x2be5('0x3d')]=qs[_0x2be5('0x34')](_[_0x2be5('0x3e')](_0x28c6bb['query'],_0xed9be3[_0x2be5('0x34')]),_0x52ed0f);if(_0x28c6bb[_0x2be5('0x33')][_0x2be5('0x3f')]){_0x5c8fec['where']=_[_0x2be5('0x40')](_0x5c8fec[_0x2be5('0x3d')],{'$or':_[_0x2be5('0x2d')](_0x52ed0f,function(_0x4e21ff){if(_0x4e21ff['type']!==_0x2be5('0x41')){var _0x1af199={};_0x1af199[_0x4e21ff[_0x2be5('0x2a')]]={'$like':'%'+_0x28c6bb['query'][_0x2be5('0x3f')]+'%'};return _0x1af199;}})});}_0x5c8fec=_['merge']({},_0x5c8fec,_0x28c6bb[_0x2be5('0x42')]);var _0x399978={'where':_0x5c8fec['where']};return db[_0x2be5('0x2e')][_0x2be5('0x21')](_0x399978)[_0x2be5('0x27')](function(_0x3625b1){_0x38e698['count']=_0x3625b1;if(_0x28c6bb['query'][_0x2be5('0x43')]){_0x5c8fec[_0x2be5('0x44')]=[{'all':!![]}];}return db[_0x2be5('0x2e')][_0x2be5('0x45')](_0x5c8fec);})[_0x2be5('0x27')](function(_0x58794e){_0x38e698[_0x2be5('0x46')]=_0x58794e;return _0x38e698;})['then'](respondWithFilteredResult(_0x19edba,_0x5c8fec))[_0x2be5('0x47')](handleError(_0x19edba,null));};exports[_0x2be5('0x48')]=function(_0x97213c,_0xd93da9){var _0x2ad07a={'raw':!![],'where':{'id':_0x97213c['params']['id']}},_0x50f828={};_0x50f828['model']=_[_0x2be5('0x49')](db['DeskField'][_0x2be5('0x2f')]);_0x50f828['query']=_[_0x2be5('0x49')](_0x97213c[_0x2be5('0x33')]);_0x50f828['filters']=_['intersection'](_0x50f828[_0x2be5('0x32')],_0x50f828[_0x2be5('0x33')]);_0x2ad07a[_0x2be5('0x36')]=_['intersection'](_0x50f828['model'],qs[_0x2be5('0x37')](_0x97213c['query'][_0x2be5('0x37')]));_0x2ad07a['attributes']=_0x2ad07a['attributes']['length']?_0x2ad07a[_0x2be5('0x36')]:_0x50f828[_0x2be5('0x32')];if(_0x97213c['query'][_0x2be5('0x43')]){_0x2ad07a[_0x2be5('0x44')]=[{'all':!![]}];}_0x2ad07a=_[_0x2be5('0x40')]({},_0x2ad07a,_0x97213c[_0x2be5('0x42')]);return db['DeskField']['find'](_0x2ad07a)[_0x2be5('0x27')](handleEntityNotFound(_0xd93da9,null))[_0x2be5('0x27')](respondWithResult(_0xd93da9,null))[_0x2be5('0x47')](handleError(_0xd93da9,null));};exports[_0x2be5('0x4a')]=function(_0x3124da,_0x53155c){return db[_0x2be5('0x2e')][_0x2be5('0x4a')](_0x3124da[_0x2be5('0x4b')],{})[_0x2be5('0x27')](respondWithResult(_0x53155c,0xc9))[_0x2be5('0x47')](handleError(_0x53155c,null));};exports[_0x2be5('0x26')]=function(_0x47d3ce,_0x57371f){if(_0x47d3ce['body']['id']){delete _0x47d3ce[_0x2be5('0x4b')]['id'];}return db[_0x2be5('0x2e')][_0x2be5('0x4c')]({'where':{'id':_0x47d3ce[_0x2be5('0x4d')]['id']}})[_0x2be5('0x27')](handleEntityNotFound(_0x57371f,null))[_0x2be5('0x27')](saveUpdates(_0x47d3ce[_0x2be5('0x4b')],null))[_0x2be5('0x27')](respondWithResult(_0x57371f,null))[_0x2be5('0x47')](handleError(_0x57371f,null));};exports[_0x2be5('0x28')]=function(_0x3484a4,_0x2b3633){return db['DeskField'][_0x2be5('0x4c')]({'where':{'id':_0x3484a4[_0x2be5('0x4d')]['id']}})['then'](handleEntityNotFound(_0x2b3633,null))[_0x2be5('0x27')](removeEntity(_0x2b3633,null))[_0x2be5('0x47')](handleError(_0x2b3633,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a87=['int_desk_fields','desk_unique_index','idField','lodash','util','bluebird','request-promise','path','rimraf','../../config/environment','./intDeskField.attributes','exports','define','DeskField'];(function(_0x150ea6,_0x44495e){var _0x3c26aa=function(_0x335f31){while(--_0x335f31){_0x150ea6['push'](_0x150ea6['shift']());}};_0x3c26aa(++_0x44495e);}(_0x6a87,0x73));var _0x76a8=function(_0x1ca171,_0x247969){_0x1ca171=_0x1ca171-0x0;var _0x92dcde=_0x6a87[_0x1ca171];return _0x92dcde;};'use strict';var _=require(_0x76a8('0x0'));var util=require(_0x76a8('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0x76a8('0x2'));var rp=require(_0x76a8('0x3'));var fs=require('fs');var path=require(_0x76a8('0x4'));var rimraf=require(_0x76a8('0x5'));var config=require(_0x76a8('0x6'));var attributes=require(_0x76a8('0x7'));module[_0x76a8('0x8')]=function(_0x34ef53,_0x1eceb4){return _0x34ef53[_0x76a8('0x9')](_0x76a8('0xa'),attributes,{'tableName':_0x76a8('0xb'),'paranoid':![],'indexes':[{'name':_0x76a8('0xc'),'fields':[_0x76a8('0xd'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xeee3=['moment','request-promise','path','../../config/environment','exports','DeskField','int_desk_fields','desk_unique_index','idField','lodash','util'];(function(_0x2bf5a3,_0x32fccf){var _0x19e769=function(_0x518858){while(--_0x518858){_0x2bf5a3['push'](_0x2bf5a3['shift']());}};_0x19e769(++_0x32fccf);}(_0xeee3,0x1d7));var _0x3eee=function(_0xc4d9ca,_0xeefc6e){_0xc4d9ca=_0xc4d9ca-0x0;var _0x4010be=_0xeee3[_0xc4d9ca];return _0x4010be;};'use strict';var _=require(_0x3eee('0x0'));var util=require(_0x3eee('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x3eee('0x2'));var BPromise=require('bluebird');var rp=require(_0x3eee('0x3'));var fs=require('fs');var path=require(_0x3eee('0x4'));var rimraf=require('rimraf');var config=require(_0x3eee('0x5'));var attributes=require('./intDeskField.attributes');module[_0x3eee('0x6')]=function(_0x498560,_0xff7041){return _0x498560['define'](_0x3eee('0x7'),attributes,{'tableName':_0x3eee('0x8'),'paranoid':![],'indexes':[{'name':_0x3eee('0x9'),'fields':[_0x3eee('0xa'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a29=['request\x20sent','debug','DeskField,\x20%s,\x20%s,\x20%s','stringify','error','code','DeskField,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info'];(function(_0x2988ff,_0x3d7101){var _0x5f45de=function(_0x434f73){while(--_0x434f73){_0x2988ff['push'](_0x2988ff['shift']());}};_0x5f45de(++_0x3d7101);}(_0x5a29,0x11d));var _0x95a2=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x5a29[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0x95a2('0x0'));var util=require(_0x95a2('0x1'));var moment=require(_0x95a2('0x2'));var BPromise=require(_0x95a2('0x3'));var rs=require(_0x95a2('0x4'));var fs=require('fs');var Redis=require(_0x95a2('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x95a2('0x6'));var logger=require(_0x95a2('0x7'))(_0x95a2('0x8'));var config=require(_0x95a2('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x95a2('0xa')][_0x95a2('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xa64b6b,_0x12e872,_0x4b9614){return new BPromise(function(_0x183acf,_0x2aff04){return client[_0x95a2('0xc')](_0xa64b6b,_0x4b9614)[_0x95a2('0xd')](function(_0x5dbbf2){logger[_0x95a2('0xe')]('DeskField,\x20%s,\x20%s',_0x12e872,_0x95a2('0xf'));logger[_0x95a2('0x10')](_0x95a2('0x11'),_0x12e872,_0x95a2('0xf'),JSON[_0x95a2('0x12')](_0x5dbbf2));if(_0x5dbbf2[_0x95a2('0x13')]){if(_0x5dbbf2[_0x95a2('0x13')][_0x95a2('0x14')]===0x1f4){logger['error'](_0x95a2('0x15'),_0x12e872,_0x5dbbf2[_0x95a2('0x13')][_0x95a2('0x16')]);return _0x2aff04(_0x5dbbf2['error'][_0x95a2('0x16')]);}logger[_0x95a2('0x13')](_0x95a2('0x15'),_0x12e872,_0x5dbbf2[_0x95a2('0x13')][_0x95a2('0x16')]);return _0x183acf(_0x5dbbf2['error'][_0x95a2('0x16')]);}else{logger[_0x95a2('0xe')](_0x95a2('0x15'),_0x12e872,_0x95a2('0xf'));_0x183acf(_0x5dbbf2[_0x95a2('0x17')][_0x95a2('0x16')]);}})[_0x95a2('0x18')](function(_0x13ae5f){logger[_0x95a2('0x13')]('DeskField,\x20%s,\x20%s',_0x12e872,_0x13ae5f);_0x2aff04(_0x13ae5f);});});}
\ No newline at end of file
+var _0x1e63=['result','catch','moment','bluebird','randomstring','../../mysqldb','../../config/utils','jayson/promise','client','http','request','info','DeskField,\x20%s,\x20%s','request\x20sent','debug','DeskField,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x5c648f,_0x45107b){var _0x36fa43=function(_0x1a9a63){while(--_0x1a9a63){_0x5c648f['push'](_0x5c648f['shift']());}};_0x36fa43(++_0x45107b);}(_0x1e63,0x8e));var _0x31e6=function(_0x322e64,_0x55c53e){_0x322e64=_0x322e64-0x0;var _0x57d99a=_0x1e63[_0x322e64];return _0x57d99a;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x31e6('0x0'));var BPromise=require(_0x31e6('0x1'));var rs=require(_0x31e6('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x31e6('0x3'))['db'];var utils=require(_0x31e6('0x4'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x31e6('0x5'));var client=jayson[_0x31e6('0x6')][_0x31e6('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x404ba6,_0x571e4a,_0x25413c){return new BPromise(function(_0x5a61be,_0x56a470){return client[_0x31e6('0x8')](_0x404ba6,_0x25413c)['then'](function(_0x568465){logger[_0x31e6('0x9')](_0x31e6('0xa'),_0x571e4a,_0x31e6('0xb'));logger[_0x31e6('0xc')](_0x31e6('0xd'),_0x571e4a,_0x31e6('0xb'),JSON[_0x31e6('0xe')](_0x568465));if(_0x568465['error']){if(_0x568465[_0x31e6('0xf')][_0x31e6('0x10')]===0x1f4){logger['error']('DeskField,\x20%s,\x20%s',_0x571e4a,_0x568465[_0x31e6('0xf')][_0x31e6('0x11')]);return _0x56a470(_0x568465[_0x31e6('0xf')][_0x31e6('0x11')]);}logger[_0x31e6('0xf')]('DeskField,\x20%s,\x20%s',_0x571e4a,_0x568465[_0x31e6('0xf')][_0x31e6('0x11')]);return _0x5a61be(_0x568465['error'][_0x31e6('0x11')]);}else{logger[_0x31e6('0x9')](_0x31e6('0xa'),_0x571e4a,'request\x20sent');_0x5a61be(_0x568465[_0x31e6('0x12')]['message']);}})[_0x31e6('0x13')](function(_0x4b9d62){logger[_0x31e6('0xf')]('DeskField,\x20%s,\x20%s',_0x571e4a,_0x4b9d62);_0x56a470(_0x4b9d62);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4cae=['show','/:id/configurations','/:id/fields','post','addConfiguration','put','/:id','update','destroy','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','./intDynamics365Account.controller','get','isAuthenticated','index'];(function(_0x265862,_0x8d82b0){var _0x57293a=function(_0x2492db){while(--_0x2492db){_0x265862['push'](_0x265862['shift']());}};_0x57293a(++_0x8d82b0);}(_0x4cae,0x87));var _0xe4ca=function(_0x4e1096,_0x1d6b45){_0x4e1096=_0x4e1096-0x0;var _0x528c64=_0x4cae[_0x4e1096];return _0x528c64;};'use strict';var multer=require(_0xe4ca('0x0'));var util=require(_0xe4ca('0x1'));var path=require(_0xe4ca('0x2'));var timeout=require(_0xe4ca('0x3'));var express=require(_0xe4ca('0x4'));var router=express['Router']();var fs_extra=require(_0xe4ca('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xe4ca('0x6'));var config=require(_0xe4ca('0x7'));var controller=require(_0xe4ca('0x8'));router[_0xe4ca('0x9')]('/',auth[_0xe4ca('0xa')](),controller[_0xe4ca('0xb')]);router['get']('/:id',auth['isAuthenticated'](),controller[_0xe4ca('0xc')]);router[_0xe4ca('0x9')](_0xe4ca('0xd'),auth[_0xe4ca('0xa')](),controller['getConfigurations']);router['get'](_0xe4ca('0xe'),auth[_0xe4ca('0xa')](),controller['getFields']);router[_0xe4ca('0xf')]('/',auth[_0xe4ca('0xa')](),controller['create']);router[_0xe4ca('0xf')](_0xe4ca('0xd'),auth[_0xe4ca('0xa')](),controller[_0xe4ca('0x10')]);router[_0xe4ca('0x11')](_0xe4ca('0x12'),auth[_0xe4ca('0xa')](),controller[_0xe4ca('0x13')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0xe4ca('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x224c=['index','get','/:id','/:id/configurations','getConfigurations','/:id/fields','post','addConfiguration','update','delete','destroy','multer','util','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated'];(function(_0x49db21,_0x570db1){var _0x3f1d1f=function(_0x44b375){while(--_0x44b375){_0x49db21['push'](_0x49db21['shift']());}};_0x3f1d1f(++_0x570db1);}(_0x224c,0x1d7));var _0xc224=function(_0x13fd16,_0x2b3b13){_0x13fd16=_0x13fd16-0x0;var _0x3c44db=_0x224c[_0x13fd16];return _0x3c44db;};'use strict';var multer=require(_0xc224('0x0'));var util=require(_0xc224('0x1'));var path=require('path');var timeout=require(_0xc224('0x2'));var express=require(_0xc224('0x3'));var router=express['Router']();var fs_extra=require(_0xc224('0x4'));var auth=require(_0xc224('0x5'));var interaction=require(_0xc224('0x6'));var config=require(_0xc224('0x7'));var controller=require('./intDynamics365Account.controller');router['get']('/',auth[_0xc224('0x8')](),controller[_0xc224('0x9')]);router[_0xc224('0xa')](_0xc224('0xb'),auth[_0xc224('0x8')](),controller['show']);router['get'](_0xc224('0xc'),auth[_0xc224('0x8')](),controller[_0xc224('0xd')]);router['get'](_0xc224('0xe'),auth[_0xc224('0x8')](),controller['getFields']);router[_0xc224('0xf')]('/',auth['isAuthenticated'](),controller['create']);router[_0xc224('0xf')](_0xc224('0xc'),auth[_0xc224('0x8')](),controller[_0xc224('0x10')]);router['put']('/:id',auth[_0xc224('0x8')](),controller[_0xc224('0x11')]);router[_0xc224('0x12')](_0xc224('0xb'),auth[_0xc224('0x8')](),controller[_0xc224('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f12=['sequelize','STRING'];(function(_0x1bc762,_0x523eb3){var _0x40f70c=function(_0x3c206e){while(--_0x3c206e){_0x1bc762['push'](_0x1bc762['shift']());}};_0x40f70c(++_0x523eb3);}(_0x6f12,0x86));var _0x26f1=function(_0x23525c,_0x17b6ee){_0x23525c=_0x23525c-0x0;var _0x3eaeb9=_0x6f12[_0x23525c];return _0x3eaeb9;};'use strict';var Sequelize=require(_0x26f1('0x0'));module['exports']={'name':{'type':Sequelize[_0x26f1('0x1')]},'username':{'type':Sequelize[_0x26f1('0x1')]},'password':{'type':Sequelize[_0x26f1('0x1')]},'remoteUri':{'type':Sequelize[_0x26f1('0x1')]},'tenantId':{'type':Sequelize[_0x26f1('0x1')]},'clientId':{'type':Sequelize[_0x26f1('0x1')]},'clientSecret':{'type':Sequelize[_0x26f1('0x1')]},'serverUrl':{'type':Sequelize[_0x26f1('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x26f1('0x1')]}};
\ No newline at end of file
+var _0xe735=['exports','STRING','sequelize'];(function(_0x3d0397,_0x1d64c2){var _0x391edf=function(_0x239f9d){while(--_0x239f9d){_0x3d0397['push'](_0x3d0397['shift']());}};_0x391edf(++_0x1d64c2);}(_0xe735,0x6e));var _0x5e73=function(_0x189305,_0x46c43f){_0x189305=_0x189305-0x0;var _0xea3406=_0xe735[_0x189305];return _0xea3406;};'use strict';var Sequelize=require(_0x5e73('0x0'));module[_0x5e73('0x1')]={'name':{'type':Sequelize[_0x5e73('0x2')]},'username':{'type':Sequelize[_0x5e73('0x2')]},'password':{'type':Sequelize[_0x5e73('0x2')]},'remoteUri':{'type':Sequelize[_0x5e73('0x2')]},'tenantId':{'type':Sequelize[_0x5e73('0x2')]},'clientId':{'type':Sequelize[_0x5e73('0x2')]},'clientSecret':{'type':Sequelize['STRING']},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize[_0x5e73('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab29=['rawAttributes','find','catch','create','body','params','getConfigurations','findOne','Dynamics365Configuration','length','Subjects','channel','Descriptions','Dynamics365Field','getFields','Incident','PhoneCall','title','description','customerid','caseorigincode','subject','phonenumber','regardingobjectid','directioncode','phonecall_activity_parties','accountidname','actualserviceunits','contactidname','contactidyominame','contractdetailidname','contractidname','createdbyexternalpartyyominame','createdbyyominame','createdon','createdonbehalfbyname','createdonbehalfbyyominame','customeridyominame','emailaddress','entitlementidname','entityimage_timestamp','entityimage_url','escalatedon','exchangerate','followupby','importsequencenumber','influencescore','lastonholdtime','masteridname','modifiedon','modifiedonbehalfbyname','modifiedonbehalfbyyominame','msdyn_iotalertname','numberofchildincidents','onholdtime','overriddencreatedon','owneridtype','owneridyominame','parentcaseidname','primarycontactidyominame','productidname','productserialnumber','resolveby','resolvebykpiidname','responseby','responsiblecontactidyominame','sentimentvalue','slainvokedidname','slaname','statecode','subjectidname','ticketnumber','transactioncurrencyidname','traversedpath','versionnumber','concat','username','password','tenantId','clientId','clientSecret','remoteUri','slice','substring','lastIndexOf','format','%s/api/data/v9.0/','POST','https://login.microsoftonline.com/','/oauth2/token','access_token','EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName\x20eq\x20\x27','Bearer\x20','4.0','GET','Attributes','LogicalName','forEach','@odata.type','push','MetadataId','isNil','all','StringAttributeMetadata','DoubleAttributeMetadata','BigIntAttributeMetadata','IntegerAttributeMetadata','MemoAttributeMetadata','DateTimeAttributeMetadata','StatusAttributeMetadata','EntityNameAttributeMetadata','StateAttributeMetadata','DecimalAttributeMetadata','test','statusCode','error','stack','Wrong\x20credentials',')/Attributes(',')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?','$select=DisplayName,LogicalName&$expand=OptionSet($select=Options)','Label','UserLocalizedLabel','Value','DisplayName','EntityDefinitions(','OptionSet','FalseOption','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../components/integrations/configuration','sendStatus','status','json','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy','end','name','send','index','Dynamics365Account','fieldName','key','map','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','pick','filter','where','type','VIRTUAL','merge','options','includeAll','include','show'];(function(_0x55e08b,_0x421620){var _0xd1a7ff=function(_0x58c7ff){while(--_0x58c7ff){_0x55e08b['push'](_0x55e08b['shift']());}};_0xd1a7ff(++_0x421620);}(_0xab29,0x145));var _0x9ab2=function(_0x50e621,_0x5c5830){_0x50e621=_0x50e621-0x0;var _0x5003a4=_0xab29[_0x50e621];return _0x5003a4;};'use strict';var emlformat=require(_0x9ab2('0x0'));var rimraf=require(_0x9ab2('0x1'));var zipdir=require(_0x9ab2('0x2'));var jsonpatch=require(_0x9ab2('0x3'));var rp=require('request-promise');var moment=require(_0x9ab2('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9ab2('0x5'));var util=require(_0x9ab2('0x6'));var path=require(_0x9ab2('0x7'));var sox=require(_0x9ab2('0x8'));var csv=require(_0x9ab2('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9ab2('0xa'));var _=require(_0x9ab2('0xb'));var squel=require(_0x9ab2('0xc'));var crypto=require(_0x9ab2('0xd'));var jsforce=require(_0x9ab2('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x9ab2('0x9'));var querystring=require(_0x9ab2('0xf'));var Papa=require(_0x9ab2('0x10'));var Redis=require(_0x9ab2('0x11'));var authService=require(_0x9ab2('0x12'));var qs=require(_0x9ab2('0x13'));var as=require(_0x9ab2('0x14'));var hardwareService=require(_0x9ab2('0x15'));var logger=require(_0x9ab2('0x16'))('api');var utils=require(_0x9ab2('0x17'));var config=require(_0x9ab2('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0x9ab2('0x19'));function respondWithStatusCode(_0x1b23ae,_0x3ae1eb){_0x3ae1eb=_0x3ae1eb||0xcc;return function(_0x55cc45){if(_0x55cc45){return _0x1b23ae[_0x9ab2('0x1a')](_0x3ae1eb);}return _0x1b23ae[_0x9ab2('0x1b')](_0x3ae1eb)['end']();};}function respondWithResult(_0x3a594f,_0x43debd){_0x43debd=_0x43debd||0xc8;return function(_0x305b86){if(_0x305b86){return _0x3a594f[_0x9ab2('0x1b')](_0x43debd)[_0x9ab2('0x1c')](_0x305b86);}};}function respondWithFilteredResult(_0x117a33,_0x9d89c6){return function(_0x44e9d5){if(_0x44e9d5){var _0x5d4449=typeof _0x9d89c6[_0x9ab2('0x1d')]===_0x9ab2('0x1e')&&typeof _0x9d89c6[_0x9ab2('0x1f')]===_0x9ab2('0x1e');var _0x22d25d=_0x44e9d5[_0x9ab2('0x20')];var _0x5349cd=_0x5d4449?0x0:_0x9d89c6['offset'];var _0x41d45a=_0x5d4449?_0x44e9d5['count']:_0x9d89c6[_0x9ab2('0x1d')]+_0x9d89c6[_0x9ab2('0x1f')];var _0x578b6b;if(_0x41d45a>=_0x22d25d){_0x41d45a=_0x22d25d;_0x578b6b=0xc8;}else{_0x578b6b=0xce;}_0x117a33[_0x9ab2('0x1b')](_0x578b6b);return _0x117a33[_0x9ab2('0x21')]('Content-Range',_0x5349cd+'-'+_0x41d45a+'/'+_0x22d25d)[_0x9ab2('0x1c')](_0x44e9d5);}return null;};}function patchUpdates(_0x1f286c){return function(_0x23f86b){try{jsonpatch[_0x9ab2('0x22')](_0x23f86b,_0x1f286c,!![]);}catch(_0x3e3472){return BPromise[_0x9ab2('0x23')](_0x3e3472);}return _0x23f86b[_0x9ab2('0x24')]();};}function saveUpdates(_0x3a0733,_0x1fa05b){return function(_0x3e70b4){if(_0x3e70b4){return _0x3e70b4[_0x9ab2('0x25')](_0x3a0733)[_0x9ab2('0x26')](function(_0x3b7037){return _0x3b7037;});}return null;};}function removeEntity(_0x5a0b32,_0x37a1da){return function(_0x185d6a){if(_0x185d6a){return _0x185d6a[_0x9ab2('0x27')]()['then'](function(){_0x5a0b32[_0x9ab2('0x1b')](0xcc)[_0x9ab2('0x28')]();});}};}function handleEntityNotFound(_0x2f560d,_0x357b7b){return function(_0x130293){if(!_0x130293){_0x2f560d[_0x9ab2('0x1a')](0x194);}return _0x130293;};}function handleError(_0x1c7142,_0x2d9db7){_0x2d9db7=_0x2d9db7||0x1f4;return function(_0x40a983){logger['error'](_0x40a983['stack']);if(_0x40a983['name']){delete _0x40a983[_0x9ab2('0x29')];}_0x1c7142[_0x9ab2('0x1b')](_0x2d9db7)[_0x9ab2('0x2a')](_0x40a983);};}exports[_0x9ab2('0x2b')]=function(_0x224390,_0x2a01dc){var _0x134aed={},_0x3f7d6f={},_0x1ff955={'count':0x0,'rows':[]};var _0x181119=_['map'](db[_0x9ab2('0x2c')]['rawAttributes'],function(_0x181fff){return{'name':_0x181fff[_0x9ab2('0x2d')],'type':_0x181fff['type'][_0x9ab2('0x2e')]};});_0x3f7d6f['model']=_[_0x9ab2('0x2f')](_0x181119,_0x9ab2('0x29'));_0x3f7d6f[_0x9ab2('0x30')]=_[_0x9ab2('0x31')](_0x224390[_0x9ab2('0x30')]);_0x3f7d6f[_0x9ab2('0x32')]=_[_0x9ab2('0x33')](_0x3f7d6f[_0x9ab2('0x34')],_0x3f7d6f[_0x9ab2('0x30')]);_0x134aed['attributes']=_['intersection'](_0x3f7d6f[_0x9ab2('0x34')],qs[_0x9ab2('0x35')](_0x224390[_0x9ab2('0x30')][_0x9ab2('0x35')]));_0x134aed[_0x9ab2('0x36')]=_0x134aed['attributes']['length']?_0x134aed[_0x9ab2('0x36')]:_0x3f7d6f['model'];if(!_0x224390[_0x9ab2('0x30')][_0x9ab2('0x37')](_0x9ab2('0x38'))){_0x134aed[_0x9ab2('0x1f')]=qs[_0x9ab2('0x1f')](_0x224390[_0x9ab2('0x30')][_0x9ab2('0x1f')]);_0x134aed[_0x9ab2('0x1d')]=qs[_0x9ab2('0x1d')](_0x224390[_0x9ab2('0x30')][_0x9ab2('0x1d')]);}_0x134aed[_0x9ab2('0x39')]=qs[_0x9ab2('0x3a')](_0x224390[_0x9ab2('0x30')][_0x9ab2('0x3a')]);_0x134aed['where']=qs[_0x9ab2('0x32')](_[_0x9ab2('0x3b')](_0x224390[_0x9ab2('0x30')],_0x3f7d6f[_0x9ab2('0x32')]),_0x181119);if(_0x224390[_0x9ab2('0x30')][_0x9ab2('0x3c')]){_0x134aed[_0x9ab2('0x3d')]=_['merge'](_0x134aed[_0x9ab2('0x3d')],{'$or':_[_0x9ab2('0x2f')](_0x181119,function(_0x516f42){if(_0x516f42[_0x9ab2('0x3e')]!==_0x9ab2('0x3f')){var _0x3486a3={};_0x3486a3[_0x516f42[_0x9ab2('0x29')]]={'$like':'%'+_0x224390[_0x9ab2('0x30')][_0x9ab2('0x3c')]+'%'};return _0x3486a3;}})});}_0x134aed=_[_0x9ab2('0x40')]({},_0x134aed,_0x224390[_0x9ab2('0x41')]);var _0x34333e={'where':_0x134aed[_0x9ab2('0x3d')]};return db[_0x9ab2('0x2c')][_0x9ab2('0x20')](_0x34333e)[_0x9ab2('0x26')](function(_0x4ee0d0){_0x1ff955[_0x9ab2('0x20')]=_0x4ee0d0;if(_0x224390['query'][_0x9ab2('0x42')]){_0x134aed[_0x9ab2('0x43')]=[{'all':!![]}];}return db['Dynamics365Account']['findAll'](_0x134aed);})[_0x9ab2('0x26')](function(_0xe0e9bb){_0x1ff955['rows']=_0xe0e9bb;return _0x1ff955;})[_0x9ab2('0x26')](respondWithFilteredResult(_0x2a01dc,_0x134aed))['catch'](handleError(_0x2a01dc,null));};exports[_0x9ab2('0x44')]=function(_0xc5cefb,_0x2a6156){var _0x4a23f0={'raw':![],'where':{'id':_0xc5cefb['params']['id']}},_0x3b4637={};_0x3b4637[_0x9ab2('0x34')]=_[_0x9ab2('0x31')](db[_0x9ab2('0x2c')][_0x9ab2('0x45')]);_0x3b4637[_0x9ab2('0x30')]=_['keys'](_0xc5cefb['query']);_0x3b4637['filters']=_['intersection'](_0x3b4637[_0x9ab2('0x34')],_0x3b4637[_0x9ab2('0x30')]);_0x4a23f0['attributes']=_[_0x9ab2('0x33')](_0x3b4637[_0x9ab2('0x34')],qs[_0x9ab2('0x35')](_0xc5cefb[_0x9ab2('0x30')]['fields']));_0x4a23f0[_0x9ab2('0x36')]=_0x4a23f0[_0x9ab2('0x36')]['length']?_0x4a23f0[_0x9ab2('0x36')]:_0x3b4637[_0x9ab2('0x34')];if(_0xc5cefb[_0x9ab2('0x30')][_0x9ab2('0x42')]){_0x4a23f0[_0x9ab2('0x43')]=[{'all':!![]}];}_0x4a23f0=_[_0x9ab2('0x40')]({},_0x4a23f0,_0xc5cefb['options']);return db[_0x9ab2('0x2c')][_0x9ab2('0x46')](_0x4a23f0)[_0x9ab2('0x26')](handleEntityNotFound(_0x2a6156,null))[_0x9ab2('0x26')](respondWithResult(_0x2a6156,null))[_0x9ab2('0x47')](handleError(_0x2a6156,null));};exports[_0x9ab2('0x48')]=function(_0x50cfe9,_0x1cdaa9){return db['Dynamics365Account'][_0x9ab2('0x48')](_0x50cfe9[_0x9ab2('0x49')],{})['then'](respondWithResult(_0x1cdaa9,0xc9))['catch'](handleError(_0x1cdaa9,null));};exports[_0x9ab2('0x25')]=function(_0x4e867c,_0x114d52){if(_0x4e867c[_0x9ab2('0x49')]['id']){delete _0x4e867c['body']['id'];}return db['Dynamics365Account']['find']({'where':{'id':_0x4e867c[_0x9ab2('0x4a')]['id']}})['then'](handleEntityNotFound(_0x114d52,null))[_0x9ab2('0x26')](saveUpdates(_0x4e867c[_0x9ab2('0x49')],null))[_0x9ab2('0x26')](respondWithResult(_0x114d52,null))[_0x9ab2('0x47')](handleError(_0x114d52,null));};exports['destroy']=function(_0x3d892c,_0x2ec327){return db[_0x9ab2('0x2c')][_0x9ab2('0x46')]({'where':{'id':_0x3d892c[_0x9ab2('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2ec327,null))[_0x9ab2('0x26')](removeEntity(_0x2ec327,null))[_0x9ab2('0x47')](handleError(_0x2ec327,null));};exports[_0x9ab2('0x4b')]=function(_0xddf90c,_0x4b8279,_0x1363c7){var _0x26ae98={};var _0x5a2f64={};var _0x47db6f;var _0x59202b;return db[_0x9ab2('0x2c')][_0x9ab2('0x4c')]({'where':{'id':_0xddf90c[_0x9ab2('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4b8279,null))[_0x9ab2('0x26')](function(_0xa38752){if(_0xa38752){_0x47db6f=_0xa38752;_0x5a2f64['model']=_['keys'](db[_0x9ab2('0x4d')]['rawAttributes']);_0x5a2f64[_0x9ab2('0x30')]=_[_0x9ab2('0x31')](_0xddf90c[_0x9ab2('0x30')]);_0x5a2f64['filters']=_[_0x9ab2('0x33')](_0x5a2f64[_0x9ab2('0x34')],_0x5a2f64['query']);_0x26ae98[_0x9ab2('0x36')]=_['intersection'](_0x5a2f64['model'],qs['fields'](_0xddf90c['query'][_0x9ab2('0x35')]));_0x26ae98[_0x9ab2('0x36')]=_0x26ae98[_0x9ab2('0x36')][_0x9ab2('0x4e')]?_0x26ae98['attributes']:_0x5a2f64['model'];_0x26ae98[_0x9ab2('0x39')]=qs[_0x9ab2('0x3a')](_0xddf90c[_0x9ab2('0x30')][_0x9ab2('0x3a')]);_0x26ae98[_0x9ab2('0x3d')]=qs[_0x9ab2('0x32')](_[_0x9ab2('0x3b')](_0xddf90c[_0x9ab2('0x30')],_0x5a2f64['filters']));if(_0xddf90c['query'][_0x9ab2('0x3c')]){_0x26ae98[_0x9ab2('0x3d')]=_[_0x9ab2('0x40')](_0x26ae98[_0x9ab2('0x3d')],{'$or':_['map'](_0x26ae98[_0x9ab2('0x36')],function(_0x5c1b0c){var _0x2585c5={};_0x2585c5[_0x5c1b0c]={'$like':'%'+_0xddf90c[_0x9ab2('0x30')]['filter']+'%'};return _0x2585c5;})});}_0x26ae98=_[_0x9ab2('0x40')]({},_0x26ae98,_0xddf90c['options']);return _0x47db6f[_0x9ab2('0x4b')](_0x26ae98);}})[_0x9ab2('0x26')](function(_0x5a55f4){if(_0x5a55f4){_0x59202b=_0x5a55f4[_0x9ab2('0x4e')];if(!_0xddf90c['query'][_0x9ab2('0x37')]('nolimit')){_0x26ae98[_0x9ab2('0x1f')]=qs[_0x9ab2('0x1f')](_0xddf90c[_0x9ab2('0x30')]['limit']);_0x26ae98[_0x9ab2('0x1d')]=qs['offset'](_0xddf90c[_0x9ab2('0x30')]['offset']);}return _0x47db6f['getConfigurations'](_0x26ae98);}})[_0x9ab2('0x26')](function(_0x229795){if(_0x229795){return _0x229795?{'count':_0x59202b,'rows':_0x229795}:null;}})['then'](respondWithResult(_0x4b8279,null))['catch'](handleError(_0x4b8279,null));};exports['addConfiguration']=function(_0x55ebf4,_0x5b6925,_0x55a31f){if(_0x55ebf4['body']['id']){delete _0x55ebf4[_0x9ab2('0x49')]['id'];}return db[_0x9ab2('0x2c')]['findOne']({'where':{'id':_0x55ebf4[_0x9ab2('0x4a')]['id']}})[_0x9ab2('0x26')](handleEntityNotFound(_0x5b6925,null))[_0x9ab2('0x26')](function(_0x1e91e1){if(_0x1e91e1){_0x55ebf4[_0x9ab2('0x49')]['AccountId']=_0x1e91e1['id'];_0x55ebf4[_0x9ab2('0x49')][_0x9ab2('0x4f')]=integrations['getSubjects'](_0x55ebf4[_0x9ab2('0x49')][_0x9ab2('0x50')],_0x55ebf4[_0x9ab2('0x49')][_0x9ab2('0x3e')]);_0x55ebf4[_0x9ab2('0x49')][_0x9ab2('0x51')]=integrations['getDescriptions'](_0x55ebf4[_0x9ab2('0x49')][_0x9ab2('0x50')],_0x55ebf4[_0x9ab2('0x49')][_0x9ab2('0x3e')]);return db['Dynamics365Configuration']['create'](_0x55ebf4[_0x9ab2('0x49')],{'include':[{'model':db[_0x9ab2('0x52')],'as':'Subjects'},{'model':db[_0x9ab2('0x52')],'as':_0x9ab2('0x51')}]});}return null;})[_0x9ab2('0x26')](respondWithResult(_0x5b6925,null))[_0x9ab2('0x47')](handleError(_0x5b6925,null));};exports[_0x9ab2('0x53')]=function(_0x1bddc5,_0x4b45a3,_0x46c0d9){var _0x1d0f15=_0x1bddc5[_0x9ab2('0x30')]['ticketType'];var _0x1e754a=_0x1d0f15==='incident'?_0x9ab2('0x54'):_0x9ab2('0x55');var _0x1592f7='';var _0x1b0a23='';var _0x38cc76='';var _0x42dd22='';var _0x5c2503='';var _0x3b1fe1='';var _0x557065='';var _0x26cc14='';var _0x704b1=[_0x9ab2('0x56'),_0x9ab2('0x57'),_0x9ab2('0x58'),'ownerid',_0x9ab2('0x59'),_0x9ab2('0x5a'),_0x9ab2('0x5b'),_0x9ab2('0x5c'),_0x9ab2('0x5d'),_0x9ab2('0x5e')];var _0x85d83b=[_0x9ab2('0x5f'),'accountidyominame',_0x9ab2('0x60'),'billedserviceunits',_0x9ab2('0x61'),_0x9ab2('0x62'),_0x9ab2('0x63'),_0x9ab2('0x64'),'createdbyexternalpartyname',_0x9ab2('0x65'),'createdbyname',_0x9ab2('0x66'),_0x9ab2('0x67'),_0x9ab2('0x68'),_0x9ab2('0x69'),'customeridname','customeridtype',_0x9ab2('0x6a'),_0x9ab2('0x6b'),_0x9ab2('0x6c'),_0x9ab2('0x6d'),_0x9ab2('0x6e'),_0x9ab2('0x6f'),_0x9ab2('0x70'),'firstresponsebykpiidname',_0x9ab2('0x71'),_0x9ab2('0x72'),_0x9ab2('0x73'),'kbarticleidname',_0x9ab2('0x74'),_0x9ab2('0x75'),'modifiedbyexternalpartyname','modifiedbyexternalpartyyominame','modifiedbyname','modifiedbyyominame',_0x9ab2('0x76'),_0x9ab2('0x77'),_0x9ab2('0x78'),'msdyn_incidenttypename',_0x9ab2('0x79'),_0x9ab2('0x7a'),_0x9ab2('0x7b'),_0x9ab2('0x7c'),'owneridname',_0x9ab2('0x7d'),_0x9ab2('0x7e'),_0x9ab2('0x7f'),'primarycontactidname',_0x9ab2('0x80'),'prioritycodename',_0x9ab2('0x81'),_0x9ab2('0x82'),_0x9ab2('0x83'),_0x9ab2('0x84'),_0x9ab2('0x85'),'responsiblecontactidname',_0x9ab2('0x86'),_0x9ab2('0x87'),_0x9ab2('0x88'),_0x9ab2('0x89'),'socialprofileidname',_0x9ab2('0x8a'),'statuscode',_0x9ab2('0x8b'),_0x9ab2('0x8c'),'timezoneruleversionnumber',_0x9ab2('0x8d'),_0x9ab2('0x8e'),'utcconversiontimezonecode',_0x9ab2('0x8f')];var _0xae11e4=_0x704b1[_0x9ab2('0x90')](_0x85d83b);return db['Dynamics365Account'][_0x9ab2('0x4c')]({'where':{'id':_0x1bddc5[_0x9ab2('0x4a')]['id']},'attributes':['id',_0x9ab2('0x91'),_0x9ab2('0x92'),'remoteUri',_0x9ab2('0x93'),_0x9ab2('0x94'),_0x9ab2('0x95')]})[_0x9ab2('0x26')](handleEntityNotFound(_0x4b45a3,null))[_0x9ab2('0x26')](function(_0x22f6fd){if(_0x22f6fd){_0x26cc14=_0x22f6fd[_0x9ab2('0x96')];var _0x49d71c=_0x26cc14[_0x9ab2('0x97')](-0x1);if(_0x49d71c==='/'){_0x26cc14=_0x26cc14[_0x9ab2('0x98')](0x0,_0x26cc14[_0x9ab2('0x99')](_0x49d71c));}_0x557065=util[_0x9ab2('0x9a')](_0x9ab2('0x9b'),_0x26cc14);var _0x185c57={'method':_0x9ab2('0x9c'),'uri':_0x9ab2('0x9d')+_0x22f6fd['tenantId']+_0x9ab2('0x9e'),'form':{'client_id':_0x22f6fd[_0x9ab2('0x94')],'resource':_0x26cc14,'username':_0x22f6fd['username'],'password':_0x22f6fd[_0x9ab2('0x92')],'grant_type':_0x9ab2('0x92'),'client_secret':_0x22f6fd[_0x9ab2('0x95')]},'json':!![]};return rp(_0x185c57);}})[_0x9ab2('0x26')](function(_0x154bc9){_0x3b1fe1=_0x154bc9[_0x9ab2('0x9f')];var _0x31af13={'method':'GET','uri':encodeURI(_0x557065+_0x9ab2('0xa0')+_0x1e754a+'\x27'),'headers':{'Authorization':_0x9ab2('0xa1')+_0x3b1fe1,'If-None-Match':null,'OData-Version':_0x9ab2('0xa2')},'json':!![]};return rp(_0x31af13);})[_0x9ab2('0x26')](function(_0x44c64f){var _0x46749f=_0x44c64f['value'][0x0];var _0x9a4c82=_0x46749f['MetadataId'];var _0x25d098={'method':_0x9ab2('0xa3'),'uri':_0x557065+'EntityDefinitions('+_0x9a4c82+')?$select=LogicalName&$expand=Attributes($select=LogicalName)','headers':{'Authorization':_0x9ab2('0xa1')+_0x3b1fe1,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x25d098);})[_0x9ab2('0x26')](function(_0x38cb06){_0x1592f7=_0x38cb06;_0x1b0a23=_0x1592f7[_0x9ab2('0xa4')];_0x1b0a23=_['remove'](_0x1b0a23,function(_0x56f4c8){return!_0xae11e4['includes'](_0x56f4c8[_0x9ab2('0xa5')]);});var _0x1cbb23=[];var _0x18a62a=[];_0x1b0a23[_0x9ab2('0xa6')](function(_0x56baaf){if(_0x56baaf[_0x9ab2('0xa7')]){var _0x298429=_0x56baaf[_0x9ab2('0xa7')][_0x9ab2('0x98')](_0x56baaf['@odata.type'][_0x9ab2('0x99')]('.')+0x1);if(_0x298429==='PicklistAttributeMetadata'){_0x1cbb23[_0x9ab2('0xa8')](getSelectList(_0x557065,_0x1d0f15,_0x18a62a,_0x1592f7[_0x9ab2('0xa9')],_0x56baaf[_0x9ab2('0xa9')],_0x3b1fe1));}}});return Promise['all'](_0x1cbb23);})['then'](function(_0xa2fae1){_0x38cc76=_0xa2fae1[0x0];var _0x26c99a=[];var _0x2c21d0=[];_0x1b0a23['forEach'](function(_0x101cfc){if(!_[_0x9ab2('0xaa')](_0x101cfc[_0x9ab2('0xa7')])){var _0x11e8f9=_0x101cfc['@odata.type'][_0x9ab2('0x98')](_0x101cfc['@odata.type'][_0x9ab2('0x99')]('.')+0x1);if(_0x11e8f9==='BooleanAttributeMetadata'){_0x26c99a['push'](getBooleanList(_0x557065,_0x1d0f15,_0x2c21d0,_0x1592f7[_0x9ab2('0xa9')],_0x101cfc[_0x9ab2('0xa9')],_0x3b1fe1));}}});return Promise[_0x9ab2('0xab')](_0x26c99a);})[_0x9ab2('0x26')](function(_0x2b14e1){_0x42dd22=_0x2b14e1[0x0];var _0x4e1d9c=[];var _0x594320=[];_0x1b0a23[_0x9ab2('0xa6')](function(_0x237dd8){if(_0x237dd8[_0x9ab2('0xa7')]){var _0x1f8ee6=_0x237dd8[_0x9ab2('0xa7')][_0x9ab2('0x98')](_0x237dd8[_0x9ab2('0xa7')][_0x9ab2('0x99')]('.')+0x1);if(_0x1f8ee6===_0x9ab2('0xac')||_0x1f8ee6===_0x9ab2('0xad')||_0x1f8ee6===_0x9ab2('0xae')||_0x1f8ee6===_0x9ab2('0xaf')||_0x1f8ee6===_0x9ab2('0xb0')||_0x1f8ee6===_0x9ab2('0xb1')||_0x1f8ee6===_0x9ab2('0xb2')||_0x1f8ee6===_0x9ab2('0xb3')||_0x1f8ee6===_0x9ab2('0xb4')||_0x1f8ee6===_0x9ab2('0xb5')){_0x4e1d9c[_0x9ab2('0xa8')](getInputList(_0x557065,_0x1d0f15,_0x1f8ee6,_0x594320,_0x1592f7[_0x9ab2('0xa9')],_0x237dd8[_0x9ab2('0xa9')],_0x3b1fe1));}}});return Promise[_0x9ab2('0xab')](_0x4e1d9c);})[_0x9ab2('0x26')](function(_0x11d386){_0x5c2503=_0x11d386[0x0];var _0x5a49c1=_0x38cc76[_0x9ab2('0x90')](_0x42dd22)[_0x9ab2('0x90')](_0x5c2503);var _0x1dbe5e={'count':_0x5a49c1[_0x9ab2('0x4e')],'rows':_0x5a49c1};return _0x1dbe5e;})[_0x9ab2('0x26')](respondWithResult(_0x4b45a3,null))[_0x9ab2('0x47')](function(_0x6d88ab){var _0x3831b6=_0x1bddc5[_0x9ab2('0x30')][_0x9ab2('0xb6')]?0x1f4:_0x6d88ab[_0x9ab2('0xb7')]||0x1f4;logger[_0x9ab2('0xb8')](_0x6d88ab[_0x9ab2('0xb9')]);delete _0x6d88ab[_0x9ab2('0x29')];if(_0x3831b6===0x191){_0x3831b6=0x190;}_0x4b45a3[_0x9ab2('0x1b')](_0x3831b6)[_0x9ab2('0x2a')](_0x1bddc5[_0x9ab2('0x30')]['test']?{'message':_0x9ab2('0xba'),'statusCode':_0x6d88ab[_0x9ab2('0xb7')]}:_0x6d88ab);});};function getSelectList(_0x52f49b,_0x5c7d3a,_0x4c5f00,_0x29e460,_0x118977,_0x4ae10a){var _0x104bab={'method':_0x9ab2('0xa3'),'uri':_0x52f49b+'EntityDefinitions('+_0x29e460+_0x9ab2('0xbb')+_0x118977+_0x9ab2('0xbc')+_0x9ab2('0xbd'),'headers':{'Authorization':_0x9ab2('0xa1')+_0x4ae10a,'If-None-Match':null,'OData-Version':_0x9ab2('0xa2')},'json':!![]};return rp(_0x104bab)[_0x9ab2('0x26')](function(_0x10a879){var _0x30945c=[];var _0x5f44d2=_0x10a879['OptionSet']['Options'];_0x5f44d2[_0x9ab2('0xa6')](function(_0x1b3b12){_0x30945c[_0x9ab2('0xa8')]({'name':_0x1b3b12[_0x9ab2('0xbe')][_0x9ab2('0xbf')][_0x9ab2('0xbe')],'value':String(_0x1b3b12[_0x9ab2('0xc0')])});});var _0x48fd8f={'id':_0x5c7d3a+'_'+_0x10a879[_0x9ab2('0xa5')],'name':_0x10a879[_0x9ab2('0xc1')][_0x9ab2('0xbf')][_0x9ab2('0xbe')],'custom':![],'options':_0x30945c};_0x4c5f00['push'](_0x48fd8f);return _0x4c5f00;});}function getBooleanList(_0x1e2193,_0x4781a5,_0x13477b,_0x59a196,_0x579960,_0x49ea79){var _0x29e593={'method':_0x9ab2('0xa3'),'uri':_0x1e2193+_0x9ab2('0xc2')+_0x59a196+_0x9ab2('0xbb')+_0x579960+')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$select=DisplayName,LogicalName&$expand=OptionSet($select=FalseOption,\x20TrueOption)','headers':{'Authorization':_0x9ab2('0xa1')+_0x49ea79,'If-None-Match':null,'OData-Version':_0x9ab2('0xa2')},'json':!![]};return rp(_0x29e593)[_0x9ab2('0x26')](function(_0x44995a){var _0x4a974c=[];_0x4a974c[_0x9ab2('0xa8')]({'name':_0x44995a[_0x9ab2('0xc3')]['TrueOption'][_0x9ab2('0xbe')][_0x9ab2('0xbf')][_0x9ab2('0xbe')],'value':'true'},{'name':_0x44995a[_0x9ab2('0xc3')][_0x9ab2('0xc4')][_0x9ab2('0xbe')][_0x9ab2('0xbf')][_0x9ab2('0xbe')],'value':'false'});var _0x25155f={'id':_0x4781a5+'_'+_0x44995a['LogicalName'],'name':_0x44995a[_0x9ab2('0xc1')][_0x9ab2('0xbf')]['Label'],'custom':![],'options':_0x4a974c};_0x13477b[_0x9ab2('0xa8')](_0x25155f);return _0x13477b;});}function getInputList(_0x26d09f,_0x5d70f7,_0xa8c0d0,_0x2d7fdf,_0x7e7ab4,_0x19ad33,_0x2e9e79){var _0x2c88f1={'method':'GET','uri':_0x26d09f+_0x9ab2('0xc2')+_0x7e7ab4+_0x9ab2('0xbb')+_0x19ad33+')/Microsoft.Dynamics.CRM.'+_0xa8c0d0+'?$select=DisplayName,LogicalName','headers':{'Authorization':'Bearer\x20'+_0x2e9e79,'If-None-Match':null,'OData-Version':_0x9ab2('0xa2')},'json':!![]};return rp(_0x2c88f1)[_0x9ab2('0x26')](function(_0x2d0005){var _0x2d42c4={'id':_0x5d70f7+'_'+_0x2d0005[_0x9ab2('0xa5')],'name':_0x2d0005[_0x9ab2('0xc1')][_0x9ab2('0xbf')]?_0x2d0005['DisplayName'][_0x9ab2('0xbf')]['Label']:_0x2d0005[_0x9ab2('0xa5')],'custom':![],'options':[]};_0x2d7fdf[_0x9ab2('0xa8')](_0x2d42c4);return _0x2d7fdf;});}
\ No newline at end of file
+var _0x8558=['responseby','responsiblecontactidyominame','sentimentvalue','slainvokedidname','slaname','socialprofileidname','statecode','timezoneruleversionnumber','transactioncurrencyidname','traversedpath','utcconversiontimezonecode','versionnumber','concat','username','password','remoteUri','clientId','clientSecret','substring','lastIndexOf','format','%s/api/data/v9.0/','POST','tenantId','access_token','GET','Bearer\x20','4.0','value','EntityDefinitions(','Attributes','includes','LogicalName','forEach','@odata.type','push','MetadataId','isNil','StringAttributeMetadata','DoubleAttributeMetadata','BigIntAttributeMetadata','IntegerAttributeMetadata','DateTimeAttributeMetadata','StatusAttributeMetadata','EntityNameAttributeMetadata','StateAttributeMetadata','all','test','statusCode','error','Wrong\x20credentials',')/Attributes(',')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?','$select=DisplayName,LogicalName&$expand=OptionSet($select=Options)','OptionSet','Options','UserLocalizedLabel','DisplayName',')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$select=DisplayName,LogicalName&$expand=OptionSet($select=FalseOption,\x20TrueOption)','Label','true','FalseOption','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','fs-extra','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','../../components/integrations/configuration','sendStatus','status','end','undefined','offset','count','set','apply','reject','save','update','then','destroy','stack','name','send','index','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','limit','order','sort','where','filters','pick','filter','merge','Dynamics365Account','includeAll','include','findAll','show','options','find','catch','create','body','params','getConfigurations','findOne','Dynamics365Configuration','map','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','Dynamics365Field','getFields','ticketType','incident','Incident','PhoneCall','ownerid','caseorigincode','phonenumber','regardingobjectid','directioncode','phonecall_activity_parties','accountidname','accountidyominame','actualserviceunits','contactidname','contactidyominame','contractdetailidname','createdbyexternalpartyname','createdbyname','createdbyyominame','createdonbehalfbyname','createdonbehalfbyyominame','customeridname','customeridtype','customeridyominame','emailaddress','entitlementidname','entityimage_timestamp','entityimage_url','firstresponsebykpiidname','followupby','importsequencenumber','kbarticleidname','masteridname','modifiedbyexternalpartyyominame','modifiedbyname','modifiedonbehalfbyyominame','msdyn_incidenttypename','msdyn_iotalertname','numberofchildincidents','onholdtime','overriddencreatedon','owneridtype','owneridyominame','parentcaseidname','primarycontactidyominame','prioritycodename','productserialnumber','resolvebykpiidname'];(function(_0x4ae6ef,_0xc2af80){var _0x3cbb4e=function(_0x569ad5){while(--_0x569ad5){_0x4ae6ef['push'](_0x4ae6ef['shift']());}};_0x3cbb4e(++_0xc2af80);}(_0x8558,0x103));var _0x8855=function(_0x448191,_0x15147b){_0x448191=_0x448191-0x0;var _0xa43225=_0x8558[_0x448191];return _0xa43225;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8855('0x0'));var zipdir=require(_0x8855('0x1'));var jsonpatch=require(_0x8855('0x2'));var rp=require(_0x8855('0x3'));var moment=require(_0x8855('0x4'));var BPromise=require(_0x8855('0x5'));var Mustache=require(_0x8855('0x6'));var util=require('util');var path=require(_0x8855('0x7'));var sox=require('sox');var csv=require(_0x8855('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8855('0x9'));var _=require(_0x8855('0xa'));var squel=require(_0x8855('0xb'));var crypto=require(_0x8855('0xc'));var jsforce=require(_0x8855('0xd'));var deskjs=require(_0x8855('0xe'));var toCsv=require(_0x8855('0x8'));var querystring=require('querystring');var Papa=require(_0x8855('0xf'));var Redis=require(_0x8855('0x10'));var authService=require(_0x8855('0x11'));var qs=require(_0x8855('0x12'));var as=require(_0x8855('0x13'));var hardwareService=require(_0x8855('0x14'));var logger=require(_0x8855('0x15'))(_0x8855('0x16'));var utils=require('../../config/utils');var config=require(_0x8855('0x17'));var licenseUtil=require(_0x8855('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0x8855('0x19'));function respondWithStatusCode(_0x18e792,_0x4dfa81){_0x4dfa81=_0x4dfa81||0xcc;return function(_0x1b4652){if(_0x1b4652){return _0x18e792[_0x8855('0x1a')](_0x4dfa81);}return _0x18e792[_0x8855('0x1b')](_0x4dfa81)[_0x8855('0x1c')]();};}function respondWithResult(_0x49c654,_0x30d153){_0x30d153=_0x30d153||0xc8;return function(_0x4c8d10){if(_0x4c8d10){return _0x49c654[_0x8855('0x1b')](_0x30d153)['json'](_0x4c8d10);}};}function respondWithFilteredResult(_0x1084b3,_0x466da3){return function(_0x406b81){if(_0x406b81){var _0x3849a5=typeof _0x466da3['offset']===_0x8855('0x1d')&&typeof _0x466da3['limit']===_0x8855('0x1d');var _0x1d6978=_0x406b81['count'];var _0x7d150=_0x3849a5?0x0:_0x466da3[_0x8855('0x1e')];var _0x5a1a9b=_0x3849a5?_0x406b81[_0x8855('0x1f')]:_0x466da3[_0x8855('0x1e')]+_0x466da3['limit'];var _0x38c4f4;if(_0x5a1a9b>=_0x1d6978){_0x5a1a9b=_0x1d6978;_0x38c4f4=0xc8;}else{_0x38c4f4=0xce;}_0x1084b3[_0x8855('0x1b')](_0x38c4f4);return _0x1084b3[_0x8855('0x20')]('Content-Range',_0x7d150+'-'+_0x5a1a9b+'/'+_0x1d6978)['json'](_0x406b81);}return null;};}function patchUpdates(_0x5103f3){return function(_0x53db0b){try{jsonpatch[_0x8855('0x21')](_0x53db0b,_0x5103f3,!![]);}catch(_0x35c6e4){return BPromise[_0x8855('0x22')](_0x35c6e4);}return _0x53db0b[_0x8855('0x23')]();};}function saveUpdates(_0x43c2a0,_0xb0d645){return function(_0x3449ed){if(_0x3449ed){return _0x3449ed[_0x8855('0x24')](_0x43c2a0)[_0x8855('0x25')](function(_0x24371b){return _0x24371b;});}return null;};}function removeEntity(_0x59fed2,_0x4c5514){return function(_0xe3577){if(_0xe3577){return _0xe3577[_0x8855('0x26')]()[_0x8855('0x25')](function(){_0x59fed2[_0x8855('0x1b')](0xcc)[_0x8855('0x1c')]();});}};}function handleEntityNotFound(_0x320386,_0x695777){return function(_0x46b701){if(!_0x46b701){_0x320386[_0x8855('0x1a')](0x194);}return _0x46b701;};}function handleError(_0x3dca5b,_0x375972){_0x375972=_0x375972||0x1f4;return function(_0x58574c){logger['error'](_0x58574c[_0x8855('0x27')]);if(_0x58574c[_0x8855('0x28')]){delete _0x58574c[_0x8855('0x28')];}_0x3dca5b['status'](_0x375972)[_0x8855('0x29')](_0x58574c);};}exports[_0x8855('0x2a')]=function(_0x44e0b4,_0x346b2){var _0x1f26a9={},_0x2dad35={},_0x1774ed={'count':0x0,'rows':[]};var _0x5d3611=_['map'](db['Dynamics365Account'][_0x8855('0x2b')],function(_0x324fd3){return{'name':_0x324fd3[_0x8855('0x2c')],'type':_0x324fd3[_0x8855('0x2d')][_0x8855('0x2e')]};});_0x2dad35[_0x8855('0x2f')]=_['map'](_0x5d3611,'name');_0x2dad35['query']=_[_0x8855('0x30')](_0x44e0b4[_0x8855('0x31')]);_0x2dad35['filters']=_[_0x8855('0x32')](_0x2dad35['model'],_0x2dad35[_0x8855('0x31')]);_0x1f26a9[_0x8855('0x33')]=_[_0x8855('0x32')](_0x2dad35[_0x8855('0x2f')],qs['fields'](_0x44e0b4[_0x8855('0x31')][_0x8855('0x34')]));_0x1f26a9['attributes']=_0x1f26a9[_0x8855('0x33')][_0x8855('0x35')]?_0x1f26a9[_0x8855('0x33')]:_0x2dad35[_0x8855('0x2f')];if(!_0x44e0b4['query'][_0x8855('0x36')]('nolimit')){_0x1f26a9['limit']=qs[_0x8855('0x37')](_0x44e0b4[_0x8855('0x31')][_0x8855('0x37')]);_0x1f26a9['offset']=qs[_0x8855('0x1e')](_0x44e0b4[_0x8855('0x31')][_0x8855('0x1e')]);}_0x1f26a9[_0x8855('0x38')]=qs[_0x8855('0x39')](_0x44e0b4[_0x8855('0x31')][_0x8855('0x39')]);_0x1f26a9[_0x8855('0x3a')]=qs[_0x8855('0x3b')](_[_0x8855('0x3c')](_0x44e0b4['query'],_0x2dad35[_0x8855('0x3b')]),_0x5d3611);if(_0x44e0b4[_0x8855('0x31')][_0x8855('0x3d')]){_0x1f26a9[_0x8855('0x3a')]=_[_0x8855('0x3e')](_0x1f26a9['where'],{'$or':_['map'](_0x5d3611,function(_0x2b9658){if(_0x2b9658['type']!=='VIRTUAL'){var _0xc3f96c={};_0xc3f96c[_0x2b9658[_0x8855('0x28')]]={'$like':'%'+_0x44e0b4[_0x8855('0x31')][_0x8855('0x3d')]+'%'};return _0xc3f96c;}})});}_0x1f26a9=_[_0x8855('0x3e')]({},_0x1f26a9,_0x44e0b4['options']);var _0x162ff9={'where':_0x1f26a9[_0x8855('0x3a')]};return db[_0x8855('0x3f')]['count'](_0x162ff9)[_0x8855('0x25')](function(_0xea3a3){_0x1774ed[_0x8855('0x1f')]=_0xea3a3;if(_0x44e0b4[_0x8855('0x31')][_0x8855('0x40')]){_0x1f26a9[_0x8855('0x41')]=[{'all':!![]}];}return db[_0x8855('0x3f')][_0x8855('0x42')](_0x1f26a9);})[_0x8855('0x25')](function(_0x1f55c1){_0x1774ed['rows']=_0x1f55c1;return _0x1774ed;})['then'](respondWithFilteredResult(_0x346b2,_0x1f26a9))['catch'](handleError(_0x346b2,null));};exports[_0x8855('0x43')]=function(_0x35120e,_0x31c232){var _0x142af9={'raw':![],'where':{'id':_0x35120e['params']['id']}},_0x146311={};_0x146311[_0x8855('0x2f')]=_[_0x8855('0x30')](db[_0x8855('0x3f')]['rawAttributes']);_0x146311['query']=_[_0x8855('0x30')](_0x35120e['query']);_0x146311[_0x8855('0x3b')]=_[_0x8855('0x32')](_0x146311[_0x8855('0x2f')],_0x146311[_0x8855('0x31')]);_0x142af9[_0x8855('0x33')]=_[_0x8855('0x32')](_0x146311[_0x8855('0x2f')],qs[_0x8855('0x34')](_0x35120e[_0x8855('0x31')][_0x8855('0x34')]));_0x142af9['attributes']=_0x142af9[_0x8855('0x33')]['length']?_0x142af9['attributes']:_0x146311['model'];if(_0x35120e[_0x8855('0x31')][_0x8855('0x40')]){_0x142af9[_0x8855('0x41')]=[{'all':!![]}];}_0x142af9=_['merge']({},_0x142af9,_0x35120e[_0x8855('0x44')]);return db[_0x8855('0x3f')][_0x8855('0x45')](_0x142af9)[_0x8855('0x25')](handleEntityNotFound(_0x31c232,null))['then'](respondWithResult(_0x31c232,null))[_0x8855('0x46')](handleError(_0x31c232,null));};exports['create']=function(_0x458488,_0x110bbd){return db[_0x8855('0x3f')][_0x8855('0x47')](_0x458488[_0x8855('0x48')],{})[_0x8855('0x25')](respondWithResult(_0x110bbd,0xc9))[_0x8855('0x46')](handleError(_0x110bbd,null));};exports[_0x8855('0x24')]=function(_0x4f1bef,_0x150fee){if(_0x4f1bef[_0x8855('0x48')]['id']){delete _0x4f1bef['body']['id'];}return db['Dynamics365Account'][_0x8855('0x45')]({'where':{'id':_0x4f1bef[_0x8855('0x49')]['id']}})[_0x8855('0x25')](handleEntityNotFound(_0x150fee,null))['then'](saveUpdates(_0x4f1bef['body'],null))[_0x8855('0x25')](respondWithResult(_0x150fee,null))['catch'](handleError(_0x150fee,null));};exports['destroy']=function(_0x113d33,_0x2bb4fe){return db['Dynamics365Account'][_0x8855('0x45')]({'where':{'id':_0x113d33['params']['id']}})[_0x8855('0x25')](handleEntityNotFound(_0x2bb4fe,null))['then'](removeEntity(_0x2bb4fe,null))['catch'](handleError(_0x2bb4fe,null));};exports[_0x8855('0x4a')]=function(_0x5a6e91,_0x57e669,_0xad84d8){var _0xfc9b15={};var _0x274a81={};var _0x451d58;var _0x40d738;return db[_0x8855('0x3f')][_0x8855('0x4b')]({'where':{'id':_0x5a6e91[_0x8855('0x49')]['id']}})[_0x8855('0x25')](handleEntityNotFound(_0x57e669,null))[_0x8855('0x25')](function(_0x32385b){if(_0x32385b){_0x451d58=_0x32385b;_0x274a81[_0x8855('0x2f')]=_[_0x8855('0x30')](db[_0x8855('0x4c')]['rawAttributes']);_0x274a81[_0x8855('0x31')]=_[_0x8855('0x30')](_0x5a6e91[_0x8855('0x31')]);_0x274a81['filters']=_[_0x8855('0x32')](_0x274a81[_0x8855('0x2f')],_0x274a81[_0x8855('0x31')]);_0xfc9b15[_0x8855('0x33')]=_[_0x8855('0x32')](_0x274a81[_0x8855('0x2f')],qs['fields'](_0x5a6e91['query'][_0x8855('0x34')]));_0xfc9b15[_0x8855('0x33')]=_0xfc9b15['attributes']['length']?_0xfc9b15['attributes']:_0x274a81[_0x8855('0x2f')];_0xfc9b15['order']=qs['sort'](_0x5a6e91[_0x8855('0x31')][_0x8855('0x39')]);_0xfc9b15[_0x8855('0x3a')]=qs[_0x8855('0x3b')](_['pick'](_0x5a6e91[_0x8855('0x31')],_0x274a81[_0x8855('0x3b')]));if(_0x5a6e91[_0x8855('0x31')][_0x8855('0x3d')]){_0xfc9b15['where']=_['merge'](_0xfc9b15[_0x8855('0x3a')],{'$or':_[_0x8855('0x4d')](_0xfc9b15[_0x8855('0x33')],function(_0x2cbca5){var _0x51cddf={};_0x51cddf[_0x2cbca5]={'$like':'%'+_0x5a6e91[_0x8855('0x31')][_0x8855('0x3d')]+'%'};return _0x51cddf;})});}_0xfc9b15=_[_0x8855('0x3e')]({},_0xfc9b15,_0x5a6e91[_0x8855('0x44')]);return _0x451d58['getConfigurations'](_0xfc9b15);}})[_0x8855('0x25')](function(_0x21fb59){if(_0x21fb59){_0x40d738=_0x21fb59[_0x8855('0x35')];if(!_0x5a6e91[_0x8855('0x31')][_0x8855('0x36')](_0x8855('0x4e'))){_0xfc9b15['limit']=qs['limit'](_0x5a6e91['query'][_0x8855('0x37')]);_0xfc9b15[_0x8855('0x1e')]=qs[_0x8855('0x1e')](_0x5a6e91['query'][_0x8855('0x1e')]);}return _0x451d58['getConfigurations'](_0xfc9b15);}})[_0x8855('0x25')](function(_0x190602){if(_0x190602){return _0x190602?{'count':_0x40d738,'rows':_0x190602}:null;}})[_0x8855('0x25')](respondWithResult(_0x57e669,null))[_0x8855('0x46')](handleError(_0x57e669,null));};exports[_0x8855('0x4f')]=function(_0x10e5d3,_0x2819eb,_0x3fceb3){if(_0x10e5d3[_0x8855('0x48')]['id']){delete _0x10e5d3['body']['id'];}return db['Dynamics365Account'][_0x8855('0x4b')]({'where':{'id':_0x10e5d3[_0x8855('0x49')]['id']}})[_0x8855('0x25')](handleEntityNotFound(_0x2819eb,null))[_0x8855('0x25')](function(_0x149dd4){if(_0x149dd4){_0x10e5d3[_0x8855('0x48')][_0x8855('0x50')]=_0x149dd4['id'];_0x10e5d3['body'][_0x8855('0x51')]=integrations[_0x8855('0x52')](_0x10e5d3[_0x8855('0x48')][_0x8855('0x53')],_0x10e5d3[_0x8855('0x48')][_0x8855('0x2d')]);_0x10e5d3['body'][_0x8855('0x54')]=integrations['getDescriptions'](_0x10e5d3[_0x8855('0x48')]['channel'],_0x10e5d3['body'][_0x8855('0x2d')]);return db['Dynamics365Configuration']['create'](_0x10e5d3[_0x8855('0x48')],{'include':[{'model':db['Dynamics365Field'],'as':_0x8855('0x51')},{'model':db[_0x8855('0x55')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x2819eb,null))['catch'](handleError(_0x2819eb,null));};exports[_0x8855('0x56')]=function(_0xb664e1,_0x144c9c,_0x552ae3){var _0x188ff7=_0xb664e1[_0x8855('0x31')][_0x8855('0x57')];var _0x345ba3=_0x188ff7===_0x8855('0x58')?_0x8855('0x59'):_0x8855('0x5a');var _0x32fb2b='';var _0x3ab14d='';var _0x251d83='';var _0xef043e='';var _0x3df5dc='';var _0x1d7410='';var _0x33cbbb='';var _0x5e71d6='';var _0x3ca6b0=['title','description','customerid',_0x8855('0x5b'),_0x8855('0x5c'),'subject',_0x8855('0x5d'),_0x8855('0x5e'),_0x8855('0x5f'),_0x8855('0x60')];var _0x93fec1=[_0x8855('0x61'),_0x8855('0x62'),_0x8855('0x63'),'billedserviceunits',_0x8855('0x64'),_0x8855('0x65'),_0x8855('0x66'),'contractidname',_0x8855('0x67'),'createdbyexternalpartyyominame',_0x8855('0x68'),_0x8855('0x69'),'createdon',_0x8855('0x6a'),_0x8855('0x6b'),_0x8855('0x6c'),_0x8855('0x6d'),_0x8855('0x6e'),_0x8855('0x6f'),_0x8855('0x70'),_0x8855('0x71'),_0x8855('0x72'),'escalatedon','exchangerate',_0x8855('0x73'),_0x8855('0x74'),_0x8855('0x75'),'influencescore',_0x8855('0x76'),'lastonholdtime',_0x8855('0x77'),'modifiedbyexternalpartyname',_0x8855('0x78'),_0x8855('0x79'),'modifiedbyyominame','modifiedon','modifiedonbehalfbyname',_0x8855('0x7a'),_0x8855('0x7b'),_0x8855('0x7c'),_0x8855('0x7d'),_0x8855('0x7e'),_0x8855('0x7f'),'owneridname',_0x8855('0x80'),_0x8855('0x81'),_0x8855('0x82'),'primarycontactidname',_0x8855('0x83'),_0x8855('0x84'),'productidname',_0x8855('0x85'),'resolveby',_0x8855('0x86'),_0x8855('0x87'),'responsiblecontactidname',_0x8855('0x88'),_0x8855('0x89'),_0x8855('0x8a'),_0x8855('0x8b'),_0x8855('0x8c'),_0x8855('0x8d'),'statuscode','subjectidname','ticketnumber',_0x8855('0x8e'),_0x8855('0x8f'),_0x8855('0x90'),_0x8855('0x91'),_0x8855('0x92')];var _0x564838=_0x3ca6b0[_0x8855('0x93')](_0x93fec1);return db[_0x8855('0x3f')]['findOne']({'where':{'id':_0xb664e1['params']['id']},'attributes':['id',_0x8855('0x94'),_0x8855('0x95'),_0x8855('0x96'),'tenantId',_0x8855('0x97'),_0x8855('0x98')]})[_0x8855('0x25')](handleEntityNotFound(_0x144c9c,null))[_0x8855('0x25')](function(_0x457581){if(_0x457581){_0x5e71d6=_0x457581[_0x8855('0x96')];var _0x4f1978=_0x5e71d6['slice'](-0x1);if(_0x4f1978==='/'){_0x5e71d6=_0x5e71d6[_0x8855('0x99')](0x0,_0x5e71d6[_0x8855('0x9a')](_0x4f1978));}_0x33cbbb=util[_0x8855('0x9b')](_0x8855('0x9c'),_0x5e71d6);var _0x381d49={'method':_0x8855('0x9d'),'uri':'https://login.microsoftonline.com/'+_0x457581[_0x8855('0x9e')]+'/oauth2/token','form':{'client_id':_0x457581[_0x8855('0x97')],'resource':_0x5e71d6,'username':_0x457581[_0x8855('0x94')],'password':_0x457581['password'],'grant_type':'password','client_secret':_0x457581['clientSecret']},'json':!![]};return rp(_0x381d49);}})['then'](function(_0x30f5c4){_0x1d7410=_0x30f5c4[_0x8855('0x9f')];var _0x128422={'method':_0x8855('0xa0'),'uri':encodeURI(_0x33cbbb+'EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName\x20eq\x20\x27'+_0x345ba3+'\x27'),'headers':{'Authorization':_0x8855('0xa1')+_0x1d7410,'If-None-Match':null,'OData-Version':_0x8855('0xa2')},'json':!![]};return rp(_0x128422);})[_0x8855('0x25')](function(_0x1f7389){var _0x5cb7e6=_0x1f7389[_0x8855('0xa3')][0x0];var _0x2fe5c7=_0x5cb7e6['MetadataId'];var _0x5af2d9={'method':_0x8855('0xa0'),'uri':_0x33cbbb+_0x8855('0xa4')+_0x2fe5c7+')?$select=LogicalName&$expand=Attributes($select=LogicalName)','headers':{'Authorization':_0x8855('0xa1')+_0x1d7410,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x5af2d9);})['then'](function(_0x330d24){_0x32fb2b=_0x330d24;_0x3ab14d=_0x32fb2b[_0x8855('0xa5')];_0x3ab14d=_['remove'](_0x3ab14d,function(_0x12888c){return!_0x564838[_0x8855('0xa6')](_0x12888c[_0x8855('0xa7')]);});var _0x1e9084=[];var _0x3b97cf=[];_0x3ab14d[_0x8855('0xa8')](function(_0x50860e){if(_0x50860e['@odata.type']){var _0x1bc160=_0x50860e[_0x8855('0xa9')][_0x8855('0x99')](_0x50860e[_0x8855('0xa9')][_0x8855('0x9a')]('.')+0x1);if(_0x1bc160==='PicklistAttributeMetadata'){_0x1e9084[_0x8855('0xaa')](getSelectList(_0x33cbbb,_0x188ff7,_0x3b97cf,_0x32fb2b[_0x8855('0xab')],_0x50860e[_0x8855('0xab')],_0x1d7410));}}});return Promise['all'](_0x1e9084);})[_0x8855('0x25')](function(_0x2d317f){_0x251d83=_0x2d317f[0x0];var _0x3b0081=[];var _0x39a9ce=[];_0x3ab14d[_0x8855('0xa8')](function(_0x32af30){if(!_[_0x8855('0xac')](_0x32af30['@odata.type'])){var _0x55a8b6=_0x32af30[_0x8855('0xa9')][_0x8855('0x99')](_0x32af30[_0x8855('0xa9')][_0x8855('0x9a')]('.')+0x1);if(_0x55a8b6==='BooleanAttributeMetadata'){_0x3b0081['push'](getBooleanList(_0x33cbbb,_0x188ff7,_0x39a9ce,_0x32fb2b[_0x8855('0xab')],_0x32af30[_0x8855('0xab')],_0x1d7410));}}});return Promise['all'](_0x3b0081);})[_0x8855('0x25')](function(_0x41f91c){_0xef043e=_0x41f91c[0x0];var _0x47dc67=[];var _0x54c951=[];_0x3ab14d[_0x8855('0xa8')](function(_0x2e20bd){if(_0x2e20bd[_0x8855('0xa9')]){var _0xca473a=_0x2e20bd[_0x8855('0xa9')][_0x8855('0x99')](_0x2e20bd['@odata.type'][_0x8855('0x9a')]('.')+0x1);if(_0xca473a===_0x8855('0xad')||_0xca473a===_0x8855('0xae')||_0xca473a===_0x8855('0xaf')||_0xca473a===_0x8855('0xb0')||_0xca473a==='MemoAttributeMetadata'||_0xca473a===_0x8855('0xb1')||_0xca473a===_0x8855('0xb2')||_0xca473a===_0x8855('0xb3')||_0xca473a===_0x8855('0xb4')||_0xca473a==='DecimalAttributeMetadata'){_0x47dc67[_0x8855('0xaa')](getInputList(_0x33cbbb,_0x188ff7,_0xca473a,_0x54c951,_0x32fb2b[_0x8855('0xab')],_0x2e20bd['MetadataId'],_0x1d7410));}}});return Promise[_0x8855('0xb5')](_0x47dc67);})[_0x8855('0x25')](function(_0xa96b3f){_0x3df5dc=_0xa96b3f[0x0];var _0x2f90b4=_0x251d83[_0x8855('0x93')](_0xef043e)['concat'](_0x3df5dc);var _0x1ce7b9={'count':_0x2f90b4[_0x8855('0x35')],'rows':_0x2f90b4};return _0x1ce7b9;})[_0x8855('0x25')](respondWithResult(_0x144c9c,null))[_0x8855('0x46')](function(_0x2140ee){var _0x26d2f2=_0xb664e1[_0x8855('0x31')][_0x8855('0xb6')]?0x1f4:_0x2140ee[_0x8855('0xb7')]||0x1f4;logger[_0x8855('0xb8')](_0x2140ee['stack']);delete _0x2140ee[_0x8855('0x28')];if(_0x26d2f2===0x191){_0x26d2f2=0x190;}_0x144c9c['status'](_0x26d2f2)[_0x8855('0x29')](_0xb664e1[_0x8855('0x31')][_0x8855('0xb6')]?{'message':_0x8855('0xb9'),'statusCode':_0x2140ee['statusCode']}:_0x2140ee);});};function getSelectList(_0xe6951b,_0x56ab14,_0x24c73f,_0x1c48c8,_0x16cd2d,_0x48bb8d){var _0x14dbb4={'method':_0x8855('0xa0'),'uri':_0xe6951b+_0x8855('0xa4')+_0x1c48c8+_0x8855('0xba')+_0x16cd2d+_0x8855('0xbb')+_0x8855('0xbc'),'headers':{'Authorization':_0x8855('0xa1')+_0x48bb8d,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x14dbb4)[_0x8855('0x25')](function(_0x25fa91){var _0x39709d=[];var _0x17f9c5=_0x25fa91[_0x8855('0xbd')][_0x8855('0xbe')];_0x17f9c5[_0x8855('0xa8')](function(_0x1f8dae){_0x39709d[_0x8855('0xaa')]({'name':_0x1f8dae['Label'][_0x8855('0xbf')]['Label'],'value':String(_0x1f8dae['Value'])});});var _0x2d90f0={'id':_0x56ab14+'_'+_0x25fa91[_0x8855('0xa7')],'name':_0x25fa91[_0x8855('0xc0')]['UserLocalizedLabel']['Label'],'custom':![],'options':_0x39709d};_0x24c73f[_0x8855('0xaa')](_0x2d90f0);return _0x24c73f;});}function getBooleanList(_0x1e9d55,_0x40855f,_0x4b0d03,_0x12f466,_0x169f0c,_0xfd9c65){var _0x2a02f1={'method':'GET','uri':_0x1e9d55+_0x8855('0xa4')+_0x12f466+')/Attributes('+_0x169f0c+_0x8855('0xc1'),'headers':{'Authorization':_0x8855('0xa1')+_0xfd9c65,'If-None-Match':null,'OData-Version':_0x8855('0xa2')},'json':!![]};return rp(_0x2a02f1)['then'](function(_0x2c31af){var _0x10f17f=[];_0x10f17f[_0x8855('0xaa')]({'name':_0x2c31af[_0x8855('0xbd')]['TrueOption'][_0x8855('0xc2')][_0x8855('0xbf')][_0x8855('0xc2')],'value':_0x8855('0xc3')},{'name':_0x2c31af[_0x8855('0xbd')][_0x8855('0xc4')]['Label'][_0x8855('0xbf')]['Label'],'value':'false'});var _0x4579af={'id':_0x40855f+'_'+_0x2c31af[_0x8855('0xa7')],'name':_0x2c31af['DisplayName'][_0x8855('0xbf')][_0x8855('0xc2')],'custom':![],'options':_0x10f17f};_0x4b0d03['push'](_0x4579af);return _0x4b0d03;});}function getInputList(_0x1a3bc1,_0x3ca60e,_0x50280e,_0x3b54bf,_0x1a513d,_0x254316,_0x1924cc){var _0x35a13e={'method':_0x8855('0xa0'),'uri':_0x1a3bc1+'EntityDefinitions('+_0x1a513d+_0x8855('0xba')+_0x254316+')/Microsoft.Dynamics.CRM.'+_0x50280e+'?$select=DisplayName,LogicalName','headers':{'Authorization':_0x8855('0xa1')+_0x1924cc,'If-None-Match':null,'OData-Version':_0x8855('0xa2')},'json':!![]};return rp(_0x35a13e)[_0x8855('0x25')](function(_0x441719){var _0x32ab4e={'id':_0x3ca60e+'_'+_0x441719[_0x8855('0xa7')],'name':_0x441719[_0x8855('0xc0')]['UserLocalizedLabel']?_0x441719[_0x8855('0xc0')][_0x8855('0xbf')][_0x8855('0xc2')]:_0x441719[_0x8855('0xa7')],'custom':![],'options':[]};_0x3b54bf[_0x8855('0xaa')](_0x32ab4e);return _0x3b54bf;});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbaf0=['../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./intDynamics365Account.attributes','../../components/integrations/configuration','exports','define','Dynamics365Account','util'];(function(_0x269d17,_0xd89bb6){var _0x243c9a=function(_0x278b99){while(--_0x278b99){_0x269d17['push'](_0x269d17['shift']());}};_0x243c9a(++_0xd89bb6);}(_0xbaf0,0x12a));var _0x0baf=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xbaf0[_0x5ddb1c];return _0x354adc;};'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'));var integrations=require(_0x0baf('0x9'));module[_0x0baf('0xa')]=function(_0x335e24,_0x1a10b1){return _0x335e24[_0x0baf('0xb')](_0x0baf('0xc'),attributes,{'tableName':'int_dynamics365_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe706=['../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intDynamics365Account.attributes','../../components/integrations/configuration','exports','define','Dynamics365Account','int_dynamics365_accounts','lodash','util'];(function(_0x4c96a0,_0x29fa6a){var _0x42873d=function(_0x40977e){while(--_0x40977e){_0x4c96a0['push'](_0x4c96a0['shift']());}};_0x42873d(++_0x29fa6a);}(_0xe706,0xa3));var _0x6e70=function(_0x4b2407,_0x3fa63e){_0x4b2407=_0x4b2407-0x0;var _0x5defa2=_0xe706[_0x4b2407];return _0x5defa2;};'use strict';var _=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var logger=require(_0x6e70('0x2'))('api');var moment=require(_0x6e70('0x3'));var BPromise=require(_0x6e70('0x4'));var rp=require(_0x6e70('0x5'));var fs=require('fs');var path=require(_0x6e70('0x6'));var rimraf=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));var attributes=require(_0x6e70('0x9'));var integrations=require(_0x6e70('0xa'));module[_0x6e70('0xb')]=function(_0x4381d1,_0x36357b){return _0x4381d1[_0x6e70('0xc')](_0x6e70('0xd'),attributes,{'tableName':_0x6e70('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbbc0=['Dynamics365Account','findAll','options','raw','where','attributes','limit','map','model','include','then','stringify','catch','ShowDynamics365Account','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','request\x20sent','debug','Dynamics365Account,\x20%s,\x20%s,\x20%s','error','Dynamics365Account,\x20%s,\x20%s','message','info','result','GetDynamics365Account'];(function(_0x1b349a,_0x22222c){var _0x5d1f7c=function(_0x368d7c){while(--_0x368d7c){_0x1b349a['push'](_0x1b349a['shift']());}};_0x5d1f7c(++_0x22222c);}(_0xbbc0,0x12e));var _0x0bbc=function(_0x488e3d,_0x4f7e2a){_0x488e3d=_0x488e3d-0x0;var _0x3ee2b2=_0xbbc0[_0x488e3d];return _0x3ee2b2;};'use strict';var _=require(_0x0bbc('0x0'));var util=require(_0x0bbc('0x1'));var moment=require(_0x0bbc('0x2'));var BPromise=require(_0x0bbc('0x3'));var rs=require(_0x0bbc('0x4'));var fs=require('fs');var Redis=require(_0x0bbc('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x0bbc('0x6'));var logger=require(_0x0bbc('0x7'))('rpc');var config=require(_0x0bbc('0x8'));var jayson=require(_0x0bbc('0x9'));var client=jayson[_0x0bbc('0xa')][_0x0bbc('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2f5528,_0x1c6031,_0x5909ae){return new BPromise(function(_0x2d35ce,_0x4cc8da){return client[_0x0bbc('0xc')](_0x2f5528,_0x5909ae)['then'](function(_0x5c8b93){logger['info']('Dynamics365Account,\x20%s,\x20%s',_0x1c6031,_0x0bbc('0xd'));logger[_0x0bbc('0xe')](_0x0bbc('0xf'),_0x1c6031,_0x0bbc('0xd'),JSON['stringify'](_0x5c8b93));if(_0x5c8b93[_0x0bbc('0x10')]){if(_0x5c8b93[_0x0bbc('0x10')]['code']===0x1f4){logger[_0x0bbc('0x10')](_0x0bbc('0x11'),_0x1c6031,_0x5c8b93['error'][_0x0bbc('0x12')]);return _0x4cc8da(_0x5c8b93[_0x0bbc('0x10')]['message']);}logger[_0x0bbc('0x10')](_0x0bbc('0x11'),_0x1c6031,_0x5c8b93[_0x0bbc('0x10')][_0x0bbc('0x12')]);return _0x2d35ce(_0x5c8b93['error'][_0x0bbc('0x12')]);}else{logger[_0x0bbc('0x13')](_0x0bbc('0x11'),_0x1c6031,_0x0bbc('0xd'));_0x2d35ce(_0x5c8b93[_0x0bbc('0x14')]['message']);}})['catch'](function(_0x5a80c4){logger[_0x0bbc('0x10')](_0x0bbc('0x11'),_0x1c6031,_0x5a80c4);_0x4cc8da(_0x5a80c4);});});}exports[_0x0bbc('0x15')]=function(_0x28456b){var _0x570c10=this;return new Promise(function(_0x3fd6ab,_0x3fa521){return db[_0x0bbc('0x16')][_0x0bbc('0x17')]({'raw':_0x28456b['options']?_0x28456b[_0x0bbc('0x18')][_0x0bbc('0x19')]===undefined?!![]:![]:!![],'where':_0x28456b['options']?_0x28456b['options'][_0x0bbc('0x1a')]||null:null,'attributes':_0x28456b['options']?_0x28456b['options'][_0x0bbc('0x1b')]||null:null,'limit':_0x28456b['options']?_0x28456b['options'][_0x0bbc('0x1c')]||null:null,'include':_0x28456b['options']?_0x28456b['options']['include']?_[_0x0bbc('0x1d')](_0x28456b[_0x0bbc('0x18')]['include'],function(_0x5b33dc){return{'model':db[_0x5b33dc[_0x0bbc('0x1e')]],'as':_0x5b33dc['as'],'attributes':_0x5b33dc['attributes'],'include':_0x5b33dc[_0x0bbc('0x1f')]?_[_0x0bbc('0x1d')](_0x5b33dc[_0x0bbc('0x1f')],function(_0x492b8d){return{'model':db[_0x492b8d[_0x0bbc('0x1e')]],'as':_0x492b8d['as'],'attributes':_0x492b8d[_0x0bbc('0x1b')],'include':_0x492b8d[_0x0bbc('0x1f')]?_[_0x0bbc('0x1d')](_0x492b8d[_0x0bbc('0x1f')],function(_0x3ac40d){return{'model':db[_0x3ac40d[_0x0bbc('0x1e')]],'as':_0x3ac40d['as'],'attributes':_0x3ac40d[_0x0bbc('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x0bbc('0x20')](function(_0x4a0a18){logger[_0x0bbc('0x13')](_0x0bbc('0x15'),_0x28456b);logger['debug'](_0x0bbc('0x15'),_0x28456b,JSON[_0x0bbc('0x21')](_0x4a0a18));_0x3fd6ab(_0x4a0a18);})[_0x0bbc('0x22')](function(_0x2edfb7){logger[_0x0bbc('0x10')](_0x0bbc('0x15'),_0x2edfb7[_0x0bbc('0x12')],_0x28456b);_0x3fa521(_0x570c10['error'](0x1f4,_0x2edfb7[_0x0bbc('0x12')]));});});};exports['ShowDynamics365Account']=function(_0x4340b1){var _0x578903=this;return new Promise(function(_0x12ca43,_0x42092e){return db['Dynamics365Account']['find']({'raw':_0x4340b1[_0x0bbc('0x18')]?_0x4340b1[_0x0bbc('0x18')][_0x0bbc('0x19')]===undefined?!![]:![]:!![],'where':_0x4340b1[_0x0bbc('0x18')]?_0x4340b1[_0x0bbc('0x18')]['where']||null:null,'attributes':_0x4340b1[_0x0bbc('0x18')]?_0x4340b1[_0x0bbc('0x18')]['attributes']||null:null,'include':_0x4340b1[_0x0bbc('0x18')]?_0x4340b1[_0x0bbc('0x18')]['include']?_[_0x0bbc('0x1d')](_0x4340b1['options'][_0x0bbc('0x1f')],function(_0x5a1129){return{'model':db[_0x5a1129[_0x0bbc('0x1e')]],'as':_0x5a1129['as'],'attributes':_0x5a1129['attributes'],'include':_0x5a1129[_0x0bbc('0x1f')]?_['map'](_0x5a1129[_0x0bbc('0x1f')],function(_0x477650){return{'model':db[_0x477650[_0x0bbc('0x1e')]],'as':_0x477650['as'],'attributes':_0x477650[_0x0bbc('0x1b')],'include':_0x477650[_0x0bbc('0x1f')]?_[_0x0bbc('0x1d')](_0x477650[_0x0bbc('0x1f')],function(_0x484a05){return{'model':db[_0x484a05[_0x0bbc('0x1e')]],'as':_0x484a05['as'],'attributes':_0x484a05['attributes']};}):[]};}):[]};}):[]:[]})[_0x0bbc('0x20')](function(_0x10d527){logger[_0x0bbc('0x13')](_0x0bbc('0x23'),_0x4340b1);logger['debug'](_0x0bbc('0x23'),_0x4340b1,JSON[_0x0bbc('0x21')](_0x10d527));_0x12ca43(_0x10d527);})[_0x0bbc('0x22')](function(_0x54f1f2){logger['error'](_0x0bbc('0x23'),_0x54f1f2[_0x0bbc('0x12')],_0x4340b1);_0x42092e(_0x578903[_0x0bbc('0x10')](0x1f4,_0x54f1f2['message']));});});};
\ No newline at end of file
+var _0x5a43=['include','map','attributes','model','GetDynamics365Account','ShowDynamics365Account','Dynamics365Account','where','stringify','catch','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','then','info','Dynamics365Account,\x20%s,\x20%s','debug','error','code','message','request\x20sent','findAll','options','raw','limit'];(function(_0x5d5125,_0x15a52c){var _0x4d44c3=function(_0x3a19c4){while(--_0x3a19c4){_0x5d5125['push'](_0x5d5125['shift']());}};_0x4d44c3(++_0x15a52c);}(_0x5a43,0x12a));var _0x35a4=function(_0x4dc8b5,_0x3423ab){_0x4dc8b5=_0x4dc8b5-0x0;var _0x253822=_0x5a43[_0x4dc8b5];return _0x253822;};'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});function respondWithRpcPromise(_0x4fbb88,_0x185dec,_0x1b2ec2){return new BPromise(function(_0x502070,_0x76a5d0){return client['request'](_0x4fbb88,_0x1b2ec2)[_0x35a4('0xa')](function(_0x355d49){logger[_0x35a4('0xb')](_0x35a4('0xc'),_0x185dec,'request\x20sent');logger[_0x35a4('0xd')]('Dynamics365Account,\x20%s,\x20%s,\x20%s',_0x185dec,'request\x20sent',JSON['stringify'](_0x355d49));if(_0x355d49['error']){if(_0x355d49[_0x35a4('0xe')][_0x35a4('0xf')]===0x1f4){logger['error'](_0x35a4('0xc'),_0x185dec,_0x355d49[_0x35a4('0xe')][_0x35a4('0x10')]);return _0x76a5d0(_0x355d49[_0x35a4('0xe')]['message']);}logger[_0x35a4('0xe')](_0x35a4('0xc'),_0x185dec,_0x355d49[_0x35a4('0xe')][_0x35a4('0x10')]);return _0x502070(_0x355d49[_0x35a4('0xe')][_0x35a4('0x10')]);}else{logger[_0x35a4('0xb')](_0x35a4('0xc'),_0x185dec,_0x35a4('0x11'));_0x502070(_0x355d49['result'][_0x35a4('0x10')]);}})['catch'](function(_0x124146){logger[_0x35a4('0xe')]('Dynamics365Account,\x20%s,\x20%s',_0x185dec,_0x124146);_0x76a5d0(_0x124146);});});}exports['GetDynamics365Account']=function(_0x7ee098){var _0x55b841=this;return new Promise(function(_0x3b7d13,_0x17a151){return db['Dynamics365Account'][_0x35a4('0x12')]({'raw':_0x7ee098[_0x35a4('0x13')]?_0x7ee098['options'][_0x35a4('0x14')]===undefined?!![]:![]:!![],'where':_0x7ee098[_0x35a4('0x13')]?_0x7ee098[_0x35a4('0x13')]['where']||null:null,'attributes':_0x7ee098[_0x35a4('0x13')]?_0x7ee098[_0x35a4('0x13')]['attributes']||null:null,'limit':_0x7ee098['options']?_0x7ee098[_0x35a4('0x13')][_0x35a4('0x15')]||null:null,'include':_0x7ee098[_0x35a4('0x13')]?_0x7ee098[_0x35a4('0x13')][_0x35a4('0x16')]?_[_0x35a4('0x17')](_0x7ee098['options'][_0x35a4('0x16')],function(_0x95a379){return{'model':db[_0x95a379['model']],'as':_0x95a379['as'],'attributes':_0x95a379[_0x35a4('0x18')],'include':_0x95a379[_0x35a4('0x16')]?_['map'](_0x95a379[_0x35a4('0x16')],function(_0x2cc1d2){return{'model':db[_0x2cc1d2[_0x35a4('0x19')]],'as':_0x2cc1d2['as'],'attributes':_0x2cc1d2[_0x35a4('0x18')],'include':_0x2cc1d2[_0x35a4('0x16')]?_[_0x35a4('0x17')](_0x2cc1d2[_0x35a4('0x16')],function(_0x41f01f){return{'model':db[_0x41f01f[_0x35a4('0x19')]],'as':_0x41f01f['as'],'attributes':_0x41f01f[_0x35a4('0x18')]};}):[]};}):[]};}):[]:[]})[_0x35a4('0xa')](function(_0x5a72be){logger[_0x35a4('0xb')](_0x35a4('0x1a'),_0x7ee098);logger[_0x35a4('0xd')]('GetDynamics365Account',_0x7ee098,JSON['stringify'](_0x5a72be));_0x3b7d13(_0x5a72be);})['catch'](function(_0x4cc8da){logger[_0x35a4('0xe')](_0x35a4('0x1a'),_0x4cc8da[_0x35a4('0x10')],_0x7ee098);_0x17a151(_0x55b841['error'](0x1f4,_0x4cc8da[_0x35a4('0x10')]));});});};exports[_0x35a4('0x1b')]=function(_0x3fdab4){var _0x2b763c=this;return new Promise(function(_0xc08a92,_0x54bd57){return db[_0x35a4('0x1c')]['find']({'raw':_0x3fdab4[_0x35a4('0x13')]?_0x3fdab4['options'][_0x35a4('0x14')]===undefined?!![]:![]:!![],'where':_0x3fdab4['options']?_0x3fdab4[_0x35a4('0x13')][_0x35a4('0x1d')]||null:null,'attributes':_0x3fdab4[_0x35a4('0x13')]?_0x3fdab4[_0x35a4('0x13')][_0x35a4('0x18')]||null:null,'include':_0x3fdab4[_0x35a4('0x13')]?_0x3fdab4[_0x35a4('0x13')][_0x35a4('0x16')]?_['map'](_0x3fdab4[_0x35a4('0x13')][_0x35a4('0x16')],function(_0x3c54a2){return{'model':db[_0x3c54a2['model']],'as':_0x3c54a2['as'],'attributes':_0x3c54a2[_0x35a4('0x18')],'include':_0x3c54a2[_0x35a4('0x16')]?_[_0x35a4('0x17')](_0x3c54a2[_0x35a4('0x16')],function(_0x3b38a4){return{'model':db[_0x3b38a4[_0x35a4('0x19')]],'as':_0x3b38a4['as'],'attributes':_0x3b38a4[_0x35a4('0x18')],'include':_0x3b38a4[_0x35a4('0x16')]?_['map'](_0x3b38a4['include'],function(_0x4669c1){return{'model':db[_0x4669c1[_0x35a4('0x19')]],'as':_0x4669c1['as'],'attributes':_0x4669c1[_0x35a4('0x18')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x142851){logger[_0x35a4('0xb')](_0x35a4('0x1b'),_0x3fdab4);logger[_0x35a4('0xd')](_0x35a4('0x1b'),_0x3fdab4,JSON[_0x35a4('0x1e')](_0x142851));_0xc08a92(_0x142851);})[_0x35a4('0x1f')](function(_0x25922f){logger[_0x35a4('0xe')](_0x35a4('0x1b'),_0x25922f[_0x35a4('0x10')],_0x3fdab4);_0x54bd57(_0x2b763c[_0x35a4('0xe')](0x1f4,_0x25922f[_0x35a4('0x10')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x62a5=['/:id','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','isAuthenticated','getDescriptions','create','delete','destroy','exports','multer','util','path','connect-timeout','../../components/auth/service','../../components/interaction/service','../../config/environment','index','get'];(function(_0x725b8e,_0xc22b48){var _0x43ac45=function(_0x46bb4a){while(--_0x46bb4a){_0x725b8e['push'](_0x725b8e['shift']());}};_0x43ac45(++_0xc22b48);}(_0x62a5,0x14b));var _0x562a=function(_0x3ed8e9,_0x5dafc9){_0x3ed8e9=_0x3ed8e9-0x0;var _0x40b696=_0x62a5[_0x3ed8e9];return _0x40b696;};'use strict';var multer=require(_0x562a('0x0'));var util=require(_0x562a('0x1'));var path=require(_0x562a('0x2'));var timeout=require(_0x562a('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x562a('0x4'));var interaction=require(_0x562a('0x5'));var config=require(_0x562a('0x6'));var controller=require('./intDynamics365Configuration.controller');router['get']('/',auth['isAuthenticated'](),controller[_0x562a('0x7')]);router[_0x562a('0x8')](_0x562a('0x9'),auth['isAuthenticated'](),controller['show']);router[_0x562a('0x8')](_0x562a('0xa'),auth['isAuthenticated'](),controller['getFields']);router[_0x562a('0x8')](_0x562a('0xb'),auth['isAuthenticated'](),controller[_0x562a('0xc')]);router[_0x562a('0x8')](_0x562a('0xd'),auth[_0x562a('0xe')](),controller[_0x562a('0xf')]);router['post']('/',auth[_0x562a('0xe')](),controller[_0x562a('0x10')]);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router[_0x562a('0x11')](_0x562a('0x9'),auth[_0x562a('0xe')](),controller[_0x562a('0x12')]);module[_0x562a('0x13')]=router;
\ No newline at end of file
+var _0x6da9=['express','Router','fs-extra','./intDynamics365Configuration.controller','get','isAuthenticated','show','/:id/subjects','/:id/descriptions','getDescriptions','post','create','put','/:id','update','delete','destroy','multer','util','path','connect-timeout'];(function(_0x594f05,_0x31eb63){var _0x430a72=function(_0xf4d132){while(--_0xf4d132){_0x594f05['push'](_0x594f05['shift']());}};_0x430a72(++_0x31eb63);}(_0x6da9,0x161));var _0x96da=function(_0xca86cd,_0x8c51fe){_0xca86cd=_0xca86cd-0x0;var _0x27307d=_0x6da9[_0xca86cd];return _0x27307d;};'use strict';var multer=require(_0x96da('0x0'));var util=require(_0x96da('0x1'));var path=require(_0x96da('0x2'));var timeout=require(_0x96da('0x3'));var express=require(_0x96da('0x4'));var router=express[_0x96da('0x5')]();var fs_extra=require(_0x96da('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x96da('0x7'));router[_0x96da('0x8')]('/',auth[_0x96da('0x9')](),controller['index']);router[_0x96da('0x8')]('/:id',auth[_0x96da('0x9')](),controller[_0x96da('0xa')]);router[_0x96da('0x8')]('/:id/fields',auth['isAuthenticated'](),controller['getFields']);router[_0x96da('0x8')](_0x96da('0xb'),auth[_0x96da('0x9')](),controller['getSubjects']);router[_0x96da('0x8')](_0x96da('0xc'),auth['isAuthenticated'](),controller[_0x96da('0xd')]);router[_0x96da('0xe')]('/',auth[_0x96da('0x9')](),controller[_0x96da('0xf')]);router[_0x96da('0x10')](_0x96da('0x11'),auth[_0x96da('0x9')](),controller[_0x96da('0x12')]);router[_0x96da('0x13')]('/:id',auth[_0x96da('0x9')](),controller[_0x96da('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2960=['incident','phonecall','sequelize','exports','STRING','ENUM'];(function(_0x481ed1,_0x3b66cb){var _0x380261=function(_0x23bb56){while(--_0x23bb56){_0x481ed1['push'](_0x481ed1['shift']());}};_0x380261(++_0x3b66cb);}(_0x2960,0x86));var _0x0296=function(_0x22f8a2,_0x2c6908){_0x22f8a2=_0x22f8a2-0x0;var _0x586c6e=_0x2960[_0x22f8a2];return _0x586c6e;};'use strict';var Sequelize=require(_0x0296('0x0'));module[_0x0296('0x1')]={'name':{'type':Sequelize[_0x0296('0x2')]},'description':{'type':Sequelize['STRING']},'ticketType':{'type':Sequelize[_0x0296('0x3')](_0x0296('0x4'),_0x0296('0x5')),'defaultValue':_0x0296('0x4')}};
\ No newline at end of file
+var _0x1ff9=['ENUM','incident','sequelize','exports','STRING'];(function(_0x5ed973,_0x42389f){var _0x2b41c9=function(_0xa2b346){while(--_0xa2b346){_0x5ed973['push'](_0x5ed973['shift']());}};_0x2b41c9(++_0x42389f);}(_0x1ff9,0x15b));var _0x91ff=function(_0x2606e7,_0xcbe32c){_0x2606e7=_0x2606e7-0x0;var _0x56d2b6=_0x1ff9[_0x2606e7];return _0x56d2b6;};'use strict';var Sequelize=require(_0x91ff('0x0'));module[_0x91ff('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x91ff('0x2')]},'ticketType':{'type':Sequelize[_0x91ff('0x3')](_0x91ff('0x4'),'phonecall'),'defaultValue':'incident'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdac1=['request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','set','Content-Range','apply','update','then','destroy','end','error','name','index','Dynamics365Configuration','rawAttributes','type','key','map','keys','query','filters','intersection','model','fields','attributes','length','nolimit','limit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','create','body','find','params','Dynamics365Field','hasOwnProperty','getFields','getSubjects','findOne','getDescriptions','rimraf','zip-dir'];(function(_0x473d5b,_0x12e3e7){var _0x5aa6c3=function(_0x5f3b19){while(--_0x5f3b19){_0x473d5b['push'](_0x473d5b['shift']());}};_0x5aa6c3(++_0x12e3e7);}(_0xdac1,0x136));var _0x1dac=function(_0xaea11d,_0x1ef478){_0xaea11d=_0xaea11d-0x0;var _0xeedf71=_0xdac1[_0xaea11d];return _0xeedf71;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1dac('0x0'));var zipdir=require(_0x1dac('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1dac('0x2'));var moment=require(_0x1dac('0x3'));var BPromise=require(_0x1dac('0x4'));var Mustache=require(_0x1dac('0x5'));var util=require(_0x1dac('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x1dac('0x7'));var ejs=require(_0x1dac('0x8'));var fs=require('fs');var fs_extra=require(_0x1dac('0x9'));var _=require('lodash');var squel=require(_0x1dac('0xa'));var crypto=require(_0x1dac('0xb'));var jsforce=require(_0x1dac('0xc'));var deskjs=require(_0x1dac('0xd'));var toCsv=require(_0x1dac('0x7'));var querystring=require(_0x1dac('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x1dac('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1dac('0x10'));var logger=require(_0x1dac('0x11'))(_0x1dac('0x12'));var utils=require(_0x1dac('0x13'));var config=require(_0x1dac('0x14'));var licenseUtil=require(_0x1dac('0x15'));var db=require(_0x1dac('0x16'))['db'];function respondWithStatusCode(_0x329fa6,_0x1da7c4){_0x1da7c4=_0x1da7c4||0xcc;return function(_0xc7b7f5){if(_0xc7b7f5){return _0x329fa6[_0x1dac('0x17')](_0x1da7c4);}return _0x329fa6[_0x1dac('0x18')](_0x1da7c4)['end']();};}function respondWithResult(_0x4222da,_0x1a8a66){_0x1a8a66=_0x1a8a66||0xc8;return function(_0x7f6587){if(_0x7f6587){return _0x4222da[_0x1dac('0x18')](_0x1a8a66)[_0x1dac('0x19')](_0x7f6587);}};}function respondWithFilteredResult(_0x4791f9,_0xd27711){return function(_0x3f0964){if(_0x3f0964){var _0xe0c5ad=typeof _0xd27711[_0x1dac('0x1a')]===_0x1dac('0x1b')&&typeof _0xd27711['limit']==='undefined';var _0x47b975=_0x3f0964[_0x1dac('0x1c')];var _0x104e7e=_0xe0c5ad?0x0:_0xd27711[_0x1dac('0x1a')];var _0xd356b7=_0xe0c5ad?_0x3f0964[_0x1dac('0x1c')]:_0xd27711[_0x1dac('0x1a')]+_0xd27711['limit'];var _0x34b9f5;if(_0xd356b7>=_0x47b975){_0xd356b7=_0x47b975;_0x34b9f5=0xc8;}else{_0x34b9f5=0xce;}_0x4791f9[_0x1dac('0x18')](_0x34b9f5);return _0x4791f9[_0x1dac('0x1d')](_0x1dac('0x1e'),_0x104e7e+'-'+_0xd356b7+'/'+_0x47b975)[_0x1dac('0x19')](_0x3f0964);}return null;};}function patchUpdates(_0x1d68a1){return function(_0x1529e0){try{jsonpatch[_0x1dac('0x1f')](_0x1529e0,_0x1d68a1,!![]);}catch(_0x230f20){return BPromise['reject'](_0x230f20);}return _0x1529e0['save']();};}function saveUpdates(_0x2683af,_0x166147){return function(_0x54bfbe){if(_0x54bfbe){return _0x54bfbe[_0x1dac('0x20')](_0x2683af)[_0x1dac('0x21')](function(_0x227ff6){return _0x227ff6;});}return null;};}function removeEntity(_0x1256f2,_0x36565e){return function(_0x37ae9e){if(_0x37ae9e){return _0x37ae9e[_0x1dac('0x22')]()[_0x1dac('0x21')](function(){_0x1256f2[_0x1dac('0x18')](0xcc)[_0x1dac('0x23')]();});}};}function handleEntityNotFound(_0x463cdf,_0x117e5b){return function(_0x2a93bc){if(!_0x2a93bc){_0x463cdf[_0x1dac('0x17')](0x194);}return _0x2a93bc;};}function handleError(_0x1ff295,_0x2fc8e2){_0x2fc8e2=_0x2fc8e2||0x1f4;return function(_0x111261){logger[_0x1dac('0x24')](_0x111261['stack']);if(_0x111261[_0x1dac('0x25')]){delete _0x111261[_0x1dac('0x25')];}_0x1ff295[_0x1dac('0x18')](_0x2fc8e2)['send'](_0x111261);};}exports[_0x1dac('0x26')]=function(_0x231211,_0xa04022){var _0x22c5b9={},_0x2bc3f0={},_0x3f3414={'count':0x0,'rows':[]};var _0x3e8467=_['map'](db[_0x1dac('0x27')][_0x1dac('0x28')],function(_0x5c6a66){return{'name':_0x5c6a66['fieldName'],'type':_0x5c6a66[_0x1dac('0x29')][_0x1dac('0x2a')]};});_0x2bc3f0['model']=_[_0x1dac('0x2b')](_0x3e8467,_0x1dac('0x25'));_0x2bc3f0['query']=_[_0x1dac('0x2c')](_0x231211[_0x1dac('0x2d')]);_0x2bc3f0[_0x1dac('0x2e')]=_[_0x1dac('0x2f')](_0x2bc3f0[_0x1dac('0x30')],_0x2bc3f0[_0x1dac('0x2d')]);_0x22c5b9['attributes']=_[_0x1dac('0x2f')](_0x2bc3f0[_0x1dac('0x30')],qs[_0x1dac('0x31')](_0x231211[_0x1dac('0x2d')]['fields']));_0x22c5b9[_0x1dac('0x32')]=_0x22c5b9[_0x1dac('0x32')][_0x1dac('0x33')]?_0x22c5b9[_0x1dac('0x32')]:_0x2bc3f0[_0x1dac('0x30')];if(!_0x231211[_0x1dac('0x2d')]['hasOwnProperty'](_0x1dac('0x34'))){_0x22c5b9[_0x1dac('0x35')]=qs[_0x1dac('0x35')](_0x231211[_0x1dac('0x2d')][_0x1dac('0x35')]);_0x22c5b9[_0x1dac('0x1a')]=qs[_0x1dac('0x1a')](_0x231211['query']['offset']);}_0x22c5b9[_0x1dac('0x36')]=qs[_0x1dac('0x37')](_0x231211[_0x1dac('0x2d')][_0x1dac('0x37')]);_0x22c5b9[_0x1dac('0x38')]=qs[_0x1dac('0x2e')](_[_0x1dac('0x39')](_0x231211[_0x1dac('0x2d')],_0x2bc3f0[_0x1dac('0x2e')]),_0x3e8467);if(_0x231211['query'][_0x1dac('0x3a')]){_0x22c5b9[_0x1dac('0x38')]=_['merge'](_0x22c5b9[_0x1dac('0x38')],{'$or':_[_0x1dac('0x2b')](_0x3e8467,function(_0x1e5e21){if(_0x1e5e21[_0x1dac('0x29')]!==_0x1dac('0x3b')){var _0x5609fc={};_0x5609fc[_0x1e5e21['name']]={'$like':'%'+_0x231211[_0x1dac('0x2d')]['filter']+'%'};return _0x5609fc;}})});}_0x22c5b9=_[_0x1dac('0x3c')]({},_0x22c5b9,_0x231211[_0x1dac('0x3d')]);var _0x3cbea3={'where':_0x22c5b9['where']};return db[_0x1dac('0x27')][_0x1dac('0x1c')](_0x3cbea3)[_0x1dac('0x21')](function(_0x4446b0){_0x3f3414['count']=_0x4446b0;if(_0x231211[_0x1dac('0x2d')][_0x1dac('0x3e')]){_0x22c5b9[_0x1dac('0x3f')]=[{'all':!![]}];}return db[_0x1dac('0x27')][_0x1dac('0x40')](_0x22c5b9);})['then'](function(_0x34607a){_0x3f3414[_0x1dac('0x41')]=_0x34607a;return _0x3f3414;})['then'](respondWithFilteredResult(_0xa04022,_0x22c5b9))[_0x1dac('0x42')](handleError(_0xa04022,null));};exports[_0x1dac('0x43')]=function(_0x2bb79a,_0x127579){var _0x562198={'raw':![],'where':{'id':_0x2bb79a['params']['id']}},_0x59680c={};_0x59680c[_0x1dac('0x30')]=_[_0x1dac('0x2c')](db[_0x1dac('0x27')][_0x1dac('0x28')]);_0x59680c['query']=_[_0x1dac('0x2c')](_0x2bb79a[_0x1dac('0x2d')]);_0x59680c[_0x1dac('0x2e')]=_['intersection'](_0x59680c['model'],_0x59680c[_0x1dac('0x2d')]);_0x562198[_0x1dac('0x32')]=_[_0x1dac('0x2f')](_0x59680c['model'],qs[_0x1dac('0x31')](_0x2bb79a[_0x1dac('0x2d')][_0x1dac('0x31')]));_0x562198[_0x1dac('0x32')]=_0x562198['attributes'][_0x1dac('0x33')]?_0x562198[_0x1dac('0x32')]:_0x59680c[_0x1dac('0x30')];if(_0x2bb79a[_0x1dac('0x2d')][_0x1dac('0x3e')]){_0x562198['include']=[{'all':!![]}];}_0x562198=_[_0x1dac('0x3c')]({},_0x562198,_0x2bb79a[_0x1dac('0x3d')]);return db[_0x1dac('0x27')]['find'](_0x562198)[_0x1dac('0x21')](handleEntityNotFound(_0x127579,null))[_0x1dac('0x21')](respondWithResult(_0x127579,null))[_0x1dac('0x42')](handleError(_0x127579,null));};exports['create']=function(_0x365e3e,_0x3d0bf5){return db['Dynamics365Configuration'][_0x1dac('0x44')](_0x365e3e[_0x1dac('0x45')],{})[_0x1dac('0x21')](respondWithResult(_0x3d0bf5,0xc9))[_0x1dac('0x42')](handleError(_0x3d0bf5,null));};exports[_0x1dac('0x20')]=function(_0x47bbdf,_0x3fd883){if(_0x47bbdf[_0x1dac('0x45')]['id']){delete _0x47bbdf[_0x1dac('0x45')]['id'];}return db[_0x1dac('0x27')][_0x1dac('0x46')]({'where':{'id':_0x47bbdf['params']['id']}})[_0x1dac('0x21')](handleEntityNotFound(_0x3fd883,null))['then'](saveUpdates(_0x47bbdf[_0x1dac('0x45')],null))['then'](respondWithResult(_0x3fd883,null))[_0x1dac('0x42')](handleError(_0x3fd883,null));};exports[_0x1dac('0x22')]=function(_0x2762b2,_0x2078bf){return db['Dynamics365Configuration'][_0x1dac('0x46')]({'where':{'id':_0x2762b2[_0x1dac('0x47')]['id']}})[_0x1dac('0x21')](handleEntityNotFound(_0x2078bf,null))[_0x1dac('0x21')](removeEntity(_0x2078bf,null))['catch'](handleError(_0x2078bf,null));};exports['getFields']=function(_0x48c5c1,_0x496151,_0x7aa06b){var _0x5a3b58={};var _0x5511e8={};var _0x30b368;var _0x11f593;return db[_0x1dac('0x27')]['findOne']({'where':{'id':_0x48c5c1['params']['id']}})['then'](handleEntityNotFound(_0x496151,null))[_0x1dac('0x21')](function(_0x58e8ad){if(_0x58e8ad){_0x30b368=_0x58e8ad;_0x5511e8[_0x1dac('0x30')]=_[_0x1dac('0x2c')](db[_0x1dac('0x48')]['rawAttributes']);_0x5511e8[_0x1dac('0x2d')]=_[_0x1dac('0x2c')](_0x48c5c1[_0x1dac('0x2d')]);_0x5511e8['filters']=_['intersection'](_0x5511e8[_0x1dac('0x30')],_0x5511e8['query']);_0x5a3b58[_0x1dac('0x32')]=_[_0x1dac('0x2f')](_0x5511e8[_0x1dac('0x30')],qs['fields'](_0x48c5c1['query']['fields']));_0x5a3b58['attributes']=_0x5a3b58[_0x1dac('0x32')][_0x1dac('0x33')]?_0x5a3b58[_0x1dac('0x32')]:_0x5511e8[_0x1dac('0x30')];_0x5a3b58[_0x1dac('0x36')]=qs['sort'](_0x48c5c1[_0x1dac('0x2d')][_0x1dac('0x37')]);_0x5a3b58[_0x1dac('0x38')]=qs[_0x1dac('0x2e')](_['pick'](_0x48c5c1[_0x1dac('0x2d')],_0x5511e8['filters']));if(_0x48c5c1['query'][_0x1dac('0x3a')]){_0x5a3b58['where']=_[_0x1dac('0x3c')](_0x5a3b58['where'],{'$or':_[_0x1dac('0x2b')](_0x5a3b58[_0x1dac('0x32')],function(_0x440b84){var _0x5cffb5={};_0x5cffb5[_0x440b84]={'$like':'%'+_0x48c5c1[_0x1dac('0x2d')]['filter']+'%'};return _0x5cffb5;})});}_0x5a3b58=_[_0x1dac('0x3c')]({},_0x5a3b58,_0x48c5c1[_0x1dac('0x3d')]);return _0x30b368['getFields'](_0x5a3b58);}})['then'](function(_0x1bcfc8){if(_0x1bcfc8){_0x11f593=_0x1bcfc8['length'];if(!_0x48c5c1[_0x1dac('0x2d')][_0x1dac('0x49')](_0x1dac('0x34'))){_0x5a3b58[_0x1dac('0x35')]=qs[_0x1dac('0x35')](_0x48c5c1['query'][_0x1dac('0x35')]);_0x5a3b58['offset']=qs['offset'](_0x48c5c1[_0x1dac('0x2d')][_0x1dac('0x1a')]);}return _0x30b368[_0x1dac('0x4a')](_0x5a3b58);}})[_0x1dac('0x21')](function(_0x1b65ab){if(_0x1b65ab){return _0x1b65ab?{'count':_0x11f593,'rows':_0x1b65ab}:null;}})[_0x1dac('0x21')](respondWithResult(_0x496151,null))[_0x1dac('0x42')](handleError(_0x496151,null));};exports[_0x1dac('0x4b')]=function(_0x640e3,_0x200947,_0x60d30){var _0xf2a125={};var _0xc65cf9={};var _0x2b24b8;var _0x5a6730;return db[_0x1dac('0x27')][_0x1dac('0x4c')]({'where':{'id':_0x640e3['params']['id']}})['then'](handleEntityNotFound(_0x200947,null))[_0x1dac('0x21')](function(_0x745e33){if(_0x745e33){_0x2b24b8=_0x745e33;_0xc65cf9[_0x1dac('0x30')]=_[_0x1dac('0x2c')](db[_0x1dac('0x48')][_0x1dac('0x28')]);_0xc65cf9[_0x1dac('0x2d')]=_['keys'](_0x640e3['query']);_0xc65cf9[_0x1dac('0x2e')]=_['intersection'](_0xc65cf9[_0x1dac('0x30')],_0xc65cf9[_0x1dac('0x2d')]);_0xf2a125[_0x1dac('0x32')]=_['intersection'](_0xc65cf9[_0x1dac('0x30')],qs[_0x1dac('0x31')](_0x640e3[_0x1dac('0x2d')][_0x1dac('0x31')]));_0xf2a125[_0x1dac('0x32')]=_0xf2a125[_0x1dac('0x32')][_0x1dac('0x33')]?_0xf2a125['attributes']:_0xc65cf9['model'];_0xf2a125[_0x1dac('0x36')]=qs[_0x1dac('0x37')](_0x640e3[_0x1dac('0x2d')]['sort']);_0xf2a125[_0x1dac('0x38')]=qs['filters'](_['pick'](_0x640e3[_0x1dac('0x2d')],_0xc65cf9['filters']));if(_0x640e3[_0x1dac('0x2d')][_0x1dac('0x3a')]){_0xf2a125[_0x1dac('0x38')]=_[_0x1dac('0x3c')](_0xf2a125[_0x1dac('0x38')],{'$or':_[_0x1dac('0x2b')](_0xf2a125[_0x1dac('0x32')],function(_0x583059){var _0x30654b={};_0x30654b[_0x583059]={'$like':'%'+_0x640e3['query'][_0x1dac('0x3a')]+'%'};return _0x30654b;})});}_0xf2a125=_['merge']({},_0xf2a125,_0x640e3[_0x1dac('0x3d')]);return _0x2b24b8[_0x1dac('0x4b')](_0xf2a125);}})['then'](function(_0x46fead){if(_0x46fead){_0x5a6730=_0x46fead[_0x1dac('0x33')];if(!_0x640e3['query']['hasOwnProperty'](_0x1dac('0x34'))){_0xf2a125[_0x1dac('0x35')]=qs[_0x1dac('0x35')](_0x640e3[_0x1dac('0x2d')][_0x1dac('0x35')]);_0xf2a125['offset']=qs[_0x1dac('0x1a')](_0x640e3[_0x1dac('0x2d')][_0x1dac('0x1a')]);}return _0x2b24b8[_0x1dac('0x4b')](_0xf2a125);}})['then'](function(_0x443bfa){if(_0x443bfa){return _0x443bfa?{'count':_0x5a6730,'rows':_0x443bfa}:null;}})['then'](respondWithResult(_0x200947,null))[_0x1dac('0x42')](handleError(_0x200947,null));};exports[_0x1dac('0x4d')]=function(_0x2d5687,_0x3fa0db,_0x4aad67){var _0x54ba36={};var _0x4cab75={};var _0x40f666;var _0x350493;return db[_0x1dac('0x27')][_0x1dac('0x4c')]({'where':{'id':_0x2d5687[_0x1dac('0x47')]['id']}})[_0x1dac('0x21')](handleEntityNotFound(_0x3fa0db,null))[_0x1dac('0x21')](function(_0x1dd70e){if(_0x1dd70e){_0x40f666=_0x1dd70e;_0x4cab75['model']=_[_0x1dac('0x2c')](db[_0x1dac('0x48')][_0x1dac('0x28')]);_0x4cab75[_0x1dac('0x2d')]=_[_0x1dac('0x2c')](_0x2d5687[_0x1dac('0x2d')]);_0x4cab75[_0x1dac('0x2e')]=_[_0x1dac('0x2f')](_0x4cab75[_0x1dac('0x30')],_0x4cab75[_0x1dac('0x2d')]);_0x54ba36[_0x1dac('0x32')]=_[_0x1dac('0x2f')](_0x4cab75[_0x1dac('0x30')],qs['fields'](_0x2d5687['query']['fields']));_0x54ba36[_0x1dac('0x32')]=_0x54ba36[_0x1dac('0x32')]['length']?_0x54ba36[_0x1dac('0x32')]:_0x4cab75['model'];_0x54ba36[_0x1dac('0x36')]=qs['sort'](_0x2d5687[_0x1dac('0x2d')][_0x1dac('0x37')]);_0x54ba36[_0x1dac('0x38')]=qs[_0x1dac('0x2e')](_[_0x1dac('0x39')](_0x2d5687[_0x1dac('0x2d')],_0x4cab75[_0x1dac('0x2e')]));if(_0x2d5687[_0x1dac('0x2d')][_0x1dac('0x3a')]){_0x54ba36[_0x1dac('0x38')]=_[_0x1dac('0x3c')](_0x54ba36[_0x1dac('0x38')],{'$or':_[_0x1dac('0x2b')](_0x54ba36[_0x1dac('0x32')],function(_0x1bcb19){var _0x3551d4={};_0x3551d4[_0x1bcb19]={'$like':'%'+_0x2d5687['query'][_0x1dac('0x3a')]+'%'};return _0x3551d4;})});}_0x54ba36=_[_0x1dac('0x3c')]({},_0x54ba36,_0x2d5687[_0x1dac('0x3d')]);return _0x40f666['getDescriptions'](_0x54ba36);}})['then'](function(_0xbc552f){if(_0xbc552f){_0x350493=_0xbc552f[_0x1dac('0x33')];if(!_0x2d5687['query'][_0x1dac('0x49')](_0x1dac('0x34'))){_0x54ba36[_0x1dac('0x35')]=qs['limit'](_0x2d5687['query'][_0x1dac('0x35')]);_0x54ba36[_0x1dac('0x1a')]=qs['offset'](_0x2d5687[_0x1dac('0x2d')][_0x1dac('0x1a')]);}return _0x40f666['getDescriptions'](_0x54ba36);}})[_0x1dac('0x21')](function(_0x113c0e){if(_0x113c0e){return _0x113c0e?{'count':_0x350493,'rows':_0x113c0e}:null;}})[_0x1dac('0x21')](respondWithResult(_0x3fa0db,null))[_0x1dac('0x42')](handleError(_0x3fa0db,null));};
\ No newline at end of file
+var _0x0089=['findOne','rimraf','request-promise','bluebird','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','status','end','json','limit','undefined','count','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','index','Dynamics365Configuration','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','offset','order','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','options','create','body','update','find','getFields','Dynamics365Field','length','getSubjects','getDescriptions'];(function(_0x426fb9,_0x73b8ed){var _0x2d1760=function(_0x10d531){while(--_0x10d531){_0x426fb9['push'](_0x426fb9['shift']());}};_0x2d1760(++_0x73b8ed);}(_0x0089,0x9f));var _0x9008=function(_0x40e2d6,_0x307f84){_0x40e2d6=_0x40e2d6-0x0;var _0x2f298d=_0x0089[_0x40e2d6];return _0x2f298d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9008('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x9008('0x1'));var moment=require('moment');var BPromise=require(_0x9008('0x2'));var Mustache=require('mustache');var util=require(_0x9008('0x3'));var path=require(_0x9008('0x4'));var sox=require('sox');var csv=require(_0x9008('0x5'));var ejs=require(_0x9008('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9008('0x7'));var squel=require(_0x9008('0x8'));var crypto=require(_0x9008('0x9'));var jsforce=require(_0x9008('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x9008('0x5'));var querystring=require(_0x9008('0xb'));var Papa=require(_0x9008('0xc'));var Redis=require(_0x9008('0xd'));var authService=require(_0x9008('0xe'));var qs=require(_0x9008('0xf'));var as=require(_0x9008('0x10'));var hardwareService=require(_0x9008('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0x9008('0x12'));var config=require(_0x9008('0x13'));var licenseUtil=require(_0x9008('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4eaffc,_0x723a5f){_0x723a5f=_0x723a5f||0xcc;return function(_0x336364){if(_0x336364){return _0x4eaffc['sendStatus'](_0x723a5f);}return _0x4eaffc[_0x9008('0x15')](_0x723a5f)[_0x9008('0x16')]();};}function respondWithResult(_0x530ef7,_0x5dfef2){_0x5dfef2=_0x5dfef2||0xc8;return function(_0x5b3a61){if(_0x5b3a61){return _0x530ef7[_0x9008('0x15')](_0x5dfef2)[_0x9008('0x17')](_0x5b3a61);}};}function respondWithFilteredResult(_0x3f0509,_0x2296ba){return function(_0x4c3b70){if(_0x4c3b70){var _0x537dd0=typeof _0x2296ba['offset']==='undefined'&&typeof _0x2296ba[_0x9008('0x18')]===_0x9008('0x19');var _0x349a29=_0x4c3b70['count'];var _0x42ab35=_0x537dd0?0x0:_0x2296ba['offset'];var _0x1c6657=_0x537dd0?_0x4c3b70[_0x9008('0x1a')]:_0x2296ba['offset']+_0x2296ba[_0x9008('0x18')];var _0x2969ec;if(_0x1c6657>=_0x349a29){_0x1c6657=_0x349a29;_0x2969ec=0xc8;}else{_0x2969ec=0xce;}_0x3f0509[_0x9008('0x15')](_0x2969ec);return _0x3f0509['set'](_0x9008('0x1b'),_0x42ab35+'-'+_0x1c6657+'/'+_0x349a29)[_0x9008('0x17')](_0x4c3b70);}return null;};}function patchUpdates(_0x5367c1){return function(_0x4ab4c7){try{jsonpatch[_0x9008('0x1c')](_0x4ab4c7,_0x5367c1,!![]);}catch(_0x2c4278){return BPromise[_0x9008('0x1d')](_0x2c4278);}return _0x4ab4c7[_0x9008('0x1e')]();};}function saveUpdates(_0x3c4ecc,_0x48ee80){return function(_0x339e18){if(_0x339e18){return _0x339e18['update'](_0x3c4ecc)[_0x9008('0x1f')](function(_0x400af5){return _0x400af5;});}return null;};}function removeEntity(_0x1412bc,_0x1b1b9c){return function(_0x6c4543){if(_0x6c4543){return _0x6c4543[_0x9008('0x20')]()[_0x9008('0x1f')](function(){_0x1412bc[_0x9008('0x15')](0xcc)[_0x9008('0x16')]();});}};}function handleEntityNotFound(_0xdfb36a,_0x597fd9){return function(_0x1a50f2){if(!_0x1a50f2){_0xdfb36a['sendStatus'](0x194);}return _0x1a50f2;};}function handleError(_0x4b2045,_0x2a5c2d){_0x2a5c2d=_0x2a5c2d||0x1f4;return function(_0x51582d){logger[_0x9008('0x21')](_0x51582d[_0x9008('0x22')]);if(_0x51582d[_0x9008('0x23')]){delete _0x51582d['name'];}_0x4b2045[_0x9008('0x15')](_0x2a5c2d)[_0x9008('0x24')](_0x51582d);};}exports[_0x9008('0x25')]=function(_0x51013f,_0x19858c){var _0x30a51b={},_0x47d1f3={},_0x57f8ce={'count':0x0,'rows':[]};var _0x4ff156=_['map'](db[_0x9008('0x26')][_0x9008('0x27')],function(_0xacffa9){return{'name':_0xacffa9[_0x9008('0x28')],'type':_0xacffa9[_0x9008('0x29')][_0x9008('0x2a')]};});_0x47d1f3[_0x9008('0x2b')]=_[_0x9008('0x2c')](_0x4ff156,'name');_0x47d1f3[_0x9008('0x2d')]=_[_0x9008('0x2e')](_0x51013f[_0x9008('0x2d')]);_0x47d1f3['filters']=_[_0x9008('0x2f')](_0x47d1f3['model'],_0x47d1f3['query']);_0x30a51b[_0x9008('0x30')]=_[_0x9008('0x2f')](_0x47d1f3[_0x9008('0x2b')],qs[_0x9008('0x31')](_0x51013f[_0x9008('0x2d')][_0x9008('0x31')]));_0x30a51b['attributes']=_0x30a51b[_0x9008('0x30')]['length']?_0x30a51b[_0x9008('0x30')]:_0x47d1f3[_0x9008('0x2b')];if(!_0x51013f[_0x9008('0x2d')][_0x9008('0x32')](_0x9008('0x33'))){_0x30a51b[_0x9008('0x18')]=qs[_0x9008('0x18')](_0x51013f['query'][_0x9008('0x18')]);_0x30a51b[_0x9008('0x34')]=qs[_0x9008('0x34')](_0x51013f[_0x9008('0x2d')][_0x9008('0x34')]);}_0x30a51b[_0x9008('0x35')]=qs[_0x9008('0x36')](_0x51013f[_0x9008('0x2d')]['sort']);_0x30a51b[_0x9008('0x37')]=qs[_0x9008('0x38')](_[_0x9008('0x39')](_0x51013f[_0x9008('0x2d')],_0x47d1f3['filters']),_0x4ff156);if(_0x51013f['query'][_0x9008('0x3a')]){_0x30a51b['where']=_[_0x9008('0x3b')](_0x30a51b[_0x9008('0x37')],{'$or':_[_0x9008('0x2c')](_0x4ff156,function(_0x21a3fa){if(_0x21a3fa[_0x9008('0x29')]!==_0x9008('0x3c')){var _0x87d049={};_0x87d049[_0x21a3fa['name']]={'$like':'%'+_0x51013f[_0x9008('0x2d')][_0x9008('0x3a')]+'%'};return _0x87d049;}})});}_0x30a51b=_[_0x9008('0x3b')]({},_0x30a51b,_0x51013f['options']);var _0x47d514={'where':_0x30a51b['where']};return db[_0x9008('0x26')][_0x9008('0x1a')](_0x47d514)['then'](function(_0x537ba0){_0x57f8ce[_0x9008('0x1a')]=_0x537ba0;if(_0x51013f[_0x9008('0x2d')][_0x9008('0x3d')]){_0x30a51b[_0x9008('0x3e')]=[{'all':!![]}];}return db[_0x9008('0x26')][_0x9008('0x3f')](_0x30a51b);})[_0x9008('0x1f')](function(_0x2097be){_0x57f8ce[_0x9008('0x40')]=_0x2097be;return _0x57f8ce;})[_0x9008('0x1f')](respondWithFilteredResult(_0x19858c,_0x30a51b))[_0x9008('0x41')](handleError(_0x19858c,null));};exports[_0x9008('0x42')]=function(_0x1fba4c,_0x3ceb4a){var _0x18d016={'raw':![],'where':{'id':_0x1fba4c[_0x9008('0x43')]['id']}},_0xa38257={};_0xa38257[_0x9008('0x2b')]=_[_0x9008('0x2e')](db['Dynamics365Configuration'][_0x9008('0x27')]);_0xa38257[_0x9008('0x2d')]=_[_0x9008('0x2e')](_0x1fba4c[_0x9008('0x2d')]);_0xa38257['filters']=_[_0x9008('0x2f')](_0xa38257[_0x9008('0x2b')],_0xa38257[_0x9008('0x2d')]);_0x18d016['attributes']=_[_0x9008('0x2f')](_0xa38257[_0x9008('0x2b')],qs[_0x9008('0x31')](_0x1fba4c['query'][_0x9008('0x31')]));_0x18d016[_0x9008('0x30')]=_0x18d016[_0x9008('0x30')]['length']?_0x18d016['attributes']:_0xa38257[_0x9008('0x2b')];if(_0x1fba4c[_0x9008('0x2d')][_0x9008('0x3d')]){_0x18d016['include']=[{'all':!![]}];}_0x18d016=_[_0x9008('0x3b')]({},_0x18d016,_0x1fba4c[_0x9008('0x44')]);return db[_0x9008('0x26')]['find'](_0x18d016)[_0x9008('0x1f')](handleEntityNotFound(_0x3ceb4a,null))[_0x9008('0x1f')](respondWithResult(_0x3ceb4a,null))[_0x9008('0x41')](handleError(_0x3ceb4a,null));};exports[_0x9008('0x45')]=function(_0x3e0955,_0x5a0e56){return db[_0x9008('0x26')][_0x9008('0x45')](_0x3e0955[_0x9008('0x46')],{})['then'](respondWithResult(_0x5a0e56,0xc9))[_0x9008('0x41')](handleError(_0x5a0e56,null));};exports[_0x9008('0x47')]=function(_0x1d2500,_0x218e5c){if(_0x1d2500['body']['id']){delete _0x1d2500[_0x9008('0x46')]['id'];}return db[_0x9008('0x26')][_0x9008('0x48')]({'where':{'id':_0x1d2500[_0x9008('0x43')]['id']}})[_0x9008('0x1f')](handleEntityNotFound(_0x218e5c,null))[_0x9008('0x1f')](saveUpdates(_0x1d2500['body'],null))['then'](respondWithResult(_0x218e5c,null))[_0x9008('0x41')](handleError(_0x218e5c,null));};exports[_0x9008('0x20')]=function(_0x4da909,_0xb09535){return db[_0x9008('0x26')][_0x9008('0x48')]({'where':{'id':_0x4da909['params']['id']}})['then'](handleEntityNotFound(_0xb09535,null))['then'](removeEntity(_0xb09535,null))[_0x9008('0x41')](handleError(_0xb09535,null));};exports[_0x9008('0x49')]=function(_0x45b0a7,_0x1b5c64,_0x3c70ed){var _0x3b2971={};var _0x26fb26={};var _0x3cb4fd;var _0x340f3a;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x45b0a7[_0x9008('0x43')]['id']}})[_0x9008('0x1f')](handleEntityNotFound(_0x1b5c64,null))['then'](function(_0x2e05be){if(_0x2e05be){_0x3cb4fd=_0x2e05be;_0x26fb26[_0x9008('0x2b')]=_[_0x9008('0x2e')](db[_0x9008('0x4a')][_0x9008('0x27')]);_0x26fb26['query']=_[_0x9008('0x2e')](_0x45b0a7[_0x9008('0x2d')]);_0x26fb26[_0x9008('0x38')]=_['intersection'](_0x26fb26[_0x9008('0x2b')],_0x26fb26['query']);_0x3b2971[_0x9008('0x30')]=_[_0x9008('0x2f')](_0x26fb26[_0x9008('0x2b')],qs[_0x9008('0x31')](_0x45b0a7[_0x9008('0x2d')][_0x9008('0x31')]));_0x3b2971[_0x9008('0x30')]=_0x3b2971[_0x9008('0x30')]['length']?_0x3b2971['attributes']:_0x26fb26[_0x9008('0x2b')];_0x3b2971[_0x9008('0x35')]=qs[_0x9008('0x36')](_0x45b0a7['query']['sort']);_0x3b2971[_0x9008('0x37')]=qs[_0x9008('0x38')](_[_0x9008('0x39')](_0x45b0a7['query'],_0x26fb26[_0x9008('0x38')]));if(_0x45b0a7[_0x9008('0x2d')][_0x9008('0x3a')]){_0x3b2971[_0x9008('0x37')]=_[_0x9008('0x3b')](_0x3b2971[_0x9008('0x37')],{'$or':_['map'](_0x3b2971[_0x9008('0x30')],function(_0x312940){var _0x3fad82={};_0x3fad82[_0x312940]={'$like':'%'+_0x45b0a7[_0x9008('0x2d')][_0x9008('0x3a')]+'%'};return _0x3fad82;})});}_0x3b2971=_['merge']({},_0x3b2971,_0x45b0a7['options']);return _0x3cb4fd[_0x9008('0x49')](_0x3b2971);}})['then'](function(_0x5193a6){if(_0x5193a6){_0x340f3a=_0x5193a6[_0x9008('0x4b')];if(!_0x45b0a7[_0x9008('0x2d')]['hasOwnProperty'](_0x9008('0x33'))){_0x3b2971[_0x9008('0x18')]=qs['limit'](_0x45b0a7[_0x9008('0x2d')][_0x9008('0x18')]);_0x3b2971['offset']=qs['offset'](_0x45b0a7[_0x9008('0x2d')][_0x9008('0x34')]);}return _0x3cb4fd[_0x9008('0x49')](_0x3b2971);}})[_0x9008('0x1f')](function(_0x28d5a3){if(_0x28d5a3){return _0x28d5a3?{'count':_0x340f3a,'rows':_0x28d5a3}:null;}})[_0x9008('0x1f')](respondWithResult(_0x1b5c64,null))['catch'](handleError(_0x1b5c64,null));};exports['getSubjects']=function(_0x3e5722,_0x29ecdc,_0x5064a3){var _0x446175={};var _0x45c51b={};var _0x105b24;var _0x5ec2c8;return db[_0x9008('0x26')]['findOne']({'where':{'id':_0x3e5722[_0x9008('0x43')]['id']}})[_0x9008('0x1f')](handleEntityNotFound(_0x29ecdc,null))[_0x9008('0x1f')](function(_0x5d507a){if(_0x5d507a){_0x105b24=_0x5d507a;_0x45c51b[_0x9008('0x2b')]=_[_0x9008('0x2e')](db['Dynamics365Field'][_0x9008('0x27')]);_0x45c51b[_0x9008('0x2d')]=_['keys'](_0x3e5722[_0x9008('0x2d')]);_0x45c51b[_0x9008('0x38')]=_[_0x9008('0x2f')](_0x45c51b['model'],_0x45c51b[_0x9008('0x2d')]);_0x446175[_0x9008('0x30')]=_[_0x9008('0x2f')](_0x45c51b['model'],qs[_0x9008('0x31')](_0x3e5722[_0x9008('0x2d')][_0x9008('0x31')]));_0x446175[_0x9008('0x30')]=_0x446175[_0x9008('0x30')][_0x9008('0x4b')]?_0x446175[_0x9008('0x30')]:_0x45c51b['model'];_0x446175[_0x9008('0x35')]=qs[_0x9008('0x36')](_0x3e5722[_0x9008('0x2d')]['sort']);_0x446175[_0x9008('0x37')]=qs[_0x9008('0x38')](_['pick'](_0x3e5722[_0x9008('0x2d')],_0x45c51b[_0x9008('0x38')]));if(_0x3e5722['query']['filter']){_0x446175['where']=_[_0x9008('0x3b')](_0x446175[_0x9008('0x37')],{'$or':_[_0x9008('0x2c')](_0x446175[_0x9008('0x30')],function(_0x41eefa){var _0x5d708c={};_0x5d708c[_0x41eefa]={'$like':'%'+_0x3e5722[_0x9008('0x2d')]['filter']+'%'};return _0x5d708c;})});}_0x446175=_[_0x9008('0x3b')]({},_0x446175,_0x3e5722[_0x9008('0x44')]);return _0x105b24[_0x9008('0x4c')](_0x446175);}})[_0x9008('0x1f')](function(_0x5a699c){if(_0x5a699c){_0x5ec2c8=_0x5a699c[_0x9008('0x4b')];if(!_0x3e5722[_0x9008('0x2d')][_0x9008('0x32')](_0x9008('0x33'))){_0x446175[_0x9008('0x18')]=qs[_0x9008('0x18')](_0x3e5722[_0x9008('0x2d')][_0x9008('0x18')]);_0x446175[_0x9008('0x34')]=qs[_0x9008('0x34')](_0x3e5722['query']['offset']);}return _0x105b24['getSubjects'](_0x446175);}})[_0x9008('0x1f')](function(_0xf5d973){if(_0xf5d973){return _0xf5d973?{'count':_0x5ec2c8,'rows':_0xf5d973}:null;}})['then'](respondWithResult(_0x29ecdc,null))[_0x9008('0x41')](handleError(_0x29ecdc,null));};exports[_0x9008('0x4d')]=function(_0x4abf1e,_0x20ae46,_0x19c6c0){var _0x17374e={};var _0x3a4ca7={};var _0x3ad6da;var _0x60d5d8;return db[_0x9008('0x26')][_0x9008('0x4e')]({'where':{'id':_0x4abf1e['params']['id']}})[_0x9008('0x1f')](handleEntityNotFound(_0x20ae46,null))['then'](function(_0x121314){if(_0x121314){_0x3ad6da=_0x121314;_0x3a4ca7[_0x9008('0x2b')]=_[_0x9008('0x2e')](db[_0x9008('0x4a')][_0x9008('0x27')]);_0x3a4ca7['query']=_[_0x9008('0x2e')](_0x4abf1e[_0x9008('0x2d')]);_0x3a4ca7[_0x9008('0x38')]=_[_0x9008('0x2f')](_0x3a4ca7[_0x9008('0x2b')],_0x3a4ca7['query']);_0x17374e['attributes']=_[_0x9008('0x2f')](_0x3a4ca7[_0x9008('0x2b')],qs[_0x9008('0x31')](_0x4abf1e['query'][_0x9008('0x31')]));_0x17374e['attributes']=_0x17374e['attributes']['length']?_0x17374e[_0x9008('0x30')]:_0x3a4ca7[_0x9008('0x2b')];_0x17374e[_0x9008('0x35')]=qs[_0x9008('0x36')](_0x4abf1e[_0x9008('0x2d')]['sort']);_0x17374e[_0x9008('0x37')]=qs[_0x9008('0x38')](_[_0x9008('0x39')](_0x4abf1e[_0x9008('0x2d')],_0x3a4ca7[_0x9008('0x38')]));if(_0x4abf1e[_0x9008('0x2d')][_0x9008('0x3a')]){_0x17374e['where']=_[_0x9008('0x3b')](_0x17374e[_0x9008('0x37')],{'$or':_[_0x9008('0x2c')](_0x17374e['attributes'],function(_0x53f6f0){var _0x3dd4d1={};_0x3dd4d1[_0x53f6f0]={'$like':'%'+_0x4abf1e[_0x9008('0x2d')][_0x9008('0x3a')]+'%'};return _0x3dd4d1;})});}_0x17374e=_['merge']({},_0x17374e,_0x4abf1e['options']);return _0x3ad6da[_0x9008('0x4d')](_0x17374e);}})[_0x9008('0x1f')](function(_0x120912){if(_0x120912){_0x60d5d8=_0x120912[_0x9008('0x4b')];if(!_0x4abf1e['query']['hasOwnProperty'](_0x9008('0x33'))){_0x17374e[_0x9008('0x18')]=qs['limit'](_0x4abf1e['query'][_0x9008('0x18')]);_0x17374e[_0x9008('0x34')]=qs[_0x9008('0x34')](_0x4abf1e[_0x9008('0x2d')][_0x9008('0x34')]);}return _0x3ad6da['getDescriptions'](_0x17374e);}})[_0x9008('0x1f')](function(_0x9b5922){if(_0x9b5922){return _0x9b5922?{'count':_0x60d5d8,'rows':_0x9b5922}:null;}})[_0x9008('0x1f')](respondWithResult(_0x20ae46,null))[_0x9008('0x41')](handleError(_0x20ae46,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa88=['util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./intDynamics365Configuration.attributes','Dynamics365Configuration','int_dynamics365_configurations','lodash'];(function(_0xc260ce,_0x2311a5){var _0xe805ba=function(_0x9fe6e6){while(--_0x9fe6e6){_0xc260ce['push'](_0xc260ce['shift']());}};_0xe805ba(++_0x2311a5);}(_0xaa88,0x137));var _0x8aa8=function(_0x508685,_0x9f94af){_0x508685=_0x508685-0x0;var _0x976a76=_0xaa88[_0x508685];return _0x976a76;};'use strict';var _=require(_0x8aa8('0x0'));var util=require(_0x8aa8('0x1'));var logger=require(_0x8aa8('0x2'))(_0x8aa8('0x3'));var moment=require('moment');var BPromise=require(_0x8aa8('0x4'));var rp=require(_0x8aa8('0x5'));var fs=require('fs');var path=require(_0x8aa8('0x6'));var rimraf=require(_0x8aa8('0x7'));var config=require(_0x8aa8('0x8'));var attributes=require(_0x8aa8('0x9'));module['exports']=function(_0x5bda0d,_0x460042){return _0x5bda0d['define'](_0x8aa8('0xa'),attributes,{'tableName':_0x8aa8('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4b84=['moment','path','rimraf','../../config/environment','Dynamics365Configuration','lodash','util'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x4b84,0x1cc));var _0x44b8=function(_0x2e249d,_0x41b7e7){_0x2e249d=_0x2e249d-0x0;var _0x1faa37=_0x4b84[_0x2e249d];return _0x1faa37;};'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 _0x1790=['request','then','info','Dynamics365Configuration,\x20%s,\x20%s','debug','Dynamics365Configuration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','util','randomstring','../../mysqldb','../../config/utils','../../config/logger','client','http'];(function(_0x2c041d,_0xb1ebe4){var _0x3d159d=function(_0x2e763a){while(--_0x2e763a){_0x2c041d['push'](_0x2c041d['shift']());}};_0x3d159d(++_0xb1ebe4);}(_0x1790,0xad));var _0x0179=function(_0x5abc98,_0x159198){_0x5abc98=_0x5abc98-0x0;var _0x459166=_0x1790[_0x5abc98];return _0x459166;};'use strict';var _=require('lodash');var util=require(_0x0179('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x0179('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0179('0x2'))['db'];var utils=require(_0x0179('0x3'));var logger=require(_0x0179('0x4'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x0179('0x5')][_0x0179('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x251298,_0x291072,_0x405614){return new BPromise(function(_0x38ad3e,_0x429753){return client[_0x0179('0x7')](_0x251298,_0x405614)[_0x0179('0x8')](function(_0x297474){logger[_0x0179('0x9')](_0x0179('0xa'),_0x291072,'request\x20sent');logger[_0x0179('0xb')](_0x0179('0xc'),_0x291072,_0x0179('0xd'),JSON[_0x0179('0xe')](_0x297474));if(_0x297474[_0x0179('0xf')]){if(_0x297474[_0x0179('0xf')][_0x0179('0x10')]===0x1f4){logger[_0x0179('0xf')](_0x0179('0xa'),_0x291072,_0x297474[_0x0179('0xf')][_0x0179('0x11')]);return _0x429753(_0x297474[_0x0179('0xf')]['message']);}logger[_0x0179('0xf')]('Dynamics365Configuration,\x20%s,\x20%s',_0x291072,_0x297474[_0x0179('0xf')][_0x0179('0x11')]);return _0x38ad3e(_0x297474[_0x0179('0xf')][_0x0179('0x11')]);}else{logger[_0x0179('0x9')](_0x0179('0xa'),_0x291072,_0x0179('0xd'));_0x38ad3e(_0x297474[_0x0179('0x12')]['message']);}})[_0x0179('0x13')](function(_0x60e7ed){logger[_0x0179('0xf')](_0x0179('0xa'),_0x291072,_0x60e7ed);_0x429753(_0x60e7ed);});});}
\ No newline at end of file
+var _0xb669=['bluebird','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','Dynamics365Configuration,\x20%s,\x20%s','debug','Dynamics365Configuration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','moment'];(function(_0x5519c4,_0x270f91){var _0x2c1c3=function(_0x28178c){while(--_0x28178c){_0x5519c4['push'](_0x5519c4['shift']());}};_0x2c1c3(++_0x270f91);}(_0xb669,0x15d));var _0x9b66=function(_0x4a0165,_0x534c79){_0x4a0165=_0x4a0165-0x0;var _0x1c597c=_0xb669[_0x4a0165];return _0x1c597c;};'use strict';var _=require(_0x9b66('0x0'));var util=require(_0x9b66('0x1'));var moment=require(_0x9b66('0x2'));var BPromise=require(_0x9b66('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9b66('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x9b66('0x5'))(_0x9b66('0x6'));var config=require(_0x9b66('0x7'));var jayson=require(_0x9b66('0x8'));var client=jayson['client'][_0x9b66('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1843da,_0x165141,_0x8c789a){return new BPromise(function(_0x332305,_0x465269){return client[_0x9b66('0xa')](_0x1843da,_0x8c789a)[_0x9b66('0xb')](function(_0x32ca24){logger[_0x9b66('0xc')](_0x9b66('0xd'),_0x165141,'request\x20sent');logger[_0x9b66('0xe')](_0x9b66('0xf'),_0x165141,_0x9b66('0x10'),JSON[_0x9b66('0x11')](_0x32ca24));if(_0x32ca24['error']){if(_0x32ca24[_0x9b66('0x12')][_0x9b66('0x13')]===0x1f4){logger['error'](_0x9b66('0xd'),_0x165141,_0x32ca24[_0x9b66('0x12')]['message']);return _0x465269(_0x32ca24['error'][_0x9b66('0x14')]);}logger[_0x9b66('0x12')](_0x9b66('0xd'),_0x165141,_0x32ca24['error'][_0x9b66('0x14')]);return _0x332305(_0x32ca24['error']['message']);}else{logger[_0x9b66('0xc')](_0x9b66('0xd'),_0x165141,_0x9b66('0x10'));_0x332305(_0x32ca24['result'][_0x9b66('0x14')]);}})[_0x9b66('0x15')](function(_0x3971c9){logger['error']('Dynamics365Configuration,\x20%s,\x20%s',_0x165141,_0x3971c9);_0x465269(_0x3971c9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf07b=['create','delete','destroy','multer','util','express','Router','fs-extra','../../components/auth/service','get','/:id','isAuthenticated'];(function(_0xc28ecc,_0x5949b1){var _0x4d2e38=function(_0x76a3c7){while(--_0x76a3c7){_0xc28ecc['push'](_0xc28ecc['shift']());}};_0x4d2e38(++_0x5949b1);}(_0xf07b,0x177));var _0xbf07=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0xf07b[_0xfae23b];return _0x200640;};'use strict';var multer=require(_0xbf07('0x0'));var util=require(_0xbf07('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xbf07('0x2'));var router=express[_0xbf07('0x3')]();var fs_extra=require(_0xbf07('0x4'));var auth=require(_0xbf07('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./intDynamics365Field.controller');router[_0xbf07('0x6')]('/',auth['isAuthenticated'](),controller['index']);router[_0xbf07('0x6')](_0xbf07('0x7'),auth['isAuthenticated'](),controller['show']);router['post']('/',auth[_0xbf07('0x8')](),controller[_0xbf07('0x9')]);router['put'](_0xbf07('0x7'),auth[_0xbf07('0x8')](),controller['update']);router[_0xbf07('0xa')]('/:id',auth['isAuthenticated'](),controller[_0xbf07('0xb')]);module['exports']=router;
\ No newline at end of file
+var _0xca62=['path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./intDynamics365Field.controller','isAuthenticated','/:id','show','post','create','delete','exports'];(function(_0x2bb9fa,_0x33f63d){var _0x18a068=function(_0x1b89c3){while(--_0x1b89c3){_0x2bb9fa['push'](_0x2bb9fa['shift']());}};_0x18a068(++_0x33f63d);}(_0xca62,0x1a4));var _0x2ca6=function(_0x2813aa,_0x26cfcb){_0x2813aa=_0x2813aa-0x0;var _0x70e7f4=_0xca62[_0x2813aa];return _0x70e7f4;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x2ca6('0x0'));var timeout=require(_0x2ca6('0x1'));var express=require(_0x2ca6('0x2'));var router=express[_0x2ca6('0x3')]();var fs_extra=require(_0x2ca6('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x2ca6('0x5'));var config=require(_0x2ca6('0x6'));var controller=require(_0x2ca6('0x7'));router['get']('/',auth[_0x2ca6('0x8')](),controller['index']);router['get'](_0x2ca6('0x9'),auth['isAuthenticated'](),controller[_0x2ca6('0xa')]);router[_0x2ca6('0xb')]('/',auth[_0x2ca6('0x8')](),controller[_0x2ca6('0xc')]);router['put'](_0x2ca6('0x9'),auth[_0x2ca6('0x8')](),controller['update']);router[_0x2ca6('0xd')](_0x2ca6('0x9'),auth[_0x2ca6('0x8')](),controller['destroy']);module[_0x2ca6('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ce0=['ENUM','string','variable','customVariable','keyValue','STRING','BOOLEAN'];(function(_0x525798,_0x77a707){var _0x57da9a=function(_0x20837b){while(--_0x20837b){_0x525798['push'](_0x525798['shift']());}};_0x57da9a(++_0x77a707);}(_0x5ce0,0x1c0));var _0x05ce=function(_0x7538c5,_0xa5d8ac){_0x7538c5=_0x7538c5-0x0;var _0x8b56be=_0x5ce0[_0x7538c5];return _0x8b56be;};'use strict';var Sequelize=require('sequelize');module['exports']={'type':{'type':Sequelize[_0x05ce('0x0')](_0x05ce('0x1'),_0x05ce('0x2'),_0x05ce('0x3'),_0x05ce('0x4'),'picklist'),'defaultValue':_0x05ce('0x1')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0x05ce('0x5')]},'keyType':{'type':Sequelize[_0x05ce('0x0')](_0x05ce('0x1'),'variable',_0x05ce('0x3'))},'keyContent':{'type':Sequelize[_0x05ce('0x5')]},'idField':{'type':Sequelize[_0x05ce('0x5')]},'nameField':{'type':Sequelize[_0x05ce('0x5')]},'customField':{'type':Sequelize[_0x05ce('0x6')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x05ce('0x5')]}};
\ No newline at end of file
+var _0x6f86=['STRING','BOOLEAN','sequelize','ENUM','string','variable','customVariable','keyValue'];(function(_0x2642cb,_0x4b917f){var _0xe6e41=function(_0x281676){while(--_0x281676){_0x2642cb['push'](_0x2642cb['shift']());}};_0xe6e41(++_0x4b917f);}(_0x6f86,0xe2));var _0x66f8=function(_0x146a85,_0x529b52){_0x146a85=_0x146a85-0x0;var _0x1b59bf=_0x6f86[_0x146a85];return _0x1b59bf;};'use strict';var Sequelize=require(_0x66f8('0x0'));module['exports']={'type':{'type':Sequelize[_0x66f8('0x1')](_0x66f8('0x2'),_0x66f8('0x3'),_0x66f8('0x4'),_0x66f8('0x5'),'picklist'),'defaultValue':_0x66f8('0x2')},'content':{'type':Sequelize[_0x66f8('0x6')]},'key':{'type':Sequelize[_0x66f8('0x6')]},'keyType':{'type':Sequelize[_0x66f8('0x1')](_0x66f8('0x2'),_0x66f8('0x3'),_0x66f8('0x4'))},'keyContent':{'type':Sequelize[_0x66f8('0x6')]},'idField':{'type':Sequelize[_0x66f8('0x6')]},'nameField':{'type':Sequelize[_0x66f8('0x6')]},'customField':{'type':Sequelize[_0x66f8('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x66f8('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x879a=['set','Content-Range','apply','reject','save','update','then','sendStatus','name','send','map','Dynamics365Field','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','type','VIRTUAL','include','findAll','catch','show','keys','fields','includeAll','options','find','create','body','params','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','end','status','json','offset','undefined','limit','count'];(function(_0x1b2447,_0x1379d2){var _0x35f74e=function(_0x1965f4){while(--_0x1965f4){_0x1b2447['push'](_0x1b2447['shift']());}};_0x35f74e(++_0x1379d2);}(_0x879a,0x156));var _0xa879=function(_0x1be792,_0x2a0b43){_0x1be792=_0x1be792-0x0;var _0x161e67=_0x879a[_0x1be792];return _0x161e67;};'use strict';var emlformat=require(_0xa879('0x0'));var rimraf=require(_0xa879('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa879('0x2'));var rp=require(_0xa879('0x3'));var moment=require(_0xa879('0x4'));var BPromise=require(_0xa879('0x5'));var Mustache=require(_0xa879('0x6'));var util=require(_0xa879('0x7'));var path=require('path');var sox=require(_0xa879('0x8'));var csv=require(_0xa879('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa879('0xa'));var _=require(_0xa879('0xb'));var squel=require(_0xa879('0xc'));var crypto=require(_0xa879('0xd'));var jsforce=require(_0xa879('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xa879('0x9'));var querystring=require(_0xa879('0xf'));var Papa=require(_0xa879('0x10'));var Redis=require(_0xa879('0x11'));var authService=require(_0xa879('0x12'));var qs=require(_0xa879('0x13'));var as=require(_0xa879('0x14'));var hardwareService=require(_0xa879('0x15'));var logger=require(_0xa879('0x16'))(_0xa879('0x17'));var utils=require('../../config/utils');var config=require(_0xa879('0x18'));var licenseUtil=require(_0xa879('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xa826d3,_0x1ffbf5){_0x1ffbf5=_0x1ffbf5||0xcc;return function(_0x1f0da9){if(_0x1f0da9){return _0xa826d3['sendStatus'](_0x1ffbf5);}return _0xa826d3['status'](_0x1ffbf5)[_0xa879('0x1a')]();};}function respondWithResult(_0x24e06c,_0x12e79d){_0x12e79d=_0x12e79d||0xc8;return function(_0x30b7b6){if(_0x30b7b6){return _0x24e06c[_0xa879('0x1b')](_0x12e79d)[_0xa879('0x1c')](_0x30b7b6);}};}function respondWithFilteredResult(_0x447a37,_0x531b8c){return function(_0x2b6491){if(_0x2b6491){var _0x1fe816=typeof _0x531b8c[_0xa879('0x1d')]===_0xa879('0x1e')&&typeof _0x531b8c[_0xa879('0x1f')]===_0xa879('0x1e');var _0x338556=_0x2b6491[_0xa879('0x20')];var _0x3eacef=_0x1fe816?0x0:_0x531b8c[_0xa879('0x1d')];var _0x358a0c=_0x1fe816?_0x2b6491[_0xa879('0x20')]:_0x531b8c['offset']+_0x531b8c[_0xa879('0x1f')];var _0x55d3d8;if(_0x358a0c>=_0x338556){_0x358a0c=_0x338556;_0x55d3d8=0xc8;}else{_0x55d3d8=0xce;}_0x447a37[_0xa879('0x1b')](_0x55d3d8);return _0x447a37[_0xa879('0x21')](_0xa879('0x22'),_0x3eacef+'-'+_0x358a0c+'/'+_0x338556)['json'](_0x2b6491);}return null;};}function patchUpdates(_0x4ddeb9){return function(_0x27fe99){try{jsonpatch[_0xa879('0x23')](_0x27fe99,_0x4ddeb9,!![]);}catch(_0x415059){return BPromise[_0xa879('0x24')](_0x415059);}return _0x27fe99[_0xa879('0x25')]();};}function saveUpdates(_0x5a1b77,_0x3edc95){return function(_0x53850e){if(_0x53850e){return _0x53850e[_0xa879('0x26')](_0x5a1b77)['then'](function(_0x55f4c5){return _0x55f4c5;});}return null;};}function removeEntity(_0x363598,_0x10a101){return function(_0x2ae26d){if(_0x2ae26d){return _0x2ae26d['destroy']()[_0xa879('0x27')](function(){_0x363598[_0xa879('0x1b')](0xcc)[_0xa879('0x1a')]();});}};}function handleEntityNotFound(_0xc327b9,_0x40a3ae){return function(_0x46aad4){if(!_0x46aad4){_0xc327b9[_0xa879('0x28')](0x194);}return _0x46aad4;};}function handleError(_0x2693c9,_0x58fe29){_0x58fe29=_0x58fe29||0x1f4;return function(_0x4c51e1){logger['error'](_0x4c51e1['stack']);if(_0x4c51e1[_0xa879('0x29')]){delete _0x4c51e1[_0xa879('0x29')];}_0x2693c9[_0xa879('0x1b')](_0x58fe29)[_0xa879('0x2a')](_0x4c51e1);};}exports['index']=function(_0x1ed4c9,_0x10b34c){var _0x45ede2={},_0x4b63af={},_0x506535={'count':0x0,'rows':[]};var _0x2077a2=_[_0xa879('0x2b')](db[_0xa879('0x2c')][_0xa879('0x2d')],function(_0x2494ed){return{'name':_0x2494ed[_0xa879('0x2e')],'type':_0x2494ed['type'][_0xa879('0x2f')]};});_0x4b63af[_0xa879('0x30')]=_[_0xa879('0x2b')](_0x2077a2,_0xa879('0x29'));_0x4b63af[_0xa879('0x31')]=_['keys'](_0x1ed4c9['query']);_0x4b63af[_0xa879('0x32')]=_[_0xa879('0x33')](_0x4b63af['model'],_0x4b63af[_0xa879('0x31')]);_0x45ede2[_0xa879('0x34')]=_[_0xa879('0x33')](_0x4b63af['model'],qs['fields'](_0x1ed4c9[_0xa879('0x31')]['fields']));_0x45ede2[_0xa879('0x34')]=_0x45ede2[_0xa879('0x34')][_0xa879('0x35')]?_0x45ede2['attributes']:_0x4b63af['model'];if(!_0x1ed4c9[_0xa879('0x31')][_0xa879('0x36')](_0xa879('0x37'))){_0x45ede2[_0xa879('0x1f')]=qs[_0xa879('0x1f')](_0x1ed4c9[_0xa879('0x31')]['limit']);_0x45ede2[_0xa879('0x1d')]=qs[_0xa879('0x1d')](_0x1ed4c9[_0xa879('0x31')][_0xa879('0x1d')]);}_0x45ede2[_0xa879('0x38')]=qs[_0xa879('0x39')](_0x1ed4c9[_0xa879('0x31')][_0xa879('0x39')]);_0x45ede2[_0xa879('0x3a')]=qs[_0xa879('0x32')](_['pick'](_0x1ed4c9[_0xa879('0x31')],_0x4b63af[_0xa879('0x32')]),_0x2077a2);if(_0x1ed4c9[_0xa879('0x31')][_0xa879('0x3b')]){_0x45ede2[_0xa879('0x3a')]=_[_0xa879('0x3c')](_0x45ede2[_0xa879('0x3a')],{'$or':_[_0xa879('0x2b')](_0x2077a2,function(_0x93cadf){if(_0x93cadf[_0xa879('0x3d')]!==_0xa879('0x3e')){var _0x270d0f={};_0x270d0f[_0x93cadf['name']]={'$like':'%'+_0x1ed4c9[_0xa879('0x31')][_0xa879('0x3b')]+'%'};return _0x270d0f;}})});}_0x45ede2=_[_0xa879('0x3c')]({},_0x45ede2,_0x1ed4c9['options']);var _0x2523df={'where':_0x45ede2[_0xa879('0x3a')]};return db[_0xa879('0x2c')][_0xa879('0x20')](_0x2523df)[_0xa879('0x27')](function(_0x2822e2){_0x506535['count']=_0x2822e2;if(_0x1ed4c9[_0xa879('0x31')]['includeAll']){_0x45ede2[_0xa879('0x3f')]=[{'all':!![]}];}return db[_0xa879('0x2c')][_0xa879('0x40')](_0x45ede2);})[_0xa879('0x27')](function(_0x13bf8b){_0x506535['rows']=_0x13bf8b;return _0x506535;})[_0xa879('0x27')](respondWithFilteredResult(_0x10b34c,_0x45ede2))[_0xa879('0x41')](handleError(_0x10b34c,null));};exports[_0xa879('0x42')]=function(_0x2cf6c9,_0x137034){var _0x4518a2={'raw':!![],'where':{'id':_0x2cf6c9['params']['id']}},_0x24ef5b={};_0x24ef5b[_0xa879('0x30')]=_[_0xa879('0x43')](db[_0xa879('0x2c')][_0xa879('0x2d')]);_0x24ef5b[_0xa879('0x31')]=_[_0xa879('0x43')](_0x2cf6c9[_0xa879('0x31')]);_0x24ef5b['filters']=_[_0xa879('0x33')](_0x24ef5b[_0xa879('0x30')],_0x24ef5b[_0xa879('0x31')]);_0x4518a2['attributes']=_[_0xa879('0x33')](_0x24ef5b['model'],qs[_0xa879('0x44')](_0x2cf6c9[_0xa879('0x31')]['fields']));_0x4518a2[_0xa879('0x34')]=_0x4518a2[_0xa879('0x34')][_0xa879('0x35')]?_0x4518a2['attributes']:_0x24ef5b['model'];if(_0x2cf6c9['query'][_0xa879('0x45')]){_0x4518a2[_0xa879('0x3f')]=[{'all':!![]}];}_0x4518a2=_[_0xa879('0x3c')]({},_0x4518a2,_0x2cf6c9[_0xa879('0x46')]);return db[_0xa879('0x2c')][_0xa879('0x47')](_0x4518a2)[_0xa879('0x27')](handleEntityNotFound(_0x137034,null))[_0xa879('0x27')](respondWithResult(_0x137034,null))[_0xa879('0x41')](handleError(_0x137034,null));};exports[_0xa879('0x48')]=function(_0x1dacdb,_0x310a63){return db[_0xa879('0x2c')]['create'](_0x1dacdb[_0xa879('0x49')],{})['then'](respondWithResult(_0x310a63,0xc9))['catch'](handleError(_0x310a63,null));};exports[_0xa879('0x26')]=function(_0x238f4e,_0x157be2){if(_0x238f4e['body']['id']){delete _0x238f4e[_0xa879('0x49')]['id'];}return db[_0xa879('0x2c')][_0xa879('0x47')]({'where':{'id':_0x238f4e[_0xa879('0x4a')]['id']}})[_0xa879('0x27')](handleEntityNotFound(_0x157be2,null))['then'](saveUpdates(_0x238f4e[_0xa879('0x49')],null))[_0xa879('0x27')](respondWithResult(_0x157be2,null))[_0xa879('0x41')](handleError(_0x157be2,null));};exports['destroy']=function(_0x46a688,_0x37e5d9){return db['Dynamics365Field'][_0xa879('0x47')]({'where':{'id':_0x46a688[_0xa879('0x4a')]['id']}})['then'](handleEntityNotFound(_0x37e5d9,null))['then'](removeEntity(_0x37e5d9,null))[_0xa879('0x41')](handleError(_0x37e5d9,null));};
\ No newline at end of file
+var _0x8ca3=['ejs','fs-extra','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','undefined','limit','count','offset','set','Content-Range','apply','save','update','destroy','then','sendStatus','error','stack','name','send','index','map','Dynamics365Field','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','includeAll','findAll','rows','show','params','include','options','find','catch','create','body','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox'];(function(_0x10985f,_0x8ba2c5){var _0x6fea68=function(_0x1d2a89){while(--_0x1d2a89){_0x10985f['push'](_0x10985f['shift']());}};_0x6fea68(++_0x8ba2c5);}(_0x8ca3,0xdb));var _0x38ca=function(_0x38c632,_0x14e8e6){_0x38c632=_0x38c632-0x0;var _0x12737e=_0x8ca3[_0x38c632];return _0x12737e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x38ca('0x0'));var zipdir=require(_0x38ca('0x1'));var jsonpatch=require(_0x38ca('0x2'));var rp=require(_0x38ca('0x3'));var moment=require(_0x38ca('0x4'));var BPromise=require(_0x38ca('0x5'));var Mustache=require('mustache');var util=require(_0x38ca('0x6'));var path=require(_0x38ca('0x7'));var sox=require(_0x38ca('0x8'));var csv=require('to-csv');var ejs=require(_0x38ca('0x9'));var fs=require('fs');var fs_extra=require(_0x38ca('0xa'));var _=require('lodash');var squel=require(_0x38ca('0xb'));var crypto=require(_0x38ca('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x38ca('0xd'));var toCsv=require(_0x38ca('0xe'));var querystring=require(_0x38ca('0xf'));var Papa=require(_0x38ca('0x10'));var Redis=require(_0x38ca('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x38ca('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x38ca('0x13'))('api');var utils=require(_0x38ca('0x14'));var config=require(_0x38ca('0x15'));var licenseUtil=require(_0x38ca('0x16'));var db=require(_0x38ca('0x17'))['db'];function respondWithStatusCode(_0x14f364,_0x189e27){_0x189e27=_0x189e27||0xcc;return function(_0x5b86f7){if(_0x5b86f7){return _0x14f364['sendStatus'](_0x189e27);}return _0x14f364[_0x38ca('0x18')](_0x189e27)[_0x38ca('0x19')]();};}function respondWithResult(_0x231123,_0x38120a){_0x38120a=_0x38120a||0xc8;return function(_0xa4e969){if(_0xa4e969){return _0x231123['status'](_0x38120a)['json'](_0xa4e969);}};}function respondWithFilteredResult(_0xdfb35c,_0x31fcdd){return function(_0x4cb119){if(_0x4cb119){var _0x18c1ee=typeof _0x31fcdd['offset']===_0x38ca('0x1a')&&typeof _0x31fcdd[_0x38ca('0x1b')]===_0x38ca('0x1a');var _0x19a51a=_0x4cb119['count'];var _0xa02eaf=_0x18c1ee?0x0:_0x31fcdd['offset'];var _0x428d9e=_0x18c1ee?_0x4cb119[_0x38ca('0x1c')]:_0x31fcdd[_0x38ca('0x1d')]+_0x31fcdd['limit'];var _0x5902ed;if(_0x428d9e>=_0x19a51a){_0x428d9e=_0x19a51a;_0x5902ed=0xc8;}else{_0x5902ed=0xce;}_0xdfb35c[_0x38ca('0x18')](_0x5902ed);return _0xdfb35c[_0x38ca('0x1e')](_0x38ca('0x1f'),_0xa02eaf+'-'+_0x428d9e+'/'+_0x19a51a)['json'](_0x4cb119);}return null;};}function patchUpdates(_0x221856){return function(_0x39942b){try{jsonpatch[_0x38ca('0x20')](_0x39942b,_0x221856,!![]);}catch(_0x12a09e){return BPromise['reject'](_0x12a09e);}return _0x39942b[_0x38ca('0x21')]();};}function saveUpdates(_0x293f8d,_0x5cbc66){return function(_0x412de2){if(_0x412de2){return _0x412de2[_0x38ca('0x22')](_0x293f8d)['then'](function(_0x317e03){return _0x317e03;});}return null;};}function removeEntity(_0x29a14c,_0x2f5fbd){return function(_0x33c6ff){if(_0x33c6ff){return _0x33c6ff[_0x38ca('0x23')]()[_0x38ca('0x24')](function(){_0x29a14c[_0x38ca('0x18')](0xcc)[_0x38ca('0x19')]();});}};}function handleEntityNotFound(_0x1491b8,_0x553df7){return function(_0x426199){if(!_0x426199){_0x1491b8[_0x38ca('0x25')](0x194);}return _0x426199;};}function handleError(_0x2f3ce9,_0x4ed592){_0x4ed592=_0x4ed592||0x1f4;return function(_0x5787e1){logger[_0x38ca('0x26')](_0x5787e1[_0x38ca('0x27')]);if(_0x5787e1[_0x38ca('0x28')]){delete _0x5787e1[_0x38ca('0x28')];}_0x2f3ce9[_0x38ca('0x18')](_0x4ed592)[_0x38ca('0x29')](_0x5787e1);};}exports[_0x38ca('0x2a')]=function(_0x597c3a,_0x10fc8d){var _0x5c435f={},_0x460865={},_0x10f569={'count':0x0,'rows':[]};var _0x5460cc=_[_0x38ca('0x2b')](db[_0x38ca('0x2c')][_0x38ca('0x2d')],function(_0x7b2241){return{'name':_0x7b2241[_0x38ca('0x2e')],'type':_0x7b2241[_0x38ca('0x2f')][_0x38ca('0x30')]};});_0x460865[_0x38ca('0x31')]=_['map'](_0x5460cc,'name');_0x460865[_0x38ca('0x32')]=_[_0x38ca('0x33')](_0x597c3a[_0x38ca('0x32')]);_0x460865[_0x38ca('0x34')]=_[_0x38ca('0x35')](_0x460865[_0x38ca('0x31')],_0x460865['query']);_0x5c435f[_0x38ca('0x36')]=_[_0x38ca('0x35')](_0x460865[_0x38ca('0x31')],qs[_0x38ca('0x37')](_0x597c3a[_0x38ca('0x32')][_0x38ca('0x37')]));_0x5c435f[_0x38ca('0x36')]=_0x5c435f[_0x38ca('0x36')][_0x38ca('0x38')]?_0x5c435f[_0x38ca('0x36')]:_0x460865['model'];if(!_0x597c3a['query'][_0x38ca('0x39')](_0x38ca('0x3a'))){_0x5c435f[_0x38ca('0x1b')]=qs[_0x38ca('0x1b')](_0x597c3a['query']['limit']);_0x5c435f['offset']=qs[_0x38ca('0x1d')](_0x597c3a[_0x38ca('0x32')][_0x38ca('0x1d')]);}_0x5c435f[_0x38ca('0x3b')]=qs[_0x38ca('0x3c')](_0x597c3a[_0x38ca('0x32')]['sort']);_0x5c435f[_0x38ca('0x3d')]=qs[_0x38ca('0x34')](_[_0x38ca('0x3e')](_0x597c3a['query'],_0x460865['filters']),_0x5460cc);if(_0x597c3a[_0x38ca('0x32')][_0x38ca('0x3f')]){_0x5c435f[_0x38ca('0x3d')]=_[_0x38ca('0x40')](_0x5c435f[_0x38ca('0x3d')],{'$or':_['map'](_0x5460cc,function(_0x264117){if(_0x264117['type']!=='VIRTUAL'){var _0x4a8425={};_0x4a8425[_0x264117[_0x38ca('0x28')]]={'$like':'%'+_0x597c3a[_0x38ca('0x32')]['filter']+'%'};return _0x4a8425;}})});}_0x5c435f=_[_0x38ca('0x40')]({},_0x5c435f,_0x597c3a['options']);var _0x31bc7e={'where':_0x5c435f[_0x38ca('0x3d')]};return db['Dynamics365Field'][_0x38ca('0x1c')](_0x31bc7e)[_0x38ca('0x24')](function(_0x48410f){_0x10f569['count']=_0x48410f;if(_0x597c3a[_0x38ca('0x32')][_0x38ca('0x41')]){_0x5c435f['include']=[{'all':!![]}];}return db[_0x38ca('0x2c')][_0x38ca('0x42')](_0x5c435f);})['then'](function(_0x2c7cb0){_0x10f569[_0x38ca('0x43')]=_0x2c7cb0;return _0x10f569;})[_0x38ca('0x24')](respondWithFilteredResult(_0x10fc8d,_0x5c435f))['catch'](handleError(_0x10fc8d,null));};exports[_0x38ca('0x44')]=function(_0x1fc8aa,_0x1cd12d){var _0x2d7d4c={'raw':!![],'where':{'id':_0x1fc8aa[_0x38ca('0x45')]['id']}},_0x548780={};_0x548780['model']=_['keys'](db[_0x38ca('0x2c')]['rawAttributes']);_0x548780[_0x38ca('0x32')]=_[_0x38ca('0x33')](_0x1fc8aa['query']);_0x548780[_0x38ca('0x34')]=_[_0x38ca('0x35')](_0x548780[_0x38ca('0x31')],_0x548780[_0x38ca('0x32')]);_0x2d7d4c[_0x38ca('0x36')]=_['intersection'](_0x548780['model'],qs[_0x38ca('0x37')](_0x1fc8aa['query'][_0x38ca('0x37')]));_0x2d7d4c[_0x38ca('0x36')]=_0x2d7d4c[_0x38ca('0x36')]['length']?_0x2d7d4c['attributes']:_0x548780[_0x38ca('0x31')];if(_0x1fc8aa['query'][_0x38ca('0x41')]){_0x2d7d4c[_0x38ca('0x46')]=[{'all':!![]}];}_0x2d7d4c=_[_0x38ca('0x40')]({},_0x2d7d4c,_0x1fc8aa[_0x38ca('0x47')]);return db['Dynamics365Field'][_0x38ca('0x48')](_0x2d7d4c)[_0x38ca('0x24')](handleEntityNotFound(_0x1cd12d,null))['then'](respondWithResult(_0x1cd12d,null))[_0x38ca('0x49')](handleError(_0x1cd12d,null));};exports[_0x38ca('0x4a')]=function(_0x1d7cd6,_0x558229){return db[_0x38ca('0x2c')]['create'](_0x1d7cd6['body'],{})[_0x38ca('0x24')](respondWithResult(_0x558229,0xc9))['catch'](handleError(_0x558229,null));};exports[_0x38ca('0x22')]=function(_0x4995ad,_0x15c1d7){if(_0x4995ad[_0x38ca('0x4b')]['id']){delete _0x4995ad[_0x38ca('0x4b')]['id'];}return db[_0x38ca('0x2c')][_0x38ca('0x48')]({'where':{'id':_0x4995ad[_0x38ca('0x45')]['id']}})['then'](handleEntityNotFound(_0x15c1d7,null))[_0x38ca('0x24')](saveUpdates(_0x4995ad[_0x38ca('0x4b')],null))[_0x38ca('0x24')](respondWithResult(_0x15c1d7,null))[_0x38ca('0x49')](handleError(_0x15c1d7,null));};exports[_0x38ca('0x23')]=function(_0xfb71f4,_0x5681f0){return db[_0x38ca('0x2c')][_0x38ca('0x48')]({'where':{'id':_0xfb71f4['params']['id']}})['then'](handleEntityNotFound(_0x5681f0,null))[_0x38ca('0x24')](removeEntity(_0x5681f0,null))[_0x38ca('0x49')](handleError(_0x5681f0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ace=['./intDynamics365Field.attributes','exports','define','Dynamics365Field','int_dynamics365_fields','dynamics365_unique_index','idField','FieldId','lodash','../../config/logger','request-promise','path','rimraf','../../config/environment'];(function(_0x19817f,_0x3fc964){var _0x4b66e7=function(_0x4f48ef){while(--_0x4f48ef){_0x19817f['push'](_0x19817f['shift']());}};_0x4b66e7(++_0x3fc964);}(_0x5ace,0xcc));var _0xe5ac=function(_0x419550,_0x15cdf1){_0x419550=_0x419550-0x0;var _0x55f9ef=_0x5ace[_0x419550];return _0x55f9ef;};'use strict';var _=require(_0xe5ac('0x0'));var util=require('util');var logger=require(_0xe5ac('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xe5ac('0x2'));var fs=require('fs');var path=require(_0xe5ac('0x3'));var rimraf=require(_0xe5ac('0x4'));var config=require(_0xe5ac('0x5'));var attributes=require(_0xe5ac('0x6'));module[_0xe5ac('0x7')]=function(_0x3de825,_0x703e73){return _0x3de825[_0xe5ac('0x8')](_0xe5ac('0x9'),attributes,{'tableName':_0xe5ac('0xa'),'paranoid':![],'indexes':[{'name':_0xe5ac('0xb'),'fields':[_0xe5ac('0xc'),_0xe5ac('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb100=['../../config/environment','exports','define','int_dynamics365_fields','dynamics365_unique_index','idField','lodash','../../config/logger','moment','bluebird','path','rimraf'];(function(_0x5d00e9,_0x496174){var _0x399693=function(_0x241538){while(--_0x241538){_0x5d00e9['push'](_0x5d00e9['shift']());}};_0x399693(++_0x496174);}(_0xb100,0xde));var _0x0b10=function(_0x87667f,_0x2fa934){_0x87667f=_0x87667f-0x0;var _0x1c162b=_0xb100[_0x87667f];return _0x1c162b;};'use strict';var _=require(_0x0b10('0x0'));var util=require('util');var logger=require(_0x0b10('0x1'))('api');var moment=require(_0x0b10('0x2'));var BPromise=require(_0x0b10('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0b10('0x4'));var rimraf=require(_0x0b10('0x5'));var config=require(_0x0b10('0x6'));var attributes=require('./intDynamics365Field.attributes');module[_0x0b10('0x7')]=function(_0x4b05c0,_0x5394e2){return _0x4b05c0[_0x0b10('0x8')]('Dynamics365Field',attributes,{'tableName':_0x0b10('0x9'),'paranoid':![],'indexes':[{'name':_0x0b10('0xa'),'fields':[_0x0b10('0xb'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b7c=['../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','Dynamics365Field,\x20%s,\x20%s','Dynamics365Field,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result','catch','lodash','util','bluebird','randomstring'];(function(_0x4409e7,_0x307f17){var _0x24c751=function(_0x3a7d33){while(--_0x3a7d33){_0x4409e7['push'](_0x4409e7['shift']());}};_0x24c751(++_0x307f17);}(_0x0b7c,0x110));var _0xc0b7=function(_0x81dcac,_0x8ff7db){_0x81dcac=_0x81dcac-0x0;var _0xc7803b=_0x0b7c[_0x81dcac];return _0xc7803b;};'use strict';var _=require(_0xc0b7('0x0'));var util=require(_0xc0b7('0x1'));var moment=require('moment');var BPromise=require(_0xc0b7('0x2'));var rs=require(_0xc0b7('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc0b7('0x4'))['db'];var utils=require(_0xc0b7('0x5'));var logger=require(_0xc0b7('0x6'))('rpc');var config=require(_0xc0b7('0x7'));var jayson=require(_0xc0b7('0x8'));var client=jayson[_0xc0b7('0x9')][_0xc0b7('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x45c720,_0x8768d7,_0x219a5f){return new BPromise(function(_0x454e18,_0x518524){return client[_0xc0b7('0xb')](_0x45c720,_0x219a5f)[_0xc0b7('0xc')](function(_0xc9f59b){logger[_0xc0b7('0xd')](_0xc0b7('0xe'),_0x8768d7,'request\x20sent');logger['debug'](_0xc0b7('0xf'),_0x8768d7,_0xc0b7('0x10'),JSON[_0xc0b7('0x11')](_0xc9f59b));if(_0xc9f59b['error']){if(_0xc9f59b['error'][_0xc0b7('0x12')]===0x1f4){logger[_0xc0b7('0x13')](_0xc0b7('0xe'),_0x8768d7,_0xc9f59b[_0xc0b7('0x13')][_0xc0b7('0x14')]);return _0x518524(_0xc9f59b[_0xc0b7('0x13')][_0xc0b7('0x14')]);}logger[_0xc0b7('0x13')](_0xc0b7('0xe'),_0x8768d7,_0xc9f59b[_0xc0b7('0x13')][_0xc0b7('0x14')]);return _0x454e18(_0xc9f59b[_0xc0b7('0x13')]['message']);}else{logger[_0xc0b7('0xd')](_0xc0b7('0xe'),_0x8768d7,_0xc0b7('0x10'));_0x454e18(_0xc9f59b[_0xc0b7('0x15')]['message']);}})[_0xc0b7('0x16')](function(_0x2a567f){logger[_0xc0b7('0x13')]('Dynamics365Field,\x20%s,\x20%s',_0x8768d7,_0x2a567f);_0x518524(_0x2a567f);});});}
\ No newline at end of file
+var _0x77b1=['info','Dynamics365Field,\x20%s,\x20%s','request\x20sent','debug','Dynamics365Field,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','jayson/promise','client','http','request','then'];(function(_0x47c110,_0x5f1677){var _0x786b10=function(_0x3cc5cf){while(--_0x3cc5cf){_0x47c110['push'](_0x47c110['shift']());}};_0x786b10(++_0x5f1677);}(_0x77b1,0x16a));var _0x177b=function(_0x534163,_0x4d8b9d){_0x534163=_0x534163-0x0;var _0x223f51=_0x77b1[_0x534163];return _0x223f51;};'use strict';var _=require('lodash');var util=require(_0x177b('0x0'));var moment=require(_0x177b('0x1'));var BPromise=require(_0x177b('0x2'));var rs=require(_0x177b('0x3'));var fs=require('fs');var Redis=require(_0x177b('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x177b('0x5'));var logger=require(_0x177b('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x177b('0x7'));var client=jayson[_0x177b('0x8')][_0x177b('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x6cc81e,_0x4b5e3d,_0x3a5267){return new BPromise(function(_0x1df1d5,_0x2c821b){return client[_0x177b('0xa')](_0x6cc81e,_0x3a5267)[_0x177b('0xb')](function(_0x3d5416){logger[_0x177b('0xc')](_0x177b('0xd'),_0x4b5e3d,_0x177b('0xe'));logger[_0x177b('0xf')](_0x177b('0x10'),_0x4b5e3d,_0x177b('0xe'),JSON['stringify'](_0x3d5416));if(_0x3d5416[_0x177b('0x11')]){if(_0x3d5416[_0x177b('0x11')][_0x177b('0x12')]===0x1f4){logger[_0x177b('0x11')](_0x177b('0xd'),_0x4b5e3d,_0x3d5416[_0x177b('0x11')][_0x177b('0x13')]);return _0x2c821b(_0x3d5416[_0x177b('0x11')][_0x177b('0x13')]);}logger['error']('Dynamics365Field,\x20%s,\x20%s',_0x4b5e3d,_0x3d5416[_0x177b('0x11')][_0x177b('0x13')]);return _0x1df1d5(_0x3d5416[_0x177b('0x11')][_0x177b('0x13')]);}else{logger[_0x177b('0xc')](_0x177b('0xd'),_0x4b5e3d,_0x177b('0xe'));_0x1df1d5(_0x3d5416[_0x177b('0x14')]['message']);}})[_0x177b('0x15')](function(_0x96f894){logger[_0x177b('0x11')](_0x177b('0xd'),_0x4b5e3d,_0x96f894);_0x2c821b(_0x96f894);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb5f=['/:id','/:id/configurations','/:id/fields','getFields','post','create','put','update','delete','destroy','exports','multer','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshdeskAccount.controller','get','isAuthenticated','index'];(function(_0x5134f6,_0x172082){var _0x4d8c4c=function(_0x27a293){while(--_0x27a293){_0x5134f6['push'](_0x5134f6['shift']());}};_0x4d8c4c(++_0x172082);}(_0xeb5f,0xd1));var _0xfeb5=function(_0x4f30b1,_0x2da904){_0x4f30b1=_0x4f30b1-0x0;var _0x54fe34=_0xeb5f[_0x4f30b1];return _0x54fe34;};'use strict';var multer=require(_0xfeb5('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xfeb5('0x1'));var express=require('express');var router=express[_0xfeb5('0x2')]();var fs_extra=require(_0xfeb5('0x3'));var auth=require(_0xfeb5('0x4'));var interaction=require(_0xfeb5('0x5'));var config=require(_0xfeb5('0x6'));var controller=require(_0xfeb5('0x7'));router[_0xfeb5('0x8')]('/',auth[_0xfeb5('0x9')](),controller[_0xfeb5('0xa')]);router[_0xfeb5('0x8')](_0xfeb5('0xb'),auth[_0xfeb5('0x9')](),controller['show']);router[_0xfeb5('0x8')](_0xfeb5('0xc'),auth['isAuthenticated'](),controller['getConfigurations']);router[_0xfeb5('0x8')](_0xfeb5('0xd'),auth['isAuthenticated'](),controller[_0xfeb5('0xe')]);router[_0xfeb5('0xf')]('/',auth[_0xfeb5('0x9')](),controller[_0xfeb5('0x10')]);router[_0xfeb5('0xf')](_0xfeb5('0xc'),auth[_0xfeb5('0x9')](),controller['addConfiguration']);router[_0xfeb5('0x11')](_0xfeb5('0xb'),auth[_0xfeb5('0x9')](),controller[_0xfeb5('0x12')]);router[_0xfeb5('0x13')](_0xfeb5('0xb'),auth[_0xfeb5('0x9')](),controller[_0xfeb5('0x14')]);module[_0xfeb5('0x15')]=router;
\ No newline at end of file
+var _0x76d7=['destroy','exports','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshdeskAccount.controller','get','isAuthenticated','/:id','show','getConfigurations','/:id/fields','getFields','create','post','addConfiguration','delete'];(function(_0x37851f,_0x42a596){var _0x11d455=function(_0x1f68f1){while(--_0x1f68f1){_0x37851f['push'](_0x37851f['shift']());}};_0x11d455(++_0x42a596);}(_0x76d7,0x128));var _0x776d=function(_0x390791,_0x56a05f){_0x390791=_0x390791-0x0;var _0x543bc6=_0x76d7[_0x390791];return _0x543bc6;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x776d('0x0'));var timeout=require(_0x776d('0x1'));var express=require('express');var router=express[_0x776d('0x2')]();var fs_extra=require(_0x776d('0x3'));var auth=require(_0x776d('0x4'));var interaction=require(_0x776d('0x5'));var config=require(_0x776d('0x6'));var controller=require(_0x776d('0x7'));router[_0x776d('0x8')]('/',auth[_0x776d('0x9')](),controller['index']);router[_0x776d('0x8')](_0x776d('0xa'),auth['isAuthenticated'](),controller[_0x776d('0xb')]);router['get']('/:id/configurations',auth[_0x776d('0x9')](),controller[_0x776d('0xc')]);router[_0x776d('0x8')](_0x776d('0xd'),auth[_0x776d('0x9')](),controller[_0x776d('0xe')]);router['post']('/',auth[_0x776d('0x9')](),controller[_0x776d('0xf')]);router[_0x776d('0x10')]('/:id/configurations',auth[_0x776d('0x9')](),controller[_0x776d('0x11')]);router['put'](_0x776d('0xa'),auth[_0x776d('0x9')](),controller['update']);router[_0x776d('0x12')](_0x776d('0xa'),auth[_0x776d('0x9')](),controller[_0x776d('0x13')]);module[_0x776d('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x47c5=['username','remoteUri','sequelize','exports','STRING'];(function(_0x101e7b,_0x4ef05b){var _0x4995c0=function(_0x1a6488){while(--_0x1a6488){_0x101e7b['push'](_0x101e7b['shift']());}};_0x4995c0(++_0x4ef05b);}(_0x47c5,0x165));var _0x547c=function(_0x34be85,_0x1b36ef){_0x34be85=_0x34be85-0x0;var _0x1e55fe=_0x47c5[_0x34be85];return _0x1e55fe;};'use strict';var Sequelize=require(_0x547c('0x0'));module[_0x547c('0x1')]={'name':{'type':Sequelize[_0x547c('0x2')]},'description':{'type':Sequelize[_0x547c('0x2')]},'username':{'type':Sequelize[_0x547c('0x2')],'unique':_0x547c('0x3')},'apiKey':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x547c('0x2')],'unique':_0x547c('0x4')},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
+var _0x77e6=['STRING','username','sequelize','exports'];(function(_0x1147ab,_0x10e72b){var _0x55cb5a=function(_0x364bd6){while(--_0x364bd6){_0x1147ab['push'](_0x1147ab['shift']());}};_0x55cb5a(++_0x10e72b);}(_0x77e6,0x1a6));var _0x677e=function(_0x4bc277,_0x980b87){_0x4bc277=_0x4bc277-0x0;var _0x3d3396=_0x77e6[_0x4bc277];return _0x3d3396;};'use strict';var Sequelize=require(_0x677e('0x0'));module[_0x677e('0x1')]={'name':{'type':Sequelize[_0x677e('0x2')]},'description':{'type':Sequelize[_0x677e('0x2')]},'username':{'type':Sequelize[_0x677e('0x2')],'unique':_0x677e('0x3')},'apiKey':{'type':Sequelize[_0x677e('0x2')]},'remoteUri':{'type':Sequelize[_0x677e('0x2')],'unique':'remoteUri'},'serverUrl':{'type':Sequelize[_0x677e('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc0d6=['ejs','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','end','offset','undefined','count','limit','set','Content-Range','json','save','update','then','destroy','sendStatus','error','stack','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','options','findAll','rows','show','params','keys','includeAll','include','find','create','body','catch','getConfigurations','findOne','FreshdeskConfiguration','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','remoteUri','apiKey','slice','substring','lastIndexOf','GET','%s/%s','api/v2/ticket_fields','format','%s:X','toString','agent','description','priority','group','source','ticket_type','company','remove','includes','custom_text','custom_dropdown','label','default','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv'];(function(_0x3e21f4,_0x43d310){var _0x40fc49=function(_0x54a8f6){while(--_0x54a8f6){_0x3e21f4['push'](_0x3e21f4['shift']());}};_0x40fc49(++_0x43d310);}(_0xc0d6,0x1ce));var _0x6c0d=function(_0x4e52a0,_0x306d64){_0x4e52a0=_0x4e52a0-0x0;var _0x223511=_0xc0d6[_0x4e52a0];return _0x223511;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6c0d('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6c0d('0x1'));var rp=require(_0x6c0d('0x2'));var moment=require(_0x6c0d('0x3'));var BPromise=require(_0x6c0d('0x4'));var Mustache=require(_0x6c0d('0x5'));var util=require(_0x6c0d('0x6'));var path=require(_0x6c0d('0x7'));var sox=require(_0x6c0d('0x8'));var csv=require(_0x6c0d('0x9'));var ejs=require(_0x6c0d('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x6c0d('0xb'));var jsforce=require(_0x6c0d('0xc'));var deskjs=require(_0x6c0d('0xd'));var toCsv=require(_0x6c0d('0x9'));var querystring=require(_0x6c0d('0xe'));var Papa=require('papaparse');var Redis=require(_0x6c0d('0xf'));var authService=require(_0x6c0d('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x6c0d('0x11'));var hardwareService=require(_0x6c0d('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x6c0d('0x13'));var licenseUtil=require(_0x6c0d('0x14'));var db=require(_0x6c0d('0x15'))['db'];var integrations=require(_0x6c0d('0x16'));function respondWithStatusCode(_0x595a86,_0x577815){_0x577815=_0x577815||0xcc;return function(_0x23d509){if(_0x23d509){return _0x595a86['sendStatus'](_0x577815);}return _0x595a86[_0x6c0d('0x17')](_0x577815)[_0x6c0d('0x18')]();};}function respondWithResult(_0x2b9d47,_0x58b841){_0x58b841=_0x58b841||0xc8;return function(_0xa1a683){if(_0xa1a683){return _0x2b9d47[_0x6c0d('0x17')](_0x58b841)['json'](_0xa1a683);}};}function respondWithFilteredResult(_0x51b593,_0x5ecbb2){return function(_0x274d2b){if(_0x274d2b){var _0x40ade3=typeof _0x5ecbb2[_0x6c0d('0x19')]===_0x6c0d('0x1a')&&typeof _0x5ecbb2['limit']==='undefined';var _0x2b1300=_0x274d2b[_0x6c0d('0x1b')];var _0x2f129a=_0x40ade3?0x0:_0x5ecbb2[_0x6c0d('0x19')];var _0x17f4f4=_0x40ade3?_0x274d2b[_0x6c0d('0x1b')]:_0x5ecbb2[_0x6c0d('0x19')]+_0x5ecbb2[_0x6c0d('0x1c')];var _0x5201eb;if(_0x17f4f4>=_0x2b1300){_0x17f4f4=_0x2b1300;_0x5201eb=0xc8;}else{_0x5201eb=0xce;}_0x51b593[_0x6c0d('0x17')](_0x5201eb);return _0x51b593[_0x6c0d('0x1d')](_0x6c0d('0x1e'),_0x2f129a+'-'+_0x17f4f4+'/'+_0x2b1300)[_0x6c0d('0x1f')](_0x274d2b);}return null;};}function patchUpdates(_0x28ebd4){return function(_0x51bc02){try{jsonpatch['apply'](_0x51bc02,_0x28ebd4,!![]);}catch(_0x52ee68){return BPromise['reject'](_0x52ee68);}return _0x51bc02[_0x6c0d('0x20')]();};}function saveUpdates(_0x255999,_0x48dbc7){return function(_0x1396d4){if(_0x1396d4){return _0x1396d4[_0x6c0d('0x21')](_0x255999)[_0x6c0d('0x22')](function(_0xf3395d){return _0xf3395d;});}return null;};}function removeEntity(_0x5822aa,_0x5977ec){return function(_0x11667f){if(_0x11667f){return _0x11667f[_0x6c0d('0x23')]()[_0x6c0d('0x22')](function(){_0x5822aa['status'](0xcc)[_0x6c0d('0x18')]();});}};}function handleEntityNotFound(_0x4ba2c9,_0x39ba91){return function(_0x2250b3){if(!_0x2250b3){_0x4ba2c9[_0x6c0d('0x24')](0x194);}return _0x2250b3;};}function handleError(_0x345090,_0x31fb80){_0x31fb80=_0x31fb80||0x1f4;return function(_0xc45821){logger[_0x6c0d('0x25')](_0xc45821[_0x6c0d('0x26')]);if(_0xc45821[_0x6c0d('0x27')]){delete _0xc45821[_0x6c0d('0x27')];}_0x345090['status'](_0x31fb80)[_0x6c0d('0x28')](_0xc45821);};}exports[_0x6c0d('0x29')]=function(_0x9f549e,_0x18ab2f){var _0x34abaa={},_0x3e06cc={},_0x3295ae={'count':0x0,'rows':[]};var _0x2d2306=_[_0x6c0d('0x2a')](db[_0x6c0d('0x2b')][_0x6c0d('0x2c')],function(_0x3b42b8){return{'name':_0x3b42b8[_0x6c0d('0x2d')],'type':_0x3b42b8[_0x6c0d('0x2e')]['key']};});_0x3e06cc[_0x6c0d('0x2f')]=_['map'](_0x2d2306,_0x6c0d('0x27'));_0x3e06cc[_0x6c0d('0x30')]=_['keys'](_0x9f549e[_0x6c0d('0x30')]);_0x3e06cc[_0x6c0d('0x31')]=_[_0x6c0d('0x32')](_0x3e06cc[_0x6c0d('0x2f')],_0x3e06cc[_0x6c0d('0x30')]);_0x34abaa[_0x6c0d('0x33')]=_[_0x6c0d('0x32')](_0x3e06cc['model'],qs['fields'](_0x9f549e[_0x6c0d('0x30')][_0x6c0d('0x34')]));_0x34abaa['attributes']=_0x34abaa[_0x6c0d('0x33')][_0x6c0d('0x35')]?_0x34abaa[_0x6c0d('0x33')]:_0x3e06cc[_0x6c0d('0x2f')];if(!_0x9f549e[_0x6c0d('0x30')][_0x6c0d('0x36')]('nolimit')){_0x34abaa[_0x6c0d('0x1c')]=qs[_0x6c0d('0x1c')](_0x9f549e[_0x6c0d('0x30')]['limit']);_0x34abaa[_0x6c0d('0x19')]=qs[_0x6c0d('0x19')](_0x9f549e[_0x6c0d('0x30')][_0x6c0d('0x19')]);}_0x34abaa[_0x6c0d('0x37')]=qs['sort'](_0x9f549e[_0x6c0d('0x30')][_0x6c0d('0x38')]);_0x34abaa['where']=qs['filters'](_[_0x6c0d('0x39')](_0x9f549e[_0x6c0d('0x30')],_0x3e06cc[_0x6c0d('0x31')]),_0x2d2306);if(_0x9f549e[_0x6c0d('0x30')][_0x6c0d('0x3a')]){_0x34abaa[_0x6c0d('0x3b')]=_[_0x6c0d('0x3c')](_0x34abaa[_0x6c0d('0x3b')],{'$or':_[_0x6c0d('0x2a')](_0x2d2306,function(_0x5591cd){if(_0x5591cd[_0x6c0d('0x2e')]!==_0x6c0d('0x3d')){var _0x3811f4={};_0x3811f4[_0x5591cd[_0x6c0d('0x27')]]={'$like':'%'+_0x9f549e[_0x6c0d('0x30')][_0x6c0d('0x3a')]+'%'};return _0x3811f4;}})});}_0x34abaa=_[_0x6c0d('0x3c')]({},_0x34abaa,_0x9f549e[_0x6c0d('0x3e')]);var _0x5ba8e6={'where':_0x34abaa[_0x6c0d('0x3b')]};return db[_0x6c0d('0x2b')][_0x6c0d('0x1b')](_0x5ba8e6)[_0x6c0d('0x22')](function(_0xca7c42){_0x3295ae[_0x6c0d('0x1b')]=_0xca7c42;if(_0x9f549e[_0x6c0d('0x30')]['includeAll']){_0x34abaa['include']=[{'all':!![]}];}return db[_0x6c0d('0x2b')][_0x6c0d('0x3f')](_0x34abaa);})[_0x6c0d('0x22')](function(_0xa13aa9){_0x3295ae[_0x6c0d('0x40')]=_0xa13aa9;return _0x3295ae;})[_0x6c0d('0x22')](respondWithFilteredResult(_0x18ab2f,_0x34abaa))['catch'](handleError(_0x18ab2f,null));};exports[_0x6c0d('0x41')]=function(_0x3d2b95,_0x28a3c3){var _0x3e9d3b={'raw':![],'where':{'id':_0x3d2b95[_0x6c0d('0x42')]['id']}},_0x387827={};_0x387827[_0x6c0d('0x2f')]=_[_0x6c0d('0x43')](db[_0x6c0d('0x2b')]['rawAttributes']);_0x387827[_0x6c0d('0x30')]=_[_0x6c0d('0x43')](_0x3d2b95[_0x6c0d('0x30')]);_0x387827[_0x6c0d('0x31')]=_['intersection'](_0x387827[_0x6c0d('0x2f')],_0x387827['query']);_0x3e9d3b[_0x6c0d('0x33')]=_[_0x6c0d('0x32')](_0x387827['model'],qs[_0x6c0d('0x34')](_0x3d2b95['query'][_0x6c0d('0x34')]));_0x3e9d3b[_0x6c0d('0x33')]=_0x3e9d3b[_0x6c0d('0x33')][_0x6c0d('0x35')]?_0x3e9d3b['attributes']:_0x387827['model'];if(_0x3d2b95['query'][_0x6c0d('0x44')]){_0x3e9d3b[_0x6c0d('0x45')]=[{'all':!![]}];}_0x3e9d3b=_[_0x6c0d('0x3c')]({},_0x3e9d3b,_0x3d2b95[_0x6c0d('0x3e')]);return db[_0x6c0d('0x2b')][_0x6c0d('0x46')](_0x3e9d3b)['then'](handleEntityNotFound(_0x28a3c3,null))[_0x6c0d('0x22')](respondWithResult(_0x28a3c3,null))['catch'](handleError(_0x28a3c3,null));};exports[_0x6c0d('0x47')]=function(_0x3d5ae0,_0x18a97b){return db[_0x6c0d('0x2b')][_0x6c0d('0x47')](_0x3d5ae0[_0x6c0d('0x48')],{})[_0x6c0d('0x22')](respondWithResult(_0x18a97b,0xc9))[_0x6c0d('0x49')](handleError(_0x18a97b,null));};exports[_0x6c0d('0x21')]=function(_0x3cc7cd,_0x487773){if(_0x3cc7cd[_0x6c0d('0x48')]['id']){delete _0x3cc7cd[_0x6c0d('0x48')]['id'];}return db['FreshdeskAccount']['find']({'where':{'id':_0x3cc7cd[_0x6c0d('0x42')]['id']}})[_0x6c0d('0x22')](handleEntityNotFound(_0x487773,null))[_0x6c0d('0x22')](saveUpdates(_0x3cc7cd[_0x6c0d('0x48')],null))[_0x6c0d('0x22')](respondWithResult(_0x487773,null))[_0x6c0d('0x49')](handleError(_0x487773,null));};exports[_0x6c0d('0x23')]=function(_0x1743d7,_0x46538b){return db[_0x6c0d('0x2b')]['find']({'where':{'id':_0x1743d7[_0x6c0d('0x42')]['id']}})[_0x6c0d('0x22')](handleEntityNotFound(_0x46538b,null))[_0x6c0d('0x22')](removeEntity(_0x46538b,null))[_0x6c0d('0x49')](handleError(_0x46538b,null));};exports[_0x6c0d('0x4a')]=function(_0x44ce3d,_0x2fa90f,_0x332049){var _0x25840e={};var _0x105ab8={};var _0x3426b1;var _0x35b00f;return db['FreshdeskAccount'][_0x6c0d('0x4b')]({'where':{'id':_0x44ce3d['params']['id']}})[_0x6c0d('0x22')](handleEntityNotFound(_0x2fa90f,null))[_0x6c0d('0x22')](function(_0xba5570){if(_0xba5570){_0x3426b1=_0xba5570;_0x105ab8[_0x6c0d('0x2f')]=_[_0x6c0d('0x43')](db[_0x6c0d('0x4c')]['rawAttributes']);_0x105ab8['query']=_['keys'](_0x44ce3d[_0x6c0d('0x30')]);_0x105ab8[_0x6c0d('0x31')]=_[_0x6c0d('0x32')](_0x105ab8[_0x6c0d('0x2f')],_0x105ab8[_0x6c0d('0x30')]);_0x25840e[_0x6c0d('0x33')]=_['intersection'](_0x105ab8[_0x6c0d('0x2f')],qs[_0x6c0d('0x34')](_0x44ce3d[_0x6c0d('0x30')][_0x6c0d('0x34')]));_0x25840e[_0x6c0d('0x33')]=_0x25840e[_0x6c0d('0x33')][_0x6c0d('0x35')]?_0x25840e['attributes']:_0x105ab8[_0x6c0d('0x2f')];_0x25840e[_0x6c0d('0x37')]=qs[_0x6c0d('0x38')](_0x44ce3d['query']['sort']);_0x25840e[_0x6c0d('0x3b')]=qs['filters'](_[_0x6c0d('0x39')](_0x44ce3d[_0x6c0d('0x30')],_0x105ab8[_0x6c0d('0x31')]));if(_0x44ce3d['query'][_0x6c0d('0x3a')]){_0x25840e[_0x6c0d('0x3b')]=_['merge'](_0x25840e[_0x6c0d('0x3b')],{'$or':_[_0x6c0d('0x2a')](_0x25840e[_0x6c0d('0x33')],function(_0x3091e6){var _0x50dc7a={};_0x50dc7a[_0x3091e6]={'$like':'%'+_0x44ce3d['query']['filter']+'%'};return _0x50dc7a;})});}_0x25840e=_[_0x6c0d('0x3c')]({},_0x25840e,_0x44ce3d[_0x6c0d('0x3e')]);return _0x3426b1[_0x6c0d('0x4a')](_0x25840e);}})[_0x6c0d('0x22')](function(_0x5996f7){if(_0x5996f7){_0x35b00f=_0x5996f7[_0x6c0d('0x35')];if(!_0x44ce3d[_0x6c0d('0x30')][_0x6c0d('0x36')](_0x6c0d('0x4d'))){_0x25840e[_0x6c0d('0x1c')]=qs[_0x6c0d('0x1c')](_0x44ce3d[_0x6c0d('0x30')]['limit']);_0x25840e['offset']=qs[_0x6c0d('0x19')](_0x44ce3d[_0x6c0d('0x30')][_0x6c0d('0x19')]);}return _0x3426b1['getConfigurations'](_0x25840e);}})[_0x6c0d('0x22')](function(_0x4c9a18){if(_0x4c9a18){return _0x4c9a18?{'count':_0x35b00f,'rows':_0x4c9a18}:null;}})[_0x6c0d('0x22')](respondWithResult(_0x2fa90f,null))[_0x6c0d('0x49')](handleError(_0x2fa90f,null));};exports[_0x6c0d('0x4e')]=function(_0x111cf8,_0xe00dea,_0x46fbd7){if(_0x111cf8['body']['id']){delete _0x111cf8[_0x6c0d('0x48')]['id'];}return db['FreshdeskAccount'][_0x6c0d('0x4b')]({'where':{'id':_0x111cf8[_0x6c0d('0x42')]['id']}})['then'](handleEntityNotFound(_0xe00dea,null))[_0x6c0d('0x22')](function(_0x223339){if(_0x223339){_0x111cf8[_0x6c0d('0x48')][_0x6c0d('0x4f')]=_0x223339['id'];_0x111cf8[_0x6c0d('0x48')][_0x6c0d('0x50')]=integrations[_0x6c0d('0x51')](_0x111cf8['body'][_0x6c0d('0x52')],_0x111cf8[_0x6c0d('0x48')][_0x6c0d('0x2e')]);_0x111cf8['body'][_0x6c0d('0x53')]=integrations[_0x6c0d('0x54')](_0x111cf8['body'][_0x6c0d('0x52')],_0x111cf8[_0x6c0d('0x48')][_0x6c0d('0x2e')]);return db[_0x6c0d('0x4c')][_0x6c0d('0x47')](_0x111cf8[_0x6c0d('0x48')],{'include':[{'model':db[_0x6c0d('0x55')],'as':_0x6c0d('0x50')},{'model':db['FreshdeskField'],'as':_0x6c0d('0x53')}]});}return null;})['then'](respondWithResult(_0xe00dea,null))[_0x6c0d('0x49')](handleError(_0xe00dea,null));};exports[_0x6c0d('0x56')]=function(_0x56bafe,_0x59fee6,_0x5ac1e5){var _0x3aba48='';return db[_0x6c0d('0x2b')]['findOne']({'where':{'id':_0x56bafe['params']['id']},'attributes':['id',_0x6c0d('0x57'),_0x6c0d('0x58')]})[_0x6c0d('0x22')](handleEntityNotFound(_0x59fee6,null))[_0x6c0d('0x22')](function(_0x3ee963){if(_0x3ee963){_0x3aba48=_0x3ee963[_0x6c0d('0x57')];var _0x3f764a=_0x3aba48[_0x6c0d('0x59')](-0x1);if(_0x3f764a==='/'){_0x3aba48=_0x3aba48[_0x6c0d('0x5a')](0x0,_0x3aba48[_0x6c0d('0x5b')](_0x3f764a));}return rp({'method':_0x6c0d('0x5c'),'uri':util['format'](_0x6c0d('0x5d'),_0x3aba48,_0x6c0d('0x5e')),'headers':{'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0x6c0d('0x5f')](_0x6c0d('0x60'),_0x3ee963[_0x6c0d('0x58')]))[_0x6c0d('0x61')]('base64'))},'json':!![]});}})[_0x6c0d('0x22')](function(_0x124b88){if(_0x124b88){var _0x3e72b5=['requester','subject',_0x6c0d('0x62'),_0x6c0d('0x63'),_0x6c0d('0x17'),_0x6c0d('0x64'),_0x6c0d('0x65'),_0x6c0d('0x66'),_0x6c0d('0x67'),'group',_0x6c0d('0x68')];_[_0x6c0d('0x69')](_0x124b88,function(_0x1120ae){return _0x3e72b5[_0x6c0d('0x6a')](_0x1120ae['name'])||!_0x1120ae['default']&&_0x1120ae[_0x6c0d('0x2e')]!==_0x6c0d('0x6b')&&_0x1120ae[_0x6c0d('0x2e')]!==_0x6c0d('0x6c');});return{'count':_0x124b88[_0x6c0d('0x35')],'rows':_[_0x6c0d('0x2a')](_0x124b88,function(_0x3df3d3){return{'id':_0x3df3d3[_0x6c0d('0x27')],'name':_0x3df3d3[_0x6c0d('0x6d')],'custom':!_0x3df3d3[_0x6c0d('0x6e')],'options':_0x3df3d3[_0x6c0d('0x6f')]?_[_0x6c0d('0x2a')](_0x3df3d3[_0x6c0d('0x6f')],function(_0x45ab16){return{'name':_[_0x6c0d('0x70')](_0x45ab16),'value':_0x45ab16};}):[]};})};}})[_0x6c0d('0x22')](respondWithResult(_0x59fee6,null))[_0x6c0d('0x49')](function(_0x3780da){var _0x3a9730=_0x56bafe[_0x6c0d('0x30')][_0x6c0d('0x71')]?0x1f4:_0x3780da[_0x6c0d('0x72')]||0x1f4;logger[_0x6c0d('0x25')](_0x6c0d('0x73'),_0x6c0d('0x56'),_0x3a9730,JSON[_0x6c0d('0x74')](_0x3780da));delete _0x3780da[_0x6c0d('0x27')];if(_0x3a9730===0x191){_0x3a9730=0x190;}_0x59fee6[_0x6c0d('0x17')](_0x3a9730)[_0x6c0d('0x28')](_0x56bafe['query']['test']?{'message':_0x6c0d('0x75'),'statusCode':_0x3780da['statusCode']}:_0x3780da);});};
\ No newline at end of file
+var _0xde13=['../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','rawAttributes','fieldName','type','key','map','query','keys','filters','intersection','model','attributes','length','hasOwnProperty','order','where','pick','filter','merge','VIRTUAL','FreshdeskAccount','includeAll','include','findAll','rows','show','params','fields','options','catch','create','body','find','getConfigurations','FreshdeskConfiguration','sort','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','remoteUri','substring','lastIndexOf','GET','format','%s/%s','%s:X','toString','base64','requester','agent','priority','group','source','ticket_type','company','remove','default','custom_text','label','choices','capitalize','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x2b3730,_0x1756f1){var _0x2a373a=function(_0x3c7a44){while(--_0x3c7a44){_0x2b3730['push'](_0x2b3730['shift']());}};_0x2a373a(++_0x1756f1);}(_0xde13,0x146));var _0x3de1=function(_0x500389,_0x352fc9){_0x500389=_0x500389-0x0;var _0x33fbb7=_0xde13[_0x500389];return _0x33fbb7;};'use strict';var emlformat=require(_0x3de1('0x0'));var rimraf=require(_0x3de1('0x1'));var zipdir=require(_0x3de1('0x2'));var jsonpatch=require(_0x3de1('0x3'));var rp=require(_0x3de1('0x4'));var moment=require('moment');var BPromise=require(_0x3de1('0x5'));var Mustache=require(_0x3de1('0x6'));var util=require(_0x3de1('0x7'));var path=require('path');var sox=require(_0x3de1('0x8'));var csv=require('to-csv');var ejs=require(_0x3de1('0x9'));var fs=require('fs');var fs_extra=require(_0x3de1('0xa'));var _=require(_0x3de1('0xb'));var squel=require(_0x3de1('0xc'));var crypto=require('crypto');var jsforce=require(_0x3de1('0xd'));var deskjs=require(_0x3de1('0xe'));var toCsv=require(_0x3de1('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x3de1('0x10'));var qs=require(_0x3de1('0x11'));var as=require(_0x3de1('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3de1('0x13'))(_0x3de1('0x14'));var utils=require(_0x3de1('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x3de1('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x585909,_0x5794ff){_0x5794ff=_0x5794ff||0xcc;return function(_0x41e61b){if(_0x41e61b){return _0x585909[_0x3de1('0x17')](_0x5794ff);}return _0x585909[_0x3de1('0x18')](_0x5794ff)[_0x3de1('0x19')]();};}function respondWithResult(_0x5e4c56,_0x3405f9){_0x3405f9=_0x3405f9||0xc8;return function(_0x5f087b){if(_0x5f087b){return _0x5e4c56[_0x3de1('0x18')](_0x3405f9)['json'](_0x5f087b);}};}function respondWithFilteredResult(_0x48e218,_0x14156f){return function(_0x214f19){if(_0x214f19){var _0x4fe27e=typeof _0x14156f[_0x3de1('0x1a')]===_0x3de1('0x1b')&&typeof _0x14156f[_0x3de1('0x1c')]===_0x3de1('0x1b');var _0x87651a=_0x214f19['count'];var _0x19254b=_0x4fe27e?0x0:_0x14156f['offset'];var _0x1e5a06=_0x4fe27e?_0x214f19[_0x3de1('0x1d')]:_0x14156f['offset']+_0x14156f[_0x3de1('0x1c')];var _0x4819df;if(_0x1e5a06>=_0x87651a){_0x1e5a06=_0x87651a;_0x4819df=0xc8;}else{_0x4819df=0xce;}_0x48e218[_0x3de1('0x18')](_0x4819df);return _0x48e218[_0x3de1('0x1e')](_0x3de1('0x1f'),_0x19254b+'-'+_0x1e5a06+'/'+_0x87651a)['json'](_0x214f19);}return null;};}function patchUpdates(_0x2c4830){return function(_0x4510c6){try{jsonpatch[_0x3de1('0x20')](_0x4510c6,_0x2c4830,!![]);}catch(_0x55c555){return BPromise[_0x3de1('0x21')](_0x55c555);}return _0x4510c6[_0x3de1('0x22')]();};}function saveUpdates(_0x594bdb,_0x4c0c1a){return function(_0x123f7e){if(_0x123f7e){return _0x123f7e[_0x3de1('0x23')](_0x594bdb)[_0x3de1('0x24')](function(_0xcfe95c){return _0xcfe95c;});}return null;};}function removeEntity(_0x242ab0,_0x4370f2){return function(_0x1e074c){if(_0x1e074c){return _0x1e074c[_0x3de1('0x25')]()['then'](function(){_0x242ab0['status'](0xcc)[_0x3de1('0x19')]();});}};}function handleEntityNotFound(_0xa2120f,_0x192532){return function(_0x2c4f40){if(!_0x2c4f40){_0xa2120f[_0x3de1('0x17')](0x194);}return _0x2c4f40;};}function handleError(_0x5c9a13,_0x5985b2){_0x5985b2=_0x5985b2||0x1f4;return function(_0x5b84a0){logger['error'](_0x5b84a0[_0x3de1('0x26')]);if(_0x5b84a0[_0x3de1('0x27')]){delete _0x5b84a0[_0x3de1('0x27')];}_0x5c9a13[_0x3de1('0x18')](_0x5985b2)[_0x3de1('0x28')](_0x5b84a0);};}exports[_0x3de1('0x29')]=function(_0xa5f4a6,_0x1d2721){var _0x898786={},_0x3ec2ee={},_0x3dae9b={'count':0x0,'rows':[]};var _0x19e10b=_['map'](db['FreshdeskAccount'][_0x3de1('0x2a')],function(_0x4e0517){return{'name':_0x4e0517[_0x3de1('0x2b')],'type':_0x4e0517[_0x3de1('0x2c')][_0x3de1('0x2d')]};});_0x3ec2ee['model']=_[_0x3de1('0x2e')](_0x19e10b,_0x3de1('0x27'));_0x3ec2ee[_0x3de1('0x2f')]=_[_0x3de1('0x30')](_0xa5f4a6[_0x3de1('0x2f')]);_0x3ec2ee[_0x3de1('0x31')]=_[_0x3de1('0x32')](_0x3ec2ee[_0x3de1('0x33')],_0x3ec2ee[_0x3de1('0x2f')]);_0x898786[_0x3de1('0x34')]=_[_0x3de1('0x32')](_0x3ec2ee[_0x3de1('0x33')],qs['fields'](_0xa5f4a6['query']['fields']));_0x898786[_0x3de1('0x34')]=_0x898786[_0x3de1('0x34')][_0x3de1('0x35')]?_0x898786[_0x3de1('0x34')]:_0x3ec2ee['model'];if(!_0xa5f4a6['query'][_0x3de1('0x36')]('nolimit')){_0x898786['limit']=qs[_0x3de1('0x1c')](_0xa5f4a6[_0x3de1('0x2f')]['limit']);_0x898786[_0x3de1('0x1a')]=qs[_0x3de1('0x1a')](_0xa5f4a6[_0x3de1('0x2f')][_0x3de1('0x1a')]);}_0x898786[_0x3de1('0x37')]=qs['sort'](_0xa5f4a6[_0x3de1('0x2f')]['sort']);_0x898786[_0x3de1('0x38')]=qs[_0x3de1('0x31')](_[_0x3de1('0x39')](_0xa5f4a6[_0x3de1('0x2f')],_0x3ec2ee[_0x3de1('0x31')]),_0x19e10b);if(_0xa5f4a6[_0x3de1('0x2f')][_0x3de1('0x3a')]){_0x898786[_0x3de1('0x38')]=_[_0x3de1('0x3b')](_0x898786['where'],{'$or':_[_0x3de1('0x2e')](_0x19e10b,function(_0x5aec4e){if(_0x5aec4e[_0x3de1('0x2c')]!==_0x3de1('0x3c')){var _0x425315={};_0x425315[_0x5aec4e[_0x3de1('0x27')]]={'$like':'%'+_0xa5f4a6[_0x3de1('0x2f')][_0x3de1('0x3a')]+'%'};return _0x425315;}})});}_0x898786=_[_0x3de1('0x3b')]({},_0x898786,_0xa5f4a6['options']);var _0x2f2883={'where':_0x898786[_0x3de1('0x38')]};return db[_0x3de1('0x3d')][_0x3de1('0x1d')](_0x2f2883)[_0x3de1('0x24')](function(_0x466397){_0x3dae9b['count']=_0x466397;if(_0xa5f4a6[_0x3de1('0x2f')][_0x3de1('0x3e')]){_0x898786[_0x3de1('0x3f')]=[{'all':!![]}];}return db[_0x3de1('0x3d')][_0x3de1('0x40')](_0x898786);})[_0x3de1('0x24')](function(_0xe256d7){_0x3dae9b[_0x3de1('0x41')]=_0xe256d7;return _0x3dae9b;})[_0x3de1('0x24')](respondWithFilteredResult(_0x1d2721,_0x898786))['catch'](handleError(_0x1d2721,null));};exports[_0x3de1('0x42')]=function(_0xb2f806,_0x59dccc){var _0x573cbb={'raw':![],'where':{'id':_0xb2f806[_0x3de1('0x43')]['id']}},_0x36daa8={};_0x36daa8['model']=_['keys'](db[_0x3de1('0x3d')][_0x3de1('0x2a')]);_0x36daa8['query']=_[_0x3de1('0x30')](_0xb2f806[_0x3de1('0x2f')]);_0x36daa8[_0x3de1('0x31')]=_['intersection'](_0x36daa8[_0x3de1('0x33')],_0x36daa8[_0x3de1('0x2f')]);_0x573cbb[_0x3de1('0x34')]=_['intersection'](_0x36daa8['model'],qs[_0x3de1('0x44')](_0xb2f806[_0x3de1('0x2f')]['fields']));_0x573cbb[_0x3de1('0x34')]=_0x573cbb[_0x3de1('0x34')][_0x3de1('0x35')]?_0x573cbb[_0x3de1('0x34')]:_0x36daa8[_0x3de1('0x33')];if(_0xb2f806[_0x3de1('0x2f')][_0x3de1('0x3e')]){_0x573cbb[_0x3de1('0x3f')]=[{'all':!![]}];}_0x573cbb=_['merge']({},_0x573cbb,_0xb2f806[_0x3de1('0x45')]);return db[_0x3de1('0x3d')]['find'](_0x573cbb)['then'](handleEntityNotFound(_0x59dccc,null))[_0x3de1('0x24')](respondWithResult(_0x59dccc,null))[_0x3de1('0x46')](handleError(_0x59dccc,null));};exports[_0x3de1('0x47')]=function(_0x1f507c,_0x57e9b8){return db['FreshdeskAccount']['create'](_0x1f507c[_0x3de1('0x48')],{})[_0x3de1('0x24')](respondWithResult(_0x57e9b8,0xc9))[_0x3de1('0x46')](handleError(_0x57e9b8,null));};exports['update']=function(_0x9bb512,_0x622a5a){if(_0x9bb512[_0x3de1('0x48')]['id']){delete _0x9bb512[_0x3de1('0x48')]['id'];}return db[_0x3de1('0x3d')]['find']({'where':{'id':_0x9bb512[_0x3de1('0x43')]['id']}})[_0x3de1('0x24')](handleEntityNotFound(_0x622a5a,null))[_0x3de1('0x24')](saveUpdates(_0x9bb512[_0x3de1('0x48')],null))[_0x3de1('0x24')](respondWithResult(_0x622a5a,null))[_0x3de1('0x46')](handleError(_0x622a5a,null));};exports[_0x3de1('0x25')]=function(_0x10015e,_0x4463d3){return db[_0x3de1('0x3d')][_0x3de1('0x49')]({'where':{'id':_0x10015e[_0x3de1('0x43')]['id']}})[_0x3de1('0x24')](handleEntityNotFound(_0x4463d3,null))[_0x3de1('0x24')](removeEntity(_0x4463d3,null))[_0x3de1('0x46')](handleError(_0x4463d3,null));};exports[_0x3de1('0x4a')]=function(_0x37caf9,_0x29c69f,_0x20494a){var _0x38306e={};var _0x33feec={};var _0x5e8105;var _0x3fa07a;return db[_0x3de1('0x3d')]['findOne']({'where':{'id':_0x37caf9[_0x3de1('0x43')]['id']}})[_0x3de1('0x24')](handleEntityNotFound(_0x29c69f,null))[_0x3de1('0x24')](function(_0xecd118){if(_0xecd118){_0x5e8105=_0xecd118;_0x33feec[_0x3de1('0x33')]=_[_0x3de1('0x30')](db[_0x3de1('0x4b')][_0x3de1('0x2a')]);_0x33feec['query']=_[_0x3de1('0x30')](_0x37caf9[_0x3de1('0x2f')]);_0x33feec[_0x3de1('0x31')]=_[_0x3de1('0x32')](_0x33feec[_0x3de1('0x33')],_0x33feec[_0x3de1('0x2f')]);_0x38306e[_0x3de1('0x34')]=_[_0x3de1('0x32')](_0x33feec[_0x3de1('0x33')],qs[_0x3de1('0x44')](_0x37caf9[_0x3de1('0x2f')]['fields']));_0x38306e[_0x3de1('0x34')]=_0x38306e['attributes']['length']?_0x38306e[_0x3de1('0x34')]:_0x33feec[_0x3de1('0x33')];_0x38306e['order']=qs['sort'](_0x37caf9[_0x3de1('0x2f')][_0x3de1('0x4c')]);_0x38306e[_0x3de1('0x38')]=qs[_0x3de1('0x31')](_['pick'](_0x37caf9['query'],_0x33feec[_0x3de1('0x31')]));if(_0x37caf9[_0x3de1('0x2f')][_0x3de1('0x3a')]){_0x38306e[_0x3de1('0x38')]=_[_0x3de1('0x3b')](_0x38306e['where'],{'$or':_[_0x3de1('0x2e')](_0x38306e[_0x3de1('0x34')],function(_0x56612c){var _0x25c92a={};_0x25c92a[_0x56612c]={'$like':'%'+_0x37caf9[_0x3de1('0x2f')][_0x3de1('0x3a')]+'%'};return _0x25c92a;})});}_0x38306e=_[_0x3de1('0x3b')]({},_0x38306e,_0x37caf9[_0x3de1('0x45')]);return _0x5e8105[_0x3de1('0x4a')](_0x38306e);}})[_0x3de1('0x24')](function(_0x27685d){if(_0x27685d){_0x3fa07a=_0x27685d[_0x3de1('0x35')];if(!_0x37caf9['query']['hasOwnProperty']('nolimit')){_0x38306e['limit']=qs[_0x3de1('0x1c')](_0x37caf9[_0x3de1('0x2f')][_0x3de1('0x1c')]);_0x38306e[_0x3de1('0x1a')]=qs[_0x3de1('0x1a')](_0x37caf9[_0x3de1('0x2f')][_0x3de1('0x1a')]);}return _0x5e8105['getConfigurations'](_0x38306e);}})[_0x3de1('0x24')](function(_0xc7cd08){if(_0xc7cd08){return _0xc7cd08?{'count':_0x3fa07a,'rows':_0xc7cd08}:null;}})[_0x3de1('0x24')](respondWithResult(_0x29c69f,null))['catch'](handleError(_0x29c69f,null));};exports[_0x3de1('0x4d')]=function(_0x1da30d,_0x2cdb7a,_0x4b7dcd){if(_0x1da30d['body']['id']){delete _0x1da30d[_0x3de1('0x48')]['id'];}return db[_0x3de1('0x3d')][_0x3de1('0x4e')]({'where':{'id':_0x1da30d[_0x3de1('0x43')]['id']}})['then'](handleEntityNotFound(_0x2cdb7a,null))['then'](function(_0x23d4bb){if(_0x23d4bb){_0x1da30d[_0x3de1('0x48')][_0x3de1('0x4f')]=_0x23d4bb['id'];_0x1da30d['body'][_0x3de1('0x50')]=integrations[_0x3de1('0x51')](_0x1da30d[_0x3de1('0x48')][_0x3de1('0x52')],_0x1da30d[_0x3de1('0x48')][_0x3de1('0x2c')]);_0x1da30d[_0x3de1('0x48')][_0x3de1('0x53')]=integrations[_0x3de1('0x54')](_0x1da30d[_0x3de1('0x48')][_0x3de1('0x52')],_0x1da30d[_0x3de1('0x48')][_0x3de1('0x2c')]);return db['FreshdeskConfiguration']['create'](_0x1da30d['body'],{'include':[{'model':db['FreshdeskField'],'as':'Subjects'},{'model':db[_0x3de1('0x55')],'as':_0x3de1('0x53')}]});}return null;})['then'](respondWithResult(_0x2cdb7a,null))[_0x3de1('0x46')](handleError(_0x2cdb7a,null));};exports['getFields']=function(_0x10b9cc,_0x53ee21,_0x238c99){var _0x37be68='';return db[_0x3de1('0x3d')][_0x3de1('0x4e')]({'where':{'id':_0x10b9cc['params']['id']},'attributes':['id',_0x3de1('0x56'),'apiKey']})[_0x3de1('0x24')](handleEntityNotFound(_0x53ee21,null))[_0x3de1('0x24')](function(_0x56d32c){if(_0x56d32c){_0x37be68=_0x56d32c['remoteUri'];var _0x13d9e4=_0x37be68['slice'](-0x1);if(_0x13d9e4==='/'){_0x37be68=_0x37be68[_0x3de1('0x57')](0x0,_0x37be68[_0x3de1('0x58')](_0x13d9e4));}return rp({'method':_0x3de1('0x59'),'uri':util[_0x3de1('0x5a')](_0x3de1('0x5b'),_0x37be68,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0x3de1('0x5a')]('Basic\x20%s',new Buffer(util['format'](_0x3de1('0x5c'),_0x56d32c['apiKey']))[_0x3de1('0x5d')](_0x3de1('0x5e')))},'json':!![]});}})[_0x3de1('0x24')](function(_0x1f5c05){if(_0x1f5c05){var _0x3a8155=[_0x3de1('0x5f'),'subject',_0x3de1('0x60'),'description',_0x3de1('0x18'),_0x3de1('0x61'),_0x3de1('0x62'),_0x3de1('0x63'),_0x3de1('0x64'),_0x3de1('0x62'),_0x3de1('0x65')];_[_0x3de1('0x66')](_0x1f5c05,function(_0x3b080b){return _0x3a8155['includes'](_0x3b080b[_0x3de1('0x27')])||!_0x3b080b[_0x3de1('0x67')]&&_0x3b080b[_0x3de1('0x2c')]!==_0x3de1('0x68')&&_0x3b080b['type']!=='custom_dropdown';});return{'count':_0x1f5c05['length'],'rows':_[_0x3de1('0x2e')](_0x1f5c05,function(_0x198be6){return{'id':_0x198be6['name'],'name':_0x198be6[_0x3de1('0x69')],'custom':!_0x198be6[_0x3de1('0x67')],'options':_0x198be6[_0x3de1('0x6a')]?_[_0x3de1('0x2e')](_0x198be6['choices'],function(_0x26d7df){return{'name':_[_0x3de1('0x6b')](_0x26d7df),'value':_0x26d7df};}):[]};})};}})[_0x3de1('0x24')](respondWithResult(_0x53ee21,null))['catch'](function(_0x1f0071){var _0x7ce7ad=_0x10b9cc[_0x3de1('0x2f')][_0x3de1('0x6c')]?0x1f4:_0x1f0071[_0x3de1('0x6d')]||0x1f4;logger[_0x3de1('0x6e')](_0x3de1('0x6f'),_0x3de1('0x70'),_0x7ce7ad,JSON[_0x3de1('0x71')](_0x1f0071));delete _0x1f0071[_0x3de1('0x27')];if(_0x7ce7ad===0x191){_0x7ce7ad=0x190;}_0x53ee21['status'](_0x7ce7ad)[_0x3de1('0x28')](_0x10b9cc[_0x3de1('0x2f')][_0x3de1('0x6c')]?{'message':_0x3de1('0x72'),'statusCode':_0x1f0071[_0x3de1('0x6d')]}:_0x1f0071);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8571=['../../config/logger','request-promise','../../config/environment','./intFreshdeskAccount.attributes','../../components/integrations/configuration','exports','define','FreshdeskAccount','int_freshdesk_accounts','util'];(function(_0x5c4231,_0x27c246){var _0x5c93fe=function(_0x4e7696){while(--_0x4e7696){_0x5c4231['push'](_0x5c4231['shift']());}};_0x5c93fe(++_0x27c246);}(_0x8571,0x135));var _0x1857=function(_0x1ffaca,_0x93ed2e){_0x1ffaca=_0x1ffaca-0x0;var _0x12908e=_0x8571[_0x1ffaca];return _0x12908e;};'use strict';var _=require('lodash');var util=require(_0x1857('0x0'));var logger=require(_0x1857('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x1857('0x2'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x1857('0x3'));var attributes=require(_0x1857('0x4'));var integrations=require(_0x1857('0x5'));module[_0x1857('0x6')]=function(_0x1e535b,_0x3d4618){return _0x1e535b[_0x1857('0x7')](_0x1857('0x8'),attributes,{'tableName':_0x1857('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3497=['./intFreshdeskAccount.attributes','../../components/integrations/configuration','define','FreshdeskAccount','int_freshdesk_accounts','lodash','util','api','moment','path','rimraf','../../config/environment'];(function(_0x3433eb,_0xc4d2b3){var _0x46df3a=function(_0x577f7e){while(--_0x577f7e){_0x3433eb['push'](_0x3433eb['shift']());}};_0x46df3a(++_0xc4d2b3);}(_0x3497,0x95));var _0x7349=function(_0x20a394,_0x5c4e0c){_0x20a394=_0x20a394-0x0;var _0x8a454f=_0x3497[_0x20a394];return _0x8a454f;};'use strict';var _=require(_0x7349('0x0'));var util=require(_0x7349('0x1'));var logger=require('../../config/logger')(_0x7349('0x2'));var moment=require(_0x7349('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x7349('0x4'));var rimraf=require(_0x7349('0x5'));var config=require(_0x7349('0x6'));var attributes=require(_0x7349('0x7'));var integrations=require(_0x7349('0x8'));module['exports']=function(_0x468d95,_0x588276){return _0x468d95[_0x7349('0x9')](_0x7349('0xa'),attributes,{'tableName':_0x7349('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54bd=['find','where','info','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetFreshdeskAccount','FreshdeskAccount','findAll','options','raw','attributes','limit','include','map','model','ShowFreshdeskAccount'];(function(_0x5898b3,_0x587f5a){var _0x1e82f6=function(_0x42ebfd){while(--_0x42ebfd){_0x5898b3['push'](_0x5898b3['shift']());}};_0x1e82f6(++_0x587f5a);}(_0x54bd,0x19a));var _0xd54b=function(_0x49aba8,_0x1b1156){_0x49aba8=_0x49aba8-0x0;var _0x101dfa=_0x54bd[_0x49aba8];return _0x101dfa;};'use strict';var _=require(_0xd54b('0x0'));var util=require('util');var moment=require(_0xd54b('0x1'));var BPromise=require(_0xd54b('0x2'));var rs=require(_0xd54b('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd54b('0x4'))['db'];var utils=require(_0xd54b('0x5'));var logger=require(_0xd54b('0x6'))(_0xd54b('0x7'));var config=require(_0xd54b('0x8'));var jayson=require(_0xd54b('0x9'));var client=jayson[_0xd54b('0xa')][_0xd54b('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4a53cd,_0x2f72b9,_0xdf2526){return new BPromise(function(_0x436e47,_0x3f4562){return client[_0xd54b('0xc')](_0x4a53cd,_0xdf2526)[_0xd54b('0xd')](function(_0x366392){logger['info'](_0xd54b('0xe'),_0x2f72b9,_0xd54b('0xf'));logger[_0xd54b('0x10')](_0xd54b('0x11'),_0x2f72b9,_0xd54b('0xf'),JSON[_0xd54b('0x12')](_0x366392));if(_0x366392[_0xd54b('0x13')]){if(_0x366392[_0xd54b('0x13')]['code']===0x1f4){logger[_0xd54b('0x13')]('FreshdeskAccount,\x20%s,\x20%s',_0x2f72b9,_0x366392[_0xd54b('0x13')][_0xd54b('0x14')]);return _0x3f4562(_0x366392[_0xd54b('0x13')][_0xd54b('0x14')]);}logger[_0xd54b('0x13')](_0xd54b('0xe'),_0x2f72b9,_0x366392[_0xd54b('0x13')]['message']);return _0x436e47(_0x366392[_0xd54b('0x13')][_0xd54b('0x14')]);}else{logger['info'](_0xd54b('0xe'),_0x2f72b9,_0xd54b('0xf'));_0x436e47(_0x366392[_0xd54b('0x15')][_0xd54b('0x14')]);}})[_0xd54b('0x16')](function(_0x164312){logger[_0xd54b('0x13')]('FreshdeskAccount,\x20%s,\x20%s',_0x2f72b9,_0x164312);_0x3f4562(_0x164312);});});}exports[_0xd54b('0x17')]=function(_0x1807fe){var _0x3eeb9c=this;return new Promise(function(_0x357408,_0x45c5a2){return db[_0xd54b('0x18')][_0xd54b('0x19')]({'raw':_0x1807fe[_0xd54b('0x1a')]?_0x1807fe[_0xd54b('0x1a')][_0xd54b('0x1b')]===undefined?!![]:![]:!![],'where':_0x1807fe['options']?_0x1807fe[_0xd54b('0x1a')]['where']||null:null,'attributes':_0x1807fe[_0xd54b('0x1a')]?_0x1807fe[_0xd54b('0x1a')][_0xd54b('0x1c')]||null:null,'limit':_0x1807fe[_0xd54b('0x1a')]?_0x1807fe[_0xd54b('0x1a')][_0xd54b('0x1d')]||null:null,'include':_0x1807fe['options']?_0x1807fe[_0xd54b('0x1a')][_0xd54b('0x1e')]?_[_0xd54b('0x1f')](_0x1807fe['options']['include'],function(_0x487b78){return{'model':db[_0x487b78[_0xd54b('0x20')]],'as':_0x487b78['as'],'attributes':_0x487b78[_0xd54b('0x1c')],'include':_0x487b78[_0xd54b('0x1e')]?_['map'](_0x487b78['include'],function(_0x5d46e1){return{'model':db[_0x5d46e1['model']],'as':_0x5d46e1['as'],'attributes':_0x5d46e1[_0xd54b('0x1c')],'include':_0x5d46e1['include']?_[_0xd54b('0x1f')](_0x5d46e1['include'],function(_0x41a6b1){return{'model':db[_0x41a6b1[_0xd54b('0x20')]],'as':_0x41a6b1['as'],'attributes':_0x41a6b1['attributes']};}):[]};}):[]};}):[]:[]})[_0xd54b('0xd')](function(_0x31b5db){logger['info'](_0xd54b('0x17'),_0x1807fe);logger['debug']('GetFreshdeskAccount',_0x1807fe,JSON['stringify'](_0x31b5db));_0x357408(_0x31b5db);})[_0xd54b('0x16')](function(_0x2a8fcc){logger[_0xd54b('0x13')](_0xd54b('0x17'),_0x2a8fcc[_0xd54b('0x14')],_0x1807fe);_0x45c5a2(_0x3eeb9c['error'](0x1f4,_0x2a8fcc[_0xd54b('0x14')]));});});};exports[_0xd54b('0x21')]=function(_0x5cc066){var _0x1fd0a4=this;return new Promise(function(_0x1955e5,_0x7273ee){return db[_0xd54b('0x18')][_0xd54b('0x22')]({'raw':_0x5cc066['options']?_0x5cc066['options'][_0xd54b('0x1b')]===undefined?!![]:![]:!![],'where':_0x5cc066[_0xd54b('0x1a')]?_0x5cc066[_0xd54b('0x1a')][_0xd54b('0x23')]||null:null,'attributes':_0x5cc066['options']?_0x5cc066[_0xd54b('0x1a')][_0xd54b('0x1c')]||null:null,'include':_0x5cc066[_0xd54b('0x1a')]?_0x5cc066[_0xd54b('0x1a')][_0xd54b('0x1e')]?_['map'](_0x5cc066['options'][_0xd54b('0x1e')],function(_0x6383e1){return{'model':db[_0x6383e1[_0xd54b('0x20')]],'as':_0x6383e1['as'],'attributes':_0x6383e1[_0xd54b('0x1c')],'include':_0x6383e1['include']?_['map'](_0x6383e1[_0xd54b('0x1e')],function(_0x37b3fc){return{'model':db[_0x37b3fc[_0xd54b('0x20')]],'as':_0x37b3fc['as'],'attributes':_0x37b3fc[_0xd54b('0x1c')],'include':_0x37b3fc['include']?_[_0xd54b('0x1f')](_0x37b3fc[_0xd54b('0x1e')],function(_0x2aa4fd){return{'model':db[_0x2aa4fd['model']],'as':_0x2aa4fd['as'],'attributes':_0x2aa4fd[_0xd54b('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x14c1e6){logger[_0xd54b('0x24')](_0xd54b('0x21'),_0x5cc066);logger[_0xd54b('0x10')](_0xd54b('0x21'),_0x5cc066,JSON[_0xd54b('0x12')](_0x14c1e6));_0x1955e5(_0x14c1e6);})[_0xd54b('0x16')](function(_0x2675bf){logger[_0xd54b('0x13')](_0xd54b('0x21'),_0x2675bf['message'],_0x5cc066);_0x7273ee(_0x1fd0a4[_0xd54b('0x13')](0x1f4,_0x2675bf[_0xd54b('0x14')]));});});};
\ No newline at end of file
+var _0x5b92=['map','include','model','then','debug','ShowFreshdeskAccount','find','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','jayson/promise','client','http','request','info','FreshdeskAccount,\x20%s,\x20%s','FreshdeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetFreshdeskAccount','FreshdeskAccount','findAll','options','raw','where','attributes','limit'];(function(_0x323fe0,_0x6d0bc9){var _0xbb0659=function(_0x513553){while(--_0x513553){_0x323fe0['push'](_0x323fe0['shift']());}};_0xbb0659(++_0x6d0bc9);}(_0x5b92,0xdf));var _0x25b9=function(_0x47a7d0,_0x4e182d){_0x47a7d0=_0x47a7d0-0x0;var _0xb9bd08=_0x5b92[_0x47a7d0];return _0xb9bd08;};'use strict';var _=require(_0x25b9('0x0'));var util=require(_0x25b9('0x1'));var moment=require('moment');var BPromise=require(_0x25b9('0x2'));var rs=require(_0x25b9('0x3'));var fs=require('fs');var Redis=require(_0x25b9('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x25b9('0x5'));var logger=require(_0x25b9('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x25b9('0x7'));var client=jayson[_0x25b9('0x8')][_0x25b9('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2f9009,_0x439af4,_0x2f7b81){return new BPromise(function(_0x862a56,_0x43d2e3){return client[_0x25b9('0xa')](_0x2f9009,_0x2f7b81)['then'](function(_0x59ed89){logger[_0x25b9('0xb')](_0x25b9('0xc'),_0x439af4,'request\x20sent');logger['debug'](_0x25b9('0xd'),_0x439af4,_0x25b9('0xe'),JSON[_0x25b9('0xf')](_0x59ed89));if(_0x59ed89[_0x25b9('0x10')]){if(_0x59ed89[_0x25b9('0x10')][_0x25b9('0x11')]===0x1f4){logger[_0x25b9('0x10')](_0x25b9('0xc'),_0x439af4,_0x59ed89['error'][_0x25b9('0x12')]);return _0x43d2e3(_0x59ed89[_0x25b9('0x10')][_0x25b9('0x12')]);}logger[_0x25b9('0x10')](_0x25b9('0xc'),_0x439af4,_0x59ed89[_0x25b9('0x10')][_0x25b9('0x12')]);return _0x862a56(_0x59ed89['error']['message']);}else{logger[_0x25b9('0xb')](_0x25b9('0xc'),_0x439af4,_0x25b9('0xe'));_0x862a56(_0x59ed89[_0x25b9('0x13')][_0x25b9('0x12')]);}})[_0x25b9('0x14')](function(_0x4f68d0){logger[_0x25b9('0x10')](_0x25b9('0xc'),_0x439af4,_0x4f68d0);_0x43d2e3(_0x4f68d0);});});}exports[_0x25b9('0x15')]=function(_0x2cb83f){var _0x29f698=this;return new Promise(function(_0x1dea07,_0x2c2b43){return db[_0x25b9('0x16')][_0x25b9('0x17')]({'raw':_0x2cb83f[_0x25b9('0x18')]?_0x2cb83f[_0x25b9('0x18')][_0x25b9('0x19')]===undefined?!![]:![]:!![],'where':_0x2cb83f[_0x25b9('0x18')]?_0x2cb83f[_0x25b9('0x18')][_0x25b9('0x1a')]||null:null,'attributes':_0x2cb83f[_0x25b9('0x18')]?_0x2cb83f[_0x25b9('0x18')][_0x25b9('0x1b')]||null:null,'limit':_0x2cb83f[_0x25b9('0x18')]?_0x2cb83f['options'][_0x25b9('0x1c')]||null:null,'include':_0x2cb83f[_0x25b9('0x18')]?_0x2cb83f[_0x25b9('0x18')]['include']?_[_0x25b9('0x1d')](_0x2cb83f[_0x25b9('0x18')][_0x25b9('0x1e')],function(_0x50bdbd){return{'model':db[_0x50bdbd['model']],'as':_0x50bdbd['as'],'attributes':_0x50bdbd[_0x25b9('0x1b')],'include':_0x50bdbd[_0x25b9('0x1e')]?_['map'](_0x50bdbd['include'],function(_0x572075){return{'model':db[_0x572075[_0x25b9('0x1f')]],'as':_0x572075['as'],'attributes':_0x572075[_0x25b9('0x1b')],'include':_0x572075[_0x25b9('0x1e')]?_['map'](_0x572075['include'],function(_0x4c71ee){return{'model':db[_0x4c71ee[_0x25b9('0x1f')]],'as':_0x4c71ee['as'],'attributes':_0x4c71ee['attributes']};}):[]};}):[]};}):[]:[]})[_0x25b9('0x20')](function(_0x23bff6){logger[_0x25b9('0xb')](_0x25b9('0x15'),_0x2cb83f);logger[_0x25b9('0x21')](_0x25b9('0x15'),_0x2cb83f,JSON[_0x25b9('0xf')](_0x23bff6));_0x1dea07(_0x23bff6);})[_0x25b9('0x14')](function(_0x4c76e4){logger[_0x25b9('0x10')](_0x25b9('0x15'),_0x4c76e4[_0x25b9('0x12')],_0x2cb83f);_0x2c2b43(_0x29f698[_0x25b9('0x10')](0x1f4,_0x4c76e4[_0x25b9('0x12')]));});});};exports[_0x25b9('0x22')]=function(_0x2439f0){var _0x300f83=this;return new Promise(function(_0xba80fc,_0x5cfe21){return db[_0x25b9('0x16')][_0x25b9('0x23')]({'raw':_0x2439f0['options']?_0x2439f0['options'][_0x25b9('0x19')]===undefined?!![]:![]:!![],'where':_0x2439f0[_0x25b9('0x18')]?_0x2439f0['options']['where']||null:null,'attributes':_0x2439f0[_0x25b9('0x18')]?_0x2439f0['options']['attributes']||null:null,'include':_0x2439f0[_0x25b9('0x18')]?_0x2439f0['options'][_0x25b9('0x1e')]?_[_0x25b9('0x1d')](_0x2439f0[_0x25b9('0x18')][_0x25b9('0x1e')],function(_0x29c687){return{'model':db[_0x29c687['model']],'as':_0x29c687['as'],'attributes':_0x29c687[_0x25b9('0x1b')],'include':_0x29c687[_0x25b9('0x1e')]?_[_0x25b9('0x1d')](_0x29c687['include'],function(_0x2a8467){return{'model':db[_0x2a8467['model']],'as':_0x2a8467['as'],'attributes':_0x2a8467[_0x25b9('0x1b')],'include':_0x2a8467[_0x25b9('0x1e')]?_[_0x25b9('0x1d')](_0x2a8467[_0x25b9('0x1e')],function(_0x51040e){return{'model':db[_0x51040e[_0x25b9('0x1f')]],'as':_0x51040e['as'],'attributes':_0x51040e[_0x25b9('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x25b9('0x20')](function(_0x442869){logger[_0x25b9('0xb')](_0x25b9('0x22'),_0x2439f0);logger[_0x25b9('0x21')]('ShowFreshdeskAccount',_0x2439f0,JSON[_0x25b9('0xf')](_0x442869));_0xba80fc(_0x442869);})[_0x25b9('0x14')](function(_0x3e8ac6){logger[_0x25b9('0x10')](_0x25b9('0x22'),_0x3e8ac6[_0x25b9('0x12')],_0x2439f0);_0x5cfe21(_0x300f83[_0x25b9('0x10')](0x1f4,_0x3e8ac6[_0x25b9('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae06=['index','/:id','show','/:id/fields','getFields','/:id/subjects','getSubjects','getTags','post','create','setTags','update','delete','util','path','Router','fs-extra','../../components/auth/service','./intFreshdeskConfiguration.controller','get','isAuthenticated'];(function(_0x28666a,_0x3dc25d){var _0x19d752=function(_0x551e47){while(--_0x551e47){_0x28666a['push'](_0x28666a['shift']());}};_0x19d752(++_0x3dc25d);}(_0xae06,0xb5));var _0x6ae0=function(_0x48cf55,_0x1ba63c){_0x48cf55=_0x48cf55-0x0;var _0x27ef76=_0xae06[_0x48cf55];return _0x27ef76;};'use strict';var multer=require('multer');var util=require(_0x6ae0('0x0'));var path=require(_0x6ae0('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x6ae0('0x2')]();var fs_extra=require(_0x6ae0('0x3'));var auth=require(_0x6ae0('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x6ae0('0x5'));router[_0x6ae0('0x6')]('/',auth[_0x6ae0('0x7')](),controller[_0x6ae0('0x8')]);router[_0x6ae0('0x6')](_0x6ae0('0x9'),auth[_0x6ae0('0x7')](),controller[_0x6ae0('0xa')]);router['get'](_0x6ae0('0xb'),auth['isAuthenticated'](),controller[_0x6ae0('0xc')]);router['get'](_0x6ae0('0xd'),auth['isAuthenticated'](),controller[_0x6ae0('0xe')]);router[_0x6ae0('0x6')]('/:id/descriptions',auth['isAuthenticated'](),controller['getDescriptions']);router[_0x6ae0('0x6')]('/:id/tags',auth[_0x6ae0('0x7')](),controller[_0x6ae0('0xf')]);router[_0x6ae0('0x10')]('/',auth['isAuthenticated'](),controller[_0x6ae0('0x11')]);router[_0x6ae0('0x10')]('/:id/tags',auth[_0x6ae0('0x7')](),controller[_0x6ae0('0x12')]);router['put'](_0x6ae0('0x9'),auth[_0x6ae0('0x7')](),controller[_0x6ae0('0x13')]);router[_0x6ae0('0x14')](_0x6ae0('0x9'),auth[_0x6ae0('0x7')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x9148=['update','destroy','multer','path','fs-extra','../../components/auth/service','../../config/environment','index','get','/:id','isAuthenticated','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','/:id/tags','post','create','setTags','put'];(function(_0x5f1391,_0x19c132){var _0x50ebe3=function(_0x3d00a3){while(--_0x3d00a3){_0x5f1391['push'](_0x5f1391['shift']());}};_0x50ebe3(++_0x19c132);}(_0x9148,0x162));var _0x8914=function(_0x367585,_0x2271c6){_0x367585=_0x367585-0x0;var _0x690365=_0x9148[_0x367585];return _0x690365;};'use strict';var multer=require(_0x8914('0x0'));var util=require('util');var path=require(_0x8914('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0x8914('0x2'));var auth=require(_0x8914('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0x8914('0x4'));var controller=require('./intFreshdeskConfiguration.controller');router['get']('/',auth['isAuthenticated'](),controller[_0x8914('0x5')]);router[_0x8914('0x6')](_0x8914('0x7'),auth[_0x8914('0x8')](),controller[_0x8914('0x9')]);router[_0x8914('0x6')](_0x8914('0xa'),auth['isAuthenticated'](),controller[_0x8914('0xb')]);router['get'](_0x8914('0xc'),auth['isAuthenticated'](),controller[_0x8914('0xd')]);router[_0x8914('0x6')](_0x8914('0xe'),auth[_0x8914('0x8')](),controller['getDescriptions']);router['get'](_0x8914('0xf'),auth[_0x8914('0x8')](),controller['getTags']);router[_0x8914('0x10')]('/',auth[_0x8914('0x8')](),controller[_0x8914('0x11')]);router[_0x8914('0x10')]('/:id/tags',auth[_0x8914('0x8')](),controller[_0x8914('0x12')]);router[_0x8914('0x13')]('/:id',auth[_0x8914('0x8')](),controller[_0x8914('0x14')]);router['delete'](_0x8914('0x7'),auth[_0x8914('0x8')](),controller[_0x8914('0x15')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x50e7=['exports','STRING','sequelize'];(function(_0x4d5f40,_0x19da84){var _0x3c5a45=function(_0x196c4e){while(--_0x196c4e){_0x4d5f40['push'](_0x4d5f40['shift']());}};_0x3c5a45(++_0x19da84);}(_0x50e7,0x1cd));var _0x750e=function(_0x26c6dc,_0x39ebb0){_0x26c6dc=_0x26c6dc-0x0;var _0x46c838=_0x50e7[_0x26c6dc];return _0x46c838;};'use strict';var Sequelize=require(_0x750e('0x0'));module[_0x750e('0x1')]={'name':{'type':Sequelize[_0x750e('0x2')]},'description':{'type':Sequelize[_0x750e('0x2')]}};
\ No newline at end of file
+var _0xa706=['sequelize','exports','STRING'];(function(_0x18a843,_0x2742a6){var _0x1bc81e=function(_0x5b46ea){while(--_0x5b46ea){_0x18a843['push'](_0x18a843['shift']());}};_0x1bc81e(++_0x2742a6);}(_0xa706,0x99));var _0x6a70=function(_0xdaacfa,_0x433efa){_0xdaacfa=_0xdaacfa-0x0;var _0x3aab19=_0xa706[_0xdaacfa];return _0x3aab19;};'use strict';var Sequelize=require(_0x6a70('0x0'));module[_0x6a70('0x1')]={'name':{'type':Sequelize[_0x6a70('0x2')]},'description':{'type':Sequelize[_0x6a70('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd45c=['catch','show','params','intersection','find','create','body','findOne','FreshdeskField','getFields','hasOwnProperty','getSubjects','nolimit','getDescriptions','getTags','setTags','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','lodash','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','error','stack','name','index','map','rawAttributes','fieldName','key','model','query','keys','filters','attributes','fields','length','order','sort','where','pick','filter','merge','type','VIRTUAL','options','FreshdeskConfiguration','includeAll','include','findAll','rows'];(function(_0x36d25e,_0x1a047d){var _0x4b95b8=function(_0x74da3){while(--_0x74da3){_0x36d25e['push'](_0x36d25e['shift']());}};_0x4b95b8(++_0x1a047d);}(_0xd45c,0x112));var _0xcd45=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xd45c[_0x122ef9];return _0x42fba0;};'use strict';var emlformat=require(_0xcd45('0x0'));var rimraf=require(_0xcd45('0x1'));var zipdir=require(_0xcd45('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xcd45('0x3'));var moment=require(_0xcd45('0x4'));var BPromise=require(_0xcd45('0x5'));var Mustache=require(_0xcd45('0x6'));var util=require('util');var path=require(_0xcd45('0x7'));var sox=require(_0xcd45('0x8'));var csv=require('to-csv');var ejs=require(_0xcd45('0x9'));var fs=require('fs');var fs_extra=require(_0xcd45('0xa'));var _=require(_0xcd45('0xb'));var squel=require('squel');var crypto=require(_0xcd45('0xc'));var jsforce=require(_0xcd45('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xcd45('0xe'));var querystring=require(_0xcd45('0xf'));var Papa=require(_0xcd45('0x10'));var Redis=require(_0xcd45('0x11'));var authService=require(_0xcd45('0x12'));var qs=require(_0xcd45('0x13'));var as=require(_0xcd45('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xcd45('0x15'));var utils=require(_0xcd45('0x16'));var config=require(_0xcd45('0x17'));var licenseUtil=require(_0xcd45('0x18'));var db=require(_0xcd45('0x19'))['db'];function respondWithStatusCode(_0x246373,_0x43d3cb){_0x43d3cb=_0x43d3cb||0xcc;return function(_0x20ba5e){if(_0x20ba5e){return _0x246373[_0xcd45('0x1a')](_0x43d3cb);}return _0x246373[_0xcd45('0x1b')](_0x43d3cb)[_0xcd45('0x1c')]();};}function respondWithResult(_0x4e640a,_0x4d540f){_0x4d540f=_0x4d540f||0xc8;return function(_0x52710b){if(_0x52710b){return _0x4e640a[_0xcd45('0x1b')](_0x4d540f)['json'](_0x52710b);}};}function respondWithFilteredResult(_0x25ef6a,_0x2faf7d){return function(_0x1cb339){if(_0x1cb339){var _0xe491e1=typeof _0x2faf7d[_0xcd45('0x1d')]===_0xcd45('0x1e')&&typeof _0x2faf7d[_0xcd45('0x1f')]==='undefined';var _0x1c87cc=_0x1cb339[_0xcd45('0x20')];var _0x5b2875=_0xe491e1?0x0:_0x2faf7d[_0xcd45('0x1d')];var _0x3bf85e=_0xe491e1?_0x1cb339[_0xcd45('0x20')]:_0x2faf7d[_0xcd45('0x1d')]+_0x2faf7d[_0xcd45('0x1f')];var _0x37bb8f;if(_0x3bf85e>=_0x1c87cc){_0x3bf85e=_0x1c87cc;_0x37bb8f=0xc8;}else{_0x37bb8f=0xce;}_0x25ef6a['status'](_0x37bb8f);return _0x25ef6a[_0xcd45('0x21')](_0xcd45('0x22'),_0x5b2875+'-'+_0x3bf85e+'/'+_0x1c87cc)[_0xcd45('0x23')](_0x1cb339);}return null;};}function patchUpdates(_0x3a20de){return function(_0x1906a7){try{jsonpatch[_0xcd45('0x24')](_0x1906a7,_0x3a20de,!![]);}catch(_0x4af0af){return BPromise[_0xcd45('0x25')](_0x4af0af);}return _0x1906a7[_0xcd45('0x26')]();};}function saveUpdates(_0x34dd07,_0x4e148a){return function(_0x5594e4){if(_0x5594e4){return _0x5594e4[_0xcd45('0x27')](_0x34dd07)['then'](function(_0x784685){return _0x784685;});}return null;};}function removeEntity(_0x1639ca,_0x13b879){return function(_0x7f7e08){if(_0x7f7e08){return _0x7f7e08['destroy']()[_0xcd45('0x28')](function(){_0x1639ca[_0xcd45('0x1b')](0xcc)[_0xcd45('0x1c')]();});}};}function handleEntityNotFound(_0x3ef8fe,_0x4af2d1){return function(_0x5d55a5){if(!_0x5d55a5){_0x3ef8fe[_0xcd45('0x1a')](0x194);}return _0x5d55a5;};}function handleError(_0x810681,_0x3a0840){_0x3a0840=_0x3a0840||0x1f4;return function(_0x43b719){logger[_0xcd45('0x29')](_0x43b719[_0xcd45('0x2a')]);if(_0x43b719[_0xcd45('0x2b')]){delete _0x43b719['name'];}_0x810681['status'](_0x3a0840)['send'](_0x43b719);};}exports[_0xcd45('0x2c')]=function(_0x34ad31,_0x25ad20){var _0x1183b6={},_0x501c49={},_0x2cb194={'count':0x0,'rows':[]};var _0x463537=_[_0xcd45('0x2d')](db['FreshdeskConfiguration'][_0xcd45('0x2e')],function(_0x3f869c){return{'name':_0x3f869c[_0xcd45('0x2f')],'type':_0x3f869c['type'][_0xcd45('0x30')]};});_0x501c49[_0xcd45('0x31')]=_['map'](_0x463537,_0xcd45('0x2b'));_0x501c49[_0xcd45('0x32')]=_[_0xcd45('0x33')](_0x34ad31[_0xcd45('0x32')]);_0x501c49[_0xcd45('0x34')]=_['intersection'](_0x501c49[_0xcd45('0x31')],_0x501c49[_0xcd45('0x32')]);_0x1183b6[_0xcd45('0x35')]=_['intersection'](_0x501c49['model'],qs[_0xcd45('0x36')](_0x34ad31[_0xcd45('0x32')][_0xcd45('0x36')]));_0x1183b6[_0xcd45('0x35')]=_0x1183b6['attributes'][_0xcd45('0x37')]?_0x1183b6[_0xcd45('0x35')]:_0x501c49[_0xcd45('0x31')];if(!_0x34ad31['query']['hasOwnProperty']('nolimit')){_0x1183b6['limit']=qs[_0xcd45('0x1f')](_0x34ad31[_0xcd45('0x32')]['limit']);_0x1183b6['offset']=qs[_0xcd45('0x1d')](_0x34ad31[_0xcd45('0x32')]['offset']);}_0x1183b6[_0xcd45('0x38')]=qs[_0xcd45('0x39')](_0x34ad31['query']['sort']);_0x1183b6[_0xcd45('0x3a')]=qs['filters'](_[_0xcd45('0x3b')](_0x34ad31[_0xcd45('0x32')],_0x501c49[_0xcd45('0x34')]),_0x463537);if(_0x34ad31[_0xcd45('0x32')][_0xcd45('0x3c')]){_0x1183b6[_0xcd45('0x3a')]=_[_0xcd45('0x3d')](_0x1183b6[_0xcd45('0x3a')],{'$or':_['map'](_0x463537,function(_0x20bd84){if(_0x20bd84[_0xcd45('0x3e')]!==_0xcd45('0x3f')){var _0x274311={};_0x274311[_0x20bd84[_0xcd45('0x2b')]]={'$like':'%'+_0x34ad31[_0xcd45('0x32')][_0xcd45('0x3c')]+'%'};return _0x274311;}})});}_0x1183b6=_['merge']({},_0x1183b6,_0x34ad31[_0xcd45('0x40')]);var _0x229d41={'where':_0x1183b6['where']};return db[_0xcd45('0x41')][_0xcd45('0x20')](_0x229d41)[_0xcd45('0x28')](function(_0x195bd2){_0x2cb194[_0xcd45('0x20')]=_0x195bd2;if(_0x34ad31[_0xcd45('0x32')][_0xcd45('0x42')]){_0x1183b6[_0xcd45('0x43')]=[{'all':!![]}];}return db['FreshdeskConfiguration'][_0xcd45('0x44')](_0x1183b6);})[_0xcd45('0x28')](function(_0x2bd361){_0x2cb194[_0xcd45('0x45')]=_0x2bd361;return _0x2cb194;})[_0xcd45('0x28')](respondWithFilteredResult(_0x25ad20,_0x1183b6))[_0xcd45('0x46')](handleError(_0x25ad20,null));};exports[_0xcd45('0x47')]=function(_0x1c7161,_0x5c76eb){var _0x423135={'raw':![],'where':{'id':_0x1c7161[_0xcd45('0x48')]['id']}},_0x3354d4={};_0x3354d4[_0xcd45('0x31')]=_[_0xcd45('0x33')](db[_0xcd45('0x41')][_0xcd45('0x2e')]);_0x3354d4[_0xcd45('0x32')]=_[_0xcd45('0x33')](_0x1c7161[_0xcd45('0x32')]);_0x3354d4[_0xcd45('0x34')]=_[_0xcd45('0x49')](_0x3354d4[_0xcd45('0x31')],_0x3354d4[_0xcd45('0x32')]);_0x423135[_0xcd45('0x35')]=_[_0xcd45('0x49')](_0x3354d4[_0xcd45('0x31')],qs[_0xcd45('0x36')](_0x1c7161['query'][_0xcd45('0x36')]));_0x423135[_0xcd45('0x35')]=_0x423135['attributes']['length']?_0x423135['attributes']:_0x3354d4[_0xcd45('0x31')];if(_0x1c7161[_0xcd45('0x32')]['includeAll']){_0x423135[_0xcd45('0x43')]=[{'all':!![]}];}_0x423135=_[_0xcd45('0x3d')]({},_0x423135,_0x1c7161[_0xcd45('0x40')]);return db[_0xcd45('0x41')][_0xcd45('0x4a')](_0x423135)[_0xcd45('0x28')](handleEntityNotFound(_0x5c76eb,null))[_0xcd45('0x28')](respondWithResult(_0x5c76eb,null))['catch'](handleError(_0x5c76eb,null));};exports[_0xcd45('0x4b')]=function(_0x530d94,_0x3a74df){return db[_0xcd45('0x41')][_0xcd45('0x4b')](_0x530d94[_0xcd45('0x4c')],{})[_0xcd45('0x28')](respondWithResult(_0x3a74df,0xc9))['catch'](handleError(_0x3a74df,null));};exports[_0xcd45('0x27')]=function(_0x3ff1af,_0x379283){if(_0x3ff1af[_0xcd45('0x4c')]['id']){delete _0x3ff1af[_0xcd45('0x4c')]['id'];}return db['FreshdeskConfiguration'][_0xcd45('0x4a')]({'where':{'id':_0x3ff1af[_0xcd45('0x48')]['id']}})['then'](handleEntityNotFound(_0x379283,null))['then'](saveUpdates(_0x3ff1af['body'],null))['then'](respondWithResult(_0x379283,null))[_0xcd45('0x46')](handleError(_0x379283,null));};exports['destroy']=function(_0x5676a5,_0x2d39f7){return db[_0xcd45('0x41')][_0xcd45('0x4a')]({'where':{'id':_0x5676a5[_0xcd45('0x48')]['id']}})[_0xcd45('0x28')](handleEntityNotFound(_0x2d39f7,null))[_0xcd45('0x28')](removeEntity(_0x2d39f7,null))[_0xcd45('0x46')](handleError(_0x2d39f7,null));};exports['getFields']=function(_0xa5e78c,_0xc0cd51,_0x2d1881){var _0x52bf1c={};var _0x249392={};var _0x3c6a3f;var _0xa693e4;return db[_0xcd45('0x41')][_0xcd45('0x4d')]({'where':{'id':_0xa5e78c[_0xcd45('0x48')]['id']}})[_0xcd45('0x28')](handleEntityNotFound(_0xc0cd51,null))[_0xcd45('0x28')](function(_0x2397d8){if(_0x2397d8){_0x3c6a3f=_0x2397d8;_0x249392[_0xcd45('0x31')]=_['keys'](db[_0xcd45('0x4e')]['rawAttributes']);_0x249392['query']=_['keys'](_0xa5e78c[_0xcd45('0x32')]);_0x249392['filters']=_['intersection'](_0x249392[_0xcd45('0x31')],_0x249392[_0xcd45('0x32')]);_0x52bf1c[_0xcd45('0x35')]=_[_0xcd45('0x49')](_0x249392[_0xcd45('0x31')],qs[_0xcd45('0x36')](_0xa5e78c[_0xcd45('0x32')][_0xcd45('0x36')]));_0x52bf1c[_0xcd45('0x35')]=_0x52bf1c[_0xcd45('0x35')]['length']?_0x52bf1c['attributes']:_0x249392[_0xcd45('0x31')];_0x52bf1c[_0xcd45('0x38')]=qs[_0xcd45('0x39')](_0xa5e78c[_0xcd45('0x32')]['sort']);_0x52bf1c['where']=qs[_0xcd45('0x34')](_['pick'](_0xa5e78c[_0xcd45('0x32')],_0x249392[_0xcd45('0x34')]));if(_0xa5e78c[_0xcd45('0x32')][_0xcd45('0x3c')]){_0x52bf1c[_0xcd45('0x3a')]=_[_0xcd45('0x3d')](_0x52bf1c[_0xcd45('0x3a')],{'$or':_[_0xcd45('0x2d')](_0x52bf1c[_0xcd45('0x35')],function(_0x57e3ed){var _0x1b24cc={};_0x1b24cc[_0x57e3ed]={'$like':'%'+_0xa5e78c[_0xcd45('0x32')][_0xcd45('0x3c')]+'%'};return _0x1b24cc;})});}_0x52bf1c=_[_0xcd45('0x3d')]({},_0x52bf1c,_0xa5e78c[_0xcd45('0x40')]);return _0x3c6a3f[_0xcd45('0x4f')](_0x52bf1c);}})[_0xcd45('0x28')](function(_0x14274e){if(_0x14274e){_0xa693e4=_0x14274e['length'];if(!_0xa5e78c[_0xcd45('0x32')][_0xcd45('0x50')]('nolimit')){_0x52bf1c['limit']=qs[_0xcd45('0x1f')](_0xa5e78c[_0xcd45('0x32')]['limit']);_0x52bf1c[_0xcd45('0x1d')]=qs[_0xcd45('0x1d')](_0xa5e78c[_0xcd45('0x32')]['offset']);}return _0x3c6a3f[_0xcd45('0x4f')](_0x52bf1c);}})[_0xcd45('0x28')](function(_0x174faf){if(_0x174faf){return _0x174faf?{'count':_0xa693e4,'rows':_0x174faf}:null;}})[_0xcd45('0x28')](respondWithResult(_0xc0cd51,null))[_0xcd45('0x46')](handleError(_0xc0cd51,null));};exports[_0xcd45('0x51')]=function(_0x5e408d,_0x44f0be,_0x3fba3c){var _0x48b0c5={};var _0x2ebe0b={};var _0x5ef769;var _0x2fb3d3;return db[_0xcd45('0x41')][_0xcd45('0x4d')]({'where':{'id':_0x5e408d['params']['id']}})[_0xcd45('0x28')](handleEntityNotFound(_0x44f0be,null))['then'](function(_0x3f6fc6){if(_0x3f6fc6){_0x5ef769=_0x3f6fc6;_0x2ebe0b[_0xcd45('0x31')]=_[_0xcd45('0x33')](db['FreshdeskField']['rawAttributes']);_0x2ebe0b[_0xcd45('0x32')]=_[_0xcd45('0x33')](_0x5e408d[_0xcd45('0x32')]);_0x2ebe0b[_0xcd45('0x34')]=_[_0xcd45('0x49')](_0x2ebe0b[_0xcd45('0x31')],_0x2ebe0b['query']);_0x48b0c5[_0xcd45('0x35')]=_[_0xcd45('0x49')](_0x2ebe0b['model'],qs[_0xcd45('0x36')](_0x5e408d[_0xcd45('0x32')][_0xcd45('0x36')]));_0x48b0c5['attributes']=_0x48b0c5['attributes'][_0xcd45('0x37')]?_0x48b0c5[_0xcd45('0x35')]:_0x2ebe0b[_0xcd45('0x31')];_0x48b0c5[_0xcd45('0x38')]=qs[_0xcd45('0x39')](_0x5e408d['query'][_0xcd45('0x39')]);_0x48b0c5[_0xcd45('0x3a')]=qs[_0xcd45('0x34')](_[_0xcd45('0x3b')](_0x5e408d['query'],_0x2ebe0b[_0xcd45('0x34')]));if(_0x5e408d[_0xcd45('0x32')][_0xcd45('0x3c')]){_0x48b0c5['where']=_['merge'](_0x48b0c5[_0xcd45('0x3a')],{'$or':_['map'](_0x48b0c5[_0xcd45('0x35')],function(_0x1c5b53){var _0x135829={};_0x135829[_0x1c5b53]={'$like':'%'+_0x5e408d[_0xcd45('0x32')][_0xcd45('0x3c')]+'%'};return _0x135829;})});}_0x48b0c5=_['merge']({},_0x48b0c5,_0x5e408d[_0xcd45('0x40')]);return _0x5ef769[_0xcd45('0x51')](_0x48b0c5);}})[_0xcd45('0x28')](function(_0x45f7b9){if(_0x45f7b9){_0x2fb3d3=_0x45f7b9['length'];if(!_0x5e408d['query'][_0xcd45('0x50')](_0xcd45('0x52'))){_0x48b0c5[_0xcd45('0x1f')]=qs[_0xcd45('0x1f')](_0x5e408d[_0xcd45('0x32')][_0xcd45('0x1f')]);_0x48b0c5['offset']=qs[_0xcd45('0x1d')](_0x5e408d[_0xcd45('0x32')]['offset']);}return _0x5ef769[_0xcd45('0x51')](_0x48b0c5);}})[_0xcd45('0x28')](function(_0x38f7c3){if(_0x38f7c3){return _0x38f7c3?{'count':_0x2fb3d3,'rows':_0x38f7c3}:null;}})['then'](respondWithResult(_0x44f0be,null))[_0xcd45('0x46')](handleError(_0x44f0be,null));};exports[_0xcd45('0x53')]=function(_0x3bc912,_0x5eb7d7,_0x2d78bb){var _0x1edde4={};var _0x38df16={};var _0x506ebc;var _0x1a577c;return db[_0xcd45('0x41')][_0xcd45('0x4d')]({'where':{'id':_0x3bc912[_0xcd45('0x48')]['id']}})['then'](handleEntityNotFound(_0x5eb7d7,null))[_0xcd45('0x28')](function(_0x5310af){if(_0x5310af){_0x506ebc=_0x5310af;_0x38df16[_0xcd45('0x31')]=_['keys'](db['FreshdeskField'][_0xcd45('0x2e')]);_0x38df16[_0xcd45('0x32')]=_[_0xcd45('0x33')](_0x3bc912[_0xcd45('0x32')]);_0x38df16[_0xcd45('0x34')]=_[_0xcd45('0x49')](_0x38df16[_0xcd45('0x31')],_0x38df16['query']);_0x1edde4['attributes']=_['intersection'](_0x38df16[_0xcd45('0x31')],qs[_0xcd45('0x36')](_0x3bc912[_0xcd45('0x32')][_0xcd45('0x36')]));_0x1edde4[_0xcd45('0x35')]=_0x1edde4[_0xcd45('0x35')][_0xcd45('0x37')]?_0x1edde4[_0xcd45('0x35')]:_0x38df16['model'];_0x1edde4['order']=qs[_0xcd45('0x39')](_0x3bc912['query']['sort']);_0x1edde4[_0xcd45('0x3a')]=qs[_0xcd45('0x34')](_[_0xcd45('0x3b')](_0x3bc912[_0xcd45('0x32')],_0x38df16['filters']));if(_0x3bc912['query'][_0xcd45('0x3c')]){_0x1edde4[_0xcd45('0x3a')]=_['merge'](_0x1edde4[_0xcd45('0x3a')],{'$or':_[_0xcd45('0x2d')](_0x1edde4[_0xcd45('0x35')],function(_0x2d3c2d){var _0x5d0fc9={};_0x5d0fc9[_0x2d3c2d]={'$like':'%'+_0x3bc912[_0xcd45('0x32')]['filter']+'%'};return _0x5d0fc9;})});}_0x1edde4=_['merge']({},_0x1edde4,_0x3bc912[_0xcd45('0x40')]);return _0x506ebc['getDescriptions'](_0x1edde4);}})[_0xcd45('0x28')](function(_0x3a7e2a){if(_0x3a7e2a){_0x1a577c=_0x3a7e2a['length'];if(!_0x3bc912['query'][_0xcd45('0x50')](_0xcd45('0x52'))){_0x1edde4[_0xcd45('0x1f')]=qs[_0xcd45('0x1f')](_0x3bc912[_0xcd45('0x32')]['limit']);_0x1edde4[_0xcd45('0x1d')]=qs[_0xcd45('0x1d')](_0x3bc912[_0xcd45('0x32')][_0xcd45('0x1d')]);}return _0x506ebc[_0xcd45('0x53')](_0x1edde4);}})['then'](function(_0x6fdeb1){if(_0x6fdeb1){return _0x6fdeb1?{'count':_0x1a577c,'rows':_0x6fdeb1}:null;}})[_0xcd45('0x28')](respondWithResult(_0x5eb7d7,null))[_0xcd45('0x46')](handleError(_0x5eb7d7,null));};exports[_0xcd45('0x54')]=function(_0x456206,_0x49c6f8,_0x59aadc){var _0x12e7ca={};var _0x1c0943={};var _0x433729;var _0x46eb3b;return db[_0xcd45('0x41')][_0xcd45('0x4d')]({'where':{'id':_0x456206[_0xcd45('0x48')]['id']}})['then'](handleEntityNotFound(_0x49c6f8,null))[_0xcd45('0x28')](function(_0x42dbef){if(_0x42dbef){_0x433729=_0x42dbef;_0x1c0943['model']=_[_0xcd45('0x33')](db['Tag'][_0xcd45('0x2e')]);_0x1c0943[_0xcd45('0x32')]=_['keys'](_0x456206[_0xcd45('0x32')]);_0x1c0943[_0xcd45('0x34')]=_['intersection'](_0x1c0943[_0xcd45('0x31')],_0x1c0943[_0xcd45('0x32')]);_0x12e7ca['attributes']=_[_0xcd45('0x49')](_0x1c0943[_0xcd45('0x31')],qs[_0xcd45('0x36')](_0x456206['query'][_0xcd45('0x36')]));_0x12e7ca[_0xcd45('0x35')]=_0x12e7ca[_0xcd45('0x35')][_0xcd45('0x37')]?_0x12e7ca['attributes']:_0x1c0943[_0xcd45('0x31')];_0x12e7ca['order']=qs[_0xcd45('0x39')](_0x456206['query'][_0xcd45('0x39')]);_0x12e7ca['where']=qs['filters'](_['pick'](_0x456206[_0xcd45('0x32')],_0x1c0943[_0xcd45('0x34')]));if(_0x456206[_0xcd45('0x32')][_0xcd45('0x3c')]){_0x12e7ca[_0xcd45('0x3a')]=_['merge'](_0x12e7ca[_0xcd45('0x3a')],{'$or':_['map'](_0x12e7ca[_0xcd45('0x35')],function(_0x462902){var _0x7df144={};_0x7df144[_0x462902]={'$like':'%'+_0x456206['query']['filter']+'%'};return _0x7df144;})});}_0x12e7ca=_[_0xcd45('0x3d')]({},_0x12e7ca,_0x456206[_0xcd45('0x40')]);return _0x433729[_0xcd45('0x54')](_0x12e7ca);}})[_0xcd45('0x28')](function(_0x2af891){if(_0x2af891){_0x46eb3b=_0x2af891[_0xcd45('0x37')];if(!_0x456206[_0xcd45('0x32')][_0xcd45('0x50')]('nolimit')){_0x12e7ca[_0xcd45('0x1f')]=qs[_0xcd45('0x1f')](_0x456206[_0xcd45('0x32')][_0xcd45('0x1f')]);_0x12e7ca['offset']=qs[_0xcd45('0x1d')](_0x456206['query'][_0xcd45('0x1d')]);}return _0x433729[_0xcd45('0x54')](_0x12e7ca);}})['then'](function(_0x1075da){if(_0x1075da){return _0x1075da?{'count':_0x46eb3b,'rows':_0x1075da}:null;}})[_0xcd45('0x28')](respondWithResult(_0x49c6f8,null))['catch'](handleError(_0x49c6f8,null));};exports[_0xcd45('0x55')]=function(_0x3a6c45,_0x2952e5,_0xe74311){if(_0x3a6c45['body']['id']){delete _0x3a6c45[_0xcd45('0x4c')]['id'];}return db[_0xcd45('0x41')]['findOne']({'where':{'id':_0x3a6c45[_0xcd45('0x48')]['id']}})[_0xcd45('0x28')](handleEntityNotFound(_0x2952e5,null))[_0xcd45('0x28')](function(_0x3bf724){if(_0x3bf724){return _0x3bf724[_0xcd45('0x55')](_0x3a6c45[_0xcd45('0x4c')]['ids']||[]);}return null;})[_0xcd45('0x28')](respondWithResult(_0x2952e5,null))[_0xcd45('0x46')](handleError(_0x2952e5,null));};
\ No newline at end of file
+var _0xea0c=['../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','Content-Range','apply','reject','save','then','destroy','end','error','stack','name','send','index','map','FreshdeskConfiguration','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','include','find','create','body','update','params','getFields','FreshdeskField','order','hasOwnProperty','getSubjects','getDescriptions','findOne','getTags','Tag','setTags','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','../../components/auth/service'];(function(_0x23f28b,_0x838493){var _0x188683=function(_0x3f137e){while(--_0x3f137e){_0x23f28b['push'](_0x23f28b['shift']());}};_0x188683(++_0x838493);}(_0xea0c,0x142));var _0xcea0=function(_0x5d2f52,_0x56463d){_0x5d2f52=_0x5d2f52-0x0;var _0xf1022a=_0xea0c[_0x5d2f52];return _0xf1022a;};'use strict';var emlformat=require(_0xcea0('0x0'));var rimraf=require(_0xcea0('0x1'));var zipdir=require(_0xcea0('0x2'));var jsonpatch=require(_0xcea0('0x3'));var rp=require('request-promise');var moment=require(_0xcea0('0x4'));var BPromise=require(_0xcea0('0x5'));var Mustache=require(_0xcea0('0x6'));var util=require(_0xcea0('0x7'));var path=require(_0xcea0('0x8'));var sox=require(_0xcea0('0x9'));var csv=require(_0xcea0('0xa'));var ejs=require(_0xcea0('0xb'));var fs=require('fs');var fs_extra=require(_0xcea0('0xc'));var _=require(_0xcea0('0xd'));var squel=require(_0xcea0('0xe'));var crypto=require(_0xcea0('0xf'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xcea0('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xcea0('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xcea0('0x12'));var logger=require(_0xcea0('0x13'))(_0xcea0('0x14'));var utils=require(_0xcea0('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xcea0('0x16'));var db=require(_0xcea0('0x17'))['db'];function respondWithStatusCode(_0x48db6b,_0x52de85){_0x52de85=_0x52de85||0xcc;return function(_0x5dffaf){if(_0x5dffaf){return _0x48db6b[_0xcea0('0x18')](_0x52de85);}return _0x48db6b[_0xcea0('0x19')](_0x52de85)['end']();};}function respondWithResult(_0x449607,_0x556f1c){_0x556f1c=_0x556f1c||0xc8;return function(_0x2c5f9b){if(_0x2c5f9b){return _0x449607['status'](_0x556f1c)[_0xcea0('0x1a')](_0x2c5f9b);}};}function respondWithFilteredResult(_0x170bae,_0x5909c2){return function(_0x1d689d){if(_0x1d689d){var _0x17b8a5=typeof _0x5909c2['offset']===_0xcea0('0x1b')&&typeof _0x5909c2[_0xcea0('0x1c')]===_0xcea0('0x1b');var _0x825b12=_0x1d689d[_0xcea0('0x1d')];var _0x1c33a9=_0x17b8a5?0x0:_0x5909c2[_0xcea0('0x1e')];var _0x3093b2=_0x17b8a5?_0x1d689d[_0xcea0('0x1d')]:_0x5909c2[_0xcea0('0x1e')]+_0x5909c2[_0xcea0('0x1c')];var _0x2c588f;if(_0x3093b2>=_0x825b12){_0x3093b2=_0x825b12;_0x2c588f=0xc8;}else{_0x2c588f=0xce;}_0x170bae['status'](_0x2c588f);return _0x170bae['set'](_0xcea0('0x1f'),_0x1c33a9+'-'+_0x3093b2+'/'+_0x825b12)[_0xcea0('0x1a')](_0x1d689d);}return null;};}function patchUpdates(_0x243217){return function(_0x382215){try{jsonpatch[_0xcea0('0x20')](_0x382215,_0x243217,!![]);}catch(_0x1ec44b){return BPromise[_0xcea0('0x21')](_0x1ec44b);}return _0x382215[_0xcea0('0x22')]();};}function saveUpdates(_0x6eb8,_0x364589){return function(_0x5704dc){if(_0x5704dc){return _0x5704dc['update'](_0x6eb8)[_0xcea0('0x23')](function(_0x56630a){return _0x56630a;});}return null;};}function removeEntity(_0x3bd6f6,_0x4b20b1){return function(_0x1e24bd){if(_0x1e24bd){return _0x1e24bd[_0xcea0('0x24')]()[_0xcea0('0x23')](function(){_0x3bd6f6[_0xcea0('0x19')](0xcc)[_0xcea0('0x25')]();});}};}function handleEntityNotFound(_0xc0a84f,_0x3f1b65){return function(_0x14aa3b){if(!_0x14aa3b){_0xc0a84f[_0xcea0('0x18')](0x194);}return _0x14aa3b;};}function handleError(_0x97b913,_0x22f0c1){_0x22f0c1=_0x22f0c1||0x1f4;return function(_0x2a5f7e){logger[_0xcea0('0x26')](_0x2a5f7e[_0xcea0('0x27')]);if(_0x2a5f7e[_0xcea0('0x28')]){delete _0x2a5f7e['name'];}_0x97b913['status'](_0x22f0c1)[_0xcea0('0x29')](_0x2a5f7e);};}exports[_0xcea0('0x2a')]=function(_0xca6bfe,_0x48466a){var _0x13a3b4={},_0x5dbfc2={},_0x5e7611={'count':0x0,'rows':[]};var _0xfd90b1=_[_0xcea0('0x2b')](db[_0xcea0('0x2c')][_0xcea0('0x2d')],function(_0x6e301){return{'name':_0x6e301[_0xcea0('0x2e')],'type':_0x6e301[_0xcea0('0x2f')][_0xcea0('0x30')]};});_0x5dbfc2[_0xcea0('0x31')]=_[_0xcea0('0x2b')](_0xfd90b1,_0xcea0('0x28'));_0x5dbfc2[_0xcea0('0x32')]=_[_0xcea0('0x33')](_0xca6bfe[_0xcea0('0x32')]);_0x5dbfc2[_0xcea0('0x34')]=_[_0xcea0('0x35')](_0x5dbfc2['model'],_0x5dbfc2[_0xcea0('0x32')]);_0x13a3b4['attributes']=_[_0xcea0('0x35')](_0x5dbfc2[_0xcea0('0x31')],qs['fields'](_0xca6bfe[_0xcea0('0x32')][_0xcea0('0x36')]));_0x13a3b4['attributes']=_0x13a3b4[_0xcea0('0x37')][_0xcea0('0x38')]?_0x13a3b4[_0xcea0('0x37')]:_0x5dbfc2[_0xcea0('0x31')];if(!_0xca6bfe[_0xcea0('0x32')]['hasOwnProperty'](_0xcea0('0x39'))){_0x13a3b4[_0xcea0('0x1c')]=qs[_0xcea0('0x1c')](_0xca6bfe['query'][_0xcea0('0x1c')]);_0x13a3b4[_0xcea0('0x1e')]=qs[_0xcea0('0x1e')](_0xca6bfe[_0xcea0('0x32')]['offset']);}_0x13a3b4['order']=qs[_0xcea0('0x3a')](_0xca6bfe['query'][_0xcea0('0x3a')]);_0x13a3b4[_0xcea0('0x3b')]=qs[_0xcea0('0x34')](_[_0xcea0('0x3c')](_0xca6bfe[_0xcea0('0x32')],_0x5dbfc2[_0xcea0('0x34')]),_0xfd90b1);if(_0xca6bfe[_0xcea0('0x32')][_0xcea0('0x3d')]){_0x13a3b4[_0xcea0('0x3b')]=_[_0xcea0('0x3e')](_0x13a3b4[_0xcea0('0x3b')],{'$or':_[_0xcea0('0x2b')](_0xfd90b1,function(_0x23131f){if(_0x23131f[_0xcea0('0x2f')]!==_0xcea0('0x3f')){var _0x3402f9={};_0x3402f9[_0x23131f['name']]={'$like':'%'+_0xca6bfe[_0xcea0('0x32')]['filter']+'%'};return _0x3402f9;}})});}_0x13a3b4=_[_0xcea0('0x3e')]({},_0x13a3b4,_0xca6bfe[_0xcea0('0x40')]);var _0x67091e={'where':_0x13a3b4['where']};return db[_0xcea0('0x2c')][_0xcea0('0x1d')](_0x67091e)[_0xcea0('0x23')](function(_0x296d5d){_0x5e7611[_0xcea0('0x1d')]=_0x296d5d;if(_0xca6bfe[_0xcea0('0x32')][_0xcea0('0x41')]){_0x13a3b4['include']=[{'all':!![]}];}return db[_0xcea0('0x2c')][_0xcea0('0x42')](_0x13a3b4);})['then'](function(_0x534333){_0x5e7611[_0xcea0('0x43')]=_0x534333;return _0x5e7611;})[_0xcea0('0x23')](respondWithFilteredResult(_0x48466a,_0x13a3b4))[_0xcea0('0x44')](handleError(_0x48466a,null));};exports['show']=function(_0x5a63ce,_0x370f7d){var _0x761d5c={'raw':![],'where':{'id':_0x5a63ce['params']['id']}},_0x3dbf20={};_0x3dbf20[_0xcea0('0x31')]=_[_0xcea0('0x33')](db[_0xcea0('0x2c')][_0xcea0('0x2d')]);_0x3dbf20[_0xcea0('0x32')]=_[_0xcea0('0x33')](_0x5a63ce[_0xcea0('0x32')]);_0x3dbf20['filters']=_[_0xcea0('0x35')](_0x3dbf20[_0xcea0('0x31')],_0x3dbf20[_0xcea0('0x32')]);_0x761d5c[_0xcea0('0x37')]=_[_0xcea0('0x35')](_0x3dbf20[_0xcea0('0x31')],qs[_0xcea0('0x36')](_0x5a63ce['query']['fields']));_0x761d5c[_0xcea0('0x37')]=_0x761d5c[_0xcea0('0x37')][_0xcea0('0x38')]?_0x761d5c[_0xcea0('0x37')]:_0x3dbf20[_0xcea0('0x31')];if(_0x5a63ce['query'][_0xcea0('0x41')]){_0x761d5c[_0xcea0('0x45')]=[{'all':!![]}];}_0x761d5c=_[_0xcea0('0x3e')]({},_0x761d5c,_0x5a63ce[_0xcea0('0x40')]);return db['FreshdeskConfiguration'][_0xcea0('0x46')](_0x761d5c)[_0xcea0('0x23')](handleEntityNotFound(_0x370f7d,null))[_0xcea0('0x23')](respondWithResult(_0x370f7d,null))['catch'](handleError(_0x370f7d,null));};exports[_0xcea0('0x47')]=function(_0x19874c,_0x443c10){return db[_0xcea0('0x2c')]['create'](_0x19874c[_0xcea0('0x48')],{})['then'](respondWithResult(_0x443c10,0xc9))['catch'](handleError(_0x443c10,null));};exports[_0xcea0('0x49')]=function(_0x378918,_0x400554){if(_0x378918[_0xcea0('0x48')]['id']){delete _0x378918[_0xcea0('0x48')]['id'];}return db['FreshdeskConfiguration'][_0xcea0('0x46')]({'where':{'id':_0x378918[_0xcea0('0x4a')]['id']}})[_0xcea0('0x23')](handleEntityNotFound(_0x400554,null))[_0xcea0('0x23')](saveUpdates(_0x378918[_0xcea0('0x48')],null))['then'](respondWithResult(_0x400554,null))[_0xcea0('0x44')](handleError(_0x400554,null));};exports[_0xcea0('0x24')]=function(_0x334424,_0x3035bf){return db['FreshdeskConfiguration'][_0xcea0('0x46')]({'where':{'id':_0x334424['params']['id']}})[_0xcea0('0x23')](handleEntityNotFound(_0x3035bf,null))[_0xcea0('0x23')](removeEntity(_0x3035bf,null))['catch'](handleError(_0x3035bf,null));};exports[_0xcea0('0x4b')]=function(_0xd61439,_0xfc47d0,_0x1c0bb5){var _0x4061a5={};var _0x10e9ef={};var _0x2ea49b;var _0x1b8c25;return db[_0xcea0('0x2c')]['findOne']({'where':{'id':_0xd61439['params']['id']}})['then'](handleEntityNotFound(_0xfc47d0,null))['then'](function(_0x3b60fa){if(_0x3b60fa){_0x2ea49b=_0x3b60fa;_0x10e9ef[_0xcea0('0x31')]=_[_0xcea0('0x33')](db[_0xcea0('0x4c')][_0xcea0('0x2d')]);_0x10e9ef[_0xcea0('0x32')]=_['keys'](_0xd61439[_0xcea0('0x32')]);_0x10e9ef['filters']=_[_0xcea0('0x35')](_0x10e9ef[_0xcea0('0x31')],_0x10e9ef[_0xcea0('0x32')]);_0x4061a5['attributes']=_['intersection'](_0x10e9ef[_0xcea0('0x31')],qs[_0xcea0('0x36')](_0xd61439[_0xcea0('0x32')]['fields']));_0x4061a5['attributes']=_0x4061a5[_0xcea0('0x37')][_0xcea0('0x38')]?_0x4061a5[_0xcea0('0x37')]:_0x10e9ef[_0xcea0('0x31')];_0x4061a5[_0xcea0('0x4d')]=qs[_0xcea0('0x3a')](_0xd61439[_0xcea0('0x32')][_0xcea0('0x3a')]);_0x4061a5[_0xcea0('0x3b')]=qs[_0xcea0('0x34')](_['pick'](_0xd61439[_0xcea0('0x32')],_0x10e9ef[_0xcea0('0x34')]));if(_0xd61439[_0xcea0('0x32')][_0xcea0('0x3d')]){_0x4061a5[_0xcea0('0x3b')]=_[_0xcea0('0x3e')](_0x4061a5[_0xcea0('0x3b')],{'$or':_['map'](_0x4061a5['attributes'],function(_0x3cec30){var _0x3e7125={};_0x3e7125[_0x3cec30]={'$like':'%'+_0xd61439[_0xcea0('0x32')][_0xcea0('0x3d')]+'%'};return _0x3e7125;})});}_0x4061a5=_[_0xcea0('0x3e')]({},_0x4061a5,_0xd61439[_0xcea0('0x40')]);return _0x2ea49b[_0xcea0('0x4b')](_0x4061a5);}})['then'](function(_0x125aea){if(_0x125aea){_0x1b8c25=_0x125aea['length'];if(!_0xd61439[_0xcea0('0x32')][_0xcea0('0x4e')](_0xcea0('0x39'))){_0x4061a5[_0xcea0('0x1c')]=qs['limit'](_0xd61439[_0xcea0('0x32')][_0xcea0('0x1c')]);_0x4061a5[_0xcea0('0x1e')]=qs[_0xcea0('0x1e')](_0xd61439[_0xcea0('0x32')][_0xcea0('0x1e')]);}return _0x2ea49b[_0xcea0('0x4b')](_0x4061a5);}})[_0xcea0('0x23')](function(_0x1a8d14){if(_0x1a8d14){return _0x1a8d14?{'count':_0x1b8c25,'rows':_0x1a8d14}:null;}})[_0xcea0('0x23')](respondWithResult(_0xfc47d0,null))[_0xcea0('0x44')](handleError(_0xfc47d0,null));};exports[_0xcea0('0x4f')]=function(_0x271604,_0x4ff18e,_0x1deeb8){var _0x428157={};var _0x16534f={};var _0x3d6a06;var _0xdf290d;return db[_0xcea0('0x2c')]['findOne']({'where':{'id':_0x271604[_0xcea0('0x4a')]['id']}})[_0xcea0('0x23')](handleEntityNotFound(_0x4ff18e,null))[_0xcea0('0x23')](function(_0x45a85f){if(_0x45a85f){_0x3d6a06=_0x45a85f;_0x16534f[_0xcea0('0x31')]=_[_0xcea0('0x33')](db[_0xcea0('0x4c')][_0xcea0('0x2d')]);_0x16534f[_0xcea0('0x32')]=_['keys'](_0x271604['query']);_0x16534f[_0xcea0('0x34')]=_['intersection'](_0x16534f['model'],_0x16534f[_0xcea0('0x32')]);_0x428157[_0xcea0('0x37')]=_[_0xcea0('0x35')](_0x16534f[_0xcea0('0x31')],qs[_0xcea0('0x36')](_0x271604[_0xcea0('0x32')][_0xcea0('0x36')]));_0x428157[_0xcea0('0x37')]=_0x428157[_0xcea0('0x37')][_0xcea0('0x38')]?_0x428157['attributes']:_0x16534f[_0xcea0('0x31')];_0x428157[_0xcea0('0x4d')]=qs[_0xcea0('0x3a')](_0x271604[_0xcea0('0x32')][_0xcea0('0x3a')]);_0x428157[_0xcea0('0x3b')]=qs[_0xcea0('0x34')](_[_0xcea0('0x3c')](_0x271604[_0xcea0('0x32')],_0x16534f['filters']));if(_0x271604[_0xcea0('0x32')][_0xcea0('0x3d')]){_0x428157['where']=_['merge'](_0x428157[_0xcea0('0x3b')],{'$or':_['map'](_0x428157[_0xcea0('0x37')],function(_0xe990a2){var _0x2c1189={};_0x2c1189[_0xe990a2]={'$like':'%'+_0x271604[_0xcea0('0x32')]['filter']+'%'};return _0x2c1189;})});}_0x428157=_['merge']({},_0x428157,_0x271604[_0xcea0('0x40')]);return _0x3d6a06['getSubjects'](_0x428157);}})['then'](function(_0x5be8ab){if(_0x5be8ab){_0xdf290d=_0x5be8ab['length'];if(!_0x271604[_0xcea0('0x32')][_0xcea0('0x4e')](_0xcea0('0x39'))){_0x428157[_0xcea0('0x1c')]=qs[_0xcea0('0x1c')](_0x271604[_0xcea0('0x32')][_0xcea0('0x1c')]);_0x428157[_0xcea0('0x1e')]=qs[_0xcea0('0x1e')](_0x271604[_0xcea0('0x32')]['offset']);}return _0x3d6a06[_0xcea0('0x4f')](_0x428157);}})['then'](function(_0x209c9a){if(_0x209c9a){return _0x209c9a?{'count':_0xdf290d,'rows':_0x209c9a}:null;}})[_0xcea0('0x23')](respondWithResult(_0x4ff18e,null))['catch'](handleError(_0x4ff18e,null));};exports[_0xcea0('0x50')]=function(_0x5ccfa4,_0x3ba7db,_0x2a83f4){var _0x4a6bfd={};var _0x56dff1={};var _0x181b1b;var _0x4f1b61;return db[_0xcea0('0x2c')][_0xcea0('0x51')]({'where':{'id':_0x5ccfa4[_0xcea0('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3ba7db,null))[_0xcea0('0x23')](function(_0x4c6cd3){if(_0x4c6cd3){_0x181b1b=_0x4c6cd3;_0x56dff1[_0xcea0('0x31')]=_[_0xcea0('0x33')](db[_0xcea0('0x4c')]['rawAttributes']);_0x56dff1[_0xcea0('0x32')]=_[_0xcea0('0x33')](_0x5ccfa4[_0xcea0('0x32')]);_0x56dff1['filters']=_['intersection'](_0x56dff1[_0xcea0('0x31')],_0x56dff1[_0xcea0('0x32')]);_0x4a6bfd[_0xcea0('0x37')]=_[_0xcea0('0x35')](_0x56dff1[_0xcea0('0x31')],qs[_0xcea0('0x36')](_0x5ccfa4[_0xcea0('0x32')][_0xcea0('0x36')]));_0x4a6bfd[_0xcea0('0x37')]=_0x4a6bfd['attributes'][_0xcea0('0x38')]?_0x4a6bfd[_0xcea0('0x37')]:_0x56dff1['model'];_0x4a6bfd[_0xcea0('0x4d')]=qs[_0xcea0('0x3a')](_0x5ccfa4[_0xcea0('0x32')]['sort']);_0x4a6bfd['where']=qs[_0xcea0('0x34')](_['pick'](_0x5ccfa4['query'],_0x56dff1[_0xcea0('0x34')]));if(_0x5ccfa4[_0xcea0('0x32')][_0xcea0('0x3d')]){_0x4a6bfd['where']=_['merge'](_0x4a6bfd[_0xcea0('0x3b')],{'$or':_[_0xcea0('0x2b')](_0x4a6bfd[_0xcea0('0x37')],function(_0x1fe2f9){var _0x388886={};_0x388886[_0x1fe2f9]={'$like':'%'+_0x5ccfa4[_0xcea0('0x32')][_0xcea0('0x3d')]+'%'};return _0x388886;})});}_0x4a6bfd=_[_0xcea0('0x3e')]({},_0x4a6bfd,_0x5ccfa4['options']);return _0x181b1b[_0xcea0('0x50')](_0x4a6bfd);}})[_0xcea0('0x23')](function(_0x8019a9){if(_0x8019a9){_0x4f1b61=_0x8019a9[_0xcea0('0x38')];if(!_0x5ccfa4[_0xcea0('0x32')][_0xcea0('0x4e')]('nolimit')){_0x4a6bfd[_0xcea0('0x1c')]=qs[_0xcea0('0x1c')](_0x5ccfa4[_0xcea0('0x32')][_0xcea0('0x1c')]);_0x4a6bfd[_0xcea0('0x1e')]=qs[_0xcea0('0x1e')](_0x5ccfa4[_0xcea0('0x32')][_0xcea0('0x1e')]);}return _0x181b1b[_0xcea0('0x50')](_0x4a6bfd);}})['then'](function(_0x40f113){if(_0x40f113){return _0x40f113?{'count':_0x4f1b61,'rows':_0x40f113}:null;}})[_0xcea0('0x23')](respondWithResult(_0x3ba7db,null))[_0xcea0('0x44')](handleError(_0x3ba7db,null));};exports[_0xcea0('0x52')]=function(_0x57baf2,_0xe31b67,_0x5db94a){var _0x1f34e2={};var _0x3e50aa={};var _0x1bb120;var _0x27a0b9;return db[_0xcea0('0x2c')][_0xcea0('0x51')]({'where':{'id':_0x57baf2[_0xcea0('0x4a')]['id']}})['then'](handleEntityNotFound(_0xe31b67,null))[_0xcea0('0x23')](function(_0x87b747){if(_0x87b747){_0x1bb120=_0x87b747;_0x3e50aa[_0xcea0('0x31')]=_[_0xcea0('0x33')](db[_0xcea0('0x53')][_0xcea0('0x2d')]);_0x3e50aa[_0xcea0('0x32')]=_['keys'](_0x57baf2['query']);_0x3e50aa['filters']=_[_0xcea0('0x35')](_0x3e50aa[_0xcea0('0x31')],_0x3e50aa[_0xcea0('0x32')]);_0x1f34e2[_0xcea0('0x37')]=_[_0xcea0('0x35')](_0x3e50aa[_0xcea0('0x31')],qs[_0xcea0('0x36')](_0x57baf2[_0xcea0('0x32')][_0xcea0('0x36')]));_0x1f34e2[_0xcea0('0x37')]=_0x1f34e2[_0xcea0('0x37')]['length']?_0x1f34e2[_0xcea0('0x37')]:_0x3e50aa[_0xcea0('0x31')];_0x1f34e2[_0xcea0('0x4d')]=qs[_0xcea0('0x3a')](_0x57baf2[_0xcea0('0x32')][_0xcea0('0x3a')]);_0x1f34e2[_0xcea0('0x3b')]=qs[_0xcea0('0x34')](_[_0xcea0('0x3c')](_0x57baf2[_0xcea0('0x32')],_0x3e50aa[_0xcea0('0x34')]));if(_0x57baf2['query'][_0xcea0('0x3d')]){_0x1f34e2[_0xcea0('0x3b')]=_[_0xcea0('0x3e')](_0x1f34e2[_0xcea0('0x3b')],{'$or':_[_0xcea0('0x2b')](_0x1f34e2['attributes'],function(_0x56e92b){var _0x13bd49={};_0x13bd49[_0x56e92b]={'$like':'%'+_0x57baf2[_0xcea0('0x32')][_0xcea0('0x3d')]+'%'};return _0x13bd49;})});}_0x1f34e2=_[_0xcea0('0x3e')]({},_0x1f34e2,_0x57baf2['options']);return _0x1bb120[_0xcea0('0x52')](_0x1f34e2);}})[_0xcea0('0x23')](function(_0x2c06df){if(_0x2c06df){_0x27a0b9=_0x2c06df[_0xcea0('0x38')];if(!_0x57baf2[_0xcea0('0x32')]['hasOwnProperty'](_0xcea0('0x39'))){_0x1f34e2[_0xcea0('0x1c')]=qs[_0xcea0('0x1c')](_0x57baf2['query'][_0xcea0('0x1c')]);_0x1f34e2[_0xcea0('0x1e')]=qs[_0xcea0('0x1e')](_0x57baf2[_0xcea0('0x32')][_0xcea0('0x1e')]);}return _0x1bb120[_0xcea0('0x52')](_0x1f34e2);}})[_0xcea0('0x23')](function(_0x58b5b5){if(_0x58b5b5){return _0x58b5b5?{'count':_0x27a0b9,'rows':_0x58b5b5}:null;}})[_0xcea0('0x23')](respondWithResult(_0xe31b67,null))[_0xcea0('0x44')](handleError(_0xe31b67,null));};exports[_0xcea0('0x54')]=function(_0x34cfce,_0x4146b5,_0x145a0){if(_0x34cfce[_0xcea0('0x48')]['id']){delete _0x34cfce[_0xcea0('0x48')]['id'];}return db[_0xcea0('0x2c')][_0xcea0('0x51')]({'where':{'id':_0x34cfce['params']['id']}})['then'](handleEntityNotFound(_0x4146b5,null))[_0xcea0('0x23')](function(_0x191911){if(_0x191911){return _0x191911['setTags'](_0x34cfce[_0xcea0('0x48')]['ids']||[]);}return null;})['then'](respondWithResult(_0x4146b5,null))[_0xcea0('0x44')](handleError(_0x4146b5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca46=['FreshdeskConfiguration','int_freshdesk_configurations','lodash','util','../../config/logger','moment','path','rimraf','../../config/environment','./intFreshdeskConfiguration.attributes','exports','define'];(function(_0x49668b,_0x561905){var _0x280299=function(_0x962a8b){while(--_0x962a8b){_0x49668b['push'](_0x49668b['shift']());}};_0x280299(++_0x561905);}(_0xca46,0x19a));var _0x6ca4=function(_0x5edd2c,_0x2810dc){_0x5edd2c=_0x5edd2c-0x0;var _0x3a3207=_0xca46[_0x5edd2c];return _0x3a3207;};'use strict';var _=require(_0x6ca4('0x0'));var util=require(_0x6ca4('0x1'));var logger=require(_0x6ca4('0x2'))('api');var moment=require(_0x6ca4('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x6ca4('0x4'));var rimraf=require(_0x6ca4('0x5'));var config=require(_0x6ca4('0x6'));var attributes=require(_0x6ca4('0x7'));module[_0x6ca4('0x8')]=function(_0x50f725,_0x6c4469){return _0x50f725[_0x6ca4('0x9')](_0x6ca4('0xa'),attributes,{'tableName':_0x6ca4('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0bca=['util','api','bluebird','request-promise','path','../../config/environment','./intFreshdeskConfiguration.attributes','exports','define','FreshdeskConfiguration','int_freshdesk_configurations','lodash'];(function(_0x289305,_0x2d50b4){var _0x3e4bd8=function(_0x457c6a){while(--_0x457c6a){_0x289305['push'](_0x289305['shift']());}};_0x3e4bd8(++_0x2d50b4);}(_0x0bca,0xa7));var _0xa0bc=function(_0x382a62,_0x1baa5e){_0x382a62=_0x382a62-0x0;var _0x490a25=_0x0bca[_0x382a62];return _0x490a25;};'use strict';var _=require(_0xa0bc('0x0'));var util=require(_0xa0bc('0x1'));var logger=require('../../config/logger')(_0xa0bc('0x2'));var moment=require('moment');var BPromise=require(_0xa0bc('0x3'));var rp=require(_0xa0bc('0x4'));var fs=require('fs');var path=require(_0xa0bc('0x5'));var rimraf=require('rimraf');var config=require(_0xa0bc('0x6'));var attributes=require(_0xa0bc('0x7'));module[_0xa0bc('0x8')]=function(_0x566feb,_0x513716){return _0x566feb[_0xa0bc('0x9')](_0xa0bc('0xa'),attributes,{'tableName':_0xa0bc('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0eec=['../../config/environment','client','http','request','then','info','FreshdeskConfiguration,\x20%s,\x20%s','request\x20sent','error','message','result','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x0eec,0xef));var _0xc0ee=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x0eec[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0xc0ee('0x0'));var util=require('util');var moment=require(_0xc0ee('0x1'));var BPromise=require('bluebird');var rs=require(_0xc0ee('0x2'));var fs=require('fs');var Redis=require(_0xc0ee('0x3'));var db=require(_0xc0ee('0x4'))['db'];var utils=require(_0xc0ee('0x5'));var logger=require(_0xc0ee('0x6'))(_0xc0ee('0x7'));var config=require(_0xc0ee('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xc0ee('0x9')][_0xc0ee('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x369e8e,_0x3aff84,_0x5b2ecc){return new BPromise(function(_0x4a8135,_0x3acb0b){return client[_0xc0ee('0xb')](_0x369e8e,_0x5b2ecc)[_0xc0ee('0xc')](function(_0x1db2df){logger[_0xc0ee('0xd')](_0xc0ee('0xe'),_0x3aff84,_0xc0ee('0xf'));logger['debug']('FreshdeskConfiguration,\x20%s,\x20%s,\x20%s',_0x3aff84,'request\x20sent',JSON['stringify'](_0x1db2df));if(_0x1db2df[_0xc0ee('0x10')]){if(_0x1db2df[_0xc0ee('0x10')]['code']===0x1f4){logger[_0xc0ee('0x10')](_0xc0ee('0xe'),_0x3aff84,_0x1db2df['error'][_0xc0ee('0x11')]);return _0x3acb0b(_0x1db2df[_0xc0ee('0x10')][_0xc0ee('0x11')]);}logger[_0xc0ee('0x10')](_0xc0ee('0xe'),_0x3aff84,_0x1db2df[_0xc0ee('0x10')]['message']);return _0x4a8135(_0x1db2df[_0xc0ee('0x10')][_0xc0ee('0x11')]);}else{logger['info']('FreshdeskConfiguration,\x20%s,\x20%s',_0x3aff84,_0xc0ee('0xf'));_0x4a8135(_0x1db2df[_0xc0ee('0x12')]['message']);}})['catch'](function(_0x28f2b8){logger[_0xc0ee('0x10')](_0xc0ee('0xe'),_0x3aff84,_0x28f2b8);_0x3acb0b(_0x28f2b8);});});}
\ No newline at end of file
+var _0x1eba=['debug','FreshdeskConfiguration,\x20%s,\x20%s,\x20%s','FreshdeskConfiguration,\x20%s,\x20%s','error','message','info','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','client','http','request','then','request\x20sent'];(function(_0x475296,_0xfe00e9){var _0x39a546=function(_0x70039d){while(--_0x70039d){_0x475296['push'](_0x475296['shift']());}};_0x39a546(++_0xfe00e9);}(_0x1eba,0x138));var _0xa1eb=function(_0x2f227c,_0x360c3a){_0x2f227c=_0x2f227c-0x0;var _0x5032bc=_0x1eba[_0x2f227c];return _0x5032bc;};'use strict';var _=require('lodash');var util=require(_0xa1eb('0x0'));var moment=require('moment');var BPromise=require(_0xa1eb('0x1'));var rs=require(_0xa1eb('0x2'));var fs=require('fs');var Redis=require(_0xa1eb('0x3'));var db=require(_0xa1eb('0x4'))['db'];var utils=require(_0xa1eb('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0xa1eb('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xa1eb('0x7')][_0xa1eb('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x50117f,_0x5625c8,_0x41b35d){return new BPromise(function(_0x21bf42,_0x11cca1){return client[_0xa1eb('0x9')](_0x50117f,_0x41b35d)[_0xa1eb('0xa')](function(_0x319d59){logger['info']('FreshdeskConfiguration,\x20%s,\x20%s',_0x5625c8,_0xa1eb('0xb'));logger[_0xa1eb('0xc')](_0xa1eb('0xd'),_0x5625c8,_0xa1eb('0xb'),JSON['stringify'](_0x319d59));if(_0x319d59['error']){if(_0x319d59['error']['code']===0x1f4){logger['error'](_0xa1eb('0xe'),_0x5625c8,_0x319d59[_0xa1eb('0xf')][_0xa1eb('0x10')]);return _0x11cca1(_0x319d59[_0xa1eb('0xf')]['message']);}logger['error'](_0xa1eb('0xe'),_0x5625c8,_0x319d59['error'][_0xa1eb('0x10')]);return _0x21bf42(_0x319d59[_0xa1eb('0xf')]['message']);}else{logger[_0xa1eb('0x11')](_0xa1eb('0xe'),_0x5625c8,_0xa1eb('0xb'));_0x21bf42(_0x319d59['result'][_0xa1eb('0x10')]);}})['catch'](function(_0x31312f){logger[_0xa1eb('0xf')](_0xa1eb('0xe'),_0x5625c8,_0x31312f);_0x11cca1(_0x31312f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25da=['isAuthenticated','index','show','post','create','put','delete','/:id','exports','util','connect-timeout','Router','../../components/auth/service','../../config/environment','./intFreshdeskField.controller','get'];(function(_0x1ba153,_0x6643ee){var _0x32b443=function(_0x78ba56){while(--_0x78ba56){_0x1ba153['push'](_0x1ba153['shift']());}};_0x32b443(++_0x6643ee);}(_0x25da,0x139));var _0xa25d=function(_0x48f3fe,_0x4a2b63){_0x48f3fe=_0x48f3fe-0x0;var _0x581ea8=_0x25da[_0x48f3fe];return _0x581ea8;};'use strict';var multer=require('multer');var util=require(_0xa25d('0x0'));var path=require('path');var timeout=require(_0xa25d('0x1'));var express=require('express');var router=express[_0xa25d('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0xa25d('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0xa25d('0x4'));var controller=require(_0xa25d('0x5'));router[_0xa25d('0x6')]('/',auth[_0xa25d('0x7')](),controller[_0xa25d('0x8')]);router[_0xa25d('0x6')]('/:id',auth[_0xa25d('0x7')](),controller[_0xa25d('0x9')]);router[_0xa25d('0xa')]('/',auth[_0xa25d('0x7')](),controller[_0xa25d('0xb')]);router[_0xa25d('0xc')]('/:id',auth[_0xa25d('0x7')](),controller['update']);router[_0xa25d('0xd')](_0xa25d('0xe'),auth[_0xa25d('0x7')](),controller['destroy']);module[_0xa25d('0xf')]=router;
\ No newline at end of file
+var _0xa066=['index','get','/:id','post','create','put','delete','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intFreshdeskField.controller','isAuthenticated'];(function(_0xa35c72,_0x1841cd){var _0x7743eb=function(_0x4010dd){while(--_0x4010dd){_0xa35c72['push'](_0xa35c72['shift']());}};_0x7743eb(++_0x1841cd);}(_0xa066,0xc3));var _0x6a06=function(_0x13e9d4,_0x25483d){_0x13e9d4=_0x13e9d4-0x0;var _0x2c62b8=_0xa066[_0x13e9d4];return _0x2c62b8;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x6a06('0x0'));var timeout=require(_0x6a06('0x1'));var express=require(_0x6a06('0x2'));var router=express[_0x6a06('0x3')]();var fs_extra=require(_0x6a06('0x4'));var auth=require(_0x6a06('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x6a06('0x6'));var controller=require(_0x6a06('0x7'));router['get']('/',auth[_0x6a06('0x8')](),controller[_0x6a06('0x9')]);router[_0x6a06('0xa')](_0x6a06('0xb'),auth[_0x6a06('0x8')](),controller['show']);router[_0x6a06('0xc')]('/',auth[_0x6a06('0x8')](),controller[_0x6a06('0xd')]);router[_0x6a06('0xe')](_0x6a06('0xb'),auth[_0x6a06('0x8')](),controller['update']);router[_0x6a06('0xf')](_0x6a06('0xb'),auth[_0x6a06('0x8')](),controller['destroy']);module[_0x6a06('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x655c=['exports','ENUM','string','keyValue','STRING','variable','customVariable','BOOLEAN','sequelize'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x655c,0x8f));var _0xc655=function(_0x243163,_0x351905){_0x243163=_0x243163-0x0;var _0x1f636b=_0x655c[_0x243163];return _0x1f636b;};'use strict';var Sequelize=require(_0xc655('0x0'));module[_0xc655('0x1')]={'type':{'type':Sequelize[_0xc655('0x2')](_0xc655('0x3'),'variable','customVariable',_0xc655('0x4'),'picklist'),'defaultValue':'string'},'content':{'type':Sequelize[_0xc655('0x5')]},'key':{'type':Sequelize[_0xc655('0x5')]},'keyType':{'type':Sequelize[_0xc655('0x2')](_0xc655('0x3'),_0xc655('0x6'),_0xc655('0x7'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0xc655('0x5')]},'customField':{'type':Sequelize[_0xc655('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xc655('0x5')]}};
\ No newline at end of file
+var _0x91ef=['picklist','STRING','ENUM','BOOLEAN','exports','string','variable','customVariable','keyValue'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x91ef,0x175));var _0xf91e=function(_0x16b9ed,_0x56517a){_0x16b9ed=_0x16b9ed-0x0;var _0x66b1f8=_0x91ef[_0x16b9ed];return _0x66b1f8;};'use strict';var Sequelize=require('sequelize');module[_0xf91e('0x0')]={'type':{'type':Sequelize['ENUM'](_0xf91e('0x1'),_0xf91e('0x2'),_0xf91e('0x3'),_0xf91e('0x4'),_0xf91e('0x5')),'defaultValue':'string'},'content':{'type':Sequelize[_0xf91e('0x6')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0xf91e('0x7')]('string',_0xf91e('0x2'),_0xf91e('0x3'))},'keyContent':{'type':Sequelize[_0xf91e('0x6')]},'idField':{'type':Sequelize[_0xf91e('0x6')]},'nameField':{'type':Sequelize[_0xf91e('0x6')]},'customField':{'type':Sequelize[_0xf91e('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xf91e('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x222f=['../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','FreshdeskField','rawAttributes','fieldName','key','model','query','keys','attributes','intersection','fields','nolimit','sort','where','filters','filter','merge','type','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','find','create','body','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','to-csv','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x3dcb32,_0x28c7fd){var _0x2ce602=function(_0x3012e3){while(--_0x3012e3){_0x3dcb32['push'](_0x3dcb32['shift']());}};_0x2ce602(++_0x28c7fd);}(_0x222f,0x1a4));var _0xf222=function(_0x20c809,_0x26b566){_0x20c809=_0x20c809-0x0;var _0x1064a1=_0x222f[_0x20c809];return _0x1064a1;};'use strict';var emlformat=require(_0xf222('0x0'));var rimraf=require(_0xf222('0x1'));var zipdir=require(_0xf222('0x2'));var jsonpatch=require(_0xf222('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xf222('0x4'));var Mustache=require(_0xf222('0x5'));var util=require(_0xf222('0x6'));var path=require(_0xf222('0x7'));var sox=require('sox');var csv=require(_0xf222('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf222('0x9'));var _=require(_0xf222('0xa'));var squel=require('squel');var crypto=require(_0xf222('0xb'));var jsforce=require(_0xf222('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xf222('0x8'));var querystring=require(_0xf222('0xd'));var Papa=require(_0xf222('0xe'));var Redis=require(_0xf222('0xf'));var authService=require(_0xf222('0x10'));var qs=require(_0xf222('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf222('0x12'));var logger=require(_0xf222('0x13'))(_0xf222('0x14'));var utils=require(_0xf222('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xf222('0x16'));var db=require(_0xf222('0x17'))['db'];function respondWithStatusCode(_0x2a6965,_0x3d3d29){_0x3d3d29=_0x3d3d29||0xcc;return function(_0x12f968){if(_0x12f968){return _0x2a6965[_0xf222('0x18')](_0x3d3d29);}return _0x2a6965[_0xf222('0x19')](_0x3d3d29)[_0xf222('0x1a')]();};}function respondWithResult(_0x52a003,_0x5b8f97){_0x5b8f97=_0x5b8f97||0xc8;return function(_0x1feb86){if(_0x1feb86){return _0x52a003[_0xf222('0x19')](_0x5b8f97)['json'](_0x1feb86);}};}function respondWithFilteredResult(_0x39be58,_0x43d35b){return function(_0x464f3e){if(_0x464f3e){var _0x4392a0=typeof _0x43d35b[_0xf222('0x1b')]===_0xf222('0x1c')&&typeof _0x43d35b[_0xf222('0x1d')]==='undefined';var _0x1efa9f=_0x464f3e[_0xf222('0x1e')];var _0x8783ab=_0x4392a0?0x0:_0x43d35b[_0xf222('0x1b')];var _0x12a2e4=_0x4392a0?_0x464f3e[_0xf222('0x1e')]:_0x43d35b[_0xf222('0x1b')]+_0x43d35b['limit'];var _0xf26a16;if(_0x12a2e4>=_0x1efa9f){_0x12a2e4=_0x1efa9f;_0xf26a16=0xc8;}else{_0xf26a16=0xce;}_0x39be58[_0xf222('0x19')](_0xf26a16);return _0x39be58[_0xf222('0x1f')](_0xf222('0x20'),_0x8783ab+'-'+_0x12a2e4+'/'+_0x1efa9f)['json'](_0x464f3e);}return null;};}function patchUpdates(_0x5cd899){return function(_0x398ff4){try{jsonpatch[_0xf222('0x21')](_0x398ff4,_0x5cd899,!![]);}catch(_0x201cf0){return BPromise[_0xf222('0x22')](_0x201cf0);}return _0x398ff4[_0xf222('0x23')]();};}function saveUpdates(_0x151a89,_0x51b872){return function(_0x176b20){if(_0x176b20){return _0x176b20[_0xf222('0x24')](_0x151a89)[_0xf222('0x25')](function(_0x12d443){return _0x12d443;});}return null;};}function removeEntity(_0x2c48ce,_0x2d18ab){return function(_0x4616de){if(_0x4616de){return _0x4616de[_0xf222('0x26')]()['then'](function(){_0x2c48ce[_0xf222('0x19')](0xcc)[_0xf222('0x1a')]();});}};}function handleEntityNotFound(_0x1883c1,_0x3fce26){return function(_0x4305e0){if(!_0x4305e0){_0x1883c1[_0xf222('0x18')](0x194);}return _0x4305e0;};}function handleError(_0x42616e,_0x263dc2){_0x263dc2=_0x263dc2||0x1f4;return function(_0x15bf4e){logger[_0xf222('0x27')](_0x15bf4e[_0xf222('0x28')]);if(_0x15bf4e['name']){delete _0x15bf4e[_0xf222('0x29')];}_0x42616e[_0xf222('0x19')](_0x263dc2)[_0xf222('0x2a')](_0x15bf4e);};}exports[_0xf222('0x2b')]=function(_0xe41039,_0x40a715){var _0x3789e0={},_0x1b928b={},_0x1e87ec={'count':0x0,'rows':[]};var _0x59721a=_[_0xf222('0x2c')](db[_0xf222('0x2d')][_0xf222('0x2e')],function(_0x53a382){return{'name':_0x53a382[_0xf222('0x2f')],'type':_0x53a382['type'][_0xf222('0x30')]};});_0x1b928b[_0xf222('0x31')]=_[_0xf222('0x2c')](_0x59721a,_0xf222('0x29'));_0x1b928b[_0xf222('0x32')]=_[_0xf222('0x33')](_0xe41039[_0xf222('0x32')]);_0x1b928b['filters']=_['intersection'](_0x1b928b[_0xf222('0x31')],_0x1b928b[_0xf222('0x32')]);_0x3789e0[_0xf222('0x34')]=_[_0xf222('0x35')](_0x1b928b[_0xf222('0x31')],qs[_0xf222('0x36')](_0xe41039['query'][_0xf222('0x36')]));_0x3789e0[_0xf222('0x34')]=_0x3789e0[_0xf222('0x34')]['length']?_0x3789e0[_0xf222('0x34')]:_0x1b928b[_0xf222('0x31')];if(!_0xe41039[_0xf222('0x32')]['hasOwnProperty'](_0xf222('0x37'))){_0x3789e0[_0xf222('0x1d')]=qs[_0xf222('0x1d')](_0xe41039['query'][_0xf222('0x1d')]);_0x3789e0[_0xf222('0x1b')]=qs[_0xf222('0x1b')](_0xe41039[_0xf222('0x32')][_0xf222('0x1b')]);}_0x3789e0['order']=qs[_0xf222('0x38')](_0xe41039['query'][_0xf222('0x38')]);_0x3789e0[_0xf222('0x39')]=qs[_0xf222('0x3a')](_['pick'](_0xe41039[_0xf222('0x32')],_0x1b928b[_0xf222('0x3a')]),_0x59721a);if(_0xe41039['query'][_0xf222('0x3b')]){_0x3789e0['where']=_[_0xf222('0x3c')](_0x3789e0[_0xf222('0x39')],{'$or':_[_0xf222('0x2c')](_0x59721a,function(_0x5c8b04){if(_0x5c8b04[_0xf222('0x3d')]!==_0xf222('0x3e')){var _0x2c1e49={};_0x2c1e49[_0x5c8b04[_0xf222('0x29')]]={'$like':'%'+_0xe41039[_0xf222('0x32')][_0xf222('0x3b')]+'%'};return _0x2c1e49;}})});}_0x3789e0=_['merge']({},_0x3789e0,_0xe41039[_0xf222('0x3f')]);var _0x24e8a5={'where':_0x3789e0['where']};return db['FreshdeskField'][_0xf222('0x1e')](_0x24e8a5)['then'](function(_0x2b20d3){_0x1e87ec[_0xf222('0x1e')]=_0x2b20d3;if(_0xe41039[_0xf222('0x32')][_0xf222('0x40')]){_0x3789e0['include']=[{'all':!![]}];}return db['FreshdeskField'][_0xf222('0x41')](_0x3789e0);})['then'](function(_0x522a9e){_0x1e87ec[_0xf222('0x42')]=_0x522a9e;return _0x1e87ec;})[_0xf222('0x25')](respondWithFilteredResult(_0x40a715,_0x3789e0))[_0xf222('0x43')](handleError(_0x40a715,null));};exports[_0xf222('0x44')]=function(_0x10f065,_0x2af478){var _0x5c60e6={'raw':!![],'where':{'id':_0x10f065[_0xf222('0x45')]['id']}},_0xf829ae={};_0xf829ae['model']=_[_0xf222('0x33')](db[_0xf222('0x2d')]['rawAttributes']);_0xf829ae[_0xf222('0x32')]=_['keys'](_0x10f065[_0xf222('0x32')]);_0xf829ae[_0xf222('0x3a')]=_[_0xf222('0x35')](_0xf829ae[_0xf222('0x31')],_0xf829ae[_0xf222('0x32')]);_0x5c60e6[_0xf222('0x34')]=_[_0xf222('0x35')](_0xf829ae[_0xf222('0x31')],qs[_0xf222('0x36')](_0x10f065[_0xf222('0x32')][_0xf222('0x36')]));_0x5c60e6['attributes']=_0x5c60e6['attributes']['length']?_0x5c60e6[_0xf222('0x34')]:_0xf829ae[_0xf222('0x31')];if(_0x10f065[_0xf222('0x32')][_0xf222('0x40')]){_0x5c60e6['include']=[{'all':!![]}];}_0x5c60e6=_[_0xf222('0x3c')]({},_0x5c60e6,_0x10f065[_0xf222('0x3f')]);return db[_0xf222('0x2d')][_0xf222('0x46')](_0x5c60e6)['then'](handleEntityNotFound(_0x2af478,null))[_0xf222('0x25')](respondWithResult(_0x2af478,null))[_0xf222('0x43')](handleError(_0x2af478,null));};exports[_0xf222('0x47')]=function(_0x37b393,_0x1d60e5){return db[_0xf222('0x2d')][_0xf222('0x47')](_0x37b393[_0xf222('0x48')],{})[_0xf222('0x25')](respondWithResult(_0x1d60e5,0xc9))[_0xf222('0x43')](handleError(_0x1d60e5,null));};exports['update']=function(_0x5d0d70,_0x193762){if(_0x5d0d70['body']['id']){delete _0x5d0d70[_0xf222('0x48')]['id'];}return db['FreshdeskField'][_0xf222('0x46')]({'where':{'id':_0x5d0d70['params']['id']}})[_0xf222('0x25')](handleEntityNotFound(_0x193762,null))[_0xf222('0x25')](saveUpdates(_0x5d0d70[_0xf222('0x48')],null))[_0xf222('0x25')](respondWithResult(_0x193762,null))['catch'](handleError(_0x193762,null));};exports[_0xf222('0x26')]=function(_0x34fd50,_0x380642){return db[_0xf222('0x2d')][_0xf222('0x46')]({'where':{'id':_0x34fd50[_0xf222('0x45')]['id']}})[_0xf222('0x25')](handleEntityNotFound(_0x380642,null))[_0xf222('0x25')](removeEntity(_0x380642,null))[_0xf222('0x43')](handleError(_0x380642,null));};
\ No newline at end of file
+var _0x04b8=['undefined','count','Content-Range','apply','reject','save','then','destroy','error','name','send','index','map','FreshdeskField','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','type','VIRTUAL','options','include','findAll','rows','catch','show','params','rawAttributes','includeAll','create','body','update','find','rimraf','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','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','sendStatus','status','end','json','offset','limit'];(function(_0x16c219,_0x4b0e05){var _0x4a07ef=function(_0x16654a){while(--_0x16654a){_0x16c219['push'](_0x16c219['shift']());}};_0x4a07ef(++_0x4b0e05);}(_0x04b8,0x159));var _0x804b=function(_0x39e2f1,_0x53ed8f){_0x39e2f1=_0x39e2f1-0x0;var _0x5272c5=_0x04b8[_0x39e2f1];return _0x5272c5;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x804b('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x804b('0x1'));var rp=require(_0x804b('0x2'));var moment=require('moment');var BPromise=require(_0x804b('0x3'));var Mustache=require(_0x804b('0x4'));var util=require('util');var path=require(_0x804b('0x5'));var sox=require(_0x804b('0x6'));var csv=require(_0x804b('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x804b('0x8'));var _=require(_0x804b('0x9'));var squel=require(_0x804b('0xa'));var crypto=require('crypto');var jsforce=require(_0x804b('0xb'));var deskjs=require(_0x804b('0xc'));var toCsv=require('to-csv');var querystring=require(_0x804b('0xd'));var Papa=require(_0x804b('0xe'));var Redis=require(_0x804b('0xf'));var authService=require(_0x804b('0x10'));var qs=require(_0x804b('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x804b('0x12'));var logger=require(_0x804b('0x13'))(_0x804b('0x14'));var utils=require(_0x804b('0x15'));var config=require(_0x804b('0x16'));var licenseUtil=require(_0x804b('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x15a4eb,_0x5303cc){_0x5303cc=_0x5303cc||0xcc;return function(_0x23ee57){if(_0x23ee57){return _0x15a4eb[_0x804b('0x18')](_0x5303cc);}return _0x15a4eb[_0x804b('0x19')](_0x5303cc)[_0x804b('0x1a')]();};}function respondWithResult(_0x581fbf,_0x215825){_0x215825=_0x215825||0xc8;return function(_0x1b01a7){if(_0x1b01a7){return _0x581fbf[_0x804b('0x19')](_0x215825)[_0x804b('0x1b')](_0x1b01a7);}};}function respondWithFilteredResult(_0x4ff1be,_0x2fd593){return function(_0x8ccbe0){if(_0x8ccbe0){var _0x5e1cfe=typeof _0x2fd593[_0x804b('0x1c')]==='undefined'&&typeof _0x2fd593[_0x804b('0x1d')]===_0x804b('0x1e');var _0x13662e=_0x8ccbe0[_0x804b('0x1f')];var _0x3a05c0=_0x5e1cfe?0x0:_0x2fd593['offset'];var _0x871d6c=_0x5e1cfe?_0x8ccbe0['count']:_0x2fd593[_0x804b('0x1c')]+_0x2fd593[_0x804b('0x1d')];var _0x42cceb;if(_0x871d6c>=_0x13662e){_0x871d6c=_0x13662e;_0x42cceb=0xc8;}else{_0x42cceb=0xce;}_0x4ff1be[_0x804b('0x19')](_0x42cceb);return _0x4ff1be['set'](_0x804b('0x20'),_0x3a05c0+'-'+_0x871d6c+'/'+_0x13662e)[_0x804b('0x1b')](_0x8ccbe0);}return null;};}function patchUpdates(_0x427166){return function(_0x11eaf6){try{jsonpatch[_0x804b('0x21')](_0x11eaf6,_0x427166,!![]);}catch(_0x267878){return BPromise[_0x804b('0x22')](_0x267878);}return _0x11eaf6[_0x804b('0x23')]();};}function saveUpdates(_0xaa9521,_0x2b7271){return function(_0x1acc48){if(_0x1acc48){return _0x1acc48['update'](_0xaa9521)[_0x804b('0x24')](function(_0x5a77e0){return _0x5a77e0;});}return null;};}function removeEntity(_0x5585f8,_0x44a921){return function(_0x367024){if(_0x367024){return _0x367024[_0x804b('0x25')]()[_0x804b('0x24')](function(){_0x5585f8[_0x804b('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2de812,_0x7d9c33){return function(_0x4e7266){if(!_0x4e7266){_0x2de812[_0x804b('0x18')](0x194);}return _0x4e7266;};}function handleError(_0x2366b6,_0x1117a5){_0x1117a5=_0x1117a5||0x1f4;return function(_0x27d5ec){logger[_0x804b('0x26')](_0x27d5ec['stack']);if(_0x27d5ec[_0x804b('0x27')]){delete _0x27d5ec[_0x804b('0x27')];}_0x2366b6[_0x804b('0x19')](_0x1117a5)[_0x804b('0x28')](_0x27d5ec);};}exports[_0x804b('0x29')]=function(_0x4a6079,_0x3eb531){var _0x2931ff={},_0x410871={},_0x5c7026={'count':0x0,'rows':[]};var _0x3dbd41=_[_0x804b('0x2a')](db[_0x804b('0x2b')]['rawAttributes'],function(_0x408857){return{'name':_0x408857[_0x804b('0x2c')],'type':_0x408857['type'][_0x804b('0x2d')]};});_0x410871[_0x804b('0x2e')]=_[_0x804b('0x2a')](_0x3dbd41,_0x804b('0x27'));_0x410871[_0x804b('0x2f')]=_[_0x804b('0x30')](_0x4a6079['query']);_0x410871[_0x804b('0x31')]=_[_0x804b('0x32')](_0x410871[_0x804b('0x2e')],_0x410871[_0x804b('0x2f')]);_0x2931ff[_0x804b('0x33')]=_[_0x804b('0x32')](_0x410871[_0x804b('0x2e')],qs[_0x804b('0x34')](_0x4a6079[_0x804b('0x2f')][_0x804b('0x34')]));_0x2931ff[_0x804b('0x33')]=_0x2931ff[_0x804b('0x33')][_0x804b('0x35')]?_0x2931ff[_0x804b('0x33')]:_0x410871[_0x804b('0x2e')];if(!_0x4a6079[_0x804b('0x2f')][_0x804b('0x36')](_0x804b('0x37'))){_0x2931ff[_0x804b('0x1d')]=qs[_0x804b('0x1d')](_0x4a6079[_0x804b('0x2f')][_0x804b('0x1d')]);_0x2931ff[_0x804b('0x1c')]=qs[_0x804b('0x1c')](_0x4a6079[_0x804b('0x2f')]['offset']);}_0x2931ff['order']=qs['sort'](_0x4a6079[_0x804b('0x2f')][_0x804b('0x38')]);_0x2931ff[_0x804b('0x39')]=qs['filters'](_['pick'](_0x4a6079['query'],_0x410871[_0x804b('0x31')]),_0x3dbd41);if(_0x4a6079[_0x804b('0x2f')][_0x804b('0x3a')]){_0x2931ff[_0x804b('0x39')]=_[_0x804b('0x3b')](_0x2931ff[_0x804b('0x39')],{'$or':_[_0x804b('0x2a')](_0x3dbd41,function(_0xc5eefa){if(_0xc5eefa[_0x804b('0x3c')]!==_0x804b('0x3d')){var _0x878dac={};_0x878dac[_0xc5eefa[_0x804b('0x27')]]={'$like':'%'+_0x4a6079[_0x804b('0x2f')]['filter']+'%'};return _0x878dac;}})});}_0x2931ff=_[_0x804b('0x3b')]({},_0x2931ff,_0x4a6079[_0x804b('0x3e')]);var _0xb877d6={'where':_0x2931ff[_0x804b('0x39')]};return db[_0x804b('0x2b')]['count'](_0xb877d6)['then'](function(_0x203890){_0x5c7026[_0x804b('0x1f')]=_0x203890;if(_0x4a6079[_0x804b('0x2f')]['includeAll']){_0x2931ff[_0x804b('0x3f')]=[{'all':!![]}];}return db['FreshdeskField'][_0x804b('0x40')](_0x2931ff);})[_0x804b('0x24')](function(_0x20ccc7){_0x5c7026[_0x804b('0x41')]=_0x20ccc7;return _0x5c7026;})[_0x804b('0x24')](respondWithFilteredResult(_0x3eb531,_0x2931ff))[_0x804b('0x42')](handleError(_0x3eb531,null));};exports[_0x804b('0x43')]=function(_0x51c8ff,_0x17972a){var _0x1c0363={'raw':!![],'where':{'id':_0x51c8ff[_0x804b('0x44')]['id']}},_0x1dcec8={};_0x1dcec8['model']=_[_0x804b('0x30')](db[_0x804b('0x2b')][_0x804b('0x45')]);_0x1dcec8[_0x804b('0x2f')]=_[_0x804b('0x30')](_0x51c8ff[_0x804b('0x2f')]);_0x1dcec8[_0x804b('0x31')]=_[_0x804b('0x32')](_0x1dcec8['model'],_0x1dcec8[_0x804b('0x2f')]);_0x1c0363['attributes']=_['intersection'](_0x1dcec8['model'],qs[_0x804b('0x34')](_0x51c8ff['query'][_0x804b('0x34')]));_0x1c0363[_0x804b('0x33')]=_0x1c0363[_0x804b('0x33')][_0x804b('0x35')]?_0x1c0363['attributes']:_0x1dcec8[_0x804b('0x2e')];if(_0x51c8ff[_0x804b('0x2f')][_0x804b('0x46')]){_0x1c0363['include']=[{'all':!![]}];}_0x1c0363=_[_0x804b('0x3b')]({},_0x1c0363,_0x51c8ff[_0x804b('0x3e')]);return db[_0x804b('0x2b')]['find'](_0x1c0363)[_0x804b('0x24')](handleEntityNotFound(_0x17972a,null))[_0x804b('0x24')](respondWithResult(_0x17972a,null))[_0x804b('0x42')](handleError(_0x17972a,null));};exports[_0x804b('0x47')]=function(_0x1051e9,_0x3a39f5){return db[_0x804b('0x2b')][_0x804b('0x47')](_0x1051e9[_0x804b('0x48')],{})[_0x804b('0x24')](respondWithResult(_0x3a39f5,0xc9))[_0x804b('0x42')](handleError(_0x3a39f5,null));};exports[_0x804b('0x49')]=function(_0x20862f,_0x2c1796){if(_0x20862f['body']['id']){delete _0x20862f['body']['id'];}return db[_0x804b('0x2b')][_0x804b('0x4a')]({'where':{'id':_0x20862f[_0x804b('0x44')]['id']}})[_0x804b('0x24')](handleEntityNotFound(_0x2c1796,null))[_0x804b('0x24')](saveUpdates(_0x20862f['body'],null))[_0x804b('0x24')](respondWithResult(_0x2c1796,null))[_0x804b('0x42')](handleError(_0x2c1796,null));};exports[_0x804b('0x25')]=function(_0x3ca9ff,_0x47247c){return db[_0x804b('0x2b')]['find']({'where':{'id':_0x3ca9ff['params']['id']}})[_0x804b('0x24')](handleEntityNotFound(_0x47247c,null))[_0x804b('0x24')](removeEntity(_0x47247c,null))['catch'](handleError(_0x47247c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3dc=['lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','int_freshdesk_fields','freshdesk_unique_index','idField','FieldId'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0xf3dc,0x9c));var _0xcf3d=function(_0x4e668b,_0x35b443){_0x4e668b=_0x4e668b-0x0;var _0xba75aa=_0xf3dc[_0x4e668b];return _0xba75aa;};'use strict';var _=require(_0xcf3d('0x0'));var util=require(_0xcf3d('0x1'));var logger=require(_0xcf3d('0x2'))('api');var moment=require(_0xcf3d('0x3'));var BPromise=require(_0xcf3d('0x4'));var rp=require(_0xcf3d('0x5'));var fs=require('fs');var path=require(_0xcf3d('0x6'));var rimraf=require(_0xcf3d('0x7'));var config=require(_0xcf3d('0x8'));var attributes=require('./intFreshdeskField.attributes');module['exports']=function(_0x55074b,_0x5b1441){return _0x55074b['define']('FreshdeskField',attributes,{'tableName':_0xcf3d('0x9'),'paranoid':![],'indexes':[{'name':_0xcf3d('0xa'),'fields':[_0xcf3d('0xb'),_0xcf3d('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x0f67=['freshdesk_unique_index','idField','FieldId','../../config/logger','api','moment','bluebird','path','rimraf','./intFreshdeskField.attributes','exports','define','FreshdeskField','int_freshdesk_fields'];(function(_0x16629d,_0x492375){var _0x56ccee=function(_0xa982b7){while(--_0xa982b7){_0x16629d['push'](_0x16629d['shift']());}};_0x56ccee(++_0x492375);}(_0x0f67,0xab));var _0x70f6=function(_0x1ca93c,_0x3271ab){_0x1ca93c=_0x1ca93c-0x0;var _0x185169=_0x0f67[_0x1ca93c];return _0x185169;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x70f6('0x0'))(_0x70f6('0x1'));var moment=require(_0x70f6('0x2'));var BPromise=require(_0x70f6('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x70f6('0x4'));var rimraf=require(_0x70f6('0x5'));var config=require('../../config/environment');var attributes=require(_0x70f6('0x6'));module[_0x70f6('0x7')]=function(_0x34ecf0,_0x138109){return _0x34ecf0[_0x70f6('0x8')](_0x70f6('0x9'),attributes,{'tableName':_0x70f6('0xa'),'paranoid':![],'indexes':[{'name':_0x70f6('0xb'),'fields':[_0x70f6('0xc'),_0x70f6('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc528=['catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','info','FreshdeskField,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message'];(function(_0x580647,_0x43d2c3){var _0x5f0792=function(_0x386cef){while(--_0x386cef){_0x580647['push'](_0x580647['shift']());}};_0x5f0792(++_0x43d2c3);}(_0xc528,0xfd));var _0x8c52=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xc528[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x8c52('0x0'));var util=require(_0x8c52('0x1'));var moment=require(_0x8c52('0x2'));var BPromise=require(_0x8c52('0x3'));var rs=require(_0x8c52('0x4'));var fs=require('fs');var Redis=require(_0x8c52('0x5'));var db=require(_0x8c52('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x8c52('0x7'))('rpc');var config=require(_0x8c52('0x8'));var jayson=require(_0x8c52('0x9'));var client=jayson[_0x8c52('0xa')][_0x8c52('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x8a91d9,_0xdc109c,_0x1daafa){return new BPromise(function(_0x293e9d,_0x5cf3b4){return client['request'](_0x8a91d9,_0x1daafa)['then'](function(_0x3bc1d3){logger[_0x8c52('0xc')](_0x8c52('0xd'),_0xdc109c,_0x8c52('0xe'));logger[_0x8c52('0xf')]('FreshdeskField,\x20%s,\x20%s,\x20%s',_0xdc109c,_0x8c52('0xe'),JSON[_0x8c52('0x10')](_0x3bc1d3));if(_0x3bc1d3['error']){if(_0x3bc1d3[_0x8c52('0x11')][_0x8c52('0x12')]===0x1f4){logger[_0x8c52('0x11')]('FreshdeskField,\x20%s,\x20%s',_0xdc109c,_0x3bc1d3[_0x8c52('0x11')]['message']);return _0x5cf3b4(_0x3bc1d3[_0x8c52('0x11')][_0x8c52('0x13')]);}logger['error'](_0x8c52('0xd'),_0xdc109c,_0x3bc1d3[_0x8c52('0x11')]['message']);return _0x293e9d(_0x3bc1d3['error'][_0x8c52('0x13')]);}else{logger[_0x8c52('0xc')](_0x8c52('0xd'),_0xdc109c,_0x8c52('0xe'));_0x293e9d(_0x3bc1d3['result']['message']);}})[_0x8c52('0x14')](function(_0xc2a921){logger[_0x8c52('0x11')]('FreshdeskField,\x20%s,\x20%s',_0xdc109c,_0xc2a921);_0x5cf3b4(_0xc2a921);});});}
\ No newline at end of file
+var _0x1f92=['lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','FreshdeskField,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch'];(function(_0x289c6c,_0x2fed8a){var _0x4b925a=function(_0x2b78a9){while(--_0x2b78a9){_0x289c6c['push'](_0x289c6c['shift']());}};_0x4b925a(++_0x2fed8a);}(_0x1f92,0xd8));var _0x21f9=function(_0x131e64,_0x24bee3){_0x131e64=_0x131e64-0x0;var _0x11e31a=_0x1f92[_0x131e64];return _0x11e31a;};'use strict';var _=require(_0x21f9('0x0'));var util=require(_0x21f9('0x1'));var moment=require(_0x21f9('0x2'));var BPromise=require(_0x21f9('0x3'));var rs=require(_0x21f9('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x21f9('0x5'))['db'];var utils=require(_0x21f9('0x6'));var logger=require(_0x21f9('0x7'))(_0x21f9('0x8'));var config=require('../../config/environment');var jayson=require(_0x21f9('0x9'));var client=jayson[_0x21f9('0xa')][_0x21f9('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3b59fc,_0x25584c,_0x3d7b84){return new BPromise(function(_0x11d3d9,_0xd13a74){return client[_0x21f9('0xc')](_0x3b59fc,_0x3d7b84)[_0x21f9('0xd')](function(_0x5c3236){logger[_0x21f9('0xe')](_0x21f9('0xf'),_0x25584c,'request\x20sent');logger[_0x21f9('0x10')]('FreshdeskField,\x20%s,\x20%s,\x20%s',_0x25584c,'request\x20sent',JSON[_0x21f9('0x11')](_0x5c3236));if(_0x5c3236[_0x21f9('0x12')]){if(_0x5c3236[_0x21f9('0x12')][_0x21f9('0x13')]===0x1f4){logger[_0x21f9('0x12')]('FreshdeskField,\x20%s,\x20%s',_0x25584c,_0x5c3236[_0x21f9('0x12')][_0x21f9('0x14')]);return _0xd13a74(_0x5c3236['error'][_0x21f9('0x14')]);}logger[_0x21f9('0x12')](_0x21f9('0xf'),_0x25584c,_0x5c3236[_0x21f9('0x12')][_0x21f9('0x14')]);return _0x11d3d9(_0x5c3236[_0x21f9('0x12')][_0x21f9('0x14')]);}else{logger['info'](_0x21f9('0xf'),_0x25584c,_0x21f9('0x15'));_0x11d3d9(_0x5c3236[_0x21f9('0x16')][_0x21f9('0x14')]);}})[_0x21f9('0x17')](function(_0x83efbd){logger['error'](_0x21f9('0xf'),_0x25584c,_0x83efbd);_0xd13a74(_0x83efbd);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f7a=['../../components/interaction/service','../../config/environment','./intFreshsalesAccount.controller','get','isAuthenticated','index','/:id','/:id/configurations','getConfigurations','getFields','post','create','addConfiguration','put','delete','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service'];(function(_0x4aa838,_0x4aa14f){var _0x3abff0=function(_0x402d55){while(--_0x402d55){_0x4aa838['push'](_0x4aa838['shift']());}};_0x3abff0(++_0x4aa14f);}(_0x6f7a,0x1ae));var _0xa6f7=function(_0x213a3d,_0x140fb3){_0x213a3d=_0x213a3d-0x0;var _0x4436ae=_0x6f7a[_0x213a3d];return _0x4436ae;};'use strict';var multer=require(_0xa6f7('0x0'));var util=require(_0xa6f7('0x1'));var path=require(_0xa6f7('0x2'));var timeout=require(_0xa6f7('0x3'));var express=require('express');var router=express[_0xa6f7('0x4')]();var fs_extra=require(_0xa6f7('0x5'));var auth=require(_0xa6f7('0x6'));var interaction=require(_0xa6f7('0x7'));var config=require(_0xa6f7('0x8'));var controller=require(_0xa6f7('0x9'));router[_0xa6f7('0xa')]('/',auth[_0xa6f7('0xb')](),controller[_0xa6f7('0xc')]);router[_0xa6f7('0xa')](_0xa6f7('0xd'),auth['isAuthenticated'](),controller['show']);router[_0xa6f7('0xa')](_0xa6f7('0xe'),auth[_0xa6f7('0xb')](),controller[_0xa6f7('0xf')]);router[_0xa6f7('0xa')]('/:id/fields',auth['isAuthenticated'](),controller[_0xa6f7('0x10')]);router[_0xa6f7('0x11')]('/',auth['isAuthenticated'](),controller[_0xa6f7('0x12')]);router['post'](_0xa6f7('0xe'),auth[_0xa6f7('0xb')](),controller[_0xa6f7('0x13')]);router[_0xa6f7('0x14')]('/:id',auth[_0xa6f7('0xb')](),controller['update']);router[_0xa6f7('0x15')](_0xa6f7('0xd'),auth[_0xa6f7('0xb')](),controller['destroy']);module[_0xa6f7('0x16')]=router;
\ No newline at end of file
+var _0xefda=['update','destroy','exports','multer','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshsalesAccount.controller','get','index','/:id','isAuthenticated','/:id/configurations','getFields','post','create','addConfiguration','put'];(function(_0x331b85,_0x5f3e6e){var _0x1b97b2=function(_0x44d7c9){while(--_0x44d7c9){_0x331b85['push'](_0x331b85['shift']());}};_0x1b97b2(++_0x5f3e6e);}(_0xefda,0x96));var _0xaefd=function(_0x1d1b38,_0x56fb20){_0x1d1b38=_0x1d1b38-0x0;var _0x3980ae=_0xefda[_0x1d1b38];return _0x3980ae;};'use strict';var multer=require(_0xaefd('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xaefd('0x1'));var express=require(_0xaefd('0x2'));var router=express['Router']();var fs_extra=require(_0xaefd('0x3'));var auth=require(_0xaefd('0x4'));var interaction=require(_0xaefd('0x5'));var config=require(_0xaefd('0x6'));var controller=require(_0xaefd('0x7'));router[_0xaefd('0x8')]('/',auth['isAuthenticated'](),controller[_0xaefd('0x9')]);router[_0xaefd('0x8')](_0xaefd('0xa'),auth[_0xaefd('0xb')](),controller['show']);router[_0xaefd('0x8')](_0xaefd('0xc'),auth[_0xaefd('0xb')](),controller['getConfigurations']);router['get']('/:id/fields',auth[_0xaefd('0xb')](),controller[_0xaefd('0xd')]);router[_0xaefd('0xe')]('/',auth[_0xaefd('0xb')](),controller[_0xaefd('0xf')]);router[_0xaefd('0xe')](_0xaefd('0xc'),auth[_0xaefd('0xb')](),controller[_0xaefd('0x10')]);router[_0xaefd('0x11')](_0xaefd('0xa'),auth['isAuthenticated'](),controller[_0xaefd('0x12')]);router['delete'](_0xaefd('0xa'),auth[_0xaefd('0xb')](),controller[_0xaefd('0x13')]);module[_0xaefd('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8603=['remoteUri','exports','STRING'];(function(_0xb4ab84,_0x2bf816){var _0x4be2a2=function(_0x42c513){while(--_0x42c513){_0xb4ab84['push'](_0xb4ab84['shift']());}};_0x4be2a2(++_0x2bf816);}(_0x8603,0x190));var _0x3860=function(_0x492afa,_0x3527dd){_0x492afa=_0x492afa-0x0;var _0x401664=_0x8603[_0x492afa];return _0x401664;};'use strict';var Sequelize=require('sequelize');module[_0x3860('0x0')]={'name':{'type':Sequelize[_0x3860('0x1')]},'description':{'type':Sequelize[_0x3860('0x1')]},'username':{'type':Sequelize['STRING'],'unique':'username'},'apiKey':{'type':Sequelize[_0x3860('0x1')]},'remoteUri':{'type':Sequelize[_0x3860('0x1')],'unique':_0x3860('0x2')},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
+var _0x5f66=['STRING','username','exports'];(function(_0x3578c6,_0x14ba2f){var _0xf53f58=function(_0x58b115){while(--_0x58b115){_0x3578c6['push'](_0x3578c6['shift']());}};_0xf53f58(++_0x14ba2f);}(_0x5f66,0x1a0));var _0x65f6=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x5f66[_0x21a9d9];return _0x46adce;};'use strict';var Sequelize=require('sequelize');module[_0x65f6('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x65f6('0x1')]},'username':{'type':Sequelize[_0x65f6('0x1')],'unique':_0x65f6('0x2')},'apiKey':{'type':Sequelize[_0x65f6('0x1')]},'remoteUri':{'type':Sequelize[_0x65f6('0x1')],'unique':'remoteUri'},'serverUrl':{'type':Sequelize[_0x65f6('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0795=['lastIndexOf','format','%s%s','/api/selector/owners','Token\x20token=','users','email','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','ejs','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','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','FreshsalesAccount','rawAttributes','fieldName','type','key','model','map','keys','intersection','query','attributes','fields','nolimit','sort','where','pick','filters','merge','VIRTUAL','filter','options','count','includeAll','include','findAll','catch','show','params','length','find','create','body','getConfigurations','hasOwnProperty','addConfiguration','findOne','AccountId','Descriptions','getDescriptions','FreshsalesField','getFields','username','remoteUri','apiKey','slice','substring'];(function(_0x5a6cdc,_0x4fc79e){var _0x35f757=function(_0x1b08d0){while(--_0x1b08d0){_0x5a6cdc['push'](_0x5a6cdc['shift']());}};_0x35f757(++_0x4fc79e);}(_0x0795,0x14e));var _0x5079=function(_0xe7cae3,_0x50ebc5){_0xe7cae3=_0xe7cae3-0x0;var _0xa634f4=_0x0795[_0xe7cae3];return _0xa634f4;};'use strict';var emlformat=require(_0x5079('0x0'));var rimraf=require(_0x5079('0x1'));var zipdir=require(_0x5079('0x2'));var jsonpatch=require(_0x5079('0x3'));var rp=require('request-promise');var moment=require(_0x5079('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x5079('0x5'));var util=require(_0x5079('0x6'));var path=require(_0x5079('0x7'));var sox=require(_0x5079('0x8'));var csv=require('to-csv');var ejs=require(_0x5079('0x9'));var fs=require('fs');var fs_extra=require(_0x5079('0xa'));var _=require(_0x5079('0xb'));var squel=require(_0x5079('0xc'));var crypto=require(_0x5079('0xd'));var jsforce=require(_0x5079('0xe'));var deskjs=require(_0x5079('0xf'));var toCsv=require(_0x5079('0x10'));var querystring=require(_0x5079('0x11'));var Papa=require(_0x5079('0x12'));var Redis=require('ioredis');var authService=require(_0x5079('0x13'));var qs=require(_0x5079('0x14'));var as=require(_0x5079('0x15'));var hardwareService=require(_0x5079('0x16'));var logger=require(_0x5079('0x17'))(_0x5079('0x18'));var utils=require(_0x5079('0x19'));var config=require(_0x5079('0x1a'));var licenseUtil=require(_0x5079('0x1b'));var db=require(_0x5079('0x1c'))['db'];var integrations=require(_0x5079('0x1d'));function respondWithStatusCode(_0x6fc03,_0x13cdc4){_0x13cdc4=_0x13cdc4||0xcc;return function(_0x88dd0b){if(_0x88dd0b){return _0x6fc03[_0x5079('0x1e')](_0x13cdc4);}return _0x6fc03[_0x5079('0x1f')](_0x13cdc4)[_0x5079('0x20')]();};}function respondWithResult(_0x3b5acd,_0x21b2b2){_0x21b2b2=_0x21b2b2||0xc8;return function(_0x423220){if(_0x423220){return _0x3b5acd[_0x5079('0x1f')](_0x21b2b2)[_0x5079('0x21')](_0x423220);}};}function respondWithFilteredResult(_0x4fcf47,_0xca957d){return function(_0x192157){if(_0x192157){var _0x338442=typeof _0xca957d[_0x5079('0x22')]===_0x5079('0x23')&&typeof _0xca957d[_0x5079('0x24')]===_0x5079('0x23');var _0x3a8cf4=_0x192157['count'];var _0x1a0cb7=_0x338442?0x0:_0xca957d['offset'];var _0x37025a=_0x338442?_0x192157['count']:_0xca957d[_0x5079('0x22')]+_0xca957d[_0x5079('0x24')];var _0x31949c;if(_0x37025a>=_0x3a8cf4){_0x37025a=_0x3a8cf4;_0x31949c=0xc8;}else{_0x31949c=0xce;}_0x4fcf47[_0x5079('0x1f')](_0x31949c);return _0x4fcf47['set'](_0x5079('0x25'),_0x1a0cb7+'-'+_0x37025a+'/'+_0x3a8cf4)[_0x5079('0x21')](_0x192157);}return null;};}function patchUpdates(_0xe8c47f){return function(_0x411e42){try{jsonpatch[_0x5079('0x26')](_0x411e42,_0xe8c47f,!![]);}catch(_0x594d5f){return BPromise[_0x5079('0x27')](_0x594d5f);}return _0x411e42[_0x5079('0x28')]();};}function saveUpdates(_0x471d66,_0x1da3be){return function(_0x1a480d){if(_0x1a480d){return _0x1a480d[_0x5079('0x29')](_0x471d66)[_0x5079('0x2a')](function(_0x5d2d4c){return _0x5d2d4c;});}return null;};}function removeEntity(_0x4d0911,_0x31f37f){return function(_0x11fae6){if(_0x11fae6){return _0x11fae6[_0x5079('0x2b')]()[_0x5079('0x2a')](function(){_0x4d0911[_0x5079('0x1f')](0xcc)[_0x5079('0x20')]();});}};}function handleEntityNotFound(_0x1821c9,_0x9bf1db){return function(_0xc5963e){if(!_0xc5963e){_0x1821c9[_0x5079('0x1e')](0x194);}return _0xc5963e;};}function handleError(_0x8d5199,_0x2573d7){_0x2573d7=_0x2573d7||0x1f4;return function(_0x595373){logger['error'](_0x595373[_0x5079('0x2c')]);if(_0x595373[_0x5079('0x2d')]){delete _0x595373[_0x5079('0x2d')];}_0x8d5199[_0x5079('0x1f')](_0x2573d7)[_0x5079('0x2e')](_0x595373);};}exports[_0x5079('0x2f')]=function(_0x357272,_0x39c860){var _0x479749={},_0x3c771e={},_0xd60c3a={'count':0x0,'rows':[]};var _0x59880e=_['map'](db[_0x5079('0x30')][_0x5079('0x31')],function(_0x2cd1f7){return{'name':_0x2cd1f7[_0x5079('0x32')],'type':_0x2cd1f7[_0x5079('0x33')][_0x5079('0x34')]};});_0x3c771e[_0x5079('0x35')]=_[_0x5079('0x36')](_0x59880e,_0x5079('0x2d'));_0x3c771e['query']=_[_0x5079('0x37')](_0x357272['query']);_0x3c771e['filters']=_[_0x5079('0x38')](_0x3c771e[_0x5079('0x35')],_0x3c771e[_0x5079('0x39')]);_0x479749[_0x5079('0x3a')]=_[_0x5079('0x38')](_0x3c771e[_0x5079('0x35')],qs[_0x5079('0x3b')](_0x357272['query']['fields']));_0x479749[_0x5079('0x3a')]=_0x479749['attributes']['length']?_0x479749[_0x5079('0x3a')]:_0x3c771e[_0x5079('0x35')];if(!_0x357272[_0x5079('0x39')]['hasOwnProperty'](_0x5079('0x3c'))){_0x479749[_0x5079('0x24')]=qs['limit'](_0x357272['query'][_0x5079('0x24')]);_0x479749[_0x5079('0x22')]=qs[_0x5079('0x22')](_0x357272[_0x5079('0x39')][_0x5079('0x22')]);}_0x479749['order']=qs[_0x5079('0x3d')](_0x357272['query'][_0x5079('0x3d')]);_0x479749[_0x5079('0x3e')]=qs['filters'](_[_0x5079('0x3f')](_0x357272[_0x5079('0x39')],_0x3c771e[_0x5079('0x40')]),_0x59880e);if(_0x357272['query']['filter']){_0x479749[_0x5079('0x3e')]=_[_0x5079('0x41')](_0x479749['where'],{'$or':_[_0x5079('0x36')](_0x59880e,function(_0x2dbd89){if(_0x2dbd89[_0x5079('0x33')]!==_0x5079('0x42')){var _0x4ec6e7={};_0x4ec6e7[_0x2dbd89['name']]={'$like':'%'+_0x357272[_0x5079('0x39')][_0x5079('0x43')]+'%'};return _0x4ec6e7;}})});}_0x479749=_[_0x5079('0x41')]({},_0x479749,_0x357272[_0x5079('0x44')]);var _0x5bc994={'where':_0x479749[_0x5079('0x3e')]};return db[_0x5079('0x30')][_0x5079('0x45')](_0x5bc994)[_0x5079('0x2a')](function(_0x39a584){_0xd60c3a[_0x5079('0x45')]=_0x39a584;if(_0x357272[_0x5079('0x39')][_0x5079('0x46')]){_0x479749[_0x5079('0x47')]=[{'all':!![]}];}return db['FreshsalesAccount'][_0x5079('0x48')](_0x479749);})['then'](function(_0xc7afc1){_0xd60c3a['rows']=_0xc7afc1;return _0xd60c3a;})[_0x5079('0x2a')](respondWithFilteredResult(_0x39c860,_0x479749))[_0x5079('0x49')](handleError(_0x39c860,null));};exports[_0x5079('0x4a')]=function(_0x22b532,_0x3ef07f){var _0x31d340={'raw':![],'where':{'id':_0x22b532[_0x5079('0x4b')]['id']}},_0x52712e={};_0x52712e[_0x5079('0x35')]=_[_0x5079('0x37')](db[_0x5079('0x30')][_0x5079('0x31')]);_0x52712e[_0x5079('0x39')]=_['keys'](_0x22b532['query']);_0x52712e['filters']=_['intersection'](_0x52712e[_0x5079('0x35')],_0x52712e[_0x5079('0x39')]);_0x31d340[_0x5079('0x3a')]=_[_0x5079('0x38')](_0x52712e[_0x5079('0x35')],qs[_0x5079('0x3b')](_0x22b532[_0x5079('0x39')]['fields']));_0x31d340[_0x5079('0x3a')]=_0x31d340[_0x5079('0x3a')][_0x5079('0x4c')]?_0x31d340['attributes']:_0x52712e[_0x5079('0x35')];if(_0x22b532[_0x5079('0x39')]['includeAll']){_0x31d340[_0x5079('0x47')]=[{'all':!![]}];}_0x31d340=_[_0x5079('0x41')]({},_0x31d340,_0x22b532[_0x5079('0x44')]);return db['FreshsalesAccount'][_0x5079('0x4d')](_0x31d340)['then'](handleEntityNotFound(_0x3ef07f,null))[_0x5079('0x2a')](respondWithResult(_0x3ef07f,null))[_0x5079('0x49')](handleError(_0x3ef07f,null));};exports[_0x5079('0x4e')]=function(_0x513e13,_0x2dac37){return db['FreshsalesAccount']['create'](_0x513e13['body'],{})['then'](respondWithResult(_0x2dac37,0xc9))[_0x5079('0x49')](handleError(_0x2dac37,null));};exports[_0x5079('0x29')]=function(_0x4f37d7,_0x54f600){if(_0x4f37d7[_0x5079('0x4f')]['id']){delete _0x4f37d7[_0x5079('0x4f')]['id'];}return db[_0x5079('0x30')][_0x5079('0x4d')]({'where':{'id':_0x4f37d7['params']['id']}})['then'](handleEntityNotFound(_0x54f600,null))['then'](saveUpdates(_0x4f37d7['body'],null))['then'](respondWithResult(_0x54f600,null))['catch'](handleError(_0x54f600,null));};exports[_0x5079('0x2b')]=function(_0x1c5fab,_0x5e5bf5){return db[_0x5079('0x30')][_0x5079('0x4d')]({'where':{'id':_0x1c5fab[_0x5079('0x4b')]['id']}})[_0x5079('0x2a')](handleEntityNotFound(_0x5e5bf5,null))['then'](removeEntity(_0x5e5bf5,null))[_0x5079('0x49')](handleError(_0x5e5bf5,null));};exports[_0x5079('0x50')]=function(_0x4c27a2,_0x44321b,_0x36d6c2){var _0xb6996d={};var _0x1bd1ca={};var _0x1fb5f0;var _0x317ee4;return db['FreshsalesAccount']['findOne']({'where':{'id':_0x4c27a2[_0x5079('0x4b')]['id']}})[_0x5079('0x2a')](handleEntityNotFound(_0x44321b,null))[_0x5079('0x2a')](function(_0x8514df){if(_0x8514df){_0x1fb5f0=_0x8514df;_0x1bd1ca[_0x5079('0x35')]=_['keys'](db['FreshsalesConfiguration'][_0x5079('0x31')]);_0x1bd1ca['query']=_['keys'](_0x4c27a2[_0x5079('0x39')]);_0x1bd1ca['filters']=_['intersection'](_0x1bd1ca[_0x5079('0x35')],_0x1bd1ca['query']);_0xb6996d[_0x5079('0x3a')]=_[_0x5079('0x38')](_0x1bd1ca[_0x5079('0x35')],qs['fields'](_0x4c27a2[_0x5079('0x39')]['fields']));_0xb6996d['attributes']=_0xb6996d[_0x5079('0x3a')][_0x5079('0x4c')]?_0xb6996d[_0x5079('0x3a')]:_0x1bd1ca[_0x5079('0x35')];_0xb6996d['order']=qs['sort'](_0x4c27a2['query'][_0x5079('0x3d')]);_0xb6996d[_0x5079('0x3e')]=qs[_0x5079('0x40')](_[_0x5079('0x3f')](_0x4c27a2[_0x5079('0x39')],_0x1bd1ca[_0x5079('0x40')]));if(_0x4c27a2[_0x5079('0x39')]['filter']){_0xb6996d[_0x5079('0x3e')]=_[_0x5079('0x41')](_0xb6996d['where'],{'$or':_['map'](_0xb6996d['attributes'],function(_0x3d89e5){var _0x4894b6={};_0x4894b6[_0x3d89e5]={'$like':'%'+_0x4c27a2['query'][_0x5079('0x43')]+'%'};return _0x4894b6;})});}_0xb6996d=_['merge']({},_0xb6996d,_0x4c27a2['options']);return _0x1fb5f0[_0x5079('0x50')](_0xb6996d);}})[_0x5079('0x2a')](function(_0x34723e){if(_0x34723e){_0x317ee4=_0x34723e[_0x5079('0x4c')];if(!_0x4c27a2[_0x5079('0x39')][_0x5079('0x51')]('nolimit')){_0xb6996d['limit']=qs['limit'](_0x4c27a2[_0x5079('0x39')][_0x5079('0x24')]);_0xb6996d[_0x5079('0x22')]=qs[_0x5079('0x22')](_0x4c27a2['query'][_0x5079('0x22')]);}return _0x1fb5f0[_0x5079('0x50')](_0xb6996d);}})['then'](function(_0x4787e3){if(_0x4787e3){return _0x4787e3?{'count':_0x317ee4,'rows':_0x4787e3}:null;}})[_0x5079('0x2a')](respondWithResult(_0x44321b,null))[_0x5079('0x49')](handleError(_0x44321b,null));};exports[_0x5079('0x52')]=function(_0x347195,_0x5ede7c,_0xcce7d8){if(_0x347195['body']['id']){delete _0x347195['body']['id'];}return db[_0x5079('0x30')][_0x5079('0x53')]({'where':{'id':_0x347195[_0x5079('0x4b')]['id']}})['then'](handleEntityNotFound(_0x5ede7c,null))[_0x5079('0x2a')](function(_0x38b8a6){if(_0x38b8a6){_0x347195[_0x5079('0x4f')][_0x5079('0x54')]=_0x38b8a6['id'];_0x347195['body']['Subjects']=integrations['getSubjects'](_0x347195[_0x5079('0x4f')]['channel'],_0x347195[_0x5079('0x4f')][_0x5079('0x33')]);_0x347195['body'][_0x5079('0x55')]=integrations[_0x5079('0x56')](_0x347195[_0x5079('0x4f')]['channel'],_0x347195[_0x5079('0x4f')][_0x5079('0x33')]);return db['FreshsalesConfiguration'][_0x5079('0x4e')](_0x347195[_0x5079('0x4f')],{'include':[{'model':db['FreshsalesField'],'as':'Subjects'},{'model':db[_0x5079('0x57')],'as':_0x5079('0x55')}]});}return null;})[_0x5079('0x2a')](respondWithResult(_0x5ede7c,null))[_0x5079('0x49')](handleError(_0x5ede7c,null));};exports[_0x5079('0x58')]=function(_0x4f1d30,_0x1b2dc0,_0x5c2590){var _0x668a89='';var _0x56f10a='';return db[_0x5079('0x30')][_0x5079('0x53')]({'where':{'id':_0x4f1d30[_0x5079('0x4b')]['id']},'attributes':['id',_0x5079('0x59'),_0x5079('0x5a'),_0x5079('0x5b')]})['then'](handleEntityNotFound(_0x1b2dc0,null))[_0x5079('0x2a')](function(_0xcb0430){if(_0xcb0430){_0x56f10a=_0xcb0430[_0x5079('0x59')];_0x668a89=_0xcb0430[_0x5079('0x5a')];var _0x72599e=_0xcb0430[_0x5079('0x5a')][_0x5079('0x5c')](-0x1);if(_0x72599e==='/'){_0x668a89=_0x668a89[_0x5079('0x5d')](0x0,_0x668a89[_0x5079('0x5e')](_0x72599e));}return rp({'method':'GET','uri':util[_0x5079('0x5f')](_0x5079('0x60'),_0x668a89,_0x5079('0x61')),'headers':{'Authorization':_0x5079('0x62')+_0xcb0430[_0x5079('0x5b')]},'json':!![]});}})[_0x5079('0x2a')](function(_0x461fb1){if(_0x461fb1){var _0x12c30e=_0x461fb1[_0x5079('0x63')];var _0x22afea=![];var _0x94ad2=null;for(_0x94ad2=0x0;_0x94ad2<_0x12c30e[_0x5079('0x4c')];_0x94ad2++){if(_0x12c30e[_0x94ad2][_0x5079('0x64')]===_0x56f10a){_0x22afea=!![];}}if(_0x22afea){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0x5079('0x2a')](respondWithResult(_0x1b2dc0,null))[_0x5079('0x49')](function(_0x5784c3){var _0x4dd8ff=_0x4f1d30[_0x5079('0x39')][_0x5079('0x65')]?0x1f4:_0x5784c3[_0x5079('0x66')]||0x1f4;logger[_0x5079('0x67')](_0x5079('0x68'),_0x5079('0x58'),_0x4dd8ff,JSON[_0x5079('0x69')](_0x5784c3));delete _0x5784c3[_0x5079('0x2d')];if(_0x4dd8ff===0x191){_0x4dd8ff=0x190;}_0x1b2dc0[_0x5079('0x1f')](_0x4dd8ff)[_0x5079('0x2e')](_0x4f1d30['query'][_0x5079('0x65')]?{'message':_0x5079('0x6a'),'statusCode':_0x5784c3[_0x5079('0x66')]}:_0x5784c3);});};
\ No newline at end of file
+var _0x9aee=['intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','include','rows','catch','show','rawAttributes','keys','create','find','params','body','getConfigurations','order','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','FreshsalesConfiguration','FreshsalesField','username','remoteUri','apiKey','slice','lastIndexOf','format','%s%s','/api/selector/owners','Token\x20token=','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','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','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','save','update','then','name','send','index','map','FreshsalesAccount','type','key','model','query','filters'];(function(_0x523fd7,_0x118f44){var _0x2f51ea=function(_0x1b6833){while(--_0x1b6833){_0x523fd7['push'](_0x523fd7['shift']());}};_0x2f51ea(++_0x118f44);}(_0x9aee,0x15d));var _0xe9ae=function(_0x33d9f0,_0x33ca57){_0x33d9f0=_0x33d9f0-0x0;var _0x4dabd5=_0x9aee[_0x33d9f0];return _0x4dabd5;};'use strict';var emlformat=require(_0xe9ae('0x0'));var rimraf=require(_0xe9ae('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe9ae('0x2'));var rp=require(_0xe9ae('0x3'));var moment=require(_0xe9ae('0x4'));var BPromise=require(_0xe9ae('0x5'));var Mustache=require(_0xe9ae('0x6'));var util=require(_0xe9ae('0x7'));var path=require('path');var sox=require(_0xe9ae('0x8'));var csv=require(_0xe9ae('0x9'));var ejs=require(_0xe9ae('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xe9ae('0xb'));var crypto=require(_0xe9ae('0xc'));var jsforce=require(_0xe9ae('0xd'));var deskjs=require(_0xe9ae('0xe'));var toCsv=require(_0xe9ae('0x9'));var querystring=require(_0xe9ae('0xf'));var Papa=require(_0xe9ae('0x10'));var Redis=require(_0xe9ae('0x11'));var authService=require(_0xe9ae('0x12'));var qs=require(_0xe9ae('0x13'));var as=require(_0xe9ae('0x14'));var hardwareService=require(_0xe9ae('0x15'));var logger=require(_0xe9ae('0x16'))(_0xe9ae('0x17'));var utils=require(_0xe9ae('0x18'));var config=require(_0xe9ae('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xe9ae('0x1a'))['db'];var integrations=require(_0xe9ae('0x1b'));function respondWithStatusCode(_0x470ec6,_0x1f1b1c){_0x1f1b1c=_0x1f1b1c||0xcc;return function(_0x13ccf9){if(_0x13ccf9){return _0x470ec6[_0xe9ae('0x1c')](_0x1f1b1c);}return _0x470ec6[_0xe9ae('0x1d')](_0x1f1b1c)[_0xe9ae('0x1e')]();};}function respondWithResult(_0x50a521,_0x2cea32){_0x2cea32=_0x2cea32||0xc8;return function(_0x2890c6){if(_0x2890c6){return _0x50a521[_0xe9ae('0x1d')](_0x2cea32)[_0xe9ae('0x1f')](_0x2890c6);}};}function respondWithFilteredResult(_0xefaea0,_0x2d2cd5){return function(_0x1db880){if(_0x1db880){var _0x9979de=typeof _0x2d2cd5[_0xe9ae('0x20')]===_0xe9ae('0x21')&&typeof _0x2d2cd5[_0xe9ae('0x22')]===_0xe9ae('0x21');var _0x231d11=_0x1db880[_0xe9ae('0x23')];var _0x4184da=_0x9979de?0x0:_0x2d2cd5[_0xe9ae('0x20')];var _0x413411=_0x9979de?_0x1db880[_0xe9ae('0x23')]:_0x2d2cd5[_0xe9ae('0x20')]+_0x2d2cd5[_0xe9ae('0x22')];var _0x3b75a8;if(_0x413411>=_0x231d11){_0x413411=_0x231d11;_0x3b75a8=0xc8;}else{_0x3b75a8=0xce;}_0xefaea0[_0xe9ae('0x1d')](_0x3b75a8);return _0xefaea0[_0xe9ae('0x24')]('Content-Range',_0x4184da+'-'+_0x413411+'/'+_0x231d11)[_0xe9ae('0x1f')](_0x1db880);}return null;};}function patchUpdates(_0x4f7d25){return function(_0x541ff8){try{jsonpatch[_0xe9ae('0x25')](_0x541ff8,_0x4f7d25,!![]);}catch(_0x5d7929){return BPromise['reject'](_0x5d7929);}return _0x541ff8[_0xe9ae('0x26')]();};}function saveUpdates(_0x50b4e8,_0x2faef0){return function(_0x1149b3){if(_0x1149b3){return _0x1149b3[_0xe9ae('0x27')](_0x50b4e8)['then'](function(_0x3809c3){return _0x3809c3;});}return null;};}function removeEntity(_0x4646dc,_0x37d0c0){return function(_0x422f34){if(_0x422f34){return _0x422f34['destroy']()[_0xe9ae('0x28')](function(){_0x4646dc['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x12e991,_0x564c3d){return function(_0x3b51ce){if(!_0x3b51ce){_0x12e991[_0xe9ae('0x1c')](0x194);}return _0x3b51ce;};}function handleError(_0x1d8cf0,_0x48685e){_0x48685e=_0x48685e||0x1f4;return function(_0x14a312){logger['error'](_0x14a312['stack']);if(_0x14a312[_0xe9ae('0x29')]){delete _0x14a312[_0xe9ae('0x29')];}_0x1d8cf0['status'](_0x48685e)[_0xe9ae('0x2a')](_0x14a312);};}exports[_0xe9ae('0x2b')]=function(_0x2baca5,_0x4f4881){var _0x369f1a={},_0x407acc={},_0x4ba761={'count':0x0,'rows':[]};var _0xf59177=_[_0xe9ae('0x2c')](db[_0xe9ae('0x2d')]['rawAttributes'],function(_0x5aa35b){return{'name':_0x5aa35b['fieldName'],'type':_0x5aa35b[_0xe9ae('0x2e')][_0xe9ae('0x2f')]};});_0x407acc[_0xe9ae('0x30')]=_[_0xe9ae('0x2c')](_0xf59177,_0xe9ae('0x29'));_0x407acc[_0xe9ae('0x31')]=_['keys'](_0x2baca5[_0xe9ae('0x31')]);_0x407acc[_0xe9ae('0x32')]=_[_0xe9ae('0x33')](_0x407acc[_0xe9ae('0x30')],_0x407acc[_0xe9ae('0x31')]);_0x369f1a[_0xe9ae('0x34')]=_[_0xe9ae('0x33')](_0x407acc[_0xe9ae('0x30')],qs[_0xe9ae('0x35')](_0x2baca5[_0xe9ae('0x31')][_0xe9ae('0x35')]));_0x369f1a[_0xe9ae('0x34')]=_0x369f1a[_0xe9ae('0x34')][_0xe9ae('0x36')]?_0x369f1a[_0xe9ae('0x34')]:_0x407acc[_0xe9ae('0x30')];if(!_0x2baca5[_0xe9ae('0x31')][_0xe9ae('0x37')](_0xe9ae('0x38'))){_0x369f1a['limit']=qs[_0xe9ae('0x22')](_0x2baca5[_0xe9ae('0x31')]['limit']);_0x369f1a[_0xe9ae('0x20')]=qs['offset'](_0x2baca5['query'][_0xe9ae('0x20')]);}_0x369f1a['order']=qs[_0xe9ae('0x39')](_0x2baca5[_0xe9ae('0x31')][_0xe9ae('0x39')]);_0x369f1a['where']=qs['filters'](_[_0xe9ae('0x3a')](_0x2baca5[_0xe9ae('0x31')],_0x407acc['filters']),_0xf59177);if(_0x2baca5[_0xe9ae('0x31')][_0xe9ae('0x3b')]){_0x369f1a[_0xe9ae('0x3c')]=_['merge'](_0x369f1a[_0xe9ae('0x3c')],{'$or':_['map'](_0xf59177,function(_0x4eefa3){if(_0x4eefa3[_0xe9ae('0x2e')]!==_0xe9ae('0x3d')){var _0x24ba0e={};_0x24ba0e[_0x4eefa3[_0xe9ae('0x29')]]={'$like':'%'+_0x2baca5[_0xe9ae('0x31')]['filter']+'%'};return _0x24ba0e;}})});}_0x369f1a=_[_0xe9ae('0x3e')]({},_0x369f1a,_0x2baca5[_0xe9ae('0x3f')]);var _0x4f3a45={'where':_0x369f1a['where']};return db[_0xe9ae('0x2d')][_0xe9ae('0x23')](_0x4f3a45)[_0xe9ae('0x28')](function(_0x28be41){_0x4ba761[_0xe9ae('0x23')]=_0x28be41;if(_0x2baca5['query'][_0xe9ae('0x40')]){_0x369f1a[_0xe9ae('0x41')]=[{'all':!![]}];}return db['FreshsalesAccount']['findAll'](_0x369f1a);})[_0xe9ae('0x28')](function(_0x4c42b8){_0x4ba761[_0xe9ae('0x42')]=_0x4c42b8;return _0x4ba761;})[_0xe9ae('0x28')](respondWithFilteredResult(_0x4f4881,_0x369f1a))[_0xe9ae('0x43')](handleError(_0x4f4881,null));};exports[_0xe9ae('0x44')]=function(_0x37959f,_0x5a76cf){var _0x1f3928={'raw':![],'where':{'id':_0x37959f['params']['id']}},_0x1933b3={};_0x1933b3[_0xe9ae('0x30')]=_['keys'](db[_0xe9ae('0x2d')][_0xe9ae('0x45')]);_0x1933b3[_0xe9ae('0x31')]=_[_0xe9ae('0x46')](_0x37959f[_0xe9ae('0x31')]);_0x1933b3[_0xe9ae('0x32')]=_[_0xe9ae('0x33')](_0x1933b3[_0xe9ae('0x30')],_0x1933b3['query']);_0x1f3928[_0xe9ae('0x34')]=_[_0xe9ae('0x33')](_0x1933b3[_0xe9ae('0x30')],qs[_0xe9ae('0x35')](_0x37959f[_0xe9ae('0x31')][_0xe9ae('0x35')]));_0x1f3928[_0xe9ae('0x34')]=_0x1f3928[_0xe9ae('0x34')]['length']?_0x1f3928[_0xe9ae('0x34')]:_0x1933b3[_0xe9ae('0x30')];if(_0x37959f[_0xe9ae('0x31')][_0xe9ae('0x40')]){_0x1f3928['include']=[{'all':!![]}];}_0x1f3928=_[_0xe9ae('0x3e')]({},_0x1f3928,_0x37959f[_0xe9ae('0x3f')]);return db[_0xe9ae('0x2d')]['find'](_0x1f3928)['then'](handleEntityNotFound(_0x5a76cf,null))[_0xe9ae('0x28')](respondWithResult(_0x5a76cf,null))['catch'](handleError(_0x5a76cf,null));};exports[_0xe9ae('0x47')]=function(_0x36fa79,_0x34c7d0){return db['FreshsalesAccount']['create'](_0x36fa79['body'],{})[_0xe9ae('0x28')](respondWithResult(_0x34c7d0,0xc9))[_0xe9ae('0x43')](handleError(_0x34c7d0,null));};exports[_0xe9ae('0x27')]=function(_0x5829ba,_0x448897){if(_0x5829ba['body']['id']){delete _0x5829ba['body']['id'];}return db[_0xe9ae('0x2d')][_0xe9ae('0x48')]({'where':{'id':_0x5829ba[_0xe9ae('0x49')]['id']}})[_0xe9ae('0x28')](handleEntityNotFound(_0x448897,null))[_0xe9ae('0x28')](saveUpdates(_0x5829ba[_0xe9ae('0x4a')],null))[_0xe9ae('0x28')](respondWithResult(_0x448897,null))[_0xe9ae('0x43')](handleError(_0x448897,null));};exports['destroy']=function(_0x3fb2dc,_0x239868){return db[_0xe9ae('0x2d')][_0xe9ae('0x48')]({'where':{'id':_0x3fb2dc['params']['id']}})[_0xe9ae('0x28')](handleEntityNotFound(_0x239868,null))[_0xe9ae('0x28')](removeEntity(_0x239868,null))[_0xe9ae('0x43')](handleError(_0x239868,null));};exports[_0xe9ae('0x4b')]=function(_0x2ecfac,_0x58d2e9,_0x12df1b){var _0x45e536={};var _0x52cbe6={};var _0x3987fe;var _0x154ba4;return db[_0xe9ae('0x2d')]['findOne']({'where':{'id':_0x2ecfac[_0xe9ae('0x49')]['id']}})[_0xe9ae('0x28')](handleEntityNotFound(_0x58d2e9,null))[_0xe9ae('0x28')](function(_0x304eb){if(_0x304eb){_0x3987fe=_0x304eb;_0x52cbe6[_0xe9ae('0x30')]=_[_0xe9ae('0x46')](db['FreshsalesConfiguration'][_0xe9ae('0x45')]);_0x52cbe6['query']=_[_0xe9ae('0x46')](_0x2ecfac[_0xe9ae('0x31')]);_0x52cbe6['filters']=_[_0xe9ae('0x33')](_0x52cbe6[_0xe9ae('0x30')],_0x52cbe6[_0xe9ae('0x31')]);_0x45e536['attributes']=_[_0xe9ae('0x33')](_0x52cbe6['model'],qs[_0xe9ae('0x35')](_0x2ecfac[_0xe9ae('0x31')][_0xe9ae('0x35')]));_0x45e536['attributes']=_0x45e536[_0xe9ae('0x34')][_0xe9ae('0x36')]?_0x45e536[_0xe9ae('0x34')]:_0x52cbe6['model'];_0x45e536[_0xe9ae('0x4c')]=qs[_0xe9ae('0x39')](_0x2ecfac[_0xe9ae('0x31')][_0xe9ae('0x39')]);_0x45e536['where']=qs['filters'](_[_0xe9ae('0x3a')](_0x2ecfac[_0xe9ae('0x31')],_0x52cbe6[_0xe9ae('0x32')]));if(_0x2ecfac[_0xe9ae('0x31')][_0xe9ae('0x3b')]){_0x45e536[_0xe9ae('0x3c')]=_[_0xe9ae('0x3e')](_0x45e536['where'],{'$or':_[_0xe9ae('0x2c')](_0x45e536[_0xe9ae('0x34')],function(_0x5c7883){var _0x3b26ce={};_0x3b26ce[_0x5c7883]={'$like':'%'+_0x2ecfac['query']['filter']+'%'};return _0x3b26ce;})});}_0x45e536=_[_0xe9ae('0x3e')]({},_0x45e536,_0x2ecfac[_0xe9ae('0x3f')]);return _0x3987fe[_0xe9ae('0x4b')](_0x45e536);}})[_0xe9ae('0x28')](function(_0x481daa){if(_0x481daa){_0x154ba4=_0x481daa[_0xe9ae('0x36')];if(!_0x2ecfac[_0xe9ae('0x31')][_0xe9ae('0x37')](_0xe9ae('0x38'))){_0x45e536[_0xe9ae('0x22')]=qs['limit'](_0x2ecfac[_0xe9ae('0x31')][_0xe9ae('0x22')]);_0x45e536[_0xe9ae('0x20')]=qs['offset'](_0x2ecfac[_0xe9ae('0x31')][_0xe9ae('0x20')]);}return _0x3987fe[_0xe9ae('0x4b')](_0x45e536);}})['then'](function(_0x3c145e){if(_0x3c145e){return _0x3c145e?{'count':_0x154ba4,'rows':_0x3c145e}:null;}})['then'](respondWithResult(_0x58d2e9,null))['catch'](handleError(_0x58d2e9,null));};exports['addConfiguration']=function(_0x2feca7,_0x1b6114,_0x2f8c66){if(_0x2feca7[_0xe9ae('0x4a')]['id']){delete _0x2feca7[_0xe9ae('0x4a')]['id'];}return db[_0xe9ae('0x2d')][_0xe9ae('0x4d')]({'where':{'id':_0x2feca7[_0xe9ae('0x49')]['id']}})[_0xe9ae('0x28')](handleEntityNotFound(_0x1b6114,null))[_0xe9ae('0x28')](function(_0x3eb255){if(_0x3eb255){_0x2feca7['body'][_0xe9ae('0x4e')]=_0x3eb255['id'];_0x2feca7[_0xe9ae('0x4a')][_0xe9ae('0x4f')]=integrations[_0xe9ae('0x50')](_0x2feca7[_0xe9ae('0x4a')][_0xe9ae('0x51')],_0x2feca7[_0xe9ae('0x4a')][_0xe9ae('0x2e')]);_0x2feca7[_0xe9ae('0x4a')][_0xe9ae('0x52')]=integrations['getDescriptions'](_0x2feca7[_0xe9ae('0x4a')][_0xe9ae('0x51')],_0x2feca7[_0xe9ae('0x4a')][_0xe9ae('0x2e')]);return db[_0xe9ae('0x53')][_0xe9ae('0x47')](_0x2feca7[_0xe9ae('0x4a')],{'include':[{'model':db[_0xe9ae('0x54')],'as':'Subjects'},{'model':db['FreshsalesField'],'as':_0xe9ae('0x52')}]});}return null;})[_0xe9ae('0x28')](respondWithResult(_0x1b6114,null))[_0xe9ae('0x43')](handleError(_0x1b6114,null));};exports['getFields']=function(_0x46f3d8,_0xeb143b,_0x389f87){var _0x31fdda='';var _0x2f45ee='';return db[_0xe9ae('0x2d')][_0xe9ae('0x4d')]({'where':{'id':_0x46f3d8['params']['id']},'attributes':['id',_0xe9ae('0x55'),_0xe9ae('0x56'),_0xe9ae('0x57')]})['then'](handleEntityNotFound(_0xeb143b,null))[_0xe9ae('0x28')](function(_0x770d9d){if(_0x770d9d){_0x2f45ee=_0x770d9d[_0xe9ae('0x55')];_0x31fdda=_0x770d9d[_0xe9ae('0x56')];var _0x11ae66=_0x770d9d[_0xe9ae('0x56')][_0xe9ae('0x58')](-0x1);if(_0x11ae66==='/'){_0x31fdda=_0x31fdda['substring'](0x0,_0x31fdda[_0xe9ae('0x59')](_0x11ae66));}return rp({'method':'GET','uri':util[_0xe9ae('0x5a')](_0xe9ae('0x5b'),_0x31fdda,_0xe9ae('0x5c')),'headers':{'Authorization':_0xe9ae('0x5d')+_0x770d9d['apiKey']},'json':!![]});}})['then'](function(_0x5751f5){if(_0x5751f5){var _0x172a89=_0x5751f5['users'];var _0x258e47=![];var _0x55d7e2=null;for(_0x55d7e2=0x0;_0x55d7e2<_0x172a89['length'];_0x55d7e2++){if(_0x172a89[_0x55d7e2]['email']===_0x2f45ee){_0x258e47=!![];}}if(_0x258e47){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0xe9ae('0x28')](respondWithResult(_0xeb143b,null))[_0xe9ae('0x43')](function(_0x36b916){var _0x17c5ad=_0x46f3d8[_0xe9ae('0x31')][_0xe9ae('0x5e')]?0x1f4:_0x36b916[_0xe9ae('0x5f')]||0x1f4;logger[_0xe9ae('0x60')](_0xe9ae('0x61'),'getFields',_0x17c5ad,JSON[_0xe9ae('0x62')](_0x36b916));delete _0x36b916['name'];if(_0x17c5ad===0x191){_0x17c5ad=0x190;}_0xeb143b[_0xe9ae('0x1d')](_0x17c5ad)['send'](_0x46f3d8[_0xe9ae('0x31')][_0xe9ae('0x5e')]?{'message':_0xe9ae('0x63'),'statusCode':_0x36b916[_0xe9ae('0x5f')]}:_0x36b916);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xffd6=['path','../../config/environment','./intFreshsalesAccount.attributes','../../components/integrations/configuration','exports','define','FreshsalesAccount','int_freshsales_accounts','lodash','util','../../config/logger','bluebird','request-promise'];(function(_0x5d3d47,_0x3270db){var _0x3abc7c=function(_0x3a796f){while(--_0x3a796f){_0x5d3d47['push'](_0x5d3d47['shift']());}};_0x3abc7c(++_0x3270db);}(_0xffd6,0x97));var _0x6ffd=function(_0x52e363,_0x48062a){_0x52e363=_0x52e363-0x0;var _0x3fc2b5=_0xffd6[_0x52e363];return _0x3fc2b5;};'use strict';var _=require(_0x6ffd('0x0'));var util=require(_0x6ffd('0x1'));var logger=require(_0x6ffd('0x2'))('api');var moment=require('moment');var BPromise=require(_0x6ffd('0x3'));var rp=require(_0x6ffd('0x4'));var fs=require('fs');var path=require(_0x6ffd('0x5'));var rimraf=require('rimraf');var config=require(_0x6ffd('0x6'));var attributes=require(_0x6ffd('0x7'));var integrations=require(_0x6ffd('0x8'));module[_0x6ffd('0x9')]=function(_0x561055,_0x122b71){return _0x561055[_0x6ffd('0xa')](_0x6ffd('0xb'),attributes,{'tableName':_0x6ffd('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5fab=['lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intFreshsalesAccount.attributes','../../components/integrations/configuration','exports','define','FreshsalesAccount','int_freshsales_accounts'];(function(_0x291d3f,_0x3ef99f){var _0x242080=function(_0x257705){while(--_0x257705){_0x291d3f['push'](_0x291d3f['shift']());}};_0x242080(++_0x3ef99f);}(_0x5fab,0x177));var _0xb5fa=function(_0x44aac2,_0x336163){_0x44aac2=_0x44aac2-0x0;var _0x38a6bc=_0x5fab[_0x44aac2];return _0x38a6bc;};'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'));var integrations=require(_0xb5fa('0xa'));module[_0xb5fa('0xb')]=function(_0x4a0249,_0x5d70f6){return _0x4a0249[_0xb5fa('0xc')](_0xb5fa('0xd'),attributes,{'tableName':_0xb5fa('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5430=['map','model','find','ShowFreshsalesAccount','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','jayson/promise','client','http','request','then','info','request\x20sent','debug','stringify','error','code','FreshsalesAccount,\x20%s,\x20%s','message','result','GetFreshsalesAccount','FreshsalesAccount','options','raw','where','attributes','limit','include'];(function(_0x40d963,_0x545025){var _0x19489c=function(_0x26797f){while(--_0x26797f){_0x40d963['push'](_0x40d963['shift']());}};_0x19489c(++_0x545025);}(_0x5430,0x10c));var _0x0543=function(_0x1e2490,_0x9ed55a){_0x1e2490=_0x1e2490-0x0;var _0x36bb03=_0x5430[_0x1e2490];return _0x36bb03;};'use strict';var _=require(_0x0543('0x0'));var util=require(_0x0543('0x1'));var moment=require(_0x0543('0x2'));var BPromise=require(_0x0543('0x3'));var rs=require(_0x0543('0x4'));var fs=require('fs');var Redis=require(_0x0543('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x0543('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x0543('0x7'));var client=jayson[_0x0543('0x8')][_0x0543('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x319568,_0x46bca7,_0x5ac352){return new BPromise(function(_0x372974,_0x7b8280){return client[_0x0543('0xa')](_0x319568,_0x5ac352)[_0x0543('0xb')](function(_0x2fb723){logger[_0x0543('0xc')]('FreshsalesAccount,\x20%s,\x20%s',_0x46bca7,_0x0543('0xd'));logger[_0x0543('0xe')]('FreshsalesAccount,\x20%s,\x20%s,\x20%s',_0x46bca7,_0x0543('0xd'),JSON[_0x0543('0xf')](_0x2fb723));if(_0x2fb723[_0x0543('0x10')]){if(_0x2fb723[_0x0543('0x10')][_0x0543('0x11')]===0x1f4){logger[_0x0543('0x10')](_0x0543('0x12'),_0x46bca7,_0x2fb723[_0x0543('0x10')][_0x0543('0x13')]);return _0x7b8280(_0x2fb723[_0x0543('0x10')][_0x0543('0x13')]);}logger[_0x0543('0x10')]('FreshsalesAccount,\x20%s,\x20%s',_0x46bca7,_0x2fb723[_0x0543('0x10')][_0x0543('0x13')]);return _0x372974(_0x2fb723['error']['message']);}else{logger[_0x0543('0xc')](_0x0543('0x12'),_0x46bca7,_0x0543('0xd'));_0x372974(_0x2fb723[_0x0543('0x14')][_0x0543('0x13')]);}})['catch'](function(_0xe69a3d){logger[_0x0543('0x10')](_0x0543('0x12'),_0x46bca7,_0xe69a3d);_0x7b8280(_0xe69a3d);});});}exports[_0x0543('0x15')]=function(_0x20b396){var _0x285080=this;return new Promise(function(_0x577cf0,_0x5eb03e){return db[_0x0543('0x16')]['findAll']({'raw':_0x20b396['options']?_0x20b396[_0x0543('0x17')][_0x0543('0x18')]===undefined?!![]:![]:!![],'where':_0x20b396[_0x0543('0x17')]?_0x20b396['options'][_0x0543('0x19')]||null:null,'attributes':_0x20b396['options']?_0x20b396[_0x0543('0x17')][_0x0543('0x1a')]||null:null,'limit':_0x20b396['options']?_0x20b396[_0x0543('0x17')][_0x0543('0x1b')]||null:null,'include':_0x20b396[_0x0543('0x17')]?_0x20b396[_0x0543('0x17')][_0x0543('0x1c')]?_[_0x0543('0x1d')](_0x20b396['options']['include'],function(_0x59f1b2){return{'model':db[_0x59f1b2[_0x0543('0x1e')]],'as':_0x59f1b2['as'],'attributes':_0x59f1b2[_0x0543('0x1a')],'include':_0x59f1b2[_0x0543('0x1c')]?_[_0x0543('0x1d')](_0x59f1b2[_0x0543('0x1c')],function(_0x26e500){return{'model':db[_0x26e500[_0x0543('0x1e')]],'as':_0x26e500['as'],'attributes':_0x26e500[_0x0543('0x1a')],'include':_0x26e500[_0x0543('0x1c')]?_[_0x0543('0x1d')](_0x26e500[_0x0543('0x1c')],function(_0x21fc63){return{'model':db[_0x21fc63['model']],'as':_0x21fc63['as'],'attributes':_0x21fc63[_0x0543('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x0543('0xb')](function(_0x30ad9e){logger['info'](_0x0543('0x15'),_0x20b396);logger[_0x0543('0xe')](_0x0543('0x15'),_0x20b396,JSON[_0x0543('0xf')](_0x30ad9e));_0x577cf0(_0x30ad9e);})['catch'](function(_0x1732be){logger[_0x0543('0x10')]('GetFreshsalesAccount',_0x1732be['message'],_0x20b396);_0x5eb03e(_0x285080[_0x0543('0x10')](0x1f4,_0x1732be[_0x0543('0x13')]));});});};exports['ShowFreshsalesAccount']=function(_0x3b879b){var _0x2e03d1=this;return new Promise(function(_0x931ccc,_0x2bd6ce){return db[_0x0543('0x16')][_0x0543('0x1f')]({'raw':_0x3b879b[_0x0543('0x17')]?_0x3b879b['options'][_0x0543('0x18')]===undefined?!![]:![]:!![],'where':_0x3b879b['options']?_0x3b879b[_0x0543('0x17')][_0x0543('0x19')]||null:null,'attributes':_0x3b879b[_0x0543('0x17')]?_0x3b879b[_0x0543('0x17')][_0x0543('0x1a')]||null:null,'include':_0x3b879b['options']?_0x3b879b[_0x0543('0x17')]['include']?_[_0x0543('0x1d')](_0x3b879b[_0x0543('0x17')][_0x0543('0x1c')],function(_0x327027){return{'model':db[_0x327027['model']],'as':_0x327027['as'],'attributes':_0x327027[_0x0543('0x1a')],'include':_0x327027['include']?_[_0x0543('0x1d')](_0x327027[_0x0543('0x1c')],function(_0x3fbf5f){return{'model':db[_0x3fbf5f[_0x0543('0x1e')]],'as':_0x3fbf5f['as'],'attributes':_0x3fbf5f[_0x0543('0x1a')],'include':_0x3fbf5f[_0x0543('0x1c')]?_[_0x0543('0x1d')](_0x3fbf5f[_0x0543('0x1c')],function(_0x8ef4d4){return{'model':db[_0x8ef4d4[_0x0543('0x1e')]],'as':_0x8ef4d4['as'],'attributes':_0x8ef4d4['attributes']};}):[]};}):[]};}):[]:[]})[_0x0543('0xb')](function(_0x2d76d6){logger['info'](_0x0543('0x20'),_0x3b879b);logger['debug'](_0x0543('0x20'),_0x3b879b,JSON[_0x0543('0xf')](_0x2d76d6));_0x931ccc(_0x2d76d6);})['catch'](function(_0x5e8800){logger[_0x0543('0x10')](_0x0543('0x20'),_0x5e8800['message'],_0x3b879b);_0x2bd6ce(_0x2e03d1[_0x0543('0x10')](0x1f4,_0x5e8800[_0x0543('0x13')]));});});};
\ No newline at end of file
+var _0x77e6=['result','catch','FreshsalesAccount','findAll','options','where','attributes','limit','include','model','map','GetFreshsalesAccount','ShowFreshsalesAccount','find','raw','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','request','then','info','request\x20sent','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','FreshsalesAccount,\x20%s,\x20%s','message'];(function(_0x566501,_0x25f894){var _0x5a8b63=function(_0x2d76b6){while(--_0x2d76b6){_0x566501['push'](_0x566501['shift']());}};_0x5a8b63(++_0x25f894);}(_0x77e6,0x1a6));var _0x677e=function(_0x5040c0,_0x34a2b3){_0x5040c0=_0x5040c0-0x0;var _0x2fff06=_0x77e6[_0x5040c0];return _0x2fff06;};'use strict';var _=require(_0x677e('0x0'));var util=require(_0x677e('0x1'));var moment=require(_0x677e('0x2'));var BPromise=require(_0x677e('0x3'));var rs=require(_0x677e('0x4'));var fs=require('fs');var Redis=require(_0x677e('0x5'));var db=require(_0x677e('0x6'))['db'];var utils=require(_0x677e('0x7'));var logger=require('../../config/logger')(_0x677e('0x8'));var config=require(_0x677e('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x677e('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x40d314,_0x4d1a57,_0x5a5dd3){return new BPromise(function(_0x2eb40c,_0x4c519f){return client[_0x677e('0xb')](_0x40d314,_0x5a5dd3)[_0x677e('0xc')](function(_0x552931){logger[_0x677e('0xd')]('FreshsalesAccount,\x20%s,\x20%s',_0x4d1a57,_0x677e('0xe'));logger[_0x677e('0xf')](_0x677e('0x10'),_0x4d1a57,_0x677e('0xe'),JSON[_0x677e('0x11')](_0x552931));if(_0x552931[_0x677e('0x12')]){if(_0x552931[_0x677e('0x12')][_0x677e('0x13')]===0x1f4){logger[_0x677e('0x12')](_0x677e('0x14'),_0x4d1a57,_0x552931[_0x677e('0x12')][_0x677e('0x15')]);return _0x4c519f(_0x552931[_0x677e('0x12')][_0x677e('0x15')]);}logger['error']('FreshsalesAccount,\x20%s,\x20%s',_0x4d1a57,_0x552931['error'][_0x677e('0x15')]);return _0x2eb40c(_0x552931[_0x677e('0x12')][_0x677e('0x15')]);}else{logger[_0x677e('0xd')](_0x677e('0x14'),_0x4d1a57,_0x677e('0xe'));_0x2eb40c(_0x552931[_0x677e('0x16')][_0x677e('0x15')]);}})[_0x677e('0x17')](function(_0x32d306){logger[_0x677e('0x12')](_0x677e('0x14'),_0x4d1a57,_0x32d306);_0x4c519f(_0x32d306);});});}exports['GetFreshsalesAccount']=function(_0x1c5124){var _0x2ef2bf=this;return new Promise(function(_0x385b06,_0x221b6d){return db[_0x677e('0x18')][_0x677e('0x19')]({'raw':_0x1c5124['options']?_0x1c5124[_0x677e('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x1c5124[_0x677e('0x1a')]?_0x1c5124[_0x677e('0x1a')][_0x677e('0x1b')]||null:null,'attributes':_0x1c5124['options']?_0x1c5124[_0x677e('0x1a')][_0x677e('0x1c')]||null:null,'limit':_0x1c5124[_0x677e('0x1a')]?_0x1c5124[_0x677e('0x1a')][_0x677e('0x1d')]||null:null,'include':_0x1c5124[_0x677e('0x1a')]?_0x1c5124[_0x677e('0x1a')]['include']?_['map'](_0x1c5124['options'][_0x677e('0x1e')],function(_0x154fce){return{'model':db[_0x154fce[_0x677e('0x1f')]],'as':_0x154fce['as'],'attributes':_0x154fce[_0x677e('0x1c')],'include':_0x154fce[_0x677e('0x1e')]?_[_0x677e('0x20')](_0x154fce[_0x677e('0x1e')],function(_0x42f2b8){return{'model':db[_0x42f2b8[_0x677e('0x1f')]],'as':_0x42f2b8['as'],'attributes':_0x42f2b8[_0x677e('0x1c')],'include':_0x42f2b8['include']?_['map'](_0x42f2b8[_0x677e('0x1e')],function(_0x184f68){return{'model':db[_0x184f68['model']],'as':_0x184f68['as'],'attributes':_0x184f68[_0x677e('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x677e('0xc')](function(_0xf6b3ad){logger[_0x677e('0xd')](_0x677e('0x21'),_0x1c5124);logger[_0x677e('0xf')]('GetFreshsalesAccount',_0x1c5124,JSON[_0x677e('0x11')](_0xf6b3ad));_0x385b06(_0xf6b3ad);})[_0x677e('0x17')](function(_0xeca8e2){logger[_0x677e('0x12')](_0x677e('0x21'),_0xeca8e2[_0x677e('0x15')],_0x1c5124);_0x221b6d(_0x2ef2bf[_0x677e('0x12')](0x1f4,_0xeca8e2[_0x677e('0x15')]));});});};exports[_0x677e('0x22')]=function(_0x4c5113){var _0x22ccfb=this;return new Promise(function(_0x3cac19,_0x2fb815){return db[_0x677e('0x18')][_0x677e('0x23')]({'raw':_0x4c5113[_0x677e('0x1a')]?_0x4c5113[_0x677e('0x1a')][_0x677e('0x24')]===undefined?!![]:![]:!![],'where':_0x4c5113[_0x677e('0x1a')]?_0x4c5113[_0x677e('0x1a')]['where']||null:null,'attributes':_0x4c5113[_0x677e('0x1a')]?_0x4c5113[_0x677e('0x1a')][_0x677e('0x1c')]||null:null,'include':_0x4c5113[_0x677e('0x1a')]?_0x4c5113[_0x677e('0x1a')][_0x677e('0x1e')]?_['map'](_0x4c5113[_0x677e('0x1a')][_0x677e('0x1e')],function(_0x2d0bc0){return{'model':db[_0x2d0bc0['model']],'as':_0x2d0bc0['as'],'attributes':_0x2d0bc0[_0x677e('0x1c')],'include':_0x2d0bc0[_0x677e('0x1e')]?_[_0x677e('0x20')](_0x2d0bc0[_0x677e('0x1e')],function(_0x35c945){return{'model':db[_0x35c945['model']],'as':_0x35c945['as'],'attributes':_0x35c945[_0x677e('0x1c')],'include':_0x35c945[_0x677e('0x1e')]?_[_0x677e('0x20')](_0x35c945[_0x677e('0x1e')],function(_0x548b22){return{'model':db[_0x548b22[_0x677e('0x1f')]],'as':_0x548b22['as'],'attributes':_0x548b22[_0x677e('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x677e('0xc')](function(_0x576443){logger['info'](_0x677e('0x22'),_0x4c5113);logger[_0x677e('0xf')]('ShowFreshsalesAccount',_0x4c5113,JSON[_0x677e('0x11')](_0x576443));_0x3cac19(_0x576443);})[_0x677e('0x17')](function(_0x497dca){logger['error'](_0x677e('0x22'),_0x497dca[_0x677e('0x15')],_0x4c5113);_0x2fb815(_0x22ccfb['error'](0x1f4,_0x497dca['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4db2=['update','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intFreshsalesConfiguration.controller','isAuthenticated','index','/:id','show','get','getDescriptions','/:id/fields','getFields','post','create'];(function(_0x4e9628,_0x250573){var _0x27bc8c=function(_0xb3b7ae){while(--_0xb3b7ae){_0x4e9628['push'](_0x4e9628['shift']());}};_0x27bc8c(++_0x250573);}(_0x4db2,0x1b9));var _0x24db=function(_0x3ea913,_0x255df2){_0x3ea913=_0x3ea913-0x0;var _0x2b4f28=_0x4db2[_0x3ea913];return _0x2b4f28;};'use strict';var multer=require(_0x24db('0x0'));var util=require(_0x24db('0x1'));var path=require('path');var timeout=require(_0x24db('0x2'));var express=require(_0x24db('0x3'));var router=express[_0x24db('0x4')]();var fs_extra=require(_0x24db('0x5'));var auth=require(_0x24db('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x24db('0x7'));var controller=require(_0x24db('0x8'));router['get']('/',auth[_0x24db('0x9')](),controller[_0x24db('0xa')]);router['get'](_0x24db('0xb'),auth[_0x24db('0x9')](),controller[_0x24db('0xc')]);router['get']('/:id/subjects',auth['isAuthenticated'](),controller['getSubjects']);router[_0x24db('0xd')]('/:id/descriptions',auth[_0x24db('0x9')](),controller[_0x24db('0xe')]);router[_0x24db('0xd')](_0x24db('0xf'),auth[_0x24db('0x9')](),controller[_0x24db('0x10')]);router[_0x24db('0x11')]('/',auth[_0x24db('0x9')](),controller[_0x24db('0x12')]);router['put'](_0x24db('0xb'),auth[_0x24db('0x9')](),controller[_0x24db('0x13')]);router[_0x24db('0x14')](_0x24db('0xb'),auth[_0x24db('0x9')](),controller[_0x24db('0x15')]);module[_0x24db('0x16')]=router;
\ No newline at end of file
+var _0xc033=['express','Router','fs-extra','../../config/environment','./intFreshsalesConfiguration.controller','get','/:id','isAuthenticated','/:id/descriptions','getDescriptions','getFields','post','put','destroy','exports','util'];(function(_0x3df92e,_0x576813){var _0x2a3b78=function(_0x2e7f79){while(--_0x2e7f79){_0x3df92e['push'](_0x3df92e['shift']());}};_0x2a3b78(++_0x576813);}(_0xc033,0x8f));var _0x3c03=function(_0x5ad924,_0x3a0103){_0x5ad924=_0x5ad924-0x0;var _0x44ad27=_0xc033[_0x5ad924];return _0x44ad27;};'use strict';var multer=require('multer');var util=require(_0x3c03('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x3c03('0x1'));var router=express[_0x3c03('0x2')]();var fs_extra=require(_0x3c03('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x3c03('0x4'));var controller=require(_0x3c03('0x5'));router[_0x3c03('0x6')]('/',auth['isAuthenticated'](),controller['index']);router[_0x3c03('0x6')](_0x3c03('0x7'),auth[_0x3c03('0x8')](),controller['show']);router[_0x3c03('0x6')]('/:id/subjects',auth[_0x3c03('0x8')](),controller['getSubjects']);router[_0x3c03('0x6')](_0x3c03('0x9'),auth[_0x3c03('0x8')](),controller[_0x3c03('0xa')]);router[_0x3c03('0x6')]('/:id/fields',auth[_0x3c03('0x8')](),controller[_0x3c03('0xb')]);router[_0x3c03('0xc')]('/',auth[_0x3c03('0x8')](),controller['create']);router[_0x3c03('0xd')](_0x3c03('0x7'),auth[_0x3c03('0x8')](),controller['update']);router['delete'](_0x3c03('0x7'),auth[_0x3c03('0x8')](),controller[_0x3c03('0xe')]);module[_0x3c03('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x060e=['sequelize','exports','STRING'];(function(_0x38b14f,_0xd08fa8){var _0x22a324=function(_0x4bbb05){while(--_0x4bbb05){_0x38b14f['push'](_0x38b14f['shift']());}};_0x22a324(++_0xd08fa8);}(_0x060e,0x8a));var _0xe060=function(_0x11ff55,_0x313baf){_0x11ff55=_0x11ff55-0x0;var _0x25afdd=_0x060e[_0x11ff55];return _0x25afdd;};'use strict';var Sequelize=require(_0xe060('0x0'));module[_0xe060('0x1')]={'name':{'type':Sequelize[_0xe060('0x2')]},'description':{'type':Sequelize[_0xe060('0x2')]}};
\ No newline at end of file
+var _0xfaa0=['STRING','sequelize','exports'];(function(_0x19c745,_0x33678e){var _0x2ec795=function(_0x1700f5){while(--_0x1700f5){_0x19c745['push'](_0x19c745['shift']());}};_0x2ec795(++_0x33678e);}(_0xfaa0,0xac));var _0x0faa=function(_0x49ba85,_0x6c81b3){_0x49ba85=_0x49ba85-0x0;var _0x47ff7c=_0xfaa0[_0x49ba85];return _0x47ff7c;};'use strict';var Sequelize=require(_0x0faa('0x0'));module[_0x0faa('0x1')]={'name':{'type':Sequelize[_0x0faa('0x2')]},'description':{'type':Sequelize[_0x0faa('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa81=['undefined','limit','count','offset','set','Content-Range','save','destroy','then','end','error','stack','name','send','index','FreshsalesConfiguration','rawAttributes','fieldName','key','query','keys','filters','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','VIRTUAL','options','include','findAll','catch','show','intersection','includeAll','create','body','update','find','params','findOne','FreshsalesField','getSubjects','getDescriptions','getFields','eml-format','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/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0xfa81,0x87));var _0x1fa8=function(_0xfa685b,_0x9d6e2a){_0xfa685b=_0xfa685b-0x0;var _0x1b9624=_0xfa81[_0xfa685b];return _0x1b9624;};'use strict';var emlformat=require(_0x1fa8('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x1fa8('0x1'));var rp=require(_0x1fa8('0x2'));var moment=require(_0x1fa8('0x3'));var BPromise=require(_0x1fa8('0x4'));var Mustache=require(_0x1fa8('0x5'));var util=require(_0x1fa8('0x6'));var path=require(_0x1fa8('0x7'));var sox=require('sox');var csv=require(_0x1fa8('0x8'));var ejs=require(_0x1fa8('0x9'));var fs=require('fs');var fs_extra=require(_0x1fa8('0xa'));var _=require(_0x1fa8('0xb'));var squel=require(_0x1fa8('0xc'));var crypto=require(_0x1fa8('0xd'));var jsforce=require(_0x1fa8('0xe'));var deskjs=require(_0x1fa8('0xf'));var toCsv=require('to-csv');var querystring=require(_0x1fa8('0x10'));var Papa=require(_0x1fa8('0x11'));var Redis=require(_0x1fa8('0x12'));var authService=require(_0x1fa8('0x13'));var qs=require(_0x1fa8('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1fa8('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x1fa8('0x16'));var config=require(_0x1fa8('0x17'));var licenseUtil=require(_0x1fa8('0x18'));var db=require(_0x1fa8('0x19'))['db'];function respondWithStatusCode(_0x37dbf3,_0x11c631){_0x11c631=_0x11c631||0xcc;return function(_0x4b400a){if(_0x4b400a){return _0x37dbf3[_0x1fa8('0x1a')](_0x11c631);}return _0x37dbf3[_0x1fa8('0x1b')](_0x11c631)['end']();};}function respondWithResult(_0x23d510,_0x49497c){_0x49497c=_0x49497c||0xc8;return function(_0x29a52e){if(_0x29a52e){return _0x23d510[_0x1fa8('0x1b')](_0x49497c)[_0x1fa8('0x1c')](_0x29a52e);}};}function respondWithFilteredResult(_0x37ee9d,_0x4a3434){return function(_0x274158){if(_0x274158){var _0x27262d=typeof _0x4a3434['offset']===_0x1fa8('0x1d')&&typeof _0x4a3434[_0x1fa8('0x1e')]===_0x1fa8('0x1d');var _0x12ff19=_0x274158[_0x1fa8('0x1f')];var _0x2ae648=_0x27262d?0x0:_0x4a3434[_0x1fa8('0x20')];var _0x5a5c96=_0x27262d?_0x274158[_0x1fa8('0x1f')]:_0x4a3434[_0x1fa8('0x20')]+_0x4a3434['limit'];var _0x57171d;if(_0x5a5c96>=_0x12ff19){_0x5a5c96=_0x12ff19;_0x57171d=0xc8;}else{_0x57171d=0xce;}_0x37ee9d[_0x1fa8('0x1b')](_0x57171d);return _0x37ee9d[_0x1fa8('0x21')](_0x1fa8('0x22'),_0x2ae648+'-'+_0x5a5c96+'/'+_0x12ff19)[_0x1fa8('0x1c')](_0x274158);}return null;};}function patchUpdates(_0xa3e0ba){return function(_0x5933a9){try{jsonpatch['apply'](_0x5933a9,_0xa3e0ba,!![]);}catch(_0x502c6e){return BPromise['reject'](_0x502c6e);}return _0x5933a9[_0x1fa8('0x23')]();};}function saveUpdates(_0x38dee4,_0x16dad7){return function(_0x597e5a){if(_0x597e5a){return _0x597e5a['update'](_0x38dee4)['then'](function(_0x4807fb){return _0x4807fb;});}return null;};}function removeEntity(_0x4c690a,_0x47c6a3){return function(_0x490509){if(_0x490509){return _0x490509[_0x1fa8('0x24')]()[_0x1fa8('0x25')](function(){_0x4c690a[_0x1fa8('0x1b')](0xcc)[_0x1fa8('0x26')]();});}};}function handleEntityNotFound(_0x4b67b9,_0x4aed96){return function(_0xe40b76){if(!_0xe40b76){_0x4b67b9[_0x1fa8('0x1a')](0x194);}return _0xe40b76;};}function handleError(_0x215a13,_0x27d3a4){_0x27d3a4=_0x27d3a4||0x1f4;return function(_0x3c1111){logger[_0x1fa8('0x27')](_0x3c1111[_0x1fa8('0x28')]);if(_0x3c1111[_0x1fa8('0x29')]){delete _0x3c1111[_0x1fa8('0x29')];}_0x215a13['status'](_0x27d3a4)[_0x1fa8('0x2a')](_0x3c1111);};}exports[_0x1fa8('0x2b')]=function(_0x484917,_0x4bf54e){var _0x35e2b1={},_0xf30a4={},_0x5bf6bd={'count':0x0,'rows':[]};var _0xf752a1=_['map'](db[_0x1fa8('0x2c')][_0x1fa8('0x2d')],function(_0x34121b){return{'name':_0x34121b[_0x1fa8('0x2e')],'type':_0x34121b['type'][_0x1fa8('0x2f')]};});_0xf30a4['model']=_['map'](_0xf752a1,_0x1fa8('0x29'));_0xf30a4[_0x1fa8('0x30')]=_[_0x1fa8('0x31')](_0x484917['query']);_0xf30a4[_0x1fa8('0x32')]=_['intersection'](_0xf30a4['model'],_0xf30a4[_0x1fa8('0x30')]);_0x35e2b1['attributes']=_['intersection'](_0xf30a4[_0x1fa8('0x33')],qs[_0x1fa8('0x34')](_0x484917[_0x1fa8('0x30')][_0x1fa8('0x34')]));_0x35e2b1[_0x1fa8('0x35')]=_0x35e2b1[_0x1fa8('0x35')][_0x1fa8('0x36')]?_0x35e2b1[_0x1fa8('0x35')]:_0xf30a4['model'];if(!_0x484917[_0x1fa8('0x30')][_0x1fa8('0x37')](_0x1fa8('0x38'))){_0x35e2b1[_0x1fa8('0x1e')]=qs[_0x1fa8('0x1e')](_0x484917[_0x1fa8('0x30')]['limit']);_0x35e2b1[_0x1fa8('0x20')]=qs[_0x1fa8('0x20')](_0x484917[_0x1fa8('0x30')]['offset']);}_0x35e2b1[_0x1fa8('0x39')]=qs[_0x1fa8('0x3a')](_0x484917[_0x1fa8('0x30')]['sort']);_0x35e2b1[_0x1fa8('0x3b')]=qs['filters'](_[_0x1fa8('0x3c')](_0x484917['query'],_0xf30a4['filters']),_0xf752a1);if(_0x484917[_0x1fa8('0x30')][_0x1fa8('0x3d')]){_0x35e2b1['where']=_[_0x1fa8('0x3e')](_0x35e2b1[_0x1fa8('0x3b')],{'$or':_[_0x1fa8('0x3f')](_0xf752a1,function(_0x1b56cc){if(_0x1b56cc['type']!==_0x1fa8('0x40')){var _0xb62702={};_0xb62702[_0x1b56cc[_0x1fa8('0x29')]]={'$like':'%'+_0x484917[_0x1fa8('0x30')]['filter']+'%'};return _0xb62702;}})});}_0x35e2b1=_[_0x1fa8('0x3e')]({},_0x35e2b1,_0x484917[_0x1fa8('0x41')]);var _0x253136={'where':_0x35e2b1['where']};return db[_0x1fa8('0x2c')][_0x1fa8('0x1f')](_0x253136)['then'](function(_0x18e7ca){_0x5bf6bd[_0x1fa8('0x1f')]=_0x18e7ca;if(_0x484917['query']['includeAll']){_0x35e2b1[_0x1fa8('0x42')]=[{'all':!![]}];}return db['FreshsalesConfiguration'][_0x1fa8('0x43')](_0x35e2b1);})[_0x1fa8('0x25')](function(_0x41b061){_0x5bf6bd['rows']=_0x41b061;return _0x5bf6bd;})[_0x1fa8('0x25')](respondWithFilteredResult(_0x4bf54e,_0x35e2b1))[_0x1fa8('0x44')](handleError(_0x4bf54e,null));};exports[_0x1fa8('0x45')]=function(_0x57543d,_0x34a0af){var _0x3a9c15={'raw':![],'where':{'id':_0x57543d['params']['id']}},_0x178c3c={};_0x178c3c[_0x1fa8('0x33')]=_['keys'](db[_0x1fa8('0x2c')][_0x1fa8('0x2d')]);_0x178c3c['query']=_[_0x1fa8('0x31')](_0x57543d[_0x1fa8('0x30')]);_0x178c3c[_0x1fa8('0x32')]=_[_0x1fa8('0x46')](_0x178c3c[_0x1fa8('0x33')],_0x178c3c[_0x1fa8('0x30')]);_0x3a9c15[_0x1fa8('0x35')]=_['intersection'](_0x178c3c[_0x1fa8('0x33')],qs['fields'](_0x57543d[_0x1fa8('0x30')][_0x1fa8('0x34')]));_0x3a9c15[_0x1fa8('0x35')]=_0x3a9c15['attributes'][_0x1fa8('0x36')]?_0x3a9c15[_0x1fa8('0x35')]:_0x178c3c[_0x1fa8('0x33')];if(_0x57543d[_0x1fa8('0x30')][_0x1fa8('0x47')]){_0x3a9c15[_0x1fa8('0x42')]=[{'all':!![]}];}_0x3a9c15=_['merge']({},_0x3a9c15,_0x57543d[_0x1fa8('0x41')]);return db[_0x1fa8('0x2c')]['find'](_0x3a9c15)['then'](handleEntityNotFound(_0x34a0af,null))['then'](respondWithResult(_0x34a0af,null))[_0x1fa8('0x44')](handleError(_0x34a0af,null));};exports['create']=function(_0x393df7,_0x5071c4){return db[_0x1fa8('0x2c')][_0x1fa8('0x48')](_0x393df7[_0x1fa8('0x49')],{})['then'](respondWithResult(_0x5071c4,0xc9))['catch'](handleError(_0x5071c4,null));};exports[_0x1fa8('0x4a')]=function(_0x5ebd2d,_0x5953bd){if(_0x5ebd2d[_0x1fa8('0x49')]['id']){delete _0x5ebd2d['body']['id'];}return db[_0x1fa8('0x2c')][_0x1fa8('0x4b')]({'where':{'id':_0x5ebd2d[_0x1fa8('0x4c')]['id']}})['then'](handleEntityNotFound(_0x5953bd,null))['then'](saveUpdates(_0x5ebd2d[_0x1fa8('0x49')],null))['then'](respondWithResult(_0x5953bd,null))[_0x1fa8('0x44')](handleError(_0x5953bd,null));};exports[_0x1fa8('0x24')]=function(_0x3c1a3c,_0x403f88){return db[_0x1fa8('0x2c')][_0x1fa8('0x4b')]({'where':{'id':_0x3c1a3c[_0x1fa8('0x4c')]['id']}})[_0x1fa8('0x25')](handleEntityNotFound(_0x403f88,null))['then'](removeEntity(_0x403f88,null))[_0x1fa8('0x44')](handleError(_0x403f88,null));};exports['getSubjects']=function(_0x5e99b9,_0xca5b72,_0x58d398){var _0x4aa17c={};var _0x2ecced={};var _0xe7a27f;var _0x521dc2;return db['FreshsalesConfiguration'][_0x1fa8('0x4d')]({'where':{'id':_0x5e99b9[_0x1fa8('0x4c')]['id']}})[_0x1fa8('0x25')](handleEntityNotFound(_0xca5b72,null))[_0x1fa8('0x25')](function(_0x58dced){if(_0x58dced){_0xe7a27f=_0x58dced;_0x2ecced['model']=_[_0x1fa8('0x31')](db[_0x1fa8('0x4e')][_0x1fa8('0x2d')]);_0x2ecced[_0x1fa8('0x30')]=_[_0x1fa8('0x31')](_0x5e99b9['query']);_0x2ecced['filters']=_['intersection'](_0x2ecced[_0x1fa8('0x33')],_0x2ecced['query']);_0x4aa17c[_0x1fa8('0x35')]=_['intersection'](_0x2ecced['model'],qs[_0x1fa8('0x34')](_0x5e99b9[_0x1fa8('0x30')][_0x1fa8('0x34')]));_0x4aa17c['attributes']=_0x4aa17c[_0x1fa8('0x35')][_0x1fa8('0x36')]?_0x4aa17c[_0x1fa8('0x35')]:_0x2ecced[_0x1fa8('0x33')];_0x4aa17c[_0x1fa8('0x39')]=qs['sort'](_0x5e99b9[_0x1fa8('0x30')][_0x1fa8('0x3a')]);_0x4aa17c['where']=qs['filters'](_[_0x1fa8('0x3c')](_0x5e99b9[_0x1fa8('0x30')],_0x2ecced[_0x1fa8('0x32')]));if(_0x5e99b9[_0x1fa8('0x30')][_0x1fa8('0x3d')]){_0x4aa17c[_0x1fa8('0x3b')]=_[_0x1fa8('0x3e')](_0x4aa17c[_0x1fa8('0x3b')],{'$or':_[_0x1fa8('0x3f')](_0x4aa17c[_0x1fa8('0x35')],function(_0x3d48ce){var _0x26f345={};_0x26f345[_0x3d48ce]={'$like':'%'+_0x5e99b9[_0x1fa8('0x30')][_0x1fa8('0x3d')]+'%'};return _0x26f345;})});}_0x4aa17c=_[_0x1fa8('0x3e')]({},_0x4aa17c,_0x5e99b9['options']);return _0xe7a27f[_0x1fa8('0x4f')](_0x4aa17c);}})[_0x1fa8('0x25')](function(_0x10c341){if(_0x10c341){_0x521dc2=_0x10c341['length'];if(!_0x5e99b9[_0x1fa8('0x30')][_0x1fa8('0x37')](_0x1fa8('0x38'))){_0x4aa17c[_0x1fa8('0x1e')]=qs[_0x1fa8('0x1e')](_0x5e99b9[_0x1fa8('0x30')]['limit']);_0x4aa17c[_0x1fa8('0x20')]=qs[_0x1fa8('0x20')](_0x5e99b9[_0x1fa8('0x30')][_0x1fa8('0x20')]);}return _0xe7a27f[_0x1fa8('0x4f')](_0x4aa17c);}})[_0x1fa8('0x25')](function(_0x3e26d5){if(_0x3e26d5){return _0x3e26d5?{'count':_0x521dc2,'rows':_0x3e26d5}:null;}})['then'](respondWithResult(_0xca5b72,null))[_0x1fa8('0x44')](handleError(_0xca5b72,null));};exports[_0x1fa8('0x50')]=function(_0x278982,_0x114251,_0x1550d8){var _0x202334={};var _0x1732c5={};var _0x1bd89e;var _0x19421c;return db[_0x1fa8('0x2c')][_0x1fa8('0x4d')]({'where':{'id':_0x278982['params']['id']}})[_0x1fa8('0x25')](handleEntityNotFound(_0x114251,null))[_0x1fa8('0x25')](function(_0x3a7af3){if(_0x3a7af3){_0x1bd89e=_0x3a7af3;_0x1732c5['model']=_[_0x1fa8('0x31')](db[_0x1fa8('0x4e')][_0x1fa8('0x2d')]);_0x1732c5[_0x1fa8('0x30')]=_[_0x1fa8('0x31')](_0x278982['query']);_0x1732c5[_0x1fa8('0x32')]=_['intersection'](_0x1732c5[_0x1fa8('0x33')],_0x1732c5[_0x1fa8('0x30')]);_0x202334[_0x1fa8('0x35')]=_[_0x1fa8('0x46')](_0x1732c5[_0x1fa8('0x33')],qs[_0x1fa8('0x34')](_0x278982[_0x1fa8('0x30')][_0x1fa8('0x34')]));_0x202334[_0x1fa8('0x35')]=_0x202334[_0x1fa8('0x35')]['length']?_0x202334[_0x1fa8('0x35')]:_0x1732c5[_0x1fa8('0x33')];_0x202334['order']=qs[_0x1fa8('0x3a')](_0x278982[_0x1fa8('0x30')]['sort']);_0x202334[_0x1fa8('0x3b')]=qs[_0x1fa8('0x32')](_[_0x1fa8('0x3c')](_0x278982[_0x1fa8('0x30')],_0x1732c5[_0x1fa8('0x32')]));if(_0x278982[_0x1fa8('0x30')][_0x1fa8('0x3d')]){_0x202334['where']=_[_0x1fa8('0x3e')](_0x202334[_0x1fa8('0x3b')],{'$or':_[_0x1fa8('0x3f')](_0x202334['attributes'],function(_0x2ccfdb){var _0x41fb8a={};_0x41fb8a[_0x2ccfdb]={'$like':'%'+_0x278982[_0x1fa8('0x30')]['filter']+'%'};return _0x41fb8a;})});}_0x202334=_[_0x1fa8('0x3e')]({},_0x202334,_0x278982['options']);return _0x1bd89e[_0x1fa8('0x50')](_0x202334);}})[_0x1fa8('0x25')](function(_0x4893dc){if(_0x4893dc){_0x19421c=_0x4893dc[_0x1fa8('0x36')];if(!_0x278982[_0x1fa8('0x30')][_0x1fa8('0x37')](_0x1fa8('0x38'))){_0x202334['limit']=qs['limit'](_0x278982[_0x1fa8('0x30')][_0x1fa8('0x1e')]);_0x202334[_0x1fa8('0x20')]=qs[_0x1fa8('0x20')](_0x278982[_0x1fa8('0x30')][_0x1fa8('0x20')]);}return _0x1bd89e[_0x1fa8('0x50')](_0x202334);}})[_0x1fa8('0x25')](function(_0x159d58){if(_0x159d58){return _0x159d58?{'count':_0x19421c,'rows':_0x159d58}:null;}})[_0x1fa8('0x25')](respondWithResult(_0x114251,null))[_0x1fa8('0x44')](handleError(_0x114251,null));};exports[_0x1fa8('0x51')]=function(_0x42c438,_0x1d7d28,_0x237829){var _0x2aa497={};var _0x2b0dfd={};var _0x4f65f7;var _0x21ba5c;return db[_0x1fa8('0x2c')]['findOne']({'where':{'id':_0x42c438['params']['id']}})[_0x1fa8('0x25')](handleEntityNotFound(_0x1d7d28,null))[_0x1fa8('0x25')](function(_0x454de0){if(_0x454de0){_0x4f65f7=_0x454de0;_0x2b0dfd[_0x1fa8('0x33')]=_[_0x1fa8('0x31')](db['FreshsalesField']['rawAttributes']);_0x2b0dfd[_0x1fa8('0x30')]=_[_0x1fa8('0x31')](_0x42c438[_0x1fa8('0x30')]);_0x2b0dfd[_0x1fa8('0x32')]=_[_0x1fa8('0x46')](_0x2b0dfd[_0x1fa8('0x33')],_0x2b0dfd[_0x1fa8('0x30')]);_0x2aa497[_0x1fa8('0x35')]=_[_0x1fa8('0x46')](_0x2b0dfd[_0x1fa8('0x33')],qs['fields'](_0x42c438[_0x1fa8('0x30')][_0x1fa8('0x34')]));_0x2aa497[_0x1fa8('0x35')]=_0x2aa497['attributes'][_0x1fa8('0x36')]?_0x2aa497['attributes']:_0x2b0dfd[_0x1fa8('0x33')];_0x2aa497[_0x1fa8('0x39')]=qs[_0x1fa8('0x3a')](_0x42c438[_0x1fa8('0x30')][_0x1fa8('0x3a')]);_0x2aa497[_0x1fa8('0x3b')]=qs[_0x1fa8('0x32')](_[_0x1fa8('0x3c')](_0x42c438[_0x1fa8('0x30')],_0x2b0dfd[_0x1fa8('0x32')]));if(_0x42c438['query'][_0x1fa8('0x3d')]){_0x2aa497[_0x1fa8('0x3b')]=_['merge'](_0x2aa497['where'],{'$or':_['map'](_0x2aa497['attributes'],function(_0x8beab8){var _0x198f79={};_0x198f79[_0x8beab8]={'$like':'%'+_0x42c438[_0x1fa8('0x30')][_0x1fa8('0x3d')]+'%'};return _0x198f79;})});}_0x2aa497=_[_0x1fa8('0x3e')]({},_0x2aa497,_0x42c438[_0x1fa8('0x41')]);return _0x4f65f7[_0x1fa8('0x51')](_0x2aa497);}})[_0x1fa8('0x25')](function(_0x1c9ad7){if(_0x1c9ad7){_0x21ba5c=_0x1c9ad7[_0x1fa8('0x36')];if(!_0x42c438[_0x1fa8('0x30')][_0x1fa8('0x37')](_0x1fa8('0x38'))){_0x2aa497[_0x1fa8('0x1e')]=qs[_0x1fa8('0x1e')](_0x42c438[_0x1fa8('0x30')][_0x1fa8('0x1e')]);_0x2aa497['offset']=qs[_0x1fa8('0x20')](_0x42c438[_0x1fa8('0x30')][_0x1fa8('0x20')]);}return _0x4f65f7[_0x1fa8('0x51')](_0x2aa497);}})[_0x1fa8('0x25')](function(_0x2a71c7){if(_0x2a71c7){return _0x2a71c7?{'count':_0x21ba5c,'rows':_0x2a71c7}:null;}})[_0x1fa8('0x25')](respondWithResult(_0x1d7d28,null))['catch'](handleError(_0x1d7d28,null));};
\ No newline at end of file
+var _0x76df=['count','set','json','apply','reject','save','then','sendStatus','error','stack','name','index','map','FreshsalesConfiguration','rawAttributes','fieldName','keys','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','order','sort','where','pick','merge','type','VIRTUAL','filter','options','includeAll','findAll','rows','catch','show','params','include','find','create','update','body','destroy','getSubjects','FreshsalesField','getDescriptions','nolimit','getFields','findOne','eml-format','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','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','status','offset','undefined','limit'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x76df,0x87));var _0xf76d=function(_0x3db745,_0x49ad24){_0x3db745=_0x3db745-0x0;var _0x4bcb72=_0x76df[_0x3db745];return _0x4bcb72;};'use strict';var emlformat=require(_0xf76d('0x0'));var rimraf=require(_0xf76d('0x1'));var zipdir=require(_0xf76d('0x2'));var jsonpatch=require(_0xf76d('0x3'));var rp=require(_0xf76d('0x4'));var moment=require(_0xf76d('0x5'));var BPromise=require(_0xf76d('0x6'));var Mustache=require(_0xf76d('0x7'));var util=require(_0xf76d('0x8'));var path=require(_0xf76d('0x9'));var sox=require(_0xf76d('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf76d('0xb'));var _=require(_0xf76d('0xc'));var squel=require('squel');var crypto=require(_0xf76d('0xd'));var jsforce=require(_0xf76d('0xe'));var deskjs=require(_0xf76d('0xf'));var toCsv=require(_0xf76d('0x10'));var querystring=require(_0xf76d('0x11'));var Papa=require('papaparse');var Redis=require(_0xf76d('0x12'));var authService=require(_0xf76d('0x13'));var qs=require(_0xf76d('0x14'));var as=require(_0xf76d('0x15'));var hardwareService=require(_0xf76d('0x16'));var logger=require(_0xf76d('0x17'))('api');var utils=require(_0xf76d('0x18'));var config=require(_0xf76d('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xf76d('0x1a'))['db'];function respondWithStatusCode(_0x47d49e,_0x2afea4){_0x2afea4=_0x2afea4||0xcc;return function(_0x4ed19e){if(_0x4ed19e){return _0x47d49e['sendStatus'](_0x2afea4);}return _0x47d49e['status'](_0x2afea4)['end']();};}function respondWithResult(_0x4108e6,_0x281659){_0x281659=_0x281659||0xc8;return function(_0x4ac86b){if(_0x4ac86b){return _0x4108e6[_0xf76d('0x1b')](_0x281659)['json'](_0x4ac86b);}};}function respondWithFilteredResult(_0x554da8,_0x25c16f){return function(_0x5896a8){if(_0x5896a8){var _0xf50d1d=typeof _0x25c16f[_0xf76d('0x1c')]===_0xf76d('0x1d')&&typeof _0x25c16f[_0xf76d('0x1e')]===_0xf76d('0x1d');var _0x507402=_0x5896a8['count'];var _0x4452fd=_0xf50d1d?0x0:_0x25c16f[_0xf76d('0x1c')];var _0x57c1cb=_0xf50d1d?_0x5896a8[_0xf76d('0x1f')]:_0x25c16f[_0xf76d('0x1c')]+_0x25c16f['limit'];var _0x2375f4;if(_0x57c1cb>=_0x507402){_0x57c1cb=_0x507402;_0x2375f4=0xc8;}else{_0x2375f4=0xce;}_0x554da8[_0xf76d('0x1b')](_0x2375f4);return _0x554da8[_0xf76d('0x20')]('Content-Range',_0x4452fd+'-'+_0x57c1cb+'/'+_0x507402)[_0xf76d('0x21')](_0x5896a8);}return null;};}function patchUpdates(_0x23ecb0){return function(_0x5e6ee7){try{jsonpatch[_0xf76d('0x22')](_0x5e6ee7,_0x23ecb0,!![]);}catch(_0x2d044b){return BPromise[_0xf76d('0x23')](_0x2d044b);}return _0x5e6ee7[_0xf76d('0x24')]();};}function saveUpdates(_0x28065a,_0x21b955){return function(_0x4ac446){if(_0x4ac446){return _0x4ac446['update'](_0x28065a)['then'](function(_0x1822ad){return _0x1822ad;});}return null;};}function removeEntity(_0x23fabd,_0x44f39b){return function(_0x1aaa05){if(_0x1aaa05){return _0x1aaa05['destroy']()[_0xf76d('0x25')](function(){_0x23fabd[_0xf76d('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x53403e,_0x12a445){return function(_0x465874){if(!_0x465874){_0x53403e[_0xf76d('0x26')](0x194);}return _0x465874;};}function handleError(_0x214822,_0x1fa933){_0x1fa933=_0x1fa933||0x1f4;return function(_0x6d3dec){logger[_0xf76d('0x27')](_0x6d3dec[_0xf76d('0x28')]);if(_0x6d3dec[_0xf76d('0x29')]){delete _0x6d3dec[_0xf76d('0x29')];}_0x214822[_0xf76d('0x1b')](_0x1fa933)['send'](_0x6d3dec);};}exports[_0xf76d('0x2a')]=function(_0x2cb6f6,_0x46422b){var _0x3ab083={},_0x29cc93={},_0x5b07cb={'count':0x0,'rows':[]};var _0x4a74f1=_[_0xf76d('0x2b')](db[_0xf76d('0x2c')][_0xf76d('0x2d')],function(_0x2c3a02){return{'name':_0x2c3a02[_0xf76d('0x2e')],'type':_0x2c3a02['type']['key']};});_0x29cc93['model']=_[_0xf76d('0x2b')](_0x4a74f1,'name');_0x29cc93['query']=_[_0xf76d('0x2f')](_0x2cb6f6[_0xf76d('0x30')]);_0x29cc93[_0xf76d('0x31')]=_[_0xf76d('0x32')](_0x29cc93[_0xf76d('0x33')],_0x29cc93['query']);_0x3ab083['attributes']=_[_0xf76d('0x32')](_0x29cc93[_0xf76d('0x33')],qs[_0xf76d('0x34')](_0x2cb6f6[_0xf76d('0x30')][_0xf76d('0x34')]));_0x3ab083['attributes']=_0x3ab083[_0xf76d('0x35')][_0xf76d('0x36')]?_0x3ab083['attributes']:_0x29cc93[_0xf76d('0x33')];if(!_0x2cb6f6[_0xf76d('0x30')][_0xf76d('0x37')]('nolimit')){_0x3ab083[_0xf76d('0x1e')]=qs[_0xf76d('0x1e')](_0x2cb6f6[_0xf76d('0x30')][_0xf76d('0x1e')]);_0x3ab083[_0xf76d('0x1c')]=qs[_0xf76d('0x1c')](_0x2cb6f6['query'][_0xf76d('0x1c')]);}_0x3ab083[_0xf76d('0x38')]=qs[_0xf76d('0x39')](_0x2cb6f6[_0xf76d('0x30')]['sort']);_0x3ab083[_0xf76d('0x3a')]=qs[_0xf76d('0x31')](_[_0xf76d('0x3b')](_0x2cb6f6['query'],_0x29cc93[_0xf76d('0x31')]),_0x4a74f1);if(_0x2cb6f6['query']['filter']){_0x3ab083[_0xf76d('0x3a')]=_[_0xf76d('0x3c')](_0x3ab083[_0xf76d('0x3a')],{'$or':_[_0xf76d('0x2b')](_0x4a74f1,function(_0x21c740){if(_0x21c740[_0xf76d('0x3d')]!==_0xf76d('0x3e')){var _0x149ed8={};_0x149ed8[_0x21c740[_0xf76d('0x29')]]={'$like':'%'+_0x2cb6f6['query'][_0xf76d('0x3f')]+'%'};return _0x149ed8;}})});}_0x3ab083=_['merge']({},_0x3ab083,_0x2cb6f6[_0xf76d('0x40')]);var _0x2dc0b8={'where':_0x3ab083[_0xf76d('0x3a')]};return db[_0xf76d('0x2c')][_0xf76d('0x1f')](_0x2dc0b8)[_0xf76d('0x25')](function(_0x1779b5){_0x5b07cb[_0xf76d('0x1f')]=_0x1779b5;if(_0x2cb6f6['query'][_0xf76d('0x41')]){_0x3ab083['include']=[{'all':!![]}];}return db[_0xf76d('0x2c')][_0xf76d('0x42')](_0x3ab083);})[_0xf76d('0x25')](function(_0x43a7e0){_0x5b07cb[_0xf76d('0x43')]=_0x43a7e0;return _0x5b07cb;})[_0xf76d('0x25')](respondWithFilteredResult(_0x46422b,_0x3ab083))[_0xf76d('0x44')](handleError(_0x46422b,null));};exports[_0xf76d('0x45')]=function(_0x2554ff,_0x16b52d){var _0x42c979={'raw':![],'where':{'id':_0x2554ff[_0xf76d('0x46')]['id']}},_0x20b6e9={};_0x20b6e9[_0xf76d('0x33')]=_[_0xf76d('0x2f')](db[_0xf76d('0x2c')][_0xf76d('0x2d')]);_0x20b6e9[_0xf76d('0x30')]=_[_0xf76d('0x2f')](_0x2554ff['query']);_0x20b6e9[_0xf76d('0x31')]=_[_0xf76d('0x32')](_0x20b6e9['model'],_0x20b6e9['query']);_0x42c979[_0xf76d('0x35')]=_['intersection'](_0x20b6e9[_0xf76d('0x33')],qs[_0xf76d('0x34')](_0x2554ff['query'][_0xf76d('0x34')]));_0x42c979[_0xf76d('0x35')]=_0x42c979[_0xf76d('0x35')][_0xf76d('0x36')]?_0x42c979[_0xf76d('0x35')]:_0x20b6e9[_0xf76d('0x33')];if(_0x2554ff['query']['includeAll']){_0x42c979[_0xf76d('0x47')]=[{'all':!![]}];}_0x42c979=_[_0xf76d('0x3c')]({},_0x42c979,_0x2554ff['options']);return db[_0xf76d('0x2c')][_0xf76d('0x48')](_0x42c979)['then'](handleEntityNotFound(_0x16b52d,null))[_0xf76d('0x25')](respondWithResult(_0x16b52d,null))[_0xf76d('0x44')](handleError(_0x16b52d,null));};exports[_0xf76d('0x49')]=function(_0x45f931,_0x53d2bd){return db[_0xf76d('0x2c')][_0xf76d('0x49')](_0x45f931['body'],{})[_0xf76d('0x25')](respondWithResult(_0x53d2bd,0xc9))['catch'](handleError(_0x53d2bd,null));};exports[_0xf76d('0x4a')]=function(_0x4d55b1,_0x2b506b){if(_0x4d55b1[_0xf76d('0x4b')]['id']){delete _0x4d55b1[_0xf76d('0x4b')]['id'];}return db[_0xf76d('0x2c')][_0xf76d('0x48')]({'where':{'id':_0x4d55b1[_0xf76d('0x46')]['id']}})['then'](handleEntityNotFound(_0x2b506b,null))[_0xf76d('0x25')](saveUpdates(_0x4d55b1[_0xf76d('0x4b')],null))[_0xf76d('0x25')](respondWithResult(_0x2b506b,null))['catch'](handleError(_0x2b506b,null));};exports[_0xf76d('0x4c')]=function(_0xf53af8,_0x2daeac){return db['FreshsalesConfiguration']['find']({'where':{'id':_0xf53af8[_0xf76d('0x46')]['id']}})[_0xf76d('0x25')](handleEntityNotFound(_0x2daeac,null))[_0xf76d('0x25')](removeEntity(_0x2daeac,null))['catch'](handleError(_0x2daeac,null));};exports[_0xf76d('0x4d')]=function(_0xfed588,_0x7da56,_0x44bf2d){var _0x48a797={};var _0x5439b9={};var _0x451682;var _0x509a18;return db['FreshsalesConfiguration']['findOne']({'where':{'id':_0xfed588[_0xf76d('0x46')]['id']}})['then'](handleEntityNotFound(_0x7da56,null))[_0xf76d('0x25')](function(_0x4f088e){if(_0x4f088e){_0x451682=_0x4f088e;_0x5439b9['model']=_[_0xf76d('0x2f')](db[_0xf76d('0x4e')][_0xf76d('0x2d')]);_0x5439b9[_0xf76d('0x30')]=_[_0xf76d('0x2f')](_0xfed588[_0xf76d('0x30')]);_0x5439b9[_0xf76d('0x31')]=_[_0xf76d('0x32')](_0x5439b9[_0xf76d('0x33')],_0x5439b9[_0xf76d('0x30')]);_0x48a797[_0xf76d('0x35')]=_[_0xf76d('0x32')](_0x5439b9['model'],qs['fields'](_0xfed588[_0xf76d('0x30')]['fields']));_0x48a797[_0xf76d('0x35')]=_0x48a797[_0xf76d('0x35')][_0xf76d('0x36')]?_0x48a797[_0xf76d('0x35')]:_0x5439b9[_0xf76d('0x33')];_0x48a797[_0xf76d('0x38')]=qs['sort'](_0xfed588[_0xf76d('0x30')][_0xf76d('0x39')]);_0x48a797['where']=qs[_0xf76d('0x31')](_[_0xf76d('0x3b')](_0xfed588[_0xf76d('0x30')],_0x5439b9['filters']));if(_0xfed588['query']['filter']){_0x48a797[_0xf76d('0x3a')]=_['merge'](_0x48a797[_0xf76d('0x3a')],{'$or':_[_0xf76d('0x2b')](_0x48a797[_0xf76d('0x35')],function(_0x31347c){var _0x44899a={};_0x44899a[_0x31347c]={'$like':'%'+_0xfed588[_0xf76d('0x30')][_0xf76d('0x3f')]+'%'};return _0x44899a;})});}_0x48a797=_[_0xf76d('0x3c')]({},_0x48a797,_0xfed588[_0xf76d('0x40')]);return _0x451682[_0xf76d('0x4d')](_0x48a797);}})['then'](function(_0x78ccc6){if(_0x78ccc6){_0x509a18=_0x78ccc6['length'];if(!_0xfed588[_0xf76d('0x30')][_0xf76d('0x37')]('nolimit')){_0x48a797[_0xf76d('0x1e')]=qs[_0xf76d('0x1e')](_0xfed588[_0xf76d('0x30')][_0xf76d('0x1e')]);_0x48a797[_0xf76d('0x1c')]=qs[_0xf76d('0x1c')](_0xfed588[_0xf76d('0x30')][_0xf76d('0x1c')]);}return _0x451682[_0xf76d('0x4d')](_0x48a797);}})[_0xf76d('0x25')](function(_0x1cb368){if(_0x1cb368){return _0x1cb368?{'count':_0x509a18,'rows':_0x1cb368}:null;}})['then'](respondWithResult(_0x7da56,null))[_0xf76d('0x44')](handleError(_0x7da56,null));};exports['getDescriptions']=function(_0x20573d,_0x2e97c7,_0xcc3c30){var _0x58ddae={};var _0x2efac8={};var _0x3baf92;var _0x356ffc;return db['FreshsalesConfiguration']['findOne']({'where':{'id':_0x20573d[_0xf76d('0x46')]['id']}})[_0xf76d('0x25')](handleEntityNotFound(_0x2e97c7,null))[_0xf76d('0x25')](function(_0x408f34){if(_0x408f34){_0x3baf92=_0x408f34;_0x2efac8[_0xf76d('0x33')]=_[_0xf76d('0x2f')](db[_0xf76d('0x4e')][_0xf76d('0x2d')]);_0x2efac8['query']=_[_0xf76d('0x2f')](_0x20573d['query']);_0x2efac8['filters']=_[_0xf76d('0x32')](_0x2efac8[_0xf76d('0x33')],_0x2efac8[_0xf76d('0x30')]);_0x58ddae['attributes']=_[_0xf76d('0x32')](_0x2efac8[_0xf76d('0x33')],qs[_0xf76d('0x34')](_0x20573d[_0xf76d('0x30')][_0xf76d('0x34')]));_0x58ddae[_0xf76d('0x35')]=_0x58ddae[_0xf76d('0x35')][_0xf76d('0x36')]?_0x58ddae[_0xf76d('0x35')]:_0x2efac8[_0xf76d('0x33')];_0x58ddae[_0xf76d('0x38')]=qs['sort'](_0x20573d[_0xf76d('0x30')][_0xf76d('0x39')]);_0x58ddae[_0xf76d('0x3a')]=qs[_0xf76d('0x31')](_[_0xf76d('0x3b')](_0x20573d[_0xf76d('0x30')],_0x2efac8[_0xf76d('0x31')]));if(_0x20573d['query'][_0xf76d('0x3f')]){_0x58ddae[_0xf76d('0x3a')]=_[_0xf76d('0x3c')](_0x58ddae[_0xf76d('0x3a')],{'$or':_['map'](_0x58ddae['attributes'],function(_0xe612e0){var _0x43ad97={};_0x43ad97[_0xe612e0]={'$like':'%'+_0x20573d['query'][_0xf76d('0x3f')]+'%'};return _0x43ad97;})});}_0x58ddae=_[_0xf76d('0x3c')]({},_0x58ddae,_0x20573d[_0xf76d('0x40')]);return _0x3baf92[_0xf76d('0x4f')](_0x58ddae);}})['then'](function(_0x33aab6){if(_0x33aab6){_0x356ffc=_0x33aab6['length'];if(!_0x20573d[_0xf76d('0x30')][_0xf76d('0x37')](_0xf76d('0x50'))){_0x58ddae['limit']=qs['limit'](_0x20573d[_0xf76d('0x30')][_0xf76d('0x1e')]);_0x58ddae[_0xf76d('0x1c')]=qs['offset'](_0x20573d[_0xf76d('0x30')][_0xf76d('0x1c')]);}return _0x3baf92[_0xf76d('0x4f')](_0x58ddae);}})[_0xf76d('0x25')](function(_0x28862a){if(_0x28862a){return _0x28862a?{'count':_0x356ffc,'rows':_0x28862a}:null;}})['then'](respondWithResult(_0x2e97c7,null))[_0xf76d('0x44')](handleError(_0x2e97c7,null));};exports[_0xf76d('0x51')]=function(_0x325fe5,_0x37ddff,_0x6f1816){var _0x183040={};var _0x470458={};var _0x7215b9;var _0x21354e;return db[_0xf76d('0x2c')][_0xf76d('0x52')]({'where':{'id':_0x325fe5[_0xf76d('0x46')]['id']}})[_0xf76d('0x25')](handleEntityNotFound(_0x37ddff,null))[_0xf76d('0x25')](function(_0x586779){if(_0x586779){_0x7215b9=_0x586779;_0x470458['model']=_[_0xf76d('0x2f')](db[_0xf76d('0x4e')]['rawAttributes']);_0x470458['query']=_[_0xf76d('0x2f')](_0x325fe5['query']);_0x470458['filters']=_[_0xf76d('0x32')](_0x470458[_0xf76d('0x33')],_0x470458[_0xf76d('0x30')]);_0x183040[_0xf76d('0x35')]=_['intersection'](_0x470458[_0xf76d('0x33')],qs['fields'](_0x325fe5['query']['fields']));_0x183040[_0xf76d('0x35')]=_0x183040['attributes'][_0xf76d('0x36')]?_0x183040[_0xf76d('0x35')]:_0x470458[_0xf76d('0x33')];_0x183040['order']=qs[_0xf76d('0x39')](_0x325fe5[_0xf76d('0x30')][_0xf76d('0x39')]);_0x183040[_0xf76d('0x3a')]=qs[_0xf76d('0x31')](_[_0xf76d('0x3b')](_0x325fe5[_0xf76d('0x30')],_0x470458[_0xf76d('0x31')]));if(_0x325fe5[_0xf76d('0x30')]['filter']){_0x183040[_0xf76d('0x3a')]=_[_0xf76d('0x3c')](_0x183040[_0xf76d('0x3a')],{'$or':_[_0xf76d('0x2b')](_0x183040[_0xf76d('0x35')],function(_0x264fbc){var _0x5e2398={};_0x5e2398[_0x264fbc]={'$like':'%'+_0x325fe5[_0xf76d('0x30')][_0xf76d('0x3f')]+'%'};return _0x5e2398;})});}_0x183040=_[_0xf76d('0x3c')]({},_0x183040,_0x325fe5[_0xf76d('0x40')]);return _0x7215b9[_0xf76d('0x51')](_0x183040);}})[_0xf76d('0x25')](function(_0x2b30c1){if(_0x2b30c1){_0x21354e=_0x2b30c1['length'];if(!_0x325fe5[_0xf76d('0x30')][_0xf76d('0x37')](_0xf76d('0x50'))){_0x183040[_0xf76d('0x1e')]=qs[_0xf76d('0x1e')](_0x325fe5[_0xf76d('0x30')][_0xf76d('0x1e')]);_0x183040[_0xf76d('0x1c')]=qs['offset'](_0x325fe5[_0xf76d('0x30')][_0xf76d('0x1c')]);}return _0x7215b9['getFields'](_0x183040);}})['then'](function(_0x5eff12){if(_0x5eff12){return _0x5eff12?{'count':_0x21354e,'rows':_0x5eff12}:null;}})['then'](respondWithResult(_0x37ddff,null))['catch'](handleError(_0x37ddff,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf8da=['rimraf','exports','FreshsalesConfiguration','int_freshsales_configurations','util','api','moment','bluebird','request-promise','path'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xf8da,0xa4));var _0xaf8d=function(_0x32d1ec,_0x4a5161){_0x32d1ec=_0x32d1ec-0x0;var _0x5906c5=_0xf8da[_0x32d1ec];return _0x5906c5;};'use strict';var _=require('lodash');var util=require(_0xaf8d('0x0'));var logger=require('../../config/logger')(_0xaf8d('0x1'));var moment=require(_0xaf8d('0x2'));var BPromise=require(_0xaf8d('0x3'));var rp=require(_0xaf8d('0x4'));var fs=require('fs');var path=require(_0xaf8d('0x5'));var rimraf=require(_0xaf8d('0x6'));var config=require('../../config/environment');var attributes=require('./intFreshsalesConfiguration.attributes');module[_0xaf8d('0x7')]=function(_0x2a545d,_0xf796c1){return _0x2a545d['define'](_0xaf8d('0x8'),attributes,{'tableName':_0xaf8d('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8563=['./intFreshsalesConfiguration.attributes','exports','define','FreshsalesConfiguration','int_freshsales_configurations','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x8563,0x75));var _0x3856=function(_0x53270b,_0x322373){_0x53270b=_0x53270b-0x0;var _0x37f827=_0x8563[_0x53270b];return _0x37f827;};'use strict';var _=require(_0x3856('0x0'));var util=require(_0x3856('0x1'));var logger=require(_0x3856('0x2'))(_0x3856('0x3'));var moment=require('moment');var BPromise=require(_0x3856('0x4'));var rp=require(_0x3856('0x5'));var fs=require('fs');var path=require(_0x3856('0x6'));var rimraf=require(_0x3856('0x7'));var config=require(_0x3856('0x8'));var attributes=require(_0x3856('0x9'));module[_0x3856('0xa')]=function(_0x4cdc98,_0x46d2f4){return _0x4cdc98[_0x3856('0xb')](_0x3856('0xc'),attributes,{'tableName':_0x3856('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x707a=['message','info','result','catch','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','FreshsalesConfiguration,\x20%s,\x20%s','request\x20sent','debug','FreshsalesConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x50f157,_0x280833){var _0x7e0178=function(_0x14eaf1){while(--_0x14eaf1){_0x50f157['push'](_0x50f157['shift']());}};_0x7e0178(++_0x280833);}(_0x707a,0x17b));var _0xa707=function(_0x5bdd46,_0xbbd4b6){_0x5bdd46=_0x5bdd46-0x0;var _0x178a78=_0x707a[_0x5bdd46];return _0x178a78;};'use strict';var _=require(_0xa707('0x0'));var util=require(_0xa707('0x1'));var moment=require(_0xa707('0x2'));var BPromise=require(_0xa707('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa707('0x4'))['db'];var utils=require(_0xa707('0x5'));var logger=require(_0xa707('0x6'))(_0xa707('0x7'));var config=require(_0xa707('0x8'));var jayson=require(_0xa707('0x9'));var client=jayson[_0xa707('0xa')][_0xa707('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1da172,_0x591257,_0x4e8e38){return new BPromise(function(_0x2e0e4a,_0xc3a92e){return client[_0xa707('0xc')](_0x1da172,_0x4e8e38)[_0xa707('0xd')](function(_0x27c9fa){logger['info'](_0xa707('0xe'),_0x591257,_0xa707('0xf'));logger[_0xa707('0x10')](_0xa707('0x11'),_0x591257,_0xa707('0xf'),JSON[_0xa707('0x12')](_0x27c9fa));if(_0x27c9fa[_0xa707('0x13')]){if(_0x27c9fa[_0xa707('0x13')][_0xa707('0x14')]===0x1f4){logger[_0xa707('0x13')](_0xa707('0xe'),_0x591257,_0x27c9fa['error'][_0xa707('0x15')]);return _0xc3a92e(_0x27c9fa[_0xa707('0x13')]['message']);}logger[_0xa707('0x13')](_0xa707('0xe'),_0x591257,_0x27c9fa[_0xa707('0x13')][_0xa707('0x15')]);return _0x2e0e4a(_0x27c9fa[_0xa707('0x13')][_0xa707('0x15')]);}else{logger[_0xa707('0x16')](_0xa707('0xe'),_0x591257,_0xa707('0xf'));_0x2e0e4a(_0x27c9fa[_0xa707('0x17')][_0xa707('0x15')]);}})[_0xa707('0x18')](function(_0x37941c){logger[_0xa707('0x13')](_0xa707('0xe'),_0x591257,_0x37941c);_0xc3a92e(_0x37941c);});});}
\ No newline at end of file
+var _0x11cd=['moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','client','request','then','request\x20sent','debug','FreshsalesConfiguration,\x20%s,\x20%s,\x20%s','stringify','code','error','FreshsalesConfiguration,\x20%s,\x20%s','message','info','catch','lodash','util'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x11cd,0xd0));var _0xd11c=function(_0x1d6fd8,_0x964fea){_0x1d6fd8=_0x1d6fd8-0x0;var _0x1686bb=_0x11cd[_0x1d6fd8];return _0x1686bb;};'use strict';var _=require(_0xd11c('0x0'));var util=require(_0xd11c('0x1'));var moment=require(_0xd11c('0x2'));var BPromise=require(_0xd11c('0x3'));var rs=require(_0xd11c('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd11c('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xd11c('0x6'))(_0xd11c('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xd11c('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0xc78dd9,_0x151173,_0x40d10e){return new BPromise(function(_0x11b85d,_0x374b01){return client[_0xd11c('0x9')](_0xc78dd9,_0x40d10e)[_0xd11c('0xa')](function(_0x4d7681){logger['info']('FreshsalesConfiguration,\x20%s,\x20%s',_0x151173,_0xd11c('0xb'));logger[_0xd11c('0xc')](_0xd11c('0xd'),_0x151173,_0xd11c('0xb'),JSON[_0xd11c('0xe')](_0x4d7681));if(_0x4d7681['error']){if(_0x4d7681['error'][_0xd11c('0xf')]===0x1f4){logger[_0xd11c('0x10')](_0xd11c('0x11'),_0x151173,_0x4d7681[_0xd11c('0x10')][_0xd11c('0x12')]);return _0x374b01(_0x4d7681[_0xd11c('0x10')][_0xd11c('0x12')]);}logger['error'](_0xd11c('0x11'),_0x151173,_0x4d7681[_0xd11c('0x10')][_0xd11c('0x12')]);return _0x11b85d(_0x4d7681[_0xd11c('0x10')]['message']);}else{logger[_0xd11c('0x13')](_0xd11c('0x11'),_0x151173,_0xd11c('0xb'));_0x11b85d(_0x4d7681['result'][_0xd11c('0x12')]);}})[_0xd11c('0x14')](function(_0x4d59d9){logger['error'](_0xd11c('0x11'),_0x151173,_0x4d59d9);_0x374b01(_0x4d59d9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7846=['./intFreshsalesField.controller','get','isAuthenticated','index','show','post','create','put','/:id','update','delete','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment'];(function(_0x332aed,_0x55aa31){var _0x584d95=function(_0x49f0e3){while(--_0x49f0e3){_0x332aed['push'](_0x332aed['shift']());}};_0x584d95(++_0x55aa31);}(_0x7846,0xf4));var _0x6784=function(_0x3f1710,_0x3877a2){_0x3f1710=_0x3f1710-0x0;var _0x528458=_0x7846[_0x3f1710];return _0x528458;};'use strict';var multer=require('multer');var util=require(_0x6784('0x0'));var path=require(_0x6784('0x1'));var timeout=require(_0x6784('0x2'));var express=require(_0x6784('0x3'));var router=express[_0x6784('0x4')]();var fs_extra=require(_0x6784('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x6784('0x6'));var config=require(_0x6784('0x7'));var controller=require(_0x6784('0x8'));router[_0x6784('0x9')]('/',auth[_0x6784('0xa')](),controller[_0x6784('0xb')]);router[_0x6784('0x9')]('/:id',auth['isAuthenticated'](),controller[_0x6784('0xc')]);router[_0x6784('0xd')]('/',auth[_0x6784('0xa')](),controller[_0x6784('0xe')]);router[_0x6784('0xf')](_0x6784('0x10'),auth[_0x6784('0xa')](),controller[_0x6784('0x11')]);router[_0x6784('0x12')](_0x6784('0x10'),auth[_0x6784('0xa')](),controller[_0x6784('0x13')]);module[_0x6784('0x14')]=router;
\ No newline at end of file
+var _0x5825=['../../components/interaction/service','../../config/environment','./intFreshsalesField.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','../../components/auth/service'];(function(_0x1d8d45,_0x105ff4){var _0x2244ca=function(_0x1f405a){while(--_0x1f405a){_0x1d8d45['push'](_0x1d8d45['shift']());}};_0x2244ca(++_0x105ff4);}(_0x5825,0x78));var _0x5582=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x5825[_0x19950b];return _0x3c6b41;};'use strict';var multer=require(_0x5582('0x0'));var util=require(_0x5582('0x1'));var path=require(_0x5582('0x2'));var timeout=require(_0x5582('0x3'));var express=require('express');var router=express[_0x5582('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x5582('0x5'));var interaction=require(_0x5582('0x6'));var config=require(_0x5582('0x7'));var controller=require(_0x5582('0x8'));router[_0x5582('0x9')]('/',auth[_0x5582('0xa')](),controller[_0x5582('0xb')]);router['get'](_0x5582('0xc'),auth[_0x5582('0xa')](),controller[_0x5582('0xd')]);router[_0x5582('0xe')]('/',auth['isAuthenticated'](),controller[_0x5582('0xf')]);router[_0x5582('0x10')](_0x5582('0xc'),auth['isAuthenticated'](),controller[_0x5582('0x11')]);router[_0x5582('0x12')](_0x5582('0xc'),auth['isAuthenticated'](),controller[_0x5582('0x13')]);module[_0x5582('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ed3=['sequelize','string','customVariable','keyValue','STRING','ENUM','variable','BOOLEAN'];(function(_0x314045,_0x44b9f9){var _0x57362f=function(_0x9fe304){while(--_0x9fe304){_0x314045['push'](_0x314045['shift']());}};_0x57362f(++_0x44b9f9);}(_0x7ed3,0x158));var _0x37ed=function(_0x1f2c30,_0x5dc27f){_0x1f2c30=_0x1f2c30-0x0;var _0xaa064d=_0x7ed3[_0x1f2c30];return _0xaa064d;};'use strict';var Sequelize=require(_0x37ed('0x0'));module['exports']={'type':{'type':Sequelize['ENUM'](_0x37ed('0x1'),'variable',_0x37ed('0x2'),_0x37ed('0x3'),'picklist'),'defaultValue':_0x37ed('0x1')},'content':{'type':Sequelize[_0x37ed('0x4')]},'key':{'type':Sequelize[_0x37ed('0x4')]},'keyType':{'type':Sequelize[_0x37ed('0x5')](_0x37ed('0x1'),_0x37ed('0x6'),_0x37ed('0x2'))},'keyContent':{'type':Sequelize[_0x37ed('0x4')]},'idField':{'type':Sequelize[_0x37ed('0x4')]},'nameField':{'type':Sequelize[_0x37ed('0x4')]},'customField':{'type':Sequelize[_0x37ed('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x37ed('0x4')]}};
\ No newline at end of file
+var _0x7b22=['BOOLEAN','sequelize','exports','variable','customVariable','keyValue','picklist','string','STRING','ENUM'];(function(_0x5e3701,_0x596265){var _0x345dcf=function(_0x5eb12a){while(--_0x5eb12a){_0x5e3701['push'](_0x5e3701['shift']());}};_0x345dcf(++_0x596265);}(_0x7b22,0x105));var _0x27b2=function(_0x1559a5,_0x41924e){_0x1559a5=_0x1559a5-0x0;var _0x17a783=_0x7b22[_0x1559a5];return _0x17a783;};'use strict';var Sequelize=require(_0x27b2('0x0'));module[_0x27b2('0x1')]={'type':{'type':Sequelize['ENUM']('string',_0x27b2('0x2'),_0x27b2('0x3'),_0x27b2('0x4'),_0x27b2('0x5')),'defaultValue':_0x27b2('0x6')},'content':{'type':Sequelize[_0x27b2('0x7')]},'key':{'type':Sequelize[_0x27b2('0x7')]},'keyType':{'type':Sequelize[_0x27b2('0x8')](_0x27b2('0x6'),_0x27b2('0x2'),_0x27b2('0x3'))},'keyContent':{'type':Sequelize[_0x27b2('0x7')]},'idField':{'type':Sequelize[_0x27b2('0x7')]},'nameField':{'type':Sequelize[_0x27b2('0x7')]},'customField':{'type':Sequelize[_0x27b2('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x27b2('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5baf=['../../config/license/util','../../mysqldb','sendStatus','status','offset','limit','undefined','count','json','reject','update','then','end','error','stack','name','send','index','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','map','FreshsalesField','includeAll','include','rows','catch','show','params','keys','rawAttributes','options','find','create','body','destroy','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/environment'];(function(_0x47ae1f,_0x328d68){var _0x2a0233=function(_0x53dd41){while(--_0x53dd41){_0x47ae1f['push'](_0x47ae1f['shift']());}};_0x2a0233(++_0x328d68);}(_0x5baf,0xbc));var _0xf5ba=function(_0x2179b7,_0x380c4c){_0x2179b7=_0x2179b7-0x0;var _0x13d1fb=_0x5baf[_0x2179b7];return _0x13d1fb;};'use strict';var emlformat=require(_0xf5ba('0x0'));var rimraf=require(_0xf5ba('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf5ba('0x2'));var rp=require(_0xf5ba('0x3'));var moment=require(_0xf5ba('0x4'));var BPromise=require(_0xf5ba('0x5'));var Mustache=require('mustache');var util=require(_0xf5ba('0x6'));var path=require(_0xf5ba('0x7'));var sox=require(_0xf5ba('0x8'));var csv=require(_0xf5ba('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf5ba('0xa'));var _=require('lodash');var squel=require(_0xf5ba('0xb'));var crypto=require('crypto');var jsforce=require(_0xf5ba('0xc'));var deskjs=require(_0xf5ba('0xd'));var toCsv=require(_0xf5ba('0x9'));var querystring=require('querystring');var Papa=require(_0xf5ba('0xe'));var Redis=require('ioredis');var authService=require(_0xf5ba('0xf'));var qs=require(_0xf5ba('0x10'));var as=require(_0xf5ba('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xf5ba('0x12'));var licenseUtil=require(_0xf5ba('0x13'));var db=require(_0xf5ba('0x14'))['db'];function respondWithStatusCode(_0x282732,_0x48e59c){_0x48e59c=_0x48e59c||0xcc;return function(_0x3cf2ae){if(_0x3cf2ae){return _0x282732[_0xf5ba('0x15')](_0x48e59c);}return _0x282732[_0xf5ba('0x16')](_0x48e59c)['end']();};}function respondWithResult(_0x441c88,_0x23b711){_0x23b711=_0x23b711||0xc8;return function(_0xffdb00){if(_0xffdb00){return _0x441c88['status'](_0x23b711)['json'](_0xffdb00);}};}function respondWithFilteredResult(_0x4dd83d,_0x21a3d5){return function(_0x320c32){if(_0x320c32){var _0x29d574=typeof _0x21a3d5[_0xf5ba('0x17')]==='undefined'&&typeof _0x21a3d5[_0xf5ba('0x18')]===_0xf5ba('0x19');var _0x703a85=_0x320c32['count'];var _0xa61595=_0x29d574?0x0:_0x21a3d5[_0xf5ba('0x17')];var _0x254c2f=_0x29d574?_0x320c32[_0xf5ba('0x1a')]:_0x21a3d5[_0xf5ba('0x17')]+_0x21a3d5['limit'];var _0x16eaeb;if(_0x254c2f>=_0x703a85){_0x254c2f=_0x703a85;_0x16eaeb=0xc8;}else{_0x16eaeb=0xce;}_0x4dd83d[_0xf5ba('0x16')](_0x16eaeb);return _0x4dd83d['set']('Content-Range',_0xa61595+'-'+_0x254c2f+'/'+_0x703a85)[_0xf5ba('0x1b')](_0x320c32);}return null;};}function patchUpdates(_0x583b5b){return function(_0x353341){try{jsonpatch['apply'](_0x353341,_0x583b5b,!![]);}catch(_0x3e3905){return BPromise[_0xf5ba('0x1c')](_0x3e3905);}return _0x353341['save']();};}function saveUpdates(_0x56bd56,_0x46b1a4){return function(_0xd7be2){if(_0xd7be2){return _0xd7be2[_0xf5ba('0x1d')](_0x56bd56)[_0xf5ba('0x1e')](function(_0x534ed1){return _0x534ed1;});}return null;};}function removeEntity(_0x436033,_0x261933){return function(_0x313b61){if(_0x313b61){return _0x313b61['destroy']()[_0xf5ba('0x1e')](function(){_0x436033[_0xf5ba('0x16')](0xcc)[_0xf5ba('0x1f')]();});}};}function handleEntityNotFound(_0x546ce8,_0x1bc841){return function(_0x3f1b9b){if(!_0x3f1b9b){_0x546ce8['sendStatus'](0x194);}return _0x3f1b9b;};}function handleError(_0x2308e2,_0x2f2ebf){_0x2f2ebf=_0x2f2ebf||0x1f4;return function(_0x1039cd){logger[_0xf5ba('0x20')](_0x1039cd[_0xf5ba('0x21')]);if(_0x1039cd[_0xf5ba('0x22')]){delete _0x1039cd[_0xf5ba('0x22')];}_0x2308e2[_0xf5ba('0x16')](_0x2f2ebf)[_0xf5ba('0x23')](_0x1039cd);};}exports[_0xf5ba('0x24')]=function(_0x17eacb,_0x37b9a6){var _0x109bb0={},_0x3c648d={},_0x791a90={'count':0x0,'rows':[]};var _0x5e0cc8=_['map'](db['FreshsalesField']['rawAttributes'],function(_0x149713){return{'name':_0x149713[_0xf5ba('0x25')],'type':_0x149713[_0xf5ba('0x26')]['key']};});_0x3c648d[_0xf5ba('0x27')]=_['map'](_0x5e0cc8,_0xf5ba('0x22'));_0x3c648d['query']=_['keys'](_0x17eacb[_0xf5ba('0x28')]);_0x3c648d[_0xf5ba('0x29')]=_[_0xf5ba('0x2a')](_0x3c648d[_0xf5ba('0x27')],_0x3c648d[_0xf5ba('0x28')]);_0x109bb0[_0xf5ba('0x2b')]=_[_0xf5ba('0x2a')](_0x3c648d[_0xf5ba('0x27')],qs[_0xf5ba('0x2c')](_0x17eacb['query']['fields']));_0x109bb0[_0xf5ba('0x2b')]=_0x109bb0['attributes'][_0xf5ba('0x2d')]?_0x109bb0[_0xf5ba('0x2b')]:_0x3c648d[_0xf5ba('0x27')];if(!_0x17eacb[_0xf5ba('0x28')][_0xf5ba('0x2e')](_0xf5ba('0x2f'))){_0x109bb0['limit']=qs[_0xf5ba('0x18')](_0x17eacb[_0xf5ba('0x28')][_0xf5ba('0x18')]);_0x109bb0[_0xf5ba('0x17')]=qs[_0xf5ba('0x17')](_0x17eacb[_0xf5ba('0x28')][_0xf5ba('0x17')]);}_0x109bb0[_0xf5ba('0x30')]=qs[_0xf5ba('0x31')](_0x17eacb[_0xf5ba('0x28')][_0xf5ba('0x31')]);_0x109bb0['where']=qs[_0xf5ba('0x29')](_[_0xf5ba('0x32')](_0x17eacb[_0xf5ba('0x28')],_0x3c648d[_0xf5ba('0x29')]),_0x5e0cc8);if(_0x17eacb[_0xf5ba('0x28')][_0xf5ba('0x33')]){_0x109bb0[_0xf5ba('0x34')]=_[_0xf5ba('0x35')](_0x109bb0[_0xf5ba('0x34')],{'$or':_[_0xf5ba('0x36')](_0x5e0cc8,function(_0xccb892){if(_0xccb892['type']!=='VIRTUAL'){var _0xacd45b={};_0xacd45b[_0xccb892[_0xf5ba('0x22')]]={'$like':'%'+_0x17eacb[_0xf5ba('0x28')][_0xf5ba('0x33')]+'%'};return _0xacd45b;}})});}_0x109bb0=_['merge']({},_0x109bb0,_0x17eacb['options']);var _0x556eae={'where':_0x109bb0[_0xf5ba('0x34')]};return db[_0xf5ba('0x37')][_0xf5ba('0x1a')](_0x556eae)[_0xf5ba('0x1e')](function(_0x54b929){_0x791a90['count']=_0x54b929;if(_0x17eacb[_0xf5ba('0x28')][_0xf5ba('0x38')]){_0x109bb0[_0xf5ba('0x39')]=[{'all':!![]}];}return db[_0xf5ba('0x37')]['findAll'](_0x109bb0);})[_0xf5ba('0x1e')](function(_0x51d6b0){_0x791a90[_0xf5ba('0x3a')]=_0x51d6b0;return _0x791a90;})[_0xf5ba('0x1e')](respondWithFilteredResult(_0x37b9a6,_0x109bb0))[_0xf5ba('0x3b')](handleError(_0x37b9a6,null));};exports[_0xf5ba('0x3c')]=function(_0x3ca9e1,_0x38ddb1){var _0x15d14d={'raw':!![],'where':{'id':_0x3ca9e1[_0xf5ba('0x3d')]['id']}},_0x25ae81={};_0x25ae81[_0xf5ba('0x27')]=_[_0xf5ba('0x3e')](db[_0xf5ba('0x37')][_0xf5ba('0x3f')]);_0x25ae81[_0xf5ba('0x28')]=_[_0xf5ba('0x3e')](_0x3ca9e1[_0xf5ba('0x28')]);_0x25ae81[_0xf5ba('0x29')]=_[_0xf5ba('0x2a')](_0x25ae81['model'],_0x25ae81[_0xf5ba('0x28')]);_0x15d14d[_0xf5ba('0x2b')]=_['intersection'](_0x25ae81[_0xf5ba('0x27')],qs[_0xf5ba('0x2c')](_0x3ca9e1['query'][_0xf5ba('0x2c')]));_0x15d14d[_0xf5ba('0x2b')]=_0x15d14d[_0xf5ba('0x2b')]['length']?_0x15d14d['attributes']:_0x25ae81[_0xf5ba('0x27')];if(_0x3ca9e1[_0xf5ba('0x28')][_0xf5ba('0x38')]){_0x15d14d[_0xf5ba('0x39')]=[{'all':!![]}];}_0x15d14d=_[_0xf5ba('0x35')]({},_0x15d14d,_0x3ca9e1[_0xf5ba('0x40')]);return db[_0xf5ba('0x37')][_0xf5ba('0x41')](_0x15d14d)[_0xf5ba('0x1e')](handleEntityNotFound(_0x38ddb1,null))[_0xf5ba('0x1e')](respondWithResult(_0x38ddb1,null))['catch'](handleError(_0x38ddb1,null));};exports[_0xf5ba('0x42')]=function(_0xc54c03,_0xb961ad){return db[_0xf5ba('0x37')][_0xf5ba('0x42')](_0xc54c03[_0xf5ba('0x43')],{})[_0xf5ba('0x1e')](respondWithResult(_0xb961ad,0xc9))['catch'](handleError(_0xb961ad,null));};exports[_0xf5ba('0x1d')]=function(_0x85a40d,_0x4c5f26){if(_0x85a40d[_0xf5ba('0x43')]['id']){delete _0x85a40d[_0xf5ba('0x43')]['id'];}return db[_0xf5ba('0x37')][_0xf5ba('0x41')]({'where':{'id':_0x85a40d[_0xf5ba('0x3d')]['id']}})[_0xf5ba('0x1e')](handleEntityNotFound(_0x4c5f26,null))[_0xf5ba('0x1e')](saveUpdates(_0x85a40d[_0xf5ba('0x43')],null))[_0xf5ba('0x1e')](respondWithResult(_0x4c5f26,null))[_0xf5ba('0x3b')](handleError(_0x4c5f26,null));};exports[_0xf5ba('0x44')]=function(_0x2c3671,_0x29d762){return db[_0xf5ba('0x37')][_0xf5ba('0x41')]({'where':{'id':_0x2c3671[_0xf5ba('0x3d')]['id']}})[_0xf5ba('0x1e')](handleEntityNotFound(_0x29d762,null))['then'](removeEntity(_0x29d762,null))[_0xf5ba('0x3b')](handleError(_0x29d762,null));};
\ No newline at end of file
+var _0x06e2=['crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','save','update','then','destroy','stack','name','send','map','FreshsalesField','rawAttributes','fieldName','type','key','query','keys','intersection','fields','attributes','model','hasOwnProperty','sort','filter','where','merge','VIRTUAL','options','includeAll','include','rows','show','params','filters','length','find','catch','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x513606,_0x11d15c){var _0x53364a=function(_0x3b2a7a){while(--_0x3b2a7a){_0x513606['push'](_0x513606['shift']());}};_0x53364a(++_0x11d15c);}(_0x06e2,0xd1));var _0x206e=function(_0x59d33e,_0x157a9a){_0x59d33e=_0x59d33e-0x0;var _0x52a6c9=_0x06e2[_0x59d33e];return _0x52a6c9;};'use strict';var emlformat=require(_0x206e('0x0'));var rimraf=require(_0x206e('0x1'));var zipdir=require(_0x206e('0x2'));var jsonpatch=require(_0x206e('0x3'));var rp=require(_0x206e('0x4'));var moment=require(_0x206e('0x5'));var BPromise=require(_0x206e('0x6'));var Mustache=require(_0x206e('0x7'));var util=require(_0x206e('0x8'));var path=require(_0x206e('0x9'));var sox=require(_0x206e('0xa'));var csv=require(_0x206e('0xb'));var ejs=require(_0x206e('0xc'));var fs=require('fs');var fs_extra=require(_0x206e('0xd'));var _=require(_0x206e('0xe'));var squel=require(_0x206e('0xf'));var crypto=require(_0x206e('0x10'));var jsforce=require(_0x206e('0x11'));var deskjs=require(_0x206e('0x12'));var toCsv=require(_0x206e('0xb'));var querystring=require(_0x206e('0x13'));var Papa=require('papaparse');var Redis=require(_0x206e('0x14'));var authService=require(_0x206e('0x15'));var qs=require(_0x206e('0x16'));var as=require(_0x206e('0x17'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x206e('0x18'));var config=require(_0x206e('0x19'));var licenseUtil=require(_0x206e('0x1a'));var db=require(_0x206e('0x1b'))['db'];function respondWithStatusCode(_0x219dbe,_0x301bdd){_0x301bdd=_0x301bdd||0xcc;return function(_0x4cf05d){if(_0x4cf05d){return _0x219dbe[_0x206e('0x1c')](_0x301bdd);}return _0x219dbe[_0x206e('0x1d')](_0x301bdd)[_0x206e('0x1e')]();};}function respondWithResult(_0x415630,_0x190659){_0x190659=_0x190659||0xc8;return function(_0x59e099){if(_0x59e099){return _0x415630[_0x206e('0x1d')](_0x190659)[_0x206e('0x1f')](_0x59e099);}};}function respondWithFilteredResult(_0x506c7b,_0x34af43){return function(_0x39040c){if(_0x39040c){var _0x2adef2=typeof _0x34af43[_0x206e('0x20')]===_0x206e('0x21')&&typeof _0x34af43['limit']===_0x206e('0x21');var _0x5b3e15=_0x39040c['count'];var _0x439232=_0x2adef2?0x0:_0x34af43[_0x206e('0x20')];var _0x343c6a=_0x2adef2?_0x39040c[_0x206e('0x22')]:_0x34af43[_0x206e('0x20')]+_0x34af43[_0x206e('0x23')];var _0x157869;if(_0x343c6a>=_0x5b3e15){_0x343c6a=_0x5b3e15;_0x157869=0xc8;}else{_0x157869=0xce;}_0x506c7b[_0x206e('0x1d')](_0x157869);return _0x506c7b['set'](_0x206e('0x24'),_0x439232+'-'+_0x343c6a+'/'+_0x5b3e15)[_0x206e('0x1f')](_0x39040c);}return null;};}function patchUpdates(_0x5c1e44){return function(_0xdd2607){try{jsonpatch[_0x206e('0x25')](_0xdd2607,_0x5c1e44,!![]);}catch(_0x40be0b){return BPromise['reject'](_0x40be0b);}return _0xdd2607[_0x206e('0x26')]();};}function saveUpdates(_0x4206d2,_0x3e5adc){return function(_0x50f778){if(_0x50f778){return _0x50f778[_0x206e('0x27')](_0x4206d2)[_0x206e('0x28')](function(_0x46e7ac){return _0x46e7ac;});}return null;};}function removeEntity(_0x3add7b,_0x34447f){return function(_0x195622){if(_0x195622){return _0x195622[_0x206e('0x29')]()[_0x206e('0x28')](function(){_0x3add7b[_0x206e('0x1d')](0xcc)[_0x206e('0x1e')]();});}};}function handleEntityNotFound(_0x5ae7e7,_0x287d3f){return function(_0x36e524){if(!_0x36e524){_0x5ae7e7[_0x206e('0x1c')](0x194);}return _0x36e524;};}function handleError(_0x3e3412,_0x417919){_0x417919=_0x417919||0x1f4;return function(_0x232882){logger['error'](_0x232882[_0x206e('0x2a')]);if(_0x232882[_0x206e('0x2b')]){delete _0x232882[_0x206e('0x2b')];}_0x3e3412[_0x206e('0x1d')](_0x417919)[_0x206e('0x2c')](_0x232882);};}exports['index']=function(_0x1919b6,_0x4b1965){var _0x211772={},_0x3db4e8={},_0x620ac3={'count':0x0,'rows':[]};var _0x31bff6=_[_0x206e('0x2d')](db[_0x206e('0x2e')][_0x206e('0x2f')],function(_0x459a3e){return{'name':_0x459a3e[_0x206e('0x30')],'type':_0x459a3e[_0x206e('0x31')][_0x206e('0x32')]};});_0x3db4e8['model']=_[_0x206e('0x2d')](_0x31bff6,_0x206e('0x2b'));_0x3db4e8[_0x206e('0x33')]=_[_0x206e('0x34')](_0x1919b6[_0x206e('0x33')]);_0x3db4e8['filters']=_[_0x206e('0x35')](_0x3db4e8['model'],_0x3db4e8[_0x206e('0x33')]);_0x211772['attributes']=_[_0x206e('0x35')](_0x3db4e8['model'],qs[_0x206e('0x36')](_0x1919b6['query']['fields']));_0x211772[_0x206e('0x37')]=_0x211772[_0x206e('0x37')]['length']?_0x211772[_0x206e('0x37')]:_0x3db4e8[_0x206e('0x38')];if(!_0x1919b6[_0x206e('0x33')][_0x206e('0x39')]('nolimit')){_0x211772[_0x206e('0x23')]=qs[_0x206e('0x23')](_0x1919b6['query'][_0x206e('0x23')]);_0x211772['offset']=qs[_0x206e('0x20')](_0x1919b6[_0x206e('0x33')][_0x206e('0x20')]);}_0x211772['order']=qs[_0x206e('0x3a')](_0x1919b6['query'][_0x206e('0x3a')]);_0x211772['where']=qs['filters'](_['pick'](_0x1919b6['query'],_0x3db4e8['filters']),_0x31bff6);if(_0x1919b6['query'][_0x206e('0x3b')]){_0x211772[_0x206e('0x3c')]=_[_0x206e('0x3d')](_0x211772[_0x206e('0x3c')],{'$or':_[_0x206e('0x2d')](_0x31bff6,function(_0x2801ef){if(_0x2801ef[_0x206e('0x31')]!==_0x206e('0x3e')){var _0x3d9cb0={};_0x3d9cb0[_0x2801ef[_0x206e('0x2b')]]={'$like':'%'+_0x1919b6[_0x206e('0x33')][_0x206e('0x3b')]+'%'};return _0x3d9cb0;}})});}_0x211772=_[_0x206e('0x3d')]({},_0x211772,_0x1919b6[_0x206e('0x3f')]);var _0x4925f2={'where':_0x211772[_0x206e('0x3c')]};return db[_0x206e('0x2e')][_0x206e('0x22')](_0x4925f2)[_0x206e('0x28')](function(_0x3a2cbd){_0x620ac3[_0x206e('0x22')]=_0x3a2cbd;if(_0x1919b6['query'][_0x206e('0x40')]){_0x211772[_0x206e('0x41')]=[{'all':!![]}];}return db['FreshsalesField']['findAll'](_0x211772);})[_0x206e('0x28')](function(_0x3d167c){_0x620ac3[_0x206e('0x42')]=_0x3d167c;return _0x620ac3;})[_0x206e('0x28')](respondWithFilteredResult(_0x4b1965,_0x211772))['catch'](handleError(_0x4b1965,null));};exports[_0x206e('0x43')]=function(_0xc1b3fe,_0x2967f3){var _0x48f9b7={'raw':!![],'where':{'id':_0xc1b3fe[_0x206e('0x44')]['id']}},_0x5c96d9={};_0x5c96d9[_0x206e('0x38')]=_[_0x206e('0x34')](db[_0x206e('0x2e')]['rawAttributes']);_0x5c96d9[_0x206e('0x33')]=_[_0x206e('0x34')](_0xc1b3fe[_0x206e('0x33')]);_0x5c96d9[_0x206e('0x45')]=_[_0x206e('0x35')](_0x5c96d9['model'],_0x5c96d9[_0x206e('0x33')]);_0x48f9b7[_0x206e('0x37')]=_[_0x206e('0x35')](_0x5c96d9['model'],qs[_0x206e('0x36')](_0xc1b3fe[_0x206e('0x33')][_0x206e('0x36')]));_0x48f9b7[_0x206e('0x37')]=_0x48f9b7[_0x206e('0x37')][_0x206e('0x46')]?_0x48f9b7[_0x206e('0x37')]:_0x5c96d9[_0x206e('0x38')];if(_0xc1b3fe[_0x206e('0x33')][_0x206e('0x40')]){_0x48f9b7['include']=[{'all':!![]}];}_0x48f9b7=_[_0x206e('0x3d')]({},_0x48f9b7,_0xc1b3fe[_0x206e('0x3f')]);return db[_0x206e('0x2e')][_0x206e('0x47')](_0x48f9b7)[_0x206e('0x28')](handleEntityNotFound(_0x2967f3,null))[_0x206e('0x28')](respondWithResult(_0x2967f3,null))[_0x206e('0x48')](handleError(_0x2967f3,null));};exports[_0x206e('0x49')]=function(_0x1e2f73,_0x56825a){return db['FreshsalesField'][_0x206e('0x49')](_0x1e2f73[_0x206e('0x4a')],{})[_0x206e('0x28')](respondWithResult(_0x56825a,0xc9))['catch'](handleError(_0x56825a,null));};exports[_0x206e('0x27')]=function(_0x110b7b,_0x2ba45d){if(_0x110b7b[_0x206e('0x4a')]['id']){delete _0x110b7b[_0x206e('0x4a')]['id'];}return db[_0x206e('0x2e')]['find']({'where':{'id':_0x110b7b[_0x206e('0x44')]['id']}})['then'](handleEntityNotFound(_0x2ba45d,null))[_0x206e('0x28')](saveUpdates(_0x110b7b[_0x206e('0x4a')],null))['then'](respondWithResult(_0x2ba45d,null))[_0x206e('0x48')](handleError(_0x2ba45d,null));};exports[_0x206e('0x29')]=function(_0x471c59,_0x369791){return db[_0x206e('0x2e')]['find']({'where':{'id':_0x471c59['params']['id']}})[_0x206e('0x28')](handleEntityNotFound(_0x369791,null))[_0x206e('0x28')](removeEntity(_0x369791,null))['catch'](handleError(_0x369791,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3588=['bluebird','request-promise','rimraf','../../config/environment','./intFreshsalesField.attributes','exports','define','int_freshsales_fields','idField','FieldId','lodash','util','../../config/logger','api','moment'];(function(_0x2eac4f,_0x5173f9){var _0x58f73b=function(_0x529f28){while(--_0x529f28){_0x2eac4f['push'](_0x2eac4f['shift']());}};_0x58f73b(++_0x5173f9);}(_0x3588,0x82));var _0x8358=function(_0x32cc68,_0x5d2b21){_0x32cc68=_0x32cc68-0x0;var _0x472ab1=_0x3588[_0x32cc68];return _0x472ab1;};'use strict';var _=require(_0x8358('0x0'));var util=require(_0x8358('0x1'));var logger=require(_0x8358('0x2'))(_0x8358('0x3'));var moment=require(_0x8358('0x4'));var BPromise=require(_0x8358('0x5'));var rp=require(_0x8358('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x8358('0x7'));var config=require(_0x8358('0x8'));var attributes=require(_0x8358('0x9'));module[_0x8358('0xa')]=function(_0x483bf0,_0x15dc94){return _0x483bf0[_0x8358('0xb')]('FreshsalesField',attributes,{'tableName':_0x8358('0xc'),'paranoid':![],'indexes':[{'name':'freshsales_unique_index','fields':[_0x8358('0xd'),_0x8358('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xe8e8=['lodash','util','moment','bluebird','rimraf','./intFreshsalesField.attributes','exports','FreshsalesField','freshsales_unique_index','idField','FieldId'];(function(_0x157706,_0x56a1a2){var _0x50ddc9=function(_0x384f15){while(--_0x384f15){_0x157706['push'](_0x157706['shift']());}};_0x50ddc9(++_0x56a1a2);}(_0xe8e8,0xc6));var _0x8e8e=function(_0xc82201,_0x524296){_0xc82201=_0xc82201-0x0;var _0x4165ab=_0xe8e8[_0xc82201];return _0x4165ab;};'use strict';var _=require(_0x8e8e('0x0'));var util=require(_0x8e8e('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x8e8e('0x2'));var BPromise=require(_0x8e8e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x8e8e('0x4'));var config=require('../../config/environment');var attributes=require(_0x8e8e('0x5'));module[_0x8e8e('0x6')]=function(_0x355de7,_0x294176){return _0x355de7['define'](_0x8e8e('0x7'),attributes,{'tableName':'int_freshsales_fields','paranoid':![],'indexes':[{'name':_0x8e8e('0x8'),'fields':[_0x8e8e('0x9'),_0x8e8e('0xa')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfdbd=['info','FreshsalesField,\x20%s,\x20%s','request\x20sent','debug','FreshsalesField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','then'];(function(_0x4a69f2,_0x5c0643){var _0x1b33a3=function(_0x279581){while(--_0x279581){_0x4a69f2['push'](_0x4a69f2['shift']());}};_0x1b33a3(++_0x5c0643);}(_0xfdbd,0xf0));var _0xdfdb=function(_0x48245e,_0x178e51){_0x48245e=_0x48245e-0x0;var _0x4e5e30=_0xfdbd[_0x48245e];return _0x4e5e30;};'use strict';var _=require(_0xdfdb('0x0'));var util=require(_0xdfdb('0x1'));var moment=require(_0xdfdb('0x2'));var BPromise=require(_0xdfdb('0x3'));var rs=require(_0xdfdb('0x4'));var fs=require('fs');var Redis=require(_0xdfdb('0x5'));var db=require(_0xdfdb('0x6'))['db'];var utils=require(_0xdfdb('0x7'));var logger=require(_0xdfdb('0x8'))('rpc');var config=require(_0xdfdb('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xdfdb('0xa')][_0xdfdb('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x489f19,_0x556dc0,_0x590b5d){return new BPromise(function(_0x188508,_0xf72a24){return client['request'](_0x489f19,_0x590b5d)[_0xdfdb('0xc')](function(_0x444c19){logger[_0xdfdb('0xd')](_0xdfdb('0xe'),_0x556dc0,_0xdfdb('0xf'));logger[_0xdfdb('0x10')](_0xdfdb('0x11'),_0x556dc0,'request\x20sent',JSON[_0xdfdb('0x12')](_0x444c19));if(_0x444c19[_0xdfdb('0x13')]){if(_0x444c19['error'][_0xdfdb('0x14')]===0x1f4){logger[_0xdfdb('0x13')](_0xdfdb('0xe'),_0x556dc0,_0x444c19[_0xdfdb('0x13')][_0xdfdb('0x15')]);return _0xf72a24(_0x444c19[_0xdfdb('0x13')][_0xdfdb('0x15')]);}logger[_0xdfdb('0x13')]('FreshsalesField,\x20%s,\x20%s',_0x556dc0,_0x444c19['error'][_0xdfdb('0x15')]);return _0x188508(_0x444c19['error'][_0xdfdb('0x15')]);}else{logger[_0xdfdb('0xd')](_0xdfdb('0xe'),_0x556dc0,_0xdfdb('0xf'));_0x188508(_0x444c19[_0xdfdb('0x16')][_0xdfdb('0x15')]);}})['catch'](function(_0x4fd3d5){logger[_0xdfdb('0x13')](_0xdfdb('0xe'),_0x556dc0,_0x4fd3d5);_0xf72a24(_0x4fd3d5);});});}
\ No newline at end of file
+var _0x2bd8=['info','request\x20sent','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','request','FreshsalesField,\x20%s,\x20%s','FreshsalesField,\x20%s,\x20%s,\x20%s','error','message'];(function(_0x25a0fc,_0x5cc676){var _0x38b375=function(_0x288bdd){while(--_0x288bdd){_0x25a0fc['push'](_0x25a0fc['shift']());}};_0x38b375(++_0x5cc676);}(_0x2bd8,0x130));var _0x82bd=function(_0x3164b7,_0x1f7af9){_0x3164b7=_0x3164b7-0x0;var _0x1512d8=_0x2bd8[_0x3164b7];return _0x1512d8;};'use strict';var _=require(_0x82bd('0x0'));var util=require('util');var moment=require(_0x82bd('0x1'));var BPromise=require(_0x82bd('0x2'));var rs=require(_0x82bd('0x3'));var fs=require('fs');var Redis=require(_0x82bd('0x4'));var db=require(_0x82bd('0x5'))['db'];var utils=require(_0x82bd('0x6'));var logger=require(_0x82bd('0x7'))('rpc');var config=require(_0x82bd('0x8'));var jayson=require(_0x82bd('0x9'));var client=jayson[_0x82bd('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x19dbb1,_0x77d7a9,_0x226f60){return new BPromise(function(_0x1f7463,_0x4dc3a6){return client[_0x82bd('0xb')](_0x19dbb1,_0x226f60)['then'](function(_0x4a9b2c){logger['info'](_0x82bd('0xc'),_0x77d7a9,'request\x20sent');logger['debug'](_0x82bd('0xd'),_0x77d7a9,'request\x20sent',JSON['stringify'](_0x4a9b2c));if(_0x4a9b2c[_0x82bd('0xe')]){if(_0x4a9b2c[_0x82bd('0xe')]['code']===0x1f4){logger[_0x82bd('0xe')]('FreshsalesField,\x20%s,\x20%s',_0x77d7a9,_0x4a9b2c[_0x82bd('0xe')]['message']);return _0x4dc3a6(_0x4a9b2c[_0x82bd('0xe')][_0x82bd('0xf')]);}logger[_0x82bd('0xe')](_0x82bd('0xc'),_0x77d7a9,_0x4a9b2c['error'][_0x82bd('0xf')]);return _0x1f7463(_0x4a9b2c[_0x82bd('0xe')]['message']);}else{logger[_0x82bd('0x10')]('FreshsalesField,\x20%s,\x20%s',_0x77d7a9,_0x82bd('0x11'));_0x1f7463(_0x4a9b2c[_0x82bd('0x12')][_0x82bd('0xf')]);}})[_0x82bd('0x13')](function(_0x209081){logger[_0x82bd('0xe')](_0x82bd('0xc'),_0x77d7a9,_0x209081);_0x4dc3a6(_0x209081);});});}
\ 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(_0xc212f0,_0x28fe){var _0x1373df=function(_0x2e73c9){while(--_0x2e73c9){_0xc212f0['push'](_0xc212f0['shift']());}};_0x1373df(++_0x28fe);}(_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/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 _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(_0x7daa3,_0x12e723){var _0x15090a=function(_0x392151){while(--_0x392151){_0x7daa3['push'](_0x7daa3['shift']());}};_0x15090a(++_0x12e723);}(_0xa9e0,0x123));var _0x0a9e=function(_0x376b45,_0x5964fb){_0x376b45=_0x376b45-0x0;var _0x2341b3=_0xa9e0[_0x376b45];return _0x2341b3;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa46e=['sequelize','exports','STRING','username','integrationTab','newTab'];(function(_0x49507a,_0x2433db){var _0x1bbc3a=function(_0x36589b){while(--_0x36589b){_0x49507a['push'](_0x49507a['shift']());}};_0x1bbc3a(++_0x2433db);}(_0xa46e,0x8a));var _0xea46=function(_0x3e0763,_0x3d12be){_0x3e0763=_0x3e0763-0x0;var _0x351ca2=_0xa46e[_0x3e0763];return _0x351ca2;};'use strict';var Sequelize=require(_0xea46('0x0'));module[_0xea46('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xea46('0x2')]},'username':{'type':Sequelize[_0xea46('0x2')],'unique':_0xea46('0x3')},'remoteUri':{'type':Sequelize['STRING']},'password':{'type':Sequelize[_0xea46('0x2')]},'clientId':{'type':Sequelize['STRING']},'clientSecret':{'type':Sequelize[_0xea46('0x2')]},'securityToken':{'type':Sequelize['STRING']},'serverUrl':{'type':Sequelize[_0xea46('0x2')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xea46('0x4'),_0xea46('0x5')),'defaultValue':'integrationTab'}};
\ No newline at end of file
+var _0xdbc6=['STRING','username','ENUM','newTab','integrationTab'];(function(_0x51707a,_0x40ad27){var _0x5ebd5b=function(_0x3198c9){while(--_0x3198c9){_0x51707a['push'](_0x51707a['shift']());}};_0x5ebd5b(++_0x40ad27);}(_0xdbc6,0x13b));var _0x6dbc=function(_0x4a023d,_0x2ac995){_0x4a023d=_0x4a023d-0x0;var _0xd4ca1=_0xdbc6[_0x4a023d];return _0xd4ca1;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x6dbc('0x0')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x6dbc('0x0')],'unique':_0x6dbc('0x1')},'remoteUri':{'type':Sequelize[_0x6dbc('0x0')]},'password':{'type':Sequelize[_0x6dbc('0x0')]},'clientId':{'type':Sequelize[_0x6dbc('0x0')]},'clientSecret':{'type':Sequelize[_0x6dbc('0x0')]},'securityToken':{'type':Sequelize['STRING']},'serverUrl':{'type':Sequelize[_0x6dbc('0x0')],'allowNull':![]},'type':{'type':Sequelize[_0x6dbc('0x2')]('integrationTab',_0x6dbc('0x3')),'defaultValue':_0x6dbc('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98c2=['count','offset','set','Content-Range','json','reject','save','update','then','destroy','error','name','send','index','map','SalesforceAccount','rawAttributes','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','where','pick','merge','type','VIRTUAL','filter','findAll','rows','catch','show','params','includeAll','include','options','create','body','find','getConfigurations','SalesforceConfiguration','order','sort','addConfiguration','findOne','AccountId','Subjects','channel','Descriptions','getDescriptions','SalesforceField','getFields','Task','remoteUri','clientId','clientSecret','password','slice','substring','lastIndexOf','Connection','username','concat','securityToken','isNil','ticketType','sobject','describe','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject','string','int','picklist','boolean','email','remove','includes','custom','picklistValues','label','value','True','true','False','false','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','test','zip-dir','request-promise','moment','bluebird','mustache','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','../../components/integrations/configuration','sendStatus','status','end','undefined'];(function(_0x2682c0,_0x530097){var _0x236989=function(_0x158d15){while(--_0x158d15){_0x2682c0['push'](_0x2682c0['shift']());}};_0x236989(++_0x530097);}(_0x98c2,0x164));var _0x298c=function(_0x49ca18,_0x5e6d05){_0x49ca18=_0x49ca18-0x0;var _0x145d54=_0x98c2[_0x49ca18];return _0x145d54;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x298c('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x298c('0x1'));var moment=require(_0x298c('0x2'));var BPromise=require(_0x298c('0x3'));var Mustache=require(_0x298c('0x4'));var util=require(_0x298c('0x5'));var path=require(_0x298c('0x6'));var sox=require(_0x298c('0x7'));var csv=require(_0x298c('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x298c('0x9'));var _=require(_0x298c('0xa'));var squel=require(_0x298c('0xb'));var crypto=require(_0x298c('0xc'));var jsforce=require(_0x298c('0xd'));var deskjs=require(_0x298c('0xe'));var toCsv=require(_0x298c('0x8'));var querystring=require(_0x298c('0xf'));var Papa=require('papaparse');var Redis=require(_0x298c('0x10'));var authService=require(_0x298c('0x11'));var qs=require(_0x298c('0x12'));var as=require(_0x298c('0x13'));var hardwareService=require(_0x298c('0x14'));var logger=require(_0x298c('0x15'))(_0x298c('0x16'));var utils=require(_0x298c('0x17'));var config=require(_0x298c('0x18'));var licenseUtil=require(_0x298c('0x19'));var db=require('../../mysqldb')['db'];var integrations=require(_0x298c('0x1a'));function respondWithStatusCode(_0x1952a6,_0xf27386){_0xf27386=_0xf27386||0xcc;return function(_0x346023){if(_0x346023){return _0x1952a6[_0x298c('0x1b')](_0xf27386);}return _0x1952a6[_0x298c('0x1c')](_0xf27386)[_0x298c('0x1d')]();};}function respondWithResult(_0x454fd2,_0x8933f5){_0x8933f5=_0x8933f5||0xc8;return function(_0x495c2a){if(_0x495c2a){return _0x454fd2[_0x298c('0x1c')](_0x8933f5)['json'](_0x495c2a);}};}function respondWithFilteredResult(_0x5eedaf,_0x570d15){return function(_0xc4d821){if(_0xc4d821){var _0x2f39c2=typeof _0x570d15['offset']===_0x298c('0x1e')&&typeof _0x570d15['limit']===_0x298c('0x1e');var _0x5a0a9e=_0xc4d821[_0x298c('0x1f')];var _0x59078b=_0x2f39c2?0x0:_0x570d15[_0x298c('0x20')];var _0x3ad661=_0x2f39c2?_0xc4d821[_0x298c('0x1f')]:_0x570d15[_0x298c('0x20')]+_0x570d15['limit'];var _0x2dace8;if(_0x3ad661>=_0x5a0a9e){_0x3ad661=_0x5a0a9e;_0x2dace8=0xc8;}else{_0x2dace8=0xce;}_0x5eedaf['status'](_0x2dace8);return _0x5eedaf[_0x298c('0x21')](_0x298c('0x22'),_0x59078b+'-'+_0x3ad661+'/'+_0x5a0a9e)[_0x298c('0x23')](_0xc4d821);}return null;};}function patchUpdates(_0x447fbd){return function(_0x453b09){try{jsonpatch['apply'](_0x453b09,_0x447fbd,!![]);}catch(_0x58e45b){return BPromise[_0x298c('0x24')](_0x58e45b);}return _0x453b09[_0x298c('0x25')]();};}function saveUpdates(_0x64feff,_0x3a0341){return function(_0x4ca9a6){if(_0x4ca9a6){return _0x4ca9a6[_0x298c('0x26')](_0x64feff)[_0x298c('0x27')](function(_0x432465){return _0x432465;});}return null;};}function removeEntity(_0x2e0e27,_0xceb4f7){return function(_0x362146){if(_0x362146){return _0x362146[_0x298c('0x28')]()[_0x298c('0x27')](function(){_0x2e0e27['status'](0xcc)[_0x298c('0x1d')]();});}};}function handleEntityNotFound(_0x244bf2,_0x3a4d4e){return function(_0x13d874){if(!_0x13d874){_0x244bf2[_0x298c('0x1b')](0x194);}return _0x13d874;};}function handleError(_0x24438d,_0xc4d612){_0xc4d612=_0xc4d612||0x1f4;return function(_0x4f23d4){logger[_0x298c('0x29')](_0x4f23d4['stack']);if(_0x4f23d4[_0x298c('0x2a')]){delete _0x4f23d4[_0x298c('0x2a')];}_0x24438d[_0x298c('0x1c')](_0xc4d612)[_0x298c('0x2b')](_0x4f23d4);};}exports[_0x298c('0x2c')]=function(_0x5d0ec7,_0x431829){var _0x580dbf={},_0x520ff6={},_0x23a8fd={'count':0x0,'rows':[]};var _0x5d8550=_[_0x298c('0x2d')](db[_0x298c('0x2e')][_0x298c('0x2f')],function(_0x1db0c6){return{'name':_0x1db0c6['fieldName'],'type':_0x1db0c6['type']['key']};});_0x520ff6['model']=_['map'](_0x5d8550,_0x298c('0x2a'));_0x520ff6['query']=_[_0x298c('0x30')](_0x5d0ec7[_0x298c('0x31')]);_0x520ff6[_0x298c('0x32')]=_[_0x298c('0x33')](_0x520ff6[_0x298c('0x34')],_0x520ff6[_0x298c('0x31')]);_0x580dbf[_0x298c('0x35')]=_[_0x298c('0x33')](_0x520ff6[_0x298c('0x34')],qs[_0x298c('0x36')](_0x5d0ec7[_0x298c('0x31')][_0x298c('0x36')]));_0x580dbf[_0x298c('0x35')]=_0x580dbf[_0x298c('0x35')][_0x298c('0x37')]?_0x580dbf[_0x298c('0x35')]:_0x520ff6['model'];if(!_0x5d0ec7['query'][_0x298c('0x38')](_0x298c('0x39'))){_0x580dbf[_0x298c('0x3a')]=qs['limit'](_0x5d0ec7[_0x298c('0x31')]['limit']);_0x580dbf[_0x298c('0x20')]=qs[_0x298c('0x20')](_0x5d0ec7[_0x298c('0x31')][_0x298c('0x20')]);}_0x580dbf['order']=qs['sort'](_0x5d0ec7[_0x298c('0x31')]['sort']);_0x580dbf[_0x298c('0x3b')]=qs[_0x298c('0x32')](_[_0x298c('0x3c')](_0x5d0ec7['query'],_0x520ff6[_0x298c('0x32')]),_0x5d8550);if(_0x5d0ec7[_0x298c('0x31')]['filter']){_0x580dbf[_0x298c('0x3b')]=_[_0x298c('0x3d')](_0x580dbf[_0x298c('0x3b')],{'$or':_['map'](_0x5d8550,function(_0xf3c324){if(_0xf3c324[_0x298c('0x3e')]!==_0x298c('0x3f')){var _0x586c59={};_0x586c59[_0xf3c324['name']]={'$like':'%'+_0x5d0ec7[_0x298c('0x31')][_0x298c('0x40')]+'%'};return _0x586c59;}})});}_0x580dbf=_['merge']({},_0x580dbf,_0x5d0ec7['options']);var _0x484e93={'where':_0x580dbf[_0x298c('0x3b')]};return db[_0x298c('0x2e')][_0x298c('0x1f')](_0x484e93)[_0x298c('0x27')](function(_0x52427b){_0x23a8fd[_0x298c('0x1f')]=_0x52427b;if(_0x5d0ec7['query']['includeAll']){_0x580dbf['include']=[{'all':!![]}];}return db[_0x298c('0x2e')][_0x298c('0x41')](_0x580dbf);})['then'](function(_0x4d2e3a){_0x23a8fd[_0x298c('0x42')]=_0x4d2e3a;return _0x23a8fd;})[_0x298c('0x27')](respondWithFilteredResult(_0x431829,_0x580dbf))[_0x298c('0x43')](handleError(_0x431829,null));};exports[_0x298c('0x44')]=function(_0x1e3561,_0x96c7ff){var _0x47f055={'raw':![],'where':{'id':_0x1e3561[_0x298c('0x45')]['id']}},_0x113dc9={};_0x113dc9[_0x298c('0x34')]=_[_0x298c('0x30')](db[_0x298c('0x2e')][_0x298c('0x2f')]);_0x113dc9[_0x298c('0x31')]=_[_0x298c('0x30')](_0x1e3561['query']);_0x113dc9[_0x298c('0x32')]=_[_0x298c('0x33')](_0x113dc9[_0x298c('0x34')],_0x113dc9['query']);_0x47f055[_0x298c('0x35')]=_['intersection'](_0x113dc9[_0x298c('0x34')],qs['fields'](_0x1e3561[_0x298c('0x31')]['fields']));_0x47f055[_0x298c('0x35')]=_0x47f055[_0x298c('0x35')]['length']?_0x47f055['attributes']:_0x113dc9[_0x298c('0x34')];if(_0x1e3561['query'][_0x298c('0x46')]){_0x47f055[_0x298c('0x47')]=[{'all':!![]}];}_0x47f055=_[_0x298c('0x3d')]({},_0x47f055,_0x1e3561[_0x298c('0x48')]);return db[_0x298c('0x2e')]['find'](_0x47f055)[_0x298c('0x27')](handleEntityNotFound(_0x96c7ff,null))[_0x298c('0x27')](respondWithResult(_0x96c7ff,null))[_0x298c('0x43')](handleError(_0x96c7ff,null));};exports[_0x298c('0x49')]=function(_0x1d8ff4,_0x2911b5){return db[_0x298c('0x2e')][_0x298c('0x49')](_0x1d8ff4[_0x298c('0x4a')],{})[_0x298c('0x27')](respondWithResult(_0x2911b5,0xc9))[_0x298c('0x43')](handleError(_0x2911b5,null));};exports[_0x298c('0x26')]=function(_0x22c82d,_0x17f540){if(_0x22c82d[_0x298c('0x4a')]['id']){delete _0x22c82d[_0x298c('0x4a')]['id'];}return db[_0x298c('0x2e')][_0x298c('0x4b')]({'where':{'id':_0x22c82d[_0x298c('0x45')]['id']}})[_0x298c('0x27')](handleEntityNotFound(_0x17f540,null))[_0x298c('0x27')](saveUpdates(_0x22c82d[_0x298c('0x4a')],null))[_0x298c('0x27')](respondWithResult(_0x17f540,null))[_0x298c('0x43')](handleError(_0x17f540,null));};exports[_0x298c('0x28')]=function(_0x245a33,_0x2b3a95){return db[_0x298c('0x2e')][_0x298c('0x4b')]({'where':{'id':_0x245a33[_0x298c('0x45')]['id']}})[_0x298c('0x27')](handleEntityNotFound(_0x2b3a95,null))[_0x298c('0x27')](removeEntity(_0x2b3a95,null))[_0x298c('0x43')](handleError(_0x2b3a95,null));};exports[_0x298c('0x4c')]=function(_0x407ea8,_0xa15e2b,_0x45d0ad){var _0xb74244={};var _0x3f82cd={};var _0x588209;var _0x531325;return db[_0x298c('0x2e')]['findOne']({'where':{'id':_0x407ea8['params']['id']}})[_0x298c('0x27')](handleEntityNotFound(_0xa15e2b,null))[_0x298c('0x27')](function(_0x1c0831){if(_0x1c0831){_0x588209=_0x1c0831;_0x3f82cd[_0x298c('0x34')]=_[_0x298c('0x30')](db[_0x298c('0x4d')]['rawAttributes']);_0x3f82cd[_0x298c('0x31')]=_[_0x298c('0x30')](_0x407ea8[_0x298c('0x31')]);_0x3f82cd[_0x298c('0x32')]=_['intersection'](_0x3f82cd[_0x298c('0x34')],_0x3f82cd[_0x298c('0x31')]);_0xb74244[_0x298c('0x35')]=_['intersection'](_0x3f82cd[_0x298c('0x34')],qs[_0x298c('0x36')](_0x407ea8[_0x298c('0x31')][_0x298c('0x36')]));_0xb74244[_0x298c('0x35')]=_0xb74244[_0x298c('0x35')][_0x298c('0x37')]?_0xb74244['attributes']:_0x3f82cd[_0x298c('0x34')];_0xb74244[_0x298c('0x4e')]=qs[_0x298c('0x4f')](_0x407ea8[_0x298c('0x31')][_0x298c('0x4f')]);_0xb74244[_0x298c('0x3b')]=qs['filters'](_[_0x298c('0x3c')](_0x407ea8[_0x298c('0x31')],_0x3f82cd['filters']));if(_0x407ea8[_0x298c('0x31')]['filter']){_0xb74244['where']=_[_0x298c('0x3d')](_0xb74244[_0x298c('0x3b')],{'$or':_['map'](_0xb74244[_0x298c('0x35')],function(_0x1446dc){var _0x14623c={};_0x14623c[_0x1446dc]={'$like':'%'+_0x407ea8[_0x298c('0x31')]['filter']+'%'};return _0x14623c;})});}_0xb74244=_[_0x298c('0x3d')]({},_0xb74244,_0x407ea8['options']);return _0x588209[_0x298c('0x4c')](_0xb74244);}})[_0x298c('0x27')](function(_0x38d5bf){if(_0x38d5bf){_0x531325=_0x38d5bf[_0x298c('0x37')];if(!_0x407ea8[_0x298c('0x31')][_0x298c('0x38')](_0x298c('0x39'))){_0xb74244[_0x298c('0x3a')]=qs['limit'](_0x407ea8[_0x298c('0x31')][_0x298c('0x3a')]);_0xb74244['offset']=qs[_0x298c('0x20')](_0x407ea8[_0x298c('0x31')][_0x298c('0x20')]);}return _0x588209[_0x298c('0x4c')](_0xb74244);}})[_0x298c('0x27')](function(_0x3e9a29){if(_0x3e9a29){return _0x3e9a29?{'count':_0x531325,'rows':_0x3e9a29}:null;}})[_0x298c('0x27')](respondWithResult(_0xa15e2b,null))['catch'](handleError(_0xa15e2b,null));};exports[_0x298c('0x50')]=function(_0x2c2186,_0x2e340c,_0x556943){if(_0x2c2186['body']['id']){delete _0x2c2186[_0x298c('0x4a')]['id'];}return db[_0x298c('0x2e')][_0x298c('0x51')]({'where':{'id':_0x2c2186[_0x298c('0x45')]['id']}})['then'](handleEntityNotFound(_0x2e340c,null))[_0x298c('0x27')](function(_0x1e71ed){if(_0x1e71ed){_0x2c2186[_0x298c('0x4a')][_0x298c('0x52')]=_0x1e71ed['id'];_0x2c2186['body'][_0x298c('0x53')]=integrations['getSubjects'](_0x2c2186[_0x298c('0x4a')][_0x298c('0x54')],_0x2c2186[_0x298c('0x4a')][_0x298c('0x3e')]);_0x2c2186[_0x298c('0x4a')][_0x298c('0x55')]=integrations[_0x298c('0x56')](_0x2c2186[_0x298c('0x4a')][_0x298c('0x54')],_0x2c2186[_0x298c('0x4a')]['type']);return db['SalesforceConfiguration']['create'](_0x2c2186[_0x298c('0x4a')],{'include':[{'model':db[_0x298c('0x57')],'as':_0x298c('0x53')},{'model':db[_0x298c('0x57')],'as':_0x298c('0x55')}]});}return null;})[_0x298c('0x27')](respondWithResult(_0x2e340c,null))[_0x298c('0x43')](handleError(_0x2e340c,null));};exports[_0x298c('0x58')]=function(_0x4fb78f,_0x48fa4e,_0x554075){var _0x29bc5d;var _0x1ce3ca='';var _0x546f9b=_0x298c('0x59');return db[_0x298c('0x2e')][_0x298c('0x51')]({'where':{'id':_0x4fb78f[_0x298c('0x45')]['id']},'attributes':['id',_0x298c('0x5a'),_0x298c('0x5b'),_0x298c('0x5c'),'username',_0x298c('0x5d'),'securityToken']})[_0x298c('0x27')](handleEntityNotFound(_0x48fa4e,null))[_0x298c('0x27')](function(_0x57d61a){if(_0x57d61a){_0x1ce3ca=_0x57d61a[_0x298c('0x5a')];var _0xfb1832=_0x1ce3ca[_0x298c('0x5e')](-0x1);if(_0xfb1832==='/'){_0x1ce3ca=_0x1ce3ca[_0x298c('0x5f')](0x0,_0x1ce3ca[_0x298c('0x60')](_0xfb1832));}_0x29bc5d=new jsforce[(_0x298c('0x61'))]({'oauth2':{'loginUrl':_0x1ce3ca,'clientId':_0x57d61a[_0x298c('0x5b')],'clientSecret':_0x57d61a[_0x298c('0x5c')]}});return _0x29bc5d['login'](_0x57d61a[_0x298c('0x62')],_0x57d61a[_0x298c('0x5d')][_0x298c('0x63')](_0x57d61a[_0x298c('0x64')]));}})[_0x298c('0x27')](function(_0x14a0af){if(_0x14a0af){if(!_[_0x298c('0x65')](_0x4fb78f['query'][_0x298c('0x66')])){_0x546f9b=_0x4fb78f[_0x298c('0x31')][_0x298c('0x66')];}return _0x29bc5d[_0x298c('0x67')](_0x546f9b)[_0x298c('0x68')]();}})[_0x298c('0x27')](function(_0x487e65){var _0x4b965c=[_0x298c('0x69'),_0x298c('0x6a'),_0x298c('0x6b'),_0x298c('0x6c'),_0x298c('0x6d'),'Description'];var _0x4a2ec8=[_0x298c('0x6e'),_0x298c('0x6f'),_0x298c('0x70'),_0x298c('0x71'),_0x298c('0x72'),'textarea','phone'];if(_0x487e65){_[_0x298c('0x73')](_0x487e65[_0x298c('0x36')],function(_0x2f4832){return _0x4b965c[_0x298c('0x74')](_0x2f4832['name'])||!_0x4a2ec8['includes'](_0x2f4832[_0x298c('0x3e')]);});return{'count':_0x487e65[_0x298c('0x36')][_0x298c('0x37')],'rows':_['map'](_0x487e65['fields'],function(_0x268f4e){return{'id':_0x268f4e[_0x298c('0x2a')],'name':_0x268f4e['label'],'custom':_0x268f4e[_0x298c('0x75')],'options':_0x268f4e[_0x298c('0x76')][_0x298c('0x37')]>0x0?_[_0x298c('0x2d')](_0x268f4e[_0x298c('0x76')],function(_0x50bdfe){return{'name':_0x50bdfe[_0x298c('0x77')],'value':_0x50bdfe[_0x298c('0x78')]};}):_0x268f4e[_0x298c('0x3e')]==_0x298c('0x71')?[{'name':_0x298c('0x79'),'value':_0x298c('0x7a')},{'name':_0x298c('0x7b'),'value':_0x298c('0x7c')}]:[]};})};}})['then'](respondWithResult(_0x48fa4e,null))[_0x298c('0x43')](function(_0x4f25d5){var _0x50950b=_0x4fb78f[_0x298c('0x31')]['test']?0x1f4:_0x4f25d5[_0x298c('0x7d')]||0x1f4;logger[_0x298c('0x29')](_0x298c('0x7e'),_0x298c('0x58'),_0x50950b,JSON[_0x298c('0x7f')](_0x4f25d5));delete _0x4f25d5[_0x298c('0x2a')];if(_0x50950b===0x191){_0x50950b=0x190;}_0x48fa4e['status'](_0x50950b)['send'](_0x4fb78f['query'][_0x298c('0x80')]?{'message':'Wrong\x20credentials','statusCode':_0x4f25d5['statusCode']}:_0x4f25d5);});};
\ No newline at end of file
+var _0x6fdf=['count','set','Content-Range','reject','save','destroy','end','sendStatus','name','send','index','map','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','filter','where','merge','VIRTUAL','options','then','include','SalesforceAccount','findAll','rows','show','params','includeAll','find','create','body','catch','getConfigurations','SalesforceConfiguration','sort','pick','nolimit','addConfiguration','findOne','AccountId','Subjects','channel','Descriptions','SalesforceField','getFields','clientId','clientSecret','password','securityToken','remoteUri','slice','substring','Connection','username','concat','isNil','ticketType','sobject','describe','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject','Description','string','int','picklist','textarea','includes','label','custom','picklistValues','value','boolean','True','true','False','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','lodash','squel','crypto','desk.js','querystring','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','json','offset','undefined','limit'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6fdf,0x1ca));var _0xf6fd=function(_0x206693,_0x38cc7c){_0x206693=_0x206693-0x0;var _0x4cebbc=_0x6fdf[_0x206693];return _0x4cebbc;};'use strict';var emlformat=require(_0xf6fd('0x0'));var rimraf=require(_0xf6fd('0x1'));var zipdir=require(_0xf6fd('0x2'));var jsonpatch=require(_0xf6fd('0x3'));var rp=require(_0xf6fd('0x4'));var moment=require(_0xf6fd('0x5'));var BPromise=require(_0xf6fd('0x6'));var Mustache=require('mustache');var util=require(_0xf6fd('0x7'));var path=require(_0xf6fd('0x8'));var sox=require(_0xf6fd('0x9'));var csv=require(_0xf6fd('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf6fd('0xb'));var squel=require(_0xf6fd('0xc'));var crypto=require(_0xf6fd('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xf6fd('0xe'));var toCsv=require(_0xf6fd('0xa'));var querystring=require(_0xf6fd('0xf'));var Papa=require('papaparse');var Redis=require(_0xf6fd('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf6fd('0x11'));var logger=require(_0xf6fd('0x12'))(_0xf6fd('0x13'));var utils=require(_0xf6fd('0x14'));var config=require(_0xf6fd('0x15'));var licenseUtil=require(_0xf6fd('0x16'));var db=require(_0xf6fd('0x17'))['db'];var integrations=require(_0xf6fd('0x18'));function respondWithStatusCode(_0x1dbbc2,_0x5f008d){_0x5f008d=_0x5f008d||0xcc;return function(_0x2f4ece){if(_0x2f4ece){return _0x1dbbc2['sendStatus'](_0x5f008d);}return _0x1dbbc2['status'](_0x5f008d)['end']();};}function respondWithResult(_0x4fa959,_0x53d9e3){_0x53d9e3=_0x53d9e3||0xc8;return function(_0x7ba34a){if(_0x7ba34a){return _0x4fa959[_0xf6fd('0x19')](_0x53d9e3)[_0xf6fd('0x1a')](_0x7ba34a);}};}function respondWithFilteredResult(_0x5e0470,_0x4e171d){return function(_0x20175b){if(_0x20175b){var _0x5de621=typeof _0x4e171d[_0xf6fd('0x1b')]===_0xf6fd('0x1c')&&typeof _0x4e171d[_0xf6fd('0x1d')]==='undefined';var _0x221712=_0x20175b[_0xf6fd('0x1e')];var _0x4d8a03=_0x5de621?0x0:_0x4e171d[_0xf6fd('0x1b')];var _0x27efe1=_0x5de621?_0x20175b[_0xf6fd('0x1e')]:_0x4e171d[_0xf6fd('0x1b')]+_0x4e171d[_0xf6fd('0x1d')];var _0x418201;if(_0x27efe1>=_0x221712){_0x27efe1=_0x221712;_0x418201=0xc8;}else{_0x418201=0xce;}_0x5e0470[_0xf6fd('0x19')](_0x418201);return _0x5e0470[_0xf6fd('0x1f')](_0xf6fd('0x20'),_0x4d8a03+'-'+_0x27efe1+'/'+_0x221712)[_0xf6fd('0x1a')](_0x20175b);}return null;};}function patchUpdates(_0x3a9f2b){return function(_0x471722){try{jsonpatch['apply'](_0x471722,_0x3a9f2b,!![]);}catch(_0x25eaf2){return BPromise[_0xf6fd('0x21')](_0x25eaf2);}return _0x471722[_0xf6fd('0x22')]();};}function saveUpdates(_0x577b9c,_0x1e433c){return function(_0x419abb){if(_0x419abb){return _0x419abb['update'](_0x577b9c)['then'](function(_0x41bf54){return _0x41bf54;});}return null;};}function removeEntity(_0x190d20,_0x371de3){return function(_0x302082){if(_0x302082){return _0x302082[_0xf6fd('0x23')]()['then'](function(){_0x190d20[_0xf6fd('0x19')](0xcc)[_0xf6fd('0x24')]();});}};}function handleEntityNotFound(_0x12c6c6,_0x53cb44){return function(_0x5a654c){if(!_0x5a654c){_0x12c6c6[_0xf6fd('0x25')](0x194);}return _0x5a654c;};}function handleError(_0x31201f,_0x54016d){_0x54016d=_0x54016d||0x1f4;return function(_0x39d6de){logger['error'](_0x39d6de['stack']);if(_0x39d6de[_0xf6fd('0x26')]){delete _0x39d6de[_0xf6fd('0x26')];}_0x31201f[_0xf6fd('0x19')](_0x54016d)[_0xf6fd('0x27')](_0x39d6de);};}exports[_0xf6fd('0x28')]=function(_0x2c4b81,_0x5ad023){var _0x36fcdd={},_0x340de2={},_0xe27154={'count':0x0,'rows':[]};var _0xdb53f0=_[_0xf6fd('0x29')](db['SalesforceAccount'][_0xf6fd('0x2a')],function(_0x523fe2){return{'name':_0x523fe2['fieldName'],'type':_0x523fe2[_0xf6fd('0x2b')]['key']};});_0x340de2[_0xf6fd('0x2c')]=_['map'](_0xdb53f0,_0xf6fd('0x26'));_0x340de2[_0xf6fd('0x2d')]=_[_0xf6fd('0x2e')](_0x2c4b81[_0xf6fd('0x2d')]);_0x340de2[_0xf6fd('0x2f')]=_[_0xf6fd('0x30')](_0x340de2[_0xf6fd('0x2c')],_0x340de2[_0xf6fd('0x2d')]);_0x36fcdd[_0xf6fd('0x31')]=_[_0xf6fd('0x30')](_0x340de2[_0xf6fd('0x2c')],qs[_0xf6fd('0x32')](_0x2c4b81[_0xf6fd('0x2d')]['fields']));_0x36fcdd[_0xf6fd('0x31')]=_0x36fcdd['attributes'][_0xf6fd('0x33')]?_0x36fcdd[_0xf6fd('0x31')]:_0x340de2['model'];if(!_0x2c4b81['query'][_0xf6fd('0x34')]('nolimit')){_0x36fcdd[_0xf6fd('0x1d')]=qs['limit'](_0x2c4b81[_0xf6fd('0x2d')][_0xf6fd('0x1d')]);_0x36fcdd['offset']=qs[_0xf6fd('0x1b')](_0x2c4b81['query'][_0xf6fd('0x1b')]);}_0x36fcdd[_0xf6fd('0x35')]=qs['sort'](_0x2c4b81[_0xf6fd('0x2d')]['sort']);_0x36fcdd['where']=qs[_0xf6fd('0x2f')](_['pick'](_0x2c4b81[_0xf6fd('0x2d')],_0x340de2[_0xf6fd('0x2f')]),_0xdb53f0);if(_0x2c4b81['query'][_0xf6fd('0x36')]){_0x36fcdd[_0xf6fd('0x37')]=_[_0xf6fd('0x38')](_0x36fcdd[_0xf6fd('0x37')],{'$or':_[_0xf6fd('0x29')](_0xdb53f0,function(_0x5f114a){if(_0x5f114a[_0xf6fd('0x2b')]!==_0xf6fd('0x39')){var _0x2ba681={};_0x2ba681[_0x5f114a[_0xf6fd('0x26')]]={'$like':'%'+_0x2c4b81[_0xf6fd('0x2d')][_0xf6fd('0x36')]+'%'};return _0x2ba681;}})});}_0x36fcdd=_[_0xf6fd('0x38')]({},_0x36fcdd,_0x2c4b81[_0xf6fd('0x3a')]);var _0x3fa949={'where':_0x36fcdd[_0xf6fd('0x37')]};return db['SalesforceAccount'][_0xf6fd('0x1e')](_0x3fa949)[_0xf6fd('0x3b')](function(_0x5745b0){_0xe27154[_0xf6fd('0x1e')]=_0x5745b0;if(_0x2c4b81['query']['includeAll']){_0x36fcdd[_0xf6fd('0x3c')]=[{'all':!![]}];}return db[_0xf6fd('0x3d')][_0xf6fd('0x3e')](_0x36fcdd);})['then'](function(_0x344a22){_0xe27154[_0xf6fd('0x3f')]=_0x344a22;return _0xe27154;})[_0xf6fd('0x3b')](respondWithFilteredResult(_0x5ad023,_0x36fcdd))['catch'](handleError(_0x5ad023,null));};exports[_0xf6fd('0x40')]=function(_0x44e5a4,_0x37e8df){var _0xe10c33={'raw':![],'where':{'id':_0x44e5a4[_0xf6fd('0x41')]['id']}},_0x138a27={};_0x138a27[_0xf6fd('0x2c')]=_[_0xf6fd('0x2e')](db[_0xf6fd('0x3d')][_0xf6fd('0x2a')]);_0x138a27[_0xf6fd('0x2d')]=_['keys'](_0x44e5a4['query']);_0x138a27[_0xf6fd('0x2f')]=_[_0xf6fd('0x30')](_0x138a27[_0xf6fd('0x2c')],_0x138a27[_0xf6fd('0x2d')]);_0xe10c33[_0xf6fd('0x31')]=_['intersection'](_0x138a27[_0xf6fd('0x2c')],qs[_0xf6fd('0x32')](_0x44e5a4[_0xf6fd('0x2d')][_0xf6fd('0x32')]));_0xe10c33['attributes']=_0xe10c33[_0xf6fd('0x31')][_0xf6fd('0x33')]?_0xe10c33[_0xf6fd('0x31')]:_0x138a27['model'];if(_0x44e5a4['query'][_0xf6fd('0x42')]){_0xe10c33['include']=[{'all':!![]}];}_0xe10c33=_['merge']({},_0xe10c33,_0x44e5a4[_0xf6fd('0x3a')]);return db[_0xf6fd('0x3d')][_0xf6fd('0x43')](_0xe10c33)[_0xf6fd('0x3b')](handleEntityNotFound(_0x37e8df,null))[_0xf6fd('0x3b')](respondWithResult(_0x37e8df,null))['catch'](handleError(_0x37e8df,null));};exports[_0xf6fd('0x44')]=function(_0x3b48a0,_0x4ecccc){return db[_0xf6fd('0x3d')][_0xf6fd('0x44')](_0x3b48a0[_0xf6fd('0x45')],{})[_0xf6fd('0x3b')](respondWithResult(_0x4ecccc,0xc9))['catch'](handleError(_0x4ecccc,null));};exports['update']=function(_0x532429,_0x2652b1){if(_0x532429['body']['id']){delete _0x532429[_0xf6fd('0x45')]['id'];}return db[_0xf6fd('0x3d')][_0xf6fd('0x43')]({'where':{'id':_0x532429[_0xf6fd('0x41')]['id']}})[_0xf6fd('0x3b')](handleEntityNotFound(_0x2652b1,null))[_0xf6fd('0x3b')](saveUpdates(_0x532429[_0xf6fd('0x45')],null))[_0xf6fd('0x3b')](respondWithResult(_0x2652b1,null))[_0xf6fd('0x46')](handleError(_0x2652b1,null));};exports[_0xf6fd('0x23')]=function(_0x24f8d1,_0x4e9507){return db[_0xf6fd('0x3d')][_0xf6fd('0x43')]({'where':{'id':_0x24f8d1[_0xf6fd('0x41')]['id']}})[_0xf6fd('0x3b')](handleEntityNotFound(_0x4e9507,null))[_0xf6fd('0x3b')](removeEntity(_0x4e9507,null))['catch'](handleError(_0x4e9507,null));};exports[_0xf6fd('0x47')]=function(_0x2a5c22,_0x3abb39,_0xddb62d){var _0x1c30e6={};var _0x5506c9={};var _0x1731a9;var _0x33d90e;return db['SalesforceAccount']['findOne']({'where':{'id':_0x2a5c22[_0xf6fd('0x41')]['id']}})[_0xf6fd('0x3b')](handleEntityNotFound(_0x3abb39,null))['then'](function(_0x36143b){if(_0x36143b){_0x1731a9=_0x36143b;_0x5506c9[_0xf6fd('0x2c')]=_[_0xf6fd('0x2e')](db[_0xf6fd('0x48')][_0xf6fd('0x2a')]);_0x5506c9[_0xf6fd('0x2d')]=_[_0xf6fd('0x2e')](_0x2a5c22[_0xf6fd('0x2d')]);_0x5506c9[_0xf6fd('0x2f')]=_[_0xf6fd('0x30')](_0x5506c9['model'],_0x5506c9['query']);_0x1c30e6[_0xf6fd('0x31')]=_[_0xf6fd('0x30')](_0x5506c9['model'],qs[_0xf6fd('0x32')](_0x2a5c22['query'][_0xf6fd('0x32')]));_0x1c30e6[_0xf6fd('0x31')]=_0x1c30e6[_0xf6fd('0x31')]['length']?_0x1c30e6[_0xf6fd('0x31')]:_0x5506c9['model'];_0x1c30e6[_0xf6fd('0x35')]=qs[_0xf6fd('0x49')](_0x2a5c22[_0xf6fd('0x2d')]['sort']);_0x1c30e6[_0xf6fd('0x37')]=qs[_0xf6fd('0x2f')](_[_0xf6fd('0x4a')](_0x2a5c22[_0xf6fd('0x2d')],_0x5506c9['filters']));if(_0x2a5c22[_0xf6fd('0x2d')][_0xf6fd('0x36')]){_0x1c30e6['where']=_['merge'](_0x1c30e6['where'],{'$or':_['map'](_0x1c30e6[_0xf6fd('0x31')],function(_0x1f20b5){var _0x298e86={};_0x298e86[_0x1f20b5]={'$like':'%'+_0x2a5c22[_0xf6fd('0x2d')][_0xf6fd('0x36')]+'%'};return _0x298e86;})});}_0x1c30e6=_[_0xf6fd('0x38')]({},_0x1c30e6,_0x2a5c22['options']);return _0x1731a9[_0xf6fd('0x47')](_0x1c30e6);}})[_0xf6fd('0x3b')](function(_0x44f513){if(_0x44f513){_0x33d90e=_0x44f513[_0xf6fd('0x33')];if(!_0x2a5c22[_0xf6fd('0x2d')][_0xf6fd('0x34')](_0xf6fd('0x4b'))){_0x1c30e6[_0xf6fd('0x1d')]=qs[_0xf6fd('0x1d')](_0x2a5c22[_0xf6fd('0x2d')]['limit']);_0x1c30e6[_0xf6fd('0x1b')]=qs['offset'](_0x2a5c22[_0xf6fd('0x2d')][_0xf6fd('0x1b')]);}return _0x1731a9['getConfigurations'](_0x1c30e6);}})[_0xf6fd('0x3b')](function(_0x41efe4){if(_0x41efe4){return _0x41efe4?{'count':_0x33d90e,'rows':_0x41efe4}:null;}})['then'](respondWithResult(_0x3abb39,null))['catch'](handleError(_0x3abb39,null));};exports[_0xf6fd('0x4c')]=function(_0x50b789,_0x302fb0,_0x4085a9){if(_0x50b789[_0xf6fd('0x45')]['id']){delete _0x50b789[_0xf6fd('0x45')]['id'];}return db[_0xf6fd('0x3d')][_0xf6fd('0x4d')]({'where':{'id':_0x50b789[_0xf6fd('0x41')]['id']}})[_0xf6fd('0x3b')](handleEntityNotFound(_0x302fb0,null))['then'](function(_0x10162d){if(_0x10162d){_0x50b789['body'][_0xf6fd('0x4e')]=_0x10162d['id'];_0x50b789[_0xf6fd('0x45')][_0xf6fd('0x4f')]=integrations['getSubjects'](_0x50b789['body'][_0xf6fd('0x50')],_0x50b789['body'][_0xf6fd('0x2b')]);_0x50b789['body'][_0xf6fd('0x51')]=integrations['getDescriptions'](_0x50b789[_0xf6fd('0x45')][_0xf6fd('0x50')],_0x50b789[_0xf6fd('0x45')]['type']);return db[_0xf6fd('0x48')][_0xf6fd('0x44')](_0x50b789['body'],{'include':[{'model':db[_0xf6fd('0x52')],'as':_0xf6fd('0x4f')},{'model':db['SalesforceField'],'as':_0xf6fd('0x51')}]});}return null;})['then'](respondWithResult(_0x302fb0,null))[_0xf6fd('0x46')](handleError(_0x302fb0,null));};exports[_0xf6fd('0x53')]=function(_0x103944,_0x67f26c,_0x3f1f4c){var _0x38d6a5;var _0x5d8b50='';var _0x1f7f90='Task';return db[_0xf6fd('0x3d')][_0xf6fd('0x4d')]({'where':{'id':_0x103944[_0xf6fd('0x41')]['id']},'attributes':['id','remoteUri',_0xf6fd('0x54'),_0xf6fd('0x55'),'username',_0xf6fd('0x56'),_0xf6fd('0x57')]})['then'](handleEntityNotFound(_0x67f26c,null))[_0xf6fd('0x3b')](function(_0x2ab38c){if(_0x2ab38c){_0x5d8b50=_0x2ab38c[_0xf6fd('0x58')];var _0x59d475=_0x5d8b50[_0xf6fd('0x59')](-0x1);if(_0x59d475==='/'){_0x5d8b50=_0x5d8b50[_0xf6fd('0x5a')](0x0,_0x5d8b50['lastIndexOf'](_0x59d475));}_0x38d6a5=new jsforce[(_0xf6fd('0x5b'))]({'oauth2':{'loginUrl':_0x5d8b50,'clientId':_0x2ab38c[_0xf6fd('0x54')],'clientSecret':_0x2ab38c[_0xf6fd('0x55')]}});return _0x38d6a5['login'](_0x2ab38c[_0xf6fd('0x5c')],_0x2ab38c[_0xf6fd('0x56')][_0xf6fd('0x5d')](_0x2ab38c[_0xf6fd('0x57')]));}})['then'](function(_0x3a8f25){if(_0x3a8f25){if(!_[_0xf6fd('0x5e')](_0x103944[_0xf6fd('0x2d')][_0xf6fd('0x5f')])){_0x1f7f90=_0x103944['query'][_0xf6fd('0x5f')];}return _0x38d6a5[_0xf6fd('0x60')](_0x1f7f90)[_0xf6fd('0x61')]();}})[_0xf6fd('0x3b')](function(_0x81d932){var _0x2cfe5d=[_0xf6fd('0x62'),_0xf6fd('0x63'),_0xf6fd('0x64'),_0xf6fd('0x65'),_0xf6fd('0x66'),_0xf6fd('0x67')];var _0x27ca3c=[_0xf6fd('0x68'),_0xf6fd('0x69'),_0xf6fd('0x6a'),'boolean','email',_0xf6fd('0x6b'),'phone'];if(_0x81d932){_['remove'](_0x81d932['fields'],function(_0x6a874f){return _0x2cfe5d[_0xf6fd('0x6c')](_0x6a874f[_0xf6fd('0x26')])||!_0x27ca3c[_0xf6fd('0x6c')](_0x6a874f[_0xf6fd('0x2b')]);});return{'count':_0x81d932[_0xf6fd('0x32')][_0xf6fd('0x33')],'rows':_['map'](_0x81d932[_0xf6fd('0x32')],function(_0x1f7c97){return{'id':_0x1f7c97[_0xf6fd('0x26')],'name':_0x1f7c97[_0xf6fd('0x6d')],'custom':_0x1f7c97[_0xf6fd('0x6e')],'options':_0x1f7c97[_0xf6fd('0x6f')]['length']>0x0?_[_0xf6fd('0x29')](_0x1f7c97['picklistValues'],function(_0x670ef7){return{'name':_0x670ef7['label'],'value':_0x670ef7[_0xf6fd('0x70')]};}):_0x1f7c97[_0xf6fd('0x2b')]==_0xf6fd('0x71')?[{'name':_0xf6fd('0x72'),'value':_0xf6fd('0x73')},{'name':_0xf6fd('0x74'),'value':'false'}]:[]};})};}})[_0xf6fd('0x3b')](respondWithResult(_0x67f26c,null))[_0xf6fd('0x46')](function(_0x41fffd){var _0x23bf85=_0x103944[_0xf6fd('0x2d')][_0xf6fd('0x75')]?0x1f4:_0x41fffd[_0xf6fd('0x76')]||0x1f4;logger[_0xf6fd('0x77')](_0xf6fd('0x78'),'getFields',_0x23bf85,JSON[_0xf6fd('0x79')](_0x41fffd));delete _0x41fffd[_0xf6fd('0x26')];if(_0x23bf85===0x191){_0x23bf85=0x190;}_0x67f26c['status'](_0x23bf85)[_0xf6fd('0x27')](_0x103944[_0xf6fd('0x2d')][_0xf6fd('0x75')]?{'message':'Wrong\x20credentials','statusCode':_0x41fffd[_0xf6fd('0x76')]}:_0x41fffd);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa461=['rimraf','../../config/environment','../../components/integrations/configuration','exports','define','SalesforceAccount','lodash','util','moment','bluebird','request-promise','path'];(function(_0x483bd8,_0x2c1b59){var _0x2bb2f9=function(_0x571df0){while(--_0x571df0){_0x483bd8['push'](_0x483bd8['shift']());}};_0x2bb2f9(++_0x2c1b59);}(_0xa461,0x1f2));var _0x1a46=function(_0x279803,_0x170d14){_0x279803=_0x279803-0x0;var _0x1a231d=_0xa461[_0x279803];return _0x1a231d;};'use strict';var _=require(_0x1a46('0x0'));var util=require(_0x1a46('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x1a46('0x2'));var BPromise=require(_0x1a46('0x3'));var rp=require(_0x1a46('0x4'));var fs=require('fs');var path=require(_0x1a46('0x5'));var rimraf=require(_0x1a46('0x6'));var config=require(_0x1a46('0x7'));var attributes=require('./intSalesforceAccount.attributes');var integrations=require(_0x1a46('0x8'));module[_0x1a46('0x9')]=function(_0x36ad00,_0x1328a2){return _0x36ad00[_0x1a46('0xa')](_0x1a46('0xb'),attributes,{'tableName':'int_salesforce_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1171=['../../config/environment','./intSalesforceAccount.attributes','exports','define','SalesforceAccount','lodash','util','../../config/logger','request-promise','path','rimraf'];(function(_0x4e01a5,_0x1ec389){var _0x20a07c=function(_0x15f101){while(--_0x15f101){_0x4e01a5['push'](_0x4e01a5['shift']());}};_0x20a07c(++_0x1ec389);}(_0x1171,0x14f));var _0x1117=function(_0x5bd6da,_0x3f7ac8){_0x5bd6da=_0x5bd6da-0x0;var _0x5e6b8=_0x1171[_0x5bd6da];return _0x5e6b8;};'use strict';var _=require(_0x1117('0x0'));var util=require(_0x1117('0x1'));var logger=require(_0x1117('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x1117('0x3'));var fs=require('fs');var path=require(_0x1117('0x4'));var rimraf=require(_0x1117('0x5'));var config=require(_0x1117('0x6'));var attributes=require(_0x1117('0x7'));var integrations=require('../../components/integrations/configuration');module[_0x1117('0x8')]=function(_0x453e1a,_0x81b2f8){return _0x453e1a[_0x1117('0x9')](_0x1117('0xa'),attributes,{'tableName':'int_salesforce_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ba9=['request\x20sent','SalesforceAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','GetSalesforceAccount','SalesforceAccount','options','raw','where','attributes','limit','include','model','map','debug','ShowSalesforceAccount','find','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','request','then','info','SalesforceAccount,\x20%s,\x20%s'];(function(_0x4eba9c,_0x599efe){var _0x27fda3=function(_0x13890f){while(--_0x13890f){_0x4eba9c['push'](_0x4eba9c['shift']());}};_0x27fda3(++_0x599efe);}(_0x1ba9,0x1a0));var _0x91ba=function(_0xb05a5b,_0x427f98){_0xb05a5b=_0xb05a5b-0x0;var _0x144ef4=_0x1ba9[_0xb05a5b];return _0x144ef4;};'use strict';var _=require(_0x91ba('0x0'));var util=require(_0x91ba('0x1'));var moment=require(_0x91ba('0x2'));var BPromise=require(_0x91ba('0x3'));var rs=require(_0x91ba('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x91ba('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x91ba('0x6'))('rpc');var config=require(_0x91ba('0x7'));var jayson=require(_0x91ba('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x19c70e,_0xe34c4e,_0x4484f1){return new BPromise(function(_0xdb6a15,_0x1807e7){return client[_0x91ba('0x9')](_0x19c70e,_0x4484f1)[_0x91ba('0xa')](function(_0x45153e){logger[_0x91ba('0xb')](_0x91ba('0xc'),_0xe34c4e,_0x91ba('0xd'));logger['debug'](_0x91ba('0xe'),_0xe34c4e,_0x91ba('0xd'),JSON[_0x91ba('0xf')](_0x45153e));if(_0x45153e[_0x91ba('0x10')]){if(_0x45153e[_0x91ba('0x10')][_0x91ba('0x11')]===0x1f4){logger[_0x91ba('0x10')](_0x91ba('0xc'),_0xe34c4e,_0x45153e['error']['message']);return _0x1807e7(_0x45153e[_0x91ba('0x10')]['message']);}logger[_0x91ba('0x10')](_0x91ba('0xc'),_0xe34c4e,_0x45153e['error'][_0x91ba('0x12')]);return _0xdb6a15(_0x45153e['error'][_0x91ba('0x12')]);}else{logger['info'](_0x91ba('0xc'),_0xe34c4e,_0x91ba('0xd'));_0xdb6a15(_0x45153e['result']['message']);}})[_0x91ba('0x13')](function(_0x25fca6){logger['error'](_0x91ba('0xc'),_0xe34c4e,_0x25fca6);_0x1807e7(_0x25fca6);});});}exports[_0x91ba('0x14')]=function(_0x2513dc){var _0x21f10d=this;return new Promise(function(_0x470e2c,_0x2235da){return db[_0x91ba('0x15')]['findAll']({'raw':_0x2513dc['options']?_0x2513dc[_0x91ba('0x16')][_0x91ba('0x17')]===undefined?!![]:![]:!![],'where':_0x2513dc['options']?_0x2513dc['options'][_0x91ba('0x18')]||null:null,'attributes':_0x2513dc[_0x91ba('0x16')]?_0x2513dc[_0x91ba('0x16')][_0x91ba('0x19')]||null:null,'limit':_0x2513dc[_0x91ba('0x16')]?_0x2513dc['options'][_0x91ba('0x1a')]||null:null,'include':_0x2513dc[_0x91ba('0x16')]?_0x2513dc[_0x91ba('0x16')][_0x91ba('0x1b')]?_['map'](_0x2513dc[_0x91ba('0x16')][_0x91ba('0x1b')],function(_0xa7bcfe){return{'model':db[_0xa7bcfe[_0x91ba('0x1c')]],'as':_0xa7bcfe['as'],'attributes':_0xa7bcfe[_0x91ba('0x19')],'include':_0xa7bcfe[_0x91ba('0x1b')]?_[_0x91ba('0x1d')](_0xa7bcfe['include'],function(_0x4abebd){return{'model':db[_0x4abebd[_0x91ba('0x1c')]],'as':_0x4abebd['as'],'attributes':_0x4abebd[_0x91ba('0x19')],'include':_0x4abebd['include']?_[_0x91ba('0x1d')](_0x4abebd[_0x91ba('0x1b')],function(_0x470a63){return{'model':db[_0x470a63[_0x91ba('0x1c')]],'as':_0x470a63['as'],'attributes':_0x470a63[_0x91ba('0x19')]};}):[]};}):[]};}):[]:[]})[_0x91ba('0xa')](function(_0x30bf63){logger[_0x91ba('0xb')](_0x91ba('0x14'),_0x2513dc);logger[_0x91ba('0x1e')](_0x91ba('0x14'),_0x2513dc,JSON[_0x91ba('0xf')](_0x30bf63));_0x470e2c(_0x30bf63);})[_0x91ba('0x13')](function(_0xef982b){logger[_0x91ba('0x10')](_0x91ba('0x14'),_0xef982b[_0x91ba('0x12')],_0x2513dc);_0x2235da(_0x21f10d[_0x91ba('0x10')](0x1f4,_0xef982b[_0x91ba('0x12')]));});});};exports[_0x91ba('0x1f')]=function(_0x336285){var _0x1a90d7=this;return new Promise(function(_0x145596,_0x13f841){return db[_0x91ba('0x15')][_0x91ba('0x20')]({'raw':_0x336285[_0x91ba('0x16')]?_0x336285['options'][_0x91ba('0x17')]===undefined?!![]:![]:!![],'where':_0x336285['options']?_0x336285[_0x91ba('0x16')][_0x91ba('0x18')]||null:null,'attributes':_0x336285[_0x91ba('0x16')]?_0x336285['options']['attributes']||null:null,'include':_0x336285[_0x91ba('0x16')]?_0x336285['options'][_0x91ba('0x1b')]?_[_0x91ba('0x1d')](_0x336285['options'][_0x91ba('0x1b')],function(_0x18cec8){return{'model':db[_0x18cec8[_0x91ba('0x1c')]],'as':_0x18cec8['as'],'attributes':_0x18cec8[_0x91ba('0x19')],'include':_0x18cec8[_0x91ba('0x1b')]?_[_0x91ba('0x1d')](_0x18cec8[_0x91ba('0x1b')],function(_0xd3109c){return{'model':db[_0xd3109c[_0x91ba('0x1c')]],'as':_0xd3109c['as'],'attributes':_0xd3109c['attributes'],'include':_0xd3109c[_0x91ba('0x1b')]?_[_0x91ba('0x1d')](_0xd3109c[_0x91ba('0x1b')],function(_0x3bbb07){return{'model':db[_0x3bbb07['model']],'as':_0x3bbb07['as'],'attributes':_0x3bbb07[_0x91ba('0x19')]};}):[]};}):[]};}):[]:[]})[_0x91ba('0xa')](function(_0x2e8208){logger[_0x91ba('0xb')]('ShowSalesforceAccount',_0x336285);logger['debug'](_0x91ba('0x1f'),_0x336285,JSON['stringify'](_0x2e8208));_0x145596(_0x2e8208);})[_0x91ba('0x13')](function(_0x216155){logger['error'](_0x91ba('0x1f'),_0x216155[_0x91ba('0x12')],_0x336285);_0x13f841(_0x1a90d7[_0x91ba('0x10')](0x1f4,_0x216155[_0x91ba('0x12')]));});});};
\ No newline at end of file
+var _0x3905=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','then','SalesforceAccount,\x20%s,\x20%s','request\x20sent','debug','SalesforceAccount,\x20%s,\x20%s,\x20%s','stringify','code','error','message','info','result','catch','SalesforceAccount','options','where','attributes','include','model','GetSalesforceAccount','raw','map','ShowSalesforceAccount','lodash','moment','randomstring'];(function(_0x2ba68a,_0x20b1d1){var _0x50d9b1=function(_0x31b4c2){while(--_0x31b4c2){_0x2ba68a['push'](_0x2ba68a['shift']());}};_0x50d9b1(++_0x20b1d1);}(_0x3905,0xc3));var _0x5390=function(_0x35d06e,_0x2e3503){_0x35d06e=_0x35d06e-0x0;var _0x9e9053=_0x3905[_0x35d06e];return _0x9e9053;};'use strict';var _=require(_0x5390('0x0'));var util=require('util');var moment=require(_0x5390('0x1'));var BPromise=require('bluebird');var rs=require(_0x5390('0x2'));var fs=require('fs');var Redis=require(_0x5390('0x3'));var db=require(_0x5390('0x4'))['db'];var utils=require(_0x5390('0x5'));var logger=require(_0x5390('0x6'))(_0x5390('0x7'));var config=require(_0x5390('0x8'));var jayson=require(_0x5390('0x9'));var client=jayson['client'][_0x5390('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3aef76,_0x24fd08,_0x55e3a8){return new BPromise(function(_0x1bbef5,_0xbcdb2d){return client['request'](_0x3aef76,_0x55e3a8)[_0x5390('0xb')](function(_0x54916c){logger['info'](_0x5390('0xc'),_0x24fd08,_0x5390('0xd'));logger[_0x5390('0xe')](_0x5390('0xf'),_0x24fd08,_0x5390('0xd'),JSON[_0x5390('0x10')](_0x54916c));if(_0x54916c['error']){if(_0x54916c['error'][_0x5390('0x11')]===0x1f4){logger[_0x5390('0x12')](_0x5390('0xc'),_0x24fd08,_0x54916c['error'][_0x5390('0x13')]);return _0xbcdb2d(_0x54916c[_0x5390('0x12')][_0x5390('0x13')]);}logger[_0x5390('0x12')](_0x5390('0xc'),_0x24fd08,_0x54916c[_0x5390('0x12')]['message']);return _0x1bbef5(_0x54916c['error'][_0x5390('0x13')]);}else{logger[_0x5390('0x14')](_0x5390('0xc'),_0x24fd08,_0x5390('0xd'));_0x1bbef5(_0x54916c[_0x5390('0x15')][_0x5390('0x13')]);}})[_0x5390('0x16')](function(_0xd0df6a){logger[_0x5390('0x12')](_0x5390('0xc'),_0x24fd08,_0xd0df6a);_0xbcdb2d(_0xd0df6a);});});}exports['GetSalesforceAccount']=function(_0x1354d4){var _0x562e49=this;return new Promise(function(_0x476c8b,_0x7df8c0){return db[_0x5390('0x17')]['findAll']({'raw':_0x1354d4[_0x5390('0x18')]?_0x1354d4['options']['raw']===undefined?!![]:![]:!![],'where':_0x1354d4[_0x5390('0x18')]?_0x1354d4['options'][_0x5390('0x19')]||null:null,'attributes':_0x1354d4['options']?_0x1354d4['options'][_0x5390('0x1a')]||null:null,'limit':_0x1354d4[_0x5390('0x18')]?_0x1354d4[_0x5390('0x18')]['limit']||null:null,'include':_0x1354d4[_0x5390('0x18')]?_0x1354d4[_0x5390('0x18')][_0x5390('0x1b')]?_['map'](_0x1354d4[_0x5390('0x18')][_0x5390('0x1b')],function(_0x3b8541){return{'model':db[_0x3b8541['model']],'as':_0x3b8541['as'],'attributes':_0x3b8541['attributes'],'include':_0x3b8541[_0x5390('0x1b')]?_['map'](_0x3b8541[_0x5390('0x1b')],function(_0x4869d5){return{'model':db[_0x4869d5[_0x5390('0x1c')]],'as':_0x4869d5['as'],'attributes':_0x4869d5['attributes'],'include':_0x4869d5[_0x5390('0x1b')]?_['map'](_0x4869d5['include'],function(_0x1aa55a){return{'model':db[_0x1aa55a[_0x5390('0x1c')]],'as':_0x1aa55a['as'],'attributes':_0x1aa55a[_0x5390('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x5390('0xb')](function(_0x13ca55){logger[_0x5390('0x14')](_0x5390('0x1d'),_0x1354d4);logger['debug'](_0x5390('0x1d'),_0x1354d4,JSON[_0x5390('0x10')](_0x13ca55));_0x476c8b(_0x13ca55);})[_0x5390('0x16')](function(_0x3a5124){logger[_0x5390('0x12')](_0x5390('0x1d'),_0x3a5124[_0x5390('0x13')],_0x1354d4);_0x7df8c0(_0x562e49[_0x5390('0x12')](0x1f4,_0x3a5124['message']));});});};exports['ShowSalesforceAccount']=function(_0x4b3219){var _0x364fcd=this;return new Promise(function(_0x3a244b,_0x426e98){return db[_0x5390('0x17')]['find']({'raw':_0x4b3219[_0x5390('0x18')]?_0x4b3219[_0x5390('0x18')][_0x5390('0x1e')]===undefined?!![]:![]:!![],'where':_0x4b3219[_0x5390('0x18')]?_0x4b3219[_0x5390('0x18')]['where']||null:null,'attributes':_0x4b3219[_0x5390('0x18')]?_0x4b3219[_0x5390('0x18')][_0x5390('0x1a')]||null:null,'include':_0x4b3219[_0x5390('0x18')]?_0x4b3219['options'][_0x5390('0x1b')]?_[_0x5390('0x1f')](_0x4b3219[_0x5390('0x18')][_0x5390('0x1b')],function(_0x210681){return{'model':db[_0x210681[_0x5390('0x1c')]],'as':_0x210681['as'],'attributes':_0x210681[_0x5390('0x1a')],'include':_0x210681[_0x5390('0x1b')]?_[_0x5390('0x1f')](_0x210681[_0x5390('0x1b')],function(_0x86b797){return{'model':db[_0x86b797[_0x5390('0x1c')]],'as':_0x86b797['as'],'attributes':_0x86b797[_0x5390('0x1a')],'include':_0x86b797['include']?_[_0x5390('0x1f')](_0x86b797[_0x5390('0x1b')],function(_0x36a346){return{'model':db[_0x36a346[_0x5390('0x1c')]],'as':_0x36a346['as'],'attributes':_0x36a346['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x10ba0c){logger[_0x5390('0x14')](_0x5390('0x20'),_0x4b3219);logger[_0x5390('0xe')](_0x5390('0x20'),_0x4b3219,JSON['stringify'](_0x10ba0c));_0x3a244b(_0x10ba0c);})[_0x5390('0x16')](function(_0x3b5cd6){logger[_0x5390('0x12')](_0x5390('0x20'),_0x3b5cd6[_0x5390('0x13')],_0x4b3219);_0x426e98(_0x364fcd[_0x5390('0x12')](0x1f4,_0x3b5cd6[_0x5390('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['post','create','put','/:id','update','destroy','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSalesforceConfiguration.controller','get','isAuthenticated','index','show','/:id/fields','/:id/subjects','getSubjects','getDescriptions'];(function(_0x4fc9e6,_0xc51915){var _0x551d28=function(_0x1a603b){while(--_0x1a603b){_0x4fc9e6['push'](_0x4fc9e6['shift']());}};_0x551d28(++_0xc51915);}(_0x0b0e,0x187));var _0xe0b0=function(_0x506172,_0xbc3a3){_0x506172=_0x506172-0x0;var _0x2723c0=_0x0b0e[_0x506172];return _0x2723c0;};'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['getFields']);router[_0xe0b0('0x9')](_0xe0b0('0xe'),auth['isAuthenticated'](),controller[_0xe0b0('0xf')]);router[_0xe0b0('0x9')]('/:id/descriptions',auth[_0xe0b0('0xa')](),controller[_0xe0b0('0x10')]);router[_0xe0b0('0x11')]('/',auth['isAuthenticated'](),controller[_0xe0b0('0x12')]);router[_0xe0b0('0x13')](_0xe0b0('0x14'),auth[_0xe0b0('0xa')](),controller[_0xe0b0('0x15')]);router['delete'](_0xe0b0('0x14'),auth[_0xe0b0('0xa')](),controller[_0xe0b0('0x16')]);module[_0xe0b0('0x17')]=router;
\ No newline at end of file
+var _0x5f2f=['Router','fs-extra','../../components/auth/service','./intSalesforceConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','getSubjects','getDescriptions','create','put','update','destroy','exports','multer','util','path','connect-timeout','express'];(function(_0x4e55b0,_0x29daf4){var _0x4589bc=function(_0x1a0d3f){while(--_0x1a0d3f){_0x4e55b0['push'](_0x4e55b0['shift']());}};_0x4589bc(++_0x29daf4);}(_0x5f2f,0x73));var _0xf5f2=function(_0x4c4d08,_0x34376d){_0x4c4d08=_0x4c4d08-0x0;var _0x1ca404=_0x5f2f[_0x4c4d08];return _0x1ca404;};'use strict';var multer=require(_0xf5f2('0x0'));var util=require(_0xf5f2('0x1'));var path=require(_0xf5f2('0x2'));var timeout=require(_0xf5f2('0x3'));var express=require(_0xf5f2('0x4'));var router=express[_0xf5f2('0x5')]();var fs_extra=require(_0xf5f2('0x6'));var auth=require(_0xf5f2('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xf5f2('0x8'));router[_0xf5f2('0x9')]('/',auth[_0xf5f2('0xa')](),controller[_0xf5f2('0xb')]);router[_0xf5f2('0x9')](_0xf5f2('0xc'),auth['isAuthenticated'](),controller[_0xf5f2('0xd')]);router[_0xf5f2('0x9')](_0xf5f2('0xe'),auth['isAuthenticated'](),controller[_0xf5f2('0xf')]);router[_0xf5f2('0x9')](_0xf5f2('0x10'),auth['isAuthenticated'](),controller[_0xf5f2('0x11')]);router['get']('/:id/descriptions',auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x12')]);router['post']('/',auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x13')]);router[_0xf5f2('0x14')](_0xf5f2('0xc'),auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x15')]);router['delete'](_0xf5f2('0xc'),auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x16')]);module[_0xf5f2('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd08c=['STRING','ENUM','Task','Case','contact_lead','lead','account_contact_lead','account','nothing','contact','sequelize','exports'];(function(_0x3e18bf,_0x387f5e){var _0x1022e5=function(_0x242ec4){while(--_0x242ec4){_0x3e18bf['push'](_0x3e18bf['shift']());}};_0x1022e5(++_0x387f5e);}(_0xd08c,0x106));var _0xcd08=function(_0x4bf5bf,_0x1419f7){_0x4bf5bf=_0x4bf5bf-0x0;var _0x3a729c=_0xd08c[_0x4bf5bf];return _0x3a729c;};'use strict';var Sequelize=require(_0xcd08('0x0'));module[_0xcd08('0x1')]={'name':{'type':Sequelize[_0xcd08('0x2')]},'description':{'type':Sequelize[_0xcd08('0x2')]},'ticketType':{'type':Sequelize[_0xcd08('0x3')](_0xcd08('0x4'),_0xcd08('0x5')),'defaultValue':_0xcd08('0x4')},'moduleSearch':{'type':Sequelize[_0xcd08('0x3')](_0xcd08('0x6'),'contact',_0xcd08('0x7'),_0xcd08('0x8'),_0xcd08('0x9')),'defaultValue':_0xcd08('0x6')},'moduleCreate':{'type':Sequelize[_0xcd08('0x3')](_0xcd08('0xa'),_0xcd08('0xb'),'lead',_0xcd08('0x9')),'defaultValue':_0xcd08('0x7')},'leadId':{'type':Sequelize[_0xcd08('0x2')]},'additionalSearchAccount':{'type':Sequelize[_0xcd08('0x2')]},'additionalSearchContact':{'type':Sequelize[_0xcd08('0x2')]},'additionalSearchLead':{'type':Sequelize[_0xcd08('0x2')]}};
\ No newline at end of file
+var _0xd6e3=['nothing','contact','lead','sequelize','STRING','ENUM','Task','contact_lead','account_contact_lead','account'];(function(_0x3160b1,_0x1af397){var _0x5242c9=function(_0xf22c93){while(--_0xf22c93){_0x3160b1['push'](_0x3160b1['shift']());}};_0x5242c9(++_0x1af397);}(_0xd6e3,0xcb));var _0x3d6e=function(_0x2e7ddc,_0x22ad4d){_0x2e7ddc=_0x2e7ddc-0x0;var _0x57dc69=_0xd6e3[_0x2e7ddc];return _0x57dc69;};'use strict';var Sequelize=require(_0x3d6e('0x0'));module['exports']={'name':{'type':Sequelize[_0x3d6e('0x1')]},'description':{'type':Sequelize[_0x3d6e('0x1')]},'ticketType':{'type':Sequelize[_0x3d6e('0x2')](_0x3d6e('0x3'),'Case'),'defaultValue':'Task'},'moduleSearch':{'type':Sequelize['ENUM'](_0x3d6e('0x4'),'contact','lead',_0x3d6e('0x5'),_0x3d6e('0x6')),'defaultValue':_0x3d6e('0x4')},'moduleCreate':{'type':Sequelize['ENUM'](_0x3d6e('0x7'),_0x3d6e('0x8'),_0x3d6e('0x9'),_0x3d6e('0x6')),'defaultValue':_0x3d6e('0x9')},'leadId':{'type':Sequelize['STRING']},'additionalSearchAccount':{'type':Sequelize[_0x3d6e('0x1')]},'additionalSearchContact':{'type':Sequelize[_0x3d6e('0x1')]},'additionalSearchLead':{'type':Sequelize[_0x3d6e('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb97e=['sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','reject','save','then','destroy','end','error','stack','name','send','index','map','SalesforceConfiguration','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','keys','find','create','body','update','params','getFields','findOne','SalesforceField','order','sort','getSubjects','getDescriptions','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path'];(function(_0x579666,_0x2d6764){var _0xdc44ca=function(_0x33d803){while(--_0x33d803){_0x579666['push'](_0x579666['shift']());}};_0xdc44ca(++_0x2d6764);}(_0xb97e,0xef));var _0xeb97=function(_0x235482,_0x14b833){_0x235482=_0x235482-0x0;var _0x5f5bea=_0xb97e[_0x235482];return _0x5f5bea;};'use strict';var emlformat=require(_0xeb97('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xeb97('0x1'));var jsonpatch=require(_0xeb97('0x2'));var rp=require(_0xeb97('0x3'));var moment=require('moment');var BPromise=require(_0xeb97('0x4'));var Mustache=require(_0xeb97('0x5'));var util=require('util');var path=require(_0xeb97('0x6'));var sox=require(_0xeb97('0x7'));var csv=require(_0xeb97('0x8'));var ejs=require(_0xeb97('0x9'));var fs=require('fs');var fs_extra=require(_0xeb97('0xa'));var _=require('lodash');var squel=require(_0xeb97('0xb'));var crypto=require(_0xeb97('0xc'));var jsforce=require(_0xeb97('0xd'));var deskjs=require(_0xeb97('0xe'));var toCsv=require(_0xeb97('0x8'));var querystring=require(_0xeb97('0xf'));var Papa=require(_0xeb97('0x10'));var Redis=require(_0xeb97('0x11'));var authService=require(_0xeb97('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xeb97('0x13'));var hardwareService=require(_0xeb97('0x14'));var logger=require(_0xeb97('0x15'))('api');var utils=require(_0xeb97('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xeb97('0x17'));var db=require(_0xeb97('0x18'))['db'];function respondWithStatusCode(_0xf106f3,_0x5e8a24){_0x5e8a24=_0x5e8a24||0xcc;return function(_0xbf31b){if(_0xbf31b){return _0xf106f3[_0xeb97('0x19')](_0x5e8a24);}return _0xf106f3[_0xeb97('0x1a')](_0x5e8a24)['end']();};}function respondWithResult(_0x3b77df,_0x1915c8){_0x1915c8=_0x1915c8||0xc8;return function(_0x1b6efc){if(_0x1b6efc){return _0x3b77df['status'](_0x1915c8)[_0xeb97('0x1b')](_0x1b6efc);}};}function respondWithFilteredResult(_0x2709bc,_0x1735f4){return function(_0x17233c){if(_0x17233c){var _0x3f5ae5=typeof _0x1735f4[_0xeb97('0x1c')]===_0xeb97('0x1d')&&typeof _0x1735f4['limit']==='undefined';var _0x3a7a01=_0x17233c['count'];var _0x49bd4c=_0x3f5ae5?0x0:_0x1735f4['offset'];var _0x3b8b75=_0x3f5ae5?_0x17233c[_0xeb97('0x1e')]:_0x1735f4[_0xeb97('0x1c')]+_0x1735f4[_0xeb97('0x1f')];var _0x551b81;if(_0x3b8b75>=_0x3a7a01){_0x3b8b75=_0x3a7a01;_0x551b81=0xc8;}else{_0x551b81=0xce;}_0x2709bc[_0xeb97('0x1a')](_0x551b81);return _0x2709bc[_0xeb97('0x20')](_0xeb97('0x21'),_0x49bd4c+'-'+_0x3b8b75+'/'+_0x3a7a01)[_0xeb97('0x1b')](_0x17233c);}return null;};}function patchUpdates(_0x1fd80f){return function(_0x4b85c4){try{jsonpatch['apply'](_0x4b85c4,_0x1fd80f,!![]);}catch(_0x5c2f3f){return BPromise[_0xeb97('0x22')](_0x5c2f3f);}return _0x4b85c4[_0xeb97('0x23')]();};}function saveUpdates(_0x34a5bd,_0x36bd2d){return function(_0x1bd993){if(_0x1bd993){return _0x1bd993['update'](_0x34a5bd)[_0xeb97('0x24')](function(_0x9ec0d7){return _0x9ec0d7;});}return null;};}function removeEntity(_0x3e4fa3,_0x138432){return function(_0x46bad8){if(_0x46bad8){return _0x46bad8[_0xeb97('0x25')]()[_0xeb97('0x24')](function(){_0x3e4fa3[_0xeb97('0x1a')](0xcc)[_0xeb97('0x26')]();});}};}function handleEntityNotFound(_0x245cf9,_0x3bf3b3){return function(_0xdd9537){if(!_0xdd9537){_0x245cf9[_0xeb97('0x19')](0x194);}return _0xdd9537;};}function handleError(_0x39deb2,_0x34b983){_0x34b983=_0x34b983||0x1f4;return function(_0x298b79){logger[_0xeb97('0x27')](_0x298b79[_0xeb97('0x28')]);if(_0x298b79[_0xeb97('0x29')]){delete _0x298b79[_0xeb97('0x29')];}_0x39deb2[_0xeb97('0x1a')](_0x34b983)[_0xeb97('0x2a')](_0x298b79);};}exports[_0xeb97('0x2b')]=function(_0x58a9f0,_0x2a3704){var _0x3030da={},_0x45a569={},_0x33b735={'count':0x0,'rows':[]};var _0x58571e=_[_0xeb97('0x2c')](db[_0xeb97('0x2d')][_0xeb97('0x2e')],function(_0x390ab7){return{'name':_0x390ab7[_0xeb97('0x2f')],'type':_0x390ab7[_0xeb97('0x30')]['key']};});_0x45a569[_0xeb97('0x31')]=_['map'](_0x58571e,_0xeb97('0x29'));_0x45a569[_0xeb97('0x32')]=_['keys'](_0x58a9f0[_0xeb97('0x32')]);_0x45a569[_0xeb97('0x33')]=_[_0xeb97('0x34')](_0x45a569[_0xeb97('0x31')],_0x45a569[_0xeb97('0x32')]);_0x3030da[_0xeb97('0x35')]=_[_0xeb97('0x34')](_0x45a569['model'],qs[_0xeb97('0x36')](_0x58a9f0[_0xeb97('0x32')]['fields']));_0x3030da[_0xeb97('0x35')]=_0x3030da[_0xeb97('0x35')][_0xeb97('0x37')]?_0x3030da['attributes']:_0x45a569[_0xeb97('0x31')];if(!_0x58a9f0[_0xeb97('0x32')][_0xeb97('0x38')](_0xeb97('0x39'))){_0x3030da[_0xeb97('0x1f')]=qs[_0xeb97('0x1f')](_0x58a9f0[_0xeb97('0x32')][_0xeb97('0x1f')]);_0x3030da['offset']=qs[_0xeb97('0x1c')](_0x58a9f0[_0xeb97('0x32')][_0xeb97('0x1c')]);}_0x3030da['order']=qs['sort'](_0x58a9f0[_0xeb97('0x32')]['sort']);_0x3030da[_0xeb97('0x3a')]=qs['filters'](_[_0xeb97('0x3b')](_0x58a9f0[_0xeb97('0x32')],_0x45a569[_0xeb97('0x33')]),_0x58571e);if(_0x58a9f0[_0xeb97('0x32')][_0xeb97('0x3c')]){_0x3030da['where']=_[_0xeb97('0x3d')](_0x3030da['where'],{'$or':_[_0xeb97('0x2c')](_0x58571e,function(_0x29e4e4){if(_0x29e4e4['type']!=='VIRTUAL'){var _0x32fd31={};_0x32fd31[_0x29e4e4[_0xeb97('0x29')]]={'$like':'%'+_0x58a9f0[_0xeb97('0x32')]['filter']+'%'};return _0x32fd31;}})});}_0x3030da=_[_0xeb97('0x3d')]({},_0x3030da,_0x58a9f0[_0xeb97('0x3e')]);var _0xc1d612={'where':_0x3030da[_0xeb97('0x3a')]};return db['SalesforceConfiguration'][_0xeb97('0x1e')](_0xc1d612)[_0xeb97('0x24')](function(_0x4e2574){_0x33b735[_0xeb97('0x1e')]=_0x4e2574;if(_0x58a9f0[_0xeb97('0x32')][_0xeb97('0x3f')]){_0x3030da[_0xeb97('0x40')]=[{'all':!![]}];}return db[_0xeb97('0x2d')][_0xeb97('0x41')](_0x3030da);})['then'](function(_0x2bfa45){_0x33b735[_0xeb97('0x42')]=_0x2bfa45;return _0x33b735;})[_0xeb97('0x24')](respondWithFilteredResult(_0x2a3704,_0x3030da))[_0xeb97('0x43')](handleError(_0x2a3704,null));};exports[_0xeb97('0x44')]=function(_0x10f373,_0x45e3d0){var _0x4caac6={'raw':![],'where':{'id':_0x10f373['params']['id']}},_0x24d3f6={};_0x24d3f6[_0xeb97('0x31')]=_[_0xeb97('0x45')](db[_0xeb97('0x2d')]['rawAttributes']);_0x24d3f6[_0xeb97('0x32')]=_['keys'](_0x10f373[_0xeb97('0x32')]);_0x24d3f6[_0xeb97('0x33')]=_[_0xeb97('0x34')](_0x24d3f6[_0xeb97('0x31')],_0x24d3f6[_0xeb97('0x32')]);_0x4caac6[_0xeb97('0x35')]=_[_0xeb97('0x34')](_0x24d3f6['model'],qs['fields'](_0x10f373[_0xeb97('0x32')][_0xeb97('0x36')]));_0x4caac6[_0xeb97('0x35')]=_0x4caac6[_0xeb97('0x35')][_0xeb97('0x37')]?_0x4caac6[_0xeb97('0x35')]:_0x24d3f6['model'];if(_0x10f373[_0xeb97('0x32')][_0xeb97('0x3f')]){_0x4caac6[_0xeb97('0x40')]=[{'all':!![]}];}_0x4caac6=_['merge']({},_0x4caac6,_0x10f373[_0xeb97('0x3e')]);return db[_0xeb97('0x2d')][_0xeb97('0x46')](_0x4caac6)['then'](handleEntityNotFound(_0x45e3d0,null))[_0xeb97('0x24')](respondWithResult(_0x45e3d0,null))[_0xeb97('0x43')](handleError(_0x45e3d0,null));};exports[_0xeb97('0x47')]=function(_0x5d4677,_0x324a05){return db[_0xeb97('0x2d')][_0xeb97('0x47')](_0x5d4677[_0xeb97('0x48')],{})[_0xeb97('0x24')](respondWithResult(_0x324a05,0xc9))['catch'](handleError(_0x324a05,null));};exports[_0xeb97('0x49')]=function(_0xacb828,_0x295fec){if(_0xacb828['body']['id']){delete _0xacb828[_0xeb97('0x48')]['id'];}return db[_0xeb97('0x2d')][_0xeb97('0x46')]({'where':{'id':_0xacb828['params']['id']}})[_0xeb97('0x24')](handleEntityNotFound(_0x295fec,null))[_0xeb97('0x24')](saveUpdates(_0xacb828[_0xeb97('0x48')],null))[_0xeb97('0x24')](respondWithResult(_0x295fec,null))[_0xeb97('0x43')](handleError(_0x295fec,null));};exports[_0xeb97('0x25')]=function(_0x22caa9,_0x43dbad){return db[_0xeb97('0x2d')][_0xeb97('0x46')]({'where':{'id':_0x22caa9[_0xeb97('0x4a')]['id']}})[_0xeb97('0x24')](handleEntityNotFound(_0x43dbad,null))[_0xeb97('0x24')](removeEntity(_0x43dbad,null))[_0xeb97('0x43')](handleError(_0x43dbad,null));};exports[_0xeb97('0x4b')]=function(_0x282060,_0x24a864,_0x233feb){var _0x324f30={};var _0x210113={};var _0x5238b9;var _0x17face;return db[_0xeb97('0x2d')][_0xeb97('0x4c')]({'where':{'id':_0x282060[_0xeb97('0x4a')]['id']}})['then'](handleEntityNotFound(_0x24a864,null))[_0xeb97('0x24')](function(_0x41cf43){if(_0x41cf43){_0x5238b9=_0x41cf43;_0x210113[_0xeb97('0x31')]=_[_0xeb97('0x45')](db[_0xeb97('0x4d')][_0xeb97('0x2e')]);_0x210113[_0xeb97('0x32')]=_[_0xeb97('0x45')](_0x282060[_0xeb97('0x32')]);_0x210113[_0xeb97('0x33')]=_[_0xeb97('0x34')](_0x210113[_0xeb97('0x31')],_0x210113[_0xeb97('0x32')]);_0x324f30[_0xeb97('0x35')]=_['intersection'](_0x210113[_0xeb97('0x31')],qs[_0xeb97('0x36')](_0x282060[_0xeb97('0x32')]['fields']));_0x324f30['attributes']=_0x324f30[_0xeb97('0x35')][_0xeb97('0x37')]?_0x324f30['attributes']:_0x210113[_0xeb97('0x31')];_0x324f30[_0xeb97('0x4e')]=qs[_0xeb97('0x4f')](_0x282060[_0xeb97('0x32')]['sort']);_0x324f30['where']=qs[_0xeb97('0x33')](_['pick'](_0x282060['query'],_0x210113[_0xeb97('0x33')]));if(_0x282060[_0xeb97('0x32')]['filter']){_0x324f30[_0xeb97('0x3a')]=_['merge'](_0x324f30[_0xeb97('0x3a')],{'$or':_[_0xeb97('0x2c')](_0x324f30['attributes'],function(_0x533c29){var _0x33565f={};_0x33565f[_0x533c29]={'$like':'%'+_0x282060['query'][_0xeb97('0x3c')]+'%'};return _0x33565f;})});}_0x324f30=_['merge']({},_0x324f30,_0x282060[_0xeb97('0x3e')]);return _0x5238b9[_0xeb97('0x4b')](_0x324f30);}})['then'](function(_0x5a9722){if(_0x5a9722){_0x17face=_0x5a9722[_0xeb97('0x37')];if(!_0x282060[_0xeb97('0x32')][_0xeb97('0x38')](_0xeb97('0x39'))){_0x324f30[_0xeb97('0x1f')]=qs[_0xeb97('0x1f')](_0x282060[_0xeb97('0x32')][_0xeb97('0x1f')]);_0x324f30[_0xeb97('0x1c')]=qs[_0xeb97('0x1c')](_0x282060[_0xeb97('0x32')][_0xeb97('0x1c')]);}return _0x5238b9['getFields'](_0x324f30);}})['then'](function(_0x5b748e){if(_0x5b748e){return _0x5b748e?{'count':_0x17face,'rows':_0x5b748e}:null;}})['then'](respondWithResult(_0x24a864,null))[_0xeb97('0x43')](handleError(_0x24a864,null));};exports[_0xeb97('0x50')]=function(_0x557ee1,_0x1d5738,_0x5f2f68){var _0x35817b={};var _0x1431e6={};var _0x36b57b;var _0x43d76a;return db[_0xeb97('0x2d')][_0xeb97('0x4c')]({'where':{'id':_0x557ee1[_0xeb97('0x4a')]['id']}})[_0xeb97('0x24')](handleEntityNotFound(_0x1d5738,null))[_0xeb97('0x24')](function(_0x54ebe4){if(_0x54ebe4){_0x36b57b=_0x54ebe4;_0x1431e6[_0xeb97('0x31')]=_[_0xeb97('0x45')](db[_0xeb97('0x4d')][_0xeb97('0x2e')]);_0x1431e6['query']=_[_0xeb97('0x45')](_0x557ee1[_0xeb97('0x32')]);_0x1431e6[_0xeb97('0x33')]=_[_0xeb97('0x34')](_0x1431e6[_0xeb97('0x31')],_0x1431e6['query']);_0x35817b['attributes']=_['intersection'](_0x1431e6[_0xeb97('0x31')],qs[_0xeb97('0x36')](_0x557ee1[_0xeb97('0x32')][_0xeb97('0x36')]));_0x35817b[_0xeb97('0x35')]=_0x35817b[_0xeb97('0x35')][_0xeb97('0x37')]?_0x35817b['attributes']:_0x1431e6[_0xeb97('0x31')];_0x35817b['order']=qs['sort'](_0x557ee1[_0xeb97('0x32')][_0xeb97('0x4f')]);_0x35817b[_0xeb97('0x3a')]=qs['filters'](_[_0xeb97('0x3b')](_0x557ee1[_0xeb97('0x32')],_0x1431e6['filters']));if(_0x557ee1[_0xeb97('0x32')][_0xeb97('0x3c')]){_0x35817b[_0xeb97('0x3a')]=_[_0xeb97('0x3d')](_0x35817b[_0xeb97('0x3a')],{'$or':_[_0xeb97('0x2c')](_0x35817b[_0xeb97('0x35')],function(_0x325129){var _0x3d5175={};_0x3d5175[_0x325129]={'$like':'%'+_0x557ee1[_0xeb97('0x32')]['filter']+'%'};return _0x3d5175;})});}_0x35817b=_['merge']({},_0x35817b,_0x557ee1[_0xeb97('0x3e')]);return _0x36b57b[_0xeb97('0x50')](_0x35817b);}})[_0xeb97('0x24')](function(_0x181cdf){if(_0x181cdf){_0x43d76a=_0x181cdf['length'];if(!_0x557ee1[_0xeb97('0x32')]['hasOwnProperty'](_0xeb97('0x39'))){_0x35817b['limit']=qs[_0xeb97('0x1f')](_0x557ee1['query']['limit']);_0x35817b['offset']=qs[_0xeb97('0x1c')](_0x557ee1[_0xeb97('0x32')][_0xeb97('0x1c')]);}return _0x36b57b['getSubjects'](_0x35817b);}})['then'](function(_0x27aec8){if(_0x27aec8){return _0x27aec8?{'count':_0x43d76a,'rows':_0x27aec8}:null;}})[_0xeb97('0x24')](respondWithResult(_0x1d5738,null))[_0xeb97('0x43')](handleError(_0x1d5738,null));};exports[_0xeb97('0x51')]=function(_0x2c8afb,_0x54e0ba,_0x16d0e1){var _0x5de6c8={};var _0x5c66ab={};var _0x230f03;var _0x2d6892;return db['SalesforceConfiguration'][_0xeb97('0x4c')]({'where':{'id':_0x2c8afb['params']['id']}})[_0xeb97('0x24')](handleEntityNotFound(_0x54e0ba,null))[_0xeb97('0x24')](function(_0x1f4e77){if(_0x1f4e77){_0x230f03=_0x1f4e77;_0x5c66ab[_0xeb97('0x31')]=_[_0xeb97('0x45')](db[_0xeb97('0x4d')]['rawAttributes']);_0x5c66ab[_0xeb97('0x32')]=_[_0xeb97('0x45')](_0x2c8afb[_0xeb97('0x32')]);_0x5c66ab[_0xeb97('0x33')]=_[_0xeb97('0x34')](_0x5c66ab[_0xeb97('0x31')],_0x5c66ab[_0xeb97('0x32')]);_0x5de6c8[_0xeb97('0x35')]=_[_0xeb97('0x34')](_0x5c66ab[_0xeb97('0x31')],qs['fields'](_0x2c8afb[_0xeb97('0x32')][_0xeb97('0x36')]));_0x5de6c8[_0xeb97('0x35')]=_0x5de6c8[_0xeb97('0x35')][_0xeb97('0x37')]?_0x5de6c8[_0xeb97('0x35')]:_0x5c66ab[_0xeb97('0x31')];_0x5de6c8[_0xeb97('0x4e')]=qs['sort'](_0x2c8afb[_0xeb97('0x32')][_0xeb97('0x4f')]);_0x5de6c8['where']=qs[_0xeb97('0x33')](_[_0xeb97('0x3b')](_0x2c8afb[_0xeb97('0x32')],_0x5c66ab['filters']));if(_0x2c8afb[_0xeb97('0x32')][_0xeb97('0x3c')]){_0x5de6c8[_0xeb97('0x3a')]=_[_0xeb97('0x3d')](_0x5de6c8[_0xeb97('0x3a')],{'$or':_[_0xeb97('0x2c')](_0x5de6c8[_0xeb97('0x35')],function(_0x5fbf9d){var _0x3edfc8={};_0x3edfc8[_0x5fbf9d]={'$like':'%'+_0x2c8afb['query'][_0xeb97('0x3c')]+'%'};return _0x3edfc8;})});}_0x5de6c8=_[_0xeb97('0x3d')]({},_0x5de6c8,_0x2c8afb[_0xeb97('0x3e')]);return _0x230f03[_0xeb97('0x51')](_0x5de6c8);}})[_0xeb97('0x24')](function(_0x1e14b2){if(_0x1e14b2){_0x2d6892=_0x1e14b2[_0xeb97('0x37')];if(!_0x2c8afb['query'][_0xeb97('0x38')](_0xeb97('0x39'))){_0x5de6c8[_0xeb97('0x1f')]=qs[_0xeb97('0x1f')](_0x2c8afb[_0xeb97('0x32')][_0xeb97('0x1f')]);_0x5de6c8[_0xeb97('0x1c')]=qs[_0xeb97('0x1c')](_0x2c8afb['query'][_0xeb97('0x1c')]);}return _0x230f03[_0xeb97('0x51')](_0x5de6c8);}})[_0xeb97('0x24')](function(_0x95cabf){if(_0x95cabf){return _0x95cabf?{'count':_0x2d6892,'rows':_0x95cabf}:null;}})[_0xeb97('0x24')](respondWithResult(_0x54e0ba,null))[_0xeb97('0x43')](handleError(_0x54e0ba,null));};
\ No newline at end of file
+var _0xe009=['limit','set','Content-Range','reject','save','update','destroy','then','error','stack','name','map','SalesforceConfiguration','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','findAll','rows','show','keys','rawAttributes','includeAll','include','find','catch','create','body','params','findOne','SalesforceField','hasOwnProperty','getFields','getSubjects','getDescriptions','order','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','status','end','json','offset','count'];(function(_0x4f5cbe,_0x452a39){var _0x50c2d2=function(_0x352046){while(--_0x352046){_0x4f5cbe['push'](_0x4f5cbe['shift']());}};_0x50c2d2(++_0x452a39);}(_0xe009,0x122));var _0x9e00=function(_0x31e7cc,_0x2c6439){_0x31e7cc=_0x31e7cc-0x0;var _0x2403d5=_0xe009[_0x31e7cc];return _0x2403d5;};'use strict';var emlformat=require(_0x9e00('0x0'));var rimraf=require(_0x9e00('0x1'));var zipdir=require(_0x9e00('0x2'));var jsonpatch=require(_0x9e00('0x3'));var rp=require('request-promise');var moment=require(_0x9e00('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9e00('0x5'));var util=require(_0x9e00('0x6'));var path=require(_0x9e00('0x7'));var sox=require(_0x9e00('0x8'));var csv=require(_0x9e00('0x9'));var ejs=require(_0x9e00('0xa'));var fs=require('fs');var fs_extra=require(_0x9e00('0xb'));var _=require(_0x9e00('0xc'));var squel=require(_0x9e00('0xd'));var crypto=require(_0x9e00('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x9e00('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x9e00('0x10'));var Redis=require(_0x9e00('0x11'));var authService=require(_0x9e00('0x12'));var qs=require(_0x9e00('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9e00('0x14'));var logger=require(_0x9e00('0x15'))(_0x9e00('0x16'));var utils=require('../../config/utils');var config=require(_0x9e00('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3b81bc,_0x48d63b){_0x48d63b=_0x48d63b||0xcc;return function(_0x3485d9){if(_0x3485d9){return _0x3b81bc[_0x9e00('0x18')](_0x48d63b);}return _0x3b81bc[_0x9e00('0x19')](_0x48d63b)[_0x9e00('0x1a')]();};}function respondWithResult(_0x175e7d,_0x40b563){_0x40b563=_0x40b563||0xc8;return function(_0x580f5c){if(_0x580f5c){return _0x175e7d['status'](_0x40b563)[_0x9e00('0x1b')](_0x580f5c);}};}function respondWithFilteredResult(_0x4f3aad,_0x10df77){return function(_0x22ff8f){if(_0x22ff8f){var _0x298cb4=typeof _0x10df77[_0x9e00('0x1c')]==='undefined'&&typeof _0x10df77['limit']==='undefined';var _0x4a2ce8=_0x22ff8f[_0x9e00('0x1d')];var _0x5971eb=_0x298cb4?0x0:_0x10df77[_0x9e00('0x1c')];var _0x4402b=_0x298cb4?_0x22ff8f['count']:_0x10df77[_0x9e00('0x1c')]+_0x10df77[_0x9e00('0x1e')];var _0x11246e;if(_0x4402b>=_0x4a2ce8){_0x4402b=_0x4a2ce8;_0x11246e=0xc8;}else{_0x11246e=0xce;}_0x4f3aad[_0x9e00('0x19')](_0x11246e);return _0x4f3aad[_0x9e00('0x1f')](_0x9e00('0x20'),_0x5971eb+'-'+_0x4402b+'/'+_0x4a2ce8)[_0x9e00('0x1b')](_0x22ff8f);}return null;};}function patchUpdates(_0x306094){return function(_0x500416){try{jsonpatch['apply'](_0x500416,_0x306094,!![]);}catch(_0x181609){return BPromise[_0x9e00('0x21')](_0x181609);}return _0x500416[_0x9e00('0x22')]();};}function saveUpdates(_0x5c819f,_0x217bcd){return function(_0x35a1ef){if(_0x35a1ef){return _0x35a1ef[_0x9e00('0x23')](_0x5c819f)['then'](function(_0x45b3b3){return _0x45b3b3;});}return null;};}function removeEntity(_0x4008f9,_0x18fac5){return function(_0x781601){if(_0x781601){return _0x781601[_0x9e00('0x24')]()[_0x9e00('0x25')](function(){_0x4008f9[_0x9e00('0x19')](0xcc)[_0x9e00('0x1a')]();});}};}function handleEntityNotFound(_0x2a1113,_0x418f8a){return function(_0x2520ba){if(!_0x2520ba){_0x2a1113[_0x9e00('0x18')](0x194);}return _0x2520ba;};}function handleError(_0x232bcf,_0x4b9097){_0x4b9097=_0x4b9097||0x1f4;return function(_0x831f2b){logger[_0x9e00('0x26')](_0x831f2b[_0x9e00('0x27')]);if(_0x831f2b[_0x9e00('0x28')]){delete _0x831f2b[_0x9e00('0x28')];}_0x232bcf['status'](_0x4b9097)['send'](_0x831f2b);};}exports['index']=function(_0x418d06,_0xd88357){var _0x351b30={},_0x1806be={},_0x4fc9da={'count':0x0,'rows':[]};var _0x2205a4=_[_0x9e00('0x29')](db[_0x9e00('0x2a')]['rawAttributes'],function(_0x3a90f9){return{'name':_0x3a90f9[_0x9e00('0x2b')],'type':_0x3a90f9[_0x9e00('0x2c')][_0x9e00('0x2d')]};});_0x1806be[_0x9e00('0x2e')]=_[_0x9e00('0x29')](_0x2205a4,_0x9e00('0x28'));_0x1806be[_0x9e00('0x2f')]=_['keys'](_0x418d06['query']);_0x1806be[_0x9e00('0x30')]=_[_0x9e00('0x31')](_0x1806be[_0x9e00('0x2e')],_0x1806be[_0x9e00('0x2f')]);_0x351b30[_0x9e00('0x32')]=_[_0x9e00('0x31')](_0x1806be[_0x9e00('0x2e')],qs[_0x9e00('0x33')](_0x418d06['query'][_0x9e00('0x33')]));_0x351b30['attributes']=_0x351b30[_0x9e00('0x32')][_0x9e00('0x34')]?_0x351b30[_0x9e00('0x32')]:_0x1806be[_0x9e00('0x2e')];if(!_0x418d06[_0x9e00('0x2f')]['hasOwnProperty'](_0x9e00('0x35'))){_0x351b30['limit']=qs['limit'](_0x418d06[_0x9e00('0x2f')]['limit']);_0x351b30['offset']=qs[_0x9e00('0x1c')](_0x418d06[_0x9e00('0x2f')][_0x9e00('0x1c')]);}_0x351b30['order']=qs[_0x9e00('0x36')](_0x418d06[_0x9e00('0x2f')][_0x9e00('0x36')]);_0x351b30[_0x9e00('0x37')]=qs[_0x9e00('0x30')](_[_0x9e00('0x38')](_0x418d06['query'],_0x1806be['filters']),_0x2205a4);if(_0x418d06[_0x9e00('0x2f')][_0x9e00('0x39')]){_0x351b30[_0x9e00('0x37')]=_['merge'](_0x351b30[_0x9e00('0x37')],{'$or':_['map'](_0x2205a4,function(_0x5ee888){if(_0x5ee888['type']!==_0x9e00('0x3a')){var _0x1d5424={};_0x1d5424[_0x5ee888['name']]={'$like':'%'+_0x418d06[_0x9e00('0x2f')][_0x9e00('0x39')]+'%'};return _0x1d5424;}})});}_0x351b30=_[_0x9e00('0x3b')]({},_0x351b30,_0x418d06[_0x9e00('0x3c')]);var _0x31d1c4={'where':_0x351b30[_0x9e00('0x37')]};return db[_0x9e00('0x2a')][_0x9e00('0x1d')](_0x31d1c4)['then'](function(_0x40ea5b){_0x4fc9da['count']=_0x40ea5b;if(_0x418d06['query']['includeAll']){_0x351b30['include']=[{'all':!![]}];}return db[_0x9e00('0x2a')][_0x9e00('0x3d')](_0x351b30);})[_0x9e00('0x25')](function(_0x27ed48){_0x4fc9da[_0x9e00('0x3e')]=_0x27ed48;return _0x4fc9da;})['then'](respondWithFilteredResult(_0xd88357,_0x351b30))['catch'](handleError(_0xd88357,null));};exports[_0x9e00('0x3f')]=function(_0x25cffb,_0x30e895){var _0xfeef95={'raw':![],'where':{'id':_0x25cffb['params']['id']}},_0x1d889b={};_0x1d889b[_0x9e00('0x2e')]=_[_0x9e00('0x40')](db['SalesforceConfiguration'][_0x9e00('0x41')]);_0x1d889b[_0x9e00('0x2f')]=_[_0x9e00('0x40')](_0x25cffb[_0x9e00('0x2f')]);_0x1d889b[_0x9e00('0x30')]=_[_0x9e00('0x31')](_0x1d889b['model'],_0x1d889b['query']);_0xfeef95[_0x9e00('0x32')]=_[_0x9e00('0x31')](_0x1d889b[_0x9e00('0x2e')],qs[_0x9e00('0x33')](_0x25cffb[_0x9e00('0x2f')][_0x9e00('0x33')]));_0xfeef95[_0x9e00('0x32')]=_0xfeef95[_0x9e00('0x32')][_0x9e00('0x34')]?_0xfeef95['attributes']:_0x1d889b[_0x9e00('0x2e')];if(_0x25cffb[_0x9e00('0x2f')][_0x9e00('0x42')]){_0xfeef95[_0x9e00('0x43')]=[{'all':!![]}];}_0xfeef95=_[_0x9e00('0x3b')]({},_0xfeef95,_0x25cffb['options']);return db['SalesforceConfiguration'][_0x9e00('0x44')](_0xfeef95)[_0x9e00('0x25')](handleEntityNotFound(_0x30e895,null))[_0x9e00('0x25')](respondWithResult(_0x30e895,null))[_0x9e00('0x45')](handleError(_0x30e895,null));};exports[_0x9e00('0x46')]=function(_0x817961,_0x47c646){return db[_0x9e00('0x2a')][_0x9e00('0x46')](_0x817961[_0x9e00('0x47')],{})['then'](respondWithResult(_0x47c646,0xc9))[_0x9e00('0x45')](handleError(_0x47c646,null));};exports['update']=function(_0x41bd72,_0x12dc78){if(_0x41bd72['body']['id']){delete _0x41bd72[_0x9e00('0x47')]['id'];}return db[_0x9e00('0x2a')]['find']({'where':{'id':_0x41bd72[_0x9e00('0x48')]['id']}})['then'](handleEntityNotFound(_0x12dc78,null))[_0x9e00('0x25')](saveUpdates(_0x41bd72['body'],null))[_0x9e00('0x25')](respondWithResult(_0x12dc78,null))[_0x9e00('0x45')](handleError(_0x12dc78,null));};exports[_0x9e00('0x24')]=function(_0x35a9fe,_0x5acd59){return db['SalesforceConfiguration'][_0x9e00('0x44')]({'where':{'id':_0x35a9fe['params']['id']}})[_0x9e00('0x25')](handleEntityNotFound(_0x5acd59,null))[_0x9e00('0x25')](removeEntity(_0x5acd59,null))[_0x9e00('0x45')](handleError(_0x5acd59,null));};exports['getFields']=function(_0x526b00,_0x424e37,_0x42b0e5){var _0x502f4d={};var _0x5a5d73={};var _0x52459e;var _0x3d2e9a;return db[_0x9e00('0x2a')][_0x9e00('0x49')]({'where':{'id':_0x526b00['params']['id']}})[_0x9e00('0x25')](handleEntityNotFound(_0x424e37,null))[_0x9e00('0x25')](function(_0xa961db){if(_0xa961db){_0x52459e=_0xa961db;_0x5a5d73[_0x9e00('0x2e')]=_['keys'](db[_0x9e00('0x4a')]['rawAttributes']);_0x5a5d73['query']=_['keys'](_0x526b00[_0x9e00('0x2f')]);_0x5a5d73['filters']=_[_0x9e00('0x31')](_0x5a5d73[_0x9e00('0x2e')],_0x5a5d73[_0x9e00('0x2f')]);_0x502f4d[_0x9e00('0x32')]=_[_0x9e00('0x31')](_0x5a5d73[_0x9e00('0x2e')],qs[_0x9e00('0x33')](_0x526b00[_0x9e00('0x2f')][_0x9e00('0x33')]));_0x502f4d['attributes']=_0x502f4d[_0x9e00('0x32')][_0x9e00('0x34')]?_0x502f4d[_0x9e00('0x32')]:_0x5a5d73[_0x9e00('0x2e')];_0x502f4d['order']=qs[_0x9e00('0x36')](_0x526b00[_0x9e00('0x2f')]['sort']);_0x502f4d[_0x9e00('0x37')]=qs['filters'](_[_0x9e00('0x38')](_0x526b00[_0x9e00('0x2f')],_0x5a5d73[_0x9e00('0x30')]));if(_0x526b00[_0x9e00('0x2f')][_0x9e00('0x39')]){_0x502f4d[_0x9e00('0x37')]=_[_0x9e00('0x3b')](_0x502f4d[_0x9e00('0x37')],{'$or':_[_0x9e00('0x29')](_0x502f4d[_0x9e00('0x32')],function(_0x190820){var _0x1e3218={};_0x1e3218[_0x190820]={'$like':'%'+_0x526b00[_0x9e00('0x2f')][_0x9e00('0x39')]+'%'};return _0x1e3218;})});}_0x502f4d=_[_0x9e00('0x3b')]({},_0x502f4d,_0x526b00['options']);return _0x52459e['getFields'](_0x502f4d);}})['then'](function(_0x5f0c2e){if(_0x5f0c2e){_0x3d2e9a=_0x5f0c2e[_0x9e00('0x34')];if(!_0x526b00['query'][_0x9e00('0x4b')](_0x9e00('0x35'))){_0x502f4d[_0x9e00('0x1e')]=qs[_0x9e00('0x1e')](_0x526b00[_0x9e00('0x2f')][_0x9e00('0x1e')]);_0x502f4d[_0x9e00('0x1c')]=qs[_0x9e00('0x1c')](_0x526b00['query'][_0x9e00('0x1c')]);}return _0x52459e[_0x9e00('0x4c')](_0x502f4d);}})['then'](function(_0x53b224){if(_0x53b224){return _0x53b224?{'count':_0x3d2e9a,'rows':_0x53b224}:null;}})['then'](respondWithResult(_0x424e37,null))[_0x9e00('0x45')](handleError(_0x424e37,null));};exports[_0x9e00('0x4d')]=function(_0x4b08f3,_0x12984c,_0x1b0cf8){var _0x4c5c0a={};var _0x18a849={};var _0x1a6c8c;var _0x506452;return db[_0x9e00('0x2a')]['findOne']({'where':{'id':_0x4b08f3[_0x9e00('0x48')]['id']}})['then'](handleEntityNotFound(_0x12984c,null))[_0x9e00('0x25')](function(_0x2bdc4b){if(_0x2bdc4b){_0x1a6c8c=_0x2bdc4b;_0x18a849[_0x9e00('0x2e')]=_[_0x9e00('0x40')](db[_0x9e00('0x4a')][_0x9e00('0x41')]);_0x18a849[_0x9e00('0x2f')]=_['keys'](_0x4b08f3[_0x9e00('0x2f')]);_0x18a849['filters']=_[_0x9e00('0x31')](_0x18a849[_0x9e00('0x2e')],_0x18a849['query']);_0x4c5c0a[_0x9e00('0x32')]=_[_0x9e00('0x31')](_0x18a849['model'],qs[_0x9e00('0x33')](_0x4b08f3[_0x9e00('0x2f')][_0x9e00('0x33')]));_0x4c5c0a[_0x9e00('0x32')]=_0x4c5c0a['attributes'][_0x9e00('0x34')]?_0x4c5c0a['attributes']:_0x18a849[_0x9e00('0x2e')];_0x4c5c0a['order']=qs[_0x9e00('0x36')](_0x4b08f3['query']['sort']);_0x4c5c0a[_0x9e00('0x37')]=qs[_0x9e00('0x30')](_[_0x9e00('0x38')](_0x4b08f3[_0x9e00('0x2f')],_0x18a849[_0x9e00('0x30')]));if(_0x4b08f3['query'][_0x9e00('0x39')]){_0x4c5c0a[_0x9e00('0x37')]=_['merge'](_0x4c5c0a['where'],{'$or':_[_0x9e00('0x29')](_0x4c5c0a[_0x9e00('0x32')],function(_0x4c812e){var _0x4d6633={};_0x4d6633[_0x4c812e]={'$like':'%'+_0x4b08f3[_0x9e00('0x2f')][_0x9e00('0x39')]+'%'};return _0x4d6633;})});}_0x4c5c0a=_[_0x9e00('0x3b')]({},_0x4c5c0a,_0x4b08f3[_0x9e00('0x3c')]);return _0x1a6c8c[_0x9e00('0x4d')](_0x4c5c0a);}})[_0x9e00('0x25')](function(_0x11cb14){if(_0x11cb14){_0x506452=_0x11cb14[_0x9e00('0x34')];if(!_0x4b08f3[_0x9e00('0x2f')]['hasOwnProperty'](_0x9e00('0x35'))){_0x4c5c0a[_0x9e00('0x1e')]=qs[_0x9e00('0x1e')](_0x4b08f3[_0x9e00('0x2f')]['limit']);_0x4c5c0a[_0x9e00('0x1c')]=qs[_0x9e00('0x1c')](_0x4b08f3[_0x9e00('0x2f')][_0x9e00('0x1c')]);}return _0x1a6c8c[_0x9e00('0x4d')](_0x4c5c0a);}})['then'](function(_0x678776){if(_0x678776){return _0x678776?{'count':_0x506452,'rows':_0x678776}:null;}})[_0x9e00('0x25')](respondWithResult(_0x12984c,null))['catch'](handleError(_0x12984c,null));};exports[_0x9e00('0x4e')]=function(_0x396000,_0x4b1dd3,_0x39ee01){var _0x3a8f50={};var _0x538d22={};var _0x26b321;var _0x4f7bae;return db[_0x9e00('0x2a')][_0x9e00('0x49')]({'where':{'id':_0x396000[_0x9e00('0x48')]['id']}})['then'](handleEntityNotFound(_0x4b1dd3,null))[_0x9e00('0x25')](function(_0x2d2ba7){if(_0x2d2ba7){_0x26b321=_0x2d2ba7;_0x538d22[_0x9e00('0x2e')]=_[_0x9e00('0x40')](db[_0x9e00('0x4a')][_0x9e00('0x41')]);_0x538d22['query']=_[_0x9e00('0x40')](_0x396000[_0x9e00('0x2f')]);_0x538d22[_0x9e00('0x30')]=_[_0x9e00('0x31')](_0x538d22[_0x9e00('0x2e')],_0x538d22[_0x9e00('0x2f')]);_0x3a8f50[_0x9e00('0x32')]=_[_0x9e00('0x31')](_0x538d22['model'],qs['fields'](_0x396000[_0x9e00('0x2f')][_0x9e00('0x33')]));_0x3a8f50[_0x9e00('0x32')]=_0x3a8f50['attributes'][_0x9e00('0x34')]?_0x3a8f50[_0x9e00('0x32')]:_0x538d22['model'];_0x3a8f50[_0x9e00('0x4f')]=qs[_0x9e00('0x36')](_0x396000[_0x9e00('0x2f')]['sort']);_0x3a8f50[_0x9e00('0x37')]=qs[_0x9e00('0x30')](_[_0x9e00('0x38')](_0x396000[_0x9e00('0x2f')],_0x538d22['filters']));if(_0x396000[_0x9e00('0x2f')][_0x9e00('0x39')]){_0x3a8f50[_0x9e00('0x37')]=_['merge'](_0x3a8f50[_0x9e00('0x37')],{'$or':_['map'](_0x3a8f50['attributes'],function(_0x3e1c0f){var _0x26af74={};_0x26af74[_0x3e1c0f]={'$like':'%'+_0x396000[_0x9e00('0x2f')][_0x9e00('0x39')]+'%'};return _0x26af74;})});}_0x3a8f50=_[_0x9e00('0x3b')]({},_0x3a8f50,_0x396000[_0x9e00('0x3c')]);return _0x26b321[_0x9e00('0x4e')](_0x3a8f50);}})[_0x9e00('0x25')](function(_0x19fdee){if(_0x19fdee){_0x4f7bae=_0x19fdee[_0x9e00('0x34')];if(!_0x396000['query'][_0x9e00('0x4b')]('nolimit')){_0x3a8f50[_0x9e00('0x1e')]=qs[_0x9e00('0x1e')](_0x396000[_0x9e00('0x2f')]['limit']);_0x3a8f50[_0x9e00('0x1c')]=qs['offset'](_0x396000[_0x9e00('0x2f')][_0x9e00('0x1c')]);}return _0x26b321[_0x9e00('0x4e')](_0x3a8f50);}})[_0x9e00('0x25')](function(_0x816b26){if(_0x816b26){return _0x816b26?{'count':_0x4f7bae,'rows':_0x816b26}:null;}})[_0x9e00('0x25')](respondWithResult(_0x4b1dd3,null))[_0x9e00('0x45')](handleError(_0x4b1dd3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f1d=['./intSalesforceConfiguration.attributes','exports','define','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf'];(function(_0x3f840e,_0x9907ed){var _0x58c2b4=function(_0xba65ff){while(--_0xba65ff){_0x3f840e['push'](_0x3f840e['shift']());}};_0x58c2b4(++_0x9907ed);}(_0x6f1d,0x9d));var _0xd6f1=function(_0x25a21d,_0x4da983){_0x25a21d=_0x25a21d-0x0;var _0x409073=_0x6f1d[_0x25a21d];return _0x409073;};'use strict';var _=require(_0xd6f1('0x0'));var util=require(_0xd6f1('0x1'));var logger=require(_0xd6f1('0x2'))(_0xd6f1('0x3'));var moment=require(_0xd6f1('0x4'));var BPromise=require(_0xd6f1('0x5'));var rp=require(_0xd6f1('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xd6f1('0x7'));var config=require('../../config/environment');var attributes=require(_0xd6f1('0x8'));module[_0xd6f1('0x9')]=function(_0x5907cd,_0x3f4ffd){return _0x5907cd[_0xd6f1('0xa')]('SalesforceConfiguration',attributes,{'tableName':'int_salesforce_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe856=['bluebird','request-promise','rimraf','../../config/environment','./intSalesforceConfiguration.attributes','define','SalesforceConfiguration','int_salesforce_configurations','util','../../config/logger'];(function(_0x188069,_0x3a1091){var _0x2456b1=function(_0x5bfb7a){while(--_0x5bfb7a){_0x188069['push'](_0x188069['shift']());}};_0x2456b1(++_0x3a1091);}(_0xe856,0x198));var _0x6e85=function(_0xa148b7,_0x2f3eb2){_0xa148b7=_0xa148b7-0x0;var _0x51efd3=_0xe856[_0xa148b7];return _0x51efd3;};'use strict';var _=require('lodash');var util=require(_0x6e85('0x0'));var logger=require(_0x6e85('0x1'))('api');var moment=require('moment');var BPromise=require(_0x6e85('0x2'));var rp=require(_0x6e85('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x6e85('0x4'));var config=require(_0x6e85('0x5'));var attributes=require(_0x6e85('0x6'));module['exports']=function(_0x289dda,_0xb58105){return _0x289dda[_0x6e85('0x7')](_0x6e85('0x8'),attributes,{'tableName':_0x6e85('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd7d=['SalesforceConfiguration,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','info'];(function(_0x3d5c62,_0x3da224){var _0x45ea66=function(_0x4b9fb6){while(--_0x4b9fb6){_0x3d5c62['push'](_0x3d5c62['shift']());}};_0x45ea66(++_0x3da224);}(_0xdd7d,0xc5));var _0xddd7=function(_0x278d7,_0x3a4d16){_0x278d7=_0x278d7-0x0;var _0x5a0cad=_0xdd7d[_0x278d7];return _0x5a0cad;};'use strict';var _=require(_0xddd7('0x0'));var util=require(_0xddd7('0x1'));var moment=require(_0xddd7('0x2'));var BPromise=require(_0xddd7('0x3'));var rs=require(_0xddd7('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xddd7('0x5'));var logger=require(_0xddd7('0x6'))(_0xddd7('0x7'));var config=require(_0xddd7('0x8'));var jayson=require(_0xddd7('0x9'));var client=jayson['client'][_0xddd7('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x35f62a,_0x4a6cb0,_0x15b3cb){return new BPromise(function(_0x306e7b,_0x36b584){return client[_0xddd7('0xb')](_0x35f62a,_0x15b3cb)['then'](function(_0x2f4bcd){logger[_0xddd7('0xc')](_0xddd7('0xd'),_0x4a6cb0,_0xddd7('0xe'));logger['debug']('SalesforceConfiguration,\x20%s,\x20%s,\x20%s',_0x4a6cb0,_0xddd7('0xe'),JSON[_0xddd7('0xf')](_0x2f4bcd));if(_0x2f4bcd[_0xddd7('0x10')]){if(_0x2f4bcd[_0xddd7('0x10')][_0xddd7('0x11')]===0x1f4){logger[_0xddd7('0x10')](_0xddd7('0xd'),_0x4a6cb0,_0x2f4bcd['error']['message']);return _0x36b584(_0x2f4bcd[_0xddd7('0x10')]['message']);}logger[_0xddd7('0x10')](_0xddd7('0xd'),_0x4a6cb0,_0x2f4bcd[_0xddd7('0x10')]['message']);return _0x306e7b(_0x2f4bcd['error'][_0xddd7('0x12')]);}else{logger[_0xddd7('0xc')](_0xddd7('0xd'),_0x4a6cb0,_0xddd7('0xe'));_0x306e7b(_0x2f4bcd[_0xddd7('0x13')][_0xddd7('0x12')]);}})[_0xddd7('0x14')](function(_0x20df28){logger['error']('SalesforceConfiguration,\x20%s,\x20%s',_0x4a6cb0,_0x20df28);_0x36b584(_0x20df28);});});}
\ No newline at end of file
+var _0xd33c=['bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','http','request','info','SalesforceConfiguration,\x20%s,\x20%s','request\x20sent','error','code','message','catch','lodash','moment'];(function(_0x140202,_0x4245c7){var _0x3037c2=function(_0x525d19){while(--_0x525d19){_0x140202['push'](_0x140202['shift']());}};_0x3037c2(++_0x4245c7);}(_0xd33c,0x19c));var _0xcd33=function(_0x397cfb,_0xb8f317){_0x397cfb=_0x397cfb-0x0;var _0x15fed9=_0xd33c[_0x397cfb];return _0x15fed9;};'use strict';var _=require(_0xcd33('0x0'));var util=require('util');var moment=require(_0xcd33('0x1'));var BPromise=require(_0xcd33('0x2'));var rs=require(_0xcd33('0x3'));var fs=require('fs');var Redis=require(_0xcd33('0x4'));var db=require(_0xcd33('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xcd33('0x6'))('rpc');var config=require(_0xcd33('0x7'));var jayson=require(_0xcd33('0x8'));var client=jayson['client'][_0xcd33('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3e6379,_0x57a812,_0x32da47){return new BPromise(function(_0x172d2f,_0x13ff61){return client[_0xcd33('0xa')](_0x3e6379,_0x32da47)['then'](function(_0xfaa483){logger[_0xcd33('0xb')](_0xcd33('0xc'),_0x57a812,_0xcd33('0xd'));logger['debug']('SalesforceConfiguration,\x20%s,\x20%s,\x20%s',_0x57a812,_0xcd33('0xd'),JSON['stringify'](_0xfaa483));if(_0xfaa483[_0xcd33('0xe')]){if(_0xfaa483[_0xcd33('0xe')][_0xcd33('0xf')]===0x1f4){logger[_0xcd33('0xe')](_0xcd33('0xc'),_0x57a812,_0xfaa483[_0xcd33('0xe')][_0xcd33('0x10')]);return _0x13ff61(_0xfaa483[_0xcd33('0xe')][_0xcd33('0x10')]);}logger[_0xcd33('0xe')](_0xcd33('0xc'),_0x57a812,_0xfaa483[_0xcd33('0xe')]['message']);return _0x172d2f(_0xfaa483[_0xcd33('0xe')][_0xcd33('0x10')]);}else{logger[_0xcd33('0xb')]('SalesforceConfiguration,\x20%s,\x20%s',_0x57a812,'request\x20sent');_0x172d2f(_0xfaa483['result'][_0xcd33('0x10')]);}})[_0xcd33('0x11')](function(_0x2cf357){logger[_0xcd33('0xe')](_0xcd33('0xc'),_0x57a812,_0x2cf357);_0x13ff61(_0x2cf357);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x37e3=['delete','destroy','multer','util','path','connect-timeout','Router','../../components/interaction/service','../../config/environment','./intSalesforceField.controller','get','isAuthenticated','index','/:id','show','post','create','put','update'];(function(_0xaa0309,_0x1c8008){var _0x5de7ce=function(_0x3aa6ae){while(--_0x3aa6ae){_0xaa0309['push'](_0xaa0309['shift']());}};_0x5de7ce(++_0x1c8008);}(_0x37e3,0xe6));var _0x337e=function(_0x1e5198,_0x4db672){_0x1e5198=_0x1e5198-0x0;var _0x53e1ba=_0x37e3[_0x1e5198];return _0x53e1ba;};'use strict';var multer=require(_0x337e('0x0'));var util=require(_0x337e('0x1'));var path=require(_0x337e('0x2'));var timeout=require(_0x337e('0x3'));var express=require('express');var router=express[_0x337e('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x337e('0x5'));var config=require(_0x337e('0x6'));var controller=require(_0x337e('0x7'));router[_0x337e('0x8')]('/',auth[_0x337e('0x9')](),controller[_0x337e('0xa')]);router['get'](_0x337e('0xb'),auth[_0x337e('0x9')](),controller[_0x337e('0xc')]);router[_0x337e('0xd')]('/',auth[_0x337e('0x9')](),controller[_0x337e('0xe')]);router[_0x337e('0xf')](_0x337e('0xb'),auth[_0x337e('0x9')](),controller[_0x337e('0x10')]);router[_0x337e('0x11')](_0x337e('0xb'),auth['isAuthenticated'](),controller[_0x337e('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0x4c63=['../../config/environment','get','index','/:id','isAuthenticated','post','delete','destroy','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4c63,0x189));var _0x34c6=function(_0x6b715e,_0x43a807){_0x6b715e=_0x6b715e-0x0;var _0x118409=_0x4c63[_0x6b715e];return _0x118409;};'use strict';var multer=require(_0x34c6('0x0'));var util=require('util');var path=require(_0x34c6('0x1'));var timeout=require(_0x34c6('0x2'));var express=require(_0x34c6('0x3'));var router=express[_0x34c6('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x34c6('0x5'));var interaction=require(_0x34c6('0x6'));var config=require(_0x34c6('0x7'));var controller=require('./intSalesforceField.controller');router[_0x34c6('0x8')]('/',auth['isAuthenticated'](),controller[_0x34c6('0x9')]);router['get'](_0x34c6('0xa'),auth[_0x34c6('0xb')](),controller['show']);router[_0x34c6('0xc')]('/',auth[_0x34c6('0xb')](),controller['create']);router['put'](_0x34c6('0xa'),auth[_0x34c6('0xb')](),controller['update']);router[_0x34c6('0xd')]('/:id',auth[_0x34c6('0xb')](),controller[_0x34c6('0xe')]);module[_0x34c6('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x435a=['STRING','variable','sequelize','exports','ENUM','string','customVariable','picklist'];(function(_0x3faac1,_0x226f7f){var _0x488342=function(_0x3670a4){while(--_0x3670a4){_0x3faac1['push'](_0x3faac1['shift']());}};_0x488342(++_0x226f7f);}(_0x435a,0xb2));var _0xa435=function(_0x5bc95c,_0xfed759){_0x5bc95c=_0x5bc95c-0x0;var _0x3721fc=_0x435a[_0x5bc95c];return _0x3721fc;};'use strict';var Sequelize=require(_0xa435('0x0'));module[_0xa435('0x1')]={'type':{'type':Sequelize[_0xa435('0x2')](_0xa435('0x3'),'variable',_0xa435('0x4'),'keyValue',_0xa435('0x5')),'defaultValue':_0xa435('0x3')},'content':{'type':Sequelize[_0xa435('0x6')]},'key':{'type':Sequelize[_0xa435('0x6')]},'keyType':{'type':Sequelize[_0xa435('0x2')](_0xa435('0x3'),_0xa435('0x7'),'customVariable')},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'variableName':{'type':Sequelize[_0xa435('0x6')]}};
\ No newline at end of file
+var _0xc928=['string','variable','keyValue','STRING','ENUM','sequelize','exports'];(function(_0x4afac5,_0x1ab4ed){var _0x2404b3=function(_0x5c700b){while(--_0x5c700b){_0x4afac5['push'](_0x4afac5['shift']());}};_0x2404b3(++_0x1ab4ed);}(_0xc928,0x75));var _0x8c92=function(_0x18ef90,_0xa5e478){_0x18ef90=_0x18ef90-0x0;var _0x2e3732=_0xc928[_0x18ef90];return _0x2e3732;};'use strict';var Sequelize=require(_0x8c92('0x0'));module[_0x8c92('0x1')]={'type':{'type':Sequelize['ENUM'](_0x8c92('0x2'),_0x8c92('0x3'),'customVariable',_0x8c92('0x4'),'picklist'),'defaultValue':'string'},'content':{'type':Sequelize[_0x8c92('0x5')]},'key':{'type':Sequelize[_0x8c92('0x5')]},'keyType':{'type':Sequelize[_0x8c92('0x6')]('string',_0x8c92('0x3'),'customVariable')},'keyContent':{'type':Sequelize[_0x8c92('0x5')]},'idField':{'type':Sequelize['STRING']},'variableName':{'type':Sequelize[_0x8c92('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x590e=['keys','model','query','intersection','fields','attributes','hasOwnProperty','order','where','pick','filters','filter','merge','VIRTUAL','options','includeAll','findAll','rows','then','catch','include','find','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','sox','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','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','save','update','destroy','error','name','send','index','map','SalesforceField','rawAttributes','fieldName','type'];(function(_0x47beda,_0xf71fef){var _0x3a744f=function(_0x461e63){while(--_0x461e63){_0x47beda['push'](_0x47beda['shift']());}};_0x3a744f(++_0xf71fef);}(_0x590e,0xab));var _0xe590=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x590e[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0xe590('0x0'));var rimraf=require(_0xe590('0x1'));var zipdir=require(_0xe590('0x2'));var jsonpatch=require(_0xe590('0x3'));var rp=require(_0xe590('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe590('0x5'));var util=require(_0xe590('0x6'));var path=require('path');var sox=require(_0xe590('0x7'));var csv=require('to-csv');var ejs=require(_0xe590('0x8'));var fs=require('fs');var fs_extra=require(_0xe590('0x9'));var _=require(_0xe590('0xa'));var squel=require(_0xe590('0xb'));var crypto=require(_0xe590('0xc'));var jsforce=require(_0xe590('0xd'));var deskjs=require(_0xe590('0xe'));var toCsv=require('to-csv');var querystring=require(_0xe590('0xf'));var Papa=require('papaparse');var Redis=require(_0xe590('0x10'));var authService=require(_0xe590('0x11'));var qs=require(_0xe590('0x12'));var as=require(_0xe590('0x13'));var hardwareService=require(_0xe590('0x14'));var logger=require('../../config/logger')(_0xe590('0x15'));var utils=require(_0xe590('0x16'));var config=require(_0xe590('0x17'));var licenseUtil=require(_0xe590('0x18'));var db=require(_0xe590('0x19'))['db'];function respondWithStatusCode(_0xf9a24,_0x3c7133){_0x3c7133=_0x3c7133||0xcc;return function(_0x11d908){if(_0x11d908){return _0xf9a24[_0xe590('0x1a')](_0x3c7133);}return _0xf9a24['status'](_0x3c7133)[_0xe590('0x1b')]();};}function respondWithResult(_0x7fce21,_0x516f6){_0x516f6=_0x516f6||0xc8;return function(_0x58bd04){if(_0x58bd04){return _0x7fce21[_0xe590('0x1c')](_0x516f6)[_0xe590('0x1d')](_0x58bd04);}};}function respondWithFilteredResult(_0x309273,_0x59428f){return function(_0x236593){if(_0x236593){var _0x35d066=typeof _0x59428f[_0xe590('0x1e')]===_0xe590('0x1f')&&typeof _0x59428f[_0xe590('0x20')]==='undefined';var _0x133196=_0x236593[_0xe590('0x21')];var _0x5134be=_0x35d066?0x0:_0x59428f[_0xe590('0x1e')];var _0x4b187e=_0x35d066?_0x236593[_0xe590('0x21')]:_0x59428f[_0xe590('0x1e')]+_0x59428f[_0xe590('0x20')];var _0x4ed812;if(_0x4b187e>=_0x133196){_0x4b187e=_0x133196;_0x4ed812=0xc8;}else{_0x4ed812=0xce;}_0x309273['status'](_0x4ed812);return _0x309273[_0xe590('0x22')](_0xe590('0x23'),_0x5134be+'-'+_0x4b187e+'/'+_0x133196)['json'](_0x236593);}return null;};}function patchUpdates(_0x154a17){return function(_0xd5089a){try{jsonpatch['apply'](_0xd5089a,_0x154a17,!![]);}catch(_0x4ef7fc){return BPromise['reject'](_0x4ef7fc);}return _0xd5089a[_0xe590('0x24')]();};}function saveUpdates(_0x787178,_0x1c0414){return function(_0x17b6ce){if(_0x17b6ce){return _0x17b6ce[_0xe590('0x25')](_0x787178)['then'](function(_0x349b64){return _0x349b64;});}return null;};}function removeEntity(_0x43c5d7,_0x191180){return function(_0x13d952){if(_0x13d952){return _0x13d952[_0xe590('0x26')]()['then'](function(){_0x43c5d7[_0xe590('0x1c')](0xcc)[_0xe590('0x1b')]();});}};}function handleEntityNotFound(_0x20bb5f,_0x47b888){return function(_0x1cc26a){if(!_0x1cc26a){_0x20bb5f[_0xe590('0x1a')](0x194);}return _0x1cc26a;};}function handleError(_0x32b8bd,_0x3108fd){_0x3108fd=_0x3108fd||0x1f4;return function(_0x5c8c90){logger[_0xe590('0x27')](_0x5c8c90['stack']);if(_0x5c8c90[_0xe590('0x28')]){delete _0x5c8c90[_0xe590('0x28')];}_0x32b8bd[_0xe590('0x1c')](_0x3108fd)[_0xe590('0x29')](_0x5c8c90);};}exports[_0xe590('0x2a')]=function(_0x2b1a08,_0x49b47e){var _0x2a7f23={},_0x1e35bb={},_0x14367e={'count':0x0,'rows':[]};var _0x1e045a=_[_0xe590('0x2b')](db[_0xe590('0x2c')][_0xe590('0x2d')],function(_0x487a55){return{'name':_0x487a55[_0xe590('0x2e')],'type':_0x487a55[_0xe590('0x2f')]['key']};});_0x1e35bb['model']=_[_0xe590('0x2b')](_0x1e045a,_0xe590('0x28'));_0x1e35bb['query']=_[_0xe590('0x30')](_0x2b1a08['query']);_0x1e35bb['filters']=_['intersection'](_0x1e35bb[_0xe590('0x31')],_0x1e35bb[_0xe590('0x32')]);_0x2a7f23['attributes']=_[_0xe590('0x33')](_0x1e35bb[_0xe590('0x31')],qs['fields'](_0x2b1a08[_0xe590('0x32')][_0xe590('0x34')]));_0x2a7f23[_0xe590('0x35')]=_0x2a7f23[_0xe590('0x35')]['length']?_0x2a7f23['attributes']:_0x1e35bb['model'];if(!_0x2b1a08['query'][_0xe590('0x36')]('nolimit')){_0x2a7f23[_0xe590('0x20')]=qs['limit'](_0x2b1a08[_0xe590('0x32')][_0xe590('0x20')]);_0x2a7f23['offset']=qs[_0xe590('0x1e')](_0x2b1a08[_0xe590('0x32')]['offset']);}_0x2a7f23[_0xe590('0x37')]=qs['sort'](_0x2b1a08[_0xe590('0x32')]['sort']);_0x2a7f23[_0xe590('0x38')]=qs['filters'](_[_0xe590('0x39')](_0x2b1a08['query'],_0x1e35bb[_0xe590('0x3a')]),_0x1e045a);if(_0x2b1a08[_0xe590('0x32')][_0xe590('0x3b')]){_0x2a7f23[_0xe590('0x38')]=_[_0xe590('0x3c')](_0x2a7f23['where'],{'$or':_[_0xe590('0x2b')](_0x1e045a,function(_0x220fae){if(_0x220fae[_0xe590('0x2f')]!==_0xe590('0x3d')){var _0x48b785={};_0x48b785[_0x220fae[_0xe590('0x28')]]={'$like':'%'+_0x2b1a08[_0xe590('0x32')][_0xe590('0x3b')]+'%'};return _0x48b785;}})});}_0x2a7f23=_[_0xe590('0x3c')]({},_0x2a7f23,_0x2b1a08[_0xe590('0x3e')]);var _0x412cea={'where':_0x2a7f23[_0xe590('0x38')]};return db[_0xe590('0x2c')][_0xe590('0x21')](_0x412cea)['then'](function(_0x3b55c6){_0x14367e[_0xe590('0x21')]=_0x3b55c6;if(_0x2b1a08[_0xe590('0x32')][_0xe590('0x3f')]){_0x2a7f23['include']=[{'all':!![]}];}return db[_0xe590('0x2c')][_0xe590('0x40')](_0x2a7f23);})['then'](function(_0x6ecadd){_0x14367e[_0xe590('0x41')]=_0x6ecadd;return _0x14367e;})[_0xe590('0x42')](respondWithFilteredResult(_0x49b47e,_0x2a7f23))[_0xe590('0x43')](handleError(_0x49b47e,null));};exports['show']=function(_0xe8f344,_0x19bc01){var _0x377c63={'raw':!![],'where':{'id':_0xe8f344['params']['id']}},_0x156cce={};_0x156cce[_0xe590('0x31')]=_[_0xe590('0x30')](db[_0xe590('0x2c')][_0xe590('0x2d')]);_0x156cce[_0xe590('0x32')]=_[_0xe590('0x30')](_0xe8f344[_0xe590('0x32')]);_0x156cce[_0xe590('0x3a')]=_[_0xe590('0x33')](_0x156cce['model'],_0x156cce['query']);_0x377c63['attributes']=_[_0xe590('0x33')](_0x156cce[_0xe590('0x31')],qs[_0xe590('0x34')](_0xe8f344[_0xe590('0x32')][_0xe590('0x34')]));_0x377c63[_0xe590('0x35')]=_0x377c63[_0xe590('0x35')]['length']?_0x377c63[_0xe590('0x35')]:_0x156cce[_0xe590('0x31')];if(_0xe8f344[_0xe590('0x32')][_0xe590('0x3f')]){_0x377c63[_0xe590('0x44')]=[{'all':!![]}];}_0x377c63=_[_0xe590('0x3c')]({},_0x377c63,_0xe8f344['options']);return db[_0xe590('0x2c')][_0xe590('0x45')](_0x377c63)['then'](handleEntityNotFound(_0x19bc01,null))[_0xe590('0x42')](respondWithResult(_0x19bc01,null))[_0xe590('0x43')](handleError(_0x19bc01,null));};exports[_0xe590('0x46')]=function(_0x887c78,_0x16a9e9){return db[_0xe590('0x2c')][_0xe590('0x46')](_0x887c78[_0xe590('0x47')],{})[_0xe590('0x42')](respondWithResult(_0x16a9e9,0xc9))[_0xe590('0x43')](handleError(_0x16a9e9,null));};exports[_0xe590('0x25')]=function(_0x5b405f,_0x159e44){if(_0x5b405f[_0xe590('0x47')]['id']){delete _0x5b405f[_0xe590('0x47')]['id'];}return db[_0xe590('0x2c')][_0xe590('0x45')]({'where':{'id':_0x5b405f[_0xe590('0x48')]['id']}})[_0xe590('0x42')](handleEntityNotFound(_0x159e44,null))['then'](saveUpdates(_0x5b405f[_0xe590('0x47')],null))[_0xe590('0x42')](respondWithResult(_0x159e44,null))[_0xe590('0x43')](handleError(_0x159e44,null));};exports[_0xe590('0x26')]=function(_0x38ca2a,_0x1af0ac){return db['SalesforceField'][_0xe590('0x45')]({'where':{'id':_0x38ca2a['params']['id']}})[_0xe590('0x42')](handleEntityNotFound(_0x1af0ac,null))[_0xe590('0x42')](removeEntity(_0x1af0ac,null))[_0xe590('0x43')](handleError(_0x1af0ac,null));};
\ No newline at end of file
+var _0x2b25=['findAll','show','params','rawAttributes','includeAll','include','find','catch','create','body','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','path','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/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','count','offset','limit','save','update','then','destroy','stack','name','send','SalesforceField','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','options'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2b25,0x16d));var _0x52b2=function(_0x31ec29,_0x58915c){_0x31ec29=_0x31ec29-0x0;var _0x3275fc=_0x2b25[_0x31ec29];return _0x3275fc;};'use strict';var emlformat=require(_0x52b2('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x52b2('0x1'));var jsonpatch=require(_0x52b2('0x2'));var rp=require(_0x52b2('0x3'));var moment=require(_0x52b2('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x52b2('0x5'));var util=require('util');var path=require(_0x52b2('0x6'));var sox=require(_0x52b2('0x7'));var csv=require(_0x52b2('0x8'));var ejs=require(_0x52b2('0x9'));var fs=require('fs');var fs_extra=require(_0x52b2('0xa'));var _=require(_0x52b2('0xb'));var squel=require(_0x52b2('0xc'));var crypto=require(_0x52b2('0xd'));var jsforce=require(_0x52b2('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x52b2('0x8'));var querystring=require(_0x52b2('0xf'));var Papa=require(_0x52b2('0x10'));var Redis=require('ioredis');var authService=require(_0x52b2('0x11'));var qs=require(_0x52b2('0x12'));var as=require(_0x52b2('0x13'));var hardwareService=require(_0x52b2('0x14'));var logger=require(_0x52b2('0x15'))(_0x52b2('0x16'));var utils=require(_0x52b2('0x17'));var config=require(_0x52b2('0x18'));var licenseUtil=require(_0x52b2('0x19'));var db=require(_0x52b2('0x1a'))['db'];function respondWithStatusCode(_0x6d0d4d,_0x37fa5d){_0x37fa5d=_0x37fa5d||0xcc;return function(_0xbdc3bd){if(_0xbdc3bd){return _0x6d0d4d[_0x52b2('0x1b')](_0x37fa5d);}return _0x6d0d4d[_0x52b2('0x1c')](_0x37fa5d)[_0x52b2('0x1d')]();};}function respondWithResult(_0x46888a,_0x58f46f){_0x58f46f=_0x58f46f||0xc8;return function(_0x4c3b13){if(_0x4c3b13){return _0x46888a[_0x52b2('0x1c')](_0x58f46f)[_0x52b2('0x1e')](_0x4c3b13);}};}function respondWithFilteredResult(_0x94f03e,_0x1eebe3){return function(_0x3e2047){if(_0x3e2047){var _0x33fcba=typeof _0x1eebe3['offset']===_0x52b2('0x1f')&&typeof _0x1eebe3['limit']==='undefined';var _0x216a64=_0x3e2047[_0x52b2('0x20')];var _0x20a249=_0x33fcba?0x0:_0x1eebe3[_0x52b2('0x21')];var _0x1d3a3a=_0x33fcba?_0x3e2047[_0x52b2('0x20')]:_0x1eebe3[_0x52b2('0x21')]+_0x1eebe3[_0x52b2('0x22')];var _0x3a9986;if(_0x1d3a3a>=_0x216a64){_0x1d3a3a=_0x216a64;_0x3a9986=0xc8;}else{_0x3a9986=0xce;}_0x94f03e[_0x52b2('0x1c')](_0x3a9986);return _0x94f03e['set']('Content-Range',_0x20a249+'-'+_0x1d3a3a+'/'+_0x216a64)[_0x52b2('0x1e')](_0x3e2047);}return null;};}function patchUpdates(_0x487e3e){return function(_0x4a34e6){try{jsonpatch['apply'](_0x4a34e6,_0x487e3e,!![]);}catch(_0x140c15){return BPromise['reject'](_0x140c15);}return _0x4a34e6[_0x52b2('0x23')]();};}function saveUpdates(_0x4a53e2,_0x25c4e8){return function(_0x2ad824){if(_0x2ad824){return _0x2ad824[_0x52b2('0x24')](_0x4a53e2)[_0x52b2('0x25')](function(_0x4a6ef0){return _0x4a6ef0;});}return null;};}function removeEntity(_0x45818d,_0x2de7d8){return function(_0x57e480){if(_0x57e480){return _0x57e480[_0x52b2('0x26')]()[_0x52b2('0x25')](function(){_0x45818d[_0x52b2('0x1c')](0xcc)[_0x52b2('0x1d')]();});}};}function handleEntityNotFound(_0x408eb3,_0x51135e){return function(_0x26cbf9){if(!_0x26cbf9){_0x408eb3['sendStatus'](0x194);}return _0x26cbf9;};}function handleError(_0x26b754,_0xbcbf1c){_0xbcbf1c=_0xbcbf1c||0x1f4;return function(_0x218ad4){logger['error'](_0x218ad4[_0x52b2('0x27')]);if(_0x218ad4[_0x52b2('0x28')]){delete _0x218ad4['name'];}_0x26b754[_0x52b2('0x1c')](_0xbcbf1c)[_0x52b2('0x29')](_0x218ad4);};}exports['index']=function(_0x58b51d,_0x3ee868){var _0x43197d={},_0xf0da94={},_0x19bd10={'count':0x0,'rows':[]};var _0x18131c=_['map'](db[_0x52b2('0x2a')]['rawAttributes'],function(_0x2e6754){return{'name':_0x2e6754[_0x52b2('0x2b')],'type':_0x2e6754['type'][_0x52b2('0x2c')]};});_0xf0da94[_0x52b2('0x2d')]=_[_0x52b2('0x2e')](_0x18131c,_0x52b2('0x28'));_0xf0da94[_0x52b2('0x2f')]=_[_0x52b2('0x30')](_0x58b51d[_0x52b2('0x2f')]);_0xf0da94[_0x52b2('0x31')]=_[_0x52b2('0x32')](_0xf0da94[_0x52b2('0x2d')],_0xf0da94[_0x52b2('0x2f')]);_0x43197d[_0x52b2('0x33')]=_[_0x52b2('0x32')](_0xf0da94[_0x52b2('0x2d')],qs['fields'](_0x58b51d[_0x52b2('0x2f')][_0x52b2('0x34')]));_0x43197d['attributes']=_0x43197d['attributes'][_0x52b2('0x35')]?_0x43197d[_0x52b2('0x33')]:_0xf0da94['model'];if(!_0x58b51d['query'][_0x52b2('0x36')](_0x52b2('0x37'))){_0x43197d[_0x52b2('0x22')]=qs[_0x52b2('0x22')](_0x58b51d['query']['limit']);_0x43197d[_0x52b2('0x21')]=qs['offset'](_0x58b51d[_0x52b2('0x2f')][_0x52b2('0x21')]);}_0x43197d['order']=qs[_0x52b2('0x38')](_0x58b51d[_0x52b2('0x2f')]['sort']);_0x43197d[_0x52b2('0x39')]=qs[_0x52b2('0x31')](_['pick'](_0x58b51d[_0x52b2('0x2f')],_0xf0da94['filters']),_0x18131c);if(_0x58b51d['query'][_0x52b2('0x3a')]){_0x43197d['where']=_[_0x52b2('0x3b')](_0x43197d[_0x52b2('0x39')],{'$or':_[_0x52b2('0x2e')](_0x18131c,function(_0x7dc2f5){if(_0x7dc2f5['type']!=='VIRTUAL'){var _0x16101c={};_0x16101c[_0x7dc2f5['name']]={'$like':'%'+_0x58b51d[_0x52b2('0x2f')][_0x52b2('0x3a')]+'%'};return _0x16101c;}})});}_0x43197d=_['merge']({},_0x43197d,_0x58b51d[_0x52b2('0x3c')]);var _0x3137c5={'where':_0x43197d[_0x52b2('0x39')]};return db[_0x52b2('0x2a')][_0x52b2('0x20')](_0x3137c5)[_0x52b2('0x25')](function(_0x4857c4){_0x19bd10[_0x52b2('0x20')]=_0x4857c4;if(_0x58b51d[_0x52b2('0x2f')]['includeAll']){_0x43197d['include']=[{'all':!![]}];}return db[_0x52b2('0x2a')][_0x52b2('0x3d')](_0x43197d);})[_0x52b2('0x25')](function(_0x1a7447){_0x19bd10['rows']=_0x1a7447;return _0x19bd10;})[_0x52b2('0x25')](respondWithFilteredResult(_0x3ee868,_0x43197d))['catch'](handleError(_0x3ee868,null));};exports[_0x52b2('0x3e')]=function(_0x172267,_0x2e0901){var _0x49d3b5={'raw':!![],'where':{'id':_0x172267[_0x52b2('0x3f')]['id']}},_0x20a4c0={};_0x20a4c0[_0x52b2('0x2d')]=_[_0x52b2('0x30')](db[_0x52b2('0x2a')][_0x52b2('0x40')]);_0x20a4c0['query']=_[_0x52b2('0x30')](_0x172267[_0x52b2('0x2f')]);_0x20a4c0['filters']=_[_0x52b2('0x32')](_0x20a4c0[_0x52b2('0x2d')],_0x20a4c0['query']);_0x49d3b5[_0x52b2('0x33')]=_[_0x52b2('0x32')](_0x20a4c0['model'],qs['fields'](_0x172267[_0x52b2('0x2f')][_0x52b2('0x34')]));_0x49d3b5['attributes']=_0x49d3b5[_0x52b2('0x33')][_0x52b2('0x35')]?_0x49d3b5[_0x52b2('0x33')]:_0x20a4c0['model'];if(_0x172267[_0x52b2('0x2f')][_0x52b2('0x41')]){_0x49d3b5[_0x52b2('0x42')]=[{'all':!![]}];}_0x49d3b5=_['merge']({},_0x49d3b5,_0x172267[_0x52b2('0x3c')]);return db[_0x52b2('0x2a')][_0x52b2('0x43')](_0x49d3b5)[_0x52b2('0x25')](handleEntityNotFound(_0x2e0901,null))[_0x52b2('0x25')](respondWithResult(_0x2e0901,null))[_0x52b2('0x44')](handleError(_0x2e0901,null));};exports[_0x52b2('0x45')]=function(_0x52cd9d,_0x166127){return db[_0x52b2('0x2a')][_0x52b2('0x45')](_0x52cd9d[_0x52b2('0x46')],{})[_0x52b2('0x25')](respondWithResult(_0x166127,0xc9))[_0x52b2('0x44')](handleError(_0x166127,null));};exports['update']=function(_0x2961fa,_0x2a4bcd){if(_0x2961fa[_0x52b2('0x46')]['id']){delete _0x2961fa['body']['id'];}return db[_0x52b2('0x2a')]['find']({'where':{'id':_0x2961fa['params']['id']}})['then'](handleEntityNotFound(_0x2a4bcd,null))[_0x52b2('0x25')](saveUpdates(_0x2961fa[_0x52b2('0x46')],null))['then'](respondWithResult(_0x2a4bcd,null))['catch'](handleError(_0x2a4bcd,null));};exports[_0x52b2('0x26')]=function(_0x119087,_0x505d88){return db['SalesforceField'][_0x52b2('0x43')]({'where':{'id':_0x119087[_0x52b2('0x3f')]['id']}})['then'](handleEntityNotFound(_0x505d88,null))[_0x52b2('0x25')](removeEntity(_0x505d88,null))[_0x52b2('0x44')](handleError(_0x505d88,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2844=['rimraf','../../config/environment','exports','define','int_salesforce_fields','salesforce_unique_index','idField','lodash','util','moment','bluebird'];(function(_0x5933a7,_0x1f8590){var _0x2165d6=function(_0x272c91){while(--_0x272c91){_0x5933a7['push'](_0x5933a7['shift']());}};_0x2165d6(++_0x1f8590);}(_0x2844,0x151));var _0x4284=function(_0x55f8b4,_0x43f30d){_0x55f8b4=_0x55f8b4-0x0;var _0x2475f9=_0x2844[_0x55f8b4];return _0x2475f9;};'use strict';var _=require(_0x4284('0x0'));var util=require(_0x4284('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x4284('0x2'));var BPromise=require(_0x4284('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x4284('0x4'));var config=require(_0x4284('0x5'));var attributes=require('./intSalesforceField.attributes');module[_0x4284('0x6')]=function(_0x3bf342,_0x262b13){return _0x3bf342[_0x4284('0x7')]('SalesforceField',attributes,{'tableName':_0x4284('0x8'),'paranoid':![],'indexes':[{'name':_0x4284('0x9'),'fields':[_0x4284('0xa'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xffdb=['int_salesforce_fields','salesforce_unique_index','idField','FieldId','lodash','util','../../config/logger','moment','bluebird','path','rimraf','../../config/environment','define','SalesforceField'];(function(_0x599e60,_0x5b6519){var _0x468e19=function(_0xcdfd97){while(--_0xcdfd97){_0x599e60['push'](_0x599e60['shift']());}};_0x468e19(++_0x5b6519);}(_0xffdb,0x1c4));var _0xbffd=function(_0x8c43de,_0x90ff31){_0x8c43de=_0x8c43de-0x0;var _0xa6591b=_0xffdb[_0x8c43de];return _0xa6591b;};'use strict';var _=require(_0xbffd('0x0'));var util=require(_0xbffd('0x1'));var logger=require(_0xbffd('0x2'))('api');var moment=require(_0xbffd('0x3'));var BPromise=require(_0xbffd('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xbffd('0x5'));var rimraf=require(_0xbffd('0x6'));var config=require(_0xbffd('0x7'));var attributes=require('./intSalesforceField.attributes');module['exports']=function(_0x2e4835,_0x3852a0){return _0x2e4835[_0xbffd('0x8')](_0xbffd('0x9'),attributes,{'tableName':_0xbffd('0xa'),'paranoid':![],'indexes':[{'name':_0xbffd('0xb'),'fields':[_0xbffd('0xc'),_0xbffd('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f92=['stringify','error','code','message','result','util','moment','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','then','info','SalesforceField,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x4e8286,_0x4eaeb4){var _0x44a440=function(_0x5e0907){while(--_0x5e0907){_0x4e8286['push'](_0x4e8286['shift']());}};_0x44a440(++_0x4eaeb4);}(_0x4f92,0x1f3));var _0x24f9=function(_0x5aa6a9,_0x3ae14c){_0x5aa6a9=_0x5aa6a9-0x0;var _0x119ce5=_0x4f92[_0x5aa6a9];return _0x119ce5;};'use strict';var _=require('lodash');var util=require(_0x24f9('0x0'));var moment=require(_0x24f9('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x24f9('0x2'));var db=require(_0x24f9('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x24f9('0x4'))(_0x24f9('0x5'));var config=require(_0x24f9('0x6'));var jayson=require(_0x24f9('0x7'));var client=jayson['client'][_0x24f9('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5eef63,_0x5bcb51,_0x109e75){return new BPromise(function(_0x1911cd,_0x4344e4){return client['request'](_0x5eef63,_0x109e75)[_0x24f9('0x9')](function(_0xe3556f){logger[_0x24f9('0xa')](_0x24f9('0xb'),_0x5bcb51,_0x24f9('0xc'));logger[_0x24f9('0xd')]('SalesforceField,\x20%s,\x20%s,\x20%s',_0x5bcb51,_0x24f9('0xc'),JSON[_0x24f9('0xe')](_0xe3556f));if(_0xe3556f[_0x24f9('0xf')]){if(_0xe3556f[_0x24f9('0xf')][_0x24f9('0x10')]===0x1f4){logger['error'](_0x24f9('0xb'),_0x5bcb51,_0xe3556f[_0x24f9('0xf')][_0x24f9('0x11')]);return _0x4344e4(_0xe3556f[_0x24f9('0xf')][_0x24f9('0x11')]);}logger[_0x24f9('0xf')]('SalesforceField,\x20%s,\x20%s',_0x5bcb51,_0xe3556f[_0x24f9('0xf')][_0x24f9('0x11')]);return _0x1911cd(_0xe3556f['error']['message']);}else{logger[_0x24f9('0xa')]('SalesforceField,\x20%s,\x20%s',_0x5bcb51,_0x24f9('0xc'));_0x1911cd(_0xe3556f[_0x24f9('0x12')][_0x24f9('0x11')]);}})['catch'](function(_0x5821c2){logger[_0x24f9('0xf')](_0x24f9('0xb'),_0x5bcb51,_0x5821c2);_0x4344e4(_0x5821c2);});});}
\ No newline at end of file
+var _0xe810=['request','then','info','request\x20sent','SalesforceField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','SalesforceField,\x20%s,\x20%s','result','catch','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','client'];(function(_0x501d0f,_0x4adf25){var _0x50cea4=function(_0x19b0fc){while(--_0x19b0fc){_0x501d0f['push'](_0x501d0f['shift']());}};_0x50cea4(++_0x4adf25);}(_0xe810,0x19b));var _0x0e81=function(_0x4565f4,_0x2a46c5){_0x4565f4=_0x4565f4-0x0;var _0x58a1c7=_0xe810[_0x4565f4];return _0x58a1c7;};'use strict';var _=require('lodash');var util=require(_0x0e81('0x0'));var moment=require(_0x0e81('0x1'));var BPromise=require(_0x0e81('0x2'));var rs=require(_0x0e81('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0e81('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x0e81('0x5'))(_0x0e81('0x6'));var config=require(_0x0e81('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x0e81('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4fa0cf,_0x40ce19,_0x2341b1){return new BPromise(function(_0xd1f473,_0x345e1a){return client[_0x0e81('0x9')](_0x4fa0cf,_0x2341b1)[_0x0e81('0xa')](function(_0x30669e){logger[_0x0e81('0xb')]('SalesforceField,\x20%s,\x20%s',_0x40ce19,_0x0e81('0xc'));logger['debug'](_0x0e81('0xd'),_0x40ce19,_0x0e81('0xc'),JSON[_0x0e81('0xe')](_0x30669e));if(_0x30669e[_0x0e81('0xf')]){if(_0x30669e[_0x0e81('0xf')][_0x0e81('0x10')]===0x1f4){logger[_0x0e81('0xf')]('SalesforceField,\x20%s,\x20%s',_0x40ce19,_0x30669e['error']['message']);return _0x345e1a(_0x30669e[_0x0e81('0xf')][_0x0e81('0x11')]);}logger[_0x0e81('0xf')](_0x0e81('0x12'),_0x40ce19,_0x30669e['error'][_0x0e81('0x11')]);return _0xd1f473(_0x30669e['error'][_0x0e81('0x11')]);}else{logger[_0x0e81('0xb')](_0x0e81('0x12'),_0x40ce19,_0x0e81('0xc'));_0xd1f473(_0x30669e[_0x0e81('0x13')][_0x0e81('0x11')]);}})[_0x0e81('0x14')](function(_0x42efc2){logger[_0x0e81('0xf')](_0x0e81('0x12'),_0x40ce19,_0x42efc2);_0x345e1a(_0x42efc2);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5137=['../../components/interaction/service','../../config/environment','./intServicenowAccount.controller','get','isAuthenticated','index','show','/:id/configurations','getConfigurations','create','post','addConfiguration','/:id','update','delete','destroy','exports','multer','path','connect-timeout','Router','fs-extra'];(function(_0x140fa8,_0x469809){var _0x1f5712=function(_0x5659d4){while(--_0x5659d4){_0x140fa8['push'](_0x140fa8['shift']());}};_0x1f5712(++_0x469809);}(_0x5137,0x1c9));var _0x7513=function(_0x5f45f0,_0x9f9837){_0x5f45f0=_0x5f45f0-0x0;var _0x8487d=_0x5137[_0x5f45f0];return _0x8487d;};'use strict';var multer=require(_0x7513('0x0'));var util=require('util');var path=require(_0x7513('0x1'));var timeout=require(_0x7513('0x2'));var express=require('express');var router=express[_0x7513('0x3')]();var fs_extra=require(_0x7513('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x7513('0x5'));var config=require(_0x7513('0x6'));var controller=require(_0x7513('0x7'));router[_0x7513('0x8')]('/',auth[_0x7513('0x9')](),controller[_0x7513('0xa')]);router['get']('/:id',auth['isAuthenticated'](),controller[_0x7513('0xb')]);router[_0x7513('0x8')](_0x7513('0xc'),auth[_0x7513('0x9')](),controller[_0x7513('0xd')]);router[_0x7513('0x8')]('/:id/fields',auth[_0x7513('0x9')](),controller['getFields']);router['post']('/',auth['isAuthenticated'](),controller[_0x7513('0xe')]);router[_0x7513('0xf')](_0x7513('0xc'),auth['isAuthenticated'](),controller[_0x7513('0x10')]);router['put'](_0x7513('0x11'),auth[_0x7513('0x9')](),controller[_0x7513('0x12')]);router[_0x7513('0x13')]('/:id',auth['isAuthenticated'](),controller[_0x7513('0x14')]);module[_0x7513('0x15')]=router;
\ No newline at end of file
+var _0x0c87=['fs-extra','../../components/auth/service','../../components/interaction/service','./intServicenowAccount.controller','get','index','/:id','isAuthenticated','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','addConfiguration','put','update','destroy','exports','multer','util','path','connect-timeout','express','Router'];(function(_0x2d2c16,_0x4e88b6){var _0x53f2fb=function(_0x6b6dac){while(--_0x6b6dac){_0x2d2c16['push'](_0x2d2c16['shift']());}};_0x53f2fb(++_0x4e88b6);}(_0x0c87,0x1d5));var _0x70c8=function(_0x190364,_0x223405){_0x190364=_0x190364-0x0;var _0x1a6974=_0x0c87[_0x190364];return _0x1a6974;};'use strict';var multer=require(_0x70c8('0x0'));var util=require(_0x70c8('0x1'));var path=require(_0x70c8('0x2'));var timeout=require(_0x70c8('0x3'));var express=require(_0x70c8('0x4'));var router=express[_0x70c8('0x5')]();var fs_extra=require(_0x70c8('0x6'));var auth=require(_0x70c8('0x7'));var interaction=require(_0x70c8('0x8'));var config=require('../../config/environment');var controller=require(_0x70c8('0x9'));router[_0x70c8('0xa')]('/',auth['isAuthenticated'](),controller[_0x70c8('0xb')]);router[_0x70c8('0xa')](_0x70c8('0xc'),auth[_0x70c8('0xd')](),controller[_0x70c8('0xe')]);router['get'](_0x70c8('0xf'),auth[_0x70c8('0xd')](),controller[_0x70c8('0x10')]);router[_0x70c8('0xa')](_0x70c8('0x11'),auth[_0x70c8('0xd')](),controller[_0x70c8('0x12')]);router[_0x70c8('0x13')]('/',auth['isAuthenticated'](),controller['create']);router[_0x70c8('0x13')](_0x70c8('0xf'),auth[_0x70c8('0xd')](),controller[_0x70c8('0x14')]);router[_0x70c8('0x15')](_0x70c8('0xc'),auth[_0x70c8('0xd')](),controller[_0x70c8('0x16')]);router['delete'](_0x70c8('0xc'),auth[_0x70c8('0xd')](),controller[_0x70c8('0x17')]);module[_0x70c8('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33d2=['remoteUri','sequelize','exports','STRING'];(function(_0xe66bd8,_0x5b6d8e){var _0x24c892=function(_0x2ec3d9){while(--_0x2ec3d9){_0xe66bd8['push'](_0xe66bd8['shift']());}};_0x24c892(++_0x5b6d8e);}(_0x33d2,0xa5));var _0x233d=function(_0xf31a,_0x5f5b89){_0xf31a=_0xf31a-0x0;var _0x4df458=_0x33d2[_0xf31a];return _0x4df458;};'use strict';var Sequelize=require(_0x233d('0x0'));module[_0x233d('0x1')]={'name':{'type':Sequelize[_0x233d('0x2')]},'description':{'type':Sequelize[_0x233d('0x2')]},'username':{'type':Sequelize[_0x233d('0x2')],'unique':'username'},'password':{'type':Sequelize[_0x233d('0x2')]},'email':{'type':Sequelize[_0x233d('0x2')]},'remoteUri':{'type':Sequelize[_0x233d('0x2')],'unique':_0x233d('0x3')},'serverUrl':{'type':Sequelize[_0x233d('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0x90a1=['sequelize','exports','STRING','username','remoteUri'];(function(_0x34cbf9,_0x400ef4){var _0x244a99=function(_0x437dda){while(--_0x437dda){_0x34cbf9['push'](_0x34cbf9['shift']());}};_0x244a99(++_0x400ef4);}(_0x90a1,0xff));var _0x190a=function(_0x5d6456,_0x58ecc7){_0x5d6456=_0x5d6456-0x0;var _0x4d66c1=_0x90a1[_0x5d6456];return _0x4d66c1;};'use strict';var Sequelize=require(_0x190a('0x0'));module[_0x190a('0x1')]={'name':{'type':Sequelize[_0x190a('0x2')]},'description':{'type':Sequelize[_0x190a('0x2')]},'username':{'type':Sequelize['STRING'],'unique':_0x190a('0x3')},'password':{'type':Sequelize[_0x190a('0x2')]},'email':{'type':Sequelize[_0x190a('0x2')]},'remoteUri':{'type':Sequelize[_0x190a('0x2')],'unique':_0x190a('0x4')},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd6a7=['comments','sla_due','approval','comments_and_work_notes','due_date','sys_mod_count','escalation','correlation_id','location','username','email','remoteUri','serverUrl','slice','substring','lastIndexOf','format','%s/api/now/table/','password','incident?sysparm_display_value=all','result','log','incident\x20table\x20objects','assign','remove','includes','internalType','all','TCL:\x20_object','TCL:\x20exports.getEntityFields\x20->\x20_objectsCustom','forEach','label','push','concat','ServiceNow\x20error:\x20','stack','boolean','True','true','false','value','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','querystring','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','end','name','send','index','ServicenowAccount','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','catch','show','options','create','body','find','params','getConfigurations','ServicenowConfiguration','rawAttributes','pick','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','getFields','made_sla','hold_reason','knowledge','close_code','incident_state','severity','category','parent','upon_reject','sys_updated_on','child_incidents','approval_history','number','resolved_by','sys_updated_by','opened_by','user_input','sys_created_on','sys_domain','sys_created_by','order','calendar_stc','closed_at','cmdb_ci','delivery_plan','impact','active','work_notes_list','business_service','priority','sys_domain_path','rfc','time_worked','expected_start','opened_at','business_duration','group_list','work_end','reopened_time','resolved_at','caller_id','approval_set','subcategory','work_notes','correlation_display','delivery_task','work_start','assignment_group','business_stc','additional_assignee_list','description','calendar_duration','sys_class_name','closed_by','follow_up','parent_incident','sys_id','contact_type','reopened_by','urgency','company','activity_due','assigned_to'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd6a7,0xe4));var _0x7d6a=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0xd6a7[_0x397e5f];return _0x5302b8;};'use strict';var emlformat=require(_0x7d6a('0x0'));var rimraf=require(_0x7d6a('0x1'));var zipdir=require(_0x7d6a('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7d6a('0x3'));var moment=require(_0x7d6a('0x4'));var BPromise=require(_0x7d6a('0x5'));var Mustache=require(_0x7d6a('0x6'));var util=require(_0x7d6a('0x7'));var path=require(_0x7d6a('0x8'));var sox=require(_0x7d6a('0x9'));var csv=require(_0x7d6a('0xa'));var ejs=require(_0x7d6a('0xb'));var fs=require('fs');var fs_extra=require(_0x7d6a('0xc'));var _=require(_0x7d6a('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7d6a('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x7d6a('0xa'));var querystring=require(_0x7d6a('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x7d6a('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7d6a('0x11'));var logger=require(_0x7d6a('0x12'))(_0x7d6a('0x13'));var utils=require(_0x7d6a('0x14'));var config=require(_0x7d6a('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x7d6a('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x50c062,_0x5b8b4e){_0x5b8b4e=_0x5b8b4e||0xcc;return function(_0x46200f){if(_0x46200f){return _0x50c062[_0x7d6a('0x17')](_0x5b8b4e);}return _0x50c062[_0x7d6a('0x18')](_0x5b8b4e)['end']();};}function respondWithResult(_0x43efce,_0x374687){_0x374687=_0x374687||0xc8;return function(_0x21c029){if(_0x21c029){return _0x43efce['status'](_0x374687)[_0x7d6a('0x19')](_0x21c029);}};}function respondWithFilteredResult(_0x5b677a,_0x4ddff4){return function(_0x30b7dc){if(_0x30b7dc){var _0x156f88=typeof _0x4ddff4[_0x7d6a('0x1a')]===_0x7d6a('0x1b')&&typeof _0x4ddff4[_0x7d6a('0x1c')]===_0x7d6a('0x1b');var _0x23e45b=_0x30b7dc[_0x7d6a('0x1d')];var _0x2cd2c7=_0x156f88?0x0:_0x4ddff4[_0x7d6a('0x1a')];var _0x3bd062=_0x156f88?_0x30b7dc[_0x7d6a('0x1d')]:_0x4ddff4[_0x7d6a('0x1a')]+_0x4ddff4[_0x7d6a('0x1c')];var _0x2d2d13;if(_0x3bd062>=_0x23e45b){_0x3bd062=_0x23e45b;_0x2d2d13=0xc8;}else{_0x2d2d13=0xce;}_0x5b677a[_0x7d6a('0x18')](_0x2d2d13);return _0x5b677a[_0x7d6a('0x1e')](_0x7d6a('0x1f'),_0x2cd2c7+'-'+_0x3bd062+'/'+_0x23e45b)[_0x7d6a('0x19')](_0x30b7dc);}return null;};}function patchUpdates(_0x18e1b4){return function(_0x592d08){try{jsonpatch[_0x7d6a('0x20')](_0x592d08,_0x18e1b4,!![]);}catch(_0x3ec4c4){return BPromise[_0x7d6a('0x21')](_0x3ec4c4);}return _0x592d08[_0x7d6a('0x22')]();};}function saveUpdates(_0x1b9217,_0x3208d9){return function(_0x231d23){if(_0x231d23){return _0x231d23[_0x7d6a('0x23')](_0x1b9217)[_0x7d6a('0x24')](function(_0x7a0307){return _0x7a0307;});}return null;};}function removeEntity(_0x34b8dd,_0x2da701){return function(_0x3775f0){if(_0x3775f0){return _0x3775f0['destroy']()[_0x7d6a('0x24')](function(){_0x34b8dd[_0x7d6a('0x18')](0xcc)[_0x7d6a('0x25')]();});}};}function handleEntityNotFound(_0x1123d8,_0x115035){return function(_0x45f5ce){if(!_0x45f5ce){_0x1123d8[_0x7d6a('0x17')](0x194);}return _0x45f5ce;};}function handleError(_0x3d7334,_0x216ed3){_0x216ed3=_0x216ed3||0x1f4;return function(_0x547f26){logger['error'](_0x547f26['stack']);if(_0x547f26['name']){delete _0x547f26[_0x7d6a('0x26')];}_0x3d7334[_0x7d6a('0x18')](_0x216ed3)[_0x7d6a('0x27')](_0x547f26);};}exports[_0x7d6a('0x28')]=function(_0x25504f,_0x49f4bd){var _0xb5b54a={},_0x1380c6={},_0x305dd8={'count':0x0,'rows':[]};var _0x50d829=_['map'](db[_0x7d6a('0x29')]['rawAttributes'],function(_0x382098){return{'name':_0x382098['fieldName'],'type':_0x382098[_0x7d6a('0x2a')][_0x7d6a('0x2b')]};});_0x1380c6[_0x7d6a('0x2c')]=_[_0x7d6a('0x2d')](_0x50d829,_0x7d6a('0x26'));_0x1380c6[_0x7d6a('0x2e')]=_[_0x7d6a('0x2f')](_0x25504f[_0x7d6a('0x2e')]);_0x1380c6[_0x7d6a('0x30')]=_[_0x7d6a('0x31')](_0x1380c6[_0x7d6a('0x2c')],_0x1380c6[_0x7d6a('0x2e')]);_0xb5b54a['attributes']=_['intersection'](_0x1380c6[_0x7d6a('0x2c')],qs['fields'](_0x25504f[_0x7d6a('0x2e')][_0x7d6a('0x32')]));_0xb5b54a[_0x7d6a('0x33')]=_0xb5b54a[_0x7d6a('0x33')][_0x7d6a('0x34')]?_0xb5b54a[_0x7d6a('0x33')]:_0x1380c6[_0x7d6a('0x2c')];if(!_0x25504f['query'][_0x7d6a('0x35')](_0x7d6a('0x36'))){_0xb5b54a['limit']=qs['limit'](_0x25504f[_0x7d6a('0x2e')][_0x7d6a('0x1c')]);_0xb5b54a[_0x7d6a('0x1a')]=qs[_0x7d6a('0x1a')](_0x25504f[_0x7d6a('0x2e')][_0x7d6a('0x1a')]);}_0xb5b54a['order']=qs[_0x7d6a('0x37')](_0x25504f[_0x7d6a('0x2e')][_0x7d6a('0x37')]);_0xb5b54a[_0x7d6a('0x38')]=qs[_0x7d6a('0x30')](_['pick'](_0x25504f[_0x7d6a('0x2e')],_0x1380c6['filters']),_0x50d829);if(_0x25504f[_0x7d6a('0x2e')][_0x7d6a('0x39')]){_0xb5b54a['where']=_[_0x7d6a('0x3a')](_0xb5b54a[_0x7d6a('0x38')],{'$or':_[_0x7d6a('0x2d')](_0x50d829,function(_0x3a7605){if(_0x3a7605['type']!==_0x7d6a('0x3b')){var _0x321c73={};_0x321c73[_0x3a7605['name']]={'$like':'%'+_0x25504f[_0x7d6a('0x2e')]['filter']+'%'};return _0x321c73;}})});}_0xb5b54a=_[_0x7d6a('0x3a')]({},_0xb5b54a,_0x25504f['options']);var _0x227d95={'where':_0xb5b54a[_0x7d6a('0x38')]};return db[_0x7d6a('0x29')][_0x7d6a('0x1d')](_0x227d95)[_0x7d6a('0x24')](function(_0x5de2d3){_0x305dd8['count']=_0x5de2d3;if(_0x25504f[_0x7d6a('0x2e')][_0x7d6a('0x3c')]){_0xb5b54a[_0x7d6a('0x3d')]=[{'all':!![]}];}return db['ServicenowAccount'][_0x7d6a('0x3e')](_0xb5b54a);})[_0x7d6a('0x24')](function(_0x162458){_0x305dd8['rows']=_0x162458;return _0x305dd8;})[_0x7d6a('0x24')](respondWithFilteredResult(_0x49f4bd,_0xb5b54a))[_0x7d6a('0x3f')](handleError(_0x49f4bd,null));};exports[_0x7d6a('0x40')]=function(_0x43e2a4,_0x56a385){var _0x386437={'raw':![],'where':{'id':_0x43e2a4['params']['id']}},_0xbc96c2={};_0xbc96c2['model']=_[_0x7d6a('0x2f')](db['ServicenowAccount']['rawAttributes']);_0xbc96c2[_0x7d6a('0x2e')]=_['keys'](_0x43e2a4['query']);_0xbc96c2[_0x7d6a('0x30')]=_[_0x7d6a('0x31')](_0xbc96c2[_0x7d6a('0x2c')],_0xbc96c2['query']);_0x386437[_0x7d6a('0x33')]=_[_0x7d6a('0x31')](_0xbc96c2[_0x7d6a('0x2c')],qs[_0x7d6a('0x32')](_0x43e2a4[_0x7d6a('0x2e')][_0x7d6a('0x32')]));_0x386437[_0x7d6a('0x33')]=_0x386437['attributes']['length']?_0x386437[_0x7d6a('0x33')]:_0xbc96c2[_0x7d6a('0x2c')];if(_0x43e2a4[_0x7d6a('0x2e')][_0x7d6a('0x3c')]){_0x386437[_0x7d6a('0x3d')]=[{'all':!![]}];}_0x386437=_[_0x7d6a('0x3a')]({},_0x386437,_0x43e2a4[_0x7d6a('0x41')]);return db[_0x7d6a('0x29')]['find'](_0x386437)[_0x7d6a('0x24')](handleEntityNotFound(_0x56a385,null))['then'](respondWithResult(_0x56a385,null))[_0x7d6a('0x3f')](handleError(_0x56a385,null));};exports[_0x7d6a('0x42')]=function(_0x81be2c,_0x176798){return db[_0x7d6a('0x29')][_0x7d6a('0x42')](_0x81be2c[_0x7d6a('0x43')],{})[_0x7d6a('0x24')](respondWithResult(_0x176798,0xc9))['catch'](handleError(_0x176798,null));};exports[_0x7d6a('0x23')]=function(_0x438ae4,_0x2ba282){if(_0x438ae4[_0x7d6a('0x43')]['id']){delete _0x438ae4[_0x7d6a('0x43')]['id'];}return db[_0x7d6a('0x29')][_0x7d6a('0x44')]({'where':{'id':_0x438ae4[_0x7d6a('0x45')]['id']}})[_0x7d6a('0x24')](handleEntityNotFound(_0x2ba282,null))['then'](saveUpdates(_0x438ae4[_0x7d6a('0x43')],null))[_0x7d6a('0x24')](respondWithResult(_0x2ba282,null))['catch'](handleError(_0x2ba282,null));};exports['destroy']=function(_0x4adefb,_0x3dcdf7){return db[_0x7d6a('0x29')][_0x7d6a('0x44')]({'where':{'id':_0x4adefb['params']['id']}})['then'](handleEntityNotFound(_0x3dcdf7,null))[_0x7d6a('0x24')](removeEntity(_0x3dcdf7,null))[_0x7d6a('0x3f')](handleError(_0x3dcdf7,null));};exports[_0x7d6a('0x46')]=function(_0x1bb0cf,_0x4e0dd6,_0x429270){var _0x1f8c75={};var _0x12e90={};var _0x3831ce;var _0x3c6379;return db[_0x7d6a('0x29')]['findOne']({'where':{'id':_0x1bb0cf['params']['id']}})[_0x7d6a('0x24')](handleEntityNotFound(_0x4e0dd6,null))['then'](function(_0x3a7464){if(_0x3a7464){_0x3831ce=_0x3a7464;_0x12e90[_0x7d6a('0x2c')]=_[_0x7d6a('0x2f')](db[_0x7d6a('0x47')][_0x7d6a('0x48')]);_0x12e90['query']=_[_0x7d6a('0x2f')](_0x1bb0cf[_0x7d6a('0x2e')]);_0x12e90[_0x7d6a('0x30')]=_['intersection'](_0x12e90[_0x7d6a('0x2c')],_0x12e90[_0x7d6a('0x2e')]);_0x1f8c75[_0x7d6a('0x33')]=_['intersection'](_0x12e90[_0x7d6a('0x2c')],qs['fields'](_0x1bb0cf[_0x7d6a('0x2e')][_0x7d6a('0x32')]));_0x1f8c75['attributes']=_0x1f8c75[_0x7d6a('0x33')][_0x7d6a('0x34')]?_0x1f8c75[_0x7d6a('0x33')]:_0x12e90[_0x7d6a('0x2c')];_0x1f8c75['order']=qs[_0x7d6a('0x37')](_0x1bb0cf[_0x7d6a('0x2e')][_0x7d6a('0x37')]);_0x1f8c75[_0x7d6a('0x38')]=qs['filters'](_[_0x7d6a('0x49')](_0x1bb0cf[_0x7d6a('0x2e')],_0x12e90[_0x7d6a('0x30')]));if(_0x1bb0cf[_0x7d6a('0x2e')][_0x7d6a('0x39')]){_0x1f8c75[_0x7d6a('0x38')]=_[_0x7d6a('0x3a')](_0x1f8c75[_0x7d6a('0x38')],{'$or':_[_0x7d6a('0x2d')](_0x1f8c75[_0x7d6a('0x33')],function(_0x4c3aed){var _0x50f3f9={};_0x50f3f9[_0x4c3aed]={'$like':'%'+_0x1bb0cf['query']['filter']+'%'};return _0x50f3f9;})});}_0x1f8c75=_[_0x7d6a('0x3a')]({},_0x1f8c75,_0x1bb0cf[_0x7d6a('0x41')]);return _0x3831ce[_0x7d6a('0x46')](_0x1f8c75);}})[_0x7d6a('0x24')](function(_0x29e0e3){if(_0x29e0e3){_0x3c6379=_0x29e0e3[_0x7d6a('0x34')];if(!_0x1bb0cf[_0x7d6a('0x2e')][_0x7d6a('0x35')](_0x7d6a('0x36'))){_0x1f8c75[_0x7d6a('0x1c')]=qs[_0x7d6a('0x1c')](_0x1bb0cf['query'][_0x7d6a('0x1c')]);_0x1f8c75['offset']=qs[_0x7d6a('0x1a')](_0x1bb0cf[_0x7d6a('0x2e')]['offset']);}return _0x3831ce['getConfigurations'](_0x1f8c75);}})['then'](function(_0x386dbc){if(_0x386dbc){return _0x386dbc?{'count':_0x3c6379,'rows':_0x386dbc}:null;}})[_0x7d6a('0x24')](respondWithResult(_0x4e0dd6,null))[_0x7d6a('0x3f')](handleError(_0x4e0dd6,null));};exports[_0x7d6a('0x4a')]=function(_0x420512,_0x1ba802,_0x4e1719){if(_0x420512[_0x7d6a('0x43')]['id']){delete _0x420512[_0x7d6a('0x43')]['id'];}return db[_0x7d6a('0x29')][_0x7d6a('0x4b')]({'where':{'id':_0x420512[_0x7d6a('0x45')]['id']}})[_0x7d6a('0x24')](handleEntityNotFound(_0x1ba802,null))[_0x7d6a('0x24')](function(_0x54d318){if(_0x54d318){_0x420512[_0x7d6a('0x43')][_0x7d6a('0x4c')]=_0x54d318['id'];_0x420512[_0x7d6a('0x43')][_0x7d6a('0x4d')]=integrations[_0x7d6a('0x4e')](_0x420512[_0x7d6a('0x43')][_0x7d6a('0x4f')],_0x420512[_0x7d6a('0x43')][_0x7d6a('0x2a')]);_0x420512[_0x7d6a('0x43')][_0x7d6a('0x50')]=integrations[_0x7d6a('0x51')](_0x420512[_0x7d6a('0x43')][_0x7d6a('0x4f')],_0x420512[_0x7d6a('0x43')][_0x7d6a('0x2a')]);return db[_0x7d6a('0x47')][_0x7d6a('0x42')](_0x420512[_0x7d6a('0x43')],{'include':[{'model':db['ServicenowField'],'as':_0x7d6a('0x4d')},{'model':db['ServicenowField'],'as':_0x7d6a('0x50')}]});}return null;})[_0x7d6a('0x24')](respondWithResult(_0x1ba802,null))[_0x7d6a('0x3f')](handleError(_0x1ba802,null));};exports[_0x7d6a('0x52')]=function(_0x442585,_0x11f164,_0x265b16){var _0x56db11=[_0x7d6a('0x53'),_0x7d6a('0x54'),_0x7d6a('0x55'),'subcategory',_0x7d6a('0x56'),'notify',_0x7d6a('0x57'),_0x7d6a('0x58'),_0x7d6a('0x59')];var _0x254c71=[_0x7d6a('0x5a'),_0x7d6a('0x53'),'caused_by','watch_list',_0x7d6a('0x5b'),_0x7d6a('0x5c'),_0x7d6a('0x5d'),'hold_reason',_0x7d6a('0x5e'),_0x7d6a('0x5f'),_0x7d6a('0x60'),_0x7d6a('0x61'),_0x7d6a('0x62'),_0x7d6a('0x63'),_0x7d6a('0x64'),_0x7d6a('0x65'),'state',_0x7d6a('0x66'),_0x7d6a('0x55'),_0x7d6a('0x67'),_0x7d6a('0x68'),_0x7d6a('0x69'),_0x7d6a('0x6a'),_0x7d6a('0x6b'),_0x7d6a('0x6c'),_0x7d6a('0x6d'),_0x7d6a('0x6e'),_0x7d6a('0x6f'),_0x7d6a('0x70'),_0x7d6a('0x71'),_0x7d6a('0x72'),_0x7d6a('0x73'),_0x7d6a('0x74'),_0x7d6a('0x75'),_0x7d6a('0x76'),_0x7d6a('0x77'),_0x7d6a('0x78'),_0x7d6a('0x79'),_0x7d6a('0x7a'),_0x7d6a('0x7b'),_0x7d6a('0x7c'),_0x7d6a('0x7d'),_0x7d6a('0x7e'),'short_description',_0x7d6a('0x56'),_0x7d6a('0x7f'),_0x7d6a('0x80'),_0x7d6a('0x81'),_0x7d6a('0x82'),_0x7d6a('0x83'),_0x7d6a('0x84'),_0x7d6a('0x85'),_0x7d6a('0x86'),'notify',_0x7d6a('0x87'),'close_notes',_0x7d6a('0x88'),_0x7d6a('0x89'),_0x7d6a('0x8a'),_0x7d6a('0x8b'),_0x7d6a('0x8c'),_0x7d6a('0x8d'),_0x7d6a('0x57'),_0x7d6a('0x8e'),'problem_id',_0x7d6a('0x8f'),'reassignment_count',_0x7d6a('0x90'),_0x7d6a('0x91'),_0x7d6a('0x58'),_0x7d6a('0x92'),_0x7d6a('0x93'),_0x7d6a('0x94'),_0x7d6a('0x95'),_0x7d6a('0x96'),_0x7d6a('0x97'),'reopen_count','sys_tags',_0x7d6a('0x98'),'upon_approval',_0x7d6a('0x99'),_0x7d6a('0x9a'),_0x7d6a('0x59')];var _0x1561d8='';var _0x2e643f='';var _0x4fbf6d=[];var _0x3d2971='';var _0x472cad='';var _0x2fcf37=[];var _0x4fc265='';var _0x2904a1='';var _0x439465={};var _0x5366dd='';return db[_0x7d6a('0x29')][_0x7d6a('0x4b')]({'where':{'id':_0x442585[_0x7d6a('0x45')]['id']},'attributes':['id',_0x7d6a('0x9b'),'password',_0x7d6a('0x9c'),_0x7d6a('0x9d'),_0x7d6a('0x9e')]})[_0x7d6a('0x24')](handleEntityNotFound(_0x11f164,null))[_0x7d6a('0x24')](function(_0x20763f){if(_0x20763f){_0x5366dd=_0x20763f[_0x7d6a('0x9d')];var _0x470716=_0x5366dd[_0x7d6a('0x9f')](-0x1);if(_0x470716==='/'){_0x5366dd=_0x5366dd[_0x7d6a('0xa0')](0x0,_0x5366dd[_0x7d6a('0xa1')](_0x470716));}_0x2904a1=util[_0x7d6a('0xa2')]('%s/api/now/doc/table/schema/',_0x5366dd);_0x4fc265=util['format'](_0x7d6a('0xa3'),_0x5366dd);_0x439465={'user':_0x20763f[_0x7d6a('0x9b')],'pass':_0x20763f[_0x7d6a('0xa4')]};var _0x41ae9c={'method':'GET','uri':_0x2904a1+_0x7d6a('0xa5'),'auth':_0x439465,'json':!![]};return rp(_0x41ae9c);}})['then'](function(_0x4edbf0){if(_0x4edbf0[_0x7d6a('0xa6')][_0x7d6a('0x34')]>0x0){_0x1561d8=_0x4edbf0[_0x7d6a('0xa6')];}console[_0x7d6a('0xa7')](_0x7d6a('0xa8'),_0x1561d8);_0x2fcf37=[];_0x2e643f=Object[_0x7d6a('0xa9')]([],_0x1561d8);_[_0x7d6a('0xaa')](_0x2e643f,function(_0x33e12){return!_0x56db11[_0x7d6a('0xab')](_0x33e12['name']);});_0x2e643f['forEach'](function(_0x266cbb){var _0x1ce92a=createFieldObject(_0x4fc265,_0x439465,_0x266cbb[_0x7d6a('0xac')],_0x266cbb[_0x7d6a('0x26')],_0x266cbb['label'],![]);_0x2fcf37['push'](_0x1ce92a);});return Promise[_0x7d6a('0xad')](_0x2fcf37);})[_0x7d6a('0x24')](function(_0x4d9f54){_0x4fbf6d=_0x4d9f54;_0x3d2971=Object[_0x7d6a('0xa9')]([],_0x1561d8);console['log'](_0x7d6a('0xae'),_0x1561d8);_[_0x7d6a('0xaa')](_0x3d2971,function(_0x21077c){return _0x254c71[_0x7d6a('0xab')](_0x21077c['name']);});console[_0x7d6a('0xa7')](_0x7d6a('0xaf'),_0x3d2971);_0x2fcf37=[];_0x3d2971[_0x7d6a('0xb0')](function(_0x3b7486){var _0x848652=createFieldObject(_0x4fc265,_0x439465,_0x3b7486[_0x7d6a('0xac')],_0x3b7486['name'],_0x3b7486[_0x7d6a('0xb1')],!![]);_0x2fcf37[_0x7d6a('0xb2')](_0x848652);});return Promise[_0x7d6a('0xad')](_0x2fcf37);})['then'](function(_0x25caa3){_0x472cad=_0x25caa3;var _0x14c539=_0x4fbf6d[_0x7d6a('0xb3')](_0x472cad);return{'count':_0x14c539[_0x7d6a('0x34')],'rows':_0x14c539};})[_0x7d6a('0x24')](respondWithResult(_0x11f164,null))['catch'](function(_0x291173){console['log'](_0x7d6a('0xb4')+_0x291173);var _0x408a49=_0x442585[_0x7d6a('0x2e')]['test']?0x1f4:_0x291173['statusCode']||0x1f4;logger['error'](_0x291173[_0x7d6a('0xb5')]);delete _0x291173[_0x7d6a('0x26')];if(_0x408a49===0x191){_0x408a49=0x190;}_0x11f164['status'](_0x408a49)[_0x7d6a('0x27')](_0x442585[_0x7d6a('0x2e')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x291173['statusCode']}:_0x291173);});};function createFieldObject(_0x4350ea,_0x5a53df,_0xcfc214,_0x1e6cdf,_0x1774d0,_0x414887){return new Promise(function(_0x4038f2,_0x5490c5){var _0x3577c6={'id':_0x1e6cdf,'name':_0x1774d0,'custom':_0x414887};if(_0xcfc214===_0x7d6a('0xb6')){_0x3577c6[_0x7d6a('0x41')]=[{'name':_0x7d6a('0xb7'),'value':_0x7d6a('0xb8')},{'name':'False','value':'false'}];_0x4038f2(_0x3577c6);}else{var _0x1cb968={'method':'GET','uri':_0x4350ea+'sys_choice?sysparm_query=name=incident^element='+_0x1e6cdf,'auth':_0x5a53df,'json':!![]};return rp(_0x1cb968)[_0x7d6a('0x24')](function(_0xaeec7a){var _0x156b72=[];if(_0xaeec7a[_0x7d6a('0xa6')]['length']>0x0){_0xaeec7a[_0x7d6a('0xa6')][_0x7d6a('0xb0')](function(_0x18fc8d){if(_0x18fc8d['inactive']===_0x7d6a('0xb9')){var _0x381eea={'name':_0x18fc8d[_0x7d6a('0xb1')],'value':_0x18fc8d[_0x7d6a('0xba')]};_0x156b72[_0x7d6a('0xb2')](_0x381eea);}});}_0x3577c6['options']=_0x156b72;if(_0x3577c6[_0x7d6a('0x41')][_0x7d6a('0x34')]>0x0){_0x4038f2(_0x3577c6);}else{if(_0x414887==![]){_0x4038f2();}else{_0x4038f2(_0x3577c6);}}});}});}
\ No newline at end of file
+var _0x91ad=['name','send','index','map','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','ServicenowAccount','find','create','body','findOne','ServicenowConfiguration','pick','hasOwnProperty','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ServicenowField','getFields','made_sla','hold_reason','knowledge','close_code','severity','category','caused_by','watch_list','upon_reject','sys_updated_on','approval_history','number','resolved_by','sys_updated_by','user_input','sys_created_on','state','closed_at','cmdb_ci','delivery_plan','active','work_notes_list','business_service','expected_start','opened_at','group_list','work_end','reopened_time','resolved_at','caller_id','approval_set','work_notes','short_description','correlation_display','delivery_task','work_start','assignment_group','business_stc','description','close_notes','closed_by','follow_up','parent_incident','contact_type','reopened_by','incident_state','urgency','problem_id','reassignment_count','activity_due','assigned_to','comments','sla_due','approval','due_date','sys_mod_count','reopen_count','sys_tags','escalation','correlation_id','password','email','remoteUri','slice','substring','%s/api/now/doc/table/schema/','%s/api/now/table/','username','GET','incident?sysparm_display_value=all','result','assign','remove','includes','forEach','label','push','all','log','TCL:\x20_object','TCL:\x20exports.getEntityFields\x20->\x20_objectsCustom','internalType','concat','ServiceNow\x20error:\x20','test','statusCode','Wrong\x20credentials','boolean','True','false','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','end','status','json','offset','limit','undefined','count','set','reject','update','then','error','stack'];(function(_0x54a529,_0x14374b){var _0x2a9bb1=function(_0x2f21fa){while(--_0x2f21fa){_0x54a529['push'](_0x54a529['shift']());}};_0x2a9bb1(++_0x14374b);}(_0x91ad,0x8a));var _0xd91a=function(_0x461c41,_0x2e6d1c){_0x461c41=_0x461c41-0x0;var _0x509e12=_0x91ad[_0x461c41];return _0x509e12;};'use strict';var emlformat=require(_0xd91a('0x0'));var rimraf=require(_0xd91a('0x1'));var zipdir=require(_0xd91a('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd91a('0x3'));var moment=require(_0xd91a('0x4'));var BPromise=require(_0xd91a('0x5'));var Mustache=require(_0xd91a('0x6'));var util=require(_0xd91a('0x7'));var path=require(_0xd91a('0x8'));var sox=require(_0xd91a('0x9'));var csv=require('to-csv');var ejs=require(_0xd91a('0xa'));var fs=require('fs');var fs_extra=require(_0xd91a('0xb'));var _=require(_0xd91a('0xc'));var squel=require(_0xd91a('0xd'));var crypto=require(_0xd91a('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xd91a('0xf'));var toCsv=require(_0xd91a('0x10'));var querystring=require(_0xd91a('0x11'));var Papa=require(_0xd91a('0x12'));var Redis=require('ioredis');var authService=require(_0xd91a('0x13'));var qs=require(_0xd91a('0x14'));var as=require(_0xd91a('0x15'));var hardwareService=require(_0xd91a('0x16'));var logger=require('../../config/logger')(_0xd91a('0x17'));var utils=require(_0xd91a('0x18'));var config=require(_0xd91a('0x19'));var licenseUtil=require(_0xd91a('0x1a'));var db=require('../../mysqldb')['db'];var integrations=require(_0xd91a('0x1b'));function respondWithStatusCode(_0x561d5d,_0x2f72e3){_0x2f72e3=_0x2f72e3||0xcc;return function(_0x61db7){if(_0x61db7){return _0x561d5d[_0xd91a('0x1c')](_0x2f72e3);}return _0x561d5d['status'](_0x2f72e3)[_0xd91a('0x1d')]();};}function respondWithResult(_0x735a21,_0x2e1a69){_0x2e1a69=_0x2e1a69||0xc8;return function(_0x539b8b){if(_0x539b8b){return _0x735a21[_0xd91a('0x1e')](_0x2e1a69)[_0xd91a('0x1f')](_0x539b8b);}};}function respondWithFilteredResult(_0x3cc27c,_0x187c9e){return function(_0x57f108){if(_0x57f108){var _0x57b70c=typeof _0x187c9e[_0xd91a('0x20')]==='undefined'&&typeof _0x187c9e[_0xd91a('0x21')]===_0xd91a('0x22');var _0x553380=_0x57f108['count'];var _0x4d946c=_0x57b70c?0x0:_0x187c9e[_0xd91a('0x20')];var _0x2c43d7=_0x57b70c?_0x57f108[_0xd91a('0x23')]:_0x187c9e['offset']+_0x187c9e[_0xd91a('0x21')];var _0x404977;if(_0x2c43d7>=_0x553380){_0x2c43d7=_0x553380;_0x404977=0xc8;}else{_0x404977=0xce;}_0x3cc27c['status'](_0x404977);return _0x3cc27c[_0xd91a('0x24')]('Content-Range',_0x4d946c+'-'+_0x2c43d7+'/'+_0x553380)[_0xd91a('0x1f')](_0x57f108);}return null;};}function patchUpdates(_0x370c78){return function(_0x562f79){try{jsonpatch['apply'](_0x562f79,_0x370c78,!![]);}catch(_0x41b17a){return BPromise[_0xd91a('0x25')](_0x41b17a);}return _0x562f79['save']();};}function saveUpdates(_0x8607ce,_0x421ca1){return function(_0x105482){if(_0x105482){return _0x105482[_0xd91a('0x26')](_0x8607ce)[_0xd91a('0x27')](function(_0xb3e3b0){return _0xb3e3b0;});}return null;};}function removeEntity(_0x1b39f0,_0x146453){return function(_0x5dc69e){if(_0x5dc69e){return _0x5dc69e['destroy']()[_0xd91a('0x27')](function(){_0x1b39f0[_0xd91a('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x157239,_0x10aee3){return function(_0x29e291){if(!_0x29e291){_0x157239['sendStatus'](0x194);}return _0x29e291;};}function handleError(_0x25dbf3,_0x1248fd){_0x1248fd=_0x1248fd||0x1f4;return function(_0x3794df){logger[_0xd91a('0x28')](_0x3794df[_0xd91a('0x29')]);if(_0x3794df[_0xd91a('0x2a')]){delete _0x3794df[_0xd91a('0x2a')];}_0x25dbf3[_0xd91a('0x1e')](_0x1248fd)[_0xd91a('0x2b')](_0x3794df);};}exports[_0xd91a('0x2c')]=function(_0x444866,_0x54cecc){var _0x1f241a={},_0x16a1b9={},_0x43c103={'count':0x0,'rows':[]};var _0x99f0ca=_[_0xd91a('0x2d')](db['ServicenowAccount'][_0xd91a('0x2e')],function(_0x2e0d98){return{'name':_0x2e0d98['fieldName'],'type':_0x2e0d98[_0xd91a('0x2f')][_0xd91a('0x30')]};});_0x16a1b9[_0xd91a('0x31')]=_[_0xd91a('0x2d')](_0x99f0ca,_0xd91a('0x2a'));_0x16a1b9[_0xd91a('0x32')]=_[_0xd91a('0x33')](_0x444866[_0xd91a('0x32')]);_0x16a1b9['filters']=_[_0xd91a('0x34')](_0x16a1b9[_0xd91a('0x31')],_0x16a1b9[_0xd91a('0x32')]);_0x1f241a[_0xd91a('0x35')]=_[_0xd91a('0x34')](_0x16a1b9[_0xd91a('0x31')],qs[_0xd91a('0x36')](_0x444866[_0xd91a('0x32')][_0xd91a('0x36')]));_0x1f241a['attributes']=_0x1f241a[_0xd91a('0x35')][_0xd91a('0x37')]?_0x1f241a[_0xd91a('0x35')]:_0x16a1b9[_0xd91a('0x31')];if(!_0x444866[_0xd91a('0x32')]['hasOwnProperty'](_0xd91a('0x38'))){_0x1f241a[_0xd91a('0x21')]=qs[_0xd91a('0x21')](_0x444866[_0xd91a('0x32')][_0xd91a('0x21')]);_0x1f241a[_0xd91a('0x20')]=qs[_0xd91a('0x20')](_0x444866[_0xd91a('0x32')][_0xd91a('0x20')]);}_0x1f241a[_0xd91a('0x39')]=qs[_0xd91a('0x3a')](_0x444866[_0xd91a('0x32')][_0xd91a('0x3a')]);_0x1f241a[_0xd91a('0x3b')]=qs[_0xd91a('0x3c')](_['pick'](_0x444866[_0xd91a('0x32')],_0x16a1b9[_0xd91a('0x3c')]),_0x99f0ca);if(_0x444866[_0xd91a('0x32')][_0xd91a('0x3d')]){_0x1f241a[_0xd91a('0x3b')]=_[_0xd91a('0x3e')](_0x1f241a[_0xd91a('0x3b')],{'$or':_[_0xd91a('0x2d')](_0x99f0ca,function(_0x4a8fa0){if(_0x4a8fa0[_0xd91a('0x2f')]!==_0xd91a('0x3f')){var _0x3a2c6e={};_0x3a2c6e[_0x4a8fa0[_0xd91a('0x2a')]]={'$like':'%'+_0x444866['query']['filter']+'%'};return _0x3a2c6e;}})});}_0x1f241a=_[_0xd91a('0x3e')]({},_0x1f241a,_0x444866[_0xd91a('0x40')]);var _0x1d8b8f={'where':_0x1f241a['where']};return db['ServicenowAccount'][_0xd91a('0x23')](_0x1d8b8f)[_0xd91a('0x27')](function(_0x465a76){_0x43c103['count']=_0x465a76;if(_0x444866['query'][_0xd91a('0x41')]){_0x1f241a[_0xd91a('0x42')]=[{'all':!![]}];}return db['ServicenowAccount'][_0xd91a('0x43')](_0x1f241a);})[_0xd91a('0x27')](function(_0x4158b5){_0x43c103[_0xd91a('0x44')]=_0x4158b5;return _0x43c103;})[_0xd91a('0x27')](respondWithFilteredResult(_0x54cecc,_0x1f241a))[_0xd91a('0x45')](handleError(_0x54cecc,null));};exports[_0xd91a('0x46')]=function(_0x5a853b,_0x4dd3e3){var _0x688ea6={'raw':![],'where':{'id':_0x5a853b[_0xd91a('0x47')]['id']}},_0x1e3938={};_0x1e3938['model']=_[_0xd91a('0x33')](db[_0xd91a('0x48')][_0xd91a('0x2e')]);_0x1e3938[_0xd91a('0x32')]=_[_0xd91a('0x33')](_0x5a853b[_0xd91a('0x32')]);_0x1e3938['filters']=_['intersection'](_0x1e3938[_0xd91a('0x31')],_0x1e3938[_0xd91a('0x32')]);_0x688ea6[_0xd91a('0x35')]=_['intersection'](_0x1e3938[_0xd91a('0x31')],qs[_0xd91a('0x36')](_0x5a853b[_0xd91a('0x32')]['fields']));_0x688ea6[_0xd91a('0x35')]=_0x688ea6[_0xd91a('0x35')][_0xd91a('0x37')]?_0x688ea6['attributes']:_0x1e3938[_0xd91a('0x31')];if(_0x5a853b[_0xd91a('0x32')][_0xd91a('0x41')]){_0x688ea6[_0xd91a('0x42')]=[{'all':!![]}];}_0x688ea6=_[_0xd91a('0x3e')]({},_0x688ea6,_0x5a853b['options']);return db[_0xd91a('0x48')][_0xd91a('0x49')](_0x688ea6)[_0xd91a('0x27')](handleEntityNotFound(_0x4dd3e3,null))[_0xd91a('0x27')](respondWithResult(_0x4dd3e3,null))['catch'](handleError(_0x4dd3e3,null));};exports[_0xd91a('0x4a')]=function(_0x3cf5eb,_0x3c0457){return db[_0xd91a('0x48')][_0xd91a('0x4a')](_0x3cf5eb[_0xd91a('0x4b')],{})['then'](respondWithResult(_0x3c0457,0xc9))[_0xd91a('0x45')](handleError(_0x3c0457,null));};exports[_0xd91a('0x26')]=function(_0x3feaeb,_0xb9cee9){if(_0x3feaeb[_0xd91a('0x4b')]['id']){delete _0x3feaeb[_0xd91a('0x4b')]['id'];}return db['ServicenowAccount']['find']({'where':{'id':_0x3feaeb['params']['id']}})[_0xd91a('0x27')](handleEntityNotFound(_0xb9cee9,null))[_0xd91a('0x27')](saveUpdates(_0x3feaeb[_0xd91a('0x4b')],null))['then'](respondWithResult(_0xb9cee9,null))[_0xd91a('0x45')](handleError(_0xb9cee9,null));};exports['destroy']=function(_0x113a07,_0x74fc02){return db[_0xd91a('0x48')][_0xd91a('0x49')]({'where':{'id':_0x113a07[_0xd91a('0x47')]['id']}})[_0xd91a('0x27')](handleEntityNotFound(_0x74fc02,null))['then'](removeEntity(_0x74fc02,null))[_0xd91a('0x45')](handleError(_0x74fc02,null));};exports['getConfigurations']=function(_0x548c68,_0xd72265,_0x914ce6){var _0xc90b40={};var _0x10234b={};var _0x55377a;var _0x196929;return db['ServicenowAccount'][_0xd91a('0x4c')]({'where':{'id':_0x548c68['params']['id']}})['then'](handleEntityNotFound(_0xd72265,null))[_0xd91a('0x27')](function(_0x32f2be){if(_0x32f2be){_0x55377a=_0x32f2be;_0x10234b[_0xd91a('0x31')]=_[_0xd91a('0x33')](db[_0xd91a('0x4d')][_0xd91a('0x2e')]);_0x10234b[_0xd91a('0x32')]=_[_0xd91a('0x33')](_0x548c68[_0xd91a('0x32')]);_0x10234b[_0xd91a('0x3c')]=_[_0xd91a('0x34')](_0x10234b[_0xd91a('0x31')],_0x10234b[_0xd91a('0x32')]);_0xc90b40[_0xd91a('0x35')]=_[_0xd91a('0x34')](_0x10234b[_0xd91a('0x31')],qs['fields'](_0x548c68[_0xd91a('0x32')][_0xd91a('0x36')]));_0xc90b40[_0xd91a('0x35')]=_0xc90b40['attributes'][_0xd91a('0x37')]?_0xc90b40['attributes']:_0x10234b['model'];_0xc90b40[_0xd91a('0x39')]=qs[_0xd91a('0x3a')](_0x548c68[_0xd91a('0x32')]['sort']);_0xc90b40[_0xd91a('0x3b')]=qs[_0xd91a('0x3c')](_[_0xd91a('0x4e')](_0x548c68[_0xd91a('0x32')],_0x10234b[_0xd91a('0x3c')]));if(_0x548c68[_0xd91a('0x32')]['filter']){_0xc90b40[_0xd91a('0x3b')]=_[_0xd91a('0x3e')](_0xc90b40[_0xd91a('0x3b')],{'$or':_[_0xd91a('0x2d')](_0xc90b40['attributes'],function(_0x4b6b0b){var _0x209d91={};_0x209d91[_0x4b6b0b]={'$like':'%'+_0x548c68['query'][_0xd91a('0x3d')]+'%'};return _0x209d91;})});}_0xc90b40=_['merge']({},_0xc90b40,_0x548c68[_0xd91a('0x40')]);return _0x55377a['getConfigurations'](_0xc90b40);}})[_0xd91a('0x27')](function(_0x2709af){if(_0x2709af){_0x196929=_0x2709af[_0xd91a('0x37')];if(!_0x548c68[_0xd91a('0x32')][_0xd91a('0x4f')](_0xd91a('0x38'))){_0xc90b40[_0xd91a('0x21')]=qs[_0xd91a('0x21')](_0x548c68[_0xd91a('0x32')][_0xd91a('0x21')]);_0xc90b40['offset']=qs[_0xd91a('0x20')](_0x548c68[_0xd91a('0x32')][_0xd91a('0x20')]);}return _0x55377a[_0xd91a('0x50')](_0xc90b40);}})[_0xd91a('0x27')](function(_0x1fec47){if(_0x1fec47){return _0x1fec47?{'count':_0x196929,'rows':_0x1fec47}:null;}})[_0xd91a('0x27')](respondWithResult(_0xd72265,null))[_0xd91a('0x45')](handleError(_0xd72265,null));};exports[_0xd91a('0x51')]=function(_0x379380,_0x2018e9,_0xd11bba){if(_0x379380[_0xd91a('0x4b')]['id']){delete _0x379380[_0xd91a('0x4b')]['id'];}return db['ServicenowAccount'][_0xd91a('0x4c')]({'where':{'id':_0x379380[_0xd91a('0x47')]['id']}})[_0xd91a('0x27')](handleEntityNotFound(_0x2018e9,null))['then'](function(_0x401dd1){if(_0x401dd1){_0x379380['body'][_0xd91a('0x52')]=_0x401dd1['id'];_0x379380[_0xd91a('0x4b')][_0xd91a('0x53')]=integrations[_0xd91a('0x54')](_0x379380['body'][_0xd91a('0x55')],_0x379380[_0xd91a('0x4b')][_0xd91a('0x2f')]);_0x379380[_0xd91a('0x4b')][_0xd91a('0x56')]=integrations[_0xd91a('0x57')](_0x379380['body'][_0xd91a('0x55')],_0x379380[_0xd91a('0x4b')]['type']);return db[_0xd91a('0x4d')][_0xd91a('0x4a')](_0x379380['body'],{'include':[{'model':db['ServicenowField'],'as':_0xd91a('0x53')},{'model':db[_0xd91a('0x58')],'as':'Descriptions'}]});}return null;})[_0xd91a('0x27')](respondWithResult(_0x2018e9,null))[_0xd91a('0x45')](handleError(_0x2018e9,null));};exports[_0xd91a('0x59')]=function(_0x3e1882,_0x109d5d,_0x399b7f){var _0x2e1130=[_0xd91a('0x5a'),_0xd91a('0x5b'),_0xd91a('0x5c'),'subcategory',_0xd91a('0x5d'),'notify','incident_state',_0xd91a('0x5e'),_0xd91a('0x5f')];var _0x382fa5=['parent','made_sla',_0xd91a('0x60'),_0xd91a('0x61'),_0xd91a('0x62'),_0xd91a('0x63'),'child_incidents',_0xd91a('0x5b'),_0xd91a('0x64'),_0xd91a('0x65'),_0xd91a('0x66'),_0xd91a('0x67'),'opened_by',_0xd91a('0x68'),_0xd91a('0x69'),'sys_domain',_0xd91a('0x6a'),'sys_created_by',_0xd91a('0x5c'),'order','calendar_stc',_0xd91a('0x6b'),_0xd91a('0x6c'),_0xd91a('0x6d'),'impact',_0xd91a('0x6e'),_0xd91a('0x6f'),_0xd91a('0x70'),'priority','sys_domain_path','rfc','time_worked',_0xd91a('0x71'),_0xd91a('0x72'),'business_duration',_0xd91a('0x73'),_0xd91a('0x74'),_0xd91a('0x75'),_0xd91a('0x76'),_0xd91a('0x77'),_0xd91a('0x78'),'subcategory',_0xd91a('0x79'),_0xd91a('0x7a'),_0xd91a('0x5d'),_0xd91a('0x7b'),_0xd91a('0x7c'),_0xd91a('0x7d'),_0xd91a('0x7e'),_0xd91a('0x7f'),'additional_assignee_list',_0xd91a('0x80'),'calendar_duration','notify','sys_class_name',_0xd91a('0x81'),_0xd91a('0x82'),_0xd91a('0x83'),_0xd91a('0x84'),'sys_id',_0xd91a('0x85'),_0xd91a('0x86'),_0xd91a('0x87'),_0xd91a('0x88'),_0xd91a('0x89'),'company',_0xd91a('0x8a'),_0xd91a('0x8b'),_0xd91a('0x8c'),_0xd91a('0x5e'),_0xd91a('0x8d'),_0xd91a('0x8e'),_0xd91a('0x8f'),'comments_and_work_notes',_0xd91a('0x90'),_0xd91a('0x91'),_0xd91a('0x92'),_0xd91a('0x93'),_0xd91a('0x94'),'upon_approval',_0xd91a('0x95'),'location',_0xd91a('0x5f')];var _0x43a958='';var _0x28eede='';var _0x3e2fce=[];var _0x1a5d8a='';var _0x4b0bd4='';var _0xc05f96=[];var _0x2ab16f='';var _0x2569fd='';var _0x51bc99={};var _0x2e59e5='';return db['ServicenowAccount'][_0xd91a('0x4c')]({'where':{'id':_0x3e1882['params']['id']},'attributes':['id','username',_0xd91a('0x96'),_0xd91a('0x97'),_0xd91a('0x98'),'serverUrl']})[_0xd91a('0x27')](handleEntityNotFound(_0x109d5d,null))[_0xd91a('0x27')](function(_0x5548e1){if(_0x5548e1){_0x2e59e5=_0x5548e1['remoteUri'];var _0x59e1d2=_0x2e59e5[_0xd91a('0x99')](-0x1);if(_0x59e1d2==='/'){_0x2e59e5=_0x2e59e5[_0xd91a('0x9a')](0x0,_0x2e59e5['lastIndexOf'](_0x59e1d2));}_0x2569fd=util['format'](_0xd91a('0x9b'),_0x2e59e5);_0x2ab16f=util['format'](_0xd91a('0x9c'),_0x2e59e5);_0x51bc99={'user':_0x5548e1[_0xd91a('0x9d')],'pass':_0x5548e1[_0xd91a('0x96')]};var _0x31462a={'method':_0xd91a('0x9e'),'uri':_0x2569fd+_0xd91a('0x9f'),'auth':_0x51bc99,'json':!![]};return rp(_0x31462a);}})[_0xd91a('0x27')](function(_0x43549a){if(_0x43549a['result'][_0xd91a('0x37')]>0x0){_0x43a958=_0x43549a[_0xd91a('0xa0')];}console['log']('incident\x20table\x20objects',_0x43a958);_0xc05f96=[];_0x28eede=Object[_0xd91a('0xa1')]([],_0x43a958);_[_0xd91a('0xa2')](_0x28eede,function(_0x37e1c9){return!_0x2e1130[_0xd91a('0xa3')](_0x37e1c9['name']);});_0x28eede[_0xd91a('0xa4')](function(_0x1e2bcd){var _0x2747f5=createFieldObject(_0x2ab16f,_0x51bc99,_0x1e2bcd['internalType'],_0x1e2bcd[_0xd91a('0x2a')],_0x1e2bcd[_0xd91a('0xa5')],![]);_0xc05f96[_0xd91a('0xa6')](_0x2747f5);});return Promise[_0xd91a('0xa7')](_0xc05f96);})['then'](function(_0x202139){_0x3e2fce=_0x202139;_0x1a5d8a=Object[_0xd91a('0xa1')]([],_0x43a958);console[_0xd91a('0xa8')](_0xd91a('0xa9'),_0x43a958);_[_0xd91a('0xa2')](_0x1a5d8a,function(_0x248452){return _0x382fa5[_0xd91a('0xa3')](_0x248452['name']);});console[_0xd91a('0xa8')](_0xd91a('0xaa'),_0x1a5d8a);_0xc05f96=[];_0x1a5d8a['forEach'](function(_0x5ecd32){var _0x342104=createFieldObject(_0x2ab16f,_0x51bc99,_0x5ecd32[_0xd91a('0xab')],_0x5ecd32['name'],_0x5ecd32['label'],!![]);_0xc05f96[_0xd91a('0xa6')](_0x342104);});return Promise[_0xd91a('0xa7')](_0xc05f96);})['then'](function(_0x161642){_0x4b0bd4=_0x161642;var _0xb04d13=_0x3e2fce[_0xd91a('0xac')](_0x4b0bd4);return{'count':_0xb04d13[_0xd91a('0x37')],'rows':_0xb04d13};})[_0xd91a('0x27')](respondWithResult(_0x109d5d,null))[_0xd91a('0x45')](function(_0x1a5c07){console['log'](_0xd91a('0xad')+_0x1a5c07);var _0x594b2b=_0x3e1882['query'][_0xd91a('0xae')]?0x1f4:_0x1a5c07[_0xd91a('0xaf')]||0x1f4;logger[_0xd91a('0x28')](_0x1a5c07[_0xd91a('0x29')]);delete _0x1a5c07[_0xd91a('0x2a')];if(_0x594b2b===0x191){_0x594b2b=0x190;}_0x109d5d[_0xd91a('0x1e')](_0x594b2b)[_0xd91a('0x2b')](_0x3e1882[_0xd91a('0x32')][_0xd91a('0xae')]?{'message':_0xd91a('0xb0'),'statusCode':_0x1a5c07[_0xd91a('0xaf')]}:_0x1a5c07);});};function createFieldObject(_0x4d6cf5,_0x147a60,_0x12bbc5,_0x300459,_0x3351c3,_0x54d1fe){return new Promise(function(_0x3d3753,_0x4014f6){var _0x12fbfe={'id':_0x300459,'name':_0x3351c3,'custom':_0x54d1fe};if(_0x12bbc5===_0xd91a('0xb1')){_0x12fbfe['options']=[{'name':_0xd91a('0xb2'),'value':'true'},{'name':'False','value':_0xd91a('0xb3')}];_0x3d3753(_0x12fbfe);}else{var _0x29e235={'method':_0xd91a('0x9e'),'uri':_0x4d6cf5+'sys_choice?sysparm_query=name=incident^element='+_0x300459,'auth':_0x147a60,'json':!![]};return rp(_0x29e235)[_0xd91a('0x27')](function(_0x20534f){var _0xcd4a1b=[];if(_0x20534f[_0xd91a('0xa0')]['length']>0x0){_0x20534f[_0xd91a('0xa0')]['forEach'](function(_0x2f3204){if(_0x2f3204['inactive']===_0xd91a('0xb3')){var _0x322059={'name':_0x2f3204[_0xd91a('0xa5')],'value':_0x2f3204['value']};_0xcd4a1b[_0xd91a('0xa6')](_0x322059);}});}_0x12fbfe[_0xd91a('0x40')]=_0xcd4a1b;if(_0x12fbfe['options'][_0xd91a('0x37')]>0x0){_0x3d3753(_0x12fbfe);}else{if(_0x54d1fe==![]){_0x3d3753();}else{_0x3d3753(_0x12fbfe);}}});}});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee14=['ServicenowAccount','int_servicenow_accounts','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intServicenowAccount.attributes','exports','define'];(function(_0x30eee8,_0x585fb5){var _0x93b2e4=function(_0xcdd807){while(--_0xcdd807){_0x30eee8['push'](_0x30eee8['shift']());}};_0x93b2e4(++_0x585fb5);}(_0xee14,0x13a));var _0x4ee1=function(_0x5ea24b,_0x41ad50){_0x5ea24b=_0x5ea24b-0x0;var _0x4a0d8a=_0xee14[_0x5ea24b];return _0x4a0d8a;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x4ee1('0x0'))(_0x4ee1('0x1'));var moment=require(_0x4ee1('0x2'));var BPromise=require(_0x4ee1('0x3'));var rp=require(_0x4ee1('0x4'));var fs=require('fs');var path=require(_0x4ee1('0x5'));var rimraf=require(_0x4ee1('0x6'));var config=require(_0x4ee1('0x7'));var attributes=require(_0x4ee1('0x8'));var integrations=require('../../components/integrations/configuration');module[_0x4ee1('0x9')]=function(_0x573700,_0x327c18){return _0x573700[_0x4ee1('0xa')](_0x4ee1('0xb'),attributes,{'tableName':_0x4ee1('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7217=['api','moment','bluebird','request-promise','../../config/environment','./intServicenowAccount.attributes','../../components/integrations/configuration','exports','define','ServicenowAccount','int_servicenow_accounts','lodash','../../config/logger'];(function(_0x26499a,_0x5527dd){var _0xfd8c26=function(_0x3f60da){while(--_0x3f60da){_0x26499a['push'](_0x26499a['shift']());}};_0xfd8c26(++_0x5527dd);}(_0x7217,0x19e));var _0x7721=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0x7217[_0x6131cd];return _0x47e916;};'use strict';var _=require(_0x7721('0x0'));var util=require('util');var logger=require(_0x7721('0x1'))(_0x7721('0x2'));var moment=require(_0x7721('0x3'));var BPromise=require(_0x7721('0x4'));var rp=require(_0x7721('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x7721('0x6'));var attributes=require(_0x7721('0x7'));var integrations=require(_0x7721('0x8'));module[_0x7721('0x9')]=function(_0xb239e0,_0xf7ff37){return _0xb239e0[_0x7721('0xa')](_0x7721('0xb'),attributes,{'tableName':_0x7721('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ce8=['moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','request','then','info','request\x20sent','debug','ServicenowAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','ServicenowAccount,\x20%s,\x20%s','message','result','catch','GetServicenowAccount','ServicenowAccount','options','raw','where','attributes','limit','include','model','map','find','ShowServicenowAccount','lodash','util'];(function(_0x4a3ba8,_0x245b6b){var _0x547840=function(_0x1886ab){while(--_0x1886ab){_0x4a3ba8['push'](_0x4a3ba8['shift']());}};_0x547840(++_0x245b6b);}(_0x6ce8,0xf3));var _0x86ce=function(_0x16b9ed,_0x56517a){_0x16b9ed=_0x16b9ed-0x0;var _0x66b1f8=_0x6ce8[_0x16b9ed];return _0x66b1f8;};'use strict';var _=require(_0x86ce('0x0'));var util=require(_0x86ce('0x1'));var moment=require(_0x86ce('0x2'));var BPromise=require(_0x86ce('0x3'));var rs=require(_0x86ce('0x4'));var fs=require('fs');var Redis=require(_0x86ce('0x5'));var db=require(_0x86ce('0x6'))['db'];var utils=require(_0x86ce('0x7'));var logger=require(_0x86ce('0x8'))(_0x86ce('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x266cdf,_0x55aa10,_0x2e1ccc){return new BPromise(function(_0x5b3321,_0x31adf0){return client[_0x86ce('0xa')](_0x266cdf,_0x2e1ccc)[_0x86ce('0xb')](function(_0x134ece){logger[_0x86ce('0xc')]('ServicenowAccount,\x20%s,\x20%s',_0x55aa10,_0x86ce('0xd'));logger[_0x86ce('0xe')](_0x86ce('0xf'),_0x55aa10,_0x86ce('0xd'),JSON[_0x86ce('0x10')](_0x134ece));if(_0x134ece[_0x86ce('0x11')]){if(_0x134ece[_0x86ce('0x11')][_0x86ce('0x12')]===0x1f4){logger[_0x86ce('0x11')](_0x86ce('0x13'),_0x55aa10,_0x134ece[_0x86ce('0x11')][_0x86ce('0x14')]);return _0x31adf0(_0x134ece['error'][_0x86ce('0x14')]);}logger[_0x86ce('0x11')](_0x86ce('0x13'),_0x55aa10,_0x134ece['error'][_0x86ce('0x14')]);return _0x5b3321(_0x134ece['error'][_0x86ce('0x14')]);}else{logger[_0x86ce('0xc')]('ServicenowAccount,\x20%s,\x20%s',_0x55aa10,_0x86ce('0xd'));_0x5b3321(_0x134ece[_0x86ce('0x15')]['message']);}})[_0x86ce('0x16')](function(_0x280f4e){logger['error'](_0x86ce('0x13'),_0x55aa10,_0x280f4e);_0x31adf0(_0x280f4e);});});}exports[_0x86ce('0x17')]=function(_0x458ef1){var _0x18f68d=this;return new Promise(function(_0x9d9cbd,_0x2ead0d){return db[_0x86ce('0x18')]['findAll']({'raw':_0x458ef1[_0x86ce('0x19')]?_0x458ef1[_0x86ce('0x19')][_0x86ce('0x1a')]===undefined?!![]:![]:!![],'where':_0x458ef1['options']?_0x458ef1['options'][_0x86ce('0x1b')]||null:null,'attributes':_0x458ef1[_0x86ce('0x19')]?_0x458ef1[_0x86ce('0x19')][_0x86ce('0x1c')]||null:null,'limit':_0x458ef1['options']?_0x458ef1[_0x86ce('0x19')][_0x86ce('0x1d')]||null:null,'include':_0x458ef1[_0x86ce('0x19')]?_0x458ef1[_0x86ce('0x19')][_0x86ce('0x1e')]?_['map'](_0x458ef1[_0x86ce('0x19')][_0x86ce('0x1e')],function(_0x32ec54){return{'model':db[_0x32ec54[_0x86ce('0x1f')]],'as':_0x32ec54['as'],'attributes':_0x32ec54[_0x86ce('0x1c')],'include':_0x32ec54[_0x86ce('0x1e')]?_['map'](_0x32ec54[_0x86ce('0x1e')],function(_0x286b46){return{'model':db[_0x286b46[_0x86ce('0x1f')]],'as':_0x286b46['as'],'attributes':_0x286b46['attributes'],'include':_0x286b46['include']?_[_0x86ce('0x20')](_0x286b46[_0x86ce('0x1e')],function(_0x2cd632){return{'model':db[_0x2cd632['model']],'as':_0x2cd632['as'],'attributes':_0x2cd632['attributes']};}):[]};}):[]};}):[]:[]})[_0x86ce('0xb')](function(_0xadde8){logger[_0x86ce('0xc')](_0x86ce('0x17'),_0x458ef1);logger[_0x86ce('0xe')](_0x86ce('0x17'),_0x458ef1,JSON[_0x86ce('0x10')](_0xadde8));_0x9d9cbd(_0xadde8);})[_0x86ce('0x16')](function(_0x5c4b31){logger['error'](_0x86ce('0x17'),_0x5c4b31[_0x86ce('0x14')],_0x458ef1);_0x2ead0d(_0x18f68d['error'](0x1f4,_0x5c4b31[_0x86ce('0x14')]));});});};exports['ShowServicenowAccount']=function(_0x30181d){var _0x133041=this;return new Promise(function(_0x5c8011,_0x5eefaf){return db[_0x86ce('0x18')][_0x86ce('0x21')]({'raw':_0x30181d[_0x86ce('0x19')]?_0x30181d[_0x86ce('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x30181d[_0x86ce('0x19')]?_0x30181d[_0x86ce('0x19')]['where']||null:null,'attributes':_0x30181d[_0x86ce('0x19')]?_0x30181d[_0x86ce('0x19')]['attributes']||null:null,'include':_0x30181d[_0x86ce('0x19')]?_0x30181d[_0x86ce('0x19')][_0x86ce('0x1e')]?_[_0x86ce('0x20')](_0x30181d[_0x86ce('0x19')][_0x86ce('0x1e')],function(_0x281f4e){return{'model':db[_0x281f4e['model']],'as':_0x281f4e['as'],'attributes':_0x281f4e['attributes'],'include':_0x281f4e[_0x86ce('0x1e')]?_[_0x86ce('0x20')](_0x281f4e[_0x86ce('0x1e')],function(_0x191827){return{'model':db[_0x191827[_0x86ce('0x1f')]],'as':_0x191827['as'],'attributes':_0x191827['attributes'],'include':_0x191827[_0x86ce('0x1e')]?_['map'](_0x191827[_0x86ce('0x1e')],function(_0x258db1){return{'model':db[_0x258db1['model']],'as':_0x258db1['as'],'attributes':_0x258db1['attributes']};}):[]};}):[]};}):[]:[]})[_0x86ce('0xb')](function(_0x1da157){logger[_0x86ce('0xc')](_0x86ce('0x22'),_0x30181d);logger[_0x86ce('0xe')](_0x86ce('0x22'),_0x30181d,JSON[_0x86ce('0x10')](_0x1da157));_0x5c8011(_0x1da157);})[_0x86ce('0x16')](function(_0x42b64e){logger[_0x86ce('0x11')](_0x86ce('0x22'),_0x42b64e[_0x86ce('0x14')],_0x30181d);_0x5eefaf(_0x133041['error'](0x1f4,_0x42b64e[_0x86ce('0x14')]));});});};
\ No newline at end of file
+var _0x291f=['code','message','result','catch','ServicenowAccount','findAll','options','raw','where','attributes','limit','include','map','model','GetServicenowAccount','ShowServicenowAccount','moment','randomstring','../../mysqldb','../../config/logger','jayson/promise','client','http','then','info','ServicenowAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error'];(function(_0x3e15a9,_0x51797a){var _0x1f6e25=function(_0x321d72){while(--_0x321d72){_0x3e15a9['push'](_0x3e15a9['shift']());}};_0x1f6e25(++_0x51797a);}(_0x291f,0xa6));var _0xf291=function(_0x3031a3,_0x259efa){_0x3031a3=_0x3031a3-0x0;var _0x22b6d1=_0x291f[_0x3031a3];return _0x22b6d1;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xf291('0x0'));var BPromise=require('bluebird');var rs=require(_0xf291('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf291('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0xf291('0x3'))('rpc');var config=require('../../config/environment');var jayson=require(_0xf291('0x4'));var client=jayson[_0xf291('0x5')][_0xf291('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x9ba697,_0x50be96,_0x56ec5d){return new BPromise(function(_0x286048,_0x353d1b){return client['request'](_0x9ba697,_0x56ec5d)[_0xf291('0x7')](function(_0x463091){logger[_0xf291('0x8')](_0xf291('0x9'),_0x50be96,_0xf291('0xa'));logger[_0xf291('0xb')]('ServicenowAccount,\x20%s,\x20%s,\x20%s',_0x50be96,_0xf291('0xa'),JSON[_0xf291('0xc')](_0x463091));if(_0x463091[_0xf291('0xd')]){if(_0x463091[_0xf291('0xd')][_0xf291('0xe')]===0x1f4){logger[_0xf291('0xd')](_0xf291('0x9'),_0x50be96,_0x463091['error'][_0xf291('0xf')]);return _0x353d1b(_0x463091[_0xf291('0xd')][_0xf291('0xf')]);}logger[_0xf291('0xd')](_0xf291('0x9'),_0x50be96,_0x463091[_0xf291('0xd')][_0xf291('0xf')]);return _0x286048(_0x463091[_0xf291('0xd')][_0xf291('0xf')]);}else{logger[_0xf291('0x8')](_0xf291('0x9'),_0x50be96,_0xf291('0xa'));_0x286048(_0x463091[_0xf291('0x10')]['message']);}})[_0xf291('0x11')](function(_0x1658fc){logger['error'](_0xf291('0x9'),_0x50be96,_0x1658fc);_0x353d1b(_0x1658fc);});});}exports['GetServicenowAccount']=function(_0x57b4c5){var _0x15fa8d=this;return new Promise(function(_0x31a734,_0x2c0f3e){return db[_0xf291('0x12')][_0xf291('0x13')]({'raw':_0x57b4c5[_0xf291('0x14')]?_0x57b4c5['options'][_0xf291('0x15')]===undefined?!![]:![]:!![],'where':_0x57b4c5[_0xf291('0x14')]?_0x57b4c5[_0xf291('0x14')][_0xf291('0x16')]||null:null,'attributes':_0x57b4c5[_0xf291('0x14')]?_0x57b4c5['options'][_0xf291('0x17')]||null:null,'limit':_0x57b4c5['options']?_0x57b4c5[_0xf291('0x14')][_0xf291('0x18')]||null:null,'include':_0x57b4c5[_0xf291('0x14')]?_0x57b4c5[_0xf291('0x14')][_0xf291('0x19')]?_[_0xf291('0x1a')](_0x57b4c5['options'][_0xf291('0x19')],function(_0x566301){return{'model':db[_0x566301['model']],'as':_0x566301['as'],'attributes':_0x566301[_0xf291('0x17')],'include':_0x566301['include']?_[_0xf291('0x1a')](_0x566301[_0xf291('0x19')],function(_0x149ae7){return{'model':db[_0x149ae7[_0xf291('0x1b')]],'as':_0x149ae7['as'],'attributes':_0x149ae7[_0xf291('0x17')],'include':_0x149ae7[_0xf291('0x19')]?_['map'](_0x149ae7['include'],function(_0x228fc3){return{'model':db[_0x228fc3[_0xf291('0x1b')]],'as':_0x228fc3['as'],'attributes':_0x228fc3[_0xf291('0x17')]};}):[]};}):[]};}):[]:[]})[_0xf291('0x7')](function(_0xdde84d){logger[_0xf291('0x8')]('GetServicenowAccount',_0x57b4c5);logger['debug'](_0xf291('0x1c'),_0x57b4c5,JSON[_0xf291('0xc')](_0xdde84d));_0x31a734(_0xdde84d);})[_0xf291('0x11')](function(_0x92b55a){logger[_0xf291('0xd')]('GetServicenowAccount',_0x92b55a[_0xf291('0xf')],_0x57b4c5);_0x2c0f3e(_0x15fa8d[_0xf291('0xd')](0x1f4,_0x92b55a[_0xf291('0xf')]));});});};exports[_0xf291('0x1d')]=function(_0x1dd1a8){var _0x2f49d6=this;return new Promise(function(_0x2d6dea,_0x123cbb){return db[_0xf291('0x12')]['find']({'raw':_0x1dd1a8[_0xf291('0x14')]?_0x1dd1a8[_0xf291('0x14')][_0xf291('0x15')]===undefined?!![]:![]:!![],'where':_0x1dd1a8[_0xf291('0x14')]?_0x1dd1a8[_0xf291('0x14')][_0xf291('0x16')]||null:null,'attributes':_0x1dd1a8[_0xf291('0x14')]?_0x1dd1a8['options'][_0xf291('0x17')]||null:null,'include':_0x1dd1a8['options']?_0x1dd1a8[_0xf291('0x14')][_0xf291('0x19')]?_[_0xf291('0x1a')](_0x1dd1a8['options'][_0xf291('0x19')],function(_0x2b7337){return{'model':db[_0x2b7337['model']],'as':_0x2b7337['as'],'attributes':_0x2b7337[_0xf291('0x17')],'include':_0x2b7337[_0xf291('0x19')]?_[_0xf291('0x1a')](_0x2b7337[_0xf291('0x19')],function(_0xd6762f){return{'model':db[_0xd6762f['model']],'as':_0xd6762f['as'],'attributes':_0xd6762f[_0xf291('0x17')],'include':_0xd6762f[_0xf291('0x19')]?_[_0xf291('0x1a')](_0xd6762f[_0xf291('0x19')],function(_0x390bce){return{'model':db[_0x390bce[_0xf291('0x1b')]],'as':_0x390bce['as'],'attributes':_0x390bce[_0xf291('0x17')]};}):[]};}):[]};}):[]:[]})[_0xf291('0x7')](function(_0x5247aa){logger[_0xf291('0x8')](_0xf291('0x1d'),_0x1dd1a8);logger[_0xf291('0xb')](_0xf291('0x1d'),_0x1dd1a8,JSON[_0xf291('0xc')](_0x5247aa));_0x2d6dea(_0x5247aa);})[_0xf291('0x11')](function(_0x119abc){logger[_0xf291('0xd')](_0xf291('0x1d'),_0x119abc[_0xf291('0xf')],_0x1dd1a8);_0x123cbb(_0x2f49d6[_0xf291('0xd')](0x1f4,_0x119abc[_0xf291('0xf')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4167=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intServicenowConfiguration.controller','get','isAuthenticated','index','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','create','put','/:id','update','delete','exports','multer','util'];(function(_0x1ebc96,_0x28785b){var _0x5a5174=function(_0x234e70){while(--_0x234e70){_0x1ebc96['push'](_0x1ebc96['shift']());}};_0x5a5174(++_0x28785b);}(_0x4167,0x1c6));var _0x7416=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4167[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x7416('0x0'));var util=require(_0x7416('0x1'));var path=require(_0x7416('0x2'));var timeout=require(_0x7416('0x3'));var express=require(_0x7416('0x4'));var router=express[_0x7416('0x5')]();var fs_extra=require(_0x7416('0x6'));var auth=require(_0x7416('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x7416('0x8'));var controller=require(_0x7416('0x9'));router[_0x7416('0xa')]('/',auth[_0x7416('0xb')](),controller[_0x7416('0xc')]);router[_0x7416('0xa')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x7416('0xa')](_0x7416('0xd'),auth['isAuthenticated'](),controller['getFields']);router[_0x7416('0xa')](_0x7416('0xe'),auth[_0x7416('0xb')](),controller[_0x7416('0xf')]);router[_0x7416('0xa')](_0x7416('0x10'),auth[_0x7416('0xb')](),controller[_0x7416('0x11')]);router['post']('/',auth[_0x7416('0xb')](),controller[_0x7416('0x12')]);router[_0x7416('0x13')](_0x7416('0x14'),auth[_0x7416('0xb')](),controller[_0x7416('0x15')]);router[_0x7416('0x16')]('/:id',auth[_0x7416('0xb')](),controller['destroy']);module[_0x7416('0x17')]=router;
\ No newline at end of file
+var _0x9d45=['update','delete','destroy','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intServicenowConfiguration.controller','get','/:id','show','/:id/fields','getFields','/:id/subjects','isAuthenticated','getSubjects','/:id/descriptions','post','create','put'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x9d45,0xfe));var _0x59d4=function(_0x1f0219,_0x20989d){_0x1f0219=_0x1f0219-0x0;var _0x1028be=_0x9d45[_0x1f0219];return _0x1028be;};'use strict';var multer=require(_0x59d4('0x0'));var util=require('util');var path=require(_0x59d4('0x1'));var timeout=require('connect-timeout');var express=require(_0x59d4('0x2'));var router=express[_0x59d4('0x3')]();var fs_extra=require(_0x59d4('0x4'));var auth=require(_0x59d4('0x5'));var interaction=require(_0x59d4('0x6'));var config=require(_0x59d4('0x7'));var controller=require(_0x59d4('0x8'));router[_0x59d4('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x59d4('0x9')](_0x59d4('0xa'),auth['isAuthenticated'](),controller[_0x59d4('0xb')]);router[_0x59d4('0x9')](_0x59d4('0xc'),auth['isAuthenticated'](),controller[_0x59d4('0xd')]);router[_0x59d4('0x9')](_0x59d4('0xe'),auth[_0x59d4('0xf')](),controller[_0x59d4('0x10')]);router[_0x59d4('0x9')](_0x59d4('0x11'),auth[_0x59d4('0xf')](),controller['getDescriptions']);router[_0x59d4('0x12')]('/',auth[_0x59d4('0xf')](),controller[_0x59d4('0x13')]);router[_0x59d4('0x14')](_0x59d4('0xa'),auth[_0x59d4('0xf')](),controller[_0x59d4('0x15')]);router[_0x59d4('0x16')](_0x59d4('0xa'),auth['isAuthenticated'](),controller[_0x59d4('0x17')]);module[_0x59d4('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaee5=['sequelize','exports','STRING'];(function(_0x1f345b,_0x300dd5){var _0x4883c3=function(_0x1329fb){while(--_0x1329fb){_0x1f345b['push'](_0x1f345b['shift']());}};_0x4883c3(++_0x300dd5);}(_0xaee5,0x1d7));var _0x5aee=function(_0xdb8b54,_0x25938e){_0xdb8b54=_0xdb8b54-0x0;var _0x488c39=_0xaee5[_0xdb8b54];return _0x488c39;};'use strict';var Sequelize=require(_0x5aee('0x0'));module[_0x5aee('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x5aee('0x2')]}};
\ No newline at end of file
+var _0x81cc=['sequelize','STRING'];(function(_0x2f7ffe,_0xfff10a){var _0x39f082=function(_0x584e9c){while(--_0x584e9c){_0x2f7ffe['push'](_0x2f7ffe['shift']());}};_0x39f082(++_0xfff10a);}(_0x81cc,0xa8));var _0xc81c=function(_0x707081,_0x4dde83){_0x707081=_0x707081-0x0;var _0x323b8f=_0x81cc[_0x707081];return _0x323b8f;};'use strict';var Sequelize=require(_0xc81c('0x0'));module['exports']={'name':{'type':Sequelize[_0xc81c('0x1')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc7e2=['path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','status','end','offset','undefined','limit','count','set','json','apply','reject','save','then','destroy','sendStatus','stack','name','send','map','fieldName','type','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','ServicenowConfiguration','findAll','rows','catch','show','keys','rawAttributes','include','create','body','update','find','params','getFields','options','nolimit','getSubjects','findOne','ServicenowField','getDescriptions','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util'];(function(_0x54c1d9,_0x5d13a0){var _0x5ca810=function(_0x5f2e3d){while(--_0x5f2e3d){_0x54c1d9['push'](_0x54c1d9['shift']());}};_0x5ca810(++_0x5d13a0);}(_0xc7e2,0x1d3));var _0x2c7e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc7e2[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2c7e('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2c7e('0x1'));var rp=require(_0x2c7e('0x2'));var moment=require(_0x2c7e('0x3'));var BPromise=require(_0x2c7e('0x4'));var Mustache=require(_0x2c7e('0x5'));var util=require(_0x2c7e('0x6'));var path=require(_0x2c7e('0x7'));var sox=require(_0x2c7e('0x8'));var csv=require(_0x2c7e('0x9'));var ejs=require(_0x2c7e('0xa'));var fs=require('fs');var fs_extra=require(_0x2c7e('0xb'));var _=require(_0x2c7e('0xc'));var squel=require(_0x2c7e('0xd'));var crypto=require(_0x2c7e('0xe'));var jsforce=require(_0x2c7e('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x2c7e('0x9'));var querystring=require(_0x2c7e('0x10'));var Papa=require('papaparse');var Redis=require(_0x2c7e('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x2c7e('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2c7e('0x13'));var logger=require(_0x2c7e('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x2c7e('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x2c7e('0x16'))['db'];function respondWithStatusCode(_0x3208c7,_0x3b7f29){_0x3b7f29=_0x3b7f29||0xcc;return function(_0x5113b7){if(_0x5113b7){return _0x3208c7['sendStatus'](_0x3b7f29);}return _0x3208c7[_0x2c7e('0x17')](_0x3b7f29)[_0x2c7e('0x18')]();};}function respondWithResult(_0x267919,_0x55b02f){_0x55b02f=_0x55b02f||0xc8;return function(_0x576fd0){if(_0x576fd0){return _0x267919[_0x2c7e('0x17')](_0x55b02f)['json'](_0x576fd0);}};}function respondWithFilteredResult(_0x4c3df4,_0xf74afe){return function(_0x31712f){if(_0x31712f){var _0x42b5f9=typeof _0xf74afe[_0x2c7e('0x19')]===_0x2c7e('0x1a')&&typeof _0xf74afe[_0x2c7e('0x1b')]===_0x2c7e('0x1a');var _0x2c7956=_0x31712f[_0x2c7e('0x1c')];var _0x550105=_0x42b5f9?0x0:_0xf74afe[_0x2c7e('0x19')];var _0x56a7a5=_0x42b5f9?_0x31712f[_0x2c7e('0x1c')]:_0xf74afe[_0x2c7e('0x19')]+_0xf74afe[_0x2c7e('0x1b')];var _0x297363;if(_0x56a7a5>=_0x2c7956){_0x56a7a5=_0x2c7956;_0x297363=0xc8;}else{_0x297363=0xce;}_0x4c3df4[_0x2c7e('0x17')](_0x297363);return _0x4c3df4[_0x2c7e('0x1d')]('Content-Range',_0x550105+'-'+_0x56a7a5+'/'+_0x2c7956)[_0x2c7e('0x1e')](_0x31712f);}return null;};}function patchUpdates(_0x4a3e32){return function(_0x1f1b04){try{jsonpatch[_0x2c7e('0x1f')](_0x1f1b04,_0x4a3e32,!![]);}catch(_0x244808){return BPromise[_0x2c7e('0x20')](_0x244808);}return _0x1f1b04[_0x2c7e('0x21')]();};}function saveUpdates(_0x41b105,_0x577fc7){return function(_0x5e0eae){if(_0x5e0eae){return _0x5e0eae['update'](_0x41b105)[_0x2c7e('0x22')](function(_0x43398a){return _0x43398a;});}return null;};}function removeEntity(_0xd3998a,_0x4b5f0b){return function(_0x2e920d){if(_0x2e920d){return _0x2e920d[_0x2c7e('0x23')]()[_0x2c7e('0x22')](function(){_0xd3998a[_0x2c7e('0x17')](0xcc)[_0x2c7e('0x18')]();});}};}function handleEntityNotFound(_0x4f63e1,_0x3fe96f){return function(_0x726990){if(!_0x726990){_0x4f63e1[_0x2c7e('0x24')](0x194);}return _0x726990;};}function handleError(_0x495eb5,_0x5a7799){_0x5a7799=_0x5a7799||0x1f4;return function(_0x219e7d){logger['error'](_0x219e7d[_0x2c7e('0x25')]);if(_0x219e7d[_0x2c7e('0x26')]){delete _0x219e7d[_0x2c7e('0x26')];}_0x495eb5['status'](_0x5a7799)[_0x2c7e('0x27')](_0x219e7d);};}exports['index']=function(_0x4ae33e,_0x35212a){var _0x1df3ff={},_0x36f328={},_0x5e5a91={'count':0x0,'rows':[]};var _0x25bfc9=_[_0x2c7e('0x28')](db['ServicenowConfiguration']['rawAttributes'],function(_0x4e108a){return{'name':_0x4e108a[_0x2c7e('0x29')],'type':_0x4e108a[_0x2c7e('0x2a')]['key']};});_0x36f328['model']=_['map'](_0x25bfc9,_0x2c7e('0x26'));_0x36f328[_0x2c7e('0x2b')]=_['keys'](_0x4ae33e[_0x2c7e('0x2b')]);_0x36f328[_0x2c7e('0x2c')]=_[_0x2c7e('0x2d')](_0x36f328[_0x2c7e('0x2e')],_0x36f328[_0x2c7e('0x2b')]);_0x1df3ff[_0x2c7e('0x2f')]=_[_0x2c7e('0x2d')](_0x36f328[_0x2c7e('0x2e')],qs['fields'](_0x4ae33e[_0x2c7e('0x2b')][_0x2c7e('0x30')]));_0x1df3ff[_0x2c7e('0x2f')]=_0x1df3ff[_0x2c7e('0x2f')][_0x2c7e('0x31')]?_0x1df3ff[_0x2c7e('0x2f')]:_0x36f328[_0x2c7e('0x2e')];if(!_0x4ae33e[_0x2c7e('0x2b')][_0x2c7e('0x32')]('nolimit')){_0x1df3ff['limit']=qs[_0x2c7e('0x1b')](_0x4ae33e[_0x2c7e('0x2b')][_0x2c7e('0x1b')]);_0x1df3ff[_0x2c7e('0x19')]=qs[_0x2c7e('0x19')](_0x4ae33e['query'][_0x2c7e('0x19')]);}_0x1df3ff[_0x2c7e('0x33')]=qs[_0x2c7e('0x34')](_0x4ae33e['query'][_0x2c7e('0x34')]);_0x1df3ff[_0x2c7e('0x35')]=qs[_0x2c7e('0x2c')](_[_0x2c7e('0x36')](_0x4ae33e[_0x2c7e('0x2b')],_0x36f328['filters']),_0x25bfc9);if(_0x4ae33e[_0x2c7e('0x2b')][_0x2c7e('0x37')]){_0x1df3ff[_0x2c7e('0x35')]=_[_0x2c7e('0x38')](_0x1df3ff['where'],{'$or':_[_0x2c7e('0x28')](_0x25bfc9,function(_0x2fc7c5){if(_0x2fc7c5[_0x2c7e('0x2a')]!==_0x2c7e('0x39')){var _0x11c6be={};_0x11c6be[_0x2fc7c5[_0x2c7e('0x26')]]={'$like':'%'+_0x4ae33e['query'][_0x2c7e('0x37')]+'%'};return _0x11c6be;}})});}_0x1df3ff=_[_0x2c7e('0x38')]({},_0x1df3ff,_0x4ae33e['options']);var _0x101ae2={'where':_0x1df3ff[_0x2c7e('0x35')]};return db['ServicenowConfiguration'][_0x2c7e('0x1c')](_0x101ae2)[_0x2c7e('0x22')](function(_0x1c79dd){_0x5e5a91['count']=_0x1c79dd;if(_0x4ae33e[_0x2c7e('0x2b')][_0x2c7e('0x3a')]){_0x1df3ff['include']=[{'all':!![]}];}return db[_0x2c7e('0x3b')][_0x2c7e('0x3c')](_0x1df3ff);})[_0x2c7e('0x22')](function(_0x5a50f4){_0x5e5a91[_0x2c7e('0x3d')]=_0x5a50f4;return _0x5e5a91;})[_0x2c7e('0x22')](respondWithFilteredResult(_0x35212a,_0x1df3ff))[_0x2c7e('0x3e')](handleError(_0x35212a,null));};exports[_0x2c7e('0x3f')]=function(_0x4b9912,_0x26835c){var _0x5d6079={'raw':![],'where':{'id':_0x4b9912['params']['id']}},_0x2a006c={};_0x2a006c[_0x2c7e('0x2e')]=_[_0x2c7e('0x40')](db['ServicenowConfiguration'][_0x2c7e('0x41')]);_0x2a006c[_0x2c7e('0x2b')]=_[_0x2c7e('0x40')](_0x4b9912[_0x2c7e('0x2b')]);_0x2a006c[_0x2c7e('0x2c')]=_[_0x2c7e('0x2d')](_0x2a006c[_0x2c7e('0x2e')],_0x2a006c[_0x2c7e('0x2b')]);_0x5d6079[_0x2c7e('0x2f')]=_[_0x2c7e('0x2d')](_0x2a006c[_0x2c7e('0x2e')],qs[_0x2c7e('0x30')](_0x4b9912[_0x2c7e('0x2b')]['fields']));_0x5d6079[_0x2c7e('0x2f')]=_0x5d6079[_0x2c7e('0x2f')][_0x2c7e('0x31')]?_0x5d6079[_0x2c7e('0x2f')]:_0x2a006c['model'];if(_0x4b9912[_0x2c7e('0x2b')][_0x2c7e('0x3a')]){_0x5d6079[_0x2c7e('0x42')]=[{'all':!![]}];}_0x5d6079=_[_0x2c7e('0x38')]({},_0x5d6079,_0x4b9912['options']);return db[_0x2c7e('0x3b')]['find'](_0x5d6079)[_0x2c7e('0x22')](handleEntityNotFound(_0x26835c,null))[_0x2c7e('0x22')](respondWithResult(_0x26835c,null))[_0x2c7e('0x3e')](handleError(_0x26835c,null));};exports['create']=function(_0x1288bc,_0x3b6467){return db['ServicenowConfiguration'][_0x2c7e('0x43')](_0x1288bc[_0x2c7e('0x44')],{})[_0x2c7e('0x22')](respondWithResult(_0x3b6467,0xc9))[_0x2c7e('0x3e')](handleError(_0x3b6467,null));};exports[_0x2c7e('0x45')]=function(_0x572a18,_0x4bc6b0){if(_0x572a18[_0x2c7e('0x44')]['id']){delete _0x572a18['body']['id'];}return db[_0x2c7e('0x3b')]['find']({'where':{'id':_0x572a18['params']['id']}})['then'](handleEntityNotFound(_0x4bc6b0,null))[_0x2c7e('0x22')](saveUpdates(_0x572a18[_0x2c7e('0x44')],null))[_0x2c7e('0x22')](respondWithResult(_0x4bc6b0,null))[_0x2c7e('0x3e')](handleError(_0x4bc6b0,null));};exports[_0x2c7e('0x23')]=function(_0xc5c529,_0x44d3c1){return db[_0x2c7e('0x3b')][_0x2c7e('0x46')]({'where':{'id':_0xc5c529[_0x2c7e('0x47')]['id']}})[_0x2c7e('0x22')](handleEntityNotFound(_0x44d3c1,null))['then'](removeEntity(_0x44d3c1,null))[_0x2c7e('0x3e')](handleError(_0x44d3c1,null));};exports[_0x2c7e('0x48')]=function(_0x1ad6b0,_0x50342a,_0x582156){var _0x57e71c={};var _0x25a8ef={};var _0x352d43;var _0x4bb270;return db['ServicenowConfiguration']['findOne']({'where':{'id':_0x1ad6b0[_0x2c7e('0x47')]['id']}})[_0x2c7e('0x22')](handleEntityNotFound(_0x50342a,null))[_0x2c7e('0x22')](function(_0x1306d8){if(_0x1306d8){_0x352d43=_0x1306d8;_0x25a8ef[_0x2c7e('0x2e')]=_['keys'](db['ServicenowField'][_0x2c7e('0x41')]);_0x25a8ef['query']=_[_0x2c7e('0x40')](_0x1ad6b0[_0x2c7e('0x2b')]);_0x25a8ef[_0x2c7e('0x2c')]=_[_0x2c7e('0x2d')](_0x25a8ef[_0x2c7e('0x2e')],_0x25a8ef[_0x2c7e('0x2b')]);_0x57e71c[_0x2c7e('0x2f')]=_['intersection'](_0x25a8ef['model'],qs[_0x2c7e('0x30')](_0x1ad6b0[_0x2c7e('0x2b')][_0x2c7e('0x30')]));_0x57e71c[_0x2c7e('0x2f')]=_0x57e71c[_0x2c7e('0x2f')]['length']?_0x57e71c[_0x2c7e('0x2f')]:_0x25a8ef[_0x2c7e('0x2e')];_0x57e71c[_0x2c7e('0x33')]=qs[_0x2c7e('0x34')](_0x1ad6b0[_0x2c7e('0x2b')][_0x2c7e('0x34')]);_0x57e71c[_0x2c7e('0x35')]=qs[_0x2c7e('0x2c')](_[_0x2c7e('0x36')](_0x1ad6b0[_0x2c7e('0x2b')],_0x25a8ef[_0x2c7e('0x2c')]));if(_0x1ad6b0[_0x2c7e('0x2b')][_0x2c7e('0x37')]){_0x57e71c['where']=_[_0x2c7e('0x38')](_0x57e71c[_0x2c7e('0x35')],{'$or':_[_0x2c7e('0x28')](_0x57e71c[_0x2c7e('0x2f')],function(_0xc572){var _0x10acb7={};_0x10acb7[_0xc572]={'$like':'%'+_0x1ad6b0['query'][_0x2c7e('0x37')]+'%'};return _0x10acb7;})});}_0x57e71c=_[_0x2c7e('0x38')]({},_0x57e71c,_0x1ad6b0[_0x2c7e('0x49')]);return _0x352d43[_0x2c7e('0x48')](_0x57e71c);}})[_0x2c7e('0x22')](function(_0xbe7212){if(_0xbe7212){_0x4bb270=_0xbe7212[_0x2c7e('0x31')];if(!_0x1ad6b0[_0x2c7e('0x2b')][_0x2c7e('0x32')](_0x2c7e('0x4a'))){_0x57e71c[_0x2c7e('0x1b')]=qs['limit'](_0x1ad6b0[_0x2c7e('0x2b')][_0x2c7e('0x1b')]);_0x57e71c['offset']=qs[_0x2c7e('0x19')](_0x1ad6b0[_0x2c7e('0x2b')][_0x2c7e('0x19')]);}return _0x352d43['getFields'](_0x57e71c);}})[_0x2c7e('0x22')](function(_0x49176f){if(_0x49176f){return _0x49176f?{'count':_0x4bb270,'rows':_0x49176f}:null;}})[_0x2c7e('0x22')](respondWithResult(_0x50342a,null))[_0x2c7e('0x3e')](handleError(_0x50342a,null));};exports[_0x2c7e('0x4b')]=function(_0x5de608,_0x315bfa,_0x28a189){var _0x2c4950={};var _0x92e5e2={};var _0x44a6d6;var _0x3ee43d;return db['ServicenowConfiguration'][_0x2c7e('0x4c')]({'where':{'id':_0x5de608[_0x2c7e('0x47')]['id']}})['then'](handleEntityNotFound(_0x315bfa,null))[_0x2c7e('0x22')](function(_0x1bb8ac){if(_0x1bb8ac){_0x44a6d6=_0x1bb8ac;_0x92e5e2['model']=_[_0x2c7e('0x40')](db[_0x2c7e('0x4d')][_0x2c7e('0x41')]);_0x92e5e2[_0x2c7e('0x2b')]=_['keys'](_0x5de608[_0x2c7e('0x2b')]);_0x92e5e2[_0x2c7e('0x2c')]=_[_0x2c7e('0x2d')](_0x92e5e2[_0x2c7e('0x2e')],_0x92e5e2[_0x2c7e('0x2b')]);_0x2c4950[_0x2c7e('0x2f')]=_[_0x2c7e('0x2d')](_0x92e5e2[_0x2c7e('0x2e')],qs[_0x2c7e('0x30')](_0x5de608[_0x2c7e('0x2b')][_0x2c7e('0x30')]));_0x2c4950[_0x2c7e('0x2f')]=_0x2c4950[_0x2c7e('0x2f')][_0x2c7e('0x31')]?_0x2c4950[_0x2c7e('0x2f')]:_0x92e5e2['model'];_0x2c4950['order']=qs[_0x2c7e('0x34')](_0x5de608[_0x2c7e('0x2b')][_0x2c7e('0x34')]);_0x2c4950['where']=qs[_0x2c7e('0x2c')](_[_0x2c7e('0x36')](_0x5de608[_0x2c7e('0x2b')],_0x92e5e2[_0x2c7e('0x2c')]));if(_0x5de608[_0x2c7e('0x2b')][_0x2c7e('0x37')]){_0x2c4950['where']=_['merge'](_0x2c4950['where'],{'$or':_['map'](_0x2c4950[_0x2c7e('0x2f')],function(_0x1aa4ab){var _0x55361b={};_0x55361b[_0x1aa4ab]={'$like':'%'+_0x5de608['query']['filter']+'%'};return _0x55361b;})});}_0x2c4950=_[_0x2c7e('0x38')]({},_0x2c4950,_0x5de608['options']);return _0x44a6d6['getSubjects'](_0x2c4950);}})[_0x2c7e('0x22')](function(_0x8f80f5){if(_0x8f80f5){_0x3ee43d=_0x8f80f5[_0x2c7e('0x31')];if(!_0x5de608[_0x2c7e('0x2b')][_0x2c7e('0x32')]('nolimit')){_0x2c4950[_0x2c7e('0x1b')]=qs[_0x2c7e('0x1b')](_0x5de608[_0x2c7e('0x2b')]['limit']);_0x2c4950[_0x2c7e('0x19')]=qs[_0x2c7e('0x19')](_0x5de608[_0x2c7e('0x2b')][_0x2c7e('0x19')]);}return _0x44a6d6[_0x2c7e('0x4b')](_0x2c4950);}})[_0x2c7e('0x22')](function(_0x4ca498){if(_0x4ca498){return _0x4ca498?{'count':_0x3ee43d,'rows':_0x4ca498}:null;}})[_0x2c7e('0x22')](respondWithResult(_0x315bfa,null))[_0x2c7e('0x3e')](handleError(_0x315bfa,null));};exports[_0x2c7e('0x4e')]=function(_0x453771,_0x52861b,_0x3373f4){var _0x4ee11b={};var _0x1490c4={};var _0x5d1771;var _0x3d753a;return db[_0x2c7e('0x3b')][_0x2c7e('0x4c')]({'where':{'id':_0x453771[_0x2c7e('0x47')]['id']}})['then'](handleEntityNotFound(_0x52861b,null))[_0x2c7e('0x22')](function(_0xa812b){if(_0xa812b){_0x5d1771=_0xa812b;_0x1490c4['model']=_[_0x2c7e('0x40')](db['ServicenowField'][_0x2c7e('0x41')]);_0x1490c4[_0x2c7e('0x2b')]=_['keys'](_0x453771[_0x2c7e('0x2b')]);_0x1490c4[_0x2c7e('0x2c')]=_[_0x2c7e('0x2d')](_0x1490c4['model'],_0x1490c4[_0x2c7e('0x2b')]);_0x4ee11b['attributes']=_[_0x2c7e('0x2d')](_0x1490c4[_0x2c7e('0x2e')],qs[_0x2c7e('0x30')](_0x453771[_0x2c7e('0x2b')]['fields']));_0x4ee11b['attributes']=_0x4ee11b[_0x2c7e('0x2f')][_0x2c7e('0x31')]?_0x4ee11b['attributes']:_0x1490c4[_0x2c7e('0x2e')];_0x4ee11b[_0x2c7e('0x33')]=qs[_0x2c7e('0x34')](_0x453771[_0x2c7e('0x2b')]['sort']);_0x4ee11b[_0x2c7e('0x35')]=qs[_0x2c7e('0x2c')](_[_0x2c7e('0x36')](_0x453771['query'],_0x1490c4[_0x2c7e('0x2c')]));if(_0x453771[_0x2c7e('0x2b')][_0x2c7e('0x37')]){_0x4ee11b['where']=_['merge'](_0x4ee11b[_0x2c7e('0x35')],{'$or':_[_0x2c7e('0x28')](_0x4ee11b['attributes'],function(_0x2cf0cb){var _0x4a2859={};_0x4a2859[_0x2cf0cb]={'$like':'%'+_0x453771[_0x2c7e('0x2b')][_0x2c7e('0x37')]+'%'};return _0x4a2859;})});}_0x4ee11b=_[_0x2c7e('0x38')]({},_0x4ee11b,_0x453771[_0x2c7e('0x49')]);return _0x5d1771[_0x2c7e('0x4e')](_0x4ee11b);}})[_0x2c7e('0x22')](function(_0x1aeac9){if(_0x1aeac9){_0x3d753a=_0x1aeac9['length'];if(!_0x453771[_0x2c7e('0x2b')][_0x2c7e('0x32')]('nolimit')){_0x4ee11b[_0x2c7e('0x1b')]=qs[_0x2c7e('0x1b')](_0x453771[_0x2c7e('0x2b')][_0x2c7e('0x1b')]);_0x4ee11b[_0x2c7e('0x19')]=qs[_0x2c7e('0x19')](_0x453771[_0x2c7e('0x2b')]['offset']);}return _0x5d1771['getDescriptions'](_0x4ee11b);}})['then'](function(_0x15f876){if(_0x15f876){return _0x15f876?{'count':_0x3d753a,'rows':_0x15f876}:null;}})[_0x2c7e('0x22')](respondWithResult(_0x52861b,null))['catch'](handleError(_0x52861b,null));};
\ No newline at end of file
+var _0x8b26=['fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type','VIRTUAL','options','ServicenowConfiguration','includeAll','include','findAll','rows','show','params','keys','catch','create','body','find','destroy','getFields','findOne','ServicenowField','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','apply','reject','update','then','error','stack','name','send','index','map','rawAttributes','fieldName','key','model','query','filters','intersection','attributes'];(function(_0x5a337e,_0x5ca4e5){var _0x33d8b8=function(_0x4212f7){while(--_0x4212f7){_0x5a337e['push'](_0x5a337e['shift']());}};_0x33d8b8(++_0x5ca4e5);}(_0x8b26,0x1b4));var _0x68b2=function(_0x3b95e2,_0x3d2dfb){_0x3b95e2=_0x3b95e2-0x0;var _0x1191c4=_0x8b26[_0x3b95e2];return _0x1191c4;};'use strict';var emlformat=require(_0x68b2('0x0'));var rimraf=require(_0x68b2('0x1'));var zipdir=require(_0x68b2('0x2'));var jsonpatch=require(_0x68b2('0x3'));var rp=require(_0x68b2('0x4'));var moment=require('moment');var BPromise=require(_0x68b2('0x5'));var Mustache=require(_0x68b2('0x6'));var util=require(_0x68b2('0x7'));var path=require(_0x68b2('0x8'));var sox=require('sox');var csv=require(_0x68b2('0x9'));var ejs=require(_0x68b2('0xa'));var fs=require('fs');var fs_extra=require(_0x68b2('0xb'));var _=require('lodash');var squel=require(_0x68b2('0xc'));var crypto=require(_0x68b2('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x68b2('0xe'));var toCsv=require(_0x68b2('0x9'));var querystring=require(_0x68b2('0xf'));var Papa=require('papaparse');var Redis=require(_0x68b2('0x10'));var authService=require(_0x68b2('0x11'));var qs=require(_0x68b2('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x68b2('0x13'));var logger=require('../../config/logger')(_0x68b2('0x14'));var utils=require('../../config/utils');var config=require(_0x68b2('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x68b2('0x16'))['db'];function respondWithStatusCode(_0x2ef86a,_0x4c97e6){_0x4c97e6=_0x4c97e6||0xcc;return function(_0x4946f0){if(_0x4946f0){return _0x2ef86a[_0x68b2('0x17')](_0x4c97e6);}return _0x2ef86a['status'](_0x4c97e6)[_0x68b2('0x18')]();};}function respondWithResult(_0x2ac89a,_0x57c47c){_0x57c47c=_0x57c47c||0xc8;return function(_0x3cc327){if(_0x3cc327){return _0x2ac89a[_0x68b2('0x19')](_0x57c47c)[_0x68b2('0x1a')](_0x3cc327);}};}function respondWithFilteredResult(_0x1fce0d,_0x504337){return function(_0x122e48){if(_0x122e48){var _0x4440e9=typeof _0x504337[_0x68b2('0x1b')]===_0x68b2('0x1c')&&typeof _0x504337[_0x68b2('0x1d')]==='undefined';var _0x15a0a2=_0x122e48['count'];var _0x17c9dd=_0x4440e9?0x0:_0x504337['offset'];var _0x1f3352=_0x4440e9?_0x122e48[_0x68b2('0x1e')]:_0x504337['offset']+_0x504337[_0x68b2('0x1d')];var _0x4a4a94;if(_0x1f3352>=_0x15a0a2){_0x1f3352=_0x15a0a2;_0x4a4a94=0xc8;}else{_0x4a4a94=0xce;}_0x1fce0d[_0x68b2('0x19')](_0x4a4a94);return _0x1fce0d[_0x68b2('0x1f')]('Content-Range',_0x17c9dd+'-'+_0x1f3352+'/'+_0x15a0a2)[_0x68b2('0x1a')](_0x122e48);}return null;};}function patchUpdates(_0x48066f){return function(_0x10c6f7){try{jsonpatch[_0x68b2('0x20')](_0x10c6f7,_0x48066f,!![]);}catch(_0x32ae9e){return BPromise[_0x68b2('0x21')](_0x32ae9e);}return _0x10c6f7['save']();};}function saveUpdates(_0x175fee,_0x55d3c6){return function(_0x49ed6b){if(_0x49ed6b){return _0x49ed6b[_0x68b2('0x22')](_0x175fee)['then'](function(_0x5e3c7f){return _0x5e3c7f;});}return null;};}function removeEntity(_0x2ff66f,_0x401efb){return function(_0x15840b){if(_0x15840b){return _0x15840b['destroy']()[_0x68b2('0x23')](function(){_0x2ff66f[_0x68b2('0x19')](0xcc)[_0x68b2('0x18')]();});}};}function handleEntityNotFound(_0x34c68a,_0x176f12){return function(_0x40914c){if(!_0x40914c){_0x34c68a[_0x68b2('0x17')](0x194);}return _0x40914c;};}function handleError(_0x2900bb,_0x1d14ca){_0x1d14ca=_0x1d14ca||0x1f4;return function(_0xd4b932){logger[_0x68b2('0x24')](_0xd4b932[_0x68b2('0x25')]);if(_0xd4b932[_0x68b2('0x26')]){delete _0xd4b932[_0x68b2('0x26')];}_0x2900bb[_0x68b2('0x19')](_0x1d14ca)[_0x68b2('0x27')](_0xd4b932);};}exports[_0x68b2('0x28')]=function(_0x9d515f,_0x259db1){var _0x4c788e={},_0x10c866={},_0x5b5dfb={'count':0x0,'rows':[]};var _0x4d71a1=_[_0x68b2('0x29')](db['ServicenowConfiguration'][_0x68b2('0x2a')],function(_0x30527c){return{'name':_0x30527c[_0x68b2('0x2b')],'type':_0x30527c['type'][_0x68b2('0x2c')]};});_0x10c866[_0x68b2('0x2d')]=_['map'](_0x4d71a1,_0x68b2('0x26'));_0x10c866[_0x68b2('0x2e')]=_['keys'](_0x9d515f[_0x68b2('0x2e')]);_0x10c866[_0x68b2('0x2f')]=_[_0x68b2('0x30')](_0x10c866[_0x68b2('0x2d')],_0x10c866['query']);_0x4c788e[_0x68b2('0x31')]=_[_0x68b2('0x30')](_0x10c866[_0x68b2('0x2d')],qs[_0x68b2('0x32')](_0x9d515f['query']['fields']));_0x4c788e[_0x68b2('0x31')]=_0x4c788e[_0x68b2('0x31')][_0x68b2('0x33')]?_0x4c788e[_0x68b2('0x31')]:_0x10c866[_0x68b2('0x2d')];if(!_0x9d515f['query'][_0x68b2('0x34')](_0x68b2('0x35'))){_0x4c788e[_0x68b2('0x1d')]=qs[_0x68b2('0x1d')](_0x9d515f['query'][_0x68b2('0x1d')]);_0x4c788e[_0x68b2('0x1b')]=qs[_0x68b2('0x1b')](_0x9d515f[_0x68b2('0x2e')]['offset']);}_0x4c788e[_0x68b2('0x36')]=qs[_0x68b2('0x37')](_0x9d515f[_0x68b2('0x2e')][_0x68b2('0x37')]);_0x4c788e['where']=qs[_0x68b2('0x2f')](_[_0x68b2('0x38')](_0x9d515f[_0x68b2('0x2e')],_0x10c866[_0x68b2('0x2f')]),_0x4d71a1);if(_0x9d515f[_0x68b2('0x2e')][_0x68b2('0x39')]){_0x4c788e[_0x68b2('0x3a')]=_[_0x68b2('0x3b')](_0x4c788e[_0x68b2('0x3a')],{'$or':_[_0x68b2('0x29')](_0x4d71a1,function(_0x23934b){if(_0x23934b[_0x68b2('0x3c')]!==_0x68b2('0x3d')){var _0x491057={};_0x491057[_0x23934b[_0x68b2('0x26')]]={'$like':'%'+_0x9d515f['query'][_0x68b2('0x39')]+'%'};return _0x491057;}})});}_0x4c788e=_['merge']({},_0x4c788e,_0x9d515f[_0x68b2('0x3e')]);var _0x2057cd={'where':_0x4c788e[_0x68b2('0x3a')]};return db[_0x68b2('0x3f')]['count'](_0x2057cd)[_0x68b2('0x23')](function(_0x1d93b6){_0x5b5dfb[_0x68b2('0x1e')]=_0x1d93b6;if(_0x9d515f['query'][_0x68b2('0x40')]){_0x4c788e[_0x68b2('0x41')]=[{'all':!![]}];}return db[_0x68b2('0x3f')][_0x68b2('0x42')](_0x4c788e);})[_0x68b2('0x23')](function(_0x4847fc){_0x5b5dfb[_0x68b2('0x43')]=_0x4847fc;return _0x5b5dfb;})['then'](respondWithFilteredResult(_0x259db1,_0x4c788e))['catch'](handleError(_0x259db1,null));};exports[_0x68b2('0x44')]=function(_0x1d6187,_0x492d51){var _0x1b268f={'raw':![],'where':{'id':_0x1d6187[_0x68b2('0x45')]['id']}},_0x5dcdd4={};_0x5dcdd4[_0x68b2('0x2d')]=_['keys'](db[_0x68b2('0x3f')]['rawAttributes']);_0x5dcdd4[_0x68b2('0x2e')]=_[_0x68b2('0x46')](_0x1d6187[_0x68b2('0x2e')]);_0x5dcdd4[_0x68b2('0x2f')]=_['intersection'](_0x5dcdd4[_0x68b2('0x2d')],_0x5dcdd4['query']);_0x1b268f[_0x68b2('0x31')]=_[_0x68b2('0x30')](_0x5dcdd4[_0x68b2('0x2d')],qs[_0x68b2('0x32')](_0x1d6187[_0x68b2('0x2e')]['fields']));_0x1b268f[_0x68b2('0x31')]=_0x1b268f[_0x68b2('0x31')][_0x68b2('0x33')]?_0x1b268f[_0x68b2('0x31')]:_0x5dcdd4[_0x68b2('0x2d')];if(_0x1d6187[_0x68b2('0x2e')][_0x68b2('0x40')]){_0x1b268f[_0x68b2('0x41')]=[{'all':!![]}];}_0x1b268f=_[_0x68b2('0x3b')]({},_0x1b268f,_0x1d6187[_0x68b2('0x3e')]);return db[_0x68b2('0x3f')]['find'](_0x1b268f)['then'](handleEntityNotFound(_0x492d51,null))['then'](respondWithResult(_0x492d51,null))[_0x68b2('0x47')](handleError(_0x492d51,null));};exports[_0x68b2('0x48')]=function(_0xfec73d,_0x2f3a71){return db[_0x68b2('0x3f')][_0x68b2('0x48')](_0xfec73d[_0x68b2('0x49')],{})[_0x68b2('0x23')](respondWithResult(_0x2f3a71,0xc9))['catch'](handleError(_0x2f3a71,null));};exports[_0x68b2('0x22')]=function(_0xbe18a,_0x1a9618){if(_0xbe18a['body']['id']){delete _0xbe18a['body']['id'];}return db[_0x68b2('0x3f')][_0x68b2('0x4a')]({'where':{'id':_0xbe18a[_0x68b2('0x45')]['id']}})[_0x68b2('0x23')](handleEntityNotFound(_0x1a9618,null))[_0x68b2('0x23')](saveUpdates(_0xbe18a[_0x68b2('0x49')],null))['then'](respondWithResult(_0x1a9618,null))['catch'](handleError(_0x1a9618,null));};exports[_0x68b2('0x4b')]=function(_0x22d6bf,_0x29a0f8){return db[_0x68b2('0x3f')][_0x68b2('0x4a')]({'where':{'id':_0x22d6bf[_0x68b2('0x45')]['id']}})[_0x68b2('0x23')](handleEntityNotFound(_0x29a0f8,null))[_0x68b2('0x23')](removeEntity(_0x29a0f8,null))[_0x68b2('0x47')](handleError(_0x29a0f8,null));};exports[_0x68b2('0x4c')]=function(_0x36ca81,_0x325a72,_0x4b6187){var _0x10e626={};var _0x4860e1={};var _0x334456;var _0x31d9bf;return db[_0x68b2('0x3f')][_0x68b2('0x4d')]({'where':{'id':_0x36ca81[_0x68b2('0x45')]['id']}})[_0x68b2('0x23')](handleEntityNotFound(_0x325a72,null))[_0x68b2('0x23')](function(_0x20683f){if(_0x20683f){_0x334456=_0x20683f;_0x4860e1[_0x68b2('0x2d')]=_[_0x68b2('0x46')](db[_0x68b2('0x4e')][_0x68b2('0x2a')]);_0x4860e1[_0x68b2('0x2e')]=_[_0x68b2('0x46')](_0x36ca81[_0x68b2('0x2e')]);_0x4860e1['filters']=_['intersection'](_0x4860e1[_0x68b2('0x2d')],_0x4860e1[_0x68b2('0x2e')]);_0x10e626[_0x68b2('0x31')]=_['intersection'](_0x4860e1[_0x68b2('0x2d')],qs[_0x68b2('0x32')](_0x36ca81[_0x68b2('0x2e')][_0x68b2('0x32')]));_0x10e626[_0x68b2('0x31')]=_0x10e626[_0x68b2('0x31')][_0x68b2('0x33')]?_0x10e626['attributes']:_0x4860e1['model'];_0x10e626['order']=qs[_0x68b2('0x37')](_0x36ca81['query'][_0x68b2('0x37')]);_0x10e626[_0x68b2('0x3a')]=qs[_0x68b2('0x2f')](_[_0x68b2('0x38')](_0x36ca81['query'],_0x4860e1['filters']));if(_0x36ca81[_0x68b2('0x2e')][_0x68b2('0x39')]){_0x10e626[_0x68b2('0x3a')]=_[_0x68b2('0x3b')](_0x10e626['where'],{'$or':_['map'](_0x10e626[_0x68b2('0x31')],function(_0xc10e0b){var _0x265013={};_0x265013[_0xc10e0b]={'$like':'%'+_0x36ca81[_0x68b2('0x2e')]['filter']+'%'};return _0x265013;})});}_0x10e626=_[_0x68b2('0x3b')]({},_0x10e626,_0x36ca81['options']);return _0x334456[_0x68b2('0x4c')](_0x10e626);}})['then'](function(_0x229d03){if(_0x229d03){_0x31d9bf=_0x229d03[_0x68b2('0x33')];if(!_0x36ca81[_0x68b2('0x2e')][_0x68b2('0x34')](_0x68b2('0x35'))){_0x10e626[_0x68b2('0x1d')]=qs[_0x68b2('0x1d')](_0x36ca81['query']['limit']);_0x10e626[_0x68b2('0x1b')]=qs['offset'](_0x36ca81[_0x68b2('0x2e')]['offset']);}return _0x334456[_0x68b2('0x4c')](_0x10e626);}})[_0x68b2('0x23')](function(_0x265f8f){if(_0x265f8f){return _0x265f8f?{'count':_0x31d9bf,'rows':_0x265f8f}:null;}})['then'](respondWithResult(_0x325a72,null))[_0x68b2('0x47')](handleError(_0x325a72,null));};exports['getSubjects']=function(_0x40f650,_0x38f56d,_0x28a57f){var _0x3e61a={};var _0x2a5b39={};var _0x2ec6e5;var _0x20bd9f;return db[_0x68b2('0x3f')][_0x68b2('0x4d')]({'where':{'id':_0x40f650[_0x68b2('0x45')]['id']}})[_0x68b2('0x23')](handleEntityNotFound(_0x38f56d,null))[_0x68b2('0x23')](function(_0x25b50e){if(_0x25b50e){_0x2ec6e5=_0x25b50e;_0x2a5b39[_0x68b2('0x2d')]=_[_0x68b2('0x46')](db['ServicenowField'][_0x68b2('0x2a')]);_0x2a5b39[_0x68b2('0x2e')]=_[_0x68b2('0x46')](_0x40f650['query']);_0x2a5b39[_0x68b2('0x2f')]=_[_0x68b2('0x30')](_0x2a5b39['model'],_0x2a5b39['query']);_0x3e61a[_0x68b2('0x31')]=_['intersection'](_0x2a5b39[_0x68b2('0x2d')],qs['fields'](_0x40f650['query'][_0x68b2('0x32')]));_0x3e61a[_0x68b2('0x31')]=_0x3e61a[_0x68b2('0x31')][_0x68b2('0x33')]?_0x3e61a['attributes']:_0x2a5b39['model'];_0x3e61a[_0x68b2('0x36')]=qs['sort'](_0x40f650['query'][_0x68b2('0x37')]);_0x3e61a[_0x68b2('0x3a')]=qs['filters'](_['pick'](_0x40f650[_0x68b2('0x2e')],_0x2a5b39[_0x68b2('0x2f')]));if(_0x40f650[_0x68b2('0x2e')]['filter']){_0x3e61a[_0x68b2('0x3a')]=_[_0x68b2('0x3b')](_0x3e61a[_0x68b2('0x3a')],{'$or':_[_0x68b2('0x29')](_0x3e61a[_0x68b2('0x31')],function(_0x3abf6f){var _0x2ee6c7={};_0x2ee6c7[_0x3abf6f]={'$like':'%'+_0x40f650['query'][_0x68b2('0x39')]+'%'};return _0x2ee6c7;})});}_0x3e61a=_[_0x68b2('0x3b')]({},_0x3e61a,_0x40f650['options']);return _0x2ec6e5[_0x68b2('0x4f')](_0x3e61a);}})[_0x68b2('0x23')](function(_0x125b76){if(_0x125b76){_0x20bd9f=_0x125b76[_0x68b2('0x33')];if(!_0x40f650[_0x68b2('0x2e')][_0x68b2('0x34')](_0x68b2('0x35'))){_0x3e61a[_0x68b2('0x1d')]=qs[_0x68b2('0x1d')](_0x40f650[_0x68b2('0x2e')][_0x68b2('0x1d')]);_0x3e61a['offset']=qs[_0x68b2('0x1b')](_0x40f650[_0x68b2('0x2e')]['offset']);}return _0x2ec6e5[_0x68b2('0x4f')](_0x3e61a);}})[_0x68b2('0x23')](function(_0x5578cf){if(_0x5578cf){return _0x5578cf?{'count':_0x20bd9f,'rows':_0x5578cf}:null;}})[_0x68b2('0x23')](respondWithResult(_0x38f56d,null))[_0x68b2('0x47')](handleError(_0x38f56d,null));};exports[_0x68b2('0x50')]=function(_0x4bbe39,_0x27a48a,_0x3592ce){var _0x56e49d={};var _0x2c30f8={};var _0x123de8;var _0x6fd079;return db[_0x68b2('0x3f')]['findOne']({'where':{'id':_0x4bbe39['params']['id']}})['then'](handleEntityNotFound(_0x27a48a,null))[_0x68b2('0x23')](function(_0x2080e1){if(_0x2080e1){_0x123de8=_0x2080e1;_0x2c30f8[_0x68b2('0x2d')]=_[_0x68b2('0x46')](db[_0x68b2('0x4e')]['rawAttributes']);_0x2c30f8[_0x68b2('0x2e')]=_[_0x68b2('0x46')](_0x4bbe39[_0x68b2('0x2e')]);_0x2c30f8['filters']=_['intersection'](_0x2c30f8[_0x68b2('0x2d')],_0x2c30f8[_0x68b2('0x2e')]);_0x56e49d[_0x68b2('0x31')]=_['intersection'](_0x2c30f8[_0x68b2('0x2d')],qs['fields'](_0x4bbe39['query']['fields']));_0x56e49d[_0x68b2('0x31')]=_0x56e49d['attributes'][_0x68b2('0x33')]?_0x56e49d[_0x68b2('0x31')]:_0x2c30f8['model'];_0x56e49d[_0x68b2('0x36')]=qs['sort'](_0x4bbe39['query'][_0x68b2('0x37')]);_0x56e49d[_0x68b2('0x3a')]=qs[_0x68b2('0x2f')](_[_0x68b2('0x38')](_0x4bbe39[_0x68b2('0x2e')],_0x2c30f8['filters']));if(_0x4bbe39[_0x68b2('0x2e')][_0x68b2('0x39')]){_0x56e49d['where']=_[_0x68b2('0x3b')](_0x56e49d[_0x68b2('0x3a')],{'$or':_['map'](_0x56e49d[_0x68b2('0x31')],function(_0x434b11){var _0x1ecf13={};_0x1ecf13[_0x434b11]={'$like':'%'+_0x4bbe39[_0x68b2('0x2e')][_0x68b2('0x39')]+'%'};return _0x1ecf13;})});}_0x56e49d=_['merge']({},_0x56e49d,_0x4bbe39[_0x68b2('0x3e')]);return _0x123de8[_0x68b2('0x50')](_0x56e49d);}})[_0x68b2('0x23')](function(_0x48a82a){if(_0x48a82a){_0x6fd079=_0x48a82a[_0x68b2('0x33')];if(!_0x4bbe39[_0x68b2('0x2e')][_0x68b2('0x34')](_0x68b2('0x35'))){_0x56e49d[_0x68b2('0x1d')]=qs[_0x68b2('0x1d')](_0x4bbe39[_0x68b2('0x2e')]['limit']);_0x56e49d[_0x68b2('0x1b')]=qs[_0x68b2('0x1b')](_0x4bbe39[_0x68b2('0x2e')][_0x68b2('0x1b')]);}return _0x123de8[_0x68b2('0x50')](_0x56e49d);}})['then'](function(_0x3d0e7b){if(_0x3d0e7b){return _0x3d0e7b?{'count':_0x6fd079,'rows':_0x3d0e7b}:null;}})[_0x68b2('0x23')](respondWithResult(_0x27a48a,null))[_0x68b2('0x47')](handleError(_0x27a48a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13f6=['request-promise','rimraf','../../config/environment','./intServicenowConfiguration.attributes','lodash','util','moment','bluebird'];(function(_0x4666f3,_0x3e50d9){var _0xf02caf=function(_0x5814bf){while(--_0x5814bf){_0x4666f3['push'](_0x4666f3['shift']());}};_0xf02caf(++_0x3e50d9);}(_0x13f6,0x124));var _0x613f=function(_0x153701,_0x1f5416){_0x153701=_0x153701-0x0;var _0x340a2d=_0x13f6[_0x153701];return _0x340a2d;};'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']('ServicenowConfiguration',attributes,{'tableName':'int_servicenow_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x32b6=['moment','path','rimraf','../../config/environment','./intServicenowConfiguration.attributes','exports','define','ServicenowConfiguration','int_servicenow_configurations','lodash','util','api'];(function(_0x168d8f,_0x4676c8){var _0x149716=function(_0x576513){while(--_0x576513){_0x168d8f['push'](_0x168d8f['shift']());}};_0x149716(++_0x4676c8);}(_0x32b6,0x1d1));var _0x632b=function(_0x5e365a,_0x27c8a2){_0x5e365a=_0x5e365a-0x0;var _0x96979d=_0x32b6[_0x5e365a];return _0x96979d;};'use strict';var _=require(_0x632b('0x0'));var util=require(_0x632b('0x1'));var logger=require('../../config/logger')(_0x632b('0x2'));var moment=require(_0x632b('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x632b('0x4'));var rimraf=require(_0x632b('0x5'));var config=require(_0x632b('0x6'));var attributes=require(_0x632b('0x7'));module[_0x632b('0x8')]=function(_0x122768,_0x24ceab){return _0x122768[_0x632b('0x9')](_0x632b('0xa'),attributes,{'tableName':_0x632b('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd7ec=['bluebird','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','http','then','info','ServicenowConfiguration,\x20%s,\x20%s','ServicenowConfiguration,\x20%s,\x20%s,\x20%s','error','message','catch','lodash','util'];(function(_0x2d6197,_0x82ebfb){var _0x4d0e75=function(_0x577e7a){while(--_0x577e7a){_0x2d6197['push'](_0x2d6197['shift']());}};_0x4d0e75(++_0x82ebfb);}(_0xd7ec,0x6e));var _0xcd7e=function(_0x5c47c0,_0x3cb4c3){_0x5c47c0=_0x5c47c0-0x0;var _0x32147d=_0xd7ec[_0x5c47c0];return _0x32147d;};'use strict';var _=require(_0xcd7e('0x0'));var util=require(_0xcd7e('0x1'));var moment=require('moment');var BPromise=require(_0xcd7e('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xcd7e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xcd7e('0x4'));var logger=require('../../config/logger')(_0xcd7e('0x5'));var config=require(_0xcd7e('0x6'));var jayson=require(_0xcd7e('0x7'));var client=jayson['client'][_0xcd7e('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x51cb17,_0x241540,_0x2c2f28){return new BPromise(function(_0x5c4b61,_0x57d93a){return client['request'](_0x51cb17,_0x2c2f28)[_0xcd7e('0x9')](function(_0xa35a62){logger[_0xcd7e('0xa')](_0xcd7e('0xb'),_0x241540,'request\x20sent');logger['debug'](_0xcd7e('0xc'),_0x241540,'request\x20sent',JSON['stringify'](_0xa35a62));if(_0xa35a62['error']){if(_0xa35a62[_0xcd7e('0xd')]['code']===0x1f4){logger[_0xcd7e('0xd')](_0xcd7e('0xb'),_0x241540,_0xa35a62[_0xcd7e('0xd')][_0xcd7e('0xe')]);return _0x57d93a(_0xa35a62['error'][_0xcd7e('0xe')]);}logger[_0xcd7e('0xd')](_0xcd7e('0xb'),_0x241540,_0xa35a62['error']['message']);return _0x5c4b61(_0xa35a62['error'][_0xcd7e('0xe')]);}else{logger[_0xcd7e('0xa')](_0xcd7e('0xb'),_0x241540,'request\x20sent');_0x5c4b61(_0xa35a62['result'][_0xcd7e('0xe')]);}})[_0xcd7e('0xf')](function(_0x1152d1){logger[_0xcd7e('0xd')](_0xcd7e('0xb'),_0x241540,_0x1152d1);_0x57d93a(_0x1152d1);});});}
\ No newline at end of file
+var _0x75dd=['catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','ServicenowConfiguration,\x20%s,\x20%s','request\x20sent','debug','ServicenowConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x421d8a,_0x215d4e){var _0x39c3ef=function(_0x4f362b){while(--_0x4f362b){_0x421d8a['push'](_0x421d8a['shift']());}};_0x39c3ef(++_0x215d4e);}(_0x75dd,0x1c9));var _0xd75d=function(_0x14a2de,_0xb6f4fa){_0x14a2de=_0x14a2de-0x0;var _0x5f2d6c=_0x75dd[_0x14a2de];return _0x5f2d6c;};'use strict';var _=require(_0xd75d('0x0'));var util=require(_0xd75d('0x1'));var moment=require(_0xd75d('0x2'));var BPromise=require(_0xd75d('0x3'));var rs=require(_0xd75d('0x4'));var fs=require('fs');var Redis=require(_0xd75d('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xd75d('0x6'));var logger=require(_0xd75d('0x7'))(_0xd75d('0x8'));var config=require(_0xd75d('0x9'));var jayson=require(_0xd75d('0xa'));var client=jayson[_0xd75d('0xb')][_0xd75d('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x3594fc,_0x48cce5,_0x7ad4a3){return new BPromise(function(_0x216ea5,_0x22b9f1){return client[_0xd75d('0xd')](_0x3594fc,_0x7ad4a3)['then'](function(_0x2a7bab){logger[_0xd75d('0xe')](_0xd75d('0xf'),_0x48cce5,_0xd75d('0x10'));logger[_0xd75d('0x11')](_0xd75d('0x12'),_0x48cce5,_0xd75d('0x10'),JSON[_0xd75d('0x13')](_0x2a7bab));if(_0x2a7bab['error']){if(_0x2a7bab[_0xd75d('0x14')][_0xd75d('0x15')]===0x1f4){logger['error'](_0xd75d('0xf'),_0x48cce5,_0x2a7bab[_0xd75d('0x14')]['message']);return _0x22b9f1(_0x2a7bab[_0xd75d('0x14')][_0xd75d('0x16')]);}logger['error']('ServicenowConfiguration,\x20%s,\x20%s',_0x48cce5,_0x2a7bab[_0xd75d('0x14')][_0xd75d('0x16')]);return _0x216ea5(_0x2a7bab[_0xd75d('0x14')]['message']);}else{logger[_0xd75d('0xe')]('ServicenowConfiguration,\x20%s,\x20%s',_0x48cce5,'request\x20sent');_0x216ea5(_0x2a7bab['result'][_0xd75d('0x16')]);}})[_0xd75d('0x17')](function(_0x5b1c56){logger['error'](_0xd75d('0xf'),_0x48cce5,_0x5b1c56);_0x22b9f1(_0x5b1c56);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb020=['get','index','/:id','show','create','isAuthenticated','update','delete','destroy','exports','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intServicenowField.controller'];(function(_0x164e76,_0x4446cc){var _0x44e4b4=function(_0xec3ea1){while(--_0xec3ea1){_0x164e76['push'](_0x164e76['shift']());}};_0x44e4b4(++_0x4446cc);}(_0xb020,0x173));var _0x0b02=function(_0x487ab4,_0x1e24e8){_0x487ab4=_0x487ab4-0x0;var _0x3bef77=_0xb020[_0x487ab4];return _0x3bef77;};'use strict';var multer=require(_0x0b02('0x0'));var util=require('util');var path=require(_0x0b02('0x1'));var timeout=require(_0x0b02('0x2'));var express=require(_0x0b02('0x3'));var router=express['Router']();var fs_extra=require(_0x0b02('0x4'));var auth=require(_0x0b02('0x5'));var interaction=require(_0x0b02('0x6'));var config=require(_0x0b02('0x7'));var controller=require(_0x0b02('0x8'));router[_0x0b02('0x9')]('/',auth['isAuthenticated'](),controller[_0x0b02('0xa')]);router['get'](_0x0b02('0xb'),auth['isAuthenticated'](),controller[_0x0b02('0xc')]);router['post']('/',auth['isAuthenticated'](),controller[_0x0b02('0xd')]);router['put'](_0x0b02('0xb'),auth[_0x0b02('0xe')](),controller[_0x0b02('0xf')]);router[_0x0b02('0x10')]('/:id',auth[_0x0b02('0xe')](),controller[_0x0b02('0x11')]);module[_0x0b02('0x12')]=router;
\ No newline at end of file
+var _0x17a7=['destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intServicenowField.controller','get','isAuthenticated','show','post','create','update','delete','/:id'];(function(_0x4e9d3c,_0x1f4b98){var _0x2d0825=function(_0x384676){while(--_0x384676){_0x4e9d3c['push'](_0x4e9d3c['shift']());}};_0x2d0825(++_0x1f4b98);}(_0x17a7,0x144));var _0x717a=function(_0x4ad3b1,_0x551a41){_0x4ad3b1=_0x4ad3b1-0x0;var _0x21596f=_0x17a7[_0x4ad3b1];return _0x21596f;};'use strict';var multer=require(_0x717a('0x0'));var util=require(_0x717a('0x1'));var path=require(_0x717a('0x2'));var timeout=require(_0x717a('0x3'));var express=require(_0x717a('0x4'));var router=express[_0x717a('0x5')]();var fs_extra=require(_0x717a('0x6'));var auth=require(_0x717a('0x7'));var interaction=require(_0x717a('0x8'));var config=require('../../config/environment');var controller=require(_0x717a('0x9'));router[_0x717a('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0x717a('0xa')]('/:id',auth[_0x717a('0xb')](),controller[_0x717a('0xc')]);router[_0x717a('0xd')]('/',auth['isAuthenticated'](),controller[_0x717a('0xe')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0x717a('0xf')]);router[_0x717a('0x10')](_0x717a('0x11'),auth[_0x717a('0xb')](),controller[_0x717a('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x877b=['string','variable','customVariable','keyValue','picklist','STRING','ENUM','sequelize','exports'];(function(_0x204dd1,_0x2c3233){var _0x4f2fa1=function(_0x3a5511){while(--_0x3a5511){_0x204dd1['push'](_0x204dd1['shift']());}};_0x4f2fa1(++_0x2c3233);}(_0x877b,0x193));var _0xb877=function(_0x564119,_0x18d212){_0x564119=_0x564119-0x0;var _0x5de508=_0x877b[_0x564119];return _0x5de508;};'use strict';var Sequelize=require(_0xb877('0x0'));module[_0xb877('0x1')]={'type':{'type':Sequelize['ENUM'](_0xb877('0x2'),_0xb877('0x3'),_0xb877('0x4'),_0xb877('0x5'),_0xb877('0x6')),'defaultValue':_0xb877('0x2')},'content':{'type':Sequelize[_0xb877('0x7')]},'key':{'type':Sequelize[_0xb877('0x7')]},'keyType':{'type':Sequelize[_0xb877('0x8')](_0xb877('0x2'),_0xb877('0x3'),_0xb877('0x4'))},'keyContent':{'type':Sequelize[_0xb877('0x7')]},'idField':{'type':Sequelize[_0xb877('0x7')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xb877('0x7')]}};
\ No newline at end of file
+var _0x9f3b=['variable','keyValue','string','STRING','BOOLEAN','sequelize','ENUM'];(function(_0x172660,_0x260d9b){var _0x83204f=function(_0x4d6c80){while(--_0x4d6c80){_0x172660['push'](_0x172660['shift']());}};_0x83204f(++_0x260d9b);}(_0x9f3b,0x91));var _0xb9f3=function(_0x2ff762,_0x342c0b){_0x2ff762=_0x2ff762-0x0;var _0x158b02=_0x9f3b[_0x2ff762];return _0x158b02;};'use strict';var Sequelize=require(_0xb9f3('0x0'));module['exports']={'type':{'type':Sequelize[_0xb9f3('0x1')]('string',_0xb9f3('0x2'),'customVariable',_0xb9f3('0x3'),'picklist'),'defaultValue':_0xb9f3('0x4')},'content':{'type':Sequelize[_0xb9f3('0x5')]},'key':{'type':Sequelize[_0xb9f3('0x5')]},'keyType':{'type':Sequelize[_0xb9f3('0x1')]('string',_0xb9f3('0x2'),'customVariable')},'keyContent':{'type':Sequelize[_0xb9f3('0x5')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0xb9f3('0x5')]},'customField':{'type':Sequelize[_0xb9f3('0x6')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xb9f3('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa414=['ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','limit','undefined','count','set','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','map','ServicenowField','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filters','pick','filter','where','merge','options','includeAll','include','findAll','rows','show','params','keys','create','body','catch','find','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse'];(function(_0x41c565,_0x4fd4b8){var _0x1bc328=function(_0x3145e1){while(--_0x3145e1){_0x41c565['push'](_0x41c565['shift']());}};_0x1bc328(++_0x4fd4b8);}(_0xa414,0x1c2));var _0x4a41=function(_0x47225f,_0xdabc94){_0x47225f=_0x47225f-0x0;var _0x3f0414=_0xa414[_0x47225f];return _0x3f0414;};'use strict';var emlformat=require(_0x4a41('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4a41('0x1'));var jsonpatch=require(_0x4a41('0x2'));var rp=require(_0x4a41('0x3'));var moment=require('moment');var BPromise=require(_0x4a41('0x4'));var Mustache=require(_0x4a41('0x5'));var util=require('util');var path=require(_0x4a41('0x6'));var sox=require(_0x4a41('0x7'));var csv=require(_0x4a41('0x8'));var ejs=require(_0x4a41('0x9'));var fs=require('fs');var fs_extra=require(_0x4a41('0xa'));var _=require(_0x4a41('0xb'));var squel=require(_0x4a41('0xc'));var crypto=require(_0x4a41('0xd'));var jsforce=require(_0x4a41('0xe'));var deskjs=require(_0x4a41('0xf'));var toCsv=require(_0x4a41('0x8'));var querystring=require(_0x4a41('0x10'));var Papa=require(_0x4a41('0x11'));var Redis=require(_0x4a41('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x4a41('0x13'));var hardwareService=require(_0x4a41('0x14'));var logger=require(_0x4a41('0x15'))('api');var utils=require(_0x4a41('0x16'));var config=require(_0x4a41('0x17'));var licenseUtil=require(_0x4a41('0x18'));var db=require(_0x4a41('0x19'))['db'];function respondWithStatusCode(_0x11b263,_0xb62db3){_0xb62db3=_0xb62db3||0xcc;return function(_0x4665bc){if(_0x4665bc){return _0x11b263['sendStatus'](_0xb62db3);}return _0x11b263[_0x4a41('0x1a')](_0xb62db3)[_0x4a41('0x1b')]();};}function respondWithResult(_0x346955,_0x77719f){_0x77719f=_0x77719f||0xc8;return function(_0x4c42f2){if(_0x4c42f2){return _0x346955[_0x4a41('0x1a')](_0x77719f)[_0x4a41('0x1c')](_0x4c42f2);}};}function respondWithFilteredResult(_0x3dd293,_0x4a2282){return function(_0x381b0e){if(_0x381b0e){var _0x336bf5=typeof _0x4a2282[_0x4a41('0x1d')]==='undefined'&&typeof _0x4a2282[_0x4a41('0x1e')]===_0x4a41('0x1f');var _0x1cb00a=_0x381b0e[_0x4a41('0x20')];var _0x285895=_0x336bf5?0x0:_0x4a2282[_0x4a41('0x1d')];var _0x47d469=_0x336bf5?_0x381b0e['count']:_0x4a2282['offset']+_0x4a2282[_0x4a41('0x1e')];var _0x4229fb;if(_0x47d469>=_0x1cb00a){_0x47d469=_0x1cb00a;_0x4229fb=0xc8;}else{_0x4229fb=0xce;}_0x3dd293[_0x4a41('0x1a')](_0x4229fb);return _0x3dd293[_0x4a41('0x21')]('Content-Range',_0x285895+'-'+_0x47d469+'/'+_0x1cb00a)['json'](_0x381b0e);}return null;};}function patchUpdates(_0x21b747){return function(_0x3be80b){try{jsonpatch[_0x4a41('0x22')](_0x3be80b,_0x21b747,!![]);}catch(_0x2a3923){return BPromise[_0x4a41('0x23')](_0x2a3923);}return _0x3be80b[_0x4a41('0x24')]();};}function saveUpdates(_0x117f31,_0x19cfc1){return function(_0x48feea){if(_0x48feea){return _0x48feea[_0x4a41('0x25')](_0x117f31)[_0x4a41('0x26')](function(_0x3b2f99){return _0x3b2f99;});}return null;};}function removeEntity(_0x2e565e,_0x1e9c6b){return function(_0x22f929){if(_0x22f929){return _0x22f929[_0x4a41('0x27')]()['then'](function(){_0x2e565e[_0x4a41('0x1a')](0xcc)[_0x4a41('0x1b')]();});}};}function handleEntityNotFound(_0x51fb16,_0x18ff30){return function(_0x45123b){if(!_0x45123b){_0x51fb16[_0x4a41('0x28')](0x194);}return _0x45123b;};}function handleError(_0x2bc9b2,_0x31f761){_0x31f761=_0x31f761||0x1f4;return function(_0x5371ad){logger[_0x4a41('0x29')](_0x5371ad[_0x4a41('0x2a')]);if(_0x5371ad[_0x4a41('0x2b')]){delete _0x5371ad[_0x4a41('0x2b')];}_0x2bc9b2[_0x4a41('0x1a')](_0x31f761)[_0x4a41('0x2c')](_0x5371ad);};}exports[_0x4a41('0x2d')]=function(_0x52bd67,_0x2d9b55){var _0x1cedff={},_0x28ae46={},_0x443fd0={'count':0x0,'rows':[]};var _0x5bd30e=_[_0x4a41('0x2e')](db[_0x4a41('0x2f')][_0x4a41('0x30')],function(_0x2722d8){return{'name':_0x2722d8[_0x4a41('0x31')],'type':_0x2722d8[_0x4a41('0x32')][_0x4a41('0x33')]};});_0x28ae46[_0x4a41('0x34')]=_[_0x4a41('0x2e')](_0x5bd30e,_0x4a41('0x2b'));_0x28ae46['query']=_['keys'](_0x52bd67[_0x4a41('0x35')]);_0x28ae46['filters']=_[_0x4a41('0x36')](_0x28ae46['model'],_0x28ae46[_0x4a41('0x35')]);_0x1cedff[_0x4a41('0x37')]=_[_0x4a41('0x36')](_0x28ae46[_0x4a41('0x34')],qs[_0x4a41('0x38')](_0x52bd67[_0x4a41('0x35')]['fields']));_0x1cedff[_0x4a41('0x37')]=_0x1cedff['attributes'][_0x4a41('0x39')]?_0x1cedff['attributes']:_0x28ae46[_0x4a41('0x34')];if(!_0x52bd67['query'][_0x4a41('0x3a')](_0x4a41('0x3b'))){_0x1cedff[_0x4a41('0x1e')]=qs[_0x4a41('0x1e')](_0x52bd67['query'][_0x4a41('0x1e')]);_0x1cedff[_0x4a41('0x1d')]=qs[_0x4a41('0x1d')](_0x52bd67[_0x4a41('0x35')][_0x4a41('0x1d')]);}_0x1cedff['order']=qs['sort'](_0x52bd67['query'][_0x4a41('0x3c')]);_0x1cedff['where']=qs[_0x4a41('0x3d')](_[_0x4a41('0x3e')](_0x52bd67[_0x4a41('0x35')],_0x28ae46[_0x4a41('0x3d')]),_0x5bd30e);if(_0x52bd67[_0x4a41('0x35')][_0x4a41('0x3f')]){_0x1cedff[_0x4a41('0x40')]=_['merge'](_0x1cedff[_0x4a41('0x40')],{'$or':_[_0x4a41('0x2e')](_0x5bd30e,function(_0x46304c){if(_0x46304c[_0x4a41('0x32')]!=='VIRTUAL'){var _0x44306f={};_0x44306f[_0x46304c['name']]={'$like':'%'+_0x52bd67[_0x4a41('0x35')][_0x4a41('0x3f')]+'%'};return _0x44306f;}})});}_0x1cedff=_[_0x4a41('0x41')]({},_0x1cedff,_0x52bd67[_0x4a41('0x42')]);var _0x50e7ba={'where':_0x1cedff[_0x4a41('0x40')]};return db[_0x4a41('0x2f')][_0x4a41('0x20')](_0x50e7ba)[_0x4a41('0x26')](function(_0x31396f){_0x443fd0[_0x4a41('0x20')]=_0x31396f;if(_0x52bd67[_0x4a41('0x35')][_0x4a41('0x43')]){_0x1cedff[_0x4a41('0x44')]=[{'all':!![]}];}return db['ServicenowField'][_0x4a41('0x45')](_0x1cedff);})[_0x4a41('0x26')](function(_0x3b6b3d){_0x443fd0[_0x4a41('0x46')]=_0x3b6b3d;return _0x443fd0;})[_0x4a41('0x26')](respondWithFilteredResult(_0x2d9b55,_0x1cedff))['catch'](handleError(_0x2d9b55,null));};exports[_0x4a41('0x47')]=function(_0x4d34d3,_0x2a9b9a){var _0x5eb67a={'raw':!![],'where':{'id':_0x4d34d3[_0x4a41('0x48')]['id']}},_0x2fa808={};_0x2fa808[_0x4a41('0x34')]=_['keys'](db[_0x4a41('0x2f')][_0x4a41('0x30')]);_0x2fa808[_0x4a41('0x35')]=_[_0x4a41('0x49')](_0x4d34d3[_0x4a41('0x35')]);_0x2fa808[_0x4a41('0x3d')]=_[_0x4a41('0x36')](_0x2fa808[_0x4a41('0x34')],_0x2fa808[_0x4a41('0x35')]);_0x5eb67a[_0x4a41('0x37')]=_[_0x4a41('0x36')](_0x2fa808['model'],qs['fields'](_0x4d34d3[_0x4a41('0x35')][_0x4a41('0x38')]));_0x5eb67a[_0x4a41('0x37')]=_0x5eb67a[_0x4a41('0x37')][_0x4a41('0x39')]?_0x5eb67a[_0x4a41('0x37')]:_0x2fa808['model'];if(_0x4d34d3[_0x4a41('0x35')][_0x4a41('0x43')]){_0x5eb67a['include']=[{'all':!![]}];}_0x5eb67a=_[_0x4a41('0x41')]({},_0x5eb67a,_0x4d34d3[_0x4a41('0x42')]);return db[_0x4a41('0x2f')]['find'](_0x5eb67a)[_0x4a41('0x26')](handleEntityNotFound(_0x2a9b9a,null))[_0x4a41('0x26')](respondWithResult(_0x2a9b9a,null))['catch'](handleError(_0x2a9b9a,null));};exports[_0x4a41('0x4a')]=function(_0x1387c0,_0x3f51b1){return db[_0x4a41('0x2f')][_0x4a41('0x4a')](_0x1387c0[_0x4a41('0x4b')],{})['then'](respondWithResult(_0x3f51b1,0xc9))[_0x4a41('0x4c')](handleError(_0x3f51b1,null));};exports[_0x4a41('0x25')]=function(_0x2586b5,_0x41744d){if(_0x2586b5[_0x4a41('0x4b')]['id']){delete _0x2586b5[_0x4a41('0x4b')]['id'];}return db[_0x4a41('0x2f')]['find']({'where':{'id':_0x2586b5['params']['id']}})[_0x4a41('0x26')](handleEntityNotFound(_0x41744d,null))[_0x4a41('0x26')](saveUpdates(_0x2586b5[_0x4a41('0x4b')],null))['then'](respondWithResult(_0x41744d,null))['catch'](handleError(_0x41744d,null));};exports[_0x4a41('0x27')]=function(_0x4d851d,_0x47e4b0){return db[_0x4a41('0x2f')][_0x4a41('0x4d')]({'where':{'id':_0x4d851d['params']['id']}})['then'](handleEntityNotFound(_0x47e4b0,null))[_0x4a41('0x26')](removeEntity(_0x47e4b0,null))[_0x4a41('0x4c')](handleError(_0x47e4b0,null));};
\ No newline at end of file
+var _0x170e=['where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','find','body','update','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','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','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','end','stack','name','send','index','map','ServicenowField','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','filters','pick'];(function(_0x193288,_0x2ecd4a){var _0x54709d=function(_0x3dead3){while(--_0x3dead3){_0x193288['push'](_0x193288['shift']());}};_0x54709d(++_0x2ecd4a);}(_0x170e,0x147));var _0xe170=function(_0x376b45,_0x5964fb){_0x376b45=_0x376b45-0x0;var _0x2341b3=_0x170e[_0x376b45];return _0x2341b3;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe170('0x0'));var zipdir=require(_0xe170('0x1'));var jsonpatch=require(_0xe170('0x2'));var rp=require(_0xe170('0x3'));var moment=require(_0xe170('0x4'));var BPromise=require(_0xe170('0x5'));var Mustache=require(_0xe170('0x6'));var util=require(_0xe170('0x7'));var path=require(_0xe170('0x8'));var sox=require(_0xe170('0x9'));var csv=require(_0xe170('0xa'));var ejs=require(_0xe170('0xb'));var fs=require('fs');var fs_extra=require(_0xe170('0xc'));var _=require('lodash');var squel=require(_0xe170('0xd'));var crypto=require(_0xe170('0xe'));var jsforce=require(_0xe170('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xe170('0xa'));var querystring=require(_0xe170('0x10'));var Papa=require(_0xe170('0x11'));var Redis=require('ioredis');var authService=require(_0xe170('0x12'));var qs=require(_0xe170('0x13'));var as=require(_0xe170('0x14'));var hardwareService=require(_0xe170('0x15'));var logger=require(_0xe170('0x16'))(_0xe170('0x17'));var utils=require(_0xe170('0x18'));var config=require(_0xe170('0x19'));var licenseUtil=require(_0xe170('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4c2381,_0x292472){_0x292472=_0x292472||0xcc;return function(_0x5693a4){if(_0x5693a4){return _0x4c2381[_0xe170('0x1b')](_0x292472);}return _0x4c2381[_0xe170('0x1c')](_0x292472)['end']();};}function respondWithResult(_0x520706,_0x53b58e){_0x53b58e=_0x53b58e||0xc8;return function(_0xc6838d){if(_0xc6838d){return _0x520706[_0xe170('0x1c')](_0x53b58e)[_0xe170('0x1d')](_0xc6838d);}};}function respondWithFilteredResult(_0x23199a,_0x5ccdd7){return function(_0x585180){if(_0x585180){var _0x93f56c=typeof _0x5ccdd7[_0xe170('0x1e')]===_0xe170('0x1f')&&typeof _0x5ccdd7[_0xe170('0x20')]===_0xe170('0x1f');var _0x207fa7=_0x585180[_0xe170('0x21')];var _0x27d44d=_0x93f56c?0x0:_0x5ccdd7['offset'];var _0x3ca84d=_0x93f56c?_0x585180[_0xe170('0x21')]:_0x5ccdd7['offset']+_0x5ccdd7[_0xe170('0x20')];var _0x2c468f;if(_0x3ca84d>=_0x207fa7){_0x3ca84d=_0x207fa7;_0x2c468f=0xc8;}else{_0x2c468f=0xce;}_0x23199a[_0xe170('0x1c')](_0x2c468f);return _0x23199a[_0xe170('0x22')](_0xe170('0x23'),_0x27d44d+'-'+_0x3ca84d+'/'+_0x207fa7)['json'](_0x585180);}return null;};}function patchUpdates(_0x48ed61){return function(_0x2b6948){try{jsonpatch[_0xe170('0x24')](_0x2b6948,_0x48ed61,!![]);}catch(_0x388e4e){return BPromise[_0xe170('0x25')](_0x388e4e);}return _0x2b6948[_0xe170('0x26')]();};}function saveUpdates(_0x2e34df,_0x398d87){return function(_0x1bf125){if(_0x1bf125){return _0x1bf125['update'](_0x2e34df)[_0xe170('0x27')](function(_0x5a7fbe){return _0x5a7fbe;});}return null;};}function removeEntity(_0x27f946,_0x1a4584){return function(_0x4e5a73){if(_0x4e5a73){return _0x4e5a73[_0xe170('0x28')]()[_0xe170('0x27')](function(){_0x27f946[_0xe170('0x1c')](0xcc)[_0xe170('0x29')]();});}};}function handleEntityNotFound(_0x16c620,_0xb73070){return function(_0x3d5cce){if(!_0x3d5cce){_0x16c620[_0xe170('0x1b')](0x194);}return _0x3d5cce;};}function handleError(_0x20e549,_0x3f1a4){_0x3f1a4=_0x3f1a4||0x1f4;return function(_0x40c944){logger['error'](_0x40c944[_0xe170('0x2a')]);if(_0x40c944[_0xe170('0x2b')]){delete _0x40c944[_0xe170('0x2b')];}_0x20e549[_0xe170('0x1c')](_0x3f1a4)[_0xe170('0x2c')](_0x40c944);};}exports[_0xe170('0x2d')]=function(_0x264011,_0x18148e){var _0x44dbbf={},_0x258af5={},_0x3e5f98={'count':0x0,'rows':[]};var _0x4d73b7=_[_0xe170('0x2e')](db[_0xe170('0x2f')][_0xe170('0x30')],function(_0x598c60){return{'name':_0x598c60['fieldName'],'type':_0x598c60[_0xe170('0x31')][_0xe170('0x32')]};});_0x258af5[_0xe170('0x33')]=_[_0xe170('0x2e')](_0x4d73b7,'name');_0x258af5[_0xe170('0x34')]=_[_0xe170('0x35')](_0x264011['query']);_0x258af5['filters']=_[_0xe170('0x36')](_0x258af5['model'],_0x258af5['query']);_0x44dbbf[_0xe170('0x37')]=_[_0xe170('0x36')](_0x258af5[_0xe170('0x33')],qs[_0xe170('0x38')](_0x264011[_0xe170('0x34')][_0xe170('0x38')]));_0x44dbbf[_0xe170('0x37')]=_0x44dbbf[_0xe170('0x37')][_0xe170('0x39')]?_0x44dbbf[_0xe170('0x37')]:_0x258af5[_0xe170('0x33')];if(!_0x264011['query']['hasOwnProperty'](_0xe170('0x3a'))){_0x44dbbf['limit']=qs[_0xe170('0x20')](_0x264011['query'][_0xe170('0x20')]);_0x44dbbf['offset']=qs['offset'](_0x264011[_0xe170('0x34')][_0xe170('0x1e')]);}_0x44dbbf[_0xe170('0x3b')]=qs[_0xe170('0x3c')](_0x264011['query'][_0xe170('0x3c')]);_0x44dbbf['where']=qs[_0xe170('0x3d')](_[_0xe170('0x3e')](_0x264011[_0xe170('0x34')],_0x258af5[_0xe170('0x3d')]),_0x4d73b7);if(_0x264011[_0xe170('0x34')]['filter']){_0x44dbbf[_0xe170('0x3f')]=_[_0xe170('0x40')](_0x44dbbf['where'],{'$or':_[_0xe170('0x2e')](_0x4d73b7,function(_0x41cbc5){if(_0x41cbc5[_0xe170('0x31')]!==_0xe170('0x41')){var _0x4ae6ed={};_0x4ae6ed[_0x41cbc5[_0xe170('0x2b')]]={'$like':'%'+_0x264011[_0xe170('0x34')][_0xe170('0x42')]+'%'};return _0x4ae6ed;}})});}_0x44dbbf=_['merge']({},_0x44dbbf,_0x264011[_0xe170('0x43')]);var _0x61ec03={'where':_0x44dbbf[_0xe170('0x3f')]};return db[_0xe170('0x2f')][_0xe170('0x21')](_0x61ec03)['then'](function(_0x154db6){_0x3e5f98[_0xe170('0x21')]=_0x154db6;if(_0x264011[_0xe170('0x34')][_0xe170('0x44')]){_0x44dbbf[_0xe170('0x45')]=[{'all':!![]}];}return db[_0xe170('0x2f')][_0xe170('0x46')](_0x44dbbf);})[_0xe170('0x27')](function(_0x40f164){_0x3e5f98[_0xe170('0x47')]=_0x40f164;return _0x3e5f98;})[_0xe170('0x27')](respondWithFilteredResult(_0x18148e,_0x44dbbf))[_0xe170('0x48')](handleError(_0x18148e,null));};exports[_0xe170('0x49')]=function(_0x3dba1c,_0x58ecdf){var _0x207a82={'raw':!![],'where':{'id':_0x3dba1c[_0xe170('0x4a')]['id']}},_0x148b99={};_0x148b99[_0xe170('0x33')]=_[_0xe170('0x35')](db[_0xe170('0x2f')][_0xe170('0x30')]);_0x148b99[_0xe170('0x34')]=_[_0xe170('0x35')](_0x3dba1c[_0xe170('0x34')]);_0x148b99[_0xe170('0x3d')]=_[_0xe170('0x36')](_0x148b99[_0xe170('0x33')],_0x148b99['query']);_0x207a82[_0xe170('0x37')]=_[_0xe170('0x36')](_0x148b99['model'],qs[_0xe170('0x38')](_0x3dba1c[_0xe170('0x34')][_0xe170('0x38')]));_0x207a82[_0xe170('0x37')]=_0x207a82['attributes'][_0xe170('0x39')]?_0x207a82[_0xe170('0x37')]:_0x148b99[_0xe170('0x33')];if(_0x3dba1c[_0xe170('0x34')][_0xe170('0x44')]){_0x207a82[_0xe170('0x45')]=[{'all':!![]}];}_0x207a82=_[_0xe170('0x40')]({},_0x207a82,_0x3dba1c[_0xe170('0x43')]);return db[_0xe170('0x2f')][_0xe170('0x4b')](_0x207a82)[_0xe170('0x27')](handleEntityNotFound(_0x58ecdf,null))['then'](respondWithResult(_0x58ecdf,null))[_0xe170('0x48')](handleError(_0x58ecdf,null));};exports['create']=function(_0x36a05c,_0x2aa08a){return db[_0xe170('0x2f')]['create'](_0x36a05c[_0xe170('0x4c')],{})[_0xe170('0x27')](respondWithResult(_0x2aa08a,0xc9))[_0xe170('0x48')](handleError(_0x2aa08a,null));};exports[_0xe170('0x4d')]=function(_0x3b0f14,_0x332d9a){if(_0x3b0f14[_0xe170('0x4c')]['id']){delete _0x3b0f14[_0xe170('0x4c')]['id'];}return db[_0xe170('0x2f')][_0xe170('0x4b')]({'where':{'id':_0x3b0f14['params']['id']}})['then'](handleEntityNotFound(_0x332d9a,null))[_0xe170('0x27')](saveUpdates(_0x3b0f14[_0xe170('0x4c')],null))[_0xe170('0x27')](respondWithResult(_0x332d9a,null))['catch'](handleError(_0x332d9a,null));};exports[_0xe170('0x28')]=function(_0xd11f36,_0x9b8f71){return db[_0xe170('0x2f')][_0xe170('0x4b')]({'where':{'id':_0xd11f36[_0xe170('0x4a')]['id']}})[_0xe170('0x27')](handleEntityNotFound(_0x9b8f71,null))[_0xe170('0x27')](removeEntity(_0x9b8f71,null))['catch'](handleError(_0x9b8f71,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ac5=['FieldId','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','servicenow_unique_index'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x2ac5,0x146));var _0x52ac=function(_0x420f2a,_0x2cc58d){_0x420f2a=_0x420f2a-0x0;var _0x28f802=_0x2ac5[_0x420f2a];return _0x28f802;};'use strict';var _=require(_0x52ac('0x0'));var util=require('util');var logger=require(_0x52ac('0x1'))(_0x52ac('0x2'));var moment=require(_0x52ac('0x3'));var BPromise=require(_0x52ac('0x4'));var rp=require(_0x52ac('0x5'));var fs=require('fs');var path=require(_0x52ac('0x6'));var rimraf=require(_0x52ac('0x7'));var config=require(_0x52ac('0x8'));var attributes=require('./intServicenowField.attributes');module[_0x52ac('0x9')]=function(_0x7b3e8c,_0x3f4f0e){return _0x7b3e8c[_0x52ac('0xa')]('ServicenowField',attributes,{'tableName':'int_servicenow_fields','paranoid':![],'indexes':[{'name':_0x52ac('0xb'),'fields':['idField',_0x52ac('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x8f21=['path','rimraf','../../config/environment','./intServicenowField.attributes','ServicenowField','servicenow_unique_index','idField','FieldId','lodash','util','../../config/logger','request-promise'];(function(_0x5822c9,_0x5d1998){var _0x4a5d40=function(_0xebe031){while(--_0xebe031){_0x5822c9['push'](_0x5822c9['shift']());}};_0x4a5d40(++_0x5d1998);}(_0x8f21,0x1f4));var _0x18f2=function(_0xbfa698,_0x3ea3b7){_0xbfa698=_0xbfa698-0x0;var _0x1eb36a=_0x8f21[_0xbfa698];return _0x1eb36a;};'use strict';var _=require(_0x18f2('0x0'));var util=require(_0x18f2('0x1'));var logger=require(_0x18f2('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x18f2('0x3'));var fs=require('fs');var path=require(_0x18f2('0x4'));var rimraf=require(_0x18f2('0x5'));var config=require(_0x18f2('0x6'));var attributes=require(_0x18f2('0x7'));module['exports']=function(_0x49b898,_0x595ce){return _0x49b898['define'](_0x18f2('0x8'),attributes,{'tableName':'int_servicenow_fields','paranoid':![],'indexes':[{'name':_0x18f2('0x9'),'fields':[_0x18f2('0xa'),_0x18f2('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ffd=['ServicenowField,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','ServicenowField,\x20%s,\x20%s','info','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','request','then','debug'];(function(_0x48e88b,_0xb6bc20){var _0x50e988=function(_0x21b110){while(--_0x21b110){_0x48e88b['push'](_0x48e88b['shift']());}};_0x50e988(++_0xb6bc20);}(_0x9ffd,0xaa));var _0xd9ff=function(_0x34b6db,_0x4ac27b){_0x34b6db=_0x34b6db-0x0;var _0xca419b=_0x9ffd[_0x34b6db];return _0xca419b;};'use strict';var _=require(_0xd9ff('0x0'));var util=require(_0xd9ff('0x1'));var moment=require(_0xd9ff('0x2'));var BPromise=require('bluebird');var rs=require(_0xd9ff('0x3'));var fs=require('fs');var Redis=require(_0xd9ff('0x4'));var db=require(_0xd9ff('0x5'))['db'];var utils=require(_0xd9ff('0x6'));var logger=require('../../config/logger')(_0xd9ff('0x7'));var config=require(_0xd9ff('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xd9ff('0x9')][_0xd9ff('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x13ea8c,_0x270eb2,_0x45c60a){return new BPromise(function(_0x66282d,_0x13954e){return client[_0xd9ff('0xb')](_0x13ea8c,_0x45c60a)[_0xd9ff('0xc')](function(_0x58e728){logger['info']('ServicenowField,\x20%s,\x20%s',_0x270eb2,'request\x20sent');logger[_0xd9ff('0xd')](_0xd9ff('0xe'),_0x270eb2,_0xd9ff('0xf'),JSON[_0xd9ff('0x10')](_0x58e728));if(_0x58e728[_0xd9ff('0x11')]){if(_0x58e728[_0xd9ff('0x11')][_0xd9ff('0x12')]===0x1f4){logger[_0xd9ff('0x11')]('ServicenowField,\x20%s,\x20%s',_0x270eb2,_0x58e728['error'][_0xd9ff('0x13')]);return _0x13954e(_0x58e728[_0xd9ff('0x11')][_0xd9ff('0x13')]);}logger[_0xd9ff('0x11')](_0xd9ff('0x14'),_0x270eb2,_0x58e728['error'][_0xd9ff('0x13')]);return _0x66282d(_0x58e728[_0xd9ff('0x11')]['message']);}else{logger[_0xd9ff('0x15')]('ServicenowField,\x20%s,\x20%s',_0x270eb2,'request\x20sent');_0x66282d(_0x58e728['result']['message']);}})[_0xd9ff('0x16')](function(_0x4f9d6d){logger[_0xd9ff('0x11')](_0xd9ff('0x14'),_0x270eb2,_0x4f9d6d);_0x13954e(_0x4f9d6d);});});}
\ 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(_0x108d5f,_0x33f82d){var _0x456ea3=function(_0x228200){while(--_0x228200){_0x108d5f['push'](_0x108d5f['shift']());}};_0x456ea3(++_0x33f82d);}(_0xda3f,0xec));var _0xfda3=function(_0x23ae0c,_0x4fdd60){_0x23ae0c=_0x23ae0c-0x0;var _0x13a220=_0xda3f[_0x23ae0c];return _0x13a220;};'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 _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmAccount.controller','get','index','/:id','getConfigurations','/:id/fields','isAuthenticated','getFields','post','addConfiguration','put','update','destroy','exports','multer','util','path'];(function(_0x280fca,_0x24bc19){var _0xfc41e=function(_0x25cddd){while(--_0x25cddd){_0x280fca['push'](_0x280fca['shift']());}};_0xfc41e(++_0x24bc19);}(_0xa9e0,0x123));var _0x0a9e=function(_0x36dfbd,_0x5bfe2d){_0x36dfbd=_0x36dfbd-0x0;var _0x4ecad9=_0xa9e0[_0x36dfbd];return _0x4ecad9;};'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','./intSugarcrmAccount.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','util','path'];(function(_0x1a223e,_0x4f3f52){var _0x356624=function(_0x5c71d3){while(--_0x5c71d3){_0x1a223e['push'](_0x1a223e['shift']());}};_0x356624(++_0x4f3f52);}(_0x9957,0x93));var _0x7995=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0x9957[_0x6131cd];return _0x47e916;};'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(_0xf30796,_0xf198eb){var _0x19484a=function(_0x53eb45){while(--_0x53eb45){_0xf30796['push'](_0xf30796['shift']());}};_0x19484a(++_0xf198eb);}(_0xa9e0,0x123));var _0x0a9e=function(_0x45e98e,_0x169b60){_0x45e98e=_0x45e98e-0x0;var _0x374dba=_0xa9e0[_0x45e98e];return _0x374dba;};'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(_0x1a1695,_0x4c1057){var _0x20744d=function(_0x135f46){while(--_0x135f46){_0x1a1695['push'](_0x1a1695['shift']());}};_0x20744d(++_0x4c1057);}(_0xa9e0,0x123));var _0x0a9e=function(_0x102e37,_0x14a181){_0x102e37=_0x102e37-0x0;var _0x35a07c=_0xa9e0[_0x102e37];return _0x35a07c;};'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 _0x676b=['options','includeAll','include','catch','show','params','keys','rawAttributes','length','find','create','body','getConfigurations','findOne','SugarcrmConfiguration','hasOwnProperty','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','Subjects','assigned_user_id','created_by','description','duration_hours','duration_minutes','parent_id','parent_type','parent_name','username','password','remoteUri','slice','lastIndexOf','POST','format','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','get_module_fields','Calls','module_fields','remove','label','endsWith','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','test','eml-format','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','fs-extra','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','json','offset','undefined','limit','count','Content-Range','apply','update','then','destroy','status','sendStatus','error','stack','name','send','index','SugarcrmAccount','fieldName','type','key','model','query','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','filter','merge','map','VIRTUAL'];(function(_0x1e85e8,_0x2841e7){var _0x40efb9=function(_0x152498){while(--_0x152498){_0x1e85e8['push'](_0x1e85e8['shift']());}};_0x40efb9(++_0x2841e7);}(_0x676b,0xaa));var _0xb676=function(_0x171fdc,_0x16ae91){_0x171fdc=_0x171fdc-0x0;var _0x3782ea=_0x676b[_0x171fdc];return _0x3782ea;};'use strict';var emlformat=require(_0xb676('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xb676('0x1'));var rp=require('request-promise');var moment=require(_0xb676('0x2'));var BPromise=require(_0xb676('0x3'));var Mustache=require(_0xb676('0x4'));var util=require('util');var path=require(_0xb676('0x5'));var sox=require(_0xb676('0x6'));var csv=require(_0xb676('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb676('0x8'));var _=require('lodash');var squel=require(_0xb676('0x9'));var crypto=require('crypto');var jsforce=require(_0xb676('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xb676('0x7'));var querystring=require(_0xb676('0xb'));var Papa=require(_0xb676('0xc'));var Redis=require(_0xb676('0xd'));var authService=require('../../components/auth/service');var qs=require(_0xb676('0xe'));var as=require(_0xb676('0xf'));var hardwareService=require(_0xb676('0x10'));var logger=require(_0xb676('0x11'))(_0xb676('0x12'));var utils=require(_0xb676('0x13'));var config=require(_0xb676('0x14'));var licenseUtil=require(_0xb676('0x15'));var db=require(_0xb676('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3500e7,_0x5ecdc8){_0x5ecdc8=_0x5ecdc8||0xcc;return function(_0x599649){if(_0x599649){return _0x3500e7['sendStatus'](_0x5ecdc8);}return _0x3500e7['status'](_0x5ecdc8)[_0xb676('0x17')]();};}function respondWithResult(_0xd12479,_0x48964c){_0x48964c=_0x48964c||0xc8;return function(_0x5d993b){if(_0x5d993b){return _0xd12479['status'](_0x48964c)[_0xb676('0x18')](_0x5d993b);}};}function respondWithFilteredResult(_0x574c18,_0x5a193d){return function(_0x171c37){if(_0x171c37){var _0x4400cc=typeof _0x5a193d[_0xb676('0x19')]===_0xb676('0x1a')&&typeof _0x5a193d[_0xb676('0x1b')]==='undefined';var _0x1fb712=_0x171c37[_0xb676('0x1c')];var _0x4b4703=_0x4400cc?0x0:_0x5a193d[_0xb676('0x19')];var _0x222a00=_0x4400cc?_0x171c37['count']:_0x5a193d[_0xb676('0x19')]+_0x5a193d[_0xb676('0x1b')];var _0x2137d9;if(_0x222a00>=_0x1fb712){_0x222a00=_0x1fb712;_0x2137d9=0xc8;}else{_0x2137d9=0xce;}_0x574c18['status'](_0x2137d9);return _0x574c18['set'](_0xb676('0x1d'),_0x4b4703+'-'+_0x222a00+'/'+_0x1fb712)[_0xb676('0x18')](_0x171c37);}return null;};}function patchUpdates(_0x1afa44){return function(_0x316127){try{jsonpatch[_0xb676('0x1e')](_0x316127,_0x1afa44,!![]);}catch(_0x33023a){return BPromise['reject'](_0x33023a);}return _0x316127['save']();};}function saveUpdates(_0x471a16,_0x1bde5f){return function(_0x15a150){if(_0x15a150){return _0x15a150[_0xb676('0x1f')](_0x471a16)[_0xb676('0x20')](function(_0x3bef56){return _0x3bef56;});}return null;};}function removeEntity(_0x2c881e,_0x373965){return function(_0x1fb7d0){if(_0x1fb7d0){return _0x1fb7d0[_0xb676('0x21')]()[_0xb676('0x20')](function(){_0x2c881e[_0xb676('0x22')](0xcc)[_0xb676('0x17')]();});}};}function handleEntityNotFound(_0x5ab6b2,_0x580d8){return function(_0x36e94f){if(!_0x36e94f){_0x5ab6b2[_0xb676('0x23')](0x194);}return _0x36e94f;};}function handleError(_0x25f2a3,_0x5a4410){_0x5a4410=_0x5a4410||0x1f4;return function(_0x57064a){logger[_0xb676('0x24')](_0x57064a[_0xb676('0x25')]);if(_0x57064a[_0xb676('0x26')]){delete _0x57064a[_0xb676('0x26')];}_0x25f2a3[_0xb676('0x22')](_0x5a4410)[_0xb676('0x27')](_0x57064a);};}exports[_0xb676('0x28')]=function(_0x2bbf89,_0x1fa94a){var _0xc11026={},_0x336bcd={},_0x14a2ea={'count':0x0,'rows':[]};var _0x4ff190=_['map'](db[_0xb676('0x29')]['rawAttributes'],function(_0x5cfcc0){return{'name':_0x5cfcc0[_0xb676('0x2a')],'type':_0x5cfcc0[_0xb676('0x2b')][_0xb676('0x2c')]};});_0x336bcd[_0xb676('0x2d')]=_['map'](_0x4ff190,_0xb676('0x26'));_0x336bcd[_0xb676('0x2e')]=_['keys'](_0x2bbf89[_0xb676('0x2e')]);_0x336bcd[_0xb676('0x2f')]=_['intersection'](_0x336bcd[_0xb676('0x2d')],_0x336bcd[_0xb676('0x2e')]);_0xc11026['attributes']=_[_0xb676('0x30')](_0x336bcd[_0xb676('0x2d')],qs['fields'](_0x2bbf89[_0xb676('0x2e')][_0xb676('0x31')]));_0xc11026['attributes']=_0xc11026[_0xb676('0x32')]['length']?_0xc11026[_0xb676('0x32')]:_0x336bcd[_0xb676('0x2d')];if(!_0x2bbf89['query']['hasOwnProperty'](_0xb676('0x33'))){_0xc11026[_0xb676('0x1b')]=qs[_0xb676('0x1b')](_0x2bbf89[_0xb676('0x2e')][_0xb676('0x1b')]);_0xc11026[_0xb676('0x19')]=qs[_0xb676('0x19')](_0x2bbf89[_0xb676('0x2e')]['offset']);}_0xc11026[_0xb676('0x34')]=qs[_0xb676('0x35')](_0x2bbf89['query'][_0xb676('0x35')]);_0xc11026[_0xb676('0x36')]=qs[_0xb676('0x2f')](_[_0xb676('0x37')](_0x2bbf89[_0xb676('0x2e')],_0x336bcd['filters']),_0x4ff190);if(_0x2bbf89[_0xb676('0x2e')][_0xb676('0x38')]){_0xc11026[_0xb676('0x36')]=_[_0xb676('0x39')](_0xc11026[_0xb676('0x36')],{'$or':_[_0xb676('0x3a')](_0x4ff190,function(_0x296a28){if(_0x296a28[_0xb676('0x2b')]!==_0xb676('0x3b')){var _0x308726={};_0x308726[_0x296a28[_0xb676('0x26')]]={'$like':'%'+_0x2bbf89[_0xb676('0x2e')][_0xb676('0x38')]+'%'};return _0x308726;}})});}_0xc11026=_['merge']({},_0xc11026,_0x2bbf89[_0xb676('0x3c')]);var _0x254f1c={'where':_0xc11026[_0xb676('0x36')]};return db[_0xb676('0x29')]['count'](_0x254f1c)[_0xb676('0x20')](function(_0x2ec1d5){_0x14a2ea[_0xb676('0x1c')]=_0x2ec1d5;if(_0x2bbf89[_0xb676('0x2e')][_0xb676('0x3d')]){_0xc11026[_0xb676('0x3e')]=[{'all':!![]}];}return db[_0xb676('0x29')]['findAll'](_0xc11026);})[_0xb676('0x20')](function(_0x5c3e38){_0x14a2ea['rows']=_0x5c3e38;return _0x14a2ea;})[_0xb676('0x20')](respondWithFilteredResult(_0x1fa94a,_0xc11026))[_0xb676('0x3f')](handleError(_0x1fa94a,null));};exports[_0xb676('0x40')]=function(_0x569896,_0x335296){var _0x10113e={'raw':![],'where':{'id':_0x569896[_0xb676('0x41')]['id']}},_0x2b3034={};_0x2b3034[_0xb676('0x2d')]=_[_0xb676('0x42')](db[_0xb676('0x29')][_0xb676('0x43')]);_0x2b3034['query']=_[_0xb676('0x42')](_0x569896[_0xb676('0x2e')]);_0x2b3034[_0xb676('0x2f')]=_['intersection'](_0x2b3034[_0xb676('0x2d')],_0x2b3034['query']);_0x10113e[_0xb676('0x32')]=_[_0xb676('0x30')](_0x2b3034[_0xb676('0x2d')],qs[_0xb676('0x31')](_0x569896[_0xb676('0x2e')]['fields']));_0x10113e['attributes']=_0x10113e[_0xb676('0x32')][_0xb676('0x44')]?_0x10113e[_0xb676('0x32')]:_0x2b3034[_0xb676('0x2d')];if(_0x569896[_0xb676('0x2e')]['includeAll']){_0x10113e[_0xb676('0x3e')]=[{'all':!![]}];}_0x10113e=_[_0xb676('0x39')]({},_0x10113e,_0x569896[_0xb676('0x3c')]);return db[_0xb676('0x29')][_0xb676('0x45')](_0x10113e)[_0xb676('0x20')](handleEntityNotFound(_0x335296,null))[_0xb676('0x20')](respondWithResult(_0x335296,null))[_0xb676('0x3f')](handleError(_0x335296,null));};exports[_0xb676('0x46')]=function(_0xadc52b,_0x28d074){return db['SugarcrmAccount']['create'](_0xadc52b['body'],{})[_0xb676('0x20')](respondWithResult(_0x28d074,0xc9))[_0xb676('0x3f')](handleError(_0x28d074,null));};exports['update']=function(_0x4ccda9,_0x3ed54d){if(_0x4ccda9[_0xb676('0x47')]['id']){delete _0x4ccda9[_0xb676('0x47')]['id'];}return db[_0xb676('0x29')][_0xb676('0x45')]({'where':{'id':_0x4ccda9['params']['id']}})[_0xb676('0x20')](handleEntityNotFound(_0x3ed54d,null))['then'](saveUpdates(_0x4ccda9['body'],null))[_0xb676('0x20')](respondWithResult(_0x3ed54d,null))['catch'](handleError(_0x3ed54d,null));};exports['destroy']=function(_0x1705da,_0x410123){return db[_0xb676('0x29')][_0xb676('0x45')]({'where':{'id':_0x1705da[_0xb676('0x41')]['id']}})[_0xb676('0x20')](handleEntityNotFound(_0x410123,null))[_0xb676('0x20')](removeEntity(_0x410123,null))[_0xb676('0x3f')](handleError(_0x410123,null));};exports[_0xb676('0x48')]=function(_0x1219fe,_0x4525c3,_0x50dd5d){var _0x18e8f3={};var _0x1aec0a={};var _0x45fe05;var _0x1114ce;return db[_0xb676('0x29')][_0xb676('0x49')]({'where':{'id':_0x1219fe[_0xb676('0x41')]['id']}})[_0xb676('0x20')](handleEntityNotFound(_0x4525c3,null))['then'](function(_0x1c35f3){if(_0x1c35f3){_0x45fe05=_0x1c35f3;_0x1aec0a['model']=_['keys'](db[_0xb676('0x4a')][_0xb676('0x43')]);_0x1aec0a[_0xb676('0x2e')]=_[_0xb676('0x42')](_0x1219fe['query']);_0x1aec0a[_0xb676('0x2f')]=_[_0xb676('0x30')](_0x1aec0a[_0xb676('0x2d')],_0x1aec0a[_0xb676('0x2e')]);_0x18e8f3[_0xb676('0x32')]=_[_0xb676('0x30')](_0x1aec0a[_0xb676('0x2d')],qs[_0xb676('0x31')](_0x1219fe['query'][_0xb676('0x31')]));_0x18e8f3[_0xb676('0x32')]=_0x18e8f3['attributes']['length']?_0x18e8f3[_0xb676('0x32')]:_0x1aec0a['model'];_0x18e8f3[_0xb676('0x34')]=qs['sort'](_0x1219fe['query'][_0xb676('0x35')]);_0x18e8f3['where']=qs[_0xb676('0x2f')](_[_0xb676('0x37')](_0x1219fe[_0xb676('0x2e')],_0x1aec0a[_0xb676('0x2f')]));if(_0x1219fe[_0xb676('0x2e')][_0xb676('0x38')]){_0x18e8f3[_0xb676('0x36')]=_[_0xb676('0x39')](_0x18e8f3[_0xb676('0x36')],{'$or':_[_0xb676('0x3a')](_0x18e8f3[_0xb676('0x32')],function(_0x333522){var _0x594d18={};_0x594d18[_0x333522]={'$like':'%'+_0x1219fe[_0xb676('0x2e')][_0xb676('0x38')]+'%'};return _0x594d18;})});}_0x18e8f3=_[_0xb676('0x39')]({},_0x18e8f3,_0x1219fe[_0xb676('0x3c')]);return _0x45fe05['getConfigurations'](_0x18e8f3);}})[_0xb676('0x20')](function(_0x1edf86){if(_0x1edf86){_0x1114ce=_0x1edf86[_0xb676('0x44')];if(!_0x1219fe[_0xb676('0x2e')][_0xb676('0x4b')](_0xb676('0x33'))){_0x18e8f3[_0xb676('0x1b')]=qs[_0xb676('0x1b')](_0x1219fe[_0xb676('0x2e')]['limit']);_0x18e8f3[_0xb676('0x19')]=qs[_0xb676('0x19')](_0x1219fe[_0xb676('0x2e')][_0xb676('0x19')]);}return _0x45fe05[_0xb676('0x48')](_0x18e8f3);}})[_0xb676('0x20')](function(_0x344792){if(_0x344792){return _0x344792?{'count':_0x1114ce,'rows':_0x344792}:null;}})['then'](respondWithResult(_0x4525c3,null))[_0xb676('0x3f')](handleError(_0x4525c3,null));};exports['addConfiguration']=function(_0x3417cd,_0x4525d1,_0x340109){if(_0x3417cd['body']['id']){delete _0x3417cd[_0xb676('0x47')]['id'];}return db[_0xb676('0x29')][_0xb676('0x49')]({'where':{'id':_0x3417cd[_0xb676('0x41')]['id']}})[_0xb676('0x20')](handleEntityNotFound(_0x4525d1,null))[_0xb676('0x20')](function(_0x5a0492){if(_0x5a0492){_0x3417cd[_0xb676('0x47')]['AccountId']=_0x5a0492['id'];_0x3417cd[_0xb676('0x47')]['Subjects']=integrations[_0xb676('0x4c')](_0x3417cd[_0xb676('0x47')][_0xb676('0x4d')],_0x3417cd[_0xb676('0x47')][_0xb676('0x2b')]);_0x3417cd['body'][_0xb676('0x4e')]=integrations[_0xb676('0x4f')](_0x3417cd[_0xb676('0x47')][_0xb676('0x4d')],_0x3417cd[_0xb676('0x47')][_0xb676('0x2b')]);return db[_0xb676('0x4a')][_0xb676('0x46')](_0x3417cd['body'],{'include':[{'model':db[_0xb676('0x50')],'as':_0xb676('0x51')},{'model':db['SugarcrmField'],'as':_0xb676('0x4e')}]});}return null;})[_0xb676('0x20')](respondWithResult(_0x4525d1,null))[_0xb676('0x3f')](handleError(_0x4525d1,null));};exports['getFields']=function(_0xcecb24,_0x28227e,_0x4b584f){var _0x25f6f1='';var _0x38e087=['id',_0xb676('0x26'),_0xb676('0x52'),_0xb676('0x53'),_0xb676('0x54'),'date_start',_0xb676('0x55'),_0xb676('0x56'),_0xb676('0x57'),_0xb676('0x58'),_0xb676('0x59'),'direction'];return db[_0xb676('0x29')][_0xb676('0x49')]({'where':{'id':_0xcecb24[_0xb676('0x41')]['id']},'attributes':['id',_0xb676('0x5a'),_0xb676('0x5b'),'remoteUri']})[_0xb676('0x20')](handleEntityNotFound(_0x28227e,null))[_0xb676('0x20')](function(_0x468597){if(_0x468597){_0x25f6f1=_0x468597[_0xb676('0x5c')];var _0x123219=_0x25f6f1[_0xb676('0x5d')](-0x1);if(_0x123219==='/'){_0x25f6f1=_0x25f6f1['substring'](0x0,_0x25f6f1[_0xb676('0x5e')](_0x123219));}return rp({'method':_0xb676('0x5f'),'uri':util[_0xb676('0x60')]('%s%s',_0x25f6f1,_0xb676('0x61')),'json':!![],'form':{'method':_0xb676('0x62'),'input_type':_0xb676('0x63'),'response_type':_0xb676('0x63'),'rest_data':JSON[_0xb676('0x64')]({'user_auth':{'user_name':_0x468597[_0xb676('0x5a')],'password':_0x468597[_0xb676('0x5b')],'encryption':_0xb676('0x65')},'application':_0xb676('0x66')})}});}})[_0xb676('0x20')](function(_0x32de18){if(_0x32de18&&_0x32de18[_0xb676('0x26')]!==_0xb676('0x67')&&_0x32de18[_0xb676('0x26')]!==_0xb676('0x68')){return rp({'method':_0xb676('0x5f'),'uri':util[_0xb676('0x60')]('%s%s',_0x25f6f1,_0xb676('0x61')),'json':!![],'form':{'method':_0xb676('0x69'),'input_type':'JSON','response_type':'JSON','rest_data':JSON['stringify']({'session':_0x32de18['id'],'module_name':_0xb676('0x6a')})}})[_0xb676('0x20')](function(_0x219631){if(_0x219631){var _0x48acc2=_['values'](_0x219631[_0xb676('0x6b')]);_[_0xb676('0x6c')](_0x48acc2,function(_0x4d9765){return _0x38e087['includes'](_0x4d9765[_0xb676('0x26')]);});return{'count':_0x48acc2[_0xb676('0x44')],'rows':_[_0xb676('0x3a')](_0x48acc2,function(_0x924d7a){return{'id':_0x924d7a['name'],'name':_0x924d7a[_0xb676('0x6d')],'custom':_[_0xb676('0x6e')](_0x924d7a[_0xb676('0x26')],'_c')?!![]:![],'options':_0x924d7a[_0xb676('0x3c')]?_[_0xb676('0x3a')](_['values'](_0x924d7a[_0xb676('0x3c')]),function(_0x661916){return{'name':_0x661916['value'],'value':_0x661916[_0xb676('0x26')]};}):[]};})};}})[_0xb676('0x20')](respondWithResult(_0x28227e,null))[_0xb676('0x3f')](function(_0xbe06f6){var _0x3de183=_0xcecb24[_0xb676('0x2e')]['test']?0x1f4:_0xbe06f6[_0xb676('0x6f')]||0x1f4;logger[_0xb676('0x24')](_0xb676('0x70'),_0xb676('0x71'),_0x3de183,JSON[_0xb676('0x64')](_0xbe06f6));delete _0xbe06f6[_0xb676('0x26')];if(_0x3de183===0x191){_0x3de183=0x190;}_0x28227e['status'](_0x3de183)[_0xb676('0x27')](_0xcecb24[_0xb676('0x2e')][_0xb676('0x72')]?{'message':'Wrong\x20credentials','statusCode':_0xbe06f6[_0xb676('0x6f')]}:_0xbe06f6);});}else{var _0x131570=0x1f4;_0x28227e[_0xb676('0x22')](_0x131570)['send']({'message':'Wrong\x20credentials','statusCode':0x190});}});};
\ No newline at end of file
+var _0x3abb=['ejs','lodash','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','json','offset','undefined','count','set','Content-Range','save','update','destroy','then','end','error','stack','name','send','index','map','SugarcrmAccount','rawAttributes','type','key','model','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','keys','length','find','body','catch','params','getConfigurations','addConfiguration','findOne','AccountId','getSubjects','channel','Descriptions','SugarcrmConfiguration','create','SugarcrmField','getFields','assigned_user_id','created_by','description','date_start','duration_minutes','parent_id','parent_name','direction','username','password','remoteUri','slice','substring','lastIndexOf','format','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Password\x20Expired','POST','%s%s','get_module_fields','module_fields','remove','includes','label','value','statusCode','test','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv'];(function(_0x109bb6,_0x29b46a){var _0x4f092d=function(_0x553ad9){while(--_0x553ad9){_0x109bb6['push'](_0x109bb6['shift']());}};_0x4f092d(++_0x29b46a);}(_0x3abb,0x6e));var _0xb3ab=function(_0x2080a3,_0x48acfa){_0x2080a3=_0x2080a3-0x0;var _0x8d7d17=_0x3abb[_0x2080a3];return _0x8d7d17;};'use strict';var emlformat=require(_0xb3ab('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb3ab('0x1'));var jsonpatch=require(_0xb3ab('0x2'));var rp=require(_0xb3ab('0x3'));var moment=require(_0xb3ab('0x4'));var BPromise=require(_0xb3ab('0x5'));var Mustache=require(_0xb3ab('0x6'));var util=require(_0xb3ab('0x7'));var path=require('path');var sox=require(_0xb3ab('0x8'));var csv=require(_0xb3ab('0x9'));var ejs=require(_0xb3ab('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb3ab('0xb'));var squel=require('squel');var crypto=require(_0xb3ab('0xc'));var jsforce=require(_0xb3ab('0xd'));var deskjs=require(_0xb3ab('0xe'));var toCsv=require('to-csv');var querystring=require(_0xb3ab('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xb3ab('0x10'));var qs=require(_0xb3ab('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb3ab('0x12'));var logger=require(_0xb3ab('0x13'))(_0xb3ab('0x14'));var utils=require(_0xb3ab('0x15'));var config=require(_0xb3ab('0x16'));var licenseUtil=require(_0xb3ab('0x17'));var db=require('../../mysqldb')['db'];var integrations=require(_0xb3ab('0x18'));function respondWithStatusCode(_0x2005c5,_0x262a51){_0x262a51=_0x262a51||0xcc;return function(_0x51d372){if(_0x51d372){return _0x2005c5[_0xb3ab('0x19')](_0x262a51);}return _0x2005c5[_0xb3ab('0x1a')](_0x262a51)['end']();};}function respondWithResult(_0x179517,_0x1ec185){_0x1ec185=_0x1ec185||0xc8;return function(_0x74a4d8){if(_0x74a4d8){return _0x179517[_0xb3ab('0x1a')](_0x1ec185)[_0xb3ab('0x1b')](_0x74a4d8);}};}function respondWithFilteredResult(_0x452a9a,_0x4aa02e){return function(_0x36137e){if(_0x36137e){var _0x2c2645=typeof _0x4aa02e[_0xb3ab('0x1c')]===_0xb3ab('0x1d')&&typeof _0x4aa02e['limit']==='undefined';var _0x30d48c=_0x36137e[_0xb3ab('0x1e')];var _0x198600=_0x2c2645?0x0:_0x4aa02e[_0xb3ab('0x1c')];var _0x14964b=_0x2c2645?_0x36137e['count']:_0x4aa02e['offset']+_0x4aa02e['limit'];var _0x1eb477;if(_0x14964b>=_0x30d48c){_0x14964b=_0x30d48c;_0x1eb477=0xc8;}else{_0x1eb477=0xce;}_0x452a9a[_0xb3ab('0x1a')](_0x1eb477);return _0x452a9a[_0xb3ab('0x1f')](_0xb3ab('0x20'),_0x198600+'-'+_0x14964b+'/'+_0x30d48c)[_0xb3ab('0x1b')](_0x36137e);}return null;};}function patchUpdates(_0x4957d2){return function(_0x30063d){try{jsonpatch['apply'](_0x30063d,_0x4957d2,!![]);}catch(_0x1d1c22){return BPromise['reject'](_0x1d1c22);}return _0x30063d[_0xb3ab('0x21')]();};}function saveUpdates(_0x47f401,_0x265bd3){return function(_0x497533){if(_0x497533){return _0x497533[_0xb3ab('0x22')](_0x47f401)['then'](function(_0x59af4e){return _0x59af4e;});}return null;};}function removeEntity(_0x308b61,_0x3d9f58){return function(_0x56b2b9){if(_0x56b2b9){return _0x56b2b9[_0xb3ab('0x23')]()[_0xb3ab('0x24')](function(){_0x308b61[_0xb3ab('0x1a')](0xcc)[_0xb3ab('0x25')]();});}};}function handleEntityNotFound(_0x35be27,_0x4f41cb){return function(_0x3ddb59){if(!_0x3ddb59){_0x35be27[_0xb3ab('0x19')](0x194);}return _0x3ddb59;};}function handleError(_0x3ffe7e,_0x55a8e7){_0x55a8e7=_0x55a8e7||0x1f4;return function(_0x16a5e3){logger[_0xb3ab('0x26')](_0x16a5e3[_0xb3ab('0x27')]);if(_0x16a5e3[_0xb3ab('0x28')]){delete _0x16a5e3[_0xb3ab('0x28')];}_0x3ffe7e[_0xb3ab('0x1a')](_0x55a8e7)[_0xb3ab('0x29')](_0x16a5e3);};}exports[_0xb3ab('0x2a')]=function(_0x591c3c,_0x79aeca){var _0x36db16={},_0x1889ec={},_0x55b306={'count':0x0,'rows':[]};var _0x248b46=_[_0xb3ab('0x2b')](db[_0xb3ab('0x2c')][_0xb3ab('0x2d')],function(_0x2338b4){return{'name':_0x2338b4['fieldName'],'type':_0x2338b4[_0xb3ab('0x2e')][_0xb3ab('0x2f')]};});_0x1889ec[_0xb3ab('0x30')]=_[_0xb3ab('0x2b')](_0x248b46,_0xb3ab('0x28'));_0x1889ec[_0xb3ab('0x31')]=_['keys'](_0x591c3c[_0xb3ab('0x31')]);_0x1889ec[_0xb3ab('0x32')]=_['intersection'](_0x1889ec[_0xb3ab('0x30')],_0x1889ec[_0xb3ab('0x31')]);_0x36db16[_0xb3ab('0x33')]=_[_0xb3ab('0x34')](_0x1889ec[_0xb3ab('0x30')],qs[_0xb3ab('0x35')](_0x591c3c[_0xb3ab('0x31')][_0xb3ab('0x35')]));_0x36db16[_0xb3ab('0x33')]=_0x36db16['attributes']['length']?_0x36db16['attributes']:_0x1889ec['model'];if(!_0x591c3c[_0xb3ab('0x31')][_0xb3ab('0x36')](_0xb3ab('0x37'))){_0x36db16[_0xb3ab('0x38')]=qs[_0xb3ab('0x38')](_0x591c3c[_0xb3ab('0x31')][_0xb3ab('0x38')]);_0x36db16[_0xb3ab('0x1c')]=qs[_0xb3ab('0x1c')](_0x591c3c['query'][_0xb3ab('0x1c')]);}_0x36db16[_0xb3ab('0x39')]=qs[_0xb3ab('0x3a')](_0x591c3c['query']['sort']);_0x36db16['where']=qs['filters'](_[_0xb3ab('0x3b')](_0x591c3c[_0xb3ab('0x31')],_0x1889ec[_0xb3ab('0x32')]),_0x248b46);if(_0x591c3c[_0xb3ab('0x31')][_0xb3ab('0x3c')]){_0x36db16[_0xb3ab('0x3d')]=_[_0xb3ab('0x3e')](_0x36db16['where'],{'$or':_[_0xb3ab('0x2b')](_0x248b46,function(_0x5d884f){if(_0x5d884f[_0xb3ab('0x2e')]!==_0xb3ab('0x3f')){var _0x15c7b8={};_0x15c7b8[_0x5d884f[_0xb3ab('0x28')]]={'$like':'%'+_0x591c3c[_0xb3ab('0x31')][_0xb3ab('0x3c')]+'%'};return _0x15c7b8;}})});}_0x36db16=_['merge']({},_0x36db16,_0x591c3c[_0xb3ab('0x40')]);var _0x1b5293={'where':_0x36db16[_0xb3ab('0x3d')]};return db['SugarcrmAccount'][_0xb3ab('0x1e')](_0x1b5293)['then'](function(_0x5b5c7e){_0x55b306[_0xb3ab('0x1e')]=_0x5b5c7e;if(_0x591c3c[_0xb3ab('0x31')][_0xb3ab('0x41')]){_0x36db16[_0xb3ab('0x42')]=[{'all':!![]}];}return db[_0xb3ab('0x2c')][_0xb3ab('0x43')](_0x36db16);})[_0xb3ab('0x24')](function(_0x459593){_0x55b306[_0xb3ab('0x44')]=_0x459593;return _0x55b306;})['then'](respondWithFilteredResult(_0x79aeca,_0x36db16))['catch'](handleError(_0x79aeca,null));};exports[_0xb3ab('0x45')]=function(_0x44c100,_0x28ef66){var _0x15632a={'raw':![],'where':{'id':_0x44c100['params']['id']}},_0x5ec490={};_0x5ec490[_0xb3ab('0x30')]=_[_0xb3ab('0x46')](db['SugarcrmAccount'][_0xb3ab('0x2d')]);_0x5ec490[_0xb3ab('0x31')]=_[_0xb3ab('0x46')](_0x44c100['query']);_0x5ec490[_0xb3ab('0x32')]=_[_0xb3ab('0x34')](_0x5ec490[_0xb3ab('0x30')],_0x5ec490['query']);_0x15632a['attributes']=_['intersection'](_0x5ec490[_0xb3ab('0x30')],qs['fields'](_0x44c100[_0xb3ab('0x31')][_0xb3ab('0x35')]));_0x15632a[_0xb3ab('0x33')]=_0x15632a[_0xb3ab('0x33')][_0xb3ab('0x47')]?_0x15632a['attributes']:_0x5ec490[_0xb3ab('0x30')];if(_0x44c100['query'][_0xb3ab('0x41')]){_0x15632a[_0xb3ab('0x42')]=[{'all':!![]}];}_0x15632a=_[_0xb3ab('0x3e')]({},_0x15632a,_0x44c100[_0xb3ab('0x40')]);return db[_0xb3ab('0x2c')][_0xb3ab('0x48')](_0x15632a)[_0xb3ab('0x24')](handleEntityNotFound(_0x28ef66,null))[_0xb3ab('0x24')](respondWithResult(_0x28ef66,null))['catch'](handleError(_0x28ef66,null));};exports['create']=function(_0x11e72e,_0x233dd3){return db[_0xb3ab('0x2c')]['create'](_0x11e72e[_0xb3ab('0x49')],{})['then'](respondWithResult(_0x233dd3,0xc9))[_0xb3ab('0x4a')](handleError(_0x233dd3,null));};exports[_0xb3ab('0x22')]=function(_0x5e4006,_0x18c3d1){if(_0x5e4006[_0xb3ab('0x49')]['id']){delete _0x5e4006[_0xb3ab('0x49')]['id'];}return db[_0xb3ab('0x2c')][_0xb3ab('0x48')]({'where':{'id':_0x5e4006[_0xb3ab('0x4b')]['id']}})[_0xb3ab('0x24')](handleEntityNotFound(_0x18c3d1,null))[_0xb3ab('0x24')](saveUpdates(_0x5e4006[_0xb3ab('0x49')],null))[_0xb3ab('0x24')](respondWithResult(_0x18c3d1,null))[_0xb3ab('0x4a')](handleError(_0x18c3d1,null));};exports[_0xb3ab('0x23')]=function(_0x5245e7,_0x2019f8){return db[_0xb3ab('0x2c')]['find']({'where':{'id':_0x5245e7[_0xb3ab('0x4b')]['id']}})[_0xb3ab('0x24')](handleEntityNotFound(_0x2019f8,null))[_0xb3ab('0x24')](removeEntity(_0x2019f8,null))[_0xb3ab('0x4a')](handleError(_0x2019f8,null));};exports[_0xb3ab('0x4c')]=function(_0x477996,_0xc80cd4,_0x39358c){var _0x5dc38e={};var _0x10e992={};var _0x16df31;var _0x2fc8f5;return db[_0xb3ab('0x2c')]['findOne']({'where':{'id':_0x477996[_0xb3ab('0x4b')]['id']}})['then'](handleEntityNotFound(_0xc80cd4,null))[_0xb3ab('0x24')](function(_0x55bcd4){if(_0x55bcd4){_0x16df31=_0x55bcd4;_0x10e992[_0xb3ab('0x30')]=_[_0xb3ab('0x46')](db['SugarcrmConfiguration']['rawAttributes']);_0x10e992[_0xb3ab('0x31')]=_[_0xb3ab('0x46')](_0x477996[_0xb3ab('0x31')]);_0x10e992[_0xb3ab('0x32')]=_[_0xb3ab('0x34')](_0x10e992['model'],_0x10e992[_0xb3ab('0x31')]);_0x5dc38e[_0xb3ab('0x33')]=_[_0xb3ab('0x34')](_0x10e992[_0xb3ab('0x30')],qs[_0xb3ab('0x35')](_0x477996[_0xb3ab('0x31')][_0xb3ab('0x35')]));_0x5dc38e[_0xb3ab('0x33')]=_0x5dc38e[_0xb3ab('0x33')]['length']?_0x5dc38e[_0xb3ab('0x33')]:_0x10e992[_0xb3ab('0x30')];_0x5dc38e[_0xb3ab('0x39')]=qs[_0xb3ab('0x3a')](_0x477996[_0xb3ab('0x31')][_0xb3ab('0x3a')]);_0x5dc38e['where']=qs[_0xb3ab('0x32')](_[_0xb3ab('0x3b')](_0x477996[_0xb3ab('0x31')],_0x10e992['filters']));if(_0x477996[_0xb3ab('0x31')]['filter']){_0x5dc38e[_0xb3ab('0x3d')]=_[_0xb3ab('0x3e')](_0x5dc38e[_0xb3ab('0x3d')],{'$or':_[_0xb3ab('0x2b')](_0x5dc38e[_0xb3ab('0x33')],function(_0x11570f){var _0x30a6a1={};_0x30a6a1[_0x11570f]={'$like':'%'+_0x477996[_0xb3ab('0x31')][_0xb3ab('0x3c')]+'%'};return _0x30a6a1;})});}_0x5dc38e=_[_0xb3ab('0x3e')]({},_0x5dc38e,_0x477996[_0xb3ab('0x40')]);return _0x16df31[_0xb3ab('0x4c')](_0x5dc38e);}})[_0xb3ab('0x24')](function(_0xcddf98){if(_0xcddf98){_0x2fc8f5=_0xcddf98[_0xb3ab('0x47')];if(!_0x477996[_0xb3ab('0x31')][_0xb3ab('0x36')](_0xb3ab('0x37'))){_0x5dc38e['limit']=qs[_0xb3ab('0x38')](_0x477996[_0xb3ab('0x31')][_0xb3ab('0x38')]);_0x5dc38e[_0xb3ab('0x1c')]=qs[_0xb3ab('0x1c')](_0x477996['query'][_0xb3ab('0x1c')]);}return _0x16df31['getConfigurations'](_0x5dc38e);}})[_0xb3ab('0x24')](function(_0xa3fa){if(_0xa3fa){return _0xa3fa?{'count':_0x2fc8f5,'rows':_0xa3fa}:null;}})[_0xb3ab('0x24')](respondWithResult(_0xc80cd4,null))[_0xb3ab('0x4a')](handleError(_0xc80cd4,null));};exports[_0xb3ab('0x4d')]=function(_0x28e370,_0x622c71,_0x511a1c){if(_0x28e370[_0xb3ab('0x49')]['id']){delete _0x28e370[_0xb3ab('0x49')]['id'];}return db[_0xb3ab('0x2c')][_0xb3ab('0x4e')]({'where':{'id':_0x28e370[_0xb3ab('0x4b')]['id']}})[_0xb3ab('0x24')](handleEntityNotFound(_0x622c71,null))[_0xb3ab('0x24')](function(_0x39c9e4){if(_0x39c9e4){_0x28e370[_0xb3ab('0x49')][_0xb3ab('0x4f')]=_0x39c9e4['id'];_0x28e370['body']['Subjects']=integrations[_0xb3ab('0x50')](_0x28e370[_0xb3ab('0x49')][_0xb3ab('0x51')],_0x28e370[_0xb3ab('0x49')]['type']);_0x28e370[_0xb3ab('0x49')][_0xb3ab('0x52')]=integrations['getDescriptions'](_0x28e370['body'][_0xb3ab('0x51')],_0x28e370[_0xb3ab('0x49')][_0xb3ab('0x2e')]);return db[_0xb3ab('0x53')][_0xb3ab('0x54')](_0x28e370[_0xb3ab('0x49')],{'include':[{'model':db[_0xb3ab('0x55')],'as':'Subjects'},{'model':db[_0xb3ab('0x55')],'as':_0xb3ab('0x52')}]});}return null;})[_0xb3ab('0x24')](respondWithResult(_0x622c71,null))[_0xb3ab('0x4a')](handleError(_0x622c71,null));};exports[_0xb3ab('0x56')]=function(_0x44c900,_0x712a46,_0x19a807){var _0x56dc45='';var _0x5102c0=['id','name',_0xb3ab('0x57'),_0xb3ab('0x58'),_0xb3ab('0x59'),_0xb3ab('0x5a'),'duration_hours',_0xb3ab('0x5b'),_0xb3ab('0x5c'),'parent_type',_0xb3ab('0x5d'),_0xb3ab('0x5e')];return db[_0xb3ab('0x2c')][_0xb3ab('0x4e')]({'where':{'id':_0x44c900[_0xb3ab('0x4b')]['id']},'attributes':['id',_0xb3ab('0x5f'),_0xb3ab('0x60'),_0xb3ab('0x61')]})[_0xb3ab('0x24')](handleEntityNotFound(_0x712a46,null))[_0xb3ab('0x24')](function(_0x43997a){if(_0x43997a){_0x56dc45=_0x43997a[_0xb3ab('0x61')];var _0x2351aa=_0x56dc45[_0xb3ab('0x62')](-0x1);if(_0x2351aa==='/'){_0x56dc45=_0x56dc45[_0xb3ab('0x63')](0x0,_0x56dc45[_0xb3ab('0x64')](_0x2351aa));}return rp({'method':'POST','uri':util[_0xb3ab('0x65')]('%s%s',_0x56dc45,_0xb3ab('0x66')),'json':!![],'form':{'method':_0xb3ab('0x67'),'input_type':_0xb3ab('0x68'),'response_type':_0xb3ab('0x68'),'rest_data':JSON[_0xb3ab('0x69')]({'user_auth':{'user_name':_0x43997a[_0xb3ab('0x5f')],'password':_0x43997a['password'],'encryption':_0xb3ab('0x6a')},'application':_0xb3ab('0x6b')})}});}})['then'](function(_0x540263){if(_0x540263&&_0x540263[_0xb3ab('0x28')]!=='Invalid\x20Login'&&_0x540263[_0xb3ab('0x28')]!==_0xb3ab('0x6c')){return rp({'method':_0xb3ab('0x6d'),'uri':util['format'](_0xb3ab('0x6e'),_0x56dc45,_0xb3ab('0x66')),'json':!![],'form':{'method':_0xb3ab('0x6f'),'input_type':_0xb3ab('0x68'),'response_type':_0xb3ab('0x68'),'rest_data':JSON[_0xb3ab('0x69')]({'session':_0x540263['id'],'module_name':'Calls'})}})[_0xb3ab('0x24')](function(_0x21bc9c){if(_0x21bc9c){var _0x273b9a=_['values'](_0x21bc9c[_0xb3ab('0x70')]);_[_0xb3ab('0x71')](_0x273b9a,function(_0x470955){return _0x5102c0[_0xb3ab('0x72')](_0x470955[_0xb3ab('0x28')]);});return{'count':_0x273b9a[_0xb3ab('0x47')],'rows':_['map'](_0x273b9a,function(_0x4eb43a){return{'id':_0x4eb43a[_0xb3ab('0x28')],'name':_0x4eb43a[_0xb3ab('0x73')],'custom':_['endsWith'](_0x4eb43a['name'],'_c')?!![]:![],'options':_0x4eb43a[_0xb3ab('0x40')]?_[_0xb3ab('0x2b')](_['values'](_0x4eb43a[_0xb3ab('0x40')]),function(_0x257f9f){return{'name':_0x257f9f[_0xb3ab('0x74')],'value':_0x257f9f[_0xb3ab('0x28')]};}):[]};})};}})['then'](respondWithResult(_0x712a46,null))[_0xb3ab('0x4a')](function(_0x3ac287){var _0x4583a6=_0x44c900[_0xb3ab('0x31')]['test']?0x1f4:_0x3ac287[_0xb3ab('0x75')]||0x1f4;logger[_0xb3ab('0x26')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x4583a6,JSON[_0xb3ab('0x69')](_0x3ac287));delete _0x3ac287[_0xb3ab('0x28')];if(_0x4583a6===0x191){_0x4583a6=0x190;}_0x712a46[_0xb3ab('0x1a')](_0x4583a6)[_0xb3ab('0x29')](_0x44c900[_0xb3ab('0x31')][_0xb3ab('0x76')]?{'message':'Wrong\x20credentials','statusCode':_0x3ac287[_0xb3ab('0x75')]}:_0x3ac287);});}else{var _0x4b2e64=0x1f4;_0x712a46[_0xb3ab('0x1a')](_0x4b2e64)[_0xb3ab('0x29')]({'message':_0xb3ab('0x77'),'statusCode':0x190});}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32b6=['moment','path','rimraf','../../config/environment','./intSugarcrmAccount.attributes','../../components/integrations/configuration','exports','define','SugarcrmAccount','lodash','util','api'];(function(_0x3d8c5a,_0x3e7a43){var _0x1c7f6e=function(_0x4c1c5c){while(--_0x4c1c5c){_0x3d8c5a['push'](_0x3d8c5a['shift']());}};_0x1c7f6e(++_0x3e7a43);}(_0x32b6,0x1d1));var _0x632b=function(_0x3f789b,_0x2a8551){_0x3f789b=_0x3f789b-0x0;var _0x33278d=_0x32b6[_0x3f789b];return _0x33278d;};'use strict';var _=require(_0x632b('0x0'));var util=require(_0x632b('0x1'));var logger=require('../../config/logger')(_0x632b('0x2'));var moment=require(_0x632b('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x632b('0x4'));var rimraf=require(_0x632b('0x5'));var config=require(_0x632b('0x6'));var attributes=require(_0x632b('0x7'));var integrations=require(_0x632b('0x8'));module[_0x632b('0x9')]=function(_0x24ceab,_0x10458a){return _0x24ceab[_0x632b('0xa')](_0x632b('0xb'),attributes,{'tableName':'int_sugarcrm_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x513e=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intSugarcrmAccount.attributes','exports','define','SugarcrmAccount','int_sugarcrm_accounts','lodash','util','../../config/logger'];(function(_0x388a57,_0x57d885){var _0x85c874=function(_0x40a4f9){while(--_0x40a4f9){_0x388a57['push'](_0x388a57['shift']());}};_0x85c874(++_0x57d885);}(_0x513e,0x138));var _0xe513=function(_0x256b72,_0x340985){_0x256b72=_0x256b72-0x0;var _0x2183e3=_0x513e[_0x256b72];return _0x2183e3;};'use strict';var _=require(_0xe513('0x0'));var util=require(_0xe513('0x1'));var logger=require(_0xe513('0x2'))(_0xe513('0x3'));var moment=require(_0xe513('0x4'));var BPromise=require(_0xe513('0x5'));var rp=require(_0xe513('0x6'));var fs=require('fs');var path=require(_0xe513('0x7'));var rimraf=require(_0xe513('0x8'));var config=require(_0xe513('0x9'));var attributes=require(_0xe513('0xa'));var integrations=require('../../components/integrations/configuration');module[_0xe513('0xb')]=function(_0x4cf910,_0x2dd1bd){return _0x4cf910[_0xe513('0xc')](_0xe513('0xd'),attributes,{'tableName':_0xe513('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1dcf=['stringify','error','code','message','info','result','SugarcrmAccount','findAll','options','raw','where','attributes','include','model','map','GetSugarcrmAccount','ShowSugarcrmAccount','find','catch','lodash','moment','bluebird','randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','SugarcrmAccount,\x20%s,\x20%s','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','request\x20sent'];(function(_0x43b0fa,_0x226bdd){var _0xdb3299=function(_0x3a22dc){while(--_0x3a22dc){_0x43b0fa['push'](_0x43b0fa['shift']());}};_0xdb3299(++_0x226bdd);}(_0x1dcf,0x194));var _0xf1dc=function(_0x2aaa01,_0xe43bbf){_0x2aaa01=_0x2aaa01-0x0;var _0x5b1c51=_0x1dcf[_0x2aaa01];return _0x5b1c51;};'use strict';var _=require(_0xf1dc('0x0'));var util=require('util');var moment=require(_0xf1dc('0x1'));var BPromise=require(_0xf1dc('0x2'));var rs=require(_0xf1dc('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xf1dc('0x4'))(_0xf1dc('0x5'));var config=require(_0xf1dc('0x6'));var jayson=require(_0xf1dc('0x7'));var client=jayson[_0xf1dc('0x8')][_0xf1dc('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3707a5,_0x16530d,_0x3f8129){return new BPromise(function(_0x31d2c0,_0x491429){return client[_0xf1dc('0xa')](_0x3707a5,_0x3f8129)[_0xf1dc('0xb')](function(_0x404554){logger['info'](_0xf1dc('0xc'),_0x16530d,'request\x20sent');logger[_0xf1dc('0xd')](_0xf1dc('0xe'),_0x16530d,_0xf1dc('0xf'),JSON[_0xf1dc('0x10')](_0x404554));if(_0x404554[_0xf1dc('0x11')]){if(_0x404554[_0xf1dc('0x11')][_0xf1dc('0x12')]===0x1f4){logger[_0xf1dc('0x11')]('SugarcrmAccount,\x20%s,\x20%s',_0x16530d,_0x404554[_0xf1dc('0x11')]['message']);return _0x491429(_0x404554[_0xf1dc('0x11')]['message']);}logger[_0xf1dc('0x11')](_0xf1dc('0xc'),_0x16530d,_0x404554['error']['message']);return _0x31d2c0(_0x404554['error'][_0xf1dc('0x13')]);}else{logger[_0xf1dc('0x14')]('SugarcrmAccount,\x20%s,\x20%s',_0x16530d,_0xf1dc('0xf'));_0x31d2c0(_0x404554[_0xf1dc('0x15')]['message']);}})['catch'](function(_0x596076){logger['error'](_0xf1dc('0xc'),_0x16530d,_0x596076);_0x491429(_0x596076);});});}exports['GetSugarcrmAccount']=function(_0x49ca56){var _0x8d97ab=this;return new Promise(function(_0x49ef64,_0x4b57a7){return db[_0xf1dc('0x16')][_0xf1dc('0x17')]({'raw':_0x49ca56['options']?_0x49ca56[_0xf1dc('0x18')][_0xf1dc('0x19')]===undefined?!![]:![]:!![],'where':_0x49ca56[_0xf1dc('0x18')]?_0x49ca56['options'][_0xf1dc('0x1a')]||null:null,'attributes':_0x49ca56[_0xf1dc('0x18')]?_0x49ca56[_0xf1dc('0x18')][_0xf1dc('0x1b')]||null:null,'limit':_0x49ca56[_0xf1dc('0x18')]?_0x49ca56[_0xf1dc('0x18')]['limit']||null:null,'include':_0x49ca56[_0xf1dc('0x18')]?_0x49ca56[_0xf1dc('0x18')]['include']?_['map'](_0x49ca56['options'][_0xf1dc('0x1c')],function(_0x587adb){return{'model':db[_0x587adb[_0xf1dc('0x1d')]],'as':_0x587adb['as'],'attributes':_0x587adb[_0xf1dc('0x1b')],'include':_0x587adb[_0xf1dc('0x1c')]?_[_0xf1dc('0x1e')](_0x587adb[_0xf1dc('0x1c')],function(_0xedfd2e){return{'model':db[_0xedfd2e[_0xf1dc('0x1d')]],'as':_0xedfd2e['as'],'attributes':_0xedfd2e[_0xf1dc('0x1b')],'include':_0xedfd2e['include']?_[_0xf1dc('0x1e')](_0xedfd2e[_0xf1dc('0x1c')],function(_0x1d23f6){return{'model':db[_0x1d23f6['model']],'as':_0x1d23f6['as'],'attributes':_0x1d23f6[_0xf1dc('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xf1dc('0xb')](function(_0xe03fd0){logger[_0xf1dc('0x14')](_0xf1dc('0x1f'),_0x49ca56);logger[_0xf1dc('0xd')](_0xf1dc('0x1f'),_0x49ca56,JSON[_0xf1dc('0x10')](_0xe03fd0));_0x49ef64(_0xe03fd0);})['catch'](function(_0x3d83e4){logger[_0xf1dc('0x11')]('GetSugarcrmAccount',_0x3d83e4['message'],_0x49ca56);_0x4b57a7(_0x8d97ab[_0xf1dc('0x11')](0x1f4,_0x3d83e4[_0xf1dc('0x13')]));});});};exports[_0xf1dc('0x20')]=function(_0x578d99){var _0xf85ba8=this;return new Promise(function(_0x5369bd,_0x3c7209){return db[_0xf1dc('0x16')][_0xf1dc('0x21')]({'raw':_0x578d99['options']?_0x578d99['options'][_0xf1dc('0x19')]===undefined?!![]:![]:!![],'where':_0x578d99[_0xf1dc('0x18')]?_0x578d99[_0xf1dc('0x18')][_0xf1dc('0x1a')]||null:null,'attributes':_0x578d99['options']?_0x578d99[_0xf1dc('0x18')]['attributes']||null:null,'include':_0x578d99[_0xf1dc('0x18')]?_0x578d99[_0xf1dc('0x18')][_0xf1dc('0x1c')]?_[_0xf1dc('0x1e')](_0x578d99[_0xf1dc('0x18')][_0xf1dc('0x1c')],function(_0x51ad6a){return{'model':db[_0x51ad6a[_0xf1dc('0x1d')]],'as':_0x51ad6a['as'],'attributes':_0x51ad6a[_0xf1dc('0x1b')],'include':_0x51ad6a[_0xf1dc('0x1c')]?_[_0xf1dc('0x1e')](_0x51ad6a['include'],function(_0x5e38a8){return{'model':db[_0x5e38a8[_0xf1dc('0x1d')]],'as':_0x5e38a8['as'],'attributes':_0x5e38a8[_0xf1dc('0x1b')],'include':_0x5e38a8[_0xf1dc('0x1c')]?_[_0xf1dc('0x1e')](_0x5e38a8[_0xf1dc('0x1c')],function(_0x195be8){return{'model':db[_0x195be8[_0xf1dc('0x1d')]],'as':_0x195be8['as'],'attributes':_0x195be8[_0xf1dc('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2da442){logger['info']('ShowSugarcrmAccount',_0x578d99);logger[_0xf1dc('0xd')](_0xf1dc('0x20'),_0x578d99,JSON[_0xf1dc('0x10')](_0x2da442));_0x5369bd(_0x2da442);})[_0xf1dc('0x22')](function(_0x2f72ef){logger['error'](_0xf1dc('0x20'),_0x2f72ef['message'],_0x578d99);_0x3c7209(_0xf85ba8['error'](0x1f4,_0x2f72ef['message']));});});};
\ No newline at end of file
+var _0x9e94=['options','raw','where','attributes','include','model','map','GetSugarcrmAccount','ShowSugarcrmAccount','find','stringify','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','SugarcrmAccount','findAll'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x9e94,0x173));var _0x49e9=function(_0x55abb6,_0x17a62c){_0x55abb6=_0x55abb6-0x0;var _0x619b3b=_0x9e94[_0x55abb6];return _0x619b3b;};'use strict';var _=require(_0x49e9('0x0'));var util=require(_0x49e9('0x1'));var moment=require(_0x49e9('0x2'));var BPromise=require(_0x49e9('0x3'));var rs=require(_0x49e9('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x49e9('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x49e9('0x6'))(_0x49e9('0x7'));var config=require(_0x49e9('0x8'));var jayson=require(_0x49e9('0x9'));var client=jayson[_0x49e9('0xa')][_0x49e9('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x14988f,_0x20b212,_0x2b785b){return new BPromise(function(_0x288ce2,_0x3432a1){return client['request'](_0x14988f,_0x2b785b)[_0x49e9('0xc')](function(_0x32068e){logger[_0x49e9('0xd')](_0x49e9('0xe'),_0x20b212,_0x49e9('0xf'));logger[_0x49e9('0x10')](_0x49e9('0x11'),_0x20b212,_0x49e9('0xf'),JSON['stringify'](_0x32068e));if(_0x32068e[_0x49e9('0x12')]){if(_0x32068e[_0x49e9('0x12')][_0x49e9('0x13')]===0x1f4){logger['error'](_0x49e9('0xe'),_0x20b212,_0x32068e[_0x49e9('0x12')][_0x49e9('0x14')]);return _0x3432a1(_0x32068e[_0x49e9('0x12')][_0x49e9('0x14')]);}logger[_0x49e9('0x12')]('SugarcrmAccount,\x20%s,\x20%s',_0x20b212,_0x32068e[_0x49e9('0x12')][_0x49e9('0x14')]);return _0x288ce2(_0x32068e[_0x49e9('0x12')][_0x49e9('0x14')]);}else{logger[_0x49e9('0xd')]('SugarcrmAccount,\x20%s,\x20%s',_0x20b212,'request\x20sent');_0x288ce2(_0x32068e[_0x49e9('0x15')]['message']);}})[_0x49e9('0x16')](function(_0x5f12e8){logger[_0x49e9('0x12')](_0x49e9('0xe'),_0x20b212,_0x5f12e8);_0x3432a1(_0x5f12e8);});});}exports['GetSugarcrmAccount']=function(_0x4fa35a){var _0x40b532=this;return new Promise(function(_0x90a32e,_0x33cea8){return db[_0x49e9('0x17')][_0x49e9('0x18')]({'raw':_0x4fa35a[_0x49e9('0x19')]?_0x4fa35a[_0x49e9('0x19')][_0x49e9('0x1a')]===undefined?!![]:![]:!![],'where':_0x4fa35a[_0x49e9('0x19')]?_0x4fa35a[_0x49e9('0x19')][_0x49e9('0x1b')]||null:null,'attributes':_0x4fa35a[_0x49e9('0x19')]?_0x4fa35a[_0x49e9('0x19')][_0x49e9('0x1c')]||null:null,'limit':_0x4fa35a[_0x49e9('0x19')]?_0x4fa35a[_0x49e9('0x19')]['limit']||null:null,'include':_0x4fa35a[_0x49e9('0x19')]?_0x4fa35a['options'][_0x49e9('0x1d')]?_['map'](_0x4fa35a[_0x49e9('0x19')][_0x49e9('0x1d')],function(_0x3c2d63){return{'model':db[_0x3c2d63[_0x49e9('0x1e')]],'as':_0x3c2d63['as'],'attributes':_0x3c2d63[_0x49e9('0x1c')],'include':_0x3c2d63[_0x49e9('0x1d')]?_[_0x49e9('0x1f')](_0x3c2d63[_0x49e9('0x1d')],function(_0x206be0){return{'model':db[_0x206be0[_0x49e9('0x1e')]],'as':_0x206be0['as'],'attributes':_0x206be0[_0x49e9('0x1c')],'include':_0x206be0['include']?_[_0x49e9('0x1f')](_0x206be0[_0x49e9('0x1d')],function(_0xfd766e){return{'model':db[_0xfd766e[_0x49e9('0x1e')]],'as':_0xfd766e['as'],'attributes':_0xfd766e[_0x49e9('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x49e9('0xc')](function(_0x348c04){logger[_0x49e9('0xd')](_0x49e9('0x20'),_0x4fa35a);logger[_0x49e9('0x10')]('GetSugarcrmAccount',_0x4fa35a,JSON['stringify'](_0x348c04));_0x90a32e(_0x348c04);})[_0x49e9('0x16')](function(_0x51d421){logger[_0x49e9('0x12')](_0x49e9('0x20'),_0x51d421['message'],_0x4fa35a);_0x33cea8(_0x40b532['error'](0x1f4,_0x51d421[_0x49e9('0x14')]));});});};exports[_0x49e9('0x21')]=function(_0x313f1c){var _0xaabbbe=this;return new Promise(function(_0x251585,_0x3a1ee6){return db['SugarcrmAccount'][_0x49e9('0x22')]({'raw':_0x313f1c['options']?_0x313f1c['options'][_0x49e9('0x1a')]===undefined?!![]:![]:!![],'where':_0x313f1c[_0x49e9('0x19')]?_0x313f1c['options'][_0x49e9('0x1b')]||null:null,'attributes':_0x313f1c['options']?_0x313f1c['options'][_0x49e9('0x1c')]||null:null,'include':_0x313f1c[_0x49e9('0x19')]?_0x313f1c[_0x49e9('0x19')]['include']?_[_0x49e9('0x1f')](_0x313f1c[_0x49e9('0x19')][_0x49e9('0x1d')],function(_0x3e5aa4){return{'model':db[_0x3e5aa4['model']],'as':_0x3e5aa4['as'],'attributes':_0x3e5aa4['attributes'],'include':_0x3e5aa4[_0x49e9('0x1d')]?_['map'](_0x3e5aa4[_0x49e9('0x1d')],function(_0x59cccf){return{'model':db[_0x59cccf[_0x49e9('0x1e')]],'as':_0x59cccf['as'],'attributes':_0x59cccf[_0x49e9('0x1c')],'include':_0x59cccf[_0x49e9('0x1d')]?_[_0x49e9('0x1f')](_0x59cccf[_0x49e9('0x1d')],function(_0x457e9c){return{'model':db[_0x457e9c[_0x49e9('0x1e')]],'as':_0x457e9c['as'],'attributes':_0x457e9c[_0x49e9('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x49e9('0xc')](function(_0x412660){logger[_0x49e9('0xd')](_0x49e9('0x21'),_0x313f1c);logger[_0x49e9('0x10')](_0x49e9('0x21'),_0x313f1c,JSON[_0x49e9('0x23')](_0x412660));_0x251585(_0x412660);})[_0x49e9('0x16')](function(_0x16df6a){logger[_0x49e9('0x12')](_0x49e9('0x21'),_0x16df6a[_0x49e9('0x14')],_0x313f1c);_0x3a1ee6(_0xaabbbe[_0x49e9('0x12')](0x1f4,_0x16df6a[_0x49e9('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f6c=['destroy','exports','multer','util','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmConfiguration.controller','isAuthenticated','index','get','show','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','put','/:id','update','delete'];(function(_0x67f67d,_0x2a0d8a){var _0x2c1653=function(_0x28a2fe){while(--_0x28a2fe){_0x67f67d['push'](_0x67f67d['shift']());}};_0x2c1653(++_0x2a0d8a);}(_0x1f6c,0x147));var _0xc1f6=function(_0x7d5365,_0x4f2ff1){_0x7d5365=_0x7d5365-0x0;var _0x49687d=_0x1f6c[_0x7d5365];return _0x49687d;};'use strict';var multer=require(_0xc1f6('0x0'));var util=require(_0xc1f6('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xc1f6('0x2'));var router=express[_0xc1f6('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xc1f6('0x4'));var interaction=require(_0xc1f6('0x5'));var config=require(_0xc1f6('0x6'));var controller=require(_0xc1f6('0x7'));router['get']('/',auth[_0xc1f6('0x8')](),controller[_0xc1f6('0x9')]);router[_0xc1f6('0xa')]('/:id',auth['isAuthenticated'](),controller[_0xc1f6('0xb')]);router[_0xc1f6('0xa')](_0xc1f6('0xc'),auth[_0xc1f6('0x8')](),controller['getFields']);router[_0xc1f6('0xa')](_0xc1f6('0xd'),auth['isAuthenticated'](),controller[_0xc1f6('0xe')]);router[_0xc1f6('0xa')](_0xc1f6('0xf'),auth[_0xc1f6('0x8')](),controller[_0xc1f6('0x10')]);router[_0xc1f6('0x11')]('/',auth[_0xc1f6('0x8')](),controller[_0xc1f6('0x12')]);router[_0xc1f6('0x13')](_0xc1f6('0x14'),auth['isAuthenticated'](),controller[_0xc1f6('0x15')]);router[_0xc1f6('0x16')]('/:id',auth[_0xc1f6('0x8')](),controller[_0xc1f6('0x17')]);module[_0xc1f6('0x18')]=router;
\ No newline at end of file
+var _0xeb04=['update','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../config/environment','get','index','/:id','isAuthenticated','show','/:id/fields','getFields','/:id/subjects','/:id/descriptions','getDescriptions','post','create'];(function(_0x2efb64,_0x4b1e54){var _0x2861e0=function(_0x4cece9){while(--_0x4cece9){_0x2efb64['push'](_0x2efb64['shift']());}};_0x2861e0(++_0x4b1e54);}(_0xeb04,0x146));var _0x4eb0=function(_0x196842,_0x2b238a){_0x196842=_0x196842-0x0;var _0x4400f1=_0xeb04[_0x196842];return _0x4400f1;};'use strict';var multer=require(_0x4eb0('0x0'));var util=require(_0x4eb0('0x1'));var path=require('path');var timeout=require(_0x4eb0('0x2'));var express=require(_0x4eb0('0x3'));var router=express[_0x4eb0('0x4')]();var fs_extra=require(_0x4eb0('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x4eb0('0x6'));var controller=require('./intSugarcrmConfiguration.controller');router[_0x4eb0('0x7')]('/',auth['isAuthenticated'](),controller[_0x4eb0('0x8')]);router[_0x4eb0('0x7')](_0x4eb0('0x9'),auth[_0x4eb0('0xa')](),controller[_0x4eb0('0xb')]);router[_0x4eb0('0x7')](_0x4eb0('0xc'),auth[_0x4eb0('0xa')](),controller[_0x4eb0('0xd')]);router['get'](_0x4eb0('0xe'),auth[_0x4eb0('0xa')](),controller['getSubjects']);router[_0x4eb0('0x7')](_0x4eb0('0xf'),auth[_0x4eb0('0xa')](),controller[_0x4eb0('0x10')]);router[_0x4eb0('0x11')]('/',auth[_0x4eb0('0xa')](),controller[_0x4eb0('0x12')]);router['put'](_0x4eb0('0x9'),auth['isAuthenticated'](),controller[_0x4eb0('0x13')]);router[_0x4eb0('0x14')](_0x4eb0('0x9'),auth[_0x4eb0('0xa')](),controller[_0x4eb0('0x15')]);module[_0x4eb0('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd61a=['exports','STRING','sequelize'];(function(_0x2c9ee3,_0x1a39ea){var _0xcd4aea=function(_0x15226a){while(--_0x15226a){_0x2c9ee3['push'](_0x2c9ee3['shift']());}};_0xcd4aea(++_0x1a39ea);}(_0xd61a,0x1e8));var _0xad61=function(_0x835cb7,_0x1e574d){_0x835cb7=_0x835cb7-0x0;var _0x3ef599=_0xd61a[_0x835cb7];return _0x3ef599;};'use strict';var Sequelize=require(_0xad61('0x0'));module[_0xad61('0x1')]={'name':{'type':Sequelize[_0xad61('0x2')]},'description':{'type':Sequelize[_0xad61('0x2')]}};
\ No newline at end of file
+var _0xabd6=['sequelize','STRING'];(function(_0x2b2511,_0x39f94c){var _0x10ed93=function(_0x4f476b){while(--_0x4f476b){_0x2b2511['push'](_0x2b2511['shift']());}};_0x10ed93(++_0x39f94c);}(_0xabd6,0x1ca));var _0x6abd=function(_0x4715d2,_0x3371b2){_0x4715d2=_0x4715d2-0x0;var _0x141811=_0xabd6[_0x4715d2];return _0x141811;};'use strict';var Sequelize=require(_0x6abd('0x0'));module['exports']={'name':{'type':Sequelize[_0x6abd('0x1')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x41d3=['SugarcrmConfiguration','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','include','find','catch','create','body','params','getFields','findOne','getSubjects','getDescriptions','SugarcrmField','order','eml-format','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','../../mysqldb','sendStatus','status','json','undefined','count','offset','set','Content-Range','apply','reject','save','update','destroy','then','error','name','send','index','map'];(function(_0x5b1042,_0x21f757){var _0x28485d=function(_0xecfefd){while(--_0xecfefd){_0x5b1042['push'](_0x5b1042['shift']());}};_0x28485d(++_0x21f757);}(_0x41d3,0x7b));var _0x341d=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0x41d3[_0x6c993a];return _0x27f547;};'use strict';var emlformat=require(_0x341d('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x341d('0x1'));var rp=require(_0x341d('0x2'));var moment=require(_0x341d('0x3'));var BPromise=require(_0x341d('0x4'));var Mustache=require(_0x341d('0x5'));var util=require(_0x341d('0x6'));var path=require(_0x341d('0x7'));var sox=require('sox');var csv=require(_0x341d('0x8'));var ejs=require(_0x341d('0x9'));var fs=require('fs');var fs_extra=require(_0x341d('0xa'));var _=require(_0x341d('0xb'));var squel=require(_0x341d('0xc'));var crypto=require(_0x341d('0xd'));var jsforce=require(_0x341d('0xe'));var deskjs=require(_0x341d('0xf'));var toCsv=require(_0x341d('0x8'));var querystring=require(_0x341d('0x10'));var Papa=require(_0x341d('0x11'));var Redis=require(_0x341d('0x12'));var authService=require(_0x341d('0x13'));var qs=require(_0x341d('0x14'));var as=require(_0x341d('0x15'));var hardwareService=require(_0x341d('0x16'));var logger=require(_0x341d('0x17'))(_0x341d('0x18'));var utils=require(_0x341d('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x341d('0x1a'));var db=require(_0x341d('0x1b'))['db'];function respondWithStatusCode(_0x47fbea,_0x53f89b){_0x53f89b=_0x53f89b||0xcc;return function(_0x58d2ad){if(_0x58d2ad){return _0x47fbea[_0x341d('0x1c')](_0x53f89b);}return _0x47fbea['status'](_0x53f89b)['end']();};}function respondWithResult(_0x40bbd5,_0x3b11a5){_0x3b11a5=_0x3b11a5||0xc8;return function(_0x2dc707){if(_0x2dc707){return _0x40bbd5[_0x341d('0x1d')](_0x3b11a5)[_0x341d('0x1e')](_0x2dc707);}};}function respondWithFilteredResult(_0x2cda15,_0x539a83){return function(_0x205514){if(_0x205514){var _0x10719a=typeof _0x539a83['offset']===_0x341d('0x1f')&&typeof _0x539a83['limit']===_0x341d('0x1f');var _0x3e7372=_0x205514[_0x341d('0x20')];var _0x502f1c=_0x10719a?0x0:_0x539a83[_0x341d('0x21')];var _0x40122f=_0x10719a?_0x205514[_0x341d('0x20')]:_0x539a83[_0x341d('0x21')]+_0x539a83['limit'];var _0x215a86;if(_0x40122f>=_0x3e7372){_0x40122f=_0x3e7372;_0x215a86=0xc8;}else{_0x215a86=0xce;}_0x2cda15['status'](_0x215a86);return _0x2cda15[_0x341d('0x22')](_0x341d('0x23'),_0x502f1c+'-'+_0x40122f+'/'+_0x3e7372)[_0x341d('0x1e')](_0x205514);}return null;};}function patchUpdates(_0x3dd997){return function(_0x3fc46c){try{jsonpatch[_0x341d('0x24')](_0x3fc46c,_0x3dd997,!![]);}catch(_0x316951){return BPromise[_0x341d('0x25')](_0x316951);}return _0x3fc46c[_0x341d('0x26')]();};}function saveUpdates(_0x3b46b1,_0x52c425){return function(_0x5d41c4){if(_0x5d41c4){return _0x5d41c4[_0x341d('0x27')](_0x3b46b1)['then'](function(_0x51b53e){return _0x51b53e;});}return null;};}function removeEntity(_0x4d5ef6,_0x381b31){return function(_0x33a4a8){if(_0x33a4a8){return _0x33a4a8[_0x341d('0x28')]()[_0x341d('0x29')](function(){_0x4d5ef6[_0x341d('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x59114b,_0x4bf75a){return function(_0x5d8f3f){if(!_0x5d8f3f){_0x59114b[_0x341d('0x1c')](0x194);}return _0x5d8f3f;};}function handleError(_0x425729,_0x55ec75){_0x55ec75=_0x55ec75||0x1f4;return function(_0x6e05){logger[_0x341d('0x2a')](_0x6e05['stack']);if(_0x6e05[_0x341d('0x2b')]){delete _0x6e05[_0x341d('0x2b')];}_0x425729['status'](_0x55ec75)[_0x341d('0x2c')](_0x6e05);};}exports[_0x341d('0x2d')]=function(_0xb2ee65,_0x3941e1){var _0x54dbb1={},_0xa6dd06={},_0x4e4dd8={'count':0x0,'rows':[]};var _0x4bf63a=_[_0x341d('0x2e')](db[_0x341d('0x2f')][_0x341d('0x30')],function(_0x37462d){return{'name':_0x37462d[_0x341d('0x31')],'type':_0x37462d[_0x341d('0x32')][_0x341d('0x33')]};});_0xa6dd06[_0x341d('0x34')]=_['map'](_0x4bf63a,_0x341d('0x2b'));_0xa6dd06['query']=_[_0x341d('0x35')](_0xb2ee65[_0x341d('0x36')]);_0xa6dd06[_0x341d('0x37')]=_['intersection'](_0xa6dd06['model'],_0xa6dd06['query']);_0x54dbb1[_0x341d('0x38')]=_[_0x341d('0x39')](_0xa6dd06['model'],qs[_0x341d('0x3a')](_0xb2ee65[_0x341d('0x36')]['fields']));_0x54dbb1[_0x341d('0x38')]=_0x54dbb1[_0x341d('0x38')][_0x341d('0x3b')]?_0x54dbb1[_0x341d('0x38')]:_0xa6dd06[_0x341d('0x34')];if(!_0xb2ee65[_0x341d('0x36')][_0x341d('0x3c')](_0x341d('0x3d'))){_0x54dbb1['limit']=qs[_0x341d('0x3e')](_0xb2ee65[_0x341d('0x36')][_0x341d('0x3e')]);_0x54dbb1[_0x341d('0x21')]=qs[_0x341d('0x21')](_0xb2ee65[_0x341d('0x36')][_0x341d('0x21')]);}_0x54dbb1['order']=qs[_0x341d('0x3f')](_0xb2ee65[_0x341d('0x36')][_0x341d('0x3f')]);_0x54dbb1[_0x341d('0x40')]=qs['filters'](_[_0x341d('0x41')](_0xb2ee65[_0x341d('0x36')],_0xa6dd06[_0x341d('0x37')]),_0x4bf63a);if(_0xb2ee65[_0x341d('0x36')][_0x341d('0x42')]){_0x54dbb1[_0x341d('0x40')]=_[_0x341d('0x43')](_0x54dbb1[_0x341d('0x40')],{'$or':_['map'](_0x4bf63a,function(_0x4e08c9){if(_0x4e08c9[_0x341d('0x32')]!==_0x341d('0x44')){var _0xfce267={};_0xfce267[_0x4e08c9['name']]={'$like':'%'+_0xb2ee65['query'][_0x341d('0x42')]+'%'};return _0xfce267;}})});}_0x54dbb1=_[_0x341d('0x43')]({},_0x54dbb1,_0xb2ee65[_0x341d('0x45')]);var _0x23f58e={'where':_0x54dbb1[_0x341d('0x40')]};return db['SugarcrmConfiguration'][_0x341d('0x20')](_0x23f58e)[_0x341d('0x29')](function(_0x1fa365){_0x4e4dd8[_0x341d('0x20')]=_0x1fa365;if(_0xb2ee65[_0x341d('0x36')][_0x341d('0x46')]){_0x54dbb1['include']=[{'all':!![]}];}return db['SugarcrmConfiguration'][_0x341d('0x47')](_0x54dbb1);})[_0x341d('0x29')](function(_0x4dff53){_0x4e4dd8[_0x341d('0x48')]=_0x4dff53;return _0x4e4dd8;})[_0x341d('0x29')](respondWithFilteredResult(_0x3941e1,_0x54dbb1))['catch'](handleError(_0x3941e1,null));};exports['show']=function(_0x890176,_0x388683){var _0x2e34d3={'raw':![],'where':{'id':_0x890176['params']['id']}},_0x3ab055={};_0x3ab055[_0x341d('0x34')]=_['keys'](db[_0x341d('0x2f')]['rawAttributes']);_0x3ab055[_0x341d('0x36')]=_[_0x341d('0x35')](_0x890176['query']);_0x3ab055['filters']=_[_0x341d('0x39')](_0x3ab055[_0x341d('0x34')],_0x3ab055[_0x341d('0x36')]);_0x2e34d3['attributes']=_[_0x341d('0x39')](_0x3ab055[_0x341d('0x34')],qs[_0x341d('0x3a')](_0x890176[_0x341d('0x36')][_0x341d('0x3a')]));_0x2e34d3['attributes']=_0x2e34d3[_0x341d('0x38')][_0x341d('0x3b')]?_0x2e34d3[_0x341d('0x38')]:_0x3ab055[_0x341d('0x34')];if(_0x890176['query'][_0x341d('0x46')]){_0x2e34d3[_0x341d('0x49')]=[{'all':!![]}];}_0x2e34d3=_[_0x341d('0x43')]({},_0x2e34d3,_0x890176[_0x341d('0x45')]);return db[_0x341d('0x2f')][_0x341d('0x4a')](_0x2e34d3)[_0x341d('0x29')](handleEntityNotFound(_0x388683,null))[_0x341d('0x29')](respondWithResult(_0x388683,null))[_0x341d('0x4b')](handleError(_0x388683,null));};exports[_0x341d('0x4c')]=function(_0x57e9bb,_0x461d61){return db['SugarcrmConfiguration'][_0x341d('0x4c')](_0x57e9bb[_0x341d('0x4d')],{})[_0x341d('0x29')](respondWithResult(_0x461d61,0xc9))[_0x341d('0x4b')](handleError(_0x461d61,null));};exports[_0x341d('0x27')]=function(_0x38e1f7,_0x3197b7){if(_0x38e1f7[_0x341d('0x4d')]['id']){delete _0x38e1f7[_0x341d('0x4d')]['id'];}return db['SugarcrmConfiguration'][_0x341d('0x4a')]({'where':{'id':_0x38e1f7[_0x341d('0x4e')]['id']}})[_0x341d('0x29')](handleEntityNotFound(_0x3197b7,null))[_0x341d('0x29')](saveUpdates(_0x38e1f7[_0x341d('0x4d')],null))['then'](respondWithResult(_0x3197b7,null))[_0x341d('0x4b')](handleError(_0x3197b7,null));};exports[_0x341d('0x28')]=function(_0x1bd645,_0x400cc8){return db['SugarcrmConfiguration'][_0x341d('0x4a')]({'where':{'id':_0x1bd645[_0x341d('0x4e')]['id']}})[_0x341d('0x29')](handleEntityNotFound(_0x400cc8,null))[_0x341d('0x29')](removeEntity(_0x400cc8,null))[_0x341d('0x4b')](handleError(_0x400cc8,null));};exports[_0x341d('0x4f')]=function(_0x50f225,_0x2cd8c3,_0x44110c){var _0x4c6807={};var _0xd22d74={};var _0x190624;var _0x2f4c31;return db[_0x341d('0x2f')][_0x341d('0x50')]({'where':{'id':_0x50f225[_0x341d('0x4e')]['id']}})[_0x341d('0x29')](handleEntityNotFound(_0x2cd8c3,null))[_0x341d('0x29')](function(_0x9b5974){if(_0x9b5974){_0x190624=_0x9b5974;_0xd22d74['model']=_[_0x341d('0x35')](db['SugarcrmField'][_0x341d('0x30')]);_0xd22d74[_0x341d('0x36')]=_[_0x341d('0x35')](_0x50f225[_0x341d('0x36')]);_0xd22d74['filters']=_[_0x341d('0x39')](_0xd22d74['model'],_0xd22d74[_0x341d('0x36')]);_0x4c6807['attributes']=_[_0x341d('0x39')](_0xd22d74[_0x341d('0x34')],qs[_0x341d('0x3a')](_0x50f225[_0x341d('0x36')][_0x341d('0x3a')]));_0x4c6807['attributes']=_0x4c6807[_0x341d('0x38')][_0x341d('0x3b')]?_0x4c6807[_0x341d('0x38')]:_0xd22d74[_0x341d('0x34')];_0x4c6807['order']=qs[_0x341d('0x3f')](_0x50f225[_0x341d('0x36')][_0x341d('0x3f')]);_0x4c6807[_0x341d('0x40')]=qs['filters'](_[_0x341d('0x41')](_0x50f225[_0x341d('0x36')],_0xd22d74['filters']));if(_0x50f225['query']['filter']){_0x4c6807['where']=_[_0x341d('0x43')](_0x4c6807[_0x341d('0x40')],{'$or':_[_0x341d('0x2e')](_0x4c6807['attributes'],function(_0x8ce4da){var _0x5dd054={};_0x5dd054[_0x8ce4da]={'$like':'%'+_0x50f225[_0x341d('0x36')]['filter']+'%'};return _0x5dd054;})});}_0x4c6807=_['merge']({},_0x4c6807,_0x50f225[_0x341d('0x45')]);return _0x190624[_0x341d('0x4f')](_0x4c6807);}})['then'](function(_0x266e15){if(_0x266e15){_0x2f4c31=_0x266e15['length'];if(!_0x50f225[_0x341d('0x36')][_0x341d('0x3c')](_0x341d('0x3d'))){_0x4c6807['limit']=qs[_0x341d('0x3e')](_0x50f225['query'][_0x341d('0x3e')]);_0x4c6807[_0x341d('0x21')]=qs[_0x341d('0x21')](_0x50f225[_0x341d('0x36')]['offset']);}return _0x190624[_0x341d('0x4f')](_0x4c6807);}})[_0x341d('0x29')](function(_0x4787c4){if(_0x4787c4){return _0x4787c4?{'count':_0x2f4c31,'rows':_0x4787c4}:null;}})['then'](respondWithResult(_0x2cd8c3,null))[_0x341d('0x4b')](handleError(_0x2cd8c3,null));};exports[_0x341d('0x51')]=function(_0x21d37f,_0x566570,_0x12dda5){var _0x2ff1b5={};var _0x29b1bb={};var _0x5dbdad;var _0x230800;return db['SugarcrmConfiguration'][_0x341d('0x50')]({'where':{'id':_0x21d37f['params']['id']}})[_0x341d('0x29')](handleEntityNotFound(_0x566570,null))['then'](function(_0xc0c2f5){if(_0xc0c2f5){_0x5dbdad=_0xc0c2f5;_0x29b1bb[_0x341d('0x34')]=_[_0x341d('0x35')](db['SugarcrmField']['rawAttributes']);_0x29b1bb[_0x341d('0x36')]=_['keys'](_0x21d37f['query']);_0x29b1bb['filters']=_[_0x341d('0x39')](_0x29b1bb[_0x341d('0x34')],_0x29b1bb[_0x341d('0x36')]);_0x2ff1b5[_0x341d('0x38')]=_[_0x341d('0x39')](_0x29b1bb[_0x341d('0x34')],qs[_0x341d('0x3a')](_0x21d37f['query'][_0x341d('0x3a')]));_0x2ff1b5['attributes']=_0x2ff1b5[_0x341d('0x38')][_0x341d('0x3b')]?_0x2ff1b5[_0x341d('0x38')]:_0x29b1bb[_0x341d('0x34')];_0x2ff1b5['order']=qs[_0x341d('0x3f')](_0x21d37f[_0x341d('0x36')][_0x341d('0x3f')]);_0x2ff1b5[_0x341d('0x40')]=qs[_0x341d('0x37')](_['pick'](_0x21d37f[_0x341d('0x36')],_0x29b1bb[_0x341d('0x37')]));if(_0x21d37f['query'][_0x341d('0x42')]){_0x2ff1b5[_0x341d('0x40')]=_[_0x341d('0x43')](_0x2ff1b5[_0x341d('0x40')],{'$or':_['map'](_0x2ff1b5[_0x341d('0x38')],function(_0x1495ba){var _0x4aaa30={};_0x4aaa30[_0x1495ba]={'$like':'%'+_0x21d37f[_0x341d('0x36')]['filter']+'%'};return _0x4aaa30;})});}_0x2ff1b5=_[_0x341d('0x43')]({},_0x2ff1b5,_0x21d37f[_0x341d('0x45')]);return _0x5dbdad[_0x341d('0x51')](_0x2ff1b5);}})['then'](function(_0x1d75e3){if(_0x1d75e3){_0x230800=_0x1d75e3[_0x341d('0x3b')];if(!_0x21d37f[_0x341d('0x36')][_0x341d('0x3c')](_0x341d('0x3d'))){_0x2ff1b5[_0x341d('0x3e')]=qs['limit'](_0x21d37f[_0x341d('0x36')][_0x341d('0x3e')]);_0x2ff1b5[_0x341d('0x21')]=qs[_0x341d('0x21')](_0x21d37f[_0x341d('0x36')]['offset']);}return _0x5dbdad[_0x341d('0x51')](_0x2ff1b5);}})[_0x341d('0x29')](function(_0x533963){if(_0x533963){return _0x533963?{'count':_0x230800,'rows':_0x533963}:null;}})[_0x341d('0x29')](respondWithResult(_0x566570,null))['catch'](handleError(_0x566570,null));};exports[_0x341d('0x52')]=function(_0x442421,_0xf91698,_0x444c37){var _0x31aae2={};var _0x2ab190={};var _0x53c88c;var _0x493f20;return db[_0x341d('0x2f')][_0x341d('0x50')]({'where':{'id':_0x442421[_0x341d('0x4e')]['id']}})['then'](handleEntityNotFound(_0xf91698,null))[_0x341d('0x29')](function(_0x16f4ae){if(_0x16f4ae){_0x53c88c=_0x16f4ae;_0x2ab190[_0x341d('0x34')]=_[_0x341d('0x35')](db[_0x341d('0x53')][_0x341d('0x30')]);_0x2ab190[_0x341d('0x36')]=_['keys'](_0x442421[_0x341d('0x36')]);_0x2ab190[_0x341d('0x37')]=_[_0x341d('0x39')](_0x2ab190['model'],_0x2ab190[_0x341d('0x36')]);_0x31aae2[_0x341d('0x38')]=_[_0x341d('0x39')](_0x2ab190[_0x341d('0x34')],qs[_0x341d('0x3a')](_0x442421[_0x341d('0x36')][_0x341d('0x3a')]));_0x31aae2['attributes']=_0x31aae2['attributes'][_0x341d('0x3b')]?_0x31aae2[_0x341d('0x38')]:_0x2ab190['model'];_0x31aae2[_0x341d('0x54')]=qs[_0x341d('0x3f')](_0x442421[_0x341d('0x36')][_0x341d('0x3f')]);_0x31aae2[_0x341d('0x40')]=qs[_0x341d('0x37')](_[_0x341d('0x41')](_0x442421[_0x341d('0x36')],_0x2ab190['filters']));if(_0x442421[_0x341d('0x36')][_0x341d('0x42')]){_0x31aae2[_0x341d('0x40')]=_[_0x341d('0x43')](_0x31aae2['where'],{'$or':_[_0x341d('0x2e')](_0x31aae2[_0x341d('0x38')],function(_0x569bf1){var _0x2f0f5b={};_0x2f0f5b[_0x569bf1]={'$like':'%'+_0x442421['query'][_0x341d('0x42')]+'%'};return _0x2f0f5b;})});}_0x31aae2=_['merge']({},_0x31aae2,_0x442421[_0x341d('0x45')]);return _0x53c88c[_0x341d('0x52')](_0x31aae2);}})['then'](function(_0x3ca195){if(_0x3ca195){_0x493f20=_0x3ca195['length'];if(!_0x442421[_0x341d('0x36')][_0x341d('0x3c')]('nolimit')){_0x31aae2['limit']=qs[_0x341d('0x3e')](_0x442421[_0x341d('0x36')][_0x341d('0x3e')]);_0x31aae2[_0x341d('0x21')]=qs['offset'](_0x442421['query'][_0x341d('0x21')]);}return _0x53c88c['getDescriptions'](_0x31aae2);}})['then'](function(_0x1e936d){if(_0x1e936d){return _0x1e936d?{'count':_0x493f20,'rows':_0x1e936d}:null;}})[_0x341d('0x29')](respondWithResult(_0xf91698,null))[_0x341d('0x4b')](handleError(_0xf91698,null));};
\ No newline at end of file
+var _0x8bd3=['api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','then','stack','name','send','map','SugarcrmConfiguration','fieldName','type','key','query','filters','attributes','model','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','keys','rawAttributes','intersection','length','find','create','body','params','getFields','findOne','SugarcrmField','order','getSubjects','getDescriptions','eml-format','zip-dir','fast-json-patch','request-promise','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'];(function(_0x6b84c3,_0x59a94b){var _0x296230=function(_0x177538){while(--_0x177538){_0x6b84c3['push'](_0x6b84c3['shift']());}};_0x296230(++_0x59a94b);}(_0x8bd3,0xec));var _0x38bd=function(_0x425d5e,_0x3b9040){_0x425d5e=_0x425d5e-0x0;var _0x3cc67b=_0x8bd3[_0x425d5e];return _0x3cc67b;};'use strict';var emlformat=require(_0x38bd('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x38bd('0x1'));var jsonpatch=require(_0x38bd('0x2'));var rp=require(_0x38bd('0x3'));var moment=require(_0x38bd('0x4'));var BPromise=require(_0x38bd('0x5'));var Mustache=require(_0x38bd('0x6'));var util=require(_0x38bd('0x7'));var path=require('path');var sox=require(_0x38bd('0x8'));var csv=require(_0x38bd('0x9'));var ejs=require(_0x38bd('0xa'));var fs=require('fs');var fs_extra=require(_0x38bd('0xb'));var _=require(_0x38bd('0xc'));var squel=require(_0x38bd('0xd'));var crypto=require(_0x38bd('0xe'));var jsforce=require(_0x38bd('0xf'));var deskjs=require(_0x38bd('0x10'));var toCsv=require(_0x38bd('0x9'));var querystring=require(_0x38bd('0x11'));var Papa=require(_0x38bd('0x12'));var Redis=require(_0x38bd('0x13'));var authService=require(_0x38bd('0x14'));var qs=require(_0x38bd('0x15'));var as=require(_0x38bd('0x16'));var hardwareService=require(_0x38bd('0x17'));var logger=require(_0x38bd('0x18'))(_0x38bd('0x19'));var utils=require(_0x38bd('0x1a'));var config=require(_0x38bd('0x1b'));var licenseUtil=require(_0x38bd('0x1c'));var db=require(_0x38bd('0x1d'))['db'];function respondWithStatusCode(_0x383688,_0x46bdf5){_0x46bdf5=_0x46bdf5||0xcc;return function(_0x54ef1c){if(_0x54ef1c){return _0x383688[_0x38bd('0x1e')](_0x46bdf5);}return _0x383688[_0x38bd('0x1f')](_0x46bdf5)[_0x38bd('0x20')]();};}function respondWithResult(_0x549c98,_0x4da356){_0x4da356=_0x4da356||0xc8;return function(_0x3189a4){if(_0x3189a4){return _0x549c98[_0x38bd('0x1f')](_0x4da356)[_0x38bd('0x21')](_0x3189a4);}};}function respondWithFilteredResult(_0x149a7d,_0x188377){return function(_0x1f0485){if(_0x1f0485){var _0x568e94=typeof _0x188377[_0x38bd('0x22')]===_0x38bd('0x23')&&typeof _0x188377['limit']==='undefined';var _0x26d783=_0x1f0485[_0x38bd('0x24')];var _0x33347b=_0x568e94?0x0:_0x188377[_0x38bd('0x22')];var _0x31dd54=_0x568e94?_0x1f0485[_0x38bd('0x24')]:_0x188377[_0x38bd('0x22')]+_0x188377[_0x38bd('0x25')];var _0x57b70e;if(_0x31dd54>=_0x26d783){_0x31dd54=_0x26d783;_0x57b70e=0xc8;}else{_0x57b70e=0xce;}_0x149a7d[_0x38bd('0x1f')](_0x57b70e);return _0x149a7d[_0x38bd('0x26')](_0x38bd('0x27'),_0x33347b+'-'+_0x31dd54+'/'+_0x26d783)['json'](_0x1f0485);}return null;};}function patchUpdates(_0x400e3d){return function(_0x2a25d9){try{jsonpatch[_0x38bd('0x28')](_0x2a25d9,_0x400e3d,!![]);}catch(_0x11fc5b){return BPromise[_0x38bd('0x29')](_0x11fc5b);}return _0x2a25d9[_0x38bd('0x2a')]();};}function saveUpdates(_0x43c63b,_0xaa8131){return function(_0x2f35de){if(_0x2f35de){return _0x2f35de[_0x38bd('0x2b')](_0x43c63b)['then'](function(_0x42ff26){return _0x42ff26;});}return null;};}function removeEntity(_0x232b61,_0x5b0c5f){return function(_0x5ac204){if(_0x5ac204){return _0x5ac204[_0x38bd('0x2c')]()[_0x38bd('0x2d')](function(){_0x232b61[_0x38bd('0x1f')](0xcc)[_0x38bd('0x20')]();});}};}function handleEntityNotFound(_0x555c50,_0x2527b9){return function(_0x15bafc){if(!_0x15bafc){_0x555c50[_0x38bd('0x1e')](0x194);}return _0x15bafc;};}function handleError(_0x79340c,_0x10cd3e){_0x10cd3e=_0x10cd3e||0x1f4;return function(_0x22a36e){logger['error'](_0x22a36e[_0x38bd('0x2e')]);if(_0x22a36e[_0x38bd('0x2f')]){delete _0x22a36e[_0x38bd('0x2f')];}_0x79340c[_0x38bd('0x1f')](_0x10cd3e)[_0x38bd('0x30')](_0x22a36e);};}exports['index']=function(_0x13a9c2,_0x4319c2){var _0x4ab6d9={},_0x5e28b2={},_0x24a537={'count':0x0,'rows':[]};var _0x598789=_[_0x38bd('0x31')](db[_0x38bd('0x32')]['rawAttributes'],function(_0x2abaf2){return{'name':_0x2abaf2[_0x38bd('0x33')],'type':_0x2abaf2[_0x38bd('0x34')][_0x38bd('0x35')]};});_0x5e28b2['model']=_[_0x38bd('0x31')](_0x598789,_0x38bd('0x2f'));_0x5e28b2[_0x38bd('0x36')]=_['keys'](_0x13a9c2['query']);_0x5e28b2[_0x38bd('0x37')]=_['intersection'](_0x5e28b2['model'],_0x5e28b2[_0x38bd('0x36')]);_0x4ab6d9[_0x38bd('0x38')]=_['intersection'](_0x5e28b2[_0x38bd('0x39')],qs[_0x38bd('0x3a')](_0x13a9c2[_0x38bd('0x36')]['fields']));_0x4ab6d9['attributes']=_0x4ab6d9[_0x38bd('0x38')]['length']?_0x4ab6d9[_0x38bd('0x38')]:_0x5e28b2[_0x38bd('0x39')];if(!_0x13a9c2[_0x38bd('0x36')][_0x38bd('0x3b')](_0x38bd('0x3c'))){_0x4ab6d9[_0x38bd('0x25')]=qs[_0x38bd('0x25')](_0x13a9c2['query'][_0x38bd('0x25')]);_0x4ab6d9['offset']=qs[_0x38bd('0x22')](_0x13a9c2[_0x38bd('0x36')][_0x38bd('0x22')]);}_0x4ab6d9['order']=qs['sort'](_0x13a9c2['query'][_0x38bd('0x3d')]);_0x4ab6d9[_0x38bd('0x3e')]=qs['filters'](_[_0x38bd('0x3f')](_0x13a9c2[_0x38bd('0x36')],_0x5e28b2[_0x38bd('0x37')]),_0x598789);if(_0x13a9c2['query'][_0x38bd('0x40')]){_0x4ab6d9[_0x38bd('0x3e')]=_[_0x38bd('0x41')](_0x4ab6d9[_0x38bd('0x3e')],{'$or':_[_0x38bd('0x31')](_0x598789,function(_0x36cd0e){if(_0x36cd0e['type']!==_0x38bd('0x42')){var _0x35b4d6={};_0x35b4d6[_0x36cd0e['name']]={'$like':'%'+_0x13a9c2[_0x38bd('0x36')]['filter']+'%'};return _0x35b4d6;}})});}_0x4ab6d9=_['merge']({},_0x4ab6d9,_0x13a9c2[_0x38bd('0x43')]);var _0x40e5b7={'where':_0x4ab6d9[_0x38bd('0x3e')]};return db[_0x38bd('0x32')]['count'](_0x40e5b7)['then'](function(_0x383977){_0x24a537['count']=_0x383977;if(_0x13a9c2[_0x38bd('0x36')][_0x38bd('0x44')]){_0x4ab6d9['include']=[{'all':!![]}];}return db[_0x38bd('0x32')][_0x38bd('0x45')](_0x4ab6d9);})[_0x38bd('0x2d')](function(_0x2e757c){_0x24a537[_0x38bd('0x46')]=_0x2e757c;return _0x24a537;})[_0x38bd('0x2d')](respondWithFilteredResult(_0x4319c2,_0x4ab6d9))[_0x38bd('0x47')](handleError(_0x4319c2,null));};exports[_0x38bd('0x48')]=function(_0x518b10,_0x207f68){var _0x5690c0={'raw':![],'where':{'id':_0x518b10['params']['id']}},_0x5e0fb7={};_0x5e0fb7[_0x38bd('0x39')]=_[_0x38bd('0x49')](db[_0x38bd('0x32')][_0x38bd('0x4a')]);_0x5e0fb7[_0x38bd('0x36')]=_[_0x38bd('0x49')](_0x518b10['query']);_0x5e0fb7[_0x38bd('0x37')]=_['intersection'](_0x5e0fb7[_0x38bd('0x39')],_0x5e0fb7[_0x38bd('0x36')]);_0x5690c0[_0x38bd('0x38')]=_[_0x38bd('0x4b')](_0x5e0fb7['model'],qs[_0x38bd('0x3a')](_0x518b10['query'][_0x38bd('0x3a')]));_0x5690c0['attributes']=_0x5690c0[_0x38bd('0x38')][_0x38bd('0x4c')]?_0x5690c0['attributes']:_0x5e0fb7['model'];if(_0x518b10[_0x38bd('0x36')]['includeAll']){_0x5690c0['include']=[{'all':!![]}];}_0x5690c0=_[_0x38bd('0x41')]({},_0x5690c0,_0x518b10[_0x38bd('0x43')]);return db[_0x38bd('0x32')][_0x38bd('0x4d')](_0x5690c0)[_0x38bd('0x2d')](handleEntityNotFound(_0x207f68,null))[_0x38bd('0x2d')](respondWithResult(_0x207f68,null))['catch'](handleError(_0x207f68,null));};exports[_0x38bd('0x4e')]=function(_0x59920d,_0x22970a){return db[_0x38bd('0x32')][_0x38bd('0x4e')](_0x59920d[_0x38bd('0x4f')],{})[_0x38bd('0x2d')](respondWithResult(_0x22970a,0xc9))[_0x38bd('0x47')](handleError(_0x22970a,null));};exports[_0x38bd('0x2b')]=function(_0x4fffbd,_0x2b2ae3){if(_0x4fffbd[_0x38bd('0x4f')]['id']){delete _0x4fffbd['body']['id'];}return db[_0x38bd('0x32')][_0x38bd('0x4d')]({'where':{'id':_0x4fffbd[_0x38bd('0x50')]['id']}})[_0x38bd('0x2d')](handleEntityNotFound(_0x2b2ae3,null))[_0x38bd('0x2d')](saveUpdates(_0x4fffbd['body'],null))[_0x38bd('0x2d')](respondWithResult(_0x2b2ae3,null))[_0x38bd('0x47')](handleError(_0x2b2ae3,null));};exports['destroy']=function(_0x101d5f,_0x299a68){return db[_0x38bd('0x32')][_0x38bd('0x4d')]({'where':{'id':_0x101d5f[_0x38bd('0x50')]['id']}})['then'](handleEntityNotFound(_0x299a68,null))[_0x38bd('0x2d')](removeEntity(_0x299a68,null))[_0x38bd('0x47')](handleError(_0x299a68,null));};exports[_0x38bd('0x51')]=function(_0x9070eb,_0x2b023d,_0xb163d8){var _0x51f421={};var _0xe9ec8f={};var _0x5386a7;var _0x2d79f8;return db['SugarcrmConfiguration'][_0x38bd('0x52')]({'where':{'id':_0x9070eb[_0x38bd('0x50')]['id']}})[_0x38bd('0x2d')](handleEntityNotFound(_0x2b023d,null))['then'](function(_0x45301e){if(_0x45301e){_0x5386a7=_0x45301e;_0xe9ec8f[_0x38bd('0x39')]=_[_0x38bd('0x49')](db[_0x38bd('0x53')][_0x38bd('0x4a')]);_0xe9ec8f[_0x38bd('0x36')]=_[_0x38bd('0x49')](_0x9070eb['query']);_0xe9ec8f['filters']=_['intersection'](_0xe9ec8f['model'],_0xe9ec8f['query']);_0x51f421['attributes']=_[_0x38bd('0x4b')](_0xe9ec8f['model'],qs['fields'](_0x9070eb['query'][_0x38bd('0x3a')]));_0x51f421[_0x38bd('0x38')]=_0x51f421[_0x38bd('0x38')]['length']?_0x51f421[_0x38bd('0x38')]:_0xe9ec8f[_0x38bd('0x39')];_0x51f421[_0x38bd('0x54')]=qs[_0x38bd('0x3d')](_0x9070eb[_0x38bd('0x36')][_0x38bd('0x3d')]);_0x51f421[_0x38bd('0x3e')]=qs[_0x38bd('0x37')](_['pick'](_0x9070eb['query'],_0xe9ec8f['filters']));if(_0x9070eb[_0x38bd('0x36')][_0x38bd('0x40')]){_0x51f421['where']=_[_0x38bd('0x41')](_0x51f421[_0x38bd('0x3e')],{'$or':_[_0x38bd('0x31')](_0x51f421[_0x38bd('0x38')],function(_0x23b381){var _0x28e039={};_0x28e039[_0x23b381]={'$like':'%'+_0x9070eb[_0x38bd('0x36')]['filter']+'%'};return _0x28e039;})});}_0x51f421=_[_0x38bd('0x41')]({},_0x51f421,_0x9070eb[_0x38bd('0x43')]);return _0x5386a7[_0x38bd('0x51')](_0x51f421);}})[_0x38bd('0x2d')](function(_0x419178){if(_0x419178){_0x2d79f8=_0x419178['length'];if(!_0x9070eb[_0x38bd('0x36')][_0x38bd('0x3b')](_0x38bd('0x3c'))){_0x51f421['limit']=qs[_0x38bd('0x25')](_0x9070eb[_0x38bd('0x36')][_0x38bd('0x25')]);_0x51f421['offset']=qs['offset'](_0x9070eb['query']['offset']);}return _0x5386a7[_0x38bd('0x51')](_0x51f421);}})['then'](function(_0x559d02){if(_0x559d02){return _0x559d02?{'count':_0x2d79f8,'rows':_0x559d02}:null;}})['then'](respondWithResult(_0x2b023d,null))[_0x38bd('0x47')](handleError(_0x2b023d,null));};exports['getSubjects']=function(_0x270ff4,_0x360005,_0x50271c){var _0x545902={};var _0x56df2c={};var _0x23c1a8;var _0x5a67f2;return db[_0x38bd('0x32')][_0x38bd('0x52')]({'where':{'id':_0x270ff4[_0x38bd('0x50')]['id']}})[_0x38bd('0x2d')](handleEntityNotFound(_0x360005,null))[_0x38bd('0x2d')](function(_0x181377){if(_0x181377){_0x23c1a8=_0x181377;_0x56df2c[_0x38bd('0x39')]=_[_0x38bd('0x49')](db['SugarcrmField'][_0x38bd('0x4a')]);_0x56df2c[_0x38bd('0x36')]=_[_0x38bd('0x49')](_0x270ff4[_0x38bd('0x36')]);_0x56df2c[_0x38bd('0x37')]=_[_0x38bd('0x4b')](_0x56df2c[_0x38bd('0x39')],_0x56df2c['query']);_0x545902[_0x38bd('0x38')]=_['intersection'](_0x56df2c[_0x38bd('0x39')],qs[_0x38bd('0x3a')](_0x270ff4[_0x38bd('0x36')]['fields']));_0x545902[_0x38bd('0x38')]=_0x545902[_0x38bd('0x38')][_0x38bd('0x4c')]?_0x545902[_0x38bd('0x38')]:_0x56df2c['model'];_0x545902[_0x38bd('0x54')]=qs[_0x38bd('0x3d')](_0x270ff4[_0x38bd('0x36')][_0x38bd('0x3d')]);_0x545902[_0x38bd('0x3e')]=qs[_0x38bd('0x37')](_[_0x38bd('0x3f')](_0x270ff4['query'],_0x56df2c[_0x38bd('0x37')]));if(_0x270ff4[_0x38bd('0x36')]['filter']){_0x545902['where']=_[_0x38bd('0x41')](_0x545902[_0x38bd('0x3e')],{'$or':_[_0x38bd('0x31')](_0x545902[_0x38bd('0x38')],function(_0x33f883){var _0x645c57={};_0x645c57[_0x33f883]={'$like':'%'+_0x270ff4['query'][_0x38bd('0x40')]+'%'};return _0x645c57;})});}_0x545902=_[_0x38bd('0x41')]({},_0x545902,_0x270ff4[_0x38bd('0x43')]);return _0x23c1a8[_0x38bd('0x55')](_0x545902);}})[_0x38bd('0x2d')](function(_0x128681){if(_0x128681){_0x5a67f2=_0x128681[_0x38bd('0x4c')];if(!_0x270ff4[_0x38bd('0x36')][_0x38bd('0x3b')](_0x38bd('0x3c'))){_0x545902[_0x38bd('0x25')]=qs['limit'](_0x270ff4[_0x38bd('0x36')][_0x38bd('0x25')]);_0x545902[_0x38bd('0x22')]=qs[_0x38bd('0x22')](_0x270ff4[_0x38bd('0x36')][_0x38bd('0x22')]);}return _0x23c1a8[_0x38bd('0x55')](_0x545902);}})[_0x38bd('0x2d')](function(_0x4417bb){if(_0x4417bb){return _0x4417bb?{'count':_0x5a67f2,'rows':_0x4417bb}:null;}})[_0x38bd('0x2d')](respondWithResult(_0x360005,null))['catch'](handleError(_0x360005,null));};exports['getDescriptions']=function(_0x4c0adf,_0x426416,_0x419377){var _0x192f5c={};var _0x307458={};var _0x181635;var _0x233f7c;return db[_0x38bd('0x32')]['findOne']({'where':{'id':_0x4c0adf['params']['id']}})['then'](handleEntityNotFound(_0x426416,null))[_0x38bd('0x2d')](function(_0x3bddf5){if(_0x3bddf5){_0x181635=_0x3bddf5;_0x307458[_0x38bd('0x39')]=_['keys'](db['SugarcrmField'][_0x38bd('0x4a')]);_0x307458[_0x38bd('0x36')]=_[_0x38bd('0x49')](_0x4c0adf[_0x38bd('0x36')]);_0x307458['filters']=_[_0x38bd('0x4b')](_0x307458['model'],_0x307458[_0x38bd('0x36')]);_0x192f5c[_0x38bd('0x38')]=_[_0x38bd('0x4b')](_0x307458['model'],qs['fields'](_0x4c0adf[_0x38bd('0x36')][_0x38bd('0x3a')]));_0x192f5c[_0x38bd('0x38')]=_0x192f5c[_0x38bd('0x38')][_0x38bd('0x4c')]?_0x192f5c[_0x38bd('0x38')]:_0x307458['model'];_0x192f5c[_0x38bd('0x54')]=qs[_0x38bd('0x3d')](_0x4c0adf[_0x38bd('0x36')]['sort']);_0x192f5c[_0x38bd('0x3e')]=qs[_0x38bd('0x37')](_['pick'](_0x4c0adf['query'],_0x307458[_0x38bd('0x37')]));if(_0x4c0adf[_0x38bd('0x36')][_0x38bd('0x40')]){_0x192f5c[_0x38bd('0x3e')]=_['merge'](_0x192f5c[_0x38bd('0x3e')],{'$or':_['map'](_0x192f5c[_0x38bd('0x38')],function(_0x5afc0a){var _0x205ca3={};_0x205ca3[_0x5afc0a]={'$like':'%'+_0x4c0adf[_0x38bd('0x36')]['filter']+'%'};return _0x205ca3;})});}_0x192f5c=_[_0x38bd('0x41')]({},_0x192f5c,_0x4c0adf[_0x38bd('0x43')]);return _0x181635[_0x38bd('0x56')](_0x192f5c);}})[_0x38bd('0x2d')](function(_0x180aec){if(_0x180aec){_0x233f7c=_0x180aec['length'];if(!_0x4c0adf[_0x38bd('0x36')]['hasOwnProperty'](_0x38bd('0x3c'))){_0x192f5c['limit']=qs[_0x38bd('0x25')](_0x4c0adf[_0x38bd('0x36')]['limit']);_0x192f5c[_0x38bd('0x22')]=qs['offset'](_0x4c0adf[_0x38bd('0x36')]['offset']);}return _0x181635[_0x38bd('0x56')](_0x192f5c);}})[_0x38bd('0x2d')](function(_0x415e0d){if(_0x415e0d){return _0x415e0d?{'count':_0x233f7c,'rows':_0x415e0d}:null;}})[_0x38bd('0x2d')](respondWithResult(_0x426416,null))[_0x38bd('0x47')](handleError(_0x426416,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d05=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intSugarcrmConfiguration.attributes','exports','define','SugarcrmConfiguration','int_sugarcrm_configurations','util'];(function(_0x34c163,_0x3862a6){var _0x52caa5=function(_0x2d8796){while(--_0x2d8796){_0x34c163['push'](_0x34c163['shift']());}};_0x52caa5(++_0x3862a6);}(_0x6d05,0xb5));var _0x56d0=function(_0x90b7f4,_0x19a9d9){_0x90b7f4=_0x90b7f4-0x0;var _0x3f7a61=_0x6d05[_0x90b7f4];return _0x3f7a61;};'use strict';var _=require('lodash');var util=require(_0x56d0('0x0'));var logger=require(_0x56d0('0x1'))(_0x56d0('0x2'));var moment=require(_0x56d0('0x3'));var BPromise=require(_0x56d0('0x4'));var rp=require(_0x56d0('0x5'));var fs=require('fs');var path=require(_0x56d0('0x6'));var rimraf=require(_0x56d0('0x7'));var config=require(_0x56d0('0x8'));var attributes=require(_0x56d0('0x9'));module[_0x56d0('0xa')]=function(_0x2a7eee,_0x432610){return _0x2a7eee[_0x56d0('0xb')](_0x56d0('0xc'),attributes,{'tableName':_0x56d0('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x80dd=['./intSugarcrmConfiguration.attributes','exports','SugarcrmConfiguration','int_sugarcrm_configurations','lodash','../../config/logger','api','moment','request-promise','rimraf','../../config/environment'];(function(_0x3070dc,_0x40cf11){var _0x431489=function(_0x49bc2a){while(--_0x49bc2a){_0x3070dc['push'](_0x3070dc['shift']());}};_0x431489(++_0x40cf11);}(_0x80dd,0x9e));var _0xd80d=function(_0x3c2705,_0x467014){_0x3c2705=_0x3c2705-0x0;var _0x2d0e2a=_0x80dd[_0x3c2705];return _0x2d0e2a;};'use strict';var _=require(_0xd80d('0x0'));var util=require('util');var logger=require(_0xd80d('0x1'))(_0xd80d('0x2'));var moment=require(_0xd80d('0x3'));var BPromise=require('bluebird');var rp=require(_0xd80d('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xd80d('0x5'));var config=require(_0xd80d('0x6'));var attributes=require(_0xd80d('0x7'));module[_0xd80d('0x8')]=function(_0x5d66cd,_0x452c89){return _0x5d66cd['define'](_0xd80d('0x9'),attributes,{'tableName':_0xd80d('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd759=['client','http','request','then','info','SugarcrmConfiguration,\x20%s,\x20%s','request\x20sent','debug','SugarcrmConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xd759,0x109));var _0x9d75=function(_0x3db745,_0x49ad24){_0x3db745=_0x3db745-0x0;var _0x4bcb72=_0xd759[_0x3db745];return _0x4bcb72;};'use strict';var _=require(_0x9d75('0x0'));var util=require(_0x9d75('0x1'));var moment=require(_0x9d75('0x2'));var BPromise=require(_0x9d75('0x3'));var rs=require(_0x9d75('0x4'));var fs=require('fs');var Redis=require(_0x9d75('0x5'));var db=require(_0x9d75('0x6'))['db'];var utils=require(_0x9d75('0x7'));var logger=require('../../config/logger')(_0x9d75('0x8'));var config=require(_0x9d75('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x9d75('0xa')][_0x9d75('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x32096a,_0x38d12b,_0x143695){return new BPromise(function(_0x826a0a,_0x34aa38){return client[_0x9d75('0xc')](_0x32096a,_0x143695)[_0x9d75('0xd')](function(_0x3cb7b1){logger[_0x9d75('0xe')](_0x9d75('0xf'),_0x38d12b,_0x9d75('0x10'));logger[_0x9d75('0x11')](_0x9d75('0x12'),_0x38d12b,_0x9d75('0x10'),JSON[_0x9d75('0x13')](_0x3cb7b1));if(_0x3cb7b1['error']){if(_0x3cb7b1[_0x9d75('0x14')][_0x9d75('0x15')]===0x1f4){logger[_0x9d75('0x14')](_0x9d75('0xf'),_0x38d12b,_0x3cb7b1['error'][_0x9d75('0x16')]);return _0x34aa38(_0x3cb7b1['error'][_0x9d75('0x16')]);}logger[_0x9d75('0x14')](_0x9d75('0xf'),_0x38d12b,_0x3cb7b1[_0x9d75('0x14')][_0x9d75('0x16')]);return _0x826a0a(_0x3cb7b1['error']['message']);}else{logger[_0x9d75('0xe')](_0x9d75('0xf'),_0x38d12b,_0x9d75('0x10'));_0x826a0a(_0x3cb7b1[_0x9d75('0x17')][_0x9d75('0x16')]);}})[_0x9d75('0x18')](function(_0x135d16){logger['error'](_0x9d75('0xf'),_0x38d12b,_0x135d16);_0x34aa38(_0x135d16);});});}
\ No newline at end of file
+var _0x0ae7=['request','then','debug','request\x20sent','stringify','error','code','SugarcrmConfiguration,\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'];(function(_0x43aadd,_0x27ec0f){var _0x36596a=function(_0x467ff2){while(--_0x467ff2){_0x43aadd['push'](_0x43aadd['shift']());}};_0x36596a(++_0x27ec0f);}(_0x0ae7,0x169));var _0x70ae=function(_0x15bc81,_0x4d4f77){_0x15bc81=_0x15bc81-0x0;var _0x59440e=_0x0ae7[_0x15bc81];return _0x59440e;};'use strict';var _=require(_0x70ae('0x0'));var util=require(_0x70ae('0x1'));var moment=require(_0x70ae('0x2'));var BPromise=require(_0x70ae('0x3'));var rs=require(_0x70ae('0x4'));var fs=require('fs');var Redis=require(_0x70ae('0x5'));var db=require(_0x70ae('0x6'))['db'];var utils=require(_0x70ae('0x7'));var logger=require(_0x70ae('0x8'))(_0x70ae('0x9'));var config=require(_0x70ae('0xa'));var jayson=require(_0x70ae('0xb'));var client=jayson[_0x70ae('0xc')][_0x70ae('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x313c8f,_0x154bf9,_0x3936e6){return new BPromise(function(_0x1ec2d5,_0x57b399){return client[_0x70ae('0xe')](_0x313c8f,_0x3936e6)[_0x70ae('0xf')](function(_0x4fb2c3){logger['info']('SugarcrmConfiguration,\x20%s,\x20%s',_0x154bf9,'request\x20sent');logger[_0x70ae('0x10')]('SugarcrmConfiguration,\x20%s,\x20%s,\x20%s',_0x154bf9,_0x70ae('0x11'),JSON[_0x70ae('0x12')](_0x4fb2c3));if(_0x4fb2c3[_0x70ae('0x13')]){if(_0x4fb2c3[_0x70ae('0x13')][_0x70ae('0x14')]===0x1f4){logger[_0x70ae('0x13')](_0x70ae('0x15'),_0x154bf9,_0x4fb2c3[_0x70ae('0x13')][_0x70ae('0x16')]);return _0x57b399(_0x4fb2c3[_0x70ae('0x13')][_0x70ae('0x16')]);}logger[_0x70ae('0x13')](_0x70ae('0x15'),_0x154bf9,_0x4fb2c3[_0x70ae('0x13')][_0x70ae('0x16')]);return _0x1ec2d5(_0x4fb2c3[_0x70ae('0x13')][_0x70ae('0x16')]);}else{logger['info'](_0x70ae('0x15'),_0x154bf9,_0x70ae('0x11'));_0x1ec2d5(_0x4fb2c3[_0x70ae('0x17')]['message']);}})[_0x70ae('0x18')](function(_0x10e53c){logger[_0x70ae('0x13')](_0x70ae('0x15'),_0x154bf9,_0x10e53c);_0x57b399(_0x10e53c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf326=['destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','./intSugarcrmField.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete'];(function(_0x3bbf61,_0x448252){var _0x5b82b7=function(_0x1f0323){while(--_0x1f0323){_0x3bbf61['push'](_0x3bbf61['shift']());}};_0x5b82b7(++_0x448252);}(_0xf326,0xc9));var _0x6f32=function(_0x214023,_0x65e22b){_0x214023=_0x214023-0x0;var _0x10cf15=_0xf326[_0x214023];return _0x10cf15;};'use strict';var multer=require(_0x6f32('0x0'));var util=require(_0x6f32('0x1'));var path=require(_0x6f32('0x2'));var timeout=require(_0x6f32('0x3'));var express=require(_0x6f32('0x4'));var router=express[_0x6f32('0x5')]();var fs_extra=require(_0x6f32('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x6f32('0x7'));var controller=require(_0x6f32('0x8'));router[_0x6f32('0x9')]('/',auth[_0x6f32('0xa')](),controller[_0x6f32('0xb')]);router['get'](_0x6f32('0xc'),auth['isAuthenticated'](),controller[_0x6f32('0xd')]);router[_0x6f32('0xe')]('/',auth[_0x6f32('0xa')](),controller[_0x6f32('0xf')]);router[_0x6f32('0x10')](_0x6f32('0xc'),auth[_0x6f32('0xa')](),controller[_0x6f32('0x11')]);router[_0x6f32('0x12')]('/:id',auth['isAuthenticated'](),controller[_0x6f32('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0xec64=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmField.controller','get','index','/:id','isAuthenticated','show','create','put','update','delete','exports','multer','util','connect-timeout','express'];(function(_0x1ad57d,_0xc91a96){var _0xc96b18=function(_0x48db6e){while(--_0x48db6e){_0x1ad57d['push'](_0x1ad57d['shift']());}};_0xc96b18(++_0xc91a96);}(_0xec64,0x128));var _0x4ec6=function(_0x3b2244,_0x54873f){_0x3b2244=_0x3b2244-0x0;var _0x2dcc14=_0xec64[_0x3b2244];return _0x2dcc14;};'use strict';var multer=require(_0x4ec6('0x0'));var util=require(_0x4ec6('0x1'));var path=require('path');var timeout=require(_0x4ec6('0x2'));var express=require(_0x4ec6('0x3'));var router=express[_0x4ec6('0x4')]();var fs_extra=require(_0x4ec6('0x5'));var auth=require(_0x4ec6('0x6'));var interaction=require(_0x4ec6('0x7'));var config=require(_0x4ec6('0x8'));var controller=require(_0x4ec6('0x9'));router[_0x4ec6('0xa')]('/',auth['isAuthenticated'](),controller[_0x4ec6('0xb')]);router[_0x4ec6('0xa')](_0x4ec6('0xc'),auth[_0x4ec6('0xd')](),controller[_0x4ec6('0xe')]);router['post']('/',auth[_0x4ec6('0xd')](),controller[_0x4ec6('0xf')]);router[_0x4ec6('0x10')](_0x4ec6('0xc'),auth['isAuthenticated'](),controller[_0x4ec6('0x11')]);router[_0x4ec6('0x12')](_0x4ec6('0xc'),auth['isAuthenticated'](),controller['destroy']);module[_0x4ec6('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa568=['customVariable','STRING','sequelize','exports','ENUM','string'];(function(_0xca3b14,_0x15a428){var _0x1503f0=function(_0x33d7f6){while(--_0x33d7f6){_0xca3b14['push'](_0xca3b14['shift']());}};_0x1503f0(++_0x15a428);}(_0xa568,0x1f4));var _0x8a56=function(_0x1cc8fe,_0x105328){_0x1cc8fe=_0x1cc8fe-0x0;var _0x230054=_0xa568[_0x1cc8fe];return _0x230054;};'use strict';var Sequelize=require(_0x8a56('0x0'));module[_0x8a56('0x1')]={'type':{'type':Sequelize[_0x8a56('0x2')](_0x8a56('0x3'),'variable',_0x8a56('0x4'),'keyValue','picklist'),'defaultValue':'string'},'content':{'type':Sequelize[_0x8a56('0x5')]},'key':{'type':Sequelize[_0x8a56('0x5')]},'keyType':{'type':Sequelize[_0x8a56('0x2')](_0x8a56('0x3'),'variable',_0x8a56('0x4'))},'keyContent':{'type':Sequelize[_0x8a56('0x5')]},'idField':{'type':Sequelize[_0x8a56('0x5')]},'nameField':{'type':Sequelize[_0x8a56('0x5')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x8a56('0x5')]}};
\ No newline at end of file
+var _0xb618=['STRING','variable','BOOLEAN','exports','ENUM','string','customVariable','keyValue'];(function(_0xe89382,_0x3480a4){var _0x28f382=function(_0x505771){while(--_0x505771){_0xe89382['push'](_0xe89382['shift']());}};_0x28f382(++_0x3480a4);}(_0xb618,0x8b));var _0x8b61=function(_0x251ff3,_0x44b8fb){_0x251ff3=_0x251ff3-0x0;var _0x2cf5f5=_0xb618[_0x251ff3];return _0x2cf5f5;};'use strict';var Sequelize=require('sequelize');module[_0x8b61('0x0')]={'type':{'type':Sequelize[_0x8b61('0x1')](_0x8b61('0x2'),'variable',_0x8b61('0x3'),_0x8b61('0x4'),'picklist'),'defaultValue':'string'},'content':{'type':Sequelize[_0x8b61('0x5')]},'key':{'type':Sequelize[_0x8b61('0x5')]},'keyType':{'type':Sequelize[_0x8b61('0x1')](_0x8b61('0x2'),_0x8b61('0x6'),_0x8b61('0x3'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x8b61('0x5')]},'nameField':{'type':Sequelize[_0x8b61('0x5')]},'customField':{'type':Sequelize[_0x8b61('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53ca=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','SugarcrmField','includeAll','include','rows','catch','params','find','create','body','request-promise','bluebird','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','ioredis'];(function(_0x5d77fb,_0x2616e8){var _0x270181=function(_0x3ab093){while(--_0x3ab093){_0x5d77fb['push'](_0x5d77fb['shift']());}};_0x270181(++_0x2616e8);}(_0x53ca,0x7f));var _0xa53c=function(_0x454fe9,_0x16eed7){_0x454fe9=_0x454fe9-0x0;var _0x528e18=_0x53ca[_0x454fe9];return _0x528e18;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xa53c('0x0'));var moment=require('moment');var BPromise=require(_0xa53c('0x1'));var Mustache=require('mustache');var util=require('util');var path=require(_0xa53c('0x2'));var sox=require('sox');var csv=require(_0xa53c('0x3'));var ejs=require(_0xa53c('0x4'));var fs=require('fs');var fs_extra=require(_0xa53c('0x5'));var _=require('lodash');var squel=require(_0xa53c('0x6'));var crypto=require(_0xa53c('0x7'));var jsforce=require(_0xa53c('0x8'));var deskjs=require(_0xa53c('0x9'));var toCsv=require(_0xa53c('0x3'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xa53c('0xa'));var authService=require(_0xa53c('0xb'));var qs=require(_0xa53c('0xc'));var as=require(_0xa53c('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa53c('0xe'))('api');var utils=require(_0xa53c('0xf'));var config=require(_0xa53c('0x10'));var licenseUtil=require(_0xa53c('0x11'));var db=require(_0xa53c('0x12'))['db'];function respondWithStatusCode(_0x498a27,_0x3fa961){_0x3fa961=_0x3fa961||0xcc;return function(_0x2bd60c){if(_0x2bd60c){return _0x498a27['sendStatus'](_0x3fa961);}return _0x498a27[_0xa53c('0x13')](_0x3fa961)[_0xa53c('0x14')]();};}function respondWithResult(_0x24b76d,_0x36eaa0){_0x36eaa0=_0x36eaa0||0xc8;return function(_0x489a96){if(_0x489a96){return _0x24b76d[_0xa53c('0x13')](_0x36eaa0)[_0xa53c('0x15')](_0x489a96);}};}function respondWithFilteredResult(_0x1cb86b,_0x1d88bd){return function(_0x20f318){if(_0x20f318){var _0x2a59d8=typeof _0x1d88bd[_0xa53c('0x16')]===_0xa53c('0x17')&&typeof _0x1d88bd[_0xa53c('0x18')]===_0xa53c('0x17');var _0xe2927e=_0x20f318[_0xa53c('0x19')];var _0x2ac639=_0x2a59d8?0x0:_0x1d88bd[_0xa53c('0x16')];var _0x2ebb26=_0x2a59d8?_0x20f318[_0xa53c('0x19')]:_0x1d88bd['offset']+_0x1d88bd['limit'];var _0x39458a;if(_0x2ebb26>=_0xe2927e){_0x2ebb26=_0xe2927e;_0x39458a=0xc8;}else{_0x39458a=0xce;}_0x1cb86b[_0xa53c('0x13')](_0x39458a);return _0x1cb86b[_0xa53c('0x1a')](_0xa53c('0x1b'),_0x2ac639+'-'+_0x2ebb26+'/'+_0xe2927e)['json'](_0x20f318);}return null;};}function patchUpdates(_0x1c4c4e){return function(_0x8bcab6){try{jsonpatch[_0xa53c('0x1c')](_0x8bcab6,_0x1c4c4e,!![]);}catch(_0x3ef1f9){return BPromise[_0xa53c('0x1d')](_0x3ef1f9);}return _0x8bcab6[_0xa53c('0x1e')]();};}function saveUpdates(_0x4fe034,_0xba437e){return function(_0x1e661d){if(_0x1e661d){return _0x1e661d[_0xa53c('0x1f')](_0x4fe034)[_0xa53c('0x20')](function(_0x45ecb6){return _0x45ecb6;});}return null;};}function removeEntity(_0x52e282,_0x3306cf){return function(_0x2fad27){if(_0x2fad27){return _0x2fad27[_0xa53c('0x21')]()[_0xa53c('0x20')](function(){_0x52e282[_0xa53c('0x13')](0xcc)[_0xa53c('0x14')]();});}};}function handleEntityNotFound(_0x3375d2,_0x2b6420){return function(_0x34f800){if(!_0x34f800){_0x3375d2[_0xa53c('0x22')](0x194);}return _0x34f800;};}function handleError(_0x57b0ac,_0x2193df){_0x2193df=_0x2193df||0x1f4;return function(_0x96e236){logger['error'](_0x96e236[_0xa53c('0x23')]);if(_0x96e236[_0xa53c('0x24')]){delete _0x96e236[_0xa53c('0x24')];}_0x57b0ac['status'](_0x2193df)[_0xa53c('0x25')](_0x96e236);};}exports[_0xa53c('0x26')]=function(_0x51fae9,_0x3856ed){var _0x4a5ec4={},_0x214c56={},_0x523149={'count':0x0,'rows':[]};var _0x49f77c=_[_0xa53c('0x27')](db['SugarcrmField'][_0xa53c('0x28')],function(_0x1d8dbd){return{'name':_0x1d8dbd[_0xa53c('0x29')],'type':_0x1d8dbd[_0xa53c('0x2a')][_0xa53c('0x2b')]};});_0x214c56[_0xa53c('0x2c')]=_[_0xa53c('0x27')](_0x49f77c,_0xa53c('0x24'));_0x214c56[_0xa53c('0x2d')]=_[_0xa53c('0x2e')](_0x51fae9['query']);_0x214c56[_0xa53c('0x2f')]=_[_0xa53c('0x30')](_0x214c56['model'],_0x214c56[_0xa53c('0x2d')]);_0x4a5ec4[_0xa53c('0x31')]=_[_0xa53c('0x30')](_0x214c56[_0xa53c('0x2c')],qs[_0xa53c('0x32')](_0x51fae9['query']['fields']));_0x4a5ec4[_0xa53c('0x31')]=_0x4a5ec4[_0xa53c('0x31')]['length']?_0x4a5ec4['attributes']:_0x214c56[_0xa53c('0x2c')];if(!_0x51fae9[_0xa53c('0x2d')][_0xa53c('0x33')]('nolimit')){_0x4a5ec4[_0xa53c('0x18')]=qs['limit'](_0x51fae9[_0xa53c('0x2d')][_0xa53c('0x18')]);_0x4a5ec4[_0xa53c('0x16')]=qs[_0xa53c('0x16')](_0x51fae9[_0xa53c('0x2d')][_0xa53c('0x16')]);}_0x4a5ec4[_0xa53c('0x34')]=qs['sort'](_0x51fae9[_0xa53c('0x2d')][_0xa53c('0x35')]);_0x4a5ec4[_0xa53c('0x36')]=qs[_0xa53c('0x2f')](_[_0xa53c('0x37')](_0x51fae9['query'],_0x214c56[_0xa53c('0x2f')]),_0x49f77c);if(_0x51fae9[_0xa53c('0x2d')][_0xa53c('0x38')]){_0x4a5ec4[_0xa53c('0x36')]=_[_0xa53c('0x39')](_0x4a5ec4['where'],{'$or':_[_0xa53c('0x27')](_0x49f77c,function(_0x213ee4){if(_0x213ee4[_0xa53c('0x2a')]!==_0xa53c('0x3a')){var _0x25862c={};_0x25862c[_0x213ee4[_0xa53c('0x24')]]={'$like':'%'+_0x51fae9[_0xa53c('0x2d')]['filter']+'%'};return _0x25862c;}})});}_0x4a5ec4=_[_0xa53c('0x39')]({},_0x4a5ec4,_0x51fae9[_0xa53c('0x3b')]);var _0x52bfb7={'where':_0x4a5ec4['where']};return db[_0xa53c('0x3c')][_0xa53c('0x19')](_0x52bfb7)[_0xa53c('0x20')](function(_0x249815){_0x523149['count']=_0x249815;if(_0x51fae9[_0xa53c('0x2d')][_0xa53c('0x3d')]){_0x4a5ec4[_0xa53c('0x3e')]=[{'all':!![]}];}return db[_0xa53c('0x3c')]['findAll'](_0x4a5ec4);})[_0xa53c('0x20')](function(_0x5964f7){_0x523149[_0xa53c('0x3f')]=_0x5964f7;return _0x523149;})['then'](respondWithFilteredResult(_0x3856ed,_0x4a5ec4))[_0xa53c('0x40')](handleError(_0x3856ed,null));};exports['show']=function(_0x2385b5,_0x2c06fc){var _0x379c5b={'raw':!![],'where':{'id':_0x2385b5[_0xa53c('0x41')]['id']}},_0x54a730={};_0x54a730[_0xa53c('0x2c')]=_[_0xa53c('0x2e')](db[_0xa53c('0x3c')][_0xa53c('0x28')]);_0x54a730[_0xa53c('0x2d')]=_[_0xa53c('0x2e')](_0x2385b5[_0xa53c('0x2d')]);_0x54a730[_0xa53c('0x2f')]=_[_0xa53c('0x30')](_0x54a730[_0xa53c('0x2c')],_0x54a730[_0xa53c('0x2d')]);_0x379c5b[_0xa53c('0x31')]=_['intersection'](_0x54a730[_0xa53c('0x2c')],qs[_0xa53c('0x32')](_0x2385b5[_0xa53c('0x2d')]['fields']));_0x379c5b['attributes']=_0x379c5b['attributes']['length']?_0x379c5b[_0xa53c('0x31')]:_0x54a730['model'];if(_0x2385b5[_0xa53c('0x2d')][_0xa53c('0x3d')]){_0x379c5b[_0xa53c('0x3e')]=[{'all':!![]}];}_0x379c5b=_['merge']({},_0x379c5b,_0x2385b5[_0xa53c('0x3b')]);return db['SugarcrmField'][_0xa53c('0x42')](_0x379c5b)[_0xa53c('0x20')](handleEntityNotFound(_0x2c06fc,null))[_0xa53c('0x20')](respondWithResult(_0x2c06fc,null))['catch'](handleError(_0x2c06fc,null));};exports[_0xa53c('0x43')]=function(_0x38526b,_0x29d713){return db[_0xa53c('0x3c')][_0xa53c('0x43')](_0x38526b[_0xa53c('0x44')],{})[_0xa53c('0x20')](respondWithResult(_0x29d713,0xc9))[_0xa53c('0x40')](handleError(_0x29d713,null));};exports['update']=function(_0x13d2cc,_0x2921c0){if(_0x13d2cc[_0xa53c('0x44')]['id']){delete _0x13d2cc['body']['id'];}return db[_0xa53c('0x3c')][_0xa53c('0x42')]({'where':{'id':_0x13d2cc['params']['id']}})['then'](handleEntityNotFound(_0x2921c0,null))[_0xa53c('0x20')](saveUpdates(_0x13d2cc['body'],null))[_0xa53c('0x20')](respondWithResult(_0x2921c0,null))[_0xa53c('0x40')](handleError(_0x2921c0,null));};exports[_0xa53c('0x21')]=function(_0x45f21e,_0x2e2538){return db[_0xa53c('0x3c')][_0xa53c('0x42')]({'where':{'id':_0x45f21e['params']['id']}})[_0xa53c('0x20')](handleEntityNotFound(_0x2e2538,null))[_0xa53c('0x20')](removeEntity(_0x2e2538,null))[_0xa53c('0x40')](handleError(_0x2e2538,null));};
\ No newline at end of file
+var _0x654c=['../../mysqldb','sendStatus','status','json','count','offset','limit','set','apply','reject','update','then','destroy','end','error','send','index','map','rawAttributes','fieldName','type','key','model','name','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge','options','SugarcrmField','includeAll','include','findAll','catch','show','params','find','create','body','zip-dir','fast-json-patch','moment','bluebird','mustache','path','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','../../config/environment'];(function(_0x3f8a98,_0x15b004){var _0x13d1f2=function(_0x15d3af){while(--_0x15d3af){_0x3f8a98['push'](_0x3f8a98['shift']());}};_0x13d1f2(++_0x15b004);}(_0x654c,0x7a));var _0xc654=function(_0x16627a,_0x45511f){_0x16627a=_0x16627a-0x0;var _0x120d1b=_0x654c[_0x16627a];return _0x120d1b;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xc654('0x0'));var jsonpatch=require(_0xc654('0x1'));var rp=require('request-promise');var moment=require(_0xc654('0x2'));var BPromise=require(_0xc654('0x3'));var Mustache=require(_0xc654('0x4'));var util=require('util');var path=require(_0xc654('0x5'));var sox=require(_0xc654('0x6'));var csv=require(_0xc654('0x7'));var ejs=require(_0xc654('0x8'));var fs=require('fs');var fs_extra=require(_0xc654('0x9'));var _=require(_0xc654('0xa'));var squel=require(_0xc654('0xb'));var crypto=require(_0xc654('0xc'));var jsforce=require(_0xc654('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xc654('0x7'));var querystring=require(_0xc654('0xe'));var Papa=require(_0xc654('0xf'));var Redis=require('ioredis');var authService=require(_0xc654('0x10'));var qs=require(_0xc654('0x11'));var as=require(_0xc654('0x12'));var hardwareService=require(_0xc654('0x13'));var logger=require(_0xc654('0x14'))('api');var utils=require('../../config/utils');var config=require(_0xc654('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xc654('0x16'))['db'];function respondWithStatusCode(_0x395738,_0x4e6572){_0x4e6572=_0x4e6572||0xcc;return function(_0x432cf9){if(_0x432cf9){return _0x395738[_0xc654('0x17')](_0x4e6572);}return _0x395738[_0xc654('0x18')](_0x4e6572)['end']();};}function respondWithResult(_0x669910,_0x462a30){_0x462a30=_0x462a30||0xc8;return function(_0x339d69){if(_0x339d69){return _0x669910[_0xc654('0x18')](_0x462a30)[_0xc654('0x19')](_0x339d69);}};}function respondWithFilteredResult(_0x3a81a7,_0x25fb94){return function(_0x47ef3a){if(_0x47ef3a){var _0x56c53a=typeof _0x25fb94['offset']==='undefined'&&typeof _0x25fb94['limit']==='undefined';var _0x1361f7=_0x47ef3a[_0xc654('0x1a')];var _0x22f390=_0x56c53a?0x0:_0x25fb94[_0xc654('0x1b')];var _0x2f73cf=_0x56c53a?_0x47ef3a[_0xc654('0x1a')]:_0x25fb94[_0xc654('0x1b')]+_0x25fb94[_0xc654('0x1c')];var _0x5bc4e0;if(_0x2f73cf>=_0x1361f7){_0x2f73cf=_0x1361f7;_0x5bc4e0=0xc8;}else{_0x5bc4e0=0xce;}_0x3a81a7[_0xc654('0x18')](_0x5bc4e0);return _0x3a81a7[_0xc654('0x1d')]('Content-Range',_0x22f390+'-'+_0x2f73cf+'/'+_0x1361f7)[_0xc654('0x19')](_0x47ef3a);}return null;};}function patchUpdates(_0x590e87){return function(_0x145e90){try{jsonpatch[_0xc654('0x1e')](_0x145e90,_0x590e87,!![]);}catch(_0x42c446){return BPromise[_0xc654('0x1f')](_0x42c446);}return _0x145e90['save']();};}function saveUpdates(_0x593b7b,_0x4cae8b){return function(_0x4f75e8){if(_0x4f75e8){return _0x4f75e8[_0xc654('0x20')](_0x593b7b)[_0xc654('0x21')](function(_0xf24318){return _0xf24318;});}return null;};}function removeEntity(_0x28b92f,_0x43b9e5){return function(_0x52fa9d){if(_0x52fa9d){return _0x52fa9d[_0xc654('0x22')]()[_0xc654('0x21')](function(){_0x28b92f[_0xc654('0x18')](0xcc)[_0xc654('0x23')]();});}};}function handleEntityNotFound(_0x240d9b,_0x1fc8bc){return function(_0x461295){if(!_0x461295){_0x240d9b[_0xc654('0x17')](0x194);}return _0x461295;};}function handleError(_0x7637a1,_0x2f7282){_0x2f7282=_0x2f7282||0x1f4;return function(_0x35e381){logger[_0xc654('0x24')](_0x35e381['stack']);if(_0x35e381['name']){delete _0x35e381['name'];}_0x7637a1[_0xc654('0x18')](_0x2f7282)[_0xc654('0x25')](_0x35e381);};}exports[_0xc654('0x26')]=function(_0x4b8d71,_0x16b4c8){var _0x170881={},_0x440ae2={},_0x1e1285={'count':0x0,'rows':[]};var _0x14423b=_[_0xc654('0x27')](db['SugarcrmField'][_0xc654('0x28')],function(_0x1b831d){return{'name':_0x1b831d[_0xc654('0x29')],'type':_0x1b831d[_0xc654('0x2a')][_0xc654('0x2b')]};});_0x440ae2[_0xc654('0x2c')]=_['map'](_0x14423b,_0xc654('0x2d'));_0x440ae2[_0xc654('0x2e')]=_[_0xc654('0x2f')](_0x4b8d71[_0xc654('0x2e')]);_0x440ae2[_0xc654('0x30')]=_['intersection'](_0x440ae2['model'],_0x440ae2['query']);_0x170881[_0xc654('0x31')]=_[_0xc654('0x32')](_0x440ae2['model'],qs[_0xc654('0x33')](_0x4b8d71['query']['fields']));_0x170881[_0xc654('0x31')]=_0x170881[_0xc654('0x31')][_0xc654('0x34')]?_0x170881['attributes']:_0x440ae2[_0xc654('0x2c')];if(!_0x4b8d71[_0xc654('0x2e')][_0xc654('0x35')](_0xc654('0x36'))){_0x170881[_0xc654('0x1c')]=qs[_0xc654('0x1c')](_0x4b8d71['query'][_0xc654('0x1c')]);_0x170881['offset']=qs[_0xc654('0x1b')](_0x4b8d71[_0xc654('0x2e')]['offset']);}_0x170881[_0xc654('0x37')]=qs[_0xc654('0x38')](_0x4b8d71[_0xc654('0x2e')][_0xc654('0x38')]);_0x170881[_0xc654('0x39')]=qs['filters'](_['pick'](_0x4b8d71[_0xc654('0x2e')],_0x440ae2[_0xc654('0x30')]),_0x14423b);if(_0x4b8d71[_0xc654('0x2e')][_0xc654('0x3a')]){_0x170881[_0xc654('0x39')]=_['merge'](_0x170881['where'],{'$or':_[_0xc654('0x27')](_0x14423b,function(_0x3e9a78){if(_0x3e9a78['type']!==_0xc654('0x3b')){var _0x1a4543={};_0x1a4543[_0x3e9a78[_0xc654('0x2d')]]={'$like':'%'+_0x4b8d71[_0xc654('0x2e')][_0xc654('0x3a')]+'%'};return _0x1a4543;}})});}_0x170881=_[_0xc654('0x3c')]({},_0x170881,_0x4b8d71[_0xc654('0x3d')]);var _0x112050={'where':_0x170881['where']};return db[_0xc654('0x3e')][_0xc654('0x1a')](_0x112050)[_0xc654('0x21')](function(_0x3a5df8){_0x1e1285[_0xc654('0x1a')]=_0x3a5df8;if(_0x4b8d71[_0xc654('0x2e')][_0xc654('0x3f')]){_0x170881[_0xc654('0x40')]=[{'all':!![]}];}return db[_0xc654('0x3e')][_0xc654('0x41')](_0x170881);})[_0xc654('0x21')](function(_0xa08282){_0x1e1285['rows']=_0xa08282;return _0x1e1285;})['then'](respondWithFilteredResult(_0x16b4c8,_0x170881))[_0xc654('0x42')](handleError(_0x16b4c8,null));};exports[_0xc654('0x43')]=function(_0x1ff137,_0xdb6fb2){var _0x2bafa2={'raw':!![],'where':{'id':_0x1ff137[_0xc654('0x44')]['id']}},_0x376557={};_0x376557[_0xc654('0x2c')]=_['keys'](db[_0xc654('0x3e')][_0xc654('0x28')]);_0x376557['query']=_[_0xc654('0x2f')](_0x1ff137[_0xc654('0x2e')]);_0x376557[_0xc654('0x30')]=_['intersection'](_0x376557[_0xc654('0x2c')],_0x376557[_0xc654('0x2e')]);_0x2bafa2[_0xc654('0x31')]=_['intersection'](_0x376557[_0xc654('0x2c')],qs[_0xc654('0x33')](_0x1ff137[_0xc654('0x2e')][_0xc654('0x33')]));_0x2bafa2['attributes']=_0x2bafa2['attributes'][_0xc654('0x34')]?_0x2bafa2['attributes']:_0x376557['model'];if(_0x1ff137[_0xc654('0x2e')]['includeAll']){_0x2bafa2[_0xc654('0x40')]=[{'all':!![]}];}_0x2bafa2=_[_0xc654('0x3c')]({},_0x2bafa2,_0x1ff137['options']);return db[_0xc654('0x3e')][_0xc654('0x45')](_0x2bafa2)[_0xc654('0x21')](handleEntityNotFound(_0xdb6fb2,null))[_0xc654('0x21')](respondWithResult(_0xdb6fb2,null))['catch'](handleError(_0xdb6fb2,null));};exports[_0xc654('0x46')]=function(_0x21d6c5,_0x5f20e0){return db['SugarcrmField'][_0xc654('0x46')](_0x21d6c5[_0xc654('0x47')],{})[_0xc654('0x21')](respondWithResult(_0x5f20e0,0xc9))[_0xc654('0x42')](handleError(_0x5f20e0,null));};exports[_0xc654('0x20')]=function(_0x4545b2,_0x44676c){if(_0x4545b2[_0xc654('0x47')]['id']){delete _0x4545b2[_0xc654('0x47')]['id'];}return db['SugarcrmField']['find']({'where':{'id':_0x4545b2[_0xc654('0x44')]['id']}})[_0xc654('0x21')](handleEntityNotFound(_0x44676c,null))[_0xc654('0x21')](saveUpdates(_0x4545b2[_0xc654('0x47')],null))[_0xc654('0x21')](respondWithResult(_0x44676c,null))['catch'](handleError(_0x44676c,null));};exports[_0xc654('0x22')]=function(_0x3c8d94,_0x3743a0){return db[_0xc654('0x3e')][_0xc654('0x45')]({'where':{'id':_0x3c8d94[_0xc654('0x44')]['id']}})[_0xc654('0x21')](handleEntityNotFound(_0x3743a0,null))[_0xc654('0x21')](removeEntity(_0x3743a0,null))[_0xc654('0x42')](handleError(_0x3743a0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x18a3=['./intSugarcrmField.attributes','define','SugarcrmField','int_sugarcrm_fields','sugarcrm_unique_index','idField','FieldId','lodash','util','../../config/logger','api','moment','bluebird','rimraf','../../config/environment'];(function(_0x5845f6,_0x544122){var _0x4830ab=function(_0x3829a3){while(--_0x3829a3){_0x5845f6['push'](_0x5845f6['shift']());}};_0x4830ab(++_0x544122);}(_0x18a3,0x1ba));var _0x318a=function(_0x2bf32c,_0x5e234b){_0x2bf32c=_0x2bf32c-0x0;var _0x5bc4c5=_0x18a3[_0x2bf32c];return _0x5bc4c5;};'use strict';var _=require(_0x318a('0x0'));var util=require(_0x318a('0x1'));var logger=require(_0x318a('0x2'))(_0x318a('0x3'));var moment=require(_0x318a('0x4'));var BPromise=require(_0x318a('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x318a('0x6'));var config=require(_0x318a('0x7'));var attributes=require(_0x318a('0x8'));module['exports']=function(_0x3a26a5,_0x27548a){return _0x3a26a5[_0x318a('0x9')](_0x318a('0xa'),attributes,{'tableName':_0x318a('0xb'),'paranoid':![],'indexes':[{'name':_0x318a('0xc'),'fields':[_0x318a('0xd'),_0x318a('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x676a=['request-promise','path','./intSugarcrmField.attributes','exports','define','int_sugarcrm_fields','FieldId','lodash','util','moment'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x676a,0xbb));var _0xa676=function(_0x764874,_0x3ed544){_0x764874=_0x764874-0x0;var _0x29f9d5=_0x676a[_0x764874];return _0x29f9d5;};'use strict';var _=require(_0xa676('0x0'));var util=require(_0xa676('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xa676('0x2'));var BPromise=require('bluebird');var rp=require(_0xa676('0x3'));var fs=require('fs');var path=require(_0xa676('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xa676('0x5'));module[_0xa676('0x6')]=function(_0x13f664,_0x2e3681){return _0x13f664[_0xa676('0x7')]('SugarcrmField',attributes,{'tableName':_0xa676('0x8'),'paranoid':![],'indexes':[{'name':'sugarcrm_unique_index','fields':['idField',_0xa676('0x9')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7654=['debug','request\x20sent','stringify','error','code','message','info','lodash','util','moment','bluebird','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','http','request','SugarcrmField,\x20%s,\x20%s'];(function(_0x44b912,_0x1e9fc1){var _0x49f5a2=function(_0x286d35){while(--_0x286d35){_0x44b912['push'](_0x44b912['shift']());}};_0x49f5a2(++_0x1e9fc1);}(_0x7654,0x14a));var _0x4765=function(_0x1a7605,_0x2bb0f7){_0x1a7605=_0x1a7605-0x0;var _0x13d90c=_0x7654[_0x1a7605];return _0x13d90c;};'use strict';var _=require(_0x4765('0x0'));var util=require(_0x4765('0x1'));var moment=require(_0x4765('0x2'));var BPromise=require(_0x4765('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4765('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x4765('0x5'));var logger=require('../../config/logger')(_0x4765('0x6'));var config=require(_0x4765('0x7'));var jayson=require(_0x4765('0x8'));var client=jayson['client'][_0x4765('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3d722a,_0x188fe6,_0x1c05b1){return new BPromise(function(_0xdddb14,_0x4289b3){return client[_0x4765('0xa')](_0x3d722a,_0x1c05b1)['then'](function(_0x3df764){logger['info'](_0x4765('0xb'),_0x188fe6,'request\x20sent');logger[_0x4765('0xc')]('SugarcrmField,\x20%s,\x20%s,\x20%s',_0x188fe6,_0x4765('0xd'),JSON[_0x4765('0xe')](_0x3df764));if(_0x3df764[_0x4765('0xf')]){if(_0x3df764['error'][_0x4765('0x10')]===0x1f4){logger[_0x4765('0xf')](_0x4765('0xb'),_0x188fe6,_0x3df764[_0x4765('0xf')]['message']);return _0x4289b3(_0x3df764['error']['message']);}logger['error'](_0x4765('0xb'),_0x188fe6,_0x3df764[_0x4765('0xf')][_0x4765('0x11')]);return _0xdddb14(_0x3df764[_0x4765('0xf')]['message']);}else{logger[_0x4765('0x12')](_0x4765('0xb'),_0x188fe6,_0x4765('0xd'));_0xdddb14(_0x3df764['result']['message']);}})['catch'](function(_0x3e2cca){logger['error']('SugarcrmField,\x20%s,\x20%s',_0x188fe6,_0x3e2cca);_0x4289b3(_0x3e2cca);});});}
\ No newline at end of file
+var _0xaddd=['moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','http','request','then','SugarcrmField,\x20%s,\x20%s','request\x20sent','debug','SugarcrmField,\x20%s,\x20%s,\x20%s','error','message','info','catch','lodash','util'];(function(_0x2c1aa8,_0x3e0609){var _0x4019f5=function(_0x916eac){while(--_0x916eac){_0x2c1aa8['push'](_0x2c1aa8['shift']());}};_0x4019f5(++_0x3e0609);}(_0xaddd,0xb2));var _0xdadd=function(_0x2c8de4,_0x48ecd7){_0x2c8de4=_0x2c8de4-0x0;var _0xa5f1d5=_0xaddd[_0x2c8de4];return _0xa5f1d5;};'use strict';var _=require(_0xdadd('0x0'));var util=require(_0xdadd('0x1'));var moment=require(_0xdadd('0x2'));var BPromise=require(_0xdadd('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xdadd('0x4'));var db=require(_0xdadd('0x5'))['db'];var utils=require(_0xdadd('0x6'));var logger=require(_0xdadd('0x7'))(_0xdadd('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0xdadd('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1225fb,_0xdf85b0,_0x16b8b5){return new BPromise(function(_0x49c2d9,_0x373a55){return client[_0xdadd('0xa')](_0x1225fb,_0x16b8b5)[_0xdadd('0xb')](function(_0xe97895){logger['info'](_0xdadd('0xc'),_0xdf85b0,_0xdadd('0xd'));logger[_0xdadd('0xe')](_0xdadd('0xf'),_0xdf85b0,_0xdadd('0xd'),JSON['stringify'](_0xe97895));if(_0xe97895[_0xdadd('0x10')]){if(_0xe97895[_0xdadd('0x10')]['code']===0x1f4){logger['error']('SugarcrmField,\x20%s,\x20%s',_0xdf85b0,_0xe97895[_0xdadd('0x10')][_0xdadd('0x11')]);return _0x373a55(_0xe97895['error'][_0xdadd('0x11')]);}logger[_0xdadd('0x10')](_0xdadd('0xc'),_0xdf85b0,_0xe97895[_0xdadd('0x10')]['message']);return _0x49c2d9(_0xe97895['error'][_0xdadd('0x11')]);}else{logger[_0xdadd('0x12')]('SugarcrmField,\x20%s,\x20%s',_0xdf85b0,'request\x20sent');_0x49c2d9(_0xe97895['result']['message']);}})[_0xdadd('0x13')](function(_0x268653){logger[_0xdadd('0x10')](_0xdadd('0xc'),_0xdf85b0,_0x268653);_0x373a55(_0x268653);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaeef=['../../components/auth/service','../../components/interaction/service','./intVtigerAccount.controller','index','get','isAuthenticated','show','getConfigurations','getFields','post','create','addConfiguration','put','update','delete','/:id','destroy','exports','multer','util','path','express','Router','fs-extra'];(function(_0x54e893,_0x50b070){var _0x45300a=function(_0x22ba9b){while(--_0x22ba9b){_0x54e893['push'](_0x54e893['shift']());}};_0x45300a(++_0x50b070);}(_0xaeef,0x14a));var _0xfaee=function(_0x1456e0,_0x42aa10){_0x1456e0=_0x1456e0-0x0;var _0x58a9b4=_0xaeef[_0x1456e0];return _0x58a9b4;};'use strict';var multer=require(_0xfaee('0x0'));var util=require(_0xfaee('0x1'));var path=require(_0xfaee('0x2'));var timeout=require('connect-timeout');var express=require(_0xfaee('0x3'));var router=express[_0xfaee('0x4')]();var fs_extra=require(_0xfaee('0x5'));var auth=require(_0xfaee('0x6'));var interaction=require(_0xfaee('0x7'));var config=require('../../config/environment');var controller=require(_0xfaee('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0xfaee('0x9')]);router[_0xfaee('0xa')]('/:id',auth[_0xfaee('0xb')](),controller[_0xfaee('0xc')]);router[_0xfaee('0xa')]('/:id/configurations',auth['isAuthenticated'](),controller[_0xfaee('0xd')]);router[_0xfaee('0xa')]('/:id/fields',auth[_0xfaee('0xb')](),controller[_0xfaee('0xe')]);router[_0xfaee('0xf')]('/',auth[_0xfaee('0xb')](),controller[_0xfaee('0x10')]);router['post']('/:id/configurations',auth[_0xfaee('0xb')](),controller[_0xfaee('0x11')]);router[_0xfaee('0x12')]('/:id',auth['isAuthenticated'](),controller[_0xfaee('0x13')]);router[_0xfaee('0x14')](_0xfaee('0x15'),auth[_0xfaee('0xb')](),controller[_0xfaee('0x16')]);module[_0xfaee('0x17')]=router;
\ No newline at end of file
+var _0x39e0=['/:id','isAuthenticated','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','destroy','exports','path','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intVtigerAccount.controller','get','index'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x39e0,0x1c5));var _0x039e=function(_0x315714,_0xe6f8e3){_0x315714=_0x315714-0x0;var _0x159f71=_0x39e0[_0x315714];return _0x159f71;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x039e('0x0'));var timeout=require('connect-timeout');var express=require(_0x039e('0x1'));var router=express[_0x039e('0x2')]();var fs_extra=require(_0x039e('0x3'));var auth=require(_0x039e('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x039e('0x5'));var controller=require(_0x039e('0x6'));router[_0x039e('0x7')]('/',auth['isAuthenticated'](),controller[_0x039e('0x8')]);router[_0x039e('0x7')](_0x039e('0x9'),auth[_0x039e('0xa')](),controller[_0x039e('0xb')]);router[_0x039e('0x7')](_0x039e('0xc'),auth[_0x039e('0xa')](),controller[_0x039e('0xd')]);router['get'](_0x039e('0xe'),auth[_0x039e('0xa')](),controller[_0x039e('0xf')]);router[_0x039e('0x10')]('/',auth[_0x039e('0xa')](),controller[_0x039e('0x11')]);router['post'](_0x039e('0xc'),auth[_0x039e('0xa')](),controller[_0x039e('0x12')]);router[_0x039e('0x13')]('/:id',auth[_0x039e('0xa')](),controller['update']);router['delete'](_0x039e('0x9'),auth[_0x039e('0xa')](),controller[_0x039e('0x14')]);module[_0x039e('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x85f6=['STRING','HelpDesk','sequelize','exports'];(function(_0x5e34ec,_0x474df7){var _0x2e8e0f=function(_0x129ddf){while(--_0x129ddf){_0x5e34ec['push'](_0x5e34ec['shift']());}};_0x2e8e0f(++_0x474df7);}(_0x85f6,0x192));var _0x685f=function(_0xe84712,_0x443a27){_0xe84712=_0xe84712-0x0;var _0x5a5797=_0x85f6[_0xe84712];return _0x5a5797;};'use strict';var Sequelize=require(_0x685f('0x0'));module[_0x685f('0x1')]={'name':{'type':Sequelize[_0x685f('0x2')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize['STRING'],'allowNull':![]},'moduleName':{'type':Sequelize[_0x685f('0x2')],'allowNull':![],'defaultValue':_0x685f('0x3')},'remoteUri':{'type':Sequelize[_0x685f('0x2')],'allowNull':![]},'serverUrl':{'type':Sequelize[_0x685f('0x2')],'allowNull':![]},'accessKey':{'type':Sequelize[_0x685f('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0xdd07=['STRING','HelpDesk','sequelize'];(function(_0x11d405,_0x5ba595){var _0x17210a=function(_0x548e11){while(--_0x548e11){_0x11d405['push'](_0x11d405['shift']());}};_0x17210a(++_0x5ba595);}(_0xdd07,0x155));var _0x7dd0=function(_0x45bf86,_0x75586e){_0x45bf86=_0x45bf86-0x0;var _0x1f02b7=_0xdd07[_0x45bf86];return _0x1f02b7;};'use strict';var Sequelize=require(_0x7dd0('0x0'));module['exports']={'name':{'type':Sequelize[_0x7dd0('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x7dd0('0x1')]},'username':{'type':Sequelize[_0x7dd0('0x1')],'allowNull':![]},'moduleName':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x7dd0('0x2')},'remoteUri':{'type':Sequelize[_0x7dd0('0x1')],'allowNull':![]},'serverUrl':{'type':Sequelize[_0x7dd0('0x1')],'allowNull':![]},'accessKey':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc373=['fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','undefined','limit','count','offset','set','apply','reject','save','then','destroy','error','stack','name','send','index','VtigerAccount','type','key','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','rawAttributes','options','find','body','update','getConfigurations','findOne','VtigerConfiguration','getSubjects','getDescriptions','channel','create','VtigerField','Subjects','Descriptions','getFields','description','remoteUri','serverUrl','accessKey','username','moduleName','slice','lastIndexOf','format','getchallenge','success','login','result','token','GET','describe','sessionName','autogenerated','reference','owner','remove','editable','false','label','startsWith','cf_','picklist','picklistValues','log','vTiger\x20error:\x20','test','statusCode','stringify','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','path','to-csv','ejs'];(function(_0x41db05,_0x48a877){var _0x2a8247=function(_0x36d1b8){while(--_0x36d1b8){_0x41db05['push'](_0x41db05['shift']());}};_0x2a8247(++_0x48a877);}(_0xc373,0xeb));var _0x3c37=function(_0x40aaa4,_0x3b22f4){_0x40aaa4=_0x40aaa4-0x0;var _0x4e21e5=_0xc373[_0x40aaa4];return _0x4e21e5;};'use strict';var emlformat=require(_0x3c37('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3c37('0x1'));var jsonpatch=require(_0x3c37('0x2'));var rp=require(_0x3c37('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x3c37('0x4'));var util=require(_0x3c37('0x5'));var path=require(_0x3c37('0x6'));var sox=require('sox');var csv=require(_0x3c37('0x7'));var ejs=require(_0x3c37('0x8'));var fs=require('fs');var fs_extra=require(_0x3c37('0x9'));var _=require(_0x3c37('0xa'));var squel=require('squel');var crypto=require(_0x3c37('0xb'));var jsforce=require(_0x3c37('0xc'));var deskjs=require(_0x3c37('0xd'));var toCsv=require(_0x3c37('0x7'));var querystring=require('querystring');var Papa=require(_0x3c37('0xe'));var Redis=require(_0x3c37('0xf'));var authService=require(_0x3c37('0x10'));var qs=require(_0x3c37('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3c37('0x12'));var logger=require(_0x3c37('0x13'))(_0x3c37('0x14'));var utils=require('../../config/utils');var config=require(_0x3c37('0x15'));var licenseUtil=require(_0x3c37('0x16'));var db=require(_0x3c37('0x17'))['db'];var integrations=require(_0x3c37('0x18'));function respondWithStatusCode(_0x2d4b22,_0x185858){_0x185858=_0x185858||0xcc;return function(_0x1fa4dd){if(_0x1fa4dd){return _0x2d4b22[_0x3c37('0x19')](_0x185858);}return _0x2d4b22[_0x3c37('0x1a')](_0x185858)[_0x3c37('0x1b')]();};}function respondWithResult(_0x53715e,_0x41ffe1){_0x41ffe1=_0x41ffe1||0xc8;return function(_0x4dc76b){if(_0x4dc76b){return _0x53715e['status'](_0x41ffe1)[_0x3c37('0x1c')](_0x4dc76b);}};}function respondWithFilteredResult(_0x530aa8,_0x13e5e9){return function(_0x321cca){if(_0x321cca){var _0x44eb31=typeof _0x13e5e9['offset']===_0x3c37('0x1d')&&typeof _0x13e5e9[_0x3c37('0x1e')]===_0x3c37('0x1d');var _0x20ed51=_0x321cca[_0x3c37('0x1f')];var _0x30abdc=_0x44eb31?0x0:_0x13e5e9[_0x3c37('0x20')];var _0x1deb0d=_0x44eb31?_0x321cca[_0x3c37('0x1f')]:_0x13e5e9['offset']+_0x13e5e9[_0x3c37('0x1e')];var _0x243562;if(_0x1deb0d>=_0x20ed51){_0x1deb0d=_0x20ed51;_0x243562=0xc8;}else{_0x243562=0xce;}_0x530aa8['status'](_0x243562);return _0x530aa8[_0x3c37('0x21')]('Content-Range',_0x30abdc+'-'+_0x1deb0d+'/'+_0x20ed51)[_0x3c37('0x1c')](_0x321cca);}return null;};}function patchUpdates(_0x3b0a18){return function(_0x385309){try{jsonpatch[_0x3c37('0x22')](_0x385309,_0x3b0a18,!![]);}catch(_0xc1ba10){return BPromise[_0x3c37('0x23')](_0xc1ba10);}return _0x385309[_0x3c37('0x24')]();};}function saveUpdates(_0x3ee59d,_0xd89771){return function(_0x5a4d1b){if(_0x5a4d1b){return _0x5a4d1b['update'](_0x3ee59d)[_0x3c37('0x25')](function(_0xbbb0d9){return _0xbbb0d9;});}return null;};}function removeEntity(_0x126101,_0x5a5028){return function(_0x527c5b){if(_0x527c5b){return _0x527c5b[_0x3c37('0x26')]()['then'](function(){_0x126101['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1e8b1d,_0x35729b){return function(_0x3524fb){if(!_0x3524fb){_0x1e8b1d[_0x3c37('0x19')](0x194);}return _0x3524fb;};}function handleError(_0x2024a1,_0x34563b){_0x34563b=_0x34563b||0x1f4;return function(_0x440130){logger[_0x3c37('0x27')](_0x440130[_0x3c37('0x28')]);if(_0x440130[_0x3c37('0x29')]){delete _0x440130[_0x3c37('0x29')];}_0x2024a1[_0x3c37('0x1a')](_0x34563b)[_0x3c37('0x2a')](_0x440130);};}exports[_0x3c37('0x2b')]=function(_0x447042,_0x34f6da){var _0x1240f6={},_0x4adc9b={},_0x537110={'count':0x0,'rows':[]};var _0x194ac9=_['map'](db[_0x3c37('0x2c')]['rawAttributes'],function(_0x5c5b2f){return{'name':_0x5c5b2f['fieldName'],'type':_0x5c5b2f[_0x3c37('0x2d')][_0x3c37('0x2e')]};});_0x4adc9b[_0x3c37('0x2f')]=_[_0x3c37('0x30')](_0x194ac9,'name');_0x4adc9b['query']=_[_0x3c37('0x31')](_0x447042[_0x3c37('0x32')]);_0x4adc9b[_0x3c37('0x33')]=_[_0x3c37('0x34')](_0x4adc9b[_0x3c37('0x2f')],_0x4adc9b['query']);_0x1240f6[_0x3c37('0x35')]=_[_0x3c37('0x34')](_0x4adc9b[_0x3c37('0x2f')],qs[_0x3c37('0x36')](_0x447042['query'][_0x3c37('0x36')]));_0x1240f6['attributes']=_0x1240f6['attributes'][_0x3c37('0x37')]?_0x1240f6[_0x3c37('0x35')]:_0x4adc9b[_0x3c37('0x2f')];if(!_0x447042[_0x3c37('0x32')][_0x3c37('0x38')](_0x3c37('0x39'))){_0x1240f6[_0x3c37('0x1e')]=qs[_0x3c37('0x1e')](_0x447042[_0x3c37('0x32')][_0x3c37('0x1e')]);_0x1240f6[_0x3c37('0x20')]=qs[_0x3c37('0x20')](_0x447042[_0x3c37('0x32')][_0x3c37('0x20')]);}_0x1240f6[_0x3c37('0x3a')]=qs['sort'](_0x447042['query'][_0x3c37('0x3b')]);_0x1240f6[_0x3c37('0x3c')]=qs[_0x3c37('0x33')](_[_0x3c37('0x3d')](_0x447042[_0x3c37('0x32')],_0x4adc9b[_0x3c37('0x33')]),_0x194ac9);if(_0x447042[_0x3c37('0x32')][_0x3c37('0x3e')]){_0x1240f6[_0x3c37('0x3c')]=_[_0x3c37('0x3f')](_0x1240f6[_0x3c37('0x3c')],{'$or':_['map'](_0x194ac9,function(_0x430b77){if(_0x430b77['type']!==_0x3c37('0x40')){var _0x267f19={};_0x267f19[_0x430b77['name']]={'$like':'%'+_0x447042[_0x3c37('0x32')][_0x3c37('0x3e')]+'%'};return _0x267f19;}})});}_0x1240f6=_[_0x3c37('0x3f')]({},_0x1240f6,_0x447042['options']);var _0x490e70={'where':_0x1240f6[_0x3c37('0x3c')]};return db[_0x3c37('0x2c')][_0x3c37('0x1f')](_0x490e70)[_0x3c37('0x25')](function(_0x3c6ddf){_0x537110[_0x3c37('0x1f')]=_0x3c6ddf;if(_0x447042[_0x3c37('0x32')][_0x3c37('0x41')]){_0x1240f6[_0x3c37('0x42')]=[{'all':!![]}];}return db['VtigerAccount'][_0x3c37('0x43')](_0x1240f6);})[_0x3c37('0x25')](function(_0x315139){_0x537110[_0x3c37('0x44')]=_0x315139;return _0x537110;})[_0x3c37('0x25')](respondWithFilteredResult(_0x34f6da,_0x1240f6))[_0x3c37('0x45')](handleError(_0x34f6da,null));};exports[_0x3c37('0x46')]=function(_0x5bde8c,_0x187a69){var _0x4d1f2e={'raw':![],'where':{'id':_0x5bde8c[_0x3c37('0x47')]['id']}},_0x48d9eb={};_0x48d9eb[_0x3c37('0x2f')]=_['keys'](db[_0x3c37('0x2c')][_0x3c37('0x48')]);_0x48d9eb['query']=_[_0x3c37('0x31')](_0x5bde8c[_0x3c37('0x32')]);_0x48d9eb[_0x3c37('0x33')]=_[_0x3c37('0x34')](_0x48d9eb[_0x3c37('0x2f')],_0x48d9eb[_0x3c37('0x32')]);_0x4d1f2e[_0x3c37('0x35')]=_['intersection'](_0x48d9eb['model'],qs[_0x3c37('0x36')](_0x5bde8c[_0x3c37('0x32')][_0x3c37('0x36')]));_0x4d1f2e[_0x3c37('0x35')]=_0x4d1f2e[_0x3c37('0x35')][_0x3c37('0x37')]?_0x4d1f2e[_0x3c37('0x35')]:_0x48d9eb['model'];if(_0x5bde8c['query']['includeAll']){_0x4d1f2e[_0x3c37('0x42')]=[{'all':!![]}];}_0x4d1f2e=_[_0x3c37('0x3f')]({},_0x4d1f2e,_0x5bde8c[_0x3c37('0x49')]);return db[_0x3c37('0x2c')][_0x3c37('0x4a')](_0x4d1f2e)[_0x3c37('0x25')](handleEntityNotFound(_0x187a69,null))[_0x3c37('0x25')](respondWithResult(_0x187a69,null))[_0x3c37('0x45')](handleError(_0x187a69,null));};exports['create']=function(_0x37b339,_0x132203){return db['VtigerAccount']['create'](_0x37b339[_0x3c37('0x4b')],{})[_0x3c37('0x25')](respondWithResult(_0x132203,0xc9))[_0x3c37('0x45')](handleError(_0x132203,null));};exports[_0x3c37('0x4c')]=function(_0x1eff09,_0x5cd252){if(_0x1eff09[_0x3c37('0x4b')]['id']){delete _0x1eff09['body']['id'];}return db[_0x3c37('0x2c')][_0x3c37('0x4a')]({'where':{'id':_0x1eff09[_0x3c37('0x47')]['id']}})[_0x3c37('0x25')](handleEntityNotFound(_0x5cd252,null))[_0x3c37('0x25')](saveUpdates(_0x1eff09[_0x3c37('0x4b')],null))[_0x3c37('0x25')](respondWithResult(_0x5cd252,null))[_0x3c37('0x45')](handleError(_0x5cd252,null));};exports[_0x3c37('0x26')]=function(_0x476060,_0x29f069){return db['VtigerAccount'][_0x3c37('0x4a')]({'where':{'id':_0x476060[_0x3c37('0x47')]['id']}})[_0x3c37('0x25')](handleEntityNotFound(_0x29f069,null))[_0x3c37('0x25')](removeEntity(_0x29f069,null))[_0x3c37('0x45')](handleError(_0x29f069,null));};exports[_0x3c37('0x4d')]=function(_0xea8353,_0x2089e8,_0x6f3341){var _0x53e0cd={};var _0x34bf60={};var _0x117205;var _0x501535;return db[_0x3c37('0x2c')][_0x3c37('0x4e')]({'where':{'id':_0xea8353[_0x3c37('0x47')]['id']}})[_0x3c37('0x25')](handleEntityNotFound(_0x2089e8,null))[_0x3c37('0x25')](function(_0x2f5d5d){if(_0x2f5d5d){_0x117205=_0x2f5d5d;_0x34bf60[_0x3c37('0x2f')]=_[_0x3c37('0x31')](db[_0x3c37('0x4f')][_0x3c37('0x48')]);_0x34bf60[_0x3c37('0x32')]=_['keys'](_0xea8353['query']);_0x34bf60[_0x3c37('0x33')]=_[_0x3c37('0x34')](_0x34bf60[_0x3c37('0x2f')],_0x34bf60[_0x3c37('0x32')]);_0x53e0cd[_0x3c37('0x35')]=_[_0x3c37('0x34')](_0x34bf60[_0x3c37('0x2f')],qs['fields'](_0xea8353[_0x3c37('0x32')][_0x3c37('0x36')]));_0x53e0cd[_0x3c37('0x35')]=_0x53e0cd[_0x3c37('0x35')]['length']?_0x53e0cd[_0x3c37('0x35')]:_0x34bf60[_0x3c37('0x2f')];_0x53e0cd['order']=qs['sort'](_0xea8353[_0x3c37('0x32')][_0x3c37('0x3b')]);_0x53e0cd[_0x3c37('0x3c')]=qs['filters'](_[_0x3c37('0x3d')](_0xea8353[_0x3c37('0x32')],_0x34bf60[_0x3c37('0x33')]));if(_0xea8353['query'][_0x3c37('0x3e')]){_0x53e0cd[_0x3c37('0x3c')]=_[_0x3c37('0x3f')](_0x53e0cd[_0x3c37('0x3c')],{'$or':_[_0x3c37('0x30')](_0x53e0cd[_0x3c37('0x35')],function(_0x28caf6){var _0x239afa={};_0x239afa[_0x28caf6]={'$like':'%'+_0xea8353[_0x3c37('0x32')][_0x3c37('0x3e')]+'%'};return _0x239afa;})});}_0x53e0cd=_[_0x3c37('0x3f')]({},_0x53e0cd,_0xea8353[_0x3c37('0x49')]);return _0x117205[_0x3c37('0x4d')](_0x53e0cd);}})[_0x3c37('0x25')](function(_0x1457e7){if(_0x1457e7){_0x501535=_0x1457e7[_0x3c37('0x37')];if(!_0xea8353[_0x3c37('0x32')][_0x3c37('0x38')]('nolimit')){_0x53e0cd[_0x3c37('0x1e')]=qs[_0x3c37('0x1e')](_0xea8353[_0x3c37('0x32')][_0x3c37('0x1e')]);_0x53e0cd[_0x3c37('0x20')]=qs[_0x3c37('0x20')](_0xea8353[_0x3c37('0x32')]['offset']);}return _0x117205[_0x3c37('0x4d')](_0x53e0cd);}})[_0x3c37('0x25')](function(_0x34f9d2){if(_0x34f9d2){return _0x34f9d2?{'count':_0x501535,'rows':_0x34f9d2}:null;}})[_0x3c37('0x25')](respondWithResult(_0x2089e8,null))[_0x3c37('0x45')](handleError(_0x2089e8,null));};exports['addConfiguration']=function(_0x15f0af,_0x287f8e,_0x1d359c){if(_0x15f0af['body']['id']){delete _0x15f0af[_0x3c37('0x4b')]['id'];}return db[_0x3c37('0x2c')]['findOne']({'where':{'id':_0x15f0af[_0x3c37('0x47')]['id']}})[_0x3c37('0x25')](handleEntityNotFound(_0x287f8e,null))[_0x3c37('0x25')](function(_0x487f95){if(_0x487f95){_0x15f0af['body']['AccountId']=_0x487f95['id'];_0x15f0af['body']['Subjects']=integrations[_0x3c37('0x50')](_0x15f0af['body']['channel'],_0x15f0af[_0x3c37('0x4b')]['type']);_0x15f0af['body']['Descriptions']=integrations[_0x3c37('0x51')](_0x15f0af[_0x3c37('0x4b')][_0x3c37('0x52')],_0x15f0af[_0x3c37('0x4b')]['type']);return db['VtigerConfiguration'][_0x3c37('0x53')](_0x15f0af[_0x3c37('0x4b')],{'include':[{'model':db[_0x3c37('0x54')],'as':_0x3c37('0x55')},{'model':db[_0x3c37('0x54')],'as':_0x3c37('0x56')}]});}return null;})[_0x3c37('0x25')](respondWithResult(_0x287f8e,null))['catch'](handleError(_0x287f8e,null));};var md5=require('md5');exports[_0x3c37('0x57')]=function(_0x2f50d8,_0x484186,_0x2359f8){var _0x3baa18=null;var _0x5e69bc=null;var _0x4f0043=null;var _0x5a4097=null;var _0xf12d22='';return db[_0x3c37('0x2c')]['findOne']({'where':{'id':_0x2f50d8['params']['id']},'attributes':['id','name','username',_0x3c37('0x58'),'moduleName',_0x3c37('0x59'),_0x3c37('0x5a'),_0x3c37('0x5b')]})[_0x3c37('0x25')](handleEntityNotFound(_0x484186,null))[_0x3c37('0x25')](function(_0x5c3a1a){if(_0x5c3a1a){_0x3baa18=_0x5c3a1a[_0x3c37('0x5c')];_0x5e69bc=_0x5c3a1a[_0x3c37('0x5b')];_0x4f0043=_0x5c3a1a[_0x3c37('0x5d')];_0xf12d22=_0x5c3a1a['remoteUri'];var _0x2e2653=_0xf12d22[_0x3c37('0x5e')](-0x1);if(_0x2e2653==='/'){_0xf12d22=_0xf12d22['substring'](0x0,_0xf12d22[_0x3c37('0x5f')](_0x2e2653));}_0x5a4097=util[_0x3c37('0x60')]('%s/webservice.php',_0xf12d22);var _0x49bc51={'method':'GET','uri':_0x5a4097,'qs':{'operation':_0x3c37('0x61'),'username':_0x5c3a1a['username']},'json':!![]};return rp(_0x49bc51);}})['then'](function(_0xafe783){if(_0xafe783[_0x3c37('0x62')]){var _0x3f9e4a={'method':'POST','uri':_0x5a4097,'form':{'operation':_0x3c37('0x63'),'username':_0x3baa18,'accessKey':md5(_0xafe783[_0x3c37('0x64')][_0x3c37('0x65')]+_0x5e69bc)},'json':!![]};return rp(_0x3f9e4a);}})['then'](function(_0x10caa8){if(_0x10caa8[_0x3c37('0x62')]){var _0x8c477f={'method':_0x3c37('0x66'),'uri':_0x5a4097,'qs':{'operation':_0x3c37('0x67'),'username':_0x3baa18,'sessionName':_0x10caa8[_0x3c37('0x64')][_0x3c37('0x68')],'elementType':_0x4f0043},'json':!![]};return rp(_0x8c477f);}})[_0x3c37('0x25')](function(_0x5c7d19){if(_0x5c7d19[_0x3c37('0x62')]){var _0x7f6281=[_0x3c37('0x69'),_0x3c37('0x6a'),_0x3c37('0x6b')];_[_0x3c37('0x6c')](_0x5c7d19[_0x3c37('0x64')][_0x3c37('0x36')],function(_0xd8b5a){return _0x7f6281['includes'](_0xd8b5a[_0x3c37('0x2d')][_0x3c37('0x29')]);});_[_0x3c37('0x6c')](_0x5c7d19[_0x3c37('0x64')][_0x3c37('0x36')],function(_0x389d25){return _0x389d25[_0x3c37('0x6d')]===_0x3c37('0x6e');});return{'count':_0x5c7d19[_0x3c37('0x64')][_0x3c37('0x36')][_0x3c37('0x37')],'rows':_[_0x3c37('0x30')](_0x5c7d19[_0x3c37('0x64')]['fields'],function(_0x10ac47){return{'id':_0x10ac47[_0x3c37('0x29')],'name':_0x10ac47[_0x3c37('0x6f')],'custom':_[_0x3c37('0x70')](_0x10ac47[_0x3c37('0x29')],_0x3c37('0x71'))?!![]:![],'options':_0x10ac47['type'][_0x3c37('0x29')]===_0x3c37('0x72')&&_0x10ac47[_0x3c37('0x2d')]['picklistValues'][_0x3c37('0x37')]>0x0?_[_0x3c37('0x30')](_0x10ac47[_0x3c37('0x2d')][_0x3c37('0x73')],function(_0x1418f1){return{'name':_0x1418f1[_0x3c37('0x6f')],'value':_0x1418f1['value']};}):[]};})};}})[_0x3c37('0x25')](respondWithResult(_0x484186,null))['catch'](function(_0x1a41c3){console[_0x3c37('0x74')](_0x3c37('0x75')+_0x1a41c3);var _0x2d47c6=_0x2f50d8[_0x3c37('0x32')][_0x3c37('0x76')]?0x1f4:_0x1a41c3[_0x3c37('0x77')]||0x1f4;logger[_0x3c37('0x27')]('getFields,\x20%s,\x20%s,\x20%s',_0x3c37('0x57'),_0x2d47c6,JSON[_0x3c37('0x78')](_0x1a41c3));delete _0x1a41c3['name'];if(_0x2d47c6===0x191){_0x2d47c6=0x190;}_0x484186[_0x3c37('0x1a')](_0x2d47c6)[_0x3c37('0x2a')](_0x2f50d8[_0x3c37('0x32')][_0x3c37('0x76')]?{'message':_0x3c37('0x79'),'statusCode':_0x1a41c3['statusCode']}:_0x1a41c3);});};
\ No newline at end of file
+var _0x4f98=['show','params','keys','options','find','create','body','destroy','findOne','pick','getConfigurations','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','VtigerConfiguration','VtigerField','username','description','accessKey','moduleName','slice','substring','lastIndexOf','%s/webservice.php','GET','getchallenge','success','login','result','token','describe','sessionName','autogenerated','reference','owner','remove','includes','editable','label','startsWith','picklist','picklistValues','value','log','vTiger\x20error:\x20','test','statusCode','getFields','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','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','../../components/integrations/configuration','sendStatus','end','status','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','VtigerAccount','rawAttributes','fieldName','type','key','model','map','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','merge','filter','includeAll','include','findAll','rows','catch'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x4f98,0x131));var _0x84f9=function(_0x62c958,_0x2bfdbc){_0x62c958=_0x62c958-0x0;var _0x57ec61=_0x4f98[_0x62c958];return _0x57ec61;};'use strict';var emlformat=require(_0x84f9('0x0'));var rimraf=require(_0x84f9('0x1'));var zipdir=require(_0x84f9('0x2'));var jsonpatch=require(_0x84f9('0x3'));var rp=require(_0x84f9('0x4'));var moment=require(_0x84f9('0x5'));var BPromise=require(_0x84f9('0x6'));var Mustache=require(_0x84f9('0x7'));var util=require('util');var path=require(_0x84f9('0x8'));var sox=require(_0x84f9('0x9'));var csv=require(_0x84f9('0xa'));var ejs=require(_0x84f9('0xb'));var fs=require('fs');var fs_extra=require(_0x84f9('0xc'));var _=require(_0x84f9('0xd'));var squel=require('squel');var crypto=require(_0x84f9('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x84f9('0xf'));var toCsv=require('to-csv');var querystring=require(_0x84f9('0x10'));var Papa=require(_0x84f9('0x11'));var Redis=require(_0x84f9('0x12'));var authService=require(_0x84f9('0x13'));var qs=require(_0x84f9('0x14'));var as=require(_0x84f9('0x15'));var hardwareService=require(_0x84f9('0x16'));var logger=require(_0x84f9('0x17'))(_0x84f9('0x18'));var utils=require('../../config/utils');var config=require(_0x84f9('0x19'));var licenseUtil=require(_0x84f9('0x1a'));var db=require(_0x84f9('0x1b'))['db'];var integrations=require(_0x84f9('0x1c'));function respondWithStatusCode(_0x59965c,_0x271674){_0x271674=_0x271674||0xcc;return function(_0x51e962){if(_0x51e962){return _0x59965c[_0x84f9('0x1d')](_0x271674);}return _0x59965c['status'](_0x271674)[_0x84f9('0x1e')]();};}function respondWithResult(_0x5af413,_0x5c7698){_0x5c7698=_0x5c7698||0xc8;return function(_0x5c73ca){if(_0x5c73ca){return _0x5af413[_0x84f9('0x1f')](_0x5c7698)[_0x84f9('0x20')](_0x5c73ca);}};}function respondWithFilteredResult(_0x38a357,_0xe90a34){return function(_0x44397e){if(_0x44397e){var _0x4ee7a4=typeof _0xe90a34['offset']==='undefined'&&typeof _0xe90a34[_0x84f9('0x21')]===_0x84f9('0x22');var _0x39ae12=_0x44397e[_0x84f9('0x23')];var _0x51bcc3=_0x4ee7a4?0x0:_0xe90a34[_0x84f9('0x24')];var _0x42ba14=_0x4ee7a4?_0x44397e[_0x84f9('0x23')]:_0xe90a34[_0x84f9('0x24')]+_0xe90a34['limit'];var _0x35c6c4;if(_0x42ba14>=_0x39ae12){_0x42ba14=_0x39ae12;_0x35c6c4=0xc8;}else{_0x35c6c4=0xce;}_0x38a357['status'](_0x35c6c4);return _0x38a357[_0x84f9('0x25')](_0x84f9('0x26'),_0x51bcc3+'-'+_0x42ba14+'/'+_0x39ae12)['json'](_0x44397e);}return null;};}function patchUpdates(_0x240524){return function(_0x29d538){try{jsonpatch[_0x84f9('0x27')](_0x29d538,_0x240524,!![]);}catch(_0x3a2e01){return BPromise[_0x84f9('0x28')](_0x3a2e01);}return _0x29d538[_0x84f9('0x29')]();};}function saveUpdates(_0x19ac10,_0x467131){return function(_0x9c6134){if(_0x9c6134){return _0x9c6134[_0x84f9('0x2a')](_0x19ac10)[_0x84f9('0x2b')](function(_0x260bb8){return _0x260bb8;});}return null;};}function removeEntity(_0x5db85c,_0x5639df){return function(_0x12bbcb){if(_0x12bbcb){return _0x12bbcb['destroy']()[_0x84f9('0x2b')](function(){_0x5db85c[_0x84f9('0x1f')](0xcc)[_0x84f9('0x1e')]();});}};}function handleEntityNotFound(_0x4426d3,_0x3c4b30){return function(_0x9c586d){if(!_0x9c586d){_0x4426d3[_0x84f9('0x1d')](0x194);}return _0x9c586d;};}function handleError(_0x447e89,_0x416b20){_0x416b20=_0x416b20||0x1f4;return function(_0x4ddc56){logger[_0x84f9('0x2c')](_0x4ddc56[_0x84f9('0x2d')]);if(_0x4ddc56[_0x84f9('0x2e')]){delete _0x4ddc56[_0x84f9('0x2e')];}_0x447e89['status'](_0x416b20)[_0x84f9('0x2f')](_0x4ddc56);};}exports['index']=function(_0x180dfb,_0x3269f6){var _0x5dfcd8={},_0x28a582={},_0x29fd8f={'count':0x0,'rows':[]};var _0x200b43=_['map'](db[_0x84f9('0x30')][_0x84f9('0x31')],function(_0x11369a){return{'name':_0x11369a[_0x84f9('0x32')],'type':_0x11369a[_0x84f9('0x33')][_0x84f9('0x34')]};});_0x28a582[_0x84f9('0x35')]=_[_0x84f9('0x36')](_0x200b43,_0x84f9('0x2e'));_0x28a582['query']=_['keys'](_0x180dfb[_0x84f9('0x37')]);_0x28a582['filters']=_[_0x84f9('0x38')](_0x28a582['model'],_0x28a582['query']);_0x5dfcd8['attributes']=_[_0x84f9('0x38')](_0x28a582[_0x84f9('0x35')],qs['fields'](_0x180dfb['query'][_0x84f9('0x39')]));_0x5dfcd8[_0x84f9('0x3a')]=_0x5dfcd8[_0x84f9('0x3a')][_0x84f9('0x3b')]?_0x5dfcd8[_0x84f9('0x3a')]:_0x28a582['model'];if(!_0x180dfb[_0x84f9('0x37')][_0x84f9('0x3c')](_0x84f9('0x3d'))){_0x5dfcd8[_0x84f9('0x21')]=qs[_0x84f9('0x21')](_0x180dfb[_0x84f9('0x37')][_0x84f9('0x21')]);_0x5dfcd8[_0x84f9('0x24')]=qs['offset'](_0x180dfb[_0x84f9('0x37')]['offset']);}_0x5dfcd8[_0x84f9('0x3e')]=qs[_0x84f9('0x3f')](_0x180dfb[_0x84f9('0x37')][_0x84f9('0x3f')]);_0x5dfcd8[_0x84f9('0x40')]=qs[_0x84f9('0x41')](_['pick'](_0x180dfb[_0x84f9('0x37')],_0x28a582[_0x84f9('0x41')]),_0x200b43);if(_0x180dfb[_0x84f9('0x37')]['filter']){_0x5dfcd8[_0x84f9('0x40')]=_[_0x84f9('0x42')](_0x5dfcd8[_0x84f9('0x40')],{'$or':_[_0x84f9('0x36')](_0x200b43,function(_0x40ee0d){if(_0x40ee0d[_0x84f9('0x33')]!=='VIRTUAL'){var _0x414964={};_0x414964[_0x40ee0d[_0x84f9('0x2e')]]={'$like':'%'+_0x180dfb[_0x84f9('0x37')][_0x84f9('0x43')]+'%'};return _0x414964;}})});}_0x5dfcd8=_[_0x84f9('0x42')]({},_0x5dfcd8,_0x180dfb['options']);var _0x2c4325={'where':_0x5dfcd8['where']};return db['VtigerAccount'][_0x84f9('0x23')](_0x2c4325)['then'](function(_0x5767a2){_0x29fd8f['count']=_0x5767a2;if(_0x180dfb[_0x84f9('0x37')][_0x84f9('0x44')]){_0x5dfcd8[_0x84f9('0x45')]=[{'all':!![]}];}return db[_0x84f9('0x30')][_0x84f9('0x46')](_0x5dfcd8);})[_0x84f9('0x2b')](function(_0x2365f0){_0x29fd8f[_0x84f9('0x47')]=_0x2365f0;return _0x29fd8f;})[_0x84f9('0x2b')](respondWithFilteredResult(_0x3269f6,_0x5dfcd8))[_0x84f9('0x48')](handleError(_0x3269f6,null));};exports[_0x84f9('0x49')]=function(_0x36dd90,_0x1052c5){var _0x27cb60={'raw':![],'where':{'id':_0x36dd90[_0x84f9('0x4a')]['id']}},_0x379b7b={};_0x379b7b[_0x84f9('0x35')]=_[_0x84f9('0x4b')](db[_0x84f9('0x30')][_0x84f9('0x31')]);_0x379b7b[_0x84f9('0x37')]=_['keys'](_0x36dd90[_0x84f9('0x37')]);_0x379b7b[_0x84f9('0x41')]=_[_0x84f9('0x38')](_0x379b7b[_0x84f9('0x35')],_0x379b7b[_0x84f9('0x37')]);_0x27cb60['attributes']=_[_0x84f9('0x38')](_0x379b7b[_0x84f9('0x35')],qs[_0x84f9('0x39')](_0x36dd90[_0x84f9('0x37')][_0x84f9('0x39')]));_0x27cb60[_0x84f9('0x3a')]=_0x27cb60['attributes']['length']?_0x27cb60['attributes']:_0x379b7b['model'];if(_0x36dd90['query']['includeAll']){_0x27cb60[_0x84f9('0x45')]=[{'all':!![]}];}_0x27cb60=_[_0x84f9('0x42')]({},_0x27cb60,_0x36dd90[_0x84f9('0x4c')]);return db['VtigerAccount'][_0x84f9('0x4d')](_0x27cb60)[_0x84f9('0x2b')](handleEntityNotFound(_0x1052c5,null))[_0x84f9('0x2b')](respondWithResult(_0x1052c5,null))[_0x84f9('0x48')](handleError(_0x1052c5,null));};exports['create']=function(_0x55bed1,_0x4ca753){return db[_0x84f9('0x30')][_0x84f9('0x4e')](_0x55bed1[_0x84f9('0x4f')],{})[_0x84f9('0x2b')](respondWithResult(_0x4ca753,0xc9))['catch'](handleError(_0x4ca753,null));};exports[_0x84f9('0x2a')]=function(_0x3bd1db,_0x11c321){if(_0x3bd1db[_0x84f9('0x4f')]['id']){delete _0x3bd1db[_0x84f9('0x4f')]['id'];}return db[_0x84f9('0x30')][_0x84f9('0x4d')]({'where':{'id':_0x3bd1db['params']['id']}})[_0x84f9('0x2b')](handleEntityNotFound(_0x11c321,null))[_0x84f9('0x2b')](saveUpdates(_0x3bd1db[_0x84f9('0x4f')],null))['then'](respondWithResult(_0x11c321,null))[_0x84f9('0x48')](handleError(_0x11c321,null));};exports[_0x84f9('0x50')]=function(_0x5836ff,_0x30d671){return db['VtigerAccount'][_0x84f9('0x4d')]({'where':{'id':_0x5836ff[_0x84f9('0x4a')]['id']}})['then'](handleEntityNotFound(_0x30d671,null))[_0x84f9('0x2b')](removeEntity(_0x30d671,null))[_0x84f9('0x48')](handleError(_0x30d671,null));};exports['getConfigurations']=function(_0x4544aa,_0x2c62b7,_0x1677b9){var _0x284153={};var _0x18ace7={};var _0x28e447;var _0x2d10bc;return db['VtigerAccount'][_0x84f9('0x51')]({'where':{'id':_0x4544aa['params']['id']}})['then'](handleEntityNotFound(_0x2c62b7,null))[_0x84f9('0x2b')](function(_0x57e9e7){if(_0x57e9e7){_0x28e447=_0x57e9e7;_0x18ace7[_0x84f9('0x35')]=_['keys'](db['VtigerConfiguration'][_0x84f9('0x31')]);_0x18ace7[_0x84f9('0x37')]=_[_0x84f9('0x4b')](_0x4544aa[_0x84f9('0x37')]);_0x18ace7[_0x84f9('0x41')]=_['intersection'](_0x18ace7[_0x84f9('0x35')],_0x18ace7[_0x84f9('0x37')]);_0x284153[_0x84f9('0x3a')]=_[_0x84f9('0x38')](_0x18ace7[_0x84f9('0x35')],qs['fields'](_0x4544aa[_0x84f9('0x37')][_0x84f9('0x39')]));_0x284153[_0x84f9('0x3a')]=_0x284153[_0x84f9('0x3a')][_0x84f9('0x3b')]?_0x284153[_0x84f9('0x3a')]:_0x18ace7[_0x84f9('0x35')];_0x284153[_0x84f9('0x3e')]=qs[_0x84f9('0x3f')](_0x4544aa[_0x84f9('0x37')][_0x84f9('0x3f')]);_0x284153[_0x84f9('0x40')]=qs[_0x84f9('0x41')](_[_0x84f9('0x52')](_0x4544aa[_0x84f9('0x37')],_0x18ace7['filters']));if(_0x4544aa[_0x84f9('0x37')][_0x84f9('0x43')]){_0x284153[_0x84f9('0x40')]=_[_0x84f9('0x42')](_0x284153[_0x84f9('0x40')],{'$or':_['map'](_0x284153[_0x84f9('0x3a')],function(_0x2f3602){var _0x56718a={};_0x56718a[_0x2f3602]={'$like':'%'+_0x4544aa['query'][_0x84f9('0x43')]+'%'};return _0x56718a;})});}_0x284153=_[_0x84f9('0x42')]({},_0x284153,_0x4544aa[_0x84f9('0x4c')]);return _0x28e447[_0x84f9('0x53')](_0x284153);}})[_0x84f9('0x2b')](function(_0x45f5c1){if(_0x45f5c1){_0x2d10bc=_0x45f5c1[_0x84f9('0x3b')];if(!_0x4544aa[_0x84f9('0x37')]['hasOwnProperty'](_0x84f9('0x3d'))){_0x284153['limit']=qs[_0x84f9('0x21')](_0x4544aa[_0x84f9('0x37')]['limit']);_0x284153[_0x84f9('0x24')]=qs['offset'](_0x4544aa[_0x84f9('0x37')][_0x84f9('0x24')]);}return _0x28e447[_0x84f9('0x53')](_0x284153);}})['then'](function(_0x4c2e24){if(_0x4c2e24){return _0x4c2e24?{'count':_0x2d10bc,'rows':_0x4c2e24}:null;}})[_0x84f9('0x2b')](respondWithResult(_0x2c62b7,null))[_0x84f9('0x48')](handleError(_0x2c62b7,null));};exports['addConfiguration']=function(_0x3e97f9,_0x338aab,_0x3adec2){if(_0x3e97f9[_0x84f9('0x4f')]['id']){delete _0x3e97f9[_0x84f9('0x4f')]['id'];}return db[_0x84f9('0x30')][_0x84f9('0x51')]({'where':{'id':_0x3e97f9['params']['id']}})[_0x84f9('0x2b')](handleEntityNotFound(_0x338aab,null))[_0x84f9('0x2b')](function(_0x132ca2){if(_0x132ca2){_0x3e97f9[_0x84f9('0x4f')][_0x84f9('0x54')]=_0x132ca2['id'];_0x3e97f9['body'][_0x84f9('0x55')]=integrations[_0x84f9('0x56')](_0x3e97f9[_0x84f9('0x4f')][_0x84f9('0x57')],_0x3e97f9['body'][_0x84f9('0x33')]);_0x3e97f9[_0x84f9('0x4f')][_0x84f9('0x58')]=integrations[_0x84f9('0x59')](_0x3e97f9[_0x84f9('0x4f')]['channel'],_0x3e97f9['body']['type']);return db[_0x84f9('0x5a')][_0x84f9('0x4e')](_0x3e97f9[_0x84f9('0x4f')],{'include':[{'model':db['VtigerField'],'as':_0x84f9('0x55')},{'model':db[_0x84f9('0x5b')],'as':_0x84f9('0x58')}]});}return null;})[_0x84f9('0x2b')](respondWithResult(_0x338aab,null))[_0x84f9('0x48')](handleError(_0x338aab,null));};var md5=require('md5');exports['getFields']=function(_0x31686e,_0x4747f2,_0x3ea8a7){var _0xff8fa3=null;var _0x256829=null;var _0x368f72=null;var _0x595117=null;var _0x2287b9='';return db[_0x84f9('0x30')]['findOne']({'where':{'id':_0x31686e['params']['id']},'attributes':['id',_0x84f9('0x2e'),_0x84f9('0x5c'),_0x84f9('0x5d'),'moduleName','remoteUri','serverUrl','accessKey']})['then'](handleEntityNotFound(_0x4747f2,null))[_0x84f9('0x2b')](function(_0x4c9432){if(_0x4c9432){_0xff8fa3=_0x4c9432[_0x84f9('0x5c')];_0x256829=_0x4c9432[_0x84f9('0x5e')];_0x368f72=_0x4c9432[_0x84f9('0x5f')];_0x2287b9=_0x4c9432['remoteUri'];var _0x169088=_0x2287b9[_0x84f9('0x60')](-0x1);if(_0x169088==='/'){_0x2287b9=_0x2287b9[_0x84f9('0x61')](0x0,_0x2287b9[_0x84f9('0x62')](_0x169088));}_0x595117=util['format'](_0x84f9('0x63'),_0x2287b9);var _0x30f48a={'method':_0x84f9('0x64'),'uri':_0x595117,'qs':{'operation':_0x84f9('0x65'),'username':_0x4c9432[_0x84f9('0x5c')]},'json':!![]};return rp(_0x30f48a);}})[_0x84f9('0x2b')](function(_0x5ac689){if(_0x5ac689[_0x84f9('0x66')]){var _0xb167a0={'method':'POST','uri':_0x595117,'form':{'operation':_0x84f9('0x67'),'username':_0xff8fa3,'accessKey':md5(_0x5ac689[_0x84f9('0x68')][_0x84f9('0x69')]+_0x256829)},'json':!![]};return rp(_0xb167a0);}})['then'](function(_0x89e7d5){if(_0x89e7d5[_0x84f9('0x66')]){var _0x499a37={'method':_0x84f9('0x64'),'uri':_0x595117,'qs':{'operation':_0x84f9('0x6a'),'username':_0xff8fa3,'sessionName':_0x89e7d5['result'][_0x84f9('0x6b')],'elementType':_0x368f72},'json':!![]};return rp(_0x499a37);}})[_0x84f9('0x2b')](function(_0x2eca5a){if(_0x2eca5a['success']){var _0x54f79f=[_0x84f9('0x6c'),_0x84f9('0x6d'),_0x84f9('0x6e')];_[_0x84f9('0x6f')](_0x2eca5a[_0x84f9('0x68')][_0x84f9('0x39')],function(_0x3d144f){return _0x54f79f[_0x84f9('0x70')](_0x3d144f['type']['name']);});_[_0x84f9('0x6f')](_0x2eca5a[_0x84f9('0x68')][_0x84f9('0x39')],function(_0x5bdadf){return _0x5bdadf[_0x84f9('0x71')]==='false';});return{'count':_0x2eca5a[_0x84f9('0x68')][_0x84f9('0x39')][_0x84f9('0x3b')],'rows':_[_0x84f9('0x36')](_0x2eca5a[_0x84f9('0x68')][_0x84f9('0x39')],function(_0x3f1668){return{'id':_0x3f1668[_0x84f9('0x2e')],'name':_0x3f1668[_0x84f9('0x72')],'custom':_[_0x84f9('0x73')](_0x3f1668['name'],'cf_')?!![]:![],'options':_0x3f1668[_0x84f9('0x33')][_0x84f9('0x2e')]===_0x84f9('0x74')&&_0x3f1668[_0x84f9('0x33')]['picklistValues'][_0x84f9('0x3b')]>0x0?_['map'](_0x3f1668['type'][_0x84f9('0x75')],function(_0xac2253){return{'name':_0xac2253[_0x84f9('0x72')],'value':_0xac2253[_0x84f9('0x76')]};}):[]};})};}})['then'](respondWithResult(_0x4747f2,null))[_0x84f9('0x48')](function(_0x34120d){console[_0x84f9('0x77')](_0x84f9('0x78')+_0x34120d);var _0x43005e=_0x31686e[_0x84f9('0x37')][_0x84f9('0x79')]?0x1f4:_0x34120d[_0x84f9('0x7a')]||0x1f4;logger[_0x84f9('0x2c')]('getFields,\x20%s,\x20%s,\x20%s',_0x84f9('0x7b'),_0x43005e,JSON[_0x84f9('0x7c')](_0x34120d));delete _0x34120d['name'];if(_0x43005e===0x191){_0x43005e=0x190;}_0x4747f2[_0x84f9('0x1f')](_0x43005e)['send'](_0x31686e['query']['test']?{'message':_0x84f9('0x7d'),'statusCode':_0x34120d[_0x84f9('0x7a')]}:_0x34120d);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2fe8=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intVtigerAccount.attributes','../../components/integrations/configuration','exports','int_vtiger_accounts'];(function(_0x21a0cb,_0x5a4cc5){var _0x2e9bb4=function(_0x3b47cf){while(--_0x3b47cf){_0x21a0cb['push'](_0x21a0cb['shift']());}};_0x2e9bb4(++_0x5a4cc5);}(_0x2fe8,0xee));var _0x82fe=function(_0x2fe0ba,_0x63f18a){_0x2fe0ba=_0x2fe0ba-0x0;var _0x3919ff=_0x2fe8[_0x2fe0ba];return _0x3919ff;};'use strict';var _=require(_0x82fe('0x0'));var util=require(_0x82fe('0x1'));var logger=require(_0x82fe('0x2'))(_0x82fe('0x3'));var moment=require(_0x82fe('0x4'));var BPromise=require(_0x82fe('0x5'));var rp=require(_0x82fe('0x6'));var fs=require('fs');var path=require(_0x82fe('0x7'));var rimraf=require(_0x82fe('0x8'));var config=require(_0x82fe('0x9'));var attributes=require(_0x82fe('0xa'));var integrations=require(_0x82fe('0xb'));module[_0x82fe('0xc')]=function(_0x428cc0,_0x30829b){return _0x428cc0['define']('VtigerAccount',attributes,{'tableName':_0x82fe('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd7f6=['bluebird','path','rimraf','../../components/integrations/configuration','define','VtigerAccount','int_vtiger_accounts','lodash','util'];(function(_0x293e00,_0x4a580e){var _0x55d600=function(_0x48550e){while(--_0x48550e){_0x293e00['push'](_0x293e00['shift']());}};_0x55d600(++_0x4a580e);}(_0xd7f6,0x154));var _0x6d7f=function(_0xf11794,_0x21915b){_0xf11794=_0xf11794-0x0;var _0x1e2dd3=_0xd7f6[_0xf11794];return _0x1e2dd3;};'use strict';var _=require(_0x6d7f('0x0'));var util=require(_0x6d7f('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0x6d7f('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6d7f('0x3'));var rimraf=require(_0x6d7f('0x4'));var config=require('../../config/environment');var attributes=require('./intVtigerAccount.attributes');var integrations=require(_0x6d7f('0x5'));module['exports']=function(_0x110310,_0x2c3c60){return _0x110310[_0x6d7f('0x6')](_0x6d7f('0x7'),attributes,{'tableName':_0x6d7f('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6324=['message','info','result','catch','GetVtigerAccount','options','raw','where','attributes','limit','include','map','model','VtigerAccount','find','ShowVtigerAccount','lodash','util','moment','bluebird','ioredis','../../config/utils','rpc','jayson/promise','client','http','then','request\x20sent','debug','VtigerAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','VtigerAccount,\x20%s,\x20%s'];(function(_0x38a9d1,_0x431b29){var _0x45201d=function(_0x499a4b){while(--_0x499a4b){_0x38a9d1['push'](_0x38a9d1['shift']());}};_0x45201d(++_0x431b29);}(_0x6324,0x142));var _0x4632=function(_0x2e63e8,_0xed68f5){_0x2e63e8=_0x2e63e8-0x0;var _0x3fe904=_0x6324[_0x2e63e8];return _0x3fe904;};'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']('VtigerAccount,\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')]('VtigerAccount,\x20%s,\x20%s',_0x4a15b2,_0x47824c[_0x4632('0xf')][_0x4632('0x12')]);return _0x44dd6d(_0x47824c[_0x4632('0xf')][_0x4632('0x12')]);}else{logger[_0x4632('0x13')]('VtigerAccount,\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);});});}exports[_0x4632('0x16')]=function(_0x1a94c0){var _0x5b28b7=this;return new Promise(function(_0x3cddfa,_0x1894bb){return db['VtigerAccount']['findAll']({'raw':_0x1a94c0[_0x4632('0x17')]?_0x1a94c0[_0x4632('0x17')][_0x4632('0x18')]===undefined?!![]:![]:!![],'where':_0x1a94c0[_0x4632('0x17')]?_0x1a94c0[_0x4632('0x17')][_0x4632('0x19')]||null:null,'attributes':_0x1a94c0[_0x4632('0x17')]?_0x1a94c0[_0x4632('0x17')][_0x4632('0x1a')]||null:null,'limit':_0x1a94c0[_0x4632('0x17')]?_0x1a94c0[_0x4632('0x17')][_0x4632('0x1b')]||null:null,'include':_0x1a94c0[_0x4632('0x17')]?_0x1a94c0[_0x4632('0x17')][_0x4632('0x1c')]?_[_0x4632('0x1d')](_0x1a94c0[_0x4632('0x17')][_0x4632('0x1c')],function(_0x380a9f){return{'model':db[_0x380a9f[_0x4632('0x1e')]],'as':_0x380a9f['as'],'attributes':_0x380a9f[_0x4632('0x1a')],'include':_0x380a9f[_0x4632('0x1c')]?_[_0x4632('0x1d')](_0x380a9f[_0x4632('0x1c')],function(_0xb074d){return{'model':db[_0xb074d[_0x4632('0x1e')]],'as':_0xb074d['as'],'attributes':_0xb074d[_0x4632('0x1a')],'include':_0xb074d[_0x4632('0x1c')]?_[_0x4632('0x1d')](_0xb074d[_0x4632('0x1c')],function(_0x22d0f5){return{'model':db[_0x22d0f5[_0x4632('0x1e')]],'as':_0x22d0f5['as'],'attributes':_0x22d0f5[_0x4632('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x57798a){logger[_0x4632('0x13')](_0x4632('0x16'),_0x1a94c0);logger[_0x4632('0xc')](_0x4632('0x16'),_0x1a94c0,JSON[_0x4632('0xe')](_0x57798a));_0x3cddfa(_0x57798a);})[_0x4632('0x15')](function(_0x3570b2){logger['error'](_0x4632('0x16'),_0x3570b2[_0x4632('0x12')],_0x1a94c0);_0x1894bb(_0x5b28b7['error'](0x1f4,_0x3570b2[_0x4632('0x12')]));});});};exports['ShowVtigerAccount']=function(_0x6599ad){var _0x4cb661=this;return new Promise(function(_0x4fda35,_0x1973eb){return db[_0x4632('0x1f')][_0x4632('0x20')]({'raw':_0x6599ad['options']?_0x6599ad['options'][_0x4632('0x18')]===undefined?!![]:![]:!![],'where':_0x6599ad[_0x4632('0x17')]?_0x6599ad['options']['where']||null:null,'attributes':_0x6599ad[_0x4632('0x17')]?_0x6599ad[_0x4632('0x17')]['attributes']||null:null,'include':_0x6599ad[_0x4632('0x17')]?_0x6599ad[_0x4632('0x17')][_0x4632('0x1c')]?_[_0x4632('0x1d')](_0x6599ad[_0x4632('0x17')]['include'],function(_0x5f0382){return{'model':db[_0x5f0382[_0x4632('0x1e')]],'as':_0x5f0382['as'],'attributes':_0x5f0382['attributes'],'include':_0x5f0382['include']?_[_0x4632('0x1d')](_0x5f0382['include'],function(_0x49355c){return{'model':db[_0x49355c[_0x4632('0x1e')]],'as':_0x49355c['as'],'attributes':_0x49355c['attributes'],'include':_0x49355c[_0x4632('0x1c')]?_[_0x4632('0x1d')](_0x49355c[_0x4632('0x1c')],function(_0x52dd7f){return{'model':db[_0x52dd7f[_0x4632('0x1e')]],'as':_0x52dd7f['as'],'attributes':_0x52dd7f[_0x4632('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x4632('0xa')](function(_0xca07f5){logger[_0x4632('0x13')]('ShowVtigerAccount',_0x6599ad);logger['debug'](_0x4632('0x21'),_0x6599ad,JSON[_0x4632('0xe')](_0xca07f5));_0x4fda35(_0xca07f5);})[_0x4632('0x15')](function(_0x4f40af){logger['error']('ShowVtigerAccount',_0x4f40af[_0x4632('0x12')],_0x6599ad);_0x1973eb(_0x4cb661[_0x4632('0xf')](0x1f4,_0x4f40af['message']));});});};
\ No newline at end of file
+var _0x7334=['code','message','request\x20sent','result','GetVtigerAccount','findAll','options','raw','where','attributes','limit','include','map','model','VtigerAccount','find','ShowVtigerAccount','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','VtigerAccount,\x20%s,\x20%s','debug','VtigerAccount,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7334,0x184));var _0x4733=function(_0x3d3c8c,_0xe65112){_0x3d3c8c=_0x3d3c8c-0x0;var _0x3fcd92=_0x7334[_0x3d3c8c];return _0x3fcd92;};'use strict';var _=require(_0x4733('0x0'));var util=require(_0x4733('0x1'));var moment=require(_0x4733('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4733('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x4733('0x4'));var logger=require(_0x4733('0x5'))(_0x4733('0x6'));var config=require(_0x4733('0x7'));var jayson=require(_0x4733('0x8'));var client=jayson[_0x4733('0x9')][_0x4733('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x283754,_0x12cafa,_0x43d95c){return new BPromise(function(_0x8257cf,_0x3562b7){return client[_0x4733('0xb')](_0x283754,_0x43d95c)[_0x4733('0xc')](function(_0x2d5fde){logger[_0x4733('0xd')](_0x4733('0xe'),_0x12cafa,'request\x20sent');logger[_0x4733('0xf')](_0x4733('0x10'),_0x12cafa,'request\x20sent',JSON[_0x4733('0x11')](_0x2d5fde));if(_0x2d5fde['error']){if(_0x2d5fde[_0x4733('0x12')][_0x4733('0x13')]===0x1f4){logger[_0x4733('0x12')](_0x4733('0xe'),_0x12cafa,_0x2d5fde[_0x4733('0x12')][_0x4733('0x14')]);return _0x3562b7(_0x2d5fde[_0x4733('0x12')]['message']);}logger[_0x4733('0x12')]('VtigerAccount,\x20%s,\x20%s',_0x12cafa,_0x2d5fde[_0x4733('0x12')][_0x4733('0x14')]);return _0x8257cf(_0x2d5fde[_0x4733('0x12')][_0x4733('0x14')]);}else{logger[_0x4733('0xd')](_0x4733('0xe'),_0x12cafa,_0x4733('0x15'));_0x8257cf(_0x2d5fde[_0x4733('0x16')][_0x4733('0x14')]);}})['catch'](function(_0x2c0031){logger[_0x4733('0x12')]('VtigerAccount,\x20%s,\x20%s',_0x12cafa,_0x2c0031);_0x3562b7(_0x2c0031);});});}exports[_0x4733('0x17')]=function(_0x1d2fb6){var _0x2aa223=this;return new Promise(function(_0x384e0c,_0x579f67){return db['VtigerAccount'][_0x4733('0x18')]({'raw':_0x1d2fb6[_0x4733('0x19')]?_0x1d2fb6['options'][_0x4733('0x1a')]===undefined?!![]:![]:!![],'where':_0x1d2fb6[_0x4733('0x19')]?_0x1d2fb6[_0x4733('0x19')][_0x4733('0x1b')]||null:null,'attributes':_0x1d2fb6['options']?_0x1d2fb6[_0x4733('0x19')][_0x4733('0x1c')]||null:null,'limit':_0x1d2fb6['options']?_0x1d2fb6[_0x4733('0x19')][_0x4733('0x1d')]||null:null,'include':_0x1d2fb6['options']?_0x1d2fb6[_0x4733('0x19')][_0x4733('0x1e')]?_[_0x4733('0x1f')](_0x1d2fb6[_0x4733('0x19')][_0x4733('0x1e')],function(_0x24db74){return{'model':db[_0x24db74[_0x4733('0x20')]],'as':_0x24db74['as'],'attributes':_0x24db74[_0x4733('0x1c')],'include':_0x24db74['include']?_[_0x4733('0x1f')](_0x24db74[_0x4733('0x1e')],function(_0x7884e5){return{'model':db[_0x7884e5[_0x4733('0x20')]],'as':_0x7884e5['as'],'attributes':_0x7884e5[_0x4733('0x1c')],'include':_0x7884e5[_0x4733('0x1e')]?_[_0x4733('0x1f')](_0x7884e5[_0x4733('0x1e')],function(_0x13bc12){return{'model':db[_0x13bc12[_0x4733('0x20')]],'as':_0x13bc12['as'],'attributes':_0x13bc12['attributes']};}):[]};}):[]};}):[]:[]})[_0x4733('0xc')](function(_0x4c91bc){logger['info'](_0x4733('0x17'),_0x1d2fb6);logger['debug'](_0x4733('0x17'),_0x1d2fb6,JSON['stringify'](_0x4c91bc));_0x384e0c(_0x4c91bc);})['catch'](function(_0x517c73){logger[_0x4733('0x12')](_0x4733('0x17'),_0x517c73[_0x4733('0x14')],_0x1d2fb6);_0x579f67(_0x2aa223[_0x4733('0x12')](0x1f4,_0x517c73['message']));});});};exports['ShowVtigerAccount']=function(_0x50f67e){var _0x2b2757=this;return new Promise(function(_0x56872b,_0x5a4814){return db[_0x4733('0x21')][_0x4733('0x22')]({'raw':_0x50f67e[_0x4733('0x19')]?_0x50f67e['options']['raw']===undefined?!![]:![]:!![],'where':_0x50f67e[_0x4733('0x19')]?_0x50f67e[_0x4733('0x19')][_0x4733('0x1b')]||null:null,'attributes':_0x50f67e[_0x4733('0x19')]?_0x50f67e[_0x4733('0x19')]['attributes']||null:null,'include':_0x50f67e[_0x4733('0x19')]?_0x50f67e[_0x4733('0x19')][_0x4733('0x1e')]?_[_0x4733('0x1f')](_0x50f67e[_0x4733('0x19')]['include'],function(_0x570bc6){return{'model':db[_0x570bc6[_0x4733('0x20')]],'as':_0x570bc6['as'],'attributes':_0x570bc6[_0x4733('0x1c')],'include':_0x570bc6[_0x4733('0x1e')]?_[_0x4733('0x1f')](_0x570bc6[_0x4733('0x1e')],function(_0x5e31c8){return{'model':db[_0x5e31c8[_0x4733('0x20')]],'as':_0x5e31c8['as'],'attributes':_0x5e31c8[_0x4733('0x1c')],'include':_0x5e31c8[_0x4733('0x1e')]?_['map'](_0x5e31c8[_0x4733('0x1e')],function(_0x10a5e9){return{'model':db[_0x10a5e9[_0x4733('0x20')]],'as':_0x10a5e9['as'],'attributes':_0x10a5e9[_0x4733('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x4733('0xc')](function(_0x311c1d){logger[_0x4733('0xd')](_0x4733('0x23'),_0x50f67e);logger['debug'](_0x4733('0x23'),_0x50f67e,JSON['stringify'](_0x311c1d));_0x56872b(_0x311c1d);})[_0x4733('0x24')](function(_0x29db03){logger[_0x4733('0x12')](_0x4733('0x23'),_0x29db03[_0x4733('0x14')],_0x50f67e);_0x5a4814(_0x2b2757[_0x4733('0x12')](0x1f4,_0x29db03[_0x4733('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe664=['destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intVtigerConfiguration.controller','get','/:id','isAuthenticated','show','getFields','getSubjects','getDescriptions','post','create'];(function(_0x2d3a9b,_0x4f26d6){var _0x299be6=function(_0x3c0260){while(--_0x3c0260){_0x2d3a9b['push'](_0x2d3a9b['shift']());}};_0x299be6(++_0x4f26d6);}(_0xe664,0xd4));var _0x4e66=function(_0x48d1da,_0x4e843e){_0x48d1da=_0x48d1da-0x0;var _0x19aab1=_0xe664[_0x48d1da];return _0x19aab1;};'use strict';var multer=require('multer');var util=require(_0x4e66('0x0'));var path=require(_0x4e66('0x1'));var timeout=require(_0x4e66('0x2'));var express=require(_0x4e66('0x3'));var router=express[_0x4e66('0x4')]();var fs_extra=require(_0x4e66('0x5'));var auth=require(_0x4e66('0x6'));var interaction=require(_0x4e66('0x7'));var config=require(_0x4e66('0x8'));var controller=require(_0x4e66('0x9'));router[_0x4e66('0xa')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x4e66('0xb'),auth[_0x4e66('0xc')](),controller[_0x4e66('0xd')]);router[_0x4e66('0xa')]('/:id/fields',auth[_0x4e66('0xc')](),controller[_0x4e66('0xe')]);router['get']('/:id/subjects',auth[_0x4e66('0xc')](),controller[_0x4e66('0xf')]);router[_0x4e66('0xa')]('/:id/descriptions',auth['isAuthenticated'](),controller[_0x4e66('0x10')]);router[_0x4e66('0x11')]('/',auth['isAuthenticated'](),controller[_0x4e66('0x12')]);router['put'](_0x4e66('0xb'),auth[_0x4e66('0xc')](),controller['update']);router['delete'](_0x4e66('0xb'),auth['isAuthenticated'](),controller[_0x4e66('0x13')]);module[_0x4e66('0x14')]=router;
\ No newline at end of file
+var _0x6b3e=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','getFields','/:id/subjects','/:id/descriptions','getDescriptions','post','put','update','delete','destroy'];(function(_0x2a8cb7,_0x314d29){var _0x183a1f=function(_0x7f65bc){while(--_0x7f65bc){_0x2a8cb7['push'](_0x2a8cb7['shift']());}};_0x183a1f(++_0x314d29);}(_0x6b3e,0x8a));var _0xe6b3=function(_0x59d6aa,_0x1c48cb){_0x59d6aa=_0x59d6aa-0x0;var _0xec5763=_0x6b3e[_0x59d6aa];return _0xec5763;};'use strict';var multer=require(_0xe6b3('0x0'));var util=require(_0xe6b3('0x1'));var path=require(_0xe6b3('0x2'));var timeout=require(_0xe6b3('0x3'));var express=require(_0xe6b3('0x4'));var router=express[_0xe6b3('0x5')]();var fs_extra=require(_0xe6b3('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0xe6b3('0x7'));var config=require(_0xe6b3('0x8'));var controller=require('./intVtigerConfiguration.controller');router[_0xe6b3('0x9')]('/',auth[_0xe6b3('0xa')](),controller[_0xe6b3('0xb')]);router['get'](_0xe6b3('0xc'),auth[_0xe6b3('0xa')](),controller[_0xe6b3('0xd')]);router[_0xe6b3('0x9')]('/:id/fields',auth[_0xe6b3('0xa')](),controller[_0xe6b3('0xe')]);router[_0xe6b3('0x9')](_0xe6b3('0xf'),auth[_0xe6b3('0xa')](),controller['getSubjects']);router[_0xe6b3('0x9')](_0xe6b3('0x10'),auth[_0xe6b3('0xa')](),controller[_0xe6b3('0x11')]);router[_0xe6b3('0x12')]('/',auth[_0xe6b3('0xa')](),controller['create']);router[_0xe6b3('0x13')]('/:id',auth[_0xe6b3('0xa')](),controller[_0xe6b3('0x14')]);router[_0xe6b3('0x15')](_0xe6b3('0xc'),auth['isAuthenticated'](),controller[_0xe6b3('0x16')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda1b=['sequelize'];(function(_0x515954,_0x6e26b5){var _0x2adf4c=function(_0x55dea5){while(--_0x55dea5){_0x515954['push'](_0x515954['shift']());}};_0x2adf4c(++_0x6e26b5);}(_0xda1b,0xc1));var _0xbda1=function(_0x29d915,_0x54a040){_0x29d915=_0x29d915-0x0;var _0x160f86=_0xda1b[_0x29d915];return _0x160f86;};'use strict';var Sequelize=require(_0xbda1('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xd9ae=['STRING','sequelize'];(function(_0x977996,_0x4fbb97){var _0x93342c=function(_0x2395ed){while(--_0x2395ed){_0x977996['push'](_0x977996['shift']());}};_0x93342c(++_0x4fbb97);}(_0xd9ae,0xfb));var _0xed9a=function(_0x347b6c,_0x4d0d6f){_0x347b6c=_0x347b6c-0x0;var _0x2ab801=_0xd9ae[_0x347b6c];return _0x2ab801;};'use strict';var Sequelize=require(_0xed9a('0x0'));module['exports']={'name':{'type':Sequelize[_0xed9a('0x1')]},'description':{'type':Sequelize[_0xed9a('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcae6=['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','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','apply','reject','save','update','then','error','name','send','index','map','VtigerConfiguration','rawAttributes','fieldName','key','query','filters','intersection','attributes','model','fields','length','order','sort','where','pick','filter','merge','type','VIRTUAL','options','include','findAll','rows','catch','show','params','keys','includeAll','find','create','body','destroy','findOne','VtigerField','hasOwnProperty','nolimit','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','mustache','util','path'];(function(_0x30394e,_0x227ebc){var _0x2b198b=function(_0x17efb0){while(--_0x17efb0){_0x30394e['push'](_0x30394e['shift']());}};_0x2b198b(++_0x227ebc);}(_0xcae6,0x146));var _0x6cae=function(_0x2f37e0,_0x393ef9){_0x2f37e0=_0x2f37e0-0x0;var _0x43ccce=_0xcae6[_0x2f37e0];return _0x43ccce;};'use strict';var emlformat=require(_0x6cae('0x0'));var rimraf=require(_0x6cae('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6cae('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x6cae('0x3'));var util=require(_0x6cae('0x4'));var path=require(_0x6cae('0x5'));var sox=require(_0x6cae('0x6'));var csv=require(_0x6cae('0x7'));var ejs=require(_0x6cae('0x8'));var fs=require('fs');var fs_extra=require(_0x6cae('0x9'));var _=require(_0x6cae('0xa'));var squel=require(_0x6cae('0xb'));var crypto=require(_0x6cae('0xc'));var jsforce=require(_0x6cae('0xd'));var deskjs=require(_0x6cae('0xe'));var toCsv=require(_0x6cae('0x7'));var querystring=require(_0x6cae('0xf'));var Papa=require(_0x6cae('0x10'));var Redis=require(_0x6cae('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x6cae('0x12'));var as=require(_0x6cae('0x13'));var hardwareService=require(_0x6cae('0x14'));var logger=require(_0x6cae('0x15'))(_0x6cae('0x16'));var utils=require(_0x6cae('0x17'));var config=require(_0x6cae('0x18'));var licenseUtil=require(_0x6cae('0x19'));var db=require(_0x6cae('0x1a'))['db'];function respondWithStatusCode(_0x572304,_0x34e94c){_0x34e94c=_0x34e94c||0xcc;return function(_0x16b2e0){if(_0x16b2e0){return _0x572304[_0x6cae('0x1b')](_0x34e94c);}return _0x572304[_0x6cae('0x1c')](_0x34e94c)[_0x6cae('0x1d')]();};}function respondWithResult(_0x190a80,_0x3a7f98){_0x3a7f98=_0x3a7f98||0xc8;return function(_0x514f6d){if(_0x514f6d){return _0x190a80['status'](_0x3a7f98)[_0x6cae('0x1e')](_0x514f6d);}};}function respondWithFilteredResult(_0x4f41da,_0x1e96e8){return function(_0x596ce4){if(_0x596ce4){var _0x33a562=typeof _0x1e96e8[_0x6cae('0x1f')]==='undefined'&&typeof _0x1e96e8['limit']===_0x6cae('0x20');var _0x4ffed3=_0x596ce4[_0x6cae('0x21')];var _0x29f9ef=_0x33a562?0x0:_0x1e96e8[_0x6cae('0x1f')];var _0x40b45d=_0x33a562?_0x596ce4[_0x6cae('0x21')]:_0x1e96e8[_0x6cae('0x1f')]+_0x1e96e8[_0x6cae('0x22')];var _0x5d29c2;if(_0x40b45d>=_0x4ffed3){_0x40b45d=_0x4ffed3;_0x5d29c2=0xc8;}else{_0x5d29c2=0xce;}_0x4f41da['status'](_0x5d29c2);return _0x4f41da['set']('Content-Range',_0x29f9ef+'-'+_0x40b45d+'/'+_0x4ffed3)[_0x6cae('0x1e')](_0x596ce4);}return null;};}function patchUpdates(_0x3a776c){return function(_0x147af5){try{jsonpatch[_0x6cae('0x23')](_0x147af5,_0x3a776c,!![]);}catch(_0x396e75){return BPromise[_0x6cae('0x24')](_0x396e75);}return _0x147af5[_0x6cae('0x25')]();};}function saveUpdates(_0x156777,_0x3810f5){return function(_0x35c163){if(_0x35c163){return _0x35c163[_0x6cae('0x26')](_0x156777)[_0x6cae('0x27')](function(_0x547e9a){return _0x547e9a;});}return null;};}function removeEntity(_0x359d03,_0x5edf87){return function(_0x531ef4){if(_0x531ef4){return _0x531ef4['destroy']()[_0x6cae('0x27')](function(){_0x359d03[_0x6cae('0x1c')](0xcc)[_0x6cae('0x1d')]();});}};}function handleEntityNotFound(_0x5a3410,_0x3f4dfb){return function(_0x32a810){if(!_0x32a810){_0x5a3410[_0x6cae('0x1b')](0x194);}return _0x32a810;};}function handleError(_0x24fb48,_0x345e7d){_0x345e7d=_0x345e7d||0x1f4;return function(_0x47f2e0){logger[_0x6cae('0x28')](_0x47f2e0['stack']);if(_0x47f2e0[_0x6cae('0x29')]){delete _0x47f2e0[_0x6cae('0x29')];}_0x24fb48['status'](_0x345e7d)[_0x6cae('0x2a')](_0x47f2e0);};}exports[_0x6cae('0x2b')]=function(_0x5363aa,_0x314ed2){var _0x24bd5c={},_0x17ac49={},_0x2797a6={'count':0x0,'rows':[]};var _0x4bb869=_[_0x6cae('0x2c')](db[_0x6cae('0x2d')][_0x6cae('0x2e')],function(_0x21a8e1){return{'name':_0x21a8e1[_0x6cae('0x2f')],'type':_0x21a8e1['type'][_0x6cae('0x30')]};});_0x17ac49['model']=_[_0x6cae('0x2c')](_0x4bb869,_0x6cae('0x29'));_0x17ac49[_0x6cae('0x31')]=_['keys'](_0x5363aa[_0x6cae('0x31')]);_0x17ac49[_0x6cae('0x32')]=_[_0x6cae('0x33')](_0x17ac49['model'],_0x17ac49[_0x6cae('0x31')]);_0x24bd5c[_0x6cae('0x34')]=_[_0x6cae('0x33')](_0x17ac49[_0x6cae('0x35')],qs[_0x6cae('0x36')](_0x5363aa[_0x6cae('0x31')]['fields']));_0x24bd5c[_0x6cae('0x34')]=_0x24bd5c[_0x6cae('0x34')][_0x6cae('0x37')]?_0x24bd5c[_0x6cae('0x34')]:_0x17ac49[_0x6cae('0x35')];if(!_0x5363aa['query']['hasOwnProperty']('nolimit')){_0x24bd5c[_0x6cae('0x22')]=qs['limit'](_0x5363aa[_0x6cae('0x31')][_0x6cae('0x22')]);_0x24bd5c[_0x6cae('0x1f')]=qs[_0x6cae('0x1f')](_0x5363aa['query'][_0x6cae('0x1f')]);}_0x24bd5c[_0x6cae('0x38')]=qs[_0x6cae('0x39')](_0x5363aa['query'][_0x6cae('0x39')]);_0x24bd5c[_0x6cae('0x3a')]=qs[_0x6cae('0x32')](_[_0x6cae('0x3b')](_0x5363aa['query'],_0x17ac49['filters']),_0x4bb869);if(_0x5363aa[_0x6cae('0x31')][_0x6cae('0x3c')]){_0x24bd5c['where']=_[_0x6cae('0x3d')](_0x24bd5c[_0x6cae('0x3a')],{'$or':_[_0x6cae('0x2c')](_0x4bb869,function(_0x1f5c1f){if(_0x1f5c1f[_0x6cae('0x3e')]!==_0x6cae('0x3f')){var _0x12b858={};_0x12b858[_0x1f5c1f[_0x6cae('0x29')]]={'$like':'%'+_0x5363aa[_0x6cae('0x31')][_0x6cae('0x3c')]+'%'};return _0x12b858;}})});}_0x24bd5c=_['merge']({},_0x24bd5c,_0x5363aa[_0x6cae('0x40')]);var _0x547726={'where':_0x24bd5c[_0x6cae('0x3a')]};return db[_0x6cae('0x2d')][_0x6cae('0x21')](_0x547726)['then'](function(_0x3da582){_0x2797a6[_0x6cae('0x21')]=_0x3da582;if(_0x5363aa[_0x6cae('0x31')]['includeAll']){_0x24bd5c[_0x6cae('0x41')]=[{'all':!![]}];}return db[_0x6cae('0x2d')][_0x6cae('0x42')](_0x24bd5c);})[_0x6cae('0x27')](function(_0x51fa30){_0x2797a6[_0x6cae('0x43')]=_0x51fa30;return _0x2797a6;})[_0x6cae('0x27')](respondWithFilteredResult(_0x314ed2,_0x24bd5c))[_0x6cae('0x44')](handleError(_0x314ed2,null));};exports[_0x6cae('0x45')]=function(_0x3b8d83,_0x44dec1){var _0x35b186={'raw':![],'where':{'id':_0x3b8d83[_0x6cae('0x46')]['id']}},_0x3ff987={};_0x3ff987[_0x6cae('0x35')]=_['keys'](db[_0x6cae('0x2d')]['rawAttributes']);_0x3ff987[_0x6cae('0x31')]=_[_0x6cae('0x47')](_0x3b8d83[_0x6cae('0x31')]);_0x3ff987[_0x6cae('0x32')]=_[_0x6cae('0x33')](_0x3ff987['model'],_0x3ff987[_0x6cae('0x31')]);_0x35b186[_0x6cae('0x34')]=_[_0x6cae('0x33')](_0x3ff987['model'],qs[_0x6cae('0x36')](_0x3b8d83[_0x6cae('0x31')][_0x6cae('0x36')]));_0x35b186[_0x6cae('0x34')]=_0x35b186[_0x6cae('0x34')]['length']?_0x35b186['attributes']:_0x3ff987['model'];if(_0x3b8d83['query'][_0x6cae('0x48')]){_0x35b186[_0x6cae('0x41')]=[{'all':!![]}];}_0x35b186=_[_0x6cae('0x3d')]({},_0x35b186,_0x3b8d83[_0x6cae('0x40')]);return db[_0x6cae('0x2d')][_0x6cae('0x49')](_0x35b186)['then'](handleEntityNotFound(_0x44dec1,null))[_0x6cae('0x27')](respondWithResult(_0x44dec1,null))['catch'](handleError(_0x44dec1,null));};exports[_0x6cae('0x4a')]=function(_0x391ba7,_0xe83cc5){return db[_0x6cae('0x2d')][_0x6cae('0x4a')](_0x391ba7[_0x6cae('0x4b')],{})[_0x6cae('0x27')](respondWithResult(_0xe83cc5,0xc9))[_0x6cae('0x44')](handleError(_0xe83cc5,null));};exports['update']=function(_0x1948a4,_0x16409e){if(_0x1948a4[_0x6cae('0x4b')]['id']){delete _0x1948a4['body']['id'];}return db['VtigerConfiguration'][_0x6cae('0x49')]({'where':{'id':_0x1948a4[_0x6cae('0x46')]['id']}})[_0x6cae('0x27')](handleEntityNotFound(_0x16409e,null))['then'](saveUpdates(_0x1948a4[_0x6cae('0x4b')],null))[_0x6cae('0x27')](respondWithResult(_0x16409e,null))[_0x6cae('0x44')](handleError(_0x16409e,null));};exports[_0x6cae('0x4c')]=function(_0x64a143,_0x5a16ef){return db[_0x6cae('0x2d')][_0x6cae('0x49')]({'where':{'id':_0x64a143[_0x6cae('0x46')]['id']}})[_0x6cae('0x27')](handleEntityNotFound(_0x5a16ef,null))['then'](removeEntity(_0x5a16ef,null))[_0x6cae('0x44')](handleError(_0x5a16ef,null));};exports['getFields']=function(_0x56c9ae,_0x35f57c,_0x76c7a9){var _0x48c1c0={};var _0x17566c={};var _0x3c9d80;var _0x274f3b;return db[_0x6cae('0x2d')][_0x6cae('0x4d')]({'where':{'id':_0x56c9ae['params']['id']}})[_0x6cae('0x27')](handleEntityNotFound(_0x35f57c,null))['then'](function(_0x550a47){if(_0x550a47){_0x3c9d80=_0x550a47;_0x17566c['model']=_[_0x6cae('0x47')](db[_0x6cae('0x4e')]['rawAttributes']);_0x17566c[_0x6cae('0x31')]=_['keys'](_0x56c9ae[_0x6cae('0x31')]);_0x17566c[_0x6cae('0x32')]=_[_0x6cae('0x33')](_0x17566c[_0x6cae('0x35')],_0x17566c[_0x6cae('0x31')]);_0x48c1c0[_0x6cae('0x34')]=_[_0x6cae('0x33')](_0x17566c[_0x6cae('0x35')],qs[_0x6cae('0x36')](_0x56c9ae['query'][_0x6cae('0x36')]));_0x48c1c0[_0x6cae('0x34')]=_0x48c1c0[_0x6cae('0x34')][_0x6cae('0x37')]?_0x48c1c0[_0x6cae('0x34')]:_0x17566c[_0x6cae('0x35')];_0x48c1c0[_0x6cae('0x38')]=qs[_0x6cae('0x39')](_0x56c9ae[_0x6cae('0x31')][_0x6cae('0x39')]);_0x48c1c0[_0x6cae('0x3a')]=qs[_0x6cae('0x32')](_[_0x6cae('0x3b')](_0x56c9ae[_0x6cae('0x31')],_0x17566c[_0x6cae('0x32')]));if(_0x56c9ae[_0x6cae('0x31')][_0x6cae('0x3c')]){_0x48c1c0['where']=_[_0x6cae('0x3d')](_0x48c1c0[_0x6cae('0x3a')],{'$or':_[_0x6cae('0x2c')](_0x48c1c0['attributes'],function(_0x4ea0a3){var _0x3bd744={};_0x3bd744[_0x4ea0a3]={'$like':'%'+_0x56c9ae[_0x6cae('0x31')][_0x6cae('0x3c')]+'%'};return _0x3bd744;})});}_0x48c1c0=_[_0x6cae('0x3d')]({},_0x48c1c0,_0x56c9ae[_0x6cae('0x40')]);return _0x3c9d80['getFields'](_0x48c1c0);}})[_0x6cae('0x27')](function(_0x28aa71){if(_0x28aa71){_0x274f3b=_0x28aa71[_0x6cae('0x37')];if(!_0x56c9ae[_0x6cae('0x31')][_0x6cae('0x4f')](_0x6cae('0x50'))){_0x48c1c0[_0x6cae('0x22')]=qs[_0x6cae('0x22')](_0x56c9ae['query'][_0x6cae('0x22')]);_0x48c1c0['offset']=qs[_0x6cae('0x1f')](_0x56c9ae[_0x6cae('0x31')]['offset']);}return _0x3c9d80['getFields'](_0x48c1c0);}})[_0x6cae('0x27')](function(_0x2855de){if(_0x2855de){return _0x2855de?{'count':_0x274f3b,'rows':_0x2855de}:null;}})[_0x6cae('0x27')](respondWithResult(_0x35f57c,null))[_0x6cae('0x44')](handleError(_0x35f57c,null));};exports[_0x6cae('0x51')]=function(_0x585275,_0xee6ed8,_0xa1e627){var _0x3a5330={};var _0x31425e={};var _0x4c34f8;var _0x85178d;return db[_0x6cae('0x2d')][_0x6cae('0x4d')]({'where':{'id':_0x585275['params']['id']}})[_0x6cae('0x27')](handleEntityNotFound(_0xee6ed8,null))[_0x6cae('0x27')](function(_0x4f71e6){if(_0x4f71e6){_0x4c34f8=_0x4f71e6;_0x31425e[_0x6cae('0x35')]=_['keys'](db[_0x6cae('0x4e')]['rawAttributes']);_0x31425e[_0x6cae('0x31')]=_[_0x6cae('0x47')](_0x585275['query']);_0x31425e[_0x6cae('0x32')]=_[_0x6cae('0x33')](_0x31425e[_0x6cae('0x35')],_0x31425e[_0x6cae('0x31')]);_0x3a5330[_0x6cae('0x34')]=_[_0x6cae('0x33')](_0x31425e[_0x6cae('0x35')],qs[_0x6cae('0x36')](_0x585275[_0x6cae('0x31')]['fields']));_0x3a5330[_0x6cae('0x34')]=_0x3a5330[_0x6cae('0x34')][_0x6cae('0x37')]?_0x3a5330['attributes']:_0x31425e[_0x6cae('0x35')];_0x3a5330[_0x6cae('0x38')]=qs['sort'](_0x585275['query'][_0x6cae('0x39')]);_0x3a5330['where']=qs[_0x6cae('0x32')](_[_0x6cae('0x3b')](_0x585275[_0x6cae('0x31')],_0x31425e[_0x6cae('0x32')]));if(_0x585275[_0x6cae('0x31')][_0x6cae('0x3c')]){_0x3a5330['where']=_['merge'](_0x3a5330[_0x6cae('0x3a')],{'$or':_[_0x6cae('0x2c')](_0x3a5330['attributes'],function(_0x53501d){var _0x1464fb={};_0x1464fb[_0x53501d]={'$like':'%'+_0x585275[_0x6cae('0x31')][_0x6cae('0x3c')]+'%'};return _0x1464fb;})});}_0x3a5330=_[_0x6cae('0x3d')]({},_0x3a5330,_0x585275[_0x6cae('0x40')]);return _0x4c34f8[_0x6cae('0x51')](_0x3a5330);}})['then'](function(_0xa9080a){if(_0xa9080a){_0x85178d=_0xa9080a[_0x6cae('0x37')];if(!_0x585275[_0x6cae('0x31')]['hasOwnProperty'](_0x6cae('0x50'))){_0x3a5330[_0x6cae('0x22')]=qs[_0x6cae('0x22')](_0x585275[_0x6cae('0x31')][_0x6cae('0x22')]);_0x3a5330[_0x6cae('0x1f')]=qs[_0x6cae('0x1f')](_0x585275[_0x6cae('0x31')][_0x6cae('0x1f')]);}return _0x4c34f8[_0x6cae('0x51')](_0x3a5330);}})[_0x6cae('0x27')](function(_0x278be9){if(_0x278be9){return _0x278be9?{'count':_0x85178d,'rows':_0x278be9}:null;}})[_0x6cae('0x27')](respondWithResult(_0xee6ed8,null))[_0x6cae('0x44')](handleError(_0xee6ed8,null));};exports['getDescriptions']=function(_0x3279b4,_0x18a362,_0x2a842c){var _0x47e647={};var _0x33d55b={};var _0xfb4f98;var _0x5cbdc8;return db[_0x6cae('0x2d')][_0x6cae('0x4d')]({'where':{'id':_0x3279b4['params']['id']}})[_0x6cae('0x27')](handleEntityNotFound(_0x18a362,null))['then'](function(_0x4760e9){if(_0x4760e9){_0xfb4f98=_0x4760e9;_0x33d55b[_0x6cae('0x35')]=_[_0x6cae('0x47')](db['VtigerField'][_0x6cae('0x2e')]);_0x33d55b[_0x6cae('0x31')]=_[_0x6cae('0x47')](_0x3279b4[_0x6cae('0x31')]);_0x33d55b[_0x6cae('0x32')]=_['intersection'](_0x33d55b[_0x6cae('0x35')],_0x33d55b['query']);_0x47e647[_0x6cae('0x34')]=_[_0x6cae('0x33')](_0x33d55b[_0x6cae('0x35')],qs['fields'](_0x3279b4['query']['fields']));_0x47e647[_0x6cae('0x34')]=_0x47e647[_0x6cae('0x34')][_0x6cae('0x37')]?_0x47e647[_0x6cae('0x34')]:_0x33d55b[_0x6cae('0x35')];_0x47e647[_0x6cae('0x38')]=qs[_0x6cae('0x39')](_0x3279b4[_0x6cae('0x31')]['sort']);_0x47e647[_0x6cae('0x3a')]=qs[_0x6cae('0x32')](_[_0x6cae('0x3b')](_0x3279b4[_0x6cae('0x31')],_0x33d55b[_0x6cae('0x32')]));if(_0x3279b4[_0x6cae('0x31')]['filter']){_0x47e647[_0x6cae('0x3a')]=_[_0x6cae('0x3d')](_0x47e647[_0x6cae('0x3a')],{'$or':_['map'](_0x47e647[_0x6cae('0x34')],function(_0x4142bc){var _0x11e5e3={};_0x11e5e3[_0x4142bc]={'$like':'%'+_0x3279b4[_0x6cae('0x31')]['filter']+'%'};return _0x11e5e3;})});}_0x47e647=_['merge']({},_0x47e647,_0x3279b4[_0x6cae('0x40')]);return _0xfb4f98[_0x6cae('0x52')](_0x47e647);}})[_0x6cae('0x27')](function(_0x3dae08){if(_0x3dae08){_0x5cbdc8=_0x3dae08[_0x6cae('0x37')];if(!_0x3279b4[_0x6cae('0x31')][_0x6cae('0x4f')](_0x6cae('0x50'))){_0x47e647['limit']=qs[_0x6cae('0x22')](_0x3279b4[_0x6cae('0x31')][_0x6cae('0x22')]);_0x47e647['offset']=qs[_0x6cae('0x1f')](_0x3279b4[_0x6cae('0x31')][_0x6cae('0x1f')]);}return _0xfb4f98[_0x6cae('0x52')](_0x47e647);}})['then'](function(_0xbb83b7){if(_0xbb83b7){return _0xbb83b7?{'count':_0x5cbdc8,'rows':_0xbb83b7}:null;}})['then'](respondWithResult(_0x18a362,null))[_0x6cae('0x44')](handleError(_0x18a362,null));};
\ No newline at end of file
+var _0x05c2=['filter','merge','options','then','includeAll','findAll','rows','catch','show','rawAttributes','length','include','create','update','body','find','getFields','findOne','params','VtigerField','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','offset','limit','undefined','count','set','json','reject','save','destroy','stack','name','send','index','map','VtigerConfiguration','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x507ac5,_0x33aaee){var _0x12c1bc=function(_0x5c953c){while(--_0x5c953c){_0x507ac5['push'](_0x507ac5['shift']());}};_0x12c1bc(++_0x33aaee);}(_0x05c2,0x1ab));var _0x205c=function(_0x4a86b1,_0x37a680){_0x4a86b1=_0x4a86b1-0x0;var _0x3bcc2c=_0x05c2[_0x4a86b1];return _0x3bcc2c;};'use strict';var emlformat=require(_0x205c('0x0'));var rimraf=require(_0x205c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x205c('0x2'));var rp=require(_0x205c('0x3'));var moment=require(_0x205c('0x4'));var BPromise=require(_0x205c('0x5'));var Mustache=require(_0x205c('0x6'));var util=require('util');var path=require('path');var sox=require(_0x205c('0x7'));var csv=require(_0x205c('0x8'));var ejs=require(_0x205c('0x9'));var fs=require('fs');var fs_extra=require(_0x205c('0xa'));var _=require(_0x205c('0xb'));var squel=require('squel');var crypto=require(_0x205c('0xc'));var jsforce=require(_0x205c('0xd'));var deskjs=require(_0x205c('0xe'));var toCsv=require(_0x205c('0x8'));var querystring=require(_0x205c('0xf'));var Papa=require(_0x205c('0x10'));var Redis=require(_0x205c('0x11'));var authService=require(_0x205c('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x205c('0x13'));var hardwareService=require(_0x205c('0x14'));var logger=require('../../config/logger')(_0x205c('0x15'));var utils=require(_0x205c('0x16'));var config=require(_0x205c('0x17'));var licenseUtil=require(_0x205c('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x122c73,_0x93525a){_0x93525a=_0x93525a||0xcc;return function(_0x4d36a5){if(_0x4d36a5){return _0x122c73[_0x205c('0x19')](_0x93525a);}return _0x122c73[_0x205c('0x1a')](_0x93525a)[_0x205c('0x1b')]();};}function respondWithResult(_0x1ff834,_0x4f0108){_0x4f0108=_0x4f0108||0xc8;return function(_0x2d2c0a){if(_0x2d2c0a){return _0x1ff834[_0x205c('0x1a')](_0x4f0108)['json'](_0x2d2c0a);}};}function respondWithFilteredResult(_0xf1e506,_0x5bf6b4){return function(_0x1fee0c){if(_0x1fee0c){var _0x48f748=typeof _0x5bf6b4[_0x205c('0x1c')]==='undefined'&&typeof _0x5bf6b4[_0x205c('0x1d')]===_0x205c('0x1e');var _0x2c7026=_0x1fee0c[_0x205c('0x1f')];var _0x5a82dc=_0x48f748?0x0:_0x5bf6b4['offset'];var _0x4e1a5e=_0x48f748?_0x1fee0c['count']:_0x5bf6b4[_0x205c('0x1c')]+_0x5bf6b4['limit'];var _0x4c6ceb;if(_0x4e1a5e>=_0x2c7026){_0x4e1a5e=_0x2c7026;_0x4c6ceb=0xc8;}else{_0x4c6ceb=0xce;}_0xf1e506[_0x205c('0x1a')](_0x4c6ceb);return _0xf1e506[_0x205c('0x20')]('Content-Range',_0x5a82dc+'-'+_0x4e1a5e+'/'+_0x2c7026)[_0x205c('0x21')](_0x1fee0c);}return null;};}function patchUpdates(_0x3881b8){return function(_0x4cdc7c){try{jsonpatch['apply'](_0x4cdc7c,_0x3881b8,!![]);}catch(_0x252342){return BPromise[_0x205c('0x22')](_0x252342);}return _0x4cdc7c[_0x205c('0x23')]();};}function saveUpdates(_0x337df2,_0x43d847){return function(_0x5c93fa){if(_0x5c93fa){return _0x5c93fa['update'](_0x337df2)['then'](function(_0x548e50){return _0x548e50;});}return null;};}function removeEntity(_0x18f9c1,_0x4c69c7){return function(_0x4edd82){if(_0x4edd82){return _0x4edd82[_0x205c('0x24')]()['then'](function(){_0x18f9c1[_0x205c('0x1a')](0xcc)[_0x205c('0x1b')]();});}};}function handleEntityNotFound(_0x4d7cd1,_0x51e275){return function(_0xed5a10){if(!_0xed5a10){_0x4d7cd1[_0x205c('0x19')](0x194);}return _0xed5a10;};}function handleError(_0x23890a,_0x39f5fa){_0x39f5fa=_0x39f5fa||0x1f4;return function(_0x180042){logger['error'](_0x180042[_0x205c('0x25')]);if(_0x180042[_0x205c('0x26')]){delete _0x180042[_0x205c('0x26')];}_0x23890a[_0x205c('0x1a')](_0x39f5fa)[_0x205c('0x27')](_0x180042);};}exports[_0x205c('0x28')]=function(_0x385b24,_0x5dca4b){var _0x3a2027={},_0x1c9bcc={},_0x5a9c49={'count':0x0,'rows':[]};var _0x19d1a6=_[_0x205c('0x29')](db[_0x205c('0x2a')]['rawAttributes'],function(_0x2d76f1){return{'name':_0x2d76f1[_0x205c('0x2b')],'type':_0x2d76f1[_0x205c('0x2c')][_0x205c('0x2d')]};});_0x1c9bcc[_0x205c('0x2e')]=_[_0x205c('0x29')](_0x19d1a6,_0x205c('0x26'));_0x1c9bcc[_0x205c('0x2f')]=_[_0x205c('0x30')](_0x385b24[_0x205c('0x2f')]);_0x1c9bcc[_0x205c('0x31')]=_[_0x205c('0x32')](_0x1c9bcc['model'],_0x1c9bcc[_0x205c('0x2f')]);_0x3a2027[_0x205c('0x33')]=_['intersection'](_0x1c9bcc[_0x205c('0x2e')],qs[_0x205c('0x34')](_0x385b24['query']['fields']));_0x3a2027[_0x205c('0x33')]=_0x3a2027[_0x205c('0x33')]['length']?_0x3a2027[_0x205c('0x33')]:_0x1c9bcc[_0x205c('0x2e')];if(!_0x385b24['query'][_0x205c('0x35')](_0x205c('0x36'))){_0x3a2027['limit']=qs['limit'](_0x385b24['query'][_0x205c('0x1d')]);_0x3a2027[_0x205c('0x1c')]=qs[_0x205c('0x1c')](_0x385b24[_0x205c('0x2f')][_0x205c('0x1c')]);}_0x3a2027[_0x205c('0x37')]=qs[_0x205c('0x38')](_0x385b24['query'][_0x205c('0x38')]);_0x3a2027[_0x205c('0x39')]=qs[_0x205c('0x31')](_[_0x205c('0x3a')](_0x385b24[_0x205c('0x2f')],_0x1c9bcc['filters']),_0x19d1a6);if(_0x385b24[_0x205c('0x2f')]['filter']){_0x3a2027[_0x205c('0x39')]=_['merge'](_0x3a2027[_0x205c('0x39')],{'$or':_[_0x205c('0x29')](_0x19d1a6,function(_0xfc6437){if(_0xfc6437['type']!=='VIRTUAL'){var _0x2acda0={};_0x2acda0[_0xfc6437['name']]={'$like':'%'+_0x385b24['query'][_0x205c('0x3b')]+'%'};return _0x2acda0;}})});}_0x3a2027=_[_0x205c('0x3c')]({},_0x3a2027,_0x385b24[_0x205c('0x3d')]);var _0x142c04={'where':_0x3a2027['where']};return db[_0x205c('0x2a')][_0x205c('0x1f')](_0x142c04)[_0x205c('0x3e')](function(_0x56b288){_0x5a9c49[_0x205c('0x1f')]=_0x56b288;if(_0x385b24[_0x205c('0x2f')][_0x205c('0x3f')]){_0x3a2027['include']=[{'all':!![]}];}return db[_0x205c('0x2a')][_0x205c('0x40')](_0x3a2027);})[_0x205c('0x3e')](function(_0x1435cf){_0x5a9c49[_0x205c('0x41')]=_0x1435cf;return _0x5a9c49;})['then'](respondWithFilteredResult(_0x5dca4b,_0x3a2027))[_0x205c('0x42')](handleError(_0x5dca4b,null));};exports[_0x205c('0x43')]=function(_0x2feeff,_0x50eb17){var _0x2bf12f={'raw':![],'where':{'id':_0x2feeff['params']['id']}},_0x5dcda4={};_0x5dcda4[_0x205c('0x2e')]=_['keys'](db[_0x205c('0x2a')][_0x205c('0x44')]);_0x5dcda4['query']=_[_0x205c('0x30')](_0x2feeff['query']);_0x5dcda4['filters']=_['intersection'](_0x5dcda4[_0x205c('0x2e')],_0x5dcda4[_0x205c('0x2f')]);_0x2bf12f[_0x205c('0x33')]=_[_0x205c('0x32')](_0x5dcda4[_0x205c('0x2e')],qs['fields'](_0x2feeff['query'][_0x205c('0x34')]));_0x2bf12f[_0x205c('0x33')]=_0x2bf12f[_0x205c('0x33')][_0x205c('0x45')]?_0x2bf12f[_0x205c('0x33')]:_0x5dcda4['model'];if(_0x2feeff[_0x205c('0x2f')][_0x205c('0x3f')]){_0x2bf12f[_0x205c('0x46')]=[{'all':!![]}];}_0x2bf12f=_[_0x205c('0x3c')]({},_0x2bf12f,_0x2feeff[_0x205c('0x3d')]);return db[_0x205c('0x2a')]['find'](_0x2bf12f)[_0x205c('0x3e')](handleEntityNotFound(_0x50eb17,null))[_0x205c('0x3e')](respondWithResult(_0x50eb17,null))[_0x205c('0x42')](handleError(_0x50eb17,null));};exports['create']=function(_0x2f28b7,_0x318c1d){return db[_0x205c('0x2a')][_0x205c('0x47')](_0x2f28b7['body'],{})['then'](respondWithResult(_0x318c1d,0xc9))['catch'](handleError(_0x318c1d,null));};exports[_0x205c('0x48')]=function(_0x14bc23,_0xd0fc1f){if(_0x14bc23['body']['id']){delete _0x14bc23[_0x205c('0x49')]['id'];}return db[_0x205c('0x2a')]['find']({'where':{'id':_0x14bc23['params']['id']}})[_0x205c('0x3e')](handleEntityNotFound(_0xd0fc1f,null))['then'](saveUpdates(_0x14bc23[_0x205c('0x49')],null))[_0x205c('0x3e')](respondWithResult(_0xd0fc1f,null))[_0x205c('0x42')](handleError(_0xd0fc1f,null));};exports[_0x205c('0x24')]=function(_0x2f6e67,_0x2b8a4a){return db[_0x205c('0x2a')][_0x205c('0x4a')]({'where':{'id':_0x2f6e67['params']['id']}})[_0x205c('0x3e')](handleEntityNotFound(_0x2b8a4a,null))[_0x205c('0x3e')](removeEntity(_0x2b8a4a,null))[_0x205c('0x42')](handleError(_0x2b8a4a,null));};exports[_0x205c('0x4b')]=function(_0x220d32,_0x54b2d5,_0x26c33b){var _0x161167={};var _0x5f3434={};var _0x57052a;var _0x4735b3;return db[_0x205c('0x2a')][_0x205c('0x4c')]({'where':{'id':_0x220d32[_0x205c('0x4d')]['id']}})['then'](handleEntityNotFound(_0x54b2d5,null))['then'](function(_0xf5e817){if(_0xf5e817){_0x57052a=_0xf5e817;_0x5f3434['model']=_[_0x205c('0x30')](db['VtigerField'][_0x205c('0x44')]);_0x5f3434[_0x205c('0x2f')]=_[_0x205c('0x30')](_0x220d32['query']);_0x5f3434[_0x205c('0x31')]=_[_0x205c('0x32')](_0x5f3434[_0x205c('0x2e')],_0x5f3434[_0x205c('0x2f')]);_0x161167[_0x205c('0x33')]=_[_0x205c('0x32')](_0x5f3434[_0x205c('0x2e')],qs[_0x205c('0x34')](_0x220d32[_0x205c('0x2f')][_0x205c('0x34')]));_0x161167[_0x205c('0x33')]=_0x161167['attributes']['length']?_0x161167[_0x205c('0x33')]:_0x5f3434[_0x205c('0x2e')];_0x161167[_0x205c('0x37')]=qs[_0x205c('0x38')](_0x220d32[_0x205c('0x2f')][_0x205c('0x38')]);_0x161167['where']=qs[_0x205c('0x31')](_[_0x205c('0x3a')](_0x220d32[_0x205c('0x2f')],_0x5f3434[_0x205c('0x31')]));if(_0x220d32[_0x205c('0x2f')][_0x205c('0x3b')]){_0x161167[_0x205c('0x39')]=_[_0x205c('0x3c')](_0x161167[_0x205c('0x39')],{'$or':_['map'](_0x161167['attributes'],function(_0x2e18a1){var _0x48dac4={};_0x48dac4[_0x2e18a1]={'$like':'%'+_0x220d32['query'][_0x205c('0x3b')]+'%'};return _0x48dac4;})});}_0x161167=_[_0x205c('0x3c')]({},_0x161167,_0x220d32[_0x205c('0x3d')]);return _0x57052a[_0x205c('0x4b')](_0x161167);}})[_0x205c('0x3e')](function(_0x901cad){if(_0x901cad){_0x4735b3=_0x901cad['length'];if(!_0x220d32[_0x205c('0x2f')][_0x205c('0x35')](_0x205c('0x36'))){_0x161167[_0x205c('0x1d')]=qs[_0x205c('0x1d')](_0x220d32[_0x205c('0x2f')][_0x205c('0x1d')]);_0x161167[_0x205c('0x1c')]=qs[_0x205c('0x1c')](_0x220d32[_0x205c('0x2f')]['offset']);}return _0x57052a[_0x205c('0x4b')](_0x161167);}})[_0x205c('0x3e')](function(_0x40bfdd){if(_0x40bfdd){return _0x40bfdd?{'count':_0x4735b3,'rows':_0x40bfdd}:null;}})['then'](respondWithResult(_0x54b2d5,null))[_0x205c('0x42')](handleError(_0x54b2d5,null));};exports['getSubjects']=function(_0x4d0822,_0x5cd094,_0x3b553d){var _0x555dee={};var _0x33a943={};var _0x384f1f;var _0x3fa138;return db[_0x205c('0x2a')][_0x205c('0x4c')]({'where':{'id':_0x4d0822[_0x205c('0x4d')]['id']}})[_0x205c('0x3e')](handleEntityNotFound(_0x5cd094,null))[_0x205c('0x3e')](function(_0x215d68){if(_0x215d68){_0x384f1f=_0x215d68;_0x33a943[_0x205c('0x2e')]=_['keys'](db[_0x205c('0x4e')][_0x205c('0x44')]);_0x33a943[_0x205c('0x2f')]=_[_0x205c('0x30')](_0x4d0822[_0x205c('0x2f')]);_0x33a943[_0x205c('0x31')]=_[_0x205c('0x32')](_0x33a943[_0x205c('0x2e')],_0x33a943[_0x205c('0x2f')]);_0x555dee[_0x205c('0x33')]=_['intersection'](_0x33a943[_0x205c('0x2e')],qs[_0x205c('0x34')](_0x4d0822[_0x205c('0x2f')][_0x205c('0x34')]));_0x555dee[_0x205c('0x33')]=_0x555dee['attributes'][_0x205c('0x45')]?_0x555dee[_0x205c('0x33')]:_0x33a943['model'];_0x555dee['order']=qs['sort'](_0x4d0822['query']['sort']);_0x555dee[_0x205c('0x39')]=qs[_0x205c('0x31')](_[_0x205c('0x3a')](_0x4d0822[_0x205c('0x2f')],_0x33a943[_0x205c('0x31')]));if(_0x4d0822[_0x205c('0x2f')][_0x205c('0x3b')]){_0x555dee[_0x205c('0x39')]=_['merge'](_0x555dee[_0x205c('0x39')],{'$or':_[_0x205c('0x29')](_0x555dee[_0x205c('0x33')],function(_0x1d9e62){var _0x5d5e5d={};_0x5d5e5d[_0x1d9e62]={'$like':'%'+_0x4d0822[_0x205c('0x2f')][_0x205c('0x3b')]+'%'};return _0x5d5e5d;})});}_0x555dee=_[_0x205c('0x3c')]({},_0x555dee,_0x4d0822[_0x205c('0x3d')]);return _0x384f1f[_0x205c('0x4f')](_0x555dee);}})[_0x205c('0x3e')](function(_0x2823da){if(_0x2823da){_0x3fa138=_0x2823da['length'];if(!_0x4d0822[_0x205c('0x2f')][_0x205c('0x35')](_0x205c('0x36'))){_0x555dee['limit']=qs['limit'](_0x4d0822['query']['limit']);_0x555dee[_0x205c('0x1c')]=qs[_0x205c('0x1c')](_0x4d0822['query'][_0x205c('0x1c')]);}return _0x384f1f['getSubjects'](_0x555dee);}})['then'](function(_0x3c02f0){if(_0x3c02f0){return _0x3c02f0?{'count':_0x3fa138,'rows':_0x3c02f0}:null;}})[_0x205c('0x3e')](respondWithResult(_0x5cd094,null))[_0x205c('0x42')](handleError(_0x5cd094,null));};exports[_0x205c('0x50')]=function(_0x4b598d,_0x242d51,_0x5cbb5d){var _0xf1c5e3={};var _0x4b8236={};var _0x5117c0;var _0x54b8ad;return db[_0x205c('0x2a')][_0x205c('0x4c')]({'where':{'id':_0x4b598d['params']['id']}})[_0x205c('0x3e')](handleEntityNotFound(_0x242d51,null))['then'](function(_0xecd20f){if(_0xecd20f){_0x5117c0=_0xecd20f;_0x4b8236['model']=_['keys'](db[_0x205c('0x4e')][_0x205c('0x44')]);_0x4b8236['query']=_['keys'](_0x4b598d[_0x205c('0x2f')]);_0x4b8236[_0x205c('0x31')]=_[_0x205c('0x32')](_0x4b8236['model'],_0x4b8236[_0x205c('0x2f')]);_0xf1c5e3['attributes']=_[_0x205c('0x32')](_0x4b8236['model'],qs[_0x205c('0x34')](_0x4b598d['query'][_0x205c('0x34')]));_0xf1c5e3['attributes']=_0xf1c5e3[_0x205c('0x33')]['length']?_0xf1c5e3['attributes']:_0x4b8236[_0x205c('0x2e')];_0xf1c5e3['order']=qs[_0x205c('0x38')](_0x4b598d['query'][_0x205c('0x38')]);_0xf1c5e3[_0x205c('0x39')]=qs['filters'](_[_0x205c('0x3a')](_0x4b598d['query'],_0x4b8236[_0x205c('0x31')]));if(_0x4b598d['query'][_0x205c('0x3b')]){_0xf1c5e3[_0x205c('0x39')]=_[_0x205c('0x3c')](_0xf1c5e3[_0x205c('0x39')],{'$or':_['map'](_0xf1c5e3['attributes'],function(_0x1b52c9){var _0x5c1a18={};_0x5c1a18[_0x1b52c9]={'$like':'%'+_0x4b598d[_0x205c('0x2f')][_0x205c('0x3b')]+'%'};return _0x5c1a18;})});}_0xf1c5e3=_[_0x205c('0x3c')]({},_0xf1c5e3,_0x4b598d[_0x205c('0x3d')]);return _0x5117c0[_0x205c('0x50')](_0xf1c5e3);}})['then'](function(_0xd0bd6b){if(_0xd0bd6b){_0x54b8ad=_0xd0bd6b[_0x205c('0x45')];if(!_0x4b598d['query'][_0x205c('0x35')]('nolimit')){_0xf1c5e3[_0x205c('0x1d')]=qs[_0x205c('0x1d')](_0x4b598d['query'][_0x205c('0x1d')]);_0xf1c5e3[_0x205c('0x1c')]=qs[_0x205c('0x1c')](_0x4b598d[_0x205c('0x2f')]['offset']);}return _0x5117c0[_0x205c('0x50')](_0xf1c5e3);}})[_0x205c('0x3e')](function(_0x557d98){if(_0x557d98){return _0x557d98?{'count':_0x54b8ad,'rows':_0x557d98}:null;}})[_0x205c('0x3e')](respondWithResult(_0x242d51,null))[_0x205c('0x42')](handleError(_0x242d51,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8cf8=['./intVtigerConfiguration.attributes','exports','define','VtigerConfiguration','../../config/logger','moment','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x210603,_0x4adbac){var _0x1bcb7d=function(_0x2cdf89){while(--_0x2cdf89){_0x210603['push'](_0x210603['shift']());}};_0x1bcb7d(++_0x4adbac);}(_0x8cf8,0x11c));var _0x88cf=function(_0x5559d9,_0x5e2331){_0x5559d9=_0x5559d9-0x0;var _0x6ab9f5=_0x8cf8[_0x5559d9];return _0x6ab9f5;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x88cf('0x0'))('api');var moment=require(_0x88cf('0x1'));var BPromise=require(_0x88cf('0x2'));var rp=require(_0x88cf('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x88cf('0x4'));var config=require(_0x88cf('0x5'));var attributes=require(_0x88cf('0x6'));module[_0x88cf('0x7')]=function(_0x47c938,_0x58f621){return _0x47c938[_0x88cf('0x8')](_0x88cf('0x9'),attributes,{'tableName':'int_vtiger_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5eaa=['define','int_vtiger_configurations','lodash','../../config/logger','api','bluebird','path','rimraf','../../config/environment','./intVtigerConfiguration.attributes','exports'];(function(_0x37e845,_0x219f9f){var _0x59e55b=function(_0x5dc6c8){while(--_0x5dc6c8){_0x37e845['push'](_0x37e845['shift']());}};_0x59e55b(++_0x219f9f);}(_0x5eaa,0x1c5));var _0xa5ea=function(_0x1151ec,_0x4576b9){_0x1151ec=_0x1151ec-0x0;var _0xce4b78=_0x5eaa[_0x1151ec];return _0xce4b78;};'use strict';var _=require(_0xa5ea('0x0'));var util=require('util');var logger=require(_0xa5ea('0x1'))(_0xa5ea('0x2'));var moment=require('moment');var BPromise=require(_0xa5ea('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xa5ea('0x4'));var rimraf=require(_0xa5ea('0x5'));var config=require(_0xa5ea('0x6'));var attributes=require(_0xa5ea('0x7'));module[_0xa5ea('0x8')]=function(_0x5e63c1,_0x12c558){return _0x5e63c1[_0xa5ea('0x9')]('VtigerConfiguration',attributes,{'tableName':_0xa5ea('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ac3=['request\x20sent','result','catch','util','moment','bluebird','../../mysqldb','../../config/logger','../../config/environment','client','http','request','info','VtigerConfiguration,\x20%s,\x20%s','debug','VtigerConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','message'];(function(_0x15024,_0x425ead){var _0x4d5936=function(_0xbe91fb){while(--_0xbe91fb){_0x15024['push'](_0x15024['shift']());}};_0x4d5936(++_0x425ead);}(_0x9ac3,0x1de));var _0x39ac=function(_0x42e8f3,_0x5c8dba){_0x42e8f3=_0x42e8f3-0x0;var _0x47feab=_0x9ac3[_0x42e8f3];return _0x47feab;};'use strict';var _=require('lodash');var util=require(_0x39ac('0x0'));var moment=require(_0x39ac('0x1'));var BPromise=require(_0x39ac('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x39ac('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x39ac('0x4'))('rpc');var config=require(_0x39ac('0x5'));var jayson=require('jayson/promise');var client=jayson[_0x39ac('0x6')][_0x39ac('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x41a74b,_0x2b3ff4,_0xc66f6c){return new BPromise(function(_0x6074d3,_0x26bd48){return client[_0x39ac('0x8')](_0x41a74b,_0xc66f6c)['then'](function(_0x527d8d){logger[_0x39ac('0x9')](_0x39ac('0xa'),_0x2b3ff4,'request\x20sent');logger[_0x39ac('0xb')](_0x39ac('0xc'),_0x2b3ff4,'request\x20sent',JSON[_0x39ac('0xd')](_0x527d8d));if(_0x527d8d[_0x39ac('0xe')]){if(_0x527d8d[_0x39ac('0xe')]['code']===0x1f4){logger['error']('VtigerConfiguration,\x20%s,\x20%s',_0x2b3ff4,_0x527d8d['error'][_0x39ac('0xf')]);return _0x26bd48(_0x527d8d['error'][_0x39ac('0xf')]);}logger[_0x39ac('0xe')](_0x39ac('0xa'),_0x2b3ff4,_0x527d8d[_0x39ac('0xe')][_0x39ac('0xf')]);return _0x6074d3(_0x527d8d[_0x39ac('0xe')][_0x39ac('0xf')]);}else{logger[_0x39ac('0x9')](_0x39ac('0xa'),_0x2b3ff4,_0x39ac('0x10'));_0x6074d3(_0x527d8d[_0x39ac('0x11')][_0x39ac('0xf')]);}})[_0x39ac('0x12')](function(_0x3da60d){logger['error'](_0x39ac('0xa'),_0x2b3ff4,_0x3da60d);_0x26bd48(_0x3da60d);});});}
\ No newline at end of file
+var _0xae56=['then','info','VtigerConfiguration,\x20%s,\x20%s','request\x20sent','debug','VtigerConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','http','request'];(function(_0x5a885b,_0x25eba0){var _0x5c8823=function(_0x59a3e3){while(--_0x59a3e3){_0x5a885b['push'](_0x5a885b['shift']());}};_0x5c8823(++_0x25eba0);}(_0xae56,0x165));var _0x6ae5=function(_0x3dfdae,_0x5c9fb9){_0x3dfdae=_0x3dfdae-0x0;var _0xd2373b=_0xae56[_0x3dfdae];return _0xd2373b;};'use strict';var _=require(_0x6ae5('0x0'));var util=require(_0x6ae5('0x1'));var moment=require(_0x6ae5('0x2'));var BPromise=require(_0x6ae5('0x3'));var rs=require(_0x6ae5('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6ae5('0x5'))['db'];var utils=require(_0x6ae5('0x6'));var logger=require('../../config/logger')(_0x6ae5('0x7'));var config=require('../../config/environment');var jayson=require(_0x6ae5('0x8'));var client=jayson['client'][_0x6ae5('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x258dad,_0x39ca94,_0x50d568){return new BPromise(function(_0x5ebeea,_0x3e32f4){return client[_0x6ae5('0xa')](_0x258dad,_0x50d568)[_0x6ae5('0xb')](function(_0x2ba9f3){logger[_0x6ae5('0xc')](_0x6ae5('0xd'),_0x39ca94,_0x6ae5('0xe'));logger[_0x6ae5('0xf')](_0x6ae5('0x10'),_0x39ca94,_0x6ae5('0xe'),JSON[_0x6ae5('0x11')](_0x2ba9f3));if(_0x2ba9f3[_0x6ae5('0x12')]){if(_0x2ba9f3['error'][_0x6ae5('0x13')]===0x1f4){logger[_0x6ae5('0x12')](_0x6ae5('0xd'),_0x39ca94,_0x2ba9f3['error'][_0x6ae5('0x14')]);return _0x3e32f4(_0x2ba9f3[_0x6ae5('0x12')]['message']);}logger[_0x6ae5('0x12')](_0x6ae5('0xd'),_0x39ca94,_0x2ba9f3[_0x6ae5('0x12')][_0x6ae5('0x14')]);return _0x5ebeea(_0x2ba9f3['error'][_0x6ae5('0x14')]);}else{logger[_0x6ae5('0xc')](_0x6ae5('0xd'),_0x39ca94,_0x6ae5('0xe'));_0x5ebeea(_0x2ba9f3[_0x6ae5('0x15')]['message']);}})[_0x6ae5('0x16')](function(_0x154afe){logger[_0x6ae5('0x12')](_0x6ae5('0xd'),_0x39ca94,_0x154afe);_0x3e32f4(_0x154afe);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d5a=['update','delete','destroy','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intVtigerField.controller','get','/:id','show','post','isAuthenticated','create','put'];(function(_0x14a384,_0x46c371){var _0x1d3191=function(_0xfe20ba){while(--_0xfe20ba){_0x14a384['push'](_0x14a384['shift']());}};_0x1d3191(++_0x46c371);}(_0x8d5a,0x1bb));var _0xa8d5=function(_0x173441,_0x26b0d9){_0x173441=_0x173441-0x0;var _0x2423a8=_0x8d5a[_0x173441];return _0x2423a8;};'use strict';var multer=require(_0xa8d5('0x0'));var util=require(_0xa8d5('0x1'));var path=require(_0xa8d5('0x2'));var timeout=require(_0xa8d5('0x3'));var express=require(_0xa8d5('0x4'));var router=express['Router']();var fs_extra=require(_0xa8d5('0x5'));var auth=require(_0xa8d5('0x6'));var interaction=require(_0xa8d5('0x7'));var config=require(_0xa8d5('0x8'));var controller=require(_0xa8d5('0x9'));router[_0xa8d5('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0xa8d5('0xa')](_0xa8d5('0xb'),auth['isAuthenticated'](),controller[_0xa8d5('0xc')]);router[_0xa8d5('0xd')]('/',auth[_0xa8d5('0xe')](),controller[_0xa8d5('0xf')]);router[_0xa8d5('0x10')]('/:id',auth[_0xa8d5('0xe')](),controller[_0xa8d5('0x11')]);router[_0xa8d5('0x12')]('/:id',auth[_0xa8d5('0xe')](),controller[_0xa8d5('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x1328=['show','post','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intVtigerField.controller','get','isAuthenticated','index','/:id'];(function(_0x2914c7,_0x1ae194){var _0x485e84=function(_0x5a71f3){while(--_0x5a71f3){_0x2914c7['push'](_0x2914c7['shift']());}};_0x485e84(++_0x1ae194);}(_0x1328,0xf9));var _0x8132=function(_0x1cd47d,_0x55bc75){_0x1cd47d=_0x1cd47d-0x0;var _0x29d52f=_0x1328[_0x1cd47d];return _0x29d52f;};'use strict';var multer=require(_0x8132('0x0'));var util=require(_0x8132('0x1'));var path=require(_0x8132('0x2'));var timeout=require(_0x8132('0x3'));var express=require(_0x8132('0x4'));var router=express[_0x8132('0x5')]();var fs_extra=require(_0x8132('0x6'));var auth=require(_0x8132('0x7'));var interaction=require(_0x8132('0x8'));var config=require(_0x8132('0x9'));var controller=require(_0x8132('0xa'));router[_0x8132('0xb')]('/',auth[_0x8132('0xc')](),controller[_0x8132('0xd')]);router[_0x8132('0xb')](_0x8132('0xe'),auth[_0x8132('0xc')](),controller[_0x8132('0xf')]);router[_0x8132('0x10')]('/',auth['isAuthenticated'](),controller['create']);router[_0x8132('0x11')]('/:id',auth[_0x8132('0xc')](),controller[_0x8132('0x12')]);router[_0x8132('0x13')]('/:id',auth[_0x8132('0xc')](),controller[_0x8132('0x14')]);module[_0x8132('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x09f8=['customVariable','keyValue','string','STRING','sequelize','exports','ENUM','variable'];(function(_0xf2d299,_0x43e8a9){var _0x307c08=function(_0x1d4619){while(--_0x1d4619){_0xf2d299['push'](_0xf2d299['shift']());}};_0x307c08(++_0x43e8a9);}(_0x09f8,0xac));var _0x809f=function(_0x19ed23,_0x203152){_0x19ed23=_0x19ed23-0x0;var _0x371f7b=_0x09f8[_0x19ed23];return _0x371f7b;};'use strict';var Sequelize=require(_0x809f('0x0'));module[_0x809f('0x1')]={'type':{'type':Sequelize[_0x809f('0x2')]('string',_0x809f('0x3'),_0x809f('0x4'),_0x809f('0x5'),'picklist'),'defaultValue':_0x809f('0x6')},'content':{'type':Sequelize[_0x809f('0x7')]},'key':{'type':Sequelize[_0x809f('0x7')]},'keyType':{'type':Sequelize[_0x809f('0x2')](_0x809f('0x6'),_0x809f('0x3'),_0x809f('0x4'))},'keyContent':{'type':Sequelize[_0x809f('0x7')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x809f('0x7')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x132a=['STRING','ENUM','string','variable','customVariable','keyValue','picklist'];(function(_0x221f12,_0x544366){var _0x21964d=function(_0x7063ac){while(--_0x7063ac){_0x221f12['push'](_0x221f12['shift']());}};_0x21964d(++_0x544366);}(_0x132a,0x64));var _0xa132=function(_0x273ef0,_0x1a40d7){_0x273ef0=_0x273ef0-0x0;var _0x50f42e=_0x132a[_0x273ef0];return _0x50f42e;};'use strict';var Sequelize=require('sequelize');module['exports']={'type':{'type':Sequelize['ENUM'](_0xa132('0x0'),_0xa132('0x1'),_0xa132('0x2'),_0xa132('0x3'),_0xa132('0x4')),'defaultValue':_0xa132('0x0')},'content':{'type':Sequelize[_0xa132('0x5')]},'key':{'type':Sequelize[_0xa132('0x5')]},'keyType':{'type':Sequelize[_0xa132('0x6')](_0xa132('0x0'),_0xa132('0x1'),_0xa132('0x2'))},'keyContent':{'type':Sequelize[_0xa132('0x5')]},'idField':{'type':Sequelize[_0xa132('0x5')]},'nameField':{'type':Sequelize[_0xa132('0x5')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bb2=['catch','show','params','length','includeAll','find','create','body','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','then','destroy','error','stack','name','send','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filters','merge','map','VIRTUAL','filter','VtigerField','include','findAll','rows'];(function(_0x32e2ea,_0x2b35f0){var _0x2fdc15=function(_0xa6f097){while(--_0xa6f097){_0x32e2ea['push'](_0x32e2ea['shift']());}};_0x2fdc15(++_0x2b35f0);}(_0x0bb2,0x16b));var _0x20bb=function(_0x38b7b4,_0x431b0a){_0x38b7b4=_0x38b7b4-0x0;var _0x3bc00e=_0x0bb2[_0x38b7b4];return _0x3bc00e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x20bb('0x0'));var zipdir=require(_0x20bb('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x20bb('0x2'));var moment=require(_0x20bb('0x3'));var BPromise=require(_0x20bb('0x4'));var Mustache=require(_0x20bb('0x5'));var util=require(_0x20bb('0x6'));var path=require(_0x20bb('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x20bb('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x20bb('0x9'));var squel=require(_0x20bb('0xa'));var crypto=require(_0x20bb('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x20bb('0xc'));var toCsv=require('to-csv');var querystring=require(_0x20bb('0xd'));var Papa=require(_0x20bb('0xe'));var Redis=require('ioredis');var authService=require(_0x20bb('0xf'));var qs=require(_0x20bb('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x20bb('0x11'));var logger=require(_0x20bb('0x12'))(_0x20bb('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x20bb('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2bedbb,_0x3a6f6b){_0x3a6f6b=_0x3a6f6b||0xcc;return function(_0x5d1bd5){if(_0x5d1bd5){return _0x2bedbb[_0x20bb('0x15')](_0x3a6f6b);}return _0x2bedbb[_0x20bb('0x16')](_0x3a6f6b)[_0x20bb('0x17')]();};}function respondWithResult(_0x5b4ccb,_0x3052ea){_0x3052ea=_0x3052ea||0xc8;return function(_0x1cd0ae){if(_0x1cd0ae){return _0x5b4ccb[_0x20bb('0x16')](_0x3052ea)[_0x20bb('0x18')](_0x1cd0ae);}};}function respondWithFilteredResult(_0x257e9a,_0x1e0ef2){return function(_0x1de528){if(_0x1de528){var _0x3a3f94=typeof _0x1e0ef2[_0x20bb('0x19')]===_0x20bb('0x1a')&&typeof _0x1e0ef2[_0x20bb('0x1b')]===_0x20bb('0x1a');var _0x2f0572=_0x1de528['count'];var _0x344b6f=_0x3a3f94?0x0:_0x1e0ef2[_0x20bb('0x19')];var _0x107e96=_0x3a3f94?_0x1de528[_0x20bb('0x1c')]:_0x1e0ef2['offset']+_0x1e0ef2[_0x20bb('0x1b')];var _0x496c42;if(_0x107e96>=_0x2f0572){_0x107e96=_0x2f0572;_0x496c42=0xc8;}else{_0x496c42=0xce;}_0x257e9a[_0x20bb('0x16')](_0x496c42);return _0x257e9a[_0x20bb('0x1d')](_0x20bb('0x1e'),_0x344b6f+'-'+_0x107e96+'/'+_0x2f0572)['json'](_0x1de528);}return null;};}function patchUpdates(_0x5081ef){return function(_0x54a5ce){try{jsonpatch[_0x20bb('0x1f')](_0x54a5ce,_0x5081ef,!![]);}catch(_0x3f63b9){return BPromise['reject'](_0x3f63b9);}return _0x54a5ce['save']();};}function saveUpdates(_0x2ea768,_0x487c7e){return function(_0x434042){if(_0x434042){return _0x434042['update'](_0x2ea768)[_0x20bb('0x20')](function(_0x3427b2){return _0x3427b2;});}return null;};}function removeEntity(_0x430e9f,_0x288bfe){return function(_0x42c357){if(_0x42c357){return _0x42c357[_0x20bb('0x21')]()[_0x20bb('0x20')](function(){_0x430e9f[_0x20bb('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4c92ed,_0x1cff17){return function(_0x86fefe){if(!_0x86fefe){_0x4c92ed[_0x20bb('0x15')](0x194);}return _0x86fefe;};}function handleError(_0x2c74e4,_0x4c5f28){_0x4c5f28=_0x4c5f28||0x1f4;return function(_0x1d3569){logger[_0x20bb('0x22')](_0x1d3569[_0x20bb('0x23')]);if(_0x1d3569[_0x20bb('0x24')]){delete _0x1d3569['name'];}_0x2c74e4[_0x20bb('0x16')](_0x4c5f28)[_0x20bb('0x25')](_0x1d3569);};}exports['index']=function(_0x5a84ee,_0x35eca4){var _0x4b58d6={},_0x402172={},_0x25ac0b={'count':0x0,'rows':[]};var _0x1ae7a1=_['map'](db['VtigerField'][_0x20bb('0x26')],function(_0x5eff08){return{'name':_0x5eff08[_0x20bb('0x27')],'type':_0x5eff08[_0x20bb('0x28')][_0x20bb('0x29')]};});_0x402172[_0x20bb('0x2a')]=_['map'](_0x1ae7a1,_0x20bb('0x24'));_0x402172[_0x20bb('0x2b')]=_[_0x20bb('0x2c')](_0x5a84ee[_0x20bb('0x2b')]);_0x402172['filters']=_[_0x20bb('0x2d')](_0x402172['model'],_0x402172[_0x20bb('0x2b')]);_0x4b58d6[_0x20bb('0x2e')]=_[_0x20bb('0x2d')](_0x402172['model'],qs[_0x20bb('0x2f')](_0x5a84ee[_0x20bb('0x2b')][_0x20bb('0x2f')]));_0x4b58d6['attributes']=_0x4b58d6[_0x20bb('0x2e')]['length']?_0x4b58d6[_0x20bb('0x2e')]:_0x402172[_0x20bb('0x2a')];if(!_0x5a84ee[_0x20bb('0x2b')][_0x20bb('0x30')](_0x20bb('0x31'))){_0x4b58d6[_0x20bb('0x1b')]=qs[_0x20bb('0x1b')](_0x5a84ee[_0x20bb('0x2b')][_0x20bb('0x1b')]);_0x4b58d6[_0x20bb('0x19')]=qs['offset'](_0x5a84ee[_0x20bb('0x2b')][_0x20bb('0x19')]);}_0x4b58d6[_0x20bb('0x32')]=qs[_0x20bb('0x33')](_0x5a84ee[_0x20bb('0x2b')]['sort']);_0x4b58d6[_0x20bb('0x34')]=qs['filters'](_[_0x20bb('0x35')](_0x5a84ee[_0x20bb('0x2b')],_0x402172[_0x20bb('0x36')]),_0x1ae7a1);if(_0x5a84ee['query']['filter']){_0x4b58d6['where']=_[_0x20bb('0x37')](_0x4b58d6[_0x20bb('0x34')],{'$or':_[_0x20bb('0x38')](_0x1ae7a1,function(_0x3ab782){if(_0x3ab782['type']!==_0x20bb('0x39')){var _0x108037={};_0x108037[_0x3ab782['name']]={'$like':'%'+_0x5a84ee[_0x20bb('0x2b')][_0x20bb('0x3a')]+'%'};return _0x108037;}})});}_0x4b58d6=_['merge']({},_0x4b58d6,_0x5a84ee['options']);var _0xab221c={'where':_0x4b58d6[_0x20bb('0x34')]};return db[_0x20bb('0x3b')][_0x20bb('0x1c')](_0xab221c)[_0x20bb('0x20')](function(_0x4b512e){_0x25ac0b[_0x20bb('0x1c')]=_0x4b512e;if(_0x5a84ee[_0x20bb('0x2b')]['includeAll']){_0x4b58d6[_0x20bb('0x3c')]=[{'all':!![]}];}return db[_0x20bb('0x3b')][_0x20bb('0x3d')](_0x4b58d6);})[_0x20bb('0x20')](function(_0x34c2e0){_0x25ac0b[_0x20bb('0x3e')]=_0x34c2e0;return _0x25ac0b;})[_0x20bb('0x20')](respondWithFilteredResult(_0x35eca4,_0x4b58d6))[_0x20bb('0x3f')](handleError(_0x35eca4,null));};exports[_0x20bb('0x40')]=function(_0x4f7ec1,_0x59ef33){var _0x489e92={'raw':!![],'where':{'id':_0x4f7ec1[_0x20bb('0x41')]['id']}},_0x1e80c2={};_0x1e80c2['model']=_[_0x20bb('0x2c')](db[_0x20bb('0x3b')][_0x20bb('0x26')]);_0x1e80c2['query']=_[_0x20bb('0x2c')](_0x4f7ec1[_0x20bb('0x2b')]);_0x1e80c2[_0x20bb('0x36')]=_[_0x20bb('0x2d')](_0x1e80c2['model'],_0x1e80c2[_0x20bb('0x2b')]);_0x489e92[_0x20bb('0x2e')]=_[_0x20bb('0x2d')](_0x1e80c2[_0x20bb('0x2a')],qs[_0x20bb('0x2f')](_0x4f7ec1[_0x20bb('0x2b')][_0x20bb('0x2f')]));_0x489e92[_0x20bb('0x2e')]=_0x489e92['attributes'][_0x20bb('0x42')]?_0x489e92[_0x20bb('0x2e')]:_0x1e80c2['model'];if(_0x4f7ec1[_0x20bb('0x2b')][_0x20bb('0x43')]){_0x489e92[_0x20bb('0x3c')]=[{'all':!![]}];}_0x489e92=_['merge']({},_0x489e92,_0x4f7ec1['options']);return db[_0x20bb('0x3b')][_0x20bb('0x44')](_0x489e92)[_0x20bb('0x20')](handleEntityNotFound(_0x59ef33,null))['then'](respondWithResult(_0x59ef33,null))[_0x20bb('0x3f')](handleError(_0x59ef33,null));};exports[_0x20bb('0x45')]=function(_0x43f6e5,_0x149793){return db[_0x20bb('0x3b')][_0x20bb('0x45')](_0x43f6e5[_0x20bb('0x46')],{})[_0x20bb('0x20')](respondWithResult(_0x149793,0xc9))[_0x20bb('0x3f')](handleError(_0x149793,null));};exports['update']=function(_0x51b0a2,_0x4faa9f){if(_0x51b0a2[_0x20bb('0x46')]['id']){delete _0x51b0a2[_0x20bb('0x46')]['id'];}return db['VtigerField'][_0x20bb('0x44')]({'where':{'id':_0x51b0a2[_0x20bb('0x41')]['id']}})[_0x20bb('0x20')](handleEntityNotFound(_0x4faa9f,null))[_0x20bb('0x20')](saveUpdates(_0x51b0a2[_0x20bb('0x46')],null))[_0x20bb('0x20')](respondWithResult(_0x4faa9f,null))['catch'](handleError(_0x4faa9f,null));};exports[_0x20bb('0x21')]=function(_0x5ec0b7,_0x463122){return db[_0x20bb('0x3b')][_0x20bb('0x44')]({'where':{'id':_0x5ec0b7[_0x20bb('0x41')]['id']}})[_0x20bb('0x20')](handleEntityNotFound(_0x463122,null))[_0x20bb('0x20')](removeEntity(_0x463122,null))[_0x20bb('0x3f')](handleError(_0x463122,null));};
\ No newline at end of file
+var _0xba9a=['../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','index','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','include','VtigerField','findAll','rows','params','includeAll','find','create','body','catch','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x35a72a,_0x57cbcf){var _0x2ac359=function(_0x30cc41){while(--_0x30cc41){_0x35a72a['push'](_0x35a72a['shift']());}};_0x2ac359(++_0x57cbcf);}(_0xba9a,0xd7));var _0xaba9=function(_0x20c996,_0xdda3d5){_0x20c996=_0x20c996-0x0;var _0x53051f=_0xba9a[_0x20c996];return _0x53051f;};'use strict';var emlformat=require(_0xaba9('0x0'));var rimraf=require(_0xaba9('0x1'));var zipdir=require(_0xaba9('0x2'));var jsonpatch=require(_0xaba9('0x3'));var rp=require(_0xaba9('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xaba9('0x5'));var util=require(_0xaba9('0x6'));var path=require(_0xaba9('0x7'));var sox=require(_0xaba9('0x8'));var csv=require(_0xaba9('0x9'));var ejs=require(_0xaba9('0xa'));var fs=require('fs');var fs_extra=require(_0xaba9('0xb'));var _=require(_0xaba9('0xc'));var squel=require('squel');var crypto=require(_0xaba9('0xd'));var jsforce=require(_0xaba9('0xe'));var deskjs=require(_0xaba9('0xf'));var toCsv=require('to-csv');var querystring=require(_0xaba9('0x10'));var Papa=require('papaparse');var Redis=require(_0xaba9('0x11'));var authService=require(_0xaba9('0x12'));var qs=require(_0xaba9('0x13'));var as=require(_0xaba9('0x14'));var hardwareService=require(_0xaba9('0x15'));var logger=require(_0xaba9('0x16'))(_0xaba9('0x17'));var utils=require('../../config/utils');var config=require(_0xaba9('0x18'));var licenseUtil=require(_0xaba9('0x19'));var db=require(_0xaba9('0x1a'))['db'];function respondWithStatusCode(_0x634e8d,_0x1fce55){_0x1fce55=_0x1fce55||0xcc;return function(_0x26ebaf){if(_0x26ebaf){return _0x634e8d[_0xaba9('0x1b')](_0x1fce55);}return _0x634e8d[_0xaba9('0x1c')](_0x1fce55)[_0xaba9('0x1d')]();};}function respondWithResult(_0x3d7441,_0x5a21c7){_0x5a21c7=_0x5a21c7||0xc8;return function(_0x27297f){if(_0x27297f){return _0x3d7441[_0xaba9('0x1c')](_0x5a21c7)[_0xaba9('0x1e')](_0x27297f);}};}function respondWithFilteredResult(_0x505554,_0x39ef2c){return function(_0x3dee70){if(_0x3dee70){var _0x408a14=typeof _0x39ef2c[_0xaba9('0x1f')]==='undefined'&&typeof _0x39ef2c[_0xaba9('0x20')]===_0xaba9('0x21');var _0xebc1ba=_0x3dee70[_0xaba9('0x22')];var _0x5c2340=_0x408a14?0x0:_0x39ef2c['offset'];var _0x517942=_0x408a14?_0x3dee70[_0xaba9('0x22')]:_0x39ef2c[_0xaba9('0x1f')]+_0x39ef2c['limit'];var _0x1bf191;if(_0x517942>=_0xebc1ba){_0x517942=_0xebc1ba;_0x1bf191=0xc8;}else{_0x1bf191=0xce;}_0x505554['status'](_0x1bf191);return _0x505554[_0xaba9('0x23')](_0xaba9('0x24'),_0x5c2340+'-'+_0x517942+'/'+_0xebc1ba)['json'](_0x3dee70);}return null;};}function patchUpdates(_0x4435ae){return function(_0x25b04){try{jsonpatch[_0xaba9('0x25')](_0x25b04,_0x4435ae,!![]);}catch(_0x5ed79d){return BPromise['reject'](_0x5ed79d);}return _0x25b04[_0xaba9('0x26')]();};}function saveUpdates(_0x5d20fd,_0x1a10b6){return function(_0x4a0bef){if(_0x4a0bef){return _0x4a0bef[_0xaba9('0x27')](_0x5d20fd)[_0xaba9('0x28')](function(_0xf04369){return _0xf04369;});}return null;};}function removeEntity(_0x165f75,_0x100306){return function(_0x3d2b1b){if(_0x3d2b1b){return _0x3d2b1b[_0xaba9('0x29')]()[_0xaba9('0x28')](function(){_0x165f75[_0xaba9('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x345d2a,_0x1ec62e){return function(_0xecd6f){if(!_0xecd6f){_0x345d2a[_0xaba9('0x1b')](0x194);}return _0xecd6f;};}function handleError(_0x4076b0,_0x245aa4){_0x245aa4=_0x245aa4||0x1f4;return function(_0x51b060){logger[_0xaba9('0x2a')](_0x51b060[_0xaba9('0x2b')]);if(_0x51b060[_0xaba9('0x2c')]){delete _0x51b060[_0xaba9('0x2c')];}_0x4076b0['status'](_0x245aa4)[_0xaba9('0x2d')](_0x51b060);};}exports[_0xaba9('0x2e')]=function(_0x367ac3,_0xf6d4de){var _0x15942e={},_0x407ad7={},_0x1c5fed={'count':0x0,'rows':[]};var _0x28eeab=_['map'](db['VtigerField'][_0xaba9('0x2f')],function(_0x344459){return{'name':_0x344459[_0xaba9('0x30')],'type':_0x344459[_0xaba9('0x31')][_0xaba9('0x32')]};});_0x407ad7[_0xaba9('0x33')]=_[_0xaba9('0x34')](_0x28eeab,'name');_0x407ad7[_0xaba9('0x35')]=_[_0xaba9('0x36')](_0x367ac3['query']);_0x407ad7[_0xaba9('0x37')]=_[_0xaba9('0x38')](_0x407ad7[_0xaba9('0x33')],_0x407ad7[_0xaba9('0x35')]);_0x15942e[_0xaba9('0x39')]=_[_0xaba9('0x38')](_0x407ad7[_0xaba9('0x33')],qs[_0xaba9('0x3a')](_0x367ac3[_0xaba9('0x35')]['fields']));_0x15942e[_0xaba9('0x39')]=_0x15942e[_0xaba9('0x39')][_0xaba9('0x3b')]?_0x15942e[_0xaba9('0x39')]:_0x407ad7[_0xaba9('0x33')];if(!_0x367ac3['query']['hasOwnProperty'](_0xaba9('0x3c'))){_0x15942e[_0xaba9('0x20')]=qs[_0xaba9('0x20')](_0x367ac3[_0xaba9('0x35')][_0xaba9('0x20')]);_0x15942e[_0xaba9('0x1f')]=qs['offset'](_0x367ac3[_0xaba9('0x35')][_0xaba9('0x1f')]);}_0x15942e[_0xaba9('0x3d')]=qs['sort'](_0x367ac3[_0xaba9('0x35')][_0xaba9('0x3e')]);_0x15942e[_0xaba9('0x3f')]=qs['filters'](_[_0xaba9('0x40')](_0x367ac3[_0xaba9('0x35')],_0x407ad7[_0xaba9('0x37')]),_0x28eeab);if(_0x367ac3[_0xaba9('0x35')][_0xaba9('0x41')]){_0x15942e[_0xaba9('0x3f')]=_['merge'](_0x15942e['where'],{'$or':_['map'](_0x28eeab,function(_0x201928){if(_0x201928[_0xaba9('0x31')]!==_0xaba9('0x42')){var _0x3cf0e9={};_0x3cf0e9[_0x201928['name']]={'$like':'%'+_0x367ac3[_0xaba9('0x35')][_0xaba9('0x41')]+'%'};return _0x3cf0e9;}})});}_0x15942e=_[_0xaba9('0x43')]({},_0x15942e,_0x367ac3[_0xaba9('0x44')]);var _0x2ce4af={'where':_0x15942e[_0xaba9('0x3f')]};return db['VtigerField']['count'](_0x2ce4af)[_0xaba9('0x28')](function(_0x590485){_0x1c5fed['count']=_0x590485;if(_0x367ac3[_0xaba9('0x35')]['includeAll']){_0x15942e[_0xaba9('0x45')]=[{'all':!![]}];}return db[_0xaba9('0x46')][_0xaba9('0x47')](_0x15942e);})[_0xaba9('0x28')](function(_0x52479d){_0x1c5fed[_0xaba9('0x48')]=_0x52479d;return _0x1c5fed;})[_0xaba9('0x28')](respondWithFilteredResult(_0xf6d4de,_0x15942e))['catch'](handleError(_0xf6d4de,null));};exports['show']=function(_0x47771d,_0x11a27c){var _0x369b4c={'raw':!![],'where':{'id':_0x47771d[_0xaba9('0x49')]['id']}},_0x5f30d2={};_0x5f30d2[_0xaba9('0x33')]=_[_0xaba9('0x36')](db[_0xaba9('0x46')][_0xaba9('0x2f')]);_0x5f30d2[_0xaba9('0x35')]=_['keys'](_0x47771d['query']);_0x5f30d2[_0xaba9('0x37')]=_[_0xaba9('0x38')](_0x5f30d2['model'],_0x5f30d2[_0xaba9('0x35')]);_0x369b4c[_0xaba9('0x39')]=_[_0xaba9('0x38')](_0x5f30d2[_0xaba9('0x33')],qs[_0xaba9('0x3a')](_0x47771d[_0xaba9('0x35')][_0xaba9('0x3a')]));_0x369b4c[_0xaba9('0x39')]=_0x369b4c['attributes'][_0xaba9('0x3b')]?_0x369b4c['attributes']:_0x5f30d2[_0xaba9('0x33')];if(_0x47771d[_0xaba9('0x35')][_0xaba9('0x4a')]){_0x369b4c[_0xaba9('0x45')]=[{'all':!![]}];}_0x369b4c=_[_0xaba9('0x43')]({},_0x369b4c,_0x47771d[_0xaba9('0x44')]);return db[_0xaba9('0x46')][_0xaba9('0x4b')](_0x369b4c)[_0xaba9('0x28')](handleEntityNotFound(_0x11a27c,null))[_0xaba9('0x28')](respondWithResult(_0x11a27c,null))['catch'](handleError(_0x11a27c,null));};exports[_0xaba9('0x4c')]=function(_0x4620fa,_0xf74256){return db['VtigerField'][_0xaba9('0x4c')](_0x4620fa[_0xaba9('0x4d')],{})[_0xaba9('0x28')](respondWithResult(_0xf74256,0xc9))[_0xaba9('0x4e')](handleError(_0xf74256,null));};exports[_0xaba9('0x27')]=function(_0x542406,_0x1b3c1e){if(_0x542406[_0xaba9('0x4d')]['id']){delete _0x542406['body']['id'];}return db[_0xaba9('0x46')][_0xaba9('0x4b')]({'where':{'id':_0x542406['params']['id']}})[_0xaba9('0x28')](handleEntityNotFound(_0x1b3c1e,null))[_0xaba9('0x28')](saveUpdates(_0x542406[_0xaba9('0x4d')],null))['then'](respondWithResult(_0x1b3c1e,null))['catch'](handleError(_0x1b3c1e,null));};exports[_0xaba9('0x29')]=function(_0x1605ca,_0x5492c5){return db['VtigerField'][_0xaba9('0x4b')]({'where':{'id':_0x1605ca[_0xaba9('0x49')]['id']}})[_0xaba9('0x28')](handleEntityNotFound(_0x5492c5,null))[_0xaba9('0x28')](removeEntity(_0x5492c5,null))[_0xaba9('0x4e')](handleError(_0x5492c5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1523=['bluebird','path','rimraf','../../config/environment','./intVtigerField.attributes','exports','define','VtigerField','int_vtiger_fields','vtiger_unique_index','idField','FieldId','lodash','../../config/logger','api','moment'];(function(_0x16dbfd,_0x2f9431){var _0x382254=function(_0x19dade){while(--_0x19dade){_0x16dbfd['push'](_0x16dbfd['shift']());}};_0x382254(++_0x2f9431);}(_0x1523,0x13c));var _0x3152=function(_0x3756f5,_0x33fe57){_0x3756f5=_0x3756f5-0x0;var _0x682f22=_0x1523[_0x3756f5];return _0x682f22;};'use strict';var _=require(_0x3152('0x0'));var util=require('util');var logger=require(_0x3152('0x1'))(_0x3152('0x2'));var moment=require(_0x3152('0x3'));var BPromise=require(_0x3152('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x3152('0x5'));var rimraf=require(_0x3152('0x6'));var config=require(_0x3152('0x7'));var attributes=require(_0x3152('0x8'));module[_0x3152('0x9')]=function(_0x50c765,_0x579719){return _0x50c765[_0x3152('0xa')](_0x3152('0xb'),attributes,{'tableName':_0x3152('0xc'),'paranoid':![],'indexes':[{'name':_0x3152('0xd'),'fields':[_0x3152('0xe'),_0x3152('0xf')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x096d=['vtiger_unique_index','idField','FieldId','util','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intVtigerField.attributes','define','VtigerField','int_vtiger_fields'];(function(_0x525c7b,_0x488fcc){var _0x27b33e=function(_0x56d43b){while(--_0x56d43b){_0x525c7b['push'](_0x525c7b['shift']());}};_0x27b33e(++_0x488fcc);}(_0x096d,0x199));var _0xd096=function(_0x48f9d2,_0x33ba0d){_0x48f9d2=_0x48f9d2-0x0;var _0x5228da=_0x096d[_0x48f9d2];return _0x5228da;};'use strict';var _=require('lodash');var util=require(_0xd096('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0xd096('0x1'));var BPromise=require(_0xd096('0x2'));var rp=require(_0xd096('0x3'));var fs=require('fs');var path=require(_0xd096('0x4'));var rimraf=require(_0xd096('0x5'));var config=require(_0xd096('0x6'));var attributes=require(_0xd096('0x7'));module['exports']=function(_0xbb8bac,_0x293d7d){return _0xbb8bac[_0xd096('0x8')](_0xd096('0x9'),attributes,{'tableName':_0xd096('0xa'),'paranoid':![],'indexes':[{'name':_0xd096('0xb'),'fields':[_0xd096('0xc'),_0xd096('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3498=['../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','VtigerField,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','bluebird','randomstring'];(function(_0x540b25,_0x4d054b){var _0x2edc2c=function(_0x5f2701){while(--_0x5f2701){_0x540b25['push'](_0x540b25['shift']());}};_0x2edc2c(++_0x4d054b);}(_0x3498,0x10f));var _0x8349=function(_0x4443d2,_0x3290b0){_0x4443d2=_0x4443d2-0x0;var _0x31d0b6=_0x3498[_0x4443d2];return _0x31d0b6;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x8349('0x0'));var rs=require(_0x8349('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8349('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0x8349('0x3'))(_0x8349('0x4'));var config=require(_0x8349('0x5'));var jayson=require(_0x8349('0x6'));var client=jayson[_0x8349('0x7')][_0x8349('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x2e8218,_0x340fe3,_0x415702){return new BPromise(function(_0x354c6c,_0x20c620){return client[_0x8349('0x9')](_0x2e8218,_0x415702)[_0x8349('0xa')](function(_0x1070bc){logger[_0x8349('0xb')](_0x8349('0xc'),_0x340fe3,_0x8349('0xd'));logger[_0x8349('0xe')]('VtigerField,\x20%s,\x20%s,\x20%s',_0x340fe3,_0x8349('0xd'),JSON[_0x8349('0xf')](_0x1070bc));if(_0x1070bc[_0x8349('0x10')]){if(_0x1070bc[_0x8349('0x10')][_0x8349('0x11')]===0x1f4){logger[_0x8349('0x10')](_0x8349('0xc'),_0x340fe3,_0x1070bc[_0x8349('0x10')]['message']);return _0x20c620(_0x1070bc[_0x8349('0x10')][_0x8349('0x12')]);}logger['error'](_0x8349('0xc'),_0x340fe3,_0x1070bc[_0x8349('0x10')]['message']);return _0x354c6c(_0x1070bc[_0x8349('0x10')][_0x8349('0x12')]);}else{logger['info'](_0x8349('0xc'),_0x340fe3,'request\x20sent');_0x354c6c(_0x1070bc[_0x8349('0x13')][_0x8349('0x12')]);}})[_0x8349('0x14')](function(_0x441383){logger[_0x8349('0x10')](_0x8349('0xc'),_0x340fe3,_0x441383);_0x20c620(_0x441383);});});}
\ No newline at end of file
+var _0x8e26=['ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','VtigerField,\x20%s,\x20%s','debug','VtigerField,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','lodash','util','randomstring'];(function(_0x2f7137,_0x31e5bc){var _0x1097c9=function(_0x663205){while(--_0x663205){_0x2f7137['push'](_0x2f7137['shift']());}};_0x1097c9(++_0x31e5bc);}(_0x8e26,0x184));var _0x68e2=function(_0x4baf93,_0x57e399){_0x4baf93=_0x4baf93-0x0;var _0x3fc492=_0x8e26[_0x4baf93];return _0x3fc492;};'use strict';var _=require(_0x68e2('0x0'));var util=require(_0x68e2('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x68e2('0x2'));var fs=require('fs');var Redis=require(_0x68e2('0x3'));var db=require(_0x68e2('0x4'))['db'];var utils=require(_0x68e2('0x5'));var logger=require(_0x68e2('0x6'))('rpc');var config=require(_0x68e2('0x7'));var jayson=require(_0x68e2('0x8'));var client=jayson[_0x68e2('0x9')][_0x68e2('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2e21c5,_0x2ce1b5,_0xfe1ea3){return new BPromise(function(_0xa346d6,_0x17218e){return client[_0x68e2('0xb')](_0x2e21c5,_0xfe1ea3)[_0x68e2('0xc')](function(_0x454fb0){logger[_0x68e2('0xd')](_0x68e2('0xe'),_0x2ce1b5,'request\x20sent');logger[_0x68e2('0xf')](_0x68e2('0x10'),_0x2ce1b5,_0x68e2('0x11'),JSON[_0x68e2('0x12')](_0x454fb0));if(_0x454fb0[_0x68e2('0x13')]){if(_0x454fb0['error']['code']===0x1f4){logger[_0x68e2('0x13')]('VtigerField,\x20%s,\x20%s',_0x2ce1b5,_0x454fb0['error']['message']);return _0x17218e(_0x454fb0[_0x68e2('0x13')][_0x68e2('0x14')]);}logger[_0x68e2('0x13')](_0x68e2('0xe'),_0x2ce1b5,_0x454fb0[_0x68e2('0x13')][_0x68e2('0x14')]);return _0xa346d6(_0x454fb0[_0x68e2('0x13')][_0x68e2('0x14')]);}else{logger['info'](_0x68e2('0xe'),_0x2ce1b5,_0x68e2('0x11'));_0xa346d6(_0x454fb0[_0x68e2('0x15')][_0x68e2('0x14')]);}})[_0x68e2('0x16')](function(_0x1dcc6f){logger[_0x68e2('0x13')]('VtigerField,\x20%s,\x20%s',_0x2ce1b5,_0x1dcc6f);_0x17218e(_0x1dcc6f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ca3=['create','addConfiguration','put','update','delete','destroy','exports','multer','util','path','express','fs-extra','../../components/auth/service','../../config/environment','./intZendeskAccount.controller','isAuthenticated','index','get','/:id','show','/:id/configurations','getConfigurations','getFields','post'];(function(_0x3e06dd,_0x55694f){var _0x4bbb8b=function(_0x3586fa){while(--_0x3586fa){_0x3e06dd['push'](_0x3e06dd['shift']());}};_0x4bbb8b(++_0x55694f);}(_0x5ca3,0x10f));var _0x35ca=function(_0x42a5a9,_0x2cfee9){_0x42a5a9=_0x42a5a9-0x0;var _0x33d189=_0x5ca3[_0x42a5a9];return _0x33d189;};'use strict';var multer=require(_0x35ca('0x0'));var util=require(_0x35ca('0x1'));var path=require(_0x35ca('0x2'));var timeout=require('connect-timeout');var express=require(_0x35ca('0x3'));var router=express['Router']();var fs_extra=require(_0x35ca('0x4'));var auth=require(_0x35ca('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x35ca('0x6'));var controller=require(_0x35ca('0x7'));router['get']('/',auth[_0x35ca('0x8')](),controller[_0x35ca('0x9')]);router[_0x35ca('0xa')](_0x35ca('0xb'),auth[_0x35ca('0x8')](),controller[_0x35ca('0xc')]);router[_0x35ca('0xa')](_0x35ca('0xd'),auth[_0x35ca('0x8')](),controller[_0x35ca('0xe')]);router['get']('/:id/fields',auth[_0x35ca('0x8')](),controller[_0x35ca('0xf')]);router[_0x35ca('0x10')]('/',auth[_0x35ca('0x8')](),controller[_0x35ca('0x11')]);router[_0x35ca('0x10')]('/:id/configurations',auth[_0x35ca('0x8')](),controller[_0x35ca('0x12')]);router[_0x35ca('0x13')](_0x35ca('0xb'),auth[_0x35ca('0x8')](),controller[_0x35ca('0x14')]);router[_0x35ca('0x15')](_0x35ca('0xb'),auth[_0x35ca('0x8')](),controller[_0x35ca('0x16')]);module[_0x35ca('0x17')]=router;
\ No newline at end of file
+var _0x3338=['post','create','put','update','delete','/:id','destroy','exports','multer','util','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskAccount.controller','get','isAuthenticated','index','/:id/configurations','getConfigurations','/:id/fields','getFields'];(function(_0x465595,_0x49dffa){var _0x4701ec=function(_0x53cf16){while(--_0x53cf16){_0x465595['push'](_0x465595['shift']());}};_0x4701ec(++_0x49dffa);}(_0x3338,0xb0));var _0x8333=function(_0x49ab20,_0x204482){_0x49ab20=_0x49ab20-0x0;var _0x3c10b4=_0x3338[_0x49ab20];return _0x3c10b4;};'use strict';var multer=require(_0x8333('0x0'));var util=require(_0x8333('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x8333('0x2'));var router=express[_0x8333('0x3')]();var fs_extra=require(_0x8333('0x4'));var auth=require(_0x8333('0x5'));var interaction=require(_0x8333('0x6'));var config=require(_0x8333('0x7'));var controller=require(_0x8333('0x8'));router[_0x8333('0x9')]('/',auth[_0x8333('0xa')](),controller[_0x8333('0xb')]);router[_0x8333('0x9')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x8333('0x9')](_0x8333('0xc'),auth['isAuthenticated'](),controller[_0x8333('0xd')]);router[_0x8333('0x9')](_0x8333('0xe'),auth['isAuthenticated'](),controller[_0x8333('0xf')]);router[_0x8333('0x10')]('/',auth[_0x8333('0xa')](),controller[_0x8333('0x11')]);router[_0x8333('0x10')](_0x8333('0xc'),auth[_0x8333('0xa')](),controller['addConfiguration']);router[_0x8333('0x12')]('/:id',auth[_0x8333('0xa')](),controller[_0x8333('0x13')]);router[_0x8333('0x14')](_0x8333('0x15'),auth[_0x8333('0xa')](),controller[_0x8333('0x16')]);module[_0x8333('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x27a0=['STRING','username','ENUM','password','token','newTab','integrationTab','exports'];(function(_0x5146f3,_0xe728c4){var _0x2672bb=function(_0x5a4a34){while(--_0x5a4a34){_0x5146f3['push'](_0x5146f3['shift']());}};_0x2672bb(++_0xe728c4);}(_0x27a0,0xbf));var _0x027a=function(_0x1819f2,_0x17722f){_0x1819f2=_0x1819f2-0x0;var _0x3b4a95=_0x27a0[_0x1819f2];return _0x3b4a95;};'use strict';var Sequelize=require('sequelize');module[_0x027a('0x0')]={'name':{'type':Sequelize[_0x027a('0x1')]},'description':{'type':Sequelize[_0x027a('0x1')]},'username':{'type':Sequelize[_0x027a('0x1')],'unique':_0x027a('0x2')},'password':{'type':Sequelize['STRING']},'token':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize['STRING'],'unique':'remoteUri'},'authType':{'type':Sequelize[_0x027a('0x3')](_0x027a('0x4'),_0x027a('0x5')),'defaultValue':_0x027a('0x4')},'serverUrl':{'type':Sequelize[_0x027a('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x027a('0x3')]('integrationTab',_0x027a('0x6')),'defaultValue':_0x027a('0x7')}};
\ No newline at end of file
+var _0x53ec=['username','remoteUri','ENUM','token','newTab','integrationTab','sequelize','exports','STRING'];(function(_0x2d7eee,_0x3ec8b1){var _0x4231e1=function(_0x6ca897){while(--_0x6ca897){_0x2d7eee['push'](_0x2d7eee['shift']());}};_0x4231e1(++_0x3ec8b1);}(_0x53ec,0x192));var _0xc53e=function(_0x43a5c7,_0x2286bf){_0x43a5c7=_0x43a5c7-0x0;var _0x3b12a2=_0x53ec[_0x43a5c7];return _0x3b12a2;};'use strict';var Sequelize=require(_0xc53e('0x0'));module[_0xc53e('0x1')]={'name':{'type':Sequelize[_0xc53e('0x2')]},'description':{'type':Sequelize[_0xc53e('0x2')]},'username':{'type':Sequelize[_0xc53e('0x2')],'unique':_0xc53e('0x3')},'password':{'type':Sequelize['STRING']},'token':{'type':Sequelize[_0xc53e('0x2')]},'remoteUri':{'type':Sequelize['STRING'],'unique':_0xc53e('0x4')},'authType':{'type':Sequelize[_0xc53e('0x5')]('password',_0xc53e('0x6')),'defaultValue':'password'},'serverUrl':{'type':Sequelize[_0xc53e('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0xc53e('0x5')]('integrationTab',_0xc53e('0x7')),'defaultValue':_0xc53e('0x8')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58a4=['model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','ZendeskAccount','include','findAll','rows','catch','params','rawAttributes','includeAll','find','create','body','getConfigurations','findOne','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','ZendeskConfiguration','ZendeskField','getFields','password','token','remoteUri','slice','substring','lastIndexOf','format','authType','headers','Basic\x20%s','%s:%s','username','toString','base64','Sequelize','ValidationError','Unknown\x20authentication\x20type','subject','description','assignee','ticket_fields','includes','position','title','system_field_options','custom_field_options','test','error','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','json','offset','undefined','limit','count','set','apply','reject','save','update','destroy','then','end','sendStatus','stack','name','send','map','type'];(function(_0x8c43de,_0x90ff31){var _0xa6591b=function(_0x469716){while(--_0x469716){_0x8c43de['push'](_0x8c43de['shift']());}};_0xa6591b(++_0x90ff31);}(_0x58a4,0xbf));var _0x458a=function(_0x41ee16,_0xfa94c3){_0x41ee16=_0x41ee16-0x0;var _0x1f60de=_0x58a4[_0x41ee16];return _0x1f60de;};'use strict';var emlformat=require(_0x458a('0x0'));var rimraf=require(_0x458a('0x1'));var zipdir=require(_0x458a('0x2'));var jsonpatch=require(_0x458a('0x3'));var rp=require(_0x458a('0x4'));var moment=require(_0x458a('0x5'));var BPromise=require(_0x458a('0x6'));var Mustache=require(_0x458a('0x7'));var util=require(_0x458a('0x8'));var path=require(_0x458a('0x9'));var sox=require(_0x458a('0xa'));var csv=require(_0x458a('0xb'));var ejs=require(_0x458a('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x458a('0xd'));var crypto=require(_0x458a('0xe'));var jsforce=require(_0x458a('0xf'));var deskjs=require(_0x458a('0x10'));var toCsv=require(_0x458a('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x458a('0x11'));var authService=require(_0x458a('0x12'));var qs=require(_0x458a('0x13'));var as=require(_0x458a('0x14'));var hardwareService=require(_0x458a('0x15'));var logger=require('../../config/logger')(_0x458a('0x16'));var utils=require(_0x458a('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x458a('0x18'));var db=require(_0x458a('0x19'))['db'];var integrations=require(_0x458a('0x1a'));function respondWithStatusCode(_0x2a4934,_0x2e788b){_0x2e788b=_0x2e788b||0xcc;return function(_0x5bd09e){if(_0x5bd09e){return _0x2a4934['sendStatus'](_0x2e788b);}return _0x2a4934[_0x458a('0x1b')](_0x2e788b)['end']();};}function respondWithResult(_0x2c7528,_0x44f683){_0x44f683=_0x44f683||0xc8;return function(_0x10133b){if(_0x10133b){return _0x2c7528[_0x458a('0x1b')](_0x44f683)[_0x458a('0x1c')](_0x10133b);}};}function respondWithFilteredResult(_0x29acee,_0x507b0f){return function(_0x4b26be){if(_0x4b26be){var _0x5c7993=typeof _0x507b0f[_0x458a('0x1d')]===_0x458a('0x1e')&&typeof _0x507b0f[_0x458a('0x1f')]==='undefined';var _0x310569=_0x4b26be[_0x458a('0x20')];var _0x18504d=_0x5c7993?0x0:_0x507b0f[_0x458a('0x1d')];var _0xa91473=_0x5c7993?_0x4b26be['count']:_0x507b0f['offset']+_0x507b0f[_0x458a('0x1f')];var _0x4d07a7;if(_0xa91473>=_0x310569){_0xa91473=_0x310569;_0x4d07a7=0xc8;}else{_0x4d07a7=0xce;}_0x29acee[_0x458a('0x1b')](_0x4d07a7);return _0x29acee[_0x458a('0x21')]('Content-Range',_0x18504d+'-'+_0xa91473+'/'+_0x310569)[_0x458a('0x1c')](_0x4b26be);}return null;};}function patchUpdates(_0x55a588){return function(_0x200213){try{jsonpatch[_0x458a('0x22')](_0x200213,_0x55a588,!![]);}catch(_0x59f44c){return BPromise[_0x458a('0x23')](_0x59f44c);}return _0x200213[_0x458a('0x24')]();};}function saveUpdates(_0x5a2bcb,_0xa6b8ff){return function(_0x5ad95a){if(_0x5ad95a){return _0x5ad95a[_0x458a('0x25')](_0x5a2bcb)['then'](function(_0x4080fc){return _0x4080fc;});}return null;};}function removeEntity(_0x5dfc6c,_0x36b08e){return function(_0x911eaf){if(_0x911eaf){return _0x911eaf[_0x458a('0x26')]()[_0x458a('0x27')](function(){_0x5dfc6c[_0x458a('0x1b')](0xcc)[_0x458a('0x28')]();});}};}function handleEntityNotFound(_0x340375,_0x3012c7){return function(_0x1f2d0){if(!_0x1f2d0){_0x340375[_0x458a('0x29')](0x194);}return _0x1f2d0;};}function handleError(_0x52efed,_0x327fcb){_0x327fcb=_0x327fcb||0x1f4;return function(_0x21ec38){logger['error'](_0x21ec38[_0x458a('0x2a')]);if(_0x21ec38[_0x458a('0x2b')]){delete _0x21ec38['name'];}_0x52efed['status'](_0x327fcb)[_0x458a('0x2c')](_0x21ec38);};}exports['index']=function(_0x33c5d8,_0x29f9b5){var _0x223f73={},_0x4a49e4={},_0xa6fdf={'count':0x0,'rows':[]};var _0x2531f7=_[_0x458a('0x2d')](db['ZendeskAccount']['rawAttributes'],function(_0x18c890){return{'name':_0x18c890['fieldName'],'type':_0x18c890[_0x458a('0x2e')]['key']};});_0x4a49e4[_0x458a('0x2f')]=_[_0x458a('0x2d')](_0x2531f7,'name');_0x4a49e4[_0x458a('0x30')]=_[_0x458a('0x31')](_0x33c5d8[_0x458a('0x30')]);_0x4a49e4['filters']=_[_0x458a('0x32')](_0x4a49e4[_0x458a('0x2f')],_0x4a49e4[_0x458a('0x30')]);_0x223f73[_0x458a('0x33')]=_[_0x458a('0x32')](_0x4a49e4['model'],qs[_0x458a('0x34')](_0x33c5d8[_0x458a('0x30')][_0x458a('0x34')]));_0x223f73[_0x458a('0x33')]=_0x223f73[_0x458a('0x33')][_0x458a('0x35')]?_0x223f73['attributes']:_0x4a49e4[_0x458a('0x2f')];if(!_0x33c5d8[_0x458a('0x30')][_0x458a('0x36')](_0x458a('0x37'))){_0x223f73[_0x458a('0x1f')]=qs[_0x458a('0x1f')](_0x33c5d8[_0x458a('0x30')][_0x458a('0x1f')]);_0x223f73[_0x458a('0x1d')]=qs['offset'](_0x33c5d8[_0x458a('0x30')][_0x458a('0x1d')]);}_0x223f73[_0x458a('0x38')]=qs[_0x458a('0x39')](_0x33c5d8[_0x458a('0x30')][_0x458a('0x39')]);_0x223f73[_0x458a('0x3a')]=qs[_0x458a('0x3b')](_[_0x458a('0x3c')](_0x33c5d8[_0x458a('0x30')],_0x4a49e4[_0x458a('0x3b')]),_0x2531f7);if(_0x33c5d8[_0x458a('0x30')][_0x458a('0x3d')]){_0x223f73[_0x458a('0x3a')]=_[_0x458a('0x3e')](_0x223f73['where'],{'$or':_[_0x458a('0x2d')](_0x2531f7,function(_0x397a41){if(_0x397a41[_0x458a('0x2e')]!==_0x458a('0x3f')){var _0x3c5840={};_0x3c5840[_0x397a41[_0x458a('0x2b')]]={'$like':'%'+_0x33c5d8[_0x458a('0x30')][_0x458a('0x3d')]+'%'};return _0x3c5840;}})});}_0x223f73=_[_0x458a('0x3e')]({},_0x223f73,_0x33c5d8[_0x458a('0x40')]);var _0x20cf10={'where':_0x223f73['where']};return db[_0x458a('0x41')][_0x458a('0x20')](_0x20cf10)['then'](function(_0x430bda){_0xa6fdf[_0x458a('0x20')]=_0x430bda;if(_0x33c5d8[_0x458a('0x30')]['includeAll']){_0x223f73[_0x458a('0x42')]=[{'all':!![]}];}return db[_0x458a('0x41')][_0x458a('0x43')](_0x223f73);})[_0x458a('0x27')](function(_0xbcd632){_0xa6fdf[_0x458a('0x44')]=_0xbcd632;return _0xa6fdf;})[_0x458a('0x27')](respondWithFilteredResult(_0x29f9b5,_0x223f73))[_0x458a('0x45')](handleError(_0x29f9b5,null));};exports['show']=function(_0x296385,_0x145e3c){var _0x2b9030={'raw':![],'where':{'id':_0x296385[_0x458a('0x46')]['id']}},_0x5180ae={};_0x5180ae[_0x458a('0x2f')]=_['keys'](db[_0x458a('0x41')][_0x458a('0x47')]);_0x5180ae[_0x458a('0x30')]=_[_0x458a('0x31')](_0x296385[_0x458a('0x30')]);_0x5180ae['filters']=_['intersection'](_0x5180ae[_0x458a('0x2f')],_0x5180ae[_0x458a('0x30')]);_0x2b9030[_0x458a('0x33')]=_[_0x458a('0x32')](_0x5180ae['model'],qs[_0x458a('0x34')](_0x296385[_0x458a('0x30')]['fields']));_0x2b9030[_0x458a('0x33')]=_0x2b9030['attributes'][_0x458a('0x35')]?_0x2b9030[_0x458a('0x33')]:_0x5180ae[_0x458a('0x2f')];if(_0x296385['query'][_0x458a('0x48')]){_0x2b9030[_0x458a('0x42')]=[{'all':!![]}];}_0x2b9030=_[_0x458a('0x3e')]({},_0x2b9030,_0x296385['options']);return db['ZendeskAccount'][_0x458a('0x49')](_0x2b9030)[_0x458a('0x27')](handleEntityNotFound(_0x145e3c,null))[_0x458a('0x27')](respondWithResult(_0x145e3c,null))['catch'](handleError(_0x145e3c,null));};exports['create']=function(_0x3a7005,_0xf362b5){return db[_0x458a('0x41')][_0x458a('0x4a')](_0x3a7005[_0x458a('0x4b')],{})[_0x458a('0x27')](respondWithResult(_0xf362b5,0xc9))[_0x458a('0x45')](handleError(_0xf362b5,null));};exports[_0x458a('0x25')]=function(_0xb22232,_0x213f86){if(_0xb22232[_0x458a('0x4b')]['id']){delete _0xb22232[_0x458a('0x4b')]['id'];}return db[_0x458a('0x41')][_0x458a('0x49')]({'where':{'id':_0xb22232[_0x458a('0x46')]['id']}})[_0x458a('0x27')](handleEntityNotFound(_0x213f86,null))['then'](saveUpdates(_0xb22232[_0x458a('0x4b')],null))[_0x458a('0x27')](respondWithResult(_0x213f86,null))[_0x458a('0x45')](handleError(_0x213f86,null));};exports[_0x458a('0x26')]=function(_0x44670a,_0x5630cf){return db['ZendeskAccount']['find']({'where':{'id':_0x44670a[_0x458a('0x46')]['id']}})['then'](handleEntityNotFound(_0x5630cf,null))[_0x458a('0x27')](removeEntity(_0x5630cf,null))[_0x458a('0x45')](handleError(_0x5630cf,null));};exports[_0x458a('0x4c')]=function(_0x649553,_0xfa6e65,_0x5f0151){var _0x48f68e={};var _0x3d7616={};var _0x2d8b77;var _0x2587a1;return db[_0x458a('0x41')][_0x458a('0x4d')]({'where':{'id':_0x649553['params']['id']}})[_0x458a('0x27')](handleEntityNotFound(_0xfa6e65,null))['then'](function(_0xa51e28){if(_0xa51e28){_0x2d8b77=_0xa51e28;_0x3d7616['model']=_[_0x458a('0x31')](db['ZendeskConfiguration']['rawAttributes']);_0x3d7616['query']=_[_0x458a('0x31')](_0x649553[_0x458a('0x30')]);_0x3d7616['filters']=_[_0x458a('0x32')](_0x3d7616[_0x458a('0x2f')],_0x3d7616[_0x458a('0x30')]);_0x48f68e['attributes']=_[_0x458a('0x32')](_0x3d7616[_0x458a('0x2f')],qs[_0x458a('0x34')](_0x649553[_0x458a('0x30')][_0x458a('0x34')]));_0x48f68e[_0x458a('0x33')]=_0x48f68e['attributes'][_0x458a('0x35')]?_0x48f68e[_0x458a('0x33')]:_0x3d7616[_0x458a('0x2f')];_0x48f68e[_0x458a('0x38')]=qs[_0x458a('0x39')](_0x649553[_0x458a('0x30')][_0x458a('0x39')]);_0x48f68e[_0x458a('0x3a')]=qs['filters'](_[_0x458a('0x3c')](_0x649553['query'],_0x3d7616[_0x458a('0x3b')]));if(_0x649553[_0x458a('0x30')][_0x458a('0x3d')]){_0x48f68e[_0x458a('0x3a')]=_['merge'](_0x48f68e['where'],{'$or':_[_0x458a('0x2d')](_0x48f68e[_0x458a('0x33')],function(_0x2b9aac){var _0x156a22={};_0x156a22[_0x2b9aac]={'$like':'%'+_0x649553[_0x458a('0x30')][_0x458a('0x3d')]+'%'};return _0x156a22;})});}_0x48f68e=_['merge']({},_0x48f68e,_0x649553[_0x458a('0x40')]);return _0x2d8b77[_0x458a('0x4c')](_0x48f68e);}})['then'](function(_0x18d83a){if(_0x18d83a){_0x2587a1=_0x18d83a['length'];if(!_0x649553[_0x458a('0x30')][_0x458a('0x36')](_0x458a('0x37'))){_0x48f68e[_0x458a('0x1f')]=qs[_0x458a('0x1f')](_0x649553[_0x458a('0x30')][_0x458a('0x1f')]);_0x48f68e[_0x458a('0x1d')]=qs['offset'](_0x649553[_0x458a('0x30')][_0x458a('0x1d')]);}return _0x2d8b77['getConfigurations'](_0x48f68e);}})[_0x458a('0x27')](function(_0x3da617){if(_0x3da617){return _0x3da617?{'count':_0x2587a1,'rows':_0x3da617}:null;}})['then'](respondWithResult(_0xfa6e65,null))[_0x458a('0x45')](handleError(_0xfa6e65,null));};exports[_0x458a('0x4e')]=function(_0x47cbcf,_0x17b611,_0x180df0){if(_0x47cbcf['body']['id']){delete _0x47cbcf[_0x458a('0x4b')]['id'];}return db[_0x458a('0x41')][_0x458a('0x4d')]({'where':{'id':_0x47cbcf[_0x458a('0x46')]['id']}})[_0x458a('0x27')](handleEntityNotFound(_0x17b611,null))[_0x458a('0x27')](function(_0x4199a7){if(_0x4199a7){_0x47cbcf[_0x458a('0x4b')]['AccountId']=_0x4199a7['id'];_0x47cbcf[_0x458a('0x4b')][_0x458a('0x4f')]=integrations[_0x458a('0x50')](_0x47cbcf[_0x458a('0x4b')][_0x458a('0x51')],_0x47cbcf[_0x458a('0x4b')][_0x458a('0x2e')]);_0x47cbcf[_0x458a('0x4b')][_0x458a('0x52')]=integrations[_0x458a('0x53')](_0x47cbcf['body'][_0x458a('0x51')],_0x47cbcf['body'][_0x458a('0x2e')]);return db[_0x458a('0x54')][_0x458a('0x4a')](_0x47cbcf[_0x458a('0x4b')],{'include':[{'model':db[_0x458a('0x55')],'as':_0x458a('0x4f')},{'model':db[_0x458a('0x55')],'as':_0x458a('0x52')}]});}return null;})[_0x458a('0x27')](respondWithResult(_0x17b611,null))[_0x458a('0x45')](handleError(_0x17b611,null));};exports[_0x458a('0x56')]=function(_0x448cbc,_0x11bbba,_0x435884){var _0x3948aa='';return db[_0x458a('0x41')]['findOne']({'where':{'id':_0x448cbc[_0x458a('0x46')]['id']},'attributes':['id','username',_0x458a('0x57'),_0x458a('0x58'),'authType',_0x458a('0x59')]})[_0x458a('0x27')](handleEntityNotFound(_0x11bbba,null))[_0x458a('0x27')](function(_0x494710){if(_0x494710){_0x3948aa=_0x494710[_0x458a('0x59')];var _0xed002=_0x3948aa[_0x458a('0x5a')](-0x1);if(_0xed002==='/'){_0x3948aa=_0x3948aa[_0x458a('0x5b')](0x0,_0x3948aa[_0x458a('0x5c')](_0xed002));}var _0x42f213={'method':'GET','uri':util[_0x458a('0x5d')]('%s/%s',_0x3948aa,'ticket_fields'),'json':!![]};switch(_0x494710[_0x458a('0x5e')]){case _0x458a('0x57'):_0x42f213[_0x458a('0x5f')]={'Authorization':util[_0x458a('0x5d')](_0x458a('0x60'),new Buffer(util[_0x458a('0x5d')](_0x458a('0x61'),_0x494710[_0x458a('0x62')],_0x494710[_0x458a('0x57')]))[_0x458a('0x63')](_0x458a('0x64')))};break;case _0x458a('0x58'):_0x42f213[_0x458a('0x5f')]={'Authorization':util[_0x458a('0x5d')]('Basic\x20%s',new Buffer(util['format']('%s/token:%s',_0x494710[_0x458a('0x62')],_0x494710['token']))[_0x458a('0x63')](_0x458a('0x64')))};break;default:throw new db[(_0x458a('0x65'))][(_0x458a('0x66'))](_0x458a('0x67'));}return rp(_0x42f213);}})[_0x458a('0x27')](function(_0x46df7c){if(_0x46df7c){var _0x49f3ee=[_0x458a('0x68'),_0x458a('0x69'),'group',_0x458a('0x6a')];_['remove'](_0x46df7c[_0x458a('0x6b')],function(_0x58d29d){return _0x49f3ee[_0x458a('0x6c')](_0x58d29d[_0x458a('0x2e')]);});return{'count':_0x46df7c[_0x458a('0x6b')][_0x458a('0x35')],'rows':_['map'](_0x46df7c[_0x458a('0x6b')],function(_0x14b95e){return{'id':_0x14b95e['id'],'name':_0x14b95e[_0x458a('0x6d')]>0x7?_0x14b95e[_0x458a('0x6e')]:_0x14b95e[_0x458a('0x2e')],'custom':_0x14b95e[_0x458a('0x6d')]>0x7?!![]:![],'options':_0x14b95e[_0x458a('0x6f')]?_0x14b95e[_0x458a('0x6f')]:_0x14b95e['custom_field_options']?_0x14b95e[_0x458a('0x70')]:[]};})};}})[_0x458a('0x27')](respondWithResult(_0x11bbba,null))[_0x458a('0x45')](function(_0x4212af){var _0x591dbb=_0x448cbc[_0x458a('0x30')][_0x458a('0x71')]?0x1f4:_0x4212af['statusCode']||0x1f4;logger[_0x458a('0x72')](_0x458a('0x73'),_0x458a('0x56'),_0x591dbb,JSON[_0x458a('0x74')](_0x4212af));delete _0x4212af[_0x458a('0x2b')];if(_0x591dbb===0x191){_0x591dbb=0x190;}_0x11bbba['status'](_0x591dbb)[_0x458a('0x2c')](_0x448cbc[_0x458a('0x30')][_0x458a('0x71')]?{'message':_0x458a('0x75'),'statusCode':_0x4212af[_0x458a('0x76')]}:_0x4212af);});};
\ No newline at end of file
+var _0x878f=['username','password','token','authType','remoteUri','substring','lastIndexOf','GET','format','%s/%s','ticket_fields','Basic\x20%s','%s:%s','toString','headers','%s/token:%s','base64','Sequelize','ValidationError','subject','description','group','assignee','includes','position','title','system_field_options','test','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','statusCode','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','end','json','offset','undefined','limit','count','status','Content-Range','apply','reject','save','update','then','error','name','send','index','ZendeskAccount','type','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','filters','catch','create','body','destroy','getConfigurations','findOne','ZendeskConfiguration','addConfiguration','getSubjects','channel','Descriptions','getDescriptions','ZendeskField','Subjects'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x878f,0x173));var _0xf878=function(_0xea24a9,_0x277e0c){_0xea24a9=_0xea24a9-0x0;var _0x555612=_0x878f[_0xea24a9];return _0x555612;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf878('0x0'));var zipdir=require(_0xf878('0x1'));var jsonpatch=require(_0xf878('0x2'));var rp=require(_0xf878('0x3'));var moment=require(_0xf878('0x4'));var BPromise=require(_0xf878('0x5'));var Mustache=require(_0xf878('0x6'));var util=require(_0xf878('0x7'));var path=require(_0xf878('0x8'));var sox=require(_0xf878('0x9'));var csv=require(_0xf878('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf878('0xb'));var squel=require(_0xf878('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xf878('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xf878('0xd'));var authService=require(_0xf878('0xe'));var qs=require(_0xf878('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf878('0x10'));var logger=require(_0xf878('0x11'))('api');var utils=require(_0xf878('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xf878('0x13'));var db=require(_0xf878('0x14'))['db'];var integrations=require(_0xf878('0x15'));function respondWithStatusCode(_0x596fb5,_0x1ce004){_0x1ce004=_0x1ce004||0xcc;return function(_0x38eddf){if(_0x38eddf){return _0x596fb5[_0xf878('0x16')](_0x1ce004);}return _0x596fb5['status'](_0x1ce004)[_0xf878('0x17')]();};}function respondWithResult(_0x3902f7,_0x119e9e){_0x119e9e=_0x119e9e||0xc8;return function(_0x492260){if(_0x492260){return _0x3902f7['status'](_0x119e9e)[_0xf878('0x18')](_0x492260);}};}function respondWithFilteredResult(_0x35ff2d,_0x31d888){return function(_0x6dbeca){if(_0x6dbeca){var _0x44aacc=typeof _0x31d888[_0xf878('0x19')]===_0xf878('0x1a')&&typeof _0x31d888[_0xf878('0x1b')]===_0xf878('0x1a');var _0x3a55f3=_0x6dbeca[_0xf878('0x1c')];var _0x47a91a=_0x44aacc?0x0:_0x31d888[_0xf878('0x19')];var _0x34ae59=_0x44aacc?_0x6dbeca[_0xf878('0x1c')]:_0x31d888[_0xf878('0x19')]+_0x31d888[_0xf878('0x1b')];var _0x237d15;if(_0x34ae59>=_0x3a55f3){_0x34ae59=_0x3a55f3;_0x237d15=0xc8;}else{_0x237d15=0xce;}_0x35ff2d[_0xf878('0x1d')](_0x237d15);return _0x35ff2d['set'](_0xf878('0x1e'),_0x47a91a+'-'+_0x34ae59+'/'+_0x3a55f3)[_0xf878('0x18')](_0x6dbeca);}return null;};}function patchUpdates(_0x250f85){return function(_0x59efcb){try{jsonpatch[_0xf878('0x1f')](_0x59efcb,_0x250f85,!![]);}catch(_0x23590c){return BPromise[_0xf878('0x20')](_0x23590c);}return _0x59efcb[_0xf878('0x21')]();};}function saveUpdates(_0x22d884,_0x442450){return function(_0x1cbc92){if(_0x1cbc92){return _0x1cbc92[_0xf878('0x22')](_0x22d884)[_0xf878('0x23')](function(_0x1a6506){return _0x1a6506;});}return null;};}function removeEntity(_0x45e61f,_0x566995){return function(_0x2ac38b){if(_0x2ac38b){return _0x2ac38b['destroy']()[_0xf878('0x23')](function(){_0x45e61f[_0xf878('0x1d')](0xcc)[_0xf878('0x17')]();});}};}function handleEntityNotFound(_0x280036,_0x20449e){return function(_0x5ebaa0){if(!_0x5ebaa0){_0x280036['sendStatus'](0x194);}return _0x5ebaa0;};}function handleError(_0x59ba7b,_0x242926){_0x242926=_0x242926||0x1f4;return function(_0x3baba4){logger[_0xf878('0x24')](_0x3baba4['stack']);if(_0x3baba4[_0xf878('0x25')]){delete _0x3baba4[_0xf878('0x25')];}_0x59ba7b[_0xf878('0x1d')](_0x242926)[_0xf878('0x26')](_0x3baba4);};}exports[_0xf878('0x27')]=function(_0x5aff46,_0x502322){var _0x9a127d={},_0x5d9c97={},_0x4a0286={'count':0x0,'rows':[]};var _0x31e2e1=_['map'](db[_0xf878('0x28')]['rawAttributes'],function(_0x2c61c1){return{'name':_0x2c61c1['fieldName'],'type':_0x2c61c1[_0xf878('0x29')]['key']};});_0x5d9c97[_0xf878('0x2a')]=_[_0xf878('0x2b')](_0x31e2e1,_0xf878('0x25'));_0x5d9c97[_0xf878('0x2c')]=_[_0xf878('0x2d')](_0x5aff46[_0xf878('0x2c')]);_0x5d9c97['filters']=_[_0xf878('0x2e')](_0x5d9c97[_0xf878('0x2a')],_0x5d9c97[_0xf878('0x2c')]);_0x9a127d[_0xf878('0x2f')]=_[_0xf878('0x2e')](_0x5d9c97['model'],qs[_0xf878('0x30')](_0x5aff46[_0xf878('0x2c')]['fields']));_0x9a127d[_0xf878('0x2f')]=_0x9a127d[_0xf878('0x2f')][_0xf878('0x31')]?_0x9a127d[_0xf878('0x2f')]:_0x5d9c97[_0xf878('0x2a')];if(!_0x5aff46['query'][_0xf878('0x32')](_0xf878('0x33'))){_0x9a127d[_0xf878('0x1b')]=qs[_0xf878('0x1b')](_0x5aff46['query'][_0xf878('0x1b')]);_0x9a127d['offset']=qs['offset'](_0x5aff46[_0xf878('0x2c')][_0xf878('0x19')]);}_0x9a127d[_0xf878('0x34')]=qs[_0xf878('0x35')](_0x5aff46[_0xf878('0x2c')]['sort']);_0x9a127d[_0xf878('0x36')]=qs['filters'](_[_0xf878('0x37')](_0x5aff46[_0xf878('0x2c')],_0x5d9c97['filters']),_0x31e2e1);if(_0x5aff46[_0xf878('0x2c')][_0xf878('0x38')]){_0x9a127d['where']=_[_0xf878('0x39')](_0x9a127d[_0xf878('0x36')],{'$or':_['map'](_0x31e2e1,function(_0x4129c2){if(_0x4129c2[_0xf878('0x29')]!==_0xf878('0x3a')){var _0xc8eb91={};_0xc8eb91[_0x4129c2[_0xf878('0x25')]]={'$like':'%'+_0x5aff46[_0xf878('0x2c')][_0xf878('0x38')]+'%'};return _0xc8eb91;}})});}_0x9a127d=_['merge']({},_0x9a127d,_0x5aff46[_0xf878('0x3b')]);var _0x14340d={'where':_0x9a127d['where']};return db[_0xf878('0x28')]['count'](_0x14340d)['then'](function(_0x2ec109){_0x4a0286[_0xf878('0x1c')]=_0x2ec109;if(_0x5aff46[_0xf878('0x2c')][_0xf878('0x3c')]){_0x9a127d[_0xf878('0x3d')]=[{'all':!![]}];}return db['ZendeskAccount'][_0xf878('0x3e')](_0x9a127d);})['then'](function(_0xb09736){_0x4a0286[_0xf878('0x3f')]=_0xb09736;return _0x4a0286;})['then'](respondWithFilteredResult(_0x502322,_0x9a127d))['catch'](handleError(_0x502322,null));};exports[_0xf878('0x40')]=function(_0x2a66c1,_0x13fcd3){var _0x2f6ee5={'raw':![],'where':{'id':_0x2a66c1[_0xf878('0x41')]['id']}},_0x5d6e03={};_0x5d6e03[_0xf878('0x2a')]=_[_0xf878('0x2d')](db[_0xf878('0x28')]['rawAttributes']);_0x5d6e03[_0xf878('0x2c')]=_[_0xf878('0x2d')](_0x2a66c1[_0xf878('0x2c')]);_0x5d6e03[_0xf878('0x42')]=_[_0xf878('0x2e')](_0x5d6e03[_0xf878('0x2a')],_0x5d6e03['query']);_0x2f6ee5[_0xf878('0x2f')]=_[_0xf878('0x2e')](_0x5d6e03[_0xf878('0x2a')],qs[_0xf878('0x30')](_0x2a66c1[_0xf878('0x2c')]['fields']));_0x2f6ee5[_0xf878('0x2f')]=_0x2f6ee5[_0xf878('0x2f')][_0xf878('0x31')]?_0x2f6ee5[_0xf878('0x2f')]:_0x5d6e03['model'];if(_0x2a66c1[_0xf878('0x2c')][_0xf878('0x3c')]){_0x2f6ee5[_0xf878('0x3d')]=[{'all':!![]}];}_0x2f6ee5=_['merge']({},_0x2f6ee5,_0x2a66c1['options']);return db[_0xf878('0x28')]['find'](_0x2f6ee5)['then'](handleEntityNotFound(_0x13fcd3,null))['then'](respondWithResult(_0x13fcd3,null))[_0xf878('0x43')](handleError(_0x13fcd3,null));};exports['create']=function(_0x156fdb,_0x450a10){return db[_0xf878('0x28')][_0xf878('0x44')](_0x156fdb[_0xf878('0x45')],{})[_0xf878('0x23')](respondWithResult(_0x450a10,0xc9))[_0xf878('0x43')](handleError(_0x450a10,null));};exports['update']=function(_0xb0bf4c,_0x361ac8){if(_0xb0bf4c[_0xf878('0x45')]['id']){delete _0xb0bf4c[_0xf878('0x45')]['id'];}return db[_0xf878('0x28')]['find']({'where':{'id':_0xb0bf4c['params']['id']}})[_0xf878('0x23')](handleEntityNotFound(_0x361ac8,null))[_0xf878('0x23')](saveUpdates(_0xb0bf4c['body'],null))[_0xf878('0x23')](respondWithResult(_0x361ac8,null))['catch'](handleError(_0x361ac8,null));};exports[_0xf878('0x46')]=function(_0x31adde,_0x379912){return db[_0xf878('0x28')]['find']({'where':{'id':_0x31adde[_0xf878('0x41')]['id']}})[_0xf878('0x23')](handleEntityNotFound(_0x379912,null))[_0xf878('0x23')](removeEntity(_0x379912,null))['catch'](handleError(_0x379912,null));};exports[_0xf878('0x47')]=function(_0x30df05,_0x1d3427,_0x28c393){var _0x53e3c3={};var _0x112f2a={};var _0x181f09;var _0x3f9fce;return db['ZendeskAccount'][_0xf878('0x48')]({'where':{'id':_0x30df05[_0xf878('0x41')]['id']}})[_0xf878('0x23')](handleEntityNotFound(_0x1d3427,null))[_0xf878('0x23')](function(_0x5118f4){if(_0x5118f4){_0x181f09=_0x5118f4;_0x112f2a['model']=_['keys'](db[_0xf878('0x49')]['rawAttributes']);_0x112f2a['query']=_['keys'](_0x30df05[_0xf878('0x2c')]);_0x112f2a[_0xf878('0x42')]=_['intersection'](_0x112f2a[_0xf878('0x2a')],_0x112f2a[_0xf878('0x2c')]);_0x53e3c3[_0xf878('0x2f')]=_['intersection'](_0x112f2a['model'],qs[_0xf878('0x30')](_0x30df05['query'][_0xf878('0x30')]));_0x53e3c3[_0xf878('0x2f')]=_0x53e3c3[_0xf878('0x2f')][_0xf878('0x31')]?_0x53e3c3[_0xf878('0x2f')]:_0x112f2a[_0xf878('0x2a')];_0x53e3c3['order']=qs[_0xf878('0x35')](_0x30df05[_0xf878('0x2c')]['sort']);_0x53e3c3[_0xf878('0x36')]=qs[_0xf878('0x42')](_[_0xf878('0x37')](_0x30df05[_0xf878('0x2c')],_0x112f2a[_0xf878('0x42')]));if(_0x30df05[_0xf878('0x2c')][_0xf878('0x38')]){_0x53e3c3['where']=_[_0xf878('0x39')](_0x53e3c3[_0xf878('0x36')],{'$or':_[_0xf878('0x2b')](_0x53e3c3['attributes'],function(_0x392242){var _0x560e0b={};_0x560e0b[_0x392242]={'$like':'%'+_0x30df05[_0xf878('0x2c')][_0xf878('0x38')]+'%'};return _0x560e0b;})});}_0x53e3c3=_[_0xf878('0x39')]({},_0x53e3c3,_0x30df05[_0xf878('0x3b')]);return _0x181f09[_0xf878('0x47')](_0x53e3c3);}})[_0xf878('0x23')](function(_0x1141dd){if(_0x1141dd){_0x3f9fce=_0x1141dd[_0xf878('0x31')];if(!_0x30df05[_0xf878('0x2c')][_0xf878('0x32')]('nolimit')){_0x53e3c3['limit']=qs['limit'](_0x30df05[_0xf878('0x2c')]['limit']);_0x53e3c3[_0xf878('0x19')]=qs[_0xf878('0x19')](_0x30df05['query']['offset']);}return _0x181f09[_0xf878('0x47')](_0x53e3c3);}})[_0xf878('0x23')](function(_0x3340c1){if(_0x3340c1){return _0x3340c1?{'count':_0x3f9fce,'rows':_0x3340c1}:null;}})[_0xf878('0x23')](respondWithResult(_0x1d3427,null))[_0xf878('0x43')](handleError(_0x1d3427,null));};exports[_0xf878('0x4a')]=function(_0x3e78fc,_0x302258,_0x1602ed){if(_0x3e78fc[_0xf878('0x45')]['id']){delete _0x3e78fc[_0xf878('0x45')]['id'];}return db[_0xf878('0x28')][_0xf878('0x48')]({'where':{'id':_0x3e78fc[_0xf878('0x41')]['id']}})[_0xf878('0x23')](handleEntityNotFound(_0x302258,null))[_0xf878('0x23')](function(_0x1254dd){if(_0x1254dd){_0x3e78fc[_0xf878('0x45')]['AccountId']=_0x1254dd['id'];_0x3e78fc[_0xf878('0x45')]['Subjects']=integrations[_0xf878('0x4b')](_0x3e78fc[_0xf878('0x45')][_0xf878('0x4c')],_0x3e78fc[_0xf878('0x45')][_0xf878('0x29')]);_0x3e78fc[_0xf878('0x45')][_0xf878('0x4d')]=integrations[_0xf878('0x4e')](_0x3e78fc[_0xf878('0x45')]['channel'],_0x3e78fc[_0xf878('0x45')][_0xf878('0x29')]);return db[_0xf878('0x49')][_0xf878('0x44')](_0x3e78fc['body'],{'include':[{'model':db[_0xf878('0x4f')],'as':_0xf878('0x50')},{'model':db[_0xf878('0x4f')],'as':_0xf878('0x4d')}]});}return null;})[_0xf878('0x23')](respondWithResult(_0x302258,null))['catch'](handleError(_0x302258,null));};exports['getFields']=function(_0x453644,_0x1b0230,_0x193f6c){var _0x251613='';return db[_0xf878('0x28')][_0xf878('0x48')]({'where':{'id':_0x453644[_0xf878('0x41')]['id']},'attributes':['id',_0xf878('0x51'),_0xf878('0x52'),_0xf878('0x53'),_0xf878('0x54'),_0xf878('0x55')]})[_0xf878('0x23')](handleEntityNotFound(_0x1b0230,null))[_0xf878('0x23')](function(_0x3bfd00){if(_0x3bfd00){_0x251613=_0x3bfd00[_0xf878('0x55')];var _0x153069=_0x251613['slice'](-0x1);if(_0x153069==='/'){_0x251613=_0x251613[_0xf878('0x56')](0x0,_0x251613[_0xf878('0x57')](_0x153069));}var _0x288235={'method':_0xf878('0x58'),'uri':util[_0xf878('0x59')](_0xf878('0x5a'),_0x251613,_0xf878('0x5b')),'json':!![]};switch(_0x3bfd00[_0xf878('0x54')]){case _0xf878('0x52'):_0x288235['headers']={'Authorization':util[_0xf878('0x59')](_0xf878('0x5c'),new Buffer(util[_0xf878('0x59')](_0xf878('0x5d'),_0x3bfd00[_0xf878('0x51')],_0x3bfd00[_0xf878('0x52')]))[_0xf878('0x5e')]('base64'))};break;case'token':_0x288235[_0xf878('0x5f')]={'Authorization':util['format'](_0xf878('0x5c'),new Buffer(util[_0xf878('0x59')](_0xf878('0x60'),_0x3bfd00[_0xf878('0x51')],_0x3bfd00['token']))[_0xf878('0x5e')](_0xf878('0x61')))};break;default:throw new db[(_0xf878('0x62'))][(_0xf878('0x63'))]('Unknown\x20authentication\x20type');}return rp(_0x288235);}})[_0xf878('0x23')](function(_0x565e8c){if(_0x565e8c){var _0x21537f=[_0xf878('0x64'),_0xf878('0x65'),_0xf878('0x66'),_0xf878('0x67')];_['remove'](_0x565e8c[_0xf878('0x5b')],function(_0x21c5d1){return _0x21537f[_0xf878('0x68')](_0x21c5d1[_0xf878('0x29')]);});return{'count':_0x565e8c['ticket_fields'][_0xf878('0x31')],'rows':_['map'](_0x565e8c[_0xf878('0x5b')],function(_0x107456){return{'id':_0x107456['id'],'name':_0x107456[_0xf878('0x69')]>0x7?_0x107456[_0xf878('0x6a')]:_0x107456[_0xf878('0x29')],'custom':_0x107456[_0xf878('0x69')]>0x7?!![]:![],'options':_0x107456[_0xf878('0x6b')]?_0x107456[_0xf878('0x6b')]:_0x107456['custom_field_options']?_0x107456['custom_field_options']:[]};})};}})['then'](respondWithResult(_0x1b0230,null))[_0xf878('0x43')](function(_0x1a9af7){var _0x497b7a=_0x453644['query'][_0xf878('0x6c')]?0x1f4:_0x1a9af7['statusCode']||0x1f4;logger[_0xf878('0x24')](_0xf878('0x6d'),_0xf878('0x6e'),_0x497b7a,JSON[_0xf878('0x6f')](_0x1a9af7));delete _0x1a9af7[_0xf878('0x25')];if(_0x497b7a===0x191){_0x497b7a=0x190;}_0x1b0230[_0xf878('0x1d')](_0x497b7a)[_0xf878('0x26')](_0x453644[_0xf878('0x2c')][_0xf878('0x6c')]?{'message':'Wrong\x20credentials','statusCode':_0x1a9af7[_0xf878('0x70')]}:_0x1a9af7);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x562b=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intZendeskAccount.attributes','../../components/integrations/configuration','exports','ZendeskAccount'];(function(_0x101c50,_0x32a70c){var _0x292d82=function(_0x144dab){while(--_0x144dab){_0x101c50['push'](_0x101c50['shift']());}};_0x292d82(++_0x32a70c);}(_0x562b,0xa8));var _0xb562=function(_0x1694f5,_0x49b7c3){_0x1694f5=_0x1694f5-0x0;var _0x5b4321=_0x562b[_0x1694f5];return _0x5b4321;};'use strict';var _=require(_0xb562('0x0'));var util=require(_0xb562('0x1'));var logger=require(_0xb562('0x2'))(_0xb562('0x3'));var moment=require(_0xb562('0x4'));var BPromise=require(_0xb562('0x5'));var rp=require(_0xb562('0x6'));var fs=require('fs');var path=require(_0xb562('0x7'));var rimraf=require(_0xb562('0x8'));var config=require(_0xb562('0x9'));var attributes=require(_0xb562('0xa'));var integrations=require(_0xb562('0xb'));module[_0xb562('0xc')]=function(_0x150fd3,_0x2521c8){return _0x150fd3['define'](_0xb562('0xd'),attributes,{'tableName':'int_zendesk_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6010=['exports','define','int_zendesk_accounts','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./intZendeskAccount.attributes','../../components/integrations/configuration'];(function(_0x40675b,_0x13ae6b){var _0x29dd22=function(_0x162483){while(--_0x162483){_0x40675b['push'](_0x40675b['shift']());}};_0x29dd22(++_0x13ae6b);}(_0x6010,0xfa));var _0x0601=function(_0xab8f01,_0xd778b7){_0xab8f01=_0xab8f01-0x0;var _0x16ffb3=_0x6010[_0xab8f01];return _0x16ffb3;};'use strict';var _=require('lodash');var util=require(_0x0601('0x0'));var logger=require(_0x0601('0x1'))(_0x0601('0x2'));var moment=require(_0x0601('0x3'));var BPromise=require(_0x0601('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0601('0x5'));var rimraf=require(_0x0601('0x6'));var config=require(_0x0601('0x7'));var attributes=require(_0x0601('0x8'));var integrations=require(_0x0601('0x9'));module[_0x0601('0xa')]=function(_0x4a0c5c,_0x213711){return _0x4a0c5c[_0x0601('0xb')]('ZendeskAccount',attributes,{'tableName':_0x0601('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea5b=['jayson/promise','http','request','info','ZendeskAccount,\x20%s,\x20%s','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','GetZendeskAccount','ZendeskAccount','findAll','options','raw','where','attributes','include','map','model','stringify','ShowZendeskAccount','find','then','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment'];(function(_0x88cd7b,_0x4c884c){var _0x56fcc8=function(_0x513b3d){while(--_0x513b3d){_0x88cd7b['push'](_0x88cd7b['shift']());}};_0x56fcc8(++_0x4c884c);}(_0xea5b,0x183));var _0xbea5=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0xea5b[_0x4565bf];return _0x5610ba;};'use strict';var _=require(_0xbea5('0x0'));var util=require(_0xbea5('0x1'));var moment=require(_0xbea5('0x2'));var BPromise=require('bluebird');var rs=require(_0xbea5('0x3'));var fs=require('fs');var Redis=require(_0xbea5('0x4'));var db=require(_0xbea5('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xbea5('0x6'))(_0xbea5('0x7'));var config=require(_0xbea5('0x8'));var jayson=require(_0xbea5('0x9'));var client=jayson['client'][_0xbea5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1b7bb5,_0x4a0ee7,_0x110c8c){return new BPromise(function(_0x887e6,_0x39ca3b){return client[_0xbea5('0xb')](_0x1b7bb5,_0x110c8c)['then'](function(_0x27997f){logger[_0xbea5('0xc')](_0xbea5('0xd'),_0x4a0ee7,_0xbea5('0xe'));logger[_0xbea5('0xf')](_0xbea5('0x10'),_0x4a0ee7,_0xbea5('0xe'),JSON['stringify'](_0x27997f));if(_0x27997f[_0xbea5('0x11')]){if(_0x27997f[_0xbea5('0x11')][_0xbea5('0x12')]===0x1f4){logger[_0xbea5('0x11')](_0xbea5('0xd'),_0x4a0ee7,_0x27997f[_0xbea5('0x11')][_0xbea5('0x13')]);return _0x39ca3b(_0x27997f[_0xbea5('0x11')]['message']);}logger[_0xbea5('0x11')](_0xbea5('0xd'),_0x4a0ee7,_0x27997f[_0xbea5('0x11')][_0xbea5('0x13')]);return _0x887e6(_0x27997f[_0xbea5('0x11')][_0xbea5('0x13')]);}else{logger[_0xbea5('0xc')](_0xbea5('0xd'),_0x4a0ee7,_0xbea5('0xe'));_0x887e6(_0x27997f[_0xbea5('0x14')][_0xbea5('0x13')]);}})[_0xbea5('0x15')](function(_0x26bcec){logger[_0xbea5('0x11')]('ZendeskAccount,\x20%s,\x20%s',_0x4a0ee7,_0x26bcec);_0x39ca3b(_0x26bcec);});});}exports[_0xbea5('0x16')]=function(_0x12fb91){var _0x3c2fed=this;return new Promise(function(_0x4c4593,_0x302724){return db[_0xbea5('0x17')][_0xbea5('0x18')]({'raw':_0x12fb91[_0xbea5('0x19')]?_0x12fb91[_0xbea5('0x19')][_0xbea5('0x1a')]===undefined?!![]:![]:!![],'where':_0x12fb91[_0xbea5('0x19')]?_0x12fb91['options'][_0xbea5('0x1b')]||null:null,'attributes':_0x12fb91[_0xbea5('0x19')]?_0x12fb91[_0xbea5('0x19')][_0xbea5('0x1c')]||null:null,'limit':_0x12fb91['options']?_0x12fb91['options']['limit']||null:null,'include':_0x12fb91[_0xbea5('0x19')]?_0x12fb91[_0xbea5('0x19')][_0xbea5('0x1d')]?_[_0xbea5('0x1e')](_0x12fb91[_0xbea5('0x19')]['include'],function(_0x5ef17d){return{'model':db[_0x5ef17d[_0xbea5('0x1f')]],'as':_0x5ef17d['as'],'attributes':_0x5ef17d['attributes'],'include':_0x5ef17d[_0xbea5('0x1d')]?_['map'](_0x5ef17d['include'],function(_0x4624e2){return{'model':db[_0x4624e2[_0xbea5('0x1f')]],'as':_0x4624e2['as'],'attributes':_0x4624e2[_0xbea5('0x1c')],'include':_0x4624e2[_0xbea5('0x1d')]?_[_0xbea5('0x1e')](_0x4624e2['include'],function(_0x519c82){return{'model':db[_0x519c82['model']],'as':_0x519c82['as'],'attributes':_0x519c82[_0xbea5('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x160e10){logger['info'](_0xbea5('0x16'),_0x12fb91);logger['debug']('GetZendeskAccount',_0x12fb91,JSON[_0xbea5('0x20')](_0x160e10));_0x4c4593(_0x160e10);})['catch'](function(_0x16bae8){logger[_0xbea5('0x11')]('GetZendeskAccount',_0x16bae8[_0xbea5('0x13')],_0x12fb91);_0x302724(_0x3c2fed['error'](0x1f4,_0x16bae8['message']));});});};exports[_0xbea5('0x21')]=function(_0x5395c2){var _0x2309fa=this;return new Promise(function(_0x5bffe1,_0x24b6f2){return db[_0xbea5('0x17')][_0xbea5('0x22')]({'raw':_0x5395c2[_0xbea5('0x19')]?_0x5395c2[_0xbea5('0x19')][_0xbea5('0x1a')]===undefined?!![]:![]:!![],'where':_0x5395c2[_0xbea5('0x19')]?_0x5395c2[_0xbea5('0x19')][_0xbea5('0x1b')]||null:null,'attributes':_0x5395c2['options']?_0x5395c2[_0xbea5('0x19')][_0xbea5('0x1c')]||null:null,'include':_0x5395c2['options']?_0x5395c2[_0xbea5('0x19')]['include']?_[_0xbea5('0x1e')](_0x5395c2[_0xbea5('0x19')][_0xbea5('0x1d')],function(_0x268463){return{'model':db[_0x268463['model']],'as':_0x268463['as'],'attributes':_0x268463[_0xbea5('0x1c')],'include':_0x268463[_0xbea5('0x1d')]?_[_0xbea5('0x1e')](_0x268463[_0xbea5('0x1d')],function(_0x5954b9){return{'model':db[_0x5954b9['model']],'as':_0x5954b9['as'],'attributes':_0x5954b9[_0xbea5('0x1c')],'include':_0x5954b9[_0xbea5('0x1d')]?_['map'](_0x5954b9['include'],function(_0x12ce20){return{'model':db[_0x12ce20['model']],'as':_0x12ce20['as'],'attributes':_0x12ce20[_0xbea5('0x1c')]};}):[]};}):[]};}):[]:[]})[_0xbea5('0x23')](function(_0x27b8ae){logger[_0xbea5('0xc')](_0xbea5('0x21'),_0x5395c2);logger[_0xbea5('0xf')](_0xbea5('0x21'),_0x5395c2,JSON[_0xbea5('0x20')](_0x27b8ae));_0x5bffe1(_0x27b8ae);})[_0xbea5('0x15')](function(_0x5ded86){logger[_0xbea5('0x11')](_0xbea5('0x21'),_0x5ded86[_0xbea5('0x13')],_0x5395c2);_0x24b6f2(_0x2309fa[_0xbea5('0x11')](0x1f4,_0x5ded86[_0xbea5('0x13')]));});});};
\ No newline at end of file
+var _0x42ab=['GetZendeskAccount','ZendeskAccount','findAll','options','where','attributes','limit','map','include','model','then','ShowZendeskAccount','find','raw','catch','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','ZendeskAccount,\x20%s,\x20%s','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result'];(function(_0x87b0ff,_0x314389){var _0x3bc0b2=function(_0x41682b){while(--_0x41682b){_0x87b0ff['push'](_0x87b0ff['shift']());}};_0x3bc0b2(++_0x314389);}(_0x42ab,0x10b));var _0xb42a=function(_0xa5d896,_0x263a1d){_0xa5d896=_0xa5d896-0x0;var _0x1c31f8=_0x42ab[_0xa5d896];return _0x1c31f8;};'use strict';var _=require(_0xb42a('0x0'));var util=require('util');var moment=require(_0xb42a('0x1'));var BPromise=require('bluebird');var rs=require(_0xb42a('0x2'));var fs=require('fs');var Redis=require(_0xb42a('0x3'));var db=require(_0xb42a('0x4'))['db'];var utils=require(_0xb42a('0x5'));var logger=require(_0xb42a('0x6'))(_0xb42a('0x7'));var config=require(_0xb42a('0x8'));var jayson=require(_0xb42a('0x9'));var client=jayson['client'][_0xb42a('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1bd4b4,_0x1e458d,_0x19f26a){return new BPromise(function(_0x376481,_0x4e4acf){return client['request'](_0x1bd4b4,_0x19f26a)['then'](function(_0x53637d){logger[_0xb42a('0xb')](_0xb42a('0xc'),_0x1e458d,_0xb42a('0xd'));logger[_0xb42a('0xe')](_0xb42a('0xf'),_0x1e458d,'request\x20sent',JSON[_0xb42a('0x10')](_0x53637d));if(_0x53637d[_0xb42a('0x11')]){if(_0x53637d[_0xb42a('0x11')][_0xb42a('0x12')]===0x1f4){logger['error'](_0xb42a('0xc'),_0x1e458d,_0x53637d[_0xb42a('0x11')][_0xb42a('0x13')]);return _0x4e4acf(_0x53637d[_0xb42a('0x11')][_0xb42a('0x13')]);}logger['error'](_0xb42a('0xc'),_0x1e458d,_0x53637d[_0xb42a('0x11')][_0xb42a('0x13')]);return _0x376481(_0x53637d[_0xb42a('0x11')]['message']);}else{logger[_0xb42a('0xb')](_0xb42a('0xc'),_0x1e458d,_0xb42a('0xd'));_0x376481(_0x53637d[_0xb42a('0x14')][_0xb42a('0x13')]);}})['catch'](function(_0x52ec0c){logger[_0xb42a('0x11')](_0xb42a('0xc'),_0x1e458d,_0x52ec0c);_0x4e4acf(_0x52ec0c);});});}exports[_0xb42a('0x15')]=function(_0x5132dd){var _0x2fc905=this;return new Promise(function(_0x1ef3e9,_0x3d1799){return db[_0xb42a('0x16')][_0xb42a('0x17')]({'raw':_0x5132dd[_0xb42a('0x18')]?_0x5132dd['options']['raw']===undefined?!![]:![]:!![],'where':_0x5132dd[_0xb42a('0x18')]?_0x5132dd['options'][_0xb42a('0x19')]||null:null,'attributes':_0x5132dd[_0xb42a('0x18')]?_0x5132dd[_0xb42a('0x18')][_0xb42a('0x1a')]||null:null,'limit':_0x5132dd[_0xb42a('0x18')]?_0x5132dd['options'][_0xb42a('0x1b')]||null:null,'include':_0x5132dd[_0xb42a('0x18')]?_0x5132dd[_0xb42a('0x18')]['include']?_[_0xb42a('0x1c')](_0x5132dd['options'][_0xb42a('0x1d')],function(_0x3e5b64){return{'model':db[_0x3e5b64[_0xb42a('0x1e')]],'as':_0x3e5b64['as'],'attributes':_0x3e5b64[_0xb42a('0x1a')],'include':_0x3e5b64[_0xb42a('0x1d')]?_[_0xb42a('0x1c')](_0x3e5b64[_0xb42a('0x1d')],function(_0xcd7dc7){return{'model':db[_0xcd7dc7[_0xb42a('0x1e')]],'as':_0xcd7dc7['as'],'attributes':_0xcd7dc7['attributes'],'include':_0xcd7dc7[_0xb42a('0x1d')]?_[_0xb42a('0x1c')](_0xcd7dc7[_0xb42a('0x1d')],function(_0x120784){return{'model':db[_0x120784['model']],'as':_0x120784['as'],'attributes':_0x120784[_0xb42a('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xb42a('0x1f')](function(_0x4e3d11){logger[_0xb42a('0xb')](_0xb42a('0x15'),_0x5132dd);logger['debug']('GetZendeskAccount',_0x5132dd,JSON['stringify'](_0x4e3d11));_0x1ef3e9(_0x4e3d11);})['catch'](function(_0xef724d){logger[_0xb42a('0x11')](_0xb42a('0x15'),_0xef724d[_0xb42a('0x13')],_0x5132dd);_0x3d1799(_0x2fc905[_0xb42a('0x11')](0x1f4,_0xef724d['message']));});});};exports[_0xb42a('0x20')]=function(_0x50c196){var _0x575fdf=this;return new Promise(function(_0x12f099,_0x35b8f5){return db[_0xb42a('0x16')][_0xb42a('0x21')]({'raw':_0x50c196[_0xb42a('0x18')]?_0x50c196[_0xb42a('0x18')][_0xb42a('0x22')]===undefined?!![]:![]:!![],'where':_0x50c196['options']?_0x50c196[_0xb42a('0x18')][_0xb42a('0x19')]||null:null,'attributes':_0x50c196[_0xb42a('0x18')]?_0x50c196[_0xb42a('0x18')]['attributes']||null:null,'include':_0x50c196[_0xb42a('0x18')]?_0x50c196[_0xb42a('0x18')]['include']?_[_0xb42a('0x1c')](_0x50c196['options'][_0xb42a('0x1d')],function(_0x1d8e9b){return{'model':db[_0x1d8e9b['model']],'as':_0x1d8e9b['as'],'attributes':_0x1d8e9b[_0xb42a('0x1a')],'include':_0x1d8e9b[_0xb42a('0x1d')]?_[_0xb42a('0x1c')](_0x1d8e9b[_0xb42a('0x1d')],function(_0x3fc836){return{'model':db[_0x3fc836[_0xb42a('0x1e')]],'as':_0x3fc836['as'],'attributes':_0x3fc836[_0xb42a('0x1a')],'include':_0x3fc836[_0xb42a('0x1d')]?_['map'](_0x3fc836[_0xb42a('0x1d')],function(_0x3d5853){return{'model':db[_0x3d5853[_0xb42a('0x1e')]],'as':_0x3d5853['as'],'attributes':_0x3d5853['attributes']};}):[]};}):[]};}):[]:[]})[_0xb42a('0x1f')](function(_0x4d135a){logger['info']('ShowZendeskAccount',_0x50c196);logger[_0xb42a('0xe')](_0xb42a('0x20'),_0x50c196,JSON[_0xb42a('0x10')](_0x4d135a));_0x12f099(_0x4d135a);})[_0xb42a('0x23')](function(_0x54c8f6){logger[_0xb42a('0x11')]('ShowZendeskAccount',_0x54c8f6['message'],_0x50c196);_0x35b8f5(_0x575fdf[_0xb42a('0x11')](0x1f4,_0x54c8f6[_0xb42a('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fc2=['get','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','/:id/tags','post','create','put','update','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','./intZendeskConfiguration.controller','isAuthenticated','index','/:id','show'];(function(_0xb3d6a6,_0x46026a){var _0x33c0b8=function(_0x1d7464){while(--_0x1d7464){_0xb3d6a6['push'](_0xb3d6a6['shift']());}};_0x33c0b8(++_0x46026a);}(_0x4fc2,0x111));var _0x24fc=function(_0x24c135,_0xdb4450){_0x24c135=_0x24c135-0x0;var _0x290c66=_0x4fc2[_0x24c135];return _0x290c66;};'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')](_0x24fc('0xe'),auth[_0x24fc('0x9')](),controller['getFields']);router[_0x24fc('0xd')](_0x24fc('0xf'),auth[_0x24fc('0x9')](),controller[_0x24fc('0x10')]);router[_0x24fc('0xd')](_0x24fc('0x11'),auth[_0x24fc('0x9')](),controller[_0x24fc('0x12')]);router['get'](_0x24fc('0x13'),auth[_0x24fc('0x9')](),controller['getTags']);router[_0x24fc('0x14')]('/',auth[_0x24fc('0x9')](),controller[_0x24fc('0x15')]);router[_0x24fc('0x14')](_0x24fc('0x13'),auth[_0x24fc('0x9')](),controller['setTags']);router[_0x24fc('0x16')](_0x24fc('0xb'),auth[_0x24fc('0x9')](),controller[_0x24fc('0x17')]);router['delete'](_0x24fc('0xb'),auth['isAuthenticated'](),controller[_0x24fc('0x18')]);module[_0x24fc('0x19')]=router;
\ No newline at end of file
+var _0xa571=['util','path','connect-timeout','Router','fs-extra','../../config/environment','get','isAuthenticated','index','/:id','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','getTags','post','create','put','update','exports','multer'];(function(_0xc32865,_0x157dea){var _0x26f169=function(_0x26bebf){while(--_0x26bebf){_0xc32865['push'](_0xc32865['shift']());}};_0x26f169(++_0x157dea);}(_0xa571,0x107));var _0x1a57=function(_0x51d2bb,_0x58e3ad){_0x51d2bb=_0x51d2bb-0x0;var _0xc3d3de=_0xa571[_0x51d2bb];return _0xc3d3de;};'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('./intZendeskConfiguration.controller');router[_0x1a57('0x7')]('/',auth[_0x1a57('0x8')](),controller[_0x1a57('0x9')]);router[_0x1a57('0x7')](_0x1a57('0xa'),auth[_0x1a57('0x8')](),controller['show']);router[_0x1a57('0x7')](_0x1a57('0xb'),auth[_0x1a57('0x8')](),controller['getFields']);router[_0x1a57('0x7')](_0x1a57('0xc'),auth[_0x1a57('0x8')](),controller[_0x1a57('0xd')]);router[_0x1a57('0x7')](_0x1a57('0xe'),auth[_0x1a57('0x8')](),controller[_0x1a57('0xf')]);router['get']('/:id/tags',auth[_0x1a57('0x8')](),controller[_0x1a57('0x10')]);router[_0x1a57('0x11')]('/',auth['isAuthenticated'](),controller[_0x1a57('0x12')]);router[_0x1a57('0x11')]('/:id/tags',auth[_0x1a57('0x8')](),controller['setTags']);router[_0x1a57('0x13')](_0x1a57('0xa'),auth[_0x1a57('0x8')](),controller[_0x1a57('0x14')]);router['delete'](_0x1a57('0xa'),auth['isAuthenticated'](),controller['destroy']);module[_0x1a57('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0577=['STRING','sequelize','exports'];(function(_0x37a9d7,_0x2b6fde){var _0x1343d3=function(_0x3bde45){while(--_0x3bde45){_0x37a9d7['push'](_0x37a9d7['shift']());}};_0x1343d3(++_0x2b6fde);}(_0x0577,0x1cc));var _0x7057=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x0577[_0x2c91e9];return _0x13f0ff;};'use strict';var Sequelize=require(_0x7057('0x0'));module[_0x7057('0x1')]={'name':{'type':Sequelize[_0x7057('0x2')]},'description':{'type':Sequelize[_0x7057('0x2')]}};
\ No newline at end of file
+var _0xcbcf=['STRING','sequelize','exports'];(function(_0x21ed2a,_0x56c3b0){var _0x856d7b=function(_0xe99ea6){while(--_0xe99ea6){_0x21ed2a['push'](_0x21ed2a['shift']());}};_0x856d7b(++_0x56c3b0);}(_0xcbcf,0x133));var _0xfcbc=function(_0xbe4694,_0x31acff){_0xbe4694=_0xbe4694-0x0;var _0x5d2a13=_0xcbcf[_0xbe4694];return _0x5d2a13;};'use strict';var Sequelize=require(_0xfcbc('0x0'));module[_0xfcbc('0x1')]={'name':{'type':Sequelize[_0xfcbc('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3828=['getSubjects','getDescriptions','getTags','setTags','ids','eml-format','rimraf','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','count','set','json','apply','reject','then','destroy','error','name','send','map','ZendeskConfiguration','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','offset','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','catch','show','create','body','params','find','getFields','findOne','ZendeskField'];(function(_0x291f8b,_0x3b5591){var _0x275171=function(_0xb33d67){while(--_0xb33d67){_0x291f8b['push'](_0x291f8b['shift']());}};_0x275171(++_0x3b5591);}(_0x3828,0xa1));var _0x8382=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3828[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x8382('0x0'));var rimraf=require(_0x8382('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x8382('0x2'));var moment=require('moment');var BPromise=require(_0x8382('0x3'));var Mustache=require('mustache');var util=require(_0x8382('0x4'));var path=require(_0x8382('0x5'));var sox=require(_0x8382('0x6'));var csv=require(_0x8382('0x7'));var ejs=require(_0x8382('0x8'));var fs=require('fs');var fs_extra=require(_0x8382('0x9'));var _=require('lodash');var squel=require(_0x8382('0xa'));var crypto=require(_0x8382('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x8382('0x7'));var querystring=require(_0x8382('0xc'));var Papa=require('papaparse');var Redis=require(_0x8382('0xd'));var authService=require(_0x8382('0xe'));var qs=require(_0x8382('0xf'));var as=require(_0x8382('0x10'));var hardwareService=require(_0x8382('0x11'));var logger=require('../../config/logger')(_0x8382('0x12'));var utils=require('../../config/utils');var config=require(_0x8382('0x13'));var licenseUtil=require(_0x8382('0x14'));var db=require(_0x8382('0x15'))['db'];function respondWithStatusCode(_0x47fb26,_0x901e7c){_0x901e7c=_0x901e7c||0xcc;return function(_0x47622e){if(_0x47622e){return _0x47fb26[_0x8382('0x16')](_0x901e7c);}return _0x47fb26[_0x8382('0x17')](_0x901e7c)[_0x8382('0x18')]();};}function respondWithResult(_0x4dc8b9,_0x4b70fb){_0x4b70fb=_0x4b70fb||0xc8;return function(_0xdc1bf8){if(_0xdc1bf8){return _0x4dc8b9[_0x8382('0x17')](_0x4b70fb)['json'](_0xdc1bf8);}};}function respondWithFilteredResult(_0x4dadeb,_0x43b9aa){return function(_0x39ef77){if(_0x39ef77){var _0x215c7f=typeof _0x43b9aa['offset']===_0x8382('0x19')&&typeof _0x43b9aa[_0x8382('0x1a')]===_0x8382('0x19');var _0x2d4850=_0x39ef77[_0x8382('0x1b')];var _0x24fb20=_0x215c7f?0x0:_0x43b9aa['offset'];var _0x5fd372=_0x215c7f?_0x39ef77[_0x8382('0x1b')]:_0x43b9aa['offset']+_0x43b9aa[_0x8382('0x1a')];var _0x3e4447;if(_0x5fd372>=_0x2d4850){_0x5fd372=_0x2d4850;_0x3e4447=0xc8;}else{_0x3e4447=0xce;}_0x4dadeb[_0x8382('0x17')](_0x3e4447);return _0x4dadeb[_0x8382('0x1c')]('Content-Range',_0x24fb20+'-'+_0x5fd372+'/'+_0x2d4850)[_0x8382('0x1d')](_0x39ef77);}return null;};}function patchUpdates(_0x45116c){return function(_0x13f64d){try{jsonpatch[_0x8382('0x1e')](_0x13f64d,_0x45116c,!![]);}catch(_0x472624){return BPromise[_0x8382('0x1f')](_0x472624);}return _0x13f64d['save']();};}function saveUpdates(_0x5744ca,_0x2470cf){return function(_0x5d69ec){if(_0x5d69ec){return _0x5d69ec['update'](_0x5744ca)[_0x8382('0x20')](function(_0x3815b9){return _0x3815b9;});}return null;};}function removeEntity(_0x49f2c9,_0x5590cc){return function(_0x301a8a){if(_0x301a8a){return _0x301a8a[_0x8382('0x21')]()['then'](function(){_0x49f2c9[_0x8382('0x17')](0xcc)[_0x8382('0x18')]();});}};}function handleEntityNotFound(_0x5d9321,_0x26a779){return function(_0x4e33b4){if(!_0x4e33b4){_0x5d9321[_0x8382('0x16')](0x194);}return _0x4e33b4;};}function handleError(_0x236010,_0x346ef5){_0x346ef5=_0x346ef5||0x1f4;return function(_0x5f0284){logger[_0x8382('0x22')](_0x5f0284['stack']);if(_0x5f0284[_0x8382('0x23')]){delete _0x5f0284['name'];}_0x236010[_0x8382('0x17')](_0x346ef5)[_0x8382('0x24')](_0x5f0284);};}exports['index']=function(_0x33e715,_0x2997ee){var _0x39e765={},_0x18e120={},_0x5911eb={'count':0x0,'rows':[]};var _0x4a88bd=_[_0x8382('0x25')](db[_0x8382('0x26')][_0x8382('0x27')],function(_0x59317d){return{'name':_0x59317d[_0x8382('0x28')],'type':_0x59317d[_0x8382('0x29')][_0x8382('0x2a')]};});_0x18e120[_0x8382('0x2b')]=_['map'](_0x4a88bd,_0x8382('0x23'));_0x18e120[_0x8382('0x2c')]=_[_0x8382('0x2d')](_0x33e715[_0x8382('0x2c')]);_0x18e120[_0x8382('0x2e')]=_[_0x8382('0x2f')](_0x18e120['model'],_0x18e120[_0x8382('0x2c')]);_0x39e765[_0x8382('0x30')]=_[_0x8382('0x2f')](_0x18e120[_0x8382('0x2b')],qs['fields'](_0x33e715[_0x8382('0x2c')][_0x8382('0x31')]));_0x39e765[_0x8382('0x30')]=_0x39e765[_0x8382('0x30')][_0x8382('0x32')]?_0x39e765[_0x8382('0x30')]:_0x18e120['model'];if(!_0x33e715[_0x8382('0x2c')][_0x8382('0x33')](_0x8382('0x34'))){_0x39e765[_0x8382('0x1a')]=qs[_0x8382('0x1a')](_0x33e715[_0x8382('0x2c')][_0x8382('0x1a')]);_0x39e765[_0x8382('0x35')]=qs['offset'](_0x33e715[_0x8382('0x2c')][_0x8382('0x35')]);}_0x39e765[_0x8382('0x36')]=qs[_0x8382('0x37')](_0x33e715[_0x8382('0x2c')][_0x8382('0x37')]);_0x39e765[_0x8382('0x38')]=qs[_0x8382('0x2e')](_[_0x8382('0x39')](_0x33e715[_0x8382('0x2c')],_0x18e120[_0x8382('0x2e')]),_0x4a88bd);if(_0x33e715['query'][_0x8382('0x3a')]){_0x39e765[_0x8382('0x38')]=_[_0x8382('0x3b')](_0x39e765['where'],{'$or':_[_0x8382('0x25')](_0x4a88bd,function(_0x5a9314){if(_0x5a9314[_0x8382('0x29')]!==_0x8382('0x3c')){var _0x58581c={};_0x58581c[_0x5a9314['name']]={'$like':'%'+_0x33e715['query'][_0x8382('0x3a')]+'%'};return _0x58581c;}})});}_0x39e765=_[_0x8382('0x3b')]({},_0x39e765,_0x33e715[_0x8382('0x3d')]);var _0x3224ca={'where':_0x39e765[_0x8382('0x38')]};return db[_0x8382('0x26')][_0x8382('0x1b')](_0x3224ca)[_0x8382('0x20')](function(_0x1cfbb4){_0x5911eb[_0x8382('0x1b')]=_0x1cfbb4;if(_0x33e715[_0x8382('0x2c')][_0x8382('0x3e')]){_0x39e765[_0x8382('0x3f')]=[{'all':!![]}];}return db[_0x8382('0x26')]['findAll'](_0x39e765);})[_0x8382('0x20')](function(_0x3989c6){_0x5911eb['rows']=_0x3989c6;return _0x5911eb;})['then'](respondWithFilteredResult(_0x2997ee,_0x39e765))[_0x8382('0x40')](handleError(_0x2997ee,null));};exports[_0x8382('0x41')]=function(_0x3731ee,_0x505f55){var _0x2ef78a={'raw':![],'where':{'id':_0x3731ee['params']['id']}},_0x28c7df={};_0x28c7df[_0x8382('0x2b')]=_[_0x8382('0x2d')](db[_0x8382('0x26')][_0x8382('0x27')]);_0x28c7df[_0x8382('0x2c')]=_['keys'](_0x3731ee[_0x8382('0x2c')]);_0x28c7df[_0x8382('0x2e')]=_[_0x8382('0x2f')](_0x28c7df[_0x8382('0x2b')],_0x28c7df[_0x8382('0x2c')]);_0x2ef78a[_0x8382('0x30')]=_[_0x8382('0x2f')](_0x28c7df[_0x8382('0x2b')],qs[_0x8382('0x31')](_0x3731ee[_0x8382('0x2c')][_0x8382('0x31')]));_0x2ef78a[_0x8382('0x30')]=_0x2ef78a[_0x8382('0x30')][_0x8382('0x32')]?_0x2ef78a['attributes']:_0x28c7df[_0x8382('0x2b')];if(_0x3731ee[_0x8382('0x2c')][_0x8382('0x3e')]){_0x2ef78a[_0x8382('0x3f')]=[{'all':!![]}];}_0x2ef78a=_[_0x8382('0x3b')]({},_0x2ef78a,_0x3731ee[_0x8382('0x3d')]);return db[_0x8382('0x26')]['find'](_0x2ef78a)[_0x8382('0x20')](handleEntityNotFound(_0x505f55,null))[_0x8382('0x20')](respondWithResult(_0x505f55,null))[_0x8382('0x40')](handleError(_0x505f55,null));};exports[_0x8382('0x42')]=function(_0xdef900,_0x373eab){return db[_0x8382('0x26')][_0x8382('0x42')](_0xdef900[_0x8382('0x43')],{})['then'](respondWithResult(_0x373eab,0xc9))['catch'](handleError(_0x373eab,null));};exports['update']=function(_0x235a60,_0x1bdc20){if(_0x235a60['body']['id']){delete _0x235a60[_0x8382('0x43')]['id'];}return db[_0x8382('0x26')]['find']({'where':{'id':_0x235a60[_0x8382('0x44')]['id']}})[_0x8382('0x20')](handleEntityNotFound(_0x1bdc20,null))[_0x8382('0x20')](saveUpdates(_0x235a60[_0x8382('0x43')],null))['then'](respondWithResult(_0x1bdc20,null))['catch'](handleError(_0x1bdc20,null));};exports['destroy']=function(_0x466ca8,_0x39d010){return db[_0x8382('0x26')][_0x8382('0x45')]({'where':{'id':_0x466ca8[_0x8382('0x44')]['id']}})['then'](handleEntityNotFound(_0x39d010,null))[_0x8382('0x20')](removeEntity(_0x39d010,null))[_0x8382('0x40')](handleError(_0x39d010,null));};exports[_0x8382('0x46')]=function(_0x2173d7,_0xa8b09b,_0x1a0c5d){var _0x5fe77e={};var _0x2f50da={};var _0x31d6b8;var _0x4c9fc7;return db[_0x8382('0x26')][_0x8382('0x47')]({'where':{'id':_0x2173d7[_0x8382('0x44')]['id']}})['then'](handleEntityNotFound(_0xa8b09b,null))['then'](function(_0x1cc3c6){if(_0x1cc3c6){_0x31d6b8=_0x1cc3c6;_0x2f50da[_0x8382('0x2b')]=_[_0x8382('0x2d')](db['ZendeskField'][_0x8382('0x27')]);_0x2f50da[_0x8382('0x2c')]=_['keys'](_0x2173d7['query']);_0x2f50da[_0x8382('0x2e')]=_[_0x8382('0x2f')](_0x2f50da[_0x8382('0x2b')],_0x2f50da[_0x8382('0x2c')]);_0x5fe77e['attributes']=_['intersection'](_0x2f50da['model'],qs[_0x8382('0x31')](_0x2173d7[_0x8382('0x2c')][_0x8382('0x31')]));_0x5fe77e['attributes']=_0x5fe77e[_0x8382('0x30')][_0x8382('0x32')]?_0x5fe77e[_0x8382('0x30')]:_0x2f50da[_0x8382('0x2b')];_0x5fe77e[_0x8382('0x36')]=qs[_0x8382('0x37')](_0x2173d7[_0x8382('0x2c')]['sort']);_0x5fe77e[_0x8382('0x38')]=qs['filters'](_[_0x8382('0x39')](_0x2173d7[_0x8382('0x2c')],_0x2f50da[_0x8382('0x2e')]));if(_0x2173d7[_0x8382('0x2c')]['filter']){_0x5fe77e[_0x8382('0x38')]=_[_0x8382('0x3b')](_0x5fe77e['where'],{'$or':_[_0x8382('0x25')](_0x5fe77e[_0x8382('0x30')],function(_0x1ab407){var _0xaa7c36={};_0xaa7c36[_0x1ab407]={'$like':'%'+_0x2173d7['query'][_0x8382('0x3a')]+'%'};return _0xaa7c36;})});}_0x5fe77e=_['merge']({},_0x5fe77e,_0x2173d7[_0x8382('0x3d')]);return _0x31d6b8['getFields'](_0x5fe77e);}})['then'](function(_0x34291e){if(_0x34291e){_0x4c9fc7=_0x34291e[_0x8382('0x32')];if(!_0x2173d7[_0x8382('0x2c')][_0x8382('0x33')](_0x8382('0x34'))){_0x5fe77e[_0x8382('0x1a')]=qs[_0x8382('0x1a')](_0x2173d7[_0x8382('0x2c')][_0x8382('0x1a')]);_0x5fe77e[_0x8382('0x35')]=qs[_0x8382('0x35')](_0x2173d7[_0x8382('0x2c')][_0x8382('0x35')]);}return _0x31d6b8['getFields'](_0x5fe77e);}})[_0x8382('0x20')](function(_0x2d4f25){if(_0x2d4f25){return _0x2d4f25?{'count':_0x4c9fc7,'rows':_0x2d4f25}:null;}})[_0x8382('0x20')](respondWithResult(_0xa8b09b,null))[_0x8382('0x40')](handleError(_0xa8b09b,null));};exports['getSubjects']=function(_0x1fc122,_0x24ae2c,_0x4ff0ac){var _0xa4aa97={};var _0x2b798f={};var _0x478fdc;var _0x4b80ef;return db[_0x8382('0x26')][_0x8382('0x47')]({'where':{'id':_0x1fc122['params']['id']}})['then'](handleEntityNotFound(_0x24ae2c,null))['then'](function(_0x331486){if(_0x331486){_0x478fdc=_0x331486;_0x2b798f[_0x8382('0x2b')]=_[_0x8382('0x2d')](db[_0x8382('0x48')][_0x8382('0x27')]);_0x2b798f['query']=_[_0x8382('0x2d')](_0x1fc122[_0x8382('0x2c')]);_0x2b798f[_0x8382('0x2e')]=_[_0x8382('0x2f')](_0x2b798f[_0x8382('0x2b')],_0x2b798f[_0x8382('0x2c')]);_0xa4aa97[_0x8382('0x30')]=_[_0x8382('0x2f')](_0x2b798f['model'],qs[_0x8382('0x31')](_0x1fc122[_0x8382('0x2c')][_0x8382('0x31')]));_0xa4aa97[_0x8382('0x30')]=_0xa4aa97['attributes'][_0x8382('0x32')]?_0xa4aa97['attributes']:_0x2b798f[_0x8382('0x2b')];_0xa4aa97[_0x8382('0x36')]=qs['sort'](_0x1fc122[_0x8382('0x2c')][_0x8382('0x37')]);_0xa4aa97[_0x8382('0x38')]=qs[_0x8382('0x2e')](_[_0x8382('0x39')](_0x1fc122[_0x8382('0x2c')],_0x2b798f[_0x8382('0x2e')]));if(_0x1fc122[_0x8382('0x2c')][_0x8382('0x3a')]){_0xa4aa97[_0x8382('0x38')]=_[_0x8382('0x3b')](_0xa4aa97[_0x8382('0x38')],{'$or':_[_0x8382('0x25')](_0xa4aa97[_0x8382('0x30')],function(_0x24195e){var _0x550cfd={};_0x550cfd[_0x24195e]={'$like':'%'+_0x1fc122[_0x8382('0x2c')][_0x8382('0x3a')]+'%'};return _0x550cfd;})});}_0xa4aa97=_[_0x8382('0x3b')]({},_0xa4aa97,_0x1fc122['options']);return _0x478fdc[_0x8382('0x49')](_0xa4aa97);}})['then'](function(_0x1c5260){if(_0x1c5260){_0x4b80ef=_0x1c5260['length'];if(!_0x1fc122[_0x8382('0x2c')][_0x8382('0x33')](_0x8382('0x34'))){_0xa4aa97[_0x8382('0x1a')]=qs[_0x8382('0x1a')](_0x1fc122[_0x8382('0x2c')][_0x8382('0x1a')]);_0xa4aa97['offset']=qs[_0x8382('0x35')](_0x1fc122[_0x8382('0x2c')][_0x8382('0x35')]);}return _0x478fdc[_0x8382('0x49')](_0xa4aa97);}})[_0x8382('0x20')](function(_0x1773cc){if(_0x1773cc){return _0x1773cc?{'count':_0x4b80ef,'rows':_0x1773cc}:null;}})[_0x8382('0x20')](respondWithResult(_0x24ae2c,null))['catch'](handleError(_0x24ae2c,null));};exports[_0x8382('0x4a')]=function(_0x11d806,_0x34786c,_0x2639a5){var _0x201eeb={};var _0x239484={};var _0x40958c;var _0x39b081;return db['ZendeskConfiguration'][_0x8382('0x47')]({'where':{'id':_0x11d806[_0x8382('0x44')]['id']}})[_0x8382('0x20')](handleEntityNotFound(_0x34786c,null))[_0x8382('0x20')](function(_0x29ff93){if(_0x29ff93){_0x40958c=_0x29ff93;_0x239484[_0x8382('0x2b')]=_['keys'](db[_0x8382('0x48')][_0x8382('0x27')]);_0x239484[_0x8382('0x2c')]=_[_0x8382('0x2d')](_0x11d806[_0x8382('0x2c')]);_0x239484['filters']=_['intersection'](_0x239484['model'],_0x239484[_0x8382('0x2c')]);_0x201eeb[_0x8382('0x30')]=_[_0x8382('0x2f')](_0x239484['model'],qs[_0x8382('0x31')](_0x11d806[_0x8382('0x2c')][_0x8382('0x31')]));_0x201eeb[_0x8382('0x30')]=_0x201eeb[_0x8382('0x30')]['length']?_0x201eeb[_0x8382('0x30')]:_0x239484[_0x8382('0x2b')];_0x201eeb['order']=qs[_0x8382('0x37')](_0x11d806['query']['sort']);_0x201eeb[_0x8382('0x38')]=qs[_0x8382('0x2e')](_[_0x8382('0x39')](_0x11d806[_0x8382('0x2c')],_0x239484[_0x8382('0x2e')]));if(_0x11d806[_0x8382('0x2c')]['filter']){_0x201eeb[_0x8382('0x38')]=_['merge'](_0x201eeb['where'],{'$or':_[_0x8382('0x25')](_0x201eeb[_0x8382('0x30')],function(_0x2a22fa){var _0x377f87={};_0x377f87[_0x2a22fa]={'$like':'%'+_0x11d806[_0x8382('0x2c')][_0x8382('0x3a')]+'%'};return _0x377f87;})});}_0x201eeb=_[_0x8382('0x3b')]({},_0x201eeb,_0x11d806[_0x8382('0x3d')]);return _0x40958c[_0x8382('0x4a')](_0x201eeb);}})[_0x8382('0x20')](function(_0x299f6a){if(_0x299f6a){_0x39b081=_0x299f6a[_0x8382('0x32')];if(!_0x11d806[_0x8382('0x2c')][_0x8382('0x33')](_0x8382('0x34'))){_0x201eeb[_0x8382('0x1a')]=qs[_0x8382('0x1a')](_0x11d806[_0x8382('0x2c')][_0x8382('0x1a')]);_0x201eeb[_0x8382('0x35')]=qs[_0x8382('0x35')](_0x11d806[_0x8382('0x2c')][_0x8382('0x35')]);}return _0x40958c['getDescriptions'](_0x201eeb);}})['then'](function(_0x524116){if(_0x524116){return _0x524116?{'count':_0x39b081,'rows':_0x524116}:null;}})[_0x8382('0x20')](respondWithResult(_0x34786c,null))['catch'](handleError(_0x34786c,null));};exports['getTags']=function(_0x3b6403,_0x185d7c,_0x3d301c){var _0x359cea={};var _0xbffc6c={};var _0x4a00d7;var _0x439518;return db[_0x8382('0x26')][_0x8382('0x47')]({'where':{'id':_0x3b6403['params']['id']}})['then'](handleEntityNotFound(_0x185d7c,null))[_0x8382('0x20')](function(_0xc7bde2){if(_0xc7bde2){_0x4a00d7=_0xc7bde2;_0xbffc6c[_0x8382('0x2b')]=_[_0x8382('0x2d')](db['Tag'][_0x8382('0x27')]);_0xbffc6c[_0x8382('0x2c')]=_[_0x8382('0x2d')](_0x3b6403[_0x8382('0x2c')]);_0xbffc6c[_0x8382('0x2e')]=_[_0x8382('0x2f')](_0xbffc6c[_0x8382('0x2b')],_0xbffc6c[_0x8382('0x2c')]);_0x359cea[_0x8382('0x30')]=_[_0x8382('0x2f')](_0xbffc6c[_0x8382('0x2b')],qs['fields'](_0x3b6403[_0x8382('0x2c')][_0x8382('0x31')]));_0x359cea[_0x8382('0x30')]=_0x359cea[_0x8382('0x30')][_0x8382('0x32')]?_0x359cea['attributes']:_0xbffc6c[_0x8382('0x2b')];_0x359cea[_0x8382('0x36')]=qs[_0x8382('0x37')](_0x3b6403['query'][_0x8382('0x37')]);_0x359cea['where']=qs[_0x8382('0x2e')](_[_0x8382('0x39')](_0x3b6403[_0x8382('0x2c')],_0xbffc6c['filters']));if(_0x3b6403[_0x8382('0x2c')]['filter']){_0x359cea[_0x8382('0x38')]=_[_0x8382('0x3b')](_0x359cea['where'],{'$or':_[_0x8382('0x25')](_0x359cea[_0x8382('0x30')],function(_0x24f112){var _0x48a691={};_0x48a691[_0x24f112]={'$like':'%'+_0x3b6403[_0x8382('0x2c')][_0x8382('0x3a')]+'%'};return _0x48a691;})});}_0x359cea=_[_0x8382('0x3b')]({},_0x359cea,_0x3b6403[_0x8382('0x3d')]);return _0x4a00d7[_0x8382('0x4b')](_0x359cea);}})[_0x8382('0x20')](function(_0x448e7a){if(_0x448e7a){_0x439518=_0x448e7a['length'];if(!_0x3b6403[_0x8382('0x2c')]['hasOwnProperty']('nolimit')){_0x359cea[_0x8382('0x1a')]=qs[_0x8382('0x1a')](_0x3b6403[_0x8382('0x2c')]['limit']);_0x359cea[_0x8382('0x35')]=qs[_0x8382('0x35')](_0x3b6403[_0x8382('0x2c')][_0x8382('0x35')]);}return _0x4a00d7[_0x8382('0x4b')](_0x359cea);}})[_0x8382('0x20')](function(_0x536f58){if(_0x536f58){return _0x536f58?{'count':_0x439518,'rows':_0x536f58}:null;}})[_0x8382('0x20')](respondWithResult(_0x185d7c,null))['catch'](handleError(_0x185d7c,null));};exports[_0x8382('0x4c')]=function(_0x1ca84a,_0x58f58e,_0x31b974){if(_0x1ca84a[_0x8382('0x43')]['id']){delete _0x1ca84a['body']['id'];}return db[_0x8382('0x26')][_0x8382('0x47')]({'where':{'id':_0x1ca84a[_0x8382('0x44')]['id']}})[_0x8382('0x20')](handleEntityNotFound(_0x58f58e,null))[_0x8382('0x20')](function(_0x32b3e0){if(_0x32b3e0){return _0x32b3e0[_0x8382('0x4c')](_0x1ca84a[_0x8382('0x43')][_0x8382('0x4d')]||[]);}return null;})[_0x8382('0x20')](respondWithResult(_0x58f58e,null))[_0x8382('0x40')](handleError(_0x58f58e,null));};
\ No newline at end of file
+var _0x8741=['../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','set','Content-Range','json','update','destroy','then','error','stack','name','send','map','ZendeskConfiguration','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','length','attributes','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','include','rows','catch','show','params','keys','includeAll','find','create','body','findOne','ZendeskField','getFields','hasOwnProperty','getSubjects','getDescriptions','getTags','Tag','setTags','ids','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','ejs','lodash','squel','crypto','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x4c2cd4,_0x3427f6){var _0x328a6c=function(_0x175f44){while(--_0x175f44){_0x4c2cd4['push'](_0x4c2cd4['shift']());}};_0x328a6c(++_0x3427f6);}(_0x8741,0x1e3));var _0x1874=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8741[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x1874('0x0'));var rimraf=require(_0x1874('0x1'));var zipdir=require(_0x1874('0x2'));var jsonpatch=require(_0x1874('0x3'));var rp=require('request-promise');var moment=require(_0x1874('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x1874('0x5'));var util=require(_0x1874('0x6'));var path=require(_0x1874('0x7'));var sox=require(_0x1874('0x8'));var csv=require('to-csv');var ejs=require(_0x1874('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1874('0xa'));var squel=require(_0x1874('0xb'));var crypto=require(_0x1874('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x1874('0xd'));var querystring=require(_0x1874('0xe'));var Papa=require(_0x1874('0xf'));var Redis=require('ioredis');var authService=require(_0x1874('0x10'));var qs=require(_0x1874('0x11'));var as=require(_0x1874('0x12'));var hardwareService=require(_0x1874('0x13'));var logger=require(_0x1874('0x14'))('api');var utils=require(_0x1874('0x15'));var config=require(_0x1874('0x16'));var licenseUtil=require(_0x1874('0x17'));var db=require(_0x1874('0x18'))['db'];function respondWithStatusCode(_0x28258a,_0x32a151){_0x32a151=_0x32a151||0xcc;return function(_0x2b8cc7){if(_0x2b8cc7){return _0x28258a[_0x1874('0x19')](_0x32a151);}return _0x28258a[_0x1874('0x1a')](_0x32a151)[_0x1874('0x1b')]();};}function respondWithResult(_0x32f63e,_0x8631d){_0x8631d=_0x8631d||0xc8;return function(_0x16d33e){if(_0x16d33e){return _0x32f63e[_0x1874('0x1a')](_0x8631d)['json'](_0x16d33e);}};}function respondWithFilteredResult(_0x1c68b2,_0x11b45f){return function(_0x2c2816){if(_0x2c2816){var _0x29e506=typeof _0x11b45f[_0x1874('0x1c')]===_0x1874('0x1d')&&typeof _0x11b45f[_0x1874('0x1e')]===_0x1874('0x1d');var _0x270da2=_0x2c2816['count'];var _0x4021ea=_0x29e506?0x0:_0x11b45f[_0x1874('0x1c')];var _0x1e49ee=_0x29e506?_0x2c2816['count']:_0x11b45f[_0x1874('0x1c')]+_0x11b45f[_0x1874('0x1e')];var _0x2694a5;if(_0x1e49ee>=_0x270da2){_0x1e49ee=_0x270da2;_0x2694a5=0xc8;}else{_0x2694a5=0xce;}_0x1c68b2['status'](_0x2694a5);return _0x1c68b2[_0x1874('0x1f')](_0x1874('0x20'),_0x4021ea+'-'+_0x1e49ee+'/'+_0x270da2)[_0x1874('0x21')](_0x2c2816);}return null;};}function patchUpdates(_0x53f868){return function(_0xb744b6){try{jsonpatch['apply'](_0xb744b6,_0x53f868,!![]);}catch(_0x13ae92){return BPromise['reject'](_0x13ae92);}return _0xb744b6['save']();};}function saveUpdates(_0xc85d32,_0x4b4664){return function(_0x12b3d6){if(_0x12b3d6){return _0x12b3d6[_0x1874('0x22')](_0xc85d32)['then'](function(_0x2c4d25){return _0x2c4d25;});}return null;};}function removeEntity(_0x140fff,_0x3b521d){return function(_0x411880){if(_0x411880){return _0x411880[_0x1874('0x23')]()[_0x1874('0x24')](function(){_0x140fff['status'](0xcc)[_0x1874('0x1b')]();});}};}function handleEntityNotFound(_0xc4f498,_0x5ac1ae){return function(_0x5ec129){if(!_0x5ec129){_0xc4f498[_0x1874('0x19')](0x194);}return _0x5ec129;};}function handleError(_0x5d3709,_0x317ea9){_0x317ea9=_0x317ea9||0x1f4;return function(_0x4060a6){logger[_0x1874('0x25')](_0x4060a6[_0x1874('0x26')]);if(_0x4060a6[_0x1874('0x27')]){delete _0x4060a6[_0x1874('0x27')];}_0x5d3709['status'](_0x317ea9)[_0x1874('0x28')](_0x4060a6);};}exports['index']=function(_0x457c5d,_0x7df915){var _0x11c215={},_0x5c8a8f={},_0x188e9d={'count':0x0,'rows':[]};var _0xff780b=_[_0x1874('0x29')](db[_0x1874('0x2a')][_0x1874('0x2b')],function(_0x199254){return{'name':_0x199254[_0x1874('0x2c')],'type':_0x199254[_0x1874('0x2d')][_0x1874('0x2e')]};});_0x5c8a8f[_0x1874('0x2f')]=_[_0x1874('0x29')](_0xff780b,'name');_0x5c8a8f[_0x1874('0x30')]=_['keys'](_0x457c5d[_0x1874('0x30')]);_0x5c8a8f[_0x1874('0x31')]=_[_0x1874('0x32')](_0x5c8a8f['model'],_0x5c8a8f['query']);_0x11c215['attributes']=_[_0x1874('0x32')](_0x5c8a8f[_0x1874('0x2f')],qs[_0x1874('0x33')](_0x457c5d[_0x1874('0x30')][_0x1874('0x33')]));_0x11c215['attributes']=_0x11c215['attributes'][_0x1874('0x34')]?_0x11c215[_0x1874('0x35')]:_0x5c8a8f[_0x1874('0x2f')];if(!_0x457c5d['query']['hasOwnProperty'](_0x1874('0x36'))){_0x11c215[_0x1874('0x1e')]=qs[_0x1874('0x1e')](_0x457c5d[_0x1874('0x30')][_0x1874('0x1e')]);_0x11c215['offset']=qs[_0x1874('0x1c')](_0x457c5d[_0x1874('0x30')][_0x1874('0x1c')]);}_0x11c215[_0x1874('0x37')]=qs[_0x1874('0x38')](_0x457c5d['query'][_0x1874('0x38')]);_0x11c215[_0x1874('0x39')]=qs[_0x1874('0x31')](_[_0x1874('0x3a')](_0x457c5d[_0x1874('0x30')],_0x5c8a8f['filters']),_0xff780b);if(_0x457c5d[_0x1874('0x30')][_0x1874('0x3b')]){_0x11c215[_0x1874('0x39')]=_[_0x1874('0x3c')](_0x11c215[_0x1874('0x39')],{'$or':_[_0x1874('0x29')](_0xff780b,function(_0x533e84){if(_0x533e84[_0x1874('0x2d')]!==_0x1874('0x3d')){var _0x18d30c={};_0x18d30c[_0x533e84[_0x1874('0x27')]]={'$like':'%'+_0x457c5d[_0x1874('0x30')][_0x1874('0x3b')]+'%'};return _0x18d30c;}})});}_0x11c215=_[_0x1874('0x3c')]({},_0x11c215,_0x457c5d[_0x1874('0x3e')]);var _0xfd759e={'where':_0x11c215[_0x1874('0x39')]};return db[_0x1874('0x2a')][_0x1874('0x3f')](_0xfd759e)[_0x1874('0x24')](function(_0x234d59){_0x188e9d[_0x1874('0x3f')]=_0x234d59;if(_0x457c5d[_0x1874('0x30')]['includeAll']){_0x11c215[_0x1874('0x40')]=[{'all':!![]}];}return db[_0x1874('0x2a')]['findAll'](_0x11c215);})[_0x1874('0x24')](function(_0x5ca0b1){_0x188e9d[_0x1874('0x41')]=_0x5ca0b1;return _0x188e9d;})[_0x1874('0x24')](respondWithFilteredResult(_0x7df915,_0x11c215))[_0x1874('0x42')](handleError(_0x7df915,null));};exports[_0x1874('0x43')]=function(_0x143a59,_0x13411c){var _0x52b18a={'raw':![],'where':{'id':_0x143a59[_0x1874('0x44')]['id']}},_0x12a118={};_0x12a118['model']=_[_0x1874('0x45')](db[_0x1874('0x2a')][_0x1874('0x2b')]);_0x12a118[_0x1874('0x30')]=_['keys'](_0x143a59[_0x1874('0x30')]);_0x12a118[_0x1874('0x31')]=_[_0x1874('0x32')](_0x12a118['model'],_0x12a118[_0x1874('0x30')]);_0x52b18a[_0x1874('0x35')]=_[_0x1874('0x32')](_0x12a118[_0x1874('0x2f')],qs[_0x1874('0x33')](_0x143a59[_0x1874('0x30')][_0x1874('0x33')]));_0x52b18a[_0x1874('0x35')]=_0x52b18a[_0x1874('0x35')][_0x1874('0x34')]?_0x52b18a['attributes']:_0x12a118[_0x1874('0x2f')];if(_0x143a59['query'][_0x1874('0x46')]){_0x52b18a[_0x1874('0x40')]=[{'all':!![]}];}_0x52b18a=_['merge']({},_0x52b18a,_0x143a59[_0x1874('0x3e')]);return db[_0x1874('0x2a')][_0x1874('0x47')](_0x52b18a)[_0x1874('0x24')](handleEntityNotFound(_0x13411c,null))[_0x1874('0x24')](respondWithResult(_0x13411c,null))[_0x1874('0x42')](handleError(_0x13411c,null));};exports[_0x1874('0x48')]=function(_0x5bfbc9,_0x1a26bf){return db[_0x1874('0x2a')][_0x1874('0x48')](_0x5bfbc9[_0x1874('0x49')],{})[_0x1874('0x24')](respondWithResult(_0x1a26bf,0xc9))[_0x1874('0x42')](handleError(_0x1a26bf,null));};exports[_0x1874('0x22')]=function(_0x2377c5,_0x4cfbc8){if(_0x2377c5[_0x1874('0x49')]['id']){delete _0x2377c5[_0x1874('0x49')]['id'];}return db[_0x1874('0x2a')][_0x1874('0x47')]({'where':{'id':_0x2377c5[_0x1874('0x44')]['id']}})[_0x1874('0x24')](handleEntityNotFound(_0x4cfbc8,null))[_0x1874('0x24')](saveUpdates(_0x2377c5[_0x1874('0x49')],null))['then'](respondWithResult(_0x4cfbc8,null))[_0x1874('0x42')](handleError(_0x4cfbc8,null));};exports[_0x1874('0x23')]=function(_0x27e3d5,_0x26dff5){return db['ZendeskConfiguration']['find']({'where':{'id':_0x27e3d5['params']['id']}})[_0x1874('0x24')](handleEntityNotFound(_0x26dff5,null))[_0x1874('0x24')](removeEntity(_0x26dff5,null))['catch'](handleError(_0x26dff5,null));};exports['getFields']=function(_0x24b835,_0x3586ff,_0x2f1870){var _0x1cc7ab={};var _0x333759={};var _0x5cbab6;var _0x29158d;return db['ZendeskConfiguration'][_0x1874('0x4a')]({'where':{'id':_0x24b835[_0x1874('0x44')]['id']}})['then'](handleEntityNotFound(_0x3586ff,null))['then'](function(_0x4f4b1f){if(_0x4f4b1f){_0x5cbab6=_0x4f4b1f;_0x333759[_0x1874('0x2f')]=_[_0x1874('0x45')](db[_0x1874('0x4b')]['rawAttributes']);_0x333759['query']=_[_0x1874('0x45')](_0x24b835['query']);_0x333759['filters']=_['intersection'](_0x333759[_0x1874('0x2f')],_0x333759[_0x1874('0x30')]);_0x1cc7ab[_0x1874('0x35')]=_[_0x1874('0x32')](_0x333759['model'],qs[_0x1874('0x33')](_0x24b835[_0x1874('0x30')][_0x1874('0x33')]));_0x1cc7ab[_0x1874('0x35')]=_0x1cc7ab[_0x1874('0x35')][_0x1874('0x34')]?_0x1cc7ab[_0x1874('0x35')]:_0x333759[_0x1874('0x2f')];_0x1cc7ab[_0x1874('0x37')]=qs[_0x1874('0x38')](_0x24b835['query']['sort']);_0x1cc7ab[_0x1874('0x39')]=qs[_0x1874('0x31')](_[_0x1874('0x3a')](_0x24b835['query'],_0x333759[_0x1874('0x31')]));if(_0x24b835[_0x1874('0x30')][_0x1874('0x3b')]){_0x1cc7ab['where']=_[_0x1874('0x3c')](_0x1cc7ab['where'],{'$or':_[_0x1874('0x29')](_0x1cc7ab['attributes'],function(_0x29b2f3){var _0x4856de={};_0x4856de[_0x29b2f3]={'$like':'%'+_0x24b835[_0x1874('0x30')]['filter']+'%'};return _0x4856de;})});}_0x1cc7ab=_['merge']({},_0x1cc7ab,_0x24b835[_0x1874('0x3e')]);return _0x5cbab6[_0x1874('0x4c')](_0x1cc7ab);}})[_0x1874('0x24')](function(_0x518bb7){if(_0x518bb7){_0x29158d=_0x518bb7[_0x1874('0x34')];if(!_0x24b835[_0x1874('0x30')][_0x1874('0x4d')](_0x1874('0x36'))){_0x1cc7ab[_0x1874('0x1e')]=qs[_0x1874('0x1e')](_0x24b835[_0x1874('0x30')][_0x1874('0x1e')]);_0x1cc7ab['offset']=qs['offset'](_0x24b835[_0x1874('0x30')][_0x1874('0x1c')]);}return _0x5cbab6[_0x1874('0x4c')](_0x1cc7ab);}})['then'](function(_0x45b1d8){if(_0x45b1d8){return _0x45b1d8?{'count':_0x29158d,'rows':_0x45b1d8}:null;}})[_0x1874('0x24')](respondWithResult(_0x3586ff,null))[_0x1874('0x42')](handleError(_0x3586ff,null));};exports[_0x1874('0x4e')]=function(_0x42e729,_0x284729,_0xe8fb11){var _0x12140a={};var _0x59e91f={};var _0x5c26d3;var _0x49978a;return db[_0x1874('0x2a')][_0x1874('0x4a')]({'where':{'id':_0x42e729[_0x1874('0x44')]['id']}})['then'](handleEntityNotFound(_0x284729,null))['then'](function(_0x2a589c){if(_0x2a589c){_0x5c26d3=_0x2a589c;_0x59e91f[_0x1874('0x2f')]=_[_0x1874('0x45')](db['ZendeskField'][_0x1874('0x2b')]);_0x59e91f[_0x1874('0x30')]=_[_0x1874('0x45')](_0x42e729[_0x1874('0x30')]);_0x59e91f[_0x1874('0x31')]=_[_0x1874('0x32')](_0x59e91f['model'],_0x59e91f[_0x1874('0x30')]);_0x12140a[_0x1874('0x35')]=_['intersection'](_0x59e91f[_0x1874('0x2f')],qs[_0x1874('0x33')](_0x42e729['query'][_0x1874('0x33')]));_0x12140a['attributes']=_0x12140a[_0x1874('0x35')]['length']?_0x12140a[_0x1874('0x35')]:_0x59e91f['model'];_0x12140a[_0x1874('0x37')]=qs[_0x1874('0x38')](_0x42e729[_0x1874('0x30')][_0x1874('0x38')]);_0x12140a['where']=qs[_0x1874('0x31')](_['pick'](_0x42e729['query'],_0x59e91f[_0x1874('0x31')]));if(_0x42e729[_0x1874('0x30')][_0x1874('0x3b')]){_0x12140a[_0x1874('0x39')]=_[_0x1874('0x3c')](_0x12140a[_0x1874('0x39')],{'$or':_[_0x1874('0x29')](_0x12140a['attributes'],function(_0x8d9012){var _0x37c20e={};_0x37c20e[_0x8d9012]={'$like':'%'+_0x42e729[_0x1874('0x30')][_0x1874('0x3b')]+'%'};return _0x37c20e;})});}_0x12140a=_['merge']({},_0x12140a,_0x42e729[_0x1874('0x3e')]);return _0x5c26d3['getSubjects'](_0x12140a);}})[_0x1874('0x24')](function(_0x45dcde){if(_0x45dcde){_0x49978a=_0x45dcde[_0x1874('0x34')];if(!_0x42e729[_0x1874('0x30')][_0x1874('0x4d')](_0x1874('0x36'))){_0x12140a['limit']=qs[_0x1874('0x1e')](_0x42e729[_0x1874('0x30')][_0x1874('0x1e')]);_0x12140a[_0x1874('0x1c')]=qs[_0x1874('0x1c')](_0x42e729['query'][_0x1874('0x1c')]);}return _0x5c26d3[_0x1874('0x4e')](_0x12140a);}})[_0x1874('0x24')](function(_0x50636d){if(_0x50636d){return _0x50636d?{'count':_0x49978a,'rows':_0x50636d}:null;}})[_0x1874('0x24')](respondWithResult(_0x284729,null))[_0x1874('0x42')](handleError(_0x284729,null));};exports[_0x1874('0x4f')]=function(_0x4666ed,_0x90debb,_0x29c403){var _0x4c2a93={};var _0x301cee={};var _0x33727e;var _0x10a7aa;return db[_0x1874('0x2a')][_0x1874('0x4a')]({'where':{'id':_0x4666ed[_0x1874('0x44')]['id']}})[_0x1874('0x24')](handleEntityNotFound(_0x90debb,null))[_0x1874('0x24')](function(_0x2b13f1){if(_0x2b13f1){_0x33727e=_0x2b13f1;_0x301cee[_0x1874('0x2f')]=_[_0x1874('0x45')](db[_0x1874('0x4b')][_0x1874('0x2b')]);_0x301cee['query']=_['keys'](_0x4666ed[_0x1874('0x30')]);_0x301cee[_0x1874('0x31')]=_[_0x1874('0x32')](_0x301cee[_0x1874('0x2f')],_0x301cee[_0x1874('0x30')]);_0x4c2a93[_0x1874('0x35')]=_[_0x1874('0x32')](_0x301cee[_0x1874('0x2f')],qs[_0x1874('0x33')](_0x4666ed['query']['fields']));_0x4c2a93[_0x1874('0x35')]=_0x4c2a93['attributes'][_0x1874('0x34')]?_0x4c2a93[_0x1874('0x35')]:_0x301cee[_0x1874('0x2f')];_0x4c2a93[_0x1874('0x37')]=qs['sort'](_0x4666ed[_0x1874('0x30')][_0x1874('0x38')]);_0x4c2a93['where']=qs[_0x1874('0x31')](_[_0x1874('0x3a')](_0x4666ed['query'],_0x301cee[_0x1874('0x31')]));if(_0x4666ed[_0x1874('0x30')][_0x1874('0x3b')]){_0x4c2a93[_0x1874('0x39')]=_[_0x1874('0x3c')](_0x4c2a93[_0x1874('0x39')],{'$or':_[_0x1874('0x29')](_0x4c2a93['attributes'],function(_0x6014f4){var _0x109359={};_0x109359[_0x6014f4]={'$like':'%'+_0x4666ed[_0x1874('0x30')]['filter']+'%'};return _0x109359;})});}_0x4c2a93=_[_0x1874('0x3c')]({},_0x4c2a93,_0x4666ed[_0x1874('0x3e')]);return _0x33727e[_0x1874('0x4f')](_0x4c2a93);}})[_0x1874('0x24')](function(_0x2bc8c5){if(_0x2bc8c5){_0x10a7aa=_0x2bc8c5[_0x1874('0x34')];if(!_0x4666ed[_0x1874('0x30')][_0x1874('0x4d')](_0x1874('0x36'))){_0x4c2a93['limit']=qs[_0x1874('0x1e')](_0x4666ed[_0x1874('0x30')][_0x1874('0x1e')]);_0x4c2a93[_0x1874('0x1c')]=qs[_0x1874('0x1c')](_0x4666ed[_0x1874('0x30')][_0x1874('0x1c')]);}return _0x33727e[_0x1874('0x4f')](_0x4c2a93);}})[_0x1874('0x24')](function(_0x45acba){if(_0x45acba){return _0x45acba?{'count':_0x10a7aa,'rows':_0x45acba}:null;}})[_0x1874('0x24')](respondWithResult(_0x90debb,null))[_0x1874('0x42')](handleError(_0x90debb,null));};exports[_0x1874('0x50')]=function(_0x1c39c5,_0x264fe4,_0x2c05ab){var _0x158fb5={};var _0x40522f={};var _0x47aee0;var _0x158e98;return db[_0x1874('0x2a')][_0x1874('0x4a')]({'where':{'id':_0x1c39c5['params']['id']}})[_0x1874('0x24')](handleEntityNotFound(_0x264fe4,null))[_0x1874('0x24')](function(_0x215e5b){if(_0x215e5b){_0x47aee0=_0x215e5b;_0x40522f[_0x1874('0x2f')]=_[_0x1874('0x45')](db[_0x1874('0x51')][_0x1874('0x2b')]);_0x40522f[_0x1874('0x30')]=_[_0x1874('0x45')](_0x1c39c5[_0x1874('0x30')]);_0x40522f[_0x1874('0x31')]=_[_0x1874('0x32')](_0x40522f['model'],_0x40522f[_0x1874('0x30')]);_0x158fb5[_0x1874('0x35')]=_[_0x1874('0x32')](_0x40522f['model'],qs[_0x1874('0x33')](_0x1c39c5[_0x1874('0x30')]['fields']));_0x158fb5[_0x1874('0x35')]=_0x158fb5['attributes'][_0x1874('0x34')]?_0x158fb5[_0x1874('0x35')]:_0x40522f['model'];_0x158fb5['order']=qs[_0x1874('0x38')](_0x1c39c5['query'][_0x1874('0x38')]);_0x158fb5[_0x1874('0x39')]=qs[_0x1874('0x31')](_['pick'](_0x1c39c5[_0x1874('0x30')],_0x40522f['filters']));if(_0x1c39c5[_0x1874('0x30')]['filter']){_0x158fb5[_0x1874('0x39')]=_['merge'](_0x158fb5['where'],{'$or':_[_0x1874('0x29')](_0x158fb5['attributes'],function(_0x595ba8){var _0x46034b={};_0x46034b[_0x595ba8]={'$like':'%'+_0x1c39c5['query']['filter']+'%'};return _0x46034b;})});}_0x158fb5=_['merge']({},_0x158fb5,_0x1c39c5['options']);return _0x47aee0[_0x1874('0x50')](_0x158fb5);}})[_0x1874('0x24')](function(_0x110e74){if(_0x110e74){_0x158e98=_0x110e74[_0x1874('0x34')];if(!_0x1c39c5[_0x1874('0x30')][_0x1874('0x4d')](_0x1874('0x36'))){_0x158fb5[_0x1874('0x1e')]=qs[_0x1874('0x1e')](_0x1c39c5[_0x1874('0x30')]['limit']);_0x158fb5['offset']=qs[_0x1874('0x1c')](_0x1c39c5[_0x1874('0x30')][_0x1874('0x1c')]);}return _0x47aee0['getTags'](_0x158fb5);}})[_0x1874('0x24')](function(_0x393cb0){if(_0x393cb0){return _0x393cb0?{'count':_0x158e98,'rows':_0x393cb0}:null;}})[_0x1874('0x24')](respondWithResult(_0x264fe4,null))['catch'](handleError(_0x264fe4,null));};exports[_0x1874('0x52')]=function(_0x5c8ff9,_0x24b525,_0x2aaaf7){if(_0x5c8ff9['body']['id']){delete _0x5c8ff9[_0x1874('0x49')]['id'];}return db[_0x1874('0x2a')]['findOne']({'where':{'id':_0x5c8ff9[_0x1874('0x44')]['id']}})[_0x1874('0x24')](handleEntityNotFound(_0x24b525,null))[_0x1874('0x24')](function(_0x2f57d5){if(_0x2f57d5){return _0x2f57d5[_0x1874('0x52')](_0x5c8ff9['body'][_0x1874('0x53')]||[]);}return null;})[_0x1874('0x24')](respondWithResult(_0x24b525,null))[_0x1874('0x42')](handleError(_0x24b525,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7334=['exports','define','ZendeskConfiguration','int_zendesk_configurations','lodash','util','../../config/logger','bluebird','path','rimraf','../../config/environment','./intZendeskConfiguration.attributes'];(function(_0x19f8ee,_0x3e08c2){var _0x3b68f2=function(_0x1f0f13){while(--_0x1f0f13){_0x19f8ee['push'](_0x19f8ee['shift']());}};_0x3b68f2(++_0x3e08c2);}(_0x7334,0x184));var _0x4733=function(_0x3afd1a,_0xbdd2b8){_0x3afd1a=_0x3afd1a-0x0;var _0x820690=_0x7334[_0x3afd1a];return _0x820690;};'use strict';var _=require(_0x4733('0x0'));var util=require(_0x4733('0x1'));var logger=require(_0x4733('0x2'))('api');var moment=require('moment');var BPromise=require(_0x4733('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4733('0x4'));var rimraf=require(_0x4733('0x5'));var config=require(_0x4733('0x6'));var attributes=require(_0x4733('0x7'));module[_0x4733('0x8')]=function(_0x449ead,_0x16d7cc){return _0x449ead[_0x4733('0x9')](_0x4733('0xa'),attributes,{'tableName':_0x4733('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2032=['int_zendesk_configurations','util','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment','./intZendeskConfiguration.attributes','exports','define','ZendeskConfiguration'];(function(_0xff025f,_0x62f531){var _0x4bf1de=function(_0x245d2f){while(--_0x245d2f){_0xff025f['push'](_0xff025f['shift']());}};_0x4bf1de(++_0x62f531);}(_0x2032,0xd9));var _0x2203=function(_0x1a1989,_0x3af0e4){_0x1a1989=_0x1a1989-0x0;var _0x3d13bc=_0x2032[_0x1a1989];return _0x3d13bc;};'use strict';var _=require('lodash');var util=require(_0x2203('0x0'));var logger=require(_0x2203('0x1'))(_0x2203('0x2'));var moment=require('moment');var BPromise=require(_0x2203('0x3'));var rp=require(_0x2203('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x2203('0x5'));var config=require(_0x2203('0x6'));var attributes=require(_0x2203('0x7'));module[_0x2203('0x8')]=function(_0x3f7ba1,_0x13367a){return _0x3f7ba1[_0x2203('0x9')](_0x2203('0xa'),attributes,{'tableName':_0x2203('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe6df=['util','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','then','info','ZendeskConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','ZendeskConfiguration,\x20%s,\x20%s','message','result','catch','lodash'];(function(_0x2431d6,_0x25189a){var _0x4d0f9b=function(_0x52cd84){while(--_0x52cd84){_0x2431d6['push'](_0x2431d6['shift']());}};_0x4d0f9b(++_0x25189a);}(_0xe6df,0x120));var _0xfe6d=function(_0x2c046c,_0x4e11b8){_0x2c046c=_0x2c046c-0x0;var _0x51a7f6=_0xe6df[_0x2c046c];return _0x51a7f6;};'use strict';var _=require(_0xfe6d('0x0'));var util=require(_0xfe6d('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xfe6d('0x2'));var db=require(_0xfe6d('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xfe6d('0x4'))(_0xfe6d('0x5'));var config=require(_0xfe6d('0x6'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x13e470,_0x4190f9,_0xc0e25){return new BPromise(function(_0xca107b,_0x147cc3){return client['request'](_0x13e470,_0xc0e25)[_0xfe6d('0x7')](function(_0x1b97b8){logger[_0xfe6d('0x8')]('ZendeskConfiguration,\x20%s,\x20%s',_0x4190f9,'request\x20sent');logger['debug'](_0xfe6d('0x9'),_0x4190f9,_0xfe6d('0xa'),JSON['stringify'](_0x1b97b8));if(_0x1b97b8[_0xfe6d('0xb')]){if(_0x1b97b8[_0xfe6d('0xb')][_0xfe6d('0xc')]===0x1f4){logger[_0xfe6d('0xb')](_0xfe6d('0xd'),_0x4190f9,_0x1b97b8[_0xfe6d('0xb')][_0xfe6d('0xe')]);return _0x147cc3(_0x1b97b8[_0xfe6d('0xb')][_0xfe6d('0xe')]);}logger['error'](_0xfe6d('0xd'),_0x4190f9,_0x1b97b8[_0xfe6d('0xb')][_0xfe6d('0xe')]);return _0xca107b(_0x1b97b8[_0xfe6d('0xb')]['message']);}else{logger[_0xfe6d('0x8')](_0xfe6d('0xd'),_0x4190f9,_0xfe6d('0xa'));_0xca107b(_0x1b97b8[_0xfe6d('0xf')][_0xfe6d('0xe')]);}})[_0xfe6d('0x10')](function(_0x2001b4){logger['error'](_0xfe6d('0xd'),_0x4190f9,_0x2001b4);_0x147cc3(_0x2001b4);});});}
\ No newline at end of file
+var _0xc59e=['client','request','then','ZendeskConfiguration,\x20%s,\x20%s','request\x20sent','error','message','info','result','catch','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xc59e,0x13a));var _0xec59=function(_0x384c23,_0x30cd65){_0x384c23=_0x384c23-0x0;var _0x1fdf67=_0xc59e[_0x384c23];return _0x1fdf67;};'use strict';var _=require(_0xec59('0x0'));var util=require('util');var moment=require(_0xec59('0x1'));var BPromise=require('bluebird');var rs=require(_0xec59('0x2'));var fs=require('fs');var Redis=require(_0xec59('0x3'));var db=require(_0xec59('0x4'))['db'];var utils=require(_0xec59('0x5'));var logger=require(_0xec59('0x6'))(_0xec59('0x7'));var config=require(_0xec59('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xec59('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x23428c,_0x505a1b,_0x1717ac){return new BPromise(function(_0x3f7125,_0x2d6016){return client[_0xec59('0xa')](_0x23428c,_0x1717ac)[_0xec59('0xb')](function(_0x15d5bf){logger['info'](_0xec59('0xc'),_0x505a1b,_0xec59('0xd'));logger['debug']('ZendeskConfiguration,\x20%s,\x20%s,\x20%s',_0x505a1b,_0xec59('0xd'),JSON['stringify'](_0x15d5bf));if(_0x15d5bf['error']){if(_0x15d5bf[_0xec59('0xe')]['code']===0x1f4){logger['error'](_0xec59('0xc'),_0x505a1b,_0x15d5bf[_0xec59('0xe')][_0xec59('0xf')]);return _0x2d6016(_0x15d5bf['error'][_0xec59('0xf')]);}logger[_0xec59('0xe')](_0xec59('0xc'),_0x505a1b,_0x15d5bf[_0xec59('0xe')]['message']);return _0x3f7125(_0x15d5bf[_0xec59('0xe')][_0xec59('0xf')]);}else{logger[_0xec59('0x10')](_0xec59('0xc'),_0x505a1b,'request\x20sent');_0x3f7125(_0x15d5bf[_0xec59('0x11')][_0xec59('0xf')]);}})[_0xec59('0x12')](function(_0x46af16){logger[_0xec59('0xe')](_0xec59('0xc'),_0x505a1b,_0x46af16);_0x2d6016(_0x46af16);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1721=['delete','destroy','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','get','/:id','isAuthenticated','show','post','create','put','update'];(function(_0x12f9e6,_0x2e62cd){var _0x5e52f3=function(_0x571c3e){while(--_0x571c3e){_0x12f9e6['push'](_0x12f9e6['shift']());}};_0x5e52f3(++_0x2e62cd);}(_0x1721,0xfe));var _0x1172=function(_0xfe1f10,_0x16ee51){_0xfe1f10=_0xfe1f10-0x0;var _0x5c24f5=_0x1721[_0xfe1f10];return _0x5c24f5;};'use strict';var multer=require('multer');var util=require(_0x1172('0x0'));var path=require(_0x1172('0x1'));var timeout=require(_0x1172('0x2'));var express=require(_0x1172('0x3'));var router=express[_0x1172('0x4')]();var fs_extra=require(_0x1172('0x5'));var auth=require(_0x1172('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x1172('0x7'));var controller=require('./intZendeskField.controller');router[_0x1172('0x8')]('/',auth['isAuthenticated'](),controller['index']);router[_0x1172('0x8')](_0x1172('0x9'),auth[_0x1172('0xa')](),controller[_0x1172('0xb')]);router[_0x1172('0xc')]('/',auth['isAuthenticated'](),controller[_0x1172('0xd')]);router[_0x1172('0xe')]('/:id',auth[_0x1172('0xa')](),controller[_0x1172('0xf')]);router[_0x1172('0x10')]('/:id',auth['isAuthenticated'](),controller[_0x1172('0x11')]);module['exports']=router;
\ No newline at end of file
+var _0x4bbc=['update','delete','exports','multer','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskField.controller','get','isAuthenticated','index','/:id','show','put'];(function(_0x396930,_0x367b48){var _0x214d22=function(_0x4d239c){while(--_0x4d239c){_0x396930['push'](_0x396930['shift']());}};_0x214d22(++_0x367b48);}(_0x4bbc,0x18a));var _0xc4bb=function(_0x499fe1,_0x5881b3){_0x499fe1=_0x499fe1-0x0;var _0x1f5101=_0x4bbc[_0x499fe1];return _0x1f5101;};'use strict';var multer=require(_0xc4bb('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xc4bb('0x1'));var express=require(_0xc4bb('0x2'));var router=express[_0xc4bb('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xc4bb('0x4'));var interaction=require(_0xc4bb('0x5'));var config=require(_0xc4bb('0x6'));var controller=require(_0xc4bb('0x7'));router[_0xc4bb('0x8')]('/',auth[_0xc4bb('0x9')](),controller[_0xc4bb('0xa')]);router[_0xc4bb('0x8')](_0xc4bb('0xb'),auth[_0xc4bb('0x9')](),controller[_0xc4bb('0xc')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0xc4bb('0xd')](_0xc4bb('0xb'),auth[_0xc4bb('0x9')](),controller[_0xc4bb('0xe')]);router[_0xc4bb('0xf')]('/:id',auth[_0xc4bb('0x9')](),controller['destroy']);module[_0xc4bb('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3302=['picklist','STRING','BOOLEAN','sequelize','ENUM','string','variable','customVariable','keyValue'];(function(_0x3804d3,_0x333308){var _0x5e8eaf=function(_0x59e596){while(--_0x59e596){_0x3804d3['push'](_0x3804d3['shift']());}};_0x5e8eaf(++_0x333308);}(_0x3302,0xc0));var _0x2330=function(_0x250350,_0x2f6391){_0x250350=_0x250350-0x0;var _0x1bd555=_0x3302[_0x250350];return _0x1bd555;};'use strict';var Sequelize=require(_0x2330('0x0'));module['exports']={'type':{'type':Sequelize[_0x2330('0x1')](_0x2330('0x2'),_0x2330('0x3'),_0x2330('0x4'),_0x2330('0x5'),_0x2330('0x6')),'defaultValue':_0x2330('0x2')},'content':{'type':Sequelize[_0x2330('0x7')]},'key':{'type':Sequelize[_0x2330('0x7')]},'keyType':{'type':Sequelize['ENUM'](_0x2330('0x2'),_0x2330('0x3'),'customVariable')},'keyContent':{'type':Sequelize[_0x2330('0x7')]},'idField':{'type':Sequelize[_0x2330('0x7')]},'nameField':{'type':Sequelize[_0x2330('0x7')]},'customField':{'type':Sequelize[_0x2330('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x2330('0x7')]}};
\ No newline at end of file
+var _0xd9fb=['variable','customVariable','keyValue','picklist','STRING','sequelize','exports','ENUM','string'];(function(_0x44ea92,_0x58b09d){var _0x38baab=function(_0x51cd38){while(--_0x51cd38){_0x44ea92['push'](_0x44ea92['shift']());}};_0x38baab(++_0x58b09d);}(_0xd9fb,0x140));var _0xbd9f=function(_0x710815,_0x520da8){_0x710815=_0x710815-0x0;var _0x5b3b89=_0xd9fb[_0x710815];return _0x5b3b89;};'use strict';var Sequelize=require(_0xbd9f('0x0'));module[_0xbd9f('0x1')]={'type':{'type':Sequelize[_0xbd9f('0x2')](_0xbd9f('0x3'),_0xbd9f('0x4'),_0xbd9f('0x5'),_0xbd9f('0x6'),_0xbd9f('0x7')),'defaultValue':_0xbd9f('0x3')},'content':{'type':Sequelize[_0xbd9f('0x8')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0xbd9f('0x2')]('string',_0xbd9f('0x4'),_0xbd9f('0x5'))},'keyContent':{'type':Sequelize[_0xbd9f('0x8')]},'idField':{'type':Sequelize[_0xbd9f('0x8')]},'nameField':{'type':Sequelize[_0xbd9f('0x8')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xbd9f('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6ad=['create','body','destroy','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','sendStatus','error','stack','name','send','ZendeskField','fieldName','key','model','map','query','keys','filters','attributes','fields','length','hasOwnProperty','order','sort','where','filter','VIRTUAL','merge','options','includeAll','include','findAll','show','params','rawAttributes','intersection','find','catch'];(function(_0x4ed4d2,_0x47acf7){var _0x15ae2e=function(_0x3199f0){while(--_0x3199f0){_0x4ed4d2['push'](_0x4ed4d2['shift']());}};_0x15ae2e(++_0x47acf7);}(_0xf6ad,0x1c5));var _0xdf6a=function(_0x1b74ee,_0x2d74dd){_0x1b74ee=_0x1b74ee-0x0;var _0x32a443=_0xf6ad[_0x1b74ee];return _0x32a443;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xdf6a('0x0'));var rp=require(_0xdf6a('0x1'));var moment=require(_0xdf6a('0x2'));var BPromise=require(_0xdf6a('0x3'));var Mustache=require(_0xdf6a('0x4'));var util=require(_0xdf6a('0x5'));var path=require(_0xdf6a('0x6'));var sox=require(_0xdf6a('0x7'));var csv=require(_0xdf6a('0x8'));var ejs=require(_0xdf6a('0x9'));var fs=require('fs');var fs_extra=require(_0xdf6a('0xa'));var _=require(_0xdf6a('0xb'));var squel=require(_0xdf6a('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xdf6a('0xd'));var toCsv=require(_0xdf6a('0x8'));var querystring=require(_0xdf6a('0xe'));var Papa=require(_0xdf6a('0xf'));var Redis=require(_0xdf6a('0x10'));var authService=require(_0xdf6a('0x11'));var qs=require(_0xdf6a('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xdf6a('0x13'));var logger=require(_0xdf6a('0x14'))('api');var utils=require(_0xdf6a('0x15'));var config=require(_0xdf6a('0x16'));var licenseUtil=require(_0xdf6a('0x17'));var db=require(_0xdf6a('0x18'))['db'];function respondWithStatusCode(_0x355759,_0x153c68){_0x153c68=_0x153c68||0xcc;return function(_0x57d425){if(_0x57d425){return _0x355759['sendStatus'](_0x153c68);}return _0x355759[_0xdf6a('0x19')](_0x153c68)[_0xdf6a('0x1a')]();};}function respondWithResult(_0x51630c,_0x1ad129){_0x1ad129=_0x1ad129||0xc8;return function(_0x39fd95){if(_0x39fd95){return _0x51630c[_0xdf6a('0x19')](_0x1ad129)[_0xdf6a('0x1b')](_0x39fd95);}};}function respondWithFilteredResult(_0x1bf421,_0x2a5244){return function(_0x770af3){if(_0x770af3){var _0x2ded71=typeof _0x2a5244['offset']===_0xdf6a('0x1c')&&typeof _0x2a5244[_0xdf6a('0x1d')]==='undefined';var _0x257df9=_0x770af3[_0xdf6a('0x1e')];var _0x19b888=_0x2ded71?0x0:_0x2a5244[_0xdf6a('0x1f')];var _0x277630=_0x2ded71?_0x770af3[_0xdf6a('0x1e')]:_0x2a5244[_0xdf6a('0x1f')]+_0x2a5244[_0xdf6a('0x1d')];var _0x115226;if(_0x277630>=_0x257df9){_0x277630=_0x257df9;_0x115226=0xc8;}else{_0x115226=0xce;}_0x1bf421[_0xdf6a('0x19')](_0x115226);return _0x1bf421[_0xdf6a('0x20')](_0xdf6a('0x21'),_0x19b888+'-'+_0x277630+'/'+_0x257df9)[_0xdf6a('0x1b')](_0x770af3);}return null;};}function patchUpdates(_0x43a355){return function(_0x2449f2){try{jsonpatch[_0xdf6a('0x22')](_0x2449f2,_0x43a355,!![]);}catch(_0x3f7982){return BPromise[_0xdf6a('0x23')](_0x3f7982);}return _0x2449f2[_0xdf6a('0x24')]();};}function saveUpdates(_0x5dbd17,_0x38f830){return function(_0x580693){if(_0x580693){return _0x580693[_0xdf6a('0x25')](_0x5dbd17)['then'](function(_0x98f2d){return _0x98f2d;});}return null;};}function removeEntity(_0x17cc90,_0x45bb5f){return function(_0x59053c){if(_0x59053c){return _0x59053c['destroy']()[_0xdf6a('0x26')](function(){_0x17cc90[_0xdf6a('0x19')](0xcc)[_0xdf6a('0x1a')]();});}};}function handleEntityNotFound(_0x13a74a,_0x53b2e1){return function(_0x5a9bfc){if(!_0x5a9bfc){_0x13a74a[_0xdf6a('0x27')](0x194);}return _0x5a9bfc;};}function handleError(_0x4c2333,_0x14127b){_0x14127b=_0x14127b||0x1f4;return function(_0x450dcd){logger[_0xdf6a('0x28')](_0x450dcd[_0xdf6a('0x29')]);if(_0x450dcd[_0xdf6a('0x2a')]){delete _0x450dcd[_0xdf6a('0x2a')];}_0x4c2333[_0xdf6a('0x19')](_0x14127b)[_0xdf6a('0x2b')](_0x450dcd);};}exports['index']=function(_0x5e8213,_0x430e0c){var _0xda1906={},_0x8f5db6={},_0x587e68={'count':0x0,'rows':[]};var _0x51ab29=_['map'](db[_0xdf6a('0x2c')]['rawAttributes'],function(_0x29a68d){return{'name':_0x29a68d[_0xdf6a('0x2d')],'type':_0x29a68d['type'][_0xdf6a('0x2e')]};});_0x8f5db6[_0xdf6a('0x2f')]=_[_0xdf6a('0x30')](_0x51ab29,_0xdf6a('0x2a'));_0x8f5db6[_0xdf6a('0x31')]=_[_0xdf6a('0x32')](_0x5e8213['query']);_0x8f5db6[_0xdf6a('0x33')]=_['intersection'](_0x8f5db6['model'],_0x8f5db6['query']);_0xda1906[_0xdf6a('0x34')]=_['intersection'](_0x8f5db6['model'],qs['fields'](_0x5e8213[_0xdf6a('0x31')][_0xdf6a('0x35')]));_0xda1906['attributes']=_0xda1906[_0xdf6a('0x34')][_0xdf6a('0x36')]?_0xda1906['attributes']:_0x8f5db6[_0xdf6a('0x2f')];if(!_0x5e8213['query'][_0xdf6a('0x37')]('nolimit')){_0xda1906[_0xdf6a('0x1d')]=qs[_0xdf6a('0x1d')](_0x5e8213[_0xdf6a('0x31')][_0xdf6a('0x1d')]);_0xda1906[_0xdf6a('0x1f')]=qs['offset'](_0x5e8213[_0xdf6a('0x31')]['offset']);}_0xda1906[_0xdf6a('0x38')]=qs[_0xdf6a('0x39')](_0x5e8213[_0xdf6a('0x31')]['sort']);_0xda1906[_0xdf6a('0x3a')]=qs['filters'](_['pick'](_0x5e8213['query'],_0x8f5db6[_0xdf6a('0x33')]),_0x51ab29);if(_0x5e8213['query'][_0xdf6a('0x3b')]){_0xda1906['where']=_['merge'](_0xda1906[_0xdf6a('0x3a')],{'$or':_[_0xdf6a('0x30')](_0x51ab29,function(_0x414426){if(_0x414426['type']!==_0xdf6a('0x3c')){var _0x35eb14={};_0x35eb14[_0x414426['name']]={'$like':'%'+_0x5e8213[_0xdf6a('0x31')][_0xdf6a('0x3b')]+'%'};return _0x35eb14;}})});}_0xda1906=_[_0xdf6a('0x3d')]({},_0xda1906,_0x5e8213[_0xdf6a('0x3e')]);var _0x4f58b1={'where':_0xda1906[_0xdf6a('0x3a')]};return db[_0xdf6a('0x2c')][_0xdf6a('0x1e')](_0x4f58b1)[_0xdf6a('0x26')](function(_0x2562b5){_0x587e68[_0xdf6a('0x1e')]=_0x2562b5;if(_0x5e8213[_0xdf6a('0x31')][_0xdf6a('0x3f')]){_0xda1906[_0xdf6a('0x40')]=[{'all':!![]}];}return db[_0xdf6a('0x2c')][_0xdf6a('0x41')](_0xda1906);})[_0xdf6a('0x26')](function(_0x5417c1){_0x587e68['rows']=_0x5417c1;return _0x587e68;})['then'](respondWithFilteredResult(_0x430e0c,_0xda1906))['catch'](handleError(_0x430e0c,null));};exports[_0xdf6a('0x42')]=function(_0x4f838e,_0x1a4e2a){var _0x3e37cf={'raw':!![],'where':{'id':_0x4f838e[_0xdf6a('0x43')]['id']}},_0x806ace={};_0x806ace[_0xdf6a('0x2f')]=_[_0xdf6a('0x32')](db['ZendeskField'][_0xdf6a('0x44')]);_0x806ace[_0xdf6a('0x31')]=_['keys'](_0x4f838e[_0xdf6a('0x31')]);_0x806ace[_0xdf6a('0x33')]=_[_0xdf6a('0x45')](_0x806ace[_0xdf6a('0x2f')],_0x806ace['query']);_0x3e37cf['attributes']=_[_0xdf6a('0x45')](_0x806ace['model'],qs['fields'](_0x4f838e[_0xdf6a('0x31')]['fields']));_0x3e37cf['attributes']=_0x3e37cf[_0xdf6a('0x34')][_0xdf6a('0x36')]?_0x3e37cf[_0xdf6a('0x34')]:_0x806ace[_0xdf6a('0x2f')];if(_0x4f838e['query'][_0xdf6a('0x3f')]){_0x3e37cf[_0xdf6a('0x40')]=[{'all':!![]}];}_0x3e37cf=_[_0xdf6a('0x3d')]({},_0x3e37cf,_0x4f838e[_0xdf6a('0x3e')]);return db[_0xdf6a('0x2c')][_0xdf6a('0x46')](_0x3e37cf)['then'](handleEntityNotFound(_0x1a4e2a,null))[_0xdf6a('0x26')](respondWithResult(_0x1a4e2a,null))[_0xdf6a('0x47')](handleError(_0x1a4e2a,null));};exports[_0xdf6a('0x48')]=function(_0x15b6c3,_0x29984c){return db[_0xdf6a('0x2c')]['create'](_0x15b6c3[_0xdf6a('0x49')],{})[_0xdf6a('0x26')](respondWithResult(_0x29984c,0xc9))[_0xdf6a('0x47')](handleError(_0x29984c,null));};exports[_0xdf6a('0x25')]=function(_0x75834,_0x5d1ba8){if(_0x75834[_0xdf6a('0x49')]['id']){delete _0x75834['body']['id'];}return db[_0xdf6a('0x2c')][_0xdf6a('0x46')]({'where':{'id':_0x75834[_0xdf6a('0x43')]['id']}})[_0xdf6a('0x26')](handleEntityNotFound(_0x5d1ba8,null))[_0xdf6a('0x26')](saveUpdates(_0x75834[_0xdf6a('0x49')],null))[_0xdf6a('0x26')](respondWithResult(_0x5d1ba8,null))['catch'](handleError(_0x5d1ba8,null));};exports[_0xdf6a('0x4a')]=function(_0x4f195a,_0x1d6c6b){return db['ZendeskField'][_0xdf6a('0x46')]({'where':{'id':_0x4f195a[_0xdf6a('0x43')]['id']}})[_0xdf6a('0x26')](handleEntityNotFound(_0x1d6c6b,null))[_0xdf6a('0x26')](removeEntity(_0x1d6c6b,null))[_0xdf6a('0x47')](handleError(_0x1d6c6b,null));};
\ No newline at end of file
+var _0x883e=['nolimit','sort','pick','filter','where','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','create','body','find','params','destroy','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','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','status','json','offset','undefined','limit','count','set','apply','reject','save','update','then','end','stack','name','send','ZendeskField','rawAttributes','fieldName','key','model','map','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty'];(function(_0x5ee049,_0x1bc45b){var _0x5e41e8=function(_0x4ffc6d){while(--_0x4ffc6d){_0x5ee049['push'](_0x5ee049['shift']());}};_0x5e41e8(++_0x1bc45b);}(_0x883e,0xf9));var _0xe883=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x883e[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xe883('0x0'));var rimraf=require(_0xe883('0x1'));var zipdir=require(_0xe883('0x2'));var jsonpatch=require(_0xe883('0x3'));var rp=require(_0xe883('0x4'));var moment=require(_0xe883('0x5'));var BPromise=require(_0xe883('0x6'));var Mustache=require(_0xe883('0x7'));var util=require(_0xe883('0x8'));var path=require(_0xe883('0x9'));var sox=require(_0xe883('0xa'));var csv=require(_0xe883('0xb'));var ejs=require(_0xe883('0xc'));var fs=require('fs');var fs_extra=require(_0xe883('0xd'));var _=require(_0xe883('0xe'));var squel=require(_0xe883('0xf'));var crypto=require(_0xe883('0x10'));var jsforce=require(_0xe883('0x11'));var deskjs=require('desk.js');var toCsv=require(_0xe883('0xb'));var querystring=require(_0xe883('0x12'));var Papa=require(_0xe883('0x13'));var Redis=require(_0xe883('0x14'));var authService=require(_0xe883('0x15'));var qs=require(_0xe883('0x16'));var as=require(_0xe883('0x17'));var hardwareService=require(_0xe883('0x18'));var logger=require('../../config/logger')(_0xe883('0x19'));var utils=require(_0xe883('0x1a'));var config=require(_0xe883('0x1b'));var licenseUtil=require(_0xe883('0x1c'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5d59ed,_0x1b1c0a){_0x1b1c0a=_0x1b1c0a||0xcc;return function(_0x2b3904){if(_0x2b3904){return _0x5d59ed['sendStatus'](_0x1b1c0a);}return _0x5d59ed[_0xe883('0x1d')](_0x1b1c0a)['end']();};}function respondWithResult(_0x403826,_0x2c2d25){_0x2c2d25=_0x2c2d25||0xc8;return function(_0x534880){if(_0x534880){return _0x403826[_0xe883('0x1d')](_0x2c2d25)[_0xe883('0x1e')](_0x534880);}};}function respondWithFilteredResult(_0x40cc3d,_0x1cd19d){return function(_0x545389){if(_0x545389){var _0x2c5753=typeof _0x1cd19d[_0xe883('0x1f')]===_0xe883('0x20')&&typeof _0x1cd19d[_0xe883('0x21')]===_0xe883('0x20');var _0x1e87d7=_0x545389[_0xe883('0x22')];var _0x3008b3=_0x2c5753?0x0:_0x1cd19d[_0xe883('0x1f')];var _0x46b56e=_0x2c5753?_0x545389['count']:_0x1cd19d['offset']+_0x1cd19d[_0xe883('0x21')];var _0x461e8b;if(_0x46b56e>=_0x1e87d7){_0x46b56e=_0x1e87d7;_0x461e8b=0xc8;}else{_0x461e8b=0xce;}_0x40cc3d[_0xe883('0x1d')](_0x461e8b);return _0x40cc3d[_0xe883('0x23')]('Content-Range',_0x3008b3+'-'+_0x46b56e+'/'+_0x1e87d7)['json'](_0x545389);}return null;};}function patchUpdates(_0x3a34fc){return function(_0x185d74){try{jsonpatch[_0xe883('0x24')](_0x185d74,_0x3a34fc,!![]);}catch(_0x36e77e){return BPromise[_0xe883('0x25')](_0x36e77e);}return _0x185d74[_0xe883('0x26')]();};}function saveUpdates(_0x42b02c,_0x5895ae){return function(_0x539cb5){if(_0x539cb5){return _0x539cb5[_0xe883('0x27')](_0x42b02c)[_0xe883('0x28')](function(_0x339986){return _0x339986;});}return null;};}function removeEntity(_0xbdce0c,_0x22c441){return function(_0x278bed){if(_0x278bed){return _0x278bed['destroy']()[_0xe883('0x28')](function(){_0xbdce0c[_0xe883('0x1d')](0xcc)[_0xe883('0x29')]();});}};}function handleEntityNotFound(_0x29ecb8,_0x1e9f8e){return function(_0x247e7c){if(!_0x247e7c){_0x29ecb8['sendStatus'](0x194);}return _0x247e7c;};}function handleError(_0x565753,_0x41a526){_0x41a526=_0x41a526||0x1f4;return function(_0x3fe22b){logger['error'](_0x3fe22b[_0xe883('0x2a')]);if(_0x3fe22b[_0xe883('0x2b')]){delete _0x3fe22b[_0xe883('0x2b')];}_0x565753[_0xe883('0x1d')](_0x41a526)[_0xe883('0x2c')](_0x3fe22b);};}exports['index']=function(_0x1e0213,_0xdbd4d6){var _0x51421e={},_0x3494b6={},_0x408d7e={'count':0x0,'rows':[]};var _0x545962=_['map'](db[_0xe883('0x2d')][_0xe883('0x2e')],function(_0x112e62){return{'name':_0x112e62[_0xe883('0x2f')],'type':_0x112e62['type'][_0xe883('0x30')]};});_0x3494b6[_0xe883('0x31')]=_[_0xe883('0x32')](_0x545962,_0xe883('0x2b'));_0x3494b6['query']=_[_0xe883('0x33')](_0x1e0213[_0xe883('0x34')]);_0x3494b6[_0xe883('0x35')]=_['intersection'](_0x3494b6[_0xe883('0x31')],_0x3494b6['query']);_0x51421e['attributes']=_[_0xe883('0x36')](_0x3494b6[_0xe883('0x31')],qs[_0xe883('0x37')](_0x1e0213[_0xe883('0x34')]['fields']));_0x51421e[_0xe883('0x38')]=_0x51421e[_0xe883('0x38')][_0xe883('0x39')]?_0x51421e['attributes']:_0x3494b6[_0xe883('0x31')];if(!_0x1e0213[_0xe883('0x34')][_0xe883('0x3a')](_0xe883('0x3b'))){_0x51421e['limit']=qs['limit'](_0x1e0213[_0xe883('0x34')][_0xe883('0x21')]);_0x51421e[_0xe883('0x1f')]=qs['offset'](_0x1e0213[_0xe883('0x34')][_0xe883('0x1f')]);}_0x51421e['order']=qs[_0xe883('0x3c')](_0x1e0213[_0xe883('0x34')][_0xe883('0x3c')]);_0x51421e['where']=qs['filters'](_[_0xe883('0x3d')](_0x1e0213['query'],_0x3494b6[_0xe883('0x35')]),_0x545962);if(_0x1e0213['query'][_0xe883('0x3e')]){_0x51421e[_0xe883('0x3f')]=_[_0xe883('0x40')](_0x51421e['where'],{'$or':_[_0xe883('0x32')](_0x545962,function(_0x578a90){if(_0x578a90[_0xe883('0x41')]!==_0xe883('0x42')){var _0x5aa557={};_0x5aa557[_0x578a90[_0xe883('0x2b')]]={'$like':'%'+_0x1e0213[_0xe883('0x34')][_0xe883('0x3e')]+'%'};return _0x5aa557;}})});}_0x51421e=_[_0xe883('0x40')]({},_0x51421e,_0x1e0213[_0xe883('0x43')]);var _0x4ebc4b={'where':_0x51421e[_0xe883('0x3f')]};return db[_0xe883('0x2d')][_0xe883('0x22')](_0x4ebc4b)['then'](function(_0x5c7837){_0x408d7e['count']=_0x5c7837;if(_0x1e0213[_0xe883('0x34')][_0xe883('0x44')]){_0x51421e[_0xe883('0x45')]=[{'all':!![]}];}return db[_0xe883('0x2d')][_0xe883('0x46')](_0x51421e);})[_0xe883('0x28')](function(_0x5aa846){_0x408d7e['rows']=_0x5aa846;return _0x408d7e;})[_0xe883('0x28')](respondWithFilteredResult(_0xdbd4d6,_0x51421e))[_0xe883('0x47')](handleError(_0xdbd4d6,null));};exports['show']=function(_0x12c278,_0x3a23a7){var _0x164e6a={'raw':!![],'where':{'id':_0x12c278['params']['id']}},_0x3c47dc={};_0x3c47dc[_0xe883('0x31')]=_[_0xe883('0x33')](db[_0xe883('0x2d')][_0xe883('0x2e')]);_0x3c47dc['query']=_[_0xe883('0x33')](_0x12c278[_0xe883('0x34')]);_0x3c47dc['filters']=_[_0xe883('0x36')](_0x3c47dc['model'],_0x3c47dc[_0xe883('0x34')]);_0x164e6a['attributes']=_['intersection'](_0x3c47dc[_0xe883('0x31')],qs['fields'](_0x12c278[_0xe883('0x34')][_0xe883('0x37')]));_0x164e6a[_0xe883('0x38')]=_0x164e6a[_0xe883('0x38')][_0xe883('0x39')]?_0x164e6a['attributes']:_0x3c47dc['model'];if(_0x12c278['query']['includeAll']){_0x164e6a[_0xe883('0x45')]=[{'all':!![]}];}_0x164e6a=_[_0xe883('0x40')]({},_0x164e6a,_0x12c278[_0xe883('0x43')]);return db[_0xe883('0x2d')]['find'](_0x164e6a)['then'](handleEntityNotFound(_0x3a23a7,null))[_0xe883('0x28')](respondWithResult(_0x3a23a7,null))['catch'](handleError(_0x3a23a7,null));};exports[_0xe883('0x48')]=function(_0x212167,_0x1177ad){return db[_0xe883('0x2d')][_0xe883('0x48')](_0x212167[_0xe883('0x49')],{})[_0xe883('0x28')](respondWithResult(_0x1177ad,0xc9))[_0xe883('0x47')](handleError(_0x1177ad,null));};exports[_0xe883('0x27')]=function(_0x2d31ad,_0x296f33){if(_0x2d31ad[_0xe883('0x49')]['id']){delete _0x2d31ad[_0xe883('0x49')]['id'];}return db[_0xe883('0x2d')][_0xe883('0x4a')]({'where':{'id':_0x2d31ad[_0xe883('0x4b')]['id']}})[_0xe883('0x28')](handleEntityNotFound(_0x296f33,null))[_0xe883('0x28')](saveUpdates(_0x2d31ad[_0xe883('0x49')],null))[_0xe883('0x28')](respondWithResult(_0x296f33,null))[_0xe883('0x47')](handleError(_0x296f33,null));};exports[_0xe883('0x4c')]=function(_0x35f141,_0x4fceb5){return db[_0xe883('0x2d')][_0xe883('0x4a')]({'where':{'id':_0x35f141[_0xe883('0x4b')]['id']}})[_0xe883('0x28')](handleEntityNotFound(_0x4fceb5,null))['then'](removeEntity(_0x4fceb5,null))['catch'](handleError(_0x4fceb5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe84e=['path','rimraf','../../config/environment','./intZendeskField.attributes','ZendeskField','zendesk_unique_index','FieldId','lodash','util','../../config/logger','api','bluebird','request-promise'];(function(_0x5de43f,_0x5bb0d1){var _0x1d7f51=function(_0x1e0d3e){while(--_0x1e0d3e){_0x5de43f['push'](_0x5de43f['shift']());}};_0x1d7f51(++_0x5bb0d1);}(_0xe84e,0x7c));var _0xee84=function(_0x68c4d9,_0x419b3c){_0x68c4d9=_0x68c4d9-0x0;var _0x62da93=_0xe84e[_0x68c4d9];return _0x62da93;};'use strict';var _=require(_0xee84('0x0'));var util=require(_0xee84('0x1'));var logger=require(_0xee84('0x2'))(_0xee84('0x3'));var moment=require('moment');var BPromise=require(_0xee84('0x4'));var rp=require(_0xee84('0x5'));var fs=require('fs');var path=require(_0xee84('0x6'));var rimraf=require(_0xee84('0x7'));var config=require(_0xee84('0x8'));var attributes=require(_0xee84('0x9'));module['exports']=function(_0x4f731e,_0x421c8d){return _0x4f731e['define'](_0xee84('0xa'),attributes,{'tableName':'int_zendesk_fields','paranoid':![],'indexes':[{'name':_0xee84('0xb'),'fields':['idField',_0xee84('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x1c47=['util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','exports','define','ZendeskField','int_zendesk_fields','zendesk_unique_index','idField','FieldId','lodash'];(function(_0x2567f0,_0x4fa60){var _0x14852a=function(_0x55b95f){while(--_0x55b95f){_0x2567f0['push'](_0x2567f0['shift']());}};_0x14852a(++_0x4fa60);}(_0x1c47,0x14f));var _0x71c4=function(_0x35da42,_0x5c2610){_0x35da42=_0x35da42-0x0;var _0x370035=_0x1c47[_0x35da42];return _0x370035;};'use strict';var _=require(_0x71c4('0x0'));var util=require(_0x71c4('0x1'));var logger=require(_0x71c4('0x2'))(_0x71c4('0x3'));var moment=require(_0x71c4('0x4'));var BPromise=require(_0x71c4('0x5'));var rp=require(_0x71c4('0x6'));var fs=require('fs');var path=require(_0x71c4('0x7'));var rimraf=require('rimraf');var config=require(_0x71c4('0x8'));var attributes=require('./intZendeskField.attributes');module[_0x71c4('0x9')]=function(_0x4a6f4c,_0x25e08d){return _0x4a6f4c[_0x71c4('0xa')](_0x71c4('0xb'),attributes,{'tableName':_0x71c4('0xc'),'paranoid':![],'indexes':[{'name':_0x71c4('0xd'),'fields':[_0x71c4('0xe'),_0x71c4('0xf')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55f7=['http','request','then','ZendeskField,\x20%s,\x20%s','debug','ZendeskField,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','info','catch','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client'];(function(_0x2c41be,_0x4ca1a4){var _0x340a06=function(_0x1b084f){while(--_0x1b084f){_0x2c41be['push'](_0x2c41be['shift']());}};_0x340a06(++_0x4ca1a4);}(_0x55f7,0x12a));var _0x755f=function(_0x19b426,_0x3be1e4){_0x19b426=_0x19b426-0x0;var _0x210113=_0x55f7[_0x19b426];return _0x210113;};'use strict';var _=require('lodash');var util=require(_0x755f('0x0'));var moment=require(_0x755f('0x1'));var BPromise=require(_0x755f('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x755f('0x3'));var db=require(_0x755f('0x4'))['db'];var utils=require(_0x755f('0x5'));var logger=require('../../config/logger')(_0x755f('0x6'));var config=require(_0x755f('0x7'));var jayson=require(_0x755f('0x8'));var client=jayson[_0x755f('0x9')][_0x755f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x385bee,_0x1b8691,_0x852a6e){return new BPromise(function(_0x12af7b,_0x86923e){return client[_0x755f('0xb')](_0x385bee,_0x852a6e)[_0x755f('0xc')](function(_0x19e06b){logger['info'](_0x755f('0xd'),_0x1b8691,'request\x20sent');logger[_0x755f('0xe')](_0x755f('0xf'),_0x1b8691,_0x755f('0x10'),JSON[_0x755f('0x11')](_0x19e06b));if(_0x19e06b[_0x755f('0x12')]){if(_0x19e06b[_0x755f('0x12')]['code']===0x1f4){logger[_0x755f('0x12')](_0x755f('0xd'),_0x1b8691,_0x19e06b[_0x755f('0x12')][_0x755f('0x13')]);return _0x86923e(_0x19e06b[_0x755f('0x12')]['message']);}logger[_0x755f('0x12')](_0x755f('0xd'),_0x1b8691,_0x19e06b[_0x755f('0x12')][_0x755f('0x13')]);return _0x12af7b(_0x19e06b['error']['message']);}else{logger[_0x755f('0x14')](_0x755f('0xd'),_0x1b8691,_0x755f('0x10'));_0x12af7b(_0x19e06b['result'][_0x755f('0x13')]);}})[_0x755f('0x15')](function(_0xec3039){logger[_0x755f('0x12')]('ZendeskField,\x20%s,\x20%s',_0x1b8691,_0xec3039);_0x86923e(_0xec3039);});});}
\ No newline at end of file
+var _0x8b5e=['then','info','request\x20sent','ZendeskField,\x20%s,\x20%s,\x20%s','stringify','error','ZendeskField,\x20%s,\x20%s','message','lodash','moment','randomstring','../../config/utils','rpc','jayson/promise','client','http'];(function(_0x1bb8e8,_0x2fc77f){var _0x36bd13=function(_0x9224ef){while(--_0x9224ef){_0x1bb8e8['push'](_0x1bb8e8['shift']());}};_0x36bd13(++_0x2fc77f);}(_0x8b5e,0x168));var _0xe8b5=function(_0x5bb320,_0x29f81d){_0x5bb320=_0x5bb320-0x0;var _0x11e715=_0x8b5e[_0x5bb320];return _0x11e715;};'use strict';var _=require(_0xe8b5('0x0'));var util=require('util');var moment=require(_0xe8b5('0x1'));var BPromise=require('bluebird');var rs=require(_0xe8b5('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xe8b5('0x3'));var logger=require('../../config/logger')(_0xe8b5('0x4'));var config=require('../../config/environment');var jayson=require(_0xe8b5('0x5'));var client=jayson[_0xe8b5('0x6')][_0xe8b5('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x5d1269,_0x4de5a6,_0x55c74b){return new BPromise(function(_0x172e92,_0x594c74){return client['request'](_0x5d1269,_0x55c74b)[_0xe8b5('0x8')](function(_0x2ae1e6){logger[_0xe8b5('0x9')]('ZendeskField,\x20%s,\x20%s',_0x4de5a6,_0xe8b5('0xa'));logger['debug'](_0xe8b5('0xb'),_0x4de5a6,_0xe8b5('0xa'),JSON[_0xe8b5('0xc')](_0x2ae1e6));if(_0x2ae1e6[_0xe8b5('0xd')]){if(_0x2ae1e6[_0xe8b5('0xd')]['code']===0x1f4){logger[_0xe8b5('0xd')](_0xe8b5('0xe'),_0x4de5a6,_0x2ae1e6[_0xe8b5('0xd')][_0xe8b5('0xf')]);return _0x594c74(_0x2ae1e6[_0xe8b5('0xd')][_0xe8b5('0xf')]);}logger[_0xe8b5('0xd')](_0xe8b5('0xe'),_0x4de5a6,_0x2ae1e6['error'][_0xe8b5('0xf')]);return _0x172e92(_0x2ae1e6[_0xe8b5('0xd')][_0xe8b5('0xf')]);}else{logger[_0xe8b5('0x9')](_0xe8b5('0xe'),_0x4de5a6,'request\x20sent');_0x172e92(_0x2ae1e6['result']['message']);}})['catch'](function(_0x270b79){logger[_0xe8b5('0xd')](_0xe8b5('0xe'),_0x4de5a6,_0x270b79);_0x594c74(_0x270b79);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x48ce=['./intZohoAccount.controller','get','index','/:id','/:id/configurations','isAuthenticated','getConfigurations','getFields','post','create','update','destroy','exports','util','path','express','../../components/auth/service','../../components/interaction/service'];(function(_0x30ae37,_0x1c28b6){var _0x4c2a80=function(_0x1d6e58){while(--_0x1d6e58){_0x30ae37['push'](_0x30ae37['shift']());}};_0x4c2a80(++_0x1c28b6);}(_0x48ce,0x13f));var _0xe48c=function(_0x64320a,_0x27f41b){_0x64320a=_0x64320a-0x0;var _0x546614=_0x48ce[_0x64320a];return _0x546614;};'use strict';var multer=require('multer');var util=require(_0xe48c('0x0'));var path=require(_0xe48c('0x1'));var timeout=require('connect-timeout');var express=require(_0xe48c('0x2'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xe48c('0x3'));var interaction=require(_0xe48c('0x4'));var config=require('../../config/environment');var controller=require(_0xe48c('0x5'));router[_0xe48c('0x6')]('/',auth['isAuthenticated'](),controller[_0xe48c('0x7')]);router[_0xe48c('0x6')](_0xe48c('0x8'),auth['isAuthenticated'](),controller['show']);router['get'](_0xe48c('0x9'),auth[_0xe48c('0xa')](),controller[_0xe48c('0xb')]);router['get']('/:id/fields',auth[_0xe48c('0xa')](),controller[_0xe48c('0xc')]);router[_0xe48c('0xd')]('/',auth['isAuthenticated'](),controller[_0xe48c('0xe')]);router[_0xe48c('0xd')](_0xe48c('0x9'),auth[_0xe48c('0xa')](),controller['addConfiguration']);router['put'](_0xe48c('0x8'),auth[_0xe48c('0xa')](),controller[_0xe48c('0xf')]);router['delete'](_0xe48c('0x8'),auth['isAuthenticated'](),controller[_0xe48c('0x10')]);module[_0xe48c('0x11')]=router;
\ No newline at end of file
+var _0x1fed=['express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','/:id/configurations','getConfigurations','getFields','post','create','addConfiguration','update','delete'];(function(_0x2969be,_0x563237){var _0x1b879d=function(_0x3b7fce){while(--_0x3b7fce){_0x2969be['push'](_0x2969be['shift']());}};_0x1b879d(++_0x563237);}(_0x1fed,0x1b0));var _0xd1fe=function(_0x31061a,_0x5ab647){_0x31061a=_0x31061a-0x0;var _0x48d92a=_0x1fed[_0x31061a];return _0x48d92a;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xd1fe('0x0'));var router=express['Router']();var fs_extra=require(_0xd1fe('0x1'));var auth=require(_0xd1fe('0x2'));var interaction=require(_0xd1fe('0x3'));var config=require(_0xd1fe('0x4'));var controller=require('./intZohoAccount.controller');router[_0xd1fe('0x5')]('/',auth[_0xd1fe('0x6')](),controller['index']);router[_0xd1fe('0x5')](_0xd1fe('0x7'),auth[_0xd1fe('0x6')](),controller['show']);router[_0xd1fe('0x5')](_0xd1fe('0x8'),auth[_0xd1fe('0x6')](),controller[_0xd1fe('0x9')]);router[_0xd1fe('0x5')]('/:id/fields',auth[_0xd1fe('0x6')](),controller[_0xd1fe('0xa')]);router[_0xd1fe('0xb')]('/',auth[_0xd1fe('0x6')](),controller[_0xd1fe('0xc')]);router[_0xd1fe('0xb')](_0xd1fe('0x8'),auth[_0xd1fe('0x6')](),controller[_0xd1fe('0xd')]);router['put'](_0xd1fe('0x7'),auth[_0xd1fe('0x6')](),controller[_0xd1fe('0xe')]);router[_0xd1fe('0xf')]('/:id',auth[_0xd1fe('0x6')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x702d=['sequelize','exports','STRING'];(function(_0xca3ac,_0x908cbc){var _0x5ebdb8=function(_0x6544e0){while(--_0x6544e0){_0xca3ac['push'](_0xca3ac['shift']());}};_0x5ebdb8(++_0x908cbc);}(_0x702d,0x147));var _0xd702=function(_0x583c73,_0x3e59aa){_0x583c73=_0x583c73-0x0;var _0x4fa68d=_0x702d[_0x583c73];return _0x4fa68d;};'use strict';var Sequelize=require(_0xd702('0x0'));module[_0xd702('0x1')]={'name':{'type':Sequelize[_0xd702('0x2')]},'description':{'type':Sequelize[_0xd702('0x2')]},'host':{'type':Sequelize[_0xd702('0x2')]},'zone':{'type':Sequelize['STRING']},'clientId':{'type':Sequelize[_0xd702('0x2')]},'clientSecret':{'type':Sequelize[_0xd702('0x2')]},'serverUrl':{'type':Sequelize[_0xd702('0x2')],'allowNull':![]},'code':{'type':Sequelize[_0xd702('0x2')]},'refreshToken':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x9a19=['sequelize','exports','STRING'];(function(_0x111e94,_0x31c837){var _0x3de107=function(_0x65bd1e){while(--_0x65bd1e){_0x111e94['push'](_0x111e94['shift']());}};_0x3de107(++_0x31c837);}(_0x9a19,0x114));var _0x99a1=function(_0x1992f1,_0x5c61f0){_0x1992f1=_0x1992f1-0x0;var _0x413dfe=_0x9a19[_0x1992f1];return _0x413dfe;};'use strict';var Sequelize=require(_0x99a1('0x0'));module[_0x99a1('0x1')]={'name':{'type':Sequelize[_0x99a1('0x2')]},'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize[_0x99a1('0x2')]},'zone':{'type':Sequelize[_0x99a1('0x2')]},'clientId':{'type':Sequelize[_0x99a1('0x2')]},'clientSecret':{'type':Sequelize[_0x99a1('0x2')]},'serverUrl':{'type':Sequelize[_0x99a1('0x2')],'allowNull':![]},'code':{'type':Sequelize[_0x99a1('0x2')]},'refreshToken':{'type':Sequelize[_0x99a1('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x77ce=['set','Content-Range','apply','save','update','destroy','then','end','sendStatus','error','stack','name','send','index','map','ZohoAccount','rawAttributes','type','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','length','find','create','body','getConfigurations','ZohoConfiguration','addConfiguration','findOne','Subjects','channel','Descriptions','getDescriptions','ZohoField','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','clientId','clientSecret','refresh_token','access_token','getFields','zone','code','refreshToken','host','zoho.eu','com','serverUrl','slice','substring','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','format','https://www.zohoapis.%s/crm/v2/settings/fields','Calls','Zoho-oauthtoken\x20','response','message','Owner','Subject','Description','WhoId','Call_Duration','Call_Start_Time','Call_Type','includes','api_name','system_mandatory','custom_field','data_type','picklist','pick_list_values','test','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','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','../../components/integrations/configuration','json','offset','undefined','limit','count','status'];(function(_0x27aaae,_0x163425){var _0x34414d=function(_0x5a3981){while(--_0x5a3981){_0x27aaae['push'](_0x27aaae['shift']());}};_0x34414d(++_0x163425);}(_0x77ce,0x1f2));var _0xe77c=function(_0x467fec,_0x2a8cbd){_0x467fec=_0x467fec-0x0;var _0x1e43b4=_0x77ce[_0x467fec];return _0x1e43b4;};'use strict';var emlformat=require(_0xe77c('0x0'));var rimraf=require(_0xe77c('0x1'));var zipdir=require(_0xe77c('0x2'));var jsonpatch=require(_0xe77c('0x3'));var rp=require(_0xe77c('0x4'));var moment=require(_0xe77c('0x5'));var BPromise=require(_0xe77c('0x6'));var Mustache=require(_0xe77c('0x7'));var util=require(_0xe77c('0x8'));var path=require('path');var sox=require(_0xe77c('0x9'));var csv=require(_0xe77c('0xa'));var ejs=require(_0xe77c('0xb'));var fs=require('fs');var fs_extra=require(_0xe77c('0xc'));var _=require(_0xe77c('0xd'));var squel=require('squel');var crypto=require(_0xe77c('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xe77c('0xf'));var toCsv=require(_0xe77c('0xa'));var querystring=require(_0xe77c('0x10'));var Papa=require(_0xe77c('0x11'));var Redis=require(_0xe77c('0x12'));var authService=require(_0xe77c('0x13'));var qs=require(_0xe77c('0x14'));var as=require(_0xe77c('0x15'));var hardwareService=require(_0xe77c('0x16'));var logger=require(_0xe77c('0x17'))(_0xe77c('0x18'));var utils=require(_0xe77c('0x19'));var config=require(_0xe77c('0x1a'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0xe77c('0x1b'));function respondWithStatusCode(_0x40550e,_0x400c6e){_0x400c6e=_0x400c6e||0xcc;return function(_0x3f33e3){if(_0x3f33e3){return _0x40550e['sendStatus'](_0x400c6e);}return _0x40550e['status'](_0x400c6e)['end']();};}function respondWithResult(_0x23f45c,_0x2ef8c1){_0x2ef8c1=_0x2ef8c1||0xc8;return function(_0x3913ec){if(_0x3913ec){return _0x23f45c['status'](_0x2ef8c1)[_0xe77c('0x1c')](_0x3913ec);}};}function respondWithFilteredResult(_0x14254e,_0x4fd816){return function(_0x557475){if(_0x557475){var _0x14581f=typeof _0x4fd816[_0xe77c('0x1d')]===_0xe77c('0x1e')&&typeof _0x4fd816[_0xe77c('0x1f')]===_0xe77c('0x1e');var _0x5e1948=_0x557475[_0xe77c('0x20')];var _0x1363d7=_0x14581f?0x0:_0x4fd816[_0xe77c('0x1d')];var _0x3e6725=_0x14581f?_0x557475['count']:_0x4fd816[_0xe77c('0x1d')]+_0x4fd816[_0xe77c('0x1f')];var _0x2f12b0;if(_0x3e6725>=_0x5e1948){_0x3e6725=_0x5e1948;_0x2f12b0=0xc8;}else{_0x2f12b0=0xce;}_0x14254e[_0xe77c('0x21')](_0x2f12b0);return _0x14254e[_0xe77c('0x22')](_0xe77c('0x23'),_0x1363d7+'-'+_0x3e6725+'/'+_0x5e1948)[_0xe77c('0x1c')](_0x557475);}return null;};}function patchUpdates(_0x22d3f9){return function(_0x2afb45){try{jsonpatch[_0xe77c('0x24')](_0x2afb45,_0x22d3f9,!![]);}catch(_0x50fcc1){return BPromise['reject'](_0x50fcc1);}return _0x2afb45[_0xe77c('0x25')]();};}function saveUpdates(_0x4787e9,_0x487e6e){return function(_0x41e516){if(_0x41e516){return _0x41e516[_0xe77c('0x26')](_0x4787e9)['then'](function(_0x4b210f){return _0x4b210f;});}return null;};}function removeEntity(_0x398fd0,_0x6a338b){return function(_0x25dd8d){if(_0x25dd8d){return _0x25dd8d[_0xe77c('0x27')]()[_0xe77c('0x28')](function(){_0x398fd0['status'](0xcc)[_0xe77c('0x29')]();});}};}function handleEntityNotFound(_0x3f44cf,_0x3435a7){return function(_0x1a3480){if(!_0x1a3480){_0x3f44cf[_0xe77c('0x2a')](0x194);}return _0x1a3480;};}function handleError(_0x5600ea,_0xe5d35b){_0xe5d35b=_0xe5d35b||0x1f4;return function(_0x5339a0){logger[_0xe77c('0x2b')](_0x5339a0[_0xe77c('0x2c')]);if(_0x5339a0['name']){delete _0x5339a0[_0xe77c('0x2d')];}_0x5600ea[_0xe77c('0x21')](_0xe5d35b)[_0xe77c('0x2e')](_0x5339a0);};}exports[_0xe77c('0x2f')]=function(_0x1058ae,_0x2a4f73){var _0x53959f={},_0x15100b={},_0x25a312={'count':0x0,'rows':[]};var _0x203e9b=_[_0xe77c('0x30')](db[_0xe77c('0x31')][_0xe77c('0x32')],function(_0x4e8e2d){return{'name':_0x4e8e2d['fieldName'],'type':_0x4e8e2d[_0xe77c('0x33')]['key']};});_0x15100b[_0xe77c('0x34')]=_[_0xe77c('0x30')](_0x203e9b,_0xe77c('0x2d'));_0x15100b[_0xe77c('0x35')]=_['keys'](_0x1058ae['query']);_0x15100b[_0xe77c('0x36')]=_[_0xe77c('0x37')](_0x15100b[_0xe77c('0x34')],_0x15100b[_0xe77c('0x35')]);_0x53959f[_0xe77c('0x38')]=_[_0xe77c('0x37')](_0x15100b[_0xe77c('0x34')],qs[_0xe77c('0x39')](_0x1058ae[_0xe77c('0x35')][_0xe77c('0x39')]));_0x53959f[_0xe77c('0x38')]=_0x53959f[_0xe77c('0x38')]['length']?_0x53959f['attributes']:_0x15100b['model'];if(!_0x1058ae[_0xe77c('0x35')][_0xe77c('0x3a')](_0xe77c('0x3b'))){_0x53959f[_0xe77c('0x1f')]=qs[_0xe77c('0x1f')](_0x1058ae[_0xe77c('0x35')]['limit']);_0x53959f['offset']=qs[_0xe77c('0x1d')](_0x1058ae['query']['offset']);}_0x53959f[_0xe77c('0x3c')]=qs[_0xe77c('0x3d')](_0x1058ae[_0xe77c('0x35')]['sort']);_0x53959f[_0xe77c('0x3e')]=qs['filters'](_[_0xe77c('0x3f')](_0x1058ae[_0xe77c('0x35')],_0x15100b[_0xe77c('0x36')]),_0x203e9b);if(_0x1058ae['query'][_0xe77c('0x40')]){_0x53959f[_0xe77c('0x3e')]=_[_0xe77c('0x41')](_0x53959f['where'],{'$or':_['map'](_0x203e9b,function(_0x468eb8){if(_0x468eb8[_0xe77c('0x33')]!==_0xe77c('0x42')){var _0xaba654={};_0xaba654[_0x468eb8[_0xe77c('0x2d')]]={'$like':'%'+_0x1058ae[_0xe77c('0x35')][_0xe77c('0x40')]+'%'};return _0xaba654;}})});}_0x53959f=_[_0xe77c('0x41')]({},_0x53959f,_0x1058ae[_0xe77c('0x43')]);var _0x2325c8={'where':_0x53959f['where']};return db[_0xe77c('0x31')]['count'](_0x2325c8)[_0xe77c('0x28')](function(_0x30a3ed){_0x25a312[_0xe77c('0x20')]=_0x30a3ed;if(_0x1058ae[_0xe77c('0x35')][_0xe77c('0x44')]){_0x53959f[_0xe77c('0x45')]=[{'all':!![]}];}return db[_0xe77c('0x31')][_0xe77c('0x46')](_0x53959f);})[_0xe77c('0x28')](function(_0x31eb9d){_0x25a312[_0xe77c('0x47')]=_0x31eb9d;return _0x25a312;})[_0xe77c('0x28')](respondWithFilteredResult(_0x2a4f73,_0x53959f))[_0xe77c('0x48')](handleError(_0x2a4f73,null));};exports[_0xe77c('0x49')]=function(_0x881c2d,_0x4895e6){var _0x15a44e={'raw':![],'where':{'id':_0x881c2d[_0xe77c('0x4a')]['id']}},_0xdc2004={};_0xdc2004['model']=_[_0xe77c('0x4b')](db[_0xe77c('0x31')][_0xe77c('0x32')]);_0xdc2004[_0xe77c('0x35')]=_[_0xe77c('0x4b')](_0x881c2d[_0xe77c('0x35')]);_0xdc2004[_0xe77c('0x36')]=_[_0xe77c('0x37')](_0xdc2004[_0xe77c('0x34')],_0xdc2004[_0xe77c('0x35')]);_0x15a44e[_0xe77c('0x38')]=_[_0xe77c('0x37')](_0xdc2004[_0xe77c('0x34')],qs['fields'](_0x881c2d[_0xe77c('0x35')][_0xe77c('0x39')]));_0x15a44e[_0xe77c('0x38')]=_0x15a44e[_0xe77c('0x38')][_0xe77c('0x4c')]?_0x15a44e[_0xe77c('0x38')]:_0xdc2004[_0xe77c('0x34')];if(_0x881c2d[_0xe77c('0x35')][_0xe77c('0x44')]){_0x15a44e[_0xe77c('0x45')]=[{'all':!![]}];}_0x15a44e=_[_0xe77c('0x41')]({},_0x15a44e,_0x881c2d[_0xe77c('0x43')]);return db[_0xe77c('0x31')][_0xe77c('0x4d')](_0x15a44e)[_0xe77c('0x28')](handleEntityNotFound(_0x4895e6,null))[_0xe77c('0x28')](respondWithResult(_0x4895e6,null))[_0xe77c('0x48')](handleError(_0x4895e6,null));};exports[_0xe77c('0x4e')]=function(_0x1530a1,_0x24d52){return db[_0xe77c('0x31')]['create'](_0x1530a1[_0xe77c('0x4f')],{})[_0xe77c('0x28')](respondWithResult(_0x24d52,0xc9))['catch'](handleError(_0x24d52,null));};exports[_0xe77c('0x26')]=function(_0x11a693,_0x4b2b05){if(_0x11a693[_0xe77c('0x4f')]['id']){delete _0x11a693[_0xe77c('0x4f')]['id'];}return db[_0xe77c('0x31')][_0xe77c('0x4d')]({'where':{'id':_0x11a693['params']['id']}})['then'](handleEntityNotFound(_0x4b2b05,null))[_0xe77c('0x28')](saveUpdates(_0x11a693[_0xe77c('0x4f')],null))[_0xe77c('0x28')](respondWithResult(_0x4b2b05,null))['catch'](handleError(_0x4b2b05,null));};exports[_0xe77c('0x27')]=function(_0x52d16b,_0x4bc53b){return db[_0xe77c('0x31')]['find']({'where':{'id':_0x52d16b[_0xe77c('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4bc53b,null))[_0xe77c('0x28')](removeEntity(_0x4bc53b,null))[_0xe77c('0x48')](handleError(_0x4bc53b,null));};exports[_0xe77c('0x50')]=function(_0x153cd3,_0x17a262,_0x160448){var _0x1718fc={};var _0x633d2f={};var _0x18862c;var _0x3e2165;return db[_0xe77c('0x31')]['findOne']({'where':{'id':_0x153cd3['params']['id']}})[_0xe77c('0x28')](handleEntityNotFound(_0x17a262,null))[_0xe77c('0x28')](function(_0x47af29){if(_0x47af29){_0x18862c=_0x47af29;_0x633d2f[_0xe77c('0x34')]=_[_0xe77c('0x4b')](db[_0xe77c('0x51')][_0xe77c('0x32')]);_0x633d2f[_0xe77c('0x35')]=_[_0xe77c('0x4b')](_0x153cd3[_0xe77c('0x35')]);_0x633d2f[_0xe77c('0x36')]=_[_0xe77c('0x37')](_0x633d2f[_0xe77c('0x34')],_0x633d2f[_0xe77c('0x35')]);_0x1718fc[_0xe77c('0x38')]=_[_0xe77c('0x37')](_0x633d2f['model'],qs[_0xe77c('0x39')](_0x153cd3[_0xe77c('0x35')][_0xe77c('0x39')]));_0x1718fc['attributes']=_0x1718fc[_0xe77c('0x38')][_0xe77c('0x4c')]?_0x1718fc[_0xe77c('0x38')]:_0x633d2f['model'];_0x1718fc[_0xe77c('0x3c')]=qs[_0xe77c('0x3d')](_0x153cd3['query'][_0xe77c('0x3d')]);_0x1718fc[_0xe77c('0x3e')]=qs[_0xe77c('0x36')](_['pick'](_0x153cd3[_0xe77c('0x35')],_0x633d2f[_0xe77c('0x36')]));if(_0x153cd3[_0xe77c('0x35')][_0xe77c('0x40')]){_0x1718fc['where']=_[_0xe77c('0x41')](_0x1718fc[_0xe77c('0x3e')],{'$or':_[_0xe77c('0x30')](_0x1718fc[_0xe77c('0x38')],function(_0x4d6d65){var _0x5e1204={};_0x5e1204[_0x4d6d65]={'$like':'%'+_0x153cd3[_0xe77c('0x35')][_0xe77c('0x40')]+'%'};return _0x5e1204;})});}_0x1718fc=_[_0xe77c('0x41')]({},_0x1718fc,_0x153cd3[_0xe77c('0x43')]);return _0x18862c[_0xe77c('0x50')](_0x1718fc);}})[_0xe77c('0x28')](function(_0x5a04fa){if(_0x5a04fa){_0x3e2165=_0x5a04fa['length'];if(!_0x153cd3[_0xe77c('0x35')][_0xe77c('0x3a')](_0xe77c('0x3b'))){_0x1718fc[_0xe77c('0x1f')]=qs[_0xe77c('0x1f')](_0x153cd3[_0xe77c('0x35')]['limit']);_0x1718fc[_0xe77c('0x1d')]=qs['offset'](_0x153cd3[_0xe77c('0x35')][_0xe77c('0x1d')]);}return _0x18862c[_0xe77c('0x50')](_0x1718fc);}})[_0xe77c('0x28')](function(_0x4ec578){if(_0x4ec578){return _0x4ec578?{'count':_0x3e2165,'rows':_0x4ec578}:null;}})[_0xe77c('0x28')](respondWithResult(_0x17a262,null))[_0xe77c('0x48')](handleError(_0x17a262,null));};exports[_0xe77c('0x52')]=function(_0x465519,_0x21bd99,_0x4c59b0){if(_0x465519[_0xe77c('0x4f')]['id']){delete _0x465519[_0xe77c('0x4f')]['id'];}return db[_0xe77c('0x31')][_0xe77c('0x53')]({'where':{'id':_0x465519[_0xe77c('0x4a')]['id']}})[_0xe77c('0x28')](handleEntityNotFound(_0x21bd99,null))[_0xe77c('0x28')](function(_0x5696f8){if(_0x5696f8){_0x465519[_0xe77c('0x4f')]['AccountId']=_0x5696f8['id'];_0x465519[_0xe77c('0x4f')][_0xe77c('0x54')]=integrations['getSubjects'](_0x465519[_0xe77c('0x4f')][_0xe77c('0x55')],_0x465519[_0xe77c('0x4f')][_0xe77c('0x33')]);_0x465519['body'][_0xe77c('0x56')]=integrations[_0xe77c('0x57')](_0x465519['body']['channel'],_0x465519[_0xe77c('0x4f')]['type']);return db[_0xe77c('0x51')][_0xe77c('0x4e')](_0x465519[_0xe77c('0x4f')],{'include':[{'model':db[_0xe77c('0x58')],'as':_0xe77c('0x54')},{'model':db['ZohoField'],'as':_0xe77c('0x56')}]});}return null;})[_0xe77c('0x28')](respondWithResult(_0x21bd99,null))[_0xe77c('0x48')](handleError(_0x21bd99,null));};function getAccessToken(_0x1ec58a){return new Promise(function(_0xdd49a9,_0xe47b7f){var _0x35912e;switch(_0x1ec58a['zone']){case'US':_0x35912e=_0xe77c('0x59');break;case'AU':_0x35912e=_0xe77c('0x5a');break;case'EU':_0x35912e='https://accounts.zoho.eu';break;case'IN':_0x35912e='https://accounts.zoho.in';break;case'CN':_0x35912e=_0xe77c('0x5b');break;default:_0x35912e=_0xe77c('0x5c');break;}var _0x39a2c7={'method':_0xe77c('0x5d'),'uri':_0x35912e+_0xe77c('0x5e'),'qs':{'refresh_token':_0x1ec58a['refreshToken'],'client_id':_0x1ec58a[_0xe77c('0x5f')],'client_secret':_0x1ec58a[_0xe77c('0x60')],'grant_type':_0xe77c('0x61')},'json':!![]};return rp(_0x39a2c7)[_0xe77c('0x28')](function(_0x36ef4e){if(_0x36ef4e[_0xe77c('0x62')]){_0xdd49a9(_0x36ef4e[_0xe77c('0x62')]);}else{_0xe47b7f('Unable\x20to\x20retrieve\x20the\x20access\x20token');}})['catch'](function(_0x5f25c8){_0xe47b7f(_0x5f25c8);});});}exports[_0xe77c('0x63')]=function(_0x5adcb0,_0x5ad48e,_0x339baf){var _0x2ecbe9,_0x2eecba,_0x11829b,_0xd1adc5,_0x5e4aed;return db[_0xe77c('0x31')][_0xe77c('0x53')]({'where':{'id':_0x5adcb0[_0xe77c('0x4a')]['id']},'attributes':['id','host',_0xe77c('0x64'),_0xe77c('0x5f'),'clientSecret','serverUrl',_0xe77c('0x65'),_0xe77c('0x66')]})[_0xe77c('0x28')](handleEntityNotFound(_0x5ad48e,null))['then'](function(_0x16274f){_0x5e4aed=_0x16274f;_0x2ecbe9=_0x5e4aed[_0xe77c('0x67')];_0x2eecba=_0x2ecbe9===_0xe77c('0x68')?'eu':_0xe77c('0x69');_0x11829b=_0x5e4aed[_0xe77c('0x6a')];var _0x18edc6=_0x11829b[_0xe77c('0x6b')](-0x1);if(_0x18edc6==='/'||_0x18edc6==='\x5c'||_0x18edc6===':'){_0x11829b=_0x11829b[_0xe77c('0x6c')](0x0,_0x11829b['lastIndexOf'](_0x18edc6));}if(!_0x5e4aed[_0xe77c('0x66')]){throw new Error(_0xe77c('0x6d'));}return getAccessToken(_0x5e4aed);})[_0xe77c('0x28')](function(_0x1fab1e){if(_0x1fab1e){return rp({'method':'GET','uri':util[_0xe77c('0x6e')](_0xe77c('0x6f'),_0x2eecba),'qs':{'module':_0xe77c('0x70')},'headers':{'Authorization':_0xe77c('0x71')+_0x1fab1e},'json':!![]});}})[_0xe77c('0x28')](function(_0x347512){if(_0x347512){if(_0x347512[_0xe77c('0x72')]&&_0x347512[_0xe77c('0x72')][_0xe77c('0x2b')]){throw new Error(_0x347512['response'][_0xe77c('0x2b')][_0xe77c('0x73')]);}var _0x3b057f=[];var _0xd1f08b=[];var _0x5aa197=[_0xe77c('0x74'),_0xe77c('0x75'),_0xe77c('0x76'),_0xe77c('0x77'),_0xe77c('0x78'),'Call_Result',_0xe77c('0x79'),_0xe77c('0x7a')];_0xd1f08b=_['remove'](_0x347512[_0xe77c('0x39')],function(_0x91e062){return _0x5aa197[_0xe77c('0x7b')](_0x91e062[_0xe77c('0x7c')]);});for(var _0xef0b42=0x0;_0xef0b42<_0xd1f08b[_0xe77c('0x4c')];_0xef0b42++){if(_0xd1f08b[_0xef0b42][_0xe77c('0x7d')]===![]){_0x3b057f['push']({'id':_0xd1f08b[_0xef0b42]['id'],'name':_0xd1f08b[_0xef0b42]['display_label'],'custom':_0xd1f08b[_0xef0b42][_0xe77c('0x7e')],'options':_0xd1f08b[_0xef0b42][_0xe77c('0x7f')]===_0xe77c('0x80')&&_0xd1f08b[_0xef0b42][_0xe77c('0x81')]['length']>-0x1?_[_0xe77c('0x30')](_0xd1f08b[_0xef0b42][_0xe77c('0x81')],function(_0xeab598){return{'name':_0xeab598,'value':_0xeab598};}):[]});}}return{'count':_0x3b057f[_0xe77c('0x4c')],'rows':_0x3b057f};}else{return{'count':0x0,'rows':[]};}})[_0xe77c('0x28')](respondWithResult(_0x5ad48e,null))['catch'](function(_0x277cf1){var _0x334629=_0x5adcb0[_0xe77c('0x35')][_0xe77c('0x82')]?0x1f4:_0x277cf1['statusCode']||0x1f4;logger['error'](_0xe77c('0x83'),_0xe77c('0x63'),_0x334629,JSON[_0xe77c('0x84')](_0x277cf1));delete _0x277cf1[_0xe77c('0x2d')];if(_0x334629===0x191){_0x334629=0x190;}_0x5ad48e[_0xe77c('0x21')](_0x334629)[_0xe77c('0x2e')](_0x5adcb0[_0xe77c('0x35')][_0xe77c('0x82')]?{'message':'Wrong\x20credentials','statusCode':_0x277cf1['statusCode']}:_0x277cf1);});};
\ No newline at end of file
+var _0x7832=['https://www.zohoapis.%s/crm/v2/settings/fields','Calls','response','error','message','Subject','Description','Call_Duration','Call_Type','remove','includes','system_mandatory','push','display_label','custom_field','picklist','pick_list_values','statusCode','stringify','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','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','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','destroy','stack','name','send','index','map','ZohoAccount','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','pick','filter','where','merge','type','VIRTUAL','options','includeAll','findAll','rows','then','catch','show','length','include','find','create','body','update','params','findOne','ZohoConfiguration','nolimit','getConfigurations','AccountId','channel','Descriptions','getDescriptions','ZohoField','Subjects','zone','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','refreshToken','clientId','refresh_token','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','getFields','host','clientSecret','serverUrl','code','zoho.eu','com','slice','lastIndexOf','format'];(function(_0x2f5ac5,_0x1ee939){var _0x37c9a8=function(_0x15031f){while(--_0x15031f){_0x2f5ac5['push'](_0x2f5ac5['shift']());}};_0x37c9a8(++_0x1ee939);}(_0x7832,0x1a4));var _0x2783=function(_0x18604c,_0xe9c6af){_0x18604c=_0x18604c-0x0;var _0x59a923=_0x7832[_0x18604c];return _0x59a923;};'use strict';var emlformat=require(_0x2783('0x0'));var rimraf=require(_0x2783('0x1'));var zipdir=require(_0x2783('0x2'));var jsonpatch=require(_0x2783('0x3'));var rp=require(_0x2783('0x4'));var moment=require(_0x2783('0x5'));var BPromise=require(_0x2783('0x6'));var Mustache=require(_0x2783('0x7'));var util=require(_0x2783('0x8'));var path=require('path');var sox=require(_0x2783('0x9'));var csv=require(_0x2783('0xa'));var ejs=require(_0x2783('0xb'));var fs=require('fs');var fs_extra=require(_0x2783('0xc'));var _=require(_0x2783('0xd'));var squel=require(_0x2783('0xe'));var crypto=require(_0x2783('0xf'));var jsforce=require(_0x2783('0x10'));var deskjs=require(_0x2783('0x11'));var toCsv=require(_0x2783('0xa'));var querystring=require(_0x2783('0x12'));var Papa=require(_0x2783('0x13'));var Redis=require(_0x2783('0x14'));var authService=require(_0x2783('0x15'));var qs=require(_0x2783('0x16'));var as=require(_0x2783('0x17'));var hardwareService=require(_0x2783('0x18'));var logger=require('../../config/logger')(_0x2783('0x19'));var utils=require(_0x2783('0x1a'));var config=require('../../config/environment');var licenseUtil=require(_0x2783('0x1b'));var db=require(_0x2783('0x1c'))['db'];var integrations=require(_0x2783('0x1d'));function respondWithStatusCode(_0xb74cc8,_0xef31db){_0xef31db=_0xef31db||0xcc;return function(_0x4d39a3){if(_0x4d39a3){return _0xb74cc8[_0x2783('0x1e')](_0xef31db);}return _0xb74cc8[_0x2783('0x1f')](_0xef31db)[_0x2783('0x20')]();};}function respondWithResult(_0x381b53,_0x426bed){_0x426bed=_0x426bed||0xc8;return function(_0xd00439){if(_0xd00439){return _0x381b53[_0x2783('0x1f')](_0x426bed)[_0x2783('0x21')](_0xd00439);}};}function respondWithFilteredResult(_0x4133ed,_0x327175){return function(_0xbabbbe){if(_0xbabbbe){var _0x32537f=typeof _0x327175[_0x2783('0x22')]===_0x2783('0x23')&&typeof _0x327175[_0x2783('0x24')]==='undefined';var _0x322c3a=_0xbabbbe['count'];var _0x43fd41=_0x32537f?0x0:_0x327175[_0x2783('0x22')];var _0x1d090c=_0x32537f?_0xbabbbe[_0x2783('0x25')]:_0x327175[_0x2783('0x22')]+_0x327175[_0x2783('0x24')];var _0x300cb7;if(_0x1d090c>=_0x322c3a){_0x1d090c=_0x322c3a;_0x300cb7=0xc8;}else{_0x300cb7=0xce;}_0x4133ed['status'](_0x300cb7);return _0x4133ed[_0x2783('0x26')](_0x2783('0x27'),_0x43fd41+'-'+_0x1d090c+'/'+_0x322c3a)[_0x2783('0x21')](_0xbabbbe);}return null;};}function patchUpdates(_0x358515){return function(_0x2de8dc){try{jsonpatch[_0x2783('0x28')](_0x2de8dc,_0x358515,!![]);}catch(_0x445bde){return BPromise[_0x2783('0x29')](_0x445bde);}return _0x2de8dc['save']();};}function saveUpdates(_0x4d22c7,_0x5f506a){return function(_0x207215){if(_0x207215){return _0x207215['update'](_0x4d22c7)['then'](function(_0x33a2f4){return _0x33a2f4;});}return null;};}function removeEntity(_0x4fa939,_0x429ba8){return function(_0x485bc1){if(_0x485bc1){return _0x485bc1[_0x2783('0x2a')]()['then'](function(){_0x4fa939[_0x2783('0x1f')](0xcc)[_0x2783('0x20')]();});}};}function handleEntityNotFound(_0x304366,_0x5b2282){return function(_0x2355d2){if(!_0x2355d2){_0x304366[_0x2783('0x1e')](0x194);}return _0x2355d2;};}function handleError(_0x3dc01d,_0x5984c3){_0x5984c3=_0x5984c3||0x1f4;return function(_0x117f42){logger['error'](_0x117f42[_0x2783('0x2b')]);if(_0x117f42['name']){delete _0x117f42[_0x2783('0x2c')];}_0x3dc01d['status'](_0x5984c3)[_0x2783('0x2d')](_0x117f42);};}exports[_0x2783('0x2e')]=function(_0x16357b,_0x439256){var _0x600e87={},_0x1a8f78={},_0x4df7cf={'count':0x0,'rows':[]};var _0x596777=_[_0x2783('0x2f')](db[_0x2783('0x30')][_0x2783('0x31')],function(_0x5dcc54){return{'name':_0x5dcc54['fieldName'],'type':_0x5dcc54['type'][_0x2783('0x32')]};});_0x1a8f78[_0x2783('0x33')]=_[_0x2783('0x2f')](_0x596777,_0x2783('0x2c'));_0x1a8f78[_0x2783('0x34')]=_[_0x2783('0x35')](_0x16357b[_0x2783('0x34')]);_0x1a8f78[_0x2783('0x36')]=_[_0x2783('0x37')](_0x1a8f78[_0x2783('0x33')],_0x1a8f78[_0x2783('0x34')]);_0x600e87[_0x2783('0x38')]=_[_0x2783('0x37')](_0x1a8f78[_0x2783('0x33')],qs[_0x2783('0x39')](_0x16357b[_0x2783('0x34')][_0x2783('0x39')]));_0x600e87[_0x2783('0x38')]=_0x600e87[_0x2783('0x38')]['length']?_0x600e87[_0x2783('0x38')]:_0x1a8f78[_0x2783('0x33')];if(!_0x16357b['query'][_0x2783('0x3a')]('nolimit')){_0x600e87['limit']=qs[_0x2783('0x24')](_0x16357b['query'][_0x2783('0x24')]);_0x600e87[_0x2783('0x22')]=qs['offset'](_0x16357b[_0x2783('0x34')][_0x2783('0x22')]);}_0x600e87[_0x2783('0x3b')]=qs[_0x2783('0x3c')](_0x16357b[_0x2783('0x34')][_0x2783('0x3c')]);_0x600e87['where']=qs[_0x2783('0x36')](_[_0x2783('0x3d')](_0x16357b[_0x2783('0x34')],_0x1a8f78['filters']),_0x596777);if(_0x16357b['query'][_0x2783('0x3e')]){_0x600e87[_0x2783('0x3f')]=_[_0x2783('0x40')](_0x600e87[_0x2783('0x3f')],{'$or':_[_0x2783('0x2f')](_0x596777,function(_0xe8bedf){if(_0xe8bedf[_0x2783('0x41')]!==_0x2783('0x42')){var _0x22cb3a={};_0x22cb3a[_0xe8bedf[_0x2783('0x2c')]]={'$like':'%'+_0x16357b[_0x2783('0x34')][_0x2783('0x3e')]+'%'};return _0x22cb3a;}})});}_0x600e87=_['merge']({},_0x600e87,_0x16357b[_0x2783('0x43')]);var _0x277033={'where':_0x600e87[_0x2783('0x3f')]};return db['ZohoAccount'][_0x2783('0x25')](_0x277033)['then'](function(_0x1a63a7){_0x4df7cf['count']=_0x1a63a7;if(_0x16357b[_0x2783('0x34')][_0x2783('0x44')]){_0x600e87['include']=[{'all':!![]}];}return db[_0x2783('0x30')][_0x2783('0x45')](_0x600e87);})['then'](function(_0x437ebd){_0x4df7cf[_0x2783('0x46')]=_0x437ebd;return _0x4df7cf;})[_0x2783('0x47')](respondWithFilteredResult(_0x439256,_0x600e87))[_0x2783('0x48')](handleError(_0x439256,null));};exports[_0x2783('0x49')]=function(_0x33e647,_0x339f07){var _0xbaaf56={'raw':![],'where':{'id':_0x33e647['params']['id']}},_0x12d7d5={};_0x12d7d5[_0x2783('0x33')]=_[_0x2783('0x35')](db['ZohoAccount'][_0x2783('0x31')]);_0x12d7d5[_0x2783('0x34')]=_['keys'](_0x33e647[_0x2783('0x34')]);_0x12d7d5[_0x2783('0x36')]=_[_0x2783('0x37')](_0x12d7d5[_0x2783('0x33')],_0x12d7d5[_0x2783('0x34')]);_0xbaaf56['attributes']=_['intersection'](_0x12d7d5[_0x2783('0x33')],qs[_0x2783('0x39')](_0x33e647['query']['fields']));_0xbaaf56[_0x2783('0x38')]=_0xbaaf56[_0x2783('0x38')][_0x2783('0x4a')]?_0xbaaf56['attributes']:_0x12d7d5[_0x2783('0x33')];if(_0x33e647['query'][_0x2783('0x44')]){_0xbaaf56[_0x2783('0x4b')]=[{'all':!![]}];}_0xbaaf56=_['merge']({},_0xbaaf56,_0x33e647[_0x2783('0x43')]);return db['ZohoAccount'][_0x2783('0x4c')](_0xbaaf56)['then'](handleEntityNotFound(_0x339f07,null))[_0x2783('0x47')](respondWithResult(_0x339f07,null))['catch'](handleError(_0x339f07,null));};exports['create']=function(_0x1af069,_0x3ecfc2){return db[_0x2783('0x30')][_0x2783('0x4d')](_0x1af069[_0x2783('0x4e')],{})[_0x2783('0x47')](respondWithResult(_0x3ecfc2,0xc9))[_0x2783('0x48')](handleError(_0x3ecfc2,null));};exports[_0x2783('0x4f')]=function(_0x1e329c,_0x593f49){if(_0x1e329c[_0x2783('0x4e')]['id']){delete _0x1e329c[_0x2783('0x4e')]['id'];}return db[_0x2783('0x30')][_0x2783('0x4c')]({'where':{'id':_0x1e329c[_0x2783('0x50')]['id']}})[_0x2783('0x47')](handleEntityNotFound(_0x593f49,null))[_0x2783('0x47')](saveUpdates(_0x1e329c[_0x2783('0x4e')],null))[_0x2783('0x47')](respondWithResult(_0x593f49,null))['catch'](handleError(_0x593f49,null));};exports[_0x2783('0x2a')]=function(_0x189513,_0x2793ec){return db[_0x2783('0x30')][_0x2783('0x4c')]({'where':{'id':_0x189513[_0x2783('0x50')]['id']}})[_0x2783('0x47')](handleEntityNotFound(_0x2793ec,null))[_0x2783('0x47')](removeEntity(_0x2793ec,null))['catch'](handleError(_0x2793ec,null));};exports['getConfigurations']=function(_0x10d257,_0x278a76,_0x158322){var _0x3c1115={};var _0x554fe5={};var _0x3194c8;var _0x563ab3;return db['ZohoAccount'][_0x2783('0x51')]({'where':{'id':_0x10d257[_0x2783('0x50')]['id']}})['then'](handleEntityNotFound(_0x278a76,null))['then'](function(_0x2b0723){if(_0x2b0723){_0x3194c8=_0x2b0723;_0x554fe5[_0x2783('0x33')]=_['keys'](db[_0x2783('0x52')][_0x2783('0x31')]);_0x554fe5['query']=_[_0x2783('0x35')](_0x10d257[_0x2783('0x34')]);_0x554fe5[_0x2783('0x36')]=_['intersection'](_0x554fe5['model'],_0x554fe5[_0x2783('0x34')]);_0x3c1115['attributes']=_[_0x2783('0x37')](_0x554fe5[_0x2783('0x33')],qs['fields'](_0x10d257[_0x2783('0x34')][_0x2783('0x39')]));_0x3c1115[_0x2783('0x38')]=_0x3c1115['attributes'][_0x2783('0x4a')]?_0x3c1115['attributes']:_0x554fe5[_0x2783('0x33')];_0x3c1115[_0x2783('0x3b')]=qs[_0x2783('0x3c')](_0x10d257[_0x2783('0x34')]['sort']);_0x3c1115[_0x2783('0x3f')]=qs['filters'](_[_0x2783('0x3d')](_0x10d257[_0x2783('0x34')],_0x554fe5['filters']));if(_0x10d257[_0x2783('0x34')][_0x2783('0x3e')]){_0x3c1115[_0x2783('0x3f')]=_[_0x2783('0x40')](_0x3c1115[_0x2783('0x3f')],{'$or':_['map'](_0x3c1115[_0x2783('0x38')],function(_0x547a6c){var _0xf9e9d0={};_0xf9e9d0[_0x547a6c]={'$like':'%'+_0x10d257['query'][_0x2783('0x3e')]+'%'};return _0xf9e9d0;})});}_0x3c1115=_['merge']({},_0x3c1115,_0x10d257[_0x2783('0x43')]);return _0x3194c8['getConfigurations'](_0x3c1115);}})[_0x2783('0x47')](function(_0x42ed4f){if(_0x42ed4f){_0x563ab3=_0x42ed4f['length'];if(!_0x10d257['query'][_0x2783('0x3a')](_0x2783('0x53'))){_0x3c1115[_0x2783('0x24')]=qs[_0x2783('0x24')](_0x10d257[_0x2783('0x34')][_0x2783('0x24')]);_0x3c1115['offset']=qs[_0x2783('0x22')](_0x10d257['query'][_0x2783('0x22')]);}return _0x3194c8[_0x2783('0x54')](_0x3c1115);}})['then'](function(_0x15c1a4){if(_0x15c1a4){return _0x15c1a4?{'count':_0x563ab3,'rows':_0x15c1a4}:null;}})[_0x2783('0x47')](respondWithResult(_0x278a76,null))[_0x2783('0x48')](handleError(_0x278a76,null));};exports['addConfiguration']=function(_0x4aee09,_0x450f6a,_0x8bc78c){if(_0x4aee09[_0x2783('0x4e')]['id']){delete _0x4aee09[_0x2783('0x4e')]['id'];}return db[_0x2783('0x30')][_0x2783('0x51')]({'where':{'id':_0x4aee09[_0x2783('0x50')]['id']}})[_0x2783('0x47')](handleEntityNotFound(_0x450f6a,null))[_0x2783('0x47')](function(_0x241840){if(_0x241840){_0x4aee09[_0x2783('0x4e')][_0x2783('0x55')]=_0x241840['id'];_0x4aee09[_0x2783('0x4e')]['Subjects']=integrations['getSubjects'](_0x4aee09[_0x2783('0x4e')][_0x2783('0x56')],_0x4aee09[_0x2783('0x4e')][_0x2783('0x41')]);_0x4aee09[_0x2783('0x4e')][_0x2783('0x57')]=integrations[_0x2783('0x58')](_0x4aee09[_0x2783('0x4e')][_0x2783('0x56')],_0x4aee09[_0x2783('0x4e')][_0x2783('0x41')]);return db[_0x2783('0x52')]['create'](_0x4aee09['body'],{'include':[{'model':db[_0x2783('0x59')],'as':_0x2783('0x5a')},{'model':db[_0x2783('0x59')],'as':_0x2783('0x57')}]});}return null;})[_0x2783('0x47')](respondWithResult(_0x450f6a,null))[_0x2783('0x48')](handleError(_0x450f6a,null));};function getAccessToken(_0x4b4c23){return new Promise(function(_0x3f8fc4,_0x570780){var _0x2f6583;switch(_0x4b4c23[_0x2783('0x5b')]){case'US':_0x2f6583='https://accounts.zoho.com';break;case'AU':_0x2f6583=_0x2783('0x5c');break;case'EU':_0x2f6583=_0x2783('0x5d');break;case'IN':_0x2f6583=_0x2783('0x5e');break;case'CN':_0x2f6583=_0x2783('0x5f');break;default:_0x2f6583='https://accounts.zoho.eu';break;}var _0x219eba={'method':_0x2783('0x60'),'uri':_0x2f6583+'/oauth/v2/token','qs':{'refresh_token':_0x4b4c23[_0x2783('0x61')],'client_id':_0x4b4c23[_0x2783('0x62')],'client_secret':_0x4b4c23['clientSecret'],'grant_type':_0x2783('0x63')},'json':!![]};return rp(_0x219eba)['then'](function(_0x1ae832){if(_0x1ae832[_0x2783('0x64')]){_0x3f8fc4(_0x1ae832[_0x2783('0x64')]);}else{_0x570780(_0x2783('0x65'));}})['catch'](function(_0x1fefd1){_0x570780(_0x1fefd1);});});}exports[_0x2783('0x66')]=function(_0x3c70c2,_0x28c353,_0x31eb53){var _0x41760c,_0x5ab85b,_0xa27f5b,_0x5d1943,_0x3fd41b;return db[_0x2783('0x30')][_0x2783('0x51')]({'where':{'id':_0x3c70c2[_0x2783('0x50')]['id']},'attributes':['id',_0x2783('0x67'),'zone',_0x2783('0x62'),_0x2783('0x68'),_0x2783('0x69'),_0x2783('0x6a'),_0x2783('0x61')]})[_0x2783('0x47')](handleEntityNotFound(_0x28c353,null))['then'](function(_0x28e356){_0x3fd41b=_0x28e356;_0x41760c=_0x3fd41b[_0x2783('0x67')];_0x5ab85b=_0x41760c===_0x2783('0x6b')?'eu':_0x2783('0x6c');_0xa27f5b=_0x3fd41b['serverUrl'];var _0x3bd5c5=_0xa27f5b[_0x2783('0x6d')](-0x1);if(_0x3bd5c5==='/'||_0x3bd5c5==='\x5c'||_0x3bd5c5===':'){_0xa27f5b=_0xa27f5b['substring'](0x0,_0xa27f5b[_0x2783('0x6e')](_0x3bd5c5));}if(!_0x3fd41b[_0x2783('0x61')]){throw new Error('Refresh\x20Token\x20not\x20available\x20for\x20the\x20account');}return getAccessToken(_0x3fd41b);})[_0x2783('0x47')](function(_0x3a4c62){if(_0x3a4c62){return rp({'method':'GET','uri':util[_0x2783('0x6f')](_0x2783('0x70'),_0x5ab85b),'qs':{'module':_0x2783('0x71')},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x3a4c62},'json':!![]});}})['then'](function(_0xf80b7){if(_0xf80b7){if(_0xf80b7[_0x2783('0x72')]&&_0xf80b7[_0x2783('0x72')]['error']){throw new Error(_0xf80b7[_0x2783('0x72')][_0x2783('0x73')][_0x2783('0x74')]);}var _0x3f7cf3=[];var _0x3257e9=[];var _0x4af804=['Owner',_0x2783('0x75'),_0x2783('0x76'),'WhoId',_0x2783('0x77'),'Call_Result','Call_Start_Time',_0x2783('0x78')];_0x3257e9=_[_0x2783('0x79')](_0xf80b7[_0x2783('0x39')],function(_0x4c5b15){return _0x4af804[_0x2783('0x7a')](_0x4c5b15['api_name']);});for(var _0xe20d37=0x0;_0xe20d37<_0x3257e9[_0x2783('0x4a')];_0xe20d37++){if(_0x3257e9[_0xe20d37][_0x2783('0x7b')]===![]){_0x3f7cf3[_0x2783('0x7c')]({'id':_0x3257e9[_0xe20d37]['id'],'name':_0x3257e9[_0xe20d37][_0x2783('0x7d')],'custom':_0x3257e9[_0xe20d37][_0x2783('0x7e')],'options':_0x3257e9[_0xe20d37]['data_type']===_0x2783('0x7f')&&_0x3257e9[_0xe20d37][_0x2783('0x80')]['length']>-0x1?_['map'](_0x3257e9[_0xe20d37][_0x2783('0x80')],function(_0x1beeea){return{'name':_0x1beeea,'value':_0x1beeea};}):[]});}}return{'count':_0x3f7cf3[_0x2783('0x4a')],'rows':_0x3f7cf3};}else{return{'count':0x0,'rows':[]};}})[_0x2783('0x47')](respondWithResult(_0x28c353,null))[_0x2783('0x48')](function(_0xd48872){var _0x10e40b=_0x3c70c2[_0x2783('0x34')]['test']?0x1f4:_0xd48872[_0x2783('0x81')]||0x1f4;logger[_0x2783('0x73')]('getFields,\x20%s,\x20%s,\x20%s',_0x2783('0x66'),_0x10e40b,JSON[_0x2783('0x82')](_0xd48872));delete _0xd48872[_0x2783('0x2c')];if(_0x10e40b===0x191){_0x10e40b=0x190;}_0x28c353[_0x2783('0x1f')](_0x10e40b)['send'](_0x3c70c2[_0x2783('0x34')][_0x2783('0x83')]?{'message':_0x2783('0x84'),'statusCode':_0xd48872[_0x2783('0x81')]}:_0xd48872);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x896d=['/oauth/v2/token','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','define','ZohoAccount','changed','zone','serverUrl','clientId','clientSecret','code','slice','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','authorization_code','application/x-www-form-urlencoded','then','parse','refreshToken','refresh_token','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','catch','name','host','https://accounts.zoho.in','POST'];(function(_0x58fc53,_0x16803c){var _0x17add7=function(_0x38d014){while(--_0x38d014){_0x58fc53['push'](_0x58fc53['shift']());}};_0x17add7(++_0x16803c);}(_0x896d,0x103));var _0xd896=function(_0x42817d,_0x17482f){_0x42817d=_0x42817d-0x0;var _0x2edeb1=_0x896d[_0x42817d];return _0x2edeb1;};'use strict';var _=require(_0xd896('0x0'));var util=require(_0xd896('0x1'));var logger=require(_0xd896('0x2'))(_0xd896('0x3'));var moment=require('moment');var BPromise=require(_0xd896('0x4'));var rp=require(_0xd896('0x5'));var fs=require('fs');var path=require(_0xd896('0x6'));var rimraf=require(_0xd896('0x7'));var config=require(_0xd896('0x8'));var attributes=require(_0xd896('0x9'));var integrations=require(_0xd896('0xa'));module['exports']=function(_0x36aa78,_0x3da231){return _0x36aa78[_0xd896('0xb')](_0xd896('0xc'),attributes,{'tableName':'int_zoho_accounts','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x1ad146,_0x3cb174,_0x1144a5){if(_0x1ad146[_0xd896('0xd')](_0xd896('0xe'))||_0x1ad146[_0xd896('0xd')](_0xd896('0xf'))||_0x1ad146['changed'](_0xd896('0x10'))||_0x1ad146[_0xd896('0xd')](_0xd896('0x11'))||_0x1ad146['changed'](_0xd896('0x12'))||_0x1ad146[_0xd896('0xd')]('host')){var _0x2af729,_0x558773;_0x2af729=_0x1ad146[_0xd896('0xf')];var _0x524ee4=_0x2af729[_0xd896('0x13')](-0x1);if(_0x524ee4==='/'||_0x524ee4==='\x5c'||_0x524ee4===':'){_0x2af729=_0x2af729['substring'](0x0,_0x2af729[_0xd896('0x14')](_0x524ee4));}switch(_0x1ad146[_0xd896('0xe')]){case'US':_0x558773=_0xd896('0x15');break;case'AU':_0x558773=_0xd896('0x16');break;case'IN':_0x558773='https://accounts.zoho.in';break;case'CN':_0x558773=_0xd896('0x17');break;default:_0x558773=_0xd896('0x18');break;}var _0x283115={'method':'POST','uri':_0x558773+'/oauth/v2/token','form':{'grant_type':_0xd896('0x19'),'client_id':_0x1ad146[_0xd896('0x10')],'client_secret':_0x1ad146[_0xd896('0x11')],'redirect_uri':_0x1ad146[_0xd896('0xf')],'code':_0x1ad146[_0xd896('0x12')]},'headers':{'Content-Type':_0xd896('0x1a')}};return rp(_0x283115)[_0xd896('0x1b')](function(_0xa08a6c){var _0xea653e=JSON[_0xd896('0x1c')](_0xa08a6c);if(_0xea653e['refresh_token']){_0x1ad146[_0xd896('0x1d')]=_0xea653e[_0xd896('0x1e')];logger[_0xd896('0x1f')](util[_0xd896('0x20')](_0xd896('0x21'),_0x1ad146['name'],_0x1ad146['id']));}else{logger[_0xd896('0x22')](util[_0xd896('0x20')](_0xd896('0x23'),_0x1ad146['name'],_0x1ad146['id']),util[_0xd896('0x24')](_0xea653e,{'showHidden':![],'depth':null}));}return _0x1144a5(null,_0x3cb174);})[_0xd896('0x25')](function(_0x4025c3){logger['error'](util['format']('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x1ad146[_0xd896('0x26')],_0x1ad146['id']),util[_0xd896('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0x1144a5(_0x4025c3);});}else{return _0x1144a5(null,_0x3cb174);}},'beforeUpdate':function(_0x5f0f02,_0x11ad35,_0x9a9813){if(_0x5f0f02[_0xd896('0xd')]('zone')||_0x5f0f02[_0xd896('0xd')]('serverUrl')||_0x5f0f02[_0xd896('0xd')](_0xd896('0x10'))||_0x5f0f02[_0xd896('0xd')](_0xd896('0x11'))||_0x5f0f02[_0xd896('0xd')](_0xd896('0x12'))||_0x5f0f02['changed'](_0xd896('0x27'))){var _0x2d4cd1,_0x458c3d;_0x2d4cd1=_0x5f0f02[_0xd896('0xf')];var _0x56d992=_0x2d4cd1['slice'](-0x1);if(_0x56d992==='/'||_0x56d992==='\x5c'||_0x56d992===':'){_0x2d4cd1=_0x2d4cd1['substring'](0x0,_0x2d4cd1[_0xd896('0x14')](_0x56d992));}switch(_0x5f0f02['zone']){case'US':_0x458c3d=_0xd896('0x15');break;case'AU':_0x458c3d=_0xd896('0x16');break;case'IN':_0x458c3d=_0xd896('0x28');break;case'CN':_0x458c3d=_0xd896('0x17');break;default:_0x458c3d=_0xd896('0x18');break;}var _0x4c8246={'method':_0xd896('0x29'),'uri':_0x458c3d+_0xd896('0x2a'),'form':{'grant_type':_0xd896('0x19'),'client_id':_0x5f0f02[_0xd896('0x10')],'client_secret':_0x5f0f02[_0xd896('0x11')],'redirect_uri':_0x5f0f02[_0xd896('0xf')],'code':_0x5f0f02[_0xd896('0x12')]},'headers':{'Content-Type':_0xd896('0x1a')}};return rp(_0x4c8246)['then'](function(_0x1bd52a){var _0x3cc24b=JSON[_0xd896('0x1c')](_0x1bd52a);if(_0x3cc24b[_0xd896('0x1e')]){_0x5f0f02[_0xd896('0x1d')]=_0x3cc24b['refresh_token'];logger[_0xd896('0x1f')](util['format'](_0xd896('0x21'),_0x5f0f02['name'],_0x5f0f02['id']));}else{logger[_0xd896('0x22')](util[_0xd896('0x20')](_0xd896('0x23'),_0x5f0f02['name'],_0x5f0f02['id']),util[_0xd896('0x24')](_0x3cc24b,{'showHidden':![],'depth':null}));}return _0x9a9813(null,_0x11ad35);})['catch'](function(_0x2184b6){logger[_0xd896('0x22')](util[_0xd896('0x20')](_0xd896('0x23'),_0x5f0f02[_0xd896('0x26')],_0x5f0f02['id']),util[_0xd896('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0x9a9813(_0x2184b6);});}else{return _0x9a9813(null,_0x11ad35);}}}});};
\ No newline at end of file
+var _0x455d=['info','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','error','format','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name','inspect','catch','zone','clientSecret','slice','lastIndexOf','https://accounts.zoho.in','refreshToken','lodash','util','../../config/logger','api','moment','request-promise','rimraf','../../config/environment','../../components/integrations/configuration','define','ZohoAccount','int_zoho_accounts','changed','serverUrl','code','host','substring','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','authorization_code','clientId','application/x-www-form-urlencoded','refresh_token'];(function(_0x58a3a1,_0x59226b){var _0x53bf12=function(_0x32f179){while(--_0x32f179){_0x58a3a1['push'](_0x58a3a1['shift']());}};_0x53bf12(++_0x59226b);}(_0x455d,0xd6));var _0xd455=function(_0x4f0229,_0x2887f2){_0x4f0229=_0x4f0229-0x0;var _0x9975b7=_0x455d[_0x4f0229];return _0x9975b7;};'use strict';var _=require(_0xd455('0x0'));var util=require(_0xd455('0x1'));var logger=require(_0xd455('0x2'))(_0xd455('0x3'));var moment=require(_0xd455('0x4'));var BPromise=require('bluebird');var rp=require(_0xd455('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xd455('0x6'));var config=require(_0xd455('0x7'));var attributes=require('./intZohoAccount.attributes');var integrations=require(_0xd455('0x8'));module['exports']=function(_0x132fc5,_0x5ca64f){return _0x132fc5[_0xd455('0x9')](_0xd455('0xa'),attributes,{'tableName':_0xd455('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x2921d2,_0x43673c,_0x3cea5f){if(_0x2921d2['changed']('zone')||_0x2921d2[_0xd455('0xc')](_0xd455('0xd'))||_0x2921d2[_0xd455('0xc')]('clientId')||_0x2921d2[_0xd455('0xc')]('clientSecret')||_0x2921d2[_0xd455('0xc')](_0xd455('0xe'))||_0x2921d2[_0xd455('0xc')](_0xd455('0xf'))){var _0x1a5cac,_0x5c1303;_0x1a5cac=_0x2921d2[_0xd455('0xd')];var _0x43f810=_0x1a5cac['slice'](-0x1);if(_0x43f810==='/'||_0x43f810==='\x5c'||_0x43f810===':'){_0x1a5cac=_0x1a5cac[_0xd455('0x10')](0x0,_0x1a5cac['lastIndexOf'](_0x43f810));}switch(_0x2921d2['zone']){case'US':_0x5c1303='https://accounts.zoho.com';break;case'AU':_0x5c1303=_0xd455('0x11');break;case'IN':_0x5c1303='https://accounts.zoho.in';break;case'CN':_0x5c1303=_0xd455('0x12');break;default:_0x5c1303=_0xd455('0x13');break;}var _0x4d622f={'method':_0xd455('0x14'),'uri':_0x5c1303+_0xd455('0x15'),'form':{'grant_type':_0xd455('0x16'),'client_id':_0x2921d2[_0xd455('0x17')],'client_secret':_0x2921d2['clientSecret'],'redirect_uri':_0x2921d2[_0xd455('0xd')],'code':_0x2921d2[_0xd455('0xe')]},'headers':{'Content-Type':_0xd455('0x18')}};return rp(_0x4d622f)['then'](function(_0x35ab18){var _0x592b30=JSON['parse'](_0x35ab18);if(_0x592b30[_0xd455('0x19')]){_0x2921d2['refreshToken']=_0x592b30[_0xd455('0x19')];logger[_0xd455('0x1a')](util['format'](_0xd455('0x1b'),_0x2921d2['name'],_0x2921d2['id']));}else{logger[_0xd455('0x1c')](util[_0xd455('0x1d')](_0xd455('0x1e'),_0x2921d2[_0xd455('0x1f')],_0x2921d2['id']),util[_0xd455('0x20')](_0x592b30,{'showHidden':![],'depth':null}));}return _0x3cea5f(null,_0x43673c);})[_0xd455('0x21')](function(_0x13b515){logger['error'](util[_0xd455('0x1d')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x2921d2['name'],_0x2921d2['id']),util[_0xd455('0x20')](parsedResult,{'showHidden':![],'depth':null}));return _0x3cea5f(_0x13b515);});}else{return _0x3cea5f(null,_0x43673c);}},'beforeUpdate':function(_0x3c68d7,_0x39a12a,_0x34e01c){if(_0x3c68d7[_0xd455('0xc')](_0xd455('0x22'))||_0x3c68d7[_0xd455('0xc')](_0xd455('0xd'))||_0x3c68d7[_0xd455('0xc')](_0xd455('0x17'))||_0x3c68d7[_0xd455('0xc')](_0xd455('0x23'))||_0x3c68d7[_0xd455('0xc')]('code')||_0x3c68d7[_0xd455('0xc')](_0xd455('0xf'))){var _0x17d644,_0x50d882;_0x17d644=_0x3c68d7[_0xd455('0xd')];var _0x8cb3a=_0x17d644[_0xd455('0x24')](-0x1);if(_0x8cb3a==='/'||_0x8cb3a==='\x5c'||_0x8cb3a===':'){_0x17d644=_0x17d644[_0xd455('0x10')](0x0,_0x17d644[_0xd455('0x25')](_0x8cb3a));}switch(_0x3c68d7[_0xd455('0x22')]){case'US':_0x50d882='https://accounts.zoho.com';break;case'AU':_0x50d882=_0xd455('0x11');break;case'IN':_0x50d882=_0xd455('0x26');break;case'CN':_0x50d882=_0xd455('0x12');break;default:_0x50d882='https://accounts.zoho.eu';break;}var _0xdbf3ce={'method':_0xd455('0x14'),'uri':_0x50d882+_0xd455('0x15'),'form':{'grant_type':_0xd455('0x16'),'client_id':_0x3c68d7['clientId'],'client_secret':_0x3c68d7['clientSecret'],'redirect_uri':_0x3c68d7[_0xd455('0xd')],'code':_0x3c68d7[_0xd455('0xe')]},'headers':{'Content-Type':_0xd455('0x18')}};return rp(_0xdbf3ce)['then'](function(_0x2c2ed8){var _0x4f46d3=JSON['parse'](_0x2c2ed8);if(_0x4f46d3[_0xd455('0x19')]){_0x3c68d7[_0xd455('0x27')]=_0x4f46d3[_0xd455('0x19')];logger[_0xd455('0x1a')](util[_0xd455('0x1d')](_0xd455('0x1b'),_0x3c68d7['name'],_0x3c68d7['id']));}else{logger[_0xd455('0x1c')](util[_0xd455('0x1d')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x3c68d7[_0xd455('0x1f')],_0x3c68d7['id']),util[_0xd455('0x20')](_0x4f46d3,{'showHidden':![],'depth':null}));}return _0x34e01c(null,_0x39a12a);})[_0xd455('0x21')](function(_0x6c527e){logger[_0xd455('0x1c')](util['format'](_0xd455('0x1e'),_0x3c68d7[_0xd455('0x1f')],_0x3c68d7['id']),util[_0xd455('0x20')](parsedResult,{'showHidden':![],'depth':null}));return _0x34e01c(_0x6c527e);});}else{return _0x34e01c(null,_0x39a12a);}}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6829=['client','http','then','ZohoAccount,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','info','ZohoAccount','findAll','options','raw','attributes','limit','include','map','model','GetZohoAccount','catch','ShowZohoAccount','lodash','util','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x2e0d06,_0x5a9107){var _0x40bf90=function(_0x1ce2da){while(--_0x1ce2da){_0x2e0d06['push'](_0x2e0d06['shift']());}};_0x40bf90(++_0x5a9107);}(_0x6829,0x14c));var _0x9682=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x6829[_0x432682];return _0x463d05;};'use strict';var _=require(_0x9682('0x0'));var util=require(_0x9682('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9682('0x2'));var db=require(_0x9682('0x3'))['db'];var utils=require(_0x9682('0x4'));var logger=require(_0x9682('0x5'))(_0x9682('0x6'));var config=require(_0x9682('0x7'));var jayson=require(_0x9682('0x8'));var client=jayson[_0x9682('0x9')][_0x9682('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4cec91,_0x37ab0a,_0x1cca2f){return new BPromise(function(_0x576a39,_0x519138){return client['request'](_0x4cec91,_0x1cca2f)[_0x9682('0xb')](function(_0x1b27c2){logger['info'](_0x9682('0xc'),_0x37ab0a,'request\x20sent');logger[_0x9682('0xd')]('ZohoAccount,\x20%s,\x20%s,\x20%s',_0x37ab0a,_0x9682('0xe'),JSON[_0x9682('0xf')](_0x1b27c2));if(_0x1b27c2[_0x9682('0x10')]){if(_0x1b27c2['error']['code']===0x1f4){logger[_0x9682('0x10')](_0x9682('0xc'),_0x37ab0a,_0x1b27c2['error'][_0x9682('0x11')]);return _0x519138(_0x1b27c2['error'][_0x9682('0x11')]);}logger[_0x9682('0x10')](_0x9682('0xc'),_0x37ab0a,_0x1b27c2[_0x9682('0x10')][_0x9682('0x11')]);return _0x576a39(_0x1b27c2[_0x9682('0x10')][_0x9682('0x11')]);}else{logger[_0x9682('0x12')](_0x9682('0xc'),_0x37ab0a,_0x9682('0xe'));_0x576a39(_0x1b27c2['result'][_0x9682('0x11')]);}})['catch'](function(_0x23eef6){logger[_0x9682('0x10')](_0x9682('0xc'),_0x37ab0a,_0x23eef6);_0x519138(_0x23eef6);});});}exports['GetZohoAccount']=function(_0x1c73ee){var _0x4e0dfb=this;return new Promise(function(_0x107291,_0x51c1a8){return db[_0x9682('0x13')][_0x9682('0x14')]({'raw':_0x1c73ee[_0x9682('0x15')]?_0x1c73ee[_0x9682('0x15')][_0x9682('0x16')]===undefined?!![]:![]:!![],'where':_0x1c73ee['options']?_0x1c73ee['options']['where']||null:null,'attributes':_0x1c73ee[_0x9682('0x15')]?_0x1c73ee['options'][_0x9682('0x17')]||null:null,'limit':_0x1c73ee[_0x9682('0x15')]?_0x1c73ee['options'][_0x9682('0x18')]||null:null,'include':_0x1c73ee[_0x9682('0x15')]?_0x1c73ee[_0x9682('0x15')][_0x9682('0x19')]?_[_0x9682('0x1a')](_0x1c73ee[_0x9682('0x15')][_0x9682('0x19')],function(_0x40e927){return{'model':db[_0x40e927[_0x9682('0x1b')]],'as':_0x40e927['as'],'attributes':_0x40e927[_0x9682('0x17')],'include':_0x40e927['include']?_[_0x9682('0x1a')](_0x40e927[_0x9682('0x19')],function(_0x88419f){return{'model':db[_0x88419f[_0x9682('0x1b')]],'as':_0x88419f['as'],'attributes':_0x88419f[_0x9682('0x17')],'include':_0x88419f['include']?_[_0x9682('0x1a')](_0x88419f[_0x9682('0x19')],function(_0x44808c){return{'model':db[_0x44808c[_0x9682('0x1b')]],'as':_0x44808c['as'],'attributes':_0x44808c[_0x9682('0x17')]};}):[]};}):[]};}):[]:[]})[_0x9682('0xb')](function(_0x48e821){logger[_0x9682('0x12')](_0x9682('0x1c'),_0x1c73ee);logger[_0x9682('0xd')](_0x9682('0x1c'),_0x1c73ee,JSON[_0x9682('0xf')](_0x48e821));_0x107291(_0x48e821);})[_0x9682('0x1d')](function(_0x176624){logger[_0x9682('0x10')]('GetZohoAccount',_0x176624[_0x9682('0x11')],_0x1c73ee);_0x51c1a8(_0x4e0dfb['error'](0x1f4,_0x176624[_0x9682('0x11')]));});});};exports[_0x9682('0x1e')]=function(_0x598248){var _0x54c860=this;return new Promise(function(_0x4b4c5d,_0x5a2ad3){return db[_0x9682('0x13')]['find']({'raw':_0x598248[_0x9682('0x15')]?_0x598248[_0x9682('0x15')][_0x9682('0x16')]===undefined?!![]:![]:!![],'where':_0x598248[_0x9682('0x15')]?_0x598248['options']['where']||null:null,'attributes':_0x598248[_0x9682('0x15')]?_0x598248[_0x9682('0x15')][_0x9682('0x17')]||null:null,'include':_0x598248[_0x9682('0x15')]?_0x598248[_0x9682('0x15')]['include']?_['map'](_0x598248[_0x9682('0x15')][_0x9682('0x19')],function(_0x76f489){return{'model':db[_0x76f489[_0x9682('0x1b')]],'as':_0x76f489['as'],'attributes':_0x76f489[_0x9682('0x17')],'include':_0x76f489[_0x9682('0x19')]?_[_0x9682('0x1a')](_0x76f489['include'],function(_0x27c9dd){return{'model':db[_0x27c9dd[_0x9682('0x1b')]],'as':_0x27c9dd['as'],'attributes':_0x27c9dd[_0x9682('0x17')],'include':_0x27c9dd[_0x9682('0x19')]?_[_0x9682('0x1a')](_0x27c9dd['include'],function(_0x194bda){return{'model':db[_0x194bda['model']],'as':_0x194bda['as'],'attributes':_0x194bda[_0x9682('0x17')]};}):[]};}):[]};}):[]:[]})[_0x9682('0xb')](function(_0x43d782){logger[_0x9682('0x12')](_0x9682('0x1e'),_0x598248);logger[_0x9682('0xd')](_0x9682('0x1e'),_0x598248,JSON['stringify'](_0x43d782));_0x4b4c5d(_0x43d782);})[_0x9682('0x1d')](function(_0x555634){logger[_0x9682('0x10')]('ShowZohoAccount',_0x555634[_0x9682('0x11')],_0x598248);_0x5a2ad3(_0x54c860[_0x9682('0x10')](0x1f4,_0x555634[_0x9682('0x11')]));});});};
\ No newline at end of file
+var _0xb515=['request\x20sent','debug','ZohoAccount,\x20%s,\x20%s,\x20%s','stringify','error','ZohoAccount,\x20%s,\x20%s','message','result','catch','ZohoAccount','options','raw','where','attributes','limit','include','map','model','GetZohoAccount','ShowZohoAccount','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info'];(function(_0x564523,_0x5db1c8){var _0x404d2a=function(_0x346236){while(--_0x346236){_0x564523['push'](_0x564523['shift']());}};_0x404d2a(++_0x5db1c8);}(_0xb515,0x1b8));var _0x5b51=function(_0xe5b349,_0x5f06e4){_0xe5b349=_0xe5b349-0x0;var _0x26b0ad=_0xb515[_0xe5b349];return _0x26b0ad;};'use strict';var _=require(_0x5b51('0x0'));var util=require('util');var moment=require(_0x5b51('0x1'));var BPromise=require(_0x5b51('0x2'));var rs=require(_0x5b51('0x3'));var fs=require('fs');var Redis=require(_0x5b51('0x4'));var db=require(_0x5b51('0x5'))['db'];var utils=require(_0x5b51('0x6'));var logger=require(_0x5b51('0x7'))(_0x5b51('0x8'));var config=require('../../config/environment');var jayson=require(_0x5b51('0x9'));var client=jayson[_0x5b51('0xa')][_0x5b51('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x293d82,_0x396b3f,_0x2c6d86){return new BPromise(function(_0x1d5082,_0x226e9c){return client[_0x5b51('0xc')](_0x293d82,_0x2c6d86)[_0x5b51('0xd')](function(_0x1085e6){logger[_0x5b51('0xe')]('ZohoAccount,\x20%s,\x20%s',_0x396b3f,_0x5b51('0xf'));logger[_0x5b51('0x10')](_0x5b51('0x11'),_0x396b3f,_0x5b51('0xf'),JSON[_0x5b51('0x12')](_0x1085e6));if(_0x1085e6[_0x5b51('0x13')]){if(_0x1085e6['error']['code']===0x1f4){logger['error'](_0x5b51('0x14'),_0x396b3f,_0x1085e6[_0x5b51('0x13')][_0x5b51('0x15')]);return _0x226e9c(_0x1085e6[_0x5b51('0x13')]['message']);}logger[_0x5b51('0x13')](_0x5b51('0x14'),_0x396b3f,_0x1085e6[_0x5b51('0x13')][_0x5b51('0x15')]);return _0x1d5082(_0x1085e6[_0x5b51('0x13')][_0x5b51('0x15')]);}else{logger[_0x5b51('0xe')](_0x5b51('0x14'),_0x396b3f,_0x5b51('0xf'));_0x1d5082(_0x1085e6[_0x5b51('0x16')][_0x5b51('0x15')]);}})[_0x5b51('0x17')](function(_0x520686){logger[_0x5b51('0x13')]('ZohoAccount,\x20%s,\x20%s',_0x396b3f,_0x520686);_0x226e9c(_0x520686);});});}exports['GetZohoAccount']=function(_0x3d570d){var _0x2142ad=this;return new Promise(function(_0x56e747,_0xb030d5){return db[_0x5b51('0x18')]['findAll']({'raw':_0x3d570d[_0x5b51('0x19')]?_0x3d570d['options'][_0x5b51('0x1a')]===undefined?!![]:![]:!![],'where':_0x3d570d[_0x5b51('0x19')]?_0x3d570d[_0x5b51('0x19')][_0x5b51('0x1b')]||null:null,'attributes':_0x3d570d[_0x5b51('0x19')]?_0x3d570d[_0x5b51('0x19')][_0x5b51('0x1c')]||null:null,'limit':_0x3d570d[_0x5b51('0x19')]?_0x3d570d['options'][_0x5b51('0x1d')]||null:null,'include':_0x3d570d[_0x5b51('0x19')]?_0x3d570d[_0x5b51('0x19')][_0x5b51('0x1e')]?_[_0x5b51('0x1f')](_0x3d570d[_0x5b51('0x19')]['include'],function(_0x59e842){return{'model':db[_0x59e842[_0x5b51('0x20')]],'as':_0x59e842['as'],'attributes':_0x59e842[_0x5b51('0x1c')],'include':_0x59e842['include']?_[_0x5b51('0x1f')](_0x59e842[_0x5b51('0x1e')],function(_0x4356fc){return{'model':db[_0x4356fc[_0x5b51('0x20')]],'as':_0x4356fc['as'],'attributes':_0x4356fc['attributes'],'include':_0x4356fc[_0x5b51('0x1e')]?_[_0x5b51('0x1f')](_0x4356fc[_0x5b51('0x1e')],function(_0x399d2a){return{'model':db[_0x399d2a[_0x5b51('0x20')]],'as':_0x399d2a['as'],'attributes':_0x399d2a['attributes']};}):[]};}):[]};}):[]:[]})[_0x5b51('0xd')](function(_0x5346c3){logger[_0x5b51('0xe')](_0x5b51('0x21'),_0x3d570d);logger[_0x5b51('0x10')](_0x5b51('0x21'),_0x3d570d,JSON[_0x5b51('0x12')](_0x5346c3));_0x56e747(_0x5346c3);})[_0x5b51('0x17')](function(_0xbefb98){logger[_0x5b51('0x13')](_0x5b51('0x21'),_0xbefb98[_0x5b51('0x15')],_0x3d570d);_0xb030d5(_0x2142ad['error'](0x1f4,_0xbefb98[_0x5b51('0x15')]));});});};exports[_0x5b51('0x22')]=function(_0x43d2e3){var _0xe456a9=this;return new Promise(function(_0x151955,_0x4ef6e0){return db[_0x5b51('0x18')]['find']({'raw':_0x43d2e3['options']?_0x43d2e3[_0x5b51('0x19')][_0x5b51('0x1a')]===undefined?!![]:![]:!![],'where':_0x43d2e3[_0x5b51('0x19')]?_0x43d2e3[_0x5b51('0x19')][_0x5b51('0x1b')]||null:null,'attributes':_0x43d2e3['options']?_0x43d2e3[_0x5b51('0x19')][_0x5b51('0x1c')]||null:null,'include':_0x43d2e3['options']?_0x43d2e3[_0x5b51('0x19')]['include']?_[_0x5b51('0x1f')](_0x43d2e3[_0x5b51('0x19')][_0x5b51('0x1e')],function(_0xaa1cd){return{'model':db[_0xaa1cd[_0x5b51('0x20')]],'as':_0xaa1cd['as'],'attributes':_0xaa1cd[_0x5b51('0x1c')],'include':_0xaa1cd[_0x5b51('0x1e')]?_[_0x5b51('0x1f')](_0xaa1cd[_0x5b51('0x1e')],function(_0x50d2ba){return{'model':db[_0x50d2ba['model']],'as':_0x50d2ba['as'],'attributes':_0x50d2ba[_0x5b51('0x1c')],'include':_0x50d2ba['include']?_[_0x5b51('0x1f')](_0x50d2ba[_0x5b51('0x1e')],function(_0x3d6127){return{'model':db[_0x3d6127[_0x5b51('0x20')]],'as':_0x3d6127['as'],'attributes':_0x3d6127[_0x5b51('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x5b51('0xd')](function(_0x38b5ab){logger['info'](_0x5b51('0x22'),_0x43d2e3);logger[_0x5b51('0x10')](_0x5b51('0x22'),_0x43d2e3,JSON[_0x5b51('0x12')](_0x38b5ab));_0x151955(_0x38b5ab);})['catch'](function(_0x42867e){logger[_0x5b51('0x13')]('ShowZohoAccount',_0x42867e[_0x5b51('0x15')],_0x43d2e3);_0x4ef6e0(_0xe456a9[_0x5b51('0x13')](0x1f4,_0x42867e[_0x5b51('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf72=['express','fs-extra','../../components/auth/service','../../components/interaction/service','./intZohoConfiguration.controller','get','/:id','show','/:id/fields','isAuthenticated','getFields','/:id/subjects','/:id/descriptions','getDescriptions','post','put','update','delete','exports','multer','util','path','connect-timeout'];(function(_0x351509,_0x54725c){var _0x4e9861=function(_0x54f92c){while(--_0x54f92c){_0x351509['push'](_0x351509['shift']());}};_0x4e9861(++_0x54725c);}(_0xcf72,0x110));var _0x2cf7=function(_0x1853e5,_0x159040){_0x1853e5=_0x1853e5-0x0;var _0x161be8=_0xcf72[_0x1853e5];return _0x161be8;};'use strict';var multer=require(_0x2cf7('0x0'));var util=require(_0x2cf7('0x1'));var path=require(_0x2cf7('0x2'));var timeout=require(_0x2cf7('0x3'));var express=require(_0x2cf7('0x4'));var router=express['Router']();var fs_extra=require(_0x2cf7('0x5'));var auth=require(_0x2cf7('0x6'));var interaction=require(_0x2cf7('0x7'));var config=require('../../config/environment');var controller=require(_0x2cf7('0x8'));router[_0x2cf7('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x2cf7('0x9')](_0x2cf7('0xa'),auth['isAuthenticated'](),controller[_0x2cf7('0xb')]);router[_0x2cf7('0x9')](_0x2cf7('0xc'),auth[_0x2cf7('0xd')](),controller[_0x2cf7('0xe')]);router[_0x2cf7('0x9')](_0x2cf7('0xf'),auth['isAuthenticated'](),controller['getSubjects']);router[_0x2cf7('0x9')](_0x2cf7('0x10'),auth[_0x2cf7('0xd')](),controller[_0x2cf7('0x11')]);router[_0x2cf7('0x12')]('/',auth[_0x2cf7('0xd')](),controller['create']);router[_0x2cf7('0x13')](_0x2cf7('0xa'),auth['isAuthenticated'](),controller[_0x2cf7('0x14')]);router[_0x2cf7('0x15')](_0x2cf7('0xa'),auth[_0x2cf7('0xd')](),controller['destroy']);module[_0x2cf7('0x16')]=router;
\ No newline at end of file
+var _0xb78f=['getSubjects','getDescriptions','post','create','put','update','delete','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intZohoConfiguration.controller','get','isAuthenticated','/:id','show','/:id/fields','/:id/subjects'];(function(_0x3bb05b,_0x2533bd){var _0x6f6ac9=function(_0x441c1a){while(--_0x441c1a){_0x3bb05b['push'](_0x3bb05b['shift']());}};_0x6f6ac9(++_0x2533bd);}(_0xb78f,0xf7));var _0xfb78=function(_0x16d196,_0x967747){_0x16d196=_0x16d196-0x0;var _0x5de768=_0xb78f[_0x16d196];return _0x5de768;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0xfb78('0x0'));var express=require(_0xfb78('0x1'));var router=express[_0xfb78('0x2')]();var fs_extra=require(_0xfb78('0x3'));var auth=require(_0xfb78('0x4'));var interaction=require(_0xfb78('0x5'));var config=require('../../config/environment');var controller=require(_0xfb78('0x6'));router[_0xfb78('0x7')]('/',auth[_0xfb78('0x8')](),controller['index']);router[_0xfb78('0x7')](_0xfb78('0x9'),auth[_0xfb78('0x8')](),controller[_0xfb78('0xa')]);router[_0xfb78('0x7')](_0xfb78('0xb'),auth[_0xfb78('0x8')](),controller['getFields']);router[_0xfb78('0x7')](_0xfb78('0xc'),auth['isAuthenticated'](),controller[_0xfb78('0xd')]);router['get']('/:id/descriptions',auth[_0xfb78('0x8')](),controller[_0xfb78('0xe')]);router[_0xfb78('0xf')]('/',auth[_0xfb78('0x8')](),controller[_0xfb78('0x10')]);router[_0xfb78('0x11')](_0xfb78('0x9'),auth['isAuthenticated'](),controller[_0xfb78('0x12')]);router[_0xfb78('0x13')](_0xfb78('0x9'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed27=['contact','nothing','contact_lead','sequelize','exports','STRING','ENUM','lead'];(function(_0x505d9c,_0x2eb70b){var _0x4ad967=function(_0x5521eb){while(--_0x5521eb){_0x505d9c['push'](_0x505d9c['shift']());}};_0x4ad967(++_0x2eb70b);}(_0xed27,0x1ab));var _0x7ed2=function(_0x42c1f7,_0x16574c){_0x42c1f7=_0x42c1f7-0x0;var _0x5567fc=_0xed27[_0x42c1f7];return _0x5567fc;};'use strict';var Sequelize=require(_0x7ed2('0x0'));module[_0x7ed2('0x1')]={'name':{'type':Sequelize[_0x7ed2('0x2')]},'moduleCreate':{'type':Sequelize[_0x7ed2('0x3')](_0x7ed2('0x4'),_0x7ed2('0x5'),_0x7ed2('0x6')),'defaultValue':_0x7ed2('0x4')},'moduleSearch':{'type':Sequelize[_0x7ed2('0x3')]('contact_lead',_0x7ed2('0x5'),_0x7ed2('0x4')),'defaultValue':_0x7ed2('0x7')},'description':{'type':Sequelize[_0x7ed2('0x2')]}};
\ No newline at end of file
+var _0x2071=['sequelize','STRING','ENUM','lead','nothing','contact_lead'];(function(_0x424f69,_0x788c05){var _0x19197e=function(_0x2a84ea){while(--_0x2a84ea){_0x424f69['push'](_0x424f69['shift']());}};_0x19197e(++_0x788c05);}(_0x2071,0xa2));var _0x1207=function(_0x210b46,_0x52a05f){_0x210b46=_0x210b46-0x0;var _0x203df2=_0x2071[_0x210b46];return _0x203df2;};'use strict';var Sequelize=require(_0x1207('0x0'));module['exports']={'name':{'type':Sequelize[_0x1207('0x1')]},'moduleCreate':{'type':Sequelize[_0x1207('0x2')](_0x1207('0x3'),'contact',_0x1207('0x4')),'defaultValue':_0x1207('0x3')},'moduleSearch':{'type':Sequelize[_0x1207('0x2')](_0x1207('0x5'),'contact','lead'),'defaultValue':_0x1207('0x5')},'description':{'type':Sequelize[_0x1207('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6008=['request-promise','moment','mustache','util','path','sox','ejs','fs-extra','lodash','squel','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','stack','name','send','index','map','fieldName','key','model','query','keys','filters','attributes','fields','length','nolimit','order','sort','filter','merge','where','type','VIRTUAL','options','ZohoConfiguration','findAll','catch','rawAttributes','intersection','find','create','body','params','destroy','getFields','findOne','ZohoField','pick','hasOwnProperty','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch'];(function(_0x199572,_0x33e667){var _0x13cfa3=function(_0x53c075){while(--_0x53c075){_0x199572['push'](_0x199572['shift']());}};_0x13cfa3(++_0x33e667);}(_0x6008,0x13d));var _0x8600=function(_0xce711c,_0x25e225){_0xce711c=_0xce711c-0x0;var _0x37daa2=_0x6008[_0xce711c];return _0x37daa2;};'use strict';var emlformat=require(_0x8600('0x0'));var rimraf=require(_0x8600('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8600('0x2'));var rp=require(_0x8600('0x3'));var moment=require(_0x8600('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x8600('0x5'));var util=require(_0x8600('0x6'));var path=require(_0x8600('0x7'));var sox=require(_0x8600('0x8'));var csv=require('to-csv');var ejs=require(_0x8600('0x9'));var fs=require('fs');var fs_extra=require(_0x8600('0xa'));var _=require(_0x8600('0xb'));var squel=require(_0x8600('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x8600('0xd'));var toCsv=require(_0x8600('0xe'));var querystring=require(_0x8600('0xf'));var Papa=require('papaparse');var Redis=require(_0x8600('0x10'));var authService=require(_0x8600('0x11'));var qs=require(_0x8600('0x12'));var as=require(_0x8600('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8600('0x14'))(_0x8600('0x15'));var utils=require(_0x8600('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x8600('0x17'));var db=require(_0x8600('0x18'))['db'];function respondWithStatusCode(_0x6f27e4,_0x50d92c){_0x50d92c=_0x50d92c||0xcc;return function(_0x28560e){if(_0x28560e){return _0x6f27e4[_0x8600('0x19')](_0x50d92c);}return _0x6f27e4[_0x8600('0x1a')](_0x50d92c)[_0x8600('0x1b')]();};}function respondWithResult(_0x50e4b9,_0xddad77){_0xddad77=_0xddad77||0xc8;return function(_0x1b2b9d){if(_0x1b2b9d){return _0x50e4b9[_0x8600('0x1a')](_0xddad77)[_0x8600('0x1c')](_0x1b2b9d);}};}function respondWithFilteredResult(_0x25c209,_0xbfb63d){return function(_0x1b1a29){if(_0x1b1a29){var _0x53833b=typeof _0xbfb63d[_0x8600('0x1d')]===_0x8600('0x1e')&&typeof _0xbfb63d[_0x8600('0x1f')]==='undefined';var _0x5b883a=_0x1b1a29[_0x8600('0x20')];var _0x1e523a=_0x53833b?0x0:_0xbfb63d[_0x8600('0x1d')];var _0x34feb8=_0x53833b?_0x1b1a29[_0x8600('0x20')]:_0xbfb63d[_0x8600('0x1d')]+_0xbfb63d['limit'];var _0x434b6f;if(_0x34feb8>=_0x5b883a){_0x34feb8=_0x5b883a;_0x434b6f=0xc8;}else{_0x434b6f=0xce;}_0x25c209[_0x8600('0x1a')](_0x434b6f);return _0x25c209[_0x8600('0x21')](_0x8600('0x22'),_0x1e523a+'-'+_0x34feb8+'/'+_0x5b883a)['json'](_0x1b1a29);}return null;};}function patchUpdates(_0x6a91fd){return function(_0x1d156c){try{jsonpatch[_0x8600('0x23')](_0x1d156c,_0x6a91fd,!![]);}catch(_0x1501e8){return BPromise[_0x8600('0x24')](_0x1501e8);}return _0x1d156c[_0x8600('0x25')]();};}function saveUpdates(_0xb27b6b,_0x424146){return function(_0x85d2f7){if(_0x85d2f7){return _0x85d2f7[_0x8600('0x26')](_0xb27b6b)[_0x8600('0x27')](function(_0x4296fd){return _0x4296fd;});}return null;};}function removeEntity(_0x21f533,_0x247677){return function(_0x2653b6){if(_0x2653b6){return _0x2653b6['destroy']()['then'](function(){_0x21f533[_0x8600('0x1a')](0xcc)[_0x8600('0x1b')]();});}};}function handleEntityNotFound(_0x40ffa0,_0x4adddc){return function(_0x554da2){if(!_0x554da2){_0x40ffa0[_0x8600('0x19')](0x194);}return _0x554da2;};}function handleError(_0x3e3aa7,_0x16ff93){_0x16ff93=_0x16ff93||0x1f4;return function(_0x282f4c){logger['error'](_0x282f4c[_0x8600('0x28')]);if(_0x282f4c[_0x8600('0x29')]){delete _0x282f4c['name'];}_0x3e3aa7['status'](_0x16ff93)[_0x8600('0x2a')](_0x282f4c);};}exports[_0x8600('0x2b')]=function(_0x4dcac1,_0x3b6a88){var _0x565ff1={},_0x2dd5b9={},_0x2f0319={'count':0x0,'rows':[]};var _0x59aee7=_[_0x8600('0x2c')](db['ZohoConfiguration']['rawAttributes'],function(_0x40f078){return{'name':_0x40f078[_0x8600('0x2d')],'type':_0x40f078['type'][_0x8600('0x2e')]};});_0x2dd5b9[_0x8600('0x2f')]=_[_0x8600('0x2c')](_0x59aee7,_0x8600('0x29'));_0x2dd5b9[_0x8600('0x30')]=_[_0x8600('0x31')](_0x4dcac1[_0x8600('0x30')]);_0x2dd5b9[_0x8600('0x32')]=_['intersection'](_0x2dd5b9[_0x8600('0x2f')],_0x2dd5b9[_0x8600('0x30')]);_0x565ff1[_0x8600('0x33')]=_['intersection'](_0x2dd5b9['model'],qs['fields'](_0x4dcac1[_0x8600('0x30')][_0x8600('0x34')]));_0x565ff1[_0x8600('0x33')]=_0x565ff1[_0x8600('0x33')][_0x8600('0x35')]?_0x565ff1['attributes']:_0x2dd5b9['model'];if(!_0x4dcac1[_0x8600('0x30')]['hasOwnProperty'](_0x8600('0x36'))){_0x565ff1['limit']=qs['limit'](_0x4dcac1['query'][_0x8600('0x1f')]);_0x565ff1[_0x8600('0x1d')]=qs[_0x8600('0x1d')](_0x4dcac1[_0x8600('0x30')]['offset']);}_0x565ff1[_0x8600('0x37')]=qs[_0x8600('0x38')](_0x4dcac1[_0x8600('0x30')][_0x8600('0x38')]);_0x565ff1['where']=qs[_0x8600('0x32')](_['pick'](_0x4dcac1[_0x8600('0x30')],_0x2dd5b9[_0x8600('0x32')]),_0x59aee7);if(_0x4dcac1[_0x8600('0x30')][_0x8600('0x39')]){_0x565ff1['where']=_[_0x8600('0x3a')](_0x565ff1[_0x8600('0x3b')],{'$or':_['map'](_0x59aee7,function(_0x470c74){if(_0x470c74[_0x8600('0x3c')]!==_0x8600('0x3d')){var _0x5df089={};_0x5df089[_0x470c74[_0x8600('0x29')]]={'$like':'%'+_0x4dcac1[_0x8600('0x30')][_0x8600('0x39')]+'%'};return _0x5df089;}})});}_0x565ff1=_[_0x8600('0x3a')]({},_0x565ff1,_0x4dcac1[_0x8600('0x3e')]);var _0x2ab93a={'where':_0x565ff1[_0x8600('0x3b')]};return db[_0x8600('0x3f')][_0x8600('0x20')](_0x2ab93a)[_0x8600('0x27')](function(_0x1fa3da){_0x2f0319[_0x8600('0x20')]=_0x1fa3da;if(_0x4dcac1[_0x8600('0x30')]['includeAll']){_0x565ff1['include']=[{'all':!![]}];}return db[_0x8600('0x3f')][_0x8600('0x40')](_0x565ff1);})['then'](function(_0x17e319){_0x2f0319['rows']=_0x17e319;return _0x2f0319;})[_0x8600('0x27')](respondWithFilteredResult(_0x3b6a88,_0x565ff1))[_0x8600('0x41')](handleError(_0x3b6a88,null));};exports['show']=function(_0x2a694a,_0x47155f){var _0x1eec9c={'raw':![],'where':{'id':_0x2a694a['params']['id']}},_0x3cb094={};_0x3cb094['model']=_['keys'](db['ZohoConfiguration'][_0x8600('0x42')]);_0x3cb094[_0x8600('0x30')]=_['keys'](_0x2a694a['query']);_0x3cb094[_0x8600('0x32')]=_[_0x8600('0x43')](_0x3cb094[_0x8600('0x2f')],_0x3cb094[_0x8600('0x30')]);_0x1eec9c['attributes']=_[_0x8600('0x43')](_0x3cb094[_0x8600('0x2f')],qs['fields'](_0x2a694a[_0x8600('0x30')][_0x8600('0x34')]));_0x1eec9c['attributes']=_0x1eec9c[_0x8600('0x33')][_0x8600('0x35')]?_0x1eec9c['attributes']:_0x3cb094[_0x8600('0x2f')];if(_0x2a694a[_0x8600('0x30')]['includeAll']){_0x1eec9c['include']=[{'all':!![]}];}_0x1eec9c=_[_0x8600('0x3a')]({},_0x1eec9c,_0x2a694a['options']);return db[_0x8600('0x3f')][_0x8600('0x44')](_0x1eec9c)['then'](handleEntityNotFound(_0x47155f,null))[_0x8600('0x27')](respondWithResult(_0x47155f,null))[_0x8600('0x41')](handleError(_0x47155f,null));};exports['create']=function(_0x31504f,_0x3dfa8a){return db[_0x8600('0x3f')][_0x8600('0x45')](_0x31504f[_0x8600('0x46')],{})[_0x8600('0x27')](respondWithResult(_0x3dfa8a,0xc9))[_0x8600('0x41')](handleError(_0x3dfa8a,null));};exports['update']=function(_0x5bee0a,_0x2cf534){if(_0x5bee0a[_0x8600('0x46')]['id']){delete _0x5bee0a[_0x8600('0x46')]['id'];}return db[_0x8600('0x3f')][_0x8600('0x44')]({'where':{'id':_0x5bee0a[_0x8600('0x47')]['id']}})[_0x8600('0x27')](handleEntityNotFound(_0x2cf534,null))[_0x8600('0x27')](saveUpdates(_0x5bee0a[_0x8600('0x46')],null))['then'](respondWithResult(_0x2cf534,null))[_0x8600('0x41')](handleError(_0x2cf534,null));};exports[_0x8600('0x48')]=function(_0x55f543,_0x172a46){return db[_0x8600('0x3f')]['find']({'where':{'id':_0x55f543[_0x8600('0x47')]['id']}})[_0x8600('0x27')](handleEntityNotFound(_0x172a46,null))[_0x8600('0x27')](removeEntity(_0x172a46,null))[_0x8600('0x41')](handleError(_0x172a46,null));};exports[_0x8600('0x49')]=function(_0x1ccf70,_0x22a047,_0x1fc26f){var _0x1e10b8={};var _0x2c86af={};var _0x2c3fd1;var _0x5c0701;return db[_0x8600('0x3f')][_0x8600('0x4a')]({'where':{'id':_0x1ccf70['params']['id']}})[_0x8600('0x27')](handleEntityNotFound(_0x22a047,null))['then'](function(_0x3759ad){if(_0x3759ad){_0x2c3fd1=_0x3759ad;_0x2c86af[_0x8600('0x2f')]=_[_0x8600('0x31')](db[_0x8600('0x4b')][_0x8600('0x42')]);_0x2c86af['query']=_[_0x8600('0x31')](_0x1ccf70['query']);_0x2c86af['filters']=_[_0x8600('0x43')](_0x2c86af[_0x8600('0x2f')],_0x2c86af[_0x8600('0x30')]);_0x1e10b8[_0x8600('0x33')]=_['intersection'](_0x2c86af[_0x8600('0x2f')],qs[_0x8600('0x34')](_0x1ccf70['query'][_0x8600('0x34')]));_0x1e10b8['attributes']=_0x1e10b8['attributes']['length']?_0x1e10b8['attributes']:_0x2c86af['model'];_0x1e10b8[_0x8600('0x37')]=qs['sort'](_0x1ccf70[_0x8600('0x30')][_0x8600('0x38')]);_0x1e10b8[_0x8600('0x3b')]=qs[_0x8600('0x32')](_[_0x8600('0x4c')](_0x1ccf70[_0x8600('0x30')],_0x2c86af['filters']));if(_0x1ccf70[_0x8600('0x30')][_0x8600('0x39')]){_0x1e10b8['where']=_[_0x8600('0x3a')](_0x1e10b8[_0x8600('0x3b')],{'$or':_[_0x8600('0x2c')](_0x1e10b8[_0x8600('0x33')],function(_0x160743){var _0x440583={};_0x440583[_0x160743]={'$like':'%'+_0x1ccf70[_0x8600('0x30')][_0x8600('0x39')]+'%'};return _0x440583;})});}_0x1e10b8=_[_0x8600('0x3a')]({},_0x1e10b8,_0x1ccf70[_0x8600('0x3e')]);return _0x2c3fd1[_0x8600('0x49')](_0x1e10b8);}})['then'](function(_0x15e08b){if(_0x15e08b){_0x5c0701=_0x15e08b[_0x8600('0x35')];if(!_0x1ccf70['query'][_0x8600('0x4d')](_0x8600('0x36'))){_0x1e10b8[_0x8600('0x1f')]=qs['limit'](_0x1ccf70[_0x8600('0x30')][_0x8600('0x1f')]);_0x1e10b8[_0x8600('0x1d')]=qs[_0x8600('0x1d')](_0x1ccf70[_0x8600('0x30')][_0x8600('0x1d')]);}return _0x2c3fd1[_0x8600('0x49')](_0x1e10b8);}})[_0x8600('0x27')](function(_0x4cb584){if(_0x4cb584){return _0x4cb584?{'count':_0x5c0701,'rows':_0x4cb584}:null;}})[_0x8600('0x27')](respondWithResult(_0x22a047,null))['catch'](handleError(_0x22a047,null));};exports['getSubjects']=function(_0x159e34,_0x20d02a,_0x28c15e){var _0x5d3056={};var _0x372dab={};var _0x29bfa4;var _0x3591ea;return db[_0x8600('0x3f')]['findOne']({'where':{'id':_0x159e34[_0x8600('0x47')]['id']}})['then'](handleEntityNotFound(_0x20d02a,null))[_0x8600('0x27')](function(_0x13f676){if(_0x13f676){_0x29bfa4=_0x13f676;_0x372dab[_0x8600('0x2f')]=_[_0x8600('0x31')](db[_0x8600('0x4b')]['rawAttributes']);_0x372dab[_0x8600('0x30')]=_[_0x8600('0x31')](_0x159e34['query']);_0x372dab['filters']=_[_0x8600('0x43')](_0x372dab[_0x8600('0x2f')],_0x372dab[_0x8600('0x30')]);_0x5d3056[_0x8600('0x33')]=_[_0x8600('0x43')](_0x372dab[_0x8600('0x2f')],qs[_0x8600('0x34')](_0x159e34[_0x8600('0x30')][_0x8600('0x34')]));_0x5d3056['attributes']=_0x5d3056[_0x8600('0x33')][_0x8600('0x35')]?_0x5d3056[_0x8600('0x33')]:_0x372dab[_0x8600('0x2f')];_0x5d3056[_0x8600('0x37')]=qs[_0x8600('0x38')](_0x159e34[_0x8600('0x30')][_0x8600('0x38')]);_0x5d3056[_0x8600('0x3b')]=qs[_0x8600('0x32')](_[_0x8600('0x4c')](_0x159e34['query'],_0x372dab[_0x8600('0x32')]));if(_0x159e34['query'][_0x8600('0x39')]){_0x5d3056['where']=_[_0x8600('0x3a')](_0x5d3056[_0x8600('0x3b')],{'$or':_[_0x8600('0x2c')](_0x5d3056[_0x8600('0x33')],function(_0x12e6fe){var _0x39d417={};_0x39d417[_0x12e6fe]={'$like':'%'+_0x159e34[_0x8600('0x30')][_0x8600('0x39')]+'%'};return _0x39d417;})});}_0x5d3056=_[_0x8600('0x3a')]({},_0x5d3056,_0x159e34[_0x8600('0x3e')]);return _0x29bfa4[_0x8600('0x4e')](_0x5d3056);}})[_0x8600('0x27')](function(_0x2d597d){if(_0x2d597d){_0x3591ea=_0x2d597d[_0x8600('0x35')];if(!_0x159e34['query'][_0x8600('0x4d')]('nolimit')){_0x5d3056[_0x8600('0x1f')]=qs[_0x8600('0x1f')](_0x159e34[_0x8600('0x30')][_0x8600('0x1f')]);_0x5d3056[_0x8600('0x1d')]=qs[_0x8600('0x1d')](_0x159e34['query'][_0x8600('0x1d')]);}return _0x29bfa4[_0x8600('0x4e')](_0x5d3056);}})[_0x8600('0x27')](function(_0x5bfd4f){if(_0x5bfd4f){return _0x5bfd4f?{'count':_0x3591ea,'rows':_0x5bfd4f}:null;}})[_0x8600('0x27')](respondWithResult(_0x20d02a,null))[_0x8600('0x41')](handleError(_0x20d02a,null));};exports[_0x8600('0x4f')]=function(_0x1bbc41,_0x51bb4a,_0x42ac06){var _0x57dd91={};var _0x54f1e1={};var _0x3bfc35;var _0xedd282;return db[_0x8600('0x3f')][_0x8600('0x4a')]({'where':{'id':_0x1bbc41['params']['id']}})[_0x8600('0x27')](handleEntityNotFound(_0x51bb4a,null))[_0x8600('0x27')](function(_0x2df600){if(_0x2df600){_0x3bfc35=_0x2df600;_0x54f1e1[_0x8600('0x2f')]=_[_0x8600('0x31')](db[_0x8600('0x4b')][_0x8600('0x42')]);_0x54f1e1[_0x8600('0x30')]=_['keys'](_0x1bbc41[_0x8600('0x30')]);_0x54f1e1[_0x8600('0x32')]=_[_0x8600('0x43')](_0x54f1e1[_0x8600('0x2f')],_0x54f1e1[_0x8600('0x30')]);_0x57dd91[_0x8600('0x33')]=_[_0x8600('0x43')](_0x54f1e1['model'],qs[_0x8600('0x34')](_0x1bbc41[_0x8600('0x30')][_0x8600('0x34')]));_0x57dd91['attributes']=_0x57dd91[_0x8600('0x33')][_0x8600('0x35')]?_0x57dd91[_0x8600('0x33')]:_0x54f1e1[_0x8600('0x2f')];_0x57dd91[_0x8600('0x37')]=qs[_0x8600('0x38')](_0x1bbc41['query'][_0x8600('0x38')]);_0x57dd91['where']=qs[_0x8600('0x32')](_[_0x8600('0x4c')](_0x1bbc41['query'],_0x54f1e1[_0x8600('0x32')]));if(_0x1bbc41[_0x8600('0x30')][_0x8600('0x39')]){_0x57dd91['where']=_[_0x8600('0x3a')](_0x57dd91['where'],{'$or':_[_0x8600('0x2c')](_0x57dd91[_0x8600('0x33')],function(_0x2814f0){var _0x3f8fe2={};_0x3f8fe2[_0x2814f0]={'$like':'%'+_0x1bbc41['query'][_0x8600('0x39')]+'%'};return _0x3f8fe2;})});}_0x57dd91=_['merge']({},_0x57dd91,_0x1bbc41[_0x8600('0x3e')]);return _0x3bfc35[_0x8600('0x4f')](_0x57dd91);}})[_0x8600('0x27')](function(_0x5a71c1){if(_0x5a71c1){_0xedd282=_0x5a71c1[_0x8600('0x35')];if(!_0x1bbc41[_0x8600('0x30')][_0x8600('0x4d')](_0x8600('0x36'))){_0x57dd91[_0x8600('0x1f')]=qs['limit'](_0x1bbc41[_0x8600('0x30')]['limit']);_0x57dd91[_0x8600('0x1d')]=qs[_0x8600('0x1d')](_0x1bbc41['query'][_0x8600('0x1d')]);}return _0x3bfc35['getDescriptions'](_0x57dd91);}})['then'](function(_0x32759f){if(_0x32759f){return _0x32759f?{'count':_0xedd282,'rows':_0x32759f}:null;}})[_0x8600('0x27')](respondWithResult(_0x51bb4a,null))[_0x8600('0x41')](handleError(_0x51bb4a,null));};
\ No newline at end of file
+var _0xc94f=['intersection','fields','length','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','find','create','body','params','findOne','getFields','hasOwnProperty','getSubjects','ZohoField','nolimit','getDescriptions','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','json','offset','limit','undefined','count','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','map','ZohoConfiguration','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes'];(function(_0x11e1ef,_0x3cbe5e){var _0x125d5b=function(_0x36267f){while(--_0x36267f){_0x11e1ef['push'](_0x11e1ef['shift']());}};_0x125d5b(++_0x3cbe5e);}(_0xc94f,0xbb));var _0xfc94=function(_0x422c2b,_0x2a36a1){_0x422c2b=_0x422c2b-0x0;var _0x1027d1=_0xc94f[_0x422c2b];return _0x1027d1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xfc94('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfc94('0x1'));var rp=require(_0xfc94('0x2'));var moment=require(_0xfc94('0x3'));var BPromise=require(_0xfc94('0x4'));var Mustache=require(_0xfc94('0x5'));var util=require(_0xfc94('0x6'));var path=require(_0xfc94('0x7'));var sox=require(_0xfc94('0x8'));var csv=require(_0xfc94('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xfc94('0xa'));var squel=require(_0xfc94('0xb'));var crypto=require('crypto');var jsforce=require(_0xfc94('0xc'));var deskjs=require(_0xfc94('0xd'));var toCsv=require(_0xfc94('0x9'));var querystring=require(_0xfc94('0xe'));var Papa=require(_0xfc94('0xf'));var Redis=require('ioredis');var authService=require(_0xfc94('0x10'));var qs=require(_0xfc94('0x11'));var as=require(_0xfc94('0x12'));var hardwareService=require(_0xfc94('0x13'));var logger=require(_0xfc94('0x14'))(_0xfc94('0x15'));var utils=require(_0xfc94('0x16'));var config=require(_0xfc94('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xfc94('0x18'))['db'];function respondWithStatusCode(_0x4e2e95,_0x186e4f){_0x186e4f=_0x186e4f||0xcc;return function(_0x2fffbd){if(_0x2fffbd){return _0x4e2e95['sendStatus'](_0x186e4f);}return _0x4e2e95[_0xfc94('0x19')](_0x186e4f)['end']();};}function respondWithResult(_0x12ff93,_0x5b3440){_0x5b3440=_0x5b3440||0xc8;return function(_0x4e2f76){if(_0x4e2f76){return _0x12ff93[_0xfc94('0x19')](_0x5b3440)[_0xfc94('0x1a')](_0x4e2f76);}};}function respondWithFilteredResult(_0x574bed,_0x52bcbc){return function(_0x5168f5){if(_0x5168f5){var _0x4ff2f9=typeof _0x52bcbc[_0xfc94('0x1b')]==='undefined'&&typeof _0x52bcbc[_0xfc94('0x1c')]===_0xfc94('0x1d');var _0x5d3682=_0x5168f5[_0xfc94('0x1e')];var _0x37ce03=_0x4ff2f9?0x0:_0x52bcbc['offset'];var _0x216c12=_0x4ff2f9?_0x5168f5[_0xfc94('0x1e')]:_0x52bcbc[_0xfc94('0x1b')]+_0x52bcbc[_0xfc94('0x1c')];var _0x39600d;if(_0x216c12>=_0x5d3682){_0x216c12=_0x5d3682;_0x39600d=0xc8;}else{_0x39600d=0xce;}_0x574bed[_0xfc94('0x19')](_0x39600d);return _0x574bed['set']('Content-Range',_0x37ce03+'-'+_0x216c12+'/'+_0x5d3682)[_0xfc94('0x1a')](_0x5168f5);}return null;};}function patchUpdates(_0x16e367){return function(_0x5d79a1){try{jsonpatch['apply'](_0x5d79a1,_0x16e367,!![]);}catch(_0x4b2163){return BPromise[_0xfc94('0x1f')](_0x4b2163);}return _0x5d79a1[_0xfc94('0x20')]();};}function saveUpdates(_0x55e7e0,_0x29d832){return function(_0x12248e){if(_0x12248e){return _0x12248e[_0xfc94('0x21')](_0x55e7e0)[_0xfc94('0x22')](function(_0x517a11){return _0x517a11;});}return null;};}function removeEntity(_0x37794d,_0x527979){return function(_0x247f46){if(_0x247f46){return _0x247f46[_0xfc94('0x23')]()[_0xfc94('0x22')](function(){_0x37794d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x177801,_0x2d5519){return function(_0x24dd01){if(!_0x24dd01){_0x177801[_0xfc94('0x24')](0x194);}return _0x24dd01;};}function handleError(_0x3986e1,_0x21e528){_0x21e528=_0x21e528||0x1f4;return function(_0xe9e3d0){logger[_0xfc94('0x25')](_0xe9e3d0[_0xfc94('0x26')]);if(_0xe9e3d0[_0xfc94('0x27')]){delete _0xe9e3d0[_0xfc94('0x27')];}_0x3986e1['status'](_0x21e528)[_0xfc94('0x28')](_0xe9e3d0);};}exports[_0xfc94('0x29')]=function(_0x2eae39,_0xa39c55){var _0x4790b5={},_0x3697f6={},_0x2cb0c9={'count':0x0,'rows':[]};var _0x2d9e23=_[_0xfc94('0x2a')](db[_0xfc94('0x2b')][_0xfc94('0x2c')],function(_0x5ede12){return{'name':_0x5ede12[_0xfc94('0x2d')],'type':_0x5ede12[_0xfc94('0x2e')][_0xfc94('0x2f')]};});_0x3697f6[_0xfc94('0x30')]=_['map'](_0x2d9e23,_0xfc94('0x27'));_0x3697f6[_0xfc94('0x31')]=_[_0xfc94('0x32')](_0x2eae39[_0xfc94('0x31')]);_0x3697f6[_0xfc94('0x33')]=_['intersection'](_0x3697f6[_0xfc94('0x30')],_0x3697f6['query']);_0x4790b5[_0xfc94('0x34')]=_[_0xfc94('0x35')](_0x3697f6['model'],qs[_0xfc94('0x36')](_0x2eae39[_0xfc94('0x31')]['fields']));_0x4790b5['attributes']=_0x4790b5[_0xfc94('0x34')][_0xfc94('0x37')]?_0x4790b5[_0xfc94('0x34')]:_0x3697f6[_0xfc94('0x30')];if(!_0x2eae39[_0xfc94('0x31')]['hasOwnProperty']('nolimit')){_0x4790b5[_0xfc94('0x1c')]=qs['limit'](_0x2eae39[_0xfc94('0x31')]['limit']);_0x4790b5[_0xfc94('0x1b')]=qs[_0xfc94('0x1b')](_0x2eae39['query'][_0xfc94('0x1b')]);}_0x4790b5[_0xfc94('0x38')]=qs[_0xfc94('0x39')](_0x2eae39['query'][_0xfc94('0x39')]);_0x4790b5[_0xfc94('0x3a')]=qs[_0xfc94('0x33')](_[_0xfc94('0x3b')](_0x2eae39[_0xfc94('0x31')],_0x3697f6[_0xfc94('0x33')]),_0x2d9e23);if(_0x2eae39[_0xfc94('0x31')][_0xfc94('0x3c')]){_0x4790b5[_0xfc94('0x3a')]=_['merge'](_0x4790b5[_0xfc94('0x3a')],{'$or':_['map'](_0x2d9e23,function(_0x28d40d){if(_0x28d40d[_0xfc94('0x2e')]!==_0xfc94('0x3d')){var _0x316930={};_0x316930[_0x28d40d[_0xfc94('0x27')]]={'$like':'%'+_0x2eae39[_0xfc94('0x31')]['filter']+'%'};return _0x316930;}})});}_0x4790b5=_[_0xfc94('0x3e')]({},_0x4790b5,_0x2eae39[_0xfc94('0x3f')]);var _0x45ff69={'where':_0x4790b5[_0xfc94('0x3a')]};return db[_0xfc94('0x2b')][_0xfc94('0x1e')](_0x45ff69)['then'](function(_0x7592ee){_0x2cb0c9[_0xfc94('0x1e')]=_0x7592ee;if(_0x2eae39[_0xfc94('0x31')][_0xfc94('0x40')]){_0x4790b5[_0xfc94('0x41')]=[{'all':!![]}];}return db[_0xfc94('0x2b')][_0xfc94('0x42')](_0x4790b5);})[_0xfc94('0x22')](function(_0x471450){_0x2cb0c9[_0xfc94('0x43')]=_0x471450;return _0x2cb0c9;})[_0xfc94('0x22')](respondWithFilteredResult(_0xa39c55,_0x4790b5))[_0xfc94('0x44')](handleError(_0xa39c55,null));};exports['show']=function(_0x41e53c,_0x3a71b4){var _0x2450ae={'raw':![],'where':{'id':_0x41e53c['params']['id']}},_0x2a3eba={};_0x2a3eba[_0xfc94('0x30')]=_[_0xfc94('0x32')](db[_0xfc94('0x2b')][_0xfc94('0x2c')]);_0x2a3eba[_0xfc94('0x31')]=_[_0xfc94('0x32')](_0x41e53c[_0xfc94('0x31')]);_0x2a3eba[_0xfc94('0x33')]=_['intersection'](_0x2a3eba[_0xfc94('0x30')],_0x2a3eba[_0xfc94('0x31')]);_0x2450ae[_0xfc94('0x34')]=_['intersection'](_0x2a3eba['model'],qs[_0xfc94('0x36')](_0x41e53c[_0xfc94('0x31')][_0xfc94('0x36')]));_0x2450ae[_0xfc94('0x34')]=_0x2450ae[_0xfc94('0x34')][_0xfc94('0x37')]?_0x2450ae[_0xfc94('0x34')]:_0x2a3eba[_0xfc94('0x30')];if(_0x41e53c[_0xfc94('0x31')]['includeAll']){_0x2450ae['include']=[{'all':!![]}];}_0x2450ae=_['merge']({},_0x2450ae,_0x41e53c['options']);return db['ZohoConfiguration'][_0xfc94('0x45')](_0x2450ae)[_0xfc94('0x22')](handleEntityNotFound(_0x3a71b4,null))[_0xfc94('0x22')](respondWithResult(_0x3a71b4,null))[_0xfc94('0x44')](handleError(_0x3a71b4,null));};exports[_0xfc94('0x46')]=function(_0x4fab96,_0x152d59){return db[_0xfc94('0x2b')][_0xfc94('0x46')](_0x4fab96[_0xfc94('0x47')],{})[_0xfc94('0x22')](respondWithResult(_0x152d59,0xc9))[_0xfc94('0x44')](handleError(_0x152d59,null));};exports[_0xfc94('0x21')]=function(_0x26a391,_0x4c149c){if(_0x26a391[_0xfc94('0x47')]['id']){delete _0x26a391[_0xfc94('0x47')]['id'];}return db['ZohoConfiguration'][_0xfc94('0x45')]({'where':{'id':_0x26a391['params']['id']}})['then'](handleEntityNotFound(_0x4c149c,null))[_0xfc94('0x22')](saveUpdates(_0x26a391['body'],null))[_0xfc94('0x22')](respondWithResult(_0x4c149c,null))['catch'](handleError(_0x4c149c,null));};exports[_0xfc94('0x23')]=function(_0x20159a,_0x2c8dc8){return db['ZohoConfiguration'][_0xfc94('0x45')]({'where':{'id':_0x20159a[_0xfc94('0x48')]['id']}})['then'](handleEntityNotFound(_0x2c8dc8,null))['then'](removeEntity(_0x2c8dc8,null))[_0xfc94('0x44')](handleError(_0x2c8dc8,null));};exports['getFields']=function(_0x15a273,_0x37247f,_0x3cb06f){var _0x994da1={};var _0x10578b={};var _0x28984e;var _0x273658;return db[_0xfc94('0x2b')][_0xfc94('0x49')]({'where':{'id':_0x15a273[_0xfc94('0x48')]['id']}})['then'](handleEntityNotFound(_0x37247f,null))[_0xfc94('0x22')](function(_0x29c5ab){if(_0x29c5ab){_0x28984e=_0x29c5ab;_0x10578b[_0xfc94('0x30')]=_[_0xfc94('0x32')](db['ZohoField']['rawAttributes']);_0x10578b[_0xfc94('0x31')]=_['keys'](_0x15a273['query']);_0x10578b['filters']=_[_0xfc94('0x35')](_0x10578b['model'],_0x10578b[_0xfc94('0x31')]);_0x994da1[_0xfc94('0x34')]=_['intersection'](_0x10578b[_0xfc94('0x30')],qs[_0xfc94('0x36')](_0x15a273[_0xfc94('0x31')]['fields']));_0x994da1[_0xfc94('0x34')]=_0x994da1[_0xfc94('0x34')][_0xfc94('0x37')]?_0x994da1[_0xfc94('0x34')]:_0x10578b[_0xfc94('0x30')];_0x994da1[_0xfc94('0x38')]=qs['sort'](_0x15a273['query']['sort']);_0x994da1[_0xfc94('0x3a')]=qs[_0xfc94('0x33')](_[_0xfc94('0x3b')](_0x15a273[_0xfc94('0x31')],_0x10578b[_0xfc94('0x33')]));if(_0x15a273[_0xfc94('0x31')][_0xfc94('0x3c')]){_0x994da1[_0xfc94('0x3a')]=_[_0xfc94('0x3e')](_0x994da1[_0xfc94('0x3a')],{'$or':_[_0xfc94('0x2a')](_0x994da1[_0xfc94('0x34')],function(_0x4bc282){var _0x3b0f9c={};_0x3b0f9c[_0x4bc282]={'$like':'%'+_0x15a273[_0xfc94('0x31')]['filter']+'%'};return _0x3b0f9c;})});}_0x994da1=_[_0xfc94('0x3e')]({},_0x994da1,_0x15a273[_0xfc94('0x3f')]);return _0x28984e[_0xfc94('0x4a')](_0x994da1);}})[_0xfc94('0x22')](function(_0x3ac9d4){if(_0x3ac9d4){_0x273658=_0x3ac9d4[_0xfc94('0x37')];if(!_0x15a273[_0xfc94('0x31')][_0xfc94('0x4b')]('nolimit')){_0x994da1[_0xfc94('0x1c')]=qs['limit'](_0x15a273[_0xfc94('0x31')][_0xfc94('0x1c')]);_0x994da1['offset']=qs[_0xfc94('0x1b')](_0x15a273['query']['offset']);}return _0x28984e['getFields'](_0x994da1);}})[_0xfc94('0x22')](function(_0x27ed8e){if(_0x27ed8e){return _0x27ed8e?{'count':_0x273658,'rows':_0x27ed8e}:null;}})[_0xfc94('0x22')](respondWithResult(_0x37247f,null))['catch'](handleError(_0x37247f,null));};exports[_0xfc94('0x4c')]=function(_0x1b6214,_0x4ead93,_0x371471){var _0x2d37c8={};var _0x5cbba7={};var _0x130e45;var _0x449dd0;return db[_0xfc94('0x2b')][_0xfc94('0x49')]({'where':{'id':_0x1b6214[_0xfc94('0x48')]['id']}})[_0xfc94('0x22')](handleEntityNotFound(_0x4ead93,null))[_0xfc94('0x22')](function(_0x10afa8){if(_0x10afa8){_0x130e45=_0x10afa8;_0x5cbba7[_0xfc94('0x30')]=_[_0xfc94('0x32')](db[_0xfc94('0x4d')][_0xfc94('0x2c')]);_0x5cbba7['query']=_[_0xfc94('0x32')](_0x1b6214['query']);_0x5cbba7[_0xfc94('0x33')]=_[_0xfc94('0x35')](_0x5cbba7[_0xfc94('0x30')],_0x5cbba7['query']);_0x2d37c8[_0xfc94('0x34')]=_[_0xfc94('0x35')](_0x5cbba7[_0xfc94('0x30')],qs[_0xfc94('0x36')](_0x1b6214[_0xfc94('0x31')][_0xfc94('0x36')]));_0x2d37c8['attributes']=_0x2d37c8['attributes'][_0xfc94('0x37')]?_0x2d37c8[_0xfc94('0x34')]:_0x5cbba7[_0xfc94('0x30')];_0x2d37c8[_0xfc94('0x38')]=qs[_0xfc94('0x39')](_0x1b6214[_0xfc94('0x31')][_0xfc94('0x39')]);_0x2d37c8[_0xfc94('0x3a')]=qs['filters'](_[_0xfc94('0x3b')](_0x1b6214['query'],_0x5cbba7[_0xfc94('0x33')]));if(_0x1b6214[_0xfc94('0x31')]['filter']){_0x2d37c8[_0xfc94('0x3a')]=_['merge'](_0x2d37c8['where'],{'$or':_[_0xfc94('0x2a')](_0x2d37c8[_0xfc94('0x34')],function(_0x4da65b){var _0x582d30={};_0x582d30[_0x4da65b]={'$like':'%'+_0x1b6214[_0xfc94('0x31')][_0xfc94('0x3c')]+'%'};return _0x582d30;})});}_0x2d37c8=_[_0xfc94('0x3e')]({},_0x2d37c8,_0x1b6214['options']);return _0x130e45[_0xfc94('0x4c')](_0x2d37c8);}})[_0xfc94('0x22')](function(_0x293c24){if(_0x293c24){_0x449dd0=_0x293c24[_0xfc94('0x37')];if(!_0x1b6214[_0xfc94('0x31')][_0xfc94('0x4b')](_0xfc94('0x4e'))){_0x2d37c8[_0xfc94('0x1c')]=qs['limit'](_0x1b6214['query']['limit']);_0x2d37c8['offset']=qs[_0xfc94('0x1b')](_0x1b6214[_0xfc94('0x31')][_0xfc94('0x1b')]);}return _0x130e45[_0xfc94('0x4c')](_0x2d37c8);}})[_0xfc94('0x22')](function(_0x336ce1){if(_0x336ce1){return _0x336ce1?{'count':_0x449dd0,'rows':_0x336ce1}:null;}})[_0xfc94('0x22')](respondWithResult(_0x4ead93,null))['catch'](handleError(_0x4ead93,null));};exports[_0xfc94('0x4f')]=function(_0x34f62f,_0x2cccbc,_0x210cec){var _0x33e1d0={};var _0x4d5e1a={};var _0x51e078;var _0x2ab311;return db[_0xfc94('0x2b')][_0xfc94('0x49')]({'where':{'id':_0x34f62f['params']['id']}})[_0xfc94('0x22')](handleEntityNotFound(_0x2cccbc,null))['then'](function(_0x1f0b61){if(_0x1f0b61){_0x51e078=_0x1f0b61;_0x4d5e1a[_0xfc94('0x30')]=_[_0xfc94('0x32')](db[_0xfc94('0x4d')][_0xfc94('0x2c')]);_0x4d5e1a['query']=_[_0xfc94('0x32')](_0x34f62f[_0xfc94('0x31')]);_0x4d5e1a[_0xfc94('0x33')]=_['intersection'](_0x4d5e1a['model'],_0x4d5e1a[_0xfc94('0x31')]);_0x33e1d0[_0xfc94('0x34')]=_[_0xfc94('0x35')](_0x4d5e1a[_0xfc94('0x30')],qs[_0xfc94('0x36')](_0x34f62f['query'][_0xfc94('0x36')]));_0x33e1d0[_0xfc94('0x34')]=_0x33e1d0['attributes'][_0xfc94('0x37')]?_0x33e1d0[_0xfc94('0x34')]:_0x4d5e1a[_0xfc94('0x30')];_0x33e1d0[_0xfc94('0x38')]=qs[_0xfc94('0x39')](_0x34f62f['query'][_0xfc94('0x39')]);_0x33e1d0[_0xfc94('0x3a')]=qs[_0xfc94('0x33')](_[_0xfc94('0x3b')](_0x34f62f['query'],_0x4d5e1a['filters']));if(_0x34f62f[_0xfc94('0x31')][_0xfc94('0x3c')]){_0x33e1d0[_0xfc94('0x3a')]=_[_0xfc94('0x3e')](_0x33e1d0[_0xfc94('0x3a')],{'$or':_['map'](_0x33e1d0[_0xfc94('0x34')],function(_0x427ed5){var _0x1894c2={};_0x1894c2[_0x427ed5]={'$like':'%'+_0x34f62f['query']['filter']+'%'};return _0x1894c2;})});}_0x33e1d0=_['merge']({},_0x33e1d0,_0x34f62f[_0xfc94('0x3f')]);return _0x51e078[_0xfc94('0x4f')](_0x33e1d0);}})[_0xfc94('0x22')](function(_0xbe81cd){if(_0xbe81cd){_0x2ab311=_0xbe81cd[_0xfc94('0x37')];if(!_0x34f62f[_0xfc94('0x31')][_0xfc94('0x4b')](_0xfc94('0x4e'))){_0x33e1d0[_0xfc94('0x1c')]=qs[_0xfc94('0x1c')](_0x34f62f['query']['limit']);_0x33e1d0[_0xfc94('0x1b')]=qs['offset'](_0x34f62f[_0xfc94('0x31')][_0xfc94('0x1b')]);}return _0x51e078[_0xfc94('0x4f')](_0x33e1d0);}})[_0xfc94('0x22')](function(_0x2be52b){if(_0x2be52b){return _0x2be52b?{'count':_0x2ab311,'rows':_0x2be52b}:null;}})['then'](respondWithResult(_0x2cccbc,null))['catch'](handleError(_0x2cccbc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfed3=['bluebird','request-promise','rimraf','../../config/environment','./intZohoConfiguration.attributes','exports','define','../../config/logger','api'];(function(_0x5babc0,_0x13af2b){var _0x1a38b6=function(_0x47ace9){while(--_0x47ace9){_0x5babc0['push'](_0x5babc0['shift']());}};_0x1a38b6(++_0x13af2b);}(_0xfed3,0x15d));var _0x3fed=function(_0x33bcdb,_0x11846b){_0x33bcdb=_0x33bcdb-0x0;var _0x18a9bf=_0xfed3[_0x33bcdb];return _0x18a9bf;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x3fed('0x0'))(_0x3fed('0x1'));var moment=require('moment');var BPromise=require(_0x3fed('0x2'));var rp=require(_0x3fed('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3fed('0x4'));var config=require(_0x3fed('0x5'));var attributes=require(_0x3fed('0x6'));module[_0x3fed('0x7')]=function(_0x12703e,_0x43fe58){return _0x12703e[_0x3fed('0x8')]('ZohoConfiguration',attributes,{'tableName':'int_zoho_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8d1d=['request-promise','path','rimraf','../../config/environment','exports','define','ZohoConfiguration','int_zoho_configurations','../../config/logger','api','moment','bluebird'];(function(_0x4c3e64,_0x3989d5){var _0x3aa0e6=function(_0x54991e){while(--_0x54991e){_0x4c3e64['push'](_0x4c3e64['shift']());}};_0x3aa0e6(++_0x3989d5);}(_0x8d1d,0x164));var _0xd8d1=function(_0x29a1e7,_0x5171cc){_0x29a1e7=_0x29a1e7-0x0;var _0x3c6905=_0x8d1d[_0x29a1e7];return _0x3c6905;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xd8d1('0x0'))(_0xd8d1('0x1'));var moment=require(_0xd8d1('0x2'));var BPromise=require(_0xd8d1('0x3'));var rp=require(_0xd8d1('0x4'));var fs=require('fs');var path=require(_0xd8d1('0x5'));var rimraf=require(_0xd8d1('0x6'));var config=require(_0xd8d1('0x7'));var attributes=require('./intZohoConfiguration.attributes');module[_0xd8d1('0x8')]=function(_0x315106,_0x25a615){return _0x315106[_0xd8d1('0x9')](_0xd8d1('0xa'),attributes,{'tableName':_0xd8d1('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96b9=['result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','ZohoConfiguration,\x20%s,\x20%s','request\x20sent','debug','ZohoConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x33a573,_0x5e88b2){var _0xa8c4c0=function(_0x17fe11){while(--_0x17fe11){_0x33a573['push'](_0x33a573['shift']());}};_0xa8c4c0(++_0x5e88b2);}(_0x96b9,0x7f));var _0x996b=function(_0x4f9b2a,_0x16629f){_0x4f9b2a=_0x4f9b2a-0x0;var _0x334770=_0x96b9[_0x4f9b2a];return _0x334770;};'use strict';var _=require(_0x996b('0x0'));var util=require(_0x996b('0x1'));var moment=require(_0x996b('0x2'));var BPromise=require(_0x996b('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x996b('0x4'));var db=require(_0x996b('0x5'))['db'];var utils=require(_0x996b('0x6'));var logger=require(_0x996b('0x7'))(_0x996b('0x8'));var config=require(_0x996b('0x9'));var jayson=require(_0x996b('0xa'));var client=jayson[_0x996b('0xb')][_0x996b('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1e195d,_0x70902f,_0x330503){return new BPromise(function(_0x2e3e48,_0x39e917){return client['request'](_0x1e195d,_0x330503)[_0x996b('0xd')](function(_0x155375){logger[_0x996b('0xe')](_0x996b('0xf'),_0x70902f,_0x996b('0x10'));logger[_0x996b('0x11')](_0x996b('0x12'),_0x70902f,_0x996b('0x10'),JSON[_0x996b('0x13')](_0x155375));if(_0x155375[_0x996b('0x14')]){if(_0x155375[_0x996b('0x14')][_0x996b('0x15')]===0x1f4){logger[_0x996b('0x14')]('ZohoConfiguration,\x20%s,\x20%s',_0x70902f,_0x155375[_0x996b('0x14')][_0x996b('0x16')]);return _0x39e917(_0x155375['error'][_0x996b('0x16')]);}logger[_0x996b('0x14')]('ZohoConfiguration,\x20%s,\x20%s',_0x70902f,_0x155375[_0x996b('0x14')]['message']);return _0x2e3e48(_0x155375[_0x996b('0x14')][_0x996b('0x16')]);}else{logger['info'](_0x996b('0xf'),_0x70902f,_0x996b('0x10'));_0x2e3e48(_0x155375[_0x996b('0x17')][_0x996b('0x16')]);}})[_0x996b('0x18')](function(_0x223f9a){logger[_0x996b('0x14')](_0x996b('0xf'),_0x70902f,_0x223f9a);_0x39e917(_0x223f9a);});});}
\ No newline at end of file
+var _0x849a=['message','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','http','request','then','info','ZohoConfiguration,\x20%s,\x20%s','debug','ZohoConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code'];(function(_0x4ab1c4,_0x33269f){var _0x120eff=function(_0x1c9130){while(--_0x1c9130){_0x4ab1c4['push'](_0x4ab1c4['shift']());}};_0x120eff(++_0x33269f);}(_0x849a,0x8d));var _0xa849=function(_0x216ea4,_0x10708e){_0x216ea4=_0x216ea4-0x0;var _0xc493a7=_0x849a[_0x216ea4];return _0xc493a7;};'use strict';var _=require(_0xa849('0x0'));var util=require(_0xa849('0x1'));var moment=require('moment');var BPromise=require(_0xa849('0x2'));var rs=require(_0xa849('0x3'));var fs=require('fs');var Redis=require(_0xa849('0x4'));var db=require(_0xa849('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xa849('0x6'))('rpc');var config=require(_0xa849('0x7'));var jayson=require(_0xa849('0x8'));var client=jayson['client'][_0xa849('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5956f4,_0x69c9f6,_0xa301e4){return new BPromise(function(_0x5228de,_0x5c279c){return client[_0xa849('0xa')](_0x5956f4,_0xa301e4)[_0xa849('0xb')](function(_0x7a165e){logger[_0xa849('0xc')](_0xa849('0xd'),_0x69c9f6,'request\x20sent');logger[_0xa849('0xe')](_0xa849('0xf'),_0x69c9f6,_0xa849('0x10'),JSON[_0xa849('0x11')](_0x7a165e));if(_0x7a165e[_0xa849('0x12')]){if(_0x7a165e[_0xa849('0x12')][_0xa849('0x13')]===0x1f4){logger[_0xa849('0x12')](_0xa849('0xd'),_0x69c9f6,_0x7a165e['error']['message']);return _0x5c279c(_0x7a165e[_0xa849('0x12')][_0xa849('0x14')]);}logger[_0xa849('0x12')](_0xa849('0xd'),_0x69c9f6,_0x7a165e[_0xa849('0x12')][_0xa849('0x14')]);return _0x5228de(_0x7a165e[_0xa849('0x12')][_0xa849('0x14')]);}else{logger[_0xa849('0xc')](_0xa849('0xd'),_0x69c9f6,'request\x20sent');_0x5228de(_0x7a165e[_0xa849('0x15')][_0xa849('0x14')]);}})[_0xa849('0x16')](function(_0x224799){logger[_0xa849('0x12')](_0xa849('0xd'),_0x69c9f6,_0x224799);_0x5c279c(_0x224799);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab2c=['isAuthenticated','/:id','show','post','create','update','delete','destroy','exports','multer','path','connect-timeout','express','Router','../../config/environment','./intZohoField.controller','get'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0xab2c,0xa2));var _0xcab2=function(_0x4b8f4a,_0x30d9f6){_0x4b8f4a=_0x4b8f4a-0x0;var _0x3d84db=_0xab2c[_0x4b8f4a];return _0x3d84db;};'use strict';var multer=require(_0xcab2('0x0'));var util=require('util');var path=require(_0xcab2('0x1'));var timeout=require(_0xcab2('0x2'));var express=require(_0xcab2('0x3'));var router=express[_0xcab2('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xcab2('0x5'));var controller=require(_0xcab2('0x6'));router[_0xcab2('0x7')]('/',auth[_0xcab2('0x8')](),controller['index']);router['get'](_0xcab2('0x9'),auth[_0xcab2('0x8')](),controller[_0xcab2('0xa')]);router[_0xcab2('0xb')]('/',auth[_0xcab2('0x8')](),controller[_0xcab2('0xc')]);router['put']('/:id',auth[_0xcab2('0x8')](),controller[_0xcab2('0xd')]);router[_0xcab2('0xe')](_0xcab2('0x9'),auth['isAuthenticated'](),controller[_0xcab2('0xf')]);module[_0xcab2('0x10')]=router;
\ No newline at end of file
+var _0x7dda=['/:id','show','create','put','multer','util','connect-timeout','express','../../components/auth/service','../../config/environment','./intZohoField.controller','get','isAuthenticated','index'];(function(_0x106541,_0x372f73){var _0x175a49=function(_0x1add5c){while(--_0x1add5c){_0x106541['push'](_0x106541['shift']());}};_0x175a49(++_0x372f73);}(_0x7dda,0x66));var _0xa7dd=function(_0x998d64,_0x484196){_0x998d64=_0x998d64-0x0;var _0x58cc3a=_0x7dda[_0x998d64];return _0x58cc3a;};'use strict';var multer=require(_0xa7dd('0x0'));var util=require(_0xa7dd('0x1'));var path=require('path');var timeout=require(_0xa7dd('0x2'));var express=require(_0xa7dd('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xa7dd('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xa7dd('0x5'));var controller=require(_0xa7dd('0x6'));router[_0xa7dd('0x7')]('/',auth[_0xa7dd('0x8')](),controller[_0xa7dd('0x9')]);router[_0xa7dd('0x7')](_0xa7dd('0xa'),auth['isAuthenticated'](),controller[_0xa7dd('0xb')]);router['post']('/',auth[_0xa7dd('0x8')](),controller[_0xa7dd('0xc')]);router[_0xa7dd('0xd')](_0xa7dd('0xa'),auth[_0xa7dd('0x8')](),controller['update']);router['delete'](_0xa7dd('0xa'),auth[_0xa7dd('0x8')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x95d5=['BOOLEAN','sequelize','ENUM','string','variable','customVariable','picklist','STRING'];(function(_0x4a932b,_0x51d960){var _0x15f88f=function(_0x543248){while(--_0x543248){_0x4a932b['push'](_0x4a932b['shift']());}};_0x15f88f(++_0x51d960);}(_0x95d5,0x141));var _0x595d=function(_0x3cf150,_0x178cb5){_0x3cf150=_0x3cf150-0x0;var _0x931f8b=_0x95d5[_0x3cf150];return _0x931f8b;};'use strict';var Sequelize=require(_0x595d('0x0'));module['exports']={'type':{'type':Sequelize[_0x595d('0x1')](_0x595d('0x2'),_0x595d('0x3'),_0x595d('0x4'),'keyValue',_0x595d('0x5')),'defaultValue':_0x595d('0x2')},'content':{'type':Sequelize[_0x595d('0x6')]},'key':{'type':Sequelize[_0x595d('0x6')]},'keyType':{'type':Sequelize[_0x595d('0x1')](_0x595d('0x2'),_0x595d('0x3'),_0x595d('0x4'))},'keyContent':{'type':Sequelize[_0x595d('0x6')]},'idField':{'type':Sequelize[_0x595d('0x6')]},'nameField':{'type':Sequelize[_0x595d('0x6')]},'customField':{'type':Sequelize[_0x595d('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x595d('0x6')]}};
\ No newline at end of file
+var _0xecfd=['picklist','STRING','customVariable','BOOLEAN','exports','ENUM','string','variable'];(function(_0x48043a,_0x2b99c1){var _0x7d92d2=function(_0xe18174){while(--_0xe18174){_0x48043a['push'](_0x48043a['shift']());}};_0x7d92d2(++_0x2b99c1);}(_0xecfd,0xe4));var _0xdecf=function(_0x38fbf2,_0x2d12d3){_0x38fbf2=_0x38fbf2-0x0;var _0x1f7321=_0xecfd[_0x38fbf2];return _0x1f7321;};'use strict';var Sequelize=require('sequelize');module[_0xdecf('0x0')]={'type':{'type':Sequelize[_0xdecf('0x1')](_0xdecf('0x2'),_0xdecf('0x3'),'customVariable','keyValue',_0xdecf('0x4')),'defaultValue':_0xdecf('0x2')},'content':{'type':Sequelize[_0xdecf('0x5')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0xdecf('0x1')](_0xdecf('0x2'),_0xdecf('0x3'),_0xdecf('0x6'))},'keyContent':{'type':Sequelize[_0xdecf('0x5')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0xdecf('0x5')]},'customField':{'type':Sequelize[_0xdecf('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xdecf('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x566f=['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','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','ZohoField','fieldName','type','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','options','include','findAll','catch','show','params','rawAttributes','includeAll','merge','find','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce'];(function(_0x1533fa,_0x1a07d3){var _0x343ef8=function(_0x10d552){while(--_0x10d552){_0x1533fa['push'](_0x1533fa['shift']());}};_0x343ef8(++_0x1a07d3);}(_0x566f,0x124));var _0xf566=function(_0x4a9cc7,_0x17762a){_0x4a9cc7=_0x4a9cc7-0x0;var _0x55b9ba=_0x566f[_0x4a9cc7];return _0x55b9ba;};'use strict';var emlformat=require(_0xf566('0x0'));var rimraf=require(_0xf566('0x1'));var zipdir=require(_0xf566('0x2'));var jsonpatch=require(_0xf566('0x3'));var rp=require(_0xf566('0x4'));var moment=require(_0xf566('0x5'));var BPromise=require(_0xf566('0x6'));var Mustache=require(_0xf566('0x7'));var util=require('util');var path=require(_0xf566('0x8'));var sox=require(_0xf566('0x9'));var csv=require(_0xf566('0xa'));var ejs=require(_0xf566('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf566('0xc'));var squel=require(_0xf566('0xd'));var crypto=require(_0xf566('0xe'));var jsforce=require(_0xf566('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xf566('0xa'));var querystring=require('querystring');var Papa=require(_0xf566('0x10'));var Redis=require(_0xf566('0x11'));var authService=require(_0xf566('0x12'));var qs=require(_0xf566('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf566('0x14'));var logger=require(_0xf566('0x15'))(_0xf566('0x16'));var utils=require(_0xf566('0x17'));var config=require(_0xf566('0x18'));var licenseUtil=require(_0xf566('0x19'));var db=require(_0xf566('0x1a'))['db'];function respondWithStatusCode(_0x3f15a6,_0x5d6937){_0x5d6937=_0x5d6937||0xcc;return function(_0x1c1e09){if(_0x1c1e09){return _0x3f15a6[_0xf566('0x1b')](_0x5d6937);}return _0x3f15a6[_0xf566('0x1c')](_0x5d6937)[_0xf566('0x1d')]();};}function respondWithResult(_0x5acc16,_0x3ed87f){_0x3ed87f=_0x3ed87f||0xc8;return function(_0x591484){if(_0x591484){return _0x5acc16['status'](_0x3ed87f)[_0xf566('0x1e')](_0x591484);}};}function respondWithFilteredResult(_0x300133,_0x515128){return function(_0xc3f761){if(_0xc3f761){var _0x312f10=typeof _0x515128['offset']===_0xf566('0x1f')&&typeof _0x515128['limit']===_0xf566('0x1f');var _0x552275=_0xc3f761[_0xf566('0x20')];var _0xfb589a=_0x312f10?0x0:_0x515128['offset'];var _0x40a94b=_0x312f10?_0xc3f761[_0xf566('0x20')]:_0x515128[_0xf566('0x21')]+_0x515128[_0xf566('0x22')];var _0x53351c;if(_0x40a94b>=_0x552275){_0x40a94b=_0x552275;_0x53351c=0xc8;}else{_0x53351c=0xce;}_0x300133[_0xf566('0x1c')](_0x53351c);return _0x300133[_0xf566('0x23')](_0xf566('0x24'),_0xfb589a+'-'+_0x40a94b+'/'+_0x552275)['json'](_0xc3f761);}return null;};}function patchUpdates(_0x304f41){return function(_0x3fb236){try{jsonpatch[_0xf566('0x25')](_0x3fb236,_0x304f41,!![]);}catch(_0x17fc3b){return BPromise[_0xf566('0x26')](_0x17fc3b);}return _0x3fb236[_0xf566('0x27')]();};}function saveUpdates(_0x2ff105,_0x1cd9d3){return function(_0x2c216f){if(_0x2c216f){return _0x2c216f[_0xf566('0x28')](_0x2ff105)[_0xf566('0x29')](function(_0x4f2a3d){return _0x4f2a3d;});}return null;};}function removeEntity(_0x17e57b,_0x3ae555){return function(_0x54a2c8){if(_0x54a2c8){return _0x54a2c8[_0xf566('0x2a')]()[_0xf566('0x29')](function(){_0x17e57b[_0xf566('0x1c')](0xcc)[_0xf566('0x1d')]();});}};}function handleEntityNotFound(_0x100ad3,_0x11e997){return function(_0x2da964){if(!_0x2da964){_0x100ad3['sendStatus'](0x194);}return _0x2da964;};}function handleError(_0x5a4e95,_0xde2d8c){_0xde2d8c=_0xde2d8c||0x1f4;return function(_0x368fa0){logger[_0xf566('0x2b')](_0x368fa0[_0xf566('0x2c')]);if(_0x368fa0[_0xf566('0x2d')]){delete _0x368fa0[_0xf566('0x2d')];}_0x5a4e95['status'](_0xde2d8c)[_0xf566('0x2e')](_0x368fa0);};}exports[_0xf566('0x2f')]=function(_0x356acf,_0x47b559){var _0x431ebc={},_0xccbd29={},_0x4ee4b5={'count':0x0,'rows':[]};var _0x440308=_[_0xf566('0x30')](db[_0xf566('0x31')]['rawAttributes'],function(_0x44fbcc){return{'name':_0x44fbcc[_0xf566('0x32')],'type':_0x44fbcc[_0xf566('0x33')]['key']};});_0xccbd29[_0xf566('0x34')]=_[_0xf566('0x30')](_0x440308,'name');_0xccbd29['query']=_[_0xf566('0x35')](_0x356acf[_0xf566('0x36')]);_0xccbd29[_0xf566('0x37')]=_[_0xf566('0x38')](_0xccbd29[_0xf566('0x34')],_0xccbd29[_0xf566('0x36')]);_0x431ebc[_0xf566('0x39')]=_[_0xf566('0x38')](_0xccbd29[_0xf566('0x34')],qs[_0xf566('0x3a')](_0x356acf['query'][_0xf566('0x3a')]));_0x431ebc['attributes']=_0x431ebc[_0xf566('0x39')][_0xf566('0x3b')]?_0x431ebc[_0xf566('0x39')]:_0xccbd29[_0xf566('0x34')];if(!_0x356acf[_0xf566('0x36')][_0xf566('0x3c')](_0xf566('0x3d'))){_0x431ebc[_0xf566('0x22')]=qs[_0xf566('0x22')](_0x356acf[_0xf566('0x36')][_0xf566('0x22')]);_0x431ebc[_0xf566('0x21')]=qs[_0xf566('0x21')](_0x356acf[_0xf566('0x36')][_0xf566('0x21')]);}_0x431ebc[_0xf566('0x3e')]=qs[_0xf566('0x3f')](_0x356acf[_0xf566('0x36')][_0xf566('0x3f')]);_0x431ebc[_0xf566('0x40')]=qs[_0xf566('0x37')](_[_0xf566('0x41')](_0x356acf[_0xf566('0x36')],_0xccbd29['filters']),_0x440308);if(_0x356acf[_0xf566('0x36')]['filter']){_0x431ebc['where']=_['merge'](_0x431ebc[_0xf566('0x40')],{'$or':_['map'](_0x440308,function(_0x539967){if(_0x539967[_0xf566('0x33')]!=='VIRTUAL'){var _0x139cd0={};_0x139cd0[_0x539967['name']]={'$like':'%'+_0x356acf[_0xf566('0x36')]['filter']+'%'};return _0x139cd0;}})});}_0x431ebc=_['merge']({},_0x431ebc,_0x356acf[_0xf566('0x42')]);var _0x36c294={'where':_0x431ebc[_0xf566('0x40')]};return db['ZohoField'][_0xf566('0x20')](_0x36c294)['then'](function(_0x588e25){_0x4ee4b5[_0xf566('0x20')]=_0x588e25;if(_0x356acf[_0xf566('0x36')]['includeAll']){_0x431ebc[_0xf566('0x43')]=[{'all':!![]}];}return db[_0xf566('0x31')][_0xf566('0x44')](_0x431ebc);})[_0xf566('0x29')](function(_0x19fb20){_0x4ee4b5['rows']=_0x19fb20;return _0x4ee4b5;})['then'](respondWithFilteredResult(_0x47b559,_0x431ebc))[_0xf566('0x45')](handleError(_0x47b559,null));};exports[_0xf566('0x46')]=function(_0x3caabe,_0x22de73){var _0x52f18f={'raw':!![],'where':{'id':_0x3caabe[_0xf566('0x47')]['id']}},_0x2c1930={};_0x2c1930[_0xf566('0x34')]=_[_0xf566('0x35')](db[_0xf566('0x31')][_0xf566('0x48')]);_0x2c1930['query']=_[_0xf566('0x35')](_0x3caabe[_0xf566('0x36')]);_0x2c1930['filters']=_['intersection'](_0x2c1930['model'],_0x2c1930[_0xf566('0x36')]);_0x52f18f[_0xf566('0x39')]=_[_0xf566('0x38')](_0x2c1930[_0xf566('0x34')],qs[_0xf566('0x3a')](_0x3caabe[_0xf566('0x36')]['fields']));_0x52f18f[_0xf566('0x39')]=_0x52f18f['attributes'][_0xf566('0x3b')]?_0x52f18f['attributes']:_0x2c1930[_0xf566('0x34')];if(_0x3caabe[_0xf566('0x36')][_0xf566('0x49')]){_0x52f18f['include']=[{'all':!![]}];}_0x52f18f=_[_0xf566('0x4a')]({},_0x52f18f,_0x3caabe[_0xf566('0x42')]);return db['ZohoField'][_0xf566('0x4b')](_0x52f18f)[_0xf566('0x29')](handleEntityNotFound(_0x22de73,null))[_0xf566('0x29')](respondWithResult(_0x22de73,null))['catch'](handleError(_0x22de73,null));};exports['create']=function(_0x331c51,_0x5ca9ab){return db[_0xf566('0x31')]['create'](_0x331c51[_0xf566('0x4c')],{})[_0xf566('0x29')](respondWithResult(_0x5ca9ab,0xc9))['catch'](handleError(_0x5ca9ab,null));};exports[_0xf566('0x28')]=function(_0x4aa16f,_0x93730e){if(_0x4aa16f[_0xf566('0x4c')]['id']){delete _0x4aa16f[_0xf566('0x4c')]['id'];}return db[_0xf566('0x31')]['find']({'where':{'id':_0x4aa16f[_0xf566('0x47')]['id']}})[_0xf566('0x29')](handleEntityNotFound(_0x93730e,null))[_0xf566('0x29')](saveUpdates(_0x4aa16f[_0xf566('0x4c')],null))['then'](respondWithResult(_0x93730e,null))[_0xf566('0x45')](handleError(_0x93730e,null));};exports[_0xf566('0x2a')]=function(_0x253736,_0x4e4408){return db[_0xf566('0x31')][_0xf566('0x4b')]({'where':{'id':_0x253736[_0xf566('0x47')]['id']}})[_0xf566('0x29')](handleEntityNotFound(_0x4e4408,null))['then'](removeEntity(_0x4e4408,null))[_0xf566('0x45')](handleError(_0x4e4408,null));};
\ No newline at end of file
+var _0x82db=['../../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','ZohoField','rawAttributes','fieldName','type','key','query','filters','intersection','attributes','model','fields','length','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','create','body','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x212a37,_0xf35b2e){var _0x5d0bf9=function(_0x51850f){while(--_0x51850f){_0x212a37['push'](_0x212a37['shift']());}};_0x5d0bf9(++_0xf35b2e);}(_0x82db,0x128));var _0xb82d=function(_0x38fd74,_0x553301){_0x38fd74=_0x38fd74-0x0;var _0xd874=_0x82db[_0x38fd74];return _0xd874;};'use strict';var emlformat=require(_0xb82d('0x0'));var rimraf=require(_0xb82d('0x1'));var zipdir=require(_0xb82d('0x2'));var jsonpatch=require(_0xb82d('0x3'));var rp=require(_0xb82d('0x4'));var moment=require(_0xb82d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xb82d('0x6'));var util=require('util');var path=require('path');var sox=require(_0xb82d('0x7'));var csv=require(_0xb82d('0x8'));var ejs=require(_0xb82d('0x9'));var fs=require('fs');var fs_extra=require(_0xb82d('0xa'));var _=require(_0xb82d('0xb'));var squel=require(_0xb82d('0xc'));var crypto=require(_0xb82d('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xb82d('0xe'));var toCsv=require(_0xb82d('0x8'));var querystring=require(_0xb82d('0xf'));var Papa=require(_0xb82d('0x10'));var Redis=require('ioredis');var authService=require(_0xb82d('0x11'));var qs=require(_0xb82d('0x12'));var as=require(_0xb82d('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb82d('0x14'))(_0xb82d('0x15'));var utils=require(_0xb82d('0x16'));var config=require(_0xb82d('0x17'));var licenseUtil=require(_0xb82d('0x18'));var db=require(_0xb82d('0x19'))['db'];function respondWithStatusCode(_0x472d7b,_0xbdf888){_0xbdf888=_0xbdf888||0xcc;return function(_0x54a4ab){if(_0x54a4ab){return _0x472d7b[_0xb82d('0x1a')](_0xbdf888);}return _0x472d7b[_0xb82d('0x1b')](_0xbdf888)[_0xb82d('0x1c')]();};}function respondWithResult(_0x552d07,_0x473546){_0x473546=_0x473546||0xc8;return function(_0x5bc25c){if(_0x5bc25c){return _0x552d07['status'](_0x473546)[_0xb82d('0x1d')](_0x5bc25c);}};}function respondWithFilteredResult(_0x19d890,_0x59d175){return function(_0x41fd39){if(_0x41fd39){var _0x41555d=typeof _0x59d175[_0xb82d('0x1e')]===_0xb82d('0x1f')&&typeof _0x59d175[_0xb82d('0x20')]==='undefined';var _0x4788fb=_0x41fd39[_0xb82d('0x21')];var _0xbb3dae=_0x41555d?0x0:_0x59d175['offset'];var _0x3b423e=_0x41555d?_0x41fd39[_0xb82d('0x21')]:_0x59d175[_0xb82d('0x1e')]+_0x59d175['limit'];var _0x19629c;if(_0x3b423e>=_0x4788fb){_0x3b423e=_0x4788fb;_0x19629c=0xc8;}else{_0x19629c=0xce;}_0x19d890[_0xb82d('0x1b')](_0x19629c);return _0x19d890[_0xb82d('0x22')](_0xb82d('0x23'),_0xbb3dae+'-'+_0x3b423e+'/'+_0x4788fb)[_0xb82d('0x1d')](_0x41fd39);}return null;};}function patchUpdates(_0x1578f8){return function(_0x2f642a){try{jsonpatch[_0xb82d('0x24')](_0x2f642a,_0x1578f8,!![]);}catch(_0x29b028){return BPromise[_0xb82d('0x25')](_0x29b028);}return _0x2f642a[_0xb82d('0x26')]();};}function saveUpdates(_0x2bcea8,_0x35b81c){return function(_0x2826a6){if(_0x2826a6){return _0x2826a6[_0xb82d('0x27')](_0x2bcea8)[_0xb82d('0x28')](function(_0x18031b){return _0x18031b;});}return null;};}function removeEntity(_0x55eff7,_0x9fdb3d){return function(_0x2b3130){if(_0x2b3130){return _0x2b3130[_0xb82d('0x29')]()[_0xb82d('0x28')](function(){_0x55eff7[_0xb82d('0x1b')](0xcc)[_0xb82d('0x1c')]();});}};}function handleEntityNotFound(_0x5cc75c,_0xe70e22){return function(_0x2d8705){if(!_0x2d8705){_0x5cc75c[_0xb82d('0x1a')](0x194);}return _0x2d8705;};}function handleError(_0x5da3af,_0x393f99){_0x393f99=_0x393f99||0x1f4;return function(_0x34e131){logger['error'](_0x34e131[_0xb82d('0x2a')]);if(_0x34e131[_0xb82d('0x2b')]){delete _0x34e131[_0xb82d('0x2b')];}_0x5da3af[_0xb82d('0x1b')](_0x393f99)[_0xb82d('0x2c')](_0x34e131);};}exports[_0xb82d('0x2d')]=function(_0x5f742c,_0x43d927){var _0x56b9c0={},_0x99d587={},_0x326af1={'count':0x0,'rows':[]};var _0x510c26=_[_0xb82d('0x2e')](db[_0xb82d('0x2f')][_0xb82d('0x30')],function(_0x22214e){return{'name':_0x22214e[_0xb82d('0x31')],'type':_0x22214e[_0xb82d('0x32')][_0xb82d('0x33')]};});_0x99d587['model']=_[_0xb82d('0x2e')](_0x510c26,_0xb82d('0x2b'));_0x99d587[_0xb82d('0x34')]=_['keys'](_0x5f742c[_0xb82d('0x34')]);_0x99d587[_0xb82d('0x35')]=_[_0xb82d('0x36')](_0x99d587['model'],_0x99d587[_0xb82d('0x34')]);_0x56b9c0[_0xb82d('0x37')]=_['intersection'](_0x99d587[_0xb82d('0x38')],qs[_0xb82d('0x39')](_0x5f742c[_0xb82d('0x34')][_0xb82d('0x39')]));_0x56b9c0[_0xb82d('0x37')]=_0x56b9c0[_0xb82d('0x37')][_0xb82d('0x3a')]?_0x56b9c0[_0xb82d('0x37')]:_0x99d587[_0xb82d('0x38')];if(!_0x5f742c[_0xb82d('0x34')]['hasOwnProperty'](_0xb82d('0x3b'))){_0x56b9c0[_0xb82d('0x20')]=qs['limit'](_0x5f742c[_0xb82d('0x34')][_0xb82d('0x20')]);_0x56b9c0['offset']=qs[_0xb82d('0x1e')](_0x5f742c[_0xb82d('0x34')][_0xb82d('0x1e')]);}_0x56b9c0[_0xb82d('0x3c')]=qs[_0xb82d('0x3d')](_0x5f742c[_0xb82d('0x34')][_0xb82d('0x3d')]);_0x56b9c0['where']=qs['filters'](_[_0xb82d('0x3e')](_0x5f742c[_0xb82d('0x34')],_0x99d587[_0xb82d('0x35')]),_0x510c26);if(_0x5f742c['query'][_0xb82d('0x3f')]){_0x56b9c0[_0xb82d('0x40')]=_[_0xb82d('0x41')](_0x56b9c0[_0xb82d('0x40')],{'$or':_['map'](_0x510c26,function(_0x39fba3){if(_0x39fba3[_0xb82d('0x32')]!==_0xb82d('0x42')){var _0xcfe24={};_0xcfe24[_0x39fba3['name']]={'$like':'%'+_0x5f742c[_0xb82d('0x34')][_0xb82d('0x3f')]+'%'};return _0xcfe24;}})});}_0x56b9c0=_[_0xb82d('0x41')]({},_0x56b9c0,_0x5f742c[_0xb82d('0x43')]);var _0x8efbd0={'where':_0x56b9c0[_0xb82d('0x40')]};return db[_0xb82d('0x2f')][_0xb82d('0x21')](_0x8efbd0)['then'](function(_0x3d4692){_0x326af1[_0xb82d('0x21')]=_0x3d4692;if(_0x5f742c['query'][_0xb82d('0x44')]){_0x56b9c0[_0xb82d('0x45')]=[{'all':!![]}];}return db[_0xb82d('0x2f')][_0xb82d('0x46')](_0x56b9c0);})[_0xb82d('0x28')](function(_0x569611){_0x326af1[_0xb82d('0x47')]=_0x569611;return _0x326af1;})[_0xb82d('0x28')](respondWithFilteredResult(_0x43d927,_0x56b9c0))[_0xb82d('0x48')](handleError(_0x43d927,null));};exports[_0xb82d('0x49')]=function(_0x4d616c,_0x2f59d2){var _0x58727a={'raw':!![],'where':{'id':_0x4d616c[_0xb82d('0x4a')]['id']}},_0x14360d={};_0x14360d[_0xb82d('0x38')]=_['keys'](db[_0xb82d('0x2f')][_0xb82d('0x30')]);_0x14360d[_0xb82d('0x34')]=_[_0xb82d('0x4b')](_0x4d616c[_0xb82d('0x34')]);_0x14360d[_0xb82d('0x35')]=_[_0xb82d('0x36')](_0x14360d[_0xb82d('0x38')],_0x14360d[_0xb82d('0x34')]);_0x58727a['attributes']=_[_0xb82d('0x36')](_0x14360d['model'],qs[_0xb82d('0x39')](_0x4d616c[_0xb82d('0x34')]['fields']));_0x58727a[_0xb82d('0x37')]=_0x58727a['attributes'][_0xb82d('0x3a')]?_0x58727a['attributes']:_0x14360d[_0xb82d('0x38')];if(_0x4d616c['query']['includeAll']){_0x58727a['include']=[{'all':!![]}];}_0x58727a=_[_0xb82d('0x41')]({},_0x58727a,_0x4d616c[_0xb82d('0x43')]);return db[_0xb82d('0x2f')]['find'](_0x58727a)['then'](handleEntityNotFound(_0x2f59d2,null))[_0xb82d('0x28')](respondWithResult(_0x2f59d2,null))[_0xb82d('0x48')](handleError(_0x2f59d2,null));};exports[_0xb82d('0x4c')]=function(_0x510787,_0x3a7380){return db[_0xb82d('0x2f')][_0xb82d('0x4c')](_0x510787[_0xb82d('0x4d')],{})[_0xb82d('0x28')](respondWithResult(_0x3a7380,0xc9))[_0xb82d('0x48')](handleError(_0x3a7380,null));};exports[_0xb82d('0x27')]=function(_0x37bb8e,_0x2d4514){if(_0x37bb8e[_0xb82d('0x4d')]['id']){delete _0x37bb8e[_0xb82d('0x4d')]['id'];}return db['ZohoField'][_0xb82d('0x4e')]({'where':{'id':_0x37bb8e['params']['id']}})[_0xb82d('0x28')](handleEntityNotFound(_0x2d4514,null))[_0xb82d('0x28')](saveUpdates(_0x37bb8e[_0xb82d('0x4d')],null))[_0xb82d('0x28')](respondWithResult(_0x2d4514,null))[_0xb82d('0x48')](handleError(_0x2d4514,null));};exports['destroy']=function(_0x44cb3b,_0x3e5ef8){return db[_0xb82d('0x2f')][_0xb82d('0x4e')]({'where':{'id':_0x44cb3b[_0xb82d('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3e5ef8,null))[_0xb82d('0x28')](removeEntity(_0x3e5ef8,null))[_0xb82d('0x48')](handleError(_0x3e5ef8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb44a=['define','ZohoField','int_zoho_fields','zoho_unique_index','idField','FieldId','../../config/logger','moment','path','../../config/environment','./intZohoField.attributes','exports'];(function(_0x330216,_0x421549){var _0x309ed8=function(_0x1f5466){while(--_0x1f5466){_0x330216['push'](_0x330216['shift']());}};_0x309ed8(++_0x421549);}(_0xb44a,0x1c2));var _0xab44=function(_0x1a6007,_0x350755){_0x1a6007=_0x1a6007-0x0;var _0x120665=_0xb44a[_0x1a6007];return _0x120665;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xab44('0x0'))('api');var moment=require(_0xab44('0x1'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xab44('0x2'));var rimraf=require('rimraf');var config=require(_0xab44('0x3'));var attributes=require(_0xab44('0x4'));module[_0xab44('0x5')]=function(_0x28681a,_0x2f3948){return _0x28681a[_0xab44('0x6')](_0xab44('0x7'),attributes,{'tableName':_0xab44('0x8'),'paranoid':![],'indexes':[{'name':_0xab44('0x9'),'fields':[_0xab44('0xa'),_0xab44('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x958a=['moment','bluebird','request-promise','path','../../config/environment','exports','define','ZohoField','int_zoho_fields','zoho_unique_index','lodash','util','api'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x958a,0x128));var _0xa958=function(_0x377a07,_0x5bd351){_0x377a07=_0x377a07-0x0;var _0x39aefd=_0x958a[_0x377a07];return _0x39aefd;};'use strict';var _=require(_0xa958('0x0'));var util=require(_0xa958('0x1'));var logger=require('../../config/logger')(_0xa958('0x2'));var moment=require(_0xa958('0x3'));var BPromise=require(_0xa958('0x4'));var rp=require(_0xa958('0x5'));var fs=require('fs');var path=require(_0xa958('0x6'));var rimraf=require('rimraf');var config=require(_0xa958('0x7'));var attributes=require('./intZohoField.attributes');module[_0xa958('0x8')]=function(_0x9b7d9e,_0x2692d6){return _0x9b7d9e[_0xa958('0x9')](_0xa958('0xa'),attributes,{'tableName':_0xa958('0xb'),'paranoid':![],'indexes':[{'name':_0xa958('0xc'),'fields':['idField','FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcfdc=['../../mysqldb','../../config/utils','rpc','jayson/promise','http','request','then','info','ZohoField,\x20%s,\x20%s','request\x20sent','debug','ZohoField,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x3b016b,_0x6d4ddd){var _0x34ca82=function(_0x3424f5){while(--_0x3424f5){_0x3b016b['push'](_0x3b016b['shift']());}};_0x34ca82(++_0x6d4ddd);}(_0xcfdc,0x94));var _0xccfd=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xcfdc[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0xccfd('0x0'));var util=require(_0xccfd('0x1'));var moment=require(_0xccfd('0x2'));var BPromise=require(_0xccfd('0x3'));var rs=require(_0xccfd('0x4'));var fs=require('fs');var Redis=require(_0xccfd('0x5'));var db=require(_0xccfd('0x6'))['db'];var utils=require(_0xccfd('0x7'));var logger=require('../../config/logger')(_0xccfd('0x8'));var config=require('../../config/environment');var jayson=require(_0xccfd('0x9'));var client=jayson['client'][_0xccfd('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4be743,_0xb321cf,_0x52ace6){return new BPromise(function(_0x20f679,_0x57bfd4){return client[_0xccfd('0xb')](_0x4be743,_0x52ace6)[_0xccfd('0xc')](function(_0x3a9e36){logger[_0xccfd('0xd')](_0xccfd('0xe'),_0xb321cf,_0xccfd('0xf'));logger[_0xccfd('0x10')](_0xccfd('0x11'),_0xb321cf,_0xccfd('0xf'),JSON[_0xccfd('0x12')](_0x3a9e36));if(_0x3a9e36['error']){if(_0x3a9e36['error']['code']===0x1f4){logger[_0xccfd('0x13')](_0xccfd('0xe'),_0xb321cf,_0x3a9e36[_0xccfd('0x13')]['message']);return _0x57bfd4(_0x3a9e36[_0xccfd('0x13')]['message']);}logger[_0xccfd('0x13')](_0xccfd('0xe'),_0xb321cf,_0x3a9e36['error']['message']);return _0x20f679(_0x3a9e36[_0xccfd('0x13')][_0xccfd('0x14')]);}else{logger[_0xccfd('0xd')](_0xccfd('0xe'),_0xb321cf,_0xccfd('0xf'));_0x20f679(_0x3a9e36['result'][_0xccfd('0x14')]);}})[_0xccfd('0x15')](function(_0x5ae75a){logger['error'](_0xccfd('0xe'),_0xb321cf,_0x5ae75a);_0x57bfd4(_0x5ae75a);});});}
\ No newline at end of file
+var _0x5a1b=['catch','util','moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','http','request','then','info','ZohoField,\x20%s,\x20%s','request\x20sent','debug','ZohoField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result'];(function(_0x4db792,_0xb36ada){var _0x316a31=function(_0x289187){while(--_0x289187){_0x4db792['push'](_0x4db792['shift']());}};_0x316a31(++_0xb36ada);}(_0x5a1b,0x112));var _0xb5a1=function(_0x5195fb,_0x20afce){_0x5195fb=_0x5195fb-0x0;var _0x30aaaa=_0x5a1b[_0x5195fb];return _0x30aaaa;};'use strict';var _=require('lodash');var util=require(_0xb5a1('0x0'));var moment=require(_0xb5a1('0x1'));var BPromise=require('bluebird');var rs=require(_0xb5a1('0x2'));var fs=require('fs');var Redis=require(_0xb5a1('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xb5a1('0x4'))(_0xb5a1('0x5'));var config=require(_0xb5a1('0x6'));var jayson=require('jayson/promise');var client=jayson['client'][_0xb5a1('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x5ea827,_0x6c4a5f,_0x4eb23e){return new BPromise(function(_0x20f973,_0x470f13){return client[_0xb5a1('0x8')](_0x5ea827,_0x4eb23e)[_0xb5a1('0x9')](function(_0x3385b4){logger[_0xb5a1('0xa')](_0xb5a1('0xb'),_0x6c4a5f,_0xb5a1('0xc'));logger[_0xb5a1('0xd')](_0xb5a1('0xe'),_0x6c4a5f,_0xb5a1('0xc'),JSON[_0xb5a1('0xf')](_0x3385b4));if(_0x3385b4[_0xb5a1('0x10')]){if(_0x3385b4[_0xb5a1('0x10')][_0xb5a1('0x11')]===0x1f4){logger['error'](_0xb5a1('0xb'),_0x6c4a5f,_0x3385b4[_0xb5a1('0x10')][_0xb5a1('0x12')]);return _0x470f13(_0x3385b4[_0xb5a1('0x10')][_0xb5a1('0x12')]);}logger[_0xb5a1('0x10')](_0xb5a1('0xb'),_0x6c4a5f,_0x3385b4['error'][_0xb5a1('0x12')]);return _0x20f973(_0x3385b4['error']['message']);}else{logger[_0xb5a1('0xa')]('ZohoField,\x20%s,\x20%s',_0x6c4a5f,_0xb5a1('0xc'));_0x20f973(_0x3385b4[_0xb5a1('0x13')][_0xb5a1('0x12')]);}})[_0xb5a1('0x14')](function(_0x5765ed){logger['error'](_0xb5a1('0xb'),_0x6c4a5f,_0x5765ed);_0x470f13(_0x5765ed);});});}
\ 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(_0x3fbdc1,_0xa542a7){var _0x566b7c=function(_0x43f7b1){while(--_0x43f7b1){_0x3fbdc1['push'](_0x3fbdc1['shift']());}};_0x566b7c(++_0xa542a7);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x382e89,_0x4768c0){_0x382e89=_0x382e89-0x0;var _0x3a1318=_0xcb91[_0x382e89];return _0x3a1318;};'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 _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0x1abbaa,_0x1b7a38){var _0x40ed52=function(_0x44858f){while(--_0x44858f){_0x1abbaa['push'](_0x1abbaa['shift']());}};_0x40ed52(++_0x1b7a38);}(_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 _0x46a2=['sequelize','exports','STRING','app.js','INTEGER'];(function(_0x3a369b,_0x1faf1d){var _0xd319c=function(_0x928f03){while(--_0x928f03){_0x3a369b['push'](_0x3a369b['shift']());}};_0xd319c(++_0x1faf1d);}(_0x46a2,0xfa));var _0x246a=function(_0xe0b81f,_0x1fb734){_0xe0b81f=_0xe0b81f-0x0;var _0x290e5e=_0x46a2[_0xe0b81f];return _0x290e5e;};'use strict';var Sequelize=require(_0x246a('0x0'));module[_0x246a('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'unique_name_and_version'},'version':{'type':Sequelize[_0x246a('0x2')],'allowNull':![],'unique':'unique_name_and_version'},'main':{'type':Sequelize['STRING'],'defaultValue':_0x246a('0x3')},'filename':{'type':Sequelize[_0x246a('0x2')]},'path':{'type':Sequelize[_0x246a('0x2')]},'type':{'type':Sequelize[_0x246a('0x2')]},'size':{'type':Sequelize[_0x246a('0x4')]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'author':{'type':Sequelize['STRING']},'logo':{'type':Sequelize[_0x246a('0x2')]},'state':{'type':Sequelize['STRING'],'unique':'state'},'description':{'type':Sequelize[_0x246a('0x2')]},'title':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize['STRING']},'link':{'type':Sequelize[_0x246a('0x2')],'defaultValue':'#'}};
\ No newline at end of file
+var _0x82fa=['app.js','INTEGER','BOOLEAN','state','sequelize','exports','STRING','unique_name_and_version'];(function(_0x4a6a60,_0xa39ceb){var _0x3a5119=function(_0x198804){while(--_0x198804){_0x4a6a60['push'](_0x4a6a60['shift']());}};_0x3a5119(++_0xa39ceb);}(_0x82fa,0x1cc));var _0xa82f=function(_0x1cee3,_0x9f53af){_0x1cee3=_0x1cee3-0x0;var _0x2198ef=_0x82fa[_0x1cee3];return _0x2198ef;};'use strict';var Sequelize=require(_0xa82f('0x0'));module[_0xa82f('0x1')]={'name':{'type':Sequelize[_0xa82f('0x2')],'allowNull':![],'unique':_0xa82f('0x3')},'version':{'type':Sequelize['STRING'],'allowNull':![],'unique':'unique_name_and_version'},'main':{'type':Sequelize['STRING'],'defaultValue':_0xa82f('0x4')},'filename':{'type':Sequelize[_0xa82f('0x2')]},'path':{'type':Sequelize[_0xa82f('0x2')]},'type':{'type':Sequelize[_0xa82f('0x2')]},'size':{'type':Sequelize[_0xa82f('0x5')]},'active':{'type':Sequelize[_0xa82f('0x6')],'defaultValue':![]},'author':{'type':Sequelize[_0xa82f('0x2')]},'logo':{'type':Sequelize[_0xa82f('0x2')]},'state':{'type':Sequelize[_0xa82f('0x2')],'unique':_0xa82f('0x7')},'description':{'type':Sequelize[_0xa82f('0x2')]},'title':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize['STRING']},'link':{'type':Sequelize[_0xa82f('0x2')],'defaultValue':'#'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf61e=['intersection','fields','attributes','length','hasOwnProperty','order','where','filter','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','find','create','update','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','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','end','json','offset','undefined','count','limit','set','Content-Range','apply','destroy','then','status','error','stack','name','send','index','map','Integration','rawAttributes','key','model','query','keys','filters'];(function(_0x319a03,_0x4456d4){var _0x3b6704=function(_0x1f3476){while(--_0x1f3476){_0x319a03['push'](_0x319a03['shift']());}};_0x3b6704(++_0x4456d4);}(_0xf61e,0x191));var _0xef61=function(_0x2de6fe,_0x1e1e10){_0x2de6fe=_0x2de6fe-0x0;var _0x3c2dde=_0xf61e[_0x2de6fe];return _0x3c2dde;};'use strict';var emlformat=require(_0xef61('0x0'));var rimraf=require(_0xef61('0x1'));var zipdir=require(_0xef61('0x2'));var jsonpatch=require(_0xef61('0x3'));var rp=require(_0xef61('0x4'));var moment=require(_0xef61('0x5'));var BPromise=require(_0xef61('0x6'));var Mustache=require(_0xef61('0x7'));var util=require(_0xef61('0x8'));var path=require(_0xef61('0x9'));var sox=require(_0xef61('0xa'));var csv=require(_0xef61('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xef61('0xc'));var _=require(_0xef61('0xd'));var squel=require('squel');var crypto=require(_0xef61('0xe'));var jsforce=require(_0xef61('0xf'));var deskjs=require(_0xef61('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xef61('0x11'));var Redis=require(_0xef61('0x12'));var authService=require(_0xef61('0x13'));var qs=require(_0xef61('0x14'));var as=require(_0xef61('0x15'));var hardwareService=require(_0xef61('0x16'));var logger=require(_0xef61('0x17'))(_0xef61('0x18'));var utils=require(_0xef61('0x19'));var config=require(_0xef61('0x1a'));var licenseUtil=require(_0xef61('0x1b'));var db=require(_0xef61('0x1c'))['db'];function respondWithStatusCode(_0x114e1f,_0x318f1c){_0x318f1c=_0x318f1c||0xcc;return function(_0x5de159){if(_0x5de159){return _0x114e1f[_0xef61('0x1d')](_0x318f1c);}return _0x114e1f['status'](_0x318f1c)[_0xef61('0x1e')]();};}function respondWithResult(_0x1db2a9,_0x370ee0){_0x370ee0=_0x370ee0||0xc8;return function(_0x76ef9b){if(_0x76ef9b){return _0x1db2a9['status'](_0x370ee0)[_0xef61('0x1f')](_0x76ef9b);}};}function respondWithFilteredResult(_0x435beb,_0x1224c2){return function(_0x78ff22){if(_0x78ff22){var _0x588a61=typeof _0x1224c2[_0xef61('0x20')]===_0xef61('0x21')&&typeof _0x1224c2['limit']===_0xef61('0x21');var _0x408541=_0x78ff22[_0xef61('0x22')];var _0x22dc1b=_0x588a61?0x0:_0x1224c2[_0xef61('0x20')];var _0x28315a=_0x588a61?_0x78ff22[_0xef61('0x22')]:_0x1224c2['offset']+_0x1224c2[_0xef61('0x23')];var _0x2c8dad;if(_0x28315a>=_0x408541){_0x28315a=_0x408541;_0x2c8dad=0xc8;}else{_0x2c8dad=0xce;}_0x435beb['status'](_0x2c8dad);return _0x435beb[_0xef61('0x24')](_0xef61('0x25'),_0x22dc1b+'-'+_0x28315a+'/'+_0x408541)[_0xef61('0x1f')](_0x78ff22);}return null;};}function patchUpdates(_0x26cf42){return function(_0xb0d7a4){try{jsonpatch[_0xef61('0x26')](_0xb0d7a4,_0x26cf42,!![]);}catch(_0x92ea33){return BPromise['reject'](_0x92ea33);}return _0xb0d7a4['save']();};}function saveUpdates(_0x3d31c1,_0x58bd7d){return function(_0x389d6d){if(_0x389d6d){return _0x389d6d['update'](_0x3d31c1)['then'](function(_0x2f0569){return _0x2f0569;});}return null;};}function removeEntity(_0x5ce99d,_0x53181b){return function(_0xfbee94){if(_0xfbee94){return _0xfbee94[_0xef61('0x27')]()[_0xef61('0x28')](function(){_0x5ce99d[_0xef61('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0x16b144,_0x4e738f){return function(_0x2a6832){if(!_0x2a6832){_0x16b144[_0xef61('0x1d')](0x194);}return _0x2a6832;};}function handleError(_0x2419a9,_0xf4c7c9){_0xf4c7c9=_0xf4c7c9||0x1f4;return function(_0x2155f1){logger[_0xef61('0x2a')](_0x2155f1[_0xef61('0x2b')]);if(_0x2155f1[_0xef61('0x2c')]){delete _0x2155f1[_0xef61('0x2c')];}_0x2419a9[_0xef61('0x29')](_0xf4c7c9)[_0xef61('0x2d')](_0x2155f1);};}exports[_0xef61('0x2e')]=function(_0xeb9a62,_0x63edd4){var _0x1f3572={},_0x85978={},_0x39c15e={'count':0x0,'rows':[]};var _0x393ea9=_[_0xef61('0x2f')](db[_0xef61('0x30')][_0xef61('0x31')],function(_0x53fa3b){return{'name':_0x53fa3b['fieldName'],'type':_0x53fa3b['type'][_0xef61('0x32')]};});_0x85978[_0xef61('0x33')]=_[_0xef61('0x2f')](_0x393ea9,'name');_0x85978[_0xef61('0x34')]=_[_0xef61('0x35')](_0xeb9a62['query']);_0x85978[_0xef61('0x36')]=_['intersection'](_0x85978['model'],_0x85978[_0xef61('0x34')]);_0x1f3572['attributes']=_[_0xef61('0x37')](_0x85978['model'],qs[_0xef61('0x38')](_0xeb9a62[_0xef61('0x34')][_0xef61('0x38')]));_0x1f3572[_0xef61('0x39')]=_0x1f3572[_0xef61('0x39')][_0xef61('0x3a')]?_0x1f3572[_0xef61('0x39')]:_0x85978[_0xef61('0x33')];if(!_0xeb9a62[_0xef61('0x34')][_0xef61('0x3b')]('nolimit')){_0x1f3572[_0xef61('0x23')]=qs[_0xef61('0x23')](_0xeb9a62[_0xef61('0x34')][_0xef61('0x23')]);_0x1f3572[_0xef61('0x20')]=qs['offset'](_0xeb9a62[_0xef61('0x34')][_0xef61('0x20')]);}_0x1f3572[_0xef61('0x3c')]=qs['sort'](_0xeb9a62['query']['sort']);_0x1f3572[_0xef61('0x3d')]=qs['filters'](_['pick'](_0xeb9a62['query'],_0x85978[_0xef61('0x36')]),_0x393ea9);if(_0xeb9a62[_0xef61('0x34')][_0xef61('0x3e')]){_0x1f3572['where']=_['merge'](_0x1f3572['where'],{'$or':_[_0xef61('0x2f')](_0x393ea9,function(_0x32ad44){if(_0x32ad44['type']!==_0xef61('0x3f')){var _0x12f442={};_0x12f442[_0x32ad44[_0xef61('0x2c')]]={'$like':'%'+_0xeb9a62[_0xef61('0x34')]['filter']+'%'};return _0x12f442;}})});}_0x1f3572=_[_0xef61('0x40')]({},_0x1f3572,_0xeb9a62[_0xef61('0x41')]);var _0x3103d4={'where':_0x1f3572[_0xef61('0x3d')]};return db['Integration']['count'](_0x3103d4)[_0xef61('0x28')](function(_0x462972){_0x39c15e[_0xef61('0x22')]=_0x462972;if(_0xeb9a62['query'][_0xef61('0x42')]){_0x1f3572[_0xef61('0x43')]=[{'all':!![]}];}return db[_0xef61('0x30')][_0xef61('0x44')](_0x1f3572);})['then'](function(_0x545597){_0x39c15e['rows']=_0x545597;return _0x39c15e;})[_0xef61('0x28')](respondWithFilteredResult(_0x63edd4,_0x1f3572))[_0xef61('0x45')](handleError(_0x63edd4,null));};exports[_0xef61('0x46')]=function(_0xe40d,_0x3f81a1){var _0x272143={'raw':![],'where':{'id':_0xe40d['params']['id']}},_0xc9b467={};_0xc9b467[_0xef61('0x33')]=_[_0xef61('0x35')](db[_0xef61('0x30')][_0xef61('0x31')]);_0xc9b467['query']=_[_0xef61('0x35')](_0xe40d[_0xef61('0x34')]);_0xc9b467[_0xef61('0x36')]=_[_0xef61('0x37')](_0xc9b467[_0xef61('0x33')],_0xc9b467[_0xef61('0x34')]);_0x272143['attributes']=_[_0xef61('0x37')](_0xc9b467[_0xef61('0x33')],qs[_0xef61('0x38')](_0xe40d['query'][_0xef61('0x38')]));_0x272143[_0xef61('0x39')]=_0x272143[_0xef61('0x39')][_0xef61('0x3a')]?_0x272143[_0xef61('0x39')]:_0xc9b467[_0xef61('0x33')];if(_0xe40d['query'][_0xef61('0x42')]){_0x272143[_0xef61('0x43')]=[{'all':!![]}];}_0x272143=_['merge']({},_0x272143,_0xe40d[_0xef61('0x41')]);return db[_0xef61('0x30')][_0xef61('0x47')](_0x272143)[_0xef61('0x28')](handleEntityNotFound(_0x3f81a1,null))['then'](respondWithResult(_0x3f81a1,null))[_0xef61('0x45')](handleError(_0x3f81a1,null));};exports[_0xef61('0x48')]=function(_0x5e614b,_0x47b09d){return db[_0xef61('0x30')][_0xef61('0x48')](_0x5e614b['body'],{})[_0xef61('0x28')](respondWithResult(_0x47b09d,0xc9))[_0xef61('0x45')](handleError(_0x47b09d,null));};exports[_0xef61('0x49')]=function(_0x2904e0,_0x13bb20){if(_0x2904e0[_0xef61('0x4a')]['id']){delete _0x2904e0[_0xef61('0x4a')]['id'];}return db['Integration'][_0xef61('0x47')]({'where':{'id':_0x2904e0['params']['id']}})[_0xef61('0x28')](handleEntityNotFound(_0x13bb20,null))[_0xef61('0x28')](saveUpdates(_0x2904e0[_0xef61('0x4a')],null))[_0xef61('0x28')](respondWithResult(_0x13bb20,null))[_0xef61('0x45')](handleError(_0x13bb20,null));};exports[_0xef61('0x27')]=function(_0x3e23eb,_0x1565c7){return db[_0xef61('0x30')]['find']({'where':{'id':_0x3e23eb[_0xef61('0x4b')]['id']}})[_0xef61('0x28')](handleEntityNotFound(_0x1565c7,null))['then'](removeEntity(_0x1565c7,null))['catch'](handleError(_0x1565c7,null));};
\ No newline at end of file
+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(_0x2b2874,_0x34a817){var _0x586a31=function(_0x46f14b){while(--_0x46f14b){_0x2b2874['push'](_0x2b2874['shift']());}};_0x586a31(++_0x34a817);}(_0xd117,0x182));var _0x7d11=function(_0x64a51,_0x1c61b7){_0x64a51=_0x64a51-0x0;var _0x1eba45=_0xd117[_0x64a51];return _0x1eba45;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb01e=['api','request-promise','../../config/environment','./integration.attributes','exports','define','Integration','integrations','lodash','util'];(function(_0x55695d,_0x155f5e){var _0xf353bf=function(_0x4ac0d3){while(--_0x4ac0d3){_0x55695d['push'](_0x55695d['shift']());}};_0xf353bf(++_0x155f5e);}(_0xb01e,0x1b6));var _0xeb01=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0xb01e[_0x491a7f];return _0x3d8f44;};'use strict';var _=require(_0xeb01('0x0'));var util=require(_0xeb01('0x1'));var logger=require('../../config/logger')(_0xeb01('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xeb01('0x3'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xeb01('0x4'));var attributes=require(_0xeb01('0x5'));module[_0xeb01('0x6')]=function(_0x5b5aab,_0x1822da){return _0x5b5aab[_0xeb01('0x7')](_0xeb01('0x8'),attributes,{'tableName':_0xeb01('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xdf7d=['path','rimraf','../../config/environment','./integration.attributes','define','Integration','integrations','util','../../config/logger','moment','request-promise'];(function(_0x186b1a,_0x4a5eb9){var _0x5e05a7=function(_0x21ef23){while(--_0x21ef23){_0x186b1a['push'](_0x186b1a['shift']());}};_0x5e05a7(++_0x4a5eb9);}(_0xdf7d,0x193));var _0xddf7=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xdf7d[_0x2641f9];return _0x585741;};'use strict';var _=require('lodash');var util=require(_0xddf7('0x0'));var logger=require(_0xddf7('0x1'))('api');var moment=require(_0xddf7('0x2'));var BPromise=require('bluebird');var rp=require(_0xddf7('0x3'));var fs=require('fs');var path=require(_0xddf7('0x4'));var rimraf=require(_0xddf7('0x5'));var config=require(_0xddf7('0x6'));var attributes=require(_0xddf7('0x7'));module['exports']=function(_0x1099c3,_0x180736){return _0x1099c3[_0xddf7('0x8')](_0xddf7('0x9'),attributes,{'tableName':_0xddf7('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6ac=['http','request','then','info','Integration,\x20%s,\x20%s','debug','Integration,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x3542b1,_0x32a3ed){var _0x27f199=function(_0x3a9408){while(--_0x3a9408){_0x3542b1['push'](_0x3542b1['shift']());}};_0x27f199(++_0x32a3ed);}(_0xc6ac,0x15b));var _0xcc6a=function(_0x4c4be8,_0x4e7a5c){_0x4c4be8=_0x4c4be8-0x0;var _0x2c06c0=_0xc6ac[_0x4c4be8];return _0x2c06c0;};'use strict';var _=require(_0xcc6a('0x0'));var util=require(_0xcc6a('0x1'));var moment=require(_0xcc6a('0x2'));var BPromise=require(_0xcc6a('0x3'));var rs=require(_0xcc6a('0x4'));var fs=require('fs');var Redis=require(_0xcc6a('0x5'));var db=require(_0xcc6a('0x6'))['db'];var utils=require(_0xcc6a('0x7'));var logger=require(_0xcc6a('0x8'))(_0xcc6a('0x9'));var config=require(_0xcc6a('0xa'));var jayson=require(_0xcc6a('0xb'));var client=jayson[_0xcc6a('0xc')][_0xcc6a('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x5f3887,_0x3dd497,_0x11b919){return new BPromise(function(_0xf02261,_0x560cc4){return client[_0xcc6a('0xe')](_0x5f3887,_0x11b919)[_0xcc6a('0xf')](function(_0x7806a0){logger[_0xcc6a('0x10')](_0xcc6a('0x11'),_0x3dd497,'request\x20sent');logger[_0xcc6a('0x12')](_0xcc6a('0x13'),_0x3dd497,_0xcc6a('0x14'),JSON['stringify'](_0x7806a0));if(_0x7806a0[_0xcc6a('0x15')]){if(_0x7806a0[_0xcc6a('0x15')][_0xcc6a('0x16')]===0x1f4){logger['error']('Integration,\x20%s,\x20%s',_0x3dd497,_0x7806a0[_0xcc6a('0x15')][_0xcc6a('0x17')]);return _0x560cc4(_0x7806a0[_0xcc6a('0x15')]['message']);}logger['error'](_0xcc6a('0x11'),_0x3dd497,_0x7806a0[_0xcc6a('0x15')][_0xcc6a('0x17')]);return _0xf02261(_0x7806a0[_0xcc6a('0x15')][_0xcc6a('0x17')]);}else{logger[_0xcc6a('0x10')](_0xcc6a('0x11'),_0x3dd497,_0xcc6a('0x14'));_0xf02261(_0x7806a0['result']['message']);}})['catch'](function(_0x395a55){logger[_0xcc6a('0x15')](_0xcc6a('0x11'),_0x3dd497,_0x395a55);_0x560cc4(_0x395a55);});});}
\ No newline at end of file
+var _0x1967=['then','info','Integration,\x20%s,\x20%s','Integration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request'];(function(_0x1da04e,_0x31024b){var _0xdd8c41=function(_0x2036f9){while(--_0x2036f9){_0x1da04e['push'](_0x1da04e['shift']());}};_0xdd8c41(++_0x31024b);}(_0x1967,0x173));var _0x7196=function(_0x9945d9,_0x1cca71){_0x9945d9=_0x9945d9-0x0;var _0x36d81d=_0x1967[_0x9945d9];return _0x36d81d;};'use strict';var _=require('lodash');var util=require(_0x7196('0x0'));var moment=require(_0x7196('0x1'));var BPromise=require(_0x7196('0x2'));var rs=require(_0x7196('0x3'));var fs=require('fs');var Redis=require(_0x7196('0x4'));var db=require(_0x7196('0x5'))['db'];var utils=require(_0x7196('0x6'));var logger=require(_0x7196('0x7'))(_0x7196('0x8'));var config=require(_0x7196('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x7196('0xa')][_0x7196('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x194746,_0x40e0af,_0x266a6e){return new BPromise(function(_0xad78a,_0x510c72){return client[_0x7196('0xc')](_0x194746,_0x266a6e)[_0x7196('0xd')](function(_0x3f846e){logger[_0x7196('0xe')](_0x7196('0xf'),_0x40e0af,'request\x20sent');logger['debug'](_0x7196('0x10'),_0x40e0af,_0x7196('0x11'),JSON[_0x7196('0x12')](_0x3f846e));if(_0x3f846e[_0x7196('0x13')]){if(_0x3f846e[_0x7196('0x13')][_0x7196('0x14')]===0x1f4){logger[_0x7196('0x13')](_0x7196('0xf'),_0x40e0af,_0x3f846e[_0x7196('0x13')][_0x7196('0x15')]);return _0x510c72(_0x3f846e[_0x7196('0x13')]['message']);}logger[_0x7196('0x13')](_0x7196('0xf'),_0x40e0af,_0x3f846e[_0x7196('0x13')][_0x7196('0x15')]);return _0xad78a(_0x3f846e['error'][_0x7196('0x15')]);}else{logger['info'](_0x7196('0xf'),_0x40e0af,_0x7196('0x11'));_0xad78a(_0x3f846e[_0x7196('0x16')][_0x7196('0x15')]);}})[_0x7196('0x17')](function(_0x2e3e0e){logger[_0x7196('0x13')](_0x7196('0xf'),_0x40e0af,_0x2e3e0e);_0x510c72(_0x2e3e0e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2fe=['describe','/:id','post','update','destroy','exports','multer','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/describe'];(function(_0x575a31,_0x56336f){var _0x5d7dad=function(_0x2c8c09){while(--_0x2c8c09){_0x575a31['push'](_0x575a31['shift']());}};_0x5d7dad(++_0x56336f);}(_0xe2fe,0x86));var _0xee2f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe2fe[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xee2f('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xee2f('0x1'));var express=require('express');var router=express[_0xee2f('0x2')]();var fs_extra=require(_0xee2f('0x3'));var auth=require(_0xee2f('0x4'));var interaction=require(_0xee2f('0x5'));var config=require(_0xee2f('0x6'));var controller=require('./integrationReport.controller');router[_0xee2f('0x7')]('/',auth[_0xee2f('0x8')](),controller['index']);router[_0xee2f('0x7')](_0xee2f('0x9'),auth['isAuthenticated'](),controller[_0xee2f('0xa')]);router['get'](_0xee2f('0xb'),auth[_0xee2f('0x8')](),controller['show']);router[_0xee2f('0xc')]('/',auth[_0xee2f('0x8')](),controller['create']);router['put']('/:id',auth['isAuthenticated'](),controller[_0xee2f('0xd')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0xee2f('0xe')]);module[_0xee2f('0xf')]=router;
\ No newline at end of file
+var _0x6d38=['path','connect-timeout','fs-extra','../../components/interaction/service','../../config/environment','./integrationReport.controller','isAuthenticated','index','get','/describe','/:id','create','update','destroy','exports','util'];(function(_0xbb5bab,_0x5dc625){var _0x5e05d6=function(_0x39104b){while(--_0x39104b){_0xbb5bab['push'](_0xbb5bab['shift']());}};_0x5e05d6(++_0x5dc625);}(_0x6d38,0x1ef));var _0x86d3=function(_0x122096,_0x60c295){_0x122096=_0x122096-0x0;var _0x3d1966=_0x6d38[_0x122096];return _0x3d1966;};'use strict';var multer=require('multer');var util=require(_0x86d3('0x0'));var path=require(_0x86d3('0x1'));var timeout=require(_0x86d3('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x86d3('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x86d3('0x4'));var config=require(_0x86d3('0x5'));var controller=require(_0x86d3('0x6'));router['get']('/',auth[_0x86d3('0x7')](),controller[_0x86d3('0x8')]);router[_0x86d3('0x9')](_0x86d3('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x86d3('0x9')](_0x86d3('0xb'),auth[_0x86d3('0x7')](),controller['show']);router['post']('/',auth[_0x86d3('0x7')](),controller[_0x86d3('0xc')]);router['put']('/:id',auth[_0x86d3('0x7')](),controller[_0x86d3('0xd')]);router['delete'](_0x86d3('0xb'),auth['isAuthenticated'](),controller[_0x86d3('0xe')]);module[_0x86d3('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87f7=['RECEIVED','sequelize','exports','STRING','DATE','INTEGER','BOOLEAN','TEXT','ENUM','SENT'];(function(_0x243121,_0x5950f8){var _0x31f692=function(_0xe8ed34){while(--_0xe8ed34){_0x243121['push'](_0x243121['shift']());}};_0x31f692(++_0x5950f8);}(_0x87f7,0x155));var _0x787f=function(_0x52f203,_0x3bf299){_0x52f203=_0x52f203-0x0;var _0x2ab2a5=_0x87f7[_0x52f203];return _0x2ab2a5;};'use strict';var Sequelize=require(_0x787f('0x0'));module[_0x787f('0x1')]={'integration':{'type':Sequelize[_0x787f('0x2')]},'eventChannel':{'type':Sequelize[_0x787f('0x2')]},'exitStatus':{'type':Sequelize[_0x787f('0x2')]},'ticketId':{'type':Sequelize[_0x787f('0x2')]},'integrationId':{'type':Sequelize['INTEGER']},'contacts':{'type':Sequelize[_0x787f('0x2')]},'uniqueid':{'type':Sequelize[_0x787f('0x2')]},'calleridnum':{'type':Sequelize[_0x787f('0x2')]},'calleridname':{'type':Sequelize[_0x787f('0x2')]},'queue':{'type':Sequelize[_0x787f('0x2')]},'interface':{'type':Sequelize[_0x787f('0x2')]},'membername':{'type':Sequelize[_0x787f('0x2')]},'agentcalledAt':{'type':Sequelize[_0x787f('0x3')]},'agentconnectAt':{'type':Sequelize['DATE']},'holdtime':{'type':Sequelize[_0x787f('0x4')]},'agentcomplete':{'type':Sequelize[_0x787f('0x5')],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize['DATE']},'talktime':{'type':Sequelize[_0x787f('0x4')]},'agentacw':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x787f('0x4')]},'reason':{'type':Sequelize['STRING']},'agentringnoanswer':{'type':Sequelize[_0x787f('0x5')],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize['DATE']},'agentdump':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentdumpAt':{'type':Sequelize[_0x787f('0x3')]},'lastevent':{'type':Sequelize[_0x787f('0x2')]},'channel':{'type':Sequelize[_0x787f('0x2')]},'channelstate':{'type':Sequelize[_0x787f('0x4')]},'channelstatedesc':{'type':Sequelize[_0x787f('0x2')]},'connectedlinenum':{'type':Sequelize[_0x787f('0x2')]},'connectedlinename':{'type':Sequelize[_0x787f('0x2')]},'language':{'type':Sequelize[_0x787f('0x2')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0x787f('0x2')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x787f('0x2')]},'destchannel':{'type':Sequelize['STRING']},'destchannelstate':{'type':Sequelize[_0x787f('0x4')]},'destchannelstatedesc':{'type':Sequelize[_0x787f('0x2')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0x787f('0x2')]},'destconnectedlinename':{'type':Sequelize['STRING']},'destlanguage':{'type':Sequelize[_0x787f('0x2')]},'destaccountcode':{'type':Sequelize[_0x787f('0x2')]},'destcontext':{'type':Sequelize['STRING']},'destexten':{'type':Sequelize[_0x787f('0x2')]},'destpriority':{'type':Sequelize[_0x787f('0x2')]},'destuniqueid':{'type':Sequelize[_0x787f('0x2')]},'messageId':{'type':Sequelize[_0x787f('0x2')]},'inReplyTo':{'type':Sequelize[_0x787f('0x2')]},'subject':{'type':Sequelize[_0x787f('0x2')]},'from':{'type':Sequelize[_0x787f('0x2')]},'to':{'type':Sequelize[_0x787f('0x2')]},'cc':{'type':Sequelize[_0x787f('0x2')]},'attachment':{'type':Sequelize[_0x787f('0x6')]},'html':{'type':Sequelize[_0x787f('0x6')]},'text':{'type':Sequelize[_0x787f('0x6')]},'status':{'type':Sequelize[_0x787f('0x7')](_0x787f('0x8'),'SENDING',_0x787f('0x9'),'FAILED')},'url':{'type':Sequelize['STRING']},'app':{'type':Sequelize[_0x787f('0x2')]},'appdata':{'type':Sequelize[_0x787f('0x2')]},'projectId':{'type':Sequelize[_0x787f('0x4')]}};
\ No newline at end of file
+var _0x828f=['TEXT','ENUM','SENDING','sequelize','exports','STRING','INTEGER','DATE','BOOLEAN'];(function(_0x4bd399,_0x2c3e20){var _0x1d1217=function(_0x5a4ebe){while(--_0x5a4ebe){_0x4bd399['push'](_0x4bd399['shift']());}};_0x1d1217(++_0x2c3e20);}(_0x828f,0x16b));var _0xf828=function(_0x52684f,_0xff73fc){_0x52684f=_0x52684f-0x0;var _0x4a55f0=_0x828f[_0x52684f];return _0x4a55f0;};'use strict';var Sequelize=require(_0xf828('0x0'));module[_0xf828('0x1')]={'integration':{'type':Sequelize[_0xf828('0x2')]},'eventChannel':{'type':Sequelize['STRING']},'exitStatus':{'type':Sequelize['STRING']},'ticketId':{'type':Sequelize[_0xf828('0x2')]},'integrationId':{'type':Sequelize[_0xf828('0x3')]},'contacts':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0xf828('0x2')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0xf828('0x2')]},'queue':{'type':Sequelize[_0xf828('0x2')]},'interface':{'type':Sequelize[_0xf828('0x2')]},'membername':{'type':Sequelize[_0xf828('0x2')]},'agentcalledAt':{'type':Sequelize['DATE']},'agentconnectAt':{'type':Sequelize[_0xf828('0x4')]},'holdtime':{'type':Sequelize[_0xf828('0x3')]},'agentcomplete':{'type':Sequelize[_0xf828('0x5')],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize['DATE']},'talktime':{'type':Sequelize[_0xf828('0x3')]},'agentacw':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'acwtime':{'type':Sequelize[_0xf828('0x3')]},'reason':{'type':Sequelize[_0xf828('0x2')]},'agentringnoanswer':{'type':Sequelize[_0xf828('0x5')],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize[_0xf828('0x4')]},'agentdump':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentdumpAt':{'type':Sequelize[_0xf828('0x4')]},'lastevent':{'type':Sequelize[_0xf828('0x2')]},'channel':{'type':Sequelize[_0xf828('0x2')]},'channelstate':{'type':Sequelize[_0xf828('0x3')]},'channelstatedesc':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0xf828('0x2')]},'connectedlinename':{'type':Sequelize[_0xf828('0x2')]},'language':{'type':Sequelize[_0xf828('0x2')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0xf828('0x2')]},'priority':{'type':Sequelize[_0xf828('0x2')]},'destchannel':{'type':Sequelize[_0xf828('0x2')]},'destchannelstate':{'type':Sequelize[_0xf828('0x3')]},'destchannelstatedesc':{'type':Sequelize[_0xf828('0x2')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize[_0xf828('0x2')]},'destconnectedlinenum':{'type':Sequelize[_0xf828('0x2')]},'destconnectedlinename':{'type':Sequelize[_0xf828('0x2')]},'destlanguage':{'type':Sequelize['STRING']},'destaccountcode':{'type':Sequelize[_0xf828('0x2')]},'destcontext':{'type':Sequelize['STRING']},'destexten':{'type':Sequelize[_0xf828('0x2')]},'destpriority':{'type':Sequelize[_0xf828('0x2')]},'destuniqueid':{'type':Sequelize[_0xf828('0x2')]},'messageId':{'type':Sequelize[_0xf828('0x2')]},'inReplyTo':{'type':Sequelize[_0xf828('0x2')]},'subject':{'type':Sequelize[_0xf828('0x2')]},'from':{'type':Sequelize[_0xf828('0x2')]},'to':{'type':Sequelize[_0xf828('0x2')]},'cc':{'type':Sequelize['STRING']},'attachment':{'type':Sequelize[_0xf828('0x6')]},'html':{'type':Sequelize[_0xf828('0x6')]},'text':{'type':Sequelize[_0xf828('0x6')]},'status':{'type':Sequelize[_0xf828('0x7')]('SENT',_0xf828('0x8'),'RECEIVED','FAILED')},'url':{'type':Sequelize[_0xf828('0x2')]},'app':{'type':Sequelize[_0xf828('0x2')]},'appdata':{'type':Sequelize[_0xf828('0x2')]},'projectId':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a91=['hasOwnProperty','nolimit','order','sort','filters','filter','where','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','options','find','catch','create','body','update','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','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','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','limit','undefined','count','set','apply','reject','save','then','destroy','error','stack','name','send','IntegrationReport','rawAttributes','type','key','model','map','query','keys','intersection','fields','attributes','length'];(function(_0x211277,_0x4955df){var _0x42a317=function(_0x4f524a){while(--_0x4f524a){_0x211277['push'](_0x211277['shift']());}};_0x42a317(++_0x4955df);}(_0x6a91,0xfc));var _0x16a9=function(_0x31ce94,_0x246777){_0x31ce94=_0x31ce94-0x0;var _0x16ca31=_0x6a91[_0x31ce94];return _0x16ca31;};'use strict';var emlformat=require(_0x16a9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x16a9('0x1'));var jsonpatch=require(_0x16a9('0x2'));var rp=require('request-promise');var moment=require(_0x16a9('0x3'));var BPromise=require(_0x16a9('0x4'));var Mustache=require(_0x16a9('0x5'));var util=require(_0x16a9('0x6'));var path=require(_0x16a9('0x7'));var sox=require(_0x16a9('0x8'));var csv=require(_0x16a9('0x9'));var ejs=require(_0x16a9('0xa'));var fs=require('fs');var fs_extra=require(_0x16a9('0xb'));var _=require(_0x16a9('0xc'));var squel=require(_0x16a9('0xd'));var crypto=require(_0x16a9('0xe'));var jsforce=require(_0x16a9('0xf'));var deskjs=require(_0x16a9('0x10'));var toCsv=require(_0x16a9('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x16a9('0x11'));var authService=require(_0x16a9('0x12'));var qs=require(_0x16a9('0x13'));var as=require(_0x16a9('0x14'));var hardwareService=require(_0x16a9('0x15'));var logger=require(_0x16a9('0x16'))('api');var utils=require(_0x16a9('0x17'));var config=require(_0x16a9('0x18'));var licenseUtil=require(_0x16a9('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1e3043,_0x190687){_0x190687=_0x190687||0xcc;return function(_0x1454fc){if(_0x1454fc){return _0x1e3043[_0x16a9('0x1a')](_0x190687);}return _0x1e3043[_0x16a9('0x1b')](_0x190687)[_0x16a9('0x1c')]();};}function respondWithResult(_0x472111,_0x45b5d4){_0x45b5d4=_0x45b5d4||0xc8;return function(_0x3a736c){if(_0x3a736c){return _0x472111['status'](_0x45b5d4)[_0x16a9('0x1d')](_0x3a736c);}};}function respondWithFilteredResult(_0x50a716,_0xc30f9){return function(_0x14ef04){if(_0x14ef04){var _0x2d6e45=typeof _0xc30f9[_0x16a9('0x1e')]==='undefined'&&typeof _0xc30f9[_0x16a9('0x1f')]===_0x16a9('0x20');var _0x48b577=_0x14ef04[_0x16a9('0x21')];var _0x59a7b2=_0x2d6e45?0x0:_0xc30f9[_0x16a9('0x1e')];var _0x1d52e6=_0x2d6e45?_0x14ef04[_0x16a9('0x21')]:_0xc30f9[_0x16a9('0x1e')]+_0xc30f9[_0x16a9('0x1f')];var _0x8f4f31;if(_0x1d52e6>=_0x48b577){_0x1d52e6=_0x48b577;_0x8f4f31=0xc8;}else{_0x8f4f31=0xce;}_0x50a716[_0x16a9('0x1b')](_0x8f4f31);return _0x50a716[_0x16a9('0x22')]('Content-Range',_0x59a7b2+'-'+_0x1d52e6+'/'+_0x48b577)[_0x16a9('0x1d')](_0x14ef04);}return null;};}function patchUpdates(_0x49d9d0){return function(_0x307b9b){try{jsonpatch[_0x16a9('0x23')](_0x307b9b,_0x49d9d0,!![]);}catch(_0x539a77){return BPromise[_0x16a9('0x24')](_0x539a77);}return _0x307b9b[_0x16a9('0x25')]();};}function saveUpdates(_0x5c2299,_0x4a4ff9){return function(_0x4c26e6){if(_0x4c26e6){return _0x4c26e6['update'](_0x5c2299)[_0x16a9('0x26')](function(_0x6a246f){return _0x6a246f;});}return null;};}function removeEntity(_0x2db4c6,_0x1c42a8){return function(_0x21319e){if(_0x21319e){return _0x21319e[_0x16a9('0x27')]()['then'](function(){_0x2db4c6[_0x16a9('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4f3c03,_0x4d1eed){return function(_0x544ef0){if(!_0x544ef0){_0x4f3c03[_0x16a9('0x1a')](0x194);}return _0x544ef0;};}function handleError(_0x2c7d7d,_0xc5cc32){_0xc5cc32=_0xc5cc32||0x1f4;return function(_0x3b0fe7){logger[_0x16a9('0x28')](_0x3b0fe7[_0x16a9('0x29')]);if(_0x3b0fe7[_0x16a9('0x2a')]){delete _0x3b0fe7[_0x16a9('0x2a')];}_0x2c7d7d[_0x16a9('0x1b')](_0xc5cc32)[_0x16a9('0x2b')](_0x3b0fe7);};}exports['index']=function(_0x5c0d65,_0x4f1a02){var _0x495d3f={},_0x5f1eba={},_0x4fb31a={'count':0x0,'rows':[]};var _0x4db1c9=_['map'](db[_0x16a9('0x2c')][_0x16a9('0x2d')],function(_0x2f4591){return{'name':_0x2f4591['fieldName'],'type':_0x2f4591[_0x16a9('0x2e')][_0x16a9('0x2f')]};});_0x5f1eba[_0x16a9('0x30')]=_[_0x16a9('0x31')](_0x4db1c9,_0x16a9('0x2a'));_0x5f1eba[_0x16a9('0x32')]=_[_0x16a9('0x33')](_0x5c0d65[_0x16a9('0x32')]);_0x5f1eba['filters']=_[_0x16a9('0x34')](_0x5f1eba['model'],_0x5f1eba['query']);_0x495d3f['attributes']=_[_0x16a9('0x34')](_0x5f1eba[_0x16a9('0x30')],qs['fields'](_0x5c0d65[_0x16a9('0x32')][_0x16a9('0x35')]));_0x495d3f['attributes']=_0x495d3f[_0x16a9('0x36')][_0x16a9('0x37')]?_0x495d3f['attributes']:_0x5f1eba[_0x16a9('0x30')];if(!_0x5c0d65[_0x16a9('0x32')][_0x16a9('0x38')](_0x16a9('0x39'))){_0x495d3f[_0x16a9('0x1f')]=qs[_0x16a9('0x1f')](_0x5c0d65['query'][_0x16a9('0x1f')]);_0x495d3f[_0x16a9('0x1e')]=qs[_0x16a9('0x1e')](_0x5c0d65['query'][_0x16a9('0x1e')]);}_0x495d3f[_0x16a9('0x3a')]=qs[_0x16a9('0x3b')](_0x5c0d65[_0x16a9('0x32')][_0x16a9('0x3b')]);_0x495d3f['where']=qs[_0x16a9('0x3c')](_['pick'](_0x5c0d65['query'],_0x5f1eba[_0x16a9('0x3c')]),_0x4db1c9);if(_0x5c0d65['query'][_0x16a9('0x3d')]){_0x495d3f[_0x16a9('0x3e')]=_[_0x16a9('0x3f')](_0x495d3f['where'],{'$or':_['map'](_0x4db1c9,function(_0x309e86){if(_0x309e86['type']!==_0x16a9('0x40')){var _0x5abb13={};_0x5abb13[_0x309e86['name']]={'$like':'%'+_0x5c0d65[_0x16a9('0x32')]['filter']+'%'};return _0x5abb13;}})});}_0x495d3f=_[_0x16a9('0x3f')]({},_0x495d3f,_0x5c0d65['options']);var _0x3883b7={'where':_0x495d3f[_0x16a9('0x3e')]};return db[_0x16a9('0x2c')][_0x16a9('0x21')](_0x3883b7)['then'](function(_0xbc5ad0){_0x4fb31a[_0x16a9('0x21')]=_0xbc5ad0;if(_0x5c0d65['query'][_0x16a9('0x41')]){_0x495d3f[_0x16a9('0x42')]=[{'all':!![]}];}return db[_0x16a9('0x2c')][_0x16a9('0x43')](_0x495d3f);})[_0x16a9('0x26')](function(_0x55c2df){_0x4fb31a[_0x16a9('0x44')]=_0x55c2df;return _0x4fb31a;})[_0x16a9('0x26')](respondWithFilteredResult(_0x4f1a02,_0x495d3f))['catch'](handleError(_0x4f1a02,null));};exports[_0x16a9('0x45')]=function(_0x5b216f,_0x2a9757){var _0x35d061={'raw':![],'where':{'id':_0x5b216f[_0x16a9('0x46')]['id']}},_0x5e4624={};_0x5e4624[_0x16a9('0x30')]=_[_0x16a9('0x33')](db['IntegrationReport'][_0x16a9('0x2d')]);_0x5e4624[_0x16a9('0x32')]=_[_0x16a9('0x33')](_0x5b216f[_0x16a9('0x32')]);_0x5e4624[_0x16a9('0x3c')]=_['intersection'](_0x5e4624['model'],_0x5e4624[_0x16a9('0x32')]);_0x35d061[_0x16a9('0x36')]=_['intersection'](_0x5e4624[_0x16a9('0x30')],qs[_0x16a9('0x35')](_0x5b216f['query']['fields']));_0x35d061[_0x16a9('0x36')]=_0x35d061[_0x16a9('0x36')]['length']?_0x35d061[_0x16a9('0x36')]:_0x5e4624[_0x16a9('0x30')];if(_0x5b216f[_0x16a9('0x32')]['includeAll']){_0x35d061['include']=[{'all':!![]}];}_0x35d061=_[_0x16a9('0x3f')]({},_0x35d061,_0x5b216f[_0x16a9('0x47')]);return db[_0x16a9('0x2c')][_0x16a9('0x48')](_0x35d061)['then'](handleEntityNotFound(_0x2a9757,null))[_0x16a9('0x26')](respondWithResult(_0x2a9757,null))[_0x16a9('0x49')](handleError(_0x2a9757,null));};exports[_0x16a9('0x4a')]=function(_0x12f339,_0x32ddf8){return db['IntegrationReport']['create'](_0x12f339[_0x16a9('0x4b')],{})['then'](respondWithResult(_0x32ddf8,0xc9))[_0x16a9('0x49')](handleError(_0x32ddf8,null));};exports[_0x16a9('0x4c')]=function(_0x27f3cd,_0xf05008){if(_0x27f3cd[_0x16a9('0x4b')]['id']){delete _0x27f3cd[_0x16a9('0x4b')]['id'];}return db[_0x16a9('0x2c')][_0x16a9('0x48')]({'where':{'id':_0x27f3cd['params']['id']}})['then'](handleEntityNotFound(_0xf05008,null))[_0x16a9('0x26')](saveUpdates(_0x27f3cd[_0x16a9('0x4b')],null))['then'](respondWithResult(_0xf05008,null))[_0x16a9('0x49')](handleError(_0xf05008,null));};exports[_0x16a9('0x27')]=function(_0x53d857,_0x1144cd){return db[_0x16a9('0x2c')][_0x16a9('0x48')]({'where':{'id':_0x53d857[_0x16a9('0x46')]['id']}})['then'](handleEntityNotFound(_0x1144cd,null))[_0x16a9('0x26')](removeEntity(_0x1144cd,null))[_0x16a9('0x49')](handleError(_0x1144cd,null));};exports['describe']=function(_0x4037c8,_0x53000e){return db['IntegrationReport']['describe']()[_0x16a9('0x26')](respondWithResult(_0x53000e,null))[_0x16a9('0x49')](handleError(_0x53000e,null));};
\ No newline at end of file
+var _0x34ff=['VIRTUAL','filter','options','then','includeAll','findAll','rows','catch','show','params','fields','find','create','update','body','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../mysqldb','sendStatus','status','json','limit','undefined','count','offset','set','apply','reject','destroy','end','error','stack','name','send','map','IntegrationReport','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','type'];(function(_0x4a3698,_0x316700){var _0x10e014=function(_0x13cee8){while(--_0x13cee8){_0x4a3698['push'](_0x4a3698['shift']());}};_0x10e014(++_0x316700);}(_0x34ff,0x172));var _0xf34f=function(_0x42c80b,_0x8f9d24){_0x42c80b=_0x42c80b-0x0;var _0x20777a=_0x34ff[_0x42c80b];return _0x20777a;};'use strict';var emlformat=require(_0xf34f('0x0'));var rimraf=require(_0xf34f('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf34f('0x2'));var rp=require(_0xf34f('0x3'));var moment=require('moment');var BPromise=require(_0xf34f('0x4'));var Mustache=require(_0xf34f('0x5'));var util=require('util');var path=require(_0xf34f('0x6'));var sox=require(_0xf34f('0x7'));var csv=require('to-csv');var ejs=require(_0xf34f('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf34f('0x9'));var squel=require(_0xf34f('0xa'));var crypto=require(_0xf34f('0xb'));var jsforce=require(_0xf34f('0xc'));var deskjs=require(_0xf34f('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xf34f('0xe'));var authService=require(_0xf34f('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xf34f('0x10'));var hardwareService=require(_0xf34f('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0xf34f('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xf34f('0x13'))['db'];function respondWithStatusCode(_0x4c871d,_0x4ad5e3){_0x4ad5e3=_0x4ad5e3||0xcc;return function(_0x20297c){if(_0x20297c){return _0x4c871d[_0xf34f('0x14')](_0x4ad5e3);}return _0x4c871d[_0xf34f('0x15')](_0x4ad5e3)['end']();};}function respondWithResult(_0xc934b1,_0x11df8d){_0x11df8d=_0x11df8d||0xc8;return function(_0x53c602){if(_0x53c602){return _0xc934b1[_0xf34f('0x15')](_0x11df8d)[_0xf34f('0x16')](_0x53c602);}};}function respondWithFilteredResult(_0x2d0e31,_0x3138cc){return function(_0x16b894){if(_0x16b894){var _0x4e65e3=typeof _0x3138cc['offset']==='undefined'&&typeof _0x3138cc[_0xf34f('0x17')]===_0xf34f('0x18');var _0x51ec42=_0x16b894[_0xf34f('0x19')];var _0x21ab9a=_0x4e65e3?0x0:_0x3138cc[_0xf34f('0x1a')];var _0x2ba346=_0x4e65e3?_0x16b894[_0xf34f('0x19')]:_0x3138cc[_0xf34f('0x1a')]+_0x3138cc['limit'];var _0x5b79a4;if(_0x2ba346>=_0x51ec42){_0x2ba346=_0x51ec42;_0x5b79a4=0xc8;}else{_0x5b79a4=0xce;}_0x2d0e31[_0xf34f('0x15')](_0x5b79a4);return _0x2d0e31[_0xf34f('0x1b')]('Content-Range',_0x21ab9a+'-'+_0x2ba346+'/'+_0x51ec42)[_0xf34f('0x16')](_0x16b894);}return null;};}function patchUpdates(_0x3f74d8){return function(_0x190a0f){try{jsonpatch[_0xf34f('0x1c')](_0x190a0f,_0x3f74d8,!![]);}catch(_0x1331c3){return BPromise[_0xf34f('0x1d')](_0x1331c3);}return _0x190a0f['save']();};}function saveUpdates(_0x582f79,_0x15b1bd){return function(_0x37bbb4){if(_0x37bbb4){return _0x37bbb4['update'](_0x582f79)['then'](function(_0x2f3fc7){return _0x2f3fc7;});}return null;};}function removeEntity(_0x48f561,_0x5edbf6){return function(_0x3efd2c){if(_0x3efd2c){return _0x3efd2c[_0xf34f('0x1e')]()['then'](function(){_0x48f561[_0xf34f('0x15')](0xcc)[_0xf34f('0x1f')]();});}};}function handleEntityNotFound(_0x5cefb3,_0x3b7f14){return function(_0x37bbb3){if(!_0x37bbb3){_0x5cefb3[_0xf34f('0x14')](0x194);}return _0x37bbb3;};}function handleError(_0x34907b,_0x42ff7c){_0x42ff7c=_0x42ff7c||0x1f4;return function(_0x1a38f1){logger[_0xf34f('0x20')](_0x1a38f1[_0xf34f('0x21')]);if(_0x1a38f1['name']){delete _0x1a38f1[_0xf34f('0x22')];}_0x34907b[_0xf34f('0x15')](_0x42ff7c)[_0xf34f('0x23')](_0x1a38f1);};}exports['index']=function(_0x5e3838,_0x462c04){var _0x18e21e={},_0x27bf5e={},_0x22a9e5={'count':0x0,'rows':[]};var _0x37fd81=_[_0xf34f('0x24')](db[_0xf34f('0x25')][_0xf34f('0x26')],function(_0x2cd844){return{'name':_0x2cd844[_0xf34f('0x27')],'type':_0x2cd844['type'][_0xf34f('0x28')]};});_0x27bf5e['model']=_[_0xf34f('0x24')](_0x37fd81,'name');_0x27bf5e[_0xf34f('0x29')]=_[_0xf34f('0x2a')](_0x5e3838['query']);_0x27bf5e[_0xf34f('0x2b')]=_[_0xf34f('0x2c')](_0x27bf5e[_0xf34f('0x2d')],_0x27bf5e[_0xf34f('0x29')]);_0x18e21e[_0xf34f('0x2e')]=_[_0xf34f('0x2c')](_0x27bf5e[_0xf34f('0x2d')],qs['fields'](_0x5e3838[_0xf34f('0x29')]['fields']));_0x18e21e[_0xf34f('0x2e')]=_0x18e21e[_0xf34f('0x2e')][_0xf34f('0x2f')]?_0x18e21e[_0xf34f('0x2e')]:_0x27bf5e[_0xf34f('0x2d')];if(!_0x5e3838[_0xf34f('0x29')][_0xf34f('0x30')](_0xf34f('0x31'))){_0x18e21e[_0xf34f('0x17')]=qs['limit'](_0x5e3838[_0xf34f('0x29')][_0xf34f('0x17')]);_0x18e21e[_0xf34f('0x1a')]=qs[_0xf34f('0x1a')](_0x5e3838['query'][_0xf34f('0x1a')]);}_0x18e21e[_0xf34f('0x32')]=qs['sort'](_0x5e3838['query'][_0xf34f('0x33')]);_0x18e21e['where']=qs['filters'](_[_0xf34f('0x34')](_0x5e3838[_0xf34f('0x29')],_0x27bf5e['filters']),_0x37fd81);if(_0x5e3838[_0xf34f('0x29')]['filter']){_0x18e21e[_0xf34f('0x35')]=_[_0xf34f('0x36')](_0x18e21e[_0xf34f('0x35')],{'$or':_[_0xf34f('0x24')](_0x37fd81,function(_0x52e4ee){if(_0x52e4ee[_0xf34f('0x37')]!==_0xf34f('0x38')){var _0x320cdf={};_0x320cdf[_0x52e4ee[_0xf34f('0x22')]]={'$like':'%'+_0x5e3838[_0xf34f('0x29')][_0xf34f('0x39')]+'%'};return _0x320cdf;}})});}_0x18e21e=_[_0xf34f('0x36')]({},_0x18e21e,_0x5e3838[_0xf34f('0x3a')]);var _0x57bb52={'where':_0x18e21e[_0xf34f('0x35')]};return db[_0xf34f('0x25')][_0xf34f('0x19')](_0x57bb52)[_0xf34f('0x3b')](function(_0x37c169){_0x22a9e5['count']=_0x37c169;if(_0x5e3838['query'][_0xf34f('0x3c')]){_0x18e21e['include']=[{'all':!![]}];}return db[_0xf34f('0x25')][_0xf34f('0x3d')](_0x18e21e);})['then'](function(_0xaa89f5){_0x22a9e5[_0xf34f('0x3e')]=_0xaa89f5;return _0x22a9e5;})[_0xf34f('0x3b')](respondWithFilteredResult(_0x462c04,_0x18e21e))[_0xf34f('0x3f')](handleError(_0x462c04,null));};exports[_0xf34f('0x40')]=function(_0x735b9a,_0x455cfc){var _0x58d83f={'raw':![],'where':{'id':_0x735b9a[_0xf34f('0x41')]['id']}},_0x3890a5={};_0x3890a5[_0xf34f('0x2d')]=_['keys'](db[_0xf34f('0x25')][_0xf34f('0x26')]);_0x3890a5[_0xf34f('0x29')]=_['keys'](_0x735b9a[_0xf34f('0x29')]);_0x3890a5[_0xf34f('0x2b')]=_[_0xf34f('0x2c')](_0x3890a5['model'],_0x3890a5['query']);_0x58d83f[_0xf34f('0x2e')]=_['intersection'](_0x3890a5[_0xf34f('0x2d')],qs[_0xf34f('0x42')](_0x735b9a[_0xf34f('0x29')][_0xf34f('0x42')]));_0x58d83f[_0xf34f('0x2e')]=_0x58d83f[_0xf34f('0x2e')][_0xf34f('0x2f')]?_0x58d83f['attributes']:_0x3890a5[_0xf34f('0x2d')];if(_0x735b9a[_0xf34f('0x29')][_0xf34f('0x3c')]){_0x58d83f['include']=[{'all':!![]}];}_0x58d83f=_[_0xf34f('0x36')]({},_0x58d83f,_0x735b9a[_0xf34f('0x3a')]);return db[_0xf34f('0x25')][_0xf34f('0x43')](_0x58d83f)[_0xf34f('0x3b')](handleEntityNotFound(_0x455cfc,null))[_0xf34f('0x3b')](respondWithResult(_0x455cfc,null))[_0xf34f('0x3f')](handleError(_0x455cfc,null));};exports[_0xf34f('0x44')]=function(_0x3f7b43,_0x1fb140){return db[_0xf34f('0x25')][_0xf34f('0x44')](_0x3f7b43['body'],{})[_0xf34f('0x3b')](respondWithResult(_0x1fb140,0xc9))[_0xf34f('0x3f')](handleError(_0x1fb140,null));};exports[_0xf34f('0x45')]=function(_0x3e3295,_0xd9b746){if(_0x3e3295[_0xf34f('0x46')]['id']){delete _0x3e3295[_0xf34f('0x46')]['id'];}return db[_0xf34f('0x25')]['find']({'where':{'id':_0x3e3295['params']['id']}})['then'](handleEntityNotFound(_0xd9b746,null))[_0xf34f('0x3b')](saveUpdates(_0x3e3295['body'],null))[_0xf34f('0x3b')](respondWithResult(_0xd9b746,null))['catch'](handleError(_0xd9b746,null));};exports[_0xf34f('0x1e')]=function(_0x137c98,_0x20bd22){return db[_0xf34f('0x25')]['find']({'where':{'id':_0x137c98[_0xf34f('0x41')]['id']}})['then'](handleEntityNotFound(_0x20bd22,null))['then'](removeEntity(_0x20bd22,null))[_0xf34f('0x3f')](handleError(_0x20bd22,null));};exports['describe']=function(_0x4430bd,_0x57f7c7){return db[_0xf34f('0x25')]['describe']()[_0xf34f('0x3b')](respondWithResult(_0x57f7c7,null))[_0xf34f('0x3f')](handleError(_0x57f7c7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdca0=['request-promise','path','rimraf','../../config/environment','./integrationReport.attributes','define','IntegrationReport','report_integration','util','api','moment','bluebird'];(function(_0x2731f0,_0x126b1b){var _0x36a180=function(_0x44d1a9){while(--_0x44d1a9){_0x2731f0['push'](_0x2731f0['shift']());}};_0x36a180(++_0x126b1b);}(_0xdca0,0xc8));var _0x0dca=function(_0x599f13,_0x1c0140){_0x599f13=_0x599f13-0x0;var _0x1ebd6a=_0xdca0[_0x599f13];return _0x1ebd6a;};'use strict';var _=require('lodash');var util=require(_0x0dca('0x0'));var logger=require('../../config/logger')(_0x0dca('0x1'));var moment=require(_0x0dca('0x2'));var BPromise=require(_0x0dca('0x3'));var rp=require(_0x0dca('0x4'));var fs=require('fs');var path=require(_0x0dca('0x5'));var rimraf=require(_0x0dca('0x6'));var config=require(_0x0dca('0x7'));var attributes=require(_0x0dca('0x8'));module['exports']=function(_0x5b1f29,_0x4576d4){return _0x5b1f29[_0x0dca('0x9')](_0x0dca('0xa'),attributes,{'tableName':_0x0dca('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1182=['moment','bluebird','request-promise','../../config/environment','./integrationReport.attributes','exports','IntegrationReport','report_integration','lodash','util','../../config/logger'];(function(_0x18ea15,_0x2d4b4c){var _0x7ae35e=function(_0x324a87){while(--_0x324a87){_0x18ea15['push'](_0x18ea15['shift']());}};_0x7ae35e(++_0x2d4b4c);}(_0x1182,0xa2));var _0x2118=function(_0x5970b9,_0x8715e9){_0x5970b9=_0x5970b9-0x0;var _0x102199=_0x1182[_0x5970b9];return _0x102199;};'use strict';var _=require(_0x2118('0x0'));var util=require(_0x2118('0x1'));var logger=require(_0x2118('0x2'))('api');var moment=require(_0x2118('0x3'));var BPromise=require(_0x2118('0x4'));var rp=require(_0x2118('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x2118('0x6'));var attributes=require(_0x2118('0x7'));module[_0x2118('0x8')]=function(_0x35bcb0,_0x2ecc60){return _0x35bcb0['define'](_0x2118('0x9'),attributes,{'tableName':_0x2118('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb28=['moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','IntegrationReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','lodash','util'];(function(_0x5077b4,_0x25e601){var _0x472bd5=function(_0x5d44f4){while(--_0x5d44f4){_0x5077b4['push'](_0x5077b4['shift']());}};_0x472bd5(++_0x25e601);}(_0xdb28,0x106));var _0x8db2=function(_0x36175e,_0x1f73ed){_0x36175e=_0x36175e-0x0;var _0x248e12=_0xdb28[_0x36175e];return _0x248e12;};'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')]('IntegrationReport,\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
+var _0x57ca=['client','http','request','info','request\x20sent','IntegrationReport,\x20%s,\x20%s,\x20%s','error','code','IntegrationReport,\x20%s,\x20%s','message','result','catch','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise'];(function(_0x22b3a3,_0x16306f){var _0x391585=function(_0x3faec5){while(--_0x3faec5){_0x22b3a3['push'](_0x22b3a3['shift']());}};_0x391585(++_0x16306f);}(_0x57ca,0x108));var _0xa57c=function(_0x1dd0c7,_0x15da4b){_0x1dd0c7=_0x1dd0c7-0x0;var _0x24bea1=_0x57ca[_0x1dd0c7];return _0x24bea1;};'use strict';var _=require('lodash');var util=require(_0xa57c('0x0'));var moment=require(_0xa57c('0x1'));var BPromise=require('bluebird');var rs=require(_0xa57c('0x2'));var fs=require('fs');var Redis=require(_0xa57c('0x3'));var db=require(_0xa57c('0x4'))['db'];var utils=require(_0xa57c('0x5'));var logger=require(_0xa57c('0x6'))('rpc');var config=require(_0xa57c('0x7'));var jayson=require(_0xa57c('0x8'));var client=jayson[_0xa57c('0x9')][_0xa57c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xbdfffb,_0x314574,_0x19e28e){return new BPromise(function(_0x271ccc,_0x5e3962){return client[_0xa57c('0xb')](_0xbdfffb,_0x19e28e)['then'](function(_0x46ba92){logger[_0xa57c('0xc')]('IntegrationReport,\x20%s,\x20%s',_0x314574,_0xa57c('0xd'));logger['debug'](_0xa57c('0xe'),_0x314574,_0xa57c('0xd'),JSON['stringify'](_0x46ba92));if(_0x46ba92[_0xa57c('0xf')]){if(_0x46ba92['error'][_0xa57c('0x10')]===0x1f4){logger[_0xa57c('0xf')](_0xa57c('0x11'),_0x314574,_0x46ba92[_0xa57c('0xf')][_0xa57c('0x12')]);return _0x5e3962(_0x46ba92['error'][_0xa57c('0x12')]);}logger['error'](_0xa57c('0x11'),_0x314574,_0x46ba92[_0xa57c('0xf')][_0xa57c('0x12')]);return _0x271ccc(_0x46ba92[_0xa57c('0xf')][_0xa57c('0x12')]);}else{logger[_0xa57c('0xc')](_0xa57c('0x11'),_0x314574,'request\x20sent');_0x271ccc(_0x46ba92[_0xa57c('0x13')][_0xa57c('0x12')]);}})[_0xa57c('0x14')](function(_0x5a6024){logger[_0xa57c('0xf')]('IntegrationReport,\x20%s,\x20%s',_0x314574,_0x5a6024);_0x5e3962(_0x5a6024);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x56a4=['show','post','create','/:id/sub_intervals','addInterval','/:id/sub_intervals/create_many','addIntervals','/:id','delete','destroy','multer','util','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./interval.controller','get','index','isAuthenticated'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x56a4,0x11b));var _0x456a=function(_0x179e11,_0xf65436){_0x179e11=_0x179e11-0x0;var _0x549f04=_0x56a4[_0x179e11];return _0x549f04;};'use strict';var multer=require(_0x456a('0x0'));var util=require(_0x456a('0x1'));var path=require('path');var timeout=require(_0x456a('0x2'));var express=require(_0x456a('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x456a('0x4'));var interaction=require(_0x456a('0x5'));var config=require(_0x456a('0x6'));var controller=require(_0x456a('0x7'));router[_0x456a('0x8')]('/',auth['isAuthenticated'](),controller[_0x456a('0x9')]);router['get']('/:id',auth[_0x456a('0xa')](),controller[_0x456a('0xb')]);router[_0x456a('0x8')]('/:id/sub_intervals',auth[_0x456a('0xa')](),controller['getIntervals']);router[_0x456a('0xc')]('/',auth[_0x456a('0xa')](),controller[_0x456a('0xd')]);router[_0x456a('0xc')](_0x456a('0xe'),auth[_0x456a('0xa')](),controller[_0x456a('0xf')]);router[_0x456a('0xc')](_0x456a('0x10'),auth[_0x456a('0xa')](),controller[_0x456a('0x11')]);router['put'](_0x456a('0x12'),auth['isAuthenticated'](),controller['update']);router[_0x456a('0x13')](_0x456a('0x12'),auth[_0x456a('0xa')](),controller[_0x456a('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x8786=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./interval.controller','get','index','isAuthenticated','show','getIntervals','post','addInterval','/:id/sub_intervals/create_many','addIntervals','put','/:id','update','delete','destroy','multer','util','path'];(function(_0x47b58b,_0x41a189){var _0x46bebe=function(_0x22bbfa){while(--_0x22bbfa){_0x47b58b['push'](_0x47b58b['shift']());}};_0x46bebe(++_0x41a189);}(_0x8786,0x7a));var _0x6878=function(_0x4b055c,_0x4b870b){_0x4b055c=_0x4b055c-0x0;var _0x4b62bb=_0x8786[_0x4b055c];return _0x4b62bb;};'use strict';var multer=require(_0x6878('0x0'));var util=require(_0x6878('0x1'));var path=require(_0x6878('0x2'));var timeout=require(_0x6878('0x3'));var express=require(_0x6878('0x4'));var router=express[_0x6878('0x5')]();var fs_extra=require(_0x6878('0x6'));var auth=require(_0x6878('0x7'));var interaction=require(_0x6878('0x8'));var config=require(_0x6878('0x9'));var controller=require(_0x6878('0xa'));router[_0x6878('0xb')]('/',auth['isAuthenticated'](),controller[_0x6878('0xc')]);router[_0x6878('0xb')]('/:id',auth[_0x6878('0xd')](),controller[_0x6878('0xe')]);router[_0x6878('0xb')]('/:id/sub_intervals',auth[_0x6878('0xd')](),controller[_0x6878('0xf')]);router[_0x6878('0x10')]('/',auth[_0x6878('0xd')](),controller['create']);router[_0x6878('0x10')]('/:id/sub_intervals',auth[_0x6878('0xd')](),controller[_0x6878('0x11')]);router[_0x6878('0x10')](_0x6878('0x12'),auth[_0x6878('0xd')](),controller[_0x6878('0x13')]);router[_0x6878('0x14')](_0x6878('0x15'),auth[_0x6878('0xd')](),controller[_0x6878('0x16')]);router[_0x6878('0x17')](_0x6878('0x15'),auth[_0x6878('0xd')](),controller[_0x6878('0x18')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81ff=['exports','STRING'];(function(_0x28e74e,_0x53fdf1){var _0xb45ac1=function(_0x311a7a){while(--_0x311a7a){_0x28e74e['push'](_0x28e74e['shift']());}};_0xb45ac1(++_0x53fdf1);}(_0x81ff,0x17e));var _0xf81f=function(_0x5d6312,_0x531408){_0x5d6312=_0x5d6312-0x0;var _0x507bf4=_0x81ff[_0x5d6312];return _0x507bf4;};'use strict';var Sequelize=require('sequelize');module[_0xf81f('0x0')]={'name':{'type':Sequelize[_0xf81f('0x1')]},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0xf81f('0x1')],'allowNull':!![]}};
\ No newline at end of file
+var _0x36f9=['STRING','exports'];(function(_0x1eaeb0,_0x876064){var _0x3570f2=function(_0x459d8a){while(--_0x459d8a){_0x1eaeb0['push'](_0x1eaeb0['shift']());}};_0x3570f2(++_0x876064);}(_0x36f9,0x12f));var _0x936f=function(_0xfdcf53,_0x359466){_0xfdcf53=_0xfdcf53-0x0;var _0x1957d2=_0x36f9[_0xfdcf53];return _0x1957d2;};'use strict';var Sequelize=require('sequelize');module[_0x936f('0x0')]={'name':{'type':Sequelize[_0x936f('0x1')]},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x936f('0x1')],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd03=['Intervals','error','stack','name','send','map','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','type','VIRTUAL','filter','merge','options','includeAll','include','findAll','catch','show','Interval','find','create','body','user','role','UserProfileSection','params','addInterval','IntervalId','findOne','order','getIntervals','addIntervals','sequelize','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','offset','undefined','limit','count','apply','reject','then','destroy','get'];(function(_0x2608a7,_0xf80a39){var _0x19edd0=function(_0x2c5298){while(--_0x2c5298){_0x2608a7['push'](_0x2608a7['shift']());}};_0x19edd0(++_0xf80a39);}(_0xbd03,0x1d9));var _0x3bd0=function(_0x26da89,_0x264785){_0x26da89=_0x26da89-0x0;var _0xc95b7b=_0xbd03[_0x26da89];return _0xc95b7b;};'use strict';var emlformat=require(_0x3bd0('0x0'));var rimraf=require(_0x3bd0('0x1'));var zipdir=require(_0x3bd0('0x2'));var jsonpatch=require(_0x3bd0('0x3'));var rp=require(_0x3bd0('0x4'));var moment=require(_0x3bd0('0x5'));var BPromise=require(_0x3bd0('0x6'));var Mustache=require(_0x3bd0('0x7'));var util=require('util');var path=require(_0x3bd0('0x8'));var sox=require('sox');var csv=require(_0x3bd0('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3bd0('0xa'));var _=require(_0x3bd0('0xb'));var squel=require(_0x3bd0('0xc'));var crypto=require(_0x3bd0('0xd'));var jsforce=require(_0x3bd0('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3bd0('0xf'));var Papa=require(_0x3bd0('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x3bd0('0x11'));var as=require(_0x3bd0('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3bd0('0x13'))('api');var utils=require(_0x3bd0('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x3bd0('0x15'));var db=require(_0x3bd0('0x16'))['db'];var extensions=require(_0x3bd0('0x17'));function respondWithStatusCode(_0x521619,_0x1aee12){_0x1aee12=_0x1aee12||0xcc;return function(_0x207940){if(_0x207940){return _0x521619[_0x3bd0('0x18')](_0x1aee12);}return _0x521619[_0x3bd0('0x19')](_0x1aee12)[_0x3bd0('0x1a')]();};}function respondWithResult(_0x2260e9,_0x3d3996){_0x3d3996=_0x3d3996||0xc8;return function(_0x7d9c5d){if(_0x7d9c5d){return _0x2260e9[_0x3bd0('0x19')](_0x3d3996)[_0x3bd0('0x1b')](_0x7d9c5d);}};}function respondWithFilteredResult(_0x16fd0c,_0x1a647a){return function(_0x28ecb4){if(_0x28ecb4){var _0x231b91=typeof _0x1a647a[_0x3bd0('0x1c')]===_0x3bd0('0x1d')&&typeof _0x1a647a[_0x3bd0('0x1e')]===_0x3bd0('0x1d');var _0x1bc75d=_0x28ecb4[_0x3bd0('0x1f')];var _0x26f821=_0x231b91?0x0:_0x1a647a[_0x3bd0('0x1c')];var _0x5d20d4=_0x231b91?_0x28ecb4[_0x3bd0('0x1f')]:_0x1a647a[_0x3bd0('0x1c')]+_0x1a647a[_0x3bd0('0x1e')];var _0xe53d2a;if(_0x5d20d4>=_0x1bc75d){_0x5d20d4=_0x1bc75d;_0xe53d2a=0xc8;}else{_0xe53d2a=0xce;}_0x16fd0c['status'](_0xe53d2a);return _0x16fd0c['set']('Content-Range',_0x26f821+'-'+_0x5d20d4+'/'+_0x1bc75d)[_0x3bd0('0x1b')](_0x28ecb4);}return null;};}function patchUpdates(_0x44fde2){return function(_0x4cf6aa){try{jsonpatch[_0x3bd0('0x20')](_0x4cf6aa,_0x44fde2,!![]);}catch(_0x2fa665){return BPromise[_0x3bd0('0x21')](_0x2fa665);}return _0x4cf6aa['save']();};}function saveUpdates(_0x3c97f8,_0x27ae73){return function(_0xa37110){if(_0xa37110){return _0xa37110['update'](_0x3c97f8)[_0x3bd0('0x22')](function(_0x32e8c1){return _0x32e8c1;});}return null;};}function removeEntity(_0x10dc0e,_0x3ba5dd){return function(_0x5bd9c8){if(_0x5bd9c8){return _0x5bd9c8[_0x3bd0('0x23')]()['then'](function(){var _0x4a40c0=_0x5bd9c8[_0x3bd0('0x24')]({'plain':!![]});var _0x4cb9c4=_0x3bd0('0x25');return db['UserProfileResource'][_0x3bd0('0x23')]({'where':{'type':_0x4cb9c4,'resourceId':_0x4a40c0['id']}})['then'](function(){return _0x5bd9c8;});})[_0x3bd0('0x22')](function(){_0x10dc0e['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x16c3ac,_0x2fd852){return function(_0x4e1b13){if(!_0x4e1b13){_0x16c3ac[_0x3bd0('0x18')](0x194);}return _0x4e1b13;};}function handleError(_0x2fa05d,_0x29a397){_0x29a397=_0x29a397||0x1f4;return function(_0x3cf8de){logger[_0x3bd0('0x26')](_0x3cf8de[_0x3bd0('0x27')]);if(_0x3cf8de['name']){delete _0x3cf8de[_0x3bd0('0x28')];}_0x2fa05d[_0x3bd0('0x19')](_0x29a397)[_0x3bd0('0x29')](_0x3cf8de);};}exports['index']=function(_0xae1faf,_0x2d9228){var _0x1ebcf6={},_0x51aa38={},_0x51da44={'count':0x0,'rows':[]};var _0x1c0f2d=_[_0x3bd0('0x2a')](db['Interval'][_0x3bd0('0x2b')],function(_0x35bf62){return{'name':_0x35bf62[_0x3bd0('0x2c')],'type':_0x35bf62['type'][_0x3bd0('0x2d')]};});_0x51aa38[_0x3bd0('0x2e')]=_[_0x3bd0('0x2a')](_0x1c0f2d,_0x3bd0('0x28'));_0x51aa38[_0x3bd0('0x2f')]=_[_0x3bd0('0x30')](_0xae1faf[_0x3bd0('0x2f')]);_0x51aa38[_0x3bd0('0x31')]=_[_0x3bd0('0x32')](_0x51aa38[_0x3bd0('0x2e')],_0x51aa38[_0x3bd0('0x2f')]);_0x1ebcf6[_0x3bd0('0x33')]=_['intersection'](_0x51aa38['model'],qs[_0x3bd0('0x34')](_0xae1faf['query'][_0x3bd0('0x34')]));_0x1ebcf6[_0x3bd0('0x33')]=_0x1ebcf6[_0x3bd0('0x33')][_0x3bd0('0x35')]?_0x1ebcf6[_0x3bd0('0x33')]:_0x51aa38[_0x3bd0('0x2e')];if(!_0xae1faf[_0x3bd0('0x2f')][_0x3bd0('0x36')](_0x3bd0('0x37'))){_0x1ebcf6[_0x3bd0('0x1e')]=qs['limit'](_0xae1faf[_0x3bd0('0x2f')][_0x3bd0('0x1e')]);_0x1ebcf6[_0x3bd0('0x1c')]=qs[_0x3bd0('0x1c')](_0xae1faf[_0x3bd0('0x2f')]['offset']);}_0x1ebcf6['order']=qs['sort'](_0xae1faf[_0x3bd0('0x2f')][_0x3bd0('0x38')]);_0x1ebcf6[_0x3bd0('0x39')]=qs[_0x3bd0('0x31')](_[_0x3bd0('0x3a')](_0xae1faf['query'],_0x51aa38['filters']),_0x1c0f2d);if(_0xae1faf[_0x3bd0('0x2f')]['filter']){_0x1ebcf6[_0x3bd0('0x39')]=_['merge'](_0x1ebcf6[_0x3bd0('0x39')],{'$or':_['map'](_0x1c0f2d,function(_0x18efb0){if(_0x18efb0[_0x3bd0('0x3b')]!==_0x3bd0('0x3c')){var _0x9a8d62={};_0x9a8d62[_0x18efb0[_0x3bd0('0x28')]]={'$like':'%'+_0xae1faf['query'][_0x3bd0('0x3d')]+'%'};return _0x9a8d62;}})});}_0x1ebcf6=_[_0x3bd0('0x3e')]({},_0x1ebcf6,_0xae1faf[_0x3bd0('0x3f')]);var _0x133f52={'where':_0x1ebcf6[_0x3bd0('0x39')]};return db['Interval']['count'](_0x133f52)['then'](function(_0x56c956){_0x51da44[_0x3bd0('0x1f')]=_0x56c956;if(_0xae1faf[_0x3bd0('0x2f')][_0x3bd0('0x40')]){_0x1ebcf6[_0x3bd0('0x41')]=[{'all':!![]}];}return db['Interval'][_0x3bd0('0x42')](_0x1ebcf6);})['then'](function(_0x20f8b6){_0x51da44['rows']=_0x20f8b6;return _0x51da44;})[_0x3bd0('0x22')](respondWithFilteredResult(_0x2d9228,_0x1ebcf6))[_0x3bd0('0x43')](handleError(_0x2d9228,null));};exports[_0x3bd0('0x44')]=function(_0x347795,_0x410a8d){var _0xdfe97a={'raw':!![],'where':{'id':_0x347795['params']['id']}},_0x182e28={};_0x182e28['model']=_[_0x3bd0('0x30')](db['Interval'][_0x3bd0('0x2b')]);_0x182e28[_0x3bd0('0x2f')]=_[_0x3bd0('0x30')](_0x347795['query']);_0x182e28['filters']=_[_0x3bd0('0x32')](_0x182e28[_0x3bd0('0x2e')],_0x182e28['query']);_0xdfe97a[_0x3bd0('0x33')]=_[_0x3bd0('0x32')](_0x182e28[_0x3bd0('0x2e')],qs['fields'](_0x347795[_0x3bd0('0x2f')][_0x3bd0('0x34')]));_0xdfe97a[_0x3bd0('0x33')]=_0xdfe97a['attributes']['length']?_0xdfe97a[_0x3bd0('0x33')]:_0x182e28[_0x3bd0('0x2e')];if(_0x347795[_0x3bd0('0x2f')][_0x3bd0('0x40')]){_0xdfe97a[_0x3bd0('0x41')]=[{'all':!![]}];}_0xdfe97a=_[_0x3bd0('0x3e')]({},_0xdfe97a,_0x347795[_0x3bd0('0x3f')]);return db[_0x3bd0('0x45')][_0x3bd0('0x46')](_0xdfe97a)[_0x3bd0('0x22')](handleEntityNotFound(_0x410a8d,null))[_0x3bd0('0x22')](respondWithResult(_0x410a8d,null))['catch'](handleError(_0x410a8d,null));};exports[_0x3bd0('0x47')]=function(_0x50f3ce,_0x2aca8c){return db[_0x3bd0('0x45')][_0x3bd0('0x47')](_0x50f3ce[_0x3bd0('0x48')],{})[_0x3bd0('0x22')](function(_0x1beeb2){var _0x9f88f6=_0x50f3ce[_0x3bd0('0x49')][_0x3bd0('0x24')]({'plain':!![]});if(!_0x9f88f6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x9f88f6[_0x3bd0('0x4a')]===_0x3bd0('0x49')){var _0x63ab0b=_0x1beeb2[_0x3bd0('0x24')]({'plain':!![]});var _0x516a0b=_0x3bd0('0x25');return db[_0x3bd0('0x4b')]['find']({'where':{'name':_0x516a0b,'userProfileId':_0x9f88f6['userProfileId']},'raw':!![]})['then'](function(_0x8a7978){if(_0x8a7978&&_0x8a7978['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x63ab0b[_0x3bd0('0x28')],'resourceId':_0x63ab0b['id'],'type':_0x8a7978[_0x3bd0('0x28')],'sectionId':_0x8a7978['id']},{})[_0x3bd0('0x22')](function(){return _0x1beeb2;});}else{return _0x1beeb2;}})[_0x3bd0('0x43')](function(_0x2704b0){logger[_0x3bd0('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2704b0);throw _0x2704b0;});}return _0x1beeb2;})[_0x3bd0('0x22')](respondWithResult(_0x2aca8c,0xc9))[_0x3bd0('0x43')](handleError(_0x2aca8c,null));};exports['update']=function(_0x5355c9,_0x55a5df){if(_0x5355c9[_0x3bd0('0x48')]['id']){delete _0x5355c9[_0x3bd0('0x48')]['id'];}return db[_0x3bd0('0x45')][_0x3bd0('0x46')]({'where':{'id':_0x5355c9[_0x3bd0('0x4c')]['id']}})[_0x3bd0('0x22')](handleEntityNotFound(_0x55a5df,null))['then'](saveUpdates(_0x5355c9[_0x3bd0('0x48')],null))['then'](respondWithResult(_0x55a5df,null))[_0x3bd0('0x43')](handleError(_0x55a5df,null));};exports[_0x3bd0('0x23')]=function(_0x30f73d,_0x3e0fb0){return db['Interval'][_0x3bd0('0x46')]({'where':{'id':_0x30f73d[_0x3bd0('0x4c')]['id']}})[_0x3bd0('0x22')](handleEntityNotFound(_0x3e0fb0,null))[_0x3bd0('0x22')](removeEntity(_0x3e0fb0,null))[_0x3bd0('0x43')](handleError(_0x3e0fb0,null));};exports[_0x3bd0('0x4d')]=function(_0x1c1f8f,_0x4a2685,_0x1a21e6){if(_0x1c1f8f[_0x3bd0('0x48')]['id']){delete _0x1c1f8f[_0x3bd0('0x48')]['id'];}return db[_0x3bd0('0x45')]['find']({'where':{'id':_0x1c1f8f['params']['id']}})[_0x3bd0('0x22')](handleEntityNotFound(_0x4a2685,null))[_0x3bd0('0x22')](function(_0xfe354b){if(_0xfe354b){_0x1c1f8f[_0x3bd0('0x48')][_0x3bd0('0x4e')]=_0xfe354b['id'];return db['Interval']['create'](_0x1c1f8f[_0x3bd0('0x48')]);}})[_0x3bd0('0x22')](respondWithResult(_0x4a2685,null))[_0x3bd0('0x43')](handleError(_0x4a2685,null));};exports['getIntervals']=function(_0x37902a,_0x413e28,_0x54c0d1){var _0x204248={};var _0x4cc3c4={};var _0x267ad5;var _0x35cca2;return db[_0x3bd0('0x45')][_0x3bd0('0x4f')]({'where':{'id':_0x37902a[_0x3bd0('0x4c')]['id']}})[_0x3bd0('0x22')](handleEntityNotFound(_0x413e28,null))['then'](function(_0x4914de){if(_0x4914de){_0x267ad5=_0x4914de;_0x4cc3c4['model']=_[_0x3bd0('0x30')](db[_0x3bd0('0x45')][_0x3bd0('0x2b')]);_0x4cc3c4[_0x3bd0('0x2f')]=_['keys'](_0x37902a[_0x3bd0('0x2f')]);_0x4cc3c4[_0x3bd0('0x31')]=_[_0x3bd0('0x32')](_0x4cc3c4[_0x3bd0('0x2e')],_0x4cc3c4[_0x3bd0('0x2f')]);_0x204248[_0x3bd0('0x33')]=_[_0x3bd0('0x32')](_0x4cc3c4[_0x3bd0('0x2e')],qs[_0x3bd0('0x34')](_0x37902a[_0x3bd0('0x2f')][_0x3bd0('0x34')]));_0x204248[_0x3bd0('0x33')]=_0x204248[_0x3bd0('0x33')][_0x3bd0('0x35')]?_0x204248[_0x3bd0('0x33')]:_0x4cc3c4[_0x3bd0('0x2e')];_0x204248[_0x3bd0('0x50')]=qs[_0x3bd0('0x38')](_0x37902a[_0x3bd0('0x2f')][_0x3bd0('0x38')]);_0x204248[_0x3bd0('0x39')]=qs[_0x3bd0('0x31')](_['pick'](_0x37902a['query'],_0x4cc3c4[_0x3bd0('0x31')]));if(_0x37902a[_0x3bd0('0x2f')][_0x3bd0('0x3d')]){_0x204248['where']=_[_0x3bd0('0x3e')](_0x204248[_0x3bd0('0x39')],{'$or':_[_0x3bd0('0x2a')](_0x204248[_0x3bd0('0x33')],function(_0x7a9c2c){var _0x61814a={};_0x61814a[_0x7a9c2c]={'$like':'%'+_0x37902a[_0x3bd0('0x2f')][_0x3bd0('0x3d')]+'%'};return _0x61814a;})});}_0x204248=_['merge']({},_0x204248,_0x37902a[_0x3bd0('0x3f')]);return _0x267ad5['getIntervals'](_0x204248);}})[_0x3bd0('0x22')](function(_0x3a4afb){if(_0x3a4afb){_0x35cca2=_0x3a4afb[_0x3bd0('0x35')];if(!_0x37902a['query'][_0x3bd0('0x36')](_0x3bd0('0x37'))){_0x204248['limit']=qs[_0x3bd0('0x1e')](_0x37902a[_0x3bd0('0x2f')]['limit']);_0x204248[_0x3bd0('0x1c')]=qs[_0x3bd0('0x1c')](_0x37902a[_0x3bd0('0x2f')][_0x3bd0('0x1c')]);}return _0x267ad5[_0x3bd0('0x51')](_0x204248);}})[_0x3bd0('0x22')](function(_0x1c4abe){if(_0x1c4abe){return _0x1c4abe?{'count':_0x35cca2,'rows':_0x1c4abe}:null;}})[_0x3bd0('0x22')](respondWithResult(_0x413e28,null))[_0x3bd0('0x43')](handleError(_0x413e28,null));};exports[_0x3bd0('0x52')]=function(_0x3feb08,_0x3444e3,_0x5eae59){return db[_0x3bd0('0x45')]['findOne']({'where':{'id':_0x3feb08['params']['id']}})[_0x3bd0('0x22')](handleEntityNotFound(_0x3444e3,null))['then'](function(_0x22582f){if(_0x22582f){return db[_0x3bd0('0x53')]['transaction'](function(_0x3f20be){return db[_0x3bd0('0x45')][_0x3bd0('0x23')]({'where':{'IntervalId':_0x3feb08[_0x3bd0('0x4c')]['id']},'transaction':_0x3f20be})[_0x3bd0('0x22')](function(_0x390dd1){var _0x6b7c07=_[_0x3bd0('0x2a')](_0x3feb08['body'],function(_0x34e57d){delete _0x34e57d['id'];_0x34e57d[_0x3bd0('0x4e')]=_0x3feb08[_0x3bd0('0x4c')]['id'];return _0x34e57d;});return db[_0x3bd0('0x45')][_0x3bd0('0x54')](_0x6b7c07,{'transaction':_0x3f20be});});})[_0x3bd0('0x22')](function(){return db[_0x3bd0('0x45')][_0x3bd0('0x42')]({'where':{'IntervalId':_0x3feb08[_0x3bd0('0x4c')]['id']}});});}})[_0x3bd0('0x22')](respondWithResult(_0x3444e3,null))[_0x3bd0('0x43')](handleError(_0x3444e3,null));};
\ No newline at end of file
+var _0x2beb=['catch','show','keys','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','body','params','addInterval','IntervalId','getIntervals','findOne','order','sequelize','transaction','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','path','sox','to-csv','fs-extra','lodash','jsforce','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','status','end','json','offset','limit','undefined','count','set','Content-Range','update','then','destroy','get','Intervals','sendStatus','error','stack','name','send','map','Interval','rawAttributes','fieldName','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','type','VIRTUAL','includeAll','include','findAll','rows'];(function(_0x3b8432,_0x438ad8){var _0x4ba4b9=function(_0x28409f){while(--_0x28409f){_0x3b8432['push'](_0x3b8432['shift']());}};_0x4ba4b9(++_0x438ad8);}(_0x2beb,0x1be));var _0xb2be=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x2beb[_0x2c91e9];return _0x13f0ff;};'use strict';var emlformat=require(_0xb2be('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb2be('0x1'));var jsonpatch=require(_0xb2be('0x2'));var rp=require(_0xb2be('0x3'));var moment=require('moment');var BPromise=require(_0xb2be('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0xb2be('0x5'));var sox=require(_0xb2be('0x6'));var csv=require(_0xb2be('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb2be('0x8'));var _=require(_0xb2be('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xb2be('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xb2be('0x7'));var querystring=require(_0xb2be('0xb'));var Papa=require('papaparse');var Redis=require(_0xb2be('0xc'));var authService=require('../../components/auth/service');var qs=require(_0xb2be('0xd'));var as=require(_0xb2be('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb2be('0xf'))('api');var utils=require('../../config/utils');var config=require(_0xb2be('0x10'));var licenseUtil=require(_0xb2be('0x11'));var db=require(_0xb2be('0x12'))['db'];var extensions=require(_0xb2be('0x13'));function respondWithStatusCode(_0x2e43cd,_0x265558){_0x265558=_0x265558||0xcc;return function(_0x10ae38){if(_0x10ae38){return _0x2e43cd['sendStatus'](_0x265558);}return _0x2e43cd[_0xb2be('0x14')](_0x265558)[_0xb2be('0x15')]();};}function respondWithResult(_0x3e2068,_0x58fe2e){_0x58fe2e=_0x58fe2e||0xc8;return function(_0x315ded){if(_0x315ded){return _0x3e2068[_0xb2be('0x14')](_0x58fe2e)[_0xb2be('0x16')](_0x315ded);}};}function respondWithFilteredResult(_0x1eedbe,_0x30e0ba){return function(_0xe9edfd){if(_0xe9edfd){var _0x2b41a1=typeof _0x30e0ba[_0xb2be('0x17')]==='undefined'&&typeof _0x30e0ba[_0xb2be('0x18')]===_0xb2be('0x19');var _0x4abb1c=_0xe9edfd[_0xb2be('0x1a')];var _0x3f7ae6=_0x2b41a1?0x0:_0x30e0ba[_0xb2be('0x17')];var _0x42fd42=_0x2b41a1?_0xe9edfd[_0xb2be('0x1a')]:_0x30e0ba['offset']+_0x30e0ba[_0xb2be('0x18')];var _0x11becf;if(_0x42fd42>=_0x4abb1c){_0x42fd42=_0x4abb1c;_0x11becf=0xc8;}else{_0x11becf=0xce;}_0x1eedbe['status'](_0x11becf);return _0x1eedbe[_0xb2be('0x1b')](_0xb2be('0x1c'),_0x3f7ae6+'-'+_0x42fd42+'/'+_0x4abb1c)[_0xb2be('0x16')](_0xe9edfd);}return null;};}function patchUpdates(_0x573280){return function(_0x5445b9){try{jsonpatch['apply'](_0x5445b9,_0x573280,!![]);}catch(_0x35394a){return BPromise['reject'](_0x35394a);}return _0x5445b9['save']();};}function saveUpdates(_0x52d8c6,_0x240e9e){return function(_0x357bc0){if(_0x357bc0){return _0x357bc0[_0xb2be('0x1d')](_0x52d8c6)[_0xb2be('0x1e')](function(_0x15f80f){return _0x15f80f;});}return null;};}function removeEntity(_0x52745f,_0x1e9153){return function(_0x98691a){if(_0x98691a){return _0x98691a[_0xb2be('0x1f')]()[_0xb2be('0x1e')](function(){var _0xb9a5e5=_0x98691a[_0xb2be('0x20')]({'plain':!![]});var _0x539a83=_0xb2be('0x21');return db['UserProfileResource']['destroy']({'where':{'type':_0x539a83,'resourceId':_0xb9a5e5['id']}})[_0xb2be('0x1e')](function(){return _0x98691a;});})[_0xb2be('0x1e')](function(){_0x52745f[_0xb2be('0x14')](0xcc)[_0xb2be('0x15')]();});}};}function handleEntityNotFound(_0x1fe71a,_0xace372){return function(_0x448a18){if(!_0x448a18){_0x1fe71a[_0xb2be('0x22')](0x194);}return _0x448a18;};}function handleError(_0xf2cc87,_0x56b362){_0x56b362=_0x56b362||0x1f4;return function(_0x156992){logger[_0xb2be('0x23')](_0x156992[_0xb2be('0x24')]);if(_0x156992[_0xb2be('0x25')]){delete _0x156992[_0xb2be('0x25')];}_0xf2cc87[_0xb2be('0x14')](_0x56b362)[_0xb2be('0x26')](_0x156992);};}exports['index']=function(_0x551654,_0x58ee70){var _0x4e186b={},_0x85d91a={},_0x12156d={'count':0x0,'rows':[]};var _0x5a127a=_[_0xb2be('0x27')](db[_0xb2be('0x28')][_0xb2be('0x29')],function(_0xa6ffa3){return{'name':_0xa6ffa3[_0xb2be('0x2a')],'type':_0xa6ffa3['type'][_0xb2be('0x2b')]};});_0x85d91a['model']=_[_0xb2be('0x27')](_0x5a127a,_0xb2be('0x25'));_0x85d91a['query']=_['keys'](_0x551654[_0xb2be('0x2c')]);_0x85d91a[_0xb2be('0x2d')]=_[_0xb2be('0x2e')](_0x85d91a[_0xb2be('0x2f')],_0x85d91a[_0xb2be('0x2c')]);_0x4e186b[_0xb2be('0x30')]=_[_0xb2be('0x2e')](_0x85d91a[_0xb2be('0x2f')],qs[_0xb2be('0x31')](_0x551654['query']['fields']));_0x4e186b['attributes']=_0x4e186b[_0xb2be('0x30')][_0xb2be('0x32')]?_0x4e186b[_0xb2be('0x30')]:_0x85d91a[_0xb2be('0x2f')];if(!_0x551654[_0xb2be('0x2c')][_0xb2be('0x33')](_0xb2be('0x34'))){_0x4e186b[_0xb2be('0x18')]=qs['limit'](_0x551654['query'][_0xb2be('0x18')]);_0x4e186b[_0xb2be('0x17')]=qs[_0xb2be('0x17')](_0x551654['query'][_0xb2be('0x17')]);}_0x4e186b['order']=qs[_0xb2be('0x35')](_0x551654[_0xb2be('0x2c')][_0xb2be('0x35')]);_0x4e186b[_0xb2be('0x36')]=qs['filters'](_[_0xb2be('0x37')](_0x551654['query'],_0x85d91a['filters']),_0x5a127a);if(_0x551654[_0xb2be('0x2c')][_0xb2be('0x38')]){_0x4e186b['where']=_[_0xb2be('0x39')](_0x4e186b[_0xb2be('0x36')],{'$or':_[_0xb2be('0x27')](_0x5a127a,function(_0x4a6ef5){if(_0x4a6ef5[_0xb2be('0x3a')]!==_0xb2be('0x3b')){var _0x4ce928={};_0x4ce928[_0x4a6ef5[_0xb2be('0x25')]]={'$like':'%'+_0x551654['query']['filter']+'%'};return _0x4ce928;}})});}_0x4e186b=_['merge']({},_0x4e186b,_0x551654['options']);var _0x40d43f={'where':_0x4e186b[_0xb2be('0x36')]};return db[_0xb2be('0x28')]['count'](_0x40d43f)[_0xb2be('0x1e')](function(_0x2e2899){_0x12156d[_0xb2be('0x1a')]=_0x2e2899;if(_0x551654['query'][_0xb2be('0x3c')]){_0x4e186b[_0xb2be('0x3d')]=[{'all':!![]}];}return db[_0xb2be('0x28')][_0xb2be('0x3e')](_0x4e186b);})[_0xb2be('0x1e')](function(_0xd7e501){_0x12156d[_0xb2be('0x3f')]=_0xd7e501;return _0x12156d;})[_0xb2be('0x1e')](respondWithFilteredResult(_0x58ee70,_0x4e186b))[_0xb2be('0x40')](handleError(_0x58ee70,null));};exports[_0xb2be('0x41')]=function(_0x197977,_0x5e460f){var _0x29a51c={'raw':!![],'where':{'id':_0x197977['params']['id']}},_0x329d83={};_0x329d83[_0xb2be('0x2f')]=_[_0xb2be('0x42')](db['Interval'][_0xb2be('0x29')]);_0x329d83[_0xb2be('0x2c')]=_[_0xb2be('0x42')](_0x197977[_0xb2be('0x2c')]);_0x329d83[_0xb2be('0x2d')]=_[_0xb2be('0x2e')](_0x329d83['model'],_0x329d83[_0xb2be('0x2c')]);_0x29a51c[_0xb2be('0x30')]=_[_0xb2be('0x2e')](_0x329d83[_0xb2be('0x2f')],qs[_0xb2be('0x31')](_0x197977[_0xb2be('0x2c')]['fields']));_0x29a51c[_0xb2be('0x30')]=_0x29a51c[_0xb2be('0x30')][_0xb2be('0x32')]?_0x29a51c[_0xb2be('0x30')]:_0x329d83[_0xb2be('0x2f')];if(_0x197977[_0xb2be('0x2c')][_0xb2be('0x3c')]){_0x29a51c['include']=[{'all':!![]}];}_0x29a51c=_['merge']({},_0x29a51c,_0x197977['options']);return db[_0xb2be('0x28')][_0xb2be('0x43')](_0x29a51c)[_0xb2be('0x1e')](handleEntityNotFound(_0x5e460f,null))['then'](respondWithResult(_0x5e460f,null))['catch'](handleError(_0x5e460f,null));};exports['create']=function(_0x1443c0,_0x45e43d){return db[_0xb2be('0x28')][_0xb2be('0x44')](_0x1443c0['body'],{})['then'](function(_0x4aef72){var _0x3b1880=_0x1443c0[_0xb2be('0x45')][_0xb2be('0x20')]({'plain':!![]});if(!_0x3b1880)throw new Error(_0xb2be('0x46'));if(_0x3b1880[_0xb2be('0x47')]===_0xb2be('0x45')){var _0xabef33=_0x4aef72['get']({'plain':!![]});var _0x19050c=_0xb2be('0x21');return db[_0xb2be('0x48')][_0xb2be('0x43')]({'where':{'name':_0x19050c,'userProfileId':_0x3b1880[_0xb2be('0x49')]},'raw':!![]})[_0xb2be('0x1e')](function(_0x9795f5){if(_0x9795f5&&_0x9795f5[_0xb2be('0x4a')]===0x0){return db[_0xb2be('0x4b')][_0xb2be('0x44')]({'name':_0xabef33[_0xb2be('0x25')],'resourceId':_0xabef33['id'],'type':_0x9795f5[_0xb2be('0x25')],'sectionId':_0x9795f5['id']},{})[_0xb2be('0x1e')](function(){return _0x4aef72;});}else{return _0x4aef72;}})[_0xb2be('0x40')](function(_0x32b1e2){logger[_0xb2be('0x23')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x32b1e2);throw _0x32b1e2;});}return _0x4aef72;})[_0xb2be('0x1e')](respondWithResult(_0x45e43d,0xc9))[_0xb2be('0x40')](handleError(_0x45e43d,null));};exports[_0xb2be('0x1d')]=function(_0x569545,_0x269208){if(_0x569545['body']['id']){delete _0x569545[_0xb2be('0x4c')]['id'];}return db['Interval'][_0xb2be('0x43')]({'where':{'id':_0x569545[_0xb2be('0x4d')]['id']}})[_0xb2be('0x1e')](handleEntityNotFound(_0x269208,null))[_0xb2be('0x1e')](saveUpdates(_0x569545[_0xb2be('0x4c')],null))[_0xb2be('0x1e')](respondWithResult(_0x269208,null))[_0xb2be('0x40')](handleError(_0x269208,null));};exports['destroy']=function(_0x5a4dde,_0x16862d){return db[_0xb2be('0x28')][_0xb2be('0x43')]({'where':{'id':_0x5a4dde['params']['id']}})[_0xb2be('0x1e')](handleEntityNotFound(_0x16862d,null))[_0xb2be('0x1e')](removeEntity(_0x16862d,null))[_0xb2be('0x40')](handleError(_0x16862d,null));};exports[_0xb2be('0x4e')]=function(_0x51c9ec,_0x578a81,_0x55b2b5){if(_0x51c9ec[_0xb2be('0x4c')]['id']){delete _0x51c9ec['body']['id'];}return db[_0xb2be('0x28')][_0xb2be('0x43')]({'where':{'id':_0x51c9ec['params']['id']}})[_0xb2be('0x1e')](handleEntityNotFound(_0x578a81,null))['then'](function(_0x56276d){if(_0x56276d){_0x51c9ec[_0xb2be('0x4c')][_0xb2be('0x4f')]=_0x56276d['id'];return db[_0xb2be('0x28')][_0xb2be('0x44')](_0x51c9ec[_0xb2be('0x4c')]);}})[_0xb2be('0x1e')](respondWithResult(_0x578a81,null))[_0xb2be('0x40')](handleError(_0x578a81,null));};exports[_0xb2be('0x50')]=function(_0x4abe14,_0x8b32b8,_0x11bd5d){var _0x40a3a2={};var _0x32ee58={};var _0x1edafe;var _0x2d261e;return db[_0xb2be('0x28')][_0xb2be('0x51')]({'where':{'id':_0x4abe14[_0xb2be('0x4d')]['id']}})[_0xb2be('0x1e')](handleEntityNotFound(_0x8b32b8,null))[_0xb2be('0x1e')](function(_0x300025){if(_0x300025){_0x1edafe=_0x300025;_0x32ee58[_0xb2be('0x2f')]=_[_0xb2be('0x42')](db[_0xb2be('0x28')][_0xb2be('0x29')]);_0x32ee58[_0xb2be('0x2c')]=_[_0xb2be('0x42')](_0x4abe14['query']);_0x32ee58[_0xb2be('0x2d')]=_['intersection'](_0x32ee58[_0xb2be('0x2f')],_0x32ee58[_0xb2be('0x2c')]);_0x40a3a2[_0xb2be('0x30')]=_['intersection'](_0x32ee58[_0xb2be('0x2f')],qs[_0xb2be('0x31')](_0x4abe14[_0xb2be('0x2c')][_0xb2be('0x31')]));_0x40a3a2[_0xb2be('0x30')]=_0x40a3a2[_0xb2be('0x30')][_0xb2be('0x32')]?_0x40a3a2[_0xb2be('0x30')]:_0x32ee58[_0xb2be('0x2f')];_0x40a3a2[_0xb2be('0x52')]=qs[_0xb2be('0x35')](_0x4abe14[_0xb2be('0x2c')]['sort']);_0x40a3a2['where']=qs[_0xb2be('0x2d')](_[_0xb2be('0x37')](_0x4abe14[_0xb2be('0x2c')],_0x32ee58[_0xb2be('0x2d')]));if(_0x4abe14['query']['filter']){_0x40a3a2[_0xb2be('0x36')]=_[_0xb2be('0x39')](_0x40a3a2[_0xb2be('0x36')],{'$or':_[_0xb2be('0x27')](_0x40a3a2['attributes'],function(_0x2636b3){var _0x580a0a={};_0x580a0a[_0x2636b3]={'$like':'%'+_0x4abe14[_0xb2be('0x2c')][_0xb2be('0x38')]+'%'};return _0x580a0a;})});}_0x40a3a2=_['merge']({},_0x40a3a2,_0x4abe14['options']);return _0x1edafe[_0xb2be('0x50')](_0x40a3a2);}})[_0xb2be('0x1e')](function(_0x482ca0){if(_0x482ca0){_0x2d261e=_0x482ca0['length'];if(!_0x4abe14['query'][_0xb2be('0x33')]('nolimit')){_0x40a3a2[_0xb2be('0x18')]=qs[_0xb2be('0x18')](_0x4abe14[_0xb2be('0x2c')][_0xb2be('0x18')]);_0x40a3a2[_0xb2be('0x17')]=qs[_0xb2be('0x17')](_0x4abe14['query'][_0xb2be('0x17')]);}return _0x1edafe[_0xb2be('0x50')](_0x40a3a2);}})[_0xb2be('0x1e')](function(_0x469997){if(_0x469997){return _0x469997?{'count':_0x2d261e,'rows':_0x469997}:null;}})[_0xb2be('0x1e')](respondWithResult(_0x8b32b8,null))[_0xb2be('0x40')](handleError(_0x8b32b8,null));};exports['addIntervals']=function(_0x4ef4e2,_0x4ec020,_0x5c4f08){return db[_0xb2be('0x28')][_0xb2be('0x51')]({'where':{'id':_0x4ef4e2[_0xb2be('0x4d')]['id']}})[_0xb2be('0x1e')](handleEntityNotFound(_0x4ec020,null))[_0xb2be('0x1e')](function(_0x2bb6a6){if(_0x2bb6a6){return db[_0xb2be('0x53')][_0xb2be('0x54')](function(_0x58daaf){return db[_0xb2be('0x28')][_0xb2be('0x1f')]({'where':{'IntervalId':_0x4ef4e2['params']['id']},'transaction':_0x58daaf})['then'](function(_0x34f9e0){var _0x13d91b=_[_0xb2be('0x27')](_0x4ef4e2['body'],function(_0x33e90f){delete _0x33e90f['id'];_0x33e90f['IntervalId']=_0x4ef4e2[_0xb2be('0x4d')]['id'];return _0x33e90f;});return db[_0xb2be('0x28')]['bulkCreate'](_0x13d91b,{'transaction':_0x58daaf});});})[_0xb2be('0x1e')](function(){return db['Interval'][_0xb2be('0x3e')]({'where':{'IntervalId':_0x4ef4e2[_0xb2be('0x4d')]['id']}});});}})[_0xb2be('0x1e')](respondWithResult(_0x4ec020,null))[_0xb2be('0x40')](handleError(_0x4ec020,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe53c=['exports','define','tools_intervals','rewrite','lodash','bluebird','rimraf','./interval.attributes'];(function(_0x8c5746,_0x164eff){var _0x4d066f=function(_0x2cfc35){while(--_0x2cfc35){_0x8c5746['push'](_0x8c5746['shift']());}};_0x4d066f(++_0x164eff);}(_0xe53c,0x184));var _0xce53=function(_0x434903,_0x2bae84){_0x434903=_0x434903-0x0;var _0x31021e=_0xe53c[_0x434903];return _0x31021e;};'use strict';var _=require(_0xce53('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0xce53('0x1'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xce53('0x2'));var config=require('../../config/environment');var attributes=require(_0xce53('0x3'));var extensions=require('../../components/extensions/rewrite');module[_0xce53('0x4')]=function(_0x41cef3,_0x32a0a1){return _0x41cef3[_0xce53('0x5')]('Interval',attributes,{'tableName':_0xce53('0x6'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x4cf225,_0x4b59ff){extensions[_0xce53('0x7')](_0x41cef3,_0x4cf225);},'afterBulkCreate':function(_0x291759,_0x20830d,_0x587537){_0x587537();extensions[_0xce53('0x7')](_0x41cef3,_0x291759[0x0]);},'afterUpdate':function(_0x3d7bc3,_0x1f48bc){extensions['rewrite'](_0x41cef3,_0x3d7bc3);},'afterDestroy':function(_0x26ea49,_0x135cc0){extensions[_0xce53('0x7')](_0x41cef3,_0x26ea49);}}});};
\ No newline at end of file
+var _0x09db=['Interval','tools_intervals','rewrite','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../components/extensions/rewrite','exports','define'];(function(_0x2fada7,_0x173284){var _0x5ef8be=function(_0x389d7b){while(--_0x389d7b){_0x2fada7['push'](_0x2fada7['shift']());}};_0x5ef8be(++_0x173284);}(_0x09db,0x6c));var _0xb09d=function(_0xf71120,_0x25b7f9){_0xf71120=_0xf71120-0x0;var _0xbe2fd3=_0x09db[_0xf71120];return _0xbe2fd3;};'use strict';var _=require(_0xb09d('0x0'));var util=require(_0xb09d('0x1'));var logger=require(_0xb09d('0x2'))(_0xb09d('0x3'));var moment=require(_0xb09d('0x4'));var BPromise=require(_0xb09d('0x5'));var rp=require(_0xb09d('0x6'));var fs=require('fs');var path=require(_0xb09d('0x7'));var rimraf=require(_0xb09d('0x8'));var config=require('../../config/environment');var attributes=require('./interval.attributes');var extensions=require(_0xb09d('0x9'));module[_0xb09d('0xa')]=function(_0x3fae8d,_0x4ad766){return _0x3fae8d[_0xb09d('0xb')](_0xb09d('0xc'),attributes,{'tableName':_0xb09d('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x230a88,_0x370be3){extensions[_0xb09d('0xe')](_0x3fae8d,_0x230a88);},'afterBulkCreate':function(_0x486fbc,_0x5e13f3,_0x43a7ea){_0x43a7ea();extensions[_0xb09d('0xe')](_0x3fae8d,_0x486fbc[0x0]);},'afterUpdate':function(_0x447897,_0x1d54c7){extensions[_0xb09d('0xe')](_0x3fae8d,_0x447897);},'afterDestroy':function(_0x424ec7,_0x398969){extensions[_0xb09d('0xe')](_0x3fae8d,_0x424ec7);}}});};
\ 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(_0x2714ec,_0x36daa4){var _0x2608e5=function(_0x408468){while(--_0x408468){_0x2714ec['push'](_0x2714ec['shift']());}};_0x2608e5(++_0x36daa4);}(_0xa9e0,0x123));var _0x0a9e=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0xa9e0[_0x6c993a];return _0x27f547;};'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(_0x4429e0,_0xee6f1f){var _0x51a5b3=function(_0x16eb11){while(--_0x16eb11){_0x4429e0['push'](_0x4429e0['shift']());}};_0x51a5b3(++_0xee6f1f);}(_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 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 _0xadb5=['post','isAuthenticated','exports','Router','./jira.controller'];(function(_0x15597a,_0x4c7785){var _0x5565c1=function(_0x3fd6da){while(--_0x3fd6da){_0x15597a['push'](_0x15597a['shift']());}};_0x5565c1(++_0x4c7785);}(_0xadb5,0xad));var _0x5adb=function(_0x547149,_0x13ad91){_0x547149=_0x547149-0x0;var _0x28fe54=_0xadb5[_0x547149];return _0x28fe54;};'use strict';var express=require('express');var router=express[_0x5adb('0x0')]();var auth=require('../../components/auth/service');var controller=require(_0x5adb('0x1'));router[_0x5adb('0x2')]('/',auth[_0x5adb('0x3')](),controller['send']);module[_0x5adb('0x4')]=router;
\ No newline at end of file
+var _0x5f2f=['isAuthenticated','send','exports','express','Router','../../components/auth/service','./jira.controller','post'];(function(_0x1f27d7,_0x47eda3){var _0x1574b3=function(_0x34782f){while(--_0x34782f){_0x1f27d7['push'](_0x1f27d7['shift']());}};_0x1574b3(++_0x47eda3);}(_0x5f2f,0x73));var _0xf5f2=function(_0x331ebb,_0x194f50){_0x331ebb=_0x331ebb-0x0;var _0x2b2735=_0x5f2f[_0x331ebb];return _0x2b2735;};'use strict';var express=require(_0xf5f2('0x0'));var router=express[_0xf5f2('0x1')]();var auth=require(_0xf5f2('0x2'));var controller=require(_0xf5f2('0x3'));router[_0xf5f2('0x4')]('/',auth[_0xf5f2('0x5')](),controller[_0xf5f2('0x6')]);module[_0xf5f2('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe31e=['support','3eAmWpBVP0','key','MOTGUI','summary','Report','description','stringify','Bug','fields','customfield_11500','email','customfield_11501','newToken','customfield_11503','name','customfield_11504','customfield_10102','track.xcallymotion.com','/rest/api/2/issue','POST','application/json','toString','base64','request','data','end','status','statusCode','json','parse','error','Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','api.jira','write','send','body','headers','connection','remoteAddress','socket','https'];(function(_0x4148fd,_0x1d63e5){var _0x3ffb7d=function(_0x387129){while(--_0x387129){_0x4148fd['push'](_0x4148fd['shift']());}};_0x3ffb7d(++_0x1d63e5);}(_0xe31e,0x7d));var _0xee31=function(_0x179413,_0x24f433){_0x179413=_0x179413-0x0;var _0x433922=_0xe31e[_0x179413];return _0x433922;};'use strict';var BPromise=require('bluebird');var https=require(_0xee31('0x0'));var logger=require('../../config/logger')('api');var USERNAME=_0xee31('0x1');var PASSWORD=_0xee31('0x2');function openIssue(_0x47b5f9,_0x5d261f){var _0x283879={'fields':{'project':{'key':_0x47b5f9[_0xee31('0x3')]||_0xee31('0x4')},'summary':(_0x47b5f9[_0xee31('0x5')]||_0xee31('0x6'))+'\x20from\x20'+_0x47b5f9['ip'],'description':_0x47b5f9[_0xee31('0x7')]||JSON[_0xee31('0x8')](_0x47b5f9),'issuetype':{'name':_0x47b5f9['issuetype']||_0xee31('0x9')}}};_0x283879[_0xee31('0xa')][_0xee31('0xb')]=_0x47b5f9[_0xee31('0xc')];_0x283879[_0xee31('0xa')][_0xee31('0xd')]=_0x47b5f9['oldToken'];_0x283879['fields']['customfield_11502']=_0x47b5f9[_0xee31('0xe')];_0x283879[_0xee31('0xa')][_0xee31('0xf')]=_0x47b5f9[_0xee31('0x10')];_0x283879['fields'][_0xee31('0x11')]=_0x47b5f9['reason'];_0x283879[_0xee31('0xa')][_0xee31('0x12')]=_0x47b5f9['ip'];var _0x4fb818={'host':_0xee31('0x13'),'port':0x1bb,'path':_0xee31('0x14'),'method':_0xee31('0x15'),'timeout':0x4e20,'headers':{'Content-Type':_0xee31('0x16'),'Authorization':'Basic\x20'+new Buffer(USERNAME+':'+PASSWORD)[_0xee31('0x17')](_0xee31('0x18'))}};var _0x36fa0b=JSON['stringify'](_0x283879);var _0x15b917=https[_0xee31('0x19')](_0x4fb818,function(_0x5e7567){_0x5e7567['setEncoding']('utf8');var _0x578a04='';_0x5e7567['on'](_0xee31('0x1a'),function(_0x4aa6c3){_0x578a04+=_0x4aa6c3;});_0x5e7567['on'](_0xee31('0x1b'),function(){if(_0x5d261f){return _0x5d261f[_0xee31('0x1c')](_0x5e7567[_0xee31('0x1d')])[_0xee31('0x1e')](JSON[_0xee31('0x1f')](_0x578a04));}});});_0x15b917['on'](_0xee31('0x20'),function(_0x38482c){if(_0x5d261f){return _0x5d261f[_0xee31('0x1c')](0x1f4)[_0xee31('0x1e')]({'errors':[{'message':_0xee31('0x21'),'type':_0xee31('0x22')}]});}});_0x15b917[_0xee31('0x23')](_0x36fa0b);_0x15b917[_0xee31('0x1b')]();}exports['openIssue']=openIssue;exports[_0xee31('0x24')]=function(_0x3e28f9,_0x3f2bea){_0x3e28f9[_0xee31('0x25')]['ip']=_0x3e28f9[_0xee31('0x26')]['x-forwarded-for']||_0x3e28f9[_0xee31('0x27')][_0xee31('0x28')]||_0x3e28f9[_0xee31('0x29')][_0xee31('0x28')]||_0x3e28f9['connection']['socket'][_0xee31('0x28')];return openIssue(_0x3e28f9['body'],_0x3f2bea);};
\ No newline at end of file
+var _0x6c5e=['oldToken','customfield_11502','name','customfield_11504','reason','customfield_10102','track.xcallymotion.com','/rest/api/2/issue','application/json','Basic\x20','toString','base64','request','setEncoding','utf8','end','status','statusCode','json','error','Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','api.jira','write','openIssue','send','body','socket','remoteAddress','connection','../../config/logger','support','3eAmWpBVP0','key','MOTGUI','summary','Report','\x20from\x20','stringify','issuetype','Bug','customfield_11500','email','fields','customfield_11501'];(function(_0x3babb2,_0x4e832d){var _0x43e8fd=function(_0x58fa4d){while(--_0x58fa4d){_0x3babb2['push'](_0x3babb2['shift']());}};_0x43e8fd(++_0x4e832d);}(_0x6c5e,0xcd));var _0xe6c5=function(_0x1c5f93,_0x35de09){_0x1c5f93=_0x1c5f93-0x0;var _0x464e11=_0x6c5e[_0x1c5f93];return _0x464e11;};'use strict';var BPromise=require('bluebird');var https=require('https');var logger=require(_0xe6c5('0x0'))('api');var USERNAME=_0xe6c5('0x1');var PASSWORD=_0xe6c5('0x2');function openIssue(_0x187bcd,_0x1bcedf){var _0x2edf36={'fields':{'project':{'key':_0x187bcd[_0xe6c5('0x3')]||_0xe6c5('0x4')},'summary':(_0x187bcd[_0xe6c5('0x5')]||_0xe6c5('0x6'))+_0xe6c5('0x7')+_0x187bcd['ip'],'description':_0x187bcd['description']||JSON[_0xe6c5('0x8')](_0x187bcd),'issuetype':{'name':_0x187bcd[_0xe6c5('0x9')]||_0xe6c5('0xa')}}};_0x2edf36['fields'][_0xe6c5('0xb')]=_0x187bcd[_0xe6c5('0xc')];_0x2edf36[_0xe6c5('0xd')][_0xe6c5('0xe')]=_0x187bcd[_0xe6c5('0xf')];_0x2edf36[_0xe6c5('0xd')][_0xe6c5('0x10')]=_0x187bcd['newToken'];_0x2edf36['fields']['customfield_11503']=_0x187bcd[_0xe6c5('0x11')];_0x2edf36[_0xe6c5('0xd')][_0xe6c5('0x12')]=_0x187bcd[_0xe6c5('0x13')];_0x2edf36[_0xe6c5('0xd')][_0xe6c5('0x14')]=_0x187bcd['ip'];var _0x35b0cd={'host':_0xe6c5('0x15'),'port':0x1bb,'path':_0xe6c5('0x16'),'method':'POST','timeout':0x4e20,'headers':{'Content-Type':_0xe6c5('0x17'),'Authorization':_0xe6c5('0x18')+new Buffer(USERNAME+':'+PASSWORD)[_0xe6c5('0x19')](_0xe6c5('0x1a'))}};var _0x52a005=JSON[_0xe6c5('0x8')](_0x2edf36);var _0x4b3fc5=https[_0xe6c5('0x1b')](_0x35b0cd,function(_0x1db9bb){_0x1db9bb[_0xe6c5('0x1c')](_0xe6c5('0x1d'));var _0xdf8a61='';_0x1db9bb['on']('data',function(_0x260ca1){_0xdf8a61+=_0x260ca1;});_0x1db9bb['on'](_0xe6c5('0x1e'),function(){if(_0x1bcedf){return _0x1bcedf[_0xe6c5('0x1f')](_0x1db9bb[_0xe6c5('0x20')])[_0xe6c5('0x21')](JSON['parse'](_0xdf8a61));}});});_0x4b3fc5['on'](_0xe6c5('0x22'),function(_0x179530){if(_0x1bcedf){return _0x1bcedf['status'](0x1f4)[_0xe6c5('0x21')]({'errors':[{'message':_0xe6c5('0x23'),'type':_0xe6c5('0x24')}]});}});_0x4b3fc5[_0xe6c5('0x25')](_0x52a005);_0x4b3fc5[_0xe6c5('0x1e')]();}exports[_0xe6c5('0x26')]=openIssue;exports[_0xe6c5('0x27')]=function(_0x4365ad,_0x1f3ac6){_0x4365ad[_0xe6c5('0x28')]['ip']=_0x4365ad['headers']['x-forwarded-for']||_0x4365ad['connection']['remoteAddress']||_0x4365ad[_0xe6c5('0x29')][_0xe6c5('0x2a')]||_0x4365ad[_0xe6c5('0x2b')][_0xe6c5('0x29')][_0xe6c5('0x2a')];return openIssue(_0x4365ad[_0xe6c5('0x28')],_0x1f3ac6);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54ef=['/describe','describe','/:id','isAuthenticated','post','create','put','update','delete','destroy','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptyAnswerReport.controller','index','get'];(function(_0x5f5257,_0x338bdf){var _0x16acf3=function(_0x5b4650){while(--_0x5b4650){_0x5f5257['push'](_0x5f5257['shift']());}};_0x16acf3(++_0x338bdf);}(_0x54ef,0x112));var _0xf54e=function(_0x4f2883,_0x876b62){_0x4f2883=_0x4f2883-0x0;var _0x54669f=_0x54ef[_0x4f2883];return _0x54669f;};'use strict';var multer=require(_0xf54e('0x0'));var util=require(_0xf54e('0x1'));var path=require(_0xf54e('0x2'));var timeout=require('connect-timeout');var express=require(_0xf54e('0x3'));var router=express[_0xf54e('0x4')]();var fs_extra=require(_0xf54e('0x5'));var auth=require(_0xf54e('0x6'));var interaction=require(_0xf54e('0x7'));var config=require(_0xf54e('0x8'));var controller=require(_0xf54e('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0xf54e('0xa')]);router[_0xf54e('0xb')](_0xf54e('0xc'),auth['isAuthenticated'](),controller[_0xf54e('0xd')]);router['get'](_0xf54e('0xe'),auth[_0xf54e('0xf')](),controller['show']);router[_0xf54e('0x10')]('/',auth[_0xf54e('0xf')](),controller[_0xf54e('0x11')]);router[_0xf54e('0x12')]('/:id',auth[_0xf54e('0xf')](),controller[_0xf54e('0x13')]);router[_0xf54e('0x14')](_0xf54e('0xe'),auth['isAuthenticated'](),controller[_0xf54e('0x15')]);module['exports']=router;
\ No newline at end of file
+var _0xb58b=['get','isAuthenticated','/describe','describe','/:id','show','post','create','update','delete','exports','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','./jscriptyAnswerReport.controller'];(function(_0x35c42c,_0x12f68b){var _0x30bf70=function(_0x87ecde){while(--_0x87ecde){_0x35c42c['push'](_0x35c42c['shift']());}};_0x30bf70(++_0x12f68b);}(_0xb58b,0x1f1));var _0xbb58=function(_0x1490e8,_0x3df98d){_0x1490e8=_0x1490e8-0x0;var _0x15b316=_0xb58b[_0x1490e8];return _0x15b316;};'use strict';var multer=require('multer');var util=require(_0xbb58('0x0'));var path=require(_0xbb58('0x1'));var timeout=require(_0xbb58('0x2'));var express=require('express');var router=express[_0xbb58('0x3')]();var fs_extra=require(_0xbb58('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xbb58('0x5'));var config=require('../../config/environment');var controller=require(_0xbb58('0x6'));router[_0xbb58('0x7')]('/',auth[_0xbb58('0x8')](),controller['index']);router[_0xbb58('0x7')](_0xbb58('0x9'),auth[_0xbb58('0x8')](),controller[_0xbb58('0xa')]);router[_0xbb58('0x7')](_0xbb58('0xb'),auth[_0xbb58('0x8')](),controller[_0xbb58('0xc')]);router[_0xbb58('0xd')]('/',auth[_0xbb58('0x8')](),controller[_0xbb58('0xe')]);router['put'](_0xbb58('0xb'),auth['isAuthenticated'](),controller[_0xbb58('0xf')]);router[_0xbb58('0x10')](_0xbb58('0xb'),auth[_0xbb58('0x8')](),controller['destroy']);module[_0xbb58('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x50a0c2,_0x4befab){var _0x5ebadd=function(_0x3a3342){while(--_0x3a3342){_0x50a0c2['push'](_0x50a0c2['shift']());}};_0x5ebadd(++_0x4befab);}(_0x7a54,0x106));var _0x47a5=function(_0x1758f9,_0x123af6){_0x1758f9=_0x1758f9-0x0;var _0x55f3da=_0x7a54[_0x1758f9];return _0x55f3da;};'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(_0x3511d3,_0x4107ae){var _0x5d6321=function(_0x1a23da){while(--_0x1a23da){_0x3511d3['push'](_0x3511d3['shift']());}};_0x5d6321(++_0x4107ae);}(_0x7a54,0x106));var _0x47a5=function(_0x49e4e2,_0xe7047b){_0x49e4e2=_0x49e4e2-0x0;var _0x340eca=_0x7a54[_0x49e4e2];return _0x340eca;};'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 _0x72a2=['json','undefined','count','offset','limit','status','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','index','map','JscriptyAnswerReport','rawAttributes','key','keys','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','update','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','fs-extra','lodash','squel','crypto','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end'];(function(_0x17158c,_0x58cb92){var _0x734f31=function(_0x2a7a84){while(--_0x2a7a84){_0x17158c['push'](_0x17158c['shift']());}};_0x734f31(++_0x58cb92);}(_0x72a2,0x161));var _0x272a=function(_0x2f454b,_0x5161c2){_0x2f454b=_0x2f454b-0x0;var _0x279b15=_0x72a2[_0x2f454b];return _0x279b15;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x272a('0x0'));var zipdir=require(_0x272a('0x1'));var jsonpatch=require(_0x272a('0x2'));var rp=require(_0x272a('0x3'));var moment=require(_0x272a('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x272a('0x5'));var util=require('util');var path=require(_0x272a('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x272a('0x7'));var _=require(_0x272a('0x8'));var squel=require(_0x272a('0x9'));var crypto=require(_0x272a('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x272a('0xb'));var querystring=require('querystring');var Papa=require(_0x272a('0xc'));var Redis=require('ioredis');var authService=require(_0x272a('0xd'));var qs=require(_0x272a('0xe'));var as=require(_0x272a('0xf'));var hardwareService=require(_0x272a('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0x272a('0x11'));var config=require(_0x272a('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x272a('0x13'))['db'];function respondWithStatusCode(_0x7cb1fe,_0x37ee7e){_0x37ee7e=_0x37ee7e||0xcc;return function(_0xa82788){if(_0xa82788){return _0x7cb1fe[_0x272a('0x14')](_0x37ee7e);}return _0x7cb1fe['status'](_0x37ee7e)[_0x272a('0x15')]();};}function respondWithResult(_0x2143a4,_0x43fce6){_0x43fce6=_0x43fce6||0xc8;return function(_0x167a72){if(_0x167a72){return _0x2143a4['status'](_0x43fce6)[_0x272a('0x16')](_0x167a72);}};}function respondWithFilteredResult(_0x9414d6,_0x5b615a){return function(_0x4e3661){if(_0x4e3661){var _0x4cfb67=typeof _0x5b615a['offset']==='undefined'&&typeof _0x5b615a['limit']===_0x272a('0x17');var _0x48bf3d=_0x4e3661[_0x272a('0x18')];var _0x327f68=_0x4cfb67?0x0:_0x5b615a[_0x272a('0x19')];var _0x3325b2=_0x4cfb67?_0x4e3661['count']:_0x5b615a[_0x272a('0x19')]+_0x5b615a[_0x272a('0x1a')];var _0x2675be;if(_0x3325b2>=_0x48bf3d){_0x3325b2=_0x48bf3d;_0x2675be=0xc8;}else{_0x2675be=0xce;}_0x9414d6[_0x272a('0x1b')](_0x2675be);return _0x9414d6[_0x272a('0x1c')](_0x272a('0x1d'),_0x327f68+'-'+_0x3325b2+'/'+_0x48bf3d)[_0x272a('0x16')](_0x4e3661);}return null;};}function patchUpdates(_0x5cc0d6){return function(_0x393e68){try{jsonpatch[_0x272a('0x1e')](_0x393e68,_0x5cc0d6,!![]);}catch(_0x12c1c3){return BPromise[_0x272a('0x1f')](_0x12c1c3);}return _0x393e68[_0x272a('0x20')]();};}function saveUpdates(_0x297562,_0x4ac0bb){return function(_0x1bfe85){if(_0x1bfe85){return _0x1bfe85['update'](_0x297562)[_0x272a('0x21')](function(_0x504868){return _0x504868;});}return null;};}function removeEntity(_0x3ec1c3,_0x5a7003){return function(_0x13081e){if(_0x13081e){return _0x13081e[_0x272a('0x22')]()[_0x272a('0x21')](function(){_0x3ec1c3[_0x272a('0x1b')](0xcc)[_0x272a('0x15')]();});}};}function handleEntityNotFound(_0x4554b1,_0x15d35c){return function(_0x8138e2){if(!_0x8138e2){_0x4554b1[_0x272a('0x14')](0x194);}return _0x8138e2;};}function handleError(_0x4d1293,_0xc743bc){_0xc743bc=_0xc743bc||0x1f4;return function(_0x6312d4){logger[_0x272a('0x23')](_0x6312d4[_0x272a('0x24')]);if(_0x6312d4[_0x272a('0x25')]){delete _0x6312d4['name'];}_0x4d1293['status'](_0xc743bc)[_0x272a('0x26')](_0x6312d4);};}exports[_0x272a('0x27')]=function(_0x654dc6,_0x1bce15){var _0x62a99c={},_0x73707b={},_0x10d03c={'count':0x0,'rows':[]};var _0x142f1=_[_0x272a('0x28')](db[_0x272a('0x29')][_0x272a('0x2a')],function(_0x5104f3){return{'name':_0x5104f3['fieldName'],'type':_0x5104f3['type'][_0x272a('0x2b')]};});_0x73707b['model']=_[_0x272a('0x28')](_0x142f1,_0x272a('0x25'));_0x73707b['query']=_[_0x272a('0x2c')](_0x654dc6[_0x272a('0x2d')]);_0x73707b[_0x272a('0x2e')]=_[_0x272a('0x2f')](_0x73707b[_0x272a('0x30')],_0x73707b[_0x272a('0x2d')]);_0x62a99c[_0x272a('0x31')]=_[_0x272a('0x2f')](_0x73707b['model'],qs[_0x272a('0x32')](_0x654dc6[_0x272a('0x2d')][_0x272a('0x32')]));_0x62a99c['attributes']=_0x62a99c[_0x272a('0x31')]['length']?_0x62a99c['attributes']:_0x73707b[_0x272a('0x30')];if(!_0x654dc6['query'][_0x272a('0x33')](_0x272a('0x34'))){_0x62a99c[_0x272a('0x1a')]=qs[_0x272a('0x1a')](_0x654dc6[_0x272a('0x2d')][_0x272a('0x1a')]);_0x62a99c['offset']=qs[_0x272a('0x19')](_0x654dc6[_0x272a('0x2d')][_0x272a('0x19')]);}_0x62a99c[_0x272a('0x35')]=qs[_0x272a('0x36')](_0x654dc6[_0x272a('0x2d')][_0x272a('0x36')]);_0x62a99c['where']=qs[_0x272a('0x2e')](_[_0x272a('0x37')](_0x654dc6[_0x272a('0x2d')],_0x73707b[_0x272a('0x2e')]),_0x142f1);if(_0x654dc6[_0x272a('0x2d')][_0x272a('0x38')]){_0x62a99c['where']=_['merge'](_0x62a99c[_0x272a('0x39')],{'$or':_[_0x272a('0x28')](_0x142f1,function(_0x20e5b6){if(_0x20e5b6[_0x272a('0x3a')]!==_0x272a('0x3b')){var _0xf9b46={};_0xf9b46[_0x20e5b6[_0x272a('0x25')]]={'$like':'%'+_0x654dc6[_0x272a('0x2d')][_0x272a('0x38')]+'%'};return _0xf9b46;}})});}_0x62a99c=_[_0x272a('0x3c')]({},_0x62a99c,_0x654dc6[_0x272a('0x3d')]);var _0x46227e={'where':_0x62a99c[_0x272a('0x39')]};return db[_0x272a('0x29')][_0x272a('0x18')](_0x46227e)['then'](function(_0x33abdd){_0x10d03c[_0x272a('0x18')]=_0x33abdd;if(_0x654dc6['query'][_0x272a('0x3e')]){_0x62a99c[_0x272a('0x3f')]=[{'all':!![]}];}return db[_0x272a('0x29')][_0x272a('0x40')](_0x62a99c);})[_0x272a('0x21')](function(_0x357712){_0x10d03c[_0x272a('0x41')]=_0x357712;return _0x10d03c;})['then'](respondWithFilteredResult(_0x1bce15,_0x62a99c))[_0x272a('0x42')](handleError(_0x1bce15,null));};exports[_0x272a('0x43')]=function(_0x5a7a12,_0x48c7b0){var _0x35be0e={'raw':!![],'where':{'id':_0x5a7a12[_0x272a('0x44')]['id']}},_0x47fcbd={};_0x47fcbd[_0x272a('0x30')]=_[_0x272a('0x2c')](db[_0x272a('0x29')][_0x272a('0x2a')]);_0x47fcbd[_0x272a('0x2d')]=_['keys'](_0x5a7a12[_0x272a('0x2d')]);_0x47fcbd[_0x272a('0x2e')]=_['intersection'](_0x47fcbd[_0x272a('0x30')],_0x47fcbd[_0x272a('0x2d')]);_0x35be0e['attributes']=_[_0x272a('0x2f')](_0x47fcbd[_0x272a('0x30')],qs[_0x272a('0x32')](_0x5a7a12[_0x272a('0x2d')][_0x272a('0x32')]));_0x35be0e[_0x272a('0x31')]=_0x35be0e['attributes'][_0x272a('0x45')]?_0x35be0e[_0x272a('0x31')]:_0x47fcbd[_0x272a('0x30')];if(_0x5a7a12['query'][_0x272a('0x3e')]){_0x35be0e[_0x272a('0x3f')]=[{'all':!![]}];}_0x35be0e=_['merge']({},_0x35be0e,_0x5a7a12[_0x272a('0x3d')]);return db[_0x272a('0x29')][_0x272a('0x46')](_0x35be0e)[_0x272a('0x21')](handleEntityNotFound(_0x48c7b0,null))[_0x272a('0x21')](respondWithResult(_0x48c7b0,null))[_0x272a('0x42')](handleError(_0x48c7b0,null));};exports[_0x272a('0x47')]=function(_0x4d2f43,_0x53a627){return db['JscriptyAnswerReport']['create'](_0x4d2f43[_0x272a('0x48')],{})[_0x272a('0x21')](respondWithResult(_0x53a627,0xc9))[_0x272a('0x42')](handleError(_0x53a627,null));};exports[_0x272a('0x49')]=function(_0x4bb335,_0x96d803){if(_0x4bb335[_0x272a('0x48')]['id']){delete _0x4bb335['body']['id'];}return db[_0x272a('0x29')][_0x272a('0x46')]({'where':{'id':_0x4bb335[_0x272a('0x44')]['id']}})[_0x272a('0x21')](handleEntityNotFound(_0x96d803,null))[_0x272a('0x21')](saveUpdates(_0x4bb335[_0x272a('0x48')],null))[_0x272a('0x21')](respondWithResult(_0x96d803,null))[_0x272a('0x42')](handleError(_0x96d803,null));};exports[_0x272a('0x22')]=function(_0x961994,_0x313723){return db['JscriptyAnswerReport']['find']({'where':{'id':_0x961994[_0x272a('0x44')]['id']}})['then'](handleEntityNotFound(_0x313723,null))[_0x272a('0x21')](removeEntity(_0x313723,null))[_0x272a('0x42')](handleError(_0x313723,null));};exports[_0x272a('0x4a')]=function(_0xc9e362,_0x40c86c){return db['JscriptyAnswerReport']['describe']()[_0x272a('0x21')](respondWithResult(_0x40c86c,null))['catch'](handleError(_0x40c86c,null));};
\ No newline at end of file
+var _0x446c=['name','map','JscriptyAnswerReport','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','filter','merge','where','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','length','create','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','ejs','fs-extra','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../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','error','stack'];(function(_0x1da527,_0x2dc953){var _0x40fc7c=function(_0x9949f5){while(--_0x9949f5){_0x1da527['push'](_0x1da527['shift']());}};_0x40fc7c(++_0x2dc953);}(_0x446c,0x156));var _0xc446=function(_0x329664,_0x130748){_0x329664=_0x329664-0x0;var _0x4e346e=_0x446c[_0x329664];return _0x4e346e;};'use strict';var emlformat=require(_0xc446('0x0'));var rimraf=require(_0xc446('0x1'));var zipdir=require(_0xc446('0x2'));var jsonpatch=require(_0xc446('0x3'));var rp=require('request-promise');var moment=require(_0xc446('0x4'));var BPromise=require(_0xc446('0x5'));var Mustache=require(_0xc446('0x6'));var util=require('util');var path=require(_0xc446('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xc446('0x8'));var fs=require('fs');var fs_extra=require(_0xc446('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xc446('0xa'));var jsforce=require(_0xc446('0xb'));var deskjs=require(_0xc446('0xc'));var toCsv=require(_0xc446('0xd'));var querystring=require(_0xc446('0xe'));var Papa=require('papaparse');var Redis=require(_0xc446('0xf'));var authService=require(_0xc446('0x10'));var qs=require(_0xc446('0x11'));var as=require(_0xc446('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc446('0x13'))(_0xc446('0x14'));var utils=require(_0xc446('0x15'));var config=require(_0xc446('0x16'));var licenseUtil=require(_0xc446('0x17'));var db=require(_0xc446('0x18'))['db'];function respondWithStatusCode(_0x1a2099,_0x19083f){_0x19083f=_0x19083f||0xcc;return function(_0x22a70e){if(_0x22a70e){return _0x1a2099[_0xc446('0x19')](_0x19083f);}return _0x1a2099[_0xc446('0x1a')](_0x19083f)[_0xc446('0x1b')]();};}function respondWithResult(_0x1cfc0a,_0x72faac){_0x72faac=_0x72faac||0xc8;return function(_0x21d8e4){if(_0x21d8e4){return _0x1cfc0a[_0xc446('0x1a')](_0x72faac)[_0xc446('0x1c')](_0x21d8e4);}};}function respondWithFilteredResult(_0x20e51b,_0x2b09db){return function(_0x5d2701){if(_0x5d2701){var _0x3ba115=typeof _0x2b09db[_0xc446('0x1d')]===_0xc446('0x1e')&&typeof _0x2b09db[_0xc446('0x1f')]===_0xc446('0x1e');var _0x274040=_0x5d2701[_0xc446('0x20')];var _0x30038f=_0x3ba115?0x0:_0x2b09db[_0xc446('0x1d')];var _0x606af1=_0x3ba115?_0x5d2701['count']:_0x2b09db[_0xc446('0x1d')]+_0x2b09db[_0xc446('0x1f')];var _0x5cd0c1;if(_0x606af1>=_0x274040){_0x606af1=_0x274040;_0x5cd0c1=0xc8;}else{_0x5cd0c1=0xce;}_0x20e51b[_0xc446('0x1a')](_0x5cd0c1);return _0x20e51b[_0xc446('0x21')](_0xc446('0x22'),_0x30038f+'-'+_0x606af1+'/'+_0x274040)[_0xc446('0x1c')](_0x5d2701);}return null;};}function patchUpdates(_0x409a8e){return function(_0x37108c){try{jsonpatch[_0xc446('0x23')](_0x37108c,_0x409a8e,!![]);}catch(_0xc18765){return BPromise[_0xc446('0x24')](_0xc18765);}return _0x37108c[_0xc446('0x25')]();};}function saveUpdates(_0x5ce5f7,_0x35aedc){return function(_0x1ea08b){if(_0x1ea08b){return _0x1ea08b[_0xc446('0x26')](_0x5ce5f7)[_0xc446('0x27')](function(_0x3596f4){return _0x3596f4;});}return null;};}function removeEntity(_0xb696e,_0x36a6f5){return function(_0x1b785a){if(_0x1b785a){return _0x1b785a[_0xc446('0x28')]()[_0xc446('0x27')](function(){_0xb696e[_0xc446('0x1a')](0xcc)[_0xc446('0x1b')]();});}};}function handleEntityNotFound(_0x25f58d,_0x438410){return function(_0x16133b){if(!_0x16133b){_0x25f58d[_0xc446('0x19')](0x194);}return _0x16133b;};}function handleError(_0x465e18,_0x51933d){_0x51933d=_0x51933d||0x1f4;return function(_0xb3ab06){logger[_0xc446('0x29')](_0xb3ab06[_0xc446('0x2a')]);if(_0xb3ab06[_0xc446('0x2b')]){delete _0xb3ab06[_0xc446('0x2b')];}_0x465e18[_0xc446('0x1a')](_0x51933d)['send'](_0xb3ab06);};}exports['index']=function(_0x37532c,_0x1b2dc8){var _0x19f57f={},_0x865c07={},_0x4ea05e={'count':0x0,'rows':[]};var _0x420fcb=_[_0xc446('0x2c')](db[_0xc446('0x2d')][_0xc446('0x2e')],function(_0x1bd4e6){return{'name':_0x1bd4e6[_0xc446('0x2f')],'type':_0x1bd4e6[_0xc446('0x30')][_0xc446('0x31')]};});_0x865c07[_0xc446('0x32')]=_[_0xc446('0x2c')](_0x420fcb,'name');_0x865c07['query']=_['keys'](_0x37532c[_0xc446('0x33')]);_0x865c07[_0xc446('0x34')]=_[_0xc446('0x35')](_0x865c07[_0xc446('0x32')],_0x865c07[_0xc446('0x33')]);_0x19f57f[_0xc446('0x36')]=_[_0xc446('0x35')](_0x865c07['model'],qs[_0xc446('0x37')](_0x37532c[_0xc446('0x33')][_0xc446('0x37')]));_0x19f57f[_0xc446('0x36')]=_0x19f57f[_0xc446('0x36')]['length']?_0x19f57f[_0xc446('0x36')]:_0x865c07[_0xc446('0x32')];if(!_0x37532c[_0xc446('0x33')][_0xc446('0x38')](_0xc446('0x39'))){_0x19f57f[_0xc446('0x1f')]=qs[_0xc446('0x1f')](_0x37532c[_0xc446('0x33')]['limit']);_0x19f57f['offset']=qs[_0xc446('0x1d')](_0x37532c[_0xc446('0x33')][_0xc446('0x1d')]);}_0x19f57f['order']=qs[_0xc446('0x3a')](_0x37532c[_0xc446('0x33')][_0xc446('0x3a')]);_0x19f57f['where']=qs['filters'](_['pick'](_0x37532c[_0xc446('0x33')],_0x865c07['filters']),_0x420fcb);if(_0x37532c[_0xc446('0x33')][_0xc446('0x3b')]){_0x19f57f['where']=_[_0xc446('0x3c')](_0x19f57f[_0xc446('0x3d')],{'$or':_[_0xc446('0x2c')](_0x420fcb,function(_0x2beba1){if(_0x2beba1['type']!==_0xc446('0x3e')){var _0xb9c7e6={};_0xb9c7e6[_0x2beba1['name']]={'$like':'%'+_0x37532c[_0xc446('0x33')][_0xc446('0x3b')]+'%'};return _0xb9c7e6;}})});}_0x19f57f=_[_0xc446('0x3c')]({},_0x19f57f,_0x37532c[_0xc446('0x3f')]);var _0xf3400e={'where':_0x19f57f['where']};return db[_0xc446('0x2d')][_0xc446('0x20')](_0xf3400e)[_0xc446('0x27')](function(_0xf8c80c){_0x4ea05e[_0xc446('0x20')]=_0xf8c80c;if(_0x37532c['query'][_0xc446('0x40')]){_0x19f57f[_0xc446('0x41')]=[{'all':!![]}];}return db[_0xc446('0x2d')][_0xc446('0x42')](_0x19f57f);})[_0xc446('0x27')](function(_0x5e65d5){_0x4ea05e[_0xc446('0x43')]=_0x5e65d5;return _0x4ea05e;})['then'](respondWithFilteredResult(_0x1b2dc8,_0x19f57f))[_0xc446('0x44')](handleError(_0x1b2dc8,null));};exports[_0xc446('0x45')]=function(_0x520ffd,_0x3287ce){var _0x5e250b={'raw':!![],'where':{'id':_0x520ffd[_0xc446('0x46')]['id']}},_0x29f36f={};_0x29f36f[_0xc446('0x32')]=_[_0xc446('0x47')](db['JscriptyAnswerReport'][_0xc446('0x2e')]);_0x29f36f[_0xc446('0x33')]=_[_0xc446('0x47')](_0x520ffd['query']);_0x29f36f[_0xc446('0x34')]=_[_0xc446('0x35')](_0x29f36f[_0xc446('0x32')],_0x29f36f[_0xc446('0x33')]);_0x5e250b[_0xc446('0x36')]=_[_0xc446('0x35')](_0x29f36f[_0xc446('0x32')],qs[_0xc446('0x37')](_0x520ffd[_0xc446('0x33')][_0xc446('0x37')]));_0x5e250b[_0xc446('0x36')]=_0x5e250b[_0xc446('0x36')][_0xc446('0x48')]?_0x5e250b[_0xc446('0x36')]:_0x29f36f[_0xc446('0x32')];if(_0x520ffd['query']['includeAll']){_0x5e250b[_0xc446('0x41')]=[{'all':!![]}];}_0x5e250b=_[_0xc446('0x3c')]({},_0x5e250b,_0x520ffd['options']);return db['JscriptyAnswerReport']['find'](_0x5e250b)['then'](handleEntityNotFound(_0x3287ce,null))[_0xc446('0x27')](respondWithResult(_0x3287ce,null))[_0xc446('0x44')](handleError(_0x3287ce,null));};exports[_0xc446('0x49')]=function(_0x2fc1bf,_0x19ca3d){return db[_0xc446('0x2d')][_0xc446('0x49')](_0x2fc1bf[_0xc446('0x4a')],{})[_0xc446('0x27')](respondWithResult(_0x19ca3d,0xc9))[_0xc446('0x44')](handleError(_0x19ca3d,null));};exports['update']=function(_0x40aa4f,_0x317559){if(_0x40aa4f[_0xc446('0x4a')]['id']){delete _0x40aa4f['body']['id'];}return db[_0xc446('0x2d')]['find']({'where':{'id':_0x40aa4f[_0xc446('0x46')]['id']}})[_0xc446('0x27')](handleEntityNotFound(_0x317559,null))[_0xc446('0x27')](saveUpdates(_0x40aa4f[_0xc446('0x4a')],null))[_0xc446('0x27')](respondWithResult(_0x317559,null))['catch'](handleError(_0x317559,null));};exports[_0xc446('0x28')]=function(_0x5415e5,_0x26ec5f){return db['JscriptyAnswerReport'][_0xc446('0x4b')]({'where':{'id':_0x5415e5['params']['id']}})[_0xc446('0x27')](handleEntityNotFound(_0x26ec5f,null))[_0xc446('0x27')](removeEntity(_0x26ec5f,null))['catch'](handleError(_0x26ec5f,null));};exports['describe']=function(_0x1a66fd,_0x5759af){return db[_0xc446('0x2d')][_0xc446('0x4c')]()[_0xc446('0x27')](respondWithResult(_0x5759af,null))[_0xc446('0x44')](handleError(_0x5759af,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x389e=['JscriptyAnswerReport','report_jscripty_answers','util','api','moment','request-promise','path','rimraf','../../config/environment','./jscriptyAnswerReport.attributes','exports','define'];(function(_0x95411e,_0x38b4c3){var _0x2c8718=function(_0x35c672){while(--_0x35c672){_0x95411e['push'](_0x95411e['shift']());}};_0x2c8718(++_0x38b4c3);}(_0x389e,0x122));var _0xe389=function(_0x460ef9,_0x16fba6){_0x460ef9=_0x460ef9-0x0;var _0x2fa60e=_0x389e[_0x460ef9];return _0x2fa60e;};'use strict';var _=require('lodash');var util=require(_0xe389('0x0'));var logger=require('../../config/logger')(_0xe389('0x1'));var moment=require(_0xe389('0x2'));var BPromise=require('bluebird');var rp=require(_0xe389('0x3'));var fs=require('fs');var path=require(_0xe389('0x4'));var rimraf=require(_0xe389('0x5'));var config=require(_0xe389('0x6'));var attributes=require(_0xe389('0x7'));module[_0xe389('0x8')]=function(_0xa9dc97,_0x1fd07a){return _0xa9dc97[_0xe389('0x9')](_0xe389('0xa'),attributes,{'tableName':_0xe389('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x91e8=['define','JscriptyAnswerReport','report_jscripty_answers','lodash','util','../../config/logger','api','moment','request-promise','path','./jscriptyAnswerReport.attributes'];(function(_0x368fb9,_0x1a9895){var _0x4892fb=function(_0x28d735){while(--_0x28d735){_0x368fb9['push'](_0x368fb9['shift']());}};_0x4892fb(++_0x1a9895);}(_0x91e8,0x92));var _0x891e=function(_0x46b26c,_0x19f6a5){_0x46b26c=_0x46b26c-0x0;var _0x5c15c5=_0x91e8[_0x46b26c];return _0x5c15c5;};'use strict';var _=require(_0x891e('0x0'));var util=require(_0x891e('0x1'));var logger=require(_0x891e('0x2'))(_0x891e('0x3'));var moment=require(_0x891e('0x4'));var BPromise=require('bluebird');var rp=require(_0x891e('0x5'));var fs=require('fs');var path=require(_0x891e('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x891e('0x7'));module['exports']=function(_0x56063a,_0x2add1b){return _0x56063a[_0x891e('0x8')](_0x891e('0x9'),attributes,{'tableName':_0x891e('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ce9=['http','request','then','info','JscriptyAnswerReport,\x20%s,\x20%s','request\x20sent','debug','JscriptyAnswerReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise'];(function(_0x7d238,_0x42a2bf){var _0x1a1a4b=function(_0x30486d){while(--_0x30486d){_0x7d238['push'](_0x7d238['shift']());}};_0x1a1a4b(++_0x42a2bf);}(_0x4ce9,0x1d5));var _0x94ce=function(_0x5ce585,_0x4601e7){_0x5ce585=_0x5ce585-0x0;var _0x9dde8e=_0x4ce9[_0x5ce585];return _0x9dde8e;};'use strict';var _=require(_0x94ce('0x0'));var util=require(_0x94ce('0x1'));var moment=require(_0x94ce('0x2'));var BPromise=require(_0x94ce('0x3'));var rs=require(_0x94ce('0x4'));var fs=require('fs');var Redis=require(_0x94ce('0x5'));var db=require(_0x94ce('0x6'))['db'];var utils=require(_0x94ce('0x7'));var logger=require(_0x94ce('0x8'))(_0x94ce('0x9'));var config=require('../../config/environment');var jayson=require(_0x94ce('0xa'));var client=jayson['client'][_0x94ce('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4c86e2,_0x3211ba,_0x21fd3f){return new BPromise(function(_0x2073af,_0x749cd1){return client[_0x94ce('0xc')](_0x4c86e2,_0x21fd3f)[_0x94ce('0xd')](function(_0x534aed){logger[_0x94ce('0xe')](_0x94ce('0xf'),_0x3211ba,_0x94ce('0x10'));logger[_0x94ce('0x11')](_0x94ce('0x12'),_0x3211ba,_0x94ce('0x10'),JSON[_0x94ce('0x13')](_0x534aed));if(_0x534aed[_0x94ce('0x14')]){if(_0x534aed[_0x94ce('0x14')][_0x94ce('0x15')]===0x1f4){logger['error'](_0x94ce('0xf'),_0x3211ba,_0x534aed[_0x94ce('0x14')][_0x94ce('0x16')]);return _0x749cd1(_0x534aed[_0x94ce('0x14')]['message']);}logger[_0x94ce('0x14')](_0x94ce('0xf'),_0x3211ba,_0x534aed[_0x94ce('0x14')][_0x94ce('0x16')]);return _0x2073af(_0x534aed[_0x94ce('0x14')][_0x94ce('0x16')]);}else{logger['info'](_0x94ce('0xf'),_0x3211ba,_0x94ce('0x10'));_0x2073af(_0x534aed[_0x94ce('0x17')][_0x94ce('0x16')]);}})['catch'](function(_0x3e0667){logger[_0x94ce('0x14')](_0x94ce('0xf'),_0x3211ba,_0x3e0667);_0x749cd1(_0x3e0667);});});}
\ No newline at end of file
+var _0xc47d=['request\x20sent','debug','error','message','result','catch','lodash','util','bluebird','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','request','then','info','JscriptyAnswerReport,\x20%s,\x20%s'];(function(_0x42baed,_0x46cef3){var _0x17add3=function(_0x19c5c1){while(--_0x19c5c1){_0x42baed['push'](_0x42baed['shift']());}};_0x17add3(++_0x46cef3);}(_0xc47d,0xd7));var _0xdc47=function(_0x42245d,_0x51758f){_0x42245d=_0x42245d-0x0;var _0x4b211a=_0xc47d[_0x42245d];return _0x4b211a;};'use strict';var _=require(_0xdc47('0x0'));var util=require(_0xdc47('0x1'));var moment=require('moment');var BPromise=require(_0xdc47('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xdc47('0x3'))['db'];var utils=require(_0xdc47('0x4'));var logger=require('../../config/logger')(_0xdc47('0x5'));var config=require('../../config/environment');var jayson=require(_0xdc47('0x6'));var client=jayson[_0xdc47('0x7')][_0xdc47('0x8')]({'port':0x232a});function respondWithRpcPromise(_0xe76915,_0x14e9a4,_0x530f19){return new BPromise(function(_0x4bdaa2,_0x1a36a1){return client[_0xdc47('0x9')](_0xe76915,_0x530f19)[_0xdc47('0xa')](function(_0x5b4363){logger[_0xdc47('0xb')](_0xdc47('0xc'),_0x14e9a4,_0xdc47('0xd'));logger[_0xdc47('0xe')]('JscriptyAnswerReport,\x20%s,\x20%s,\x20%s',_0x14e9a4,_0xdc47('0xd'),JSON['stringify'](_0x5b4363));if(_0x5b4363[_0xdc47('0xf')]){if(_0x5b4363['error']['code']===0x1f4){logger[_0xdc47('0xf')](_0xdc47('0xc'),_0x14e9a4,_0x5b4363[_0xdc47('0xf')][_0xdc47('0x10')]);return _0x1a36a1(_0x5b4363['error']['message']);}logger[_0xdc47('0xf')](_0xdc47('0xc'),_0x14e9a4,_0x5b4363[_0xdc47('0xf')][_0xdc47('0x10')]);return _0x4bdaa2(_0x5b4363[_0xdc47('0xf')][_0xdc47('0x10')]);}else{logger[_0xdc47('0xb')]('JscriptyAnswerReport,\x20%s,\x20%s',_0x14e9a4,_0xdc47('0xd'));_0x4bdaa2(_0x5b4363[_0xdc47('0x11')][_0xdc47('0x10')]);}})[_0xdc47('0x12')](function(_0x226c01){logger[_0xdc47('0xf')](_0xdc47('0xc'),_0x14e9a4,_0x226c01);_0x1a36a1(_0x226c01);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc576=['post','create','clone','put','update','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./jscriptyProject.controller','get','isAuthenticated','/:id','/:id/answers','/:id/summary','30s','getSummary'];(function(_0x47ee03,_0x73667f){var _0x592727=function(_0x170be4){while(--_0x170be4){_0x47ee03['push'](_0x47ee03['shift']());}};_0x592727(++_0x73667f);}(_0xc576,0x1b8));var _0x6c57=function(_0x1ca4c3,_0x554126){_0x1ca4c3=_0x1ca4c3-0x0;var _0x4426a6=_0xc576[_0x1ca4c3];return _0x4426a6;};'use strict';var multer=require(_0x6c57('0x0'));var util=require(_0x6c57('0x1'));var path=require('path');var timeout=require(_0x6c57('0x2'));var express=require(_0x6c57('0x3'));var router=express[_0x6c57('0x4')]();var fs_extra=require(_0x6c57('0x5'));var auth=require(_0x6c57('0x6'));var interaction=require(_0x6c57('0x7'));var config=require('../../config/environment');var controller=require(_0x6c57('0x8'));router[_0x6c57('0x9')]('/',auth[_0x6c57('0xa')](),controller['index']);router['get'](_0x6c57('0xb'),auth[_0x6c57('0xa')](),controller['show']);router[_0x6c57('0x9')]('/:id/sessions',auth['isAuthenticated'](),controller['getSessions']);router[_0x6c57('0x9')](_0x6c57('0xc'),auth[_0x6c57('0xa')](),controller['getAnswers']);router['get'](_0x6c57('0xd'),auth['isAuthenticated'](),timeout(_0x6c57('0xe')),controller[_0x6c57('0xf')]);router[_0x6c57('0x10')]('/',auth['isAuthenticated'](),controller[_0x6c57('0x11')]);router[_0x6c57('0x10')]('/:id/clone',auth['isAuthenticated'](),controller[_0x6c57('0x12')]);router[_0x6c57('0x13')](_0x6c57('0xb'),auth[_0x6c57('0xa')](),controller[_0x6c57('0x14')]);router[_0x6c57('0x15')](_0x6c57('0xb'),auth['isAuthenticated'](),controller[_0x6c57('0x16')]);module[_0x6c57('0x17')]=router;
\ No newline at end of file
+var _0xfa80=['getAnswers','30s','getSummary','post','/:id/clone','clone','put','update','delete','destroy','exports','multer','util','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','./jscriptyProject.controller','get','isAuthenticated','index','/:id','show','getSessions'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xfa80,0x169));var _0x0fa8=function(_0x4fe64b,_0x51547e){_0x4fe64b=_0x4fe64b-0x0;var _0x2d2d0c=_0xfa80[_0x4fe64b];return _0x2d2d0c;};'use strict';var multer=require(_0x0fa8('0x0'));var util=require(_0x0fa8('0x1'));var path=require('path');var timeout=require(_0x0fa8('0x2'));var express=require(_0x0fa8('0x3'));var router=express['Router']();var fs_extra=require(_0x0fa8('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x0fa8('0x5'));var config=require(_0x0fa8('0x6'));var controller=require(_0x0fa8('0x7'));router[_0x0fa8('0x8')]('/',auth[_0x0fa8('0x9')](),controller[_0x0fa8('0xa')]);router[_0x0fa8('0x8')](_0x0fa8('0xb'),auth[_0x0fa8('0x9')](),controller[_0x0fa8('0xc')]);router[_0x0fa8('0x8')]('/:id/sessions',auth[_0x0fa8('0x9')](),controller[_0x0fa8('0xd')]);router[_0x0fa8('0x8')]('/:id/answers',auth['isAuthenticated'](),controller[_0x0fa8('0xe')]);router['get']('/:id/summary',auth[_0x0fa8('0x9')](),timeout(_0x0fa8('0xf')),controller[_0x0fa8('0x10')]);router['post']('/',auth[_0x0fa8('0x9')](),controller['create']);router[_0x0fa8('0x11')](_0x0fa8('0x12'),auth[_0x0fa8('0x9')](),controller[_0x0fa8('0x13')]);router[_0x0fa8('0x14')]('/:id',auth[_0x0fa8('0x9')](),controller[_0x0fa8('0x15')]);router[_0x0fa8('0x16')](_0x0fa8('0xb'),auth[_0x0fa8('0x9')](),controller[_0x0fa8('0x17')]);module[_0x0fa8('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb67=['getDataValue','BOOLEAN','sequelize','exports','STRING','name','TEXT','long','isObjectLike','formData','stringify','isString','setDataValue','{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}'];(function(_0x5390d7,_0x1dd6ae){var _0x4a10c2=function(_0x3e16f4){while(--_0x3e16f4){_0x5390d7['push'](_0x5390d7['shift']());}};_0x4a10c2(++_0x1dd6ae);}(_0xeb67,0x64));var _0x7eb6=function(_0x2c96b4,_0x53c339){_0x2c96b4=_0x2c96b4-0x0;var _0x5f3338=_0xeb67[_0x2c96b4];return _0x5f3338;};'use strict';var Sequelize=require(_0x7eb6('0x0'));var _=require('lodash');var util=require('util');module[_0x7eb6('0x1')]={'name':{'type':Sequelize[_0x7eb6('0x2')],'unique':_0x7eb6('0x3')},'description':{'type':Sequelize[_0x7eb6('0x2')]},'formData':{'type':Sequelize[_0x7eb6('0x4')](_0x7eb6('0x5')),'set':function(_0x7cce19){if(_[_0x7eb6('0x6')](_0x7cce19)){this['setDataValue'](_0x7eb6('0x7'),JSON[_0x7eb6('0x8')](_0x7cce19));}else if(_[_0x7eb6('0x9')](_0x7cce19)){this['setDataValue'](_0x7eb6('0x7'),_0x7cce19);}else{this[_0x7eb6('0xa')]('formData',util['format'](_0x7eb6('0xb'),this['getDataValue'](_0x7eb6('0x3'))||'',this[_0x7eb6('0xc')]('description')||''));}}},'enableUncompleteSave':{'type':Sequelize[_0x7eb6('0xd')],'defaultValue':!![]},'sendUnpauseOnSubmit':{'type':Sequelize[_0x7eb6('0xd')],'defaultValue':![]}};
\ No newline at end of file
+var _0xc7fd=['long','isObjectLike','formData','stringify','isString','setDataValue','format','{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}','getDataValue','name','description','BOOLEAN','sequelize','exports','STRING','TEXT'];(function(_0x1694f5,_0x49b7c3){var _0x5b4321=function(_0x58c183){while(--_0x58c183){_0x1694f5['push'](_0x1694f5['shift']());}};_0x5b4321(++_0x49b7c3);}(_0xc7fd,0x7c));var _0xdc7f=function(_0x1aaa69,_0x412649){_0x1aaa69=_0x1aaa69-0x0;var _0x254ca3=_0xc7fd[_0x1aaa69];return _0x254ca3;};'use strict';var Sequelize=require(_0xdc7f('0x0'));var _=require('lodash');var util=require('util');module[_0xdc7f('0x1')]={'name':{'type':Sequelize[_0xdc7f('0x2')],'unique':'name'},'description':{'type':Sequelize[_0xdc7f('0x2')]},'formData':{'type':Sequelize[_0xdc7f('0x3')](_0xdc7f('0x4')),'set':function(_0x40e90b){if(_[_0xdc7f('0x5')](_0x40e90b)){this['setDataValue'](_0xdc7f('0x6'),JSON[_0xdc7f('0x7')](_0x40e90b));}else if(_[_0xdc7f('0x8')](_0x40e90b)){this[_0xdc7f('0x9')](_0xdc7f('0x6'),_0x40e90b);}else{this['setDataValue'](_0xdc7f('0x6'),util[_0xdc7f('0xa')](_0xdc7f('0xb'),this[_0xdc7f('0xc')](_0xdc7f('0xd'))||'',this[_0xdc7f('0xc')](_0xdc7f('0xe'))||''));}}},'enableUncompleteSave':{'type':Sequelize[_0xdc7f('0xf')],'defaultValue':!![]},'sendUnpauseOnSubmit':{'type':Sequelize[_0xdc7f('0xf')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5454=['../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','count','Content-Range','apply','reject','save','then','destroy','get','Projects','UserProfileResource','error','stack','name','send','index','map','JscriptyProject','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','nolimit','limit','sort','pick','where','VIRTUAL','filter','merge','includeAll','findAll','catch','params','keys','options','find','create','body','user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','include','omit','updatedAt','createdAt','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','update','JscriptySessionReport','order','ProjectId','rows','getAnswers','JscriptyAnswerReport','hasOwnProperty','number','fromCharCode','toString','indexOf','replace','getSummary','startTime','parse','JscriptyQuestionReport','-createdAt','questionId','question','starttime','YYYY-MM-DD\x20HH:mm:ss','SessionId','answer','push','isEmpty','now','writeFileSync','format','/tmp/Jscripty_Project_%d_Summary_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','Jscripty_Project_%d_Summary_%s.csv','Content-type','text/csv','download','fast-json-patch','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils'];(function(_0xe78056,_0x1d046f){var _0x553486=function(_0x5e7de8){while(--_0x5e7de8){_0xe78056['push'](_0xe78056['shift']());}};_0x553486(++_0x1d046f);}(_0x5454,0x15b));var _0x4545=function(_0x18bf42,_0x8f8ea3){_0x18bf42=_0x18bf42-0x0;var _0xacc9c5=_0x5454[_0x18bf42];return _0xacc9c5;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x4545('0x0'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x4545('0x1'));var util=require(_0x4545('0x2'));var path=require(_0x4545('0x3'));var sox=require(_0x4545('0x4'));var csv=require('to-csv');var ejs=require(_0x4545('0x5'));var fs=require('fs');var fs_extra=require(_0x4545('0x6'));var _=require(_0x4545('0x7'));var squel=require(_0x4545('0x8'));var crypto=require(_0x4545('0x9'));var jsforce=require(_0x4545('0xa'));var deskjs=require(_0x4545('0xb'));var toCsv=require(_0x4545('0xc'));var querystring=require(_0x4545('0xd'));var Papa=require(_0x4545('0xe'));var Redis=require(_0x4545('0xf'));var authService=require(_0x4545('0x10'));var qs=require(_0x4545('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4545('0x12'));var logger=require(_0x4545('0x13'))(_0x4545('0x14'));var utils=require(_0x4545('0x15'));var config=require(_0x4545('0x16'));var licenseUtil=require(_0x4545('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3844a3,_0x20a4d8){_0x20a4d8=_0x20a4d8||0xcc;return function(_0x353e42){if(_0x353e42){return _0x3844a3[_0x4545('0x18')](_0x20a4d8);}return _0x3844a3[_0x4545('0x19')](_0x20a4d8)[_0x4545('0x1a')]();};}function respondWithResult(_0x3e7088,_0x347072){_0x347072=_0x347072||0xc8;return function(_0x36bb8e){if(_0x36bb8e){return _0x3e7088[_0x4545('0x19')](_0x347072)[_0x4545('0x1b')](_0x36bb8e);}};}function respondWithFilteredResult(_0x4b5700,_0xb10472){return function(_0x3577f5){if(_0x3577f5){var _0x2416b0=typeof _0xb10472[_0x4545('0x1c')]==='undefined'&&typeof _0xb10472['limit']===_0x4545('0x1d');var _0x29effa=_0x3577f5[_0x4545('0x1e')];var _0x2e13e0=_0x2416b0?0x0:_0xb10472[_0x4545('0x1c')];var _0x33393b=_0x2416b0?_0x3577f5[_0x4545('0x1e')]:_0xb10472[_0x4545('0x1c')]+_0xb10472['limit'];var _0x52a21c;if(_0x33393b>=_0x29effa){_0x33393b=_0x29effa;_0x52a21c=0xc8;}else{_0x52a21c=0xce;}_0x4b5700[_0x4545('0x19')](_0x52a21c);return _0x4b5700['set'](_0x4545('0x1f'),_0x2e13e0+'-'+_0x33393b+'/'+_0x29effa)[_0x4545('0x1b')](_0x3577f5);}return null;};}function patchUpdates(_0x67e408){return function(_0x6b3bc){try{jsonpatch[_0x4545('0x20')](_0x6b3bc,_0x67e408,!![]);}catch(_0x2a39cf){return BPromise[_0x4545('0x21')](_0x2a39cf);}return _0x6b3bc[_0x4545('0x22')]();};}function saveUpdates(_0x550dfb,_0x580b57){return function(_0x431b5d){if(_0x431b5d){return _0x431b5d['update'](_0x550dfb)[_0x4545('0x23')](function(_0x4f8a76){return _0x4f8a76;});}return null;};}function removeEntity(_0x293c18,_0x4c47c0){return function(_0x519489){if(_0x519489){return _0x519489[_0x4545('0x24')]()[_0x4545('0x23')](function(){var _0x38815e=_0x519489[_0x4545('0x25')]({'plain':!![]});var _0x344633=_0x4545('0x26');return db[_0x4545('0x27')][_0x4545('0x24')]({'where':{'type':_0x344633,'resourceId':_0x38815e['id']}})[_0x4545('0x23')](function(){return _0x519489;});})[_0x4545('0x23')](function(){_0x293c18[_0x4545('0x19')](0xcc)[_0x4545('0x1a')]();});}};}function handleEntityNotFound(_0xab0b00,_0x3d1c1a){return function(_0x1d8c39){if(!_0x1d8c39){_0xab0b00[_0x4545('0x18')](0x194);}return _0x1d8c39;};}function handleError(_0x576200,_0x1540f0){_0x1540f0=_0x1540f0||0x1f4;return function(_0x2c256b){logger[_0x4545('0x28')](_0x2c256b[_0x4545('0x29')]);if(_0x2c256b[_0x4545('0x2a')]){delete _0x2c256b['name'];}_0x576200[_0x4545('0x19')](_0x1540f0)[_0x4545('0x2b')](_0x2c256b);};}exports[_0x4545('0x2c')]=function(_0x247762,_0x1da2a9){var _0x27b7d7={},_0x52dd8e={},_0x406920={'count':0x0,'rows':[]};var _0x80b55f=_[_0x4545('0x2d')](db[_0x4545('0x2e')][_0x4545('0x2f')],function(_0x3c8cca){return{'name':_0x3c8cca[_0x4545('0x30')],'type':_0x3c8cca[_0x4545('0x31')][_0x4545('0x32')]};});_0x52dd8e[_0x4545('0x33')]=_[_0x4545('0x2d')](_0x80b55f,'name');_0x52dd8e[_0x4545('0x34')]=_['keys'](_0x247762[_0x4545('0x34')]);_0x52dd8e[_0x4545('0x35')]=_['intersection'](_0x52dd8e[_0x4545('0x33')],_0x52dd8e[_0x4545('0x34')]);_0x27b7d7[_0x4545('0x36')]=_[_0x4545('0x37')](_0x52dd8e[_0x4545('0x33')],qs[_0x4545('0x38')](_0x247762[_0x4545('0x34')]['fields']));_0x27b7d7[_0x4545('0x36')]=_0x27b7d7[_0x4545('0x36')][_0x4545('0x39')]?_0x27b7d7[_0x4545('0x36')]:_0x52dd8e[_0x4545('0x33')];if(!_0x247762[_0x4545('0x34')]['hasOwnProperty'](_0x4545('0x3a'))){_0x27b7d7[_0x4545('0x3b')]=qs[_0x4545('0x3b')](_0x247762[_0x4545('0x34')][_0x4545('0x3b')]);_0x27b7d7[_0x4545('0x1c')]=qs[_0x4545('0x1c')](_0x247762[_0x4545('0x34')][_0x4545('0x1c')]);}_0x27b7d7['order']=qs['sort'](_0x247762['query'][_0x4545('0x3c')]);_0x27b7d7['where']=qs[_0x4545('0x35')](_[_0x4545('0x3d')](_0x247762[_0x4545('0x34')],_0x52dd8e[_0x4545('0x35')]),_0x80b55f);if(_0x247762['query']['filter']){_0x27b7d7[_0x4545('0x3e')]=_['merge'](_0x27b7d7[_0x4545('0x3e')],{'$or':_[_0x4545('0x2d')](_0x80b55f,function(_0x145d52){if(_0x145d52[_0x4545('0x31')]!==_0x4545('0x3f')){var _0x5cc4de={};_0x5cc4de[_0x145d52['name']]={'$like':'%'+_0x247762[_0x4545('0x34')][_0x4545('0x40')]+'%'};return _0x5cc4de;}})});}_0x27b7d7=_[_0x4545('0x41')]({},_0x27b7d7,_0x247762['options']);var _0x2a6822={'where':_0x27b7d7[_0x4545('0x3e')]};return db['JscriptyProject'][_0x4545('0x1e')](_0x2a6822)['then'](function(_0x239246){_0x406920[_0x4545('0x1e')]=_0x239246;if(_0x247762[_0x4545('0x34')][_0x4545('0x42')]){_0x27b7d7['include']=[{'all':!![]}];}return db[_0x4545('0x2e')][_0x4545('0x43')](_0x27b7d7);})[_0x4545('0x23')](function(_0x299869){_0x406920['rows']=_0x299869;return _0x406920;})['then'](respondWithFilteredResult(_0x1da2a9,_0x27b7d7))[_0x4545('0x44')](handleError(_0x1da2a9,null));};exports['show']=function(_0x27d023,_0x11e808){var _0x3b01c2={'raw':![],'where':{'id':_0x27d023[_0x4545('0x45')]['id']}},_0x593569={};_0x593569[_0x4545('0x33')]=_[_0x4545('0x46')](db[_0x4545('0x2e')]['rawAttributes']);_0x593569[_0x4545('0x34')]=_[_0x4545('0x46')](_0x27d023[_0x4545('0x34')]);_0x593569['filters']=_[_0x4545('0x37')](_0x593569[_0x4545('0x33')],_0x593569[_0x4545('0x34')]);_0x3b01c2[_0x4545('0x36')]=_[_0x4545('0x37')](_0x593569[_0x4545('0x33')],qs[_0x4545('0x38')](_0x27d023[_0x4545('0x34')]['fields']));_0x3b01c2[_0x4545('0x36')]=_0x3b01c2['attributes'][_0x4545('0x39')]?_0x3b01c2['attributes']:_0x593569[_0x4545('0x33')];if(_0x27d023[_0x4545('0x34')][_0x4545('0x42')]){_0x3b01c2['include']=[{'all':!![]}];}_0x3b01c2=_[_0x4545('0x41')]({},_0x3b01c2,_0x27d023[_0x4545('0x47')]);return db[_0x4545('0x2e')][_0x4545('0x48')](_0x3b01c2)[_0x4545('0x23')](handleEntityNotFound(_0x11e808,null))[_0x4545('0x23')](respondWithResult(_0x11e808,null))['catch'](handleError(_0x11e808,null));};exports['create']=function(_0x499246,_0x563835){return db[_0x4545('0x2e')][_0x4545('0x49')](_0x499246[_0x4545('0x4a')],{})[_0x4545('0x23')](function(_0x6fd3b6){var _0x266f0c=_0x499246[_0x4545('0x4b')]['get']({'plain':!![]});if(!_0x266f0c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x266f0c[_0x4545('0x4c')]===_0x4545('0x4b')){var _0x33a6d2=_0x6fd3b6[_0x4545('0x25')]({'plain':!![]});var _0x40df40=_0x4545('0x26');return db['UserProfileSection'][_0x4545('0x48')]({'where':{'name':_0x40df40,'userProfileId':_0x266f0c[_0x4545('0x4d')]},'raw':!![]})['then'](function(_0x1dac61){if(_0x1dac61&&_0x1dac61['autoAssociation']===0x0){return db[_0x4545('0x27')][_0x4545('0x49')]({'name':_0x33a6d2[_0x4545('0x2a')],'resourceId':_0x33a6d2['id'],'type':_0x1dac61[_0x4545('0x2a')],'sectionId':_0x1dac61['id']},{})[_0x4545('0x23')](function(){return _0x6fd3b6;});}else{return _0x6fd3b6;}})[_0x4545('0x44')](function(_0x2bc1ce){logger['error'](_0x4545('0x4e'),_0x2bc1ce);throw _0x2bc1ce;});}return _0x6fd3b6;})['then'](respondWithResult(_0x563835,0xc9))[_0x4545('0x44')](handleError(_0x563835,null));};exports['clone']=function(_0x420d5a,_0x19fb4b){var _0x1daf4b={'where':{'id':_0x420d5a[_0x4545('0x45')]['id']}},_0x4c9ff0={};_0x4c9ff0[_0x4545('0x33')]=_['keys'](db[_0x4545('0x2e')]['rawAttributes']);_0x1daf4b[_0x4545('0x36')]=_[_0x4545('0x37')](_0x4c9ff0[_0x4545('0x33')],qs[_0x4545('0x38')](_0x420d5a[_0x4545('0x34')][_0x4545('0x38')]));_0x1daf4b[_0x4545('0x36')]=_0x1daf4b[_0x4545('0x36')][_0x4545('0x39')]?_0x1daf4b['attributes']:_0x4c9ff0[_0x4545('0x33')];if(_0x420d5a[_0x4545('0x34')][_0x4545('0x42')]){_0x1daf4b[_0x4545('0x4f')]=[{'all':!![]}];}_0x1daf4b=_[_0x4545('0x41')]({},_0x1daf4b,_0x420d5a['options']);return db[_0x4545('0x2e')][_0x4545('0x48')](_0x1daf4b)[_0x4545('0x23')](handleEntityNotFound(_0x19fb4b,null))[_0x4545('0x23')](function(_0x8be55e){if(_0x8be55e){var _0x210262=_0x8be55e[_0x4545('0x25')]({'plain':!![]});_0x210262=qs[_0x4545('0x50')](_0x210262,['id','createdAt',_0x4545('0x51')]);_0x420d5a[_0x4545('0x4a')]=_[_0x4545('0x50')](_0x420d5a[_0x4545('0x4a')],['id',_0x4545('0x52'),_0x4545('0x51')]);return db[_0x4545('0x2e')][_0x4545('0x49')](_['merge'](_0x210262,_0x420d5a[_0x4545('0x4a')]),{'include':_0x420d5a[_0x4545('0x34')][_0x4545('0x42')]?[{'all':!![]}]:undefined})[_0x4545('0x23')](function(_0x96e531){var _0x537f8f=_0x420d5a[_0x4545('0x4b')][_0x4545('0x25')]({'plain':!![]});if(!_0x537f8f)throw new Error(_0x4545('0x53'));if(_0x537f8f[_0x4545('0x4c')]===_0x4545('0x4b')){var _0x3bfeab=_0x96e531[_0x4545('0x25')]({'plain':!![]});var _0x40393b=_0x4545('0x26');return db[_0x4545('0x54')][_0x4545('0x48')]({'where':{'name':_0x40393b,'userProfileId':_0x537f8f[_0x4545('0x4d')]},'raw':!![]})[_0x4545('0x23')](function(_0x5291ac){if(_0x5291ac&&_0x5291ac[_0x4545('0x55')]===0x0){return db[_0x4545('0x27')][_0x4545('0x49')]({'name':_0x3bfeab[_0x4545('0x2a')],'resourceId':_0x3bfeab['id'],'type':_0x5291ac[_0x4545('0x2a')],'sectionId':_0x5291ac['id']},{})[_0x4545('0x23')](function(){return _0x96e531;});}else{return _0x96e531;}})['catch'](function(_0x485b2e){logger[_0x4545('0x28')](_0x4545('0x4e'),_0x485b2e);throw _0x485b2e;});}return _0x96e531;});}})[_0x4545('0x23')](respondWithResult(_0x19fb4b,0xc9))[_0x4545('0x44')](handleError(_0x19fb4b,null));};exports[_0x4545('0x56')]=function(_0x1025d1,_0xaa7b72){if(_0x1025d1[_0x4545('0x4a')]['id']){delete _0x1025d1[_0x4545('0x4a')]['id'];}return db[_0x4545('0x2e')][_0x4545('0x48')]({'where':{'id':_0x1025d1[_0x4545('0x45')]['id']}})['then'](handleEntityNotFound(_0xaa7b72,null))[_0x4545('0x23')](saveUpdates(_0x1025d1['body'],null))[_0x4545('0x23')](respondWithResult(_0xaa7b72,null))['catch'](handleError(_0xaa7b72,null));};exports[_0x4545('0x24')]=function(_0x5056e4,_0x34159a){return db[_0x4545('0x2e')][_0x4545('0x48')]({'where':{'id':_0x5056e4['params']['id']}})['then'](handleEntityNotFound(_0x34159a,null))[_0x4545('0x23')](removeEntity(_0x34159a,null))[_0x4545('0x44')](handleError(_0x34159a,null));};exports['getSessions']=function(_0x13bf62,_0x8839ed,_0x52b8da){var _0x5400a5={'raw':!![],'where':{}};var _0x59333c={};var _0xd088ce={'count':0x0,'rows':[]};return db[_0x4545('0x2e')]['findOne']({'where':{'id':_0x13bf62['params']['id']}})[_0x4545('0x23')](handleEntityNotFound(_0x8839ed,null))['then'](function(_0x598c2e){if(_0x598c2e){_0x59333c[_0x4545('0x33')]=_[_0x4545('0x46')](db[_0x4545('0x57')][_0x4545('0x2f')]);_0x59333c[_0x4545('0x34')]=_['keys'](_0x13bf62['query']);_0x59333c['filters']=_[_0x4545('0x37')](_0x59333c[_0x4545('0x33')],_0x59333c[_0x4545('0x34')]);_0x5400a5['attributes']=_[_0x4545('0x37')](_0x59333c[_0x4545('0x33')],qs['fields'](_0x13bf62[_0x4545('0x34')][_0x4545('0x38')]));_0x5400a5['attributes']=_0x5400a5['attributes'][_0x4545('0x39')]?_0x5400a5[_0x4545('0x36')]:_0x59333c['model'];if(!_0x13bf62[_0x4545('0x34')]['hasOwnProperty'](_0x4545('0x3a'))){_0x5400a5['limit']=qs[_0x4545('0x3b')](_0x13bf62['query'][_0x4545('0x3b')]);_0x5400a5[_0x4545('0x1c')]=qs[_0x4545('0x1c')](_0x13bf62[_0x4545('0x34')][_0x4545('0x1c')]);}_0x5400a5[_0x4545('0x58')]=qs[_0x4545('0x3c')](_0x13bf62['query'][_0x4545('0x3c')]);_0x5400a5[_0x4545('0x3e')]=qs[_0x4545('0x35')](_[_0x4545('0x3d')](_0x13bf62[_0x4545('0x34')],_0x59333c['filters']));_0x5400a5['where'][_0x4545('0x59')]=_0x598c2e['id'];if(_0x13bf62[_0x4545('0x34')]['filter']){_0x5400a5[_0x4545('0x3e')]=_[_0x4545('0x41')](_0x5400a5[_0x4545('0x3e')],{'$or':_['map'](_0x5400a5['attributes'],function(_0x6a0199){var _0x363009={};_0x363009[_0x6a0199]={'$like':'%'+_0x13bf62[_0x4545('0x34')][_0x4545('0x40')]+'%'};return _0x363009;})});}_0x5400a5=_[_0x4545('0x41')]({},_0x5400a5,_0x13bf62[_0x4545('0x47')]);return db['JscriptySessionReport'][_0x4545('0x1e')]({'where':_0x5400a5[_0x4545('0x3e')]})[_0x4545('0x23')](function(_0x31ce23){_0xd088ce[_0x4545('0x1e')]=_0x31ce23;if(_0x13bf62[_0x4545('0x34')][_0x4545('0x42')]){_0x5400a5[_0x4545('0x4f')]=[{'all':!![]}];}return db[_0x4545('0x57')][_0x4545('0x43')](_0x5400a5);})[_0x4545('0x23')](function(_0x272f56){_0xd088ce[_0x4545('0x5a')]=_0x272f56;return _0xd088ce;});}})[_0x4545('0x23')](respondWithFilteredResult(_0x8839ed,_0x5400a5))[_0x4545('0x44')](handleError(_0x8839ed,null));};exports[_0x4545('0x5b')]=function(_0x46b0e4,_0x49baaa,_0xc63968){var _0x3609cb={'raw':!![],'where':{}};var _0x2ff4d7={};var _0x103eba={'count':0x0,'rows':[]};return db[_0x4545('0x2e')]['findOne']({'where':{'id':_0x46b0e4[_0x4545('0x45')]['id']}})[_0x4545('0x23')](handleEntityNotFound(_0x49baaa,null))[_0x4545('0x23')](function(_0x3ce886){if(_0x3ce886){_0x2ff4d7[_0x4545('0x33')]=_['keys'](db[_0x4545('0x5c')]['rawAttributes']);_0x2ff4d7[_0x4545('0x34')]=_[_0x4545('0x46')](_0x46b0e4[_0x4545('0x34')]);_0x2ff4d7[_0x4545('0x35')]=_[_0x4545('0x37')](_0x2ff4d7[_0x4545('0x33')],_0x2ff4d7['query']);_0x3609cb[_0x4545('0x36')]=_[_0x4545('0x37')](_0x2ff4d7[_0x4545('0x33')],qs['fields'](_0x46b0e4['query'][_0x4545('0x38')]));_0x3609cb[_0x4545('0x36')]=_0x3609cb[_0x4545('0x36')][_0x4545('0x39')]?_0x3609cb[_0x4545('0x36')]:_0x2ff4d7[_0x4545('0x33')];if(!_0x46b0e4[_0x4545('0x34')][_0x4545('0x5d')](_0x4545('0x3a'))){_0x3609cb['limit']=qs['limit'](_0x46b0e4[_0x4545('0x34')][_0x4545('0x3b')]);_0x3609cb[_0x4545('0x1c')]=qs[_0x4545('0x1c')](_0x46b0e4[_0x4545('0x34')][_0x4545('0x1c')]);}_0x3609cb[_0x4545('0x58')]=qs[_0x4545('0x3c')](_0x46b0e4[_0x4545('0x34')][_0x4545('0x3c')]);_0x3609cb['where']=qs[_0x4545('0x35')](_['pick'](_0x46b0e4[_0x4545('0x34')],_0x2ff4d7['filters']));_0x3609cb[_0x4545('0x3e')][_0x4545('0x59')]=_0x3ce886['id'];if(_0x46b0e4[_0x4545('0x34')][_0x4545('0x40')]){_0x3609cb['where']=_[_0x4545('0x41')](_0x3609cb[_0x4545('0x3e')],{'$or':_[_0x4545('0x2d')](_0x3609cb[_0x4545('0x36')],function(_0x4bd6a0){var _0x484bc8={};_0x484bc8[_0x4bd6a0]={'$like':'%'+_0x46b0e4[_0x4545('0x34')][_0x4545('0x40')]+'%'};return _0x484bc8;})});}_0x3609cb=_['merge']({},_0x3609cb,_0x46b0e4[_0x4545('0x47')]);return db[_0x4545('0x5c')][_0x4545('0x1e')]({'where':_0x3609cb[_0x4545('0x3e')]})[_0x4545('0x23')](function(_0x28cee3){_0x103eba[_0x4545('0x1e')]=_0x28cee3;if(_0x46b0e4[_0x4545('0x34')][_0x4545('0x42')]){_0x3609cb[_0x4545('0x4f')]=[{'all':!![]}];}return db[_0x4545('0x5c')]['findAll'](_0x3609cb);})[_0x4545('0x23')](function(_0x30bf62){_0x103eba[_0x4545('0x5a')]=_0x30bf62;return _0x103eba;});}})[_0x4545('0x23')](respondWithFilteredResult(_0x49baaa,_0x3609cb))[_0x4545('0x44')](handleError(_0x49baaa,null));};function char(_0x37e18b){return _0x4545('0x5e')===typeof _0x37e18b?String[_0x4545('0x5f')][_0x4545('0x20')](null,arguments):_0x37e18b;}function needsEncapsulation(_0x10ca1e){return!!_0x10ca1e&&(_0x10ca1e[_0x4545('0x60')]()['indexOf'](char(0xd))>=0x0||_0x10ca1e[_0x4545('0x60')]()[_0x4545('0x61')](char(0xa))>=0x0||_0x10ca1e[_0x4545('0x60')]()[_0x4545('0x61')](char(0x2c))>=0x0||_0x10ca1e['toString']()['indexOf'](char(0x22))>=0x0);}function encapsulate(_0x4c6764){var _0x52761d=char(0x22),_0x588da9='\x5c'+char(0x22),_0x551341=_0x4c6764[_0x4545('0x60')]()[_0x4545('0x62')](new RegExp(_0x52761d,'g'),_0x588da9);return _0x52761d+_0x551341+_0x52761d;}exports[_0x4545('0x63')]=function(_0x36b1a1,_0x45fe92,_0x1f6252){var _0x423c61,_0x429145;var _0x427f83={'where':{'ProjectId':_0x36b1a1[_0x4545('0x45')]['id']}};if(_0x36b1a1[_0x4545('0x34')][_0x4545('0x64')]){_0x427f83[_0x4545('0x3e')]['starttime']=JSON[_0x4545('0x65')](_0x36b1a1[_0x4545('0x34')][_0x4545('0x64')]);}return db[_0x4545('0x57')][_0x4545('0x43')](_0x427f83)[_0x4545('0x23')](handleEntityNotFound(_0x45fe92,null))['then'](function(_0x361af8){if(_0x361af8){_0x423c61=_0x361af8;return db[_0x4545('0x66')][_0x4545('0x43')]({'where':{'SessionId':{'$in':_[_0x4545('0x2d')](_0x423c61,'id')},'ProjectId':_0x36b1a1[_0x4545('0x45')]['id']},'order':_0x4545('0x67')});}})[_0x4545('0x23')](handleEntityNotFound(_0x45fe92,null))[_0x4545('0x23')](function(_0x11639d){if(_0x11639d){_0x429145=_0x11639d;var _0x3a8841={};for(var _0x421d4c=0x0,_0x170d37=_0x429145[_0x4545('0x39')];_0x421d4c<_0x170d37;_0x421d4c++){if(!_0x3a8841['hasOwnProperty'](_0x429145[_0x421d4c][_0x4545('0x68')])){_0x3a8841[_0x429145[_0x421d4c][_0x4545('0x68')]]=needsEncapsulation(_0x429145[_0x421d4c][_0x4545('0x69')])?encapsulate(_0x429145[_0x421d4c]['question']):_0x429145[_0x421d4c]['question'];}}var _0x2fddcf=[],_0x2687ff={};for(var _0x3cd7af=0x0,_0x31a678=_0x423c61[_0x4545('0x39')];_0x3cd7af<_0x31a678;_0x3cd7af++){_0x2687ff={'ProjectId':_0x36b1a1[_0x4545('0x45')]['id'],'SessionId':_0x423c61[_0x3cd7af]['id'],'StartTime':moment(_0x423c61[_0x3cd7af][_0x4545('0x6a')])['format'](_0x4545('0x6b'))};for(var _0x15da22=0x0,_0x10f4cd=_0x429145[_0x4545('0x39')];_0x15da22<_0x10f4cd;_0x15da22++){if(_0x429145[_0x15da22][_0x4545('0x6c')]==_0x423c61[_0x3cd7af]['id']&&_0x3a8841[_0x4545('0x5d')](_0x429145[_0x15da22][_0x4545('0x68')])){_0x2687ff[_0x3a8841[_0x429145[_0x15da22][_0x4545('0x68')]]]=_0x429145[_0x15da22][_0x4545('0x6d')];}}for(var _0x49ebc0 in _0x3a8841){if(!_0x2687ff[_0x4545('0x5d')](_0x3a8841[_0x49ebc0])){_0x2687ff[_0x3a8841[_0x49ebc0]]=null;}}_0x2fddcf[_0x4545('0x6e')](_0x2687ff);}return _0x2fddcf;}})[_0x4545('0x23')](function(_0x4cd3be){if(!_[_0x4545('0x6f')](_0x4cd3be)){var _0x2a56bb=toCsv(_0x4cd3be);var _0x5c05eb=Date[_0x4545('0x70')]();fs[_0x4545('0x71')](util[_0x4545('0x72')](_0x4545('0x73'),_0x36b1a1[_0x4545('0x45')]['id'],_0x5c05eb),_0x2a56bb);_0x45fe92[_0x4545('0x74')](_0x4545('0x75'),_0x4545('0x76')+util[_0x4545('0x72')](_0x4545('0x77'),_0x36b1a1[_0x4545('0x45')]['id'],_0x5c05eb));_0x45fe92[_0x4545('0x74')](_0x4545('0x78'),_0x4545('0x79'));return _0x45fe92[_0x4545('0x7a')](util[_0x4545('0x72')](_0x4545('0x73'),_0x36b1a1[_0x4545('0x45')]['id'],_0x5c05eb));}else{return _0x45fe92[_0x4545('0x18')](0xcc);}})['catch'](handleError(_0x45fe92,null));};
\ No newline at end of file
+var _0xd3d3=['attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','options','JscriptyProject','includeAll','include','rows','catch','show','params','find','create','user','role','Projects','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','omit','createdAt','updatedAt','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','findOne','ProjectId','JscriptySessionReport','getAnswers','JscriptyAnswerReport','findAll','fromCharCode','toString','indexOf','startTime','starttime','parse','JscriptyQuestionReport','-createdAt','questionId','question','format','YYYY-MM-DD\x20HH:mm:ss','SessionId','answer','push','now','writeFileSync','/tmp/Jscripty_Project_%d_Summary_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','Jscripty_Project_%d_Summary_%s.csv','download','sendStatus','zip-dir','fast-json-patch','mustache','util','path','to-csv','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/license/util','status','end','json','undefined','limit','count','offset','Content-Range','apply','reject','save','update','then','get','UserProfileResource','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','model'];(function(_0x363b81,_0x81e6ca){var _0x1d92fb=function(_0x129644){while(--_0x129644){_0x363b81['push'](_0x363b81['shift']());}};_0x1d92fb(++_0x81e6ca);}(_0xd3d3,0x19a));var _0x3d3d=function(_0x4ae829,_0x2c842c){_0x4ae829=_0x4ae829-0x0;var _0x256b31=_0xd3d3[_0x4ae829];return _0x256b31;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x3d3d('0x0'));var jsonpatch=require(_0x3d3d('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x3d3d('0x2'));var util=require(_0x3d3d('0x3'));var path=require(_0x3d3d('0x4'));var sox=require('sox');var csv=require(_0x3d3d('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3d3d('0x6'));var _=require(_0x3d3d('0x7'));var squel=require(_0x3d3d('0x8'));var crypto=require(_0x3d3d('0x9'));var jsforce=require(_0x3d3d('0xa'));var deskjs=require(_0x3d3d('0xb'));var toCsv=require(_0x3d3d('0x5'));var querystring=require('querystring');var Papa=require(_0x3d3d('0xc'));var Redis=require(_0x3d3d('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x3d3d('0xe'));var as=require(_0x3d3d('0xf'));var hardwareService=require(_0x3d3d('0x10'));var logger=require(_0x3d3d('0x11'))(_0x3d3d('0x12'));var utils=require(_0x3d3d('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x3d3d('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1cb5f3,_0xe37fe6){_0xe37fe6=_0xe37fe6||0xcc;return function(_0x12cef1){if(_0x12cef1){return _0x1cb5f3['sendStatus'](_0xe37fe6);}return _0x1cb5f3[_0x3d3d('0x15')](_0xe37fe6)[_0x3d3d('0x16')]();};}function respondWithResult(_0x25305d,_0x553f92){_0x553f92=_0x553f92||0xc8;return function(_0x32ca75){if(_0x32ca75){return _0x25305d[_0x3d3d('0x15')](_0x553f92)[_0x3d3d('0x17')](_0x32ca75);}};}function respondWithFilteredResult(_0x16274f,_0xb02393){return function(_0x22bb7d){if(_0x22bb7d){var _0x3840b8=typeof _0xb02393['offset']===_0x3d3d('0x18')&&typeof _0xb02393[_0x3d3d('0x19')]===_0x3d3d('0x18');var _0x5a3bcd=_0x22bb7d[_0x3d3d('0x1a')];var _0x4658b9=_0x3840b8?0x0:_0xb02393[_0x3d3d('0x1b')];var _0x94eba2=_0x3840b8?_0x22bb7d[_0x3d3d('0x1a')]:_0xb02393[_0x3d3d('0x1b')]+_0xb02393[_0x3d3d('0x19')];var _0x4eff34;if(_0x94eba2>=_0x5a3bcd){_0x94eba2=_0x5a3bcd;_0x4eff34=0xc8;}else{_0x4eff34=0xce;}_0x16274f[_0x3d3d('0x15')](_0x4eff34);return _0x16274f['set'](_0x3d3d('0x1c'),_0x4658b9+'-'+_0x94eba2+'/'+_0x5a3bcd)[_0x3d3d('0x17')](_0x22bb7d);}return null;};}function patchUpdates(_0x5691d9){return function(_0x5ede83){try{jsonpatch[_0x3d3d('0x1d')](_0x5ede83,_0x5691d9,!![]);}catch(_0x2cafd4){return BPromise[_0x3d3d('0x1e')](_0x2cafd4);}return _0x5ede83[_0x3d3d('0x1f')]();};}function saveUpdates(_0x49685a,_0x4291cb){return function(_0xf88a7e){if(_0xf88a7e){return _0xf88a7e[_0x3d3d('0x20')](_0x49685a)['then'](function(_0x388900){return _0x388900;});}return null;};}function removeEntity(_0x288002,_0x1dbb69){return function(_0x557bab){if(_0x557bab){return _0x557bab['destroy']()[_0x3d3d('0x21')](function(){var _0x38cd63=_0x557bab[_0x3d3d('0x22')]({'plain':!![]});var _0x25854e='Projects';return db[_0x3d3d('0x23')][_0x3d3d('0x24')]({'where':{'type':_0x25854e,'resourceId':_0x38cd63['id']}})[_0x3d3d('0x21')](function(){return _0x557bab;});})[_0x3d3d('0x21')](function(){_0x288002[_0x3d3d('0x15')](0xcc)[_0x3d3d('0x16')]();});}};}function handleEntityNotFound(_0x158504,_0x50fbad){return function(_0x49a2b7){if(!_0x49a2b7){_0x158504['sendStatus'](0x194);}return _0x49a2b7;};}function handleError(_0x566dd8,_0x5bf25b){_0x5bf25b=_0x5bf25b||0x1f4;return function(_0x51c8fb){logger[_0x3d3d('0x25')](_0x51c8fb[_0x3d3d('0x26')]);if(_0x51c8fb[_0x3d3d('0x27')]){delete _0x51c8fb[_0x3d3d('0x27')];}_0x566dd8[_0x3d3d('0x15')](_0x5bf25b)[_0x3d3d('0x28')](_0x51c8fb);};}exports[_0x3d3d('0x29')]=function(_0x5c1e3c,_0xecbe5b){var _0x20f7b8={},_0x421152={},_0x413e80={'count':0x0,'rows':[]};var _0x237815=_[_0x3d3d('0x2a')](db['JscriptyProject'][_0x3d3d('0x2b')],function(_0x366414){return{'name':_0x366414[_0x3d3d('0x2c')],'type':_0x366414[_0x3d3d('0x2d')][_0x3d3d('0x2e')]};});_0x421152['model']=_['map'](_0x237815,_0x3d3d('0x27'));_0x421152[_0x3d3d('0x2f')]=_[_0x3d3d('0x30')](_0x5c1e3c[_0x3d3d('0x2f')]);_0x421152['filters']=_['intersection'](_0x421152[_0x3d3d('0x31')],_0x421152[_0x3d3d('0x2f')]);_0x20f7b8[_0x3d3d('0x32')]=_[_0x3d3d('0x33')](_0x421152[_0x3d3d('0x31')],qs[_0x3d3d('0x34')](_0x5c1e3c[_0x3d3d('0x2f')][_0x3d3d('0x34')]));_0x20f7b8[_0x3d3d('0x32')]=_0x20f7b8[_0x3d3d('0x32')][_0x3d3d('0x35')]?_0x20f7b8['attributes']:_0x421152[_0x3d3d('0x31')];if(!_0x5c1e3c[_0x3d3d('0x2f')][_0x3d3d('0x36')](_0x3d3d('0x37'))){_0x20f7b8[_0x3d3d('0x19')]=qs[_0x3d3d('0x19')](_0x5c1e3c[_0x3d3d('0x2f')][_0x3d3d('0x19')]);_0x20f7b8[_0x3d3d('0x1b')]=qs['offset'](_0x5c1e3c['query'][_0x3d3d('0x1b')]);}_0x20f7b8[_0x3d3d('0x38')]=qs['sort'](_0x5c1e3c[_0x3d3d('0x2f')][_0x3d3d('0x39')]);_0x20f7b8['where']=qs[_0x3d3d('0x3a')](_[_0x3d3d('0x3b')](_0x5c1e3c[_0x3d3d('0x2f')],_0x421152[_0x3d3d('0x3a')]),_0x237815);if(_0x5c1e3c['query'][_0x3d3d('0x3c')]){_0x20f7b8[_0x3d3d('0x3d')]=_[_0x3d3d('0x3e')](_0x20f7b8[_0x3d3d('0x3d')],{'$or':_[_0x3d3d('0x2a')](_0x237815,function(_0x54647b){if(_0x54647b[_0x3d3d('0x2d')]!==_0x3d3d('0x3f')){var _0x486fc4={};_0x486fc4[_0x54647b[_0x3d3d('0x27')]]={'$like':'%'+_0x5c1e3c[_0x3d3d('0x2f')][_0x3d3d('0x3c')]+'%'};return _0x486fc4;}})});}_0x20f7b8=_['merge']({},_0x20f7b8,_0x5c1e3c[_0x3d3d('0x40')]);var _0x49db65={'where':_0x20f7b8[_0x3d3d('0x3d')]};return db[_0x3d3d('0x41')]['count'](_0x49db65)[_0x3d3d('0x21')](function(_0x130686){_0x413e80[_0x3d3d('0x1a')]=_0x130686;if(_0x5c1e3c[_0x3d3d('0x2f')][_0x3d3d('0x42')]){_0x20f7b8[_0x3d3d('0x43')]=[{'all':!![]}];}return db['JscriptyProject']['findAll'](_0x20f7b8);})['then'](function(_0xe5e1){_0x413e80[_0x3d3d('0x44')]=_0xe5e1;return _0x413e80;})[_0x3d3d('0x21')](respondWithFilteredResult(_0xecbe5b,_0x20f7b8))[_0x3d3d('0x45')](handleError(_0xecbe5b,null));};exports[_0x3d3d('0x46')]=function(_0x214357,_0x4fad9f){var _0x158b1d={'raw':![],'where':{'id':_0x214357[_0x3d3d('0x47')]['id']}},_0xde01a5={};_0xde01a5[_0x3d3d('0x31')]=_['keys'](db[_0x3d3d('0x41')]['rawAttributes']);_0xde01a5[_0x3d3d('0x2f')]=_[_0x3d3d('0x30')](_0x214357[_0x3d3d('0x2f')]);_0xde01a5[_0x3d3d('0x3a')]=_['intersection'](_0xde01a5[_0x3d3d('0x31')],_0xde01a5[_0x3d3d('0x2f')]);_0x158b1d['attributes']=_[_0x3d3d('0x33')](_0xde01a5['model'],qs['fields'](_0x214357['query'][_0x3d3d('0x34')]));_0x158b1d['attributes']=_0x158b1d[_0x3d3d('0x32')]['length']?_0x158b1d['attributes']:_0xde01a5['model'];if(_0x214357[_0x3d3d('0x2f')][_0x3d3d('0x42')]){_0x158b1d['include']=[{'all':!![]}];}_0x158b1d=_[_0x3d3d('0x3e')]({},_0x158b1d,_0x214357['options']);return db[_0x3d3d('0x41')][_0x3d3d('0x48')](_0x158b1d)[_0x3d3d('0x21')](handleEntityNotFound(_0x4fad9f,null))[_0x3d3d('0x21')](respondWithResult(_0x4fad9f,null))[_0x3d3d('0x45')](handleError(_0x4fad9f,null));};exports[_0x3d3d('0x49')]=function(_0x1825e8,_0x437782){return db[_0x3d3d('0x41')][_0x3d3d('0x49')](_0x1825e8['body'],{})[_0x3d3d('0x21')](function(_0x25f7a5){var _0x25d2f6=_0x1825e8[_0x3d3d('0x4a')][_0x3d3d('0x22')]({'plain':!![]});if(!_0x25d2f6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x25d2f6[_0x3d3d('0x4b')]===_0x3d3d('0x4a')){var _0xbad206=_0x25f7a5[_0x3d3d('0x22')]({'plain':!![]});var _0x1b22a9=_0x3d3d('0x4c');return db['UserProfileSection'][_0x3d3d('0x48')]({'where':{'name':_0x1b22a9,'userProfileId':_0x25d2f6['userProfileId']},'raw':!![]})[_0x3d3d('0x21')](function(_0x181c76){if(_0x181c76&&_0x181c76['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0xbad206[_0x3d3d('0x27')],'resourceId':_0xbad206['id'],'type':_0x181c76[_0x3d3d('0x27')],'sectionId':_0x181c76['id']},{})['then'](function(){return _0x25f7a5;});}else{return _0x25f7a5;}})['catch'](function(_0x1a0c6d){logger[_0x3d3d('0x25')](_0x3d3d('0x4d'),_0x1a0c6d);throw _0x1a0c6d;});}return _0x25f7a5;})[_0x3d3d('0x21')](respondWithResult(_0x437782,0xc9))[_0x3d3d('0x45')](handleError(_0x437782,null));};exports[_0x3d3d('0x4e')]=function(_0x346b0c,_0x1a98a1){var _0x50c0b1={'where':{'id':_0x346b0c[_0x3d3d('0x47')]['id']}},_0x24418d={};_0x24418d['model']=_[_0x3d3d('0x30')](db[_0x3d3d('0x41')][_0x3d3d('0x2b')]);_0x50c0b1[_0x3d3d('0x32')]=_['intersection'](_0x24418d['model'],qs['fields'](_0x346b0c['query'][_0x3d3d('0x34')]));_0x50c0b1['attributes']=_0x50c0b1[_0x3d3d('0x32')]['length']?_0x50c0b1[_0x3d3d('0x32')]:_0x24418d[_0x3d3d('0x31')];if(_0x346b0c[_0x3d3d('0x2f')][_0x3d3d('0x42')]){_0x50c0b1[_0x3d3d('0x43')]=[{'all':!![]}];}_0x50c0b1=_['merge']({},_0x50c0b1,_0x346b0c['options']);return db[_0x3d3d('0x41')][_0x3d3d('0x48')](_0x50c0b1)['then'](handleEntityNotFound(_0x1a98a1,null))[_0x3d3d('0x21')](function(_0x51be10){if(_0x51be10){var _0x419c4e=_0x51be10['get']({'plain':!![]});_0x419c4e=qs[_0x3d3d('0x4f')](_0x419c4e,['id',_0x3d3d('0x50'),_0x3d3d('0x51')]);_0x346b0c[_0x3d3d('0x52')]=_['omit'](_0x346b0c[_0x3d3d('0x52')],['id','createdAt',_0x3d3d('0x51')]);return db[_0x3d3d('0x41')]['create'](_[_0x3d3d('0x3e')](_0x419c4e,_0x346b0c[_0x3d3d('0x52')]),{'include':_0x346b0c[_0x3d3d('0x2f')][_0x3d3d('0x42')]?[{'all':!![]}]:undefined})['then'](function(_0x3c68fb){var _0x4d79ce=_0x346b0c[_0x3d3d('0x4a')][_0x3d3d('0x22')]({'plain':!![]});if(!_0x4d79ce)throw new Error(_0x3d3d('0x53'));if(_0x4d79ce[_0x3d3d('0x4b')]===_0x3d3d('0x4a')){var _0x5f0de4=_0x3c68fb['get']({'plain':!![]});var _0x130ee8=_0x3d3d('0x4c');return db['UserProfileSection'][_0x3d3d('0x48')]({'where':{'name':_0x130ee8,'userProfileId':_0x4d79ce[_0x3d3d('0x54')]},'raw':!![]})['then'](function(_0x46de23){if(_0x46de23&&_0x46de23['autoAssociation']===0x0){return db[_0x3d3d('0x23')][_0x3d3d('0x49')]({'name':_0x5f0de4['name'],'resourceId':_0x5f0de4['id'],'type':_0x46de23[_0x3d3d('0x27')],'sectionId':_0x46de23['id']},{})['then'](function(){return _0x3c68fb;});}else{return _0x3c68fb;}})['catch'](function(_0x4eb7da){logger[_0x3d3d('0x25')](_0x3d3d('0x4d'),_0x4eb7da);throw _0x4eb7da;});}return _0x3c68fb;});}})[_0x3d3d('0x21')](respondWithResult(_0x1a98a1,0xc9))[_0x3d3d('0x45')](handleError(_0x1a98a1,null));};exports[_0x3d3d('0x20')]=function(_0x4e7390,_0x57e663){if(_0x4e7390[_0x3d3d('0x52')]['id']){delete _0x4e7390[_0x3d3d('0x52')]['id'];}return db[_0x3d3d('0x41')][_0x3d3d('0x48')]({'where':{'id':_0x4e7390[_0x3d3d('0x47')]['id']}})['then'](handleEntityNotFound(_0x57e663,null))[_0x3d3d('0x21')](saveUpdates(_0x4e7390[_0x3d3d('0x52')],null))[_0x3d3d('0x21')](respondWithResult(_0x57e663,null))[_0x3d3d('0x45')](handleError(_0x57e663,null));};exports[_0x3d3d('0x24')]=function(_0x391c12,_0xbe69c4){return db[_0x3d3d('0x41')][_0x3d3d('0x48')]({'where':{'id':_0x391c12[_0x3d3d('0x47')]['id']}})[_0x3d3d('0x21')](handleEntityNotFound(_0xbe69c4,null))[_0x3d3d('0x21')](removeEntity(_0xbe69c4,null))['catch'](handleError(_0xbe69c4,null));};exports['getSessions']=function(_0x45d1d4,_0x16e672,_0x5b5554){var _0x19dae8={'raw':!![],'where':{}};var _0x158b51={};var _0x3fdd24={'count':0x0,'rows':[]};return db[_0x3d3d('0x41')][_0x3d3d('0x55')]({'where':{'id':_0x45d1d4[_0x3d3d('0x47')]['id']}})[_0x3d3d('0x21')](handleEntityNotFound(_0x16e672,null))[_0x3d3d('0x21')](function(_0x2421a7){if(_0x2421a7){_0x158b51[_0x3d3d('0x31')]=_[_0x3d3d('0x30')](db['JscriptySessionReport'][_0x3d3d('0x2b')]);_0x158b51['query']=_[_0x3d3d('0x30')](_0x45d1d4[_0x3d3d('0x2f')]);_0x158b51[_0x3d3d('0x3a')]=_['intersection'](_0x158b51['model'],_0x158b51[_0x3d3d('0x2f')]);_0x19dae8['attributes']=_[_0x3d3d('0x33')](_0x158b51[_0x3d3d('0x31')],qs[_0x3d3d('0x34')](_0x45d1d4[_0x3d3d('0x2f')][_0x3d3d('0x34')]));_0x19dae8[_0x3d3d('0x32')]=_0x19dae8[_0x3d3d('0x32')][_0x3d3d('0x35')]?_0x19dae8['attributes']:_0x158b51['model'];if(!_0x45d1d4[_0x3d3d('0x2f')][_0x3d3d('0x36')](_0x3d3d('0x37'))){_0x19dae8[_0x3d3d('0x19')]=qs[_0x3d3d('0x19')](_0x45d1d4[_0x3d3d('0x2f')][_0x3d3d('0x19')]);_0x19dae8[_0x3d3d('0x1b')]=qs['offset'](_0x45d1d4[_0x3d3d('0x2f')]['offset']);}_0x19dae8[_0x3d3d('0x38')]=qs[_0x3d3d('0x39')](_0x45d1d4[_0x3d3d('0x2f')][_0x3d3d('0x39')]);_0x19dae8['where']=qs[_0x3d3d('0x3a')](_[_0x3d3d('0x3b')](_0x45d1d4['query'],_0x158b51[_0x3d3d('0x3a')]));_0x19dae8[_0x3d3d('0x3d')][_0x3d3d('0x56')]=_0x2421a7['id'];if(_0x45d1d4['query']['filter']){_0x19dae8[_0x3d3d('0x3d')]=_[_0x3d3d('0x3e')](_0x19dae8[_0x3d3d('0x3d')],{'$or':_[_0x3d3d('0x2a')](_0x19dae8[_0x3d3d('0x32')],function(_0x1417b5){var _0x30de4e={};_0x30de4e[_0x1417b5]={'$like':'%'+_0x45d1d4[_0x3d3d('0x2f')][_0x3d3d('0x3c')]+'%'};return _0x30de4e;})});}_0x19dae8=_['merge']({},_0x19dae8,_0x45d1d4['options']);return db[_0x3d3d('0x57')]['count']({'where':_0x19dae8['where']})[_0x3d3d('0x21')](function(_0x7d16f8){_0x3fdd24[_0x3d3d('0x1a')]=_0x7d16f8;if(_0x45d1d4[_0x3d3d('0x2f')]['includeAll']){_0x19dae8[_0x3d3d('0x43')]=[{'all':!![]}];}return db['JscriptySessionReport']['findAll'](_0x19dae8);})[_0x3d3d('0x21')](function(_0x85ba84){_0x3fdd24[_0x3d3d('0x44')]=_0x85ba84;return _0x3fdd24;});}})[_0x3d3d('0x21')](respondWithFilteredResult(_0x16e672,_0x19dae8))[_0x3d3d('0x45')](handleError(_0x16e672,null));};exports[_0x3d3d('0x58')]=function(_0x6557b8,_0x1f78d8,_0x31124f){var _0x352b53={'raw':!![],'where':{}};var _0x221832={};var _0x46b342={'count':0x0,'rows':[]};return db[_0x3d3d('0x41')][_0x3d3d('0x55')]({'where':{'id':_0x6557b8[_0x3d3d('0x47')]['id']}})['then'](handleEntityNotFound(_0x1f78d8,null))[_0x3d3d('0x21')](function(_0x413607){if(_0x413607){_0x221832[_0x3d3d('0x31')]=_[_0x3d3d('0x30')](db['JscriptyAnswerReport']['rawAttributes']);_0x221832[_0x3d3d('0x2f')]=_[_0x3d3d('0x30')](_0x6557b8[_0x3d3d('0x2f')]);_0x221832[_0x3d3d('0x3a')]=_[_0x3d3d('0x33')](_0x221832[_0x3d3d('0x31')],_0x221832[_0x3d3d('0x2f')]);_0x352b53[_0x3d3d('0x32')]=_[_0x3d3d('0x33')](_0x221832[_0x3d3d('0x31')],qs[_0x3d3d('0x34')](_0x6557b8[_0x3d3d('0x2f')][_0x3d3d('0x34')]));_0x352b53['attributes']=_0x352b53[_0x3d3d('0x32')]['length']?_0x352b53['attributes']:_0x221832[_0x3d3d('0x31')];if(!_0x6557b8[_0x3d3d('0x2f')][_0x3d3d('0x36')](_0x3d3d('0x37'))){_0x352b53[_0x3d3d('0x19')]=qs['limit'](_0x6557b8[_0x3d3d('0x2f')][_0x3d3d('0x19')]);_0x352b53['offset']=qs[_0x3d3d('0x1b')](_0x6557b8[_0x3d3d('0x2f')][_0x3d3d('0x1b')]);}_0x352b53[_0x3d3d('0x38')]=qs['sort'](_0x6557b8[_0x3d3d('0x2f')][_0x3d3d('0x39')]);_0x352b53['where']=qs['filters'](_[_0x3d3d('0x3b')](_0x6557b8[_0x3d3d('0x2f')],_0x221832[_0x3d3d('0x3a')]));_0x352b53[_0x3d3d('0x3d')][_0x3d3d('0x56')]=_0x413607['id'];if(_0x6557b8[_0x3d3d('0x2f')][_0x3d3d('0x3c')]){_0x352b53[_0x3d3d('0x3d')]=_[_0x3d3d('0x3e')](_0x352b53[_0x3d3d('0x3d')],{'$or':_[_0x3d3d('0x2a')](_0x352b53['attributes'],function(_0x1f7fa8){var _0x34fa27={};_0x34fa27[_0x1f7fa8]={'$like':'%'+_0x6557b8[_0x3d3d('0x2f')][_0x3d3d('0x3c')]+'%'};return _0x34fa27;})});}_0x352b53=_[_0x3d3d('0x3e')]({},_0x352b53,_0x6557b8[_0x3d3d('0x40')]);return db[_0x3d3d('0x59')][_0x3d3d('0x1a')]({'where':_0x352b53[_0x3d3d('0x3d')]})[_0x3d3d('0x21')](function(_0x22f909){_0x46b342[_0x3d3d('0x1a')]=_0x22f909;if(_0x6557b8['query'][_0x3d3d('0x42')]){_0x352b53[_0x3d3d('0x43')]=[{'all':!![]}];}return db['JscriptyAnswerReport'][_0x3d3d('0x5a')](_0x352b53);})[_0x3d3d('0x21')](function(_0x235d77){_0x46b342[_0x3d3d('0x44')]=_0x235d77;return _0x46b342;});}})[_0x3d3d('0x21')](respondWithFilteredResult(_0x1f78d8,_0x352b53))[_0x3d3d('0x45')](handleError(_0x1f78d8,null));};function char(_0x1b6fd4){return'number'===typeof _0x1b6fd4?String[_0x3d3d('0x5b')]['apply'](null,arguments):_0x1b6fd4;}function needsEncapsulation(_0x31aa86){return!!_0x31aa86&&(_0x31aa86[_0x3d3d('0x5c')]()[_0x3d3d('0x5d')](char(0xd))>=0x0||_0x31aa86[_0x3d3d('0x5c')]()[_0x3d3d('0x5d')](char(0xa))>=0x0||_0x31aa86[_0x3d3d('0x5c')]()['indexOf'](char(0x2c))>=0x0||_0x31aa86[_0x3d3d('0x5c')]()[_0x3d3d('0x5d')](char(0x22))>=0x0);}function encapsulate(_0x3d73ad){var _0x652cb1=char(0x22),_0x18fb1b='\x5c'+char(0x22),_0x357e87=_0x3d73ad['toString']()['replace'](new RegExp(_0x652cb1,'g'),_0x18fb1b);return _0x652cb1+_0x357e87+_0x652cb1;}exports['getSummary']=function(_0x13d0ad,_0x5a34d6,_0x234852){var _0x134965,_0x31ead2;var _0x4159c8={'where':{'ProjectId':_0x13d0ad[_0x3d3d('0x47')]['id']}};if(_0x13d0ad['query'][_0x3d3d('0x5e')]){_0x4159c8['where'][_0x3d3d('0x5f')]=JSON[_0x3d3d('0x60')](_0x13d0ad[_0x3d3d('0x2f')]['startTime']);}return db[_0x3d3d('0x57')][_0x3d3d('0x5a')](_0x4159c8)[_0x3d3d('0x21')](handleEntityNotFound(_0x5a34d6,null))[_0x3d3d('0x21')](function(_0x85ff1f){if(_0x85ff1f){_0x134965=_0x85ff1f;return db[_0x3d3d('0x61')][_0x3d3d('0x5a')]({'where':{'SessionId':{'$in':_[_0x3d3d('0x2a')](_0x134965,'id')},'ProjectId':_0x13d0ad[_0x3d3d('0x47')]['id']},'order':_0x3d3d('0x62')});}})[_0x3d3d('0x21')](handleEntityNotFound(_0x5a34d6,null))[_0x3d3d('0x21')](function(_0x324019){if(_0x324019){_0x31ead2=_0x324019;var _0x4624b0={};for(var _0x22c86c=0x0,_0x30931c=_0x31ead2[_0x3d3d('0x35')];_0x22c86c<_0x30931c;_0x22c86c++){if(!_0x4624b0[_0x3d3d('0x36')](_0x31ead2[_0x22c86c]['questionId'])){_0x4624b0[_0x31ead2[_0x22c86c][_0x3d3d('0x63')]]=needsEncapsulation(_0x31ead2[_0x22c86c]['question'])?encapsulate(_0x31ead2[_0x22c86c][_0x3d3d('0x64')]):_0x31ead2[_0x22c86c][_0x3d3d('0x64')];}}var _0x366b92=[],_0x319b33={};for(var _0x241f56=0x0,_0x5df276=_0x134965['length'];_0x241f56<_0x5df276;_0x241f56++){_0x319b33={'ProjectId':_0x13d0ad[_0x3d3d('0x47')]['id'],'SessionId':_0x134965[_0x241f56]['id'],'StartTime':moment(_0x134965[_0x241f56]['starttime'])[_0x3d3d('0x65')](_0x3d3d('0x66'))};for(var _0x256dcf=0x0,_0x1a6892=_0x31ead2[_0x3d3d('0x35')];_0x256dcf<_0x1a6892;_0x256dcf++){if(_0x31ead2[_0x256dcf][_0x3d3d('0x67')]==_0x134965[_0x241f56]['id']&&_0x4624b0[_0x3d3d('0x36')](_0x31ead2[_0x256dcf][_0x3d3d('0x63')])){_0x319b33[_0x4624b0[_0x31ead2[_0x256dcf][_0x3d3d('0x63')]]]=_0x31ead2[_0x256dcf][_0x3d3d('0x68')];}}for(var _0x5ecd08 in _0x4624b0){if(!_0x319b33[_0x3d3d('0x36')](_0x4624b0[_0x5ecd08])){_0x319b33[_0x4624b0[_0x5ecd08]]=null;}}_0x366b92[_0x3d3d('0x69')](_0x319b33);}return _0x366b92;}})[_0x3d3d('0x21')](function(_0x25f799){if(!_['isEmpty'](_0x25f799)){var _0x817ed1=toCsv(_0x25f799);var _0x5da9be=Date[_0x3d3d('0x6a')]();fs[_0x3d3d('0x6b')](util[_0x3d3d('0x65')](_0x3d3d('0x6c'),_0x13d0ad[_0x3d3d('0x47')]['id'],_0x5da9be),_0x817ed1);_0x5a34d6[_0x3d3d('0x6d')](_0x3d3d('0x6e'),_0x3d3d('0x6f')+util[_0x3d3d('0x65')](_0x3d3d('0x70'),_0x13d0ad[_0x3d3d('0x47')]['id'],_0x5da9be));_0x5a34d6[_0x3d3d('0x6d')]('Content-type','text/csv');return _0x5a34d6[_0x3d3d('0x71')](util['format'](_0x3d3d('0x6c'),_0x13d0ad['params']['id'],_0x5da9be));}else{return _0x5a34d6[_0x3d3d('0x72')](0xcc);}})[_0x3d3d('0x45')](handleError(_0x5a34d6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x02ef=['../../config/environment','./jscriptyProject.attributes','exports','define','JscriptyProject','jscripty_projects','lodash','../../config/logger','moment','bluebird','path','rimraf'];(function(_0x3db76a,_0x40e630){var _0x47e826=function(_0x3dd555){while(--_0x3dd555){_0x3db76a['push'](_0x3db76a['shift']());}};_0x47e826(++_0x40e630);}(_0x02ef,0x11a));var _0xf02e=function(_0xa48af,_0x4d3bb5){_0xa48af=_0xa48af-0x0;var _0x10b6dd=_0x02ef[_0xa48af];return _0x10b6dd;};'use strict';var _=require(_0xf02e('0x0'));var util=require('util');var logger=require(_0xf02e('0x1'))('api');var moment=require(_0xf02e('0x2'));var BPromise=require(_0xf02e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xf02e('0x4'));var rimraf=require(_0xf02e('0x5'));var config=require(_0xf02e('0x6'));var attributes=require(_0xf02e('0x7'));module[_0xf02e('0x8')]=function(_0x511257,_0x332c29){return _0x511257[_0xf02e('0x9')](_0xf02e('0xa'),attributes,{'tableName':_0xf02e('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7dee=['lodash','../../config/logger','moment','bluebird','request-promise','path','../../config/environment','exports','define','JscriptyProject','jscripty_projects'];(function(_0x538dd0,_0x3a61b5){var _0x1cd3c6=function(_0xaa122c){while(--_0xaa122c){_0x538dd0['push'](_0x538dd0['shift']());}};_0x1cd3c6(++_0x3a61b5);}(_0x7dee,0xb0));var _0xe7de=function(_0x6493e5,_0x245fd1){_0x6493e5=_0x6493e5-0x0;var _0x23e6ac=_0x7dee[_0x6493e5];return _0x23e6ac;};'use strict';var _=require(_0xe7de('0x0'));var util=require('util');var logger=require(_0xe7de('0x1'))('api');var moment=require(_0xe7de('0x2'));var BPromise=require(_0xe7de('0x3'));var rp=require(_0xe7de('0x4'));var fs=require('fs');var path=require(_0xe7de('0x5'));var rimraf=require('rimraf');var config=require(_0xe7de('0x6'));var attributes=require('./jscriptyProject.attributes');module[_0xe7de('0x7')]=function(_0x19f79d,_0x26a524){return _0x19f79d[_0xe7de('0x8')](_0xe7de('0x9'),attributes,{'tableName':_0xe7de('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda3f=['rpc','jayson/promise','client','request','then','info','JscriptyProject,\x20%s,\x20%s','request\x20sent','debug','JscriptyProject,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','../../mysqldb','../../config/logger'];(function(_0xb7a459,_0xc13228){var _0x104ab5=function(_0x186a0e){while(--_0x186a0e){_0xb7a459['push'](_0xb7a459['shift']());}};_0x104ab5(++_0xc13228);}(_0xda3f,0xec));var _0xfda3=function(_0x1882ad,_0x434c70){_0x1882ad=_0x1882ad-0x0;var _0x216209=_0xda3f[_0x1882ad];return _0x216209;};'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')]('JscriptyProject,\x20%s,\x20%s',_0x316792,_0x46655c[_0xfda3('0xf')]['message']);return _0x4018c0(_0x46655c[_0xfda3('0xf')][_0xfda3('0x11')]);}logger['error']('JscriptyProject,\x20%s,\x20%s',_0x316792,_0x46655c['error'][_0xfda3('0x11')]);return _0x125e2a(_0x46655c[_0xfda3('0xf')]['message']);}else{logger['info']('JscriptyProject,\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
+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(_0x4c011e,_0x4430ce){var _0x219077=function(_0x3c2ee5){while(--_0x3c2ee5){_0x4c011e['push'](_0x4c011e['shift']());}};_0x219077(++_0x4430ce);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5783f4,_0x4a9e0a){_0x5783f4=_0x5783f4-0x0;var _0x28e380=_0xa9e0[_0x5783f4];return _0x28e380;};'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 _0x93a3=['/describe','isAuthenticated','describe','/:id','show','post','create','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','./jscriptyQuestionReport.controller','index','get'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x93a3,0x97));var _0x393a=function(_0x460f9d,_0x377987){_0x460f9d=_0x460f9d-0x0;var _0x1cc37e=_0x93a3[_0x460f9d];return _0x1cc37e;};'use strict';var multer=require(_0x393a('0x0'));var util=require(_0x393a('0x1'));var path=require(_0x393a('0x2'));var timeout=require(_0x393a('0x3'));var express=require('express');var router=express[_0x393a('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x393a('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x393a('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x393a('0x7')]);router[_0x393a('0x8')](_0x393a('0x9'),auth[_0x393a('0xa')](),controller[_0x393a('0xb')]);router['get'](_0x393a('0xc'),auth[_0x393a('0xa')](),controller[_0x393a('0xd')]);router[_0x393a('0xe')]('/',auth[_0x393a('0xa')](),controller[_0x393a('0xf')]);router['put'](_0x393a('0xc'),auth[_0x393a('0xa')](),controller[_0x393a('0x10')]);router[_0x393a('0x11')](_0x393a('0xc'),auth[_0x393a('0xa')](),controller[_0x393a('0x12')]);module[_0x393a('0x13')]=router;
\ No newline at end of file
+var _0x7637=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','post','create','put','update','delete','destroy'];(function(_0x12c4bb,_0x4d079d){var _0x347f9d=function(_0x58717a){while(--_0x58717a){_0x12c4bb['push'](_0x12c4bb['shift']());}};_0x347f9d(++_0x4d079d);}(_0x7637,0xe6));var _0x7763=function(_0x44a2a7,_0x2cb90a){_0x44a2a7=_0x44a2a7-0x0;var _0x578d5b=_0x7637[_0x44a2a7];return _0x578d5b;};'use strict';var multer=require(_0x7763('0x0'));var util=require(_0x7763('0x1'));var path=require(_0x7763('0x2'));var timeout=require(_0x7763('0x3'));var express=require(_0x7763('0x4'));var router=express[_0x7763('0x5')]();var fs_extra=require(_0x7763('0x6'));var auth=require(_0x7763('0x7'));var interaction=require(_0x7763('0x8'));var config=require(_0x7763('0x9'));var controller=require('./jscriptyQuestionReport.controller');router[_0x7763('0xa')]('/',auth[_0x7763('0xb')](),controller[_0x7763('0xc')]);router['get'](_0x7763('0xd'),auth[_0x7763('0xb')](),controller[_0x7763('0xe')]);router[_0x7763('0xa')](_0x7763('0xf'),auth[_0x7763('0xb')](),controller[_0x7763('0x10')]);router[_0x7763('0x11')]('/',auth['isAuthenticated'](),controller[_0x7763('0x12')]);router[_0x7763('0x13')](_0x7763('0xf'),auth[_0x7763('0xb')](),controller[_0x7763('0x14')]);router[_0x7763('0x15')](_0x7763('0xf'),auth[_0x7763('0xb')](),controller[_0x7763('0x16')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x4ff09b,_0x53f67d){var _0x3f5c2e=function(_0x124592){while(--_0x124592){_0x4ff09b['push'](_0x4ff09b['shift']());}};_0x3f5c2e(++_0x53f67d);}(_0x7a54,0x106));var _0x47a5=function(_0x41787d,_0x9037e8){_0x41787d=_0x41787d-0x0;var _0x34800f=_0x7a54[_0x41787d];return _0x34800f;};'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(_0x2064e5,_0x4f6fa2){var _0x21a233=function(_0x1b2491){while(--_0x1b2491){_0x2064e5['push'](_0x2064e5['shift']());}};_0x21a233(++_0x4f6fa2);}(_0x7a54,0x106));var _0x47a5=function(_0x1a0088,_0x7fe32a){_0x1a0088=_0x1a0088-0x0;var _0x1e4416=_0x7a54[_0x1a0088];return _0x1e4416;};'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 _0x3706=['jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','then','destroy','name','send','map','fieldName','type','key','query','filters','model','attributes','intersection','fields','length','nolimit','order','pick','filter','where','merge','VIRTUAL','JscriptyQuestionReport','includeAll','findAll','rows','catch','show','params','keys','include','find','create','body','update','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash'];(function(_0x3fd73a,_0x4dd307){var _0x5a0c0e=function(_0xe4fede){while(--_0xe4fede){_0x3fd73a['push'](_0x3fd73a['shift']());}};_0x5a0c0e(++_0x4dd307);}(_0x3706,0x82));var _0x6370=function(_0x26da89,_0x264785){_0x26da89=_0x26da89-0x0;var _0xc95b7b=_0x3706[_0x26da89];return _0xc95b7b;};'use strict';var emlformat=require(_0x6370('0x0'));var rimraf=require(_0x6370('0x1'));var zipdir=require(_0x6370('0x2'));var jsonpatch=require(_0x6370('0x3'));var rp=require(_0x6370('0x4'));var moment=require(_0x6370('0x5'));var BPromise=require(_0x6370('0x6'));var Mustache=require(_0x6370('0x7'));var util=require(_0x6370('0x8'));var path=require(_0x6370('0x9'));var sox=require(_0x6370('0xa'));var csv=require(_0x6370('0xb'));var ejs=require(_0x6370('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6370('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x6370('0xe'));var deskjs=require(_0x6370('0xf'));var toCsv=require(_0x6370('0xb'));var querystring=require(_0x6370('0x10'));var Papa=require(_0x6370('0x11'));var Redis=require(_0x6370('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x6370('0x13'));var as=require(_0x6370('0x14'));var hardwareService=require(_0x6370('0x15'));var logger=require(_0x6370('0x16'))('api');var utils=require(_0x6370('0x17'));var config=require(_0x6370('0x18'));var licenseUtil=require(_0x6370('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x49ce8e,_0x35477c){_0x35477c=_0x35477c||0xcc;return function(_0x3b2823){if(_0x3b2823){return _0x49ce8e[_0x6370('0x1a')](_0x35477c);}return _0x49ce8e[_0x6370('0x1b')](_0x35477c)[_0x6370('0x1c')]();};}function respondWithResult(_0x333cd6,_0x58edc0){_0x58edc0=_0x58edc0||0xc8;return function(_0x1fd22a){if(_0x1fd22a){return _0x333cd6[_0x6370('0x1b')](_0x58edc0)[_0x6370('0x1d')](_0x1fd22a);}};}function respondWithFilteredResult(_0x2cd1dd,_0x5003ce){return function(_0x345219){if(_0x345219){var _0x16e06d=typeof _0x5003ce[_0x6370('0x1e')]===_0x6370('0x1f')&&typeof _0x5003ce[_0x6370('0x20')]===_0x6370('0x1f');var _0x2efa83=_0x345219[_0x6370('0x21')];var _0x46951a=_0x16e06d?0x0:_0x5003ce[_0x6370('0x1e')];var _0x30ad40=_0x16e06d?_0x345219['count']:_0x5003ce['offset']+_0x5003ce[_0x6370('0x20')];var _0x5dedce;if(_0x30ad40>=_0x2efa83){_0x30ad40=_0x2efa83;_0x5dedce=0xc8;}else{_0x5dedce=0xce;}_0x2cd1dd[_0x6370('0x1b')](_0x5dedce);return _0x2cd1dd[_0x6370('0x22')](_0x6370('0x23'),_0x46951a+'-'+_0x30ad40+'/'+_0x2efa83)[_0x6370('0x1d')](_0x345219);}return null;};}function patchUpdates(_0x506f79){return function(_0x4e2206){try{jsonpatch['apply'](_0x4e2206,_0x506f79,!![]);}catch(_0x31d728){return BPromise['reject'](_0x31d728);}return _0x4e2206['save']();};}function saveUpdates(_0x32cf56,_0x44f53c){return function(_0x4c2e0d){if(_0x4c2e0d){return _0x4c2e0d['update'](_0x32cf56)[_0x6370('0x24')](function(_0x3d3d10){return _0x3d3d10;});}return null;};}function removeEntity(_0x26f0c6,_0x248595){return function(_0x3c7c42){if(_0x3c7c42){return _0x3c7c42[_0x6370('0x25')]()[_0x6370('0x24')](function(){_0x26f0c6[_0x6370('0x1b')](0xcc)[_0x6370('0x1c')]();});}};}function handleEntityNotFound(_0x31999e,_0x4ce4f4){return function(_0x57cf54){if(!_0x57cf54){_0x31999e[_0x6370('0x1a')](0x194);}return _0x57cf54;};}function handleError(_0x1857a9,_0x55f4fa){_0x55f4fa=_0x55f4fa||0x1f4;return function(_0x101dc5){logger['error'](_0x101dc5['stack']);if(_0x101dc5[_0x6370('0x26')]){delete _0x101dc5[_0x6370('0x26')];}_0x1857a9[_0x6370('0x1b')](_0x55f4fa)[_0x6370('0x27')](_0x101dc5);};}exports['index']=function(_0x1f7565,_0x12caa0){var _0xabccf={},_0x38d44c={},_0x3a9e31={'count':0x0,'rows':[]};var _0x10edab=_[_0x6370('0x28')](db['JscriptyQuestionReport']['rawAttributes'],function(_0x1e9df4){return{'name':_0x1e9df4[_0x6370('0x29')],'type':_0x1e9df4[_0x6370('0x2a')][_0x6370('0x2b')]};});_0x38d44c['model']=_[_0x6370('0x28')](_0x10edab,_0x6370('0x26'));_0x38d44c[_0x6370('0x2c')]=_['keys'](_0x1f7565['query']);_0x38d44c[_0x6370('0x2d')]=_['intersection'](_0x38d44c[_0x6370('0x2e')],_0x38d44c[_0x6370('0x2c')]);_0xabccf[_0x6370('0x2f')]=_[_0x6370('0x30')](_0x38d44c['model'],qs[_0x6370('0x31')](_0x1f7565[_0x6370('0x2c')][_0x6370('0x31')]));_0xabccf[_0x6370('0x2f')]=_0xabccf[_0x6370('0x2f')][_0x6370('0x32')]?_0xabccf[_0x6370('0x2f')]:_0x38d44c[_0x6370('0x2e')];if(!_0x1f7565[_0x6370('0x2c')]['hasOwnProperty'](_0x6370('0x33'))){_0xabccf[_0x6370('0x20')]=qs[_0x6370('0x20')](_0x1f7565[_0x6370('0x2c')][_0x6370('0x20')]);_0xabccf[_0x6370('0x1e')]=qs[_0x6370('0x1e')](_0x1f7565[_0x6370('0x2c')][_0x6370('0x1e')]);}_0xabccf[_0x6370('0x34')]=qs['sort'](_0x1f7565['query']['sort']);_0xabccf['where']=qs[_0x6370('0x2d')](_[_0x6370('0x35')](_0x1f7565[_0x6370('0x2c')],_0x38d44c['filters']),_0x10edab);if(_0x1f7565[_0x6370('0x2c')][_0x6370('0x36')]){_0xabccf[_0x6370('0x37')]=_[_0x6370('0x38')](_0xabccf[_0x6370('0x37')],{'$or':_[_0x6370('0x28')](_0x10edab,function(_0xb6cdda){if(_0xb6cdda[_0x6370('0x2a')]!==_0x6370('0x39')){var _0x42d1f1={};_0x42d1f1[_0xb6cdda[_0x6370('0x26')]]={'$like':'%'+_0x1f7565[_0x6370('0x2c')][_0x6370('0x36')]+'%'};return _0x42d1f1;}})});}_0xabccf=_[_0x6370('0x38')]({},_0xabccf,_0x1f7565['options']);var _0x30cb26={'where':_0xabccf[_0x6370('0x37')]};return db[_0x6370('0x3a')][_0x6370('0x21')](_0x30cb26)['then'](function(_0xa40247){_0x3a9e31['count']=_0xa40247;if(_0x1f7565['query'][_0x6370('0x3b')]){_0xabccf['include']=[{'all':!![]}];}return db['JscriptyQuestionReport'][_0x6370('0x3c')](_0xabccf);})['then'](function(_0xc7e59a){_0x3a9e31[_0x6370('0x3d')]=_0xc7e59a;return _0x3a9e31;})['then'](respondWithFilteredResult(_0x12caa0,_0xabccf))[_0x6370('0x3e')](handleError(_0x12caa0,null));};exports[_0x6370('0x3f')]=function(_0x5334b6,_0x3146f3){var _0x21b26c={'raw':!![],'where':{'id':_0x5334b6[_0x6370('0x40')]['id']}},_0x4762d8={};_0x4762d8[_0x6370('0x2e')]=_[_0x6370('0x41')](db[_0x6370('0x3a')]['rawAttributes']);_0x4762d8['query']=_['keys'](_0x5334b6[_0x6370('0x2c')]);_0x4762d8[_0x6370('0x2d')]=_[_0x6370('0x30')](_0x4762d8[_0x6370('0x2e')],_0x4762d8[_0x6370('0x2c')]);_0x21b26c[_0x6370('0x2f')]=_['intersection'](_0x4762d8[_0x6370('0x2e')],qs[_0x6370('0x31')](_0x5334b6[_0x6370('0x2c')][_0x6370('0x31')]));_0x21b26c[_0x6370('0x2f')]=_0x21b26c[_0x6370('0x2f')][_0x6370('0x32')]?_0x21b26c[_0x6370('0x2f')]:_0x4762d8[_0x6370('0x2e')];if(_0x5334b6['query'][_0x6370('0x3b')]){_0x21b26c[_0x6370('0x42')]=[{'all':!![]}];}_0x21b26c=_[_0x6370('0x38')]({},_0x21b26c,_0x5334b6['options']);return db['JscriptyQuestionReport'][_0x6370('0x43')](_0x21b26c)[_0x6370('0x24')](handleEntityNotFound(_0x3146f3,null))[_0x6370('0x24')](respondWithResult(_0x3146f3,null))[_0x6370('0x3e')](handleError(_0x3146f3,null));};exports['create']=function(_0x4eac7c,_0x5d5691){return db[_0x6370('0x3a')][_0x6370('0x44')](_0x4eac7c[_0x6370('0x45')],{})[_0x6370('0x24')](respondWithResult(_0x5d5691,0xc9))['catch'](handleError(_0x5d5691,null));};exports[_0x6370('0x46')]=function(_0x1b8fd1,_0x1a9b74){if(_0x1b8fd1[_0x6370('0x45')]['id']){delete _0x1b8fd1['body']['id'];}return db[_0x6370('0x3a')]['find']({'where':{'id':_0x1b8fd1[_0x6370('0x40')]['id']}})['then'](handleEntityNotFound(_0x1a9b74,null))[_0x6370('0x24')](saveUpdates(_0x1b8fd1[_0x6370('0x45')],null))[_0x6370('0x24')](respondWithResult(_0x1a9b74,null))[_0x6370('0x3e')](handleError(_0x1a9b74,null));};exports[_0x6370('0x25')]=function(_0x838101,_0x36bb4b){return db['JscriptyQuestionReport'][_0x6370('0x43')]({'where':{'id':_0x838101[_0x6370('0x40')]['id']}})[_0x6370('0x24')](handleEntityNotFound(_0x36bb4b,null))[_0x6370('0x24')](removeEntity(_0x36bb4b,null))[_0x6370('0x3e')](handleError(_0x36bb4b,null));};exports[_0x6370('0x47')]=function(_0x284968,_0x48b3be){return db[_0x6370('0x3a')]['describe']()[_0x6370('0x24')](respondWithResult(_0x48b3be,null))[_0x6370('0x3e')](handleError(_0x48b3be,null));};
\ No newline at end of file
+var _0x16f0=['params','rawAttributes','fields','options','create','update','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../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','apply','save','then','destroy','error','stack','name','send','index','JscriptyQuestionReport','type','key','model','map','query','keys','filters','intersection','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show'];(function(_0x935ad0,_0x3fb911){var _0x335e10=function(_0x29626a){while(--_0x29626a){_0x935ad0['push'](_0x935ad0['shift']());}};_0x335e10(++_0x3fb911);}(_0x16f0,0xa3));var _0x016f=function(_0x3328f0,_0x56c78d){_0x3328f0=_0x3328f0-0x0;var _0x5925fd=_0x16f0[_0x3328f0];return _0x5925fd;};'use strict';var emlformat=require(_0x016f('0x0'));var rimraf=require(_0x016f('0x1'));var zipdir=require(_0x016f('0x2'));var jsonpatch=require(_0x016f('0x3'));var rp=require(_0x016f('0x4'));var moment=require(_0x016f('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x016f('0x6'));var sox=require(_0x016f('0x7'));var csv=require(_0x016f('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x016f('0x9'));var _=require(_0x016f('0xa'));var squel=require(_0x016f('0xb'));var crypto=require(_0x016f('0xc'));var jsforce=require(_0x016f('0xd'));var deskjs=require(_0x016f('0xe'));var toCsv=require(_0x016f('0x8'));var querystring=require(_0x016f('0xf'));var Papa=require(_0x016f('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x016f('0x11'));var as=require(_0x016f('0x12'));var hardwareService=require(_0x016f('0x13'));var logger=require(_0x016f('0x14'))(_0x016f('0x15'));var utils=require(_0x016f('0x16'));var config=require(_0x016f('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x016f('0x18'))['db'];function respondWithStatusCode(_0x1833cd,_0xe11ac1){_0xe11ac1=_0xe11ac1||0xcc;return function(_0x5ca254){if(_0x5ca254){return _0x1833cd[_0x016f('0x19')](_0xe11ac1);}return _0x1833cd[_0x016f('0x1a')](_0xe11ac1)[_0x016f('0x1b')]();};}function respondWithResult(_0x42eb54,_0x5ae182){_0x5ae182=_0x5ae182||0xc8;return function(_0x3e08fe){if(_0x3e08fe){return _0x42eb54[_0x016f('0x1a')](_0x5ae182)[_0x016f('0x1c')](_0x3e08fe);}};}function respondWithFilteredResult(_0x153ec2,_0x1ff9eb){return function(_0x5a668d){if(_0x5a668d){var _0x1656b9=typeof _0x1ff9eb[_0x016f('0x1d')]===_0x016f('0x1e')&&typeof _0x1ff9eb[_0x016f('0x1f')]===_0x016f('0x1e');var _0x42ef2b=_0x5a668d[_0x016f('0x20')];var _0x4de5f9=_0x1656b9?0x0:_0x1ff9eb[_0x016f('0x1d')];var _0x16497f=_0x1656b9?_0x5a668d['count']:_0x1ff9eb[_0x016f('0x1d')]+_0x1ff9eb[_0x016f('0x1f')];var _0x84d4f1;if(_0x16497f>=_0x42ef2b){_0x16497f=_0x42ef2b;_0x84d4f1=0xc8;}else{_0x84d4f1=0xce;}_0x153ec2[_0x016f('0x1a')](_0x84d4f1);return _0x153ec2['set'](_0x016f('0x21'),_0x4de5f9+'-'+_0x16497f+'/'+_0x42ef2b)[_0x016f('0x1c')](_0x5a668d);}return null;};}function patchUpdates(_0x2b4707){return function(_0x391ce7){try{jsonpatch[_0x016f('0x22')](_0x391ce7,_0x2b4707,!![]);}catch(_0x113c31){return BPromise['reject'](_0x113c31);}return _0x391ce7[_0x016f('0x23')]();};}function saveUpdates(_0x4196b7,_0x42f5b4){return function(_0x1352dd){if(_0x1352dd){return _0x1352dd['update'](_0x4196b7)[_0x016f('0x24')](function(_0x14b69c){return _0x14b69c;});}return null;};}function removeEntity(_0x4da27b,_0x1ec2a6){return function(_0x167a09){if(_0x167a09){return _0x167a09[_0x016f('0x25')]()[_0x016f('0x24')](function(){_0x4da27b['status'](0xcc)[_0x016f('0x1b')]();});}};}function handleEntityNotFound(_0xf0636,_0x534aa3){return function(_0x19aff2){if(!_0x19aff2){_0xf0636[_0x016f('0x19')](0x194);}return _0x19aff2;};}function handleError(_0x368c62,_0x2b654f){_0x2b654f=_0x2b654f||0x1f4;return function(_0x33a53a){logger[_0x016f('0x26')](_0x33a53a[_0x016f('0x27')]);if(_0x33a53a[_0x016f('0x28')]){delete _0x33a53a[_0x016f('0x28')];}_0x368c62[_0x016f('0x1a')](_0x2b654f)[_0x016f('0x29')](_0x33a53a);};}exports[_0x016f('0x2a')]=function(_0x407125,_0x23109c){var _0x454c85={},_0x24434d={},_0x2f04fd={'count':0x0,'rows':[]};var _0x44f2c3=_['map'](db[_0x016f('0x2b')]['rawAttributes'],function(_0x363dac){return{'name':_0x363dac['fieldName'],'type':_0x363dac[_0x016f('0x2c')][_0x016f('0x2d')]};});_0x24434d[_0x016f('0x2e')]=_[_0x016f('0x2f')](_0x44f2c3,_0x016f('0x28'));_0x24434d[_0x016f('0x30')]=_[_0x016f('0x31')](_0x407125[_0x016f('0x30')]);_0x24434d[_0x016f('0x32')]=_[_0x016f('0x33')](_0x24434d[_0x016f('0x2e')],_0x24434d[_0x016f('0x30')]);_0x454c85['attributes']=_['intersection'](_0x24434d[_0x016f('0x2e')],qs['fields'](_0x407125[_0x016f('0x30')]['fields']));_0x454c85[_0x016f('0x34')]=_0x454c85[_0x016f('0x34')][_0x016f('0x35')]?_0x454c85[_0x016f('0x34')]:_0x24434d[_0x016f('0x2e')];if(!_0x407125[_0x016f('0x30')]['hasOwnProperty'](_0x016f('0x36'))){_0x454c85[_0x016f('0x1f')]=qs[_0x016f('0x1f')](_0x407125[_0x016f('0x30')][_0x016f('0x1f')]);_0x454c85[_0x016f('0x1d')]=qs[_0x016f('0x1d')](_0x407125[_0x016f('0x30')][_0x016f('0x1d')]);}_0x454c85[_0x016f('0x37')]=qs['sort'](_0x407125[_0x016f('0x30')][_0x016f('0x38')]);_0x454c85[_0x016f('0x39')]=qs[_0x016f('0x32')](_[_0x016f('0x3a')](_0x407125['query'],_0x24434d[_0x016f('0x32')]),_0x44f2c3);if(_0x407125[_0x016f('0x30')][_0x016f('0x3b')]){_0x454c85[_0x016f('0x39')]=_[_0x016f('0x3c')](_0x454c85[_0x016f('0x39')],{'$or':_[_0x016f('0x2f')](_0x44f2c3,function(_0x2701ab){if(_0x2701ab[_0x016f('0x2c')]!==_0x016f('0x3d')){var _0x2833e0={};_0x2833e0[_0x2701ab[_0x016f('0x28')]]={'$like':'%'+_0x407125[_0x016f('0x30')][_0x016f('0x3b')]+'%'};return _0x2833e0;}})});}_0x454c85=_['merge']({},_0x454c85,_0x407125['options']);var _0x31b42c={'where':_0x454c85[_0x016f('0x39')]};return db[_0x016f('0x2b')]['count'](_0x31b42c)['then'](function(_0x4bd180){_0x2f04fd[_0x016f('0x20')]=_0x4bd180;if(_0x407125[_0x016f('0x30')][_0x016f('0x3e')]){_0x454c85[_0x016f('0x3f')]=[{'all':!![]}];}return db[_0x016f('0x2b')][_0x016f('0x40')](_0x454c85);})[_0x016f('0x24')](function(_0x41ce27){_0x2f04fd[_0x016f('0x41')]=_0x41ce27;return _0x2f04fd;})[_0x016f('0x24')](respondWithFilteredResult(_0x23109c,_0x454c85))[_0x016f('0x42')](handleError(_0x23109c,null));};exports[_0x016f('0x43')]=function(_0x128fe1,_0x246e00){var _0x5eec75={'raw':!![],'where':{'id':_0x128fe1[_0x016f('0x44')]['id']}},_0x180a48={};_0x180a48['model']=_[_0x016f('0x31')](db[_0x016f('0x2b')][_0x016f('0x45')]);_0x180a48[_0x016f('0x30')]=_['keys'](_0x128fe1['query']);_0x180a48[_0x016f('0x32')]=_['intersection'](_0x180a48[_0x016f('0x2e')],_0x180a48[_0x016f('0x30')]);_0x5eec75['attributes']=_['intersection'](_0x180a48[_0x016f('0x2e')],qs[_0x016f('0x46')](_0x128fe1[_0x016f('0x30')]['fields']));_0x5eec75[_0x016f('0x34')]=_0x5eec75[_0x016f('0x34')][_0x016f('0x35')]?_0x5eec75[_0x016f('0x34')]:_0x180a48[_0x016f('0x2e')];if(_0x128fe1[_0x016f('0x30')][_0x016f('0x3e')]){_0x5eec75[_0x016f('0x3f')]=[{'all':!![]}];}_0x5eec75=_[_0x016f('0x3c')]({},_0x5eec75,_0x128fe1[_0x016f('0x47')]);return db[_0x016f('0x2b')]['find'](_0x5eec75)[_0x016f('0x24')](handleEntityNotFound(_0x246e00,null))['then'](respondWithResult(_0x246e00,null))[_0x016f('0x42')](handleError(_0x246e00,null));};exports[_0x016f('0x48')]=function(_0x4f6f73,_0x33fac3){return db['JscriptyQuestionReport']['create'](_0x4f6f73['body'],{})[_0x016f('0x24')](respondWithResult(_0x33fac3,0xc9))[_0x016f('0x42')](handleError(_0x33fac3,null));};exports[_0x016f('0x49')]=function(_0x41b785,_0x71b31b){if(_0x41b785[_0x016f('0x4a')]['id']){delete _0x41b785[_0x016f('0x4a')]['id'];}return db['JscriptyQuestionReport'][_0x016f('0x4b')]({'where':{'id':_0x41b785[_0x016f('0x44')]['id']}})[_0x016f('0x24')](handleEntityNotFound(_0x71b31b,null))['then'](saveUpdates(_0x41b785[_0x016f('0x4a')],null))['then'](respondWithResult(_0x71b31b,null))[_0x016f('0x42')](handleError(_0x71b31b,null));};exports['destroy']=function(_0x2c99df,_0x40e636){return db[_0x016f('0x2b')]['find']({'where':{'id':_0x2c99df[_0x016f('0x44')]['id']}})[_0x016f('0x24')](handleEntityNotFound(_0x40e636,null))[_0x016f('0x24')](removeEntity(_0x40e636,null))['catch'](handleError(_0x40e636,null));};exports[_0x016f('0x4c')]=function(_0xf6af11,_0x1c0a58){return db[_0x016f('0x2b')][_0x016f('0x4c')]()[_0x016f('0x24')](respondWithResult(_0x1c0a58,null))['catch'](handleError(_0x1c0a58,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc682=['../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./jscriptyQuestionReport.attributes','exports','define','JscriptyQuestionReport','lodash','util'];(function(_0x3f3607,_0x2575ab){var _0x403980=function(_0x8b9d23){while(--_0x8b9d23){_0x3f3607['push'](_0x3f3607['shift']());}};_0x403980(++_0x2575ab);}(_0xc682,0x129));var _0x2c68=function(_0x2f7b47,_0x480935){_0x2f7b47=_0x2f7b47-0x0;var _0x34163a=_0xc682[_0x2f7b47];return _0x34163a;};'use strict';var _=require(_0x2c68('0x0'));var util=require(_0x2c68('0x1'));var logger=require(_0x2c68('0x2'))(_0x2c68('0x3'));var moment=require(_0x2c68('0x4'));var BPromise=require(_0x2c68('0x5'));var rp=require(_0x2c68('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x2c68('0x7'));var config=require(_0x2c68('0x8'));var attributes=require(_0x2c68('0x9'));module[_0x2c68('0xa')]=function(_0x45796a,_0x178bf5){return _0x45796a[_0x2c68('0xb')](_0x2c68('0xc'),attributes,{'tableName':'report_jscripty_questions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xee10=['moment','bluebird','path','rimraf','../../config/environment','exports','define','JscriptyQuestionReport','report_jscripty_questions','util','../../config/logger'];(function(_0x48257f,_0x98f597){var _0x2cc46d=function(_0x72616){while(--_0x72616){_0x48257f['push'](_0x48257f['shift']());}};_0x2cc46d(++_0x98f597);}(_0xee10,0xa3));var _0x0ee1=function(_0x185b19,_0x15dbc2){_0x185b19=_0x185b19-0x0;var _0xffc90d=_0xee10[_0x185b19];return _0xffc90d;};'use strict';var _=require('lodash');var util=require(_0x0ee1('0x0'));var logger=require(_0x0ee1('0x1'))('api');var moment=require(_0x0ee1('0x2'));var BPromise=require(_0x0ee1('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0ee1('0x4'));var rimraf=require(_0x0ee1('0x5'));var config=require(_0x0ee1('0x6'));var attributes=require('./jscriptyQuestionReport.attributes');module[_0x0ee1('0x7')]=function(_0x223c7b,_0x42aaf1){return _0x223c7b[_0x0ee1('0x8')](_0x0ee1('0x9'),attributes,{'tableName':_0x0ee1('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ba0=['request\x20sent','debug','JscriptyQuestionReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','info','JscriptyQuestionReport,\x20%s,\x20%s'];(function(_0x416700,_0x145cc5){var _0x2d93b7=function(_0x31d0ad){while(--_0x31d0ad){_0x416700['push'](_0x416700['shift']());}};_0x2d93b7(++_0x145cc5);}(_0x2ba0,0xfa));var _0x02ba=function(_0x5df4ac,_0x1dfad7){_0x5df4ac=_0x5df4ac-0x0;var _0x5a8762=_0x2ba0[_0x5df4ac];return _0x5a8762;};'use strict';var _=require('lodash');var util=require(_0x02ba('0x0'));var moment=require(_0x02ba('0x1'));var BPromise=require(_0x02ba('0x2'));var rs=require(_0x02ba('0x3'));var fs=require('fs');var Redis=require(_0x02ba('0x4'));var db=require(_0x02ba('0x5'))['db'];var utils=require(_0x02ba('0x6'));var logger=require(_0x02ba('0x7'))(_0x02ba('0x8'));var config=require('../../config/environment');var jayson=require(_0x02ba('0x9'));var client=jayson[_0x02ba('0xa')][_0x02ba('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3937c7,_0x25f762,_0x2c3381){return new BPromise(function(_0x154910,_0x35a8a9){return client['request'](_0x3937c7,_0x2c3381)['then'](function(_0x43b450){logger[_0x02ba('0xc')](_0x02ba('0xd'),_0x25f762,_0x02ba('0xe'));logger[_0x02ba('0xf')](_0x02ba('0x10'),_0x25f762,_0x02ba('0xe'),JSON[_0x02ba('0x11')](_0x43b450));if(_0x43b450[_0x02ba('0x12')]){if(_0x43b450['error'][_0x02ba('0x13')]===0x1f4){logger['error'](_0x02ba('0xd'),_0x25f762,_0x43b450['error']['message']);return _0x35a8a9(_0x43b450[_0x02ba('0x12')][_0x02ba('0x14')]);}logger['error'](_0x02ba('0xd'),_0x25f762,_0x43b450[_0x02ba('0x12')]['message']);return _0x154910(_0x43b450[_0x02ba('0x12')][_0x02ba('0x14')]);}else{logger['info'](_0x02ba('0xd'),_0x25f762,_0x02ba('0xe'));_0x154910(_0x43b450[_0x02ba('0x15')][_0x02ba('0x14')]);}})['catch'](function(_0x732b7b){logger[_0x02ba('0x12')](_0x02ba('0xd'),_0x25f762,_0x732b7b);_0x35a8a9(_0x732b7b);});});}
\ No newline at end of file
+var _0xde13=['../../config/utils','../../config/logger','../../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','util','moment','randomstring','ioredis','../../mysqldb'];(function(_0x4c9d0a,_0x1e6c53){var _0x35e82c=function(_0x24caa3){while(--_0x24caa3){_0x4c9d0a['push'](_0x4c9d0a['shift']());}};_0x35e82c(++_0x1e6c53);}(_0xde13,0x126));var _0x3de1=function(_0x5c0c51,_0x40e234){_0x5c0c51=_0x5c0c51-0x0;var _0x58564f=_0xde13[_0x5c0c51];return _0x58564f;};'use strict';var _=require('lodash');var util=require(_0x3de1('0x0'));var moment=require(_0x3de1('0x1'));var BPromise=require('bluebird');var rs=require(_0x3de1('0x2'));var fs=require('fs');var Redis=require(_0x3de1('0x3'));var db=require(_0x3de1('0x4'))['db'];var utils=require(_0x3de1('0x5'));var logger=require(_0x3de1('0x6'))('rpc');var config=require(_0x3de1('0x7'));var jayson=require(_0x3de1('0x8'));var client=jayson[_0x3de1('0x9')][_0x3de1('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2c7e0f,_0x2b34c4,_0x4c06e2){return new BPromise(function(_0x431286,_0x1288f0){return client[_0x3de1('0xb')](_0x2c7e0f,_0x4c06e2)[_0x3de1('0xc')](function(_0x11e9e1){logger[_0x3de1('0xd')](_0x3de1('0xe'),_0x2b34c4,_0x3de1('0xf'));logger[_0x3de1('0x10')](_0x3de1('0x11'),_0x2b34c4,'request\x20sent',JSON[_0x3de1('0x12')](_0x11e9e1));if(_0x11e9e1['error']){if(_0x11e9e1[_0x3de1('0x13')][_0x3de1('0x14')]===0x1f4){logger[_0x3de1('0x13')]('JscriptyQuestionReport,\x20%s,\x20%s',_0x2b34c4,_0x11e9e1[_0x3de1('0x13')][_0x3de1('0x15')]);return _0x1288f0(_0x11e9e1[_0x3de1('0x13')]['message']);}logger[_0x3de1('0x13')](_0x3de1('0xe'),_0x2b34c4,_0x11e9e1[_0x3de1('0x13')][_0x3de1('0x15')]);return _0x431286(_0x11e9e1[_0x3de1('0x13')][_0x3de1('0x15')]);}else{logger[_0x3de1('0xd')](_0x3de1('0xe'),_0x2b34c4,_0x3de1('0xf'));_0x431286(_0x11e9e1['result'][_0x3de1('0x15')]);}})[_0x3de1('0x16')](function(_0x56db7d){logger[_0x3de1('0x13')](_0x3de1('0xe'),_0x2b34c4,_0x56db7d);_0x1288f0(_0x56db7d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2cfd=['Router','fs-extra','../../components/interaction/service','../../config/environment','./jscriptySessionReport.controller','get','isAuthenticated','index','/describe','describe','show','/:id/questions','getQuestions','create','put','/:id','update','delete','destroy','exports','multer','util','path','express'];(function(_0x5b7055,_0x5ed3c1){var _0x279613=function(_0x2b686a){while(--_0x2b686a){_0x5b7055['push'](_0x5b7055['shift']());}};_0x279613(++_0x5ed3c1);}(_0x2cfd,0xbc));var _0xd2cf=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x2cfd[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0xd2cf('0x0'));var util=require(_0xd2cf('0x1'));var path=require(_0xd2cf('0x2'));var timeout=require('connect-timeout');var express=require(_0xd2cf('0x3'));var router=express[_0xd2cf('0x4')]();var fs_extra=require(_0xd2cf('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xd2cf('0x6'));var config=require(_0xd2cf('0x7'));var controller=require(_0xd2cf('0x8'));router[_0xd2cf('0x9')]('/',auth[_0xd2cf('0xa')](),controller[_0xd2cf('0xb')]);router['get'](_0xd2cf('0xc'),auth[_0xd2cf('0xa')](),controller[_0xd2cf('0xd')]);router[_0xd2cf('0x9')]('/:id',auth[_0xd2cf('0xa')](),controller[_0xd2cf('0xe')]);router[_0xd2cf('0x9')](_0xd2cf('0xf'),auth[_0xd2cf('0xa')](),controller[_0xd2cf('0x10')]);router['post']('/',auth['isAuthenticated'](),controller[_0xd2cf('0x11')]);router[_0xd2cf('0x12')](_0xd2cf('0x13'),auth[_0xd2cf('0xa')](),controller[_0xd2cf('0x14')]);router[_0xd2cf('0x15')](_0xd2cf('0x13'),auth[_0xd2cf('0xa')](),controller[_0xd2cf('0x16')]);module[_0xd2cf('0x17')]=router;
\ No newline at end of file
+var _0x3b70=['express','Router','fs-extra','./jscriptySessionReport.controller','get','/describe','isAuthenticated','/:id','show','getQuestions','post','create','put','destroy','exports','path'];(function(_0x52bd97,_0x1a1bfc){var _0x26dadf=function(_0x2a5af5){while(--_0x2a5af5){_0x52bd97['push'](_0x52bd97['shift']());}};_0x26dadf(++_0x1a1bfc);}(_0x3b70,0x6f));var _0x03b7=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x3b70[_0x2dafbe];return _0x58a45a;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x03b7('0x0'));var timeout=require('connect-timeout');var express=require(_0x03b7('0x1'));var router=express[_0x03b7('0x2')]();var fs_extra=require(_0x03b7('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x03b7('0x4'));router[_0x03b7('0x5')]('/',auth['isAuthenticated'](),controller['index']);router[_0x03b7('0x5')](_0x03b7('0x6'),auth[_0x03b7('0x7')](),controller['describe']);router[_0x03b7('0x5')](_0x03b7('0x8'),auth[_0x03b7('0x7')](),controller[_0x03b7('0x9')]);router[_0x03b7('0x5')]('/:id/questions',auth[_0x03b7('0x7')](),controller[_0x03b7('0xa')]);router[_0x03b7('0xb')]('/',auth['isAuthenticated'](),controller[_0x03b7('0xc')]);router[_0x03b7('0xd')](_0x03b7('0x8'),auth[_0x03b7('0x7')](),controller['update']);router['delete']('/:id',auth['isAuthenticated'](),controller[_0x03b7('0xe')]);module[_0x03b7('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0f0c=['YYYY-MM-DD\x20HH:mm:ss','DATE','STRING','exports','setDataValue','endtime','format'];(function(_0x44fcb6,_0xd1877){var _0x9818fe=function(_0xc54f4f){while(--_0xc54f4f){_0x44fcb6['push'](_0x44fcb6['shift']());}};_0x9818fe(++_0xd1877);}(_0x0f0c,0x1d8));var _0xc0f0=function(_0xda3db0,_0x50779b){_0xda3db0=_0xda3db0-0x0;var _0x170e71=_0x0f0c[_0xda3db0];return _0x170e71;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0xc0f0('0x0')]={'starttime':{'type':Sequelize['DATE'],'set':function(_0x4ebebb){this[_0xc0f0('0x1')]('starttime',_0x4ebebb);this[_0xc0f0('0x1')](_0xc0f0('0x2'),moment()[_0xc0f0('0x3')](_0xc0f0('0x4')));}},'endtime':{'type':Sequelize[_0xc0f0('0x5')]},'membername':{'type':Sequelize['STRING']},'projectname':{'type':Sequelize[_0xc0f0('0x6')]},'queue':{'type':Sequelize[_0xc0f0('0x6')]},'uniqueid':{'type':Sequelize[_0xc0f0('0x6')]},'calleridname':{'type':Sequelize[_0xc0f0('0x6')]},'calleridnum':{'type':Sequelize[_0xc0f0('0x6')]},'completed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x3302=['YYYY-MM-DD\x20HH:mm:ss','STRING','BOOLEAN','moment','sequelize','DATE','setDataValue','endtime','format'];(function(_0x5adfc8,_0x42d84c){var _0x11cbc6=function(_0x9176ca){while(--_0x9176ca){_0x5adfc8['push'](_0x5adfc8['shift']());}};_0x11cbc6(++_0x42d84c);}(_0x3302,0xff));var _0x2330=function(_0x825dd3,_0x2baad8){_0x825dd3=_0x825dd3-0x0;var _0x2e826a=_0x3302[_0x825dd3];return _0x2e826a;};'use strict';var moment=require(_0x2330('0x0'));var Sequelize=require(_0x2330('0x1'));module['exports']={'starttime':{'type':Sequelize[_0x2330('0x2')],'set':function(_0x28ef13){this[_0x2330('0x3')]('starttime',_0x28ef13);this[_0x2330('0x3')](_0x2330('0x4'),moment()[_0x2330('0x5')](_0x2330('0x6')));}},'endtime':{'type':Sequelize[_0x2330('0x2')]},'membername':{'type':Sequelize[_0x2330('0x7')]},'projectname':{'type':Sequelize[_0x2330('0x7')]},'queue':{'type':Sequelize[_0x2330('0x7')]},'uniqueid':{'type':Sequelize[_0x2330('0x7')]},'calleridname':{'type':Sequelize[_0x2330('0x7')]},'calleridnum':{'type':Sequelize['STRING']},'completed':{'type':Sequelize[_0x2330('0x8')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9438=['length','hasOwnProperty','nolimit','order','sort','where','pick','filter','map','merge','options','includeAll','include','findAll','rows','show','find','catch','create','body','params','destroy','describe','getQuestions','findOne','JscriptyQuestionReport','SessionId','eml-format','zip-dir','request-promise','moment','bluebird','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','status','end','json','undefined','limit','count','offset','Content-Range','apply','reject','save','update','then','sendStatus','error','stack','name','send','JscriptySessionReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields'];(function(_0x4708e6,_0x51c010){var _0xff277e=function(_0x30edf2){while(--_0x30edf2){_0x4708e6['push'](_0x4708e6['shift']());}};_0xff277e(++_0x51c010);}(_0x9438,0xbf));var _0x8943=function(_0x5b74e0,_0x132cba){_0x5b74e0=_0x5b74e0-0x0;var _0x4b6d85=_0x9438[_0x5b74e0];return _0x4b6d85;};'use strict';var emlformat=require(_0x8943('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8943('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8943('0x2'));var moment=require(_0x8943('0x3'));var BPromise=require(_0x8943('0x4'));var Mustache=require('mustache');var util=require(_0x8943('0x5'));var path=require(_0x8943('0x6'));var sox=require(_0x8943('0x7'));var csv=require('to-csv');var ejs=require(_0x8943('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8943('0x9'));var squel=require(_0x8943('0xa'));var crypto=require(_0x8943('0xb'));var jsforce=require(_0x8943('0xc'));var deskjs=require(_0x8943('0xd'));var toCsv=require(_0x8943('0xe'));var querystring=require(_0x8943('0xf'));var Papa=require(_0x8943('0x10'));var Redis=require(_0x8943('0x11'));var authService=require(_0x8943('0x12'));var qs=require(_0x8943('0x13'));var as=require(_0x8943('0x14'));var hardwareService=require(_0x8943('0x15'));var logger=require('../../config/logger')(_0x8943('0x16'));var utils=require(_0x8943('0x17'));var config=require(_0x8943('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1ee1b3,_0xfc5304){_0xfc5304=_0xfc5304||0xcc;return function(_0x27f1f2){if(_0x27f1f2){return _0x1ee1b3['sendStatus'](_0xfc5304);}return _0x1ee1b3[_0x8943('0x19')](_0xfc5304)[_0x8943('0x1a')]();};}function respondWithResult(_0x1edf4c,_0x359936){_0x359936=_0x359936||0xc8;return function(_0x11a6ea){if(_0x11a6ea){return _0x1edf4c[_0x8943('0x19')](_0x359936)[_0x8943('0x1b')](_0x11a6ea);}};}function respondWithFilteredResult(_0x2adc5e,_0x23d829){return function(_0x1caa71){if(_0x1caa71){var _0x121b17=typeof _0x23d829['offset']===_0x8943('0x1c')&&typeof _0x23d829[_0x8943('0x1d')]==='undefined';var _0x4159c1=_0x1caa71[_0x8943('0x1e')];var _0x16ebbf=_0x121b17?0x0:_0x23d829[_0x8943('0x1f')];var _0x5351f6=_0x121b17?_0x1caa71[_0x8943('0x1e')]:_0x23d829[_0x8943('0x1f')]+_0x23d829['limit'];var _0xec7162;if(_0x5351f6>=_0x4159c1){_0x5351f6=_0x4159c1;_0xec7162=0xc8;}else{_0xec7162=0xce;}_0x2adc5e['status'](_0xec7162);return _0x2adc5e['set'](_0x8943('0x20'),_0x16ebbf+'-'+_0x5351f6+'/'+_0x4159c1)[_0x8943('0x1b')](_0x1caa71);}return null;};}function patchUpdates(_0x24545f){return function(_0x517d1e){try{jsonpatch[_0x8943('0x21')](_0x517d1e,_0x24545f,!![]);}catch(_0xa407ed){return BPromise[_0x8943('0x22')](_0xa407ed);}return _0x517d1e[_0x8943('0x23')]();};}function saveUpdates(_0x41906c,_0x2545e2){return function(_0x4c4c27){if(_0x4c4c27){return _0x4c4c27[_0x8943('0x24')](_0x41906c)[_0x8943('0x25')](function(_0x243785){return _0x243785;});}return null;};}function removeEntity(_0x703a7e,_0x210956){return function(_0x1cf435){if(_0x1cf435){return _0x1cf435['destroy']()[_0x8943('0x25')](function(){_0x703a7e[_0x8943('0x19')](0xcc)[_0x8943('0x1a')]();});}};}function handleEntityNotFound(_0x33467c,_0x4b6ab1){return function(_0x583b01){if(!_0x583b01){_0x33467c[_0x8943('0x26')](0x194);}return _0x583b01;};}function handleError(_0x4e4846,_0x2bcc01){_0x2bcc01=_0x2bcc01||0x1f4;return function(_0x3aa5a2){logger[_0x8943('0x27')](_0x3aa5a2[_0x8943('0x28')]);if(_0x3aa5a2[_0x8943('0x29')]){delete _0x3aa5a2[_0x8943('0x29')];}_0x4e4846[_0x8943('0x19')](_0x2bcc01)[_0x8943('0x2a')](_0x3aa5a2);};}exports['index']=function(_0x145b09,_0x3cddf6){var _0xad9551={},_0x3c6f40={},_0xccc621={'count':0x0,'rows':[]};var _0x2facb0=_['map'](db[_0x8943('0x2b')][_0x8943('0x2c')],function(_0x2c4043){return{'name':_0x2c4043[_0x8943('0x2d')],'type':_0x2c4043[_0x8943('0x2e')][_0x8943('0x2f')]};});_0x3c6f40[_0x8943('0x30')]=_['map'](_0x2facb0,_0x8943('0x29'));_0x3c6f40[_0x8943('0x31')]=_[_0x8943('0x32')](_0x145b09['query']);_0x3c6f40[_0x8943('0x33')]=_[_0x8943('0x34')](_0x3c6f40['model'],_0x3c6f40[_0x8943('0x31')]);_0xad9551[_0x8943('0x35')]=_[_0x8943('0x34')](_0x3c6f40[_0x8943('0x30')],qs[_0x8943('0x36')](_0x145b09[_0x8943('0x31')][_0x8943('0x36')]));_0xad9551[_0x8943('0x35')]=_0xad9551[_0x8943('0x35')][_0x8943('0x37')]?_0xad9551[_0x8943('0x35')]:_0x3c6f40[_0x8943('0x30')];if(!_0x145b09[_0x8943('0x31')][_0x8943('0x38')](_0x8943('0x39'))){_0xad9551[_0x8943('0x1d')]=qs[_0x8943('0x1d')](_0x145b09[_0x8943('0x31')][_0x8943('0x1d')]);_0xad9551[_0x8943('0x1f')]=qs[_0x8943('0x1f')](_0x145b09[_0x8943('0x31')]['offset']);}_0xad9551[_0x8943('0x3a')]=qs[_0x8943('0x3b')](_0x145b09['query'][_0x8943('0x3b')]);_0xad9551[_0x8943('0x3c')]=qs['filters'](_[_0x8943('0x3d')](_0x145b09[_0x8943('0x31')],_0x3c6f40[_0x8943('0x33')]),_0x2facb0);if(_0x145b09[_0x8943('0x31')][_0x8943('0x3e')]){_0xad9551[_0x8943('0x3c')]=_['merge'](_0xad9551[_0x8943('0x3c')],{'$or':_[_0x8943('0x3f')](_0x2facb0,function(_0x40a6e6){if(_0x40a6e6[_0x8943('0x2e')]!=='VIRTUAL'){var _0x5d47a9={};_0x5d47a9[_0x40a6e6[_0x8943('0x29')]]={'$like':'%'+_0x145b09[_0x8943('0x31')][_0x8943('0x3e')]+'%'};return _0x5d47a9;}})});}_0xad9551=_[_0x8943('0x40')]({},_0xad9551,_0x145b09[_0x8943('0x41')]);var _0x3fb0d6={'where':_0xad9551[_0x8943('0x3c')]};return db[_0x8943('0x2b')][_0x8943('0x1e')](_0x3fb0d6)[_0x8943('0x25')](function(_0x425888){_0xccc621[_0x8943('0x1e')]=_0x425888;if(_0x145b09[_0x8943('0x31')][_0x8943('0x42')]){_0xad9551[_0x8943('0x43')]=[{'all':!![]}];}return db[_0x8943('0x2b')][_0x8943('0x44')](_0xad9551);})[_0x8943('0x25')](function(_0x54f3f6){_0xccc621[_0x8943('0x45')]=_0x54f3f6;return _0xccc621;})[_0x8943('0x25')](respondWithFilteredResult(_0x3cddf6,_0xad9551))['catch'](handleError(_0x3cddf6,null));};exports[_0x8943('0x46')]=function(_0x467ea0,_0x14c5c7){var _0x4dc321={'raw':!![],'where':{'id':_0x467ea0['params']['id']}},_0x3c0507={};_0x3c0507[_0x8943('0x30')]=_['keys'](db[_0x8943('0x2b')]['rawAttributes']);_0x3c0507[_0x8943('0x31')]=_[_0x8943('0x32')](_0x467ea0['query']);_0x3c0507[_0x8943('0x33')]=_[_0x8943('0x34')](_0x3c0507[_0x8943('0x30')],_0x3c0507[_0x8943('0x31')]);_0x4dc321['attributes']=_[_0x8943('0x34')](_0x3c0507[_0x8943('0x30')],qs[_0x8943('0x36')](_0x467ea0['query'][_0x8943('0x36')]));_0x4dc321['attributes']=_0x4dc321[_0x8943('0x35')][_0x8943('0x37')]?_0x4dc321[_0x8943('0x35')]:_0x3c0507[_0x8943('0x30')];if(_0x467ea0['query'][_0x8943('0x42')]){_0x4dc321[_0x8943('0x43')]=[{'all':!![]}];}_0x4dc321=_['merge']({},_0x4dc321,_0x467ea0[_0x8943('0x41')]);return db[_0x8943('0x2b')][_0x8943('0x47')](_0x4dc321)[_0x8943('0x25')](handleEntityNotFound(_0x14c5c7,null))['then'](respondWithResult(_0x14c5c7,null))[_0x8943('0x48')](handleError(_0x14c5c7,null));};exports['create']=function(_0x39c461,_0xb51b6){return db[_0x8943('0x2b')][_0x8943('0x49')](_0x39c461[_0x8943('0x4a')],{})[_0x8943('0x25')](respondWithResult(_0xb51b6,0xc9))[_0x8943('0x48')](handleError(_0xb51b6,null));};exports[_0x8943('0x24')]=function(_0x3a37ee,_0x4dc937){if(_0x3a37ee[_0x8943('0x4a')]['id']){delete _0x3a37ee[_0x8943('0x4a')]['id'];}return db[_0x8943('0x2b')][_0x8943('0x47')]({'where':{'id':_0x3a37ee[_0x8943('0x4b')]['id']}})[_0x8943('0x25')](handleEntityNotFound(_0x4dc937,null))[_0x8943('0x25')](saveUpdates(_0x3a37ee[_0x8943('0x4a')],null))[_0x8943('0x25')](respondWithResult(_0x4dc937,null))[_0x8943('0x48')](handleError(_0x4dc937,null));};exports[_0x8943('0x4c')]=function(_0x166532,_0x26402e){return db['JscriptySessionReport']['find']({'where':{'id':_0x166532[_0x8943('0x4b')]['id']}})[_0x8943('0x25')](handleEntityNotFound(_0x26402e,null))[_0x8943('0x25')](removeEntity(_0x26402e,null))['catch'](handleError(_0x26402e,null));};exports['describe']=function(_0x5c0897,_0x4a9275){return db['JscriptySessionReport'][_0x8943('0x4d')]()[_0x8943('0x25')](respondWithResult(_0x4a9275,null))['catch'](handleError(_0x4a9275,null));};exports[_0x8943('0x4e')]=function(_0x560525,_0x40dbc1,_0x2d2bcc){var _0x1d7a8d={'raw':!![],'where':{}};var _0x1c0fc3={};var _0x50bbee={'count':0x0,'rows':[]};return db[_0x8943('0x2b')][_0x8943('0x4f')]({'where':{'id':_0x560525['params']['id']}})[_0x8943('0x25')](handleEntityNotFound(_0x40dbc1,null))['then'](function(_0x5ef4bb){if(_0x5ef4bb){_0x1c0fc3[_0x8943('0x30')]=_[_0x8943('0x32')](db[_0x8943('0x50')][_0x8943('0x2c')]);_0x1c0fc3[_0x8943('0x31')]=_['keys'](_0x560525[_0x8943('0x31')]);_0x1c0fc3['filters']=_[_0x8943('0x34')](_0x1c0fc3[_0x8943('0x30')],_0x1c0fc3['query']);_0x1d7a8d[_0x8943('0x35')]=_[_0x8943('0x34')](_0x1c0fc3[_0x8943('0x30')],qs[_0x8943('0x36')](_0x560525[_0x8943('0x31')][_0x8943('0x36')]));_0x1d7a8d['attributes']=_0x1d7a8d[_0x8943('0x35')]['length']?_0x1d7a8d['attributes']:_0x1c0fc3[_0x8943('0x30')];if(!_0x560525[_0x8943('0x31')][_0x8943('0x38')](_0x8943('0x39'))){_0x1d7a8d[_0x8943('0x1d')]=qs[_0x8943('0x1d')](_0x560525[_0x8943('0x31')][_0x8943('0x1d')]);_0x1d7a8d['offset']=qs[_0x8943('0x1f')](_0x560525['query'][_0x8943('0x1f')]);}_0x1d7a8d[_0x8943('0x3a')]=qs['sort'](_0x560525[_0x8943('0x31')][_0x8943('0x3b')]);_0x1d7a8d['where']=qs[_0x8943('0x33')](_['pick'](_0x560525['query'],_0x1c0fc3[_0x8943('0x33')]));_0x1d7a8d['where'][_0x8943('0x51')]=_0x5ef4bb['id'];if(_0x560525[_0x8943('0x31')][_0x8943('0x3e')]){_0x1d7a8d['where']=_[_0x8943('0x40')](_0x1d7a8d['where'],{'$or':_['map'](_0x1d7a8d['attributes'],function(_0x1416a6){var _0x4019c7={};_0x4019c7[_0x1416a6]={'$like':'%'+_0x560525[_0x8943('0x31')]['filter']+'%'};return _0x4019c7;})});}_0x1d7a8d=_[_0x8943('0x40')]({},_0x1d7a8d,_0x560525[_0x8943('0x41')]);return db[_0x8943('0x50')][_0x8943('0x1e')]({'where':_0x1d7a8d[_0x8943('0x3c')]})[_0x8943('0x25')](function(_0x51833e){_0x50bbee['count']=_0x51833e;if(_0x560525[_0x8943('0x31')][_0x8943('0x42')]){_0x1d7a8d['include']=[{'all':!![]}];}return db[_0x8943('0x50')][_0x8943('0x44')](_0x1d7a8d);})[_0x8943('0x25')](function(_0x2eb9c6){_0x50bbee[_0x8943('0x45')]=_0x2eb9c6;return _0x50bbee;});}})['then'](respondWithFilteredResult(_0x40dbc1,_0x1d7a8d))['catch'](handleError(_0x40dbc1,null));};
\ No newline at end of file
+var _0x213d=['papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','reject','save','update','then','destroy','stack','name','send','index','JscriptySessionReport','rawAttributes','fieldName','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','merge','type','filter','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','describe','getQuestions','findOne','pick','options','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring'];(function(_0x4a874c,_0x33eed2){var _0x4eb7db=function(_0x306c53){while(--_0x306c53){_0x4a874c['push'](_0x4a874c['shift']());}};_0x4eb7db(++_0x33eed2);}(_0x213d,0xdd));var _0xd213=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x213d[_0x5b644e];return _0x49c6bf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd213('0x0'));var zipdir=require(_0xd213('0x1'));var jsonpatch=require(_0xd213('0x2'));var rp=require(_0xd213('0x3'));var moment=require('moment');var BPromise=require(_0xd213('0x4'));var Mustache=require(_0xd213('0x5'));var util=require(_0xd213('0x6'));var path=require(_0xd213('0x7'));var sox=require(_0xd213('0x8'));var csv=require(_0xd213('0x9'));var ejs=require(_0xd213('0xa'));var fs=require('fs');var fs_extra=require(_0xd213('0xb'));var _=require(_0xd213('0xc'));var squel=require(_0xd213('0xd'));var crypto=require(_0xd213('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xd213('0xf'));var Papa=require(_0xd213('0x10'));var Redis=require(_0xd213('0x11'));var authService=require(_0xd213('0x12'));var qs=require(_0xd213('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd213('0x14'));var logger=require(_0xd213('0x15'))(_0xd213('0x16'));var utils=require(_0xd213('0x17'));var config=require(_0xd213('0x18'));var licenseUtil=require(_0xd213('0x19'));var db=require(_0xd213('0x1a'))['db'];function respondWithStatusCode(_0x54073f,_0x4acee9){_0x4acee9=_0x4acee9||0xcc;return function(_0x598e97){if(_0x598e97){return _0x54073f[_0xd213('0x1b')](_0x4acee9);}return _0x54073f['status'](_0x4acee9)[_0xd213('0x1c')]();};}function respondWithResult(_0x364d16,_0x1dbc6d){_0x1dbc6d=_0x1dbc6d||0xc8;return function(_0x55eff5){if(_0x55eff5){return _0x364d16[_0xd213('0x1d')](_0x1dbc6d)[_0xd213('0x1e')](_0x55eff5);}};}function respondWithFilteredResult(_0x42429f,_0x3fb129){return function(_0x2560f9){if(_0x2560f9){var _0x40eaaf=typeof _0x3fb129[_0xd213('0x1f')]===_0xd213('0x20')&&typeof _0x3fb129[_0xd213('0x21')]===_0xd213('0x20');var _0x249ff9=_0x2560f9[_0xd213('0x22')];var _0x1c2f2b=_0x40eaaf?0x0:_0x3fb129[_0xd213('0x1f')];var _0x49c01f=_0x40eaaf?_0x2560f9[_0xd213('0x22')]:_0x3fb129[_0xd213('0x1f')]+_0x3fb129[_0xd213('0x21')];var _0xe1bae4;if(_0x49c01f>=_0x249ff9){_0x49c01f=_0x249ff9;_0xe1bae4=0xc8;}else{_0xe1bae4=0xce;}_0x42429f['status'](_0xe1bae4);return _0x42429f['set']('Content-Range',_0x1c2f2b+'-'+_0x49c01f+'/'+_0x249ff9)[_0xd213('0x1e')](_0x2560f9);}return null;};}function patchUpdates(_0x1a5f26){return function(_0x574254){try{jsonpatch['apply'](_0x574254,_0x1a5f26,!![]);}catch(_0x5c3afe){return BPromise[_0xd213('0x23')](_0x5c3afe);}return _0x574254[_0xd213('0x24')]();};}function saveUpdates(_0x49002c,_0x5c6a73){return function(_0x2575dd){if(_0x2575dd){return _0x2575dd[_0xd213('0x25')](_0x49002c)[_0xd213('0x26')](function(_0x3e05e5){return _0x3e05e5;});}return null;};}function removeEntity(_0x4d8620,_0x1c669a){return function(_0x395347){if(_0x395347){return _0x395347[_0xd213('0x27')]()['then'](function(){_0x4d8620[_0xd213('0x1d')](0xcc)[_0xd213('0x1c')]();});}};}function handleEntityNotFound(_0x566ea0,_0x32e88d){return function(_0x2cd7cf){if(!_0x2cd7cf){_0x566ea0[_0xd213('0x1b')](0x194);}return _0x2cd7cf;};}function handleError(_0xea8fe4,_0x37ad6f){_0x37ad6f=_0x37ad6f||0x1f4;return function(_0x50c6d2){logger['error'](_0x50c6d2[_0xd213('0x28')]);if(_0x50c6d2['name']){delete _0x50c6d2[_0xd213('0x29')];}_0xea8fe4['status'](_0x37ad6f)[_0xd213('0x2a')](_0x50c6d2);};}exports[_0xd213('0x2b')]=function(_0x1b1555,_0x5444e0){var _0x4bcdaf={},_0x179ac9={},_0x4d0649={'count':0x0,'rows':[]};var _0x5ac71e=_['map'](db[_0xd213('0x2c')][_0xd213('0x2d')],function(_0x117b62){return{'name':_0x117b62[_0xd213('0x2e')],'type':_0x117b62['type'][_0xd213('0x2f')]};});_0x179ac9[_0xd213('0x30')]=_[_0xd213('0x31')](_0x5ac71e,_0xd213('0x29'));_0x179ac9[_0xd213('0x32')]=_['keys'](_0x1b1555[_0xd213('0x32')]);_0x179ac9[_0xd213('0x33')]=_[_0xd213('0x34')](_0x179ac9[_0xd213('0x30')],_0x179ac9[_0xd213('0x32')]);_0x4bcdaf[_0xd213('0x35')]=_['intersection'](_0x179ac9[_0xd213('0x30')],qs[_0xd213('0x36')](_0x1b1555[_0xd213('0x32')][_0xd213('0x36')]));_0x4bcdaf[_0xd213('0x35')]=_0x4bcdaf[_0xd213('0x35')][_0xd213('0x37')]?_0x4bcdaf[_0xd213('0x35')]:_0x179ac9[_0xd213('0x30')];if(!_0x1b1555['query'][_0xd213('0x38')]('nolimit')){_0x4bcdaf['limit']=qs[_0xd213('0x21')](_0x1b1555['query'][_0xd213('0x21')]);_0x4bcdaf[_0xd213('0x1f')]=qs['offset'](_0x1b1555[_0xd213('0x32')][_0xd213('0x1f')]);}_0x4bcdaf[_0xd213('0x39')]=qs[_0xd213('0x3a')](_0x1b1555['query']['sort']);_0x4bcdaf[_0xd213('0x3b')]=qs[_0xd213('0x33')](_['pick'](_0x1b1555['query'],_0x179ac9['filters']),_0x5ac71e);if(_0x1b1555['query']['filter']){_0x4bcdaf[_0xd213('0x3b')]=_[_0xd213('0x3c')](_0x4bcdaf['where'],{'$or':_[_0xd213('0x31')](_0x5ac71e,function(_0x426467){if(_0x426467[_0xd213('0x3d')]!=='VIRTUAL'){var _0x28e31b={};_0x28e31b[_0x426467[_0xd213('0x29')]]={'$like':'%'+_0x1b1555[_0xd213('0x32')][_0xd213('0x3e')]+'%'};return _0x28e31b;}})});}_0x4bcdaf=_[_0xd213('0x3c')]({},_0x4bcdaf,_0x1b1555['options']);var _0x577be0={'where':_0x4bcdaf[_0xd213('0x3b')]};return db[_0xd213('0x2c')][_0xd213('0x22')](_0x577be0)[_0xd213('0x26')](function(_0x453636){_0x4d0649[_0xd213('0x22')]=_0x453636;if(_0x1b1555['query'][_0xd213('0x3f')]){_0x4bcdaf[_0xd213('0x40')]=[{'all':!![]}];}return db[_0xd213('0x2c')][_0xd213('0x41')](_0x4bcdaf);})[_0xd213('0x26')](function(_0x1dd62f){_0x4d0649[_0xd213('0x42')]=_0x1dd62f;return _0x4d0649;})[_0xd213('0x26')](respondWithFilteredResult(_0x5444e0,_0x4bcdaf))[_0xd213('0x43')](handleError(_0x5444e0,null));};exports[_0xd213('0x44')]=function(_0x3a71d2,_0x39227b){var _0x360e8b={'raw':!![],'where':{'id':_0x3a71d2[_0xd213('0x45')]['id']}},_0x5e4b4d={};_0x5e4b4d[_0xd213('0x30')]=_[_0xd213('0x46')](db[_0xd213('0x2c')][_0xd213('0x2d')]);_0x5e4b4d[_0xd213('0x32')]=_[_0xd213('0x46')](_0x3a71d2[_0xd213('0x32')]);_0x5e4b4d['filters']=_[_0xd213('0x34')](_0x5e4b4d[_0xd213('0x30')],_0x5e4b4d['query']);_0x360e8b[_0xd213('0x35')]=_[_0xd213('0x34')](_0x5e4b4d[_0xd213('0x30')],qs[_0xd213('0x36')](_0x3a71d2['query'][_0xd213('0x36')]));_0x360e8b[_0xd213('0x35')]=_0x360e8b[_0xd213('0x35')][_0xd213('0x37')]?_0x360e8b['attributes']:_0x5e4b4d[_0xd213('0x30')];if(_0x3a71d2[_0xd213('0x32')][_0xd213('0x3f')]){_0x360e8b[_0xd213('0x40')]=[{'all':!![]}];}_0x360e8b=_[_0xd213('0x3c')]({},_0x360e8b,_0x3a71d2['options']);return db[_0xd213('0x2c')][_0xd213('0x47')](_0x360e8b)['then'](handleEntityNotFound(_0x39227b,null))['then'](respondWithResult(_0x39227b,null))[_0xd213('0x43')](handleError(_0x39227b,null));};exports[_0xd213('0x48')]=function(_0x5415dc,_0x501d96){return db[_0xd213('0x2c')]['create'](_0x5415dc['body'],{})[_0xd213('0x26')](respondWithResult(_0x501d96,0xc9))[_0xd213('0x43')](handleError(_0x501d96,null));};exports[_0xd213('0x25')]=function(_0x425367,_0x1b6e65){if(_0x425367['body']['id']){delete _0x425367[_0xd213('0x49')]['id'];}return db[_0xd213('0x2c')][_0xd213('0x47')]({'where':{'id':_0x425367[_0xd213('0x45')]['id']}})['then'](handleEntityNotFound(_0x1b6e65,null))[_0xd213('0x26')](saveUpdates(_0x425367[_0xd213('0x49')],null))[_0xd213('0x26')](respondWithResult(_0x1b6e65,null))[_0xd213('0x43')](handleError(_0x1b6e65,null));};exports['destroy']=function(_0x42d596,_0x559b5c){return db[_0xd213('0x2c')]['find']({'where':{'id':_0x42d596[_0xd213('0x45')]['id']}})['then'](handleEntityNotFound(_0x559b5c,null))[_0xd213('0x26')](removeEntity(_0x559b5c,null))[_0xd213('0x43')](handleError(_0x559b5c,null));};exports['describe']=function(_0x4077b2,_0x25e492){return db[_0xd213('0x2c')][_0xd213('0x4a')]()['then'](respondWithResult(_0x25e492,null))[_0xd213('0x43')](handleError(_0x25e492,null));};exports[_0xd213('0x4b')]=function(_0xad89dd,_0x812443,_0x3e67c6){var _0x4c9dd6={'raw':!![],'where':{}};var _0x518353={};var _0x94e8e2={'count':0x0,'rows':[]};return db[_0xd213('0x2c')][_0xd213('0x4c')]({'where':{'id':_0xad89dd[_0xd213('0x45')]['id']}})[_0xd213('0x26')](handleEntityNotFound(_0x812443,null))[_0xd213('0x26')](function(_0x406392){if(_0x406392){_0x518353['model']=_[_0xd213('0x46')](db['JscriptyQuestionReport'][_0xd213('0x2d')]);_0x518353[_0xd213('0x32')]=_['keys'](_0xad89dd[_0xd213('0x32')]);_0x518353['filters']=_[_0xd213('0x34')](_0x518353[_0xd213('0x30')],_0x518353[_0xd213('0x32')]);_0x4c9dd6[_0xd213('0x35')]=_[_0xd213('0x34')](_0x518353[_0xd213('0x30')],qs[_0xd213('0x36')](_0xad89dd[_0xd213('0x32')][_0xd213('0x36')]));_0x4c9dd6[_0xd213('0x35')]=_0x4c9dd6[_0xd213('0x35')]['length']?_0x4c9dd6[_0xd213('0x35')]:_0x518353['model'];if(!_0xad89dd[_0xd213('0x32')][_0xd213('0x38')]('nolimit')){_0x4c9dd6[_0xd213('0x21')]=qs[_0xd213('0x21')](_0xad89dd[_0xd213('0x32')][_0xd213('0x21')]);_0x4c9dd6[_0xd213('0x1f')]=qs['offset'](_0xad89dd[_0xd213('0x32')][_0xd213('0x1f')]);}_0x4c9dd6[_0xd213('0x39')]=qs[_0xd213('0x3a')](_0xad89dd[_0xd213('0x32')][_0xd213('0x3a')]);_0x4c9dd6['where']=qs['filters'](_[_0xd213('0x4d')](_0xad89dd[_0xd213('0x32')],_0x518353[_0xd213('0x33')]));_0x4c9dd6[_0xd213('0x3b')]['SessionId']=_0x406392['id'];if(_0xad89dd[_0xd213('0x32')][_0xd213('0x3e')]){_0x4c9dd6['where']=_[_0xd213('0x3c')](_0x4c9dd6[_0xd213('0x3b')],{'$or':_[_0xd213('0x31')](_0x4c9dd6['attributes'],function(_0x34c42f){var _0x445553={};_0x445553[_0x34c42f]={'$like':'%'+_0xad89dd[_0xd213('0x32')]['filter']+'%'};return _0x445553;})});}_0x4c9dd6=_[_0xd213('0x3c')]({},_0x4c9dd6,_0xad89dd[_0xd213('0x4e')]);return db['JscriptyQuestionReport'][_0xd213('0x22')]({'where':_0x4c9dd6['where']})[_0xd213('0x26')](function(_0x5ebfe9){_0x94e8e2['count']=_0x5ebfe9;if(_0xad89dd[_0xd213('0x32')][_0xd213('0x3f')]){_0x4c9dd6[_0xd213('0x40')]=[{'all':!![]}];}return db['JscriptyQuestionReport'][_0xd213('0x41')](_0x4c9dd6);})[_0xd213('0x26')](function(_0x3dbe79){_0x94e8e2[_0xd213('0x42')]=_0x3dbe79;return _0x94e8e2;});}})[_0xd213('0x26')](respondWithFilteredResult(_0x812443,_0x4c9dd6))[_0xd213('0x43')](handleError(_0x812443,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba34=['rimraf','../../config/environment','./jscriptySessionReport.attributes','exports','define','report_jscripty_sessions','lodash','util','../../config/logger','api','moment'];(function(_0x1a5e50,_0x4d75df){var _0x3e070f=function(_0x329a1b){while(--_0x329a1b){_0x1a5e50['push'](_0x1a5e50['shift']());}};_0x3e070f(++_0x4d75df);}(_0xba34,0x119));var _0x4ba3=function(_0xb5c3d6,_0x250b79){_0xb5c3d6=_0xb5c3d6-0x0;var _0x1b532b=_0xba34[_0xb5c3d6];return _0x1b532b;};'use strict';var _=require(_0x4ba3('0x0'));var util=require(_0x4ba3('0x1'));var logger=require(_0x4ba3('0x2'))(_0x4ba3('0x3'));var moment=require(_0x4ba3('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x4ba3('0x5'));var config=require(_0x4ba3('0x6'));var attributes=require(_0x4ba3('0x7'));module[_0x4ba3('0x8')]=function(_0x3590a1,_0xb88621){return _0x3590a1[_0x4ba3('0x9')]('JscriptySessionReport',attributes,{'tableName':_0x4ba3('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd101=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','JscriptySessionReport','report_jscripty_sessions','lodash','../../config/logger'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd101,0xc1));var _0x1d10=function(_0x5a4360,_0x11475b){_0x5a4360=_0x5a4360-0x0;var _0x1f7aab=_0xd101[_0x5a4360];return _0x1f7aab;};'use strict';var _=require(_0x1d10('0x0'));var util=require('util');var logger=require(_0x1d10('0x1'))(_0x1d10('0x2'));var moment=require(_0x1d10('0x3'));var BPromise=require(_0x1d10('0x4'));var rp=require(_0x1d10('0x5'));var fs=require('fs');var path=require(_0x1d10('0x6'));var rimraf=require(_0x1d10('0x7'));var config=require(_0x1d10('0x8'));var attributes=require('./jscriptySessionReport.attributes');module[_0x1d10('0x9')]=function(_0x203072,_0x2a4e2d){return _0x203072[_0x1d10('0xa')](_0x1d10('0xb'),attributes,{'tableName':_0x1d10('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf61e=['info','JscriptySessionReport,\x20%s,\x20%s','request\x20sent','debug','JscriptySessionReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x548218,_0x54a47d){var _0x67c606=function(_0x586fab){while(--_0x586fab){_0x548218['push'](_0x548218['shift']());}};_0x67c606(++_0x54a47d);}(_0xf61e,0x191));var _0xef61=function(_0x5c48e0,_0x30a3d8){_0x5c48e0=_0x5c48e0-0x0;var _0x43e682=_0xf61e[_0x5c48e0];return _0x43e682;};'use strict';var _=require(_0xef61('0x0'));var util=require(_0xef61('0x1'));var moment=require(_0xef61('0x2'));var BPromise=require(_0xef61('0x3'));var rs=require(_0xef61('0x4'));var fs=require('fs');var Redis=require(_0xef61('0x5'));var db=require(_0xef61('0x6'))['db'];var utils=require(_0xef61('0x7'));var logger=require(_0xef61('0x8'))(_0xef61('0x9'));var config=require(_0xef61('0xa'));var jayson=require(_0xef61('0xb'));var client=jayson['client'][_0xef61('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x3e2f79,_0x4f0cc5,_0x2242a7){return new BPromise(function(_0x277fa1,_0x106e7f){return client['request'](_0x3e2f79,_0x2242a7)['then'](function(_0x188894){logger[_0xef61('0xd')](_0xef61('0xe'),_0x4f0cc5,_0xef61('0xf'));logger[_0xef61('0x10')](_0xef61('0x11'),_0x4f0cc5,_0xef61('0xf'),JSON[_0xef61('0x12')](_0x188894));if(_0x188894[_0xef61('0x13')]){if(_0x188894[_0xef61('0x13')][_0xef61('0x14')]===0x1f4){logger[_0xef61('0x13')](_0xef61('0xe'),_0x4f0cc5,_0x188894[_0xef61('0x13')]['message']);return _0x106e7f(_0x188894[_0xef61('0x13')]['message']);}logger[_0xef61('0x13')](_0xef61('0xe'),_0x4f0cc5,_0x188894[_0xef61('0x13')][_0xef61('0x15')]);return _0x277fa1(_0x188894['error'][_0xef61('0x15')]);}else{logger[_0xef61('0xd')](_0xef61('0xe'),_0x4f0cc5,_0xef61('0xf'));_0x277fa1(_0x188894['result'][_0xef61('0x15')]);}})[_0xef61('0x16')](function(_0x4f7a62){logger[_0xef61('0x13')](_0xef61('0xe'),_0x4f0cc5,_0x4f7a62);_0x106e7f(_0x4f7a62);});});}
\ No newline at end of file
+var _0x627e=['request','info','JscriptySessionReport,\x20%s,\x20%s','JscriptySessionReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','client','http'];(function(_0x4c692a,_0xd9387a){var _0x36b410=function(_0x5674ab){while(--_0x5674ab){_0x4c692a['push'](_0x4c692a['shift']());}};_0x36b410(++_0xd9387a);}(_0x627e,0x14a));var _0xe627=function(_0x478308,_0x2c028c){_0x478308=_0x478308-0x0;var _0x51d81a=_0x627e[_0x478308];return _0x51d81a;};'use strict';var _=require(_0xe627('0x0'));var util=require(_0xe627('0x1'));var moment=require(_0xe627('0x2'));var BPromise=require(_0xe627('0x3'));var rs=require(_0xe627('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe627('0x5'))['db'];var utils=require(_0xe627('0x6'));var logger=require(_0xe627('0x7'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xe627('0x8')][_0xe627('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x45e49a,_0x2d4f63,_0xd5016e){return new BPromise(function(_0xe065b,_0x4bae52){return client[_0xe627('0xa')](_0x45e49a,_0xd5016e)['then'](function(_0x56549e){logger[_0xe627('0xb')](_0xe627('0xc'),_0x2d4f63,'request\x20sent');logger['debug'](_0xe627('0xd'),_0x2d4f63,_0xe627('0xe'),JSON[_0xe627('0xf')](_0x56549e));if(_0x56549e[_0xe627('0x10')]){if(_0x56549e[_0xe627('0x10')][_0xe627('0x11')]===0x1f4){logger[_0xe627('0x10')](_0xe627('0xc'),_0x2d4f63,_0x56549e[_0xe627('0x10')]['message']);return _0x4bae52(_0x56549e[_0xe627('0x10')][_0xe627('0x12')]);}logger[_0xe627('0x10')]('JscriptySessionReport,\x20%s,\x20%s',_0x2d4f63,_0x56549e[_0xe627('0x10')][_0xe627('0x12')]);return _0xe065b(_0x56549e[_0xe627('0x10')][_0xe627('0x12')]);}else{logger[_0xe627('0xb')](_0xe627('0xc'),_0x2d4f63,_0xe627('0xe'));_0xe065b(_0x56549e['result'][_0xe627('0x12')]);}})[_0xe627('0x13')](function(_0x16c2d7){logger[_0xe627('0x10')](_0xe627('0xc'),_0x2d4f63,_0x16c2d7);_0x4bae52(_0x16c2d7);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd943=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./license.controller','get','index','put','/:id'];(function(_0xdec75c,_0x3e50f9){var _0x9d115=function(_0x2ad78e){while(--_0x2ad78e){_0xdec75c['push'](_0xdec75c['shift']());}};_0x9d115(++_0x3e50f9);}(_0xd943,0x14a));var _0x3d94=function(_0x1b36e6,_0xe0b853){_0x1b36e6=_0x1b36e6-0x0;var _0x278a3e=_0xd943[_0x1b36e6];return _0x278a3e;};'use strict';var multer=require(_0x3d94('0x0'));var util=require(_0x3d94('0x1'));var path=require(_0x3d94('0x2'));var timeout=require(_0x3d94('0x3'));var express=require(_0x3d94('0x4'));var router=express[_0x3d94('0x5')]();var fs_extra=require(_0x3d94('0x6'));var auth=require(_0x3d94('0x7'));var interaction=require(_0x3d94('0x8'));var config=require(_0x3d94('0x9'));var controller=require(_0x3d94('0xa'));router[_0x3d94('0xb')]('/',controller[_0x3d94('0xc')]);router[_0x3d94('0xd')](_0x3d94('0xe'),auth['isAuthenticated'](),controller['update']);module['exports']=router;
\ No newline at end of file
+var _0x90b5=['exports','multer','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','get','index','put','isAuthenticated','update'];(function(_0x2b99ce,_0x57c0e5){var _0x3d66f9=function(_0x6a1e52){while(--_0x6a1e52){_0x2b99ce['push'](_0x2b99ce['shift']());}};_0x3d66f9(++_0x57c0e5);}(_0x90b5,0x139));var _0x590b=function(_0x59fa87,_0x179d64){_0x59fa87=_0x59fa87-0x0;var _0x277220=_0x90b5[_0x59fa87];return _0x277220;};'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('./license.controller');router[_0x590b('0x7')]('/',controller[_0x590b('0x8')]);router[_0x590b('0x9')]('/:id',auth[_0x590b('0xa')](),controller[_0x590b('0xb')]);module[_0x590b('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x861f=['TEXT','exports'];(function(_0xb87217,_0x3782dc){var _0x1d0e85=function(_0x17d228){while(--_0x17d228){_0xb87217['push'](_0xb87217['shift']());}};_0x1d0e85(++_0x3782dc);}(_0x861f,0x12b));var _0xf861=function(_0x1deb72,_0x3f6338){_0x1deb72=_0x1deb72-0x0;var _0x18bbdf=_0x861f[_0x1deb72];return _0x18bbdf;};'use strict';var Sequelize=require('sequelize');module[_0xf861('0x0')]={'license':{'type':Sequelize[_0xf861('0x1')]},'data1':{'type':Sequelize['STRING']},'data2':{'type':Sequelize['STRING']},'chatLicenseExceeded':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0xead7=['sequelize','TEXT'];(function(_0x1a2d67,_0x27085c){var _0x5f20dc=function(_0x2196e1){while(--_0x2196e1){_0x1a2d67['push'](_0x1a2d67['shift']());}};_0x5f20dc(++_0x27085c);}(_0xead7,0xd4));var _0x7ead=function(_0x5b2f6e,_0x5c5014){_0x5b2f6e=_0x5b2f6e-0x0;var _0x42ef89=_0xead7[_0x5b2f6e];return _0x42ef89;};'use strict';var Sequelize=require(_0x7ead('0x0'));module['exports']={'license':{'type':Sequelize[_0x7ead('0x1')]},'data1':{'type':Sequelize['STRING']},'data2':{'type':Sequelize['STRING']},'chatLicenseExceeded':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4975=['name','index','model','query','keys','intersection','fields','attributes','length','options','getLicense','catch','body','License','find','params','get','key','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','apply','save','update','then','destroy','error','stack'];(function(_0x23431b,_0x177738){var _0x95c6ed=function(_0x2aca1d){while(--_0x2aca1d){_0x23431b['push'](_0x23431b['shift']());}};_0x95c6ed(++_0x177738);}(_0x4975,0x86));var _0x5497=function(_0x463214,_0xf21e6e){_0x463214=_0x463214-0x0;var _0x587abc=_0x4975[_0x463214];return _0x587abc;};'use strict';var emlformat=require(_0x5497('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x5497('0x1'));var jsonpatch=require(_0x5497('0x2'));var rp=require(_0x5497('0x3'));var moment=require(_0x5497('0x4'));var BPromise=require(_0x5497('0x5'));var Mustache=require(_0x5497('0x6'));var util=require(_0x5497('0x7'));var path=require(_0x5497('0x8'));var sox=require(_0x5497('0x9'));var csv=require(_0x5497('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5497('0xb'));var _=require('lodash');var squel=require(_0x5497('0xc'));var crypto=require(_0x5497('0xd'));var jsforce=require(_0x5497('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x5497('0xa'));var querystring=require('querystring');var Papa=require(_0x5497('0xf'));var Redis=require(_0x5497('0x10'));var authService=require(_0x5497('0x11'));var qs=require(_0x5497('0x12'));var as=require(_0x5497('0x13'));var hardwareService=require(_0x5497('0x14'));var logger=require(_0x5497('0x15'))(_0x5497('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x5497('0x17'))['db'];function respondWithStatusCode(_0x1b23df,_0x1bb794){_0x1bb794=_0x1bb794||0xcc;return function(_0x984990){if(_0x984990){return _0x1b23df[_0x5497('0x18')](_0x1bb794);}return _0x1b23df[_0x5497('0x19')](_0x1bb794)[_0x5497('0x1a')]();};}function respondWithResult(_0xaca97d,_0x363a5b){_0x363a5b=_0x363a5b||0xc8;return function(_0x1a4c74){if(_0x1a4c74){return _0xaca97d['status'](_0x363a5b)[_0x5497('0x1b')](_0x1a4c74);}};}function respondWithFilteredResult(_0x4fb8e9,_0x4237a9){return function(_0x2bfd8a){if(_0x2bfd8a){var _0x19e5f3=typeof _0x4237a9[_0x5497('0x1c')]===_0x5497('0x1d')&&typeof _0x4237a9[_0x5497('0x1e')]===_0x5497('0x1d');var _0x575f6b=_0x2bfd8a['count'];var _0x3f4d20=_0x19e5f3?0x0:_0x4237a9[_0x5497('0x1c')];var _0x3a47fd=_0x19e5f3?_0x2bfd8a['count']:_0x4237a9[_0x5497('0x1c')]+_0x4237a9[_0x5497('0x1e')];var _0x18e8a8;if(_0x3a47fd>=_0x575f6b){_0x3a47fd=_0x575f6b;_0x18e8a8=0xc8;}else{_0x18e8a8=0xce;}_0x4fb8e9[_0x5497('0x19')](_0x18e8a8);return _0x4fb8e9[_0x5497('0x1f')](_0x5497('0x20'),_0x3f4d20+'-'+_0x3a47fd+'/'+_0x575f6b)[_0x5497('0x1b')](_0x2bfd8a);}return null;};}function patchUpdates(_0x10226f){return function(_0x2e3960){try{jsonpatch[_0x5497('0x21')](_0x2e3960,_0x10226f,!![]);}catch(_0x186065){return BPromise['reject'](_0x186065);}return _0x2e3960[_0x5497('0x22')]();};}function saveUpdates(_0x4d1b27,_0x19200a){return function(_0xd0868d){if(_0xd0868d){return _0xd0868d[_0x5497('0x23')](_0x4d1b27)[_0x5497('0x24')](function(_0x35ecd9){return _0x35ecd9;});}return null;};}function removeEntity(_0x3b2fbc,_0x5018fa){return function(_0x54043a){if(_0x54043a){return _0x54043a[_0x5497('0x25')]()[_0x5497('0x24')](function(){_0x3b2fbc[_0x5497('0x19')](0xcc)[_0x5497('0x1a')]();});}};}function handleEntityNotFound(_0x5223b5,_0x13b7a4){return function(_0x57268c){if(!_0x57268c){_0x5223b5[_0x5497('0x18')](0x194);}return _0x57268c;};}function handleError(_0x16a2b4,_0x429d36){_0x429d36=_0x429d36||0x1f4;return function(_0x34a1a5){logger[_0x5497('0x26')](_0x34a1a5[_0x5497('0x27')]);if(_0x34a1a5['name']){delete _0x34a1a5[_0x5497('0x28')];}_0x16a2b4['status'](_0x429d36)['send'](_0x34a1a5);};}var utilLicense=require('../../config/license/util');exports[_0x5497('0x29')]=function(_0x48d146,_0x5e9356){var _0xc3465={'raw':!![],'where':{'id':0x1}},_0xb14593={};_0xb14593[_0x5497('0x2a')]=_['keys'](db['License']['rawAttributes']);_0xb14593[_0x5497('0x2b')]=_[_0x5497('0x2c')](_0x48d146[_0x5497('0x2b')]);_0xb14593['filters']=_['intersection'](_0xb14593['model'],_0xb14593[_0x5497('0x2b')]);_0xc3465['attributes']=_[_0x5497('0x2d')](_0xb14593[_0x5497('0x2a')],qs[_0x5497('0x2e')](_0x48d146['query'][_0x5497('0x2e')]));_0xc3465[_0x5497('0x2f')]=_0xc3465['attributes'][_0x5497('0x30')]?_0xc3465[_0x5497('0x2f')]:_0xb14593[_0x5497('0x2a')];_0xc3465=_['merge']({},_0xc3465,_0x48d146[_0x5497('0x31')]);return utilLicense[_0x5497('0x32')](_0xc3465)[_0x5497('0x24')](respondWithResult(_0x5e9356,null))[_0x5497('0x33')](handleError(_0x5e9356,null));};exports[_0x5497('0x23')]=function(_0x4a6459,_0x386845){if(_0x4a6459[_0x5497('0x34')]['id']){delete _0x4a6459['body']['id'];}return db[_0x5497('0x35')][_0x5497('0x36')]({'where':{'id':_0x4a6459[_0x5497('0x37')]['id']}})[_0x5497('0x24')](handleEntityNotFound(_0x386845,null))[_0x5497('0x24')](function(_0x37011c){var _0x580e86=_0x37011c[_0x5497('0x38')]({'plain':!![]});return utilLicense['checkLicense'](_0x580e86,_0x4a6459[_0x5497('0x34')][_0x5497('0x39')]);})[_0x5497('0x24')](function(_0x5ab18c){if(!_0x5ab18c['demo']){return saveUpdates(_0x4a6459[_0x5497('0x34')],null);}return _0x5ab18c;})[_0x5497('0x24')](respondWithResult(_0x386845,null))[_0x5497('0x33')](handleError(_0x386845,null));};
\ No newline at end of file
+var _0x5fab=['checkLicense','key','demo','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','end','sendStatus','name','send','index','model','keys','License','rawAttributes','query','filters','intersection','attributes','fields','merge','then','catch','body','find','params'];(function(_0x5743cd,_0x24c274){var _0x5b88bb=function(_0x456e39){while(--_0x456e39){_0x5743cd['push'](_0x5743cd['shift']());}};_0x5b88bb(++_0x24c274);}(_0x5fab,0x177));var _0xb5fa=function(_0x32bf8b,_0x2ac32b){_0x32bf8b=_0x32bf8b-0x0;var _0x1e5ef5=_0x5fab[_0x32bf8b];return _0x1e5ef5;};'use strict';var emlformat=require(_0xb5fa('0x0'));var rimraf=require(_0xb5fa('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb5fa('0x2'));var rp=require(_0xb5fa('0x3'));var moment=require(_0xb5fa('0x4'));var BPromise=require(_0xb5fa('0x5'));var Mustache=require(_0xb5fa('0x6'));var util=require(_0xb5fa('0x7'));var path=require(_0xb5fa('0x8'));var sox=require(_0xb5fa('0x9'));var csv=require(_0xb5fa('0xa'));var ejs=require(_0xb5fa('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xb5fa('0xc'));var crypto=require(_0xb5fa('0xd'));var jsforce=require(_0xb5fa('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xb5fa('0xa'));var querystring=require(_0xb5fa('0xf'));var Papa=require(_0xb5fa('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xb5fa('0x11'));var as=require(_0xb5fa('0x12'));var hardwareService=require(_0xb5fa('0x13'));var logger=require(_0xb5fa('0x14'))(_0xb5fa('0x15'));var utils=require(_0xb5fa('0x16'));var config=require(_0xb5fa('0x17'));var licenseUtil=require(_0xb5fa('0x18'));var db=require(_0xb5fa('0x19'))['db'];function respondWithStatusCode(_0x4d3576,_0x2ad830){_0x2ad830=_0x2ad830||0xcc;return function(_0x3dad4d){if(_0x3dad4d){return _0x4d3576['sendStatus'](_0x2ad830);}return _0x4d3576[_0xb5fa('0x1a')](_0x2ad830)['end']();};}function respondWithResult(_0x265992,_0x3fc372){_0x3fc372=_0x3fc372||0xc8;return function(_0x40c914){if(_0x40c914){return _0x265992[_0xb5fa('0x1a')](_0x3fc372)[_0xb5fa('0x1b')](_0x40c914);}};}function respondWithFilteredResult(_0x5371cf,_0x567f31){return function(_0x38e964){if(_0x38e964){var _0x587043=typeof _0x567f31[_0xb5fa('0x1c')]===_0xb5fa('0x1d')&&typeof _0x567f31['limit']==='undefined';var _0x451a55=_0x38e964[_0xb5fa('0x1e')];var _0x32e9e5=_0x587043?0x0:_0x567f31[_0xb5fa('0x1c')];var _0x324ba5=_0x587043?_0x38e964[_0xb5fa('0x1e')]:_0x567f31[_0xb5fa('0x1c')]+_0x567f31[_0xb5fa('0x1f')];var _0xc14dc4;if(_0x324ba5>=_0x451a55){_0x324ba5=_0x451a55;_0xc14dc4=0xc8;}else{_0xc14dc4=0xce;}_0x5371cf[_0xb5fa('0x1a')](_0xc14dc4);return _0x5371cf[_0xb5fa('0x20')](_0xb5fa('0x21'),_0x32e9e5+'-'+_0x324ba5+'/'+_0x451a55)['json'](_0x38e964);}return null;};}function patchUpdates(_0x432bfa){return function(_0x519e20){try{jsonpatch[_0xb5fa('0x22')](_0x519e20,_0x432bfa,!![]);}catch(_0x4a6c04){return BPromise[_0xb5fa('0x23')](_0x4a6c04);}return _0x519e20[_0xb5fa('0x24')]();};}function saveUpdates(_0x4e05c0,_0x40dfdf){return function(_0x3a2ab9){if(_0x3a2ab9){return _0x3a2ab9[_0xb5fa('0x25')](_0x4e05c0)['then'](function(_0x32a85c){return _0x32a85c;});}return null;};}function removeEntity(_0xec108f,_0x444237){return function(_0x542348){if(_0x542348){return _0x542348[_0xb5fa('0x26')]()['then'](function(){_0xec108f[_0xb5fa('0x1a')](0xcc)[_0xb5fa('0x27')]();});}};}function handleEntityNotFound(_0x11053a,_0x543edf){return function(_0x2dbd22){if(!_0x2dbd22){_0x11053a[_0xb5fa('0x28')](0x194);}return _0x2dbd22;};}function handleError(_0x6a455c,_0x20d649){_0x20d649=_0x20d649||0x1f4;return function(_0x568870){logger['error'](_0x568870['stack']);if(_0x568870['name']){delete _0x568870[_0xb5fa('0x29')];}_0x6a455c[_0xb5fa('0x1a')](_0x20d649)[_0xb5fa('0x2a')](_0x568870);};}var utilLicense=require(_0xb5fa('0x18'));exports[_0xb5fa('0x2b')]=function(_0x3506a4,_0x358549){var _0x353314={'raw':!![],'where':{'id':0x1}},_0x409af9={};_0x409af9[_0xb5fa('0x2c')]=_[_0xb5fa('0x2d')](db[_0xb5fa('0x2e')][_0xb5fa('0x2f')]);_0x409af9[_0xb5fa('0x30')]=_[_0xb5fa('0x2d')](_0x3506a4[_0xb5fa('0x30')]);_0x409af9[_0xb5fa('0x31')]=_[_0xb5fa('0x32')](_0x409af9[_0xb5fa('0x2c')],_0x409af9[_0xb5fa('0x30')]);_0x353314[_0xb5fa('0x33')]=_[_0xb5fa('0x32')](_0x409af9[_0xb5fa('0x2c')],qs[_0xb5fa('0x34')](_0x3506a4['query'][_0xb5fa('0x34')]));_0x353314['attributes']=_0x353314['attributes']['length']?_0x353314[_0xb5fa('0x33')]:_0x409af9['model'];_0x353314=_[_0xb5fa('0x35')]({},_0x353314,_0x3506a4['options']);return utilLicense['getLicense'](_0x353314)[_0xb5fa('0x36')](respondWithResult(_0x358549,null))[_0xb5fa('0x37')](handleError(_0x358549,null));};exports['update']=function(_0x59f41d,_0x3d73c2){if(_0x59f41d[_0xb5fa('0x38')]['id']){delete _0x59f41d[_0xb5fa('0x38')]['id'];}return db['License'][_0xb5fa('0x39')]({'where':{'id':_0x59f41d[_0xb5fa('0x3a')]['id']}})['then'](handleEntityNotFound(_0x3d73c2,null))[_0xb5fa('0x36')](function(_0x2056de){var _0x204d6b=_0x2056de['get']({'plain':!![]});return utilLicense[_0xb5fa('0x3b')](_0x204d6b,_0x59f41d[_0xb5fa('0x38')][_0xb5fa('0x3c')]);})['then'](function(_0x117694){if(!_0x117694[_0xb5fa('0x3d')]){return saveUpdates(_0x59f41d[_0xb5fa('0x38')],null);}return _0x117694;})[_0xb5fa('0x36')](respondWithResult(_0x3d73c2,null))['catch'](handleError(_0x3d73c2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe920=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./license.attributes','exports','define','License','lodash','util'];(function(_0x1da947,_0x21e73e){var _0x192696=function(_0x5cde28){while(--_0x5cde28){_0x1da947['push'](_0x1da947['shift']());}};_0x192696(++_0x21e73e);}(_0xe920,0x143));var _0x0e92=function(_0x1b1a3b,_0x52a88a){_0x1b1a3b=_0x1b1a3b-0x0;var _0x385347=_0xe920[_0x1b1a3b];return _0x385347;};'use strict';var _=require(_0x0e92('0x0'));var util=require(_0x0e92('0x1'));var logger=require(_0x0e92('0x2'))(_0x0e92('0x3'));var moment=require(_0x0e92('0x4'));var BPromise=require(_0x0e92('0x5'));var rp=require(_0x0e92('0x6'));var fs=require('fs');var path=require(_0x0e92('0x7'));var rimraf=require(_0x0e92('0x8'));var config=require('../../config/environment');var attributes=require(_0x0e92('0x9'));module[_0x0e92('0xa')]=function(_0x51eb5d,_0x1ae9be){return _0x51eb5d[_0x0e92('0xb')](_0x0e92('0xc'),attributes,{'tableName':'license','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa95b=['moment','bluebird','path','rimraf','../../config/environment','./license.attributes','exports','License','license','util','../../config/logger','api'];(function(_0x2b96bf,_0x422809){var _0x42edba=function(_0x1f9a92){while(--_0x1f9a92){_0x2b96bf['push'](_0x2b96bf['shift']());}};_0x42edba(++_0x422809);}(_0xa95b,0x1e9));var _0xba95=function(_0x2dd58b,_0x534510){_0x2dd58b=_0x2dd58b-0x0;var _0x374093=_0xa95b[_0x2dd58b];return _0x374093;};'use strict';var _=require('lodash');var util=require(_0xba95('0x0'));var logger=require(_0xba95('0x1'))(_0xba95('0x2'));var moment=require(_0xba95('0x3'));var BPromise=require(_0xba95('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xba95('0x5'));var rimraf=require(_0xba95('0x6'));var config=require(_0xba95('0x7'));var attributes=require(_0xba95('0x8'));module[_0xba95('0x9')]=function(_0x2b5603,_0x1f2e27){return _0x2b5603['define'](_0xba95('0xa'),attributes,{'tableName':_0xba95('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ee2=['../../config/environment','jayson/promise','client','http','request','then','info','License,\x20%s,\x20%s','debug','License,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x47748a,_0x94016d){var _0x401ab6=function(_0x3f00dd){while(--_0x3f00dd){_0x47748a['push'](_0x47748a['shift']());}};_0x401ab6(++_0x94016d);}(_0x1ee2,0xfb));var _0x21ee=function(_0x58413a,_0x2c591b){_0x58413a=_0x58413a-0x0;var _0x5948e8=_0x1ee2[_0x58413a];return _0x5948e8;};'use strict';var _=require(_0x21ee('0x0'));var util=require(_0x21ee('0x1'));var moment=require('moment');var BPromise=require(_0x21ee('0x2'));var rs=require(_0x21ee('0x3'));var fs=require('fs');var Redis=require(_0x21ee('0x4'));var db=require(_0x21ee('0x5'))['db'];var utils=require(_0x21ee('0x6'));var logger=require(_0x21ee('0x7'))(_0x21ee('0x8'));var config=require(_0x21ee('0x9'));var jayson=require(_0x21ee('0xa'));var client=jayson[_0x21ee('0xb')][_0x21ee('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x31246f,_0x3d0081,_0x1f1b8d){return new BPromise(function(_0x2aef40,_0x2662ee){return client[_0x21ee('0xd')](_0x31246f,_0x1f1b8d)[_0x21ee('0xe')](function(_0x68a228){logger[_0x21ee('0xf')](_0x21ee('0x10'),_0x3d0081,'request\x20sent');logger[_0x21ee('0x11')](_0x21ee('0x12'),_0x3d0081,_0x21ee('0x13'),JSON[_0x21ee('0x14')](_0x68a228));if(_0x68a228[_0x21ee('0x15')]){if(_0x68a228[_0x21ee('0x15')][_0x21ee('0x16')]===0x1f4){logger['error'](_0x21ee('0x10'),_0x3d0081,_0x68a228[_0x21ee('0x15')][_0x21ee('0x17')]);return _0x2662ee(_0x68a228[_0x21ee('0x15')]['message']);}logger['error'](_0x21ee('0x10'),_0x3d0081,_0x68a228[_0x21ee('0x15')][_0x21ee('0x17')]);return _0x2aef40(_0x68a228['error'][_0x21ee('0x17')]);}else{logger['info'](_0x21ee('0x10'),_0x3d0081,_0x21ee('0x13'));_0x2aef40(_0x68a228[_0x21ee('0x18')][_0x21ee('0x17')]);}})[_0x21ee('0x19')](function(_0x35c8c3){logger[_0x21ee('0x15')](_0x21ee('0x10'),_0x3d0081,_0x35c8c3);_0x2662ee(_0x35c8c3);});});}
\ No newline at end of file
+var _0x11f6=['request\x20sent','stringify','error','message','License,\x20%s,\x20%s','info','result','catch','lodash','bluebird','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then'];(function(_0x5ebc04,_0x14a363){var _0x17845c=function(_0x360850){while(--_0x360850){_0x5ebc04['push'](_0x5ebc04['shift']());}};_0x17845c(++_0x14a363);}(_0x11f6,0xa0));var _0x611f=function(_0x186787,_0x4a5de2){_0x186787=_0x186787-0x0;var _0x3f5a8f=_0x11f6[_0x186787];return _0x3f5a8f;};'use strict';var _=require(_0x611f('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x611f('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x611f('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x611f('0x3'));var logger=require(_0x611f('0x4'))('rpc');var config=require(_0x611f('0x5'));var jayson=require(_0x611f('0x6'));var client=jayson[_0x611f('0x7')][_0x611f('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x167664,_0x28a915,_0x380316){return new BPromise(function(_0x274eb8,_0x3e856c){return client[_0x611f('0x9')](_0x167664,_0x380316)[_0x611f('0xa')](function(_0x1e6dcb){logger['info']('License,\x20%s,\x20%s',_0x28a915,_0x611f('0xb'));logger['debug']('License,\x20%s,\x20%s,\x20%s',_0x28a915,_0x611f('0xb'),JSON[_0x611f('0xc')](_0x1e6dcb));if(_0x1e6dcb[_0x611f('0xd')]){if(_0x1e6dcb[_0x611f('0xd')]['code']===0x1f4){logger['error']('License,\x20%s,\x20%s',_0x28a915,_0x1e6dcb[_0x611f('0xd')][_0x611f('0xe')]);return _0x3e856c(_0x1e6dcb[_0x611f('0xd')][_0x611f('0xe')]);}logger[_0x611f('0xd')](_0x611f('0xf'),_0x28a915,_0x1e6dcb[_0x611f('0xd')][_0x611f('0xe')]);return _0x274eb8(_0x1e6dcb['error'][_0x611f('0xe')]);}else{logger[_0x611f('0x10')]('License,\x20%s,\x20%s',_0x28a915,_0x611f('0xb'));_0x274eb8(_0x1e6dcb[_0x611f('0x11')]['message']);}})[_0x611f('0x12')](function(_0x25c1c1){logger[_0x611f('0xd')]('License,\x20%s,\x20%s',_0x28a915,_0x25c1c1);_0x3e856c(_0x25c1c1);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fad=['/:id/verify','/:id/users','post','/:id/dispositions','addDisposition','addAnswer','create','addImap','/:id/out_servers','addSmtp','addInteraction','send','addAgents','put','update','delete','removeDispositions','removeImap','removeSmtp','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','index','get','/describe','isAuthenticated','describe','/:id','show','getDispositions','/:id/canned_answers','getAnswers','/:id/in_servers','getImap','getSmtp','/:id/interactions','getInteractions','getApplications','getMessages'];(function(_0x1f99a0,_0x50b73d){var _0x1e0849=function(_0x41e764){while(--_0x41e764){_0x1f99a0['push'](_0x1f99a0['shift']());}};_0x1e0849(++_0x50b73d);}(_0x7fad,0x1d6));var _0xd7fa=function(_0x2fd0f0,_0x4b634e){_0x2fd0f0=_0x2fd0f0-0x0;var _0x57f71a=_0x7fad[_0x2fd0f0];return _0x57f71a;};'use strict';var multer=require('multer');var util=require(_0xd7fa('0x0'));var path=require(_0xd7fa('0x1'));var timeout=require(_0xd7fa('0x2'));var express=require(_0xd7fa('0x3'));var router=express[_0xd7fa('0x4')]();var fs_extra=require(_0xd7fa('0x5'));var auth=require(_0xd7fa('0x6'));var interaction=require(_0xd7fa('0x7'));var config=require('../../config/environment');var controller=require('./mailAccount.controller');router['get']('/',auth['isAuthenticated'](),controller[_0xd7fa('0x8')]);router[_0xd7fa('0x9')](_0xd7fa('0xa'),auth[_0xd7fa('0xb')](),controller[_0xd7fa('0xc')]);router[_0xd7fa('0x9')](_0xd7fa('0xd'),auth[_0xd7fa('0xb')](),controller[_0xd7fa('0xe')]);router[_0xd7fa('0x9')]('/:id/dispositions',auth[_0xd7fa('0xb')](),controller[_0xd7fa('0xf')]);router[_0xd7fa('0x9')](_0xd7fa('0x10'),auth['isAuthenticated'](),controller[_0xd7fa('0x11')]);router['get'](_0xd7fa('0x12'),auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x13')]);router['get']('/:id/out_servers',auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x14')]);router['get'](_0xd7fa('0x15'),auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x16')]);router[_0xd7fa('0x9')]('/:id/applications',auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x17')]);router[_0xd7fa('0x9')]('/:id/messages',auth['isAuthenticated'](),controller[_0xd7fa('0x18')]);router[_0xd7fa('0x9')](_0xd7fa('0x19'),auth['isAuthenticated'](),controller['verifySmtp']);router['get'](_0xd7fa('0x1a'),auth[_0xd7fa('0xb')](),controller['getAgents']);router[_0xd7fa('0x1b')](_0xd7fa('0x1c'),auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x1d')]);router['post'](_0xd7fa('0x10'),auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x1e')]);router[_0xd7fa('0x1b')]('/',auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x1f')]);router[_0xd7fa('0x1b')]('/:id/in_servers',auth['isAuthenticated'](),controller[_0xd7fa('0x20')]);router[_0xd7fa('0x1b')](_0xd7fa('0x21'),auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x22')]);router[_0xd7fa('0x1b')](_0xd7fa('0x15'),auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x23')]);router[_0xd7fa('0x1b')]('/:id/applications',auth[_0xd7fa('0xb')](),controller['addApplications']);router[_0xd7fa('0x1b')]('/:id/send',auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x24')]);router[_0xd7fa('0x1b')](_0xd7fa('0x1a'),auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x25')]);router[_0xd7fa('0x26')]('/:id',auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x27')]);router[_0xd7fa('0x28')](_0xd7fa('0x1c'),auth['isAuthenticated'](),controller[_0xd7fa('0x29')]);router[_0xd7fa('0x28')](_0xd7fa('0x10'),auth[_0xd7fa('0xb')](),controller['removeAnswers']);router[_0xd7fa('0x28')](_0xd7fa('0x12'),auth['isAuthenticated'](),controller[_0xd7fa('0x2a')]);router['delete'](_0xd7fa('0x21'),auth[_0xd7fa('0xb')](),controller[_0xd7fa('0x2b')]);router[_0xd7fa('0x28')](_0xd7fa('0xd'),auth[_0xd7fa('0xb')](),controller['destroy']);router[_0xd7fa('0x28')](_0xd7fa('0x1a'),auth[_0xd7fa('0xb')](),controller['removeAgents']);module[_0xd7fa('0x2c')]=router;
\ No newline at end of file
+var _0xa4d1=['create','/:id/in_servers','addInteraction','addApplications','/:id/send','send','put','update','delete','removeAnswers','removeImap','/:id/out_servers','removeSmtp','destroy','removeAgents','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailAccount.controller','get','isAuthenticated','index','describe','/:id','show','/:id/dispositions','/:id/canned_answers','getImap','getSmtp','/:id/interactions','getInteractions','/:id/applications','getApplications','/:id/messages','getMessages','/:id/verify','verifySmtp','/:id/users','getAgents','post','addDisposition','addAnswer'];(function(_0x4141ec,_0x45b3b5){var _0x47e1b0=function(_0x1914bd){while(--_0x1914bd){_0x4141ec['push'](_0x4141ec['shift']());}};_0x47e1b0(++_0x45b3b5);}(_0xa4d1,0xd0));var _0x1a4d=function(_0x2d2e23,_0x7a456){_0x2d2e23=_0x2d2e23-0x0;var _0x656ccb=_0xa4d1[_0x2d2e23];return _0x656ccb;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1a4d('0x0'));var timeout=require(_0x1a4d('0x1'));var express=require(_0x1a4d('0x2'));var router=express[_0x1a4d('0x3')]();var fs_extra=require(_0x1a4d('0x4'));var auth=require(_0x1a4d('0x5'));var interaction=require(_0x1a4d('0x6'));var config=require(_0x1a4d('0x7'));var controller=require(_0x1a4d('0x8'));router[_0x1a4d('0x9')]('/',auth[_0x1a4d('0xa')](),controller[_0x1a4d('0xb')]);router['get']('/describe',auth[_0x1a4d('0xa')](),controller[_0x1a4d('0xc')]);router['get'](_0x1a4d('0xd'),auth['isAuthenticated'](),controller[_0x1a4d('0xe')]);router[_0x1a4d('0x9')](_0x1a4d('0xf'),auth[_0x1a4d('0xa')](),controller['getDispositions']);router[_0x1a4d('0x9')](_0x1a4d('0x10'),auth[_0x1a4d('0xa')](),controller['getAnswers']);router[_0x1a4d('0x9')]('/:id/in_servers',auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x11')]);router[_0x1a4d('0x9')]('/:id/out_servers',auth['isAuthenticated'](),controller[_0x1a4d('0x12')]);router[_0x1a4d('0x9')](_0x1a4d('0x13'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x14')]);router[_0x1a4d('0x9')](_0x1a4d('0x15'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x16')]);router[_0x1a4d('0x9')](_0x1a4d('0x17'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x18')]);router[_0x1a4d('0x9')](_0x1a4d('0x19'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x1a')]);router[_0x1a4d('0x9')](_0x1a4d('0x1b'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x1c')]);router[_0x1a4d('0x1d')](_0x1a4d('0xf'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x1e')]);router[_0x1a4d('0x1d')](_0x1a4d('0x10'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x1f')]);router[_0x1a4d('0x1d')]('/',auth['isAuthenticated'](),controller[_0x1a4d('0x20')]);router[_0x1a4d('0x1d')](_0x1a4d('0x21'),auth[_0x1a4d('0xa')](),controller['addImap']);router[_0x1a4d('0x1d')]('/:id/out_servers',auth[_0x1a4d('0xa')](),controller['addSmtp']);router[_0x1a4d('0x1d')](_0x1a4d('0x13'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x22')]);router[_0x1a4d('0x1d')](_0x1a4d('0x15'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x23')]);router[_0x1a4d('0x1d')](_0x1a4d('0x24'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x25')]);router[_0x1a4d('0x1d')]('/:id/users',auth[_0x1a4d('0xa')](),controller['addAgents']);router[_0x1a4d('0x26')](_0x1a4d('0xd'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x27')]);router[_0x1a4d('0x28')](_0x1a4d('0xf'),auth[_0x1a4d('0xa')](),controller['removeDispositions']);router[_0x1a4d('0x28')](_0x1a4d('0x10'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x29')]);router['delete']('/:id/in_servers',auth['isAuthenticated'](),controller[_0x1a4d('0x2a')]);router['delete'](_0x1a4d('0x2b'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x2c')]);router[_0x1a4d('0x28')](_0x1a4d('0xd'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x2d')]);router[_0x1a4d('0x28')](_0x1a4d('0x1b'),auth[_0x1a4d('0xa')](),controller[_0x1a4d('0x2e')]);module[_0x1a4d('0x2f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x79a8=['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}}','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDisposition','sequelize','STRING','BOOLEAN','TEXT'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x79a8,0x1d0));var _0x879a=function(_0xb400ce,_0x51e8dc){_0xb400ce=_0xb400ce-0x0;var _0x50b4bc=_0x79a8[_0xb400ce];return _0x50b4bc;};'use strict';var Sequelize=require(_0x879a('0x0'));module['exports']={'description':{'type':Sequelize[_0x879a('0x1')]},'name':{'type':Sequelize[_0x879a('0x1')],'allowNull':![]},'service':{'type':Sequelize[_0x879a('0x2')],'defaultValue':![]},'email':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'active':{'type':Sequelize[_0x879a('0x2')],'defaultValue':!![]},'key':{'type':Sequelize['STRING'],'allowNull':![]},'template':{'type':Sequelize[_0x879a('0x3')]},'markAsUnread':{'type':Sequelize[_0x879a('0x2')],'defaultValue':![]},'fontFamily':{'type':Sequelize[_0x879a('0x1')],'allowNull':![],'defaultValue':_0x879a('0x4')},'fontSize':{'type':Sequelize[_0x879a('0x5')](0x2)[_0x879a('0x6')],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize[_0x879a('0x3')],'defaultValue':function(){return _0x879a('0x7');}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x879a('0x2')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x879a('0x2')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x879a('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x879a('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x879a('0x5')],'allowNull':!![],'defaultValue':null,'comment':_0x879a('0x8')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0x879a('0x9'),'set':function(_0x1a40bc){if(!_0x1a40bc)this['setDataValue']('mandatoryDispositionPauseId',null);this[_0x879a('0xa')](_0x879a('0xb'),_0x1a40bc);}}};
\ No newline at end of file
+var _0x7a08=['sequelize','exports','BOOLEAN','STRING','TEXT','Arial,Helvetica,sans-serif','INTEGER','UNSIGNED','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','setDataValue','mandatoryDisposition'];(function(_0x5712f8,_0x17156b){var _0x14a364=function(_0x1da9de){while(--_0x1da9de){_0x5712f8['push'](_0x5712f8['shift']());}};_0x14a364(++_0x17156b);}(_0x7a08,0x11e));var _0x87a0=function(_0x26299e,_0x394ad1){_0x26299e=_0x26299e-0x0;var _0x6c4f4a=_0x7a08[_0x26299e];return _0x6c4f4a;};'use strict';var Sequelize=require(_0x87a0('0x0'));module[_0x87a0('0x1')]={'description':{'type':Sequelize['STRING']},'name':{'type':Sequelize['STRING'],'allowNull':![]},'service':{'type':Sequelize[_0x87a0('0x2')],'defaultValue':![]},'email':{'type':Sequelize[_0x87a0('0x3')],'validate':{'isEmail':!![]}},'active':{'type':Sequelize[_0x87a0('0x2')],'defaultValue':!![]},'key':{'type':Sequelize[_0x87a0('0x3')],'allowNull':![]},'template':{'type':Sequelize[_0x87a0('0x4')]},'markAsUnread':{'type':Sequelize[_0x87a0('0x2')],'defaultValue':![]},'fontFamily':{'type':Sequelize[_0x87a0('0x3')],'allowNull':![],'defaultValue':_0x87a0('0x5')},'fontSize':{'type':Sequelize[_0x87a0('0x6')](0x2)[_0x87a0('0x7')],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize[_0x87a0('0x4')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}<br/>Subject\x20:\x20{{message.subject}}';}},'notificationSound':{'type':Sequelize[_0x87a0('0x2')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x87a0('0x2')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x87a0('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x87a0('0x2')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x87a0('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x87a0('0x6')],'allowNull':!![],'defaultValue':null,'comment':_0x87a0('0x8')},'mandatoryDisposition':{'type':Sequelize[_0x87a0('0x2')],'defaultValue':![],'comment':_0x87a0('0x9'),'set':function(_0x34ba3a){if(!_0x34ba3a)this['setDataValue'](_0x87a0('0xa'),null);this[_0x87a0('0xb')](_0x87a0('0xc'),_0x34ba3a);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc855=['from','%s\x20<%s>','attachments','join','root','server/files/attachments','basename','auth','secure','SendMail','sendMail','List\x20not\x20found','defaults','messageId','subject','out','verifySmtp','VerifySmtp','Sequelize','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','spread','emit','userMailAccount:save','removeAgents','isArray','userMailAccount:remove','getAgents','eml-format','zip-dir','mustache','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','papaparse','html-to-text','juice','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./mailAccount.socket','jayson/promise','client','http','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','save','update','destroy','get','MailAccounts','UserProfileResource','stack','name','send','index','Imap','MailServerOut','Pause','map','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','pick','filter','where','merge','options','MailAccount','includeAll','include','findAll','rows','show','params','MailServerIn','Smtp','mandatoryDispositionPause','rawAttributes','find','body','describe','MailAccountId','Disposition','create','getDispositions','findOne','order','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','email','ListId','isNil','active','description','cservice','cauthentication','user','cuser','password','pass','cpassword','authentication','host','port','service','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','addImap','removeImap','setImap','getSmtp','addSmtp','removeSmtp','setSmtp','addInteraction','MailInteraction','omit','getInteractions','CmContact','Contact','User','Owner','fullname','Tags','color','tag','addApplications','sequelize','transaction','Transaction','READ_COMMITTED','MailApplication','bulkCreate','priority','finally','getApplications','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','inlineCss','true','CmList','List','Contacts','updatedAt','DESC'];(function(_0x567bcb,_0x4978c1){var _0x4eebc2=function(_0x42a456){while(--_0x42a456){_0x567bcb['push'](_0x567bcb['shift']());}};_0x4eebc2(++_0x4978c1);}(_0xc855,0xe8));var _0x5c85=function(_0x226691,_0x14def0){_0x226691=_0x226691-0x0;var _0x1338e0=_0xc855[_0x226691];return _0x1338e0;};'use strict';var emlformat=require(_0x5c85('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x5c85('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x5c85('0x2'));var util=require('util');var path=require('path');var sox=require(_0x5c85('0x3'));var csv=require(_0x5c85('0x4'));var ejs=require(_0x5c85('0x5'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5c85('0x6'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x5c85('0x7'));var deskjs=require(_0x5c85('0x8'));var toCsv=require(_0x5c85('0x4'));var querystring=require(_0x5c85('0x9'));var Papa=require(_0x5c85('0xa'));var htmlToText=require(_0x5c85('0xb'));var juice=require(_0x5c85('0xc'));var Redis=require(_0x5c85('0xd'));var authService=require(_0x5c85('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x5c85('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5c85('0x10'))(_0x5c85('0x11'));var utils=require(_0x5c85('0x12'));var config=require(_0x5c85('0x13'));var licenseUtil=require(_0x5c85('0x14'));var db=require(_0x5c85('0x15'))['db'];config[_0x5c85('0x16')]=_['defaults'](config['redis'],{'host':_0x5c85('0x17'),'port':0x18eb});var socket=require(_0x5c85('0x18'))(new Redis(config[_0x5c85('0x16')]));require(_0x5c85('0x19'))['register'](socket);var jayson=require(_0x5c85('0x1a'));var client=jayson[_0x5c85('0x1b')][_0x5c85('0x1c')]({'port':0x232b});function respondWithRpcPromise(_0x463c78,_0x31d67e,_0x52fb1b,_0x269da9){return new BPromise(function(_0x5bec87,_0x56daf4){var _0x56f0e3=_0x269da9||client;return _0x56f0e3[_0x5c85('0x1d')](_0x463c78,_0x52fb1b)[_0x5c85('0x1e')](function(_0x4d0090){logger[_0x5c85('0x1f')](_0x5c85('0x20'),_0x31d67e,_0x5c85('0x21'));logger[_0x5c85('0x22')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x31d67e,_0x5c85('0x21'),JSON[_0x5c85('0x23')](_0x4d0090));if(_0x4d0090[_0x5c85('0x24')]){if(_0x4d0090[_0x5c85('0x24')][_0x5c85('0x25')]===0x1f4){logger[_0x5c85('0x24')](_0x5c85('0x20'),_0x31d67e,_0x4d0090[_0x5c85('0x24')][_0x5c85('0x26')]);return _0x56daf4(_0x4d0090[_0x5c85('0x24')][_0x5c85('0x26')]);}logger[_0x5c85('0x24')](_0x5c85('0x20'),_0x31d67e,_0x4d0090[_0x5c85('0x24')]['message']);return _0x5bec87(_0x4d0090[_0x5c85('0x24')][_0x5c85('0x26')]);}else{logger[_0x5c85('0x1f')](_0x5c85('0x20'),_0x31d67e,_0x5c85('0x21'));_0x5bec87(_0x4d0090[_0x5c85('0x27')][_0x5c85('0x26')]);}})[_0x5c85('0x28')](function(_0x5164c7){logger[_0x5c85('0x24')]('MailAccount,\x20%s,\x20%s',_0x31d67e,_0x5164c7);_0x56daf4(_0x5164c7);});});}function respondWithStatusCode(_0x4e3070,_0x5fef8){_0x5fef8=_0x5fef8||0xcc;return function(_0x5bf42a){if(_0x5bf42a){return _0x4e3070[_0x5c85('0x29')](_0x5fef8);}return _0x4e3070[_0x5c85('0x2a')](_0x5fef8)[_0x5c85('0x2b')]();};}function respondWithResult(_0x19f8a3,_0x150e1d){_0x150e1d=_0x150e1d||0xc8;return function(_0x2859ff){if(_0x2859ff){return _0x19f8a3[_0x5c85('0x2a')](_0x150e1d)[_0x5c85('0x2c')](_0x2859ff);}};}function respondWithFilteredResult(_0xf04892,_0x34da49){return function(_0x5795c){if(_0x5795c){var _0x190bb0=typeof _0x34da49[_0x5c85('0x2d')]==='undefined'&&typeof _0x34da49['limit']===_0x5c85('0x2e');var _0x513014=_0x5795c[_0x5c85('0x2f')];var _0xc65466=_0x190bb0?0x0:_0x34da49[_0x5c85('0x2d')];var _0x570e9b=_0x190bb0?_0x5795c[_0x5c85('0x2f')]:_0x34da49[_0x5c85('0x2d')]+_0x34da49[_0x5c85('0x30')];var _0x238f86;if(_0x570e9b>=_0x513014){_0x570e9b=_0x513014;_0x238f86=0xc8;}else{_0x238f86=0xce;}_0xf04892[_0x5c85('0x2a')](_0x238f86);return _0xf04892[_0x5c85('0x31')]('Content-Range',_0xc65466+'-'+_0x570e9b+'/'+_0x513014)[_0x5c85('0x2c')](_0x5795c);}return null;};}function patchUpdates(_0x5a02ee){return function(_0x494240){try{jsonpatch[_0x5c85('0x32')](_0x494240,_0x5a02ee,!![]);}catch(_0x48e12e){return BPromise[_0x5c85('0x33')](_0x48e12e);}return _0x494240[_0x5c85('0x34')]();};}function saveUpdates(_0x39cc00,_0x13290a){return function(_0x3447ac){if(_0x3447ac){return _0x3447ac[_0x5c85('0x35')](_0x39cc00)['then'](function(_0x5df90b){return _0x5df90b;});}return null;};}function removeEntity(_0x3a67d1,_0x158e2e){return function(_0x295a47){if(_0x295a47){return _0x295a47[_0x5c85('0x36')]()[_0x5c85('0x1e')](function(){var _0x28a735=_0x295a47[_0x5c85('0x37')]({'plain':!![]});var _0x3e57a0=_0x5c85('0x38');return db[_0x5c85('0x39')][_0x5c85('0x36')]({'where':{'type':_0x3e57a0,'resourceId':_0x28a735['id']}})['then'](function(){return _0x295a47;});})[_0x5c85('0x1e')](function(){_0x3a67d1['status'](0xcc)[_0x5c85('0x2b')]();});}};}function handleEntityNotFound(_0x257cef,_0x2514bd){return function(_0xc6a229){if(!_0xc6a229){_0x257cef[_0x5c85('0x29')](0x194);}return _0xc6a229;};}function handleError(_0x15a801,_0x330ed5){_0x330ed5=_0x330ed5||0x1f4;return function(_0x2beceb){logger[_0x5c85('0x24')](_0x2beceb[_0x5c85('0x3a')]);if(_0x2beceb['name']){delete _0x2beceb[_0x5c85('0x3b')];}_0x15a801[_0x5c85('0x2a')](_0x330ed5)[_0x5c85('0x3c')](_0x2beceb);};}exports[_0x5c85('0x3d')]=function(_0x156897,_0x17a5ba){var _0x570dad={'include':[{'model':db['MailServerIn'],'as':_0x5c85('0x3e')},{'model':db[_0x5c85('0x3f')],'as':'Smtp'},{'model':db[_0x5c85('0x40')],'as':'mandatoryDispositionPause'}]},_0x3f34cd={},_0x35d5e8={'count':0x0,'rows':[]};var _0x55e9c9=_[_0x5c85('0x41')](db['MailAccount']['rawAttributes'],function(_0x2d2145){return{'name':_0x2d2145[_0x5c85('0x42')],'type':_0x2d2145[_0x5c85('0x43')][_0x5c85('0x44')]};});_0x3f34cd[_0x5c85('0x45')]=_[_0x5c85('0x41')](_0x55e9c9,_0x5c85('0x3b'));_0x3f34cd[_0x5c85('0x46')]=_[_0x5c85('0x47')](_0x156897[_0x5c85('0x46')]);_0x3f34cd[_0x5c85('0x48')]=_[_0x5c85('0x49')](_0x3f34cd[_0x5c85('0x45')],_0x3f34cd['query']);_0x570dad['attributes']=_['intersection'](_0x3f34cd[_0x5c85('0x45')],qs[_0x5c85('0x4a')](_0x156897['query']['fields']));_0x570dad['attributes']=_0x570dad[_0x5c85('0x4b')][_0x5c85('0x4c')]?_0x570dad[_0x5c85('0x4b')]:_0x3f34cd['model'];if(!_0x156897[_0x5c85('0x46')][_0x5c85('0x4d')](_0x5c85('0x4e'))){_0x570dad[_0x5c85('0x30')]=qs[_0x5c85('0x30')](_0x156897[_0x5c85('0x46')][_0x5c85('0x30')]);_0x570dad[_0x5c85('0x2d')]=qs['offset'](_0x156897[_0x5c85('0x46')]['offset']);}_0x570dad['order']=qs[_0x5c85('0x4f')](_0x156897[_0x5c85('0x46')][_0x5c85('0x4f')]);_0x570dad['where']=qs[_0x5c85('0x48')](_[_0x5c85('0x50')](_0x156897[_0x5c85('0x46')],_0x3f34cd[_0x5c85('0x48')]),_0x55e9c9);if(_0x156897['query'][_0x5c85('0x51')]){_0x570dad[_0x5c85('0x52')]=_[_0x5c85('0x53')](_0x570dad[_0x5c85('0x52')],{'$or':_[_0x5c85('0x41')](_0x55e9c9,function(_0x1b6750){if(_0x1b6750['type']!=='VIRTUAL'){var _0x1a159d={};_0x1a159d[_0x1b6750['name']]={'$like':'%'+_0x156897[_0x5c85('0x46')][_0x5c85('0x51')]+'%'};return _0x1a159d;}})});}_0x570dad=_['merge']({},_0x570dad,_0x156897[_0x5c85('0x54')]);var _0x471d73={'where':_0x570dad[_0x5c85('0x52')]};return db[_0x5c85('0x55')][_0x5c85('0x2f')](_0x471d73)[_0x5c85('0x1e')](function(_0x8cabf3){_0x35d5e8['count']=_0x8cabf3;if(_0x156897[_0x5c85('0x46')][_0x5c85('0x56')]){_0x570dad[_0x5c85('0x57')]=[{'all':!![]}];}return db[_0x5c85('0x55')][_0x5c85('0x58')](_0x570dad);})['then'](function(_0x22abe5){_0x35d5e8[_0x5c85('0x59')]=_0x22abe5;return _0x35d5e8;})[_0x5c85('0x1e')](respondWithFilteredResult(_0x17a5ba,_0x570dad))[_0x5c85('0x28')](handleError(_0x17a5ba,null));};exports[_0x5c85('0x5a')]=function(_0x3ec561,_0x26916a){var _0x496727={'raw':![],'where':{'id':_0x3ec561[_0x5c85('0x5b')]['id']},'include':[{'model':db[_0x5c85('0x5c')],'as':_0x5c85('0x3e')},{'model':db[_0x5c85('0x3f')],'as':_0x5c85('0x5d')},{'model':db[_0x5c85('0x40')],'as':_0x5c85('0x5e')}]},_0x25fd4c={};_0x25fd4c[_0x5c85('0x45')]=_[_0x5c85('0x47')](db[_0x5c85('0x55')][_0x5c85('0x5f')]);_0x25fd4c[_0x5c85('0x46')]=_['keys'](_0x3ec561[_0x5c85('0x46')]);_0x25fd4c['filters']=_[_0x5c85('0x49')](_0x25fd4c[_0x5c85('0x45')],_0x25fd4c['query']);_0x496727[_0x5c85('0x4b')]=_[_0x5c85('0x49')](_0x25fd4c[_0x5c85('0x45')],qs[_0x5c85('0x4a')](_0x3ec561['query'][_0x5c85('0x4a')]));_0x496727[_0x5c85('0x4b')]=_0x496727[_0x5c85('0x4b')]['length']?_0x496727['attributes']:_0x25fd4c[_0x5c85('0x45')];if(_0x3ec561[_0x5c85('0x46')][_0x5c85('0x56')]){_0x496727['include']=[{'all':!![]}];}_0x496727=_['merge']({},_0x496727,_0x3ec561[_0x5c85('0x54')]);return db[_0x5c85('0x55')][_0x5c85('0x60')](_0x496727)[_0x5c85('0x1e')](handleEntityNotFound(_0x26916a,null))[_0x5c85('0x1e')](respondWithResult(_0x26916a,null))[_0x5c85('0x28')](handleError(_0x26916a,null));};exports[_0x5c85('0x35')]=function(_0x3c8a6f,_0x279c7f){if(_0x3c8a6f[_0x5c85('0x61')]['id']){delete _0x3c8a6f[_0x5c85('0x61')]['id'];}return db[_0x5c85('0x55')]['find']({'where':{'id':_0x3c8a6f[_0x5c85('0x5b')]['id']},'include':[{'model':db[_0x5c85('0x5c')],'as':_0x5c85('0x3e')},{'model':db[_0x5c85('0x3f')],'as':_0x5c85('0x5d')},{'model':db[_0x5c85('0x40')],'as':'mandatoryDispositionPause'}]})[_0x5c85('0x1e')](handleEntityNotFound(_0x279c7f,null))[_0x5c85('0x1e')](saveUpdates(_0x3c8a6f[_0x5c85('0x61')],null))[_0x5c85('0x1e')](function(_0xc7b014){if(_0xc7b014&&_0x3c8a6f['body']['Imap']){return db['MailServerIn'][_0x5c85('0x35')](_0x3c8a6f[_0x5c85('0x61')]['Imap'],{'where':{'MailAccountId':_0xc7b014['id']}})['then'](function(){return _0xc7b014;});}return _0xc7b014;})[_0x5c85('0x1e')](function(_0x44cb01){if(_0x44cb01&&_0x3c8a6f[_0x5c85('0x61')][_0x5c85('0x5d')]){return db[_0x5c85('0x3f')][_0x5c85('0x35')](_0x3c8a6f[_0x5c85('0x61')][_0x5c85('0x5d')],{'where':{'MailAccountId':_0x44cb01['id']}})[_0x5c85('0x1e')](function(){return _0x44cb01;});}return _0x44cb01;})[_0x5c85('0x1e')](respondWithResult(_0x279c7f,null))[_0x5c85('0x28')](handleError(_0x279c7f,null));};exports[_0x5c85('0x62')]=function(_0x31cf4e,_0x5a937f){return db['MailAccount'][_0x5c85('0x62')]()[_0x5c85('0x1e')](respondWithResult(_0x5a937f,null))[_0x5c85('0x28')](handleError(_0x5a937f,null));};exports['addDisposition']=function(_0x31805a,_0x346f30,_0x46ec9c){if(_0x31805a[_0x5c85('0x61')]['id']){delete _0x31805a[_0x5c85('0x61')]['id'];}return db[_0x5c85('0x55')]['find']({'where':{'id':_0x31805a[_0x5c85('0x5b')]['id']}})['then'](handleEntityNotFound(_0x346f30,null))[_0x5c85('0x1e')](function(_0x280797){if(_0x280797){_0x31805a[_0x5c85('0x61')][_0x5c85('0x63')]=_0x280797['id'];return db[_0x5c85('0x64')][_0x5c85('0x65')](_0x31805a['body']);}})[_0x5c85('0x1e')](respondWithResult(_0x346f30,null))[_0x5c85('0x28')](handleError(_0x346f30,null));};exports[_0x5c85('0x66')]=function(_0xcbfda2,_0x330124,_0x1504b2){var _0xfa012d={'raw':![],'where':{}};var _0x28bf10={};var _0x18f394={'count':0x0,'rows':[]};return db[_0x5c85('0x55')][_0x5c85('0x67')]({'where':{'id':_0xcbfda2[_0x5c85('0x5b')]['id']}})['then'](handleEntityNotFound(_0x330124,null))[_0x5c85('0x1e')](function(_0x216ea1){if(_0x216ea1){_0x28bf10['model']=_[_0x5c85('0x47')](db[_0x5c85('0x64')]['rawAttributes']);_0x28bf10[_0x5c85('0x46')]=_['keys'](_0xcbfda2['query']);_0x28bf10[_0x5c85('0x48')]=_['intersection'](_0x28bf10[_0x5c85('0x45')],_0x28bf10['query']);_0xfa012d[_0x5c85('0x4b')]=_[_0x5c85('0x49')](_0x28bf10[_0x5c85('0x45')],qs[_0x5c85('0x4a')](_0xcbfda2['query'][_0x5c85('0x4a')]));_0xfa012d[_0x5c85('0x4b')]=_0xfa012d[_0x5c85('0x4b')][_0x5c85('0x4c')]?_0xfa012d[_0x5c85('0x4b')]:_0x28bf10[_0x5c85('0x45')];if(!_0xcbfda2[_0x5c85('0x46')][_0x5c85('0x4d')]('nolimit')){_0xfa012d[_0x5c85('0x30')]=qs[_0x5c85('0x30')](_0xcbfda2['query'][_0x5c85('0x30')]);_0xfa012d['offset']=qs[_0x5c85('0x2d')](_0xcbfda2[_0x5c85('0x46')][_0x5c85('0x2d')]);}_0xfa012d[_0x5c85('0x68')]=qs[_0x5c85('0x4f')](_0xcbfda2[_0x5c85('0x46')][_0x5c85('0x4f')]);_0xfa012d[_0x5c85('0x52')]=qs[_0x5c85('0x48')](_['pick'](_0xcbfda2[_0x5c85('0x46')],_0x28bf10[_0x5c85('0x48')]));_0xfa012d['where'][_0x5c85('0x63')]=_0x216ea1['id'];if(_0xcbfda2[_0x5c85('0x46')][_0x5c85('0x51')]){_0xfa012d[_0x5c85('0x52')]=_[_0x5c85('0x53')](_0xfa012d[_0x5c85('0x52')],{'$or':_['map'](_0xfa012d[_0x5c85('0x4b')],function(_0x16bd44){var _0x2513c6={};_0x2513c6[_0x16bd44]={'$like':'%'+_0xcbfda2[_0x5c85('0x46')][_0x5c85('0x51')]+'%'};return _0x2513c6;})});}_0xfa012d=_[_0x5c85('0x53')]({},_0xfa012d,_0xcbfda2[_0x5c85('0x54')]);return db[_0x5c85('0x64')][_0x5c85('0x2f')]({'where':_0xfa012d[_0x5c85('0x52')]})[_0x5c85('0x1e')](function(_0x2fff21){_0x18f394[_0x5c85('0x2f')]=_0x2fff21;if(_0xcbfda2[_0x5c85('0x46')][_0x5c85('0x56')]){_0xfa012d[_0x5c85('0x57')]=[{'all':!![]}];}return db[_0x5c85('0x64')][_0x5c85('0x58')](_0xfa012d);})['then'](function(_0x16dee5){_0x18f394[_0x5c85('0x59')]=_0x16dee5;return _0x18f394;});}})['then'](respondWithFilteredResult(_0x330124,_0xfa012d))['catch'](handleError(_0x330124,null));};exports[_0x5c85('0x69')]=function(_0x231090,_0x1e4070,_0x22a682){return db['MailAccount']['find']({'where':{'id':_0x231090[_0x5c85('0x5b')]['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x1e4070,null))[_0x5c85('0x1e')](function(_0x453911){if(_0x453911){return _0x453911[_0x5c85('0x69')](_0x231090[_0x5c85('0x46')][_0x5c85('0x6a')]);}})[_0x5c85('0x1e')](respondWithStatusCode(_0x1e4070,null))[_0x5c85('0x28')](handleError(_0x1e4070,null));};exports[_0x5c85('0x6b')]=function(_0x17dc5f,_0x31e8a5,_0x2d9070){if(_0x17dc5f[_0x5c85('0x61')]['id']){delete _0x17dc5f['body']['id'];}return db[_0x5c85('0x55')][_0x5c85('0x60')]({'where':{'id':_0x17dc5f[_0x5c85('0x5b')]['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x31e8a5,null))[_0x5c85('0x1e')](function(_0x3dc4f9){if(_0x3dc4f9){_0x17dc5f['body'][_0x5c85('0x63')]=_0x3dc4f9['id'];return db[_0x5c85('0x6c')]['create'](_0x17dc5f[_0x5c85('0x61')]);}})[_0x5c85('0x1e')](respondWithResult(_0x31e8a5,null))[_0x5c85('0x28')](handleError(_0x31e8a5,null));};exports[_0x5c85('0x6d')]=function(_0x3952b2,_0x12f949,_0x48922c){var _0x36bd2f={'raw':![],'where':{}};var _0x52cfac={};var _0x2c2e68={'count':0x0,'rows':[]};return db[_0x5c85('0x55')]['findOne']({'where':{'id':_0x3952b2[_0x5c85('0x5b')]['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x12f949,null))[_0x5c85('0x1e')](function(_0x3e28f0){if(_0x3e28f0){_0x52cfac[_0x5c85('0x45')]=_[_0x5c85('0x47')](db[_0x5c85('0x6c')][_0x5c85('0x5f')]);_0x52cfac[_0x5c85('0x46')]=_[_0x5c85('0x47')](_0x3952b2['query']);_0x52cfac[_0x5c85('0x48')]=_[_0x5c85('0x49')](_0x52cfac['model'],_0x52cfac[_0x5c85('0x46')]);_0x36bd2f[_0x5c85('0x4b')]=_['intersection'](_0x52cfac['model'],qs[_0x5c85('0x4a')](_0x3952b2['query'][_0x5c85('0x4a')]));_0x36bd2f[_0x5c85('0x4b')]=_0x36bd2f[_0x5c85('0x4b')][_0x5c85('0x4c')]?_0x36bd2f[_0x5c85('0x4b')]:_0x52cfac['model'];if(!_0x3952b2[_0x5c85('0x46')][_0x5c85('0x4d')]('nolimit')){_0x36bd2f[_0x5c85('0x30')]=qs[_0x5c85('0x30')](_0x3952b2[_0x5c85('0x46')]['limit']);_0x36bd2f[_0x5c85('0x2d')]=qs['offset'](_0x3952b2['query']['offset']);}_0x36bd2f[_0x5c85('0x68')]=qs[_0x5c85('0x4f')](_0x3952b2[_0x5c85('0x46')][_0x5c85('0x4f')]);_0x36bd2f[_0x5c85('0x52')]=qs[_0x5c85('0x48')](_['pick'](_0x3952b2['query'],_0x52cfac[_0x5c85('0x48')]));_0x36bd2f[_0x5c85('0x52')][_0x5c85('0x63')]=_0x3e28f0['id'];if(_0x3952b2[_0x5c85('0x46')][_0x5c85('0x51')]){_0x36bd2f[_0x5c85('0x52')]=_[_0x5c85('0x53')](_0x36bd2f[_0x5c85('0x52')],{'$or':_[_0x5c85('0x41')](_0x36bd2f['attributes'],function(_0x19f1bc){var _0x3c5673={};_0x3c5673[_0x19f1bc]={'$like':'%'+_0x3952b2[_0x5c85('0x46')][_0x5c85('0x51')]+'%'};return _0x3c5673;})});}_0x36bd2f=_['merge']({},_0x36bd2f,_0x3952b2[_0x5c85('0x54')]);return db[_0x5c85('0x6c')]['count']({'where':_0x36bd2f[_0x5c85('0x52')]})['then'](function(_0x3102fc){_0x2c2e68['count']=_0x3102fc;if(_0x3952b2[_0x5c85('0x46')]['includeAll']){_0x36bd2f[_0x5c85('0x57')]=[{'all':!![]}];}return db[_0x5c85('0x6c')][_0x5c85('0x58')](_0x36bd2f);})['then'](function(_0x599c43){_0x2c2e68[_0x5c85('0x59')]=_0x599c43;return _0x2c2e68;});}})['then'](respondWithFilteredResult(_0x12f949,_0x36bd2f))[_0x5c85('0x28')](handleError(_0x12f949,null));};exports['removeAnswers']=function(_0x4a4c19,_0x1560b2,_0x5207f8){return db[_0x5c85('0x55')][_0x5c85('0x60')]({'where':{'id':_0x4a4c19[_0x5c85('0x5b')]['id']}})['then'](handleEntityNotFound(_0x1560b2,null))[_0x5c85('0x1e')](function(_0x513ac7){if(_0x513ac7){return _0x513ac7['removeAnswers'](_0x4a4c19[_0x5c85('0x46')]['ids']);}})['then'](respondWithStatusCode(_0x1560b2,null))[_0x5c85('0x28')](handleError(_0x1560b2,null));};exports[_0x5c85('0x65')]=function(_0x2db8e2,_0x3ecf7c){var _0x2b8d10={'name':_0x2db8e2['body']['name'],'key':_0x2db8e2[_0x5c85('0x61')][_0x5c85('0x44')],'email':_0x2db8e2[_0x5c85('0x61')][_0x5c85('0x6e')],'ListId':_0x2db8e2[_0x5c85('0x61')][_0x5c85('0x6f')],'active':!_[_0x5c85('0x70')](_0x2db8e2['body']['active'])?_0x2db8e2['body'][_0x5c85('0x71')]:!![],'description':_0x2db8e2[_0x5c85('0x61')][_0x5c85('0x72')]||null,'Imap':{},'Smtp':{}};if(_[_0x5c85('0x70')](_0x2db8e2[_0x5c85('0x61')][_0x5c85('0x73')])){if(_0x2db8e2['body'][_0x5c85('0x74')]){_0x2b8d10[_0x5c85('0x3e')][_0x5c85('0x75')]=_0x2b8d10[_0x5c85('0x5d')]['user']=_0x2db8e2[_0x5c85('0x61')][_0x5c85('0x76')];_0x2b8d10[_0x5c85('0x3e')][_0x5c85('0x77')]=_0x2b8d10[_0x5c85('0x5d')][_0x5c85('0x78')]=_0x2db8e2[_0x5c85('0x61')][_0x5c85('0x79')];}else{_0x2b8d10['Imap'][_0x5c85('0x7a')]=_0x2b8d10[_0x5c85('0x5d')]['authentication']=![];}_0x2b8d10[_0x5c85('0x3e')][_0x5c85('0x7b')]=_0x2db8e2['body'][_0x5c85('0x3e')][_0x5c85('0x7b')];_0x2b8d10[_0x5c85('0x3e')][_0x5c85('0x7c')]=_0x2db8e2[_0x5c85('0x61')]['Imap'][_0x5c85('0x7c')];_0x2b8d10['Smtp']['host']=_0x2db8e2[_0x5c85('0x61')][_0x5c85('0x5d')]['host'];_0x2b8d10[_0x5c85('0x5d')][_0x5c85('0x7c')]=_0x2db8e2[_0x5c85('0x61')][_0x5c85('0x5d')][_0x5c85('0x7c')];}else{_0x2b8d10[_0x5c85('0x3e')][_0x5c85('0x7d')]=_0x2b8d10[_0x5c85('0x5d')][_0x5c85('0x7d')]=_0x2db8e2[_0x5c85('0x61')][_0x5c85('0x73')];_0x2b8d10['Imap'][_0x5c85('0x75')]=_0x2b8d10[_0x5c85('0x5d')]['user']=_0x2db8e2[_0x5c85('0x61')][_0x5c85('0x76')];_0x2b8d10['Imap']['password']=_0x2b8d10[_0x5c85('0x5d')]['pass']=_0x2db8e2['body'][_0x5c85('0x79')];}return db[_0x5c85('0x55')][_0x5c85('0x65')](_0x2b8d10,{'include':[{'model':db[_0x5c85('0x3f')],'as':'Smtp'},{'model':db['MailServerIn'],'as':_0x5c85('0x3e')}]})[_0x5c85('0x1e')](function(_0x5f40aa){var _0x527c96=_0x2db8e2[_0x5c85('0x75')][_0x5c85('0x37')]({'plain':!![]});if(!_0x527c96)throw new Error(_0x5c85('0x7e'));if(_0x527c96['role']===_0x5c85('0x75')){var _0x4ced26=_0x5f40aa['get']({'plain':!![]});return db[_0x5c85('0x7f')]['find']({'where':{'name':_0x5c85('0x38'),'userProfileId':_0x527c96[_0x5c85('0x80')]},'raw':!![]})[_0x5c85('0x1e')](function(_0x116a4c){if(_0x116a4c&&_0x116a4c[_0x5c85('0x81')]===0x0){return db['UserProfileResource'][_0x5c85('0x65')]({'name':_0x4ced26['name'],'resourceId':_0x4ced26['id'],'type':_0x116a4c[_0x5c85('0x3b')],'sectionId':_0x116a4c['id']},{})[_0x5c85('0x1e')](function(){return _0x5f40aa;});}else{return _0x5f40aa;}})['catch'](function(_0x596275){logger[_0x5c85('0x24')](_0x5c85('0x82'),_0x596275);throw _0x596275;});}return _0x5f40aa;})[_0x5c85('0x1e')](respondWithResult(_0x3ecf7c,0xc9))['catch'](handleError(_0x3ecf7c,null));};exports[_0x5c85('0x83')]=function(_0x34d769,_0x16f5b5,_0x2e3895){return db[_0x5c85('0x55')][_0x5c85('0x67')]({'where':{'id':_0x34d769['params']['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x16f5b5,null))[_0x5c85('0x1e')](function(_0xde54d9){if(_0xde54d9){return _0xde54d9[_0x5c85('0x83')]();}return null;})[_0x5c85('0x1e')](respondWithResult(_0x16f5b5,null))[_0x5c85('0x28')](handleError(_0x16f5b5,null));};exports[_0x5c85('0x84')]=function(_0x156a4d,_0x129e08,_0x32692e){if(_0x156a4d['body']['id']){delete _0x156a4d[_0x5c85('0x61')]['id'];}return db[_0x5c85('0x55')][_0x5c85('0x60')]({'where':{'id':_0x156a4d[_0x5c85('0x5b')]['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x129e08,null))['then'](function(_0x479e67){if(_0x479e67){_0x156a4d[_0x5c85('0x61')]['MailAccountId']=_0x479e67['id'];return db[_0x5c85('0x5c')]['create'](_0x156a4d['body']);}})[_0x5c85('0x1e')](respondWithResult(_0x129e08,null))['catch'](handleError(_0x129e08,null));};exports[_0x5c85('0x85')]=function(_0x441b05,_0x2cee8a,_0x53ed06){return db[_0x5c85('0x55')]['findOne']({'where':{'id':_0x441b05[_0x5c85('0x5b')]['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x2cee8a,null))[_0x5c85('0x1e')](function(_0x118851){if(_0x118851){return _0x118851[_0x5c85('0x86')](null);}return null;})[_0x5c85('0x1e')](respondWithStatusCode(_0x2cee8a,null))['catch'](handleError(_0x2cee8a,null));};exports[_0x5c85('0x87')]=function(_0x37136c,_0x3bb6af,_0x52aa6d){return db['MailAccount'][_0x5c85('0x67')]({'where':{'id':_0x37136c[_0x5c85('0x5b')]['id']}})['then'](handleEntityNotFound(_0x3bb6af,null))[_0x5c85('0x1e')](function(_0x5aa421){if(_0x5aa421){return _0x5aa421[_0x5c85('0x87')]();}return null;})[_0x5c85('0x1e')](respondWithResult(_0x3bb6af,null))[_0x5c85('0x28')](handleError(_0x3bb6af,null));};exports[_0x5c85('0x88')]=function(_0x442553,_0x3cbab5,_0x1d9a44){if(_0x442553['body']['id']){delete _0x442553['body']['id'];}return db[_0x5c85('0x55')]['find']({'where':{'id':_0x442553[_0x5c85('0x5b')]['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x3cbab5,null))[_0x5c85('0x1e')](function(_0x514932){if(_0x514932){_0x442553[_0x5c85('0x61')][_0x5c85('0x63')]=_0x514932['id'];return db['MailServerOut'][_0x5c85('0x65')](_0x442553['body']);}})['then'](respondWithResult(_0x3cbab5,null))['catch'](handleError(_0x3cbab5,null));};exports[_0x5c85('0x89')]=function(_0x571366,_0x3d2673,_0x55dd28){return db[_0x5c85('0x55')][_0x5c85('0x67')]({'where':{'id':_0x571366['params']['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x3d2673,null))[_0x5c85('0x1e')](function(_0x4dca45){if(_0x4dca45){return _0x4dca45[_0x5c85('0x8a')](null);}return null;})['then'](respondWithStatusCode(_0x3d2673,null))[_0x5c85('0x28')](handleError(_0x3d2673,null));};exports[_0x5c85('0x8b')]=function(_0x3e4bf4,_0x29d8db,_0x388dfb){return db[_0x5c85('0x8c')]['find']({'where':{'id':_0x3e4bf4[_0x5c85('0x5b')]['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x29d8db,null))[_0x5c85('0x1e')](function(_0xeb9aec){if(_0xeb9aec){return _0xeb9aec[_0x5c85('0x8b')](_0x3e4bf4[_0x5c85('0x61')][_0x5c85('0x6a')],_[_0x5c85('0x8d')](_0x3e4bf4[_0x5c85('0x61')],['ids','id'])||{});}})[_0x5c85('0x1e')](respondWithResult(_0x29d8db,null))[_0x5c85('0x28')](handleError(_0x29d8db,null));};exports[_0x5c85('0x8e')]=function(_0x39fc80,_0x24a406,_0x44f282){var _0x88af43={'raw':![],'where':{}};var _0x2ffa6d={};var _0xe79185={'count':0x0,'rows':[]};return db['MailAccount'][_0x5c85('0x67')]({'where':{'id':_0x39fc80['params']['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x24a406,null))['then'](function(_0xb5a12c){if(_0xb5a12c){_0x2ffa6d['model']=_[_0x5c85('0x47')](db[_0x5c85('0x8c')][_0x5c85('0x5f')]);_0x2ffa6d[_0x5c85('0x46')]=_[_0x5c85('0x47')](_0x39fc80['query']);_0x2ffa6d[_0x5c85('0x48')]=_[_0x5c85('0x49')](_0x2ffa6d[_0x5c85('0x45')],_0x2ffa6d[_0x5c85('0x46')]);_0x88af43[_0x5c85('0x4b')]=_[_0x5c85('0x49')](_0x2ffa6d[_0x5c85('0x45')],qs[_0x5c85('0x4a')](_0x39fc80[_0x5c85('0x46')]['fields']));_0x88af43[_0x5c85('0x4b')]=_0x88af43[_0x5c85('0x4b')]['length']?_0x88af43[_0x5c85('0x4b')]:_0x2ffa6d['model'];if(!_0x39fc80['query'][_0x5c85('0x4d')](_0x5c85('0x4e'))){_0x88af43[_0x5c85('0x30')]=qs[_0x5c85('0x30')](_0x39fc80[_0x5c85('0x46')][_0x5c85('0x30')]);_0x88af43[_0x5c85('0x2d')]=qs[_0x5c85('0x2d')](_0x39fc80[_0x5c85('0x46')][_0x5c85('0x2d')]);}_0x88af43[_0x5c85('0x68')]=qs['sort'](_0x39fc80[_0x5c85('0x46')]['sort']);_0x88af43[_0x5c85('0x52')]=qs[_0x5c85('0x48')](_[_0x5c85('0x50')](_0x39fc80[_0x5c85('0x46')],_0x2ffa6d[_0x5c85('0x48')]));_0x88af43[_0x5c85('0x52')][_0x5c85('0x63')]=_0xb5a12c['id'];if(_0x39fc80[_0x5c85('0x46')]['filter']){_0x88af43[_0x5c85('0x52')]=_[_0x5c85('0x53')](_0x88af43['where'],{'$or':_[_0x5c85('0x41')](_0x88af43[_0x5c85('0x4b')],function(_0x19d9fe){var _0x16d142={};_0x16d142[_0x19d9fe]={'$like':'%'+_0x39fc80[_0x5c85('0x46')][_0x5c85('0x51')]+'%'};return _0x16d142;})});}_0x88af43=_[_0x5c85('0x53')]({},_0x88af43,_0x39fc80[_0x5c85('0x54')]);return db[_0x5c85('0x8c')]['count']({'where':_0x88af43[_0x5c85('0x52')]})[_0x5c85('0x1e')](function(_0x2e417f){_0xe79185[_0x5c85('0x2f')]=_0x2e417f;if(_0x39fc80[_0x5c85('0x46')][_0x5c85('0x56')]){_0x88af43['include']=[{'model':db[_0x5c85('0x8f')],'as':_0x5c85('0x90'),'required':![]},{'model':db[_0x5c85('0x91')],'as':_0x5c85('0x92'),'attributes':['name',_0x5c85('0x93'),'internal'],'required':![]},{'model':db['Tag'],'as':_0x5c85('0x94'),'attributes':['id',_0x5c85('0x3b'),_0x5c85('0x95')],'where':_0x39fc80[_0x5c85('0x46')]['tag']?{'id':_0x39fc80[_0x5c85('0x46')][_0x5c85('0x96')]}:undefined,'required':_0x39fc80['query'][_0x5c85('0x96')]?!![]:![]}];}return db['MailInteraction'][_0x5c85('0x58')](_0x88af43);})[_0x5c85('0x1e')](function(_0x14d95a){_0xe79185[_0x5c85('0x59')]=_0x14d95a;return _0xe79185;});}})[_0x5c85('0x1e')](respondWithFilteredResult(_0x24a406,_0x88af43))[_0x5c85('0x28')](handleError(_0x24a406,null));};exports[_0x5c85('0x97')]=function addApplications(_0x4e5675,_0x121735){var _0x3c27fb=_0x4e5675[_0x5c85('0x5b')]['id'];var _0x2e83c1=_0x4e5675[_0x5c85('0x61')];var _0x519791=0xc8;var _0x1b6f9c=null;return db[_0x5c85('0x98')][_0x5c85('0x99')]({'isolationLevel':db[_0x5c85('0x98')][_0x5c85('0x9a')]['ISOLATION_LEVELS'][_0x5c85('0x9b')]},function(_0x378fd7){return db[_0x5c85('0x55')]['findOne']({'where':{'id':_0x3c27fb},'transaction':_0x378fd7})[_0x5c85('0x1e')](function(_0x39f7f0){if(_0x39f7f0){return db[_0x5c85('0x9c')][_0x5c85('0x36')]({'where':{'MailAccountId':_0x3c27fb},'transaction':_0x378fd7})['then'](function(){var _0x4d7a45=_[_0x5c85('0x41')](_0x2e83c1,function(_0x1dfe1a){_0x1dfe1a[_0x5c85('0x63')]=_0x3c27fb;return _0x1dfe1a;});return db['MailApplication'][_0x5c85('0x9d')](_0x4d7a45,{'transaction':_0x378fd7});});}else{_0x519791=0x194;_0x1b6f9c=[];}});})['then'](function(){if(_0x519791!==0x194){return db[_0x5c85('0x9c')]['findAndCountAll']({'where':{'MailAccountId':_0x3c27fb},'order':_0x5c85('0x9e')})[_0x5c85('0x1e')](function(_0x2e24d5){_0x1b6f9c=_0x2e24d5;});}})[_0x5c85('0x28')](function(_0x28cff3){_0x519791=0x1f4;logger[_0x5c85('0x24')](_0x28cff3[_0x5c85('0x3a')]);if(_0x28cff3[_0x5c85('0x3b')]){delete _0x28cff3['name'];}_0x1b6f9c=_0x28cff3;})[_0x5c85('0x9f')](function(){if(_0x1b6f9c===null){_0x121735[_0x5c85('0x29')](_0x519791);}else{if(_0x519791===0x1f4){_0x121735[_0x5c85('0x2a')](_0x519791)[_0x5c85('0x3c')](_0x1b6f9c);}else{_0x121735[_0x5c85('0x2a')](_0x519791)[_0x5c85('0x2c')](_0x1b6f9c);}}});};exports['getApplications']=function(_0xde4ca5,_0x56d1d3,_0x4092a3){var _0x218c3a={};var _0x52b770={};var _0x1b2788;var _0x48ba2b;return db[_0x5c85('0x55')][_0x5c85('0x67')]({'where':{'id':_0xde4ca5[_0x5c85('0x5b')]['id']}})['then'](handleEntityNotFound(_0x56d1d3,null))[_0x5c85('0x1e')](function(_0x5c4db4){if(_0x5c4db4){_0x1b2788=_0x5c4db4;_0x52b770['model']=_[_0x5c85('0x47')](db[_0x5c85('0x9c')]['rawAttributes']);_0x52b770[_0x5c85('0x46')]=_[_0x5c85('0x47')](_0xde4ca5['query']);_0x52b770[_0x5c85('0x48')]=_[_0x5c85('0x49')](_0x52b770['model'],_0x52b770[_0x5c85('0x46')]);_0x218c3a[_0x5c85('0x4b')]=_[_0x5c85('0x49')](_0x52b770[_0x5c85('0x45')],qs[_0x5c85('0x4a')](_0xde4ca5[_0x5c85('0x46')][_0x5c85('0x4a')]));_0x218c3a[_0x5c85('0x4b')]=_0x218c3a[_0x5c85('0x4b')][_0x5c85('0x4c')]?_0x218c3a[_0x5c85('0x4b')]:_0x52b770[_0x5c85('0x45')];_0x218c3a[_0x5c85('0x68')]=qs[_0x5c85('0x4f')](_0xde4ca5[_0x5c85('0x46')]['sort']);_0x218c3a[_0x5c85('0x52')]=qs[_0x5c85('0x48')](_[_0x5c85('0x50')](_0xde4ca5[_0x5c85('0x46')],_0x52b770[_0x5c85('0x48')]));if(_0xde4ca5[_0x5c85('0x46')][_0x5c85('0x51')]){_0x218c3a[_0x5c85('0x52')]=_[_0x5c85('0x53')](_0x218c3a[_0x5c85('0x52')],{'$or':_[_0x5c85('0x41')](_0x218c3a['attributes'],function(_0x439894){var _0xba5a76={};_0xba5a76[_0x439894]={'$like':'%'+_0xde4ca5[_0x5c85('0x46')][_0x5c85('0x51')]+'%'};return _0xba5a76;})});}_0x218c3a=_['merge']({},_0x218c3a,_0xde4ca5['options']);return _0x1b2788['getApplications'](_0x218c3a);}})[_0x5c85('0x1e')](function(_0x3d393){if(_0x3d393){_0x48ba2b=_0x3d393[_0x5c85('0x4c')];if(!_0xde4ca5[_0x5c85('0x46')]['hasOwnProperty'](_0x5c85('0x4e'))){_0x218c3a[_0x5c85('0x30')]=qs[_0x5c85('0x30')](_0xde4ca5[_0x5c85('0x46')][_0x5c85('0x30')]);_0x218c3a[_0x5c85('0x2d')]=qs['offset'](_0xde4ca5['query'][_0x5c85('0x2d')]);}return _0x1b2788[_0x5c85('0xa0')](_0x218c3a);}})[_0x5c85('0x1e')](function(_0x13efdb){if(_0x13efdb){return _0x13efdb?{'count':_0x48ba2b,'rows':_0x13efdb}:null;}})[_0x5c85('0x1e')](respondWithResult(_0x56d1d3,null))['catch'](handleError(_0x56d1d3,null));};exports[_0x5c85('0xa1')]=function(_0x109f1b,_0x28e078,_0x19acaf){var _0x36a9c1={'raw':!![],'where':{}};var _0x256da8={};var _0x24477d={'count':0x0,'rows':[]};return db[_0x5c85('0x55')][_0x5c85('0x67')]({'where':{'id':_0x109f1b[_0x5c85('0x5b')]['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x28e078,null))[_0x5c85('0x1e')](function(_0x55a6a8){if(_0x55a6a8){_0x256da8['model']=_['keys'](db['MailMessage'][_0x5c85('0x5f')]);_0x256da8['query']=_[_0x5c85('0x47')](_0x109f1b['query']);_0x256da8['filters']=_[_0x5c85('0x49')](_0x256da8[_0x5c85('0x45')],_0x256da8[_0x5c85('0x46')]);_0x36a9c1[_0x5c85('0x4b')]=_[_0x5c85('0x49')](_0x256da8[_0x5c85('0x45')],qs[_0x5c85('0x4a')](_0x109f1b[_0x5c85('0x46')][_0x5c85('0x4a')]));_0x36a9c1[_0x5c85('0x4b')]=_0x36a9c1[_0x5c85('0x4b')][_0x5c85('0x4c')]?_0x36a9c1[_0x5c85('0x4b')]:_0x256da8[_0x5c85('0x45')];if(!_0x109f1b[_0x5c85('0x46')]['hasOwnProperty'](_0x5c85('0x4e'))){_0x36a9c1[_0x5c85('0x30')]=qs['limit'](_0x109f1b['query']['limit']);_0x36a9c1[_0x5c85('0x2d')]=qs[_0x5c85('0x2d')](_0x109f1b[_0x5c85('0x46')]['offset']);}_0x36a9c1['order']=qs[_0x5c85('0x4f')](_0x109f1b[_0x5c85('0x46')][_0x5c85('0x4f')]);_0x36a9c1[_0x5c85('0x52')]=qs['filters'](_[_0x5c85('0x50')](_0x109f1b[_0x5c85('0x46')],_0x256da8['filters']));_0x36a9c1[_0x5c85('0x52')][_0x5c85('0x63')]=_0x55a6a8['id'];if(_0x109f1b[_0x5c85('0x46')][_0x5c85('0x51')]){_0x36a9c1[_0x5c85('0x52')]=_['merge'](_0x36a9c1[_0x5c85('0x52')],{'$or':_[_0x5c85('0x41')](_0x36a9c1[_0x5c85('0x4b')],function(_0x1a5054){var _0x24a2b5={};_0x24a2b5[_0x1a5054]={'$like':'%'+_0x109f1b[_0x5c85('0x46')][_0x5c85('0x51')]+'%'};return _0x24a2b5;})});}if(_0x109f1b[_0x5c85('0x46')][_0x5c85('0xa2')]){var _0x43c7c3=_0x109f1b[_0x5c85('0x46')][_0x5c85('0xa2')][_0x5c85('0xa3')](',');var _0x1b7f96={};_0x1b7f96[_0x43c7c3[0x0]]={'$gte':moment(_0x43c7c3[0x1])[_0x5c85('0xa4')](_0x5c85('0xa5'))};_0x36a9c1['where']=_[_0x5c85('0x53')](_0x36a9c1[_0x5c85('0x52')],_0x1b7f96);}_0x36a9c1=_[_0x5c85('0x53')]({},_0x36a9c1,_0x109f1b[_0x5c85('0x54')]);return db[_0x5c85('0xa6')][_0x5c85('0x2f')]({'where':_0x36a9c1[_0x5c85('0x52')]})[_0x5c85('0x1e')](function(_0x42df11){_0x24477d['count']=_0x42df11;if(_0x109f1b[_0x5c85('0x46')][_0x5c85('0x56')]){_0x36a9c1[_0x5c85('0x57')]=[{'all':!![]}];}return db[_0x5c85('0xa6')]['findAll'](_0x36a9c1);})[_0x5c85('0x1e')](function(_0x48c9a0){if(_0x109f1b[_0x5c85('0x46')][_0x5c85('0xa7')]===_0x5c85('0xa8')){for(var _0x11ecec=0x0;_0x11ecec<_0x48c9a0[_0x5c85('0x4c')];_0x11ecec++){_0x48c9a0[_0x11ecec][_0x5c85('0x61')]=juice(_0x48c9a0[_0x11ecec][_0x5c85('0x61')]);}}_0x24477d['rows']=_0x48c9a0;return _0x24477d;});}})[_0x5c85('0x1e')](respondWithFilteredResult(_0x28e078,_0x36a9c1))[_0x5c85('0x28')](handleError(_0x28e078,null));};exports[_0x5c85('0x3c')]=function(_0x1b73b6,_0x13b5e9,_0x46c14c){var _0x50897b,_0xea095b={},_0x2f6ab4;if(_0x1b73b6[_0x5c85('0x61')]['to']){_0x2f6ab4=_0x1b73b6[_0x5c85('0x61')]['to'][_0x5c85('0xa3')](',')[0x0];}return db['MailAccount'][_0x5c85('0x60')]({'where':{'id':_0x1b73b6[_0x5c85('0x5b')]['id']},'include':[{'model':db[_0x5c85('0xa9')],'as':_0x5c85('0xaa'),'include':[{'model':db[_0x5c85('0x8f')],'as':_0x5c85('0xab'),'where':{'email':_0x2f6ab4},'limit':0x1,'order':[[_0x5c85('0xac'),_0x5c85('0xad')]]}]},{'model':db[_0x5c85('0x3f')],'as':_0x5c85('0x5d'),'raw':!![]}]})[_0x5c85('0x1e')](handleEntityNotFound(_0x13b5e9,null))['then'](function(_0x3fdfb4){if(_0x3fdfb4){_0x50897b=_0x3fdfb4;if(_0x3fdfb4[_0x5c85('0x5d')]){if(_[_0x5c85('0x70')](_0x1b73b6['body']['from'])){_0x1b73b6[_0x5c85('0x61')][_0x5c85('0xae')]=util[_0x5c85('0xa4')](_0x5c85('0xaf'),_0x3fdfb4['name'],_0x3fdfb4[_0x5c85('0x6e')]||_0x3fdfb4['Smtp'][_0x5c85('0x75')]);}if(_0x1b73b6[_0x5c85('0x61')][_0x5c85('0xb0')]&&_0x1b73b6[_0x5c85('0x61')][_0x5c85('0xb0')][_0x5c85('0x4c')]){for(var _0xd23615=0x0;_0xd23615<_0x1b73b6[_0x5c85('0x61')]['attachments'][_0x5c85('0x4c')];_0xd23615+=0x1){_0x1b73b6['body']['attachments'][_0xd23615]={'filename':_0x1b73b6['body'][_0x5c85('0xb0')][_0xd23615]['name'],'path':path[_0x5c85('0xb1')](config[_0x5c85('0xb2')],_0x5c85('0xb3'),_0x1b73b6[_0x5c85('0x61')][_0x5c85('0xb0')][_0xd23615][_0x5c85('0xb4')])};}}var _0x3ade51={'tls':{'rejectUnauthorized':![]}};if(_[_0x5c85('0x70')](_0x3fdfb4[_0x5c85('0x5d')][_0x5c85('0x7d')])){if(_0x3fdfb4[_0x5c85('0x5d')]['authentication']){_0x3ade51[_0x5c85('0xb5')]={'user':_0x3fdfb4[_0x5c85('0x5d')][_0x5c85('0x75')],'pass':_0x3fdfb4[_0x5c85('0x5d')][_0x5c85('0x78')]};}_0x3ade51['host']=_0x3fdfb4[_0x5c85('0x5d')]['host'];_0x3ade51['port']=_0x3fdfb4['Smtp']['port'];_0x3ade51['secure']=_0x3fdfb4[_0x5c85('0x5d')][_0x5c85('0xb6')];}else{_0x3ade51[_0x5c85('0x7d')]=_0x3fdfb4[_0x5c85('0x5d')][_0x5c85('0x7d')];_0x3ade51[_0x5c85('0xb5')]={'user':_0x3fdfb4['Smtp'][_0x5c85('0x75')],'pass':_0x3fdfb4[_0x5c85('0x5d')][_0x5c85('0x78')]};}return respondWithRpcPromise(_0x5c85('0xb7'),_0x5c85('0xb8'),{'account':_0x3ade51,'message':_0x1b73b6['body']});}else{throw new Error(_0x5c85('0xb9'));}}})[_0x5c85('0x1e')](function(_0x1b202a){if(_0x1b202a){_0xea095b=_0x1b202a;if(_0x50897b[_0x5c85('0xaa')]){if(_0x50897b[_0x5c85('0xaa')]['Contacts'][_0x5c85('0x4c')]){return _0x50897b[_0x5c85('0xaa')][_0x5c85('0xab')][0x0];}else{return db[_0x5c85('0x8f')][_0x5c85('0x65')](_[_0x5c85('0xba')](_0x1b73b6[_0x5c85('0x61')],{'firstName':_0x1b73b6[_0x5c85('0x61')]['to'],'email':_0x1b73b6[_0x5c85('0x61')]['to'],'phone':_0x1b73b6[_0x5c85('0x61')]['to'],'ListId':_0x50897b[_0x5c85('0x6f')]}));}}else{throw new Error(_0x5c85('0xb9'));}}})[_0x5c85('0x1e')](function(_0x553e6a){if(_0x553e6a){var _0x919565={'UserId':_0x1b73b6[_0x5c85('0x75')]['id'],'ContactId':_0x553e6a['id'],'MailAccountId':_0x50897b['id'],'inReplyTo':_0xea095b[_0x5c85('0xbb')],'to':_0x1b73b6[_0x5c85('0x61')][_0x5c85('0xae')],'cc':_0x1b73b6[_0x5c85('0x61')]['cc'],'subject':_0x1b73b6[_0x5c85('0x61')][_0x5c85('0xbc')],'attach':_0x1b73b6[_0x5c85('0x61')]['attach'],'firstMsgDirection':_0x5c85('0xbd'),'lastMsgAt':moment()['format'](_0x5c85('0xa5')),'lastMsgDirection':'out','Messages':[_[_0x5c85('0x53')](_0x1b73b6[_0x5c85('0x61')],{'messageId':_0xea095b[_0x5c85('0xbb')],'sentAt':moment()[_0x5c85('0xa4')](_0x5c85('0xa5')),'read':!![],'MailAccountId':_0x50897b['id'],'UserId':_0x1b73b6[_0x5c85('0x75')]['id'],'ContactId':_0x553e6a['id']})]};if(_0x1b73b6['body']['Interaction']){_0x919565=_[_0x5c85('0x53')](_0x919565,_0x1b73b6[_0x5c85('0x61')]['Interaction']);}return db[_0x5c85('0x8c')][_0x5c85('0x65')](_0x919565,{'include':[{'model':db[_0x5c85('0xa6')],'as':'Messages'}]});}})[_0x5c85('0x1e')](respondWithResult(_0x13b5e9,null))['catch'](handleError(_0x13b5e9,null));};exports[_0x5c85('0xbe')]=function(_0x55e3e8,_0x29e6bb,_0x408dad){return db[_0x5c85('0x55')][_0x5c85('0x60')]({'where':{'id':_0x55e3e8[_0x5c85('0x5b')]['id']},'include':[{'model':db[_0x5c85('0x3f')],'as':_0x5c85('0x5d'),'raw':!![]}]})[_0x5c85('0x1e')](handleEntityNotFound(_0x29e6bb,null))[_0x5c85('0x1e')](function(_0x5ab168){if(_0x5ab168&&_0x5ab168[_0x5c85('0x5d')]){var _0xcb989d={'id':_0x5ab168['id'],'tls':{'rejectUnauthorized':![]}};if(_0x5ab168[_0x5c85('0x5d')][_0x5c85('0x7d')]){_0xcb989d[_0x5c85('0x7d')]=_0x5ab168[_0x5c85('0x5d')][_0x5c85('0x7d')];}else{_0xcb989d['host']=_0x5ab168[_0x5c85('0x5d')]['host'];_0xcb989d[_0x5c85('0x7c')]=_0x5ab168[_0x5c85('0x5d')][_0x5c85('0x7c')];_0xcb989d['secure']=_0x5ab168[_0x5c85('0x5d')][_0x5c85('0xb6')];}if(_0x5ab168[_0x5c85('0x5d')][_0x5c85('0x7a')]){_0xcb989d[_0x5c85('0xb5')]={'user':_0x5ab168[_0x5c85('0x5d')][_0x5c85('0x75')],'pass':_0x5ab168['Smtp']['pass']};}return respondWithRpcPromise(_0x5c85('0xbf'),'verifySmtp',{'account':_0xcb989d});}})['then'](respondWithResult(_0x29e6bb,null))[_0x5c85('0x28')](handleError(_0x29e6bb,null));};exports[_0x5c85('0x36')]=function(_0x27fe75,_0x387964){return db[_0x5c85('0x55')][_0x5c85('0x60')]({'where':{'id':_0x27fe75[_0x5c85('0x5b')]['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x387964,null))['then'](function(_0x2c7e8d){if(_0x2c7e8d&&_0x2c7e8d[_0x5c85('0x7d')]){throw new db[(_0x5c85('0xc0'))][(_0x5c85('0xc1'))](_0x5c85('0xc2'));}return _0x2c7e8d;})['then'](removeEntity(_0x387964,null))[_0x5c85('0x28')](handleError(_0x387964,null));};exports[_0x5c85('0xc3')]=function(_0x3030c0,_0x50c59c,_0x5ca54f){return db[_0x5c85('0x55')][_0x5c85('0x60')]({'where':{'id':_0x3030c0[_0x5c85('0x5b')]['id']}})['then'](handleEntityNotFound(_0x50c59c,null))[_0x5c85('0x1e')](function(_0x2b43b6){if(_0x2b43b6){return _0x2b43b6[_0x5c85('0xc3')](_0x3030c0['body'][_0x5c85('0x6a')],_[_0x5c85('0x8d')](_0x3030c0['body'],[_0x5c85('0x6a'),'id'])||{})[_0x5c85('0xc4')](function(_0x93a1b6){for(var _0xbef8d0=0x0;_0xbef8d0<_0x3030c0['body'][_0x5c85('0x6a')][_0x5c85('0x4c')];_0xbef8d0+=0x1){socket[_0x5c85('0xc5')](_0x5c85('0xc6'),{'UserId':Number(_0x3030c0[_0x5c85('0x61')][_0x5c85('0x6a')][_0xbef8d0]),'MailAccountId':Number(_0x3030c0[_0x5c85('0x5b')]['id'])});}return _0x93a1b6;});}})[_0x5c85('0x1e')](respondWithResult(_0x50c59c,null))['catch'](handleError(_0x50c59c,null));};exports[_0x5c85('0xc7')]=function(_0x2d4639,_0x5d7c6c,_0x2d8916){return db[_0x5c85('0x55')][_0x5c85('0x60')]({'where':{'id':_0x2d4639['params']['id']}})['then'](handleEntityNotFound(_0x5d7c6c,null))['then'](function(_0x246f86){if(_0x246f86){return _0x246f86[_0x5c85('0xc7')](_0x2d4639[_0x5c85('0x46')][_0x5c85('0x6a')])[_0x5c85('0x1e')](function(){if(_[_0x5c85('0xc8')](_0x2d4639[_0x5c85('0x46')]['ids'])){for(var _0xa7a7da=0x0;_0xa7a7da<_0x2d4639[_0x5c85('0x46')][_0x5c85('0x6a')][_0x5c85('0x4c')];_0xa7a7da+=0x1){socket[_0x5c85('0xc5')](_0x5c85('0xc9'),{'UserId':Number(_0x2d4639[_0x5c85('0x46')][_0x5c85('0x6a')][_0xa7a7da]),'MailAccountId':Number(_0x2d4639[_0x5c85('0x5b')]['id'])});}}else{socket[_0x5c85('0xc5')](_0x5c85('0xc9'),{'UserId':Number(_0x2d4639[_0x5c85('0x46')][_0x5c85('0x6a')]),'MailAccountId':Number(_0x2d4639[_0x5c85('0x5b')]['id'])});}});}})[_0x5c85('0x1e')](respondWithStatusCode(_0x5d7c6c,null))['catch'](handleError(_0x5d7c6c,null));};exports[_0x5c85('0xca')]=function(_0x148db9,_0x3c6b1a,_0x5df6ad){var _0x5c2898={};var _0xe161c3={};var _0x155d86;var _0x465c21;return db['MailAccount'][_0x5c85('0x67')]({'where':{'id':_0x148db9[_0x5c85('0x5b')]['id']}})[_0x5c85('0x1e')](handleEntityNotFound(_0x3c6b1a,null))[_0x5c85('0x1e')](function(_0x1f51d7){if(_0x1f51d7){_0x155d86=_0x1f51d7;_0xe161c3[_0x5c85('0x45')]=_['keys'](db[_0x5c85('0x91')][_0x5c85('0x5f')]);_0xe161c3[_0x5c85('0x46')]=_[_0x5c85('0x47')](_0x148db9['query']);_0xe161c3['filters']=_[_0x5c85('0x49')](_0xe161c3[_0x5c85('0x45')],_0xe161c3[_0x5c85('0x46')]);_0x5c2898['attributes']=_['intersection'](_0xe161c3[_0x5c85('0x45')],qs[_0x5c85('0x4a')](_0x148db9[_0x5c85('0x46')]['fields']));_0x5c2898['attributes']=_0x5c2898[_0x5c85('0x4b')]['length']?_0x5c2898[_0x5c85('0x4b')]:_0xe161c3['model'];_0x5c2898['order']=qs['sort'](_0x148db9[_0x5c85('0x46')][_0x5c85('0x4f')]);_0x5c2898['where']=qs[_0x5c85('0x48')](_[_0x5c85('0x50')](_0x148db9[_0x5c85('0x46')],_0xe161c3[_0x5c85('0x48')]));if(_0x148db9['query'][_0x5c85('0x51')]){_0x5c2898['where']=_['merge'](_0x5c2898[_0x5c85('0x52')],{'$or':_[_0x5c85('0x41')](_0x5c2898[_0x5c85('0x4b')],function(_0x8ac714){var _0x26879b={};_0x26879b[_0x8ac714]={'$like':'%'+_0x148db9[_0x5c85('0x46')][_0x5c85('0x51')]+'%'};return _0x26879b;})});}_0x5c2898=_[_0x5c85('0x53')]({},_0x5c2898,_0x148db9[_0x5c85('0x54')]);return _0x155d86[_0x5c85('0xca')](_0x5c2898);}})['then'](function(_0x5e702a){if(_0x5e702a){_0x465c21=_0x5e702a[_0x5c85('0x4c')];if(!_0x148db9[_0x5c85('0x46')][_0x5c85('0x4d')](_0x5c85('0x4e'))){_0x5c2898[_0x5c85('0x30')]=qs[_0x5c85('0x30')](_0x148db9[_0x5c85('0x46')][_0x5c85('0x30')]);_0x5c2898['offset']=qs[_0x5c85('0x2d')](_0x148db9['query'][_0x5c85('0x2d')]);}return _0x155d86[_0x5c85('0xca')](_0x5c2898);}})[_0x5c85('0x1e')](function(_0x478e41){if(_0x478e41){return _0x478e41?{'count':_0x465c21,'rows':_0x478e41}:null;}})[_0x5c85('0x1e')](respondWithResult(_0x3c6b1a,null))[_0x5c85('0x28')](handleError(_0x3c6b1a,null));};
\ No newline at end of file
+var _0x3dd5=['status','offset','undefined','count','set','Content-Range','json','reject','save','destroy','get','MailAccounts','end','stack','name','send','index','MailServerIn','Imap','Smtp','Pause','mandatoryDispositionPause','MailAccount','rawAttributes','fieldName','type','key','map','query','filters','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','MailServerOut','keys','find','update','body','catch','describe','addDisposition','MailAccountId','create','findOne','Disposition','removeDispositions','ids','CannedAnswer','getAnswers','removeAnswers','email','ListId','isNil','active','cservice','cauthentication','user','cuser','password','pass','cpassword','authentication','host','port','service','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','getImap','addImap','removeImap','getSmtp','removeSmtp','setSmtp','addInteraction','MailInteraction','omit','getInteractions','CmContact','Contact','User','Owner','internal','Tag','Tags','color','tag','addApplications','sequelize','transaction','MailApplication','getApplications','getMessages','MailMessage','$gte','split','format','inlineCss','true','CmList','List','Contacts','updatedAt','DESC','from','%s\x20<%s>','attachments','basename','auth','secure','SendMail','sendMail','List\x20not\x20found','messageId','subject','attach','out','YYYY-MM-DD\x20HH:mm:ss','Interaction','Messages','verifySmtp','VerifySmtp','Sequelize','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','userMailAccount:save','removeAgents','userMailAccount:remove','emit','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','html-to-text','juice','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','localhost','socket.io-emitter','redis','./mailAccount.socket','register','jayson/promise','client','http','request','then','info','MailAccount,\x20%s,\x20%s','debug','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','sendStatus'];(function(_0x501650,_0x15b930){var _0x370add=function(_0x2612ee){while(--_0x2612ee){_0x501650['push'](_0x501650['shift']());}};_0x370add(++_0x15b930);}(_0x3dd5,0x99));var _0x53dd=function(_0x18ffa2,_0x1899c5){_0x18ffa2=_0x18ffa2-0x0;var _0x578d7d=_0x3dd5[_0x18ffa2];return _0x578d7d;};'use strict';var emlformat=require(_0x53dd('0x0'));var rimraf=require(_0x53dd('0x1'));var zipdir=require(_0x53dd('0x2'));var jsonpatch=require(_0x53dd('0x3'));var rp=require('request-promise');var moment=require(_0x53dd('0x4'));var BPromise=require(_0x53dd('0x5'));var Mustache=require(_0x53dd('0x6'));var util=require('util');var path=require('path');var sox=require(_0x53dd('0x7'));var csv=require(_0x53dd('0x8'));var ejs=require(_0x53dd('0x9'));var fs=require('fs');var fs_extra=require(_0x53dd('0xa'));var _=require(_0x53dd('0xb'));var squel=require('squel');var crypto=require(_0x53dd('0xc'));var jsforce=require(_0x53dd('0xd'));var deskjs=require(_0x53dd('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var htmlToText=require(_0x53dd('0xf'));var juice=require(_0x53dd('0x10'));var Redis=require(_0x53dd('0x11'));var authService=require(_0x53dd('0x12'));var qs=require(_0x53dd('0x13'));var as=require(_0x53dd('0x14'));var hardwareService=require(_0x53dd('0x15'));var logger=require(_0x53dd('0x16'))(_0x53dd('0x17'));var utils=require(_0x53dd('0x18'));var config=require(_0x53dd('0x19'));var licenseUtil=require(_0x53dd('0x1a'));var db=require(_0x53dd('0x1b'))['db'];config['redis']=_[_0x53dd('0x1c')](config['redis'],{'host':_0x53dd('0x1d'),'port':0x18eb});var socket=require(_0x53dd('0x1e'))(new Redis(config[_0x53dd('0x1f')]));require(_0x53dd('0x20'))[_0x53dd('0x21')](socket);var jayson=require(_0x53dd('0x22'));var client=jayson[_0x53dd('0x23')][_0x53dd('0x24')]({'port':0x232b});function respondWithRpcPromise(_0x37bda5,_0x4a7d3b,_0x149fab,_0x545f6){return new BPromise(function(_0x2bd922,_0x105dc3){var _0x33f1f=_0x545f6||client;return _0x33f1f[_0x53dd('0x25')](_0x37bda5,_0x149fab)[_0x53dd('0x26')](function(_0x535a52){logger[_0x53dd('0x27')](_0x53dd('0x28'),_0x4a7d3b,'request\x20sent');logger[_0x53dd('0x29')](_0x53dd('0x2a'),_0x4a7d3b,_0x53dd('0x2b'),JSON[_0x53dd('0x2c')](_0x535a52));if(_0x535a52[_0x53dd('0x2d')]){if(_0x535a52[_0x53dd('0x2d')][_0x53dd('0x2e')]===0x1f4){logger[_0x53dd('0x2d')](_0x53dd('0x28'),_0x4a7d3b,_0x535a52['error'][_0x53dd('0x2f')]);return _0x105dc3(_0x535a52[_0x53dd('0x2d')][_0x53dd('0x2f')]);}logger[_0x53dd('0x2d')]('MailAccount,\x20%s,\x20%s',_0x4a7d3b,_0x535a52[_0x53dd('0x2d')][_0x53dd('0x2f')]);return _0x2bd922(_0x535a52[_0x53dd('0x2d')][_0x53dd('0x2f')]);}else{logger['info'](_0x53dd('0x28'),_0x4a7d3b,_0x53dd('0x2b'));_0x2bd922(_0x535a52['result'][_0x53dd('0x2f')]);}})['catch'](function(_0xf8afb2){logger[_0x53dd('0x2d')](_0x53dd('0x28'),_0x4a7d3b,_0xf8afb2);_0x105dc3(_0xf8afb2);});});}function respondWithStatusCode(_0x221d79,_0x400922){_0x400922=_0x400922||0xcc;return function(_0x1a481){if(_0x1a481){return _0x221d79[_0x53dd('0x30')](_0x400922);}return _0x221d79[_0x53dd('0x31')](_0x400922)['end']();};}function respondWithResult(_0x138738,_0x31748e){_0x31748e=_0x31748e||0xc8;return function(_0x1882fb){if(_0x1882fb){return _0x138738[_0x53dd('0x31')](_0x31748e)['json'](_0x1882fb);}};}function respondWithFilteredResult(_0x3891d3,_0x3f931f){return function(_0x25c6c5){if(_0x25c6c5){var _0x523094=typeof _0x3f931f[_0x53dd('0x32')]===_0x53dd('0x33')&&typeof _0x3f931f['limit']===_0x53dd('0x33');var _0x56c6d9=_0x25c6c5[_0x53dd('0x34')];var _0xd77cdb=_0x523094?0x0:_0x3f931f[_0x53dd('0x32')];var _0x2084dd=_0x523094?_0x25c6c5[_0x53dd('0x34')]:_0x3f931f[_0x53dd('0x32')]+_0x3f931f['limit'];var _0x1f3df0;if(_0x2084dd>=_0x56c6d9){_0x2084dd=_0x56c6d9;_0x1f3df0=0xc8;}else{_0x1f3df0=0xce;}_0x3891d3[_0x53dd('0x31')](_0x1f3df0);return _0x3891d3[_0x53dd('0x35')](_0x53dd('0x36'),_0xd77cdb+'-'+_0x2084dd+'/'+_0x56c6d9)[_0x53dd('0x37')](_0x25c6c5);}return null;};}function patchUpdates(_0x12d308){return function(_0xa4a064){try{jsonpatch['apply'](_0xa4a064,_0x12d308,!![]);}catch(_0x594eb2){return BPromise[_0x53dd('0x38')](_0x594eb2);}return _0xa4a064[_0x53dd('0x39')]();};}function saveUpdates(_0x14b4a0,_0x195a64){return function(_0x52f374){if(_0x52f374){return _0x52f374['update'](_0x14b4a0)['then'](function(_0x420ecf){return _0x420ecf;});}return null;};}function removeEntity(_0x14208a,_0x5c69d8){return function(_0x5972eb){if(_0x5972eb){return _0x5972eb[_0x53dd('0x3a')]()[_0x53dd('0x26')](function(){var _0x1c99bc=_0x5972eb[_0x53dd('0x3b')]({'plain':!![]});var _0x3e84e6=_0x53dd('0x3c');return db['UserProfileResource'][_0x53dd('0x3a')]({'where':{'type':_0x3e84e6,'resourceId':_0x1c99bc['id']}})[_0x53dd('0x26')](function(){return _0x5972eb;});})['then'](function(){_0x14208a['status'](0xcc)[_0x53dd('0x3d')]();});}};}function handleEntityNotFound(_0x1f5829,_0x30e550){return function(_0x36a601){if(!_0x36a601){_0x1f5829[_0x53dd('0x30')](0x194);}return _0x36a601;};}function handleError(_0x431a44,_0x46a06c){_0x46a06c=_0x46a06c||0x1f4;return function(_0xf8d24d){logger['error'](_0xf8d24d[_0x53dd('0x3e')]);if(_0xf8d24d[_0x53dd('0x3f')]){delete _0xf8d24d[_0x53dd('0x3f')];}_0x431a44[_0x53dd('0x31')](_0x46a06c)[_0x53dd('0x40')](_0xf8d24d);};}exports[_0x53dd('0x41')]=function(_0x2abe0d,_0x56ec18){var _0xfeee8e={'include':[{'model':db[_0x53dd('0x42')],'as':_0x53dd('0x43')},{'model':db['MailServerOut'],'as':_0x53dd('0x44')},{'model':db[_0x53dd('0x45')],'as':_0x53dd('0x46')}]},_0x1e625b={},_0x443d38={'count':0x0,'rows':[]};var _0x351a91=_['map'](db[_0x53dd('0x47')][_0x53dd('0x48')],function(_0x2dab5b){return{'name':_0x2dab5b[_0x53dd('0x49')],'type':_0x2dab5b[_0x53dd('0x4a')][_0x53dd('0x4b')]};});_0x1e625b['model']=_[_0x53dd('0x4c')](_0x351a91,'name');_0x1e625b[_0x53dd('0x4d')]=_['keys'](_0x2abe0d[_0x53dd('0x4d')]);_0x1e625b[_0x53dd('0x4e')]=_['intersection'](_0x1e625b[_0x53dd('0x4f')],_0x1e625b[_0x53dd('0x4d')]);_0xfeee8e['attributes']=_[_0x53dd('0x50')](_0x1e625b[_0x53dd('0x4f')],qs[_0x53dd('0x51')](_0x2abe0d[_0x53dd('0x4d')][_0x53dd('0x51')]));_0xfeee8e[_0x53dd('0x52')]=_0xfeee8e['attributes'][_0x53dd('0x53')]?_0xfeee8e['attributes']:_0x1e625b[_0x53dd('0x4f')];if(!_0x2abe0d[_0x53dd('0x4d')][_0x53dd('0x54')](_0x53dd('0x55'))){_0xfeee8e[_0x53dd('0x56')]=qs[_0x53dd('0x56')](_0x2abe0d[_0x53dd('0x4d')][_0x53dd('0x56')]);_0xfeee8e['offset']=qs[_0x53dd('0x32')](_0x2abe0d['query']['offset']);}_0xfeee8e[_0x53dd('0x57')]=qs[_0x53dd('0x58')](_0x2abe0d['query']['sort']);_0xfeee8e[_0x53dd('0x59')]=qs[_0x53dd('0x4e')](_[_0x53dd('0x5a')](_0x2abe0d[_0x53dd('0x4d')],_0x1e625b[_0x53dd('0x4e')]),_0x351a91);if(_0x2abe0d[_0x53dd('0x4d')][_0x53dd('0x5b')]){_0xfeee8e['where']=_[_0x53dd('0x5c')](_0xfeee8e[_0x53dd('0x59')],{'$or':_[_0x53dd('0x4c')](_0x351a91,function(_0x3124dd){if(_0x3124dd[_0x53dd('0x4a')]!==_0x53dd('0x5d')){var _0xfb41ef={};_0xfb41ef[_0x3124dd['name']]={'$like':'%'+_0x2abe0d[_0x53dd('0x4d')]['filter']+'%'};return _0xfb41ef;}})});}_0xfeee8e=_[_0x53dd('0x5c')]({},_0xfeee8e,_0x2abe0d[_0x53dd('0x5e')]);var _0x48b186={'where':_0xfeee8e['where']};return db['MailAccount'][_0x53dd('0x34')](_0x48b186)['then'](function(_0x4c792b){_0x443d38[_0x53dd('0x34')]=_0x4c792b;if(_0x2abe0d[_0x53dd('0x4d')][_0x53dd('0x5f')]){_0xfeee8e[_0x53dd('0x60')]=[{'all':!![]}];}return db[_0x53dd('0x47')][_0x53dd('0x61')](_0xfeee8e);})[_0x53dd('0x26')](function(_0x3bde64){_0x443d38[_0x53dd('0x62')]=_0x3bde64;return _0x443d38;})[_0x53dd('0x26')](respondWithFilteredResult(_0x56ec18,_0xfeee8e))['catch'](handleError(_0x56ec18,null));};exports[_0x53dd('0x63')]=function(_0x481a8a,_0x3abc5e){var _0x580d9f={'raw':![],'where':{'id':_0x481a8a[_0x53dd('0x64')]['id']},'include':[{'model':db['MailServerIn'],'as':_0x53dd('0x43')},{'model':db[_0x53dd('0x65')],'as':_0x53dd('0x44')},{'model':db[_0x53dd('0x45')],'as':'mandatoryDispositionPause'}]},_0x2dbd26={};_0x2dbd26[_0x53dd('0x4f')]=_[_0x53dd('0x66')](db[_0x53dd('0x47')]['rawAttributes']);_0x2dbd26['query']=_[_0x53dd('0x66')](_0x481a8a[_0x53dd('0x4d')]);_0x2dbd26[_0x53dd('0x4e')]=_[_0x53dd('0x50')](_0x2dbd26[_0x53dd('0x4f')],_0x2dbd26[_0x53dd('0x4d')]);_0x580d9f[_0x53dd('0x52')]=_[_0x53dd('0x50')](_0x2dbd26[_0x53dd('0x4f')],qs[_0x53dd('0x51')](_0x481a8a[_0x53dd('0x4d')][_0x53dd('0x51')]));_0x580d9f[_0x53dd('0x52')]=_0x580d9f[_0x53dd('0x52')]['length']?_0x580d9f['attributes']:_0x2dbd26[_0x53dd('0x4f')];if(_0x481a8a[_0x53dd('0x4d')][_0x53dd('0x5f')]){_0x580d9f[_0x53dd('0x60')]=[{'all':!![]}];}_0x580d9f=_[_0x53dd('0x5c')]({},_0x580d9f,_0x481a8a[_0x53dd('0x5e')]);return db[_0x53dd('0x47')][_0x53dd('0x67')](_0x580d9f)[_0x53dd('0x26')](handleEntityNotFound(_0x3abc5e,null))[_0x53dd('0x26')](respondWithResult(_0x3abc5e,null))['catch'](handleError(_0x3abc5e,null));};exports[_0x53dd('0x68')]=function(_0x22c387,_0x45dda7){if(_0x22c387['body']['id']){delete _0x22c387[_0x53dd('0x69')]['id'];}return db['MailAccount'][_0x53dd('0x67')]({'where':{'id':_0x22c387[_0x53dd('0x64')]['id']},'include':[{'model':db[_0x53dd('0x42')],'as':_0x53dd('0x43')},{'model':db[_0x53dd('0x65')],'as':'Smtp'},{'model':db[_0x53dd('0x45')],'as':_0x53dd('0x46')}]})[_0x53dd('0x26')](handleEntityNotFound(_0x45dda7,null))[_0x53dd('0x26')](saveUpdates(_0x22c387[_0x53dd('0x69')],null))['then'](function(_0x499b41){if(_0x499b41&&_0x22c387[_0x53dd('0x69')][_0x53dd('0x43')]){return db[_0x53dd('0x42')][_0x53dd('0x68')](_0x22c387[_0x53dd('0x69')]['Imap'],{'where':{'MailAccountId':_0x499b41['id']}})['then'](function(){return _0x499b41;});}return _0x499b41;})[_0x53dd('0x26')](function(_0x4fea9e){if(_0x4fea9e&&_0x22c387[_0x53dd('0x69')][_0x53dd('0x44')]){return db[_0x53dd('0x65')]['update'](_0x22c387[_0x53dd('0x69')][_0x53dd('0x44')],{'where':{'MailAccountId':_0x4fea9e['id']}})['then'](function(){return _0x4fea9e;});}return _0x4fea9e;})[_0x53dd('0x26')](respondWithResult(_0x45dda7,null))[_0x53dd('0x6a')](handleError(_0x45dda7,null));};exports[_0x53dd('0x6b')]=function(_0x1fa64c,_0x4ac2b9){return db['MailAccount'][_0x53dd('0x6b')]()['then'](respondWithResult(_0x4ac2b9,null))[_0x53dd('0x6a')](handleError(_0x4ac2b9,null));};exports[_0x53dd('0x6c')]=function(_0x69e196,_0x51f33c,_0x49bde8){if(_0x69e196[_0x53dd('0x69')]['id']){delete _0x69e196[_0x53dd('0x69')]['id'];}return db[_0x53dd('0x47')][_0x53dd('0x67')]({'where':{'id':_0x69e196[_0x53dd('0x64')]['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x51f33c,null))[_0x53dd('0x26')](function(_0x1c0134){if(_0x1c0134){_0x69e196['body'][_0x53dd('0x6d')]=_0x1c0134['id'];return db['Disposition'][_0x53dd('0x6e')](_0x69e196[_0x53dd('0x69')]);}})['then'](respondWithResult(_0x51f33c,null))[_0x53dd('0x6a')](handleError(_0x51f33c,null));};exports['getDispositions']=function(_0x584cff,_0x3a4703,_0x357f40){var _0x2993db={'raw':![],'where':{}};var _0xf97635={};var _0xb58d78={'count':0x0,'rows':[]};return db['MailAccount'][_0x53dd('0x6f')]({'where':{'id':_0x584cff[_0x53dd('0x64')]['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x3a4703,null))[_0x53dd('0x26')](function(_0x367f91){if(_0x367f91){_0xf97635[_0x53dd('0x4f')]=_[_0x53dd('0x66')](db[_0x53dd('0x70')][_0x53dd('0x48')]);_0xf97635[_0x53dd('0x4d')]=_[_0x53dd('0x66')](_0x584cff[_0x53dd('0x4d')]);_0xf97635[_0x53dd('0x4e')]=_['intersection'](_0xf97635[_0x53dd('0x4f')],_0xf97635['query']);_0x2993db[_0x53dd('0x52')]=_[_0x53dd('0x50')](_0xf97635[_0x53dd('0x4f')],qs[_0x53dd('0x51')](_0x584cff[_0x53dd('0x4d')][_0x53dd('0x51')]));_0x2993db[_0x53dd('0x52')]=_0x2993db['attributes'][_0x53dd('0x53')]?_0x2993db[_0x53dd('0x52')]:_0xf97635['model'];if(!_0x584cff[_0x53dd('0x4d')][_0x53dd('0x54')](_0x53dd('0x55'))){_0x2993db[_0x53dd('0x56')]=qs[_0x53dd('0x56')](_0x584cff[_0x53dd('0x4d')][_0x53dd('0x56')]);_0x2993db[_0x53dd('0x32')]=qs[_0x53dd('0x32')](_0x584cff[_0x53dd('0x4d')][_0x53dd('0x32')]);}_0x2993db[_0x53dd('0x57')]=qs[_0x53dd('0x58')](_0x584cff[_0x53dd('0x4d')][_0x53dd('0x58')]);_0x2993db['where']=qs[_0x53dd('0x4e')](_['pick'](_0x584cff[_0x53dd('0x4d')],_0xf97635[_0x53dd('0x4e')]));_0x2993db['where']['MailAccountId']=_0x367f91['id'];if(_0x584cff[_0x53dd('0x4d')][_0x53dd('0x5b')]){_0x2993db[_0x53dd('0x59')]=_['merge'](_0x2993db[_0x53dd('0x59')],{'$or':_[_0x53dd('0x4c')](_0x2993db[_0x53dd('0x52')],function(_0x9f76a2){var _0x438918={};_0x438918[_0x9f76a2]={'$like':'%'+_0x584cff['query']['filter']+'%'};return _0x438918;})});}_0x2993db=_[_0x53dd('0x5c')]({},_0x2993db,_0x584cff['options']);return db[_0x53dd('0x70')][_0x53dd('0x34')]({'where':_0x2993db['where']})[_0x53dd('0x26')](function(_0x3dad78){_0xb58d78[_0x53dd('0x34')]=_0x3dad78;if(_0x584cff['query'][_0x53dd('0x5f')]){_0x2993db[_0x53dd('0x60')]=[{'all':!![]}];}return db[_0x53dd('0x70')]['findAll'](_0x2993db);})[_0x53dd('0x26')](function(_0x2c68a9){_0xb58d78[_0x53dd('0x62')]=_0x2c68a9;return _0xb58d78;});}})['then'](respondWithFilteredResult(_0x3a4703,_0x2993db))[_0x53dd('0x6a')](handleError(_0x3a4703,null));};exports[_0x53dd('0x71')]=function(_0x5241cc,_0x3081b6,_0x51351c){return db[_0x53dd('0x47')][_0x53dd('0x67')]({'where':{'id':_0x5241cc['params']['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x3081b6,null))[_0x53dd('0x26')](function(_0x1d8d56){if(_0x1d8d56){return _0x1d8d56[_0x53dd('0x71')](_0x5241cc[_0x53dd('0x4d')][_0x53dd('0x72')]);}})['then'](respondWithStatusCode(_0x3081b6,null))[_0x53dd('0x6a')](handleError(_0x3081b6,null));};exports['addAnswer']=function(_0x93c280,_0x14d90d,_0x97dcd3){if(_0x93c280[_0x53dd('0x69')]['id']){delete _0x93c280[_0x53dd('0x69')]['id'];}return db[_0x53dd('0x47')][_0x53dd('0x67')]({'where':{'id':_0x93c280[_0x53dd('0x64')]['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x14d90d,null))[_0x53dd('0x26')](function(_0x2a0b96){if(_0x2a0b96){_0x93c280[_0x53dd('0x69')]['MailAccountId']=_0x2a0b96['id'];return db[_0x53dd('0x73')]['create'](_0x93c280[_0x53dd('0x69')]);}})[_0x53dd('0x26')](respondWithResult(_0x14d90d,null))['catch'](handleError(_0x14d90d,null));};exports[_0x53dd('0x74')]=function(_0x5dec7a,_0x2e0016,_0x2e1a52){var _0x34d176={'raw':![],'where':{}};var _0x164cae={};var _0x28c35b={'count':0x0,'rows':[]};return db[_0x53dd('0x47')][_0x53dd('0x6f')]({'where':{'id':_0x5dec7a[_0x53dd('0x64')]['id']}})['then'](handleEntityNotFound(_0x2e0016,null))[_0x53dd('0x26')](function(_0x46ba84){if(_0x46ba84){_0x164cae[_0x53dd('0x4f')]=_[_0x53dd('0x66')](db[_0x53dd('0x73')]['rawAttributes']);_0x164cae[_0x53dd('0x4d')]=_[_0x53dd('0x66')](_0x5dec7a[_0x53dd('0x4d')]);_0x164cae[_0x53dd('0x4e')]=_[_0x53dd('0x50')](_0x164cae[_0x53dd('0x4f')],_0x164cae[_0x53dd('0x4d')]);_0x34d176[_0x53dd('0x52')]=_[_0x53dd('0x50')](_0x164cae[_0x53dd('0x4f')],qs[_0x53dd('0x51')](_0x5dec7a['query'][_0x53dd('0x51')]));_0x34d176[_0x53dd('0x52')]=_0x34d176['attributes'][_0x53dd('0x53')]?_0x34d176[_0x53dd('0x52')]:_0x164cae[_0x53dd('0x4f')];if(!_0x5dec7a[_0x53dd('0x4d')][_0x53dd('0x54')](_0x53dd('0x55'))){_0x34d176[_0x53dd('0x56')]=qs[_0x53dd('0x56')](_0x5dec7a[_0x53dd('0x4d')]['limit']);_0x34d176['offset']=qs[_0x53dd('0x32')](_0x5dec7a['query'][_0x53dd('0x32')]);}_0x34d176[_0x53dd('0x57')]=qs[_0x53dd('0x58')](_0x5dec7a[_0x53dd('0x4d')]['sort']);_0x34d176[_0x53dd('0x59')]=qs[_0x53dd('0x4e')](_['pick'](_0x5dec7a[_0x53dd('0x4d')],_0x164cae['filters']));_0x34d176['where'][_0x53dd('0x6d')]=_0x46ba84['id'];if(_0x5dec7a[_0x53dd('0x4d')]['filter']){_0x34d176[_0x53dd('0x59')]=_[_0x53dd('0x5c')](_0x34d176[_0x53dd('0x59')],{'$or':_[_0x53dd('0x4c')](_0x34d176[_0x53dd('0x52')],function(_0x5db2b5){var _0xc38b48={};_0xc38b48[_0x5db2b5]={'$like':'%'+_0x5dec7a[_0x53dd('0x4d')]['filter']+'%'};return _0xc38b48;})});}_0x34d176=_[_0x53dd('0x5c')]({},_0x34d176,_0x5dec7a[_0x53dd('0x5e')]);return db['CannedAnswer']['count']({'where':_0x34d176[_0x53dd('0x59')]})['then'](function(_0x3dee57){_0x28c35b[_0x53dd('0x34')]=_0x3dee57;if(_0x5dec7a[_0x53dd('0x4d')][_0x53dd('0x5f')]){_0x34d176[_0x53dd('0x60')]=[{'all':!![]}];}return db[_0x53dd('0x73')][_0x53dd('0x61')](_0x34d176);})[_0x53dd('0x26')](function(_0x40e24d){_0x28c35b[_0x53dd('0x62')]=_0x40e24d;return _0x28c35b;});}})[_0x53dd('0x26')](respondWithFilteredResult(_0x2e0016,_0x34d176))[_0x53dd('0x6a')](handleError(_0x2e0016,null));};exports[_0x53dd('0x75')]=function(_0xd660e1,_0x3b49c0,_0x209aa9){return db[_0x53dd('0x47')][_0x53dd('0x67')]({'where':{'id':_0xd660e1[_0x53dd('0x64')]['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x3b49c0,null))['then'](function(_0x361178){if(_0x361178){return _0x361178[_0x53dd('0x75')](_0xd660e1[_0x53dd('0x4d')][_0x53dd('0x72')]);}})[_0x53dd('0x26')](respondWithStatusCode(_0x3b49c0,null))[_0x53dd('0x6a')](handleError(_0x3b49c0,null));};exports[_0x53dd('0x6e')]=function(_0x1da8c7,_0x537813){var _0x4d129d={'name':_0x1da8c7['body'][_0x53dd('0x3f')],'key':_0x1da8c7[_0x53dd('0x69')][_0x53dd('0x4b')],'email':_0x1da8c7[_0x53dd('0x69')][_0x53dd('0x76')],'ListId':_0x1da8c7['body'][_0x53dd('0x77')],'active':!_[_0x53dd('0x78')](_0x1da8c7[_0x53dd('0x69')][_0x53dd('0x79')])?_0x1da8c7[_0x53dd('0x69')][_0x53dd('0x79')]:!![],'description':_0x1da8c7[_0x53dd('0x69')]['description']||null,'Imap':{},'Smtp':{}};if(_[_0x53dd('0x78')](_0x1da8c7['body'][_0x53dd('0x7a')])){if(_0x1da8c7['body'][_0x53dd('0x7b')]){_0x4d129d['Imap'][_0x53dd('0x7c')]=_0x4d129d[_0x53dd('0x44')][_0x53dd('0x7c')]=_0x1da8c7['body'][_0x53dd('0x7d')];_0x4d129d[_0x53dd('0x43')][_0x53dd('0x7e')]=_0x4d129d[_0x53dd('0x44')][_0x53dd('0x7f')]=_0x1da8c7[_0x53dd('0x69')][_0x53dd('0x80')];}else{_0x4d129d['Imap'][_0x53dd('0x81')]=_0x4d129d[_0x53dd('0x44')][_0x53dd('0x81')]=![];}_0x4d129d['Imap'][_0x53dd('0x82')]=_0x1da8c7[_0x53dd('0x69')][_0x53dd('0x43')][_0x53dd('0x82')];_0x4d129d[_0x53dd('0x43')][_0x53dd('0x83')]=_0x1da8c7['body'][_0x53dd('0x43')][_0x53dd('0x83')];_0x4d129d[_0x53dd('0x44')][_0x53dd('0x82')]=_0x1da8c7['body'][_0x53dd('0x44')]['host'];_0x4d129d[_0x53dd('0x44')][_0x53dd('0x83')]=_0x1da8c7[_0x53dd('0x69')][_0x53dd('0x44')][_0x53dd('0x83')];}else{_0x4d129d[_0x53dd('0x43')][_0x53dd('0x84')]=_0x4d129d[_0x53dd('0x44')][_0x53dd('0x84')]=_0x1da8c7[_0x53dd('0x69')][_0x53dd('0x7a')];_0x4d129d[_0x53dd('0x43')][_0x53dd('0x7c')]=_0x4d129d[_0x53dd('0x44')]['user']=_0x1da8c7['body'][_0x53dd('0x7d')];_0x4d129d[_0x53dd('0x43')][_0x53dd('0x7e')]=_0x4d129d[_0x53dd('0x44')]['pass']=_0x1da8c7[_0x53dd('0x69')][_0x53dd('0x80')];}return db[_0x53dd('0x47')][_0x53dd('0x6e')](_0x4d129d,{'include':[{'model':db[_0x53dd('0x65')],'as':_0x53dd('0x44')},{'model':db['MailServerIn'],'as':_0x53dd('0x43')}]})[_0x53dd('0x26')](function(_0x3e9f68){var _0x35c041=_0x1da8c7[_0x53dd('0x7c')][_0x53dd('0x3b')]({'plain':!![]});if(!_0x35c041)throw new Error(_0x53dd('0x85'));if(_0x35c041[_0x53dd('0x86')]===_0x53dd('0x7c')){var _0x1814f2=_0x3e9f68['get']({'plain':!![]});return db[_0x53dd('0x87')][_0x53dd('0x67')]({'where':{'name':_0x53dd('0x3c'),'userProfileId':_0x35c041[_0x53dd('0x88')]},'raw':!![]})[_0x53dd('0x26')](function(_0x171ad4){if(_0x171ad4&&_0x171ad4[_0x53dd('0x89')]===0x0){return db[_0x53dd('0x8a')][_0x53dd('0x6e')]({'name':_0x1814f2[_0x53dd('0x3f')],'resourceId':_0x1814f2['id'],'type':_0x171ad4['name'],'sectionId':_0x171ad4['id']},{})[_0x53dd('0x26')](function(){return _0x3e9f68;});}else{return _0x3e9f68;}})[_0x53dd('0x6a')](function(_0x21dc8d){logger[_0x53dd('0x2d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x21dc8d);throw _0x21dc8d;});}return _0x3e9f68;})[_0x53dd('0x26')](respondWithResult(_0x537813,0xc9))[_0x53dd('0x6a')](handleError(_0x537813,null));};exports[_0x53dd('0x8b')]=function(_0x3f550c,_0x417568,_0x204643){return db[_0x53dd('0x47')]['findOne']({'where':{'id':_0x3f550c[_0x53dd('0x64')]['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x417568,null))[_0x53dd('0x26')](function(_0x918bfd){if(_0x918bfd){return _0x918bfd[_0x53dd('0x8b')]();}return null;})['then'](respondWithResult(_0x417568,null))['catch'](handleError(_0x417568,null));};exports[_0x53dd('0x8c')]=function(_0x394cac,_0x2c5d82,_0x373169){if(_0x394cac[_0x53dd('0x69')]['id']){delete _0x394cac[_0x53dd('0x69')]['id'];}return db[_0x53dd('0x47')][_0x53dd('0x67')]({'where':{'id':_0x394cac[_0x53dd('0x64')]['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x2c5d82,null))[_0x53dd('0x26')](function(_0x131fc7){if(_0x131fc7){_0x394cac['body']['MailAccountId']=_0x131fc7['id'];return db[_0x53dd('0x42')][_0x53dd('0x6e')](_0x394cac[_0x53dd('0x69')]);}})['then'](respondWithResult(_0x2c5d82,null))[_0x53dd('0x6a')](handleError(_0x2c5d82,null));};exports[_0x53dd('0x8d')]=function(_0x3b6fa7,_0x374cbe,_0x5891d7){return db[_0x53dd('0x47')][_0x53dd('0x6f')]({'where':{'id':_0x3b6fa7[_0x53dd('0x64')]['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x374cbe,null))[_0x53dd('0x26')](function(_0x3250ec){if(_0x3250ec){return _0x3250ec['setImap'](null);}return null;})[_0x53dd('0x26')](respondWithStatusCode(_0x374cbe,null))['catch'](handleError(_0x374cbe,null));};exports[_0x53dd('0x8e')]=function(_0x4dbda4,_0x44cc44,_0x16e282){return db[_0x53dd('0x47')][_0x53dd('0x6f')]({'where':{'id':_0x4dbda4[_0x53dd('0x64')]['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x44cc44,null))[_0x53dd('0x26')](function(_0x455cdb){if(_0x455cdb){return _0x455cdb[_0x53dd('0x8e')]();}return null;})[_0x53dd('0x26')](respondWithResult(_0x44cc44,null))[_0x53dd('0x6a')](handleError(_0x44cc44,null));};exports['addSmtp']=function(_0x59261b,_0x34ec4d,_0x94fb05){if(_0x59261b['body']['id']){delete _0x59261b[_0x53dd('0x69')]['id'];}return db[_0x53dd('0x47')][_0x53dd('0x67')]({'where':{'id':_0x59261b[_0x53dd('0x64')]['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x34ec4d,null))['then'](function(_0x511931){if(_0x511931){_0x59261b[_0x53dd('0x69')][_0x53dd('0x6d')]=_0x511931['id'];return db['MailServerOut']['create'](_0x59261b[_0x53dd('0x69')]);}})['then'](respondWithResult(_0x34ec4d,null))[_0x53dd('0x6a')](handleError(_0x34ec4d,null));};exports[_0x53dd('0x8f')]=function(_0xf2c81d,_0x4de003,_0x26c875){return db['MailAccount'][_0x53dd('0x6f')]({'where':{'id':_0xf2c81d[_0x53dd('0x64')]['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x4de003,null))['then'](function(_0x53faba){if(_0x53faba){return _0x53faba[_0x53dd('0x90')](null);}return null;})[_0x53dd('0x26')](respondWithStatusCode(_0x4de003,null))['catch'](handleError(_0x4de003,null));};exports[_0x53dd('0x91')]=function(_0x303f64,_0x31d0b8,_0x2f3af9){return db[_0x53dd('0x92')][_0x53dd('0x67')]({'where':{'id':_0x303f64[_0x53dd('0x64')]['id']}})['then'](handleEntityNotFound(_0x31d0b8,null))[_0x53dd('0x26')](function(_0x529fdb){if(_0x529fdb){return _0x529fdb[_0x53dd('0x91')](_0x303f64[_0x53dd('0x69')][_0x53dd('0x72')],_[_0x53dd('0x93')](_0x303f64[_0x53dd('0x69')],[_0x53dd('0x72'),'id'])||{});}})[_0x53dd('0x26')](respondWithResult(_0x31d0b8,null))[_0x53dd('0x6a')](handleError(_0x31d0b8,null));};exports[_0x53dd('0x94')]=function(_0x59c98c,_0x124eb6,_0xb08f08){var _0x1f46ad={'raw':![],'where':{}};var _0x5b0609={};var _0x22a8db={'count':0x0,'rows':[]};return db[_0x53dd('0x47')][_0x53dd('0x6f')]({'where':{'id':_0x59c98c[_0x53dd('0x64')]['id']}})['then'](handleEntityNotFound(_0x124eb6,null))['then'](function(_0x3ef343){if(_0x3ef343){_0x5b0609[_0x53dd('0x4f')]=_[_0x53dd('0x66')](db[_0x53dd('0x92')]['rawAttributes']);_0x5b0609[_0x53dd('0x4d')]=_[_0x53dd('0x66')](_0x59c98c[_0x53dd('0x4d')]);_0x5b0609[_0x53dd('0x4e')]=_[_0x53dd('0x50')](_0x5b0609[_0x53dd('0x4f')],_0x5b0609['query']);_0x1f46ad[_0x53dd('0x52')]=_[_0x53dd('0x50')](_0x5b0609[_0x53dd('0x4f')],qs[_0x53dd('0x51')](_0x59c98c[_0x53dd('0x4d')][_0x53dd('0x51')]));_0x1f46ad[_0x53dd('0x52')]=_0x1f46ad[_0x53dd('0x52')]['length']?_0x1f46ad['attributes']:_0x5b0609[_0x53dd('0x4f')];if(!_0x59c98c['query']['hasOwnProperty'](_0x53dd('0x55'))){_0x1f46ad[_0x53dd('0x56')]=qs['limit'](_0x59c98c[_0x53dd('0x4d')][_0x53dd('0x56')]);_0x1f46ad[_0x53dd('0x32')]=qs[_0x53dd('0x32')](_0x59c98c[_0x53dd('0x4d')]['offset']);}_0x1f46ad['order']=qs['sort'](_0x59c98c['query'][_0x53dd('0x58')]);_0x1f46ad[_0x53dd('0x59')]=qs['filters'](_[_0x53dd('0x5a')](_0x59c98c['query'],_0x5b0609[_0x53dd('0x4e')]));_0x1f46ad['where'][_0x53dd('0x6d')]=_0x3ef343['id'];if(_0x59c98c['query']['filter']){_0x1f46ad[_0x53dd('0x59')]=_[_0x53dd('0x5c')](_0x1f46ad[_0x53dd('0x59')],{'$or':_['map'](_0x1f46ad[_0x53dd('0x52')],function(_0x40a217){var _0x536f12={};_0x536f12[_0x40a217]={'$like':'%'+_0x59c98c[_0x53dd('0x4d')][_0x53dd('0x5b')]+'%'};return _0x536f12;})});}_0x1f46ad=_[_0x53dd('0x5c')]({},_0x1f46ad,_0x59c98c['options']);return db['MailInteraction'][_0x53dd('0x34')]({'where':_0x1f46ad[_0x53dd('0x59')]})[_0x53dd('0x26')](function(_0x4e4e28){_0x22a8db[_0x53dd('0x34')]=_0x4e4e28;if(_0x59c98c['query'][_0x53dd('0x5f')]){_0x1f46ad[_0x53dd('0x60')]=[{'model':db[_0x53dd('0x95')],'as':_0x53dd('0x96'),'required':![]},{'model':db[_0x53dd('0x97')],'as':_0x53dd('0x98'),'attributes':[_0x53dd('0x3f'),'fullname',_0x53dd('0x99')],'required':![]},{'model':db[_0x53dd('0x9a')],'as':_0x53dd('0x9b'),'attributes':['id',_0x53dd('0x3f'),_0x53dd('0x9c')],'where':_0x59c98c['query'][_0x53dd('0x9d')]?{'id':_0x59c98c['query'][_0x53dd('0x9d')]}:undefined,'required':_0x59c98c[_0x53dd('0x4d')][_0x53dd('0x9d')]?!![]:![]}];}return db[_0x53dd('0x92')][_0x53dd('0x61')](_0x1f46ad);})[_0x53dd('0x26')](function(_0x6fc8e4){_0x22a8db[_0x53dd('0x62')]=_0x6fc8e4;return _0x22a8db;});}})[_0x53dd('0x26')](respondWithFilteredResult(_0x124eb6,_0x1f46ad))[_0x53dd('0x6a')](handleError(_0x124eb6,null));};exports[_0x53dd('0x9e')]=function(_0x177ce5,_0x4401ee,_0x18a3a9){return db[_0x53dd('0x47')][_0x53dd('0x6f')]({'where':{'id':_0x177ce5['params']['id']}})['then'](handleEntityNotFound(_0x4401ee,null))['then'](function(_0x2fc29){if(_0x2fc29){return db[_0x53dd('0x9f')][_0x53dd('0xa0')](function(_0x3b2103){return db[_0x53dd('0xa1')][_0x53dd('0x3a')]({'where':{'MailAccountId':_0x177ce5[_0x53dd('0x64')]['id']},'transaction':_0x3b2103})[_0x53dd('0x26')](function(_0x4d559c){var _0x4ed85c=_[_0x53dd('0x4c')](_0x177ce5['body'],function(_0x335fb6){_0x335fb6[_0x53dd('0x6d')]=_0x177ce5[_0x53dd('0x64')]['id'];return _0x335fb6;});return db[_0x53dd('0xa1')]['bulkCreate'](_0x4ed85c,{'transaction':_0x3b2103});});})['then'](function(){return db[_0x53dd('0xa1')]['findAndCountAll']({'where':{'MailAccountId':_0x177ce5[_0x53dd('0x64')]['id']},'order':'priority'});});}})[_0x53dd('0x26')](respondWithResult(_0x4401ee,null))[_0x53dd('0x6a')](handleError(_0x4401ee,null));};exports[_0x53dd('0xa2')]=function(_0x253d7e,_0x521c43,_0x255d5c){var _0x4da19b={};var _0x4bab61={};var _0x5245f5;var _0x31b826;return db[_0x53dd('0x47')]['findOne']({'where':{'id':_0x253d7e[_0x53dd('0x64')]['id']}})['then'](handleEntityNotFound(_0x521c43,null))[_0x53dd('0x26')](function(_0x2ac6ce){if(_0x2ac6ce){_0x5245f5=_0x2ac6ce;_0x4bab61[_0x53dd('0x4f')]=_['keys'](db['MailApplication'][_0x53dd('0x48')]);_0x4bab61[_0x53dd('0x4d')]=_[_0x53dd('0x66')](_0x253d7e['query']);_0x4bab61[_0x53dd('0x4e')]=_[_0x53dd('0x50')](_0x4bab61[_0x53dd('0x4f')],_0x4bab61[_0x53dd('0x4d')]);_0x4da19b[_0x53dd('0x52')]=_['intersection'](_0x4bab61[_0x53dd('0x4f')],qs['fields'](_0x253d7e[_0x53dd('0x4d')][_0x53dd('0x51')]));_0x4da19b[_0x53dd('0x52')]=_0x4da19b[_0x53dd('0x52')][_0x53dd('0x53')]?_0x4da19b[_0x53dd('0x52')]:_0x4bab61[_0x53dd('0x4f')];_0x4da19b[_0x53dd('0x57')]=qs[_0x53dd('0x58')](_0x253d7e['query'][_0x53dd('0x58')]);_0x4da19b[_0x53dd('0x59')]=qs[_0x53dd('0x4e')](_[_0x53dd('0x5a')](_0x253d7e[_0x53dd('0x4d')],_0x4bab61[_0x53dd('0x4e')]));if(_0x253d7e[_0x53dd('0x4d')]['filter']){_0x4da19b['where']=_[_0x53dd('0x5c')](_0x4da19b[_0x53dd('0x59')],{'$or':_[_0x53dd('0x4c')](_0x4da19b[_0x53dd('0x52')],function(_0xc34ca7){var _0x3126c9={};_0x3126c9[_0xc34ca7]={'$like':'%'+_0x253d7e['query'][_0x53dd('0x5b')]+'%'};return _0x3126c9;})});}_0x4da19b=_['merge']({},_0x4da19b,_0x253d7e[_0x53dd('0x5e')]);return _0x5245f5[_0x53dd('0xa2')](_0x4da19b);}})[_0x53dd('0x26')](function(_0x3beb55){if(_0x3beb55){_0x31b826=_0x3beb55[_0x53dd('0x53')];if(!_0x253d7e[_0x53dd('0x4d')][_0x53dd('0x54')](_0x53dd('0x55'))){_0x4da19b['limit']=qs[_0x53dd('0x56')](_0x253d7e[_0x53dd('0x4d')][_0x53dd('0x56')]);_0x4da19b[_0x53dd('0x32')]=qs[_0x53dd('0x32')](_0x253d7e[_0x53dd('0x4d')][_0x53dd('0x32')]);}return _0x5245f5[_0x53dd('0xa2')](_0x4da19b);}})[_0x53dd('0x26')](function(_0x28738){if(_0x28738){return _0x28738?{'count':_0x31b826,'rows':_0x28738}:null;}})[_0x53dd('0x26')](respondWithResult(_0x521c43,null))[_0x53dd('0x6a')](handleError(_0x521c43,null));};exports[_0x53dd('0xa3')]=function(_0x1a36f1,_0x2ea229,_0x28b54e){var _0x1c408d={'raw':!![],'where':{}};var _0x1200c2={};var _0x47db84={'count':0x0,'rows':[]};return db['MailAccount'][_0x53dd('0x6f')]({'where':{'id':_0x1a36f1[_0x53dd('0x64')]['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x2ea229,null))[_0x53dd('0x26')](function(_0xe37c16){if(_0xe37c16){_0x1200c2[_0x53dd('0x4f')]=_['keys'](db[_0x53dd('0xa4')]['rawAttributes']);_0x1200c2[_0x53dd('0x4d')]=_[_0x53dd('0x66')](_0x1a36f1[_0x53dd('0x4d')]);_0x1200c2['filters']=_['intersection'](_0x1200c2[_0x53dd('0x4f')],_0x1200c2[_0x53dd('0x4d')]);_0x1c408d[_0x53dd('0x52')]=_[_0x53dd('0x50')](_0x1200c2[_0x53dd('0x4f')],qs[_0x53dd('0x51')](_0x1a36f1[_0x53dd('0x4d')][_0x53dd('0x51')]));_0x1c408d[_0x53dd('0x52')]=_0x1c408d[_0x53dd('0x52')][_0x53dd('0x53')]?_0x1c408d[_0x53dd('0x52')]:_0x1200c2[_0x53dd('0x4f')];if(!_0x1a36f1[_0x53dd('0x4d')]['hasOwnProperty'](_0x53dd('0x55'))){_0x1c408d[_0x53dd('0x56')]=qs['limit'](_0x1a36f1['query'][_0x53dd('0x56')]);_0x1c408d[_0x53dd('0x32')]=qs['offset'](_0x1a36f1[_0x53dd('0x4d')][_0x53dd('0x32')]);}_0x1c408d['order']=qs[_0x53dd('0x58')](_0x1a36f1[_0x53dd('0x4d')][_0x53dd('0x58')]);_0x1c408d['where']=qs[_0x53dd('0x4e')](_['pick'](_0x1a36f1[_0x53dd('0x4d')],_0x1200c2[_0x53dd('0x4e')]));_0x1c408d[_0x53dd('0x59')][_0x53dd('0x6d')]=_0xe37c16['id'];if(_0x1a36f1[_0x53dd('0x4d')][_0x53dd('0x5b')]){_0x1c408d[_0x53dd('0x59')]=_[_0x53dd('0x5c')](_0x1c408d['where'],{'$or':_[_0x53dd('0x4c')](_0x1c408d[_0x53dd('0x52')],function(_0x4990a5){var _0x473d57={};_0x473d57[_0x4990a5]={'$like':'%'+_0x1a36f1['query']['filter']+'%'};return _0x473d57;})});}if(_0x1a36f1[_0x53dd('0x4d')][_0x53dd('0xa5')]){var _0x49365f=_0x1a36f1[_0x53dd('0x4d')][_0x53dd('0xa5')][_0x53dd('0xa6')](',');var _0x86f4dc={};_0x86f4dc[_0x49365f[0x0]]={'$gte':moment(_0x49365f[0x1])[_0x53dd('0xa7')]('YYYY-MM-DD\x20HH:mm:ss')};_0x1c408d['where']=_[_0x53dd('0x5c')](_0x1c408d[_0x53dd('0x59')],_0x86f4dc);}_0x1c408d=_[_0x53dd('0x5c')]({},_0x1c408d,_0x1a36f1[_0x53dd('0x5e')]);return db[_0x53dd('0xa4')][_0x53dd('0x34')]({'where':_0x1c408d[_0x53dd('0x59')]})[_0x53dd('0x26')](function(_0x57fbc1){_0x47db84['count']=_0x57fbc1;if(_0x1a36f1['query'][_0x53dd('0x5f')]){_0x1c408d[_0x53dd('0x60')]=[{'all':!![]}];}return db[_0x53dd('0xa4')][_0x53dd('0x61')](_0x1c408d);})[_0x53dd('0x26')](function(_0x182afe){if(_0x1a36f1[_0x53dd('0x4d')][_0x53dd('0xa8')]===_0x53dd('0xa9')){for(var _0x469b01=0x0;_0x469b01<_0x182afe[_0x53dd('0x53')];_0x469b01++){_0x182afe[_0x469b01][_0x53dd('0x69')]=juice(_0x182afe[_0x469b01][_0x53dd('0x69')]);}}_0x47db84[_0x53dd('0x62')]=_0x182afe;return _0x47db84;});}})[_0x53dd('0x26')](respondWithFilteredResult(_0x2ea229,_0x1c408d))[_0x53dd('0x6a')](handleError(_0x2ea229,null));};exports[_0x53dd('0x40')]=function(_0x3b3b77,_0x406281,_0x529114){var _0x56f2a0,_0x22a587={},_0x530247;if(_0x3b3b77[_0x53dd('0x69')]['to']){_0x530247=_0x3b3b77[_0x53dd('0x69')]['to'][_0x53dd('0xa6')](',')[0x0];}return db[_0x53dd('0x47')][_0x53dd('0x67')]({'where':{'id':_0x3b3b77[_0x53dd('0x64')]['id']},'include':[{'model':db[_0x53dd('0xaa')],'as':_0x53dd('0xab'),'include':[{'model':db['CmContact'],'as':_0x53dd('0xac'),'where':{'email':_0x530247},'limit':0x1,'order':[[_0x53dd('0xad'),_0x53dd('0xae')]]}]},{'model':db['MailServerOut'],'as':'Smtp','raw':!![]}]})[_0x53dd('0x26')](handleEntityNotFound(_0x406281,null))[_0x53dd('0x26')](function(_0x12e15f){if(_0x12e15f){_0x56f2a0=_0x12e15f;if(_0x12e15f[_0x53dd('0x44')]){if(_['isNil'](_0x3b3b77[_0x53dd('0x69')][_0x53dd('0xaf')])){_0x3b3b77[_0x53dd('0x69')]['from']=util[_0x53dd('0xa7')](_0x53dd('0xb0'),_0x12e15f[_0x53dd('0x3f')],_0x12e15f[_0x53dd('0x76')]||_0x12e15f['Smtp'][_0x53dd('0x7c')]);}if(_0x3b3b77[_0x53dd('0x69')][_0x53dd('0xb1')]&&_0x3b3b77[_0x53dd('0x69')][_0x53dd('0xb1')][_0x53dd('0x53')]){for(var _0x2ce64e=0x0;_0x2ce64e<_0x3b3b77[_0x53dd('0x69')]['attachments'][_0x53dd('0x53')];_0x2ce64e+=0x1){_0x3b3b77['body'][_0x53dd('0xb1')][_0x2ce64e]={'filename':_0x3b3b77[_0x53dd('0x69')][_0x53dd('0xb1')][_0x2ce64e][_0x53dd('0x3f')],'path':path['join'](config['root'],'server/files/attachments',_0x3b3b77[_0x53dd('0x69')]['attachments'][_0x2ce64e][_0x53dd('0xb2')])};}}var _0x184a2f={'tls':{'rejectUnauthorized':![]}};if(_[_0x53dd('0x78')](_0x12e15f['Smtp']['service'])){if(_0x12e15f[_0x53dd('0x44')][_0x53dd('0x81')]){_0x184a2f[_0x53dd('0xb3')]={'user':_0x12e15f['Smtp']['user'],'pass':_0x12e15f[_0x53dd('0x44')][_0x53dd('0x7f')]};}_0x184a2f[_0x53dd('0x82')]=_0x12e15f[_0x53dd('0x44')][_0x53dd('0x82')];_0x184a2f[_0x53dd('0x83')]=_0x12e15f[_0x53dd('0x44')][_0x53dd('0x83')];_0x184a2f[_0x53dd('0xb4')]=_0x12e15f[_0x53dd('0x44')][_0x53dd('0xb4')];}else{_0x184a2f[_0x53dd('0x84')]=_0x12e15f['Smtp'][_0x53dd('0x84')];_0x184a2f['auth']={'user':_0x12e15f[_0x53dd('0x44')]['user'],'pass':_0x12e15f[_0x53dd('0x44')][_0x53dd('0x7f')]};}return respondWithRpcPromise(_0x53dd('0xb5'),_0x53dd('0xb6'),{'account':_0x184a2f,'message':_0x3b3b77[_0x53dd('0x69')]});}else{throw new Error(_0x53dd('0xb7'));}}})[_0x53dd('0x26')](function(_0x11d34d){if(_0x11d34d){_0x22a587=_0x11d34d;if(_0x56f2a0[_0x53dd('0xab')]){if(_0x56f2a0[_0x53dd('0xab')]['Contacts']['length']){return _0x56f2a0[_0x53dd('0xab')][_0x53dd('0xac')][0x0];}else{return db[_0x53dd('0x95')][_0x53dd('0x6e')](_[_0x53dd('0x1c')](_0x3b3b77['body'],{'firstName':_0x3b3b77[_0x53dd('0x69')]['to'],'email':_0x3b3b77[_0x53dd('0x69')]['to'],'phone':_0x3b3b77['body']['to'],'ListId':_0x56f2a0[_0x53dd('0x77')]}));}}else{throw new Error('List\x20not\x20found');}}})[_0x53dd('0x26')](function(_0x1fb92f){if(_0x1fb92f){var _0x2f551d={'UserId':_0x3b3b77[_0x53dd('0x7c')]['id'],'ContactId':_0x1fb92f['id'],'MailAccountId':_0x56f2a0['id'],'inReplyTo':_0x22a587[_0x53dd('0xb8')],'to':_0x3b3b77[_0x53dd('0x69')][_0x53dd('0xaf')],'cc':_0x3b3b77[_0x53dd('0x69')]['cc'],'subject':_0x3b3b77[_0x53dd('0x69')][_0x53dd('0xb9')],'attach':_0x3b3b77[_0x53dd('0x69')][_0x53dd('0xba')],'firstMsgDirection':_0x53dd('0xbb'),'lastMsgAt':moment()[_0x53dd('0xa7')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':_0x53dd('0xbb'),'Messages':[_[_0x53dd('0x5c')](_0x3b3b77[_0x53dd('0x69')],{'messageId':_0x22a587[_0x53dd('0xb8')],'sentAt':moment()[_0x53dd('0xa7')](_0x53dd('0xbc')),'read':!![],'MailAccountId':_0x56f2a0['id'],'UserId':_0x3b3b77[_0x53dd('0x7c')]['id'],'ContactId':_0x1fb92f['id']})]};if(_0x3b3b77['body'][_0x53dd('0xbd')]){_0x2f551d=_['merge'](_0x2f551d,_0x3b3b77[_0x53dd('0x69')][_0x53dd('0xbd')]);}return db[_0x53dd('0x92')][_0x53dd('0x6e')](_0x2f551d,{'include':[{'model':db[_0x53dd('0xa4')],'as':_0x53dd('0xbe')}]});}})[_0x53dd('0x26')](respondWithResult(_0x406281,null))[_0x53dd('0x6a')](handleError(_0x406281,null));};exports[_0x53dd('0xbf')]=function(_0x4305a4,_0x3b707b,_0x438c46){return db[_0x53dd('0x47')][_0x53dd('0x67')]({'where':{'id':_0x4305a4[_0x53dd('0x64')]['id']},'include':[{'model':db['MailServerOut'],'as':_0x53dd('0x44'),'raw':!![]}]})[_0x53dd('0x26')](handleEntityNotFound(_0x3b707b,null))[_0x53dd('0x26')](function(_0x364c78){if(_0x364c78&&_0x364c78['Smtp']){var _0x404f6b={'id':_0x364c78['id'],'tls':{'rejectUnauthorized':![]}};if(_0x364c78[_0x53dd('0x44')][_0x53dd('0x84')]){_0x404f6b[_0x53dd('0x84')]=_0x364c78['Smtp']['service'];}else{_0x404f6b[_0x53dd('0x82')]=_0x364c78['Smtp'][_0x53dd('0x82')];_0x404f6b[_0x53dd('0x83')]=_0x364c78[_0x53dd('0x44')][_0x53dd('0x83')];_0x404f6b[_0x53dd('0xb4')]=_0x364c78['Smtp'][_0x53dd('0xb4')];}if(_0x364c78[_0x53dd('0x44')][_0x53dd('0x81')]){_0x404f6b['auth']={'user':_0x364c78[_0x53dd('0x44')]['user'],'pass':_0x364c78[_0x53dd('0x44')]['pass']};}return respondWithRpcPromise(_0x53dd('0xc0'),_0x53dd('0xbf'),{'account':_0x404f6b});}})[_0x53dd('0x26')](respondWithResult(_0x3b707b,null))[_0x53dd('0x6a')](handleError(_0x3b707b,null));};exports[_0x53dd('0x3a')]=function(_0x5ec372,_0x327558){return db[_0x53dd('0x47')][_0x53dd('0x67')]({'where':{'id':_0x5ec372[_0x53dd('0x64')]['id']}})['then'](handleEntityNotFound(_0x327558,null))[_0x53dd('0x26')](function(_0x636bf9){if(_0x636bf9&&_0x636bf9[_0x53dd('0x84')]){throw new db[(_0x53dd('0xc1'))][(_0x53dd('0xc2'))](_0x53dd('0xc3'));}return _0x636bf9;})['then'](removeEntity(_0x327558,null))[_0x53dd('0x6a')](handleError(_0x327558,null));};exports[_0x53dd('0xc4')]=function(_0x3d269b,_0x556822,_0x252569){return db[_0x53dd('0x47')][_0x53dd('0x67')]({'where':{'id':_0x3d269b['params']['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x556822,null))[_0x53dd('0x26')](function(_0x55fab1){if(_0x55fab1){return _0x55fab1[_0x53dd('0xc4')](_0x3d269b[_0x53dd('0x69')]['ids'],_['omit'](_0x3d269b['body'],['ids','id'])||{})['spread'](function(_0x3a54a2){for(var _0x3e961d=0x0;_0x3e961d<_0x3d269b['body'][_0x53dd('0x72')][_0x53dd('0x53')];_0x3e961d+=0x1){socket['emit'](_0x53dd('0xc5'),{'UserId':Number(_0x3d269b[_0x53dd('0x69')]['ids'][_0x3e961d]),'MailAccountId':Number(_0x3d269b[_0x53dd('0x64')]['id'])});}return _0x3a54a2;});}})[_0x53dd('0x26')](respondWithResult(_0x556822,null))['catch'](handleError(_0x556822,null));};exports['removeAgents']=function(_0x3f5444,_0xe2d1c0,_0x5dae9e){return db[_0x53dd('0x47')]['find']({'where':{'id':_0x3f5444[_0x53dd('0x64')]['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0xe2d1c0,null))[_0x53dd('0x26')](function(_0xf4349b){if(_0xf4349b){return _0xf4349b[_0x53dd('0xc6')](_0x3f5444[_0x53dd('0x4d')][_0x53dd('0x72')])[_0x53dd('0x26')](function(){if(_['isArray'](_0x3f5444[_0x53dd('0x4d')][_0x53dd('0x72')])){for(var _0x4a7081=0x0;_0x4a7081<_0x3f5444[_0x53dd('0x4d')][_0x53dd('0x72')][_0x53dd('0x53')];_0x4a7081+=0x1){socket['emit'](_0x53dd('0xc7'),{'UserId':Number(_0x3f5444[_0x53dd('0x4d')][_0x53dd('0x72')][_0x4a7081]),'MailAccountId':Number(_0x3f5444[_0x53dd('0x64')]['id'])});}}else{socket[_0x53dd('0xc8')](_0x53dd('0xc7'),{'UserId':Number(_0x3f5444['query']['ids']),'MailAccountId':Number(_0x3f5444[_0x53dd('0x64')]['id'])});}});}})[_0x53dd('0x26')](respondWithStatusCode(_0xe2d1c0,null))[_0x53dd('0x6a')](handleError(_0xe2d1c0,null));};exports['getAgents']=function(_0x36de36,_0x56f6bc,_0x2ddabc){var _0x11c7c3={};var _0x20232c={};var _0x3545f3;var _0x396c45;return db[_0x53dd('0x47')][_0x53dd('0x6f')]({'where':{'id':_0x36de36['params']['id']}})[_0x53dd('0x26')](handleEntityNotFound(_0x56f6bc,null))[_0x53dd('0x26')](function(_0x31e151){if(_0x31e151){_0x3545f3=_0x31e151;_0x20232c['model']=_['keys'](db[_0x53dd('0x97')]['rawAttributes']);_0x20232c[_0x53dd('0x4d')]=_[_0x53dd('0x66')](_0x36de36[_0x53dd('0x4d')]);_0x20232c[_0x53dd('0x4e')]=_['intersection'](_0x20232c[_0x53dd('0x4f')],_0x20232c[_0x53dd('0x4d')]);_0x11c7c3[_0x53dd('0x52')]=_['intersection'](_0x20232c[_0x53dd('0x4f')],qs[_0x53dd('0x51')](_0x36de36[_0x53dd('0x4d')][_0x53dd('0x51')]));_0x11c7c3[_0x53dd('0x52')]=_0x11c7c3[_0x53dd('0x52')][_0x53dd('0x53')]?_0x11c7c3[_0x53dd('0x52')]:_0x20232c[_0x53dd('0x4f')];_0x11c7c3['order']=qs[_0x53dd('0x58')](_0x36de36[_0x53dd('0x4d')][_0x53dd('0x58')]);_0x11c7c3[_0x53dd('0x59')]=qs[_0x53dd('0x4e')](_[_0x53dd('0x5a')](_0x36de36[_0x53dd('0x4d')],_0x20232c[_0x53dd('0x4e')]));if(_0x36de36['query']['filter']){_0x11c7c3['where']=_[_0x53dd('0x5c')](_0x11c7c3[_0x53dd('0x59')],{'$or':_['map'](_0x11c7c3[_0x53dd('0x52')],function(_0x3cff12){var _0x1c4098={};_0x1c4098[_0x3cff12]={'$like':'%'+_0x36de36[_0x53dd('0x4d')]['filter']+'%'};return _0x1c4098;})});}_0x11c7c3=_[_0x53dd('0x5c')]({},_0x11c7c3,_0x36de36[_0x53dd('0x5e')]);return _0x3545f3[_0x53dd('0xc9')](_0x11c7c3);}})['then'](function(_0x59caf9){if(_0x59caf9){_0x396c45=_0x59caf9[_0x53dd('0x53')];if(!_0x36de36[_0x53dd('0x4d')][_0x53dd('0x54')]('nolimit')){_0x11c7c3['limit']=qs[_0x53dd('0x56')](_0x36de36[_0x53dd('0x4d')][_0x53dd('0x56')]);_0x11c7c3[_0x53dd('0x32')]=qs[_0x53dd('0x32')](_0x36de36[_0x53dd('0x4d')][_0x53dd('0x32')]);}return _0x3545f3[_0x53dd('0xc9')](_0x11c7c3);}})[_0x53dd('0x26')](function(_0x5b40e9){if(_0x5b40e9){return _0x5b40e9?{'count':_0x396c45,'rows':_0x5b40e9}:null;}})[_0x53dd('0x26')](respondWithResult(_0x56f6bc,null))[_0x53dd('0x6a')](handleError(_0x56f6bc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b84=['events','../../mysqldb','MailAccount','setMaxListeners','save','update','remove','emit','hasOwnProperty','exports'];(function(_0x411add,_0x1aed38){var _0x238242=function(_0x4a1cd5){while(--_0x4a1cd5){_0x411add['push'](_0x411add['shift']());}};_0x238242(++_0x1aed38);}(_0x7b84,0x17c));var _0x47b8=function(_0xd40fa9,_0x23e7ad){_0xd40fa9=_0xd40fa9-0x0;var _0x5646ba=_0x7b84[_0xd40fa9];return _0x5646ba;};'use strict';var EventEmitter=require(_0x47b8('0x0'));var MailAccount=require(_0x47b8('0x1'))['db'][_0x47b8('0x2')];var MailAccountEvents=new EventEmitter();MailAccountEvents[_0x47b8('0x3')](0x0);var events={'afterCreate':_0x47b8('0x4'),'afterUpdate':_0x47b8('0x5'),'afterDestroy':_0x47b8('0x6')};function emitEvent(_0x5c7cda){return function(_0x445a5f,_0x1fa41a,_0x2279ea){MailAccountEvents[_0x47b8('0x7')](_0x5c7cda+':'+_0x445a5f['id'],_0x445a5f);MailAccountEvents[_0x47b8('0x7')](_0x5c7cda,_0x445a5f);_0x2279ea(null);};}for(var e in events){if(events[_0x47b8('0x8')](e)){var event=events[e];MailAccount['hook'](e,emitEvent(event));}}module[_0x47b8('0x9')]=MailAccountEvents;
\ No newline at end of file
+var _0x1a38=['events','../../mysqldb','MailAccount','remove','emit','hasOwnProperty','hook','exports'];(function(_0x3ef984,_0x3f5981){var _0x578b03=function(_0x112d2f){while(--_0x112d2f){_0x3ef984['push'](_0x3ef984['shift']());}};_0x578b03(++_0x3f5981);}(_0x1a38,0xb0));var _0x81a3=function(_0x11ca63,_0xea9f9c){_0x11ca63=_0x11ca63-0x0;var _0x41f1f6=_0x1a38[_0x11ca63];return _0x41f1f6;};'use strict';var EventEmitter=require(_0x81a3('0x0'));var MailAccount=require(_0x81a3('0x1'))['db'][_0x81a3('0x2')];var MailAccountEvents=new EventEmitter();MailAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x81a3('0x3')};function emitEvent(_0x2402ba){return function(_0x2faf46,_0x28fd86,_0x33a486){MailAccountEvents[_0x81a3('0x4')](_0x2402ba+':'+_0x2faf46['id'],_0x2faf46);MailAccountEvents[_0x81a3('0x4')](_0x2402ba,_0x2faf46);_0x33a486(null);};}for(var e in events){if(events[_0x81a3('0x5')](e)){var event=events[e];MailAccount[_0x81a3('0x6')](e,emitEvent(event));}}module[_0x81a3('0x7')]=MailAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e15=['bluebird','../../config/environment','./mailAccount.attributes','exports','define','mail_accounts','lodash','util','../../config/logger','api'];(function(_0x4da572,_0x326408){var _0x378393=function(_0x1357e4){while(--_0x1357e4){_0x4da572['push'](_0x4da572['shift']());}};_0x378393(++_0x326408);}(_0x5e15,0x196));var _0x55e1=function(_0x5cf51d,_0x559b8f){_0x5cf51d=_0x5cf51d-0x0;var _0x56c5e3=_0x5e15[_0x5cf51d];return _0x56c5e3;};'use strict';var _=require(_0x55e1('0x0'));var util=require(_0x55e1('0x1'));var logger=require(_0x55e1('0x2'))(_0x55e1('0x3'));var moment=require('moment');var BPromise=require(_0x55e1('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x55e1('0x5'));var attributes=require(_0x55e1('0x6'));module[_0x55e1('0x7')]=function(_0x3c6fd4,_0x40574d){return _0x3c6fd4[_0x55e1('0x8')]('MailAccount',attributes,{'tableName':_0x55e1('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb77c=['request-promise','path','./mailAccount.attributes','exports','define','mail_accounts','lodash','util','api','moment','bluebird'];(function(_0x12068c,_0x32c65f){var _0x4290cb=function(_0x350739){while(--_0x350739){_0x12068c['push'](_0x12068c['shift']());}};_0x4290cb(++_0x32c65f);}(_0xb77c,0x74));var _0xcb77=function(_0x40220a,_0x22feb1){_0x40220a=_0x40220a-0x0;var _0x3903cc=_0xb77c[_0x40220a];return _0x3903cc;};'use strict';var _=require(_0xcb77('0x0'));var util=require(_0xcb77('0x1'));var logger=require('../../config/logger')(_0xcb77('0x2'));var moment=require(_0xcb77('0x3'));var BPromise=require(_0xcb77('0x4'));var rp=require(_0xcb77('0x5'));var fs=require('fs');var path=require(_0xcb77('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xcb77('0x7'));module[_0xcb77('0x8')]=function(_0x2e3694,_0x334843){return _0x2e3694[_0xcb77('0x9')]('MailAccount',attributes,{'tableName':_0xcb77('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1429=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','request','request\x20sent','stringify','error','code','MailAccount,\x20%s,\x20%s','message','info','result','catch','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','include','map','model','debug','ShowMailAccount','find','then','NotifyMailAccount','mail','keys','createdAt','ListId','body','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','includes','mapKey','CmList','List','CmContact','Contacts','updatedAt','DESC','MailApplication','Applications','MailServerOut','Smtp','get','account','omit','applications','list','orderBy','priority','autoclose','push','length','close','*,*,*,*','create','List\x20not\x20found','messageId','generate','subject','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','inReplyTo','Contact\x20not\x20found','spread','update','attach','interaction','created','MailMessage','contact','attachments','originCc','bcc','originChannel','Email','ChatOfflineMessageId','Attachment','Attachments','UserId','User','name','unshift','agent','waitForTheAssignedAgent','Start','util','moment'];(function(_0x55affd,_0xaa69f4){var _0x3cc6c5=function(_0x28bbc4){while(--_0x28bbc4){_0x55affd['push'](_0x55affd['shift']());}};_0x3cc6c5(++_0xaa69f4);}(_0x1429,0xd6));var _0x9142=function(_0x363160,_0x5dfb11){_0x363160=_0x363160-0x0;var _0xa4b3f9=_0x1429[_0x363160];return _0xa4b3f9;};'use strict';var _=require('lodash');var util=require(_0x9142('0x0'));var moment=require(_0x9142('0x1'));var BPromise=require(_0x9142('0x2'));var rs=require(_0x9142('0x3'));var fs=require('fs');var Redis=require(_0x9142('0x4'));var db=require(_0x9142('0x5'))['db'];var utils=require(_0x9142('0x6'));var logger=require(_0x9142('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x9142('0x8'));var client=jayson[_0x9142('0x9')][_0x9142('0xa')]({'port':0x232c});config[_0x9142('0xb')]=_[_0x9142('0xc')](config[_0x9142('0xb')],{'host':_0x9142('0xd'),'port':0x18eb});var socket=require(_0x9142('0xe'))(new Redis(config[_0x9142('0xb')]));require(_0x9142('0xf'))[_0x9142('0x10')](socket);function respondWithRpcPromise(_0x242edf,_0x5724c6,_0x1b7b35){return new BPromise(function(_0x84a723,_0x2882c9){return client[_0x9142('0x11')](_0x242edf,_0x1b7b35)['then'](function(_0x2807cd){logger['info']('MailAccount,\x20%s,\x20%s',_0x5724c6,_0x9142('0x12'));logger['debug']('MailAccount,\x20%s,\x20%s,\x20%s',_0x5724c6,_0x9142('0x12'),JSON[_0x9142('0x13')](_0x2807cd));if(_0x2807cd[_0x9142('0x14')]){if(_0x2807cd[_0x9142('0x14')][_0x9142('0x15')]===0x1f4){logger[_0x9142('0x14')](_0x9142('0x16'),_0x5724c6,_0x2807cd[_0x9142('0x14')][_0x9142('0x17')]);return _0x2882c9(_0x2807cd[_0x9142('0x14')]['message']);}logger[_0x9142('0x14')](_0x9142('0x16'),_0x5724c6,_0x2807cd[_0x9142('0x14')][_0x9142('0x17')]);return _0x84a723(_0x2807cd[_0x9142('0x14')][_0x9142('0x17')]);}else{logger[_0x9142('0x18')]('MailAccount,\x20%s,\x20%s',_0x5724c6,_0x9142('0x12'));_0x84a723(_0x2807cd[_0x9142('0x19')]['message']);}})[_0x9142('0x1a')](function(_0x180daa){logger[_0x9142('0x14')](_0x9142('0x16'),_0x5724c6,_0x180daa);_0x2882c9(_0x180daa);});});}exports[_0x9142('0x1b')]=function(_0x81494d){var _0x50aa46=this;return new Promise(function(_0x3c1f25,_0x2f729a){return db[_0x9142('0x1c')][_0x9142('0x1d')]({'raw':_0x81494d[_0x9142('0x1e')]?_0x81494d['options'][_0x9142('0x1f')]===undefined?!![]:![]:!![],'where':_0x81494d['options']?_0x81494d[_0x9142('0x1e')][_0x9142('0x20')]||null:null,'attributes':_0x81494d['options']?_0x81494d['options'][_0x9142('0x21')]||null:null,'limit':_0x81494d[_0x9142('0x1e')]?_0x81494d['options'][_0x9142('0x22')]||null:null,'include':_0x81494d['options']?_0x81494d['options'][_0x9142('0x23')]?_[_0x9142('0x24')](_0x81494d['options'][_0x9142('0x23')],function(_0x233ecb){return{'model':db[_0x233ecb[_0x9142('0x25')]],'as':_0x233ecb['as'],'attributes':_0x233ecb[_0x9142('0x21')],'include':_0x233ecb[_0x9142('0x23')]?_[_0x9142('0x24')](_0x233ecb[_0x9142('0x23')],function(_0x4685cd){return{'model':db[_0x4685cd[_0x9142('0x25')]],'as':_0x4685cd['as'],'attributes':_0x4685cd['attributes'],'include':_0x4685cd[_0x9142('0x23')]?_[_0x9142('0x24')](_0x4685cd[_0x9142('0x23')],function(_0x133cb1){return{'model':db[_0x133cb1[_0x9142('0x25')]],'as':_0x133cb1['as'],'attributes':_0x133cb1[_0x9142('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x297f4){logger[_0x9142('0x18')](_0x9142('0x1b'),_0x81494d);logger[_0x9142('0x26')](_0x9142('0x1b'),_0x81494d,JSON[_0x9142('0x13')](_0x297f4));_0x3c1f25(_0x297f4);})['catch'](function(_0x3b9705){logger[_0x9142('0x14')]('GetMailAccount',_0x3b9705[_0x9142('0x17')],_0x81494d);_0x2f729a(_0x50aa46['error'](0x1f4,_0x3b9705[_0x9142('0x17')]));});});};exports[_0x9142('0x27')]=function(_0x3d9fdb){var _0x1364f3=this;return new Promise(function(_0x77505d,_0x3cb723){return db[_0x9142('0x1c')][_0x9142('0x28')]({'raw':_0x3d9fdb[_0x9142('0x1e')]?_0x3d9fdb['options'][_0x9142('0x1f')]===undefined?!![]:![]:!![],'where':_0x3d9fdb[_0x9142('0x1e')]?_0x3d9fdb[_0x9142('0x1e')][_0x9142('0x20')]||null:null,'attributes':_0x3d9fdb[_0x9142('0x1e')]?_0x3d9fdb[_0x9142('0x1e')][_0x9142('0x21')]||null:null,'include':_0x3d9fdb[_0x9142('0x1e')]?_0x3d9fdb[_0x9142('0x1e')][_0x9142('0x23')]?_[_0x9142('0x24')](_0x3d9fdb['options']['include'],function(_0x5907df){return{'model':db[_0x5907df[_0x9142('0x25')]],'as':_0x5907df['as'],'attributes':_0x5907df['attributes'],'include':_0x5907df[_0x9142('0x23')]?_[_0x9142('0x24')](_0x5907df['include'],function(_0x3a9c41){return{'model':db[_0x3a9c41[_0x9142('0x25')]],'as':_0x3a9c41['as'],'attributes':_0x3a9c41[_0x9142('0x21')],'include':_0x3a9c41[_0x9142('0x23')]?_[_0x9142('0x24')](_0x3a9c41['include'],function(_0x2bb538){return{'model':db[_0x2bb538[_0x9142('0x25')]],'as':_0x2bb538['as'],'attributes':_0x2bb538['attributes']};}):[]};}):[]};}):[]:[]})[_0x9142('0x29')](function(_0x3e98e3){logger['info'](_0x9142('0x27'),_0x3d9fdb);logger[_0x9142('0x26')](_0x9142('0x27'),_0x3d9fdb,JSON[_0x9142('0x13')](_0x3e98e3));_0x77505d(_0x3e98e3);})[_0x9142('0x1a')](function(_0x1a90a1){logger['error'](_0x9142('0x27'),_0x1a90a1[_0x9142('0x17')],_0x3d9fdb);_0x3cb723(_0x1364f3['error'](0x1f4,_0x1a90a1[_0x9142('0x17')]));});});};exports[_0x9142('0x2a')]=function(_0x4e94cc){var _0x50d5ea=this;return new Promise(function(_0x29c35f,_0x529037){var _0x11c82c={'body':_0x4e94cc['body'],'channel':_0x9142('0x2b')};var _0x1cd48b=_['difference'](_[_0x9142('0x2c')](db['CmContact']['rawAttributes']),[_0x9142('0x2d'),'updatedAt','CompanyId',_0x9142('0x2e')]);var _0x4e3999=![];if(_0x4e94cc[_0x9142('0x2f')]['id']){delete _0x4e94cc['body']['id'];}if(_[_0x9142('0x30')](_0x4e94cc[_0x9142('0x2f')][_0x9142('0x31')])){return _0x529037(_0x50d5ea[_0x9142('0x14')](0x1f4,_0x9142('0x32')));}if(_[_0x9142('0x30')](_0x4e94cc[_0x9142('0x2f')]['body'])||_0x4e94cc[_0x9142('0x2f')]['body']===''){return _0x529037(_0x50d5ea[_0x9142('0x14')](0x1f4,_0x9142('0x33')));}if(_['isNil'](_0x4e94cc[_0x9142('0x2f')]['mapKey'])){return _0x529037(_0x50d5ea[_0x9142('0x14')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x1cd48b));}if(!_[_0x9142('0x34')](_0x1cd48b,_0x4e94cc[_0x9142('0x2f')]['mapKey'])){return _0x529037(_0x50d5ea[_0x9142('0x14')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x1cd48b));}var _0x18bff7={};_0x18bff7[_0x4e94cc[_0x9142('0x2f')][_0x9142('0x35')]]=_0x4e94cc[_0x9142('0x2f')][_0x9142('0x31')];return db[_0x9142('0x1c')][_0x9142('0x28')]({'where':{'id':_0x4e94cc['account']['id']},'include':[{'model':db[_0x9142('0x36')],'as':_0x9142('0x37'),'include':[{'model':db[_0x9142('0x38')],'as':_0x9142('0x39'),'where':_0x18bff7,'limit':0x1,'order':[[_0x9142('0x3a'),_0x9142('0x3b')]]}]},{'model':db[_0x9142('0x3c')],'as':_0x9142('0x3d')},{'model':db[_0x9142('0x3e')],'as':_0x9142('0x3f')}]})[_0x9142('0x29')](function(_0x53fe18){if(_0x53fe18&&_0x53fe18[_0x9142('0x37')]){var _0x43098c=_0x53fe18[_0x9142('0x40')]({'plain':!![]});_0x11c82c[_0x9142('0x41')]=_[_0x9142('0x42')](_0x43098c,['Applications',_0x9142('0x37')]);_0x11c82c[_0x9142('0x43')]=_0x43098c['Applications'];_0x11c82c[_0x9142('0x44')]=_0x43098c[_0x9142('0x37')];_0x11c82c[_0x9142('0x43')]=_[_0x9142('0x45')](_0x11c82c[_0x9142('0x43')],[_0x9142('0x46')],['asc']);if(_0x11c82c[_0x9142('0x41')]&&_0x11c82c[_0x9142('0x41')][_0x9142('0x47')]){_0x11c82c[_0x9142('0x43')][_0x9142('0x48')]({'id':0x0,'priority':_0x11c82c[_0x9142('0x43')][_0x9142('0x49')]+0x1,'app':_0x9142('0x4a'),'appdata':_0x9142('0x47'),'interval':_0x9142('0x4b')});}if(_0x11c82c[_0x9142('0x41')]['Applications']){delete _0x11c82c['account']['Applications'];}if(_0x11c82c[_0x9142('0x41')]['List']){delete _0x11c82c[_0x9142('0x41')][_0x9142('0x37')];}if(_0x43098c[_0x9142('0x37')]['Contacts'][_0x9142('0x49')]){return _0x43098c[_0x9142('0x37')][_0x9142('0x39')][0x0];}var _0x7a4782=_[_0x9142('0xc')](_0x4e94cc[_0x9142('0x2f')],{'firstName':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x31')],'ListId':_0x43098c[_0x9142('0x2e')]});_0x7a4782[_0x4e94cc[_0x9142('0x2f')]['mapKey']]=_0x4e94cc[_0x9142('0x2f')][_0x9142('0x31')];return db[_0x9142('0x38')][_0x9142('0x4c')](_0x7a4782);}else{throw new Error(_0x9142('0x4d'));}})['then'](function(_0x21172e){_0x11c82c['contact']=_0x21172e;if(_0x21172e){if(!_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')]['messageId']){_0x4e94cc['body'][_0x9142('0x17')][_0x9142('0x4e')]=rs[_0x9142('0x4f')]()+'\x20'+_0x4e94cc[_0x9142('0x2f')]['message'][_0x9142('0x31')];}var _0x236715={'ContactId':_0x21172e['id'],'MailAccountId':_0x4e94cc['account']['id'],'inReplyTo':_0x4e94cc['body']['message']['messageId'],'to':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')]['from'],'cc':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')]['cc'],'subject':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')][_0x9142('0x50')],'attach':_0x4e94cc['body']['message']['attach'],'lastMsgAt':moment()[_0x9142('0x51')](_0x9142('0x52')),'lastMsgDirection':'in'};return db[_0x9142('0x53')][_0x9142('0x28')]({'where':{'closed':![],'MailAccountId':_0x4e94cc[_0x9142('0x41')]['id']},'include':[{'model':db['MailMessage'],'as':'Messages','attributes':['messageId'],'where':{'messageId':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')][_0x9142('0x54')]}}]})[_0x9142('0x29')](function(_0x56ed91){if(_0x56ed91){return[_0x56ed91,![]];}return db[_0x9142('0x53')][_0x9142('0x4c')](_0x236715)['then'](function(_0x596d60){return[_0x596d60,!![]];});});}else{throw new Error(_0x9142('0x55'));}})[_0x9142('0x56')](function(_0x2295de,_0x3e35ea){if(_0x2295de){_0x4e3999=_0x3e35ea;if(!_0x3e35ea){return _0x2295de[_0x9142('0x57')]({'inReplyTo':_0x4e94cc[_0x9142('0x2f')]['message'][_0x9142('0x4e')],'to':_0x4e94cc['body'][_0x9142('0x17')]['from'],'cc':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')]['cc'],'subject':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')][_0x9142('0x50')],'attach':_0x2295de[_0x9142('0x58')]?_0x2295de[_0x9142('0x58')]:_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')]['attach'],'substatus':null,'substatusAt':moment()[_0x9142('0x51')](_0x9142('0x52')),'lastMsgAt':moment()[_0x9142('0x51')](_0x9142('0x52')),'lastMsgDirection':'in'});}else{return _0x2295de;}}})[_0x9142('0x29')](function(_0x40b518){_0x11c82c[_0x9142('0x59')]=_0x40b518[_0x9142('0x40')]({'plain':!![]});_0x11c82c[_0x9142('0x59')][_0x9142('0x5a')]=_0x4e3999;return db[_0x9142('0x5b')][_0x9142('0x4c')]({'body':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x2f')],'MailAccountId':_0x4e94cc[_0x9142('0x41')]['id'],'MailInteractionId':_0x40b518['id'],'direction':'in','ContactId':_0x11c82c[_0x9142('0x5c')]['id'],'messageId':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')][_0x9142('0x4e')],'from':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')][_0x9142('0x31')],'to':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')]['to'],'cc':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')]['cc'],'subject':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')][_0x9142('0x50')],'attach':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')][_0x9142('0x58')],'Attachments':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')][_0x9142('0x5d')],'originTo':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')]['originTo'],'originCc':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')][_0x9142('0x5e')],'bcc':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')][_0x9142('0x5f')],'ChatWebsiteId':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')]['ChatWebsiteId']||null,'originChannel':_0x4e94cc[_0x9142('0x2f')][_0x9142('0x17')][_0x9142('0x60')]||_0x9142('0x61'),'ChatOfflineMessageId':_0x4e94cc[_0x9142('0x2f')]['message'][_0x9142('0x62')]||null},{'include':[{'model':db[_0x9142('0x63')],'as':_0x9142('0x64')}]});})['then'](function(_0x5a05aa){_0x11c82c[_0x9142('0x17')]=_0x5a05aa;if(_0x11c82c[_0x9142('0x59')][_0x9142('0x65')]){return db[_0x9142('0x66')][_0x9142('0x28')]({'attributes':['id',_0x9142('0x67')],'where':{'id':_0x11c82c[_0x9142('0x59')][_0x9142('0x65')]}})[_0x9142('0x29')](function(_0x3af2cb){if(_0x3af2cb){_0x11c82c[_0x9142('0x43')][_0x9142('0x68')]({'id':0x0,'priority':0x0,'app':_0x9142('0x69'),'appdata':_0x3af2cb[_0x9142('0x67')]+','+(_0x11c82c[_0x9142('0x41')][_0x9142('0x6a')]||0xa),'interval':_0x9142('0x4b')});}return respondWithRpcPromise(_0x9142('0x6b'),'startRouting',_0x11c82c);});}return respondWithRpcPromise(_0x9142('0x6b'),'startRouting',_0x11c82c);})[_0x9142('0x29')](function(_0x24a3e0){_0x29c35f(_0x24a3e0);})[_0x9142('0x1a')](function(_0x5ca905){_0x529037(_0x50d5ea['error'](0x1f4,_0x5ca905['message']));});});};
\ No newline at end of file
+var _0xfa72=['difference','CmContact','rawAttributes','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','List','Contacts','DESC','MailApplication','MailServerOut','Smtp','omit','Applications','applications','list','priority','asc','autoclose','push','length','close','create','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','Messages','Contact\x20not\x20found','spread','update','interaction','get','created','attachments','originTo','originCc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','UserId','User','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','util','moment','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','request','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','code','error','message','catch','GetMailAccount','findAll','options','raw','where','attributes','limit','include','model','map','then','MailAccount','find','ShowMailAccount','body'];(function(_0x231330,_0x331bd9){var _0x223bed=function(_0x104b24){while(--_0x104b24){_0x231330['push'](_0x231330['shift']());}};_0x223bed(++_0x331bd9);}(_0xfa72,0x1ce));var _0x2fa7=function(_0x5a533d,_0x520521){_0x5a533d=_0x5a533d-0x0;var _0x59b6dc=_0xfa72[_0x5a533d];return _0x59b6dc;};'use strict';var _=require('lodash');var util=require(_0x2fa7('0x0'));var moment=require(_0x2fa7('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x2fa7('0x2'))['db'];var utils=require(_0x2fa7('0x3'));var logger=require('../../config/logger')(_0x2fa7('0x4'));var config=require(_0x2fa7('0x5'));var jayson=require(_0x2fa7('0x6'));var client=jayson['client']['http']({'port':0x232c});config[_0x2fa7('0x7')]=_[_0x2fa7('0x8')](config[_0x2fa7('0x7')],{'host':_0x2fa7('0x9'),'port':0x18eb});var socket=require(_0x2fa7('0xa'))(new Redis(config[_0x2fa7('0x7')]));require(_0x2fa7('0xb'))['register'](socket);function respondWithRpcPromise(_0x2f5bf2,_0x308d31,_0x51611c){return new BPromise(function(_0x4ff8ea,_0x19590d){return client[_0x2fa7('0xc')](_0x2f5bf2,_0x51611c)['then'](function(_0x21498e){logger[_0x2fa7('0xd')](_0x2fa7('0xe'),_0x308d31,_0x2fa7('0xf'));logger[_0x2fa7('0x10')](_0x2fa7('0x11'),_0x308d31,_0x2fa7('0xf'),JSON[_0x2fa7('0x12')](_0x21498e));if(_0x21498e['error']){if(_0x21498e['error'][_0x2fa7('0x13')]===0x1f4){logger[_0x2fa7('0x14')](_0x2fa7('0xe'),_0x308d31,_0x21498e[_0x2fa7('0x14')][_0x2fa7('0x15')]);return _0x19590d(_0x21498e['error'][_0x2fa7('0x15')]);}logger[_0x2fa7('0x14')](_0x2fa7('0xe'),_0x308d31,_0x21498e[_0x2fa7('0x14')]['message']);return _0x4ff8ea(_0x21498e['error']['message']);}else{logger['info'](_0x2fa7('0xe'),_0x308d31,_0x2fa7('0xf'));_0x4ff8ea(_0x21498e['result'][_0x2fa7('0x15')]);}})[_0x2fa7('0x16')](function(_0x86fa22){logger[_0x2fa7('0x14')](_0x2fa7('0xe'),_0x308d31,_0x86fa22);_0x19590d(_0x86fa22);});});}exports[_0x2fa7('0x17')]=function(_0xa9ca53){var _0x11ebe6=this;return new Promise(function(_0x55253c,_0x30e240){return db['MailAccount'][_0x2fa7('0x18')]({'raw':_0xa9ca53['options']?_0xa9ca53[_0x2fa7('0x19')][_0x2fa7('0x1a')]===undefined?!![]:![]:!![],'where':_0xa9ca53[_0x2fa7('0x19')]?_0xa9ca53[_0x2fa7('0x19')][_0x2fa7('0x1b')]||null:null,'attributes':_0xa9ca53[_0x2fa7('0x19')]?_0xa9ca53['options'][_0x2fa7('0x1c')]||null:null,'limit':_0xa9ca53[_0x2fa7('0x19')]?_0xa9ca53[_0x2fa7('0x19')][_0x2fa7('0x1d')]||null:null,'include':_0xa9ca53['options']?_0xa9ca53['options'][_0x2fa7('0x1e')]?_['map'](_0xa9ca53['options']['include'],function(_0x1c0fae){return{'model':db[_0x1c0fae[_0x2fa7('0x1f')]],'as':_0x1c0fae['as'],'attributes':_0x1c0fae[_0x2fa7('0x1c')],'include':_0x1c0fae[_0x2fa7('0x1e')]?_[_0x2fa7('0x20')](_0x1c0fae[_0x2fa7('0x1e')],function(_0x742392){return{'model':db[_0x742392[_0x2fa7('0x1f')]],'as':_0x742392['as'],'attributes':_0x742392['attributes'],'include':_0x742392[_0x2fa7('0x1e')]?_[_0x2fa7('0x20')](_0x742392['include'],function(_0x1328cb){return{'model':db[_0x1328cb[_0x2fa7('0x1f')]],'as':_0x1328cb['as'],'attributes':_0x1328cb['attributes']};}):[]};}):[]};}):[]:[]})[_0x2fa7('0x21')](function(_0x42ab0d){logger[_0x2fa7('0xd')](_0x2fa7('0x17'),_0xa9ca53);logger[_0x2fa7('0x10')](_0x2fa7('0x17'),_0xa9ca53,JSON[_0x2fa7('0x12')](_0x42ab0d));_0x55253c(_0x42ab0d);})[_0x2fa7('0x16')](function(_0x24fb51){logger[_0x2fa7('0x14')](_0x2fa7('0x17'),_0x24fb51[_0x2fa7('0x15')],_0xa9ca53);_0x30e240(_0x11ebe6[_0x2fa7('0x14')](0x1f4,_0x24fb51[_0x2fa7('0x15')]));});});};exports['ShowMailAccount']=function(_0x3fe469){var _0x87c8d4=this;return new Promise(function(_0x1cc821,_0x72ec0b){return db[_0x2fa7('0x22')][_0x2fa7('0x23')]({'raw':_0x3fe469['options']?_0x3fe469[_0x2fa7('0x19')][_0x2fa7('0x1a')]===undefined?!![]:![]:!![],'where':_0x3fe469[_0x2fa7('0x19')]?_0x3fe469[_0x2fa7('0x19')][_0x2fa7('0x1b')]||null:null,'attributes':_0x3fe469['options']?_0x3fe469[_0x2fa7('0x19')][_0x2fa7('0x1c')]||null:null,'include':_0x3fe469[_0x2fa7('0x19')]?_0x3fe469['options']['include']?_[_0x2fa7('0x20')](_0x3fe469['options'][_0x2fa7('0x1e')],function(_0x28b9d6){return{'model':db[_0x28b9d6['model']],'as':_0x28b9d6['as'],'attributes':_0x28b9d6[_0x2fa7('0x1c')],'include':_0x28b9d6[_0x2fa7('0x1e')]?_[_0x2fa7('0x20')](_0x28b9d6['include'],function(_0x5813d4){return{'model':db[_0x5813d4[_0x2fa7('0x1f')]],'as':_0x5813d4['as'],'attributes':_0x5813d4['attributes'],'include':_0x5813d4['include']?_[_0x2fa7('0x20')](_0x5813d4[_0x2fa7('0x1e')],function(_0x56dacb){return{'model':db[_0x56dacb[_0x2fa7('0x1f')]],'as':_0x56dacb['as'],'attributes':_0x56dacb[_0x2fa7('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x2fa7('0x21')](function(_0x13039c){logger['info']('ShowMailAccount',_0x3fe469);logger[_0x2fa7('0x10')]('ShowMailAccount',_0x3fe469,JSON[_0x2fa7('0x12')](_0x13039c));_0x1cc821(_0x13039c);})['catch'](function(_0x461338){logger[_0x2fa7('0x14')](_0x2fa7('0x24'),_0x461338['message'],_0x3fe469);_0x72ec0b(_0x87c8d4['error'](0x1f4,_0x461338[_0x2fa7('0x15')]));});});};exports['NotifyMailAccount']=function(_0x143211){var _0x3e43c4=this;return new Promise(function(_0x15dae6,_0x3243bd){var _0x2ed059={'body':_0x143211[_0x2fa7('0x25')],'channel':'mail'};var _0x186d48=_[_0x2fa7('0x26')](_['keys'](db[_0x2fa7('0x27')][_0x2fa7('0x28')]),['createdAt',_0x2fa7('0x29'),_0x2fa7('0x2a'),_0x2fa7('0x2b')]);var _0x47e467=![];if(_0x143211[_0x2fa7('0x25')]['id']){delete _0x143211[_0x2fa7('0x25')]['id'];}if(_[_0x2fa7('0x2c')](_0x143211['body'][_0x2fa7('0x2d')])){return _0x3243bd(_0x3e43c4[_0x2fa7('0x14')](0x1f4,_0x2fa7('0x2e')));}if(_[_0x2fa7('0x2c')](_0x143211[_0x2fa7('0x25')][_0x2fa7('0x25')])||_0x143211[_0x2fa7('0x25')][_0x2fa7('0x25')]===''){return _0x3243bd(_0x3e43c4[_0x2fa7('0x14')](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_['isNil'](_0x143211[_0x2fa7('0x25')][_0x2fa7('0x2f')])){return _0x3243bd(_0x3e43c4[_0x2fa7('0x14')](0x1f4,_0x2fa7('0x30')+_0x186d48));}if(!_[_0x2fa7('0x31')](_0x186d48,_0x143211[_0x2fa7('0x25')][_0x2fa7('0x2f')])){return _0x3243bd(_0x3e43c4[_0x2fa7('0x14')](0x1f4,_0x2fa7('0x32')+_0x186d48));}var _0x5715f8={};_0x5715f8[_0x143211[_0x2fa7('0x25')][_0x2fa7('0x2f')]]=_0x143211['body'][_0x2fa7('0x2d')];return db[_0x2fa7('0x22')][_0x2fa7('0x23')]({'where':{'id':_0x143211[_0x2fa7('0x33')]['id']},'include':[{'model':db['CmList'],'as':_0x2fa7('0x34'),'include':[{'model':db[_0x2fa7('0x27')],'as':_0x2fa7('0x35'),'where':_0x5715f8,'limit':0x1,'order':[[_0x2fa7('0x29'),_0x2fa7('0x36')]]}]},{'model':db[_0x2fa7('0x37')],'as':'Applications'},{'model':db[_0x2fa7('0x38')],'as':_0x2fa7('0x39')}]})['then'](function(_0x5cf508){if(_0x5cf508&&_0x5cf508[_0x2fa7('0x34')]){var _0x51cd6a=_0x5cf508['get']({'plain':!![]});_0x2ed059[_0x2fa7('0x33')]=_[_0x2fa7('0x3a')](_0x51cd6a,[_0x2fa7('0x3b'),_0x2fa7('0x34')]);_0x2ed059[_0x2fa7('0x3c')]=_0x51cd6a[_0x2fa7('0x3b')];_0x2ed059[_0x2fa7('0x3d')]=_0x51cd6a[_0x2fa7('0x34')];_0x2ed059['applications']=_['orderBy'](_0x2ed059[_0x2fa7('0x3c')],[_0x2fa7('0x3e')],[_0x2fa7('0x3f')]);if(_0x2ed059[_0x2fa7('0x33')]&&_0x2ed059['account'][_0x2fa7('0x40')]){_0x2ed059[_0x2fa7('0x3c')][_0x2fa7('0x41')]({'id':0x0,'priority':_0x2ed059[_0x2fa7('0x3c')][_0x2fa7('0x42')]+0x1,'app':_0x2fa7('0x43'),'appdata':_0x2fa7('0x40'),'interval':'*,*,*,*'});}if(_0x2ed059[_0x2fa7('0x33')][_0x2fa7('0x3b')]){delete _0x2ed059[_0x2fa7('0x33')]['Applications'];}if(_0x2ed059[_0x2fa7('0x33')][_0x2fa7('0x34')]){delete _0x2ed059[_0x2fa7('0x33')][_0x2fa7('0x34')];}if(_0x51cd6a['List'][_0x2fa7('0x35')]['length']){return _0x51cd6a[_0x2fa7('0x34')][_0x2fa7('0x35')][0x0];}var _0x37b2d6=_[_0x2fa7('0x8')](_0x143211[_0x2fa7('0x25')],{'firstName':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x2d')],'ListId':_0x51cd6a[_0x2fa7('0x2b')]});_0x37b2d6[_0x143211[_0x2fa7('0x25')]['mapKey']]=_0x143211['body']['from'];return db[_0x2fa7('0x27')][_0x2fa7('0x44')](_0x37b2d6);}else{throw new Error(_0x2fa7('0x45'));}})['then'](function(_0x48c264){_0x2ed059[_0x2fa7('0x46')]=_0x48c264;if(_0x48c264){if(!_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')]['messageId']){_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')][_0x2fa7('0x47')]=rs[_0x2fa7('0x48')]()+'\x20'+_0x143211['body'][_0x2fa7('0x15')][_0x2fa7('0x2d')];}var _0x3e0700={'ContactId':_0x48c264['id'],'MailAccountId':_0x143211[_0x2fa7('0x33')]['id'],'inReplyTo':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')][_0x2fa7('0x47')],'to':_0x143211['body'][_0x2fa7('0x15')][_0x2fa7('0x2d')],'cc':_0x143211['body']['message']['cc'],'subject':_0x143211['body'][_0x2fa7('0x15')][_0x2fa7('0x49')],'attach':_0x143211[_0x2fa7('0x25')]['message'][_0x2fa7('0x4a')],'lastMsgAt':moment()[_0x2fa7('0x4b')](_0x2fa7('0x4c')),'lastMsgDirection':'in'};return db['MailInteraction'][_0x2fa7('0x23')]({'where':{'closed':![],'MailAccountId':_0x143211['account']['id']},'include':[{'model':db[_0x2fa7('0x4d')],'as':_0x2fa7('0x4e'),'attributes':[_0x2fa7('0x47')],'where':{'messageId':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')]['inReplyTo']}}]})[_0x2fa7('0x21')](function(_0x2086e3){if(_0x2086e3){return[_0x2086e3,![]];}return db['MailInteraction']['create'](_0x3e0700)[_0x2fa7('0x21')](function(_0x1d2fa9){return[_0x1d2fa9,!![]];});});}else{throw new Error(_0x2fa7('0x4f'));}})[_0x2fa7('0x50')](function(_0x161342,_0x429d74){if(_0x161342){_0x47e467=_0x429d74;if(!_0x429d74){return _0x161342[_0x2fa7('0x51')]({'inReplyTo':_0x143211[_0x2fa7('0x25')]['message'][_0x2fa7('0x47')],'to':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')][_0x2fa7('0x2d')],'cc':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')]['cc'],'subject':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')][_0x2fa7('0x49')],'attach':_0x161342[_0x2fa7('0x4a')]?_0x161342[_0x2fa7('0x4a')]:_0x143211['body']['message'][_0x2fa7('0x4a')],'substatus':null,'substatusAt':moment()[_0x2fa7('0x4b')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()[_0x2fa7('0x4b')](_0x2fa7('0x4c')),'lastMsgDirection':'in'});}else{return _0x161342;}}})[_0x2fa7('0x21')](function(_0x31fd36){_0x2ed059[_0x2fa7('0x52')]=_0x31fd36[_0x2fa7('0x53')]({'plain':!![]});_0x2ed059[_0x2fa7('0x52')][_0x2fa7('0x54')]=_0x47e467;return db['MailMessage'][_0x2fa7('0x44')]({'body':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x25')],'MailAccountId':_0x143211[_0x2fa7('0x33')]['id'],'MailInteractionId':_0x31fd36['id'],'direction':'in','ContactId':_0x2ed059[_0x2fa7('0x46')]['id'],'messageId':_0x143211['body'][_0x2fa7('0x15')][_0x2fa7('0x47')],'from':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')][_0x2fa7('0x2d')],'to':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')]['to'],'cc':_0x143211[_0x2fa7('0x25')]['message']['cc'],'subject':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')]['subject'],'attach':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')][_0x2fa7('0x4a')],'Attachments':_0x143211['body']['message'][_0x2fa7('0x55')],'originTo':_0x143211[_0x2fa7('0x25')]['message'][_0x2fa7('0x56')],'originCc':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')][_0x2fa7('0x57')],'bcc':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')]['bcc'],'ChatWebsiteId':_0x143211[_0x2fa7('0x25')]['message'][_0x2fa7('0x58')]||null,'originChannel':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')][_0x2fa7('0x59')]||_0x2fa7('0x5a'),'ChatOfflineMessageId':_0x143211[_0x2fa7('0x25')][_0x2fa7('0x15')][_0x2fa7('0x5b')]||null},{'include':[{'model':db['Attachment'],'as':'Attachments'}]});})[_0x2fa7('0x21')](function(_0xa3a9e1){_0x2ed059[_0x2fa7('0x15')]=_0xa3a9e1;if(_0x2ed059[_0x2fa7('0x52')][_0x2fa7('0x5c')]){return db[_0x2fa7('0x5d')][_0x2fa7('0x23')]({'attributes':['id',_0x2fa7('0x5e')],'where':{'id':_0x2ed059[_0x2fa7('0x52')][_0x2fa7('0x5c')]}})[_0x2fa7('0x21')](function(_0x492ba2){if(_0x492ba2){_0x2ed059[_0x2fa7('0x3c')][_0x2fa7('0x5f')]({'id':0x0,'priority':0x0,'app':_0x2fa7('0x60'),'appdata':_0x492ba2[_0x2fa7('0x5e')]+','+(_0x2ed059[_0x2fa7('0x33')][_0x2fa7('0x61')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x2fa7('0x62'),_0x2fa7('0x63'),_0x2ed059);});}return respondWithRpcPromise(_0x2fa7('0x62'),'startRouting',_0x2ed059);})[_0x2fa7('0x21')](function(_0x451869){_0x15dae6(_0x451869);})[_0x2fa7('0x16')](function(_0x30782a){_0x3243bd(_0x3e43c4[_0x2fa7('0x14')](0x1f4,_0x30782a[_0x2fa7('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x99d1=['mailAccount:','./mailAccount.events','remove','update','removeListener','register','length'];(function(_0x5a3cf0,_0x160a68){var _0x5a64ee=function(_0x34cd1d){while(--_0x34cd1d){_0x5a3cf0['push'](_0x5a3cf0['shift']());}};_0x5a64ee(++_0x160a68);}(_0x99d1,0x104));var _0x199d=function(_0x502331,_0x58f901){_0x502331=_0x502331-0x0;var _0x2d5c32=_0x99d1[_0x502331];return _0x2d5c32;};'use strict';var MailAccountEvents=require(_0x199d('0x0'));var events=['save',_0x199d('0x1'),_0x199d('0x2')];function createListener(_0x23d428,_0x2ab776){return function(_0x3b9462){_0x2ab776['emit'](_0x23d428,_0x3b9462);};}function removeListener(_0x11877b,_0x37cef5){return function(){MailAccountEvents[_0x199d('0x3')](_0x11877b,_0x37cef5);};}exports[_0x199d('0x4')]=function(_0x26ae59){for(var _0x40fc6e=0x0,_0x15cca0=events[_0x199d('0x5')];_0x40fc6e<_0x15cca0;_0x40fc6e++){var _0x1dd7e4=events[_0x40fc6e];var _0x407e36=createListener(_0x199d('0x6')+_0x1dd7e4,_0x26ae59);MailAccountEvents['on'](_0x1dd7e4,_0x407e36);}};
\ No newline at end of file
+var _0x56a0=['remove','update','emit','removeListener','register','./mailAccount.events','save'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x56a0,0x101));var _0x056a=function(_0xfa260b,_0xd2d0d){_0xfa260b=_0xfa260b-0x0;var _0x48fb84=_0x56a0[_0xfa260b];return _0x48fb84;};'use strict';var MailAccountEvents=require(_0x056a('0x0'));var events=[_0x056a('0x1'),_0x056a('0x2'),_0x056a('0x3')];function createListener(_0x451ead,_0x2177c3){return function(_0x2dee91){_0x2177c3[_0x056a('0x4')](_0x451ead,_0x2dee91);};}function removeListener(_0x2991a7,_0x21222e){return function(){MailAccountEvents[_0x056a('0x5')](_0x2991a7,_0x21222e);};}exports[_0x056a('0x6')]=function(_0x1838f5){for(var _0xf3b872=0x0,_0x477b7=events['length'];_0xf3b872<_0x477b7;_0xf3b872++){var _0x275bb3=events[_0xf3b872];var _0x2afa98=createListener('mailAccount:'+_0x275bb3,_0x1838f5);MailAccountEvents['on'](_0x275bb3,_0x2afa98);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9613=['put','update','delete','/:id','multer','util','path','connect-timeout','fs-extra','../../config/environment','get','isAuthenticated','show'];(function(_0x208ff7,_0x12129a){var _0x266751=function(_0xc816a1){while(--_0xc816a1){_0x208ff7['push'](_0x208ff7['shift']());}};_0x266751(++_0x12129a);}(_0x9613,0xe1));var _0x3961=function(_0x5a8e1f,_0x1df353){_0x5a8e1f=_0x5a8e1f-0x0;var _0x4283c1=_0x9613[_0x5a8e1f];return _0x4283c1;};'use strict';var multer=require(_0x3961('0x0'));var util=require(_0x3961('0x1'));var path=require(_0x3961('0x2'));var timeout=require(_0x3961('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x3961('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x3961('0x5'));var controller=require('./mailApplication.controller');router[_0x3961('0x6')]('/:id',auth[_0x3961('0x7')](),controller[_0x3961('0x8')]);router[_0x3961('0x9')]('/:id',auth[_0x3961('0x7')](),controller[_0x3961('0xa')]);router[_0x3961('0xb')](_0x3961('0xc'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xa5c1=['show','put','isAuthenticated','delete','destroy','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./mailApplication.controller','get','/:id'];(function(_0x54d408,_0x460a7f){var _0x476c9a=function(_0x1e1f40){while(--_0x1e1f40){_0x54d408['push'](_0x54d408['shift']());}};_0x476c9a(++_0x460a7f);}(_0xa5c1,0x65));var _0x1a5c=function(_0xcf098d,_0x1b9e69){_0xcf098d=_0xcf098d-0x0;var _0x99daff=_0xa5c1[_0xcf098d];return _0x99daff;};'use strict';var multer=require(_0x1a5c('0x0'));var util=require('util');var path=require(_0x1a5c('0x1'));var timeout=require(_0x1a5c('0x2'));var express=require(_0x1a5c('0x3'));var router=express[_0x1a5c('0x4')]();var fs_extra=require(_0x1a5c('0x5'));var auth=require(_0x1a5c('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x1a5c('0x7'));var controller=require(_0x1a5c('0x8'));router[_0x1a5c('0x9')](_0x1a5c('0xa'),auth['isAuthenticated'](),controller[_0x1a5c('0xb')]);router[_0x1a5c('0xc')]('/:id',auth[_0x1a5c('0xd')](),controller['update']);router[_0x1a5c('0xe')]('/:id',auth[_0x1a5c('0xd')](),controller[_0x1a5c('0xf')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8942=['sequelize','exports','INTEGER','STRING','TEXT','*,*,*,*'];(function(_0x37517f,_0x52b051){var _0x52b850=function(_0x3adf6e){while(--_0x3adf6e){_0x37517f['push'](_0x37517f['shift']());}};_0x52b850(++_0x52b051);}(_0x8942,0xcc));var _0x2894=function(_0x17adca,_0x2b4402){_0x17adca=_0x17adca-0x0;var _0x2e0cae=_0x8942[_0x17adca];return _0x2e0cae;};'use strict';var Sequelize=require(_0x2894('0x0'));module[_0x2894('0x1')]={'priority':{'type':Sequelize[_0x2894('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x2894('0x3')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0x2894('0x4')]()},'description':{'type':Sequelize[_0x2894('0x3')]},'interval':{'type':Sequelize[_0x2894('0x3')],'defaultValue':_0x2894('0x5')}};
\ No newline at end of file
+var _0x7f66=['*,*,*,*','sequelize','STRING','noop'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7f66,0xe1));var _0x67f6=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x7f66[_0x502c7d];return _0x30b7ed;};'use strict';var Sequelize=require(_0x67f6('0x0'));module['exports']={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize[_0x67f6('0x1')],'allowNull':![],'defaultValue':_0x67f6('0x2')},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize[_0x67f6('0x1')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0x67f6('0x3')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdb7=['update','error','stack','name','send','show','params','model','keys','MailApplication','query','filters','intersection','attributes','length','includeAll','merge','find','then','body','catch','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','fs-extra','lodash','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','end','json','offset','undefined','limit','count','status','set','Content-Range','apply','save'];(function(_0x5ed54b,_0x3a2827){var _0x4b58c7=function(_0x19d3b6){while(--_0x19d3b6){_0x5ed54b['push'](_0x5ed54b['shift']());}};_0x4b58c7(++_0x3a2827);}(_0xbdb7,0x12e));var _0x7bdb=function(_0x59008b,_0x75ea97){_0x59008b=_0x59008b-0x0;var _0x20359c=_0xbdb7[_0x59008b];return _0x20359c;};'use strict';var emlformat=require(_0x7bdb('0x0'));var rimraf=require(_0x7bdb('0x1'));var zipdir=require(_0x7bdb('0x2'));var jsonpatch=require(_0x7bdb('0x3'));var rp=require(_0x7bdb('0x4'));var moment=require(_0x7bdb('0x5'));var BPromise=require(_0x7bdb('0x6'));var Mustache=require(_0x7bdb('0x7'));var util=require(_0x7bdb('0x8'));var path=require('path');var sox=require(_0x7bdb('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7bdb('0xa'));var _=require(_0x7bdb('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7bdb('0xc'));var deskjs=require(_0x7bdb('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7bdb('0xe'));var Redis=require(_0x7bdb('0xf'));var authService=require(_0x7bdb('0x10'));var qs=require(_0x7bdb('0x11'));var as=require(_0x7bdb('0x12'));var hardwareService=require(_0x7bdb('0x13'));var logger=require(_0x7bdb('0x14'))(_0x7bdb('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x7bdb('0x16'))['db'];function respondWithStatusCode(_0x25e3cb,_0x496613){_0x496613=_0x496613||0xcc;return function(_0x8d74ff){if(_0x8d74ff){return _0x25e3cb['sendStatus'](_0x496613);}return _0x25e3cb['status'](_0x496613)[_0x7bdb('0x17')]();};}function respondWithResult(_0x46dd4a,_0x4fd91a){_0x4fd91a=_0x4fd91a||0xc8;return function(_0x50eeca){if(_0x50eeca){return _0x46dd4a['status'](_0x4fd91a)[_0x7bdb('0x18')](_0x50eeca);}};}function respondWithFilteredResult(_0x195b2e,_0xe9919f){return function(_0x25d417){if(_0x25d417){var _0x31c909=typeof _0xe9919f[_0x7bdb('0x19')]===_0x7bdb('0x1a')&&typeof _0xe9919f[_0x7bdb('0x1b')]==='undefined';var _0x1c5750=_0x25d417[_0x7bdb('0x1c')];var _0x5723f4=_0x31c909?0x0:_0xe9919f[_0x7bdb('0x19')];var _0x4ffd4b=_0x31c909?_0x25d417[_0x7bdb('0x1c')]:_0xe9919f[_0x7bdb('0x19')]+_0xe9919f['limit'];var _0x3e5f8e;if(_0x4ffd4b>=_0x1c5750){_0x4ffd4b=_0x1c5750;_0x3e5f8e=0xc8;}else{_0x3e5f8e=0xce;}_0x195b2e[_0x7bdb('0x1d')](_0x3e5f8e);return _0x195b2e[_0x7bdb('0x1e')](_0x7bdb('0x1f'),_0x5723f4+'-'+_0x4ffd4b+'/'+_0x1c5750)[_0x7bdb('0x18')](_0x25d417);}return null;};}function patchUpdates(_0x5bfc35){return function(_0x49f353){try{jsonpatch[_0x7bdb('0x20')](_0x49f353,_0x5bfc35,!![]);}catch(_0xcb25f2){return BPromise['reject'](_0xcb25f2);}return _0x49f353[_0x7bdb('0x21')]();};}function saveUpdates(_0x118ea1,_0x346c72){return function(_0x3f53e7){if(_0x3f53e7){return _0x3f53e7[_0x7bdb('0x22')](_0x118ea1)['then'](function(_0x1d37ac){return _0x1d37ac;});}return null;};}function removeEntity(_0xdad53d,_0x40c447){return function(_0x3a456f){if(_0x3a456f){return _0x3a456f['destroy']()['then'](function(){_0xdad53d[_0x7bdb('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x47abaf,_0x4a9e02){return function(_0x2abef6){if(!_0x2abef6){_0x47abaf['sendStatus'](0x194);}return _0x2abef6;};}function handleError(_0x2b14bc,_0x72ba69){_0x72ba69=_0x72ba69||0x1f4;return function(_0x3ec129){logger[_0x7bdb('0x23')](_0x3ec129[_0x7bdb('0x24')]);if(_0x3ec129['name']){delete _0x3ec129[_0x7bdb('0x25')];}_0x2b14bc[_0x7bdb('0x1d')](_0x72ba69)[_0x7bdb('0x26')](_0x3ec129);};}exports[_0x7bdb('0x27')]=function(_0x371e8a,_0x2e8e65){var _0x1e9996={'raw':!![],'where':{'id':_0x371e8a[_0x7bdb('0x28')]['id']}},_0xd2d7be={};_0xd2d7be[_0x7bdb('0x29')]=_[_0x7bdb('0x2a')](db[_0x7bdb('0x2b')]['rawAttributes']);_0xd2d7be[_0x7bdb('0x2c')]=_[_0x7bdb('0x2a')](_0x371e8a[_0x7bdb('0x2c')]);_0xd2d7be[_0x7bdb('0x2d')]=_[_0x7bdb('0x2e')](_0xd2d7be['model'],_0xd2d7be[_0x7bdb('0x2c')]);_0x1e9996[_0x7bdb('0x2f')]=_[_0x7bdb('0x2e')](_0xd2d7be[_0x7bdb('0x29')],qs['fields'](_0x371e8a['query']['fields']));_0x1e9996[_0x7bdb('0x2f')]=_0x1e9996['attributes'][_0x7bdb('0x30')]?_0x1e9996['attributes']:_0xd2d7be[_0x7bdb('0x29')];if(_0x371e8a[_0x7bdb('0x2c')][_0x7bdb('0x31')]){_0x1e9996['include']=[{'all':!![]}];}_0x1e9996=_[_0x7bdb('0x32')]({},_0x1e9996,_0x371e8a['options']);return db['MailApplication'][_0x7bdb('0x33')](_0x1e9996)['then'](handleEntityNotFound(_0x2e8e65,null))[_0x7bdb('0x34')](respondWithResult(_0x2e8e65,null))['catch'](handleError(_0x2e8e65,null));};exports['update']=function(_0x206c26,_0x353b26){if(_0x206c26[_0x7bdb('0x35')]['id']){delete _0x206c26[_0x7bdb('0x35')]['id'];}return db[_0x7bdb('0x2b')][_0x7bdb('0x33')]({'where':{'id':_0x206c26['params']['id']}})[_0x7bdb('0x34')](handleEntityNotFound(_0x353b26,null))[_0x7bdb('0x34')](saveUpdates(_0x206c26[_0x7bdb('0x35')],null))[_0x7bdb('0x34')](respondWithResult(_0x353b26,null))[_0x7bdb('0x36')](handleError(_0x353b26,null));};exports[_0x7bdb('0x37')]=function(_0x228340,_0x2587af){return db[_0x7bdb('0x2b')]['find']({'where':{'id':_0x228340['params']['id']}})[_0x7bdb('0x34')](handleEntityNotFound(_0x2587af,null))[_0x7bdb('0x34')](removeEntity(_0x2587af,null))[_0x7bdb('0x36')](handleError(_0x2587af,null));};
\ No newline at end of file
+var _0x0713=['catch','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','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','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','stack','name','send','show','params','MailApplication','rawAttributes','query','keys','filters','intersection','model','fields','attributes','length','includeAll','include','merge','options','find','body'];(function(_0x4964e1,_0x197ea7){var _0x3b4687=function(_0x126272){while(--_0x126272){_0x4964e1['push'](_0x4964e1['shift']());}};_0x3b4687(++_0x197ea7);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x3071('0x0'));var jsonpatch=require(_0x3071('0x1'));var rp=require(_0x3071('0x2'));var moment=require(_0x3071('0x3'));var BPromise=require(_0x3071('0x4'));var Mustache=require('mustache');var util=require(_0x3071('0x5'));var path=require(_0x3071('0x6'));var sox=require(_0x3071('0x7'));var csv=require(_0x3071('0x8'));var ejs=require(_0x3071('0x9'));var fs=require('fs');var fs_extra=require(_0x3071('0xa'));var _=require(_0x3071('0xb'));var squel=require(_0x3071('0xc'));var crypto=require(_0x3071('0xd'));var jsforce=require(_0x3071('0xe'));var deskjs=require(_0x3071('0xf'));var toCsv=require(_0x3071('0x8'));var querystring=require(_0x3071('0x10'));var Papa=require('papaparse');var Redis=require(_0x3071('0x11'));var authService=require(_0x3071('0x12'));var qs=require(_0x3071('0x13'));var as=require(_0x3071('0x14'));var hardwareService=require(_0x3071('0x15'));var logger=require('../../config/logger')(_0x3071('0x16'));var utils=require(_0x3071('0x17'));var config=require(_0x3071('0x18'));var licenseUtil=require(_0x3071('0x19'));var db=require(_0x3071('0x1a'))['db'];function respondWithStatusCode(_0x4a8cc7,_0x5330a8){_0x5330a8=_0x5330a8||0xcc;return function(_0x1826ca){if(_0x1826ca){return _0x4a8cc7['sendStatus'](_0x5330a8);}return _0x4a8cc7[_0x3071('0x1b')](_0x5330a8)[_0x3071('0x1c')]();};}function respondWithResult(_0x5d4883,_0x104e73){_0x104e73=_0x104e73||0xc8;return function(_0x4e1219){if(_0x4e1219){return _0x5d4883[_0x3071('0x1b')](_0x104e73)[_0x3071('0x1d')](_0x4e1219);}};}function respondWithFilteredResult(_0x1271d0,_0x1f14e1){return function(_0x1caa5d){if(_0x1caa5d){var _0x2a6a4b=typeof _0x1f14e1[_0x3071('0x1e')]===_0x3071('0x1f')&&typeof _0x1f14e1[_0x3071('0x20')]===_0x3071('0x1f');var _0x5f3c22=_0x1caa5d[_0x3071('0x21')];var _0x17dbda=_0x2a6a4b?0x0:_0x1f14e1[_0x3071('0x1e')];var _0x108a83=_0x2a6a4b?_0x1caa5d[_0x3071('0x21')]:_0x1f14e1[_0x3071('0x1e')]+_0x1f14e1[_0x3071('0x20')];var _0x26f113;if(_0x108a83>=_0x5f3c22){_0x108a83=_0x5f3c22;_0x26f113=0xc8;}else{_0x26f113=0xce;}_0x1271d0['status'](_0x26f113);return _0x1271d0[_0x3071('0x22')](_0x3071('0x23'),_0x17dbda+'-'+_0x108a83+'/'+_0x5f3c22)[_0x3071('0x1d')](_0x1caa5d);}return null;};}function patchUpdates(_0x56c267){return function(_0xb8f4e3){try{jsonpatch['apply'](_0xb8f4e3,_0x56c267,!![]);}catch(_0x833074){return BPromise[_0x3071('0x24')](_0x833074);}return _0xb8f4e3[_0x3071('0x25')]();};}function saveUpdates(_0x457b57,_0x33090c){return function(_0x34c50e){if(_0x34c50e){return _0x34c50e[_0x3071('0x26')](_0x457b57)[_0x3071('0x27')](function(_0x542646){return _0x542646;});}return null;};}function removeEntity(_0x481a51,_0x2ce48a){return function(_0xb05b1d){if(_0xb05b1d){return _0xb05b1d[_0x3071('0x28')]()[_0x3071('0x27')](function(){_0x481a51[_0x3071('0x1b')](0xcc)[_0x3071('0x1c')]();});}};}function handleEntityNotFound(_0x7a4cb4,_0x1fe727){return function(_0x1de5fb){if(!_0x1de5fb){_0x7a4cb4['sendStatus'](0x194);}return _0x1de5fb;};}function handleError(_0x2e5f93,_0x3f1e6e){_0x3f1e6e=_0x3f1e6e||0x1f4;return function(_0x177138){logger['error'](_0x177138[_0x3071('0x29')]);if(_0x177138[_0x3071('0x2a')]){delete _0x177138[_0x3071('0x2a')];}_0x2e5f93[_0x3071('0x1b')](_0x3f1e6e)[_0x3071('0x2b')](_0x177138);};}exports[_0x3071('0x2c')]=function(_0x177b5f,_0x3921a1){var _0x32f1b4={'raw':!![],'where':{'id':_0x177b5f[_0x3071('0x2d')]['id']}},_0x292205={};_0x292205['model']=_['keys'](db[_0x3071('0x2e')][_0x3071('0x2f')]);_0x292205[_0x3071('0x30')]=_[_0x3071('0x31')](_0x177b5f[_0x3071('0x30')]);_0x292205[_0x3071('0x32')]=_[_0x3071('0x33')](_0x292205[_0x3071('0x34')],_0x292205['query']);_0x32f1b4['attributes']=_['intersection'](_0x292205[_0x3071('0x34')],qs[_0x3071('0x35')](_0x177b5f['query'][_0x3071('0x35')]));_0x32f1b4[_0x3071('0x36')]=_0x32f1b4[_0x3071('0x36')][_0x3071('0x37')]?_0x32f1b4['attributes']:_0x292205[_0x3071('0x34')];if(_0x177b5f[_0x3071('0x30')][_0x3071('0x38')]){_0x32f1b4[_0x3071('0x39')]=[{'all':!![]}];}_0x32f1b4=_[_0x3071('0x3a')]({},_0x32f1b4,_0x177b5f[_0x3071('0x3b')]);return db[_0x3071('0x2e')][_0x3071('0x3c')](_0x32f1b4)['then'](handleEntityNotFound(_0x3921a1,null))[_0x3071('0x27')](respondWithResult(_0x3921a1,null))['catch'](handleError(_0x3921a1,null));};exports['update']=function(_0x1a1a64,_0xa3a7ae){if(_0x1a1a64['body']['id']){delete _0x1a1a64[_0x3071('0x3d')]['id'];}return db[_0x3071('0x2e')][_0x3071('0x3c')]({'where':{'id':_0x1a1a64[_0x3071('0x2d')]['id']}})[_0x3071('0x27')](handleEntityNotFound(_0xa3a7ae,null))[_0x3071('0x27')](saveUpdates(_0x1a1a64['body'],null))[_0x3071('0x27')](respondWithResult(_0xa3a7ae,null))[_0x3071('0x3e')](handleError(_0xa3a7ae,null));};exports['destroy']=function(_0x44ad05,_0x5b1392){return db[_0x3071('0x2e')][_0x3071('0x3c')]({'where':{'id':_0x44ad05['params']['id']}})['then'](handleEntityNotFound(_0x5b1392,null))[_0x3071('0x27')](removeEntity(_0x5b1392,null))[_0x3071('0x3e')](handleError(_0x5b1392,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9967=['utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./mailApplication.attributes','exports','define','MailApplication'];(function(_0x32c5cd,_0x1108d7){var _0x8df855=function(_0x2f3165){while(--_0x2f3165){_0x32c5cd['push'](_0x32c5cd['shift']());}};_0x8df855(++_0x1108d7);}(_0x9967,0x188));var _0x7996=function(_0x4ce68e,_0xd0d189){_0x4ce68e=_0x4ce68e-0x0;var _0x11db99=_0x9967[_0x4ce68e];return _0x11db99;};'use strict';var _=require(_0x7996('0x0'));var util=require(_0x7996('0x1'));var logger=require(_0x7996('0x2'))(_0x7996('0x3'));var moment=require(_0x7996('0x4'));var BPromise=require(_0x7996('0x5'));var rp=require(_0x7996('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x7996('0x7'));var config=require(_0x7996('0x8'));var attributes=require(_0x7996('0x9'));module[_0x7996('0xa')]=function(_0x931c0,_0x5382f3){return _0x931c0[_0x7996('0xb')](_0x7996('0xc'),attributes,{'tableName':'mail_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x7996('0xd'),'collate':_0x7996('0xe')});};
\ No newline at end of file
+var _0xaa73=['bluebird','path','rimraf','exports','MailApplication','mail_applications','utf8mb4','utf8mb4_unicode_ci','lodash','util','api','moment'];(function(_0x2031c2,_0x130bcd){var _0x5ef1e7=function(_0x3d6dab){while(--_0x3d6dab){_0x2031c2['push'](_0x2031c2['shift']());}};_0x5ef1e7(++_0x130bcd);}(_0xaa73,0xc8));var _0x3aa7=function(_0x31b484,_0x7cc1fa){_0x31b484=_0x31b484-0x0;var _0x5058f8=_0xaa73[_0x31b484];return _0x5058f8;};'use strict';var _=require(_0x3aa7('0x0'));var util=require(_0x3aa7('0x1'));var logger=require('../../config/logger')(_0x3aa7('0x2'));var moment=require(_0x3aa7('0x3'));var BPromise=require(_0x3aa7('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x3aa7('0x5'));var rimraf=require(_0x3aa7('0x6'));var config=require('../../config/environment');var attributes=require('./mailApplication.attributes');module[_0x3aa7('0x7')]=function(_0x33464f,_0xcf2c7b){return _0x33464f['define'](_0x3aa7('0x8'),attributes,{'tableName':_0x3aa7('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x3aa7('0xa'),'collate':_0x3aa7('0xb')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6d1=['rpc','../../config/environment','http','request','request\x20sent','MailApplication,\x20%s,\x20%s,\x20%s','error','code','MailApplication,\x20%s,\x20%s','message','info','catch','UpdateMailApplication','options','then','debug','stringify','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x5f76f6,_0x352ece){var _0x20213b=function(_0x265aee){while(--_0x265aee){_0x5f76f6['push'](_0x5f76f6['shift']());}};_0x20213b(++_0x352ece);}(_0xc6d1,0x1a1));var _0x1c6d=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0xc6d1[_0x2b4411];return _0x8e41ef;};'use strict';var _=require('lodash');var util=require(_0x1c6d('0x0'));var moment=require(_0x1c6d('0x1'));var BPromise=require(_0x1c6d('0x2'));var rs=require(_0x1c6d('0x3'));var fs=require('fs');var Redis=require(_0x1c6d('0x4'));var db=require(_0x1c6d('0x5'))['db'];var utils=require(_0x1c6d('0x6'));var logger=require(_0x1c6d('0x7'))(_0x1c6d('0x8'));var config=require(_0x1c6d('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x1c6d('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x24a76b,_0x135031,_0x407338){return new BPromise(function(_0x46bcbe,_0x177845){return client[_0x1c6d('0xb')](_0x24a76b,_0x407338)['then'](function(_0x218535){logger['info']('MailApplication,\x20%s,\x20%s',_0x135031,_0x1c6d('0xc'));logger['debug'](_0x1c6d('0xd'),_0x135031,_0x1c6d('0xc'),JSON['stringify'](_0x218535));if(_0x218535['error']){if(_0x218535[_0x1c6d('0xe')][_0x1c6d('0xf')]===0x1f4){logger['error'](_0x1c6d('0x10'),_0x135031,_0x218535['error'][_0x1c6d('0x11')]);return _0x177845(_0x218535[_0x1c6d('0xe')]['message']);}logger[_0x1c6d('0xe')](_0x1c6d('0x10'),_0x135031,_0x218535['error'][_0x1c6d('0x11')]);return _0x46bcbe(_0x218535[_0x1c6d('0xe')][_0x1c6d('0x11')]);}else{logger[_0x1c6d('0x12')]('MailApplication,\x20%s,\x20%s',_0x135031,'request\x20sent');_0x46bcbe(_0x218535['result']['message']);}})[_0x1c6d('0x13')](function(_0x4202c0){logger[_0x1c6d('0xe')](_0x1c6d('0x10'),_0x135031,_0x4202c0);_0x177845(_0x4202c0);});});}exports[_0x1c6d('0x14')]=function(_0x3b56ba){var _0x3279e5=this;return new Promise(function(_0x5be799,_0x48a335){return db['MailApplication']['update'](_0x3b56ba['body'],{'raw':_0x3b56ba[_0x1c6d('0x15')]?_0x3b56ba[_0x1c6d('0x15')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3b56ba['options']?_0x3b56ba[_0x1c6d('0x15')]['where']||null:null,'attributes':_0x3b56ba['options']?_0x3b56ba[_0x1c6d('0x15')]['attributes']||null:null,'limit':_0x3b56ba[_0x1c6d('0x15')]?_0x3b56ba['options']['limit']||null:null})[_0x1c6d('0x16')](function(_0x35c107){logger['info']('UpdateMailApplication',_0x3b56ba);logger[_0x1c6d('0x17')]('UpdateMailApplication',_0x3b56ba,JSON[_0x1c6d('0x18')](_0x35c107));_0x5be799(_0x35c107);})['catch'](function(_0x2d9d00){logger[_0x1c6d('0xe')]('UpdateMailApplication',_0x2d9d00[_0x1c6d('0x11')],_0x3b56ba);_0x48a335(_0x3279e5['error'](0x1f4,_0x2d9d00[_0x1c6d('0x11')]));});});};
\ No newline at end of file
+var _0x888e=['update','body','options','raw','where','limit','stringify','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','then','info','MailApplication,\x20%s,\x20%s','debug','MailApplication,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','UpdateMailApplication','MailApplication'];(function(_0x20c880,_0x14bf51){var _0x24809a=function(_0x55bf57){while(--_0x55bf57){_0x20c880['push'](_0x20c880['shift']());}};_0x24809a(++_0x14bf51);}(_0x888e,0x116));var _0xe888=function(_0x23732c,_0x4ec983){_0x23732c=_0x23732c-0x0;var _0x4f2c26=_0x888e[_0x23732c];return _0x4f2c26;};'use strict';var _=require(_0xe888('0x0'));var util=require('util');var moment=require(_0xe888('0x1'));var BPromise=require(_0xe888('0x2'));var rs=require(_0xe888('0x3'));var fs=require('fs');var Redis=require(_0xe888('0x4'));var db=require(_0xe888('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xe888('0x6'))('rpc');var config=require(_0xe888('0x7'));var jayson=require(_0xe888('0x8'));var client=jayson[_0xe888('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x39c97b,_0x24625d,_0x2bd98e){return new BPromise(function(_0x1281c7,_0x4fedad){return client['request'](_0x39c97b,_0x2bd98e)[_0xe888('0xa')](function(_0x216e27){logger[_0xe888('0xb')](_0xe888('0xc'),_0x24625d,'request\x20sent');logger[_0xe888('0xd')](_0xe888('0xe'),_0x24625d,_0xe888('0xf'),JSON['stringify'](_0x216e27));if(_0x216e27[_0xe888('0x10')]){if(_0x216e27['error'][_0xe888('0x11')]===0x1f4){logger[_0xe888('0x10')]('MailApplication,\x20%s,\x20%s',_0x24625d,_0x216e27[_0xe888('0x10')]['message']);return _0x4fedad(_0x216e27['error'][_0xe888('0x12')]);}logger[_0xe888('0x10')](_0xe888('0xc'),_0x24625d,_0x216e27[_0xe888('0x10')][_0xe888('0x12')]);return _0x1281c7(_0x216e27[_0xe888('0x10')][_0xe888('0x12')]);}else{logger[_0xe888('0xb')](_0xe888('0xc'),_0x24625d,_0xe888('0xf'));_0x1281c7(_0x216e27[_0xe888('0x13')]['message']);}})['catch'](function(_0x196287){logger['error'](_0xe888('0xc'),_0x24625d,_0x196287);_0x4fedad(_0x196287);});});}exports[_0xe888('0x14')]=function(_0x48c529){var _0x555f4c=this;return new Promise(function(_0x46128e,_0x4cbcf7){return db[_0xe888('0x15')][_0xe888('0x16')](_0x48c529[_0xe888('0x17')],{'raw':_0x48c529[_0xe888('0x18')]?_0x48c529['options'][_0xe888('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x48c529[_0xe888('0x18')]?_0x48c529[_0xe888('0x18')][_0xe888('0x1a')]||null:null,'attributes':_0x48c529[_0xe888('0x18')]?_0x48c529[_0xe888('0x18')]['attributes']||null:null,'limit':_0x48c529[_0xe888('0x18')]?_0x48c529[_0xe888('0x18')][_0xe888('0x1b')]||null:null})[_0xe888('0xa')](function(_0x35b265){logger[_0xe888('0xb')](_0xe888('0x14'),_0x48c529);logger[_0xe888('0xd')](_0xe888('0x14'),_0x48c529,JSON[_0xe888('0x1c')](_0x35b265));_0x46128e(_0x35b265);})[_0xe888('0x1d')](function(_0xce0919){logger[_0xe888('0x10')](_0xe888('0x14'),_0xce0919['message'],_0x48c529);_0x4cbcf7(_0x555f4c[_0xe888('0x10')](0x1f4,_0xce0919[_0xe888('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcef4=['update','delete','mailinteraction:destroy','destroy','exports','express','get','isAuthenticated','index','/describe','describe','/:id','download','post','create','/:id/messages','addMessage','/:id/tags','mail','mailinteraction:addtags','addTags','tracked'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xcef4,0x1e9));var _0x4cef=function(_0x383627,_0x5be16e){_0x383627=_0x383627-0x0;var _0x2c16a0=_0xcef4[_0x383627];return _0x2c16a0;};'use strict';var express=require(_0x4cef('0x0'));var router=express['Router']();var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var controller=require('./mailInteraction.controller');router[_0x4cef('0x1')]('/',auth[_0x4cef('0x2')](),controller[_0x4cef('0x3')]);router[_0x4cef('0x1')](_0x4cef('0x4'),auth[_0x4cef('0x2')](),controller[_0x4cef('0x5')]);router[_0x4cef('0x1')](_0x4cef('0x6'),auth['isAuthenticated'](),controller['show']);router[_0x4cef('0x1')]('/:id/messages',auth[_0x4cef('0x2')](),controller['getMessages']);router['get']('/:id/download',auth[_0x4cef('0x2')](),controller[_0x4cef('0x7')]);router[_0x4cef('0x8')]('/',auth[_0x4cef('0x2')](),controller[_0x4cef('0x9')]);router[_0x4cef('0x8')](_0x4cef('0xa'),auth[_0x4cef('0x2')](),controller[_0x4cef('0xb')]);router[_0x4cef('0x8')](_0x4cef('0xc'),auth[_0x4cef('0x2')](),interaction['tracked'](_0x4cef('0xd'),_0x4cef('0xe')),controller[_0x4cef('0xf')]);router['put'](_0x4cef('0x6'),auth[_0x4cef('0x2')](),interaction[_0x4cef('0x10')]('mail','mailinteraction:update'),controller[_0x4cef('0x11')]);router[_0x4cef('0x12')]('/:id',auth[_0x4cef('0x2')](),interaction[_0x4cef('0x10')](_0x4cef('0xd'),_0x4cef('0x13')),controller[_0x4cef('0x14')]);router[_0x4cef('0x12')](_0x4cef('0xc'),auth[_0x4cef('0x2')](),controller['removeTags']);module[_0x4cef('0x15')]=router;
\ No newline at end of file
+var _0x6788=['/:id/download','post','create','addMessage','/:id/tags','mail','mailinteraction:addtags','addTags','tracked','update','delete','mailinteraction:destroy','removeTags','exports','express','Router','../../components/interaction/service','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/messages','getMessages'];(function(_0x1e0139,_0x4970a3){var _0xbfc2ba=function(_0x20ee9e){while(--_0x20ee9e){_0x1e0139['push'](_0x1e0139['shift']());}};_0xbfc2ba(++_0x4970a3);}(_0x6788,0xc4));var _0x8678=function(_0x411017,_0x4a8117){_0x411017=_0x411017-0x0;var _0x2adeea=_0x6788[_0x411017];return _0x2adeea;};'use strict';var express=require(_0x8678('0x0'));var router=express[_0x8678('0x1')]();var auth=require('../../components/auth/service');var interaction=require(_0x8678('0x2'));var controller=require('./mailInteraction.controller');router[_0x8678('0x3')]('/',auth[_0x8678('0x4')](),controller[_0x8678('0x5')]);router['get'](_0x8678('0x6'),auth[_0x8678('0x4')](),controller[_0x8678('0x7')]);router[_0x8678('0x3')](_0x8678('0x8'),auth['isAuthenticated'](),controller[_0x8678('0x9')]);router[_0x8678('0x3')](_0x8678('0xa'),auth[_0x8678('0x4')](),controller[_0x8678('0xb')]);router[_0x8678('0x3')](_0x8678('0xc'),auth[_0x8678('0x4')](),controller['download']);router[_0x8678('0xd')]('/',auth[_0x8678('0x4')](),controller[_0x8678('0xe')]);router[_0x8678('0xd')](_0x8678('0xa'),auth[_0x8678('0x4')](),controller[_0x8678('0xf')]);router[_0x8678('0xd')](_0x8678('0x10'),auth[_0x8678('0x4')](),interaction['tracked'](_0x8678('0x11'),_0x8678('0x12')),controller[_0x8678('0x13')]);router['put']('/:id',auth['isAuthenticated'](),interaction[_0x8678('0x14')](_0x8678('0x11'),'mailinteraction:update'),controller[_0x8678('0x15')]);router[_0x8678('0x16')](_0x8678('0x8'),auth[_0x8678('0x4')](),interaction['tracked']('mail',_0x8678('0x17')),controller['destroy']);router[_0x8678('0x16')]('/:id/tags',auth[_0x8678('0x4')](),controller[_0x8678('0x18')]);module[_0x8678('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x321e=['DATE','STRING','TEXT','long','ENUM','out','sequelize','iconv','exports','BOOLEAN'];(function(_0x1bd0a2,_0x55a43e){var _0x5e254f=function(_0x1af5db){while(--_0x1af5db){_0x1bd0a2['push'](_0x1bd0a2['shift']());}};_0x5e254f(++_0x55a43e);}(_0x321e,0xba));var _0xe321=function(_0x220484,_0x3e8620){_0x220484=_0x220484-0x0;var _0x3f1bc5=_0x321e[_0x220484];return _0x3f1bc5;};'use strict';var Sequelize=require(_0xe321('0x0'));var iconv=require(_0xe321('0x1'));module[_0xe321('0x2')]={'closed':{'type':Sequelize[_0xe321('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xe321('0x4')]},'disposition':{'type':Sequelize[_0xe321('0x5')]},'secondDisposition':{'type':Sequelize[_0xe321('0x5')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0xe321('0x5')]},'inReplyTo':{'type':Sequelize['STRING'](0x1fe)},'to':{'type':Sequelize[_0xe321('0x5')]},'cc':{'type':Sequelize[_0xe321('0x6')](_0xe321('0x7'))},'subject':{'type':Sequelize[_0xe321('0x6')]()},'attach':{'type':Sequelize[_0xe321('0x3')],'defaultValue':![]},'read1stAt':{'type':Sequelize[_0xe321('0x4')]},'substatus':{'type':Sequelize[_0xe321('0x5')](0x3c)},'substatusAt':{'type':Sequelize[_0xe321('0x4')]},'firstMsgDirection':{'type':Sequelize[_0xe321('0x8')]('in','out'),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xe321('0x4')]},'lastMsgDirection':{'type':Sequelize[_0xe321('0x8')]('in',_0xe321('0x9')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x95d9=['BOOLEAN','DATE','STRING','TEXT','long','ENUM','sequelize','iconv','exports'];(function(_0x250071,_0x301941){var _0x34e574=function(_0x567186){while(--_0x567186){_0x250071['push'](_0x250071['shift']());}};_0x34e574(++_0x301941);}(_0x95d9,0x138));var _0x995d=function(_0x4d8ed9,_0x2ae284){_0x4d8ed9=_0x4d8ed9-0x0;var _0x1e2140=_0x95d9[_0x4d8ed9];return _0x1e2140;};'use strict';var Sequelize=require(_0x995d('0x0'));var iconv=require(_0x995d('0x1'));module[_0x995d('0x2')]={'closed':{'type':Sequelize[_0x995d('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x995d('0x4')]},'disposition':{'type':Sequelize[_0x995d('0x5')]},'secondDisposition':{'type':Sequelize[_0x995d('0x5')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x995d('0x5')]},'inReplyTo':{'type':Sequelize['STRING'](0x1fe)},'to':{'type':Sequelize[_0x995d('0x5')]},'cc':{'type':Sequelize[_0x995d('0x6')](_0x995d('0x7'))},'subject':{'type':Sequelize['TEXT']()},'attach':{'type':Sequelize[_0x995d('0x3')],'defaultValue':![]},'read1stAt':{'type':Sequelize[_0x995d('0x4')]},'substatus':{'type':Sequelize['STRING'](0x3c)},'substatusAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0x995d('0x8')]('in','out'),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x995d('0x4')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in','out'),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x995d('0x3')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd69a=['hasOwnProperty','pick','format','YYYY-MM-DD\x20HH:mm:ss','include','findAll','inlineCss','rows','addTags','setTags','spread','removeTags','unix','root','files','tmp','join','server','attachments','transcript-%d-%s.zip','Attachment','Attachments','bcc','subject','mkdirSync','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','basename','existsSync','readFileSync','build','writeFileSync','message%d.eml','download','unlinkSync','eml-format','rimraf','moment','bluebird','util','path','squel','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','./mailInteraction.socket','register','sendStatus','status','end','json','undefined','count','offset','limit','set','Content-Range','update','destroy','error','stack','Users','map','fullname','TagIds','Tags','split','push','findOne','out','plainBody','-id','catch','then','index','MailInteraction','rawAttributes','fieldName','type','model','name','query','intersection','attributes','fields','length','order','sort','where','filters','select','field','color','from','u.id','u.fullname','ui.MailInteractionId','user_has_mail_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','a.id\x20=\x20i.MailAccountId','mail_messages','it.MailInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','find','unreadMessages','having','`\x20>\x200','Contact','operator','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','start','Tag','forEach','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','keys','some','compact','isEmpty','MailAccountId','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`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)','group','Sequelize','QueryTypes','SELECT','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','role','agent','user','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.createdAt','i.updatedAt','i.closedAt','i.attach','i.lastMsgDirection','i.subject','i.secondDisposition','i.thirdDisposition','i.substatus','i.MailAccountId','i.UserId','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','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','Setting','enableEmailPreview','params','includeAll','options','create','body','describe','addMessage','MailMessage','ids','omit','getMessages'];(function(_0x322624,_0x18e0e1){var _0x955de3=function(_0x4c0806){while(--_0x4c0806){_0x322624['push'](_0x322624['shift']());}};_0x955de3(++_0x18e0e1);}(_0xd69a,0x10e));var _0xad69=function(_0x178d76,_0x27c3e7){_0x178d76=_0x178d76-0x0;var _0x349f98=_0xd69a[_0x178d76];return _0x349f98;};'use strict';var emlformat=require(_0xad69('0x0'));var rimraf=require(_0xad69('0x1'));var zipdir=require('zip-dir');var moment=require(_0xad69('0x2'));var BPromise=require(_0xad69('0x3'));var util=require(_0xad69('0x4'));var path=require(_0xad69('0x5'));var fs=require('fs');var _=require('lodash');var squel=require(_0xad69('0x6'));var juice=require('juice');var Redis=require(_0xad69('0x7'));var qs=require(_0xad69('0x8'));var as=require(_0xad69('0x9'));var logger=require(_0xad69('0xa'))(_0xad69('0xb'));var config=require(_0xad69('0xc'));var db=require(_0xad69('0xd'))['db'];var htmlEntities=require('html-entities');config[_0xad69('0xe')]=_[_0xad69('0xf')](config[_0xad69('0xe')],{'host':_0xad69('0x10'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xad69('0x11'))[_0xad69('0x12')](socket);function respondWithStatusCode(_0x5201ea,_0x5650a3){_0x5650a3=_0x5650a3||0xcc;return function(_0x471d4e){if(_0x471d4e){return _0x5201ea[_0xad69('0x13')](_0x5650a3);}return _0x5201ea[_0xad69('0x14')](_0x5650a3)[_0xad69('0x15')]();};}function respondWithResult(_0x1c29a4,_0x5d5e45){_0x5d5e45=_0x5d5e45||0xc8;return function(_0x247e3c){if(_0x247e3c){return _0x1c29a4[_0xad69('0x14')](_0x5d5e45)[_0xad69('0x16')](_0x247e3c);}};}function respondWithFilteredResult(_0x88dcc1,_0x5911dd){return function(_0x5d942e){if(_0x5d942e){var _0x50bc9a=typeof _0x5911dd['offset']==='undefined'&&typeof _0x5911dd['limit']===_0xad69('0x17');var _0xd1fe73=_0x5d942e[_0xad69('0x18')];var _0x5be3a3=_0x50bc9a?0x0:_0x5911dd[_0xad69('0x19')];var _0x3391d1=_0x50bc9a?_0x5d942e[_0xad69('0x18')]:_0x5911dd[_0xad69('0x19')]+_0x5911dd[_0xad69('0x1a')];var _0x40ac83;if(_0x3391d1>=_0xd1fe73){_0x3391d1=_0xd1fe73;_0x40ac83=0xc8;}else{_0x40ac83=0xce;}_0x88dcc1['status'](_0x40ac83);return _0x88dcc1[_0xad69('0x1b')](_0xad69('0x1c'),_0x5be3a3+'-'+_0x3391d1+'/'+_0xd1fe73)[_0xad69('0x16')](_0x5d942e);}return null;};}function saveUpdates(_0x47e1f8){return function(_0x3b0d5f){if(_0x3b0d5f){return _0x3b0d5f[_0xad69('0x1d')](_0x47e1f8)['then'](function(_0x4b468e){return _0x4b468e;});}return null;};}function removeEntity(_0x2f2b42){return function(_0x168231){if(_0x168231){return _0x168231[_0xad69('0x1e')]()['then'](function(){_0x2f2b42[_0xad69('0x14')](0xcc)[_0xad69('0x15')]();});}};}function handleEntityNotFound(_0x3313fb){return function(_0x28bd69){if(!_0x28bd69){_0x3313fb[_0xad69('0x13')](0x194);}return _0x28bd69;};}function handleError(_0x2dc26b,_0x5927bc){_0x5927bc=_0x5927bc||0x1f4;return function(_0x156c63){logger[_0xad69('0x1f')](_0x156c63[_0xad69('0x20')]);if(_0x156c63['name']){delete _0x156c63['name'];}_0x2dc26b['status'](_0x5927bc)['send'](_0x156c63);};}function getInteractionUsers(_0x1aac13,_0x530eab){return new BPromise(function(_0xa2d8dc,_0xe1f9bb){try{if(_0x530eab[_0x1aac13['id']]){_0x1aac13[_0xad69('0x21')]=_[_0xad69('0x22')](_0x530eab[_0x1aac13['id']],function(_0x408e93){return{'id':_0x408e93['id'],'fullname':_0x408e93[_0xad69('0x23')]};});}}catch(_0x735828){_0xe1f9bb(_0x735828);}_0xa2d8dc(_0x1aac13);});}function getInteractionTags(_0x2723b2,_0xacf0c8){return new BPromise(function(_0x21f3cd,_0x1d81ec){try{if(_0x2723b2[_0xad69('0x24')]){_0x2723b2[_0xad69('0x25')]=[];_0x2723b2[_0xad69('0x24')][_0xad69('0x26')](',')['forEach'](function(_0x14cac8){_0x2723b2[_0xad69('0x25')][_0xad69('0x27')](_0xacf0c8[_0x14cac8]);});}delete _0x2723b2[_0xad69('0x24')];}catch(_0x33d471){_0x1d81ec(_0x33d471);}_0x21f3cd(_0x2723b2);});}function getLastMessageText(_0x4523c3){return new BPromise(function(_0x785a3f,_0x2c43c7){return db['MailMessage'][_0xad69('0x28')]({'where':{'$and':[{'MailInteractionId':_0x4523c3['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0xad69('0x29')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0xad69('0x2a')],'order':_0xad69('0x2b'),'raw':!![]})['then'](function(_0x10d342){if(_0x10d342&&_0x10d342[_0xad69('0x2a')]){_0x4523c3['lastMsgText']=_['trimStart'](_0x10d342[_0xad69('0x2a')]);}_0x785a3f(_0x4523c3);})[_0xad69('0x2c')](function(_0x44d2b4){_0x2c43c7(_0x44d2b4);});});}function updateMailInteraction(_0x5b2e66,_0x4a939f,_0x563411,_0x41fea9){return new BPromise(function(_0x14b8f7,_0x278be1){return getInteractionUsers(_0x5b2e66,_0x563411)['then'](function(_0xddcd4a){return getInteractionTags(_0xddcd4a,_0x4a939f);})[_0xad69('0x2d')](function(_0x4d136a){if(_0x41fea9){_0x14b8f7(getLastMessageText(_0x4d136a));}else{_0x14b8f7(_0x4d136a);}})['catch'](function(_0x39a6ac){_0x278be1(_0x39a6ac);});});}exports[_0xad69('0x2e')]=function(_0x366a8f,_0x5520df){var _0x4594b8={},_0x337336={},_0x323889={'count':0x0,'rows':[]};var _0x5e1c1c=_['map'](db[_0xad69('0x2f')][_0xad69('0x30')],function(_0x55ecf0){return{'name':_0x55ecf0[_0xad69('0x31')],'type':_0x55ecf0[_0xad69('0x32')]['key']};});_0x337336[_0xad69('0x33')]=_['map'](_0x5e1c1c,_0xad69('0x34'));_0x337336[_0xad69('0x35')]=_['keys'](_0x366a8f[_0xad69('0x35')]);_0x337336['filters']=_[_0xad69('0x36')](_0x337336['model'],_0x337336[_0xad69('0x35')]);_0x4594b8[_0xad69('0x37')]=_[_0xad69('0x36')](_0x337336[_0xad69('0x33')],qs[_0xad69('0x38')](_0x366a8f[_0xad69('0x35')]['fields']));_0x4594b8[_0xad69('0x37')]=_0x4594b8[_0xad69('0x37')][_0xad69('0x39')]?_0x4594b8[_0xad69('0x37')]:_0x337336[_0xad69('0x33')];if(!_0x366a8f['query']['hasOwnProperty']('nolimit')){_0x4594b8[_0xad69('0x1a')]=qs[_0xad69('0x1a')](_0x366a8f['query']['limit']);_0x4594b8[_0xad69('0x19')]=qs[_0xad69('0x19')](_0x366a8f[_0xad69('0x35')][_0xad69('0x19')]);}_0x4594b8[_0xad69('0x3a')]=qs[_0xad69('0x3b')](_0x366a8f['query']['sort']);_0x4594b8[_0xad69('0x3c')]=qs[_0xad69('0x3d')](_['pick'](_0x366a8f[_0xad69('0x35')],_0x337336[_0xad69('0x3d')]),_0x5e1c1c);var _0x5c2fdb=[];var _0x5c80a8=squel[_0xad69('0x3e')]()[_0xad69('0x3f')]('id')[_0xad69('0x3f')](_0xad69('0x34'))[_0xad69('0x3f')](_0xad69('0x40'))[_0xad69('0x41')]('tools_tags');var _0x31e2b6=squel['select']()[_0xad69('0x3f')](_0xad69('0x42'))[_0xad69('0x3f')](_0xad69('0x43'))[_0xad69('0x3f')](_0xad69('0x44'))[_0xad69('0x41')](_0xad69('0x45'),'ui')[_0xad69('0x46')](_0xad69('0x47'),'u',_0xad69('0x48'));var _0x5d1414=squel[_0xad69('0x3e')]()[_0xad69('0x41')]('mail_interactions','i')['left_join'](_0xad69('0x49'),'c',_0xad69('0x4a'))[_0xad69('0x46')](_0xad69('0x47'),'o',_0xad69('0x4b'))['left_join']('mail_accounts','a',_0xad69('0x4c'))[_0xad69('0x46')](_0xad69('0x4d'),'me','me.MailInteractionId\x20=\x20i.id')['left_join']('mail_interaction_has_tags','it',_0xad69('0x4e'))[_0xad69('0x46')](_0xad69('0x4f'),'t',_0xad69('0x50'));var _0xb098dc=squel[_0xad69('0x51')]();var _0x533686=[];var _0x448ac9=squel[_0xad69('0x51')]();var _0x2a52e3;if(_0x366a8f[_0xad69('0x35')][_0xad69('0x52')]){_0x2a52e3=as['parseSearch'](_0x366a8f[_0xad69('0x35')][_0xad69('0x52')]);var _0x5790b5=_0x2a52e3[_0xad69('0x53')];for(var _0x5029d0=0x0;_0x5029d0<_0x2a52e3[_0xad69('0x54')][_0xad69('0x39')];_0x5029d0++){var _0x2e5799=_0x2a52e3[_0xad69('0x54')][_0x5029d0];var _0x42b269='i';var _0x5d22d4=_[_0xad69('0x55')](_0x5e1c1c,['name',_0x2e5799[_0xad69('0x3f')]]);if(!_0x5d22d4){switch(_0x2e5799['field']){case _0xad69('0x56'):if(_0x2e5799['value']==0x1){_0x5d1414[_0xad69('0x57')]('`'+_0x2e5799['field']+'`\x20=\x200');}else{_0x5d1414['having']('`'+_0x2e5799['field']+_0xad69('0x58'));}break;case _0xad69('0x59'):if(_0x2e5799[_0xad69('0x5a')]==='$substring'){if(_0x2e5799[_0xad69('0x5b')][_0xad69('0x26')]('\x20')[_0xad69('0x39')]>0x1){_0xb098dc[_0x5790b5](_0xad69('0x5c'),qs[_0xad69('0x5d')](_0x2e5799[_0xad69('0x5b')]),null);}else{var _0x274437='%'+_0x2e5799['value']+'%';_0xb098dc[_0x5790b5](_0xad69('0x5e'),_0x274437,_0x274437,_0x274437);}}else{_0x5d22d4=_['find'](_0x5e1c1c,[_0xad69('0x34'),_0xad69('0x5f')]);_0x2e5799['field']=_0xad69('0x5f');_0x323cc1=as[_0xad69('0x60')](_0x42b269,_0x5d22d4[_0xad69('0x32')],_0x2e5799);_0xb098dc[_0x5790b5](_0x323cc1['text'],_0x323cc1[_0xad69('0x5b')][_0xad69('0x61')],_0x323cc1[_0xad69('0x5b')]['end']);}break;case _0xad69('0x62'):var _0x50f583=_0x2e5799[_0xad69('0x5b')][_0xad69('0x26')](',')['map'](function(_0x1a6445){return Number(_0x1a6445);});_0x50f583[_0xad69('0x63')](function(_0x23004e){_0x448ac9['or'](_0xad69('0x64'),'%,'+_0x23004e+',%');});_0x533686=_[_0xad69('0x65')](_0x533686,_0x50f583);break;case _0xad69('0x66'):if(_0x2e5799[_0xad69('0x5a')]==='$substring'){_0xb098dc[_0x5790b5](_0xad69('0x67'),'%'+_0x2e5799[_0xad69('0x5b')]+'%',null);}else{_0x5d22d4=_[_0xad69('0x55')](_0x5e1c1c,[_0xad69('0x34'),_0xad69('0x68')]);_0x2e5799[_0xad69('0x3f')]=_0xad69('0x68');_0x323cc1=as[_0xad69('0x60')](_0x42b269,_0x5d22d4[_0xad69('0x32')],_0x2e5799);_0xb098dc[_0x5790b5](_0x323cc1[_0xad69('0x69')],_0x323cc1[_0xad69('0x5b')][_0xad69('0x61')],_0x323cc1['value'][_0xad69('0x15')]);}break;case _0xad69('0x2a'):_0x323cc1=as[_0xad69('0x60')]('me',null,_0x2e5799);_0xb098dc[_0x5790b5](_0x323cc1[_0xad69('0x69')],_0x323cc1[_0xad69('0x5b')]['start'],_0x323cc1[_0xad69('0x5b')][_0xad69('0x15')]);break;}}else{var _0x323cc1=as[_0xad69('0x60')](_0x42b269,_0x5d22d4['type'],_0x2e5799);_0xb098dc[_0x5790b5](_0x323cc1['text'],_0x323cc1[_0xad69('0x5b')][_0xad69('0x61')],_0x323cc1['value']['end']);}}}else{var _0x33eb79=_(_0x366a8f[_0xad69('0x35')])[_0xad69('0x6a')]()['map'](function(_0x46ce8a){return _[_0xad69('0x6b')](_0x5e1c1c,[_0xad69('0x34'),_0x46ce8a])?_0x46ce8a:undefined;})[_0xad69('0x6c')]()[_0xad69('0x5b')]();if(!_[_0xad69('0x6d')](_0x33eb79)){_0x33eb79[_0xad69('0x63')](function(_0x1a6355){if(_0x1a6355===_0xad69('0x6e')){_0x5d1414[_0xad69('0x3c')](_0xad69('0x6f'),[][_0xad69('0x70')](_0x366a8f[_0xad69('0x35')][_0x1a6355]));}else if(_0x1a6355===_0xad69('0x71')){var _0x18e525=JSON[_0xad69('0x72')](_0x366a8f[_0xad69('0x35')][_0x1a6355])[_0xad69('0x73')];var _0x5bae31=JSON[_0xad69('0x72')](_0x366a8f['query'][_0x1a6355])[_0xad69('0x74')];_0x5d1414[_0xad69('0x3c')](_0xad69('0x75'),_0x18e525,_0x5bae31);}else{if(_0x366a8f[_0xad69('0x35')][_0x1a6355]===_0xad69('0x76')){_0x5d1414['where']('i.'+_0x1a6355+_0xad69('0x77'));}else{_0x5d1414[_0xad69('0x3c')]('i.'+_0x1a6355+_0xad69('0x78'),_0x366a8f[_0xad69('0x35')][_0x1a6355]);}}});}if(_0x366a8f['query'][_0xad69('0x79')]){if(_0x366a8f[_0xad69('0x35')][_0xad69('0x79')]==0x1){_0x5d1414['having'](_0xad69('0x7a'));}else{_0x5d1414[_0xad69('0x57')]('`unreadMessages`\x20>\x200');}}if(_0x366a8f['query'][_0xad69('0x7b')]){_0x533686=_[_0xad69('0x7c')](_0x366a8f['query'][_0xad69('0x7b')])?_0x366a8f[_0xad69('0x35')][_0xad69('0x7b')]:new Array(_0x366a8f[_0xad69('0x35')][_0xad69('0x7b')]);_0x533686[_0xad69('0x63')](function(_0x317143){_0x448ac9['or'](_0xad69('0x64'),'%,'+_0x317143+',%');});}if(_0x366a8f[_0xad69('0x35')][_0xad69('0x7d')]){var _0x41f94a=_0x366a8f[_0xad69('0x35')][_0xad69('0x7d')][_0xad69('0x7e')]('\x5c','\x5c\x5c')[_0xad69('0x7e')](/'/g,'\x27\x27');if(qs[_0xad69('0x7f')](_0x41f94a)){_0xb098dc['or'](_0xad69('0x80'),_0x41f94a+'%');}else if(qs[_0xad69('0x81')](_0x41f94a)){_0xb098dc['or'](_0xad69('0x82'),_0x41f94a+'%');}else{_0xb098dc['or'](_0xad69('0x83'),qs[_0xad69('0x5d')](_0x41f94a))['or']('MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xad69('0x5d')](_0x41f94a));}}}_0x5d1414[_0xad69('0x3c')](_0xb098dc);_0x5d1414[_0xad69('0x84')]('i.id');var _0x2a7631={'type':db[_0xad69('0x85')][_0xad69('0x86')][_0xad69('0x87')],'raw':!![]};var _0x3dbe73=_0x5d1414['clone']();_0x3dbe73[_0xad69('0x3f')](_0xad69('0x88'));_0x3dbe73['field'](_0xad69('0x89'),_0xad69('0x56'));if(_0x4594b8[_0xad69('0x3a')]){_0x4594b8[_0xad69('0x3a')][_0xad69('0x63')](function(_0x4dd076){var _0x56552f=_0x4dd076[0x0]===_0xad69('0x8a')?_0x4dd076[0x0]:'i.'+_0x4dd076[0x0];_0x5d1414[_0xad69('0x3a')](_0x56552f,_0x4dd076[0x1]==='DESC'?![]:!![]);});}if(!_[_0xad69('0x6d')](_0x533686)){_0x5d1414[_0xad69('0x57')](_0x448ac9);_0x3dbe73[_0xad69('0x3c')]('t.id\x20IN\x20?',_0x533686);}BPromise[_0xad69('0x8b')]()['then'](function(){if(!_0x2a52e3){if(_0x366a8f[_0xad69('0x35')][_0xad69('0x6e')])return;_0x3dbe73[_0xad69('0x3c')](_0xad69('0x8c'));_0x5d1414[_0xad69('0x3c')](_0xad69('0x8c'));return;}if(_0x366a8f['user'][_0xad69('0x8d')]!==_0xad69('0x8e'))return;return _0x366a8f[_0xad69('0x8f')][_0xad69('0x90')]({'attributes':['id'],'raw':!![]})[_0xad69('0x2d')](function(_0x5cfccb){if(_[_0xad69('0x6d')](_0x5cfccb)){_0x3dbe73['where'](_0xad69('0x91'));_0x5d1414['where'](_0xad69('0x91'));}else{_0x3dbe73[_0xad69('0x3c')](_0xad69('0x6f'),_[_0xad69('0x22')](_0x5cfccb,'id'));_0x5d1414[_0xad69('0x3c')](_0xad69('0x6f'),_[_0xad69('0x22')](_0x5cfccb,'id'));}});})[_0xad69('0x2d')](function(){if(_0x366a8f[_0xad69('0x8f')][_0xad69('0x8d')]===_0xad69('0x8e')&&!_0x2a52e3&&!_0x366a8f[_0xad69('0x35')][_0xad69('0x6e')])return[];return db[_0xad69('0x92')][_0xad69('0x35')](_0x3dbe73[_0xad69('0x93')](),_0x2a7631);})[_0xad69('0x2d')](function(_0xe70062){_0x323889['count']=_0xe70062['length'];if(_0x323889[_0xad69('0x18')]===0x0)return[];return db[_0xad69('0x92')][_0xad69('0x35')](_0x5c80a8[_0xad69('0x93')](),_0x2a7631)[_0xad69('0x2d')](function(_0x16c1ae){_0x5c2fdb=_[_0xad69('0x94')](_0x16c1ae,'id');_0x2a7631=_[_0xad69('0x95')](_0x2a7631,{'model':db[_0xad69('0x2f')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x366a8f[_0xad69('0x35')]['fields']){_0x4594b8[_0xad69('0x37')][_0xad69('0x63')](function(_0x52bb43){_0x5d1414[_0xad69('0x3f')]('i.'+_0x52bb43);});}else{_0x5d1414[_0xad69('0x3f')](_0xad69('0x89'),_0xad69('0x56'));_0x5d1414[_0xad69('0x3f')](_0xad69('0x96'),_0xad69('0x97'));_0x5d1414[_0xad69('0x3f')](_0xad69('0x98'),_0xad69('0x99'));_0x5d1414['field']('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',_0xad69('0x8a'));_0x5d1414['field'](_0xad69('0x88'));_0x5d1414[_0xad69('0x3f')](_0xad69('0x9a'));_0x5d1414['field'](_0xad69('0x9b'));_0x5d1414['field']('i.closed');_0x5d1414[_0xad69('0x3f')](_0xad69('0x9c'));_0x5d1414[_0xad69('0x3f')](_0xad69('0x9d'));_0x5d1414[_0xad69('0x3f')]('i.lastMsgAt');_0x5d1414[_0xad69('0x3f')](_0xad69('0x9e'));_0x5d1414[_0xad69('0x3f')](_0xad69('0x9f'));_0x5d1414[_0xad69('0x3f')]('i.disposition');_0x5d1414[_0xad69('0x3f')](_0xad69('0xa0'));_0x5d1414[_0xad69('0x3f')](_0xad69('0xa1'));_0x5d1414['field'](_0xad69('0xa2'));_0x5d1414[_0xad69('0x3f')]('i.to');_0x5d1414['field']('i.ContactId');_0x5d1414['field'](_0xad69('0xa3'));_0x5d1414[_0xad69('0x3f')](_0xad69('0xa4'));_0x5d1414['field'](_0xad69('0xa5'),_0xad69('0xa6'));_0x5d1414[_0xad69('0x3f')](_0xad69('0xa7'),_0xad69('0xa8'));_0x5d1414[_0xad69('0x3f')](_0xad69('0xa9'),_0xad69('0xaa'));_0x5d1414[_0xad69('0x3f')](_0xad69('0xab'),_0xad69('0xac'));_0x5d1414['field'](_0xad69('0xad'),_0xad69('0xae'));_0x5d1414[_0xad69('0x3f')](_0xad69('0xaf'),_0xad69('0xb0'));_0x5d1414[_0xad69('0x3f')](_0xad69('0xb1'),_0xad69('0xb2'));_0x5d1414['field'](_0xad69('0xb3'),_0xad69('0xb4'));_0x5d1414['field'](_0xad69('0xb5'),_0xad69('0x24'));}if(_0x4594b8['limit'])_0x5d1414[_0xad69('0x1a')](_0x4594b8[_0xad69('0x1a')]);if(_0x4594b8[_0xad69('0x19')])_0x5d1414[_0xad69('0x19')](_0x4594b8[_0xad69('0x19')]);return db['sequelize'][_0xad69('0x35')](_0x5d1414['toString'](),_0x2a7631);})[_0xad69('0x2d')](function(_0x36c53a){if(_0x36c53a[_0xad69('0x39')]>0x0)_0x31e2b6[_0xad69('0x3c')](_0xad69('0xb6'),_[_0xad69('0x22')](_0x36c53a,'id'));return db[_0xad69('0x92')][_0xad69('0x35')](_0x31e2b6[_0xad69('0x93')](),_0x2a7631)[_0xad69('0x2d')](function(_0x26f365){var _0x1231e5=_[_0xad69('0xb7')](_0x26f365,_0xad69('0xb8'));var _0x2577b8=[];return db[_0xad69('0xb9')][_0xad69('0x28')]({'attributes':[_0xad69('0xba')],'raw':!![]})['then'](function(_0x5e5264){var _0x385155=_0x5e5264['enableEmailPreview'];_0x36c53a[_0xad69('0x63')](function(_0x221a8c){_0x2577b8[_0xad69('0x27')](updateMailInteraction(_0x221a8c,_0x5c2fdb,_0x1231e5,_0x385155));});return BPromise['all'](_0x2577b8);});});});})[_0xad69('0x2d')](function(_0x5ca066){_0x323889['rows']=_0x5ca066;return _0x323889;})['then'](respondWithFilteredResult(_0x5520df,_0x4594b8))['catch'](handleError(_0x5520df,null));};exports['show']=function(_0x226e59,_0x3097ea){var _0x56816e={'raw':![],'where':{'id':_0x226e59[_0xad69('0xbb')]['id']}},_0x493a4d={};_0x493a4d[_0xad69('0x33')]=_['keys'](db[_0xad69('0x2f')][_0xad69('0x30')]);_0x493a4d['query']=_[_0xad69('0x6a')](_0x226e59[_0xad69('0x35')]);_0x493a4d[_0xad69('0x3d')]=_['intersection'](_0x493a4d[_0xad69('0x33')],_0x493a4d['query']);_0x56816e[_0xad69('0x37')]=_[_0xad69('0x36')](_0x493a4d[_0xad69('0x33')],qs[_0xad69('0x38')](_0x226e59['query'][_0xad69('0x38')]));_0x56816e[_0xad69('0x37')]=_0x56816e['attributes']['length']?_0x56816e[_0xad69('0x37')]:_0x493a4d[_0xad69('0x33')];if(_0x226e59[_0xad69('0x35')][_0xad69('0xbc')]){_0x56816e['include']=[{'all':!![]}];}_0x56816e=_[_0xad69('0x95')]({},_0x56816e,_0x226e59[_0xad69('0xbd')]);return db['MailInteraction'][_0xad69('0x55')](_0x56816e)[_0xad69('0x2d')](handleEntityNotFound(_0x3097ea,null))[_0xad69('0x2d')](respondWithResult(_0x3097ea,null))['catch'](handleError(_0x3097ea,null));};exports['create']=function(_0x5dfa87,_0x9a2f7b){return db[_0xad69('0x2f')][_0xad69('0xbe')](_0x5dfa87[_0xad69('0xbf')],{})[_0xad69('0x2d')](respondWithResult(_0x9a2f7b,0xc9))[_0xad69('0x2c')](handleError(_0x9a2f7b,null));};exports['update']=function(_0x3f38ca,_0x322415){if(_0x3f38ca[_0xad69('0xbf')]['id']){delete _0x3f38ca[_0xad69('0xbf')]['id'];}return db[_0xad69('0x2f')][_0xad69('0x55')]({'where':{'id':_0x3f38ca[_0xad69('0xbb')]['id']}})[_0xad69('0x2d')](handleEntityNotFound(_0x322415,null))[_0xad69('0x2d')](saveUpdates(_0x3f38ca[_0xad69('0xbf')],null))[_0xad69('0x2d')](respondWithResult(_0x322415,null))[_0xad69('0x2c')](handleError(_0x322415,null));};exports[_0xad69('0x1e')]=function(_0x19361b,_0x3cc777){return db[_0xad69('0x2f')][_0xad69('0x55')]({'where':{'id':_0x19361b['params']['id']}})['then'](handleEntityNotFound(_0x3cc777,null))[_0xad69('0x2d')](removeEntity(_0x3cc777,null))[_0xad69('0x2c')](handleError(_0x3cc777,null));};exports[_0xad69('0xc0')]=function(_0x30e8e4,_0x2adcd3){return db['MailInteraction'][_0xad69('0xc0')]()[_0xad69('0x2d')](respondWithResult(_0x2adcd3,null))['catch'](handleError(_0x2adcd3,null));};exports[_0xad69('0xc1')]=function(_0x22c77a,_0x57af51){return db[_0xad69('0xc2')][_0xad69('0x55')]({'where':{'id':_0x22c77a[_0xad69('0xbb')]['id']}})[_0xad69('0x2d')](handleEntityNotFound(_0x57af51,null))[_0xad69('0x2d')](function(_0x540bf0){if(_0x540bf0){return _0x540bf0['addMessage'](_0x22c77a[_0xad69('0xbf')][_0xad69('0xc3')],_[_0xad69('0xc4')](_0x22c77a[_0xad69('0xbf')],[_0xad69('0xc3'),'id'])||{});}})[_0xad69('0x2d')](respondWithResult(_0x57af51,null))[_0xad69('0x2c')](handleError(_0x57af51,null));};exports[_0xad69('0xc5')]=function(_0x15822e,_0x5b8c72){var _0x19f190={'raw':![],'where':{}};var _0x5616a3={};var _0x23c5ba={'count':0x0,'rows':[]};return db[_0xad69('0x2f')]['findOne']({'where':{'id':_0x15822e[_0xad69('0xbb')]['id']}})[_0xad69('0x2d')](handleEntityNotFound(_0x5b8c72,null))[_0xad69('0x2d')](function(_0x5b8bc5){if(_0x5b8bc5){_0x5616a3[_0xad69('0x33')]=_[_0xad69('0x6a')](db[_0xad69('0xc2')]['rawAttributes']);_0x5616a3[_0xad69('0x35')]=_[_0xad69('0x6a')](_0x15822e[_0xad69('0x35')]);_0x5616a3[_0xad69('0x3d')]=_[_0xad69('0x36')](_0x5616a3[_0xad69('0x33')],_0x5616a3['query']);_0x19f190[_0xad69('0x37')]=_['intersection'](_0x5616a3[_0xad69('0x33')],qs[_0xad69('0x38')](_0x15822e[_0xad69('0x35')][_0xad69('0x38')]));_0x19f190[_0xad69('0x37')]=_0x19f190[_0xad69('0x37')][_0xad69('0x39')]?_0x19f190[_0xad69('0x37')]:_0x5616a3[_0xad69('0x33')];if(!_0x15822e[_0xad69('0x35')][_0xad69('0xc6')]('nolimit')){_0x19f190[_0xad69('0x1a')]=qs['limit'](_0x15822e[_0xad69('0x35')]['limit']);_0x19f190['offset']=qs[_0xad69('0x19')](_0x15822e[_0xad69('0x35')][_0xad69('0x19')]);}_0x19f190[_0xad69('0x3a')]=qs[_0xad69('0x3b')](_0x15822e[_0xad69('0x35')][_0xad69('0x3b')]);_0x19f190['where']=qs[_0xad69('0x3d')](_[_0xad69('0xc7')](_0x15822e[_0xad69('0x35')],_0x5616a3['filters']));_0x19f190['where']['MailInteractionId']=_0x5b8bc5['id'];if(_0x15822e[_0xad69('0x35')][_0xad69('0x7d')]){_0x19f190[_0xad69('0x3c')]=_[_0xad69('0x95')](_0x19f190['where'],{'$or':_[_0xad69('0x22')](_0x19f190['attributes'],function(_0x51d031){var _0x2d4d35={};_0x2d4d35[_0x51d031]={'$like':'%'+_0x15822e[_0xad69('0x35')][_0xad69('0x7d')]+'%'};return _0x2d4d35;})});}if(_0x15822e['query'][_0xad69('0x73')]){var _0x84b3ad=_0x15822e['query']['$gte'][_0xad69('0x26')](',');var _0x39c9c9={};_0x39c9c9[_0x84b3ad[0x0]]={'$gte':moment(_0x84b3ad[0x1])[_0xad69('0xc8')](_0xad69('0xc9'))};_0x19f190[_0xad69('0x3c')]=_[_0xad69('0x95')](_0x19f190[_0xad69('0x3c')],_0x39c9c9);}_0x19f190=_[_0xad69('0x95')]({},_0x19f190,_0x15822e[_0xad69('0xbd')]);return db[_0xad69('0xc2')][_0xad69('0x18')]({'where':_0x19f190[_0xad69('0x3c')]})[_0xad69('0x2d')](function(_0x5a6455){_0x23c5ba['count']=_0x5a6455;if(_0x15822e[_0xad69('0x35')][_0xad69('0xbc')]){_0x19f190[_0xad69('0xca')]=[{'all':!![]}];}return db['MailMessage'][_0xad69('0xcb')](_0x19f190);})[_0xad69('0x2d')](function(_0x55514a){if(_0x15822e[_0xad69('0x35')][_0xad69('0xcc')]==='true'){for(var _0x3c29ef=0x0;_0x3c29ef<_0x55514a['length'];_0x3c29ef++){_0x55514a[_0x3c29ef][_0xad69('0xbf')]=juice(_0x55514a[_0x3c29ef]['body']);}}_0x23c5ba[_0xad69('0xcd')]=_0x55514a;return _0x23c5ba;});}})[_0xad69('0x2d')](respondWithFilteredResult(_0x5b8c72,_0x19f190))[_0xad69('0x2c')](handleError(_0x5b8c72,null));};exports[_0xad69('0xce')]=function(_0x399291,_0x1bbafb){return db['MailInteraction'][_0xad69('0x55')]({'where':{'id':_0x399291[_0xad69('0xbb')]['id']}})['then'](handleEntityNotFound(_0x1bbafb,null))['then'](function(_0x48abf3){if(_0x48abf3){return _0x48abf3[_0xad69('0xcf')](_0x399291[_0xad69('0xbf')][_0xad69('0xc3')],_[_0xad69('0xc4')](_0x399291[_0xad69('0xbf')],[_0xad69('0xc3'),'id'])||{})[_0xad69('0xd0')](function(){return db[_0xad69('0x62')][_0xad69('0xcb')]({'attributes':['id','name',_0xad69('0x40')],'where':{'id':_0x399291[_0xad69('0xbf')]['ids']}});})[_0xad69('0x2d')](function(_0x3ce3e6){socket['emit']('mailInteractionTags:save',{'id':Number(_0x399291['params']['id']),'tags':_0x3ce3e6||[]});return{'id':Number(_0x399291[_0xad69('0xbb')]['id']),'tags':_0x3ce3e6||[]};});}})[_0xad69('0x2d')](respondWithResult(_0x1bbafb,null))[_0xad69('0x2c')](handleError(_0x1bbafb,null));};exports[_0xad69('0xd1')]=function(_0x4bfbd4,_0x3b8b99){return db[_0xad69('0x2f')]['find']({'where':{'id':_0x4bfbd4[_0xad69('0xbb')]['id']}})['then'](handleEntityNotFound(_0x3b8b99,null))[_0xad69('0x2d')](function(_0x47bb9a){if(_0x47bb9a){return _0x47bb9a['removeTags'](_0x4bfbd4[_0xad69('0x35')][_0xad69('0xc3')]);}})[_0xad69('0x2d')](respondWithStatusCode(_0x3b8b99,null))['catch'](handleError(_0x3b8b99,null));};exports['download']=function(_0x1361e8,_0x1c8897){var _0x20351d=moment()[_0xad69('0xd2')]()['toString']();var _0x398801=path['join'](config[_0xad69('0xd3')],'server',_0xad69('0xd4'),_0xad69('0xd5'));var _0x24ba04=path[_0xad69('0xd6')](config['root'],_0xad69('0xd7'),_0xad69('0xd4'),_0xad69('0xd8'));var _0x4344e1=path[_0xad69('0xd6')](_0x398801,_0x20351d);var _0x474d83=util[_0xad69('0xc8')](_0xad69('0xd9'),_0x1361e8['params']['id'],_0x20351d);var _0x11ba99=path[_0xad69('0xd6')](_0x398801,_0x474d83);var _0x8657c9=[];if(_0x1361e8[_0xad69('0x35')][_0xad69('0xd8')]){_0x8657c9[_0xad69('0x27')]({'model':db[_0xad69('0xda')],'as':_0xad69('0xdb'),'raw':!![]});}var _0x523c2d=[{'model':db[_0xad69('0xc2')],'as':'Messages','attributes':['id','body',_0xad69('0x41'),'to','cc',_0xad69('0xdc'),_0xad69('0xdd'),'createdAt'],'where':{'secret':![]},'order':qs['sort']('id'),'include':_0x8657c9}];return db[_0xad69('0x2f')]['find']({'where':{'id':_0x1361e8['params']['id']},'include':_0x523c2d})['then'](handleEntityNotFound(_0x1c8897,null))['then'](function(_0x846138){if(_0x846138&&_0x846138['Messages']){var _0x4d410f=_0x846138['get']({'plain':!![]});fs[_0xad69('0xde')](_0x4344e1);return BPromise['each'](_0x4d410f['Messages'],function(_0x2d8cd5,_0x276332){var _0x56529b={'from':_0x2d8cd5[_0xad69('0x41')],'to':_0x2d8cd5['to'],'subject':_0x2d8cd5[_0xad69('0xdd')],'html':htmlEntities[_0xad69('0xdf')](_0x2d8cd5['body']),'headers':{'Date':moment(_0x2d8cd5[_0xad69('0x71')])[_0xad69('0xc8')](_0xad69('0xe0'))},'attachments':[]};if(_0x2d8cd5['cc']){_0x56529b[_0xad69('0xe1')]['Cc']=_0x2d8cd5['cc'];}if(_0x2d8cd5[_0xad69('0xdc')]){_0x56529b[_0xad69('0xe1')]['Bcc']=_0x2d8cd5[_0xad69('0xdc')];}return new BPromise(function(_0x5f4314,_0x276d6b){if(_0x2d8cd5[_0xad69('0xdb')]){for(var _0x307af4=0x0;_0x307af4<_0x2d8cd5['Attachments'][_0xad69('0x39')];_0x307af4++){var _0x2b93ac=_0x2d8cd5['Attachments'][_0x307af4];var _0x310049=path['join'](_0x24ba04,_0x2b93ac[_0xad69('0xe2')]);if(fs[_0xad69('0xe3')](_0x310049)){_0x56529b[_0xad69('0xd8')][_0xad69('0x27')]({'name':_0x2b93ac[_0xad69('0x34')],'contentType':_0x2b93ac[_0xad69('0x32')],'data':fs[_0xad69('0xe4')](_0x310049)});}}}emlformat[_0xad69('0xe5')](_0x56529b,function(_0x2d6083,_0x3acb8d){if(_0x2d6083)return _0x276d6b(_0x2d6083);fs[_0xad69('0xe6')](path[_0xad69('0xd6')](_0x4344e1,util[_0xad69('0xc8')](_0xad69('0xe7'),_0x276332)),_0x3acb8d);return _0x5f4314(_0x3acb8d);});});})[_0xad69('0x2d')](function(){return new BPromise(function(_0x3f6d03,_0x1c854c){zipdir(_0x4344e1,{'saveTo':_0x11ba99},function(_0x518f55,_0x17624b){if(_0x518f55)return _0x1c854c(_0x518f55);return _0x3f6d03(_0x17624b);});})[_0xad69('0x2d')](function(){return new BPromise(function(_0x19ae04,_0x46be37){rimraf(_0x4344e1,function(_0x3fd8cf){if(_0x3fd8cf)_0x46be37(_0x3fd8cf);return _0x19ae04();});});})[_0xad69('0x2d')](function(){return _0x1c8897[_0xad69('0xe8')](_0x11ba99,_0x474d83,function(_0x104c65){if(!_0x104c65)fs[_0xad69('0xe9')](_0x11ba99);});});});}else{return _0x1c8897[_0xad69('0x13')](0xc8);}})['catch'](handleError(_0x1c8897,null));};
\ No newline at end of file
+var _0x5ffc=['Attachments','Messages','bcc','subject','createdAt','mkdirSync','each','headers','basename','readFileSync','writeFileSync','message%d.eml','download','eml-format','rimraf','zip-dir','moment','util','path','lodash','squel','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','redis','./mailInteraction.socket','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','update','then','destroy','error','name','Users','fullname','TagIds','Tags','forEach','MailMessage','findOne','out','plainBody','-id','lastMsgText','catch','index','map','rawAttributes','type','key','model','keys','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','field','color','from','select','u.id','u.fullname','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','mail_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','conditions','find','unreadMessages','value','having','`\x20>\x200','Contact','$substring','split','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','Tag','union','operator','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','isEmpty','i.MailAccountId\x20IN\x20?','concat','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','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)','group','Sequelize','QueryTypes','SELECT','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','t.id\x20IN\x20?','MailAccountId','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','agent','i.MailAccountId\x20IS\x20NULL','sequelize','toString','keyBy','MailInteraction','a.key','Account.key','Account.mandatoryDisposition','contactName','i.closed','i.lastMsgAt','i.subject','i.disposition','i.secondDisposition','i.thirdDisposition','i.substatus','i.to','i.ContactId','i.MailAccountId','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','c.mobile','Contact.mobile','c.fax','o.fullname','Owner.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','Setting','enableEmailPreview','push','all','show','includeAll','include','options','create','body','params','describe','addMessage','omit','ids','getMessages','merge','$gte','format','YYYY-MM-DD\x20HH:mm:ss','findAll','inlineCss','rows','addTags','setTags','emit','mailInteractionTags:save','removeTags','root','files','server','attachments','transcript-%d-%s.zip','join','Attachment'];(function(_0x403de2,_0x53ffb0){var _0x3619cf=function(_0x55a82e){while(--_0x55a82e){_0x403de2['push'](_0x403de2['shift']());}};_0x3619cf(++_0x53ffb0);}(_0x5ffc,0xea));var _0xc5ff=function(_0x16dbab,_0x3ac1e1){_0x16dbab=_0x16dbab-0x0;var _0x59b0b2=_0x5ffc[_0x16dbab];return _0x59b0b2;};'use strict';var emlformat=require(_0xc5ff('0x0'));var rimraf=require(_0xc5ff('0x1'));var zipdir=require(_0xc5ff('0x2'));var moment=require(_0xc5ff('0x3'));var BPromise=require('bluebird');var util=require(_0xc5ff('0x4'));var path=require(_0xc5ff('0x5'));var fs=require('fs');var _=require(_0xc5ff('0x6'));var squel=require(_0xc5ff('0x7'));var juice=require('juice');var Redis=require(_0xc5ff('0x8'));var qs=require(_0xc5ff('0x9'));var as=require(_0xc5ff('0xa'));var logger=require(_0xc5ff('0xb'))(_0xc5ff('0xc'));var config=require(_0xc5ff('0xd'));var db=require(_0xc5ff('0xe'))['db'];config[_0xc5ff('0xf')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xc5ff('0x10'))['register'](socket);function respondWithStatusCode(_0x390305,_0x155546){_0x155546=_0x155546||0xcc;return function(_0xe6fbf1){if(_0xe6fbf1){return _0x390305[_0xc5ff('0x11')](_0x155546);}return _0x390305[_0xc5ff('0x12')](_0x155546)[_0xc5ff('0x13')]();};}function respondWithResult(_0x31641f,_0x45139e){_0x45139e=_0x45139e||0xc8;return function(_0x1742dc){if(_0x1742dc){return _0x31641f['status'](_0x45139e)[_0xc5ff('0x14')](_0x1742dc);}};}function respondWithFilteredResult(_0x3c70a7,_0xa9b27e){return function(_0x15b654){if(_0x15b654){var _0x5765f8=typeof _0xa9b27e[_0xc5ff('0x15')]===_0xc5ff('0x16')&&typeof _0xa9b27e[_0xc5ff('0x17')]===_0xc5ff('0x16');var _0x198eb3=_0x15b654[_0xc5ff('0x18')];var _0x447e3f=_0x5765f8?0x0:_0xa9b27e[_0xc5ff('0x15')];var _0x533b8a=_0x5765f8?_0x15b654['count']:_0xa9b27e[_0xc5ff('0x15')]+_0xa9b27e[_0xc5ff('0x17')];var _0x24dc91;if(_0x533b8a>=_0x198eb3){_0x533b8a=_0x198eb3;_0x24dc91=0xc8;}else{_0x24dc91=0xce;}_0x3c70a7['status'](_0x24dc91);return _0x3c70a7[_0xc5ff('0x19')](_0xc5ff('0x1a'),_0x447e3f+'-'+_0x533b8a+'/'+_0x198eb3)[_0xc5ff('0x14')](_0x15b654);}return null;};}function saveUpdates(_0x259178){return function(_0xc5c578){if(_0xc5c578){return _0xc5c578[_0xc5ff('0x1b')](_0x259178)[_0xc5ff('0x1c')](function(_0xa8cab6){return _0xa8cab6;});}return null;};}function removeEntity(_0x2fd4c1){return function(_0x2a3e29){if(_0x2a3e29){return _0x2a3e29[_0xc5ff('0x1d')]()[_0xc5ff('0x1c')](function(){_0x2fd4c1[_0xc5ff('0x12')](0xcc)[_0xc5ff('0x13')]();});}};}function handleEntityNotFound(_0x4cb497){return function(_0x33aa09){if(!_0x33aa09){_0x4cb497[_0xc5ff('0x11')](0x194);}return _0x33aa09;};}function handleError(_0xbfed65,_0x19cbfd){_0x19cbfd=_0x19cbfd||0x1f4;return function(_0x2b212c){logger[_0xc5ff('0x1e')](_0x2b212c['stack']);if(_0x2b212c[_0xc5ff('0x1f')]){delete _0x2b212c[_0xc5ff('0x1f')];}_0xbfed65[_0xc5ff('0x12')](_0x19cbfd)['send'](_0x2b212c);};}function getInteractionUsers(_0xfba44e,_0x141512){return new BPromise(function(_0x21a3ca,_0x55978f){try{if(_0x141512[_0xfba44e['id']]){_0xfba44e[_0xc5ff('0x20')]=_['map'](_0x141512[_0xfba44e['id']],function(_0x57265b){return{'id':_0x57265b['id'],'fullname':_0x57265b[_0xc5ff('0x21')]};});}}catch(_0x55af1c){_0x55978f(_0x55af1c);}_0x21a3ca(_0xfba44e);});}function getInteractionTags(_0xfdf254,_0x6fcbb4){return new BPromise(function(_0x128924,_0x5a77d5){try{if(_0xfdf254[_0xc5ff('0x22')]){_0xfdf254[_0xc5ff('0x23')]=[];_0xfdf254['TagIds']['split'](',')[_0xc5ff('0x24')](function(_0x2835a2){_0xfdf254['Tags']['push'](_0x6fcbb4[_0x2835a2]);});}delete _0xfdf254['TagIds'];}catch(_0x3f6512){_0x5a77d5(_0x3f6512);}_0x128924(_0xfdf254);});}function getLastMessageText(_0x39760d){return new BPromise(function(_0x7776e9,_0x5d4130){return db[_0xc5ff('0x25')][_0xc5ff('0x26')]({'where':{'$and':[{'MailInteractionId':_0x39760d['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0xc5ff('0x27')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0xc5ff('0x28')],'order':_0xc5ff('0x29'),'raw':!![]})['then'](function(_0x357159){if(_0x357159&&_0x357159[_0xc5ff('0x28')]){_0x39760d[_0xc5ff('0x2a')]=_['trimStart'](_0x357159[_0xc5ff('0x28')]);}_0x7776e9(_0x39760d);})[_0xc5ff('0x2b')](function(_0x190f8f){_0x5d4130(_0x190f8f);});});}function updateMailInteraction(_0xb2518c,_0x65f5,_0x4443cc,_0x1122ea){return new BPromise(function(_0xa6596e,_0x5d5632){return getInteractionUsers(_0xb2518c,_0x4443cc)[_0xc5ff('0x1c')](function(_0x4917e7){return getInteractionTags(_0x4917e7,_0x65f5);})[_0xc5ff('0x1c')](function(_0x3ef78b){if(_0x1122ea){_0xa6596e(getLastMessageText(_0x3ef78b));}else{_0xa6596e(_0x3ef78b);}})['catch'](function(_0x55309d){_0x5d5632(_0x55309d);});});}exports[_0xc5ff('0x2c')]=function(_0x199d4e,_0x220ff2){var _0x180609={},_0x3e1940={},_0x3329b4={'count':0x0,'rows':[]};var _0x1c657e=_[_0xc5ff('0x2d')](db['MailInteraction'][_0xc5ff('0x2e')],function(_0x3af06c){return{'name':_0x3af06c['fieldName'],'type':_0x3af06c[_0xc5ff('0x2f')][_0xc5ff('0x30')]};});_0x3e1940[_0xc5ff('0x31')]=_['map'](_0x1c657e,'name');_0x3e1940['query']=_[_0xc5ff('0x32')](_0x199d4e[_0xc5ff('0x33')]);_0x3e1940['filters']=_['intersection'](_0x3e1940[_0xc5ff('0x31')],_0x3e1940[_0xc5ff('0x33')]);_0x180609['attributes']=_[_0xc5ff('0x34')](_0x3e1940['model'],qs['fields'](_0x199d4e[_0xc5ff('0x33')][_0xc5ff('0x35')]));_0x180609['attributes']=_0x180609[_0xc5ff('0x36')][_0xc5ff('0x37')]?_0x180609[_0xc5ff('0x36')]:_0x3e1940[_0xc5ff('0x31')];if(!_0x199d4e[_0xc5ff('0x33')][_0xc5ff('0x38')](_0xc5ff('0x39'))){_0x180609[_0xc5ff('0x17')]=qs['limit'](_0x199d4e[_0xc5ff('0x33')][_0xc5ff('0x17')]);_0x180609[_0xc5ff('0x15')]=qs[_0xc5ff('0x15')](_0x199d4e[_0xc5ff('0x33')][_0xc5ff('0x15')]);}_0x180609[_0xc5ff('0x3a')]=qs[_0xc5ff('0x3b')](_0x199d4e['query']['sort']);_0x180609[_0xc5ff('0x3c')]=qs[_0xc5ff('0x3d')](_[_0xc5ff('0x3e')](_0x199d4e['query'],_0x3e1940['filters']),_0x1c657e);var _0x3d6952=[];var _0x1516bd=squel['select']()[_0xc5ff('0x3f')]('id')[_0xc5ff('0x3f')]('name')[_0xc5ff('0x3f')](_0xc5ff('0x40'))[_0xc5ff('0x41')]('tools_tags');var _0x1062b9=squel[_0xc5ff('0x42')]()[_0xc5ff('0x3f')](_0xc5ff('0x43'))[_0xc5ff('0x3f')](_0xc5ff('0x44'))[_0xc5ff('0x3f')]('ui.MailInteractionId')[_0xc5ff('0x41')](_0xc5ff('0x45'),'ui')[_0xc5ff('0x46')](_0xc5ff('0x47'),'u',_0xc5ff('0x48'));var _0x2ec35c=squel[_0xc5ff('0x42')]()[_0xc5ff('0x41')](_0xc5ff('0x49'),'i')[_0xc5ff('0x46')]('cm_contacts','c',_0xc5ff('0x4a'))[_0xc5ff('0x46')](_0xc5ff('0x47'),'o','o.id\x20=\x20i.UserId')[_0xc5ff('0x46')](_0xc5ff('0x4b'),'a',_0xc5ff('0x4c'))['left_join'](_0xc5ff('0x4d'),'me',_0xc5ff('0x4e'))[_0xc5ff('0x46')](_0xc5ff('0x4f'),'it',_0xc5ff('0x50'))[_0xc5ff('0x46')](_0xc5ff('0x51'),'t',_0xc5ff('0x52'));var _0x4fdcc4=squel[_0xc5ff('0x53')]();var _0x26bcca=[];var _0x20b8fd=squel[_0xc5ff('0x53')]();var _0x220c60;if(_0x199d4e['query'][_0xc5ff('0x54')]){_0x220c60=as[_0xc5ff('0x55')](_0x199d4e['query'][_0xc5ff('0x54')]);var _0x3a5c13=_0x220c60['sqlOperator'];for(var _0x2171c2=0x0;_0x2171c2<_0x220c60['conditions'][_0xc5ff('0x37')];_0x2171c2++){var _0x541fff=_0x220c60[_0xc5ff('0x56')][_0x2171c2];var _0x3c24eb='i';var _0x51be2d=_[_0xc5ff('0x57')](_0x1c657e,[_0xc5ff('0x1f'),_0x541fff[_0xc5ff('0x3f')]]);if(!_0x51be2d){switch(_0x541fff[_0xc5ff('0x3f')]){case _0xc5ff('0x58'):if(_0x541fff[_0xc5ff('0x59')]==0x1){_0x2ec35c[_0xc5ff('0x5a')]('`'+_0x541fff[_0xc5ff('0x3f')]+'`\x20=\x200');}else{_0x2ec35c['having']('`'+_0x541fff['field']+_0xc5ff('0x5b'));}break;case _0xc5ff('0x5c'):if(_0x541fff['operator']===_0xc5ff('0x5d')){if(_0x541fff[_0xc5ff('0x59')][_0xc5ff('0x5e')]('\x20')[_0xc5ff('0x37')]>0x1){_0x4fdcc4[_0x3a5c13]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xc5ff('0x5f')](_0x541fff[_0xc5ff('0x59')]),null);}else{var _0x23a7be='%'+_0x541fff[_0xc5ff('0x59')]+'%';_0x4fdcc4[_0x3a5c13](_0xc5ff('0x60'),_0x23a7be,_0x23a7be,_0x23a7be);}}else{_0x51be2d=_['find'](_0x1c657e,[_0xc5ff('0x1f'),_0xc5ff('0x61')]);_0x541fff['field']='ContactId';_0x442c23=as[_0xc5ff('0x62')](_0x3c24eb,_0x51be2d['type'],_0x541fff);_0x4fdcc4[_0x3a5c13](_0x442c23[_0xc5ff('0x63')],_0x442c23[_0xc5ff('0x59')][_0xc5ff('0x64')],_0x442c23[_0xc5ff('0x59')][_0xc5ff('0x13')]);}break;case _0xc5ff('0x65'):var _0xbcb89f=_0x541fff[_0xc5ff('0x59')][_0xc5ff('0x5e')](',')[_0xc5ff('0x2d')](function(_0x4a97eb){return Number(_0x4a97eb);});_0xbcb89f[_0xc5ff('0x24')](function(_0x37683c){_0x20b8fd['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x37683c+',%');});_0x26bcca=_[_0xc5ff('0x66')](_0x26bcca,_0xbcb89f);break;case'User':if(_0x541fff[_0xc5ff('0x67')]===_0xc5ff('0x5d')){_0x4fdcc4[_0x3a5c13](_0xc5ff('0x68'),'%'+_0x541fff[_0xc5ff('0x59')]+'%',null);}else{_0x51be2d=_[_0xc5ff('0x57')](_0x1c657e,['name','UserId']);_0x541fff['field']=_0xc5ff('0x69');_0x442c23=as[_0xc5ff('0x62')](_0x3c24eb,_0x51be2d[_0xc5ff('0x2f')],_0x541fff);_0x4fdcc4[_0x3a5c13](_0x442c23[_0xc5ff('0x63')],_0x442c23['value'][_0xc5ff('0x64')],_0x442c23[_0xc5ff('0x59')][_0xc5ff('0x13')]);}break;case _0xc5ff('0x28'):_0x442c23=as['buildExpression']('me',null,_0x541fff);_0x4fdcc4[_0x3a5c13](_0x442c23['text'],_0x442c23['value'][_0xc5ff('0x64')],_0x442c23[_0xc5ff('0x59')][_0xc5ff('0x13')]);break;}}else{var _0x442c23=as[_0xc5ff('0x62')](_0x3c24eb,_0x51be2d[_0xc5ff('0x2f')],_0x541fff);_0x4fdcc4[_0x3a5c13](_0x442c23['text'],_0x442c23[_0xc5ff('0x59')][_0xc5ff('0x64')],_0x442c23[_0xc5ff('0x59')][_0xc5ff('0x13')]);}}}else{var _0x4878af=_(_0x199d4e['query'])[_0xc5ff('0x32')]()['map'](function(_0x27eaef){return _['some'](_0x1c657e,[_0xc5ff('0x1f'),_0x27eaef])?_0x27eaef:undefined;})['compact']()[_0xc5ff('0x59')]();if(!_[_0xc5ff('0x6a')](_0x4878af)){_0x4878af[_0xc5ff('0x24')](function(_0x51aba4){if(_0x51aba4==='MailAccountId'){_0x2ec35c[_0xc5ff('0x3c')](_0xc5ff('0x6b'),[][_0xc5ff('0x6c')](_0x199d4e[_0xc5ff('0x33')][_0x51aba4]));}else if(_0x51aba4==='createdAt'){var _0xf4c521=JSON['parse'](_0x199d4e[_0xc5ff('0x33')][_0x51aba4])['$gte'];var _0x4c0f08=JSON[_0xc5ff('0x6d')](_0x199d4e['query'][_0x51aba4])[_0xc5ff('0x6e')];_0x2ec35c[_0xc5ff('0x3c')](_0xc5ff('0x6f'),_0xf4c521,_0x4c0f08);}else{if(_0x199d4e['query'][_0x51aba4]===_0xc5ff('0x70')){_0x2ec35c[_0xc5ff('0x3c')]('i.'+_0x51aba4+'\x20IS\x20NULL');}else{_0x2ec35c[_0xc5ff('0x3c')]('i.'+_0x51aba4+'\x20=\x20?',_0x199d4e['query'][_0x51aba4]);}}});}if(_0x199d4e[_0xc5ff('0x33')][_0xc5ff('0x71')]){if(_0x199d4e[_0xc5ff('0x33')]['read']==0x1){_0x2ec35c[_0xc5ff('0x5a')](_0xc5ff('0x72'));}else{_0x2ec35c[_0xc5ff('0x5a')](_0xc5ff('0x73'));}}if(_0x199d4e['query'][_0xc5ff('0x74')]){_0x26bcca=_[_0xc5ff('0x75')](_0x199d4e[_0xc5ff('0x33')]['tag'])?_0x199d4e[_0xc5ff('0x33')]['tag']:new Array(_0x199d4e[_0xc5ff('0x33')][_0xc5ff('0x74')]);_0x26bcca[_0xc5ff('0x24')](function(_0x1bf030){_0x20b8fd['or'](_0xc5ff('0x76'),'%,'+_0x1bf030+',%');});}if(_0x199d4e[_0xc5ff('0x33')][_0xc5ff('0x77')]){var _0x28330a=_0x199d4e['query'][_0xc5ff('0x77')]['replace']('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0xc5ff('0x78')](_0x28330a)){_0x4fdcc4['or'](_0xc5ff('0x79'),_0x28330a+'%');}else if(qs[_0xc5ff('0x7a')](_0x28330a)){_0x4fdcc4['or'](_0xc5ff('0x7b'),_0x28330a+'%');}else{_0x4fdcc4['or'](_0xc5ff('0x7c'),qs[_0xc5ff('0x5f')](_0x28330a))['or'](_0xc5ff('0x7d'),qs['getFullTextValue'](_0x28330a));}}}_0x2ec35c[_0xc5ff('0x3c')](_0x4fdcc4);_0x2ec35c[_0xc5ff('0x7e')]('i.id');var _0x58e495={'type':db[_0xc5ff('0x7f')][_0xc5ff('0x80')][_0xc5ff('0x81')],'raw':!![]};var _0x532b1c=_0x2ec35c['clone']();_0x532b1c['field'](_0xc5ff('0x82'));_0x532b1c['field'](_0xc5ff('0x83'),_0xc5ff('0x58'));if(_0x180609[_0xc5ff('0x3a')]){_0x180609['order'][_0xc5ff('0x24')](function(_0x472fee){var _0x117b81=_0x472fee[0x0]==='contactName'?_0x472fee[0x0]:'i.'+_0x472fee[0x0];_0x2ec35c[_0xc5ff('0x3a')](_0x117b81,_0x472fee[0x1]==='DESC'?![]:!![]);});}if(!_['isEmpty'](_0x26bcca)){_0x2ec35c['having'](_0x20b8fd);_0x532b1c['where'](_0xc5ff('0x84'),_0x26bcca);}BPromise['resolve']()[_0xc5ff('0x1c')](function(){if(!_0x220c60){if(_0x199d4e['query'][_0xc5ff('0x85')])return;_0x532b1c[_0xc5ff('0x3c')](_0xc5ff('0x86'));_0x2ec35c[_0xc5ff('0x3c')](_0xc5ff('0x86'));return;}if(_0x199d4e[_0xc5ff('0x87')][_0xc5ff('0x88')]!==_0xc5ff('0x89'))return;return _0x199d4e[_0xc5ff('0x87')]['getMailAccounts']({'attributes':['id'],'raw':!![]})[_0xc5ff('0x1c')](function(_0x1297b2){if(_[_0xc5ff('0x6a')](_0x1297b2)){_0x532b1c[_0xc5ff('0x3c')]('i.MailAccountId\x20IS\x20NULL');_0x2ec35c['where'](_0xc5ff('0x8a'));}else{_0x532b1c['where'](_0xc5ff('0x6b'),_['map'](_0x1297b2,'id'));_0x2ec35c['where']('i.MailAccountId\x20IN\x20?',_[_0xc5ff('0x2d')](_0x1297b2,'id'));}});})[_0xc5ff('0x1c')](function(){if(_0x199d4e['user'][_0xc5ff('0x88')]===_0xc5ff('0x89')&&!_0x220c60&&!_0x199d4e['query'][_0xc5ff('0x85')])return[];return db[_0xc5ff('0x8b')][_0xc5ff('0x33')](_0x532b1c[_0xc5ff('0x8c')](),_0x58e495);})[_0xc5ff('0x1c')](function(_0x24a257){_0x3329b4['count']=_0x24a257[_0xc5ff('0x37')];if(_0x3329b4['count']===0x0)return[];return db[_0xc5ff('0x8b')][_0xc5ff('0x33')](_0x1516bd['toString'](),_0x58e495)[_0xc5ff('0x1c')](function(_0x55dd9c){_0x3d6952=_[_0xc5ff('0x8d')](_0x55dd9c,'id');_0x58e495=_['merge'](_0x58e495,{'model':db[_0xc5ff('0x8e')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x199d4e['query'][_0xc5ff('0x35')]){_0x180609['attributes']['forEach'](function(_0x48f22a){_0x2ec35c['field']('i.'+_0x48f22a);});}else{_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0x83'),'unreadMessages');_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0x8f'),_0xc5ff('0x90'));_0x2ec35c[_0xc5ff('0x3f')]('a.mandatoryDisposition',_0xc5ff('0x91'));_0x2ec35c['field']('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',_0xc5ff('0x92'));_0x2ec35c['field'](_0xc5ff('0x82'));_0x2ec35c['field']('i.createdAt');_0x2ec35c['field']('i.updatedAt');_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0x93'));_0x2ec35c['field']('i.closedAt');_0x2ec35c['field']('i.attach');_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0x94'));_0x2ec35c['field']('i.lastMsgDirection');_0x2ec35c['field'](_0xc5ff('0x95'));_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0x96'));_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0x97'));_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0x98'));_0x2ec35c['field'](_0xc5ff('0x99'));_0x2ec35c['field'](_0xc5ff('0x9a'));_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0x9b'));_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0x9c'));_0x2ec35c[_0xc5ff('0x3f')]('i.UserId');_0x2ec35c[_0xc5ff('0x3f')]('c.firstName',_0xc5ff('0x9d'));_0x2ec35c['field'](_0xc5ff('0x9e'),_0xc5ff('0x9f'));_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0xa0'),_0xc5ff('0xa1'));_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0xa2'),'Contact.phone');_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0xa3'),_0xc5ff('0xa4'));_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0xa5'),'Contact.fax');_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0xa6'),_0xc5ff('0xa7'));_0x2ec35c[_0xc5ff('0x3f')](_0xc5ff('0xa8'),'Owner.internal');_0x2ec35c['field'](_0xc5ff('0xa9'),_0xc5ff('0x22'));}if(_0x180609[_0xc5ff('0x17')])_0x2ec35c[_0xc5ff('0x17')](_0x180609[_0xc5ff('0x17')]);if(_0x180609[_0xc5ff('0x15')])_0x2ec35c['offset'](_0x180609[_0xc5ff('0x15')]);return db[_0xc5ff('0x8b')][_0xc5ff('0x33')](_0x2ec35c['toString'](),_0x58e495);})[_0xc5ff('0x1c')](function(_0x4bf457){if(_0x4bf457['length']>0x0)_0x1062b9[_0xc5ff('0x3c')](_0xc5ff('0xaa'),_['map'](_0x4bf457,'id'));return db[_0xc5ff('0x8b')]['query'](_0x1062b9[_0xc5ff('0x8c')](),_0x58e495)[_0xc5ff('0x1c')](function(_0x124d0d){var _0x3d3f77=_[_0xc5ff('0xab')](_0x124d0d,_0xc5ff('0xac'));var _0x3ffb51=[];return db[_0xc5ff('0xad')][_0xc5ff('0x26')]({'attributes':[_0xc5ff('0xae')],'raw':!![]})[_0xc5ff('0x1c')](function(_0x28de35){var _0x53b7f2=_0x28de35['enableEmailPreview'];_0x4bf457['forEach'](function(_0x5ddd83){_0x3ffb51[_0xc5ff('0xaf')](updateMailInteraction(_0x5ddd83,_0x3d6952,_0x3d3f77,_0x53b7f2));});return BPromise[_0xc5ff('0xb0')](_0x3ffb51);});});});})[_0xc5ff('0x1c')](function(_0x49406b){_0x3329b4['rows']=_0x49406b;return _0x3329b4;})[_0xc5ff('0x1c')](respondWithFilteredResult(_0x220ff2,_0x180609))['catch'](handleError(_0x220ff2,null));};exports[_0xc5ff('0xb1')]=function(_0x533fc2,_0x46329d){var _0x154a58={'raw':![],'where':{'id':_0x533fc2['params']['id']}},_0x1ca53f={};_0x1ca53f[_0xc5ff('0x31')]=_[_0xc5ff('0x32')](db[_0xc5ff('0x8e')][_0xc5ff('0x2e')]);_0x1ca53f[_0xc5ff('0x33')]=_['keys'](_0x533fc2['query']);_0x1ca53f[_0xc5ff('0x3d')]=_[_0xc5ff('0x34')](_0x1ca53f['model'],_0x1ca53f['query']);_0x154a58['attributes']=_[_0xc5ff('0x34')](_0x1ca53f[_0xc5ff('0x31')],qs[_0xc5ff('0x35')](_0x533fc2['query']['fields']));_0x154a58[_0xc5ff('0x36')]=_0x154a58[_0xc5ff('0x36')][_0xc5ff('0x37')]?_0x154a58[_0xc5ff('0x36')]:_0x1ca53f['model'];if(_0x533fc2['query'][_0xc5ff('0xb2')]){_0x154a58[_0xc5ff('0xb3')]=[{'all':!![]}];}_0x154a58=_['merge']({},_0x154a58,_0x533fc2[_0xc5ff('0xb4')]);return db[_0xc5ff('0x8e')][_0xc5ff('0x57')](_0x154a58)[_0xc5ff('0x1c')](handleEntityNotFound(_0x46329d,null))[_0xc5ff('0x1c')](respondWithResult(_0x46329d,null))['catch'](handleError(_0x46329d,null));};exports[_0xc5ff('0xb5')]=function(_0x435931,_0x58060d){return db[_0xc5ff('0x8e')][_0xc5ff('0xb5')](_0x435931[_0xc5ff('0xb6')],{})[_0xc5ff('0x1c')](respondWithResult(_0x58060d,0xc9))[_0xc5ff('0x2b')](handleError(_0x58060d,null));};exports[_0xc5ff('0x1b')]=function(_0x2b76c2,_0x58fcb2){if(_0x2b76c2[_0xc5ff('0xb6')]['id']){delete _0x2b76c2[_0xc5ff('0xb6')]['id'];}return db[_0xc5ff('0x8e')][_0xc5ff('0x57')]({'where':{'id':_0x2b76c2[_0xc5ff('0xb7')]['id']}})[_0xc5ff('0x1c')](handleEntityNotFound(_0x58fcb2,null))['then'](saveUpdates(_0x2b76c2[_0xc5ff('0xb6')],null))[_0xc5ff('0x1c')](respondWithResult(_0x58fcb2,null))[_0xc5ff('0x2b')](handleError(_0x58fcb2,null));};exports[_0xc5ff('0x1d')]=function(_0x3d06bd,_0x455a3e){return db[_0xc5ff('0x8e')][_0xc5ff('0x57')]({'where':{'id':_0x3d06bd['params']['id']}})['then'](handleEntityNotFound(_0x455a3e,null))[_0xc5ff('0x1c')](removeEntity(_0x455a3e,null))[_0xc5ff('0x2b')](handleError(_0x455a3e,null));};exports['describe']=function(_0x13edab,_0x430880){return db[_0xc5ff('0x8e')][_0xc5ff('0xb8')]()['then'](respondWithResult(_0x430880,null))[_0xc5ff('0x2b')](handleError(_0x430880,null));};exports[_0xc5ff('0xb9')]=function(_0x29baad,_0x18663c){return db[_0xc5ff('0x25')][_0xc5ff('0x57')]({'where':{'id':_0x29baad[_0xc5ff('0xb7')]['id']}})[_0xc5ff('0x1c')](handleEntityNotFound(_0x18663c,null))[_0xc5ff('0x1c')](function(_0x2b233c){if(_0x2b233c){return _0x2b233c[_0xc5ff('0xb9')](_0x29baad[_0xc5ff('0xb6')]['ids'],_[_0xc5ff('0xba')](_0x29baad[_0xc5ff('0xb6')],[_0xc5ff('0xbb'),'id'])||{});}})[_0xc5ff('0x1c')](respondWithResult(_0x18663c,null))[_0xc5ff('0x2b')](handleError(_0x18663c,null));};exports[_0xc5ff('0xbc')]=function(_0x4b4a94,_0x589600){var _0x5bdbb1={'raw':![],'where':{}};var _0x9e28c7={};var _0x264a50={'count':0x0,'rows':[]};return db['MailInteraction'][_0xc5ff('0x26')]({'where':{'id':_0x4b4a94[_0xc5ff('0xb7')]['id']}})[_0xc5ff('0x1c')](handleEntityNotFound(_0x589600,null))[_0xc5ff('0x1c')](function(_0x1bc41d){if(_0x1bc41d){_0x9e28c7[_0xc5ff('0x31')]=_[_0xc5ff('0x32')](db[_0xc5ff('0x25')][_0xc5ff('0x2e')]);_0x9e28c7[_0xc5ff('0x33')]=_[_0xc5ff('0x32')](_0x4b4a94['query']);_0x9e28c7['filters']=_[_0xc5ff('0x34')](_0x9e28c7[_0xc5ff('0x31')],_0x9e28c7[_0xc5ff('0x33')]);_0x5bdbb1[_0xc5ff('0x36')]=_[_0xc5ff('0x34')](_0x9e28c7[_0xc5ff('0x31')],qs[_0xc5ff('0x35')](_0x4b4a94[_0xc5ff('0x33')][_0xc5ff('0x35')]));_0x5bdbb1[_0xc5ff('0x36')]=_0x5bdbb1[_0xc5ff('0x36')][_0xc5ff('0x37')]?_0x5bdbb1[_0xc5ff('0x36')]:_0x9e28c7[_0xc5ff('0x31')];if(!_0x4b4a94[_0xc5ff('0x33')][_0xc5ff('0x38')](_0xc5ff('0x39'))){_0x5bdbb1[_0xc5ff('0x17')]=qs[_0xc5ff('0x17')](_0x4b4a94[_0xc5ff('0x33')][_0xc5ff('0x17')]);_0x5bdbb1['offset']=qs['offset'](_0x4b4a94[_0xc5ff('0x33')]['offset']);}_0x5bdbb1[_0xc5ff('0x3a')]=qs[_0xc5ff('0x3b')](_0x4b4a94[_0xc5ff('0x33')][_0xc5ff('0x3b')]);_0x5bdbb1[_0xc5ff('0x3c')]=qs['filters'](_[_0xc5ff('0x3e')](_0x4b4a94['query'],_0x9e28c7[_0xc5ff('0x3d')]));_0x5bdbb1['where'][_0xc5ff('0xac')]=_0x1bc41d['id'];if(_0x4b4a94['query'][_0xc5ff('0x77')]){_0x5bdbb1['where']=_[_0xc5ff('0xbd')](_0x5bdbb1['where'],{'$or':_[_0xc5ff('0x2d')](_0x5bdbb1[_0xc5ff('0x36')],function(_0x58a0c9){var _0x12465e={};_0x12465e[_0x58a0c9]={'$like':'%'+_0x4b4a94['query']['filter']+'%'};return _0x12465e;})});}if(_0x4b4a94['query']['$gte']){var _0x11c14f=_0x4b4a94['query'][_0xc5ff('0xbe')][_0xc5ff('0x5e')](',');var _0x3b1586={};_0x3b1586[_0x11c14f[0x0]]={'$gte':moment(_0x11c14f[0x1])[_0xc5ff('0xbf')](_0xc5ff('0xc0'))};_0x5bdbb1[_0xc5ff('0x3c')]=_[_0xc5ff('0xbd')](_0x5bdbb1['where'],_0x3b1586);}_0x5bdbb1=_[_0xc5ff('0xbd')]({},_0x5bdbb1,_0x4b4a94[_0xc5ff('0xb4')]);return db[_0xc5ff('0x25')][_0xc5ff('0x18')]({'where':_0x5bdbb1[_0xc5ff('0x3c')]})['then'](function(_0x566cef){_0x264a50[_0xc5ff('0x18')]=_0x566cef;if(_0x4b4a94[_0xc5ff('0x33')][_0xc5ff('0xb2')]){_0x5bdbb1[_0xc5ff('0xb3')]=[{'all':!![]}];}return db[_0xc5ff('0x25')][_0xc5ff('0xc1')](_0x5bdbb1);})[_0xc5ff('0x1c')](function(_0xdc1a61){if(_0x4b4a94['query'][_0xc5ff('0xc2')]==='true'){for(var _0x1e23ad=0x0;_0x1e23ad<_0xdc1a61[_0xc5ff('0x37')];_0x1e23ad++){_0xdc1a61[_0x1e23ad][_0xc5ff('0xb6')]=juice(_0xdc1a61[_0x1e23ad]['body']);}}_0x264a50[_0xc5ff('0xc3')]=_0xdc1a61;return _0x264a50;});}})[_0xc5ff('0x1c')](respondWithFilteredResult(_0x589600,_0x5bdbb1))[_0xc5ff('0x2b')](handleError(_0x589600,null));};exports[_0xc5ff('0xc4')]=function(_0x20df01,_0x31fb07){return db[_0xc5ff('0x8e')][_0xc5ff('0x57')]({'where':{'id':_0x20df01[_0xc5ff('0xb7')]['id']}})[_0xc5ff('0x1c')](handleEntityNotFound(_0x31fb07,null))[_0xc5ff('0x1c')](function(_0x37cff1){if(_0x37cff1){return _0x37cff1[_0xc5ff('0xc5')](_0x20df01[_0xc5ff('0xb6')][_0xc5ff('0xbb')],_[_0xc5ff('0xba')](_0x20df01[_0xc5ff('0xb6')],[_0xc5ff('0xbb'),'id'])||{})['spread'](function(){return db[_0xc5ff('0x65')][_0xc5ff('0xc1')]({'attributes':['id','name',_0xc5ff('0x40')],'where':{'id':_0x20df01['body'][_0xc5ff('0xbb')]}});})[_0xc5ff('0x1c')](function(_0x3b9947){socket[_0xc5ff('0xc6')](_0xc5ff('0xc7'),{'id':Number(_0x20df01['params']['id']),'tags':_0x3b9947||[]});return{'id':Number(_0x20df01[_0xc5ff('0xb7')]['id']),'tags':_0x3b9947||[]};});}})[_0xc5ff('0x1c')](respondWithResult(_0x31fb07,null))['catch'](handleError(_0x31fb07,null));};exports['removeTags']=function(_0x2b8823,_0x493df4){return db['MailInteraction'][_0xc5ff('0x57')]({'where':{'id':_0x2b8823[_0xc5ff('0xb7')]['id']}})[_0xc5ff('0x1c')](handleEntityNotFound(_0x493df4,null))[_0xc5ff('0x1c')](function(_0x689df8){if(_0x689df8){return _0x689df8[_0xc5ff('0xc8')](_0x2b8823[_0xc5ff('0x33')][_0xc5ff('0xbb')]);}})[_0xc5ff('0x1c')](respondWithStatusCode(_0x493df4,null))[_0xc5ff('0x2b')](handleError(_0x493df4,null));};exports['download']=function(_0x3c773b,_0x2fc04e){var _0x39148c=moment()['unix']()[_0xc5ff('0x8c')]();var _0x57cfe8=path['join'](config[_0xc5ff('0xc9')],'server',_0xc5ff('0xca'),'tmp');var _0x11719b=path['join'](config['root'],_0xc5ff('0xcb'),'files',_0xc5ff('0xcc'));var _0xbe570a=path['join'](_0x57cfe8,_0x39148c);var _0x28b009=util[_0xc5ff('0xbf')](_0xc5ff('0xcd'),_0x3c773b[_0xc5ff('0xb7')]['id'],_0x39148c);var _0x5734f2=path[_0xc5ff('0xce')](_0x57cfe8,_0x28b009);var _0x1f4764=[];if(_0x3c773b[_0xc5ff('0x33')][_0xc5ff('0xcc')]){_0x1f4764['push']({'model':db[_0xc5ff('0xcf')],'as':_0xc5ff('0xd0'),'raw':!![]});}var _0x2c8200=[{'model':db['MailMessage'],'as':_0xc5ff('0xd1'),'attributes':['id',_0xc5ff('0xb6'),_0xc5ff('0x41'),'to','cc',_0xc5ff('0xd2'),_0xc5ff('0xd3'),_0xc5ff('0xd4')],'where':{'secret':![]},'order':qs[_0xc5ff('0x3b')]('id'),'include':_0x1f4764}];return db[_0xc5ff('0x8e')][_0xc5ff('0x57')]({'where':{'id':_0x3c773b[_0xc5ff('0xb7')]['id']},'include':_0x2c8200})[_0xc5ff('0x1c')](handleEntityNotFound(_0x2fc04e,null))[_0xc5ff('0x1c')](function(_0xb9ff35){if(_0xb9ff35&&_0xb9ff35[_0xc5ff('0xd1')]){var _0x2b9a9d=_0xb9ff35['get']({'plain':!![]});fs[_0xc5ff('0xd5')](_0xbe570a);return BPromise[_0xc5ff('0xd6')](_0x2b9a9d['Messages'],function(_0x2b30d2,_0x220f2f){var _0x3e8354={'from':_0x2b30d2[_0xc5ff('0x41')],'to':_0x2b30d2['to'],'subject':_0x2b30d2[_0xc5ff('0xd3')],'html':_0x2b30d2['body'],'headers':{'Date':moment(_0x2b30d2[_0xc5ff('0xd4')])[_0xc5ff('0xbf')]('ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ')},'attachments':[]};if(_0x2b30d2['cc']){_0x3e8354[_0xc5ff('0xd7')]['Cc']=_0x2b30d2['cc'];}if(_0x2b30d2['bcc']){_0x3e8354[_0xc5ff('0xd7')]['Bcc']=_0x2b30d2[_0xc5ff('0xd2')];}return new BPromise(function(_0x2114aa,_0x3f88dd){if(_0x2b30d2['Attachments']){for(var _0x2a0dbf=0x0;_0x2a0dbf<_0x2b30d2[_0xc5ff('0xd0')][_0xc5ff('0x37')];_0x2a0dbf++){var _0x3a89b5=_0x2b30d2['Attachments'][_0x2a0dbf];var _0x1ff864=path[_0xc5ff('0xce')](_0x11719b,_0x3a89b5[_0xc5ff('0xd8')]);if(fs['existsSync'](_0x1ff864)){_0x3e8354[_0xc5ff('0xcc')][_0xc5ff('0xaf')]({'name':_0x3a89b5[_0xc5ff('0x1f')],'contentType':_0x3a89b5['type'],'data':fs[_0xc5ff('0xd9')](_0x1ff864)});}}}emlformat['build'](_0x3e8354,function(_0x4620a8,_0x16d068){if(_0x4620a8)return _0x3f88dd(_0x4620a8);fs[_0xc5ff('0xda')](path[_0xc5ff('0xce')](_0xbe570a,util[_0xc5ff('0xbf')](_0xc5ff('0xdb'),_0x220f2f)),_0x16d068);return _0x2114aa(_0x16d068);});});})[_0xc5ff('0x1c')](function(){return new BPromise(function(_0x5b4ea0,_0x44bdb0){zipdir(_0xbe570a,{'saveTo':_0x5734f2},function(_0x5c80bc,_0x5adb18){if(_0x5c80bc)return _0x44bdb0(_0x5c80bc);return _0x5b4ea0(_0x5adb18);});})[_0xc5ff('0x1c')](function(){return new BPromise(function(_0x13b138,_0x22212c){rimraf(_0xbe570a,function(_0x579b40){if(_0x579b40)_0x22212c(_0x579b40);return _0x13b138();});});})[_0xc5ff('0x1c')](function(){return _0x2fc04e[_0xc5ff('0xdc')](_0x5734f2,_0x28b009,function(_0x3cb54d){if(!_0x3cb54d)fs['unlinkSync'](_0x5734f2);});});});}else{return _0x2fc04e[_0xc5ff('0x11')](0xc8);}})[_0xc5ff('0x2b')](handleError(_0x2fc04e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd041=['findAll','unreadMessages','length','emit','hook','exports','../../mysqldb','MailInteraction','MailMessage','setMaxListeners','save','update','remove','then','setDataValue','Users'];(function(_0x2c3337,_0x379fe4){var _0x520450=function(_0x3f2450){while(--_0x3f2450){_0x2c3337['push'](_0x2c3337['shift']());}};_0x520450(++_0x379fe4);}(_0xd041,0x1d6));var _0x1d04=function(_0x2272b5,_0x362458){_0x2272b5=_0x2272b5-0x0;var _0x110156=_0xd041[_0x2272b5];return _0x110156;};'use strict';var EventEmitter=require('events');var MailInteraction=require(_0x1d04('0x0'))['db'][_0x1d04('0x1')];var MailMessage=require(_0x1d04('0x0'))['db'][_0x1d04('0x2')];var MailInteractionEvents=new EventEmitter();MailInteractionEvents[_0x1d04('0x3')](0x0);var events={'afterCreate':_0x1d04('0x4'),'afterUpdate':_0x1d04('0x5'),'afterDestroy':_0x1d04('0x6')};function emitEvent(_0x394707){return function(_0x436e20,_0x151ed2,_0x12a380){_0x436e20['getUsers']({'attributes':['id'],'raw':!![]})[_0x1d04('0x7')](function(_0x559b36){_0x436e20[_0x1d04('0x8')](_0x1d04('0x9'),_0x559b36['map'](function(_0x3153a8){return{'id':_0x3153a8['id']};}));return MailMessage[_0x1d04('0xa')]({'where':{'MailInteractionId':_0x436e20['id'],'direction':'in','read':![]},'raw':!![]});})[_0x1d04('0x7')](function(_0x5c8a15){_0x436e20[_0x1d04('0x8')](_0x1d04('0xb'),_0x5c8a15[_0x1d04('0xc')]);MailInteractionEvents[_0x1d04('0xd')](_0x394707+':'+_0x436e20['id'],_0x436e20);MailInteractionEvents[_0x1d04('0xd')](_0x394707,_0x436e20);_0x12a380(null);})['catch'](_0x12a380(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailInteraction[_0x1d04('0xe')](e,emitEvent(event));}}module[_0x1d04('0xf')]=MailInteractionEvents;
\ No newline at end of file
+var _0x2d76=['findAll','unreadMessages','length','emit','catch','hasOwnProperty','exports','events','../../mysqldb','MailInteraction','save','remove','getUsers','then','setDataValue','Users','map'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x2d76,0x117));var _0x62d7=function(_0x4a13af,_0x5db35d){_0x4a13af=_0x4a13af-0x0;var _0xf3b735=_0x2d76[_0x4a13af];return _0xf3b735;};'use strict';var EventEmitter=require(_0x62d7('0x0'));var MailInteraction=require(_0x62d7('0x1'))['db'][_0x62d7('0x2')];var MailMessage=require(_0x62d7('0x1'))['db']['MailMessage'];var MailInteractionEvents=new EventEmitter();MailInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x62d7('0x3'),'afterUpdate':'update','afterDestroy':_0x62d7('0x4')};function emitEvent(_0x1ff644){return function(_0x52b29d,_0x5244c7,_0x1bb335){_0x52b29d[_0x62d7('0x5')]({'attributes':['id'],'raw':!![]})[_0x62d7('0x6')](function(_0x580869){_0x52b29d[_0x62d7('0x7')](_0x62d7('0x8'),_0x580869[_0x62d7('0x9')](function(_0xee9306){return{'id':_0xee9306['id']};}));return MailMessage[_0x62d7('0xa')]({'where':{'MailInteractionId':_0x52b29d['id'],'direction':'in','read':![]},'raw':!![]});})[_0x62d7('0x6')](function(_0x440f77){_0x52b29d[_0x62d7('0x7')](_0x62d7('0xb'),_0x440f77[_0x62d7('0xc')]);MailInteractionEvents[_0x62d7('0xd')](_0x1ff644+':'+_0x52b29d['id'],_0x52b29d);MailInteractionEvents[_0x62d7('0xd')](_0x1ff644,_0x52b29d);_0x1bb335(null);})[_0x62d7('0xe')](_0x1bb335(null));};}for(var e in events){if(events[_0x62d7('0xf')](e)){var event=events[e];MailInteraction['hook'](e,emitEvent(event));}}module[_0x62d7('0x10')]=MailInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9578=['YYYY-MM-DD\x20HH:mm:ss','closedAt','changed','substatus','closed','get','MailMessage','update','utf8mb4_unicode_ci','lodash','util','api','moment','bluebird','./mailInteraction.attributes','exports','subject','FULLTEXT','substatusAt','format'];(function(_0x14bd60,_0x73b2f9){var _0x4b0a31=function(_0xa3044d){while(--_0xa3044d){_0x14bd60['push'](_0x14bd60['shift']());}};_0x4b0a31(++_0x73b2f9);}(_0x9578,0x81));var _0x8957=function(_0x34021d,_0x753aa6){_0x34021d=_0x34021d-0x0;var _0x16597b=_0x9578[_0x34021d];return _0x16597b;};'use strict';var _=require(_0x8957('0x0'));var util=require(_0x8957('0x1'));var logger=require('../../config/logger')(_0x8957('0x2'));var moment=require(_0x8957('0x3'));var BPromise=require(_0x8957('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(_0x8957('0x5'));module[_0x8957('0x6')]=function(_0x41e56e,_0x343ecd){return _0x41e56e['define']('MailInteraction',attributes,{'tableName':'mail_interactions','paranoid':![],'indexes':[{'name':'fti_mail_interactions','fields':[_0x8957('0x7'),'to'],'type':_0x8957('0x8')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x14eb9b,_0x335bbd,_0x300648){if(_0x14eb9b['substatus']){_0x14eb9b[_0x8957('0x9')]=moment()[_0x8957('0xa')](_0x8957('0xb'));}if(_0x14eb9b['closed']){_0x14eb9b[_0x8957('0xc')]=moment()[_0x8957('0xa')]('YYYY-MM-DD\x20HH:mm:ss');}_0x300648(null,_0x335bbd);},'beforeUpdate':function(_0x394f33,_0x200f43,_0x269c3a){if(_0x394f33[_0x8957('0xd')](_0x8957('0xe'))){_0x394f33[_0x8957('0x9')]=_0x394f33['substatus']?moment()['format'](_0x8957('0xb')):null;}if(_0x394f33[_0x8957('0xd')](_0x8957('0xf'))){_0x394f33[_0x8957('0xc')]=moment()['format'](_0x8957('0xb'));_0x394f33[_0x8957('0xe')]=null;_0x394f33[_0x8957('0x9')]=null;}_0x269c3a(null,_0x394f33);},'afterUpdate':function(_0x3a76d4,_0x291c72,_0x472444){var _0xa1b974=_0x41e56e['models'];var _0x5e1491=_0x3a76d4[_0x8957('0x10')]({'plain':!![]});if(_0x5e1491[_0x8957('0xf')]){return _0xa1b974[_0x8957('0x11')][_0x8957('0x12')]({'read':!![]},{'where':{'MailInteractionId':_0x5e1491['id']}})['then'](function(){_0x472444();})['catch'](function(_0x593233){_0x472444(_0x593233);});}else{_0x472444();}}},'charset':'utf8mb4','collate':_0x8957('0x13')});};
\ No newline at end of file
+var _0xbc63=['request-promise','path','rimraf','../../config/environment','./mailInteraction.attributes','exports','MailInteraction','fti_mail_interactions','subject','FULLTEXT','substatusAt','format','YYYY-MM-DD\x20HH:mm:ss','closed','closedAt','changed','substatus','models','get','catch','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','moment','bluebird'];(function(_0xe059ce,_0x2c5153){var _0xebddca=function(_0x2a517d){while(--_0x2a517d){_0xe059ce['push'](_0xe059ce['shift']());}};_0xebddca(++_0x2c5153);}(_0xbc63,0xb8));var _0x3bc6=function(_0x701ced,_0x45d376){_0x701ced=_0x701ced-0x0;var _0x52a20d=_0xbc63[_0x701ced];return _0x52a20d;};'use strict';var _=require(_0x3bc6('0x0'));var util=require('util');var logger=require(_0x3bc6('0x1'))(_0x3bc6('0x2'));var moment=require(_0x3bc6('0x3'));var BPromise=require(_0x3bc6('0x4'));var rp=require(_0x3bc6('0x5'));var fs=require('fs');var path=require(_0x3bc6('0x6'));var rimraf=require(_0x3bc6('0x7'));var config=require(_0x3bc6('0x8'));var attributes=require(_0x3bc6('0x9'));module[_0x3bc6('0xa')]=function(_0x30ee14,_0x570f0a){return _0x30ee14['define'](_0x3bc6('0xb'),attributes,{'tableName':'mail_interactions','paranoid':![],'indexes':[{'name':_0x3bc6('0xc'),'fields':[_0x3bc6('0xd'),'to'],'type':_0x3bc6('0xe')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x25ffcc,_0x2b73fd,_0xb59d83){if(_0x25ffcc['substatus']){_0x25ffcc[_0x3bc6('0xf')]=moment()[_0x3bc6('0x10')](_0x3bc6('0x11'));}if(_0x25ffcc[_0x3bc6('0x12')]){_0x25ffcc[_0x3bc6('0x13')]=moment()['format'](_0x3bc6('0x11'));}_0xb59d83(null,_0x2b73fd);},'beforeUpdate':function(_0x21b5e6,_0x417ee3,_0x16e1a8){if(_0x21b5e6[_0x3bc6('0x14')](_0x3bc6('0x15'))){_0x21b5e6[_0x3bc6('0xf')]=_0x21b5e6['substatus']?moment()['format'](_0x3bc6('0x11')):null;}if(_0x21b5e6['changed'](_0x3bc6('0x12'))){_0x21b5e6[_0x3bc6('0x13')]=moment()[_0x3bc6('0x10')]('YYYY-MM-DD\x20HH:mm:ss');_0x21b5e6[_0x3bc6('0x15')]=null;_0x21b5e6[_0x3bc6('0xf')]=null;}_0x16e1a8(null,_0x21b5e6);},'afterUpdate':function(_0x1f94fb,_0x3fd81a,_0x492f60){var _0xb95a19=_0x30ee14[_0x3bc6('0x16')];var _0x42c3b9=_0x1f94fb[_0x3bc6('0x17')]({'plain':!![]});if(_0x42c3b9[_0x3bc6('0x12')]){return _0xb95a19['MailMessage']['update']({'read':!![]},{'where':{'MailInteractionId':_0x42c3b9['id']}})['then'](function(){_0x492f60();})[_0x3bc6('0x18')](function(_0xe37ace){_0x492f60(_0xe37ace);});}else{_0x492f60();}}},'charset':_0x3bc6('0x19'),'collate':_0x3bc6('0x1a')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb8ab=['then','info','MailInteraction,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','MailInteraction','body','options','raw','attributes','limit','UpdateMailInteraction','AddTagsToMailInteraction','find','ids','omit','spread','AddTags','catch','lodash','moment','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./mailInteraction.socket'];(function(_0x3af6d3,_0xd6ff2e){var _0xf0c5a8=function(_0x392c56){while(--_0x392c56){_0x3af6d3['push'](_0x3af6d3['shift']());}};_0xf0c5a8(++_0xd6ff2e);}(_0xb8ab,0x1ea));var _0xbb8a=function(_0x110479,_0x4cebf5){_0x110479=_0x110479-0x0;var _0x3390d1=_0xb8ab[_0x110479];return _0x3390d1;};'use strict';var _=require(_0xbb8a('0x0'));var util=require('util');var moment=require(_0xbb8a('0x1'));var BPromise=require('bluebird');var rs=require(_0xbb8a('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbb8a('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xbb8a('0x4'))(_0xbb8a('0x5'));var config=require(_0xbb8a('0x6'));var jayson=require(_0xbb8a('0x7'));var client=jayson[_0xbb8a('0x8')][_0xbb8a('0x9')]({'port':0x232a});config['redis']=_['defaults'](config[_0xbb8a('0xa')],{'host':_0xbb8a('0xb'),'port':0x18eb});var socket=require(_0xbb8a('0xc'))(new Redis(config[_0xbb8a('0xa')]));require(_0xbb8a('0xd'))['register'](socket);function respondWithRpcPromise(_0xbcdd6e,_0x6a7048,_0x3ca139){return new BPromise(function(_0x3a4909,_0x5b8ce4){return client['request'](_0xbcdd6e,_0x3ca139)[_0xbb8a('0xe')](function(_0x394f84){logger[_0xbb8a('0xf')](_0xbb8a('0x10'),_0x6a7048,_0xbb8a('0x11'));logger['debug']('MailInteraction,\x20%s,\x20%s,\x20%s',_0x6a7048,_0xbb8a('0x11'),JSON[_0xbb8a('0x12')](_0x394f84));if(_0x394f84[_0xbb8a('0x13')]){if(_0x394f84[_0xbb8a('0x13')]['code']===0x1f4){logger[_0xbb8a('0x13')](_0xbb8a('0x10'),_0x6a7048,_0x394f84[_0xbb8a('0x13')][_0xbb8a('0x14')]);return _0x5b8ce4(_0x394f84[_0xbb8a('0x13')]['message']);}logger[_0xbb8a('0x13')](_0xbb8a('0x10'),_0x6a7048,_0x394f84[_0xbb8a('0x13')][_0xbb8a('0x14')]);return _0x3a4909(_0x394f84[_0xbb8a('0x13')][_0xbb8a('0x14')]);}else{logger['info']('MailInteraction,\x20%s,\x20%s',_0x6a7048,_0xbb8a('0x11'));_0x3a4909(_0x394f84[_0xbb8a('0x15')]['message']);}})['catch'](function(_0x585c50){logger[_0xbb8a('0x13')](_0xbb8a('0x10'),_0x6a7048,_0x585c50);_0x5b8ce4(_0x585c50);});});}exports['UpdateMailInteraction']=function(_0x2c2b1b){var _0x274190=this;return new Promise(function(_0x38e1c8,_0x24ab5e){return db[_0xbb8a('0x16')]['update'](_0x2c2b1b[_0xbb8a('0x17')],{'raw':_0x2c2b1b[_0xbb8a('0x18')]?_0x2c2b1b['options'][_0xbb8a('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2c2b1b[_0xbb8a('0x18')]?_0x2c2b1b[_0xbb8a('0x18')]['where']||null:null,'attributes':_0x2c2b1b['options']?_0x2c2b1b[_0xbb8a('0x18')][_0xbb8a('0x1a')]||null:null,'limit':_0x2c2b1b[_0xbb8a('0x18')]?_0x2c2b1b[_0xbb8a('0x18')][_0xbb8a('0x1b')]||null:null})[_0xbb8a('0xe')](function(_0xc858d5){logger[_0xbb8a('0xf')]('UpdateMailInteraction',_0x2c2b1b);logger['debug'](_0xbb8a('0x1c'),_0x2c2b1b,JSON['stringify'](_0xc858d5));_0x38e1c8(_0xc858d5);})['catch'](function(_0x464e46){logger[_0xbb8a('0x13')](_0xbb8a('0x1c'),_0x464e46['message'],_0x2c2b1b);_0x24ab5e(_0x274190[_0xbb8a('0x13')](0x1f4,_0x464e46['message']));});});};exports[_0xbb8a('0x1d')]=function(_0x4e2d4a){return new Promise(function(_0x27ecfe,_0x1f7eca){return db[_0xbb8a('0x16')][_0xbb8a('0x1e')]({'where':_0x4e2d4a[_0xbb8a('0x18')]?_0x4e2d4a[_0xbb8a('0x18')]['where']||null:null})[_0xbb8a('0xe')](function(_0x2228f3){if(_0x2228f3){return _0x2228f3['addTags'](_0x4e2d4a[_0xbb8a('0x17')][_0xbb8a('0x1f')],_[_0xbb8a('0x20')](_0x4e2d4a['body'],[_0xbb8a('0x1f'),'id'])||{});}})[_0xbb8a('0x21')](function(_0x325bc7){logger['info']('AddTags',_0x4e2d4a);logger['debug'](_0xbb8a('0x22'),_0x4e2d4a,JSON['stringify'](_0x325bc7));_0x27ecfe(_0x325bc7);})[_0xbb8a('0x23')](function(_0x48fca9){logger[_0xbb8a('0x13')]('AddTags',_0x48fca9['message'],_0x4e2d4a);_0x1f7eca(_this[_0xbb8a('0x13')](0x1f4,_0x48fca9[_0xbb8a('0x14')]));});});};
\ No newline at end of file
+var _0xedf9=['message','result','catch','UpdateMailInteraction','MailInteraction','update','body','options','raw','where','debug','find','addTags','ids','omit','spread','AddTags','lodash','util','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','register','request','then','info','MailInteraction,\x20%s,\x20%s','request\x20sent','MailInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x1745ff,_0x311933){var _0x19732c=function(_0x272f86){while(--_0x272f86){_0x1745ff['push'](_0x1745ff['shift']());}};_0x19732c(++_0x311933);}(_0xedf9,0x130));var _0x9edf=function(_0x52564b,_0x24c4eb){_0x52564b=_0x52564b-0x0;var _0x31042d=_0xedf9[_0x52564b];return _0x31042d;};'use strict';var _=require(_0x9edf('0x0'));var util=require(_0x9edf('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x9edf('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9edf('0x3'))['db'];var utils=require(_0x9edf('0x4'));var logger=require(_0x9edf('0x5'))(_0x9edf('0x6'));var config=require(_0x9edf('0x7'));var jayson=require(_0x9edf('0x8'));var client=jayson[_0x9edf('0x9')][_0x9edf('0xa')]({'port':0x232a});config[_0x9edf('0xb')]=_[_0x9edf('0xc')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x9edf('0xd'))(new Redis(config[_0x9edf('0xb')]));require('./mailInteraction.socket')[_0x9edf('0xe')](socket);function respondWithRpcPromise(_0x16d7ae,_0x51228c,_0x23afac){return new BPromise(function(_0x410fdd,_0x3573b2){return client[_0x9edf('0xf')](_0x16d7ae,_0x23afac)[_0x9edf('0x10')](function(_0x5625d5){logger[_0x9edf('0x11')](_0x9edf('0x12'),_0x51228c,_0x9edf('0x13'));logger['debug'](_0x9edf('0x14'),_0x51228c,'request\x20sent',JSON[_0x9edf('0x15')](_0x5625d5));if(_0x5625d5[_0x9edf('0x16')]){if(_0x5625d5[_0x9edf('0x16')][_0x9edf('0x17')]===0x1f4){logger['error'](_0x9edf('0x12'),_0x51228c,_0x5625d5[_0x9edf('0x16')][_0x9edf('0x18')]);return _0x3573b2(_0x5625d5['error']['message']);}logger[_0x9edf('0x16')](_0x9edf('0x12'),_0x51228c,_0x5625d5[_0x9edf('0x16')][_0x9edf('0x18')]);return _0x410fdd(_0x5625d5[_0x9edf('0x16')][_0x9edf('0x18')]);}else{logger[_0x9edf('0x11')](_0x9edf('0x12'),_0x51228c,_0x9edf('0x13'));_0x410fdd(_0x5625d5[_0x9edf('0x19')][_0x9edf('0x18')]);}})[_0x9edf('0x1a')](function(_0x4aa104){logger[_0x9edf('0x16')]('MailInteraction,\x20%s,\x20%s',_0x51228c,_0x4aa104);_0x3573b2(_0x4aa104);});});}exports[_0x9edf('0x1b')]=function(_0x515f6e){var _0x4542c4=this;return new Promise(function(_0x127ce2,_0x32e6ed){return db[_0x9edf('0x1c')][_0x9edf('0x1d')](_0x515f6e[_0x9edf('0x1e')],{'raw':_0x515f6e[_0x9edf('0x1f')]?_0x515f6e[_0x9edf('0x1f')][_0x9edf('0x20')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x515f6e[_0x9edf('0x1f')]?_0x515f6e[_0x9edf('0x1f')][_0x9edf('0x21')]||null:null,'attributes':_0x515f6e[_0x9edf('0x1f')]?_0x515f6e[_0x9edf('0x1f')]['attributes']||null:null,'limit':_0x515f6e['options']?_0x515f6e['options']['limit']||null:null})[_0x9edf('0x10')](function(_0x30f107){logger[_0x9edf('0x11')](_0x9edf('0x1b'),_0x515f6e);logger[_0x9edf('0x22')](_0x9edf('0x1b'),_0x515f6e,JSON['stringify'](_0x30f107));_0x127ce2(_0x30f107);})['catch'](function(_0x351f9d){logger['error'](_0x9edf('0x1b'),_0x351f9d[_0x9edf('0x18')],_0x515f6e);_0x32e6ed(_0x4542c4[_0x9edf('0x16')](0x1f4,_0x351f9d[_0x9edf('0x18')]));});});};exports['AddTagsToMailInteraction']=function(_0x1fa34b){return new Promise(function(_0x5a4877,_0x52a1ee){return db[_0x9edf('0x1c')][_0x9edf('0x23')]({'where':_0x1fa34b['options']?_0x1fa34b[_0x9edf('0x1f')][_0x9edf('0x21')]||null:null})[_0x9edf('0x10')](function(_0x2a9fe3){if(_0x2a9fe3){return _0x2a9fe3[_0x9edf('0x24')](_0x1fa34b[_0x9edf('0x1e')][_0x9edf('0x25')],_[_0x9edf('0x26')](_0x1fa34b['body'],['ids','id'])||{});}})[_0x9edf('0x27')](function(_0x559fe6){logger['info']('AddTags',_0x1fa34b);logger[_0x9edf('0x22')](_0x9edf('0x28'),_0x1fa34b,JSON[_0x9edf('0x15')](_0x559fe6));_0x5a4877(_0x559fe6);})[_0x9edf('0x1a')](function(_0x179761){logger['error']('AddTags',_0x179761['message'],_0x1fa34b);_0x52a1ee(_this['error'](0x1f4,_0x179761[_0x9edf('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x48b3=['emit','removeListener','register','length','mailInteraction:','./mailInteraction.events','remove','update'];(function(_0x11167c,_0xb0ff07){var _0x34bdb0=function(_0x34f17f){while(--_0x34f17f){_0x11167c['push'](_0x11167c['shift']());}};_0x34bdb0(++_0xb0ff07);}(_0x48b3,0xd5));var _0x348b=function(_0x56ba2e,_0x1df696){_0x56ba2e=_0x56ba2e-0x0;var _0x6ea3bd=_0x48b3[_0x56ba2e];return _0x6ea3bd;};'use strict';var MailInteractionEvents=require(_0x348b('0x0'));var events=['save',_0x348b('0x1'),_0x348b('0x2')];function createListener(_0x36b286,_0x13ac00){return function(_0x5668a0){_0x13ac00[_0x348b('0x3')](_0x36b286,_0x5668a0);};}function removeListener(_0x321a63,_0x1d7185){return function(){MailInteractionEvents[_0x348b('0x4')](_0x321a63,_0x1d7185);};}exports[_0x348b('0x5')]=function(_0x15ad88){for(var _0x54e98c=0x0,_0x1a4c5d=events[_0x348b('0x6')];_0x54e98c<_0x1a4c5d;_0x54e98c++){var _0x57ad4e=events[_0x54e98c];var _0xab2bbd=createListener(_0x348b('0x7')+_0x57ad4e,_0x15ad88);MailInteractionEvents['on'](_0x57ad4e,_0xab2bbd);}};
\ No newline at end of file
+var _0x51df=['save','update','emit','removeListener','length','mailInteraction:','./mailInteraction.events'];(function(_0x260ef4,_0x212ccd){var _0xb9a3e6=function(_0x18edd8){while(--_0x18edd8){_0x260ef4['push'](_0x260ef4['shift']());}};_0xb9a3e6(++_0x212ccd);}(_0x51df,0x141));var _0xf51d=function(_0xa6db22,_0x93d59d){_0xa6db22=_0xa6db22-0x0;var _0x3281b4=_0x51df[_0xa6db22];return _0x3281b4;};'use strict';var MailInteractionEvents=require(_0xf51d('0x0'));var events=[_0xf51d('0x1'),'remove',_0xf51d('0x2')];function createListener(_0x3c55ce,_0x3f0bb9){return function(_0x4dbcf5){_0x3f0bb9[_0xf51d('0x3')](_0x3c55ce,_0x4dbcf5);};}function removeListener(_0x483ced,_0x4c23d2){return function(){MailInteractionEvents[_0xf51d('0x4')](_0x483ced,_0x4c23d2);};}exports['register']=function(_0x25bb3b){for(var _0x1b3715=0x0,_0x5e9376=events[_0xf51d('0x5')];_0x1b3715<_0x5e9376;_0x1b3715++){var _0x19d84a=events[_0x1b3715];var _0x404d4c=createListener(_0xf51d('0x6')+_0x19d84a,_0x25bb3b);MailInteractionEvents['on'](_0x19d84a,_0x404d4c);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b30=['./mailMessage.controller','get','isAuthenticated','index','/describe','describe','show','/:id/download','download','post','mail','mailmessage:create','create','/:id','update','put','/:id/accept','/:id/reject','reject','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x2e4e19,_0x493b50){var _0x9ba20b=function(_0x2f6456){while(--_0x2f6456){_0x2e4e19['push'](_0x2e4e19['shift']());}};_0x9ba20b(++_0x493b50);}(_0x8b30,0x1c7));var _0x08b3=function(_0x1da04e,_0x31024b){_0x1da04e=_0x1da04e-0x0;var _0xdd8c41=_0x8b30[_0x1da04e];return _0xdd8c41;};'use strict';var multer=require(_0x08b3('0x0'));var util=require(_0x08b3('0x1'));var path=require(_0x08b3('0x2'));var timeout=require(_0x08b3('0x3'));var express=require(_0x08b3('0x4'));var router=express[_0x08b3('0x5')]();var fs_extra=require(_0x08b3('0x6'));var auth=require(_0x08b3('0x7'));var interaction=require(_0x08b3('0x8'));var config=require(_0x08b3('0x9'));var controller=require(_0x08b3('0xa'));router[_0x08b3('0xb')]('/',auth[_0x08b3('0xc')](),controller[_0x08b3('0xd')]);router['get'](_0x08b3('0xe'),auth[_0x08b3('0xc')](),controller[_0x08b3('0xf')]);router[_0x08b3('0xb')]('/:id',auth['isAuthenticated'](),controller[_0x08b3('0x10')]);router[_0x08b3('0xb')](_0x08b3('0x11'),auth[_0x08b3('0xc')](),controller[_0x08b3('0x12')]);router[_0x08b3('0x13')]('/',auth[_0x08b3('0xc')](),interaction['tracked'](_0x08b3('0x14'),_0x08b3('0x15')),controller[_0x08b3('0x16')]);router['put'](_0x08b3('0x17'),auth[_0x08b3('0xc')](),controller[_0x08b3('0x18')]);router[_0x08b3('0x19')](_0x08b3('0x1a'),auth[_0x08b3('0xc')](),controller['accept']);router[_0x08b3('0x19')](_0x08b3('0x1b'),auth[_0x08b3('0xc')](),controller[_0x08b3('0x1c')]);router['delete']('/:id',auth[_0x08b3('0xc')](),controller[_0x08b3('0x1d')]);module[_0x08b3('0x1e')]=router;
\ No newline at end of file
+var _0xa6e2=['get','isAuthenticated','index','describe','/:id','show','/:id/download','download','post','tracked','mailmessage:create','put','update','/:id/accept','/:id/reject','reject','delete','exports','multer','util','connect-timeout','express','Router','../../components/interaction/service'];(function(_0x2c6de2,_0x5d253d){var _0x4492f6=function(_0x1c765b){while(--_0x1c765b){_0x2c6de2['push'](_0x2c6de2['shift']());}};_0x4492f6(++_0x5d253d);}(_0xa6e2,0x132));var _0x2a6e=function(_0x1a61ec,_0x165289){_0x1a61ec=_0x1a61ec-0x0;var _0x299b75=_0xa6e2[_0x1a61ec];return _0x299b75;};'use strict';var multer=require(_0x2a6e('0x0'));var util=require(_0x2a6e('0x1'));var path=require('path');var timeout=require(_0x2a6e('0x2'));var express=require(_0x2a6e('0x3'));var router=express[_0x2a6e('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x2a6e('0x5'));var config=require('../../config/environment');var controller=require('./mailMessage.controller');router[_0x2a6e('0x6')]('/',auth[_0x2a6e('0x7')](),controller[_0x2a6e('0x8')]);router[_0x2a6e('0x6')]('/describe',auth[_0x2a6e('0x7')](),controller[_0x2a6e('0x9')]);router['get'](_0x2a6e('0xa'),auth[_0x2a6e('0x7')](),controller[_0x2a6e('0xb')]);router[_0x2a6e('0x6')](_0x2a6e('0xc'),auth[_0x2a6e('0x7')](),controller[_0x2a6e('0xd')]);router[_0x2a6e('0xe')]('/',auth[_0x2a6e('0x7')](),interaction[_0x2a6e('0xf')]('mail',_0x2a6e('0x10')),controller['create']);router[_0x2a6e('0x11')](_0x2a6e('0xa'),auth[_0x2a6e('0x7')](),controller[_0x2a6e('0x12')]);router[_0x2a6e('0x11')](_0x2a6e('0x13'),auth[_0x2a6e('0x7')](),controller['accept']);router[_0x2a6e('0x11')](_0x2a6e('0x14'),auth['isAuthenticated'](),controller[_0x2a6e('0x15')]);router[_0x2a6e('0x16')](_0x2a6e('0xa'),auth[_0x2a6e('0x7')](),controller['destroy']);module[_0x2a6e('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6883=['medium','ENUM','out','STRING','long','DATE','INTEGER','BOOLEAN','Email','Chat','sequelize','lodash','exports','TEXT'];(function(_0x64a67,_0x16278f){var _0x408007=function(_0x1a4f52){while(--_0x1a4f52){_0x64a67['push'](_0x64a67['shift']());}};_0x408007(++_0x16278f);}(_0x6883,0xdc));var _0x3688=function(_0x36d018,_0x55bdaa){_0x36d018=_0x36d018-0x0;var _0x3ccf30=_0x6883[_0x36d018];return _0x3ccf30;};'use strict';var Sequelize=require(_0x3688('0x0'));var _=require(_0x3688('0x1'));module[_0x3688('0x2')]={'body':{'type':Sequelize[_0x3688('0x3')]('long'),'allowNull':![]},'plainBody':{'type':Sequelize[_0x3688('0x3')](_0x3688('0x4'))},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x3688('0x5')]('in',_0x3688('0x6')),'defaultValue':_0x3688('0x6'),'allowNull':![]},'messageId':{'type':Sequelize['STRING'](0x1fe)},'from':{'type':Sequelize[_0x3688('0x7')]},'to':{'type':Sequelize[_0x3688('0x3')](_0x3688('0x8'))},'cc':{'type':Sequelize[_0x3688('0x3')](_0x3688('0x8'))},'bcc':{'type':Sequelize[_0x3688('0x3')]('long')},'subject':{'type':Sequelize[_0x3688('0x3')]},'sentAt':{'type':Sequelize[_0x3688('0x9')]},'attach':{'type':Sequelize[_0x3688('0xa')],'defaultValue':0x0},'secret':{'type':Sequelize[_0x3688('0xb')],'defaultValue':![]},'readAt':{'type':Sequelize[_0x3688('0x9')]},'originTo':{'type':Sequelize[_0x3688('0x3')](_0x3688('0x8'))},'originCc':{'type':Sequelize['TEXT'](_0x3688('0x8'))},'originChannel':{'type':Sequelize[_0x3688('0x5')](_0x3688('0xc'),_0x3688('0xd')),'defaultValue':_0x3688('0xc'),'allowNull':![]}};
\ No newline at end of file
+var _0x33f8=['INTEGER','Chat','Email','sequelize','lodash','exports','TEXT','long','BOOLEAN','ENUM','out','STRING'];(function(_0x102e37,_0x14a181){var _0x35a07c=function(_0x16577f){while(--_0x16577f){_0x102e37['push'](_0x102e37['shift']());}};_0x35a07c(++_0x14a181);}(_0x33f8,0xab));var _0x833f=function(_0x2ccaa8,_0x5f4dcb){_0x2ccaa8=_0x2ccaa8-0x0;var _0x1fe917=_0x33f8[_0x2ccaa8];return _0x1fe917;};'use strict';var Sequelize=require(_0x833f('0x0'));var _=require(_0x833f('0x1'));module[_0x833f('0x2')]={'body':{'type':Sequelize[_0x833f('0x3')](_0x833f('0x4')),'allowNull':![]},'plainBody':{'type':Sequelize['TEXT']('medium')},'read':{'type':Sequelize[_0x833f('0x5')],'defaultValue':![]},'direction':{'type':Sequelize[_0x833f('0x6')]('in',_0x833f('0x7')),'defaultValue':_0x833f('0x7'),'allowNull':![]},'messageId':{'type':Sequelize[_0x833f('0x8')](0x1fe)},'from':{'type':Sequelize[_0x833f('0x8')]},'to':{'type':Sequelize[_0x833f('0x3')](_0x833f('0x4'))},'cc':{'type':Sequelize[_0x833f('0x3')](_0x833f('0x4'))},'bcc':{'type':Sequelize['TEXT'](_0x833f('0x4'))},'subject':{'type':Sequelize['TEXT']},'sentAt':{'type':Sequelize['DATE']},'attach':{'type':Sequelize[_0x833f('0x9')],'defaultValue':0x0},'secret':{'type':Sequelize[_0x833f('0x5')],'defaultValue':![]},'readAt':{'type':Sequelize['DATE']},'originTo':{'type':Sequelize['TEXT'](_0x833f('0x4'))},'originCc':{'type':Sequelize[_0x833f('0x3')](_0x833f('0x4'))},'originChannel':{'type':Sequelize['ENUM']('Email',_0x833f('0xa')),'defaultValue':_0x833f('0xb'),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ca6=['limit','count','set','Content-Range','update','destroy','sendStatus','stack','name','send','index','map','MailMessage','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','params','include','find','body','describe','create','direction','out','secret','split','MailAccount','findOne','MailAccountId','List','updatedAt','DESC','MailServerOut','Smtp','isNil','host','secure','user','pass','service','auth','attachments','length','server/files/attachments','basename','Contacts','defaults','ListId','List\x20not\x20found','SendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','accept','mail','read','readAt','UserId','agent','get','MailInteraction','MailInteractionId','read1stAt','interaction','null','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','QueryTypes','SELECT','contact','User','fullname','email','internal','manual','interface','SIP/%s','channel','motionChannel','fromString','EventManager','acceptmessage','reject','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','RejectMessage','rejectMessage','Sequelize','rejectmessage','download','toString','join','root','server','tmp','message-%s.eml','from','bcc','subject','Attachment','Attachments','decode','createdAt','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','readFileSync','build','unlinkSync','eml-format','moment','bluebird','path','lodash','ioredis','html-to-text','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','socket.io-emitter','html-entities','register','jayson/promise','http','client','then','info','request\x20sent','debug','stringify','error','MailMessage,\x20%s,\x20%s','message','result','catch','status','json','offset','undefined'];(function(_0xb0fa4b,_0x117b8a){var _0x4caaf7=function(_0x41cada){while(--_0x41cada){_0xb0fa4b['push'](_0xb0fa4b['shift']());}};_0x4caaf7(++_0x117b8a);}(_0x5ca6,0x81));var _0x65ca=function(_0x568a61,_0x2124f8){_0x568a61=_0x568a61-0x0;var _0x334c3b=_0x5ca6[_0x568a61];return _0x334c3b;};'use strict';var emlformat=require(_0x65ca('0x0'));var moment=require(_0x65ca('0x1'));var BPromise=require(_0x65ca('0x2'));var util=require('util');var path=require(_0x65ca('0x3'));var fs=require('fs');var _=require(_0x65ca('0x4'));var Redis=require(_0x65ca('0x5'));var htmlToText=require(_0x65ca('0x6'));var qs=require(_0x65ca('0x7'));var logger=require(_0x65ca('0x8'))(_0x65ca('0x9'));var interaction_log=require(_0x65ca('0x8'))('mail-interactions');var config=require(_0x65ca('0xa'));var db=require(_0x65ca('0xb'))['db'];config[_0x65ca('0xc')]=_['defaults'](config[_0x65ca('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0x65ca('0xd'))(new Redis(config[_0x65ca('0xc')]));var htmlEntities=require(_0x65ca('0xe'));require('./mailMessage.socket')[_0x65ca('0xf')](socket);var jayson=require(_0x65ca('0x10'));var client=jayson['client'][_0x65ca('0x11')]({'port':0x232c});var client9003=jayson[_0x65ca('0x12')][_0x65ca('0x11')]({'port':0x232b});var client9002=jayson[_0x65ca('0x12')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1cd505,_0x52dc05,_0xd14082,_0x225861){return new BPromise(function(_0x26cf17,_0x55819f){var _0x5a1a86=_0x225861||client;return _0x5a1a86['request'](_0x1cd505,_0xd14082)[_0x65ca('0x13')](function(_0x48a522){logger[_0x65ca('0x14')]('MailMessage,\x20%s,\x20%s',_0x52dc05,_0x65ca('0x15'));logger[_0x65ca('0x16')]('MailMessage,\x20%s,\x20%s,\x20%s',_0x52dc05,_0x65ca('0x15'),JSON[_0x65ca('0x17')](_0x48a522));if(_0x48a522[_0x65ca('0x18')]){if(_0x48a522[_0x65ca('0x18')]['code']===0x1f4){logger[_0x65ca('0x18')](_0x65ca('0x19'),_0x52dc05,_0x48a522[_0x65ca('0x18')]['message']);return _0x55819f(_0x48a522[_0x65ca('0x18')][_0x65ca('0x1a')]);}logger['error']('MailMessage,\x20%s,\x20%s',_0x52dc05,_0x48a522['error'][_0x65ca('0x1a')]);return _0x26cf17(_0x48a522['error'][_0x65ca('0x1a')]);}else{logger[_0x65ca('0x14')](_0x65ca('0x19'),_0x52dc05,'request\x20sent');_0x26cf17(_0x48a522[_0x65ca('0x1b')][_0x65ca('0x1a')]);}})[_0x65ca('0x1c')](function(_0x484eee){logger[_0x65ca('0x18')](_0x65ca('0x19'),_0x52dc05,_0x484eee);_0x55819f(_0x484eee);});});}function respondWithResult(_0x5b74b6,_0xa9b471){_0xa9b471=_0xa9b471||0xc8;return function(_0x5f3eea){if(_0x5f3eea){return _0x5b74b6[_0x65ca('0x1d')](_0xa9b471)[_0x65ca('0x1e')](_0x5f3eea);}};}function respondWithFilteredResult(_0xd2b78d,_0x580a97){return function(_0x2ed685){if(_0x2ed685){var _0x34ad73=typeof _0x580a97[_0x65ca('0x1f')]===_0x65ca('0x20')&&typeof _0x580a97[_0x65ca('0x21')]===_0x65ca('0x20');var _0x1abc6b=_0x2ed685[_0x65ca('0x22')];var _0x449caf=_0x34ad73?0x0:_0x580a97['offset'];var _0x593a2a=_0x34ad73?_0x2ed685['count']:_0x580a97[_0x65ca('0x1f')]+_0x580a97[_0x65ca('0x21')];var _0x291b79;if(_0x593a2a>=_0x1abc6b){_0x593a2a=_0x1abc6b;_0x291b79=0xc8;}else{_0x291b79=0xce;}_0xd2b78d[_0x65ca('0x1d')](_0x291b79);return _0xd2b78d[_0x65ca('0x23')](_0x65ca('0x24'),_0x449caf+'-'+_0x593a2a+'/'+_0x1abc6b)[_0x65ca('0x1e')](_0x2ed685);}return null;};}function saveUpdates(_0x4f2e82){return function(_0x2ffd8b){if(_0x2ffd8b){return _0x2ffd8b[_0x65ca('0x25')](_0x4f2e82)[_0x65ca('0x13')](function(_0x308f09){return _0x308f09;});}return null;};}function removeEntity(_0x43bf41){return function(_0x690c33){if(_0x690c33){return _0x690c33[_0x65ca('0x26')]()[_0x65ca('0x13')](function(){_0x43bf41[_0x65ca('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x12ec82){return function(_0xf7c3eb){if(!_0xf7c3eb){_0x12ec82[_0x65ca('0x27')](0x194);}return _0xf7c3eb;};}function handleError(_0x49eb15,_0xb84428){_0xb84428=_0xb84428||0x1f4;return function(_0x3403fa){logger[_0x65ca('0x18')](_0x3403fa[_0x65ca('0x28')]);if(_0x3403fa[_0x65ca('0x29')]){delete _0x3403fa[_0x65ca('0x29')];}_0x49eb15[_0x65ca('0x1d')](_0xb84428)[_0x65ca('0x2a')](_0x3403fa);};}exports[_0x65ca('0x2b')]=function(_0x2ba13b,_0x532862){var _0x4a4f75={},_0x4876c0={},_0x321d24={'count':0x0,'rows':[]};var _0x3881dc=_[_0x65ca('0x2c')](db[_0x65ca('0x2d')][_0x65ca('0x2e')],function(_0x2acd8b){return{'name':_0x2acd8b['fieldName'],'type':_0x2acd8b[_0x65ca('0x2f')][_0x65ca('0x30')]};});_0x4876c0[_0x65ca('0x31')]=_[_0x65ca('0x2c')](_0x3881dc,'name');_0x4876c0[_0x65ca('0x32')]=_[_0x65ca('0x33')](_0x2ba13b['query']);_0x4876c0[_0x65ca('0x34')]=_[_0x65ca('0x35')](_0x4876c0[_0x65ca('0x31')],_0x4876c0[_0x65ca('0x32')]);_0x4a4f75[_0x65ca('0x36')]=_['intersection'](_0x4876c0[_0x65ca('0x31')],qs['fields'](_0x2ba13b[_0x65ca('0x32')][_0x65ca('0x37')]));_0x4a4f75[_0x65ca('0x36')]=_0x4a4f75[_0x65ca('0x36')]['length']?_0x4a4f75[_0x65ca('0x36')]:_0x4876c0[_0x65ca('0x31')];if(!_0x2ba13b[_0x65ca('0x32')][_0x65ca('0x38')]('nolimit')){_0x4a4f75[_0x65ca('0x21')]=qs[_0x65ca('0x21')](_0x2ba13b[_0x65ca('0x32')]['limit']);_0x4a4f75[_0x65ca('0x1f')]=qs['offset'](_0x2ba13b[_0x65ca('0x32')][_0x65ca('0x1f')]);}_0x4a4f75['order']=qs[_0x65ca('0x39')](_0x2ba13b['query'][_0x65ca('0x39')]);_0x4a4f75[_0x65ca('0x3a')]=qs[_0x65ca('0x34')](_[_0x65ca('0x3b')](_0x2ba13b[_0x65ca('0x32')],_0x4876c0['filters']),_0x3881dc);if(_0x2ba13b[_0x65ca('0x32')][_0x65ca('0x3c')]){_0x4a4f75[_0x65ca('0x3a')]=_[_0x65ca('0x3d')](_0x4a4f75[_0x65ca('0x3a')],{'$or':_[_0x65ca('0x2c')](_0x3881dc,function(_0x28ffde){if(_0x28ffde[_0x65ca('0x2f')]!==_0x65ca('0x3e')){var _0x1f785a={};_0x1f785a[_0x28ffde[_0x65ca('0x29')]]={'$like':'%'+_0x2ba13b[_0x65ca('0x32')][_0x65ca('0x3c')]+'%'};return _0x1f785a;}})});}_0x4a4f75=_[_0x65ca('0x3d')]({},_0x4a4f75,_0x2ba13b[_0x65ca('0x3f')]);var _0x391e98={'where':_0x4a4f75['where']};return db[_0x65ca('0x2d')][_0x65ca('0x22')](_0x391e98)[_0x65ca('0x13')](function(_0x30e55c){_0x321d24['count']=_0x30e55c;if(_0x2ba13b[_0x65ca('0x32')][_0x65ca('0x40')]){_0x4a4f75['include']=[{'all':!![]}];}return db[_0x65ca('0x2d')][_0x65ca('0x41')](_0x4a4f75);})['then'](function(_0x5d81a4){_0x321d24[_0x65ca('0x42')]=_0x5d81a4;return _0x321d24;})['then'](respondWithFilteredResult(_0x532862,_0x4a4f75))[_0x65ca('0x1c')](handleError(_0x532862,null));};exports[_0x65ca('0x43')]=function(_0x1b9e5d,_0x1df803){var _0x2ae062={'raw':!![],'where':{'id':_0x1b9e5d[_0x65ca('0x44')]['id']}},_0x3053b5={};_0x3053b5[_0x65ca('0x31')]=_['keys'](db[_0x65ca('0x2d')]['rawAttributes']);_0x3053b5[_0x65ca('0x32')]=_[_0x65ca('0x33')](_0x1b9e5d[_0x65ca('0x32')]);_0x3053b5[_0x65ca('0x34')]=_[_0x65ca('0x35')](_0x3053b5[_0x65ca('0x31')],_0x3053b5[_0x65ca('0x32')]);_0x2ae062[_0x65ca('0x36')]=_[_0x65ca('0x35')](_0x3053b5[_0x65ca('0x31')],qs[_0x65ca('0x37')](_0x1b9e5d['query'][_0x65ca('0x37')]));_0x2ae062[_0x65ca('0x36')]=_0x2ae062[_0x65ca('0x36')]['length']?_0x2ae062[_0x65ca('0x36')]:_0x3053b5[_0x65ca('0x31')];if(_0x1b9e5d[_0x65ca('0x32')][_0x65ca('0x40')]){_0x2ae062[_0x65ca('0x45')]=[{'all':!![]}];}_0x2ae062=_['merge']({},_0x2ae062,_0x1b9e5d[_0x65ca('0x3f')]);return db[_0x65ca('0x2d')][_0x65ca('0x46')](_0x2ae062)['then'](handleEntityNotFound(_0x1df803,null))[_0x65ca('0x13')](respondWithResult(_0x1df803,null))[_0x65ca('0x1c')](handleError(_0x1df803,null));};exports['update']=function(_0xc32056,_0x2ff07b){if(_0xc32056['body']['id']){delete _0xc32056[_0x65ca('0x47')]['id'];}return db[_0x65ca('0x2d')][_0x65ca('0x46')]({'where':{'id':_0xc32056['params']['id']}})[_0x65ca('0x13')](handleEntityNotFound(_0x2ff07b,null))[_0x65ca('0x13')](saveUpdates(_0xc32056[_0x65ca('0x47')],null))[_0x65ca('0x13')](respondWithResult(_0x2ff07b,null))['catch'](handleError(_0x2ff07b,null));};exports[_0x65ca('0x26')]=function(_0x3223d3,_0x57977f){return db['MailMessage'][_0x65ca('0x46')]({'where':{'id':_0x3223d3[_0x65ca('0x44')]['id']}})[_0x65ca('0x13')](handleEntityNotFound(_0x57977f,null))['then'](removeEntity(_0x57977f,null))['catch'](handleError(_0x57977f,null));};exports[_0x65ca('0x48')]=function(_0x27b047,_0x2f53cd){return db[_0x65ca('0x2d')][_0x65ca('0x48')]()['then'](respondWithResult(_0x2f53cd,null))['catch'](handleError(_0x2f53cd,null));};exports[_0x65ca('0x49')]=function(_0x2a1793,_0x4da7d5){return db[_0x65ca('0x2d')][_0x65ca('0x49')](_0x2a1793[_0x65ca('0x47')])[_0x65ca('0x13')](function(_0x2667da){if(_0x2667da){if(_0x2667da[_0x65ca('0x4a')]===_0x65ca('0x4b')&&!_0x2667da[_0x65ca('0x4c')]){var _0x5004a,_0x56d6b6,_0x51a535;if(_0x2a1793[_0x65ca('0x47')]['to']){_0x56d6b6=_0x2a1793[_0x65ca('0x47')]['to'][_0x65ca('0x4d')](',')[0x0];}return db[_0x65ca('0x4e')][_0x65ca('0x4f')]({'where':{'id':_0x2667da[_0x65ca('0x50')]},'include':[{'model':db['CmList'],'as':_0x65ca('0x51'),'include':[{'model':db['CmContact'],'as':'Contacts','where':{'email':_0x56d6b6},'limit':0x1,'order':[[_0x65ca('0x52'),_0x65ca('0x53')]]}]},{'model':db[_0x65ca('0x54')],'as':'Smtp','raw':!![]}]})['then'](function(_0x3708a8){_0x5004a=_0x3708a8;if(_0x5004a&&_0x5004a[_0x65ca('0x55')]){var _0x363b2d={'tls':{'rejectUnauthorized':![]}};if(_[_0x65ca('0x56')](_0x5004a[_0x65ca('0x55')]['service'])){_0x363b2d[_0x65ca('0x57')]=_0x5004a['Smtp'][_0x65ca('0x57')];_0x363b2d['port']=_0x5004a[_0x65ca('0x55')]['port'];_0x363b2d['secure']=_0x5004a['Smtp'][_0x65ca('0x58')];if(_0x5004a[_0x65ca('0x55')]['authentication']){_0x363b2d['auth']={'user':_0x5004a[_0x65ca('0x55')][_0x65ca('0x59')],'pass':_0x5004a[_0x65ca('0x55')][_0x65ca('0x5a')]};}}else{_0x363b2d[_0x65ca('0x5b')]=_0x5004a[_0x65ca('0x55')][_0x65ca('0x5b')];_0x363b2d[_0x65ca('0x5c')]={'user':_0x5004a[_0x65ca('0x55')][_0x65ca('0x59')],'pass':_0x5004a[_0x65ca('0x55')][_0x65ca('0x5a')]};_0x363b2d[_0x65ca('0x58')]=_0x5004a['Smtp']['secure'];}if(_0x2a1793[_0x65ca('0x47')][_0x65ca('0x5d')]&&_0x2a1793[_0x65ca('0x47')][_0x65ca('0x5d')][_0x65ca('0x5e')]){for(var _0x33dfcf=0x0;_0x33dfcf<_0x2a1793[_0x65ca('0x47')]['attachments']['length'];_0x33dfcf+=0x1){_0x2a1793[_0x65ca('0x47')][_0x65ca('0x5d')][_0x33dfcf]={'filename':_0x2a1793['body']['attachments'][_0x33dfcf][_0x65ca('0x29')],'path':path['join'](config['root'],_0x65ca('0x5f'),_0x2a1793[_0x65ca('0x47')][_0x65ca('0x5d')][_0x33dfcf][_0x65ca('0x60')])};}}_0x51a535={'account':_0x363b2d,'message':_0x2a1793[_0x65ca('0x47')]};return;}})['then'](function(){if(_0x5004a[_0x65ca('0x51')]){if(_0x5004a['List']['Contacts'][_0x65ca('0x5e')]){return _0x5004a[_0x65ca('0x51')][_0x65ca('0x61')][0x0];}else{return db['CmContact'][_0x65ca('0x49')](_[_0x65ca('0x62')](_0x2a1793['body'],{'firstName':_0x2a1793['body']['to'],'email':_0x2a1793[_0x65ca('0x47')]['to'],'phone':_0x2a1793[_0x65ca('0x47')]['to'],'ListId':_0x5004a[_0x65ca('0x63')]}));}}else{throw new Error(_0x65ca('0x64'));}})[_0x65ca('0x13')](function(){if(_0x51a535){return respondWithRpcPromise(_0x65ca('0x65'),'sendMail',_0x51a535,client9003)[_0x65ca('0x13')](function(_0xef0359){return _0x2667da[_0x65ca('0x25')]({'read':!![],'messageId':_0xef0359[_0x65ca('0x66')],'sentAt':moment()[_0x65ca('0x67')](_0x65ca('0x68'))});})[_0x65ca('0x1c')](function(_0x41a02c){logger['error']('%s',JSON[_0x65ca('0x17')](_0x41a02c));return _0x2667da;});}return _0x2667da;});}return _0x2667da;}})[_0x65ca('0x13')](respondWithResult(_0x4da7d5,0xc9))[_0x65ca('0x1c')](handleError(_0x4da7d5,null));};exports[_0x65ca('0x69')]=function(_0x49f9ed,_0x253130){var _0x487df2={'agent':{},'channel':_0x65ca('0x6a')};if(_0x49f9ed['body']['id']){delete _0x49f9ed[_0x65ca('0x47')]['id'];}_0x49f9ed['body'][_0x65ca('0x6b')]=!![];_0x49f9ed[_0x65ca('0x47')][_0x65ca('0x6c')]=moment()[_0x65ca('0x67')](_0x65ca('0x68'));_0x49f9ed['body'][_0x65ca('0x6d')]=_0x49f9ed['body']['UserId']||_0x49f9ed['user']['id'];_0x487df2[_0x65ca('0x6e')]['id']=_0x49f9ed[_0x65ca('0x47')][_0x65ca('0x6d')];return db[_0x65ca('0x2d')][_0x65ca('0x46')]({'where':{'id':_0x49f9ed[_0x65ca('0x44')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x253130,null))[_0x65ca('0x13')](saveUpdates(_0x49f9ed['body'],null))[_0x65ca('0x13')](function(_0x3fecc8){if(_0x3fecc8){_0x487df2['message']=_0x3fecc8[_0x65ca('0x6f')]({'plain':!![]});return db[_0x65ca('0x70')][_0x65ca('0x46')]({'where':{'id':_0x3fecc8[_0x65ca('0x71')]}});}return null;})['then'](handleEntityNotFound(_0x253130,null))['then'](function(_0x5b689f){if(_0x5b689f){return _0x5b689f[_0x65ca('0x25')]({'UserId':_0x49f9ed[_0x65ca('0x47')][_0x65ca('0x6d')],'read1stAt':_[_0x65ca('0x56')](_0x5b689f[_0x65ca('0x72')])?moment()['format'](_0x65ca('0x68')):undefined});}return null;})[_0x65ca('0x13')](function(_0x2fbcae){if(_0x2fbcae){_0x487df2[_0x65ca('0x73')]=_0x2fbcae[_0x65ca('0x6f')]({'plain':!![]});interaction_log[_0x65ca('0x14')]('[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x49f9ed[_0x65ca('0x59')]['id'],_0x49f9ed[_0x65ca('0x59')][_0x65ca('0x29')],_0x49f9ed[_0x65ca('0x59')]['role'],_0x487df2[_0x65ca('0x73')]['id'],_0x49f9ed[_0x65ca('0x47')]?JSON[_0x65ca('0x17')](_0x49f9ed[_0x65ca('0x47')]):_0x65ca('0x74'));return respondWithRpcPromise(_0x65ca('0x75'),'acceptMessage',_0x487df2);}return null;})[_0x65ca('0x13')](function(_0x299ea4){var _0x3fc265=_0x65ca('0x76')+_0x299ea4[_0x65ca('0x1a')]['ContactId'];return db[_0x65ca('0x77')]['query'](_0x3fc265,{'type':db['Sequelize'][_0x65ca('0x78')][_0x65ca('0x79')],'raw':!![]})[_0x65ca('0x13')](function(_0x846543){return _0x846543;});})['then'](function(_0x2f9ffe){if(_0x2f9ffe){_0x487df2[_0x65ca('0x1a')][_0x65ca('0x7a')]=_0x2f9ffe[0x0];if(!_0x49f9ed[_0x65ca('0x47')][_0x65ca('0x6d')])return;return db[_0x65ca('0x7b')][_0x65ca('0x46')]({'where':{'id':_0x49f9ed[_0x65ca('0x47')]['UserId'],'role':_0x65ca('0x6e')},'attributes':['id',_0x65ca('0x29'),_0x65ca('0x7c'),_0x65ca('0x7d'),_0x65ca('0x7e')],'raw':!![]});}return null;})[_0x65ca('0x13')](function(_0x563576){if(!_0x563576)return null;_0x487df2[_0x65ca('0x1a')][_0x65ca('0x6e')]=_0x563576;return _0x487df2;})['then'](function(_0x2ccda2){if(_0x2ccda2){if(_0x49f9ed[_0x65ca('0x47')][_0x65ca('0x7f')]){_0x487df2[_0x65ca('0x1a')][_0x65ca('0x80')]=util[_0x65ca('0x67')](_0x65ca('0x81'),_0x49f9ed[_0x65ca('0x59')]['name']);_0x487df2['message'][_0x65ca('0x82')]=_0x487df2['channel'];_0x487df2[_0x65ca('0x1a')][_0x65ca('0x83')]=_0x487df2[_0x65ca('0x82')];_0x487df2[_0x65ca('0x1a')]['event']=_0x65ca('0x69');_0x487df2[_0x65ca('0x1a')][_0x65ca('0x47')]=htmlToText[_0x65ca('0x84')](_0x487df2[_0x65ca('0x1a')][_0x65ca('0x47')]);return respondWithRpcPromise(_0x65ca('0x85'),_0x65ca('0x85'),{'event':_0x65ca('0x86'),'message':_0x487df2[_0x65ca('0x1a')]},client9002)[_0x65ca('0x13')](function(){return _0x487df2;});}return _0x487df2;}return null;})[_0x65ca('0x13')](respondWithResult(_0x253130,null))[_0x65ca('0x1c')](handleError(_0x253130,null));};exports[_0x65ca('0x87')]=function(_0x5c4a57,_0xc98d84){var _0x428b7c={'agent':{},'channel':_0x65ca('0x6a')};if(_0x5c4a57[_0x65ca('0x47')]['id']){delete _0x5c4a57['body']['id'];}_0x5c4a57[_0x65ca('0x47')][_0x65ca('0x6d')]=_0x5c4a57['body'][_0x65ca('0x6d')]||_0x5c4a57[_0x65ca('0x59')]['id'];_0x428b7c[_0x65ca('0x6e')]['id']=_0x5c4a57[_0x65ca('0x47')][_0x65ca('0x6d')];return db[_0x65ca('0x2d')][_0x65ca('0x46')]({'where':{'id':_0x5c4a57[_0x65ca('0x44')]['id'],'UserId':null}})[_0x65ca('0x13')](handleEntityNotFound(_0xc98d84,null))['then'](function(_0x38265c){if(_0x38265c){_0x428b7c['message']=_0x38265c[_0x65ca('0x6f')]({'plain':!![]});return db[_0x65ca('0x70')]['find']({'where':{'id':_0x38265c['MailInteractionId']}});}return null;})[_0x65ca('0x13')](handleEntityNotFound(_0xc98d84,null))[_0x65ca('0x13')](function(_0x2c603e){if(_0x2c603e){_0x428b7c[_0x65ca('0x73')]=_0x2c603e[_0x65ca('0x6f')]({'plain':!![]});interaction_log[_0x65ca('0x14')](_0x65ca('0x88'),_0x5c4a57[_0x65ca('0x59')]['id'],_0x5c4a57[_0x65ca('0x59')][_0x65ca('0x29')],_0x5c4a57[_0x65ca('0x59')][_0x65ca('0x89')],_0x428b7c[_0x65ca('0x73')]['id'],_0x5c4a57[_0x65ca('0x47')]?JSON[_0x65ca('0x17')](_0x5c4a57[_0x65ca('0x47')]):_0x65ca('0x74'));return respondWithRpcPromise(_0x65ca('0x8a'),_0x65ca('0x8b'),_0x428b7c);}return null;})[_0x65ca('0x13')](function(_0x105eb1){var _0x4841fc=_0x65ca('0x76')+_0x105eb1[_0x65ca('0x1a')]['ContactId'];return db[_0x65ca('0x77')][_0x65ca('0x32')](_0x4841fc,{'type':db[_0x65ca('0x8c')][_0x65ca('0x78')][_0x65ca('0x79')],'raw':!![]})[_0x65ca('0x13')](function(_0x82e706){return _0x82e706;});})[_0x65ca('0x13')](function(_0x20a371){if(_0x20a371){_0x428b7c[_0x65ca('0x1a')]['contact']=_0x20a371[0x0];if(!_0x5c4a57[_0x65ca('0x47')][_0x65ca('0x6d')])return;return db[_0x65ca('0x7b')][_0x65ca('0x46')]({'where':{'id':_0x5c4a57['body'][_0x65ca('0x6d')],'role':_0x65ca('0x6e')},'attributes':['id',_0x65ca('0x29'),_0x65ca('0x7c'),'email',_0x65ca('0x7e')],'raw':!![]});}return null;})[_0x65ca('0x13')](function(_0x172c39){if(!_0x172c39)return null;_0x428b7c['message'][_0x65ca('0x6e')]=_0x172c39;return _0x428b7c;})[_0x65ca('0x13')](function(_0x5a101b){if(_0x5a101b){_0x5a101b[_0x65ca('0x1a')]['interface']=util[_0x65ca('0x67')](_0x65ca('0x81'),_0x5c4a57[_0x65ca('0x59')][_0x65ca('0x29')]);_0x5a101b['message'][_0x65ca('0x82')]=_0x428b7c['channel'];_0x5a101b[_0x65ca('0x1a')][_0x65ca('0x83')]=_0x428b7c[_0x65ca('0x82')];_0x5a101b[_0x65ca('0x1a')]['event']='reject';_0x5a101b[_0x65ca('0x1a')][_0x65ca('0x47')]=htmlToText[_0x65ca('0x84')](_0x428b7c['message'][_0x65ca('0x47')]);respondWithRpcPromise(_0x65ca('0x85'),_0x65ca('0x85'),{'event':_0x65ca('0x8d'),'message':_0x5a101b['message']},client9002);return _0x428b7c;}return null;})[_0x65ca('0x13')](respondWithResult(_0xc98d84,null))[_0x65ca('0x1c')](handleError(_0xc98d84,null));};exports[_0x65ca('0x8e')]=function(_0x513688,_0xaa9341){var _0x29d706=moment()['unix']()[_0x65ca('0x8f')]();var _0x3941d5=path[_0x65ca('0x90')](config[_0x65ca('0x91')],_0x65ca('0x92'),'files',_0x65ca('0x93'));var _0x584826=path[_0x65ca('0x90')](config[_0x65ca('0x91')],_0x65ca('0x92'),'files',_0x65ca('0x5d'));var _0xdbcf95=util[_0x65ca('0x67')](_0x65ca('0x94'),_0x29d706);return db['MailMessage'][_0x65ca('0x46')]({'where':{'id':_0x513688[_0x65ca('0x44')]['id']},'attributes':['id',_0x65ca('0x47'),_0x65ca('0x95'),'to','cc',_0x65ca('0x96'),_0x65ca('0x97'),'createdAt'],'include':_0x513688[_0x65ca('0x32')][_0x65ca('0x5d')]?[{'model':db[_0x65ca('0x98')],'as':_0x65ca('0x99')}]:undefined})[_0x65ca('0x13')](handleEntityNotFound(_0xaa9341,null))[_0x65ca('0x13')](function(_0x16f674){if(_0x16f674){var _0x156a2e=_0x16f674;var _0x48c19f={'from':_0x156a2e['from'],'to':_0x156a2e['to'],'subject':_0x156a2e['subject'],'html':htmlEntities[_0x65ca('0x9a')](_0x156a2e[_0x65ca('0x47')]),'headers':{'Date':moment(_0x156a2e[_0x65ca('0x9b')])[_0x65ca('0x67')](_0x65ca('0x9c'))},'attachments':[]};if(_0x16f674['cc']){_0x48c19f[_0x65ca('0x9d')]['Cc']=_0x16f674['cc'];}if(_0x16f674['bcc']){_0x48c19f[_0x65ca('0x9d')][_0x65ca('0x9e')]=_0x16f674['bcc'];}return new BPromise(function(_0xe5fa8b,_0x1fde45){if(_0x16f674[_0x65ca('0x99')]){for(var _0x2db660=0x0;_0x2db660<_0x16f674[_0x65ca('0x99')][_0x65ca('0x5e')];_0x2db660++){var _0x1ddc60=_0x16f674[_0x65ca('0x99')][_0x2db660];var _0x37ca6c=path[_0x65ca('0x90')](_0x584826,_0x1ddc60[_0x65ca('0x60')]);if(fs['existsSync'](_0x37ca6c)){_0x48c19f[_0x65ca('0x5d')]['push']({'name':_0x1ddc60[_0x65ca('0x29')],'contentType':_0x1ddc60[_0x65ca('0x2f')],'data':fs[_0x65ca('0x9f')](_0x37ca6c)});}}}emlformat[_0x65ca('0xa0')](_0x48c19f,function(_0x19d1c0,_0x14c5af){if(_0x19d1c0)return _0x1fde45(_0x19d1c0);fs['writeFileSync'](path[_0x65ca('0x90')](_0x3941d5,_0xdbcf95),_0x14c5af);return _0xe5fa8b(_0x14c5af);});});}})[_0x65ca('0x13')](function(_0x3294e2){if(_0x3294e2){return _0xaa9341[_0x65ca('0x8e')](path[_0x65ca('0x90')](_0x3941d5,_0xdbcf95),_0xdbcf95,function(_0x5c5daa){if(!_0x5c5daa)fs[_0x65ca('0xa1')](path[_0x65ca('0x90')](_0x3941d5,_0xdbcf95));});}})[_0x65ca('0x1c')](handleError(_0xaa9341,null));};
\ No newline at end of file
+var _0x7217=['filters','attributes','intersection','fields','hasOwnProperty','nolimit','sort','where','filter','VIRTUAL','merge','options','findAll','rows','show','params','length','include','find','body','describe','create','direction','out','secret','MailAccount','CmContact','Contacts','updatedAt','MailServerOut','Smtp','service','host','port','secure','authentication','auth','user','pass','attachments','join','root','server/files/attachments','List','ListId','format','YYYY-MM-DD\x20HH:mm:ss','stringify','accept','mail','read','readAt','UserId','agent','get','MailInteractionId','isNil','read1stAt','interaction','role','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','internal','interface','SIP/%s','channel','event','fromString','EventManager','acceptmessage','MailInteraction','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','ContactId','email','reject','rejectmessage','download','toString','server','tmp','files','message-%s.eml','from','bcc','subject','Attachments','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','basename','existsSync','readFileSync','build','writeFileSync','eml-format','bluebird','util','path','lodash','ioredis','../../config/logger','api','mail-interactions','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailMessage.socket','register','jayson/promise','http','client','request','then','info','request\x20sent','debug','error','code','MailMessage,\x20%s,\x20%s','message','result','catch','status','json','offset','limit','undefined','count','Content-Range','update','destroy','stack','name','send','MailMessage','fieldName','type','key','model','map','query','keys'];(function(_0x3c7794,_0x5909ff){var _0x4bc859=function(_0x2ffd9d){while(--_0x2ffd9d){_0x3c7794['push'](_0x3c7794['shift']());}};_0x4bc859(++_0x5909ff);}(_0x7217,0x19e));var _0x7721=function(_0xbb091,_0x3fe7ee){_0xbb091=_0xbb091-0x0;var _0x467a04=_0x7217[_0xbb091];return _0x467a04;};'use strict';var emlformat=require(_0x7721('0x0'));var moment=require('moment');var BPromise=require(_0x7721('0x1'));var util=require(_0x7721('0x2'));var path=require(_0x7721('0x3'));var fs=require('fs');var _=require(_0x7721('0x4'));var Redis=require(_0x7721('0x5'));var htmlToText=require('html-to-text');var qs=require('../../components/parsers/qs');var logger=require(_0x7721('0x6'))(_0x7721('0x7'));var interaction_log=require(_0x7721('0x6'))(_0x7721('0x8'));var config=require(_0x7721('0x9'));var db=require(_0x7721('0xa'))['db'];config[_0x7721('0xb')]=_[_0x7721('0xc')](config[_0x7721('0xb')],{'host':_0x7721('0xd'),'port':0x18eb});var socket=require(_0x7721('0xe'))(new Redis(config[_0x7721('0xb')]));require(_0x7721('0xf'))[_0x7721('0x10')](socket);var jayson=require(_0x7721('0x11'));var client=jayson['client'][_0x7721('0x12')]({'port':0x232c});var client9003=jayson[_0x7721('0x13')][_0x7721('0x12')]({'port':0x232b});var client9002=jayson[_0x7721('0x13')][_0x7721('0x12')]({'port':0x232a});function respondWithRpcPromise(_0x409b37,_0x1e7fd7,_0x27b36b,_0x55b4ca){return new BPromise(function(_0x2911ec,_0x199930){var _0x57ff6d=_0x55b4ca||client;return _0x57ff6d[_0x7721('0x14')](_0x409b37,_0x27b36b)[_0x7721('0x15')](function(_0x3f01c5){logger[_0x7721('0x16')]('MailMessage,\x20%s,\x20%s',_0x1e7fd7,_0x7721('0x17'));logger[_0x7721('0x18')]('MailMessage,\x20%s,\x20%s,\x20%s',_0x1e7fd7,'request\x20sent',JSON['stringify'](_0x3f01c5));if(_0x3f01c5[_0x7721('0x19')]){if(_0x3f01c5[_0x7721('0x19')][_0x7721('0x1a')]===0x1f4){logger[_0x7721('0x19')]('MailMessage,\x20%s,\x20%s',_0x1e7fd7,_0x3f01c5[_0x7721('0x19')]['message']);return _0x199930(_0x3f01c5[_0x7721('0x19')]['message']);}logger[_0x7721('0x19')](_0x7721('0x1b'),_0x1e7fd7,_0x3f01c5[_0x7721('0x19')][_0x7721('0x1c')]);return _0x2911ec(_0x3f01c5[_0x7721('0x19')][_0x7721('0x1c')]);}else{logger[_0x7721('0x16')](_0x7721('0x1b'),_0x1e7fd7,_0x7721('0x17'));_0x2911ec(_0x3f01c5[_0x7721('0x1d')]['message']);}})[_0x7721('0x1e')](function(_0x2c1583){logger[_0x7721('0x19')](_0x7721('0x1b'),_0x1e7fd7,_0x2c1583);_0x199930(_0x2c1583);});});}function respondWithResult(_0x57140c,_0x28f5a6){_0x28f5a6=_0x28f5a6||0xc8;return function(_0x512f31){if(_0x512f31){return _0x57140c[_0x7721('0x1f')](_0x28f5a6)[_0x7721('0x20')](_0x512f31);}};}function respondWithFilteredResult(_0x3e8a4e,_0x1caad8){return function(_0x121cc4){if(_0x121cc4){var _0x395b15=typeof _0x1caad8[_0x7721('0x21')]==='undefined'&&typeof _0x1caad8[_0x7721('0x22')]===_0x7721('0x23');var _0x125564=_0x121cc4[_0x7721('0x24')];var _0x40d550=_0x395b15?0x0:_0x1caad8[_0x7721('0x21')];var _0x424e05=_0x395b15?_0x121cc4[_0x7721('0x24')]:_0x1caad8[_0x7721('0x21')]+_0x1caad8['limit'];var _0x258ddf;if(_0x424e05>=_0x125564){_0x424e05=_0x125564;_0x258ddf=0xc8;}else{_0x258ddf=0xce;}_0x3e8a4e['status'](_0x258ddf);return _0x3e8a4e['set'](_0x7721('0x25'),_0x40d550+'-'+_0x424e05+'/'+_0x125564)[_0x7721('0x20')](_0x121cc4);}return null;};}function saveUpdates(_0x53c904){return function(_0x158d98){if(_0x158d98){return _0x158d98[_0x7721('0x26')](_0x53c904)[_0x7721('0x15')](function(_0xd7d703){return _0xd7d703;});}return null;};}function removeEntity(_0x1da2d8){return function(_0x5c54f0){if(_0x5c54f0){return _0x5c54f0[_0x7721('0x27')]()[_0x7721('0x15')](function(){_0x1da2d8['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xfde9ec){return function(_0x220bbf){if(!_0x220bbf){_0xfde9ec['sendStatus'](0x194);}return _0x220bbf;};}function handleError(_0x46f772,_0x4651b5){_0x4651b5=_0x4651b5||0x1f4;return function(_0x382821){logger['error'](_0x382821[_0x7721('0x28')]);if(_0x382821[_0x7721('0x29')]){delete _0x382821[_0x7721('0x29')];}_0x46f772[_0x7721('0x1f')](_0x4651b5)[_0x7721('0x2a')](_0x382821);};}exports['index']=function(_0x195ffb,_0x3e4e56){var _0xb2386d={},_0x5c5b33={},_0x35de7a={'count':0x0,'rows':[]};var _0x213a2e=_['map'](db[_0x7721('0x2b')]['rawAttributes'],function(_0x2d6ba0){return{'name':_0x2d6ba0[_0x7721('0x2c')],'type':_0x2d6ba0[_0x7721('0x2d')][_0x7721('0x2e')]};});_0x5c5b33[_0x7721('0x2f')]=_[_0x7721('0x30')](_0x213a2e,_0x7721('0x29'));_0x5c5b33[_0x7721('0x31')]=_[_0x7721('0x32')](_0x195ffb[_0x7721('0x31')]);_0x5c5b33[_0x7721('0x33')]=_['intersection'](_0x5c5b33[_0x7721('0x2f')],_0x5c5b33['query']);_0xb2386d[_0x7721('0x34')]=_[_0x7721('0x35')](_0x5c5b33[_0x7721('0x2f')],qs[_0x7721('0x36')](_0x195ffb[_0x7721('0x31')][_0x7721('0x36')]));_0xb2386d['attributes']=_0xb2386d['attributes']['length']?_0xb2386d['attributes']:_0x5c5b33[_0x7721('0x2f')];if(!_0x195ffb[_0x7721('0x31')][_0x7721('0x37')](_0x7721('0x38'))){_0xb2386d['limit']=qs[_0x7721('0x22')](_0x195ffb['query'][_0x7721('0x22')]);_0xb2386d[_0x7721('0x21')]=qs['offset'](_0x195ffb[_0x7721('0x31')][_0x7721('0x21')]);}_0xb2386d['order']=qs['sort'](_0x195ffb[_0x7721('0x31')][_0x7721('0x39')]);_0xb2386d[_0x7721('0x3a')]=qs[_0x7721('0x33')](_['pick'](_0x195ffb[_0x7721('0x31')],_0x5c5b33[_0x7721('0x33')]),_0x213a2e);if(_0x195ffb[_0x7721('0x31')][_0x7721('0x3b')]){_0xb2386d[_0x7721('0x3a')]=_['merge'](_0xb2386d[_0x7721('0x3a')],{'$or':_['map'](_0x213a2e,function(_0xaa3216){if(_0xaa3216['type']!==_0x7721('0x3c')){var _0x15fa2c={};_0x15fa2c[_0xaa3216[_0x7721('0x29')]]={'$like':'%'+_0x195ffb['query'][_0x7721('0x3b')]+'%'};return _0x15fa2c;}})});}_0xb2386d=_[_0x7721('0x3d')]({},_0xb2386d,_0x195ffb[_0x7721('0x3e')]);var _0x481fa8={'where':_0xb2386d[_0x7721('0x3a')]};return db[_0x7721('0x2b')][_0x7721('0x24')](_0x481fa8)[_0x7721('0x15')](function(_0x135dbc){_0x35de7a[_0x7721('0x24')]=_0x135dbc;if(_0x195ffb[_0x7721('0x31')]['includeAll']){_0xb2386d['include']=[{'all':!![]}];}return db[_0x7721('0x2b')][_0x7721('0x3f')](_0xb2386d);})[_0x7721('0x15')](function(_0x39a3ad){_0x35de7a[_0x7721('0x40')]=_0x39a3ad;return _0x35de7a;})[_0x7721('0x15')](respondWithFilteredResult(_0x3e4e56,_0xb2386d))[_0x7721('0x1e')](handleError(_0x3e4e56,null));};exports[_0x7721('0x41')]=function(_0xa601bc,_0x3af123){var _0x5460cd={'raw':!![],'where':{'id':_0xa601bc[_0x7721('0x42')]['id']}},_0x578867={};_0x578867[_0x7721('0x2f')]=_[_0x7721('0x32')](db[_0x7721('0x2b')]['rawAttributes']);_0x578867[_0x7721('0x31')]=_[_0x7721('0x32')](_0xa601bc['query']);_0x578867[_0x7721('0x33')]=_['intersection'](_0x578867[_0x7721('0x2f')],_0x578867['query']);_0x5460cd[_0x7721('0x34')]=_[_0x7721('0x35')](_0x578867[_0x7721('0x2f')],qs['fields'](_0xa601bc[_0x7721('0x31')][_0x7721('0x36')]));_0x5460cd['attributes']=_0x5460cd[_0x7721('0x34')][_0x7721('0x43')]?_0x5460cd[_0x7721('0x34')]:_0x578867['model'];if(_0xa601bc[_0x7721('0x31')]['includeAll']){_0x5460cd[_0x7721('0x44')]=[{'all':!![]}];}_0x5460cd=_[_0x7721('0x3d')]({},_0x5460cd,_0xa601bc[_0x7721('0x3e')]);return db[_0x7721('0x2b')][_0x7721('0x45')](_0x5460cd)[_0x7721('0x15')](handleEntityNotFound(_0x3af123,null))[_0x7721('0x15')](respondWithResult(_0x3af123,null))[_0x7721('0x1e')](handleError(_0x3af123,null));};exports[_0x7721('0x26')]=function(_0x3386aa,_0x31770e){if(_0x3386aa[_0x7721('0x46')]['id']){delete _0x3386aa[_0x7721('0x46')]['id'];}return db[_0x7721('0x2b')][_0x7721('0x45')]({'where':{'id':_0x3386aa['params']['id']}})[_0x7721('0x15')](handleEntityNotFound(_0x31770e,null))[_0x7721('0x15')](saveUpdates(_0x3386aa[_0x7721('0x46')],null))[_0x7721('0x15')](respondWithResult(_0x31770e,null))[_0x7721('0x1e')](handleError(_0x31770e,null));};exports[_0x7721('0x27')]=function(_0x267f5e,_0x57484c){return db[_0x7721('0x2b')][_0x7721('0x45')]({'where':{'id':_0x267f5e[_0x7721('0x42')]['id']}})[_0x7721('0x15')](handleEntityNotFound(_0x57484c,null))[_0x7721('0x15')](removeEntity(_0x57484c,null))[_0x7721('0x1e')](handleError(_0x57484c,null));};exports[_0x7721('0x47')]=function(_0x33287d,_0x11b300){return db[_0x7721('0x2b')][_0x7721('0x47')]()['then'](respondWithResult(_0x11b300,null))[_0x7721('0x1e')](handleError(_0x11b300,null));};exports[_0x7721('0x48')]=function(_0x1234bc,_0x2ee3c0){return db[_0x7721('0x2b')][_0x7721('0x48')](_0x1234bc[_0x7721('0x46')])[_0x7721('0x15')](function(_0x360882){if(_0x360882){if(_0x360882[_0x7721('0x49')]===_0x7721('0x4a')&&!_0x360882[_0x7721('0x4b')]){var _0x106664,_0x18f7f6,_0x300ea4;if(_0x1234bc['body']['to']){_0x18f7f6=_0x1234bc['body']['to']['split'](',')[0x0];}return db[_0x7721('0x4c')]['findOne']({'where':{'id':_0x360882['MailAccountId']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0x7721('0x4d')],'as':_0x7721('0x4e'),'where':{'email':_0x18f7f6},'limit':0x1,'order':[[_0x7721('0x4f'),'DESC']]}]},{'model':db[_0x7721('0x50')],'as':'Smtp','raw':!![]}]})['then'](function(_0x484b8e){_0x106664=_0x484b8e;if(_0x106664&&_0x106664[_0x7721('0x51')]){var _0x4f0d38={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0x106664['Smtp'][_0x7721('0x52')])){_0x4f0d38[_0x7721('0x53')]=_0x106664[_0x7721('0x51')]['host'];_0x4f0d38[_0x7721('0x54')]=_0x106664[_0x7721('0x51')][_0x7721('0x54')];_0x4f0d38[_0x7721('0x55')]=_0x106664[_0x7721('0x51')][_0x7721('0x55')];if(_0x106664[_0x7721('0x51')][_0x7721('0x56')]){_0x4f0d38[_0x7721('0x57')]={'user':_0x106664[_0x7721('0x51')][_0x7721('0x58')],'pass':_0x106664[_0x7721('0x51')][_0x7721('0x59')]};}}else{_0x4f0d38[_0x7721('0x52')]=_0x106664[_0x7721('0x51')]['service'];_0x4f0d38[_0x7721('0x57')]={'user':_0x106664[_0x7721('0x51')][_0x7721('0x58')],'pass':_0x106664[_0x7721('0x51')]['pass']};_0x4f0d38[_0x7721('0x55')]=_0x106664[_0x7721('0x51')]['secure'];}if(_0x1234bc[_0x7721('0x46')]['attachments']&&_0x1234bc[_0x7721('0x46')][_0x7721('0x5a')][_0x7721('0x43')]){for(var _0x3f9eaa=0x0;_0x3f9eaa<_0x1234bc[_0x7721('0x46')][_0x7721('0x5a')][_0x7721('0x43')];_0x3f9eaa+=0x1){_0x1234bc[_0x7721('0x46')][_0x7721('0x5a')][_0x3f9eaa]={'filename':_0x1234bc['body'][_0x7721('0x5a')][_0x3f9eaa][_0x7721('0x29')],'path':path[_0x7721('0x5b')](config[_0x7721('0x5c')],_0x7721('0x5d'),_0x1234bc[_0x7721('0x46')][_0x7721('0x5a')][_0x3f9eaa]['basename'])};}}_0x300ea4={'account':_0x4f0d38,'message':_0x1234bc[_0x7721('0x46')]};return;}})[_0x7721('0x15')](function(){if(_0x106664['List']){if(_0x106664[_0x7721('0x5e')]['Contacts'][_0x7721('0x43')]){return _0x106664[_0x7721('0x5e')][_0x7721('0x4e')][0x0];}else{return db[_0x7721('0x4d')][_0x7721('0x48')](_[_0x7721('0xc')](_0x1234bc[_0x7721('0x46')],{'firstName':_0x1234bc['body']['to'],'email':_0x1234bc[_0x7721('0x46')]['to'],'phone':_0x1234bc[_0x7721('0x46')]['to'],'ListId':_0x106664[_0x7721('0x5f')]}));}}else{throw new Error('List\x20not\x20found');}})['then'](function(){if(_0x300ea4){return respondWithRpcPromise('SendMail','sendMail',_0x300ea4,client9003)['then'](function(_0x1fc5f7){return _0x360882[_0x7721('0x26')]({'read':!![],'messageId':_0x1fc5f7['messageId'],'sentAt':moment()[_0x7721('0x60')](_0x7721('0x61'))});})[_0x7721('0x1e')](function(_0x4593e1){logger['error']('%s',JSON[_0x7721('0x62')](_0x4593e1));return _0x360882;});}return _0x360882;});}return _0x360882;}})[_0x7721('0x15')](respondWithResult(_0x2ee3c0,0xc9))[_0x7721('0x1e')](handleError(_0x2ee3c0,null));};exports[_0x7721('0x63')]=function(_0x3cf3fd,_0x53adb1){var _0x29ac64={'agent':{},'channel':_0x7721('0x64')};if(_0x3cf3fd[_0x7721('0x46')]['id']){delete _0x3cf3fd['body']['id'];}_0x3cf3fd['body'][_0x7721('0x65')]=!![];_0x3cf3fd[_0x7721('0x46')][_0x7721('0x66')]=moment()[_0x7721('0x60')](_0x7721('0x61'));_0x3cf3fd['body']['UserId']=_0x3cf3fd[_0x7721('0x46')][_0x7721('0x67')]||_0x3cf3fd[_0x7721('0x58')]['id'];_0x29ac64[_0x7721('0x68')]['id']=_0x3cf3fd[_0x7721('0x46')][_0x7721('0x67')];return db[_0x7721('0x2b')]['find']({'where':{'id':_0x3cf3fd[_0x7721('0x42')]['id'],'UserId':null}})[_0x7721('0x15')](handleEntityNotFound(_0x53adb1,null))[_0x7721('0x15')](saveUpdates(_0x3cf3fd['body'],null))[_0x7721('0x15')](function(_0x1a53d6){if(_0x1a53d6){_0x29ac64[_0x7721('0x1c')]=_0x1a53d6[_0x7721('0x69')]({'plain':!![]});return db['MailInteraction']['find']({'where':{'id':_0x1a53d6[_0x7721('0x6a')]}});}return null;})[_0x7721('0x15')](handleEntityNotFound(_0x53adb1,null))[_0x7721('0x15')](function(_0x42c849){if(_0x42c849){return _0x42c849[_0x7721('0x26')]({'UserId':_0x3cf3fd[_0x7721('0x46')]['UserId'],'read1stAt':_[_0x7721('0x6b')](_0x42c849[_0x7721('0x6c')])?moment()[_0x7721('0x60')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x7721('0x15')](function(_0x3b16f3){if(_0x3b16f3){_0x29ac64[_0x7721('0x6d')]=_0x3b16f3[_0x7721('0x69')]({'plain':!![]});interaction_log[_0x7721('0x16')]('[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x3cf3fd[_0x7721('0x58')]['id'],_0x3cf3fd['user'][_0x7721('0x29')],_0x3cf3fd[_0x7721('0x58')][_0x7721('0x6e')],_0x29ac64[_0x7721('0x6d')]['id'],_0x3cf3fd[_0x7721('0x46')]?JSON[_0x7721('0x62')](_0x3cf3fd[_0x7721('0x46')]):_0x7721('0x6f'));return respondWithRpcPromise(_0x7721('0x70'),_0x7721('0x71'),_0x29ac64);}return null;})[_0x7721('0x15')](function(_0x55d209){var _0x19fad6=_0x7721('0x72')+_0x55d209[_0x7721('0x1c')]['ContactId'];return db[_0x7721('0x73')][_0x7721('0x31')](_0x19fad6,{'type':db[_0x7721('0x74')][_0x7721('0x75')][_0x7721('0x76')],'raw':!![]})['then'](function(_0x1276ce){return _0x1276ce;});})[_0x7721('0x15')](function(_0x44326d){if(_0x44326d){_0x29ac64[_0x7721('0x1c')][_0x7721('0x77')]=_0x44326d[0x0];if(!_0x3cf3fd[_0x7721('0x46')]['UserId'])return;return db[_0x7721('0x78')][_0x7721('0x45')]({'where':{'id':_0x3cf3fd['body'][_0x7721('0x67')],'role':'agent'},'attributes':['id',_0x7721('0x29'),_0x7721('0x79'),'email',_0x7721('0x7a')],'raw':!![]});}return null;})['then'](function(_0x56069f){if(!_0x56069f)return null;_0x29ac64['message'][_0x7721('0x68')]=_0x56069f;return _0x29ac64;})[_0x7721('0x15')](function(_0x21a686){if(_0x21a686){if(_0x3cf3fd['body']['manual']){_0x29ac64['message'][_0x7721('0x7b')]=util[_0x7721('0x60')](_0x7721('0x7c'),_0x3cf3fd[_0x7721('0x58')][_0x7721('0x29')]);_0x29ac64[_0x7721('0x1c')]['channel']=_0x29ac64[_0x7721('0x7d')];_0x29ac64[_0x7721('0x1c')][_0x7721('0x7e')]=_0x7721('0x63');_0x29ac64[_0x7721('0x1c')][_0x7721('0x46')]=htmlToText[_0x7721('0x7f')](_0x29ac64[_0x7721('0x1c')][_0x7721('0x46')]);return respondWithRpcPromise(_0x7721('0x80'),_0x7721('0x80'),{'event':_0x7721('0x81'),'message':_0x29ac64['message']},client9002)['then'](function(){return _0x29ac64;});}return _0x29ac64;}return null;})[_0x7721('0x15')](respondWithResult(_0x53adb1,null))[_0x7721('0x1e')](handleError(_0x53adb1,null));};exports['reject']=function(_0x167e05,_0x570cf4){var _0x4e3c93={'agent':{},'channel':_0x7721('0x64')};if(_0x167e05['body']['id']){delete _0x167e05['body']['id'];}_0x167e05[_0x7721('0x46')][_0x7721('0x67')]=_0x167e05[_0x7721('0x46')][_0x7721('0x67')]||_0x167e05[_0x7721('0x58')]['id'];_0x4e3c93['agent']['id']=_0x167e05[_0x7721('0x46')][_0x7721('0x67')];return db[_0x7721('0x2b')][_0x7721('0x45')]({'where':{'id':_0x167e05['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x570cf4,null))[_0x7721('0x15')](function(_0x1790d3){if(_0x1790d3){_0x4e3c93['message']=_0x1790d3[_0x7721('0x69')]({'plain':!![]});return db[_0x7721('0x82')]['find']({'where':{'id':_0x1790d3['MailInteractionId']}});}return null;})[_0x7721('0x15')](handleEntityNotFound(_0x570cf4,null))[_0x7721('0x15')](function(_0x606b4b){if(_0x606b4b){_0x4e3c93[_0x7721('0x6d')]=_0x606b4b[_0x7721('0x69')]({'plain':!![]});interaction_log[_0x7721('0x16')](_0x7721('0x83'),_0x167e05[_0x7721('0x58')]['id'],_0x167e05['user'][_0x7721('0x29')],_0x167e05[_0x7721('0x58')][_0x7721('0x6e')],_0x4e3c93[_0x7721('0x6d')]['id'],_0x167e05[_0x7721('0x46')]?JSON[_0x7721('0x62')](_0x167e05[_0x7721('0x46')]):'null');return respondWithRpcPromise(_0x7721('0x84'),_0x7721('0x85'),_0x4e3c93);}return null;})['then'](function(_0x9b3e44){var _0x1cc8ee=_0x7721('0x72')+_0x9b3e44[_0x7721('0x1c')][_0x7721('0x86')];return db[_0x7721('0x73')][_0x7721('0x31')](_0x1cc8ee,{'type':db[_0x7721('0x74')][_0x7721('0x75')][_0x7721('0x76')],'raw':!![]})['then'](function(_0x418954){return _0x418954;});})[_0x7721('0x15')](function(_0xc894d4){if(_0xc894d4){_0x4e3c93[_0x7721('0x1c')][_0x7721('0x77')]=_0xc894d4[0x0];if(!_0x167e05[_0x7721('0x46')][_0x7721('0x67')])return;return db[_0x7721('0x78')][_0x7721('0x45')]({'where':{'id':_0x167e05[_0x7721('0x46')][_0x7721('0x67')],'role':_0x7721('0x68')},'attributes':['id',_0x7721('0x29'),_0x7721('0x79'),_0x7721('0x87'),_0x7721('0x7a')],'raw':!![]});}return null;})[_0x7721('0x15')](function(_0x1fb651){if(!_0x1fb651)return null;_0x4e3c93[_0x7721('0x1c')][_0x7721('0x68')]=_0x1fb651;return _0x4e3c93;})['then'](function(_0x3fc25c){if(_0x3fc25c){_0x3fc25c['message'][_0x7721('0x7b')]=util[_0x7721('0x60')](_0x7721('0x7c'),_0x167e05[_0x7721('0x58')][_0x7721('0x29')]);_0x3fc25c['message']['channel']=_0x4e3c93['channel'];_0x3fc25c['message'][_0x7721('0x7e')]=_0x7721('0x88');_0x3fc25c[_0x7721('0x1c')][_0x7721('0x46')]=htmlToText[_0x7721('0x7f')](_0x4e3c93['message'][_0x7721('0x46')]);respondWithRpcPromise('EventManager',_0x7721('0x80'),{'event':_0x7721('0x89'),'message':_0x3fc25c[_0x7721('0x1c')]},client9002);return _0x4e3c93;}return null;})[_0x7721('0x15')](respondWithResult(_0x570cf4,null))[_0x7721('0x1e')](handleError(_0x570cf4,null));};exports[_0x7721('0x8a')]=function(_0x56b916,_0x30ce7c){var _0x56f321=moment()['unix']()[_0x7721('0x8b')]();var _0xf718dd=path[_0x7721('0x5b')](config[_0x7721('0x5c')],_0x7721('0x8c'),'files',_0x7721('0x8d'));var _0x2561b5=path[_0x7721('0x5b')](config[_0x7721('0x5c')],_0x7721('0x8c'),_0x7721('0x8e'),_0x7721('0x5a'));var _0x50ee94=util[_0x7721('0x60')](_0x7721('0x8f'),_0x56f321);return db[_0x7721('0x2b')][_0x7721('0x45')]({'where':{'id':_0x56b916[_0x7721('0x42')]['id']},'attributes':['id','body',_0x7721('0x90'),'to','cc',_0x7721('0x91'),_0x7721('0x92'),'createdAt'],'include':_0x56b916[_0x7721('0x31')][_0x7721('0x5a')]?[{'model':db['Attachment'],'as':_0x7721('0x93')}]:undefined})[_0x7721('0x15')](handleEntityNotFound(_0x30ce7c,null))[_0x7721('0x15')](function(_0x30f548){if(_0x30f548){var _0x5b64de=_0x30f548;var _0x40beb8={'from':_0x5b64de['from'],'to':_0x5b64de['to'],'subject':_0x5b64de[_0x7721('0x92')],'html':_0x5b64de[_0x7721('0x46')],'headers':{'Date':moment(_0x5b64de['createdAt'])[_0x7721('0x60')](_0x7721('0x94'))},'attachments':[]};if(_0x30f548['cc']){_0x40beb8['headers']['Cc']=_0x30f548['cc'];}if(_0x30f548[_0x7721('0x91')]){_0x40beb8[_0x7721('0x95')]['Bcc']=_0x30f548[_0x7721('0x91')];}return new BPromise(function(_0x52e8b1,_0x240b0a){if(_0x30f548[_0x7721('0x93')]){for(var _0x271632=0x0;_0x271632<_0x30f548['Attachments'][_0x7721('0x43')];_0x271632++){var _0x506f9c=_0x30f548['Attachments'][_0x271632];var _0x287d61=path[_0x7721('0x5b')](_0x2561b5,_0x506f9c[_0x7721('0x96')]);if(fs[_0x7721('0x97')](_0x287d61)){_0x40beb8[_0x7721('0x5a')]['push']({'name':_0x506f9c[_0x7721('0x29')],'contentType':_0x506f9c[_0x7721('0x2d')],'data':fs[_0x7721('0x98')](_0x287d61)});}}}emlformat[_0x7721('0x99')](_0x40beb8,function(_0x42cd58,_0x58173d){if(_0x42cd58)return _0x240b0a(_0x42cd58);fs[_0x7721('0x9a')](path['join'](_0xf718dd,_0x50ee94),_0x58173d);return _0x52e8b1(_0x58173d);});});}})[_0x7721('0x15')](function(_0x4ade82){if(_0x4ade82){return _0x30ce7c['download'](path[_0x7721('0x5b')](_0xf718dd,_0x50ee94),_0x50ee94,function(_0x52f3c8){if(!_0x52f3c8)fs['unlinkSync'](path[_0x7721('0x5b')](_0xf718dd,_0x50ee94));});}})[_0x7721('0x1e')](handleError(_0x30ce7c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7165=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','MailMessage','setMaxListeners','save','update','remove'];(function(_0xaa1b3e,_0x47d976){var _0x454d7d=function(_0x575b32){while(--_0x575b32){_0xaa1b3e['push'](_0xaa1b3e['shift']());}};_0x454d7d(++_0x47d976);}(_0x7165,0xb4));var _0x5716=function(_0xc39e33,_0x4a366d){_0xc39e33=_0xc39e33-0x0;var _0x13e072=_0x7165[_0xc39e33];return _0x13e072;};'use strict';var EventEmitter=require(_0x5716('0x0'));var MailMessage=require(_0x5716('0x1'))['db'][_0x5716('0x2')];var MailMessageEvents=new EventEmitter();MailMessageEvents[_0x5716('0x3')](0x0);var events={'afterCreate':_0x5716('0x4'),'afterUpdate':_0x5716('0x5'),'afterDestroy':_0x5716('0x6')};function emitEvent(_0x3a5963){return function(_0x6206a1,_0x7a2435,_0x5ab16a){MailMessageEvents[_0x5716('0x7')](_0x3a5963+':'+_0x6206a1['id'],_0x6206a1);MailMessageEvents['emit'](_0x3a5963,_0x6206a1);_0x5ab16a(null);};}for(var e in events){if(events[_0x5716('0x8')](e)){var event=events[e];MailMessage[_0x5716('0x9')](e,emitEvent(event));}}module[_0x5716('0xa')]=MailMessageEvents;
\ No newline at end of file
+var _0x1d13=['../../mysqldb','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','events'];(function(_0x6d1c65,_0x22df6e){var _0x1e96b4=function(_0xc1aac4){while(--_0xc1aac4){_0x6d1c65['push'](_0x6d1c65['shift']());}};_0x1e96b4(++_0x22df6e);}(_0x1d13,0x194));var _0x31d1=function(_0x424240,_0x5af09b){_0x424240=_0x424240-0x0;var _0x4ec855=_0x1d13[_0x424240];return _0x4ec855;};'use strict';var EventEmitter=require(_0x31d1('0x0'));var MailMessage=require(_0x31d1('0x1'))['db']['MailMessage'];var MailMessageEvents=new EventEmitter();MailMessageEvents[_0x31d1('0x2')](0x0);var events={'afterCreate':_0x31d1('0x3'),'afterUpdate':_0x31d1('0x4'),'afterDestroy':_0x31d1('0x5')};function emitEvent(_0x4be266){return function(_0x2005c2,_0x1c296c,_0x541d42){MailMessageEvents[_0x31d1('0x6')](_0x4be266+':'+_0x2005c2['id'],_0x2005c2);MailMessageEvents[_0x31d1('0x6')](_0x4be266,_0x2005c2);_0x541d42(null);};}for(var e in events){if(events[_0x31d1('0x7')](e)){var event=events[e];MailMessage[_0x31d1('0x8')](e,emitEvent(event));}}module['exports']=MailMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9965=['secret','UserId','MailInteraction','findOne','update','createdAt','error','utf8mb4','lodash','../../config/logger','api','moment','bluebird','request-promise','html-to-text','path','rimraf','../../config/environment','exports','define','MailMessage','mail_messages','messageId','plainBody','subject','body','fromString','models','direction','toLowerCase','out'];(function(_0x46ebcb,_0x56bd74){var _0x52cb4f=function(_0x1bfc44){while(--_0x1bfc44){_0x46ebcb['push'](_0x46ebcb['shift']());}};_0x52cb4f(++_0x56bd74);}(_0x9965,0x17c));var _0x5996=function(_0x90318,_0x25d848){_0x90318=_0x90318-0x0;var _0x49fafd=_0x9965[_0x90318];return _0x49fafd;};'use strict';var _=require(_0x5996('0x0'));var util=require('util');var logger=require(_0x5996('0x1'))(_0x5996('0x2'));var moment=require(_0x5996('0x3'));var BPromise=require(_0x5996('0x4'));var rp=require(_0x5996('0x5'));var htmlToText=require(_0x5996('0x6'));var fs=require('fs');var path=require(_0x5996('0x7'));var rimraf=require(_0x5996('0x8'));var config=require(_0x5996('0x9'));var attributes=require('./mailMessage.attributes');module[_0x5996('0xa')]=function(_0x494dcd,_0x23f83e){return _0x494dcd[_0x5996('0xb')](_0x5996('0xc'),attributes,{'tableName':_0x5996('0xd'),'paranoid':![],'indexes':[{'name':_0x5996('0xe'),'fields':[_0x5996('0xe')]},{'name':'fti_mail_messages','fields':[_0x5996('0xf'),_0x5996('0x10')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x58d185,_0x3a8c89,_0x2ff871){if(_0x58d185[_0x5996('0x11')]){_0x58d185['plainBody']=htmlToText[_0x5996('0x12')](_0x58d185[_0x5996('0x11')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]});}_0x2ff871(null,_0x3a8c89);},'afterCreate':function(_0x23af89,_0x2a7519,_0x2fcc21){var _0xd315d3=_0x494dcd[_0x5996('0x13')];var _0x17ddb8=_0x23af89['get']({'plain':!![]});if(_0x17ddb8[_0x5996('0x14')][_0x5996('0x15')]()==='in'||_0x17ddb8['direction'][_0x5996('0x15')]()===_0x5996('0x16')&&!_0x17ddb8[_0x5996('0x17')]&&!_['isNil'](_0x17ddb8[_0x5996('0x18')])){_0xd315d3[_0x5996('0x19')][_0x5996('0x1a')]({'where':{'id':_0x17ddb8['MailInteractionId']}})['then'](function(_0x4644de){if(_0x4644de){_0x4644de[_0x5996('0x1b')]({'lastMsgAt':_0x17ddb8[_0x5996('0x1c')],'lastMsgDirection':_0x17ddb8[_0x5996('0x14')]['toLowerCase']()});}})['catch'](function(_0x5f1099){console[_0x5996('0x1d')](_0x5f1099);});}_0x2fcc21();}},'charset':_0x5996('0x1e'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x741b=['MailMessage','mail_messages','messageId','subject','plainBody','fromString','body','models','direction','toLowerCase','out','secret','isNil','MailInteraction','findOne','then','update','createdAt','catch','error','utf8mb4','utf8mb4_unicode_ci','lodash','moment','request-promise','html-to-text','path','../../config/environment','./mailMessage.attributes','exports','define'];(function(_0x1a1674,_0x445946){var _0x2f64d7=function(_0x446c4c){while(--_0x446c4c){_0x1a1674['push'](_0x1a1674['shift']());}};_0x2f64d7(++_0x445946);}(_0x741b,0xd0));var _0xb741=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0x741b[_0x618414];return _0x21c19a;};'use strict';var _=require(_0xb741('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0xb741('0x1'));var BPromise=require('bluebird');var rp=require(_0xb741('0x2'));var htmlToText=require(_0xb741('0x3'));var fs=require('fs');var path=require(_0xb741('0x4'));var rimraf=require('rimraf');var config=require(_0xb741('0x5'));var attributes=require(_0xb741('0x6'));module[_0xb741('0x7')]=function(_0x93d77e,_0x4e2cd5){return _0x93d77e[_0xb741('0x8')](_0xb741('0x9'),attributes,{'tableName':_0xb741('0xa'),'paranoid':![],'indexes':[{'name':'messageId','fields':[_0xb741('0xb')]},{'name':'fti_mail_messages','fields':['plainBody',_0xb741('0xc')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x52f5d9,_0x52984b,_0x8a5c42){if(_0x52f5d9['body']){_0x52f5d9[_0xb741('0xd')]=htmlToText[_0xb741('0xe')](_0x52f5d9[_0xb741('0xf')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]});}_0x8a5c42(null,_0x52984b);},'afterCreate':function(_0x1d22a0,_0x32003b,_0x3a2e2d){var _0x2648fa=_0x93d77e[_0xb741('0x10')];var _0x329e36=_0x1d22a0['get']({'plain':!![]});if(_0x329e36[_0xb741('0x11')][_0xb741('0x12')]()==='in'||_0x329e36['direction']['toLowerCase']()===_0xb741('0x13')&&!_0x329e36[_0xb741('0x14')]&&!_[_0xb741('0x15')](_0x329e36['UserId'])){_0x2648fa[_0xb741('0x16')][_0xb741('0x17')]({'where':{'id':_0x329e36['MailInteractionId']}})[_0xb741('0x18')](function(_0x1ef82e){if(_0x1ef82e){_0x1ef82e[_0xb741('0x19')]({'lastMsgAt':_0x329e36[_0xb741('0x1a')],'lastMsgDirection':_0x329e36[_0xb741('0x11')]['toLowerCase']()});}})[_0xb741('0x1b')](function(_0x24cbdc){console[_0xb741('0x1c')](_0x24cbdc);});}_0x3a2e2d();}},'charset':_0xb741('0x1d'),'collate':_0xb741('0x1e')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x056b=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','register','then','info','MailMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','CreateMailMessage','MailMessage','body','options','debug','catch','util','moment','bluebird','randomstring'];(function(_0x45620c,_0x136b3f){var _0x5e15b3=function(_0x359fba){while(--_0x359fba){_0x45620c['push'](_0x45620c['shift']());}};_0x5e15b3(++_0x136b3f);}(_0x056b,0xb6));var _0xb056=function(_0x257fd4,_0x446a74){_0x257fd4=_0x257fd4-0x0;var _0x3bbcba=_0x056b[_0x257fd4];return _0x3bbcba;};'use strict';var _=require('lodash');var util=require(_0xb056('0x0'));var moment=require(_0xb056('0x1'));var BPromise=require(_0xb056('0x2'));var rs=require(_0xb056('0x3'));var fs=require('fs');var Redis=require(_0xb056('0x4'));var db=require(_0xb056('0x5'))['db'];var utils=require(_0xb056('0x6'));var logger=require(_0xb056('0x7'))(_0xb056('0x8'));var config=require(_0xb056('0x9'));var jayson=require(_0xb056('0xa'));var client=jayson['client'][_0xb056('0xb')]({'port':0x232a});config[_0xb056('0xc')]=_[_0xb056('0xd')](config[_0xb056('0xc')],{'host':_0xb056('0xe'),'port':0x18eb});var socket=require(_0xb056('0xf'))(new Redis(config['redis']));require('./mailMessage.socket')[_0xb056('0x10')](socket);function respondWithRpcPromise(_0x160c2a,_0xd33887,_0x290c9e){return new BPromise(function(_0x5ddddb,_0x170e1a){return client['request'](_0x160c2a,_0x290c9e)[_0xb056('0x11')](function(_0x23513f){logger[_0xb056('0x12')](_0xb056('0x13'),_0xd33887,_0xb056('0x14'));logger['debug']('MailMessage,\x20%s,\x20%s,\x20%s',_0xd33887,_0xb056('0x14'),JSON[_0xb056('0x15')](_0x23513f));if(_0x23513f['error']){if(_0x23513f[_0xb056('0x16')][_0xb056('0x17')]===0x1f4){logger[_0xb056('0x16')](_0xb056('0x13'),_0xd33887,_0x23513f[_0xb056('0x16')][_0xb056('0x18')]);return _0x170e1a(_0x23513f[_0xb056('0x16')]['message']);}logger[_0xb056('0x16')](_0xb056('0x13'),_0xd33887,_0x23513f[_0xb056('0x16')][_0xb056('0x18')]);return _0x5ddddb(_0x23513f['error'][_0xb056('0x18')]);}else{logger['info'](_0xb056('0x13'),_0xd33887,_0xb056('0x14'));_0x5ddddb(_0x23513f['result'][_0xb056('0x18')]);}})['catch'](function(_0x45008c){logger[_0xb056('0x16')]('MailMessage,\x20%s,\x20%s',_0xd33887,_0x45008c);_0x170e1a(_0x45008c);});});}exports[_0xb056('0x19')]=function(_0x48cdaf){var _0x2107ee=this;return new Promise(function(_0x225081,_0x457b54){return db[_0xb056('0x1a')]['create'](_0x48cdaf[_0xb056('0x1b')],{'raw':_0x48cdaf['options']?_0x48cdaf[_0xb056('0x1c')]['raw']===undefined?!![]:![]:!![]})[_0xb056('0x11')](function(_0x40ac2d){logger[_0xb056('0x12')](_0xb056('0x19'),_0x48cdaf);logger[_0xb056('0x1d')](_0xb056('0x19'),_0x48cdaf,JSON['stringify'](_0x40ac2d));_0x225081(_0x40ac2d);})[_0xb056('0x1e')](function(_0x18a3f2){logger[_0xb056('0x16')](_0xb056('0x19'),_0x18a3f2['message'],_0x48cdaf);_0x457b54(_0x2107ee[_0xb056('0x16')](0x1f4,_0x18a3f2[_0xb056('0x18')]));});});};
\ No newline at end of file
+var _0x1c7c=['then','info','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','MailMessage,\x20%s,\x20%s','message','result','CreateMailMessage','MailMessage','options','raw','catch','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailMessage.socket','register'];(function(_0x3aa593,_0x1e94bb){var _0x3d37d0=function(_0x5d5b49){while(--_0x5d5b49){_0x3aa593['push'](_0x3aa593['shift']());}};_0x3d37d0(++_0x1e94bb);}(_0x1c7c,0x164));var _0xc1c7=function(_0x1f4652,_0x29e208){_0x1f4652=_0x1f4652-0x0;var _0x21b163=_0x1c7c[_0x1f4652];return _0x21b163;};'use strict';var _=require(_0xc1c7('0x0'));var util=require(_0xc1c7('0x1'));var moment=require(_0xc1c7('0x2'));var BPromise=require(_0xc1c7('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc1c7('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xc1c7('0x5'));var logger=require(_0xc1c7('0x6'))(_0xc1c7('0x7'));var config=require(_0xc1c7('0x8'));var jayson=require(_0xc1c7('0x9'));var client=jayson[_0xc1c7('0xa')][_0xc1c7('0xb')]({'port':0x232a});config[_0xc1c7('0xc')]=_[_0xc1c7('0xd')](config[_0xc1c7('0xc')],{'host':_0xc1c7('0xe'),'port':0x18eb});var socket=require(_0xc1c7('0xf'))(new Redis(config[_0xc1c7('0xc')]));require(_0xc1c7('0x10'))[_0xc1c7('0x11')](socket);function respondWithRpcPromise(_0x301abf,_0x25a669,_0x4df577){return new BPromise(function(_0x3b0748,_0x246ced){return client['request'](_0x301abf,_0x4df577)[_0xc1c7('0x12')](function(_0x5ac140){logger[_0xc1c7('0x13')]('MailMessage,\x20%s,\x20%s',_0x25a669,_0xc1c7('0x14'));logger[_0xc1c7('0x15')](_0xc1c7('0x16'),_0x25a669,_0xc1c7('0x14'),JSON[_0xc1c7('0x17')](_0x5ac140));if(_0x5ac140[_0xc1c7('0x18')]){if(_0x5ac140[_0xc1c7('0x18')][_0xc1c7('0x19')]===0x1f4){logger[_0xc1c7('0x18')](_0xc1c7('0x1a'),_0x25a669,_0x5ac140[_0xc1c7('0x18')][_0xc1c7('0x1b')]);return _0x246ced(_0x5ac140['error'][_0xc1c7('0x1b')]);}logger[_0xc1c7('0x18')](_0xc1c7('0x1a'),_0x25a669,_0x5ac140['error'][_0xc1c7('0x1b')]);return _0x3b0748(_0x5ac140[_0xc1c7('0x18')][_0xc1c7('0x1b')]);}else{logger[_0xc1c7('0x13')](_0xc1c7('0x1a'),_0x25a669,_0xc1c7('0x14'));_0x3b0748(_0x5ac140[_0xc1c7('0x1c')][_0xc1c7('0x1b')]);}})['catch'](function(_0x37d748){logger[_0xc1c7('0x18')](_0xc1c7('0x1a'),_0x25a669,_0x37d748);_0x246ced(_0x37d748);});});}exports[_0xc1c7('0x1d')]=function(_0x4b706e){var _0x124fd8=this;return new Promise(function(_0x4d6171,_0x5e7e4a){return db[_0xc1c7('0x1e')]['create'](_0x4b706e['body'],{'raw':_0x4b706e[_0xc1c7('0x1f')]?_0x4b706e[_0xc1c7('0x1f')][_0xc1c7('0x20')]===undefined?!![]:![]:!![]})['then'](function(_0x813853){logger[_0xc1c7('0x13')](_0xc1c7('0x1d'),_0x4b706e);logger[_0xc1c7('0x15')](_0xc1c7('0x1d'),_0x4b706e,JSON[_0xc1c7('0x17')](_0x813853));_0x4d6171(_0x813853);})[_0xc1c7('0x21')](function(_0x120168){logger[_0xc1c7('0x18')](_0xc1c7('0x1d'),_0x120168[_0xc1c7('0x1b')],_0x4b706e);_0x5e7e4a(_0x124fd8[_0xc1c7('0x18')](0x1f4,_0x120168[_0xc1c7('0x1b')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1330=['removeListener','register','length','mailMessage:','save','remove','update','emit'];(function(_0x20f8a9,_0x45e9f3){var _0x321e5c=function(_0x4bece3){while(--_0x4bece3){_0x20f8a9['push'](_0x20f8a9['shift']());}};_0x321e5c(++_0x45e9f3);}(_0x1330,0x1f4));var _0x0133=function(_0x2a67fe,_0x295c09){_0x2a67fe=_0x2a67fe-0x0;var _0x57e726=_0x1330[_0x2a67fe];return _0x57e726;};'use strict';var MailMessageEvents=require('./mailMessage.events');var events=[_0x0133('0x0'),_0x0133('0x1'),_0x0133('0x2')];function createListener(_0x213da9,_0x580d2b){return function(_0x3de568){_0x580d2b[_0x0133('0x3')](_0x213da9,_0x3de568);};}function removeListener(_0x12e24d,_0xf95880){return function(){MailMessageEvents[_0x0133('0x4')](_0x12e24d,_0xf95880);};}exports[_0x0133('0x5')]=function(_0x519efa){for(var _0x430137=0x0,_0x33d2ef=events[_0x0133('0x6')];_0x430137<_0x33d2ef;_0x430137++){var _0x1d2325=events[_0x430137];var _0x10d7c8=createListener(_0x0133('0x7')+_0x1d2325,_0x519efa);MailMessageEvents['on'](_0x1d2325,_0x10d7c8);}};
\ No newline at end of file
+var _0x9d67=['mailMessage:','./mailMessage.events','save','remove','emit','removeListener','length'];(function(_0x51ae84,_0x186308){var _0x494e58=function(_0x1e5328){while(--_0x1e5328){_0x51ae84['push'](_0x51ae84['shift']());}};_0x494e58(++_0x186308);}(_0x9d67,0x78));var _0x79d6=function(_0x2b45e5,_0x43832b){_0x2b45e5=_0x2b45e5-0x0;var _0xbb8e8d=_0x9d67[_0x2b45e5];return _0xbb8e8d;};'use strict';var MailMessageEvents=require(_0x79d6('0x0'));var events=[_0x79d6('0x1'),_0x79d6('0x2'),'update'];function createListener(_0x412f6e,_0x8777ab){return function(_0x35fb5c){_0x8777ab[_0x79d6('0x3')](_0x412f6e,_0x35fb5c);};}function removeListener(_0x5e72c7,_0x235c12){return function(){MailMessageEvents[_0x79d6('0x4')](_0x5e72c7,_0x235c12);};}exports['register']=function(_0x38afa1){for(var _0x11a972=0x0,_0x4b05c9=events[_0x79d6('0x5')];_0x11a972<_0x4b05c9;_0x11a972++){var _0x1bbf14=events[_0x11a972];var _0x398a93=createListener(_0x79d6('0x6')+_0x1bbf14,_0x38afa1);MailMessageEvents['on'](_0x1bbf14,_0x398a93);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd5fa=['./mailQueue.controller','get','isAuthenticated','/describe','describe','/:id','/:id/members','getMembers','getTeams','create','post','/:id/teams','addTeams','addAgents','update','delete','removeTeams','/:id/users','removeAgents','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x44e008,_0x49a5c0){var _0x3e8a56=function(_0x31cbd5){while(--_0x31cbd5){_0x44e008['push'](_0x44e008['shift']());}};_0x3e8a56(++_0x49a5c0);}(_0xd5fa,0xc9));var _0xad5f=function(_0x3e44c8,_0x3adbe0){_0x3e44c8=_0x3e44c8-0x0;var _0x18e830=_0xd5fa[_0x3e44c8];return _0x18e830;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xad5f('0x0'));var timeout=require(_0xad5f('0x1'));var express=require(_0xad5f('0x2'));var router=express[_0xad5f('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xad5f('0x4'));var interaction=require(_0xad5f('0x5'));var config=require(_0xad5f('0x6'));var controller=require(_0xad5f('0x7'));router[_0xad5f('0x8')]('/',auth[_0xad5f('0x9')](),controller['index']);router['get'](_0xad5f('0xa'),auth['isAuthenticated'](),controller[_0xad5f('0xb')]);router[_0xad5f('0x8')](_0xad5f('0xc'),auth[_0xad5f('0x9')](),controller['show']);router[_0xad5f('0x8')](_0xad5f('0xd'),auth[_0xad5f('0x9')](),controller[_0xad5f('0xe')]);router[_0xad5f('0x8')]('/:id/teams',auth[_0xad5f('0x9')](),controller[_0xad5f('0xf')]);router[_0xad5f('0x8')]('/:id/users',auth[_0xad5f('0x9')](),controller['getAgents']);router['post']('/',auth[_0xad5f('0x9')](),controller[_0xad5f('0x10')]);router[_0xad5f('0x11')](_0xad5f('0x12'),auth[_0xad5f('0x9')](),controller[_0xad5f('0x13')]);router['post']('/:id/users',auth[_0xad5f('0x9')](),controller[_0xad5f('0x14')]);router['put']('/:id',auth[_0xad5f('0x9')](),controller[_0xad5f('0x15')]);router[_0xad5f('0x16')](_0xad5f('0xc'),auth[_0xad5f('0x9')](),controller['destroy']);router[_0xad5f('0x16')](_0xad5f('0x12'),auth[_0xad5f('0x9')](),controller[_0xad5f('0x17')]);router['delete'](_0xad5f('0x18'),auth[_0xad5f('0x9')](),controller[_0xad5f('0x19')]);module['exports']=router;
\ No newline at end of file
+var _0x30d9=['removeAgents','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailQueue.controller','get','index','isAuthenticated','describe','/:id','show','/:id/members','getMembers','getTeams','getAgents','post','/:id/teams','addTeams','addAgents','update','delete','removeTeams','/:id/users'];(function(_0x1e4360,_0x930b9b){var _0x31e6b4=function(_0x49dd8e){while(--_0x49dd8e){_0x1e4360['push'](_0x1e4360['shift']());}};_0x31e6b4(++_0x930b9b);}(_0x30d9,0x17b));var _0x930d=function(_0x503a34,_0x26f737){_0x503a34=_0x503a34-0x0;var _0x57a54d=_0x30d9[_0x503a34];return _0x57a54d;};'use strict';var multer=require('multer');var util=require(_0x930d('0x0'));var path=require(_0x930d('0x1'));var timeout=require(_0x930d('0x2'));var express=require('express');var router=express[_0x930d('0x3')]();var fs_extra=require(_0x930d('0x4'));var auth=require(_0x930d('0x5'));var interaction=require(_0x930d('0x6'));var config=require(_0x930d('0x7'));var controller=require(_0x930d('0x8'));router[_0x930d('0x9')]('/',auth['isAuthenticated'](),controller[_0x930d('0xa')]);router[_0x930d('0x9')]('/describe',auth[_0x930d('0xb')](),controller[_0x930d('0xc')]);router['get'](_0x930d('0xd'),auth[_0x930d('0xb')](),controller[_0x930d('0xe')]);router[_0x930d('0x9')](_0x930d('0xf'),auth['isAuthenticated'](),controller[_0x930d('0x10')]);router[_0x930d('0x9')]('/:id/teams',auth['isAuthenticated'](),controller[_0x930d('0x11')]);router[_0x930d('0x9')]('/:id/users',auth[_0x930d('0xb')](),controller[_0x930d('0x12')]);router[_0x930d('0x13')]('/',auth[_0x930d('0xb')](),controller['create']);router[_0x930d('0x13')](_0x930d('0x14'),auth[_0x930d('0xb')](),controller[_0x930d('0x15')]);router[_0x930d('0x13')]('/:id/users',auth[_0x930d('0xb')](),controller[_0x930d('0x16')]);router['put'](_0x930d('0xd'),auth['isAuthenticated'](),controller[_0x930d('0x17')]);router[_0x930d('0x18')]('/:id',auth[_0x930d('0xb')](),controller['destroy']);router[_0x930d('0x18')](_0x930d('0x14'),auth[_0x930d('0xb')](),controller[_0x930d('0x19')]);router[_0x930d('0x18')](_0x930d('0x1a'),auth[_0x930d('0xb')](),controller[_0x930d('0x1b')]);module[_0x930d('0x1c')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a84=['sequelize','STRING','INTEGER','rrmemory','beepall','roundrobin'];(function(_0x481e54,_0xc34004){var _0x161359=function(_0x2f0825){while(--_0x2f0825){_0x481e54['push'](_0x481e54['shift']());}};_0x161359(++_0xc34004);}(_0x8a84,0x16e));var _0x48a8=function(_0x5de02c,_0x2bca83){_0x5de02c=_0x5de02c-0x0;var _0x5bee77=_0x8a84[_0x5de02c];return _0x5bee77;};'use strict';var Sequelize=require(_0x48a8('0x0'));module['exports']={'name':{'type':Sequelize[_0x48a8('0x1')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0x48a8('0x2')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0x48a8('0x3'),_0x48a8('0x4'),_0x48a8('0x5'))}};
\ No newline at end of file
+var _0x2966=['STRING','ENUM','beepall','roundrobin','sequelize','exports'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x2966,0x1ba));var _0x6296=function(_0x29f969,_0x3e39fb){_0x29f969=_0x29f969-0x0;var _0x428546=_0x2966[_0x29f969];return _0x428546;};'use strict';var Sequelize=require(_0x6296('0x0'));module[_0x6296('0x1')]={'name':{'type':Sequelize['STRING'],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x6296('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x6296('0x3')]('rrmemory',_0x6296('0x4'),_0x6296('0x5'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1542=['sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','json','offset','undefined','limit','status','Content-Range','reject','save','update','then','destroy','get','MailQueues','end','sendStatus','error','name','send','map','MailQueue','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','model','fields','length','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','count','include','findAll','rows','catch','show','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','getMembers','findOne','UserMailQueue','User','findAndCountAll','UserId','agent','createdAt','%s/%s','SIP','mailPause','updatedAt','Team','hasOwnProperty','getTeams','addTeams','ids','Agents','online','voicePause','interface','flatMap','sequelize','each','forEach','emit','userMailQueue:save','removeTeams','select','field','tq.TeamId','team_has_mail_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','every','TeamId','includes','all','union','transaction','userMailQueue:remove','addAgents','omit','spread','removeAgents','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util'];(function(_0x11f8f6,_0x453e17){var _0x66f877=function(_0x149f54){while(--_0x149f54){_0x11f8f6['push'](_0x11f8f6['shift']());}};_0x66f877(++_0x453e17);}(_0x1542,0x116));var _0x2154=function(_0x5eadd2,_0x4ee391){_0x5eadd2=_0x5eadd2-0x0;var _0xb80d47=_0x1542[_0x5eadd2];return _0xb80d47;};'use strict';var emlformat=require(_0x2154('0x0'));var rimraf=require(_0x2154('0x1'));var zipdir=require(_0x2154('0x2'));var jsonpatch=require(_0x2154('0x3'));var rp=require(_0x2154('0x4'));var moment=require('moment');var BPromise=require(_0x2154('0x5'));var Mustache=require(_0x2154('0x6'));var util=require(_0x2154('0x7'));var path=require('path');var sox=require(_0x2154('0x8'));var csv=require(_0x2154('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2154('0xa'));var _=require(_0x2154('0xb'));var squel=require(_0x2154('0xc'));var crypto=require(_0x2154('0xd'));var jsforce=require(_0x2154('0xe'));var deskjs=require(_0x2154('0xf'));var toCsv=require(_0x2154('0x9'));var querystring=require(_0x2154('0x10'));var Papa=require(_0x2154('0x11'));var Redis=require(_0x2154('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x2154('0x13'));var as=require(_0x2154('0x14'));var hardwareService=require(_0x2154('0x15'));var logger=require(_0x2154('0x16'))('api');var utils=require(_0x2154('0x17'));var config=require(_0x2154('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x2154('0x19'))['db'];config[_0x2154('0x1a')]=_[_0x2154('0x1b')](config[_0x2154('0x1a')],{'host':_0x2154('0x1c'),'port':0x18eb});var socket=require(_0x2154('0x1d'))(new Redis(config[_0x2154('0x1a')]));require('./mailQueue.socket')['register'](socket);function respondWithStatusCode(_0x160517,_0x5e1aee){_0x5e1aee=_0x5e1aee||0xcc;return function(_0x44c441){if(_0x44c441){return _0x160517['sendStatus'](_0x5e1aee);}return _0x160517['status'](_0x5e1aee)['end']();};}function respondWithResult(_0x46c995,_0x57e662){_0x57e662=_0x57e662||0xc8;return function(_0x157858){if(_0x157858){return _0x46c995['status'](_0x57e662)[_0x2154('0x1e')](_0x157858);}};}function respondWithFilteredResult(_0x369ab6,_0x324a0f){return function(_0x35b468){if(_0x35b468){var _0x14d29a=typeof _0x324a0f[_0x2154('0x1f')]===_0x2154('0x20')&&typeof _0x324a0f[_0x2154('0x21')]===_0x2154('0x20');var _0x286dc8=_0x35b468['count'];var _0x3fe131=_0x14d29a?0x0:_0x324a0f[_0x2154('0x1f')];var _0x12832c=_0x14d29a?_0x35b468['count']:_0x324a0f[_0x2154('0x1f')]+_0x324a0f[_0x2154('0x21')];var _0x3b71;if(_0x12832c>=_0x286dc8){_0x12832c=_0x286dc8;_0x3b71=0xc8;}else{_0x3b71=0xce;}_0x369ab6[_0x2154('0x22')](_0x3b71);return _0x369ab6['set'](_0x2154('0x23'),_0x3fe131+'-'+_0x12832c+'/'+_0x286dc8)[_0x2154('0x1e')](_0x35b468);}return null;};}function patchUpdates(_0x3f4387){return function(_0x4efdde){try{jsonpatch['apply'](_0x4efdde,_0x3f4387,!![]);}catch(_0x3e85c0){return BPromise[_0x2154('0x24')](_0x3e85c0);}return _0x4efdde[_0x2154('0x25')]();};}function saveUpdates(_0x4ef4f7,_0x54ba3b){return function(_0x177b33){if(_0x177b33){return _0x177b33[_0x2154('0x26')](_0x4ef4f7)[_0x2154('0x27')](function(_0x3b4fa8){return _0x3b4fa8;});}return null;};}function removeEntity(_0x5c954c,_0x1b3f89){return function(_0x34c860){if(_0x34c860){return _0x34c860[_0x2154('0x28')]()['then'](function(){var _0x4afbb4=_0x34c860[_0x2154('0x29')]({'plain':!![]});var _0x27d28a=_0x2154('0x2a');return db['UserProfileResource'][_0x2154('0x28')]({'where':{'type':_0x27d28a,'resourceId':_0x4afbb4['id']}})[_0x2154('0x27')](function(){return _0x34c860;});})[_0x2154('0x27')](function(){_0x5c954c[_0x2154('0x22')](0xcc)[_0x2154('0x2b')]();});}};}function handleEntityNotFound(_0x5cd152,_0x23f1bc){return function(_0x215a2c){if(!_0x215a2c){_0x5cd152[_0x2154('0x2c')](0x194);}return _0x215a2c;};}function handleError(_0x156f1a,_0x47a14b){_0x47a14b=_0x47a14b||0x1f4;return function(_0x2dee3e){logger[_0x2154('0x2d')](_0x2dee3e['stack']);if(_0x2dee3e[_0x2154('0x2e')]){delete _0x2dee3e[_0x2154('0x2e')];}_0x156f1a['status'](_0x47a14b)[_0x2154('0x2f')](_0x2dee3e);};}exports['index']=function(_0x4aa34f,_0x883503){var _0x106d3e={},_0x21e8c4={},_0x5a701e={'count':0x0,'rows':[]};var _0x3feb60=_[_0x2154('0x30')](db[_0x2154('0x31')][_0x2154('0x32')],function(_0xc6698f){return{'name':_0xc6698f[_0x2154('0x33')],'type':_0xc6698f[_0x2154('0x34')][_0x2154('0x35')]};});_0x21e8c4['model']=_[_0x2154('0x30')](_0x3feb60,'name');_0x21e8c4[_0x2154('0x36')]=_[_0x2154('0x37')](_0x4aa34f[_0x2154('0x36')]);_0x21e8c4[_0x2154('0x38')]=_[_0x2154('0x39')](_0x21e8c4['model'],_0x21e8c4['query']);_0x106d3e[_0x2154('0x3a')]=_[_0x2154('0x39')](_0x21e8c4[_0x2154('0x3b')],qs[_0x2154('0x3c')](_0x4aa34f[_0x2154('0x36')][_0x2154('0x3c')]));_0x106d3e[_0x2154('0x3a')]=_0x106d3e[_0x2154('0x3a')][_0x2154('0x3d')]?_0x106d3e[_0x2154('0x3a')]:_0x21e8c4['model'];if(!_0x4aa34f[_0x2154('0x36')]['hasOwnProperty'](_0x2154('0x3e'))){_0x106d3e[_0x2154('0x21')]=qs[_0x2154('0x21')](_0x4aa34f[_0x2154('0x36')][_0x2154('0x21')]);_0x106d3e[_0x2154('0x1f')]=qs['offset'](_0x4aa34f[_0x2154('0x36')][_0x2154('0x1f')]);}_0x106d3e[_0x2154('0x3f')]=qs[_0x2154('0x40')](_0x4aa34f[_0x2154('0x36')][_0x2154('0x40')]);_0x106d3e[_0x2154('0x41')]=qs[_0x2154('0x38')](_[_0x2154('0x42')](_0x4aa34f[_0x2154('0x36')],_0x21e8c4['filters']),_0x3feb60);if(_0x4aa34f['query'][_0x2154('0x43')]){_0x106d3e[_0x2154('0x41')]=_['merge'](_0x106d3e[_0x2154('0x41')],{'$or':_[_0x2154('0x30')](_0x3feb60,function(_0x5487f7){if(_0x5487f7[_0x2154('0x34')]!==_0x2154('0x44')){var _0x4ac5b0={};_0x4ac5b0[_0x5487f7['name']]={'$like':'%'+_0x4aa34f[_0x2154('0x36')][_0x2154('0x43')]+'%'};return _0x4ac5b0;}})});}_0x106d3e=_[_0x2154('0x45')]({},_0x106d3e,_0x4aa34f[_0x2154('0x46')]);var _0x12b7c3={'where':_0x106d3e[_0x2154('0x41')]};return db[_0x2154('0x31')][_0x2154('0x47')](_0x12b7c3)[_0x2154('0x27')](function(_0x417663){_0x5a701e[_0x2154('0x47')]=_0x417663;if(_0x4aa34f['query']['includeAll']){_0x106d3e[_0x2154('0x48')]=[{'all':!![]}];}return db['MailQueue'][_0x2154('0x49')](_0x106d3e);})[_0x2154('0x27')](function(_0xff86df){_0x5a701e[_0x2154('0x4a')]=_0xff86df;return _0x5a701e;})['then'](respondWithFilteredResult(_0x883503,_0x106d3e))[_0x2154('0x4b')](handleError(_0x883503,null));};exports[_0x2154('0x4c')]=function(_0x243dc0,_0x4490e3){var _0xcc9cbb={'raw':!![],'where':{'id':_0x243dc0['params']['id']}},_0x1801b7={};_0x1801b7['model']=_['keys'](db[_0x2154('0x31')]['rawAttributes']);_0x1801b7['query']=_[_0x2154('0x37')](_0x243dc0[_0x2154('0x36')]);_0x1801b7[_0x2154('0x38')]=_[_0x2154('0x39')](_0x1801b7[_0x2154('0x3b')],_0x1801b7[_0x2154('0x36')]);_0xcc9cbb[_0x2154('0x3a')]=_[_0x2154('0x39')](_0x1801b7['model'],qs[_0x2154('0x3c')](_0x243dc0[_0x2154('0x36')][_0x2154('0x3c')]));_0xcc9cbb['attributes']=_0xcc9cbb['attributes'][_0x2154('0x3d')]?_0xcc9cbb[_0x2154('0x3a')]:_0x1801b7[_0x2154('0x3b')];if(_0x243dc0['query'][_0x2154('0x4d')]){_0xcc9cbb[_0x2154('0x48')]=[{'all':!![]}];}_0xcc9cbb=_[_0x2154('0x45')]({},_0xcc9cbb,_0x243dc0[_0x2154('0x46')]);return db[_0x2154('0x31')][_0x2154('0x4e')](_0xcc9cbb)[_0x2154('0x27')](handleEntityNotFound(_0x4490e3,null))[_0x2154('0x27')](respondWithResult(_0x4490e3,null))['catch'](handleError(_0x4490e3,null));};exports[_0x2154('0x4f')]=function(_0xe3dd1c,_0x738aa3){return db[_0x2154('0x31')]['create'](_0xe3dd1c[_0x2154('0x50')],{})['then'](function(_0x5e4c51){var _0xd745bf=_0xe3dd1c[_0x2154('0x51')][_0x2154('0x29')]({'plain':!![]});if(!_0xd745bf)throw new Error(_0x2154('0x52'));if(_0xd745bf[_0x2154('0x53')]===_0x2154('0x51')){var _0x1026d9=_0x5e4c51[_0x2154('0x29')]({'plain':!![]});var _0x2049c9=_0x2154('0x2a');return db['UserProfileSection']['find']({'where':{'name':_0x2049c9,'userProfileId':_0xd745bf[_0x2154('0x54')]},'raw':!![]})['then'](function(_0x336f8b){if(_0x336f8b&&_0x336f8b['autoAssociation']===0x0){return db[_0x2154('0x55')][_0x2154('0x4f')]({'name':_0x1026d9[_0x2154('0x2e')],'resourceId':_0x1026d9['id'],'type':_0x336f8b[_0x2154('0x2e')],'sectionId':_0x336f8b['id']},{})[_0x2154('0x27')](function(){return _0x5e4c51;});}else{return _0x5e4c51;}})[_0x2154('0x4b')](function(_0x2d6924){logger[_0x2154('0x2d')](_0x2154('0x56'),_0x2d6924);throw _0x2d6924;});}return _0x5e4c51;})[_0x2154('0x27')](respondWithResult(_0x738aa3,0xc9))[_0x2154('0x4b')](handleError(_0x738aa3,null));};exports[_0x2154('0x26')]=function(_0x29bc6d,_0x1b9722){if(_0x29bc6d['body']['id']){delete _0x29bc6d['body']['id'];}return db[_0x2154('0x31')][_0x2154('0x4e')]({'where':{'id':_0x29bc6d[_0x2154('0x57')]['id']}})[_0x2154('0x27')](handleEntityNotFound(_0x1b9722,null))[_0x2154('0x27')](saveUpdates(_0x29bc6d['body'],null))['then'](respondWithResult(_0x1b9722,null))[_0x2154('0x4b')](handleError(_0x1b9722,null));};exports[_0x2154('0x28')]=function(_0x442b0b,_0x3abb6a){return db[_0x2154('0x31')]['find']({'where':{'id':_0x442b0b[_0x2154('0x57')]['id']}})[_0x2154('0x27')](handleEntityNotFound(_0x3abb6a,null))[_0x2154('0x27')](removeEntity(_0x3abb6a,null))[_0x2154('0x4b')](handleError(_0x3abb6a,null));};exports[_0x2154('0x58')]=function(_0x4f1d46,_0x46f56f){return db['MailQueue'][_0x2154('0x58')]()[_0x2154('0x27')](respondWithResult(_0x46f56f,null))[_0x2154('0x4b')](handleError(_0x46f56f,null));};exports[_0x2154('0x59')]=function(_0x457c8f,_0xc9765c,_0x572ee2){var _0x10c6b9={'raw':!![],'where':{}},_0x370304={},_0x13adfb;return db[_0x2154('0x31')][_0x2154('0x5a')]({'where':{'id':_0x457c8f[_0x2154('0x57')]['id']}})[_0x2154('0x27')](handleEntityNotFound(_0xc9765c,null))['then'](function(_0x33208b){if(_0x33208b){_0x13adfb=_0x33208b[_0x2154('0x29')]({'plain':!![]});_0x370304[_0x2154('0x3b')]=_['keys'](db['UserMailQueue']['rawAttributes']);_0x370304[_0x2154('0x36')]=_['keys'](_0x457c8f[_0x2154('0x36')]);_0x370304['filters']=_['intersection'](_0x370304[_0x2154('0x3b')],_0x370304['query']);_0x10c6b9[_0x2154('0x3a')]=_[_0x2154('0x39')](_0x370304[_0x2154('0x3b')],qs['fields'](_0x457c8f[_0x2154('0x36')]['fields']));_0x10c6b9['attributes']=_0x10c6b9[_0x2154('0x3a')][_0x2154('0x3d')]?_0x10c6b9[_0x2154('0x3a')]:_0x370304[_0x2154('0x3b')];if(!_0x457c8f[_0x2154('0x36')]['hasOwnProperty'](_0x2154('0x3e'))){_0x10c6b9['limit']=qs[_0x2154('0x21')](_0x457c8f[_0x2154('0x36')][_0x2154('0x21')]);_0x10c6b9[_0x2154('0x1f')]=qs['offset'](_0x457c8f[_0x2154('0x36')]['offset']);}_0x10c6b9[_0x2154('0x3f')]=qs[_0x2154('0x40')](_0x457c8f['query'][_0x2154('0x40')]);_0x10c6b9[_0x2154('0x41')]=qs[_0x2154('0x38')](_['pick'](_0x457c8f['query'],_0x370304[_0x2154('0x38')]));_0x10c6b9[_0x2154('0x41')]['MailQueueId']=_0x33208b['id'];if(_0x457c8f[_0x2154('0x36')][_0x2154('0x43')]){_0x10c6b9[_0x2154('0x41')]=_[_0x2154('0x45')](_0x10c6b9[_0x2154('0x41')],{'$or':_[_0x2154('0x30')](_0x10c6b9[_0x2154('0x3a')],function(_0x1208b8){var _0x428f97={};_0x428f97[_0x1208b8]={'$like':'%'+_0x457c8f[_0x2154('0x36')][_0x2154('0x43')]+'%'};return _0x428f97;})});}_0x10c6b9=_[_0x2154('0x45')]({},_0x10c6b9,_0x457c8f[_0x2154('0x46')]);return db[_0x2154('0x5b')][_0x2154('0x49')](_0x10c6b9);}})[_0x2154('0x27')](function(_0x2f300f){if(_0x2f300f){return db[_0x2154('0x5c')][_0x2154('0x5d')]({'where':{'id':_['map'](_0x2f300f,_0x2154('0x5e')),'role':_0x2154('0x5f')},'attributes':['id',_0x2154('0x2e'),'mailPause','updatedAt',_0x2154('0x60')]});}})['then'](function(_0x4ceb1f){if(_0x4ceb1f){return{'count':_0x4ceb1f['count'],'rows':_[_0x2154('0x30')](_0x4ceb1f[_0x2154('0x4a')],function(_0x22bedb){return{'membername':_0x22bedb[_0x2154('0x2e')],'UserId':_0x22bedb['id'],'queue_name':_0x13adfb[_0x2154('0x2e')],'MailQueueId':_0x13adfb['id'],'interface':util['format'](_0x2154('0x61'),_0x2154('0x62'),_0x22bedb['name']),'penalty':0x0,'paused':_0x22bedb[_0x2154('0x63')],'createdAt':_0x22bedb[_0x2154('0x60')],'updatedAt':_0x22bedb[_0x2154('0x64')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x2154('0x27')](respondWithFilteredResult(_0xc9765c,_0x10c6b9))[_0x2154('0x4b')](handleError(_0xc9765c,null));};exports['getTeams']=function(_0x557404,_0x4fcc08,_0x50211b){var _0x192450={};var _0x1f81c0={};var _0x4fc08c;var _0x1372b9;return db[_0x2154('0x31')][_0x2154('0x5a')]({'where':{'id':_0x557404['params']['id']}})[_0x2154('0x27')](handleEntityNotFound(_0x4fcc08,null))[_0x2154('0x27')](function(_0x53779b){if(_0x53779b){_0x4fc08c=_0x53779b;_0x1f81c0[_0x2154('0x3b')]=_[_0x2154('0x37')](db[_0x2154('0x65')][_0x2154('0x32')]);_0x1f81c0[_0x2154('0x36')]=_[_0x2154('0x37')](_0x557404['query']);_0x1f81c0[_0x2154('0x38')]=_[_0x2154('0x39')](_0x1f81c0[_0x2154('0x3b')],_0x1f81c0[_0x2154('0x36')]);_0x192450[_0x2154('0x3a')]=_[_0x2154('0x39')](_0x1f81c0[_0x2154('0x3b')],qs[_0x2154('0x3c')](_0x557404['query'][_0x2154('0x3c')]));_0x192450[_0x2154('0x3a')]=_0x192450[_0x2154('0x3a')]['length']?_0x192450[_0x2154('0x3a')]:_0x1f81c0[_0x2154('0x3b')];_0x192450[_0x2154('0x3f')]=qs['sort'](_0x557404[_0x2154('0x36')][_0x2154('0x40')]);_0x192450[_0x2154('0x41')]=qs[_0x2154('0x38')](_[_0x2154('0x42')](_0x557404['query'],_0x1f81c0[_0x2154('0x38')]));if(_0x557404[_0x2154('0x36')][_0x2154('0x43')]){_0x192450[_0x2154('0x41')]=_['merge'](_0x192450[_0x2154('0x41')],{'$or':_[_0x2154('0x30')](_0x192450['attributes'],function(_0x4a641c){var _0x24c45b={};_0x24c45b[_0x4a641c]={'$like':'%'+_0x557404[_0x2154('0x36')]['filter']+'%'};return _0x24c45b;})});}_0x192450=_[_0x2154('0x45')]({},_0x192450,_0x557404[_0x2154('0x46')]);return _0x4fc08c['getTeams'](_0x192450);}})[_0x2154('0x27')](function(_0x51e155){if(_0x51e155){_0x1372b9=_0x51e155[_0x2154('0x3d')];if(!_0x557404[_0x2154('0x36')][_0x2154('0x66')](_0x2154('0x3e'))){_0x192450['limit']=qs[_0x2154('0x21')](_0x557404[_0x2154('0x36')][_0x2154('0x21')]);_0x192450[_0x2154('0x1f')]=qs[_0x2154('0x1f')](_0x557404[_0x2154('0x36')]['offset']);}return _0x4fc08c[_0x2154('0x67')](_0x192450);}})[_0x2154('0x27')](function(_0xed64d9){if(_0xed64d9){return _0xed64d9?{'count':_0x1372b9,'rows':_0xed64d9}:null;}})[_0x2154('0x27')](respondWithResult(_0x4fcc08,null))['catch'](handleError(_0x4fcc08,null));};exports[_0x2154('0x68')]=function(_0x33b275,_0x5f3da9,_0x133f98){var _0x132e80=_0x33b275[_0x2154('0x50')][_0x2154('0x69')];return db[_0x2154('0x65')]['findAll']({'where':{'id':_0x132e80},'attributes':['id'],'include':[{'model':db[_0x2154('0x5c')],'as':_0x2154('0x6a'),'attributes':['id',_0x2154('0x2e'),_0x2154('0x6b'),_0x2154('0x6c'),_0x2154('0x6d')],'raw':!![]}]})[_0x2154('0x27')](function(_0x3a559e){if(_0x3a559e){var _0x127f36=_[_0x2154('0x6e')](_0x3a559e,function(_0x4c0c39){var _0xdd215c=_0x4c0c39[_0x2154('0x29')]({'plain':!![]});return _0xdd215c[_0x2154('0x6a')];});return db[_0x2154('0x31')][_0x2154('0x4e')]({'where':{'id':_0x33b275[_0x2154('0x57')]['id']}})[_0x2154('0x27')](function(_0x143be5){return db[_0x2154('0x6f')]['transaction'](function(_0x3ae502){return _0x143be5[_0x2154('0x68')](_0x132e80,{'transaction':_0x3ae502})['then'](function(){return BPromise[_0x2154('0x70')](_0x127f36,function(_0x40fd98){return db[_0x2154('0x5b')]['findOrCreate']({'where':{'UserId':_0x40fd98['id'],'MailQueueId':_0x33b275[_0x2154('0x57')]['id']},'transaction':_0x3ae502});});})[_0x2154('0x27')](function(){_0x127f36[_0x2154('0x71')](function(_0x3ea324){socket[_0x2154('0x72')](_0x2154('0x73'),{'UserId':_0x3ea324['id'],'MailQueueId':_0x143be5['id']});});});});});}})['then'](respondWithStatusCode(_0x5f3da9,null))[_0x2154('0x4b')](handleError(_0x5f3da9,null));};exports[_0x2154('0x74')]=function(_0x2ac713,_0x2a481f,_0x3ff628){return db[_0x2154('0x65')]['findAll']({'where':{'id':_0x2ac713[_0x2154('0x36')][_0x2154('0x69')]},'attributes':['id'],'include':[{'model':db[_0x2154('0x5c')],'as':_0x2154('0x6a'),'attributes':['id'],'raw':!![]}]})[_0x2154('0x27')](handleEntityNotFound(_0x2a481f,null))[_0x2154('0x27')](function(_0x4a51a1){var _0x479ab5=_[_0x2154('0x30')](_0x4a51a1,'id');var _0x2c3bbe=[];var _0x3987f9=[];var _0x17b9f0=squel[_0x2154('0x75')]();_0x17b9f0[_0x2154('0x76')](_0x2154('0x77'))['from'](_0x2154('0x78'),'tq')[_0x2154('0x79')](_0x2154('0x7a'),'ut',_0x2154('0x7b'))['where'](_0x2154('0x7c'),_0x2ac713[_0x2154('0x57')]['id']);for(var _0x548e0b=0x0;_0x548e0b<_0x4a51a1[_0x2154('0x3d')];_0x548e0b+=0x1){let _0xa29e79=_0x4a51a1[_0x548e0b];for(var _0x15e46f=0x0;_0x15e46f<_0xa29e79['Agents'][_0x2154('0x3d')];_0x15e46f+=0x1){let _0x3e94d5=_0xa29e79[_0x2154('0x6a')][_0x15e46f];var _0x4063eb=_0x17b9f0[_0x2154('0x7d')]();_0x4063eb[_0x2154('0x41')](_0x2154('0x7e'),_0x3e94d5['id']);_0x3987f9[_0x2154('0x7f')](db['sequelize'][_0x2154('0x36')](_0x4063eb[_0x2154('0x80')](),{'type':db[_0x2154('0x6f')][_0x2154('0x81')]['SELECT']})[_0x2154('0x27')](function(_0x5e8320){if(_0x5e8320['length']===0x1){return _0x3e94d5['id'];}else{var _0x4455be=_[_0x2154('0x82')](_['map'](_0x5e8320,_0x2154('0x83')),function(_0xc5cb0a){return _[_0x2154('0x84')](_0x479ab5,_0xc5cb0a);});if(_0x4455be){return _0x3e94d5['id'];}}}));}}return BPromise[_0x2154('0x85')](_0x3987f9)[_0x2154('0x27')](function(_0x176d79){_0x2c3bbe=_(_0x2c3bbe)[_0x2154('0x86')](_0x176d79)['compact']()['value']();return db[_0x2154('0x31')]['find']({'where':{'id':_0x2ac713[_0x2154('0x57')]['id']}})[_0x2154('0x27')](function(_0x3b0c90){return db['sequelize'][_0x2154('0x87')](function(_0x2629b8){return _0x3b0c90[_0x2154('0x74')](_0x2ac713['query'][_0x2154('0x69')],{'transaction':_0x2629b8})[_0x2154('0x27')](function(){if(!_['isEmpty'](_0x2c3bbe)){return _0x3b0c90['removeAgents'](_0x2c3bbe,{'transaction':_0x2629b8});}})[_0x2154('0x27')](function(){_0x2c3bbe[_0x2154('0x71')](function(_0x27cd97){socket[_0x2154('0x72')](_0x2154('0x88'),{'UserId':_0x27cd97,'MailQueueId':_0x3b0c90['id']});});});});});});})[_0x2154('0x27')](respondWithStatusCode(_0x2a481f,null))[_0x2154('0x4b')](handleError(_0x2a481f,null));};exports[_0x2154('0x89')]=function(_0x37a90c,_0x245a87,_0x21b9e0){return db[_0x2154('0x31')][_0x2154('0x4e')]({'where':{'id':_0x37a90c[_0x2154('0x57')]['id']}})['then'](handleEntityNotFound(_0x245a87,null))[_0x2154('0x27')](function(_0x3aca5e){if(_0x3aca5e){return _0x3aca5e[_0x2154('0x89')](_0x37a90c[_0x2154('0x50')][_0x2154('0x69')],_[_0x2154('0x8a')](_0x37a90c['body'],['ids','id'])||{})[_0x2154('0x8b')](function(_0x23664c){for(var _0x596746=0x0;_0x596746<_0x37a90c[_0x2154('0x50')][_0x2154('0x69')][_0x2154('0x3d')];_0x596746+=0x1){socket['emit']('userMailQueue:save',{'UserId':Number(_0x37a90c[_0x2154('0x50')][_0x2154('0x69')][_0x596746]),'MailQueueId':Number(_0x37a90c['params']['id'])});}return _0x23664c;});}})[_0x2154('0x27')](respondWithResult(_0x245a87,null))[_0x2154('0x4b')](handleError(_0x245a87,null));};exports['removeAgents']=function(_0x487618,_0x3b6b55,_0x112dae){return db[_0x2154('0x31')][_0x2154('0x4e')]({'where':{'id':_0x487618['params']['id']}})[_0x2154('0x27')](handleEntityNotFound(_0x3b6b55,null))[_0x2154('0x27')](function(_0x23093c){if(_0x23093c){return _0x23093c[_0x2154('0x8c')](_0x487618[_0x2154('0x36')]['ids'])[_0x2154('0x27')](function(){if(_[_0x2154('0x8d')](_0x487618[_0x2154('0x36')][_0x2154('0x69')])){for(var _0x53f3f5=0x0;_0x53f3f5<_0x487618[_0x2154('0x36')][_0x2154('0x69')][_0x2154('0x3d')];_0x53f3f5+=0x1){socket[_0x2154('0x72')](_0x2154('0x88'),{'UserId':Number(_0x487618['query'][_0x2154('0x69')][_0x53f3f5]),'MailQueueId':Number(_0x487618[_0x2154('0x57')]['id'])});}}else{socket[_0x2154('0x72')](_0x2154('0x88'),{'UserId':Number(_0x487618[_0x2154('0x36')][_0x2154('0x69')]),'MailQueueId':Number(_0x487618[_0x2154('0x57')]['id'])});}});}})['then'](respondWithStatusCode(_0x3b6b55,null))[_0x2154('0x4b')](handleError(_0x3b6b55,null));};exports[_0x2154('0x8e')]=function(_0x2d3dbf,_0xd43dd5,_0x3b0a1f){var _0x263ea5={};var _0x5c3f4f={};var _0x492c11;var _0x54890a;return db['MailQueue'][_0x2154('0x5a')]({'where':{'id':_0x2d3dbf[_0x2154('0x57')]['id']}})['then'](handleEntityNotFound(_0xd43dd5,null))[_0x2154('0x27')](function(_0x38e059){if(_0x38e059){_0x492c11=_0x38e059;_0x5c3f4f[_0x2154('0x3b')]=_['keys'](db[_0x2154('0x5c')][_0x2154('0x32')]);_0x5c3f4f['query']=_[_0x2154('0x37')](_0x2d3dbf[_0x2154('0x36')]);_0x5c3f4f['filters']=_['intersection'](_0x5c3f4f[_0x2154('0x3b')],_0x5c3f4f['query']);_0x263ea5[_0x2154('0x3a')]=_[_0x2154('0x39')](_0x5c3f4f[_0x2154('0x3b')],qs[_0x2154('0x3c')](_0x2d3dbf['query'][_0x2154('0x3c')]));_0x263ea5[_0x2154('0x3a')]=_0x263ea5[_0x2154('0x3a')][_0x2154('0x3d')]?_0x263ea5[_0x2154('0x3a')]:_0x5c3f4f[_0x2154('0x3b')];_0x263ea5['order']=qs[_0x2154('0x40')](_0x2d3dbf[_0x2154('0x36')][_0x2154('0x40')]);_0x263ea5[_0x2154('0x41')]=qs[_0x2154('0x38')](_['pick'](_0x2d3dbf['query'],_0x5c3f4f[_0x2154('0x38')]));if(_0x2d3dbf[_0x2154('0x36')][_0x2154('0x43')]){_0x263ea5[_0x2154('0x41')]=_[_0x2154('0x45')](_0x263ea5[_0x2154('0x41')],{'$or':_[_0x2154('0x30')](_0x263ea5[_0x2154('0x3a')],function(_0x583fbf){var _0x550298={};_0x550298[_0x583fbf]={'$like':'%'+_0x2d3dbf[_0x2154('0x36')]['filter']+'%'};return _0x550298;})});}_0x263ea5=_['merge']({},_0x263ea5,_0x2d3dbf[_0x2154('0x46')]);return _0x492c11['getAgents'](_0x263ea5);}})[_0x2154('0x27')](function(_0x9f2718){if(_0x9f2718){_0x54890a=_0x9f2718['length'];if(!_0x2d3dbf[_0x2154('0x36')][_0x2154('0x66')](_0x2154('0x3e'))){_0x263ea5[_0x2154('0x21')]=qs[_0x2154('0x21')](_0x2d3dbf[_0x2154('0x36')]['limit']);_0x263ea5[_0x2154('0x1f')]=qs[_0x2154('0x1f')](_0x2d3dbf[_0x2154('0x36')][_0x2154('0x1f')]);}return _0x492c11[_0x2154('0x8e')](_0x263ea5);}})[_0x2154('0x27')](function(_0x4b4efb){if(_0x4b4efb){return _0x4b4efb?{'count':_0x54890a,'rows':_0x4b4efb}:null;}})[_0x2154('0x27')](respondWithResult(_0xd43dd5,null))[_0x2154('0x4b')](handleError(_0xd43dd5,null));};
\ No newline at end of file
+var _0xb433=['fast-json-patch','request-promise','mustache','util','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./mailQueue.socket','register','sendStatus','status','end','json','offset','limit','undefined','count','set','reject','save','update','destroy','then','get','UserProfileResource','error','stack','name','send','MailQueue','rawAttributes','type','key','model','map','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','MailQueues','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserMailQueue','User','mailPause','updatedAt','createdAt','%s/%s','SIP','getTeams','Team','ids','Agents','online','voicePause','interface','flatMap','sequelize','addTeams','each','findOrCreate','userMailQueue:save','removeTeams','select','field','team_has_mail_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','SELECT','every','TeamId','includes','all','compact','value','transaction','isEmpty','emit','userMailQueue:remove','addAgents','omit','spread','removeAgents','isArray','getAgents','eml-format','rimraf','zip-dir'];(function(_0x37bd26,_0x5ad346){var _0xe83dc4=function(_0x1ac229){while(--_0x1ac229){_0x37bd26['push'](_0x37bd26['shift']());}};_0xe83dc4(++_0x5ad346);}(_0xb433,0x19b));var _0x3b43=function(_0x46cc29,_0x473f8e){_0x46cc29=_0x46cc29-0x0;var _0x5ea06f=_0xb433[_0x46cc29];return _0x5ea06f;};'use strict';var emlformat=require(_0x3b43('0x0'));var rimraf=require(_0x3b43('0x1'));var zipdir=require(_0x3b43('0x2'));var jsonpatch=require(_0x3b43('0x3'));var rp=require(_0x3b43('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x3b43('0x5'));var util=require(_0x3b43('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x3b43('0x7'));var ejs=require(_0x3b43('0x8'));var fs=require('fs');var fs_extra=require(_0x3b43('0x9'));var _=require(_0x3b43('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x3b43('0xb'));var deskjs=require(_0x3b43('0xc'));var toCsv=require(_0x3b43('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x3b43('0xd'));var authService=require(_0x3b43('0xe'));var qs=require(_0x3b43('0xf'));var as=require(_0x3b43('0x10'));var hardwareService=require(_0x3b43('0x11'));var logger=require(_0x3b43('0x12'))(_0x3b43('0x13'));var utils=require(_0x3b43('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x3b43('0x15'));var db=require(_0x3b43('0x16'))['db'];config[_0x3b43('0x17')]=_[_0x3b43('0x18')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x3b43('0x19'))(new Redis(config['redis']));require(_0x3b43('0x1a'))[_0x3b43('0x1b')](socket);function respondWithStatusCode(_0x1197f9,_0x23bc20){_0x23bc20=_0x23bc20||0xcc;return function(_0x269e43){if(_0x269e43){return _0x1197f9[_0x3b43('0x1c')](_0x23bc20);}return _0x1197f9[_0x3b43('0x1d')](_0x23bc20)[_0x3b43('0x1e')]();};}function respondWithResult(_0x4018c4,_0x488774){_0x488774=_0x488774||0xc8;return function(_0x1fbf3b){if(_0x1fbf3b){return _0x4018c4[_0x3b43('0x1d')](_0x488774)[_0x3b43('0x1f')](_0x1fbf3b);}};}function respondWithFilteredResult(_0x5532de,_0x4a4bdc){return function(_0x4ccfa7){if(_0x4ccfa7){var _0x2ddce0=typeof _0x4a4bdc[_0x3b43('0x20')]==='undefined'&&typeof _0x4a4bdc[_0x3b43('0x21')]===_0x3b43('0x22');var _0x361898=_0x4ccfa7[_0x3b43('0x23')];var _0xe5fef1=_0x2ddce0?0x0:_0x4a4bdc['offset'];var _0x368809=_0x2ddce0?_0x4ccfa7[_0x3b43('0x23')]:_0x4a4bdc['offset']+_0x4a4bdc[_0x3b43('0x21')];var _0x33122c;if(_0x368809>=_0x361898){_0x368809=_0x361898;_0x33122c=0xc8;}else{_0x33122c=0xce;}_0x5532de[_0x3b43('0x1d')](_0x33122c);return _0x5532de[_0x3b43('0x24')]('Content-Range',_0xe5fef1+'-'+_0x368809+'/'+_0x361898)[_0x3b43('0x1f')](_0x4ccfa7);}return null;};}function patchUpdates(_0x1a70c9){return function(_0x5aa38a){try{jsonpatch['apply'](_0x5aa38a,_0x1a70c9,!![]);}catch(_0x569c5a){return BPromise[_0x3b43('0x25')](_0x569c5a);}return _0x5aa38a[_0x3b43('0x26')]();};}function saveUpdates(_0x454015,_0x421cd8){return function(_0x197d28){if(_0x197d28){return _0x197d28[_0x3b43('0x27')](_0x454015)['then'](function(_0x2f9b1b){return _0x2f9b1b;});}return null;};}function removeEntity(_0xd1fe0c,_0x2290b4){return function(_0xbaf1fd){if(_0xbaf1fd){return _0xbaf1fd[_0x3b43('0x28')]()[_0x3b43('0x29')](function(){var _0x47bdc8=_0xbaf1fd[_0x3b43('0x2a')]({'plain':!![]});var _0x3aca03='MailQueues';return db[_0x3b43('0x2b')][_0x3b43('0x28')]({'where':{'type':_0x3aca03,'resourceId':_0x47bdc8['id']}})[_0x3b43('0x29')](function(){return _0xbaf1fd;});})[_0x3b43('0x29')](function(){_0xd1fe0c[_0x3b43('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2a579f,_0x8178c1){return function(_0x269f34){if(!_0x269f34){_0x2a579f[_0x3b43('0x1c')](0x194);}return _0x269f34;};}function handleError(_0x487eca,_0x56923d){_0x56923d=_0x56923d||0x1f4;return function(_0x4eeb4c){logger[_0x3b43('0x2c')](_0x4eeb4c[_0x3b43('0x2d')]);if(_0x4eeb4c[_0x3b43('0x2e')]){delete _0x4eeb4c['name'];}_0x487eca['status'](_0x56923d)[_0x3b43('0x2f')](_0x4eeb4c);};}exports['index']=function(_0x5f0668,_0x5a1343){var _0x139441={},_0x280b8e={},_0x89f6f5={'count':0x0,'rows':[]};var _0xaf6a5a=_['map'](db[_0x3b43('0x30')][_0x3b43('0x31')],function(_0x368353){return{'name':_0x368353['fieldName'],'type':_0x368353[_0x3b43('0x32')][_0x3b43('0x33')]};});_0x280b8e[_0x3b43('0x34')]=_[_0x3b43('0x35')](_0xaf6a5a,_0x3b43('0x2e'));_0x280b8e['query']=_[_0x3b43('0x36')](_0x5f0668[_0x3b43('0x37')]);_0x280b8e[_0x3b43('0x38')]=_[_0x3b43('0x39')](_0x280b8e[_0x3b43('0x34')],_0x280b8e[_0x3b43('0x37')]);_0x139441['attributes']=_[_0x3b43('0x39')](_0x280b8e[_0x3b43('0x34')],qs[_0x3b43('0x3a')](_0x5f0668[_0x3b43('0x37')][_0x3b43('0x3a')]));_0x139441[_0x3b43('0x3b')]=_0x139441['attributes'][_0x3b43('0x3c')]?_0x139441['attributes']:_0x280b8e[_0x3b43('0x34')];if(!_0x5f0668[_0x3b43('0x37')][_0x3b43('0x3d')](_0x3b43('0x3e'))){_0x139441[_0x3b43('0x21')]=qs[_0x3b43('0x21')](_0x5f0668[_0x3b43('0x37')][_0x3b43('0x21')]);_0x139441[_0x3b43('0x20')]=qs['offset'](_0x5f0668[_0x3b43('0x37')][_0x3b43('0x20')]);}_0x139441[_0x3b43('0x3f')]=qs[_0x3b43('0x40')](_0x5f0668[_0x3b43('0x37')][_0x3b43('0x40')]);_0x139441[_0x3b43('0x41')]=qs[_0x3b43('0x38')](_[_0x3b43('0x42')](_0x5f0668[_0x3b43('0x37')],_0x280b8e[_0x3b43('0x38')]),_0xaf6a5a);if(_0x5f0668[_0x3b43('0x37')][_0x3b43('0x43')]){_0x139441[_0x3b43('0x41')]=_['merge'](_0x139441[_0x3b43('0x41')],{'$or':_[_0x3b43('0x35')](_0xaf6a5a,function(_0x83cfad){if(_0x83cfad[_0x3b43('0x32')]!==_0x3b43('0x44')){var _0x4c9057={};_0x4c9057[_0x83cfad[_0x3b43('0x2e')]]={'$like':'%'+_0x5f0668[_0x3b43('0x37')][_0x3b43('0x43')]+'%'};return _0x4c9057;}})});}_0x139441=_[_0x3b43('0x45')]({},_0x139441,_0x5f0668[_0x3b43('0x46')]);var _0x226386={'where':_0x139441[_0x3b43('0x41')]};return db[_0x3b43('0x30')][_0x3b43('0x23')](_0x226386)[_0x3b43('0x29')](function(_0x588b7a){_0x89f6f5[_0x3b43('0x23')]=_0x588b7a;if(_0x5f0668[_0x3b43('0x37')][_0x3b43('0x47')]){_0x139441[_0x3b43('0x48')]=[{'all':!![]}];}return db[_0x3b43('0x30')][_0x3b43('0x49')](_0x139441);})['then'](function(_0x53715d){_0x89f6f5[_0x3b43('0x4a')]=_0x53715d;return _0x89f6f5;})[_0x3b43('0x29')](respondWithFilteredResult(_0x5a1343,_0x139441))[_0x3b43('0x4b')](handleError(_0x5a1343,null));};exports[_0x3b43('0x4c')]=function(_0xe109fe,_0x4f470b){var _0x317595={'raw':!![],'where':{'id':_0xe109fe[_0x3b43('0x4d')]['id']}},_0x13dd3c={};_0x13dd3c[_0x3b43('0x34')]=_['keys'](db[_0x3b43('0x30')]['rawAttributes']);_0x13dd3c[_0x3b43('0x37')]=_[_0x3b43('0x36')](_0xe109fe[_0x3b43('0x37')]);_0x13dd3c['filters']=_[_0x3b43('0x39')](_0x13dd3c[_0x3b43('0x34')],_0x13dd3c[_0x3b43('0x37')]);_0x317595['attributes']=_[_0x3b43('0x39')](_0x13dd3c[_0x3b43('0x34')],qs[_0x3b43('0x3a')](_0xe109fe[_0x3b43('0x37')][_0x3b43('0x3a')]));_0x317595[_0x3b43('0x3b')]=_0x317595[_0x3b43('0x3b')]['length']?_0x317595['attributes']:_0x13dd3c[_0x3b43('0x34')];if(_0xe109fe[_0x3b43('0x37')][_0x3b43('0x47')]){_0x317595[_0x3b43('0x48')]=[{'all':!![]}];}_0x317595=_[_0x3b43('0x45')]({},_0x317595,_0xe109fe[_0x3b43('0x46')]);return db[_0x3b43('0x30')][_0x3b43('0x4e')](_0x317595)[_0x3b43('0x29')](handleEntityNotFound(_0x4f470b,null))['then'](respondWithResult(_0x4f470b,null))[_0x3b43('0x4b')](handleError(_0x4f470b,null));};exports[_0x3b43('0x4f')]=function(_0x1fe98c,_0xe08e2f){return db[_0x3b43('0x30')][_0x3b43('0x4f')](_0x1fe98c[_0x3b43('0x50')],{})[_0x3b43('0x29')](function(_0x74b9f6){var _0x5a3652=_0x1fe98c[_0x3b43('0x51')][_0x3b43('0x2a')]({'plain':!![]});if(!_0x5a3652)throw new Error(_0x3b43('0x52'));if(_0x5a3652['role']===_0x3b43('0x51')){var _0xe2de9d=_0x74b9f6[_0x3b43('0x2a')]({'plain':!![]});var _0x3ec4ba=_0x3b43('0x53');return db[_0x3b43('0x54')]['find']({'where':{'name':_0x3ec4ba,'userProfileId':_0x5a3652[_0x3b43('0x55')]},'raw':!![]})[_0x3b43('0x29')](function(_0x15a455){if(_0x15a455&&_0x15a455[_0x3b43('0x56')]===0x0){return db['UserProfileResource'][_0x3b43('0x4f')]({'name':_0xe2de9d[_0x3b43('0x2e')],'resourceId':_0xe2de9d['id'],'type':_0x15a455[_0x3b43('0x2e')],'sectionId':_0x15a455['id']},{})['then'](function(){return _0x74b9f6;});}else{return _0x74b9f6;}})[_0x3b43('0x4b')](function(_0x35d082){logger['error'](_0x3b43('0x57'),_0x35d082);throw _0x35d082;});}return _0x74b9f6;})['then'](respondWithResult(_0xe08e2f,0xc9))[_0x3b43('0x4b')](handleError(_0xe08e2f,null));};exports['update']=function(_0x46c625,_0x49c158){if(_0x46c625[_0x3b43('0x50')]['id']){delete _0x46c625[_0x3b43('0x50')]['id'];}return db[_0x3b43('0x30')][_0x3b43('0x4e')]({'where':{'id':_0x46c625[_0x3b43('0x4d')]['id']}})[_0x3b43('0x29')](handleEntityNotFound(_0x49c158,null))[_0x3b43('0x29')](saveUpdates(_0x46c625[_0x3b43('0x50')],null))['then'](respondWithResult(_0x49c158,null))[_0x3b43('0x4b')](handleError(_0x49c158,null));};exports[_0x3b43('0x28')]=function(_0x122fd1,_0x3689a1){return db[_0x3b43('0x30')][_0x3b43('0x4e')]({'where':{'id':_0x122fd1[_0x3b43('0x4d')]['id']}})[_0x3b43('0x29')](handleEntityNotFound(_0x3689a1,null))[_0x3b43('0x29')](removeEntity(_0x3689a1,null))[_0x3b43('0x4b')](handleError(_0x3689a1,null));};exports[_0x3b43('0x58')]=function(_0x394000,_0x510c4e){return db['MailQueue'][_0x3b43('0x58')]()[_0x3b43('0x29')](respondWithResult(_0x510c4e,null))[_0x3b43('0x4b')](handleError(_0x510c4e,null));};exports[_0x3b43('0x59')]=function(_0x20bfa,_0x380b29,_0x101e4f){var _0x158ecf={'raw':!![],'where':{}},_0x27ca11={},_0xba88bf;return db[_0x3b43('0x30')][_0x3b43('0x5a')]({'where':{'id':_0x20bfa[_0x3b43('0x4d')]['id']}})[_0x3b43('0x29')](handleEntityNotFound(_0x380b29,null))[_0x3b43('0x29')](function(_0x4ba41a){if(_0x4ba41a){_0xba88bf=_0x4ba41a[_0x3b43('0x2a')]({'plain':!![]});_0x27ca11[_0x3b43('0x34')]=_[_0x3b43('0x36')](db[_0x3b43('0x5b')][_0x3b43('0x31')]);_0x27ca11[_0x3b43('0x37')]=_[_0x3b43('0x36')](_0x20bfa[_0x3b43('0x37')]);_0x27ca11[_0x3b43('0x38')]=_['intersection'](_0x27ca11['model'],_0x27ca11[_0x3b43('0x37')]);_0x158ecf[_0x3b43('0x3b')]=_['intersection'](_0x27ca11[_0x3b43('0x34')],qs[_0x3b43('0x3a')](_0x20bfa['query'][_0x3b43('0x3a')]));_0x158ecf[_0x3b43('0x3b')]=_0x158ecf['attributes'][_0x3b43('0x3c')]?_0x158ecf[_0x3b43('0x3b')]:_0x27ca11[_0x3b43('0x34')];if(!_0x20bfa[_0x3b43('0x37')]['hasOwnProperty'](_0x3b43('0x3e'))){_0x158ecf[_0x3b43('0x21')]=qs[_0x3b43('0x21')](_0x20bfa['query'][_0x3b43('0x21')]);_0x158ecf[_0x3b43('0x20')]=qs[_0x3b43('0x20')](_0x20bfa[_0x3b43('0x37')][_0x3b43('0x20')]);}_0x158ecf[_0x3b43('0x3f')]=qs[_0x3b43('0x40')](_0x20bfa[_0x3b43('0x37')]['sort']);_0x158ecf[_0x3b43('0x41')]=qs[_0x3b43('0x38')](_[_0x3b43('0x42')](_0x20bfa['query'],_0x27ca11['filters']));_0x158ecf['where']['MailQueueId']=_0x4ba41a['id'];if(_0x20bfa['query'][_0x3b43('0x43')]){_0x158ecf[_0x3b43('0x41')]=_[_0x3b43('0x45')](_0x158ecf[_0x3b43('0x41')],{'$or':_[_0x3b43('0x35')](_0x158ecf['attributes'],function(_0x5f1828){var _0x317c03={};_0x317c03[_0x5f1828]={'$like':'%'+_0x20bfa[_0x3b43('0x37')][_0x3b43('0x43')]+'%'};return _0x317c03;})});}_0x158ecf=_[_0x3b43('0x45')]({},_0x158ecf,_0x20bfa[_0x3b43('0x46')]);return db['UserMailQueue'][_0x3b43('0x49')](_0x158ecf);}})['then'](function(_0x27c238){if(_0x27c238){return db[_0x3b43('0x5c')]['findAndCountAll']({'where':{'id':_[_0x3b43('0x35')](_0x27c238,'UserId'),'role':'agent'},'attributes':['id',_0x3b43('0x2e'),_0x3b43('0x5d'),_0x3b43('0x5e'),_0x3b43('0x5f')]});}})['then'](function(_0x4582bb){if(_0x4582bb){return{'count':_0x4582bb[_0x3b43('0x23')],'rows':_['map'](_0x4582bb[_0x3b43('0x4a')],function(_0xf7075f){return{'membername':_0xf7075f[_0x3b43('0x2e')],'UserId':_0xf7075f['id'],'queue_name':_0xba88bf['name'],'MailQueueId':_0xba88bf['id'],'interface':util['format'](_0x3b43('0x60'),_0x3b43('0x61'),_0xf7075f[_0x3b43('0x2e')]),'penalty':0x0,'paused':_0xf7075f['mailPause'],'createdAt':_0xf7075f[_0x3b43('0x5f')],'updatedAt':_0xf7075f[_0x3b43('0x5e')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x380b29,_0x158ecf))[_0x3b43('0x4b')](handleError(_0x380b29,null));};exports[_0x3b43('0x62')]=function(_0x12519c,_0x333fe0,_0xe99a70){var _0x10eb5a={};var _0x4f6c4f={};var _0x4446b4;var _0x16b6b8;return db[_0x3b43('0x30')][_0x3b43('0x5a')]({'where':{'id':_0x12519c[_0x3b43('0x4d')]['id']}})[_0x3b43('0x29')](handleEntityNotFound(_0x333fe0,null))[_0x3b43('0x29')](function(_0x2100c3){if(_0x2100c3){_0x4446b4=_0x2100c3;_0x4f6c4f[_0x3b43('0x34')]=_['keys'](db[_0x3b43('0x63')][_0x3b43('0x31')]);_0x4f6c4f[_0x3b43('0x37')]=_[_0x3b43('0x36')](_0x12519c[_0x3b43('0x37')]);_0x4f6c4f[_0x3b43('0x38')]=_[_0x3b43('0x39')](_0x4f6c4f[_0x3b43('0x34')],_0x4f6c4f[_0x3b43('0x37')]);_0x10eb5a[_0x3b43('0x3b')]=_[_0x3b43('0x39')](_0x4f6c4f['model'],qs['fields'](_0x12519c[_0x3b43('0x37')]['fields']));_0x10eb5a['attributes']=_0x10eb5a[_0x3b43('0x3b')][_0x3b43('0x3c')]?_0x10eb5a[_0x3b43('0x3b')]:_0x4f6c4f['model'];_0x10eb5a[_0x3b43('0x3f')]=qs['sort'](_0x12519c[_0x3b43('0x37')]['sort']);_0x10eb5a[_0x3b43('0x41')]=qs[_0x3b43('0x38')](_[_0x3b43('0x42')](_0x12519c['query'],_0x4f6c4f[_0x3b43('0x38')]));if(_0x12519c['query']['filter']){_0x10eb5a[_0x3b43('0x41')]=_['merge'](_0x10eb5a['where'],{'$or':_[_0x3b43('0x35')](_0x10eb5a[_0x3b43('0x3b')],function(_0x71face){var _0x689761={};_0x689761[_0x71face]={'$like':'%'+_0x12519c[_0x3b43('0x37')][_0x3b43('0x43')]+'%'};return _0x689761;})});}_0x10eb5a=_['merge']({},_0x10eb5a,_0x12519c[_0x3b43('0x46')]);return _0x4446b4[_0x3b43('0x62')](_0x10eb5a);}})[_0x3b43('0x29')](function(_0x17c145){if(_0x17c145){_0x16b6b8=_0x17c145[_0x3b43('0x3c')];if(!_0x12519c[_0x3b43('0x37')]['hasOwnProperty'](_0x3b43('0x3e'))){_0x10eb5a[_0x3b43('0x21')]=qs[_0x3b43('0x21')](_0x12519c[_0x3b43('0x37')][_0x3b43('0x21')]);_0x10eb5a[_0x3b43('0x20')]=qs['offset'](_0x12519c[_0x3b43('0x37')][_0x3b43('0x20')]);}return _0x4446b4[_0x3b43('0x62')](_0x10eb5a);}})[_0x3b43('0x29')](function(_0x2fe639){if(_0x2fe639){return _0x2fe639?{'count':_0x16b6b8,'rows':_0x2fe639}:null;}})[_0x3b43('0x29')](respondWithResult(_0x333fe0,null))[_0x3b43('0x4b')](handleError(_0x333fe0,null));};exports['addTeams']=function(_0x581846,_0x54fa10,_0x10e734){var _0x1cbc80=_0x581846[_0x3b43('0x50')][_0x3b43('0x64')];return db['Team'][_0x3b43('0x49')]({'where':{'id':_0x1cbc80},'attributes':['id'],'include':[{'model':db['User'],'as':_0x3b43('0x65'),'attributes':['id',_0x3b43('0x2e'),_0x3b43('0x66'),_0x3b43('0x67'),_0x3b43('0x68')],'raw':!![]}]})['then'](function(_0x4af98b){if(_0x4af98b){var _0x4dd8c3=_[_0x3b43('0x69')](_0x4af98b,function(_0xb07325){var _0x449a25=_0xb07325[_0x3b43('0x2a')]({'plain':!![]});return _0x449a25['Agents'];});return db['MailQueue']['find']({'where':{'id':_0x581846['params']['id']}})[_0x3b43('0x29')](function(_0x52b0b3){return db[_0x3b43('0x6a')]['transaction'](function(_0x474c12){return _0x52b0b3[_0x3b43('0x6b')](_0x1cbc80,{'transaction':_0x474c12})[_0x3b43('0x29')](function(){return BPromise[_0x3b43('0x6c')](_0x4dd8c3,function(_0x34f3e0){return db[_0x3b43('0x5b')][_0x3b43('0x6d')]({'where':{'UserId':_0x34f3e0['id'],'MailQueueId':_0x581846[_0x3b43('0x4d')]['id']},'transaction':_0x474c12});});})[_0x3b43('0x29')](function(){_0x4dd8c3['forEach'](function(_0x1528ed){socket['emit'](_0x3b43('0x6e'),{'UserId':_0x1528ed['id'],'MailQueueId':_0x52b0b3['id']});});});});});}})[_0x3b43('0x29')](respondWithStatusCode(_0x54fa10,null))[_0x3b43('0x4b')](handleError(_0x54fa10,null));};exports[_0x3b43('0x6f')]=function(_0x5aaae6,_0x39a19a,_0x22b6b4){return db[_0x3b43('0x63')][_0x3b43('0x49')]({'where':{'id':_0x5aaae6['query'][_0x3b43('0x64')]},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x3b43('0x29')](handleEntityNotFound(_0x39a19a,null))[_0x3b43('0x29')](function(_0x7ea51b){var _0x3cff80=_[_0x3b43('0x35')](_0x7ea51b,'id');var _0x58d760=[];var _0x5c4381=[];var _0x49676b=squel[_0x3b43('0x70')]();_0x49676b[_0x3b43('0x71')]('tq.TeamId')['from'](_0x3b43('0x72'),'tq')[_0x3b43('0x73')](_0x3b43('0x74'),'ut',_0x3b43('0x75'))[_0x3b43('0x41')](_0x3b43('0x76'),_0x5aaae6[_0x3b43('0x4d')]['id']);for(var _0x2065d3=0x0;_0x2065d3<_0x7ea51b[_0x3b43('0x3c')];_0x2065d3+=0x1){let _0x535a91=_0x7ea51b[_0x2065d3];for(var _0x8430c8=0x0;_0x8430c8<_0x535a91['Agents']['length'];_0x8430c8+=0x1){let _0x27ee48=_0x535a91[_0x3b43('0x65')][_0x8430c8];var _0x595b19=_0x49676b[_0x3b43('0x77')]();_0x595b19['where'](_0x3b43('0x78'),_0x27ee48['id']);_0x5c4381['push'](db[_0x3b43('0x6a')][_0x3b43('0x37')](_0x595b19['toString'](),{'type':db[_0x3b43('0x6a')]['QueryTypes'][_0x3b43('0x79')]})[_0x3b43('0x29')](function(_0x13a11e){if(_0x13a11e[_0x3b43('0x3c')]===0x1){return _0x27ee48['id'];}else{var _0x451938=_[_0x3b43('0x7a')](_[_0x3b43('0x35')](_0x13a11e,_0x3b43('0x7b')),function(_0x4c082e){return _[_0x3b43('0x7c')](_0x3cff80,_0x4c082e);});if(_0x451938){return _0x27ee48['id'];}}}));}}return BPromise[_0x3b43('0x7d')](_0x5c4381)[_0x3b43('0x29')](function(_0x19fccb){_0x58d760=_(_0x58d760)['union'](_0x19fccb)[_0x3b43('0x7e')]()[_0x3b43('0x7f')]();return db[_0x3b43('0x30')][_0x3b43('0x4e')]({'where':{'id':_0x5aaae6['params']['id']}})[_0x3b43('0x29')](function(_0x471d98){return db[_0x3b43('0x6a')][_0x3b43('0x80')](function(_0x54c3a3){return _0x471d98[_0x3b43('0x6f')](_0x5aaae6['query']['ids'],{'transaction':_0x54c3a3})[_0x3b43('0x29')](function(){if(!_[_0x3b43('0x81')](_0x58d760)){return _0x471d98['removeAgents'](_0x58d760,{'transaction':_0x54c3a3});}})['then'](function(){_0x58d760['forEach'](function(_0x21bf5c){socket[_0x3b43('0x82')](_0x3b43('0x83'),{'UserId':_0x21bf5c,'MailQueueId':_0x471d98['id']});});});});});});})[_0x3b43('0x29')](respondWithStatusCode(_0x39a19a,null))[_0x3b43('0x4b')](handleError(_0x39a19a,null));};exports[_0x3b43('0x84')]=function(_0x3f2f91,_0x31fd79,_0xba9535){return db[_0x3b43('0x30')][_0x3b43('0x4e')]({'where':{'id':_0x3f2f91['params']['id']}})['then'](handleEntityNotFound(_0x31fd79,null))['then'](function(_0x48bf11){if(_0x48bf11){return _0x48bf11[_0x3b43('0x84')](_0x3f2f91[_0x3b43('0x50')][_0x3b43('0x64')],_[_0x3b43('0x85')](_0x3f2f91['body'],[_0x3b43('0x64'),'id'])||{})[_0x3b43('0x86')](function(_0x2900ba){for(var _0x4dc4a7=0x0;_0x4dc4a7<_0x3f2f91['body']['ids']['length'];_0x4dc4a7+=0x1){socket[_0x3b43('0x82')](_0x3b43('0x6e'),{'UserId':Number(_0x3f2f91[_0x3b43('0x50')]['ids'][_0x4dc4a7]),'MailQueueId':Number(_0x3f2f91[_0x3b43('0x4d')]['id'])});}return _0x2900ba;});}})[_0x3b43('0x29')](respondWithResult(_0x31fd79,null))[_0x3b43('0x4b')](handleError(_0x31fd79,null));};exports[_0x3b43('0x87')]=function(_0x1da09f,_0x2941bb,_0xf1c037){return db[_0x3b43('0x30')]['find']({'where':{'id':_0x1da09f[_0x3b43('0x4d')]['id']}})[_0x3b43('0x29')](handleEntityNotFound(_0x2941bb,null))[_0x3b43('0x29')](function(_0x3e875d){if(_0x3e875d){return _0x3e875d['removeAgents'](_0x1da09f[_0x3b43('0x37')][_0x3b43('0x64')])[_0x3b43('0x29')](function(){if(_[_0x3b43('0x88')](_0x1da09f[_0x3b43('0x37')]['ids'])){for(var _0x24d59f=0x0;_0x24d59f<_0x1da09f[_0x3b43('0x37')][_0x3b43('0x64')][_0x3b43('0x3c')];_0x24d59f+=0x1){socket[_0x3b43('0x82')](_0x3b43('0x83'),{'UserId':Number(_0x1da09f['query'][_0x3b43('0x64')][_0x24d59f]),'MailQueueId':Number(_0x1da09f['params']['id'])});}}else{socket['emit']('userMailQueue:remove',{'UserId':Number(_0x1da09f[_0x3b43('0x37')][_0x3b43('0x64')]),'MailQueueId':Number(_0x1da09f[_0x3b43('0x4d')]['id'])});}});}})[_0x3b43('0x29')](respondWithStatusCode(_0x2941bb,null))[_0x3b43('0x4b')](handleError(_0x2941bb,null));};exports[_0x3b43('0x89')]=function(_0x29136d,_0x4d5465,_0x2bae06){var _0x44cad8={};var _0x2fb413={};var _0x3ee558;var _0x217d0b;return db[_0x3b43('0x30')]['findOne']({'where':{'id':_0x29136d[_0x3b43('0x4d')]['id']}})['then'](handleEntityNotFound(_0x4d5465,null))[_0x3b43('0x29')](function(_0x79c5f5){if(_0x79c5f5){_0x3ee558=_0x79c5f5;_0x2fb413['model']=_[_0x3b43('0x36')](db[_0x3b43('0x5c')][_0x3b43('0x31')]);_0x2fb413['query']=_[_0x3b43('0x36')](_0x29136d[_0x3b43('0x37')]);_0x2fb413[_0x3b43('0x38')]=_[_0x3b43('0x39')](_0x2fb413[_0x3b43('0x34')],_0x2fb413[_0x3b43('0x37')]);_0x44cad8[_0x3b43('0x3b')]=_[_0x3b43('0x39')](_0x2fb413[_0x3b43('0x34')],qs[_0x3b43('0x3a')](_0x29136d[_0x3b43('0x37')][_0x3b43('0x3a')]));_0x44cad8[_0x3b43('0x3b')]=_0x44cad8[_0x3b43('0x3b')][_0x3b43('0x3c')]?_0x44cad8[_0x3b43('0x3b')]:_0x2fb413[_0x3b43('0x34')];_0x44cad8[_0x3b43('0x3f')]=qs[_0x3b43('0x40')](_0x29136d[_0x3b43('0x37')][_0x3b43('0x40')]);_0x44cad8[_0x3b43('0x41')]=qs[_0x3b43('0x38')](_[_0x3b43('0x42')](_0x29136d[_0x3b43('0x37')],_0x2fb413[_0x3b43('0x38')]));if(_0x29136d[_0x3b43('0x37')]['filter']){_0x44cad8['where']=_[_0x3b43('0x45')](_0x44cad8['where'],{'$or':_[_0x3b43('0x35')](_0x44cad8[_0x3b43('0x3b')],function(_0x23b116){var _0x4ad2f0={};_0x4ad2f0[_0x23b116]={'$like':'%'+_0x29136d[_0x3b43('0x37')][_0x3b43('0x43')]+'%'};return _0x4ad2f0;})});}_0x44cad8=_['merge']({},_0x44cad8,_0x29136d[_0x3b43('0x46')]);return _0x3ee558['getAgents'](_0x44cad8);}})[_0x3b43('0x29')](function(_0x188ae7){if(_0x188ae7){_0x217d0b=_0x188ae7['length'];if(!_0x29136d[_0x3b43('0x37')][_0x3b43('0x3d')](_0x3b43('0x3e'))){_0x44cad8[_0x3b43('0x21')]=qs[_0x3b43('0x21')](_0x29136d[_0x3b43('0x37')]['limit']);_0x44cad8[_0x3b43('0x20')]=qs[_0x3b43('0x20')](_0x29136d['query'][_0x3b43('0x20')]);}return _0x3ee558[_0x3b43('0x89')](_0x44cad8);}})['then'](function(_0x4f98c3){if(_0x4f98c3){return _0x4f98c3?{'count':_0x217d0b,'rows':_0x4f98c3}:null;}})[_0x3b43('0x29')](respondWithResult(_0x4d5465,null))['catch'](handleError(_0x4d5465,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x436e=['hasOwnProperty','hook','../../mysqldb','MailQueue','setMaxListeners','save','update','emit'];(function(_0xb9c3c0,_0x173f28){var _0x5b5cc2=function(_0x79e4f9){while(--_0x79e4f9){_0xb9c3c0['push'](_0xb9c3c0['shift']());}};_0x5b5cc2(++_0x173f28);}(_0x436e,0x1ba));var _0xe436=function(_0x2ddd52,_0x4e3b17){_0x2ddd52=_0x2ddd52-0x0;var _0x4bb4ec=_0x436e[_0x2ddd52];return _0x4bb4ec;};'use strict';var EventEmitter=require('events');var MailQueue=require(_0xe436('0x0'))['db'][_0xe436('0x1')];var MailQueueEvents=new EventEmitter();MailQueueEvents[_0xe436('0x2')](0x0);var events={'afterCreate':_0xe436('0x3'),'afterUpdate':_0xe436('0x4'),'afterDestroy':'remove'};function emitEvent(_0x52b236){return function(_0x1d57a1,_0x4c8df5,_0x2c3bbd){MailQueueEvents[_0xe436('0x5')](_0x52b236+':'+_0x1d57a1['id'],_0x1d57a1);MailQueueEvents[_0xe436('0x5')](_0x52b236,_0x1d57a1);_0x2c3bbd(null);};}for(var e in events){if(events[_0xe436('0x6')](e)){var event=events[e];MailQueue[_0xe436('0x7')](e,emitEvent(event));}}module['exports']=MailQueueEvents;
\ No newline at end of file
+var _0xa6fd=['setMaxListeners','save','emit','hasOwnProperty','hook','exports','events','MailQueue'];(function(_0x1f647d,_0x517668){var _0x3de573=function(_0x1cc9c9){while(--_0x1cc9c9){_0x1f647d['push'](_0x1f647d['shift']());}};_0x3de573(++_0x517668);}(_0xa6fd,0x136));var _0xda6f=function(_0x4d2993,_0x1c9473){_0x4d2993=_0x4d2993-0x0;var _0x427374=_0xa6fd[_0x4d2993];return _0x427374;};'use strict';var EventEmitter=require(_0xda6f('0x0'));var MailQueue=require('../../mysqldb')['db'][_0xda6f('0x1')];var MailQueueEvents=new EventEmitter();MailQueueEvents[_0xda6f('0x2')](0x0);var events={'afterCreate':_0xda6f('0x3'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x19be7e){return function(_0x40dc37,_0x3a34a2,_0xc39dd){MailQueueEvents[_0xda6f('0x4')](_0x19be7e+':'+_0x40dc37['id'],_0x40dc37);MailQueueEvents[_0xda6f('0x4')](_0x19be7e,_0x40dc37);_0xc39dd(null);};}for(var e in events){if(events[_0xda6f('0x5')](e)){var event=events[e];MailQueue[_0xda6f('0x6')](e,emitEvent(event));}}module[_0xda6f('0x7')]=MailQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a83=['path','../../config/environment','define','MailQueue','mail_queues','lodash','util','../../config/logger','api','moment','request-promise'];(function(_0x164760,_0x5874b0){var _0x8b91b2=function(_0x40d20a){while(--_0x40d20a){_0x164760['push'](_0x164760['shift']());}};_0x8b91b2(++_0x5874b0);}(_0x1a83,0x1e9));var _0x31a8=function(_0x4f3f1f,_0x2d2884){_0x4f3f1f=_0x4f3f1f-0x0;var _0x214f72=_0x1a83[_0x4f3f1f];return _0x214f72;};'use strict';var _=require(_0x31a8('0x0'));var util=require(_0x31a8('0x1'));var logger=require(_0x31a8('0x2'))(_0x31a8('0x3'));var moment=require(_0x31a8('0x4'));var BPromise=require('bluebird');var rp=require(_0x31a8('0x5'));var fs=require('fs');var path=require(_0x31a8('0x6'));var rimraf=require('rimraf');var config=require(_0x31a8('0x7'));var attributes=require('./mailQueue.attributes');module['exports']=function(_0x3b29e5,_0x8dc425){return _0x3b29e5[_0x31a8('0x8')](_0x31a8('0x9'),attributes,{'tableName':_0x31a8('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6640=['bluebird','request-promise','path','../../config/environment','./mailQueue.attributes','define','lodash','util','../../config/logger','moment'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x6640,0x1c8));var _0x0664=function(_0x466e57,_0x21b819){_0x466e57=_0x466e57-0x0;var _0x34df42=_0x6640[_0x466e57];return _0x34df42;};'use strict';var _=require(_0x0664('0x0'));var util=require(_0x0664('0x1'));var logger=require(_0x0664('0x2'))('api');var moment=require(_0x0664('0x3'));var BPromise=require(_0x0664('0x4'));var rp=require(_0x0664('0x5'));var fs=require('fs');var path=require(_0x0664('0x6'));var rimraf=require('rimraf');var config=require(_0x0664('0x7'));var attributes=require(_0x0664('0x8'));module['exports']=function(_0x2e1ba1,_0x13b8ea){return _0x2e1ba1[_0x0664('0x9')]('MailQueue',attributes,{'tableName':'mail_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e4d=['model','GetMailQueue','catch','ShowMailQueue','find','raw','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','redis','defaults','socket.io-emitter','./mailQueue.socket','register','then','info','MailQueue,\x20%s,\x20%s','debug','MailQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','MailQueue','findAll','options','where','attributes','include','map'];(function(_0x1a8f86,_0x5ed9c4){var _0x20d876=function(_0x596e1b){while(--_0x596e1b){_0x1a8f86['push'](_0x1a8f86['shift']());}};_0x20d876(++_0x5ed9c4);}(_0x4e4d,0xba));var _0xd4e4=function(_0x377a6e,_0x59b99d){_0x377a6e=_0x377a6e-0x0;var _0x37f751=_0x4e4d[_0x377a6e];return _0x37f751;};'use strict';var _=require('lodash');var util=require(_0xd4e4('0x0'));var moment=require(_0xd4e4('0x1'));var BPromise=require(_0xd4e4('0x2'));var rs=require(_0xd4e4('0x3'));var fs=require('fs');var Redis=require(_0xd4e4('0x4'));var db=require(_0xd4e4('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xd4e4('0x6'))(_0xd4e4('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});config[_0xd4e4('0x8')]=_[_0xd4e4('0x9')](config[_0xd4e4('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0xd4e4('0xa'))(new Redis(config[_0xd4e4('0x8')]));require(_0xd4e4('0xb'))[_0xd4e4('0xc')](socket);function respondWithRpcPromise(_0x33c200,_0x54e2a1,_0x5b8f70){return new BPromise(function(_0x1fc670,_0x4bca4e){return client['request'](_0x33c200,_0x5b8f70)[_0xd4e4('0xd')](function(_0x1a07b9){logger[_0xd4e4('0xe')](_0xd4e4('0xf'),_0x54e2a1,'request\x20sent');logger[_0xd4e4('0x10')](_0xd4e4('0x11'),_0x54e2a1,_0xd4e4('0x12'),JSON[_0xd4e4('0x13')](_0x1a07b9));if(_0x1a07b9[_0xd4e4('0x14')]){if(_0x1a07b9[_0xd4e4('0x14')]['code']===0x1f4){logger[_0xd4e4('0x14')](_0xd4e4('0xf'),_0x54e2a1,_0x1a07b9['error'][_0xd4e4('0x15')]);return _0x4bca4e(_0x1a07b9['error'][_0xd4e4('0x15')]);}logger[_0xd4e4('0x14')](_0xd4e4('0xf'),_0x54e2a1,_0x1a07b9[_0xd4e4('0x14')][_0xd4e4('0x15')]);return _0x1fc670(_0x1a07b9[_0xd4e4('0x14')][_0xd4e4('0x15')]);}else{logger['info'](_0xd4e4('0xf'),_0x54e2a1,_0xd4e4('0x12'));_0x1fc670(_0x1a07b9[_0xd4e4('0x16')][_0xd4e4('0x15')]);}})['catch'](function(_0x53f34b){logger[_0xd4e4('0x14')](_0xd4e4('0xf'),_0x54e2a1,_0x53f34b);_0x4bca4e(_0x53f34b);});});}exports['GetMailQueue']=function(_0x5e253d){var _0x48b1ba=this;return new Promise(function(_0xba83ca,_0x35d79f){return db[_0xd4e4('0x17')][_0xd4e4('0x18')]({'raw':_0x5e253d['options']?_0x5e253d[_0xd4e4('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x5e253d[_0xd4e4('0x19')]?_0x5e253d[_0xd4e4('0x19')][_0xd4e4('0x1a')]||null:null,'attributes':_0x5e253d[_0xd4e4('0x19')]?_0x5e253d[_0xd4e4('0x19')][_0xd4e4('0x1b')]||null:null,'limit':_0x5e253d[_0xd4e4('0x19')]?_0x5e253d[_0xd4e4('0x19')]['limit']||null:null,'include':_0x5e253d['options']?_0x5e253d[_0xd4e4('0x19')][_0xd4e4('0x1c')]?_[_0xd4e4('0x1d')](_0x5e253d[_0xd4e4('0x19')][_0xd4e4('0x1c')],function(_0x355721){return{'model':db[_0x355721[_0xd4e4('0x1e')]],'as':_0x355721['as'],'attributes':_0x355721[_0xd4e4('0x1b')],'include':_0x355721[_0xd4e4('0x1c')]?_[_0xd4e4('0x1d')](_0x355721['include'],function(_0x5dbf3f){return{'model':db[_0x5dbf3f[_0xd4e4('0x1e')]],'as':_0x5dbf3f['as'],'attributes':_0x5dbf3f[_0xd4e4('0x1b')],'include':_0x5dbf3f[_0xd4e4('0x1c')]?_[_0xd4e4('0x1d')](_0x5dbf3f[_0xd4e4('0x1c')],function(_0x9b5d82){return{'model':db[_0x9b5d82[_0xd4e4('0x1e')]],'as':_0x9b5d82['as'],'attributes':_0x9b5d82['attributes']};}):[]};}):[]};}):[]:[]})[_0xd4e4('0xd')](function(_0x448c0b){logger['info'](_0xd4e4('0x1f'),_0x5e253d);logger[_0xd4e4('0x10')](_0xd4e4('0x1f'),_0x5e253d,JSON[_0xd4e4('0x13')](_0x448c0b));_0xba83ca(_0x448c0b);})[_0xd4e4('0x20')](function(_0x4cf032){logger['error'](_0xd4e4('0x1f'),_0x4cf032['message'],_0x5e253d);_0x35d79f(_0x48b1ba[_0xd4e4('0x14')](0x1f4,_0x4cf032[_0xd4e4('0x15')]));});});};exports[_0xd4e4('0x21')]=function(_0x119b1c){var _0x54ab98=this;return new Promise(function(_0x2c3fbf,_0x43bd84){return db[_0xd4e4('0x17')][_0xd4e4('0x22')]({'raw':_0x119b1c[_0xd4e4('0x19')]?_0x119b1c[_0xd4e4('0x19')][_0xd4e4('0x23')]===undefined?!![]:![]:!![],'where':_0x119b1c[_0xd4e4('0x19')]?_0x119b1c[_0xd4e4('0x19')][_0xd4e4('0x1a')]||null:null,'attributes':_0x119b1c[_0xd4e4('0x19')]?_0x119b1c['options'][_0xd4e4('0x1b')]||null:null,'include':_0x119b1c[_0xd4e4('0x19')]?_0x119b1c['options'][_0xd4e4('0x1c')]?_[_0xd4e4('0x1d')](_0x119b1c[_0xd4e4('0x19')][_0xd4e4('0x1c')],function(_0x3167f0){return{'model':db[_0x3167f0[_0xd4e4('0x1e')]],'as':_0x3167f0['as'],'attributes':_0x3167f0[_0xd4e4('0x1b')],'include':_0x3167f0[_0xd4e4('0x1c')]?_[_0xd4e4('0x1d')](_0x3167f0[_0xd4e4('0x1c')],function(_0x1a1803){return{'model':db[_0x1a1803[_0xd4e4('0x1e')]],'as':_0x1a1803['as'],'attributes':_0x1a1803[_0xd4e4('0x1b')],'include':_0x1a1803[_0xd4e4('0x1c')]?_[_0xd4e4('0x1d')](_0x1a1803[_0xd4e4('0x1c')],function(_0x4dbeca){return{'model':db[_0x4dbeca['model']],'as':_0x4dbeca['as'],'attributes':_0x4dbeca[_0xd4e4('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xd4e4('0xd')](function(_0x290cf2){logger[_0xd4e4('0xe')](_0xd4e4('0x21'),_0x119b1c);logger[_0xd4e4('0x10')](_0xd4e4('0x21'),_0x119b1c,JSON[_0xd4e4('0x13')](_0x290cf2));_0x2c3fbf(_0x290cf2);})[_0xd4e4('0x20')](function(_0x8d25a){logger[_0xd4e4('0x14')](_0xd4e4('0x21'),_0x8d25a['message'],_0x119b1c);_0x43bd84(_0x54ab98['error'](0x1f4,_0x8d25a[_0xd4e4('0x15')]));});});};
\ No newline at end of file
+var _0xf164=['include','map','model','info','ShowMailQueue','find','then','lodash','util','moment','bluebird','../../config/utils','rpc','../../config/environment','jayson/promise','client','redis','defaults','./mailQueue.socket','request','MailQueue,\x20%s,\x20%s','debug','MailQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','GetMailQueue','MailQueue','options','raw','where','attributes','limit'];(function(_0x4e95e0,_0x43495c){var _0x17952a=function(_0x321c66){while(--_0x321c66){_0x4e95e0['push'](_0x4e95e0['shift']());}};_0x17952a(++_0x43495c);}(_0xf164,0xe5));var _0x4f16=function(_0x1f09fa,_0x3265ca){_0x1f09fa=_0x1f09fa-0x0;var _0x197c8d=_0xf164[_0x1f09fa];return _0x197c8d;};'use strict';var _=require(_0x4f16('0x0'));var util=require(_0x4f16('0x1'));var moment=require(_0x4f16('0x2'));var BPromise=require(_0x4f16('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x4f16('0x4'));var logger=require('../../config/logger')(_0x4f16('0x5'));var config=require(_0x4f16('0x6'));var jayson=require(_0x4f16('0x7'));var client=jayson[_0x4f16('0x8')]['http']({'port':0x232a});config[_0x4f16('0x9')]=_[_0x4f16('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x4f16('0xb'))['register'](socket);function respondWithRpcPromise(_0x5cced1,_0x1ef7cc,_0x35a410){return new BPromise(function(_0x109a22,_0x4ce871){return client[_0x4f16('0xc')](_0x5cced1,_0x35a410)['then'](function(_0x387398){logger['info'](_0x4f16('0xd'),_0x1ef7cc,'request\x20sent');logger[_0x4f16('0xe')](_0x4f16('0xf'),_0x1ef7cc,'request\x20sent',JSON[_0x4f16('0x10')](_0x387398));if(_0x387398[_0x4f16('0x11')]){if(_0x387398[_0x4f16('0x11')][_0x4f16('0x12')]===0x1f4){logger['error'](_0x4f16('0xd'),_0x1ef7cc,_0x387398[_0x4f16('0x11')]['message']);return _0x4ce871(_0x387398['error']['message']);}logger[_0x4f16('0x11')](_0x4f16('0xd'),_0x1ef7cc,_0x387398[_0x4f16('0x11')][_0x4f16('0x13')]);return _0x109a22(_0x387398[_0x4f16('0x11')][_0x4f16('0x13')]);}else{logger['info'](_0x4f16('0xd'),_0x1ef7cc,_0x4f16('0x14'));_0x109a22(_0x387398[_0x4f16('0x15')][_0x4f16('0x13')]);}})[_0x4f16('0x16')](function(_0xd12ee0){logger[_0x4f16('0x11')](_0x4f16('0xd'),_0x1ef7cc,_0xd12ee0);_0x4ce871(_0xd12ee0);});});}exports[_0x4f16('0x17')]=function(_0x132ed2){var _0x215132=this;return new Promise(function(_0x5b554d,_0x42ec63){return db[_0x4f16('0x18')]['findAll']({'raw':_0x132ed2['options']?_0x132ed2[_0x4f16('0x19')][_0x4f16('0x1a')]===undefined?!![]:![]:!![],'where':_0x132ed2[_0x4f16('0x19')]?_0x132ed2[_0x4f16('0x19')][_0x4f16('0x1b')]||null:null,'attributes':_0x132ed2['options']?_0x132ed2[_0x4f16('0x19')][_0x4f16('0x1c')]||null:null,'limit':_0x132ed2[_0x4f16('0x19')]?_0x132ed2[_0x4f16('0x19')][_0x4f16('0x1d')]||null:null,'include':_0x132ed2[_0x4f16('0x19')]?_0x132ed2[_0x4f16('0x19')][_0x4f16('0x1e')]?_[_0x4f16('0x1f')](_0x132ed2[_0x4f16('0x19')]['include'],function(_0x3ca7e7){return{'model':db[_0x3ca7e7['model']],'as':_0x3ca7e7['as'],'attributes':_0x3ca7e7[_0x4f16('0x1c')],'include':_0x3ca7e7[_0x4f16('0x1e')]?_[_0x4f16('0x1f')](_0x3ca7e7[_0x4f16('0x1e')],function(_0x3fa11f){return{'model':db[_0x3fa11f[_0x4f16('0x20')]],'as':_0x3fa11f['as'],'attributes':_0x3fa11f[_0x4f16('0x1c')],'include':_0x3fa11f[_0x4f16('0x1e')]?_[_0x4f16('0x1f')](_0x3fa11f[_0x4f16('0x1e')],function(_0x2e7405){return{'model':db[_0x2e7405['model']],'as':_0x2e7405['as'],'attributes':_0x2e7405[_0x4f16('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5eaa8e){logger[_0x4f16('0x21')](_0x4f16('0x17'),_0x132ed2);logger[_0x4f16('0xe')]('GetMailQueue',_0x132ed2,JSON['stringify'](_0x5eaa8e));_0x5b554d(_0x5eaa8e);})['catch'](function(_0x5ad7c5){logger[_0x4f16('0x11')](_0x4f16('0x17'),_0x5ad7c5[_0x4f16('0x13')],_0x132ed2);_0x42ec63(_0x215132[_0x4f16('0x11')](0x1f4,_0x5ad7c5[_0x4f16('0x13')]));});});};exports[_0x4f16('0x22')]=function(_0x1b1485){var _0x4151ca=this;return new Promise(function(_0x52db00,_0x1426ed){return db[_0x4f16('0x18')][_0x4f16('0x23')]({'raw':_0x1b1485['options']?_0x1b1485[_0x4f16('0x19')][_0x4f16('0x1a')]===undefined?!![]:![]:!![],'where':_0x1b1485[_0x4f16('0x19')]?_0x1b1485[_0x4f16('0x19')][_0x4f16('0x1b')]||null:null,'attributes':_0x1b1485['options']?_0x1b1485[_0x4f16('0x19')]['attributes']||null:null,'include':_0x1b1485[_0x4f16('0x19')]?_0x1b1485[_0x4f16('0x19')][_0x4f16('0x1e')]?_[_0x4f16('0x1f')](_0x1b1485['options'][_0x4f16('0x1e')],function(_0x43e817){return{'model':db[_0x43e817[_0x4f16('0x20')]],'as':_0x43e817['as'],'attributes':_0x43e817[_0x4f16('0x1c')],'include':_0x43e817[_0x4f16('0x1e')]?_[_0x4f16('0x1f')](_0x43e817[_0x4f16('0x1e')],function(_0x423451){return{'model':db[_0x423451[_0x4f16('0x20')]],'as':_0x423451['as'],'attributes':_0x423451['attributes'],'include':_0x423451[_0x4f16('0x1e')]?_[_0x4f16('0x1f')](_0x423451[_0x4f16('0x1e')],function(_0x49dc3c){return{'model':db[_0x49dc3c[_0x4f16('0x20')]],'as':_0x49dc3c['as'],'attributes':_0x49dc3c[_0x4f16('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x4f16('0x24')](function(_0xb48d6e){logger[_0x4f16('0x21')]('ShowMailQueue',_0x1b1485);logger[_0x4f16('0xe')](_0x4f16('0x22'),_0x1b1485,JSON[_0x4f16('0x10')](_0xb48d6e));_0x52db00(_0xb48d6e);})['catch'](function(_0x475702){logger['error'](_0x4f16('0x22'),_0x475702[_0x4f16('0x13')],_0x1b1485);_0x1426ed(_0x4151ca[_0x4f16('0x11')](0x1f4,_0x475702[_0x4f16('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8322=['remove','update','emit','length','mailQueue:','./mailQueue.events','save'];(function(_0x34a245,_0x419543){var _0x5cf164=function(_0x371744){while(--_0x371744){_0x34a245['push'](_0x34a245['shift']());}};_0x5cf164(++_0x419543);}(_0x8322,0x186));var _0x2832=function(_0x5d88c0,_0x5d7d83){_0x5d88c0=_0x5d88c0-0x0;var _0x1b40f0=_0x8322[_0x5d88c0];return _0x1b40f0;};'use strict';var MailQueueEvents=require(_0x2832('0x0'));var events=[_0x2832('0x1'),_0x2832('0x2'),_0x2832('0x3')];function createListener(_0xf3a928,_0x4494e7){return function(_0x37db9c){_0x4494e7[_0x2832('0x4')](_0xf3a928,_0x37db9c);};}function removeListener(_0x3c9253,_0x26f1af){return function(){MailQueueEvents['removeListener'](_0x3c9253,_0x26f1af);};}exports['register']=function(_0x3583d5){for(var _0x1d10f2=0x0,_0xab2c39=events[_0x2832('0x5')];_0x1d10f2<_0xab2c39;_0x1d10f2++){var _0x1488df=events[_0x1d10f2];var _0x4b0ca8=createListener(_0x2832('0x6')+_0x1488df,_0x3583d5);MailQueueEvents['on'](_0x1488df,_0x4b0ca8);}};
\ No newline at end of file
+var _0xf632=['mailQueue:','./mailQueue.events','save','remove','update','removeListener','register','length'];(function(_0x4f9478,_0x134ef3){var _0x3464c9=function(_0x5bcd8b){while(--_0x5bcd8b){_0x4f9478['push'](_0x4f9478['shift']());}};_0x3464c9(++_0x134ef3);}(_0xf632,0xf9));var _0x2f63=function(_0x9acd2e,_0x40ed3f){_0x9acd2e=_0x9acd2e-0x0;var _0x34d312=_0xf632[_0x9acd2e];return _0x34d312;};'use strict';var MailQueueEvents=require(_0x2f63('0x0'));var events=[_0x2f63('0x1'),_0x2f63('0x2'),_0x2f63('0x3')];function createListener(_0x4cbcb5,_0x55ef98){return function(_0x2ecde8){_0x55ef98['emit'](_0x4cbcb5,_0x2ecde8);};}function removeListener(_0x2bac6a,_0x1d7596){return function(){MailQueueEvents[_0x2f63('0x4')](_0x2bac6a,_0x1d7596);};}exports[_0x2f63('0x5')]=function(_0x5df351){for(var _0x2ad5c1=0x0,_0x2cb728=events[_0x2f63('0x6')];_0x2ad5c1<_0x2cb728;_0x2ad5c1++){var _0xd2ddee=events[_0x2ad5c1];var _0x503399=createListener(_0x2f63('0x7')+_0xd2ddee,_0x5df351);MailQueueEvents['on'](_0xd2ddee,_0x503399);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc9d3=['../../config/environment','./mailQueueReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','create','update','delete','destroy','exports','multer','util','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x5e5c32,_0x266417){var _0x538ef0=function(_0x4a5b15){while(--_0x4a5b15){_0x5e5c32['push'](_0x5e5c32['shift']());}};_0x538ef0(++_0x266417);}(_0xc9d3,0x1b1));var _0x3c9d=function(_0x435a4e,_0x2842d7){_0x435a4e=_0x435a4e-0x0;var _0x4e1f26=_0xc9d3[_0x435a4e];return _0x4e1f26;};'use strict';var multer=require(_0x3c9d('0x0'));var util=require(_0x3c9d('0x1'));var path=require('path');var timeout=require(_0x3c9d('0x2'));var express=require(_0x3c9d('0x3'));var router=express['Router']();var fs_extra=require(_0x3c9d('0x4'));var auth=require(_0x3c9d('0x5'));var interaction=require(_0x3c9d('0x6'));var config=require(_0x3c9d('0x7'));var controller=require(_0x3c9d('0x8'));router[_0x3c9d('0x9')]('/',auth[_0x3c9d('0xa')](),controller[_0x3c9d('0xb')]);router['get'](_0x3c9d('0xc'),auth[_0x3c9d('0xa')](),controller[_0x3c9d('0xd')]);router[_0x3c9d('0x9')](_0x3c9d('0xe'),auth[_0x3c9d('0xa')](),controller[_0x3c9d('0xf')]);router[_0x3c9d('0x10')]('/',auth[_0x3c9d('0xa')](),controller[_0x3c9d('0x11')]);router['put'](_0x3c9d('0xe'),auth[_0x3c9d('0xa')](),controller[_0x3c9d('0x12')]);router[_0x3c9d('0x13')](_0x3c9d('0xe'),auth[_0x3c9d('0xa')](),controller[_0x3c9d('0x14')]);module[_0x3c9d('0x15')]=router;
\ No newline at end of file
+var _0xcdd6=['describe','/:id','show','post','create','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailQueueReport.controller','get','isAuthenticated','index','/describe'];(function(_0x40ac5e,_0x2de228){var _0x2839d6=function(_0x123d47){while(--_0x123d47){_0x40ac5e['push'](_0x40ac5e['shift']());}};_0x2839d6(++_0x2de228);}(_0xcdd6,0x14b));var _0x6cdd=function(_0x297a09,_0x30fa46){_0x297a09=_0x297a09-0x0;var _0x3493cc=_0xcdd6[_0x297a09];return _0x3493cc;};'use strict';var multer=require(_0x6cdd('0x0'));var util=require(_0x6cdd('0x1'));var path=require(_0x6cdd('0x2'));var timeout=require(_0x6cdd('0x3'));var express=require('express');var router=express[_0x6cdd('0x4')]();var fs_extra=require(_0x6cdd('0x5'));var auth=require(_0x6cdd('0x6'));var interaction=require(_0x6cdd('0x7'));var config=require(_0x6cdd('0x8'));var controller=require(_0x6cdd('0x9'));router[_0x6cdd('0xa')]('/',auth[_0x6cdd('0xb')](),controller[_0x6cdd('0xc')]);router['get'](_0x6cdd('0xd'),auth[_0x6cdd('0xb')](),controller[_0x6cdd('0xe')]);router[_0x6cdd('0xa')](_0x6cdd('0xf'),auth[_0x6cdd('0xb')](),controller[_0x6cdd('0x10')]);router[_0x6cdd('0x11')]('/',auth[_0x6cdd('0xb')](),controller[_0x6cdd('0x12')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0x6cdd('0x13')]);router[_0x6cdd('0x14')](_0x6cdd('0xf'),auth[_0x6cdd('0xb')](),controller[_0x6cdd('0x15')]);module[_0x6cdd('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc558=['moment','sequelize','exports','STRING','DATE'];(function(_0x49b976,_0x3c0e84){var _0x5b8001=function(_0x6382b7){while(--_0x6382b7){_0x49b976['push'](_0x49b976['shift']());}};_0x5b8001(++_0x3c0e84);}(_0xc558,0x140));var _0x8c55=function(_0x3e1089,_0x26e731){_0x3e1089=_0x3e1089-0x0;var _0x231d7e=_0xc558[_0x3e1089];return _0x231d7e;};'use strict';var moment=require(_0x8c55('0x0'));var Sequelize=require(_0x8c55('0x1'));module[_0x8c55('0x2')]={'uniqueid':{'type':Sequelize[_0x8c55('0x3')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x8c55('0x4')]},'leaveAt':{'type':Sequelize[_0x8c55('0x4')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x8c55('0x4')]},'reason':{'type':Sequelize[_0x8c55('0x3')]}};
\ No newline at end of file
+var _0xdf36=['DATE','moment','sequelize','STRING'];(function(_0x2165b0,_0x49e90d){var _0x4b1505=function(_0xbea1c0){while(--_0xbea1c0){_0x2165b0['push'](_0x2165b0['shift']());}};_0x4b1505(++_0x49e90d);}(_0xdf36,0x1d1));var _0x6df3=function(_0x3b49bd,_0xb29217){_0x3b49bd=_0x3b49bd-0x0;var _0x1174dc=_0xdf36[_0x3b49bd];return _0x1174dc;};'use strict';var moment=require(_0x6df3('0x0'));var Sequelize=require(_0x6df3('0x1'));module['exports']={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0x6df3('0x2')]},'joinAt':{'type':Sequelize[_0x6df3('0x3')]},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize[_0x6df3('0x3')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize[_0x6df3('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf2f=['sort','pick','where','merge','VIRTUAL','filter','options','MailQueueReport','includeAll','include','rows','catch','params','find','create','body','destroy','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','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','status','json','offset','undefined','count','limit','set','apply','reject','save','update','then','sendStatus','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','nolimit','order'];(function(_0xf24612,_0x288e25){var _0x3388ee=function(_0x97ed23){while(--_0x97ed23){_0xf24612['push'](_0xf24612['shift']());}};_0x3388ee(++_0x288e25);}(_0xcf2f,0xa7));var _0xfcf2=function(_0xb32841,_0x2f2f3d){_0xb32841=_0xb32841-0x0;var _0x572599=_0xcf2f[_0xb32841];return _0x572599;};'use strict';var emlformat=require(_0xfcf2('0x0'));var rimraf=require(_0xfcf2('0x1'));var zipdir=require(_0xfcf2('0x2'));var jsonpatch=require(_0xfcf2('0x3'));var rp=require(_0xfcf2('0x4'));var moment=require('moment');var BPromise=require(_0xfcf2('0x5'));var Mustache=require(_0xfcf2('0x6'));var util=require(_0xfcf2('0x7'));var path=require(_0xfcf2('0x8'));var sox=require(_0xfcf2('0x9'));var csv=require(_0xfcf2('0xa'));var ejs=require(_0xfcf2('0xb'));var fs=require('fs');var fs_extra=require(_0xfcf2('0xc'));var _=require(_0xfcf2('0xd'));var squel=require(_0xfcf2('0xe'));var crypto=require(_0xfcf2('0xf'));var jsforce=require(_0xfcf2('0x10'));var deskjs=require(_0xfcf2('0x11'));var toCsv=require(_0xfcf2('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xfcf2('0x12'));var qs=require(_0xfcf2('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xfcf2('0x14'));var logger=require(_0xfcf2('0x15'))(_0xfcf2('0x16'));var utils=require(_0xfcf2('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xfcf2('0x18'))['db'];function respondWithStatusCode(_0x1ba610,_0x175ac9){_0x175ac9=_0x175ac9||0xcc;return function(_0x1be8cc){if(_0x1be8cc){return _0x1ba610['sendStatus'](_0x175ac9);}return _0x1ba610[_0xfcf2('0x19')](_0x175ac9)['end']();};}function respondWithResult(_0x5b414a,_0x5dc04b){_0x5dc04b=_0x5dc04b||0xc8;return function(_0xc87ff4){if(_0xc87ff4){return _0x5b414a['status'](_0x5dc04b)[_0xfcf2('0x1a')](_0xc87ff4);}};}function respondWithFilteredResult(_0x1febf8,_0x245f9a){return function(_0x21f7d1){if(_0x21f7d1){var _0x315b2f=typeof _0x245f9a[_0xfcf2('0x1b')]===_0xfcf2('0x1c')&&typeof _0x245f9a['limit']===_0xfcf2('0x1c');var _0x213125=_0x21f7d1[_0xfcf2('0x1d')];var _0x581d78=_0x315b2f?0x0:_0x245f9a[_0xfcf2('0x1b')];var _0x1b3c89=_0x315b2f?_0x21f7d1[_0xfcf2('0x1d')]:_0x245f9a[_0xfcf2('0x1b')]+_0x245f9a[_0xfcf2('0x1e')];var _0x53c406;if(_0x1b3c89>=_0x213125){_0x1b3c89=_0x213125;_0x53c406=0xc8;}else{_0x53c406=0xce;}_0x1febf8[_0xfcf2('0x19')](_0x53c406);return _0x1febf8[_0xfcf2('0x1f')]('Content-Range',_0x581d78+'-'+_0x1b3c89+'/'+_0x213125)[_0xfcf2('0x1a')](_0x21f7d1);}return null;};}function patchUpdates(_0x23c079){return function(_0x206738){try{jsonpatch[_0xfcf2('0x20')](_0x206738,_0x23c079,!![]);}catch(_0x51e0b7){return BPromise[_0xfcf2('0x21')](_0x51e0b7);}return _0x206738[_0xfcf2('0x22')]();};}function saveUpdates(_0x422c5a,_0x1eeebd){return function(_0x5afab5){if(_0x5afab5){return _0x5afab5[_0xfcf2('0x23')](_0x422c5a)[_0xfcf2('0x24')](function(_0x232f6f){return _0x232f6f;});}return null;};}function removeEntity(_0x584e76,_0x26641a){return function(_0x151aa8){if(_0x151aa8){return _0x151aa8['destroy']()[_0xfcf2('0x24')](function(){_0x584e76[_0xfcf2('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1e6f14,_0x26bfcc){return function(_0x1f0f07){if(!_0x1f0f07){_0x1e6f14[_0xfcf2('0x25')](0x194);}return _0x1f0f07;};}function handleError(_0x5bb384,_0x1deca3){_0x1deca3=_0x1deca3||0x1f4;return function(_0x448222){logger[_0xfcf2('0x26')](_0x448222[_0xfcf2('0x27')]);if(_0x448222[_0xfcf2('0x28')]){delete _0x448222[_0xfcf2('0x28')];}_0x5bb384[_0xfcf2('0x19')](_0x1deca3)[_0xfcf2('0x29')](_0x448222);};}exports[_0xfcf2('0x2a')]=function(_0x56f839,_0x4c2935){var _0x695f31={},_0x878504={},_0x3308c3={'count':0x0,'rows':[]};var _0x532db6=_[_0xfcf2('0x2b')](db['MailQueueReport'][_0xfcf2('0x2c')],function(_0x26651e){return{'name':_0x26651e[_0xfcf2('0x2d')],'type':_0x26651e[_0xfcf2('0x2e')][_0xfcf2('0x2f')]};});_0x878504[_0xfcf2('0x30')]=_[_0xfcf2('0x2b')](_0x532db6,'name');_0x878504['query']=_[_0xfcf2('0x31')](_0x56f839[_0xfcf2('0x32')]);_0x878504[_0xfcf2('0x33')]=_[_0xfcf2('0x34')](_0x878504['model'],_0x878504['query']);_0x695f31[_0xfcf2('0x35')]=_['intersection'](_0x878504[_0xfcf2('0x30')],qs[_0xfcf2('0x36')](_0x56f839['query'][_0xfcf2('0x36')]));_0x695f31[_0xfcf2('0x35')]=_0x695f31[_0xfcf2('0x35')][_0xfcf2('0x37')]?_0x695f31[_0xfcf2('0x35')]:_0x878504[_0xfcf2('0x30')];if(!_0x56f839[_0xfcf2('0x32')]['hasOwnProperty'](_0xfcf2('0x38'))){_0x695f31[_0xfcf2('0x1e')]=qs['limit'](_0x56f839[_0xfcf2('0x32')][_0xfcf2('0x1e')]);_0x695f31['offset']=qs[_0xfcf2('0x1b')](_0x56f839[_0xfcf2('0x32')]['offset']);}_0x695f31[_0xfcf2('0x39')]=qs[_0xfcf2('0x3a')](_0x56f839[_0xfcf2('0x32')][_0xfcf2('0x3a')]);_0x695f31['where']=qs[_0xfcf2('0x33')](_[_0xfcf2('0x3b')](_0x56f839[_0xfcf2('0x32')],_0x878504[_0xfcf2('0x33')]),_0x532db6);if(_0x56f839[_0xfcf2('0x32')]['filter']){_0x695f31[_0xfcf2('0x3c')]=_[_0xfcf2('0x3d')](_0x695f31[_0xfcf2('0x3c')],{'$or':_[_0xfcf2('0x2b')](_0x532db6,function(_0x41cac2){if(_0x41cac2['type']!==_0xfcf2('0x3e')){var _0x4dfc61={};_0x4dfc61[_0x41cac2[_0xfcf2('0x28')]]={'$like':'%'+_0x56f839[_0xfcf2('0x32')][_0xfcf2('0x3f')]+'%'};return _0x4dfc61;}})});}_0x695f31=_[_0xfcf2('0x3d')]({},_0x695f31,_0x56f839[_0xfcf2('0x40')]);var _0x59b404={'where':_0x695f31[_0xfcf2('0x3c')]};return db[_0xfcf2('0x41')][_0xfcf2('0x1d')](_0x59b404)['then'](function(_0x1e8e71){_0x3308c3[_0xfcf2('0x1d')]=_0x1e8e71;if(_0x56f839[_0xfcf2('0x32')][_0xfcf2('0x42')]){_0x695f31[_0xfcf2('0x43')]=[{'all':!![]}];}return db[_0xfcf2('0x41')]['findAll'](_0x695f31);})['then'](function(_0x526c42){_0x3308c3[_0xfcf2('0x44')]=_0x526c42;return _0x3308c3;})[_0xfcf2('0x24')](respondWithFilteredResult(_0x4c2935,_0x695f31))[_0xfcf2('0x45')](handleError(_0x4c2935,null));};exports['show']=function(_0x559aea,_0x5efb5c){var _0x3fb288={'raw':!![],'where':{'id':_0x559aea[_0xfcf2('0x46')]['id']}},_0xab0747={};_0xab0747[_0xfcf2('0x30')]=_[_0xfcf2('0x31')](db[_0xfcf2('0x41')][_0xfcf2('0x2c')]);_0xab0747[_0xfcf2('0x32')]=_[_0xfcf2('0x31')](_0x559aea[_0xfcf2('0x32')]);_0xab0747[_0xfcf2('0x33')]=_['intersection'](_0xab0747['model'],_0xab0747[_0xfcf2('0x32')]);_0x3fb288[_0xfcf2('0x35')]=_[_0xfcf2('0x34')](_0xab0747[_0xfcf2('0x30')],qs[_0xfcf2('0x36')](_0x559aea[_0xfcf2('0x32')][_0xfcf2('0x36')]));_0x3fb288[_0xfcf2('0x35')]=_0x3fb288[_0xfcf2('0x35')][_0xfcf2('0x37')]?_0x3fb288[_0xfcf2('0x35')]:_0xab0747[_0xfcf2('0x30')];if(_0x559aea[_0xfcf2('0x32')][_0xfcf2('0x42')]){_0x3fb288[_0xfcf2('0x43')]=[{'all':!![]}];}_0x3fb288=_[_0xfcf2('0x3d')]({},_0x3fb288,_0x559aea[_0xfcf2('0x40')]);return db['MailQueueReport'][_0xfcf2('0x47')](_0x3fb288)[_0xfcf2('0x24')](handleEntityNotFound(_0x5efb5c,null))['then'](respondWithResult(_0x5efb5c,null))[_0xfcf2('0x45')](handleError(_0x5efb5c,null));};exports['create']=function(_0x12eef4,_0xe85e89){return db[_0xfcf2('0x41')][_0xfcf2('0x48')](_0x12eef4['body'],{})['then'](respondWithResult(_0xe85e89,0xc9))['catch'](handleError(_0xe85e89,null));};exports[_0xfcf2('0x23')]=function(_0x37d4bb,_0x20fcab){if(_0x37d4bb[_0xfcf2('0x49')]['id']){delete _0x37d4bb['body']['id'];}return db[_0xfcf2('0x41')][_0xfcf2('0x47')]({'where':{'id':_0x37d4bb[_0xfcf2('0x46')]['id']}})['then'](handleEntityNotFound(_0x20fcab,null))[_0xfcf2('0x24')](saveUpdates(_0x37d4bb[_0xfcf2('0x49')],null))[_0xfcf2('0x24')](respondWithResult(_0x20fcab,null))[_0xfcf2('0x45')](handleError(_0x20fcab,null));};exports[_0xfcf2('0x4a')]=function(_0x4af270,_0x4c14d){return db[_0xfcf2('0x41')][_0xfcf2('0x47')]({'where':{'id':_0x4af270[_0xfcf2('0x46')]['id']}})[_0xfcf2('0x24')](handleEntityNotFound(_0x4c14d,null))[_0xfcf2('0x24')](removeEntity(_0x4c14d,null))['catch'](handleError(_0x4c14d,null));};exports['describe']=function(_0x4aa02f,_0x37c8b4){return db[_0xfcf2('0x41')]['describe']()['then'](respondWithResult(_0x37c8b4,null))[_0xfcf2('0x45')](handleError(_0x37c8b4,null));};
\ No newline at end of file
+var _0x627e=['limit','count','set','reject','save','then','destroy','error','stack','name','index','MailQueueReport','fieldName','key','map','query','keys','filters','intersection','model','attributes','hasOwnProperty','nolimit','sort','where','pick','type','VIRTUAL','filter','merge','options','rows','catch','params','fields','length','includeAll','include','find','body','update','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined'];(function(_0xd52d07,_0x240814){var _0x1c15c7=function(_0x1d6dd6){while(--_0x1d6dd6){_0xd52d07['push'](_0xd52d07['shift']());}};_0x1c15c7(++_0x240814);}(_0x627e,0x14a));var _0xe627=function(_0x197bec,_0x40217b){_0x197bec=_0x197bec-0x0;var _0x41e591=_0x627e[_0x197bec];return _0x41e591;};'use strict';var emlformat=require(_0xe627('0x0'));var rimraf=require(_0xe627('0x1'));var zipdir=require(_0xe627('0x2'));var jsonpatch=require(_0xe627('0x3'));var rp=require(_0xe627('0x4'));var moment=require('moment');var BPromise=require(_0xe627('0x5'));var Mustache=require(_0xe627('0x6'));var util=require(_0xe627('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xe627('0x8'));var fs=require('fs');var fs_extra=require(_0xe627('0x9'));var _=require(_0xe627('0xa'));var squel=require(_0xe627('0xb'));var crypto=require(_0xe627('0xc'));var jsforce=require(_0xe627('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xe627('0xe'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xe627('0xf'));var authService=require(_0xe627('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe627('0x11'));var logger=require(_0xe627('0x12'))(_0xe627('0x13'));var utils=require(_0xe627('0x14'));var config=require(_0xe627('0x15'));var licenseUtil=require(_0xe627('0x16'));var db=require(_0xe627('0x17'))['db'];function respondWithStatusCode(_0x3919be,_0x1922f5){_0x1922f5=_0x1922f5||0xcc;return function(_0x582190){if(_0x582190){return _0x3919be[_0xe627('0x18')](_0x1922f5);}return _0x3919be[_0xe627('0x19')](_0x1922f5)[_0xe627('0x1a')]();};}function respondWithResult(_0x4be370,_0x42dd1c){_0x42dd1c=_0x42dd1c||0xc8;return function(_0x1e2e62){if(_0x1e2e62){return _0x4be370[_0xe627('0x19')](_0x42dd1c)[_0xe627('0x1b')](_0x1e2e62);}};}function respondWithFilteredResult(_0x62896f,_0x6a9a15){return function(_0x271325){if(_0x271325){var _0x54720a=typeof _0x6a9a15[_0xe627('0x1c')]===_0xe627('0x1d')&&typeof _0x6a9a15[_0xe627('0x1e')]===_0xe627('0x1d');var _0x403982=_0x271325[_0xe627('0x1f')];var _0x56559b=_0x54720a?0x0:_0x6a9a15[_0xe627('0x1c')];var _0x538b22=_0x54720a?_0x271325[_0xe627('0x1f')]:_0x6a9a15['offset']+_0x6a9a15[_0xe627('0x1e')];var _0x565213;if(_0x538b22>=_0x403982){_0x538b22=_0x403982;_0x565213=0xc8;}else{_0x565213=0xce;}_0x62896f['status'](_0x565213);return _0x62896f[_0xe627('0x20')]('Content-Range',_0x56559b+'-'+_0x538b22+'/'+_0x403982)[_0xe627('0x1b')](_0x271325);}return null;};}function patchUpdates(_0x3391ce){return function(_0x4adde7){try{jsonpatch['apply'](_0x4adde7,_0x3391ce,!![]);}catch(_0x4ecfa6){return BPromise[_0xe627('0x21')](_0x4ecfa6);}return _0x4adde7[_0xe627('0x22')]();};}function saveUpdates(_0x4e3338,_0x708a8a){return function(_0x33cb27){if(_0x33cb27){return _0x33cb27['update'](_0x4e3338)[_0xe627('0x23')](function(_0x29221b){return _0x29221b;});}return null;};}function removeEntity(_0x52d492,_0x42f3d1){return function(_0x19adbc){if(_0x19adbc){return _0x19adbc[_0xe627('0x24')]()['then'](function(){_0x52d492[_0xe627('0x19')](0xcc)[_0xe627('0x1a')]();});}};}function handleEntityNotFound(_0x1a5081,_0x3ddd8d){return function(_0x4b9ff9){if(!_0x4b9ff9){_0x1a5081[_0xe627('0x18')](0x194);}return _0x4b9ff9;};}function handleError(_0x1fe192,_0x1635a0){_0x1635a0=_0x1635a0||0x1f4;return function(_0x29eb8e){logger[_0xe627('0x25')](_0x29eb8e[_0xe627('0x26')]);if(_0x29eb8e[_0xe627('0x27')]){delete _0x29eb8e[_0xe627('0x27')];}_0x1fe192[_0xe627('0x19')](_0x1635a0)['send'](_0x29eb8e);};}exports[_0xe627('0x28')]=function(_0x5aeba1,_0x5cd7c8){var _0x1e0bd7={},_0xdf63c8={},_0x5799a3={'count':0x0,'rows':[]};var _0x39c23f=_['map'](db[_0xe627('0x29')]['rawAttributes'],function(_0x262253){return{'name':_0x262253[_0xe627('0x2a')],'type':_0x262253['type'][_0xe627('0x2b')]};});_0xdf63c8['model']=_[_0xe627('0x2c')](_0x39c23f,_0xe627('0x27'));_0xdf63c8[_0xe627('0x2d')]=_[_0xe627('0x2e')](_0x5aeba1[_0xe627('0x2d')]);_0xdf63c8[_0xe627('0x2f')]=_[_0xe627('0x30')](_0xdf63c8[_0xe627('0x31')],_0xdf63c8[_0xe627('0x2d')]);_0x1e0bd7[_0xe627('0x32')]=_[_0xe627('0x30')](_0xdf63c8['model'],qs['fields'](_0x5aeba1[_0xe627('0x2d')]['fields']));_0x1e0bd7[_0xe627('0x32')]=_0x1e0bd7['attributes']['length']?_0x1e0bd7[_0xe627('0x32')]:_0xdf63c8['model'];if(!_0x5aeba1['query'][_0xe627('0x33')](_0xe627('0x34'))){_0x1e0bd7[_0xe627('0x1e')]=qs['limit'](_0x5aeba1['query']['limit']);_0x1e0bd7[_0xe627('0x1c')]=qs['offset'](_0x5aeba1[_0xe627('0x2d')][_0xe627('0x1c')]);}_0x1e0bd7['order']=qs[_0xe627('0x35')](_0x5aeba1[_0xe627('0x2d')]['sort']);_0x1e0bd7[_0xe627('0x36')]=qs[_0xe627('0x2f')](_[_0xe627('0x37')](_0x5aeba1[_0xe627('0x2d')],_0xdf63c8[_0xe627('0x2f')]),_0x39c23f);if(_0x5aeba1[_0xe627('0x2d')]['filter']){_0x1e0bd7[_0xe627('0x36')]=_['merge'](_0x1e0bd7[_0xe627('0x36')],{'$or':_['map'](_0x39c23f,function(_0xe90eda){if(_0xe90eda[_0xe627('0x38')]!==_0xe627('0x39')){var _0x21a533={};_0x21a533[_0xe90eda[_0xe627('0x27')]]={'$like':'%'+_0x5aeba1[_0xe627('0x2d')][_0xe627('0x3a')]+'%'};return _0x21a533;}})});}_0x1e0bd7=_[_0xe627('0x3b')]({},_0x1e0bd7,_0x5aeba1[_0xe627('0x3c')]);var _0x415a25={'where':_0x1e0bd7[_0xe627('0x36')]};return db[_0xe627('0x29')][_0xe627('0x1f')](_0x415a25)['then'](function(_0x4ddff5){_0x5799a3['count']=_0x4ddff5;if(_0x5aeba1['query']['includeAll']){_0x1e0bd7['include']=[{'all':!![]}];}return db[_0xe627('0x29')]['findAll'](_0x1e0bd7);})[_0xe627('0x23')](function(_0x59cd6a){_0x5799a3[_0xe627('0x3d')]=_0x59cd6a;return _0x5799a3;})[_0xe627('0x23')](respondWithFilteredResult(_0x5cd7c8,_0x1e0bd7))[_0xe627('0x3e')](handleError(_0x5cd7c8,null));};exports['show']=function(_0x58e110,_0x26064c){var _0x5f3374={'raw':!![],'where':{'id':_0x58e110[_0xe627('0x3f')]['id']}},_0x5e352e={};_0x5e352e['model']=_[_0xe627('0x2e')](db['MailQueueReport']['rawAttributes']);_0x5e352e[_0xe627('0x2d')]=_[_0xe627('0x2e')](_0x58e110[_0xe627('0x2d')]);_0x5e352e['filters']=_['intersection'](_0x5e352e[_0xe627('0x31')],_0x5e352e['query']);_0x5f3374['attributes']=_[_0xe627('0x30')](_0x5e352e[_0xe627('0x31')],qs[_0xe627('0x40')](_0x58e110[_0xe627('0x2d')][_0xe627('0x40')]));_0x5f3374[_0xe627('0x32')]=_0x5f3374['attributes'][_0xe627('0x41')]?_0x5f3374[_0xe627('0x32')]:_0x5e352e['model'];if(_0x58e110['query'][_0xe627('0x42')]){_0x5f3374[_0xe627('0x43')]=[{'all':!![]}];}_0x5f3374=_[_0xe627('0x3b')]({},_0x5f3374,_0x58e110[_0xe627('0x3c')]);return db[_0xe627('0x29')][_0xe627('0x44')](_0x5f3374)[_0xe627('0x23')](handleEntityNotFound(_0x26064c,null))['then'](respondWithResult(_0x26064c,null))[_0xe627('0x3e')](handleError(_0x26064c,null));};exports['create']=function(_0x648456,_0xcd19f5){return db[_0xe627('0x29')]['create'](_0x648456[_0xe627('0x45')],{})['then'](respondWithResult(_0xcd19f5,0xc9))[_0xe627('0x3e')](handleError(_0xcd19f5,null));};exports[_0xe627('0x46')]=function(_0x375e05,_0x30e057){if(_0x375e05[_0xe627('0x45')]['id']){delete _0x375e05['body']['id'];}return db[_0xe627('0x29')][_0xe627('0x44')]({'where':{'id':_0x375e05[_0xe627('0x3f')]['id']}})[_0xe627('0x23')](handleEntityNotFound(_0x30e057,null))[_0xe627('0x23')](saveUpdates(_0x375e05[_0xe627('0x45')],null))[_0xe627('0x23')](respondWithResult(_0x30e057,null))[_0xe627('0x3e')](handleError(_0x30e057,null));};exports[_0xe627('0x24')]=function(_0x3824da,_0x550b74){return db[_0xe627('0x29')][_0xe627('0x44')]({'where':{'id':_0x3824da['params']['id']}})[_0xe627('0x23')](handleEntityNotFound(_0x550b74,null))[_0xe627('0x23')](removeEntity(_0x550b74,null))['catch'](handleError(_0x550b74,null));};exports[_0xe627('0x47')]=function(_0x3a827e,_0x542a4c){return db[_0xe627('0x29')][_0xe627('0x47')]()['then'](respondWithResult(_0x542a4c,null))[_0xe627('0x3e')](handleError(_0x542a4c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f6b=['path','rimraf','./mailQueueReport.attributes','exports','define','MailQueueReport','report_mail_queue','uniqueid','../../config/logger','api','moment'];(function(_0xd11782,_0x5dc961){var _0x393c92=function(_0x5c5629){while(--_0x5c5629){_0xd11782['push'](_0xd11782['shift']());}};_0x393c92(++_0x5dc961);}(_0x5f6b,0x81));var _0xb5f6=function(_0x3df0af,_0x12cc8d){_0x3df0af=_0x3df0af-0x0;var _0x46ea68=_0x5f6b[_0x3df0af];return _0x46ea68;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xb5f6('0x0'))(_0xb5f6('0x1'));var moment=require(_0xb5f6('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xb5f6('0x3'));var rimraf=require(_0xb5f6('0x4'));var config=require('../../config/environment');var attributes=require(_0xb5f6('0x5'));module[_0xb5f6('0x6')]=function(_0x56f55b,_0x587b9a){return _0x56f55b[_0xb5f6('0x7')](_0xb5f6('0x8'),attributes,{'tableName':_0xb5f6('0x9'),'paranoid':![],'indexes':[{'name':_0xb5f6('0xa'),'fields':[_0xb5f6('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x68aa=['moment','path','rimraf','../../config/environment','./mailQueueReport.attributes','exports','MailQueueReport','report_mail_queue','uniqueid','util'];(function(_0x3e13ac,_0x459047){var _0x2e7718=function(_0x10d96c){while(--_0x10d96c){_0x3e13ac['push'](_0x3e13ac['shift']());}};_0x2e7718(++_0x459047);}(_0x68aa,0x81));var _0xa68a=function(_0x553e2d,_0x271e98){_0x553e2d=_0x553e2d-0x0;var _0x1068ec=_0x68aa[_0x553e2d];return _0x1068ec;};'use strict';var _=require('lodash');var util=require(_0xa68a('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0xa68a('0x1'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xa68a('0x2'));var rimraf=require(_0xa68a('0x3'));var config=require(_0xa68a('0x4'));var attributes=require(_0xa68a('0x5'));module[_0xa68a('0x6')]=function(_0x2d1ede,_0x23a1f2){return _0x2d1ede['define'](_0xa68a('0x7'),attributes,{'tableName':_0xa68a('0x8'),'paranoid':![],'indexes':[{'name':_0xa68a('0x9'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb5=['MailQueueReport,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','CreateMailQueueReport','create','options','raw','debug','MailQueueReport','body','attributes','limit','UpdateMailQueueReport','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info'];(function(_0xa232d6,_0x51021f){var _0xe0af1e=function(_0xf9b450){while(--_0xf9b450){_0xa232d6['push'](_0xa232d6['shift']());}};_0xe0af1e(++_0x51021f);}(_0xadb5,0xad));var _0x5adb=function(_0x4a163d,_0x518b7d){_0x4a163d=_0x4a163d-0x0;var _0x3d5c7c=_0xadb5[_0x4a163d];return _0x3d5c7c;};'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']('MailQueueReport,\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);});});}exports[_0x5adb('0x15')]=function(_0x529b65){var _0x3fff62=this;return new Promise(function(_0x5de028,_0x1d9e86){return db['MailQueueReport'][_0x5adb('0x16')](_0x529b65['body'],{'raw':_0x529b65['options']?_0x529b65[_0x5adb('0x17')][_0x5adb('0x18')]===undefined?!![]:![]:!![]})[_0x5adb('0xb')](function(_0x1fd4a7){logger[_0x5adb('0xc')]('CreateMailQueueReport',_0x529b65);logger[_0x5adb('0x19')]('CreateMailQueueReport',_0x529b65,JSON['stringify'](_0x1fd4a7));_0x5de028(_0x1fd4a7);})[_0x5adb('0x14')](function(_0x379b33){logger[_0x5adb('0x10')](_0x5adb('0x15'),_0x379b33[_0x5adb('0x12')],_0x529b65);_0x1d9e86(_0x3fff62[_0x5adb('0x10')](0x1f4,_0x379b33[_0x5adb('0x12')]));});});};exports['UpdateMailQueueReport']=function(_0x4b1957){var _0x373cc3=this;return new Promise(function(_0x3220cd,_0x3839fb){return db[_0x5adb('0x1a')]['update'](_0x4b1957[_0x5adb('0x1b')],{'raw':_0x4b1957[_0x5adb('0x17')]?_0x4b1957['options'][_0x5adb('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4b1957[_0x5adb('0x17')]?_0x4b1957[_0x5adb('0x17')]['where']||null:null,'attributes':_0x4b1957[_0x5adb('0x17')]?_0x4b1957[_0x5adb('0x17')][_0x5adb('0x1c')]||null:null,'limit':_0x4b1957[_0x5adb('0x17')]?_0x4b1957[_0x5adb('0x17')][_0x5adb('0x1d')]||null:null})['then'](function(_0x49992e){logger['info'](_0x5adb('0x1e'),_0x4b1957);logger[_0x5adb('0x19')](_0x5adb('0x1e'),_0x4b1957,JSON[_0x5adb('0xf')](_0x49992e));_0x3220cd(_0x49992e);})[_0x5adb('0x14')](function(_0x4de310){logger[_0x5adb('0x10')](_0x5adb('0x1e'),_0x4de310[_0x5adb('0x12')],_0x4b1957);_0x3839fb(_0x373cc3[_0x5adb('0x10')](0x1f4,_0x4de310[_0x5adb('0x12')]));});});};
\ No newline at end of file
+var _0xadb5=['MailQueueReport,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','CreateMailQueueReport','create','options','raw','debug','MailQueueReport','body','attributes','limit','UpdateMailQueueReport','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info'];(function(_0x4aef25,_0x5bbf0c){var _0x21894b=function(_0x40c58f){while(--_0x40c58f){_0x4aef25['push'](_0x4aef25['shift']());}};_0x21894b(++_0x5bbf0c);}(_0xadb5,0xad));var _0x5adb=function(_0x18c0c2,_0x34f2ee){_0x18c0c2=_0x18c0c2-0x0;var _0x5f37d7=_0xadb5[_0x18c0c2];return _0x5f37d7;};'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']('MailQueueReport,\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);});});}exports[_0x5adb('0x15')]=function(_0x529b65){var _0x3fff62=this;return new Promise(function(_0x5de028,_0x1d9e86){return db['MailQueueReport'][_0x5adb('0x16')](_0x529b65['body'],{'raw':_0x529b65['options']?_0x529b65[_0x5adb('0x17')][_0x5adb('0x18')]===undefined?!![]:![]:!![]})[_0x5adb('0xb')](function(_0x1fd4a7){logger[_0x5adb('0xc')]('CreateMailQueueReport',_0x529b65);logger[_0x5adb('0x19')]('CreateMailQueueReport',_0x529b65,JSON['stringify'](_0x1fd4a7));_0x5de028(_0x1fd4a7);})[_0x5adb('0x14')](function(_0x379b33){logger[_0x5adb('0x10')](_0x5adb('0x15'),_0x379b33[_0x5adb('0x12')],_0x529b65);_0x1d9e86(_0x3fff62[_0x5adb('0x10')](0x1f4,_0x379b33[_0x5adb('0x12')]));});});};exports['UpdateMailQueueReport']=function(_0x4b1957){var _0x373cc3=this;return new Promise(function(_0x3220cd,_0x3839fb){return db[_0x5adb('0x1a')]['update'](_0x4b1957[_0x5adb('0x1b')],{'raw':_0x4b1957[_0x5adb('0x17')]?_0x4b1957['options'][_0x5adb('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4b1957[_0x5adb('0x17')]?_0x4b1957[_0x5adb('0x17')]['where']||null:null,'attributes':_0x4b1957[_0x5adb('0x17')]?_0x4b1957[_0x5adb('0x17')][_0x5adb('0x1c')]||null:null,'limit':_0x4b1957[_0x5adb('0x17')]?_0x4b1957[_0x5adb('0x17')][_0x5adb('0x1d')]||null:null})['then'](function(_0x49992e){logger['info'](_0x5adb('0x1e'),_0x4b1957);logger[_0x5adb('0x19')](_0x5adb('0x1e'),_0x4b1957,JSON[_0x5adb('0xf')](_0x49992e));_0x3220cd(_0x49992e);})[_0x5adb('0x14')](function(_0x4de310){logger[_0x5adb('0x10')](_0x5adb('0x1e'),_0x4de310[_0x5adb('0x12')],_0x4b1957);_0x3839fb(_0x373cc3[_0x5adb('0x10')](0x1f4,_0x4de310[_0x5adb('0x12')]));});});};
\ 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(_0x245efe,_0x5885a8){var _0x523c8a=function(_0x5533bd){while(--_0x5533bd){_0x245efe['push'](_0x245efe['shift']());}};_0x523c8a(++_0x5885a8);}(_0x70e0,0x17b));var _0x070e=function(_0x13ef65,_0x3e7b7a){_0x13ef65=_0x13ef65-0x0;var _0x3adb90=_0x70e0[_0x13ef65];return _0x3adb90;};'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 _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x20593e,_0x2f8bde){var _0x4f8546=function(_0x41cac5){while(--_0x41cac5){_0x20593e['push'](_0x20593e['shift']());}};_0x4f8546(++_0x2f8bde);}(_0x9c44,0x178));var _0x49c4=function(_0x36c5b0,_0x5001da){_0x36c5b0=_0x36c5b0-0x0;var _0xf19333=_0x9c44[_0x36c5b0];return _0xf19333;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e6c=['sequelize','exports','STRING','BOOLEAN','INTEGER'];(function(_0x3f7598,_0x212e37){var _0x51fb16=function(_0x4a5c0b){while(--_0x4a5c0b){_0x3f7598['push'](_0x3f7598['shift']());}};_0x51fb16(++_0x212e37);}(_0x6e6c,0xc3));var _0xc6e6=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x6e6c[_0x397e5f];return _0x5302b8;};'use strict';var Sequelize=require(_0xc6e6('0x0'));module[_0xc6e6('0x1')]={'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize[_0xc6e6('0x2')]},'authentication':{'type':Sequelize[_0xc6e6('0x3')],'defaultValue':!![]},'user':{'type':Sequelize['STRING']},'password':{'type':Sequelize['STRING']},'port':{'type':Sequelize[_0xc6e6('0x4')]},'tls':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'mailbox':{'type':Sequelize[_0xc6e6('0x2')],'defaultValue':'INBOX'},'connTimeout':{'type':Sequelize[_0xc6e6('0x4')],'defaultValue':0xa},'authTimeout':{'type':Sequelize[_0xc6e6('0x4')],'defaultValue':0x5},'service':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x3a25=['INBOX','sequelize','exports','STRING','BOOLEAN','INTEGER'];(function(_0xad372e,_0x2ffe1e){var _0x5a1c83=function(_0x5449d3){while(--_0x5449d3){_0xad372e['push'](_0xad372e['shift']());}};_0x5a1c83(++_0x2ffe1e);}(_0x3a25,0x15d));var _0x53a2=function(_0x19468b,_0xc3af){_0x19468b=_0x19468b-0x0;var _0x3a1a94=_0x3a25[_0x19468b];return _0x3a1a94;};'use strict';var Sequelize=require(_0x53a2('0x0'));module[_0x53a2('0x1')]={'description':{'type':Sequelize[_0x53a2('0x2')]},'host':{'type':Sequelize[_0x53a2('0x2')]},'authentication':{'type':Sequelize[_0x53a2('0x3')],'defaultValue':!![]},'user':{'type':Sequelize[_0x53a2('0x2')]},'password':{'type':Sequelize[_0x53a2('0x2')]},'port':{'type':Sequelize[_0x53a2('0x4')]},'tls':{'type':Sequelize[_0x53a2('0x3')],'defaultValue':!![]},'mailbox':{'type':Sequelize[_0x53a2('0x2')],'defaultValue':_0x53a2('0x5')},'connTimeout':{'type':Sequelize[_0x53a2('0x4')],'defaultValue':0xa},'authTimeout':{'type':Sequelize[_0x53a2('0x4')],'defaultValue':0x5},'service':{'type':Sequelize[_0x53a2('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c28=['../../config/environment','./mailServerIn.attributes','exports','MailServerIn','mail_servers_in','lodash','../../config/logger','api','bluebird','path','rimraf'];(function(_0xf95399,_0x3d7551){var _0x26d67c=function(_0x9fdb8a){while(--_0x9fdb8a){_0xf95399['push'](_0xf95399['shift']());}};_0x26d67c(++_0x3d7551);}(_0x0c28,0x10d));var _0x80c2=function(_0x586ac3,_0x5c5d2e){_0x586ac3=_0x586ac3-0x0;var _0x2bae78=_0x0c28[_0x586ac3];return _0x2bae78;};'use strict';var _=require(_0x80c2('0x0'));var util=require('util');var logger=require(_0x80c2('0x1'))(_0x80c2('0x2'));var moment=require('moment');var BPromise=require(_0x80c2('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x80c2('0x4'));var rimraf=require(_0x80c2('0x5'));var config=require(_0x80c2('0x6'));var attributes=require(_0x80c2('0x7'));module[_0x80c2('0x8')]=function(_0x336073,_0x6a40a6){return _0x336073['define'](_0x80c2('0x9'),attributes,{'tableName':_0x80c2('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfec2=['path','rimraf','./mailServerIn.attributes','exports','define','MailServerIn','lodash','util','api','bluebird','request-promise'];(function(_0x16a496,_0x2380e2){var _0x5d2c35=function(_0x26fd43){while(--_0x26fd43){_0x16a496['push'](_0x16a496['shift']());}};_0x5d2c35(++_0x2380e2);}(_0xfec2,0x15b));var _0x2fec=function(_0xb3f2fa,_0x1af46){_0xb3f2fa=_0xb3f2fa-0x0;var _0x4c52b4=_0xfec2[_0xb3f2fa];return _0x4c52b4;};'use strict';var _=require(_0x2fec('0x0'));var util=require(_0x2fec('0x1'));var logger=require('../../config/logger')(_0x2fec('0x2'));var moment=require('moment');var BPromise=require(_0x2fec('0x3'));var rp=require(_0x2fec('0x4'));var fs=require('fs');var path=require(_0x2fec('0x5'));var rimraf=require(_0x2fec('0x6'));var config=require('../../config/environment');var attributes=require(_0x2fec('0x7'));module[_0x2fec('0x8')]=function(_0x4ce3dc,_0x231c4d){return _0x4ce3dc[_0x2fec('0x9')](_0x2fec('0xa'),attributes,{'tableName':'mail_servers_in','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe7f3=['jayson/promise','http','request','then','MailServerIn,\x20%s,\x20%s','debug','MailServerIn,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','info','result','catch','GetMailServerIn','MailServerIn','findAll','options','raw','where','limit','include','map','model','attributes','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x1db7fb,_0x54396b){var _0x5dd4c7=function(_0x4ad82b){while(--_0x4ad82b){_0x1db7fb['push'](_0x1db7fb['shift']());}};_0x5dd4c7(++_0x54396b);}(_0xe7f3,0x16d));var _0x3e7f=function(_0x271b5e,_0x177cd3){_0x271b5e=_0x271b5e-0x0;var _0x44c776=_0xe7f3[_0x271b5e];return _0x44c776;};'use strict';var _=require(_0x3e7f('0x0'));var util=require('util');var moment=require(_0x3e7f('0x1'));var BPromise=require('bluebird');var rs=require(_0x3e7f('0x2'));var fs=require('fs');var Redis=require(_0x3e7f('0x3'));var db=require(_0x3e7f('0x4'))['db'];var utils=require(_0x3e7f('0x5'));var logger=require(_0x3e7f('0x6'))(_0x3e7f('0x7'));var config=require(_0x3e7f('0x8'));var jayson=require(_0x3e7f('0x9'));var client=jayson['client'][_0x3e7f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xed0364,_0x39beed,_0x3fc946){return new BPromise(function(_0x499854,_0x5934ad){return client[_0x3e7f('0xb')](_0xed0364,_0x3fc946)[_0x3e7f('0xc')](function(_0x488992){logger['info'](_0x3e7f('0xd'),_0x39beed,'request\x20sent');logger[_0x3e7f('0xe')](_0x3e7f('0xf'),_0x39beed,_0x3e7f('0x10'),JSON[_0x3e7f('0x11')](_0x488992));if(_0x488992['error']){if(_0x488992[_0x3e7f('0x12')]['code']===0x1f4){logger[_0x3e7f('0x12')](_0x3e7f('0xd'),_0x39beed,_0x488992['error'][_0x3e7f('0x13')]);return _0x5934ad(_0x488992[_0x3e7f('0x12')]['message']);}logger[_0x3e7f('0x12')](_0x3e7f('0xd'),_0x39beed,_0x488992['error'][_0x3e7f('0x13')]);return _0x499854(_0x488992['error'][_0x3e7f('0x13')]);}else{logger[_0x3e7f('0x14')](_0x3e7f('0xd'),_0x39beed,'request\x20sent');_0x499854(_0x488992[_0x3e7f('0x15')]['message']);}})[_0x3e7f('0x16')](function(_0x1dd505){logger[_0x3e7f('0x12')](_0x3e7f('0xd'),_0x39beed,_0x1dd505);_0x5934ad(_0x1dd505);});});}exports[_0x3e7f('0x17')]=function(_0x100d23){var _0x27588e=this;return new Promise(function(_0x48018e,_0x15730b){return db[_0x3e7f('0x18')][_0x3e7f('0x19')]({'raw':_0x100d23[_0x3e7f('0x1a')]?_0x100d23[_0x3e7f('0x1a')][_0x3e7f('0x1b')]===undefined?!![]:![]:!![],'where':_0x100d23['options']?_0x100d23[_0x3e7f('0x1a')][_0x3e7f('0x1c')]||null:null,'attributes':_0x100d23[_0x3e7f('0x1a')]?_0x100d23[_0x3e7f('0x1a')]['attributes']||null:null,'limit':_0x100d23['options']?_0x100d23[_0x3e7f('0x1a')][_0x3e7f('0x1d')]||null:null,'include':_0x100d23[_0x3e7f('0x1a')]?_0x100d23[_0x3e7f('0x1a')][_0x3e7f('0x1e')]?_[_0x3e7f('0x1f')](_0x100d23[_0x3e7f('0x1a')]['include'],function(_0x596338){return{'model':db[_0x596338[_0x3e7f('0x20')]],'as':_0x596338['as'],'attributes':_0x596338[_0x3e7f('0x21')],'include':_0x596338[_0x3e7f('0x1e')]?_['map'](_0x596338[_0x3e7f('0x1e')],function(_0xd44f7){return{'model':db[_0xd44f7[_0x3e7f('0x20')]],'as':_0xd44f7['as'],'attributes':_0xd44f7[_0x3e7f('0x21')],'include':_0xd44f7['include']?_[_0x3e7f('0x1f')](_0xd44f7[_0x3e7f('0x1e')],function(_0x3895d6){return{'model':db[_0x3895d6['model']],'as':_0x3895d6['as'],'attributes':_0x3895d6[_0x3e7f('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5e8f6c){logger[_0x3e7f('0x14')](_0x3e7f('0x17'),_0x100d23);logger['debug']('GetMailServerIn',_0x100d23,JSON[_0x3e7f('0x11')](_0x5e8f6c));_0x48018e(_0x5e8f6c);})[_0x3e7f('0x16')](function(_0x272492){logger[_0x3e7f('0x12')](_0x3e7f('0x17'),_0x272492[_0x3e7f('0x13')],_0x100d23);_0x15730b(_0x27588e[_0x3e7f('0x12')](0x1f4,_0x272492['message']));});});};
\ No newline at end of file
+var _0x8891=['result','catch','GetMailServerIn','MailServerIn','findAll','options','attributes','limit','include','map','model','lodash','util','bluebird','randomstring','../../mysqldb','../../config/logger','client','http','request','then','info','MailServerIn,\x20%s,\x20%s','debug','MailServerIn,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message'];(function(_0x2456bc,_0x2f9315){var _0x3492f6=function(_0x48cc48){while(--_0x48cc48){_0x2456bc['push'](_0x2456bc['shift']());}};_0x3492f6(++_0x2f9315);}(_0x8891,0x119));var _0x1889=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0x8891[_0x167cc1];return _0x10bc4b;};'use strict';var _=require(_0x1889('0x0'));var util=require(_0x1889('0x1'));var moment=require('moment');var BPromise=require(_0x1889('0x2'));var rs=require(_0x1889('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1889('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x1889('0x5'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x1889('0x6')][_0x1889('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x3fc592,_0x4c4892,_0x2c0c3d){return new BPromise(function(_0x2b3a00,_0x2695f1){return client[_0x1889('0x8')](_0x3fc592,_0x2c0c3d)[_0x1889('0x9')](function(_0x35262d){logger[_0x1889('0xa')](_0x1889('0xb'),_0x4c4892,'request\x20sent');logger[_0x1889('0xc')](_0x1889('0xd'),_0x4c4892,_0x1889('0xe'),JSON[_0x1889('0xf')](_0x35262d));if(_0x35262d[_0x1889('0x10')]){if(_0x35262d['error'][_0x1889('0x11')]===0x1f4){logger[_0x1889('0x10')]('MailServerIn,\x20%s,\x20%s',_0x4c4892,_0x35262d[_0x1889('0x10')][_0x1889('0x12')]);return _0x2695f1(_0x35262d['error']['message']);}logger[_0x1889('0x10')]('MailServerIn,\x20%s,\x20%s',_0x4c4892,_0x35262d[_0x1889('0x10')][_0x1889('0x12')]);return _0x2b3a00(_0x35262d[_0x1889('0x10')][_0x1889('0x12')]);}else{logger[_0x1889('0xa')](_0x1889('0xb'),_0x4c4892,_0x1889('0xe'));_0x2b3a00(_0x35262d[_0x1889('0x13')]['message']);}})[_0x1889('0x14')](function(_0xeefd85){logger[_0x1889('0x10')](_0x1889('0xb'),_0x4c4892,_0xeefd85);_0x2695f1(_0xeefd85);});});}exports[_0x1889('0x15')]=function(_0x3f8e14){var _0x270c03=this;return new Promise(function(_0x336b06,_0x4c0abe){return db[_0x1889('0x16')][_0x1889('0x17')]({'raw':_0x3f8e14[_0x1889('0x18')]?_0x3f8e14['options']['raw']===undefined?!![]:![]:!![],'where':_0x3f8e14[_0x1889('0x18')]?_0x3f8e14[_0x1889('0x18')]['where']||null:null,'attributes':_0x3f8e14[_0x1889('0x18')]?_0x3f8e14[_0x1889('0x18')][_0x1889('0x19')]||null:null,'limit':_0x3f8e14[_0x1889('0x18')]?_0x3f8e14[_0x1889('0x18')][_0x1889('0x1a')]||null:null,'include':_0x3f8e14['options']?_0x3f8e14['options'][_0x1889('0x1b')]?_[_0x1889('0x1c')](_0x3f8e14[_0x1889('0x18')][_0x1889('0x1b')],function(_0x5a77c0){return{'model':db[_0x5a77c0[_0x1889('0x1d')]],'as':_0x5a77c0['as'],'attributes':_0x5a77c0[_0x1889('0x19')],'include':_0x5a77c0[_0x1889('0x1b')]?_[_0x1889('0x1c')](_0x5a77c0[_0x1889('0x1b')],function(_0x382b9f){return{'model':db[_0x382b9f['model']],'as':_0x382b9f['as'],'attributes':_0x382b9f[_0x1889('0x19')],'include':_0x382b9f[_0x1889('0x1b')]?_['map'](_0x382b9f[_0x1889('0x1b')],function(_0x12fd3f){return{'model':db[_0x12fd3f['model']],'as':_0x12fd3f['as'],'attributes':_0x12fd3f[_0x1889('0x19')]};}):[]};}):[]};}):[]:[]})[_0x1889('0x9')](function(_0x1c3e1b){logger['info'](_0x1889('0x15'),_0x3f8e14);logger[_0x1889('0xc')](_0x1889('0x15'),_0x3f8e14,JSON[_0x1889('0xf')](_0x1c3e1b));_0x336b06(_0x1c3e1b);})[_0x1889('0x14')](function(_0x1e0237){logger[_0x1889('0x10')](_0x1889('0x15'),_0x1e0237[_0x1889('0x12')],_0x3f8e14);_0x4c0abe(_0x270c03['error'](0x1f4,_0x1e0237[_0x1889('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-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(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x7a54,0x106));var _0x47a5=function(_0x16d180,_0x3aa2e5){_0x16d180=_0x16d180-0x0;var _0x3a028f=_0x7a54[_0x16d180];return _0x3a028f;};'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
+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(_0xae7c2f,_0xf31e04){var _0x5d7001=function(_0x4eeadb){while(--_0x4eeadb){_0xae7c2f['push'](_0xae7c2f['shift']());}};_0x5d7001(++_0xf31e04);}(_0x7a54,0x106));var _0x47a5=function(_0x74d50,_0x38c0b1){_0x74d50=_0x74d50-0x0;var _0x217f79=_0x7a54[_0x74d50];return _0x217f79;};'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 _0x0b0e=['STRING','INTEGER','BOOLEAN','sequelize'];(function(_0xe9bfe8,_0x4a0ff4){var _0xdd9bc9=function(_0x2f7cd8){while(--_0x2f7cd8){_0xe9bfe8['push'](_0xe9bfe8['shift']());}};_0xdd9bc9(++_0x4a0ff4);}(_0x0b0e,0x187));var _0xe0b0=function(_0x2ef8f1,_0x1280a3){_0x2ef8f1=_0x2ef8f1-0x0;var _0x17498d=_0x0b0e[_0x2ef8f1];return _0x17498d;};'use strict';var Sequelize=require(_0xe0b0('0x0'));module['exports']={'description':{'type':Sequelize[_0xe0b0('0x1')]},'host':{'type':Sequelize['STRING']},'user':{'type':Sequelize[_0xe0b0('0x1')]},'pass':{'type':Sequelize[_0xe0b0('0x1')]},'port':{'type':Sequelize[_0xe0b0('0x2')]},'secure':{'type':Sequelize[_0xe0b0('0x3')],'defaultValue':![]},'service':{'type':Sequelize[_0xe0b0('0x1')]},'authentication':{'type':Sequelize[_0xe0b0('0x3')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x62cf=['sequelize','STRING','BOOLEAN'];(function(_0x1124d7,_0x1091c1){var _0x1b9208=function(_0x171cf7){while(--_0x171cf7){_0x1124d7['push'](_0x1124d7['shift']());}};_0x1b9208(++_0x1091c1);}(_0x62cf,0x81));var _0xf62c=function(_0x53d74d,_0x1bee69){_0x53d74d=_0x53d74d-0x0;var _0x64e840=_0x62cf[_0x53d74d];return _0x64e840;};'use strict';var Sequelize=require(_0xf62c('0x0'));module['exports']={'description':{'type':Sequelize[_0xf62c('0x1')]},'host':{'type':Sequelize['STRING']},'user':{'type':Sequelize[_0xf62c('0x1')]},'pass':{'type':Sequelize[_0xf62c('0x1')]},'port':{'type':Sequelize['INTEGER']},'secure':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'service':{'type':Sequelize[_0xf62c('0x1')]},'authentication':{'type':Sequelize[_0xf62c('0x2')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ebd=['zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','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','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','index','map','MailServerOut','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','type','options','findAll','rows','show','params','length','includeAll','include','create','body','catch','find','rimraf'];(function(_0x4ae6ef,_0xc2af80){var _0x3cbb4e=function(_0x569ad5){while(--_0x569ad5){_0x4ae6ef['push'](_0x4ae6ef['shift']());}};_0x3cbb4e(++_0xc2af80);}(_0x5ebd,0x9f));var _0xd5eb=function(_0x52a592,_0x4d1068){_0x52a592=_0x52a592-0x0;var _0x55fd4f=_0x5ebd[_0x52a592];return _0x55fd4f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd5eb('0x0'));var zipdir=require(_0xd5eb('0x1'));var jsonpatch=require(_0xd5eb('0x2'));var rp=require(_0xd5eb('0x3'));var moment=require(_0xd5eb('0x4'));var BPromise=require(_0xd5eb('0x5'));var Mustache=require(_0xd5eb('0x6'));var util=require('util');var path=require(_0xd5eb('0x7'));var sox=require(_0xd5eb('0x8'));var csv=require(_0xd5eb('0x9'));var ejs=require(_0xd5eb('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd5eb('0xb'));var squel=require(_0xd5eb('0xc'));var crypto=require(_0xd5eb('0xd'));var jsforce=require(_0xd5eb('0xe'));var deskjs=require(_0xd5eb('0xf'));var toCsv=require(_0xd5eb('0x9'));var querystring=require(_0xd5eb('0x10'));var Papa=require(_0xd5eb('0x11'));var Redis=require(_0xd5eb('0x12'));var authService=require(_0xd5eb('0x13'));var qs=require(_0xd5eb('0x14'));var as=require(_0xd5eb('0x15'));var hardwareService=require(_0xd5eb('0x16'));var logger=require(_0xd5eb('0x17'))(_0xd5eb('0x18'));var utils=require(_0xd5eb('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0xd5eb('0x1a'));var db=require(_0xd5eb('0x1b'))['db'];function respondWithStatusCode(_0x5da8d7,_0x1f36c8){_0x1f36c8=_0x1f36c8||0xcc;return function(_0x131094){if(_0x131094){return _0x5da8d7[_0xd5eb('0x1c')](_0x1f36c8);}return _0x5da8d7[_0xd5eb('0x1d')](_0x1f36c8)[_0xd5eb('0x1e')]();};}function respondWithResult(_0x2b36a6,_0x54b9e0){_0x54b9e0=_0x54b9e0||0xc8;return function(_0x29415a){if(_0x29415a){return _0x2b36a6[_0xd5eb('0x1d')](_0x54b9e0)[_0xd5eb('0x1f')](_0x29415a);}};}function respondWithFilteredResult(_0x21cf23,_0x3775ee){return function(_0x1a2862){if(_0x1a2862){var _0x439600=typeof _0x3775ee[_0xd5eb('0x20')]===_0xd5eb('0x21')&&typeof _0x3775ee[_0xd5eb('0x22')]===_0xd5eb('0x21');var _0x2e3bd0=_0x1a2862[_0xd5eb('0x23')];var _0x268af2=_0x439600?0x0:_0x3775ee[_0xd5eb('0x20')];var _0x579602=_0x439600?_0x1a2862[_0xd5eb('0x23')]:_0x3775ee['offset']+_0x3775ee[_0xd5eb('0x22')];var _0xf1fc49;if(_0x579602>=_0x2e3bd0){_0x579602=_0x2e3bd0;_0xf1fc49=0xc8;}else{_0xf1fc49=0xce;}_0x21cf23['status'](_0xf1fc49);return _0x21cf23[_0xd5eb('0x24')](_0xd5eb('0x25'),_0x268af2+'-'+_0x579602+'/'+_0x2e3bd0)[_0xd5eb('0x1f')](_0x1a2862);}return null;};}function patchUpdates(_0x333e8e){return function(_0x41007d){try{jsonpatch[_0xd5eb('0x26')](_0x41007d,_0x333e8e,!![]);}catch(_0x23392b){return BPromise[_0xd5eb('0x27')](_0x23392b);}return _0x41007d[_0xd5eb('0x28')]();};}function saveUpdates(_0x171e6f,_0x4cbf20){return function(_0x4cf86c){if(_0x4cf86c){return _0x4cf86c[_0xd5eb('0x29')](_0x171e6f)['then'](function(_0x65fae1){return _0x65fae1;});}return null;};}function removeEntity(_0x3c3b11,_0x264c18){return function(_0x584a95){if(_0x584a95){return _0x584a95[_0xd5eb('0x2a')]()[_0xd5eb('0x2b')](function(){_0x3c3b11[_0xd5eb('0x1d')](0xcc)[_0xd5eb('0x1e')]();});}};}function handleEntityNotFound(_0xe903f8,_0x558dfc){return function(_0x5cc920){if(!_0x5cc920){_0xe903f8[_0xd5eb('0x1c')](0x194);}return _0x5cc920;};}function handleError(_0x16385f,_0x4f1620){_0x4f1620=_0x4f1620||0x1f4;return function(_0x21d500){logger[_0xd5eb('0x2c')](_0x21d500[_0xd5eb('0x2d')]);if(_0x21d500['name']){delete _0x21d500[_0xd5eb('0x2e')];}_0x16385f[_0xd5eb('0x1d')](_0x4f1620)[_0xd5eb('0x2f')](_0x21d500);};}exports[_0xd5eb('0x30')]=function(_0x23c151,_0x415cfc){var _0x1804f5={},_0x3984af={},_0x57a1da={'count':0x0,'rows':[]};var _0x8de5d3=_[_0xd5eb('0x31')](db[_0xd5eb('0x32')][_0xd5eb('0x33')],function(_0x1ce2f4){return{'name':_0x1ce2f4[_0xd5eb('0x34')],'type':_0x1ce2f4['type']['key']};});_0x3984af[_0xd5eb('0x35')]=_[_0xd5eb('0x31')](_0x8de5d3,'name');_0x3984af[_0xd5eb('0x36')]=_[_0xd5eb('0x37')](_0x23c151[_0xd5eb('0x36')]);_0x3984af[_0xd5eb('0x38')]=_[_0xd5eb('0x39')](_0x3984af['model'],_0x3984af[_0xd5eb('0x36')]);_0x1804f5[_0xd5eb('0x3a')]=_[_0xd5eb('0x39')](_0x3984af[_0xd5eb('0x35')],qs['fields'](_0x23c151[_0xd5eb('0x36')][_0xd5eb('0x3b')]));_0x1804f5[_0xd5eb('0x3a')]=_0x1804f5[_0xd5eb('0x3a')]['length']?_0x1804f5['attributes']:_0x3984af[_0xd5eb('0x35')];if(!_0x23c151[_0xd5eb('0x36')][_0xd5eb('0x3c')](_0xd5eb('0x3d'))){_0x1804f5['limit']=qs[_0xd5eb('0x22')](_0x23c151[_0xd5eb('0x36')][_0xd5eb('0x22')]);_0x1804f5['offset']=qs['offset'](_0x23c151[_0xd5eb('0x36')]['offset']);}_0x1804f5['order']=qs[_0xd5eb('0x3e')](_0x23c151[_0xd5eb('0x36')][_0xd5eb('0x3e')]);_0x1804f5[_0xd5eb('0x3f')]=qs[_0xd5eb('0x38')](_[_0xd5eb('0x40')](_0x23c151[_0xd5eb('0x36')],_0x3984af[_0xd5eb('0x38')]),_0x8de5d3);if(_0x23c151[_0xd5eb('0x36')][_0xd5eb('0x41')]){_0x1804f5['where']=_[_0xd5eb('0x42')](_0x1804f5['where'],{'$or':_['map'](_0x8de5d3,function(_0x3ccae6){if(_0x3ccae6[_0xd5eb('0x43')]!=='VIRTUAL'){var _0x29cea4={};_0x29cea4[_0x3ccae6['name']]={'$like':'%'+_0x23c151[_0xd5eb('0x36')][_0xd5eb('0x41')]+'%'};return _0x29cea4;}})});}_0x1804f5=_[_0xd5eb('0x42')]({},_0x1804f5,_0x23c151[_0xd5eb('0x44')]);var _0x4f092c={'where':_0x1804f5['where']};return db[_0xd5eb('0x32')]['count'](_0x4f092c)[_0xd5eb('0x2b')](function(_0x1d405d){_0x57a1da[_0xd5eb('0x23')]=_0x1d405d;if(_0x23c151[_0xd5eb('0x36')]['includeAll']){_0x1804f5['include']=[{'all':!![]}];}return db[_0xd5eb('0x32')][_0xd5eb('0x45')](_0x1804f5);})[_0xd5eb('0x2b')](function(_0x3a4c90){_0x57a1da[_0xd5eb('0x46')]=_0x3a4c90;return _0x57a1da;})['then'](respondWithFilteredResult(_0x415cfc,_0x1804f5))['catch'](handleError(_0x415cfc,null));};exports[_0xd5eb('0x47')]=function(_0x5588a4,_0x58dcd7){var _0x19a628={'raw':!![],'where':{'id':_0x5588a4[_0xd5eb('0x48')]['id']}},_0x502f56={};_0x502f56[_0xd5eb('0x35')]=_[_0xd5eb('0x37')](db[_0xd5eb('0x32')][_0xd5eb('0x33')]);_0x502f56[_0xd5eb('0x36')]=_[_0xd5eb('0x37')](_0x5588a4[_0xd5eb('0x36')]);_0x502f56[_0xd5eb('0x38')]=_[_0xd5eb('0x39')](_0x502f56[_0xd5eb('0x35')],_0x502f56[_0xd5eb('0x36')]);_0x19a628[_0xd5eb('0x3a')]=_[_0xd5eb('0x39')](_0x502f56[_0xd5eb('0x35')],qs[_0xd5eb('0x3b')](_0x5588a4[_0xd5eb('0x36')][_0xd5eb('0x3b')]));_0x19a628[_0xd5eb('0x3a')]=_0x19a628[_0xd5eb('0x3a')][_0xd5eb('0x49')]?_0x19a628[_0xd5eb('0x3a')]:_0x502f56[_0xd5eb('0x35')];if(_0x5588a4[_0xd5eb('0x36')][_0xd5eb('0x4a')]){_0x19a628[_0xd5eb('0x4b')]=[{'all':!![]}];}_0x19a628=_[_0xd5eb('0x42')]({},_0x19a628,_0x5588a4[_0xd5eb('0x44')]);return db[_0xd5eb('0x32')]['find'](_0x19a628)['then'](handleEntityNotFound(_0x58dcd7,null))[_0xd5eb('0x2b')](respondWithResult(_0x58dcd7,null))['catch'](handleError(_0x58dcd7,null));};exports[_0xd5eb('0x4c')]=function(_0xb60d2a,_0x5b8714){return db[_0xd5eb('0x32')][_0xd5eb('0x4c')](_0xb60d2a[_0xd5eb('0x4d')],{})['then'](respondWithResult(_0x5b8714,0xc9))[_0xd5eb('0x4e')](handleError(_0x5b8714,null));};exports[_0xd5eb('0x29')]=function(_0x150119,_0x5e55e4){if(_0x150119['body']['id']){delete _0x150119[_0xd5eb('0x4d')]['id'];}return db[_0xd5eb('0x32')][_0xd5eb('0x4f')]({'where':{'id':_0x150119[_0xd5eb('0x48')]['id']}})[_0xd5eb('0x2b')](handleEntityNotFound(_0x5e55e4,null))[_0xd5eb('0x2b')](saveUpdates(_0x150119[_0xd5eb('0x4d')],null))[_0xd5eb('0x2b')](respondWithResult(_0x5e55e4,null))[_0xd5eb('0x4e')](handleError(_0x5e55e4,null));};exports['destroy']=function(_0x1d1ebf,_0x5ef487){return db[_0xd5eb('0x32')]['find']({'where':{'id':_0x1d1ebf[_0xd5eb('0x48')]['id']}})[_0xd5eb('0x2b')](handleEntityNotFound(_0x5ef487,null))['then'](removeEntity(_0x5ef487,null))[_0xd5eb('0x4e')](handleError(_0x5ef487,null));};
\ No newline at end of file
+var _0x51cc=['rawAttributes','fieldName','type','key','model','keys','filters','intersection','query','fields','attributes','length','hasOwnProperty','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','params','create','body','find','destroy','zip-dir','fast-json-patch','moment','bluebird','mustache','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','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','map','MailServerOut'];(function(_0x5ec338,_0x1d22d2){var _0x18b5c7=function(_0x596561){while(--_0x596561){_0x5ec338['push'](_0x5ec338['shift']());}};_0x18b5c7(++_0x1d22d2);}(_0x51cc,0x69));var _0xc51c=function(_0x9df060,_0x253d33){_0x9df060=_0x9df060-0x0;var _0x338dfe=_0x51cc[_0x9df060];return _0x338dfe;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xc51c('0x0'));var jsonpatch=require(_0xc51c('0x1'));var rp=require('request-promise');var moment=require(_0xc51c('0x2'));var BPromise=require(_0xc51c('0x3'));var Mustache=require(_0xc51c('0x4'));var util=require('util');var path=require('path');var sox=require(_0xc51c('0x5'));var csv=require(_0xc51c('0x6'));var ejs=require(_0xc51c('0x7'));var fs=require('fs');var fs_extra=require(_0xc51c('0x8'));var _=require(_0xc51c('0x9'));var squel=require(_0xc51c('0xa'));var crypto=require(_0xc51c('0xb'));var jsforce=require(_0xc51c('0xc'));var deskjs=require(_0xc51c('0xd'));var toCsv=require(_0xc51c('0x6'));var querystring=require(_0xc51c('0xe'));var Papa=require(_0xc51c('0xf'));var Redis=require('ioredis');var authService=require(_0xc51c('0x10'));var qs=require(_0xc51c('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc51c('0x12'));var logger=require(_0xc51c('0x13'))('api');var utils=require(_0xc51c('0x14'));var config=require(_0xc51c('0x15'));var licenseUtil=require(_0xc51c('0x16'));var db=require(_0xc51c('0x17'))['db'];function respondWithStatusCode(_0x4363b3,_0x4c5413){_0x4c5413=_0x4c5413||0xcc;return function(_0x365e96){if(_0x365e96){return _0x4363b3[_0xc51c('0x18')](_0x4c5413);}return _0x4363b3[_0xc51c('0x19')](_0x4c5413)[_0xc51c('0x1a')]();};}function respondWithResult(_0x46f8fa,_0xc6486d){_0xc6486d=_0xc6486d||0xc8;return function(_0x547c58){if(_0x547c58){return _0x46f8fa['status'](_0xc6486d)[_0xc51c('0x1b')](_0x547c58);}};}function respondWithFilteredResult(_0x335bb1,_0x51be18){return function(_0x58545a){if(_0x58545a){var _0x199a0c=typeof _0x51be18[_0xc51c('0x1c')]===_0xc51c('0x1d')&&typeof _0x51be18[_0xc51c('0x1e')]===_0xc51c('0x1d');var _0x5f72c5=_0x58545a[_0xc51c('0x1f')];var _0x5cb502=_0x199a0c?0x0:_0x51be18[_0xc51c('0x1c')];var _0x4f2adf=_0x199a0c?_0x58545a[_0xc51c('0x1f')]:_0x51be18[_0xc51c('0x1c')]+_0x51be18[_0xc51c('0x1e')];var _0x21470a;if(_0x4f2adf>=_0x5f72c5){_0x4f2adf=_0x5f72c5;_0x21470a=0xc8;}else{_0x21470a=0xce;}_0x335bb1[_0xc51c('0x19')](_0x21470a);return _0x335bb1[_0xc51c('0x20')](_0xc51c('0x21'),_0x5cb502+'-'+_0x4f2adf+'/'+_0x5f72c5)[_0xc51c('0x1b')](_0x58545a);}return null;};}function patchUpdates(_0x173efb){return function(_0x56c5a1){try{jsonpatch[_0xc51c('0x22')](_0x56c5a1,_0x173efb,!![]);}catch(_0xafeef7){return BPromise[_0xc51c('0x23')](_0xafeef7);}return _0x56c5a1[_0xc51c('0x24')]();};}function saveUpdates(_0x505433,_0x22f662){return function(_0x33630a){if(_0x33630a){return _0x33630a[_0xc51c('0x25')](_0x505433)[_0xc51c('0x26')](function(_0x2e648c){return _0x2e648c;});}return null;};}function removeEntity(_0x12e9b1,_0x2455a3){return function(_0x54247a){if(_0x54247a){return _0x54247a['destroy']()[_0xc51c('0x26')](function(){_0x12e9b1[_0xc51c('0x19')](0xcc)[_0xc51c('0x1a')]();});}};}function handleEntityNotFound(_0x5820e1,_0x298c78){return function(_0x22d3e4){if(!_0x22d3e4){_0x5820e1['sendStatus'](0x194);}return _0x22d3e4;};}function handleError(_0x16eb41,_0x30340d){_0x30340d=_0x30340d||0x1f4;return function(_0x4eefe4){logger[_0xc51c('0x27')](_0x4eefe4[_0xc51c('0x28')]);if(_0x4eefe4[_0xc51c('0x29')]){delete _0x4eefe4['name'];}_0x16eb41[_0xc51c('0x19')](_0x30340d)[_0xc51c('0x2a')](_0x4eefe4);};}exports['index']=function(_0x1eee35,_0x2b2794){var _0x33f487={},_0x4194a2={},_0x410500={'count':0x0,'rows':[]};var _0x17b5ff=_[_0xc51c('0x2b')](db[_0xc51c('0x2c')][_0xc51c('0x2d')],function(_0x1e6209){return{'name':_0x1e6209[_0xc51c('0x2e')],'type':_0x1e6209[_0xc51c('0x2f')][_0xc51c('0x30')]};});_0x4194a2[_0xc51c('0x31')]=_[_0xc51c('0x2b')](_0x17b5ff,'name');_0x4194a2['query']=_[_0xc51c('0x32')](_0x1eee35['query']);_0x4194a2[_0xc51c('0x33')]=_[_0xc51c('0x34')](_0x4194a2[_0xc51c('0x31')],_0x4194a2[_0xc51c('0x35')]);_0x33f487['attributes']=_[_0xc51c('0x34')](_0x4194a2[_0xc51c('0x31')],qs[_0xc51c('0x36')](_0x1eee35[_0xc51c('0x35')]['fields']));_0x33f487[_0xc51c('0x37')]=_0x33f487[_0xc51c('0x37')][_0xc51c('0x38')]?_0x33f487['attributes']:_0x4194a2[_0xc51c('0x31')];if(!_0x1eee35[_0xc51c('0x35')][_0xc51c('0x39')]('nolimit')){_0x33f487['limit']=qs[_0xc51c('0x1e')](_0x1eee35[_0xc51c('0x35')][_0xc51c('0x1e')]);_0x33f487[_0xc51c('0x1c')]=qs[_0xc51c('0x1c')](_0x1eee35[_0xc51c('0x35')]['offset']);}_0x33f487['order']=qs[_0xc51c('0x3a')](_0x1eee35[_0xc51c('0x35')][_0xc51c('0x3a')]);_0x33f487[_0xc51c('0x3b')]=qs['filters'](_[_0xc51c('0x3c')](_0x1eee35[_0xc51c('0x35')],_0x4194a2[_0xc51c('0x33')]),_0x17b5ff);if(_0x1eee35[_0xc51c('0x35')][_0xc51c('0x3d')]){_0x33f487[_0xc51c('0x3b')]=_['merge'](_0x33f487[_0xc51c('0x3b')],{'$or':_[_0xc51c('0x2b')](_0x17b5ff,function(_0x40c396){if(_0x40c396['type']!==_0xc51c('0x3e')){var _0x4c78b3={};_0x4c78b3[_0x40c396['name']]={'$like':'%'+_0x1eee35[_0xc51c('0x35')][_0xc51c('0x3d')]+'%'};return _0x4c78b3;}})});}_0x33f487=_[_0xc51c('0x3f')]({},_0x33f487,_0x1eee35[_0xc51c('0x40')]);var _0x2377bc={'where':_0x33f487[_0xc51c('0x3b')]};return db[_0xc51c('0x2c')]['count'](_0x2377bc)[_0xc51c('0x26')](function(_0x5631d9){_0x410500[_0xc51c('0x1f')]=_0x5631d9;if(_0x1eee35[_0xc51c('0x35')][_0xc51c('0x41')]){_0x33f487[_0xc51c('0x42')]=[{'all':!![]}];}return db['MailServerOut'][_0xc51c('0x43')](_0x33f487);})[_0xc51c('0x26')](function(_0x1a5ed1){_0x410500['rows']=_0x1a5ed1;return _0x410500;})['then'](respondWithFilteredResult(_0x2b2794,_0x33f487))[_0xc51c('0x44')](handleError(_0x2b2794,null));};exports[_0xc51c('0x45')]=function(_0x16a546,_0x13abe6){var _0xb2cb8c={'raw':!![],'where':{'id':_0x16a546[_0xc51c('0x46')]['id']}},_0x17d7b8={};_0x17d7b8[_0xc51c('0x31')]=_[_0xc51c('0x32')](db['MailServerOut'][_0xc51c('0x2d')]);_0x17d7b8[_0xc51c('0x35')]=_[_0xc51c('0x32')](_0x16a546['query']);_0x17d7b8['filters']=_[_0xc51c('0x34')](_0x17d7b8[_0xc51c('0x31')],_0x17d7b8[_0xc51c('0x35')]);_0xb2cb8c[_0xc51c('0x37')]=_['intersection'](_0x17d7b8[_0xc51c('0x31')],qs['fields'](_0x16a546[_0xc51c('0x35')][_0xc51c('0x36')]));_0xb2cb8c[_0xc51c('0x37')]=_0xb2cb8c['attributes'][_0xc51c('0x38')]?_0xb2cb8c[_0xc51c('0x37')]:_0x17d7b8[_0xc51c('0x31')];if(_0x16a546['query']['includeAll']){_0xb2cb8c[_0xc51c('0x42')]=[{'all':!![]}];}_0xb2cb8c=_[_0xc51c('0x3f')]({},_0xb2cb8c,_0x16a546[_0xc51c('0x40')]);return db[_0xc51c('0x2c')]['find'](_0xb2cb8c)[_0xc51c('0x26')](handleEntityNotFound(_0x13abe6,null))[_0xc51c('0x26')](respondWithResult(_0x13abe6,null))[_0xc51c('0x44')](handleError(_0x13abe6,null));};exports[_0xc51c('0x47')]=function(_0x1869ac,_0x5961ac){return db[_0xc51c('0x2c')]['create'](_0x1869ac[_0xc51c('0x48')],{})[_0xc51c('0x26')](respondWithResult(_0x5961ac,0xc9))['catch'](handleError(_0x5961ac,null));};exports[_0xc51c('0x25')]=function(_0x18691a,_0x4e21c3){if(_0x18691a[_0xc51c('0x48')]['id']){delete _0x18691a[_0xc51c('0x48')]['id'];}return db['MailServerOut'][_0xc51c('0x49')]({'where':{'id':_0x18691a[_0xc51c('0x46')]['id']}})[_0xc51c('0x26')](handleEntityNotFound(_0x4e21c3,null))[_0xc51c('0x26')](saveUpdates(_0x18691a[_0xc51c('0x48')],null))[_0xc51c('0x26')](respondWithResult(_0x4e21c3,null))[_0xc51c('0x44')](handleError(_0x4e21c3,null));};exports[_0xc51c('0x4a')]=function(_0x1b6faa,_0x522d3f){return db[_0xc51c('0x2c')][_0xc51c('0x49')]({'where':{'id':_0x1b6faa[_0xc51c('0x46')]['id']}})[_0xc51c('0x26')](handleEntityNotFound(_0x522d3f,null))['then'](removeEntity(_0x522d3f,null))[_0xc51c('0x44')](handleError(_0x522d3f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x556d=['api','moment','bluebird','request-promise','path','rimraf','./mailServerOut.attributes','exports','define','MailServerOut','mail_servers_out','util','../../config/logger'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x556d,0x16a));var _0xd556=function(_0xa361b9,_0x1b261e){_0xa361b9=_0xa361b9-0x0;var _0xb17e18=_0x556d[_0xa361b9];return _0xb17e18;};'use strict';var _=require('lodash');var util=require(_0xd556('0x0'));var logger=require(_0xd556('0x1'))(_0xd556('0x2'));var moment=require(_0xd556('0x3'));var BPromise=require(_0xd556('0x4'));var rp=require(_0xd556('0x5'));var fs=require('fs');var path=require(_0xd556('0x6'));var rimraf=require(_0xd556('0x7'));var config=require('../../config/environment');var attributes=require(_0xd556('0x8'));module[_0xd556('0x9')]=function(_0x508eb3,_0x2a7daa){return _0x508eb3[_0xd556('0xa')](_0xd556('0xb'),attributes,{'tableName':_0xd556('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc4f7=['lodash','util','../../config/logger','moment','request-promise','path','rimraf','../../config/environment','./mailServerOut.attributes','exports','define'];(function(_0x1ccfd8,_0x5a3002){var _0xc05115=function(_0x177d4c){while(--_0x177d4c){_0x1ccfd8['push'](_0x1ccfd8['shift']());}};_0xc05115(++_0x5a3002);}(_0xc4f7,0x1c3));var _0x7c4f=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0xc4f7[_0x167cc1];return _0x10bc4b;};'use strict';var _=require(_0x7c4f('0x0'));var util=require(_0x7c4f('0x1'));var logger=require(_0x7c4f('0x2'))('api');var moment=require(_0x7c4f('0x3'));var BPromise=require('bluebird');var rp=require(_0x7c4f('0x4'));var fs=require('fs');var path=require(_0x7c4f('0x5'));var rimraf=require(_0x7c4f('0x6'));var config=require(_0x7c4f('0x7'));var attributes=require(_0x7c4f('0x8'));module[_0x7c4f('0x9')]=function(_0x370aff,_0x495460){return _0x370aff[_0x7c4f('0xa')]('MailServerOut',attributes,{'tableName':'mail_servers_out','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['then','info','MailServerOut,\x20%s,\x20%s','request\x20sent','MailServerOut,\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(_0x48db89,_0x5c049a){var _0x16b1e4=function(_0x1299a7){while(--_0x1299a7){_0x48db89['push'](_0x48db89['shift']());}};_0x16b1e4(++_0x5c049a);}(_0x1261,0x144));var _0x1126=function(_0x5c6be5,_0x3ff1d5){_0x5c6be5=_0x5c6be5-0x0;var _0x151348=_0x1261[_0x5c6be5];return _0x151348;};'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')]('MailServerOut,\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 _0xc4aa=['moment','bluebird','randomstring','ioredis','rpc','../../config/environment','jayson/promise','client','http','request','then','MailServerOut,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info','catch','lodash','util'];(function(_0x521198,_0x530ecc){var _0x378d25=function(_0x37d2a8){while(--_0x37d2a8){_0x521198['push'](_0x521198['shift']());}};_0x378d25(++_0x530ecc);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x45d55e,_0x2fede3){_0x45d55e=_0x45d55e-0x0;var _0x29812a=_0xc4aa[_0x45d55e];return _0x29812a;};'use strict';var _=require(_0xac4a('0x0'));var util=require(_0xac4a('0x1'));var moment=require(_0xac4a('0x2'));var BPromise=require(_0xac4a('0x3'));var rs=require(_0xac4a('0x4'));var fs=require('fs');var Redis=require(_0xac4a('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xac4a('0x6'));var config=require(_0xac4a('0x7'));var jayson=require(_0xac4a('0x8'));var client=jayson[_0xac4a('0x9')][_0xac4a('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x15cd34,_0x3ef77c,_0x10525b){return new BPromise(function(_0x5c6179,_0x5b8339){return client[_0xac4a('0xb')](_0x15cd34,_0x10525b)[_0xac4a('0xc')](function(_0x26ec84){logger['info'](_0xac4a('0xd'),_0x3ef77c,_0xac4a('0xe'));logger[_0xac4a('0xf')]('MailServerOut,\x20%s,\x20%s,\x20%s',_0x3ef77c,_0xac4a('0xe'),JSON['stringify'](_0x26ec84));if(_0x26ec84[_0xac4a('0x10')]){if(_0x26ec84['error'][_0xac4a('0x11')]===0x1f4){logger[_0xac4a('0x10')](_0xac4a('0xd'),_0x3ef77c,_0x26ec84['error'][_0xac4a('0x12')]);return _0x5b8339(_0x26ec84[_0xac4a('0x10')][_0xac4a('0x12')]);}logger[_0xac4a('0x10')](_0xac4a('0xd'),_0x3ef77c,_0x26ec84[_0xac4a('0x10')][_0xac4a('0x12')]);return _0x5c6179(_0x26ec84[_0xac4a('0x10')][_0xac4a('0x12')]);}else{logger[_0xac4a('0x13')](_0xac4a('0xd'),_0x3ef77c,_0xac4a('0xe'));_0x5c6179(_0x26ec84['result'][_0xac4a('0x12')]);}})[_0xac4a('0x14')](function(_0x23eb66){logger[_0xac4a('0x10')](_0xac4a('0xd'),_0x3ef77c,_0x23eb66);_0x5b8339(_0x23eb66);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x941f=['Router','fs-extra','../../components/interaction/service','index','get','/describe','isAuthenticated','describe','/:id','post','create','update','delete','exports','util','path','connect-timeout'];(function(_0x509273,_0x13fc9f){var _0x38ef40=function(_0xf8d4c9){while(--_0xf8d4c9){_0x509273['push'](_0x509273['shift']());}};_0x38ef40(++_0x13fc9f);}(_0x941f,0x140));var _0xf941=function(_0x1dde53,_0x5997bd){_0x1dde53=_0x1dde53-0x0;var _0x266b59=_0x941f[_0x1dde53];return _0x266b59;};'use strict';var multer=require('multer');var util=require(_0xf941('0x0'));var path=require(_0xf941('0x1'));var timeout=require(_0xf941('0x2'));var express=require('express');var router=express[_0xf941('0x3')]();var fs_extra=require(_0xf941('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xf941('0x5'));var config=require('../../config/environment');var controller=require('./mailSubstatus.controller');router['get']('/',auth['isAuthenticated'](),controller[_0xf941('0x6')]);router[_0xf941('0x7')](_0xf941('0x8'),auth[_0xf941('0x9')](),controller[_0xf941('0xa')]);router['get'](_0xf941('0xb'),auth['isAuthenticated'](),controller['show']);router[_0xf941('0xc')]('/',auth[_0xf941('0x9')](),controller[_0xf941('0xd')]);router['put'](_0xf941('0xb'),auth[_0xf941('0x9')](),controller[_0xf941('0xe')]);router[_0xf941('0xf')](_0xf941('0xb'),auth[_0xf941('0x9')](),controller['destroy']);module[_0xf941('0x10')]=router;
\ No newline at end of file
+var _0xc38c=['multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailSubstatus.controller','get','isAuthenticated','index','/describe','/:id','show','post','update','delete','exports'];(function(_0x3dfed5,_0x2d800a){var _0x1266f0=function(_0x18228c){while(--_0x18228c){_0x3dfed5['push'](_0x3dfed5['shift']());}};_0x1266f0(++_0x2d800a);}(_0xc38c,0xd1));var _0xcc38=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xc38c[_0x14add3];return _0x4a174f;};'use strict';var multer=require(_0xcc38('0x0'));var util=require('util');var path=require(_0xcc38('0x1'));var timeout=require(_0xcc38('0x2'));var express=require('express');var router=express[_0xcc38('0x3')]();var fs_extra=require(_0xcc38('0x4'));var auth=require(_0xcc38('0x5'));var interaction=require(_0xcc38('0x6'));var config=require(_0xcc38('0x7'));var controller=require(_0xcc38('0x8'));router[_0xcc38('0x9')]('/',auth[_0xcc38('0xa')](),controller[_0xcc38('0xb')]);router[_0xcc38('0x9')](_0xcc38('0xc'),auth[_0xcc38('0xa')](),controller['describe']);router[_0xcc38('0x9')](_0xcc38('0xd'),auth[_0xcc38('0xa')](),controller[_0xcc38('0xe')]);router[_0xcc38('0xf')]('/',auth[_0xcc38('0xa')](),controller['create']);router['put'](_0xcc38('0xd'),auth[_0xcc38('0xa')](),controller[_0xcc38('0x10')]);router[_0xcc38('0x11')]('/:id',auth[_0xcc38('0xa')](),controller['destroy']);module[_0xcc38('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfe8=['exports','name','STRING'];(function(_0x3140f9,_0x55ec37){var _0x191b01=function(_0x44a7d7){while(--_0x44a7d7){_0x3140f9['push'](_0x3140f9['shift']());}};_0x191b01(++_0x55ec37);}(_0xbfe8,0x1b9));var _0x8bfe=function(_0x15234c,_0x2080ef){_0x15234c=_0x15234c-0x0;var _0x54320a=_0xbfe8[_0x15234c];return _0x54320a;};'use strict';var Sequelize=require('sequelize');module[_0x8bfe('0x0')]={'name':{'type':Sequelize['STRING'],'unique':_0x8bfe('0x1'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x8bfe('0x2')]}};
\ No newline at end of file
+var _0x7278=['name','sequelize','exports','STRING'];(function(_0x2a6809,_0x44edde){var _0x11c371=function(_0x1a4888){while(--_0x1a4888){_0x2a6809['push'](_0x2a6809['shift']());}};_0x11c371(++_0x44edde);}(_0x7278,0x161));var _0x8727=function(_0x9ba74b,_0x3c81d2){_0x9ba74b=_0x9ba74b-0x0;var _0x168609=_0x7278[_0x9ba74b];return _0x168609;};'use strict';var Sequelize=require(_0x8727('0x0'));module[_0x8727('0x1')]={'name':{'type':Sequelize[_0x8727('0x2')],'unique':_0x8727('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x8727('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa493=['jsforce','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','offset','undefined','limit','count','set','Content-Range','json','save','then','destroy','error','stack','name','send','index','map','MailSubstatus','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','options','includeAll','include','findAll','rows','catch','show','params','create','body','update','find','describe','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto'];(function(_0x5f5eb2,_0x3868f5){var _0x58df87=function(_0x91d228){while(--_0x91d228){_0x5f5eb2['push'](_0x5f5eb2['shift']());}};_0x58df87(++_0x3868f5);}(_0xa493,0x181));var _0x3a49=function(_0x4ae6ef,_0xc2af80){_0x4ae6ef=_0x4ae6ef-0x0;var _0x3cbb4e=_0xa493[_0x4ae6ef];return _0x3cbb4e;};'use strict';var emlformat=require(_0x3a49('0x0'));var rimraf=require(_0x3a49('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x3a49('0x2'));var moment=require(_0x3a49('0x3'));var BPromise=require(_0x3a49('0x4'));var Mustache=require(_0x3a49('0x5'));var util=require(_0x3a49('0x6'));var path=require(_0x3a49('0x7'));var sox=require(_0x3a49('0x8'));var csv=require(_0x3a49('0x9'));var ejs=require(_0x3a49('0xa'));var fs=require('fs');var fs_extra=require(_0x3a49('0xb'));var _=require(_0x3a49('0xc'));var squel=require(_0x3a49('0xd'));var crypto=require(_0x3a49('0xe'));var jsforce=require(_0x3a49('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3a49('0x10'));var Papa=require(_0x3a49('0x11'));var Redis=require(_0x3a49('0x12'));var authService=require(_0x3a49('0x13'));var qs=require(_0x3a49('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3a49('0x15'));var logger=require(_0x3a49('0x16'))(_0x3a49('0x17'));var utils=require(_0x3a49('0x18'));var config=require(_0x3a49('0x19'));var licenseUtil=require(_0x3a49('0x1a'));var db=require(_0x3a49('0x1b'))['db'];function respondWithStatusCode(_0x11faa8,_0xaed8a4){_0xaed8a4=_0xaed8a4||0xcc;return function(_0x2e5d8f){if(_0x2e5d8f){return _0x11faa8[_0x3a49('0x1c')](_0xaed8a4);}return _0x11faa8[_0x3a49('0x1d')](_0xaed8a4)[_0x3a49('0x1e')]();};}function respondWithResult(_0x53dd77,_0x4e4ea9){_0x4e4ea9=_0x4e4ea9||0xc8;return function(_0x286903){if(_0x286903){return _0x53dd77[_0x3a49('0x1d')](_0x4e4ea9)['json'](_0x286903);}};}function respondWithFilteredResult(_0x322175,_0x3ef65d){return function(_0xfbee29){if(_0xfbee29){var _0x5f1fae=typeof _0x3ef65d[_0x3a49('0x1f')]===_0x3a49('0x20')&&typeof _0x3ef65d[_0x3a49('0x21')]==='undefined';var _0x185f5a=_0xfbee29[_0x3a49('0x22')];var _0x1370af=_0x5f1fae?0x0:_0x3ef65d[_0x3a49('0x1f')];var _0x5afad5=_0x5f1fae?_0xfbee29[_0x3a49('0x22')]:_0x3ef65d[_0x3a49('0x1f')]+_0x3ef65d[_0x3a49('0x21')];var _0x43e0a8;if(_0x5afad5>=_0x185f5a){_0x5afad5=_0x185f5a;_0x43e0a8=0xc8;}else{_0x43e0a8=0xce;}_0x322175[_0x3a49('0x1d')](_0x43e0a8);return _0x322175[_0x3a49('0x23')](_0x3a49('0x24'),_0x1370af+'-'+_0x5afad5+'/'+_0x185f5a)[_0x3a49('0x25')](_0xfbee29);}return null;};}function patchUpdates(_0xe47af6){return function(_0x3491bc){try{jsonpatch['apply'](_0x3491bc,_0xe47af6,!![]);}catch(_0x4bc406){return BPromise['reject'](_0x4bc406);}return _0x3491bc[_0x3a49('0x26')]();};}function saveUpdates(_0x26f0d2,_0xbff296){return function(_0xc47af9){if(_0xc47af9){return _0xc47af9['update'](_0x26f0d2)[_0x3a49('0x27')](function(_0x3b24be){return _0x3b24be;});}return null;};}function removeEntity(_0x4916a1,_0x2a8f9f){return function(_0x8e7e6e){if(_0x8e7e6e){return _0x8e7e6e[_0x3a49('0x28')]()['then'](function(){_0x4916a1[_0x3a49('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x74a45,_0x1be6bd){return function(_0x224ff7){if(!_0x224ff7){_0x74a45['sendStatus'](0x194);}return _0x224ff7;};}function handleError(_0xc354cf,_0x4be0b9){_0x4be0b9=_0x4be0b9||0x1f4;return function(_0x39c518){logger[_0x3a49('0x29')](_0x39c518[_0x3a49('0x2a')]);if(_0x39c518[_0x3a49('0x2b')]){delete _0x39c518[_0x3a49('0x2b')];}_0xc354cf[_0x3a49('0x1d')](_0x4be0b9)[_0x3a49('0x2c')](_0x39c518);};}exports[_0x3a49('0x2d')]=function(_0x569d06,_0x34ecd9){var _0x1c27a2={},_0x12dae9={},_0x4d0d4c={'count':0x0,'rows':[]};var _0x4f39bf=_[_0x3a49('0x2e')](db[_0x3a49('0x2f')][_0x3a49('0x30')],function(_0x5439b1){return{'name':_0x5439b1[_0x3a49('0x31')],'type':_0x5439b1[_0x3a49('0x32')][_0x3a49('0x33')]};});_0x12dae9[_0x3a49('0x34')]=_[_0x3a49('0x2e')](_0x4f39bf,'name');_0x12dae9[_0x3a49('0x35')]=_[_0x3a49('0x36')](_0x569d06[_0x3a49('0x35')]);_0x12dae9[_0x3a49('0x37')]=_['intersection'](_0x12dae9['model'],_0x12dae9[_0x3a49('0x35')]);_0x1c27a2['attributes']=_[_0x3a49('0x38')](_0x12dae9[_0x3a49('0x34')],qs[_0x3a49('0x39')](_0x569d06['query'][_0x3a49('0x39')]));_0x1c27a2[_0x3a49('0x3a')]=_0x1c27a2[_0x3a49('0x3a')][_0x3a49('0x3b')]?_0x1c27a2['attributes']:_0x12dae9[_0x3a49('0x34')];if(!_0x569d06['query'][_0x3a49('0x3c')](_0x3a49('0x3d'))){_0x1c27a2[_0x3a49('0x21')]=qs[_0x3a49('0x21')](_0x569d06['query'][_0x3a49('0x21')]);_0x1c27a2[_0x3a49('0x1f')]=qs[_0x3a49('0x1f')](_0x569d06[_0x3a49('0x35')][_0x3a49('0x1f')]);}_0x1c27a2[_0x3a49('0x3e')]=qs[_0x3a49('0x3f')](_0x569d06[_0x3a49('0x35')]['sort']);_0x1c27a2[_0x3a49('0x40')]=qs[_0x3a49('0x37')](_[_0x3a49('0x41')](_0x569d06['query'],_0x12dae9[_0x3a49('0x37')]),_0x4f39bf);if(_0x569d06[_0x3a49('0x35')]['filter']){_0x1c27a2['where']=_[_0x3a49('0x42')](_0x1c27a2['where'],{'$or':_['map'](_0x4f39bf,function(_0x5bcc1d){if(_0x5bcc1d[_0x3a49('0x32')]!=='VIRTUAL'){var _0x2ba9d8={};_0x2ba9d8[_0x5bcc1d[_0x3a49('0x2b')]]={'$like':'%'+_0x569d06['query']['filter']+'%'};return _0x2ba9d8;}})});}_0x1c27a2=_[_0x3a49('0x42')]({},_0x1c27a2,_0x569d06[_0x3a49('0x43')]);var _0xb6202b={'where':_0x1c27a2['where']};return db['MailSubstatus']['count'](_0xb6202b)[_0x3a49('0x27')](function(_0x51075f){_0x4d0d4c[_0x3a49('0x22')]=_0x51075f;if(_0x569d06[_0x3a49('0x35')][_0x3a49('0x44')]){_0x1c27a2[_0x3a49('0x45')]=[{'all':!![]}];}return db[_0x3a49('0x2f')][_0x3a49('0x46')](_0x1c27a2);})['then'](function(_0x498f4){_0x4d0d4c[_0x3a49('0x47')]=_0x498f4;return _0x4d0d4c;})[_0x3a49('0x27')](respondWithFilteredResult(_0x34ecd9,_0x1c27a2))[_0x3a49('0x48')](handleError(_0x34ecd9,null));};exports[_0x3a49('0x49')]=function(_0x48a636,_0x37ca13){var _0x3e46ed={'raw':!![],'where':{'id':_0x48a636[_0x3a49('0x4a')]['id']}},_0x369f87={};_0x369f87[_0x3a49('0x34')]=_[_0x3a49('0x36')](db[_0x3a49('0x2f')][_0x3a49('0x30')]);_0x369f87[_0x3a49('0x35')]=_[_0x3a49('0x36')](_0x48a636[_0x3a49('0x35')]);_0x369f87[_0x3a49('0x37')]=_['intersection'](_0x369f87[_0x3a49('0x34')],_0x369f87[_0x3a49('0x35')]);_0x3e46ed[_0x3a49('0x3a')]=_[_0x3a49('0x38')](_0x369f87[_0x3a49('0x34')],qs[_0x3a49('0x39')](_0x48a636['query'][_0x3a49('0x39')]));_0x3e46ed[_0x3a49('0x3a')]=_0x3e46ed[_0x3a49('0x3a')][_0x3a49('0x3b')]?_0x3e46ed[_0x3a49('0x3a')]:_0x369f87[_0x3a49('0x34')];if(_0x48a636['query']['includeAll']){_0x3e46ed[_0x3a49('0x45')]=[{'all':!![]}];}_0x3e46ed=_[_0x3a49('0x42')]({},_0x3e46ed,_0x48a636['options']);return db['MailSubstatus']['find'](_0x3e46ed)['then'](handleEntityNotFound(_0x37ca13,null))[_0x3a49('0x27')](respondWithResult(_0x37ca13,null))[_0x3a49('0x48')](handleError(_0x37ca13,null));};exports[_0x3a49('0x4b')]=function(_0x468244,_0x57bcc4){return db[_0x3a49('0x2f')][_0x3a49('0x4b')](_0x468244[_0x3a49('0x4c')],{})['then'](respondWithResult(_0x57bcc4,0xc9))[_0x3a49('0x48')](handleError(_0x57bcc4,null));};exports[_0x3a49('0x4d')]=function(_0x3e8adf,_0x25ec51){if(_0x3e8adf['body']['id']){delete _0x3e8adf[_0x3a49('0x4c')]['id'];}return db[_0x3a49('0x2f')][_0x3a49('0x4e')]({'where':{'id':_0x3e8adf[_0x3a49('0x4a')]['id']}})[_0x3a49('0x27')](handleEntityNotFound(_0x25ec51,null))[_0x3a49('0x27')](saveUpdates(_0x3e8adf[_0x3a49('0x4c')],null))[_0x3a49('0x27')](respondWithResult(_0x25ec51,null))[_0x3a49('0x48')](handleError(_0x25ec51,null));};exports[_0x3a49('0x28')]=function(_0x2905e3,_0x25409e){return db[_0x3a49('0x2f')]['find']({'where':{'id':_0x2905e3['params']['id']}})[_0x3a49('0x27')](handleEntityNotFound(_0x25409e,null))[_0x3a49('0x27')](removeEntity(_0x25409e,null))['catch'](handleError(_0x25409e,null));};exports['describe']=function(_0x416629,_0x58048b){return db[_0x3a49('0x2f')][_0x3a49('0x4f')]()[_0x3a49('0x27')](respondWithResult(_0x58048b,null))['catch'](handleError(_0x58048b,null));};
\ No newline at end of file
+var _0xb720=['set','Content-Range','apply','save','update','then','destroy','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','options','MailSubstatus','includeAll','include','rows','catch','show','params','find','create','body','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','sendStatus','status','end','json','offset','limit','undefined','count'];(function(_0x481181,_0xe78cba){var _0x39d1a9=function(_0x5e29f4){while(--_0x5e29f4){_0x481181['push'](_0x481181['shift']());}};_0x39d1a9(++_0xe78cba);}(_0xb720,0x191));var _0x0b72=function(_0x5e8763,_0x558211){_0x5e8763=_0x5e8763-0x0;var _0x286b08=_0xb720[_0x5e8763];return _0x286b08;};'use strict';var emlformat=require(_0x0b72('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0b72('0x1'));var jsonpatch=require(_0x0b72('0x2'));var rp=require(_0x0b72('0x3'));var moment=require(_0x0b72('0x4'));var BPromise=require(_0x0b72('0x5'));var Mustache=require(_0x0b72('0x6'));var util=require(_0x0b72('0x7'));var path=require(_0x0b72('0x8'));var sox=require(_0x0b72('0x9'));var csv=require('to-csv');var ejs=require(_0x0b72('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0b72('0xb'));var squel=require(_0x0b72('0xc'));var crypto=require(_0x0b72('0xd'));var jsforce=require(_0x0b72('0xe'));var deskjs=require(_0x0b72('0xf'));var toCsv=require(_0x0b72('0x10'));var querystring=require(_0x0b72('0x11'));var Papa=require(_0x0b72('0x12'));var Redis=require(_0x0b72('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x0b72('0x14'));var as=require(_0x0b72('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x0b72('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x356034,_0x1fa33c){_0x1fa33c=_0x1fa33c||0xcc;return function(_0x2d4f3f){if(_0x2d4f3f){return _0x356034[_0x0b72('0x17')](_0x1fa33c);}return _0x356034[_0x0b72('0x18')](_0x1fa33c)[_0x0b72('0x19')]();};}function respondWithResult(_0x2083dc,_0x5e31ca){_0x5e31ca=_0x5e31ca||0xc8;return function(_0x3174c5){if(_0x3174c5){return _0x2083dc['status'](_0x5e31ca)[_0x0b72('0x1a')](_0x3174c5);}};}function respondWithFilteredResult(_0x405317,_0x3da564){return function(_0x192bc7){if(_0x192bc7){var _0x181244=typeof _0x3da564[_0x0b72('0x1b')]==='undefined'&&typeof _0x3da564[_0x0b72('0x1c')]===_0x0b72('0x1d');var _0x1a3243=_0x192bc7['count'];var _0x3713aa=_0x181244?0x0:_0x3da564['offset'];var _0xfe7a75=_0x181244?_0x192bc7[_0x0b72('0x1e')]:_0x3da564['offset']+_0x3da564[_0x0b72('0x1c')];var _0x1ff36b;if(_0xfe7a75>=_0x1a3243){_0xfe7a75=_0x1a3243;_0x1ff36b=0xc8;}else{_0x1ff36b=0xce;}_0x405317[_0x0b72('0x18')](_0x1ff36b);return _0x405317[_0x0b72('0x1f')](_0x0b72('0x20'),_0x3713aa+'-'+_0xfe7a75+'/'+_0x1a3243)['json'](_0x192bc7);}return null;};}function patchUpdates(_0x1e793d){return function(_0x202b58){try{jsonpatch[_0x0b72('0x21')](_0x202b58,_0x1e793d,!![]);}catch(_0x538480){return BPromise['reject'](_0x538480);}return _0x202b58[_0x0b72('0x22')]();};}function saveUpdates(_0x1b310c,_0x73bc5f){return function(_0x56e12d){if(_0x56e12d){return _0x56e12d[_0x0b72('0x23')](_0x1b310c)[_0x0b72('0x24')](function(_0x420d53){return _0x420d53;});}return null;};}function removeEntity(_0x274bfe,_0x553b33){return function(_0x2cca65){if(_0x2cca65){return _0x2cca65[_0x0b72('0x25')]()[_0x0b72('0x24')](function(){_0x274bfe[_0x0b72('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x120c8e,_0x407f1c){return function(_0x3f8d55){if(!_0x3f8d55){_0x120c8e['sendStatus'](0x194);}return _0x3f8d55;};}function handleError(_0x4fda85,_0x522857){_0x522857=_0x522857||0x1f4;return function(_0x44dc5c){logger['error'](_0x44dc5c['stack']);if(_0x44dc5c[_0x0b72('0x26')]){delete _0x44dc5c[_0x0b72('0x26')];}_0x4fda85['status'](_0x522857)[_0x0b72('0x27')](_0x44dc5c);};}exports[_0x0b72('0x28')]=function(_0x4a1b0c,_0x21175d){var _0x1ab879={},_0x57fe31={},_0x29841b={'count':0x0,'rows':[]};var _0x5dc221=_[_0x0b72('0x29')](db['MailSubstatus'][_0x0b72('0x2a')],function(_0x5ade4d){return{'name':_0x5ade4d[_0x0b72('0x2b')],'type':_0x5ade4d[_0x0b72('0x2c')][_0x0b72('0x2d')]};});_0x57fe31['model']=_[_0x0b72('0x29')](_0x5dc221,'name');_0x57fe31[_0x0b72('0x2e')]=_[_0x0b72('0x2f')](_0x4a1b0c[_0x0b72('0x2e')]);_0x57fe31[_0x0b72('0x30')]=_[_0x0b72('0x31')](_0x57fe31[_0x0b72('0x32')],_0x57fe31[_0x0b72('0x2e')]);_0x1ab879[_0x0b72('0x33')]=_[_0x0b72('0x31')](_0x57fe31[_0x0b72('0x32')],qs[_0x0b72('0x34')](_0x4a1b0c[_0x0b72('0x2e')]['fields']));_0x1ab879[_0x0b72('0x33')]=_0x1ab879[_0x0b72('0x33')]['length']?_0x1ab879[_0x0b72('0x33')]:_0x57fe31['model'];if(!_0x4a1b0c[_0x0b72('0x2e')][_0x0b72('0x35')](_0x0b72('0x36'))){_0x1ab879[_0x0b72('0x1c')]=qs['limit'](_0x4a1b0c[_0x0b72('0x2e')][_0x0b72('0x1c')]);_0x1ab879['offset']=qs[_0x0b72('0x1b')](_0x4a1b0c['query'][_0x0b72('0x1b')]);}_0x1ab879['order']=qs[_0x0b72('0x37')](_0x4a1b0c[_0x0b72('0x2e')][_0x0b72('0x37')]);_0x1ab879[_0x0b72('0x38')]=qs[_0x0b72('0x30')](_[_0x0b72('0x39')](_0x4a1b0c['query'],_0x57fe31[_0x0b72('0x30')]),_0x5dc221);if(_0x4a1b0c['query'][_0x0b72('0x3a')]){_0x1ab879[_0x0b72('0x38')]=_[_0x0b72('0x3b')](_0x1ab879[_0x0b72('0x38')],{'$or':_['map'](_0x5dc221,function(_0x492530){if(_0x492530[_0x0b72('0x2c')]!=='VIRTUAL'){var _0x3f5723={};_0x3f5723[_0x492530['name']]={'$like':'%'+_0x4a1b0c['query'][_0x0b72('0x3a')]+'%'};return _0x3f5723;}})});}_0x1ab879=_[_0x0b72('0x3b')]({},_0x1ab879,_0x4a1b0c[_0x0b72('0x3c')]);var _0x46e1b0={'where':_0x1ab879['where']};return db[_0x0b72('0x3d')][_0x0b72('0x1e')](_0x46e1b0)[_0x0b72('0x24')](function(_0x36c5d9){_0x29841b[_0x0b72('0x1e')]=_0x36c5d9;if(_0x4a1b0c[_0x0b72('0x2e')][_0x0b72('0x3e')]){_0x1ab879[_0x0b72('0x3f')]=[{'all':!![]}];}return db[_0x0b72('0x3d')]['findAll'](_0x1ab879);})[_0x0b72('0x24')](function(_0xabd7dc){_0x29841b[_0x0b72('0x40')]=_0xabd7dc;return _0x29841b;})['then'](respondWithFilteredResult(_0x21175d,_0x1ab879))[_0x0b72('0x41')](handleError(_0x21175d,null));};exports[_0x0b72('0x42')]=function(_0x46dacf,_0x38f157){var _0x4151ca={'raw':!![],'where':{'id':_0x46dacf[_0x0b72('0x43')]['id']}},_0x386da8={};_0x386da8[_0x0b72('0x32')]=_[_0x0b72('0x2f')](db[_0x0b72('0x3d')][_0x0b72('0x2a')]);_0x386da8[_0x0b72('0x2e')]=_['keys'](_0x46dacf[_0x0b72('0x2e')]);_0x386da8[_0x0b72('0x30')]=_[_0x0b72('0x31')](_0x386da8[_0x0b72('0x32')],_0x386da8[_0x0b72('0x2e')]);_0x4151ca['attributes']=_[_0x0b72('0x31')](_0x386da8[_0x0b72('0x32')],qs['fields'](_0x46dacf[_0x0b72('0x2e')][_0x0b72('0x34')]));_0x4151ca[_0x0b72('0x33')]=_0x4151ca[_0x0b72('0x33')]['length']?_0x4151ca[_0x0b72('0x33')]:_0x386da8['model'];if(_0x46dacf[_0x0b72('0x2e')]['includeAll']){_0x4151ca[_0x0b72('0x3f')]=[{'all':!![]}];}_0x4151ca=_['merge']({},_0x4151ca,_0x46dacf[_0x0b72('0x3c')]);return db['MailSubstatus'][_0x0b72('0x44')](_0x4151ca)[_0x0b72('0x24')](handleEntityNotFound(_0x38f157,null))[_0x0b72('0x24')](respondWithResult(_0x38f157,null))[_0x0b72('0x41')](handleError(_0x38f157,null));};exports[_0x0b72('0x45')]=function(_0x4dd125,_0x5731f3){return db[_0x0b72('0x3d')][_0x0b72('0x45')](_0x4dd125[_0x0b72('0x46')],{})[_0x0b72('0x24')](respondWithResult(_0x5731f3,0xc9))['catch'](handleError(_0x5731f3,null));};exports[_0x0b72('0x23')]=function(_0x41f8b6,_0x1674b3){if(_0x41f8b6[_0x0b72('0x46')]['id']){delete _0x41f8b6['body']['id'];}return db[_0x0b72('0x3d')]['find']({'where':{'id':_0x41f8b6['params']['id']}})[_0x0b72('0x24')](handleEntityNotFound(_0x1674b3,null))[_0x0b72('0x24')](saveUpdates(_0x41f8b6[_0x0b72('0x46')],null))[_0x0b72('0x24')](respondWithResult(_0x1674b3,null))['catch'](handleError(_0x1674b3,null));};exports[_0x0b72('0x25')]=function(_0x4084d6,_0x4a2ff3){return db[_0x0b72('0x3d')][_0x0b72('0x44')]({'where':{'id':_0x4084d6[_0x0b72('0x43')]['id']}})[_0x0b72('0x24')](handleEntityNotFound(_0x4a2ff3,null))[_0x0b72('0x24')](removeEntity(_0x4a2ff3,null))['catch'](handleError(_0x4a2ff3,null));};exports['describe']=function(_0x3088ff,_0x4c69b3){return db['MailSubstatus'][_0x0b72('0x47')]()[_0x0b72('0x24')](respondWithResult(_0x4c69b3,null))[_0x0b72('0x41')](handleError(_0x4c69b3,null));};
\ 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 _0xa03d=['setMaxListeners','emit','hook','events','../../mysqldb'];(function(_0x384447,_0x41669a){var _0x3810db=function(_0x3f1288){while(--_0x3f1288){_0x384447['push'](_0x384447['shift']());}};_0x3810db(++_0x41669a);}(_0xa03d,0x166));var _0xda03=function(_0x5ed8cf,_0x328fd8){_0x5ed8cf=_0x5ed8cf-0x0;var _0x37eece=_0xa03d[_0x5ed8cf];return _0x37eece;};'use strict';var EventEmitter=require(_0xda03('0x0'));var MailSubstatus=require(_0xda03('0x1'))['db']['MailSubstatus'];var MailSubstatusEvents=new EventEmitter();MailSubstatusEvents[_0xda03('0x2')](0x0);var events={'afterUpdate':'update'};function emitEvent(_0x516dd7){return function(_0x57871b,_0x100677,_0x5e2413){MailSubstatusEvents[_0xda03('0x3')](_0x516dd7+':'+_0x57871b['id'],_0x57871b);MailSubstatusEvents[_0xda03('0x3')](_0x516dd7,_0x57871b);_0x5e2413(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailSubstatus[_0xda03('0x4')](e,emitEvent(event));}}module['exports']=MailSubstatusEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd64f=['update','_previousDataValues','then','catch','./mailSubstatus.attributes','exports','models','define','MailSubstatus','mail_substatuses'];(function(_0x2ac4b2,_0xc1ed67){var _0x12458d=function(_0x434637){while(--_0x434637){_0x2ac4b2['push'](_0x2ac4b2['shift']());}};_0x12458d(++_0xc1ed67);}(_0xd64f,0xfe));var _0xfd64=function(_0x29416f,_0x33fe73){_0x29416f=_0x29416f-0x0;var _0x73271c=_0xd64f[_0x29416f];return _0x73271c;};'use strict';var attributes=require(_0xfd64('0x0'));module[_0xfd64('0x1')]=function(_0x1dbbc4){var _0x1361fe=_0x1dbbc4[_0xfd64('0x2')];return _0x1dbbc4[_0xfd64('0x3')](_0xfd64('0x4'),attributes,{'tableName':_0xfd64('0x5'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterUpdate':function(_0x145e13,_0x11799e,_0x3c1f11){return _0x1361fe['Condition'][_0xfd64('0x6')]({'value':_0x145e13['name']},{'where':{'field':'mailSubstatus','value':_0x145e13[_0xfd64('0x7')]['name']}})[_0xfd64('0x8')](function(){_0x3c1f11();})[_0xfd64('0x9')](function(_0x21e66f){_0x3c1f11(_0x21e66f);});}}});};
\ No newline at end of file
+var _0xe054=['../../config/environment','define','lodash','../../config/logger','api','moment','request-promise','path','rimraf'];(function(_0x595af5,_0x175a0e){var _0x4967cf=function(_0x1409db){while(--_0x1409db){_0x595af5['push'](_0x595af5['shift']());}};_0x4967cf(++_0x175a0e);}(_0xe054,0xbf));var _0x4e05=function(_0x2f71c1,_0x319017){_0x2f71c1=_0x2f71c1-0x0;var _0x411bb7=_0xe054[_0x2f71c1];return _0x411bb7;};'use strict';var _=require(_0x4e05('0x0'));var util=require('util');var logger=require(_0x4e05('0x1'))(_0x4e05('0x2'));var moment=require(_0x4e05('0x3'));var BPromise=require('bluebird');var rp=require(_0x4e05('0x4'));var fs=require('fs');var path=require(_0x4e05('0x5'));var rimraf=require(_0x4e05('0x6'));var config=require(_0x4e05('0x7'));var attributes=require('./mailSubstatus.attributes');module['exports']=function(_0x3987c0,_0xcf59e8){return _0x3987c0[_0x4e05('0x8')]('MailSubstatus',attributes,{'tableName':'mail_substatuses','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6959=['message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','request\x20sent','debug','MailSubstatus,\x20%s,\x20%s,\x20%s','stringify','error','code','MailSubstatus,\x20%s,\x20%s'];(function(_0x4792c8,_0x5158a1){var _0x35edb1=function(_0x2472d3){while(--_0x2472d3){_0x4792c8['push'](_0x4792c8['shift']());}};_0x35edb1(++_0x5158a1);}(_0x6959,0x117));var _0x9695=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x6959[_0xa464c9];return _0x3d73c4;};'use strict';var _=require(_0x9695('0x0'));var util=require(_0x9695('0x1'));var moment=require(_0x9695('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9695('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x9695('0x4'));var logger=require(_0x9695('0x5'))(_0x9695('0x6'));var config=require('../../config/environment');var jayson=require(_0x9695('0x7'));var client=jayson[_0x9695('0x8')][_0x9695('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5ba600,_0x12d23a,_0x29b544){return new BPromise(function(_0x4c9ae0,_0x595d8b){return client[_0x9695('0xa')](_0x5ba600,_0x29b544)[_0x9695('0xb')](function(_0x3f7815){logger[_0x9695('0xc')]('MailSubstatus,\x20%s,\x20%s',_0x12d23a,_0x9695('0xd'));logger[_0x9695('0xe')](_0x9695('0xf'),_0x12d23a,_0x9695('0xd'),JSON[_0x9695('0x10')](_0x3f7815));if(_0x3f7815[_0x9695('0x11')]){if(_0x3f7815[_0x9695('0x11')][_0x9695('0x12')]===0x1f4){logger[_0x9695('0x11')](_0x9695('0x13'),_0x12d23a,_0x3f7815[_0x9695('0x11')]['message']);return _0x595d8b(_0x3f7815[_0x9695('0x11')]['message']);}logger[_0x9695('0x11')](_0x9695('0x13'),_0x12d23a,_0x3f7815[_0x9695('0x11')][_0x9695('0x14')]);return _0x4c9ae0(_0x3f7815[_0x9695('0x11')][_0x9695('0x14')]);}else{logger[_0x9695('0xc')]('MailSubstatus,\x20%s,\x20%s',_0x12d23a,_0x9695('0xd'));_0x4c9ae0(_0x3f7815[_0x9695('0x15')][_0x9695('0x14')]);}})[_0x9695('0x16')](function(_0x475284){logger[_0x9695('0x11')](_0x9695('0x13'),_0x12d23a,_0x475284);_0x595d8b(_0x475284);});});}
\ No newline at end of file
+var _0xbd8f=['message','info','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','MailSubstatus,\x20%s,\x20%s','request\x20sent','debug','MailSubstatus,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x29f89e,_0x34f7a2){var _0x17c7f3=function(_0x3fdfff){while(--_0x3fdfff){_0x29f89e['push'](_0x29f89e['shift']());}};_0x17c7f3(++_0x34f7a2);}(_0xbd8f,0x130));var _0xfbd8=function(_0x4ab9a7,_0x291df1){_0x4ab9a7=_0x4ab9a7-0x0;var _0xd08799=_0xbd8f[_0x4ab9a7];return _0xd08799;};'use strict';var _=require(_0xfbd8('0x0'));var util=require(_0xfbd8('0x1'));var moment=require(_0xfbd8('0x2'));var BPromise=require(_0xfbd8('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xfbd8('0x4'));var db=require(_0xfbd8('0x5'))['db'];var utils=require(_0xfbd8('0x6'));var logger=require('../../config/logger')(_0xfbd8('0x7'));var config=require(_0xfbd8('0x8'));var jayson=require(_0xfbd8('0x9'));var client=jayson[_0xfbd8('0xa')][_0xfbd8('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x384bb2,_0x1fff77,_0x468c5c){return new BPromise(function(_0x3ad1ab,_0x22cebb){return client[_0xfbd8('0xc')](_0x384bb2,_0x468c5c)[_0xfbd8('0xd')](function(_0x3c6d47){logger['info'](_0xfbd8('0xe'),_0x1fff77,_0xfbd8('0xf'));logger[_0xfbd8('0x10')](_0xfbd8('0x11'),_0x1fff77,_0xfbd8('0xf'),JSON[_0xfbd8('0x12')](_0x3c6d47));if(_0x3c6d47[_0xfbd8('0x13')]){if(_0x3c6d47[_0xfbd8('0x13')][_0xfbd8('0x14')]===0x1f4){logger[_0xfbd8('0x13')](_0xfbd8('0xe'),_0x1fff77,_0x3c6d47[_0xfbd8('0x13')][_0xfbd8('0x15')]);return _0x22cebb(_0x3c6d47['error'][_0xfbd8('0x15')]);}logger['error'](_0xfbd8('0xe'),_0x1fff77,_0x3c6d47[_0xfbd8('0x13')][_0xfbd8('0x15')]);return _0x3ad1ab(_0x3c6d47[_0xfbd8('0x13')][_0xfbd8('0x15')]);}else{logger[_0xfbd8('0x16')](_0xfbd8('0xe'),_0x1fff77,_0xfbd8('0xf'));_0x3ad1ab(_0x3c6d47[_0xfbd8('0x17')][_0xfbd8('0x15')]);}})[_0xfbd8('0x18')](function(_0x1a0715){logger[_0xfbd8('0x13')](_0xfbd8('0xe'),_0x1fff77,_0x1a0715);_0x22cebb(_0x1a0715);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0dd7=['update','delete','destroy','exports','multer','util','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailTransferReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post'];(function(_0x4253aa,_0xe47698){var _0x3edc59=function(_0x502e03){while(--_0x502e03){_0x4253aa['push'](_0x4253aa['shift']());}};_0x3edc59(++_0xe47698);}(_0x0dd7,0x121));var _0x70dd=function(_0x156a0d,_0x3946ce){_0x156a0d=_0x156a0d-0x0;var _0x98a9ba=_0x0dd7[_0x156a0d];return _0x98a9ba;};'use strict';var multer=require(_0x70dd('0x0'));var util=require(_0x70dd('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0x70dd('0x2'));var auth=require(_0x70dd('0x3'));var interaction=require(_0x70dd('0x4'));var config=require(_0x70dd('0x5'));var controller=require(_0x70dd('0x6'));router[_0x70dd('0x7')]('/',auth[_0x70dd('0x8')](),controller[_0x70dd('0x9')]);router[_0x70dd('0x7')](_0x70dd('0xa'),auth[_0x70dd('0x8')](),controller[_0x70dd('0xb')]);router['get'](_0x70dd('0xc'),auth[_0x70dd('0x8')](),controller[_0x70dd('0xd')]);router[_0x70dd('0xe')]('/',auth[_0x70dd('0x8')](),controller['create']);router['put'](_0x70dd('0xc'),auth['isAuthenticated'](),controller[_0x70dd('0xf')]);router[_0x70dd('0x10')](_0x70dd('0xc'),auth[_0x70dd('0x8')](),controller[_0x70dd('0x11')]);module[_0x70dd('0x12')]=router;
\ No newline at end of file
+var _0x2a7b=['delete','destroy','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','./mailTransferReport.controller','get','isAuthenticated','index','/:id','show','put'];(function(_0x7e2eb0,_0x17cd58){var _0xd92de4=function(_0x5d005b){while(--_0x5d005b){_0x7e2eb0['push'](_0x7e2eb0['shift']());}};_0xd92de4(++_0x17cd58);}(_0x2a7b,0x123));var _0xb2a7=function(_0x305b51,_0x5ebb41){_0x305b51=_0x305b51-0x0;var _0x3ef3b3=_0x2a7b[_0x305b51];return _0x3ef3b3;};'use strict';var multer=require(_0xb2a7('0x0'));var util=require(_0xb2a7('0x1'));var path=require(_0xb2a7('0x2'));var timeout=require(_0xb2a7('0x3'));var express=require(_0xb2a7('0x4'));var router=express['Router']();var fs_extra=require(_0xb2a7('0x5'));var auth=require(_0xb2a7('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xb2a7('0x7'));var controller=require(_0xb2a7('0x8'));router[_0xb2a7('0x9')]('/',auth[_0xb2a7('0xa')](),controller[_0xb2a7('0xb')]);router[_0xb2a7('0x9')]('/describe',auth[_0xb2a7('0xa')](),controller['describe']);router[_0xb2a7('0x9')](_0xb2a7('0xc'),auth['isAuthenticated'](),controller[_0xb2a7('0xd')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0xb2a7('0xe')]('/:id',auth[_0xb2a7('0xa')](),controller['update']);router[_0xb2a7('0xf')]('/:id',auth['isAuthenticated'](),controller[_0xb2a7('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00bb=['moment','sequelize','exports','ENUM','agent','queue','DATE','NOW'];(function(_0x3abf9c,_0x2dc833){var _0x3833aa=function(_0x226fd8){while(--_0x226fd8){_0x3abf9c['push'](_0x3abf9c['shift']());}};_0x3833aa(++_0x2dc833);}(_0x00bb,0x1d8));var _0xb00b=function(_0x433a86,_0x175b5c){_0x433a86=_0x433a86-0x0;var _0x23000c=_0x00bb[_0x433a86];return _0x23000c;};'use strict';var moment=require(_0xb00b('0x0'));var Sequelize=require(_0xb00b('0x1'));module[_0xb00b('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0xb00b('0x3')]('account',_0xb00b('0x4'),_0xb00b('0x5')),'allowNull':![],'defaultValue':'queue'},'transferredAt':{'type':Sequelize[_0xb00b('0x6')],'allowNull':![],'defaultValue':Sequelize[_0xb00b('0x7')]}};
\ No newline at end of file
+var _0xe706=['NOW','moment','sequelize','exports','ENUM','account','agent','queue','DATE'];(function(_0x42d137,_0x18e56a){var _0x546158=function(_0x3b7896){while(--_0x3b7896){_0x42d137['push'](_0x42d137['shift']());}};_0x546158(++_0x18e56a);}(_0xe706,0xa3));var _0x6e70=function(_0x4ce15c,_0x1bbcbd){_0x4ce15c=_0x4ce15c-0x0;var _0x5ee259=_0xe706[_0x4ce15c];return _0x5ee259;};'use strict';var moment=require(_0x6e70('0x0'));var Sequelize=require(_0x6e70('0x1'));module[_0x6e70('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x6e70('0x3')](_0x6e70('0x4'),_0x6e70('0x5'),_0x6e70('0x6')),'allowNull':![],'defaultValue':_0x6e70('0x6')},'transferredAt':{'type':Sequelize[_0x6e70('0x7')],'allowNull':![],'defaultValue':Sequelize[_0x6e70('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae87=['sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','sendStatus','error','name','send','index','MailTransferReport','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','nolimit','order','where','pick','filters','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','rawAttributes','find','body','describe','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path'];(function(_0x28da6,_0x365304){var _0x143d3f=function(_0x301fc7){while(--_0x301fc7){_0x28da6['push'](_0x28da6['shift']());}};_0x143d3f(++_0x365304);}(_0xae87,0x179));var _0x7ae8=function(_0x134c2e,_0x3573c4){_0x134c2e=_0x134c2e-0x0;var _0x2825db=_0xae87[_0x134c2e];return _0x2825db;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x7ae8('0x0'));var jsonpatch=require(_0x7ae8('0x1'));var rp=require(_0x7ae8('0x2'));var moment=require(_0x7ae8('0x3'));var BPromise=require(_0x7ae8('0x4'));var Mustache=require(_0x7ae8('0x5'));var util=require(_0x7ae8('0x6'));var path=require(_0x7ae8('0x7'));var sox=require(_0x7ae8('0x8'));var csv=require(_0x7ae8('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7ae8('0xa'));var _=require(_0x7ae8('0xb'));var squel=require(_0x7ae8('0xc'));var crypto=require(_0x7ae8('0xd'));var jsforce=require(_0x7ae8('0xe'));var deskjs=require(_0x7ae8('0xf'));var toCsv=require(_0x7ae8('0x9'));var querystring=require(_0x7ae8('0x10'));var Papa=require(_0x7ae8('0x11'));var Redis=require(_0x7ae8('0x12'));var authService=require(_0x7ae8('0x13'));var qs=require(_0x7ae8('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7ae8('0x15'));var logger=require(_0x7ae8('0x16'))(_0x7ae8('0x17'));var utils=require(_0x7ae8('0x18'));var config=require(_0x7ae8('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x7ae8('0x1a'))['db'];function respondWithStatusCode(_0x130a17,_0x542f27){_0x542f27=_0x542f27||0xcc;return function(_0xd3fc31){if(_0xd3fc31){return _0x130a17['sendStatus'](_0x542f27);}return _0x130a17[_0x7ae8('0x1b')](_0x542f27)[_0x7ae8('0x1c')]();};}function respondWithResult(_0x53300d,_0x34f93c){_0x34f93c=_0x34f93c||0xc8;return function(_0x9f377c){if(_0x9f377c){return _0x53300d[_0x7ae8('0x1b')](_0x34f93c)[_0x7ae8('0x1d')](_0x9f377c);}};}function respondWithFilteredResult(_0x3ebaf3,_0x2feebf){return function(_0x2e6e24){if(_0x2e6e24){var _0x29036c=typeof _0x2feebf[_0x7ae8('0x1e')]===_0x7ae8('0x1f')&&typeof _0x2feebf[_0x7ae8('0x20')]===_0x7ae8('0x1f');var _0x39c2e7=_0x2e6e24[_0x7ae8('0x21')];var _0x2ff5e7=_0x29036c?0x0:_0x2feebf['offset'];var _0x39219a=_0x29036c?_0x2e6e24['count']:_0x2feebf['offset']+_0x2feebf['limit'];var _0x3f8488;if(_0x39219a>=_0x39c2e7){_0x39219a=_0x39c2e7;_0x3f8488=0xc8;}else{_0x3f8488=0xce;}_0x3ebaf3[_0x7ae8('0x1b')](_0x3f8488);return _0x3ebaf3[_0x7ae8('0x22')](_0x7ae8('0x23'),_0x2ff5e7+'-'+_0x39219a+'/'+_0x39c2e7)['json'](_0x2e6e24);}return null;};}function patchUpdates(_0x3e0d6e){return function(_0x421575){try{jsonpatch[_0x7ae8('0x24')](_0x421575,_0x3e0d6e,!![]);}catch(_0x5a39ee){return BPromise['reject'](_0x5a39ee);}return _0x421575[_0x7ae8('0x25')]();};}function saveUpdates(_0xc97770,_0x2a02cc){return function(_0x57ced6){if(_0x57ced6){return _0x57ced6[_0x7ae8('0x26')](_0xc97770)[_0x7ae8('0x27')](function(_0x1ed074){return _0x1ed074;});}return null;};}function removeEntity(_0x409906,_0x50aee1){return function(_0x59594b){if(_0x59594b){return _0x59594b[_0x7ae8('0x28')]()['then'](function(){_0x409906[_0x7ae8('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x593d3f,_0x212121){return function(_0x35354d){if(!_0x35354d){_0x593d3f[_0x7ae8('0x29')](0x194);}return _0x35354d;};}function handleError(_0x596545,_0x5eda4f){_0x5eda4f=_0x5eda4f||0x1f4;return function(_0x2a1e6a){logger[_0x7ae8('0x2a')](_0x2a1e6a['stack']);if(_0x2a1e6a[_0x7ae8('0x2b')]){delete _0x2a1e6a['name'];}_0x596545[_0x7ae8('0x1b')](_0x5eda4f)[_0x7ae8('0x2c')](_0x2a1e6a);};}exports[_0x7ae8('0x2d')]=function(_0x16c90c,_0x1eb0f1){var _0x37273e={},_0x5cdee1={},_0x479504={'count':0x0,'rows':[]};var _0x179897=_['map'](db[_0x7ae8('0x2e')]['rawAttributes'],function(_0x1e88c6){return{'name':_0x1e88c6[_0x7ae8('0x2f')],'type':_0x1e88c6[_0x7ae8('0x30')][_0x7ae8('0x31')]};});_0x5cdee1[_0x7ae8('0x32')]=_[_0x7ae8('0x33')](_0x179897,'name');_0x5cdee1[_0x7ae8('0x34')]=_[_0x7ae8('0x35')](_0x16c90c['query']);_0x5cdee1['filters']=_[_0x7ae8('0x36')](_0x5cdee1['model'],_0x5cdee1[_0x7ae8('0x34')]);_0x37273e[_0x7ae8('0x37')]=_['intersection'](_0x5cdee1[_0x7ae8('0x32')],qs['fields'](_0x16c90c[_0x7ae8('0x34')][_0x7ae8('0x38')]));_0x37273e['attributes']=_0x37273e[_0x7ae8('0x37')][_0x7ae8('0x39')]?_0x37273e[_0x7ae8('0x37')]:_0x5cdee1['model'];if(!_0x16c90c[_0x7ae8('0x34')]['hasOwnProperty'](_0x7ae8('0x3a'))){_0x37273e[_0x7ae8('0x20')]=qs['limit'](_0x16c90c[_0x7ae8('0x34')][_0x7ae8('0x20')]);_0x37273e['offset']=qs['offset'](_0x16c90c[_0x7ae8('0x34')][_0x7ae8('0x1e')]);}_0x37273e[_0x7ae8('0x3b')]=qs['sort'](_0x16c90c[_0x7ae8('0x34')]['sort']);_0x37273e[_0x7ae8('0x3c')]=qs['filters'](_[_0x7ae8('0x3d')](_0x16c90c[_0x7ae8('0x34')],_0x5cdee1[_0x7ae8('0x3e')]),_0x179897);if(_0x16c90c['query'][_0x7ae8('0x3f')]){_0x37273e[_0x7ae8('0x3c')]=_[_0x7ae8('0x40')](_0x37273e[_0x7ae8('0x3c')],{'$or':_[_0x7ae8('0x33')](_0x179897,function(_0x1f605a){if(_0x1f605a['type']!==_0x7ae8('0x41')){var _0x28bc44={};_0x28bc44[_0x1f605a[_0x7ae8('0x2b')]]={'$like':'%'+_0x16c90c[_0x7ae8('0x34')][_0x7ae8('0x3f')]+'%'};return _0x28bc44;}})});}_0x37273e=_[_0x7ae8('0x40')]({},_0x37273e,_0x16c90c[_0x7ae8('0x42')]);var _0x5f589a={'where':_0x37273e[_0x7ae8('0x3c')]};return db[_0x7ae8('0x2e')][_0x7ae8('0x21')](_0x5f589a)[_0x7ae8('0x27')](function(_0x4a5bef){_0x479504[_0x7ae8('0x21')]=_0x4a5bef;if(_0x16c90c[_0x7ae8('0x34')][_0x7ae8('0x43')]){_0x37273e[_0x7ae8('0x44')]=[{'all':!![]}];}return db['MailTransferReport'][_0x7ae8('0x45')](_0x37273e);})[_0x7ae8('0x27')](function(_0x343b3f){_0x479504['rows']=_0x343b3f;return _0x479504;})[_0x7ae8('0x27')](respondWithFilteredResult(_0x1eb0f1,_0x37273e))[_0x7ae8('0x46')](handleError(_0x1eb0f1,null));};exports[_0x7ae8('0x47')]=function(_0x1c8141,_0x4a6fe0){var _0x407852={'raw':!![],'where':{'id':_0x1c8141[_0x7ae8('0x48')]['id']}},_0x5d0e8a={};_0x5d0e8a[_0x7ae8('0x32')]=_[_0x7ae8('0x35')](db[_0x7ae8('0x2e')][_0x7ae8('0x49')]);_0x5d0e8a[_0x7ae8('0x34')]=_['keys'](_0x1c8141['query']);_0x5d0e8a[_0x7ae8('0x3e')]=_[_0x7ae8('0x36')](_0x5d0e8a[_0x7ae8('0x32')],_0x5d0e8a[_0x7ae8('0x34')]);_0x407852[_0x7ae8('0x37')]=_[_0x7ae8('0x36')](_0x5d0e8a[_0x7ae8('0x32')],qs[_0x7ae8('0x38')](_0x1c8141[_0x7ae8('0x34')][_0x7ae8('0x38')]));_0x407852[_0x7ae8('0x37')]=_0x407852[_0x7ae8('0x37')][_0x7ae8('0x39')]?_0x407852[_0x7ae8('0x37')]:_0x5d0e8a[_0x7ae8('0x32')];if(_0x1c8141['query']['includeAll']){_0x407852[_0x7ae8('0x44')]=[{'all':!![]}];}_0x407852=_[_0x7ae8('0x40')]({},_0x407852,_0x1c8141[_0x7ae8('0x42')]);return db[_0x7ae8('0x2e')][_0x7ae8('0x4a')](_0x407852)[_0x7ae8('0x27')](handleEntityNotFound(_0x4a6fe0,null))[_0x7ae8('0x27')](respondWithResult(_0x4a6fe0,null))['catch'](handleError(_0x4a6fe0,null));};exports['create']=function(_0x3423d0,_0x4d6bdc){return db['MailTransferReport']['create'](_0x3423d0[_0x7ae8('0x4b')],{})[_0x7ae8('0x27')](respondWithResult(_0x4d6bdc,0xc9))[_0x7ae8('0x46')](handleError(_0x4d6bdc,null));};exports[_0x7ae8('0x26')]=function(_0x457db8,_0x598305){if(_0x457db8['body']['id']){delete _0x457db8[_0x7ae8('0x4b')]['id'];}return db[_0x7ae8('0x2e')][_0x7ae8('0x4a')]({'where':{'id':_0x457db8[_0x7ae8('0x48')]['id']}})[_0x7ae8('0x27')](handleEntityNotFound(_0x598305,null))[_0x7ae8('0x27')](saveUpdates(_0x457db8[_0x7ae8('0x4b')],null))[_0x7ae8('0x27')](respondWithResult(_0x598305,null))['catch'](handleError(_0x598305,null));};exports[_0x7ae8('0x28')]=function(_0xc34a8,_0x589cdc){return db[_0x7ae8('0x2e')][_0x7ae8('0x4a')]({'where':{'id':_0xc34a8[_0x7ae8('0x48')]['id']}})[_0x7ae8('0x27')](handleEntityNotFound(_0x589cdc,null))[_0x7ae8('0x27')](removeEntity(_0x589cdc,null))[_0x7ae8('0x46')](handleError(_0x589cdc,null));};exports[_0x7ae8('0x4c')]=function(_0x2a626f,_0x2a1b87){return db[_0x7ae8('0x2e')][_0x7ae8('0x4c')]()[_0x7ae8('0x27')](respondWithResult(_0x2a1b87,null))[_0x7ae8('0x46')](handleError(_0x2a1b87,null));};
\ No newline at end of file
+var _0x0c36=['map','MailTransferReport','rawAttributes','fieldName','type','query','keys','filters','intersection','model','attributes','fields','length','nolimit','sort','where','merge','VIRTUAL','filter','options','include','rows','catch','includeAll','find','create','body','params','describe','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','sendStatus','error','stack','name','index'];(function(_0x28d096,_0x58ffdd){var _0x11916c=function(_0x2e4a98){while(--_0x2e4a98){_0x28d096['push'](_0x28d096['shift']());}};_0x11916c(++_0x58ffdd);}(_0x0c36,0x135));var _0x60c3=function(_0x1f9f5f,_0x509fb7){_0x1f9f5f=_0x1f9f5f-0x0;var _0x51d649=_0x0c36[_0x1f9f5f];return _0x51d649;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x60c3('0x0'));var zipdir=require(_0x60c3('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x60c3('0x2'));var moment=require(_0x60c3('0x3'));var BPromise=require(_0x60c3('0x4'));var Mustache=require('mustache');var util=require(_0x60c3('0x5'));var path=require(_0x60c3('0x6'));var sox=require(_0x60c3('0x7'));var csv=require(_0x60c3('0x8'));var ejs=require(_0x60c3('0x9'));var fs=require('fs');var fs_extra=require(_0x60c3('0xa'));var _=require('lodash');var squel=require(_0x60c3('0xb'));var crypto=require(_0x60c3('0xc'));var jsforce=require(_0x60c3('0xd'));var deskjs=require(_0x60c3('0xe'));var toCsv=require(_0x60c3('0x8'));var querystring=require(_0x60c3('0xf'));var Papa=require(_0x60c3('0x10'));var Redis=require(_0x60c3('0x11'));var authService=require(_0x60c3('0x12'));var qs=require(_0x60c3('0x13'));var as=require(_0x60c3('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x60c3('0x15'));var config=require(_0x60c3('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x43097f,_0x2266cd){_0x2266cd=_0x2266cd||0xcc;return function(_0x4ffdd4){if(_0x4ffdd4){return _0x43097f['sendStatus'](_0x2266cd);}return _0x43097f[_0x60c3('0x17')](_0x2266cd)[_0x60c3('0x18')]();};}function respondWithResult(_0x4b763b,_0x29ed9f){_0x29ed9f=_0x29ed9f||0xc8;return function(_0x4d09cc){if(_0x4d09cc){return _0x4b763b[_0x60c3('0x17')](_0x29ed9f)[_0x60c3('0x19')](_0x4d09cc);}};}function respondWithFilteredResult(_0x1c4c07,_0x17cf3e){return function(_0x308303){if(_0x308303){var _0x53b8ad=typeof _0x17cf3e[_0x60c3('0x1a')]===_0x60c3('0x1b')&&typeof _0x17cf3e[_0x60c3('0x1c')]===_0x60c3('0x1b');var _0x51b6aa=_0x308303[_0x60c3('0x1d')];var _0x1291be=_0x53b8ad?0x0:_0x17cf3e[_0x60c3('0x1a')];var _0x70d3c3=_0x53b8ad?_0x308303['count']:_0x17cf3e['offset']+_0x17cf3e['limit'];var _0x2e59e1;if(_0x70d3c3>=_0x51b6aa){_0x70d3c3=_0x51b6aa;_0x2e59e1=0xc8;}else{_0x2e59e1=0xce;}_0x1c4c07['status'](_0x2e59e1);return _0x1c4c07[_0x60c3('0x1e')](_0x60c3('0x1f'),_0x1291be+'-'+_0x70d3c3+'/'+_0x51b6aa)[_0x60c3('0x19')](_0x308303);}return null;};}function patchUpdates(_0x180ae8){return function(_0x6b4fed){try{jsonpatch[_0x60c3('0x20')](_0x6b4fed,_0x180ae8,!![]);}catch(_0x58fd9e){return BPromise['reject'](_0x58fd9e);}return _0x6b4fed['save']();};}function saveUpdates(_0x44a955,_0x1ee796){return function(_0x5a384c){if(_0x5a384c){return _0x5a384c[_0x60c3('0x21')](_0x44a955)[_0x60c3('0x22')](function(_0x235e1f){return _0x235e1f;});}return null;};}function removeEntity(_0x28cb3f,_0x3384de){return function(_0xf2d7d0){if(_0xf2d7d0){return _0xf2d7d0[_0x60c3('0x23')]()[_0x60c3('0x22')](function(){_0x28cb3f['status'](0xcc)[_0x60c3('0x18')]();});}};}function handleEntityNotFound(_0x317896,_0x2af591){return function(_0x3abb57){if(!_0x3abb57){_0x317896[_0x60c3('0x24')](0x194);}return _0x3abb57;};}function handleError(_0x48530b,_0x4f462b){_0x4f462b=_0x4f462b||0x1f4;return function(_0x1d00c0){logger[_0x60c3('0x25')](_0x1d00c0[_0x60c3('0x26')]);if(_0x1d00c0[_0x60c3('0x27')]){delete _0x1d00c0[_0x60c3('0x27')];}_0x48530b[_0x60c3('0x17')](_0x4f462b)['send'](_0x1d00c0);};}exports[_0x60c3('0x28')]=function(_0x4ebcd4,_0x4e97f5){var _0x2c9773={},_0x54cac4={},_0x57e74b={'count':0x0,'rows':[]};var _0x394798=_[_0x60c3('0x29')](db[_0x60c3('0x2a')][_0x60c3('0x2b')],function(_0x49e1d6){return{'name':_0x49e1d6[_0x60c3('0x2c')],'type':_0x49e1d6[_0x60c3('0x2d')]['key']};});_0x54cac4['model']=_[_0x60c3('0x29')](_0x394798,_0x60c3('0x27'));_0x54cac4[_0x60c3('0x2e')]=_[_0x60c3('0x2f')](_0x4ebcd4[_0x60c3('0x2e')]);_0x54cac4[_0x60c3('0x30')]=_[_0x60c3('0x31')](_0x54cac4[_0x60c3('0x32')],_0x54cac4['query']);_0x2c9773[_0x60c3('0x33')]=_[_0x60c3('0x31')](_0x54cac4[_0x60c3('0x32')],qs[_0x60c3('0x34')](_0x4ebcd4['query'][_0x60c3('0x34')]));_0x2c9773[_0x60c3('0x33')]=_0x2c9773['attributes'][_0x60c3('0x35')]?_0x2c9773[_0x60c3('0x33')]:_0x54cac4[_0x60c3('0x32')];if(!_0x4ebcd4[_0x60c3('0x2e')]['hasOwnProperty'](_0x60c3('0x36'))){_0x2c9773['limit']=qs[_0x60c3('0x1c')](_0x4ebcd4[_0x60c3('0x2e')][_0x60c3('0x1c')]);_0x2c9773[_0x60c3('0x1a')]=qs[_0x60c3('0x1a')](_0x4ebcd4['query']['offset']);}_0x2c9773['order']=qs['sort'](_0x4ebcd4[_0x60c3('0x2e')][_0x60c3('0x37')]);_0x2c9773[_0x60c3('0x38')]=qs[_0x60c3('0x30')](_['pick'](_0x4ebcd4[_0x60c3('0x2e')],_0x54cac4[_0x60c3('0x30')]),_0x394798);if(_0x4ebcd4[_0x60c3('0x2e')]['filter']){_0x2c9773[_0x60c3('0x38')]=_[_0x60c3('0x39')](_0x2c9773[_0x60c3('0x38')],{'$or':_['map'](_0x394798,function(_0x2e44d4){if(_0x2e44d4[_0x60c3('0x2d')]!==_0x60c3('0x3a')){var _0x195c93={};_0x195c93[_0x2e44d4['name']]={'$like':'%'+_0x4ebcd4[_0x60c3('0x2e')][_0x60c3('0x3b')]+'%'};return _0x195c93;}})});}_0x2c9773=_['merge']({},_0x2c9773,_0x4ebcd4[_0x60c3('0x3c')]);var _0x4d72b6={'where':_0x2c9773[_0x60c3('0x38')]};return db[_0x60c3('0x2a')][_0x60c3('0x1d')](_0x4d72b6)[_0x60c3('0x22')](function(_0x1d00b6){_0x57e74b[_0x60c3('0x1d')]=_0x1d00b6;if(_0x4ebcd4['query']['includeAll']){_0x2c9773[_0x60c3('0x3d')]=[{'all':!![]}];}return db[_0x60c3('0x2a')]['findAll'](_0x2c9773);})['then'](function(_0xe43bdd){_0x57e74b[_0x60c3('0x3e')]=_0xe43bdd;return _0x57e74b;})[_0x60c3('0x22')](respondWithFilteredResult(_0x4e97f5,_0x2c9773))[_0x60c3('0x3f')](handleError(_0x4e97f5,null));};exports['show']=function(_0x11b66d,_0x5cdcd2){var _0x24f193={'raw':!![],'where':{'id':_0x11b66d['params']['id']}},_0x28d962={};_0x28d962[_0x60c3('0x32')]=_['keys'](db[_0x60c3('0x2a')][_0x60c3('0x2b')]);_0x28d962[_0x60c3('0x2e')]=_[_0x60c3('0x2f')](_0x11b66d[_0x60c3('0x2e')]);_0x28d962[_0x60c3('0x30')]=_[_0x60c3('0x31')](_0x28d962[_0x60c3('0x32')],_0x28d962[_0x60c3('0x2e')]);_0x24f193[_0x60c3('0x33')]=_['intersection'](_0x28d962['model'],qs[_0x60c3('0x34')](_0x11b66d['query'][_0x60c3('0x34')]));_0x24f193['attributes']=_0x24f193[_0x60c3('0x33')][_0x60c3('0x35')]?_0x24f193[_0x60c3('0x33')]:_0x28d962[_0x60c3('0x32')];if(_0x11b66d['query'][_0x60c3('0x40')]){_0x24f193[_0x60c3('0x3d')]=[{'all':!![]}];}_0x24f193=_[_0x60c3('0x39')]({},_0x24f193,_0x11b66d[_0x60c3('0x3c')]);return db[_0x60c3('0x2a')][_0x60c3('0x41')](_0x24f193)[_0x60c3('0x22')](handleEntityNotFound(_0x5cdcd2,null))[_0x60c3('0x22')](respondWithResult(_0x5cdcd2,null))[_0x60c3('0x3f')](handleError(_0x5cdcd2,null));};exports[_0x60c3('0x42')]=function(_0x1217b0,_0x58f6b2){return db[_0x60c3('0x2a')][_0x60c3('0x42')](_0x1217b0[_0x60c3('0x43')],{})[_0x60c3('0x22')](respondWithResult(_0x58f6b2,0xc9))[_0x60c3('0x3f')](handleError(_0x58f6b2,null));};exports['update']=function(_0x985f99,_0x3fbb8b){if(_0x985f99[_0x60c3('0x43')]['id']){delete _0x985f99[_0x60c3('0x43')]['id'];}return db[_0x60c3('0x2a')][_0x60c3('0x41')]({'where':{'id':_0x985f99[_0x60c3('0x44')]['id']}})[_0x60c3('0x22')](handleEntityNotFound(_0x3fbb8b,null))[_0x60c3('0x22')](saveUpdates(_0x985f99[_0x60c3('0x43')],null))['then'](respondWithResult(_0x3fbb8b,null))[_0x60c3('0x3f')](handleError(_0x3fbb8b,null));};exports[_0x60c3('0x23')]=function(_0x2d373f,_0x56abe6){return db[_0x60c3('0x2a')][_0x60c3('0x41')]({'where':{'id':_0x2d373f[_0x60c3('0x44')]['id']}})[_0x60c3('0x22')](handleEntityNotFound(_0x56abe6,null))[_0x60c3('0x22')](removeEntity(_0x56abe6,null))[_0x60c3('0x3f')](handleError(_0x56abe6,null));};exports[_0x60c3('0x45')]=function(_0x23e97e,_0x3c420b){return db[_0x60c3('0x2a')]['describe']()[_0x60c3('0x22')](respondWithResult(_0x3c420b,null))['catch'](handleError(_0x3c420b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae24=['rimraf','./mailTransferReport.attributes','exports','define','MailTransferReport','uniqueid','lodash','../../config/logger','moment','bluebird'];(function(_0xbb3256,_0x147186){var _0x4ee4c0=function(_0x2b6752){while(--_0x2b6752){_0xbb3256['push'](_0xbb3256['shift']());}};_0x4ee4c0(++_0x147186);}(_0xae24,0x182));var _0x4ae2=function(_0x22be34,_0xc4af0e){_0x22be34=_0x22be34-0x0;var _0x4e78d5=_0xae24[_0x22be34];return _0x4e78d5;};'use strict';var _=require(_0x4ae2('0x0'));var util=require('util');var logger=require(_0x4ae2('0x1'))('api');var moment=require(_0x4ae2('0x2'));var BPromise=require(_0x4ae2('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x4ae2('0x4'));var config=require('../../config/environment');var attributes=require(_0x4ae2('0x5'));module[_0x4ae2('0x6')]=function(_0x20c85c,_0x3e6055){return _0x20c85c[_0x4ae2('0x7')](_0x4ae2('0x8'),attributes,{'tableName':'report_mail_transfer','paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x4ae2('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x33c5=['request-promise','path','rimraf','./mailTransferReport.attributes','exports','define','MailTransferReport','report_mail_transfer','uniqueid','util','../../config/logger','moment','bluebird'];(function(_0x52d543,_0x4982e1){var _0x572ca0=function(_0x4af633){while(--_0x4af633){_0x52d543['push'](_0x52d543['shift']());}};_0x572ca0(++_0x4982e1);}(_0x33c5,0xe6));var _0x533c=function(_0x366e99,_0x15d82d){_0x366e99=_0x366e99-0x0;var _0x180bbe=_0x33c5[_0x366e99];return _0x180bbe;};'use strict';var _=require('lodash');var util=require(_0x533c('0x0'));var logger=require(_0x533c('0x1'))('api');var moment=require(_0x533c('0x2'));var BPromise=require(_0x533c('0x3'));var rp=require(_0x533c('0x4'));var fs=require('fs');var path=require(_0x533c('0x5'));var rimraf=require(_0x533c('0x6'));var config=require('../../config/environment');var attributes=require(_0x533c('0x7'));module[_0x533c('0x8')]=function(_0x31d912,_0x151732){return _0x31d912[_0x533c('0x9')](_0x533c('0xa'),attributes,{'tableName':_0x533c('0xb'),'paranoid':![],'indexes':[{'name':_0x533c('0xc'),'fields':[_0x533c('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x68b8=['../../mysqldb','../../config/utils','../../config/environment','jayson/promise','http','request','info','request\x20sent','debug','MailTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','MailTransferReport,\x20%s,\x20%s','result','catch','lodash','util','moment','randomstring'];(function(_0x543242,_0xeac9fd){var _0x4c99b6=function(_0x47d087){while(--_0x47d087){_0x543242['push'](_0x543242['shift']());}};_0x4c99b6(++_0xeac9fd);}(_0x68b8,0x1df));var _0x868b=function(_0x28b930,_0x19b05f){_0x28b930=_0x28b930-0x0;var _0x112256=_0x68b8[_0x28b930];return _0x112256;};'use strict';var _=require(_0x868b('0x0'));var util=require(_0x868b('0x1'));var moment=require(_0x868b('0x2'));var BPromise=require('bluebird');var rs=require(_0x868b('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x868b('0x4'))['db'];var utils=require(_0x868b('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x868b('0x6'));var jayson=require(_0x868b('0x7'));var client=jayson['client'][_0x868b('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x408a44,_0x44dca4,_0x45e3a6){return new BPromise(function(_0x4bbeb4,_0x468877){return client[_0x868b('0x9')](_0x408a44,_0x45e3a6)['then'](function(_0x53c27a){logger[_0x868b('0xa')]('MailTransferReport,\x20%s,\x20%s',_0x44dca4,_0x868b('0xb'));logger[_0x868b('0xc')](_0x868b('0xd'),_0x44dca4,_0x868b('0xb'),JSON[_0x868b('0xe')](_0x53c27a));if(_0x53c27a[_0x868b('0xf')]){if(_0x53c27a['error'][_0x868b('0x10')]===0x1f4){logger[_0x868b('0xf')]('MailTransferReport,\x20%s,\x20%s',_0x44dca4,_0x53c27a[_0x868b('0xf')][_0x868b('0x11')]);return _0x468877(_0x53c27a['error']['message']);}logger['error'](_0x868b('0x12'),_0x44dca4,_0x53c27a[_0x868b('0xf')][_0x868b('0x11')]);return _0x4bbeb4(_0x53c27a[_0x868b('0xf')][_0x868b('0x11')]);}else{logger[_0x868b('0xa')](_0x868b('0x12'),_0x44dca4,'request\x20sent');_0x4bbeb4(_0x53c27a[_0x868b('0x13')][_0x868b('0x11')]);}})[_0x868b('0x14')](function(_0x12f665){logger[_0x868b('0xf')](_0x868b('0x12'),_0x44dca4,_0x12f665);_0x468877(_0x12f665);});});}
\ No newline at end of file
+var _0x473f=['request','info','MailTransferReport,\x20%s,\x20%s','request\x20sent','MailTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','bluebird','ioredis','rpc','../../config/environment','jayson/promise','client'];(function(_0x89a8d0,_0x38a17b){var _0x24fcb6=function(_0x5c459a){while(--_0x5c459a){_0x89a8d0['push'](_0x89a8d0['shift']());}};_0x24fcb6(++_0x38a17b);}(_0x473f,0xc9));var _0xf473=function(_0x4cfc7c,_0x2bd980){_0x4cfc7c=_0x4cfc7c-0x0;var _0x3810ce=_0x473f[_0x4cfc7c];return _0x3810ce;};'use strict';var _=require('lodash');var util=require(_0xf473('0x0'));var moment=require(_0xf473('0x1'));var BPromise=require(_0xf473('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf473('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xf473('0x4'));var config=require(_0xf473('0x5'));var jayson=require(_0xf473('0x6'));var client=jayson[_0xf473('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4a4189,_0x491308,_0xb47b0d){return new BPromise(function(_0x554a93,_0x1512fc){return client[_0xf473('0x8')](_0x4a4189,_0xb47b0d)['then'](function(_0x3dc7dc){logger[_0xf473('0x9')](_0xf473('0xa'),_0x491308,_0xf473('0xb'));logger['debug'](_0xf473('0xc'),_0x491308,_0xf473('0xb'),JSON[_0xf473('0xd')](_0x3dc7dc));if(_0x3dc7dc[_0xf473('0xe')]){if(_0x3dc7dc[_0xf473('0xe')][_0xf473('0xf')]===0x1f4){logger[_0xf473('0xe')]('MailTransferReport,\x20%s,\x20%s',_0x491308,_0x3dc7dc[_0xf473('0xe')][_0xf473('0x10')]);return _0x1512fc(_0x3dc7dc['error'][_0xf473('0x10')]);}logger['error']('MailTransferReport,\x20%s,\x20%s',_0x491308,_0x3dc7dc[_0xf473('0xe')][_0xf473('0x10')]);return _0x554a93(_0x3dc7dc[_0xf473('0xe')][_0xf473('0x10')]);}else{logger[_0xf473('0x9')](_0xf473('0xa'),_0x491308,'request\x20sent');_0x554a93(_0x3dc7dc[_0xf473('0x11')][_0xf473('0x10')]);}})[_0xf473('0x12')](function(_0x4ea079){logger[_0xf473('0xe')](_0xf473('0xa'),_0x491308,_0x4ea079);_0x1512fc(_0x4ea079);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6041=['put','update','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','describe','/:id','show'];(function(_0x58e1c5,_0x42e7f6){var _0x338793=function(_0x1dd547){while(--_0x1dd547){_0x58e1c5['push'](_0x58e1c5['shift']());}};_0x338793(++_0x42e7f6);}(_0x6041,0xe0));var _0x1604=function(_0x20de7f,_0x554aa1){_0x20de7f=_0x20de7f-0x0;var _0x3b9896=_0x6041[_0x20de7f];return _0x3b9896;};'use strict';var multer=require(_0x1604('0x0'));var util=require(_0x1604('0x1'));var path=require(_0x1604('0x2'));var timeout=require(_0x1604('0x3'));var express=require(_0x1604('0x4'));var router=express[_0x1604('0x5')]();var fs_extra=require(_0x1604('0x6'));var auth=require(_0x1604('0x7'));var interaction=require(_0x1604('0x8'));var config=require(_0x1604('0x9'));var controller=require('./memberReport.controller');router[_0x1604('0xa')]('/',auth[_0x1604('0xb')](),controller[_0x1604('0xc')]);router['get']('/describe',auth[_0x1604('0xb')](),controller[_0x1604('0xd')]);router[_0x1604('0xa')](_0x1604('0xe'),auth['isAuthenticated'](),controller[_0x1604('0xf')]);router['post']('/',auth[_0x1604('0xb')](),controller['create']);router[_0x1604('0x10')](_0x1604('0xe'),auth['isAuthenticated'](),controller[_0x1604('0x11')]);router['delete']('/:id',auth[_0x1604('0xb')](),controller[_0x1604('0x12')]);module[_0x1604('0x13')]=router;
\ No newline at end of file
+var _0x4c92=['multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./memberReport.controller','get','/describe','describe','/:id','isAuthenticated','create','put','delete','destroy'];(function(_0x449428,_0x10d747){var _0xe29c2f=function(_0x4e90e3){while(--_0x4e90e3){_0x449428['push'](_0x449428['shift']());}};_0xe29c2f(++_0x10d747);}(_0x4c92,0x18f));var _0x24c9=function(_0x5b4708,_0x9b1584){_0x5b4708=_0x5b4708-0x0;var _0x4597ff=_0x4c92[_0x5b4708];return _0x4597ff;};'use strict';var multer=require(_0x24c9('0x0'));var util=require(_0x24c9('0x1'));var path=require('path');var timeout=require(_0x24c9('0x2'));var express=require(_0x24c9('0x3'));var router=express[_0x24c9('0x4')]();var fs_extra=require(_0x24c9('0x5'));var auth=require(_0x24c9('0x6'));var interaction=require(_0x24c9('0x7'));var config=require(_0x24c9('0x8'));var controller=require(_0x24c9('0x9'));router[_0x24c9('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0x24c9('0xa')](_0x24c9('0xb'),auth['isAuthenticated'](),controller[_0x24c9('0xc')]);router[_0x24c9('0xa')](_0x24c9('0xd'),auth[_0x24c9('0xe')](),controller['show']);router['post']('/',auth[_0x24c9('0xe')](),controller[_0x24c9('0xf')]);router[_0x24c9('0x10')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0x24c9('0x11')]('/:id',auth[_0x24c9('0xe')](),controller[_0x24c9('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2137=['enterAt','seconds','setDataValue','talk:[inbound,\x20outbound],\x20pause:[reason]','talk:[start]','talk:[destination]','talk:[dial\x20string]','talk:[queue]','sequelize','moment','exports','STRING','DEFAULT\x20PAUSE','LOGIN,\x20PAUSE,\x20TALKING','INTEGER'];(function(_0x4f522f,_0x4ac9e0){var _0x5701b3=function(_0x33e8af){while(--_0x33e8af){_0x4f522f['push'](_0x4f522f['shift']());}};_0x5701b3(++_0x4ac9e0);}(_0x2137,0x134));var _0x7213=function(_0x7fc28,_0x17f193){_0x7fc28=_0x7fc28-0x0;var _0x57d19a=_0x2137[_0x7fc28];return _0x57d19a;};'use strict';var Sequelize=require(_0x7213('0x0'));var moment=require(_0x7213('0x1'));module[_0x7213('0x2')]={'channel':{'type':Sequelize['STRING']},'membername':{'type':Sequelize['STRING']},'interface':{'type':Sequelize[_0x7213('0x3')]},'type':{'type':Sequelize['STRING'],'defaultValue':_0x7213('0x4'),'comment':_0x7213('0x5')},'duration':{'type':Sequelize[_0x7213('0x6')]},'enterAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize['DATE'],'set':function(_0x4f36f0){var _0x2cf2d6=moment(_0x4f36f0);var _0x3aa8a3=moment(this['getDataValue'](_0x7213('0x7')));var _0x2ad93f=_0x2cf2d6['diff'](_0x3aa8a3,_0x7213('0x8'));this['setDataValue']('exitAt',_0x4f36f0);this[_0x7213('0x9')]('duration',_0x2ad93f||null);}},'data1':{'type':Sequelize[_0x7213('0x3')],'comment':_0x7213('0xa')},'data2':{'type':Sequelize[_0x7213('0x3')],'comment':_0x7213('0xb')},'data3':{'type':Sequelize[_0x7213('0x3')],'comment':_0x7213('0xc')},'data4':{'type':Sequelize[_0x7213('0x3')],'comment':_0x7213('0xd')},'data5':{'type':Sequelize[_0x7213('0x3')],'comment':_0x7213('0xe')},'role':{'type':Sequelize['STRING']},'internal':{'type':Sequelize[_0x7213('0x6')]},'uniqueid':{'type':Sequelize[_0x7213('0x3')]}};
\ No newline at end of file
+var _0x9e9b=['talk:[start]','talk:[destination]','talk:[queue]','sequelize','STRING','LOGIN,\x20PAUSE,\x20TALKING','INTEGER','DATE','getDataValue','enterAt','diff','seconds','setDataValue','exitAt','talk:[inbound,\x20outbound],\x20pause:[reason]'];(function(_0x197a03,_0x37e7a1){var _0x4e6959=function(_0x392cfa){while(--_0x392cfa){_0x197a03['push'](_0x197a03['shift']());}};_0x4e6959(++_0x37e7a1);}(_0x9e9b,0x1a7));var _0xb9e9=function(_0x3425f9,_0x2358ca){_0x3425f9=_0x3425f9-0x0;var _0x814f39=_0x9e9b[_0x3425f9];return _0x814f39;};'use strict';var Sequelize=require(_0xb9e9('0x0'));var moment=require('moment');module['exports']={'channel':{'type':Sequelize[_0xb9e9('0x1')]},'membername':{'type':Sequelize[_0xb9e9('0x1')]},'interface':{'type':Sequelize[_0xb9e9('0x1')]},'type':{'type':Sequelize[_0xb9e9('0x1')],'defaultValue':'DEFAULT\x20PAUSE','comment':_0xb9e9('0x2')},'duration':{'type':Sequelize[_0xb9e9('0x3')]},'enterAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0xb9e9('0x4')],'set':function(_0x7b18d5){var _0x3e4023=moment(_0x7b18d5);var _0x119d31=moment(this[_0xb9e9('0x5')](_0xb9e9('0x6')));var _0x2e9b34=_0x3e4023[_0xb9e9('0x7')](_0x119d31,_0xb9e9('0x8'));this[_0xb9e9('0x9')](_0xb9e9('0xa'),_0x7b18d5);this[_0xb9e9('0x9')]('duration',_0x2e9b34||null);}},'data1':{'type':Sequelize[_0xb9e9('0x1')],'comment':_0xb9e9('0xb')},'data2':{'type':Sequelize['STRING'],'comment':_0xb9e9('0xc')},'data3':{'type':Sequelize[_0xb9e9('0x1')],'comment':_0xb9e9('0xd')},'data4':{'type':Sequelize['STRING'],'comment':'talk:[dial\x20string]'},'data5':{'type':Sequelize[_0xb9e9('0x1')],'comment':_0xb9e9('0xe')},'role':{'type':Sequelize[_0xb9e9('0x1')]},'internal':{'type':Sequelize[_0xb9e9('0x3')]},'uniqueid':{'type':Sequelize[_0xb9e9('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['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','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','MemberReport','findAll','rows','show','rawAttributes','includeAll','include','find','create','catch','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache'];(function(_0x200af4,_0x8416e8){var _0x3831b6=function(_0xf139c0){while(--_0xf139c0){_0x200af4['push'](_0x200af4['shift']());}};_0x3831b6(++_0x8416e8);}(_0x9957,0x93));var _0x7995=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x9957[_0x1facfa];return _0x9ec701;};'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['MemberReport']['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['MemberReport'][_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['MemberReport'][_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('0x40')][_0x7995('0x47')]({'where':{'id':_0x4ffc8a['params']['id']}})['then'](handleEntityNotFound(_0x19da63,null))['then'](removeEntity(_0x19da63,null))[_0x7995('0x49')](handleError(_0x19da63,null));};exports[_0x7995('0x4c')]=function(_0x4cf5db,_0x1cd85){return db[_0x7995('0x40')][_0x7995('0x4c')]()[_0x7995('0x26')](respondWithResult(_0x1cd85,null))[_0x7995('0x49')](handleError(_0x1cd85,null));};
\ No newline at end of file
+var _0x008c=['destroy','sendStatus','send','index','MemberReport','rawAttributes','key','model','map','name','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','type','VIRTUAL','filter','merge','options','includeAll','include','findAll','rows','show','catch','create','body','find','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','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'];(function(_0x7aa744,_0x450c0d){var _0x3ef3cb=function(_0x44cc93){while(--_0x44cc93){_0x7aa744['push'](_0x7aa744['shift']());}};_0x3ef3cb(++_0x450c0d);}(_0x008c,0x188));var _0xc008=function(_0x5365ad,_0x41ec9b){_0x5365ad=_0x5365ad-0x0;var _0x365519=_0x008c[_0x5365ad];return _0x365519;};'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')](_0x2a7d4f,_0xc008('0x2b'));_0x32390d[_0xc008('0x2c')]=_[_0xc008('0x2d')](_0x25eae4[_0xc008('0x2c')]);_0x32390d[_0xc008('0x2e')]=_[_0xc008('0x2f')](_0x32390d[_0xc008('0x29')],_0x32390d[_0xc008('0x2c')]);_0x24c14c[_0xc008('0x30')]=_['intersection'](_0x32390d[_0xc008('0x29')],qs[_0xc008('0x31')](_0x25eae4['query'][_0xc008('0x31')]));_0x24c14c[_0xc008('0x30')]=_0x24c14c[_0xc008('0x30')][_0xc008('0x32')]?_0x24c14c[_0xc008('0x30')]:_0x32390d[_0xc008('0x29')];if(!_0x25eae4[_0xc008('0x2c')][_0xc008('0x33')](_0xc008('0x34'))){_0x24c14c['limit']=qs[_0xc008('0x1d')](_0x25eae4[_0xc008('0x2c')][_0xc008('0x1d')]);_0x24c14c[_0xc008('0x1b')]=qs[_0xc008('0x1b')](_0x25eae4[_0xc008('0x2c')][_0xc008('0x1b')]);}_0x24c14c['order']=qs[_0xc008('0x35')](_0x25eae4[_0xc008('0x2c')]['sort']);_0x24c14c[_0xc008('0x36')]=qs[_0xc008('0x2e')](_['pick'](_0x25eae4[_0xc008('0x2c')],_0x32390d[_0xc008('0x2e')]),_0x2a7d4f);if(_0x25eae4[_0xc008('0x2c')]['filter']){_0x24c14c['where']=_['merge'](_0x24c14c[_0xc008('0x36')],{'$or':_['map'](_0x2a7d4f,function(_0x3dd0ac){if(_0x3dd0ac[_0xc008('0x37')]!==_0xc008('0x38')){var _0x440459={};_0x440459[_0x3dd0ac[_0xc008('0x2b')]]={'$like':'%'+_0x25eae4[_0xc008('0x2c')][_0xc008('0x39')]+'%'};return _0x440459;}})});}_0x24c14c=_[_0xc008('0x3a')]({},_0x24c14c,_0x25eae4[_0xc008('0x3b')]);var _0x387dfd={'where':_0x24c14c[_0xc008('0x36')]};return db[_0xc008('0x26')][_0xc008('0x1e')](_0x387dfd)[_0xc008('0x21')](function(_0x4cace5){_0x209591[_0xc008('0x1e')]=_0x4cace5;if(_0x25eae4[_0xc008('0x2c')][_0xc008('0x3c')]){_0x24c14c[_0xc008('0x3d')]=[{'all':!![]}];}return db['MemberReport'][_0xc008('0x3e')](_0x24c14c);})[_0xc008('0x21')](function(_0xc8cb91){_0x209591[_0xc008('0x3f')]=_0xc8cb91;return _0x209591;})[_0xc008('0x21')](respondWithFilteredResult(_0x529961,_0x24c14c))['catch'](handleError(_0x529961,null));};exports[_0xc008('0x40')]=function(_0x3323f4,_0x3794b0){var _0x3e9a99={'raw':!![],'where':{'id':_0x3323f4['params']['id']}},_0x7279e8={};_0x7279e8[_0xc008('0x29')]=_[_0xc008('0x2d')](db[_0xc008('0x26')][_0xc008('0x27')]);_0x7279e8['query']=_[_0xc008('0x2d')](_0x3323f4[_0xc008('0x2c')]);_0x7279e8[_0xc008('0x2e')]=_['intersection'](_0x7279e8[_0xc008('0x29')],_0x7279e8['query']);_0x3e9a99[_0xc008('0x30')]=_['intersection'](_0x7279e8[_0xc008('0x29')],qs[_0xc008('0x31')](_0x3323f4['query'][_0xc008('0x31')]));_0x3e9a99[_0xc008('0x30')]=_0x3e9a99[_0xc008('0x30')]['length']?_0x3e9a99[_0xc008('0x30')]:_0x7279e8[_0xc008('0x29')];if(_0x3323f4[_0xc008('0x2c')][_0xc008('0x3c')]){_0x3e9a99[_0xc008('0x3d')]=[{'all':!![]}];}_0x3e9a99=_[_0xc008('0x3a')]({},_0x3e9a99,_0x3323f4['options']);return db['MemberReport']['find'](_0x3e9a99)[_0xc008('0x21')](handleEntityNotFound(_0x3794b0,null))[_0xc008('0x21')](respondWithResult(_0x3794b0,null))[_0xc008('0x41')](handleError(_0x3794b0,null));};exports[_0xc008('0x42')]=function(_0x25289f,_0x24f6a4){return db[_0xc008('0x26')][_0xc008('0x42')](_0x25289f['body'],{})['then'](respondWithResult(_0x24f6a4,0xc9))['catch'](handleError(_0x24f6a4,null));};exports[_0xc008('0x20')]=function(_0x2651cf,_0x158eae){if(_0x2651cf['body']['id']){delete _0x2651cf[_0xc008('0x43')]['id'];}return db[_0xc008('0x26')][_0xc008('0x44')]({'where':{'id':_0x2651cf[_0xc008('0x45')]['id']}})[_0xc008('0x21')](handleEntityNotFound(_0x158eae,null))[_0xc008('0x21')](saveUpdates(_0x2651cf[_0xc008('0x43')],null))[_0xc008('0x21')](respondWithResult(_0x158eae,null))[_0xc008('0x41')](handleError(_0x158eae,null));};exports[_0xc008('0x22')]=function(_0x52c444,_0x4c63d4){return db[_0xc008('0x26')]['find']({'where':{'id':_0x52c444[_0xc008('0x45')]['id']}})[_0xc008('0x21')](handleEntityNotFound(_0x4c63d4,null))[_0xc008('0x21')](removeEntity(_0x4c63d4,null))['catch'](handleError(_0x4c63d4,null));};exports[_0xc008('0x46')]=function(_0x32b435,_0xee64){return db[_0xc008('0x26')][_0xc008('0x46')]()['then'](respondWithResult(_0xee64,null))[_0xc008('0x41')](handleError(_0xee64,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e61=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./memberReport.attributes','exports','define','MemberReport','report_member','membername','interface','lodash'];(function(_0xf88e4d,_0x4df998){var _0x333e27=function(_0x2e4b08){while(--_0x2e4b08){_0xf88e4d['push'](_0xf88e4d['shift']());}};_0x333e27(++_0x4df998);}(_0x4e61,0x1cf));var _0x14e6=function(_0x2c753c,_0x3378e7){_0x2c753c=_0x2c753c-0x0;var _0x23ba20=_0x4e61[_0x2c753c];return _0x23ba20;};'use strict';var _=require(_0x14e6('0x0'));var util=require(_0x14e6('0x1'));var logger=require(_0x14e6('0x2'))(_0x14e6('0x3'));var moment=require(_0x14e6('0x4'));var BPromise=require(_0x14e6('0x5'));var rp=require(_0x14e6('0x6'));var fs=require('fs');var path=require(_0x14e6('0x7'));var rimraf=require(_0x14e6('0x8'));var config=require('../../config/environment');var attributes=require(_0x14e6('0x9'));module[_0x14e6('0xa')]=function(_0x3c11b8,_0x10ac8e){return _0x3c11b8[_0x14e6('0xb')](_0x14e6('0xc'),attributes,{'tableName':_0x14e6('0xd'),'paranoid':![],'indexes':[{'name':'membername_interface','fields':[_0x14e6('0xe'),_0x14e6('0xf')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xbb49=['rimraf','./memberReport.attributes','exports','define','MemberReport','membername_interface','membername','lodash','../../config/logger','api','moment','bluebird','path'];(function(_0x48defd,_0x1836d7){var _0x18672e=function(_0x7b75bd){while(--_0x7b75bd){_0x48defd['push'](_0x48defd['shift']());}};_0x18672e(++_0x1836d7);}(_0xbb49,0xbd));var _0x9bb4=function(_0x3c4156,_0x43c52b){_0x3c4156=_0x3c4156-0x0;var _0x1b8e54=_0xbb49[_0x3c4156];return _0x1b8e54;};'use strict';var _=require(_0x9bb4('0x0'));var util=require('util');var logger=require(_0x9bb4('0x1'))(_0x9bb4('0x2'));var moment=require(_0x9bb4('0x3'));var BPromise=require(_0x9bb4('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x9bb4('0x5'));var rimraf=require(_0x9bb4('0x6'));var config=require('../../config/environment');var attributes=require(_0x9bb4('0x7'));module[_0x9bb4('0x8')]=function(_0x18c2ef,_0x1c6db9){return _0x18c2ef[_0x9bb4('0x9')](_0x9bb4('0xa'),attributes,{'tableName':'report_member','paranoid':![],'indexes':[{'name':_0x9bb4('0xb'),'fields':[_0x9bb4('0xc'),'interface']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7edb=['update','where','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/environment','jayson/promise','client','http','request','info','MemberReport,\x20%s,\x20%s','request\x20sent','debug','MemberReport,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','GetMemberReport','MemberReport','findAll','options','raw','attributes','limit','map','include','model','CreateMemberReport','body','then','stringify','UpdateMemberReport'];(function(_0x161f79,_0x52058c){var _0xd7c8b=function(_0x8e5322){while(--_0x8e5322){_0x161f79['push'](_0x161f79['shift']());}};_0xd7c8b(++_0x52058c);}(_0x7edb,0x158));var _0xb7ed=function(_0x1158de,_0x29435c){_0x1158de=_0x1158de-0x0;var _0x21f764=_0x7edb[_0x1158de];return _0x21f764;};'use strict';var _=require('lodash');var util=require(_0xb7ed('0x0'));var moment=require(_0xb7ed('0x1'));var BPromise=require(_0xb7ed('0x2'));var rs=require(_0xb7ed('0x3'));var fs=require('fs');var Redis=require(_0xb7ed('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xb7ed('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0xb7ed('0x6'));var jayson=require(_0xb7ed('0x7'));var client=jayson[_0xb7ed('0x8')][_0xb7ed('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x85fdf0,_0x161542,_0xac7ffe){return new BPromise(function(_0x3c991d,_0x3aee5b){return client[_0xb7ed('0xa')](_0x85fdf0,_0xac7ffe)['then'](function(_0x209255){logger[_0xb7ed('0xb')](_0xb7ed('0xc'),_0x161542,_0xb7ed('0xd'));logger[_0xb7ed('0xe')](_0xb7ed('0xf'),_0x161542,_0xb7ed('0xd'),JSON['stringify'](_0x209255));if(_0x209255[_0xb7ed('0x10')]){if(_0x209255[_0xb7ed('0x10')][_0xb7ed('0x11')]===0x1f4){logger[_0xb7ed('0x10')](_0xb7ed('0xc'),_0x161542,_0x209255['error']['message']);return _0x3aee5b(_0x209255[_0xb7ed('0x10')]['message']);}logger[_0xb7ed('0x10')](_0xb7ed('0xc'),_0x161542,_0x209255[_0xb7ed('0x10')][_0xb7ed('0x12')]);return _0x3c991d(_0x209255[_0xb7ed('0x10')][_0xb7ed('0x12')]);}else{logger[_0xb7ed('0xb')](_0xb7ed('0xc'),_0x161542,_0xb7ed('0xd'));_0x3c991d(_0x209255[_0xb7ed('0x13')][_0xb7ed('0x12')]);}})[_0xb7ed('0x14')](function(_0x569fb1){logger[_0xb7ed('0x10')]('MemberReport,\x20%s,\x20%s',_0x161542,_0x569fb1);_0x3aee5b(_0x569fb1);});});}exports[_0xb7ed('0x15')]=function(_0x20fe85){var _0x537d3b=this;return new Promise(function(_0x4f1bb3,_0x11e27f){return db[_0xb7ed('0x16')][_0xb7ed('0x17')]({'raw':_0x20fe85['options']?_0x20fe85[_0xb7ed('0x18')][_0xb7ed('0x19')]===undefined?!![]:![]:!![],'where':_0x20fe85[_0xb7ed('0x18')]?_0x20fe85[_0xb7ed('0x18')]['where']||null:null,'attributes':_0x20fe85[_0xb7ed('0x18')]?_0x20fe85[_0xb7ed('0x18')][_0xb7ed('0x1a')]||null:null,'limit':_0x20fe85[_0xb7ed('0x18')]?_0x20fe85[_0xb7ed('0x18')][_0xb7ed('0x1b')]||null:null,'include':_0x20fe85[_0xb7ed('0x18')]?_0x20fe85[_0xb7ed('0x18')]['include']?_[_0xb7ed('0x1c')](_0x20fe85[_0xb7ed('0x18')]['include'],function(_0x4f68b6){return{'model':db[_0x4f68b6['model']],'as':_0x4f68b6['as'],'attributes':_0x4f68b6[_0xb7ed('0x1a')],'include':_0x4f68b6['include']?_['map'](_0x4f68b6[_0xb7ed('0x1d')],function(_0x5807fd){return{'model':db[_0x5807fd[_0xb7ed('0x1e')]],'as':_0x5807fd['as'],'attributes':_0x5807fd['attributes'],'include':_0x5807fd[_0xb7ed('0x1d')]?_[_0xb7ed('0x1c')](_0x5807fd[_0xb7ed('0x1d')],function(_0x27eb83){return{'model':db[_0x27eb83[_0xb7ed('0x1e')]],'as':_0x27eb83['as'],'attributes':_0x27eb83['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x74eb3c){logger[_0xb7ed('0xb')](_0xb7ed('0x15'),_0x20fe85);logger[_0xb7ed('0xe')](_0xb7ed('0x15'),_0x20fe85,JSON['stringify'](_0x74eb3c));_0x4f1bb3(_0x74eb3c);})[_0xb7ed('0x14')](function(_0x43bb8f){logger['error'](_0xb7ed('0x15'),_0x43bb8f[_0xb7ed('0x12')],_0x20fe85);_0x11e27f(_0x537d3b[_0xb7ed('0x10')](0x1f4,_0x43bb8f['message']));});});};exports[_0xb7ed('0x1f')]=function(_0x28da94){var _0x2c4407=this;return new Promise(function(_0x1cbcd6,_0x48d4e5){return db[_0xb7ed('0x16')]['create'](_0x28da94[_0xb7ed('0x20')],{'raw':_0x28da94[_0xb7ed('0x18')]?_0x28da94[_0xb7ed('0x18')][_0xb7ed('0x19')]===undefined?!![]:![]:!![]})[_0xb7ed('0x21')](function(_0x28904c){logger[_0xb7ed('0xb')]('CreateMemberReport',_0x28da94);logger[_0xb7ed('0xe')]('CreateMemberReport',_0x28da94,JSON[_0xb7ed('0x22')](_0x28904c));_0x1cbcd6(_0x28904c);})['catch'](function(_0x22246d){logger[_0xb7ed('0x10')](_0xb7ed('0x1f'),_0x22246d[_0xb7ed('0x12')],_0x28da94);_0x48d4e5(_0x2c4407['error'](0x1f4,_0x22246d[_0xb7ed('0x12')]));});});};exports[_0xb7ed('0x23')]=function(_0x19215b){var _0x267b0e=this;return new Promise(function(_0x32dba1,_0x5c4a73){return db[_0xb7ed('0x16')][_0xb7ed('0x24')](_0x19215b[_0xb7ed('0x20')],{'raw':_0x19215b[_0xb7ed('0x18')]?_0x19215b[_0xb7ed('0x18')][_0xb7ed('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x19215b[_0xb7ed('0x18')]?_0x19215b[_0xb7ed('0x18')][_0xb7ed('0x25')]||null:null,'attributes':_0x19215b['options']?_0x19215b[_0xb7ed('0x18')]['attributes']||null:null,'limit':_0x19215b[_0xb7ed('0x18')]?_0x19215b[_0xb7ed('0x18')][_0xb7ed('0x1b')]||null:null})['then'](function(_0x3bf69e){logger[_0xb7ed('0xb')](_0xb7ed('0x23'),_0x19215b);logger[_0xb7ed('0xe')](_0xb7ed('0x23'),_0x19215b,JSON[_0xb7ed('0x22')](_0x3bf69e));_0x32dba1(_0x3bf69e);})['catch'](function(_0x484b5a){logger[_0xb7ed('0x10')]('UpdateMemberReport',_0x484b5a[_0xb7ed('0x12')],_0x19215b);_0x5c4a73(_0x267b0e[_0xb7ed('0x10')](0x1f4,_0x484b5a['message']));});});};
\ No newline at end of file
+var _0xbff5=['catch','update','then','UpdateMemberReport','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','jayson/promise','client','http','request','MemberReport,\x20%s,\x20%s','request\x20sent','MemberReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','findAll','options','where','attributes','limit','include','map','model','GetMemberReport','MemberReport','create','body','raw','CreateMemberReport','debug'];(function(_0x8da52a,_0x3f20c1){var _0x30d00c=function(_0x1b9555){while(--_0x1b9555){_0x8da52a['push'](_0x8da52a['shift']());}};_0x30d00c(++_0x3f20c1);}(_0xbff5,0x1bc));var _0x5bff=function(_0x130ea3,_0x31920b){_0x130ea3=_0x130ea3-0x0;var _0x2445bb=_0xbff5[_0x130ea3];return _0x2445bb;};'use strict';var _=require(_0x5bff('0x0'));var util=require(_0x5bff('0x1'));var moment=require(_0x5bff('0x2'));var BPromise=require(_0x5bff('0x3'));var rs=require(_0x5bff('0x4'));var fs=require('fs');var Redis=require(_0x5bff('0x5'));var db=require(_0x5bff('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x5bff('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x5bff('0x8'));var client=jayson[_0x5bff('0x9')][_0x5bff('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xa54c57,_0x43605a,_0xd4b9dc){return new BPromise(function(_0x1acb49,_0x139c99){return client[_0x5bff('0xb')](_0xa54c57,_0xd4b9dc)['then'](function(_0x20e26f){logger['info'](_0x5bff('0xc'),_0x43605a,_0x5bff('0xd'));logger['debug'](_0x5bff('0xe'),_0x43605a,'request\x20sent',JSON[_0x5bff('0xf')](_0x20e26f));if(_0x20e26f['error']){if(_0x20e26f[_0x5bff('0x10')][_0x5bff('0x11')]===0x1f4){logger['error'](_0x5bff('0xc'),_0x43605a,_0x20e26f['error'][_0x5bff('0x12')]);return _0x139c99(_0x20e26f[_0x5bff('0x10')]['message']);}logger[_0x5bff('0x10')](_0x5bff('0xc'),_0x43605a,_0x20e26f['error']['message']);return _0x1acb49(_0x20e26f[_0x5bff('0x10')][_0x5bff('0x12')]);}else{logger[_0x5bff('0x13')]('MemberReport,\x20%s,\x20%s',_0x43605a,_0x5bff('0xd'));_0x1acb49(_0x20e26f[_0x5bff('0x14')][_0x5bff('0x12')]);}})['catch'](function(_0x3ffbbc){logger[_0x5bff('0x10')](_0x5bff('0xc'),_0x43605a,_0x3ffbbc);_0x139c99(_0x3ffbbc);});});}exports['GetMemberReport']=function(_0xc9fbc3){var _0x279c22=this;return new Promise(function(_0x36653b,_0x32cf60){return db['MemberReport'][_0x5bff('0x15')]({'raw':_0xc9fbc3['options']?_0xc9fbc3[_0x5bff('0x16')]['raw']===undefined?!![]:![]:!![],'where':_0xc9fbc3[_0x5bff('0x16')]?_0xc9fbc3[_0x5bff('0x16')][_0x5bff('0x17')]||null:null,'attributes':_0xc9fbc3[_0x5bff('0x16')]?_0xc9fbc3[_0x5bff('0x16')][_0x5bff('0x18')]||null:null,'limit':_0xc9fbc3[_0x5bff('0x16')]?_0xc9fbc3[_0x5bff('0x16')][_0x5bff('0x19')]||null:null,'include':_0xc9fbc3['options']?_0xc9fbc3[_0x5bff('0x16')][_0x5bff('0x1a')]?_[_0x5bff('0x1b')](_0xc9fbc3[_0x5bff('0x16')][_0x5bff('0x1a')],function(_0x31d26b){return{'model':db[_0x31d26b[_0x5bff('0x1c')]],'as':_0x31d26b['as'],'attributes':_0x31d26b[_0x5bff('0x18')],'include':_0x31d26b['include']?_['map'](_0x31d26b[_0x5bff('0x1a')],function(_0x53bd97){return{'model':db[_0x53bd97[_0x5bff('0x1c')]],'as':_0x53bd97['as'],'attributes':_0x53bd97[_0x5bff('0x18')],'include':_0x53bd97[_0x5bff('0x1a')]?_[_0x5bff('0x1b')](_0x53bd97[_0x5bff('0x1a')],function(_0x1140eb){return{'model':db[_0x1140eb[_0x5bff('0x1c')]],'as':_0x1140eb['as'],'attributes':_0x1140eb[_0x5bff('0x18')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4df57a){logger[_0x5bff('0x13')](_0x5bff('0x1d'),_0xc9fbc3);logger['debug'](_0x5bff('0x1d'),_0xc9fbc3,JSON['stringify'](_0x4df57a));_0x36653b(_0x4df57a);})['catch'](function(_0x3eda3a){logger['error'](_0x5bff('0x1d'),_0x3eda3a[_0x5bff('0x12')],_0xc9fbc3);_0x32cf60(_0x279c22[_0x5bff('0x10')](0x1f4,_0x3eda3a[_0x5bff('0x12')]));});});};exports['CreateMemberReport']=function(_0x71783){var _0x4ee6f1=this;return new Promise(function(_0x3c1405,_0x5a7873){return db[_0x5bff('0x1e')][_0x5bff('0x1f')](_0x71783[_0x5bff('0x20')],{'raw':_0x71783[_0x5bff('0x16')]?_0x71783[_0x5bff('0x16')][_0x5bff('0x21')]===undefined?!![]:![]:!![]})['then'](function(_0x31b175){logger[_0x5bff('0x13')](_0x5bff('0x22'),_0x71783);logger[_0x5bff('0x23')](_0x5bff('0x22'),_0x71783,JSON[_0x5bff('0xf')](_0x31b175));_0x3c1405(_0x31b175);})[_0x5bff('0x24')](function(_0x16b3c2){logger['error'](_0x5bff('0x22'),_0x16b3c2[_0x5bff('0x12')],_0x71783);_0x5a7873(_0x4ee6f1[_0x5bff('0x10')](0x1f4,_0x16b3c2[_0x5bff('0x12')]));});});};exports['UpdateMemberReport']=function(_0x19cfc3){var _0x48ed7=this;return new Promise(function(_0x5a24be,_0x383e7d){return db[_0x5bff('0x1e')][_0x5bff('0x25')](_0x19cfc3[_0x5bff('0x20')],{'raw':_0x19cfc3['options']?_0x19cfc3[_0x5bff('0x16')][_0x5bff('0x21')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x19cfc3[_0x5bff('0x16')]?_0x19cfc3['options'][_0x5bff('0x17')]||null:null,'attributes':_0x19cfc3['options']?_0x19cfc3[_0x5bff('0x16')][_0x5bff('0x18')]||null:null,'limit':_0x19cfc3[_0x5bff('0x16')]?_0x19cfc3['options'][_0x5bff('0x19')]||null:null})[_0x5bff('0x26')](function(_0x3a4763){logger['info'](_0x5bff('0x27'),_0x19cfc3);logger[_0x5bff('0x23')]('UpdateMemberReport',_0x19cfc3,JSON[_0x5bff('0xf')](_0x3a4763));_0x5a24be(_0x3a4763);})[_0x5bff('0x24')](function(_0x2ff182){logger[_0x5bff('0x10')](_0x5bff('0x27'),_0x2ff182['message'],_0x19cfc3);_0x383e7d(_0x48ed7[_0x5bff('0x10')](0x1f4,_0x2ff182['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf569=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./migration.controller','index','exports','util'];(function(_0x5ba2d0,_0x52a411){var _0x5e9f56=function(_0x4bcc01){while(--_0x4bcc01){_0x5ba2d0['push'](_0x5ba2d0['shift']());}};_0x5e9f56(++_0x52a411);}(_0xf569,0xd0));var _0x9f56=function(_0x5627e1,_0x1b2dbf){_0x5627e1=_0x5627e1-0x0;var _0x2f013f=_0xf569[_0x5627e1];return _0x2f013f;};'use strict';var multer=require('multer');var util=require(_0x9f56('0x0'));var path=require(_0x9f56('0x1'));var timeout=require(_0x9f56('0x2'));var express=require(_0x9f56('0x3'));var router=express[_0x9f56('0x4')]();var fs_extra=require(_0x9f56('0x5'));var auth=require(_0x9f56('0x6'));var interaction=require(_0x9f56('0x7'));var config=require('../../config/environment');var controller=require(_0x9f56('0x8'));router['get']('/',controller[_0x9f56('0x9')]);module[_0x9f56('0xa')]=router;
\ No newline at end of file
+var _0x5e38=['index','exports','util','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','./migration.controller','get'];(function(_0x37613e,_0x5a048b){var _0x352116=function(_0x3d77a2){while(--_0x3d77a2){_0x37613e['push'](_0x37613e['shift']());}};_0x352116(++_0x5a048b);}(_0x5e38,0x12e));var _0x85e3=function(_0x6effa7,_0x390cef){_0x6effa7=_0x6effa7-0x0;var _0x4b9093=_0x5e38[_0x6effa7];return _0x4b9093;};'use strict';var multer=require('multer');var util=require(_0x85e3('0x0'));var path=require('path');var timeout=require(_0x85e3('0x1'));var express=require(_0x85e3('0x2'));var router=express['Router']();var fs_extra=require(_0x85e3('0x3'));var auth=require(_0x85e3('0x4'));var interaction=require(_0x85e3('0x5'));var config=require('../../config/environment');var controller=require(_0x85e3('0x6'));router[_0x85e3('0x7')]('/',controller[_0x85e3('0x8')]);module[_0x85e3('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7439=['version','sequelize','exports','STRING'];(function(_0x54ea7a,_0x19df9b){var _0x65a10d=function(_0x1bf936){while(--_0x1bf936){_0x54ea7a['push'](_0x54ea7a['shift']());}};_0x65a10d(++_0x19df9b);}(_0x7439,0x169));var _0x9743=function(_0x209e45,_0x4002af){_0x209e45=_0x209e45-0x0;var _0x136f6f=_0x7439[_0x209e45];return _0x136f6f;};'use strict';var Sequelize=require(_0x9743('0x0'));module[_0x9743('0x1')]={'version':{'type':Sequelize[_0x9743('0x2')],'unique':_0x9743('0x3')}};
\ No newline at end of file
+var _0xf8d3=['STRING','version','sequelize','exports'];(function(_0x47b58b,_0x41a189){var _0x46bebe=function(_0x22bbfa){while(--_0x22bbfa){_0x47b58b['push'](_0x47b58b['shift']());}};_0x46bebe(++_0x41a189);}(_0xf8d3,0x17a));var _0x3f8d=function(_0x4a9801,_0x548afb){_0x4a9801=_0x4a9801-0x0;var _0x2b089a=_0xf8d3[_0x4a9801];return _0x2b089a;};'use strict';var Sequelize=require(_0x3f8d('0x0'));module[_0x3f8d('0x1')]={'version':{'type':Sequelize[_0x3f8d('0x2')],'unique':_0x3f8d('0x3')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcdea=['length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','include','Migration','findAll','rows','catch','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','save','update','then','error','stack','send','index','map','model','name','query','keys','attributes','intersection','fields'];(function(_0x38b360,_0x4fd106){var _0x29932f=function(_0x25dec5){while(--_0x25dec5){_0x38b360['push'](_0x38b360['shift']());}};_0x29932f(++_0x4fd106);}(_0xcdea,0x164));var _0xacde=function(_0x1911ed,_0x4e8c73){_0x1911ed=_0x1911ed-0x0;var _0x11edaa=_0xcdea[_0x1911ed];return _0x11edaa;};'use strict';var emlformat=require(_0xacde('0x0'));var rimraf=require(_0xacde('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xacde('0x2'));var rp=require(_0xacde('0x3'));var moment=require('moment');var BPromise=require(_0xacde('0x4'));var Mustache=require(_0xacde('0x5'));var util=require(_0xacde('0x6'));var path=require(_0xacde('0x7'));var sox=require(_0xacde('0x8'));var csv=require('to-csv');var ejs=require(_0xacde('0x9'));var fs=require('fs');var fs_extra=require(_0xacde('0xa'));var _=require(_0xacde('0xb'));var squel=require(_0xacde('0xc'));var crypto=require(_0xacde('0xd'));var jsforce=require(_0xacde('0xe'));var deskjs=require(_0xacde('0xf'));var toCsv=require(_0xacde('0x10'));var querystring=require(_0xacde('0x11'));var Papa=require(_0xacde('0x12'));var Redis=require(_0xacde('0x13'));var authService=require('../../components/auth/service');var qs=require(_0xacde('0x14'));var as=require(_0xacde('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xacde('0x16'));var utils=require(_0xacde('0x17'));var config=require(_0xacde('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xacde('0x19'))['db'];function respondWithStatusCode(_0x5b1829,_0x423ab3){_0x423ab3=_0x423ab3||0xcc;return function(_0x36d2e0){if(_0x36d2e0){return _0x5b1829[_0xacde('0x1a')](_0x423ab3);}return _0x5b1829[_0xacde('0x1b')](_0x423ab3)[_0xacde('0x1c')]();};}function respondWithResult(_0x5a1c08,_0x344579){_0x344579=_0x344579||0xc8;return function(_0x2fc7f6){if(_0x2fc7f6){return _0x5a1c08[_0xacde('0x1b')](_0x344579)['json'](_0x2fc7f6);}};}function respondWithFilteredResult(_0x3d3513,_0x26248f){return function(_0x1909f4){if(_0x1909f4){var _0x1184a9=typeof _0x26248f[_0xacde('0x1d')]===_0xacde('0x1e')&&typeof _0x26248f[_0xacde('0x1f')]===_0xacde('0x1e');var _0x5b3275=_0x1909f4[_0xacde('0x20')];var _0x45cbbb=_0x1184a9?0x0:_0x26248f['offset'];var _0x1937f4=_0x1184a9?_0x1909f4[_0xacde('0x20')]:_0x26248f['offset']+_0x26248f[_0xacde('0x1f')];var _0x11f4ce;if(_0x1937f4>=_0x5b3275){_0x1937f4=_0x5b3275;_0x11f4ce=0xc8;}else{_0x11f4ce=0xce;}_0x3d3513[_0xacde('0x1b')](_0x11f4ce);return _0x3d3513[_0xacde('0x21')](_0xacde('0x22'),_0x45cbbb+'-'+_0x1937f4+'/'+_0x5b3275)[_0xacde('0x23')](_0x1909f4);}return null;};}function patchUpdates(_0x1fd4ab){return function(_0x622c18){try{jsonpatch[_0xacde('0x24')](_0x622c18,_0x1fd4ab,!![]);}catch(_0x229528){return BPromise['reject'](_0x229528);}return _0x622c18[_0xacde('0x25')]();};}function saveUpdates(_0xd22aec,_0x2f9d5c){return function(_0x377fc4){if(_0x377fc4){return _0x377fc4[_0xacde('0x26')](_0xd22aec)[_0xacde('0x27')](function(_0x533e91){return _0x533e91;});}return null;};}function removeEntity(_0x54b5ea,_0xf61207){return function(_0x590754){if(_0x590754){return _0x590754['destroy']()[_0xacde('0x27')](function(){_0x54b5ea[_0xacde('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x570151,_0x5ed984){return function(_0x4cda0b){if(!_0x4cda0b){_0x570151[_0xacde('0x1a')](0x194);}return _0x4cda0b;};}function handleError(_0x1f66a2,_0x38ecd3){_0x38ecd3=_0x38ecd3||0x1f4;return function(_0x3669d0){logger[_0xacde('0x28')](_0x3669d0[_0xacde('0x29')]);if(_0x3669d0['name']){delete _0x3669d0['name'];}_0x1f66a2[_0xacde('0x1b')](_0x38ecd3)[_0xacde('0x2a')](_0x3669d0);};}exports[_0xacde('0x2b')]=function(_0x2c1ae4,_0x24918b){var _0x1f4677={},_0x1471d8={},_0x2b3110={'count':0x0,'rows':[]};var _0x578d48=_[_0xacde('0x2c')](db['Migration']['rawAttributes'],function(_0x47ce89){return{'name':_0x47ce89['fieldName'],'type':_0x47ce89['type']['key']};});_0x1471d8[_0xacde('0x2d')]=_[_0xacde('0x2c')](_0x578d48,_0xacde('0x2e'));_0x1471d8[_0xacde('0x2f')]=_[_0xacde('0x30')](_0x2c1ae4[_0xacde('0x2f')]);_0x1471d8['filters']=_['intersection'](_0x1471d8[_0xacde('0x2d')],_0x1471d8['query']);_0x1f4677[_0xacde('0x31')]=_[_0xacde('0x32')](_0x1471d8[_0xacde('0x2d')],qs[_0xacde('0x33')](_0x2c1ae4[_0xacde('0x2f')][_0xacde('0x33')]));_0x1f4677[_0xacde('0x31')]=_0x1f4677[_0xacde('0x31')][_0xacde('0x34')]?_0x1f4677[_0xacde('0x31')]:_0x1471d8['model'];if(!_0x2c1ae4[_0xacde('0x2f')][_0xacde('0x35')]('nolimit')){_0x1f4677[_0xacde('0x1f')]=qs[_0xacde('0x1f')](_0x2c1ae4[_0xacde('0x2f')]['limit']);_0x1f4677[_0xacde('0x1d')]=qs[_0xacde('0x1d')](_0x2c1ae4[_0xacde('0x2f')]['offset']);}_0x1f4677[_0xacde('0x36')]=qs[_0xacde('0x37')](_0x2c1ae4[_0xacde('0x2f')][_0xacde('0x37')]);_0x1f4677[_0xacde('0x38')]=qs[_0xacde('0x39')](_[_0xacde('0x3a')](_0x2c1ae4['query'],_0x1471d8[_0xacde('0x39')]),_0x578d48);if(_0x2c1ae4[_0xacde('0x2f')][_0xacde('0x3b')]){_0x1f4677[_0xacde('0x38')]=_[_0xacde('0x3c')](_0x1f4677[_0xacde('0x38')],{'$or':_[_0xacde('0x2c')](_0x578d48,function(_0x55f4c6){if(_0x55f4c6['type']!==_0xacde('0x3d')){var _0x499f22={};_0x499f22[_0x55f4c6[_0xacde('0x2e')]]={'$like':'%'+_0x2c1ae4['query'][_0xacde('0x3b')]+'%'};return _0x499f22;}})});}_0x1f4677=_[_0xacde('0x3c')]({},_0x1f4677,_0x2c1ae4['options']);var _0x4a84a8={'where':_0x1f4677[_0xacde('0x38')]};return db['Migration'][_0xacde('0x20')](_0x4a84a8)[_0xacde('0x27')](function(_0x1d915a){_0x2b3110[_0xacde('0x20')]=_0x1d915a;if(_0x2c1ae4[_0xacde('0x2f')][_0xacde('0x3e')]){_0x1f4677[_0xacde('0x3f')]=[{'all':!![]}];}return db[_0xacde('0x40')][_0xacde('0x41')](_0x1f4677);})[_0xacde('0x27')](function(_0x50651b){_0x2b3110[_0xacde('0x42')]=_0x50651b;return _0x2b3110;})[_0xacde('0x27')](respondWithFilteredResult(_0x24918b,_0x1f4677))[_0xacde('0x43')](handleError(_0x24918b,null));};
\ No newline at end of file
+var _0xdc6f=['Migration','fieldName','key','model','name','query','filters','intersection','attributes','fields','hasOwnProperty','order','sort','pick','filter','where','type','merge','include','rows','catch','eml-format','rimraf','request-promise','moment','bluebird','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','destroy','then','error','send','index','map'];(function(_0x266330,_0x2d714c){var _0x1b6cf5=function(_0x54dcd5){while(--_0x54dcd5){_0x266330['push'](_0x266330['shift']());}};_0x1b6cf5(++_0x2d714c);}(_0xdc6f,0xf9));var _0xfdc6=function(_0x42322d,_0x5567b8){_0x42322d=_0x42322d-0x0;var _0x409906=_0xdc6f[_0x42322d];return _0x409906;};'use strict';var emlformat=require(_0xfdc6('0x0'));var rimraf=require(_0xfdc6('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xfdc6('0x2'));var moment=require(_0xfdc6('0x3'));var BPromise=require(_0xfdc6('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0xfdc6('0x5'));var sox=require('sox');var csv=require(_0xfdc6('0x6'));var ejs=require(_0xfdc6('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xfdc6('0x8'));var squel=require(_0xfdc6('0x9'));var crypto=require(_0xfdc6('0xa'));var jsforce=require(_0xfdc6('0xb'));var deskjs=require(_0xfdc6('0xc'));var toCsv=require(_0xfdc6('0x6'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xfdc6('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xfdc6('0xe'));var utils=require(_0xfdc6('0xf'));var config=require(_0xfdc6('0x10'));var licenseUtil=require('../../config/license/util');var db=require(_0xfdc6('0x11'))['db'];function respondWithStatusCode(_0x1294d6,_0x255375){_0x255375=_0x255375||0xcc;return function(_0x3c0dd2){if(_0x3c0dd2){return _0x1294d6[_0xfdc6('0x12')](_0x255375);}return _0x1294d6['status'](_0x255375)[_0xfdc6('0x13')]();};}function respondWithResult(_0x176941,_0x394f50){_0x394f50=_0x394f50||0xc8;return function(_0x26394a){if(_0x26394a){return _0x176941[_0xfdc6('0x14')](_0x394f50)['json'](_0x26394a);}};}function respondWithFilteredResult(_0x24e2d1,_0x434fff){return function(_0x3cb5d1){if(_0x3cb5d1){var _0x5544cf=typeof _0x434fff[_0xfdc6('0x15')]===_0xfdc6('0x16')&&typeof _0x434fff[_0xfdc6('0x17')]==='undefined';var _0x284afe=_0x3cb5d1[_0xfdc6('0x18')];var _0x1f490c=_0x5544cf?0x0:_0x434fff['offset'];var _0x41e541=_0x5544cf?_0x3cb5d1[_0xfdc6('0x18')]:_0x434fff['offset']+_0x434fff[_0xfdc6('0x17')];var _0x43faa2;if(_0x41e541>=_0x284afe){_0x41e541=_0x284afe;_0x43faa2=0xc8;}else{_0x43faa2=0xce;}_0x24e2d1[_0xfdc6('0x14')](_0x43faa2);return _0x24e2d1[_0xfdc6('0x19')](_0xfdc6('0x1a'),_0x1f490c+'-'+_0x41e541+'/'+_0x284afe)[_0xfdc6('0x1b')](_0x3cb5d1);}return null;};}function patchUpdates(_0x416901){return function(_0xb7716){try{jsonpatch[_0xfdc6('0x1c')](_0xb7716,_0x416901,!![]);}catch(_0x501fe0){return BPromise[_0xfdc6('0x1d')](_0x501fe0);}return _0xb7716['save']();};}function saveUpdates(_0x3da847,_0x1fbdd0){return function(_0x1dd5fd){if(_0x1dd5fd){return _0x1dd5fd['update'](_0x3da847)['then'](function(_0x3dd396){return _0x3dd396;});}return null;};}function removeEntity(_0x3f513f,_0x548739){return function(_0x1f1b70){if(_0x1f1b70){return _0x1f1b70[_0xfdc6('0x1e')]()[_0xfdc6('0x1f')](function(){_0x3f513f['status'](0xcc)[_0xfdc6('0x13')]();});}};}function handleEntityNotFound(_0x4a280c,_0x5c8d1b){return function(_0x547db8){if(!_0x547db8){_0x4a280c[_0xfdc6('0x12')](0x194);}return _0x547db8;};}function handleError(_0x40974e,_0x2c74a0){_0x2c74a0=_0x2c74a0||0x1f4;return function(_0x523207){logger[_0xfdc6('0x20')](_0x523207['stack']);if(_0x523207['name']){delete _0x523207['name'];}_0x40974e[_0xfdc6('0x14')](_0x2c74a0)[_0xfdc6('0x21')](_0x523207);};}exports[_0xfdc6('0x22')]=function(_0x13e8e8,_0x53456f){var _0x3992e7={},_0x466623={},_0x11ce7a={'count':0x0,'rows':[]};var _0x2f1971=_[_0xfdc6('0x23')](db[_0xfdc6('0x24')]['rawAttributes'],function(_0x25719f){return{'name':_0x25719f[_0xfdc6('0x25')],'type':_0x25719f['type'][_0xfdc6('0x26')]};});_0x466623[_0xfdc6('0x27')]=_[_0xfdc6('0x23')](_0x2f1971,_0xfdc6('0x28'));_0x466623[_0xfdc6('0x29')]=_['keys'](_0x13e8e8[_0xfdc6('0x29')]);_0x466623[_0xfdc6('0x2a')]=_[_0xfdc6('0x2b')](_0x466623[_0xfdc6('0x27')],_0x466623[_0xfdc6('0x29')]);_0x3992e7[_0xfdc6('0x2c')]=_[_0xfdc6('0x2b')](_0x466623[_0xfdc6('0x27')],qs['fields'](_0x13e8e8['query'][_0xfdc6('0x2d')]));_0x3992e7[_0xfdc6('0x2c')]=_0x3992e7[_0xfdc6('0x2c')]['length']?_0x3992e7['attributes']:_0x466623[_0xfdc6('0x27')];if(!_0x13e8e8['query'][_0xfdc6('0x2e')]('nolimit')){_0x3992e7[_0xfdc6('0x17')]=qs['limit'](_0x13e8e8[_0xfdc6('0x29')][_0xfdc6('0x17')]);_0x3992e7[_0xfdc6('0x15')]=qs[_0xfdc6('0x15')](_0x13e8e8[_0xfdc6('0x29')]['offset']);}_0x3992e7[_0xfdc6('0x2f')]=qs[_0xfdc6('0x30')](_0x13e8e8[_0xfdc6('0x29')][_0xfdc6('0x30')]);_0x3992e7['where']=qs[_0xfdc6('0x2a')](_[_0xfdc6('0x31')](_0x13e8e8['query'],_0x466623['filters']),_0x2f1971);if(_0x13e8e8[_0xfdc6('0x29')][_0xfdc6('0x32')]){_0x3992e7[_0xfdc6('0x33')]=_['merge'](_0x3992e7[_0xfdc6('0x33')],{'$or':_[_0xfdc6('0x23')](_0x2f1971,function(_0x2dabaf){if(_0x2dabaf[_0xfdc6('0x34')]!=='VIRTUAL'){var _0x3783ae={};_0x3783ae[_0x2dabaf['name']]={'$like':'%'+_0x13e8e8[_0xfdc6('0x29')]['filter']+'%'};return _0x3783ae;}})});}_0x3992e7=_[_0xfdc6('0x35')]({},_0x3992e7,_0x13e8e8['options']);var _0x5a5def={'where':_0x3992e7[_0xfdc6('0x33')]};return db[_0xfdc6('0x24')][_0xfdc6('0x18')](_0x5a5def)[_0xfdc6('0x1f')](function(_0x5b77a4){_0x11ce7a[_0xfdc6('0x18')]=_0x5b77a4;if(_0x13e8e8[_0xfdc6('0x29')]['includeAll']){_0x3992e7[_0xfdc6('0x36')]=[{'all':!![]}];}return db[_0xfdc6('0x24')]['findAll'](_0x3992e7);})[_0xfdc6('0x1f')](function(_0x477af0){_0x11ce7a[_0xfdc6('0x37')]=_0x477af0;return _0x11ce7a;})[_0xfdc6('0x1f')](respondWithFilteredResult(_0x53456f,_0x3992e7))[_0xfdc6('0x38')](handleError(_0x53456f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x52e2=['../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','exports','Migration','migrations','lodash','util'];(function(_0x28db46,_0x42dc11){var _0xf8134d=function(_0x1e2ebf){while(--_0x1e2ebf){_0x28db46['push'](_0x28db46['shift']());}};_0xf8134d(++_0x42dc11);}(_0x52e2,0x1ba));var _0x252e=function(_0x5d1566,_0x3fed4b){_0x5d1566=_0x5d1566-0x0;var _0x3441a2=_0x52e2[_0x5d1566];return _0x3441a2;};'use strict';var _=require(_0x252e('0x0'));var util=require(_0x252e('0x1'));var logger=require(_0x252e('0x2'))(_0x252e('0x3'));var moment=require('moment');var BPromise=require(_0x252e('0x4'));var rp=require(_0x252e('0x5'));var fs=require('fs');var path=require(_0x252e('0x6'));var rimraf=require(_0x252e('0x7'));var config=require(_0x252e('0x8'));var attributes=require('./migration.attributes');module[_0x252e('0x9')]=function(_0x5770c1,_0x5440ab){return _0x5770c1['define'](_0x252e('0xa'),attributes,{'tableName':_0x252e('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x45c1=['lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf','exports','define'];(function(_0x47f3ff,_0x1eb60){var _0x3aa2d5=function(_0x10d39e){while(--_0x10d39e){_0x47f3ff['push'](_0x47f3ff['shift']());}};_0x3aa2d5(++_0x1eb60);}(_0x45c1,0xd8));var _0x145c=function(_0x429337,_0x37fff0){_0x429337=_0x429337-0x0;var _0x26d5b3=_0x45c1[_0x429337];return _0x26d5b3;};'use strict';var _=require(_0x145c('0x0'));var util=require('util');var logger=require(_0x145c('0x1'))('api');var moment=require(_0x145c('0x2'));var BPromise=require(_0x145c('0x3'));var rp=require(_0x145c('0x4'));var fs=require('fs');var path=require(_0x145c('0x5'));var rimraf=require(_0x145c('0x6'));var config=require('../../config/environment');var attributes=require('./migration.attributes');module[_0x145c('0x7')]=function(_0xe89426,_0x4ea6f8){return _0xe89426[_0x145c('0x8')]('Migration',attributes,{'tableName':'migrations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54f3=['moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','http','then','info','Migration,\x20%s,\x20%s','Migration,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','catch','util'];(function(_0x5b8222,_0x4b2016){var _0x480154=function(_0x444300){while(--_0x444300){_0x5b8222['push'](_0x5b8222['shift']());}};_0x480154(++_0x4b2016);}(_0x54f3,0x120));var _0x354f=function(_0x5d6456,_0x58ecc7){_0x5d6456=_0x5d6456-0x0;var _0x4d66c1=_0x54f3[_0x5d6456];return _0x4d66c1;};'use strict';var _=require('lodash');var util=require(_0x354f('0x0'));var moment=require(_0x354f('0x1'));var BPromise=require(_0x354f('0x2'));var rs=require(_0x354f('0x3'));var fs=require('fs');var Redis=require(_0x354f('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x354f('0x5'))(_0x354f('0x6'));var config=require(_0x354f('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x354f('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x51cd16,_0x1da503,_0x4311ad){return new BPromise(function(_0x2f111a,_0x173e1d){return client['request'](_0x51cd16,_0x4311ad)[_0x354f('0x9')](function(_0x5d1e5d){logger[_0x354f('0xa')](_0x354f('0xb'),_0x1da503,'request\x20sent');logger['debug'](_0x354f('0xc'),_0x1da503,_0x354f('0xd'),JSON['stringify'](_0x5d1e5d));if(_0x5d1e5d[_0x354f('0xe')]){if(_0x5d1e5d[_0x354f('0xe')]['code']===0x1f4){logger[_0x354f('0xe')](_0x354f('0xb'),_0x1da503,_0x5d1e5d[_0x354f('0xe')][_0x354f('0xf')]);return _0x173e1d(_0x5d1e5d[_0x354f('0xe')][_0x354f('0xf')]);}logger[_0x354f('0xe')]('Migration,\x20%s,\x20%s',_0x1da503,_0x5d1e5d[_0x354f('0xe')][_0x354f('0xf')]);return _0x2f111a(_0x5d1e5d[_0x354f('0xe')]['message']);}else{logger[_0x354f('0xa')](_0x354f('0xb'),_0x1da503,_0x354f('0xd'));_0x2f111a(_0x5d1e5d['result']['message']);}})[_0x354f('0x10')](function(_0x1d7627){logger[_0x354f('0xe')](_0x354f('0xb'),_0x1da503,_0x1d7627);_0x173e1d(_0x1d7627);});});}
\ No newline at end of file
+var _0x85d3=['result','catch','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','request','then','info','Migration,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent'];(function(_0x120e59,_0x443649){var _0x53ff80=function(_0x5a642e){while(--_0x5a642e){_0x120e59['push'](_0x120e59['shift']());}};_0x53ff80(++_0x443649);}(_0x85d3,0xc8));var _0x385d=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x85d3[_0x5b644e];return _0x49c6bf;};'use strict';var _=require(_0x385d('0x0'));var util=require(_0x385d('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x385d('0x2'));var fs=require('fs');var Redis=require(_0x385d('0x3'));var db=require(_0x385d('0x4'))['db'];var utils=require(_0x385d('0x5'));var logger=require(_0x385d('0x6'))(_0x385d('0x7'));var config=require('../../config/environment');var jayson=require(_0x385d('0x8'));var client=jayson['client'][_0x385d('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x132666,_0x1329cd,_0x2e7f52){return new BPromise(function(_0x4840db,_0x41008c){return client[_0x385d('0xa')](_0x132666,_0x2e7f52)[_0x385d('0xb')](function(_0x1b7329){logger[_0x385d('0xc')](_0x385d('0xd'),_0x1329cd,'request\x20sent');logger[_0x385d('0xe')]('Migration,\x20%s,\x20%s,\x20%s',_0x1329cd,'request\x20sent',JSON[_0x385d('0xf')](_0x1b7329));if(_0x1b7329[_0x385d('0x10')]){if(_0x1b7329[_0x385d('0x10')][_0x385d('0x11')]===0x1f4){logger[_0x385d('0x10')](_0x385d('0xd'),_0x1329cd,_0x1b7329[_0x385d('0x10')]['message']);return _0x41008c(_0x1b7329['error'][_0x385d('0x12')]);}logger[_0x385d('0x10')](_0x385d('0xd'),_0x1329cd,_0x1b7329['error'][_0x385d('0x12')]);return _0x4840db(_0x1b7329[_0x385d('0x10')][_0x385d('0x12')]);}else{logger[_0x385d('0xc')](_0x385d('0xd'),_0x1329cd,_0x385d('0x13'));_0x4840db(_0x1b7329[_0x385d('0x14')]['message']);}})[_0x385d('0x15')](function(_0x5f47e5){logger[_0x385d('0x10')](_0x385d('0xd'),_0x1329cd,_0x5f47e5);_0x41008c(_0x5f47e5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8835=['post','create','put','update','destroy','multer','util','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./network.controller','get','isAuthenticated','index','/:id','show'];(function(_0x1c98cb,_0x3dd9ab){var _0x4e8cc5=function(_0x157be0){while(--_0x157be0){_0x1c98cb['push'](_0x1c98cb['shift']());}};_0x4e8cc5(++_0x3dd9ab);}(_0x8835,0xfc));var _0x5883=function(_0x3c3070,_0x1161da){_0x3c3070=_0x3c3070-0x0;var _0x540e64=_0x8835[_0x3c3070];return _0x540e64;};'use strict';var multer=require(_0x5883('0x0'));var util=require(_0x5883('0x1'));var path=require(_0x5883('0x2'));var timeout=require(_0x5883('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x5883('0x4'));var auth=require(_0x5883('0x5'));var interaction=require(_0x5883('0x6'));var config=require(_0x5883('0x7'));var controller=require(_0x5883('0x8'));router[_0x5883('0x9')]('/',auth[_0x5883('0xa')](),controller[_0x5883('0xb')]);router[_0x5883('0x9')](_0x5883('0xc'),auth[_0x5883('0xa')](),controller[_0x5883('0xd')]);router[_0x5883('0xe')]('/',auth[_0x5883('0xa')](),controller[_0x5883('0xf')]);router[_0x5883('0x10')]('/:id',auth[_0x5883('0xa')](),controller[_0x5883('0x11')]);router['delete'](_0x5883('0xc'),auth[_0x5883('0xa')](),controller[_0x5883('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0x7d2a=['destroy','multer','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','/:id','show','post','create','put','delete'];(function(_0x21da17,_0xc839e3){var _0x545fc4=function(_0x486c70){while(--_0x486c70){_0x21da17['push'](_0x21da17['shift']());}};_0x545fc4(++_0xc839e3);}(_0x7d2a,0x171));var _0xa7d2=function(_0x4626a7,_0x1aebdd){_0x4626a7=_0x4626a7-0x0;var _0x3c082e=_0x7d2a[_0x4626a7];return _0x3c082e;};'use strict';var multer=require(_0xa7d2('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xa7d2('0x1'));var express=require(_0xa7d2('0x2'));var router=express['Router']();var fs_extra=require(_0xa7d2('0x3'));var auth=require(_0xa7d2('0x4'));var interaction=require(_0xa7d2('0x5'));var config=require('../../config/environment');var controller=require('./network.controller');router[_0xa7d2('0x6')]('/',auth[_0xa7d2('0x7')](),controller[_0xa7d2('0x8')]);router[_0xa7d2('0x6')](_0xa7d2('0x9'),auth['isAuthenticated'](),controller[_0xa7d2('0xa')]);router[_0xa7d2('0xb')]('/',auth[_0xa7d2('0x7')](),controller[_0xa7d2('0xc')]);router[_0xa7d2('0xd')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0xa7d2('0xe')](_0xa7d2('0x9'),auth[_0xa7d2('0x7')](),controller[_0xa7d2('0xf')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04b8=['externip','stun','turn','STRING','sequelize','exports','ENUM','localnet'];(function(_0x385ed5,_0x449f76){var _0x27f199=function(_0x47d08f){while(--_0x47d08f){_0x385ed5['push'](_0x385ed5['shift']());}};_0x27f199(++_0x449f76);}(_0x04b8,0xc4));var _0x804b=function(_0x17de40,_0x564903){_0x17de40=_0x17de40-0x0;var _0x233e21=_0x04b8[_0x17de40];return _0x233e21;};'use strict';var Sequelize=require(_0x804b('0x0'));module[_0x804b('0x1')]={'type':{'type':Sequelize[_0x804b('0x2')](_0x804b('0x3'),_0x804b('0x4'),_0x804b('0x5'),_0x804b('0x6'))},'value':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x804b('0x7')]},'password':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x024f=['externip','turn','STRING','sequelize','exports','localnet'];(function(_0x3a2b5a,_0x1fdb82){var _0x322557=function(_0x58a0ce){while(--_0x58a0ce){_0x3a2b5a['push'](_0x3a2b5a['shift']());}};_0x322557(++_0x1fdb82);}(_0x024f,0x1b9));var _0xf024=function(_0x556b7a,_0x213e34){_0x556b7a=_0x556b7a-0x0;var _0x524970=_0x024f[_0x556b7a];return _0x524970;};'use strict';var Sequelize=require(_0xf024('0x0'));module[_0xf024('0x1')]={'type':{'type':Sequelize['ENUM'](_0xf024('0x2'),_0xf024('0x3'),'stun',_0xf024('0x4'))},'value':{'type':Sequelize[_0xf024('0x5')]},'username':{'type':Sequelize[_0xf024('0x5')]},'password':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x139c=['STUN','join','root','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','res_stun_monitor.so','toUpperCase','TURN','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','readFileSync','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','Reload','chan_sip.so','update','server/files/templates/stun_multiple.ejs','toLowerCase','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','end','sendStatus','name','send','index','map','Network','rawAttributes','fieldName','type','model','keys','query','attributes','fields','length','hasOwnProperty','sort','where','filters','pick','filter','merge','VIRTUAL','options','findAll','catch','show','params','intersection','includeAll','include','find','create','sequelize','transaction','body'];(function(_0x58e469,_0x95ee3e){var _0x4c01c5=function(_0x1ef7ae){while(--_0x1ef7ae){_0x58e469['push'](_0x58e469['shift']());}};_0x4c01c5(++_0x95ee3e);}(_0x139c,0x7f));var _0xc139=function(_0x4c023c,_0x3a8678){_0x4c023c=_0x4c023c-0x0;var _0x49f6d5=_0x139c[_0x4c023c];return _0x49f6d5;};'use strict';var emlformat=require(_0xc139('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xc139('0x1'));var rp=require(_0xc139('0x2'));var moment=require(_0xc139('0x3'));var BPromise=require(_0xc139('0x4'));var Mustache=require(_0xc139('0x5'));var util=require(_0xc139('0x6'));var path=require(_0xc139('0x7'));var sox=require('sox');var csv=require(_0xc139('0x8'));var ejs=require(_0xc139('0x9'));var fs=require('fs');var fs_extra=require(_0xc139('0xa'));var _=require(_0xc139('0xb'));var squel=require('squel');var crypto=require(_0xc139('0xc'));var jsforce=require(_0xc139('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xc139('0x8'));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 hardwareService=require(_0xc139('0x13'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xc139('0x14'));var licenseUtil=require(_0xc139('0x15'));var db=require(_0xc139('0x16'))['db'];var jayson=require(_0xc139('0x17'));var client=jayson[_0xc139('0x18')][_0xc139('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x5136e3,_0x466e4b,_0xff206f,_0x362a8b){return new BPromise(function(_0x5be923,_0x567b7a){var _0x545c26=_0x362a8b||client;return _0x545c26['request'](_0x5136e3,_0xff206f)[_0xc139('0x1a')](function(_0x7f03b4){logger[_0xc139('0x1b')](_0xc139('0x1c'),_0x466e4b,_0xc139('0x1d'));logger[_0xc139('0x1e')]('Network,\x20%s,\x20%s,\x20%s',_0x466e4b,_0xc139('0x1d'),JSON[_0xc139('0x1f')](_0x7f03b4));if(_0x7f03b4[_0xc139('0x20')]){if(_0x7f03b4[_0xc139('0x20')][_0xc139('0x21')]===0x1f4){logger[_0xc139('0x20')](_0xc139('0x1c'),_0x466e4b,_0x7f03b4['error'][_0xc139('0x22')]);return _0x567b7a(_0x7f03b4[_0xc139('0x20')][_0xc139('0x22')]);}logger[_0xc139('0x20')](_0xc139('0x1c'),_0x466e4b,_0x7f03b4[_0xc139('0x20')]['message']);return _0x5be923(_0x7f03b4['error'][_0xc139('0x22')]);}else{logger[_0xc139('0x1b')](_0xc139('0x1c'),_0x466e4b,_0xc139('0x1d'));_0x5be923(_0x7f03b4[_0xc139('0x23')]['message']);}})['catch'](function(_0x2138ed){logger[_0xc139('0x20')](_0xc139('0x1c'),_0x466e4b,_0x2138ed);_0x567b7a(_0x2138ed);});});}function respondWithStatusCode(_0x212a6f,_0x281e02){_0x281e02=_0x281e02||0xcc;return function(_0xaf48a1){if(_0xaf48a1){return _0x212a6f['sendStatus'](_0x281e02);}return _0x212a6f[_0xc139('0x24')](_0x281e02)['end']();};}function respondWithResult(_0x550b6a,_0x5c0001){_0x5c0001=_0x5c0001||0xc8;return function(_0x3223b8){if(_0x3223b8){return _0x550b6a[_0xc139('0x24')](_0x5c0001)[_0xc139('0x25')](_0x3223b8);}};}function respondWithFilteredResult(_0x5e5ff1,_0x4a3fca){return function(_0x5679d1){if(_0x5679d1){var _0x4624cf=typeof _0x4a3fca[_0xc139('0x26')]===_0xc139('0x27')&&typeof _0x4a3fca[_0xc139('0x28')]===_0xc139('0x27');var _0x549d01=_0x5679d1['count'];var _0x2039e1=_0x4624cf?0x0:_0x4a3fca[_0xc139('0x26')];var _0x59612a=_0x4624cf?_0x5679d1[_0xc139('0x29')]:_0x4a3fca[_0xc139('0x26')]+_0x4a3fca[_0xc139('0x28')];var _0x5c3a5c;if(_0x59612a>=_0x549d01){_0x59612a=_0x549d01;_0x5c3a5c=0xc8;}else{_0x5c3a5c=0xce;}_0x5e5ff1['status'](_0x5c3a5c);return _0x5e5ff1[_0xc139('0x2a')](_0xc139('0x2b'),_0x2039e1+'-'+_0x59612a+'/'+_0x549d01)[_0xc139('0x25')](_0x5679d1);}return null;};}function patchUpdates(_0x2f8032){return function(_0x4a25e4){try{jsonpatch[_0xc139('0x2c')](_0x4a25e4,_0x2f8032,!![]);}catch(_0x9b3609){return BPromise[_0xc139('0x2d')](_0x9b3609);}return _0x4a25e4[_0xc139('0x2e')]();};}function saveUpdates(_0xd9da11,_0x30d8d4){return function(_0x221ba9){if(_0x221ba9){return _0x221ba9['update'](_0xd9da11)[_0xc139('0x1a')](function(_0x264f92){return _0x264f92;});}return null;};}function removeEntity(_0x32a38a,_0x5f5164){return function(_0x1379f5){if(_0x1379f5){return _0x1379f5[_0xc139('0x2f')]()[_0xc139('0x1a')](function(){_0x32a38a[_0xc139('0x24')](0xcc)[_0xc139('0x30')]();});}};}function handleEntityNotFound(_0x3ef185,_0x5edbc3){return function(_0x2176b8){if(!_0x2176b8){_0x3ef185[_0xc139('0x31')](0x194);}return _0x2176b8;};}function handleError(_0x2480d3,_0x215c92){_0x215c92=_0x215c92||0x1f4;return function(_0x3c3af4){logger[_0xc139('0x20')](_0x3c3af4['stack']);if(_0x3c3af4['name']){delete _0x3c3af4[_0xc139('0x32')];}_0x2480d3[_0xc139('0x24')](_0x215c92)[_0xc139('0x33')](_0x3c3af4);};}exports[_0xc139('0x34')]=function(_0x3d70e9,_0x387e2f){var _0x3fb480={},_0x333593={},_0x2f6823={'count':0x0,'rows':[]};var _0x179ea8=_[_0xc139('0x35')](db[_0xc139('0x36')][_0xc139('0x37')],function(_0x404837){return{'name':_0x404837[_0xc139('0x38')],'type':_0x404837[_0xc139('0x39')]['key']};});_0x333593[_0xc139('0x3a')]=_[_0xc139('0x35')](_0x179ea8,_0xc139('0x32'));_0x333593['query']=_[_0xc139('0x3b')](_0x3d70e9['query']);_0x333593['filters']=_['intersection'](_0x333593[_0xc139('0x3a')],_0x333593[_0xc139('0x3c')]);_0x3fb480[_0xc139('0x3d')]=_['intersection'](_0x333593[_0xc139('0x3a')],qs[_0xc139('0x3e')](_0x3d70e9['query'][_0xc139('0x3e')]));_0x3fb480['attributes']=_0x3fb480[_0xc139('0x3d')][_0xc139('0x3f')]?_0x3fb480[_0xc139('0x3d')]:_0x333593[_0xc139('0x3a')];if(!_0x3d70e9[_0xc139('0x3c')][_0xc139('0x40')]('nolimit')){_0x3fb480[_0xc139('0x28')]=qs[_0xc139('0x28')](_0x3d70e9[_0xc139('0x3c')]['limit']);_0x3fb480[_0xc139('0x26')]=qs[_0xc139('0x26')](_0x3d70e9['query'][_0xc139('0x26')]);}_0x3fb480['order']=qs['sort'](_0x3d70e9[_0xc139('0x3c')][_0xc139('0x41')]);_0x3fb480[_0xc139('0x42')]=qs[_0xc139('0x43')](_[_0xc139('0x44')](_0x3d70e9[_0xc139('0x3c')],_0x333593[_0xc139('0x43')]),_0x179ea8);if(_0x3d70e9['query'][_0xc139('0x45')]){_0x3fb480[_0xc139('0x42')]=_[_0xc139('0x46')](_0x3fb480[_0xc139('0x42')],{'$or':_[_0xc139('0x35')](_0x179ea8,function(_0x8ca0c1){if(_0x8ca0c1['type']!==_0xc139('0x47')){var _0x56a686={};_0x56a686[_0x8ca0c1['name']]={'$like':'%'+_0x3d70e9[_0xc139('0x3c')][_0xc139('0x45')]+'%'};return _0x56a686;}})});}_0x3fb480=_[_0xc139('0x46')]({},_0x3fb480,_0x3d70e9[_0xc139('0x48')]);var _0x34105a={'where':_0x3fb480[_0xc139('0x42')]};return db['Network'][_0xc139('0x29')](_0x34105a)['then'](function(_0x23f530){_0x2f6823[_0xc139('0x29')]=_0x23f530;if(_0x3d70e9[_0xc139('0x3c')]['includeAll']){_0x3fb480['include']=[{'all':!![]}];}return db['Network'][_0xc139('0x49')](_0x3fb480);})[_0xc139('0x1a')](function(_0x351655){_0x2f6823['rows']=_0x351655;return _0x2f6823;})[_0xc139('0x1a')](respondWithFilteredResult(_0x387e2f,_0x3fb480))[_0xc139('0x4a')](handleError(_0x387e2f,null));};exports[_0xc139('0x4b')]=function(_0x3380a2,_0x4b61de){var _0x1f877b={'raw':!![],'where':{'id':_0x3380a2[_0xc139('0x4c')]['id']}},_0x37108c={};_0x37108c[_0xc139('0x3a')]=_[_0xc139('0x3b')](db['Network'][_0xc139('0x37')]);_0x37108c[_0xc139('0x3c')]=_[_0xc139('0x3b')](_0x3380a2[_0xc139('0x3c')]);_0x37108c[_0xc139('0x43')]=_['intersection'](_0x37108c['model'],_0x37108c[_0xc139('0x3c')]);_0x1f877b[_0xc139('0x3d')]=_[_0xc139('0x4d')](_0x37108c[_0xc139('0x3a')],qs['fields'](_0x3380a2[_0xc139('0x3c')][_0xc139('0x3e')]));_0x1f877b['attributes']=_0x1f877b[_0xc139('0x3d')][_0xc139('0x3f')]?_0x1f877b['attributes']:_0x37108c[_0xc139('0x3a')];if(_0x3380a2[_0xc139('0x3c')][_0xc139('0x4e')]){_0x1f877b[_0xc139('0x4f')]=[{'all':!![]}];}_0x1f877b=_['merge']({},_0x1f877b,_0x3380a2[_0xc139('0x48')]);return db[_0xc139('0x36')][_0xc139('0x50')](_0x1f877b)[_0xc139('0x1a')](handleEntityNotFound(_0x4b61de,null))[_0xc139('0x1a')](respondWithResult(_0x4b61de,null))['catch'](handleError(_0x4b61de,null));};exports[_0xc139('0x51')]=function(_0x11ec70,_0x1e8793,_0x9e7bbf){var _0x13c01b;return db[_0xc139('0x52')][_0xc139('0x53')](function(_0x6bae56){return db['Network']['create'](_0x11ec70['body'],{'raw':!![]})[_0xc139('0x1a')](function(_0x19d2d5){_0x13c01b=_0x19d2d5;return db[_0xc139('0x36')][_0xc139('0x49')]({'where':{'type':_0x11ec70[_0xc139('0x54')][_0xc139('0x39')]},'raw':!![]});})['then'](function(_0x3e026b){if(_0x13c01b['type']['toUpperCase']()==_0xc139('0x55')){var _0x3eff0c=fs['readFileSync'](path[_0xc139('0x56')](config[_0xc139('0x57')],'server/files/templates/stun_multiple.ejs'),_0xc139('0x58'));var _0x3384d2=ejs[_0xc139('0x59')](_0x3eff0c,{'networks':_0x3e026b||[]});fs[_0xc139('0x5a')](_0xc139('0x5b'),_0x3384d2);return respondWithRpcPromise('Reload',_0xc139('0x51'),{'module':_0xc139('0x5c')});}else if(_0x13c01b[_0xc139('0x39')][_0xc139('0x5d')]()==_0xc139('0x5e')){var _0x590ef9=fs['readFileSync'](path[_0xc139('0x56')](config['root'],_0xc139('0x5f')),_0xc139('0x58'));var _0x4cc7c4=ejs['render'](_0x590ef9,{'networks':_0x3e026b||[]});fs[_0xc139('0x5a')](_0xc139('0x60'),_0x4cc7c4);return respondWithRpcPromise('Reload',_0xc139('0x51'),{'module':'res_stun_monitor.so'});}else{var _0x2db48e=fs[_0xc139('0x61')](path[_0xc139('0x56')](config[_0xc139('0x57')],_0xc139('0x62')),_0xc139('0x58'));var _0x20ce58=ejs['render'](_0x2db48e,{'networks':_0x3e026b||[]});fs[_0xc139('0x5a')](util[_0xc139('0x63')](_0xc139('0x64'),_0x11ec70[_0xc139('0x54')]['type']['toLowerCase']()),_0x20ce58);return respondWithRpcPromise(_0xc139('0x65'),_0xc139('0x51'),{'module':_0xc139('0x66')});}return null;})[_0xc139('0x1a')](function(){return _0x13c01b;});})[_0xc139('0x1a')](respondWithResult(_0x1e8793,0xc9))[_0xc139('0x4a')](handleError(_0x1e8793,null));};exports[_0xc139('0x67')]=function(_0x552c48,_0x5c3586,_0xee6e7c){var _0x4167fe;return db[_0xc139('0x52')][_0xc139('0x53')](function(_0x3f463c){return db[_0xc139('0x36')]['find']({'where':{'id':_0x552c48[_0xc139('0x4c')]['id']}})['then'](handleEntityNotFound(_0x5c3586,null))[_0xc139('0x1a')](saveUpdates(_0x552c48[_0xc139('0x54')],null))[_0xc139('0x1a')](function(_0x4a732a){if(_0x4a732a){_0x4167fe=_0x4a732a;return db['Network'][_0xc139('0x49')]({'where':{'type':_0x4167fe[_0xc139('0x39')]},'raw':!![]});}return null;})['then'](function(_0x4b56d3){if(_0x4167fe[_0xc139('0x39')][_0xc139('0x5d')]()==_0xc139('0x55')){var _0x2b12e0=fs[_0xc139('0x61')](path['join'](config['root'],_0xc139('0x68')),_0xc139('0x58'));var _0x55dad0=ejs[_0xc139('0x59')](_0x2b12e0,{'networks':_0x4b56d3||[]});fs['writeFileSync'](_0xc139('0x5b'),_0x55dad0);return respondWithRpcPromise('Reload',_0xc139('0x67'),{'module':_0xc139('0x5c')});}else if(_0x4167fe['type'][_0xc139('0x5d')]()==_0xc139('0x5e')){var _0x1b8c9b=fs['readFileSync'](path['join'](config[_0xc139('0x57')],_0xc139('0x5f')),'utf8');var _0x197911=ejs['render'](_0x1b8c9b,{'networks':_0x4b56d3||[]});fs[_0xc139('0x5a')]('/etc/asterisk/turn_xcally.conf',_0x197911);return respondWithRpcPromise('Reload',_0xc139('0x67'),{'module':_0xc139('0x5c')});}else{var _0xf6463b=fs[_0xc139('0x61')](path[_0xc139('0x56')](config[_0xc139('0x57')],_0xc139('0x62')),_0xc139('0x58'));var _0x3529de=ejs[_0xc139('0x59')](_0xf6463b,{'networks':_0x4b56d3||[]});fs[_0xc139('0x5a')](util[_0xc139('0x63')](_0xc139('0x64'),_0x552c48[_0xc139('0x54')][_0xc139('0x39')]['toLowerCase']()),_0x3529de);return respondWithRpcPromise('Reload',_0xc139('0x67'),{'module':_0xc139('0x66')});}return null;})[_0xc139('0x1a')](function(_0x5247b7){if(_0x5247b7){return _0x4167fe;}return null;});})[_0xc139('0x1a')](respondWithResult(_0x5c3586,null))[_0xc139('0x4a')](handleError(_0x5c3586,null));};exports[_0xc139('0x2f')]=function(_0x4fdf66,_0x177989,_0x323809){var _0x52bddb;return db['Network'][_0xc139('0x50')]({'where':{'id':_0x4fdf66['params']['id']}})[_0xc139('0x1a')](function(_0x571085){_0x52bddb=_0x571085;return _0x571085;})[_0xc139('0x1a')](handleEntityNotFound(_0x177989,null))[_0xc139('0x1a')](removeEntity(_0x177989,null))[_0xc139('0x1a')](function(){if(_0x52bddb){return db['Network'][_0xc139('0x49')]({'where':{'type':_0x52bddb[_0xc139('0x39')]},'raw':!![]});}})[_0xc139('0x1a')](function(_0x4d5e0e){if(_0x52bddb['type'][_0xc139('0x5d')]()==_0xc139('0x55')){var _0x237a0c=fs[_0xc139('0x61')](path['join'](config['root'],_0xc139('0x68')),_0xc139('0x58'));var _0x2ededb=ejs[_0xc139('0x59')](_0x237a0c,{'networks':_0x4d5e0e||[]});fs[_0xc139('0x5a')](_0xc139('0x5b'),_0x2ededb);return respondWithRpcPromise(_0xc139('0x65'),_0xc139('0x2f'),{'module':_0xc139('0x5c')});}else if(_0x52bddb['type'][_0xc139('0x5d')]()==_0xc139('0x5e')){var _0x3fedd4=fs[_0xc139('0x61')](path[_0xc139('0x56')](config[_0xc139('0x57')],_0xc139('0x5f')),_0xc139('0x58'));var _0x3faaa8=ejs[_0xc139('0x59')](_0x3fedd4,{'networks':_0x4d5e0e||[]});fs[_0xc139('0x5a')](_0xc139('0x60'),_0x3faaa8);return respondWithRpcPromise('Reload',_0xc139('0x2f'),{'module':'res_stun_monitor.so'});}else{var _0x588d16=fs[_0xc139('0x61')](path['join'](config['root'],_0xc139('0x62')),_0xc139('0x58'));var _0x399008=ejs[_0xc139('0x59')](_0x588d16,{'networks':_0x4d5e0e||[]});fs[_0xc139('0x5a')](util[_0xc139('0x63')](_0xc139('0x64'),_0x4fdf66[_0xc139('0x54')][_0xc139('0x39')][_0xc139('0x69')]()),_0x399008);return respondWithRpcPromise(_0xc139('0x65'),_0xc139('0x2f'),{'module':_0xc139('0x66')});}return null;})[_0xc139('0x4a')](handleError(_0x177989,null));};
\ No newline at end of file
+var _0x6d66=['limit','order','sort','where','filters','pick','filter','merge','VIRTUAL','Network','includeAll','findAll','rows','show','keys','rawAttributes','include','options','find','create','transaction','body','toUpperCase','readFileSync','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','join','/etc/asterisk/turn_xcally.conf','format','/etc/asterisk/sip_xcally_%s.conf','chan_sip.so','sequelize','params','STUN','server/files/templates/network.ejs','toLowerCase','server/files/templates/turn_multiple.ejs','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','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','request','then','Network,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','info','result','catch','sendStatus','status','json','offset','undefined','count','Content-Range','apply','reject','save','update','destroy','end','stack','name','index','map','fieldName','type','key','query','intersection','model','attributes','fields','length','hasOwnProperty','nolimit'];(function(_0x3c5357,_0x5df651){var _0x34f92f=function(_0x2f239d){while(--_0x2f239d){_0x3c5357['push'](_0x3c5357['shift']());}};_0x34f92f(++_0x5df651);}(_0x6d66,0x9c));var _0x66d6=function(_0x2045f5,_0x585f42){_0x2045f5=_0x2045f5-0x0;var _0x33e005=_0x6d66[_0x2045f5];return _0x33e005;};'use strict';var emlformat=require(_0x66d6('0x0'));var rimraf=require(_0x66d6('0x1'));var zipdir=require(_0x66d6('0x2'));var jsonpatch=require(_0x66d6('0x3'));var rp=require('request-promise');var moment=require(_0x66d6('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x66d6('0x5'));var util=require('util');var path=require('path');var sox=require(_0x66d6('0x6'));var csv=require(_0x66d6('0x7'));var ejs=require(_0x66d6('0x8'));var fs=require('fs');var fs_extra=require(_0x66d6('0x9'));var _=require(_0x66d6('0xa'));var squel=require(_0x66d6('0xb'));var crypto=require(_0x66d6('0xc'));var jsforce=require(_0x66d6('0xd'));var deskjs=require(_0x66d6('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x66d6('0xf'));var Redis=require(_0x66d6('0x10'));var authService=require(_0x66d6('0x11'));var qs=require(_0x66d6('0x12'));var as=require(_0x66d6('0x13'));var hardwareService=require(_0x66d6('0x14'));var logger=require(_0x66d6('0x15'))(_0x66d6('0x16'));var utils=require(_0x66d6('0x17'));var config=require(_0x66d6('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x66d6('0x19'))['db'];var jayson=require(_0x66d6('0x1a'));var client=jayson[_0x66d6('0x1b')][_0x66d6('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x278ea1,_0x58421e,_0x1e4503,_0x17d985){return new BPromise(function(_0x12324a,_0x22634a){var _0x5c817d=_0x17d985||client;return _0x5c817d[_0x66d6('0x1d')](_0x278ea1,_0x1e4503)[_0x66d6('0x1e')](function(_0x3da88b){logger['info'](_0x66d6('0x1f'),_0x58421e,_0x66d6('0x20'));logger[_0x66d6('0x21')]('Network,\x20%s,\x20%s,\x20%s',_0x58421e,_0x66d6('0x20'),JSON[_0x66d6('0x22')](_0x3da88b));if(_0x3da88b[_0x66d6('0x23')]){if(_0x3da88b[_0x66d6('0x23')]['code']===0x1f4){logger[_0x66d6('0x23')]('Network,\x20%s,\x20%s',_0x58421e,_0x3da88b[_0x66d6('0x23')]['message']);return _0x22634a(_0x3da88b[_0x66d6('0x23')][_0x66d6('0x24')]);}logger[_0x66d6('0x23')]('Network,\x20%s,\x20%s',_0x58421e,_0x3da88b[_0x66d6('0x23')][_0x66d6('0x24')]);return _0x12324a(_0x3da88b[_0x66d6('0x23')][_0x66d6('0x24')]);}else{logger[_0x66d6('0x25')](_0x66d6('0x1f'),_0x58421e,'request\x20sent');_0x12324a(_0x3da88b[_0x66d6('0x26')]['message']);}})[_0x66d6('0x27')](function(_0x511c10){logger[_0x66d6('0x23')]('Network,\x20%s,\x20%s',_0x58421e,_0x511c10);_0x22634a(_0x511c10);});});}function respondWithStatusCode(_0x64ebad,_0xf1b509){_0xf1b509=_0xf1b509||0xcc;return function(_0x45aa7d){if(_0x45aa7d){return _0x64ebad[_0x66d6('0x28')](_0xf1b509);}return _0x64ebad[_0x66d6('0x29')](_0xf1b509)['end']();};}function respondWithResult(_0x5714e0,_0xe2d330){_0xe2d330=_0xe2d330||0xc8;return function(_0x41b4cd){if(_0x41b4cd){return _0x5714e0[_0x66d6('0x29')](_0xe2d330)[_0x66d6('0x2a')](_0x41b4cd);}};}function respondWithFilteredResult(_0x39cde6,_0x2fc5cf){return function(_0x39dc40){if(_0x39dc40){var _0x487338=typeof _0x2fc5cf[_0x66d6('0x2b')]===_0x66d6('0x2c')&&typeof _0x2fc5cf['limit']===_0x66d6('0x2c');var _0x4ad96c=_0x39dc40[_0x66d6('0x2d')];var _0x15cfa5=_0x487338?0x0:_0x2fc5cf[_0x66d6('0x2b')];var _0x1ffa7c=_0x487338?_0x39dc40[_0x66d6('0x2d')]:_0x2fc5cf['offset']+_0x2fc5cf['limit'];var _0x2e9a7e;if(_0x1ffa7c>=_0x4ad96c){_0x1ffa7c=_0x4ad96c;_0x2e9a7e=0xc8;}else{_0x2e9a7e=0xce;}_0x39cde6[_0x66d6('0x29')](_0x2e9a7e);return _0x39cde6['set'](_0x66d6('0x2e'),_0x15cfa5+'-'+_0x1ffa7c+'/'+_0x4ad96c)[_0x66d6('0x2a')](_0x39dc40);}return null;};}function patchUpdates(_0x523648){return function(_0x3ec0a5){try{jsonpatch[_0x66d6('0x2f')](_0x3ec0a5,_0x523648,!![]);}catch(_0x5483e0){return BPromise[_0x66d6('0x30')](_0x5483e0);}return _0x3ec0a5[_0x66d6('0x31')]();};}function saveUpdates(_0x182984,_0x4a1eae){return function(_0x46d66e){if(_0x46d66e){return _0x46d66e[_0x66d6('0x32')](_0x182984)[_0x66d6('0x1e')](function(_0x4db862){return _0x4db862;});}return null;};}function removeEntity(_0x33d00d,_0x5ac61f){return function(_0x5391e3){if(_0x5391e3){return _0x5391e3[_0x66d6('0x33')]()[_0x66d6('0x1e')](function(){_0x33d00d[_0x66d6('0x29')](0xcc)[_0x66d6('0x34')]();});}};}function handleEntityNotFound(_0x591059,_0x5e63ef){return function(_0x3da765){if(!_0x3da765){_0x591059[_0x66d6('0x28')](0x194);}return _0x3da765;};}function handleError(_0x4ef4c4,_0x14084e){_0x14084e=_0x14084e||0x1f4;return function(_0x9f82c9){logger[_0x66d6('0x23')](_0x9f82c9[_0x66d6('0x35')]);if(_0x9f82c9['name']){delete _0x9f82c9[_0x66d6('0x36')];}_0x4ef4c4[_0x66d6('0x29')](_0x14084e)['send'](_0x9f82c9);};}exports[_0x66d6('0x37')]=function(_0x20c987,_0x470f4b){var _0x15bffd={},_0x5d7f0f={},_0x38d926={'count':0x0,'rows':[]};var _0x18b198=_[_0x66d6('0x38')](db['Network']['rawAttributes'],function(_0x340dc5){return{'name':_0x340dc5[_0x66d6('0x39')],'type':_0x340dc5[_0x66d6('0x3a')][_0x66d6('0x3b')]};});_0x5d7f0f['model']=_[_0x66d6('0x38')](_0x18b198,_0x66d6('0x36'));_0x5d7f0f[_0x66d6('0x3c')]=_['keys'](_0x20c987[_0x66d6('0x3c')]);_0x5d7f0f['filters']=_[_0x66d6('0x3d')](_0x5d7f0f[_0x66d6('0x3e')],_0x5d7f0f[_0x66d6('0x3c')]);_0x15bffd[_0x66d6('0x3f')]=_[_0x66d6('0x3d')](_0x5d7f0f['model'],qs[_0x66d6('0x40')](_0x20c987[_0x66d6('0x3c')][_0x66d6('0x40')]));_0x15bffd[_0x66d6('0x3f')]=_0x15bffd[_0x66d6('0x3f')][_0x66d6('0x41')]?_0x15bffd[_0x66d6('0x3f')]:_0x5d7f0f['model'];if(!_0x20c987[_0x66d6('0x3c')][_0x66d6('0x42')](_0x66d6('0x43'))){_0x15bffd[_0x66d6('0x44')]=qs[_0x66d6('0x44')](_0x20c987[_0x66d6('0x3c')][_0x66d6('0x44')]);_0x15bffd[_0x66d6('0x2b')]=qs[_0x66d6('0x2b')](_0x20c987['query'][_0x66d6('0x2b')]);}_0x15bffd[_0x66d6('0x45')]=qs[_0x66d6('0x46')](_0x20c987['query'][_0x66d6('0x46')]);_0x15bffd[_0x66d6('0x47')]=qs[_0x66d6('0x48')](_[_0x66d6('0x49')](_0x20c987[_0x66d6('0x3c')],_0x5d7f0f[_0x66d6('0x48')]),_0x18b198);if(_0x20c987['query'][_0x66d6('0x4a')]){_0x15bffd[_0x66d6('0x47')]=_[_0x66d6('0x4b')](_0x15bffd[_0x66d6('0x47')],{'$or':_[_0x66d6('0x38')](_0x18b198,function(_0x1b80ac){if(_0x1b80ac['type']!==_0x66d6('0x4c')){var _0x28655e={};_0x28655e[_0x1b80ac['name']]={'$like':'%'+_0x20c987[_0x66d6('0x3c')][_0x66d6('0x4a')]+'%'};return _0x28655e;}})});}_0x15bffd=_['merge']({},_0x15bffd,_0x20c987['options']);var _0x300df3={'where':_0x15bffd['where']};return db[_0x66d6('0x4d')]['count'](_0x300df3)['then'](function(_0x3079e8){_0x38d926['count']=_0x3079e8;if(_0x20c987['query'][_0x66d6('0x4e')]){_0x15bffd['include']=[{'all':!![]}];}return db[_0x66d6('0x4d')][_0x66d6('0x4f')](_0x15bffd);})[_0x66d6('0x1e')](function(_0x4e6f42){_0x38d926[_0x66d6('0x50')]=_0x4e6f42;return _0x38d926;})[_0x66d6('0x1e')](respondWithFilteredResult(_0x470f4b,_0x15bffd))[_0x66d6('0x27')](handleError(_0x470f4b,null));};exports[_0x66d6('0x51')]=function(_0x306c5a,_0x5e171a){var _0x405dc1={'raw':!![],'where':{'id':_0x306c5a['params']['id']}},_0x21565a={};_0x21565a[_0x66d6('0x3e')]=_[_0x66d6('0x52')](db[_0x66d6('0x4d')][_0x66d6('0x53')]);_0x21565a['query']=_['keys'](_0x306c5a[_0x66d6('0x3c')]);_0x21565a['filters']=_[_0x66d6('0x3d')](_0x21565a['model'],_0x21565a[_0x66d6('0x3c')]);_0x405dc1[_0x66d6('0x3f')]=_[_0x66d6('0x3d')](_0x21565a[_0x66d6('0x3e')],qs['fields'](_0x306c5a['query']['fields']));_0x405dc1['attributes']=_0x405dc1[_0x66d6('0x3f')][_0x66d6('0x41')]?_0x405dc1[_0x66d6('0x3f')]:_0x21565a[_0x66d6('0x3e')];if(_0x306c5a[_0x66d6('0x3c')][_0x66d6('0x4e')]){_0x405dc1[_0x66d6('0x54')]=[{'all':!![]}];}_0x405dc1=_[_0x66d6('0x4b')]({},_0x405dc1,_0x306c5a[_0x66d6('0x55')]);return db[_0x66d6('0x4d')][_0x66d6('0x56')](_0x405dc1)[_0x66d6('0x1e')](handleEntityNotFound(_0x5e171a,null))[_0x66d6('0x1e')](respondWithResult(_0x5e171a,null))[_0x66d6('0x27')](handleError(_0x5e171a,null));};exports[_0x66d6('0x57')]=function(_0x4539f2,_0x33a2e3,_0x3bdc7f){var _0x457b9c;return db['sequelize'][_0x66d6('0x58')](function(_0x28b2bb){return db['Network'][_0x66d6('0x57')](_0x4539f2[_0x66d6('0x59')],{'raw':!![]})['then'](function(_0x282220){_0x457b9c=_0x282220;return db[_0x66d6('0x4d')][_0x66d6('0x4f')]({'where':{'type':_0x4539f2[_0x66d6('0x59')][_0x66d6('0x3a')]},'raw':!![]});})['then'](function(_0x451041){if(_0x457b9c[_0x66d6('0x3a')][_0x66d6('0x5a')]()=='STUN'){var _0x94eb60=fs[_0x66d6('0x5b')](path['join'](config[_0x66d6('0x5c')],_0x66d6('0x5d')),_0x66d6('0x5e'));var _0x1b955e=ejs[_0x66d6('0x5f')](_0x94eb60,{'networks':_0x451041||[]});fs[_0x66d6('0x60')](_0x66d6('0x61'),_0x1b955e);return respondWithRpcPromise(_0x66d6('0x62'),_0x66d6('0x57'),{'module':_0x66d6('0x63')});}else if(_0x457b9c[_0x66d6('0x3a')]['toUpperCase']()==_0x66d6('0x64')){var _0x11fb10=fs[_0x66d6('0x5b')](path[_0x66d6('0x65')](config[_0x66d6('0x5c')],'server/files/templates/turn_multiple.ejs'),_0x66d6('0x5e'));var _0x575850=ejs[_0x66d6('0x5f')](_0x11fb10,{'networks':_0x451041||[]});fs['writeFileSync'](_0x66d6('0x66'),_0x575850);return respondWithRpcPromise(_0x66d6('0x62'),_0x66d6('0x57'),{'module':_0x66d6('0x63')});}else{var _0x25a786=fs['readFileSync'](path['join'](config[_0x66d6('0x5c')],'server/files/templates/network.ejs'),_0x66d6('0x5e'));var _0x3b88da=ejs['render'](_0x25a786,{'networks':_0x451041||[]});fs[_0x66d6('0x60')](util[_0x66d6('0x67')](_0x66d6('0x68'),_0x4539f2[_0x66d6('0x59')][_0x66d6('0x3a')]['toLowerCase']()),_0x3b88da);return respondWithRpcPromise(_0x66d6('0x62'),_0x66d6('0x57'),{'module':_0x66d6('0x69')});}return null;})['then'](function(){return _0x457b9c;});})['then'](respondWithResult(_0x33a2e3,0xc9))['catch'](handleError(_0x33a2e3,null));};exports[_0x66d6('0x32')]=function(_0x4c35ca,_0xaee5a7,_0x5b41e4){var _0x3ed899;return db[_0x66d6('0x6a')][_0x66d6('0x58')](function(_0x2027ff){return db['Network'][_0x66d6('0x56')]({'where':{'id':_0x4c35ca[_0x66d6('0x6b')]['id']}})['then'](handleEntityNotFound(_0xaee5a7,null))[_0x66d6('0x1e')](saveUpdates(_0x4c35ca[_0x66d6('0x59')],null))['then'](function(_0x2d3509){if(_0x2d3509){_0x3ed899=_0x2d3509;return db[_0x66d6('0x4d')][_0x66d6('0x4f')]({'where':{'type':_0x3ed899[_0x66d6('0x3a')]},'raw':!![]});}return null;})[_0x66d6('0x1e')](function(_0x2ca793){if(_0x3ed899[_0x66d6('0x3a')][_0x66d6('0x5a')]()==_0x66d6('0x6c')){var _0x525abd=fs['readFileSync'](path[_0x66d6('0x65')](config['root'],_0x66d6('0x5d')),_0x66d6('0x5e'));var _0x5a67aa=ejs[_0x66d6('0x5f')](_0x525abd,{'networks':_0x2ca793||[]});fs[_0x66d6('0x60')](_0x66d6('0x61'),_0x5a67aa);return respondWithRpcPromise(_0x66d6('0x62'),'update',{'module':_0x66d6('0x63')});}else if(_0x3ed899[_0x66d6('0x3a')][_0x66d6('0x5a')]()==_0x66d6('0x64')){var _0x4b6016=fs[_0x66d6('0x5b')](path[_0x66d6('0x65')](config[_0x66d6('0x5c')],'server/files/templates/turn_multiple.ejs'),_0x66d6('0x5e'));var _0x4b7106=ejs[_0x66d6('0x5f')](_0x4b6016,{'networks':_0x2ca793||[]});fs[_0x66d6('0x60')](_0x66d6('0x66'),_0x4b7106);return respondWithRpcPromise(_0x66d6('0x62'),_0x66d6('0x32'),{'module':_0x66d6('0x63')});}else{var _0x15b333=fs[_0x66d6('0x5b')](path['join'](config[_0x66d6('0x5c')],_0x66d6('0x6d')),_0x66d6('0x5e'));var _0x114ea=ejs[_0x66d6('0x5f')](_0x15b333,{'networks':_0x2ca793||[]});fs[_0x66d6('0x60')](util[_0x66d6('0x67')](_0x66d6('0x68'),_0x4c35ca[_0x66d6('0x59')][_0x66d6('0x3a')][_0x66d6('0x6e')]()),_0x114ea);return respondWithRpcPromise(_0x66d6('0x62'),'update',{'module':_0x66d6('0x69')});}return null;})['then'](function(_0x20fe3a){if(_0x20fe3a){return _0x3ed899;}return null;});})[_0x66d6('0x1e')](respondWithResult(_0xaee5a7,null))[_0x66d6('0x27')](handleError(_0xaee5a7,null));};exports[_0x66d6('0x33')]=function(_0x9e9f06,_0x359277,_0x4e8509){var _0x39e165;return db[_0x66d6('0x4d')][_0x66d6('0x56')]({'where':{'id':_0x9e9f06[_0x66d6('0x6b')]['id']}})[_0x66d6('0x1e')](function(_0x20bc9b){_0x39e165=_0x20bc9b;return _0x20bc9b;})[_0x66d6('0x1e')](handleEntityNotFound(_0x359277,null))[_0x66d6('0x1e')](removeEntity(_0x359277,null))[_0x66d6('0x1e')](function(){if(_0x39e165){return db[_0x66d6('0x4d')][_0x66d6('0x4f')]({'where':{'type':_0x39e165[_0x66d6('0x3a')]},'raw':!![]});}})[_0x66d6('0x1e')](function(_0x2eb5d0){if(_0x39e165['type'][_0x66d6('0x5a')]()=='STUN'){var _0x3096c9=fs[_0x66d6('0x5b')](path[_0x66d6('0x65')](config[_0x66d6('0x5c')],_0x66d6('0x5d')),_0x66d6('0x5e'));var _0x4188f5=ejs['render'](_0x3096c9,{'networks':_0x2eb5d0||[]});fs[_0x66d6('0x60')](_0x66d6('0x61'),_0x4188f5);return respondWithRpcPromise('Reload','destroy',{'module':'res_stun_monitor.so'});}else if(_0x39e165[_0x66d6('0x3a')][_0x66d6('0x5a')]()=='TURN'){var _0x30a133=fs[_0x66d6('0x5b')](path[_0x66d6('0x65')](config[_0x66d6('0x5c')],_0x66d6('0x6f')),_0x66d6('0x5e'));var _0x59eb8f=ejs[_0x66d6('0x5f')](_0x30a133,{'networks':_0x2eb5d0||[]});fs[_0x66d6('0x60')](_0x66d6('0x66'),_0x59eb8f);return respondWithRpcPromise(_0x66d6('0x62'),_0x66d6('0x33'),{'module':_0x66d6('0x63')});}else{var _0x2f16f3=fs[_0x66d6('0x5b')](path[_0x66d6('0x65')](config[_0x66d6('0x5c')],_0x66d6('0x6d')),'utf8');var _0x37869a=ejs['render'](_0x2f16f3,{'networks':_0x2eb5d0||[]});fs[_0x66d6('0x60')](util[_0x66d6('0x67')](_0x66d6('0x68'),_0x9e9f06[_0x66d6('0x59')]['type'][_0x66d6('0x6e')]()),_0x37869a);return respondWithRpcPromise(_0x66d6('0x62'),_0x66d6('0x33'),{'module':_0x66d6('0x69')});}return null;})[_0x66d6('0x27')](handleError(_0x359277,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5b5=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./network.attributes','exports','define','Network','network','lodash'];(function(_0x59335b,_0x2a4ceb){var _0x228965=function(_0x10e61a){while(--_0x10e61a){_0x59335b['push'](_0x59335b['shift']());}};_0x228965(++_0x2a4ceb);}(_0xe5b5,0x12b));var _0x5e5b=function(_0x12b8ec,_0x1655be){_0x12b8ec=_0x12b8ec-0x0;var _0x21af77=_0xe5b5[_0x12b8ec];return _0x21af77;};'use strict';var _=require(_0x5e5b('0x0'));var util=require(_0x5e5b('0x1'));var logger=require(_0x5e5b('0x2'))(_0x5e5b('0x3'));var moment=require(_0x5e5b('0x4'));var BPromise=require(_0x5e5b('0x5'));var rp=require(_0x5e5b('0x6'));var fs=require('fs');var path=require(_0x5e5b('0x7'));var rimraf=require(_0x5e5b('0x8'));var config=require(_0x5e5b('0x9'));var attributes=require(_0x5e5b('0xa'));module[_0x5e5b('0xb')]=function(_0xf1fbe2,_0x11e0e0){return _0xf1fbe2[_0x5e5b('0xc')](_0x5e5b('0xd'),attributes,{'tableName':_0x5e5b('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x44a3=['moment','bluebird','request-promise','path','../../config/environment','./network.attributes','exports','lodash','util','../../config/logger','api'];(function(_0x2193cc,_0x1f9e4b){var _0x143fa4=function(_0x3fe550){while(--_0x3fe550){_0x2193cc['push'](_0x2193cc['shift']());}};_0x143fa4(++_0x1f9e4b);}(_0x44a3,0x1a9));var _0x344a=function(_0x1fc82b,_0x5150a6){_0x1fc82b=_0x1fc82b-0x0;var _0x4c6679=_0x44a3[_0x1fc82b];return _0x4c6679;};'use strict';var _=require(_0x344a('0x0'));var util=require(_0x344a('0x1'));var logger=require(_0x344a('0x2'))(_0x344a('0x3'));var moment=require(_0x344a('0x4'));var BPromise=require(_0x344a('0x5'));var rp=require(_0x344a('0x6'));var fs=require('fs');var path=require(_0x344a('0x7'));var rimraf=require('rimraf');var config=require(_0x344a('0x8'));var attributes=require(_0x344a('0x9'));module[_0x344a('0xa')]=function(_0x28b51e,_0x39984a){return _0x28b51e['define']('Network',attributes,{'tableName':'network','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x5d2ef0,_0x5d11c4){var _0x3d6cd7=function(_0x1189c){while(--_0x1189c){_0x5d2ef0['push'](_0x5d2ef0['shift']());}};_0x3d6cd7(++_0x5d11c4);}(_0x9957,0x93));var _0x7995=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x9957[_0x1facfa];return _0x9ec701;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var moment=require(_0x7995('0x2'));var BPromise=require(_0x7995('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7995('0x4'));var db=require(_0x7995('0x5'))['db'];var utils=require(_0x7995('0x6'));var logger=require(_0x7995('0x7'))('rpc');var config=require(_0x7995('0x8'));var jayson=require(_0x7995('0x9'));var client=jayson[_0x7995('0xa')][_0x7995('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xbda126,_0x326741,_0x4996ca){return new BPromise(function(_0x465276,_0x1cad37){return client['request'](_0xbda126,_0x4996ca)[_0x7995('0xc')](function(_0x3116fb){logger[_0x7995('0xd')](_0x7995('0xe'),_0x326741,_0x7995('0xf'));logger[_0x7995('0x10')](_0x7995('0x11'),_0x326741,'request\x20sent',JSON[_0x7995('0x12')](_0x3116fb));if(_0x3116fb[_0x7995('0x13')]){if(_0x3116fb['error'][_0x7995('0x14')]===0x1f4){logger[_0x7995('0x13')](_0x7995('0xe'),_0x326741,_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);return _0x1cad37(_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);}logger['error']('Network,\x20%s,\x20%s',_0x326741,_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);return _0x465276(_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);}else{logger[_0x7995('0xd')](_0x7995('0xe'),_0x326741,_0x7995('0xf'));_0x465276(_0x3116fb[_0x7995('0x16')]['message']);}})[_0x7995('0x17')](function(_0x565d97){logger[_0x7995('0x13')](_0x7995('0xe'),_0x326741,_0x565d97);_0x1cad37(_0x565d97);});});}
\ 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(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x7a54,0x106));var _0x47a5=function(_0x20f961,_0x83cd55){_0x20f961=_0x20f961-0x0;var _0x4f92c2=_0x7a54[_0x20f961];return _0x4f92c2;};'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 _0xe396=['/:id/send','put','update','delete','destroy','removeDispositions','exports','util','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./openchannelAccount.controller','index','get','/describe','describe','/:id','show','/:id/dispositions','isAuthenticated','getDispositions','getAnswers','/:id/applications','/:id/interactions','/:id/users','post','create','addDisposition','/:id/canned_answers','addAnswer','notify','addApplications','addAgents'];(function(_0x2dfe07,_0x2b663f){var _0x30aee0=function(_0x1a070a){while(--_0x1a070a){_0x2dfe07['push'](_0x2dfe07['shift']());}};_0x30aee0(++_0x2b663f);}(_0xe396,0x1db));var _0x6e39=function(_0x4cc71c,_0x26bfc5){_0x4cc71c=_0x4cc71c-0x0;var _0x4c4324=_0xe396[_0x4cc71c];return _0x4c4324;};'use strict';var multer=require('multer');var util=require(_0x6e39('0x0'));var path=require(_0x6e39('0x1'));var timeout=require(_0x6e39('0x2'));var express=require(_0x6e39('0x3'));var router=express[_0x6e39('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x6e39('0x5'));var config=require(_0x6e39('0x6'));var controller=require(_0x6e39('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x6e39('0x8')]);router[_0x6e39('0x9')](_0x6e39('0xa'),auth['isAuthenticated'](),controller[_0x6e39('0xb')]);router[_0x6e39('0x9')](_0x6e39('0xc'),auth['isAuthenticated'](),controller[_0x6e39('0xd')]);router[_0x6e39('0x9')](_0x6e39('0xe'),auth[_0x6e39('0xf')](),controller[_0x6e39('0x10')]);router[_0x6e39('0x9')]('/:id/canned_answers',auth[_0x6e39('0xf')](),controller[_0x6e39('0x11')]);router[_0x6e39('0x9')](_0x6e39('0x12'),auth[_0x6e39('0xf')](),controller['getApplications']);router[_0x6e39('0x9')](_0x6e39('0x13'),auth[_0x6e39('0xf')](),controller['getInteractions']);router[_0x6e39('0x9')](_0x6e39('0x14'),auth[_0x6e39('0xf')](),controller['getAgents']);router[_0x6e39('0x15')]('/',auth[_0x6e39('0xf')](),controller[_0x6e39('0x16')]);router[_0x6e39('0x15')](_0x6e39('0xe'),auth[_0x6e39('0xf')](),controller[_0x6e39('0x17')]);router['post'](_0x6e39('0x18'),auth['isAuthenticated'](),controller[_0x6e39('0x19')]);router['post']('/:id/notify',controller[_0x6e39('0x1a')]);router[_0x6e39('0x15')](_0x6e39('0x12'),auth[_0x6e39('0xf')](),controller[_0x6e39('0x1b')]);router[_0x6e39('0x15')](_0x6e39('0x14'),auth[_0x6e39('0xf')](),controller[_0x6e39('0x1c')]);router[_0x6e39('0x15')](_0x6e39('0x1d'),auth[_0x6e39('0xf')](),controller['send']);router[_0x6e39('0x1e')]('/:id',auth[_0x6e39('0xf')](),controller[_0x6e39('0x1f')]);router[_0x6e39('0x20')](_0x6e39('0xc'),auth[_0x6e39('0xf')](),controller[_0x6e39('0x21')]);router[_0x6e39('0x20')](_0x6e39('0xe'),auth[_0x6e39('0xf')](),controller[_0x6e39('0x22')]);router[_0x6e39('0x20')](_0x6e39('0x18'),auth[_0x6e39('0xf')](),controller['removeAnswers']);router['delete']('/:id/users',auth['isAuthenticated'](),controller['removeAgents']);module[_0x6e39('0x23')]=router;
\ No newline at end of file
+var _0xb2ab=['show','/:id/dispositions','getDispositions','/:id/canned_answers','/:id/applications','getApplications','/:id/interactions','getInteractions','/:id/users','post','create','addDisposition','addAnswer','addApplications','/:id/send','send','update','delete','destroy','removeAnswers','removeAgents','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelAccount.controller','get','isAuthenticated','index','/describe','describe','/:id'];(function(_0x4d965e,_0x26dc0f){var _0x1f08b9=function(_0xe3f528){while(--_0xe3f528){_0x4d965e['push'](_0x4d965e['shift']());}};_0x1f08b9(++_0x26dc0f);}(_0xb2ab,0x1c3));var _0xbb2a=function(_0x2bcb2,_0x33a321){_0x2bcb2=_0x2bcb2-0x0;var _0x16c55e=_0xb2ab[_0x2bcb2];return _0x16c55e;};'use strict';var multer=require(_0xbb2a('0x0'));var util=require(_0xbb2a('0x1'));var path=require(_0xbb2a('0x2'));var timeout=require(_0xbb2a('0x3'));var express=require(_0xbb2a('0x4'));var router=express[_0xbb2a('0x5')]();var fs_extra=require(_0xbb2a('0x6'));var auth=require(_0xbb2a('0x7'));var interaction=require(_0xbb2a('0x8'));var config=require(_0xbb2a('0x9'));var controller=require(_0xbb2a('0xa'));router[_0xbb2a('0xb')]('/',auth[_0xbb2a('0xc')](),controller[_0xbb2a('0xd')]);router['get'](_0xbb2a('0xe'),auth[_0xbb2a('0xc')](),controller[_0xbb2a('0xf')]);router[_0xbb2a('0xb')](_0xbb2a('0x10'),auth[_0xbb2a('0xc')](),controller[_0xbb2a('0x11')]);router['get'](_0xbb2a('0x12'),auth[_0xbb2a('0xc')](),controller[_0xbb2a('0x13')]);router['get'](_0xbb2a('0x14'),auth[_0xbb2a('0xc')](),controller['getAnswers']);router[_0xbb2a('0xb')](_0xbb2a('0x15'),auth[_0xbb2a('0xc')](),controller[_0xbb2a('0x16')]);router[_0xbb2a('0xb')](_0xbb2a('0x17'),auth['isAuthenticated'](),controller[_0xbb2a('0x18')]);router[_0xbb2a('0xb')](_0xbb2a('0x19'),auth[_0xbb2a('0xc')](),controller['getAgents']);router[_0xbb2a('0x1a')]('/',auth[_0xbb2a('0xc')](),controller[_0xbb2a('0x1b')]);router[_0xbb2a('0x1a')](_0xbb2a('0x12'),auth['isAuthenticated'](),controller[_0xbb2a('0x1c')]);router[_0xbb2a('0x1a')](_0xbb2a('0x14'),auth[_0xbb2a('0xc')](),controller[_0xbb2a('0x1d')]);router[_0xbb2a('0x1a')]('/:id/notify',controller['notify']);router[_0xbb2a('0x1a')](_0xbb2a('0x15'),auth[_0xbb2a('0xc')](),controller[_0xbb2a('0x1e')]);router[_0xbb2a('0x1a')]('/:id/users',auth[_0xbb2a('0xc')](),controller['addAgents']);router[_0xbb2a('0x1a')](_0xbb2a('0x1f'),auth['isAuthenticated'](),controller[_0xbb2a('0x20')]);router['put'](_0xbb2a('0x10'),auth[_0xbb2a('0xc')](),controller[_0xbb2a('0x21')]);router[_0xbb2a('0x22')]('/:id',auth[_0xbb2a('0xc')](),controller[_0xbb2a('0x23')]);router[_0xbb2a('0x22')](_0xbb2a('0x12'),auth[_0xbb2a('0xc')](),controller['removeDispositions']);router[_0xbb2a('0x22')](_0xbb2a('0x14'),auth[_0xbb2a('0xc')](),controller[_0xbb2a('0x24')]);router['delete'](_0xbb2a('0x19'),auth[_0xbb2a('0xc')](),controller[_0xbb2a('0x25')]);module[_0xbb2a('0x26')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x07b1=['STRING','name','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','randomstring','exports'];(function(_0x15a71c,_0x253b18){var _0x192c8a=function(_0x6edf7){while(--_0x6edf7){_0x15a71c['push'](_0x15a71c['shift']());}};_0x192c8a(++_0x253b18);}(_0x07b1,0xb3));var _0x107b=function(_0x1ecb50,_0x5f02d1){_0x1ecb50=_0x1ecb50-0x0;var _0x5b62fa=_0x07b1[_0x1ecb50];return _0x5b62fa;};'use strict';var Sequelize=require(_0x107b('0x0'));var rs=require(_0x107b('0x1'));module[_0x107b('0x2')]={'name':{'type':Sequelize[_0x107b('0x3')],'unique':_0x107b('0x4'),'allowNull':![]},'description':{'type':Sequelize[_0x107b('0x3')]},'token':{'type':Sequelize[_0x107b('0x3')],'defaultValue':function(){return rs['generate']();}},'replyUri':{'type':Sequelize[_0x107b('0x3')],'validate':{'isUrl':!![]}},'key':{'type':Sequelize[_0x107b('0x3')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x107b('0x5')],'defaultValue':function(){return _0x107b('0x6');}},'notificationSound':{'type':Sequelize[_0x107b('0x7')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x107b('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize[_0x107b('0x3')]},'queueTransfer':{'type':Sequelize[_0x107b('0x7')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x107b('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'allowNull':!![],'defaultValue':null,'comment':_0x107b('0x9')},'mandatoryDisposition':{'type':Sequelize[_0x107b('0x7')],'defaultValue':![],'comment':_0x107b('0xa'),'set':function(_0x25ffde){if(!_0x25ffde)this[_0x107b('0xb')](_0x107b('0xc'),null);this[_0x107b('0xb')](_0x107b('0xd'),_0x25ffde);}}};
\ No newline at end of file
+var _0x4735=['Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','exports','STRING','name','generate','TEXT','INTEGER','BOOLEAN'];(function(_0x396e83,_0x2d51e2){var _0x4a42cc=function(_0x415496){while(--_0x415496){_0x396e83['push'](_0x396e83['shift']());}};_0x4a42cc(++_0x2d51e2);}(_0x4735,0x122));var _0x5473=function(_0x509f97,_0x442414){_0x509f97=_0x509f97-0x0;var _0x18bbef=_0x4735[_0x509f97];return _0x18bbef;};'use strict';var Sequelize=require('sequelize');var rs=require('randomstring');module[_0x5473('0x0')]={'name':{'type':Sequelize[_0x5473('0x1')],'unique':_0x5473('0x2'),'allowNull':![]},'description':{'type':Sequelize[_0x5473('0x1')]},'token':{'type':Sequelize[_0x5473('0x1')],'defaultValue':function(){return rs[_0x5473('0x3')]();}},'replyUri':{'type':Sequelize['STRING'],'validate':{'isUrl':!![]}},'key':{'type':Sequelize[_0x5473('0x1')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x5473('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['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x5473('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize['STRING']},'queueTransfer':{'type':Sequelize[_0x5473('0x6')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x5473('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x5473('0x6')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x5473('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x5473('0x5')],'allowNull':!![],'defaultValue':null,'comment':_0x5473('0x7')},'mandatoryDisposition':{'type':Sequelize[_0x5473('0x6')],'defaultValue':![],'comment':_0x5473('0x8'),'set':function(_0x2eeff0){if(!_0x2eeff0)this[_0x5473('0x9')](_0x5473('0xa'),null);this[_0x5473('0x9')]('mandatoryDisposition',_0x2eeff0);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d40=['lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelAccount.socket','register','client','http','then','info','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','save','update','destroy','stack','name','send','index','map','OpenchannelAccount','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','show','Pause','mandatoryDispositionPause','keys','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','OpenchannelAccounts','userProfileId','UserProfileResource','params','describe','addDisposition','OpenchannelAccountId','Disposition','getDispositions','hasOwnProperty','rows','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','notify','openchannel','CmContact','Sequelize','ValidationError','difference','createdAt','updatedAt','CompanyId','isNil','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','List','Contacts','DESC','Applications','account','list','applications','orderBy','priority','asc','from','contact','firstName','threadId','OpenchannelInteraction','spread','messageId','interaction','created','autoclose','push','*,*,*,*','OpenchannelMessage','AttachmentId','UserId','User','unshift','agent','waitForTheAssignedAgent','forcedOwnership','Start','startRouting','findOne','sequelize','OpenchannelApplication','bulkCreate','getApplications','getInteractions','Contact','Owner','internal','Tag','Tags','color','tag','addAgents','emit','userOpenchannelAccount:save','removeAgents','userOpenchannelAccount:remove','getAgents','body\x20is\x20mandatory\x20and\x20not\x20empty','ListId','Messages','dataValues','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','fs-extra'];(function(_0x3474ac,_0x22d0f7){var _0x5345ec=function(_0x45056e){while(--_0x45056e){_0x3474ac['push'](_0x3474ac['shift']());}};_0x5345ec(++_0x22d0f7);}(_0x1d40,0x160));var _0x01d4=function(_0x3c5132,_0x26455b){_0x3c5132=_0x3c5132-0x0;var _0x1c0d6a=_0x1d40[_0x3c5132];return _0x1c0d6a;};'use strict';var emlformat=require(_0x01d4('0x0'));var rimraf=require(_0x01d4('0x1'));var zipdir=require(_0x01d4('0x2'));var jsonpatch=require(_0x01d4('0x3'));var rp=require(_0x01d4('0x4'));var moment=require(_0x01d4('0x5'));var BPromise=require(_0x01d4('0x6'));var Mustache=require(_0x01d4('0x7'));var util=require(_0x01d4('0x8'));var path=require(_0x01d4('0x9'));var sox=require('sox');var csv=require(_0x01d4('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x01d4('0xb'));var _=require(_0x01d4('0xc'));var squel=require(_0x01d4('0xd'));var crypto=require(_0x01d4('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x01d4('0xf'));var toCsv=require(_0x01d4('0xa'));var querystring=require(_0x01d4('0x10'));var Papa=require(_0x01d4('0x11'));var Redis=require(_0x01d4('0x12'));var authService=require(_0x01d4('0x13'));var qs=require(_0x01d4('0x14'));var as=require(_0x01d4('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x01d4('0x16'))(_0x01d4('0x17'));var utils=require(_0x01d4('0x18'));var config=require(_0x01d4('0x19'));var licenseUtil=require(_0x01d4('0x1a'));var db=require(_0x01d4('0x1b'))['db'];config[_0x01d4('0x1c')]=_['defaults'](config[_0x01d4('0x1c')],{'host':_0x01d4('0x1d'),'port':0x18eb});var socket=require(_0x01d4('0x1e'))(new Redis(config[_0x01d4('0x1c')]));require(_0x01d4('0x1f'))[_0x01d4('0x20')](socket);var jayson=require('jayson/promise');var client=jayson[_0x01d4('0x21')][_0x01d4('0x22')]({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x14f0de,_0xdaa3fc,_0x174734,_0x22b64c){return new BPromise(function(_0x25c48d,_0x1371a7){var _0x84664f=_0x22b64c||client;return _0x84664f['request'](_0x14f0de,_0x174734)[_0x01d4('0x23')](function(_0x4e00ef){logger[_0x01d4('0x24')](_0x01d4('0x25'),_0xdaa3fc,_0x01d4('0x26'));logger['debug'](_0x01d4('0x27'),_0xdaa3fc,'request\x20sent',JSON[_0x01d4('0x28')](_0x4e00ef));if(_0x4e00ef[_0x01d4('0x29')]){if(_0x4e00ef[_0x01d4('0x29')][_0x01d4('0x2a')]===0x1f4){logger['error'](_0x01d4('0x25'),_0xdaa3fc,_0x4e00ef[_0x01d4('0x29')][_0x01d4('0x2b')]);return _0x1371a7(_0x4e00ef[_0x01d4('0x29')][_0x01d4('0x2b')]);}logger[_0x01d4('0x29')]('OpenchannelAccount,\x20%s,\x20%s',_0xdaa3fc,_0x4e00ef[_0x01d4('0x29')][_0x01d4('0x2b')]);return _0x25c48d(_0x4e00ef['error'][_0x01d4('0x2b')]);}else{logger[_0x01d4('0x24')]('OpenchannelAccount,\x20%s,\x20%s',_0xdaa3fc,_0x01d4('0x26'));_0x25c48d(_0x4e00ef[_0x01d4('0x2c')]['message']);}})[_0x01d4('0x2d')](function(_0x1912f5){logger[_0x01d4('0x29')]('OpenchannelAccount,\x20%s,\x20%s',_0xdaa3fc,_0x1912f5);_0x1371a7(_0x1912f5);});});}function respondWithStatusCode(_0x229a64,_0x2d7e29){_0x2d7e29=_0x2d7e29||0xcc;return function(_0x3741a0){if(_0x3741a0){return _0x229a64[_0x01d4('0x2e')](_0x2d7e29);}return _0x229a64[_0x01d4('0x2f')](_0x2d7e29)[_0x01d4('0x30')]();};}function respondWithResult(_0x2e0cda,_0x20194e){_0x20194e=_0x20194e||0xc8;return function(_0x13dd0d){if(_0x13dd0d){return _0x2e0cda[_0x01d4('0x2f')](_0x20194e)[_0x01d4('0x31')](_0x13dd0d);}};}function respondWithFilteredResult(_0x3e4621,_0x4b81e6){return function(_0x124a30){if(_0x124a30){var _0x1ca5d0=typeof _0x4b81e6[_0x01d4('0x32')]===_0x01d4('0x33')&&typeof _0x4b81e6['limit']===_0x01d4('0x33');var _0x3535e4=_0x124a30[_0x01d4('0x34')];var _0x5ae446=_0x1ca5d0?0x0:_0x4b81e6[_0x01d4('0x32')];var _0x1b9705=_0x1ca5d0?_0x124a30[_0x01d4('0x34')]:_0x4b81e6[_0x01d4('0x32')]+_0x4b81e6[_0x01d4('0x35')];var _0x23df5c;if(_0x1b9705>=_0x3535e4){_0x1b9705=_0x3535e4;_0x23df5c=0xc8;}else{_0x23df5c=0xce;}_0x3e4621[_0x01d4('0x2f')](_0x23df5c);return _0x3e4621[_0x01d4('0x36')]('Content-Range',_0x5ae446+'-'+_0x1b9705+'/'+_0x3535e4)[_0x01d4('0x31')](_0x124a30);}return null;};}function patchUpdates(_0x4fe0d9){return function(_0x575b30){try{jsonpatch[_0x01d4('0x37')](_0x575b30,_0x4fe0d9,!![]);}catch(_0x5b76f7){return BPromise[_0x01d4('0x38')](_0x5b76f7);}return _0x575b30[_0x01d4('0x39')]();};}function saveUpdates(_0xca163,_0x486219){return function(_0x105283){if(_0x105283){return _0x105283[_0x01d4('0x3a')](_0xca163)['then'](function(_0x2cf42a){return _0x2cf42a;});}return null;};}function removeEntity(_0x3df1a,_0x51cbf8){return function(_0x187455){if(_0x187455){return _0x187455[_0x01d4('0x3b')]()[_0x01d4('0x23')](function(){var _0x3ed228=_0x187455['get']({'plain':!![]});var _0x14abbc='OpenchannelAccounts';return db['UserProfileResource'][_0x01d4('0x3b')]({'where':{'type':_0x14abbc,'resourceId':_0x3ed228['id']}})[_0x01d4('0x23')](function(){return _0x187455;});})[_0x01d4('0x23')](function(){_0x3df1a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x347c35,_0x276e30){return function(_0x35b7d6){if(!_0x35b7d6){_0x347c35[_0x01d4('0x2e')](0x194);}return _0x35b7d6;};}function handleError(_0xa9f85f,_0x26709e){_0x26709e=_0x26709e||0x1f4;return function(_0x12afb1){logger['error'](_0x12afb1[_0x01d4('0x3c')]);if(_0x12afb1['name']){delete _0x12afb1[_0x01d4('0x3d')];}_0xa9f85f[_0x01d4('0x2f')](_0x26709e)[_0x01d4('0x3e')](_0x12afb1);};}exports[_0x01d4('0x3f')]=function(_0x132558,_0x104c5a){var _0x73c9cc={'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x10a9fc={},_0x1eacb3={'count':0x0,'rows':[]};var _0x22ebe3=_[_0x01d4('0x40')](db[_0x01d4('0x41')][_0x01d4('0x42')],function(_0x46dd3a){return{'name':_0x46dd3a[_0x01d4('0x43')],'type':_0x46dd3a['type'][_0x01d4('0x44')]};});_0x10a9fc[_0x01d4('0x45')]=_['map'](_0x22ebe3,_0x01d4('0x3d'));_0x10a9fc['query']=_['keys'](_0x132558[_0x01d4('0x46')]);_0x10a9fc[_0x01d4('0x47')]=_[_0x01d4('0x48')](_0x10a9fc[_0x01d4('0x45')],_0x10a9fc['query']);_0x73c9cc[_0x01d4('0x49')]=_['intersection'](_0x10a9fc['model'],qs[_0x01d4('0x4a')](_0x132558[_0x01d4('0x46')][_0x01d4('0x4a')]));_0x73c9cc[_0x01d4('0x49')]=_0x73c9cc[_0x01d4('0x49')][_0x01d4('0x4b')]?_0x73c9cc['attributes']:_0x10a9fc['model'];if(!_0x132558[_0x01d4('0x46')]['hasOwnProperty'](_0x01d4('0x4c'))){_0x73c9cc[_0x01d4('0x35')]=qs['limit'](_0x132558[_0x01d4('0x46')][_0x01d4('0x35')]);_0x73c9cc[_0x01d4('0x32')]=qs[_0x01d4('0x32')](_0x132558[_0x01d4('0x46')][_0x01d4('0x32')]);}_0x73c9cc[_0x01d4('0x4d')]=qs['sort'](_0x132558[_0x01d4('0x46')][_0x01d4('0x4e')]);_0x73c9cc[_0x01d4('0x4f')]=qs[_0x01d4('0x47')](_[_0x01d4('0x50')](_0x132558[_0x01d4('0x46')],_0x10a9fc['filters']),_0x22ebe3);if(_0x132558[_0x01d4('0x46')][_0x01d4('0x51')]){_0x73c9cc[_0x01d4('0x4f')]=_[_0x01d4('0x52')](_0x73c9cc[_0x01d4('0x4f')],{'$or':_[_0x01d4('0x40')](_0x22ebe3,function(_0x5c44d6){if(_0x5c44d6['type']!=='VIRTUAL'){var _0x59e0bb={};_0x59e0bb[_0x5c44d6['name']]={'$like':'%'+_0x132558['query'][_0x01d4('0x51')]+'%'};return _0x59e0bb;}})});}_0x73c9cc=_[_0x01d4('0x52')]({},_0x73c9cc,_0x132558[_0x01d4('0x53')]);var _0x25de09={'where':_0x73c9cc[_0x01d4('0x4f')]};return db[_0x01d4('0x41')][_0x01d4('0x34')](_0x25de09)['then'](function(_0x219c31){_0x1eacb3[_0x01d4('0x34')]=_0x219c31;if(_0x132558['query'][_0x01d4('0x54')]){_0x73c9cc[_0x01d4('0x55')]=[{'all':!![]}];}return db['OpenchannelAccount'][_0x01d4('0x56')](_0x73c9cc);})[_0x01d4('0x23')](function(_0x23d497){_0x1eacb3['rows']=_0x23d497;return _0x1eacb3;})[_0x01d4('0x23')](respondWithFilteredResult(_0x104c5a,_0x73c9cc))[_0x01d4('0x2d')](handleError(_0x104c5a,null));};exports[_0x01d4('0x57')]=function(_0x100039,_0x38b394){var _0x270667={'raw':![],'where':{'id':_0x100039['params']['id']},'include':[{'model':db[_0x01d4('0x58')],'as':_0x01d4('0x59')}]},_0x454e32={};_0x454e32[_0x01d4('0x45')]=_[_0x01d4('0x5a')](db[_0x01d4('0x41')][_0x01d4('0x42')]);_0x454e32[_0x01d4('0x46')]=_[_0x01d4('0x5a')](_0x100039['query']);_0x454e32[_0x01d4('0x47')]=_[_0x01d4('0x48')](_0x454e32[_0x01d4('0x45')],_0x454e32[_0x01d4('0x46')]);_0x270667['attributes']=_[_0x01d4('0x48')](_0x454e32[_0x01d4('0x45')],qs['fields'](_0x100039['query'][_0x01d4('0x4a')]));_0x270667['attributes']=_0x270667['attributes'][_0x01d4('0x4b')]?_0x270667[_0x01d4('0x49')]:_0x454e32['model'];if(_0x100039[_0x01d4('0x46')][_0x01d4('0x54')]){_0x270667[_0x01d4('0x55')]=[{'all':!![]}];}_0x270667=_[_0x01d4('0x52')]({},_0x270667,_0x100039[_0x01d4('0x53')]);return db['OpenchannelAccount'][_0x01d4('0x5b')](_0x270667)[_0x01d4('0x23')](handleEntityNotFound(_0x38b394,null))[_0x01d4('0x23')](respondWithResult(_0x38b394,null))['catch'](handleError(_0x38b394,null));};exports[_0x01d4('0x5c')]=function(_0x517b04,_0x5289ec){return db[_0x01d4('0x41')][_0x01d4('0x5c')](_0x517b04[_0x01d4('0x5d')],{})[_0x01d4('0x23')](function(_0x830908){var _0x25f262=_0x517b04[_0x01d4('0x5e')][_0x01d4('0x5f')]({'plain':!![]});if(!_0x25f262)throw new Error(_0x01d4('0x60'));if(_0x25f262['role']===_0x01d4('0x5e')){var _0x31c47a=_0x830908[_0x01d4('0x5f')]({'plain':!![]});var _0x9922af=_0x01d4('0x61');return db['UserProfileSection'][_0x01d4('0x5b')]({'where':{'name':_0x9922af,'userProfileId':_0x25f262[_0x01d4('0x62')]},'raw':!![]})[_0x01d4('0x23')](function(_0x31a19a){if(_0x31a19a&&_0x31a19a['autoAssociation']===0x0){return db[_0x01d4('0x63')][_0x01d4('0x5c')]({'name':_0x31c47a['name'],'resourceId':_0x31c47a['id'],'type':_0x31a19a[_0x01d4('0x3d')],'sectionId':_0x31a19a['id']},{})[_0x01d4('0x23')](function(){return _0x830908;});}else{return _0x830908;}})['catch'](function(_0x683024){logger[_0x01d4('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x683024);throw _0x683024;});}return _0x830908;})[_0x01d4('0x23')](respondWithResult(_0x5289ec,0xc9))[_0x01d4('0x2d')](handleError(_0x5289ec,null));};exports[_0x01d4('0x3a')]=function(_0x38db04,_0x233fd5){if(_0x38db04[_0x01d4('0x5d')]['id']){delete _0x38db04[_0x01d4('0x5d')]['id'];}return db[_0x01d4('0x41')][_0x01d4('0x5b')]({'where':{'id':_0x38db04[_0x01d4('0x64')]['id']},'include':[{'model':db['Pause'],'as':_0x01d4('0x59')}]})[_0x01d4('0x23')](handleEntityNotFound(_0x233fd5,null))[_0x01d4('0x23')](saveUpdates(_0x38db04[_0x01d4('0x5d')],null))[_0x01d4('0x23')](respondWithResult(_0x233fd5,null))[_0x01d4('0x2d')](handleError(_0x233fd5,null));};exports['destroy']=function(_0x405e4a,_0x3a40ee){return db['OpenchannelAccount'][_0x01d4('0x5b')]({'where':{'id':_0x405e4a[_0x01d4('0x64')]['id']}})[_0x01d4('0x23')](handleEntityNotFound(_0x3a40ee,null))[_0x01d4('0x23')](removeEntity(_0x3a40ee,null))['catch'](handleError(_0x3a40ee,null));};exports[_0x01d4('0x65')]=function(_0xee70f0,_0x446f85){return db[_0x01d4('0x41')]['describe']()[_0x01d4('0x23')](respondWithResult(_0x446f85,null))[_0x01d4('0x2d')](handleError(_0x446f85,null));};exports[_0x01d4('0x66')]=function(_0x5e2ba2,_0x1211c5,_0x5f4af4){if(_0x5e2ba2['body']['id']){delete _0x5e2ba2[_0x01d4('0x5d')]['id'];}return db['OpenchannelAccount']['find']({'where':{'id':_0x5e2ba2[_0x01d4('0x64')]['id']}})['then'](handleEntityNotFound(_0x1211c5,null))[_0x01d4('0x23')](function(_0x16d40a){if(_0x16d40a){_0x5e2ba2[_0x01d4('0x5d')][_0x01d4('0x67')]=_0x16d40a['id'];return db[_0x01d4('0x68')][_0x01d4('0x5c')](_0x5e2ba2[_0x01d4('0x5d')]);}})['then'](respondWithResult(_0x1211c5,null))[_0x01d4('0x2d')](handleError(_0x1211c5,null));};exports[_0x01d4('0x69')]=function(_0x595b65,_0x29736e,_0x136e47){var _0x2d8dd7={'raw':![],'where':{}};var _0x3dfa89={};var _0x5e276d={'count':0x0,'rows':[]};return db[_0x01d4('0x41')]['findOne']({'where':{'id':_0x595b65[_0x01d4('0x64')]['id']}})[_0x01d4('0x23')](handleEntityNotFound(_0x29736e,null))['then'](function(_0x5078f8){if(_0x5078f8){_0x3dfa89[_0x01d4('0x45')]=_[_0x01d4('0x5a')](db[_0x01d4('0x68')][_0x01d4('0x42')]);_0x3dfa89[_0x01d4('0x46')]=_[_0x01d4('0x5a')](_0x595b65[_0x01d4('0x46')]);_0x3dfa89[_0x01d4('0x47')]=_[_0x01d4('0x48')](_0x3dfa89[_0x01d4('0x45')],_0x3dfa89['query']);_0x2d8dd7[_0x01d4('0x49')]=_[_0x01d4('0x48')](_0x3dfa89['model'],qs[_0x01d4('0x4a')](_0x595b65[_0x01d4('0x46')][_0x01d4('0x4a')]));_0x2d8dd7[_0x01d4('0x49')]=_0x2d8dd7[_0x01d4('0x49')][_0x01d4('0x4b')]?_0x2d8dd7[_0x01d4('0x49')]:_0x3dfa89[_0x01d4('0x45')];if(!_0x595b65['query'][_0x01d4('0x6a')](_0x01d4('0x4c'))){_0x2d8dd7[_0x01d4('0x35')]=qs[_0x01d4('0x35')](_0x595b65[_0x01d4('0x46')][_0x01d4('0x35')]);_0x2d8dd7[_0x01d4('0x32')]=qs[_0x01d4('0x32')](_0x595b65[_0x01d4('0x46')]['offset']);}_0x2d8dd7['order']=qs[_0x01d4('0x4e')](_0x595b65['query'][_0x01d4('0x4e')]);_0x2d8dd7[_0x01d4('0x4f')]=qs[_0x01d4('0x47')](_[_0x01d4('0x50')](_0x595b65['query'],_0x3dfa89['filters']));_0x2d8dd7[_0x01d4('0x4f')][_0x01d4('0x67')]=_0x5078f8['id'];if(_0x595b65[_0x01d4('0x46')][_0x01d4('0x51')]){_0x2d8dd7[_0x01d4('0x4f')]=_['merge'](_0x2d8dd7['where'],{'$or':_[_0x01d4('0x40')](_0x2d8dd7[_0x01d4('0x49')],function(_0x103864){var _0x4bcd82={};_0x4bcd82[_0x103864]={'$like':'%'+_0x595b65[_0x01d4('0x46')]['filter']+'%'};return _0x4bcd82;})});}_0x2d8dd7=_[_0x01d4('0x52')]({},_0x2d8dd7,_0x595b65[_0x01d4('0x53')]);return db['Disposition']['count']({'where':_0x2d8dd7[_0x01d4('0x4f')]})['then'](function(_0x4e8278){_0x5e276d[_0x01d4('0x34')]=_0x4e8278;if(_0x595b65[_0x01d4('0x46')][_0x01d4('0x54')]){_0x2d8dd7[_0x01d4('0x55')]=[{'all':!![]}];}return db[_0x01d4('0x68')][_0x01d4('0x56')](_0x2d8dd7);})[_0x01d4('0x23')](function(_0x213a3f){_0x5e276d[_0x01d4('0x6b')]=_0x213a3f;return _0x5e276d;});}})[_0x01d4('0x23')](respondWithFilteredResult(_0x29736e,_0x2d8dd7))[_0x01d4('0x2d')](handleError(_0x29736e,null));};exports[_0x01d4('0x6c')]=function(_0x49ba16,_0x443a6b,_0x59efcb){return db[_0x01d4('0x41')][_0x01d4('0x5b')]({'where':{'id':_0x49ba16['params']['id']}})[_0x01d4('0x23')](handleEntityNotFound(_0x443a6b,null))[_0x01d4('0x23')](function(_0x233dae){if(_0x233dae){return _0x233dae[_0x01d4('0x6c')](_0x49ba16[_0x01d4('0x46')][_0x01d4('0x6d')]);}})[_0x01d4('0x23')](respondWithStatusCode(_0x443a6b,null))[_0x01d4('0x2d')](handleError(_0x443a6b,null));};exports[_0x01d4('0x6e')]=function(_0x3145ae,_0x55ff70,_0xd6096c){if(_0x3145ae[_0x01d4('0x5d')]['id']){delete _0x3145ae[_0x01d4('0x5d')]['id'];}return db[_0x01d4('0x41')][_0x01d4('0x5b')]({'where':{'id':_0x3145ae['params']['id']}})[_0x01d4('0x23')](handleEntityNotFound(_0x55ff70,null))[_0x01d4('0x23')](function(_0x2b9fa0){if(_0x2b9fa0){_0x3145ae['body']['OpenchannelAccountId']=_0x2b9fa0['id'];return db[_0x01d4('0x6f')][_0x01d4('0x5c')](_0x3145ae['body']);}})[_0x01d4('0x23')](respondWithResult(_0x55ff70,null))[_0x01d4('0x2d')](handleError(_0x55ff70,null));};exports[_0x01d4('0x70')]=function(_0x1f2501,_0x47c5ae,_0x481257){var _0x485a1b={'raw':![],'where':{}};var _0x540867={};var _0x2e2b4f={'count':0x0,'rows':[]};return db['OpenchannelAccount']['findOne']({'where':{'id':_0x1f2501[_0x01d4('0x64')]['id']}})[_0x01d4('0x23')](handleEntityNotFound(_0x47c5ae,null))['then'](function(_0x3f7ae7){if(_0x3f7ae7){_0x540867[_0x01d4('0x45')]=_[_0x01d4('0x5a')](db[_0x01d4('0x6f')][_0x01d4('0x42')]);_0x540867[_0x01d4('0x46')]=_[_0x01d4('0x5a')](_0x1f2501[_0x01d4('0x46')]);_0x540867[_0x01d4('0x47')]=_[_0x01d4('0x48')](_0x540867['model'],_0x540867[_0x01d4('0x46')]);_0x485a1b[_0x01d4('0x49')]=_[_0x01d4('0x48')](_0x540867[_0x01d4('0x45')],qs[_0x01d4('0x4a')](_0x1f2501[_0x01d4('0x46')][_0x01d4('0x4a')]));_0x485a1b[_0x01d4('0x49')]=_0x485a1b['attributes']['length']?_0x485a1b[_0x01d4('0x49')]:_0x540867[_0x01d4('0x45')];if(!_0x1f2501[_0x01d4('0x46')][_0x01d4('0x6a')](_0x01d4('0x4c'))){_0x485a1b[_0x01d4('0x35')]=qs[_0x01d4('0x35')](_0x1f2501[_0x01d4('0x46')][_0x01d4('0x35')]);_0x485a1b['offset']=qs[_0x01d4('0x32')](_0x1f2501[_0x01d4('0x46')][_0x01d4('0x32')]);}_0x485a1b[_0x01d4('0x4d')]=qs[_0x01d4('0x4e')](_0x1f2501[_0x01d4('0x46')]['sort']);_0x485a1b[_0x01d4('0x4f')]=qs[_0x01d4('0x47')](_[_0x01d4('0x50')](_0x1f2501[_0x01d4('0x46')],_0x540867['filters']));_0x485a1b[_0x01d4('0x4f')]['OpenchannelAccountId']=_0x3f7ae7['id'];if(_0x1f2501[_0x01d4('0x46')]['filter']){_0x485a1b['where']=_[_0x01d4('0x52')](_0x485a1b[_0x01d4('0x4f')],{'$or':_['map'](_0x485a1b[_0x01d4('0x49')],function(_0x61431a){var _0x3e577b={};_0x3e577b[_0x61431a]={'$like':'%'+_0x1f2501[_0x01d4('0x46')][_0x01d4('0x51')]+'%'};return _0x3e577b;})});}_0x485a1b=_[_0x01d4('0x52')]({},_0x485a1b,_0x1f2501[_0x01d4('0x53')]);return db['CannedAnswer'][_0x01d4('0x34')]({'where':_0x485a1b[_0x01d4('0x4f')]})['then'](function(_0x4c88e8){_0x2e2b4f[_0x01d4('0x34')]=_0x4c88e8;if(_0x1f2501[_0x01d4('0x46')][_0x01d4('0x54')]){_0x485a1b[_0x01d4('0x55')]=[{'all':!![]}];}return db[_0x01d4('0x6f')][_0x01d4('0x56')](_0x485a1b);})[_0x01d4('0x23')](function(_0x2e6d61){_0x2e2b4f[_0x01d4('0x6b')]=_0x2e6d61;return _0x2e2b4f;});}})[_0x01d4('0x23')](respondWithFilteredResult(_0x47c5ae,_0x485a1b))[_0x01d4('0x2d')](handleError(_0x47c5ae,null));};exports[_0x01d4('0x71')]=function(_0x59d2b0,_0x187e77,_0xeb8415){return db[_0x01d4('0x41')]['find']({'where':{'id':_0x59d2b0[_0x01d4('0x64')]['id']}})[_0x01d4('0x23')](handleEntityNotFound(_0x187e77,null))[_0x01d4('0x23')](function(_0x575f8e){if(_0x575f8e){return _0x575f8e[_0x01d4('0x71')](_0x59d2b0[_0x01d4('0x46')][_0x01d4('0x6d')]);}})[_0x01d4('0x23')](respondWithStatusCode(_0x187e77,null))['catch'](handleError(_0x187e77,null));};exports[_0x01d4('0x72')]=function(_0x2a2a5b,_0x52b6da,_0x55118e){var _0x146e16={'body':_0x2a2a5b[_0x01d4('0x5d')],'channel':_0x01d4('0x73')};var _0x13451f=[];var _0x28007e=[];var _0x395fff={};var _0x5bd162=![];return db[_0x01d4('0x74')][_0x01d4('0x65')]()['then'](function(_0xa2ffc){if(!_0xa2ffc){throw new db[(_0x01d4('0x75'))][(_0x01d4('0x76'))]('no\x20available\x20attributes');}_0x13451f=_[_0x01d4('0x77')](_[_0x01d4('0x5a')](_0xa2ffc),[_0x01d4('0x78'),_0x01d4('0x79')]);_0x28007e=_[_0x01d4('0x77')](_[_0x01d4('0x5a')](_0xa2ffc),[_0x01d4('0x78'),_0x01d4('0x79'),_0x01d4('0x7a'),'ListId']);if(_0x2a2a5b[_0x01d4('0x5d')]['id']){delete _0x2a2a5b[_0x01d4('0x5d')]['id'];}if(_[_0x01d4('0x7b')](_0x2a2a5b['body']['from'])){throw new db[(_0x01d4('0x75'))][(_0x01d4('0x76'))]('from\x20is\x20mandatory');}if(_['isNil'](_0x2a2a5b['body']['body'])||_0x2a2a5b['body'][_0x01d4('0x5d')]===''){throw new db['Sequelize']['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x01d4('0x7b')](_0x2a2a5b[_0x01d4('0x5d')]['mapKey'])){throw new db['Sequelize']['ValidationError'](_0x01d4('0x7c')+_0x28007e);}if(!_['includes'](_0x28007e,_0x2a2a5b[_0x01d4('0x5d')][_0x01d4('0x7d')])){throw new db['Sequelize']['ValidationError'](_0x01d4('0x7e')+_0x28007e);}_0x395fff[_0x2a2a5b[_0x01d4('0x5d')][_0x01d4('0x7d')]]=_0x2a2a5b[_0x01d4('0x5d')]['from'];})[_0x01d4('0x23')](function(){return db['OpenchannelAccount'][_0x01d4('0x5b')]({'where':{'id':_0x2a2a5b[_0x01d4('0x64')]['id']},'include':[{'model':db['CmList'],'as':_0x01d4('0x7f'),'include':[{'model':db[_0x01d4('0x74')],'as':_0x01d4('0x80'),'where':_0x395fff,'limit':0x1,'order':[[_0x01d4('0x79'),_0x01d4('0x81')]]}]},{'model':db['OpenchannelApplication'],'as':_0x01d4('0x82')}]});})[_0x01d4('0x23')](handleEntityNotFound(_0x52b6da,null))[_0x01d4('0x23')](function(_0x5ef8fd){if(_0x5ef8fd&&_0x5ef8fd[_0x01d4('0x7f')]){_0x146e16[_0x01d4('0x83')]=_0x5ef8fd;_0x146e16['applications']=_0x5ef8fd[_0x01d4('0x82')];_0x146e16[_0x01d4('0x84')]=_0x5ef8fd[_0x01d4('0x7f')];_0x146e16[_0x01d4('0x85')]=_[_0x01d4('0x86')](_0x146e16[_0x01d4('0x85')],[_0x01d4('0x87')],[_0x01d4('0x88')]);if(_0x146e16['account'][_0x01d4('0x82')]){delete _0x146e16[_0x01d4('0x83')][_0x01d4('0x82')];}if(_0x146e16[_0x01d4('0x83')][_0x01d4('0x7f')]&&_0x146e16[_0x01d4('0x83')]['List'][_0x01d4('0x80')][_0x01d4('0x4b')]){return _0x146e16['account'][_0x01d4('0x7f')][_0x01d4('0x80')][0x0];}var _0x3dc504=_['defaults'](_0x2a2a5b[_0x01d4('0x5d')],{'firstName':_0x2a2a5b[_0x01d4('0x5d')][_0x01d4('0x89')],'ListId':_0x5ef8fd['ListId']});_0x3dc504[_0x2a2a5b[_0x01d4('0x5d')][_0x01d4('0x7d')]]=_0x2a2a5b[_0x01d4('0x5d')]['from'];return db[_0x01d4('0x74')][_0x01d4('0x5c')](_0x3dc504,{'fields':_0x13451f,'raw':!![]});}})[_0x01d4('0x23')](handleEntityNotFound(_0x52b6da,null))[_0x01d4('0x23')](function(_0x23ae9d){_0x146e16[_0x01d4('0x8a')]=_0x23ae9d;if(_0x23ae9d){var _0x320b9d={'ContactId':_0x23ae9d['id'],'OpenchannelAccountId':_0x2a2a5b[_0x01d4('0x64')]['id'],'from':(_0x23ae9d[_0x01d4('0x8b')]||'')+'\x20'+(_0x23ae9d['lastName']||'')};var _0x5067f0={'OpenchannelAccountId':_0x2a2a5b[_0x01d4('0x64')]['id'],'closed':![]};if(_0x2a2a5b[_0x01d4('0x5d')][_0x01d4('0x8c')]){_0x5067f0[_0x01d4('0x8c')]=_0x2a2a5b[_0x01d4('0x5d')]['threadId'];return db[_0x01d4('0x8d')][_0x01d4('0x5b')]({'where':_0x5067f0})['then'](function(_0x3e6cd0){if(_0x3e6cd0){return[_0x3e6cd0,![]];}_0x320b9d['threadId']=_0x2a2a5b['body'][_0x01d4('0x8c')];_0x320b9d['externalUrl']=_0x2a2a5b[_0x01d4('0x5d')]['externalUrl'];return db[_0x01d4('0x8d')]['create'](_0x320b9d)[_0x01d4('0x23')](function(_0x2af07f){return[_0x2af07f,!![]];});});}else{_0x5067f0[_0x01d4('0x8c')]=null;}_0x5067f0['ContactId']=_0x23ae9d['id'];return db[_0x01d4('0x8d')][_0x01d4('0x5b')]({'where':_0x5067f0})[_0x01d4('0x23')](function(_0x39d27d){if(_0x39d27d){return[_0x39d27d,![]];}return db[_0x01d4('0x8d')][_0x01d4('0x5c')](_0x320b9d)[_0x01d4('0x23')](function(_0x78eb4c){return[_0x78eb4c,!![]];});});}})[_0x01d4('0x8e')](function(_0x5c5b98,_0xc7209f){if(_0x5c5b98){_0x5bd162=_0xc7209f;if(!_0xc7209f){var _0x19a8f9={'from':(_0x146e16['contact']['firstName']||'')+'\x20'+(_0x146e16[_0x01d4('0x8a')]['lastName']||'')};if(_0x2a2a5b[_0x01d4('0x5d')][_0x01d4('0x8c')]&&_0x2a2a5b['body'][_0x01d4('0x8f')]&&_0x2a2a5b['body'][_0x01d4('0x8c')]!=_0x2a2a5b[_0x01d4('0x5d')][_0x01d4('0x8f')]){_0x19a8f9['threadId']=_0x2a2a5b[_0x01d4('0x5d')]['messageId'];}return _0x5c5b98[_0x01d4('0x3a')](_0x19a8f9);}else{return _0x5c5b98;}}})[_0x01d4('0x23')](function(_0x36d86f){_0x146e16['interaction']=_0x36d86f[_0x01d4('0x5f')]({'plain':!![]});_0x146e16[_0x01d4('0x90')][_0x01d4('0x91')]=_0x5bd162;if(_0x146e16['interaction'][_0x01d4('0x91')]){if(_0x146e16[_0x01d4('0x83')][_0x01d4('0x92')]){_0x146e16[_0x01d4('0x85')][_0x01d4('0x93')]({'id':0x0,'priority':_0x146e16['applications'][_0x01d4('0x4b')]+0x1,'app':'close','appdata':'unmanaged','interval':_0x01d4('0x94')});}}return db[_0x01d4('0x95')][_0x01d4('0x5c')]({'body':_0x2a2a5b['body']['body'],'OpenchannelAccountId':_0x2a2a5b[_0x01d4('0x64')]['id'],'OpenchannelInteractionId':_0x36d86f['id'],'direction':'in','ContactId':_0x146e16[_0x01d4('0x8a')]['id'],'AttachmentId':_0x2a2a5b[_0x01d4('0x5d')][_0x01d4('0x96')]});})[_0x01d4('0x23')](function(_0x2a7d8b){_0x146e16[_0x01d4('0x2b')]=_0x2a7d8b;if(_0x146e16[_0x01d4('0x90')][_0x01d4('0x97')]){return db[_0x01d4('0x98')][_0x01d4('0x5b')]({'attributes':['id',_0x01d4('0x3d')],'where':{'id':_0x146e16[_0x01d4('0x90')][_0x01d4('0x97')]}})[_0x01d4('0x23')](function(_0x356c11){if(_0x356c11){_0x146e16[_0x01d4('0x85')][_0x01d4('0x99')]({'id':0x0,'priority':0x0,'app':_0x01d4('0x9a'),'appdata':_0x356c11[_0x01d4('0x3d')]+','+(_0x146e16[_0x01d4('0x83')][_0x01d4('0x9b')]||0xa),'interval':_0x01d4('0x94')});_0x146e16[_0x01d4('0x9c')]=![];}return respondWithRpcPromise(_0x01d4('0x9d'),_0x01d4('0x9e'),_0x146e16);});}return respondWithRpcPromise(_0x01d4('0x9d'),_0x01d4('0x9e'),_0x146e16);})['then'](function(_0x1d8bf1){respondWithRpcPromise('EventManager','EventManager',{'event':_0x01d4('0x72'),'message':_0x1d8bf1},client9002);return _0x1d8bf1;})['then'](respondWithResult(_0x52b6da,null))[_0x01d4('0x2d')](handleError(_0x52b6da,null));};exports['addApplications']=function(_0x596d6c,_0x350d27,_0x4c87e0){return db[_0x01d4('0x41')][_0x01d4('0x9f')]({'where':{'id':_0x596d6c[_0x01d4('0x64')]['id']}})['then'](handleEntityNotFound(_0x350d27,null))[_0x01d4('0x23')](function(_0xda2ca5){if(_0xda2ca5){return db[_0x01d4('0xa0')]['transaction'](function(_0x3aee27){return db[_0x01d4('0xa1')][_0x01d4('0x3b')]({'where':{'OpenchannelAccountId':_0x596d6c[_0x01d4('0x64')]['id']},'transaction':_0x3aee27})[_0x01d4('0x23')](function(_0x328c43){var _0x2773a4=_['map'](_0x596d6c[_0x01d4('0x5d')],function(_0x2350e5){_0x2350e5[_0x01d4('0x67')]=_0x596d6c[_0x01d4('0x64')]['id'];return _0x2350e5;});return db[_0x01d4('0xa1')][_0x01d4('0xa2')](_0x2773a4,{'transaction':_0x3aee27});});})['then'](function(){return db[_0x01d4('0xa1')]['findAndCountAll']({'where':{'OpenchannelAccountId':_0x596d6c['params']['id']},'order':'priority'});});}})['then'](respondWithResult(_0x350d27,null))[_0x01d4('0x2d')](handleError(_0x350d27,null));};exports[_0x01d4('0xa3')]=function(_0x464626,_0x59f33b,_0x3dc89a){var _0x2e6ee7={};var _0x5a53d4={};var _0x346265;var _0x1de431;return db[_0x01d4('0x41')][_0x01d4('0x9f')]({'where':{'id':_0x464626[_0x01d4('0x64')]['id']}})[_0x01d4('0x23')](handleEntityNotFound(_0x59f33b,null))[_0x01d4('0x23')](function(_0x1fb580){if(_0x1fb580){_0x346265=_0x1fb580;_0x5a53d4['model']=_[_0x01d4('0x5a')](db['OpenchannelApplication'][_0x01d4('0x42')]);_0x5a53d4['query']=_[_0x01d4('0x5a')](_0x464626[_0x01d4('0x46')]);_0x5a53d4['filters']=_[_0x01d4('0x48')](_0x5a53d4[_0x01d4('0x45')],_0x5a53d4[_0x01d4('0x46')]);_0x2e6ee7[_0x01d4('0x49')]=_[_0x01d4('0x48')](_0x5a53d4['model'],qs[_0x01d4('0x4a')](_0x464626[_0x01d4('0x46')]['fields']));_0x2e6ee7['attributes']=_0x2e6ee7[_0x01d4('0x49')][_0x01d4('0x4b')]?_0x2e6ee7[_0x01d4('0x49')]:_0x5a53d4[_0x01d4('0x45')];_0x2e6ee7[_0x01d4('0x4d')]=qs[_0x01d4('0x4e')](_0x464626[_0x01d4('0x46')]['sort']);_0x2e6ee7['where']=qs[_0x01d4('0x47')](_[_0x01d4('0x50')](_0x464626[_0x01d4('0x46')],_0x5a53d4[_0x01d4('0x47')]));if(_0x464626[_0x01d4('0x46')]['filter']){_0x2e6ee7['where']=_[_0x01d4('0x52')](_0x2e6ee7[_0x01d4('0x4f')],{'$or':_[_0x01d4('0x40')](_0x2e6ee7[_0x01d4('0x49')],function(_0x3f6083){var _0x21aba6={};_0x21aba6[_0x3f6083]={'$like':'%'+_0x464626[_0x01d4('0x46')][_0x01d4('0x51')]+'%'};return _0x21aba6;})});}_0x2e6ee7=_[_0x01d4('0x52')]({},_0x2e6ee7,_0x464626[_0x01d4('0x53')]);return _0x346265[_0x01d4('0xa3')](_0x2e6ee7);}})['then'](function(_0x1e7c07){if(_0x1e7c07){_0x1de431=_0x1e7c07[_0x01d4('0x4b')];if(!_0x464626[_0x01d4('0x46')][_0x01d4('0x6a')](_0x01d4('0x4c'))){_0x2e6ee7['limit']=qs['limit'](_0x464626[_0x01d4('0x46')][_0x01d4('0x35')]);_0x2e6ee7[_0x01d4('0x32')]=qs[_0x01d4('0x32')](_0x464626['query'][_0x01d4('0x32')]);}return _0x346265[_0x01d4('0xa3')](_0x2e6ee7);}})[_0x01d4('0x23')](function(_0x23faa5){if(_0x23faa5){return _0x23faa5?{'count':_0x1de431,'rows':_0x23faa5}:null;}})[_0x01d4('0x23')](respondWithResult(_0x59f33b,null))[_0x01d4('0x2d')](handleError(_0x59f33b,null));};exports[_0x01d4('0xa4')]=function(_0x53d12b,_0x358393,_0xd88ae){var _0x3c3d8c={'raw':![],'where':{}};var _0x4e6e09={};var _0x236aa9={'count':0x0,'rows':[]};return db[_0x01d4('0x41')][_0x01d4('0x9f')]({'where':{'id':_0x53d12b['params']['id']}})[_0x01d4('0x23')](handleEntityNotFound(_0x358393,null))[_0x01d4('0x23')](function(_0x16f3a1){if(_0x16f3a1){_0x4e6e09['model']=_[_0x01d4('0x5a')](db[_0x01d4('0x8d')][_0x01d4('0x42')]);_0x4e6e09[_0x01d4('0x46')]=_[_0x01d4('0x5a')](_0x53d12b[_0x01d4('0x46')]);_0x4e6e09[_0x01d4('0x47')]=_['intersection'](_0x4e6e09[_0x01d4('0x45')],_0x4e6e09[_0x01d4('0x46')]);_0x3c3d8c['attributes']=_[_0x01d4('0x48')](_0x4e6e09['model'],qs['fields'](_0x53d12b[_0x01d4('0x46')][_0x01d4('0x4a')]));_0x3c3d8c[_0x01d4('0x49')]=_0x3c3d8c[_0x01d4('0x49')]['length']?_0x3c3d8c[_0x01d4('0x49')]:_0x4e6e09[_0x01d4('0x45')];if(!_0x53d12b[_0x01d4('0x46')]['hasOwnProperty'](_0x01d4('0x4c'))){_0x3c3d8c[_0x01d4('0x35')]=qs['limit'](_0x53d12b[_0x01d4('0x46')][_0x01d4('0x35')]);_0x3c3d8c[_0x01d4('0x32')]=qs[_0x01d4('0x32')](_0x53d12b['query'][_0x01d4('0x32')]);}_0x3c3d8c[_0x01d4('0x4d')]=qs['sort'](_0x53d12b[_0x01d4('0x46')][_0x01d4('0x4e')]);_0x3c3d8c[_0x01d4('0x4f')]=qs[_0x01d4('0x47')](_[_0x01d4('0x50')](_0x53d12b['query'],_0x4e6e09[_0x01d4('0x47')]));_0x3c3d8c[_0x01d4('0x4f')][_0x01d4('0x67')]=_0x16f3a1['id'];if(_0x53d12b[_0x01d4('0x46')]['filter']){_0x3c3d8c[_0x01d4('0x4f')]=_[_0x01d4('0x52')](_0x3c3d8c['where'],{'$or':_[_0x01d4('0x40')](_0x3c3d8c['attributes'],function(_0x2d268f){var _0x56a3c9={};_0x56a3c9[_0x2d268f]={'$like':'%'+_0x53d12b[_0x01d4('0x46')][_0x01d4('0x51')]+'%'};return _0x56a3c9;})});}_0x3c3d8c=_['merge']({},_0x3c3d8c,_0x53d12b[_0x01d4('0x53')]);return db[_0x01d4('0x8d')][_0x01d4('0x34')]({'where':_0x3c3d8c[_0x01d4('0x4f')]})[_0x01d4('0x23')](function(_0x5c75cc){_0x236aa9['count']=_0x5c75cc;if(_0x53d12b[_0x01d4('0x46')]['includeAll']){_0x3c3d8c[_0x01d4('0x55')]=[{'model':db[_0x01d4('0x74')],'as':_0x01d4('0xa5'),'required':![]},{'model':db[_0x01d4('0x98')],'as':_0x01d4('0xa6'),'attributes':['name','fullname',_0x01d4('0xa7')],'required':![]},{'model':db[_0x01d4('0xa8')],'as':_0x01d4('0xa9'),'attributes':['id','name',_0x01d4('0xaa')],'where':_0x53d12b[_0x01d4('0x46')][_0x01d4('0xab')]?{'id':_0x53d12b[_0x01d4('0x46')][_0x01d4('0xab')]}:undefined,'required':_0x53d12b['query'][_0x01d4('0xab')]?!![]:![]}];}return db[_0x01d4('0x8d')][_0x01d4('0x56')](_0x3c3d8c);})[_0x01d4('0x23')](function(_0x15a5fc){_0x236aa9[_0x01d4('0x6b')]=_0x15a5fc;return _0x236aa9;});}})[_0x01d4('0x23')](respondWithFilteredResult(_0x358393,_0x3c3d8c))[_0x01d4('0x2d')](handleError(_0x358393,null));};exports[_0x01d4('0xac')]=function(_0x44ba27,_0x334e1f,_0x198f62){return db[_0x01d4('0x41')][_0x01d4('0x5b')]({'where':{'id':_0x44ba27[_0x01d4('0x64')]['id']}})[_0x01d4('0x23')](handleEntityNotFound(_0x334e1f,null))[_0x01d4('0x23')](function(_0x17f75c){if(_0x17f75c){return _0x17f75c['addAgents'](_0x44ba27['body'][_0x01d4('0x6d')],_['omit'](_0x44ba27[_0x01d4('0x5d')],[_0x01d4('0x6d'),'id'])||{})[_0x01d4('0x8e')](function(_0x1867e3){for(var _0x3f682a=0x0;_0x3f682a<_0x44ba27[_0x01d4('0x5d')][_0x01d4('0x6d')][_0x01d4('0x4b')];_0x3f682a+=0x1){socket[_0x01d4('0xad')](_0x01d4('0xae'),{'UserId':Number(_0x44ba27[_0x01d4('0x5d')][_0x01d4('0x6d')][_0x3f682a]),'OpenchannelAccountId':Number(_0x44ba27[_0x01d4('0x64')]['id'])});}return _0x1867e3;});}})[_0x01d4('0x23')](respondWithResult(_0x334e1f,null))[_0x01d4('0x2d')](handleError(_0x334e1f,null));};exports[_0x01d4('0xaf')]=function(_0x5d8f81,_0x32bb27,_0x461a76){return db[_0x01d4('0x41')][_0x01d4('0x5b')]({'where':{'id':_0x5d8f81[_0x01d4('0x64')]['id']}})[_0x01d4('0x23')](handleEntityNotFound(_0x32bb27,null))[_0x01d4('0x23')](function(_0x8a92ce){if(_0x8a92ce){return _0x8a92ce['removeAgents'](_0x5d8f81['query']['ids'])[_0x01d4('0x23')](function(){if(_['isArray'](_0x5d8f81['query'][_0x01d4('0x6d')])){for(var _0x390139=0x0;_0x390139<_0x5d8f81['query'][_0x01d4('0x6d')]['length'];_0x390139+=0x1){socket[_0x01d4('0xad')](_0x01d4('0xb0'),{'UserId':Number(_0x5d8f81[_0x01d4('0x46')][_0x01d4('0x6d')][_0x390139]),'OpenchannelAccountId':Number(_0x5d8f81[_0x01d4('0x64')]['id'])});}}else{socket[_0x01d4('0xad')]('userOpenchannelAccount:remove',{'UserId':Number(_0x5d8f81[_0x01d4('0x46')][_0x01d4('0x6d')]),'OpenchannelAccountId':Number(_0x5d8f81[_0x01d4('0x64')]['id'])});}});}})['then'](respondWithStatusCode(_0x32bb27,null))['catch'](handleError(_0x32bb27,null));};exports['getAgents']=function(_0x416111,_0x477598,_0x32eb45){var _0x259245={};var _0x3ec092={};var _0x1f6388;var _0x142fad;return db[_0x01d4('0x41')][_0x01d4('0x9f')]({'where':{'id':_0x416111[_0x01d4('0x64')]['id']}})[_0x01d4('0x23')](handleEntityNotFound(_0x477598,null))[_0x01d4('0x23')](function(_0x3c0ec1){if(_0x3c0ec1){_0x1f6388=_0x3c0ec1;_0x3ec092[_0x01d4('0x45')]=_['keys'](db['User'][_0x01d4('0x42')]);_0x3ec092[_0x01d4('0x46')]=_[_0x01d4('0x5a')](_0x416111[_0x01d4('0x46')]);_0x3ec092[_0x01d4('0x47')]=_[_0x01d4('0x48')](_0x3ec092['model'],_0x3ec092[_0x01d4('0x46')]);_0x259245['attributes']=_['intersection'](_0x3ec092[_0x01d4('0x45')],qs['fields'](_0x416111[_0x01d4('0x46')][_0x01d4('0x4a')]));_0x259245[_0x01d4('0x49')]=_0x259245[_0x01d4('0x49')][_0x01d4('0x4b')]?_0x259245['attributes']:_0x3ec092['model'];_0x259245[_0x01d4('0x4d')]=qs[_0x01d4('0x4e')](_0x416111[_0x01d4('0x46')]['sort']);_0x259245[_0x01d4('0x4f')]=qs[_0x01d4('0x47')](_[_0x01d4('0x50')](_0x416111[_0x01d4('0x46')],_0x3ec092[_0x01d4('0x47')]));if(_0x416111[_0x01d4('0x46')][_0x01d4('0x51')]){_0x259245[_0x01d4('0x4f')]=_[_0x01d4('0x52')](_0x259245[_0x01d4('0x4f')],{'$or':_[_0x01d4('0x40')](_0x259245['attributes'],function(_0x1aebcb){var _0x5baa44={};_0x5baa44[_0x1aebcb]={'$like':'%'+_0x416111[_0x01d4('0x46')]['filter']+'%'};return _0x5baa44;})});}_0x259245=_[_0x01d4('0x52')]({},_0x259245,_0x416111[_0x01d4('0x53')]);return _0x1f6388[_0x01d4('0xb1')](_0x259245);}})[_0x01d4('0x23')](function(_0x5380f5){if(_0x5380f5){_0x142fad=_0x5380f5['length'];if(!_0x416111[_0x01d4('0x46')]['hasOwnProperty'](_0x01d4('0x4c'))){_0x259245[_0x01d4('0x35')]=qs[_0x01d4('0x35')](_0x416111[_0x01d4('0x46')][_0x01d4('0x35')]);_0x259245['offset']=qs['offset'](_0x416111[_0x01d4('0x46')][_0x01d4('0x32')]);}return _0x1f6388[_0x01d4('0xb1')](_0x259245);}})[_0x01d4('0x23')](function(_0x1c8439){if(_0x1c8439){return _0x1c8439?{'count':_0x142fad,'rows':_0x1c8439}:null;}})[_0x01d4('0x23')](respondWithResult(_0x477598,null))['catch'](handleError(_0x477598,null));};exports[_0x01d4('0x3e')]=function(_0x2267d1,_0x355ca5,_0x2086a8){var _0x4da746,_0x2482e5,_0x93c679;if(_[_0x01d4('0x7b')](_0x2267d1[_0x01d4('0x5d')][_0x01d4('0x5d')])||_0x2267d1[_0x01d4('0x5d')][_0x01d4('0x5d')]===''){throw new db[(_0x01d4('0x75'))][(_0x01d4('0x76'))](_0x01d4('0xb2'));}if(_[_0x01d4('0x7b')](_0x2267d1[_0x01d4('0x5d')]['to'])){}_0x4da746=_0x2267d1['body']['to'];return db[_0x01d4('0x41')][_0x01d4('0x9f')]({'where':{'id':_0x2267d1[_0x01d4('0x64')]['id']}})[_0x01d4('0x23')](handleEntityNotFound(_0x355ca5,null))[_0x01d4('0x23')](function(_0x2fae47){if(_0x2fae47){return db[_0x01d4('0x41')][_0x01d4('0x5b')]({'where':{'id':_0x2fae47['id']},'include':[{'model':db['CmList'],'as':_0x01d4('0x7f'),'include':[{'model':db[_0x01d4('0x74')],'as':'Contacts','where':{[_0x2fae47[_0x01d4('0x7d')]]:_0x4da746},'limit':0x1,'order':[['updatedAt',_0x01d4('0x81')]]}]}]})[_0x01d4('0x23')](handleEntityNotFound(_0x355ca5,null))[_0x01d4('0x23')](function(_0x3d40f8){if(_0x3d40f8&&_0x3d40f8[_0x01d4('0x7f')]){_0x2482e5=_0x3d40f8['get']({'plain':!![]});if(_0x2482e5[_0x01d4('0x7f')]&&_0x2482e5[_0x01d4('0x7f')][_0x01d4('0x80')]['length']){return _0x2482e5[_0x01d4('0x7f')][_0x01d4('0x80')][0x0];}return db[_0x01d4('0x74')][_0x01d4('0x5c')](_['defaults'](_0x2267d1[_0x01d4('0x5d')],{'firstName':_0x4da746,[_0x3d40f8[_0x01d4('0x7d')]]:_0x4da746,'phone':_0x4da746,'ListId':_0x2482e5[_0x01d4('0xb3')]}));}})[_0x01d4('0x23')](handleEntityNotFound(_0x355ca5,null))[_0x01d4('0x23')](function(_0x1b0620){if(_0x1b0620){_0x93c679=_0x1b0620;return db[_0x01d4('0x8d')]['find']({'where':{'ContactId':_0x93c679['id'],'closed':![],'OpenchannelAccountId':_0x2482e5['id']}})[_0x01d4('0x23')](function(_0x16b7cc){if(_0x16b7cc){return[_0x16b7cc,![]];}return db[_0x01d4('0x8d')][_0x01d4('0x5c')]({'UserId':_0x2267d1[_0x01d4('0x5e')]['id'],'ContactId':_0x93c679['id'],'OpenchannelAccountId':_0x2482e5['id'],'lastMsgDirection':'out','Messages':[_['merge'](_0x2267d1[_0x01d4('0x5d')],{'read':![],'body':_0x2267d1[_0x01d4('0x5d')][_0x01d4('0x5d')],'OpenchannelAccountId':_0x2482e5['id'],'UserId':_0x2267d1[_0x01d4('0x5e')]['id'],'ContactId':_0x93c679['id']})]},{'include':[{'model':db[_0x01d4('0x95')],'as':_0x01d4('0xb4')}]})[_0x01d4('0x23')](function(_0x1b37f0){return[_0x1b37f0,!![]];});});}})[_0x01d4('0x8e')](function(_0x1a2667,_0x2dedc3){if(_0x2dedc3){return _0x1a2667;}return db[_0x01d4('0x95')][_0x01d4('0x5c')](_[_0x01d4('0x52')](_0x2267d1[_0x01d4('0x5d')],{'read':![],'body':_0x2267d1[_0x01d4('0x5d')][_0x01d4('0x5d')],'OpenchannelAccountId':_0x2482e5['id'],'OpenchannelInteractionId':_0x1a2667['id'],'UserId':_0x2267d1[_0x01d4('0x5e')]['id'],'ContactId':_0x93c679['id']}))[_0x01d4('0x23')](function(_0x5654ce){_0x1a2667['dataValues'][_0x01d4('0xb4')]=[];_0x1a2667[_0x01d4('0xb5')][_0x01d4('0xb4')][_0x01d4('0x93')](_0x5654ce['dataValues']);return _0x1a2667;});});}})[_0x01d4('0x23')](respondWithResult(_0x355ca5,null))[_0x01d4('0x2d')](handleError(_0x355ca5,null));};
\ No newline at end of file
+var _0xa1b1=['Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','Pause','describe','addDisposition','OpenchannelAccountId','Disposition','getDispositions','findOne','nolimit','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','openchannel','CmContact','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','isNil','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','from','CmList','List','DESC','Applications','account','applications','list','priority','asc','Contacts','contact','lastName','threadId','OpenchannelInteraction','externalUrl','ContactId','spread','firstName','messageId','interaction','autoclose','push','unmanaged','*,*,*,*','OpenchannelMessage','UserId','User','unshift','waitForTheAssignedAgent','forcedOwnership','Start','startRouting','EventManager','notify','addApplications','sequelize','transaction','bulkCreate','findAndCountAll','getApplications','OpenchannelApplication','getInteractions','Owner','fullname','Tag','color','tag','addAgents','omit','emit','userOpenchannelAccount:save','removeAgents','userOpenchannelAccount:remove','getAgents','out','Messages','dataValues','zip-dir','request-promise','moment','bluebird','mustache','util','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','redis','defaults','localhost','socket.io-emitter','./openchannelAccount.socket','register','client','http','request','then','info','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','destroy','OpenchannelAccounts','UserProfileResource','sendStatus','name','send','index','mandatoryDispositionPause','map','rawAttributes','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','options','includeAll','include','OpenchannelAccount','findAll','rows','show','params','find','create','user','get'];(function(_0x3ea67e,_0x2eca3e){var _0x1ab06c=function(_0x2c29e1){while(--_0x2c29e1){_0x3ea67e['push'](_0x3ea67e['shift']());}};_0x1ab06c(++_0x2eca3e);}(_0xa1b1,0x1dd));var _0x1a1b=function(_0x58b5d7,_0x79ca8a){_0x58b5d7=_0x58b5d7-0x0;var _0x817269=_0xa1b1[_0x58b5d7];return _0x817269;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1a1b('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1a1b('0x1'));var moment=require(_0x1a1b('0x2'));var BPromise=require(_0x1a1b('0x3'));var Mustache=require(_0x1a1b('0x4'));var util=require(_0x1a1b('0x5'));var path=require('path');var sox=require(_0x1a1b('0x6'));var csv=require('to-csv');var ejs=require(_0x1a1b('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1a1b('0x8'));var squel=require(_0x1a1b('0x9'));var crypto=require(_0x1a1b('0xa'));var jsforce=require(_0x1a1b('0xb'));var deskjs=require(_0x1a1b('0xc'));var toCsv=require(_0x1a1b('0xd'));var querystring=require(_0x1a1b('0xe'));var Papa=require(_0x1a1b('0xf'));var Redis=require(_0x1a1b('0x10'));var authService=require(_0x1a1b('0x11'));var qs=require(_0x1a1b('0x12'));var as=require(_0x1a1b('0x13'));var hardwareService=require(_0x1a1b('0x14'));var logger=require('../../config/logger')(_0x1a1b('0x15'));var utils=require(_0x1a1b('0x16'));var config=require(_0x1a1b('0x17'));var licenseUtil=require(_0x1a1b('0x18'));var db=require('../../mysqldb')['db'];config[_0x1a1b('0x19')]=_[_0x1a1b('0x1a')](config[_0x1a1b('0x19')],{'host':_0x1a1b('0x1b'),'port':0x18eb});var socket=require(_0x1a1b('0x1c'))(new Redis(config[_0x1a1b('0x19')]));require(_0x1a1b('0x1d'))[_0x1a1b('0x1e')](socket);var jayson=require('jayson/promise');var client=jayson[_0x1a1b('0x1f')][_0x1a1b('0x20')]({'port':0x232c});var client9002=jayson['client'][_0x1a1b('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x4202a3,_0x36306f,_0x1ace9f,_0x4770dd){return new BPromise(function(_0x2b1161,_0x2a87b4){var _0x213a49=_0x4770dd||client;return _0x213a49[_0x1a1b('0x21')](_0x4202a3,_0x1ace9f)[_0x1a1b('0x22')](function(_0xff6ee4){logger[_0x1a1b('0x23')](_0x1a1b('0x24'),_0x36306f,_0x1a1b('0x25'));logger['debug'](_0x1a1b('0x26'),_0x36306f,_0x1a1b('0x25'),JSON[_0x1a1b('0x27')](_0xff6ee4));if(_0xff6ee4[_0x1a1b('0x28')]){if(_0xff6ee4[_0x1a1b('0x28')][_0x1a1b('0x29')]===0x1f4){logger[_0x1a1b('0x28')](_0x1a1b('0x24'),_0x36306f,_0xff6ee4[_0x1a1b('0x28')]['message']);return _0x2a87b4(_0xff6ee4[_0x1a1b('0x28')][_0x1a1b('0x2a')]);}logger['error'](_0x1a1b('0x24'),_0x36306f,_0xff6ee4[_0x1a1b('0x28')][_0x1a1b('0x2a')]);return _0x2b1161(_0xff6ee4['error']['message']);}else{logger['info'](_0x1a1b('0x24'),_0x36306f,_0x1a1b('0x25'));_0x2b1161(_0xff6ee4[_0x1a1b('0x2b')][_0x1a1b('0x2a')]);}})[_0x1a1b('0x2c')](function(_0x1cbf2c){logger[_0x1a1b('0x28')]('OpenchannelAccount,\x20%s,\x20%s',_0x36306f,_0x1cbf2c);_0x2a87b4(_0x1cbf2c);});});}function respondWithStatusCode(_0x35246c,_0x36a60f){_0x36a60f=_0x36a60f||0xcc;return function(_0x42bb8d){if(_0x42bb8d){return _0x35246c['sendStatus'](_0x36a60f);}return _0x35246c[_0x1a1b('0x2d')](_0x36a60f)[_0x1a1b('0x2e')]();};}function respondWithResult(_0x326182,_0x20a62c){_0x20a62c=_0x20a62c||0xc8;return function(_0x357c88){if(_0x357c88){return _0x326182[_0x1a1b('0x2d')](_0x20a62c)[_0x1a1b('0x2f')](_0x357c88);}};}function respondWithFilteredResult(_0x10743b,_0x4d5c2a){return function(_0x4ff2ff){if(_0x4ff2ff){var _0x340d8b=typeof _0x4d5c2a[_0x1a1b('0x30')]==='undefined'&&typeof _0x4d5c2a[_0x1a1b('0x31')]===_0x1a1b('0x32');var _0x59d7a9=_0x4ff2ff[_0x1a1b('0x33')];var _0x4b9fa2=_0x340d8b?0x0:_0x4d5c2a[_0x1a1b('0x30')];var _0x3c054d=_0x340d8b?_0x4ff2ff[_0x1a1b('0x33')]:_0x4d5c2a[_0x1a1b('0x30')]+_0x4d5c2a[_0x1a1b('0x31')];var _0x3609b2;if(_0x3c054d>=_0x59d7a9){_0x3c054d=_0x59d7a9;_0x3609b2=0xc8;}else{_0x3609b2=0xce;}_0x10743b[_0x1a1b('0x2d')](_0x3609b2);return _0x10743b[_0x1a1b('0x34')](_0x1a1b('0x35'),_0x4b9fa2+'-'+_0x3c054d+'/'+_0x59d7a9)[_0x1a1b('0x2f')](_0x4ff2ff);}return null;};}function patchUpdates(_0x18818){return function(_0x2e36f1){try{jsonpatch[_0x1a1b('0x36')](_0x2e36f1,_0x18818,!![]);}catch(_0x35553a){return BPromise[_0x1a1b('0x37')](_0x35553a);}return _0x2e36f1[_0x1a1b('0x38')]();};}function saveUpdates(_0x3077eb,_0x73d408){return function(_0x206e0a){if(_0x206e0a){return _0x206e0a['update'](_0x3077eb)[_0x1a1b('0x22')](function(_0x45de54){return _0x45de54;});}return null;};}function removeEntity(_0x35b807,_0x5d81ba){return function(_0x57d63c){if(_0x57d63c){return _0x57d63c[_0x1a1b('0x39')]()[_0x1a1b('0x22')](function(){var _0x70dd3b=_0x57d63c['get']({'plain':!![]});var _0xd3ee7c=_0x1a1b('0x3a');return db[_0x1a1b('0x3b')]['destroy']({'where':{'type':_0xd3ee7c,'resourceId':_0x70dd3b['id']}})[_0x1a1b('0x22')](function(){return _0x57d63c;});})[_0x1a1b('0x22')](function(){_0x35b807[_0x1a1b('0x2d')](0xcc)[_0x1a1b('0x2e')]();});}};}function handleEntityNotFound(_0x342fe8,_0x20ec35){return function(_0x560128){if(!_0x560128){_0x342fe8[_0x1a1b('0x3c')](0x194);}return _0x560128;};}function handleError(_0x4dae31,_0x3e9bc9){_0x3e9bc9=_0x3e9bc9||0x1f4;return function(_0x1239dc){logger[_0x1a1b('0x28')](_0x1239dc['stack']);if(_0x1239dc[_0x1a1b('0x3d')]){delete _0x1239dc[_0x1a1b('0x3d')];}_0x4dae31[_0x1a1b('0x2d')](_0x3e9bc9)[_0x1a1b('0x3e')](_0x1239dc);};}exports[_0x1a1b('0x3f')]=function(_0x14d68b,_0x4cdead){var _0x126e72={'include':[{'model':db['Pause'],'as':_0x1a1b('0x40')}]},_0x4be98f={},_0x5df127={'count':0x0,'rows':[]};var _0x981135=_[_0x1a1b('0x41')](db['OpenchannelAccount'][_0x1a1b('0x42')],function(_0x38fc60){return{'name':_0x38fc60['fieldName'],'type':_0x38fc60[_0x1a1b('0x43')][_0x1a1b('0x44')]};});_0x4be98f[_0x1a1b('0x45')]=_[_0x1a1b('0x41')](_0x981135,_0x1a1b('0x3d'));_0x4be98f[_0x1a1b('0x46')]=_[_0x1a1b('0x47')](_0x14d68b[_0x1a1b('0x46')]);_0x4be98f[_0x1a1b('0x48')]=_['intersection'](_0x4be98f['model'],_0x4be98f[_0x1a1b('0x46')]);_0x126e72[_0x1a1b('0x49')]=_[_0x1a1b('0x4a')](_0x4be98f[_0x1a1b('0x45')],qs[_0x1a1b('0x4b')](_0x14d68b[_0x1a1b('0x46')][_0x1a1b('0x4b')]));_0x126e72['attributes']=_0x126e72[_0x1a1b('0x49')][_0x1a1b('0x4c')]?_0x126e72[_0x1a1b('0x49')]:_0x4be98f[_0x1a1b('0x45')];if(!_0x14d68b[_0x1a1b('0x46')][_0x1a1b('0x4d')]('nolimit')){_0x126e72[_0x1a1b('0x31')]=qs[_0x1a1b('0x31')](_0x14d68b[_0x1a1b('0x46')][_0x1a1b('0x31')]);_0x126e72['offset']=qs[_0x1a1b('0x30')](_0x14d68b[_0x1a1b('0x46')][_0x1a1b('0x30')]);}_0x126e72[_0x1a1b('0x4e')]=qs['sort'](_0x14d68b[_0x1a1b('0x46')][_0x1a1b('0x4f')]);_0x126e72['where']=qs[_0x1a1b('0x48')](_[_0x1a1b('0x50')](_0x14d68b[_0x1a1b('0x46')],_0x4be98f[_0x1a1b('0x48')]),_0x981135);if(_0x14d68b['query'][_0x1a1b('0x51')]){_0x126e72[_0x1a1b('0x52')]=_[_0x1a1b('0x53')](_0x126e72[_0x1a1b('0x52')],{'$or':_[_0x1a1b('0x41')](_0x981135,function(_0x15a586){if(_0x15a586['type']!=='VIRTUAL'){var _0x2cf847={};_0x2cf847[_0x15a586[_0x1a1b('0x3d')]]={'$like':'%'+_0x14d68b[_0x1a1b('0x46')][_0x1a1b('0x51')]+'%'};return _0x2cf847;}})});}_0x126e72=_[_0x1a1b('0x53')]({},_0x126e72,_0x14d68b[_0x1a1b('0x54')]);var _0x17858b={'where':_0x126e72['where']};return db['OpenchannelAccount'][_0x1a1b('0x33')](_0x17858b)['then'](function(_0x27b8d1){_0x5df127[_0x1a1b('0x33')]=_0x27b8d1;if(_0x14d68b[_0x1a1b('0x46')][_0x1a1b('0x55')]){_0x126e72[_0x1a1b('0x56')]=[{'all':!![]}];}return db[_0x1a1b('0x57')][_0x1a1b('0x58')](_0x126e72);})[_0x1a1b('0x22')](function(_0x3034aa){_0x5df127[_0x1a1b('0x59')]=_0x3034aa;return _0x5df127;})[_0x1a1b('0x22')](respondWithFilteredResult(_0x4cdead,_0x126e72))[_0x1a1b('0x2c')](handleError(_0x4cdead,null));};exports[_0x1a1b('0x5a')]=function(_0x1f6249,_0x317a13){var _0x3f71f8={'raw':![],'where':{'id':_0x1f6249[_0x1a1b('0x5b')]['id']},'include':[{'model':db['Pause'],'as':_0x1a1b('0x40')}]},_0x2accf2={};_0x2accf2[_0x1a1b('0x45')]=_[_0x1a1b('0x47')](db['OpenchannelAccount'][_0x1a1b('0x42')]);_0x2accf2['query']=_[_0x1a1b('0x47')](_0x1f6249[_0x1a1b('0x46')]);_0x2accf2[_0x1a1b('0x48')]=_[_0x1a1b('0x4a')](_0x2accf2[_0x1a1b('0x45')],_0x2accf2[_0x1a1b('0x46')]);_0x3f71f8['attributes']=_[_0x1a1b('0x4a')](_0x2accf2[_0x1a1b('0x45')],qs['fields'](_0x1f6249['query'][_0x1a1b('0x4b')]));_0x3f71f8[_0x1a1b('0x49')]=_0x3f71f8[_0x1a1b('0x49')]['length']?_0x3f71f8[_0x1a1b('0x49')]:_0x2accf2['model'];if(_0x1f6249[_0x1a1b('0x46')][_0x1a1b('0x55')]){_0x3f71f8[_0x1a1b('0x56')]=[{'all':!![]}];}_0x3f71f8=_[_0x1a1b('0x53')]({},_0x3f71f8,_0x1f6249[_0x1a1b('0x54')]);return db['OpenchannelAccount'][_0x1a1b('0x5c')](_0x3f71f8)['then'](handleEntityNotFound(_0x317a13,null))[_0x1a1b('0x22')](respondWithResult(_0x317a13,null))[_0x1a1b('0x2c')](handleError(_0x317a13,null));};exports[_0x1a1b('0x5d')]=function(_0x5acecf,_0x35a185){return db[_0x1a1b('0x57')][_0x1a1b('0x5d')](_0x5acecf['body'],{})['then'](function(_0x36996b){var _0x4d943a=_0x5acecf[_0x1a1b('0x5e')][_0x1a1b('0x5f')]({'plain':!![]});if(!_0x4d943a)throw new Error(_0x1a1b('0x60'));if(_0x4d943a[_0x1a1b('0x61')]==='user'){var _0x48d7bb=_0x36996b[_0x1a1b('0x5f')]({'plain':!![]});var _0x14313f=_0x1a1b('0x3a');return db[_0x1a1b('0x62')][_0x1a1b('0x5c')]({'where':{'name':_0x14313f,'userProfileId':_0x4d943a[_0x1a1b('0x63')]},'raw':!![]})['then'](function(_0x1cc8e8){if(_0x1cc8e8&&_0x1cc8e8['autoAssociation']===0x0){return db['UserProfileResource'][_0x1a1b('0x5d')]({'name':_0x48d7bb[_0x1a1b('0x3d')],'resourceId':_0x48d7bb['id'],'type':_0x1cc8e8[_0x1a1b('0x3d')],'sectionId':_0x1cc8e8['id']},{})[_0x1a1b('0x22')](function(){return _0x36996b;});}else{return _0x36996b;}})[_0x1a1b('0x2c')](function(_0x578a8b){logger[_0x1a1b('0x28')](_0x1a1b('0x64'),_0x578a8b);throw _0x578a8b;});}return _0x36996b;})[_0x1a1b('0x22')](respondWithResult(_0x35a185,0xc9))[_0x1a1b('0x2c')](handleError(_0x35a185,null));};exports[_0x1a1b('0x65')]=function(_0x38154a,_0x2ac2d9){if(_0x38154a[_0x1a1b('0x66')]['id']){delete _0x38154a[_0x1a1b('0x66')]['id'];}return db[_0x1a1b('0x57')][_0x1a1b('0x5c')]({'where':{'id':_0x38154a[_0x1a1b('0x5b')]['id']},'include':[{'model':db[_0x1a1b('0x67')],'as':_0x1a1b('0x40')}]})['then'](handleEntityNotFound(_0x2ac2d9,null))[_0x1a1b('0x22')](saveUpdates(_0x38154a['body'],null))[_0x1a1b('0x22')](respondWithResult(_0x2ac2d9,null))[_0x1a1b('0x2c')](handleError(_0x2ac2d9,null));};exports['destroy']=function(_0x42e226,_0x146810){return db[_0x1a1b('0x57')]['find']({'where':{'id':_0x42e226[_0x1a1b('0x5b')]['id']}})[_0x1a1b('0x22')](handleEntityNotFound(_0x146810,null))[_0x1a1b('0x22')](removeEntity(_0x146810,null))[_0x1a1b('0x2c')](handleError(_0x146810,null));};exports[_0x1a1b('0x68')]=function(_0x464603,_0xba8027){return db[_0x1a1b('0x57')]['describe']()['then'](respondWithResult(_0xba8027,null))[_0x1a1b('0x2c')](handleError(_0xba8027,null));};exports[_0x1a1b('0x69')]=function(_0x5e3c54,_0x4054da,_0x3809ba){if(_0x5e3c54['body']['id']){delete _0x5e3c54[_0x1a1b('0x66')]['id'];}return db[_0x1a1b('0x57')][_0x1a1b('0x5c')]({'where':{'id':_0x5e3c54[_0x1a1b('0x5b')]['id']}})[_0x1a1b('0x22')](handleEntityNotFound(_0x4054da,null))[_0x1a1b('0x22')](function(_0x30e395){if(_0x30e395){_0x5e3c54[_0x1a1b('0x66')][_0x1a1b('0x6a')]=_0x30e395['id'];return db[_0x1a1b('0x6b')][_0x1a1b('0x5d')](_0x5e3c54[_0x1a1b('0x66')]);}})['then'](respondWithResult(_0x4054da,null))['catch'](handleError(_0x4054da,null));};exports[_0x1a1b('0x6c')]=function(_0x3cf7a6,_0x289345,_0x4e2de6){var _0x347a12={'raw':![],'where':{}};var _0x559b40={};var _0x172533={'count':0x0,'rows':[]};return db[_0x1a1b('0x57')][_0x1a1b('0x6d')]({'where':{'id':_0x3cf7a6[_0x1a1b('0x5b')]['id']}})['then'](handleEntityNotFound(_0x289345,null))[_0x1a1b('0x22')](function(_0x29480b){if(_0x29480b){_0x559b40[_0x1a1b('0x45')]=_['keys'](db[_0x1a1b('0x6b')][_0x1a1b('0x42')]);_0x559b40[_0x1a1b('0x46')]=_[_0x1a1b('0x47')](_0x3cf7a6[_0x1a1b('0x46')]);_0x559b40[_0x1a1b('0x48')]=_[_0x1a1b('0x4a')](_0x559b40[_0x1a1b('0x45')],_0x559b40[_0x1a1b('0x46')]);_0x347a12[_0x1a1b('0x49')]=_[_0x1a1b('0x4a')](_0x559b40['model'],qs[_0x1a1b('0x4b')](_0x3cf7a6[_0x1a1b('0x46')][_0x1a1b('0x4b')]));_0x347a12[_0x1a1b('0x49')]=_0x347a12[_0x1a1b('0x49')]['length']?_0x347a12[_0x1a1b('0x49')]:_0x559b40['model'];if(!_0x3cf7a6[_0x1a1b('0x46')]['hasOwnProperty'](_0x1a1b('0x6e'))){_0x347a12[_0x1a1b('0x31')]=qs[_0x1a1b('0x31')](_0x3cf7a6[_0x1a1b('0x46')]['limit']);_0x347a12[_0x1a1b('0x30')]=qs['offset'](_0x3cf7a6[_0x1a1b('0x46')]['offset']);}_0x347a12['order']=qs[_0x1a1b('0x4f')](_0x3cf7a6[_0x1a1b('0x46')]['sort']);_0x347a12[_0x1a1b('0x52')]=qs[_0x1a1b('0x48')](_[_0x1a1b('0x50')](_0x3cf7a6[_0x1a1b('0x46')],_0x559b40[_0x1a1b('0x48')]));_0x347a12[_0x1a1b('0x52')][_0x1a1b('0x6a')]=_0x29480b['id'];if(_0x3cf7a6[_0x1a1b('0x46')][_0x1a1b('0x51')]){_0x347a12[_0x1a1b('0x52')]=_[_0x1a1b('0x53')](_0x347a12[_0x1a1b('0x52')],{'$or':_['map'](_0x347a12[_0x1a1b('0x49')],function(_0x327506){var _0x1d2c09={};_0x1d2c09[_0x327506]={'$like':'%'+_0x3cf7a6['query'][_0x1a1b('0x51')]+'%'};return _0x1d2c09;})});}_0x347a12=_[_0x1a1b('0x53')]({},_0x347a12,_0x3cf7a6[_0x1a1b('0x54')]);return db[_0x1a1b('0x6b')][_0x1a1b('0x33')]({'where':_0x347a12[_0x1a1b('0x52')]})[_0x1a1b('0x22')](function(_0x5c1b08){_0x172533[_0x1a1b('0x33')]=_0x5c1b08;if(_0x3cf7a6['query'][_0x1a1b('0x55')]){_0x347a12[_0x1a1b('0x56')]=[{'all':!![]}];}return db[_0x1a1b('0x6b')][_0x1a1b('0x58')](_0x347a12);})[_0x1a1b('0x22')](function(_0x5ae3c6){_0x172533[_0x1a1b('0x59')]=_0x5ae3c6;return _0x172533;});}})[_0x1a1b('0x22')](respondWithFilteredResult(_0x289345,_0x347a12))[_0x1a1b('0x2c')](handleError(_0x289345,null));};exports[_0x1a1b('0x6f')]=function(_0x327509,_0x53f370,_0x625214){return db['OpenchannelAccount'][_0x1a1b('0x5c')]({'where':{'id':_0x327509[_0x1a1b('0x5b')]['id']}})[_0x1a1b('0x22')](handleEntityNotFound(_0x53f370,null))[_0x1a1b('0x22')](function(_0xec0674){if(_0xec0674){return _0xec0674[_0x1a1b('0x6f')](_0x327509[_0x1a1b('0x46')][_0x1a1b('0x70')]);}})[_0x1a1b('0x22')](respondWithStatusCode(_0x53f370,null))[_0x1a1b('0x2c')](handleError(_0x53f370,null));};exports[_0x1a1b('0x71')]=function(_0x595852,_0x1b276d,_0xec3ed9){if(_0x595852[_0x1a1b('0x66')]['id']){delete _0x595852[_0x1a1b('0x66')]['id'];}return db[_0x1a1b('0x57')]['find']({'where':{'id':_0x595852[_0x1a1b('0x5b')]['id']}})[_0x1a1b('0x22')](handleEntityNotFound(_0x1b276d,null))[_0x1a1b('0x22')](function(_0x2003ab){if(_0x2003ab){_0x595852[_0x1a1b('0x66')][_0x1a1b('0x6a')]=_0x2003ab['id'];return db[_0x1a1b('0x72')][_0x1a1b('0x5d')](_0x595852[_0x1a1b('0x66')]);}})[_0x1a1b('0x22')](respondWithResult(_0x1b276d,null))[_0x1a1b('0x2c')](handleError(_0x1b276d,null));};exports[_0x1a1b('0x73')]=function(_0x6e2a4c,_0x875bc0,_0x5d89d6){var _0x334c0e={'raw':![],'where':{}};var _0x5171c8={};var _0x329743={'count':0x0,'rows':[]};return db[_0x1a1b('0x57')][_0x1a1b('0x6d')]({'where':{'id':_0x6e2a4c['params']['id']}})['then'](handleEntityNotFound(_0x875bc0,null))['then'](function(_0x28ba02){if(_0x28ba02){_0x5171c8[_0x1a1b('0x45')]=_[_0x1a1b('0x47')](db[_0x1a1b('0x72')]['rawAttributes']);_0x5171c8['query']=_[_0x1a1b('0x47')](_0x6e2a4c[_0x1a1b('0x46')]);_0x5171c8[_0x1a1b('0x48')]=_[_0x1a1b('0x4a')](_0x5171c8[_0x1a1b('0x45')],_0x5171c8[_0x1a1b('0x46')]);_0x334c0e[_0x1a1b('0x49')]=_[_0x1a1b('0x4a')](_0x5171c8['model'],qs['fields'](_0x6e2a4c[_0x1a1b('0x46')][_0x1a1b('0x4b')]));_0x334c0e[_0x1a1b('0x49')]=_0x334c0e[_0x1a1b('0x49')]['length']?_0x334c0e[_0x1a1b('0x49')]:_0x5171c8[_0x1a1b('0x45')];if(!_0x6e2a4c[_0x1a1b('0x46')]['hasOwnProperty'](_0x1a1b('0x6e'))){_0x334c0e[_0x1a1b('0x31')]=qs['limit'](_0x6e2a4c[_0x1a1b('0x46')][_0x1a1b('0x31')]);_0x334c0e['offset']=qs[_0x1a1b('0x30')](_0x6e2a4c[_0x1a1b('0x46')]['offset']);}_0x334c0e[_0x1a1b('0x4e')]=qs[_0x1a1b('0x4f')](_0x6e2a4c[_0x1a1b('0x46')][_0x1a1b('0x4f')]);_0x334c0e[_0x1a1b('0x52')]=qs[_0x1a1b('0x48')](_[_0x1a1b('0x50')](_0x6e2a4c['query'],_0x5171c8[_0x1a1b('0x48')]));_0x334c0e[_0x1a1b('0x52')][_0x1a1b('0x6a')]=_0x28ba02['id'];if(_0x6e2a4c[_0x1a1b('0x46')][_0x1a1b('0x51')]){_0x334c0e[_0x1a1b('0x52')]=_[_0x1a1b('0x53')](_0x334c0e[_0x1a1b('0x52')],{'$or':_[_0x1a1b('0x41')](_0x334c0e['attributes'],function(_0x2d9a46){var _0x28df1d={};_0x28df1d[_0x2d9a46]={'$like':'%'+_0x6e2a4c[_0x1a1b('0x46')][_0x1a1b('0x51')]+'%'};return _0x28df1d;})});}_0x334c0e=_[_0x1a1b('0x53')]({},_0x334c0e,_0x6e2a4c[_0x1a1b('0x54')]);return db[_0x1a1b('0x72')]['count']({'where':_0x334c0e[_0x1a1b('0x52')]})['then'](function(_0x5c305f){_0x329743[_0x1a1b('0x33')]=_0x5c305f;if(_0x6e2a4c['query'][_0x1a1b('0x55')]){_0x334c0e['include']=[{'all':!![]}];}return db[_0x1a1b('0x72')]['findAll'](_0x334c0e);})[_0x1a1b('0x22')](function(_0x3fd0d9){_0x329743[_0x1a1b('0x59')]=_0x3fd0d9;return _0x329743;});}})[_0x1a1b('0x22')](respondWithFilteredResult(_0x875bc0,_0x334c0e))[_0x1a1b('0x2c')](handleError(_0x875bc0,null));};exports['removeAnswers']=function(_0x580272,_0x492209,_0x51f75d){return db[_0x1a1b('0x57')][_0x1a1b('0x5c')]({'where':{'id':_0x580272[_0x1a1b('0x5b')]['id']}})[_0x1a1b('0x22')](handleEntityNotFound(_0x492209,null))[_0x1a1b('0x22')](function(_0x404cff){if(_0x404cff){return _0x404cff[_0x1a1b('0x74')](_0x580272['query']['ids']);}})[_0x1a1b('0x22')](respondWithStatusCode(_0x492209,null))['catch'](handleError(_0x492209,null));};exports['notify']=function(_0x5790a7,_0x2f78b3,_0x36954f){var _0x1ac1fd={'body':_0x5790a7['body'],'channel':_0x1a1b('0x75')};var _0x467be2=[];var _0xcee7ae=[];var _0x167382={};var _0x103251=![];return db[_0x1a1b('0x76')]['describe']()[_0x1a1b('0x22')](function(_0x415e38){if(!_0x415e38){throw new db['Sequelize'][(_0x1a1b('0x77'))](_0x1a1b('0x78'));}_0x467be2=_[_0x1a1b('0x79')](_[_0x1a1b('0x47')](_0x415e38),[_0x1a1b('0x7a'),_0x1a1b('0x7b')]);_0xcee7ae=_[_0x1a1b('0x79')](_['keys'](_0x415e38),[_0x1a1b('0x7a'),_0x1a1b('0x7b'),_0x1a1b('0x7c'),_0x1a1b('0x7d')]);if(_0x5790a7[_0x1a1b('0x66')]['id']){delete _0x5790a7[_0x1a1b('0x66')]['id'];}if(_[_0x1a1b('0x7e')](_0x5790a7['body']['from'])){throw new db[(_0x1a1b('0x7f'))][(_0x1a1b('0x77'))](_0x1a1b('0x80'));}if(_[_0x1a1b('0x7e')](_0x5790a7[_0x1a1b('0x66')][_0x1a1b('0x66')])||_0x5790a7[_0x1a1b('0x66')]['body']===''){throw new db[(_0x1a1b('0x7f'))][(_0x1a1b('0x77'))](_0x1a1b('0x81'));}if(_[_0x1a1b('0x7e')](_0x5790a7[_0x1a1b('0x66')][_0x1a1b('0x82')])){throw new db[(_0x1a1b('0x7f'))]['ValidationError'](_0x1a1b('0x83')+_0xcee7ae);}if(!_['includes'](_0xcee7ae,_0x5790a7[_0x1a1b('0x66')][_0x1a1b('0x82')])){throw new db[(_0x1a1b('0x7f'))]['ValidationError'](_0x1a1b('0x84')+_0xcee7ae);}_0x167382[_0x5790a7[_0x1a1b('0x66')][_0x1a1b('0x82')]]=_0x5790a7[_0x1a1b('0x66')][_0x1a1b('0x85')];})[_0x1a1b('0x22')](function(){return db[_0x1a1b('0x57')][_0x1a1b('0x5c')]({'where':{'id':_0x5790a7['params']['id']},'include':[{'model':db[_0x1a1b('0x86')],'as':_0x1a1b('0x87'),'include':[{'model':db[_0x1a1b('0x76')],'as':'Contacts','where':_0x167382,'limit':0x1,'order':[[_0x1a1b('0x7b'),_0x1a1b('0x88')]]}]},{'model':db['OpenchannelApplication'],'as':_0x1a1b('0x89')}]});})[_0x1a1b('0x22')](handleEntityNotFound(_0x2f78b3,null))[_0x1a1b('0x22')](function(_0x1aab02){if(_0x1aab02&&_0x1aab02[_0x1a1b('0x87')]){_0x1ac1fd[_0x1a1b('0x8a')]=_0x1aab02;_0x1ac1fd[_0x1a1b('0x8b')]=_0x1aab02[_0x1a1b('0x89')];_0x1ac1fd[_0x1a1b('0x8c')]=_0x1aab02[_0x1a1b('0x87')];_0x1ac1fd[_0x1a1b('0x8b')]=_['orderBy'](_0x1ac1fd[_0x1a1b('0x8b')],[_0x1a1b('0x8d')],[_0x1a1b('0x8e')]);if(_0x1ac1fd[_0x1a1b('0x8a')][_0x1a1b('0x89')]){delete _0x1ac1fd[_0x1a1b('0x8a')][_0x1a1b('0x89')];}if(_0x1ac1fd[_0x1a1b('0x8a')]['List']&&_0x1ac1fd[_0x1a1b('0x8a')]['List'][_0x1a1b('0x8f')][_0x1a1b('0x4c')]){return _0x1ac1fd[_0x1a1b('0x8a')][_0x1a1b('0x87')]['Contacts'][0x0];}var _0x37b017=_[_0x1a1b('0x1a')](_0x5790a7[_0x1a1b('0x66')],{'firstName':_0x5790a7[_0x1a1b('0x66')][_0x1a1b('0x85')],'ListId':_0x1aab02['ListId']});_0x37b017[_0x5790a7[_0x1a1b('0x66')]['mapKey']]=_0x5790a7['body'][_0x1a1b('0x85')];return db[_0x1a1b('0x76')][_0x1a1b('0x5d')](_0x37b017,{'fields':_0x467be2,'raw':!![]});}})[_0x1a1b('0x22')](handleEntityNotFound(_0x2f78b3,null))['then'](function(_0x44c919){_0x1ac1fd[_0x1a1b('0x90')]=_0x44c919;if(_0x44c919){var _0x53e2da={'ContactId':_0x44c919['id'],'OpenchannelAccountId':_0x5790a7['params']['id'],'from':(_0x44c919['firstName']||'')+'\x20'+(_0x44c919[_0x1a1b('0x91')]||'')};var _0x4e7ab5={'OpenchannelAccountId':_0x5790a7[_0x1a1b('0x5b')]['id'],'closed':![]};if(_0x5790a7['body'][_0x1a1b('0x92')]){_0x4e7ab5[_0x1a1b('0x92')]=_0x5790a7[_0x1a1b('0x66')]['threadId'];return db[_0x1a1b('0x93')][_0x1a1b('0x5c')]({'where':_0x4e7ab5})[_0x1a1b('0x22')](function(_0x1484a0){if(_0x1484a0){return[_0x1484a0,![]];}_0x53e2da[_0x1a1b('0x92')]=_0x5790a7[_0x1a1b('0x66')][_0x1a1b('0x92')];_0x53e2da[_0x1a1b('0x94')]=_0x5790a7[_0x1a1b('0x66')][_0x1a1b('0x94')];return db[_0x1a1b('0x93')]['create'](_0x53e2da)[_0x1a1b('0x22')](function(_0x5e32cf){return[_0x5e32cf,!![]];});});}else{_0x4e7ab5[_0x1a1b('0x92')]=null;}_0x4e7ab5[_0x1a1b('0x95')]=_0x44c919['id'];return db[_0x1a1b('0x93')][_0x1a1b('0x5c')]({'where':_0x4e7ab5})[_0x1a1b('0x22')](function(_0x5d6fa7){if(_0x5d6fa7){return[_0x5d6fa7,![]];}return db[_0x1a1b('0x93')][_0x1a1b('0x5d')](_0x53e2da)[_0x1a1b('0x22')](function(_0x5ad708){return[_0x5ad708,!![]];});});}})[_0x1a1b('0x96')](function(_0x5ef33c,_0x1620a9){if(_0x5ef33c){_0x103251=_0x1620a9;if(!_0x1620a9){var _0x2b0a42={'from':(_0x1ac1fd['contact'][_0x1a1b('0x97')]||'')+'\x20'+(_0x1ac1fd[_0x1a1b('0x90')][_0x1a1b('0x91')]||'')};if(_0x5790a7[_0x1a1b('0x66')]['threadId']&&_0x5790a7[_0x1a1b('0x66')]['messageId']&&_0x5790a7[_0x1a1b('0x66')][_0x1a1b('0x92')]!=_0x5790a7[_0x1a1b('0x66')][_0x1a1b('0x98')]){_0x2b0a42['threadId']=_0x5790a7[_0x1a1b('0x66')][_0x1a1b('0x98')];}return _0x5ef33c[_0x1a1b('0x65')](_0x2b0a42);}else{return _0x5ef33c;}}})[_0x1a1b('0x22')](function(_0x14e07c){_0x1ac1fd['interaction']=_0x14e07c[_0x1a1b('0x5f')]({'plain':!![]});_0x1ac1fd[_0x1a1b('0x99')]['created']=_0x103251;if(_0x1ac1fd['interaction']['created']){if(_0x1ac1fd[_0x1a1b('0x8a')][_0x1a1b('0x9a')]){_0x1ac1fd[_0x1a1b('0x8b')][_0x1a1b('0x9b')]({'id':0x0,'priority':_0x1ac1fd[_0x1a1b('0x8b')]['length']+0x1,'app':'close','appdata':_0x1a1b('0x9c'),'interval':_0x1a1b('0x9d')});}}return db[_0x1a1b('0x9e')]['create']({'body':_0x5790a7[_0x1a1b('0x66')]['body'],'OpenchannelAccountId':_0x5790a7[_0x1a1b('0x5b')]['id'],'OpenchannelInteractionId':_0x14e07c['id'],'direction':'in','ContactId':_0x1ac1fd[_0x1a1b('0x90')]['id'],'AttachmentId':_0x5790a7['body']['AttachmentId']});})[_0x1a1b('0x22')](function(_0x383691){_0x1ac1fd[_0x1a1b('0x2a')]=_0x383691;if(_0x1ac1fd[_0x1a1b('0x99')][_0x1a1b('0x9f')]){return db[_0x1a1b('0xa0')][_0x1a1b('0x5c')]({'attributes':['id',_0x1a1b('0x3d')],'where':{'id':_0x1ac1fd['interaction'][_0x1a1b('0x9f')]}})[_0x1a1b('0x22')](function(_0x59c4d3){if(_0x59c4d3){_0x1ac1fd[_0x1a1b('0x8b')][_0x1a1b('0xa1')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x59c4d3[_0x1a1b('0x3d')]+','+(_0x1ac1fd[_0x1a1b('0x8a')][_0x1a1b('0xa2')]||0xa),'interval':_0x1a1b('0x9d')});_0x1ac1fd[_0x1a1b('0xa3')]=![];}return respondWithRpcPromise(_0x1a1b('0xa4'),_0x1a1b('0xa5'),_0x1ac1fd);});}return respondWithRpcPromise('Start','startRouting',_0x1ac1fd);})['then'](function(_0x2f7e06){respondWithRpcPromise(_0x1a1b('0xa6'),_0x1a1b('0xa6'),{'event':_0x1a1b('0xa7'),'message':_0x2f7e06},client9002);return _0x2f7e06;})[_0x1a1b('0x22')](respondWithResult(_0x2f78b3,null))[_0x1a1b('0x2c')](handleError(_0x2f78b3,null));};exports[_0x1a1b('0xa8')]=function(_0x1f5b96,_0x56e2f9,_0x5436ca){return db[_0x1a1b('0x57')][_0x1a1b('0x6d')]({'where':{'id':_0x1f5b96[_0x1a1b('0x5b')]['id']}})[_0x1a1b('0x22')](handleEntityNotFound(_0x56e2f9,null))['then'](function(_0x536268){if(_0x536268){return db[_0x1a1b('0xa9')][_0x1a1b('0xaa')](function(_0x2ab13){return db['OpenchannelApplication'][_0x1a1b('0x39')]({'where':{'OpenchannelAccountId':_0x1f5b96['params']['id']},'transaction':_0x2ab13})[_0x1a1b('0x22')](function(_0x8dd435){var _0x48324e=_[_0x1a1b('0x41')](_0x1f5b96[_0x1a1b('0x66')],function(_0x3932b5){_0x3932b5['OpenchannelAccountId']=_0x1f5b96[_0x1a1b('0x5b')]['id'];return _0x3932b5;});return db['OpenchannelApplication'][_0x1a1b('0xab')](_0x48324e,{'transaction':_0x2ab13});});})[_0x1a1b('0x22')](function(){return db['OpenchannelApplication'][_0x1a1b('0xac')]({'where':{'OpenchannelAccountId':_0x1f5b96[_0x1a1b('0x5b')]['id']},'order':_0x1a1b('0x8d')});});}})[_0x1a1b('0x22')](respondWithResult(_0x56e2f9,null))['catch'](handleError(_0x56e2f9,null));};exports[_0x1a1b('0xad')]=function(_0x21d4df,_0x18b587,_0x22559f){var _0x3421e3={};var _0x38d416={};var _0xbc988a;var _0x49456f;return db[_0x1a1b('0x57')][_0x1a1b('0x6d')]({'where':{'id':_0x21d4df['params']['id']}})[_0x1a1b('0x22')](handleEntityNotFound(_0x18b587,null))[_0x1a1b('0x22')](function(_0x488f15){if(_0x488f15){_0xbc988a=_0x488f15;_0x38d416[_0x1a1b('0x45')]=_[_0x1a1b('0x47')](db[_0x1a1b('0xae')][_0x1a1b('0x42')]);_0x38d416[_0x1a1b('0x46')]=_[_0x1a1b('0x47')](_0x21d4df[_0x1a1b('0x46')]);_0x38d416[_0x1a1b('0x48')]=_[_0x1a1b('0x4a')](_0x38d416[_0x1a1b('0x45')],_0x38d416['query']);_0x3421e3[_0x1a1b('0x49')]=_[_0x1a1b('0x4a')](_0x38d416[_0x1a1b('0x45')],qs['fields'](_0x21d4df['query'][_0x1a1b('0x4b')]));_0x3421e3[_0x1a1b('0x49')]=_0x3421e3[_0x1a1b('0x49')][_0x1a1b('0x4c')]?_0x3421e3[_0x1a1b('0x49')]:_0x38d416[_0x1a1b('0x45')];_0x3421e3[_0x1a1b('0x4e')]=qs['sort'](_0x21d4df[_0x1a1b('0x46')][_0x1a1b('0x4f')]);_0x3421e3['where']=qs[_0x1a1b('0x48')](_[_0x1a1b('0x50')](_0x21d4df[_0x1a1b('0x46')],_0x38d416[_0x1a1b('0x48')]));if(_0x21d4df[_0x1a1b('0x46')]['filter']){_0x3421e3[_0x1a1b('0x52')]=_[_0x1a1b('0x53')](_0x3421e3[_0x1a1b('0x52')],{'$or':_['map'](_0x3421e3[_0x1a1b('0x49')],function(_0xcfd713){var _0x379fa2={};_0x379fa2[_0xcfd713]={'$like':'%'+_0x21d4df[_0x1a1b('0x46')][_0x1a1b('0x51')]+'%'};return _0x379fa2;})});}_0x3421e3=_[_0x1a1b('0x53')]({},_0x3421e3,_0x21d4df[_0x1a1b('0x54')]);return _0xbc988a['getApplications'](_0x3421e3);}})[_0x1a1b('0x22')](function(_0x49eaa0){if(_0x49eaa0){_0x49456f=_0x49eaa0[_0x1a1b('0x4c')];if(!_0x21d4df['query'][_0x1a1b('0x4d')](_0x1a1b('0x6e'))){_0x3421e3[_0x1a1b('0x31')]=qs[_0x1a1b('0x31')](_0x21d4df[_0x1a1b('0x46')]['limit']);_0x3421e3[_0x1a1b('0x30')]=qs[_0x1a1b('0x30')](_0x21d4df[_0x1a1b('0x46')][_0x1a1b('0x30')]);}return _0xbc988a['getApplications'](_0x3421e3);}})[_0x1a1b('0x22')](function(_0x112746){if(_0x112746){return _0x112746?{'count':_0x49456f,'rows':_0x112746}:null;}})[_0x1a1b('0x22')](respondWithResult(_0x18b587,null))[_0x1a1b('0x2c')](handleError(_0x18b587,null));};exports[_0x1a1b('0xaf')]=function(_0x436237,_0x1adc19,_0x120f59){var _0x10ec71={'raw':![],'where':{}};var _0x22ebdf={};var _0x2c28d0={'count':0x0,'rows':[]};return db[_0x1a1b('0x57')][_0x1a1b('0x6d')]({'where':{'id':_0x436237[_0x1a1b('0x5b')]['id']}})[_0x1a1b('0x22')](handleEntityNotFound(_0x1adc19,null))[_0x1a1b('0x22')](function(_0x451460){if(_0x451460){_0x22ebdf[_0x1a1b('0x45')]=_[_0x1a1b('0x47')](db[_0x1a1b('0x93')][_0x1a1b('0x42')]);_0x22ebdf['query']=_['keys'](_0x436237[_0x1a1b('0x46')]);_0x22ebdf[_0x1a1b('0x48')]=_[_0x1a1b('0x4a')](_0x22ebdf['model'],_0x22ebdf['query']);_0x10ec71[_0x1a1b('0x49')]=_[_0x1a1b('0x4a')](_0x22ebdf[_0x1a1b('0x45')],qs['fields'](_0x436237['query']['fields']));_0x10ec71[_0x1a1b('0x49')]=_0x10ec71['attributes'][_0x1a1b('0x4c')]?_0x10ec71[_0x1a1b('0x49')]:_0x22ebdf[_0x1a1b('0x45')];if(!_0x436237[_0x1a1b('0x46')][_0x1a1b('0x4d')]('nolimit')){_0x10ec71[_0x1a1b('0x31')]=qs[_0x1a1b('0x31')](_0x436237[_0x1a1b('0x46')][_0x1a1b('0x31')]);_0x10ec71[_0x1a1b('0x30')]=qs['offset'](_0x436237[_0x1a1b('0x46')][_0x1a1b('0x30')]);}_0x10ec71[_0x1a1b('0x4e')]=qs[_0x1a1b('0x4f')](_0x436237[_0x1a1b('0x46')][_0x1a1b('0x4f')]);_0x10ec71[_0x1a1b('0x52')]=qs[_0x1a1b('0x48')](_[_0x1a1b('0x50')](_0x436237[_0x1a1b('0x46')],_0x22ebdf[_0x1a1b('0x48')]));_0x10ec71['where']['OpenchannelAccountId']=_0x451460['id'];if(_0x436237[_0x1a1b('0x46')][_0x1a1b('0x51')]){_0x10ec71['where']=_[_0x1a1b('0x53')](_0x10ec71['where'],{'$or':_[_0x1a1b('0x41')](_0x10ec71[_0x1a1b('0x49')],function(_0x5b0de2){var _0x24f5e5={};_0x24f5e5[_0x5b0de2]={'$like':'%'+_0x436237['query'][_0x1a1b('0x51')]+'%'};return _0x24f5e5;})});}_0x10ec71=_['merge']({},_0x10ec71,_0x436237[_0x1a1b('0x54')]);return db[_0x1a1b('0x93')][_0x1a1b('0x33')]({'where':_0x10ec71['where']})[_0x1a1b('0x22')](function(_0xf4c73d){_0x2c28d0[_0x1a1b('0x33')]=_0xf4c73d;if(_0x436237['query'][_0x1a1b('0x55')]){_0x10ec71['include']=[{'model':db[_0x1a1b('0x76')],'as':'Contact','required':![]},{'model':db[_0x1a1b('0xa0')],'as':_0x1a1b('0xb0'),'attributes':[_0x1a1b('0x3d'),_0x1a1b('0xb1'),'internal'],'required':![]},{'model':db[_0x1a1b('0xb2')],'as':'Tags','attributes':['id',_0x1a1b('0x3d'),_0x1a1b('0xb3')],'where':_0x436237[_0x1a1b('0x46')]['tag']?{'id':_0x436237['query'][_0x1a1b('0xb4')]}:undefined,'required':_0x436237[_0x1a1b('0x46')][_0x1a1b('0xb4')]?!![]:![]}];}return db[_0x1a1b('0x93')][_0x1a1b('0x58')](_0x10ec71);})[_0x1a1b('0x22')](function(_0x31ec9c){_0x2c28d0[_0x1a1b('0x59')]=_0x31ec9c;return _0x2c28d0;});}})[_0x1a1b('0x22')](respondWithFilteredResult(_0x1adc19,_0x10ec71))[_0x1a1b('0x2c')](handleError(_0x1adc19,null));};exports[_0x1a1b('0xb5')]=function(_0x57be4a,_0x2d915d,_0x23b151){return db['OpenchannelAccount'][_0x1a1b('0x5c')]({'where':{'id':_0x57be4a[_0x1a1b('0x5b')]['id']}})[_0x1a1b('0x22')](handleEntityNotFound(_0x2d915d,null))[_0x1a1b('0x22')](function(_0xe618a){if(_0xe618a){return _0xe618a[_0x1a1b('0xb5')](_0x57be4a[_0x1a1b('0x66')][_0x1a1b('0x70')],_[_0x1a1b('0xb6')](_0x57be4a[_0x1a1b('0x66')],['ids','id'])||{})[_0x1a1b('0x96')](function(_0x2f6d7f){for(var _0x49801b=0x0;_0x49801b<_0x57be4a['body'][_0x1a1b('0x70')][_0x1a1b('0x4c')];_0x49801b+=0x1){socket[_0x1a1b('0xb7')](_0x1a1b('0xb8'),{'UserId':Number(_0x57be4a[_0x1a1b('0x66')]['ids'][_0x49801b]),'OpenchannelAccountId':Number(_0x57be4a[_0x1a1b('0x5b')]['id'])});}return _0x2f6d7f;});}})[_0x1a1b('0x22')](respondWithResult(_0x2d915d,null))[_0x1a1b('0x2c')](handleError(_0x2d915d,null));};exports[_0x1a1b('0xb9')]=function(_0x1b9fff,_0x385b13,_0x3825ff){return db[_0x1a1b('0x57')][_0x1a1b('0x5c')]({'where':{'id':_0x1b9fff[_0x1a1b('0x5b')]['id']}})[_0x1a1b('0x22')](handleEntityNotFound(_0x385b13,null))[_0x1a1b('0x22')](function(_0x569182){if(_0x569182){return _0x569182[_0x1a1b('0xb9')](_0x1b9fff[_0x1a1b('0x46')][_0x1a1b('0x70')])['then'](function(){if(_['isArray'](_0x1b9fff['query']['ids'])){for(var _0x4840e0=0x0;_0x4840e0<_0x1b9fff[_0x1a1b('0x46')][_0x1a1b('0x70')]['length'];_0x4840e0+=0x1){socket['emit'](_0x1a1b('0xba'),{'UserId':Number(_0x1b9fff['query'][_0x1a1b('0x70')][_0x4840e0]),'OpenchannelAccountId':Number(_0x1b9fff[_0x1a1b('0x5b')]['id'])});}}else{socket[_0x1a1b('0xb7')]('userOpenchannelAccount:remove',{'UserId':Number(_0x1b9fff['query'][_0x1a1b('0x70')]),'OpenchannelAccountId':Number(_0x1b9fff['params']['id'])});}});}})['then'](respondWithStatusCode(_0x385b13,null))[_0x1a1b('0x2c')](handleError(_0x385b13,null));};exports['getAgents']=function(_0x5d9862,_0x4c73f9,_0x408a04){var _0x27b2cd={};var _0x570e2b={};var _0x4b5b55;var _0x1a1a03;return db[_0x1a1b('0x57')][_0x1a1b('0x6d')]({'where':{'id':_0x5d9862[_0x1a1b('0x5b')]['id']}})[_0x1a1b('0x22')](handleEntityNotFound(_0x4c73f9,null))[_0x1a1b('0x22')](function(_0x4e4017){if(_0x4e4017){_0x4b5b55=_0x4e4017;_0x570e2b[_0x1a1b('0x45')]=_[_0x1a1b('0x47')](db[_0x1a1b('0xa0')][_0x1a1b('0x42')]);_0x570e2b['query']=_[_0x1a1b('0x47')](_0x5d9862[_0x1a1b('0x46')]);_0x570e2b[_0x1a1b('0x48')]=_[_0x1a1b('0x4a')](_0x570e2b[_0x1a1b('0x45')],_0x570e2b[_0x1a1b('0x46')]);_0x27b2cd[_0x1a1b('0x49')]=_[_0x1a1b('0x4a')](_0x570e2b[_0x1a1b('0x45')],qs[_0x1a1b('0x4b')](_0x5d9862[_0x1a1b('0x46')][_0x1a1b('0x4b')]));_0x27b2cd[_0x1a1b('0x49')]=_0x27b2cd[_0x1a1b('0x49')][_0x1a1b('0x4c')]?_0x27b2cd[_0x1a1b('0x49')]:_0x570e2b[_0x1a1b('0x45')];_0x27b2cd[_0x1a1b('0x4e')]=qs[_0x1a1b('0x4f')](_0x5d9862[_0x1a1b('0x46')][_0x1a1b('0x4f')]);_0x27b2cd[_0x1a1b('0x52')]=qs['filters'](_[_0x1a1b('0x50')](_0x5d9862[_0x1a1b('0x46')],_0x570e2b['filters']));if(_0x5d9862[_0x1a1b('0x46')][_0x1a1b('0x51')]){_0x27b2cd[_0x1a1b('0x52')]=_['merge'](_0x27b2cd[_0x1a1b('0x52')],{'$or':_['map'](_0x27b2cd[_0x1a1b('0x49')],function(_0x35376b){var _0x3b3a8a={};_0x3b3a8a[_0x35376b]={'$like':'%'+_0x5d9862[_0x1a1b('0x46')]['filter']+'%'};return _0x3b3a8a;})});}_0x27b2cd=_[_0x1a1b('0x53')]({},_0x27b2cd,_0x5d9862[_0x1a1b('0x54')]);return _0x4b5b55['getAgents'](_0x27b2cd);}})[_0x1a1b('0x22')](function(_0xec180f){if(_0xec180f){_0x1a1a03=_0xec180f['length'];if(!_0x5d9862[_0x1a1b('0x46')][_0x1a1b('0x4d')](_0x1a1b('0x6e'))){_0x27b2cd[_0x1a1b('0x31')]=qs[_0x1a1b('0x31')](_0x5d9862[_0x1a1b('0x46')][_0x1a1b('0x31')]);_0x27b2cd[_0x1a1b('0x30')]=qs[_0x1a1b('0x30')](_0x5d9862['query'][_0x1a1b('0x30')]);}return _0x4b5b55[_0x1a1b('0xbb')](_0x27b2cd);}})[_0x1a1b('0x22')](function(_0x25cd85){if(_0x25cd85){return _0x25cd85?{'count':_0x1a1a03,'rows':_0x25cd85}:null;}})[_0x1a1b('0x22')](respondWithResult(_0x4c73f9,null))[_0x1a1b('0x2c')](handleError(_0x4c73f9,null));};exports[_0x1a1b('0x3e')]=function(_0x4c2009,_0x55eacd,_0x4a5ab9){var _0x9303f4,_0x411618,_0x4a43e2;if(_[_0x1a1b('0x7e')](_0x4c2009[_0x1a1b('0x66')][_0x1a1b('0x66')])||_0x4c2009[_0x1a1b('0x66')]['body']===''){throw new db[(_0x1a1b('0x7f'))][(_0x1a1b('0x77'))](_0x1a1b('0x81'));}if(_[_0x1a1b('0x7e')](_0x4c2009[_0x1a1b('0x66')]['to'])){}_0x9303f4=_0x4c2009[_0x1a1b('0x66')]['to'];return db['OpenchannelAccount']['findOne']({'where':{'id':_0x4c2009['params']['id']}})['then'](handleEntityNotFound(_0x55eacd,null))[_0x1a1b('0x22')](function(_0x1a6204){if(_0x1a6204){return db[_0x1a1b('0x57')]['find']({'where':{'id':_0x1a6204['id']},'include':[{'model':db[_0x1a1b('0x86')],'as':_0x1a1b('0x87'),'include':[{'model':db['CmContact'],'as':_0x1a1b('0x8f'),'where':{[_0x1a6204['mapKey']]:_0x9303f4},'limit':0x1,'order':[[_0x1a1b('0x7b'),'DESC']]}]}]})['then'](handleEntityNotFound(_0x55eacd,null))[_0x1a1b('0x22')](function(_0x5d6b5e){if(_0x5d6b5e&&_0x5d6b5e[_0x1a1b('0x87')]){_0x411618=_0x5d6b5e[_0x1a1b('0x5f')]({'plain':!![]});if(_0x411618['List']&&_0x411618['List'][_0x1a1b('0x8f')][_0x1a1b('0x4c')]){return _0x411618['List'][_0x1a1b('0x8f')][0x0];}return db['CmContact'][_0x1a1b('0x5d')](_[_0x1a1b('0x1a')](_0x4c2009[_0x1a1b('0x66')],{'firstName':_0x9303f4,[_0x5d6b5e[_0x1a1b('0x82')]]:_0x9303f4,'phone':_0x9303f4,'ListId':_0x411618[_0x1a1b('0x7d')]}));}})[_0x1a1b('0x22')](handleEntityNotFound(_0x55eacd,null))[_0x1a1b('0x22')](function(_0x58911a){if(_0x58911a){_0x4a43e2=_0x58911a;return db[_0x1a1b('0x93')][_0x1a1b('0x5c')]({'where':{'ContactId':_0x4a43e2['id'],'closed':![],'OpenchannelAccountId':_0x411618['id']}})[_0x1a1b('0x22')](function(_0x11d97d){if(_0x11d97d){return[_0x11d97d,![]];}return db[_0x1a1b('0x93')][_0x1a1b('0x5d')]({'UserId':_0x4c2009['user']['id'],'ContactId':_0x4a43e2['id'],'OpenchannelAccountId':_0x411618['id'],'lastMsgDirection':_0x1a1b('0xbc'),'Messages':[_['merge'](_0x4c2009['body'],{'read':![],'body':_0x4c2009[_0x1a1b('0x66')][_0x1a1b('0x66')],'OpenchannelAccountId':_0x411618['id'],'UserId':_0x4c2009['user']['id'],'ContactId':_0x4a43e2['id']})]},{'include':[{'model':db[_0x1a1b('0x9e')],'as':_0x1a1b('0xbd')}]})['then'](function(_0x2514ad){return[_0x2514ad,!![]];});});}})[_0x1a1b('0x96')](function(_0x518620,_0x133208){if(_0x133208){return _0x518620;}return db['OpenchannelMessage']['create'](_[_0x1a1b('0x53')](_0x4c2009[_0x1a1b('0x66')],{'read':![],'body':_0x4c2009[_0x1a1b('0x66')][_0x1a1b('0x66')],'OpenchannelAccountId':_0x411618['id'],'OpenchannelInteractionId':_0x518620['id'],'UserId':_0x4c2009['user']['id'],'ContactId':_0x4a43e2['id']}))[_0x1a1b('0x22')](function(_0x4cdcf4){_0x518620[_0x1a1b('0xbe')][_0x1a1b('0xbd')]=[];_0x518620[_0x1a1b('0xbe')][_0x1a1b('0xbd')][_0x1a1b('0x9b')](_0x4cdcf4[_0x1a1b('0xbe')]);return _0x518620;});});}})[_0x1a1b('0x22')](respondWithResult(_0x55eacd,null))[_0x1a1b('0x2c')](handleError(_0x55eacd,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdb7=['save','update','remove','hasOwnProperty','hook','events','../../mysqldb','OpenchannelAccount','setMaxListeners'];(function(_0x221272,_0x13a3f6){var _0x4d43df=function(_0x5c088f){while(--_0x5c088f){_0x221272['push'](_0x221272['shift']());}};_0x4d43df(++_0x13a3f6);}(_0xbdb7,0x12e));var _0x7bdb=function(_0x2b0267,_0x59cab1){_0x2b0267=_0x2b0267-0x0;var _0x289a4a=_0xbdb7[_0x2b0267];return _0x289a4a;};'use strict';var EventEmitter=require(_0x7bdb('0x0'));var OpenchannelAccount=require(_0x7bdb('0x1'))['db'][_0x7bdb('0x2')];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents[_0x7bdb('0x3')](0x0);var events={'afterCreate':_0x7bdb('0x4'),'afterUpdate':_0x7bdb('0x5'),'afterDestroy':_0x7bdb('0x6')};function emitEvent(_0x2c7e07){return function(_0x46c068,_0x47aec5,_0x28542c){OpenchannelAccountEvents['emit'](_0x2c7e07+':'+_0x46c068['id'],_0x46c068);OpenchannelAccountEvents['emit'](_0x2c7e07,_0x46c068);_0x28542c(null);};}for(var e in events){if(events[_0x7bdb('0x7')](e)){var event=events[e];OpenchannelAccount[_0x7bdb('0x8')](e,emitEvent(event));}}module['exports']=OpenchannelAccountEvents;
\ No newline at end of file
+var _0x4483=['../../mysqldb','OpenchannelAccount','save','update','remove','emit','hasOwnProperty','hook','exports','events'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x4483,0x1a3));var _0x3448=function(_0x3f8c21,_0x2652a8){_0x3f8c21=_0x3f8c21-0x0;var _0xd0d7ae=_0x4483[_0x3f8c21];return _0xd0d7ae;};'use strict';var EventEmitter=require(_0x3448('0x0'));var OpenchannelAccount=require(_0x3448('0x1'))['db'][_0x3448('0x2')];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x3448('0x3'),'afterUpdate':_0x3448('0x4'),'afterDestroy':_0x3448('0x5')};function emitEvent(_0x3a7178){return function(_0xef1a93,_0x5f5163,_0xeb5b8){OpenchannelAccountEvents[_0x3448('0x6')](_0x3a7178+':'+_0xef1a93['id'],_0xef1a93);OpenchannelAccountEvents[_0x3448('0x6')](_0x3a7178,_0xef1a93);_0xeb5b8(null);};}for(var e in events){if(events[_0x3448('0x7')](e)){var event=events[e];OpenchannelAccount[_0x3448('0x8')](e,emitEvent(event));}}module[_0x3448('0x9')]=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(_0x52cf77,_0xd1dc7c){var _0x224938=function(_0x1f3bee){while(--_0x1f3bee){_0x52cf77['push'](_0x52cf77['shift']());}};_0x224938(++_0xd1dc7c);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2160a9,_0x3cbd9e){_0x2160a9=_0x2160a9-0x0;var _0xa88cf7=_0xa9e0[_0x2160a9];return _0xa88cf7;};'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(_0x31391f,_0x3c88c5){var _0x5e7b88=function(_0x1122d4){while(--_0x1122d4){_0x31391f['push'](_0x31391f['shift']());}};_0x5e7b88(++_0x3c88c5);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2b10c6,_0x185590){_0x2b10c6=_0x2b10c6-0x0;var _0x3789d2=_0xa9e0[_0x2b10c6];return _0x3789d2;};'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 _0x373d=['result','catch','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','client','http','redis','defaults','localhost','register','then','info','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','stringify','error','code','message'];(function(_0x56a4b0,_0x447654){var _0x42dc6f=function(_0x1927c9){while(--_0x1927c9){_0x56a4b0['push'](_0x56a4b0['shift']());}};_0x42dc6f(++_0x447654);}(_0x373d,0x1e2));var _0xd373=function(_0x366e92,_0x1b1b86){_0x366e92=_0x366e92-0x0;var _0x41aa9d=_0x373d[_0x366e92];return _0x41aa9d;};'use strict';var _=require(_0xd373('0x0'));var util=require('util');var moment=require(_0xd373('0x1'));var BPromise=require(_0xd373('0x2'));var rs=require(_0xd373('0x3'));var fs=require('fs');var Redis=require(_0xd373('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xd373('0x5'));var logger=require(_0xd373('0x6'))(_0xd373('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xd373('0x8')][_0xd373('0x9')]({'port':0x232a});config[_0xd373('0xa')]=_[_0xd373('0xb')](config['redis'],{'host':_0xd373('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./openchannelAccount.socket')[_0xd373('0xd')](socket);function respondWithRpcPromise(_0x42b834,_0x4a67af,_0x27a522){return new BPromise(function(_0x234247,_0x5c899d){return client['request'](_0x42b834,_0x27a522)[_0xd373('0xe')](function(_0x4579c4){logger[_0xd373('0xf')](_0xd373('0x10'),_0x4a67af,'request\x20sent');logger['debug']('OpenchannelAccount,\x20%s,\x20%s,\x20%s',_0x4a67af,_0xd373('0x11'),JSON[_0xd373('0x12')](_0x4579c4));if(_0x4579c4['error']){if(_0x4579c4[_0xd373('0x13')][_0xd373('0x14')]===0x1f4){logger[_0xd373('0x13')](_0xd373('0x10'),_0x4a67af,_0x4579c4[_0xd373('0x13')][_0xd373('0x15')]);return _0x5c899d(_0x4579c4[_0xd373('0x13')][_0xd373('0x15')]);}logger[_0xd373('0x13')](_0xd373('0x10'),_0x4a67af,_0x4579c4[_0xd373('0x13')][_0xd373('0x15')]);return _0x234247(_0x4579c4[_0xd373('0x13')]['message']);}else{logger[_0xd373('0xf')]('OpenchannelAccount,\x20%s,\x20%s',_0x4a67af,_0xd373('0x11'));_0x234247(_0x4579c4[_0xd373('0x16')]['message']);}})[_0xd373('0x17')](function(_0x4f5366){logger['error'](_0xd373('0x10'),_0x4a67af,_0x4f5366);_0x5c899d(_0x4f5366);});});}
\ No newline at end of file
+var _0x76dc=['error','code','message','result','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','jayson/promise','client','http','redis','localhost','socket.io-emitter','register','request','then','info','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','debug','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x5f122a,_0x7ac493){var _0x1d1a15=function(_0x4c7fc1){while(--_0x4c7fc1){_0x5f122a['push'](_0x5f122a['shift']());}};_0x1d1a15(++_0x7ac493);}(_0x76dc,0x1f2));var _0xc76d=function(_0x38a321,_0xdfce6e){_0x38a321=_0x38a321-0x0;var _0x6fcbdb=_0x76dc[_0x38a321];return _0x6fcbdb;};'use strict';var _=require(_0xc76d('0x0'));var util=require(_0xc76d('0x1'));var moment=require(_0xc76d('0x2'));var BPromise=require(_0xc76d('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc76d('0x4'));var db=require(_0xc76d('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xc76d('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0xc76d('0x7'));var client=jayson[_0xc76d('0x8')][_0xc76d('0x9')]({'port':0x232a});config['redis']=_['defaults'](config[_0xc76d('0xa')],{'host':_0xc76d('0xb'),'port':0x18eb});var socket=require(_0xc76d('0xc'))(new Redis(config['redis']));require('./openchannelAccount.socket')[_0xc76d('0xd')](socket);function respondWithRpcPromise(_0x2f81bd,_0x4d625c,_0x39a47f){return new BPromise(function(_0x583e46,_0xd5c042){return client[_0xc76d('0xe')](_0x2f81bd,_0x39a47f)[_0xc76d('0xf')](function(_0x95e06b){logger[_0xc76d('0x10')](_0xc76d('0x11'),_0x4d625c,_0xc76d('0x12'));logger[_0xc76d('0x13')](_0xc76d('0x14'),_0x4d625c,_0xc76d('0x12'),JSON[_0xc76d('0x15')](_0x95e06b));if(_0x95e06b[_0xc76d('0x16')]){if(_0x95e06b[_0xc76d('0x16')][_0xc76d('0x17')]===0x1f4){logger['error'](_0xc76d('0x11'),_0x4d625c,_0x95e06b[_0xc76d('0x16')]['message']);return _0xd5c042(_0x95e06b[_0xc76d('0x16')][_0xc76d('0x18')]);}logger[_0xc76d('0x16')](_0xc76d('0x11'),_0x4d625c,_0x95e06b['error'][_0xc76d('0x18')]);return _0x583e46(_0x95e06b['error']['message']);}else{logger[_0xc76d('0x10')](_0xc76d('0x11'),_0x4d625c,_0xc76d('0x12'));_0x583e46(_0x95e06b[_0xc76d('0x19')][_0xc76d('0x18')]);}})['catch'](function(_0x20a078){logger[_0xc76d('0x16')](_0xc76d('0x11'),_0x4d625c,_0x20a078);_0xd5c042(_0x20a078);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc112=['removeListener','register','length','openchannelAccount:','./openchannelAccount.events','save','remove','emit'];(function(_0x1ac83b,_0x35ab1e){var _0xbdeedd=function(_0x39fd0d){while(--_0x39fd0d){_0x1ac83b['push'](_0x1ac83b['shift']());}};_0xbdeedd(++_0x35ab1e);}(_0xc112,0xec));var _0x2c11=function(_0x2dad7d,_0x1279ba){_0x2dad7d=_0x2dad7d-0x0;var _0x461973=_0xc112[_0x2dad7d];return _0x461973;};'use strict';var OpenchannelAccountEvents=require(_0x2c11('0x0'));var events=[_0x2c11('0x1'),_0x2c11('0x2'),'update'];function createListener(_0x8542d8,_0x40da2e){return function(_0x26e2a3){_0x40da2e[_0x2c11('0x3')](_0x8542d8,_0x26e2a3);};}function removeListener(_0xaa8492,_0x3a1cda){return function(){OpenchannelAccountEvents[_0x2c11('0x4')](_0xaa8492,_0x3a1cda);};}exports[_0x2c11('0x5')]=function(_0x2337d0){for(var _0x5c4748=0x0,_0x5c2399=events[_0x2c11('0x6')];_0x5c4748<_0x5c2399;_0x5c4748++){var _0x1fada4=events[_0x5c4748];var _0x29dfcf=createListener(_0x2c11('0x7')+_0x1fada4,_0x2337d0);OpenchannelAccountEvents['on'](_0x1fada4,_0x29dfcf);}};
\ No newline at end of file
+var _0xe130=['openchannelAccount:','./openchannelAccount.events','save','update','emit','removeListener','register'];(function(_0xac3aa1,_0x2c961f){var _0x9f98bc=function(_0x182bb0){while(--_0x182bb0){_0xac3aa1['push'](_0xac3aa1['shift']());}};_0x9f98bc(++_0x2c961f);}(_0xe130,0x127));var _0x0e13=function(_0x16d7c8,_0x75be2a){_0x16d7c8=_0x16d7c8-0x0;var _0x52c07f=_0xe130[_0x16d7c8];return _0x52c07f;};'use strict';var OpenchannelAccountEvents=require(_0x0e13('0x0'));var events=[_0x0e13('0x1'),'remove',_0x0e13('0x2')];function createListener(_0x3cbccc,_0x1dd4fa){return function(_0x360489){_0x1dd4fa[_0x0e13('0x3')](_0x3cbccc,_0x360489);};}function removeListener(_0x504f15,_0x1489a9){return function(){OpenchannelAccountEvents[_0x0e13('0x4')](_0x504f15,_0x1489a9);};}exports[_0x0e13('0x5')]=function(_0xcd92e){for(var _0x50a80e=0x0,_0x1774a5=events['length'];_0x50a80e<_0x1774a5;_0x50a80e++){var _0x567031=events[_0x50a80e];var _0x5aaa22=createListener(_0x0e13('0x6')+_0x567031,_0xcd92e);OpenchannelAccountEvents['on'](_0x567031,_0x5aaa22);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf840=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./openchannelApplication.controller','get','isAuthenticated','/:id','show','post','put','delete','destroy','exports','multer','util'];(function(_0x22b2df,_0x3fcb39){var _0x10007c=function(_0x3899c9){while(--_0x3899c9){_0x22b2df['push'](_0x22b2df['shift']());}};_0x10007c(++_0x3fcb39);}(_0xf840,0x167));var _0x0f84=function(_0x28d7b5,_0x1305a4){_0x28d7b5=_0x28d7b5-0x0;var _0x1ed035=_0xf840[_0x28d7b5];return _0x1ed035;};'use strict';var multer=require(_0x0f84('0x0'));var util=require(_0x0f84('0x1'));var path=require(_0x0f84('0x2'));var timeout=require(_0x0f84('0x3'));var express=require(_0x0f84('0x4'));var router=express[_0x0f84('0x5')]();var fs_extra=require(_0x0f84('0x6'));var auth=require(_0x0f84('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x0f84('0x8'));var controller=require(_0x0f84('0x9'));router[_0x0f84('0xa')]('/',auth[_0x0f84('0xb')](),controller['index']);router[_0x0f84('0xa')](_0x0f84('0xc'),auth[_0x0f84('0xb')](),controller[_0x0f84('0xd')]);router[_0x0f84('0xe')]('/',auth[_0x0f84('0xb')](),controller['create']);router[_0x0f84('0xf')](_0x0f84('0xc'),auth[_0x0f84('0xb')](),controller['update']);router[_0x0f84('0x10')]('/:id',auth[_0x0f84('0xb')](),controller[_0x0f84('0x11')]);module[_0x0f84('0x12')]=router;
\ No newline at end of file
+var _0x8677=['get','isAuthenticated','index','/:id','post','create','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./openchannelApplication.controller'];(function(_0x503ac4,_0x16ea34){var _0x1de88b=function(_0x5497c9){while(--_0x5497c9){_0x503ac4['push'](_0x503ac4['shift']());}};_0x1de88b(++_0x16ea34);}(_0x8677,0x114));var _0x7867=function(_0x1a8cce,_0x5c3551){_0x1a8cce=_0x1a8cce-0x0;var _0xffe940=_0x8677[_0x1a8cce];return _0xffe940;};'use strict';var multer=require(_0x7867('0x0'));var util=require(_0x7867('0x1'));var path=require(_0x7867('0x2'));var timeout=require(_0x7867('0x3'));var express=require(_0x7867('0x4'));var router=express[_0x7867('0x5')]();var fs_extra=require(_0x7867('0x6'));var auth=require(_0x7867('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x7867('0x8'));router[_0x7867('0x9')]('/',auth[_0x7867('0xa')](),controller[_0x7867('0xb')]);router[_0x7867('0x9')](_0x7867('0xc'),auth[_0x7867('0xa')](),controller['show']);router[_0x7867('0xd')]('/',auth[_0x7867('0xa')](),controller[_0x7867('0xe')]);router[_0x7867('0xf')](_0x7867('0xc'),auth[_0x7867('0xa')](),controller[_0x7867('0x10')]);router[_0x7867('0x11')](_0x7867('0xc'),auth[_0x7867('0xa')](),controller['destroy']);module[_0x7867('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x67c1=['noop','TEXT','sequelize','INTEGER','STRING'];(function(_0x3c8971,_0x54c67a){var _0x3779ba=function(_0x3351cd){while(--_0x3351cd){_0x3c8971['push'](_0x3c8971['shift']());}};_0x3779ba(++_0x54c67a);}(_0x67c1,0xd9));var _0x167c=function(_0xd202d5,_0x1e7556){_0xd202d5=_0xd202d5-0x0;var _0x2c8b68=_0x67c1[_0xd202d5];return _0x2c8b68;};'use strict';var Sequelize=require(_0x167c('0x0'));module['exports']={'priority':{'type':Sequelize[_0x167c('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x167c('0x2')],'allowNull':![],'defaultValue':_0x167c('0x3')},'appdata':{'type':Sequelize[_0x167c('0x4')]()},'description':{'type':Sequelize[_0x167c('0x2')]},'interval':{'type':Sequelize['STRING'],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
+var _0xcd5c=['sequelize','exports','STRING','noop','TEXT','*,*,*,*'];(function(_0x584ab5,_0x422e0b){var _0x1515a4=function(_0x1a6dc3){while(--_0x1a6dc3){_0x584ab5['push'](_0x584ab5['shift']());}};_0x1515a4(++_0x422e0b);}(_0xcd5c,0x180));var _0xccd5=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xcd5c[_0x4a9fb1];return _0x348672;};'use strict';var Sequelize=require(_0xccd5('0x0'));module[_0xccd5('0x1')]={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize[_0xccd5('0x2')],'allowNull':![],'defaultValue':_0xccd5('0x3')},'appdata':{'type':Sequelize[_0xccd5('0x4')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0xccd5('0x2')],'defaultValue':_0xccd5('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x09df=['params','options','find','create','body','rimraf','fast-json-patch','bluebird','mustache','util','path','to-csv','ejs','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','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','map','OpenchannelApplication','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filters','filter','merge','includeAll','include','findAll','rows','catch','show'];(function(_0xf24a55,_0x1f3832){var _0x16f037=function(_0x2df872){while(--_0x2df872){_0xf24a55['push'](_0xf24a55['shift']());}};_0x16f037(++_0x1f3832);}(_0x09df,0xe9));var _0xf09d=function(_0x5235a6,_0x680b76){_0x5235a6=_0x5235a6-0x0;var _0x1cf37e=_0x09df[_0x5235a6];return _0x1cf37e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf09d('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf09d('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xf09d('0x2'));var Mustache=require(_0xf09d('0x3'));var util=require(_0xf09d('0x4'));var path=require(_0xf09d('0x5'));var sox=require('sox');var csv=require(_0xf09d('0x6'));var ejs=require(_0xf09d('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf09d('0x8'));var squel=require(_0xf09d('0x9'));var crypto=require(_0xf09d('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xf09d('0xb'));var toCsv=require(_0xf09d('0x6'));var querystring=require(_0xf09d('0xc'));var Papa=require(_0xf09d('0xd'));var Redis=require(_0xf09d('0xe'));var authService=require(_0xf09d('0xf'));var qs=require(_0xf09d('0x10'));var as=require(_0xf09d('0x11'));var hardwareService=require(_0xf09d('0x12'));var logger=require(_0xf09d('0x13'))(_0xf09d('0x14'));var utils=require(_0xf09d('0x15'));var config=require(_0xf09d('0x16'));var licenseUtil=require(_0xf09d('0x17'));var db=require(_0xf09d('0x18'))['db'];function respondWithStatusCode(_0x452337,_0x1d7e14){_0x1d7e14=_0x1d7e14||0xcc;return function(_0x2abc22){if(_0x2abc22){return _0x452337[_0xf09d('0x19')](_0x1d7e14);}return _0x452337[_0xf09d('0x1a')](_0x1d7e14)[_0xf09d('0x1b')]();};}function respondWithResult(_0x11a11c,_0x20f439){_0x20f439=_0x20f439||0xc8;return function(_0x3bc5af){if(_0x3bc5af){return _0x11a11c['status'](_0x20f439)[_0xf09d('0x1c')](_0x3bc5af);}};}function respondWithFilteredResult(_0x4aab1f,_0x4cf8a9){return function(_0x478893){if(_0x478893){var _0x4755d1=typeof _0x4cf8a9[_0xf09d('0x1d')]===_0xf09d('0x1e')&&typeof _0x4cf8a9['limit']==='undefined';var _0x559367=_0x478893[_0xf09d('0x1f')];var _0x27ff0f=_0x4755d1?0x0:_0x4cf8a9[_0xf09d('0x1d')];var _0x108dde=_0x4755d1?_0x478893[_0xf09d('0x1f')]:_0x4cf8a9[_0xf09d('0x1d')]+_0x4cf8a9[_0xf09d('0x20')];var _0x14891e;if(_0x108dde>=_0x559367){_0x108dde=_0x559367;_0x14891e=0xc8;}else{_0x14891e=0xce;}_0x4aab1f[_0xf09d('0x1a')](_0x14891e);return _0x4aab1f[_0xf09d('0x21')](_0xf09d('0x22'),_0x27ff0f+'-'+_0x108dde+'/'+_0x559367)[_0xf09d('0x1c')](_0x478893);}return null;};}function patchUpdates(_0x2184a6){return function(_0x556d9a){try{jsonpatch[_0xf09d('0x23')](_0x556d9a,_0x2184a6,!![]);}catch(_0x547d4a){return BPromise[_0xf09d('0x24')](_0x547d4a);}return _0x556d9a['save']();};}function saveUpdates(_0x4a596f,_0x8d2c97){return function(_0x5f3a00){if(_0x5f3a00){return _0x5f3a00[_0xf09d('0x25')](_0x4a596f)[_0xf09d('0x26')](function(_0x564edf){return _0x564edf;});}return null;};}function removeEntity(_0x3353d8,_0x1f5d4f){return function(_0x2896ff){if(_0x2896ff){return _0x2896ff[_0xf09d('0x27')]()[_0xf09d('0x26')](function(){_0x3353d8[_0xf09d('0x1a')](0xcc)[_0xf09d('0x1b')]();});}};}function handleEntityNotFound(_0xd62283,_0x8d2023){return function(_0x57505a){if(!_0x57505a){_0xd62283[_0xf09d('0x19')](0x194);}return _0x57505a;};}function handleError(_0x190f2b,_0x2591c4){_0x2591c4=_0x2591c4||0x1f4;return function(_0x52d018){logger[_0xf09d('0x28')](_0x52d018[_0xf09d('0x29')]);if(_0x52d018[_0xf09d('0x2a')]){delete _0x52d018[_0xf09d('0x2a')];}_0x190f2b[_0xf09d('0x1a')](_0x2591c4)[_0xf09d('0x2b')](_0x52d018);};}exports[_0xf09d('0x2c')]=function(_0x31c900,_0x3dc578){var _0x354438={},_0x41f738={},_0x40b094={'count':0x0,'rows':[]};var _0x225f9e=_[_0xf09d('0x2d')](db[_0xf09d('0x2e')][_0xf09d('0x2f')],function(_0x3c03a4){return{'name':_0x3c03a4[_0xf09d('0x30')],'type':_0x3c03a4[_0xf09d('0x31')][_0xf09d('0x32')]};});_0x41f738[_0xf09d('0x33')]=_['map'](_0x225f9e,'name');_0x41f738[_0xf09d('0x34')]=_[_0xf09d('0x35')](_0x31c900[_0xf09d('0x34')]);_0x41f738['filters']=_[_0xf09d('0x36')](_0x41f738[_0xf09d('0x33')],_0x41f738[_0xf09d('0x34')]);_0x354438['attributes']=_[_0xf09d('0x36')](_0x41f738[_0xf09d('0x33')],qs[_0xf09d('0x37')](_0x31c900[_0xf09d('0x34')]['fields']));_0x354438[_0xf09d('0x38')]=_0x354438[_0xf09d('0x38')][_0xf09d('0x39')]?_0x354438[_0xf09d('0x38')]:_0x41f738['model'];if(!_0x31c900[_0xf09d('0x34')][_0xf09d('0x3a')]('nolimit')){_0x354438['limit']=qs['limit'](_0x31c900['query'][_0xf09d('0x20')]);_0x354438[_0xf09d('0x1d')]=qs[_0xf09d('0x1d')](_0x31c900[_0xf09d('0x34')][_0xf09d('0x1d')]);}_0x354438[_0xf09d('0x3b')]=qs[_0xf09d('0x3c')](_0x31c900[_0xf09d('0x34')][_0xf09d('0x3c')]);_0x354438[_0xf09d('0x3d')]=qs[_0xf09d('0x3e')](_['pick'](_0x31c900['query'],_0x41f738[_0xf09d('0x3e')]),_0x225f9e);if(_0x31c900[_0xf09d('0x34')][_0xf09d('0x3f')]){_0x354438[_0xf09d('0x3d')]=_[_0xf09d('0x40')](_0x354438[_0xf09d('0x3d')],{'$or':_[_0xf09d('0x2d')](_0x225f9e,function(_0x4cadd8){if(_0x4cadd8[_0xf09d('0x31')]!=='VIRTUAL'){var _0x251dad={};_0x251dad[_0x4cadd8['name']]={'$like':'%'+_0x31c900['query']['filter']+'%'};return _0x251dad;}})});}_0x354438=_['merge']({},_0x354438,_0x31c900['options']);var _0x5b2e1a={'where':_0x354438[_0xf09d('0x3d')]};return db[_0xf09d('0x2e')][_0xf09d('0x1f')](_0x5b2e1a)[_0xf09d('0x26')](function(_0x5a23be){_0x40b094[_0xf09d('0x1f')]=_0x5a23be;if(_0x31c900[_0xf09d('0x34')][_0xf09d('0x41')]){_0x354438[_0xf09d('0x42')]=[{'all':!![]}];}return db['OpenchannelApplication'][_0xf09d('0x43')](_0x354438);})[_0xf09d('0x26')](function(_0x39b210){_0x40b094[_0xf09d('0x44')]=_0x39b210;return _0x40b094;})[_0xf09d('0x26')](respondWithFilteredResult(_0x3dc578,_0x354438))[_0xf09d('0x45')](handleError(_0x3dc578,null));};exports[_0xf09d('0x46')]=function(_0x4b7d9d,_0x2ae716){var _0x18940a={'raw':!![],'where':{'id':_0x4b7d9d[_0xf09d('0x47')]['id']}},_0x28bf03={};_0x28bf03['model']=_[_0xf09d('0x35')](db['OpenchannelApplication'][_0xf09d('0x2f')]);_0x28bf03['query']=_[_0xf09d('0x35')](_0x4b7d9d[_0xf09d('0x34')]);_0x28bf03[_0xf09d('0x3e')]=_[_0xf09d('0x36')](_0x28bf03[_0xf09d('0x33')],_0x28bf03[_0xf09d('0x34')]);_0x18940a[_0xf09d('0x38')]=_[_0xf09d('0x36')](_0x28bf03[_0xf09d('0x33')],qs[_0xf09d('0x37')](_0x4b7d9d[_0xf09d('0x34')]['fields']));_0x18940a[_0xf09d('0x38')]=_0x18940a[_0xf09d('0x38')][_0xf09d('0x39')]?_0x18940a[_0xf09d('0x38')]:_0x28bf03[_0xf09d('0x33')];if(_0x4b7d9d['query'][_0xf09d('0x41')]){_0x18940a['include']=[{'all':!![]}];}_0x18940a=_[_0xf09d('0x40')]({},_0x18940a,_0x4b7d9d[_0xf09d('0x48')]);return db['OpenchannelApplication'][_0xf09d('0x49')](_0x18940a)[_0xf09d('0x26')](handleEntityNotFound(_0x2ae716,null))['then'](respondWithResult(_0x2ae716,null))[_0xf09d('0x45')](handleError(_0x2ae716,null));};exports[_0xf09d('0x4a')]=function(_0x22f95b,_0x1be6e5){return db[_0xf09d('0x2e')][_0xf09d('0x4a')](_0x22f95b['body'],{})[_0xf09d('0x26')](respondWithResult(_0x1be6e5,0xc9))[_0xf09d('0x45')](handleError(_0x1be6e5,null));};exports[_0xf09d('0x25')]=function(_0x550c22,_0x546686){if(_0x550c22[_0xf09d('0x4b')]['id']){delete _0x550c22[_0xf09d('0x4b')]['id'];}return db['OpenchannelApplication'][_0xf09d('0x49')]({'where':{'id':_0x550c22[_0xf09d('0x47')]['id']}})['then'](handleEntityNotFound(_0x546686,null))['then'](saveUpdates(_0x550c22[_0xf09d('0x4b')],null))[_0xf09d('0x26')](respondWithResult(_0x546686,null))[_0xf09d('0x45')](handleError(_0x546686,null));};exports['destroy']=function(_0x1a1937,_0x13f17c){return db[_0xf09d('0x2e')][_0xf09d('0x49')]({'where':{'id':_0x1a1937[_0xf09d('0x47')]['id']}})[_0xf09d('0x26')](handleEntityNotFound(_0x13f17c,null))[_0xf09d('0x26')](removeEntity(_0x13f17c,null))[_0xf09d('0x45')](handleError(_0x13f17c,null));};
\ No newline at end of file
+var _0xbcdc=['Content-Range','reject','save','then','error','stack','name','index','OpenchannelApplication','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','rows','show','params','length','find','catch','create','body','update','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','fs-extra','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','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set'];(function(_0x186d8a,_0x1a3ac0){var _0x31c082=function(_0x78644d){while(--_0x78644d){_0x186d8a['push'](_0x186d8a['shift']());}};_0x31c082(++_0x1a3ac0);}(_0xbcdc,0x15d));var _0xcbcd=function(_0x589582,_0x39c663){_0x589582=_0x589582-0x0;var _0x39ab57=_0xbcdc[_0x589582];return _0x39ab57;};'use strict';var emlformat=require(_0xcbcd('0x0'));var rimraf=require(_0xcbcd('0x1'));var zipdir=require(_0xcbcd('0x2'));var jsonpatch=require(_0xcbcd('0x3'));var rp=require(_0xcbcd('0x4'));var moment=require(_0xcbcd('0x5'));var BPromise=require(_0xcbcd('0x6'));var Mustache=require(_0xcbcd('0x7'));var util=require('util');var path=require('path');var sox=require(_0xcbcd('0x8'));var csv=require(_0xcbcd('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xcbcd('0xa'));var _=require(_0xcbcd('0xb'));var squel=require(_0xcbcd('0xc'));var crypto=require(_0xcbcd('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xcbcd('0xe'));var toCsv=require(_0xcbcd('0x9'));var querystring=require(_0xcbcd('0xf'));var Papa=require(_0xcbcd('0x10'));var Redis=require(_0xcbcd('0x11'));var authService=require(_0xcbcd('0x12'));var qs=require(_0xcbcd('0x13'));var as=require(_0xcbcd('0x14'));var hardwareService=require(_0xcbcd('0x15'));var logger=require('../../config/logger')(_0xcbcd('0x16'));var utils=require(_0xcbcd('0x17'));var config=require(_0xcbcd('0x18'));var licenseUtil=require(_0xcbcd('0x19'));var db=require(_0xcbcd('0x1a'))['db'];function respondWithStatusCode(_0x2d3bb3,_0x51a811){_0x51a811=_0x51a811||0xcc;return function(_0x52e5e9){if(_0x52e5e9){return _0x2d3bb3[_0xcbcd('0x1b')](_0x51a811);}return _0x2d3bb3[_0xcbcd('0x1c')](_0x51a811)[_0xcbcd('0x1d')]();};}function respondWithResult(_0x5e0042,_0x512713){_0x512713=_0x512713||0xc8;return function(_0x44f26b){if(_0x44f26b){return _0x5e0042[_0xcbcd('0x1c')](_0x512713)[_0xcbcd('0x1e')](_0x44f26b);}};}function respondWithFilteredResult(_0x4f8ce2,_0x52e2c7){return function(_0x43f677){if(_0x43f677){var _0x32090f=typeof _0x52e2c7[_0xcbcd('0x1f')]==='undefined'&&typeof _0x52e2c7[_0xcbcd('0x20')]===_0xcbcd('0x21');var _0x3576cc=_0x43f677['count'];var _0x33320b=_0x32090f?0x0:_0x52e2c7['offset'];var _0x211958=_0x32090f?_0x43f677[_0xcbcd('0x22')]:_0x52e2c7[_0xcbcd('0x1f')]+_0x52e2c7[_0xcbcd('0x20')];var _0x32c193;if(_0x211958>=_0x3576cc){_0x211958=_0x3576cc;_0x32c193=0xc8;}else{_0x32c193=0xce;}_0x4f8ce2[_0xcbcd('0x1c')](_0x32c193);return _0x4f8ce2[_0xcbcd('0x23')](_0xcbcd('0x24'),_0x33320b+'-'+_0x211958+'/'+_0x3576cc)['json'](_0x43f677);}return null;};}function patchUpdates(_0x47fec8){return function(_0x57f610){try{jsonpatch['apply'](_0x57f610,_0x47fec8,!![]);}catch(_0x13fe04){return BPromise[_0xcbcd('0x25')](_0x13fe04);}return _0x57f610[_0xcbcd('0x26')]();};}function saveUpdates(_0x666779,_0x372454){return function(_0x3e398d){if(_0x3e398d){return _0x3e398d['update'](_0x666779)[_0xcbcd('0x27')](function(_0x2a6519){return _0x2a6519;});}return null;};}function removeEntity(_0x335aff,_0x41bb62){return function(_0x5a60da){if(_0x5a60da){return _0x5a60da['destroy']()[_0xcbcd('0x27')](function(){_0x335aff[_0xcbcd('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4ff41c,_0x124178){return function(_0x39c205){if(!_0x39c205){_0x4ff41c[_0xcbcd('0x1b')](0x194);}return _0x39c205;};}function handleError(_0x563d67,_0x4fae83){_0x4fae83=_0x4fae83||0x1f4;return function(_0x1a19c2){logger[_0xcbcd('0x28')](_0x1a19c2[_0xcbcd('0x29')]);if(_0x1a19c2[_0xcbcd('0x2a')]){delete _0x1a19c2[_0xcbcd('0x2a')];}_0x563d67[_0xcbcd('0x1c')](_0x4fae83)['send'](_0x1a19c2);};}exports[_0xcbcd('0x2b')]=function(_0x166c50,_0x2a8730){var _0x14efa4={},_0x5c2ee7={},_0x3c2673={'count':0x0,'rows':[]};var _0x62e0d1=_['map'](db[_0xcbcd('0x2c')][_0xcbcd('0x2d')],function(_0x5a930e){return{'name':_0x5a930e[_0xcbcd('0x2e')],'type':_0x5a930e[_0xcbcd('0x2f')][_0xcbcd('0x30')]};});_0x5c2ee7[_0xcbcd('0x31')]=_[_0xcbcd('0x32')](_0x62e0d1,_0xcbcd('0x2a'));_0x5c2ee7[_0xcbcd('0x33')]=_[_0xcbcd('0x34')](_0x166c50[_0xcbcd('0x33')]);_0x5c2ee7[_0xcbcd('0x35')]=_[_0xcbcd('0x36')](_0x5c2ee7[_0xcbcd('0x31')],_0x5c2ee7[_0xcbcd('0x33')]);_0x14efa4[_0xcbcd('0x37')]=_[_0xcbcd('0x36')](_0x5c2ee7[_0xcbcd('0x31')],qs[_0xcbcd('0x38')](_0x166c50['query'][_0xcbcd('0x38')]));_0x14efa4[_0xcbcd('0x37')]=_0x14efa4[_0xcbcd('0x37')]['length']?_0x14efa4[_0xcbcd('0x37')]:_0x5c2ee7[_0xcbcd('0x31')];if(!_0x166c50[_0xcbcd('0x33')]['hasOwnProperty']('nolimit')){_0x14efa4[_0xcbcd('0x20')]=qs[_0xcbcd('0x20')](_0x166c50[_0xcbcd('0x33')]['limit']);_0x14efa4[_0xcbcd('0x1f')]=qs[_0xcbcd('0x1f')](_0x166c50[_0xcbcd('0x33')]['offset']);}_0x14efa4[_0xcbcd('0x39')]=qs[_0xcbcd('0x3a')](_0x166c50['query'][_0xcbcd('0x3a')]);_0x14efa4[_0xcbcd('0x3b')]=qs[_0xcbcd('0x35')](_[_0xcbcd('0x3c')](_0x166c50[_0xcbcd('0x33')],_0x5c2ee7[_0xcbcd('0x35')]),_0x62e0d1);if(_0x166c50[_0xcbcd('0x33')]['filter']){_0x14efa4[_0xcbcd('0x3b')]=_[_0xcbcd('0x3d')](_0x14efa4[_0xcbcd('0x3b')],{'$or':_[_0xcbcd('0x32')](_0x62e0d1,function(_0x46e4b1){if(_0x46e4b1[_0xcbcd('0x2f')]!==_0xcbcd('0x3e')){var _0x3e2fe4={};_0x3e2fe4[_0x46e4b1[_0xcbcd('0x2a')]]={'$like':'%'+_0x166c50[_0xcbcd('0x33')][_0xcbcd('0x3f')]+'%'};return _0x3e2fe4;}})});}_0x14efa4=_[_0xcbcd('0x3d')]({},_0x14efa4,_0x166c50[_0xcbcd('0x40')]);var _0x4c4c1e={'where':_0x14efa4[_0xcbcd('0x3b')]};return db[_0xcbcd('0x2c')][_0xcbcd('0x22')](_0x4c4c1e)[_0xcbcd('0x27')](function(_0x1a0fb5){_0x3c2673[_0xcbcd('0x22')]=_0x1a0fb5;if(_0x166c50[_0xcbcd('0x33')][_0xcbcd('0x41')]){_0x14efa4[_0xcbcd('0x42')]=[{'all':!![]}];}return db['OpenchannelApplication']['findAll'](_0x14efa4);})[_0xcbcd('0x27')](function(_0x557d79){_0x3c2673[_0xcbcd('0x43')]=_0x557d79;return _0x3c2673;})[_0xcbcd('0x27')](respondWithFilteredResult(_0x2a8730,_0x14efa4))['catch'](handleError(_0x2a8730,null));};exports[_0xcbcd('0x44')]=function(_0x55f42c,_0x5eb903){var _0x5ea1ad={'raw':!![],'where':{'id':_0x55f42c[_0xcbcd('0x45')]['id']}},_0x1b526d={};_0x1b526d[_0xcbcd('0x31')]=_[_0xcbcd('0x34')](db[_0xcbcd('0x2c')]['rawAttributes']);_0x1b526d[_0xcbcd('0x33')]=_[_0xcbcd('0x34')](_0x55f42c[_0xcbcd('0x33')]);_0x1b526d[_0xcbcd('0x35')]=_['intersection'](_0x1b526d[_0xcbcd('0x31')],_0x1b526d[_0xcbcd('0x33')]);_0x5ea1ad[_0xcbcd('0x37')]=_[_0xcbcd('0x36')](_0x1b526d[_0xcbcd('0x31')],qs[_0xcbcd('0x38')](_0x55f42c[_0xcbcd('0x33')][_0xcbcd('0x38')]));_0x5ea1ad[_0xcbcd('0x37')]=_0x5ea1ad[_0xcbcd('0x37')][_0xcbcd('0x46')]?_0x5ea1ad[_0xcbcd('0x37')]:_0x1b526d[_0xcbcd('0x31')];if(_0x55f42c[_0xcbcd('0x33')][_0xcbcd('0x41')]){_0x5ea1ad['include']=[{'all':!![]}];}_0x5ea1ad=_[_0xcbcd('0x3d')]({},_0x5ea1ad,_0x55f42c[_0xcbcd('0x40')]);return db[_0xcbcd('0x2c')][_0xcbcd('0x47')](_0x5ea1ad)['then'](handleEntityNotFound(_0x5eb903,null))[_0xcbcd('0x27')](respondWithResult(_0x5eb903,null))[_0xcbcd('0x48')](handleError(_0x5eb903,null));};exports[_0xcbcd('0x49')]=function(_0x25aebb,_0x1d9a5a){return db[_0xcbcd('0x2c')]['create'](_0x25aebb[_0xcbcd('0x4a')],{})[_0xcbcd('0x27')](respondWithResult(_0x1d9a5a,0xc9))[_0xcbcd('0x48')](handleError(_0x1d9a5a,null));};exports[_0xcbcd('0x4b')]=function(_0x18dc16,_0x2eb1a5){if(_0x18dc16[_0xcbcd('0x4a')]['id']){delete _0x18dc16[_0xcbcd('0x4a')]['id'];}return db[_0xcbcd('0x2c')][_0xcbcd('0x47')]({'where':{'id':_0x18dc16[_0xcbcd('0x45')]['id']}})[_0xcbcd('0x27')](handleEntityNotFound(_0x2eb1a5,null))[_0xcbcd('0x27')](saveUpdates(_0x18dc16[_0xcbcd('0x4a')],null))[_0xcbcd('0x27')](respondWithResult(_0x2eb1a5,null))[_0xcbcd('0x48')](handleError(_0x2eb1a5,null));};exports[_0xcbcd('0x4c')]=function(_0x32f86c,_0x2e501e){return db[_0xcbcd('0x2c')]['find']({'where':{'id':_0x32f86c[_0xcbcd('0x45')]['id']}})[_0xcbcd('0x27')](handleEntityNotFound(_0x2e501e,null))[_0xcbcd('0x27')](removeEntity(_0x2e501e,null))[_0xcbcd('0x48')](handleError(_0x2e501e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdac2=['exports','OpenchannelApplication','openchannel_applications','utf8mb4','utf8mb4_unicode_ci','lodash','util','api','moment','bluebird','request-promise','path','../../config/environment','./openchannelApplication.attributes'];(function(_0x553f97,_0x1998ed){var _0x293e23=function(_0x39b4f0){while(--_0x39b4f0){_0x553f97['push'](_0x553f97['shift']());}};_0x293e23(++_0x1998ed);}(_0xdac2,0x12b));var _0x2dac=function(_0x2dea58,_0x59d6f0){_0x2dea58=_0x2dea58-0x0;var _0x2b23c2=_0xdac2[_0x2dea58];return _0x2b23c2;};'use strict';var _=require(_0x2dac('0x0'));var util=require(_0x2dac('0x1'));var logger=require('../../config/logger')(_0x2dac('0x2'));var moment=require(_0x2dac('0x3'));var BPromise=require(_0x2dac('0x4'));var rp=require(_0x2dac('0x5'));var fs=require('fs');var path=require(_0x2dac('0x6'));var rimraf=require('rimraf');var config=require(_0x2dac('0x7'));var attributes=require(_0x2dac('0x8'));module[_0x2dac('0x9')]=function(_0x1f0efe,_0x49910c){return _0x1f0efe['define'](_0x2dac('0xa'),attributes,{'tableName':_0x2dac('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x2dac('0xc'),'collate':_0x2dac('0xd')});};
\ No newline at end of file
+var _0xfbec=['api','bluebird','request-promise','path','rimraf','../../config/environment','exports','OpenchannelApplication','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger'];(function(_0x49298a,_0x3a9b0f){var _0x31691e=function(_0x2e919e){while(--_0x2e919e){_0x49298a['push'](_0x49298a['shift']());}};_0x31691e(++_0x3a9b0f);}(_0xfbec,0xfa));var _0xcfbe=function(_0x201a3b,_0x396993){_0x201a3b=_0x201a3b-0x0;var _0x44a77a=_0xfbec[_0x201a3b];return _0x44a77a;};'use strict';var _=require(_0xcfbe('0x0'));var util=require('util');var logger=require(_0xcfbe('0x1'))(_0xcfbe('0x2'));var moment=require('moment');var BPromise=require(_0xcfbe('0x3'));var rp=require(_0xcfbe('0x4'));var fs=require('fs');var path=require(_0xcfbe('0x5'));var rimraf=require(_0xcfbe('0x6'));var config=require(_0xcfbe('0x7'));var attributes=require('./openchannelApplication.attributes');module[_0xcfbe('0x8')]=function(_0x755566,_0x3b7392){return _0x755566['define'](_0xcfbe('0x9'),attributes,{'tableName':'openchannel_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xcfbe('0xa'),'collate':_0xcfbe('0xb')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x08fc=['rpc','../../config/environment','jayson/promise','client','http','request','then','OpenchannelApplication,\x20%s,\x20%s','debug','OpenchannelApplication,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','UpdateOpenchannelApplication','OpenchannelApplication','body','options','where','attributes','limit','lodash','util','moment','../../mysqldb','../../config/logger'];(function(_0x36f6b5,_0x2b74f8){var _0x3eedab=function(_0x53519c){while(--_0x53519c){_0x36f6b5['push'](_0x36f6b5['shift']());}};_0x3eedab(++_0x2b74f8);}(_0x08fc,0x1bd));var _0xc08f=function(_0x57fa33,_0x2b8222){_0x57fa33=_0x57fa33-0x0;var _0x12e724=_0x08fc[_0x57fa33];return _0x12e724;};'use strict';var _=require(_0xc08f('0x0'));var util=require(_0xc08f('0x1'));var moment=require(_0xc08f('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc08f('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xc08f('0x4'))(_0xc08f('0x5'));var config=require(_0xc08f('0x6'));var jayson=require(_0xc08f('0x7'));var client=jayson[_0xc08f('0x8')][_0xc08f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5e3ca8,_0x1be340,_0x409f51){return new BPromise(function(_0x5a1429,_0x2ea173){return client[_0xc08f('0xa')](_0x5e3ca8,_0x409f51)[_0xc08f('0xb')](function(_0x43df70){logger['info'](_0xc08f('0xc'),_0x1be340,'request\x20sent');logger[_0xc08f('0xd')](_0xc08f('0xe'),_0x1be340,_0xc08f('0xf'),JSON[_0xc08f('0x10')](_0x43df70));if(_0x43df70[_0xc08f('0x11')]){if(_0x43df70['error'][_0xc08f('0x12')]===0x1f4){logger[_0xc08f('0x11')]('OpenchannelApplication,\x20%s,\x20%s',_0x1be340,_0x43df70[_0xc08f('0x11')][_0xc08f('0x13')]);return _0x2ea173(_0x43df70[_0xc08f('0x11')]['message']);}logger[_0xc08f('0x11')](_0xc08f('0xc'),_0x1be340,_0x43df70[_0xc08f('0x11')][_0xc08f('0x13')]);return _0x5a1429(_0x43df70[_0xc08f('0x11')][_0xc08f('0x13')]);}else{logger[_0xc08f('0x14')](_0xc08f('0xc'),_0x1be340,_0xc08f('0xf'));_0x5a1429(_0x43df70[_0xc08f('0x15')]['message']);}})[_0xc08f('0x16')](function(_0x215346){logger[_0xc08f('0x11')](_0xc08f('0xc'),_0x1be340,_0x215346);_0x2ea173(_0x215346);});});}exports[_0xc08f('0x17')]=function(_0x56f11c){var _0x3fb574=this;return new Promise(function(_0x7dc897,_0x598ecc){return db[_0xc08f('0x18')]['update'](_0x56f11c[_0xc08f('0x19')],{'raw':_0x56f11c[_0xc08f('0x1a')]?_0x56f11c[_0xc08f('0x1a')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x56f11c[_0xc08f('0x1a')]?_0x56f11c[_0xc08f('0x1a')][_0xc08f('0x1b')]||null:null,'attributes':_0x56f11c[_0xc08f('0x1a')]?_0x56f11c[_0xc08f('0x1a')][_0xc08f('0x1c')]||null:null,'limit':_0x56f11c[_0xc08f('0x1a')]?_0x56f11c[_0xc08f('0x1a')][_0xc08f('0x1d')]||null:null})['then'](function(_0x3f3722){logger[_0xc08f('0x14')](_0xc08f('0x17'),_0x56f11c);logger['debug'](_0xc08f('0x17'),_0x56f11c,JSON['stringify'](_0x3f3722));_0x7dc897(_0x3f3722);})[_0xc08f('0x16')](function(_0x42a146){logger['error'](_0xc08f('0x17'),_0x42a146[_0xc08f('0x13')],_0x56f11c);_0x598ecc(_0x3fb574[_0xc08f('0x11')](0x1f4,_0x42a146[_0xc08f('0x13')]));});});};
\ No newline at end of file
+var _0x6a1f=['debug','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','http','request','then','info','OpenchannelApplication,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','OpenchannelApplication,\x20%s,\x20%s','message','result','catch','UpdateOpenchannelApplication','update','body','options','where','attributes','limit'];(function(_0x5c6c64,_0x12d4cb){var _0x172174=function(_0x3f49c3){while(--_0x3f49c3){_0x5c6c64['push'](_0x5c6c64['shift']());}};_0x172174(++_0x12d4cb);}(_0x6a1f,0x79));var _0xf6a1=function(_0x2b8111,_0x4e7a43){_0x2b8111=_0x2b8111-0x0;var _0xfa618a=_0x6a1f[_0x2b8111];return _0xfa618a;};'use strict';var _=require(_0xf6a1('0x0'));var util=require('util');var moment=require(_0xf6a1('0x1'));var BPromise=require(_0xf6a1('0x2'));var rs=require(_0xf6a1('0x3'));var fs=require('fs');var Redis=require(_0xf6a1('0x4'));var db=require(_0xf6a1('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xf6a1('0x6'))(_0xf6a1('0x7'));var config=require(_0xf6a1('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xf6a1('0x9')][_0xf6a1('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x58cf9a,_0x507695,_0x24cb36){return new BPromise(function(_0x3e13ae,_0x2247ba){return client[_0xf6a1('0xb')](_0x58cf9a,_0x24cb36)[_0xf6a1('0xc')](function(_0x3dbb9f){logger[_0xf6a1('0xd')]('OpenchannelApplication,\x20%s,\x20%s',_0x507695,'request\x20sent');logger['debug'](_0xf6a1('0xe'),_0x507695,_0xf6a1('0xf'),JSON[_0xf6a1('0x10')](_0x3dbb9f));if(_0x3dbb9f[_0xf6a1('0x11')]){if(_0x3dbb9f['error']['code']===0x1f4){logger[_0xf6a1('0x11')](_0xf6a1('0x12'),_0x507695,_0x3dbb9f['error']['message']);return _0x2247ba(_0x3dbb9f[_0xf6a1('0x11')]['message']);}logger[_0xf6a1('0x11')](_0xf6a1('0x12'),_0x507695,_0x3dbb9f[_0xf6a1('0x11')][_0xf6a1('0x13')]);return _0x3e13ae(_0x3dbb9f[_0xf6a1('0x11')][_0xf6a1('0x13')]);}else{logger[_0xf6a1('0xd')]('OpenchannelApplication,\x20%s,\x20%s',_0x507695,'request\x20sent');_0x3e13ae(_0x3dbb9f[_0xf6a1('0x14')][_0xf6a1('0x13')]);}})[_0xf6a1('0x15')](function(_0x3dd5c6){logger['error'](_0xf6a1('0x12'),_0x507695,_0x3dd5c6);_0x2247ba(_0x3dd5c6);});});}exports[_0xf6a1('0x16')]=function(_0x52650d){var _0x20270b=this;return new Promise(function(_0x501520,_0x3fb858){return db['OpenchannelApplication'][_0xf6a1('0x17')](_0x52650d[_0xf6a1('0x18')],{'raw':_0x52650d['options']?_0x52650d[_0xf6a1('0x19')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x52650d[_0xf6a1('0x19')]?_0x52650d['options'][_0xf6a1('0x1a')]||null:null,'attributes':_0x52650d[_0xf6a1('0x19')]?_0x52650d[_0xf6a1('0x19')][_0xf6a1('0x1b')]||null:null,'limit':_0x52650d['options']?_0x52650d[_0xf6a1('0x19')][_0xf6a1('0x1c')]||null:null})[_0xf6a1('0xc')](function(_0x230c60){logger[_0xf6a1('0xd')](_0xf6a1('0x16'),_0x52650d);logger[_0xf6a1('0x1d')](_0xf6a1('0x16'),_0x52650d,JSON[_0xf6a1('0x10')](_0x230c60));_0x501520(_0x230c60);})[_0xf6a1('0x15')](function(_0x3d243e){logger[_0xf6a1('0x11')](_0xf6a1('0x16'),_0x3d243e[_0xf6a1('0x13')],_0x52650d);_0x3fb858(_0x20270b[_0xf6a1('0x11')](0x1f4,_0x3d243e[_0xf6a1('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b6c=['delete','tracked','openchannelinteraction:destroy','destroy','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelInteraction.controller','get','isAuthenticated','index','/describe','/:id','show','getMessages','/:id/download','download','post','create','/:id/messages','/:id/tags','openchannelinteraction:addtags','addTags','put','openchannel','openchannelinteraction:update','update'];(function(_0x498590,_0x116307){var _0x8db970=function(_0x56f7db){while(--_0x56f7db){_0x498590['push'](_0x498590['shift']());}};_0x8db970(++_0x116307);}(_0x4b6c,0x170));var _0xc4b6=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4b6c[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require(_0xc4b6('0x0'));var path=require(_0xc4b6('0x1'));var timeout=require(_0xc4b6('0x2'));var express=require('express');var router=express[_0xc4b6('0x3')]();var fs_extra=require(_0xc4b6('0x4'));var auth=require(_0xc4b6('0x5'));var interaction=require(_0xc4b6('0x6'));var config=require(_0xc4b6('0x7'));var controller=require(_0xc4b6('0x8'));router[_0xc4b6('0x9')]('/',auth[_0xc4b6('0xa')](),controller[_0xc4b6('0xb')]);router[_0xc4b6('0x9')](_0xc4b6('0xc'),auth[_0xc4b6('0xa')](),controller['describe']);router[_0xc4b6('0x9')](_0xc4b6('0xd'),auth['isAuthenticated'](),controller[_0xc4b6('0xe')]);router[_0xc4b6('0x9')]('/:id/messages',auth[_0xc4b6('0xa')](),controller[_0xc4b6('0xf')]);router[_0xc4b6('0x9')](_0xc4b6('0x10'),auth[_0xc4b6('0xa')](),controller[_0xc4b6('0x11')]);router[_0xc4b6('0x12')]('/',auth[_0xc4b6('0xa')](),controller[_0xc4b6('0x13')]);router[_0xc4b6('0x12')](_0xc4b6('0x14'),auth[_0xc4b6('0xa')](),controller['addMessage']);router[_0xc4b6('0x12')](_0xc4b6('0x15'),auth[_0xc4b6('0xa')](),interaction['tracked']('openchannel',_0xc4b6('0x16')),controller[_0xc4b6('0x17')]);router[_0xc4b6('0x18')](_0xc4b6('0xd'),auth['isAuthenticated'](),interaction['tracked'](_0xc4b6('0x19'),_0xc4b6('0x1a')),controller[_0xc4b6('0x1b')]);router[_0xc4b6('0x1c')](_0xc4b6('0xd'),auth['isAuthenticated'](),interaction[_0xc4b6('0x1d')](_0xc4b6('0x19'),_0xc4b6('0x1e')),controller[_0xc4b6('0x1f')]);router[_0xc4b6('0x1c')](_0xc4b6('0x15'),auth[_0xc4b6('0xa')](),controller['removeTags']);module[_0xc4b6('0x20')]=router;
\ No newline at end of file
+var _0xf62c=['get','isAuthenticated','index','describe','/:id','show','getMessages','/:id/download','download','post','/:id/tags','openchannelinteraction:addtags','addTags','put','tracked','openchannel','openchannelinteraction:update','update','delete','openchannelinteraction:destroy','destroy','removeTags','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x2aac0d,_0x4069ed){var _0x31807b=function(_0x2c997b){while(--_0x2c997b){_0x2aac0d['push'](_0x2aac0d['shift']());}};_0x31807b(++_0x4069ed);}(_0xf62c,0x92));var _0xcf62=function(_0x3be988,_0x5e92d8){_0x3be988=_0x3be988-0x0;var _0x4d194a=_0xf62c[_0x3be988];return _0x4d194a;};'use strict';var multer=require(_0xcf62('0x0'));var util=require('util');var path=require(_0xcf62('0x1'));var timeout=require(_0xcf62('0x2'));var express=require(_0xcf62('0x3'));var router=express[_0xcf62('0x4')]();var fs_extra=require(_0xcf62('0x5'));var auth=require(_0xcf62('0x6'));var interaction=require(_0xcf62('0x7'));var config=require(_0xcf62('0x8'));var controller=require('./openchannelInteraction.controller');router[_0xcf62('0x9')]('/',auth[_0xcf62('0xa')](),controller[_0xcf62('0xb')]);router[_0xcf62('0x9')]('/describe',auth[_0xcf62('0xa')](),controller[_0xcf62('0xc')]);router[_0xcf62('0x9')](_0xcf62('0xd'),auth[_0xcf62('0xa')](),controller[_0xcf62('0xe')]);router[_0xcf62('0x9')]('/:id/messages',auth[_0xcf62('0xa')](),controller[_0xcf62('0xf')]);router['get'](_0xcf62('0x10'),auth[_0xcf62('0xa')](),controller[_0xcf62('0x11')]);router[_0xcf62('0x12')]('/',auth[_0xcf62('0xa')](),controller['create']);router[_0xcf62('0x12')]('/:id/messages',auth[_0xcf62('0xa')](),controller['addMessage']);router[_0xcf62('0x12')](_0xcf62('0x13'),auth[_0xcf62('0xa')](),interaction['tracked']('openchannel',_0xcf62('0x14')),controller[_0xcf62('0x15')]);router[_0xcf62('0x16')]('/:id',auth[_0xcf62('0xa')](),interaction[_0xcf62('0x17')](_0xcf62('0x18'),_0xcf62('0x19')),controller[_0xcf62('0x1a')]);router[_0xcf62('0x1b')]('/:id',auth[_0xcf62('0xa')](),interaction[_0xcf62('0x17')](_0xcf62('0x18'),_0xcf62('0x1c')),controller[_0xcf62('0x1d')]);router[_0xcf62('0x1b')](_0xcf62('0x13'),auth[_0xcf62('0xa')](),controller[_0xcf62('0x1e')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3051=['ENUM','out','BOOLEAN','DATE','STRING'];(function(_0x48f750,_0xb29cf7){var _0x541680=function(_0x1f7bfe){while(--_0x1f7bfe){_0x48f750['push'](_0x48f750['shift']());}};_0x541680(++_0xb29cf7);}(_0x3051,0x85));var _0x1305=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x3051[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require('sequelize');module['exports']={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x1305('0x0')]},'disposition':{'type':Sequelize[_0x1305('0x1')]},'secondDisposition':{'type':Sequelize[_0x1305('0x1')]},'thirdDisposition':{'type':Sequelize[_0x1305('0x1')]},'note':{'type':Sequelize[_0x1305('0x1')]},'read1stAt':{'type':Sequelize['DATE']},'threadId':{'type':Sequelize[_0x1305('0x1')]},'externalUrl':{'type':Sequelize[_0x1305('0x1')]},'lastMsgAt':{'type':Sequelize[_0x1305('0x0')]},'lastMsgDirection':{'type':Sequelize[_0x1305('0x2')]('in',_0x1305('0x3')),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize[_0x1305('0x1')]},'autoreplyExecuted':{'type':Sequelize[_0x1305('0x4')],'defaultValue':![]}};
\ No newline at end of file
+var _0x8e94=['DATE','STRING','ENUM','sequelize','exports'];(function(_0x87239,_0x38c793){var _0x53af1e=function(_0x11eb5f){while(--_0x11eb5f){_0x87239['push'](_0x87239['shift']());}};_0x53af1e(++_0x38c793);}(_0x8e94,0xf8));var _0x48e9=function(_0x9a29ea,_0x5b8b29){_0x9a29ea=_0x9a29ea-0x0;var _0x11f261=_0x8e94[_0x9a29ea];return _0x11f261;};'use strict';var Sequelize=require(_0x48e9('0x0'));module[_0x48e9('0x1')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x48e9('0x2')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0x48e9('0x3')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x48e9('0x3')]},'read1stAt':{'type':Sequelize['DATE']},'threadId':{'type':Sequelize['STRING']},'externalUrl':{'type':Sequelize['STRING']},'lastMsgAt':{'type':Sequelize[_0x48e9('0x2')]},'lastMsgDirection':{'type':Sequelize[_0x48e9('0x4')]('in','out'),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize[_0x48e9('0x3')]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8bd7=['openchannel_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','a.id\x20=\x20i.OpenchannelAccountId','openchannel_messages','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','parseSearch','search','sqlOperator','conditions','find','unreadMessages','value','having','`\x20=\x200','Contact','operator','$substring','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','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','compact','OpenchannelAccountId','i.OpenchannelAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','tag','filter','replace','isNumeric','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','i.from\x20LIKE\x20?','Sequelize','QueryTypes','SELECT','clone','i.id','contactName','isEmpty','t.id\x20IN\x20?','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','agent','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','role','sequelize','toString','keyBy','merge','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','Contact.mobile','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.OpenchannelInteractionId\x20IN\x20?','groupBy','OpenchannelInteractionId','all','rows','show','includeAll','include','options','create','params','describe','addMessage','getMessages','OpenchannelMessage','nolimit','YYYY-MM-DD\x20HH:mm:ss','findAll','setTags','ids','omit','spread','emit','openchannelInteractionTags:save','removeTags','download','unix','root','server','files','join','attachments','format','transcript-%d-%s.zip','fullname','Attachment','direction','OpenchannelAccount','Owner','get','Openchannel','Account','N.A.','closed','closedAt','disposition','threadId','Public','Private','Messages','existsSync','createReadStream','pipe','createWriteStream','basename','out','System','firstName','lastName','secret','renderFile','views','downloadInteraction.ejs','transcript-','createPdfFromHTML','err','unlinkSync','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelInteraction.socket','register','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','send','Users','map','TagIds','split','forEach','push','catch','OpenchannelInteraction','rawAttributes','fieldName','type','name','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','filters','field','color','from','tools_tags','select','u.id','u.fullname','ui.OpenchannelInteractionId','user_has_openchannel_interactions','left_join','users','u.id\x20=\x20ui.UserId'];(function(_0x368cfb,_0x571855){var _0x27e714=function(_0x142d64){while(--_0x142d64){_0x368cfb['push'](_0x368cfb['shift']());}};_0x27e714(++_0x571855);}(_0x8bd7,0xa0));var _0x78bd=function(_0x5aefe1,_0x5716d5){_0x5aefe1=_0x5aefe1-0x0;var _0x1ca5c1=_0x8bd7[_0x5aefe1];return _0x1ca5c1;};'use strict';var emlformat=require(_0x78bd('0x0'));var rimraf=require(_0x78bd('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x78bd('0x2'));var rp=require(_0x78bd('0x3'));var moment=require(_0x78bd('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x78bd('0x5'));var util=require(_0x78bd('0x6'));var path=require(_0x78bd('0x7'));var sox=require('sox');var csv=require(_0x78bd('0x8'));var ejs=require(_0x78bd('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x78bd('0xa'));var squel=require('squel');var crypto=require(_0x78bd('0xb'));var jsforce=require(_0x78bd('0xc'));var deskjs=require(_0x78bd('0xd'));var toCsv=require(_0x78bd('0x8'));var querystring=require(_0x78bd('0xe'));var Papa=require('papaparse');var Redis=require(_0x78bd('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x78bd('0x10'));var pdf=require(_0x78bd('0x11'));var hardwareService=require(_0x78bd('0x12'));var logger=require('../../config/logger')(_0x78bd('0x13'));var utils=require('../../config/utils');var config=require(_0x78bd('0x14'));var licenseUtil=require(_0x78bd('0x15'));var db=require(_0x78bd('0x16'))['db'];config[_0x78bd('0x17')]=_['defaults'](config['redis'],{'host':_0x78bd('0x18'),'port':0x18eb});var socket=require(_0x78bd('0x19'))(new Redis(config['redis']));require(_0x78bd('0x1a'))[_0x78bd('0x1b')](socket);function respondWithStatusCode(_0x2f2edf,_0x2a54c3){_0x2a54c3=_0x2a54c3||0xcc;return function(_0x41ecb5){if(_0x41ecb5){return _0x2f2edf[_0x78bd('0x1c')](_0x2a54c3);}return _0x2f2edf[_0x78bd('0x1d')](_0x2a54c3)[_0x78bd('0x1e')]();};}function respondWithResult(_0x1e19c5,_0x4a021b){_0x4a021b=_0x4a021b||0xc8;return function(_0x10a1fe){if(_0x10a1fe){return _0x1e19c5[_0x78bd('0x1d')](_0x4a021b)[_0x78bd('0x1f')](_0x10a1fe);}};}function respondWithFilteredResult(_0x355c4d,_0x573566){return function(_0x23064a){if(_0x23064a){var _0x22a3d6=typeof _0x573566[_0x78bd('0x20')]==='undefined'&&typeof _0x573566[_0x78bd('0x21')]===_0x78bd('0x22');var _0x3659ea=_0x23064a[_0x78bd('0x23')];var _0x16bc46=_0x22a3d6?0x0:_0x573566['offset'];var _0x163933=_0x22a3d6?_0x23064a[_0x78bd('0x23')]:_0x573566['offset']+_0x573566['limit'];var _0x327d04;if(_0x163933>=_0x3659ea){_0x163933=_0x3659ea;_0x327d04=0xc8;}else{_0x327d04=0xce;}_0x355c4d[_0x78bd('0x1d')](_0x327d04);return _0x355c4d[_0x78bd('0x24')](_0x78bd('0x25'),_0x16bc46+'-'+_0x163933+'/'+_0x3659ea)[_0x78bd('0x1f')](_0x23064a);}return null;};}function patchUpdates(_0x4b502b){return function(_0x469092){try{jsonpatch[_0x78bd('0x26')](_0x469092,_0x4b502b,!![]);}catch(_0xf6f332){return BPromise[_0x78bd('0x27')](_0xf6f332);}return _0x469092[_0x78bd('0x28')]();};}function saveUpdates(_0x40ea57,_0x215fca){return function(_0x43f574){if(_0x43f574){return _0x43f574[_0x78bd('0x29')](_0x40ea57)[_0x78bd('0x2a')](function(_0xb82f7){return _0xb82f7;});}return null;};}function removeEntity(_0x539cd1,_0x350abf){return function(_0x12fbf6){if(_0x12fbf6){return _0x12fbf6[_0x78bd('0x2b')]()[_0x78bd('0x2a')](function(){_0x539cd1[_0x78bd('0x1d')](0xcc)[_0x78bd('0x1e')]();});}};}function handleEntityNotFound(_0x1359e6,_0x26b38a){return function(_0x1d0146){if(!_0x1d0146){_0x1359e6[_0x78bd('0x1c')](0x194);}return _0x1d0146;};}function handleError(_0x423f0b,_0x22ae99){_0x22ae99=_0x22ae99||0x1f4;return function(_0x52242){logger['error'](_0x52242['stack']);if(_0x52242['name']){delete _0x52242['name'];}_0x423f0b[_0x78bd('0x1d')](_0x22ae99)[_0x78bd('0x2c')](_0x52242);};}function getInteractionUsers(_0x552002,_0x586579){return new BPromise(function(_0x454b8e,_0x43aa2e){try{if(_0x586579[_0x552002['id']]){_0x552002[_0x78bd('0x2d')]=_[_0x78bd('0x2e')](_0x586579[_0x552002['id']],function(_0x4037e0){return{'id':_0x4037e0['id'],'fullname':_0x4037e0['fullname']};});}}catch(_0x114d05){_0x43aa2e(_0x114d05);}_0x454b8e(_0x552002);});}function getInteractionTags(_0x53e83d,_0xf60dc3){return new BPromise(function(_0x1d83bb,_0x3675e6){try{if(_0x53e83d[_0x78bd('0x2f')]){_0x53e83d['Tags']=[];_0x53e83d[_0x78bd('0x2f')][_0x78bd('0x30')](',')[_0x78bd('0x31')](function(_0x3b0f82){_0x53e83d['Tags'][_0x78bd('0x32')](_0xf60dc3[_0x3b0f82]);});}delete _0x53e83d[_0x78bd('0x2f')];}catch(_0x1621e7){_0x3675e6(_0x1621e7);}_0x1d83bb(_0x53e83d);});}function updateOpenchannelInteraction(_0x1c6809,_0x1ba8e4,_0x4718a4){return new BPromise(function(_0x78274e,_0x473214){return getInteractionUsers(_0x1c6809,_0x4718a4)[_0x78bd('0x2a')](function(_0xb2ef17){return getInteractionTags(_0xb2ef17,_0x1ba8e4);})[_0x78bd('0x2a')](function(_0x5914fb){_0x78274e(_0x5914fb);})[_0x78bd('0x33')](function(_0x31897d){_0x473214(_0x31897d);});});}exports['index']=function(_0x2cbb64,_0x3d0e37){var _0x2f62b7={},_0x158aa1={},_0xe6246e={'count':0x0,'rows':[]};var _0x1410a2=_[_0x78bd('0x2e')](db[_0x78bd('0x34')][_0x78bd('0x35')],function(_0xe32e24){return{'name':_0xe32e24[_0x78bd('0x36')],'type':_0xe32e24[_0x78bd('0x37')]['key']};});_0x158aa1['model']=_['map'](_0x1410a2,_0x78bd('0x38'));_0x158aa1[_0x78bd('0x39')]=_[_0x78bd('0x3a')](_0x2cbb64[_0x78bd('0x39')]);_0x158aa1['filters']=_[_0x78bd('0x3b')](_0x158aa1[_0x78bd('0x3c')],_0x158aa1['query']);_0x2f62b7[_0x78bd('0x3d')]=_['intersection'](_0x158aa1['model'],qs['fields'](_0x2cbb64[_0x78bd('0x39')][_0x78bd('0x3e')]));_0x2f62b7[_0x78bd('0x3d')]=_0x2f62b7['attributes'][_0x78bd('0x3f')]?_0x2f62b7['attributes']:_0x158aa1[_0x78bd('0x3c')];if(!_0x2cbb64[_0x78bd('0x39')][_0x78bd('0x40')]('nolimit')){_0x2f62b7[_0x78bd('0x21')]=qs[_0x78bd('0x21')](_0x2cbb64[_0x78bd('0x39')][_0x78bd('0x21')]);_0x2f62b7[_0x78bd('0x20')]=qs['offset'](_0x2cbb64[_0x78bd('0x39')][_0x78bd('0x20')]);}_0x2f62b7[_0x78bd('0x41')]=qs[_0x78bd('0x42')](_0x2cbb64[_0x78bd('0x39')][_0x78bd('0x42')]);_0x2f62b7[_0x78bd('0x43')]=qs[_0x78bd('0x44')](_['pick'](_0x2cbb64['query'],_0x158aa1[_0x78bd('0x44')]),_0x1410a2);var _0x5b732a=[];var _0x1080f5=squel['select']()['field']('id')[_0x78bd('0x45')](_0x78bd('0x38'))[_0x78bd('0x45')](_0x78bd('0x46'))[_0x78bd('0x47')](_0x78bd('0x48'));var _0x558230=squel[_0x78bd('0x49')]()[_0x78bd('0x45')](_0x78bd('0x4a'))[_0x78bd('0x45')](_0x78bd('0x4b'))['field'](_0x78bd('0x4c'))[_0x78bd('0x47')](_0x78bd('0x4d'),'ui')[_0x78bd('0x4e')](_0x78bd('0x4f'),'u',_0x78bd('0x50'));var _0x12597a=squel[_0x78bd('0x49')]()[_0x78bd('0x47')](_0x78bd('0x51'),'i')[_0x78bd('0x4e')](_0x78bd('0x52'),'c',_0x78bd('0x53'))[_0x78bd('0x4e')](_0x78bd('0x4f'),'o',_0x78bd('0x54'))[_0x78bd('0x4e')]('openchannel_accounts','a',_0x78bd('0x55'))[_0x78bd('0x4e')](_0x78bd('0x56'),'me',_0x78bd('0x57'))[_0x78bd('0x4e')](_0x78bd('0x58'),'it',_0x78bd('0x59'))[_0x78bd('0x4e')]('tools_tags','t',_0x78bd('0x5a'));var _0x242ba9=squel[_0x78bd('0x5b')]();var _0x51aaff=[];var _0x3c0729=squel['expr']();var _0x17a8dc;if(_0x2cbb64[_0x78bd('0x39')]['search']){_0x17a8dc=as[_0x78bd('0x5c')](_0x2cbb64['query'][_0x78bd('0x5d')]);var _0x1de70f=_0x17a8dc[_0x78bd('0x5e')];for(var _0x5ac4a8=0x0;_0x5ac4a8<_0x17a8dc[_0x78bd('0x5f')][_0x78bd('0x3f')];_0x5ac4a8++){var _0x6d2ff0=_0x17a8dc['conditions'][_0x5ac4a8];var _0x5cdd88='i';var _0x2f6374=_[_0x78bd('0x60')](_0x1410a2,['name',_0x6d2ff0['field']]);if(!_0x2f6374){switch(_0x6d2ff0[_0x78bd('0x45')]){case _0x78bd('0x61'):if(_0x6d2ff0[_0x78bd('0x62')]==0x1){_0x12597a[_0x78bd('0x63')]('`'+_0x6d2ff0[_0x78bd('0x45')]+_0x78bd('0x64'));}else{_0x12597a[_0x78bd('0x63')]('`'+_0x6d2ff0['field']+'`\x20>\x200');}break;case _0x78bd('0x65'):if(_0x6d2ff0[_0x78bd('0x66')]===_0x78bd('0x67')){if(_0x6d2ff0[_0x78bd('0x62')]['split']('\x20')['length']>0x1){_0x242ba9[_0x1de70f]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x78bd('0x68')](_0x6d2ff0[_0x78bd('0x62')]),null);}else{var _0x3c2ebd='%'+_0x6d2ff0[_0x78bd('0x62')]+'%';_0x242ba9[_0x1de70f](_0x78bd('0x69'),_0x3c2ebd,_0x3c2ebd,_0x3c2ebd);}}else{_0x2f6374=_['find'](_0x1410a2,[_0x78bd('0x38'),_0x78bd('0x6a')]);_0x6d2ff0[_0x78bd('0x45')]=_0x78bd('0x6a');_0x29cb0f=as[_0x78bd('0x6b')](_0x5cdd88,_0x2f6374[_0x78bd('0x37')],_0x6d2ff0);_0x242ba9[_0x1de70f](_0x29cb0f[_0x78bd('0x6c')],_0x29cb0f[_0x78bd('0x62')][_0x78bd('0x6d')],_0x29cb0f[_0x78bd('0x62')][_0x78bd('0x1e')]);}break;case _0x78bd('0x6e'):var _0x448dcf=_0x6d2ff0['value'][_0x78bd('0x30')](',')[_0x78bd('0x2e')](function(_0x3395d3){return Number(_0x3395d3);});_0x448dcf['forEach'](function(_0x359816){_0x3c0729['or'](_0x78bd('0x6f'),'%,'+_0x359816+',%');});_0x51aaff=_[_0x78bd('0x70')](_0x51aaff,_0x448dcf);break;case _0x78bd('0x71'):if(_0x6d2ff0[_0x78bd('0x66')]===_0x78bd('0x67')){_0x242ba9[_0x1de70f](_0x78bd('0x72'),'%'+_0x6d2ff0[_0x78bd('0x62')]+'%',null);}else{_0x2f6374=_['find'](_0x1410a2,[_0x78bd('0x38'),_0x78bd('0x73')]);_0x6d2ff0['field']=_0x78bd('0x73');_0x29cb0f=as[_0x78bd('0x6b')](_0x5cdd88,_0x2f6374[_0x78bd('0x37')],_0x6d2ff0);_0x242ba9[_0x1de70f](_0x29cb0f[_0x78bd('0x6c')],_0x29cb0f[_0x78bd('0x62')]['start'],_0x29cb0f[_0x78bd('0x62')][_0x78bd('0x1e')]);}break;case _0x78bd('0x74'):_0x29cb0f=as[_0x78bd('0x6b')]('me',null,_0x6d2ff0);_0x242ba9[_0x1de70f](_0x29cb0f[_0x78bd('0x6c')],_0x29cb0f['value'][_0x78bd('0x6d')],_0x29cb0f[_0x78bd('0x62')][_0x78bd('0x1e')]);break;}}else{var _0x29cb0f=as[_0x78bd('0x6b')](_0x5cdd88,_0x2f6374[_0x78bd('0x37')],_0x6d2ff0);_0x242ba9[_0x1de70f](_0x29cb0f[_0x78bd('0x6c')],_0x29cb0f[_0x78bd('0x62')]['start'],_0x29cb0f['value'][_0x78bd('0x1e')]);}}}else{var _0x3b3368=_(_0x2cbb64[_0x78bd('0x39')])[_0x78bd('0x3a')]()[_0x78bd('0x2e')](function(_0x2117f8){return _['some'](_0x1410a2,[_0x78bd('0x38'),_0x2117f8])?_0x2117f8:undefined;})[_0x78bd('0x75')]()[_0x78bd('0x62')]();if(!_['isEmpty'](_0x3b3368)){_0x3b3368['forEach'](function(_0x1219c7){if(_0x1219c7===_0x78bd('0x76')){_0x12597a[_0x78bd('0x43')](_0x78bd('0x77'),[][_0x78bd('0x78')](_0x2cbb64['query'][_0x1219c7]));}else if(_0x1219c7===_0x78bd('0x79')){var _0x2d49b4=JSON[_0x78bd('0x7a')](_0x2cbb64[_0x78bd('0x39')][_0x1219c7])[_0x78bd('0x7b')];var _0x3f10bb=JSON['parse'](_0x2cbb64[_0x78bd('0x39')][_0x1219c7])[_0x78bd('0x7c')];_0x12597a[_0x78bd('0x43')](_0x78bd('0x7d'),_0x2d49b4,_0x3f10bb);}else{if(_0x2cbb64[_0x78bd('0x39')][_0x1219c7]===_0x78bd('0x7e')){_0x12597a['where']('i.'+_0x1219c7+_0x78bd('0x7f'));}else{_0x12597a[_0x78bd('0x43')]('i.'+_0x1219c7+_0x78bd('0x80'),_0x2cbb64[_0x78bd('0x39')][_0x1219c7]);}}});}if(_0x2cbb64['query']['read']){if(_0x2cbb64[_0x78bd('0x39')][_0x78bd('0x81')]==0x1){_0x12597a[_0x78bd('0x63')]('`unreadMessages`\x20=\x200');}else{_0x12597a[_0x78bd('0x63')]('`unreadMessages`\x20>\x200');}}if(_0x2cbb64['query'][_0x78bd('0x82')]){_0x51aaff=_['isArray'](_0x2cbb64[_0x78bd('0x39')]['tag'])?_0x2cbb64[_0x78bd('0x39')][_0x78bd('0x82')]:new Array(_0x2cbb64[_0x78bd('0x39')][_0x78bd('0x82')]);_0x51aaff[_0x78bd('0x31')](function(_0x55bfed){_0x3c0729['or'](_0x78bd('0x6f'),'%,'+_0x55bfed+',%');});}if(_0x2cbb64[_0x78bd('0x39')][_0x78bd('0x83')]){var _0x42e77d=_0x2cbb64['query']['filter'][_0x78bd('0x84')]('\x5c','\x5c\x5c')[_0x78bd('0x84')](/'/g,'\x27\x27');if(qs[_0x78bd('0x85')](_0x42e77d)){_0x242ba9['or']('i.id\x20LIKE\x20?',_0x42e77d+'%');}else{_0x242ba9['or'](_0x78bd('0x86'),qs[_0x78bd('0x68')](_0x42e77d))['or'](_0x78bd('0x87'),_0x42e77d+'%')['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x42e77d+'%');}}}_0x12597a[_0x78bd('0x43')](_0x242ba9);_0x12597a['group']('i.id');var _0x22fde7={'type':db[_0x78bd('0x88')][_0x78bd('0x89')][_0x78bd('0x8a')],'raw':!![]};var _0x1ad583=_0x12597a[_0x78bd('0x8b')]();_0x1ad583[_0x78bd('0x45')](_0x78bd('0x8c'));_0x1ad583[_0x78bd('0x45')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x78bd('0x61'));if(_0x2f62b7[_0x78bd('0x41')]){_0x2f62b7[_0x78bd('0x41')]['forEach'](function(_0xe997ce){var _0x39352d=_0xe997ce[0x0]===_0x78bd('0x8d')?_0xe997ce[0x0]:'i.'+_0xe997ce[0x0];_0x12597a['order'](_0x39352d,_0xe997ce[0x1]==='DESC'?![]:!![]);});}if(!_[_0x78bd('0x8e')](_0x51aaff)){_0x12597a[_0x78bd('0x63')](_0x3c0729);_0x1ad583[_0x78bd('0x43')](_0x78bd('0x8f'),_0x51aaff);}BPromise['resolve']()['then'](function(){if(!_0x17a8dc){if(_0x2cbb64[_0x78bd('0x39')][_0x78bd('0x76')])return;_0x1ad583[_0x78bd('0x43')]('i.OpenchannelAccountId\x20IS\x20NOT\x20NULL');_0x12597a[_0x78bd('0x43')](_0x78bd('0x90'));return;}if(_0x2cbb64[_0x78bd('0x91')]['role']!==_0x78bd('0x92'))return;return _0x2cbb64[_0x78bd('0x91')][_0x78bd('0x93')]({'attributes':['id'],'raw':!![]})[_0x78bd('0x2a')](function(_0x3ee671){if(_[_0x78bd('0x8e')](_0x3ee671)){_0x1ad583[_0x78bd('0x43')](_0x78bd('0x94'));_0x12597a[_0x78bd('0x43')]('i.OpenchannelAccountId\x20IS\x20NULL');}else{_0x1ad583['where']('i.OpenchannelAccountId\x20IN\x20?',_[_0x78bd('0x2e')](_0x3ee671,'id'));_0x12597a[_0x78bd('0x43')](_0x78bd('0x77'),_['map'](_0x3ee671,'id'));}});})[_0x78bd('0x2a')](function(){if(_0x2cbb64[_0x78bd('0x91')][_0x78bd('0x95')]===_0x78bd('0x92')&&!_0x17a8dc&&!_0x2cbb64['query'][_0x78bd('0x76')])return[];return db[_0x78bd('0x96')][_0x78bd('0x39')](_0x1ad583[_0x78bd('0x97')](),_0x22fde7);})[_0x78bd('0x2a')](function(_0x40a556){_0xe6246e[_0x78bd('0x23')]=_0x40a556[_0x78bd('0x3f')];if(_0xe6246e[_0x78bd('0x23')]===0x0)return[];return db['sequelize'][_0x78bd('0x39')](_0x1080f5['toString'](),_0x22fde7)[_0x78bd('0x2a')](function(_0x481793){_0x5b732a=_[_0x78bd('0x98')](_0x481793,'id');_0x22fde7=_[_0x78bd('0x99')](_0x22fde7,{'model':db[_0x78bd('0x34')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2cbb64[_0x78bd('0x39')][_0x78bd('0x3e')]){_0x2f62b7['attributes'][_0x78bd('0x31')](function(_0x210a6b){_0x12597a[_0x78bd('0x45')]('i.'+_0x210a6b);});}else{_0x12597a['field'](_0x78bd('0x9a'),_0x78bd('0x61'));_0x12597a[_0x78bd('0x45')](_0x78bd('0x9b'),'Account.key');_0x12597a[_0x78bd('0x45')](_0x78bd('0x9c'),_0x78bd('0x9d'));_0x12597a[_0x78bd('0x45')]('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',_0x78bd('0x8d'));_0x12597a['field'](_0x78bd('0x9e'));_0x12597a[_0x78bd('0x45')](_0x78bd('0x9f'),_0x78bd('0xa0'));_0x12597a[_0x78bd('0x45')](_0x78bd('0xa1'),_0x78bd('0xa2'));_0x12597a['field'](_0x78bd('0xa3'),_0x78bd('0xa4'));_0x12597a[_0x78bd('0x45')](_0x78bd('0xa5'),_0x78bd('0xa6'));_0x12597a[_0x78bd('0x45')]('c.mobile',_0x78bd('0xa7'));_0x12597a['field']('c.fax',_0x78bd('0xa8'));_0x12597a['field'](_0x78bd('0xa9'),_0x78bd('0xaa'));_0x12597a[_0x78bd('0x45')](_0x78bd('0xab'),_0x78bd('0xac'));_0x12597a[_0x78bd('0x45')](_0x78bd('0xad'),_0x78bd('0x2f'));}if(_0x2f62b7[_0x78bd('0x21')])_0x12597a[_0x78bd('0x21')](_0x2f62b7[_0x78bd('0x21')]);if(_0x2f62b7[_0x78bd('0x20')])_0x12597a[_0x78bd('0x20')](_0x2f62b7[_0x78bd('0x20')]);return db[_0x78bd('0x96')][_0x78bd('0x39')](_0x12597a[_0x78bd('0x97')](),_0x22fde7);})[_0x78bd('0x2a')](function(_0x3dcfb4){if(_0x3dcfb4['length']>0x0)_0x558230[_0x78bd('0x43')](_0x78bd('0xae'),_['map'](_0x3dcfb4,'id'));return db[_0x78bd('0x96')]['query'](_0x558230[_0x78bd('0x97')](),_0x22fde7)['then'](function(_0x2e63d0){var _0x30f8ce=_[_0x78bd('0xaf')](_0x2e63d0,_0x78bd('0xb0'));var _0x955fc1=[];_0x3dcfb4[_0x78bd('0x31')](function(_0x4df40b){_0x955fc1[_0x78bd('0x32')](updateOpenchannelInteraction(_0x4df40b,_0x5b732a,_0x30f8ce));});return BPromise[_0x78bd('0xb1')](_0x955fc1);});});})['then'](function(_0x3fb887){_0xe6246e[_0x78bd('0xb2')]=_0x3fb887;return _0xe6246e;})[_0x78bd('0x2a')](respondWithFilteredResult(_0x3d0e37,_0x2f62b7))[_0x78bd('0x33')](handleError(_0x3d0e37,null));};exports[_0x78bd('0xb3')]=function(_0x397aaa,_0xde1c88){var _0xcb7c58={};if(_0x397aaa[_0x78bd('0x39')][_0x78bd('0x37')]&&_0x397aaa['query'][_0x78bd('0x37')]===_0x78bd('0x47')){_0xcb7c58[_0x78bd('0x47')]=_0x397aaa['params']['id'];}else{_0xcb7c58['id']=_0x397aaa['params']['id'];}var _0x4a5e1b={'raw':![],'where':_0xcb7c58},_0x4c3954={};_0x4c3954['model']=_[_0x78bd('0x3a')](db[_0x78bd('0x34')][_0x78bd('0x35')]);_0x4c3954[_0x78bd('0x39')]=_[_0x78bd('0x3a')](_0x397aaa[_0x78bd('0x39')]);_0x4c3954[_0x78bd('0x44')]=_[_0x78bd('0x3b')](_0x4c3954[_0x78bd('0x3c')],_0x4c3954[_0x78bd('0x39')]);_0x4a5e1b[_0x78bd('0x3d')]=_[_0x78bd('0x3b')](_0x4c3954[_0x78bd('0x3c')],qs[_0x78bd('0x3e')](_0x397aaa[_0x78bd('0x39')]['fields']));_0x4a5e1b[_0x78bd('0x3d')]=_0x4a5e1b[_0x78bd('0x3d')][_0x78bd('0x3f')]?_0x4a5e1b[_0x78bd('0x3d')]:_0x4c3954[_0x78bd('0x3c')];if(_0x397aaa[_0x78bd('0x39')][_0x78bd('0xb4')]){_0x4a5e1b[_0x78bd('0xb5')]=[{'all':!![]}];}_0x4a5e1b=_[_0x78bd('0x99')]({},_0x4a5e1b,_0x397aaa[_0x78bd('0xb6')]);return db[_0x78bd('0x34')][_0x78bd('0x60')](_0x4a5e1b)[_0x78bd('0x2a')](handleEntityNotFound(_0xde1c88,null))[_0x78bd('0x2a')](respondWithResult(_0xde1c88,null))[_0x78bd('0x33')](handleError(_0xde1c88,null));};exports['create']=function(_0x453674,_0x394de1){return db[_0x78bd('0x34')][_0x78bd('0xb7')](_0x453674[_0x78bd('0x74')],{})[_0x78bd('0x2a')](respondWithResult(_0x394de1,0xc9))['catch'](handleError(_0x394de1,null));};exports[_0x78bd('0x29')]=function(_0x4aac63,_0x1a2efa){if(_0x4aac63['body']['id']){delete _0x4aac63[_0x78bd('0x74')]['id'];}return db[_0x78bd('0x34')][_0x78bd('0x60')]({'where':{'id':_0x4aac63[_0x78bd('0xb8')]['id']}})[_0x78bd('0x2a')](handleEntityNotFound(_0x1a2efa,null))[_0x78bd('0x2a')](saveUpdates(_0x4aac63[_0x78bd('0x74')],null))[_0x78bd('0x2a')](respondWithResult(_0x1a2efa,null))['catch'](handleError(_0x1a2efa,null));};exports[_0x78bd('0x2b')]=function(_0x42b4ef,_0x341046){return db['OpenchannelInteraction'][_0x78bd('0x60')]({'where':{'id':_0x42b4ef[_0x78bd('0xb8')]['id']}})[_0x78bd('0x2a')](handleEntityNotFound(_0x341046,null))[_0x78bd('0x2a')](removeEntity(_0x341046,null))['catch'](handleError(_0x341046,null));};exports[_0x78bd('0xb9')]=function(_0x5b67bf,_0x59a546){return db['OpenchannelInteraction']['describe']()[_0x78bd('0x2a')](respondWithResult(_0x59a546,null))['catch'](handleError(_0x59a546,null));};exports[_0x78bd('0xba')]=function(_0x5bdc45,_0x20635a,_0xdc1e29){return db['OpenchannelMessage'][_0x78bd('0x60')]({'where':{'id':_0x5bdc45[_0x78bd('0xb8')]['id']}})[_0x78bd('0x2a')](handleEntityNotFound(_0x20635a,null))['then'](function(_0x58971f){if(_0x58971f){return _0x58971f[_0x78bd('0xba')](_0x5bdc45[_0x78bd('0x74')]['ids'],_['omit'](_0x5bdc45[_0x78bd('0x74')],['ids','id'])||{});}})[_0x78bd('0x2a')](respondWithResult(_0x20635a,null))['catch'](handleError(_0x20635a,null));};exports[_0x78bd('0xbb')]=function(_0x33ba9b,_0x1a1072,_0x2218c5){var _0x3b83d2={'raw':![],'where':{}};var _0xdd42e4={};var _0x6578cd={'count':0x0,'rows':[]};return db[_0x78bd('0x34')]['findOne']({'where':{'id':_0x33ba9b[_0x78bd('0xb8')]['id']}})[_0x78bd('0x2a')](handleEntityNotFound(_0x1a1072,null))[_0x78bd('0x2a')](function(_0x1f45e5){if(_0x1f45e5){_0xdd42e4['model']=_[_0x78bd('0x3a')](db[_0x78bd('0xbc')][_0x78bd('0x35')]);_0xdd42e4[_0x78bd('0x39')]=_[_0x78bd('0x3a')](_0x33ba9b['query']);_0xdd42e4[_0x78bd('0x44')]=_[_0x78bd('0x3b')](_0xdd42e4['model'],_0xdd42e4[_0x78bd('0x39')]);_0x3b83d2['attributes']=_[_0x78bd('0x3b')](_0xdd42e4['model'],qs['fields'](_0x33ba9b[_0x78bd('0x39')][_0x78bd('0x3e')]));_0x3b83d2[_0x78bd('0x3d')]=_0x3b83d2[_0x78bd('0x3d')][_0x78bd('0x3f')]?_0x3b83d2[_0x78bd('0x3d')]:_0xdd42e4[_0x78bd('0x3c')];if(!_0x33ba9b['query'][_0x78bd('0x40')](_0x78bd('0xbd'))){_0x3b83d2[_0x78bd('0x21')]=qs[_0x78bd('0x21')](_0x33ba9b[_0x78bd('0x39')][_0x78bd('0x21')]);_0x3b83d2[_0x78bd('0x20')]=qs[_0x78bd('0x20')](_0x33ba9b[_0x78bd('0x39')][_0x78bd('0x20')]);}_0x3b83d2[_0x78bd('0x41')]=qs[_0x78bd('0x42')](_0x33ba9b[_0x78bd('0x39')][_0x78bd('0x42')]);_0x3b83d2[_0x78bd('0x43')]=qs[_0x78bd('0x44')](_['pick'](_0x33ba9b[_0x78bd('0x39')],_0xdd42e4['filters']));_0x3b83d2[_0x78bd('0x43')]['OpenchannelInteractionId']=_0x1f45e5['id'];if(_0x33ba9b[_0x78bd('0x39')]['filter']){_0x3b83d2['where']=_[_0x78bd('0x99')](_0x3b83d2[_0x78bd('0x43')],{'$or':_[_0x78bd('0x2e')](_0x3b83d2['attributes'],function(_0x4fe3aa){var _0x5ac0ac={};_0x5ac0ac[_0x4fe3aa]={'$like':'%'+_0x33ba9b[_0x78bd('0x39')][_0x78bd('0x83')]+'%'};return _0x5ac0ac;})});}if(_0x33ba9b[_0x78bd('0x39')][_0x78bd('0x7b')]){var _0x40bbd6=_0x33ba9b['query'][_0x78bd('0x7b')][_0x78bd('0x30')](',');var _0x35d7bc={};_0x35d7bc[_0x40bbd6[0x0]]={'$gte':moment(_0x40bbd6[0x1])['format'](_0x78bd('0xbe'))};_0x3b83d2[_0x78bd('0x43')]=_['merge'](_0x3b83d2[_0x78bd('0x43')],_0x35d7bc);}_0x3b83d2=_['merge']({},_0x3b83d2,_0x33ba9b['options']);return db[_0x78bd('0xbc')][_0x78bd('0x23')]({'where':_0x3b83d2[_0x78bd('0x43')]})[_0x78bd('0x2a')](function(_0x10986c){_0x6578cd[_0x78bd('0x23')]=_0x10986c;if(_0x33ba9b[_0x78bd('0x39')][_0x78bd('0xb4')]){_0x3b83d2[_0x78bd('0xb5')]=[{'all':!![]}];}return db[_0x78bd('0xbc')][_0x78bd('0xbf')](_0x3b83d2);})[_0x78bd('0x2a')](function(_0x1948e7){_0x6578cd[_0x78bd('0xb2')]=_0x1948e7;return _0x6578cd;});}})[_0x78bd('0x2a')](respondWithFilteredResult(_0x1a1072,_0x3b83d2))['catch'](handleError(_0x1a1072,null));};exports['addTags']=function(_0x1fc6c5,_0x520082,_0x42dde5){return db[_0x78bd('0x34')][_0x78bd('0x60')]({'where':{'id':_0x1fc6c5['params']['id']}})[_0x78bd('0x2a')](handleEntityNotFound(_0x520082,null))['then'](function(_0x565bd3){if(_0x565bd3){return _0x565bd3[_0x78bd('0xc0')](_0x1fc6c5[_0x78bd('0x74')][_0x78bd('0xc1')],_[_0x78bd('0xc2')](_0x1fc6c5[_0x78bd('0x74')],['ids','id'])||{})[_0x78bd('0xc3')](function(){return db[_0x78bd('0x6e')]['findAll']({'attributes':['id',_0x78bd('0x38'),_0x78bd('0x46')],'where':{'id':_0x1fc6c5['body'][_0x78bd('0xc1')]}});})['then'](function(_0x1e95df){socket[_0x78bd('0xc4')](_0x78bd('0xc5'),{'id':Number(_0x1fc6c5[_0x78bd('0xb8')]['id']),'tags':_0x1e95df||[]});return{'id':Number(_0x1fc6c5['params']['id']),'tags':_0x1e95df||[]};});}})['then'](respondWithResult(_0x520082,null))['catch'](handleError(_0x520082,null));};exports['removeTags']=function(_0x555477,_0x2d25a7,_0x4fba33){return db[_0x78bd('0x34')][_0x78bd('0x60')]({'where':{'id':_0x555477[_0x78bd('0xb8')]['id']}})[_0x78bd('0x2a')](handleEntityNotFound(_0x2d25a7,null))[_0x78bd('0x2a')](function(_0x2e9c8d){if(_0x2e9c8d){return _0x2e9c8d[_0x78bd('0xc6')](_0x555477[_0x78bd('0x39')]['ids']);}})[_0x78bd('0x2a')](respondWithStatusCode(_0x2d25a7,null))[_0x78bd('0x33')](handleError(_0x2d25a7,null));};exports[_0x78bd('0xc7')]=function(_0x220604,_0x2848f0){var _0x37a02c=moment()[_0x78bd('0xc8')]()['toString']();var _0x46f1d6=path['join'](config[_0x78bd('0xc9')],_0x78bd('0xca'),_0x78bd('0xcb'),'tmp');var _0x17cc50=path[_0x78bd('0xcc')](config['root'],_0x78bd('0xca'),_0x78bd('0xcb'),_0x78bd('0xcd'));var _0x4cab16=path[_0x78bd('0xcc')](_0x46f1d6,_0x37a02c);var _0x23d6a9=util[_0x78bd('0xce')](_0x78bd('0xcf'),_0x220604[_0x78bd('0xb8')]['id'],_0x37a02c);var _0x1b3a74=path[_0x78bd('0xcc')](_0x46f1d6,_0x23d6a9);var _0x1e7d70=[];_0x1e7d70[_0x78bd('0x32')]({'model':db['User'],'as':_0x78bd('0x71'),'attributes':['id',_0x78bd('0xd0')],'raw':!![]});_0x1e7d70[_0x78bd('0x32')]({'model':db['CmContact'],'as':_0x78bd('0x65'),'attributes':['id','firstName','lastName'],'raw':!![]});if(_0x220604['query'][_0x78bd('0xcd')]){_0x1e7d70['push']({'model':db[_0x78bd('0xd1')],'as':_0x78bd('0xd1'),'raw':!![]});}var _0x5c0e86=[{'model':db[_0x78bd('0xbc')],'as':'Messages','attributes':['id',_0x78bd('0x74'),_0x78bd('0x79'),_0x78bd('0xd2'),'secret',_0x78bd('0x81')],'include':_0x1e7d70}];_0x5c0e86[_0x78bd('0x32')]({'model':db[_0x78bd('0xd3')],'as':'Account','attributes':['id',_0x78bd('0x38')]});_0x5c0e86[_0x78bd('0x32')]({'model':db['User'],'as':_0x78bd('0xd4'),'attributes':['id',_0x78bd('0xd0')]});return db['OpenchannelInteraction'][_0x78bd('0x60')]({'where':{'id':_0x220604['params']['id']},'include':_0x5c0e86})[_0x78bd('0x2a')](handleEntityNotFound(_0x2848f0,null))['then'](function(_0x1df570){if(_0x1df570){var _0xcc9763=_0x1df570[_0x78bd('0xd5')]({'plain':!![]});fs['mkdirSync'](_0x4cab16);var _0x1bfbd8={'channel':_0x78bd('0xd6'),'account':_0xcc9763[_0x78bd('0xd7')][_0x78bd('0x38')],'agent':_0xcc9763['Owner']?_0xcc9763['Owner'][_0x78bd('0xd0')]:_0x78bd('0xd8'),'createdAt':moment(_0xcc9763[_0x78bd('0x79')])['format'](_0x78bd('0xbe'))[_0x78bd('0x97')](),'closedAt':_0xcc9763[_0x78bd('0xd9')]?moment(_0xcc9763[_0x78bd('0xda')])[_0x78bd('0xce')](_0x78bd('0xbe'))[_0x78bd('0x97')]():'','disposition':_0xcc9763[_0x78bd('0xdb')],'visibility':_0xcc9763[_0x78bd('0xdc')]?_0x78bd('0xdd'):_0x78bd('0xde'),'messages':_(_0xcc9763[_0x78bd('0xdf')])['filter']({'secret':![]})[_0x78bd('0x2e')](function(_0x18156f){if(_0x18156f[_0x78bd('0xd1')]){var _0x58b7e2=path[_0x78bd('0xcc')](_0x17cc50,_0x18156f[_0x78bd('0xd1')]['basename']);if(fs[_0x78bd('0xe0')](_0x58b7e2)){fs[_0x78bd('0xe1')](_0x58b7e2)[_0x78bd('0xe2')](fs[_0x78bd('0xe3')](path[_0x78bd('0xcc')](_0x4cab16,_0x18156f[_0x78bd('0xd1')][_0x78bd('0xe4')])));}}return{'date':moment(_0x18156f['createdAt'])[_0x78bd('0xce')](_0x78bd('0xbe'))[_0x78bd('0x97')](),'sender':_0x18156f[_0x78bd('0xd2')]===_0x78bd('0xe5')?_0x18156f[_0x78bd('0x71')]?_0x18156f[_0x78bd('0x71')]['fullname']:_0x78bd('0xe6'):_0x18156f[_0x78bd('0x65')][_0x78bd('0xe7')]+(_0x18156f[_0x78bd('0x65')][_0x78bd('0xe8')]?'\x20'+_0x18156f[_0x78bd('0x65')]['lastName']:''),'body':_0x18156f[_0x78bd('0xd1')]?_0x18156f[_0x78bd('0xd1')][_0x78bd('0xe4')]:_0x18156f[_0x78bd('0x74')],'direction':_0x18156f[_0x78bd('0xd2')]===_0x78bd('0xe5')?'A':'C','secret':_0x18156f[_0x78bd('0xe9')],'read':_0x18156f[_0x78bd('0x81')],'attachment':_0x18156f[_0x78bd('0xd1')]};})[_0x78bd('0x62')]()};return ejs[_0x78bd('0xea')](path[_0x78bd('0xcc')](config['root'],'server',_0x78bd('0xeb'),_0x78bd('0xec')),{'interaction':_0x1bfbd8})[_0x78bd('0x2a')](function(_0x30d7d8){var _0x2a1a6e=path['join'](_0x4cab16,_0x78bd('0xed')+_0xcc9763['id']+'-'+_0x37a02c+'.pdf');var _0x5f4b3b={'path':_0x2a1a6e,'channel':_0x78bd('0xd6'),'interactionId':_0xcc9763['id']};return pdf[_0x78bd('0xee')](_0x30d7d8,_0x5f4b3b);})[_0x78bd('0x2a')](function(){return new BPromise(function(_0x323f44,_0x442f81){zipdir(_0x4cab16,{'saveTo':_0x1b3a74},function(_0x41ee8e,_0x5c10b9){if(_0x41ee8e)return _0x442f81(_0x41ee8e);return _0x323f44(_0x5c10b9);});})['then'](function(){return new BPromise(function(_0xa8a2bd,_0x1be931){rimraf(_0x4cab16,function(_0x420edc){if(_0x420edc)_0x1be931(_0x420edc);return _0xa8a2bd();});});})['then'](function(){return _0x2848f0[_0x78bd('0xc7')](_0x1b3a74,_0x23d6a9,function(_0x29dae3){if(_0x29dae3){console['log'](_0x78bd('0xef'),_0x29dae3);}else{fs[_0x78bd('0xf0')](_0x1b3a74);}});});});}else{return _0x2848f0['sendStatus'](0xc8);}})[_0x78bd('0x33')](handleError(_0x2848f0,null));};
\ No newline at end of file
+var _0x5a16=['u.fullname','ui.OpenchannelInteractionId','from','user_has_openchannel_interactions','left_join','users','u.id\x20=\x20ui.UserId','openchannel_interactions','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','parseSearch','search','conditions','unreadMessages','having','`\x20>\x200','operator','$substring','value','length','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','buildExpression','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','some','compact','forEach','OpenchannelAccountId','i.OpenchannelAccountId\x20IN\x20?','concat','createdAt','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','filter','replace','isNumeric','i.from\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','Sequelize','QueryTypes','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','isEmpty','resolve','user','agent','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','role','sequelize','toString','merge','a.key','a.mandatoryDisposition','Account.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','Contact.mobile','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.OpenchannelInteractionId\x20IN\x20?','OpenchannelInteractionId','all','show','params','rawAttributes','includeAll','include','options','create','describe','addMessage','OpenchannelMessage','ids','getMessages','hasOwnProperty','nolimit','findAll','rows','addTags','setTags','omit','spread','color','emit','removeTags','unix','join','root','server','files','tmp','attachments','format','User','Contact','firstName','lastName','Attachment','Messages','direction','secret','OpenchannelAccount','Account','Owner','get','mkdirSync','YYYY-MM-DD\x20HH:mm:ss','closed','closedAt','threadId','Public','basename','existsSync','createReadStream','createWriteStream','out','renderFile','downloadInteraction.ejs','transcript-','Openchannel','createPdfFromHTML','log','err','unlinkSync','zip-dir','fast-json-patch','moment','bluebird','mustache','to-csv','ejs','fs-extra','lodash','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./openchannelInteraction.socket','register','end','status','json','undefined','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','name','send','map','fullname','TagIds','Tags','split','push','catch','index','OpenchannelInteraction','fieldName','type','model','query','keys','filters','intersection','fields','attributes','order','sort','where','pick','select','field','tools_tags','u.id'];(function(_0x33fab6,_0x532a04){var _0x314e60=function(_0x56e5d6){while(--_0x56e5d6){_0x33fab6['push'](_0x33fab6['shift']());}};_0x314e60(++_0x532a04);}(_0x5a16,0xa0));var _0x65a1=function(_0x32b542,_0x4512fa){_0x32b542=_0x32b542-0x0;var _0x554d54=_0x5a16[_0x32b542];return _0x554d54;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x65a1('0x0'));var jsonpatch=require(_0x65a1('0x1'));var rp=require('request-promise');var moment=require(_0x65a1('0x2'));var BPromise=require(_0x65a1('0x3'));var Mustache=require(_0x65a1('0x4'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x65a1('0x5'));var ejs=require(_0x65a1('0x6'));var fs=require('fs');var fs_extra=require(_0x65a1('0x7'));var _=require(_0x65a1('0x8'));var squel=require('squel');var crypto=require(_0x65a1('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x65a1('0x5'));var querystring=require(_0x65a1('0xa'));var Papa=require(_0x65a1('0xb'));var Redis=require(_0x65a1('0xc'));var authService=require(_0x65a1('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x65a1('0xe'));var pdf=require(_0x65a1('0xf'));var hardwareService=require(_0x65a1('0x10'));var logger=require(_0x65a1('0x11'))('api');var utils=require(_0x65a1('0x12'));var config=require(_0x65a1('0x13'));var licenseUtil=require(_0x65a1('0x14'));var db=require(_0x65a1('0x15'))['db'];config[_0x65a1('0x16')]=_['defaults'](config[_0x65a1('0x16')],{'host':_0x65a1('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x65a1('0x16')]));require(_0x65a1('0x18'))[_0x65a1('0x19')](socket);function respondWithStatusCode(_0x1d0c4a,_0x380cc9){_0x380cc9=_0x380cc9||0xcc;return function(_0xc5d07c){if(_0xc5d07c){return _0x1d0c4a['sendStatus'](_0x380cc9);}return _0x1d0c4a['status'](_0x380cc9)[_0x65a1('0x1a')]();};}function respondWithResult(_0x50de6c,_0x447861){_0x447861=_0x447861||0xc8;return function(_0x89f7e2){if(_0x89f7e2){return _0x50de6c[_0x65a1('0x1b')](_0x447861)[_0x65a1('0x1c')](_0x89f7e2);}};}function respondWithFilteredResult(_0x33b86b,_0x1bc648){return function(_0x58d3a6){if(_0x58d3a6){var _0x4c55ad=typeof _0x1bc648['offset']===_0x65a1('0x1d')&&typeof _0x1bc648['limit']===_0x65a1('0x1d');var _0x427f65=_0x58d3a6[_0x65a1('0x1e')];var _0x2579a5=_0x4c55ad?0x0:_0x1bc648[_0x65a1('0x1f')];var _0x5d17c4=_0x4c55ad?_0x58d3a6[_0x65a1('0x1e')]:_0x1bc648[_0x65a1('0x1f')]+_0x1bc648[_0x65a1('0x20')];var _0x1f5681;if(_0x5d17c4>=_0x427f65){_0x5d17c4=_0x427f65;_0x1f5681=0xc8;}else{_0x1f5681=0xce;}_0x33b86b['status'](_0x1f5681);return _0x33b86b['set'](_0x65a1('0x21'),_0x2579a5+'-'+_0x5d17c4+'/'+_0x427f65)[_0x65a1('0x1c')](_0x58d3a6);}return null;};}function patchUpdates(_0x3ca9a5){return function(_0x4dae07){try{jsonpatch[_0x65a1('0x22')](_0x4dae07,_0x3ca9a5,!![]);}catch(_0x1f8684){return BPromise[_0x65a1('0x23')](_0x1f8684);}return _0x4dae07[_0x65a1('0x24')]();};}function saveUpdates(_0x4cc9ca,_0x3c3e36){return function(_0x16e31e){if(_0x16e31e){return _0x16e31e[_0x65a1('0x25')](_0x4cc9ca)[_0x65a1('0x26')](function(_0x33ece7){return _0x33ece7;});}return null;};}function removeEntity(_0x3e7ce3,_0x8ac862){return function(_0x17dd9c){if(_0x17dd9c){return _0x17dd9c[_0x65a1('0x27')]()[_0x65a1('0x26')](function(){_0x3e7ce3['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xa7a525,_0x1fd48b){return function(_0x2e4a9a){if(!_0x2e4a9a){_0xa7a525[_0x65a1('0x28')](0x194);}return _0x2e4a9a;};}function handleError(_0x45509e,_0x999370){_0x999370=_0x999370||0x1f4;return function(_0x38e6a2){logger[_0x65a1('0x29')](_0x38e6a2['stack']);if(_0x38e6a2[_0x65a1('0x2a')]){delete _0x38e6a2[_0x65a1('0x2a')];}_0x45509e['status'](_0x999370)[_0x65a1('0x2b')](_0x38e6a2);};}function getInteractionUsers(_0x3da7d5,_0x1822a3){return new BPromise(function(_0x35d6a2,_0x5c97f6){try{if(_0x1822a3[_0x3da7d5['id']]){_0x3da7d5['Users']=_[_0x65a1('0x2c')](_0x1822a3[_0x3da7d5['id']],function(_0x4727ab){return{'id':_0x4727ab['id'],'fullname':_0x4727ab[_0x65a1('0x2d')]};});}}catch(_0xe5e63c){_0x5c97f6(_0xe5e63c);}_0x35d6a2(_0x3da7d5);});}function getInteractionTags(_0x512b48,_0x45a336){return new BPromise(function(_0x5cea1a,_0x280ead){try{if(_0x512b48[_0x65a1('0x2e')]){_0x512b48[_0x65a1('0x2f')]=[];_0x512b48[_0x65a1('0x2e')][_0x65a1('0x30')](',')['forEach'](function(_0x430b93){_0x512b48[_0x65a1('0x2f')][_0x65a1('0x31')](_0x45a336[_0x430b93]);});}delete _0x512b48[_0x65a1('0x2e')];}catch(_0x1d2add){_0x280ead(_0x1d2add);}_0x5cea1a(_0x512b48);});}function updateOpenchannelInteraction(_0x2f4378,_0x4a238e,_0x1075f2){return new BPromise(function(_0x1eb490,_0x546b91){return getInteractionUsers(_0x2f4378,_0x1075f2)[_0x65a1('0x26')](function(_0x536adc){return getInteractionTags(_0x536adc,_0x4a238e);})[_0x65a1('0x26')](function(_0x3ba0cb){_0x1eb490(_0x3ba0cb);})[_0x65a1('0x32')](function(_0x4e32e4){_0x546b91(_0x4e32e4);});});}exports[_0x65a1('0x33')]=function(_0x2dfbbc,_0x5705d5){var _0x3db8bd={},_0x5bc0b9={},_0x2e92f6={'count':0x0,'rows':[]};var _0x59e4b1=_[_0x65a1('0x2c')](db[_0x65a1('0x34')]['rawAttributes'],function(_0x2e5a71){return{'name':_0x2e5a71[_0x65a1('0x35')],'type':_0x2e5a71[_0x65a1('0x36')]['key']};});_0x5bc0b9[_0x65a1('0x37')]=_['map'](_0x59e4b1,_0x65a1('0x2a'));_0x5bc0b9[_0x65a1('0x38')]=_[_0x65a1('0x39')](_0x2dfbbc[_0x65a1('0x38')]);_0x5bc0b9[_0x65a1('0x3a')]=_[_0x65a1('0x3b')](_0x5bc0b9[_0x65a1('0x37')],_0x5bc0b9['query']);_0x3db8bd['attributes']=_[_0x65a1('0x3b')](_0x5bc0b9[_0x65a1('0x37')],qs[_0x65a1('0x3c')](_0x2dfbbc['query'][_0x65a1('0x3c')]));_0x3db8bd[_0x65a1('0x3d')]=_0x3db8bd['attributes']['length']?_0x3db8bd['attributes']:_0x5bc0b9[_0x65a1('0x37')];if(!_0x2dfbbc[_0x65a1('0x38')]['hasOwnProperty']('nolimit')){_0x3db8bd['limit']=qs[_0x65a1('0x20')](_0x2dfbbc[_0x65a1('0x38')][_0x65a1('0x20')]);_0x3db8bd['offset']=qs[_0x65a1('0x1f')](_0x2dfbbc[_0x65a1('0x38')][_0x65a1('0x1f')]);}_0x3db8bd[_0x65a1('0x3e')]=qs['sort'](_0x2dfbbc['query'][_0x65a1('0x3f')]);_0x3db8bd[_0x65a1('0x40')]=qs[_0x65a1('0x3a')](_[_0x65a1('0x41')](_0x2dfbbc[_0x65a1('0x38')],_0x5bc0b9[_0x65a1('0x3a')]),_0x59e4b1);var _0x3c914c=[];var _0xc994be=squel[_0x65a1('0x42')]()[_0x65a1('0x43')]('id')[_0x65a1('0x43')]('name')[_0x65a1('0x43')]('color')['from'](_0x65a1('0x44'));var _0x4a6884=squel[_0x65a1('0x42')]()[_0x65a1('0x43')](_0x65a1('0x45'))[_0x65a1('0x43')](_0x65a1('0x46'))[_0x65a1('0x43')](_0x65a1('0x47'))[_0x65a1('0x48')](_0x65a1('0x49'),'ui')[_0x65a1('0x4a')](_0x65a1('0x4b'),'u',_0x65a1('0x4c'));var _0x192c68=squel[_0x65a1('0x42')]()[_0x65a1('0x48')](_0x65a1('0x4d'),'i')[_0x65a1('0x4a')](_0x65a1('0x4e'),'c',_0x65a1('0x4f'))[_0x65a1('0x4a')]('users','o',_0x65a1('0x50'))[_0x65a1('0x4a')](_0x65a1('0x51'),'a',_0x65a1('0x52'))[_0x65a1('0x4a')](_0x65a1('0x53'),'me',_0x65a1('0x54'))[_0x65a1('0x4a')](_0x65a1('0x55'),'it',_0x65a1('0x56'))[_0x65a1('0x4a')](_0x65a1('0x44'),'t','t.id\x20=\x20it.TagId');var _0x5d7528=squel[_0x65a1('0x57')]();var _0x59e5b8=[];var _0x294413=squel['expr']();var _0x52daaa;if(_0x2dfbbc[_0x65a1('0x38')]['search']){_0x52daaa=as[_0x65a1('0x58')](_0x2dfbbc[_0x65a1('0x38')][_0x65a1('0x59')]);var _0x57a2b0=_0x52daaa['sqlOperator'];for(var _0x1ccacb=0x0;_0x1ccacb<_0x52daaa[_0x65a1('0x5a')]['length'];_0x1ccacb++){var _0xa4dd83=_0x52daaa[_0x65a1('0x5a')][_0x1ccacb];var _0xceb13b='i';var _0x15a3ee=_['find'](_0x59e4b1,[_0x65a1('0x2a'),_0xa4dd83[_0x65a1('0x43')]]);if(!_0x15a3ee){switch(_0xa4dd83[_0x65a1('0x43')]){case _0x65a1('0x5b'):if(_0xa4dd83['value']==0x1){_0x192c68['having']('`'+_0xa4dd83[_0x65a1('0x43')]+'`\x20=\x200');}else{_0x192c68[_0x65a1('0x5c')]('`'+_0xa4dd83[_0x65a1('0x43')]+_0x65a1('0x5d'));}break;case'Contact':if(_0xa4dd83[_0x65a1('0x5e')]===_0x65a1('0x5f')){if(_0xa4dd83[_0x65a1('0x60')][_0x65a1('0x30')]('\x20')[_0x65a1('0x61')]>0x1){_0x5d7528[_0x57a2b0](_0x65a1('0x62'),qs[_0x65a1('0x63')](_0xa4dd83[_0x65a1('0x60')]),null);}else{var _0x4b5b88='%'+_0xa4dd83['value']+'%';_0x5d7528[_0x57a2b0](_0x65a1('0x64'),_0x4b5b88,_0x4b5b88,_0x4b5b88);}}else{_0x15a3ee=_[_0x65a1('0x65')](_0x59e4b1,[_0x65a1('0x2a'),'ContactId']);_0xa4dd83['field']='ContactId';_0x19adc1=as[_0x65a1('0x66')](_0xceb13b,_0x15a3ee[_0x65a1('0x36')],_0xa4dd83);_0x5d7528[_0x57a2b0](_0x19adc1[_0x65a1('0x67')],_0x19adc1['value'][_0x65a1('0x68')],_0x19adc1[_0x65a1('0x60')][_0x65a1('0x1a')]);}break;case _0x65a1('0x69'):var _0x6d885e=_0xa4dd83[_0x65a1('0x60')]['split'](',')[_0x65a1('0x2c')](function(_0x3ff22d){return Number(_0x3ff22d);});_0x6d885e['forEach'](function(_0x4eb04f){_0x294413['or'](_0x65a1('0x6a'),'%,'+_0x4eb04f+',%');});_0x59e5b8=_['union'](_0x59e5b8,_0x6d885e);break;case'User':if(_0xa4dd83[_0x65a1('0x5e')]===_0x65a1('0x5f')){_0x5d7528[_0x57a2b0](_0x65a1('0x6b'),'%'+_0xa4dd83[_0x65a1('0x60')]+'%',null);}else{_0x15a3ee=_[_0x65a1('0x65')](_0x59e4b1,['name',_0x65a1('0x6c')]);_0xa4dd83[_0x65a1('0x43')]=_0x65a1('0x6c');_0x19adc1=as[_0x65a1('0x66')](_0xceb13b,_0x15a3ee[_0x65a1('0x36')],_0xa4dd83);_0x5d7528[_0x57a2b0](_0x19adc1['text'],_0x19adc1['value'][_0x65a1('0x68')],_0x19adc1[_0x65a1('0x60')][_0x65a1('0x1a')]);}break;case _0x65a1('0x6d'):_0x19adc1=as[_0x65a1('0x66')]('me',null,_0xa4dd83);_0x5d7528[_0x57a2b0](_0x19adc1['text'],_0x19adc1[_0x65a1('0x60')][_0x65a1('0x68')],_0x19adc1[_0x65a1('0x60')][_0x65a1('0x1a')]);break;}}else{var _0x19adc1=as[_0x65a1('0x66')](_0xceb13b,_0x15a3ee[_0x65a1('0x36')],_0xa4dd83);_0x5d7528[_0x57a2b0](_0x19adc1['text'],_0x19adc1['value']['start'],_0x19adc1[_0x65a1('0x60')][_0x65a1('0x1a')]);}}}else{var _0x23bf4d=_(_0x2dfbbc['query'])['keys']()[_0x65a1('0x2c')](function(_0x3fb11f){return _[_0x65a1('0x6e')](_0x59e4b1,[_0x65a1('0x2a'),_0x3fb11f])?_0x3fb11f:undefined;})[_0x65a1('0x6f')]()[_0x65a1('0x60')]();if(!_['isEmpty'](_0x23bf4d)){_0x23bf4d[_0x65a1('0x70')](function(_0x192935){if(_0x192935===_0x65a1('0x71')){_0x192c68['where'](_0x65a1('0x72'),[][_0x65a1('0x73')](_0x2dfbbc[_0x65a1('0x38')][_0x192935]));}else if(_0x192935===_0x65a1('0x74')){var _0x5bd78=JSON[_0x65a1('0x75')](_0x2dfbbc[_0x65a1('0x38')][_0x192935])[_0x65a1('0x76')];var _0x168f58=JSON[_0x65a1('0x75')](_0x2dfbbc[_0x65a1('0x38')][_0x192935])['$lte'];_0x192c68[_0x65a1('0x40')](_0x65a1('0x77'),_0x5bd78,_0x168f58);}else{if(_0x2dfbbc[_0x65a1('0x38')][_0x192935]===_0x65a1('0x78')){_0x192c68[_0x65a1('0x40')]('i.'+_0x192935+_0x65a1('0x79'));}else{_0x192c68[_0x65a1('0x40')]('i.'+_0x192935+_0x65a1('0x7a'),_0x2dfbbc[_0x65a1('0x38')][_0x192935]);}}});}if(_0x2dfbbc[_0x65a1('0x38')][_0x65a1('0x7b')]){if(_0x2dfbbc[_0x65a1('0x38')]['read']==0x1){_0x192c68[_0x65a1('0x5c')](_0x65a1('0x7c'));}else{_0x192c68['having']('`unreadMessages`\x20>\x200');}}if(_0x2dfbbc[_0x65a1('0x38')][_0x65a1('0x7d')]){_0x59e5b8=_['isArray'](_0x2dfbbc[_0x65a1('0x38')][_0x65a1('0x7d')])?_0x2dfbbc[_0x65a1('0x38')][_0x65a1('0x7d')]:new Array(_0x2dfbbc[_0x65a1('0x38')]['tag']);_0x59e5b8[_0x65a1('0x70')](function(_0x1158cd){_0x294413['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x1158cd+',%');});}if(_0x2dfbbc[_0x65a1('0x38')][_0x65a1('0x7e')]){var _0x40578a=_0x2dfbbc[_0x65a1('0x38')][_0x65a1('0x7e')][_0x65a1('0x7f')]('\x5c','\x5c\x5c')[_0x65a1('0x7f')](/'/g,'\x27\x27');if(qs[_0x65a1('0x80')](_0x40578a)){_0x5d7528['or']('i.id\x20LIKE\x20?',_0x40578a+'%');}else{_0x5d7528['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x65a1('0x63')](_0x40578a))['or'](_0x65a1('0x81'),_0x40578a+'%')['or'](_0x65a1('0x82'),_0x40578a+'%');}}}_0x192c68['where'](_0x5d7528);_0x192c68['group']('i.id');var _0x5eed8d={'type':db[_0x65a1('0x83')][_0x65a1('0x84')][_0x65a1('0x85')],'raw':!![]};var _0x151543=_0x192c68['clone']();_0x151543[_0x65a1('0x43')]('i.id');_0x151543['field'](_0x65a1('0x86'),_0x65a1('0x5b'));if(_0x3db8bd[_0x65a1('0x3e')]){_0x3db8bd[_0x65a1('0x3e')][_0x65a1('0x70')](function(_0xd7f16e){var _0x400099=_0xd7f16e[0x0]===_0x65a1('0x87')?_0xd7f16e[0x0]:'i.'+_0xd7f16e[0x0];_0x192c68[_0x65a1('0x3e')](_0x400099,_0xd7f16e[0x1]===_0x65a1('0x88')?![]:!![]);});}if(!_[_0x65a1('0x89')](_0x59e5b8)){_0x192c68[_0x65a1('0x5c')](_0x294413);_0x151543[_0x65a1('0x40')]('t.id\x20IN\x20?',_0x59e5b8);}BPromise[_0x65a1('0x8a')]()[_0x65a1('0x26')](function(){if(!_0x52daaa){if(_0x2dfbbc[_0x65a1('0x38')][_0x65a1('0x71')])return;_0x151543['where']('i.OpenchannelAccountId\x20IS\x20NOT\x20NULL');_0x192c68[_0x65a1('0x40')]('i.OpenchannelAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x2dfbbc[_0x65a1('0x8b')]['role']!==_0x65a1('0x8c'))return;return _0x2dfbbc[_0x65a1('0x8b')][_0x65a1('0x8d')]({'attributes':['id'],'raw':!![]})[_0x65a1('0x26')](function(_0x4e025f){if(_[_0x65a1('0x89')](_0x4e025f)){_0x151543['where'](_0x65a1('0x8e'));_0x192c68[_0x65a1('0x40')](_0x65a1('0x8e'));}else{_0x151543['where'](_0x65a1('0x72'),_[_0x65a1('0x2c')](_0x4e025f,'id'));_0x192c68[_0x65a1('0x40')]('i.OpenchannelAccountId\x20IN\x20?',_[_0x65a1('0x2c')](_0x4e025f,'id'));}});})[_0x65a1('0x26')](function(){if(_0x2dfbbc[_0x65a1('0x8b')][_0x65a1('0x8f')]===_0x65a1('0x8c')&&!_0x52daaa&&!_0x2dfbbc[_0x65a1('0x38')][_0x65a1('0x71')])return[];return db[_0x65a1('0x90')][_0x65a1('0x38')](_0x151543['toString'](),_0x5eed8d);})[_0x65a1('0x26')](function(_0x468ec9){_0x2e92f6['count']=_0x468ec9['length'];if(_0x2e92f6['count']===0x0)return[];return db[_0x65a1('0x90')][_0x65a1('0x38')](_0xc994be[_0x65a1('0x91')](),_0x5eed8d)[_0x65a1('0x26')](function(_0x3cd2b4){_0x3c914c=_['keyBy'](_0x3cd2b4,'id');_0x5eed8d=_[_0x65a1('0x92')](_0x5eed8d,{'model':db[_0x65a1('0x34')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2dfbbc[_0x65a1('0x38')]['fields']){_0x3db8bd[_0x65a1('0x3d')]['forEach'](function(_0x1afdfa){_0x192c68[_0x65a1('0x43')]('i.'+_0x1afdfa);});}else{_0x192c68['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x65a1('0x5b'));_0x192c68[_0x65a1('0x43')](_0x65a1('0x93'),'Account.key');_0x192c68[_0x65a1('0x43')](_0x65a1('0x94'),_0x65a1('0x95'));_0x192c68[_0x65a1('0x43')](_0x65a1('0x96'),_0x65a1('0x87'));_0x192c68['field'](_0x65a1('0x97'));_0x192c68[_0x65a1('0x43')](_0x65a1('0x98'),_0x65a1('0x99'));_0x192c68[_0x65a1('0x43')](_0x65a1('0x9a'),_0x65a1('0x9b'));_0x192c68[_0x65a1('0x43')](_0x65a1('0x9c'),_0x65a1('0x9d'));_0x192c68[_0x65a1('0x43')](_0x65a1('0x9e'),_0x65a1('0x9f'));_0x192c68[_0x65a1('0x43')]('c.mobile',_0x65a1('0xa0'));_0x192c68['field']('c.fax','Contact.fax');_0x192c68[_0x65a1('0x43')](_0x65a1('0xa1'),_0x65a1('0xa2'));_0x192c68[_0x65a1('0x43')]('o.internal',_0x65a1('0xa3'));_0x192c68[_0x65a1('0x43')](_0x65a1('0xa4'),'TagIds');}if(_0x3db8bd[_0x65a1('0x20')])_0x192c68[_0x65a1('0x20')](_0x3db8bd[_0x65a1('0x20')]);if(_0x3db8bd['offset'])_0x192c68[_0x65a1('0x1f')](_0x3db8bd[_0x65a1('0x1f')]);return db[_0x65a1('0x90')][_0x65a1('0x38')](_0x192c68[_0x65a1('0x91')](),_0x5eed8d);})[_0x65a1('0x26')](function(_0x221ea6){if(_0x221ea6[_0x65a1('0x61')]>0x0)_0x4a6884[_0x65a1('0x40')](_0x65a1('0xa5'),_['map'](_0x221ea6,'id'));return db['sequelize'][_0x65a1('0x38')](_0x4a6884[_0x65a1('0x91')](),_0x5eed8d)[_0x65a1('0x26')](function(_0x1bf072){var _0xfa3093=_['groupBy'](_0x1bf072,_0x65a1('0xa6'));var _0x3cb478=[];_0x221ea6['forEach'](function(_0x509af8){_0x3cb478[_0x65a1('0x31')](updateOpenchannelInteraction(_0x509af8,_0x3c914c,_0xfa3093));});return BPromise[_0x65a1('0xa7')](_0x3cb478);});});})[_0x65a1('0x26')](function(_0x59c8ae){_0x2e92f6['rows']=_0x59c8ae;return _0x2e92f6;})['then'](respondWithFilteredResult(_0x5705d5,_0x3db8bd))[_0x65a1('0x32')](handleError(_0x5705d5,null));};exports[_0x65a1('0xa8')]=function(_0x59f597,_0x3b4faf){var _0x3bad05={};if(_0x59f597[_0x65a1('0x38')][_0x65a1('0x36')]&&_0x59f597[_0x65a1('0x38')]['type']==='from'){_0x3bad05['from']=_0x59f597[_0x65a1('0xa9')]['id'];}else{_0x3bad05['id']=_0x59f597[_0x65a1('0xa9')]['id'];}var _0x49f225={'raw':![],'where':_0x3bad05},_0x2fa04d={};_0x2fa04d['model']=_[_0x65a1('0x39')](db[_0x65a1('0x34')][_0x65a1('0xaa')]);_0x2fa04d[_0x65a1('0x38')]=_['keys'](_0x59f597['query']);_0x2fa04d['filters']=_[_0x65a1('0x3b')](_0x2fa04d[_0x65a1('0x37')],_0x2fa04d[_0x65a1('0x38')]);_0x49f225['attributes']=_[_0x65a1('0x3b')](_0x2fa04d[_0x65a1('0x37')],qs[_0x65a1('0x3c')](_0x59f597['query'][_0x65a1('0x3c')]));_0x49f225[_0x65a1('0x3d')]=_0x49f225[_0x65a1('0x3d')][_0x65a1('0x61')]?_0x49f225[_0x65a1('0x3d')]:_0x2fa04d[_0x65a1('0x37')];if(_0x59f597[_0x65a1('0x38')][_0x65a1('0xab')]){_0x49f225[_0x65a1('0xac')]=[{'all':!![]}];}_0x49f225=_['merge']({},_0x49f225,_0x59f597[_0x65a1('0xad')]);return db[_0x65a1('0x34')]['find'](_0x49f225)['then'](handleEntityNotFound(_0x3b4faf,null))['then'](respondWithResult(_0x3b4faf,null))[_0x65a1('0x32')](handleError(_0x3b4faf,null));};exports['create']=function(_0x4eace7,_0x1c146a){return db[_0x65a1('0x34')][_0x65a1('0xae')](_0x4eace7[_0x65a1('0x6d')],{})[_0x65a1('0x26')](respondWithResult(_0x1c146a,0xc9))[_0x65a1('0x32')](handleError(_0x1c146a,null));};exports[_0x65a1('0x25')]=function(_0x58c6f8,_0x21e7d5){if(_0x58c6f8[_0x65a1('0x6d')]['id']){delete _0x58c6f8[_0x65a1('0x6d')]['id'];}return db[_0x65a1('0x34')]['find']({'where':{'id':_0x58c6f8[_0x65a1('0xa9')]['id']}})[_0x65a1('0x26')](handleEntityNotFound(_0x21e7d5,null))[_0x65a1('0x26')](saveUpdates(_0x58c6f8[_0x65a1('0x6d')],null))[_0x65a1('0x26')](respondWithResult(_0x21e7d5,null))[_0x65a1('0x32')](handleError(_0x21e7d5,null));};exports[_0x65a1('0x27')]=function(_0x27172e,_0x33d6fd){return db[_0x65a1('0x34')]['find']({'where':{'id':_0x27172e['params']['id']}})[_0x65a1('0x26')](handleEntityNotFound(_0x33d6fd,null))['then'](removeEntity(_0x33d6fd,null))[_0x65a1('0x32')](handleError(_0x33d6fd,null));};exports[_0x65a1('0xaf')]=function(_0x2f70fa,_0x4d3900){return db[_0x65a1('0x34')][_0x65a1('0xaf')]()['then'](respondWithResult(_0x4d3900,null))[_0x65a1('0x32')](handleError(_0x4d3900,null));};exports[_0x65a1('0xb0')]=function(_0xc6255a,_0x4cd90d,_0x5d51a0){return db[_0x65a1('0xb1')][_0x65a1('0x65')]({'where':{'id':_0xc6255a['params']['id']}})[_0x65a1('0x26')](handleEntityNotFound(_0x4cd90d,null))[_0x65a1('0x26')](function(_0x4df57a){if(_0x4df57a){return _0x4df57a['addMessage'](_0xc6255a[_0x65a1('0x6d')][_0x65a1('0xb2')],_['omit'](_0xc6255a[_0x65a1('0x6d')],[_0x65a1('0xb2'),'id'])||{});}})['then'](respondWithResult(_0x4cd90d,null))['catch'](handleError(_0x4cd90d,null));};exports[_0x65a1('0xb3')]=function(_0x561d83,_0x4bb3a1,_0xd4ce72){var _0x20ab22={'raw':![],'where':{}};var _0x540a59={};var _0x1e514e={'count':0x0,'rows':[]};return db['OpenchannelInteraction']['findOne']({'where':{'id':_0x561d83['params']['id']}})[_0x65a1('0x26')](handleEntityNotFound(_0x4bb3a1,null))[_0x65a1('0x26')](function(_0x327976){if(_0x327976){_0x540a59[_0x65a1('0x37')]=_['keys'](db[_0x65a1('0xb1')][_0x65a1('0xaa')]);_0x540a59[_0x65a1('0x38')]=_[_0x65a1('0x39')](_0x561d83[_0x65a1('0x38')]);_0x540a59[_0x65a1('0x3a')]=_['intersection'](_0x540a59[_0x65a1('0x37')],_0x540a59[_0x65a1('0x38')]);_0x20ab22[_0x65a1('0x3d')]=_[_0x65a1('0x3b')](_0x540a59[_0x65a1('0x37')],qs[_0x65a1('0x3c')](_0x561d83[_0x65a1('0x38')][_0x65a1('0x3c')]));_0x20ab22[_0x65a1('0x3d')]=_0x20ab22[_0x65a1('0x3d')]['length']?_0x20ab22[_0x65a1('0x3d')]:_0x540a59[_0x65a1('0x37')];if(!_0x561d83['query'][_0x65a1('0xb4')](_0x65a1('0xb5'))){_0x20ab22[_0x65a1('0x20')]=qs[_0x65a1('0x20')](_0x561d83[_0x65a1('0x38')][_0x65a1('0x20')]);_0x20ab22[_0x65a1('0x1f')]=qs[_0x65a1('0x1f')](_0x561d83[_0x65a1('0x38')][_0x65a1('0x1f')]);}_0x20ab22[_0x65a1('0x3e')]=qs[_0x65a1('0x3f')](_0x561d83[_0x65a1('0x38')][_0x65a1('0x3f')]);_0x20ab22['where']=qs[_0x65a1('0x3a')](_['pick'](_0x561d83[_0x65a1('0x38')],_0x540a59['filters']));_0x20ab22[_0x65a1('0x40')]['OpenchannelInteractionId']=_0x327976['id'];if(_0x561d83[_0x65a1('0x38')][_0x65a1('0x7e')]){_0x20ab22['where']=_['merge'](_0x20ab22[_0x65a1('0x40')],{'$or':_[_0x65a1('0x2c')](_0x20ab22[_0x65a1('0x3d')],function(_0x3755fb){var _0x417bc2={};_0x417bc2[_0x3755fb]={'$like':'%'+_0x561d83[_0x65a1('0x38')][_0x65a1('0x7e')]+'%'};return _0x417bc2;})});}if(_0x561d83[_0x65a1('0x38')][_0x65a1('0x76')]){var _0x25084a=_0x561d83[_0x65a1('0x38')][_0x65a1('0x76')][_0x65a1('0x30')](',');var _0x2ad987={};_0x2ad987[_0x25084a[0x0]]={'$gte':moment(_0x25084a[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x20ab22[_0x65a1('0x40')]=_[_0x65a1('0x92')](_0x20ab22[_0x65a1('0x40')],_0x2ad987);}_0x20ab22=_[_0x65a1('0x92')]({},_0x20ab22,_0x561d83[_0x65a1('0xad')]);return db['OpenchannelMessage'][_0x65a1('0x1e')]({'where':_0x20ab22[_0x65a1('0x40')]})[_0x65a1('0x26')](function(_0x347c0a){_0x1e514e[_0x65a1('0x1e')]=_0x347c0a;if(_0x561d83[_0x65a1('0x38')][_0x65a1('0xab')]){_0x20ab22['include']=[{'all':!![]}];}return db[_0x65a1('0xb1')][_0x65a1('0xb6')](_0x20ab22);})[_0x65a1('0x26')](function(_0x942a30){_0x1e514e[_0x65a1('0xb7')]=_0x942a30;return _0x1e514e;});}})['then'](respondWithFilteredResult(_0x4bb3a1,_0x20ab22))[_0x65a1('0x32')](handleError(_0x4bb3a1,null));};exports[_0x65a1('0xb8')]=function(_0x3ccc2b,_0x2184cb,_0x2f98da){return db[_0x65a1('0x34')]['find']({'where':{'id':_0x3ccc2b[_0x65a1('0xa9')]['id']}})[_0x65a1('0x26')](handleEntityNotFound(_0x2184cb,null))[_0x65a1('0x26')](function(_0x3edc6d){if(_0x3edc6d){return _0x3edc6d[_0x65a1('0xb9')](_0x3ccc2b[_0x65a1('0x6d')][_0x65a1('0xb2')],_[_0x65a1('0xba')](_0x3ccc2b[_0x65a1('0x6d')],[_0x65a1('0xb2'),'id'])||{})[_0x65a1('0xbb')](function(){return db[_0x65a1('0x69')]['findAll']({'attributes':['id',_0x65a1('0x2a'),_0x65a1('0xbc')],'where':{'id':_0x3ccc2b[_0x65a1('0x6d')][_0x65a1('0xb2')]}});})['then'](function(_0x16830b){socket[_0x65a1('0xbd')]('openchannelInteractionTags:save',{'id':Number(_0x3ccc2b['params']['id']),'tags':_0x16830b||[]});return{'id':Number(_0x3ccc2b[_0x65a1('0xa9')]['id']),'tags':_0x16830b||[]};});}})[_0x65a1('0x26')](respondWithResult(_0x2184cb,null))['catch'](handleError(_0x2184cb,null));};exports[_0x65a1('0xbe')]=function(_0x7fa723,_0x1d485d,_0x12ed7e){return db[_0x65a1('0x34')][_0x65a1('0x65')]({'where':{'id':_0x7fa723[_0x65a1('0xa9')]['id']}})[_0x65a1('0x26')](handleEntityNotFound(_0x1d485d,null))[_0x65a1('0x26')](function(_0x10b0a0){if(_0x10b0a0){return _0x10b0a0[_0x65a1('0xbe')](_0x7fa723[_0x65a1('0x38')][_0x65a1('0xb2')]);}})[_0x65a1('0x26')](respondWithStatusCode(_0x1d485d,null))[_0x65a1('0x32')](handleError(_0x1d485d,null));};exports['download']=function(_0x25b2b4,_0x2b8eab){var _0x4f4818=moment()[_0x65a1('0xbf')]()[_0x65a1('0x91')]();var _0x1c06fe=path[_0x65a1('0xc0')](config[_0x65a1('0xc1')],_0x65a1('0xc2'),_0x65a1('0xc3'),_0x65a1('0xc4'));var _0xef2eff=path[_0x65a1('0xc0')](config[_0x65a1('0xc1')],_0x65a1('0xc2'),'files',_0x65a1('0xc5'));var _0x367f0e=path[_0x65a1('0xc0')](_0x1c06fe,_0x4f4818);var _0x242821=util[_0x65a1('0xc6')]('transcript-%d-%s.zip',_0x25b2b4[_0x65a1('0xa9')]['id'],_0x4f4818);var _0x4ed945=path[_0x65a1('0xc0')](_0x1c06fe,_0x242821);var _0x4c2942=[];_0x4c2942[_0x65a1('0x31')]({'model':db['User'],'as':_0x65a1('0xc7'),'attributes':['id','fullname'],'raw':!![]});_0x4c2942[_0x65a1('0x31')]({'model':db['CmContact'],'as':_0x65a1('0xc8'),'attributes':['id',_0x65a1('0xc9'),_0x65a1('0xca')],'raw':!![]});if(_0x25b2b4[_0x65a1('0x38')][_0x65a1('0xc5')]){_0x4c2942[_0x65a1('0x31')]({'model':db[_0x65a1('0xcb')],'as':'Attachment','raw':!![]});}var _0x2724d0=[{'model':db['OpenchannelMessage'],'as':_0x65a1('0xcc'),'attributes':['id',_0x65a1('0x6d'),_0x65a1('0x74'),_0x65a1('0xcd'),_0x65a1('0xce'),_0x65a1('0x7b')],'include':_0x4c2942}];_0x2724d0['push']({'model':db[_0x65a1('0xcf')],'as':_0x65a1('0xd0'),'attributes':['id','name']});_0x2724d0[_0x65a1('0x31')]({'model':db['User'],'as':_0x65a1('0xd1'),'attributes':['id',_0x65a1('0x2d')]});return db[_0x65a1('0x34')][_0x65a1('0x65')]({'where':{'id':_0x25b2b4[_0x65a1('0xa9')]['id']},'include':_0x2724d0})['then'](handleEntityNotFound(_0x2b8eab,null))['then'](function(_0x313056){if(_0x313056){var _0x4e3b4e=_0x313056[_0x65a1('0xd2')]({'plain':!![]});fs[_0x65a1('0xd3')](_0x367f0e);var _0x1daa17={'channel':'Openchannel','account':_0x4e3b4e[_0x65a1('0xd0')][_0x65a1('0x2a')],'agent':_0x4e3b4e[_0x65a1('0xd1')]?_0x4e3b4e[_0x65a1('0xd1')][_0x65a1('0x2d')]:'N.A.','createdAt':moment(_0x4e3b4e['createdAt'])[_0x65a1('0xc6')](_0x65a1('0xd4'))[_0x65a1('0x91')](),'closedAt':_0x4e3b4e[_0x65a1('0xd5')]?moment(_0x4e3b4e[_0x65a1('0xd6')])[_0x65a1('0xc6')]('YYYY-MM-DD\x20HH:mm:ss')[_0x65a1('0x91')]():'','disposition':_0x4e3b4e['disposition'],'visibility':_0x4e3b4e[_0x65a1('0xd7')]?_0x65a1('0xd8'):'Private','messages':_(_0x4e3b4e[_0x65a1('0xcc')])[_0x65a1('0x7e')]({'secret':![]})[_0x65a1('0x2c')](function(_0x22eca7){if(_0x22eca7[_0x65a1('0xcb')]){var _0x56bc7d=path[_0x65a1('0xc0')](_0xef2eff,_0x22eca7[_0x65a1('0xcb')][_0x65a1('0xd9')]);if(fs[_0x65a1('0xda')](_0x56bc7d)){fs[_0x65a1('0xdb')](_0x56bc7d)['pipe'](fs[_0x65a1('0xdc')](path[_0x65a1('0xc0')](_0x367f0e,_0x22eca7[_0x65a1('0xcb')]['basename'])));}}return{'date':moment(_0x22eca7[_0x65a1('0x74')])[_0x65a1('0xc6')]('YYYY-MM-DD\x20HH:mm:ss')[_0x65a1('0x91')](),'sender':_0x22eca7[_0x65a1('0xcd')]===_0x65a1('0xdd')?_0x22eca7[_0x65a1('0xc7')]?_0x22eca7['User'][_0x65a1('0x2d')]:'System':_0x22eca7[_0x65a1('0xc8')]['firstName']+(_0x22eca7[_0x65a1('0xc8')][_0x65a1('0xca')]?'\x20'+_0x22eca7[_0x65a1('0xc8')][_0x65a1('0xca')]:''),'body':_0x22eca7[_0x65a1('0xcb')]?_0x22eca7[_0x65a1('0xcb')][_0x65a1('0xd9')]:_0x22eca7[_0x65a1('0x6d')],'direction':_0x22eca7[_0x65a1('0xcd')]===_0x65a1('0xdd')?'A':'C','secret':_0x22eca7[_0x65a1('0xce')],'read':_0x22eca7[_0x65a1('0x7b')],'attachment':_0x22eca7[_0x65a1('0xcb')]};})[_0x65a1('0x60')]()};return ejs[_0x65a1('0xde')](path[_0x65a1('0xc0')](config[_0x65a1('0xc1')],_0x65a1('0xc2'),'views',_0x65a1('0xdf')),{'interaction':_0x1daa17})[_0x65a1('0x26')](function(_0x475a0c){var _0x2868ed=path['join'](_0x367f0e,_0x65a1('0xe0')+_0x4e3b4e['id']+'-'+_0x4f4818+'.pdf');var _0x5ef5d0={'path':_0x2868ed,'channel':_0x65a1('0xe1'),'interactionId':_0x4e3b4e['id']};return pdf[_0x65a1('0xe2')](_0x475a0c,_0x5ef5d0);})[_0x65a1('0x26')](function(){return new BPromise(function(_0x5aa893,_0x2faaf5){zipdir(_0x367f0e,{'saveTo':_0x4ed945},function(_0x53daf0,_0x2efe88){if(_0x53daf0)return _0x2faaf5(_0x53daf0);return _0x5aa893(_0x2efe88);});})['then'](function(){return new BPromise(function(_0x227d81,_0x1d2fb8){rimraf(_0x367f0e,function(_0x2c17a3){if(_0x2c17a3)_0x1d2fb8(_0x2c17a3);return _0x227d81();});});})[_0x65a1('0x26')](function(){return _0x2b8eab['download'](_0x4ed945,_0x242821,function(_0x436f92){if(_0x436f92){console[_0x65a1('0xe3')](_0x65a1('0xe4'),_0x436f92);}else{fs[_0x65a1('0xe5')](_0x4ed945);}});});});}else{return _0x2b8eab['sendStatus'](0xc8);}})[_0x65a1('0x32')](handleError(_0x2b8eab,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a06=['then','setDataValue','Users','findAll','length','emit','hasOwnProperty','hook','exports','../../mysqldb','OpenchannelInteraction','OpenchannelMessage','setMaxListeners','save','update','remove'];(function(_0x42b8cb,_0x21a5bf){var _0x563990=function(_0x27c7ca){while(--_0x27c7ca){_0x42b8cb['push'](_0x42b8cb['shift']());}};_0x563990(++_0x21a5bf);}(_0x1a06,0xd9));var _0x61a0=function(_0xfc7799,_0x39c31e){_0xfc7799=_0xfc7799-0x0;var _0x5ebecb=_0x1a06[_0xfc7799];return _0x5ebecb;};'use strict';var EventEmitter=require('events');var OpenchannelInteraction=require(_0x61a0('0x0'))['db'][_0x61a0('0x1')];var OpenchannelMessage=require(_0x61a0('0x0'))['db'][_0x61a0('0x2')];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0x61a0('0x3')](0x0);var events={'afterCreate':_0x61a0('0x4'),'afterUpdate':_0x61a0('0x5'),'afterDestroy':_0x61a0('0x6')};function emitEvent(_0x32bd27){return function(_0xf41915,_0x173b2d,_0x40d5ef){_0xf41915['getUsers']({'attributes':['id'],'raw':!![]})[_0x61a0('0x7')](function(_0x258614){_0xf41915[_0x61a0('0x8')](_0x61a0('0x9'),_0x258614['map'](function(_0x228e7a){return{'id':_0x228e7a['id']};}));return OpenchannelMessage[_0x61a0('0xa')]({'where':{'OpenchannelInteractionId':_0xf41915['id'],'direction':'in','read':![]},'raw':!![]});})[_0x61a0('0x7')](function(_0x1e2cb2){_0xf41915['setDataValue']('unreadMessages',_0x1e2cb2[_0x61a0('0xb')]);OpenchannelInteractionEvents[_0x61a0('0xc')](_0x32bd27+':'+_0xf41915['id'],_0xf41915);OpenchannelInteractionEvents[_0x61a0('0xc')](_0x32bd27,_0xf41915);_0x40d5ef(null);})['catch'](_0x40d5ef(null));};}for(var e in events){if(events[_0x61a0('0xd')](e)){var event=events[e];OpenchannelInteraction[_0x61a0('0xe')](e,emitEvent(event));}}module[_0x61a0('0xf')]=OpenchannelInteractionEvents;
\ No newline at end of file
+var _0x19a2=['hasOwnProperty','hook','exports','events','../../mysqldb','OpenchannelInteraction','OpenchannelMessage','setMaxListeners','save','update','getUsers','then','Users','map','unreadMessages','length','emit'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x19a2,0x102));var _0x219a=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x19a2[_0x20a584];return _0x4b41a8;};'use strict';var EventEmitter=require(_0x219a('0x0'));var OpenchannelInteraction=require(_0x219a('0x1'))['db'][_0x219a('0x2')];var OpenchannelMessage=require('../../mysqldb')['db'][_0x219a('0x3')];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0x219a('0x4')](0x0);var events={'afterCreate':_0x219a('0x5'),'afterUpdate':_0x219a('0x6'),'afterDestroy':'remove'};function emitEvent(_0xacc865){return function(_0x29020c,_0x3109a4,_0x1b52fd){_0x29020c[_0x219a('0x7')]({'attributes':['id'],'raw':!![]})[_0x219a('0x8')](function(_0x10d9dc){_0x29020c['setDataValue'](_0x219a('0x9'),_0x10d9dc[_0x219a('0xa')](function(_0x570a1a){return{'id':_0x570a1a['id']};}));return OpenchannelMessage['findAll']({'where':{'OpenchannelInteractionId':_0x29020c['id'],'direction':'in','read':![]},'raw':!![]});})[_0x219a('0x8')](function(_0x24c157){_0x29020c['setDataValue'](_0x219a('0xb'),_0x24c157[_0x219a('0xc')]);OpenchannelInteractionEvents[_0x219a('0xd')](_0xacc865+':'+_0x29020c['id'],_0x29020c);OpenchannelInteractionEvents[_0x219a('0xd')](_0xacc865,_0x29020c);_0x1b52fd(null);})['catch'](_0x1b52fd(null));};}for(var e in events){if(events[_0x219a('0xe')](e)){var event=events[e];OpenchannelInteraction[_0x219a('0xf')](e,emitEvent(event));}}module[_0x219a('0x10')]=OpenchannelInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc7da=['utf8mb4_unicode_ci','closed','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./openchannelInteraction.attributes','exports','define','OpenchannelInteraction','openchannel_interactions','utf8mb4'];(function(_0x39e2d7,_0x1b15f6){var _0x413d0d=function(_0x3af71d){while(--_0x3af71d){_0x39e2d7['push'](_0x39e2d7['shift']());}};_0x413d0d(++_0x1b15f6);}(_0xc7da,0x16c));var _0xac7d=function(_0x194077,_0x11aa7b){_0x194077=_0x194077-0x0;var _0xce022f=_0xc7da[_0x194077];return _0xce022f;};'use strict';var _=require(_0xac7d('0x0'));var util=require(_0xac7d('0x1'));var logger=require(_0xac7d('0x2'))(_0xac7d('0x3'));var moment=require(_0xac7d('0x4'));var BPromise=require(_0xac7d('0x5'));var rp=require(_0xac7d('0x6'));var fs=require('fs');var path=require(_0xac7d('0x7'));var rimraf=require(_0xac7d('0x8'));var config=require(_0xac7d('0x9'));var attributes=require(_0xac7d('0xa'));module[_0xac7d('0xb')]=function(_0xeaac6e,_0x2de79b){return _0xeaac6e[_0xac7d('0xc')](_0xac7d('0xd'),attributes,{'tableName':_0xac7d('0xe'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xac7d('0xf'),'collate':_0xac7d('0x10'),'hooks':{'beforeUpdate':function(_0xccab79,_0x5556d2,_0x2d6da3){if(_0xccab79['changed'](_0xac7d('0x11'))){_0xccab79['closedAt']=moment()['format'](_0xac7d('0x12'));}_0x2d6da3(null,_0xccab79);}}});};
\ No newline at end of file
+var _0x16a8=['util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./openchannelInteraction.attributes','OpenchannelInteraction','openchannel_interactions','utf8mb4','utf8mb4_unicode_ci','changed','closed','format','lodash'];(function(_0x1969a7,_0x5a133a){var _0x3d665f=function(_0x39c64b){while(--_0x39c64b){_0x1969a7['push'](_0x1969a7['shift']());}};_0x3d665f(++_0x5a133a);}(_0x16a8,0x1db));var _0x816a=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x16a8[_0x2641f9];return _0x585741;};'use strict';var _=require(_0x816a('0x0'));var util=require(_0x816a('0x1'));var logger=require(_0x816a('0x2'))(_0x816a('0x3'));var moment=require(_0x816a('0x4'));var BPromise=require(_0x816a('0x5'));var rp=require(_0x816a('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x816a('0x7'));var config=require(_0x816a('0x8'));var attributes=require(_0x816a('0x9'));module['exports']=function(_0x35b21e,_0x575a8b){return _0x35b21e['define'](_0x816a('0xa'),attributes,{'tableName':_0x816a('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x816a('0xc'),'collate':_0x816a('0xd'),'hooks':{'beforeUpdate':function(_0x5233fe,_0x3de5fc,_0x56385d){if(_0x5233fe[_0x816a('0xe')](_0x816a('0xf'))){_0x5233fe['closedAt']=moment()[_0x816a('0x10')]('YYYY-MM-DD\x20HH:mm:ss');}_0x56385d(null,_0x5233fe);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf29f=['client','http','redis','defaults','localhost','socket.io-emitter','register','OpenchannelInteraction,\x20%s,\x20%s','request\x20sent','debug','OpenchannelInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','UpdateOpenchannelInteraction','OpenchannelInteraction','body','options','raw','where','attributes','limit','then','find','addTags','ids','AddTags','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x5cbf0e,_0x4cd140){var _0x1c76f8=function(_0xcc9be4){while(--_0xcc9be4){_0x5cbf0e['push'](_0x5cbf0e['shift']());}};_0x1c76f8(++_0x4cd140);}(_0xf29f,0xf6));var _0xff29=function(_0x1762e9,_0xf30f2c){_0x1762e9=_0x1762e9-0x0;var _0x45a20a=_0xf29f[_0x1762e9];return _0x45a20a;};'use strict';var _=require(_0xff29('0x0'));var util=require(_0xff29('0x1'));var moment=require(_0xff29('0x2'));var BPromise=require(_0xff29('0x3'));var rs=require(_0xff29('0x4'));var fs=require('fs');var Redis=require(_0xff29('0x5'));var db=require(_0xff29('0x6'))['db'];var utils=require(_0xff29('0x7'));var logger=require(_0xff29('0x8'))(_0xff29('0x9'));var config=require(_0xff29('0xa'));var jayson=require(_0xff29('0xb'));var client=jayson[_0xff29('0xc')][_0xff29('0xd')]({'port':0x232a});config[_0xff29('0xe')]=_[_0xff29('0xf')](config[_0xff29('0xe')],{'host':_0xff29('0x10'),'port':0x18eb});var socket=require(_0xff29('0x11'))(new Redis(config[_0xff29('0xe')]));require('./openchannelInteraction.socket')[_0xff29('0x12')](socket);function respondWithRpcPromise(_0x58f385,_0x1b1d7c,_0x4f8a45){return new BPromise(function(_0x1becff,_0x8b7a70){return client['request'](_0x58f385,_0x4f8a45)['then'](function(_0x313736){logger['info'](_0xff29('0x13'),_0x1b1d7c,_0xff29('0x14'));logger[_0xff29('0x15')](_0xff29('0x16'),_0x1b1d7c,_0xff29('0x14'),JSON[_0xff29('0x17')](_0x313736));if(_0x313736['error']){if(_0x313736[_0xff29('0x18')][_0xff29('0x19')]===0x1f4){logger[_0xff29('0x18')](_0xff29('0x13'),_0x1b1d7c,_0x313736[_0xff29('0x18')][_0xff29('0x1a')]);return _0x8b7a70(_0x313736[_0xff29('0x18')][_0xff29('0x1a')]);}logger[_0xff29('0x18')](_0xff29('0x13'),_0x1b1d7c,_0x313736[_0xff29('0x18')][_0xff29('0x1a')]);return _0x1becff(_0x313736[_0xff29('0x18')][_0xff29('0x1a')]);}else{logger[_0xff29('0x1b')](_0xff29('0x13'),_0x1b1d7c,_0xff29('0x14'));_0x1becff(_0x313736[_0xff29('0x1c')][_0xff29('0x1a')]);}})[_0xff29('0x1d')](function(_0x585425){logger[_0xff29('0x18')](_0xff29('0x13'),_0x1b1d7c,_0x585425);_0x8b7a70(_0x585425);});});}exports[_0xff29('0x1e')]=function(_0x5c1f0a){var _0x5369f5=this;return new Promise(function(_0x23e7b6,_0x9e1992){return db[_0xff29('0x1f')]['update'](_0x5c1f0a[_0xff29('0x20')],{'raw':_0x5c1f0a[_0xff29('0x21')]?_0x5c1f0a[_0xff29('0x21')][_0xff29('0x22')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5c1f0a[_0xff29('0x21')]?_0x5c1f0a['options'][_0xff29('0x23')]||null:null,'attributes':_0x5c1f0a[_0xff29('0x21')]?_0x5c1f0a[_0xff29('0x21')][_0xff29('0x24')]||null:null,'limit':_0x5c1f0a['options']?_0x5c1f0a[_0xff29('0x21')][_0xff29('0x25')]||null:null})[_0xff29('0x26')](function(_0x18a451){logger[_0xff29('0x1b')](_0xff29('0x1e'),_0x5c1f0a);logger[_0xff29('0x15')](_0xff29('0x1e'),_0x5c1f0a,JSON[_0xff29('0x17')](_0x18a451));_0x23e7b6(_0x18a451);})[_0xff29('0x1d')](function(_0x196148){logger[_0xff29('0x18')]('UpdateOpenchannelInteraction',_0x196148['message'],_0x5c1f0a);_0x9e1992(_0x5369f5[_0xff29('0x18')](0x1f4,_0x196148[_0xff29('0x1a')]));});});};exports['AddTagsToOpenchannelInteraction']=function(_0x467931){return new Promise(function(_0x21e46e,_0x1d1b03){return db[_0xff29('0x1f')][_0xff29('0x27')]({'where':_0x467931['options']?_0x467931[_0xff29('0x21')][_0xff29('0x23')]||null:null})[_0xff29('0x26')](function(_0x12b800){if(_0x12b800){return _0x12b800[_0xff29('0x28')](_0x467931[_0xff29('0x20')]['ids'],_['omit'](_0x467931['body'],[_0xff29('0x29'),'id'])||{});}})['spread'](function(_0x7d2df0){logger[_0xff29('0x1b')](_0xff29('0x2a'),_0x467931);logger[_0xff29('0x15')]('AddTags',_0x467931,JSON[_0xff29('0x17')](_0x7d2df0));_0x21e46e(_0x7d2df0);})[_0xff29('0x1d')](function(_0x1dd50a){logger[_0xff29('0x18')]('AddTags',_0x1dd50a[_0xff29('0x1a')],_0x467931);_0x1d1b03(_this['error'](0x1f4,_0x1dd50a[_0xff29('0x1a')]));});});};
\ No newline at end of file
+var _0xec73=['error','code','message','result','UpdateOpenchannelInteraction','OpenchannelInteraction','update','body','options','raw','where','attributes','AddTagsToOpenchannelInteraction','find','addTags','ids','omit','AddTags','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','socket.io-emitter','./openchannelInteraction.socket','register','request','then','info','OpenchannelInteraction,\x20%s,\x20%s','request\x20sent','debug','OpenchannelInteraction,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x2e871f,_0x752500){var _0x28adbf=function(_0x7d1141){while(--_0x7d1141){_0x2e871f['push'](_0x2e871f['shift']());}};_0x28adbf(++_0x752500);}(_0xec73,0x1d5));var _0x3ec7=function(_0xaa11aa,_0x32a73b){_0xaa11aa=_0xaa11aa-0x0;var _0x4dd544=_0xec73[_0xaa11aa];return _0x4dd544;};'use strict';var _=require('lodash');var util=require(_0x3ec7('0x0'));var moment=require(_0x3ec7('0x1'));var BPromise=require(_0x3ec7('0x2'));var rs=require(_0x3ec7('0x3'));var fs=require('fs');var Redis=require(_0x3ec7('0x4'));var db=require(_0x3ec7('0x5'))['db'];var utils=require(_0x3ec7('0x6'));var logger=require(_0x3ec7('0x7'))(_0x3ec7('0x8'));var config=require(_0x3ec7('0x9'));var jayson=require(_0x3ec7('0xa'));var client=jayson[_0x3ec7('0xb')][_0x3ec7('0xc')]({'port':0x232a});config['redis']=_[_0x3ec7('0xd')](config[_0x3ec7('0xe')],{'host':'localhost','port':0x18eb});var socket=require(_0x3ec7('0xf'))(new Redis(config[_0x3ec7('0xe')]));require(_0x3ec7('0x10'))[_0x3ec7('0x11')](socket);function respondWithRpcPromise(_0x212242,_0x163797,_0x2ec492){return new BPromise(function(_0x25b0c0,_0x26be4d){return client[_0x3ec7('0x12')](_0x212242,_0x2ec492)[_0x3ec7('0x13')](function(_0x501087){logger[_0x3ec7('0x14')](_0x3ec7('0x15'),_0x163797,_0x3ec7('0x16'));logger[_0x3ec7('0x17')](_0x3ec7('0x18'),_0x163797,_0x3ec7('0x16'),JSON[_0x3ec7('0x19')](_0x501087));if(_0x501087[_0x3ec7('0x1a')]){if(_0x501087[_0x3ec7('0x1a')][_0x3ec7('0x1b')]===0x1f4){logger['error'](_0x3ec7('0x15'),_0x163797,_0x501087['error'][_0x3ec7('0x1c')]);return _0x26be4d(_0x501087[_0x3ec7('0x1a')][_0x3ec7('0x1c')]);}logger[_0x3ec7('0x1a')](_0x3ec7('0x15'),_0x163797,_0x501087[_0x3ec7('0x1a')][_0x3ec7('0x1c')]);return _0x25b0c0(_0x501087[_0x3ec7('0x1a')][_0x3ec7('0x1c')]);}else{logger[_0x3ec7('0x14')]('OpenchannelInteraction,\x20%s,\x20%s',_0x163797,_0x3ec7('0x16'));_0x25b0c0(_0x501087[_0x3ec7('0x1d')][_0x3ec7('0x1c')]);}})['catch'](function(_0x21ffbf){logger['error'](_0x3ec7('0x15'),_0x163797,_0x21ffbf);_0x26be4d(_0x21ffbf);});});}exports[_0x3ec7('0x1e')]=function(_0xbc024b){var _0xb6c1fa=this;return new Promise(function(_0x3e325a,_0x20f8b1){return db[_0x3ec7('0x1f')][_0x3ec7('0x20')](_0xbc024b[_0x3ec7('0x21')],{'raw':_0xbc024b[_0x3ec7('0x22')]?_0xbc024b[_0x3ec7('0x22')][_0x3ec7('0x23')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xbc024b['options']?_0xbc024b[_0x3ec7('0x22')][_0x3ec7('0x24')]||null:null,'attributes':_0xbc024b[_0x3ec7('0x22')]?_0xbc024b[_0x3ec7('0x22')][_0x3ec7('0x25')]||null:null,'limit':_0xbc024b[_0x3ec7('0x22')]?_0xbc024b[_0x3ec7('0x22')]['limit']||null:null})[_0x3ec7('0x13')](function(_0x4b268c){logger['info'](_0x3ec7('0x1e'),_0xbc024b);logger[_0x3ec7('0x17')](_0x3ec7('0x1e'),_0xbc024b,JSON[_0x3ec7('0x19')](_0x4b268c));_0x3e325a(_0x4b268c);})['catch'](function(_0x2b9a4f){logger[_0x3ec7('0x1a')](_0x3ec7('0x1e'),_0x2b9a4f[_0x3ec7('0x1c')],_0xbc024b);_0x20f8b1(_0xb6c1fa[_0x3ec7('0x1a')](0x1f4,_0x2b9a4f[_0x3ec7('0x1c')]));});});};exports[_0x3ec7('0x26')]=function(_0x1192da){return new Promise(function(_0x26c4e5,_0x4cd81c){return db[_0x3ec7('0x1f')][_0x3ec7('0x27')]({'where':_0x1192da[_0x3ec7('0x22')]?_0x1192da['options'][_0x3ec7('0x24')]||null:null})[_0x3ec7('0x13')](function(_0x2f115a){if(_0x2f115a){return _0x2f115a[_0x3ec7('0x28')](_0x1192da[_0x3ec7('0x21')][_0x3ec7('0x29')],_[_0x3ec7('0x2a')](_0x1192da['body'],['ids','id'])||{});}})['spread'](function(_0x46988d){logger[_0x3ec7('0x14')](_0x3ec7('0x2b'),_0x1192da);logger[_0x3ec7('0x17')](_0x3ec7('0x2b'),_0x1192da,JSON[_0x3ec7('0x19')](_0x46988d));_0x26c4e5(_0x46988d);})[_0x3ec7('0x2c')](function(_0x35011f){logger[_0x3ec7('0x1a')](_0x3ec7('0x2b'),_0x35011f['message'],_0x1192da);_0x4cd81c(_this[_0x3ec7('0x1a')](0x1f4,_0x35011f['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc3f4=['length','openchannelInteraction:','./openchannelInteraction.events','remove','update','removeListener'];(function(_0x28d18d,_0x55896b){var _0x470640=function(_0x57e78b){while(--_0x57e78b){_0x28d18d['push'](_0x28d18d['shift']());}};_0x470640(++_0x55896b);}(_0xc3f4,0x122));var _0x4c3f=function(_0x78e615,_0x96579d){_0x78e615=_0x78e615-0x0;var _0x278dfe=_0xc3f4[_0x78e615];return _0x278dfe;};'use strict';var OpenchannelInteractionEvents=require(_0x4c3f('0x0'));var events=['save',_0x4c3f('0x1'),_0x4c3f('0x2')];function createListener(_0x18de45,_0x426dd3){return function(_0x15cfa4){_0x426dd3['emit'](_0x18de45,_0x15cfa4);};}function removeListener(_0x24c1b3,_0x14eb14){return function(){OpenchannelInteractionEvents[_0x4c3f('0x3')](_0x24c1b3,_0x14eb14);};}exports['register']=function(_0x20c969){for(var _0x5eca4f=0x0,_0x520d25=events[_0x4c3f('0x4')];_0x5eca4f<_0x520d25;_0x5eca4f++){var _0xf297b5=events[_0x5eca4f];var _0x32b1d0=createListener(_0x4c3f('0x5')+_0xf297b5,_0x20c969);OpenchannelInteractionEvents['on'](_0xf297b5,_0x32b1d0);}};
\ No newline at end of file
+var _0x56ca=['remove','update','emit','length','openchannelInteraction:','./openchannelInteraction.events'];(function(_0x44b346,_0xeb097d){var _0x1c2f2b=function(_0x4e1f23){while(--_0x4e1f23){_0x44b346['push'](_0x44b346['shift']());}};_0x1c2f2b(++_0xeb097d);}(_0x56ca,0x6b));var _0xa56c=function(_0x26f5ae,_0x528985){_0x26f5ae=_0x26f5ae-0x0;var _0x484acb=_0x56ca[_0x26f5ae];return _0x484acb;};'use strict';var OpenchannelInteractionEvents=require(_0xa56c('0x0'));var events=['save',_0xa56c('0x1'),_0xa56c('0x2')];function createListener(_0x543df8,_0x113a23){return function(_0x5d1318){_0x113a23[_0xa56c('0x3')](_0x543df8,_0x5d1318);};}function removeListener(_0x370ae4,_0x2a3c10){return function(){OpenchannelInteractionEvents['removeListener'](_0x370ae4,_0x2a3c10);};}exports['register']=function(_0x3db4bf){for(var _0x157592=0x0,_0x4948d3=events[_0xa56c('0x4')];_0x157592<_0x4948d3;_0x157592++){var _0x1c9ee1=events[_0x157592];var _0x120f59=createListener(_0xa56c('0x5')+_0x1c9ee1,_0x3db4bf);OpenchannelInteractionEvents['on'](_0x1c9ee1,_0x120f59);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','tracked','openchannel','openchannelmessage:create','put','update','/:id/accept','accept','/:id/reject','reject','delete','destroy','multer','util'];(function(_0x2ab8f4,_0x192abd){var _0xf1bee6=function(_0x164784){while(--_0x164784){_0x2ab8f4['push'](_0x2ab8f4['shift']());}};_0xf1bee6(++_0x192abd);}(_0xd8b0,0xad));var _0x0d8b=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xd8b0[_0xa464c9];return _0x3d73c4;};'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('./openchannelMessage.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),interaction[_0x0d8b('0xe')](_0x0d8b('0xf'),_0x0d8b('0x10')),controller['create']);router[_0x0d8b('0x11')]('/:id',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x12')]);router[_0x0d8b('0x11')](_0x0d8b('0x13'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x14')]);router[_0x0d8b('0x11')](_0x0d8b('0x15'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x16')]);router[_0x0d8b('0x17')](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x18')]);module['exports']=router;
\ No newline at end of file
+var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','tracked','openchannel','openchannelmessage:create','put','update','/:id/accept','accept','/:id/reject','reject','delete','destroy','multer','util'];(function(_0x124298,_0x542004){var _0x35ac24=function(_0x49afe8){while(--_0x49afe8){_0x124298['push'](_0x124298['shift']());}};_0x35ac24(++_0x542004);}(_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'));var controller=require('./openchannelMessage.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),interaction[_0x0d8b('0xe')](_0x0d8b('0xf'),_0x0d8b('0x10')),controller['create']);router[_0x0d8b('0x11')]('/:id',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x12')]);router[_0x0d8b('0x11')](_0x0d8b('0x13'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x14')]);router[_0x0d8b('0x11')](_0x0d8b('0x15'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x16')]);router[_0x0d8b('0x17')](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x18')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0972=['out','DATE','STRING','TEXT','exports','medium','BOOLEAN','ENUM'];(function(_0x27fedb,_0x31c693){var _0x58ab78=function(_0x532732){while(--_0x532732){_0x27fedb['push'](_0x27fedb['shift']());}};_0x58ab78(++_0x31c693);}(_0x0972,0x64));var _0x2097=function(_0x3c237a,_0x36075a){_0x3c237a=_0x3c237a-0x0;var _0x232ec5=_0x0972[_0x3c237a];return _0x232ec5;};'use strict';var Sequelize=require('sequelize');module[_0x2097('0x0')]={'body':{'type':Sequelize['TEXT'](_0x2097('0x1')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'secret':{'type':Sequelize[_0x2097('0x2')],'defaultValue':![]},'direction':{'type':Sequelize[_0x2097('0x3')]('in','out'),'defaultValue':_0x2097('0x4'),'allowNull':![]},'readAt':{'type':Sequelize[_0x2097('0x5')]},'providerName':{'type':Sequelize[_0x2097('0x6')]},'providerResponse':{'type':Sequelize[_0x2097('0x7')]}};
\ No newline at end of file
+var _0xe5fb=['medium','BOOLEAN','out','DATE','STRING','TEXT','sequelize','exports'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xe5fb,0xce));var _0xbe5f=function(_0x200aa5,_0x197802){_0x200aa5=_0x200aa5-0x0;var _0x458200=_0xe5fb[_0x200aa5];return _0x458200;};'use strict';var Sequelize=require(_0xbe5f('0x0'));module[_0xbe5f('0x1')]={'body':{'type':Sequelize['TEXT'](_0xbe5f('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0xbe5f('0x3')],'defaultValue':![]},'secret':{'type':Sequelize[_0xbe5f('0x3')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0xbe5f('0x4')),'defaultValue':_0xbe5f('0x4'),'allowNull':![]},'readAt':{'type':Sequelize[_0xbe5f('0x5')]},'providerName':{'type':Sequelize[_0xbe5f('0x6')]},'providerResponse':{'type':Sequelize[_0xbe5f('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8785=['ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','email','internal','manual','interface','SIP/%s','channel','motionChannel','event','EventManager','acceptmessage','openchannel-interactions','reject','OpenchannelInteraction','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','fullname','rejectmessage','eml-format','rimraf','fast-json-patch','moment','bluebird','util','path','sox','ejs','lodash','squel','crypto','desk.js','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/license/util','../../mysqldb','redis','defaults','localhost','./openchannelMessage.socket','register','jayson/promise','http','client','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','save','end','stack','name','send','index','map','OpenchannelMessage','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','VIRTUAL','merge','options','where','includeAll','include','params','keys','find','create','body','destroy','describe','accept','openchannel','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','get','OpenchannelInteractionId','update','isNil','read1stAt','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','interaction','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'];(function(_0x23f0dc,_0x2191f0){var _0x644b4c=function(_0x38196b){while(--_0x38196b){_0x23f0dc['push'](_0x23f0dc['shift']());}};_0x644b4c(++_0x2191f0);}(_0x8785,0x1a4));var _0x5878=function(_0x1658af,_0x5dbcab){_0x1658af=_0x1658af-0x0;var _0x30d065=_0x8785[_0x1658af];return _0x30d065;};'use strict';var emlformat=require(_0x5878('0x0'));var rimraf=require(_0x5878('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5878('0x2'));var rp=require('request-promise');var moment=require(_0x5878('0x3'));var BPromise=require(_0x5878('0x4'));var Mustache=require('mustache');var util=require(_0x5878('0x5'));var path=require(_0x5878('0x6'));var sox=require(_0x5878('0x7'));var csv=require('to-csv');var ejs=require(_0x5878('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5878('0x9'));var squel=require(_0x5878('0xa'));var crypto=require(_0x5878('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x5878('0xc'));var toCsv=require(_0x5878('0xd'));var querystring=require('querystring');var Papa=require(_0x5878('0xe'));var Redis=require(_0x5878('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x5878('0x10'));var as=require(_0x5878('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5878('0x12'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x5878('0x13'));var db=require(_0x5878('0x14'))['db'];config[_0x5878('0x15')]=_[_0x5878('0x16')](config[_0x5878('0x15')],{'host':_0x5878('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x5878('0x15')]));require(_0x5878('0x18'))[_0x5878('0x19')](socket);var jayson=require(_0x5878('0x1a'));var client=jayson['client'][_0x5878('0x1b')]({'port':0x232c});var client9002=jayson[_0x5878('0x1c')]['http']({'port':0x232a});function respondWithRpcPromise(_0xcb615a,_0x1a9e75,_0x1b27c2,_0x34c386){return new BPromise(function(_0x939e28,_0x18b70e){var _0x284d0c=_0x34c386||client;return _0x284d0c['request'](_0xcb615a,_0x1b27c2)[_0x5878('0x1d')](function(_0x2af3e5){logger[_0x5878('0x1e')](_0x5878('0x1f'),_0x1a9e75,_0x5878('0x20'));logger[_0x5878('0x21')](_0x5878('0x22'),_0x1a9e75,'request\x20sent',JSON[_0x5878('0x23')](_0x2af3e5));if(_0x2af3e5[_0x5878('0x24')]){if(_0x2af3e5[_0x5878('0x24')][_0x5878('0x25')]===0x1f4){logger[_0x5878('0x24')](_0x5878('0x1f'),_0x1a9e75,_0x2af3e5['error']['message']);return _0x18b70e(_0x2af3e5[_0x5878('0x24')][_0x5878('0x26')]);}logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x1a9e75,_0x2af3e5['error'][_0x5878('0x26')]);return _0x939e28(_0x2af3e5[_0x5878('0x24')][_0x5878('0x26')]);}else{logger['info']('OpenchannelMessage,\x20%s,\x20%s',_0x1a9e75,'request\x20sent');_0x939e28(_0x2af3e5[_0x5878('0x27')][_0x5878('0x26')]);}})[_0x5878('0x28')](function(_0x302865){logger[_0x5878('0x24')](_0x5878('0x1f'),_0x1a9e75,_0x302865);_0x18b70e(_0x302865);});});}function respondWithStatusCode(_0x3a58d5,_0x5728a5){_0x5728a5=_0x5728a5||0xcc;return function(_0xce95da){if(_0xce95da){return _0x3a58d5[_0x5878('0x29')](_0x5728a5);}return _0x3a58d5[_0x5878('0x2a')](_0x5728a5)['end']();};}function respondWithResult(_0x2764d8,_0x224a9e){_0x224a9e=_0x224a9e||0xc8;return function(_0x2171db){if(_0x2171db){return _0x2764d8[_0x5878('0x2a')](_0x224a9e)[_0x5878('0x2b')](_0x2171db);}};}function respondWithFilteredResult(_0x5bcf72,_0x50763b){return function(_0x533365){if(_0x533365){var _0x178153=typeof _0x50763b[_0x5878('0x2c')]===_0x5878('0x2d')&&typeof _0x50763b[_0x5878('0x2e')]===_0x5878('0x2d');var _0x47a394=_0x533365[_0x5878('0x2f')];var _0x4d25cf=_0x178153?0x0:_0x50763b[_0x5878('0x2c')];var _0x338634=_0x178153?_0x533365[_0x5878('0x2f')]:_0x50763b[_0x5878('0x2c')]+_0x50763b['limit'];var _0x1c2e0a;if(_0x338634>=_0x47a394){_0x338634=_0x47a394;_0x1c2e0a=0xc8;}else{_0x1c2e0a=0xce;}_0x5bcf72['status'](_0x1c2e0a);return _0x5bcf72['set'](_0x5878('0x30'),_0x4d25cf+'-'+_0x338634+'/'+_0x47a394)[_0x5878('0x2b')](_0x533365);}return null;};}function patchUpdates(_0x459fdb){return function(_0x581c0d){try{jsonpatch[_0x5878('0x31')](_0x581c0d,_0x459fdb,!![]);}catch(_0x4bacc2){return BPromise['reject'](_0x4bacc2);}return _0x581c0d[_0x5878('0x32')]();};}function saveUpdates(_0x9de5dc,_0x530b88){return function(_0x396f90){if(_0x396f90){return _0x396f90['update'](_0x9de5dc)[_0x5878('0x1d')](function(_0x45f56){return _0x45f56;});}return null;};}function removeEntity(_0x23359e,_0x637bd9){return function(_0x4a8302){if(_0x4a8302){return _0x4a8302['destroy']()[_0x5878('0x1d')](function(){_0x23359e[_0x5878('0x2a')](0xcc)[_0x5878('0x33')]();});}};}function handleEntityNotFound(_0x51e988,_0x25243c){return function(_0x422fea){if(!_0x422fea){_0x51e988['sendStatus'](0x194);}return _0x422fea;};}function handleError(_0x18579e,_0x4d5fef){_0x4d5fef=_0x4d5fef||0x1f4;return function(_0x5ea0b1){logger[_0x5878('0x24')](_0x5ea0b1[_0x5878('0x34')]);if(_0x5ea0b1[_0x5878('0x35')]){delete _0x5ea0b1[_0x5878('0x35')];}_0x18579e['status'](_0x4d5fef)[_0x5878('0x36')](_0x5ea0b1);};}exports[_0x5878('0x37')]=function(_0x1f05ee,_0xb0c6dd){var _0x538a51={},_0x43fc48={},_0x4db3df={'count':0x0,'rows':[]};var _0x4f7fc7=_[_0x5878('0x38')](db[_0x5878('0x39')][_0x5878('0x3a')],function(_0x47eb99){return{'name':_0x47eb99[_0x5878('0x3b')],'type':_0x47eb99[_0x5878('0x3c')][_0x5878('0x3d')]};});_0x43fc48[_0x5878('0x3e')]=_[_0x5878('0x38')](_0x4f7fc7,_0x5878('0x35'));_0x43fc48[_0x5878('0x3f')]=_['keys'](_0x1f05ee[_0x5878('0x3f')]);_0x43fc48[_0x5878('0x40')]=_[_0x5878('0x41')](_0x43fc48[_0x5878('0x3e')],_0x43fc48[_0x5878('0x3f')]);_0x538a51['attributes']=_['intersection'](_0x43fc48[_0x5878('0x3e')],qs[_0x5878('0x42')](_0x1f05ee[_0x5878('0x3f')][_0x5878('0x42')]));_0x538a51[_0x5878('0x43')]=_0x538a51['attributes'][_0x5878('0x44')]?_0x538a51[_0x5878('0x43')]:_0x43fc48[_0x5878('0x3e')];if(!_0x1f05ee[_0x5878('0x3f')][_0x5878('0x45')](_0x5878('0x46'))){_0x538a51['limit']=qs[_0x5878('0x2e')](_0x1f05ee[_0x5878('0x3f')][_0x5878('0x2e')]);_0x538a51['offset']=qs[_0x5878('0x2c')](_0x1f05ee[_0x5878('0x3f')][_0x5878('0x2c')]);}_0x538a51[_0x5878('0x47')]=qs[_0x5878('0x48')](_0x1f05ee[_0x5878('0x3f')]['sort']);_0x538a51['where']=qs[_0x5878('0x40')](_[_0x5878('0x49')](_0x1f05ee[_0x5878('0x3f')],_0x43fc48['filters']),_0x4f7fc7);if(_0x1f05ee[_0x5878('0x3f')][_0x5878('0x4a')]){_0x538a51['where']=_['merge'](_0x538a51['where'],{'$or':_[_0x5878('0x38')](_0x4f7fc7,function(_0x4fbe1a){if(_0x4fbe1a[_0x5878('0x3c')]!==_0x5878('0x4b')){var _0x1f0a34={};_0x1f0a34[_0x4fbe1a['name']]={'$like':'%'+_0x1f05ee[_0x5878('0x3f')][_0x5878('0x4a')]+'%'};return _0x1f0a34;}})});}_0x538a51=_[_0x5878('0x4c')]({},_0x538a51,_0x1f05ee[_0x5878('0x4d')]);var _0x4c36ea={'where':_0x538a51[_0x5878('0x4e')]};return db['OpenchannelMessage']['count'](_0x4c36ea)[_0x5878('0x1d')](function(_0x26019d){_0x4db3df[_0x5878('0x2f')]=_0x26019d;if(_0x1f05ee[_0x5878('0x3f')][_0x5878('0x4f')]){_0x538a51[_0x5878('0x50')]=[{'all':!![]}];}return db[_0x5878('0x39')]['findAll'](_0x538a51);})[_0x5878('0x1d')](function(_0x50f68e){_0x4db3df['rows']=_0x50f68e;return _0x4db3df;})[_0x5878('0x1d')](respondWithFilteredResult(_0xb0c6dd,_0x538a51))['catch'](handleError(_0xb0c6dd,null));};exports['show']=function(_0x4b6d1b,_0x5aa7eb){var _0x311404={'raw':!![],'where':{'id':_0x4b6d1b[_0x5878('0x51')]['id']}},_0x57de20={};_0x57de20['model']=_[_0x5878('0x52')](db[_0x5878('0x39')][_0x5878('0x3a')]);_0x57de20['query']=_['keys'](_0x4b6d1b[_0x5878('0x3f')]);_0x57de20[_0x5878('0x40')]=_[_0x5878('0x41')](_0x57de20['model'],_0x57de20[_0x5878('0x3f')]);_0x311404[_0x5878('0x43')]=_[_0x5878('0x41')](_0x57de20[_0x5878('0x3e')],qs[_0x5878('0x42')](_0x4b6d1b[_0x5878('0x3f')][_0x5878('0x42')]));_0x311404[_0x5878('0x43')]=_0x311404[_0x5878('0x43')][_0x5878('0x44')]?_0x311404['attributes']:_0x57de20[_0x5878('0x3e')];if(_0x4b6d1b[_0x5878('0x3f')][_0x5878('0x4f')]){_0x311404[_0x5878('0x50')]=[{'all':!![]}];}_0x311404=_[_0x5878('0x4c')]({},_0x311404,_0x4b6d1b['options']);return db['OpenchannelMessage'][_0x5878('0x53')](_0x311404)[_0x5878('0x1d')](handleEntityNotFound(_0x5aa7eb,null))[_0x5878('0x1d')](respondWithResult(_0x5aa7eb,null))[_0x5878('0x28')](handleError(_0x5aa7eb,null));};exports[_0x5878('0x54')]=function(_0x18cb60,_0x42e5f6){return db['OpenchannelMessage']['create'](_0x18cb60[_0x5878('0x55')],{})[_0x5878('0x1d')](respondWithResult(_0x42e5f6,0xc9))[_0x5878('0x28')](handleError(_0x42e5f6,null));};exports['update']=function(_0x16f4eb,_0x19d65f){if(_0x16f4eb[_0x5878('0x55')]['id']){delete _0x16f4eb['body']['id'];}return db[_0x5878('0x39')][_0x5878('0x53')]({'where':{'id':_0x16f4eb['params']['id']}})[_0x5878('0x1d')](handleEntityNotFound(_0x19d65f,null))[_0x5878('0x1d')](saveUpdates(_0x16f4eb['body'],null))['then'](respondWithResult(_0x19d65f,null))['catch'](handleError(_0x19d65f,null));};exports[_0x5878('0x56')]=function(_0x37fda2,_0x58d930){return db['OpenchannelMessage'][_0x5878('0x53')]({'where':{'id':_0x37fda2[_0x5878('0x51')]['id']}})[_0x5878('0x1d')](handleEntityNotFound(_0x58d930,null))[_0x5878('0x1d')](removeEntity(_0x58d930,null))[_0x5878('0x28')](handleError(_0x58d930,null));};exports['describe']=function(_0x2d1c3a,_0x5e483b){return db[_0x5878('0x39')][_0x5878('0x57')]()[_0x5878('0x1d')](respondWithResult(_0x5e483b,null))['catch'](handleError(_0x5e483b,null));};var interaction_log=require(_0x5878('0x12'))('openchannel-interactions');exports[_0x5878('0x58')]=function(_0x2653bf,_0x26f885,_0x5ba443){var _0xc49ff0={'agent':{},'channel':_0x5878('0x59')};if(_0x2653bf['body']['id']){delete _0x2653bf[_0x5878('0x55')]['id'];}_0x2653bf[_0x5878('0x55')][_0x5878('0x5a')]=!![];_0x2653bf[_0x5878('0x55')][_0x5878('0x5b')]=moment()[_0x5878('0x5c')](_0x5878('0x5d'));_0x2653bf[_0x5878('0x55')]['UserId']=_0x2653bf[_0x5878('0x55')][_0x5878('0x5e')]||_0x2653bf['user']['id'];_0xc49ff0[_0x5878('0x5f')]['id']=_0x2653bf['body'][_0x5878('0x5e')];return db[_0x5878('0x39')][_0x5878('0x53')]({'where':{'id':_0x2653bf[_0x5878('0x51')]['id'],'UserId':null}})[_0x5878('0x1d')](handleEntityNotFound(_0x26f885,null))[_0x5878('0x1d')](saveUpdates(_0x2653bf[_0x5878('0x55')],null))[_0x5878('0x1d')](function(_0x3955d6){if(_0x3955d6){_0xc49ff0['message']=_0x3955d6[_0x5878('0x60')]({'plain':!![]});return db['OpenchannelInteraction'][_0x5878('0x53')]({'where':{'id':_0x3955d6[_0x5878('0x61')]}});}return null;})[_0x5878('0x1d')](handleEntityNotFound(_0x26f885,null))[_0x5878('0x1d')](function(_0x2a6915){if(_0x2a6915){return _0x2a6915[_0x5878('0x62')]({'UserId':_0x2653bf[_0x5878('0x55')]['UserId'],'read1stAt':_[_0x5878('0x63')](_0x2a6915[_0x5878('0x64')])?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x5878('0x1d')](function(_0x293dce){if(_0x293dce){_0xc49ff0['interaction']=_0x293dce[_0x5878('0x60')]({'plain':!![]});interaction_log[_0x5878('0x1e')](_0x5878('0x65'),_0x2653bf[_0x5878('0x66')]['id'],_0x2653bf[_0x5878('0x66')][_0x5878('0x35')],_0x2653bf[_0x5878('0x66')][_0x5878('0x67')],_0xc49ff0[_0x5878('0x68')]['id'],_0x2653bf[_0x5878('0x55')]?JSON[_0x5878('0x23')](_0x2653bf[_0x5878('0x55')]):'null');return respondWithRpcPromise(_0x5878('0x69'),_0x5878('0x6a'),_0xc49ff0);}return null;})['then'](function(_0x38cfc1){var _0x2ea2d3=_0x5878('0x6b')+_0x38cfc1[_0x5878('0x26')][_0x5878('0x6c')];return db[_0x5878('0x6d')][_0x5878('0x3f')](_0x2ea2d3,{'type':db[_0x5878('0x6e')][_0x5878('0x6f')][_0x5878('0x70')],'raw':!![]})['then'](function(_0x501b43){return _0x501b43;});})[_0x5878('0x1d')](function(_0x5e65f8){if(_0x5e65f8){_0xc49ff0['message'][_0x5878('0x71')]=_0x5e65f8[0x0];if(!_0x2653bf[_0x5878('0x55')]['UserId'])return;return db['User'][_0x5878('0x53')]({'where':{'id':_0x2653bf[_0x5878('0x55')][_0x5878('0x5e')],'role':_0x5878('0x5f')},'attributes':['id',_0x5878('0x35'),'fullname',_0x5878('0x72'),_0x5878('0x73')],'raw':!![]});}return null;})[_0x5878('0x1d')](function(_0x22c1d0){if(!_0x22c1d0)return null;_0xc49ff0['message'][_0x5878('0x5f')]=_0x22c1d0;return _0xc49ff0;})['then'](function(_0xfa9e75){if(_0xfa9e75){if(_0x2653bf[_0x5878('0x55')][_0x5878('0x74')]){_0xc49ff0[_0x5878('0x26')][_0x5878('0x75')]=util['format'](_0x5878('0x76'),_0x2653bf['user']['name']);_0xc49ff0[_0x5878('0x26')][_0x5878('0x77')]=_0xc49ff0[_0x5878('0x77')];_0xc49ff0[_0x5878('0x26')][_0x5878('0x78')]=_0xc49ff0[_0x5878('0x77')];_0xc49ff0[_0x5878('0x26')][_0x5878('0x79')]=_0x5878('0x58');return respondWithRpcPromise(_0x5878('0x7a'),_0x5878('0x7a'),{'event':_0x5878('0x7b'),'message':_0xc49ff0[_0x5878('0x26')]},client9002)[_0x5878('0x1d')](function(){return _0xc49ff0;});}return _0xc49ff0;}return null;})['then'](respondWithResult(_0x26f885,null))[_0x5878('0x28')](handleError(_0x26f885,null));};var interaction_log=require(_0x5878('0x12'))(_0x5878('0x7c'));exports[_0x5878('0x7d')]=function(_0x15788e,_0x1aa47a,_0x4d23c9){var _0x2e5ed0={'agent':{},'channel':_0x5878('0x59')};if(_0x15788e[_0x5878('0x55')]['id']){delete _0x15788e[_0x5878('0x55')]['id'];}_0x15788e[_0x5878('0x55')][_0x5878('0x5e')]=_0x15788e[_0x5878('0x55')]['UserId']||_0x15788e[_0x5878('0x66')]['id'];_0x2e5ed0[_0x5878('0x5f')]['id']=_0x15788e[_0x5878('0x55')][_0x5878('0x5e')];return db['OpenchannelMessage'][_0x5878('0x53')]({'where':{'id':_0x15788e[_0x5878('0x51')]['id'],'UserId':null}})[_0x5878('0x1d')](handleEntityNotFound(_0x1aa47a,null))['then'](function(_0x5ab4d9){if(_0x5ab4d9){_0x2e5ed0[_0x5878('0x26')]=_0x5ab4d9[_0x5878('0x60')]({'plain':!![]});return db[_0x5878('0x7e')][_0x5878('0x53')]({'where':{'id':_0x5ab4d9[_0x5878('0x61')]}});}return null;})['then'](handleEntityNotFound(_0x1aa47a,null))[_0x5878('0x1d')](function(_0x5c73de){if(_0x5c73de){_0x2e5ed0[_0x5878('0x68')]=_0x5c73de['get']({'plain':!![]});interaction_log[_0x5878('0x1e')](_0x5878('0x7f'),_0x15788e[_0x5878('0x66')]['id'],_0x15788e[_0x5878('0x66')][_0x5878('0x35')],_0x15788e[_0x5878('0x66')][_0x5878('0x67')],_0x2e5ed0[_0x5878('0x68')]['id'],_0x15788e[_0x5878('0x55')]?JSON[_0x5878('0x23')](_0x15788e[_0x5878('0x55')]):_0x5878('0x80'));return respondWithRpcPromise(_0x5878('0x81'),'rejectMessage',_0x2e5ed0);}return null;})[_0x5878('0x1d')](function(_0x2af0ab){var _0x5182f7=_0x5878('0x6b')+_0x2af0ab['message']['ContactId'];return db[_0x5878('0x6d')][_0x5878('0x3f')](_0x5182f7,{'type':db[_0x5878('0x6e')]['QueryTypes'][_0x5878('0x70')],'raw':!![]})[_0x5878('0x1d')](function(_0xb8f1ec){return _0xb8f1ec;});})[_0x5878('0x1d')](function(_0x346340){if(_0x346340){_0x2e5ed0[_0x5878('0x26')][_0x5878('0x71')]=_0x346340[0x0];if(!_0x15788e[_0x5878('0x55')]['UserId'])return;return db['User']['find']({'where':{'id':_0x15788e[_0x5878('0x55')][_0x5878('0x5e')],'role':_0x5878('0x5f')},'attributes':['id',_0x5878('0x35'),_0x5878('0x82'),_0x5878('0x72'),_0x5878('0x73')],'raw':!![]});}return null;})['then'](function(_0x333191){if(!_0x333191)return null;_0x2e5ed0['message'][_0x5878('0x5f')]=_0x333191;return _0x2e5ed0;})[_0x5878('0x1d')](function(_0x5bb7e3){if(_0x5bb7e3){_0x5bb7e3[_0x5878('0x26')][_0x5878('0x75')]=util[_0x5878('0x5c')](_0x5878('0x76'),_0x15788e['user'][_0x5878('0x35')]);_0x5bb7e3[_0x5878('0x26')][_0x5878('0x77')]=_0x2e5ed0['channel'];_0x5bb7e3[_0x5878('0x26')][_0x5878('0x78')]=_0x2e5ed0[_0x5878('0x77')];_0x5bb7e3[_0x5878('0x26')]['event']='reject';respondWithRpcPromise(_0x5878('0x7a'),'EventManager',{'event':_0x5878('0x83'),'message':_0x5bb7e3[_0x5878('0x26')]},client9002);return _0x2e5ed0;}return null;})['then'](respondWithResult(_0x1aa47a,null))[_0x5878('0x28')](handleError(_0x1aa47a,null));};
\ No newline at end of file
+var _0x34bf=['QueryTypes','SELECT','contact','User','fullname','email','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','openchannel-interactions','OpenchannelInteraction','role','RejectMessage','sequelize','eml-format','rimraf','fast-json-patch','request-promise','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./openchannelMessage.socket','jayson/promise','client','http','request','then','info','request\x20sent','debug','stringify','error','code','OpenchannelMessage,\x20%s,\x20%s','message','result','catch','end','status','json','offset','undefined','limit','set','Content-Range','reject','destroy','stack','name','send','index','map','OpenchannelMessage','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','findAll','rows','show','params','fields','include','find','create','update','body','describe','../../config/logger','accept','openchannel','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','OpenchannelInteractionId','isNil','read1stAt','interaction','get','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','Sequelize'];(function(_0xd1d19a,_0x1933f0){var _0x52a79d=function(_0x5199e2){while(--_0x5199e2){_0xd1d19a['push'](_0xd1d19a['shift']());}};_0x52a79d(++_0x1933f0);}(_0x34bf,0x93));var _0xf34b=function(_0x572ee8,_0x24ea07){_0x572ee8=_0x572ee8-0x0;var _0xb87b08=_0x34bf[_0x572ee8];return _0xb87b08;};'use strict';var emlformat=require(_0xf34b('0x0'));var rimraf=require(_0xf34b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf34b('0x2'));var rp=require(_0xf34b('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xf34b('0x4'));var util=require(_0xf34b('0x5'));var path=require(_0xf34b('0x6'));var sox=require(_0xf34b('0x7'));var csv=require('to-csv');var ejs=require(_0xf34b('0x8'));var fs=require('fs');var fs_extra=require(_0xf34b('0x9'));var _=require(_0xf34b('0xa'));var squel=require(_0xf34b('0xb'));var crypto=require(_0xf34b('0xc'));var jsforce=require(_0xf34b('0xd'));var deskjs=require(_0xf34b('0xe'));var toCsv=require('to-csv');var querystring=require(_0xf34b('0xf'));var Papa=require('papaparse');var Redis=require(_0xf34b('0x10'));var authService=require(_0xf34b('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf34b('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0xf34b('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xf34b('0x14'));var db=require(_0xf34b('0x15'))['db'];config[_0xf34b('0x16')]=_[_0xf34b('0x17')](config[_0xf34b('0x16')],{'host':'localhost','port':0x18eb});var socket=require(_0xf34b('0x18'))(new Redis(config[_0xf34b('0x16')]));require(_0xf34b('0x19'))['register'](socket);var jayson=require(_0xf34b('0x1a'));var client=jayson[_0xf34b('0x1b')][_0xf34b('0x1c')]({'port':0x232c});var client9002=jayson[_0xf34b('0x1b')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4a1637,_0x56b965,_0x472716,_0x2e9d28){return new BPromise(function(_0x53fe4b,_0x2d6eb5){var _0x4fc895=_0x2e9d28||client;return _0x4fc895[_0xf34b('0x1d')](_0x4a1637,_0x472716)[_0xf34b('0x1e')](function(_0x16e722){logger[_0xf34b('0x1f')]('OpenchannelMessage,\x20%s,\x20%s',_0x56b965,_0xf34b('0x20'));logger[_0xf34b('0x21')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x56b965,_0xf34b('0x20'),JSON[_0xf34b('0x22')](_0x16e722));if(_0x16e722[_0xf34b('0x23')]){if(_0x16e722[_0xf34b('0x23')][_0xf34b('0x24')]===0x1f4){logger['error'](_0xf34b('0x25'),_0x56b965,_0x16e722['error'][_0xf34b('0x26')]);return _0x2d6eb5(_0x16e722['error'][_0xf34b('0x26')]);}logger[_0xf34b('0x23')]('OpenchannelMessage,\x20%s,\x20%s',_0x56b965,_0x16e722['error'][_0xf34b('0x26')]);return _0x53fe4b(_0x16e722[_0xf34b('0x23')][_0xf34b('0x26')]);}else{logger[_0xf34b('0x1f')](_0xf34b('0x25'),_0x56b965,_0xf34b('0x20'));_0x53fe4b(_0x16e722[_0xf34b('0x27')][_0xf34b('0x26')]);}})[_0xf34b('0x28')](function(_0x12126e){logger[_0xf34b('0x23')](_0xf34b('0x25'),_0x56b965,_0x12126e);_0x2d6eb5(_0x12126e);});});}function respondWithStatusCode(_0x3bfa8c,_0x372cfb){_0x372cfb=_0x372cfb||0xcc;return function(_0x4aadf6){if(_0x4aadf6){return _0x3bfa8c['sendStatus'](_0x372cfb);}return _0x3bfa8c['status'](_0x372cfb)[_0xf34b('0x29')]();};}function respondWithResult(_0x16f107,_0x37d1ae){_0x37d1ae=_0x37d1ae||0xc8;return function(_0x3f6c02){if(_0x3f6c02){return _0x16f107[_0xf34b('0x2a')](_0x37d1ae)[_0xf34b('0x2b')](_0x3f6c02);}};}function respondWithFilteredResult(_0x3f63d9,_0x31be8f){return function(_0x8b5caf){if(_0x8b5caf){var _0x3683a9=typeof _0x31be8f[_0xf34b('0x2c')]===_0xf34b('0x2d')&&typeof _0x31be8f[_0xf34b('0x2e')]===_0xf34b('0x2d');var _0x374d73=_0x8b5caf['count'];var _0xce8c02=_0x3683a9?0x0:_0x31be8f['offset'];var _0x89c528=_0x3683a9?_0x8b5caf['count']:_0x31be8f[_0xf34b('0x2c')]+_0x31be8f['limit'];var _0x53cb1b;if(_0x89c528>=_0x374d73){_0x89c528=_0x374d73;_0x53cb1b=0xc8;}else{_0x53cb1b=0xce;}_0x3f63d9[_0xf34b('0x2a')](_0x53cb1b);return _0x3f63d9[_0xf34b('0x2f')](_0xf34b('0x30'),_0xce8c02+'-'+_0x89c528+'/'+_0x374d73)[_0xf34b('0x2b')](_0x8b5caf);}return null;};}function patchUpdates(_0x31854f){return function(_0x668b63){try{jsonpatch['apply'](_0x668b63,_0x31854f,!![]);}catch(_0x736f0b){return BPromise[_0xf34b('0x31')](_0x736f0b);}return _0x668b63['save']();};}function saveUpdates(_0x396478,_0x1c0fa8){return function(_0x31c26c){if(_0x31c26c){return _0x31c26c['update'](_0x396478)[_0xf34b('0x1e')](function(_0xc09429){return _0xc09429;});}return null;};}function removeEntity(_0x4cc0ea,_0x1e328c){return function(_0x5dcb82){if(_0x5dcb82){return _0x5dcb82[_0xf34b('0x32')]()[_0xf34b('0x1e')](function(){_0x4cc0ea[_0xf34b('0x2a')](0xcc)[_0xf34b('0x29')]();});}};}function handleEntityNotFound(_0x26d65d,_0x5ccf68){return function(_0x29868c){if(!_0x29868c){_0x26d65d['sendStatus'](0x194);}return _0x29868c;};}function handleError(_0x4571c0,_0x53158d){_0x53158d=_0x53158d||0x1f4;return function(_0x49473d){logger[_0xf34b('0x23')](_0x49473d[_0xf34b('0x33')]);if(_0x49473d[_0xf34b('0x34')]){delete _0x49473d[_0xf34b('0x34')];}_0x4571c0[_0xf34b('0x2a')](_0x53158d)[_0xf34b('0x35')](_0x49473d);};}exports[_0xf34b('0x36')]=function(_0x31acd8,_0x2c9e1a){var _0x410b2c={},_0x1a6f57={},_0xd761f9={'count':0x0,'rows':[]};var _0x422d7c=_[_0xf34b('0x37')](db[_0xf34b('0x38')][_0xf34b('0x39')],function(_0x362aa2){return{'name':_0x362aa2[_0xf34b('0x3a')],'type':_0x362aa2[_0xf34b('0x3b')][_0xf34b('0x3c')]};});_0x1a6f57[_0xf34b('0x3d')]=_[_0xf34b('0x37')](_0x422d7c,_0xf34b('0x34'));_0x1a6f57[_0xf34b('0x3e')]=_[_0xf34b('0x3f')](_0x31acd8[_0xf34b('0x3e')]);_0x1a6f57[_0xf34b('0x40')]=_[_0xf34b('0x41')](_0x1a6f57[_0xf34b('0x3d')],_0x1a6f57[_0xf34b('0x3e')]);_0x410b2c[_0xf34b('0x42')]=_[_0xf34b('0x41')](_0x1a6f57[_0xf34b('0x3d')],qs['fields'](_0x31acd8['query']['fields']));_0x410b2c['attributes']=_0x410b2c[_0xf34b('0x42')][_0xf34b('0x43')]?_0x410b2c['attributes']:_0x1a6f57[_0xf34b('0x3d')];if(!_0x31acd8[_0xf34b('0x3e')][_0xf34b('0x44')](_0xf34b('0x45'))){_0x410b2c[_0xf34b('0x2e')]=qs[_0xf34b('0x2e')](_0x31acd8[_0xf34b('0x3e')][_0xf34b('0x2e')]);_0x410b2c[_0xf34b('0x2c')]=qs[_0xf34b('0x2c')](_0x31acd8['query']['offset']);}_0x410b2c['order']=qs[_0xf34b('0x46')](_0x31acd8[_0xf34b('0x3e')][_0xf34b('0x46')]);_0x410b2c[_0xf34b('0x47')]=qs[_0xf34b('0x40')](_[_0xf34b('0x48')](_0x31acd8[_0xf34b('0x3e')],_0x1a6f57[_0xf34b('0x40')]),_0x422d7c);if(_0x31acd8['query'][_0xf34b('0x49')]){_0x410b2c[_0xf34b('0x47')]=_[_0xf34b('0x4a')](_0x410b2c[_0xf34b('0x47')],{'$or':_[_0xf34b('0x37')](_0x422d7c,function(_0x1c8e28){if(_0x1c8e28[_0xf34b('0x3b')]!==_0xf34b('0x4b')){var _0x11b48a={};_0x11b48a[_0x1c8e28[_0xf34b('0x34')]]={'$like':'%'+_0x31acd8['query'][_0xf34b('0x49')]+'%'};return _0x11b48a;}})});}_0x410b2c=_[_0xf34b('0x4a')]({},_0x410b2c,_0x31acd8[_0xf34b('0x4c')]);var _0x2b193a={'where':_0x410b2c[_0xf34b('0x47')]};return db[_0xf34b('0x38')][_0xf34b('0x4d')](_0x2b193a)[_0xf34b('0x1e')](function(_0x532916){_0xd761f9[_0xf34b('0x4d')]=_0x532916;if(_0x31acd8[_0xf34b('0x3e')][_0xf34b('0x4e')]){_0x410b2c['include']=[{'all':!![]}];}return db[_0xf34b('0x38')][_0xf34b('0x4f')](_0x410b2c);})['then'](function(_0x21bfac){_0xd761f9[_0xf34b('0x50')]=_0x21bfac;return _0xd761f9;})[_0xf34b('0x1e')](respondWithFilteredResult(_0x2c9e1a,_0x410b2c))[_0xf34b('0x28')](handleError(_0x2c9e1a,null));};exports[_0xf34b('0x51')]=function(_0x3ac1fa,_0x72c976){var _0x3bf06d={'raw':!![],'where':{'id':_0x3ac1fa[_0xf34b('0x52')]['id']}},_0x48acd6={};_0x48acd6['model']=_['keys'](db[_0xf34b('0x38')][_0xf34b('0x39')]);_0x48acd6[_0xf34b('0x3e')]=_[_0xf34b('0x3f')](_0x3ac1fa[_0xf34b('0x3e')]);_0x48acd6[_0xf34b('0x40')]=_['intersection'](_0x48acd6[_0xf34b('0x3d')],_0x48acd6[_0xf34b('0x3e')]);_0x3bf06d[_0xf34b('0x42')]=_[_0xf34b('0x41')](_0x48acd6[_0xf34b('0x3d')],qs[_0xf34b('0x53')](_0x3ac1fa[_0xf34b('0x3e')][_0xf34b('0x53')]));_0x3bf06d[_0xf34b('0x42')]=_0x3bf06d['attributes']['length']?_0x3bf06d['attributes']:_0x48acd6[_0xf34b('0x3d')];if(_0x3ac1fa['query'][_0xf34b('0x4e')]){_0x3bf06d[_0xf34b('0x54')]=[{'all':!![]}];}_0x3bf06d=_[_0xf34b('0x4a')]({},_0x3bf06d,_0x3ac1fa['options']);return db[_0xf34b('0x38')][_0xf34b('0x55')](_0x3bf06d)['then'](handleEntityNotFound(_0x72c976,null))['then'](respondWithResult(_0x72c976,null))[_0xf34b('0x28')](handleError(_0x72c976,null));};exports[_0xf34b('0x56')]=function(_0x2ca190,_0x4f4bcd){return db[_0xf34b('0x38')][_0xf34b('0x56')](_0x2ca190['body'],{})[_0xf34b('0x1e')](respondWithResult(_0x4f4bcd,0xc9))[_0xf34b('0x28')](handleError(_0x4f4bcd,null));};exports[_0xf34b('0x57')]=function(_0xc4d4fb,_0x4df1e2){if(_0xc4d4fb[_0xf34b('0x58')]['id']){delete _0xc4d4fb[_0xf34b('0x58')]['id'];}return db['OpenchannelMessage'][_0xf34b('0x55')]({'where':{'id':_0xc4d4fb[_0xf34b('0x52')]['id']}})[_0xf34b('0x1e')](handleEntityNotFound(_0x4df1e2,null))[_0xf34b('0x1e')](saveUpdates(_0xc4d4fb[_0xf34b('0x58')],null))[_0xf34b('0x1e')](respondWithResult(_0x4df1e2,null))['catch'](handleError(_0x4df1e2,null));};exports[_0xf34b('0x32')]=function(_0x501fee,_0x55af70){return db[_0xf34b('0x38')]['find']({'where':{'id':_0x501fee[_0xf34b('0x52')]['id']}})['then'](handleEntityNotFound(_0x55af70,null))[_0xf34b('0x1e')](removeEntity(_0x55af70,null))[_0xf34b('0x28')](handleError(_0x55af70,null));};exports['describe']=function(_0x9b0f8,_0xc0826c){return db[_0xf34b('0x38')][_0xf34b('0x59')]()[_0xf34b('0x1e')](respondWithResult(_0xc0826c,null))[_0xf34b('0x28')](handleError(_0xc0826c,null));};var interaction_log=require(_0xf34b('0x5a'))('openchannel-interactions');exports[_0xf34b('0x5b')]=function(_0x10123c,_0x486f8c,_0x1ebce1){var _0x40df77={'agent':{},'channel':_0xf34b('0x5c')};if(_0x10123c[_0xf34b('0x58')]['id']){delete _0x10123c[_0xf34b('0x58')]['id'];}_0x10123c[_0xf34b('0x58')][_0xf34b('0x5d')]=!![];_0x10123c[_0xf34b('0x58')][_0xf34b('0x5e')]=moment()[_0xf34b('0x5f')](_0xf34b('0x60'));_0x10123c[_0xf34b('0x58')][_0xf34b('0x61')]=_0x10123c['body'][_0xf34b('0x61')]||_0x10123c[_0xf34b('0x62')]['id'];_0x40df77[_0xf34b('0x63')]['id']=_0x10123c['body'][_0xf34b('0x61')];return db[_0xf34b('0x38')][_0xf34b('0x55')]({'where':{'id':_0x10123c[_0xf34b('0x52')]['id'],'UserId':null}})[_0xf34b('0x1e')](handleEntityNotFound(_0x486f8c,null))['then'](saveUpdates(_0x10123c[_0xf34b('0x58')],null))[_0xf34b('0x1e')](function(_0x222597){if(_0x222597){_0x40df77[_0xf34b('0x26')]=_0x222597['get']({'plain':!![]});return db['OpenchannelInteraction'][_0xf34b('0x55')]({'where':{'id':_0x222597[_0xf34b('0x64')]}});}return null;})['then'](handleEntityNotFound(_0x486f8c,null))[_0xf34b('0x1e')](function(_0x44073a){if(_0x44073a){return _0x44073a['update']({'UserId':_0x10123c['body']['UserId'],'read1stAt':_[_0xf34b('0x65')](_0x44073a[_0xf34b('0x66')])?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0xf34b('0x1e')](function(_0x3cc97a){if(_0x3cc97a){_0x40df77[_0xf34b('0x67')]=_0x3cc97a[_0xf34b('0x68')]({'plain':!![]});interaction_log['info'](_0xf34b('0x69'),_0x10123c[_0xf34b('0x62')]['id'],_0x10123c[_0xf34b('0x62')][_0xf34b('0x34')],_0x10123c[_0xf34b('0x62')]['role'],_0x40df77['interaction']['id'],_0x10123c[_0xf34b('0x58')]?JSON[_0xf34b('0x22')](_0x10123c[_0xf34b('0x58')]):_0xf34b('0x6a'));return respondWithRpcPromise(_0xf34b('0x6b'),'acceptMessage',_0x40df77);}return null;})['then'](function(_0x4d6bc7){var _0x55b32f=_0xf34b('0x6c')+_0x4d6bc7[_0xf34b('0x26')][_0xf34b('0x6d')];return db['sequelize'][_0xf34b('0x3e')](_0x55b32f,{'type':db[_0xf34b('0x6e')][_0xf34b('0x6f')][_0xf34b('0x70')],'raw':!![]})[_0xf34b('0x1e')](function(_0x3e8c4c){return _0x3e8c4c;});})[_0xf34b('0x1e')](function(_0x5608ac){if(_0x5608ac){_0x40df77[_0xf34b('0x26')][_0xf34b('0x71')]=_0x5608ac[0x0];if(!_0x10123c[_0xf34b('0x58')]['UserId'])return;return db[_0xf34b('0x72')][_0xf34b('0x55')]({'where':{'id':_0x10123c['body'][_0xf34b('0x61')],'role':_0xf34b('0x63')},'attributes':['id',_0xf34b('0x34'),_0xf34b('0x73'),_0xf34b('0x74'),'internal'],'raw':!![]});}return null;})['then'](function(_0x1be0f9){if(!_0x1be0f9)return null;_0x40df77[_0xf34b('0x26')][_0xf34b('0x63')]=_0x1be0f9;return _0x40df77;})['then'](function(_0x8feec5){if(_0x8feec5){if(_0x10123c['body'][_0xf34b('0x75')]){_0x40df77[_0xf34b('0x26')][_0xf34b('0x76')]=util[_0xf34b('0x5f')](_0xf34b('0x77'),_0x10123c['user'][_0xf34b('0x34')]);_0x40df77[_0xf34b('0x26')][_0xf34b('0x78')]=_0x40df77[_0xf34b('0x78')];_0x40df77[_0xf34b('0x26')][_0xf34b('0x79')]=_0xf34b('0x5b');return respondWithRpcPromise('EventManager',_0xf34b('0x7a'),{'event':_0xf34b('0x7b'),'message':_0x40df77['message']},client9002)['then'](function(){return _0x40df77;});}return _0x40df77;}return null;})[_0xf34b('0x1e')](respondWithResult(_0x486f8c,null))[_0xf34b('0x28')](handleError(_0x486f8c,null));};var interaction_log=require(_0xf34b('0x5a'))(_0xf34b('0x7c'));exports['reject']=function(_0x4001d8,_0x352a86,_0x5f5cd8){var _0x381f78={'agent':{},'channel':'openchannel'};if(_0x4001d8[_0xf34b('0x58')]['id']){delete _0x4001d8[_0xf34b('0x58')]['id'];}_0x4001d8[_0xf34b('0x58')][_0xf34b('0x61')]=_0x4001d8[_0xf34b('0x58')][_0xf34b('0x61')]||_0x4001d8[_0xf34b('0x62')]['id'];_0x381f78[_0xf34b('0x63')]['id']=_0x4001d8[_0xf34b('0x58')][_0xf34b('0x61')];return db[_0xf34b('0x38')][_0xf34b('0x55')]({'where':{'id':_0x4001d8['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x352a86,null))[_0xf34b('0x1e')](function(_0x40e784){if(_0x40e784){_0x381f78[_0xf34b('0x26')]=_0x40e784[_0xf34b('0x68')]({'plain':!![]});return db[_0xf34b('0x7d')][_0xf34b('0x55')]({'where':{'id':_0x40e784[_0xf34b('0x64')]}});}return null;})[_0xf34b('0x1e')](handleEntityNotFound(_0x352a86,null))[_0xf34b('0x1e')](function(_0xd0c69){if(_0xd0c69){_0x381f78[_0xf34b('0x67')]=_0xd0c69[_0xf34b('0x68')]({'plain':!![]});interaction_log[_0xf34b('0x1f')]('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x4001d8[_0xf34b('0x62')]['id'],_0x4001d8[_0xf34b('0x62')][_0xf34b('0x34')],_0x4001d8[_0xf34b('0x62')][_0xf34b('0x7e')],_0x381f78[_0xf34b('0x67')]['id'],_0x4001d8['body']?JSON[_0xf34b('0x22')](_0x4001d8[_0xf34b('0x58')]):_0xf34b('0x6a'));return respondWithRpcPromise(_0xf34b('0x7f'),'rejectMessage',_0x381f78);}return null;})[_0xf34b('0x1e')](function(_0x23c935){var _0x571141=_0xf34b('0x6c')+_0x23c935['message'][_0xf34b('0x6d')];return db[_0xf34b('0x80')][_0xf34b('0x3e')](_0x571141,{'type':db[_0xf34b('0x6e')][_0xf34b('0x6f')][_0xf34b('0x70')],'raw':!![]})[_0xf34b('0x1e')](function(_0x345249){return _0x345249;});})['then'](function(_0x2fa917){if(_0x2fa917){_0x381f78[_0xf34b('0x26')][_0xf34b('0x71')]=_0x2fa917[0x0];if(!_0x4001d8['body'][_0xf34b('0x61')])return;return db[_0xf34b('0x72')][_0xf34b('0x55')]({'where':{'id':_0x4001d8[_0xf34b('0x58')]['UserId'],'role':_0xf34b('0x63')},'attributes':['id','name','fullname',_0xf34b('0x74'),'internal'],'raw':!![]});}return null;})['then'](function(_0x2d62d8){if(!_0x2d62d8)return null;_0x381f78[_0xf34b('0x26')][_0xf34b('0x63')]=_0x2d62d8;return _0x381f78;})['then'](function(_0x30506d){if(_0x30506d){_0x30506d['message'][_0xf34b('0x76')]=util[_0xf34b('0x5f')](_0xf34b('0x77'),_0x4001d8[_0xf34b('0x62')][_0xf34b('0x34')]);_0x30506d['message'][_0xf34b('0x78')]=_0x381f78['channel'];_0x30506d[_0xf34b('0x26')]['event']=_0xf34b('0x31');respondWithRpcPromise(_0xf34b('0x7a'),_0xf34b('0x7a'),{'event':'rejectmessage','message':_0x30506d['message']},client9002);return _0x381f78;}return null;})[_0xf34b('0x1e')](respondWithResult(_0x352a86,null))[_0xf34b('0x28')](handleError(_0x352a86,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ca6=['emit','exports','events','OpenchannelMessage','setMaxListeners','remove'];(function(_0x556a90,_0x205f7e){var _0x18ff36=function(_0x4cc0d5){while(--_0x4cc0d5){_0x556a90['push'](_0x556a90['shift']());}};_0x18ff36(++_0x205f7e);}(_0x7ca6,0x1b2));var _0x67ca=function(_0x4b3ace,_0x32756b){_0x4b3ace=_0x4b3ace-0x0;var _0xab069d=_0x7ca6[_0x4b3ace];return _0xab069d;};'use strict';var EventEmitter=require(_0x67ca('0x0'));var OpenchannelMessage=require('../../mysqldb')['db'][_0x67ca('0x1')];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents[_0x67ca('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x67ca('0x3')};function emitEvent(_0x1189ab){return function(_0x45c36c,_0x9e0433,_0x9012df){OpenchannelMessageEvents[_0x67ca('0x4')](_0x1189ab+':'+_0x45c36c['id'],_0x45c36c);OpenchannelMessageEvents[_0x67ca('0x4')](_0x1189ab,_0x45c36c);_0x9012df(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelMessage['hook'](e,emitEvent(event));}}module[_0x67ca('0x5')]=OpenchannelMessageEvents;
\ No newline at end of file
+var _0x6b1a=['hasOwnProperty','hook','exports','events','OpenchannelMessage','update','remove','emit'];(function(_0x5f3f88,_0x562baf){var _0xd08119=function(_0x42dbf7){while(--_0x42dbf7){_0x5f3f88['push'](_0x5f3f88['shift']());}};_0xd08119(++_0x562baf);}(_0x6b1a,0x9b));var _0xa6b1=function(_0x122296,_0x2cac73){_0x122296=_0x122296-0x0;var _0x81effd=_0x6b1a[_0x122296];return _0x81effd;};'use strict';var EventEmitter=require(_0xa6b1('0x0'));var OpenchannelMessage=require('../../mysqldb')['db'][_0xa6b1('0x1')];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0xa6b1('0x2'),'afterDestroy':_0xa6b1('0x3')};function emitEvent(_0x710a64){return function(_0x40f9f2,_0x19e6fc,_0x4b77bf){OpenchannelMessageEvents[_0xa6b1('0x4')](_0x710a64+':'+_0x40f9f2['id'],_0x40f9f2);OpenchannelMessageEvents[_0xa6b1('0x4')](_0x710a64,_0x40f9f2);_0x4b77bf(null);};}for(var e in events){if(events[_0xa6b1('0x5')](e)){var event=events[e];OpenchannelMessage[_0xa6b1('0x6')](e,emitEvent(event));}}module[_0xa6b1('0x7')]=OpenchannelMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['get','toLowerCase','direction','secret','isNil','UserId','OpenchannelInteraction','findOne','then','update','createdAt','catch','error','CmContact','describe','OpenchannelAccount','Interactions','Contact','replyUri','info','OpenchannelMessage,\x20%s,\x20%s','afterCreate','length','omit','GET','Message\x20%d\x20forwarded\x20to\x20%s','threadId','Interaction','finally','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./openchannelMessage.attributes','exports','define','fti_openchannel_messages','body','FULLTEXT'];(function(_0x44f974,_0x4db616){var _0x805dbd=function(_0x1a56b7){while(--_0x1a56b7){_0x44f974['push'](_0x44f974['shift']());}};_0x805dbd(++_0x4db616);}(_0x0b0e,0x187));var _0xe0b0=function(_0x5712f8,_0x17156b){_0x5712f8=_0x5712f8-0x0;var _0x14a364=_0x0b0e[_0x5712f8];return _0x14a364;};'use strict';var _=require(_0xe0b0('0x0'));var util=require('util');var logger=require(_0xe0b0('0x1'))('api');var moment=require(_0xe0b0('0x2'));var BPromise=require(_0xe0b0('0x3'));var rp=require(_0xe0b0('0x4'));var fs=require('fs');var path=require(_0xe0b0('0x5'));var rimraf=require(_0xe0b0('0x6'));var config=require(_0xe0b0('0x7'));var attributes=require(_0xe0b0('0x8'));module[_0xe0b0('0x9')]=function(_0x30e20d,_0x28e40f){return _0x30e20d[_0xe0b0('0xa')]('OpenchannelMessage',attributes,{'tableName':'openchannel_messages','paranoid':![],'indexes':[{'name':_0xe0b0('0xb'),'fields':[_0xe0b0('0xc')],'type':_0xe0b0('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x2ac27e,_0x4c24f9,_0x338e7c){var _0x1dd3b8=_0x30e20d['models'];var _0x1fef28=_0x2ac27e[_0xe0b0('0xe')]({'plain':!![]});if(_0x1fef28['direction'][_0xe0b0('0xf')]()==='in'||_0x1fef28[_0xe0b0('0x10')][_0xe0b0('0xf')]()==='out'&&!_0x1fef28[_0xe0b0('0x11')]&&!_[_0xe0b0('0x12')](_0x1fef28[_0xe0b0('0x13')])){_0x1dd3b8[_0xe0b0('0x14')][_0xe0b0('0x15')]({'where':{'id':_0x1fef28['OpenchannelInteractionId']}})[_0xe0b0('0x16')](function(_0x154de6){if(_0x154de6){_0x154de6[_0xe0b0('0x17')]({'lastMsgAt':_0x1fef28[_0xe0b0('0x18')],'lastMsgDirection':_0x1fef28[_0xe0b0('0x10')]['toLowerCase']()});}})[_0xe0b0('0x19')](function(_0x5adb01){console[_0xe0b0('0x1a')](_0x5adb01);});}if(_0x1fef28[_0xe0b0('0x10')]==='out'&&!_0x1fef28[_0xe0b0('0x11')]){var _0x4a4cc0;_0x1dd3b8[_0xe0b0('0x1b')][_0xe0b0('0x1c')]()['then'](function(_0x54a3eb){return _0x1dd3b8[_0xe0b0('0x1d')]['find']({'where':{'id':_0x1fef28['OpenchannelAccountId']},'include':[{'model':_0x1dd3b8['OpenchannelInteraction'],'as':_0xe0b0('0x1e'),'where':{'id':_0x1fef28['OpenchannelInteractionId']},'limit':0x1,'include':[{'model':_0x1dd3b8['CmContact'],'as':_0xe0b0('0x1f'),'attributes':_['keys'](_0x54a3eb)}]}]});})[_0xe0b0('0x16')](function(_0x5dba2f){_0x4a4cc0=_0x5dba2f[_0xe0b0('0xe')]({'plain':!![]});if(_0x4a4cc0&&_0x4a4cc0[_0xe0b0('0x20')]){logger[_0xe0b0('0x21')](_0xe0b0('0x22'),_0xe0b0('0x23'),util['format']('Forwarding\x20message\x20%d\x20to\x20%s',_0x1fef28['id'],_0x4a4cc0[_0xe0b0('0x20')]));if(_0x4a4cc0['Interactions']&&_0x4a4cc0[_0xe0b0('0x1e')][_0xe0b0('0x24')]){_0x1fef28['Interaction']=_[_0xe0b0('0x25')](_0x4a4cc0['Interactions'][0x0],_0xe0b0('0x1f'));_0x1fef28['Contact']=_0x4a4cc0[_0xe0b0('0x1e')][0x0]['Contact'];}var _0x4c24f9={'method':'POST','uri':encodeURI(_0x4a4cc0[_0xe0b0('0x20')]),'json':!![],'resolveWithFullResponse':!![]};switch(_0x4c24f9['method']){case _0xe0b0('0x26'):_0x4c24f9['qs']=_0x1fef28;break;case'POST':_0x4c24f9[_0xe0b0('0xc')]=_0x1fef28;break;}return rp(_0x4c24f9)[_0xe0b0('0x16')](function(_0x1f1ebd){logger[_0xe0b0('0x21')](_0xe0b0('0x22'),_0xe0b0('0x23'),util['format'](_0xe0b0('0x27'),_0x1fef28['id'],_0x4a4cc0[_0xe0b0('0x20')]));if(_0x1f1ebd['body'][_0xe0b0('0x28')]&&_0x1f1ebd[_0xe0b0('0xc')][_0xe0b0('0x28')]!=_0x1fef28[_0xe0b0('0x29')][_0xe0b0('0x28')]){return _0x1dd3b8[_0xe0b0('0x14')][_0xe0b0('0x17')]({'threadId':_0x1f1ebd['body'][_0xe0b0('0x28')]},{'logging':!![],'where':{'id':_0x1fef28[_0xe0b0('0x29')]['id']}});}else{return;}})['then'](function(){return _0x2ac27e['update']({'read':!![]});})[_0xe0b0('0x19')](function(_0x33e672){logger[_0xe0b0('0x1a')](_0xe0b0('0x22'),_0xe0b0('0x23'),util['inspect'](_0x33e672,{'showHidden':![],'depth':null}));_0x338e7c();});}else{_0x338e7c();}})[_0xe0b0('0x2a')](function(){_0x338e7c();});}else{_0x338e7c();}}},'charset':_0xe0b0('0x2b'),'collate':_0xe0b0('0x2c')});};
\ No newline at end of file
+var _0x955f=['openchannel_messages','body','FULLTEXT','models','get','toLowerCase','direction','secret','UserId','findOne','OpenchannelInteractionId','then','update','createdAt','catch','CmContact','describe','OpenchannelAccount','find','OpenchannelAccountId','Interactions','Contact','keys','replyUri','OpenchannelMessage,\x20%s,\x20%s','format','Forwarding\x20message\x20%d\x20to\x20%s','Interaction','omit','POST','method','GET','info','afterCreate','Message\x20%d\x20forwarded\x20to\x20%s','threadId','OpenchannelInteraction','error','inspect','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','request-promise','../../config/environment','exports','OpenchannelMessage'];(function(_0x88cd7b,_0x4c884c){var _0x56fcc8=function(_0x513b3d){while(--_0x513b3d){_0x88cd7b['push'](_0x88cd7b['shift']());}};_0x56fcc8(++_0x4c884c);}(_0x955f,0x1eb));var _0xf955=function(_0x25d405,_0xc78f15){_0x25d405=_0x25d405-0x0;var _0x2f0adb=_0x955f[_0x25d405];return _0x2f0adb;};'use strict';var _=require(_0xf955('0x0'));var util=require(_0xf955('0x1'));var logger=require(_0xf955('0x2'))(_0xf955('0x3'));var moment=require(_0xf955('0x4'));var BPromise=require('bluebird');var rp=require(_0xf955('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xf955('0x6'));var attributes=require('./openchannelMessage.attributes');module[_0xf955('0x7')]=function(_0x2caff2,_0x3fdac2){return _0x2caff2['define'](_0xf955('0x8'),attributes,{'tableName':_0xf955('0x9'),'paranoid':![],'indexes':[{'name':'fti_openchannel_messages','fields':[_0xf955('0xa')],'type':_0xf955('0xb')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x168ffb,_0x38b190,_0x134c1b){var _0x421e4a=_0x2caff2[_0xf955('0xc')];var _0x4d213a=_0x168ffb[_0xf955('0xd')]({'plain':!![]});if(_0x4d213a['direction'][_0xf955('0xe')]()==='in'||_0x4d213a[_0xf955('0xf')][_0xf955('0xe')]()==='out'&&!_0x4d213a[_0xf955('0x10')]&&!_['isNil'](_0x4d213a[_0xf955('0x11')])){_0x421e4a['OpenchannelInteraction'][_0xf955('0x12')]({'where':{'id':_0x4d213a[_0xf955('0x13')]}})[_0xf955('0x14')](function(_0x109bc5){if(_0x109bc5){_0x109bc5[_0xf955('0x15')]({'lastMsgAt':_0x4d213a[_0xf955('0x16')],'lastMsgDirection':_0x4d213a[_0xf955('0xf')][_0xf955('0xe')]()});}})[_0xf955('0x17')](function(_0x24e75c){console['error'](_0x24e75c);});}if(_0x4d213a[_0xf955('0xf')]==='out'&&!_0x4d213a[_0xf955('0x10')]){var _0x3a814f;_0x421e4a[_0xf955('0x18')][_0xf955('0x19')]()['then'](function(_0x5ac6cb){return _0x421e4a[_0xf955('0x1a')][_0xf955('0x1b')]({'where':{'id':_0x4d213a[_0xf955('0x1c')]},'include':[{'model':_0x421e4a['OpenchannelInteraction'],'as':_0xf955('0x1d'),'where':{'id':_0x4d213a[_0xf955('0x13')]},'limit':0x1,'include':[{'model':_0x421e4a[_0xf955('0x18')],'as':_0xf955('0x1e'),'attributes':_[_0xf955('0x1f')](_0x5ac6cb)}]}]});})['then'](function(_0x17d86a){_0x3a814f=_0x17d86a[_0xf955('0xd')]({'plain':!![]});if(_0x3a814f&&_0x3a814f[_0xf955('0x20')]){logger['info'](_0xf955('0x21'),'afterCreate',util[_0xf955('0x22')](_0xf955('0x23'),_0x4d213a['id'],_0x3a814f[_0xf955('0x20')]));if(_0x3a814f[_0xf955('0x1d')]&&_0x3a814f[_0xf955('0x1d')]['length']){_0x4d213a[_0xf955('0x24')]=_[_0xf955('0x25')](_0x3a814f[_0xf955('0x1d')][0x0],_0xf955('0x1e'));_0x4d213a[_0xf955('0x1e')]=_0x3a814f[_0xf955('0x1d')][0x0][_0xf955('0x1e')];}var _0x38b190={'method':_0xf955('0x26'),'uri':encodeURI(_0x3a814f[_0xf955('0x20')]),'json':!![],'resolveWithFullResponse':!![]};switch(_0x38b190[_0xf955('0x27')]){case _0xf955('0x28'):_0x38b190['qs']=_0x4d213a;break;case _0xf955('0x26'):_0x38b190[_0xf955('0xa')]=_0x4d213a;break;}return rp(_0x38b190)[_0xf955('0x14')](function(_0x51f3ab){logger[_0xf955('0x29')](_0xf955('0x21'),_0xf955('0x2a'),util[_0xf955('0x22')](_0xf955('0x2b'),_0x4d213a['id'],_0x3a814f[_0xf955('0x20')]));if(_0x51f3ab['body'][_0xf955('0x2c')]&&_0x51f3ab[_0xf955('0xa')]['threadId']!=_0x4d213a[_0xf955('0x24')][_0xf955('0x2c')]){return _0x421e4a[_0xf955('0x2d')][_0xf955('0x15')]({'threadId':_0x51f3ab['body'][_0xf955('0x2c')]},{'logging':!![],'where':{'id':_0x4d213a['Interaction']['id']}});}else{return;}})[_0xf955('0x14')](function(){return _0x168ffb[_0xf955('0x15')]({'read':!![]});})[_0xf955('0x17')](function(_0x4069fe){logger[_0xf955('0x2e')](_0xf955('0x21'),_0xf955('0x2a'),util[_0xf955('0x2f')](_0x4069fe,{'showHidden':![],'depth':null}));_0x134c1b();});}else{_0x134c1b();}})['finally'](function(){_0x134c1b();});}else{_0x134c1b();}}},'charset':_0xf955('0x30'),'collate':_0xf955('0x31')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f2f=['OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','OpenchannelMessage','create','options','raw','CreateOpenchannelMessage','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','then','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x4d3e05,_0x3f6b96){var _0x5a5e47=function(_0x11f287){while(--_0x11f287){_0x4d3e05['push'](_0x4d3e05['shift']());}};_0x5a5e47(++_0x3f6b96);}(_0x5f2f,0x73));var _0xf5f2=function(_0x245d73,_0x314faa){_0x245d73=_0x245d73-0x0;var _0x56ef67=_0x5f2f[_0x245d73];return _0x56ef67;};'use strict';var _=require(_0xf5f2('0x0'));var util=require(_0xf5f2('0x1'));var moment=require(_0xf5f2('0x2'));var BPromise=require(_0xf5f2('0x3'));var rs=require(_0xf5f2('0x4'));var fs=require('fs');var Redis=require(_0xf5f2('0x5'));var db=require(_0xf5f2('0x6'))['db'];var utils=require(_0xf5f2('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0xf5f2('0x8'));var jayson=require(_0xf5f2('0x9'));var client=jayson[_0xf5f2('0xa')][_0xf5f2('0xb')]({'port':0x232a});config[_0xf5f2('0xc')]=_[_0xf5f2('0xd')](config['redis'],{'host':_0xf5f2('0xe'),'port':0x18eb});var socket=require(_0xf5f2('0xf'))(new Redis(config[_0xf5f2('0xc')]));require('./openchannelMessage.socket')[_0xf5f2('0x10')](socket);function respondWithRpcPromise(_0x15dd7c,_0x218ae3,_0x4e0e6b){return new BPromise(function(_0x977a59,_0x4ebbbe){return client['request'](_0x15dd7c,_0x4e0e6b)[_0xf5f2('0x11')](function(_0x151aba){logger['info'](_0xf5f2('0x12'),_0x218ae3,_0xf5f2('0x13'));logger[_0xf5f2('0x14')](_0xf5f2('0x15'),_0x218ae3,_0xf5f2('0x13'),JSON[_0xf5f2('0x16')](_0x151aba));if(_0x151aba['error']){if(_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x18')]===0x1f4){logger[_0xf5f2('0x17')](_0xf5f2('0x12'),_0x218ae3,_0x151aba[_0xf5f2('0x17')]['message']);return _0x4ebbbe(_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x19')]);}logger[_0xf5f2('0x17')](_0xf5f2('0x12'),_0x218ae3,_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x19')]);return _0x977a59(_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x19')]);}else{logger[_0xf5f2('0x1a')](_0xf5f2('0x12'),_0x218ae3,_0xf5f2('0x13'));_0x977a59(_0x151aba[_0xf5f2('0x1b')][_0xf5f2('0x19')]);}})[_0xf5f2('0x1c')](function(_0x3cf5ea){logger[_0xf5f2('0x17')](_0xf5f2('0x12'),_0x218ae3,_0x3cf5ea);_0x4ebbbe(_0x3cf5ea);});});}exports['CreateOpenchannelMessage']=function(_0x34706d){var _0x47101e=this;return new Promise(function(_0x49dac2,_0x47acfc){return db[_0xf5f2('0x1d')][_0xf5f2('0x1e')](_0x34706d['body'],{'raw':_0x34706d[_0xf5f2('0x1f')]?_0x34706d[_0xf5f2('0x1f')][_0xf5f2('0x20')]===undefined?!![]:![]:!![]})[_0xf5f2('0x11')](function(_0x36f1cb){logger['info'](_0xf5f2('0x21'),_0x34706d);logger[_0xf5f2('0x14')](_0xf5f2('0x21'),_0x34706d,JSON[_0xf5f2('0x16')](_0x36f1cb));_0x49dac2(_0x36f1cb);})[_0xf5f2('0x1c')](function(_0x5bdf4a){logger['error'](_0xf5f2('0x21'),_0x5bdf4a[_0xf5f2('0x19')],_0x34706d);_0x47acfc(_0x47101e[_0xf5f2('0x17')](0x1f4,_0x5bdf4a[_0xf5f2('0x19')]));});});};
\ No newline at end of file
+var _0xadb5=['debug','request\x20sent','stringify','error','code','message','info','result','catch','OpenchannelMessage','body','raw','CreateOpenchannelMessage','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./openchannelMessage.socket','register','request','then','OpenchannelMessage,\x20%s,\x20%s'];(function(_0x38c001,_0x40bb75){var _0x4d58f0=function(_0x2547a8){while(--_0x2547a8){_0x38c001['push'](_0x38c001['shift']());}};_0x4d58f0(++_0x40bb75);}(_0xadb5,0xad));var _0x5adb=function(_0x2377f4,_0x16b8f6){_0x2377f4=_0x2377f4-0x0;var _0x112311=_0xadb5[_0x2377f4];return _0x112311;};'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});config[_0x5adb('0xa')]=_[_0x5adb('0xb')](config[_0x5adb('0xa')],{'host':_0x5adb('0xc'),'port':0x18eb});var socket=require(_0x5adb('0xd'))(new Redis(config[_0x5adb('0xa')]));require(_0x5adb('0xe'))[_0x5adb('0xf')](socket);function respondWithRpcPromise(_0x336bad,_0x129f5a,_0x275428){return new BPromise(function(_0x563d86,_0x4c268d){return client[_0x5adb('0x10')](_0x336bad,_0x275428)[_0x5adb('0x11')](function(_0x82e67e){logger['info'](_0x5adb('0x12'),_0x129f5a,'request\x20sent');logger[_0x5adb('0x13')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x129f5a,_0x5adb('0x14'),JSON[_0x5adb('0x15')](_0x82e67e));if(_0x82e67e[_0x5adb('0x16')]){if(_0x82e67e['error'][_0x5adb('0x17')]===0x1f4){logger[_0x5adb('0x16')](_0x5adb('0x12'),_0x129f5a,_0x82e67e['error'][_0x5adb('0x18')]);return _0x4c268d(_0x82e67e['error'][_0x5adb('0x18')]);}logger[_0x5adb('0x16')](_0x5adb('0x12'),_0x129f5a,_0x82e67e[_0x5adb('0x16')][_0x5adb('0x18')]);return _0x563d86(_0x82e67e[_0x5adb('0x16')][_0x5adb('0x18')]);}else{logger[_0x5adb('0x19')](_0x5adb('0x12'),_0x129f5a,'request\x20sent');_0x563d86(_0x82e67e[_0x5adb('0x1a')]['message']);}})[_0x5adb('0x1b')](function(_0x558f76){logger[_0x5adb('0x16')]('OpenchannelMessage,\x20%s,\x20%s',_0x129f5a,_0x558f76);_0x4c268d(_0x558f76);});});}exports['CreateOpenchannelMessage']=function(_0x1fbaa5){var _0x1bed20=this;return new Promise(function(_0x438671,_0x1fd4a7){return db[_0x5adb('0x1c')]['create'](_0x1fbaa5[_0x5adb('0x1d')],{'raw':_0x1fbaa5['options']?_0x1fbaa5['options'][_0x5adb('0x1e')]===undefined?!![]:![]:!![]})[_0x5adb('0x11')](function(_0x1a38d3){logger[_0x5adb('0x19')](_0x5adb('0x1f'),_0x1fbaa5);logger[_0x5adb('0x13')](_0x5adb('0x1f'),_0x1fbaa5,JSON['stringify'](_0x1a38d3));_0x438671(_0x1a38d3);})[_0x5adb('0x1b')](function(_0x373cc3){logger[_0x5adb('0x16')](_0x5adb('0x1f'),_0x373cc3[_0x5adb('0x18')],_0x1fbaa5);_0x1fd4a7(_0x1bed20['error'](0x1f4,_0x373cc3[_0x5adb('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a78=['remove','update','emit','removeListener','register','openchannelMessage:','./openchannelMessage.events','save'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x9a78,0x1b6));var _0x89a7=function(_0x4542b0,_0x555629){_0x4542b0=_0x4542b0-0x0;var _0x5a8be7=_0x9a78[_0x4542b0];return _0x5a8be7;};'use strict';var OpenchannelMessageEvents=require(_0x89a7('0x0'));var events=[_0x89a7('0x1'),_0x89a7('0x2'),_0x89a7('0x3')];function createListener(_0x424cdd,_0x2a0174){return function(_0x3a47df){_0x2a0174[_0x89a7('0x4')](_0x424cdd,_0x3a47df);};}function removeListener(_0x1932a,_0x236c9f){return function(){OpenchannelMessageEvents[_0x89a7('0x5')](_0x1932a,_0x236c9f);};}exports[_0x89a7('0x6')]=function(_0x44ea57){for(var _0x4a2e2f=0x0,_0x1175b2=events['length'];_0x4a2e2f<_0x1175b2;_0x4a2e2f++){var _0x357716=events[_0x4a2e2f];var _0x18a022=createListener(_0x89a7('0x7')+_0x357716,_0x44ea57);OpenchannelMessageEvents['on'](_0x357716,_0x18a022);}};
\ No newline at end of file
+var _0x8463=['length','openchannelMessage:','./openchannelMessage.events','save','update','register'];(function(_0x45952d,_0x3a4144){var _0x40fa19=function(_0x5b118b){while(--_0x5b118b){_0x45952d['push'](_0x45952d['shift']());}};_0x40fa19(++_0x3a4144);}(_0x8463,0x140));var _0x3846=function(_0x22f160,_0xc0e1a0){_0x22f160=_0x22f160-0x0;var _0x1097d3=_0x8463[_0x22f160];return _0x1097d3;};'use strict';var OpenchannelMessageEvents=require(_0x3846('0x0'));var events=[_0x3846('0x1'),'remove',_0x3846('0x2')];function createListener(_0x44af57,_0x43fd9d){return function(_0x398db5){_0x43fd9d['emit'](_0x44af57,_0x398db5);};}function removeListener(_0x22dbe7,_0x28939c){return function(){OpenchannelMessageEvents['removeListener'](_0x22dbe7,_0x28939c);};}exports[_0x3846('0x3')]=function(_0xc8ad35){for(var _0x3c176b=0x0,_0x41f063=events[_0x3846('0x4')];_0x3c176b<_0x41f063;_0x3c176b++){var _0x5eb888=events[_0x3c176b];var _0x588732=createListener(_0x3846('0x5')+_0x5eb888,_0xc8ad35);OpenchannelMessageEvents['on'](_0x5eb888,_0x588732);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd29c=['create','addTeams','addAgents','put','update','delete','destroy','removeTeams','removeAgents','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelQueue.controller','index','get','/describe','isAuthenticated','describe','/:id','show','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post'];(function(_0xa45c45,_0x2de75d){var _0x5ab426=function(_0x310b5e){while(--_0x310b5e){_0xa45c45['push'](_0xa45c45['shift']());}};_0x5ab426(++_0x2de75d);}(_0xd29c,0x175));var _0xcd29=function(_0x40634d,_0x2b64da){_0x40634d=_0x40634d-0x0;var _0x51f357=_0xd29c[_0x40634d];return _0x51f357;};'use strict';var multer=require(_0xcd29('0x0'));var util=require('util');var path=require(_0xcd29('0x1'));var timeout=require('connect-timeout');var express=require(_0xcd29('0x2'));var router=express[_0xcd29('0x3')]();var fs_extra=require(_0xcd29('0x4'));var auth=require(_0xcd29('0x5'));var interaction=require(_0xcd29('0x6'));var config=require(_0xcd29('0x7'));var controller=require(_0xcd29('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0xcd29('0x9')]);router[_0xcd29('0xa')](_0xcd29('0xb'),auth[_0xcd29('0xc')](),controller[_0xcd29('0xd')]);router['get'](_0xcd29('0xe'),auth[_0xcd29('0xc')](),controller[_0xcd29('0xf')]);router[_0xcd29('0xa')](_0xcd29('0x10'),auth[_0xcd29('0xc')](),controller[_0xcd29('0x11')]);router[_0xcd29('0xa')](_0xcd29('0x12'),auth[_0xcd29('0xc')](),controller[_0xcd29('0x13')]);router[_0xcd29('0xa')](_0xcd29('0x14'),auth[_0xcd29('0xc')](),controller[_0xcd29('0x15')]);router[_0xcd29('0x16')]('/',auth[_0xcd29('0xc')](),controller[_0xcd29('0x17')]);router[_0xcd29('0x16')](_0xcd29('0x12'),auth[_0xcd29('0xc')](),controller[_0xcd29('0x18')]);router[_0xcd29('0x16')]('/:id/users',auth[_0xcd29('0xc')](),controller[_0xcd29('0x19')]);router[_0xcd29('0x1a')](_0xcd29('0xe'),auth[_0xcd29('0xc')](),controller[_0xcd29('0x1b')]);router[_0xcd29('0x1c')](_0xcd29('0xe'),auth['isAuthenticated'](),controller[_0xcd29('0x1d')]);router[_0xcd29('0x1c')](_0xcd29('0x12'),auth[_0xcd29('0xc')](),controller[_0xcd29('0x1e')]);router[_0xcd29('0x1c')](_0xcd29('0x14'),auth[_0xcd29('0xc')](),controller[_0xcd29('0x1f')]);module[_0xcd29('0x20')]=router;
\ No newline at end of file
+var _0x6764=['/:id/members','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','addAgents','put','update','delete','destroy','removeTeams','removeAgents','exports','multer','util','path','connect-timeout','fs-extra','../../components/auth/service','../../config/environment','./openchannelQueue.controller','isAuthenticated','index','get','/describe','describe','/:id'];(function(_0x4b4501,_0x105927){var _0x421562=function(_0x33ddd2){while(--_0x33ddd2){_0x4b4501['push'](_0x4b4501['shift']());}};_0x421562(++_0x105927);}(_0x6764,0x109));var _0x4676=function(_0x1035c1,_0x2d8583){_0x1035c1=_0x1035c1-0x0;var _0x308d67=_0x6764[_0x1035c1];return _0x308d67;};'use strict';var multer=require(_0x4676('0x0'));var util=require(_0x4676('0x1'));var path=require(_0x4676('0x2'));var timeout=require(_0x4676('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x4676('0x4'));var auth=require(_0x4676('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x4676('0x6'));var controller=require(_0x4676('0x7'));router['get']('/',auth[_0x4676('0x8')](),controller[_0x4676('0x9')]);router[_0x4676('0xa')](_0x4676('0xb'),auth[_0x4676('0x8')](),controller[_0x4676('0xc')]);router[_0x4676('0xa')](_0x4676('0xd'),auth['isAuthenticated'](),controller['show']);router[_0x4676('0xa')](_0x4676('0xe'),auth[_0x4676('0x8')](),controller[_0x4676('0xf')]);router['get'](_0x4676('0x10'),auth[_0x4676('0x8')](),controller[_0x4676('0x11')]);router[_0x4676('0xa')](_0x4676('0x12'),auth[_0x4676('0x8')](),controller[_0x4676('0x13')]);router[_0x4676('0x14')]('/',auth[_0x4676('0x8')](),controller[_0x4676('0x15')]);router[_0x4676('0x14')]('/:id/teams',auth['isAuthenticated'](),controller[_0x4676('0x16')]);router['post'](_0x4676('0x12'),auth[_0x4676('0x8')](),controller[_0x4676('0x17')]);router[_0x4676('0x18')]('/:id',auth[_0x4676('0x8')](),controller[_0x4676('0x19')]);router[_0x4676('0x1a')]('/:id',auth['isAuthenticated'](),controller[_0x4676('0x1b')]);router[_0x4676('0x1a')](_0x4676('0x10'),auth[_0x4676('0x8')](),controller[_0x4676('0x1c')]);router['delete'](_0x4676('0x12'),auth[_0x4676('0x8')](),controller[_0x4676('0x1d')]);module[_0x4676('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a35=['sequelize','exports','STRING','name','ENUM','rrmemory','beepall','roundrobin'];(function(_0x13baf1,_0x12ec7b){var _0x20c144=function(_0x3f4916){while(--_0x3f4916){_0x13baf1['push'](_0x13baf1['shift']());}};_0x20c144(++_0x12ec7b);}(_0x2a35,0x1c0));var _0x52a3=function(_0x18697f,_0x153a7a){_0x18697f=_0x18697f-0x0;var _0x4023c2=_0x2a35[_0x18697f];return _0x4023c2;};'use strict';var Sequelize=require(_0x52a3('0x0'));module[_0x52a3('0x1')]={'name':{'type':Sequelize[_0x52a3('0x2')],'unique':_0x52a3('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x52a3('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x52a3('0x4')](_0x52a3('0x5'),_0x52a3('0x6'),_0x52a3('0x7'))}};
\ No newline at end of file
+var _0x7efb=['beepall','roundrobin','exports','STRING','name','INTEGER','rrmemory'];(function(_0xb68009,_0x5e23e3){var _0x326971=function(_0x28e0c9){while(--_0x28e0c9){_0xb68009['push'](_0xb68009['shift']());}};_0x326971(++_0x5e23e3);}(_0x7efb,0x175));var _0xb7ef=function(_0x1284b4,_0x28f825){_0x1284b4=_0x1284b4-0x0;var _0x3934d8=_0x7efb[_0x1284b4];return _0x3934d8;};'use strict';var Sequelize=require('sequelize');module[_0xb7ef('0x0')]={'name':{'type':Sequelize[_0xb7ef('0x1')],'unique':_0xb7ef('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0xb7ef('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0xb7ef('0x4'),_0xb7ef('0x5'),_0xb7ef('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd867=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./openchannelQueue.socket','register','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','get','OpenchannelQueues','stack','name','send','index','OpenchannelQueue','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','nolimit','where','pick','map','VIRTUAL','filter','merge','options','include','findAll','rows','catch','show','keys','rawAttributes','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','getMembers','findOne','UserOpenchannelQueue','hasOwnProperty','sort','OpenchannelQueueId','User','findAndCountAll','UserId','agent','updatedAt','createdAt','format','%s/%s','openchannelPause','getTeams','Team','order','addTeams','Agents','online','interface','flatMap','sequelize','transaction','each','findOrCreate','forEach','emit','removeTeams','ids','select','field','team_has_openchannel_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','OpenchannelQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','includes','union','compact','removeAgents','addAgents','spread','userOpenchannelQueue:save','userOpenchannelQueue:remove','getAgents','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x3305de,_0x16582f){var _0x3b5a84=function(_0x57d7e1){while(--_0x57d7e1){_0x3305de['push'](_0x3305de['shift']());}};_0x3b5a84(++_0x16582f);}(_0xd867,0x7c));var _0x7d86=function(_0x13ba1f,_0x14831d){_0x13ba1f=_0x13ba1f-0x0;var _0x5b42eb=_0xd867[_0x13ba1f];return _0x5b42eb;};'use strict';var emlformat=require(_0x7d86('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7d86('0x1'));var jsonpatch=require(_0x7d86('0x2'));var rp=require(_0x7d86('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x7d86('0x4'));var util=require(_0x7d86('0x5'));var path=require(_0x7d86('0x6'));var sox=require(_0x7d86('0x7'));var csv=require(_0x7d86('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7d86('0x9'));var _=require(_0x7d86('0xa'));var squel=require(_0x7d86('0xb'));var crypto=require(_0x7d86('0xc'));var jsforce=require(_0x7d86('0xd'));var deskjs=require(_0x7d86('0xe'));var toCsv=require(_0x7d86('0x8'));var querystring=require(_0x7d86('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x7d86('0x10'));var qs=require(_0x7d86('0x11'));var as=require(_0x7d86('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7d86('0x13'))(_0x7d86('0x14'));var utils=require(_0x7d86('0x15'));var config=require(_0x7d86('0x16'));var licenseUtil=require(_0x7d86('0x17'));var db=require(_0x7d86('0x18'))['db'];config[_0x7d86('0x19')]=_['defaults'](config[_0x7d86('0x19')],{'host':_0x7d86('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7d86('0x19')]));require(_0x7d86('0x1b'))[_0x7d86('0x1c')](socket);function respondWithStatusCode(_0x4b1464,_0x436a80){_0x436a80=_0x436a80||0xcc;return function(_0x48d3ff){if(_0x48d3ff){return _0x4b1464[_0x7d86('0x1d')](_0x436a80);}return _0x4b1464[_0x7d86('0x1e')](_0x436a80)[_0x7d86('0x1f')]();};}function respondWithResult(_0x23e5d7,_0x5d8d20){_0x5d8d20=_0x5d8d20||0xc8;return function(_0x484ecd){if(_0x484ecd){return _0x23e5d7[_0x7d86('0x1e')](_0x5d8d20)[_0x7d86('0x20')](_0x484ecd);}};}function respondWithFilteredResult(_0x4d6ec0,_0x5da51c){return function(_0x5034b8){if(_0x5034b8){var _0x399fd0=typeof _0x5da51c[_0x7d86('0x21')]==='undefined'&&typeof _0x5da51c[_0x7d86('0x22')]===_0x7d86('0x23');var _0x4c013c=_0x5034b8[_0x7d86('0x24')];var _0x4cdf51=_0x399fd0?0x0:_0x5da51c[_0x7d86('0x21')];var _0x157bc7=_0x399fd0?_0x5034b8[_0x7d86('0x24')]:_0x5da51c[_0x7d86('0x21')]+_0x5da51c['limit'];var _0x43a4a6;if(_0x157bc7>=_0x4c013c){_0x157bc7=_0x4c013c;_0x43a4a6=0xc8;}else{_0x43a4a6=0xce;}_0x4d6ec0[_0x7d86('0x1e')](_0x43a4a6);return _0x4d6ec0[_0x7d86('0x25')](_0x7d86('0x26'),_0x4cdf51+'-'+_0x157bc7+'/'+_0x4c013c)[_0x7d86('0x20')](_0x5034b8);}return null;};}function patchUpdates(_0x26f5d8){return function(_0x15f500){try{jsonpatch[_0x7d86('0x27')](_0x15f500,_0x26f5d8,!![]);}catch(_0x3d666d){return BPromise[_0x7d86('0x28')](_0x3d666d);}return _0x15f500[_0x7d86('0x29')]();};}function saveUpdates(_0x436018,_0x34dd4e){return function(_0x4fb3db){if(_0x4fb3db){return _0x4fb3db[_0x7d86('0x2a')](_0x436018)[_0x7d86('0x2b')](function(_0x3d6a78){return _0x3d6a78;});}return null;};}function removeEntity(_0x583139,_0x7dc96e){return function(_0xda66c7){if(_0xda66c7){return _0xda66c7[_0x7d86('0x2c')]()['then'](function(){var _0x560ca0=_0xda66c7[_0x7d86('0x2d')]({'plain':!![]});var _0x4804d7=_0x7d86('0x2e');return db['UserProfileResource'][_0x7d86('0x2c')]({'where':{'type':_0x4804d7,'resourceId':_0x560ca0['id']}})[_0x7d86('0x2b')](function(){return _0xda66c7;});})[_0x7d86('0x2b')](function(){_0x583139[_0x7d86('0x1e')](0xcc)[_0x7d86('0x1f')]();});}};}function handleEntityNotFound(_0x17aae0,_0xdf8acb){return function(_0x4cc75b){if(!_0x4cc75b){_0x17aae0[_0x7d86('0x1d')](0x194);}return _0x4cc75b;};}function handleError(_0x9f22fd,_0x2d8c76){_0x2d8c76=_0x2d8c76||0x1f4;return function(_0x2a8b94){logger['error'](_0x2a8b94[_0x7d86('0x2f')]);if(_0x2a8b94[_0x7d86('0x30')]){delete _0x2a8b94[_0x7d86('0x30')];}_0x9f22fd[_0x7d86('0x1e')](_0x2d8c76)[_0x7d86('0x31')](_0x2a8b94);};}exports[_0x7d86('0x32')]=function(_0xe69af7,_0xca9be5){var _0x191a15={},_0x9bc53c={},_0x3e8f93={'count':0x0,'rows':[]};var _0x341a39=_['map'](db[_0x7d86('0x33')]['rawAttributes'],function(_0x259498){return{'name':_0x259498[_0x7d86('0x34')],'type':_0x259498[_0x7d86('0x35')][_0x7d86('0x36')]};});_0x9bc53c[_0x7d86('0x37')]=_['map'](_0x341a39,_0x7d86('0x30'));_0x9bc53c['query']=_['keys'](_0xe69af7[_0x7d86('0x38')]);_0x9bc53c[_0x7d86('0x39')]=_[_0x7d86('0x3a')](_0x9bc53c[_0x7d86('0x37')],_0x9bc53c['query']);_0x191a15[_0x7d86('0x3b')]=_[_0x7d86('0x3a')](_0x9bc53c['model'],qs['fields'](_0xe69af7[_0x7d86('0x38')][_0x7d86('0x3c')]));_0x191a15[_0x7d86('0x3b')]=_0x191a15[_0x7d86('0x3b')][_0x7d86('0x3d')]?_0x191a15[_0x7d86('0x3b')]:_0x9bc53c[_0x7d86('0x37')];if(!_0xe69af7[_0x7d86('0x38')]['hasOwnProperty'](_0x7d86('0x3e'))){_0x191a15['limit']=qs['limit'](_0xe69af7[_0x7d86('0x38')][_0x7d86('0x22')]);_0x191a15[_0x7d86('0x21')]=qs['offset'](_0xe69af7[_0x7d86('0x38')][_0x7d86('0x21')]);}_0x191a15['order']=qs['sort'](_0xe69af7[_0x7d86('0x38')]['sort']);_0x191a15[_0x7d86('0x3f')]=qs[_0x7d86('0x39')](_[_0x7d86('0x40')](_0xe69af7[_0x7d86('0x38')],_0x9bc53c['filters']),_0x341a39);if(_0xe69af7[_0x7d86('0x38')]['filter']){_0x191a15[_0x7d86('0x3f')]=_['merge'](_0x191a15[_0x7d86('0x3f')],{'$or':_[_0x7d86('0x41')](_0x341a39,function(_0x412ac3){if(_0x412ac3[_0x7d86('0x35')]!==_0x7d86('0x42')){var _0xef79ff={};_0xef79ff[_0x412ac3[_0x7d86('0x30')]]={'$like':'%'+_0xe69af7[_0x7d86('0x38')][_0x7d86('0x43')]+'%'};return _0xef79ff;}})});}_0x191a15=_[_0x7d86('0x44')]({},_0x191a15,_0xe69af7[_0x7d86('0x45')]);var _0x392ff6={'where':_0x191a15[_0x7d86('0x3f')]};return db[_0x7d86('0x33')][_0x7d86('0x24')](_0x392ff6)[_0x7d86('0x2b')](function(_0x3e9df5){_0x3e8f93[_0x7d86('0x24')]=_0x3e9df5;if(_0xe69af7[_0x7d86('0x38')]['includeAll']){_0x191a15[_0x7d86('0x46')]=[{'all':!![]}];}return db[_0x7d86('0x33')][_0x7d86('0x47')](_0x191a15);})[_0x7d86('0x2b')](function(_0x2fb865){_0x3e8f93[_0x7d86('0x48')]=_0x2fb865;return _0x3e8f93;})['then'](respondWithFilteredResult(_0xca9be5,_0x191a15))[_0x7d86('0x49')](handleError(_0xca9be5,null));};exports[_0x7d86('0x4a')]=function(_0x3bf851,_0x2a9b3a){var _0x438545={'raw':!![],'where':{'id':_0x3bf851['params']['id']}},_0xf18c38={};_0xf18c38[_0x7d86('0x37')]=_[_0x7d86('0x4b')](db[_0x7d86('0x33')][_0x7d86('0x4c')]);_0xf18c38['query']=_['keys'](_0x3bf851[_0x7d86('0x38')]);_0xf18c38['filters']=_['intersection'](_0xf18c38['model'],_0xf18c38[_0x7d86('0x38')]);_0x438545[_0x7d86('0x3b')]=_[_0x7d86('0x3a')](_0xf18c38['model'],qs['fields'](_0x3bf851[_0x7d86('0x38')][_0x7d86('0x3c')]));_0x438545['attributes']=_0x438545[_0x7d86('0x3b')][_0x7d86('0x3d')]?_0x438545[_0x7d86('0x3b')]:_0xf18c38[_0x7d86('0x37')];if(_0x3bf851[_0x7d86('0x38')][_0x7d86('0x4d')]){_0x438545[_0x7d86('0x46')]=[{'all':!![]}];}_0x438545=_[_0x7d86('0x44')]({},_0x438545,_0x3bf851[_0x7d86('0x45')]);return db['OpenchannelQueue'][_0x7d86('0x4e')](_0x438545)[_0x7d86('0x2b')](handleEntityNotFound(_0x2a9b3a,null))[_0x7d86('0x2b')](respondWithResult(_0x2a9b3a,null))[_0x7d86('0x49')](handleError(_0x2a9b3a,null));};exports[_0x7d86('0x4f')]=function(_0x2abf18,_0x4c13d5){return db['OpenchannelQueue'][_0x7d86('0x4f')](_0x2abf18[_0x7d86('0x50')],{})[_0x7d86('0x2b')](function(_0x3bb55d){var _0xdf00f6=_0x2abf18[_0x7d86('0x51')][_0x7d86('0x2d')]({'plain':!![]});if(!_0xdf00f6)throw new Error(_0x7d86('0x52'));if(_0xdf00f6[_0x7d86('0x53')]===_0x7d86('0x51')){var _0x52595a=_0x3bb55d['get']({'plain':!![]});var _0x5d8a7d='OpenchannelQueues';return db['UserProfileSection'][_0x7d86('0x4e')]({'where':{'name':_0x5d8a7d,'userProfileId':_0xdf00f6[_0x7d86('0x54')]},'raw':!![]})[_0x7d86('0x2b')](function(_0x53c16e){if(_0x53c16e&&_0x53c16e['autoAssociation']===0x0){return db[_0x7d86('0x55')][_0x7d86('0x4f')]({'name':_0x52595a[_0x7d86('0x30')],'resourceId':_0x52595a['id'],'type':_0x53c16e[_0x7d86('0x30')],'sectionId':_0x53c16e['id']},{})[_0x7d86('0x2b')](function(){return _0x3bb55d;});}else{return _0x3bb55d;}})[_0x7d86('0x49')](function(_0xcb6d4){logger[_0x7d86('0x56')](_0x7d86('0x57'),_0xcb6d4);throw _0xcb6d4;});}return _0x3bb55d;})[_0x7d86('0x2b')](respondWithResult(_0x4c13d5,0xc9))[_0x7d86('0x49')](handleError(_0x4c13d5,null));};exports[_0x7d86('0x2a')]=function(_0x172618,_0x5b8ee1){if(_0x172618[_0x7d86('0x50')]['id']){delete _0x172618['body']['id'];}return db[_0x7d86('0x33')][_0x7d86('0x4e')]({'where':{'id':_0x172618['params']['id']}})[_0x7d86('0x2b')](handleEntityNotFound(_0x5b8ee1,null))['then'](saveUpdates(_0x172618[_0x7d86('0x50')],null))[_0x7d86('0x2b')](respondWithResult(_0x5b8ee1,null))['catch'](handleError(_0x5b8ee1,null));};exports['destroy']=function(_0x1f83f6,_0x3887e5){return db[_0x7d86('0x33')][_0x7d86('0x4e')]({'where':{'id':_0x1f83f6[_0x7d86('0x58')]['id']}})[_0x7d86('0x2b')](handleEntityNotFound(_0x3887e5,null))[_0x7d86('0x2b')](removeEntity(_0x3887e5,null))[_0x7d86('0x49')](handleError(_0x3887e5,null));};exports[_0x7d86('0x59')]=function(_0x4112bd,_0x548e5b){return db['OpenchannelQueue'][_0x7d86('0x59')]()[_0x7d86('0x2b')](respondWithResult(_0x548e5b,null))[_0x7d86('0x49')](handleError(_0x548e5b,null));};exports[_0x7d86('0x5a')]=function(_0x606bd8,_0x45dadf,_0x2f684b){var _0x146e9f={'raw':!![],'where':{}},_0x6bbc7e={},_0x15149b;return db[_0x7d86('0x33')][_0x7d86('0x5b')]({'where':{'id':_0x606bd8[_0x7d86('0x58')]['id']}})['then'](handleEntityNotFound(_0x45dadf,null))[_0x7d86('0x2b')](function(_0x18169b){if(_0x18169b){_0x15149b=_0x18169b[_0x7d86('0x2d')]({'plain':!![]});_0x6bbc7e[_0x7d86('0x37')]=_[_0x7d86('0x4b')](db[_0x7d86('0x5c')]['rawAttributes']);_0x6bbc7e['query']=_[_0x7d86('0x4b')](_0x606bd8[_0x7d86('0x38')]);_0x6bbc7e[_0x7d86('0x39')]=_[_0x7d86('0x3a')](_0x6bbc7e[_0x7d86('0x37')],_0x6bbc7e[_0x7d86('0x38')]);_0x146e9f['attributes']=_[_0x7d86('0x3a')](_0x6bbc7e[_0x7d86('0x37')],qs['fields'](_0x606bd8[_0x7d86('0x38')][_0x7d86('0x3c')]));_0x146e9f[_0x7d86('0x3b')]=_0x146e9f['attributes'][_0x7d86('0x3d')]?_0x146e9f[_0x7d86('0x3b')]:_0x6bbc7e['model'];if(!_0x606bd8[_0x7d86('0x38')][_0x7d86('0x5d')](_0x7d86('0x3e'))){_0x146e9f[_0x7d86('0x22')]=qs[_0x7d86('0x22')](_0x606bd8[_0x7d86('0x38')][_0x7d86('0x22')]);_0x146e9f[_0x7d86('0x21')]=qs['offset'](_0x606bd8[_0x7d86('0x38')][_0x7d86('0x21')]);}_0x146e9f['order']=qs[_0x7d86('0x5e')](_0x606bd8[_0x7d86('0x38')][_0x7d86('0x5e')]);_0x146e9f[_0x7d86('0x3f')]=qs[_0x7d86('0x39')](_['pick'](_0x606bd8[_0x7d86('0x38')],_0x6bbc7e[_0x7d86('0x39')]));_0x146e9f[_0x7d86('0x3f')][_0x7d86('0x5f')]=_0x18169b['id'];if(_0x606bd8[_0x7d86('0x38')][_0x7d86('0x43')]){_0x146e9f['where']=_['merge'](_0x146e9f['where'],{'$or':_[_0x7d86('0x41')](_0x146e9f[_0x7d86('0x3b')],function(_0x11ed39){var _0x2cb0c0={};_0x2cb0c0[_0x11ed39]={'$like':'%'+_0x606bd8[_0x7d86('0x38')][_0x7d86('0x43')]+'%'};return _0x2cb0c0;})});}_0x146e9f=_[_0x7d86('0x44')]({},_0x146e9f,_0x606bd8['options']);return db[_0x7d86('0x5c')][_0x7d86('0x47')](_0x146e9f);}})['then'](function(_0x301c56){if(_0x301c56){return db[_0x7d86('0x60')][_0x7d86('0x61')]({'where':{'id':_[_0x7d86('0x41')](_0x301c56,_0x7d86('0x62')),'role':_0x7d86('0x63')},'attributes':['id','name','openchannelPause',_0x7d86('0x64'),_0x7d86('0x65')]});}})[_0x7d86('0x2b')](function(_0x41e585){if(_0x41e585){return{'count':_0x41e585[_0x7d86('0x24')],'rows':_[_0x7d86('0x41')](_0x41e585['rows'],function(_0x136b7e){return{'membername':_0x136b7e[_0x7d86('0x30')],'UserId':_0x136b7e['id'],'queue_name':_0x15149b[_0x7d86('0x30')],'OpenchannelQueueId':_0x15149b['id'],'interface':util[_0x7d86('0x66')](_0x7d86('0x67'),'SIP',_0x136b7e[_0x7d86('0x30')]),'penalty':0x0,'paused':_0x136b7e[_0x7d86('0x68')],'createdAt':_0x136b7e[_0x7d86('0x65')],'updatedAt':_0x136b7e[_0x7d86('0x64')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x45dadf,_0x146e9f))[_0x7d86('0x49')](handleError(_0x45dadf,null));};exports[_0x7d86('0x69')]=function(_0x3b30f0,_0x1ecc64,_0x36aaae){var _0x57b03a={};var _0x1c6fda={};var _0x243ac7;var _0x48f9e6;return db['OpenchannelQueue'][_0x7d86('0x5b')]({'where':{'id':_0x3b30f0['params']['id']}})[_0x7d86('0x2b')](handleEntityNotFound(_0x1ecc64,null))[_0x7d86('0x2b')](function(_0x32123a){if(_0x32123a){_0x243ac7=_0x32123a;_0x1c6fda[_0x7d86('0x37')]=_[_0x7d86('0x4b')](db[_0x7d86('0x6a')][_0x7d86('0x4c')]);_0x1c6fda[_0x7d86('0x38')]=_[_0x7d86('0x4b')](_0x3b30f0[_0x7d86('0x38')]);_0x1c6fda[_0x7d86('0x39')]=_[_0x7d86('0x3a')](_0x1c6fda[_0x7d86('0x37')],_0x1c6fda[_0x7d86('0x38')]);_0x57b03a[_0x7d86('0x3b')]=_['intersection'](_0x1c6fda[_0x7d86('0x37')],qs[_0x7d86('0x3c')](_0x3b30f0[_0x7d86('0x38')]['fields']));_0x57b03a[_0x7d86('0x3b')]=_0x57b03a[_0x7d86('0x3b')]['length']?_0x57b03a[_0x7d86('0x3b')]:_0x1c6fda['model'];_0x57b03a[_0x7d86('0x6b')]=qs[_0x7d86('0x5e')](_0x3b30f0[_0x7d86('0x38')][_0x7d86('0x5e')]);_0x57b03a[_0x7d86('0x3f')]=qs[_0x7d86('0x39')](_['pick'](_0x3b30f0[_0x7d86('0x38')],_0x1c6fda[_0x7d86('0x39')]));if(_0x3b30f0[_0x7d86('0x38')]['filter']){_0x57b03a[_0x7d86('0x3f')]=_[_0x7d86('0x44')](_0x57b03a['where'],{'$or':_[_0x7d86('0x41')](_0x57b03a[_0x7d86('0x3b')],function(_0x5bbe3a){var _0x28d24a={};_0x28d24a[_0x5bbe3a]={'$like':'%'+_0x3b30f0['query'][_0x7d86('0x43')]+'%'};return _0x28d24a;})});}_0x57b03a=_[_0x7d86('0x44')]({},_0x57b03a,_0x3b30f0[_0x7d86('0x45')]);return _0x243ac7[_0x7d86('0x69')](_0x57b03a);}})[_0x7d86('0x2b')](function(_0x496768){if(_0x496768){_0x48f9e6=_0x496768[_0x7d86('0x3d')];if(!_0x3b30f0[_0x7d86('0x38')]['hasOwnProperty'](_0x7d86('0x3e'))){_0x57b03a[_0x7d86('0x22')]=qs[_0x7d86('0x22')](_0x3b30f0['query'][_0x7d86('0x22')]);_0x57b03a[_0x7d86('0x21')]=qs[_0x7d86('0x21')](_0x3b30f0[_0x7d86('0x38')][_0x7d86('0x21')]);}return _0x243ac7[_0x7d86('0x69')](_0x57b03a);}})['then'](function(_0x4e0556){if(_0x4e0556){return _0x4e0556?{'count':_0x48f9e6,'rows':_0x4e0556}:null;}})[_0x7d86('0x2b')](respondWithResult(_0x1ecc64,null))[_0x7d86('0x49')](handleError(_0x1ecc64,null));};exports[_0x7d86('0x6c')]=function(_0x28598e,_0x3687cb,_0x5d9c3f){var _0x3fa091=_0x28598e['body']['ids'];return db[_0x7d86('0x6a')][_0x7d86('0x47')]({'where':{'id':_0x3fa091},'attributes':['id'],'include':[{'model':db[_0x7d86('0x60')],'as':_0x7d86('0x6d'),'attributes':['id',_0x7d86('0x30'),_0x7d86('0x6e'),'voicePause',_0x7d86('0x6f')],'raw':!![]}]})[_0x7d86('0x2b')](function(_0x196a64){if(_0x196a64){var _0x5e48ba=_[_0x7d86('0x70')](_0x196a64,function(_0x1f09b7){var _0x3e573f=_0x1f09b7[_0x7d86('0x2d')]({'plain':!![]});return _0x3e573f[_0x7d86('0x6d')];});return db[_0x7d86('0x33')][_0x7d86('0x4e')]({'where':{'id':_0x28598e[_0x7d86('0x58')]['id']}})[_0x7d86('0x2b')](function(_0x13d491){return db[_0x7d86('0x71')][_0x7d86('0x72')](function(_0x5c6f32){return _0x13d491['addTeams'](_0x3fa091,{'transaction':_0x5c6f32})[_0x7d86('0x2b')](function(){return BPromise[_0x7d86('0x73')](_0x5e48ba,function(_0x5a1e21){return db[_0x7d86('0x5c')][_0x7d86('0x74')]({'where':{'UserId':_0x5a1e21['id'],'OpenchannelQueueId':_0x28598e['params']['id']},'transaction':_0x5c6f32});});})[_0x7d86('0x2b')](function(){_0x5e48ba[_0x7d86('0x75')](function(_0x347041){socket[_0x7d86('0x76')]('userOpenchannelQueue:save',{'UserId':_0x347041['id'],'OpenchannelQueueId':_0x13d491['id']});});});});});}})[_0x7d86('0x2b')](respondWithStatusCode(_0x3687cb,null))[_0x7d86('0x49')](handleError(_0x3687cb,null));};exports[_0x7d86('0x77')]=function(_0xc7a07d,_0x33c6c1,_0x1a6e6e){return db[_0x7d86('0x6a')]['findAll']({'where':{'id':_0xc7a07d[_0x7d86('0x38')][_0x7d86('0x78')]},'attributes':['id'],'include':[{'model':db[_0x7d86('0x60')],'as':_0x7d86('0x6d'),'attributes':['id'],'raw':!![]}]})[_0x7d86('0x2b')](handleEntityNotFound(_0x33c6c1,null))['then'](function(_0x35921){var _0x367d30=_[_0x7d86('0x41')](_0x35921,'id');var _0x183032=[];var _0x424203=[];var _0x20d984=squel[_0x7d86('0x79')]();_0x20d984[_0x7d86('0x7a')]('tq.TeamId')['from'](_0x7d86('0x7b'),'tq')[_0x7d86('0x7c')](_0x7d86('0x7d'),'ut',_0x7d86('0x7e'))[_0x7d86('0x3f')](_0x7d86('0x7f'),_0xc7a07d[_0x7d86('0x58')]['id']);for(var _0x4c2631=0x0;_0x4c2631<_0x35921[_0x7d86('0x3d')];_0x4c2631+=0x1){let _0x50a869=_0x35921[_0x4c2631];for(var _0x2e052f=0x0;_0x2e052f<_0x50a869[_0x7d86('0x6d')][_0x7d86('0x3d')];_0x2e052f+=0x1){let _0x2c3267=_0x50a869['Agents'][_0x2e052f];var _0x25efdd=_0x20d984['clone']();_0x25efdd['where'](_0x7d86('0x80'),_0x2c3267['id']);_0x424203[_0x7d86('0x81')](db['sequelize'][_0x7d86('0x38')](_0x25efdd[_0x7d86('0x82')](),{'type':db['sequelize'][_0x7d86('0x83')][_0x7d86('0x84')]})[_0x7d86('0x2b')](function(_0x59a059){if(_0x59a059[_0x7d86('0x3d')]===0x1){return _0x2c3267['id'];}else{var _0xed5536=_[_0x7d86('0x85')](_['map'](_0x59a059,'TeamId'),function(_0x3732b5){return _[_0x7d86('0x86')](_0x367d30,_0x3732b5);});if(_0xed5536){return _0x2c3267['id'];}}}));}}return BPromise['all'](_0x424203)[_0x7d86('0x2b')](function(_0x5b6d88){_0x183032=_(_0x183032)[_0x7d86('0x87')](_0x5b6d88)[_0x7d86('0x88')]()['value']();return db[_0x7d86('0x33')][_0x7d86('0x4e')]({'where':{'id':_0xc7a07d[_0x7d86('0x58')]['id']}})[_0x7d86('0x2b')](function(_0x3f2a9c){return db[_0x7d86('0x71')][_0x7d86('0x72')](function(_0x48f219){return _0x3f2a9c[_0x7d86('0x77')](_0xc7a07d[_0x7d86('0x38')][_0x7d86('0x78')],{'transaction':_0x48f219})[_0x7d86('0x2b')](function(){if(!_['isEmpty'](_0x183032)){return _0x3f2a9c[_0x7d86('0x89')](_0x183032,{'transaction':_0x48f219});}})[_0x7d86('0x2b')](function(){_0x183032[_0x7d86('0x75')](function(_0x2b800a){socket[_0x7d86('0x76')]('userOpenchannelQueue:remove',{'UserId':_0x2b800a,'OpenchannelQueueId':_0x3f2a9c['id']});});});});});});})[_0x7d86('0x2b')](respondWithStatusCode(_0x33c6c1,null))[_0x7d86('0x49')](handleError(_0x33c6c1,null));};exports['addAgents']=function(_0x15ebdc,_0x56a0ee,_0x50eaf1){return db[_0x7d86('0x33')][_0x7d86('0x4e')]({'where':{'id':_0x15ebdc[_0x7d86('0x58')]['id']}})[_0x7d86('0x2b')](handleEntityNotFound(_0x56a0ee,null))[_0x7d86('0x2b')](function(_0x40e9b1){if(_0x40e9b1){return _0x40e9b1[_0x7d86('0x8a')](_0x15ebdc[_0x7d86('0x50')][_0x7d86('0x78')],_['omit'](_0x15ebdc[_0x7d86('0x50')],[_0x7d86('0x78'),'id'])||{})[_0x7d86('0x8b')](function(_0x3a1c62){for(var _0xb6891d=0x0;_0xb6891d<_0x15ebdc['body'][_0x7d86('0x78')][_0x7d86('0x3d')];_0xb6891d+=0x1){socket[_0x7d86('0x76')](_0x7d86('0x8c'),{'UserId':Number(_0x15ebdc[_0x7d86('0x50')][_0x7d86('0x78')][_0xb6891d]),'OpenchannelQueueId':Number(_0x15ebdc[_0x7d86('0x58')]['id'])});}return _0x3a1c62;});}})['then'](respondWithResult(_0x56a0ee,null))[_0x7d86('0x49')](handleError(_0x56a0ee,null));};exports['removeAgents']=function(_0x22dc28,_0x2912c0,_0x541ebc){return db['OpenchannelQueue'][_0x7d86('0x4e')]({'where':{'id':_0x22dc28[_0x7d86('0x58')]['id']}})['then'](handleEntityNotFound(_0x2912c0,null))[_0x7d86('0x2b')](function(_0x55c82e){if(_0x55c82e){return _0x55c82e[_0x7d86('0x89')](_0x22dc28[_0x7d86('0x38')]['ids'])[_0x7d86('0x2b')](function(){if(_['isArray'](_0x22dc28[_0x7d86('0x38')][_0x7d86('0x78')])){for(var _0x86cb69=0x0;_0x86cb69<_0x22dc28[_0x7d86('0x38')][_0x7d86('0x78')]['length'];_0x86cb69+=0x1){socket['emit'](_0x7d86('0x8d'),{'UserId':Number(_0x22dc28[_0x7d86('0x38')]['ids'][_0x86cb69]),'OpenchannelQueueId':Number(_0x22dc28[_0x7d86('0x58')]['id'])});}}else{socket[_0x7d86('0x76')](_0x7d86('0x8d'),{'UserId':Number(_0x22dc28['query']['ids']),'OpenchannelQueueId':Number(_0x22dc28[_0x7d86('0x58')]['id'])});}});}})['then'](respondWithStatusCode(_0x2912c0,null))[_0x7d86('0x49')](handleError(_0x2912c0,null));};exports[_0x7d86('0x8e')]=function(_0x17fe80,_0x569698,_0x4ed202){var _0x471b9e={};var _0xf9464e={};var _0x40e04e;var _0xdf24a1;return db[_0x7d86('0x33')][_0x7d86('0x5b')]({'where':{'id':_0x17fe80[_0x7d86('0x58')]['id']}})[_0x7d86('0x2b')](handleEntityNotFound(_0x569698,null))['then'](function(_0x3dd943){if(_0x3dd943){_0x40e04e=_0x3dd943;_0xf9464e[_0x7d86('0x37')]=_['keys'](db[_0x7d86('0x60')][_0x7d86('0x4c')]);_0xf9464e[_0x7d86('0x38')]=_[_0x7d86('0x4b')](_0x17fe80[_0x7d86('0x38')]);_0xf9464e['filters']=_[_0x7d86('0x3a')](_0xf9464e['model'],_0xf9464e[_0x7d86('0x38')]);_0x471b9e[_0x7d86('0x3b')]=_[_0x7d86('0x3a')](_0xf9464e[_0x7d86('0x37')],qs[_0x7d86('0x3c')](_0x17fe80[_0x7d86('0x38')][_0x7d86('0x3c')]));_0x471b9e[_0x7d86('0x3b')]=_0x471b9e['attributes'][_0x7d86('0x3d')]?_0x471b9e[_0x7d86('0x3b')]:_0xf9464e[_0x7d86('0x37')];_0x471b9e['order']=qs[_0x7d86('0x5e')](_0x17fe80[_0x7d86('0x38')][_0x7d86('0x5e')]);_0x471b9e[_0x7d86('0x3f')]=qs['filters'](_[_0x7d86('0x40')](_0x17fe80[_0x7d86('0x38')],_0xf9464e[_0x7d86('0x39')]));if(_0x17fe80['query'][_0x7d86('0x43')]){_0x471b9e[_0x7d86('0x3f')]=_[_0x7d86('0x44')](_0x471b9e['where'],{'$or':_[_0x7d86('0x41')](_0x471b9e[_0x7d86('0x3b')],function(_0x353321){var _0xb1cbf5={};_0xb1cbf5[_0x353321]={'$like':'%'+_0x17fe80['query'][_0x7d86('0x43')]+'%'};return _0xb1cbf5;})});}_0x471b9e=_[_0x7d86('0x44')]({},_0x471b9e,_0x17fe80[_0x7d86('0x45')]);return _0x40e04e[_0x7d86('0x8e')](_0x471b9e);}})[_0x7d86('0x2b')](function(_0x29a875){if(_0x29a875){_0xdf24a1=_0x29a875[_0x7d86('0x3d')];if(!_0x17fe80[_0x7d86('0x38')][_0x7d86('0x5d')](_0x7d86('0x3e'))){_0x471b9e[_0x7d86('0x22')]=qs[_0x7d86('0x22')](_0x17fe80[_0x7d86('0x38')]['limit']);_0x471b9e[_0x7d86('0x21')]=qs[_0x7d86('0x21')](_0x17fe80[_0x7d86('0x38')][_0x7d86('0x21')]);}return _0x40e04e[_0x7d86('0x8e')](_0x471b9e);}})[_0x7d86('0x2b')](function(_0x13cf61){if(_0x13cf61){return _0x13cf61?{'count':_0xdf24a1,'rows':_0x13cf61}:null;}})[_0x7d86('0x2b')](respondWithResult(_0x569698,null))['catch'](handleError(_0x569698,null));};
\ No newline at end of file
+var _0xd536=['count','set','Content-Range','save','then','destroy','get','OpenchannelQueues','sendStatus','error','name','send','index','fieldName','type','model','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','map','filter','merge','options','OpenchannelQueue','include','rows','catch','show','params','keys','rawAttributes','includeAll','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','getMembers','findOne','OpenchannelQueueId','UserOpenchannelQueue','findAll','User','findAndCountAll','UserId','openchannelPause','createdAt','format','%s/%s','SIP','updatedAt','getTeams','Team','addTeams','Agents','online','voicePause','interface','flatMap','sequelize','transaction','forEach','removeTeams','ids','select','tq.TeamId','from','join','ut.TeamId\x20=\x20tq.TeamId','OpenchannelQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','includes','all','compact','value','isEmpty','removeAgents','emit','userOpenchannelQueue:remove','addAgents','userOpenchannelQueue:save','isArray','getAgents','zip-dir','fast-json-patch','request-promise','moment','util','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./openchannelQueue.socket','register','end','status','json','offset','undefined','limit'];(function(_0x2b1d88,_0x4ec1f1){var _0x59a930=function(_0x23ad5d){while(--_0x23ad5d){_0x2b1d88['push'](_0x2b1d88['shift']());}};_0x59a930(++_0x4ec1f1);}(_0xd536,0x182));var _0x6d53=function(_0x1856a3,_0x5a84c3){_0x1856a3=_0x1856a3-0x0;var _0x40be29=_0xd536[_0x1856a3];return _0x40be29;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x6d53('0x0'));var jsonpatch=require(_0x6d53('0x1'));var rp=require(_0x6d53('0x2'));var moment=require(_0x6d53('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x6d53('0x4'));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(_0x6d53('0x5'));var _=require(_0x6d53('0x6'));var squel=require(_0x6d53('0x7'));var crypto=require(_0x6d53('0x8'));var jsforce=require(_0x6d53('0x9'));var deskjs=require(_0x6d53('0xa'));var toCsv=require(_0x6d53('0xb'));var querystring=require(_0x6d53('0xc'));var Papa=require(_0x6d53('0xd'));var Redis=require(_0x6d53('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x6d53('0xf'));var as=require(_0x6d53('0x10'));var hardwareService=require(_0x6d53('0x11'));var logger=require(_0x6d53('0x12'))('api');var utils=require(_0x6d53('0x13'));var config=require(_0x6d53('0x14'));var licenseUtil=require(_0x6d53('0x15'));var db=require(_0x6d53('0x16'))['db'];config[_0x6d53('0x17')]=_[_0x6d53('0x18')](config[_0x6d53('0x17')],{'host':_0x6d53('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6d53('0x17')]));require(_0x6d53('0x1a'))[_0x6d53('0x1b')](socket);function respondWithStatusCode(_0x397e71,_0x19dda4){_0x19dda4=_0x19dda4||0xcc;return function(_0x58af89){if(_0x58af89){return _0x397e71['sendStatus'](_0x19dda4);}return _0x397e71['status'](_0x19dda4)[_0x6d53('0x1c')]();};}function respondWithResult(_0x4e12c7,_0xf3fa71){_0xf3fa71=_0xf3fa71||0xc8;return function(_0x43b47a){if(_0x43b47a){return _0x4e12c7[_0x6d53('0x1d')](_0xf3fa71)[_0x6d53('0x1e')](_0x43b47a);}};}function respondWithFilteredResult(_0x13585d,_0x177749){return function(_0x1357e7){if(_0x1357e7){var _0x106cfc=typeof _0x177749[_0x6d53('0x1f')]===_0x6d53('0x20')&&typeof _0x177749[_0x6d53('0x21')]===_0x6d53('0x20');var _0xe8f3e7=_0x1357e7[_0x6d53('0x22')];var _0x4707c5=_0x106cfc?0x0:_0x177749[_0x6d53('0x1f')];var _0x162eea=_0x106cfc?_0x1357e7[_0x6d53('0x22')]:_0x177749['offset']+_0x177749['limit'];var _0xa63f94;if(_0x162eea>=_0xe8f3e7){_0x162eea=_0xe8f3e7;_0xa63f94=0xc8;}else{_0xa63f94=0xce;}_0x13585d[_0x6d53('0x1d')](_0xa63f94);return _0x13585d[_0x6d53('0x23')](_0x6d53('0x24'),_0x4707c5+'-'+_0x162eea+'/'+_0xe8f3e7)[_0x6d53('0x1e')](_0x1357e7);}return null;};}function patchUpdates(_0x10f75e){return function(_0xcb85a5){try{jsonpatch['apply'](_0xcb85a5,_0x10f75e,!![]);}catch(_0x5b24d5){return BPromise['reject'](_0x5b24d5);}return _0xcb85a5[_0x6d53('0x25')]();};}function saveUpdates(_0x8479ad,_0x1ff699){return function(_0x456c85){if(_0x456c85){return _0x456c85['update'](_0x8479ad)[_0x6d53('0x26')](function(_0x442d29){return _0x442d29;});}return null;};}function removeEntity(_0x4f9a29,_0x18eed8){return function(_0x4a31e9){if(_0x4a31e9){return _0x4a31e9[_0x6d53('0x27')]()[_0x6d53('0x26')](function(){var _0x1af5b4=_0x4a31e9[_0x6d53('0x28')]({'plain':!![]});var _0x29f820=_0x6d53('0x29');return db['UserProfileResource'][_0x6d53('0x27')]({'where':{'type':_0x29f820,'resourceId':_0x1af5b4['id']}})['then'](function(){return _0x4a31e9;});})[_0x6d53('0x26')](function(){_0x4f9a29[_0x6d53('0x1d')](0xcc)[_0x6d53('0x1c')]();});}};}function handleEntityNotFound(_0x3d4ed2,_0x534c6f){return function(_0x559a04){if(!_0x559a04){_0x3d4ed2[_0x6d53('0x2a')](0x194);}return _0x559a04;};}function handleError(_0x5e0f11,_0x1795ea){_0x1795ea=_0x1795ea||0x1f4;return function(_0x523fd4){logger[_0x6d53('0x2b')](_0x523fd4['stack']);if(_0x523fd4[_0x6d53('0x2c')]){delete _0x523fd4[_0x6d53('0x2c')];}_0x5e0f11[_0x6d53('0x1d')](_0x1795ea)[_0x6d53('0x2d')](_0x523fd4);};}exports[_0x6d53('0x2e')]=function(_0x3a3080,_0x560370){var _0x374d51={},_0x96107e={},_0x2babc6={'count':0x0,'rows':[]};var _0x33b45f=_['map'](db['OpenchannelQueue']['rawAttributes'],function(_0x5653d1){return{'name':_0x5653d1[_0x6d53('0x2f')],'type':_0x5653d1[_0x6d53('0x30')]['key']};});_0x96107e[_0x6d53('0x31')]=_['map'](_0x33b45f,_0x6d53('0x2c'));_0x96107e[_0x6d53('0x32')]=_['keys'](_0x3a3080[_0x6d53('0x32')]);_0x96107e['filters']=_[_0x6d53('0x33')](_0x96107e['model'],_0x96107e[_0x6d53('0x32')]);_0x374d51['attributes']=_[_0x6d53('0x33')](_0x96107e['model'],qs[_0x6d53('0x34')](_0x3a3080['query'][_0x6d53('0x34')]));_0x374d51['attributes']=_0x374d51[_0x6d53('0x35')][_0x6d53('0x36')]?_0x374d51[_0x6d53('0x35')]:_0x96107e[_0x6d53('0x31')];if(!_0x3a3080[_0x6d53('0x32')][_0x6d53('0x37')](_0x6d53('0x38'))){_0x374d51[_0x6d53('0x21')]=qs['limit'](_0x3a3080[_0x6d53('0x32')][_0x6d53('0x21')]);_0x374d51[_0x6d53('0x1f')]=qs[_0x6d53('0x1f')](_0x3a3080[_0x6d53('0x32')][_0x6d53('0x1f')]);}_0x374d51[_0x6d53('0x39')]=qs[_0x6d53('0x3a')](_0x3a3080[_0x6d53('0x32')]['sort']);_0x374d51[_0x6d53('0x3b')]=qs[_0x6d53('0x3c')](_[_0x6d53('0x3d')](_0x3a3080['query'],_0x96107e[_0x6d53('0x3c')]),_0x33b45f);if(_0x3a3080['query']['filter']){_0x374d51[_0x6d53('0x3b')]=_['merge'](_0x374d51[_0x6d53('0x3b')],{'$or':_[_0x6d53('0x3e')](_0x33b45f,function(_0x497ae4){if(_0x497ae4['type']!=='VIRTUAL'){var _0xdbff4={};_0xdbff4[_0x497ae4[_0x6d53('0x2c')]]={'$like':'%'+_0x3a3080[_0x6d53('0x32')][_0x6d53('0x3f')]+'%'};return _0xdbff4;}})});}_0x374d51=_[_0x6d53('0x40')]({},_0x374d51,_0x3a3080[_0x6d53('0x41')]);var _0x54eda8={'where':_0x374d51[_0x6d53('0x3b')]};return db[_0x6d53('0x42')][_0x6d53('0x22')](_0x54eda8)[_0x6d53('0x26')](function(_0x221022){_0x2babc6[_0x6d53('0x22')]=_0x221022;if(_0x3a3080[_0x6d53('0x32')]['includeAll']){_0x374d51[_0x6d53('0x43')]=[{'all':!![]}];}return db[_0x6d53('0x42')]['findAll'](_0x374d51);})['then'](function(_0x14ccb1){_0x2babc6[_0x6d53('0x44')]=_0x14ccb1;return _0x2babc6;})['then'](respondWithFilteredResult(_0x560370,_0x374d51))[_0x6d53('0x45')](handleError(_0x560370,null));};exports[_0x6d53('0x46')]=function(_0x5cde64,_0x367da9){var _0x57c562={'raw':!![],'where':{'id':_0x5cde64[_0x6d53('0x47')]['id']}},_0x474f32={};_0x474f32[_0x6d53('0x31')]=_[_0x6d53('0x48')](db[_0x6d53('0x42')][_0x6d53('0x49')]);_0x474f32[_0x6d53('0x32')]=_[_0x6d53('0x48')](_0x5cde64[_0x6d53('0x32')]);_0x474f32[_0x6d53('0x3c')]=_['intersection'](_0x474f32[_0x6d53('0x31')],_0x474f32[_0x6d53('0x32')]);_0x57c562[_0x6d53('0x35')]=_[_0x6d53('0x33')](_0x474f32[_0x6d53('0x31')],qs[_0x6d53('0x34')](_0x5cde64[_0x6d53('0x32')][_0x6d53('0x34')]));_0x57c562[_0x6d53('0x35')]=_0x57c562[_0x6d53('0x35')][_0x6d53('0x36')]?_0x57c562[_0x6d53('0x35')]:_0x474f32[_0x6d53('0x31')];if(_0x5cde64['query'][_0x6d53('0x4a')]){_0x57c562[_0x6d53('0x43')]=[{'all':!![]}];}_0x57c562=_['merge']({},_0x57c562,_0x5cde64[_0x6d53('0x41')]);return db[_0x6d53('0x42')][_0x6d53('0x4b')](_0x57c562)[_0x6d53('0x26')](handleEntityNotFound(_0x367da9,null))[_0x6d53('0x26')](respondWithResult(_0x367da9,null))[_0x6d53('0x45')](handleError(_0x367da9,null));};exports['create']=function(_0x296a55,_0x3e3e2a){return db['OpenchannelQueue'][_0x6d53('0x4c')](_0x296a55[_0x6d53('0x4d')],{})[_0x6d53('0x26')](function(_0xe37737){var _0x18eb3a=_0x296a55[_0x6d53('0x4e')]['get']({'plain':!![]});if(!_0x18eb3a)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x18eb3a[_0x6d53('0x4f')]===_0x6d53('0x4e')){var _0x2850a8=_0xe37737[_0x6d53('0x28')]({'plain':!![]});var _0x2cdaca='OpenchannelQueues';return db[_0x6d53('0x50')][_0x6d53('0x4b')]({'where':{'name':_0x2cdaca,'userProfileId':_0x18eb3a[_0x6d53('0x51')]},'raw':!![]})[_0x6d53('0x26')](function(_0x259439){if(_0x259439&&_0x259439[_0x6d53('0x52')]===0x0){return db[_0x6d53('0x53')][_0x6d53('0x4c')]({'name':_0x2850a8[_0x6d53('0x2c')],'resourceId':_0x2850a8['id'],'type':_0x259439[_0x6d53('0x2c')],'sectionId':_0x259439['id']},{})['then'](function(){return _0xe37737;});}else{return _0xe37737;}})[_0x6d53('0x45')](function(_0x4d02cb){logger[_0x6d53('0x2b')](_0x6d53('0x54'),_0x4d02cb);throw _0x4d02cb;});}return _0xe37737;})['then'](respondWithResult(_0x3e3e2a,0xc9))['catch'](handleError(_0x3e3e2a,null));};exports[_0x6d53('0x55')]=function(_0x290f69,_0x4cd273){if(_0x290f69[_0x6d53('0x4d')]['id']){delete _0x290f69['body']['id'];}return db[_0x6d53('0x42')]['find']({'where':{'id':_0x290f69[_0x6d53('0x47')]['id']}})[_0x6d53('0x26')](handleEntityNotFound(_0x4cd273,null))[_0x6d53('0x26')](saveUpdates(_0x290f69[_0x6d53('0x4d')],null))['then'](respondWithResult(_0x4cd273,null))[_0x6d53('0x45')](handleError(_0x4cd273,null));};exports['destroy']=function(_0x58529,_0x178958){return db[_0x6d53('0x42')][_0x6d53('0x4b')]({'where':{'id':_0x58529[_0x6d53('0x47')]['id']}})[_0x6d53('0x26')](handleEntityNotFound(_0x178958,null))['then'](removeEntity(_0x178958,null))[_0x6d53('0x45')](handleError(_0x178958,null));};exports['describe']=function(_0x37b377,_0x3384ed){return db[_0x6d53('0x42')][_0x6d53('0x56')]()[_0x6d53('0x26')](respondWithResult(_0x3384ed,null))[_0x6d53('0x45')](handleError(_0x3384ed,null));};exports[_0x6d53('0x57')]=function(_0x1bf336,_0x104fdc,_0x3550db){var _0x529f36={'raw':!![],'where':{}},_0x536965={},_0x1aaa62;return db[_0x6d53('0x42')][_0x6d53('0x58')]({'where':{'id':_0x1bf336[_0x6d53('0x47')]['id']}})[_0x6d53('0x26')](handleEntityNotFound(_0x104fdc,null))[_0x6d53('0x26')](function(_0x4f09ac){if(_0x4f09ac){_0x1aaa62=_0x4f09ac['get']({'plain':!![]});_0x536965[_0x6d53('0x31')]=_[_0x6d53('0x48')](db['UserOpenchannelQueue'][_0x6d53('0x49')]);_0x536965[_0x6d53('0x32')]=_[_0x6d53('0x48')](_0x1bf336[_0x6d53('0x32')]);_0x536965[_0x6d53('0x3c')]=_['intersection'](_0x536965[_0x6d53('0x31')],_0x536965[_0x6d53('0x32')]);_0x529f36[_0x6d53('0x35')]=_[_0x6d53('0x33')](_0x536965[_0x6d53('0x31')],qs[_0x6d53('0x34')](_0x1bf336[_0x6d53('0x32')]['fields']));_0x529f36[_0x6d53('0x35')]=_0x529f36[_0x6d53('0x35')][_0x6d53('0x36')]?_0x529f36[_0x6d53('0x35')]:_0x536965[_0x6d53('0x31')];if(!_0x1bf336[_0x6d53('0x32')][_0x6d53('0x37')](_0x6d53('0x38'))){_0x529f36[_0x6d53('0x21')]=qs[_0x6d53('0x21')](_0x1bf336['query'][_0x6d53('0x21')]);_0x529f36[_0x6d53('0x1f')]=qs[_0x6d53('0x1f')](_0x1bf336[_0x6d53('0x32')]['offset']);}_0x529f36['order']=qs[_0x6d53('0x3a')](_0x1bf336[_0x6d53('0x32')][_0x6d53('0x3a')]);_0x529f36['where']=qs[_0x6d53('0x3c')](_['pick'](_0x1bf336[_0x6d53('0x32')],_0x536965[_0x6d53('0x3c')]));_0x529f36[_0x6d53('0x3b')][_0x6d53('0x59')]=_0x4f09ac['id'];if(_0x1bf336['query'][_0x6d53('0x3f')]){_0x529f36[_0x6d53('0x3b')]=_[_0x6d53('0x40')](_0x529f36[_0x6d53('0x3b')],{'$or':_['map'](_0x529f36[_0x6d53('0x35')],function(_0x179abc){var _0x58b560={};_0x58b560[_0x179abc]={'$like':'%'+_0x1bf336[_0x6d53('0x32')]['filter']+'%'};return _0x58b560;})});}_0x529f36=_[_0x6d53('0x40')]({},_0x529f36,_0x1bf336[_0x6d53('0x41')]);return db[_0x6d53('0x5a')][_0x6d53('0x5b')](_0x529f36);}})[_0x6d53('0x26')](function(_0x243416){if(_0x243416){return db[_0x6d53('0x5c')][_0x6d53('0x5d')]({'where':{'id':_['map'](_0x243416,_0x6d53('0x5e')),'role':'agent'},'attributes':['id',_0x6d53('0x2c'),_0x6d53('0x5f'),'updatedAt',_0x6d53('0x60')]});}})['then'](function(_0x4733a6){if(_0x4733a6){return{'count':_0x4733a6[_0x6d53('0x22')],'rows':_[_0x6d53('0x3e')](_0x4733a6[_0x6d53('0x44')],function(_0x25007d){return{'membername':_0x25007d[_0x6d53('0x2c')],'UserId':_0x25007d['id'],'queue_name':_0x1aaa62['name'],'OpenchannelQueueId':_0x1aaa62['id'],'interface':util[_0x6d53('0x61')](_0x6d53('0x62'),_0x6d53('0x63'),_0x25007d[_0x6d53('0x2c')]),'penalty':0x0,'paused':_0x25007d[_0x6d53('0x5f')],'createdAt':_0x25007d[_0x6d53('0x60')],'updatedAt':_0x25007d[_0x6d53('0x64')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x6d53('0x26')](respondWithFilteredResult(_0x104fdc,_0x529f36))[_0x6d53('0x45')](handleError(_0x104fdc,null));};exports[_0x6d53('0x65')]=function(_0x311cf0,_0x1c8302,_0x1f9775){var _0x567bbe={};var _0x2fa188={};var _0x4b1c59;var _0x1a8fac;return db[_0x6d53('0x42')][_0x6d53('0x58')]({'where':{'id':_0x311cf0[_0x6d53('0x47')]['id']}})[_0x6d53('0x26')](handleEntityNotFound(_0x1c8302,null))[_0x6d53('0x26')](function(_0x56e422){if(_0x56e422){_0x4b1c59=_0x56e422;_0x2fa188[_0x6d53('0x31')]=_[_0x6d53('0x48')](db[_0x6d53('0x66')]['rawAttributes']);_0x2fa188['query']=_[_0x6d53('0x48')](_0x311cf0[_0x6d53('0x32')]);_0x2fa188[_0x6d53('0x3c')]=_['intersection'](_0x2fa188[_0x6d53('0x31')],_0x2fa188['query']);_0x567bbe['attributes']=_[_0x6d53('0x33')](_0x2fa188[_0x6d53('0x31')],qs['fields'](_0x311cf0[_0x6d53('0x32')][_0x6d53('0x34')]));_0x567bbe[_0x6d53('0x35')]=_0x567bbe[_0x6d53('0x35')][_0x6d53('0x36')]?_0x567bbe[_0x6d53('0x35')]:_0x2fa188[_0x6d53('0x31')];_0x567bbe['order']=qs[_0x6d53('0x3a')](_0x311cf0[_0x6d53('0x32')][_0x6d53('0x3a')]);_0x567bbe['where']=qs[_0x6d53('0x3c')](_['pick'](_0x311cf0[_0x6d53('0x32')],_0x2fa188['filters']));if(_0x311cf0[_0x6d53('0x32')][_0x6d53('0x3f')]){_0x567bbe[_0x6d53('0x3b')]=_['merge'](_0x567bbe[_0x6d53('0x3b')],{'$or':_[_0x6d53('0x3e')](_0x567bbe[_0x6d53('0x35')],function(_0x1d12bb){var _0x4d5099={};_0x4d5099[_0x1d12bb]={'$like':'%'+_0x311cf0['query']['filter']+'%'};return _0x4d5099;})});}_0x567bbe=_['merge']({},_0x567bbe,_0x311cf0[_0x6d53('0x41')]);return _0x4b1c59[_0x6d53('0x65')](_0x567bbe);}})['then'](function(_0x10d2cb){if(_0x10d2cb){_0x1a8fac=_0x10d2cb['length'];if(!_0x311cf0[_0x6d53('0x32')]['hasOwnProperty']('nolimit')){_0x567bbe[_0x6d53('0x21')]=qs['limit'](_0x311cf0[_0x6d53('0x32')][_0x6d53('0x21')]);_0x567bbe[_0x6d53('0x1f')]=qs[_0x6d53('0x1f')](_0x311cf0[_0x6d53('0x32')][_0x6d53('0x1f')]);}return _0x4b1c59[_0x6d53('0x65')](_0x567bbe);}})[_0x6d53('0x26')](function(_0xb3a425){if(_0xb3a425){return _0xb3a425?{'count':_0x1a8fac,'rows':_0xb3a425}:null;}})[_0x6d53('0x26')](respondWithResult(_0x1c8302,null))[_0x6d53('0x45')](handleError(_0x1c8302,null));};exports[_0x6d53('0x67')]=function(_0x12ec9f,_0xcd5f7b,_0x27a2fc){var _0x497d64=_0x12ec9f[_0x6d53('0x4d')]['ids'];return db['Team'][_0x6d53('0x5b')]({'where':{'id':_0x497d64},'attributes':['id'],'include':[{'model':db['User'],'as':_0x6d53('0x68'),'attributes':['id',_0x6d53('0x2c'),_0x6d53('0x69'),_0x6d53('0x6a'),_0x6d53('0x6b')],'raw':!![]}]})[_0x6d53('0x26')](function(_0x510ac5){if(_0x510ac5){var _0x75fd7a=_[_0x6d53('0x6c')](_0x510ac5,function(_0x2659b9){var _0x4abe81=_0x2659b9[_0x6d53('0x28')]({'plain':!![]});return _0x4abe81['Agents'];});return db['OpenchannelQueue'][_0x6d53('0x4b')]({'where':{'id':_0x12ec9f[_0x6d53('0x47')]['id']}})['then'](function(_0x984053){return db[_0x6d53('0x6d')][_0x6d53('0x6e')](function(_0x472c08){return _0x984053[_0x6d53('0x67')](_0x497d64,{'transaction':_0x472c08})[_0x6d53('0x26')](function(){return BPromise['each'](_0x75fd7a,function(_0x43fe26){return db['UserOpenchannelQueue']['findOrCreate']({'where':{'UserId':_0x43fe26['id'],'OpenchannelQueueId':_0x12ec9f[_0x6d53('0x47')]['id']},'transaction':_0x472c08});});})[_0x6d53('0x26')](function(){_0x75fd7a[_0x6d53('0x6f')](function(_0x4160e0){socket['emit']('userOpenchannelQueue:save',{'UserId':_0x4160e0['id'],'OpenchannelQueueId':_0x984053['id']});});});});});}})['then'](respondWithStatusCode(_0xcd5f7b,null))[_0x6d53('0x45')](handleError(_0xcd5f7b,null));};exports[_0x6d53('0x70')]=function(_0x3557f2,_0x362d75,_0x50115c){return db[_0x6d53('0x66')][_0x6d53('0x5b')]({'where':{'id':_0x3557f2['query'][_0x6d53('0x71')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x6d53('0x68'),'attributes':['id'],'raw':!![]}]})[_0x6d53('0x26')](handleEntityNotFound(_0x362d75,null))[_0x6d53('0x26')](function(_0x27fef7){var _0x2d9fb0=_[_0x6d53('0x3e')](_0x27fef7,'id');var _0x11da76=[];var _0x4607af=[];var _0x2b5403=squel[_0x6d53('0x72')]();_0x2b5403['field'](_0x6d53('0x73'))[_0x6d53('0x74')]('team_has_openchannel_queues','tq')[_0x6d53('0x75')]('user_has_teams','ut',_0x6d53('0x76'))[_0x6d53('0x3b')](_0x6d53('0x77'),_0x3557f2['params']['id']);for(var _0x4c9c35=0x0;_0x4c9c35<_0x27fef7[_0x6d53('0x36')];_0x4c9c35+=0x1){let _0x342c40=_0x27fef7[_0x4c9c35];for(var _0x3af341=0x0;_0x3af341<_0x342c40[_0x6d53('0x68')][_0x6d53('0x36')];_0x3af341+=0x1){let _0x4be8dc=_0x342c40['Agents'][_0x3af341];var _0x4f1291=_0x2b5403[_0x6d53('0x78')]();_0x4f1291[_0x6d53('0x3b')](_0x6d53('0x79'),_0x4be8dc['id']);_0x4607af[_0x6d53('0x7a')](db['sequelize'][_0x6d53('0x32')](_0x4f1291[_0x6d53('0x7b')](),{'type':db[_0x6d53('0x6d')][_0x6d53('0x7c')][_0x6d53('0x7d')]})['then'](function(_0x3db8a2){if(_0x3db8a2[_0x6d53('0x36')]===0x1){return _0x4be8dc['id'];}else{var _0x221f50=_[_0x6d53('0x7e')](_['map'](_0x3db8a2,_0x6d53('0x7f')),function(_0xc4ae2f){return _[_0x6d53('0x80')](_0x2d9fb0,_0xc4ae2f);});if(_0x221f50){return _0x4be8dc['id'];}}}));}}return BPromise[_0x6d53('0x81')](_0x4607af)[_0x6d53('0x26')](function(_0x4c5532){_0x11da76=_(_0x11da76)['union'](_0x4c5532)[_0x6d53('0x82')]()[_0x6d53('0x83')]();return db[_0x6d53('0x42')][_0x6d53('0x4b')]({'where':{'id':_0x3557f2[_0x6d53('0x47')]['id']}})['then'](function(_0x6a0699){return db[_0x6d53('0x6d')][_0x6d53('0x6e')](function(_0x4da1cd){return _0x6a0699[_0x6d53('0x70')](_0x3557f2['query'][_0x6d53('0x71')],{'transaction':_0x4da1cd})[_0x6d53('0x26')](function(){if(!_[_0x6d53('0x84')](_0x11da76)){return _0x6a0699[_0x6d53('0x85')](_0x11da76,{'transaction':_0x4da1cd});}})['then'](function(){_0x11da76[_0x6d53('0x6f')](function(_0x389505){socket[_0x6d53('0x86')](_0x6d53('0x87'),{'UserId':_0x389505,'OpenchannelQueueId':_0x6a0699['id']});});});});});});})[_0x6d53('0x26')](respondWithStatusCode(_0x362d75,null))[_0x6d53('0x45')](handleError(_0x362d75,null));};exports[_0x6d53('0x88')]=function(_0x3a8970,_0x209abe,_0x385124){return db[_0x6d53('0x42')][_0x6d53('0x4b')]({'where':{'id':_0x3a8970[_0x6d53('0x47')]['id']}})[_0x6d53('0x26')](handleEntityNotFound(_0x209abe,null))[_0x6d53('0x26')](function(_0x10a3b1){if(_0x10a3b1){return _0x10a3b1[_0x6d53('0x88')](_0x3a8970['body'][_0x6d53('0x71')],_['omit'](_0x3a8970['body'],['ids','id'])||{})['spread'](function(_0x30e4de){for(var _0x2819fb=0x0;_0x2819fb<_0x3a8970['body']['ids'][_0x6d53('0x36')];_0x2819fb+=0x1){socket['emit'](_0x6d53('0x89'),{'UserId':Number(_0x3a8970[_0x6d53('0x4d')][_0x6d53('0x71')][_0x2819fb]),'OpenchannelQueueId':Number(_0x3a8970[_0x6d53('0x47')]['id'])});}return _0x30e4de;});}})[_0x6d53('0x26')](respondWithResult(_0x209abe,null))[_0x6d53('0x45')](handleError(_0x209abe,null));};exports[_0x6d53('0x85')]=function(_0x269d66,_0x2a361d,_0x5e3616){return db[_0x6d53('0x42')][_0x6d53('0x4b')]({'where':{'id':_0x269d66['params']['id']}})[_0x6d53('0x26')](handleEntityNotFound(_0x2a361d,null))[_0x6d53('0x26')](function(_0x34cee1){if(_0x34cee1){return _0x34cee1[_0x6d53('0x85')](_0x269d66['query'][_0x6d53('0x71')])[_0x6d53('0x26')](function(){if(_[_0x6d53('0x8a')](_0x269d66[_0x6d53('0x32')]['ids'])){for(var _0x1add3f=0x0;_0x1add3f<_0x269d66[_0x6d53('0x32')]['ids']['length'];_0x1add3f+=0x1){socket[_0x6d53('0x86')](_0x6d53('0x87'),{'UserId':Number(_0x269d66[_0x6d53('0x32')][_0x6d53('0x71')][_0x1add3f]),'OpenchannelQueueId':Number(_0x269d66[_0x6d53('0x47')]['id'])});}}else{socket['emit'](_0x6d53('0x87'),{'UserId':Number(_0x269d66[_0x6d53('0x32')][_0x6d53('0x71')]),'OpenchannelQueueId':Number(_0x269d66['params']['id'])});}});}})['then'](respondWithStatusCode(_0x2a361d,null))['catch'](handleError(_0x2a361d,null));};exports[_0x6d53('0x8b')]=function(_0x2fb64f,_0x475167,_0x35af11){var _0x418589={};var _0x14fc58={};var _0x34e594;var _0x5d83f9;return db[_0x6d53('0x42')][_0x6d53('0x58')]({'where':{'id':_0x2fb64f[_0x6d53('0x47')]['id']}})[_0x6d53('0x26')](handleEntityNotFound(_0x475167,null))[_0x6d53('0x26')](function(_0x27555b){if(_0x27555b){_0x34e594=_0x27555b;_0x14fc58[_0x6d53('0x31')]=_[_0x6d53('0x48')](db[_0x6d53('0x5c')][_0x6d53('0x49')]);_0x14fc58[_0x6d53('0x32')]=_[_0x6d53('0x48')](_0x2fb64f[_0x6d53('0x32')]);_0x14fc58[_0x6d53('0x3c')]=_[_0x6d53('0x33')](_0x14fc58['model'],_0x14fc58['query']);_0x418589[_0x6d53('0x35')]=_['intersection'](_0x14fc58[_0x6d53('0x31')],qs[_0x6d53('0x34')](_0x2fb64f[_0x6d53('0x32')][_0x6d53('0x34')]));_0x418589['attributes']=_0x418589[_0x6d53('0x35')]['length']?_0x418589[_0x6d53('0x35')]:_0x14fc58[_0x6d53('0x31')];_0x418589[_0x6d53('0x39')]=qs[_0x6d53('0x3a')](_0x2fb64f['query']['sort']);_0x418589[_0x6d53('0x3b')]=qs[_0x6d53('0x3c')](_[_0x6d53('0x3d')](_0x2fb64f[_0x6d53('0x32')],_0x14fc58[_0x6d53('0x3c')]));if(_0x2fb64f[_0x6d53('0x32')]['filter']){_0x418589[_0x6d53('0x3b')]=_[_0x6d53('0x40')](_0x418589[_0x6d53('0x3b')],{'$or':_[_0x6d53('0x3e')](_0x418589[_0x6d53('0x35')],function(_0x4b5cb9){var _0x366065={};_0x366065[_0x4b5cb9]={'$like':'%'+_0x2fb64f[_0x6d53('0x32')][_0x6d53('0x3f')]+'%'};return _0x366065;})});}_0x418589=_[_0x6d53('0x40')]({},_0x418589,_0x2fb64f[_0x6d53('0x41')]);return _0x34e594[_0x6d53('0x8b')](_0x418589);}})[_0x6d53('0x26')](function(_0x1d6d71){if(_0x1d6d71){_0x5d83f9=_0x1d6d71[_0x6d53('0x36')];if(!_0x2fb64f[_0x6d53('0x32')][_0x6d53('0x37')](_0x6d53('0x38'))){_0x418589[_0x6d53('0x21')]=qs['limit'](_0x2fb64f['query']['limit']);_0x418589[_0x6d53('0x1f')]=qs['offset'](_0x2fb64f[_0x6d53('0x32')][_0x6d53('0x1f')]);}return _0x34e594['getAgents'](_0x418589);}})[_0x6d53('0x26')](function(_0x377035){if(_0x377035){return _0x377035?{'count':_0x5d83f9,'rows':_0x377035}:null;}})[_0x6d53('0x26')](respondWithResult(_0x475167,null))[_0x6d53('0x45')](handleError(_0x475167,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5412=['update','emit','hook','../../mysqldb','OpenchannelQueue','save'];(function(_0x344839,_0x4a91f2){var _0x545f66=function(_0x3de010){while(--_0x3de010){_0x344839['push'](_0x344839['shift']());}};_0x545f66(++_0x4a91f2);}(_0x5412,0x1b9));var _0x2541=function(_0x3cd476,_0x208734){_0x3cd476=_0x3cd476-0x0;var _0x2889a4=_0x5412[_0x3cd476];return _0x2889a4;};'use strict';var EventEmitter=require('events');var OpenchannelQueue=require(_0x2541('0x0'))['db'][_0x2541('0x1')];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x2541('0x2'),'afterUpdate':_0x2541('0x3'),'afterDestroy':'remove'};function emitEvent(_0x3a4eeb){return function(_0x13d0e3,_0x24170f,_0xf191f0){OpenchannelQueueEvents['emit'](_0x3a4eeb+':'+_0x13d0e3['id'],_0x13d0e3);OpenchannelQueueEvents[_0x2541('0x4')](_0x3a4eeb,_0x13d0e3);_0xf191f0(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelQueue[_0x2541('0x5')](e,emitEvent(event));}}module['exports']=OpenchannelQueueEvents;
\ No newline at end of file
+var _0x4075=['setMaxListeners','update','emit','hasOwnProperty','hook','exports','events'];(function(_0x618414,_0x1a7a60){var _0x21c19a=function(_0x507b17){while(--_0x507b17){_0x618414['push'](_0x618414['shift']());}};_0x21c19a(++_0x1a7a60);}(_0x4075,0x12c));var _0x5407=function(_0x48999d,_0x1e02cb){_0x48999d=_0x48999d-0x0;var _0x1ad0d1=_0x4075[_0x48999d];return _0x1ad0d1;};'use strict';var EventEmitter=require(_0x5407('0x0'));var OpenchannelQueue=require('../../mysqldb')['db']['OpenchannelQueue'];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents[_0x5407('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0x5407('0x2'),'afterDestroy':'remove'};function emitEvent(_0x10ec12){return function(_0x90ac2e,_0x480ee3,_0x4be0eb){OpenchannelQueueEvents['emit'](_0x10ec12+':'+_0x90ac2e['id'],_0x90ac2e);OpenchannelQueueEvents[_0x5407('0x3')](_0x10ec12,_0x90ac2e);_0x4be0eb(null);};}for(var e in events){if(events[_0x5407('0x4')](e)){var event=events[e];OpenchannelQueue[_0x5407('0x5')](e,emitEvent(event));}}module[_0x5407('0x6')]=OpenchannelQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd4f1=['path','rimraf','../../config/environment','lodash','util','../../config/logger','moment','request-promise'];(function(_0x5eb3fe,_0x1e72d4){var _0x35cdc9=function(_0x1f6230){while(--_0x1f6230){_0x5eb3fe['push'](_0x5eb3fe['shift']());}};_0x35cdc9(++_0x1e72d4);}(_0xd4f1,0x15b));var _0x1d4f=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd4f1[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x1d4f('0x0'));var util=require(_0x1d4f('0x1'));var logger=require(_0x1d4f('0x2'))('api');var moment=require(_0x1d4f('0x3'));var BPromise=require('bluebird');var rp=require(_0x1d4f('0x4'));var fs=require('fs');var path=require(_0x1d4f('0x5'));var rimraf=require(_0x1d4f('0x6'));var config=require(_0x1d4f('0x7'));var attributes=require('./openchannelQueue.attributes');module['exports']=function(_0x333031,_0x2a911a){return _0x333031['define']('OpenchannelQueue',attributes,{'tableName':'openchannel_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xbe5a=['util','moment','bluebird','request-promise','rimraf','./openchannelQueue.attributes','define','OpenchannelQueue','openchannel_queues','lodash'];(function(_0x266618,_0x18f637){var _0x54dbf5=function(_0x1f7985){while(--_0x1f7985){_0x266618['push'](_0x266618['shift']());}};_0x54dbf5(++_0x18f637);}(_0xbe5a,0x1f3));var _0xabe5=function(_0x5f1391,_0x19c132){_0x5f1391=_0x5f1391-0x0;var _0x50ebe3=_0xbe5a[_0x5f1391];return _0x50ebe3;};'use strict';var _=require(_0xabe5('0x0'));var util=require(_0xabe5('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xabe5('0x2'));var BPromise=require(_0xabe5('0x3'));var rp=require(_0xabe5('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xabe5('0x5'));var config=require('../../config/environment');var attributes=require(_0xabe5('0x6'));module['exports']=function(_0x1a626c,_0x4f3e25){return _0x1a626c[_0xabe5('0x7')](_0xabe5('0x8'),attributes,{'tableName':_0xabe5('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x460f=['jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./openchannelQueue.socket','register','request','OpenchannelQueue,\x20%s,\x20%s','OpenchannelQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','OpenchannelQueue','findAll','options','raw','include','map','model','attributes','then','GetOpenchannelQueue','debug','ShowOpenchannelQueue','find','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x553050,_0x50ad06){var _0xd15144=function(_0x1f97e8){while(--_0x1f97e8){_0x553050['push'](_0x553050['shift']());}};_0xd15144(++_0x50ad06);}(_0x460f,0x1b9));var _0xf460=function(_0x3e90af,_0x2ade20){_0x3e90af=_0x3e90af-0x0;var _0x413bdb=_0x460f[_0x3e90af];return _0x413bdb;};'use strict';var _=require(_0xf460('0x0'));var util=require(_0xf460('0x1'));var moment=require('moment');var BPromise=require(_0xf460('0x2'));var rs=require(_0xf460('0x3'));var fs=require('fs');var Redis=require(_0xf460('0x4'));var db=require(_0xf460('0x5'))['db'];var utils=require(_0xf460('0x6'));var logger=require(_0xf460('0x7'))(_0xf460('0x8'));var config=require(_0xf460('0x9'));var jayson=require(_0xf460('0xa'));var client=jayson[_0xf460('0xb')][_0xf460('0xc')]({'port':0x232a});config[_0xf460('0xd')]=_[_0xf460('0xe')](config[_0xf460('0xd')],{'host':_0xf460('0xf'),'port':0x18eb});var socket=require(_0xf460('0x10'))(new Redis(config[_0xf460('0xd')]));require(_0xf460('0x11'))[_0xf460('0x12')](socket);function respondWithRpcPromise(_0x54b3ee,_0x422608,_0x43c5c3){return new BPromise(function(_0x316ee6,_0x2d1be6){return client[_0xf460('0x13')](_0x54b3ee,_0x43c5c3)['then'](function(_0x6fa966){logger['info'](_0xf460('0x14'),_0x422608,'request\x20sent');logger['debug'](_0xf460('0x15'),_0x422608,_0xf460('0x16'),JSON[_0xf460('0x17')](_0x6fa966));if(_0x6fa966[_0xf460('0x18')]){if(_0x6fa966[_0xf460('0x18')][_0xf460('0x19')]===0x1f4){logger[_0xf460('0x18')](_0xf460('0x14'),_0x422608,_0x6fa966[_0xf460('0x18')]['message']);return _0x2d1be6(_0x6fa966[_0xf460('0x18')][_0xf460('0x1a')]);}logger[_0xf460('0x18')](_0xf460('0x14'),_0x422608,_0x6fa966[_0xf460('0x18')]['message']);return _0x316ee6(_0x6fa966['error'][_0xf460('0x1a')]);}else{logger[_0xf460('0x1b')]('OpenchannelQueue,\x20%s,\x20%s',_0x422608,_0xf460('0x16'));_0x316ee6(_0x6fa966['result'][_0xf460('0x1a')]);}})['catch'](function(_0xd41827){logger['error']('OpenchannelQueue,\x20%s,\x20%s',_0x422608,_0xd41827);_0x2d1be6(_0xd41827);});});}exports['GetOpenchannelQueue']=function(_0x2d2baf){var _0x2ccea7=this;return new Promise(function(_0x14126c,_0x111e32){return db[_0xf460('0x1c')][_0xf460('0x1d')]({'raw':_0x2d2baf[_0xf460('0x1e')]?_0x2d2baf[_0xf460('0x1e')][_0xf460('0x1f')]===undefined?!![]:![]:!![],'where':_0x2d2baf['options']?_0x2d2baf[_0xf460('0x1e')]['where']||null:null,'attributes':_0x2d2baf[_0xf460('0x1e')]?_0x2d2baf[_0xf460('0x1e')]['attributes']||null:null,'limit':_0x2d2baf[_0xf460('0x1e')]?_0x2d2baf[_0xf460('0x1e')]['limit']||null:null,'include':_0x2d2baf[_0xf460('0x1e')]?_0x2d2baf[_0xf460('0x1e')][_0xf460('0x20')]?_[_0xf460('0x21')](_0x2d2baf[_0xf460('0x1e')][_0xf460('0x20')],function(_0x4201ce){return{'model':db[_0x4201ce[_0xf460('0x22')]],'as':_0x4201ce['as'],'attributes':_0x4201ce[_0xf460('0x23')],'include':_0x4201ce['include']?_[_0xf460('0x21')](_0x4201ce[_0xf460('0x20')],function(_0x59c482){return{'model':db[_0x59c482[_0xf460('0x22')]],'as':_0x59c482['as'],'attributes':_0x59c482[_0xf460('0x23')],'include':_0x59c482['include']?_['map'](_0x59c482[_0xf460('0x20')],function(_0xdea6c7){return{'model':db[_0xdea6c7[_0xf460('0x22')]],'as':_0xdea6c7['as'],'attributes':_0xdea6c7[_0xf460('0x23')]};}):[]};}):[]};}):[]:[]})[_0xf460('0x24')](function(_0x4723fa){logger['info'](_0xf460('0x25'),_0x2d2baf);logger[_0xf460('0x26')]('GetOpenchannelQueue',_0x2d2baf,JSON[_0xf460('0x17')](_0x4723fa));_0x14126c(_0x4723fa);})['catch'](function(_0x163e6f){logger[_0xf460('0x18')]('GetOpenchannelQueue',_0x163e6f['message'],_0x2d2baf);_0x111e32(_0x2ccea7[_0xf460('0x18')](0x1f4,_0x163e6f[_0xf460('0x1a')]));});});};exports[_0xf460('0x27')]=function(_0x48405a){var _0x281ab1=this;return new Promise(function(_0x48d6ba,_0x12d9ef){return db[_0xf460('0x1c')][_0xf460('0x28')]({'raw':_0x48405a[_0xf460('0x1e')]?_0x48405a[_0xf460('0x1e')][_0xf460('0x1f')]===undefined?!![]:![]:!![],'where':_0x48405a[_0xf460('0x1e')]?_0x48405a['options']['where']||null:null,'attributes':_0x48405a[_0xf460('0x1e')]?_0x48405a[_0xf460('0x1e')][_0xf460('0x23')]||null:null,'include':_0x48405a['options']?_0x48405a[_0xf460('0x1e')][_0xf460('0x20')]?_['map'](_0x48405a[_0xf460('0x1e')][_0xf460('0x20')],function(_0x4a875b){return{'model':db[_0x4a875b['model']],'as':_0x4a875b['as'],'attributes':_0x4a875b['attributes'],'include':_0x4a875b[_0xf460('0x20')]?_['map'](_0x4a875b[_0xf460('0x20')],function(_0x59c1c7){return{'model':db[_0x59c1c7[_0xf460('0x22')]],'as':_0x59c1c7['as'],'attributes':_0x59c1c7[_0xf460('0x23')],'include':_0x59c1c7['include']?_[_0xf460('0x21')](_0x59c1c7[_0xf460('0x20')],function(_0x58e9c2){return{'model':db[_0x58e9c2['model']],'as':_0x58e9c2['as'],'attributes':_0x58e9c2['attributes']};}):[]};}):[]};}):[]:[]})[_0xf460('0x24')](function(_0xd3e477){logger[_0xf460('0x1b')](_0xf460('0x27'),_0x48405a);logger['debug'](_0xf460('0x27'),_0x48405a,JSON['stringify'](_0xd3e477));_0x48d6ba(_0xd3e477);})['catch'](function(_0x1f8b9d){logger['error']('ShowOpenchannelQueue',_0x1f8b9d[_0xf460('0x1a')],_0x48405a);_0x12d9ef(_0x281ab1['error'](0x1f4,_0x1f8b9d[_0xf460('0x1a')]));});});};
\ No newline at end of file
+var _0xa5b0=['defaults','redis','localhost','socket.io-emitter','register','request','then','info','request\x20sent','OpenchannelQueue,\x20%s,\x20%s,\x20%s','error','code','message','OpenchannelQueue,\x20%s,\x20%s','result','GetOpenchannelQueue','OpenchannelQueue','findAll','options','raw','where','attributes','limit','include','map','model','debug','stringify','catch','ShowOpenchannelQueue','lodash','util','moment','../../mysqldb','../../config/logger','rpc','../../config/environment','client','http'];(function(_0x117f18,_0x43cb2b){var _0x2d04e6=function(_0x15f1f7){while(--_0x15f1f7){_0x117f18['push'](_0x117f18['shift']());}};_0x2d04e6(++_0x43cb2b);}(_0xa5b0,0x12f));var _0x0a5b=function(_0x319cb9,_0x4b8d35){_0x319cb9=_0x319cb9-0x0;var _0x1735fc=_0xa5b0[_0x319cb9];return _0x1735fc;};'use strict';var _=require(_0x0a5b('0x0'));var util=require(_0x0a5b('0x1'));var moment=require(_0x0a5b('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0a5b('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x0a5b('0x4'))(_0x0a5b('0x5'));var config=require(_0x0a5b('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x0a5b('0x7')][_0x0a5b('0x8')]({'port':0x232a});config['redis']=_[_0x0a5b('0x9')](config[_0x0a5b('0xa')],{'host':_0x0a5b('0xb'),'port':0x18eb});var socket=require(_0x0a5b('0xc'))(new Redis(config['redis']));require('./openchannelQueue.socket')[_0x0a5b('0xd')](socket);function respondWithRpcPromise(_0xe01200,_0x5121c4,_0x299031){return new BPromise(function(_0x1dd931,_0x17e3d9){return client[_0x0a5b('0xe')](_0xe01200,_0x299031)[_0x0a5b('0xf')](function(_0x21ef72){logger[_0x0a5b('0x10')]('OpenchannelQueue,\x20%s,\x20%s',_0x5121c4,_0x0a5b('0x11'));logger['debug'](_0x0a5b('0x12'),_0x5121c4,_0x0a5b('0x11'),JSON['stringify'](_0x21ef72));if(_0x21ef72[_0x0a5b('0x13')]){if(_0x21ef72[_0x0a5b('0x13')][_0x0a5b('0x14')]===0x1f4){logger[_0x0a5b('0x13')]('OpenchannelQueue,\x20%s,\x20%s',_0x5121c4,_0x21ef72[_0x0a5b('0x13')]['message']);return _0x17e3d9(_0x21ef72[_0x0a5b('0x13')][_0x0a5b('0x15')]);}logger[_0x0a5b('0x13')](_0x0a5b('0x16'),_0x5121c4,_0x21ef72[_0x0a5b('0x13')][_0x0a5b('0x15')]);return _0x1dd931(_0x21ef72['error'][_0x0a5b('0x15')]);}else{logger[_0x0a5b('0x10')](_0x0a5b('0x16'),_0x5121c4,_0x0a5b('0x11'));_0x1dd931(_0x21ef72[_0x0a5b('0x17')][_0x0a5b('0x15')]);}})['catch'](function(_0x34aeff){logger['error'](_0x0a5b('0x16'),_0x5121c4,_0x34aeff);_0x17e3d9(_0x34aeff);});});}exports[_0x0a5b('0x18')]=function(_0x3061a8){var _0x248f30=this;return new Promise(function(_0x4306a5,_0x55e8fd){return db[_0x0a5b('0x19')][_0x0a5b('0x1a')]({'raw':_0x3061a8[_0x0a5b('0x1b')]?_0x3061a8['options'][_0x0a5b('0x1c')]===undefined?!![]:![]:!![],'where':_0x3061a8[_0x0a5b('0x1b')]?_0x3061a8['options'][_0x0a5b('0x1d')]||null:null,'attributes':_0x3061a8['options']?_0x3061a8['options'][_0x0a5b('0x1e')]||null:null,'limit':_0x3061a8['options']?_0x3061a8[_0x0a5b('0x1b')][_0x0a5b('0x1f')]||null:null,'include':_0x3061a8[_0x0a5b('0x1b')]?_0x3061a8[_0x0a5b('0x1b')][_0x0a5b('0x20')]?_[_0x0a5b('0x21')](_0x3061a8[_0x0a5b('0x1b')][_0x0a5b('0x20')],function(_0x155a35){return{'model':db[_0x155a35['model']],'as':_0x155a35['as'],'attributes':_0x155a35['attributes'],'include':_0x155a35[_0x0a5b('0x20')]?_[_0x0a5b('0x21')](_0x155a35[_0x0a5b('0x20')],function(_0x229370){return{'model':db[_0x229370[_0x0a5b('0x22')]],'as':_0x229370['as'],'attributes':_0x229370['attributes'],'include':_0x229370[_0x0a5b('0x20')]?_[_0x0a5b('0x21')](_0x229370[_0x0a5b('0x20')],function(_0x3f8ba4){return{'model':db[_0x3f8ba4[_0x0a5b('0x22')]],'as':_0x3f8ba4['as'],'attributes':_0x3f8ba4['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x4a07a9){logger[_0x0a5b('0x10')](_0x0a5b('0x18'),_0x3061a8);logger[_0x0a5b('0x23')](_0x0a5b('0x18'),_0x3061a8,JSON[_0x0a5b('0x24')](_0x4a07a9));_0x4306a5(_0x4a07a9);})[_0x0a5b('0x25')](function(_0x4fe9e1){logger[_0x0a5b('0x13')](_0x0a5b('0x18'),_0x4fe9e1[_0x0a5b('0x15')],_0x3061a8);_0x55e8fd(_0x248f30[_0x0a5b('0x13')](0x1f4,_0x4fe9e1[_0x0a5b('0x15')]));});});};exports[_0x0a5b('0x26')]=function(_0x1b55dc){var _0x466aaa=this;return new Promise(function(_0x283d4b,_0x13e9d1){return db[_0x0a5b('0x19')]['find']({'raw':_0x1b55dc[_0x0a5b('0x1b')]?_0x1b55dc['options']['raw']===undefined?!![]:![]:!![],'where':_0x1b55dc[_0x0a5b('0x1b')]?_0x1b55dc['options'][_0x0a5b('0x1d')]||null:null,'attributes':_0x1b55dc[_0x0a5b('0x1b')]?_0x1b55dc[_0x0a5b('0x1b')][_0x0a5b('0x1e')]||null:null,'include':_0x1b55dc[_0x0a5b('0x1b')]?_0x1b55dc[_0x0a5b('0x1b')][_0x0a5b('0x20')]?_[_0x0a5b('0x21')](_0x1b55dc['options'][_0x0a5b('0x20')],function(_0x50112e){return{'model':db[_0x50112e[_0x0a5b('0x22')]],'as':_0x50112e['as'],'attributes':_0x50112e['attributes'],'include':_0x50112e[_0x0a5b('0x20')]?_['map'](_0x50112e[_0x0a5b('0x20')],function(_0x2c4318){return{'model':db[_0x2c4318[_0x0a5b('0x22')]],'as':_0x2c4318['as'],'attributes':_0x2c4318[_0x0a5b('0x1e')],'include':_0x2c4318[_0x0a5b('0x20')]?_[_0x0a5b('0x21')](_0x2c4318[_0x0a5b('0x20')],function(_0x1ff817){return{'model':db[_0x1ff817['model']],'as':_0x1ff817['as'],'attributes':_0x1ff817[_0x0a5b('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x0a5b('0xf')](function(_0xb30cf5){logger['info']('ShowOpenchannelQueue',_0x1b55dc);logger['debug'](_0x0a5b('0x26'),_0x1b55dc,JSON['stringify'](_0xb30cf5));_0x283d4b(_0xb30cf5);})[_0x0a5b('0x25')](function(_0x560521){logger[_0x0a5b('0x13')](_0x0a5b('0x26'),_0x560521['message'],_0x1b55dc);_0x13e9d1(_0x466aaa[_0x0a5b('0x13')](0x1f4,_0x560521[_0x0a5b('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b0c=['save','remove','update','emit','removeListener','openchannelQueue:','./openchannelQueue.events'];(function(_0x9df060,_0x253d33){var _0x338dfe=function(_0x17d9a5){while(--_0x17d9a5){_0x9df060['push'](_0x9df060['shift']());}};_0x338dfe(++_0x253d33);}(_0x4b0c,0x15d));var _0xc4b0=function(_0x555ff9,_0x120c13){_0x555ff9=_0x555ff9-0x0;var _0x3e452d=_0x4b0c[_0x555ff9];return _0x3e452d;};'use strict';var OpenchannelQueueEvents=require(_0xc4b0('0x0'));var events=[_0xc4b0('0x1'),_0xc4b0('0x2'),_0xc4b0('0x3')];function createListener(_0x346f46,_0xf99d6f){return function(_0x20d6ac){_0xf99d6f[_0xc4b0('0x4')](_0x346f46,_0x20d6ac);};}function removeListener(_0x66b2ec,_0x426d5a){return function(){OpenchannelQueueEvents[_0xc4b0('0x5')](_0x66b2ec,_0x426d5a);};}exports['register']=function(_0x3ef6d5){for(var _0x45991d=0x0,_0x1e69a0=events['length'];_0x45991d<_0x1e69a0;_0x45991d++){var _0x251db8=events[_0x45991d];var _0x546027=createListener(_0xc4b0('0x6')+_0x251db8,_0x3ef6d5);OpenchannelQueueEvents['on'](_0x251db8,_0x546027);}};
\ No newline at end of file
+var _0x8955=['register','length','openchannelQueue:','./openchannelQueue.events','save','remove','update','emit'];(function(_0x126558,_0x143c9a){var _0x1f6d14=function(_0x2b0eea){while(--_0x2b0eea){_0x126558['push'](_0x126558['shift']());}};_0x1f6d14(++_0x143c9a);}(_0x8955,0xc3));var _0x5895=function(_0x3edf94,_0x332240){_0x3edf94=_0x3edf94-0x0;var _0x5326a7=_0x8955[_0x3edf94];return _0x5326a7;};'use strict';var OpenchannelQueueEvents=require(_0x5895('0x0'));var events=[_0x5895('0x1'),_0x5895('0x2'),_0x5895('0x3')];function createListener(_0x4c7b80,_0x59356b){return function(_0x143a44){_0x59356b[_0x5895('0x4')](_0x4c7b80,_0x143a44);};}function removeListener(_0x1b1c87,_0x38a0b9){return function(){OpenchannelQueueEvents['removeListener'](_0x1b1c87,_0x38a0b9);};}exports[_0x5895('0x5')]=function(_0x1e8174){for(var _0x2b014b=0x0,_0x48fbd9=events[_0x5895('0x6')];_0x2b014b<_0x48fbd9;_0x2b014b++){var _0x498503=events[_0x2b014b];var _0xe7b191=createListener(_0x5895('0x7')+_0x498503,_0x1e8174);OpenchannelQueueEvents['on'](_0x498503,_0xe7b191);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa14a=['path','express','Router','fs-extra','../../components/interaction/service','./openchannelQueueReport.controller','get','index','/describe','describe','/:id','isAuthenticated','show','post','create','put','update','destroy','exports','multer'];(function(_0x5a5476,_0x3bd606){var _0x2dfd18=function(_0x972757){while(--_0x972757){_0x5a5476['push'](_0x5a5476['shift']());}};_0x2dfd18(++_0x3bd606);}(_0xa14a,0x13f));var _0xaa14=function(_0x278e3c,_0x1c9cfd){_0x278e3c=_0x278e3c-0x0;var _0x3e2d9b=_0xa14a[_0x278e3c];return _0x3e2d9b;};'use strict';var multer=require(_0xaa14('0x0'));var util=require('util');var path=require(_0xaa14('0x1'));var timeout=require('connect-timeout');var express=require(_0xaa14('0x2'));var router=express[_0xaa14('0x3')]();var fs_extra=require(_0xaa14('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xaa14('0x5'));var config=require('../../config/environment');var controller=require(_0xaa14('0x6'));router[_0xaa14('0x7')]('/',auth['isAuthenticated'](),controller[_0xaa14('0x8')]);router[_0xaa14('0x7')](_0xaa14('0x9'),auth['isAuthenticated'](),controller[_0xaa14('0xa')]);router[_0xaa14('0x7')](_0xaa14('0xb'),auth[_0xaa14('0xc')](),controller[_0xaa14('0xd')]);router[_0xaa14('0xe')]('/',auth[_0xaa14('0xc')](),controller[_0xaa14('0xf')]);router[_0xaa14('0x10')](_0xaa14('0xb'),auth[_0xaa14('0xc')](),controller[_0xaa14('0x11')]);router['delete'](_0xaa14('0xb'),auth[_0xaa14('0xc')](),controller[_0xaa14('0x12')]);module[_0xaa14('0x13')]=router;
\ No newline at end of file
+var _0xda13=['express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelQueueReport.controller','get','/describe','isAuthenticated','/:id','show','post','create','put','delete','exports','multer','path','connect-timeout'];(function(_0x2b0251,_0x221dc6){var _0x4bb330=function(_0x5786da){while(--_0x5786da){_0x2b0251['push'](_0x2b0251['shift']());}};_0x4bb330(++_0x221dc6);}(_0xda13,0x1eb));var _0x3da1=function(_0x14647d,_0x20a244){_0x14647d=_0x14647d-0x0;var _0x3a0cae=_0xda13[_0x14647d];return _0x3a0cae;};'use strict';var multer=require(_0x3da1('0x0'));var util=require('util');var path=require(_0x3da1('0x1'));var timeout=require(_0x3da1('0x2'));var express=require(_0x3da1('0x3'));var router=express['Router']();var fs_extra=require(_0x3da1('0x4'));var auth=require(_0x3da1('0x5'));var interaction=require(_0x3da1('0x6'));var config=require(_0x3da1('0x7'));var controller=require(_0x3da1('0x8'));router[_0x3da1('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x3da1('0x9')](_0x3da1('0xa'),auth[_0x3da1('0xb')](),controller['describe']);router['get'](_0x3da1('0xc'),auth[_0x3da1('0xb')](),controller[_0x3da1('0xd')]);router[_0x3da1('0xe')]('/',auth['isAuthenticated'](),controller[_0x3da1('0xf')]);router[_0x3da1('0x10')](_0x3da1('0xc'),auth[_0x3da1('0xb')](),controller['update']);router[_0x3da1('0x11')](_0x3da1('0xc'),auth[_0x3da1('0xb')](),controller['destroy']);module[_0x3da1('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b2e=['STRING','DATE','exports'];(function(_0x538c5f,_0x172ae7){var _0x183649=function(_0x57ac0b){while(--_0x57ac0b){_0x538c5f['push'](_0x538c5f['shift']());}};_0x183649(++_0x172ae7);}(_0x4b2e,0xcb));var _0xe4b2=function(_0x987d30,_0x3691ea){_0x987d30=_0x987d30-0x0;var _0x58609a=_0x4b2e[_0x987d30];return _0x58609a;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0xe4b2('0x0')]={'uniqueid':{'type':Sequelize[_0xe4b2('0x1')],'allowNull':![]},'from':{'type':Sequelize[_0xe4b2('0x1')]},'joinAt':{'type':Sequelize[_0xe4b2('0x2')]},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize[_0xe4b2('0x2')]},'exitAt':{'type':Sequelize[_0xe4b2('0x2')]},'reason':{'type':Sequelize[_0xe4b2('0x1')]}};
\ No newline at end of file
+var _0x7166=['STRING','DATE','exports'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x7166,0x194));var _0x6716=function(_0x4a7e98,_0x250137){_0x4a7e98=_0x4a7e98-0x0;var _0x27d10d=_0x7166[_0x4a7e98];return _0x27d10d;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x6716('0x0')]={'uniqueid':{'type':Sequelize[_0x6716('0x1')],'allowNull':![]},'from':{'type':Sequelize[_0x6716('0x1')]},'joinAt':{'type':Sequelize[_0x6716('0x2')]},'leaveAt':{'type':Sequelize[_0x6716('0x2')]},'acceptAt':{'type':Sequelize[_0x6716('0x2')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize[_0x6716('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54bc=['reject','update','destroy','then','stack','name','send','index','map','OpenchannelQueueReport','rawAttributes','type','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','options','includeAll','include','findAll','rows','catch','length','find','create','body','params','describe','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x54bc,0x6d));var _0xc54b=function(_0x36e2a4,_0x57e569){_0x36e2a4=_0x36e2a4-0x0;var _0x282170=_0x54bc[_0x36e2a4];return _0x282170;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc54b('0x0'));var zipdir=require(_0xc54b('0x1'));var jsonpatch=require(_0xc54b('0x2'));var rp=require(_0xc54b('0x3'));var moment=require('moment');var BPromise=require(_0xc54b('0x4'));var Mustache=require(_0xc54b('0x5'));var util=require(_0xc54b('0x6'));var path=require(_0xc54b('0x7'));var sox=require(_0xc54b('0x8'));var csv=require(_0xc54b('0x9'));var ejs=require(_0xc54b('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc54b('0xb'));var squel=require(_0xc54b('0xc'));var crypto=require(_0xc54b('0xd'));var jsforce=require(_0xc54b('0xe'));var deskjs=require(_0xc54b('0xf'));var toCsv=require(_0xc54b('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xc54b('0x10'));var authService=require(_0xc54b('0x11'));var qs=require(_0xc54b('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc54b('0x13'));var logger=require('../../config/logger')(_0xc54b('0x14'));var utils=require(_0xc54b('0x15'));var config=require(_0xc54b('0x16'));var licenseUtil=require(_0xc54b('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2b6da4,_0x2bf9c1){_0x2bf9c1=_0x2bf9c1||0xcc;return function(_0x25e6f6){if(_0x25e6f6){return _0x2b6da4[_0xc54b('0x18')](_0x2bf9c1);}return _0x2b6da4[_0xc54b('0x19')](_0x2bf9c1)['end']();};}function respondWithResult(_0x3c9917,_0x58842f){_0x58842f=_0x58842f||0xc8;return function(_0x1e399a){if(_0x1e399a){return _0x3c9917['status'](_0x58842f)[_0xc54b('0x1a')](_0x1e399a);}};}function respondWithFilteredResult(_0x38a0b3,_0x84dd4b){return function(_0x4ab160){if(_0x4ab160){var _0x338bb1=typeof _0x84dd4b[_0xc54b('0x1b')]===_0xc54b('0x1c')&&typeof _0x84dd4b[_0xc54b('0x1d')]==='undefined';var _0x323022=_0x4ab160[_0xc54b('0x1e')];var _0x4a1d69=_0x338bb1?0x0:_0x84dd4b[_0xc54b('0x1b')];var _0x522e49=_0x338bb1?_0x4ab160[_0xc54b('0x1e')]:_0x84dd4b[_0xc54b('0x1b')]+_0x84dd4b[_0xc54b('0x1d')];var _0x2771ef;if(_0x522e49>=_0x323022){_0x522e49=_0x323022;_0x2771ef=0xc8;}else{_0x2771ef=0xce;}_0x38a0b3['status'](_0x2771ef);return _0x38a0b3[_0xc54b('0x1f')](_0xc54b('0x20'),_0x4a1d69+'-'+_0x522e49+'/'+_0x323022)[_0xc54b('0x1a')](_0x4ab160);}return null;};}function patchUpdates(_0xb7e6bc){return function(_0x207a13){try{jsonpatch['apply'](_0x207a13,_0xb7e6bc,!![]);}catch(_0x3e6a22){return BPromise[_0xc54b('0x21')](_0x3e6a22);}return _0x207a13['save']();};}function saveUpdates(_0x18874e,_0x2ec2e2){return function(_0x52281b){if(_0x52281b){return _0x52281b[_0xc54b('0x22')](_0x18874e)['then'](function(_0x3b48b2){return _0x3b48b2;});}return null;};}function removeEntity(_0x2eb1ce,_0x261251){return function(_0x355177){if(_0x355177){return _0x355177[_0xc54b('0x23')]()[_0xc54b('0x24')](function(){_0x2eb1ce[_0xc54b('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x54f6c2,_0x471baf){return function(_0x2afd15){if(!_0x2afd15){_0x54f6c2[_0xc54b('0x18')](0x194);}return _0x2afd15;};}function handleError(_0x331640,_0x2147cc){_0x2147cc=_0x2147cc||0x1f4;return function(_0x152f0d){logger['error'](_0x152f0d[_0xc54b('0x25')]);if(_0x152f0d[_0xc54b('0x26')]){delete _0x152f0d[_0xc54b('0x26')];}_0x331640[_0xc54b('0x19')](_0x2147cc)[_0xc54b('0x27')](_0x152f0d);};}exports[_0xc54b('0x28')]=function(_0x4baa77,_0x24c673){var _0xfad1ad={},_0x2dc34e={},_0x50e3fd={'count':0x0,'rows':[]};var _0x24d511=_[_0xc54b('0x29')](db[_0xc54b('0x2a')][_0xc54b('0x2b')],function(_0x30d9a3){return{'name':_0x30d9a3['fieldName'],'type':_0x30d9a3[_0xc54b('0x2c')]['key']};});_0x2dc34e[_0xc54b('0x2d')]=_[_0xc54b('0x29')](_0x24d511,_0xc54b('0x26'));_0x2dc34e[_0xc54b('0x2e')]=_[_0xc54b('0x2f')](_0x4baa77[_0xc54b('0x2e')]);_0x2dc34e['filters']=_[_0xc54b('0x30')](_0x2dc34e[_0xc54b('0x2d')],_0x2dc34e[_0xc54b('0x2e')]);_0xfad1ad['attributes']=_[_0xc54b('0x30')](_0x2dc34e[_0xc54b('0x2d')],qs[_0xc54b('0x31')](_0x4baa77[_0xc54b('0x2e')]['fields']));_0xfad1ad[_0xc54b('0x32')]=_0xfad1ad['attributes']['length']?_0xfad1ad[_0xc54b('0x32')]:_0x2dc34e[_0xc54b('0x2d')];if(!_0x4baa77['query'][_0xc54b('0x33')](_0xc54b('0x34'))){_0xfad1ad[_0xc54b('0x1d')]=qs['limit'](_0x4baa77[_0xc54b('0x2e')]['limit']);_0xfad1ad['offset']=qs['offset'](_0x4baa77['query'][_0xc54b('0x1b')]);}_0xfad1ad[_0xc54b('0x35')]=qs[_0xc54b('0x36')](_0x4baa77[_0xc54b('0x2e')]['sort']);_0xfad1ad[_0xc54b('0x37')]=qs[_0xc54b('0x38')](_['pick'](_0x4baa77['query'],_0x2dc34e[_0xc54b('0x38')]),_0x24d511);if(_0x4baa77[_0xc54b('0x2e')][_0xc54b('0x39')]){_0xfad1ad[_0xc54b('0x37')]=_['merge'](_0xfad1ad[_0xc54b('0x37')],{'$or':_[_0xc54b('0x29')](_0x24d511,function(_0x454673){if(_0x454673[_0xc54b('0x2c')]!=='VIRTUAL'){var _0x12bf37={};_0x12bf37[_0x454673[_0xc54b('0x26')]]={'$like':'%'+_0x4baa77['query'][_0xc54b('0x39')]+'%'};return _0x12bf37;}})});}_0xfad1ad=_[_0xc54b('0x3a')]({},_0xfad1ad,_0x4baa77[_0xc54b('0x3b')]);var _0x5039ff={'where':_0xfad1ad['where']};return db[_0xc54b('0x2a')][_0xc54b('0x1e')](_0x5039ff)[_0xc54b('0x24')](function(_0x4ea8c3){_0x50e3fd[_0xc54b('0x1e')]=_0x4ea8c3;if(_0x4baa77[_0xc54b('0x2e')][_0xc54b('0x3c')]){_0xfad1ad[_0xc54b('0x3d')]=[{'all':!![]}];}return db[_0xc54b('0x2a')][_0xc54b('0x3e')](_0xfad1ad);})[_0xc54b('0x24')](function(_0x4b0189){_0x50e3fd[_0xc54b('0x3f')]=_0x4b0189;return _0x50e3fd;})[_0xc54b('0x24')](respondWithFilteredResult(_0x24c673,_0xfad1ad))[_0xc54b('0x40')](handleError(_0x24c673,null));};exports['show']=function(_0x386a17,_0x43130f){var _0x4c4f96={'raw':!![],'where':{'id':_0x386a17['params']['id']}},_0x1a7275={};_0x1a7275['model']=_[_0xc54b('0x2f')](db['OpenchannelQueueReport']['rawAttributes']);_0x1a7275[_0xc54b('0x2e')]=_[_0xc54b('0x2f')](_0x386a17[_0xc54b('0x2e')]);_0x1a7275[_0xc54b('0x38')]=_['intersection'](_0x1a7275['model'],_0x1a7275[_0xc54b('0x2e')]);_0x4c4f96[_0xc54b('0x32')]=_[_0xc54b('0x30')](_0x1a7275[_0xc54b('0x2d')],qs[_0xc54b('0x31')](_0x386a17[_0xc54b('0x2e')]['fields']));_0x4c4f96[_0xc54b('0x32')]=_0x4c4f96['attributes'][_0xc54b('0x41')]?_0x4c4f96[_0xc54b('0x32')]:_0x1a7275[_0xc54b('0x2d')];if(_0x386a17['query'][_0xc54b('0x3c')]){_0x4c4f96[_0xc54b('0x3d')]=[{'all':!![]}];}_0x4c4f96=_[_0xc54b('0x3a')]({},_0x4c4f96,_0x386a17[_0xc54b('0x3b')]);return db[_0xc54b('0x2a')][_0xc54b('0x42')](_0x4c4f96)[_0xc54b('0x24')](handleEntityNotFound(_0x43130f,null))[_0xc54b('0x24')](respondWithResult(_0x43130f,null))[_0xc54b('0x40')](handleError(_0x43130f,null));};exports[_0xc54b('0x43')]=function(_0x375946,_0x6d549f){return db[_0xc54b('0x2a')][_0xc54b('0x43')](_0x375946['body'],{})['then'](respondWithResult(_0x6d549f,0xc9))[_0xc54b('0x40')](handleError(_0x6d549f,null));};exports[_0xc54b('0x22')]=function(_0x8f69c,_0x1b53d4){if(_0x8f69c['body']['id']){delete _0x8f69c[_0xc54b('0x44')]['id'];}return db['OpenchannelQueueReport'][_0xc54b('0x42')]({'where':{'id':_0x8f69c[_0xc54b('0x45')]['id']}})[_0xc54b('0x24')](handleEntityNotFound(_0x1b53d4,null))[_0xc54b('0x24')](saveUpdates(_0x8f69c[_0xc54b('0x44')],null))['then'](respondWithResult(_0x1b53d4,null))[_0xc54b('0x40')](handleError(_0x1b53d4,null));};exports[_0xc54b('0x23')]=function(_0x37015c,_0x286081){return db[_0xc54b('0x2a')][_0xc54b('0x42')]({'where':{'id':_0x37015c[_0xc54b('0x45')]['id']}})[_0xc54b('0x24')](handleEntityNotFound(_0x286081,null))[_0xc54b('0x24')](removeEntity(_0x286081,null))[_0xc54b('0x40')](handleError(_0x286081,null));};exports['describe']=function(_0x519289,_0xabaae0){return db[_0xc54b('0x2a')][_0xc54b('0x46')]()[_0xc54b('0x24')](respondWithResult(_0xabaae0,null))[_0xc54b('0x40')](handleError(_0xabaae0,null));};
\ No newline at end of file
+var _0x56d4=['bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','end','status','json','undefined','limit','offset','set','Content-Range','apply','save','update','then','destroy','sendStatus','error','stack','name','index','map','OpenchannelQueueReport','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','count','includeAll','include','catch','show','params','rawAttributes','create','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment'];(function(_0x31e29a,_0x349c9b){var _0x32d892=function(_0x41cc86){while(--_0x41cc86){_0x31e29a['push'](_0x31e29a['shift']());}};_0x32d892(++_0x349c9b);}(_0x56d4,0xdc));var _0x456d=function(_0x4c0ff5,_0x478bca){_0x4c0ff5=_0x4c0ff5-0x0;var _0x4024b6=_0x56d4[_0x4c0ff5];return _0x4024b6;};'use strict';var emlformat=require(_0x456d('0x0'));var rimraf=require(_0x456d('0x1'));var zipdir=require(_0x456d('0x2'));var jsonpatch=require(_0x456d('0x3'));var rp=require('request-promise');var moment=require(_0x456d('0x4'));var BPromise=require(_0x456d('0x5'));var Mustache=require(_0x456d('0x6'));var util=require(_0x456d('0x7'));var path=require(_0x456d('0x8'));var sox=require(_0x456d('0x9'));var csv=require('to-csv');var ejs=require(_0x456d('0xa'));var fs=require('fs');var fs_extra=require(_0x456d('0xb'));var _=require(_0x456d('0xc'));var squel=require(_0x456d('0xd'));var crypto=require(_0x456d('0xe'));var jsforce=require(_0x456d('0xf'));var deskjs=require(_0x456d('0x10'));var toCsv=require(_0x456d('0x11'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x456d('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x456d('0x13'));var as=require(_0x456d('0x14'));var hardwareService=require(_0x456d('0x15'));var logger=require(_0x456d('0x16'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x456d('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2be4f4,_0x4db9c2){_0x4db9c2=_0x4db9c2||0xcc;return function(_0x462c2d){if(_0x462c2d){return _0x2be4f4['sendStatus'](_0x4db9c2);}return _0x2be4f4['status'](_0x4db9c2)[_0x456d('0x18')]();};}function respondWithResult(_0x1ab60a,_0x574cb6){_0x574cb6=_0x574cb6||0xc8;return function(_0x5759c3){if(_0x5759c3){return _0x1ab60a[_0x456d('0x19')](_0x574cb6)[_0x456d('0x1a')](_0x5759c3);}};}function respondWithFilteredResult(_0x546ab3,_0x1f93f6){return function(_0x515d46){if(_0x515d46){var _0x4f60d0=typeof _0x1f93f6['offset']===_0x456d('0x1b')&&typeof _0x1f93f6[_0x456d('0x1c')]===_0x456d('0x1b');var _0x42dc2a=_0x515d46['count'];var _0xd7df0a=_0x4f60d0?0x0:_0x1f93f6[_0x456d('0x1d')];var _0xd1ab91=_0x4f60d0?_0x515d46['count']:_0x1f93f6[_0x456d('0x1d')]+_0x1f93f6['limit'];var _0x3dbd5e;if(_0xd1ab91>=_0x42dc2a){_0xd1ab91=_0x42dc2a;_0x3dbd5e=0xc8;}else{_0x3dbd5e=0xce;}_0x546ab3[_0x456d('0x19')](_0x3dbd5e);return _0x546ab3[_0x456d('0x1e')](_0x456d('0x1f'),_0xd7df0a+'-'+_0xd1ab91+'/'+_0x42dc2a)['json'](_0x515d46);}return null;};}function patchUpdates(_0x154a56){return function(_0x1b6fe7){try{jsonpatch[_0x456d('0x20')](_0x1b6fe7,_0x154a56,!![]);}catch(_0x38085c){return BPromise['reject'](_0x38085c);}return _0x1b6fe7[_0x456d('0x21')]();};}function saveUpdates(_0x9d5a8f,_0x418692){return function(_0x4590c3){if(_0x4590c3){return _0x4590c3[_0x456d('0x22')](_0x9d5a8f)[_0x456d('0x23')](function(_0x5c9156){return _0x5c9156;});}return null;};}function removeEntity(_0x478f40,_0x1b2778){return function(_0x294edd){if(_0x294edd){return _0x294edd[_0x456d('0x24')]()['then'](function(){_0x478f40[_0x456d('0x19')](0xcc)[_0x456d('0x18')]();});}};}function handleEntityNotFound(_0x1da728,_0x48c6a9){return function(_0x11bf0){if(!_0x11bf0){_0x1da728[_0x456d('0x25')](0x194);}return _0x11bf0;};}function handleError(_0x379a5d,_0x3eb36d){_0x3eb36d=_0x3eb36d||0x1f4;return function(_0x46de50){logger[_0x456d('0x26')](_0x46de50[_0x456d('0x27')]);if(_0x46de50[_0x456d('0x28')]){delete _0x46de50['name'];}_0x379a5d['status'](_0x3eb36d)['send'](_0x46de50);};}exports[_0x456d('0x29')]=function(_0x4d1a07,_0x2897be){var _0x269d18={},_0x46877f={},_0x170d9a={'count':0x0,'rows':[]};var _0x418000=_[_0x456d('0x2a')](db[_0x456d('0x2b')]['rawAttributes'],function(_0x424d37){return{'name':_0x424d37[_0x456d('0x2c')],'type':_0x424d37[_0x456d('0x2d')][_0x456d('0x2e')]};});_0x46877f[_0x456d('0x2f')]=_['map'](_0x418000,_0x456d('0x28'));_0x46877f[_0x456d('0x30')]=_[_0x456d('0x31')](_0x4d1a07[_0x456d('0x30')]);_0x46877f[_0x456d('0x32')]=_[_0x456d('0x33')](_0x46877f[_0x456d('0x2f')],_0x46877f[_0x456d('0x30')]);_0x269d18['attributes']=_[_0x456d('0x33')](_0x46877f[_0x456d('0x2f')],qs[_0x456d('0x34')](_0x4d1a07[_0x456d('0x30')][_0x456d('0x34')]));_0x269d18[_0x456d('0x35')]=_0x269d18[_0x456d('0x35')][_0x456d('0x36')]?_0x269d18['attributes']:_0x46877f[_0x456d('0x2f')];if(!_0x4d1a07[_0x456d('0x30')][_0x456d('0x37')](_0x456d('0x38'))){_0x269d18[_0x456d('0x1c')]=qs[_0x456d('0x1c')](_0x4d1a07[_0x456d('0x30')][_0x456d('0x1c')]);_0x269d18[_0x456d('0x1d')]=qs[_0x456d('0x1d')](_0x4d1a07[_0x456d('0x30')]['offset']);}_0x269d18[_0x456d('0x39')]=qs[_0x456d('0x3a')](_0x4d1a07[_0x456d('0x30')][_0x456d('0x3a')]);_0x269d18[_0x456d('0x3b')]=qs['filters'](_[_0x456d('0x3c')](_0x4d1a07[_0x456d('0x30')],_0x46877f[_0x456d('0x32')]),_0x418000);if(_0x4d1a07[_0x456d('0x30')][_0x456d('0x3d')]){_0x269d18[_0x456d('0x3b')]=_[_0x456d('0x3e')](_0x269d18[_0x456d('0x3b')],{'$or':_[_0x456d('0x2a')](_0x418000,function(_0x3de45f){if(_0x3de45f[_0x456d('0x2d')]!=='VIRTUAL'){var _0x3ff372={};_0x3ff372[_0x3de45f[_0x456d('0x28')]]={'$like':'%'+_0x4d1a07['query'][_0x456d('0x3d')]+'%'};return _0x3ff372;}})});}_0x269d18=_[_0x456d('0x3e')]({},_0x269d18,_0x4d1a07[_0x456d('0x3f')]);var _0x11dd3f={'where':_0x269d18[_0x456d('0x3b')]};return db['OpenchannelQueueReport'][_0x456d('0x40')](_0x11dd3f)['then'](function(_0x58692b){_0x170d9a[_0x456d('0x40')]=_0x58692b;if(_0x4d1a07['query'][_0x456d('0x41')]){_0x269d18[_0x456d('0x42')]=[{'all':!![]}];}return db[_0x456d('0x2b')]['findAll'](_0x269d18);})[_0x456d('0x23')](function(_0x2934f7){_0x170d9a['rows']=_0x2934f7;return _0x170d9a;})[_0x456d('0x23')](respondWithFilteredResult(_0x2897be,_0x269d18))[_0x456d('0x43')](handleError(_0x2897be,null));};exports[_0x456d('0x44')]=function(_0x591a7a,_0x23f9f4){var _0xfeb5cc={'raw':!![],'where':{'id':_0x591a7a[_0x456d('0x45')]['id']}},_0x18455a={};_0x18455a[_0x456d('0x2f')]=_[_0x456d('0x31')](db[_0x456d('0x2b')][_0x456d('0x46')]);_0x18455a[_0x456d('0x30')]=_['keys'](_0x591a7a[_0x456d('0x30')]);_0x18455a[_0x456d('0x32')]=_[_0x456d('0x33')](_0x18455a[_0x456d('0x2f')],_0x18455a['query']);_0xfeb5cc['attributes']=_[_0x456d('0x33')](_0x18455a['model'],qs[_0x456d('0x34')](_0x591a7a[_0x456d('0x30')][_0x456d('0x34')]));_0xfeb5cc['attributes']=_0xfeb5cc[_0x456d('0x35')]['length']?_0xfeb5cc[_0x456d('0x35')]:_0x18455a[_0x456d('0x2f')];if(_0x591a7a[_0x456d('0x30')][_0x456d('0x41')]){_0xfeb5cc[_0x456d('0x42')]=[{'all':!![]}];}_0xfeb5cc=_[_0x456d('0x3e')]({},_0xfeb5cc,_0x591a7a[_0x456d('0x3f')]);return db[_0x456d('0x2b')]['find'](_0xfeb5cc)[_0x456d('0x23')](handleEntityNotFound(_0x23f9f4,null))[_0x456d('0x23')](respondWithResult(_0x23f9f4,null))[_0x456d('0x43')](handleError(_0x23f9f4,null));};exports[_0x456d('0x47')]=function(_0x4fc9fc,_0x498c6f){return db[_0x456d('0x2b')][_0x456d('0x47')](_0x4fc9fc['body'],{})[_0x456d('0x23')](respondWithResult(_0x498c6f,0xc9))[_0x456d('0x43')](handleError(_0x498c6f,null));};exports[_0x456d('0x22')]=function(_0x111e49,_0x5ba312){if(_0x111e49[_0x456d('0x48')]['id']){delete _0x111e49[_0x456d('0x48')]['id'];}return db[_0x456d('0x2b')][_0x456d('0x49')]({'where':{'id':_0x111e49[_0x456d('0x45')]['id']}})[_0x456d('0x23')](handleEntityNotFound(_0x5ba312,null))[_0x456d('0x23')](saveUpdates(_0x111e49[_0x456d('0x48')],null))[_0x456d('0x23')](respondWithResult(_0x5ba312,null))['catch'](handleError(_0x5ba312,null));};exports[_0x456d('0x24')]=function(_0xbb8d09,_0x56de0d){return db['OpenchannelQueueReport'][_0x456d('0x49')]({'where':{'id':_0xbb8d09[_0x456d('0x45')]['id']}})[_0x456d('0x23')](handleEntityNotFound(_0x56de0d,null))[_0x456d('0x23')](removeEntity(_0x56de0d,null))[_0x456d('0x43')](handleError(_0x56de0d,null));};exports[_0x456d('0x4a')]=function(_0x4411c2,_0x3c10f6){return db[_0x456d('0x2b')][_0x456d('0x4a')]()[_0x456d('0x23')](respondWithResult(_0x3c10f6,null))[_0x456d('0x43')](handleError(_0x3c10f6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x326f=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./openchannelQueueReport.attributes','exports','define','OpenchannelQueueReport','report_openchannel_queue','uniqueid','lodash'];(function(_0x5b69cf,_0xde0fa8){var _0x5812ee=function(_0x29169b){while(--_0x29169b){_0x5b69cf['push'](_0x5b69cf['shift']());}};_0x5812ee(++_0xde0fa8);}(_0x326f,0xd1));var _0xf326=function(_0x230565,_0x492836){_0x230565=_0x230565-0x0;var _0x37f988=_0x326f[_0x230565];return _0x37f988;};'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':[{'name':_0xf326('0xd'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x7a54=['report_openchannel_queue','uniqueid','lodash','util','../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./openchannelQueueReport.attributes','exports','OpenchannelQueueReport'];(function(_0x46f922,_0x3e727e){var _0x48aff4=function(_0x2a5037){while(--_0x2a5037){_0x46f922['push'](_0x46f922['shift']());}};_0x48aff4(++_0x3e727e);}(_0x7a54,0x106));var _0x47a5=function(_0x4defeb,_0xd379d1){_0x4defeb=_0x4defeb-0x0;var _0x3fec39=_0x7a54[_0x4defeb];return _0x3fec39;};'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':'uniqueid','fields':[_0x47a5('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x93e6=['error','code','message','info','result','catch','CreateOpenchannelQueueReport','OpenchannelQueueReport','options','raw','stringify','update','body','where','attributes','UpdateOpenchannelQueueReport','lodash','bluebird','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','OpenchannelQueueReport,\x20%s,\x20%s','debug','request\x20sent'];(function(_0x1bb11e,_0x58fd78){var _0x422492=function(_0x5d8dfd){while(--_0x5d8dfd){_0x1bb11e['push'](_0x1bb11e['shift']());}};_0x422492(++_0x58fd78);}(_0x93e6,0x11e));var _0x693e=function(_0xd45112,_0x68c8b4){_0xd45112=_0xd45112-0x0;var _0x2cddb8=_0x93e6[_0xd45112];return _0x2cddb8;};'use strict';var _=require(_0x693e('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x693e('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x693e('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x693e('0x3'));var logger=require(_0x693e('0x4'))(_0x693e('0x5'));var config=require('../../config/environment');var jayson=require(_0x693e('0x6'));var client=jayson[_0x693e('0x7')][_0x693e('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x520113,_0x577dcb,_0x57897c){return new BPromise(function(_0x155601,_0x4b30f6){return client[_0x693e('0x9')](_0x520113,_0x57897c)[_0x693e('0xa')](function(_0x14b901){logger['info'](_0x693e('0xb'),_0x577dcb,'request\x20sent');logger[_0x693e('0xc')]('OpenchannelQueueReport,\x20%s,\x20%s,\x20%s',_0x577dcb,_0x693e('0xd'),JSON['stringify'](_0x14b901));if(_0x14b901['error']){if(_0x14b901[_0x693e('0xe')][_0x693e('0xf')]===0x1f4){logger[_0x693e('0xe')](_0x693e('0xb'),_0x577dcb,_0x14b901['error'][_0x693e('0x10')]);return _0x4b30f6(_0x14b901[_0x693e('0xe')][_0x693e('0x10')]);}logger[_0x693e('0xe')](_0x693e('0xb'),_0x577dcb,_0x14b901[_0x693e('0xe')][_0x693e('0x10')]);return _0x155601(_0x14b901['error'][_0x693e('0x10')]);}else{logger[_0x693e('0x11')](_0x693e('0xb'),_0x577dcb,'request\x20sent');_0x155601(_0x14b901[_0x693e('0x12')][_0x693e('0x10')]);}})[_0x693e('0x13')](function(_0xb3a90a){logger[_0x693e('0xe')](_0x693e('0xb'),_0x577dcb,_0xb3a90a);_0x4b30f6(_0xb3a90a);});});}exports[_0x693e('0x14')]=function(_0x4f4264){var _0x593916=this;return new Promise(function(_0x5e842f,_0x149325){return db[_0x693e('0x15')]['create'](_0x4f4264['body'],{'raw':_0x4f4264[_0x693e('0x16')]?_0x4f4264[_0x693e('0x16')][_0x693e('0x17')]===undefined?!![]:![]:!![]})[_0x693e('0xa')](function(_0x49614c){logger[_0x693e('0x11')](_0x693e('0x14'),_0x4f4264);logger[_0x693e('0xc')]('CreateOpenchannelQueueReport',_0x4f4264,JSON[_0x693e('0x18')](_0x49614c));_0x5e842f(_0x49614c);})[_0x693e('0x13')](function(_0x569646){logger[_0x693e('0xe')](_0x693e('0x14'),_0x569646['message'],_0x4f4264);_0x149325(_0x593916[_0x693e('0xe')](0x1f4,_0x569646[_0x693e('0x10')]));});});};exports['UpdateOpenchannelQueueReport']=function(_0x3847be){var _0x25c39e=this;return new Promise(function(_0x1fd85,_0x32b552){return db[_0x693e('0x15')][_0x693e('0x19')](_0x3847be[_0x693e('0x1a')],{'raw':_0x3847be[_0x693e('0x16')]?_0x3847be[_0x693e('0x16')][_0x693e('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3847be[_0x693e('0x16')]?_0x3847be[_0x693e('0x16')][_0x693e('0x1b')]||null:null,'attributes':_0x3847be[_0x693e('0x16')]?_0x3847be[_0x693e('0x16')][_0x693e('0x1c')]||null:null,'limit':_0x3847be[_0x693e('0x16')]?_0x3847be[_0x693e('0x16')]['limit']||null:null})[_0x693e('0xa')](function(_0x1c002d){logger[_0x693e('0x11')](_0x693e('0x1d'),_0x3847be);logger[_0x693e('0xc')]('UpdateOpenchannelQueueReport',_0x3847be,JSON[_0x693e('0x18')](_0x1c002d));_0x1fd85(_0x1c002d);})['catch'](function(_0x3b6cf7){logger['error'](_0x693e('0x1d'),_0x3b6cf7[_0x693e('0x10')],_0x3847be);_0x32b552(_0x25c39e['error'](0x1f4,_0x3b6cf7[_0x693e('0x10')]));});});};
\ No newline at end of file
+var _0x4af8=['catch','CreateOpenchannelQueueReport','OpenchannelQueueReport','create','body','options','raw','stringify','UpdateOpenchannelQueueReport','update','where','attributes','limit','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','request','then','info','request\x20sent','debug','OpenchannelQueueReport,\x20%s,\x20%s,\x20%s','error','code','message','OpenchannelQueueReport,\x20%s,\x20%s','result'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x4af8,0x1ad));var _0x84af=function(_0x55f8b4,_0x43f30d){_0x55f8b4=_0x55f8b4-0x0;var _0x2475f9=_0x4af8[_0x55f8b4];return _0x2475f9;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x84af('0x0'));var fs=require('fs');var Redis=require(_0x84af('0x1'));var db=require(_0x84af('0x2'))['db'];var utils=require(_0x84af('0x3'));var logger=require('../../config/logger')(_0x84af('0x4'));var config=require(_0x84af('0x5'));var jayson=require('jayson/promise');var client=jayson[_0x84af('0x6')][_0x84af('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x550ee6,_0x422c5b,_0x294bc8){return new BPromise(function(_0x483ecc,_0x5b5e45){return client[_0x84af('0x8')](_0x550ee6,_0x294bc8)[_0x84af('0x9')](function(_0x479e1b){logger[_0x84af('0xa')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x422c5b,_0x84af('0xb'));logger[_0x84af('0xc')](_0x84af('0xd'),_0x422c5b,_0x84af('0xb'),JSON['stringify'](_0x479e1b));if(_0x479e1b[_0x84af('0xe')]){if(_0x479e1b['error'][_0x84af('0xf')]===0x1f4){logger[_0x84af('0xe')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x422c5b,_0x479e1b[_0x84af('0xe')][_0x84af('0x10')]);return _0x5b5e45(_0x479e1b[_0x84af('0xe')][_0x84af('0x10')]);}logger['error'](_0x84af('0x11'),_0x422c5b,_0x479e1b['error'][_0x84af('0x10')]);return _0x483ecc(_0x479e1b[_0x84af('0xe')]['message']);}else{logger[_0x84af('0xa')](_0x84af('0x11'),_0x422c5b,'request\x20sent');_0x483ecc(_0x479e1b[_0x84af('0x12')]['message']);}})[_0x84af('0x13')](function(_0x33baf1){logger['error']('OpenchannelQueueReport,\x20%s,\x20%s',_0x422c5b,_0x33baf1);_0x5b5e45(_0x33baf1);});});}exports[_0x84af('0x14')]=function(_0xd8120b){var _0x38a120=this;return new Promise(function(_0x4cf5b4,_0x4d0cf0){return db[_0x84af('0x15')][_0x84af('0x16')](_0xd8120b[_0x84af('0x17')],{'raw':_0xd8120b[_0x84af('0x18')]?_0xd8120b[_0x84af('0x18')][_0x84af('0x19')]===undefined?!![]:![]:!![]})[_0x84af('0x9')](function(_0x334875){logger[_0x84af('0xa')]('CreateOpenchannelQueueReport',_0xd8120b);logger[_0x84af('0xc')](_0x84af('0x14'),_0xd8120b,JSON[_0x84af('0x1a')](_0x334875));_0x4cf5b4(_0x334875);})['catch'](function(_0x2f40d6){logger[_0x84af('0xe')](_0x84af('0x14'),_0x2f40d6['message'],_0xd8120b);_0x4d0cf0(_0x38a120['error'](0x1f4,_0x2f40d6[_0x84af('0x10')]));});});};exports[_0x84af('0x1b')]=function(_0xf72093){var _0x24aa07=this;return new Promise(function(_0x21823e,_0x1b23fb){return db[_0x84af('0x15')][_0x84af('0x1c')](_0xf72093[_0x84af('0x17')],{'raw':_0xf72093[_0x84af('0x18')]?_0xf72093[_0x84af('0x18')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xf72093[_0x84af('0x18')]?_0xf72093[_0x84af('0x18')][_0x84af('0x1d')]||null:null,'attributes':_0xf72093[_0x84af('0x18')]?_0xf72093[_0x84af('0x18')][_0x84af('0x1e')]||null:null,'limit':_0xf72093[_0x84af('0x18')]?_0xf72093['options'][_0x84af('0x1f')]||null:null})[_0x84af('0x9')](function(_0x59417e){logger[_0x84af('0xa')](_0x84af('0x1b'),_0xf72093);logger[_0x84af('0xc')](_0x84af('0x1b'),_0xf72093,JSON['stringify'](_0x59417e));_0x21823e(_0x59417e);})['catch'](function(_0x3f37a0){logger[_0x84af('0xe')](_0x84af('0x1b'),_0x3f37a0[_0x84af('0x10')],_0xf72093);_0x1b23fb(_0x24aa07[_0x84af('0xe')](0x1f4,_0x3f37a0[_0x84af('0x10')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd77=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelTransferReport.controller','index','get','/describe','isAuthenticated','describe','/:id','post','create','put','delete','destroy','exports','multer','util','path','connect-timeout'];(function(_0x1d05b4,_0x430957){var _0x4edd4a=function(_0x2d6b0f){while(--_0x2d6b0f){_0x1d05b4['push'](_0x1d05b4['shift']());}};_0x4edd4a(++_0x430957);}(_0xfd77,0x1df));var _0x7fd7=function(_0x20042f,_0x516303){_0x20042f=_0x20042f-0x0;var _0x4a9788=_0xfd77[_0x20042f];return _0x4a9788;};'use strict';var multer=require(_0x7fd7('0x0'));var util=require(_0x7fd7('0x1'));var path=require(_0x7fd7('0x2'));var timeout=require(_0x7fd7('0x3'));var express=require('express');var router=express[_0x7fd7('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x7fd7('0x5'));var interaction=require(_0x7fd7('0x6'));var config=require(_0x7fd7('0x7'));var controller=require(_0x7fd7('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0x7fd7('0x9')]);router[_0x7fd7('0xa')](_0x7fd7('0xb'),auth[_0x7fd7('0xc')](),controller[_0x7fd7('0xd')]);router['get'](_0x7fd7('0xe'),auth[_0x7fd7('0xc')](),controller['show']);router[_0x7fd7('0xf')]('/',auth[_0x7fd7('0xc')](),controller[_0x7fd7('0x10')]);router[_0x7fd7('0x11')](_0x7fd7('0xe'),auth[_0x7fd7('0xc')](),controller['update']);router[_0x7fd7('0x12')](_0x7fd7('0xe'),auth['isAuthenticated'](),controller[_0x7fd7('0x13')]);module[_0x7fd7('0x14')]=router;
\ No newline at end of file
+var _0x436f=['create','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelTransferReport.controller','get','isAuthenticated','index','/describe','/:id','post'];(function(_0x3c3d35,_0x5d99a5){var _0x1ce7bc=function(_0x518472){while(--_0x518472){_0x3c3d35['push'](_0x3c3d35['shift']());}};_0x1ce7bc(++_0x5d99a5);}(_0x436f,0x1a7));var _0xf436=function(_0x4684b4,_0x39811e){_0x4684b4=_0x4684b4-0x0;var _0x204d08=_0x436f[_0x4684b4];return _0x204d08;};'use strict';var multer=require(_0xf436('0x0'));var util=require(_0xf436('0x1'));var path=require(_0xf436('0x2'));var timeout=require(_0xf436('0x3'));var express=require(_0xf436('0x4'));var router=express[_0xf436('0x5')]();var fs_extra=require(_0xf436('0x6'));var auth=require(_0xf436('0x7'));var interaction=require(_0xf436('0x8'));var config=require(_0xf436('0x9'));var controller=require(_0xf436('0xa'));router[_0xf436('0xb')]('/',auth[_0xf436('0xc')](),controller[_0xf436('0xd')]);router[_0xf436('0xb')](_0xf436('0xe'),auth[_0xf436('0xc')](),controller['describe']);router[_0xf436('0xb')](_0xf436('0xf'),auth[_0xf436('0xc')](),controller['show']);router[_0xf436('0x10')]('/',auth[_0xf436('0xc')](),controller[_0xf436('0x11')]);router[_0xf436('0x12')](_0xf436('0xf'),auth[_0xf436('0xc')](),controller[_0xf436('0x13')]);router[_0xf436('0x14')]('/:id',auth[_0xf436('0xc')](),controller[_0xf436('0x15')]);module['exports']=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(_0x3ce9a5,_0x3257dd){var _0x4cc1f3=function(_0x4300d8){while(--_0x4300d8){_0x3ce9a5['push'](_0x3ce9a5['shift']());}};_0x4cc1f3(++_0x3257dd);}(_0xf3cd,0xfe));var _0xdf3c=function(_0x325a08,_0x571fff){_0x325a08=_0x325a08-0x0;var _0x436e01=_0xf3cd[_0x325a08];return _0x436e01;};'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 _0x70e0=['NOW','moment','sequelize','exports','account','agent','queue'];(function(_0x20ee8c,_0x3c0569){var _0x140dc3=function(_0x5beb92){while(--_0x5beb92){_0x20ee8c['push'](_0x20ee8c['shift']());}};_0x140dc3(++_0x3c0569);}(_0x70e0,0x17b));var _0x070e=function(_0x46307a,_0x539c51){_0x46307a=_0x46307a-0x0;var _0xe0a428=_0x70e0[_0x46307a];return _0xe0a428;};'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 _0xe8d3=['params','length','find','create','body','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../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','reject','save','update','then','destroy','error','stack','name','index','map','OpenchannelTransferReport','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','sort','pick','filter','merge','where','type','VIRTUAL','options','includeAll','include','rows','catch','show'];(function(_0x539834,_0x3131ba){var _0x57d8a9=function(_0x400d02){while(--_0x400d02){_0x539834['push'](_0x539834['shift']());}};_0x57d8a9(++_0x3131ba);}(_0xe8d3,0xed));var _0x3e8d=function(_0x4bd0b4,_0x2d9259){_0x4bd0b4=_0x4bd0b4-0x0;var _0x566e09=_0xe8d3[_0x4bd0b4];return _0x566e09;};'use strict';var emlformat=require(_0x3e8d('0x0'));var rimraf=require(_0x3e8d('0x1'));var zipdir=require(_0x3e8d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3e8d('0x3'));var moment=require(_0x3e8d('0x4'));var BPromise=require(_0x3e8d('0x5'));var Mustache=require(_0x3e8d('0x6'));var util=require(_0x3e8d('0x7'));var path=require(_0x3e8d('0x8'));var sox=require(_0x3e8d('0x9'));var csv=require(_0x3e8d('0xa'));var ejs=require(_0x3e8d('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x3e8d('0xc'));var crypto=require(_0x3e8d('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x3e8d('0xe'));var toCsv=require(_0x3e8d('0xa'));var querystring=require(_0x3e8d('0xf'));var Papa=require('papaparse');var Redis=require(_0x3e8d('0x10'));var authService=require(_0x3e8d('0x11'));var qs=require(_0x3e8d('0x12'));var as=require(_0x3e8d('0x13'));var hardwareService=require(_0x3e8d('0x14'));var logger=require(_0x3e8d('0x15'))('api');var utils=require(_0x3e8d('0x16'));var config=require(_0x3e8d('0x17'));var licenseUtil=require(_0x3e8d('0x18'));var db=require(_0x3e8d('0x19'))['db'];function respondWithStatusCode(_0x31dfa2,_0x3f55b0){_0x3f55b0=_0x3f55b0||0xcc;return function(_0x3fe78e){if(_0x3fe78e){return _0x31dfa2['sendStatus'](_0x3f55b0);}return _0x31dfa2[_0x3e8d('0x1a')](_0x3f55b0)[_0x3e8d('0x1b')]();};}function respondWithResult(_0x11d4fb,_0x584ab2){_0x584ab2=_0x584ab2||0xc8;return function(_0x5079d1){if(_0x5079d1){return _0x11d4fb[_0x3e8d('0x1a')](_0x584ab2)[_0x3e8d('0x1c')](_0x5079d1);}};}function respondWithFilteredResult(_0x3a72e5,_0xa005de){return function(_0x193f09){if(_0x193f09){var _0x486d14=typeof _0xa005de[_0x3e8d('0x1d')]===_0x3e8d('0x1e')&&typeof _0xa005de[_0x3e8d('0x1f')]===_0x3e8d('0x1e');var _0x3756b6=_0x193f09[_0x3e8d('0x20')];var _0x1fa1cb=_0x486d14?0x0:_0xa005de['offset'];var _0x10b7d2=_0x486d14?_0x193f09[_0x3e8d('0x20')]:_0xa005de[_0x3e8d('0x1d')]+_0xa005de[_0x3e8d('0x1f')];var _0x58a83e;if(_0x10b7d2>=_0x3756b6){_0x10b7d2=_0x3756b6;_0x58a83e=0xc8;}else{_0x58a83e=0xce;}_0x3a72e5[_0x3e8d('0x1a')](_0x58a83e);return _0x3a72e5[_0x3e8d('0x21')](_0x3e8d('0x22'),_0x1fa1cb+'-'+_0x10b7d2+'/'+_0x3756b6)[_0x3e8d('0x1c')](_0x193f09);}return null;};}function patchUpdates(_0x1f8560){return function(_0x122709){try{jsonpatch[_0x3e8d('0x23')](_0x122709,_0x1f8560,!![]);}catch(_0xbd1afb){return BPromise[_0x3e8d('0x24')](_0xbd1afb);}return _0x122709[_0x3e8d('0x25')]();};}function saveUpdates(_0x518f73,_0x27d10a){return function(_0x22edbf){if(_0x22edbf){return _0x22edbf[_0x3e8d('0x26')](_0x518f73)[_0x3e8d('0x27')](function(_0x2c048f){return _0x2c048f;});}return null;};}function removeEntity(_0x1ca599,_0x54fc7b){return function(_0x261b26){if(_0x261b26){return _0x261b26[_0x3e8d('0x28')]()['then'](function(){_0x1ca599[_0x3e8d('0x1a')](0xcc)[_0x3e8d('0x1b')]();});}};}function handleEntityNotFound(_0x2b8827,_0x425ba0){return function(_0x475d55){if(!_0x475d55){_0x2b8827['sendStatus'](0x194);}return _0x475d55;};}function handleError(_0x522a10,_0x4709e9){_0x4709e9=_0x4709e9||0x1f4;return function(_0xb9fa34){logger[_0x3e8d('0x29')](_0xb9fa34[_0x3e8d('0x2a')]);if(_0xb9fa34[_0x3e8d('0x2b')]){delete _0xb9fa34['name'];}_0x522a10[_0x3e8d('0x1a')](_0x4709e9)['send'](_0xb9fa34);};}exports[_0x3e8d('0x2c')]=function(_0x46e07a,_0x3905d8){var _0x26c4bd={},_0x3e4357={},_0x23c8ac={'count':0x0,'rows':[]};var _0x5e645a=_[_0x3e8d('0x2d')](db[_0x3e8d('0x2e')][_0x3e8d('0x2f')],function(_0x1ae95b){return{'name':_0x1ae95b[_0x3e8d('0x30')],'type':_0x1ae95b['type'][_0x3e8d('0x31')]};});_0x3e4357[_0x3e8d('0x32')]=_['map'](_0x5e645a,'name');_0x3e4357[_0x3e8d('0x33')]=_[_0x3e8d('0x34')](_0x46e07a[_0x3e8d('0x33')]);_0x3e4357[_0x3e8d('0x35')]=_['intersection'](_0x3e4357['model'],_0x3e4357[_0x3e8d('0x33')]);_0x26c4bd[_0x3e8d('0x36')]=_[_0x3e8d('0x37')](_0x3e4357[_0x3e8d('0x32')],qs[_0x3e8d('0x38')](_0x46e07a['query'][_0x3e8d('0x38')]));_0x26c4bd[_0x3e8d('0x36')]=_0x26c4bd[_0x3e8d('0x36')]['length']?_0x26c4bd[_0x3e8d('0x36')]:_0x3e4357[_0x3e8d('0x32')];if(!_0x46e07a['query'][_0x3e8d('0x39')]('nolimit')){_0x26c4bd[_0x3e8d('0x1f')]=qs[_0x3e8d('0x1f')](_0x46e07a['query'][_0x3e8d('0x1f')]);_0x26c4bd['offset']=qs[_0x3e8d('0x1d')](_0x46e07a[_0x3e8d('0x33')][_0x3e8d('0x1d')]);}_0x26c4bd['order']=qs[_0x3e8d('0x3a')](_0x46e07a['query'][_0x3e8d('0x3a')]);_0x26c4bd['where']=qs[_0x3e8d('0x35')](_[_0x3e8d('0x3b')](_0x46e07a['query'],_0x3e4357[_0x3e8d('0x35')]),_0x5e645a);if(_0x46e07a[_0x3e8d('0x33')][_0x3e8d('0x3c')]){_0x26c4bd['where']=_[_0x3e8d('0x3d')](_0x26c4bd[_0x3e8d('0x3e')],{'$or':_[_0x3e8d('0x2d')](_0x5e645a,function(_0x5a86e1){if(_0x5a86e1[_0x3e8d('0x3f')]!==_0x3e8d('0x40')){var _0x1582d3={};_0x1582d3[_0x5a86e1[_0x3e8d('0x2b')]]={'$like':'%'+_0x46e07a[_0x3e8d('0x33')][_0x3e8d('0x3c')]+'%'};return _0x1582d3;}})});}_0x26c4bd=_[_0x3e8d('0x3d')]({},_0x26c4bd,_0x46e07a[_0x3e8d('0x41')]);var _0x379035={'where':_0x26c4bd[_0x3e8d('0x3e')]};return db[_0x3e8d('0x2e')]['count'](_0x379035)[_0x3e8d('0x27')](function(_0x245ef9){_0x23c8ac['count']=_0x245ef9;if(_0x46e07a['query'][_0x3e8d('0x42')]){_0x26c4bd[_0x3e8d('0x43')]=[{'all':!![]}];}return db['OpenchannelTransferReport']['findAll'](_0x26c4bd);})[_0x3e8d('0x27')](function(_0x53400a){_0x23c8ac[_0x3e8d('0x44')]=_0x53400a;return _0x23c8ac;})['then'](respondWithFilteredResult(_0x3905d8,_0x26c4bd))[_0x3e8d('0x45')](handleError(_0x3905d8,null));};exports[_0x3e8d('0x46')]=function(_0x4af838,_0x4ce4df){var _0x256be1={'raw':!![],'where':{'id':_0x4af838[_0x3e8d('0x47')]['id']}},_0x4fd75f={};_0x4fd75f[_0x3e8d('0x32')]=_[_0x3e8d('0x34')](db[_0x3e8d('0x2e')]['rawAttributes']);_0x4fd75f[_0x3e8d('0x33')]=_['keys'](_0x4af838['query']);_0x4fd75f[_0x3e8d('0x35')]=_[_0x3e8d('0x37')](_0x4fd75f[_0x3e8d('0x32')],_0x4fd75f[_0x3e8d('0x33')]);_0x256be1[_0x3e8d('0x36')]=_[_0x3e8d('0x37')](_0x4fd75f['model'],qs[_0x3e8d('0x38')](_0x4af838[_0x3e8d('0x33')][_0x3e8d('0x38')]));_0x256be1['attributes']=_0x256be1['attributes'][_0x3e8d('0x48')]?_0x256be1[_0x3e8d('0x36')]:_0x4fd75f[_0x3e8d('0x32')];if(_0x4af838[_0x3e8d('0x33')][_0x3e8d('0x42')]){_0x256be1['include']=[{'all':!![]}];}_0x256be1=_[_0x3e8d('0x3d')]({},_0x256be1,_0x4af838['options']);return db[_0x3e8d('0x2e')][_0x3e8d('0x49')](_0x256be1)[_0x3e8d('0x27')](handleEntityNotFound(_0x4ce4df,null))[_0x3e8d('0x27')](respondWithResult(_0x4ce4df,null))['catch'](handleError(_0x4ce4df,null));};exports[_0x3e8d('0x4a')]=function(_0x3b2e7d,_0x239557){return db['OpenchannelTransferReport'][_0x3e8d('0x4a')](_0x3b2e7d[_0x3e8d('0x4b')],{})['then'](respondWithResult(_0x239557,0xc9))[_0x3e8d('0x45')](handleError(_0x239557,null));};exports[_0x3e8d('0x26')]=function(_0x20a60b,_0xd4708){if(_0x20a60b[_0x3e8d('0x4b')]['id']){delete _0x20a60b[_0x3e8d('0x4b')]['id'];}return db[_0x3e8d('0x2e')][_0x3e8d('0x49')]({'where':{'id':_0x20a60b[_0x3e8d('0x47')]['id']}})['then'](handleEntityNotFound(_0xd4708,null))[_0x3e8d('0x27')](saveUpdates(_0x20a60b[_0x3e8d('0x4b')],null))[_0x3e8d('0x27')](respondWithResult(_0xd4708,null))[_0x3e8d('0x45')](handleError(_0xd4708,null));};exports[_0x3e8d('0x28')]=function(_0x147456,_0x241f8f){return db['OpenchannelTransferReport']['find']({'where':{'id':_0x147456[_0x3e8d('0x47')]['id']}})[_0x3e8d('0x27')](handleEntityNotFound(_0x241f8f,null))[_0x3e8d('0x27')](removeEntity(_0x241f8f,null))[_0x3e8d('0x45')](handleError(_0x241f8f,null));};exports[_0x3e8d('0x4c')]=function(_0x47020b,_0x320dae){return db[_0x3e8d('0x2e')][_0x3e8d('0x4c')]()[_0x3e8d('0x27')](respondWithResult(_0x320dae,null))[_0x3e8d('0x45')](handleError(_0x320dae,null));};
\ No newline at end of file
+var _0x950a=['type','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','create','body','find','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','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','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','error','stack','name','index','map','OpenchannelTransferReport','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge'];(function(_0x2ff5fa,_0xa456c4){var _0x79b5f6=function(_0x1fea54){while(--_0x1fea54){_0x2ff5fa['push'](_0x2ff5fa['shift']());}};_0x79b5f6(++_0xa456c4);}(_0x950a,0x1e1));var _0xa950=function(_0x157d78,_0x5825d4){_0x157d78=_0x157d78-0x0;var _0x54bd16=_0x950a[_0x157d78];return _0x54bd16;};'use strict';var emlformat=require(_0xa950('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xa950('0x1'));var jsonpatch=require(_0xa950('0x2'));var rp=require(_0xa950('0x3'));var moment=require(_0xa950('0x4'));var BPromise=require(_0xa950('0x5'));var Mustache=require('mustache');var util=require(_0xa950('0x6'));var path=require('path');var sox=require(_0xa950('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa950('0x8'));var _=require(_0xa950('0x9'));var squel=require(_0xa950('0xa'));var crypto=require(_0xa950('0xb'));var jsforce=require(_0xa950('0xc'));var deskjs=require(_0xa950('0xd'));var toCsv=require(_0xa950('0xe'));var querystring=require(_0xa950('0xf'));var Papa=require(_0xa950('0x10'));var Redis=require(_0xa950('0x11'));var authService=require(_0xa950('0x12'));var qs=require(_0xa950('0x13'));var as=require(_0xa950('0x14'));var hardwareService=require(_0xa950('0x15'));var logger=require(_0xa950('0x16'))(_0xa950('0x17'));var utils=require('../../config/utils');var config=require(_0xa950('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xa950('0x19'))['db'];function respondWithStatusCode(_0x56ee9a,_0x1f106d){_0x1f106d=_0x1f106d||0xcc;return function(_0x163c62){if(_0x163c62){return _0x56ee9a[_0xa950('0x1a')](_0x1f106d);}return _0x56ee9a[_0xa950('0x1b')](_0x1f106d)[_0xa950('0x1c')]();};}function respondWithResult(_0x5bf2ed,_0x470f50){_0x470f50=_0x470f50||0xc8;return function(_0x1ac836){if(_0x1ac836){return _0x5bf2ed[_0xa950('0x1b')](_0x470f50)[_0xa950('0x1d')](_0x1ac836);}};}function respondWithFilteredResult(_0x1cf751,_0x45594d){return function(_0x3ade7e){if(_0x3ade7e){var _0x54fc3e=typeof _0x45594d[_0xa950('0x1e')]===_0xa950('0x1f')&&typeof _0x45594d[_0xa950('0x20')]===_0xa950('0x1f');var _0x7ddc05=_0x3ade7e[_0xa950('0x21')];var _0x54b2c9=_0x54fc3e?0x0:_0x45594d[_0xa950('0x1e')];var _0x4b76f0=_0x54fc3e?_0x3ade7e[_0xa950('0x21')]:_0x45594d['offset']+_0x45594d[_0xa950('0x20')];var _0x500686;if(_0x4b76f0>=_0x7ddc05){_0x4b76f0=_0x7ddc05;_0x500686=0xc8;}else{_0x500686=0xce;}_0x1cf751['status'](_0x500686);return _0x1cf751[_0xa950('0x22')](_0xa950('0x23'),_0x54b2c9+'-'+_0x4b76f0+'/'+_0x7ddc05)[_0xa950('0x1d')](_0x3ade7e);}return null;};}function patchUpdates(_0x430d5d){return function(_0x36b88e){try{jsonpatch[_0xa950('0x24')](_0x36b88e,_0x430d5d,!![]);}catch(_0x20e97d){return BPromise['reject'](_0x20e97d);}return _0x36b88e[_0xa950('0x25')]();};}function saveUpdates(_0x3880df,_0x433adb){return function(_0x8ed9f8){if(_0x8ed9f8){return _0x8ed9f8[_0xa950('0x26')](_0x3880df)[_0xa950('0x27')](function(_0x3ba715){return _0x3ba715;});}return null;};}function removeEntity(_0x66553,_0x37fb36){return function(_0x477988){if(_0x477988){return _0x477988[_0xa950('0x28')]()[_0xa950('0x27')](function(){_0x66553[_0xa950('0x1b')](0xcc)[_0xa950('0x1c')]();});}};}function handleEntityNotFound(_0x169c21,_0x2b0dc3){return function(_0x29b468){if(!_0x29b468){_0x169c21[_0xa950('0x1a')](0x194);}return _0x29b468;};}function handleError(_0x220dcd,_0x1093db){_0x1093db=_0x1093db||0x1f4;return function(_0x2d54c2){logger[_0xa950('0x29')](_0x2d54c2[_0xa950('0x2a')]);if(_0x2d54c2[_0xa950('0x2b')]){delete _0x2d54c2[_0xa950('0x2b')];}_0x220dcd[_0xa950('0x1b')](_0x1093db)['send'](_0x2d54c2);};}exports[_0xa950('0x2c')]=function(_0x211f48,_0x5e1c69){var _0x19741e={},_0x372a9b={},_0x1015ac={'count':0x0,'rows':[]};var _0x33a133=_[_0xa950('0x2d')](db[_0xa950('0x2e')][_0xa950('0x2f')],function(_0x3ecc97){return{'name':_0x3ecc97[_0xa950('0x30')],'type':_0x3ecc97['type'][_0xa950('0x31')]};});_0x372a9b[_0xa950('0x32')]=_[_0xa950('0x2d')](_0x33a133,'name');_0x372a9b[_0xa950('0x33')]=_[_0xa950('0x34')](_0x211f48[_0xa950('0x33')]);_0x372a9b[_0xa950('0x35')]=_[_0xa950('0x36')](_0x372a9b[_0xa950('0x32')],_0x372a9b['query']);_0x19741e[_0xa950('0x37')]=_[_0xa950('0x36')](_0x372a9b[_0xa950('0x32')],qs[_0xa950('0x38')](_0x211f48[_0xa950('0x33')][_0xa950('0x38')]));_0x19741e[_0xa950('0x37')]=_0x19741e[_0xa950('0x37')][_0xa950('0x39')]?_0x19741e[_0xa950('0x37')]:_0x372a9b[_0xa950('0x32')];if(!_0x211f48[_0xa950('0x33')][_0xa950('0x3a')]('nolimit')){_0x19741e[_0xa950('0x20')]=qs[_0xa950('0x20')](_0x211f48[_0xa950('0x33')][_0xa950('0x20')]);_0x19741e[_0xa950('0x1e')]=qs['offset'](_0x211f48[_0xa950('0x33')]['offset']);}_0x19741e[_0xa950('0x3b')]=qs['sort'](_0x211f48[_0xa950('0x33')][_0xa950('0x3c')]);_0x19741e[_0xa950('0x3d')]=qs[_0xa950('0x35')](_[_0xa950('0x3e')](_0x211f48[_0xa950('0x33')],_0x372a9b[_0xa950('0x35')]),_0x33a133);if(_0x211f48['query'][_0xa950('0x3f')]){_0x19741e[_0xa950('0x3d')]=_[_0xa950('0x40')](_0x19741e['where'],{'$or':_['map'](_0x33a133,function(_0x543040){if(_0x543040[_0xa950('0x41')]!==_0xa950('0x42')){var _0x1cac08={};_0x1cac08[_0x543040[_0xa950('0x2b')]]={'$like':'%'+_0x211f48['query']['filter']+'%'};return _0x1cac08;}})});}_0x19741e=_[_0xa950('0x40')]({},_0x19741e,_0x211f48['options']);var _0x5a7e4b={'where':_0x19741e[_0xa950('0x3d')]};return db[_0xa950('0x2e')][_0xa950('0x21')](_0x5a7e4b)[_0xa950('0x27')](function(_0x267f2d){_0x1015ac['count']=_0x267f2d;if(_0x211f48[_0xa950('0x33')][_0xa950('0x43')]){_0x19741e[_0xa950('0x44')]=[{'all':!![]}];}return db[_0xa950('0x2e')][_0xa950('0x45')](_0x19741e);})['then'](function(_0x4330f6){_0x1015ac[_0xa950('0x46')]=_0x4330f6;return _0x1015ac;})[_0xa950('0x27')](respondWithFilteredResult(_0x5e1c69,_0x19741e))[_0xa950('0x47')](handleError(_0x5e1c69,null));};exports[_0xa950('0x48')]=function(_0x9b686,_0x1f5353){var _0x452690={'raw':!![],'where':{'id':_0x9b686[_0xa950('0x49')]['id']}},_0x4a8902={};_0x4a8902[_0xa950('0x32')]=_['keys'](db[_0xa950('0x2e')][_0xa950('0x2f')]);_0x4a8902[_0xa950('0x33')]=_[_0xa950('0x34')](_0x9b686['query']);_0x4a8902[_0xa950('0x35')]=_['intersection'](_0x4a8902[_0xa950('0x32')],_0x4a8902[_0xa950('0x33')]);_0x452690['attributes']=_['intersection'](_0x4a8902[_0xa950('0x32')],qs[_0xa950('0x38')](_0x9b686[_0xa950('0x33')][_0xa950('0x38')]));_0x452690[_0xa950('0x37')]=_0x452690[_0xa950('0x37')]['length']?_0x452690[_0xa950('0x37')]:_0x4a8902[_0xa950('0x32')];if(_0x9b686['query']['includeAll']){_0x452690['include']=[{'all':!![]}];}_0x452690=_[_0xa950('0x40')]({},_0x452690,_0x9b686['options']);return db[_0xa950('0x2e')]['find'](_0x452690)[_0xa950('0x27')](handleEntityNotFound(_0x1f5353,null))['then'](respondWithResult(_0x1f5353,null))[_0xa950('0x47')](handleError(_0x1f5353,null));};exports[_0xa950('0x4a')]=function(_0x523080,_0x59c84a){return db[_0xa950('0x2e')][_0xa950('0x4a')](_0x523080[_0xa950('0x4b')],{})[_0xa950('0x27')](respondWithResult(_0x59c84a,0xc9))[_0xa950('0x47')](handleError(_0x59c84a,null));};exports['update']=function(_0x575057,_0x29b5e1){if(_0x575057[_0xa950('0x4b')]['id']){delete _0x575057[_0xa950('0x4b')]['id'];}return db[_0xa950('0x2e')][_0xa950('0x4c')]({'where':{'id':_0x575057[_0xa950('0x49')]['id']}})[_0xa950('0x27')](handleEntityNotFound(_0x29b5e1,null))[_0xa950('0x27')](saveUpdates(_0x575057['body'],null))[_0xa950('0x27')](respondWithResult(_0x29b5e1,null))['catch'](handleError(_0x29b5e1,null));};exports[_0xa950('0x28')]=function(_0x4b62b2,_0x597347){return db['OpenchannelTransferReport'][_0xa950('0x4c')]({'where':{'id':_0x4b62b2[_0xa950('0x49')]['id']}})[_0xa950('0x27')](handleEntityNotFound(_0x597347,null))[_0xa950('0x27')](removeEntity(_0x597347,null))[_0xa950('0x47')](handleError(_0x597347,null));};exports[_0xa950('0x4d')]=function(_0x5a1d46,_0x2567ca){return db['OpenchannelTransferReport'][_0xa950('0x4d')]()[_0xa950('0x27')](respondWithResult(_0x2567ca,null))['catch'](handleError(_0x2567ca,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00be=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./openchannelTransferReport.attributes','define','report_openchannel_transfer','uniqueid','lodash','util','../../config/logger'];(function(_0x3449be,_0x1a3c22){var _0x34cc31=function(_0xa53e7d){while(--_0xa53e7d){_0x3449be['push'](_0x3449be['shift']());}};_0x34cc31(++_0x1a3c22);}(_0x00be,0x13f));var _0xe00b=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0x00be[_0x167cc1];return _0x10bc4b;};'use strict';var _=require(_0xe00b('0x0'));var util=require(_0xe00b('0x1'));var logger=require(_0xe00b('0x2'))(_0xe00b('0x3'));var moment=require(_0xe00b('0x4'));var BPromise=require(_0xe00b('0x5'));var rp=require(_0xe00b('0x6'));var fs=require('fs');var path=require(_0xe00b('0x7'));var rimraf=require(_0xe00b('0x8'));var config=require(_0xe00b('0x9'));var attributes=require(_0xe00b('0xa'));module['exports']=function(_0x3b5d65,_0x3395f1){return _0x3b5d65[_0xe00b('0xb')]('OpenchannelTransferReport',attributes,{'tableName':_0xe00b('0xc'),'paranoid':![],'indexes':[{'name':_0xe00b('0xd'),'fields':[_0xe00b('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x14e0=['util','../../config/logger','moment','bluebird','request-promise','rimraf','./openchannelTransferReport.attributes','exports','define','OpenchannelTransferReport','report_openchannel_transfer','uniqueid'];(function(_0x3253f5,_0x471896){var _0x1fd76b=function(_0x2c0825){while(--_0x2c0825){_0x3253f5['push'](_0x3253f5['shift']());}};_0x1fd76b(++_0x471896);}(_0x14e0,0x90));var _0x014e=function(_0x143565,_0x54d887){_0x143565=_0x143565-0x0;var _0x4dc1d9=_0x14e0[_0x143565];return _0x4dc1d9;};'use strict';var _=require('lodash');var util=require(_0x014e('0x0'));var logger=require(_0x014e('0x1'))('api');var moment=require(_0x014e('0x2'));var BPromise=require(_0x014e('0x3'));var rp=require(_0x014e('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x014e('0x5'));var config=require('../../config/environment');var attributes=require(_0x014e('0x6'));module[_0x014e('0x7')]=function(_0x1a1286,_0x567cd2){return _0x1a1286[_0x014e('0x8')](_0x014e('0x9'),attributes,{'tableName':_0x014e('0xa'),'paranoid':![],'indexes':[{'name':_0x014e('0xb'),'fields':[_0x014e('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5162=['jayson/promise','request','then','OpenchannelTransferReport,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info','result','catch','lodash','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0xbca1b1,_0x33f0ce){var _0x4e1686=function(_0x58a80c){while(--_0x58a80c){_0xbca1b1['push'](_0xbca1b1['shift']());}};_0x4e1686(++_0x33f0ce);}(_0x5162,0x103));var _0x2516=function(_0x4920f2,_0xa4bfbf){_0x4920f2=_0x4920f2-0x0;var _0x1f27cf=_0x5162[_0x4920f2];return _0x1f27cf;};'use strict';var _=require(_0x2516('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2516('0x1'));var db=require(_0x2516('0x2'))['db'];var utils=require(_0x2516('0x3'));var logger=require(_0x2516('0x4'))(_0x2516('0x5'));var config=require(_0x2516('0x6'));var jayson=require(_0x2516('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x5beeb3,_0x20a4a4,_0xba4b36){return new BPromise(function(_0xa1557,_0x3a8834){return client[_0x2516('0x8')](_0x5beeb3,_0xba4b36)[_0x2516('0x9')](function(_0x1cb817){logger['info'](_0x2516('0xa'),_0x20a4a4,_0x2516('0xb'));logger[_0x2516('0xc')]('OpenchannelTransferReport,\x20%s,\x20%s,\x20%s',_0x20a4a4,'request\x20sent',JSON['stringify'](_0x1cb817));if(_0x1cb817['error']){if(_0x1cb817[_0x2516('0xd')][_0x2516('0xe')]===0x1f4){logger[_0x2516('0xd')](_0x2516('0xa'),_0x20a4a4,_0x1cb817['error'][_0x2516('0xf')]);return _0x3a8834(_0x1cb817[_0x2516('0xd')][_0x2516('0xf')]);}logger[_0x2516('0xd')](_0x2516('0xa'),_0x20a4a4,_0x1cb817[_0x2516('0xd')][_0x2516('0xf')]);return _0xa1557(_0x1cb817[_0x2516('0xd')][_0x2516('0xf')]);}else{logger[_0x2516('0x10')](_0x2516('0xa'),_0x20a4a4,_0x2516('0xb'));_0xa1557(_0x1cb817[_0x2516('0x11')][_0x2516('0xf')]);}})[_0x2516('0x12')](function(_0x5623be){logger[_0x2516('0xd')](_0x2516('0xa'),_0x20a4a4,_0x5623be);_0x3a8834(_0x5623be);});});}
\ No newline at end of file
+var _0x291c=['error','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','then','info','OpenchannelTransferReport,\x20%s,\x20%s','request\x20sent','debug','OpenchannelTransferReport,\x20%s,\x20%s,\x20%s','code'];(function(_0x69c5ae,_0x4d0dbf){var _0x1ad790=function(_0x534c9c){while(--_0x534c9c){_0x69c5ae['push'](_0x69c5ae['shift']());}};_0x1ad790(++_0x4d0dbf);}(_0x291c,0x137));var _0xc291=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0x291c[_0x178e48];return _0x440d7e;};'use strict';var _=require(_0xc291('0x0'));var util=require(_0xc291('0x1'));var moment=require(_0xc291('0x2'));var BPromise=require(_0xc291('0x3'));var rs=require(_0xc291('0x4'));var fs=require('fs');var Redis=require(_0xc291('0x5'));var db=require(_0xc291('0x6'))['db'];var utils=require(_0xc291('0x7'));var logger=require(_0xc291('0x8'))(_0xc291('0x9'));var config=require(_0xc291('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xc291('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5a7459,_0x40dc89,_0x2d3526){return new BPromise(function(_0x42a6ac,_0x26e775){return client['request'](_0x5a7459,_0x2d3526)[_0xc291('0xc')](function(_0x2beb3b){logger[_0xc291('0xd')](_0xc291('0xe'),_0x40dc89,_0xc291('0xf'));logger[_0xc291('0x10')](_0xc291('0x11'),_0x40dc89,_0xc291('0xf'),JSON['stringify'](_0x2beb3b));if(_0x2beb3b['error']){if(_0x2beb3b['error'][_0xc291('0x12')]===0x1f4){logger[_0xc291('0x13')](_0xc291('0xe'),_0x40dc89,_0x2beb3b['error'][_0xc291('0x14')]);return _0x26e775(_0x2beb3b['error'][_0xc291('0x14')]);}logger[_0xc291('0x13')](_0xc291('0xe'),_0x40dc89,_0x2beb3b[_0xc291('0x13')][_0xc291('0x14')]);return _0x42a6ac(_0x2beb3b[_0xc291('0x13')][_0xc291('0x14')]);}else{logger[_0xc291('0xd')](_0xc291('0xe'),_0x40dc89,_0xc291('0xf'));_0x42a6ac(_0x2beb3b['result'][_0xc291('0x14')]);}})[_0xc291('0x15')](function(_0x5888de){logger[_0xc291('0x13')]('OpenchannelTransferReport,\x20%s,\x20%s',_0x40dc89,_0x5888de);_0x26e775(_0x5888de);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x316d=['connect-timeout','express','Router','../../components/interaction/service','./pause.controller','get','isAuthenticated','index','/:id','show','post','create','update','delete','exports','multer'];(function(_0x72a33d,_0x5691da){var _0x2621d5=function(_0x95b7c6){while(--_0x95b7c6){_0x72a33d['push'](_0x72a33d['shift']());}};_0x2621d5(++_0x5691da);}(_0x316d,0xaf));var _0xd316=function(_0x4fe8e4,_0x25a19f){_0x4fe8e4=_0x4fe8e4-0x0;var _0x8a06b4=_0x316d[_0x4fe8e4];return _0x8a06b4;};'use strict';var multer=require(_0xd316('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xd316('0x1'));var express=require(_0xd316('0x2'));var router=express[_0xd316('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xd316('0x4'));var config=require('../../config/environment');var controller=require(_0xd316('0x5'));router[_0xd316('0x6')]('/',auth[_0xd316('0x7')](),controller[_0xd316('0x8')]);router[_0xd316('0x6')](_0xd316('0x9'),auth['isAuthenticated'](),controller[_0xd316('0xa')]);router[_0xd316('0xb')]('/',auth[_0xd316('0x7')](),controller[_0xd316('0xc')]);router['put'](_0xd316('0x9'),auth[_0xd316('0x7')](),controller[_0xd316('0xd')]);router[_0xd316('0xe')](_0xd316('0x9'),auth[_0xd316('0x7')](),controller['destroy']);module[_0xd316('0xf')]=router;
\ No newline at end of file
+var _0xb010=['../../config/environment','./pause.controller','get','isAuthenticated','index','/:id','show','post','put','update','delete','destroy','exports','util','connect-timeout','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x8e9386,_0x3cc60f){var _0x4abf26=function(_0x59de5a){while(--_0x59de5a){_0x8e9386['push'](_0x8e9386['shift']());}};_0x4abf26(++_0x3cc60f);}(_0xb010,0x8b));var _0x0b01=function(_0x599f41,_0x4db732){_0x599f41=_0x599f41-0x0;var _0x2e4d58=_0xb010[_0x599f41];return _0x2e4d58;};'use strict';var multer=require('multer');var util=require(_0x0b01('0x0'));var path=require('path');var timeout=require(_0x0b01('0x1'));var express=require('express');var router=express[_0x0b01('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x0b01('0x3'));var interaction=require(_0x0b01('0x4'));var config=require(_0x0b01('0x5'));var controller=require(_0x0b01('0x6'));router[_0x0b01('0x7')]('/',auth[_0x0b01('0x8')](),controller[_0x0b01('0x9')]);router[_0x0b01('0x7')](_0x0b01('0xa'),auth[_0x0b01('0x8')](),controller[_0x0b01('0xb')]);router[_0x0b01('0xc')]('/',auth[_0x0b01('0x8')](),controller['create']);router[_0x0b01('0xd')](_0x0b01('0xa'),auth[_0x0b01('0x8')](),controller[_0x0b01('0xe')]);router[_0x0b01('0xf')](_0x0b01('0xa'),auth[_0x0b01('0x8')](),controller[_0x0b01('0x10')]);module[_0x0b01('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfc1=['sequelize','exports','STRING','name'];(function(_0x2040dd,_0x156a63){var _0x27688f=function(_0xb90c80){while(--_0xb90c80){_0x2040dd['push'](_0x2040dd['shift']());}};_0x27688f(++_0x156a63);}(_0xbfc1,0x1dc));var _0x1bfc=function(_0x4c6875,_0x10f380){_0x4c6875=_0x4c6875-0x0;var _0x2067eb=_0xbfc1[_0x4c6875];return _0x2067eb;};'use strict';var Sequelize=require(_0x1bfc('0x0'));module[_0x1bfc('0x1')]={'name':{'type':Sequelize[_0x1bfc('0x2')],'unique':_0x1bfc('0x3'),'allowNull':![]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x6802=['STRING','sequelize'];(function(_0x411add,_0x1aed38){var _0x238242=function(_0x4a1cd5){while(--_0x4a1cd5){_0x411add['push'](_0x411add['shift']());}};_0x238242(++_0x1aed38);}(_0x6802,0x13f));var _0x2680=function(_0x8c43de,_0x90ff31){_0x8c43de=_0x8c43de-0x0;var _0xa6591b=_0x6802[_0x8c43de];return _0xa6591b;};'use strict';var Sequelize=require(_0x2680('0x0'));module['exports']={'name':{'type':Sequelize[_0x2680('0x1')],'unique':'name','allowNull':![]},'description':{'type':Sequelize[_0x2680('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c0d=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','Pauses','error','stack','name','send','map','Pause','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','pick','filter','where','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','options','find','catch','create','body','user','role','get','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service'];(function(_0x17406a,_0x1e2320){var _0x1501ff=function(_0x4b075a){while(--_0x4b075a){_0x17406a['push'](_0x17406a['shift']());}};_0x1501ff(++_0x1e2320);}(_0x7c0d,0xf3));var _0xd7c0=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x7c0d[_0x57b54c];return _0x59cc19;};'use strict';var emlformat=require(_0xd7c0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd7c0('0x1'));var jsonpatch=require(_0xd7c0('0x2'));var rp=require('request-promise');var moment=require(_0xd7c0('0x3'));var BPromise=require(_0xd7c0('0x4'));var Mustache=require(_0xd7c0('0x5'));var util=require(_0xd7c0('0x6'));var path=require(_0xd7c0('0x7'));var sox=require(_0xd7c0('0x8'));var csv=require(_0xd7c0('0x9'));var ejs=require(_0xd7c0('0xa'));var fs=require('fs');var fs_extra=require(_0xd7c0('0xb'));var _=require(_0xd7c0('0xc'));var squel=require(_0xd7c0('0xd'));var crypto=require(_0xd7c0('0xe'));var jsforce=require(_0xd7c0('0xf'));var deskjs=require(_0xd7c0('0x10'));var toCsv=require('to-csv');var querystring=require(_0xd7c0('0x11'));var Papa=require(_0xd7c0('0x12'));var Redis=require(_0xd7c0('0x13'));var authService=require(_0xd7c0('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0xd7c0('0x15'));var hardwareService=require(_0xd7c0('0x16'));var logger=require(_0xd7c0('0x17'))(_0xd7c0('0x18'));var utils=require(_0xd7c0('0x19'));var config=require(_0xd7c0('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0xd7c0('0x1b'))['db'];function respondWithStatusCode(_0xd9c776,_0x3adc8e){_0x3adc8e=_0x3adc8e||0xcc;return function(_0x384c6c){if(_0x384c6c){return _0xd9c776[_0xd7c0('0x1c')](_0x3adc8e);}return _0xd9c776[_0xd7c0('0x1d')](_0x3adc8e)[_0xd7c0('0x1e')]();};}function respondWithResult(_0x12268a,_0x3fdb24){_0x3fdb24=_0x3fdb24||0xc8;return function(_0x37467e){if(_0x37467e){return _0x12268a[_0xd7c0('0x1d')](_0x3fdb24)[_0xd7c0('0x1f')](_0x37467e);}};}function respondWithFilteredResult(_0x4099f4,_0x5ca1d2){return function(_0x27a3d5){if(_0x27a3d5){var _0x376ce2=typeof _0x5ca1d2[_0xd7c0('0x20')]===_0xd7c0('0x21')&&typeof _0x5ca1d2[_0xd7c0('0x22')]===_0xd7c0('0x21');var _0x45c3e4=_0x27a3d5[_0xd7c0('0x23')];var _0x2f253=_0x376ce2?0x0:_0x5ca1d2[_0xd7c0('0x20')];var _0x48d6d3=_0x376ce2?_0x27a3d5[_0xd7c0('0x23')]:_0x5ca1d2[_0xd7c0('0x20')]+_0x5ca1d2[_0xd7c0('0x22')];var _0x4ecc9d;if(_0x48d6d3>=_0x45c3e4){_0x48d6d3=_0x45c3e4;_0x4ecc9d=0xc8;}else{_0x4ecc9d=0xce;}_0x4099f4[_0xd7c0('0x1d')](_0x4ecc9d);return _0x4099f4[_0xd7c0('0x24')](_0xd7c0('0x25'),_0x2f253+'-'+_0x48d6d3+'/'+_0x45c3e4)[_0xd7c0('0x1f')](_0x27a3d5);}return null;};}function patchUpdates(_0x9c8f9c){return function(_0x214f65){try{jsonpatch['apply'](_0x214f65,_0x9c8f9c,!![]);}catch(_0x599c29){return BPromise[_0xd7c0('0x26')](_0x599c29);}return _0x214f65[_0xd7c0('0x27')]();};}function saveUpdates(_0x2fb3c4,_0x4d3cff){return function(_0x12df30){if(_0x12df30){return _0x12df30[_0xd7c0('0x28')](_0x2fb3c4)[_0xd7c0('0x29')](function(_0x418b45){return _0x418b45;});}return null;};}function removeEntity(_0x361ee8,_0xefaa63){return function(_0x1aaab3){if(_0x1aaab3){return _0x1aaab3[_0xd7c0('0x2a')]()[_0xd7c0('0x29')](function(){var _0x431041=_0x1aaab3['get']({'plain':!![]});var _0x11875=_0xd7c0('0x2b');return db['UserProfileResource'][_0xd7c0('0x2a')]({'where':{'type':_0x11875,'resourceId':_0x431041['id']}})[_0xd7c0('0x29')](function(){return _0x1aaab3;});})['then'](function(){_0x361ee8['status'](0xcc)[_0xd7c0('0x1e')]();});}};}function handleEntityNotFound(_0x1b7461,_0x39e9db){return function(_0x2eb174){if(!_0x2eb174){_0x1b7461[_0xd7c0('0x1c')](0x194);}return _0x2eb174;};}function handleError(_0x2a037d,_0x652cd2){_0x652cd2=_0x652cd2||0x1f4;return function(_0x118d02){logger[_0xd7c0('0x2c')](_0x118d02[_0xd7c0('0x2d')]);if(_0x118d02[_0xd7c0('0x2e')]){delete _0x118d02['name'];}_0x2a037d['status'](_0x652cd2)[_0xd7c0('0x2f')](_0x118d02);};}exports['index']=function(_0x22dfa6,_0x2fc37e){var _0xd81405={},_0x5a896a={},_0x450c82={'count':0x0,'rows':[]};var _0x1be814=_[_0xd7c0('0x30')](db[_0xd7c0('0x31')][_0xd7c0('0x32')],function(_0x10438d){return{'name':_0x10438d[_0xd7c0('0x33')],'type':_0x10438d[_0xd7c0('0x34')][_0xd7c0('0x35')]};});_0x5a896a[_0xd7c0('0x36')]=_['map'](_0x1be814,_0xd7c0('0x2e'));_0x5a896a['query']=_[_0xd7c0('0x37')](_0x22dfa6[_0xd7c0('0x38')]);_0x5a896a[_0xd7c0('0x39')]=_[_0xd7c0('0x3a')](_0x5a896a[_0xd7c0('0x36')],_0x5a896a[_0xd7c0('0x38')]);_0xd81405[_0xd7c0('0x3b')]=_[_0xd7c0('0x3a')](_0x5a896a[_0xd7c0('0x36')],qs[_0xd7c0('0x3c')](_0x22dfa6['query'][_0xd7c0('0x3c')]));_0xd81405[_0xd7c0('0x3b')]=_0xd81405[_0xd7c0('0x3b')][_0xd7c0('0x3d')]?_0xd81405['attributes']:_0x5a896a[_0xd7c0('0x36')];if(!_0x22dfa6[_0xd7c0('0x38')][_0xd7c0('0x3e')](_0xd7c0('0x3f'))){_0xd81405[_0xd7c0('0x22')]=qs['limit'](_0x22dfa6['query'][_0xd7c0('0x22')]);_0xd81405[_0xd7c0('0x20')]=qs[_0xd7c0('0x20')](_0x22dfa6[_0xd7c0('0x38')]['offset']);}_0xd81405[_0xd7c0('0x40')]=qs['sort'](_0x22dfa6[_0xd7c0('0x38')]['sort']);_0xd81405['where']=qs[_0xd7c0('0x39')](_[_0xd7c0('0x41')](_0x22dfa6[_0xd7c0('0x38')],_0x5a896a[_0xd7c0('0x39')]),_0x1be814);if(_0x22dfa6['query'][_0xd7c0('0x42')]){_0xd81405[_0xd7c0('0x43')]=_[_0xd7c0('0x44')](_0xd81405['where'],{'$or':_['map'](_0x1be814,function(_0xacd4b2){if(_0xacd4b2[_0xd7c0('0x34')]!==_0xd7c0('0x45')){var _0x1bbfe5={};_0x1bbfe5[_0xacd4b2['name']]={'$like':'%'+_0x22dfa6[_0xd7c0('0x38')][_0xd7c0('0x42')]+'%'};return _0x1bbfe5;}})});}_0xd81405=_[_0xd7c0('0x44')]({},_0xd81405,_0x22dfa6['options']);var _0x4501fb={'where':_0xd81405[_0xd7c0('0x43')]};return db[_0xd7c0('0x31')][_0xd7c0('0x23')](_0x4501fb)[_0xd7c0('0x29')](function(_0x6b0e54){_0x450c82[_0xd7c0('0x23')]=_0x6b0e54;if(_0x22dfa6[_0xd7c0('0x38')][_0xd7c0('0x46')]){_0xd81405[_0xd7c0('0x47')]=[{'all':!![]}];}return db[_0xd7c0('0x31')][_0xd7c0('0x48')](_0xd81405);})[_0xd7c0('0x29')](function(_0x139cee){_0x450c82[_0xd7c0('0x49')]=_0x139cee;return _0x450c82;})[_0xd7c0('0x29')](respondWithFilteredResult(_0x2fc37e,_0xd81405))['catch'](handleError(_0x2fc37e,null));};exports[_0xd7c0('0x4a')]=function(_0xd4c15b,_0x4503b4){var _0x5051e8={'raw':!![],'where':{'id':_0xd4c15b[_0xd7c0('0x4b')]['id']}},_0x16f058={};_0x16f058[_0xd7c0('0x36')]=_[_0xd7c0('0x37')](db[_0xd7c0('0x31')][_0xd7c0('0x32')]);_0x16f058[_0xd7c0('0x38')]=_[_0xd7c0('0x37')](_0xd4c15b[_0xd7c0('0x38')]);_0x16f058[_0xd7c0('0x39')]=_['intersection'](_0x16f058[_0xd7c0('0x36')],_0x16f058['query']);_0x5051e8[_0xd7c0('0x3b')]=_[_0xd7c0('0x3a')](_0x16f058[_0xd7c0('0x36')],qs[_0xd7c0('0x3c')](_0xd4c15b[_0xd7c0('0x38')][_0xd7c0('0x3c')]));_0x5051e8[_0xd7c0('0x3b')]=_0x5051e8[_0xd7c0('0x3b')]['length']?_0x5051e8['attributes']:_0x16f058[_0xd7c0('0x36')];if(_0xd4c15b[_0xd7c0('0x38')][_0xd7c0('0x46')]){_0x5051e8[_0xd7c0('0x47')]=[{'all':!![]}];}_0x5051e8=_[_0xd7c0('0x44')]({},_0x5051e8,_0xd4c15b[_0xd7c0('0x4c')]);return db[_0xd7c0('0x31')][_0xd7c0('0x4d')](_0x5051e8)[_0xd7c0('0x29')](handleEntityNotFound(_0x4503b4,null))['then'](respondWithResult(_0x4503b4,null))[_0xd7c0('0x4e')](handleError(_0x4503b4,null));};exports['create']=function(_0x245579,_0x5797c8){return db[_0xd7c0('0x31')][_0xd7c0('0x4f')](_0x245579[_0xd7c0('0x50')],{})['then'](function(_0x41683f){var _0x214413=_0x245579[_0xd7c0('0x51')]['get']({'plain':!![]});if(!_0x214413)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x214413[_0xd7c0('0x52')]===_0xd7c0('0x51')){var _0x2a511a=_0x41683f[_0xd7c0('0x53')]({'plain':!![]});var _0x45fd90=_0xd7c0('0x2b');return db[_0xd7c0('0x54')][_0xd7c0('0x4d')]({'where':{'name':_0x45fd90,'userProfileId':_0x214413[_0xd7c0('0x55')]},'raw':!![]})[_0xd7c0('0x29')](function(_0x98f0){if(_0x98f0&&_0x98f0['autoAssociation']===0x0){return db[_0xd7c0('0x56')][_0xd7c0('0x4f')]({'name':_0x2a511a[_0xd7c0('0x2e')],'resourceId':_0x2a511a['id'],'type':_0x98f0['name'],'sectionId':_0x98f0['id']},{})[_0xd7c0('0x29')](function(){return _0x41683f;});}else{return _0x41683f;}})[_0xd7c0('0x4e')](function(_0x5be6c7){logger[_0xd7c0('0x2c')](_0xd7c0('0x57'),_0x5be6c7);throw _0x5be6c7;});}return _0x41683f;})[_0xd7c0('0x29')](respondWithResult(_0x5797c8,0xc9))[_0xd7c0('0x4e')](handleError(_0x5797c8,null));};exports[_0xd7c0('0x28')]=function(_0x3cbc2c,_0xfe9a54){if(_0x3cbc2c[_0xd7c0('0x50')]['id']){delete _0x3cbc2c['body']['id'];}return db[_0xd7c0('0x31')][_0xd7c0('0x4d')]({'where':{'id':_0x3cbc2c[_0xd7c0('0x4b')]['id']}})[_0xd7c0('0x29')](handleEntityNotFound(_0xfe9a54,null))['then'](saveUpdates(_0x3cbc2c['body'],null))[_0xd7c0('0x29')](respondWithResult(_0xfe9a54,null))['catch'](handleError(_0xfe9a54,null));};exports[_0xd7c0('0x2a')]=function(_0x5f6b17,_0x11b0db){return db[_0xd7c0('0x31')]['find']({'where':{'id':_0x5f6b17['params']['id']}})[_0xd7c0('0x29')](handleEntityNotFound(_0x11b0db,null))[_0xd7c0('0x29')](removeEntity(_0x11b0db,null))[_0xd7c0('0x4e')](handleError(_0x11b0db,null));};
\ No newline at end of file
+var _0x8f12=['util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','get','Pauses','UserProfileResource','then','error','name','send','index','map','fieldName','type','key','model','query','keys','intersection','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','merge','Pause','includeAll','include','findAll','rows','catch','show','params','rawAttributes','attributes','fields','options','find','create','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache'];(function(_0x151fab,_0x4966f5){var _0x3a840c=function(_0xfe3556){while(--_0xfe3556){_0x151fab['push'](_0x151fab['shift']());}};_0x3a840c(++_0x4966f5);}(_0x8f12,0xa8));var _0x28f1=function(_0x4fe416,_0x5a310a){_0x4fe416=_0x4fe416-0x0;var _0x252725=_0x8f12[_0x4fe416];return _0x252725;};'use strict';var emlformat=require(_0x28f1('0x0'));var rimraf=require(_0x28f1('0x1'));var zipdir=require(_0x28f1('0x2'));var jsonpatch=require(_0x28f1('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x28f1('0x4'));var Mustache=require(_0x28f1('0x5'));var util=require(_0x28f1('0x6'));var path=require(_0x28f1('0x7'));var sox=require(_0x28f1('0x8'));var csv=require('to-csv');var ejs=require(_0x28f1('0x9'));var fs=require('fs');var fs_extra=require(_0x28f1('0xa'));var _=require(_0x28f1('0xb'));var squel=require(_0x28f1('0xc'));var crypto=require(_0x28f1('0xd'));var jsforce=require(_0x28f1('0xe'));var deskjs=require(_0x28f1('0xf'));var toCsv=require(_0x28f1('0x10'));var querystring=require(_0x28f1('0x11'));var Papa=require(_0x28f1('0x12'));var Redis=require(_0x28f1('0x13'));var authService=require(_0x28f1('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x28f1('0x15'));var logger=require(_0x28f1('0x16'))(_0x28f1('0x17'));var utils=require('../../config/utils');var config=require(_0x28f1('0x18'));var licenseUtil=require(_0x28f1('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3fd696,_0x277964){_0x277964=_0x277964||0xcc;return function(_0x5a9ce5){if(_0x5a9ce5){return _0x3fd696[_0x28f1('0x1a')](_0x277964);}return _0x3fd696[_0x28f1('0x1b')](_0x277964)[_0x28f1('0x1c')]();};}function respondWithResult(_0x192023,_0x3e19a9){_0x3e19a9=_0x3e19a9||0xc8;return function(_0x19dfbf){if(_0x19dfbf){return _0x192023['status'](_0x3e19a9)[_0x28f1('0x1d')](_0x19dfbf);}};}function respondWithFilteredResult(_0x5d3ca6,_0x521427){return function(_0x860b45){if(_0x860b45){var _0x426dbd=typeof _0x521427[_0x28f1('0x1e')]===_0x28f1('0x1f')&&typeof _0x521427[_0x28f1('0x20')]===_0x28f1('0x1f');var _0x2a5d53=_0x860b45[_0x28f1('0x21')];var _0x3f9e52=_0x426dbd?0x0:_0x521427['offset'];var _0x4cfc14=_0x426dbd?_0x860b45[_0x28f1('0x21')]:_0x521427[_0x28f1('0x1e')]+_0x521427[_0x28f1('0x20')];var _0x42d9cd;if(_0x4cfc14>=_0x2a5d53){_0x4cfc14=_0x2a5d53;_0x42d9cd=0xc8;}else{_0x42d9cd=0xce;}_0x5d3ca6['status'](_0x42d9cd);return _0x5d3ca6[_0x28f1('0x22')](_0x28f1('0x23'),_0x3f9e52+'-'+_0x4cfc14+'/'+_0x2a5d53)[_0x28f1('0x1d')](_0x860b45);}return null;};}function patchUpdates(_0x2c808b){return function(_0xf5f7b8){try{jsonpatch[_0x28f1('0x24')](_0xf5f7b8,_0x2c808b,!![]);}catch(_0x340f90){return BPromise[_0x28f1('0x25')](_0x340f90);}return _0xf5f7b8[_0x28f1('0x26')]();};}function saveUpdates(_0x41606f,_0x4c81d7){return function(_0x38e9eb){if(_0x38e9eb){return _0x38e9eb[_0x28f1('0x27')](_0x41606f)['then'](function(_0x3b1530){return _0x3b1530;});}return null;};}function removeEntity(_0x2c728b,_0x4ef54e){return function(_0x4764ff){if(_0x4764ff){return _0x4764ff[_0x28f1('0x28')]()['then'](function(){var _0xff5dcb=_0x4764ff[_0x28f1('0x29')]({'plain':!![]});var _0x10d6d4=_0x28f1('0x2a');return db[_0x28f1('0x2b')][_0x28f1('0x28')]({'where':{'type':_0x10d6d4,'resourceId':_0xff5dcb['id']}})['then'](function(){return _0x4764ff;});})[_0x28f1('0x2c')](function(){_0x2c728b[_0x28f1('0x1b')](0xcc)[_0x28f1('0x1c')]();});}};}function handleEntityNotFound(_0x318fd6,_0x404c80){return function(_0x5cd6f3){if(!_0x5cd6f3){_0x318fd6[_0x28f1('0x1a')](0x194);}return _0x5cd6f3;};}function handleError(_0x7b19e3,_0x1c0fa0){_0x1c0fa0=_0x1c0fa0||0x1f4;return function(_0x5544c3){logger[_0x28f1('0x2d')](_0x5544c3['stack']);if(_0x5544c3[_0x28f1('0x2e')]){delete _0x5544c3[_0x28f1('0x2e')];}_0x7b19e3[_0x28f1('0x1b')](_0x1c0fa0)[_0x28f1('0x2f')](_0x5544c3);};}exports[_0x28f1('0x30')]=function(_0x1e2285,_0x265073){var _0xf52075={},_0x5d4aa4={},_0x3f3375={'count':0x0,'rows':[]};var _0x206569=_[_0x28f1('0x31')](db['Pause']['rawAttributes'],function(_0x3f000d){return{'name':_0x3f000d[_0x28f1('0x32')],'type':_0x3f000d[_0x28f1('0x33')][_0x28f1('0x34')]};});_0x5d4aa4[_0x28f1('0x35')]=_[_0x28f1('0x31')](_0x206569,_0x28f1('0x2e'));_0x5d4aa4[_0x28f1('0x36')]=_[_0x28f1('0x37')](_0x1e2285[_0x28f1('0x36')]);_0x5d4aa4['filters']=_[_0x28f1('0x38')](_0x5d4aa4[_0x28f1('0x35')],_0x5d4aa4[_0x28f1('0x36')]);_0xf52075['attributes']=_[_0x28f1('0x38')](_0x5d4aa4['model'],qs['fields'](_0x1e2285[_0x28f1('0x36')]['fields']));_0xf52075['attributes']=_0xf52075['attributes'][_0x28f1('0x39')]?_0xf52075['attributes']:_0x5d4aa4[_0x28f1('0x35')];if(!_0x1e2285['query'][_0x28f1('0x3a')](_0x28f1('0x3b'))){_0xf52075[_0x28f1('0x20')]=qs[_0x28f1('0x20')](_0x1e2285[_0x28f1('0x36')][_0x28f1('0x20')]);_0xf52075['offset']=qs[_0x28f1('0x1e')](_0x1e2285['query'][_0x28f1('0x1e')]);}_0xf52075[_0x28f1('0x3c')]=qs[_0x28f1('0x3d')](_0x1e2285[_0x28f1('0x36')][_0x28f1('0x3d')]);_0xf52075[_0x28f1('0x3e')]=qs['filters'](_[_0x28f1('0x3f')](_0x1e2285[_0x28f1('0x36')],_0x5d4aa4[_0x28f1('0x40')]),_0x206569);if(_0x1e2285['query'][_0x28f1('0x41')]){_0xf52075[_0x28f1('0x3e')]=_[_0x28f1('0x42')](_0xf52075[_0x28f1('0x3e')],{'$or':_[_0x28f1('0x31')](_0x206569,function(_0x29544f){if(_0x29544f[_0x28f1('0x33')]!=='VIRTUAL'){var _0x3f0fcf={};_0x3f0fcf[_0x29544f[_0x28f1('0x2e')]]={'$like':'%'+_0x1e2285[_0x28f1('0x36')][_0x28f1('0x41')]+'%'};return _0x3f0fcf;}})});}_0xf52075=_[_0x28f1('0x42')]({},_0xf52075,_0x1e2285['options']);var _0xb96120={'where':_0xf52075[_0x28f1('0x3e')]};return db[_0x28f1('0x43')][_0x28f1('0x21')](_0xb96120)[_0x28f1('0x2c')](function(_0x22a77a){_0x3f3375[_0x28f1('0x21')]=_0x22a77a;if(_0x1e2285[_0x28f1('0x36')][_0x28f1('0x44')]){_0xf52075[_0x28f1('0x45')]=[{'all':!![]}];}return db['Pause'][_0x28f1('0x46')](_0xf52075);})[_0x28f1('0x2c')](function(_0xafaa5b){_0x3f3375[_0x28f1('0x47')]=_0xafaa5b;return _0x3f3375;})[_0x28f1('0x2c')](respondWithFilteredResult(_0x265073,_0xf52075))[_0x28f1('0x48')](handleError(_0x265073,null));};exports[_0x28f1('0x49')]=function(_0x23db9e,_0x18b113){var _0x107052={'raw':!![],'where':{'id':_0x23db9e[_0x28f1('0x4a')]['id']}},_0x2a7909={};_0x2a7909[_0x28f1('0x35')]=_[_0x28f1('0x37')](db[_0x28f1('0x43')][_0x28f1('0x4b')]);_0x2a7909[_0x28f1('0x36')]=_[_0x28f1('0x37')](_0x23db9e['query']);_0x2a7909[_0x28f1('0x40')]=_[_0x28f1('0x38')](_0x2a7909[_0x28f1('0x35')],_0x2a7909['query']);_0x107052[_0x28f1('0x4c')]=_[_0x28f1('0x38')](_0x2a7909[_0x28f1('0x35')],qs[_0x28f1('0x4d')](_0x23db9e[_0x28f1('0x36')][_0x28f1('0x4d')]));_0x107052['attributes']=_0x107052[_0x28f1('0x4c')][_0x28f1('0x39')]?_0x107052['attributes']:_0x2a7909[_0x28f1('0x35')];if(_0x23db9e[_0x28f1('0x36')]['includeAll']){_0x107052[_0x28f1('0x45')]=[{'all':!![]}];}_0x107052=_[_0x28f1('0x42')]({},_0x107052,_0x23db9e[_0x28f1('0x4e')]);return db[_0x28f1('0x43')][_0x28f1('0x4f')](_0x107052)[_0x28f1('0x2c')](handleEntityNotFound(_0x18b113,null))[_0x28f1('0x2c')](respondWithResult(_0x18b113,null))[_0x28f1('0x48')](handleError(_0x18b113,null));};exports['create']=function(_0x513912,_0x36250e){return db['Pause'][_0x28f1('0x50')](_0x513912['body'],{})['then'](function(_0x2bfa4f){var _0x4990cd=_0x513912['user']['get']({'plain':!![]});if(!_0x4990cd)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4990cd['role']===_0x28f1('0x51')){var _0x57d047=_0x2bfa4f['get']({'plain':!![]});var _0xa9a872=_0x28f1('0x2a');return db[_0x28f1('0x52')][_0x28f1('0x4f')]({'where':{'name':_0xa9a872,'userProfileId':_0x4990cd[_0x28f1('0x53')]},'raw':!![]})[_0x28f1('0x2c')](function(_0x2333ba){if(_0x2333ba&&_0x2333ba[_0x28f1('0x54')]===0x0){return db[_0x28f1('0x2b')]['create']({'name':_0x57d047[_0x28f1('0x2e')],'resourceId':_0x57d047['id'],'type':_0x2333ba[_0x28f1('0x2e')],'sectionId':_0x2333ba['id']},{})[_0x28f1('0x2c')](function(){return _0x2bfa4f;});}else{return _0x2bfa4f;}})[_0x28f1('0x48')](function(_0x3237c6){logger[_0x28f1('0x2d')](_0x28f1('0x55'),_0x3237c6);throw _0x3237c6;});}return _0x2bfa4f;})[_0x28f1('0x2c')](respondWithResult(_0x36250e,0xc9))[_0x28f1('0x48')](handleError(_0x36250e,null));};exports[_0x28f1('0x27')]=function(_0x28d0c9,_0x148aa1){if(_0x28d0c9[_0x28f1('0x56')]['id']){delete _0x28d0c9[_0x28f1('0x56')]['id'];}return db[_0x28f1('0x43')]['find']({'where':{'id':_0x28d0c9[_0x28f1('0x4a')]['id']}})['then'](handleEntityNotFound(_0x148aa1,null))[_0x28f1('0x2c')](saveUpdates(_0x28d0c9[_0x28f1('0x56')],null))[_0x28f1('0x2c')](respondWithResult(_0x148aa1,null))[_0x28f1('0x48')](handleError(_0x148aa1,null));};exports[_0x28f1('0x28')]=function(_0xadee9a,_0x6db31d){return db['Pause'][_0x28f1('0x4f')]({'where':{'id':_0xadee9a[_0x28f1('0x4a')]['id']}})[_0x28f1('0x2c')](handleEntityNotFound(_0x6db31d,null))[_0x28f1('0x2c')](removeEntity(_0x6db31d,null))[_0x28f1('0x48')](handleError(_0x6db31d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['bluebird','path','./pause.attributes','exports','define','Pause','tools_pauses','lodash','util','moment'];(function(_0x575d71,_0x403596){var _0xaf8d7b=function(_0x3e1119){while(--_0x3e1119){_0x575d71['push'](_0x575d71['shift']());}};_0xaf8d7b(++_0x403596);}(_0xe14b,0x93));var _0xbe14=function(_0x59e124,_0x2fe8b0){_0x59e124=_0x59e124-0x0;var _0x2de1f7=_0xe14b[_0x59e124];return _0x2de1f7;};'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
+var _0xc4aa=['bluebird','../../config/environment','./pause.attributes','exports','define','Pause','tools_pauses','lodash','util','../../config/logger','api','moment'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x17b6e3,_0x4522ed){_0x17b6e3=_0x17b6e3-0x0;var _0x3906f3=_0xc4aa[_0x17b6e3];return _0x3906f3;};'use strict';var _=require(_0xac4a('0x0'));var util=require(_0xac4a('0x1'));var logger=require(_0xac4a('0x2'))(_0xac4a('0x3'));var moment=require(_0xac4a('0x4'));var BPromise=require(_0xac4a('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xac4a('0x6'));var attributes=require(_0xac4a('0x7'));module[_0xac4a('0x8')]=function(_0x215f39,_0x96be2b){return _0x215f39[_0xac4a('0x9')](_0xac4a('0xa'),attributes,{'tableName':_0xac4a('0xb'),'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(_0xeda63a,_0x34a32c){var _0x13fc2a=function(_0x5b01a5){while(--_0x5b01a5){_0xeda63a['push'](_0xeda63a['shift']());}};_0x13fc2a(++_0x34a32c);}(_0xb10b,0x12a));var _0xbb10=function(_0x3e2e40,_0x5e42ed){_0x3e2e40=_0x3e2e40-0x0;var _0x3cdf0a=_0xb10b[_0x3e2e40];return _0x3cdf0a;};'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(_0x12c4f9,_0x219190){var _0x25acc5=function(_0x30a71e){while(--_0x30a71e){_0x12c4f9['push'](_0x12c4f9['shift']());}};_0x25acc5(++_0x219190);}(_0x7a54,0x106));var _0x47a5=function(_0x223651,_0x29495c){_0x223651=_0x223651-0x0;var _0x29b672=_0x7a54[_0x223651];return _0x29b672;};'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 _0x80d9=['/:id/download','join','server/files/plugins','originalname','replace','format','%s-%s%s','basename','extname','now','post','file','upload','/webhook','put','update','delete','exports','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./plugin.controller','index','webhookGet','get','/:id','isAuthenticated','show'];(function(_0x119b3e,_0x588d50){var _0x1169ae=function(_0x377422){while(--_0x377422){_0x119b3e['push'](_0x119b3e['shift']());}};_0x1169ae(++_0x588d50);}(_0x80d9,0x15c));var _0x980d=function(_0x2e972e,_0x22b29d){_0x2e972e=_0x2e972e-0x0;var _0x44a9c0=_0x80d9[_0x2e972e];return _0x44a9c0;};'use strict';var multer=require(_0x980d('0x0'));var util=require('util');var path=require(_0x980d('0x1'));var timeout=require(_0x980d('0x2'));var express=require(_0x980d('0x3'));var router=express['Router']();var fs_extra=require(_0x980d('0x4'));var auth=require(_0x980d('0x5'));var interaction=require(_0x980d('0x6'));var config=require(_0x980d('0x7'));var controller=require(_0x980d('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0x980d('0x9')]);router['get']('/webhook',controller[_0x980d('0xa')]);router[_0x980d('0xb')](_0x980d('0xc'),auth[_0x980d('0xd')](),controller[_0x980d('0xe')]);router[_0x980d('0xb')](_0x980d('0xf'),auth['isAuthenticated'](),controller['download']);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x43a0d8,_0x10872c,_0x4a9536){_0x4a9536(null,path[_0x980d('0x10')](config['root'],_0x980d('0x11')));},'filename':function(_0x52cd18,_0xc0168a,_0x19cb9b){_0xc0168a[_0x980d('0x12')]=_0xc0168a[_0x980d('0x12')][_0x980d('0x13')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x19cb9b(null,util[_0x980d('0x14')](_0x980d('0x15'),path[_0x980d('0x16')](_0xc0168a['originalname'],path[_0x980d('0x17')](_0xc0168a[_0x980d('0x12')])),Date[_0x980d('0x18')](),path[_0x980d('0x17')](_0xc0168a[_0x980d('0x12')])));}})});router[_0x980d('0x19')]('/',upload['single'](_0x980d('0x1a')),controller[_0x980d('0x1b')]);router['post'](_0x980d('0x1c'),controller['webhookPost']);router[_0x980d('0x1d')](_0x980d('0xc'),auth[_0x980d('0xd')](),controller[_0x980d('0x1e')]);router[_0x980d('0x1f')](_0x980d('0xc'),auth[_0x980d('0xd')](),controller[_0x980d('0x1f')]);module[_0x980d('0x20')]=router;
\ No newline at end of file
+var _0x0bde=['originalname','replace','format','%s-%s%s','basename','extname','post','single','file','upload','put','update','delete','exports','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./plugin.controller','get','isAuthenticated','index','/webhook','/:id','show','/:id/download','download','server/files/plugins'];(function(_0x1089e8,_0x62220){var _0xd9521c=function(_0x457f98){while(--_0x457f98){_0x1089e8['push'](_0x1089e8['shift']());}};_0xd9521c(++_0x62220);}(_0x0bde,0xe7));var _0xe0bd=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x0bde[_0x2641f9];return _0x585741;};'use strict';var multer=require('multer');var util=require(_0xe0bd('0x0'));var path=require('path');var timeout=require(_0xe0bd('0x1'));var express=require(_0xe0bd('0x2'));var router=express[_0xe0bd('0x3')]();var fs_extra=require(_0xe0bd('0x4'));var auth=require(_0xe0bd('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xe0bd('0x6'));var controller=require(_0xe0bd('0x7'));router[_0xe0bd('0x8')]('/',auth[_0xe0bd('0x9')](),controller[_0xe0bd('0xa')]);router[_0xe0bd('0x8')](_0xe0bd('0xb'),controller['webhookGet']);router[_0xe0bd('0x8')](_0xe0bd('0xc'),auth[_0xe0bd('0x9')](),controller[_0xe0bd('0xd')]);router[_0xe0bd('0x8')](_0xe0bd('0xe'),auth[_0xe0bd('0x9')](),controller[_0xe0bd('0xf')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x595dac,_0x47f96d,_0x44ffa9){_0x44ffa9(null,path['join'](config['root'],_0xe0bd('0x10')));},'filename':function(_0x415093,_0x54d40e,_0xc492b4){_0x54d40e['originalname']=_0x54d40e[_0xe0bd('0x11')][_0xe0bd('0x12')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0xc492b4(null,util[_0xe0bd('0x13')](_0xe0bd('0x14'),path[_0xe0bd('0x15')](_0x54d40e[_0xe0bd('0x11')],path[_0xe0bd('0x16')](_0x54d40e[_0xe0bd('0x11')])),Date['now'](),path['extname'](_0x54d40e['originalname'])));}})});router[_0xe0bd('0x17')]('/',upload[_0xe0bd('0x18')](_0xe0bd('0x19')),controller[_0xe0bd('0x1a')]);router[_0xe0bd('0x17')]('/webhook',controller['webhookPost']);router[_0xe0bd('0x1b')]('/:id',auth[_0xe0bd('0x9')](),controller[_0xe0bd('0x1c')]);router[_0xe0bd('0x1d')](_0xe0bd('0xc'),auth['isAuthenticated'](),controller[_0xe0bd('0x1d')]);module[_0xe0bd('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e6e=['STRING','html','script','TEXT','The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.','BOOLEAN','Indicates\x20whether\x20the\x20plugin\x20is\x20installed.\x20Updated\x20when\x20the\x20plugin\x20is\x20installed/uninstalled.','ENUM','adminOnly','never','always','sequelize','exports'];(function(_0x29e311,_0x3f3caa){var _0x390dc1=function(_0x3475a7){while(--_0x3475a7){_0x29e311['push'](_0x29e311['shift']());}};_0x390dc1(++_0x3f3caa);}(_0x6e6e,0x150));var _0xe6e6=function(_0x27f075,_0x276812){_0x27f075=_0x27f075-0x0;var _0x2a8c58=_0x6e6e[_0x27f075];return _0x2a8c58;};'use strict';var Sequelize=require(_0xe6e6('0x0'));module[_0xe6e6('0x1')]={'name':{'type':Sequelize[_0xe6e6('0x2')]},'type':{'type':Sequelize['ENUM'](_0xe6e6('0x3'),_0xe6e6('0x4'))},'description':{'type':Sequelize[_0xe6e6('0x5')]},'version':{'type':Sequelize[_0xe6e6('0x5')]},'path':{'type':Sequelize[_0xe6e6('0x2')],'comment':_0xe6e6('0x6')},'active':{'type':Sequelize[_0xe6e6('0x7')],'defaultValue':0x0,'comment':_0xe6e6('0x8')},'sidebar':{'type':Sequelize[_0xe6e6('0x9')](_0xe6e6('0xa'),'agentOnly','always',_0xe6e6('0xb')),'defaultValue':_0xe6e6('0xc'),'comment':'Indicates\x20whether\x20to\x20display\x20the\x20plugin\x20in\x20the\x20sidebar.'},'icon':{'type':Sequelize[_0xe6e6('0x2')]},'adminUrl':{'type':Sequelize[_0xe6e6('0x2')]},'agentUrl':{'type':Sequelize[_0xe6e6('0x2')]},'scriptName':{'type':Sequelize[_0xe6e6('0x2')]},'scriptPath':{'type':Sequelize[_0xe6e6('0x2')]}};
\ No newline at end of file
+var _0xbf4a=['TEXT','STRING','BOOLEAN','Indicates\x20whether\x20the\x20plugin\x20is\x20installed.\x20Updated\x20when\x20the\x20plugin\x20is\x20installed/uninstalled.','ENUM','agentOnly','always','never','Indicates\x20whether\x20to\x20display\x20the\x20plugin\x20in\x20the\x20sidebar.','exports','script'];(function(_0x224456,_0x2ee1c2){var _0x49837b=function(_0x1f18bd){while(--_0x1f18bd){_0x224456['push'](_0x224456['shift']());}};_0x49837b(++_0x2ee1c2);}(_0xbf4a,0x77));var _0xabf4=function(_0x113108,_0x1445b1){_0x113108=_0x113108-0x0;var _0x19fd86=_0xbf4a[_0x113108];return _0x19fd86;};'use strict';var Sequelize=require('sequelize');module[_0xabf4('0x0')]={'name':{'type':Sequelize['STRING']},'type':{'type':Sequelize['ENUM']('html',_0xabf4('0x1'))},'description':{'type':Sequelize[_0xabf4('0x2')]},'version':{'type':Sequelize[_0xabf4('0x2')]},'path':{'type':Sequelize[_0xabf4('0x3')],'comment':'The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.'},'active':{'type':Sequelize[_0xabf4('0x4')],'defaultValue':0x0,'comment':_0xabf4('0x5')},'sidebar':{'type':Sequelize[_0xabf4('0x6')]('adminOnly',_0xabf4('0x7'),_0xabf4('0x8'),_0xabf4('0x9')),'defaultValue':_0xabf4('0x8'),'comment':_0xabf4('0xa')},'icon':{'type':Sequelize[_0xabf4('0x3')]},'adminUrl':{'type':Sequelize['STRING']},'agentUrl':{'type':Sequelize['STRING']},'scriptName':{'type':Sequelize[_0xabf4('0x3')]},'scriptPath':{'type':Sequelize[_0xabf4('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x35b6=['rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','querystring','extract-zip','archiver','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','status','end','json','undefined','limit','count','offset','Content-Range','apply','reject','destroy','then','get','Plugins','UserProfileResource','sendStatus','error','stack','name','send','index','map','Plugin','rawAttributes','type','keys','filters','intersection','model','query','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','merge','options','includeAll','catch','show','params','length','include','find','join','format','%s.zip','basename','createWriteStream','zip','warning','code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','**/*','root','server/files/plugins','dirname','node_modules/**/*','existsSync','download','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','upload','filename','extname','file','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','0777','lstatSync','Invalid\x20plugin\x20structure','isDirectory','readdirSync','some','readFileSync','manifest.json','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','parameters','html','views','Invalid\x20manifest:\x20views\x20missing','admin','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','icon-apps','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','agent','body','role','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Extracted\x20folder\x20removed','delete','webhookGet','resolve','port','hostname','encoding','method','headers','content-length','content-type','set','endsWith','statusCode','\x27PATH\x27\x20parameter\x20not\x20specified','\x27PORT\x27\x20parameter\x20not\x20specified','http://localhost:','%s%s','eml-format'];(function(_0x41f59b,_0x5f5893){var _0x2aae21=function(_0x4895c7){while(--_0x4895c7){_0x41f59b['push'](_0x41f59b['shift']());}};_0x2aae21(++_0x5f5893);}(_0x35b6,0x14b));var _0x635b=function(_0x29cc4c,_0x59a173){_0x29cc4c=_0x29cc4c-0x0;var _0x724caa=_0x35b6[_0x29cc4c];return _0x724caa;};'use strict';var emlformat=require(_0x635b('0x0'));var rimraf=require(_0x635b('0x1'));var zipdir=require(_0x635b('0x2'));var jsonpatch=require(_0x635b('0x3'));var rp=require(_0x635b('0x4'));var moment=require(_0x635b('0x5'));var BPromise=require(_0x635b('0x6'));var Mustache=require(_0x635b('0x7'));var util=require('util');var path=require(_0x635b('0x8'));var sox=require(_0x635b('0x9'));var csv=require(_0x635b('0xa'));var ejs=require(_0x635b('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x635b('0xc'));var squel=require(_0x635b('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x635b('0xa'));var querystring=require(_0x635b('0xe'));var Papa=require('papaparse');var extract=require(_0x635b('0xf'));var rimraf=require(_0x635b('0x1'));var archiver=require(_0x635b('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x635b('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x635b('0x12'))(_0x635b('0x13'));var utils=require('../../config/utils');var config=require(_0x635b('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x635b('0x15')]=_[_0x635b('0x16')](config[_0x635b('0x15')],{'host':_0x635b('0x17'),'port':0x18eb});var socket=require(_0x635b('0x18'))(new Redis(config[_0x635b('0x15')]));require(_0x635b('0x19'))[_0x635b('0x1a')](socket);function respondWithStatusCode(_0x156a3a,_0x929124){_0x929124=_0x929124||0xcc;return function(_0x35fe8b){if(_0x35fe8b){return _0x156a3a['sendStatus'](_0x929124);}return _0x156a3a[_0x635b('0x1b')](_0x929124)[_0x635b('0x1c')]();};}function respondWithResult(_0x5798eb,_0x149c42){_0x149c42=_0x149c42||0xc8;return function(_0x3c1f05){if(_0x3c1f05){return _0x5798eb['status'](_0x149c42)[_0x635b('0x1d')](_0x3c1f05);}};}function respondWithFilteredResult(_0x5ad960,_0x408c47){return function(_0x2697e4){if(_0x2697e4){var _0x5f1f05=typeof _0x408c47['offset']===_0x635b('0x1e')&&typeof _0x408c47[_0x635b('0x1f')]===_0x635b('0x1e');var _0x5f3caf=_0x2697e4[_0x635b('0x20')];var _0x2ac2e2=_0x5f1f05?0x0:_0x408c47[_0x635b('0x21')];var _0x5d78b2=_0x5f1f05?_0x2697e4[_0x635b('0x20')]:_0x408c47['offset']+_0x408c47[_0x635b('0x1f')];var _0xbab26c;if(_0x5d78b2>=_0x5f3caf){_0x5d78b2=_0x5f3caf;_0xbab26c=0xc8;}else{_0xbab26c=0xce;}_0x5ad960[_0x635b('0x1b')](_0xbab26c);return _0x5ad960['set'](_0x635b('0x22'),_0x2ac2e2+'-'+_0x5d78b2+'/'+_0x5f3caf)['json'](_0x2697e4);}return null;};}function patchUpdates(_0x4795ab){return function(_0x48bd08){try{jsonpatch[_0x635b('0x23')](_0x48bd08,_0x4795ab,!![]);}catch(_0x3b385c){return BPromise[_0x635b('0x24')](_0x3b385c);}return _0x48bd08['save']();};}function saveUpdates(_0x8f35b7,_0x1fced7){return function(_0xfd8095){if(_0xfd8095){return _0xfd8095['update'](_0x8f35b7)['then'](function(_0x484f73){return _0x484f73;});}return null;};}function removeEntity(_0x4e5106,_0x20cd9c){return function(_0x5f3586){if(_0x5f3586){return _0x5f3586[_0x635b('0x25')]()[_0x635b('0x26')](function(){var _0x5cc2c9=_0x5f3586[_0x635b('0x27')]({'plain':!![]});var _0x4113cc=_0x635b('0x28');return db[_0x635b('0x29')][_0x635b('0x25')]({'where':{'type':_0x4113cc,'resourceId':_0x5cc2c9['id']}})[_0x635b('0x26')](function(){return _0x5f3586;});})[_0x635b('0x26')](function(){_0x4e5106[_0x635b('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x483367,_0x36779c){return function(_0x1a6e0c){if(!_0x1a6e0c){_0x483367[_0x635b('0x2a')](0x194);}return _0x1a6e0c;};}function handleError(_0x1ead5f,_0x3cb916){_0x3cb916=_0x3cb916||0x1f4;return function(_0x2bb8a9){logger[_0x635b('0x2b')](_0x2bb8a9[_0x635b('0x2c')]);if(_0x2bb8a9[_0x635b('0x2d')]){delete _0x2bb8a9[_0x635b('0x2d')];}_0x1ead5f[_0x635b('0x1b')](_0x3cb916)[_0x635b('0x2e')](_0x2bb8a9);};}exports[_0x635b('0x2f')]=function(_0x4f7d05,_0x2e1566){var _0x543d41={},_0x33cf86={},_0x4cf1d5={'count':0x0,'rows':[]};var _0x4cd186=_[_0x635b('0x30')](db[_0x635b('0x31')][_0x635b('0x32')],function(_0x22c05e){return{'name':_0x22c05e['fieldName'],'type':_0x22c05e[_0x635b('0x33')]['key']};});_0x33cf86['model']=_['map'](_0x4cd186,_0x635b('0x2d'));_0x33cf86['query']=_[_0x635b('0x34')](_0x4f7d05['query']);_0x33cf86[_0x635b('0x35')]=_[_0x635b('0x36')](_0x33cf86[_0x635b('0x37')],_0x33cf86[_0x635b('0x38')]);_0x543d41[_0x635b('0x39')]=_[_0x635b('0x36')](_0x33cf86['model'],qs['fields'](_0x4f7d05['query'][_0x635b('0x3a')]));_0x543d41['attributes']=_0x543d41['attributes']['length']?_0x543d41[_0x635b('0x39')]:_0x33cf86[_0x635b('0x37')];if(!_0x4f7d05[_0x635b('0x38')][_0x635b('0x3b')](_0x635b('0x3c'))){_0x543d41['limit']=qs[_0x635b('0x1f')](_0x4f7d05['query'][_0x635b('0x1f')]);_0x543d41['offset']=qs[_0x635b('0x21')](_0x4f7d05['query'][_0x635b('0x21')]);}_0x543d41[_0x635b('0x3d')]=qs[_0x635b('0x3e')](_0x4f7d05[_0x635b('0x38')][_0x635b('0x3e')]);_0x543d41[_0x635b('0x3f')]=qs[_0x635b('0x35')](_['pick'](_0x4f7d05['query'],_0x33cf86['filters']),_0x4cd186);if(_0x4f7d05[_0x635b('0x38')][_0x635b('0x40')]){_0x543d41[_0x635b('0x3f')]=_[_0x635b('0x41')](_0x543d41[_0x635b('0x3f')],{'$or':_[_0x635b('0x30')](_0x4cd186,function(_0xd6e392){if(_0xd6e392[_0x635b('0x33')]!=='VIRTUAL'){var _0x176d75={};_0x176d75[_0xd6e392[_0x635b('0x2d')]]={'$like':'%'+_0x4f7d05['query'][_0x635b('0x40')]+'%'};return _0x176d75;}})});}_0x543d41=_[_0x635b('0x41')]({},_0x543d41,_0x4f7d05[_0x635b('0x42')]);var _0x25ed56={'where':_0x543d41[_0x635b('0x3f')]};return db[_0x635b('0x31')]['count'](_0x25ed56)['then'](function(_0x20efa7){_0x4cf1d5[_0x635b('0x20')]=_0x20efa7;if(_0x4f7d05[_0x635b('0x38')][_0x635b('0x43')]){_0x543d41['include']=[{'all':!![]}];}return db[_0x635b('0x31')]['findAll'](_0x543d41);})[_0x635b('0x26')](function(_0x3b2cbd){_0x4cf1d5['rows']=_0x3b2cbd;return _0x4cf1d5;})[_0x635b('0x26')](respondWithFilteredResult(_0x2e1566,_0x543d41))[_0x635b('0x44')](handleError(_0x2e1566,null));};exports[_0x635b('0x45')]=function(_0x117a0f,_0x1464e4){var _0x338f0d={'raw':!![],'where':{'id':_0x117a0f[_0x635b('0x46')]['id']}},_0x533591={};_0x533591['model']=_['keys'](db['Plugin'][_0x635b('0x32')]);_0x533591[_0x635b('0x38')]=_[_0x635b('0x34')](_0x117a0f[_0x635b('0x38')]);_0x533591[_0x635b('0x35')]=_[_0x635b('0x36')](_0x533591[_0x635b('0x37')],_0x533591[_0x635b('0x38')]);_0x338f0d[_0x635b('0x39')]=_['intersection'](_0x533591[_0x635b('0x37')],qs['fields'](_0x117a0f[_0x635b('0x38')][_0x635b('0x3a')]));_0x338f0d[_0x635b('0x39')]=_0x338f0d[_0x635b('0x39')][_0x635b('0x47')]?_0x338f0d['attributes']:_0x533591[_0x635b('0x37')];if(_0x117a0f[_0x635b('0x38')][_0x635b('0x43')]){_0x338f0d[_0x635b('0x48')]=[{'all':!![]}];}_0x338f0d=_[_0x635b('0x41')]({},_0x338f0d,_0x117a0f[_0x635b('0x42')]);return db[_0x635b('0x31')][_0x635b('0x49')](_0x338f0d)[_0x635b('0x26')](handleEntityNotFound(_0x1464e4,null))[_0x635b('0x26')](respondWithResult(_0x1464e4,null))[_0x635b('0x44')](handleError(_0x1464e4,null));};exports['download']=function(_0x5a31b7,_0x370c0c,_0x208651){return db[_0x635b('0x31')][_0x635b('0x49')]({'where':{'id':_0x5a31b7[_0x635b('0x46')]['id']},'attributes':[_0x635b('0x2d'),_0x635b('0x8')],'raw':!![]})[_0x635b('0x26')](handleEntityNotFound(_0x370c0c,null))[_0x635b('0x26')](function(_0x563749){if(_0x563749){var _0x11a4a5=path[_0x635b('0x4a')](config['root'],'server/files/plugins',util[_0x635b('0x4b')](_0x635b('0x4c'),path[_0x635b('0x4d')](_0x563749[_0x635b('0x8')])));var _0x3d4e87=fs[_0x635b('0x4e')](_0x11a4a5);var _0x2f1ec3=archiver(_0x635b('0x4f'),{'zlib':{'level':0x9}});_0x2f1ec3['on'](_0x635b('0x50'),function(_0x1b9189){if(_0x1b9189[_0x635b('0x51')]===_0x635b('0x52')){logger[_0x635b('0x2b')](_0x1b9189);}else{throw new db[(_0x635b('0x53'))][(_0x635b('0x54'))](_0x635b('0x55'));}});_0x2f1ec3['on'](_0x635b('0x2b'),function(_0x3a9105){throw new db['Sequelize'][(_0x635b('0x54'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');});_0x2f1ec3[_0x635b('0x56')](_0x3d4e87);_0x2f1ec3[_0x635b('0x57')](_0x635b('0x58'),{'cwd':path[_0x635b('0x4a')](config[_0x635b('0x59')],_0x635b('0x5a'),path[_0x635b('0x5b')](_0x563749[_0x635b('0x8')])),'ignore':[path[_0x635b('0x4a')](path[_0x635b('0x4d')](_0x563749[_0x635b('0x8')]),_0x635b('0x5c')),path['join'](path['basename'](_0x563749[_0x635b('0x8')]),'attachments/**/*')],'nodir':!![]})['finalize']();_0x3d4e87['on']('close',function(){if(!fs[_0x635b('0x5d')](_0x11a4a5)){throw new db['Sequelize']['Error']('Plugin\x20not\x20found');}return _0x370c0c[_0x635b('0x5e')](_0x11a4a5,util[_0x635b('0x4b')](_0x635b('0x4c'),path[_0x635b('0x4d')](_0x563749['path'])),function(_0x2a51dc){if(_0x2a51dc){throw new db['Sequelize'][(_0x635b('0x54'))](_0x635b('0x5f'));}fs[_0x635b('0x60')](_0x11a4a5);logger[_0x635b('0x61')](_0x635b('0x62'));logger[_0x635b('0x61')](_0x635b('0x63'));});});}return null;})[_0x635b('0x44')](handleError(_0x370c0c,null));};exports[_0x635b('0x64')]=function(_0x1a44df,_0x3e463b,_0x512962){var _0x1480c9=path[_0x635b('0x4d')](_0x1a44df['file'][_0x635b('0x65')],path[_0x635b('0x66')](_0x1a44df[_0x635b('0x67')][_0x635b('0x65')]));var _0x45072e=path['join'](config[_0x635b('0x59')],_0x635b('0x5a'),_0x1a44df[_0x635b('0x67')][_0x635b('0x65')]);var _0x28045a=path['join'](config['root'],'server/files/plugins',_0x1480c9);logger[_0x635b('0x61')](_0x635b('0x68'),_0x45072e);logger['info'](_0x635b('0x69'),_0x28045a);try{fs['chmodSync'](_0x45072e,parseInt(_0x635b('0x6a'),0x8));extract(_0x45072e,{'dir':_0x28045a},function(_0x38bd7c){if(_0x38bd7c){logger['error'](_0x38bd7c);handleError(_0x38bd7c,!![]);};var _0x506fe0=fs['readdirSync'](_0x28045a);if(_0x506fe0[_0x635b('0x47')]>0x1){removeReferences(_0x45072e,_0x28045a);logger[_0x635b('0x2b')]('Invalid\x20plugin\x20structure');return _0x512962(new Error('Invalid\x20plugin\x20structure'));}var _0xc936a8=fs[_0x635b('0x6b')](path[_0x635b('0x4a')](_0x28045a,_0x506fe0[0x0]));if(_0xc936a8['isFile']()){removeReferences(_0x45072e,_0x28045a);logger[_0x635b('0x2b')](_0x635b('0x6c'));return _0x512962(new Error(_0x635b('0x6c')));}if(_0xc936a8[_0x635b('0x6d')]()){var _0x1cf6db=fs[_0x635b('0x6e')](path[_0x635b('0x4a')](_0x28045a,_0x506fe0[0x0]));if(_0x1cf6db['length']===0x0){removeReferences(_0x45072e,_0x28045a);logger[_0x635b('0x2b')](_0x635b('0x6c'));return _0x512962(new Error('Invalid\x20plugin\x20structure'));}var _0x524a58=_0x1cf6db[_0x635b('0x6f')](function(_0xac53c8){return _0xac53c8==='manifest.json';});if(!_0x524a58){return _0x512962(new Error('Plugin\x20manifest\x20missing'));}var _0x440983=fs[_0x635b('0x70')](path[_0x635b('0x4a')](_0x28045a,_0x506fe0[0x0],_0x635b('0x71')));var _0x254423=JSON[_0x635b('0x72')](_0x440983);if('undefined'==typeof _0x254423[_0x635b('0x2d')]){return _0x512962(new Error(_0x635b('0x73')));}if(_0x635b('0x1e')==typeof _0x254423[_0x635b('0x33')]){return _0x512962(new Error(_0x635b('0x74')));}if(_0x635b('0x1e')==typeof _0x254423[_0x635b('0x75')]){return _0x512962(new Error('Invalid\x20manifest:\x20version\x20not\x20specified'));}if(_0x635b('0x1e')==typeof _0x254423[_0x635b('0x76')]){return _0x512962(new Error('Invalid\x20manifest:\x20parameters\x20missing'));}if(_0x254423['type']===_0x635b('0x77')){if(_0x635b('0x1e')==typeof _0x254423[_0x635b('0x76')][_0x635b('0x78')]){return _0x512962(new Error(_0x635b('0x79')));}if(_0x635b('0x1e')==typeof _0x254423[_0x635b('0x76')]['views'][_0x635b('0x7a')]&&_0x635b('0x1e')==typeof _0x254423[_0x635b('0x76')][_0x635b('0x78')]['agent']){return _0x512962(new Error(_0x635b('0x7b')));}}else if(_0x254423[_0x635b('0x33')]===_0x635b('0x7c')){if(_0x635b('0x1e')==typeof _0x254423[_0x635b('0x76')][_0x635b('0x7d')]){return _0x512962(new Error(_0x635b('0x7e')));}if(_0x635b('0x1e')==typeof _0x254423[_0x635b('0x76')][_0x635b('0x7f')]){return _0x512962(new Error(_0x635b('0x80')));}}else{return _0x512962(new Error(_0x635b('0x81')));}var _0x21bd6c=_0x254423[_0x635b('0x2d')];var _0x373daa=_0x254423[_0x635b('0x82')];var _0x5025fc=_0x254423[_0x635b('0x33')];var _0x356ec0=_0x254423[_0x635b('0x83')]?_0x254423[_0x635b('0x83')]:_0x635b('0x84');var _0x6a2a4a=_0x254423[_0x635b('0x85')]?_0x254423[_0x635b('0x85')]:_0x635b('0x86');var _0x21a053='';var _0x3abbbd='';var _0x1f3e8c='';var _0x468aef='';var _0x572224=_0x254423[_0x635b('0x75')];if(_0x5025fc===_0x635b('0x77')){if(_0x635b('0x1e')!=typeof _0x254423[_0x635b('0x76')][_0x635b('0x78')]['admin']){var _0x3d95f7=_0x254423[_0x635b('0x76')]['views'][_0x635b('0x7a')];if(!/^(f|ht)tps?:\/\//i[_0x635b('0x87')](_0x3d95f7)){_0x21a053=path[_0x635b('0x4a')](_0x635b('0x88'),_0x1480c9,_0x506fe0[0x0],_0x3d95f7);}else{_0x21a053=_0x3d95f7;}}else{logger['info'](_0x635b('0x89'));}if(_0x635b('0x1e')!=typeof _0x254423[_0x635b('0x76')]['views'][_0x635b('0x8a')]){var _0x69f81f=_0x254423[_0x635b('0x76')][_0x635b('0x78')][_0x635b('0x8a')];if(!/^(f|ht)tps?:\/\//i[_0x635b('0x87')](_0x69f81f)){_0x3abbbd=path[_0x635b('0x4a')](_0x635b('0x88'),_0x1480c9,_0x506fe0[0x0],_0x69f81f);}else{_0x3abbbd=_0x69f81f;}}else{logger['info']('Warning:\x20agent\x20view\x20not\x20specified');}}else if(_0x5025fc==='script'){_0x1f3e8c=_0x254423[_0x635b('0x76')][_0x635b('0x7d')];_0x468aef=_0x254423[_0x635b('0x76')]['scriptPath'];if('undefined'!=typeof _0x254423[_0x635b('0x76')][_0x635b('0x78')]){if('undefined'!=typeof _0x254423[_0x635b('0x76')][_0x635b('0x78')][_0x635b('0x7a')]){var _0x3d95f7=_0x254423[_0x635b('0x76')][_0x635b('0x78')][_0x635b('0x7a')];if(!/^(f|ht)tps?:\/\//i['test'](_0x3d95f7)){_0x21a053=path[_0x635b('0x4a')](_0x635b('0x88'),_0x1480c9,_0x506fe0[0x0],_0x3d95f7);}else{_0x21a053=_0x3d95f7;}}if(_0x635b('0x1e')!=typeof _0x254423[_0x635b('0x76')][_0x635b('0x78')][_0x635b('0x8a')]){var _0x69f81f=_0x254423[_0x635b('0x76')][_0x635b('0x78')][_0x635b('0x8a')];if(!/^(f|ht)tps?:\/\//i[_0x635b('0x87')](_0x69f81f)){_0x3abbbd=path[_0x635b('0x4a')](_0x635b('0x88'),_0x1480c9,_0x506fe0[0x0],_0x69f81f);}else{_0x3abbbd=_0x69f81f;}}}}var _0xc85096={'name':_0x21bd6c,'description':_0x373daa,'path':path[_0x635b('0x4a')](_0x1480c9,_0x506fe0[0x0]),'type':_0x5025fc,'sidebar':_0x356ec0,'icon':_0x6a2a4a,'adminUrl':_0x21a053,'agentUrl':_0x3abbbd,'scriptName':_0x1f3e8c,'scriptPath':_0x468aef,'version':_0x572224};removeReferences(_0x45072e,null);return db[_0x635b('0x31')]['create'](_0xc85096)[_0x635b('0x26')](function(_0x3f3080){var _0x37835b={'role':_0x1a44df[_0x635b('0x8b')][_0x635b('0x8c')],'userProfileId':_0x1a44df[_0x635b('0x8b')]['userProfileId']};if(!_0x37835b)throw new Error(_0x635b('0x8d'));if(_0x37835b[_0x635b('0x8c')]===_0x635b('0x8e')){var _0x1b8250=_0x3f3080['get']({'plain':!![]});return db[_0x635b('0x8f')][_0x635b('0x49')]({'where':{'name':_0x635b('0x28'),'userProfileId':_0x37835b[_0x635b('0x90')]},'raw':!![]})['then'](function(_0x48a329){if(_0x48a329&&_0x48a329[_0x635b('0x91')]===0x0){return db['UserProfileResource'][_0x635b('0x92')]({'name':_0x1b8250[_0x635b('0x2d')],'resourceId':_0x1b8250['id'],'type':_0x48a329[_0x635b('0x2d')],'sectionId':_0x48a329['id']},{})['then'](function(){return _0x3f3080;});}else{return _0x3f3080;}})['catch'](function(_0x27af2a){logger['error'](_0x635b('0x93'),_0x27af2a);throw _0x27af2a;});}return _0x3f3080;})[_0x635b('0x26')](respondWithResult(_0x3e463b,null))['catch'](handleError(_0x3e463b,null));}});}catch(_0x2f42eb){_0x3e463b[_0x635b('0x1b')](0x1f4)[_0x635b('0x2e')](_0x2f42eb);}};function removeReferences(_0x3afefd,_0x1a3527){try{if(_0x3afefd){fs[_0x635b('0x60')](_0x3afefd);logger[_0x635b('0x61')]('Zip\x20archive\x20removed');}if(_0x1a3527){rimraf(_0x1a3527,function(){});logger[_0x635b('0x61')](_0x635b('0x94'));}}catch(_0x3d87e4){logger[_0x635b('0x2b')](_0x3d87e4);}}exports['update']=function(_0x2726a2,_0x31a2b2,_0x43d684){return db[_0x635b('0x31')][_0x635b('0x49')]({'where':{'id':_0x2726a2['params']['id']}})[_0x635b('0x26')](handleEntityNotFound(_0x31a2b2,null))[_0x635b('0x26')](saveUpdates(_0x2726a2[_0x635b('0x8b')],null))['then'](respondWithResult(_0x31a2b2,null))[_0x635b('0x44')](handleError(_0x31a2b2,null));};exports[_0x635b('0x95')]=function(_0x572317,_0x2747d2,_0x4871fd){return db[_0x635b('0x31')][_0x635b('0x49')]({'where':{'id':_0x572317[_0x635b('0x46')]['id']}})['then'](function(_0x55c2df){if(_0x55c2df){return _0x55c2df[_0x635b('0x25')]();}})[_0x635b('0x26')](function(_0x3618ac){rimraf(path[_0x635b('0x4a')](config[_0x635b('0x59')],_0x635b('0x5a'),path['dirname'](_0x3618ac['path'])),function(){});return _0x3618ac;})[_0x635b('0x26')](handleEntityNotFound(_0x2747d2,null))['then'](respondWithStatusCode(_0x2747d2,null))[_0x635b('0x44')](handleError(_0x2747d2,null));};exports[_0x635b('0x96')]=function(_0xc0e11f,_0xfdfe5,_0x539e4d){return BPromise[_0x635b('0x97')]()[_0x635b('0x26')](function(){if(!_0xc0e11f[_0x635b('0x38')][_0x635b('0x8')]){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0xc0e11f['query'][_0x635b('0x98')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x23eb91=_0xc0e11f[_0x635b('0x38')][_0x635b('0x99')]?_0xc0e11f[_0x635b('0x38')][_0x635b('0x99')]+':'+_0xc0e11f['query'][_0x635b('0x98')]:'http://localhost:'+_0xc0e11f['query']['port'];var _0x3d2fb3=_0xc0e11f[_0x635b('0x38')]['json']?_0xc0e11f[_0x635b('0x38')][_0x635b('0x1d')]:!![];var _0x1630b6=_0xc0e11f[_0x635b('0x38')][_0x635b('0x9a')]?_0xc0e11f[_0x635b('0x38')]['encoding']:null;var _0x4716b5={'method':_0xc0e11f[_0x635b('0x9b')],'uri':util[_0x635b('0x4b')]('%s%s',_0x23eb91,_0xc0e11f['query']['path']),'json':_0x3d2fb3,'resolveWithFullResponse':!![],'encoding':_0x1630b6,'qs':_0xc0e11f[_0x635b('0x38')]};if(_0xc0e11f[_0x635b('0x9c')]){_0x4716b5[_0x635b('0x9c')]=_0xc0e11f['headers'];if(_0x4716b5['headers']['content-length']){delete _0x4716b5[_0x635b('0x9c')][_0x635b('0x9d')];}}if(_0x4716b5[_0x635b('0x9c')]['content-type']){delete _0x4716b5['headers'][_0x635b('0x9e')];}return rp(_0x4716b5);})['then'](function(_0x598195){if(_0x598195){_0xfdfe5[_0x635b('0x9f')](_0x598195[_0x635b('0x9c')]);logger[_0x635b('0x61')](_0x598195[_0x635b('0x8b')]);if(_[_0x635b('0xa0')](_0xc0e11f[_0x635b('0x38')][_0x635b('0x8')],'download')&&_0x598195['statusCode']==0x1f4){return _0xfdfe5['sendStatus'](_0x598195[_0x635b('0xa1')]);}else{return _0xfdfe5['status'](_0x598195[_0x635b('0xa1')])[_0x635b('0x2e')](_0x598195[_0x635b('0x8b')]);}}else{return _0xfdfe5['sendStatus'](0xc8);}})['catch'](handleError(_0xfdfe5,null));};exports['webhookPost']=function(_0x39d6ec,_0x334969,_0x354d58){return BPromise[_0x635b('0x97')]()[_0x635b('0x26')](function(){if(!_0x39d6ec[_0x635b('0x38')][_0x635b('0x8')]){throw new Error(_0x635b('0xa2'));}if(!_0x39d6ec[_0x635b('0x38')][_0x635b('0x98')]){throw new Error(_0x635b('0xa3'));}var _0x472f16=_0x39d6ec[_0x635b('0x38')][_0x635b('0x99')]?_0x39d6ec['query'][_0x635b('0x99')]+':'+_0x39d6ec[_0x635b('0x38')][_0x635b('0x98')]:_0x635b('0xa4')+_0x39d6ec[_0x635b('0x38')][_0x635b('0x98')];var _0x13c6e2=_0x39d6ec[_0x635b('0x38')][_0x635b('0x1d')]?_0x39d6ec[_0x635b('0x38')]['json']:!![];var _0x162674=_0x39d6ec[_0x635b('0x38')]['encoding']?_0x39d6ec[_0x635b('0x38')]['encoding']:null;var _0x3334d4={'method':_0x39d6ec[_0x635b('0x9b')],'uri':util[_0x635b('0x4b')](_0x635b('0xa5'),_0x472f16,_0x39d6ec[_0x635b('0x38')][_0x635b('0x8')]),'json':_0x13c6e2,'resolveWithFullResponse':!![],'encoding':_0x162674,'body':_0x39d6ec[_0x635b('0x8b')]};if(_0x39d6ec[_0x635b('0x9c')]){_0x3334d4[_0x635b('0x9c')]=_0x39d6ec[_0x635b('0x9c')];if(_0x3334d4[_0x635b('0x9c')][_0x635b('0x9d')]){delete _0x3334d4[_0x635b('0x9c')][_0x635b('0x9d')];}}if(_0x3334d4[_0x635b('0x9c')][_0x635b('0x9e')]){delete _0x3334d4[_0x635b('0x9c')][_0x635b('0x9e')];}return rp(_0x3334d4);})['then'](function(_0x4b2416){if(_0x4b2416){_0x334969[_0x635b('0x9f')](_0x4b2416[_0x635b('0x9c')]);logger[_0x635b('0x61')](_0x4b2416[_0x635b('0x8b')]);return _0x334969[_0x635b('0x1b')](_0x4b2416[_0x635b('0xa1')])['send'](_0x4b2416[_0x635b('0x8b')]);}else{return _0x334969[_0x635b('0x2a')](0xc8);}})[_0x635b('0x44')](handleError(_0x334969,null));};
\ No newline at end of file
+var _0x7e0f=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','./plugin.socket','register','status','end','json','offset','undefined','limit','count','set','apply','save','update','then','destroy','Plugins','UserProfileResource','error','stack','name','send','index','map','Plugin','rawAttributes','fieldName','key','keys','filters','intersection','model','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','options','find','download','root','server/files/plugins','%s.zip','basename','createWriteStream','zip','warning','code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','**/*','join','dirname','node_modules/**/*','finalize','close','Plugin\x20not\x20found','format','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','file','filename','Plugin\x20upload\x20destination:\x20%s','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','readdirSync','manifest.json','Plugin\x20manifest\x20missing','readFileSync','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','views','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','description','sidebar','icon','icon-apps','html','test','plugins','Warning:\x20agent\x20view\x20not\x20specified','script','create','body','role','userProfileId','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','%s%s','headers','content-length','content-type','endsWith','sendStatus','statusCode','webhookPost','resolve','eml-format','zip-dir','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','papaparse','extract-zip','rimraf','archiver','../../components/auth/service','../../components/parsers/qs'];(function(_0x520ec9,_0x3d28a8){var _0x3b282a=function(_0x3b1366){while(--_0x3b1366){_0x520ec9['push'](_0x520ec9['shift']());}};_0x3b282a(++_0x3d28a8);}(_0x7e0f,0x1e2));var _0xf7e0=function(_0x34638e,_0xa6e8d4){_0x34638e=_0x34638e-0x0;var _0x200d1c=_0x7e0f[_0x34638e];return _0x200d1c;};'use strict';var emlformat=require(_0xf7e0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf7e0('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xf7e0('0x2'));var Mustache=require(_0xf7e0('0x3'));var util=require(_0xf7e0('0x4'));var path=require(_0xf7e0('0x5'));var sox=require(_0xf7e0('0x6'));var csv=require(_0xf7e0('0x7'));var ejs=require(_0xf7e0('0x8'));var fs=require('fs');var fs_extra=require(_0xf7e0('0x9'));var _=require('lodash');var squel=require(_0xf7e0('0xa'));var crypto=require(_0xf7e0('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xf7e0('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xf7e0('0xd'));var extract=require(_0xf7e0('0xe'));var rimraf=require(_0xf7e0('0xf'));var archiver=require(_0xf7e0('0x10'));var Redis=require('ioredis');var authService=require(_0xf7e0('0x11'));var qs=require(_0xf7e0('0x12'));var as=require(_0xf7e0('0x13'));var hardwareService=require(_0xf7e0('0x14'));var logger=require(_0xf7e0('0x15'))(_0xf7e0('0x16'));var utils=require(_0xf7e0('0x17'));var config=require(_0xf7e0('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xf7e0('0x19'))['db'];config[_0xf7e0('0x1a')]=_[_0xf7e0('0x1b')](config[_0xf7e0('0x1a')],{'host':_0xf7e0('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xf7e0('0x1a')]));require(_0xf7e0('0x1d'))[_0xf7e0('0x1e')](socket);function respondWithStatusCode(_0x1b690d,_0xfd642b){_0xfd642b=_0xfd642b||0xcc;return function(_0x3eead1){if(_0x3eead1){return _0x1b690d['sendStatus'](_0xfd642b);}return _0x1b690d[_0xf7e0('0x1f')](_0xfd642b)[_0xf7e0('0x20')]();};}function respondWithResult(_0x10ad91,_0x160781){_0x160781=_0x160781||0xc8;return function(_0x24b136){if(_0x24b136){return _0x10ad91[_0xf7e0('0x1f')](_0x160781)[_0xf7e0('0x21')](_0x24b136);}};}function respondWithFilteredResult(_0x338d18,_0x454665){return function(_0x39c712){if(_0x39c712){var _0x5db5b7=typeof _0x454665[_0xf7e0('0x22')]===_0xf7e0('0x23')&&typeof _0x454665[_0xf7e0('0x24')]===_0xf7e0('0x23');var _0x317f34=_0x39c712['count'];var _0x445784=_0x5db5b7?0x0:_0x454665[_0xf7e0('0x22')];var _0x329f3=_0x5db5b7?_0x39c712[_0xf7e0('0x25')]:_0x454665[_0xf7e0('0x22')]+_0x454665[_0xf7e0('0x24')];var _0x59e3da;if(_0x329f3>=_0x317f34){_0x329f3=_0x317f34;_0x59e3da=0xc8;}else{_0x59e3da=0xce;}_0x338d18[_0xf7e0('0x1f')](_0x59e3da);return _0x338d18[_0xf7e0('0x26')]('Content-Range',_0x445784+'-'+_0x329f3+'/'+_0x317f34)[_0xf7e0('0x21')](_0x39c712);}return null;};}function patchUpdates(_0x25ebe8){return function(_0x534825){try{jsonpatch[_0xf7e0('0x27')](_0x534825,_0x25ebe8,!![]);}catch(_0x2264cf){return BPromise['reject'](_0x2264cf);}return _0x534825[_0xf7e0('0x28')]();};}function saveUpdates(_0x2e0123,_0x339573){return function(_0x3f1c15){if(_0x3f1c15){return _0x3f1c15[_0xf7e0('0x29')](_0x2e0123)[_0xf7e0('0x2a')](function(_0x28d302){return _0x28d302;});}return null;};}function removeEntity(_0xacf244,_0x254eb9){return function(_0x3521f3){if(_0x3521f3){return _0x3521f3[_0xf7e0('0x2b')]()[_0xf7e0('0x2a')](function(){var _0x3c3b43=_0x3521f3['get']({'plain':!![]});var _0x3c5345=_0xf7e0('0x2c');return db[_0xf7e0('0x2d')][_0xf7e0('0x2b')]({'where':{'type':_0x3c5345,'resourceId':_0x3c3b43['id']}})[_0xf7e0('0x2a')](function(){return _0x3521f3;});})[_0xf7e0('0x2a')](function(){_0xacf244[_0xf7e0('0x1f')](0xcc)[_0xf7e0('0x20')]();});}};}function handleEntityNotFound(_0x4dfbee,_0x3f3850){return function(_0x58900d){if(!_0x58900d){_0x4dfbee['sendStatus'](0x194);}return _0x58900d;};}function handleError(_0x82bd91,_0x4dea6){_0x4dea6=_0x4dea6||0x1f4;return function(_0x5a6ea5){logger[_0xf7e0('0x2e')](_0x5a6ea5[_0xf7e0('0x2f')]);if(_0x5a6ea5['name']){delete _0x5a6ea5[_0xf7e0('0x30')];}_0x82bd91['status'](_0x4dea6)[_0xf7e0('0x31')](_0x5a6ea5);};}exports[_0xf7e0('0x32')]=function(_0x3a8d0c,_0x3e170e){var _0x5e58b7={},_0x187b7a={},_0x1fe93f={'count':0x0,'rows':[]};var _0x519922=_[_0xf7e0('0x33')](db[_0xf7e0('0x34')][_0xf7e0('0x35')],function(_0x37326a){return{'name':_0x37326a[_0xf7e0('0x36')],'type':_0x37326a['type'][_0xf7e0('0x37')]};});_0x187b7a['model']=_['map'](_0x519922,_0xf7e0('0x30'));_0x187b7a['query']=_[_0xf7e0('0x38')](_0x3a8d0c['query']);_0x187b7a[_0xf7e0('0x39')]=_[_0xf7e0('0x3a')](_0x187b7a[_0xf7e0('0x3b')],_0x187b7a[_0xf7e0('0x3c')]);_0x5e58b7[_0xf7e0('0x3d')]=_['intersection'](_0x187b7a[_0xf7e0('0x3b')],qs[_0xf7e0('0x3e')](_0x3a8d0c['query'][_0xf7e0('0x3e')]));_0x5e58b7['attributes']=_0x5e58b7[_0xf7e0('0x3d')][_0xf7e0('0x3f')]?_0x5e58b7[_0xf7e0('0x3d')]:_0x187b7a[_0xf7e0('0x3b')];if(!_0x3a8d0c[_0xf7e0('0x3c')][_0xf7e0('0x40')](_0xf7e0('0x41'))){_0x5e58b7['limit']=qs[_0xf7e0('0x24')](_0x3a8d0c[_0xf7e0('0x3c')][_0xf7e0('0x24')]);_0x5e58b7[_0xf7e0('0x22')]=qs[_0xf7e0('0x22')](_0x3a8d0c['query'][_0xf7e0('0x22')]);}_0x5e58b7[_0xf7e0('0x42')]=qs['sort'](_0x3a8d0c[_0xf7e0('0x3c')][_0xf7e0('0x43')]);_0x5e58b7[_0xf7e0('0x44')]=qs[_0xf7e0('0x39')](_[_0xf7e0('0x45')](_0x3a8d0c['query'],_0x187b7a['filters']),_0x519922);if(_0x3a8d0c[_0xf7e0('0x3c')][_0xf7e0('0x46')]){_0x5e58b7['where']=_['merge'](_0x5e58b7['where'],{'$or':_['map'](_0x519922,function(_0x4a1aeb){if(_0x4a1aeb[_0xf7e0('0x47')]!==_0xf7e0('0x48')){var _0x337e19={};_0x337e19[_0x4a1aeb['name']]={'$like':'%'+_0x3a8d0c['query'][_0xf7e0('0x46')]+'%'};return _0x337e19;}})});}_0x5e58b7=_['merge']({},_0x5e58b7,_0x3a8d0c['options']);var _0x824dfb={'where':_0x5e58b7['where']};return db[_0xf7e0('0x34')][_0xf7e0('0x25')](_0x824dfb)[_0xf7e0('0x2a')](function(_0x593153){_0x1fe93f[_0xf7e0('0x25')]=_0x593153;if(_0x3a8d0c[_0xf7e0('0x3c')][_0xf7e0('0x49')]){_0x5e58b7[_0xf7e0('0x4a')]=[{'all':!![]}];}return db[_0xf7e0('0x34')][_0xf7e0('0x4b')](_0x5e58b7);})['then'](function(_0x2e9079){_0x1fe93f[_0xf7e0('0x4c')]=_0x2e9079;return _0x1fe93f;})[_0xf7e0('0x2a')](respondWithFilteredResult(_0x3e170e,_0x5e58b7))[_0xf7e0('0x4d')](handleError(_0x3e170e,null));};exports[_0xf7e0('0x4e')]=function(_0x38f86b,_0x18c1e7){var _0x785750={'raw':!![],'where':{'id':_0x38f86b[_0xf7e0('0x4f')]['id']}},_0x243d9c={};_0x243d9c[_0xf7e0('0x3b')]=_[_0xf7e0('0x38')](db['Plugin'][_0xf7e0('0x35')]);_0x243d9c[_0xf7e0('0x3c')]=_[_0xf7e0('0x38')](_0x38f86b[_0xf7e0('0x3c')]);_0x243d9c[_0xf7e0('0x39')]=_[_0xf7e0('0x3a')](_0x243d9c[_0xf7e0('0x3b')],_0x243d9c[_0xf7e0('0x3c')]);_0x785750[_0xf7e0('0x3d')]=_['intersection'](_0x243d9c[_0xf7e0('0x3b')],qs[_0xf7e0('0x3e')](_0x38f86b[_0xf7e0('0x3c')]['fields']));_0x785750[_0xf7e0('0x3d')]=_0x785750[_0xf7e0('0x3d')][_0xf7e0('0x3f')]?_0x785750[_0xf7e0('0x3d')]:_0x243d9c['model'];if(_0x38f86b[_0xf7e0('0x3c')][_0xf7e0('0x49')]){_0x785750[_0xf7e0('0x4a')]=[{'all':!![]}];}_0x785750=_['merge']({},_0x785750,_0x38f86b[_0xf7e0('0x50')]);return db['Plugin'][_0xf7e0('0x51')](_0x785750)[_0xf7e0('0x2a')](handleEntityNotFound(_0x18c1e7,null))[_0xf7e0('0x2a')](respondWithResult(_0x18c1e7,null))[_0xf7e0('0x4d')](handleError(_0x18c1e7,null));};exports[_0xf7e0('0x52')]=function(_0x2c1a85,_0x4941aa,_0x54f66c){return db[_0xf7e0('0x34')][_0xf7e0('0x51')]({'where':{'id':_0x2c1a85[_0xf7e0('0x4f')]['id']},'attributes':[_0xf7e0('0x30'),'path'],'raw':!![]})[_0xf7e0('0x2a')](handleEntityNotFound(_0x4941aa,null))[_0xf7e0('0x2a')](function(_0x519dd3){if(_0x519dd3){var _0xd4fb20=path['join'](config[_0xf7e0('0x53')],_0xf7e0('0x54'),util['format'](_0xf7e0('0x55'),path[_0xf7e0('0x56')](_0x519dd3[_0xf7e0('0x5')])));var _0x3cd0ee=fs[_0xf7e0('0x57')](_0xd4fb20);var _0x580447=archiver(_0xf7e0('0x58'),{'zlib':{'level':0x9}});_0x580447['on'](_0xf7e0('0x59'),function(_0x3caa73){if(_0x3caa73[_0xf7e0('0x5a')]===_0xf7e0('0x5b')){logger['error'](_0x3caa73);}else{throw new db[(_0xf7e0('0x5c'))][(_0xf7e0('0x5d'))](_0xf7e0('0x5e'));}});_0x580447['on']('error',function(_0x58f996){throw new db[(_0xf7e0('0x5c'))][(_0xf7e0('0x5d'))](_0xf7e0('0x5e'));});_0x580447[_0xf7e0('0x5f')](_0x3cd0ee);_0x580447['glob'](_0xf7e0('0x60'),{'cwd':path[_0xf7e0('0x61')](config[_0xf7e0('0x53')],_0xf7e0('0x54'),path[_0xf7e0('0x62')](_0x519dd3[_0xf7e0('0x5')])),'ignore':[path[_0xf7e0('0x61')](path['basename'](_0x519dd3[_0xf7e0('0x5')]),_0xf7e0('0x63')),path[_0xf7e0('0x61')](path[_0xf7e0('0x56')](_0x519dd3[_0xf7e0('0x5')]),'attachments/**/*')],'nodir':!![]})[_0xf7e0('0x64')]();_0x3cd0ee['on'](_0xf7e0('0x65'),function(){if(!fs['existsSync'](_0xd4fb20)){throw new db['Sequelize'][(_0xf7e0('0x5d'))](_0xf7e0('0x66'));}return _0x4941aa['download'](_0xd4fb20,util[_0xf7e0('0x67')](_0xf7e0('0x55'),path[_0xf7e0('0x56')](_0x519dd3['path'])),function(_0x116eea){if(_0x116eea){throw new db[(_0xf7e0('0x5c'))][(_0xf7e0('0x5d'))](_0xf7e0('0x68'));}fs[_0xf7e0('0x69')](_0xd4fb20);logger[_0xf7e0('0x6a')](_0xf7e0('0x6b'));logger['info'](_0xf7e0('0x6c'));});});}return null;})[_0xf7e0('0x4d')](handleError(_0x4941aa,null));};exports['upload']=function(_0x3779ff,_0x2d8f6e,_0x5d5f45){var _0x38b0e9=path[_0xf7e0('0x56')](_0x3779ff[_0xf7e0('0x6d')][_0xf7e0('0x6e')],path['extname'](_0x3779ff[_0xf7e0('0x6d')][_0xf7e0('0x6e')]));var _0x24d138=path[_0xf7e0('0x61')](config[_0xf7e0('0x53')],_0xf7e0('0x54'),_0x3779ff['file'][_0xf7e0('0x6e')]);var _0x4255e4=path[_0xf7e0('0x61')](config[_0xf7e0('0x53')],_0xf7e0('0x54'),_0x38b0e9);logger[_0xf7e0('0x6a')]('Plugin\x20upload\x20filepath:\x20%s',_0x24d138);logger[_0xf7e0('0x6a')](_0xf7e0('0x6f'),_0x4255e4);try{fs['chmodSync'](_0x24d138,parseInt('0777',0x8));extract(_0x24d138,{'dir':_0x4255e4},function(_0x5b9c23){if(_0x5b9c23){logger[_0xf7e0('0x2e')](_0x5b9c23);handleError(_0x5b9c23,!![]);};var _0x500993=fs['readdirSync'](_0x4255e4);if(_0x500993[_0xf7e0('0x3f')]>0x1){removeReferences(_0x24d138,_0x4255e4);logger[_0xf7e0('0x2e')](_0xf7e0('0x70'));return _0x5d5f45(new Error(_0xf7e0('0x70')));}var _0x3a3e40=fs[_0xf7e0('0x71')](path[_0xf7e0('0x61')](_0x4255e4,_0x500993[0x0]));if(_0x3a3e40[_0xf7e0('0x72')]()){removeReferences(_0x24d138,_0x4255e4);logger[_0xf7e0('0x2e')]('Invalid\x20plugin\x20structure');return _0x5d5f45(new Error('Invalid\x20plugin\x20structure'));}if(_0x3a3e40[_0xf7e0('0x73')]()){var _0x3576bd=fs[_0xf7e0('0x74')](path[_0xf7e0('0x61')](_0x4255e4,_0x500993[0x0]));if(_0x3576bd[_0xf7e0('0x3f')]===0x0){removeReferences(_0x24d138,_0x4255e4);logger[_0xf7e0('0x2e')](_0xf7e0('0x70'));return _0x5d5f45(new Error('Invalid\x20plugin\x20structure'));}var _0x3ac2ff=_0x3576bd['some'](function(_0x469d64){return _0x469d64===_0xf7e0('0x75');});if(!_0x3ac2ff){return _0x5d5f45(new Error(_0xf7e0('0x76')));}var _0x29bc13=fs[_0xf7e0('0x77')](path[_0xf7e0('0x61')](_0x4255e4,_0x500993[0x0],_0xf7e0('0x75')));var _0x5ad314=JSON[_0xf7e0('0x78')](_0x29bc13);if(_0xf7e0('0x23')==typeof _0x5ad314['name']){return _0x5d5f45(new Error(_0xf7e0('0x79')));}if(_0xf7e0('0x23')==typeof _0x5ad314[_0xf7e0('0x47')]){return _0x5d5f45(new Error(_0xf7e0('0x7a')));}if('undefined'==typeof _0x5ad314[_0xf7e0('0x7b')]){return _0x5d5f45(new Error(_0xf7e0('0x7c')));}if(_0xf7e0('0x23')==typeof _0x5ad314[_0xf7e0('0x7d')]){return _0x5d5f45(new Error('Invalid\x20manifest:\x20parameters\x20missing'));}if(_0x5ad314[_0xf7e0('0x47')]==='html'){if(_0xf7e0('0x23')==typeof _0x5ad314[_0xf7e0('0x7d')]['views']){return _0x5d5f45(new Error('Invalid\x20manifest:\x20views\x20missing'));}if(_0xf7e0('0x23')==typeof _0x5ad314['parameters'][_0xf7e0('0x7e')][_0xf7e0('0x7f')]&&'undefined'==typeof _0x5ad314[_0xf7e0('0x7d')][_0xf7e0('0x7e')][_0xf7e0('0x80')]){return _0x5d5f45(new Error(_0xf7e0('0x81')));}}else if(_0x5ad314[_0xf7e0('0x47')]==='script'){if(_0xf7e0('0x23')==typeof _0x5ad314[_0xf7e0('0x7d')][_0xf7e0('0x82')]){return _0x5d5f45(new Error(_0xf7e0('0x83')));}if(_0xf7e0('0x23')==typeof _0x5ad314[_0xf7e0('0x7d')][_0xf7e0('0x84')]){return _0x5d5f45(new Error('Invalid\x20manifest:\x20script\x20path\x20missing'));}}else{return _0x5d5f45(new Error('Invalid\x20manifest:\x20invalid\x20type'));}var _0xa79f4e=_0x5ad314['name'];var _0x4d13b4=_0x5ad314[_0xf7e0('0x85')];var _0x3623c9=_0x5ad314[_0xf7e0('0x47')];var _0x5b523d=_0x5ad314[_0xf7e0('0x86')]?_0x5ad314[_0xf7e0('0x86')]:'always';var _0x58ed83=_0x5ad314[_0xf7e0('0x87')]?_0x5ad314[_0xf7e0('0x87')]:_0xf7e0('0x88');var _0x486ea0='';var _0x536bed='';var _0x3985f7='';var _0x3b1369='';var _0x8658b6=_0x5ad314[_0xf7e0('0x7b')];if(_0x3623c9===_0xf7e0('0x89')){if(_0xf7e0('0x23')!=typeof _0x5ad314[_0xf7e0('0x7d')][_0xf7e0('0x7e')][_0xf7e0('0x7f')]){var _0x419446=_0x5ad314['parameters'][_0xf7e0('0x7e')]['admin'];if(!/^(f|ht)tps?:\/\//i[_0xf7e0('0x8a')](_0x419446)){_0x486ea0=path[_0xf7e0('0x61')](_0xf7e0('0x8b'),_0x38b0e9,_0x500993[0x0],_0x419446);}else{_0x486ea0=_0x419446;}}else{logger[_0xf7e0('0x6a')]('Warning:\x20admin\x20view\x20not\x20specified');}if('undefined'!=typeof _0x5ad314[_0xf7e0('0x7d')][_0xf7e0('0x7e')][_0xf7e0('0x80')]){var _0x212a1f=_0x5ad314[_0xf7e0('0x7d')][_0xf7e0('0x7e')][_0xf7e0('0x80')];if(!/^(f|ht)tps?:\/\//i[_0xf7e0('0x8a')](_0x212a1f)){_0x536bed=path[_0xf7e0('0x61')](_0xf7e0('0x8b'),_0x38b0e9,_0x500993[0x0],_0x212a1f);}else{_0x536bed=_0x212a1f;}}else{logger[_0xf7e0('0x6a')](_0xf7e0('0x8c'));}}else if(_0x3623c9===_0xf7e0('0x8d')){_0x3985f7=_0x5ad314[_0xf7e0('0x7d')][_0xf7e0('0x82')];_0x3b1369=_0x5ad314[_0xf7e0('0x7d')][_0xf7e0('0x84')];if(_0xf7e0('0x23')!=typeof _0x5ad314[_0xf7e0('0x7d')]['views']){if(_0xf7e0('0x23')!=typeof _0x5ad314['parameters'][_0xf7e0('0x7e')][_0xf7e0('0x7f')]){var _0x419446=_0x5ad314[_0xf7e0('0x7d')][_0xf7e0('0x7e')][_0xf7e0('0x7f')];if(!/^(f|ht)tps?:\/\//i[_0xf7e0('0x8a')](_0x419446)){_0x486ea0=path['join']('plugins',_0x38b0e9,_0x500993[0x0],_0x419446);}else{_0x486ea0=_0x419446;}}if(_0xf7e0('0x23')!=typeof _0x5ad314[_0xf7e0('0x7d')][_0xf7e0('0x7e')][_0xf7e0('0x80')]){var _0x212a1f=_0x5ad314['parameters'][_0xf7e0('0x7e')][_0xf7e0('0x80')];if(!/^(f|ht)tps?:\/\//i[_0xf7e0('0x8a')](_0x212a1f)){_0x536bed=path['join'](_0xf7e0('0x8b'),_0x38b0e9,_0x500993[0x0],_0x212a1f);}else{_0x536bed=_0x212a1f;}}}}var _0x3a2238={'name':_0xa79f4e,'description':_0x4d13b4,'path':path[_0xf7e0('0x61')](_0x38b0e9,_0x500993[0x0]),'type':_0x3623c9,'sidebar':_0x5b523d,'icon':_0x58ed83,'adminUrl':_0x486ea0,'agentUrl':_0x536bed,'scriptName':_0x3985f7,'scriptPath':_0x3b1369,'version':_0x8658b6};removeReferences(_0x24d138,null);return db[_0xf7e0('0x34')][_0xf7e0('0x8e')](_0x3a2238)['then'](function(_0x8b6f89){var _0x3b7c40={'role':_0x3779ff[_0xf7e0('0x8f')][_0xf7e0('0x90')],'userProfileId':_0x3779ff[_0xf7e0('0x8f')][_0xf7e0('0x91')]};if(!_0x3b7c40)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3b7c40[_0xf7e0('0x90')]===_0xf7e0('0x92')){var _0x1c9929=_0x8b6f89['get']({'plain':!![]});return db[_0xf7e0('0x93')][_0xf7e0('0x51')]({'where':{'name':_0xf7e0('0x2c'),'userProfileId':_0x3b7c40[_0xf7e0('0x91')]},'raw':!![]})[_0xf7e0('0x2a')](function(_0x17ed23){if(_0x17ed23&&_0x17ed23[_0xf7e0('0x94')]===0x0){return db[_0xf7e0('0x2d')]['create']({'name':_0x1c9929[_0xf7e0('0x30')],'resourceId':_0x1c9929['id'],'type':_0x17ed23[_0xf7e0('0x30')],'sectionId':_0x17ed23['id']},{})[_0xf7e0('0x2a')](function(){return _0x8b6f89;});}else{return _0x8b6f89;}})[_0xf7e0('0x4d')](function(_0x4d0545){logger[_0xf7e0('0x2e')](_0xf7e0('0x95'),_0x4d0545);throw _0x4d0545;});}return _0x8b6f89;})[_0xf7e0('0x2a')](respondWithResult(_0x2d8f6e,null))[_0xf7e0('0x4d')](handleError(_0x2d8f6e,null));}});}catch(_0xfdb217){_0x2d8f6e[_0xf7e0('0x1f')](0x1f4)[_0xf7e0('0x31')](_0xfdb217);}};function removeReferences(_0x1f2e2f,_0x51f104){try{if(_0x1f2e2f){fs[_0xf7e0('0x69')](_0x1f2e2f);logger[_0xf7e0('0x6a')](_0xf7e0('0x96'));}if(_0x51f104){rimraf(_0x51f104,function(){});logger[_0xf7e0('0x6a')](_0xf7e0('0x97'));}}catch(_0x4c8891){logger[_0xf7e0('0x2e')](_0x4c8891);}}exports[_0xf7e0('0x29')]=function(_0xddf8d4,_0x109119,_0x3f09e2){return db['Plugin']['find']({'where':{'id':_0xddf8d4[_0xf7e0('0x4f')]['id']}})[_0xf7e0('0x2a')](handleEntityNotFound(_0x109119,null))[_0xf7e0('0x2a')](saveUpdates(_0xddf8d4['body'],null))[_0xf7e0('0x2a')](respondWithResult(_0x109119,null))[_0xf7e0('0x4d')](handleError(_0x109119,null));};exports['delete']=function(_0x25ab03,_0x3f1b6d,_0x2cf1c9){return db[_0xf7e0('0x34')][_0xf7e0('0x51')]({'where':{'id':_0x25ab03[_0xf7e0('0x4f')]['id']}})['then'](function(_0x5baf56){if(_0x5baf56){return _0x5baf56[_0xf7e0('0x2b')]();}})[_0xf7e0('0x2a')](function(_0x1c414c){rimraf(path[_0xf7e0('0x61')](config[_0xf7e0('0x53')],_0xf7e0('0x54'),path['dirname'](_0x1c414c[_0xf7e0('0x5')])),function(){});return _0x1c414c;})[_0xf7e0('0x2a')](handleEntityNotFound(_0x3f1b6d,null))[_0xf7e0('0x2a')](respondWithStatusCode(_0x3f1b6d,null))[_0xf7e0('0x4d')](handleError(_0x3f1b6d,null));};exports['webhookGet']=function(_0x2385be,_0x3b6d16,_0x47d71c){return BPromise['resolve']()[_0xf7e0('0x2a')](function(){if(!_0x2385be[_0xf7e0('0x3c')][_0xf7e0('0x5')]){throw new Error(_0xf7e0('0x98'));}if(!_0x2385be[_0xf7e0('0x3c')][_0xf7e0('0x99')]){throw new Error(_0xf7e0('0x9a'));}var _0x41906e=_0x2385be['query'][_0xf7e0('0x9b')]?_0x2385be['query'][_0xf7e0('0x9b')]+':'+_0x2385be[_0xf7e0('0x3c')][_0xf7e0('0x99')]:_0xf7e0('0x9c')+_0x2385be[_0xf7e0('0x3c')][_0xf7e0('0x99')];var _0x49b571=_0x2385be['query'][_0xf7e0('0x21')]?_0x2385be[_0xf7e0('0x3c')][_0xf7e0('0x21')]:!![];var _0x5d6a8f=_0x2385be[_0xf7e0('0x3c')][_0xf7e0('0x9d')]?_0x2385be['query'][_0xf7e0('0x9d')]:null;var _0x5370d2={'method':_0x2385be['method'],'uri':util['format'](_0xf7e0('0x9e'),_0x41906e,_0x2385be[_0xf7e0('0x3c')]['path']),'json':_0x49b571,'resolveWithFullResponse':!![],'encoding':_0x5d6a8f,'qs':_0x2385be[_0xf7e0('0x3c')]};if(_0x2385be['headers']){_0x5370d2[_0xf7e0('0x9f')]=_0x2385be[_0xf7e0('0x9f')];if(_0x5370d2[_0xf7e0('0x9f')][_0xf7e0('0xa0')]){delete _0x5370d2['headers']['content-length'];}}if(_0x5370d2[_0xf7e0('0x9f')][_0xf7e0('0xa1')]){delete _0x5370d2[_0xf7e0('0x9f')][_0xf7e0('0xa1')];}return rp(_0x5370d2);})[_0xf7e0('0x2a')](function(_0x5aba1c){if(_0x5aba1c){_0x3b6d16[_0xf7e0('0x26')](_0x5aba1c[_0xf7e0('0x9f')]);logger['info'](_0x5aba1c['body']);if(_[_0xf7e0('0xa2')](_0x2385be[_0xf7e0('0x3c')]['path'],'download')&&_0x5aba1c['statusCode']==0x1f4){return _0x3b6d16[_0xf7e0('0xa3')](_0x5aba1c[_0xf7e0('0xa4')]);}else{return _0x3b6d16[_0xf7e0('0x1f')](_0x5aba1c[_0xf7e0('0xa4')])['send'](_0x5aba1c['body']);}}else{return _0x3b6d16[_0xf7e0('0xa3')](0xc8);}})[_0xf7e0('0x4d')](handleError(_0x3b6d16,null));};exports[_0xf7e0('0xa5')]=function(_0xd697c6,_0xaed770,_0x438a9e){return BPromise[_0xf7e0('0xa6')]()[_0xf7e0('0x2a')](function(){if(!_0xd697c6[_0xf7e0('0x3c')]['path']){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0xd697c6[_0xf7e0('0x3c')]['port']){throw new Error(_0xf7e0('0x9a'));}var _0x401dc8=_0xd697c6[_0xf7e0('0x3c')][_0xf7e0('0x9b')]?_0xd697c6[_0xf7e0('0x3c')]['hostname']+':'+_0xd697c6[_0xf7e0('0x3c')][_0xf7e0('0x99')]:_0xf7e0('0x9c')+_0xd697c6[_0xf7e0('0x3c')][_0xf7e0('0x99')];var _0x1062c2=_0xd697c6['query'][_0xf7e0('0x21')]?_0xd697c6[_0xf7e0('0x3c')][_0xf7e0('0x21')]:!![];var _0xd2e0a1=_0xd697c6[_0xf7e0('0x3c')]['encoding']?_0xd697c6[_0xf7e0('0x3c')][_0xf7e0('0x9d')]:null;var _0x1cf12a={'method':_0xd697c6['method'],'uri':util['format'](_0xf7e0('0x9e'),_0x401dc8,_0xd697c6[_0xf7e0('0x3c')][_0xf7e0('0x5')]),'json':_0x1062c2,'resolveWithFullResponse':!![],'encoding':_0xd2e0a1,'body':_0xd697c6[_0xf7e0('0x8f')]};if(_0xd697c6[_0xf7e0('0x9f')]){_0x1cf12a[_0xf7e0('0x9f')]=_0xd697c6[_0xf7e0('0x9f')];if(_0x1cf12a[_0xf7e0('0x9f')]['content-length']){delete _0x1cf12a[_0xf7e0('0x9f')]['content-length'];}}if(_0x1cf12a[_0xf7e0('0x9f')][_0xf7e0('0xa1')]){delete _0x1cf12a['headers'][_0xf7e0('0xa1')];}return rp(_0x1cf12a);})[_0xf7e0('0x2a')](function(_0x352fd0){if(_0x352fd0){_0xaed770[_0xf7e0('0x26')](_0x352fd0[_0xf7e0('0x9f')]);logger[_0xf7e0('0x6a')](_0x352fd0[_0xf7e0('0x8f')]);return _0xaed770['status'](_0x352fd0[_0xf7e0('0xa4')])[_0xf7e0('0x31')](_0x352fd0[_0xf7e0('0x8f')]);}else{return _0xaed770[_0xf7e0('0xa3')](0xc8);}})[_0xf7e0('0x4d')](handleError(_0xaed770,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2eb2=['remove','emit','hasOwnProperty','hook','exports','../../mysqldb','Plugin','setMaxListeners','save','update'];(function(_0x3d42d8,_0x4cffaa){var _0x27fc41=function(_0x3a363b){while(--_0x3a363b){_0x3d42d8['push'](_0x3d42d8['shift']());}};_0x27fc41(++_0x4cffaa);}(_0x2eb2,0x19f));var _0x22eb=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x2eb2[_0xbca1b1];return _0x4e1686;};'use strict';var EventEmitter=require('events');var Plugin=require(_0x22eb('0x0'))['db'][_0x22eb('0x1')];var PluginEvents=new EventEmitter();PluginEvents[_0x22eb('0x2')](0x0);var events={'afterCreate':_0x22eb('0x3'),'afterUpdate':_0x22eb('0x4'),'afterDestroy':_0x22eb('0x5')};function emitEvent(_0x545a45){return function(_0x27732f,_0x4efe67,_0x591824){PluginEvents[_0x22eb('0x6')](_0x545a45+':'+_0x27732f['id'],_0x27732f);PluginEvents[_0x22eb('0x6')](_0x545a45,_0x27732f);_0x591824(null);};}for(var e in events){if(events[_0x22eb('0x7')](e)){var event=events[e];Plugin[_0x22eb('0x8')](e,emitEvent(event));}}module[_0x22eb('0x9')]=PluginEvents;
\ No newline at end of file
+var _0x1354=['../../mysqldb','Plugin','setMaxListeners','save','update','remove','emit','hasOwnProperty','exports','events'];(function(_0x2980eb,_0x4ff0d9){var _0x30efab=function(_0x32cc59){while(--_0x32cc59){_0x2980eb['push'](_0x2980eb['shift']());}};_0x30efab(++_0x4ff0d9);}(_0x1354,0x95));var _0x4135=function(_0x4854d6,_0x2f1264){_0x4854d6=_0x4854d6-0x0;var _0x3885c0=_0x1354[_0x4854d6];return _0x3885c0;};'use strict';var EventEmitter=require(_0x4135('0x0'));var Plugin=require(_0x4135('0x1'))['db'][_0x4135('0x2')];var PluginEvents=new EventEmitter();PluginEvents[_0x4135('0x3')](0x0);var events={'afterCreate':_0x4135('0x4'),'afterUpdate':_0x4135('0x5'),'afterDestroy':_0x4135('0x6')};function emitEvent(_0x537b00){return function(_0x2c75a3,_0x4ed434,_0x202042){PluginEvents['emit'](_0x537b00+':'+_0x2c75a3['id'],_0x2c75a3);PluginEvents[_0x4135('0x7')](_0x537b00,_0x2c75a3);_0x202042(null);};}for(var e in events){if(events[_0x4135('0x8')](e)){var event=events[e];Plugin['hook'](e,emitEvent(event));}}module[_0x4135('0x9')]=PluginEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a3f=['../../config/environment','exports','define','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0xd29892,_0x2b67b9){var _0x293dfd=function(_0x22f177){while(--_0x22f177){_0xd29892['push'](_0xd29892['shift']());}};_0x293dfd(++_0x2b67b9);}(_0x4a3f,0x1b0));var _0xf4a3=function(_0x3425f9,_0x2358ca){_0x3425f9=_0x3425f9-0x0;var _0x814f39=_0x4a3f[_0x3425f9];return _0x814f39;};'use strict';var _=require('lodash');var util=require(_0xf4a3('0x0'));var logger=require(_0xf4a3('0x1'))(_0xf4a3('0x2'));var moment=require(_0xf4a3('0x3'));var BPromise=require(_0xf4a3('0x4'));var rp=require(_0xf4a3('0x5'));var fs=require('fs');var path=require(_0xf4a3('0x6'));var rimraf=require(_0xf4a3('0x7'));var config=require(_0xf4a3('0x8'));var attributes=require('./plugin.attributes');module[_0xf4a3('0x9')]=function(_0x4c8568,_0x5685e4){return _0x4c8568[_0xf4a3('0xa')]('Plugin',attributes,{'tableName':'plugins','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xcb9f=['exports','Plugin','lodash','util','api','bluebird','request-promise','path','rimraf','../../config/environment','./plugin.attributes'];(function(_0x4492af,_0x47e25d){var _0x216729=function(_0x4964c8){while(--_0x4964c8){_0x4492af['push'](_0x4492af['shift']());}};_0x216729(++_0x47e25d);}(_0xcb9f,0x65));var _0xfcb9=function(_0x4b2522,_0x3ea320){_0x4b2522=_0x4b2522-0x0;var _0x535bc2=_0xcb9f[_0x4b2522];return _0x535bc2;};'use strict';var _=require(_0xfcb9('0x0'));var util=require(_0xfcb9('0x1'));var logger=require('../../config/logger')(_0xfcb9('0x2'));var moment=require('moment');var BPromise=require(_0xfcb9('0x3'));var rp=require(_0xfcb9('0x4'));var fs=require('fs');var path=require(_0xfcb9('0x5'));var rimraf=require(_0xfcb9('0x6'));var config=require(_0xfcb9('0x7'));var attributes=require(_0xfcb9('0x8'));module[_0xfcb9('0x9')]=function(_0x50a2b9,_0x4e613e){return _0x50a2b9['define'](_0xfcb9('0xa'),attributes,{'tableName':'plugins','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe0d6=['request','then','info','Plugin,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result','catch','Plugin','body','options','CreatePlugin','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','client','http','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register'];(function(_0x2a5077,_0x1c1b94){var _0x3b4c64=function(_0x159612){while(--_0x159612){_0x2a5077['push'](_0x2a5077['shift']());}};_0x3b4c64(++_0x1c1b94);}(_0xe0d6,0x18f));var _0x6e0d=function(_0x3ec102,_0xe5b897){_0x3ec102=_0x3ec102-0x0;var _0x5b0cad=_0xe0d6[_0x3ec102];return _0x5b0cad;};'use strict';var _=require(_0x6e0d('0x0'));var util=require(_0x6e0d('0x1'));var moment=require(_0x6e0d('0x2'));var BPromise=require(_0x6e0d('0x3'));var rs=require(_0x6e0d('0x4'));var fs=require('fs');var Redis=require(_0x6e0d('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x6e0d('0x6'));var logger=require(_0x6e0d('0x7'))(_0x6e0d('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x6e0d('0x9')][_0x6e0d('0xa')]({'port':0x232a});config[_0x6e0d('0xb')]=_[_0x6e0d('0xc')](config['redis'],{'host':_0x6e0d('0xd'),'port':0x18eb});var socket=require(_0x6e0d('0xe'))(new Redis(config['redis']));require(_0x6e0d('0xf'))[_0x6e0d('0x10')](socket);function respondWithRpcPromise(_0x1ac9c5,_0x2593cd,_0x42db8c){return new BPromise(function(_0x3bb7c1,_0x2ca6e4){return client[_0x6e0d('0x11')](_0x1ac9c5,_0x42db8c)[_0x6e0d('0x12')](function(_0xedf1b2){logger[_0x6e0d('0x13')](_0x6e0d('0x14'),_0x2593cd,_0x6e0d('0x15'));logger['debug']('Plugin,\x20%s,\x20%s,\x20%s',_0x2593cd,_0x6e0d('0x15'),JSON[_0x6e0d('0x16')](_0xedf1b2));if(_0xedf1b2['error']){if(_0xedf1b2['error'][_0x6e0d('0x17')]===0x1f4){logger[_0x6e0d('0x18')]('Plugin,\x20%s,\x20%s',_0x2593cd,_0xedf1b2[_0x6e0d('0x18')][_0x6e0d('0x19')]);return _0x2ca6e4(_0xedf1b2[_0x6e0d('0x18')][_0x6e0d('0x19')]);}logger[_0x6e0d('0x18')](_0x6e0d('0x14'),_0x2593cd,_0xedf1b2[_0x6e0d('0x18')][_0x6e0d('0x19')]);return _0x3bb7c1(_0xedf1b2[_0x6e0d('0x18')][_0x6e0d('0x19')]);}else{logger[_0x6e0d('0x13')](_0x6e0d('0x14'),_0x2593cd,_0x6e0d('0x15'));_0x3bb7c1(_0xedf1b2[_0x6e0d('0x1a')][_0x6e0d('0x19')]);}})[_0x6e0d('0x1b')](function(_0x40bce3){logger[_0x6e0d('0x18')]('Plugin,\x20%s,\x20%s',_0x2593cd,_0x40bce3);_0x2ca6e4(_0x40bce3);});});}exports['CreatePlugin']=function(_0x49cd0e){var _0xe0bcd0=this;return new Promise(function(_0x5bfb44,_0x3f60a1){return db[_0x6e0d('0x1c')]['create'](_0x49cd0e[_0x6e0d('0x1d')],{'raw':_0x49cd0e[_0x6e0d('0x1e')]?_0x49cd0e[_0x6e0d('0x1e')]['raw']===undefined?!![]:![]:!![]})[_0x6e0d('0x12')](function(_0x3745c7){logger[_0x6e0d('0x13')](_0x6e0d('0x1f'),_0x49cd0e);logger['debug']('CreatePlugin',_0x49cd0e,JSON['stringify'](_0x3745c7));_0x5bfb44(_0x3745c7);})[_0x6e0d('0x1b')](function(_0x21c229){logger['error'](_0x6e0d('0x1f'),_0x21c229[_0x6e0d('0x19')],_0x49cd0e);_0x3f60a1(_0xe0bcd0['error'](0x1f4,_0x21c229['message']));});});};
\ No newline at end of file
+var _0xe793=['raw','debug','lodash','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','register','request','then','info','Plugin,\x20%s,\x20%s','request\x20sent','Plugin,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','CreatePlugin','Plugin','create','options'];(function(_0x4b7895,_0x3c4f5d){var _0x264180=function(_0xe0e861){while(--_0xe0e861){_0x4b7895['push'](_0x4b7895['shift']());}};_0x264180(++_0x3c4f5d);}(_0xe793,0x176));var _0x3e79=function(_0x431897,_0x57f0f3){_0x431897=_0x431897-0x0;var _0x2a30cd=_0xe793[_0x431897];return _0x2a30cd;};'use strict';var _=require(_0x3e79('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x3e79('0x1'));var rs=require(_0x3e79('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3e79('0x3'))['db'];var utils=require(_0x3e79('0x4'));var logger=require(_0x3e79('0x5'))('rpc');var config=require(_0x3e79('0x6'));var jayson=require(_0x3e79('0x7'));var client=jayson[_0x3e79('0x8')][_0x3e79('0x9')]({'port':0x232a});config[_0x3e79('0xa')]=_[_0x3e79('0xb')](config[_0x3e79('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x3e79('0xc'))(new Redis(config['redis']));require('./plugin.socket')[_0x3e79('0xd')](socket);function respondWithRpcPromise(_0x3281c4,_0x5cdd9e,_0xd7c1f){return new BPromise(function(_0x33e9ff,_0x43c6f2){return client[_0x3e79('0xe')](_0x3281c4,_0xd7c1f)[_0x3e79('0xf')](function(_0x390589){logger[_0x3e79('0x10')](_0x3e79('0x11'),_0x5cdd9e,_0x3e79('0x12'));logger['debug'](_0x3e79('0x13'),_0x5cdd9e,'request\x20sent',JSON[_0x3e79('0x14')](_0x390589));if(_0x390589[_0x3e79('0x15')]){if(_0x390589[_0x3e79('0x15')]['code']===0x1f4){logger['error'](_0x3e79('0x11'),_0x5cdd9e,_0x390589['error'][_0x3e79('0x16')]);return _0x43c6f2(_0x390589['error'][_0x3e79('0x16')]);}logger[_0x3e79('0x15')]('Plugin,\x20%s,\x20%s',_0x5cdd9e,_0x390589[_0x3e79('0x15')][_0x3e79('0x16')]);return _0x33e9ff(_0x390589[_0x3e79('0x15')]['message']);}else{logger['info'](_0x3e79('0x11'),_0x5cdd9e,_0x3e79('0x12'));_0x33e9ff(_0x390589[_0x3e79('0x17')]['message']);}})[_0x3e79('0x18')](function(_0x1d50a4){logger[_0x3e79('0x15')](_0x3e79('0x11'),_0x5cdd9e,_0x1d50a4);_0x43c6f2(_0x1d50a4);});});}exports[_0x3e79('0x19')]=function(_0x170795){var _0x57125d=this;return new Promise(function(_0x592410,_0x37ba4c){return db[_0x3e79('0x1a')][_0x3e79('0x1b')](_0x170795['body'],{'raw':_0x170795[_0x3e79('0x1c')]?_0x170795[_0x3e79('0x1c')][_0x3e79('0x1d')]===undefined?!![]:![]:!![]})[_0x3e79('0xf')](function(_0x24ba30){logger[_0x3e79('0x10')]('CreatePlugin',_0x170795);logger[_0x3e79('0x1e')]('CreatePlugin',_0x170795,JSON[_0x3e79('0x14')](_0x24ba30));_0x592410(_0x24ba30);})[_0x3e79('0x18')](function(_0x20ab86){logger[_0x3e79('0x15')]('CreatePlugin',_0x20ab86[_0x3e79('0x16')],_0x170795);_0x37ba4c(_0x57125d['error'](0x1f4,_0x20ab86[_0x3e79('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5191=['register','length','plugin:','save','remove','update','emit','removeListener'];(function(_0x4c34d8,_0x383073){var _0x4c21df=function(_0x36150e){while(--_0x36150e){_0x4c34d8['push'](_0x4c34d8['shift']());}};_0x4c21df(++_0x383073);}(_0x5191,0x15b));var _0x1519=function(_0x5d4b72,_0x206c9d){_0x5d4b72=_0x5d4b72-0x0;var _0x5c331b=_0x5191[_0x5d4b72];return _0x5c331b;};'use strict';var PluginEvents=require('./plugin.events');var events=[_0x1519('0x0'),_0x1519('0x1'),_0x1519('0x2')];function createListener(_0x55a766,_0x1b2181){return function(_0x3d563c){_0x1b2181[_0x1519('0x3')](_0x55a766,_0x3d563c);};}function removeListener(_0x1ad575,_0x420051){return function(){PluginEvents[_0x1519('0x4')](_0x1ad575,_0x420051);};}exports[_0x1519('0x5')]=function(_0x1fd37a){for(var _0x1fc70f=0x0,_0x4fbdfb=events[_0x1519('0x6')];_0x1fc70f<_0x4fbdfb;_0x1fc70f++){var _0x51174f=events[_0x1fc70f];var _0x3fa5f8=createListener(_0x1519('0x7')+_0x51174f,_0x1fd37a);PluginEvents['on'](_0x51174f,_0x3fa5f8);}};
\ No newline at end of file
+var _0x35fa=['remove','emit','removeListener','register','length','save'];(function(_0x359723,_0x39ab0a){var _0x1e7a4e=function(_0x164052){while(--_0x164052){_0x359723['push'](_0x359723['shift']());}};_0x1e7a4e(++_0x39ab0a);}(_0x35fa,0x1c7));var _0xa35f=function(_0x4bc591,_0x30c1d6){_0x4bc591=_0x4bc591-0x0;var _0xc0d2c1=_0x35fa[_0x4bc591];return _0xc0d2c1;};'use strict';var PluginEvents=require('./plugin.events');var events=[_0xa35f('0x0'),_0xa35f('0x1'),'update'];function createListener(_0x44033a,_0xd47d77){return function(_0x511e19){_0xd47d77[_0xa35f('0x2')](_0x44033a,_0x511e19);};}function removeListener(_0x6e8de2,_0x45b772){return function(){PluginEvents[_0xa35f('0x3')](_0x6e8de2,_0x45b772);};}exports[_0xa35f('0x4')]=function(_0x1d3e6b){for(var _0x344f73=0x0,_0x4780af=events[_0xa35f('0x5')];_0x344f73<_0x4780af;_0x344f73++){var _0x2e2dc8=events[_0x344f73];var _0x1b700d=createListener('plugin:'+_0x2e2dc8,_0x1d3e6b);PluginEvents['on'](_0x2e2dc8,_0x1b700d);}};
\ 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(_0x27472b,_0x1e5ca1){var _0x249243=function(_0x5b304f){while(--_0x5b304f){_0x27472b['push'](_0x27472b['shift']());}};_0x249243(++_0x1e5ca1);}(_0xa9e0,0x123));var _0x0a9e=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xa9e0[_0x173d7e];return _0x2220d6;};'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(_0x46e2b2,_0x2e639b){var _0x1e9641=function(_0x4a2f0f){while(--_0x4a2f0f){_0x46e2b2['push'](_0x46e2b2['shift']());}};_0x1e9641(++_0x2e639b);}(_0xa9e0,0x123));var _0x0a9e=function(_0x411add,_0x1aed38){_0x411add=_0x411add-0x0;var _0x238242=_0xa9e0[_0x411add];return _0x238242;};'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 _0x0fd9=['error','index','list','reject','express','then','catch','describe','create','body','script','join','../../files/plugins','cwd','chdir','dirname','start','dump','update','hasOwnProperty','Unknown\x20status','params','Unknown\x20id','../../config/pm2','../../config/logger','api','path','bluebird','sendStatus','status','stack','name','send','npm\x20install','info'];(function(_0x135b32,_0x44cabe){var _0x43cb3d=function(_0x3364cf){while(--_0x3364cf){_0x135b32['push'](_0x135b32['shift']());}};_0x43cb3d(++_0x44cabe);}(_0x0fd9,0xa3));var _0x90fd=function(_0x6dfbaa,_0x31eede){_0x6dfbaa=_0x6dfbaa-0x0;var _0xfbe02=_0x0fd9[_0x6dfbaa];return _0xfbe02;};'use strict';var _=require('lodash');var pm2=require(_0x90fd('0x0'));var logger=require(_0x90fd('0x1'))(_0x90fd('0x2'));var path=require(_0x90fd('0x3'));var exec=require('child_process')['exec'];var BPromise=require(_0x90fd('0x4'));function handleEntityNotFound(_0x2a5f76,_0xb7cf6){return function(_0x37a8be){if(!_0x37a8be){_0x2a5f76[_0x90fd('0x5')](0x194);;}return _0x37a8be;};}function respondWithResult(_0x23e11b,_0x5e2107){_0x5e2107=_0x5e2107||0xc8;return function(_0x4ff2d4){if(_0x4ff2d4){return _0x23e11b[_0x90fd('0x6')](_0x5e2107)['json'](_0x4ff2d4);}return null;};}function handleError(_0x5a604a,_0x2acef7){_0x2acef7=_0x2acef7||0x1f4;return function(_0x1becf2){logger['error'](_0x1becf2[_0x90fd('0x7')]);if(_0x1becf2[_0x90fd('0x8')]){delete _0x1becf2[_0x90fd('0x8')];}_0x5a604a[_0x90fd('0x6')](_0x2acef7)[_0x90fd('0x9')](_0x1becf2);};}function execChildProcess(){return new BPromise(function(_0x3be346,_0x2aae77){exec(_0x90fd('0xa'),function(_0x3c541e,_0x48943e,_0x23c417){logger[_0x90fd('0xb')](_0x48943e);logger['info'](_0x23c417);if(_0x3c541e){logger[_0x90fd('0xc')](_0x3c541e);return _0x2aae77(_0x3c541e);}return _0x3be346(_0x48943e);});});}exports[_0x90fd('0xd')]=function(_0x19a594,_0x5f28ab){return pm2[_0x90fd('0xe')]()['then'](function(_0x1cae40){if(_0x1cae40){var _0xb402d9=_[_0x90fd('0xf')](_0x1cae40,function(_0x1b3f3b){return _0x1b3f3b[_0x90fd('0x8')]===_0x90fd('0x10')||_0x1b3f3b[_0x90fd('0x8')]==='motion2';});return{'rows':_0xb402d9,'count':_0xb402d9['length']};}return null;})[_0x90fd('0x11')](respondWithResult(_0x5f28ab,null))[_0x90fd('0x12')](handleError(_0x5f28ab,null));};exports['show']=function(_0x130489,_0x13a694){return pm2[_0x90fd('0x13')](_0x130489['params']['id'])[_0x90fd('0x11')](respondWithResult(_0x13a694,null))[_0x90fd('0x11')](handleEntityNotFound(_0x13a694,null))[_0x90fd('0x12')](handleError(_0x13a694,null));};exports[_0x90fd('0x14')]=function(_0x251957,_0x58866f){if(_0x251957[_0x90fd('0x15')][_0x90fd('0x8')]&&_0x251957[_0x90fd('0x15')][_0x90fd('0x16')]){var _0x19e79b=path[_0x90fd('0x17')](__dirname,_0x90fd('0x18'),_0x251957[_0x90fd('0x15')][_0x90fd('0x16')]);var _0x493c26=process[_0x90fd('0x19')]();process[_0x90fd('0x1a')](path[_0x90fd('0x1b')](_0x19e79b));return execChildProcess()[_0x90fd('0x11')](function(_0x411a6a){process[_0x90fd('0x1a')](_0x493c26);return pm2[_0x90fd('0x1c')]({'name':_0x251957[_0x90fd('0x15')]['name'],'script':_0x19e79b});})[_0x90fd('0x11')](function(_0x52b066){pm2[_0x90fd('0x1d')]();return _0x52b066[0x0];})[_0x90fd('0x11')](respondWithResult(_0x58866f,0xc9))[_0x90fd('0x12')](handleError(_0x58866f,null));}else{return _0x58866f[_0x90fd('0x6')](0x1f4)[_0x90fd('0x9')]({'message':'Missing\x20name\x20and/or\x20path'});}};exports[_0x90fd('0x1e')]=function(_0xe333f0,_0x2fffe6){if(_0xe333f0[_0x90fd('0x15')]['id']){delete _0xe333f0[_0x90fd('0x15')]['id'];}var _0x428bc2={'online':'restart','stopped':'stop'};if(_0x428bc2[_0x90fd('0x1f')](_0xe333f0[_0x90fd('0x15')][_0x90fd('0x6')])){return pm2[_0x428bc2[_0xe333f0[_0x90fd('0x15')][_0x90fd('0x6')]]](_0xe333f0['params']['id'])['then'](respondWithResult(_0x2fffe6,0xc8))[_0x90fd('0x12')](handleError(_0x2fffe6,null));}else{return _0x2fffe6[_0x90fd('0x6')](0x1f4)[_0x90fd('0x9')]({'message':_0x90fd('0x20')});}};exports['destroy']=function(_0x59aede,_0x12dea4){if(_0x59aede[_0x90fd('0x15')]['id']){delete _0x59aede[_0x90fd('0x15')]['id'];}if(_0x59aede[_0x90fd('0x21')]['id']){return pm2['delete'](_0x59aede[_0x90fd('0x21')]['id'])[_0x90fd('0x11')](function(_0x7fb8bc){pm2[_0x90fd('0x1d')]();return _0x7fb8bc[0x0];})[_0x90fd('0x11')](respondWithResult(_0x12dea4,null))[_0x90fd('0x12')](handleError(_0x12dea4,null));}else{return _0x12dea4[_0x90fd('0x6')](0x1f4)[_0x90fd('0x9')]({'message':_0x90fd('0x22')});}};
\ No newline at end of file
+var _0xc6d8=['Unknown\x20status','destroy','delete','dump','Unknown\x20id','lodash','../../config/logger','path','exec','sendStatus','status','stack','name','send','npm\x20install','info','error','index','list','then','reject','length','show','describe','create','body','join','cwd','chdir','start','Missing\x20name\x20and/or\x20path','update','hasOwnProperty','params','catch'];(function(_0x51bda1,_0x44f80d){var _0x1ce08c=function(_0x5b788e){while(--_0x5b788e){_0x51bda1['push'](_0x51bda1['shift']());}};_0x1ce08c(++_0x44f80d);}(_0xc6d8,0xd7));var _0x8c6d=function(_0x8935ce,_0x3621c3){_0x8935ce=_0x8935ce-0x0;var _0x1a422f=_0xc6d8[_0x8935ce];return _0x1a422f;};'use strict';var _=require(_0x8c6d('0x0'));var pm2=require('../../config/pm2');var logger=require(_0x8c6d('0x1'))('api');var path=require(_0x8c6d('0x2'));var exec=require('child_process')[_0x8c6d('0x3')];var BPromise=require('bluebird');function handleEntityNotFound(_0x5b6b04,_0x352b8c){return function(_0xdff6f){if(!_0xdff6f){_0x5b6b04[_0x8c6d('0x4')](0x194);;}return _0xdff6f;};}function respondWithResult(_0x4f5e8f,_0x3c265c){_0x3c265c=_0x3c265c||0xc8;return function(_0x2dbb52){if(_0x2dbb52){return _0x4f5e8f[_0x8c6d('0x5')](_0x3c265c)['json'](_0x2dbb52);}return null;};}function handleError(_0x1496ba,_0x75c49f){_0x75c49f=_0x75c49f||0x1f4;return function(_0x16d4b2){logger['error'](_0x16d4b2[_0x8c6d('0x6')]);if(_0x16d4b2[_0x8c6d('0x7')]){delete _0x16d4b2[_0x8c6d('0x7')];}_0x1496ba[_0x8c6d('0x5')](_0x75c49f)[_0x8c6d('0x8')](_0x16d4b2);};}function execChildProcess(){return new BPromise(function(_0x43a7ab,_0x60cd5c){exec(_0x8c6d('0x9'),function(_0x50af75,_0x36d6fb,_0x559d17){logger['info'](_0x36d6fb);logger[_0x8c6d('0xa')](_0x559d17);if(_0x50af75){logger[_0x8c6d('0xb')](_0x50af75);return _0x60cd5c(_0x50af75);}return _0x43a7ab(_0x36d6fb);});});}exports[_0x8c6d('0xc')]=function(_0x8ec2d4,_0x30ecfa){return pm2[_0x8c6d('0xd')]()[_0x8c6d('0xe')](function(_0x103699){if(_0x103699){var _0x14c1ee=_[_0x8c6d('0xf')](_0x103699,function(_0x4fb956){return _0x4fb956[_0x8c6d('0x7')]==='express'||_0x4fb956[_0x8c6d('0x7')]==='motion2';});return{'rows':_0x14c1ee,'count':_0x14c1ee[_0x8c6d('0x10')]};}return null;})[_0x8c6d('0xe')](respondWithResult(_0x30ecfa,null))['catch'](handleError(_0x30ecfa,null));};exports[_0x8c6d('0x11')]=function(_0x2b8a26,_0x51a5fa){return pm2[_0x8c6d('0x12')](_0x2b8a26['params']['id'])['then'](respondWithResult(_0x51a5fa,null))[_0x8c6d('0xe')](handleEntityNotFound(_0x51a5fa,null))['catch'](handleError(_0x51a5fa,null));};exports[_0x8c6d('0x13')]=function(_0x174a4f,_0x1d0f0a){if(_0x174a4f[_0x8c6d('0x14')][_0x8c6d('0x7')]&&_0x174a4f['body']['script']){var _0x550079=path[_0x8c6d('0x15')](__dirname,'../../files/plugins',_0x174a4f[_0x8c6d('0x14')]['script']);var _0x4c378b=process[_0x8c6d('0x16')]();process[_0x8c6d('0x17')](path['dirname'](_0x550079));return execChildProcess()['then'](function(_0x51bb08){process['chdir'](_0x4c378b);return pm2[_0x8c6d('0x18')]({'name':_0x174a4f[_0x8c6d('0x14')][_0x8c6d('0x7')],'script':_0x550079});})['then'](function(_0x41c904){pm2['dump']();return _0x41c904[0x0];})[_0x8c6d('0xe')](respondWithResult(_0x1d0f0a,0xc9))['catch'](handleError(_0x1d0f0a,null));}else{return _0x1d0f0a[_0x8c6d('0x5')](0x1f4)[_0x8c6d('0x8')]({'message':_0x8c6d('0x19')});}};exports[_0x8c6d('0x1a')]=function(_0x1e6755,_0x3e3cd3){if(_0x1e6755[_0x8c6d('0x14')]['id']){delete _0x1e6755[_0x8c6d('0x14')]['id'];}var _0x3eab38={'online':'restart','stopped':'stop'};if(_0x3eab38[_0x8c6d('0x1b')](_0x1e6755[_0x8c6d('0x14')][_0x8c6d('0x5')])){return pm2[_0x3eab38[_0x1e6755[_0x8c6d('0x14')][_0x8c6d('0x5')]]](_0x1e6755[_0x8c6d('0x1c')]['id'])[_0x8c6d('0xe')](respondWithResult(_0x3e3cd3,0xc8))[_0x8c6d('0x1d')](handleError(_0x3e3cd3,null));}else{return _0x3e3cd3[_0x8c6d('0x5')](0x1f4)[_0x8c6d('0x8')]({'message':_0x8c6d('0x1e')});}};exports[_0x8c6d('0x1f')]=function(_0x4e5203,_0x3af625){if(_0x4e5203[_0x8c6d('0x14')]['id']){delete _0x4e5203[_0x8c6d('0x14')]['id'];}if(_0x4e5203[_0x8c6d('0x1c')]['id']){return pm2[_0x8c6d('0x20')](_0x4e5203[_0x8c6d('0x1c')]['id'])[_0x8c6d('0xe')](function(_0x1857f9){pm2[_0x8c6d('0x21')]();return _0x1857f9[0x0];})['then'](respondWithResult(_0x3af625,null))[_0x8c6d('0x1d')](handleError(_0x3af625,null));}else{return _0x3af625['status'](0x1f4)[_0x8c6d('0x8')]({'message':_0x8c6d('0x22')});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc48d=['getQueues','exports','express','Router','get','/queues','isAuthenticated'];(function(_0x52cbc6,_0x3a9e07){var _0x5b7ee5=function(_0x5caebb){while(--_0x5caebb){_0x52cbc6['push'](_0x52cbc6['shift']());}};_0x5b7ee5(++_0x3a9e07);}(_0xc48d,0x11a));var _0xdc48=function(_0x40bffc,_0x3a45d7){_0x40bffc=_0x40bffc-0x0;var _0x3007e9=_0xc48d[_0x40bffc];return _0x3007e9;};'use strict';var express=require(_0xdc48('0x0'));var router=express[_0xdc48('0x1')]();var auth=require('../../components/auth/service');var controller=require('./realtime.controller');router[_0xdc48('0x2')](_0xdc48('0x3'),auth[_0xdc48('0x4')](),controller[_0xdc48('0x5')]);module[_0xdc48('0x6')]=router;
\ No newline at end of file
+var _0xdf55=['./realtime.controller','get','isAuthenticated','getQueues','exports','express','Router'];(function(_0x235dad,_0x3ff419){var _0x5e73ef=function(_0x1afc6c){while(--_0x1afc6c){_0x235dad['push'](_0x235dad['shift']());}};_0x5e73ef(++_0x3ff419);}(_0xdf55,0x83));var _0x5df5=function(_0x32e9e9,_0x3df5aa){_0x32e9e9=_0x32e9e9-0x0;var _0x400b63=_0xdf55[_0x32e9e9];return _0x400b63;};'use strict';var express=require(_0x5df5('0x0'));var router=express[_0x5df5('0x1')]();var auth=require('../../components/auth/service');var controller=require(_0x5df5('0x2'));router[_0x5df5('0x3')]('/queues',auth[_0x5df5('0x4')](),controller[_0x5df5('0x5')]);module[_0x5df5('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a27=['toString','UserId','accountcode','online','voiceStatus','agents','User','Pause','findAll','QueueId','getQueues','mail','chat','openchannel','fax','whatsapp','resolve','query','channel','includes','toLowerCase','Invalid\x20channel','Queue','map','rawAttributes','key','getOptions','user','role','userProfileId','QueueCampaigns','type','UserProfile','findAndCountAll','rows','all','util','lodash','jayson/promise','../../components/parsers/qs','../../config/logger','../../mysqldb','client','undefined','limit','count','offset','set','Content-Range','json','error','stack','name','status','request','Agents','then','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)','result','merge','catch','voice','startCase','Queues','format','Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues','Unable\x20to\x20retrieve\x20voice\x20queues\x20channels','loggedIn','waiting','talking','paused','outbound','push','pTalking','originated','message','dialActive','dialMethod','Trunk','startPredictive','startProgressive','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialPredictiveInterval','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','loggedInDb','available','busy','find','filter','queue','length','connectedlinenum','internal'];(function(_0x19cd3f,_0x993e29){var _0x1c42d9=function(_0x320a0d){while(--_0x320a0d){_0x19cd3f['push'](_0x19cd3f['shift']());}};_0x1c42d9(++_0x993e29);}(_0x6a27,0xf4));var _0x76a2=function(_0x2e5c72,_0x393efa){_0x2e5c72=_0x2e5c72-0x0;var _0x17071f=_0x6a27[_0x2e5c72];return _0x17071f;};'use strict';var util=require(_0x76a2('0x0'));var _=require(_0x76a2('0x1'));var jayson=require(_0x76a2('0x2'));var qs=require(_0x76a2('0x3'));var logger=require(_0x76a2('0x4'))('api');var db=require(_0x76a2('0x5'))['db'];var amiClient=jayson[_0x76a2('0x6')]['http']({'port':0x232a});var routingClient=jayson['client']['http']({'port':0x232c});function respondWithFilteredResult(_0x5e84ed,_0x4a75dc){return function(_0x2b0d79){if(_0x2b0d79){var _0x21fb05=typeof _0x4a75dc['offset']===_0x76a2('0x7')&&typeof _0x4a75dc[_0x76a2('0x8')]===_0x76a2('0x7');var _0xc9c6d2=_0x2b0d79[_0x76a2('0x9')];var _0x591093=_0x21fb05?0x0:_0x4a75dc[_0x76a2('0xa')];var _0xbce672=_0x21fb05?_0x2b0d79[_0x76a2('0x9')]:_0x4a75dc[_0x76a2('0xa')]+_0x4a75dc[_0x76a2('0x8')];var _0x8e2bb1;if(_0xbce672>=_0xc9c6d2){_0xbce672=_0xc9c6d2;_0x8e2bb1=0xc8;}else{_0x8e2bb1=0xce;}_0x5e84ed['status'](_0x8e2bb1);return _0x5e84ed[_0x76a2('0xb')](_0x76a2('0xc'),_0x591093+'-'+_0xbce672+'/'+_0xc9c6d2)[_0x76a2('0xd')](_0x2b0d79);}return null;};}function handleError(_0x61286d,_0x22d055){_0x22d055=_0x22d055||0x1f4;return function(_0x5b868b){logger[_0x76a2('0xe')](_0x5b868b[_0x76a2('0xf')]);if(_0x5b868b[_0x76a2('0x10')]){delete _0x5b868b[_0x76a2('0x10')];}_0x61286d[_0x76a2('0x11')](_0x22d055)['send'](_0x5b868b);};}function getRealtimeAgents(){return new Promise(function(_0x2871e6,_0x138dcd){return amiClient[_0x76a2('0x12')](_0x76a2('0x13'),{})[_0x76a2('0x14')](function(_0x1ee2e7){if(_0x1ee2e7['error'])throw new Error(_0x76a2('0x15'));var _0x2a4a6f=_0x1ee2e7['result'];return routingClient[_0x76a2('0x12')](_0x76a2('0x13'),{})['then'](function(_0x305811){if(_0x305811[_0x76a2('0xe')])throw new Error(_0x76a2('0x16'));var _0x168acf=_0x305811[_0x76a2('0x17')];return _0x2871e6(_[_0x76a2('0x18')]({},_0x2a4a6f,_0x168acf));});})[_0x76a2('0x19')](function(_0x49afed){_0x138dcd(_0x49afed);});});}function getRealtimeQueues(_0x3fa010,_0x54a4ab){return new Promise(function(_0x35c4c0,_0xb34e20){var _0x2cda2e=_0x54a4ab===_0x76a2('0x1a')?amiClient:routingClient;return _0x2cda2e[_0x76a2('0x12')](_[_0x76a2('0x1b')](_0x54a4ab)+_0x76a2('0x1c'),_0x3fa010)[_0x76a2('0x14')](function(_0xd62ca9){if(_0xd62ca9['error'])throw new Error(util[_0x76a2('0x1d')](_0x76a2('0x1e'),_0x54a4ab));return _0x35c4c0(_0xd62ca9[_0x76a2('0x17')]);})['catch'](function(_0x3f6efb){_0xb34e20(_0x3f6efb);});});}function getRealtimeVoiceQueueChannels(){return new Promise(function(_0x4f8e96,_0x257310){return amiClient[_0x76a2('0x12')]('VoiceQueuesChannels',{})[_0x76a2('0x14')](function(_0x34105a){if(_0x34105a[_0x76a2('0xe')])throw new Error(_0x76a2('0x1f'));return _0x4f8e96(_0x34105a[_0x76a2('0x17')]);})['catch'](function(_0x4e0881){_0x257310(_0x4e0881);});});}function initializeQueues(_0x3b5a66,_0x4194d2,_0x4857b6,_0x225418){var _0x3d433c=[_0x76a2('0x20'),'available',_0x76a2('0x21'),_0x76a2('0x22'),_0x76a2('0x23')];if(_0x4857b6===_0x76a2('0x1a')&&_0x225418===_0x76a2('0x24')){_0x3d433c[_0x76a2('0x25')](_0x76a2('0x26'),_0x76a2('0x27'),_0x76a2('0x28'),_0x76a2('0x29'),_0x76a2('0x2a'),_0x76a2('0x2b'),_0x76a2('0x2c'),_0x76a2('0x2d'),_0x76a2('0x2e'),_0x76a2('0x2f'),_0x76a2('0x30'),_0x76a2('0x31'),_0x76a2('0x32'),_0x76a2('0x33'),_0x76a2('0x34'),'predictiveIntervalAvailable',_0x76a2('0x35'),_0x76a2('0x36'),_0x76a2('0x37'),_0x76a2('0x38'),_0x76a2('0x39'),_0x76a2('0x3a'));}return _0x3b5a66['map'](function(_0x164d05){var _0x1d3ce9=_0x164d05['get']({'plain':!![]});_0x1d3ce9['agents']=[];_0x1d3ce9[_0x76a2('0x23')]=0x0;_0x1d3ce9[_0x76a2('0x3b')]=0x0;_0x1d3ce9[_0x76a2('0x20')]=0x0;_0x1d3ce9[_0x76a2('0x3c')]=0x0;_0x1d3ce9['waiting']=0x0;if(_0x4857b6===_0x76a2('0x1a')){_0x1d3ce9[_0x76a2('0x22')]=0x0;_0x1d3ce9[_0x76a2('0x3d')]=0x0;if(_0x225418===_0x76a2('0x24')){_0x1d3ce9[_0x76a2('0x26')]=0x0;_0x1d3ce9[_0x76a2('0x27')]=0x0;}}var _0x353b0e=_[_0x76a2('0x3e')](_0x4194d2,['id',_0x1d3ce9['id']]);if(_0x353b0e)_[_0x76a2('0x18')](_0x1d3ce9,_['pick'](_0x353b0e,_0x3d433c));return _0x1d3ce9;});}function updateAgentVoiceStatus(_0x58550b,_0x5b8aa9,_0x121a4f){var _0x4cea0d=_[_0x76a2('0x3f')](_0x121a4f,[_0x76a2('0x40'),_0x5b8aa9[_0x76a2('0x10')]]);if(_0x4cea0d[_0x76a2('0x41')]===0x0)return _0x58550b[_0x76a2('0x3d')]=!![];if(_['some'](_0x4cea0d,[_0x76a2('0x42'),_0x58550b[_0x76a2('0x43')][_0x76a2('0x44')]()]))return _0x58550b[_0x76a2('0x22')]=!![];if(!_0x58550b[_0x76a2('0x22')])return _0x58550b[_0x76a2('0x3d')]=!![];}function getVoiceQueueAgents(_0x1d1d4a,_0x4afdfd,_0x19e3de,_0x3efaca){var _0x43781e=_[_0x76a2('0x3e')](_0x4afdfd,['id',_0x1d1d4a['id']]);if(!_0x43781e)return _0x1d1d4a;return _0x43781e['getMembers']({'raw':!![]})['then'](function(_0xb44741){for(var _0xb4cac4=0x0;_0xb4cac4<_0xb44741[_0x76a2('0x41')];_0xb4cac4++){var _0x20caa8=_['find'](_0x19e3de,['id',_0xb44741[_0xb4cac4][_0x76a2('0x45')]]);if(!_0x20caa8){_0x20caa8={'id':_0xb44741[_0xb4cac4][_0x76a2('0x45')],'name':_0xb44741[_0xb4cac4][_0x76a2('0x45')],'accountcode':'','online':![]};}var _0x5dd4f5={'id':_0x20caa8['id'],'name':_0x20caa8[_0x76a2('0x10')],'internal':_0x20caa8[_0x76a2('0x46')],'online':Boolean(_0x20caa8[_0x76a2('0x47')]),'paused':Boolean(_0xb44741[_0xb4cac4][_0x76a2('0x23')])};if(_0x20caa8[_0x76a2('0x48')]===_0x76a2('0x22'))updateAgentVoiceStatus(_0x5dd4f5,_0x1d1d4a,_0x3efaca);if(_0x5dd4f5[_0x76a2('0x47')])_0x1d1d4a[_0x76a2('0x3b')]++;if(_0x5dd4f5[_0x76a2('0x3d')])_0x1d1d4a[_0x76a2('0x3d')]++;if(_0x5dd4f5[_0x76a2('0x23')]&&!_0x5dd4f5[_0x76a2('0x3d')]&&!_0x5dd4f5['talking'])_0x1d1d4a['paused']++;_0x1d1d4a[_0x76a2('0x49')][_0x76a2('0x25')](_0x5dd4f5);}return _0x1d1d4a;});}function getQueueAgents(_0x7a771d,_0x28a5cb,_0x5c7359){var _0x1f970f=_0x76a2('0x4a')+_['startCase'](_0x5c7359)+'Queue';var _0x5382dd=_0x5c7359+_0x76a2('0x4b');return db[_0x1f970f][_0x76a2('0x4c')]({'where':{[_[_0x76a2('0x1b')](_0x5c7359)+_0x76a2('0x4d')]:_0x7a771d['id']},'raw':!![]})[_0x76a2('0x14')](function(_0x324d4d){for(var _0x39f9e8=0x0;_0x39f9e8<_0x324d4d[_0x76a2('0x41')];_0x39f9e8++){var _0x3ac1e4=_[_0x76a2('0x3e')](_0x28a5cb,['id',_0x324d4d[_0x39f9e8][_0x76a2('0x45')]]);if(!_0x3ac1e4){_0x3ac1e4={'id':_0x324d4d[_0x39f9e8][_0x76a2('0x45')],'name':_0x324d4d[_0x39f9e8]['UserId'],'online':![],['pauseField']:![]};}var _0x1cbcb3={'id':_0x3ac1e4['id'],'name':_0x3ac1e4[_0x76a2('0x10')],'online':Boolean(_0x3ac1e4['online']),'paused':Boolean(_0x3ac1e4[_0x5382dd])};if(_0x1cbcb3[_0x76a2('0x47')])_0x7a771d['loggedInDb']++;_0x7a771d['agents'][_0x76a2('0x25')](_0x1cbcb3);}return _0x7a771d;});}exports[_0x76a2('0x4e')]=function(_0x1ddc96,_0xa59953){var _0x157ff1=[_0x76a2('0x4f'),_0x76a2('0x50'),'sms',_0x76a2('0x51'),_0x76a2('0x52'),_0x76a2('0x53'),_0x76a2('0x1a')];var _0x19c867={'count':0x0,'rows':[]},_0x3938e1={},_0x522954,_0x1034a2,_0x105498,_0xc309cf,_0x591005;Promise[_0x76a2('0x54')]()[_0x76a2('0x14')](function(){if(_0x1ddc96[_0x76a2('0x55')][_0x76a2('0x56')]){if(!_[_0x76a2('0x57')](_0x157ff1,_0x1ddc96[_0x76a2('0x55')][_0x76a2('0x56')][_0x76a2('0x58')]()))throw new Error(_0x76a2('0x59'));_0x522954=_0x1ddc96[_0x76a2('0x55')][_0x76a2('0x56')][_0x76a2('0x58')]();}var _0x1c3151=_['startCase'](_0x522954)+_0x76a2('0x5a');var _0x4106d8=_[_0x76a2('0x5b')](db[_0x1c3151][_0x76a2('0x5c')],function(_0x5a1f7b){return{'name':_0x5a1f7b['fieldName'],'type':_0x5a1f7b['type'][_0x76a2('0x5d')]};});_0x3938e1=qs[_0x76a2('0x5e')](_0x4106d8,_0x1ddc96);if(_0x1ddc96[_0x76a2('0x5f')][_0x76a2('0x60')]===_0x76a2('0x5f')){var _0x4924eb={'params':{'id':_0x1ddc96['user'][_0x76a2('0x61')]},'query':{'section':_0x522954==='voice'&&_0x1ddc96[_0x76a2('0x55')]['type']===_0x76a2('0x24')?_0x76a2('0x62'):_[_0x76a2('0x1b')](_0x522954)+_0x76a2('0x1c'),'type':_0x1ddc96[_0x76a2('0x55')][_0x76a2('0x63')],'nolimit':!![],'sort':_0x76a2('0x10'),'filter':_0x1ddc96[_0x76a2('0x55')][_0x76a2('0x3f')]}};return db[_0x76a2('0x64')]['getResources'](_0x4924eb);}return db[_0x1c3151][_0x76a2('0x65')](_0x3938e1);})[_0x76a2('0x14')](function(_0x141605){_0x19c867['count']=_0x141605[_0x76a2('0x9')];_0x1034a2=_0x141605['rows'];return getRealtimeQueues(_0x1ddc96,_0x522954);})[_0x76a2('0x14')](function(_0x177ac7){_0xc309cf=_0x177ac7[_0x76a2('0x66')];return getRealtimeAgents();})[_0x76a2('0x14')](function(_0x3b697c){_0x105498=_0x3b697c[_0x76a2('0x66')];if(_0x522954!='voice')return;return getRealtimeVoiceQueueChannels();})[_0x76a2('0x14')](function(_0x1b2a4d){_0x591005=_0x1b2a4d?_0x1b2a4d['rows']:[];return initializeQueues(_0x1034a2,_0xc309cf,_0x522954,_0x1ddc96[_0x76a2('0x55')][_0x76a2('0x63')]);})[_0x76a2('0x14')](function(_0x5183c8){var _0x48f8bd=_0x5183c8[_0x76a2('0x5b')](function(_0x1900a4){if(_0x522954==='voice')return getVoiceQueueAgents(_0x1900a4,_0x1034a2,_0x105498,_0x591005);else return getQueueAgents(_0x1900a4,_0x105498,_0x522954);});return Promise[_0x76a2('0x67')](_0x48f8bd);})[_0x76a2('0x14')](function(_0xc51a9c){_0x19c867[_0x76a2('0x66')]=_0xc51a9c;return _0x19c867;})['then'](respondWithFilteredResult(_0xa59953,_0x3938e1))[_0x76a2('0x19')](handleError(_0xa59953,null));};
\ No newline at end of file
+var _0x3f8a=['channel','toLowerCase','startCase','Queue','map','rawAttributes','fieldName','key','user','role','userProfileId','type','outbound','Queues','filter','UserProfile','getResources','then','request','format','result','loggedIn','available','talking','paused','push','message','dialActive','Trunk','startProgressive','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','dialPredictiveInterval','dialPredictiveIntervalMinThreshold','predictiveIntervalTotalCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','rows','get','loggedInDb','waiting','pTalking','agents','find','merge','pick','online','length','UserId','User','Pause','findAll','catch','util','lodash','jayson/promise','../../components/parsers/qs','api','../../mysqldb','client','http','offset','undefined','limit','count','status','set','Content-Range','json','error','stack','name','getQueues','chat','sms','openchannel','fax','whatsapp','voice','resolve','query','includes'];(function(_0x296809,_0x1c9665){var _0x18c0d3=function(_0x249156){while(--_0x249156){_0x296809['push'](_0x296809['shift']());}};_0x18c0d3(++_0x1c9665);}(_0x3f8a,0x1d5));var _0xa3f8=function(_0x106178,_0x46938a){_0x106178=_0x106178-0x0;var _0x377709=_0x3f8a[_0x106178];return _0x377709;};'use strict';var util=require(_0xa3f8('0x0'));var _=require(_0xa3f8('0x1'));var jayson=require(_0xa3f8('0x2'));var qs=require(_0xa3f8('0x3'));var logger=require('../../config/logger')(_0xa3f8('0x4'));var db=require(_0xa3f8('0x5'))['db'];var client=jayson[_0xa3f8('0x6')][_0xa3f8('0x7')]({'port':0x232a});var routingClient=jayson[_0xa3f8('0x6')][_0xa3f8('0x7')]({'port':0x232c});function respondWithFilteredResult(_0x39d2e4,_0x471464){return function(_0x1f160a){if(_0x1f160a){var _0xf895d9=typeof _0x471464[_0xa3f8('0x8')]===_0xa3f8('0x9')&&typeof _0x471464[_0xa3f8('0xa')]===_0xa3f8('0x9');var _0x2c89bb=_0x1f160a[_0xa3f8('0xb')];var _0xcdb0d4=_0xf895d9?0x0:_0x471464['offset'];var _0x47496a=_0xf895d9?_0x1f160a[_0xa3f8('0xb')]:_0x471464[_0xa3f8('0x8')]+_0x471464[_0xa3f8('0xa')];var _0x53cf1f;if(_0x47496a>=_0x2c89bb){_0x47496a=_0x2c89bb;_0x53cf1f=0xc8;}else{_0x53cf1f=0xce;}_0x39d2e4[_0xa3f8('0xc')](_0x53cf1f);return _0x39d2e4[_0xa3f8('0xd')](_0xa3f8('0xe'),_0xcdb0d4+'-'+_0x47496a+'/'+_0x2c89bb)[_0xa3f8('0xf')](_0x1f160a);}return null;};}function handleError(_0xd97ac9,_0x2e71a0){_0x2e71a0=_0x2e71a0||0x1f4;return function(_0x1afd01){logger[_0xa3f8('0x10')](_0x1afd01[_0xa3f8('0x11')]);if(_0x1afd01[_0xa3f8('0x12')]){delete _0x1afd01[_0xa3f8('0x12')];}_0xd97ac9[_0xa3f8('0xc')](_0x2e71a0)['send'](_0x1afd01);};}exports[_0xa3f8('0x13')]=function(_0xe55848,_0x45014f){var _0x21a170=['mail',_0xa3f8('0x14'),_0xa3f8('0x15'),_0xa3f8('0x16'),_0xa3f8('0x17'),_0xa3f8('0x18'),_0xa3f8('0x19')];var _0x2f0659={'count':0x0,'rows':[]},_0x3e2e1c={},_0x2cb49f;Promise[_0xa3f8('0x1a')]()['then'](function(){if(_0xe55848[_0xa3f8('0x1b')]['channel']){if(!_[_0xa3f8('0x1c')](_0x21a170,_0xe55848[_0xa3f8('0x1b')][_0xa3f8('0x1d')][_0xa3f8('0x1e')]()))throw new Error('Invalid\x20channel');_0x2cb49f=_0xe55848[_0xa3f8('0x1b')]['channel'][_0xa3f8('0x1e')]();}var _0x58336d=_[_0xa3f8('0x1f')](_0x2cb49f)+_0xa3f8('0x20');var _0x353daa=_[_0xa3f8('0x21')](db[_0x58336d][_0xa3f8('0x22')],function(_0x1e5f30){return{'name':_0x1e5f30[_0xa3f8('0x23')],'type':_0x1e5f30['type'][_0xa3f8('0x24')]};});_0x3e2e1c=qs['getOptions'](_0x353daa,_0xe55848);if(_0xe55848[_0xa3f8('0x25')][_0xa3f8('0x26')]===_0xa3f8('0x25')){var _0x37b290={'params':{'id':_0xe55848[_0xa3f8('0x25')][_0xa3f8('0x27')]},'query':{'section':_0x2cb49f===_0xa3f8('0x19')&&_0xe55848[_0xa3f8('0x1b')][_0xa3f8('0x28')]===_0xa3f8('0x29')?'QueueCampaigns':_[_0xa3f8('0x1f')](_0x2cb49f)+_0xa3f8('0x2a'),'type':_0xe55848[_0xa3f8('0x1b')]['type'],'nolimit':!![],'sort':_0xa3f8('0x12'),'filter':_0xe55848['query'][_0xa3f8('0x2b')]}};return db[_0xa3f8('0x2c')][_0xa3f8('0x2d')](_0x37b290);}return db[_0x58336d]['findAndCountAll'](_0x3e2e1c);})[_0xa3f8('0x2e')](function(_0x5e69e2){_0x2f0659[_0xa3f8('0xb')]=_0x5e69e2[_0xa3f8('0xb')];var _0x226153=_0x2cb49f===_0xa3f8('0x19')?client:routingClient;return _0x226153[_0xa3f8('0x2f')](_[_0xa3f8('0x1f')](_0x2cb49f)+_0xa3f8('0x2a'),_0xe55848)[_0xa3f8('0x2e')](function(_0x25f9f5){if(_0x25f9f5[_0xa3f8('0x10')])throw new Error(util[_0xa3f8('0x30')]('Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues',_0x2cb49f));var _0x4404da=_0x25f9f5[_0xa3f8('0x31')];var _0xebc519=[_0xa3f8('0x32'),_0xa3f8('0x33'),'waiting',_0xa3f8('0x34'),_0xa3f8('0x35')];if(_0x2cb49f==='voice'&&_0xe55848[_0xa3f8('0x1b')][_0xa3f8('0x28')]==='outbound'){_0xebc519[_0xa3f8('0x36')]('pTalking','originated',_0xa3f8('0x37'),_0xa3f8('0x38'),'dialMethod',_0xa3f8('0x39'),'startPredictive',_0xa3f8('0x3a'),_0xa3f8('0x3b'),_0xa3f8('0x3c'),_0xa3f8('0x3d'),'erlangBusyFactor',_0xa3f8('0x3e'),'dialPredictiveIntervalMaxThreshold',_0xa3f8('0x3f'),'predictiveIntervalAvailable',_0xa3f8('0x40'),'predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit',_0xa3f8('0x41'),_0xa3f8('0x42'));}var _0x1acf4f=_0x5e69e2[_0xa3f8('0x43')]['map'](function(_0x447824){var _0x18b9bc=_0x447824[_0xa3f8('0x44')]({'plain':!![]});_0x18b9bc[_0xa3f8('0x35')]=0x0;_0x18b9bc[_0xa3f8('0x45')]=0x0;_0x18b9bc[_0xa3f8('0x32')]=0x0;_0x18b9bc['available']=0x0;_0x18b9bc[_0xa3f8('0x35')]=0x0;_0x18b9bc[_0xa3f8('0x46')]=0x0;if(_0x2cb49f===_0xa3f8('0x19')){_0x18b9bc['talking']=0x0;if(_0xe55848[_0xa3f8('0x1b')][_0xa3f8('0x28')]==='outbound'){_0x18b9bc[_0xa3f8('0x47')]=0x0;_0x18b9bc['originated']=0x0;}}_0x18b9bc[_0xa3f8('0x48')]=[];var _0x5a077c=_[_0xa3f8('0x49')](_0x4404da[_0xa3f8('0x43')],['id',_0x18b9bc['id']]);if(_0x5a077c)_[_0xa3f8('0x4a')](_0x18b9bc,_[_0xa3f8('0x4b')](_0x5a077c,_0xebc519));if(_0x2cb49f===_0xa3f8('0x19')){return _0x447824['getAgents']({'attributes':['id',_0xa3f8('0x12'),_0xa3f8('0x4c')],'joinTableAttributes':[],'raw':!![]})['then'](function(_0x27c938){return _0x447824['getMembers']({'raw':!![]})[_0xa3f8('0x2e')](function(_0xd3c65a){for(var _0x1542cc=0x0;_0x1542cc<_0x27c938[_0xa3f8('0x4d')];_0x1542cc++){var _0x357712=_['find'](_0xd3c65a,[_0xa3f8('0x4e'),_0x27c938[_0x1542cc]['id']]);var _0x2b17ff={'id':_0x27c938[_0x1542cc]['id'],'name':_0x27c938[_0x1542cc][_0xa3f8('0x12')],'online':Boolean(_0x27c938[_0x1542cc][_0xa3f8('0x4c')]),'paused':_0x357712?Boolean(_0x357712[_0xa3f8('0x35')]):![]};if(_0x2b17ff['online'])_0x18b9bc[_0xa3f8('0x45')]++;if(_0x2b17ff[_0xa3f8('0x35')])_0x18b9bc[_0xa3f8('0x35')]++;_0x18b9bc[_0xa3f8('0x48')][_0xa3f8('0x36')](_0x2b17ff);}return _0x18b9bc;});});}else{var _0x314dba=_0xa3f8('0x4f')+_[_0xa3f8('0x1f')](_0x2cb49f)+_0xa3f8('0x20');var _0x3bf454=_0x2cb49f+_0xa3f8('0x50');return db[_0x314dba][_0xa3f8('0x51')]({'where':{[_[_0xa3f8('0x1f')](_0x2cb49f)+'QueueId']:_0x447824['id']},'raw':!![]})['then'](function(_0x58ab27){return db[_0xa3f8('0x4f')][_0xa3f8('0x51')]({'attributes':['id',_0xa3f8('0x12'),_0xa3f8('0x4c'),_0x3bf454],'where':{'id':_[_0xa3f8('0x21')](_0x58ab27,_0xa3f8('0x4e')),'role':'agent'},'raw':!![]});})[_0xa3f8('0x2e')](function(_0x31dfe0){for(var _0x14f8e0=0x0;_0x14f8e0<_0x31dfe0[_0xa3f8('0x4d')];_0x14f8e0++){var _0x591e34={'id':_0x31dfe0[_0x14f8e0]['id'],'name':_0x31dfe0[_0x14f8e0][_0xa3f8('0x12')],'online':Boolean(_0x31dfe0[_0x14f8e0][_0xa3f8('0x4c')]),'paused':Boolean(_0x31dfe0[_0x14f8e0][_0x3bf454])};if(_0x591e34[_0xa3f8('0x4c')])_0x18b9bc['loggedInDb']++;if(_0x591e34['paused'])_0x18b9bc['paused']++;_0x18b9bc[_0xa3f8('0x48')][_0xa3f8('0x36')](_0x591e34);}return _0x18b9bc;});}});return Promise['all'](_0x1acf4f);});})[_0xa3f8('0x2e')](function(_0x1f7af7){_0x2f0659[_0xa3f8('0x43')]=_0x1f7af7;return _0x2f0659;})[_0xa3f8('0x2e')](respondWithFilteredResult(_0x45014f,_0x3e2e1c))[_0xa3f8('0x52')](handleError(_0x45014f,null));};
\ 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(_0xab65c0,_0xded5cc){var _0x57e755=function(_0x2b629e){while(--_0x2b629e){_0xab65c0['push'](_0xab65c0['shift']());}};_0x57e755(++_0xded5cc);}(_0xe706,0xa3));var _0x6e70=function(_0x5575c1,_0x11b31a){_0x5575c1=_0x5575c1-0x0;var _0x50ea4e=_0xe706[_0x5575c1];return _0x50ea4e;};'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 _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x95cb71,_0x4fd8ea){var _0x52bca2=function(_0x5c422c){while(--_0x5c422c){_0x95cb71['push'](_0x95cb71['shift']());}};_0x52bca2(++_0x4fd8ea);}(_0x70e0,0x17b));var _0x070e=function(_0x130b05,_0xbaa2ce){_0x130b05=_0x130b05-0x0;var _0x387c55=_0x70e0[_0x130b05];return _0x387c55;};'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 _0x975b=['STRING','DATE','sequelize','exports','INTEGER'];(function(_0x20c4c7,_0x289352){var _0x388d5b=function(_0x3b8e48){while(--_0x3b8e48){_0x20c4c7['push'](_0x20c4c7['shift']());}};_0x388d5b(++_0x289352);}(_0x975b,0x1c9));var _0xb975=function(_0xfc00da,_0x5d7d0e){_0xfc00da=_0xfc00da-0x0;var _0x3478f4=_0x975b[_0xfc00da];return _0x3478f4;};'use strict';var Sequelize=require(_0xb975('0x0'));module[_0xb975('0x1')]={'state':{'type':Sequelize[_0xb975('0x2')](0x2)},'statedesc':{'type':Sequelize[_0xb975('0x3')]},'scheduledat':{'type':Sequelize[_0xb975('0x4')]},'uniqueid':{'type':Sequelize[_0xb975('0x3')]},'starttime':{'type':Sequelize[_0xb975('0x4')]},'responsetime':{'type':Sequelize['DATE']},'ringtime':{'type':Sequelize[_0xb975('0x2')],'defaultValue':0x0},'campaign':{'type':Sequelize[_0xb975('0x3')]},'campaigntype':{'type':Sequelize[_0xb975('0x3')]},'membername':{'type':Sequelize[_0xb975('0x3')]}};
\ No newline at end of file
+var _0x2d78=['exports','INTEGER','DATE','STRING','sequelize'];(function(_0x2692fd,_0x42a642){var _0x3d01e2=function(_0x522c67){while(--_0x522c67){_0x2692fd['push'](_0x2692fd['shift']());}};_0x3d01e2(++_0x42a642);}(_0x2d78,0x199));var _0x82d7=function(_0x2132a3,_0x4639e9){_0x2132a3=_0x2132a3-0x0;var _0x21890c=_0x2d78[_0x2132a3];return _0x21890c;};'use strict';var Sequelize=require(_0x82d7('0x0'));module[_0x82d7('0x1')]={'state':{'type':Sequelize[_0x82d7('0x2')](0x2)},'statedesc':{'type':Sequelize['STRING']},'scheduledat':{'type':Sequelize[_0x82d7('0x3')]},'uniqueid':{'type':Sequelize[_0x82d7('0x4')]},'starttime':{'type':Sequelize[_0x82d7('0x3')]},'responsetime':{'type':Sequelize[_0x82d7('0x3')]},'ringtime':{'type':Sequelize[_0x82d7('0x2')],'defaultValue':0x0},'campaign':{'type':Sequelize[_0x82d7('0x4')]},'campaigntype':{'type':Sequelize[_0x82d7('0x4')]},'membername':{'type':Sequelize[_0x82d7('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd6a=['../../config/logger','api','moment','bluebird','path','rimraf','./reportAgentPreview.attributes','exports','util'];(function(_0x4a1b08,_0x1768d9){var _0xab432b=function(_0x39d238){while(--_0x39d238){_0x4a1b08['push'](_0x4a1b08['shift']());}};_0xab432b(++_0x1768d9);}(_0xdd6a,0xa1));var _0xadd6=function(_0x16d1b6,_0x5912db){_0x16d1b6=_0x16d1b6-0x0;var _0x2ca1f5=_0xdd6a[_0x16d1b6];return _0x2ca1f5;};'use strict';var _=require('lodash');var util=require(_0xadd6('0x0'));var logger=require(_0xadd6('0x1'))(_0xadd6('0x2'));var moment=require(_0xadd6('0x3'));var BPromise=require(_0xadd6('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xadd6('0x5'));var rimraf=require(_0xadd6('0x6'));var config=require('../../config/environment');var attributes=require(_0xadd6('0x7'));module[_0xadd6('0x8')]=function(_0x1753d9,_0x158f93){return _0x1753d9['define']('ReportAgentPreview',attributes,{'tableName':'report_agent_preview','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x94eb=['bluebird','request-promise','rimraf','exports','define','ReportAgentPreview','lodash','util','../../config/logger','moment'];(function(_0x4ca333,_0x1218a3){var _0x13b2e1=function(_0x1eaf45){while(--_0x1eaf45){_0x4ca333['push'](_0x4ca333['shift']());}};_0x13b2e1(++_0x1218a3);}(_0x94eb,0x114));var _0xb94e=function(_0x3fc6a1,_0x582719){_0x3fc6a1=_0x3fc6a1-0x0;var _0x26d08e=_0x94eb[_0x3fc6a1];return _0x26d08e;};'use strict';var _=require(_0xb94e('0x0'));var util=require(_0xb94e('0x1'));var logger=require(_0xb94e('0x2'))('api');var moment=require(_0xb94e('0x3'));var BPromise=require(_0xb94e('0x4'));var rp=require(_0xb94e('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xb94e('0x6'));var config=require('../../config/environment');var attributes=require('./reportAgentPreview.attributes');module[_0xb94e('0x7')]=function(_0x227b53,_0x152a80){return _0x227b53[_0xb94e('0x8')](_0xb94e('0x9'),attributes,{'tableName':'report_agent_preview','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6056=['info','request\x20sent','debug','ReportAgentPreview,\x20%s,\x20%s,\x20%s','stringify','error','code','message','ReportAgentPreview,\x20%s,\x20%s','result','catch','CreateReportAgentPreview','options','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','jayson/promise','client','request','then'];(function(_0x35447b,_0x512dd1){var _0x4462f8=function(_0x22239c){while(--_0x22239c){_0x35447b['push'](_0x35447b['shift']());}};_0x4462f8(++_0x512dd1);}(_0x6056,0xee));var _0x6605=function(_0x52587d,_0x265352){_0x52587d=_0x52587d-0x0;var _0x505c77=_0x6056[_0x52587d];return _0x505c77;};'use strict';var _=require(_0x6605('0x0'));var util=require(_0x6605('0x1'));var moment=require(_0x6605('0x2'));var BPromise=require(_0x6605('0x3'));var rs=require(_0x6605('0x4'));var fs=require('fs');var Redis=require(_0x6605('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x6605('0x6'));var logger=require(_0x6605('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x6605('0x8'));var client=jayson[_0x6605('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x312d1b,_0xcac544,_0x49b9bd){return new BPromise(function(_0x249a54,_0x172c9a){return client[_0x6605('0xa')](_0x312d1b,_0x49b9bd)[_0x6605('0xb')](function(_0x20defa){logger[_0x6605('0xc')]('ReportAgentPreview,\x20%s,\x20%s',_0xcac544,_0x6605('0xd'));logger[_0x6605('0xe')](_0x6605('0xf'),_0xcac544,_0x6605('0xd'),JSON[_0x6605('0x10')](_0x20defa));if(_0x20defa[_0x6605('0x11')]){if(_0x20defa['error'][_0x6605('0x12')]===0x1f4){logger[_0x6605('0x11')]('ReportAgentPreview,\x20%s,\x20%s',_0xcac544,_0x20defa[_0x6605('0x11')][_0x6605('0x13')]);return _0x172c9a(_0x20defa['error'][_0x6605('0x13')]);}logger[_0x6605('0x11')]('ReportAgentPreview,\x20%s,\x20%s',_0xcac544,_0x20defa[_0x6605('0x11')]['message']);return _0x249a54(_0x20defa[_0x6605('0x11')][_0x6605('0x13')]);}else{logger['info'](_0x6605('0x14'),_0xcac544,_0x6605('0xd'));_0x249a54(_0x20defa[_0x6605('0x15')]['message']);}})[_0x6605('0x16')](function(_0x437cbd){logger[_0x6605('0x11')](_0x6605('0x14'),_0xcac544,_0x437cbd);_0x172c9a(_0x437cbd);});});}exports[_0x6605('0x17')]=function(_0x5b4c08){var _0x42f1dd=this;return new Promise(function(_0x20032d,_0x11bd54){return db['ReportAgentPreview']['create'](_0x5b4c08['body'],{'raw':_0x5b4c08[_0x6605('0x18')]?_0x5b4c08[_0x6605('0x18')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x54dc7e){logger[_0x6605('0xc')](_0x6605('0x17'),_0x5b4c08);logger[_0x6605('0xe')]('CreateReportAgentPreview',_0x5b4c08,JSON[_0x6605('0x10')](_0x54dc7e));_0x20032d(_0x54dc7e);})[_0x6605('0x16')](function(_0x2bf9bb){logger[_0x6605('0x11')](_0x6605('0x17'),_0x2bf9bb[_0x6605('0x13')],_0x5b4c08);_0x11bd54(_0x42f1dd[_0x6605('0x11')](0x1f4,_0x2bf9bb[_0x6605('0x13')]));});});};
\ No newline at end of file
+var _0x7c80=['request','info','ReportAgentPreview,\x20%s,\x20%s','request\x20sent','debug','ReportAgentPreview,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','CreateReportAgentPreview','body','options','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http'];(function(_0x3df5d9,_0x576799){var _0x1f7c1c=function(_0x4fe64d){while(--_0x4fe64d){_0x3df5d9['push'](_0x3df5d9['shift']());}};_0x1f7c1c(++_0x576799);}(_0x7c80,0xb6));var _0x07c8=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7c80[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x07c8('0x0'));var util=require(_0x07c8('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x07c8('0x2'));var fs=require('fs');var Redis=require(_0x07c8('0x3'));var db=require(_0x07c8('0x4'))['db'];var utils=require(_0x07c8('0x5'));var logger=require(_0x07c8('0x6'))('rpc');var config=require(_0x07c8('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x07c8('0x8')][_0x07c8('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5e1db1,_0x254ebe,_0x141906){return new BPromise(function(_0xb84896,_0x485e7b){return client[_0x07c8('0xa')](_0x5e1db1,_0x141906)['then'](function(_0x550a7e){logger[_0x07c8('0xb')](_0x07c8('0xc'),_0x254ebe,_0x07c8('0xd'));logger[_0x07c8('0xe')](_0x07c8('0xf'),_0x254ebe,'request\x20sent',JSON[_0x07c8('0x10')](_0x550a7e));if(_0x550a7e[_0x07c8('0x11')]){if(_0x550a7e[_0x07c8('0x11')][_0x07c8('0x12')]===0x1f4){logger[_0x07c8('0x11')]('ReportAgentPreview,\x20%s,\x20%s',_0x254ebe,_0x550a7e[_0x07c8('0x11')][_0x07c8('0x13')]);return _0x485e7b(_0x550a7e[_0x07c8('0x11')][_0x07c8('0x13')]);}logger[_0x07c8('0x11')](_0x07c8('0xc'),_0x254ebe,_0x550a7e[_0x07c8('0x11')][_0x07c8('0x13')]);return _0xb84896(_0x550a7e[_0x07c8('0x11')]['message']);}else{logger[_0x07c8('0xb')](_0x07c8('0xc'),_0x254ebe,_0x07c8('0xd'));_0xb84896(_0x550a7e['result'][_0x07c8('0x13')]);}})[_0x07c8('0x14')](function(_0x304966){logger[_0x07c8('0x11')](_0x07c8('0xc'),_0x254ebe,_0x304966);_0x485e7b(_0x304966);});});}exports[_0x07c8('0x15')]=function(_0x44aec6){var _0x3349d4=this;return new Promise(function(_0x285307,_0x4fbfc1){return db['ReportAgentPreview']['create'](_0x44aec6[_0x07c8('0x16')],{'raw':_0x44aec6[_0x07c8('0x17')]?_0x44aec6[_0x07c8('0x17')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x3ffcc2){logger[_0x07c8('0xb')](_0x07c8('0x15'),_0x44aec6);logger[_0x07c8('0xe')]('CreateReportAgentPreview',_0x44aec6,JSON['stringify'](_0x3ffcc2));_0x285307(_0x3ffcc2);})[_0x07c8('0x14')](function(_0x272d0c){logger[_0x07c8('0x11')](_0x07c8('0x15'),_0x272d0c[_0x07c8('0x13')],_0x44aec6);_0x4fbfc1(_0x3349d4[_0x07c8('0x11')](0x1f4,_0x272d0c[_0x07c8('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8228=['/sms/queues/:id/notify','sms','/whatsapp/queues/:id/notify','whatsapp','showWhatsappQueues','/agents/:id/notify','agentNotify','exports','multer','Router','../../components/auth/service','./rpc.controller','/voice/channels','voiceChannels','get','/voice/channels/:uniqueid/mixmonitor','isAuthenticated','voiceChannelMixMonitor','/voice/channels/:uniqueid/stopmixmonitor','voiceChannelStopMixMonitor','/chat/queues','/mail/queues','mailQueues','/mail/accounts','mailAccounts','/openchannel/queues','openchannelQueues','/sms/queues','smsQueues','whatsappQueues','/fax/queues','faxQueues','/voice/queues/preview/:id','voiceQueuesPreview','voiceQueuesChannels','voiceQueuesChannel','/voice/queues/channels/:uniqueid/hangup','voiceQueuesChannelHangup','/voice/queues/channels/:uniqueid/redirect/:exten','voiceQueuesChannelRedirect','/voice/queues/:id','showVoiceQueues','put','updateVoiceQueue','/outbound','outbound','/outbound/channels','outboundChannels','/agents','agentCapacity','/telephones','telephones','/trunks','trunks','campaigns','/fax/accounts','chatQueuesWaitingInteractions','/mail/queues/waitinginteractions','/openchannel/queues/waitinginteractions','/openchannel/queues/:id/waitinginteractions','openchannelQueuesIdWaitingInteractions','/sms/queues/waitinginteractions','smsQueuesWaitingInteractions','/whatsapp/queues/waitinginteractions','whatsappQueuesWaitingInteractions','/fax/queues/waitinginteractions','faxQueuesWaitingInteractions','/mail/queues/:id/notify','queueNotify','mail','/mail/queues/:id','showMailQueues','post','/chat/queues/:id/notify','/chat/queues/:id','showChatQueues','/fax/queues/:id/notify','/fax/queues/:id','showFaxQueues','/openchannel/queues/:id/notify','openchannel','/openchannel/queues/:id','showOpenchannelQueues'];(function(_0x2aecb2,_0x343312){var _0x3ebb80=function(_0x19fab3){while(--_0x19fab3){_0x2aecb2['push'](_0x2aecb2['shift']());}};_0x3ebb80(++_0x343312);}(_0x8228,0xae));var _0x8822=function(_0x186d4a,_0x275255){_0x186d4a=_0x186d4a-0x0;var _0x35c64b=_0x8228[_0x186d4a];return _0x35c64b;};'use strict';var multer=require(_0x8822('0x0'));var util=require('util');var path=require('path');var express=require('express');var router=express[_0x8822('0x1')]();var auth=require(_0x8822('0x2'));var controller=require(_0x8822('0x3'));router['get'](_0x8822('0x4'),auth['isAuthenticated'](),controller[_0x8822('0x5')]);router[_0x8822('0x6')](_0x8822('0x7'),auth[_0x8822('0x8')](),controller[_0x8822('0x9')]);router[_0x8822('0x6')](_0x8822('0xa'),auth['isAuthenticated'](),controller[_0x8822('0xb')]);router[_0x8822('0x6')]('/voice/queues',auth[_0x8822('0x8')](),controller['voiceQueues']);router[_0x8822('0x6')](_0x8822('0xc'),auth[_0x8822('0x8')](),controller['chatQueues']);router[_0x8822('0x6')](_0x8822('0xd'),auth[_0x8822('0x8')](),controller[_0x8822('0xe')]);router[_0x8822('0x6')](_0x8822('0xf'),auth[_0x8822('0x8')](),controller[_0x8822('0x10')]);router[_0x8822('0x6')](_0x8822('0x11'),auth[_0x8822('0x8')](),controller[_0x8822('0x12')]);router[_0x8822('0x6')](_0x8822('0x13'),auth[_0x8822('0x8')](),controller[_0x8822('0x14')]);router[_0x8822('0x6')]('/whatsapp/queues',auth['isAuthenticated'](),controller[_0x8822('0x15')]);router[_0x8822('0x6')](_0x8822('0x16'),auth['isAuthenticated'](),controller[_0x8822('0x17')]);router[_0x8822('0x6')](_0x8822('0x18'),auth[_0x8822('0x8')](),controller[_0x8822('0x19')]);router[_0x8822('0x6')]('/voice/queues/channels',auth[_0x8822('0x8')](),controller[_0x8822('0x1a')]);router[_0x8822('0x6')]('/voice/queues/channels/:uniqueid',auth[_0x8822('0x8')](),controller[_0x8822('0x1b')]);router[_0x8822('0x6')](_0x8822('0x1c'),auth['isAuthenticated'](),controller[_0x8822('0x1d')]);router[_0x8822('0x6')](_0x8822('0x1e'),auth[_0x8822('0x8')](),controller[_0x8822('0x1f')]);router['get'](_0x8822('0x20'),auth[_0x8822('0x8')](),controller[_0x8822('0x21')]);router[_0x8822('0x22')](_0x8822('0x20'),auth['isAuthenticated'](),controller[_0x8822('0x23')]);router[_0x8822('0x6')](_0x8822('0x24'),auth[_0x8822('0x8')](),controller[_0x8822('0x25')]);router[_0x8822('0x6')](_0x8822('0x26'),auth['isAuthenticated'](),controller[_0x8822('0x27')]);router['get'](_0x8822('0x28'),auth[_0x8822('0x8')](),controller['agents']);router[_0x8822('0x22')]('/agents/:id/capacity',auth[_0x8822('0x8')](),controller[_0x8822('0x29')]);router[_0x8822('0x6')](_0x8822('0x2a'),auth[_0x8822('0x8')](),controller[_0x8822('0x2b')]);router[_0x8822('0x6')](_0x8822('0x2c'),auth[_0x8822('0x8')](),controller[_0x8822('0x2d')]);router['get']('/campaigns',auth[_0x8822('0x8')](),controller[_0x8822('0x2e')]);router[_0x8822('0x6')](_0x8822('0x2f'),auth['isAuthenticated'](),controller['faxAccounts']);router['get']('/chat/queues/waitinginteractions',auth['isAuthenticated'](),controller[_0x8822('0x30')]);router[_0x8822('0x6')](_0x8822('0x31'),auth[_0x8822('0x8')](),controller['mailQueuesWaitingInteractions']);router[_0x8822('0x6')](_0x8822('0x32'),auth[_0x8822('0x8')](),controller['openchannelQueuesWaitingInteractions']);router[_0x8822('0x6')](_0x8822('0x33'),auth['isAuthenticated'](),controller[_0x8822('0x34')]);router[_0x8822('0x6')](_0x8822('0x35'),auth['isAuthenticated'](),controller[_0x8822('0x36')]);router[_0x8822('0x6')](_0x8822('0x37'),auth[_0x8822('0x8')](),controller[_0x8822('0x38')]);router[_0x8822('0x6')](_0x8822('0x39'),auth['isAuthenticated'](),controller[_0x8822('0x3a')]);router['post'](_0x8822('0x3b'),auth[_0x8822('0x8')](),controller[_0x8822('0x3c')](_0x8822('0x3d')));router['get'](_0x8822('0x3e'),auth['isAuthenticated'](),controller[_0x8822('0x3f')]);router[_0x8822('0x40')](_0x8822('0x41'),auth[_0x8822('0x8')](),controller[_0x8822('0x3c')]('chat'));router[_0x8822('0x6')](_0x8822('0x42'),auth[_0x8822('0x8')](),controller[_0x8822('0x43')]);router[_0x8822('0x40')](_0x8822('0x44'),auth['isAuthenticated'](),controller['queueNotify']('fax'));router[_0x8822('0x6')](_0x8822('0x45'),auth[_0x8822('0x8')](),controller[_0x8822('0x46')]);router[_0x8822('0x40')](_0x8822('0x47'),auth['isAuthenticated'](),controller[_0x8822('0x3c')](_0x8822('0x48')));router['get'](_0x8822('0x49'),auth[_0x8822('0x8')](),controller[_0x8822('0x4a')]);router[_0x8822('0x40')](_0x8822('0x4b'),auth[_0x8822('0x8')](),controller[_0x8822('0x3c')](_0x8822('0x4c')));router[_0x8822('0x40')](_0x8822('0x4d'),auth[_0x8822('0x8')](),controller[_0x8822('0x3c')](_0x8822('0x4e')));router[_0x8822('0x6')]('/sms/queues/:id',auth['isAuthenticated'](),controller['showSmsQueues']);router['get']('/whatsapp/queues/:id',auth[_0x8822('0x8')](),controller[_0x8822('0x4f')]);router[_0x8822('0x40')](_0x8822('0x50'),auth[_0x8822('0x8')](),controller[_0x8822('0x51')]);module[_0x8822('0x52')]=router;
\ No newline at end of file
+var _0x72f9=['/outbound','outbound','/outbound/channels','outboundChannels','/agents','/agents/:id/capacity','agentCapacity','/telephones','telephones','trunks','/campaigns','campaigns','/fax/accounts','faxAccounts','/chat/queues/waitinginteractions','/mail/queues/waitinginteractions','/openchannel/queues/waitinginteractions','/openchannel/queues/:id/waitinginteractions','openchannelQueuesIdWaitingInteractions','/sms/queues/waitinginteractions','/whatsapp/queues/waitinginteractions','/fax/queues/waitinginteractions','faxQueuesWaitingInteractions','post','queueNotify','mail','/mail/queues/:id','showMailQueues','/chat/queues/:id/notify','chat','/chat/queues/:id','showChatQueues','/fax/queues/:id/notify','fax','/fax/queues/:id','showFaxQueues','/openchannel/queues/:id/notify','/openchannel/queues/:id','/sms/queues/:id/notify','sms','/whatsapp/queues/:id/notify','whatsapp','/sms/queues/:id','/whatsapp/queues/:id','showWhatsappQueues','/agents/:id/notify','agentNotify','exports','multer','path','express','Router','../../components/auth/service','./rpc.controller','get','/voice/channels','isAuthenticated','voiceChannelMixMonitor','/voice/channels/:uniqueid/stopmixmonitor','voiceChannelStopMixMonitor','/voice/queues','/chat/queues','chatQueues','/mail/queues','mailQueues','/mail/accounts','/openchannel/queues','openchannelQueues','smsQueues','whatsappQueues','/fax/queues','faxQueues','/voice/queues/preview/:id','voiceQueuesPreview','/voice/queues/channels','voiceQueuesChannels','/voice/queues/channels/:uniqueid','voiceQueuesChannel','voiceQueuesChannelHangup','voiceQueuesChannelRedirect','/voice/queues/:id','put','updateVoiceQueue'];(function(_0x26945a,_0x239e06){var _0x45b1a9=function(_0x2fbdd4){while(--_0x2fbdd4){_0x26945a['push'](_0x26945a['shift']());}};_0x45b1a9(++_0x239e06);}(_0x72f9,0x17c));var _0x972f=function(_0x4287b6,_0x2d1db7){_0x4287b6=_0x4287b6-0x0;var _0x5a4f7e=_0x72f9[_0x4287b6];return _0x5a4f7e;};'use strict';var multer=require(_0x972f('0x0'));var util=require('util');var path=require(_0x972f('0x1'));var express=require(_0x972f('0x2'));var router=express[_0x972f('0x3')]();var auth=require(_0x972f('0x4'));var controller=require(_0x972f('0x5'));router[_0x972f('0x6')](_0x972f('0x7'),auth[_0x972f('0x8')](),controller['voiceChannels']);router['get']('/voice/channels/:uniqueid/mixmonitor',auth[_0x972f('0x8')](),controller[_0x972f('0x9')]);router['get'](_0x972f('0xa'),auth['isAuthenticated'](),controller[_0x972f('0xb')]);router['get'](_0x972f('0xc'),auth['isAuthenticated'](),controller['voiceQueues']);router[_0x972f('0x6')](_0x972f('0xd'),auth[_0x972f('0x8')](),controller[_0x972f('0xe')]);router[_0x972f('0x6')](_0x972f('0xf'),auth[_0x972f('0x8')](),controller[_0x972f('0x10')]);router['get'](_0x972f('0x11'),auth[_0x972f('0x8')](),controller['mailAccounts']);router['get'](_0x972f('0x12'),auth[_0x972f('0x8')](),controller[_0x972f('0x13')]);router[_0x972f('0x6')]('/sms/queues',auth[_0x972f('0x8')](),controller[_0x972f('0x14')]);router[_0x972f('0x6')]('/whatsapp/queues',auth[_0x972f('0x8')](),controller[_0x972f('0x15')]);router[_0x972f('0x6')](_0x972f('0x16'),auth[_0x972f('0x8')](),controller[_0x972f('0x17')]);router[_0x972f('0x6')](_0x972f('0x18'),auth[_0x972f('0x8')](),controller[_0x972f('0x19')]);router['get'](_0x972f('0x1a'),auth[_0x972f('0x8')](),controller[_0x972f('0x1b')]);router[_0x972f('0x6')](_0x972f('0x1c'),auth[_0x972f('0x8')](),controller[_0x972f('0x1d')]);router[_0x972f('0x6')]('/voice/queues/channels/:uniqueid/hangup',auth[_0x972f('0x8')](),controller[_0x972f('0x1e')]);router[_0x972f('0x6')]('/voice/queues/channels/:uniqueid/redirect/:exten',auth[_0x972f('0x8')](),controller[_0x972f('0x1f')]);router[_0x972f('0x6')](_0x972f('0x20'),auth[_0x972f('0x8')](),controller['showVoiceQueues']);router[_0x972f('0x21')](_0x972f('0x20'),auth[_0x972f('0x8')](),controller[_0x972f('0x22')]);router[_0x972f('0x6')](_0x972f('0x23'),auth[_0x972f('0x8')](),controller[_0x972f('0x24')]);router[_0x972f('0x6')](_0x972f('0x25'),auth['isAuthenticated'](),controller[_0x972f('0x26')]);router[_0x972f('0x6')](_0x972f('0x27'),auth[_0x972f('0x8')](),controller['agents']);router[_0x972f('0x21')](_0x972f('0x28'),auth[_0x972f('0x8')](),controller[_0x972f('0x29')]);router[_0x972f('0x6')](_0x972f('0x2a'),auth[_0x972f('0x8')](),controller[_0x972f('0x2b')]);router[_0x972f('0x6')]('/trunks',auth['isAuthenticated'](),controller[_0x972f('0x2c')]);router[_0x972f('0x6')](_0x972f('0x2d'),auth['isAuthenticated'](),controller[_0x972f('0x2e')]);router['get'](_0x972f('0x2f'),auth['isAuthenticated'](),controller[_0x972f('0x30')]);router[_0x972f('0x6')](_0x972f('0x31'),auth[_0x972f('0x8')](),controller['chatQueuesWaitingInteractions']);router[_0x972f('0x6')](_0x972f('0x32'),auth[_0x972f('0x8')](),controller['mailQueuesWaitingInteractions']);router[_0x972f('0x6')](_0x972f('0x33'),auth[_0x972f('0x8')](),controller['openchannelQueuesWaitingInteractions']);router[_0x972f('0x6')](_0x972f('0x34'),auth[_0x972f('0x8')](),controller[_0x972f('0x35')]);router[_0x972f('0x6')](_0x972f('0x36'),auth[_0x972f('0x8')](),controller['smsQueuesWaitingInteractions']);router['get'](_0x972f('0x37'),auth[_0x972f('0x8')](),controller['whatsappQueuesWaitingInteractions']);router[_0x972f('0x6')](_0x972f('0x38'),auth[_0x972f('0x8')](),controller[_0x972f('0x39')]);router[_0x972f('0x3a')]('/mail/queues/:id/notify',auth[_0x972f('0x8')](),controller[_0x972f('0x3b')](_0x972f('0x3c')));router['get'](_0x972f('0x3d'),auth[_0x972f('0x8')](),controller[_0x972f('0x3e')]);router[_0x972f('0x3a')](_0x972f('0x3f'),auth['isAuthenticated'](),controller[_0x972f('0x3b')](_0x972f('0x40')));router[_0x972f('0x6')](_0x972f('0x41'),auth[_0x972f('0x8')](),controller[_0x972f('0x42')]);router[_0x972f('0x3a')](_0x972f('0x43'),auth[_0x972f('0x8')](),controller[_0x972f('0x3b')](_0x972f('0x44')));router[_0x972f('0x6')](_0x972f('0x45'),auth[_0x972f('0x8')](),controller[_0x972f('0x46')]);router['post'](_0x972f('0x47'),auth[_0x972f('0x8')](),controller[_0x972f('0x3b')]('openchannel'));router[_0x972f('0x6')](_0x972f('0x48'),auth[_0x972f('0x8')](),controller['showOpenchannelQueues']);router['post'](_0x972f('0x49'),auth[_0x972f('0x8')](),controller[_0x972f('0x3b')](_0x972f('0x4a')));router[_0x972f('0x3a')](_0x972f('0x4b'),auth['isAuthenticated'](),controller['queueNotify'](_0x972f('0x4c')));router[_0x972f('0x6')](_0x972f('0x4d'),auth[_0x972f('0x8')](),controller['showSmsQueues']);router[_0x972f('0x6')](_0x972f('0x4e'),auth[_0x972f('0x8')](),controller[_0x972f('0x4f')]);router['post'](_0x972f('0x50'),auth[_0x972f('0x8')](),controller[_0x972f('0x51')]);module[_0x972f('0x52')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda19=['rows','find','VoiceChannels','query','catch','voiceChannelMixMonitor','VoiceChannelMixMonitor','merge','params','voiceChannelStopMixMonitor','VoiceChannelStopMixMonitor','showVoiceQueues','UpdateVoiceQueue','body','voiceQueuesChannels','voiceQueuesChannel','VoiceQueuesChannel','voiceQueuesChannelRedirect','VoiceQueuesChannelRedirect','outboundChannels','OutboundChannels','agents','agentCapacity','interaction','user','MemberReport','findAll','INTERACTION','length','format','YYYY-MM-DD\x20HH:mm:ss','findOrCreate','interface','agent','internal','capacity','Telephones','trunks','Trunks','campaigns','Campaigns','chatQueues','ChatQueues','showChatQueues','mailQueues','MailQueues','mailAccounts','MailAccounts','OpenchannelQueues','showOpenchannelQueues','SmsQueues','showSmsQueues','whatsappQueues','showWhatsappQueues','WhatsappQueues','FaxQueues','showFaxQueues','faxAccounts','FaxAccounts','ChatQueuesWaitingInteractions','MailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','openchannelQueuesIdWaitingInteractions','OpenchannelQueuesWaitingInteractions','type','queue_id','uniq','filter','smsQueuesWaitingInteractions','SmsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','WhatsappQueuesWaitingInteractions','FaxQueuesWaitingInteractions','queueNotify','capitalize','chat','Website','Account','Queue','findOne','\x20Queue\x20not\x20found','messageId','Interaction','\x20Message\x20not\x20found','update','queue','MessageId','InteractionId','From','create','Start','queueTransferTimeout','*,*,*,*','agentNotify','channel','Channel\x20field\x20is\x20mandatory','User','Message','TransferReport','moment','lodash','../../mysqldb','api','client','http','then','error','code','message','status','json','name','send','isNil'];(function(_0x3a7ab8,_0x35dbf3){var _0x2734fa=function(_0x14b78e){while(--_0x14b78e){_0x3a7ab8['push'](_0x3a7ab8['shift']());}};_0x2734fa(++_0x35dbf3);}(_0xda19,0xd5));var _0x9da1=function(_0x5bd7ba,_0xde0380){_0x5bd7ba=_0x5bd7ba-0x0;var _0x30c3ec=_0xda19[_0x5bd7ba];return _0x30c3ec;};'use strict';var BPromise=require('bluebird');var moment=require(_0x9da1('0x0'));var _=require(_0x9da1('0x1'));var util=require('util');var db=require(_0x9da1('0x2'))['db'];var logger=require('../../config/logger')(_0x9da1('0x3'));var jayson=require('jayson/promise');var amiClient=jayson[_0x9da1('0x4')][_0x9da1('0x5')]({'port':0x232a});var mailClient=jayson[_0x9da1('0x4')][_0x9da1('0x5')]({'port':0x232b});var routingClient=jayson[_0x9da1('0x4')][_0x9da1('0x5')]({'port':0x232c});function respondWithRpcPromise(_0x23e4f7,_0x2c3cdd,_0x1c24e6){return new BPromise(function(_0x5e2d18,_0x47df89){var _0x55f66b=_0x1c24e6?_0x1c24e6:amiClient;return _0x55f66b['request'](_0x23e4f7,_0x2c3cdd)[_0x9da1('0x6')](function(_0x493d0b){if(_0x493d0b[_0x9da1('0x7')]){if(_0x493d0b[_0x9da1('0x7')][_0x9da1('0x8')]===0x1f4){return _0x47df89(_0x493d0b[_0x9da1('0x7')][_0x9da1('0x9')]);}return _0x5e2d18(_0x493d0b[_0x9da1('0x7')][_0x9da1('0x9')]);}else{_0x5e2d18(_0x493d0b['result']);}})['catch'](function(_0x3114f7){_0x47df89(_0x3114f7);});});}function respondWithResult(_0x596b6b,_0x4735c7){_0x4735c7=_0x4735c7||0xc8;return function(_0x1d93f8){if(_0x1d93f8){return _0x596b6b[_0x9da1('0xa')](_0x4735c7)[_0x9da1('0xb')](_0x1d93f8);}return _0x596b6b['sendStatus'](0x194);};}function handleError(_0x2837e3,_0x535a13){_0x535a13=_0x535a13||0x1f4;return function(_0x4d17e1){logger[_0x9da1('0x7')](_0x4d17e1['stack']);if(_0x4d17e1[_0x9da1('0xc')]){delete _0x4d17e1[_0x9da1('0xc')];}_0x2837e3[_0x9da1('0xa')](_0x535a13)[_0x9da1('0xd')](_0x4d17e1);};}function findById(_0x7f1a64){return function(_0x514d8e){if(!_[_0x9da1('0xe')](_0x7f1a64)&&!_[_0x9da1('0xe')](_0x514d8e)&&!_[_0x9da1('0xe')](_0x514d8e[_0x9da1('0xf')])){return _[_0x9da1('0x10')](_0x514d8e[_0x9da1('0xf')],function(_0x497676){return _0x497676['id']==_0x7f1a64;});}return null;};}exports['voiceChannels']=function(_0x17205d,_0x8da712){return respondWithRpcPromise(_0x9da1('0x11'),_0x17205d[_0x9da1('0x12')])[_0x9da1('0x6')](respondWithResult(_0x8da712,null))[_0x9da1('0x13')](handleError(_0x8da712,null));};exports[_0x9da1('0x14')]=function(_0x47e5cf,_0x1a459c){return respondWithRpcPromise(_0x9da1('0x15'),_[_0x9da1('0x16')](_0x47e5cf[_0x9da1('0x12')],_0x47e5cf[_0x9da1('0x17')]))['then'](respondWithResult(_0x1a459c,null))['catch'](handleError(_0x1a459c,null));};exports[_0x9da1('0x18')]=function(_0x3e6f85,_0x16ee0c){return respondWithRpcPromise(_0x9da1('0x19'),_[_0x9da1('0x16')](_0x3e6f85[_0x9da1('0x12')],_0x3e6f85['params']))[_0x9da1('0x6')](respondWithResult(_0x16ee0c,null))[_0x9da1('0x13')](handleError(_0x16ee0c,null));};exports['voiceQueues']=function(_0x45fcce,_0x3f5680){return respondWithRpcPromise('VoiceQueues',_0x45fcce[_0x9da1('0x12')])[_0x9da1('0x6')](respondWithResult(_0x3f5680,null))['catch'](handleError(_0x3f5680,null));};exports[_0x9da1('0x1a')]=function(_0x1d6af5,_0x55cd3d){return respondWithRpcPromise('VoiceQueues',_0x1d6af5[_0x9da1('0x12')])[_0x9da1('0x6')](findById(_0x1d6af5['params']['id']))[_0x9da1('0x6')](respondWithResult(_0x55cd3d,null))['catch'](handleError(_0x55cd3d,null));};exports['updateVoiceQueue']=function(_0x5a59c2,_0x31b826){return respondWithRpcPromise(_0x9da1('0x1b'),_[_0x9da1('0x16')](_0x5a59c2[_0x9da1('0x1c')],_0x5a59c2[_0x9da1('0x17')]))['then'](respondWithResult(_0x31b826,null))[_0x9da1('0x13')](handleError(_0x31b826,null));};exports['voiceQueuesPreview']=function(_0x1feae0,_0x235ced){return respondWithRpcPromise('VoiceQueuesPreview',_[_0x9da1('0x16')](_0x1feae0[_0x9da1('0x12')],_0x1feae0['params']))[_0x9da1('0x6')](respondWithResult(_0x235ced,null))[_0x9da1('0x13')](handleError(_0x235ced,null));};exports[_0x9da1('0x1d')]=function(_0x2b2b48,_0x581e9f){return respondWithRpcPromise('VoiceQueuesChannels',_0x2b2b48[_0x9da1('0x12')])[_0x9da1('0x6')](respondWithResult(_0x581e9f,null))[_0x9da1('0x13')](handleError(_0x581e9f,null));};exports[_0x9da1('0x1e')]=function(_0x193273,_0x559645){return respondWithRpcPromise(_0x9da1('0x1f'),_[_0x9da1('0x16')](_0x193273[_0x9da1('0x12')],_0x193273[_0x9da1('0x17')]))[_0x9da1('0x6')](respondWithResult(_0x559645,null))[_0x9da1('0x13')](handleError(_0x559645,null));};exports['voiceQueuesChannelHangup']=function(_0xa43301,_0x5af570){return respondWithRpcPromise('VoiceQueuesChannelHangup',_[_0x9da1('0x16')](_0xa43301['query'],_0xa43301[_0x9da1('0x17')]))[_0x9da1('0x6')](respondWithResult(_0x5af570,null))[_0x9da1('0x13')](handleError(_0x5af570,null));};exports[_0x9da1('0x20')]=function(_0x98b294,_0x5efa40){return respondWithRpcPromise(_0x9da1('0x21'),_[_0x9da1('0x16')](_0x98b294['query'],_0x98b294[_0x9da1('0x17')]))['then'](respondWithResult(_0x5efa40,null))[_0x9da1('0x13')](handleError(_0x5efa40,null));};exports['outbound']=function(_0x5eaa7e,_0x1ce0f8){return respondWithRpcPromise('Outbound',_0x5eaa7e[_0x9da1('0x12')])[_0x9da1('0x6')](respondWithResult(_0x1ce0f8,null))['catch'](handleError(_0x1ce0f8,null));};exports[_0x9da1('0x22')]=function(_0x1b750f,_0x390457){return respondWithRpcPromise(_0x9da1('0x23'),_0x1b750f['query'])[_0x9da1('0x6')](respondWithResult(_0x390457,null))['catch'](handleError(_0x390457,null));};exports[_0x9da1('0x24')]=function(_0x4bdaf1,_0x26e8d3){var _0x46c176;return respondWithRpcPromise('Agents',_0x4bdaf1[_0x9da1('0x12')])[_0x9da1('0x6')](function(_0x394acf){_0x46c176=_0x394acf;return respondWithRpcPromise('Agents',_0x4bdaf1['query'],routingClient);})['then'](function(_0x27e78c){return _['merge']({},_0x27e78c,_0x46c176);})[_0x9da1('0x6')](respondWithResult(_0x26e8d3,null))[_0x9da1('0x13')](handleError(_0x26e8d3,null));};exports[_0x9da1('0x25')]=function(_0x43c064,_0x54f188){if(_0x43c064[_0x9da1('0x1c')]&&_0x43c064[_0x9da1('0x1c')][_0x9da1('0x26')]&&_0x43c064[_0x9da1('0x27')]&&_0x43c064[_0x9da1('0x27')][_0x9da1('0xc')]){for(var _0x28e0b2 in _0x43c064['body'][_0x9da1('0x26')]){if(_0x43c064['body'][_0x9da1('0x26')]['hasOwnProperty'](_0x28e0b2)){db[_0x9da1('0x28')][_0x9da1('0x29')]({'where':{'channel':_0x28e0b2,'membername':_0x43c064['user'][_0x9da1('0xc')],'type':_0x9da1('0x2a'),'exitAt':null,'uniqueid':_0x43c064['body'][_0x9da1('0x26')][_0x28e0b2]&&_0x43c064['body'][_0x9da1('0x26')][_0x28e0b2][_0x9da1('0x2b')]?{'$notIn':_0x43c064['body']['interaction'][_0x28e0b2]}:{'$ne':null}}})[_0x9da1('0x6')](function(_0x3f3688){var _0x15bb24=moment()[_0x9da1('0x2c')](_0x9da1('0x2d'));for(var _0x15578d=0x0,_0x2d7003=_0x3f3688[_0x9da1('0x2b')];_0x15578d<_0x2d7003;_0x15578d+=0x1){_0x3f3688[_0x15578d]['updateAttributes']({'exitAt':_0x15bb24});}});for(var _0xd7fb0a=0x0;_0xd7fb0a<_0x43c064[_0x9da1('0x1c')][_0x9da1('0x26')][_0x28e0b2]['length'];_0xd7fb0a+=0x1){db[_0x9da1('0x28')][_0x9da1('0x2e')]({'where':{'channel':_0x28e0b2,'membername':_0x43c064[_0x9da1('0x27')]['name'],'type':_0x9da1('0x2a'),'uniqueid':_0x43c064[_0x9da1('0x1c')][_0x9da1('0x26')][_0x28e0b2][_0xd7fb0a],'exitAt':null},'defaults':{'channel':_0x28e0b2,'membername':_0x43c064['user'][_0x9da1('0xc')],'interface':_['isNil'](_0x43c064['user'][_0x9da1('0x2f')])?util[_0x9da1('0x2c')]('SIP/%s',_0x43c064[_0x9da1('0x27')][_0x9da1('0xc')]):_0x43c064['user'][_0x9da1('0x2f')],'type':_0x9da1('0x2a'),'enterAt':moment()[_0x9da1('0x2c')](_0x9da1('0x2d')),'role':_0x9da1('0x30'),'internal':_0x43c064[_0x9da1('0x27')][_0x9da1('0x31')],'uniqueid':_0x43c064[_0x9da1('0x1c')][_0x9da1('0x26')][_0x28e0b2][_0xd7fb0a]}});}}}}return respondWithRpcPromise('AgentCapacity',{'id':_0x43c064[_0x9da1('0x17')]['id'],'capacity':_0x43c064[_0x9da1('0x1c')][_0x9da1('0x32')]},routingClient)[_0x9da1('0x6')](respondWithResult(_0x54f188,null))['catch'](handleError(_0x54f188,null));};exports['telephones']=function(_0xf36078,_0x6ca1ac){return respondWithRpcPromise(_0x9da1('0x33'),_0xf36078[_0x9da1('0x12')])[_0x9da1('0x6')](respondWithResult(_0x6ca1ac,null))[_0x9da1('0x13')](handleError(_0x6ca1ac,null));};exports[_0x9da1('0x34')]=function(_0x1b1148,_0x34327e){return respondWithRpcPromise(_0x9da1('0x35'),_0x1b1148[_0x9da1('0x12')])[_0x9da1('0x6')](respondWithResult(_0x34327e,null))[_0x9da1('0x13')](handleError(_0x34327e,null));};exports[_0x9da1('0x36')]=function(_0x4c99e8,_0x26ecdb){return respondWithRpcPromise(_0x9da1('0x37'),_0x4c99e8['query'])[_0x9da1('0x6')](respondWithResult(_0x26ecdb,null))['catch'](handleError(_0x26ecdb,null));};exports[_0x9da1('0x38')]=function(_0x4f4980,_0x5df0d8){return respondWithRpcPromise(_0x9da1('0x39'),_0x4f4980[_0x9da1('0x12')],routingClient)[_0x9da1('0x6')](respondWithResult(_0x5df0d8,null))[_0x9da1('0x13')](handleError(_0x5df0d8,null));};exports[_0x9da1('0x3a')]=function(_0x2787e1,_0x343b05){return respondWithRpcPromise(_0x9da1('0x39'),_0x2787e1[_0x9da1('0x12')],routingClient)['then'](findById(_0x2787e1[_0x9da1('0x17')]['id']))[_0x9da1('0x6')](respondWithResult(_0x343b05,null))[_0x9da1('0x13')](handleError(_0x343b05,null));};exports[_0x9da1('0x3b')]=function(_0x2aae1b,_0x4607a9){return respondWithRpcPromise(_0x9da1('0x3c'),_0x2aae1b[_0x9da1('0x12')],routingClient)[_0x9da1('0x6')](respondWithResult(_0x4607a9,null))[_0x9da1('0x13')](handleError(_0x4607a9,null));};exports['showMailQueues']=function(_0xdaa51b,_0x374a1a){return respondWithRpcPromise('MailQueues',_0xdaa51b[_0x9da1('0x12')],routingClient)[_0x9da1('0x6')](findById(_0xdaa51b[_0x9da1('0x17')]['id']))[_0x9da1('0x6')](respondWithResult(_0x374a1a,null))[_0x9da1('0x13')](handleError(_0x374a1a,null));};exports[_0x9da1('0x3d')]=function(_0x3081d7,_0x5d9ac7){return respondWithRpcPromise(_0x9da1('0x3e'),_0x3081d7[_0x9da1('0x12')],mailClient)[_0x9da1('0x6')](respondWithResult(_0x5d9ac7,null))[_0x9da1('0x13')](handleError(_0x5d9ac7,null));};exports['openchannelQueues']=function(_0x1a9df0,_0x5c236e){return respondWithRpcPromise(_0x9da1('0x3f'),_0x1a9df0[_0x9da1('0x12')],routingClient)[_0x9da1('0x6')](respondWithResult(_0x5c236e,null))[_0x9da1('0x13')](handleError(_0x5c236e,null));};exports[_0x9da1('0x40')]=function(_0x4445e2,_0x5e262c){return respondWithRpcPromise('OpenchannelQueues',_0x4445e2[_0x9da1('0x12')],routingClient)['then'](findById(_0x4445e2['params']['id']))['then'](respondWithResult(_0x5e262c,null))[_0x9da1('0x13')](handleError(_0x5e262c,null));};exports['smsQueues']=function(_0x1ee86e,_0x558602){return respondWithRpcPromise(_0x9da1('0x41'),_0x1ee86e[_0x9da1('0x12')],routingClient)['then'](respondWithResult(_0x558602,null))[_0x9da1('0x13')](handleError(_0x558602,null));};exports[_0x9da1('0x42')]=function(_0x575a9b,_0x1a91c8){return respondWithRpcPromise(_0x9da1('0x41'),_0x575a9b['query'],routingClient)['then'](findById(_0x575a9b[_0x9da1('0x17')]['id']))[_0x9da1('0x6')](respondWithResult(_0x1a91c8,null))[_0x9da1('0x13')](handleError(_0x1a91c8,null));};exports[_0x9da1('0x43')]=function(_0x236b01,_0x44d7fe){return respondWithRpcPromise('WhatsappQueues',_0x236b01[_0x9da1('0x12')],routingClient)['then'](respondWithResult(_0x44d7fe,null))['catch'](handleError(_0x44d7fe,null));};exports[_0x9da1('0x44')]=function(_0x41717a,_0x2e4ea4){return respondWithRpcPromise(_0x9da1('0x45'),_0x41717a[_0x9da1('0x12')],routingClient)[_0x9da1('0x6')](findById(_0x41717a[_0x9da1('0x17')]['id']))[_0x9da1('0x6')](respondWithResult(_0x2e4ea4,null))[_0x9da1('0x13')](handleError(_0x2e4ea4,null));};exports['faxQueues']=function(_0x41283e,_0xbd54e){return respondWithRpcPromise(_0x9da1('0x46'),_0x41283e[_0x9da1('0x12')],routingClient)[_0x9da1('0x6')](respondWithResult(_0xbd54e,null))['catch'](handleError(_0xbd54e,null));};exports[_0x9da1('0x47')]=function(_0x13fadd,_0x419f78){return respondWithRpcPromise(_0x9da1('0x46'),_0x13fadd[_0x9da1('0x12')],routingClient)[_0x9da1('0x6')](findById(_0x13fadd['params']['id']))[_0x9da1('0x6')](respondWithResult(_0x419f78,null))['catch'](handleError(_0x419f78,null));};exports[_0x9da1('0x48')]=function(_0x5b6d9f,_0x7cfa7e){return respondWithRpcPromise(_0x9da1('0x49'),_0x5b6d9f[_0x9da1('0x12')])[_0x9da1('0x6')](respondWithResult(_0x7cfa7e,null))['catch'](handleError(_0x7cfa7e,null));};exports['chatQueuesWaitingInteractions']=function(_0x4c832f,_0x73a2fc){return respondWithRpcPromise(_0x9da1('0x4a'),_0x4c832f[_0x9da1('0x12')],routingClient)[_0x9da1('0x6')](respondWithResult(_0x73a2fc,null))['catch'](handleError(_0x73a2fc,null));};exports['mailQueuesWaitingInteractions']=function(_0x35b782,_0x327bb4){return respondWithRpcPromise(_0x9da1('0x4b'),_0x35b782['query'],routingClient)['then'](respondWithResult(_0x327bb4,null))[_0x9da1('0x13')](handleError(_0x327bb4,null));};exports[_0x9da1('0x4c')]=function(_0x114093,_0x57f20c){return respondWithRpcPromise('OpenchannelQueuesWaitingInteractions',_0x114093[_0x9da1('0x12')],routingClient)[_0x9da1('0x6')](respondWithResult(_0x57f20c,null))[_0x9da1('0x13')](handleError(_0x57f20c,null));};exports[_0x9da1('0x4d')]=function(_0x3cfe64,_0x5daa11){return respondWithRpcPromise(_0x9da1('0x4e'),_0x3cfe64[_0x9da1('0x12')],routingClient)[_0x9da1('0x6')](function(_0x1f0369){if(_0x3cfe64['query'][_0x9da1('0x4f')]!==undefined){var _0x244987=_(_0x1f0369[_0x9da1('0xf')])['filter']([_0x3cfe64[_0x9da1('0x12')][_0x9da1('0x4f')],_0x3cfe64[_0x9da1('0x17')]['id']])['map'](_0x9da1('0x50'))[_0x9da1('0x51')]()['value']();return _0x1f0369[_0x9da1('0xf')]['filter'](function(_0x247710){return _0x244987['indexOf'](_0x247710[_0x9da1('0x50')])>-0x1;});}else{return _0x1f0369[_0x9da1('0xf')][_0x9da1('0x52')](function(_0x2d3541){return _0x2d3541[_0x9da1('0x50')]===parseInt(_0x3cfe64[_0x9da1('0x17')]['id']);});}})[_0x9da1('0x6')](respondWithResult(_0x5daa11,null))[_0x9da1('0x13')](handleError(_0x5daa11,null));};exports[_0x9da1('0x53')]=function(_0x457b45,_0x323cae){return respondWithRpcPromise(_0x9da1('0x54'),_0x457b45[_0x9da1('0x12')],routingClient)['then'](respondWithResult(_0x323cae,null))[_0x9da1('0x13')](handleError(_0x323cae,null));};exports[_0x9da1('0x55')]=function(_0x27cec6,_0x890b14){return respondWithRpcPromise(_0x9da1('0x56'),_0x27cec6['query'],routingClient)[_0x9da1('0x6')](respondWithResult(_0x890b14,null))[_0x9da1('0x13')](handleError(_0x890b14,null));};exports['faxQueuesWaitingInteractions']=function(_0x4a4cda,_0x84f8d8){return respondWithRpcPromise(_0x9da1('0x57'),_0x4a4cda[_0x9da1('0x12')],routingClient)[_0x9da1('0x6')](respondWithResult(_0x84f8d8,null))[_0x9da1('0x13')](handleError(_0x84f8d8,null));};exports[_0x9da1('0x58')]=function(_0x1e5b52){return function(_0x1eaaeb,_0x29c4e8){var _0x1d02ff,_0x21748e;var _0x48341a=_[_0x9da1('0x59')](_0x1e5b52);var _0x49a95c=_0x1e5b52===_0x9da1('0x5a')?_0x9da1('0x5b'):_0x9da1('0x5c');return db[_0x48341a+_0x9da1('0x5d')][_0x9da1('0x5e')]({'raw':!![],'where':{'id':_0x1eaaeb['params']['id']}})[_0x9da1('0x6')](function(_0x354c5a){if(_['isNil'](_0x354c5a)){throw new Error(_0x48341a+_0x9da1('0x5f'));}_0x1d02ff=_0x354c5a;return db[_0x48341a+'Message'][_0x9da1('0x5e')]({'where':{'id':_0x1eaaeb['body'][_0x9da1('0x60')]},'include':[{'model':db[_0x48341a+_0x9da1('0x61')],'as':_0x9da1('0x61')},{'model':db[_0x48341a+_0x49a95c],'as':_0x9da1('0x5c')}]});})[_0x9da1('0x6')](function(_0x3e331a){if(_[_0x9da1('0xe')](_0x3e331a)){throw new Error(_0x48341a+_0x9da1('0x62'));}_0x21748e=_0x3e331a;return _0x3e331a[_0x9da1('0x63')]({'read':0x0,'readAt':null,'UserId':null});})[_0x9da1('0x6')](function(){var _0xbd3a16={'uniqueid':_0x1e5b52+'.'+_0x21748e['id']+'.'+_0x21748e[_0x9da1('0x61')]['id'],'FromUserId':_0x1eaaeb['user']['id'],'type':_0x9da1('0x64')};_0xbd3a16[_0x48341a+_0x9da1('0x65')]=_0x21748e['id'];_0xbd3a16[_0x48341a+_0x9da1('0x66')]=_0x21748e[_0x9da1('0x61')]['id'];_0xbd3a16[_0x9da1('0x67')+_0x48341a+_0x49a95c+'Id']=_0x21748e[_0x9da1('0x5c')]['id'];_0xbd3a16['To'+_0x48341a+'QueueId']=_0x1d02ff['id'];return db[_0x48341a+'TransferReport'][_0x9da1('0x68')](_0xbd3a16);})[_0x9da1('0x6')](function(){return respondWithRpcPromise(_0x9da1('0x69'),{'channel':_0x1e5b52,'interaction':_0x21748e['Interaction'],'message':_0x21748e,'account':_0x21748e[_0x9da1('0x5c')],'applications':[{'id':0x0,'priority':0x1,'app':_0x9da1('0x64'),'appdata':_0x1d02ff[_0x9da1('0xc')]+','+(_0x21748e[_0x9da1('0x5c')][_0x9da1('0x6a')]||0x12c),'interval':_0x9da1('0x6b')}]},routingClient);})[_0x9da1('0x6')](respondWithResult(_0x29c4e8,null))['catch'](handleError(_0x29c4e8,null));};};exports[_0x9da1('0x6c')]=function(_0x18fbc9,_0x5a64fd){var _0x56af13,_0x392d19;if(_['isNil'](_0x18fbc9['body'][_0x9da1('0x6d')])){throw new Error(_0x9da1('0x6e'));}var _0x3f9010=_0x18fbc9[_0x9da1('0x1c')][_0x9da1('0x6d')];var _0x30065d=_[_0x9da1('0x59')](_0x3f9010);var _0x39afa7=_0x3f9010==='chat'?'Website':_0x9da1('0x5c');return db[_0x9da1('0x6f')][_0x9da1('0x5e')]({'raw':!![],'where':{'id':_0x18fbc9[_0x9da1('0x17')]['id'],'role':_0x9da1('0x30')}})[_0x9da1('0x6')](function(_0x20a71f){if(_[_0x9da1('0xe')](_0x20a71f)){throw new Error('Agent\x20not\x20found');}_0x56af13=_0x20a71f;return db[_0x30065d+_0x9da1('0x70')]['findOne']({'where':{'id':_0x18fbc9[_0x9da1('0x1c')][_0x9da1('0x60')]},'include':[{'model':db[_0x30065d+_0x9da1('0x61')],'as':_0x9da1('0x61')},{'model':db[_0x30065d+_0x39afa7],'as':_0x9da1('0x5c')}]});})[_0x9da1('0x6')](function(_0xe59156){if(_['isNil'](_0xe59156)){throw new Error(_0x30065d+_0x9da1('0x62'));}_0x392d19=_0xe59156;return _0xe59156['update']({'read':0x0,'readAt':null,'UserId':null});})[_0x9da1('0x6')](function(){var _0x35322c={'uniqueid':_0x3f9010+'.'+_0x392d19['id']+'.'+_0x392d19[_0x9da1('0x61')]['id'],'FromUserId':_0x18fbc9[_0x9da1('0x27')]['id'],'type':'queue','ToUserId':_0x56af13['id']};_0x35322c[_0x30065d+_0x9da1('0x65')]=_0x392d19['id'];_0x35322c[_0x30065d+_0x9da1('0x66')]=_0x392d19[_0x9da1('0x61')]['id'];_0x35322c[_0x9da1('0x67')+_0x30065d+_0x39afa7+'Id']=_0x392d19[_0x9da1('0x5c')]['id'];return db[_0x30065d+_0x9da1('0x71')][_0x9da1('0x68')](_0x35322c);})[_0x9da1('0x6')](function(){return respondWithRpcPromise(_0x9da1('0x69'),{'channel':_0x3f9010,'interaction':_0x392d19[_0x9da1('0x61')],'message':_0x392d19,'account':_0x392d19[_0x9da1('0x5c')],'applications':[{'id':0x0,'priority':0x1,'app':_0x9da1('0x30'),'appdata':_0x56af13[_0x9da1('0xc')]+','+(_0x392d19[_0x9da1('0x5c')]['agentTransferTimeout']||0x12c),'interval':_0x9da1('0x6b')}]},routingClient);})['then'](respondWithResult(_0x5a64fd,null))[_0x9da1('0x13')](handleError(_0x5a64fd,null));};
\ No newline at end of file
+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(_0x173441,_0x26b0d9){var _0x2423a8=function(_0x4d96c2){while(--_0x4d96c2){_0x173441['push'](_0x173441['shift']());}};_0x2423a8(++_0x26b0d9);}(_0x7217,0x19e));var _0x7721=function(_0x3635ce,_0x33a6f9){_0x3635ce=_0x3635ce-0x0;var _0x97ecd0=_0x7217[_0x3635ce];return _0x97ecd0;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x47d9=['index','show','/:id/run','run','post','create','/:id','update','delete','multer','path','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated'];(function(_0x5388dd,_0x40b4fb){var _0x224200=function(_0x3a9845){while(--_0x3a9845){_0x5388dd['push'](_0x5388dd['shift']());}};_0x224200(++_0x40b4fb);}(_0x47d9,0x16e));var _0x947d=function(_0x24cec3,_0x28b042){_0x24cec3=_0x24cec3-0x0;var _0xa081d1=_0x47d9[_0x24cec3];return _0xa081d1;};'use strict';var multer=require(_0x947d('0x0'));var util=require('util');var path=require(_0x947d('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x947d('0x2')]();var fs_extra=require(_0x947d('0x3'));var auth=require(_0x947d('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x947d('0x5'));var controller=require('./schedule.controller');router[_0x947d('0x6')]('/',auth[_0x947d('0x7')](),controller[_0x947d('0x8')]);router[_0x947d('0x6')]('/:id',auth[_0x947d('0x7')](),controller[_0x947d('0x9')]);router[_0x947d('0x6')](_0x947d('0xa'),auth[_0x947d('0x7')](),controller[_0x947d('0xb')]);router[_0x947d('0xc')]('/',auth[_0x947d('0x7')](),controller[_0x947d('0xd')]);router['put'](_0x947d('0xe'),auth[_0x947d('0x7')](),controller[_0x947d('0xf')]);router[_0x947d('0x10')](_0x947d('0xe'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x8044=['index','/:id','run','post','create','put','update','destroy','exports','multer','util','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated'];(function(_0x945cdc,_0x465dde){var _0x2d9270=function(_0x57a3a8){while(--_0x57a3a8){_0x945cdc['push'](_0x945cdc['shift']());}};_0x2d9270(++_0x465dde);}(_0x8044,0xed));var _0x4804=function(_0x2125f0,_0x2f23b9){_0x2125f0=_0x2125f0-0x0;var _0x12d6eb=_0x8044[_0x2125f0];return _0x12d6eb;};'use strict';var multer=require(_0x4804('0x0'));var util=require(_0x4804('0x1'));var path=require('path');var timeout=require(_0x4804('0x2'));var express=require(_0x4804('0x3'));var router=express['Router']();var fs_extra=require(_0x4804('0x4'));var auth=require(_0x4804('0x5'));var interaction=require(_0x4804('0x6'));var config=require(_0x4804('0x7'));var controller=require('./schedule.controller');router[_0x4804('0x8')]('/',auth[_0x4804('0x9')](),controller[_0x4804('0xa')]);router[_0x4804('0x8')](_0x4804('0xb'),auth[_0x4804('0x9')](),controller['show']);router['get']('/:id/run',auth[_0x4804('0x9')](),controller[_0x4804('0xc')]);router[_0x4804('0xd')]('/',auth[_0x4804('0x9')](),controller[_0x4804('0xe')]);router[_0x4804('0xf')]('/:id',auth[_0x4804('0x9')](),controller[_0x4804('0x10')]);router['delete'](_0x4804('0xb'),auth[_0x4804('0x9')](),controller[_0x4804('0x11')]);module[_0x4804('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2543=['csv','pdf','custom','default','BOOLEAN','TEXT','sequelize','STRING','0\x200\x20*\x20*\x20*','DATE','INTEGER','ENUM','quarters','weeks','days','hours','minutes'];(function(_0x422feb,_0xf7b090){var _0x3ae94a=function(_0x25fdd9){while(--_0x25fdd9){_0x422feb['push'](_0x422feb['shift']());}};_0x3ae94a(++_0xf7b090);}(_0x2543,0x116));var _0x3254=function(_0x3818c0,_0x542521){_0x3818c0=_0x3818c0-0x0;var _0x55ec33=_0x2543[_0x3818c0];return _0x55ec33;};'use strict';var Sequelize=require(_0x3254('0x0'));module['exports']={'name':{'type':Sequelize[_0x3254('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x3254('0x1')]},'active':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x3254('0x2')},'startAt':{'type':Sequelize[_0x3254('0x3')],'allowNull':![]},'endAt':{'type':Sequelize[_0x3254('0x3')],'allowNull':![]},'subtractNumber':{'type':Sequelize[_0x3254('0x4')],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize[_0x3254('0x5')]('years',_0x3254('0x6'),'months',_0x3254('0x7'),_0x3254('0x8'),_0x3254('0x9'),_0x3254('0xa')),'allowNull':![],'defaultValue':_0x3254('0x8')},'output':{'type':Sequelize[_0x3254('0x5')](_0x3254('0xb'),_0x3254('0xc'),'xlsx'),'allowNull':![],'defaultValue':_0x3254('0xb')},'type':{'type':Sequelize[_0x3254('0x5')](_0x3254('0xd'),_0x3254('0xe')),'allowNull':![],'defaultValue':_0x3254('0xd')},'sendMail':{'type':Sequelize[_0x3254('0xf')],'defaultValue':![]},'email':{'type':Sequelize[_0x3254('0x1')]},'cc':{'type':Sequelize[_0x3254('0x10')]},'bcc':{'type':Sequelize[_0x3254('0x10')]},'sendIfEmpty':{'type':Sequelize[_0x3254('0xf')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x5800=['BOOLEAN','0\x200\x20*\x20*\x20*','DATE','INTEGER','ENUM','years','quarters','months','weeks','days','hours','minutes','csv','xlsx','custom','default','sequelize','exports','STRING'];(function(_0x346720,_0x347def){var _0x5525ac=function(_0x37d5f1){while(--_0x37d5f1){_0x346720['push'](_0x346720['shift']());}};_0x5525ac(++_0x347def);}(_0x5800,0x1c5));var _0x0580=function(_0x25868d,_0x5d2688){_0x25868d=_0x25868d-0x0;var _0x317949=_0x5800[_0x25868d];return _0x317949;};'use strict';var Sequelize=require(_0x0580('0x0'));module[_0x0580('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize[_0x0580('0x2')]},'active':{'type':Sequelize[_0x0580('0x3')],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize[_0x0580('0x2')],'allowNull':![],'defaultValue':_0x0580('0x4')},'startAt':{'type':Sequelize[_0x0580('0x5')],'allowNull':![]},'endAt':{'type':Sequelize[_0x0580('0x5')],'allowNull':![]},'subtractNumber':{'type':Sequelize[_0x0580('0x6')],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize[_0x0580('0x7')](_0x0580('0x8'),_0x0580('0x9'),_0x0580('0xa'),_0x0580('0xb'),_0x0580('0xc'),_0x0580('0xd'),_0x0580('0xe')),'allowNull':![],'defaultValue':_0x0580('0xc')},'output':{'type':Sequelize['ENUM'](_0x0580('0xf'),'pdf',_0x0580('0x10')),'allowNull':![],'defaultValue':'csv'},'type':{'type':Sequelize[_0x0580('0x7')](_0x0580('0x11'),_0x0580('0x12')),'allowNull':![],'defaultValue':_0x0580('0x11')},'sendMail':{'type':Sequelize[_0x0580('0x3')],'defaultValue':![]},'email':{'type':Sequelize[_0x0580('0x2')]},'cc':{'type':Sequelize['TEXT']},'bcc':{'type':Sequelize['TEXT']},'sendIfEmpty':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd38e=['filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','options','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','../../config/schedule','run','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','then','destroy','get','Scheduler','UserProfileResource','error','stack','name','send','map','Schedule','rawAttributes','fieldName','type','query','keys'];(function(_0xe65ac8,_0x2691be){var _0x202ba1=function(_0x4af6ff){while(--_0x4af6ff){_0xe65ac8['push'](_0xe65ac8['shift']());}};_0x202ba1(++_0x2691be);}(_0xd38e,0x17d));var _0xed38=function(_0x3bf263,_0x21f769){_0x3bf263=_0x3bf263-0x0;var _0x218c30=_0xd38e[_0x3bf263];return _0x218c30;};'use strict';var emlformat=require(_0xed38('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xed38('0x1'));var jsonpatch=require(_0xed38('0x2'));var rp=require(_0xed38('0x3'));var moment=require(_0xed38('0x4'));var BPromise=require(_0xed38('0x5'));var Mustache=require('mustache');var util=require(_0xed38('0x6'));var path=require(_0xed38('0x7'));var sox=require(_0xed38('0x8'));var csv=require('to-csv');var ejs=require(_0xed38('0x9'));var fs=require('fs');var fs_extra=require(_0xed38('0xa'));var _=require(_0xed38('0xb'));var squel=require('squel');var crypto=require(_0xed38('0xc'));var jsforce=require(_0xed38('0xd'));var deskjs=require(_0xed38('0xe'));var toCsv=require('to-csv');var querystring=require(_0xed38('0xf'));var Papa=require(_0xed38('0x10'));var Redis=require(_0xed38('0x11'));var authService=require(_0xed38('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xed38('0x13'));var hardwareService=require(_0xed38('0x14'));var logger=require(_0xed38('0x15'))(_0xed38('0x16'));var utils=require(_0xed38('0x17'));var config=require(_0xed38('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x272d44,_0x5475bb){_0x5475bb=_0x5475bb||0xcc;return function(_0x5c7566){if(_0x5c7566){return _0x272d44[_0xed38('0x19')](_0x5475bb);}return _0x272d44[_0xed38('0x1a')](_0x5475bb)[_0xed38('0x1b')]();};}function respondWithResult(_0x4869f4,_0x4cce14){_0x4cce14=_0x4cce14||0xc8;return function(_0x538b80){if(_0x538b80){return _0x4869f4['status'](_0x4cce14)['json'](_0x538b80);}};}function respondWithFilteredResult(_0x3c1484,_0x38a4e9){return function(_0x116fee){if(_0x116fee){var _0xfb9287=typeof _0x38a4e9[_0xed38('0x1c')]===_0xed38('0x1d')&&typeof _0x38a4e9['limit']===_0xed38('0x1d');var _0x4c9cc4=_0x116fee[_0xed38('0x1e')];var _0x9f6dcd=_0xfb9287?0x0:_0x38a4e9[_0xed38('0x1c')];var _0x12950b=_0xfb9287?_0x116fee[_0xed38('0x1e')]:_0x38a4e9['offset']+_0x38a4e9[_0xed38('0x1f')];var _0x356da1;if(_0x12950b>=_0x4c9cc4){_0x12950b=_0x4c9cc4;_0x356da1=0xc8;}else{_0x356da1=0xce;}_0x3c1484[_0xed38('0x1a')](_0x356da1);return _0x3c1484[_0xed38('0x20')](_0xed38('0x21'),_0x9f6dcd+'-'+_0x12950b+'/'+_0x4c9cc4)[_0xed38('0x22')](_0x116fee);}return null;};}function patchUpdates(_0x278bc3){return function(_0xebd9a8){try{jsonpatch[_0xed38('0x23')](_0xebd9a8,_0x278bc3,!![]);}catch(_0x5b8a4f){return BPromise[_0xed38('0x24')](_0x5b8a4f);}return _0xebd9a8[_0xed38('0x25')]();};}function saveUpdates(_0x3bba10,_0x18b84d){return function(_0x20f8ed){if(_0x20f8ed){return _0x20f8ed['update'](_0x3bba10)[_0xed38('0x26')](function(_0x57e58a){return _0x57e58a;});}return null;};}function removeEntity(_0x22f36d,_0x536107){return function(_0x570efc){if(_0x570efc){return _0x570efc[_0xed38('0x27')]()[_0xed38('0x26')](function(){var _0x20a274=_0x570efc[_0xed38('0x28')]({'plain':!![]});var _0x5a265a=_0xed38('0x29');return db[_0xed38('0x2a')][_0xed38('0x27')]({'where':{'type':_0x5a265a,'resourceId':_0x20a274['id']}})[_0xed38('0x26')](function(){return _0x570efc;});})['then'](function(){_0x22f36d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x307f0c,_0x2896e3){return function(_0x118435){if(!_0x118435){_0x307f0c['sendStatus'](0x194);}return _0x118435;};}function handleError(_0x426601,_0x3e874e){_0x3e874e=_0x3e874e||0x1f4;return function(_0x3b141c){logger[_0xed38('0x2b')](_0x3b141c[_0xed38('0x2c')]);if(_0x3b141c[_0xed38('0x2d')]){delete _0x3b141c[_0xed38('0x2d')];}_0x426601['status'](_0x3e874e)[_0xed38('0x2e')](_0x3b141c);};}exports['index']=function(_0x1b00b1,_0x2b1e07){var _0x3d4656={},_0xf56de9={},_0x463500={'count':0x0,'rows':[]};var _0x151fe0=_[_0xed38('0x2f')](db[_0xed38('0x30')][_0xed38('0x31')],function(_0x413193){return{'name':_0x413193[_0xed38('0x32')],'type':_0x413193[_0xed38('0x33')]['key']};});_0xf56de9['model']=_[_0xed38('0x2f')](_0x151fe0,_0xed38('0x2d'));_0xf56de9[_0xed38('0x34')]=_[_0xed38('0x35')](_0x1b00b1[_0xed38('0x34')]);_0xf56de9[_0xed38('0x36')]=_[_0xed38('0x37')](_0xf56de9[_0xed38('0x38')],_0xf56de9[_0xed38('0x34')]);_0x3d4656[_0xed38('0x39')]=_[_0xed38('0x37')](_0xf56de9[_0xed38('0x38')],qs[_0xed38('0x3a')](_0x1b00b1['query']['fields']));_0x3d4656['attributes']=_0x3d4656[_0xed38('0x39')][_0xed38('0x3b')]?_0x3d4656[_0xed38('0x39')]:_0xf56de9[_0xed38('0x38')];if(!_0x1b00b1[_0xed38('0x34')][_0xed38('0x3c')](_0xed38('0x3d'))){_0x3d4656[_0xed38('0x1f')]=qs[_0xed38('0x1f')](_0x1b00b1[_0xed38('0x34')][_0xed38('0x1f')]);_0x3d4656[_0xed38('0x1c')]=qs[_0xed38('0x1c')](_0x1b00b1[_0xed38('0x34')][_0xed38('0x1c')]);}_0x3d4656[_0xed38('0x3e')]=qs['sort'](_0x1b00b1[_0xed38('0x34')][_0xed38('0x3f')]);_0x3d4656[_0xed38('0x40')]=qs['filters'](_[_0xed38('0x41')](_0x1b00b1[_0xed38('0x34')],_0xf56de9['filters']),_0x151fe0);if(_0x1b00b1['query'][_0xed38('0x42')]){_0x3d4656[_0xed38('0x40')]=_['merge'](_0x3d4656['where'],{'$or':_[_0xed38('0x2f')](_0x151fe0,function(_0x440d){if(_0x440d[_0xed38('0x33')]!==_0xed38('0x43')){var _0x2e9a4b={};_0x2e9a4b[_0x440d[_0xed38('0x2d')]]={'$like':'%'+_0x1b00b1[_0xed38('0x34')][_0xed38('0x42')]+'%'};return _0x2e9a4b;}})});}_0x3d4656=_['merge']({},_0x3d4656,_0x1b00b1['options']);var _0x44fb97={'where':_0x3d4656[_0xed38('0x40')]};return db[_0xed38('0x30')][_0xed38('0x1e')](_0x44fb97)['then'](function(_0x1da642){_0x463500['count']=_0x1da642;if(_0x1b00b1[_0xed38('0x34')][_0xed38('0x44')]){_0x3d4656[_0xed38('0x45')]=[{'all':!![]}];}return db[_0xed38('0x30')][_0xed38('0x46')](_0x3d4656);})[_0xed38('0x26')](function(_0x36f304){_0x463500[_0xed38('0x47')]=_0x36f304;return _0x463500;})['then'](respondWithFilteredResult(_0x2b1e07,_0x3d4656))[_0xed38('0x48')](handleError(_0x2b1e07,null));};exports[_0xed38('0x49')]=function(_0x370aa9,_0x1c90cb){var _0x3dcd40={'raw':![],'where':{'id':_0x370aa9[_0xed38('0x4a')]['id']}},_0x5e3207={};_0x5e3207[_0xed38('0x38')]=_[_0xed38('0x35')](db[_0xed38('0x30')][_0xed38('0x31')]);_0x5e3207[_0xed38('0x34')]=_['keys'](_0x370aa9['query']);_0x5e3207[_0xed38('0x36')]=_[_0xed38('0x37')](_0x5e3207[_0xed38('0x38')],_0x5e3207['query']);_0x3dcd40[_0xed38('0x39')]=_[_0xed38('0x37')](_0x5e3207['model'],qs['fields'](_0x370aa9[_0xed38('0x34')][_0xed38('0x3a')]));_0x3dcd40[_0xed38('0x39')]=_0x3dcd40[_0xed38('0x39')][_0xed38('0x3b')]?_0x3dcd40[_0xed38('0x39')]:_0x5e3207[_0xed38('0x38')];if(_0x370aa9['query'][_0xed38('0x44')]){_0x3dcd40[_0xed38('0x45')]=[{'all':!![]}];}_0x3dcd40=_['merge']({},_0x3dcd40,_0x370aa9[_0xed38('0x4b')]);return db[_0xed38('0x30')]['find'](_0x3dcd40)[_0xed38('0x26')](handleEntityNotFound(_0x1c90cb,null))[_0xed38('0x26')](respondWithResult(_0x1c90cb,null))['catch'](handleError(_0x1c90cb,null));};exports[_0xed38('0x4c')]=function(_0x75ff79,_0x2c0a2a){return db['Schedule'][_0xed38('0x4c')](_0x75ff79[_0xed38('0x4d')],{})[_0xed38('0x26')](function(_0x568f8d){var _0xf2fc81=_0x75ff79['user'][_0xed38('0x28')]({'plain':!![]});if(!_0xf2fc81)throw new Error(_0xed38('0x4e'));if(_0xf2fc81[_0xed38('0x4f')]==='user'){var _0xaa3089=_0x568f8d[_0xed38('0x28')]({'plain':!![]});var _0x37ae23=_0xed38('0x29');return db[_0xed38('0x50')][_0xed38('0x51')]({'where':{'name':_0x37ae23,'userProfileId':_0xf2fc81[_0xed38('0x52')]},'raw':!![]})[_0xed38('0x26')](function(_0x3f9cf1){if(_0x3f9cf1&&_0x3f9cf1[_0xed38('0x53')]===0x0){return db[_0xed38('0x2a')][_0xed38('0x4c')]({'name':_0xaa3089[_0xed38('0x2d')],'resourceId':_0xaa3089['id'],'type':_0x3f9cf1['name'],'sectionId':_0x3f9cf1['id']},{})['then'](function(){return _0x568f8d;});}else{return _0x568f8d;}})[_0xed38('0x48')](function(_0x43d47b){logger['error'](_0xed38('0x54'),_0x43d47b);throw _0x43d47b;});}return _0x568f8d;})['then'](respondWithResult(_0x2c0a2a,0xc9))[_0xed38('0x48')](handleError(_0x2c0a2a,null));};exports['update']=function(_0x1b1b2a,_0x166717){if(_0x1b1b2a[_0xed38('0x4d')]['id']){delete _0x1b1b2a[_0xed38('0x4d')]['id'];}return db[_0xed38('0x30')][_0xed38('0x51')]({'where':{'id':_0x1b1b2a[_0xed38('0x4a')]['id']}})[_0xed38('0x26')](handleEntityNotFound(_0x166717,null))[_0xed38('0x26')](saveUpdates(_0x1b1b2a['body'],null))[_0xed38('0x26')](respondWithResult(_0x166717,null))[_0xed38('0x48')](handleError(_0x166717,null));};exports[_0xed38('0x27')]=function(_0x1ee95c,_0x99b181){return db[_0xed38('0x30')][_0xed38('0x51')]({'where':{'id':_0x1ee95c[_0xed38('0x4a')]['id']}})[_0xed38('0x26')](handleEntityNotFound(_0x99b181,null))[_0xed38('0x26')](removeEntity(_0x99b181,null))[_0xed38('0x48')](handleError(_0x99b181,null));};exports['run']=function(_0xda3952,_0x1e17db,_0x480a67){var _0xe49278=require(_0xed38('0x55'));return db[_0xed38('0x30')][_0xed38('0x51')]({'where':{'id':_0xda3952[_0xed38('0x4a')]['id']},'raw':!![]})[_0xed38('0x26')](handleEntityNotFound(_0x1e17db,null))[_0xed38('0x26')](function(){_0xe49278[_0xed38('0x56')](_0xda3952[_0xed38('0x4a')]['id']);})['then'](respondWithStatusCode(_0x1e17db,null))[_0xed38('0x48')](handleError(_0x1e17db,null));};
\ No newline at end of file
+var _0x83cc=['rawAttributes','fieldName','type','key','map','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','run','../../config/schedule','eml-format','rimraf','zip-dir','request-promise','moment','mustache','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','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','error','name','send','index','Schedule'];(function(_0x29cf90,_0x3e88e6){var _0x3b7735=function(_0x4bae44){while(--_0x4bae44){_0x29cf90['push'](_0x29cf90['shift']());}};_0x3b7735(++_0x3e88e6);}(_0x83cc,0xdd));var _0xc83c=function(_0x37153e,_0x15c383){_0x37153e=_0x37153e-0x0;var _0x3d2981=_0x83cc[_0x37153e];return _0x3d2981;};'use strict';var emlformat=require(_0xc83c('0x0'));var rimraf=require(_0xc83c('0x1'));var zipdir=require(_0xc83c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc83c('0x3'));var moment=require(_0xc83c('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xc83c('0x5'));var util=require('util');var path=require(_0xc83c('0x6'));var sox=require(_0xc83c('0x7'));var csv=require(_0xc83c('0x8'));var ejs=require(_0xc83c('0x9'));var fs=require('fs');var fs_extra=require(_0xc83c('0xa'));var _=require(_0xc83c('0xb'));var squel=require(_0xc83c('0xc'));var crypto=require(_0xc83c('0xd'));var jsforce=require(_0xc83c('0xe'));var deskjs=require(_0xc83c('0xf'));var toCsv=require(_0xc83c('0x8'));var querystring=require('querystring');var Papa=require(_0xc83c('0x10'));var Redis=require(_0xc83c('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xc83c('0x12'));var as=require(_0xc83c('0x13'));var hardwareService=require(_0xc83c('0x14'));var logger=require(_0xc83c('0x15'))(_0xc83c('0x16'));var utils=require(_0xc83c('0x17'));var config=require(_0xc83c('0x18'));var licenseUtil=require(_0xc83c('0x19'));var db=require(_0xc83c('0x1a'))['db'];function respondWithStatusCode(_0x1399e1,_0xc52f84){_0xc52f84=_0xc52f84||0xcc;return function(_0x52ef08){if(_0x52ef08){return _0x1399e1[_0xc83c('0x1b')](_0xc52f84);}return _0x1399e1['status'](_0xc52f84)['end']();};}function respondWithResult(_0x2b322d,_0x17e581){_0x17e581=_0x17e581||0xc8;return function(_0x4ab207){if(_0x4ab207){return _0x2b322d[_0xc83c('0x1c')](_0x17e581)[_0xc83c('0x1d')](_0x4ab207);}};}function respondWithFilteredResult(_0x1c78c1,_0x167cdc){return function(_0x216a1c){if(_0x216a1c){var _0xbcf9a0=typeof _0x167cdc[_0xc83c('0x1e')]===_0xc83c('0x1f')&&typeof _0x167cdc[_0xc83c('0x20')]==='undefined';var _0x92913a=_0x216a1c[_0xc83c('0x21')];var _0x4aeb2e=_0xbcf9a0?0x0:_0x167cdc[_0xc83c('0x1e')];var _0x22b012=_0xbcf9a0?_0x216a1c[_0xc83c('0x21')]:_0x167cdc['offset']+_0x167cdc['limit'];var _0xf134e9;if(_0x22b012>=_0x92913a){_0x22b012=_0x92913a;_0xf134e9=0xc8;}else{_0xf134e9=0xce;}_0x1c78c1[_0xc83c('0x1c')](_0xf134e9);return _0x1c78c1[_0xc83c('0x22')](_0xc83c('0x23'),_0x4aeb2e+'-'+_0x22b012+'/'+_0x92913a)[_0xc83c('0x1d')](_0x216a1c);}return null;};}function patchUpdates(_0x1831da){return function(_0x1855d9){try{jsonpatch[_0xc83c('0x24')](_0x1855d9,_0x1831da,!![]);}catch(_0x1b816d){return BPromise[_0xc83c('0x25')](_0x1b816d);}return _0x1855d9['save']();};}function saveUpdates(_0x447a35,_0x585d65){return function(_0x2d9260){if(_0x2d9260){return _0x2d9260[_0xc83c('0x26')](_0x447a35)[_0xc83c('0x27')](function(_0x36810d){return _0x36810d;});}return null;};}function removeEntity(_0x2401fa,_0xa1a129){return function(_0x427f75){if(_0x427f75){return _0x427f75[_0xc83c('0x28')]()[_0xc83c('0x27')](function(){var _0x464e79=_0x427f75['get']({'plain':!![]});var _0x52893b='Scheduler';return db['UserProfileResource'][_0xc83c('0x28')]({'where':{'type':_0x52893b,'resourceId':_0x464e79['id']}})[_0xc83c('0x27')](function(){return _0x427f75;});})[_0xc83c('0x27')](function(){_0x2401fa[_0xc83c('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2dffd3,_0x796724){return function(_0x3ec460){if(!_0x3ec460){_0x2dffd3[_0xc83c('0x1b')](0x194);}return _0x3ec460;};}function handleError(_0x58fbdd,_0x3d02be){_0x3d02be=_0x3d02be||0x1f4;return function(_0x50f9b3){logger[_0xc83c('0x29')](_0x50f9b3['stack']);if(_0x50f9b3[_0xc83c('0x2a')]){delete _0x50f9b3[_0xc83c('0x2a')];}_0x58fbdd[_0xc83c('0x1c')](_0x3d02be)[_0xc83c('0x2b')](_0x50f9b3);};}exports[_0xc83c('0x2c')]=function(_0x159a1,_0x554528){var _0x4cf230={},_0x51d79a={},_0x170930={'count':0x0,'rows':[]};var _0x3d45e3=_['map'](db[_0xc83c('0x2d')][_0xc83c('0x2e')],function(_0x5f5c07){return{'name':_0x5f5c07[_0xc83c('0x2f')],'type':_0x5f5c07[_0xc83c('0x30')][_0xc83c('0x31')]};});_0x51d79a['model']=_[_0xc83c('0x32')](_0x3d45e3,_0xc83c('0x2a'));_0x51d79a[_0xc83c('0x33')]=_[_0xc83c('0x34')](_0x159a1['query']);_0x51d79a[_0xc83c('0x35')]=_[_0xc83c('0x36')](_0x51d79a[_0xc83c('0x37')],_0x51d79a[_0xc83c('0x33')]);_0x4cf230[_0xc83c('0x38')]=_[_0xc83c('0x36')](_0x51d79a[_0xc83c('0x37')],qs[_0xc83c('0x39')](_0x159a1[_0xc83c('0x33')]['fields']));_0x4cf230['attributes']=_0x4cf230[_0xc83c('0x38')][_0xc83c('0x3a')]?_0x4cf230[_0xc83c('0x38')]:_0x51d79a[_0xc83c('0x37')];if(!_0x159a1['query'][_0xc83c('0x3b')](_0xc83c('0x3c'))){_0x4cf230[_0xc83c('0x20')]=qs['limit'](_0x159a1[_0xc83c('0x33')][_0xc83c('0x20')]);_0x4cf230[_0xc83c('0x1e')]=qs[_0xc83c('0x1e')](_0x159a1[_0xc83c('0x33')][_0xc83c('0x1e')]);}_0x4cf230[_0xc83c('0x3d')]=qs['sort'](_0x159a1[_0xc83c('0x33')][_0xc83c('0x3e')]);_0x4cf230['where']=qs[_0xc83c('0x35')](_[_0xc83c('0x3f')](_0x159a1['query'],_0x51d79a[_0xc83c('0x35')]),_0x3d45e3);if(_0x159a1[_0xc83c('0x33')][_0xc83c('0x40')]){_0x4cf230['where']=_['merge'](_0x4cf230[_0xc83c('0x41')],{'$or':_[_0xc83c('0x32')](_0x3d45e3,function(_0x15d4a0){if(_0x15d4a0['type']!==_0xc83c('0x42')){var _0x1453ec={};_0x1453ec[_0x15d4a0[_0xc83c('0x2a')]]={'$like':'%'+_0x159a1[_0xc83c('0x33')][_0xc83c('0x40')]+'%'};return _0x1453ec;}})});}_0x4cf230=_[_0xc83c('0x43')]({},_0x4cf230,_0x159a1[_0xc83c('0x44')]);var _0xf09f44={'where':_0x4cf230[_0xc83c('0x41')]};return db[_0xc83c('0x2d')][_0xc83c('0x21')](_0xf09f44)[_0xc83c('0x27')](function(_0x29d3f7){_0x170930['count']=_0x29d3f7;if(_0x159a1[_0xc83c('0x33')][_0xc83c('0x45')]){_0x4cf230[_0xc83c('0x46')]=[{'all':!![]}];}return db['Schedule'][_0xc83c('0x47')](_0x4cf230);})[_0xc83c('0x27')](function(_0x440c96){_0x170930[_0xc83c('0x48')]=_0x440c96;return _0x170930;})[_0xc83c('0x27')](respondWithFilteredResult(_0x554528,_0x4cf230))[_0xc83c('0x49')](handleError(_0x554528,null));};exports[_0xc83c('0x4a')]=function(_0x3a64bf,_0x26d190){var _0x1e4549={'raw':![],'where':{'id':_0x3a64bf[_0xc83c('0x4b')]['id']}},_0xdb0703={};_0xdb0703[_0xc83c('0x37')]=_[_0xc83c('0x34')](db[_0xc83c('0x2d')][_0xc83c('0x2e')]);_0xdb0703['query']=_[_0xc83c('0x34')](_0x3a64bf[_0xc83c('0x33')]);_0xdb0703[_0xc83c('0x35')]=_['intersection'](_0xdb0703[_0xc83c('0x37')],_0xdb0703[_0xc83c('0x33')]);_0x1e4549[_0xc83c('0x38')]=_[_0xc83c('0x36')](_0xdb0703['model'],qs[_0xc83c('0x39')](_0x3a64bf[_0xc83c('0x33')][_0xc83c('0x39')]));_0x1e4549['attributes']=_0x1e4549[_0xc83c('0x38')][_0xc83c('0x3a')]?_0x1e4549[_0xc83c('0x38')]:_0xdb0703[_0xc83c('0x37')];if(_0x3a64bf['query'][_0xc83c('0x45')]){_0x1e4549[_0xc83c('0x46')]=[{'all':!![]}];}_0x1e4549=_['merge']({},_0x1e4549,_0x3a64bf[_0xc83c('0x44')]);return db['Schedule']['find'](_0x1e4549)[_0xc83c('0x27')](handleEntityNotFound(_0x26d190,null))[_0xc83c('0x27')](respondWithResult(_0x26d190,null))[_0xc83c('0x49')](handleError(_0x26d190,null));};exports[_0xc83c('0x4c')]=function(_0x16a70e,_0x2b3d0a){return db['Schedule']['create'](_0x16a70e[_0xc83c('0x4d')],{})[_0xc83c('0x27')](function(_0x573502){var _0x11cac2=_0x16a70e[_0xc83c('0x4e')][_0xc83c('0x4f')]({'plain':!![]});if(!_0x11cac2)throw new Error(_0xc83c('0x50'));if(_0x11cac2[_0xc83c('0x51')]===_0xc83c('0x4e')){var _0xeaf84b=_0x573502[_0xc83c('0x4f')]({'plain':!![]});var _0x2849a3='Scheduler';return db[_0xc83c('0x52')][_0xc83c('0x53')]({'where':{'name':_0x2849a3,'userProfileId':_0x11cac2[_0xc83c('0x54')]},'raw':!![]})['then'](function(_0x4e7723){if(_0x4e7723&&_0x4e7723[_0xc83c('0x55')]===0x0){return db[_0xc83c('0x56')][_0xc83c('0x4c')]({'name':_0xeaf84b[_0xc83c('0x2a')],'resourceId':_0xeaf84b['id'],'type':_0x4e7723['name'],'sectionId':_0x4e7723['id']},{})['then'](function(){return _0x573502;});}else{return _0x573502;}})[_0xc83c('0x49')](function(_0x2c276c){logger[_0xc83c('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2c276c);throw _0x2c276c;});}return _0x573502;})[_0xc83c('0x27')](respondWithResult(_0x2b3d0a,0xc9))[_0xc83c('0x49')](handleError(_0x2b3d0a,null));};exports[_0xc83c('0x26')]=function(_0x52c66f,_0x3806b5){if(_0x52c66f['body']['id']){delete _0x52c66f[_0xc83c('0x4d')]['id'];}return db[_0xc83c('0x2d')]['find']({'where':{'id':_0x52c66f['params']['id']}})[_0xc83c('0x27')](handleEntityNotFound(_0x3806b5,null))['then'](saveUpdates(_0x52c66f[_0xc83c('0x4d')],null))[_0xc83c('0x27')](respondWithResult(_0x3806b5,null))[_0xc83c('0x49')](handleError(_0x3806b5,null));};exports[_0xc83c('0x28')]=function(_0x1ea22e,_0x1b5423){return db['Schedule'][_0xc83c('0x53')]({'where':{'id':_0x1ea22e[_0xc83c('0x4b')]['id']}})[_0xc83c('0x27')](handleEntityNotFound(_0x1b5423,null))[_0xc83c('0x27')](removeEntity(_0x1b5423,null))['catch'](handleError(_0x1b5423,null));};exports[_0xc83c('0x57')]=function(_0x31c827,_0x47b6c,_0x1575e8){var _0x599b34=require(_0xc83c('0x58'));return db[_0xc83c('0x2d')]['find']({'where':{'id':_0x31c827[_0xc83c('0x4b')]['id']},'raw':!![]})[_0xc83c('0x27')](handleEntityNotFound(_0x47b6c,null))[_0xc83c('0x27')](function(){_0x599b34[_0xc83c('0x57')](_0x31c827[_0xc83c('0x4b')]['id']);})[_0xc83c('0x27')](respondWithStatusCode(_0x47b6c,null))[_0xc83c('0x49')](handleError(_0x47b6c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0fc2=['api','moment','bluebird','path','rimraf','../../config/environment','exports','define','Schedule','tools_schedules','../../config/logger'];(function(_0x5da296,_0x39335e){var _0x45baef=function(_0x256e2b){while(--_0x256e2b){_0x5da296['push'](_0x5da296['shift']());}};_0x45baef(++_0x39335e);}(_0x0fc2,0xfc));var _0x20fc=function(_0xb6ae21,_0x426cc7){_0xb6ae21=_0xb6ae21-0x0;var _0x16cc22=_0x0fc2[_0xb6ae21];return _0x16cc22;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x20fc('0x0'))(_0x20fc('0x1'));var moment=require(_0x20fc('0x2'));var BPromise=require(_0x20fc('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x20fc('0x4'));var rimraf=require(_0x20fc('0x5'));var config=require(_0x20fc('0x6'));var attributes=require('./schedule.attributes');module[_0x20fc('0x7')]=function(_0x34cbcf,_0xf8b92a){return _0x34cbcf[_0x20fc('0x8')](_0x20fc('0x9'),attributes,{'tableName':_0x20fc('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x546c=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define'];(function(_0xe15270,_0x227d06){var _0x1e813b=function(_0x1d590d){while(--_0x1d590d){_0xe15270['push'](_0xe15270['shift']());}};_0x1e813b(++_0x227d06);}(_0x546c,0x1d9));var _0xc546=function(_0x56580e,_0x5c9aff){_0x56580e=_0x56580e-0x0;var _0x311964=_0x546c[_0x56580e];return _0x311964;};'use strict';var _=require('lodash');var util=require(_0xc546('0x0'));var logger=require(_0xc546('0x1'))(_0xc546('0x2'));var moment=require(_0xc546('0x3'));var BPromise=require(_0xc546('0x4'));var rp=require(_0xc546('0x5'));var fs=require('fs');var path=require(_0xc546('0x6'));var rimraf=require(_0xc546('0x7'));var config=require(_0xc546('0x8'));var attributes=require('./schedule.attributes');module[_0xc546('0x9')]=function(_0x22e82c,_0x235dad){return _0x22e82c[_0xc546('0xa')]('Schedule',attributes,{'tableName':'tools_schedules','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5405=['../../config/utils','../../config/logger','rpc','client','http','then','info','Schedule,\x20%s,\x20%s','request\x20sent','debug','Schedule,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','util','moment','bluebird','ioredis','../../mysqldb'];(function(_0x1af5bc,_0x1bccdf){var _0x1b3ca0=function(_0x226e9d){while(--_0x226e9d){_0x1af5bc['push'](_0x1af5bc['shift']());}};_0x1b3ca0(++_0x1bccdf);}(_0x5405,0x8e));var _0x5540=function(_0x358478,_0x5f2729){_0x358478=_0x358478-0x0;var _0x1aa513=_0x5405[_0x358478];return _0x1aa513;};'use strict';var _=require('lodash');var util=require(_0x5540('0x0'));var moment=require(_0x5540('0x1'));var BPromise=require(_0x5540('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5540('0x3'));var db=require(_0x5540('0x4'))['db'];var utils=require(_0x5540('0x5'));var logger=require(_0x5540('0x6'))(_0x5540('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x5540('0x8')][_0x5540('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x344cc7,_0x18b2e6,_0x184bf6){return new BPromise(function(_0x230be6,_0x47112b){return client['request'](_0x344cc7,_0x184bf6)[_0x5540('0xa')](function(_0x2c9d08){logger[_0x5540('0xb')](_0x5540('0xc'),_0x18b2e6,_0x5540('0xd'));logger[_0x5540('0xe')](_0x5540('0xf'),_0x18b2e6,'request\x20sent',JSON[_0x5540('0x10')](_0x2c9d08));if(_0x2c9d08[_0x5540('0x11')]){if(_0x2c9d08[_0x5540('0x11')][_0x5540('0x12')]===0x1f4){logger['error'](_0x5540('0xc'),_0x18b2e6,_0x2c9d08[_0x5540('0x11')]['message']);return _0x47112b(_0x2c9d08['error'][_0x5540('0x13')]);}logger['error'](_0x5540('0xc'),_0x18b2e6,_0x2c9d08['error'][_0x5540('0x13')]);return _0x230be6(_0x2c9d08['error'][_0x5540('0x13')]);}else{logger['info']('Schedule,\x20%s,\x20%s',_0x18b2e6,_0x5540('0xd'));_0x230be6(_0x2c9d08['result'][_0x5540('0x13')]);}})[_0x5540('0x14')](function(_0x22ca85){logger[_0x5540('0x11')](_0x5540('0xc'),_0x18b2e6,_0x22ca85);_0x47112b(_0x22ca85);});});}
\ No newline at end of file
+var _0x08a8=['debug','Schedule,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','request','then','info','Schedule,\x20%s,\x20%s'];(function(_0xb7472,_0x338ebc){var _0x3a2d25=function(_0x945283){while(--_0x945283){_0xb7472['push'](_0xb7472['shift']());}};_0x3a2d25(++_0x338ebc);}(_0x08a8,0x69));var _0x808a=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x08a8[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0x808a('0x0'));var moment=require(_0x808a('0x1'));var BPromise=require(_0x808a('0x2'));var rs=require(_0x808a('0x3'));var fs=require('fs');var Redis=require(_0x808a('0x4'));var db=require(_0x808a('0x5'))['db'];var utils=require(_0x808a('0x6'));var logger=require('../../config/logger')(_0x808a('0x7'));var config=require('../../config/environment');var jayson=require(_0x808a('0x8'));var client=jayson[_0x808a('0x9')][_0x808a('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2414ca,_0x357101,_0x4f7603){return new BPromise(function(_0x1f90ef,_0x42583b){return client[_0x808a('0xb')](_0x2414ca,_0x4f7603)[_0x808a('0xc')](function(_0x5ed3c4){logger[_0x808a('0xd')](_0x808a('0xe'),_0x357101,'request\x20sent');logger[_0x808a('0xf')](_0x808a('0x10'),_0x357101,_0x808a('0x11'),JSON[_0x808a('0x12')](_0x5ed3c4));if(_0x5ed3c4[_0x808a('0x13')]){if(_0x5ed3c4['error'][_0x808a('0x14')]===0x1f4){logger[_0x808a('0x13')]('Schedule,\x20%s,\x20%s',_0x357101,_0x5ed3c4[_0x808a('0x13')][_0x808a('0x15')]);return _0x42583b(_0x5ed3c4[_0x808a('0x13')][_0x808a('0x15')]);}logger[_0x808a('0x13')](_0x808a('0xe'),_0x357101,_0x5ed3c4[_0x808a('0x13')][_0x808a('0x15')]);return _0x1f90ef(_0x5ed3c4['error'][_0x808a('0x15')]);}else{logger['info'](_0x808a('0xe'),_0x357101,'request\x20sent');_0x1f90ef(_0x5ed3c4[_0x808a('0x16')][_0x808a('0x15')]);}})[_0x808a('0x17')](function(_0x33382c){logger['error'](_0x808a('0xe'),_0x357101,_0x33382c);_0x42583b(_0x33382c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3b9b=['path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','describe','/:id','show','/:id/download','download','post','create','put','delete','destroy','util'];(function(_0x5b6d6b,_0x4d5dbb){var _0x569054=function(_0x25a5bc){while(--_0x25a5bc){_0x5b6d6b['push'](_0x5b6d6b['shift']());}};_0x569054(++_0x4d5dbb);}(_0x3b9b,0xdb));var _0xb3b9=function(_0x411cc2,_0x578d2d){_0x411cc2=_0x411cc2-0x0;var _0x57b086=_0x3b9b[_0x411cc2];return _0x57b086;};'use strict';var multer=require('multer');var util=require(_0xb3b9('0x0'));var path=require(_0xb3b9('0x1'));var timeout=require(_0xb3b9('0x2'));var express=require(_0xb3b9('0x3'));var router=express[_0xb3b9('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xb3b9('0x5'));var interaction=require(_0xb3b9('0x6'));var config=require('../../config/environment');var controller=require('./screenRecording.controller');router[_0xb3b9('0x7')]('/',auth[_0xb3b9('0x8')](),controller[_0xb3b9('0x9')]);router['get']('/describe',auth[_0xb3b9('0x8')](),controller[_0xb3b9('0xa')]);router[_0xb3b9('0x7')](_0xb3b9('0xb'),auth[_0xb3b9('0x8')](),controller[_0xb3b9('0xc')]);router[_0xb3b9('0x7')](_0xb3b9('0xd'),auth[_0xb3b9('0x8')](),controller[_0xb3b9('0xe')]);router[_0xb3b9('0xf')]('/',auth['isAuthenticated'](),controller[_0xb3b9('0x10')]);router[_0xb3b9('0x11')](_0xb3b9('0xb'),auth[_0xb3b9('0x8')](),controller['update']);router[_0xb3b9('0x12')]('/:id',auth[_0xb3b9('0x8')](),controller[_0xb3b9('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0xe189=['describe','/:id','/:id/download','download','post','create','put','update','delete','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./screenRecording.controller','get','isAuthenticated','/describe'];(function(_0x5ce9b2,_0x12dd1a){var _0xe05b07=function(_0x565b6a){while(--_0x565b6a){_0x5ce9b2['push'](_0x5ce9b2['shift']());}};_0xe05b07(++_0x12dd1a);}(_0xe189,0x1c2));var _0x9e18=function(_0x1b6b83,_0x22c6d2){_0x1b6b83=_0x1b6b83-0x0;var _0x24473b=_0xe189[_0x1b6b83];return _0x24473b;};'use strict';var multer=require(_0x9e18('0x0'));var util=require(_0x9e18('0x1'));var path=require(_0x9e18('0x2'));var timeout=require(_0x9e18('0x3'));var express=require(_0x9e18('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x9e18('0x5'));var interaction=require(_0x9e18('0x6'));var config=require(_0x9e18('0x7'));var controller=require(_0x9e18('0x8'));router[_0x9e18('0x9')]('/',auth[_0x9e18('0xa')](),controller['index']);router[_0x9e18('0x9')](_0x9e18('0xb'),auth[_0x9e18('0xa')](),controller[_0x9e18('0xc')]);router[_0x9e18('0x9')](_0x9e18('0xd'),auth[_0x9e18('0xa')](),controller['show']);router[_0x9e18('0x9')](_0x9e18('0xe'),auth[_0x9e18('0xa')](),controller[_0x9e18('0xf')]);router[_0x9e18('0x10')]('/',auth['isAuthenticated'](),controller[_0x9e18('0x11')]);router[_0x9e18('0x12')]('/:id',auth['isAuthenticated'](),controller[_0x9e18('0x13')]);router[_0x9e18('0x14')](_0x9e18('0xd'),auth[_0x9e18('0xa')](),controller['destroy']);module[_0x9e18('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x414f=['path','../../config/environment','VIRTUAL','getDataValue','value','extname','STRING','replace','setDataValue','INTEGER','startedAt','subtract','closedAt','format','MM-DD-YYYY\x20HH:mm','toString','createdAt','DATE','updatedAt','sequelize'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0x414f,0x13f));var _0xf414=function(_0x536eca,_0x18b615){_0x536eca=_0x536eca-0x0;var _0x28f35f=_0x414f[_0x536eca];return _0x28f35f;};'use strict';var Sequelize=require(_0xf414('0x0'));var moment=require('moment');var path=require(_0xf414('0x1'));var config=require(_0xf414('0x2'));module['exports']={'format':{'type':Sequelize[_0xf414('0x3')],'get':function(){return this[_0xf414('0x4')](_0xf414('0x5'))?path[_0xf414('0x6')](this[_0xf414('0x4')](_0xf414('0x5'))):undefined;}},'interactionid':{'type':Sequelize[_0xf414('0x7')]},'channel':{'type':Sequelize['STRING']},'value':{'type':Sequelize[_0xf414('0x7')],'set':function(_0x4cdcdb){var _0x34c4d0=_0x4cdcdb[_0xf414('0x8')](/\\/g,'/');this[_0xf414('0x9')]('value',_0x34c4d0);}},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'duration':{'type':Sequelize[_0xf414('0xa')],'set':function(_0x2bbf01){this[_0xf414('0x9')](_0xf414('0xb'),moment()[_0xf414('0xc')](_0x2bbf01,'ms'));this[_0xf414('0x9')](_0xf414('0xd'),moment());this[_0xf414('0x9')]('duration',_0x2bbf01);}},'startedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0xf414('0x4')](_0xf414('0xb')))[_0xf414('0xe')](_0xf414('0xf'))[_0xf414('0x10')]();}},'closedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0xf414('0x4')](_0xf414('0xd')))[_0xf414('0xe')](_0xf414('0xf'))[_0xf414('0x10')]();}},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0xf414('0x4')](_0xf414('0x11')))[_0xf414('0xe')](_0xf414('0xf'))[_0xf414('0x10')]();}},'updatedAt':{'type':Sequelize[_0xf414('0x12')],'get':function(){return moment(this[_0xf414('0x4')](_0xf414('0x13')))['format'](_0xf414('0xf'))[_0xf414('0x10')]();}}};
\ No newline at end of file
+var _0x94e6=['DATE','closedAt','toString','createdAt','updatedAt','sequelize','path','../../config/environment','exports','VIRTUAL','getDataValue','value','STRING','setDataValue','startedAt','subtract','duration','format','MM-DD-YYYY\x20HH:mm'];(function(_0x1ec208,_0x4461df){var _0x56ced9=function(_0x2b8d9a){while(--_0x2b8d9a){_0x1ec208['push'](_0x1ec208['shift']());}};_0x56ced9(++_0x4461df);}(_0x94e6,0x194));var _0x694e=function(_0x52c852,_0x10efdb){_0x52c852=_0x52c852-0x0;var _0x4c6a9c=_0x94e6[_0x52c852];return _0x4c6a9c;};'use strict';var Sequelize=require(_0x694e('0x0'));var moment=require('moment');var path=require(_0x694e('0x1'));var config=require(_0x694e('0x2'));module[_0x694e('0x3')]={'format':{'type':Sequelize[_0x694e('0x4')],'get':function(){return this[_0x694e('0x5')](_0x694e('0x6'))?path['extname'](this[_0x694e('0x5')](_0x694e('0x6'))):undefined;}},'interactionid':{'type':Sequelize['STRING']},'channel':{'type':Sequelize['STRING']},'value':{'type':Sequelize[_0x694e('0x7')],'set':function(_0x84e66e){var _0x1c0a45=_0x84e66e['replace'](/\\/g,'/');this['setDataValue'](_0x694e('0x6'),_0x1c0a45);}},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'duration':{'type':Sequelize['INTEGER'],'set':function(_0x4ab419){this[_0x694e('0x8')](_0x694e('0x9'),moment()[_0x694e('0xa')](_0x4ab419,'ms'));this[_0x694e('0x8')]('closedAt',moment());this[_0x694e('0x8')](_0x694e('0xb'),_0x4ab419);}},'startedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x694e('0x5')](_0x694e('0x9')))[_0x694e('0xc')](_0x694e('0xd'))['toString']();}},'closedAt':{'type':Sequelize[_0x694e('0xe')],'get':function(){return moment(this['getDataValue'](_0x694e('0xf')))[_0x694e('0xc')](_0x694e('0xd'))[_0x694e('0x10')]();}},'createdAt':{'type':Sequelize[_0x694e('0xe')],'get':function(){return moment(this[_0x694e('0x5')](_0x694e('0x11')))[_0x694e('0xc')](_0x694e('0xd'))[_0x694e('0x10')]();}},'updatedAt':{'type':Sequelize[_0x694e('0xe')],'get':function(){return moment(this[_0x694e('0x5')](_0x694e('0x12')))['format'](_0x694e('0xd'))[_0x694e('0x10')]();}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf2ca=['ScreenRecording','rawAttributes','type','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','options','count','includeAll','include','rows','show','params','keys','find','create','catch','body','duration','createdAt','closedAt','value','describe','download','../../components/encryptor','uniqueid','join','root','server/files/screen_recordings','format','%s.cypher','existsSync','secrets','ValidationError','ScreenRecording\x20not\x20found','filename','unlink','Not\x20found','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','apply','reject','then','error','stack','name','send','index','map'];(function(_0x235186,_0xf3fdc2){var _0x103007=function(_0x2bc469){while(--_0x2bc469){_0x235186['push'](_0x235186['shift']());}};_0x103007(++_0xf3fdc2);}(_0xf2ca,0x16a));var _0xaf2c=function(_0x595013,_0x65a215){_0x595013=_0x595013-0x0;var _0x2a29e3=_0xf2ca[_0x595013];return _0x2a29e3;};'use strict';var emlformat=require(_0xaf2c('0x0'));var rimraf=require(_0xaf2c('0x1'));var zipdir=require(_0xaf2c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xaf2c('0x3'));var moment=require(_0xaf2c('0x4'));var BPromise=require(_0xaf2c('0x5'));var Mustache=require(_0xaf2c('0x6'));var util=require(_0xaf2c('0x7'));var path=require(_0xaf2c('0x8'));var sox=require('sox');var csv=require(_0xaf2c('0x9'));var ejs=require(_0xaf2c('0xa'));var fs=require('fs');var fs_extra=require(_0xaf2c('0xb'));var _=require(_0xaf2c('0xc'));var squel=require('squel');var crypto=require(_0xaf2c('0xd'));var jsforce=require(_0xaf2c('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xaf2c('0x9'));var querystring=require('querystring');var Papa=require(_0xaf2c('0xf'));var Redis=require('ioredis');var authService=require(_0xaf2c('0x10'));var qs=require(_0xaf2c('0x11'));var as=require(_0xaf2c('0x12'));var hardwareService=require(_0xaf2c('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0xaf2c('0x14'));var config=require(_0xaf2c('0x15'));var licenseUtil=require(_0xaf2c('0x16'));var db=require(_0xaf2c('0x17'))['db'];function respondWithStatusCode(_0x285dac,_0x59a59b){_0x59a59b=_0x59a59b||0xcc;return function(_0x590126){if(_0x590126){return _0x285dac[_0xaf2c('0x18')](_0x59a59b);}return _0x285dac[_0xaf2c('0x19')](_0x59a59b)[_0xaf2c('0x1a')]();};}function respondWithResult(_0x18a8a5,_0x293ca6){_0x293ca6=_0x293ca6||0xc8;return function(_0x152c73){if(_0x152c73){return _0x18a8a5[_0xaf2c('0x19')](_0x293ca6)[_0xaf2c('0x1b')](_0x152c73);}};}function respondWithFilteredResult(_0x2119c8,_0x1d0633){return function(_0x6ac8e){if(_0x6ac8e){var _0x2b4d13=typeof _0x1d0633[_0xaf2c('0x1c')]===_0xaf2c('0x1d')&&typeof _0x1d0633[_0xaf2c('0x1e')]==='undefined';var _0x3ca650=_0x6ac8e['count'];var _0x278a28=_0x2b4d13?0x0:_0x1d0633[_0xaf2c('0x1c')];var _0x1d544a=_0x2b4d13?_0x6ac8e['count']:_0x1d0633[_0xaf2c('0x1c')]+_0x1d0633[_0xaf2c('0x1e')];var _0x1fec4c;if(_0x1d544a>=_0x3ca650){_0x1d544a=_0x3ca650;_0x1fec4c=0xc8;}else{_0x1fec4c=0xce;}_0x2119c8[_0xaf2c('0x19')](_0x1fec4c);return _0x2119c8[_0xaf2c('0x1f')](_0xaf2c('0x20'),_0x278a28+'-'+_0x1d544a+'/'+_0x3ca650)['json'](_0x6ac8e);}return null;};}function patchUpdates(_0x35e712){return function(_0x164bcb){try{jsonpatch[_0xaf2c('0x21')](_0x164bcb,_0x35e712,!![]);}catch(_0x3bfd3f){return BPromise[_0xaf2c('0x22')](_0x3bfd3f);}return _0x164bcb['save']();};}function saveUpdates(_0x396646,_0xbf6f62){return function(_0x18153c){if(_0x18153c){return _0x18153c['update'](_0x396646)['then'](function(_0x29cbdf){return _0x29cbdf;});}return null;};}function removeEntity(_0x303546,_0x1cafad){return function(_0x99f78d){if(_0x99f78d){return _0x99f78d['destroy']()[_0xaf2c('0x23')](function(){_0x303546[_0xaf2c('0x19')](0xcc)[_0xaf2c('0x1a')]();});}};}function handleEntityNotFound(_0x3c1ae6,_0xe929b5){return function(_0xff396f){if(!_0xff396f){_0x3c1ae6[_0xaf2c('0x18')](0x194);}return _0xff396f;};}function handleError(_0x4a8dd8,_0x29f8b0){_0x29f8b0=_0x29f8b0||0x1f4;return function(_0x2051be){logger[_0xaf2c('0x24')](_0x2051be[_0xaf2c('0x25')]);if(_0x2051be['name']){delete _0x2051be[_0xaf2c('0x26')];}_0x4a8dd8['status'](_0x29f8b0)[_0xaf2c('0x27')](_0x2051be);};}exports[_0xaf2c('0x28')]=function(_0x15466b,_0x5d685a){var _0x2747bb={},_0x2ea490={},_0x3baee2={'count':0x0,'rows':[]};var _0x4a96d2=_[_0xaf2c('0x29')](db[_0xaf2c('0x2a')][_0xaf2c('0x2b')],function(_0x19364e){return{'name':_0x19364e['fieldName'],'type':_0x19364e[_0xaf2c('0x2c')][_0xaf2c('0x2d')]};});_0x2ea490[_0xaf2c('0x2e')]=_['differenceBy'](_['map'](_0x4a96d2,_0xaf2c('0x26')),['format']);_0x2ea490[_0xaf2c('0x2f')]=_['keys'](_0x15466b[_0xaf2c('0x2f')]);_0x2ea490[_0xaf2c('0x30')]=_['intersection'](_0x2ea490[_0xaf2c('0x2e')],_0x2ea490[_0xaf2c('0x2f')]);_0x2747bb['attributes']=_[_0xaf2c('0x31')](_0x2ea490[_0xaf2c('0x2e')],qs[_0xaf2c('0x32')](_0x15466b[_0xaf2c('0x2f')][_0xaf2c('0x32')]));_0x2747bb[_0xaf2c('0x33')]=_0x2747bb['attributes'][_0xaf2c('0x34')]?_0x2747bb['attributes']:_0x2ea490[_0xaf2c('0x2e')];if(!_0x15466b['query'][_0xaf2c('0x35')]('nolimit')){_0x2747bb[_0xaf2c('0x1e')]=qs['limit'](_0x15466b[_0xaf2c('0x2f')]['limit']);_0x2747bb[_0xaf2c('0x1c')]=qs[_0xaf2c('0x1c')](_0x15466b[_0xaf2c('0x2f')][_0xaf2c('0x1c')]);}_0x2747bb[_0xaf2c('0x36')]=qs['sort'](_0x15466b['query'][_0xaf2c('0x37')]);_0x2747bb[_0xaf2c('0x38')]=qs[_0xaf2c('0x30')](_[_0xaf2c('0x39')](_0x15466b[_0xaf2c('0x2f')],_0x2ea490[_0xaf2c('0x30')]),_0x4a96d2);if(_0x15466b['query'][_0xaf2c('0x3a')]){_0x2747bb[_0xaf2c('0x38')]=_['merge'](_0x2747bb[_0xaf2c('0x38')],{'$or':_[_0xaf2c('0x29')](_0x4a96d2,function(_0x25bebd){if(_0x25bebd[_0xaf2c('0x2c')]!==_0xaf2c('0x3b')){var _0x1e8eaf={};_0x1e8eaf[_0x25bebd[_0xaf2c('0x26')]]={'$like':'%'+_0x15466b[_0xaf2c('0x2f')][_0xaf2c('0x3a')]+'%'};return _0x1e8eaf;}})});}_0x2747bb=_[_0xaf2c('0x3c')]({},_0x2747bb,_0x15466b[_0xaf2c('0x3d')]);var _0x43f606={'where':_0x2747bb[_0xaf2c('0x38')]};return db['ScreenRecording']['count'](_0x43f606)['then'](function(_0x189809){_0x3baee2[_0xaf2c('0x3e')]=_0x189809;if(_0x15466b[_0xaf2c('0x2f')][_0xaf2c('0x3f')]){_0x2747bb[_0xaf2c('0x40')]=[{'all':!![]}];}return db[_0xaf2c('0x2a')]['findAll'](_0x2747bb);})[_0xaf2c('0x23')](function(_0x78632a){_0x3baee2[_0xaf2c('0x41')]=_0x78632a;return _0x3baee2;})['then'](respondWithFilteredResult(_0x5d685a,_0x2747bb))['catch'](handleError(_0x5d685a,null));};exports[_0xaf2c('0x42')]=function(_0x4f8440,_0x181787){var _0x25ba26={'raw':![],'where':{'id':_0x4f8440[_0xaf2c('0x43')]['id']}},_0x20fb99={};_0x20fb99['model']=_[_0xaf2c('0x44')](db['ScreenRecording'][_0xaf2c('0x2b')]);_0x20fb99[_0xaf2c('0x2f')]=_['keys'](_0x4f8440[_0xaf2c('0x2f')]);_0x20fb99['filters']=_[_0xaf2c('0x31')](_0x20fb99[_0xaf2c('0x2e')],_0x20fb99[_0xaf2c('0x2f')]);_0x25ba26[_0xaf2c('0x33')]=_[_0xaf2c('0x31')](_0x20fb99[_0xaf2c('0x2e')],qs[_0xaf2c('0x32')](_0x4f8440[_0xaf2c('0x2f')][_0xaf2c('0x32')]));_0x25ba26['attributes']=_0x25ba26['attributes'][_0xaf2c('0x34')]?_0x25ba26['attributes']:_0x20fb99['model'];if(_0x4f8440['query'][_0xaf2c('0x3f')]){_0x25ba26[_0xaf2c('0x40')]=[{'all':!![]}];}_0x25ba26=_[_0xaf2c('0x3c')]({},_0x25ba26,_0x4f8440[_0xaf2c('0x3d')]);return db['ScreenRecording'][_0xaf2c('0x45')](_0x25ba26)['then'](handleEntityNotFound(_0x181787,null))[_0xaf2c('0x23')](respondWithResult(_0x181787,null))['catch'](handleError(_0x181787,null));};exports[_0xaf2c('0x46')]=function(_0x133e8c,_0x2d01b7){return db[_0xaf2c('0x2a')][_0xaf2c('0x46')](_0x133e8c['body'],{})[_0xaf2c('0x23')](respondWithResult(_0x2d01b7,0xc9))[_0xaf2c('0x47')](handleError(_0x2d01b7,null));};exports['update']=function(_0x4e8efd,_0x367b30){if(_0x4e8efd['body']['id']){delete _0x4e8efd[_0xaf2c('0x48')]['id'];}delete _0x4e8efd[_0xaf2c('0x48')][_0xaf2c('0x49')];delete _0x4e8efd[_0xaf2c('0x48')][_0xaf2c('0x4a')];delete _0x4e8efd[_0xaf2c('0x48')][_0xaf2c('0x4b')];delete _0x4e8efd[_0xaf2c('0x48')][_0xaf2c('0x4c')];return db[_0xaf2c('0x2a')][_0xaf2c('0x45')]({'where':{'id':_0x4e8efd['params']['id']}})[_0xaf2c('0x23')](handleEntityNotFound(_0x367b30,null))[_0xaf2c('0x23')](saveUpdates(_0x4e8efd['body'],null))['then'](respondWithResult(_0x367b30,null))['catch'](handleError(_0x367b30,null));};exports[_0xaf2c('0x4d')]=function(_0x1f6907,_0x551061){return db[_0xaf2c('0x2a')][_0xaf2c('0x4d')]()[_0xaf2c('0x23')](respondWithResult(_0x551061,null))[_0xaf2c('0x47')](handleError(_0x551061,null));};exports[_0xaf2c('0x4e')]=function(_0x170e67,_0x22b1fc,_0x490b95){var _0x2df52e=require(_0xaf2c('0x4f'));var _0x5771e5=![];var _0x245797={};if(_0x170e67[_0xaf2c('0x2f')][_0xaf2c('0x2c')]&&_0x170e67[_0xaf2c('0x2f')][_0xaf2c('0x2c')]===_0xaf2c('0x50')){_0x245797[_0xaf2c('0x50')]=_0x170e67[_0xaf2c('0x43')]['id'];}else{_0x245797['id']=_0x170e67[_0xaf2c('0x43')]['id'];}return db[_0xaf2c('0x2a')][_0xaf2c('0x45')]({'where':_0x245797,'attributes':['id',_0xaf2c('0x4c')],'raw':!![]})[_0xaf2c('0x23')](handleEntityNotFound(_0x22b1fc,null))[_0xaf2c('0x23')](function(_0x297a22){if(_0x297a22){var _0x2d6677=path[_0xaf2c('0x51')](config[_0xaf2c('0x52')],_0xaf2c('0x53'),_0x297a22[_0xaf2c('0x4c')]);var _0x5321c3=util[_0xaf2c('0x54')](_0xaf2c('0x55'),_0x2d6677);if(fs[_0xaf2c('0x56')](_0x5321c3)){_0x5771e5=!![];return _0x2df52e['decryptFile'](_0x5321c3,_0x2d6677,config[_0xaf2c('0x57')]['recording'])[_0xaf2c('0x23')](function(){return _0x297a22;});}return _0x297a22;}})[_0xaf2c('0x23')](function(_0xb3ad9){if(_0xb3ad9){var _0x45918b=path[_0xaf2c('0x51')](config[_0xaf2c('0x52')],_0xaf2c('0x53'),_0xb3ad9[_0xaf2c('0x4c')]);if(!fs[_0xaf2c('0x56')](_0x45918b)){throw new db['Sequelize'][(_0xaf2c('0x58'))](_0xaf2c('0x59'));}if(_0xb3ad9[_0xaf2c('0x5a')]){return _0x22b1fc[_0xaf2c('0x4e')](_0x45918b,_0xb3ad9[_0xaf2c('0x5a')]+path['extname'](_0x45918b),function(){if(_0x5771e5){fs[_0xaf2c('0x5b')](_0x45918b);}});}else{return _0x22b1fc[_0xaf2c('0x4e')](_0x45918b,function(_0x506000){if(_0x5771e5){fs[_0xaf2c('0x5b')](_0x45918b);}});}}})[_0xaf2c('0x47')](function(_0x4b7070){if(_0x4b7070['message']===_0xaf2c('0x59')){_0x22b1fc[_0xaf2c('0x19')](0x194)[_0xaf2c('0x27')](_0xaf2c('0x5c'));}else{return handleError(_0x22b1fc,null);}});};exports['destroy']=function(_0x36b6f0,_0x3f48f1){return db['ScreenRecording'][_0xaf2c('0x45')]({'where':{'id':_0x36b6f0['params']['id']}})[_0xaf2c('0x23')](function(_0xe6a251){if(_[_0xaf2c('0x5d')](_0xe6a251)){throw new ReferenceError(_0xaf2c('0x5e'));}return _0xe6a251;})[_0xaf2c('0x23')](function(_0x348f7e){var _0x1c9639=path[_0xaf2c('0x51')](config[_0xaf2c('0x52')],_0xaf2c('0x53'),_0x348f7e['value']);logger[_0xaf2c('0x5f')](_0xaf2c('0x60'),_0x1c9639);if(!_[_0xaf2c('0x5d')](_0x348f7e[_0xaf2c('0x4c')])&&fs[_0xaf2c('0x56')](_0x1c9639)){logger['info'](_0xaf2c('0x61')+_0x1c9639+_0xaf2c('0x62'));fs[_0xaf2c('0x63')](_0x1c9639);}_0x1c9639=_0x1c9639+_0xaf2c('0x64');if(!_[_0xaf2c('0x5d')](_0x348f7e['value'])&&fs['existsSync'](_0x1c9639)){logger[_0xaf2c('0x5f')](_0xaf2c('0x61')+_0x1c9639+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xaf2c('0x63')](_0x1c9639);}return _0x348f7e;})[_0xaf2c('0x23')](function(_0x2e189b){if(!_0x2e189b)throw new InternalError();return _0x2e189b['destroy']();})[_0xaf2c('0x23')](function(){_0x3f48f1[_0xaf2c('0x19')](0xcc)[_0xaf2c('0x1a')]();})[_0xaf2c('0x47')](handleError(_0x3f48f1,null));};
\ No newline at end of file
+var _0x4c4e=['findAll','rows','catch','params','keys','find','create','body','duration','createdAt','closedAt','describe','download','../../components/encryptor','uniqueid','value','join','root','server/files/screen_recordings','%s.cypher','existsSync','secrets','ValidationError','ScreenRecording\x20not\x20found','filename','extname','unlink','message','send','Not\x20found','isNil','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','destroy','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../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','apply','reject','save','update','then','sendStatus','name','index','map','ScreenRecording','rawAttributes','type','key','model','differenceBy','format','query','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include'];(function(_0x2f9467,_0x40576f){var _0x39894c=function(_0x13e344){while(--_0x13e344){_0x2f9467['push'](_0x2f9467['shift']());}};_0x39894c(++_0x40576f);}(_0x4c4e,0x152));var _0xe4c4=function(_0x4105bd,_0x29fd83){_0x4105bd=_0x4105bd-0x0;var _0x3e5035=_0x4c4e[_0x4105bd];return _0x3e5035;};'use strict';var emlformat=require(_0xe4c4('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe4c4('0x1'));var jsonpatch=require(_0xe4c4('0x2'));var rp=require(_0xe4c4('0x3'));var moment=require('moment');var BPromise=require(_0xe4c4('0x4'));var Mustache=require(_0xe4c4('0x5'));var util=require(_0xe4c4('0x6'));var path=require('path');var sox=require(_0xe4c4('0x7'));var csv=require('to-csv');var ejs=require(_0xe4c4('0x8'));var fs=require('fs');var fs_extra=require(_0xe4c4('0x9'));var _=require(_0xe4c4('0xa'));var squel=require(_0xe4c4('0xb'));var crypto=require(_0xe4c4('0xc'));var jsforce=require(_0xe4c4('0xd'));var deskjs=require(_0xe4c4('0xe'));var toCsv=require(_0xe4c4('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xe4c4('0x10'));var authService=require(_0xe4c4('0x11'));var qs=require(_0xe4c4('0x12'));var as=require(_0xe4c4('0x13'));var hardwareService=require(_0xe4c4('0x14'));var logger=require(_0xe4c4('0x15'))('api');var utils=require(_0xe4c4('0x16'));var config=require(_0xe4c4('0x17'));var licenseUtil=require(_0xe4c4('0x18'));var db=require(_0xe4c4('0x19'))['db'];function respondWithStatusCode(_0x50bfab,_0x262083){_0x262083=_0x262083||0xcc;return function(_0x115802){if(_0x115802){return _0x50bfab['sendStatus'](_0x262083);}return _0x50bfab[_0xe4c4('0x1a')](_0x262083)[_0xe4c4('0x1b')]();};}function respondWithResult(_0x5aa89b,_0x42ce9e){_0x42ce9e=_0x42ce9e||0xc8;return function(_0x29766a){if(_0x29766a){return _0x5aa89b['status'](_0x42ce9e)[_0xe4c4('0x1c')](_0x29766a);}};}function respondWithFilteredResult(_0x465c9b,_0x26ea05){return function(_0x40a36e){if(_0x40a36e){var _0x19e59b=typeof _0x26ea05[_0xe4c4('0x1d')]===_0xe4c4('0x1e')&&typeof _0x26ea05[_0xe4c4('0x1f')]===_0xe4c4('0x1e');var _0x36b10c=_0x40a36e[_0xe4c4('0x20')];var _0x42242c=_0x19e59b?0x0:_0x26ea05[_0xe4c4('0x1d')];var _0x43a9ce=_0x19e59b?_0x40a36e[_0xe4c4('0x20')]:_0x26ea05['offset']+_0x26ea05[_0xe4c4('0x1f')];var _0x24f946;if(_0x43a9ce>=_0x36b10c){_0x43a9ce=_0x36b10c;_0x24f946=0xc8;}else{_0x24f946=0xce;}_0x465c9b[_0xe4c4('0x1a')](_0x24f946);return _0x465c9b[_0xe4c4('0x21')]('Content-Range',_0x42242c+'-'+_0x43a9ce+'/'+_0x36b10c)[_0xe4c4('0x1c')](_0x40a36e);}return null;};}function patchUpdates(_0x1cad5d){return function(_0x1727eb){try{jsonpatch[_0xe4c4('0x22')](_0x1727eb,_0x1cad5d,!![]);}catch(_0x2c5aea){return BPromise[_0xe4c4('0x23')](_0x2c5aea);}return _0x1727eb[_0xe4c4('0x24')]();};}function saveUpdates(_0x393c96,_0x21bbb1){return function(_0x1a7690){if(_0x1a7690){return _0x1a7690[_0xe4c4('0x25')](_0x393c96)[_0xe4c4('0x26')](function(_0x138ead){return _0x138ead;});}return null;};}function removeEntity(_0x1db719,_0x15873e){return function(_0x59498e){if(_0x59498e){return _0x59498e['destroy']()[_0xe4c4('0x26')](function(){_0x1db719['status'](0xcc)[_0xe4c4('0x1b')]();});}};}function handleEntityNotFound(_0x5374fd,_0x3adfcb){return function(_0x5efc4c){if(!_0x5efc4c){_0x5374fd[_0xe4c4('0x27')](0x194);}return _0x5efc4c;};}function handleError(_0x583393,_0xba53ef){_0xba53ef=_0xba53ef||0x1f4;return function(_0x4a0199){logger['error'](_0x4a0199['stack']);if(_0x4a0199['name']){delete _0x4a0199[_0xe4c4('0x28')];}_0x583393['status'](_0xba53ef)['send'](_0x4a0199);};}exports[_0xe4c4('0x29')]=function(_0x11deab,_0x4bb911){var _0x57ba43={},_0x7428ad={},_0x33de43={'count':0x0,'rows':[]};var _0x4aa6c1=_[_0xe4c4('0x2a')](db[_0xe4c4('0x2b')][_0xe4c4('0x2c')],function(_0x48060e){return{'name':_0x48060e['fieldName'],'type':_0x48060e[_0xe4c4('0x2d')][_0xe4c4('0x2e')]};});_0x7428ad[_0xe4c4('0x2f')]=_[_0xe4c4('0x30')](_['map'](_0x4aa6c1,'name'),[_0xe4c4('0x31')]);_0x7428ad[_0xe4c4('0x32')]=_['keys'](_0x11deab[_0xe4c4('0x32')]);_0x7428ad[_0xe4c4('0x33')]=_[_0xe4c4('0x34')](_0x7428ad['model'],_0x7428ad[_0xe4c4('0x32')]);_0x57ba43['attributes']=_[_0xe4c4('0x34')](_0x7428ad[_0xe4c4('0x2f')],qs[_0xe4c4('0x35')](_0x11deab[_0xe4c4('0x32')][_0xe4c4('0x35')]));_0x57ba43[_0xe4c4('0x36')]=_0x57ba43[_0xe4c4('0x36')][_0xe4c4('0x37')]?_0x57ba43[_0xe4c4('0x36')]:_0x7428ad[_0xe4c4('0x2f')];if(!_0x11deab[_0xe4c4('0x32')][_0xe4c4('0x38')]('nolimit')){_0x57ba43[_0xe4c4('0x1f')]=qs[_0xe4c4('0x1f')](_0x11deab[_0xe4c4('0x32')]['limit']);_0x57ba43[_0xe4c4('0x1d')]=qs[_0xe4c4('0x1d')](_0x11deab[_0xe4c4('0x32')]['offset']);}_0x57ba43[_0xe4c4('0x39')]=qs[_0xe4c4('0x3a')](_0x11deab[_0xe4c4('0x32')][_0xe4c4('0x3a')]);_0x57ba43[_0xe4c4('0x3b')]=qs[_0xe4c4('0x33')](_[_0xe4c4('0x3c')](_0x11deab[_0xe4c4('0x32')],_0x7428ad[_0xe4c4('0x33')]),_0x4aa6c1);if(_0x11deab[_0xe4c4('0x32')]['filter']){_0x57ba43[_0xe4c4('0x3b')]=_[_0xe4c4('0x3d')](_0x57ba43[_0xe4c4('0x3b')],{'$or':_[_0xe4c4('0x2a')](_0x4aa6c1,function(_0x4c5551){if(_0x4c5551[_0xe4c4('0x2d')]!==_0xe4c4('0x3e')){var _0x4e6bd9={};_0x4e6bd9[_0x4c5551[_0xe4c4('0x28')]]={'$like':'%'+_0x11deab[_0xe4c4('0x32')]['filter']+'%'};return _0x4e6bd9;}})});}_0x57ba43=_[_0xe4c4('0x3d')]({},_0x57ba43,_0x11deab[_0xe4c4('0x3f')]);var _0x127bcd={'where':_0x57ba43[_0xe4c4('0x3b')]};return db[_0xe4c4('0x2b')][_0xe4c4('0x20')](_0x127bcd)[_0xe4c4('0x26')](function(_0x43201e){_0x33de43[_0xe4c4('0x20')]=_0x43201e;if(_0x11deab[_0xe4c4('0x32')][_0xe4c4('0x40')]){_0x57ba43[_0xe4c4('0x41')]=[{'all':!![]}];}return db['ScreenRecording'][_0xe4c4('0x42')](_0x57ba43);})[_0xe4c4('0x26')](function(_0x2b306d){_0x33de43[_0xe4c4('0x43')]=_0x2b306d;return _0x33de43;})[_0xe4c4('0x26')](respondWithFilteredResult(_0x4bb911,_0x57ba43))[_0xe4c4('0x44')](handleError(_0x4bb911,null));};exports['show']=function(_0x312a49,_0x526bef){var _0xca07dc={'raw':![],'where':{'id':_0x312a49[_0xe4c4('0x45')]['id']}},_0x3c067a={};_0x3c067a[_0xe4c4('0x2f')]=_[_0xe4c4('0x46')](db['ScreenRecording']['rawAttributes']);_0x3c067a[_0xe4c4('0x32')]=_[_0xe4c4('0x46')](_0x312a49[_0xe4c4('0x32')]);_0x3c067a['filters']=_[_0xe4c4('0x34')](_0x3c067a[_0xe4c4('0x2f')],_0x3c067a[_0xe4c4('0x32')]);_0xca07dc[_0xe4c4('0x36')]=_['intersection'](_0x3c067a[_0xe4c4('0x2f')],qs[_0xe4c4('0x35')](_0x312a49[_0xe4c4('0x32')][_0xe4c4('0x35')]));_0xca07dc[_0xe4c4('0x36')]=_0xca07dc[_0xe4c4('0x36')][_0xe4c4('0x37')]?_0xca07dc[_0xe4c4('0x36')]:_0x3c067a[_0xe4c4('0x2f')];if(_0x312a49['query'][_0xe4c4('0x40')]){_0xca07dc['include']=[{'all':!![]}];}_0xca07dc=_[_0xe4c4('0x3d')]({},_0xca07dc,_0x312a49[_0xe4c4('0x3f')]);return db[_0xe4c4('0x2b')][_0xe4c4('0x47')](_0xca07dc)[_0xe4c4('0x26')](handleEntityNotFound(_0x526bef,null))[_0xe4c4('0x26')](respondWithResult(_0x526bef,null))[_0xe4c4('0x44')](handleError(_0x526bef,null));};exports[_0xe4c4('0x48')]=function(_0x36f8ad,_0x18fb82){return db[_0xe4c4('0x2b')][_0xe4c4('0x48')](_0x36f8ad[_0xe4c4('0x49')],{})[_0xe4c4('0x26')](respondWithResult(_0x18fb82,0xc9))['catch'](handleError(_0x18fb82,null));};exports['update']=function(_0xe0e351,_0x198961){if(_0xe0e351['body']['id']){delete _0xe0e351[_0xe4c4('0x49')]['id'];}delete _0xe0e351[_0xe4c4('0x49')][_0xe4c4('0x4a')];delete _0xe0e351[_0xe4c4('0x49')][_0xe4c4('0x4b')];delete _0xe0e351['body'][_0xe4c4('0x4c')];delete _0xe0e351[_0xe4c4('0x49')]['value'];return db[_0xe4c4('0x2b')][_0xe4c4('0x47')]({'where':{'id':_0xe0e351['params']['id']}})[_0xe4c4('0x26')](handleEntityNotFound(_0x198961,null))['then'](saveUpdates(_0xe0e351[_0xe4c4('0x49')],null))[_0xe4c4('0x26')](respondWithResult(_0x198961,null))[_0xe4c4('0x44')](handleError(_0x198961,null));};exports[_0xe4c4('0x4d')]=function(_0x12eaed,_0x525534){return db[_0xe4c4('0x2b')][_0xe4c4('0x4d')]()[_0xe4c4('0x26')](respondWithResult(_0x525534,null))[_0xe4c4('0x44')](handleError(_0x525534,null));};exports[_0xe4c4('0x4e')]=function(_0x32a50e,_0x3ddcbe,_0x3aa205){var _0x1a96ba=require(_0xe4c4('0x4f'));var _0x1fe354=![];var _0x1940e3={};if(_0x32a50e[_0xe4c4('0x32')][_0xe4c4('0x2d')]&&_0x32a50e[_0xe4c4('0x32')][_0xe4c4('0x2d')]==='uniqueid'){_0x1940e3[_0xe4c4('0x50')]=_0x32a50e[_0xe4c4('0x45')]['id'];}else{_0x1940e3['id']=_0x32a50e[_0xe4c4('0x45')]['id'];}return db['ScreenRecording'][_0xe4c4('0x47')]({'where':_0x1940e3,'attributes':['id',_0xe4c4('0x51')],'raw':!![]})[_0xe4c4('0x26')](handleEntityNotFound(_0x3ddcbe,null))['then'](function(_0x45f959){if(_0x45f959){var _0x485c50=path[_0xe4c4('0x52')](config[_0xe4c4('0x53')],_0xe4c4('0x54'),_0x45f959['value']);var _0x479361=util[_0xe4c4('0x31')](_0xe4c4('0x55'),_0x485c50);if(fs[_0xe4c4('0x56')](_0x479361)){_0x1fe354=!![];return _0x1a96ba['decryptFile'](_0x479361,_0x485c50,config[_0xe4c4('0x57')]['recording'])['then'](function(){return _0x45f959;});}return _0x45f959;}})['then'](function(_0x4e08ec){if(_0x4e08ec){var _0x1ca931=path[_0xe4c4('0x52')](config[_0xe4c4('0x53')],_0xe4c4('0x54'),_0x4e08ec[_0xe4c4('0x51')]);if(!fs[_0xe4c4('0x56')](_0x1ca931)){throw new db['Sequelize'][(_0xe4c4('0x58'))](_0xe4c4('0x59'));}if(_0x4e08ec[_0xe4c4('0x5a')]){return _0x3ddcbe[_0xe4c4('0x4e')](_0x1ca931,_0x4e08ec[_0xe4c4('0x5a')]+path[_0xe4c4('0x5b')](_0x1ca931),function(){if(_0x1fe354){fs['unlink'](_0x1ca931);}});}else{return _0x3ddcbe['download'](_0x1ca931,function(_0x27599b){if(_0x1fe354){fs[_0xe4c4('0x5c')](_0x1ca931);}});}}})[_0xe4c4('0x44')](function(_0x3c8e44){if(_0x3c8e44[_0xe4c4('0x5d')]===_0xe4c4('0x59')){_0x3ddcbe[_0xe4c4('0x1a')](0x194)[_0xe4c4('0x5e')](_0xe4c4('0x5f'));}else{return handleError(_0x3ddcbe,null);}});};exports['destroy']=function(_0x59f033,_0x5a4138){return db['ScreenRecording'][_0xe4c4('0x47')]({'where':{'id':_0x59f033[_0xe4c4('0x45')]['id']}})[_0xe4c4('0x26')](function(_0x58f2dd){if(_[_0xe4c4('0x60')](_0x58f2dd)){throw new ReferenceError('Entity\x20not\x20found');}return _0x58f2dd;})[_0xe4c4('0x26')](function(_0x56ead3){var _0x5d6c0a=path[_0xe4c4('0x52')](config[_0xe4c4('0x53')],_0xe4c4('0x54'),_0x56ead3['value']);logger['info']('cancellazione\x20fisica\x20documento\x20%s',_0x5d6c0a);if(!_[_0xe4c4('0x60')](_0x56ead3[_0xe4c4('0x51')])&&fs['existsSync'](_0x5d6c0a)){logger[_0xe4c4('0x61')](_0xe4c4('0x62')+_0x5d6c0a+_0xe4c4('0x63'));fs['unlinkSync'](_0x5d6c0a);}_0x5d6c0a=_0x5d6c0a+'.cypher';if(!_[_0xe4c4('0x60')](_0x56ead3[_0xe4c4('0x51')])&&fs[_0xe4c4('0x56')](_0x5d6c0a)){logger[_0xe4c4('0x61')](_0xe4c4('0x62')+_0x5d6c0a+_0xe4c4('0x63'));fs['unlinkSync'](_0x5d6c0a);}return _0x56ead3;})[_0xe4c4('0x26')](function(_0x1bddd5){if(!_0x1bddd5)throw new InternalError();return _0x1bddd5[_0xe4c4('0x64')]();})['then'](function(){_0x5a4138[_0xe4c4('0x1a')](0xcc)[_0xe4c4('0x1b')]();})[_0xe4c4('0x44')](handleError(_0x5a4138,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3f5b=['../../config/environment','./screenRecording.attributes','exports','ScreenRecording','screen_recordings','interactionid','lodash','moment','bluebird','request-promise','path','rimraf'];(function(_0x4eb1c9,_0x3de1e8){var _0x255ab6=function(_0x44e933){while(--_0x44e933){_0x4eb1c9['push'](_0x4eb1c9['shift']());}};_0x255ab6(++_0x3de1e8);}(_0x3f5b,0x1c2));var _0xb3f5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3f5b[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xb3f5('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0xb3f5('0x1'));var BPromise=require(_0xb3f5('0x2'));var rp=require(_0xb3f5('0x3'));var fs=require('fs');var path=require(_0xb3f5('0x4'));var rimraf=require(_0xb3f5('0x5'));var config=require(_0xb3f5('0x6'));var attributes=require(_0xb3f5('0x7'));module[_0xb3f5('0x8')]=function(_0x14e99f,_0x24bdd5){return _0x14e99f['define'](_0xb3f5('0x9'),attributes,{'tableName':_0xb3f5('0xa'),'paranoid':![],'indexes':[{'name':_0xb3f5('0xb'),'fields':[_0xb3f5('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x22a4=['define','ScreenRecording','screen_recordings','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./screenRecording.attributes','exports'];(function(_0x5c9f5b,_0x4cb637){var _0x5f31cb=function(_0x343a18){while(--_0x343a18){_0x5c9f5b['push'](_0x5c9f5b['shift']());}};_0x5f31cb(++_0x4cb637);}(_0x22a4,0x10d));var _0x422a=function(_0x444779,_0x3fc36a){_0x444779=_0x444779-0x0;var _0xdaa3bc=_0x22a4[_0x444779];return _0xdaa3bc;};'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('../../config/environment');var attributes=require(_0x422a('0x9'));module[_0x422a('0xa')]=function(_0x3f04f8,_0x17053d){return _0x3f04f8[_0x422a('0xb')](_0x422a('0xc'),attributes,{'tableName':_0x422a('0xd'),'paranoid':![],'indexes':[{'name':'interactionid','fields':['interactionid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadec=['error','code','message','info','result','catch','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','ScreenRecording,\x20%s,\x20%s','request\x20sent','debug','ScreenRecording,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x52532d,_0x3a2f30){var _0xb6372d=function(_0x57f815){while(--_0x57f815){_0x52532d['push'](_0x52532d['shift']());}};_0xb6372d(++_0x3a2f30);}(_0xadec,0x17d));var _0xcade=function(_0x1893dd,_0x1df04f){_0x1893dd=_0x1893dd-0x0;var _0x5873e9=_0xadec[_0x1893dd];return _0x5873e9;};'use strict';var _=require(_0xcade('0x0'));var util=require('util');var moment=require(_0xcade('0x1'));var BPromise=require(_0xcade('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xcade('0x3'));var db=require(_0xcade('0x4'))['db'];var utils=require(_0xcade('0x5'));var logger=require(_0xcade('0x6'))(_0xcade('0x7'));var config=require(_0xcade('0x8'));var jayson=require(_0xcade('0x9'));var client=jayson[_0xcade('0xa')][_0xcade('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1fc946,_0x5eaeff,_0x319b42){return new BPromise(function(_0x456965,_0x4e2119){return client[_0xcade('0xc')](_0x1fc946,_0x319b42)[_0xcade('0xd')](function(_0x5a8fec){logger['info'](_0xcade('0xe'),_0x5eaeff,_0xcade('0xf'));logger[_0xcade('0x10')](_0xcade('0x11'),_0x5eaeff,'request\x20sent',JSON[_0xcade('0x12')](_0x5a8fec));if(_0x5a8fec[_0xcade('0x13')]){if(_0x5a8fec['error'][_0xcade('0x14')]===0x1f4){logger['error'](_0xcade('0xe'),_0x5eaeff,_0x5a8fec[_0xcade('0x13')][_0xcade('0x15')]);return _0x4e2119(_0x5a8fec[_0xcade('0x13')][_0xcade('0x15')]);}logger[_0xcade('0x13')](_0xcade('0xe'),_0x5eaeff,_0x5a8fec[_0xcade('0x13')][_0xcade('0x15')]);return _0x456965(_0x5a8fec['error']['message']);}else{logger[_0xcade('0x16')]('ScreenRecording,\x20%s,\x20%s',_0x5eaeff,_0xcade('0xf'));_0x456965(_0x5a8fec[_0xcade('0x17')][_0xcade('0x15')]);}})[_0xcade('0x18')](function(_0x109caa){logger[_0xcade('0x13')](_0xcade('0xe'),_0x5eaeff,_0x109caa);_0x4e2119(_0x109caa);});});}
\ No newline at end of file
+var _0xcbfb=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','ScreenRecording,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x12c4dc,_0x3f5464){var _0x1de008=function(_0x17513c){while(--_0x17513c){_0x12c4dc['push'](_0x12c4dc['shift']());}};_0x1de008(++_0x3f5464);}(_0xcbfb,0xb2));var _0xbcbf=function(_0x35cadb,_0x4b9d2a){_0x35cadb=_0x35cadb-0x0;var _0x1b516e=_0xcbfb[_0x35cadb];return _0x1b516e;};'use strict';var _=require(_0xbcbf('0x0'));var util=require(_0xbcbf('0x1'));var moment=require(_0xbcbf('0x2'));var BPromise=require(_0xbcbf('0x3'));var rs=require(_0xbcbf('0x4'));var fs=require('fs');var Redis=require(_0xbcbf('0x5'));var db=require(_0xbcbf('0x6'))['db'];var utils=require(_0xbcbf('0x7'));var logger=require(_0xbcbf('0x8'))(_0xbcbf('0x9'));var config=require(_0xbcbf('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xbcbf('0xb')][_0xbcbf('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x21bb1e,_0x2353f7,_0xf7958e){return new BPromise(function(_0x4ecb03,_0x305271){return client[_0xbcbf('0xd')](_0x21bb1e,_0xf7958e)[_0xbcbf('0xe')](function(_0x381b21){logger['info'](_0xbcbf('0xf'),_0x2353f7,_0xbcbf('0x10'));logger['debug']('ScreenRecording,\x20%s,\x20%s,\x20%s',_0x2353f7,_0xbcbf('0x10'),JSON[_0xbcbf('0x11')](_0x381b21));if(_0x381b21[_0xbcbf('0x12')]){if(_0x381b21[_0xbcbf('0x12')][_0xbcbf('0x13')]===0x1f4){logger[_0xbcbf('0x12')](_0xbcbf('0xf'),_0x2353f7,_0x381b21[_0xbcbf('0x12')]['message']);return _0x305271(_0x381b21[_0xbcbf('0x12')][_0xbcbf('0x14')]);}logger[_0xbcbf('0x12')](_0xbcbf('0xf'),_0x2353f7,_0x381b21['error'][_0xbcbf('0x14')]);return _0x4ecb03(_0x381b21[_0xbcbf('0x12')][_0xbcbf('0x14')]);}else{logger[_0xbcbf('0x15')](_0xbcbf('0xf'),_0x2353f7,'request\x20sent');_0x4ecb03(_0x381b21[_0xbcbf('0x16')][_0xbcbf('0x14')]);}})['catch'](function(_0x2c7a73){logger[_0xbcbf('0x12')]('ScreenRecording,\x20%s,\x20%s',_0x2353f7,_0x2c7a73);_0x305271(_0x2c7a73);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe53c=['format','%s%s','logo','extname','originalname','post','single','file','addLogo','logologin','addLogoLogin','preferred','addPreferred','/:id/favicon','put','/:id','update','exports','multer','Router','../../components/interaction/service','./setting.controller','isAuthenticated','index','get','/now','/:id/logo','getLogo','/:id/logo_login','getLogoLogin','gdpr','/:id/preferred','getPreferred','diskStorage','join','root','server/files/images/logos/'];(function(_0x4e416c,_0x2adacf){var _0x23e34a=function(_0x1591d2){while(--_0x1591d2){_0x4e416c['push'](_0x4e416c['shift']());}};_0x23e34a(++_0x2adacf);}(_0xe53c,0x184));var _0xce53=function(_0x525b28,_0x5cf5a0){_0x525b28=_0x525b28-0x0;var _0x180178=_0xe53c[_0x525b28];return _0x180178;};'use strict';var multer=require(_0xce53('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0xce53('0x1')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xce53('0x2'));var config=require('../../config/environment');var controller=require(_0xce53('0x3'));router['get']('/',auth[_0xce53('0x4')](),controller[_0xce53('0x5')]);router[_0xce53('0x6')](_0xce53('0x7'),controller['getDate']);router[_0xce53('0x6')]('/:id',controller['show']);router[_0xce53('0x6')](_0xce53('0x8'),controller[_0xce53('0x9')]);router['get'](_0xce53('0xa'),controller[_0xce53('0xb')]);router[_0xce53('0x6')]('/:id/gdpr',controller[_0xce53('0xc')]);router[_0xce53('0x6')](_0xce53('0xd'),controller[_0xce53('0xe')]);router['get']('/:id/favicon',controller['getFavicon']);var upload=multer({'storage':multer[_0xce53('0xf')]({'destination':function(_0x48633b,_0x577614,_0xe746f5){_0xe746f5(null,path[_0xce53('0x10')](config[_0xce53('0x11')],_0xce53('0x12')));},'filename':function(_0x28621d,_0xdafac8,_0x46bdb5){_0x46bdb5(null,util[_0xce53('0x13')](_0xce53('0x14'),_0xce53('0x15'),path[_0xce53('0x16')](_0xdafac8[_0xce53('0x17')])));}})});router[_0xce53('0x18')]('/:id/logo',upload[_0xce53('0x19')](_0xce53('0x1a')),controller[_0xce53('0x1b')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0xd59a60,_0x364c47,_0x467865){_0x467865(null,path[_0xce53('0x10')](config[_0xce53('0x11')],_0xce53('0x12')));},'filename':function(_0x2caf08,_0x549d77,_0x2e32ef){_0x2e32ef(null,util['format']('%s%s',_0xce53('0x1c'),path[_0xce53('0x16')](_0x549d77['originalname'])));}})});router[_0xce53('0x18')](_0xce53('0xa'),upload['single']('file'),controller[_0xce53('0x1d')]);var upload=multer({'storage':multer[_0xce53('0xf')]({'destination':function(_0x42a406,_0x26dbe9,_0x113ebe){_0x113ebe(null,path[_0xce53('0x10')](config['root'],_0xce53('0x12')));},'filename':function(_0x1ae4ef,_0x27047a,_0x4ff9e3){_0x4ff9e3(null,util[_0xce53('0x13')](_0xce53('0x14'),_0xce53('0x1e'),path['extname'](_0x27047a[_0xce53('0x17')])));}})});router[_0xce53('0x18')](_0xce53('0xd'),upload[_0xce53('0x19')](_0xce53('0x1a')),controller[_0xce53('0x1f')]);var upload=multer({'storage':multer[_0xce53('0xf')]({'destination':function(_0x4806c,_0x2e1f68,_0x574a4f){_0x574a4f(null,path[_0xce53('0x10')](config['root'],_0xce53('0x12')));},'filename':function(_0x13abd0,_0x426dd6,_0x3c10dd){_0x3c10dd(null,util['format'](_0xce53('0x14'),'favicon',path[_0xce53('0x16')](_0x426dd6[_0xce53('0x17')])));}})});router['post'](_0xce53('0x20'),upload[_0xce53('0x19')](_0xce53('0x1a')),controller['addFavicon']);router[_0xce53('0x21')](_0xce53('0x22'),auth[_0xce53('0x4')](),controller[_0xce53('0x23')]);module[_0xce53('0x24')]=router;
\ No newline at end of file
+var _0xce36=['getPreferred','/:id/favicon','getFavicon','diskStorage','join','server/files/images/logos/','format','logo','post','single','file','addLogo','root','%s%s','logologin','extname','originalname','addLogoLogin','preferred','favicon','addFavicon','put','exports','multer','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','./setting.controller','get','index','/now','getDate','/:id','/:id/logo','getLogo','/:id/logo_login','getLogoLogin','/:id/preferred'];(function(_0x4cf98e,_0xba4b79){var _0x1623ac=function(_0x459bc0){while(--_0x459bc0){_0x4cf98e['push'](_0x4cf98e['shift']());}};_0x1623ac(++_0xba4b79);}(_0xce36,0xe4));var _0x6ce3=function(_0x214a25,_0x15071d){_0x214a25=_0x214a25-0x0;var _0x405988=_0xce36[_0x214a25];return _0x405988;};'use strict';var multer=require(_0x6ce3('0x0'));var util=require(_0x6ce3('0x1'));var path=require('path');var timeout=require(_0x6ce3('0x2'));var express=require('express');var router=express[_0x6ce3('0x3')]();var fs_extra=require(_0x6ce3('0x4'));var auth=require(_0x6ce3('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x6ce3('0x6'));var controller=require(_0x6ce3('0x7'));router[_0x6ce3('0x8')]('/',auth['isAuthenticated'](),controller[_0x6ce3('0x9')]);router['get'](_0x6ce3('0xa'),controller[_0x6ce3('0xb')]);router[_0x6ce3('0x8')](_0x6ce3('0xc'),controller['show']);router[_0x6ce3('0x8')](_0x6ce3('0xd'),controller[_0x6ce3('0xe')]);router[_0x6ce3('0x8')](_0x6ce3('0xf'),controller[_0x6ce3('0x10')]);router[_0x6ce3('0x8')]('/:id/gdpr',controller['gdpr']);router[_0x6ce3('0x8')](_0x6ce3('0x11'),controller[_0x6ce3('0x12')]);router[_0x6ce3('0x8')](_0x6ce3('0x13'),controller[_0x6ce3('0x14')]);var upload=multer({'storage':multer[_0x6ce3('0x15')]({'destination':function(_0xa351ce,_0x205e91,_0x588506){_0x588506(null,path[_0x6ce3('0x16')](config['root'],_0x6ce3('0x17')));},'filename':function(_0xb6805b,_0x1ee37f,_0x12e311){_0x12e311(null,util[_0x6ce3('0x18')]('%s%s',_0x6ce3('0x19'),path['extname'](_0x1ee37f['originalname'])));}})});router[_0x6ce3('0x1a')](_0x6ce3('0xd'),upload[_0x6ce3('0x1b')](_0x6ce3('0x1c')),controller[_0x6ce3('0x1d')]);var upload=multer({'storage':multer[_0x6ce3('0x15')]({'destination':function(_0x4b08e6,_0x26eddd,_0x37e90a){_0x37e90a(null,path[_0x6ce3('0x16')](config[_0x6ce3('0x1e')],_0x6ce3('0x17')));},'filename':function(_0xb7d89c,_0x5eb0a6,_0x3c9508){_0x3c9508(null,util[_0x6ce3('0x18')](_0x6ce3('0x1f'),_0x6ce3('0x20'),path[_0x6ce3('0x21')](_0x5eb0a6[_0x6ce3('0x22')])));}})});router[_0x6ce3('0x1a')]('/:id/logo_login',upload[_0x6ce3('0x1b')](_0x6ce3('0x1c')),controller[_0x6ce3('0x23')]);var upload=multer({'storage':multer[_0x6ce3('0x15')]({'destination':function(_0x442839,_0x4e6c09,_0x12bc91){_0x12bc91(null,path[_0x6ce3('0x16')](config['root'],_0x6ce3('0x17')));},'filename':function(_0xde2e87,_0x5c5de5,_0x15e045){_0x15e045(null,util['format'](_0x6ce3('0x1f'),_0x6ce3('0x24'),path[_0x6ce3('0x21')](_0x5c5de5[_0x6ce3('0x22')])));}})});router[_0x6ce3('0x1a')]('/:id/preferred',upload[_0x6ce3('0x1b')](_0x6ce3('0x1c')),controller['addPreferred']);var upload=multer({'storage':multer[_0x6ce3('0x15')]({'destination':function(_0x43ac9a,_0x30a1e9,_0x457d32){_0x457d32(null,path[_0x6ce3('0x16')](config[_0x6ce3('0x1e')],_0x6ce3('0x17')));},'filename':function(_0x25b68c,_0x515661,_0x59fd78){_0x59fd78(null,util['format'](_0x6ce3('0x1f'),_0x6ce3('0x25'),path['extname'](_0x515661['originalname'])));}})});router[_0x6ce3('0x1a')](_0x6ce3('0x13'),upload[_0x6ce3('0x1b')](_0x6ce3('0x1c')),controller[_0x6ce3('0x26')]);router[_0x6ce3('0x27')](_0x6ce3('0xc'),auth['isAuthenticated'](),controller['update']);module[_0x6ce3('0x28')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f66=['STRING','BOOLEAN','UNSIGNED','exports','min_internal','INTEGER','min_mailbox'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x5f66,0x1a0));var _0x65f6=function(_0x138adb,_0x193fee){_0x138adb=_0x138adb-0x0;var _0x1b27f2=_0x5f66[_0x138adb];return _0x1b27f2;};'use strict';var Sequelize=require('sequelize');module[_0x65f6('0x0')]={'min_internal':{'type':Sequelize['INTEGER'](0xb),'unique':_0x65f6('0x1'),'defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0x65f6('0x2')](0xb),'unique':_0x65f6('0x3'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize[_0x65f6('0x2')](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize[_0x65f6('0x4')],'defaultValue':'/var/opt/motion2/server/files/sounds/converted'},'logo':{'type':Sequelize[_0x65f6('0x4')]},'defaultLogo':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0x65f6('0x4')]},'defaultLoginLogo':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize['STRING']},'defaultHeaderWhiteLabel':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'securePassword':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'firstSetup':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'stunaddr':{'type':Sequelize[_0x65f6('0x4')]},'turnaddr':{'type':Sequelize[_0x65f6('0x4')]},'turnusername':{'type':Sequelize[_0x65f6('0x4')]},'turnpassword':{'type':Sequelize[_0x65f6('0x4')]},'pageTitle':{'type':Sequelize['STRING']},'defaultPageTitle':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize[_0x65f6('0x2')](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize[_0x65f6('0x4')],'defaultValue':'https://www.xcally.com/bar/phonebar/autoupdater.xml'},'enableEmailPreview':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'split':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0x65f6('0x4')],'defaultValue':'alternate'},'chatTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'preferred':{'type':Sequelize[_0x65f6('0x4')]},'defaultPreferred':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'rtlSupport':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'defaultScreenRecordingPath':{'type':Sequelize[_0x65f6('0x4')]},'allowedLoginAttempts':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x5},'blockDuration':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0xa},'favicon':{'type':Sequelize[_0x65f6('0x4')]},'defaultFavicon':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'loginMailFrequency':{'type':Sequelize['INTEGER'],'defaultValue':0xa,'validate':{'min':0xa}},'transcribe':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'automaticTranscribe':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'transcribeAccountId':{'type':Sequelize['INTEGER']},'transcribeRegion':{'type':Sequelize[_0x65f6('0x4')]},'sentiment':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'automaticSentiment':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'sentimentAccountId':{'type':Sequelize[_0x65f6('0x2')]},'sentimentRegion':{'type':Sequelize[_0x65f6('0x4')]},'language':{'type':Sequelize[_0x65f6('0x4')]},'bucket':{'type':Sequelize[_0x65f6('0x4')]},'googleSsoEnabled':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'enforcePasswordHistory':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'passwordHistoryLimit':{'type':Sequelize['INTEGER'](0x2)[_0x65f6('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5}},'privacyPolicyEmail':{'type':Sequelize['INTEGER'](0x2)['UNSIGNED'],'defaultValue':0x0},'privacyPolicyName':{'type':Sequelize['INTEGER'](0x2)[_0x65f6('0x6')],'defaultValue':0x0},'privacyPolicyNumber':{'type':Sequelize[_0x65f6('0x2')](0x2)['UNSIGNED'],'defaultValue':0x0},'searchOnEnterKey':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'chatInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'mailInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'openchannelInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'smsInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'whatsappInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'stopRecordingOnTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x2ef3=['min_mailbox','STRING','/var/opt/motion2/server/files/sounds/converted','BOOLEAN','https://www.xcally.com/bar/phonebar/autoupdater.xml','UNSIGNED','sequelize','exports','INTEGER','min_internal'];(function(_0x2ba2b3,_0x3439ee){var _0x1c9fb1=function(_0x1e9ea3){while(--_0x1e9ea3){_0x2ba2b3['push'](_0x2ba2b3['shift']());}};_0x1c9fb1(++_0x3439ee);}(_0x2ef3,0xba));var _0x32ef=function(_0x4b80d3,_0x3207db){_0x4b80d3=_0x4b80d3-0x0;var _0x355110=_0x2ef3[_0x4b80d3];return _0x355110;};'use strict';var Sequelize=require(_0x32ef('0x0'));module[_0x32ef('0x1')]={'min_internal':{'type':Sequelize[_0x32ef('0x2')](0xb),'unique':_0x32ef('0x3'),'defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0x32ef('0x2')](0xb),'unique':_0x32ef('0x4'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize[_0x32ef('0x5')],'defaultValue':_0x32ef('0x6')},'logo':{'type':Sequelize['STRING']},'defaultLogo':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0x32ef('0x5')]},'defaultLoginLogo':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize['STRING']},'defaultHeaderWhiteLabel':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':!![]},'securePassword':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':!![]},'firstSetup':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':!![]},'stunaddr':{'type':Sequelize[_0x32ef('0x5')]},'turnaddr':{'type':Sequelize[_0x32ef('0x5')]},'turnusername':{'type':Sequelize[_0x32ef('0x5')]},'turnpassword':{'type':Sequelize[_0x32ef('0x5')]},'pageTitle':{'type':Sequelize[_0x32ef('0x5')]},'defaultPageTitle':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize[_0x32ef('0x5')],'defaultValue':_0x32ef('0x8')},'enableEmailPreview':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':![]},'split':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize[_0x32ef('0x2')],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0x32ef('0x5')],'defaultValue':'alternate'},'chatTimeout':{'type':Sequelize[_0x32ef('0x2')],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':!![]},'preferred':{'type':Sequelize['STRING']},'defaultPreferred':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'rtlSupport':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':![]},'defaultScreenRecordingPath':{'type':Sequelize['STRING']},'allowedLoginAttempts':{'type':Sequelize[_0x32ef('0x2')],'defaultValue':0x5},'blockDuration':{'type':Sequelize[_0x32ef('0x2')],'defaultValue':0xa},'favicon':{'type':Sequelize[_0x32ef('0x5')]},'defaultFavicon':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':!![]},'loginMailFrequency':{'type':Sequelize['INTEGER'],'defaultValue':0xa,'validate':{'min':0xa}},'transcribe':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'automaticTranscribe':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'transcribeAccountId':{'type':Sequelize[_0x32ef('0x2')]},'transcribeRegion':{'type':Sequelize[_0x32ef('0x5')]},'sentiment':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':![]},'automaticSentiment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'sentimentAccountId':{'type':Sequelize['INTEGER']},'sentimentRegion':{'type':Sequelize[_0x32ef('0x5')]},'language':{'type':Sequelize[_0x32ef('0x5')]},'bucket':{'type':Sequelize[_0x32ef('0x5')]},'googleSsoEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enforcePasswordHistory':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':!![]},'passwordHistoryLimit':{'type':Sequelize[_0x32ef('0x2')](0x2)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5}},'privacyPolicyEmail':{'type':Sequelize[_0x32ef('0x2')](0x2)[_0x32ef('0x9')],'defaultValue':0x0},'privacyPolicyName':{'type':Sequelize[_0x32ef('0x2')](0x2)[_0x32ef('0x9')],'defaultValue':0x0},'privacyPolicyNumber':{'type':Sequelize[_0x32ef('0x2')](0x2)[_0x32ef('0x9')],'defaultValue':0x0},'searchOnEnterKey':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'chatInteractionsReloadTimeout':{'type':Sequelize[_0x32ef('0x2')],'defaultValue':0x0},'mailInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'openchannelInteractionsReloadTimeout':{'type':Sequelize[_0x32ef('0x2')],'defaultValue':0x0},'smsInteractionsReloadTimeout':{'type':Sequelize[_0x32ef('0x2')],'defaultValue':0x0},'whatsappInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'stopRecordingOnTransfer':{'type':Sequelize[_0x32ef('0x7')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2141=['filter','map','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','rawAttributes','include','find','update','body','addLogo','file','logo','addLogoLogin','filename','loginLogo','../../config/license/util','getLogo','server/files/images/logos','favicon','defaultLogo','defaultLoginLogo','defaultPreferred','defaultFavicon','existsSync','join','root','toLower','default','upperFirst','custom','default_logo.svg','Sequelize','download','getLogoLogin','getLicense','preferred','default_loginLogo.svg','\x20not\x20found','gdpr','securePassword','addPreferred','getPreferred','default_preferred.png','ValidationError','getFavicon','default_favicon.ico','getDate','utcOffset','now','YYYY-MM-DD\x20HH:mm:ss:SSS','send','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','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','api','../../config/utils','../../config/environment','../../mysqldb','client','request','then','info','request\x20sent','debug','Setting,\x20%s,\x20%s,\x20%s','stringify','error','Setting,\x20%s,\x20%s','message','result','end','undefined','limit','count','offset','set','Content-Range','apply','reject','status','sendStatus','name','index','Setting','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick'];(function(_0x2f31b1,_0x17daa8){var _0x448988=function(_0x540f6b){while(--_0x540f6b){_0x2f31b1['push'](_0x2f31b1['shift']());}};_0x448988(++_0x17daa8);}(_0x2141,0x1ba));var _0x1214=function(_0x9f9a6d,_0x11b3ac){_0x9f9a6d=_0x9f9a6d-0x0;var _0x3fe616=_0x2141[_0x9f9a6d];return _0x3fe616;};'use strict';var emlformat=require(_0x1214('0x0'));var rimraf=require(_0x1214('0x1'));var zipdir=require(_0x1214('0x2'));var jsonpatch=require(_0x1214('0x3'));var rp=require(_0x1214('0x4'));var moment=require(_0x1214('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x1214('0x6'));var path=require(_0x1214('0x7'));var sox=require(_0x1214('0x8'));var csv=require(_0x1214('0x9'));var ejs=require(_0x1214('0xa'));var fs=require('fs');var fs_extra=require(_0x1214('0xb'));var _=require(_0x1214('0xc'));var squel=require(_0x1214('0xd'));var crypto=require(_0x1214('0xe'));var jsforce=require(_0x1214('0xf'));var deskjs=require(_0x1214('0x10'));var toCsv=require(_0x1214('0x9'));var querystring=require(_0x1214('0x11'));var Papa=require(_0x1214('0x12'));var Redis=require(_0x1214('0x13'));var authService=require(_0x1214('0x14'));var qs=require(_0x1214('0x15'));var as=require(_0x1214('0x16'));var hardwareService=require(_0x1214('0x17'));var logger=require('../../config/logger')(_0x1214('0x18'));var utils=require(_0x1214('0x19'));var config=require(_0x1214('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x1214('0x1b'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x1214('0x1c')]['http']({'port':0x232a});function respondWithRpcPromise(_0x34a8dd,_0x547142,_0x593ab8,_0x4a382a){return new BPromise(function(_0xf35f7a,_0x41678b){var _0x506f71=_0x4a382a||client;return _0x506f71[_0x1214('0x1d')](_0x34a8dd,_0x593ab8)[_0x1214('0x1e')](function(_0x4060fe){logger[_0x1214('0x1f')]('Setting,\x20%s,\x20%s',_0x547142,_0x1214('0x20'));logger[_0x1214('0x21')](_0x1214('0x22'),_0x547142,_0x1214('0x20'),JSON[_0x1214('0x23')](_0x4060fe));if(_0x4060fe[_0x1214('0x24')]){if(_0x4060fe[_0x1214('0x24')]['code']===0x1f4){logger[_0x1214('0x24')](_0x1214('0x25'),_0x547142,_0x4060fe[_0x1214('0x24')]['message']);return _0x41678b(_0x4060fe[_0x1214('0x24')][_0x1214('0x26')]);}logger['error'](_0x1214('0x25'),_0x547142,_0x4060fe[_0x1214('0x24')][_0x1214('0x26')]);return _0xf35f7a(_0x4060fe[_0x1214('0x24')]['message']);}else{logger[_0x1214('0x1f')]('Setting,\x20%s,\x20%s',_0x547142,'request\x20sent');_0xf35f7a(_0x4060fe[_0x1214('0x27')][_0x1214('0x26')]);}})['catch'](function(_0x336958){logger[_0x1214('0x24')](_0x1214('0x25'),_0x547142,_0x336958);_0x41678b(_0x336958);});});}function respondWithStatusCode(_0x5e403d,_0x222b15){_0x222b15=_0x222b15||0xcc;return function(_0x31626f){if(_0x31626f){return _0x5e403d['sendStatus'](_0x222b15);}return _0x5e403d['status'](_0x222b15)[_0x1214('0x28')]();};}function respondWithResult(_0x113b0a,_0x4afb3b){_0x4afb3b=_0x4afb3b||0xc8;return function(_0x3450cc){if(_0x3450cc){return _0x113b0a['status'](_0x4afb3b)['json'](_0x3450cc);}};}function respondWithFilteredResult(_0x502aa7,_0x2429ac){return function(_0x1b5074){if(_0x1b5074){var _0x328aa4=typeof _0x2429ac['offset']===_0x1214('0x29')&&typeof _0x2429ac[_0x1214('0x2a')]===_0x1214('0x29');var _0x23f0bc=_0x1b5074[_0x1214('0x2b')];var _0x2d1dc1=_0x328aa4?0x0:_0x2429ac['offset'];var _0x133a44=_0x328aa4?_0x1b5074[_0x1214('0x2b')]:_0x2429ac[_0x1214('0x2c')]+_0x2429ac['limit'];var _0x1896b7;if(_0x133a44>=_0x23f0bc){_0x133a44=_0x23f0bc;_0x1896b7=0xc8;}else{_0x1896b7=0xce;}_0x502aa7['status'](_0x1896b7);return _0x502aa7[_0x1214('0x2d')](_0x1214('0x2e'),_0x2d1dc1+'-'+_0x133a44+'/'+_0x23f0bc)['json'](_0x1b5074);}return null;};}function patchUpdates(_0x378872){return function(_0x3a6cc8){try{jsonpatch[_0x1214('0x2f')](_0x3a6cc8,_0x378872,!![]);}catch(_0x2a905e){return BPromise[_0x1214('0x30')](_0x2a905e);}return _0x3a6cc8['save']();};}function saveUpdates(_0x3d665e,_0x41d080){return function(_0x7fa0f){if(_0x7fa0f){return _0x7fa0f['update'](_0x3d665e)[_0x1214('0x1e')](function(_0x59c11f){return _0x59c11f;});}return null;};}function removeEntity(_0x35aa83,_0x444835){return function(_0x3bff7f){if(_0x3bff7f){return _0x3bff7f['destroy']()[_0x1214('0x1e')](function(){_0x35aa83[_0x1214('0x31')](0xcc)['end']();});}};}function handleEntityNotFound(_0x32455e,_0x54e901){return function(_0x1fe2bf){if(!_0x1fe2bf){_0x32455e[_0x1214('0x32')](0x194);}return _0x1fe2bf;};}function handleError(_0xc6a0d8,_0x6a7c26){_0x6a7c26=_0x6a7c26||0x1f4;return function(_0x50362f){logger[_0x1214('0x24')](_0x50362f['stack']);if(_0x50362f[_0x1214('0x33')]){delete _0x50362f[_0x1214('0x33')];}_0xc6a0d8[_0x1214('0x31')](_0x6a7c26)['send'](_0x50362f);};}exports[_0x1214('0x34')]=function(_0x487f4,_0x4e86b9){var _0x2f53a2={},_0x3021ee={},_0x35ddd2={'count':0x0,'rows':[]};var _0x31e2e6=_['map'](db[_0x1214('0x35')]['rawAttributes'],function(_0xfe7d63){return{'name':_0xfe7d63[_0x1214('0x36')],'type':_0xfe7d63[_0x1214('0x37')][_0x1214('0x38')]};});_0x3021ee['model']=_['map'](_0x31e2e6,'name');_0x3021ee['query']=_[_0x1214('0x39')](_0x487f4[_0x1214('0x3a')]);_0x3021ee[_0x1214('0x3b')]=_[_0x1214('0x3c')](_0x3021ee[_0x1214('0x3d')],_0x3021ee[_0x1214('0x3a')]);_0x2f53a2[_0x1214('0x3e')]=_[_0x1214('0x3c')](_0x3021ee[_0x1214('0x3d')],qs[_0x1214('0x3f')](_0x487f4[_0x1214('0x3a')][_0x1214('0x3f')]));_0x2f53a2[_0x1214('0x3e')]=_0x2f53a2[_0x1214('0x3e')][_0x1214('0x40')]?_0x2f53a2['attributes']:_0x3021ee['model'];if(!_0x487f4[_0x1214('0x3a')][_0x1214('0x41')]('nolimit')){_0x2f53a2[_0x1214('0x2a')]=qs[_0x1214('0x2a')](_0x487f4['query']['limit']);_0x2f53a2[_0x1214('0x2c')]=qs[_0x1214('0x2c')](_0x487f4['query']['offset']);}_0x2f53a2[_0x1214('0x42')]=qs[_0x1214('0x43')](_0x487f4[_0x1214('0x3a')][_0x1214('0x43')]);_0x2f53a2[_0x1214('0x44')]=qs[_0x1214('0x3b')](_[_0x1214('0x45')](_0x487f4[_0x1214('0x3a')],_0x3021ee[_0x1214('0x3b')]),_0x31e2e6);if(_0x487f4['query'][_0x1214('0x46')]){_0x2f53a2[_0x1214('0x44')]=_['merge'](_0x2f53a2['where'],{'$or':_[_0x1214('0x47')](_0x31e2e6,function(_0x2fa514){if(_0x2fa514['type']!==_0x1214('0x48')){var _0x2cee5a={};_0x2cee5a[_0x2fa514[_0x1214('0x33')]]={'$like':'%'+_0x487f4[_0x1214('0x3a')]['filter']+'%'};return _0x2cee5a;}})});}_0x2f53a2=_[_0x1214('0x49')]({},_0x2f53a2,_0x487f4[_0x1214('0x4a')]);var _0x526587={'where':_0x2f53a2[_0x1214('0x44')]};return db[_0x1214('0x35')][_0x1214('0x2b')](_0x526587)[_0x1214('0x1e')](function(_0x309c74){_0x35ddd2[_0x1214('0x2b')]=_0x309c74;if(_0x487f4['query'][_0x1214('0x4b')]){_0x2f53a2['include']=[{'all':!![]}];}return db['Setting'][_0x1214('0x4c')](_0x2f53a2);})['then'](function(_0x338284){_0x35ddd2[_0x1214('0x4d')]=_0x338284;return _0x35ddd2;})[_0x1214('0x1e')](respondWithFilteredResult(_0x4e86b9,_0x2f53a2))[_0x1214('0x4e')](handleError(_0x4e86b9,null));};exports[_0x1214('0x4f')]=function(_0x20f25a,_0xfc53b5){var _0x441157={'raw':![],'where':{'id':_0x20f25a[_0x1214('0x50')]['id']}},_0x39657c={};_0x39657c[_0x1214('0x3d')]=_[_0x1214('0x39')](db[_0x1214('0x35')][_0x1214('0x51')]);_0x39657c[_0x1214('0x3a')]=_[_0x1214('0x39')](_0x20f25a[_0x1214('0x3a')]);_0x39657c[_0x1214('0x3b')]=_[_0x1214('0x3c')](_0x39657c['model'],_0x39657c[_0x1214('0x3a')]);_0x441157[_0x1214('0x3e')]=_[_0x1214('0x3c')](_0x39657c[_0x1214('0x3d')],qs[_0x1214('0x3f')](_0x20f25a['query'][_0x1214('0x3f')]));_0x441157['attributes']=_0x441157['attributes'][_0x1214('0x40')]?_0x441157[_0x1214('0x3e')]:_0x39657c[_0x1214('0x3d')];if(_0x20f25a['query'][_0x1214('0x4b')]){_0x441157[_0x1214('0x52')]=[{'all':!![]}];}_0x441157=_[_0x1214('0x49')]({},_0x441157,_0x20f25a[_0x1214('0x4a')]);return db[_0x1214('0x35')][_0x1214('0x53')](_0x441157)[_0x1214('0x1e')](handleEntityNotFound(_0xfc53b5,null))[_0x1214('0x1e')](respondWithResult(_0xfc53b5,null))['catch'](handleError(_0xfc53b5,null));};exports[_0x1214('0x54')]=function(_0x2acc99,_0x1852b3){if(_0x2acc99[_0x1214('0x55')]['id']){delete _0x2acc99['body']['id'];}return db[_0x1214('0x35')]['find']({'where':{'id':_0x2acc99[_0x1214('0x50')]['id']}})['then'](handleEntityNotFound(_0x1852b3,null))[_0x1214('0x1e')](saveUpdates(_0x2acc99[_0x1214('0x55')],null))[_0x1214('0x1e')](respondWithResult(_0x1852b3,null))[_0x1214('0x4e')](handleError(_0x1852b3,null));};exports[_0x1214('0x56')]=function(_0x13a021,_0x110fdf,_0x5cdaee){if(_0x13a021[_0x1214('0x57')]&&_0x13a021[_0x1214('0x57')]['filename']){_0x13a021[_0x1214('0x55')][_0x1214('0x58')]=_0x13a021[_0x1214('0x57')]['filename'];}return db[_0x1214('0x35')][_0x1214('0x53')]({'where':{'id':_0x13a021[_0x1214('0x50')]['id']}})[_0x1214('0x1e')](handleEntityNotFound(_0x110fdf,null))[_0x1214('0x1e')](saveUpdates(_0x13a021[_0x1214('0x55')],null))[_0x1214('0x1e')](respondWithResult(_0x110fdf,null))['catch'](handleError(_0x110fdf,null));};exports[_0x1214('0x59')]=function(_0x3e046c,_0x45db7d,_0x355d05){if(_0x3e046c[_0x1214('0x57')]&&_0x3e046c['file'][_0x1214('0x5a')]){_0x3e046c[_0x1214('0x55')][_0x1214('0x5b')]=_0x3e046c[_0x1214('0x57')][_0x1214('0x5a')];}return db['Setting'][_0x1214('0x53')]({'where':{'id':_0x3e046c[_0x1214('0x50')]['id']}})['then'](handleEntityNotFound(_0x45db7d,null))[_0x1214('0x1e')](saveUpdates(_0x3e046c['body'],null))[_0x1214('0x1e')](respondWithResult(_0x45db7d,null))[_0x1214('0x4e')](handleError(_0x45db7d,null));};var utilLicense=require(_0x1214('0x5c'));exports[_0x1214('0x5d')]=function(_0x399b5d,_0x50ad06,_0x6ecc14){var _0x4ba598=_0x1214('0x5e');var _0x2977d={'custom':![]};return utilLicense['getLicense']()[_0x1214('0x1e')](function(_0x22879c){if(_0x22879c){_0x2977d=_0x22879c;}return db[_0x1214('0x35')][_0x1214('0x53')]({'where':{'id':_0x399b5d[_0x1214('0x50')]['id']},'attributes':[_0x1214('0x58'),_0x1214('0x5b'),'preferred',_0x1214('0x5f'),_0x1214('0x60'),_0x1214('0x61'),_0x1214('0x62'),_0x1214('0x63')],'raw':!![]});})[_0x1214('0x1e')](handleEntityNotFound(_0x50ad06,null))[_0x1214('0x1e')](function(_0x36aa13){if(_0x36aa13){var _0xa28e9d=_0x36aa13[_0x1214('0x58')]&&fs[_0x1214('0x64')](path[_0x1214('0x65')](config[_0x1214('0x66')],_0x4ba598,_[_0x1214('0x67')](_0x36aa13[_0x1214('0x58')])))?path[_0x1214('0x65')](config[_0x1214('0x66')],_0x4ba598,_[_0x1214('0x67')](_0x36aa13['logo'])):path[_0x1214('0x65')](config['root'],_0x4ba598,_[_0x1214('0x67')]('default_logo.svg'));var _0x1fa5ec=_0x1214('0x68')+_[_0x1214('0x69')](_0x1214('0x58'));if(_0x36aa13[_0x1fa5ec]||!_0x2977d[_0x1214('0x6a')]){_0xa28e9d=path['join'](config[_0x1214('0x66')],_0x4ba598,_['toLower'](_0x1214('0x6b')));}if(!fs[_0x1214('0x64')](_0xa28e9d)){throw new db[(_0x1214('0x6c'))]['ValidationError'](_[_0x1214('0x69')](_0x1214('0x58'))+'\x20not\x20found');}return _0x50ad06[_0x1214('0x6d')](_0xa28e9d);}})[_0x1214('0x4e')](handleError(_0x50ad06,null));};var utilLicense=require('../../config/license/util');exports[_0x1214('0x6e')]=function(_0x187ec8,_0x18bcbb,_0x18656e){var _0x32bf9e='server/files/images/logos';var _0x4c5894={'custom':![]};return utilLicense[_0x1214('0x6f')]()['then'](function(_0x5f0f62){if(_0x5f0f62){_0x4c5894=_0x5f0f62;}return db['Setting'][_0x1214('0x53')]({'where':{'id':_0x187ec8[_0x1214('0x50')]['id']},'attributes':[_0x1214('0x58'),_0x1214('0x5b'),_0x1214('0x70'),'favicon',_0x1214('0x60'),'defaultLoginLogo',_0x1214('0x62'),_0x1214('0x63')],'raw':!![]});})[_0x1214('0x1e')](handleEntityNotFound(_0x18bcbb,null))[_0x1214('0x1e')](function(_0x41d689){if(_0x41d689){var _0x3bc7f=_0x41d689[_0x1214('0x5b')]&&fs[_0x1214('0x64')](path['join'](config[_0x1214('0x66')],_0x32bf9e,_[_0x1214('0x67')](_0x41d689['loginLogo'])))?path[_0x1214('0x65')](config['root'],_0x32bf9e,_[_0x1214('0x67')](_0x41d689[_0x1214('0x5b')])):path[_0x1214('0x65')](config[_0x1214('0x66')],_0x32bf9e,_[_0x1214('0x67')](_0x1214('0x71')));var _0x490516=_0x1214('0x68')+_[_0x1214('0x69')](_0x1214('0x5b'));if(_0x41d689[_0x490516]||!_0x4c5894['custom']){_0x3bc7f=path[_0x1214('0x65')](config[_0x1214('0x66')],_0x32bf9e,_[_0x1214('0x67')](_0x1214('0x71')));}if(!fs[_0x1214('0x64')](_0x3bc7f)){throw new db['Sequelize']['ValidationError'](_[_0x1214('0x69')]('loginLogo')+_0x1214('0x72'));}return _0x18bcbb[_0x1214('0x6d')](_0x3bc7f);}})[_0x1214('0x4e')](handleError(_0x18bcbb,null));};exports[_0x1214('0x73')]=function(_0xa87c12,_0x1ee817){return db[_0x1214('0x35')][_0x1214('0x53')]({'where':{'id':_0xa87c12[_0x1214('0x50')]['id']},'attributes':[_0x1214('0x74')]})[_0x1214('0x1e')](respondWithResult(_0x1ee817,null))[_0x1214('0x4e')](handleError(_0x1ee817,null));};exports[_0x1214('0x75')]=function(_0x259c1e,_0x2834d1,_0x1b646c){if(_0x259c1e[_0x1214('0x57')]&&_0x259c1e[_0x1214('0x57')][_0x1214('0x5a')]){_0x259c1e[_0x1214('0x55')][_0x1214('0x70')]=_0x259c1e['file'][_0x1214('0x5a')];}return db[_0x1214('0x35')]['find']({'where':{'id':_0x259c1e[_0x1214('0x50')]['id']}})[_0x1214('0x1e')](handleEntityNotFound(_0x2834d1,null))[_0x1214('0x1e')](saveUpdates(_0x259c1e['body'],null))[_0x1214('0x1e')](respondWithResult(_0x2834d1,null))[_0x1214('0x4e')](handleError(_0x2834d1,null));};var utilLicense=require(_0x1214('0x5c'));exports[_0x1214('0x76')]=function(_0x41ad72,_0x22f955,_0x4ffec7){var _0x44d256=_0x1214('0x5e');var _0xa22378={'custom':![]};return utilLicense[_0x1214('0x6f')]()[_0x1214('0x1e')](function(_0xaeb09e){if(_0xaeb09e){_0xa22378=_0xaeb09e;}return db[_0x1214('0x35')][_0x1214('0x53')]({'where':{'id':_0x41ad72['params']['id']},'attributes':[_0x1214('0x58'),_0x1214('0x5b'),'preferred',_0x1214('0x5f'),_0x1214('0x60'),_0x1214('0x61'),'defaultPreferred',_0x1214('0x63')],'raw':!![]});})[_0x1214('0x1e')](handleEntityNotFound(_0x22f955,null))[_0x1214('0x1e')](function(_0x46b26b){if(_0x46b26b){var _0x3a50d7=_0x46b26b[_0x1214('0x70')]&&fs[_0x1214('0x64')](path[_0x1214('0x65')](config[_0x1214('0x66')],_0x44d256,_['toLower'](_0x46b26b[_0x1214('0x70')])))?path[_0x1214('0x65')](config['root'],_0x44d256,_[_0x1214('0x67')](_0x46b26b[_0x1214('0x70')])):path[_0x1214('0x65')](config[_0x1214('0x66')],_0x44d256,_[_0x1214('0x67')](_0x1214('0x77')));var _0xe56dda=_0x1214('0x68')+_[_0x1214('0x69')](_0x1214('0x70'));if(_0x46b26b[_0xe56dda]||!_0xa22378[_0x1214('0x6a')]||!_0xa22378[_0x1214('0x70')]){_0x3a50d7=path[_0x1214('0x65')](config['root'],_0x44d256,_[_0x1214('0x67')](_0x1214('0x77')));}if(!fs['existsSync'](_0x3a50d7)){throw new db['Sequelize'][(_0x1214('0x78'))](_[_0x1214('0x69')](_0x1214('0x70'))+_0x1214('0x72'));}return _0x22f955['download'](_0x3a50d7);}})['catch'](handleError(_0x22f955,null));};exports['addFavicon']=function(_0x3a085a,_0x946d0f,_0x504582){if(_0x3a085a[_0x1214('0x57')]&&_0x3a085a[_0x1214('0x57')]['filename']){_0x3a085a[_0x1214('0x55')][_0x1214('0x5f')]=_0x3a085a[_0x1214('0x57')][_0x1214('0x5a')];}return db[_0x1214('0x35')][_0x1214('0x53')]({'where':{'id':_0x3a085a['params']['id']}})[_0x1214('0x1e')](handleEntityNotFound(_0x946d0f,null))['then'](saveUpdates(_0x3a085a[_0x1214('0x55')],null))[_0x1214('0x1e')](respondWithResult(_0x946d0f,null))[_0x1214('0x4e')](handleError(_0x946d0f,null));};var utilLicense=require(_0x1214('0x5c'));exports[_0x1214('0x79')]=function(_0x16678e,_0x40602d,_0x13167f){var _0x3a8f18='server/files/images/logos';var _0x4a0c24={'custom':![]};return utilLicense[_0x1214('0x6f')]()[_0x1214('0x1e')](function(_0x2952d0){if(_0x2952d0){_0x4a0c24=_0x2952d0;}return db[_0x1214('0x35')][_0x1214('0x53')]({'where':{'id':_0x16678e[_0x1214('0x50')]['id']},'attributes':[_0x1214('0x58'),_0x1214('0x5b'),_0x1214('0x70'),'favicon',_0x1214('0x60'),'defaultLoginLogo',_0x1214('0x62'),_0x1214('0x63')],'raw':!![]});})[_0x1214('0x1e')](handleEntityNotFound(_0x40602d,null))[_0x1214('0x1e')](function(_0x36462c){if(_0x36462c){var _0x13d27a=_0x36462c[_0x1214('0x5f')]&&fs['existsSync'](path['join'](config[_0x1214('0x66')],_0x3a8f18,_[_0x1214('0x67')](_0x36462c['favicon'])))?path[_0x1214('0x65')](config['root'],_0x3a8f18,_[_0x1214('0x67')](_0x36462c[_0x1214('0x5f')])):path[_0x1214('0x65')](config[_0x1214('0x66')],_0x3a8f18,_[_0x1214('0x67')](_0x1214('0x7a')));var _0x1ade86=_0x1214('0x68')+_['upperFirst'](_0x1214('0x5f'));if(_0x36462c[_0x1ade86]||!_0x4a0c24[_0x1214('0x6a')]){_0x13d27a=path['join'](config[_0x1214('0x66')],_0x3a8f18,_['toLower'](_0x1214('0x7a')));}if(!fs[_0x1214('0x64')](_0x13d27a)){throw new db[(_0x1214('0x6c'))]['ValidationError'](_[_0x1214('0x69')](_0x1214('0x5f'))+_0x1214('0x72'));}return _0x40602d[_0x1214('0x6d')](_0x13d27a);}})[_0x1214('0x4e')](handleError(_0x40602d,null));};exports[_0x1214('0x7b')]=function(_0x51c96f,_0x1a52c1){var _0x5ef292={'offset':moment()[_0x1214('0x7c')]()};_0x5ef292[_0x1214('0x7d')]=moment()[_0x1214('0x7c')](_0x5ef292[_0x1214('0x2c')])['format'](_0x1214('0x7e'));return _0x1a52c1['status'](0xc8)[_0x1214('0x7f')](_0x5ef292);};
\ No newline at end of file
+var _0xb2b5=['VIRTUAL','filter','options','includeAll','include','findAll','params','body','find','addLogo','file','filename','logo','addLogoLogin','loginLogo','../../config/license/util','getLogo','getLicense','preferred','favicon','defaultLoginLogo','defaultFavicon','existsSync','join','root','toLower','default_logo.svg','default','Sequelize','ValidationError','\x20not\x20found','download','server/files/images/logos','defaultPreferred','default_loginLogo.svg','upperFirst','gdpr','addPreferred','default_preferred.png','addFavicon','getFavicon','defaultLogo','default_favicon.ico','getDate','utcOffset','format','YYYY-MM-DD\x20HH:mm:ss:SSS','request-promise','moment','util','path','sox','to-csv','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then','Setting,\x20%s,\x20%s','debug','stringify','error','code','message','info','request\x20sent','result','catch','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','destroy','sendStatus','stack','name','send','map','Setting','rawAttributes','fieldName','type','keys','query','attributes','intersection','model','fields','length','sort','where','filters','merge'];(function(_0x421183,_0x5902c2){var _0x3f305d=function(_0x4a22fa){while(--_0x4a22fa){_0x421183['push'](_0x421183['shift']());}};_0x3f305d(++_0x5902c2);}(_0xb2b5,0xa3));var _0x5b2b=function(_0x199572,_0x33e667){_0x199572=_0x199572-0x0;var _0x13cfa3=_0xb2b5[_0x199572];return _0x13cfa3;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x5b2b('0x0'));var moment=require(_0x5b2b('0x1'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x5b2b('0x2'));var path=require(_0x5b2b('0x3'));var sox=require(_0x5b2b('0x4'));var csv=require(_0x5b2b('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5b2b('0x6'));var _=require(_0x5b2b('0x7'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x5b2b('0x8'));var deskjs=require(_0x5b2b('0x9'));var toCsv=require(_0x5b2b('0x5'));var querystring=require(_0x5b2b('0xa'));var Papa=require(_0x5b2b('0xb'));var Redis=require(_0x5b2b('0xc'));var authService=require(_0x5b2b('0xd'));var qs=require(_0x5b2b('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5b2b('0xf'));var logger=require(_0x5b2b('0x10'))('api');var utils=require(_0x5b2b('0x11'));var config=require(_0x5b2b('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x5b2b('0x13'))['db'];var jayson=require(_0x5b2b('0x14'));var client=jayson[_0x5b2b('0x15')][_0x5b2b('0x16')]({'port':0x232a});function respondWithRpcPromise(_0x2efc16,_0x1b96ac,_0x235bae,_0x4bfe97){return new BPromise(function(_0x30e9a3,_0x4fa243){var _0x39dad7=_0x4bfe97||client;return _0x39dad7[_0x5b2b('0x17')](_0x2efc16,_0x235bae)[_0x5b2b('0x18')](function(_0x2611a3){logger['info'](_0x5b2b('0x19'),_0x1b96ac,'request\x20sent');logger[_0x5b2b('0x1a')]('Setting,\x20%s,\x20%s,\x20%s',_0x1b96ac,'request\x20sent',JSON[_0x5b2b('0x1b')](_0x2611a3));if(_0x2611a3[_0x5b2b('0x1c')]){if(_0x2611a3['error'][_0x5b2b('0x1d')]===0x1f4){logger[_0x5b2b('0x1c')](_0x5b2b('0x19'),_0x1b96ac,_0x2611a3[_0x5b2b('0x1c')][_0x5b2b('0x1e')]);return _0x4fa243(_0x2611a3['error'][_0x5b2b('0x1e')]);}logger[_0x5b2b('0x1c')](_0x5b2b('0x19'),_0x1b96ac,_0x2611a3[_0x5b2b('0x1c')][_0x5b2b('0x1e')]);return _0x30e9a3(_0x2611a3[_0x5b2b('0x1c')][_0x5b2b('0x1e')]);}else{logger[_0x5b2b('0x1f')](_0x5b2b('0x19'),_0x1b96ac,_0x5b2b('0x20'));_0x30e9a3(_0x2611a3[_0x5b2b('0x21')][_0x5b2b('0x1e')]);}})[_0x5b2b('0x22')](function(_0x5fdeb1){logger['error']('Setting,\x20%s,\x20%s',_0x1b96ac,_0x5fdeb1);_0x4fa243(_0x5fdeb1);});});}function respondWithStatusCode(_0xfdaeed,_0x58e346){_0x58e346=_0x58e346||0xcc;return function(_0x3a530f){if(_0x3a530f){return _0xfdaeed['sendStatus'](_0x58e346);}return _0xfdaeed[_0x5b2b('0x23')](_0x58e346)[_0x5b2b('0x24')]();};}function respondWithResult(_0xb6d0b0,_0x37cbd8){_0x37cbd8=_0x37cbd8||0xc8;return function(_0x33a88c){if(_0x33a88c){return _0xb6d0b0['status'](_0x37cbd8)[_0x5b2b('0x25')](_0x33a88c);}};}function respondWithFilteredResult(_0x3e97dc,_0x55b05c){return function(_0x3fd917){if(_0x3fd917){var _0x1fa64b=typeof _0x55b05c['offset']===_0x5b2b('0x26')&&typeof _0x55b05c[_0x5b2b('0x27')]===_0x5b2b('0x26');var _0x1bfd12=_0x3fd917[_0x5b2b('0x28')];var _0x94d866=_0x1fa64b?0x0:_0x55b05c['offset'];var _0x2c80be=_0x1fa64b?_0x3fd917[_0x5b2b('0x28')]:_0x55b05c[_0x5b2b('0x29')]+_0x55b05c[_0x5b2b('0x27')];var _0x45a0cd;if(_0x2c80be>=_0x1bfd12){_0x2c80be=_0x1bfd12;_0x45a0cd=0xc8;}else{_0x45a0cd=0xce;}_0x3e97dc['status'](_0x45a0cd);return _0x3e97dc[_0x5b2b('0x2a')](_0x5b2b('0x2b'),_0x94d866+'-'+_0x2c80be+'/'+_0x1bfd12)[_0x5b2b('0x25')](_0x3fd917);}return null;};}function patchUpdates(_0x250348){return function(_0xbe2fc9){try{jsonpatch[_0x5b2b('0x2c')](_0xbe2fc9,_0x250348,!![]);}catch(_0x528864){return BPromise[_0x5b2b('0x2d')](_0x528864);}return _0xbe2fc9[_0x5b2b('0x2e')]();};}function saveUpdates(_0x101d5c,_0x1127b0){return function(_0x1d3b92){if(_0x1d3b92){return _0x1d3b92[_0x5b2b('0x2f')](_0x101d5c)[_0x5b2b('0x18')](function(_0x1c0511){return _0x1c0511;});}return null;};}function removeEntity(_0x1a5b63,_0x3f7f22){return function(_0x4e13a3){if(_0x4e13a3){return _0x4e13a3[_0x5b2b('0x30')]()[_0x5b2b('0x18')](function(){_0x1a5b63[_0x5b2b('0x23')](0xcc)[_0x5b2b('0x24')]();});}};}function handleEntityNotFound(_0xf89686,_0xe20c81){return function(_0x39821a){if(!_0x39821a){_0xf89686[_0x5b2b('0x31')](0x194);}return _0x39821a;};}function handleError(_0x2ea8f2,_0x508ea5){_0x508ea5=_0x508ea5||0x1f4;return function(_0x124a42){logger[_0x5b2b('0x1c')](_0x124a42[_0x5b2b('0x32')]);if(_0x124a42[_0x5b2b('0x33')]){delete _0x124a42['name'];}_0x2ea8f2['status'](_0x508ea5)[_0x5b2b('0x34')](_0x124a42);};}exports['index']=function(_0x3f5233,_0x42f627){var _0x176eb4={},_0x461515={},_0x5cdf37={'count':0x0,'rows':[]};var _0x3db115=_[_0x5b2b('0x35')](db[_0x5b2b('0x36')][_0x5b2b('0x37')],function(_0x28ddb6){return{'name':_0x28ddb6[_0x5b2b('0x38')],'type':_0x28ddb6[_0x5b2b('0x39')]['key']};});_0x461515['model']=_[_0x5b2b('0x35')](_0x3db115,_0x5b2b('0x33'));_0x461515['query']=_[_0x5b2b('0x3a')](_0x3f5233[_0x5b2b('0x3b')]);_0x461515['filters']=_['intersection'](_0x461515['model'],_0x461515[_0x5b2b('0x3b')]);_0x176eb4[_0x5b2b('0x3c')]=_[_0x5b2b('0x3d')](_0x461515[_0x5b2b('0x3e')],qs['fields'](_0x3f5233['query'][_0x5b2b('0x3f')]));_0x176eb4['attributes']=_0x176eb4[_0x5b2b('0x3c')][_0x5b2b('0x40')]?_0x176eb4[_0x5b2b('0x3c')]:_0x461515['model'];if(!_0x3f5233[_0x5b2b('0x3b')]['hasOwnProperty']('nolimit')){_0x176eb4['limit']=qs[_0x5b2b('0x27')](_0x3f5233[_0x5b2b('0x3b')][_0x5b2b('0x27')]);_0x176eb4[_0x5b2b('0x29')]=qs[_0x5b2b('0x29')](_0x3f5233['query'][_0x5b2b('0x29')]);}_0x176eb4['order']=qs[_0x5b2b('0x41')](_0x3f5233[_0x5b2b('0x3b')]['sort']);_0x176eb4[_0x5b2b('0x42')]=qs[_0x5b2b('0x43')](_['pick'](_0x3f5233[_0x5b2b('0x3b')],_0x461515[_0x5b2b('0x43')]),_0x3db115);if(_0x3f5233[_0x5b2b('0x3b')]['filter']){_0x176eb4[_0x5b2b('0x42')]=_[_0x5b2b('0x44')](_0x176eb4[_0x5b2b('0x42')],{'$or':_[_0x5b2b('0x35')](_0x3db115,function(_0x3d8e2c){if(_0x3d8e2c[_0x5b2b('0x39')]!==_0x5b2b('0x45')){var _0x17ae95={};_0x17ae95[_0x3d8e2c[_0x5b2b('0x33')]]={'$like':'%'+_0x3f5233['query'][_0x5b2b('0x46')]+'%'};return _0x17ae95;}})});}_0x176eb4=_[_0x5b2b('0x44')]({},_0x176eb4,_0x3f5233[_0x5b2b('0x47')]);var _0x33efee={'where':_0x176eb4[_0x5b2b('0x42')]};return db[_0x5b2b('0x36')]['count'](_0x33efee)['then'](function(_0x4f4a57){_0x5cdf37['count']=_0x4f4a57;if(_0x3f5233[_0x5b2b('0x3b')][_0x5b2b('0x48')]){_0x176eb4[_0x5b2b('0x49')]=[{'all':!![]}];}return db[_0x5b2b('0x36')][_0x5b2b('0x4a')](_0x176eb4);})[_0x5b2b('0x18')](function(_0x126a8c){_0x5cdf37['rows']=_0x126a8c;return _0x5cdf37;})[_0x5b2b('0x18')](respondWithFilteredResult(_0x42f627,_0x176eb4))[_0x5b2b('0x22')](handleError(_0x42f627,null));};exports['show']=function(_0x515df8,_0xf5840c){var _0x5c8d32={'raw':![],'where':{'id':_0x515df8[_0x5b2b('0x4b')]['id']}},_0x5a6b8e={};_0x5a6b8e[_0x5b2b('0x3e')]=_[_0x5b2b('0x3a')](db[_0x5b2b('0x36')]['rawAttributes']);_0x5a6b8e[_0x5b2b('0x3b')]=_[_0x5b2b('0x3a')](_0x515df8['query']);_0x5a6b8e['filters']=_[_0x5b2b('0x3d')](_0x5a6b8e[_0x5b2b('0x3e')],_0x5a6b8e[_0x5b2b('0x3b')]);_0x5c8d32['attributes']=_['intersection'](_0x5a6b8e[_0x5b2b('0x3e')],qs[_0x5b2b('0x3f')](_0x515df8['query'][_0x5b2b('0x3f')]));_0x5c8d32[_0x5b2b('0x3c')]=_0x5c8d32['attributes'][_0x5b2b('0x40')]?_0x5c8d32['attributes']:_0x5a6b8e['model'];if(_0x515df8[_0x5b2b('0x3b')][_0x5b2b('0x48')]){_0x5c8d32[_0x5b2b('0x49')]=[{'all':!![]}];}_0x5c8d32=_[_0x5b2b('0x44')]({},_0x5c8d32,_0x515df8['options']);return db[_0x5b2b('0x36')]['find'](_0x5c8d32)[_0x5b2b('0x18')](handleEntityNotFound(_0xf5840c,null))['then'](respondWithResult(_0xf5840c,null))[_0x5b2b('0x22')](handleError(_0xf5840c,null));};exports[_0x5b2b('0x2f')]=function(_0x34c167,_0x4002e0){if(_0x34c167['body']['id']){delete _0x34c167[_0x5b2b('0x4c')]['id'];}return db[_0x5b2b('0x36')][_0x5b2b('0x4d')]({'where':{'id':_0x34c167['params']['id']}})[_0x5b2b('0x18')](handleEntityNotFound(_0x4002e0,null))['then'](saveUpdates(_0x34c167['body'],null))[_0x5b2b('0x18')](respondWithResult(_0x4002e0,null))[_0x5b2b('0x22')](handleError(_0x4002e0,null));};exports[_0x5b2b('0x4e')]=function(_0x35733d,_0x4afd59,_0x44fbe5){if(_0x35733d[_0x5b2b('0x4f')]&&_0x35733d['file'][_0x5b2b('0x50')]){_0x35733d[_0x5b2b('0x4c')][_0x5b2b('0x51')]=_0x35733d['file'][_0x5b2b('0x50')];}return db[_0x5b2b('0x36')]['find']({'where':{'id':_0x35733d['params']['id']}})[_0x5b2b('0x18')](handleEntityNotFound(_0x4afd59,null))['then'](saveUpdates(_0x35733d[_0x5b2b('0x4c')],null))[_0x5b2b('0x18')](respondWithResult(_0x4afd59,null))[_0x5b2b('0x22')](handleError(_0x4afd59,null));};exports[_0x5b2b('0x52')]=function(_0x37f78b,_0x1d914f,_0x3598d6){if(_0x37f78b[_0x5b2b('0x4f')]&&_0x37f78b[_0x5b2b('0x4f')][_0x5b2b('0x50')]){_0x37f78b[_0x5b2b('0x4c')][_0x5b2b('0x53')]=_0x37f78b[_0x5b2b('0x4f')][_0x5b2b('0x50')];}return db['Setting']['find']({'where':{'id':_0x37f78b[_0x5b2b('0x4b')]['id']}})[_0x5b2b('0x18')](handleEntityNotFound(_0x1d914f,null))['then'](saveUpdates(_0x37f78b['body'],null))[_0x5b2b('0x18')](respondWithResult(_0x1d914f,null))[_0x5b2b('0x22')](handleError(_0x1d914f,null));};var utilLicense=require(_0x5b2b('0x54'));exports[_0x5b2b('0x55')]=function(_0x40af7b,_0x135d8c,_0xa9c28c){var _0x529b3b='server/files/images/logos';var _0x52b1b8={'custom':![]};return utilLicense[_0x5b2b('0x56')]()[_0x5b2b('0x18')](function(_0x90f792){if(_0x90f792){_0x52b1b8=_0x90f792;}return db[_0x5b2b('0x36')][_0x5b2b('0x4d')]({'where':{'id':_0x40af7b['params']['id']},'attributes':[_0x5b2b('0x51'),'loginLogo',_0x5b2b('0x57'),_0x5b2b('0x58'),'defaultLogo',_0x5b2b('0x59'),'defaultPreferred',_0x5b2b('0x5a')],'raw':!![]});})[_0x5b2b('0x18')](handleEntityNotFound(_0x135d8c,null))['then'](function(_0x394401){if(_0x394401){var _0x7e1906=_0x394401[_0x5b2b('0x51')]&&fs[_0x5b2b('0x5b')](path[_0x5b2b('0x5c')](config[_0x5b2b('0x5d')],_0x529b3b,_['toLower'](_0x394401[_0x5b2b('0x51')])))?path[_0x5b2b('0x5c')](config['root'],_0x529b3b,_[_0x5b2b('0x5e')](_0x394401[_0x5b2b('0x51')])):path['join'](config['root'],_0x529b3b,_[_0x5b2b('0x5e')](_0x5b2b('0x5f')));var _0x282a6d=_0x5b2b('0x60')+_['upperFirst'](_0x5b2b('0x51'));if(_0x394401[_0x282a6d]||!_0x52b1b8['custom']){_0x7e1906=path['join'](config['root'],_0x529b3b,_[_0x5b2b('0x5e')](_0x5b2b('0x5f')));}if(!fs['existsSync'](_0x7e1906)){throw new db[(_0x5b2b('0x61'))][(_0x5b2b('0x62'))](_['upperFirst']('logo')+_0x5b2b('0x63'));}return _0x135d8c[_0x5b2b('0x64')](_0x7e1906);}})[_0x5b2b('0x22')](handleError(_0x135d8c,null));};var utilLicense=require('../../config/license/util');exports['getLogoLogin']=function(_0x1127ae,_0x4c8053,_0x2e5fcb){var _0x29af50=_0x5b2b('0x65');var _0x4402df={'custom':![]};return utilLicense[_0x5b2b('0x56')]()[_0x5b2b('0x18')](function(_0x3f79e9){if(_0x3f79e9){_0x4402df=_0x3f79e9;}return db['Setting'][_0x5b2b('0x4d')]({'where':{'id':_0x1127ae[_0x5b2b('0x4b')]['id']},'attributes':['logo','loginLogo',_0x5b2b('0x57'),_0x5b2b('0x58'),'defaultLogo',_0x5b2b('0x59'),_0x5b2b('0x66'),'defaultFavicon'],'raw':!![]});})[_0x5b2b('0x18')](handleEntityNotFound(_0x4c8053,null))[_0x5b2b('0x18')](function(_0x45bd9d){if(_0x45bd9d){var _0x2ffdd7=_0x45bd9d[_0x5b2b('0x53')]&&fs[_0x5b2b('0x5b')](path[_0x5b2b('0x5c')](config[_0x5b2b('0x5d')],_0x29af50,_[_0x5b2b('0x5e')](_0x45bd9d['loginLogo'])))?path['join'](config[_0x5b2b('0x5d')],_0x29af50,_[_0x5b2b('0x5e')](_0x45bd9d[_0x5b2b('0x53')])):path[_0x5b2b('0x5c')](config['root'],_0x29af50,_[_0x5b2b('0x5e')](_0x5b2b('0x67')));var _0x507778=_0x5b2b('0x60')+_['upperFirst']('loginLogo');if(_0x45bd9d[_0x507778]||!_0x4402df['custom']){_0x2ffdd7=path[_0x5b2b('0x5c')](config[_0x5b2b('0x5d')],_0x29af50,_[_0x5b2b('0x5e')]('default_loginLogo.svg'));}if(!fs[_0x5b2b('0x5b')](_0x2ffdd7)){throw new db['Sequelize'][(_0x5b2b('0x62'))](_[_0x5b2b('0x68')](_0x5b2b('0x53'))+_0x5b2b('0x63'));}return _0x4c8053['download'](_0x2ffdd7);}})[_0x5b2b('0x22')](handleError(_0x4c8053,null));};exports[_0x5b2b('0x69')]=function(_0x289e6f,_0x43d915){return db[_0x5b2b('0x36')][_0x5b2b('0x4d')]({'where':{'id':_0x289e6f[_0x5b2b('0x4b')]['id']},'attributes':['securePassword']})[_0x5b2b('0x18')](respondWithResult(_0x43d915,null))['catch'](handleError(_0x43d915,null));};exports[_0x5b2b('0x6a')]=function(_0x18d0b8,_0x1604f0,_0x20c6a1){if(_0x18d0b8[_0x5b2b('0x4f')]&&_0x18d0b8[_0x5b2b('0x4f')][_0x5b2b('0x50')]){_0x18d0b8['body'][_0x5b2b('0x57')]=_0x18d0b8['file']['filename'];}return db[_0x5b2b('0x36')]['find']({'where':{'id':_0x18d0b8[_0x5b2b('0x4b')]['id']}})[_0x5b2b('0x18')](handleEntityNotFound(_0x1604f0,null))['then'](saveUpdates(_0x18d0b8[_0x5b2b('0x4c')],null))[_0x5b2b('0x18')](respondWithResult(_0x1604f0,null))[_0x5b2b('0x22')](handleError(_0x1604f0,null));};var utilLicense=require('../../config/license/util');exports['getPreferred']=function(_0x324407,_0x1dce47,_0x36a704){var _0x248310=_0x5b2b('0x65');var _0x39360f={'custom':![]};return utilLicense[_0x5b2b('0x56')]()[_0x5b2b('0x18')](function(_0x386440){if(_0x386440){_0x39360f=_0x386440;}return db[_0x5b2b('0x36')][_0x5b2b('0x4d')]({'where':{'id':_0x324407[_0x5b2b('0x4b')]['id']},'attributes':[_0x5b2b('0x51'),_0x5b2b('0x53'),_0x5b2b('0x57'),_0x5b2b('0x58'),'defaultLogo',_0x5b2b('0x59'),_0x5b2b('0x66'),_0x5b2b('0x5a')],'raw':!![]});})[_0x5b2b('0x18')](handleEntityNotFound(_0x1dce47,null))[_0x5b2b('0x18')](function(_0xe75a58){if(_0xe75a58){var _0x1e93c9=_0xe75a58['preferred']&&fs[_0x5b2b('0x5b')](path[_0x5b2b('0x5c')](config['root'],_0x248310,_[_0x5b2b('0x5e')](_0xe75a58[_0x5b2b('0x57')])))?path[_0x5b2b('0x5c')](config['root'],_0x248310,_['toLower'](_0xe75a58[_0x5b2b('0x57')])):path[_0x5b2b('0x5c')](config[_0x5b2b('0x5d')],_0x248310,_[_0x5b2b('0x5e')](_0x5b2b('0x6b')));var _0xe792d='default'+_[_0x5b2b('0x68')](_0x5b2b('0x57'));if(_0xe75a58[_0xe792d]||!_0x39360f['custom']||!_0x39360f[_0x5b2b('0x57')]){_0x1e93c9=path[_0x5b2b('0x5c')](config['root'],_0x248310,_[_0x5b2b('0x5e')](_0x5b2b('0x6b')));}if(!fs['existsSync'](_0x1e93c9)){throw new db[(_0x5b2b('0x61'))][(_0x5b2b('0x62'))](_[_0x5b2b('0x68')]('preferred')+_0x5b2b('0x63'));}return _0x1dce47['download'](_0x1e93c9);}})[_0x5b2b('0x22')](handleError(_0x1dce47,null));};exports[_0x5b2b('0x6c')]=function(_0x1090de,_0x3c69a3,_0xf05d20){if(_0x1090de[_0x5b2b('0x4f')]&&_0x1090de[_0x5b2b('0x4f')]['filename']){_0x1090de['body'][_0x5b2b('0x58')]=_0x1090de[_0x5b2b('0x4f')]['filename'];}return db[_0x5b2b('0x36')]['find']({'where':{'id':_0x1090de[_0x5b2b('0x4b')]['id']}})[_0x5b2b('0x18')](handleEntityNotFound(_0x3c69a3,null))[_0x5b2b('0x18')](saveUpdates(_0x1090de[_0x5b2b('0x4c')],null))['then'](respondWithResult(_0x3c69a3,null))['catch'](handleError(_0x3c69a3,null));};var utilLicense=require('../../config/license/util');exports[_0x5b2b('0x6d')]=function(_0x39e881,_0x2fe671,_0x85832a){var _0x39a276=_0x5b2b('0x65');var _0x14818f={'custom':![]};return utilLicense['getLicense']()[_0x5b2b('0x18')](function(_0x14a01c){if(_0x14a01c){_0x14818f=_0x14a01c;}return db[_0x5b2b('0x36')]['find']({'where':{'id':_0x39e881[_0x5b2b('0x4b')]['id']},'attributes':['logo',_0x5b2b('0x53'),_0x5b2b('0x57'),'favicon',_0x5b2b('0x6e'),'defaultLoginLogo',_0x5b2b('0x66'),_0x5b2b('0x5a')],'raw':!![]});})[_0x5b2b('0x18')](handleEntityNotFound(_0x2fe671,null))[_0x5b2b('0x18')](function(_0x12e1cf){if(_0x12e1cf){var _0x3aded2=_0x12e1cf[_0x5b2b('0x58')]&&fs[_0x5b2b('0x5b')](path[_0x5b2b('0x5c')](config[_0x5b2b('0x5d')],_0x39a276,_['toLower'](_0x12e1cf[_0x5b2b('0x58')])))?path[_0x5b2b('0x5c')](config[_0x5b2b('0x5d')],_0x39a276,_[_0x5b2b('0x5e')](_0x12e1cf[_0x5b2b('0x58')])):path[_0x5b2b('0x5c')](config[_0x5b2b('0x5d')],_0x39a276,_[_0x5b2b('0x5e')](_0x5b2b('0x6f')));var _0x1a0e47=_0x5b2b('0x60')+_[_0x5b2b('0x68')](_0x5b2b('0x58'));if(_0x12e1cf[_0x1a0e47]||!_0x14818f['custom']){_0x3aded2=path[_0x5b2b('0x5c')](config[_0x5b2b('0x5d')],_0x39a276,_['toLower'](_0x5b2b('0x6f')));}if(!fs['existsSync'](_0x3aded2)){throw new db[(_0x5b2b('0x61'))]['ValidationError'](_['upperFirst'](_0x5b2b('0x58'))+_0x5b2b('0x63'));}return _0x2fe671[_0x5b2b('0x64')](_0x3aded2);}})['catch'](handleError(_0x2fe671,null));};exports[_0x5b2b('0x70')]=function(_0x5eba17,_0x1db5c0){var _0x18b4d0={'offset':moment()['utcOffset']()};_0x18b4d0['now']=moment()[_0x5b2b('0x71')](_0x18b4d0[_0x5b2b('0x29')])[_0x5b2b('0x72')](_0x5b2b('0x73'));return _0x1db5c0['status'](0xc8)[_0x5b2b('0x34')](_0x18b4d0);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e74=['exports','Setting','settings','lodash','../../config/logger','api','moment','path','../../config/environment','./setting.attributes'];(function(_0x246227,_0x12bfcb){var _0x37bd4a=function(_0x4670f4){while(--_0x4670f4){_0x246227['push'](_0x246227['shift']());}};_0x37bd4a(++_0x12bfcb);}(_0x3e74,0x175));var _0x43e7=function(_0x544901,_0x48cddc){_0x544901=_0x544901-0x0;var _0x2364e6=_0x3e74[_0x544901];return _0x2364e6;};'use strict';var _=require(_0x43e7('0x0'));var util=require('util');var logger=require(_0x43e7('0x1'))(_0x43e7('0x2'));var moment=require(_0x43e7('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x43e7('0x4'));var rimraf=require('rimraf');var config=require(_0x43e7('0x5'));var attributes=require(_0x43e7('0x6'));module[_0x43e7('0x7')]=function(_0x1c503b,_0xc98b9c){return _0x1c503b['define'](_0x43e7('0x8'),attributes,{'tableName':_0x43e7('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe14b=['bluebird','path','./setting.attributes','exports','define','Setting','settings','lodash','util','moment'];(function(_0x35114c,_0x5ec8c4){var _0x1cb2a3=function(_0x43ce56){while(--_0x43ce56){_0x35114c['push'](_0x35114c['shift']());}};_0x1cb2a3(++_0x5ec8c4);}(_0xe14b,0x93));var _0xbe14=function(_0x393438,_0x4883a6){_0x393438=_0x393438-0x0;var _0x2a0986=_0xe14b[_0x393438];return _0x2a0986;};'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 _0x8cd3=['bluebird','randomstring','ioredis','../../config/utils','jayson/promise','request','then','info','Setting,\x20%s,\x20%s','request\x20sent','debug','Setting,\x20%s,\x20%s,\x20%s','error','message','result','catch','ShowSetting','Setting','find','options','raw','where','map','include','attributes','model','lodash','moment'];(function(_0x23343a,_0x4a2aee){var _0x15ea1e=function(_0x4f7a0b){while(--_0x4f7a0b){_0x23343a['push'](_0x23343a['shift']());}};_0x15ea1e(++_0x4a2aee);}(_0x8cd3,0x116));var _0x38cd=function(_0xa2374f,_0x392586){_0xa2374f=_0xa2374f-0x0;var _0x3751fb=_0x8cd3[_0xa2374f];return _0x3751fb;};'use strict';var _=require(_0x38cd('0x0'));var util=require('util');var moment=require(_0x38cd('0x1'));var BPromise=require(_0x38cd('0x2'));var rs=require(_0x38cd('0x3'));var fs=require('fs');var Redis=require(_0x38cd('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x38cd('0x5'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x38cd('0x6'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3b8d9c,_0x3b1e59,_0xf6ddf6){return new BPromise(function(_0x4fbec7,_0x2aa3b6){return client[_0x38cd('0x7')](_0x3b8d9c,_0xf6ddf6)[_0x38cd('0x8')](function(_0x4c6f08){logger[_0x38cd('0x9')](_0x38cd('0xa'),_0x3b1e59,_0x38cd('0xb'));logger[_0x38cd('0xc')](_0x38cd('0xd'),_0x3b1e59,_0x38cd('0xb'),JSON['stringify'](_0x4c6f08));if(_0x4c6f08[_0x38cd('0xe')]){if(_0x4c6f08[_0x38cd('0xe')]['code']===0x1f4){logger['error'](_0x38cd('0xa'),_0x3b1e59,_0x4c6f08[_0x38cd('0xe')]['message']);return _0x2aa3b6(_0x4c6f08[_0x38cd('0xe')][_0x38cd('0xf')]);}logger[_0x38cd('0xe')](_0x38cd('0xa'),_0x3b1e59,_0x4c6f08[_0x38cd('0xe')]['message']);return _0x4fbec7(_0x4c6f08[_0x38cd('0xe')][_0x38cd('0xf')]);}else{logger['info'](_0x38cd('0xa'),_0x3b1e59,_0x38cd('0xb'));_0x4fbec7(_0x4c6f08[_0x38cd('0x10')]['message']);}})[_0x38cd('0x11')](function(_0x1eb0b7){logger[_0x38cd('0xe')](_0x38cd('0xa'),_0x3b1e59,_0x1eb0b7);_0x2aa3b6(_0x1eb0b7);});});}exports[_0x38cd('0x12')]=function(_0x5b6d8b){var _0x218c55=this;return new Promise(function(_0x5e6dd5,_0x18a2f2){return db[_0x38cd('0x13')][_0x38cd('0x14')]({'raw':_0x5b6d8b[_0x38cd('0x15')]?_0x5b6d8b[_0x38cd('0x15')][_0x38cd('0x16')]===undefined?!![]:![]:!![],'where':_0x5b6d8b[_0x38cd('0x15')]?_0x5b6d8b['options'][_0x38cd('0x17')]||null:null,'attributes':_0x5b6d8b[_0x38cd('0x15')]?_0x5b6d8b['options']['attributes']||null:null,'include':_0x5b6d8b[_0x38cd('0x15')]?_0x5b6d8b[_0x38cd('0x15')]['include']?_[_0x38cd('0x18')](_0x5b6d8b['options'][_0x38cd('0x19')],function(_0x196a1b){return{'model':db[_0x196a1b['model']],'as':_0x196a1b['as'],'attributes':_0x196a1b[_0x38cd('0x1a')],'include':_0x196a1b[_0x38cd('0x19')]?_[_0x38cd('0x18')](_0x196a1b[_0x38cd('0x19')],function(_0x9fd498){return{'model':db[_0x9fd498[_0x38cd('0x1b')]],'as':_0x9fd498['as'],'attributes':_0x9fd498[_0x38cd('0x1a')],'include':_0x9fd498[_0x38cd('0x19')]?_[_0x38cd('0x18')](_0x9fd498[_0x38cd('0x19')],function(_0x5b7ea1){return{'model':db[_0x5b7ea1[_0x38cd('0x1b')]],'as':_0x5b7ea1['as'],'attributes':_0x5b7ea1[_0x38cd('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x38cd('0x8')](function(_0x4a3fde){logger[_0x38cd('0x9')]('ShowSetting',_0x5b6d8b);logger['debug']('ShowSetting',_0x5b6d8b,JSON['stringify'](_0x4a3fde));_0x5e6dd5(_0x4a3fde);})[_0x38cd('0x11')](function(_0x5a0b9d){logger[_0x38cd('0xe')](_0x38cd('0x12'),_0x5a0b9d[_0x38cd('0xf')],_0x5b6d8b);_0x18a2f2(_0x218c55['error'](0x1f4,_0x5a0b9d[_0x38cd('0xf')]));});});};
\ No newline at end of file
+var _0x567e=['model','map','ShowSetting','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','info','Setting,\x20%s,\x20%s','debug','Setting,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result','catch','Setting','options','raw','attributes','include'];(function(_0xa59fae,_0x313aa2){var _0x5ba11a=function(_0x5398fd){while(--_0x5398fd){_0xa59fae['push'](_0xa59fae['shift']());}};_0x5ba11a(++_0x313aa2);}(_0x567e,0xa3));var _0xe567=function(_0x1488d5,_0x4fea87){_0x1488d5=_0x1488d5-0x0;var _0x39dd45=_0x567e[_0x1488d5];return _0x39dd45;};'use strict';var _=require(_0xe567('0x0'));var util=require('util');var moment=require(_0xe567('0x1'));var BPromise=require(_0xe567('0x2'));var rs=require(_0xe567('0x3'));var fs=require('fs');var Redis=require(_0xe567('0x4'));var db=require(_0xe567('0x5'))['db'];var utils=require(_0xe567('0x6'));var logger=require(_0xe567('0x7'))(_0xe567('0x8'));var config=require('../../config/environment');var jayson=require(_0xe567('0x9'));var client=jayson[_0xe567('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2b8e64,_0x4f700e,_0x27425c){return new BPromise(function(_0x2d49e6,_0x19c2c9){return client[_0xe567('0xb')](_0x2b8e64,_0x27425c)[_0xe567('0xc')](function(_0x3805b0){logger[_0xe567('0xd')](_0xe567('0xe'),_0x4f700e,'request\x20sent');logger[_0xe567('0xf')](_0xe567('0x10'),_0x4f700e,_0xe567('0x11'),JSON[_0xe567('0x12')](_0x3805b0));if(_0x3805b0['error']){if(_0x3805b0['error'][_0xe567('0x13')]===0x1f4){logger[_0xe567('0x14')](_0xe567('0xe'),_0x4f700e,_0x3805b0[_0xe567('0x14')]['message']);return _0x19c2c9(_0x3805b0['error'][_0xe567('0x15')]);}logger[_0xe567('0x14')](_0xe567('0xe'),_0x4f700e,_0x3805b0[_0xe567('0x14')]['message']);return _0x2d49e6(_0x3805b0[_0xe567('0x14')]['message']);}else{logger['info']('Setting,\x20%s,\x20%s',_0x4f700e,'request\x20sent');_0x2d49e6(_0x3805b0[_0xe567('0x16')][_0xe567('0x15')]);}})[_0xe567('0x17')](function(_0x1b1b73){logger[_0xe567('0x14')]('Setting,\x20%s,\x20%s',_0x4f700e,_0x1b1b73);_0x19c2c9(_0x1b1b73);});});}exports['ShowSetting']=function(_0xe11f7){var _0x2cf6b5=this;return new Promise(function(_0x55d38e,_0x58e413){return db[_0xe567('0x18')]['find']({'raw':_0xe11f7[_0xe567('0x19')]?_0xe11f7[_0xe567('0x19')][_0xe567('0x1a')]===undefined?!![]:![]:!![],'where':_0xe11f7[_0xe567('0x19')]?_0xe11f7[_0xe567('0x19')]['where']||null:null,'attributes':_0xe11f7[_0xe567('0x19')]?_0xe11f7[_0xe567('0x19')][_0xe567('0x1b')]||null:null,'include':_0xe11f7[_0xe567('0x19')]?_0xe11f7[_0xe567('0x19')][_0xe567('0x1c')]?_['map'](_0xe11f7[_0xe567('0x19')][_0xe567('0x1c')],function(_0xab47c8){return{'model':db[_0xab47c8[_0xe567('0x1d')]],'as':_0xab47c8['as'],'attributes':_0xab47c8[_0xe567('0x1b')],'include':_0xab47c8[_0xe567('0x1c')]?_[_0xe567('0x1e')](_0xab47c8['include'],function(_0x2651c6){return{'model':db[_0x2651c6[_0xe567('0x1d')]],'as':_0x2651c6['as'],'attributes':_0x2651c6[_0xe567('0x1b')],'include':_0x2651c6['include']?_['map'](_0x2651c6[_0xe567('0x1c')],function(_0x1c5a71){return{'model':db[_0x1c5a71[_0xe567('0x1d')]],'as':_0x1c5a71['as'],'attributes':_0x1c5a71['attributes']};}):[]};}):[]};}):[]:[]})[_0xe567('0xc')](function(_0x4b7c39){logger[_0xe567('0xd')]('ShowSetting',_0xe11f7);logger[_0xe567('0xf')]('ShowSetting',_0xe11f7,JSON[_0xe567('0x12')](_0x4b7c39));_0x55d38e(_0x4b7c39);})[_0xe567('0x17')](function(_0x369343){logger[_0xe567('0x14')](_0xe567('0x1f'),_0x369343[_0xe567('0x15')],_0xe11f7);_0x58e413(_0x2cf6b5[_0xe567('0x14')](0x1f4,_0x369343[_0xe567('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['/:id/send','status','put','update','delete','removeDispositions','removeAnswers','multer','path','connect-timeout','express','Router','fs-extra','../../config/environment','./smsAccount.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/applications','/:id/interactions','getInteractions','/:id/status','statusGet','/:id/users','create','post','/:id/notify','notify','addApplications'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x7217,0x19e));var _0x7721=function(_0x5783f4,_0x4a9e0a){_0x5783f4=_0x5783f4-0x0;var _0x28e380=_0x7217[_0x5783f4];return _0x28e380;};'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('0x8')](_0x7721('0xd'),auth[_0x7721('0x9')](),controller[_0x7721('0xe')]);router[_0x7721('0x8')](_0x7721('0xf'),auth['isAuthenticated'](),controller[_0x7721('0x10')]);router[_0x7721('0x8')](_0x7721('0x11'),auth[_0x7721('0x9')](),controller[_0x7721('0x12')]);router[_0x7721('0x8')](_0x7721('0x13'),auth[_0x7721('0x9')](),controller['getApplications']);router[_0x7721('0x8')](_0x7721('0x14'),auth['isAuthenticated'](),controller[_0x7721('0x15')]);router[_0x7721('0x8')](_0x7721('0x16'),controller[_0x7721('0x17')]);router['get'](_0x7721('0x18'),auth[_0x7721('0x9')](),controller['getAgents']);router['post']('/',auth['isAuthenticated'](),controller[_0x7721('0x19')]);router[_0x7721('0x1a')](_0x7721('0xf'),auth[_0x7721('0x9')](),controller['addDisposition']);router[_0x7721('0x1a')]('/:id/canned_answers',auth[_0x7721('0x9')](),controller['addAnswer']);router[_0x7721('0x1a')](_0x7721('0x1b'),controller[_0x7721('0x1c')]);router[_0x7721('0x1a')](_0x7721('0x13'),auth[_0x7721('0x9')](),controller[_0x7721('0x1d')]);router[_0x7721('0x1a')](_0x7721('0x1e'),auth[_0x7721('0x9')](),controller['send']);router[_0x7721('0x1a')](_0x7721('0x16'),controller[_0x7721('0x1f')]);router[_0x7721('0x1a')]('/:id/users',auth[_0x7721('0x9')](),controller['addAgents']);router[_0x7721('0x20')](_0x7721('0xd'),auth[_0x7721('0x9')](),controller[_0x7721('0x21')]);router[_0x7721('0x22')](_0x7721('0xd'),auth[_0x7721('0x9')](),controller['destroy']);router[_0x7721('0x22')](_0x7721('0xf'),auth[_0x7721('0x9')](),controller[_0x7721('0x23')]);router[_0x7721('0x22')](_0x7721('0x11'),auth[_0x7721('0x9')](),controller[_0x7721('0x24')]);router[_0x7721('0x22')]('/:id/users',auth[_0x7721('0x9')](),controller['removeAgents']);module['exports']=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(_0x49f288,_0x3b47bd){var _0x29c526=function(_0x1c01ae){while(--_0x1c01ae){_0x49f288['push'](_0x49f288['shift']());}};_0x29c526(++_0x3b47bd);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x56418c,_0xd90668){_0x56418c=_0x56418c-0x0;var _0x1c838d=_0x7fbe[_0x56418c];return _0x1c838d;};'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 _0xadb4=['csc','intelepeer','BOOLEAN','INTEGER','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','randomstring','exports','name','STRING','generate','ENUM','connectel','clicksend','bandwidth'];(function(_0x5f3905,_0x43a651){var _0x2923b1=function(_0x3c72d8){while(--_0x3c72d8){_0x5f3905['push'](_0x5f3905['shift']());}};_0x2923b1(++_0x43a651);}(_0xadb4,0xd3));var _0x4adb=function(_0x4a2195,_0x2f8dc4){_0x4a2195=_0x4a2195-0x0;var _0x4d1fda=_0xadb4[_0x4a2195];return _0x4d1fda;};'use strict';var Sequelize=require(_0x4adb('0x0'));var rs=require(_0x4adb('0x1'));module[_0x4adb('0x2')]={'name':{'type':Sequelize['STRING'],'unique':_0x4adb('0x3'),'allowNull':![]},'key':{'type':Sequelize['STRING'],'allowNull':![]},'remote':{'type':Sequelize[_0x4adb('0x4')],'allowNull':![]},'token':{'type':Sequelize[_0x4adb('0x4')],'defaultValue':function(){return rs[_0x4adb('0x5')]();}},'phone':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x4adb('0x6')]('twilio','skebby',_0x4adb('0x7'),_0x4adb('0x8'),'plivo','clickatell',_0x4adb('0x9'),_0x4adb('0xa'),'infobip',_0x4adb('0xb'))},'accountSid':{'type':Sequelize[_0x4adb('0x4')]},'authId':{'type':Sequelize[_0x4adb('0x4')]},'authToken':{'type':Sequelize[_0x4adb('0x4')]},'smsMethod':{'type':Sequelize[_0x4adb('0x6')]('SI','TI','GP')},'username':{'type':Sequelize['STRING']},'password':{'type':Sequelize[_0x4adb('0x4')]},'apiKey':{'type':Sequelize['STRING']},'applicationId':{'type':Sequelize[_0x4adb('0x4')]},'accountId':{'type':Sequelize[_0x4adb('0x4')]},'senderString':{'type':Sequelize[_0x4adb('0x4')]},'deliveryReport':{'type':Sequelize[_0x4adb('0xc')],'defaultValue':![]},'description':{'type':Sequelize[_0x4adb('0x4')]},'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[_0x4adb('0xc')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x4adb('0xd')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x4adb('0xd')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x4adb('0xc')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x4adb('0xd')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize['STRING']},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x4adb('0xc')],'defaultValue':![],'comment':'Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','set':function(_0x47a5f9){if(!_0x47a5f9)this[_0x4adb('0xe')](_0x4adb('0xf'),null);this[_0x4adb('0xe')](_0x4adb('0x10'),_0x47a5f9);}}};
\ No newline at end of file
+var _0xf378=['BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','randomstring','exports','STRING','name','generate','connectel','clicksend','plivo','clickatell','bandwidth','infobip','TEXT'];(function(_0x1fec86,_0x422ed7){var _0x55e897=function(_0x5750ca){while(--_0x5750ca){_0x1fec86['push'](_0x1fec86['shift']());}};_0x55e897(++_0x422ed7);}(_0xf378,0x11f));var _0x8f37=function(_0x17b6e3,_0x4522ed){_0x17b6e3=_0x17b6e3-0x0;var _0x3906f3=_0xf378[_0x17b6e3];return _0x3906f3;};'use strict';var Sequelize=require(_0x8f37('0x0'));var rs=require(_0x8f37('0x1'));module[_0x8f37('0x2')]={'name':{'type':Sequelize[_0x8f37('0x3')],'unique':_0x8f37('0x4'),'allowNull':![]},'key':{'type':Sequelize[_0x8f37('0x3')],'allowNull':![]},'remote':{'type':Sequelize[_0x8f37('0x3')],'allowNull':![]},'token':{'type':Sequelize[_0x8f37('0x3')],'defaultValue':function(){return rs[_0x8f37('0x5')]();}},'phone':{'type':Sequelize['STRING']},'type':{'type':Sequelize['ENUM']('twilio','skebby',_0x8f37('0x6'),_0x8f37('0x7'),_0x8f37('0x8'),_0x8f37('0x9'),_0x8f37('0xa'),'csc',_0x8f37('0xb'),'intelepeer')},'accountSid':{'type':Sequelize[_0x8f37('0x3')]},'authId':{'type':Sequelize[_0x8f37('0x3')]},'authToken':{'type':Sequelize['STRING']},'smsMethod':{'type':Sequelize['ENUM']('SI','TI','GP')},'username':{'type':Sequelize[_0x8f37('0x3')]},'password':{'type':Sequelize[_0x8f37('0x3')]},'apiKey':{'type':Sequelize['STRING']},'applicationId':{'type':Sequelize[_0x8f37('0x3')]},'accountId':{'type':Sequelize[_0x8f37('0x3')]},'senderString':{'type':Sequelize[_0x8f37('0x3')]},'deliveryReport':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'description':{'type':Sequelize[_0x8f37('0x3')]},'notificationTemplate':{'type':Sequelize[_0x8f37('0xc')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize[_0x8f37('0xd')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x8f37('0xd')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x8f37('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x8f37('0xd')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x8f37('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x8f37('0xd')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x8f37('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize[_0x8f37('0x3')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0x8f37('0xe')],'comment':_0x8f37('0xf')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0x8f37('0x10'),'set':function(_0x5af18c){if(!_0x5af18c)this[_0x8f37('0x11')](_0x8f37('0x12'),null);this['setDataValue'](_0x8f37('0x13'),_0x5af18c);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f68=['UserProfileResource','name','index','Pause','mandatoryDispositionPause','map','SmsAccount','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','order','sort','pick','where','merge','VIRTUAL','include','findAll','rows','show','params','rawAttributes','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','describe','addDisposition','SmsAccountId','Disposition','getDispositions','findOne','nolimit','filter','removeDispositions','addAnswer','CannedAnswer','getAnswers','removeAnswers','notify','sms','SmsApplication','Applications','account','applications','orderBy','priority','CmContact','Sequelize','ValidationError','difference','createdAt','updatedAt','CompanyId','ListId','mobile','twilio','From','Body','messageId','MessageSid','skebby','from','sender','connectel','clicksend','message_id','plivo','Text','infobip','results','text','csc','segmentedMessage','clickatell','replyMessageId','bandwidth','intelepeer','refid','isNil','from\x20is\x20mandatory','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','DESC','omit','Contacts','defaults','contact','SmsInteraction','spread','interaction','created','push','close','SmsMessage','ContactId','AttachmentId','User','UserId','unshift','agent','waitForTheAssignedAgent','*,*,*,*','startRouting','Start','receiveMessage','SmsAccount,\x20%s,\x20%s,\x20%s','entity\x20found','debug','SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s','set','Content-Type','text/xml','send','json','addApplications','sequelize','transaction','bulkCreate','findAndCountAll','getApplications','hasOwnProperty','getInteractions','Contact','fullname','internal','Tag','color','tag','body\x20is\x20mandatory\x20and\x20not\x20empty','to\x20is\x20mandatory','List','out','Messages','dataValues','received\x20delivery\x20report\x20from','inspect','skebby_dispatch_id','requestid','statusInt','status_code','DELIVERED','groupName','redif','error_code','RECEIVED_BY_RECIPIENT','message-delivered','DELIVRD','message-id','state','addAgents','ids','emit','userSmsAccount:save','removeAgents','isArray','userSmsAccount:remove','getAgents','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./smsAccount.socket','register','jayson/promise','client','then','info','SmsAccount,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','sendStatus','status','end','offset','undefined','count','limit','Content-Range','apply','reject','save','update','destroy','get','SmsAccounts'];(function(_0x5df61d,_0x158640){var _0x24cc4c=function(_0x2de006){while(--_0x2de006){_0x5df61d['push'](_0x5df61d['shift']());}};_0x24cc4c(++_0x158640);}(_0x6f68,0x197));var _0x86f6=function(_0x2b6a05,_0x472ec5){_0x2b6a05=_0x2b6a05-0x0;var _0x287344=_0x6f68[_0x2b6a05];return _0x287344;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x86f6('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x86f6('0x1'));var rp=require(_0x86f6('0x2'));var moment=require(_0x86f6('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x86f6('0x4'));var util=require(_0x86f6('0x5'));var path=require(_0x86f6('0x6'));var sox=require(_0x86f6('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x86f6('0x8'));var _=require(_0x86f6('0x9'));var squel=require(_0x86f6('0xa'));var crypto=require(_0x86f6('0xb'));var jsforce=require(_0x86f6('0xc'));var deskjs=require(_0x86f6('0xd'));var toCsv=require(_0x86f6('0xe'));var querystring=require(_0x86f6('0xf'));var Papa=require('papaparse');var Redis=require(_0x86f6('0x10'));var authService=require(_0x86f6('0x11'));var qs=require(_0x86f6('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x86f6('0x13'));var utils=require(_0x86f6('0x14'));var config=require(_0x86f6('0x15'));var licenseUtil=require(_0x86f6('0x16'));var db=require(_0x86f6('0x17'))['db'];config[_0x86f6('0x18')]=_['defaults'](config['redis'],{'host':_0x86f6('0x19'),'port':0x18eb});var socket=require(_0x86f6('0x1a'))(new Redis(config[_0x86f6('0x18')]));require(_0x86f6('0x1b'))[_0x86f6('0x1c')](socket);var jayson=require(_0x86f6('0x1d'));var client=jayson[_0x86f6('0x1e')]['http']({'port':0x232c});function respondWithRpcPromise(_0x53a731,_0x6b0392,_0x2bdb87,_0x2fad85){return new BPromise(function(_0x292cd6,_0x14a2e3){var _0x4b24de=_0x2fad85||client;return _0x4b24de['request'](_0x53a731,_0x2bdb87)[_0x86f6('0x1f')](function(_0x5d747c){logger[_0x86f6('0x20')](_0x86f6('0x21'),_0x6b0392,_0x86f6('0x22'));logger['debug']('SmsAccount,\x20%s,\x20%s,\x20%s',_0x6b0392,'request\x20sent',JSON[_0x86f6('0x23')](_0x5d747c));if(_0x5d747c[_0x86f6('0x24')]){if(_0x5d747c[_0x86f6('0x24')][_0x86f6('0x25')]===0x1f4){logger[_0x86f6('0x24')](_0x86f6('0x21'),_0x6b0392,_0x5d747c[_0x86f6('0x24')][_0x86f6('0x26')]);return _0x14a2e3(_0x5d747c[_0x86f6('0x24')][_0x86f6('0x26')]);}logger['error']('SmsAccount,\x20%s,\x20%s',_0x6b0392,_0x5d747c[_0x86f6('0x24')][_0x86f6('0x26')]);return _0x292cd6(_0x5d747c['error'][_0x86f6('0x26')]);}else{logger['info'](_0x86f6('0x21'),_0x6b0392,'request\x20sent');_0x292cd6(_0x5d747c['result'][_0x86f6('0x26')]);}})[_0x86f6('0x27')](function(_0x7f214a){logger[_0x86f6('0x24')](_0x86f6('0x21'),_0x6b0392,_0x7f214a);_0x14a2e3(_0x7f214a);});});}function respondWithStatusCode(_0x7a1538,_0x45afa1){_0x45afa1=_0x45afa1||0xcc;return function(_0x485f11){if(_0x485f11){return _0x7a1538[_0x86f6('0x28')](_0x45afa1);}return _0x7a1538[_0x86f6('0x29')](_0x45afa1)[_0x86f6('0x2a')]();};}function respondWithResult(_0x17fe27,_0x40860b){_0x40860b=_0x40860b||0xc8;return function(_0x2eaf60){if(_0x2eaf60){return _0x17fe27[_0x86f6('0x29')](_0x40860b)['json'](_0x2eaf60);}};}function respondWithFilteredResult(_0x1478ae,_0x1c282c){return function(_0xc49db1){if(_0xc49db1){var _0x2334d0=typeof _0x1c282c[_0x86f6('0x2b')]===_0x86f6('0x2c')&&typeof _0x1c282c['limit']===_0x86f6('0x2c');var _0x3461fc=_0xc49db1['count'];var _0x839863=_0x2334d0?0x0:_0x1c282c[_0x86f6('0x2b')];var _0x10ca99=_0x2334d0?_0xc49db1[_0x86f6('0x2d')]:_0x1c282c[_0x86f6('0x2b')]+_0x1c282c[_0x86f6('0x2e')];var _0x36bfed;if(_0x10ca99>=_0x3461fc){_0x10ca99=_0x3461fc;_0x36bfed=0xc8;}else{_0x36bfed=0xce;}_0x1478ae['status'](_0x36bfed);return _0x1478ae['set'](_0x86f6('0x2f'),_0x839863+'-'+_0x10ca99+'/'+_0x3461fc)['json'](_0xc49db1);}return null;};}function patchUpdates(_0x4ddaa1){return function(_0x110652){try{jsonpatch[_0x86f6('0x30')](_0x110652,_0x4ddaa1,!![]);}catch(_0x5f46ef){return BPromise[_0x86f6('0x31')](_0x5f46ef);}return _0x110652[_0x86f6('0x32')]();};}function saveUpdates(_0x54fe37,_0x258676){return function(_0x3f360e){if(_0x3f360e){return _0x3f360e[_0x86f6('0x33')](_0x54fe37)[_0x86f6('0x1f')](function(_0x2209c2){return _0x2209c2;});}return null;};}function removeEntity(_0x479bae,_0x1388a4){return function(_0x1e14c2){if(_0x1e14c2){return _0x1e14c2[_0x86f6('0x34')]()[_0x86f6('0x1f')](function(){var _0x1298bc=_0x1e14c2[_0x86f6('0x35')]({'plain':!![]});var _0x4c52cf=_0x86f6('0x36');return db[_0x86f6('0x37')][_0x86f6('0x34')]({'where':{'type':_0x4c52cf,'resourceId':_0x1298bc['id']}})[_0x86f6('0x1f')](function(){return _0x1e14c2;});})['then'](function(){_0x479bae[_0x86f6('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1ee552,_0xa7f521){return function(_0x44712a){if(!_0x44712a){_0x1ee552[_0x86f6('0x28')](0x194);}return _0x44712a;};}function handleError(_0x58d600,_0x2a1365){_0x2a1365=_0x2a1365||0x1f4;return function(_0x35ced6){logger[_0x86f6('0x24')](_0x35ced6['stack']);if(_0x35ced6[_0x86f6('0x38')]){delete _0x35ced6[_0x86f6('0x38')];}_0x58d600['status'](_0x2a1365)['send'](_0x35ced6);};}exports[_0x86f6('0x39')]=function(_0x11da5a,_0xb8335d){var _0x8eacb0={'include':[{'model':db[_0x86f6('0x3a')],'as':_0x86f6('0x3b')}]},_0x3e6eeb={},_0xd48fde={'count':0x0,'rows':[]};var _0x4dc549=_[_0x86f6('0x3c')](db[_0x86f6('0x3d')]['rawAttributes'],function(_0x3c302d){return{'name':_0x3c302d[_0x86f6('0x3e')],'type':_0x3c302d[_0x86f6('0x3f')][_0x86f6('0x40')]};});_0x3e6eeb['model']=_['map'](_0x4dc549,'name');_0x3e6eeb[_0x86f6('0x41')]=_[_0x86f6('0x42')](_0x11da5a['query']);_0x3e6eeb[_0x86f6('0x43')]=_[_0x86f6('0x44')](_0x3e6eeb[_0x86f6('0x45')],_0x3e6eeb[_0x86f6('0x41')]);_0x8eacb0[_0x86f6('0x46')]=_['intersection'](_0x3e6eeb[_0x86f6('0x45')],qs['fields'](_0x11da5a['query'][_0x86f6('0x47')]));_0x8eacb0[_0x86f6('0x46')]=_0x8eacb0[_0x86f6('0x46')][_0x86f6('0x48')]?_0x8eacb0[_0x86f6('0x46')]:_0x3e6eeb['model'];if(!_0x11da5a['query']['hasOwnProperty']('nolimit')){_0x8eacb0[_0x86f6('0x2e')]=qs[_0x86f6('0x2e')](_0x11da5a[_0x86f6('0x41')]['limit']);_0x8eacb0[_0x86f6('0x2b')]=qs[_0x86f6('0x2b')](_0x11da5a[_0x86f6('0x41')][_0x86f6('0x2b')]);}_0x8eacb0[_0x86f6('0x49')]=qs['sort'](_0x11da5a['query'][_0x86f6('0x4a')]);_0x8eacb0['where']=qs['filters'](_[_0x86f6('0x4b')](_0x11da5a['query'],_0x3e6eeb[_0x86f6('0x43')]),_0x4dc549);if(_0x11da5a['query']['filter']){_0x8eacb0[_0x86f6('0x4c')]=_[_0x86f6('0x4d')](_0x8eacb0['where'],{'$or':_[_0x86f6('0x3c')](_0x4dc549,function(_0x4a276c){if(_0x4a276c[_0x86f6('0x3f')]!==_0x86f6('0x4e')){var _0x3b1574={};_0x3b1574[_0x4a276c['name']]={'$like':'%'+_0x11da5a[_0x86f6('0x41')]['filter']+'%'};return _0x3b1574;}})});}_0x8eacb0=_[_0x86f6('0x4d')]({},_0x8eacb0,_0x11da5a['options']);var _0x20cc26={'where':_0x8eacb0[_0x86f6('0x4c')]};return db[_0x86f6('0x3d')][_0x86f6('0x2d')](_0x20cc26)['then'](function(_0x3669c1){_0xd48fde[_0x86f6('0x2d')]=_0x3669c1;if(_0x11da5a['query']['includeAll']){_0x8eacb0[_0x86f6('0x4f')]=[{'all':!![]}];}return db[_0x86f6('0x3d')][_0x86f6('0x50')](_0x8eacb0);})[_0x86f6('0x1f')](function(_0x469a3b){_0xd48fde[_0x86f6('0x51')]=_0x469a3b;return _0xd48fde;})[_0x86f6('0x1f')](respondWithFilteredResult(_0xb8335d,_0x8eacb0))[_0x86f6('0x27')](handleError(_0xb8335d,null));};exports[_0x86f6('0x52')]=function(_0x1e43ef,_0x1ce9a6){var _0x18f80c={'raw':![],'where':{'id':_0x1e43ef[_0x86f6('0x53')]['id']},'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x4c0a14={};_0x4c0a14['model']=_[_0x86f6('0x42')](db[_0x86f6('0x3d')][_0x86f6('0x54')]);_0x4c0a14[_0x86f6('0x41')]=_[_0x86f6('0x42')](_0x1e43ef[_0x86f6('0x41')]);_0x4c0a14['filters']=_[_0x86f6('0x44')](_0x4c0a14['model'],_0x4c0a14['query']);_0x18f80c['attributes']=_[_0x86f6('0x44')](_0x4c0a14[_0x86f6('0x45')],qs['fields'](_0x1e43ef[_0x86f6('0x41')]['fields']));_0x18f80c[_0x86f6('0x46')]=_0x18f80c[_0x86f6('0x46')][_0x86f6('0x48')]?_0x18f80c[_0x86f6('0x46')]:_0x4c0a14[_0x86f6('0x45')];if(_0x1e43ef[_0x86f6('0x41')][_0x86f6('0x55')]){_0x18f80c[_0x86f6('0x4f')]=[{'all':!![]}];}_0x18f80c=_['merge']({},_0x18f80c,_0x1e43ef[_0x86f6('0x56')]);return db[_0x86f6('0x3d')][_0x86f6('0x57')](_0x18f80c)['then'](handleEntityNotFound(_0x1ce9a6,null))[_0x86f6('0x1f')](respondWithResult(_0x1ce9a6,null))['catch'](handleError(_0x1ce9a6,null));};exports[_0x86f6('0x58')]=function(_0x6e71ea,_0x4d6b3d){return db[_0x86f6('0x3d')][_0x86f6('0x58')](_0x6e71ea[_0x86f6('0x59')],{})[_0x86f6('0x1f')](function(_0x401da4){var _0x4b0ea7=_0x6e71ea[_0x86f6('0x5a')][_0x86f6('0x35')]({'plain':!![]});if(!_0x4b0ea7)throw new Error(_0x86f6('0x5b'));if(_0x4b0ea7['role']===_0x86f6('0x5a')){var _0xff51ae=_0x401da4[_0x86f6('0x35')]({'plain':!![]});var _0xba0a00='SmsAccounts';return db[_0x86f6('0x5c')][_0x86f6('0x57')]({'where':{'name':_0xba0a00,'userProfileId':_0x4b0ea7[_0x86f6('0x5d')]},'raw':!![]})[_0x86f6('0x1f')](function(_0x4f268a){if(_0x4f268a&&_0x4f268a[_0x86f6('0x5e')]===0x0){return db[_0x86f6('0x37')]['create']({'name':_0xff51ae[_0x86f6('0x38')],'resourceId':_0xff51ae['id'],'type':_0x4f268a[_0x86f6('0x38')],'sectionId':_0x4f268a['id']},{})[_0x86f6('0x1f')](function(){return _0x401da4;});}else{return _0x401da4;}})[_0x86f6('0x27')](function(_0x28d461){logger['error'](_0x86f6('0x5f'),_0x28d461);throw _0x28d461;});}return _0x401da4;})[_0x86f6('0x1f')](respondWithResult(_0x4d6b3d,0xc9))[_0x86f6('0x27')](handleError(_0x4d6b3d,null));};exports[_0x86f6('0x33')]=function(_0x2c7425,_0x44b06d){if(_0x2c7425[_0x86f6('0x59')]['id']){delete _0x2c7425[_0x86f6('0x59')]['id'];}return db[_0x86f6('0x3d')][_0x86f6('0x57')]({'where':{'id':_0x2c7425['params']['id']},'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]})[_0x86f6('0x1f')](handleEntityNotFound(_0x44b06d,null))[_0x86f6('0x1f')](saveUpdates(_0x2c7425[_0x86f6('0x59')],null))['then'](respondWithResult(_0x44b06d,null))['catch'](handleError(_0x44b06d,null));};exports[_0x86f6('0x34')]=function(_0xa3857a,_0x5de2fc){return db[_0x86f6('0x3d')]['find']({'where':{'id':_0xa3857a[_0x86f6('0x53')]['id']}})[_0x86f6('0x1f')](handleEntityNotFound(_0x5de2fc,null))[_0x86f6('0x1f')](removeEntity(_0x5de2fc,null))['catch'](handleError(_0x5de2fc,null));};exports['describe']=function(_0x57a98d,_0x169e00){return db[_0x86f6('0x3d')][_0x86f6('0x60')]()[_0x86f6('0x1f')](respondWithResult(_0x169e00,null))[_0x86f6('0x27')](handleError(_0x169e00,null));};exports[_0x86f6('0x61')]=function(_0x47ba7d,_0xce9afb,_0x1dfcfb){if(_0x47ba7d[_0x86f6('0x59')]['id']){delete _0x47ba7d[_0x86f6('0x59')]['id'];}return db[_0x86f6('0x3d')][_0x86f6('0x57')]({'where':{'id':_0x47ba7d['params']['id']}})['then'](handleEntityNotFound(_0xce9afb,null))['then'](function(_0x23a6bc){if(_0x23a6bc){_0x47ba7d['body'][_0x86f6('0x62')]=_0x23a6bc['id'];return db[_0x86f6('0x63')][_0x86f6('0x58')](_0x47ba7d[_0x86f6('0x59')]);}})[_0x86f6('0x1f')](respondWithResult(_0xce9afb,null))[_0x86f6('0x27')](handleError(_0xce9afb,null));};exports[_0x86f6('0x64')]=function(_0x1e0339,_0x39b559,_0x2e5af3){var _0x5f6c11={'raw':![],'where':{}};var _0x3e00fc={};var _0x2d8891={'count':0x0,'rows':[]};return db['SmsAccount'][_0x86f6('0x65')]({'where':{'id':_0x1e0339['params']['id']}})['then'](handleEntityNotFound(_0x39b559,null))[_0x86f6('0x1f')](function(_0xeea492){if(_0xeea492){_0x3e00fc['model']=_['keys'](db[_0x86f6('0x63')][_0x86f6('0x54')]);_0x3e00fc[_0x86f6('0x41')]=_[_0x86f6('0x42')](_0x1e0339['query']);_0x3e00fc['filters']=_['intersection'](_0x3e00fc[_0x86f6('0x45')],_0x3e00fc['query']);_0x5f6c11['attributes']=_[_0x86f6('0x44')](_0x3e00fc[_0x86f6('0x45')],qs[_0x86f6('0x47')](_0x1e0339[_0x86f6('0x41')][_0x86f6('0x47')]));_0x5f6c11[_0x86f6('0x46')]=_0x5f6c11[_0x86f6('0x46')][_0x86f6('0x48')]?_0x5f6c11[_0x86f6('0x46')]:_0x3e00fc['model'];if(!_0x1e0339['query']['hasOwnProperty'](_0x86f6('0x66'))){_0x5f6c11[_0x86f6('0x2e')]=qs[_0x86f6('0x2e')](_0x1e0339[_0x86f6('0x41')][_0x86f6('0x2e')]);_0x5f6c11[_0x86f6('0x2b')]=qs[_0x86f6('0x2b')](_0x1e0339[_0x86f6('0x41')]['offset']);}_0x5f6c11[_0x86f6('0x49')]=qs[_0x86f6('0x4a')](_0x1e0339[_0x86f6('0x41')]['sort']);_0x5f6c11[_0x86f6('0x4c')]=qs[_0x86f6('0x43')](_[_0x86f6('0x4b')](_0x1e0339[_0x86f6('0x41')],_0x3e00fc[_0x86f6('0x43')]));_0x5f6c11[_0x86f6('0x4c')][_0x86f6('0x62')]=_0xeea492['id'];if(_0x1e0339[_0x86f6('0x41')][_0x86f6('0x67')]){_0x5f6c11['where']=_[_0x86f6('0x4d')](_0x5f6c11[_0x86f6('0x4c')],{'$or':_[_0x86f6('0x3c')](_0x5f6c11[_0x86f6('0x46')],function(_0x52429e){var _0x3bbce2={};_0x3bbce2[_0x52429e]={'$like':'%'+_0x1e0339['query'][_0x86f6('0x67')]+'%'};return _0x3bbce2;})});}_0x5f6c11=_[_0x86f6('0x4d')]({},_0x5f6c11,_0x1e0339[_0x86f6('0x56')]);return db[_0x86f6('0x63')][_0x86f6('0x2d')]({'where':_0x5f6c11[_0x86f6('0x4c')]})[_0x86f6('0x1f')](function(_0x435e94){_0x2d8891[_0x86f6('0x2d')]=_0x435e94;if(_0x1e0339['query'][_0x86f6('0x55')]){_0x5f6c11[_0x86f6('0x4f')]=[{'all':!![]}];}return db[_0x86f6('0x63')][_0x86f6('0x50')](_0x5f6c11);})['then'](function(_0xc17ece){_0x2d8891[_0x86f6('0x51')]=_0xc17ece;return _0x2d8891;});}})[_0x86f6('0x1f')](respondWithFilteredResult(_0x39b559,_0x5f6c11))[_0x86f6('0x27')](handleError(_0x39b559,null));};exports['removeDispositions']=function(_0x11f66d,_0x4c0586,_0x772b6c){return db['SmsAccount'][_0x86f6('0x57')]({'where':{'id':_0x11f66d[_0x86f6('0x53')]['id']}})[_0x86f6('0x1f')](handleEntityNotFound(_0x4c0586,null))[_0x86f6('0x1f')](function(_0x12d959){if(_0x12d959){return _0x12d959[_0x86f6('0x68')](_0x11f66d[_0x86f6('0x41')]['ids']);}})[_0x86f6('0x1f')](respondWithStatusCode(_0x4c0586,null))[_0x86f6('0x27')](handleError(_0x4c0586,null));};exports[_0x86f6('0x69')]=function(_0x24a736,_0x10e2f0,_0x5cf549){if(_0x24a736[_0x86f6('0x59')]['id']){delete _0x24a736[_0x86f6('0x59')]['id'];}return db[_0x86f6('0x3d')][_0x86f6('0x57')]({'where':{'id':_0x24a736[_0x86f6('0x53')]['id']}})[_0x86f6('0x1f')](handleEntityNotFound(_0x10e2f0,null))['then'](function(_0x1c3de2){if(_0x1c3de2){_0x24a736[_0x86f6('0x59')][_0x86f6('0x62')]=_0x1c3de2['id'];return db[_0x86f6('0x6a')][_0x86f6('0x58')](_0x24a736[_0x86f6('0x59')]);}})[_0x86f6('0x1f')](respondWithResult(_0x10e2f0,null))[_0x86f6('0x27')](handleError(_0x10e2f0,null));};exports[_0x86f6('0x6b')]=function(_0x1455fb,_0x48a924,_0x2e1d22){var _0x995ffa={'raw':![],'where':{}};var _0x46574a={};var _0x1ff603={'count':0x0,'rows':[]};return db[_0x86f6('0x3d')][_0x86f6('0x65')]({'where':{'id':_0x1455fb[_0x86f6('0x53')]['id']}})[_0x86f6('0x1f')](handleEntityNotFound(_0x48a924,null))[_0x86f6('0x1f')](function(_0x4c1e1c){if(_0x4c1e1c){_0x46574a[_0x86f6('0x45')]=_['keys'](db[_0x86f6('0x6a')][_0x86f6('0x54')]);_0x46574a['query']=_[_0x86f6('0x42')](_0x1455fb[_0x86f6('0x41')]);_0x46574a[_0x86f6('0x43')]=_['intersection'](_0x46574a[_0x86f6('0x45')],_0x46574a[_0x86f6('0x41')]);_0x995ffa[_0x86f6('0x46')]=_[_0x86f6('0x44')](_0x46574a[_0x86f6('0x45')],qs[_0x86f6('0x47')](_0x1455fb['query']['fields']));_0x995ffa['attributes']=_0x995ffa[_0x86f6('0x46')][_0x86f6('0x48')]?_0x995ffa[_0x86f6('0x46')]:_0x46574a[_0x86f6('0x45')];if(!_0x1455fb['query']['hasOwnProperty'](_0x86f6('0x66'))){_0x995ffa['limit']=qs[_0x86f6('0x2e')](_0x1455fb[_0x86f6('0x41')][_0x86f6('0x2e')]);_0x995ffa[_0x86f6('0x2b')]=qs[_0x86f6('0x2b')](_0x1455fb[_0x86f6('0x41')][_0x86f6('0x2b')]);}_0x995ffa[_0x86f6('0x49')]=qs['sort'](_0x1455fb[_0x86f6('0x41')][_0x86f6('0x4a')]);_0x995ffa[_0x86f6('0x4c')]=qs[_0x86f6('0x43')](_['pick'](_0x1455fb[_0x86f6('0x41')],_0x46574a[_0x86f6('0x43')]));_0x995ffa[_0x86f6('0x4c')]['SmsAccountId']=_0x4c1e1c['id'];if(_0x1455fb['query'][_0x86f6('0x67')]){_0x995ffa[_0x86f6('0x4c')]=_[_0x86f6('0x4d')](_0x995ffa['where'],{'$or':_[_0x86f6('0x3c')](_0x995ffa['attributes'],function(_0x141cd6){var _0x1f7313={};_0x1f7313[_0x141cd6]={'$like':'%'+_0x1455fb['query'][_0x86f6('0x67')]+'%'};return _0x1f7313;})});}_0x995ffa=_['merge']({},_0x995ffa,_0x1455fb[_0x86f6('0x56')]);return db[_0x86f6('0x6a')][_0x86f6('0x2d')]({'where':_0x995ffa['where']})[_0x86f6('0x1f')](function(_0x478193){_0x1ff603[_0x86f6('0x2d')]=_0x478193;if(_0x1455fb[_0x86f6('0x41')][_0x86f6('0x55')]){_0x995ffa[_0x86f6('0x4f')]=[{'all':!![]}];}return db[_0x86f6('0x6a')][_0x86f6('0x50')](_0x995ffa);})[_0x86f6('0x1f')](function(_0xb3cca2){_0x1ff603[_0x86f6('0x51')]=_0xb3cca2;return _0x1ff603;});}})[_0x86f6('0x1f')](respondWithFilteredResult(_0x48a924,_0x995ffa))[_0x86f6('0x27')](handleError(_0x48a924,null));};exports[_0x86f6('0x6c')]=function(_0x521852,_0x8a13d6,_0x44d589){return db['SmsAccount'][_0x86f6('0x57')]({'where':{'id':_0x521852['params']['id']}})[_0x86f6('0x1f')](handleEntityNotFound(_0x8a13d6,null))[_0x86f6('0x1f')](function(_0x482a0e){if(_0x482a0e){return _0x482a0e['removeAnswers'](_0x521852[_0x86f6('0x41')]['ids']);}})['then'](respondWithStatusCode(_0x8a13d6,null))[_0x86f6('0x27')](handleError(_0x8a13d6,null));};exports[_0x86f6('0x6d')]=function(_0x47aa19,_0x15cdf1,_0x3279ea){var _0x3cd590={'channel':_0x86f6('0x6e')};var _0x1eb0d1=[];var _0x6c24ac=[];var _0x4d9ddf={};return db[_0x86f6('0x3d')][_0x86f6('0x57')]({'where':{'id':_0x47aa19[_0x86f6('0x53')]['id']},'include':[{'model':db[_0x86f6('0x6f')],'as':_0x86f6('0x70')}]})['then'](handleEntityNotFound(_0x15cdf1,null))[_0x86f6('0x1f')](function(_0x7f227){_0x3cd590[_0x86f6('0x71')]=_0x7f227;_0x3cd590[_0x86f6('0x72')]=_[_0x86f6('0x73')](_0x7f227[_0x86f6('0x70')],[_0x86f6('0x74')],['asc']);if(_0x3cd590[_0x86f6('0x71')]['Applications']){delete _0x3cd590['account'][_0x86f6('0x70')];}return db[_0x86f6('0x75')]['describe']();})[_0x86f6('0x1f')](function(_0x2ce89b){if(!_0x2ce89b){throw new db[(_0x86f6('0x76'))][(_0x86f6('0x77'))]('no\x20available\x20attributes');}_0x1eb0d1=_[_0x86f6('0x78')](_['keys'](_0x2ce89b),[_0x86f6('0x79'),'updatedAt']);_0x6c24ac=_['difference'](_[_0x86f6('0x42')](_0x2ce89b),[_0x86f6('0x79'),_0x86f6('0x7a'),_0x86f6('0x7b'),_0x86f6('0x7c')]);_0x3cd590[_0x86f6('0x59')]={'mapKey':_0x86f6('0x7d')};if(_0x3cd590[_0x86f6('0x71')][_0x86f6('0x3f')]){switch(_0x3cd590[_0x86f6('0x71')][_0x86f6('0x3f')]){case _0x86f6('0x7e'):_0x3cd590['body']['from']=_0x47aa19[_0x86f6('0x59')][_0x86f6('0x7f')];_0x3cd590[_0x86f6('0x59')]['body']=_0x47aa19[_0x86f6('0x59')][_0x86f6('0x80')];_0x3cd590['body'][_0x86f6('0x81')]=_0x47aa19[_0x86f6('0x59')][_0x86f6('0x82')];break;case _0x86f6('0x83'):_0x3cd590[_0x86f6('0x59')][_0x86f6('0x84')]='+'+_0x47aa19[_0x86f6('0x59')][_0x86f6('0x85')];_0x3cd590[_0x86f6('0x59')]['body']=_0x47aa19['body']['text'];break;case _0x86f6('0x86'):_0x3cd590[_0x86f6('0x59')][_0x86f6('0x84')]=_0x47aa19['body'][_0x86f6('0x84')];_0x3cd590[_0x86f6('0x59')][_0x86f6('0x59')]=_0x47aa19[_0x86f6('0x59')]['message'];break;case _0x86f6('0x87'):_0x3cd590[_0x86f6('0x59')][_0x86f6('0x84')]=_0x47aa19[_0x86f6('0x59')][_0x86f6('0x84')];_0x3cd590[_0x86f6('0x59')]['body']=_0x47aa19['body'][_0x86f6('0x59')];_0x3cd590[_0x86f6('0x59')][_0x86f6('0x81')]=_0x47aa19[_0x86f6('0x59')][_0x86f6('0x88')];break;case _0x86f6('0x89'):_0x3cd590['body'][_0x86f6('0x84')]=_0x47aa19[_0x86f6('0x59')]['From'];_0x3cd590[_0x86f6('0x59')][_0x86f6('0x59')]=_0x47aa19['body'][_0x86f6('0x8a')];_0x3cd590['body'][_0x86f6('0x81')]=_0x47aa19[_0x86f6('0x59')]['MessageUUID'];break;case _0x86f6('0x8b'):_0x3cd590[_0x86f6('0x59')][_0x86f6('0x84')]='+'+_0x47aa19[_0x86f6('0x59')][_0x86f6('0x8c')][0x0]['from'];_0x3cd590[_0x86f6('0x59')][_0x86f6('0x59')]=_0x47aa19[_0x86f6('0x59')]['results'][0x0][_0x86f6('0x8d')];_0x3cd590['body'][_0x86f6('0x81')]=_0x47aa19[_0x86f6('0x59')][_0x86f6('0x8c')][0x0][_0x86f6('0x81')];break;case _0x86f6('0x8e'):_0x3cd590['body']['from']=_0x47aa19[_0x86f6('0x59')]['originatingAddress'];_0x3cd590['body']['body']=_0x47aa19[_0x86f6('0x59')][_0x86f6('0x8f')][_0x86f6('0x26')];break;case _0x86f6('0x90'):_0x3cd590[_0x86f6('0x59')]['from']=_0x47aa19[_0x86f6('0x59')]['fromNumber'];_0x3cd590[_0x86f6('0x59')][_0x86f6('0x59')]=_0x47aa19[_0x86f6('0x59')][_0x86f6('0x8d')];_0x3cd590[_0x86f6('0x59')][_0x86f6('0x81')]=_0x47aa19[_0x86f6('0x59')][_0x86f6('0x91')];break;case _0x86f6('0x92'):_0x3cd590[_0x86f6('0x59')][_0x86f6('0x81')]=_0x47aa19[_0x86f6('0x59')][0x0]['message']['id'];_0x3cd590['body']['from']=_0x47aa19[_0x86f6('0x59')][0x0][_0x86f6('0x26')]['from'];_0x3cd590[_0x86f6('0x59')][_0x86f6('0x59')]=_0x47aa19[_0x86f6('0x59')][0x0][_0x86f6('0x26')]['text'];break;case _0x86f6('0x93'):_0x3cd590[_0x86f6('0x59')]['from']=_0x47aa19['body'][_0x86f6('0x84')];_0x3cd590[_0x86f6('0x59')][_0x86f6('0x59')]=_0x47aa19[_0x86f6('0x59')]['message'];_0x3cd590[_0x86f6('0x59')][_0x86f6('0x81')]=_0x47aa19[_0x86f6('0x59')][_0x86f6('0x94')];break;}}if(_0x3cd590['body']['id']){delete _0x3cd590['body']['id'];}if(_[_0x86f6('0x95')](_0x3cd590[_0x86f6('0x59')][_0x86f6('0x84')])){throw new db['Sequelize'][(_0x86f6('0x77'))](_0x86f6('0x96'));}if(_[_0x86f6('0x95')](_0x3cd590[_0x86f6('0x59')][_0x86f6('0x59')])||_0x3cd590[_0x86f6('0x59')]['body']===''){throw new db[(_0x86f6('0x76'))][(_0x86f6('0x77'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x86f6('0x95')](_0x3cd590[_0x86f6('0x59')][_0x86f6('0x97')])){throw new db[(_0x86f6('0x76'))]['ValidationError'](_0x86f6('0x98')+_0x6c24ac);}if(!_[_0x86f6('0x99')](_0x6c24ac,_0x3cd590['body']['mapKey'])){throw new db[(_0x86f6('0x76'))][(_0x86f6('0x77'))](_0x86f6('0x9a')+_0x6c24ac);}_0x4d9ddf[_0x3cd590[_0x86f6('0x59')][_0x86f6('0x97')]]=_0x3cd590[_0x86f6('0x59')][_0x86f6('0x84')];return db[_0x86f6('0x9b')][_0x86f6('0x57')]({'where':{'id':_0x3cd590[_0x86f6('0x71')][_0x86f6('0x7c')]},'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x4d9ddf,'limit':0x1,'order':[[_0x86f6('0x7a'),_0x86f6('0x9c')]]}]});})[_0x86f6('0x1f')](handleEntityNotFound(_0x15cdf1,null))[_0x86f6('0x1f')](function(_0x420ead){if(_0x420ead){_0x3cd590['list']=_[_0x86f6('0x9d')](_0x420ead,[_0x86f6('0x9e')]);if(_0x420ead[_0x86f6('0x9e')][_0x86f6('0x48')]){return _0x420ead[_0x86f6('0x9e')][0x0];}var _0x5813bc=_[_0x86f6('0x9f')](_0x3cd590[_0x86f6('0x59')],{'firstName':_0x3cd590[_0x86f6('0x59')][_0x86f6('0x84')],'ListId':_0x420ead['id']});_0x5813bc[_0x3cd590[_0x86f6('0x59')][_0x86f6('0x97')]]=_0x3cd590[_0x86f6('0x59')][_0x86f6('0x84')];return db[_0x86f6('0x75')][_0x86f6('0x58')](_0x5813bc,{'fields':_0x1eb0d1,'raw':!![]});}})[_0x86f6('0x1f')](handleEntityNotFound(_0x15cdf1,null))['then'](function(_0x3d4bb3){if(_0x3d4bb3){_0x3cd590[_0x86f6('0xa0')]=_0x3d4bb3;var _0x387f5a={'ContactId':_0x3d4bb3['id'],'phone':_0x3cd590[_0x86f6('0x59')]['from'],'SmsAccountId':_0x47aa19[_0x86f6('0x53')]['id']};var _0xaba8c6={'ContactId':_0x3d4bb3['id'],'SmsAccountId':_0x47aa19['params']['id'],'closed':![]};return db[_0x86f6('0xa1')][_0x86f6('0x57')]({'where':_0xaba8c6})['then'](function(_0x4650e0){if(_0x4650e0){return[_0x4650e0,![]];}return db[_0x86f6('0xa1')][_0x86f6('0x58')](_0x387f5a)['then'](function(_0x4d398f){return[_0x4d398f,!![]];});});}})[_0x86f6('0xa2')](function(_0xe7c9a1,_0x2eb6b8){_0x3cd590[_0x86f6('0xa3')]=_0xe7c9a1[_0x86f6('0x35')]({'plain':!![]});_0x3cd590[_0x86f6('0xa3')][_0x86f6('0xa4')]=![];if(_0x2eb6b8){if(_0x3cd590[_0x86f6('0x71')]['autoclose']){_0x3cd590[_0x86f6('0x72')][_0x86f6('0xa5')]({'id':0x0,'priority':_0x3cd590[_0x86f6('0x72')][_0x86f6('0x48')]+0x1,'app':_0x86f6('0xa6'),'appdata':'unmanaged','interval':'*,*,*,*'});}_0x3cd590[_0x86f6('0xa3')]['created']=!![];}return db[_0x86f6('0xa7')][_0x86f6('0x58')]({'phone':_0x3cd590[_0x86f6('0x59')][_0x86f6('0x84')],'messageId':_0x3cd590[_0x86f6('0x59')][_0x86f6('0x81')],'body':_0x3cd590[_0x86f6('0x59')]['body'],'SmsAccountId':_0x47aa19['params']['id'],'SmsInteractionId':_0xe7c9a1['id'],'direction':'in','ContactId':_0xe7c9a1[_0x86f6('0xa8')],'AttachmentId':_0x3cd590[_0x86f6('0x59')][_0x86f6('0xa9')]});})[_0x86f6('0x1f')](function(_0x4799cb){_0x3cd590[_0x86f6('0x26')]=_0x4799cb;if(_0x3cd590[_0x86f6('0xa3')]['UserId']){return db[_0x86f6('0xaa')][_0x86f6('0x57')]({'attributes':['id',_0x86f6('0x38')],'where':{'id':_0x3cd590[_0x86f6('0xa3')][_0x86f6('0xab')]}})['then'](function(_0x5811ea){if(_0x5811ea){_0x3cd590['applications'][_0x86f6('0xac')]({'id':0x0,'priority':0x0,'app':_0x86f6('0xad'),'appdata':_0x5811ea[_0x86f6('0x38')]+','+(_0x3cd590[_0x86f6('0x71')][_0x86f6('0xae')]||0xa),'interval':_0x86f6('0xaf')});}return respondWithRpcPromise('Start',_0x86f6('0xb0'),_0x3cd590);});}return respondWithRpcPromise(_0x86f6('0xb1'),_0x86f6('0xb0'),_0x3cd590);})[_0x86f6('0x1f')](function(_0x392915){if(_0x392915){var _0x37aa0b=0xc8;var _0x2ddd7c=_0x86f6('0xb2');logger[_0x86f6('0x20')](_0x86f6('0xb3'),_0x2ddd7c,_0x37aa0b,_0x86f6('0xb4'));logger[_0x86f6('0xb5')](_0x86f6('0xb6'),_0x2ddd7c,_0x37aa0b,_0x86f6('0xb4'),JSON['stringify'](_0x392915));if(_0x3cd590[_0x86f6('0x71')][_0x86f6('0x3f')]===_0x86f6('0x7e')){return _0x15cdf1[_0x86f6('0x29')](_0x37aa0b)[_0x86f6('0xb7')](_0x86f6('0xb8'),_0x86f6('0xb9'))[_0x86f6('0xba')]('<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>');}else{return _0x15cdf1[_0x86f6('0x29')](_0x37aa0b)[_0x86f6('0xbb')](_0x392915);}}})['catch'](handleError(_0x15cdf1,null));};exports[_0x86f6('0xbc')]=function(_0x321d87,_0x3aaecb,_0x388ec8){return db[_0x86f6('0x3d')][_0x86f6('0x65')]({'where':{'id':_0x321d87[_0x86f6('0x53')]['id']}})[_0x86f6('0x1f')](handleEntityNotFound(_0x3aaecb,null))['then'](function(_0x2efa9a){if(_0x2efa9a){return db[_0x86f6('0xbd')][_0x86f6('0xbe')](function(_0x82a2c6){return db[_0x86f6('0x6f')]['destroy']({'where':{'SmsAccountId':_0x321d87['params']['id']},'transaction':_0x82a2c6})[_0x86f6('0x1f')](function(_0x3b3411){var _0xcab35=_['map'](_0x321d87[_0x86f6('0x59')],function(_0x5c6419){_0x5c6419['SmsAccountId']=_0x321d87[_0x86f6('0x53')]['id'];return _0x5c6419;});return db[_0x86f6('0x6f')][_0x86f6('0xbf')](_0xcab35,{'transaction':_0x82a2c6});});})[_0x86f6('0x1f')](function(){return db[_0x86f6('0x6f')][_0x86f6('0xc0')]({'where':{'SmsAccountId':_0x321d87[_0x86f6('0x53')]['id']},'order':'priority'});});}})[_0x86f6('0x1f')](respondWithResult(_0x3aaecb,null))[_0x86f6('0x27')](handleError(_0x3aaecb,null));};exports[_0x86f6('0xc1')]=function(_0x556a8c,_0x42f5d4,_0x230d35){var _0x288ec9={};var _0x3e4998={};var _0x211b7c;var _0x186179;return db[_0x86f6('0x3d')]['findOne']({'where':{'id':_0x556a8c['params']['id']}})[_0x86f6('0x1f')](handleEntityNotFound(_0x42f5d4,null))[_0x86f6('0x1f')](function(_0x441457){if(_0x441457){_0x211b7c=_0x441457;_0x3e4998[_0x86f6('0x45')]=_[_0x86f6('0x42')](db[_0x86f6('0x6f')][_0x86f6('0x54')]);_0x3e4998[_0x86f6('0x41')]=_[_0x86f6('0x42')](_0x556a8c[_0x86f6('0x41')]);_0x3e4998['filters']=_[_0x86f6('0x44')](_0x3e4998['model'],_0x3e4998[_0x86f6('0x41')]);_0x288ec9[_0x86f6('0x46')]=_[_0x86f6('0x44')](_0x3e4998['model'],qs[_0x86f6('0x47')](_0x556a8c[_0x86f6('0x41')][_0x86f6('0x47')]));_0x288ec9[_0x86f6('0x46')]=_0x288ec9[_0x86f6('0x46')]['length']?_0x288ec9['attributes']:_0x3e4998[_0x86f6('0x45')];_0x288ec9[_0x86f6('0x49')]=qs[_0x86f6('0x4a')](_0x556a8c['query'][_0x86f6('0x4a')]);_0x288ec9[_0x86f6('0x4c')]=qs['filters'](_[_0x86f6('0x4b')](_0x556a8c['query'],_0x3e4998['filters']));if(_0x556a8c['query'][_0x86f6('0x67')]){_0x288ec9[_0x86f6('0x4c')]=_[_0x86f6('0x4d')](_0x288ec9[_0x86f6('0x4c')],{'$or':_[_0x86f6('0x3c')](_0x288ec9[_0x86f6('0x46')],function(_0x27c7d3){var _0x28902a={};_0x28902a[_0x27c7d3]={'$like':'%'+_0x556a8c[_0x86f6('0x41')]['filter']+'%'};return _0x28902a;})});}_0x288ec9=_[_0x86f6('0x4d')]({},_0x288ec9,_0x556a8c['options']);return _0x211b7c[_0x86f6('0xc1')](_0x288ec9);}})['then'](function(_0x282e90){if(_0x282e90){_0x186179=_0x282e90['length'];if(!_0x556a8c[_0x86f6('0x41')][_0x86f6('0xc2')](_0x86f6('0x66'))){_0x288ec9[_0x86f6('0x2e')]=qs[_0x86f6('0x2e')](_0x556a8c[_0x86f6('0x41')]['limit']);_0x288ec9[_0x86f6('0x2b')]=qs[_0x86f6('0x2b')](_0x556a8c[_0x86f6('0x41')][_0x86f6('0x2b')]);}return _0x211b7c[_0x86f6('0xc1')](_0x288ec9);}})[_0x86f6('0x1f')](function(_0x41981e){if(_0x41981e){return _0x41981e?{'count':_0x186179,'rows':_0x41981e}:null;}})[_0x86f6('0x1f')](respondWithResult(_0x42f5d4,null))[_0x86f6('0x27')](handleError(_0x42f5d4,null));};exports[_0x86f6('0xc3')]=function(_0x2fae56,_0x4ae312,_0x19484f){var _0x4ee7a7={'raw':![],'where':{}};var _0xa3e718={};var _0x2a3fc5={'count':0x0,'rows':[]};return db[_0x86f6('0x3d')]['findOne']({'where':{'id':_0x2fae56[_0x86f6('0x53')]['id']}})[_0x86f6('0x1f')](handleEntityNotFound(_0x4ae312,null))[_0x86f6('0x1f')](function(_0x5c81f2){if(_0x5c81f2){_0xa3e718['model']=_[_0x86f6('0x42')](db['SmsInteraction'][_0x86f6('0x54')]);_0xa3e718[_0x86f6('0x41')]=_[_0x86f6('0x42')](_0x2fae56['query']);_0xa3e718['filters']=_[_0x86f6('0x44')](_0xa3e718[_0x86f6('0x45')],_0xa3e718['query']);_0x4ee7a7[_0x86f6('0x46')]=_[_0x86f6('0x44')](_0xa3e718[_0x86f6('0x45')],qs['fields'](_0x2fae56['query'][_0x86f6('0x47')]));_0x4ee7a7[_0x86f6('0x46')]=_0x4ee7a7[_0x86f6('0x46')][_0x86f6('0x48')]?_0x4ee7a7[_0x86f6('0x46')]:_0xa3e718[_0x86f6('0x45')];if(!_0x2fae56[_0x86f6('0x41')][_0x86f6('0xc2')](_0x86f6('0x66'))){_0x4ee7a7[_0x86f6('0x2e')]=qs[_0x86f6('0x2e')](_0x2fae56['query']['limit']);_0x4ee7a7['offset']=qs[_0x86f6('0x2b')](_0x2fae56[_0x86f6('0x41')][_0x86f6('0x2b')]);}_0x4ee7a7['order']=qs[_0x86f6('0x4a')](_0x2fae56['query'][_0x86f6('0x4a')]);_0x4ee7a7[_0x86f6('0x4c')]=qs[_0x86f6('0x43')](_[_0x86f6('0x4b')](_0x2fae56['query'],_0xa3e718[_0x86f6('0x43')]));_0x4ee7a7[_0x86f6('0x4c')][_0x86f6('0x62')]=_0x5c81f2['id'];if(_0x2fae56['query'][_0x86f6('0x67')]){_0x4ee7a7[_0x86f6('0x4c')]=_[_0x86f6('0x4d')](_0x4ee7a7[_0x86f6('0x4c')],{'$or':_['map'](_0x4ee7a7['attributes'],function(_0xbf7ceb){var _0x247ea7={};_0x247ea7[_0xbf7ceb]={'$like':'%'+_0x2fae56[_0x86f6('0x41')][_0x86f6('0x67')]+'%'};return _0x247ea7;})});}_0x4ee7a7=_[_0x86f6('0x4d')]({},_0x4ee7a7,_0x2fae56[_0x86f6('0x56')]);return db[_0x86f6('0xa1')][_0x86f6('0x2d')]({'where':_0x4ee7a7[_0x86f6('0x4c')]})[_0x86f6('0x1f')](function(_0x5b67db){_0x2a3fc5[_0x86f6('0x2d')]=_0x5b67db;if(_0x2fae56[_0x86f6('0x41')][_0x86f6('0x55')]){_0x4ee7a7[_0x86f6('0x4f')]=[{'model':db[_0x86f6('0x75')],'as':_0x86f6('0xc4'),'required':![]},{'model':db[_0x86f6('0xaa')],'as':'Owner','attributes':[_0x86f6('0x38'),_0x86f6('0xc5'),_0x86f6('0xc6')],'required':![]},{'model':db[_0x86f6('0xc7')],'as':'Tags','attributes':['id',_0x86f6('0x38'),_0x86f6('0xc8')],'where':_0x2fae56[_0x86f6('0x41')][_0x86f6('0xc9')]?{'id':_0x2fae56[_0x86f6('0x41')][_0x86f6('0xc9')]}:undefined,'required':_0x2fae56['query'][_0x86f6('0xc9')]?!![]:![]}];}return db[_0x86f6('0xa1')][_0x86f6('0x50')](_0x4ee7a7);})[_0x86f6('0x1f')](function(_0x33d164){_0x2a3fc5['rows']=_0x33d164;return _0x2a3fc5;});}})['then'](respondWithFilteredResult(_0x4ae312,_0x4ee7a7))['catch'](handleError(_0x4ae312,null));};exports[_0x86f6('0xba')]=function(_0x1e719d,_0x2785c0,_0xff4e9c){var _0x35c4b8,_0x1cddb1,_0x10e9f2;if(_[_0x86f6('0x95')](_0x1e719d[_0x86f6('0x59')][_0x86f6('0x59')])||_0x1e719d[_0x86f6('0x59')]['body']===''){throw new db[(_0x86f6('0x76'))][(_0x86f6('0x77'))](_0x86f6('0xca'));}if(_[_0x86f6('0x95')](_0x1e719d[_0x86f6('0x59')]['to'])){throw new db['Sequelize'][(_0x86f6('0x77'))](_0x86f6('0xcb'));}_0x35c4b8=_0x1e719d[_0x86f6('0x59')]['to'];return db[_0x86f6('0x3d')]['find']({'where':{'id':_0x1e719d[_0x86f6('0x53')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0x86f6('0x75')],'as':'Contacts','where':{'mobile':_0x35c4b8},'limit':0x1,'order':[[_0x86f6('0x7a'),_0x86f6('0x9c')]]}]}]})[_0x86f6('0x1f')](handleEntityNotFound(_0x2785c0,null))[_0x86f6('0x1f')](function(_0x4d303c){if(_0x4d303c&&_0x4d303c[_0x86f6('0xcc')]){_0x1cddb1=_0x4d303c[_0x86f6('0x35')]({'plain':!![]});if(_0x1cddb1[_0x86f6('0xcc')]&&_0x1cddb1[_0x86f6('0xcc')][_0x86f6('0x9e')]['length']){return _0x1cddb1['List']['Contacts'][0x0];}return db[_0x86f6('0x75')][_0x86f6('0x58')](_[_0x86f6('0x9f')](_0x1e719d[_0x86f6('0x59')],{'firstName':_0x35c4b8,'mobile':_0x35c4b8,'phone':_0x35c4b8,'ListId':_0x1cddb1[_0x86f6('0x7c')]}));}})[_0x86f6('0x1f')](handleEntityNotFound(_0x2785c0,null))['then'](function(_0x366136){if(_0x366136){_0x10e9f2=_0x366136;return db[_0x86f6('0xa1')]['find']({'where':{'ContactId':_0x10e9f2['id'],'closed':![],'SmsAccountId':_0x1cddb1['id']}})[_0x86f6('0x1f')](function(_0x6d61e6){if(_0x6d61e6){return[_0x6d61e6,![]];}return db['SmsInteraction'][_0x86f6('0x58')]({'UserId':_0x1e719d[_0x86f6('0x5a')]['id'],'ContactId':_0x10e9f2['id'],'SmsAccountId':_0x1cddb1['id'],'phone':_0x35c4b8,'firstMsgDirection':_0x86f6('0xcd'),'Messages':[_['merge'](_0x1e719d[_0x86f6('0x59')],{'read':![],'body':_0x1e719d[_0x86f6('0x59')][_0x86f6('0x59')],'phone':_0x35c4b8,'SmsAccountId':_0x1cddb1['id'],'UserId':_0x1e719d['user']['id'],'ContactId':_0x10e9f2['id']})]},{'include':[{'model':db[_0x86f6('0xa7')],'as':_0x86f6('0xce')}]})[_0x86f6('0x1f')](function(_0x17ebb8){return[_0x17ebb8,!![]];});});}})[_0x86f6('0xa2')](function(_0x5ae45a,_0x2e3d4f){if(_0x2e3d4f){return _0x5ae45a;}return db[_0x86f6('0xa7')]['create'](_[_0x86f6('0x4d')](_0x1e719d[_0x86f6('0x59')],{'read':![],'body':_0x1e719d[_0x86f6('0x59')][_0x86f6('0x59')],'phone':_0x35c4b8,'SmsAccountId':_0x1cddb1['id'],'SmsInteractionId':_0x5ae45a['id'],'UserId':_0x1e719d[_0x86f6('0x5a')]['id'],'ContactId':_0x10e9f2['id']}))[_0x86f6('0x1f')](function(_0x28129c){_0x5ae45a['dataValues'][_0x86f6('0xce')]=[];_0x5ae45a['dataValues'][_0x86f6('0xce')][_0x86f6('0xa5')](_0x28129c[_0x86f6('0xcf')]);return _0x5ae45a;});})[_0x86f6('0x1f')](respondWithResult(_0x2785c0,null))[_0x86f6('0x27')](handleError(_0x2785c0,null));};exports[_0x86f6('0x29')]=function(_0x5b9895,_0x4d2d8c,_0x434098){if(_0x5b9895[_0x86f6('0x59')]['id']){delete _0x5b9895['body']['id'];}var _0x8bd408,_0x2c5a9e,_0x496aa4;return db['SmsAccount']['find']({'where':{'id':_0x5b9895[_0x86f6('0x53')]['id']}})[_0x86f6('0x1f')](handleEntityNotFound(_0x4d2d8c,null))[_0x86f6('0x1f')](function(_0x41b530){if(_0x41b530){_0x496aa4=_0x41b530;logger['debug'](_0x86f6('0xb3'),_0x86f6('0x29'),_0x86f6('0xd0'),_0x41b530[_0x86f6('0x3f')],util[_0x86f6('0xd1')](_0x5b9895[_0x86f6('0x59')],{'showHidden':![],'depth':null}));switch(_0x41b530[_0x86f6('0x3f')]){case _0x86f6('0x83'):if(_0x5b9895[_0x86f6('0x59')]['skebby_dispatch_id']&&_0x5b9895[_0x86f6('0x59')]['status']){_0x2c5a9e=_0x5b9895[_0x86f6('0x59')][_0x86f6('0x29')];return db[_0x86f6('0xa7')]['find']({'where':{'messageId':_0x5b9895[_0x86f6('0x59')][_0x86f6('0xd2')]}});}break;case _0x86f6('0x86'):if(_0x5b9895[_0x86f6('0x59')][_0x86f6('0xd3')]&&_0x5b9895[_0x86f6('0x59')][_0x86f6('0xd4')]){_0x2c5a9e=_0x5b9895['body'][_0x86f6('0xd4')];return db[_0x86f6('0xa7')][_0x86f6('0x57')]({'where':{'messageId':_0x5b9895['body'][_0x86f6('0xd3')]}});}break;case _0x86f6('0x87'):if(_0x5b9895[_0x86f6('0x59')][_0x86f6('0x88')]&&_0x5b9895['body'][_0x86f6('0xd5')]){_0x2c5a9e=_0x5b9895['body']['status_code'];return db[_0x86f6('0xa7')][_0x86f6('0x57')]({'where':{'messageId':_0x5b9895['body'][_0x86f6('0x88')]}});}break;case _0x86f6('0x8b'):var _0x23ea7b=_0x5b9895['body']['results'][0x0];if(_0x23ea7b['messageId']&&_0x23ea7b[_0x86f6('0x29')]['groupName']===_0x86f6('0xd6')){_0x2c5a9e=_0x23ea7b[_0x86f6('0x29')][_0x86f6('0xd7')];return db[_0x86f6('0xa7')][_0x86f6('0x57')]({'where':{'messageId':_0x23ea7b[_0x86f6('0x81')]}});}break;case _0x86f6('0x90'):if(_0x5b9895['body'][_0x86f6('0x81')]&&_0x5b9895[_0x86f6('0x59')]['status']){_0x2c5a9e=_0x5b9895[_0x86f6('0x59')][_0x86f6('0x29')];return db[_0x86f6('0xa7')][_0x86f6('0x57')]({'where':{'messageId':_0x5b9895[_0x86f6('0x59')][_0x86f6('0x81')]}});}break;case _0x86f6('0x92'):if(_0x5b9895[_0x86f6('0x59')][0x0]['message']['id']){_0x2c5a9e=_0x5b9895[_0x86f6('0x59')][0x0][_0x86f6('0x3f')];return db[_0x86f6('0xa7')][_0x86f6('0x57')]({'where':{'messageId':_0x5b9895[_0x86f6('0x59')][0x0][_0x86f6('0x26')]['id']}});}break;case _0x86f6('0x93'):if(_0x5b9895[_0x86f6('0x59')][_0x86f6('0xd8')]&&_0x5b9895['body'][_0x86f6('0x29')]){_0x2c5a9e=_0x5b9895[_0x86f6('0x59')][_0x86f6('0x29')];return db[_0x86f6('0xa7')][_0x86f6('0x57')]({'where':{'messageId':_0x5b9895[_0x86f6('0x59')][_0x86f6('0xd8')]}});}break;}}})[_0x86f6('0x1f')](handleEntityNotFound(_0x4d2d8c,null))[_0x86f6('0x1f')](function(_0x2fdf8b){if(_0x2fdf8b){_0x8bd408=_0x2fdf8b;switch(_0x496aa4[_0x86f6('0x3f')]){case _0x86f6('0x83'):if(_0x2c5a9e===_0x86f6('0xd6')){return _0x8bd408[_0x86f6('0x33')]({'read':!![]});}else{logger[_0x86f6('0x24')](_0x86f6('0xb3'),_0x86f6('0x29'),_0x86f6('0x83'),util[_0x86f6('0xd1')](_0x5b9895[_0x86f6('0x59')],{'showHidden':![],'depth':null}));}break;case _0x86f6('0x86'):if(_0x2c5a9e==='1'){return _0x8bd408[_0x86f6('0x33')]({'read':!![]});}else{logger[_0x86f6('0x24')](_0x86f6('0xb3'),_0x86f6('0x29'),_0x86f6('0x83'),util[_0x86f6('0xd1')](_0x5b9895['body'],{'showHidden':![],'depth':null}));}break;case _0x86f6('0x87'):if(!_0x5b9895[_0x86f6('0x59')][_0x86f6('0xd9')]&&_0x2c5a9e>=0xc8&&_0x2c5a9e<=0xce){return _0x8bd408[_0x86f6('0x33')]({'read':!![]});}else{logger[_0x86f6('0x24')](_0x86f6('0xb3'),_0x86f6('0x29'),_0x86f6('0x87'),util[_0x86f6('0xd1')](_0x5b9895[_0x86f6('0x59')],{'showHidden':![],'depth':null}));}break;case _0x86f6('0x8b'):var _0x16e70e=_0x5b9895[_0x86f6('0x59')][_0x86f6('0x8c')][0x0];if(_0x16e70e[_0x86f6('0x29')][_0x86f6('0xd7')]==='DELIVERED'){return _0x8bd408[_0x86f6('0x33')]({'read':!![]});}else{logger[_0x86f6('0x24')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x86f6('0x29'),_0x86f6('0x8b'),util[_0x86f6('0xd1')](_0x5b9895['body'],{'showHidden':![],'depth':null}));}break;case _0x86f6('0x90'):if(_0x2c5a9e=='DELIVERED_TO_GATEWAY'||_0x2c5a9e==_0x86f6('0xda')){return _0x8bd408[_0x86f6('0x33')]({'read':!![]});}else{logger[_0x86f6('0x24')](_0x86f6('0xb3'),_0x86f6('0x29'),_0x86f6('0x90'),util[_0x86f6('0xd1')](_0x5b9895[_0x86f6('0x59')],{'showHidden':![],'depth':null}));}break;case _0x86f6('0x92'):if(_0x2c5a9e==_0x86f6('0xdb')){return _0x8bd408[_0x86f6('0x33')]({'read':!![]});}else{logger['error'](_0x86f6('0xb3'),'status',_0x86f6('0x92'),util[_0x86f6('0xd1')](_0x5b9895[_0x86f6('0x59')],{'showHidden':![],'depth':null}));}break;case _0x86f6('0x93'):if(_0x2c5a9e===_0x86f6('0xdc')||_0x2c5a9e==='ACCEPTD'){return _0x8bd408[_0x86f6('0x33')]({'read':!![]});}else{logger[_0x86f6('0x24')](_0x86f6('0xb3'),_0x86f6('0x29'),_0x86f6('0x93'),util['inspect'](_0x5b9895[_0x86f6('0x59')],{'showHidden':![],'depth':null}));}break;}return _0x8bd408;}})[_0x86f6('0x1f')](respondWithResult(_0x4d2d8c,null))[_0x86f6('0x27')](handleError(_0x4d2d8c,null));};exports['statusGet']=function(_0x50f26e,_0x4d95eb,_0x5d06bd){var _0x423dc5,_0x334a5a,_0x5a671a;return db[_0x86f6('0x3d')][_0x86f6('0x57')]({'where':{'id':_0x50f26e[_0x86f6('0x53')]['id']}})['then'](handleEntityNotFound(_0x4d95eb,null))[_0x86f6('0x1f')](function(_0x3d2a1c){if(_0x3d2a1c){_0x5a671a=_0x3d2a1c;logger[_0x86f6('0xb5')](_0x86f6('0xb3'),'status','received\x20delivery\x20report\x20from',_0x3d2a1c[_0x86f6('0x3f')],util[_0x86f6('0xd1')](_0x50f26e[_0x86f6('0x41')],{'showHidden':![],'depth':null}));switch(_0x3d2a1c[_0x86f6('0x3f')]){case _0x86f6('0x8e'):if(_0x50f26e['query'][_0x86f6('0xdd')]&&_0x50f26e[_0x86f6('0x41')][_0x86f6('0xde')]){_0x334a5a=_0x50f26e['query']['state'];return db[_0x86f6('0xa7')][_0x86f6('0x57')]({'where':{'messageId':_0x50f26e[_0x86f6('0x41')]['message-id']}});}break;}}})[_0x86f6('0x1f')](handleEntityNotFound(_0x4d95eb,null))['then'](function(_0x87072e){if(_0x87072e){_0x423dc5=_0x87072e;switch(_0x5a671a[_0x86f6('0x3f')]){case _0x86f6('0x8e'):if(_0x334a5a==='2'||_0x334a5a==='6'){return _0x423dc5[_0x86f6('0x33')]({'read':!![]});}else{logger['error'](_0x86f6('0xb3'),_0x86f6('0x29'),_0x86f6('0x8e'),util[_0x86f6('0xd1')](_0x50f26e[_0x86f6('0x41')],{'showHidden':![],'depth':null}));};break;}return _0x423dc5;}})[_0x86f6('0x1f')](respondWithResult(_0x4d95eb,null))[_0x86f6('0x27')](handleError(_0x4d95eb,null));};exports['addAgents']=function(_0x491358,_0x49ff2b,_0x48ad63){return db['SmsAccount'][_0x86f6('0x57')]({'where':{'id':_0x491358[_0x86f6('0x53')]['id']}})[_0x86f6('0x1f')](handleEntityNotFound(_0x49ff2b,null))['then'](function(_0x1c2ea0){if(_0x1c2ea0){return _0x1c2ea0[_0x86f6('0xdf')](_0x491358[_0x86f6('0x59')][_0x86f6('0xe0')],_['omit'](_0x491358[_0x86f6('0x59')],[_0x86f6('0xe0'),'id'])||{})[_0x86f6('0xa2')](function(_0x5534c8){for(var _0x5a1a1e=0x0;_0x5a1a1e<_0x491358[_0x86f6('0x59')]['ids'][_0x86f6('0x48')];_0x5a1a1e+=0x1){socket[_0x86f6('0xe1')](_0x86f6('0xe2'),{'UserId':Number(_0x491358['body'][_0x86f6('0xe0')][_0x5a1a1e]),'SmsAccountId':Number(_0x491358['params']['id'])});}return _0x5534c8;});}})['then'](respondWithResult(_0x49ff2b,null))[_0x86f6('0x27')](handleError(_0x49ff2b,null));};exports[_0x86f6('0xe3')]=function(_0x1413fc,_0x2c7f17,_0x4f9c70){return db['SmsAccount'][_0x86f6('0x57')]({'where':{'id':_0x1413fc[_0x86f6('0x53')]['id']}})['then'](handleEntityNotFound(_0x2c7f17,null))[_0x86f6('0x1f')](function(_0x3fab2e){if(_0x3fab2e){return _0x3fab2e[_0x86f6('0xe3')](_0x1413fc[_0x86f6('0x41')][_0x86f6('0xe0')])[_0x86f6('0x1f')](function(){if(_[_0x86f6('0xe4')](_0x1413fc[_0x86f6('0x41')][_0x86f6('0xe0')])){for(var _0x1ea398=0x0;_0x1ea398<_0x1413fc[_0x86f6('0x41')][_0x86f6('0xe0')][_0x86f6('0x48')];_0x1ea398+=0x1){socket[_0x86f6('0xe1')](_0x86f6('0xe5'),{'UserId':Number(_0x1413fc[_0x86f6('0x41')][_0x86f6('0xe0')][_0x1ea398]),'SmsAccountId':Number(_0x1413fc[_0x86f6('0x53')]['id'])});}}else{socket['emit'](_0x86f6('0xe5'),{'UserId':Number(_0x1413fc[_0x86f6('0x41')]['ids']),'SmsAccountId':Number(_0x1413fc[_0x86f6('0x53')]['id'])});}});}})['then'](respondWithStatusCode(_0x2c7f17,null))[_0x86f6('0x27')](handleError(_0x2c7f17,null));};exports[_0x86f6('0xe6')]=function(_0x43f3d3,_0x5771bb,_0x41c191){var _0x56905c={};var _0x2c8876={};var _0x445ae5;var _0x3e557a;return db[_0x86f6('0x3d')][_0x86f6('0x65')]({'where':{'id':_0x43f3d3['params']['id']}})[_0x86f6('0x1f')](handleEntityNotFound(_0x5771bb,null))['then'](function(_0x9193ff){if(_0x9193ff){_0x445ae5=_0x9193ff;_0x2c8876[_0x86f6('0x45')]=_[_0x86f6('0x42')](db[_0x86f6('0xaa')]['rawAttributes']);_0x2c8876['query']=_[_0x86f6('0x42')](_0x43f3d3[_0x86f6('0x41')]);_0x2c8876['filters']=_[_0x86f6('0x44')](_0x2c8876['model'],_0x2c8876[_0x86f6('0x41')]);_0x56905c[_0x86f6('0x46')]=_[_0x86f6('0x44')](_0x2c8876['model'],qs['fields'](_0x43f3d3['query']['fields']));_0x56905c['attributes']=_0x56905c[_0x86f6('0x46')][_0x86f6('0x48')]?_0x56905c['attributes']:_0x2c8876[_0x86f6('0x45')];_0x56905c['order']=qs[_0x86f6('0x4a')](_0x43f3d3[_0x86f6('0x41')][_0x86f6('0x4a')]);_0x56905c[_0x86f6('0x4c')]=qs['filters'](_[_0x86f6('0x4b')](_0x43f3d3['query'],_0x2c8876['filters']));if(_0x43f3d3[_0x86f6('0x41')][_0x86f6('0x67')]){_0x56905c[_0x86f6('0x4c')]=_[_0x86f6('0x4d')](_0x56905c[_0x86f6('0x4c')],{'$or':_['map'](_0x56905c[_0x86f6('0x46')],function(_0x261feb){var _0x2247f0={};_0x2247f0[_0x261feb]={'$like':'%'+_0x43f3d3[_0x86f6('0x41')][_0x86f6('0x67')]+'%'};return _0x2247f0;})});}_0x56905c=_[_0x86f6('0x4d')]({},_0x56905c,_0x43f3d3[_0x86f6('0x56')]);return _0x445ae5[_0x86f6('0xe6')](_0x56905c);}})[_0x86f6('0x1f')](function(_0x12fecb){if(_0x12fecb){_0x3e557a=_0x12fecb[_0x86f6('0x48')];if(!_0x43f3d3['query'][_0x86f6('0xc2')]('nolimit')){_0x56905c[_0x86f6('0x2e')]=qs['limit'](_0x43f3d3['query']['limit']);_0x56905c[_0x86f6('0x2b')]=qs[_0x86f6('0x2b')](_0x43f3d3['query'][_0x86f6('0x2b')]);}return _0x445ae5[_0x86f6('0xe6')](_0x56905c);}})['then'](function(_0x8f071c){if(_0x8f071c){return _0x8f071c?{'count':_0x3e557a,'rows':_0x8f071c}:null;}})[_0x86f6('0x1f')](respondWithResult(_0x5771bb,null))['catch'](handleError(_0x5771bb,null));};
\ No newline at end of file
+var _0xf7a6=['sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','redis','localhost','socket.io-emitter','./smsAccount.socket','client','http','then','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info','result','catch','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','get','SmsAccounts','UserProfileResource','end','sendStatus','name','send','index','Pause','mandatoryDispositionPause','map','SmsAccount','rawAttributes','fieldName','type','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','filters','pick','filter','where','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','keys','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','autoAssociation','describe','addDisposition','SmsAccountId','getDispositions','Disposition','sort','removeDispositions','ids','CannedAnswer','create','removeAnswers','notify','Applications','account','applications','orderBy','priority','asc','CmContact','ValidationError','no\x20available\x20attributes','createdAt','updatedAt','CompanyId','ListId','mobile','twilio','from','From','messageId','MessageSid','skebby','sender','connectel','clicksend','message_id','plivo','Text','MessageUUID','infobip','results','text','originatingAddress','segmentedMessage','clickatell','fromNumber','replyMessageId','bandwidth','intelepeer','Sequelize','isNil','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','Contacts','DESC','list','omit','defaults','contact','SmsInteraction','spread','created','autoclose','push','*,*,*,*','interaction','SmsMessage','ContactId','AttachmentId','UserId','unshift','waitForTheAssignedAgent','Start','startRouting','receiveMessage','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','transaction','SmsApplication','findAndCountAll','getApplications','findOne','getInteractions','Contact','User','Owner','internal','Tag','color','tag','to\x20is\x20mandatory','List','out','Messages','dataValues','inspect','skebby_dispatch_id','statusInt','requestid','status_code','groupName','DELIVERED','redif','SmsAccount,\x20%s,\x20%s,\x20%s','DELIVERED_TO_GATEWAY','RECEIVED_BY_RECIPIENT','statusGet','csc','message-id','state','addAgents','emit','removeAgents','isArray','userSmsAccount:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util'];(function(_0x11fdb4,_0x126ff0){var _0x7a2344=function(_0x415772){while(--_0x415772){_0x11fdb4['push'](_0x11fdb4['shift']());}};_0x7a2344(++_0x126ff0);}(_0xf7a6,0x1b7));var _0x6f7a=function(_0xbd08b4,_0x4790ed){_0xbd08b4=_0xbd08b4-0x0;var _0x314f1e=_0xf7a6[_0xbd08b4];return _0x314f1e;};'use strict';var emlformat=require(_0x6f7a('0x0'));var rimraf=require(_0x6f7a('0x1'));var zipdir=require(_0x6f7a('0x2'));var jsonpatch=require(_0x6f7a('0x3'));var rp=require(_0x6f7a('0x4'));var moment=require(_0x6f7a('0x5'));var BPromise=require(_0x6f7a('0x6'));var Mustache=require(_0x6f7a('0x7'));var util=require(_0x6f7a('0x8'));var path=require('path');var sox=require(_0x6f7a('0x9'));var csv=require(_0x6f7a('0xa'));var ejs=require(_0x6f7a('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6f7a('0xc'));var squel=require(_0x6f7a('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x6f7a('0xe'));var toCsv=require('to-csv');var querystring=require(_0x6f7a('0xf'));var Papa=require(_0x6f7a('0x10'));var Redis=require(_0x6f7a('0x11'));var authService=require(_0x6f7a('0x12'));var qs=require(_0x6f7a('0x13'));var as=require(_0x6f7a('0x14'));var hardwareService=require(_0x6f7a('0x15'));var logger=require(_0x6f7a('0x16'))(_0x6f7a('0x17'));var utils=require(_0x6f7a('0x18'));var config=require(_0x6f7a('0x19'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config[_0x6f7a('0x1a')],{'host':_0x6f7a('0x1b'),'port':0x18eb});var socket=require(_0x6f7a('0x1c'))(new Redis(config['redis']));require(_0x6f7a('0x1d'))['register'](socket);var jayson=require('jayson/promise');var client=jayson[_0x6f7a('0x1e')][_0x6f7a('0x1f')]({'port':0x232c});function respondWithRpcPromise(_0x2f59ee,_0x38ce03,_0x31c490,_0x2f71d2){return new BPromise(function(_0x4ab21d,_0x535063){var _0x29cde1=_0x2f71d2||client;return _0x29cde1['request'](_0x2f59ee,_0x31c490)[_0x6f7a('0x20')](function(_0x3812c4){logger['info'](_0x6f7a('0x21'),_0x38ce03,_0x6f7a('0x22'));logger[_0x6f7a('0x23')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x38ce03,_0x6f7a('0x22'),JSON['stringify'](_0x3812c4));if(_0x3812c4[_0x6f7a('0x24')]){if(_0x3812c4['error'][_0x6f7a('0x25')]===0x1f4){logger[_0x6f7a('0x24')](_0x6f7a('0x21'),_0x38ce03,_0x3812c4[_0x6f7a('0x24')]['message']);return _0x535063(_0x3812c4[_0x6f7a('0x24')][_0x6f7a('0x26')]);}logger[_0x6f7a('0x24')](_0x6f7a('0x21'),_0x38ce03,_0x3812c4[_0x6f7a('0x24')]['message']);return _0x4ab21d(_0x3812c4[_0x6f7a('0x24')][_0x6f7a('0x26')]);}else{logger[_0x6f7a('0x27')]('SmsAccount,\x20%s,\x20%s',_0x38ce03,_0x6f7a('0x22'));_0x4ab21d(_0x3812c4[_0x6f7a('0x28')][_0x6f7a('0x26')]);}})[_0x6f7a('0x29')](function(_0x2d4c68){logger[_0x6f7a('0x24')]('SmsAccount,\x20%s,\x20%s',_0x38ce03,_0x2d4c68);_0x535063(_0x2d4c68);});});}function respondWithStatusCode(_0x5cdfcc,_0x67c26b){_0x67c26b=_0x67c26b||0xcc;return function(_0x5aa02a){if(_0x5aa02a){return _0x5cdfcc['sendStatus'](_0x67c26b);}return _0x5cdfcc[_0x6f7a('0x2a')](_0x67c26b)['end']();};}function respondWithResult(_0x3bbd12,_0x416020){_0x416020=_0x416020||0xc8;return function(_0x2351c2){if(_0x2351c2){return _0x3bbd12[_0x6f7a('0x2a')](_0x416020)[_0x6f7a('0x2b')](_0x2351c2);}};}function respondWithFilteredResult(_0x551943,_0x3c1bea){return function(_0x34c2c1){if(_0x34c2c1){var _0x14621b=typeof _0x3c1bea[_0x6f7a('0x2c')]===_0x6f7a('0x2d')&&typeof _0x3c1bea[_0x6f7a('0x2e')]==='undefined';var _0x44ce4e=_0x34c2c1[_0x6f7a('0x2f')];var _0x590c=_0x14621b?0x0:_0x3c1bea[_0x6f7a('0x2c')];var _0x5aae9f=_0x14621b?_0x34c2c1[_0x6f7a('0x2f')]:_0x3c1bea[_0x6f7a('0x2c')]+_0x3c1bea[_0x6f7a('0x2e')];var _0x4ff7a5;if(_0x5aae9f>=_0x44ce4e){_0x5aae9f=_0x44ce4e;_0x4ff7a5=0xc8;}else{_0x4ff7a5=0xce;}_0x551943[_0x6f7a('0x2a')](_0x4ff7a5);return _0x551943[_0x6f7a('0x30')](_0x6f7a('0x31'),_0x590c+'-'+_0x5aae9f+'/'+_0x44ce4e)[_0x6f7a('0x2b')](_0x34c2c1);}return null;};}function patchUpdates(_0x153a74){return function(_0x3d5931){try{jsonpatch[_0x6f7a('0x32')](_0x3d5931,_0x153a74,!![]);}catch(_0x317592){return BPromise[_0x6f7a('0x33')](_0x317592);}return _0x3d5931[_0x6f7a('0x34')]();};}function saveUpdates(_0x550f85,_0x35756a){return function(_0x584189){if(_0x584189){return _0x584189[_0x6f7a('0x35')](_0x550f85)[_0x6f7a('0x20')](function(_0x1082a3){return _0x1082a3;});}return null;};}function removeEntity(_0x2c95be,_0xc943fb){return function(_0x25db77){if(_0x25db77){return _0x25db77[_0x6f7a('0x36')]()[_0x6f7a('0x20')](function(){var _0x3e3231=_0x25db77[_0x6f7a('0x37')]({'plain':!![]});var _0x8b4614=_0x6f7a('0x38');return db[_0x6f7a('0x39')][_0x6f7a('0x36')]({'where':{'type':_0x8b4614,'resourceId':_0x3e3231['id']}})['then'](function(){return _0x25db77;});})[_0x6f7a('0x20')](function(){_0x2c95be[_0x6f7a('0x2a')](0xcc)[_0x6f7a('0x3a')]();});}};}function handleEntityNotFound(_0x2bbbcd,_0x305d5e){return function(_0xbd9311){if(!_0xbd9311){_0x2bbbcd[_0x6f7a('0x3b')](0x194);}return _0xbd9311;};}function handleError(_0x22287f,_0x195802){_0x195802=_0x195802||0x1f4;return function(_0x3a204b){logger[_0x6f7a('0x24')](_0x3a204b['stack']);if(_0x3a204b['name']){delete _0x3a204b[_0x6f7a('0x3c')];}_0x22287f[_0x6f7a('0x2a')](_0x195802)[_0x6f7a('0x3d')](_0x3a204b);};}exports[_0x6f7a('0x3e')]=function(_0xa2bc5b,_0x12bbb3){var _0x2352da={'include':[{'model':db[_0x6f7a('0x3f')],'as':_0x6f7a('0x40')}]},_0x481552={},_0x3ed8fa={'count':0x0,'rows':[]};var _0x32e835=_[_0x6f7a('0x41')](db[_0x6f7a('0x42')][_0x6f7a('0x43')],function(_0x124867){return{'name':_0x124867[_0x6f7a('0x44')],'type':_0x124867[_0x6f7a('0x45')]['key']};});_0x481552[_0x6f7a('0x46')]=_[_0x6f7a('0x41')](_0x32e835,'name');_0x481552[_0x6f7a('0x47')]=_['keys'](_0xa2bc5b[_0x6f7a('0x47')]);_0x481552['filters']=_[_0x6f7a('0x48')](_0x481552[_0x6f7a('0x46')],_0x481552[_0x6f7a('0x47')]);_0x2352da[_0x6f7a('0x49')]=_[_0x6f7a('0x48')](_0x481552[_0x6f7a('0x46')],qs[_0x6f7a('0x4a')](_0xa2bc5b[_0x6f7a('0x47')]['fields']));_0x2352da[_0x6f7a('0x49')]=_0x2352da[_0x6f7a('0x49')][_0x6f7a('0x4b')]?_0x2352da[_0x6f7a('0x49')]:_0x481552[_0x6f7a('0x46')];if(!_0xa2bc5b['query'][_0x6f7a('0x4c')](_0x6f7a('0x4d'))){_0x2352da[_0x6f7a('0x2e')]=qs[_0x6f7a('0x2e')](_0xa2bc5b['query'][_0x6f7a('0x2e')]);_0x2352da['offset']=qs[_0x6f7a('0x2c')](_0xa2bc5b[_0x6f7a('0x47')][_0x6f7a('0x2c')]);}_0x2352da[_0x6f7a('0x4e')]=qs['sort'](_0xa2bc5b[_0x6f7a('0x47')]['sort']);_0x2352da['where']=qs[_0x6f7a('0x4f')](_[_0x6f7a('0x50')](_0xa2bc5b[_0x6f7a('0x47')],_0x481552[_0x6f7a('0x4f')]),_0x32e835);if(_0xa2bc5b[_0x6f7a('0x47')][_0x6f7a('0x51')]){_0x2352da[_0x6f7a('0x52')]=_['merge'](_0x2352da[_0x6f7a('0x52')],{'$or':_[_0x6f7a('0x41')](_0x32e835,function(_0x53976c){if(_0x53976c[_0x6f7a('0x45')]!==_0x6f7a('0x53')){var _0x2f66a6={};_0x2f66a6[_0x53976c[_0x6f7a('0x3c')]]={'$like':'%'+_0xa2bc5b[_0x6f7a('0x47')][_0x6f7a('0x51')]+'%'};return _0x2f66a6;}})});}_0x2352da=_[_0x6f7a('0x54')]({},_0x2352da,_0xa2bc5b[_0x6f7a('0x55')]);var _0x4d785c={'where':_0x2352da[_0x6f7a('0x52')]};return db[_0x6f7a('0x42')][_0x6f7a('0x2f')](_0x4d785c)[_0x6f7a('0x20')](function(_0x241eec){_0x3ed8fa[_0x6f7a('0x2f')]=_0x241eec;if(_0xa2bc5b[_0x6f7a('0x47')][_0x6f7a('0x56')]){_0x2352da[_0x6f7a('0x57')]=[{'all':!![]}];}return db['SmsAccount'][_0x6f7a('0x58')](_0x2352da);})[_0x6f7a('0x20')](function(_0x2aaf3c){_0x3ed8fa[_0x6f7a('0x59')]=_0x2aaf3c;return _0x3ed8fa;})[_0x6f7a('0x20')](respondWithFilteredResult(_0x12bbb3,_0x2352da))[_0x6f7a('0x29')](handleError(_0x12bbb3,null));};exports[_0x6f7a('0x5a')]=function(_0x585d43,_0x6f1fd9){var _0x58f5ed={'raw':![],'where':{'id':_0x585d43[_0x6f7a('0x5b')]['id']},'include':[{'model':db[_0x6f7a('0x3f')],'as':'mandatoryDispositionPause'}]},_0x2c6025={};_0x2c6025[_0x6f7a('0x46')]=_[_0x6f7a('0x5c')](db[_0x6f7a('0x42')][_0x6f7a('0x43')]);_0x2c6025['query']=_['keys'](_0x585d43['query']);_0x2c6025[_0x6f7a('0x4f')]=_[_0x6f7a('0x48')](_0x2c6025[_0x6f7a('0x46')],_0x2c6025[_0x6f7a('0x47')]);_0x58f5ed['attributes']=_['intersection'](_0x2c6025[_0x6f7a('0x46')],qs[_0x6f7a('0x4a')](_0x585d43['query'][_0x6f7a('0x4a')]));_0x58f5ed[_0x6f7a('0x49')]=_0x58f5ed[_0x6f7a('0x49')]['length']?_0x58f5ed['attributes']:_0x2c6025[_0x6f7a('0x46')];if(_0x585d43[_0x6f7a('0x47')]['includeAll']){_0x58f5ed[_0x6f7a('0x57')]=[{'all':!![]}];}_0x58f5ed=_[_0x6f7a('0x54')]({},_0x58f5ed,_0x585d43[_0x6f7a('0x55')]);return db[_0x6f7a('0x42')]['find'](_0x58f5ed)['then'](handleEntityNotFound(_0x6f1fd9,null))[_0x6f7a('0x20')](respondWithResult(_0x6f1fd9,null))[_0x6f7a('0x29')](handleError(_0x6f1fd9,null));};exports['create']=function(_0x1b97df,_0x3962fc){return db[_0x6f7a('0x42')]['create'](_0x1b97df[_0x6f7a('0x5d')],{})[_0x6f7a('0x20')](function(_0x5d4a80){var _0x450e02=_0x1b97df[_0x6f7a('0x5e')][_0x6f7a('0x37')]({'plain':!![]});if(!_0x450e02)throw new Error(_0x6f7a('0x5f'));if(_0x450e02[_0x6f7a('0x60')]==='user'){var _0x1d9e63=_0x5d4a80['get']({'plain':!![]});var _0x15b0c4=_0x6f7a('0x38');return db[_0x6f7a('0x61')][_0x6f7a('0x62')]({'where':{'name':_0x15b0c4,'userProfileId':_0x450e02['userProfileId']},'raw':!![]})[_0x6f7a('0x20')](function(_0x16aa18){if(_0x16aa18&&_0x16aa18[_0x6f7a('0x63')]===0x0){return db['UserProfileResource']['create']({'name':_0x1d9e63[_0x6f7a('0x3c')],'resourceId':_0x1d9e63['id'],'type':_0x16aa18['name'],'sectionId':_0x16aa18['id']},{})[_0x6f7a('0x20')](function(){return _0x5d4a80;});}else{return _0x5d4a80;}})[_0x6f7a('0x29')](function(_0x3fb644){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3fb644);throw _0x3fb644;});}return _0x5d4a80;})[_0x6f7a('0x20')](respondWithResult(_0x3962fc,0xc9))['catch'](handleError(_0x3962fc,null));};exports[_0x6f7a('0x35')]=function(_0x1086ee,_0x39edc7){if(_0x1086ee[_0x6f7a('0x5d')]['id']){delete _0x1086ee[_0x6f7a('0x5d')]['id'];}return db[_0x6f7a('0x42')][_0x6f7a('0x62')]({'where':{'id':_0x1086ee['params']['id']},'include':[{'model':db[_0x6f7a('0x3f')],'as':'mandatoryDispositionPause'}]})[_0x6f7a('0x20')](handleEntityNotFound(_0x39edc7,null))[_0x6f7a('0x20')](saveUpdates(_0x1086ee['body'],null))['then'](respondWithResult(_0x39edc7,null))[_0x6f7a('0x29')](handleError(_0x39edc7,null));};exports[_0x6f7a('0x36')]=function(_0x32d168,_0x3e8c0c){return db[_0x6f7a('0x42')][_0x6f7a('0x62')]({'where':{'id':_0x32d168['params']['id']}})['then'](handleEntityNotFound(_0x3e8c0c,null))[_0x6f7a('0x20')](removeEntity(_0x3e8c0c,null))['catch'](handleError(_0x3e8c0c,null));};exports[_0x6f7a('0x64')]=function(_0x31f4c2,_0x2cf17f){return db[_0x6f7a('0x42')][_0x6f7a('0x64')]()[_0x6f7a('0x20')](respondWithResult(_0x2cf17f,null))['catch'](handleError(_0x2cf17f,null));};exports[_0x6f7a('0x65')]=function(_0x1fb82e,_0x350c08,_0x45b20e){if(_0x1fb82e[_0x6f7a('0x5d')]['id']){delete _0x1fb82e[_0x6f7a('0x5d')]['id'];}return db['SmsAccount'][_0x6f7a('0x62')]({'where':{'id':_0x1fb82e[_0x6f7a('0x5b')]['id']}})[_0x6f7a('0x20')](handleEntityNotFound(_0x350c08,null))['then'](function(_0x440b29){if(_0x440b29){_0x1fb82e[_0x6f7a('0x5d')][_0x6f7a('0x66')]=_0x440b29['id'];return db['Disposition']['create'](_0x1fb82e['body']);}})[_0x6f7a('0x20')](respondWithResult(_0x350c08,null))[_0x6f7a('0x29')](handleError(_0x350c08,null));};exports[_0x6f7a('0x67')]=function(_0x3c2681,_0x316f6d,_0x402ec7){var _0x550571={'raw':![],'where':{}};var _0x5a43d0={};var _0x15661c={'count':0x0,'rows':[]};return db['SmsAccount']['findOne']({'where':{'id':_0x3c2681['params']['id']}})[_0x6f7a('0x20')](handleEntityNotFound(_0x316f6d,null))[_0x6f7a('0x20')](function(_0x3778af){if(_0x3778af){_0x5a43d0['model']=_[_0x6f7a('0x5c')](db[_0x6f7a('0x68')][_0x6f7a('0x43')]);_0x5a43d0[_0x6f7a('0x47')]=_[_0x6f7a('0x5c')](_0x3c2681[_0x6f7a('0x47')]);_0x5a43d0[_0x6f7a('0x4f')]=_[_0x6f7a('0x48')](_0x5a43d0[_0x6f7a('0x46')],_0x5a43d0[_0x6f7a('0x47')]);_0x550571[_0x6f7a('0x49')]=_['intersection'](_0x5a43d0[_0x6f7a('0x46')],qs[_0x6f7a('0x4a')](_0x3c2681['query']['fields']));_0x550571[_0x6f7a('0x49')]=_0x550571[_0x6f7a('0x49')][_0x6f7a('0x4b')]?_0x550571[_0x6f7a('0x49')]:_0x5a43d0[_0x6f7a('0x46')];if(!_0x3c2681[_0x6f7a('0x47')][_0x6f7a('0x4c')](_0x6f7a('0x4d'))){_0x550571[_0x6f7a('0x2e')]=qs[_0x6f7a('0x2e')](_0x3c2681[_0x6f7a('0x47')][_0x6f7a('0x2e')]);_0x550571[_0x6f7a('0x2c')]=qs['offset'](_0x3c2681['query'][_0x6f7a('0x2c')]);}_0x550571[_0x6f7a('0x4e')]=qs[_0x6f7a('0x69')](_0x3c2681[_0x6f7a('0x47')][_0x6f7a('0x69')]);_0x550571['where']=qs[_0x6f7a('0x4f')](_['pick'](_0x3c2681[_0x6f7a('0x47')],_0x5a43d0[_0x6f7a('0x4f')]));_0x550571[_0x6f7a('0x52')]['SmsAccountId']=_0x3778af['id'];if(_0x3c2681[_0x6f7a('0x47')][_0x6f7a('0x51')]){_0x550571[_0x6f7a('0x52')]=_[_0x6f7a('0x54')](_0x550571[_0x6f7a('0x52')],{'$or':_[_0x6f7a('0x41')](_0x550571[_0x6f7a('0x49')],function(_0x570c52){var _0x2817db={};_0x2817db[_0x570c52]={'$like':'%'+_0x3c2681[_0x6f7a('0x47')][_0x6f7a('0x51')]+'%'};return _0x2817db;})});}_0x550571=_[_0x6f7a('0x54')]({},_0x550571,_0x3c2681['options']);return db[_0x6f7a('0x68')][_0x6f7a('0x2f')]({'where':_0x550571[_0x6f7a('0x52')]})[_0x6f7a('0x20')](function(_0x5b0fb9){_0x15661c['count']=_0x5b0fb9;if(_0x3c2681[_0x6f7a('0x47')][_0x6f7a('0x56')]){_0x550571['include']=[{'all':!![]}];}return db[_0x6f7a('0x68')]['findAll'](_0x550571);})[_0x6f7a('0x20')](function(_0x143397){_0x15661c[_0x6f7a('0x59')]=_0x143397;return _0x15661c;});}})[_0x6f7a('0x20')](respondWithFilteredResult(_0x316f6d,_0x550571))[_0x6f7a('0x29')](handleError(_0x316f6d,null));};exports[_0x6f7a('0x6a')]=function(_0xcec829,_0x59c98e,_0x92407){return db['SmsAccount'][_0x6f7a('0x62')]({'where':{'id':_0xcec829['params']['id']}})[_0x6f7a('0x20')](handleEntityNotFound(_0x59c98e,null))[_0x6f7a('0x20')](function(_0x2de824){if(_0x2de824){return _0x2de824[_0x6f7a('0x6a')](_0xcec829['query'][_0x6f7a('0x6b')]);}})['then'](respondWithStatusCode(_0x59c98e,null))[_0x6f7a('0x29')](handleError(_0x59c98e,null));};exports['addAnswer']=function(_0x397ab4,_0x5641ea,_0x55c3ca){if(_0x397ab4[_0x6f7a('0x5d')]['id']){delete _0x397ab4[_0x6f7a('0x5d')]['id'];}return db[_0x6f7a('0x42')][_0x6f7a('0x62')]({'where':{'id':_0x397ab4[_0x6f7a('0x5b')]['id']}})[_0x6f7a('0x20')](handleEntityNotFound(_0x5641ea,null))[_0x6f7a('0x20')](function(_0x3fb6be){if(_0x3fb6be){_0x397ab4[_0x6f7a('0x5d')][_0x6f7a('0x66')]=_0x3fb6be['id'];return db[_0x6f7a('0x6c')][_0x6f7a('0x6d')](_0x397ab4['body']);}})[_0x6f7a('0x20')](respondWithResult(_0x5641ea,null))[_0x6f7a('0x29')](handleError(_0x5641ea,null));};exports['getAnswers']=function(_0x545270,_0x2a0595,_0x51cb89){var _0x37f6bb={'raw':![],'where':{}};var _0x2a8cd6={};var _0x17534a={'count':0x0,'rows':[]};return db['SmsAccount']['findOne']({'where':{'id':_0x545270[_0x6f7a('0x5b')]['id']}})['then'](handleEntityNotFound(_0x2a0595,null))[_0x6f7a('0x20')](function(_0x543320){if(_0x543320){_0x2a8cd6[_0x6f7a('0x46')]=_[_0x6f7a('0x5c')](db[_0x6f7a('0x6c')][_0x6f7a('0x43')]);_0x2a8cd6[_0x6f7a('0x47')]=_[_0x6f7a('0x5c')](_0x545270[_0x6f7a('0x47')]);_0x2a8cd6[_0x6f7a('0x4f')]=_[_0x6f7a('0x48')](_0x2a8cd6[_0x6f7a('0x46')],_0x2a8cd6[_0x6f7a('0x47')]);_0x37f6bb['attributes']=_['intersection'](_0x2a8cd6[_0x6f7a('0x46')],qs['fields'](_0x545270[_0x6f7a('0x47')][_0x6f7a('0x4a')]));_0x37f6bb[_0x6f7a('0x49')]=_0x37f6bb[_0x6f7a('0x49')][_0x6f7a('0x4b')]?_0x37f6bb['attributes']:_0x2a8cd6[_0x6f7a('0x46')];if(!_0x545270[_0x6f7a('0x47')][_0x6f7a('0x4c')](_0x6f7a('0x4d'))){_0x37f6bb[_0x6f7a('0x2e')]=qs[_0x6f7a('0x2e')](_0x545270[_0x6f7a('0x47')][_0x6f7a('0x2e')]);_0x37f6bb[_0x6f7a('0x2c')]=qs['offset'](_0x545270[_0x6f7a('0x47')][_0x6f7a('0x2c')]);}_0x37f6bb['order']=qs[_0x6f7a('0x69')](_0x545270['query']['sort']);_0x37f6bb[_0x6f7a('0x52')]=qs[_0x6f7a('0x4f')](_[_0x6f7a('0x50')](_0x545270[_0x6f7a('0x47')],_0x2a8cd6[_0x6f7a('0x4f')]));_0x37f6bb[_0x6f7a('0x52')][_0x6f7a('0x66')]=_0x543320['id'];if(_0x545270[_0x6f7a('0x47')][_0x6f7a('0x51')]){_0x37f6bb[_0x6f7a('0x52')]=_[_0x6f7a('0x54')](_0x37f6bb[_0x6f7a('0x52')],{'$or':_[_0x6f7a('0x41')](_0x37f6bb[_0x6f7a('0x49')],function(_0x24cebf){var _0xfe1fa8={};_0xfe1fa8[_0x24cebf]={'$like':'%'+_0x545270[_0x6f7a('0x47')][_0x6f7a('0x51')]+'%'};return _0xfe1fa8;})});}_0x37f6bb=_['merge']({},_0x37f6bb,_0x545270[_0x6f7a('0x55')]);return db['CannedAnswer'][_0x6f7a('0x2f')]({'where':_0x37f6bb[_0x6f7a('0x52')]})[_0x6f7a('0x20')](function(_0x5874b4){_0x17534a[_0x6f7a('0x2f')]=_0x5874b4;if(_0x545270[_0x6f7a('0x47')][_0x6f7a('0x56')]){_0x37f6bb['include']=[{'all':!![]}];}return db[_0x6f7a('0x6c')]['findAll'](_0x37f6bb);})[_0x6f7a('0x20')](function(_0x541078){_0x17534a[_0x6f7a('0x59')]=_0x541078;return _0x17534a;});}})[_0x6f7a('0x20')](respondWithFilteredResult(_0x2a0595,_0x37f6bb))['catch'](handleError(_0x2a0595,null));};exports[_0x6f7a('0x6e')]=function(_0xc12a35,_0x38ff75,_0x3b3d18){return db[_0x6f7a('0x42')][_0x6f7a('0x62')]({'where':{'id':_0xc12a35['params']['id']}})['then'](handleEntityNotFound(_0x38ff75,null))[_0x6f7a('0x20')](function(_0x86e119){if(_0x86e119){return _0x86e119[_0x6f7a('0x6e')](_0xc12a35[_0x6f7a('0x47')][_0x6f7a('0x6b')]);}})['then'](respondWithStatusCode(_0x38ff75,null))['catch'](handleError(_0x38ff75,null));};exports[_0x6f7a('0x6f')]=function(_0x1ed334,_0x2fed15,_0x1702eb){var _0x388c7f={'channel':'sms'};var _0x29202a=[];var _0xba3450=[];var _0x552cec={};return db[_0x6f7a('0x42')][_0x6f7a('0x62')]({'where':{'id':_0x1ed334[_0x6f7a('0x5b')]['id']},'include':[{'model':db['SmsApplication'],'as':_0x6f7a('0x70')}]})[_0x6f7a('0x20')](handleEntityNotFound(_0x2fed15,null))['then'](function(_0x41882b){_0x388c7f[_0x6f7a('0x71')]=_0x41882b;_0x388c7f[_0x6f7a('0x72')]=_[_0x6f7a('0x73')](_0x41882b[_0x6f7a('0x70')],[_0x6f7a('0x74')],[_0x6f7a('0x75')]);if(_0x388c7f[_0x6f7a('0x71')]['Applications']){delete _0x388c7f['account'][_0x6f7a('0x70')];}return db[_0x6f7a('0x76')][_0x6f7a('0x64')]();})[_0x6f7a('0x20')](function(_0x7625e7){if(!_0x7625e7){throw new db['Sequelize'][(_0x6f7a('0x77'))](_0x6f7a('0x78'));}_0x29202a=_['difference'](_['keys'](_0x7625e7),[_0x6f7a('0x79'),'updatedAt']);_0xba3450=_['difference'](_[_0x6f7a('0x5c')](_0x7625e7),['createdAt',_0x6f7a('0x7a'),_0x6f7a('0x7b'),_0x6f7a('0x7c')]);_0x388c7f[_0x6f7a('0x5d')]={'mapKey':_0x6f7a('0x7d')};if(_0x388c7f['account'][_0x6f7a('0x45')]){switch(_0x388c7f[_0x6f7a('0x71')][_0x6f7a('0x45')]){case _0x6f7a('0x7e'):_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x7f')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x80')];_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x5d')]=_0x1ed334[_0x6f7a('0x5d')]['Body'];_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x81')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x82')];break;case _0x6f7a('0x83'):_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x7f')]='+'+_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x84')];_0x388c7f['body'][_0x6f7a('0x5d')]=_0x1ed334[_0x6f7a('0x5d')]['text'];break;case _0x6f7a('0x85'):_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x7f')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x7f')];_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x5d')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x26')];break;case _0x6f7a('0x86'):_0x388c7f['body'][_0x6f7a('0x7f')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x7f')];_0x388c7f['body'][_0x6f7a('0x5d')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x5d')];_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x81')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x87')];break;case _0x6f7a('0x88'):_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x7f')]=_0x1ed334[_0x6f7a('0x5d')]['From'];_0x388c7f['body'][_0x6f7a('0x5d')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x89')];_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x81')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x8a')];break;case _0x6f7a('0x8b'):_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x7f')]='+'+_0x1ed334[_0x6f7a('0x5d')]['results'][0x0][_0x6f7a('0x7f')];_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x5d')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x8c')][0x0][_0x6f7a('0x8d')];_0x388c7f['body'][_0x6f7a('0x81')]=_0x1ed334[_0x6f7a('0x5d')]['results'][0x0][_0x6f7a('0x81')];break;case'csc':_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x7f')]=_0x1ed334['body'][_0x6f7a('0x8e')];_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x5d')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x8f')][_0x6f7a('0x26')];break;case _0x6f7a('0x90'):_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x7f')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x91')];_0x388c7f['body']['body']=_0x1ed334[_0x6f7a('0x5d')]['text'];_0x388c7f['body'][_0x6f7a('0x81')]=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x92')];break;case _0x6f7a('0x93'):_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x81')]=_0x1ed334['body'][0x0][_0x6f7a('0x26')]['id'];_0x388c7f['body'][_0x6f7a('0x7f')]=_0x1ed334[_0x6f7a('0x5d')][0x0]['message'][_0x6f7a('0x7f')];_0x388c7f['body'][_0x6f7a('0x5d')]=_0x1ed334[_0x6f7a('0x5d')][0x0][_0x6f7a('0x26')][_0x6f7a('0x8d')];break;case _0x6f7a('0x94'):_0x388c7f[_0x6f7a('0x5d')]['from']=_0x1ed334[_0x6f7a('0x5d')][_0x6f7a('0x7f')];_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x5d')]=_0x1ed334['body'][_0x6f7a('0x26')];_0x388c7f['body'][_0x6f7a('0x81')]=_0x1ed334[_0x6f7a('0x5d')]['refid'];break;}}if(_0x388c7f[_0x6f7a('0x5d')]['id']){delete _0x388c7f['body']['id'];}if(_['isNil'](_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x7f')])){throw new db[(_0x6f7a('0x95'))][(_0x6f7a('0x77'))]('from\x20is\x20mandatory');}if(_[_0x6f7a('0x96')](_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x5d')])||_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x5d')]===''){throw new db[(_0x6f7a('0x95'))][(_0x6f7a('0x77'))](_0x6f7a('0x97'));}if(_[_0x6f7a('0x96')](_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x98')])){throw new db[(_0x6f7a('0x95'))]['ValidationError'](_0x6f7a('0x99')+_0xba3450);}if(!_[_0x6f7a('0x9a')](_0xba3450,_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x98')])){throw new db['Sequelize'][(_0x6f7a('0x77'))](_0x6f7a('0x9b')+_0xba3450);}_0x552cec[_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x98')]]=_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x7f')];return db['CmList']['find']({'where':{'id':_0x388c7f[_0x6f7a('0x71')]['ListId']},'include':[{'model':db['CmContact'],'as':_0x6f7a('0x9c'),'where':_0x552cec,'limit':0x1,'order':[[_0x6f7a('0x7a'),_0x6f7a('0x9d')]]}]});})['then'](handleEntityNotFound(_0x2fed15,null))[_0x6f7a('0x20')](function(_0xf70ec3){if(_0xf70ec3){_0x388c7f[_0x6f7a('0x9e')]=_[_0x6f7a('0x9f')](_0xf70ec3,[_0x6f7a('0x9c')]);if(_0xf70ec3['Contacts']['length']){return _0xf70ec3[_0x6f7a('0x9c')][0x0];}var _0x3e7e8d=_[_0x6f7a('0xa0')](_0x388c7f[_0x6f7a('0x5d')],{'firstName':_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x7f')],'ListId':_0xf70ec3['id']});_0x3e7e8d[_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x98')]]=_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x7f')];return db['CmContact'][_0x6f7a('0x6d')](_0x3e7e8d,{'fields':_0x29202a,'raw':!![]});}})[_0x6f7a('0x20')](handleEntityNotFound(_0x2fed15,null))['then'](function(_0x12b36f){if(_0x12b36f){_0x388c7f[_0x6f7a('0xa1')]=_0x12b36f;var _0x2abbbc={'ContactId':_0x12b36f['id'],'phone':_0x388c7f[_0x6f7a('0x5d')]['from'],'SmsAccountId':_0x1ed334[_0x6f7a('0x5b')]['id']};var _0xc51ed7={'ContactId':_0x12b36f['id'],'SmsAccountId':_0x1ed334['params']['id'],'closed':![]};return db[_0x6f7a('0xa2')][_0x6f7a('0x62')]({'where':_0xc51ed7})[_0x6f7a('0x20')](function(_0x5e170f){if(_0x5e170f){return[_0x5e170f,![]];}return db['SmsInteraction'][_0x6f7a('0x6d')](_0x2abbbc)[_0x6f7a('0x20')](function(_0x2a591b){return[_0x2a591b,!![]];});});}})[_0x6f7a('0xa3')](function(_0x27cfbb,_0x38d805){_0x388c7f['interaction']=_0x27cfbb[_0x6f7a('0x37')]({'plain':!![]});_0x388c7f['interaction'][_0x6f7a('0xa4')]=![];if(_0x38d805){if(_0x388c7f[_0x6f7a('0x71')][_0x6f7a('0xa5')]){_0x388c7f[_0x6f7a('0x72')][_0x6f7a('0xa6')]({'id':0x0,'priority':_0x388c7f[_0x6f7a('0x72')][_0x6f7a('0x4b')]+0x1,'app':'close','appdata':'unmanaged','interval':_0x6f7a('0xa7')});}_0x388c7f[_0x6f7a('0xa8')][_0x6f7a('0xa4')]=!![];}return db[_0x6f7a('0xa9')][_0x6f7a('0x6d')]({'phone':_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x7f')],'messageId':_0x388c7f[_0x6f7a('0x5d')][_0x6f7a('0x81')],'body':_0x388c7f['body']['body'],'SmsAccountId':_0x1ed334[_0x6f7a('0x5b')]['id'],'SmsInteractionId':_0x27cfbb['id'],'direction':'in','ContactId':_0x27cfbb[_0x6f7a('0xaa')],'AttachmentId':_0x388c7f['body'][_0x6f7a('0xab')]});})[_0x6f7a('0x20')](function(_0x5b17d4){_0x388c7f[_0x6f7a('0x26')]=_0x5b17d4;if(_0x388c7f[_0x6f7a('0xa8')][_0x6f7a('0xac')]){return db['User'][_0x6f7a('0x62')]({'attributes':['id',_0x6f7a('0x3c')],'where':{'id':_0x388c7f[_0x6f7a('0xa8')][_0x6f7a('0xac')]}})['then'](function(_0x34bf65){if(_0x34bf65){_0x388c7f[_0x6f7a('0x72')][_0x6f7a('0xad')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x34bf65['name']+','+(_0x388c7f[_0x6f7a('0x71')][_0x6f7a('0xae')]||0xa),'interval':_0x6f7a('0xa7')});}return respondWithRpcPromise('Start','startRouting',_0x388c7f);});}return respondWithRpcPromise(_0x6f7a('0xaf'),_0x6f7a('0xb0'),_0x388c7f);})['then'](function(_0x527b0c){if(_0x527b0c){var _0x1c8451=0xc8;var _0x9c9573=_0x6f7a('0xb1');logger[_0x6f7a('0x27')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x9c9573,_0x1c8451,_0x6f7a('0xb2'));logger[_0x6f7a('0x23')](_0x6f7a('0xb3'),_0x9c9573,_0x1c8451,_0x6f7a('0xb2'),JSON[_0x6f7a('0xb4')](_0x527b0c));if(_0x388c7f[_0x6f7a('0x71')]['type']===_0x6f7a('0x7e')){return _0x2fed15[_0x6f7a('0x2a')](_0x1c8451)[_0x6f7a('0x30')](_0x6f7a('0xb5'),_0x6f7a('0xb6'))[_0x6f7a('0x3d')](_0x6f7a('0xb7'));}else{return _0x2fed15['status'](_0x1c8451)[_0x6f7a('0x2b')](_0x527b0c);}}})['catch'](handleError(_0x2fed15,null));};exports[_0x6f7a('0xb8')]=function(_0x3dc2ba,_0x31f4aa,_0x1936f2){return db[_0x6f7a('0x42')]['findOne']({'where':{'id':_0x3dc2ba['params']['id']}})[_0x6f7a('0x20')](handleEntityNotFound(_0x31f4aa,null))['then'](function(_0x3b2094){if(_0x3b2094){return db['sequelize'][_0x6f7a('0xb9')](function(_0x4c2950){return db[_0x6f7a('0xba')][_0x6f7a('0x36')]({'where':{'SmsAccountId':_0x3dc2ba[_0x6f7a('0x5b')]['id']},'transaction':_0x4c2950})[_0x6f7a('0x20')](function(_0x45f2c){var _0x165f50=_[_0x6f7a('0x41')](_0x3dc2ba[_0x6f7a('0x5d')],function(_0x326fbb){_0x326fbb[_0x6f7a('0x66')]=_0x3dc2ba['params']['id'];return _0x326fbb;});return db['SmsApplication']['bulkCreate'](_0x165f50,{'transaction':_0x4c2950});});})['then'](function(){return db['SmsApplication'][_0x6f7a('0xbb')]({'where':{'SmsAccountId':_0x3dc2ba[_0x6f7a('0x5b')]['id']},'order':_0x6f7a('0x74')});});}})[_0x6f7a('0x20')](respondWithResult(_0x31f4aa,null))[_0x6f7a('0x29')](handleError(_0x31f4aa,null));};exports[_0x6f7a('0xbc')]=function(_0x4bd478,_0x1492be,_0x3b5bdc){var _0x5a3ab3={};var _0x3f9883={};var _0xfd75cf;var _0x2de558;return db[_0x6f7a('0x42')][_0x6f7a('0xbd')]({'where':{'id':_0x4bd478['params']['id']}})[_0x6f7a('0x20')](handleEntityNotFound(_0x1492be,null))[_0x6f7a('0x20')](function(_0x24747c){if(_0x24747c){_0xfd75cf=_0x24747c;_0x3f9883[_0x6f7a('0x46')]=_[_0x6f7a('0x5c')](db[_0x6f7a('0xba')][_0x6f7a('0x43')]);_0x3f9883[_0x6f7a('0x47')]=_[_0x6f7a('0x5c')](_0x4bd478['query']);_0x3f9883[_0x6f7a('0x4f')]=_['intersection'](_0x3f9883[_0x6f7a('0x46')],_0x3f9883['query']);_0x5a3ab3[_0x6f7a('0x49')]=_[_0x6f7a('0x48')](_0x3f9883[_0x6f7a('0x46')],qs[_0x6f7a('0x4a')](_0x4bd478[_0x6f7a('0x47')][_0x6f7a('0x4a')]));_0x5a3ab3[_0x6f7a('0x49')]=_0x5a3ab3['attributes'][_0x6f7a('0x4b')]?_0x5a3ab3[_0x6f7a('0x49')]:_0x3f9883[_0x6f7a('0x46')];_0x5a3ab3[_0x6f7a('0x4e')]=qs[_0x6f7a('0x69')](_0x4bd478[_0x6f7a('0x47')]['sort']);_0x5a3ab3[_0x6f7a('0x52')]=qs['filters'](_['pick'](_0x4bd478[_0x6f7a('0x47')],_0x3f9883[_0x6f7a('0x4f')]));if(_0x4bd478[_0x6f7a('0x47')][_0x6f7a('0x51')]){_0x5a3ab3['where']=_[_0x6f7a('0x54')](_0x5a3ab3[_0x6f7a('0x52')],{'$or':_[_0x6f7a('0x41')](_0x5a3ab3[_0x6f7a('0x49')],function(_0x72e6b1){var _0x1da155={};_0x1da155[_0x72e6b1]={'$like':'%'+_0x4bd478['query'][_0x6f7a('0x51')]+'%'};return _0x1da155;})});}_0x5a3ab3=_[_0x6f7a('0x54')]({},_0x5a3ab3,_0x4bd478['options']);return _0xfd75cf[_0x6f7a('0xbc')](_0x5a3ab3);}})[_0x6f7a('0x20')](function(_0x200ebc){if(_0x200ebc){_0x2de558=_0x200ebc[_0x6f7a('0x4b')];if(!_0x4bd478[_0x6f7a('0x47')]['hasOwnProperty']('nolimit')){_0x5a3ab3['limit']=qs[_0x6f7a('0x2e')](_0x4bd478[_0x6f7a('0x47')][_0x6f7a('0x2e')]);_0x5a3ab3[_0x6f7a('0x2c')]=qs[_0x6f7a('0x2c')](_0x4bd478[_0x6f7a('0x47')][_0x6f7a('0x2c')]);}return _0xfd75cf[_0x6f7a('0xbc')](_0x5a3ab3);}})['then'](function(_0x5e2873){if(_0x5e2873){return _0x5e2873?{'count':_0x2de558,'rows':_0x5e2873}:null;}})[_0x6f7a('0x20')](respondWithResult(_0x1492be,null))[_0x6f7a('0x29')](handleError(_0x1492be,null));};exports[_0x6f7a('0xbe')]=function(_0x276cfe,_0x306a9f,_0x4171d0){var _0x925d41={'raw':![],'where':{}};var _0x2a022f={};var _0x4bfe34={'count':0x0,'rows':[]};return db[_0x6f7a('0x42')][_0x6f7a('0xbd')]({'where':{'id':_0x276cfe[_0x6f7a('0x5b')]['id']}})[_0x6f7a('0x20')](handleEntityNotFound(_0x306a9f,null))[_0x6f7a('0x20')](function(_0x2fd2d7){if(_0x2fd2d7){_0x2a022f[_0x6f7a('0x46')]=_[_0x6f7a('0x5c')](db[_0x6f7a('0xa2')][_0x6f7a('0x43')]);_0x2a022f[_0x6f7a('0x47')]=_[_0x6f7a('0x5c')](_0x276cfe['query']);_0x2a022f['filters']=_['intersection'](_0x2a022f['model'],_0x2a022f[_0x6f7a('0x47')]);_0x925d41[_0x6f7a('0x49')]=_[_0x6f7a('0x48')](_0x2a022f[_0x6f7a('0x46')],qs[_0x6f7a('0x4a')](_0x276cfe[_0x6f7a('0x47')][_0x6f7a('0x4a')]));_0x925d41['attributes']=_0x925d41[_0x6f7a('0x49')]['length']?_0x925d41[_0x6f7a('0x49')]:_0x2a022f[_0x6f7a('0x46')];if(!_0x276cfe[_0x6f7a('0x47')][_0x6f7a('0x4c')](_0x6f7a('0x4d'))){_0x925d41[_0x6f7a('0x2e')]=qs[_0x6f7a('0x2e')](_0x276cfe[_0x6f7a('0x47')][_0x6f7a('0x2e')]);_0x925d41[_0x6f7a('0x2c')]=qs[_0x6f7a('0x2c')](_0x276cfe[_0x6f7a('0x47')][_0x6f7a('0x2c')]);}_0x925d41[_0x6f7a('0x4e')]=qs[_0x6f7a('0x69')](_0x276cfe[_0x6f7a('0x47')][_0x6f7a('0x69')]);_0x925d41[_0x6f7a('0x52')]=qs[_0x6f7a('0x4f')](_[_0x6f7a('0x50')](_0x276cfe[_0x6f7a('0x47')],_0x2a022f['filters']));_0x925d41[_0x6f7a('0x52')]['SmsAccountId']=_0x2fd2d7['id'];if(_0x276cfe['query']['filter']){_0x925d41[_0x6f7a('0x52')]=_[_0x6f7a('0x54')](_0x925d41[_0x6f7a('0x52')],{'$or':_[_0x6f7a('0x41')](_0x925d41['attributes'],function(_0x1ace18){var _0x3073ec={};_0x3073ec[_0x1ace18]={'$like':'%'+_0x276cfe[_0x6f7a('0x47')][_0x6f7a('0x51')]+'%'};return _0x3073ec;})});}_0x925d41=_['merge']({},_0x925d41,_0x276cfe['options']);return db[_0x6f7a('0xa2')][_0x6f7a('0x2f')]({'where':_0x925d41['where']})[_0x6f7a('0x20')](function(_0x3abcbd){_0x4bfe34[_0x6f7a('0x2f')]=_0x3abcbd;if(_0x276cfe[_0x6f7a('0x47')][_0x6f7a('0x56')]){_0x925d41[_0x6f7a('0x57')]=[{'model':db['CmContact'],'as':_0x6f7a('0xbf'),'required':![]},{'model':db[_0x6f7a('0xc0')],'as':_0x6f7a('0xc1'),'attributes':[_0x6f7a('0x3c'),'fullname',_0x6f7a('0xc2')],'required':![]},{'model':db[_0x6f7a('0xc3')],'as':'Tags','attributes':['id',_0x6f7a('0x3c'),_0x6f7a('0xc4')],'where':_0x276cfe['query'][_0x6f7a('0xc5')]?{'id':_0x276cfe['query'][_0x6f7a('0xc5')]}:undefined,'required':_0x276cfe['query']['tag']?!![]:![]}];}return db[_0x6f7a('0xa2')][_0x6f7a('0x58')](_0x925d41);})[_0x6f7a('0x20')](function(_0x36d05b){_0x4bfe34[_0x6f7a('0x59')]=_0x36d05b;return _0x4bfe34;});}})[_0x6f7a('0x20')](respondWithFilteredResult(_0x306a9f,_0x925d41))[_0x6f7a('0x29')](handleError(_0x306a9f,null));};exports[_0x6f7a('0x3d')]=function(_0x3ae58a,_0x1f9eac,_0x461481){var _0x56108b,_0x4fdc63,_0x2d71fe;if(_[_0x6f7a('0x96')](_0x3ae58a[_0x6f7a('0x5d')][_0x6f7a('0x5d')])||_0x3ae58a[_0x6f7a('0x5d')][_0x6f7a('0x5d')]===''){throw new db[(_0x6f7a('0x95'))]['ValidationError'](_0x6f7a('0x97'));}if(_[_0x6f7a('0x96')](_0x3ae58a[_0x6f7a('0x5d')]['to'])){throw new db[(_0x6f7a('0x95'))][(_0x6f7a('0x77'))](_0x6f7a('0xc6'));}_0x56108b=_0x3ae58a['body']['to'];return db[_0x6f7a('0x42')][_0x6f7a('0x62')]({'where':{'id':_0x3ae58a[_0x6f7a('0x5b')]['id']},'include':[{'model':db['CmList'],'as':_0x6f7a('0xc7'),'include':[{'model':db[_0x6f7a('0x76')],'as':'Contacts','where':{'mobile':_0x56108b},'limit':0x1,'order':[[_0x6f7a('0x7a'),'DESC']]}]}]})[_0x6f7a('0x20')](handleEntityNotFound(_0x1f9eac,null))[_0x6f7a('0x20')](function(_0x56427e){if(_0x56427e&&_0x56427e['List']){_0x4fdc63=_0x56427e[_0x6f7a('0x37')]({'plain':!![]});if(_0x4fdc63[_0x6f7a('0xc7')]&&_0x4fdc63[_0x6f7a('0xc7')]['Contacts'][_0x6f7a('0x4b')]){return _0x4fdc63['List'][_0x6f7a('0x9c')][0x0];}return db[_0x6f7a('0x76')]['create'](_[_0x6f7a('0xa0')](_0x3ae58a['body'],{'firstName':_0x56108b,'mobile':_0x56108b,'phone':_0x56108b,'ListId':_0x4fdc63[_0x6f7a('0x7c')]}));}})[_0x6f7a('0x20')](handleEntityNotFound(_0x1f9eac,null))[_0x6f7a('0x20')](function(_0x36eb23){if(_0x36eb23){_0x2d71fe=_0x36eb23;return db[_0x6f7a('0xa2')]['find']({'where':{'ContactId':_0x2d71fe['id'],'closed':![],'SmsAccountId':_0x4fdc63['id']}})['then'](function(_0xcd7aa5){if(_0xcd7aa5){return[_0xcd7aa5,![]];}return db[_0x6f7a('0xa2')][_0x6f7a('0x6d')]({'UserId':_0x3ae58a[_0x6f7a('0x5e')]['id'],'ContactId':_0x2d71fe['id'],'SmsAccountId':_0x4fdc63['id'],'phone':_0x56108b,'firstMsgDirection':_0x6f7a('0xc8'),'Messages':[_[_0x6f7a('0x54')](_0x3ae58a[_0x6f7a('0x5d')],{'read':![],'body':_0x3ae58a['body'][_0x6f7a('0x5d')],'phone':_0x56108b,'SmsAccountId':_0x4fdc63['id'],'UserId':_0x3ae58a['user']['id'],'ContactId':_0x2d71fe['id']})]},{'include':[{'model':db[_0x6f7a('0xa9')],'as':'Messages'}]})[_0x6f7a('0x20')](function(_0x5aa369){return[_0x5aa369,!![]];});});}})[_0x6f7a('0xa3')](function(_0x385012,_0x44fedd){if(_0x44fedd){return _0x385012;}return db['SmsMessage'][_0x6f7a('0x6d')](_[_0x6f7a('0x54')](_0x3ae58a[_0x6f7a('0x5d')],{'read':![],'body':_0x3ae58a[_0x6f7a('0x5d')][_0x6f7a('0x5d')],'phone':_0x56108b,'SmsAccountId':_0x4fdc63['id'],'SmsInteractionId':_0x385012['id'],'UserId':_0x3ae58a[_0x6f7a('0x5e')]['id'],'ContactId':_0x2d71fe['id']}))[_0x6f7a('0x20')](function(_0x537b5d){_0x385012['dataValues'][_0x6f7a('0xc9')]=[];_0x385012[_0x6f7a('0xca')][_0x6f7a('0xc9')][_0x6f7a('0xa6')](_0x537b5d[_0x6f7a('0xca')]);return _0x385012;});})['then'](respondWithResult(_0x1f9eac,null))[_0x6f7a('0x29')](handleError(_0x1f9eac,null));};exports[_0x6f7a('0x2a')]=function(_0x154195,_0x35ed11,_0x334429){if(_0x154195[_0x6f7a('0x5d')]['id']){delete _0x154195[_0x6f7a('0x5d')]['id'];}var _0x23969d,_0x57e292,_0x3f971a;return db[_0x6f7a('0x42')][_0x6f7a('0x62')]({'where':{'id':_0x154195[_0x6f7a('0x5b')]['id']}})['then'](handleEntityNotFound(_0x35ed11,null))[_0x6f7a('0x20')](function(_0x49c8af){if(_0x49c8af){_0x3f971a=_0x49c8af;logger[_0x6f7a('0x23')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x6f7a('0x2a'),'received\x20delivery\x20report\x20from',_0x49c8af['type'],util[_0x6f7a('0xcb')](_0x154195[_0x6f7a('0x5d')],{'showHidden':![],'depth':null}));switch(_0x49c8af[_0x6f7a('0x45')]){case _0x6f7a('0x83'):if(_0x154195[_0x6f7a('0x5d')][_0x6f7a('0xcc')]&&_0x154195[_0x6f7a('0x5d')][_0x6f7a('0x2a')]){_0x57e292=_0x154195[_0x6f7a('0x5d')][_0x6f7a('0x2a')];return db['SmsMessage'][_0x6f7a('0x62')]({'where':{'messageId':_0x154195[_0x6f7a('0x5d')][_0x6f7a('0xcc')]}});}break;case _0x6f7a('0x85'):if(_0x154195[_0x6f7a('0x5d')]['requestid']&&_0x154195[_0x6f7a('0x5d')][_0x6f7a('0xcd')]){_0x57e292=_0x154195['body']['statusInt'];return db[_0x6f7a('0xa9')][_0x6f7a('0x62')]({'where':{'messageId':_0x154195[_0x6f7a('0x5d')][_0x6f7a('0xce')]}});}break;case _0x6f7a('0x86'):if(_0x154195['body'][_0x6f7a('0x87')]&&_0x154195[_0x6f7a('0x5d')][_0x6f7a('0xcf')]){_0x57e292=_0x154195[_0x6f7a('0x5d')][_0x6f7a('0xcf')];return db[_0x6f7a('0xa9')]['find']({'where':{'messageId':_0x154195[_0x6f7a('0x5d')][_0x6f7a('0x87')]}});}break;case'infobip':var _0x419fa4=_0x154195['body'][_0x6f7a('0x8c')][0x0];if(_0x419fa4['messageId']&&_0x419fa4['status'][_0x6f7a('0xd0')]===_0x6f7a('0xd1')){_0x57e292=_0x419fa4[_0x6f7a('0x2a')][_0x6f7a('0xd0')];return db['SmsMessage'][_0x6f7a('0x62')]({'where':{'messageId':_0x419fa4[_0x6f7a('0x81')]}});}break;case'clickatell':if(_0x154195[_0x6f7a('0x5d')][_0x6f7a('0x81')]&&_0x154195[_0x6f7a('0x5d')][_0x6f7a('0x2a')]){_0x57e292=_0x154195[_0x6f7a('0x5d')]['status'];return db[_0x6f7a('0xa9')][_0x6f7a('0x62')]({'where':{'messageId':_0x154195[_0x6f7a('0x5d')][_0x6f7a('0x81')]}});}break;case _0x6f7a('0x93'):if(_0x154195[_0x6f7a('0x5d')][0x0][_0x6f7a('0x26')]['id']){_0x57e292=_0x154195['body'][0x0]['type'];return db[_0x6f7a('0xa9')]['find']({'where':{'messageId':_0x154195[_0x6f7a('0x5d')][0x0][_0x6f7a('0x26')]['id']}});}break;case _0x6f7a('0x94'):if(_0x154195['body'][_0x6f7a('0xd2')]&&_0x154195['body']['status']){_0x57e292=_0x154195[_0x6f7a('0x5d')]['status'];return db[_0x6f7a('0xa9')][_0x6f7a('0x62')]({'where':{'messageId':_0x154195[_0x6f7a('0x5d')][_0x6f7a('0xd2')]}});}break;}}})[_0x6f7a('0x20')](handleEntityNotFound(_0x35ed11,null))[_0x6f7a('0x20')](function(_0x145d60){if(_0x145d60){_0x23969d=_0x145d60;switch(_0x3f971a[_0x6f7a('0x45')]){case _0x6f7a('0x83'):if(_0x57e292===_0x6f7a('0xd1')){return _0x23969d['update']({'read':!![]});}else{logger[_0x6f7a('0x24')](_0x6f7a('0xd3'),'status',_0x6f7a('0x83'),util['inspect'](_0x154195[_0x6f7a('0x5d')],{'showHidden':![],'depth':null}));}break;case'connectel':if(_0x57e292==='1'){return _0x23969d[_0x6f7a('0x35')]({'read':!![]});}else{logger[_0x6f7a('0x24')](_0x6f7a('0xd3'),'status','skebby',util[_0x6f7a('0xcb')](_0x154195[_0x6f7a('0x5d')],{'showHidden':![],'depth':null}));}break;case'clicksend':if(!_0x154195['body']['error_code']&&_0x57e292>=0xc8&&_0x57e292<=0xce){return _0x23969d['update']({'read':!![]});}else{logger['error'](_0x6f7a('0xd3'),'status','clicksend',util['inspect'](_0x154195[_0x6f7a('0x5d')],{'showHidden':![],'depth':null}));}break;case _0x6f7a('0x8b'):var _0x27e5f=_0x154195[_0x6f7a('0x5d')][_0x6f7a('0x8c')][0x0];if(_0x27e5f[_0x6f7a('0x2a')][_0x6f7a('0xd0')]===_0x6f7a('0xd1')){return _0x23969d[_0x6f7a('0x35')]({'read':!![]});}else{logger['error'](_0x6f7a('0xd3'),_0x6f7a('0x2a'),_0x6f7a('0x8b'),util[_0x6f7a('0xcb')](_0x154195['body'],{'showHidden':![],'depth':null}));}break;case _0x6f7a('0x90'):if(_0x57e292==_0x6f7a('0xd4')||_0x57e292==_0x6f7a('0xd5')){return _0x23969d['update']({'read':!![]});}else{logger[_0x6f7a('0x24')](_0x6f7a('0xd3'),_0x6f7a('0x2a'),'clickatell',util[_0x6f7a('0xcb')](_0x154195['body'],{'showHidden':![],'depth':null}));}break;case'bandwidth':if(_0x57e292=='message-delivered'){return _0x23969d[_0x6f7a('0x35')]({'read':!![]});}else{logger[_0x6f7a('0x24')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x6f7a('0x2a'),_0x6f7a('0x93'),util['inspect'](_0x154195[_0x6f7a('0x5d')],{'showHidden':![],'depth':null}));}break;case'intelepeer':if(_0x57e292==='DELIVRD'||_0x57e292==='ACCEPTD'){return _0x23969d[_0x6f7a('0x35')]({'read':!![]});}else{logger[_0x6f7a('0x24')](_0x6f7a('0xd3'),_0x6f7a('0x2a'),'intelepeer',util[_0x6f7a('0xcb')](_0x154195['body'],{'showHidden':![],'depth':null}));}break;}return _0x23969d;}})[_0x6f7a('0x20')](respondWithResult(_0x35ed11,null))[_0x6f7a('0x29')](handleError(_0x35ed11,null));};exports[_0x6f7a('0xd6')]=function(_0x2d54ac,_0x1214d3,_0x302ba8){var _0x5288be,_0x2e66b2,_0x2dfe8e;return db[_0x6f7a('0x42')][_0x6f7a('0x62')]({'where':{'id':_0x2d54ac['params']['id']}})['then'](handleEntityNotFound(_0x1214d3,null))['then'](function(_0x4617c8){if(_0x4617c8){_0x2dfe8e=_0x4617c8;logger[_0x6f7a('0x23')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x6f7a('0x2a'),'received\x20delivery\x20report\x20from',_0x4617c8[_0x6f7a('0x45')],util[_0x6f7a('0xcb')](_0x2d54ac[_0x6f7a('0x47')],{'showHidden':![],'depth':null}));switch(_0x4617c8[_0x6f7a('0x45')]){case _0x6f7a('0xd7'):if(_0x2d54ac[_0x6f7a('0x47')][_0x6f7a('0xd8')]&&_0x2d54ac[_0x6f7a('0x47')]['state']){_0x2e66b2=_0x2d54ac[_0x6f7a('0x47')][_0x6f7a('0xd9')];return db['SmsMessage'][_0x6f7a('0x62')]({'where':{'messageId':_0x2d54ac['query']['message-id']}});}break;}}})[_0x6f7a('0x20')](handleEntityNotFound(_0x1214d3,null))['then'](function(_0x39d292){if(_0x39d292){_0x5288be=_0x39d292;switch(_0x2dfe8e[_0x6f7a('0x45')]){case _0x6f7a('0xd7'):if(_0x2e66b2==='2'||_0x2e66b2==='6'){return _0x5288be[_0x6f7a('0x35')]({'read':!![]});}else{logger[_0x6f7a('0x24')](_0x6f7a('0xd3'),'status',_0x6f7a('0xd7'),util['inspect'](_0x2d54ac[_0x6f7a('0x47')],{'showHidden':![],'depth':null}));};break;}return _0x5288be;}})['then'](respondWithResult(_0x1214d3,null))[_0x6f7a('0x29')](handleError(_0x1214d3,null));};exports[_0x6f7a('0xda')]=function(_0x55d5f6,_0xa4cce,_0x493eb1){return db[_0x6f7a('0x42')][_0x6f7a('0x62')]({'where':{'id':_0x55d5f6[_0x6f7a('0x5b')]['id']}})[_0x6f7a('0x20')](handleEntityNotFound(_0xa4cce,null))[_0x6f7a('0x20')](function(_0x112d37){if(_0x112d37){return _0x112d37[_0x6f7a('0xda')](_0x55d5f6['body']['ids'],_[_0x6f7a('0x9f')](_0x55d5f6[_0x6f7a('0x5d')],[_0x6f7a('0x6b'),'id'])||{})[_0x6f7a('0xa3')](function(_0x231340){for(var _0x4765e2=0x0;_0x4765e2<_0x55d5f6[_0x6f7a('0x5d')][_0x6f7a('0x6b')][_0x6f7a('0x4b')];_0x4765e2+=0x1){socket[_0x6f7a('0xdb')]('userSmsAccount:save',{'UserId':Number(_0x55d5f6[_0x6f7a('0x5d')][_0x6f7a('0x6b')][_0x4765e2]),'SmsAccountId':Number(_0x55d5f6['params']['id'])});}return _0x231340;});}})[_0x6f7a('0x20')](respondWithResult(_0xa4cce,null))[_0x6f7a('0x29')](handleError(_0xa4cce,null));};exports['removeAgents']=function(_0x54fc75,_0x2af82,_0x1320d4){return db[_0x6f7a('0x42')][_0x6f7a('0x62')]({'where':{'id':_0x54fc75[_0x6f7a('0x5b')]['id']}})[_0x6f7a('0x20')](handleEntityNotFound(_0x2af82,null))[_0x6f7a('0x20')](function(_0x1b9fb9){if(_0x1b9fb9){return _0x1b9fb9[_0x6f7a('0xdc')](_0x54fc75[_0x6f7a('0x47')][_0x6f7a('0x6b')])[_0x6f7a('0x20')](function(){if(_[_0x6f7a('0xdd')](_0x54fc75[_0x6f7a('0x47')][_0x6f7a('0x6b')])){for(var _0x555649=0x0;_0x555649<_0x54fc75[_0x6f7a('0x47')]['ids'][_0x6f7a('0x4b')];_0x555649+=0x1){socket[_0x6f7a('0xdb')](_0x6f7a('0xde'),{'UserId':Number(_0x54fc75[_0x6f7a('0x47')]['ids'][_0x555649]),'SmsAccountId':Number(_0x54fc75['params']['id'])});}}else{socket[_0x6f7a('0xdb')](_0x6f7a('0xde'),{'UserId':Number(_0x54fc75['query'][_0x6f7a('0x6b')]),'SmsAccountId':Number(_0x54fc75[_0x6f7a('0x5b')]['id'])});}});}})[_0x6f7a('0x20')](respondWithStatusCode(_0x2af82,null))[_0x6f7a('0x29')](handleError(_0x2af82,null));};exports[_0x6f7a('0xdf')]=function(_0x2c3e01,_0x3d275b,_0xd3c1ee){var _0x448f9b={};var _0x462429={};var _0x16dc2e;var _0x50b497;return db[_0x6f7a('0x42')]['findOne']({'where':{'id':_0x2c3e01[_0x6f7a('0x5b')]['id']}})[_0x6f7a('0x20')](handleEntityNotFound(_0x3d275b,null))[_0x6f7a('0x20')](function(_0x4ae277){if(_0x4ae277){_0x16dc2e=_0x4ae277;_0x462429[_0x6f7a('0x46')]=_[_0x6f7a('0x5c')](db[_0x6f7a('0xc0')]['rawAttributes']);_0x462429[_0x6f7a('0x47')]=_[_0x6f7a('0x5c')](_0x2c3e01[_0x6f7a('0x47')]);_0x462429[_0x6f7a('0x4f')]=_[_0x6f7a('0x48')](_0x462429[_0x6f7a('0x46')],_0x462429[_0x6f7a('0x47')]);_0x448f9b[_0x6f7a('0x49')]=_['intersection'](_0x462429[_0x6f7a('0x46')],qs[_0x6f7a('0x4a')](_0x2c3e01[_0x6f7a('0x47')]['fields']));_0x448f9b[_0x6f7a('0x49')]=_0x448f9b[_0x6f7a('0x49')][_0x6f7a('0x4b')]?_0x448f9b[_0x6f7a('0x49')]:_0x462429[_0x6f7a('0x46')];_0x448f9b['order']=qs['sort'](_0x2c3e01[_0x6f7a('0x47')][_0x6f7a('0x69')]);_0x448f9b[_0x6f7a('0x52')]=qs[_0x6f7a('0x4f')](_[_0x6f7a('0x50')](_0x2c3e01['query'],_0x462429[_0x6f7a('0x4f')]));if(_0x2c3e01[_0x6f7a('0x47')][_0x6f7a('0x51')]){_0x448f9b['where']=_[_0x6f7a('0x54')](_0x448f9b[_0x6f7a('0x52')],{'$or':_[_0x6f7a('0x41')](_0x448f9b['attributes'],function(_0x19ccc6){var _0x5256c3={};_0x5256c3[_0x19ccc6]={'$like':'%'+_0x2c3e01['query'][_0x6f7a('0x51')]+'%'};return _0x5256c3;})});}_0x448f9b=_[_0x6f7a('0x54')]({},_0x448f9b,_0x2c3e01[_0x6f7a('0x55')]);return _0x16dc2e[_0x6f7a('0xdf')](_0x448f9b);}})[_0x6f7a('0x20')](function(_0x3ad174){if(_0x3ad174){_0x50b497=_0x3ad174[_0x6f7a('0x4b')];if(!_0x2c3e01[_0x6f7a('0x47')]['hasOwnProperty'](_0x6f7a('0x4d'))){_0x448f9b[_0x6f7a('0x2e')]=qs[_0x6f7a('0x2e')](_0x2c3e01['query'][_0x6f7a('0x2e')]);_0x448f9b['offset']=qs[_0x6f7a('0x2c')](_0x2c3e01[_0x6f7a('0x47')][_0x6f7a('0x2c')]);}return _0x16dc2e[_0x6f7a('0xdf')](_0x448f9b);}})[_0x6f7a('0x20')](function(_0x2284c4){if(_0x2284c4){return _0x2284c4?{'count':_0x50b497,'rows':_0x2284c4}:null;}})[_0x6f7a('0x20')](respondWithResult(_0x3d275b,null))[_0x6f7a('0x29')](handleError(_0x3d275b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe4d3=['save','update','emit','hasOwnProperty','exports','events','SmsAccount','setMaxListeners'];(function(_0x323a17,_0x30fc0a){var _0x31fa0f=function(_0x264ded){while(--_0x264ded){_0x323a17['push'](_0x323a17['shift']());}};_0x31fa0f(++_0x30fc0a);}(_0xe4d3,0x12d));var _0x3e4d=function(_0x48c868,_0x50d5a6){_0x48c868=_0x48c868-0x0;var _0xdfa795=_0xe4d3[_0x48c868];return _0xdfa795;};'use strict';var EventEmitter=require(_0x3e4d('0x0'));var SmsAccount=require('../../mysqldb')['db'][_0x3e4d('0x1')];var SmsAccountEvents=new EventEmitter();SmsAccountEvents[_0x3e4d('0x2')](0x0);var events={'afterCreate':_0x3e4d('0x3'),'afterUpdate':_0x3e4d('0x4'),'afterDestroy':'remove'};function emitEvent(_0xee35dd){return function(_0x118acf,_0x546cab,_0x28c126){SmsAccountEvents['emit'](_0xee35dd+':'+_0x118acf['id'],_0x118acf);SmsAccountEvents[_0x3e4d('0x5')](_0xee35dd,_0x118acf);_0x28c126(null);};}for(var e in events){if(events[_0x3e4d('0x6')](e)){var event=events[e];SmsAccount['hook'](e,emitEvent(event));}}module[_0x3e4d('0x7')]=SmsAccountEvents;
\ No newline at end of file
+var _0x274b=['SmsAccount','save','update','remove','emit','hasOwnProperty','hook','../../mysqldb'];(function(_0x3daea5,_0x567a3d){var _0x523bc9=function(_0x49152f){while(--_0x49152f){_0x3daea5['push'](_0x3daea5['shift']());}};_0x523bc9(++_0x567a3d);}(_0x274b,0x1df));var _0xb274=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x274b[_0x3b380d];return _0x54502b;};'use strict';var EventEmitter=require('events');var SmsAccount=require(_0xb274('0x0'))['db'][_0xb274('0x1')];var SmsAccountEvents=new EventEmitter();SmsAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xb274('0x2'),'afterUpdate':_0xb274('0x3'),'afterDestroy':_0xb274('0x4')};function emitEvent(_0x55988c){return function(_0x38c45a,_0x59f87e,_0x5dd888){SmsAccountEvents[_0xb274('0x5')](_0x55988c+':'+_0x38c45a['id'],_0x38c45a);SmsAccountEvents[_0xb274('0x5')](_0x55988c,_0x38c45a);_0x5dd888(null);};}for(var e in events){if(events[_0xb274('0x6')](e)){var event=events[e];SmsAccount[_0xb274('0x7')](e,emitEvent(event));}}module['exports']=SmsAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc443=['sms_accounts','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./smsAccount.attributes'];(function(_0x10d087,_0x1e002e){var _0x29a10e=function(_0x1d99c2){while(--_0x1d99c2){_0x10d087['push'](_0x10d087['shift']());}};_0x29a10e(++_0x1e002e);}(_0xc443,0x1c4));var _0x3c44=function(_0x59ea60,_0x21530b){_0x59ea60=_0x59ea60-0x0;var _0x325b3f=_0xc443[_0x59ea60];return _0x325b3f;};'use strict';var _=require(_0x3c44('0x0'));var util=require(_0x3c44('0x1'));var logger=require(_0x3c44('0x2'))(_0x3c44('0x3'));var moment=require(_0x3c44('0x4'));var BPromise=require(_0x3c44('0x5'));var rp=require(_0x3c44('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3c44('0x7'));var config=require(_0x3c44('0x8'));var attributes=require(_0x3c44('0x9'));module['exports']=function(_0x3c5390,_0x32032e){return _0x3c5390['define']('SmsAccount',attributes,{'tableName':_0x3c44('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xcdc1=['lodash','util','moment','bluebird','path','rimraf','./smsAccount.attributes','exports','SmsAccount','sms_accounts'];(function(_0x2394d0,_0x2ee1d9){var _0x343ecd=function(_0x2daa85){while(--_0x2daa85){_0x2394d0['push'](_0x2394d0['shift']());}};_0x343ecd(++_0x2ee1d9);}(_0xcdc1,0xdc));var _0x1cdc=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0xcdc1[_0x19e35c];return _0x3e1fe8;};'use strict';var _=require(_0x1cdc('0x0'));var util=require(_0x1cdc('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x1cdc('0x2'));var BPromise=require(_0x1cdc('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x1cdc('0x4'));var rimraf=require(_0x1cdc('0x5'));var config=require('../../config/environment');var attributes=require(_0x1cdc('0x6'));module[_0x1cdc('0x7')]=function(_0x2d668c,_0x1bca76){return _0x2d668c['define'](_0x1cdc('0x8'),attributes,{'tableName':_0x1cdc('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfe5=['../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./smsAccount.socket','register','then','info','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','code','SmsAccount,\x20%s,\x20%s','message','error','result','catch','options','where','attributes','include','map','model','ShowSmsAccount','lodash','util','bluebird','randomstring'];(function(_0x5bbf47,_0x583dd6){var _0x2d18a9=function(_0x1400e2){while(--_0x1400e2){_0x5bbf47['push'](_0x5bbf47['shift']());}};_0x2d18a9(++_0x583dd6);}(_0xbfe5,0x188));var _0x5bfe=function(_0x2c4ee7,_0x79f973){_0x2c4ee7=_0x2c4ee7-0x0;var _0x36dbb3=_0xbfe5[_0x2c4ee7];return _0x36dbb3;};'use strict';var _=require(_0x5bfe('0x0'));var util=require(_0x5bfe('0x1'));var moment=require('moment');var BPromise=require(_0x5bfe('0x2'));var rs=require(_0x5bfe('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5bfe('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x5bfe('0x5'))(_0x5bfe('0x6'));var config=require(_0x5bfe('0x7'));var jayson=require(_0x5bfe('0x8'));var client=jayson[_0x5bfe('0x9')][_0x5bfe('0xa')]({'port':0x232a});config[_0x5bfe('0xb')]=_[_0x5bfe('0xc')](config['redis'],{'host':_0x5bfe('0xd'),'port':0x18eb});var socket=require(_0x5bfe('0xe'))(new Redis(config[_0x5bfe('0xb')]));require(_0x5bfe('0xf'))[_0x5bfe('0x10')](socket);function respondWithRpcPromise(_0x40d72e,_0x3059fa,_0x105874){return new BPromise(function(_0x32d3ed,_0x40d7f3){return client['request'](_0x40d72e,_0x105874)[_0x5bfe('0x11')](function(_0x55df3f){logger[_0x5bfe('0x12')]('SmsAccount,\x20%s,\x20%s',_0x3059fa,_0x5bfe('0x13'));logger[_0x5bfe('0x14')](_0x5bfe('0x15'),_0x3059fa,'request\x20sent',JSON[_0x5bfe('0x16')](_0x55df3f));if(_0x55df3f['error']){if(_0x55df3f['error'][_0x5bfe('0x17')]===0x1f4){logger['error'](_0x5bfe('0x18'),_0x3059fa,_0x55df3f['error'][_0x5bfe('0x19')]);return _0x40d7f3(_0x55df3f[_0x5bfe('0x1a')][_0x5bfe('0x19')]);}logger[_0x5bfe('0x1a')](_0x5bfe('0x18'),_0x3059fa,_0x55df3f['error']['message']);return _0x32d3ed(_0x55df3f[_0x5bfe('0x1a')][_0x5bfe('0x19')]);}else{logger['info'](_0x5bfe('0x18'),_0x3059fa,'request\x20sent');_0x32d3ed(_0x55df3f[_0x5bfe('0x1b')]['message']);}})[_0x5bfe('0x1c')](function(_0x4f4afd){logger[_0x5bfe('0x1a')]('SmsAccount,\x20%s,\x20%s',_0x3059fa,_0x4f4afd);_0x40d7f3(_0x4f4afd);});});}exports['ShowSmsAccount']=function(_0x4b9c4f){var _0x1ec0a3=this;return new Promise(function(_0x378ec3,_0x38bd43){return db['SmsAccount']['find']({'raw':_0x4b9c4f['options']?_0x4b9c4f[_0x5bfe('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x4b9c4f[_0x5bfe('0x1d')]?_0x4b9c4f[_0x5bfe('0x1d')][_0x5bfe('0x1e')]||null:null,'attributes':_0x4b9c4f[_0x5bfe('0x1d')]?_0x4b9c4f['options'][_0x5bfe('0x1f')]||null:null,'include':_0x4b9c4f[_0x5bfe('0x1d')]?_0x4b9c4f[_0x5bfe('0x1d')][_0x5bfe('0x20')]?_[_0x5bfe('0x21')](_0x4b9c4f[_0x5bfe('0x1d')][_0x5bfe('0x20')],function(_0x107b98){return{'model':db[_0x107b98['model']],'as':_0x107b98['as'],'attributes':_0x107b98[_0x5bfe('0x1f')],'include':_0x107b98[_0x5bfe('0x20')]?_[_0x5bfe('0x21')](_0x107b98[_0x5bfe('0x20')],function(_0xfcaeec){return{'model':db[_0xfcaeec[_0x5bfe('0x22')]],'as':_0xfcaeec['as'],'attributes':_0xfcaeec[_0x5bfe('0x1f')],'include':_0xfcaeec[_0x5bfe('0x20')]?_[_0x5bfe('0x21')](_0xfcaeec[_0x5bfe('0x20')],function(_0x591a3a){return{'model':db[_0x591a3a[_0x5bfe('0x22')]],'as':_0x591a3a['as'],'attributes':_0x591a3a[_0x5bfe('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x5bfe('0x11')](function(_0xab3e81){logger[_0x5bfe('0x12')](_0x5bfe('0x23'),_0x4b9c4f);logger[_0x5bfe('0x14')](_0x5bfe('0x23'),_0x4b9c4f,JSON[_0x5bfe('0x16')](_0xab3e81));_0x378ec3(_0xab3e81);})[_0x5bfe('0x1c')](function(_0x46b15f){logger[_0x5bfe('0x1a')](_0x5bfe('0x23'),_0x46b15f[_0x5bfe('0x19')],_0x4b9c4f);_0x38bd43(_0x1ec0a3[_0x5bfe('0x1a')](0x1f4,_0x46b15f[_0x5bfe('0x19')]));});});};
\ No newline at end of file
+var _0xf2ee=['SmsAccount','find','options','raw','where','attributes','include','map','model','lodash','util','moment','bluebird','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','./smsAccount.socket','register','request','then','info','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','ShowSmsAccount'];(function(_0x160d71,_0x1498ac){var _0x3138e7=function(_0x209bd8){while(--_0x209bd8){_0x160d71['push'](_0x160d71['shift']());}};_0x3138e7(++_0x1498ac);}(_0xf2ee,0x185));var _0xef2e=function(_0x24db35,_0xf4b50d){_0x24db35=_0x24db35-0x0;var _0x39bb5e=_0xf2ee[_0x24db35];return _0x39bb5e;};'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(_0xef2e('0x5'))('rpc');var config=require(_0xef2e('0x6'));var jayson=require(_0xef2e('0x7'));var client=jayson[_0xef2e('0x8')][_0xef2e('0x9')]({'port':0x232a});config[_0xef2e('0xa')]=_[_0xef2e('0xb')](config[_0xef2e('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0xef2e('0xc'))(new Redis(config[_0xef2e('0xa')]));require(_0xef2e('0xd'))[_0xef2e('0xe')](socket);function respondWithRpcPromise(_0x2b3093,_0x59e22a,_0x37aec0){return new BPromise(function(_0x461e07,_0x4ff780){return client[_0xef2e('0xf')](_0x2b3093,_0x37aec0)[_0xef2e('0x10')](function(_0x40e64e){logger[_0xef2e('0x11')](_0xef2e('0x12'),_0x59e22a,_0xef2e('0x13'));logger[_0xef2e('0x14')](_0xef2e('0x15'),_0x59e22a,_0xef2e('0x13'),JSON[_0xef2e('0x16')](_0x40e64e));if(_0x40e64e['error']){if(_0x40e64e[_0xef2e('0x17')][_0xef2e('0x18')]===0x1f4){logger[_0xef2e('0x17')](_0xef2e('0x12'),_0x59e22a,_0x40e64e[_0xef2e('0x17')][_0xef2e('0x19')]);return _0x4ff780(_0x40e64e[_0xef2e('0x17')][_0xef2e('0x19')]);}logger[_0xef2e('0x17')]('SmsAccount,\x20%s,\x20%s',_0x59e22a,_0x40e64e[_0xef2e('0x17')][_0xef2e('0x19')]);return _0x461e07(_0x40e64e[_0xef2e('0x17')][_0xef2e('0x19')]);}else{logger[_0xef2e('0x11')](_0xef2e('0x12'),_0x59e22a,_0xef2e('0x13'));_0x461e07(_0x40e64e[_0xef2e('0x1a')][_0xef2e('0x19')]);}})[_0xef2e('0x1b')](function(_0x2cacb6){logger['error']('SmsAccount,\x20%s,\x20%s',_0x59e22a,_0x2cacb6);_0x4ff780(_0x2cacb6);});});}exports[_0xef2e('0x1c')]=function(_0x82933){var _0x3e0d0f=this;return new Promise(function(_0x4c8277,_0xba98a9){return db[_0xef2e('0x1d')][_0xef2e('0x1e')]({'raw':_0x82933[_0xef2e('0x1f')]?_0x82933[_0xef2e('0x1f')][_0xef2e('0x20')]===undefined?!![]:![]:!![],'where':_0x82933[_0xef2e('0x1f')]?_0x82933[_0xef2e('0x1f')][_0xef2e('0x21')]||null:null,'attributes':_0x82933[_0xef2e('0x1f')]?_0x82933[_0xef2e('0x1f')][_0xef2e('0x22')]||null:null,'include':_0x82933[_0xef2e('0x1f')]?_0x82933['options'][_0xef2e('0x23')]?_[_0xef2e('0x24')](_0x82933['options'][_0xef2e('0x23')],function(_0x4d6656){return{'model':db[_0x4d6656[_0xef2e('0x25')]],'as':_0x4d6656['as'],'attributes':_0x4d6656['attributes'],'include':_0x4d6656['include']?_['map'](_0x4d6656['include'],function(_0x250cc3){return{'model':db[_0x250cc3['model']],'as':_0x250cc3['as'],'attributes':_0x250cc3['attributes'],'include':_0x250cc3[_0xef2e('0x23')]?_[_0xef2e('0x24')](_0x250cc3[_0xef2e('0x23')],function(_0x480f6c){return{'model':db[_0x480f6c[_0xef2e('0x25')]],'as':_0x480f6c['as'],'attributes':_0x480f6c[_0xef2e('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4a5c17){logger[_0xef2e('0x11')](_0xef2e('0x1c'),_0x82933);logger['debug'](_0xef2e('0x1c'),_0x82933,JSON[_0xef2e('0x16')](_0x4a5c17));_0x4c8277(_0x4a5c17);})[_0xef2e('0x1b')](function(_0x1c7b3e){logger[_0xef2e('0x17')](_0xef2e('0x1c'),_0x1c7b3e['message'],_0x82933);_0xba98a9(_0x3e0d0f['error'](0x1f4,_0x1c7b3e['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(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3e112d,_0x2bb132){_0x3e112d=_0x3e112d-0x0;var _0x531c31=_0xa9e0[_0x3e112d];return _0x531c31;};'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(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x47b58b,_0x41a189){_0x47b58b=_0x47b58b-0x0;var _0x46bebe=_0xa9e0[_0x47b58b];return _0x46bebe;};'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 _0xe14b=['/:id','create','put','exports','multer','util','express','Router','../../components/auth/service','./smsApplication.controller','get','isAuthenticated','index'];(function(_0x3bee1e,_0x1708c8){var _0x22ab17=function(_0x5d4197){while(--_0x5d4197){_0x3bee1e['push'](_0x3bee1e['shift']());}};_0x22ab17(++_0x1708c8);}(_0xe14b,0x93));var _0xbe14=function(_0x5bbfbb,_0x376c72){_0x5bbfbb=_0x5bbfbb-0x0;var _0x12e09d=_0xe14b[_0x5bbfbb];return _0x12e09d;};'use strict';var multer=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xbe14('0x2'));var router=express[_0xbe14('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xbe14('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xbe14('0x5'));router[_0xbe14('0x6')]('/',auth[_0xbe14('0x7')](),controller[_0xbe14('0x8')]);router[_0xbe14('0x6')](_0xbe14('0x9'),auth[_0xbe14('0x7')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0xbe14('0xa')]);router[_0xbe14('0xb')](_0xbe14('0x9'),auth[_0xbe14('0x7')](),controller['update']);router['delete'](_0xbe14('0x9'),auth[_0xbe14('0x7')](),controller['destroy']);module[_0xbe14('0xc')]=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(_0x257794,_0x38561d){var _0x2d3c13=function(_0x535307){while(--_0x535307){_0x257794['push'](_0x257794['shift']());}};_0x2d3c13(++_0x38561d);}(_0x7217,0x19e));var _0x7721=function(_0x12d033,_0x25fa2f){_0x12d033=_0x12d033-0x0;var _0x3b4e80=_0x7217[_0x12d033];return _0x3b4e80;};'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 _0xae0d=['STRING','*,*,*,*','sequelize','exports'];(function(_0x565c49,_0x54acd0){var _0x20ca34=function(_0x42f7e1){while(--_0x42f7e1){_0x565c49['push'](_0x565c49['shift']());}};_0x20ca34(++_0x54acd0);}(_0xae0d,0x1e6));var _0xdae0=function(_0x448e51,_0x1680a3){_0x448e51=_0x448e51-0x0;var _0x2d3d51=_0xae0d[_0x448e51];return _0x2d3d51;};'use strict';var Sequelize=require(_0xdae0('0x0'));module[_0xdae0('0x1')]={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize[_0xdae0('0x2')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize[_0xdae0('0x2')]},'interval':{'type':Sequelize[_0xdae0('0x2')],'defaultValue':_0xdae0('0x3')}};
\ No newline at end of file
+var _0x8421=['exports','INTEGER','noop','*,*,*,*','sequelize'];(function(_0x8e8ca7,_0x5a5e07){var _0x561381=function(_0x2f4bda){while(--_0x2f4bda){_0x8e8ca7['push'](_0x8e8ca7['shift']());}};_0x561381(++_0x5a5e07);}(_0x8421,0xdb));var _0x1842=function(_0x26be11,_0x439a0b){_0x26be11=_0x26be11-0x0;var _0xad84e3=_0x8421[_0x26be11];return _0xad84e3;};'use strict';var Sequelize=require(_0x1842('0x0'));module[_0x1842('0x1')]={'priority':{'type':Sequelize[_0x1842('0x2')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x1842('0x3')},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize['STRING'],'defaultValue':_0x1842('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe196=['rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','catch','params','SmsApplication','options','find','create','body','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','map'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xe196,0x6a));var _0x6e19=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xe196[_0xa464c9];return _0x3d73c4;};'use strict';var emlformat=require(_0x6e19('0x0'));var rimraf=require(_0x6e19('0x1'));var zipdir=require(_0x6e19('0x2'));var jsonpatch=require(_0x6e19('0x3'));var rp=require(_0x6e19('0x4'));var moment=require('moment');var BPromise=require(_0x6e19('0x5'));var Mustache=require(_0x6e19('0x6'));var util=require('util');var path=require(_0x6e19('0x7'));var sox=require('sox');var csv=require(_0x6e19('0x8'));var ejs=require(_0x6e19('0x9'));var fs=require('fs');var fs_extra=require(_0x6e19('0xa'));var _=require(_0x6e19('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x6e19('0xc'));var Papa=require(_0x6e19('0xd'));var Redis=require(_0x6e19('0xe'));var authService=require(_0x6e19('0xf'));var qs=require(_0x6e19('0x10'));var as=require(_0x6e19('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6e19('0x12'))(_0x6e19('0x13'));var utils=require(_0x6e19('0x14'));var config=require(_0x6e19('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x6e19('0x16'))['db'];function respondWithStatusCode(_0x1fe1b2,_0x11d028){_0x11d028=_0x11d028||0xcc;return function(_0x31111c){if(_0x31111c){return _0x1fe1b2[_0x6e19('0x17')](_0x11d028);}return _0x1fe1b2[_0x6e19('0x18')](_0x11d028)[_0x6e19('0x19')]();};}function respondWithResult(_0x2e8151,_0x16a0ae){_0x16a0ae=_0x16a0ae||0xc8;return function(_0x26f61e){if(_0x26f61e){return _0x2e8151[_0x6e19('0x18')](_0x16a0ae)[_0x6e19('0x1a')](_0x26f61e);}};}function respondWithFilteredResult(_0x1d9d10,_0x33c66c){return function(_0x125183){if(_0x125183){var _0x3fd4be=typeof _0x33c66c[_0x6e19('0x1b')]===_0x6e19('0x1c')&&typeof _0x33c66c[_0x6e19('0x1d')]==='undefined';var _0x2beac8=_0x125183[_0x6e19('0x1e')];var _0x37871b=_0x3fd4be?0x0:_0x33c66c[_0x6e19('0x1b')];var _0x202368=_0x3fd4be?_0x125183[_0x6e19('0x1e')]:_0x33c66c[_0x6e19('0x1b')]+_0x33c66c[_0x6e19('0x1d')];var _0x33aba4;if(_0x202368>=_0x2beac8){_0x202368=_0x2beac8;_0x33aba4=0xc8;}else{_0x33aba4=0xce;}_0x1d9d10[_0x6e19('0x18')](_0x33aba4);return _0x1d9d10[_0x6e19('0x1f')](_0x6e19('0x20'),_0x37871b+'-'+_0x202368+'/'+_0x2beac8)['json'](_0x125183);}return null;};}function patchUpdates(_0x231e25){return function(_0x2fa098){try{jsonpatch[_0x6e19('0x21')](_0x2fa098,_0x231e25,!![]);}catch(_0x56f506){return BPromise[_0x6e19('0x22')](_0x56f506);}return _0x2fa098[_0x6e19('0x23')]();};}function saveUpdates(_0x8bf4f7,_0x1f9cc5){return function(_0x39864d){if(_0x39864d){return _0x39864d[_0x6e19('0x24')](_0x8bf4f7)[_0x6e19('0x25')](function(_0x4aa868){return _0x4aa868;});}return null;};}function removeEntity(_0x40dc7a,_0x211c1b){return function(_0x4597fd){if(_0x4597fd){return _0x4597fd['destroy']()[_0x6e19('0x25')](function(){_0x40dc7a[_0x6e19('0x18')](0xcc)[_0x6e19('0x19')]();});}};}function handleEntityNotFound(_0x73944b,_0xd97c83){return function(_0x5cdc85){if(!_0x5cdc85){_0x73944b['sendStatus'](0x194);}return _0x5cdc85;};}function handleError(_0x1fb37,_0x16f338){_0x16f338=_0x16f338||0x1f4;return function(_0x7bb641){logger[_0x6e19('0x26')](_0x7bb641[_0x6e19('0x27')]);if(_0x7bb641[_0x6e19('0x28')]){delete _0x7bb641[_0x6e19('0x28')];}_0x1fb37[_0x6e19('0x18')](_0x16f338)[_0x6e19('0x29')](_0x7bb641);};}exports[_0x6e19('0x2a')]=function(_0x4a7ba1,_0x56b2a2){var _0x3cad9b={},_0x1bbb66={},_0x4a82f5={'count':0x0,'rows':[]};var _0x41a9b3=_[_0x6e19('0x2b')](db['SmsApplication'][_0x6e19('0x2c')],function(_0x119667){return{'name':_0x119667[_0x6e19('0x2d')],'type':_0x119667[_0x6e19('0x2e')][_0x6e19('0x2f')]};});_0x1bbb66[_0x6e19('0x30')]=_['map'](_0x41a9b3,_0x6e19('0x28'));_0x1bbb66[_0x6e19('0x31')]=_[_0x6e19('0x32')](_0x4a7ba1['query']);_0x1bbb66[_0x6e19('0x33')]=_[_0x6e19('0x34')](_0x1bbb66[_0x6e19('0x30')],_0x1bbb66[_0x6e19('0x31')]);_0x3cad9b[_0x6e19('0x35')]=_['intersection'](_0x1bbb66[_0x6e19('0x30')],qs['fields'](_0x4a7ba1[_0x6e19('0x31')][_0x6e19('0x36')]));_0x3cad9b['attributes']=_0x3cad9b['attributes'][_0x6e19('0x37')]?_0x3cad9b[_0x6e19('0x35')]:_0x1bbb66[_0x6e19('0x30')];if(!_0x4a7ba1[_0x6e19('0x31')][_0x6e19('0x38')](_0x6e19('0x39'))){_0x3cad9b[_0x6e19('0x1d')]=qs[_0x6e19('0x1d')](_0x4a7ba1['query'][_0x6e19('0x1d')]);_0x3cad9b[_0x6e19('0x1b')]=qs['offset'](_0x4a7ba1['query']['offset']);}_0x3cad9b[_0x6e19('0x3a')]=qs[_0x6e19('0x3b')](_0x4a7ba1[_0x6e19('0x31')]['sort']);_0x3cad9b[_0x6e19('0x3c')]=qs[_0x6e19('0x33')](_[_0x6e19('0x3d')](_0x4a7ba1['query'],_0x1bbb66[_0x6e19('0x33')]),_0x41a9b3);if(_0x4a7ba1[_0x6e19('0x31')][_0x6e19('0x3e')]){_0x3cad9b[_0x6e19('0x3c')]=_[_0x6e19('0x3f')](_0x3cad9b[_0x6e19('0x3c')],{'$or':_[_0x6e19('0x2b')](_0x41a9b3,function(_0x48c060){if(_0x48c060[_0x6e19('0x2e')]!==_0x6e19('0x40')){var _0x3f0b4d={};_0x3f0b4d[_0x48c060[_0x6e19('0x28')]]={'$like':'%'+_0x4a7ba1['query'][_0x6e19('0x3e')]+'%'};return _0x3f0b4d;}})});}_0x3cad9b=_[_0x6e19('0x3f')]({},_0x3cad9b,_0x4a7ba1['options']);var _0x5e0cd0={'where':_0x3cad9b['where']};return db['SmsApplication'][_0x6e19('0x1e')](_0x5e0cd0)[_0x6e19('0x25')](function(_0x522890){_0x4a82f5[_0x6e19('0x1e')]=_0x522890;if(_0x4a7ba1[_0x6e19('0x31')][_0x6e19('0x41')]){_0x3cad9b[_0x6e19('0x42')]=[{'all':!![]}];}return db['SmsApplication']['findAll'](_0x3cad9b);})[_0x6e19('0x25')](function(_0x18fa66){_0x4a82f5['rows']=_0x18fa66;return _0x4a82f5;})['then'](respondWithFilteredResult(_0x56b2a2,_0x3cad9b))[_0x6e19('0x43')](handleError(_0x56b2a2,null));};exports['show']=function(_0x22403f,_0x4a5684){var _0x558019={'raw':!![],'where':{'id':_0x22403f[_0x6e19('0x44')]['id']}},_0x40a662={};_0x40a662[_0x6e19('0x30')]=_[_0x6e19('0x32')](db[_0x6e19('0x45')][_0x6e19('0x2c')]);_0x40a662[_0x6e19('0x31')]=_[_0x6e19('0x32')](_0x22403f[_0x6e19('0x31')]);_0x40a662[_0x6e19('0x33')]=_['intersection'](_0x40a662['model'],_0x40a662[_0x6e19('0x31')]);_0x558019[_0x6e19('0x35')]=_[_0x6e19('0x34')](_0x40a662['model'],qs[_0x6e19('0x36')](_0x22403f[_0x6e19('0x31')][_0x6e19('0x36')]));_0x558019[_0x6e19('0x35')]=_0x558019[_0x6e19('0x35')]['length']?_0x558019[_0x6e19('0x35')]:_0x40a662[_0x6e19('0x30')];if(_0x22403f['query'][_0x6e19('0x41')]){_0x558019[_0x6e19('0x42')]=[{'all':!![]}];}_0x558019=_[_0x6e19('0x3f')]({},_0x558019,_0x22403f[_0x6e19('0x46')]);return db[_0x6e19('0x45')][_0x6e19('0x47')](_0x558019)['then'](handleEntityNotFound(_0x4a5684,null))[_0x6e19('0x25')](respondWithResult(_0x4a5684,null))[_0x6e19('0x43')](handleError(_0x4a5684,null));};exports[_0x6e19('0x48')]=function(_0x2ccbae,_0x599abe){return db[_0x6e19('0x45')][_0x6e19('0x48')](_0x2ccbae[_0x6e19('0x49')],{})[_0x6e19('0x25')](respondWithResult(_0x599abe,0xc9))['catch'](handleError(_0x599abe,null));};exports[_0x6e19('0x24')]=function(_0x40a033,_0x30e09b){if(_0x40a033['body']['id']){delete _0x40a033[_0x6e19('0x49')]['id'];}return db[_0x6e19('0x45')]['find']({'where':{'id':_0x40a033[_0x6e19('0x44')]['id']}})['then'](handleEntityNotFound(_0x30e09b,null))[_0x6e19('0x25')](saveUpdates(_0x40a033['body'],null))['then'](respondWithResult(_0x30e09b,null))[_0x6e19('0x43')](handleError(_0x30e09b,null));};exports[_0x6e19('0x4a')]=function(_0xbc1d1c,_0x470aed){return db[_0x6e19('0x45')][_0x6e19('0x47')]({'where':{'id':_0xbc1d1c[_0x6e19('0x44')]['id']}})[_0x6e19('0x25')](handleEntityNotFound(_0x470aed,null))[_0x6e19('0x25')](removeEntity(_0x470aed,null))[_0x6e19('0x43')](handleError(_0x470aed,null));};
\ No newline at end of file
+var _0xc99a=['../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','reject','save','update','then','destroy','error','stack','name','send','SmsApplication','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','map','VIRTUAL','merge','options','includeAll','include','rows','show','params','create','body','catch','find','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils'];(function(_0xc6be3a,_0x540e05){var _0x56a310=function(_0x50a144){while(--_0x50a144){_0xc6be3a['push'](_0xc6be3a['shift']());}};_0x56a310(++_0x540e05);}(_0xc99a,0x110));var _0xac99=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xc99a[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0xac99('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xac99('0x1'));var rp=require(_0xac99('0x2'));var moment=require(_0xac99('0x3'));var BPromise=require(_0xac99('0x4'));var Mustache=require(_0xac99('0x5'));var util=require(_0xac99('0x6'));var path=require(_0xac99('0x7'));var sox=require(_0xac99('0x8'));var csv=require(_0xac99('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xac99('0xa'));var _=require('lodash');var squel=require(_0xac99('0xb'));var crypto=require(_0xac99('0xc'));var jsforce=require(_0xac99('0xd'));var deskjs=require(_0xac99('0xe'));var toCsv=require(_0xac99('0x9'));var querystring=require('querystring');var Papa=require(_0xac99('0xf'));var Redis=require(_0xac99('0x10'));var authService=require(_0xac99('0x11'));var qs=require(_0xac99('0x12'));var as=require(_0xac99('0x13'));var hardwareService=require(_0xac99('0x14'));var logger=require(_0xac99('0x15'))(_0xac99('0x16'));var utils=require(_0xac99('0x17'));var config=require(_0xac99('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xac99('0x19'))['db'];function respondWithStatusCode(_0x24d452,_0x34be91){_0x34be91=_0x34be91||0xcc;return function(_0x326f5f){if(_0x326f5f){return _0x24d452[_0xac99('0x1a')](_0x34be91);}return _0x24d452[_0xac99('0x1b')](_0x34be91)[_0xac99('0x1c')]();};}function respondWithResult(_0x1e21db,_0x18307b){_0x18307b=_0x18307b||0xc8;return function(_0x5e92a6){if(_0x5e92a6){return _0x1e21db[_0xac99('0x1b')](_0x18307b)[_0xac99('0x1d')](_0x5e92a6);}};}function respondWithFilteredResult(_0x1bbdc3,_0x5af0fc){return function(_0x56eb4f){if(_0x56eb4f){var _0x5d7546=typeof _0x5af0fc[_0xac99('0x1e')]===_0xac99('0x1f')&&typeof _0x5af0fc[_0xac99('0x20')]===_0xac99('0x1f');var _0x280c4c=_0x56eb4f[_0xac99('0x21')];var _0x3af68b=_0x5d7546?0x0:_0x5af0fc[_0xac99('0x1e')];var _0x3b28eb=_0x5d7546?_0x56eb4f[_0xac99('0x21')]:_0x5af0fc[_0xac99('0x1e')]+_0x5af0fc[_0xac99('0x20')];var _0xf76ccb;if(_0x3b28eb>=_0x280c4c){_0x3b28eb=_0x280c4c;_0xf76ccb=0xc8;}else{_0xf76ccb=0xce;}_0x1bbdc3[_0xac99('0x1b')](_0xf76ccb);return _0x1bbdc3['set'](_0xac99('0x22'),_0x3af68b+'-'+_0x3b28eb+'/'+_0x280c4c)['json'](_0x56eb4f);}return null;};}function patchUpdates(_0x40bfa8){return function(_0x385617){try{jsonpatch['apply'](_0x385617,_0x40bfa8,!![]);}catch(_0xc3e0e7){return BPromise[_0xac99('0x23')](_0xc3e0e7);}return _0x385617[_0xac99('0x24')]();};}function saveUpdates(_0x48ccb7,_0x5f46a0){return function(_0xb96bf3){if(_0xb96bf3){return _0xb96bf3[_0xac99('0x25')](_0x48ccb7)[_0xac99('0x26')](function(_0x3c3ea1){return _0x3c3ea1;});}return null;};}function removeEntity(_0x1439f6,_0x122ed0){return function(_0xe83f73){if(_0xe83f73){return _0xe83f73[_0xac99('0x27')]()[_0xac99('0x26')](function(){_0x1439f6[_0xac99('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x255124,_0x9277c3){return function(_0x25262a){if(!_0x25262a){_0x255124[_0xac99('0x1a')](0x194);}return _0x25262a;};}function handleError(_0x55b0e9,_0x31bad0){_0x31bad0=_0x31bad0||0x1f4;return function(_0x59331c){logger[_0xac99('0x28')](_0x59331c[_0xac99('0x29')]);if(_0x59331c[_0xac99('0x2a')]){delete _0x59331c[_0xac99('0x2a')];}_0x55b0e9[_0xac99('0x1b')](_0x31bad0)[_0xac99('0x2b')](_0x59331c);};}exports['index']=function(_0x388bf6,_0x24d29a){var _0xfbc17={},_0x39af6a={},_0x7b367d={'count':0x0,'rows':[]};var _0x5be3ba=_['map'](db[_0xac99('0x2c')][_0xac99('0x2d')],function(_0x120933){return{'name':_0x120933[_0xac99('0x2e')],'type':_0x120933[_0xac99('0x2f')][_0xac99('0x30')]};});_0x39af6a[_0xac99('0x31')]=_['map'](_0x5be3ba,'name');_0x39af6a['query']=_[_0xac99('0x32')](_0x388bf6[_0xac99('0x33')]);_0x39af6a[_0xac99('0x34')]=_[_0xac99('0x35')](_0x39af6a[_0xac99('0x31')],_0x39af6a['query']);_0xfbc17['attributes']=_[_0xac99('0x35')](_0x39af6a[_0xac99('0x31')],qs[_0xac99('0x36')](_0x388bf6[_0xac99('0x33')][_0xac99('0x36')]));_0xfbc17[_0xac99('0x37')]=_0xfbc17[_0xac99('0x37')]['length']?_0xfbc17['attributes']:_0x39af6a[_0xac99('0x31')];if(!_0x388bf6[_0xac99('0x33')][_0xac99('0x38')]('nolimit')){_0xfbc17['limit']=qs['limit'](_0x388bf6[_0xac99('0x33')][_0xac99('0x20')]);_0xfbc17[_0xac99('0x1e')]=qs[_0xac99('0x1e')](_0x388bf6[_0xac99('0x33')][_0xac99('0x1e')]);}_0xfbc17[_0xac99('0x39')]=qs[_0xac99('0x3a')](_0x388bf6['query'][_0xac99('0x3a')]);_0xfbc17[_0xac99('0x3b')]=qs['filters'](_[_0xac99('0x3c')](_0x388bf6['query'],_0x39af6a[_0xac99('0x34')]),_0x5be3ba);if(_0x388bf6[_0xac99('0x33')]['filter']){_0xfbc17[_0xac99('0x3b')]=_['merge'](_0xfbc17[_0xac99('0x3b')],{'$or':_[_0xac99('0x3d')](_0x5be3ba,function(_0x29f28f){if(_0x29f28f[_0xac99('0x2f')]!==_0xac99('0x3e')){var _0x45f5d1={};_0x45f5d1[_0x29f28f[_0xac99('0x2a')]]={'$like':'%'+_0x388bf6[_0xac99('0x33')]['filter']+'%'};return _0x45f5d1;}})});}_0xfbc17=_[_0xac99('0x3f')]({},_0xfbc17,_0x388bf6[_0xac99('0x40')]);var _0x4041f3={'where':_0xfbc17['where']};return db[_0xac99('0x2c')][_0xac99('0x21')](_0x4041f3)[_0xac99('0x26')](function(_0x2414ce){_0x7b367d[_0xac99('0x21')]=_0x2414ce;if(_0x388bf6[_0xac99('0x33')][_0xac99('0x41')]){_0xfbc17[_0xac99('0x42')]=[{'all':!![]}];}return db[_0xac99('0x2c')]['findAll'](_0xfbc17);})[_0xac99('0x26')](function(_0x2dba94){_0x7b367d[_0xac99('0x43')]=_0x2dba94;return _0x7b367d;})[_0xac99('0x26')](respondWithFilteredResult(_0x24d29a,_0xfbc17))['catch'](handleError(_0x24d29a,null));};exports[_0xac99('0x44')]=function(_0xc88a1,_0xb53c96){var _0x292c97={'raw':!![],'where':{'id':_0xc88a1[_0xac99('0x45')]['id']}},_0x4ba86a={};_0x4ba86a['model']=_[_0xac99('0x32')](db[_0xac99('0x2c')][_0xac99('0x2d')]);_0x4ba86a['query']=_[_0xac99('0x32')](_0xc88a1['query']);_0x4ba86a['filters']=_[_0xac99('0x35')](_0x4ba86a[_0xac99('0x31')],_0x4ba86a[_0xac99('0x33')]);_0x292c97[_0xac99('0x37')]=_[_0xac99('0x35')](_0x4ba86a[_0xac99('0x31')],qs[_0xac99('0x36')](_0xc88a1['query'][_0xac99('0x36')]));_0x292c97[_0xac99('0x37')]=_0x292c97[_0xac99('0x37')]['length']?_0x292c97[_0xac99('0x37')]:_0x4ba86a[_0xac99('0x31')];if(_0xc88a1[_0xac99('0x33')][_0xac99('0x41')]){_0x292c97[_0xac99('0x42')]=[{'all':!![]}];}_0x292c97=_[_0xac99('0x3f')]({},_0x292c97,_0xc88a1[_0xac99('0x40')]);return db['SmsApplication']['find'](_0x292c97)['then'](handleEntityNotFound(_0xb53c96,null))[_0xac99('0x26')](respondWithResult(_0xb53c96,null))['catch'](handleError(_0xb53c96,null));};exports[_0xac99('0x46')]=function(_0x1aa5ca,_0x3108d7){return db[_0xac99('0x2c')]['create'](_0x1aa5ca[_0xac99('0x47')],{})[_0xac99('0x26')](respondWithResult(_0x3108d7,0xc9))[_0xac99('0x48')](handleError(_0x3108d7,null));};exports[_0xac99('0x25')]=function(_0x589670,_0xd555e){if(_0x589670[_0xac99('0x47')]['id']){delete _0x589670['body']['id'];}return db[_0xac99('0x2c')][_0xac99('0x49')]({'where':{'id':_0x589670[_0xac99('0x45')]['id']}})[_0xac99('0x26')](handleEntityNotFound(_0xd555e,null))[_0xac99('0x26')](saveUpdates(_0x589670[_0xac99('0x47')],null))[_0xac99('0x26')](respondWithResult(_0xd555e,null))[_0xac99('0x48')](handleError(_0xd555e,null));};exports[_0xac99('0x27')]=function(_0x25e27c,_0x15e317){return db[_0xac99('0x2c')][_0xac99('0x49')]({'where':{'id':_0x25e27c[_0xac99('0x45')]['id']}})[_0xac99('0x26')](handleEntityNotFound(_0x15e317,null))[_0xac99('0x26')](removeEntity(_0x15e317,null))[_0xac99('0x48')](handleError(_0x15e317,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa37a=['../../config/environment','./smsApplication.attributes','exports','define','SmsApplication','sms_applications','utf8mb4_unicode_ci','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x4e55d2,_0x2d341){var _0x4631ff=function(_0x399fa1){while(--_0x399fa1){_0x4e55d2['push'](_0x4e55d2['shift']());}};_0x4631ff(++_0x2d341);}(_0xa37a,0x103));var _0xaa37=function(_0x7501da,_0x10c120){_0x7501da=_0x7501da-0x0;var _0x2a5620=_0xa37a[_0x7501da];return _0x2a5620;};'use strict';var _=require('lodash');var util=require(_0xaa37('0x0'));var logger=require(_0xaa37('0x1'))(_0xaa37('0x2'));var moment=require(_0xaa37('0x3'));var BPromise=require(_0xaa37('0x4'));var rp=require(_0xaa37('0x5'));var fs=require('fs');var path=require(_0xaa37('0x6'));var rimraf=require('rimraf');var config=require(_0xaa37('0x7'));var attributes=require(_0xaa37('0x8'));module[_0xaa37('0x9')]=function(_0x3ef290,_0x35a8af){return _0x3ef290[_0xaa37('0xa')](_0xaa37('0xb'),attributes,{'tableName':_0xaa37('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0xaa37('0xd')});};
\ No newline at end of file
+var _0x69b4=['util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./smsApplication.attributes','exports','define','sms_applications','utf8mb4_unicode_ci','lodash'];(function(_0x2aec52,_0x59d962){var _0x3b8835=function(_0x3e2604){while(--_0x3e2604){_0x2aec52['push'](_0x2aec52['shift']());}};_0x3b8835(++_0x59d962);}(_0x69b4,0x133));var _0x469b=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0x69b4[_0x2b4411];return _0x8e41ef;};'use strict';var _=require(_0x469b('0x0'));var util=require(_0x469b('0x1'));var logger=require(_0x469b('0x2'))('api');var moment=require(_0x469b('0x3'));var BPromise=require(_0x469b('0x4'));var rp=require(_0x469b('0x5'));var fs=require('fs');var path=require(_0x469b('0x6'));var rimraf=require(_0x469b('0x7'));var config=require(_0x469b('0x8'));var attributes=require(_0x469b('0x9'));module[_0x469b('0xa')]=function(_0x3efc88,_0x9daec5){return _0x3efc88[_0x469b('0xb')]('SmsApplication',attributes,{'tableName':_0x469b('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x469b('0xd')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc35f=['moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','client','http','then','info','request\x20sent','debug','SmsApplication,\x20%s,\x20%s,\x20%s','error','SmsApplication,\x20%s,\x20%s','message','result','catch','lodash','util'];(function(_0x4134b4,_0x4914dd){var _0x11bda3=function(_0x19cf44){while(--_0x19cf44){_0x4134b4['push'](_0x4134b4['shift']());}};_0x11bda3(++_0x4914dd);}(_0xc35f,0x1ca));var _0xfc35=function(_0x4dbbc1,_0x5db2ff){_0x4dbbc1=_0x4dbbc1-0x0;var _0x184837=_0xc35f[_0x4dbbc1];return _0x184837;};'use strict';var _=require(_0xfc35('0x0'));var util=require(_0xfc35('0x1'));var moment=require(_0xfc35('0x2'));var BPromise=require(_0xfc35('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xfc35('0x4'));var db=require(_0xfc35('0x5'))['db'];var utils=require(_0xfc35('0x6'));var logger=require('../../config/logger')(_0xfc35('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xfc35('0x8')][_0xfc35('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4c92db,_0x47d695,_0x4283cd){return new BPromise(function(_0x290dcc,_0x43deed){return client['request'](_0x4c92db,_0x4283cd)[_0xfc35('0xa')](function(_0x13d7b9){logger[_0xfc35('0xb')]('SmsApplication,\x20%s,\x20%s',_0x47d695,_0xfc35('0xc'));logger[_0xfc35('0xd')](_0xfc35('0xe'),_0x47d695,_0xfc35('0xc'),JSON['stringify'](_0x13d7b9));if(_0x13d7b9[_0xfc35('0xf')]){if(_0x13d7b9[_0xfc35('0xf')]['code']===0x1f4){logger[_0xfc35('0xf')](_0xfc35('0x10'),_0x47d695,_0x13d7b9[_0xfc35('0xf')]['message']);return _0x43deed(_0x13d7b9[_0xfc35('0xf')]['message']);}logger[_0xfc35('0xf')]('SmsApplication,\x20%s,\x20%s',_0x47d695,_0x13d7b9[_0xfc35('0xf')][_0xfc35('0x11')]);return _0x290dcc(_0x13d7b9['error']['message']);}else{logger[_0xfc35('0xb')](_0xfc35('0x10'),_0x47d695,_0xfc35('0xc'));_0x290dcc(_0x13d7b9[_0xfc35('0x12')][_0xfc35('0x11')]);}})[_0xfc35('0x13')](function(_0x58aae3){logger[_0xfc35('0xf')](_0xfc35('0x10'),_0x47d695,_0x58aae3);_0x43deed(_0x58aae3);});});}
\ No newline at end of file
+var _0xb1ef=['info','SmsApplication,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then'];(function(_0x514d6e,_0x254abe){var _0x11e9df=function(_0x5844cc){while(--_0x5844cc){_0x514d6e['push'](_0x514d6e['shift']());}};_0x11e9df(++_0x254abe);}(_0xb1ef,0x93));var _0xfb1e=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xb1ef[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0xfb1e('0x0'));var util=require(_0xfb1e('0x1'));var moment=require('moment');var BPromise=require(_0xfb1e('0x2'));var rs=require(_0xfb1e('0x3'));var fs=require('fs');var Redis=require(_0xfb1e('0x4'));var db=require(_0xfb1e('0x5'))['db'];var utils=require(_0xfb1e('0x6'));var logger=require(_0xfb1e('0x7'))(_0xfb1e('0x8'));var config=require(_0xfb1e('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xfb1e('0xa')][_0xfb1e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1455fa,_0xccf70,_0x502d8e){return new BPromise(function(_0x5eadcc,_0x3c7643){return client[_0xfb1e('0xc')](_0x1455fa,_0x502d8e)[_0xfb1e('0xd')](function(_0x1ac2dd){logger[_0xfb1e('0xe')](_0xfb1e('0xf'),_0xccf70,_0xfb1e('0x10'));logger[_0xfb1e('0x11')]('SmsApplication,\x20%s,\x20%s,\x20%s',_0xccf70,_0xfb1e('0x10'),JSON[_0xfb1e('0x12')](_0x1ac2dd));if(_0x1ac2dd[_0xfb1e('0x13')]){if(_0x1ac2dd[_0xfb1e('0x13')][_0xfb1e('0x14')]===0x1f4){logger[_0xfb1e('0x13')](_0xfb1e('0xf'),_0xccf70,_0x1ac2dd['error'][_0xfb1e('0x15')]);return _0x3c7643(_0x1ac2dd[_0xfb1e('0x13')]['message']);}logger[_0xfb1e('0x13')](_0xfb1e('0xf'),_0xccf70,_0x1ac2dd[_0xfb1e('0x13')][_0xfb1e('0x15')]);return _0x5eadcc(_0x1ac2dd[_0xfb1e('0x13')]['message']);}else{logger[_0xfb1e('0xe')](_0xfb1e('0xf'),_0xccf70,_0xfb1e('0x10'));_0x5eadcc(_0x1ac2dd[_0xfb1e('0x16')][_0xfb1e('0x15')]);}})['catch'](function(_0x2f3d7e){logger[_0xfb1e('0x13')](_0xfb1e('0xf'),_0xccf70,_0x2f3d7e);_0x3c7643(_0x2f3d7e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0abf=['create','addMessage','/:id/tags','tracked','sms','smsinteraction:addtags','addTags','put','smsinteraction:update','update','smsinteraction:destroy','destroy','delete','removeTags','exports','multer','path','connect-timeout','fs-extra','../../components/interaction/service','../../config/environment','./smsInteraction.controller','get','isAuthenticated','index','describe','/:id','show','/:id/messages','download','post'];(function(_0x57fbe6,_0x55dae3){var _0x2284ae=function(_0x121892){while(--_0x121892){_0x57fbe6['push'](_0x57fbe6['shift']());}};_0x2284ae(++_0x55dae3);}(_0x0abf,0xe8));var _0xf0ab=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x0abf[_0x5b644e];return _0x49c6bf;};'use strict';var multer=require(_0xf0ab('0x0'));var util=require('util');var path=require(_0xf0ab('0x1'));var timeout=require(_0xf0ab('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xf0ab('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xf0ab('0x4'));var config=require(_0xf0ab('0x5'));var controller=require(_0xf0ab('0x6'));router[_0xf0ab('0x7')]('/',auth[_0xf0ab('0x8')](),controller[_0xf0ab('0x9')]);router[_0xf0ab('0x7')]('/describe',auth[_0xf0ab('0x8')](),controller[_0xf0ab('0xa')]);router[_0xf0ab('0x7')](_0xf0ab('0xb'),auth['isAuthenticated'](),controller[_0xf0ab('0xc')]);router[_0xf0ab('0x7')](_0xf0ab('0xd'),auth['isAuthenticated'](),controller['getMessages']);router[_0xf0ab('0x7')]('/:id/download',auth[_0xf0ab('0x8')](),controller[_0xf0ab('0xe')]);router[_0xf0ab('0xf')]('/',auth[_0xf0ab('0x8')](),controller[_0xf0ab('0x10')]);router[_0xf0ab('0xf')](_0xf0ab('0xd'),auth['isAuthenticated'](),controller[_0xf0ab('0x11')]);router[_0xf0ab('0xf')](_0xf0ab('0x12'),auth[_0xf0ab('0x8')](),interaction[_0xf0ab('0x13')](_0xf0ab('0x14'),_0xf0ab('0x15')),controller[_0xf0ab('0x16')]);router[_0xf0ab('0x17')](_0xf0ab('0xb'),auth[_0xf0ab('0x8')](),interaction[_0xf0ab('0x13')](_0xf0ab('0x14'),_0xf0ab('0x18')),controller[_0xf0ab('0x19')]);router['delete'](_0xf0ab('0xb'),auth[_0xf0ab('0x8')](),interaction[_0xf0ab('0x13')](_0xf0ab('0x14'),_0xf0ab('0x1a')),controller[_0xf0ab('0x1b')]);router[_0xf0ab('0x1c')](_0xf0ab('0x12'),auth[_0xf0ab('0x8')](),controller[_0xf0ab('0x1d')]);module[_0xf0ab('0x1e')]=router;
\ No newline at end of file
+var _0x4cf8=['/:id','/:id/messages','getMessages','/:id/download','create','post','addMessage','/:id/tags','tracked','sms','smsinteraction:addtags','addTags','put','smsinteraction:update','delete','smsinteraction:destroy','destroy','removeTags','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsInteraction.controller','get','isAuthenticated','describe'];(function(_0xc27196,_0x36c8a2){var _0x32e23e=function(_0x27ef97){while(--_0x27ef97){_0xc27196['push'](_0xc27196['shift']());}};_0x32e23e(++_0x36c8a2);}(_0x4cf8,0x1e1));var _0x84cf=function(_0x5f0089,_0x227e2c){_0x5f0089=_0x5f0089-0x0;var _0x193892=_0x4cf8[_0x5f0089];return _0x193892;};'use strict';var multer=require(_0x84cf('0x0'));var util=require(_0x84cf('0x1'));var path=require(_0x84cf('0x2'));var timeout=require(_0x84cf('0x3'));var express=require(_0x84cf('0x4'));var router=express[_0x84cf('0x5')]();var fs_extra=require(_0x84cf('0x6'));var auth=require(_0x84cf('0x7'));var interaction=require(_0x84cf('0x8'));var config=require(_0x84cf('0x9'));var controller=require(_0x84cf('0xa'));router[_0x84cf('0xb')]('/',auth['isAuthenticated'](),controller['index']);router[_0x84cf('0xb')]('/describe',auth[_0x84cf('0xc')](),controller[_0x84cf('0xd')]);router['get'](_0x84cf('0xe'),auth[_0x84cf('0xc')](),controller['show']);router[_0x84cf('0xb')](_0x84cf('0xf'),auth[_0x84cf('0xc')](),controller[_0x84cf('0x10')]);router['get'](_0x84cf('0x11'),auth[_0x84cf('0xc')](),controller['download']);router['post']('/',auth[_0x84cf('0xc')](),controller[_0x84cf('0x12')]);router[_0x84cf('0x13')](_0x84cf('0xf'),auth[_0x84cf('0xc')](),controller[_0x84cf('0x14')]);router[_0x84cf('0x13')](_0x84cf('0x15'),auth[_0x84cf('0xc')](),interaction[_0x84cf('0x16')](_0x84cf('0x17'),_0x84cf('0x18')),controller[_0x84cf('0x19')]);router[_0x84cf('0x1a')](_0x84cf('0xe'),auth[_0x84cf('0xc')](),interaction[_0x84cf('0x16')](_0x84cf('0x17'),_0x84cf('0x1b')),controller['update']);router[_0x84cf('0x1c')](_0x84cf('0xe'),auth[_0x84cf('0xc')](),interaction[_0x84cf('0x16')](_0x84cf('0x17'),_0x84cf('0x1d')),controller[_0x84cf('0x1e')]);router['delete']('/:id/tags',auth[_0x84cf('0xc')](),controller[_0x84cf('0x1f')]);module[_0x84cf('0x20')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf360=['exports','DATE','STRING','ENUM','out','BOOLEAN','sequelize','moment'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0xf360,0x9e));var _0x0f36=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0xf360[_0x3e5086];return _0xfeb102;};'use strict';var Sequelize=require(_0x0f36('0x0'));var moment=require(_0x0f36('0x1'));module[_0x0f36('0x2')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x0f36('0x3')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0x0f36('0x4')]},'thirdDisposition':{'type':Sequelize[_0x0f36('0x4')]},'note':{'type':Sequelize[_0x0f36('0x4')]},'phone':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0x0f36('0x3')]},'firstMsgDirection':{'type':Sequelize[_0x0f36('0x5')]('in',_0x0f36('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x0f36('0x3')]},'lastMsgDirection':{'type':Sequelize[_0x0f36('0x5')]('in',_0x0f36('0x6')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x0f36('0x7')],'defaultValue':![]}};
\ No newline at end of file
+var _0xb0df=['moment','exports','BOOLEAN','DATE','STRING','ENUM','out'];(function(_0x3becce,_0x3d4ce4){var _0xab18fd=function(_0x401fab){while(--_0x401fab){_0x3becce['push'](_0x3becce['shift']());}};_0xab18fd(++_0x3d4ce4);}(_0xb0df,0x85));var _0xfb0d=function(_0x460fd7,_0x2012db){_0x460fd7=_0x460fd7-0x0;var _0x44d1c2=_0xb0df[_0x460fd7];return _0x44d1c2;};'use strict';var Sequelize=require('sequelize');var moment=require(_0xfb0d('0x0'));module[_0xfb0d('0x1')]={'closed':{'type':Sequelize[_0xfb0d('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xfb0d('0x3')]},'disposition':{'type':Sequelize[_0xfb0d('0x4')]},'secondDisposition':{'type':Sequelize[_0xfb0d('0x4')]},'thirdDisposition':{'type':Sequelize[_0xfb0d('0x4')]},'note':{'type':Sequelize[_0xfb0d('0x4')]},'phone':{'type':Sequelize[_0xfb0d('0x4')]},'read1stAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0xfb0d('0x5')]('in',_0xfb0d('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0xfb0d('0x6')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0xfb0d('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9879=['ui.SmsInteractionId','user_has_sms_interactions','left_join','users','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','a.id\x20=\x20i.SmsAccountId','sms_messages','me.SmsInteractionId\x20=\x20i.id','it.SmsInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','buildExpression','type','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','UserId','body','keys','compact','isEmpty','SmsAccountId','concat','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','filter','isNumeric','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','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','t.id\x20IN\x20?','resolve','i.SmsAccountId\x20IS\x20NOT\x20NULL','role','agent','user','getSmsAccounts','i.SmsAccountId\x20IN\x20?','sequelize','toString','count','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','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','c.fax','o.fullname','Owner.fullname','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','SmsInteractionId','all','rows','show','includeAll','include','options','create','params','describe','addMessage','SmsMessage','ids','omit','findOne','$gte','format','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','setTags','emit','smsInteractionTags:save','removeTags','root','server','tmp','files','attachments','join','push','fullname','CmContact','firstName','lastName','Messages','createdAt','direction','secret','SmsAccount','Account','get','mkdirSync','Sms','Owner','N.A.','closed','closedAt','disposition','out','System','Contact','renderFile','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','download','unlinkSync','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','ioredis','../../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','defaults','redis','localhost','socket.io-emitter','./smsInteraction.socket','register','sendStatus','status','json','offset','undefined','limit','set','Content-Range','reject','save','update','destroy','then','end','error','stack','send','Users','TagIds','Tags','split','forEach','catch','index','map','SmsInteraction','rawAttributes','fieldName','key','model','name','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','select','from','tools_tags','field','u.fullname'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x9879,0x98));var _0x9987=function(_0x300fad,_0xe52b9b){_0x300fad=_0x300fad-0x0;var _0x590f0b=_0x9879[_0x300fad];return _0x590f0b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9987('0x0'));var zipdir=require(_0x9987('0x1'));var jsonpatch=require(_0x9987('0x2'));var rp=require(_0x9987('0x3'));var moment=require(_0x9987('0x4'));var BPromise=require(_0x9987('0x5'));var Mustache=require(_0x9987('0x6'));var util=require(_0x9987('0x7'));var path=require(_0x9987('0x8'));var sox=require(_0x9987('0x9'));var csv=require(_0x9987('0xa'));var ejs=require(_0x9987('0xb'));var fs=require('fs');var fs_extra=require(_0x9987('0xc'));var _=require(_0x9987('0xd'));var squel=require(_0x9987('0xe'));var crypto=require('crypto');var jsforce=require(_0x9987('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x9987('0x10'));var Papa=require('papaparse');var Redis=require(_0x9987('0x11'));var authService=require(_0x9987('0x12'));var qs=require(_0x9987('0x13'));var as=require(_0x9987('0x14'));var pdf=require(_0x9987('0x15'));var hardwareService=require(_0x9987('0x16'));var logger=require(_0x9987('0x17'))(_0x9987('0x18'));var utils=require(_0x9987('0x19'));var config=require(_0x9987('0x1a'));var licenseUtil=require(_0x9987('0x1b'));var db=require(_0x9987('0x1c'))['db'];config['redis']=_[_0x9987('0x1d')](config[_0x9987('0x1e')],{'host':_0x9987('0x1f'),'port':0x18eb});var socket=require(_0x9987('0x20'))(new Redis(config[_0x9987('0x1e')]));require(_0x9987('0x21'))[_0x9987('0x22')](socket);function respondWithStatusCode(_0x1b04a1,_0x3e50bb){_0x3e50bb=_0x3e50bb||0xcc;return function(_0x1fcddb){if(_0x1fcddb){return _0x1b04a1[_0x9987('0x23')](_0x3e50bb);}return _0x1b04a1[_0x9987('0x24')](_0x3e50bb)['end']();};}function respondWithResult(_0x5db9c3,_0x311f37){_0x311f37=_0x311f37||0xc8;return function(_0x3442c3){if(_0x3442c3){return _0x5db9c3[_0x9987('0x24')](_0x311f37)[_0x9987('0x25')](_0x3442c3);}};}function respondWithFilteredResult(_0x26f12a,_0x563b33){return function(_0x244f18){if(_0x244f18){var _0x30cef2=typeof _0x563b33[_0x9987('0x26')]===_0x9987('0x27')&&typeof _0x563b33[_0x9987('0x28')]===_0x9987('0x27');var _0x3488bb=_0x244f18['count'];var _0x2af7eb=_0x30cef2?0x0:_0x563b33[_0x9987('0x26')];var _0x5c4035=_0x30cef2?_0x244f18['count']:_0x563b33[_0x9987('0x26')]+_0x563b33['limit'];var _0x522a3e;if(_0x5c4035>=_0x3488bb){_0x5c4035=_0x3488bb;_0x522a3e=0xc8;}else{_0x522a3e=0xce;}_0x26f12a[_0x9987('0x24')](_0x522a3e);return _0x26f12a[_0x9987('0x29')](_0x9987('0x2a'),_0x2af7eb+'-'+_0x5c4035+'/'+_0x3488bb)[_0x9987('0x25')](_0x244f18);}return null;};}function patchUpdates(_0x3dacb0){return function(_0x3d9a7b){try{jsonpatch['apply'](_0x3d9a7b,_0x3dacb0,!![]);}catch(_0x3c62e4){return BPromise[_0x9987('0x2b')](_0x3c62e4);}return _0x3d9a7b[_0x9987('0x2c')]();};}function saveUpdates(_0x36b44a,_0x4deb17){return function(_0x450fe4){if(_0x450fe4){return _0x450fe4[_0x9987('0x2d')](_0x36b44a)['then'](function(_0x5ebf79){return _0x5ebf79;});}return null;};}function removeEntity(_0x27fa51,_0x41b591){return function(_0x5de1d0){if(_0x5de1d0){return _0x5de1d0[_0x9987('0x2e')]()[_0x9987('0x2f')](function(){_0x27fa51[_0x9987('0x24')](0xcc)[_0x9987('0x30')]();});}};}function handleEntityNotFound(_0x410507,_0x77506b){return function(_0xf20f38){if(!_0xf20f38){_0x410507[_0x9987('0x23')](0x194);}return _0xf20f38;};}function handleError(_0x526879,_0x5a86d2){_0x5a86d2=_0x5a86d2||0x1f4;return function(_0x3606cd){logger[_0x9987('0x31')](_0x3606cd[_0x9987('0x32')]);if(_0x3606cd['name']){delete _0x3606cd['name'];}_0x526879[_0x9987('0x24')](_0x5a86d2)[_0x9987('0x33')](_0x3606cd);};}function getInteractionUsers(_0x38a304,_0x3807e5){return new BPromise(function(_0xbc3df4,_0x50790d){try{if(_0x3807e5[_0x38a304['id']]){_0x38a304[_0x9987('0x34')]=_['map'](_0x3807e5[_0x38a304['id']],function(_0x585969){return{'id':_0x585969['id'],'fullname':_0x585969['fullname']};});}}catch(_0x37056e){_0x50790d(_0x37056e);}_0xbc3df4(_0x38a304);});}function getInteractionTags(_0x300842,_0x3971c7){return new BPromise(function(_0x3de042,_0x165309){try{if(_0x300842[_0x9987('0x35')]){_0x300842[_0x9987('0x36')]=[];_0x300842[_0x9987('0x35')][_0x9987('0x37')](',')[_0x9987('0x38')](function(_0x21d449){_0x300842[_0x9987('0x36')]['push'](_0x3971c7[_0x21d449]);});}delete _0x300842[_0x9987('0x35')];}catch(_0x3e1ab7){_0x165309(_0x3e1ab7);}_0x3de042(_0x300842);});}function updateSmsInteraction(_0x10cc1a,_0x19d7f7,_0x28feeb){return new BPromise(function(_0x296166,_0xe426dc){return getInteractionUsers(_0x10cc1a,_0x28feeb)['then'](function(_0x1580c1){return getInteractionTags(_0x1580c1,_0x19d7f7);})[_0x9987('0x2f')](function(_0x2b8244){_0x296166(_0x2b8244);})[_0x9987('0x39')](function(_0x3f1369){_0xe426dc(_0x3f1369);});});}exports[_0x9987('0x3a')]=function(_0x18a146,_0x48fee2){var _0x4c02e1={},_0x563c15={},_0x3a8714={'count':0x0,'rows':[]};var _0x2c6e1d=_[_0x9987('0x3b')](db[_0x9987('0x3c')][_0x9987('0x3d')],function(_0x1160da){return{'name':_0x1160da[_0x9987('0x3e')],'type':_0x1160da['type'][_0x9987('0x3f')]};});_0x563c15[_0x9987('0x40')]=_['map'](_0x2c6e1d,_0x9987('0x41'));_0x563c15[_0x9987('0x42')]=_['keys'](_0x18a146[_0x9987('0x42')]);_0x563c15[_0x9987('0x43')]=_['intersection'](_0x563c15[_0x9987('0x40')],_0x563c15[_0x9987('0x42')]);_0x4c02e1[_0x9987('0x44')]=_[_0x9987('0x45')](_0x563c15['model'],qs['fields'](_0x18a146[_0x9987('0x42')][_0x9987('0x46')]));_0x4c02e1['attributes']=_0x4c02e1[_0x9987('0x44')][_0x9987('0x47')]?_0x4c02e1[_0x9987('0x44')]:_0x563c15[_0x9987('0x40')];if(!_0x18a146[_0x9987('0x42')][_0x9987('0x48')](_0x9987('0x49'))){_0x4c02e1[_0x9987('0x28')]=qs['limit'](_0x18a146[_0x9987('0x42')][_0x9987('0x28')]);_0x4c02e1['offset']=qs[_0x9987('0x26')](_0x18a146['query'][_0x9987('0x26')]);}_0x4c02e1[_0x9987('0x4a')]=qs[_0x9987('0x4b')](_0x18a146[_0x9987('0x42')][_0x9987('0x4b')]);_0x4c02e1[_0x9987('0x4c')]=qs['filters'](_[_0x9987('0x4d')](_0x18a146['query'],_0x563c15[_0x9987('0x43')]),_0x2c6e1d);var _0x1c0d06=[];var _0xa5ca09=squel[_0x9987('0x4e')]()['field']('id')['field'](_0x9987('0x41'))['field']('color')[_0x9987('0x4f')](_0x9987('0x50'));var _0x234f2f=squel['select']()[_0x9987('0x51')]('u.id')[_0x9987('0x51')](_0x9987('0x52'))['field'](_0x9987('0x53'))[_0x9987('0x4f')](_0x9987('0x54'),'ui')[_0x9987('0x55')](_0x9987('0x56'),'u','u.id\x20=\x20ui.UserId');var _0xa783ef=squel['select']()[_0x9987('0x4f')]('sms_interactions','i')[_0x9987('0x55')]('cm_contacts','c',_0x9987('0x57'))['left_join'](_0x9987('0x56'),'o',_0x9987('0x58'))[_0x9987('0x55')]('sms_accounts','a',_0x9987('0x59'))['left_join'](_0x9987('0x5a'),'me',_0x9987('0x5b'))[_0x9987('0x55')]('sms_interaction_has_tags','it',_0x9987('0x5c'))[_0x9987('0x55')](_0x9987('0x50'),'t',_0x9987('0x5d'));var _0x3819fd=squel['expr']();var _0x99f0e6=[];var _0x3329fe=squel[_0x9987('0x5e')]();var _0xcb87ce;if(_0x18a146[_0x9987('0x42')]['search']){_0xcb87ce=as[_0x9987('0x5f')](_0x18a146[_0x9987('0x42')]['search']);var _0x1bf6eb=_0xcb87ce[_0x9987('0x60')];for(var _0x248cca=0x0;_0x248cca<_0xcb87ce[_0x9987('0x61')][_0x9987('0x47')];_0x248cca++){var _0x563b4b=_0xcb87ce[_0x9987('0x61')][_0x248cca];var _0x358061='i';var _0x260102=_[_0x9987('0x62')](_0x2c6e1d,[_0x9987('0x41'),_0x563b4b[_0x9987('0x51')]]);if(!_0x260102){switch(_0x563b4b[_0x9987('0x51')]){case _0x9987('0x63'):if(_0x563b4b[_0x9987('0x64')]==0x1){_0xa783ef[_0x9987('0x65')]('`'+_0x563b4b[_0x9987('0x51')]+_0x9987('0x66'));}else{_0xa783ef[_0x9987('0x65')]('`'+_0x563b4b[_0x9987('0x51')]+_0x9987('0x67'));}break;case'Contact':if(_0x563b4b[_0x9987('0x68')]===_0x9987('0x69')){if(_0x563b4b['value'][_0x9987('0x37')]('\x20')['length']>0x1){_0x3819fd[_0x1bf6eb](_0x9987('0x6a'),qs[_0x9987('0x6b')](_0x563b4b[_0x9987('0x64')]),null);}else{var _0x34dbbd='%'+_0x563b4b[_0x9987('0x64')]+'%';_0x3819fd[_0x1bf6eb]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x34dbbd,_0x34dbbd,_0x34dbbd);}}else{_0x260102=_[_0x9987('0x62')](_0x2c6e1d,[_0x9987('0x41'),'ContactId']);_0x563b4b[_0x9987('0x51')]='ContactId';_0x221882=as[_0x9987('0x6c')](_0x358061,_0x260102[_0x9987('0x6d')],_0x563b4b);_0x3819fd[_0x1bf6eb](_0x221882[_0x9987('0x6e')],_0x221882['value'][_0x9987('0x6f')],_0x221882[_0x9987('0x64')][_0x9987('0x30')]);}break;case _0x9987('0x70'):var _0x256b9e=_0x563b4b[_0x9987('0x64')][_0x9987('0x37')](',')[_0x9987('0x3b')](function(_0x1b9f7a){return Number(_0x1b9f7a);});_0x256b9e['forEach'](function(_0x1f0cab){_0x3329fe['or'](_0x9987('0x71'),'%,'+_0x1f0cab+',%');});_0x99f0e6=_[_0x9987('0x72')](_0x99f0e6,_0x256b9e);break;case _0x9987('0x73'):if(_0x563b4b[_0x9987('0x68')]==='$substring'){_0x3819fd[_0x1bf6eb]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x563b4b[_0x9987('0x64')]+'%',null);}else{_0x260102=_[_0x9987('0x62')](_0x2c6e1d,[_0x9987('0x41'),_0x9987('0x74')]);_0x563b4b['field']=_0x9987('0x74');_0x221882=as['buildExpression'](_0x358061,_0x260102[_0x9987('0x6d')],_0x563b4b);_0x3819fd[_0x1bf6eb](_0x221882[_0x9987('0x6e')],_0x221882[_0x9987('0x64')]['start'],_0x221882[_0x9987('0x64')]['end']);}break;case _0x9987('0x75'):_0x221882=as[_0x9987('0x6c')]('me',null,_0x563b4b);_0x3819fd[_0x1bf6eb](_0x221882[_0x9987('0x6e')],_0x221882[_0x9987('0x64')][_0x9987('0x6f')],_0x221882[_0x9987('0x64')]['end']);break;}}else{var _0x221882=as['buildExpression'](_0x358061,_0x260102[_0x9987('0x6d')],_0x563b4b);_0x3819fd[_0x1bf6eb](_0x221882[_0x9987('0x6e')],_0x221882[_0x9987('0x64')][_0x9987('0x6f')],_0x221882[_0x9987('0x64')][_0x9987('0x30')]);}}}else{var _0xda0ec=_(_0x18a146[_0x9987('0x42')])[_0x9987('0x76')]()[_0x9987('0x3b')](function(_0x27abaf){return _['some'](_0x2c6e1d,[_0x9987('0x41'),_0x27abaf])?_0x27abaf:undefined;})[_0x9987('0x77')]()['value']();if(!_[_0x9987('0x78')](_0xda0ec)){_0xda0ec[_0x9987('0x38')](function(_0x38f8ee){if(_0x38f8ee===_0x9987('0x79')){_0xa783ef[_0x9987('0x4c')]('i.SmsAccountId\x20IN\x20?',[][_0x9987('0x7a')](_0x18a146['query'][_0x38f8ee]));}else if(_0x38f8ee==='createdAt'){var _0x6330e2=JSON['parse'](_0x18a146['query'][_0x38f8ee])['$gte'];var _0x2eff89=JSON['parse'](_0x18a146[_0x9987('0x42')][_0x38f8ee])['$lte'];_0xa783ef[_0x9987('0x4c')](_0x9987('0x7b'),_0x6330e2,_0x2eff89);}else{if(_0x18a146[_0x9987('0x42')][_0x38f8ee]===_0x9987('0x7c')){_0xa783ef[_0x9987('0x4c')]('i.'+_0x38f8ee+_0x9987('0x7d'));}else{_0xa783ef[_0x9987('0x4c')]('i.'+_0x38f8ee+_0x9987('0x7e'),_0x18a146[_0x9987('0x42')][_0x38f8ee]);}}});}if(_0x18a146[_0x9987('0x42')][_0x9987('0x7f')]){if(_0x18a146[_0x9987('0x42')][_0x9987('0x7f')]==0x1){_0xa783ef['having']('`unreadMessages`\x20=\x200');}else{_0xa783ef['having'](_0x9987('0x80'));}}if(_0x18a146[_0x9987('0x42')][_0x9987('0x81')]){_0x99f0e6=_[_0x9987('0x82')](_0x18a146['query'][_0x9987('0x81')])?_0x18a146[_0x9987('0x42')][_0x9987('0x81')]:new Array(_0x18a146[_0x9987('0x42')][_0x9987('0x81')]);_0x99f0e6[_0x9987('0x38')](function(_0x3929da){_0x3329fe['or'](_0x9987('0x71'),'%,'+_0x3929da+',%');});}if(_0x18a146['query'][_0x9987('0x83')]){var _0x53d29d=_0x18a146['query'][_0x9987('0x83')]['replace']('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x9987('0x84')](_0x53d29d)){_0x3819fd['or'](_0x9987('0x85'),_0x53d29d+'%')['or'](_0x9987('0x86'),_0x53d29d+'%');}else{_0x3819fd['or'](_0x9987('0x87'),qs['getFullTextValue'](_0x53d29d))['or'](_0x9987('0x88'),_0x53d29d+'%');}}}_0xa783ef[_0x9987('0x4c')](_0x3819fd);_0xa783ef[_0x9987('0x89')](_0x9987('0x8a'));var _0x57fcb1={'type':db[_0x9987('0x8b')]['QueryTypes'][_0x9987('0x8c')],'raw':!![]};var _0x542550=_0xa783ef['clone']();_0x542550[_0x9987('0x51')]('i.id');_0x542550['field'](_0x9987('0x8d'),_0x9987('0x63'));if(_0x4c02e1[_0x9987('0x4a')]){_0x4c02e1['order'][_0x9987('0x38')](function(_0xf86986){var _0x710f5d=_0xf86986[0x0]===_0x9987('0x8e')?_0xf86986[0x0]:'i.'+_0xf86986[0x0];_0xa783ef[_0x9987('0x4a')](_0x710f5d,_0xf86986[0x1]===_0x9987('0x8f')?![]:!![]);});}if(!_[_0x9987('0x78')](_0x99f0e6)){_0xa783ef['having'](_0x3329fe);_0x542550[_0x9987('0x4c')](_0x9987('0x90'),_0x99f0e6);}BPromise[_0x9987('0x91')]()[_0x9987('0x2f')](function(){if(!_0xcb87ce){if(_0x18a146[_0x9987('0x42')][_0x9987('0x79')])return;_0x542550[_0x9987('0x4c')](_0x9987('0x92'));_0xa783ef[_0x9987('0x4c')]('i.SmsAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x18a146['user'][_0x9987('0x93')]!==_0x9987('0x94'))return;return _0x18a146[_0x9987('0x95')][_0x9987('0x96')]({'attributes':['id'],'raw':!![]})[_0x9987('0x2f')](function(_0x4084ad){if(_[_0x9987('0x78')](_0x4084ad)){_0x542550[_0x9987('0x4c')]('i.SmsAccountId\x20IS\x20NULL');_0xa783ef[_0x9987('0x4c')]('i.SmsAccountId\x20IS\x20NULL');}else{_0x542550[_0x9987('0x4c')]('i.SmsAccountId\x20IN\x20?',_[_0x9987('0x3b')](_0x4084ad,'id'));_0xa783ef[_0x9987('0x4c')](_0x9987('0x97'),_['map'](_0x4084ad,'id'));}});})[_0x9987('0x2f')](function(){if(_0x18a146['user'][_0x9987('0x93')]===_0x9987('0x94')&&!_0xcb87ce&&!_0x18a146['query'][_0x9987('0x79')])return[];return db[_0x9987('0x98')][_0x9987('0x42')](_0x542550[_0x9987('0x99')](),_0x57fcb1);})[_0x9987('0x2f')](function(_0x817d55){_0x3a8714[_0x9987('0x9a')]=_0x817d55[_0x9987('0x47')];if(_0x3a8714[_0x9987('0x9a')]===0x0)return[];return db[_0x9987('0x98')]['query'](_0xa5ca09[_0x9987('0x99')](),_0x57fcb1)[_0x9987('0x2f')](function(_0x4a1821){_0x1c0d06=_['keyBy'](_0x4a1821,'id');_0x57fcb1=_[_0x9987('0x9b')](_0x57fcb1,{'model':db[_0x9987('0x3c')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x18a146[_0x9987('0x42')][_0x9987('0x46')]){_0x4c02e1[_0x9987('0x44')][_0x9987('0x38')](function(_0x3059ce){_0xa783ef[_0x9987('0x51')]('i.'+_0x3059ce);});}else{_0xa783ef[_0x9987('0x51')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages');_0xa783ef[_0x9987('0x51')](_0x9987('0x9c'),_0x9987('0x9d'));_0xa783ef[_0x9987('0x51')](_0x9987('0x9e'),_0x9987('0x9f'));_0xa783ef['field'](_0x9987('0xa0'),_0x9987('0x8e'));_0xa783ef[_0x9987('0x51')](_0x9987('0xa1'));_0xa783ef['field'](_0x9987('0xa2'),'Contact.firstName');_0xa783ef[_0x9987('0x51')](_0x9987('0xa3'),_0x9987('0xa4'));_0xa783ef[_0x9987('0x51')](_0x9987('0xa5'),_0x9987('0xa6'));_0xa783ef['field'](_0x9987('0xa7'),_0x9987('0xa8'));_0xa783ef[_0x9987('0x51')](_0x9987('0xa9'),'Contact.mobile');_0xa783ef['field'](_0x9987('0xaa'),'Contact.fax');_0xa783ef[_0x9987('0x51')](_0x9987('0xab'),_0x9987('0xac'));_0xa783ef[_0x9987('0x51')]('o.internal','Owner.internal');_0xa783ef[_0x9987('0x51')](_0x9987('0xad'),_0x9987('0x35'));}if(_0x4c02e1[_0x9987('0x28')])_0xa783ef[_0x9987('0x28')](_0x4c02e1['limit']);if(_0x4c02e1[_0x9987('0x26')])_0xa783ef['offset'](_0x4c02e1[_0x9987('0x26')]);return db[_0x9987('0x98')][_0x9987('0x42')](_0xa783ef[_0x9987('0x99')](),_0x57fcb1);})['then'](function(_0x6c73e1){if(_0x6c73e1[_0x9987('0x47')]>0x0)_0x234f2f['where'](_0x9987('0xae'),_['map'](_0x6c73e1,'id'));return db[_0x9987('0x98')][_0x9987('0x42')](_0x234f2f['toString'](),_0x57fcb1)[_0x9987('0x2f')](function(_0x302de2){var _0x1e04a0=_[_0x9987('0xaf')](_0x302de2,_0x9987('0xb0'));var _0x5d3274=[];_0x6c73e1['forEach'](function(_0x152941){_0x5d3274['push'](updateSmsInteraction(_0x152941,_0x1c0d06,_0x1e04a0));});return BPromise[_0x9987('0xb1')](_0x5d3274);});});})[_0x9987('0x2f')](function(_0x574854){_0x3a8714[_0x9987('0xb2')]=_0x574854;return _0x3a8714;})[_0x9987('0x2f')](respondWithFilteredResult(_0x48fee2,_0x4c02e1))['catch'](handleError(_0x48fee2,null));};exports[_0x9987('0xb3')]=function(_0x5e8fb2,_0x970f7c){var _0xebbfdb={'raw':![],'where':{'id':_0x5e8fb2['params']['id']}},_0x37f53c={};_0x37f53c[_0x9987('0x40')]=_['keys'](db[_0x9987('0x3c')][_0x9987('0x3d')]);_0x37f53c[_0x9987('0x42')]=_[_0x9987('0x76')](_0x5e8fb2['query']);_0x37f53c[_0x9987('0x43')]=_['intersection'](_0x37f53c[_0x9987('0x40')],_0x37f53c[_0x9987('0x42')]);_0xebbfdb[_0x9987('0x44')]=_[_0x9987('0x45')](_0x37f53c[_0x9987('0x40')],qs['fields'](_0x5e8fb2[_0x9987('0x42')]['fields']));_0xebbfdb[_0x9987('0x44')]=_0xebbfdb[_0x9987('0x44')]['length']?_0xebbfdb[_0x9987('0x44')]:_0x37f53c[_0x9987('0x40')];if(_0x5e8fb2[_0x9987('0x42')][_0x9987('0xb4')]){_0xebbfdb[_0x9987('0xb5')]=[{'all':!![]}];}_0xebbfdb=_['merge']({},_0xebbfdb,_0x5e8fb2[_0x9987('0xb6')]);return db[_0x9987('0x3c')][_0x9987('0x62')](_0xebbfdb)[_0x9987('0x2f')](handleEntityNotFound(_0x970f7c,null))[_0x9987('0x2f')](respondWithResult(_0x970f7c,null))[_0x9987('0x39')](handleError(_0x970f7c,null));};exports[_0x9987('0xb7')]=function(_0x459733,_0x479d2c){return db[_0x9987('0x3c')][_0x9987('0xb7')](_0x459733[_0x9987('0x75')],{})[_0x9987('0x2f')](respondWithResult(_0x479d2c,0xc9))[_0x9987('0x39')](handleError(_0x479d2c,null));};exports[_0x9987('0x2d')]=function(_0x24004d,_0x102346){if(_0x24004d[_0x9987('0x75')]['id']){delete _0x24004d[_0x9987('0x75')]['id'];}return db['SmsInteraction'][_0x9987('0x62')]({'where':{'id':_0x24004d[_0x9987('0xb8')]['id']}})[_0x9987('0x2f')](handleEntityNotFound(_0x102346,null))[_0x9987('0x2f')](saveUpdates(_0x24004d['body'],null))[_0x9987('0x2f')](respondWithResult(_0x102346,null))[_0x9987('0x39')](handleError(_0x102346,null));};exports['destroy']=function(_0x26cc9c,_0x5ced9f){return db['SmsInteraction'][_0x9987('0x62')]({'where':{'id':_0x26cc9c['params']['id']}})[_0x9987('0x2f')](handleEntityNotFound(_0x5ced9f,null))[_0x9987('0x2f')](removeEntity(_0x5ced9f,null))[_0x9987('0x39')](handleError(_0x5ced9f,null));};exports[_0x9987('0xb9')]=function(_0x4f90e6,_0x537311){return db['SmsInteraction'][_0x9987('0xb9')]()[_0x9987('0x2f')](respondWithResult(_0x537311,null))['catch'](handleError(_0x537311,null));};exports[_0x9987('0xba')]=function(_0x5e7e73,_0x42343c,_0x2474b2){return db[_0x9987('0xbb')]['find']({'where':{'id':_0x5e7e73[_0x9987('0xb8')]['id']}})[_0x9987('0x2f')](handleEntityNotFound(_0x42343c,null))[_0x9987('0x2f')](function(_0x52ecfe){if(_0x52ecfe){return _0x52ecfe['addMessage'](_0x5e7e73[_0x9987('0x75')][_0x9987('0xbc')],_[_0x9987('0xbd')](_0x5e7e73[_0x9987('0x75')],[_0x9987('0xbc'),'id'])||{});}})[_0x9987('0x2f')](respondWithResult(_0x42343c,null))[_0x9987('0x39')](handleError(_0x42343c,null));};exports['getMessages']=function(_0x2b902c,_0x537114,_0x8c0711){var _0x427966={'raw':![],'where':{}};var _0x757f20={};var _0x50a310={'count':0x0,'rows':[]};return db[_0x9987('0x3c')][_0x9987('0xbe')]({'where':{'id':_0x2b902c[_0x9987('0xb8')]['id']}})[_0x9987('0x2f')](handleEntityNotFound(_0x537114,null))[_0x9987('0x2f')](function(_0xbb3716){if(_0xbb3716){_0x757f20['model']=_[_0x9987('0x76')](db[_0x9987('0xbb')]['rawAttributes']);_0x757f20[_0x9987('0x42')]=_[_0x9987('0x76')](_0x2b902c[_0x9987('0x42')]);_0x757f20[_0x9987('0x43')]=_['intersection'](_0x757f20[_0x9987('0x40')],_0x757f20[_0x9987('0x42')]);_0x427966['attributes']=_[_0x9987('0x45')](_0x757f20[_0x9987('0x40')],qs[_0x9987('0x46')](_0x2b902c[_0x9987('0x42')]['fields']));_0x427966['attributes']=_0x427966['attributes'][_0x9987('0x47')]?_0x427966[_0x9987('0x44')]:_0x757f20['model'];if(!_0x2b902c[_0x9987('0x42')]['hasOwnProperty']('nolimit')){_0x427966[_0x9987('0x28')]=qs['limit'](_0x2b902c['query'][_0x9987('0x28')]);_0x427966[_0x9987('0x26')]=qs['offset'](_0x2b902c[_0x9987('0x42')]['offset']);}_0x427966['order']=qs['sort'](_0x2b902c['query'][_0x9987('0x4b')]);_0x427966['where']=qs[_0x9987('0x43')](_[_0x9987('0x4d')](_0x2b902c[_0x9987('0x42')],_0x757f20['filters']));_0x427966[_0x9987('0x4c')][_0x9987('0xb0')]=_0xbb3716['id'];if(_0x2b902c[_0x9987('0x42')]['filter']){_0x427966[_0x9987('0x4c')]=_[_0x9987('0x9b')](_0x427966['where'],{'$or':_[_0x9987('0x3b')](_0x427966[_0x9987('0x44')],function(_0x355242){var _0x4de4d7={};_0x4de4d7[_0x355242]={'$like':'%'+_0x2b902c['query']['filter']+'%'};return _0x4de4d7;})});}if(_0x2b902c['query']['$gte']){var _0x4b4db0=_0x2b902c['query'][_0x9987('0xbf')][_0x9987('0x37')](',');var _0x2b841e={};_0x2b841e[_0x4b4db0[0x0]]={'$gte':moment(_0x4b4db0[0x1])[_0x9987('0xc0')](_0x9987('0xc1'))};_0x427966['where']=_['merge'](_0x427966['where'],_0x2b841e);}_0x427966=_[_0x9987('0x9b')]({},_0x427966,_0x2b902c[_0x9987('0xb6')]);return db[_0x9987('0xbb')][_0x9987('0x9a')]({'where':_0x427966[_0x9987('0x4c')]})[_0x9987('0x2f')](function(_0x245437){_0x50a310[_0x9987('0x9a')]=_0x245437;if(_0x2b902c[_0x9987('0x42')]['includeAll']){_0x427966[_0x9987('0xb5')]=[{'all':!![]}];}return db[_0x9987('0xbb')][_0x9987('0xc2')](_0x427966);})[_0x9987('0x2f')](function(_0x3f1adb){_0x50a310['rows']=_0x3f1adb;return _0x50a310;});}})['then'](respondWithFilteredResult(_0x537114,_0x427966))[_0x9987('0x39')](handleError(_0x537114,null));};exports[_0x9987('0xc3')]=function(_0x2b8c7c,_0x4cf58b,_0x34df9f){return db[_0x9987('0x3c')][_0x9987('0x62')]({'where':{'id':_0x2b8c7c['params']['id']}})[_0x9987('0x2f')](handleEntityNotFound(_0x4cf58b,null))[_0x9987('0x2f')](function(_0xb631d1){if(_0xb631d1){return _0xb631d1[_0x9987('0xc4')](_0x2b8c7c[_0x9987('0x75')][_0x9987('0xbc')],_[_0x9987('0xbd')](_0x2b8c7c[_0x9987('0x75')],[_0x9987('0xbc'),'id'])||{})['spread'](function(){return db['Tag'][_0x9987('0xc2')]({'attributes':['id',_0x9987('0x41'),'color'],'where':{'id':_0x2b8c7c[_0x9987('0x75')]['ids']}});})[_0x9987('0x2f')](function(_0x5f2d67){socket[_0x9987('0xc5')](_0x9987('0xc6'),{'id':Number(_0x2b8c7c[_0x9987('0xb8')]['id']),'tags':_0x5f2d67||[]});return{'id':Number(_0x2b8c7c['params']['id']),'tags':_0x5f2d67||[]};});}})[_0x9987('0x2f')](respondWithResult(_0x4cf58b,null))[_0x9987('0x39')](handleError(_0x4cf58b,null));};exports['removeTags']=function(_0x169ab5,_0x2bb17c,_0x366261){return db[_0x9987('0x3c')]['find']({'where':{'id':_0x169ab5[_0x9987('0xb8')]['id']}})['then'](handleEntityNotFound(_0x2bb17c,null))[_0x9987('0x2f')](function(_0x45eae5){if(_0x45eae5){return _0x45eae5[_0x9987('0xc7')](_0x169ab5[_0x9987('0x42')][_0x9987('0xbc')]);}})['then'](respondWithStatusCode(_0x2bb17c,null))['catch'](handleError(_0x2bb17c,null));};exports['download']=function(_0x24c499,_0x18637a){var _0x405e5a=moment()['unix']()[_0x9987('0x99')]();var _0x45c886=path['join'](config[_0x9987('0xc8')],_0x9987('0xc9'),'files',_0x9987('0xca'));var _0x26cce5=path['join'](config[_0x9987('0xc8')],_0x9987('0xc9'),_0x9987('0xcb'),_0x9987('0xcc'));var _0x45e0cf=path[_0x9987('0xcd')](_0x45c886,_0x405e5a);var _0x56b92e=util[_0x9987('0xc0')]('transcript-%d-%s.zip',_0x24c499[_0x9987('0xb8')]['id'],_0x405e5a);var _0x380b1c=path[_0x9987('0xcd')](_0x45c886,_0x56b92e);var _0x5b8761=[];_0x5b8761[_0x9987('0xce')]({'model':db['User'],'as':_0x9987('0x73'),'attributes':['id',_0x9987('0xcf')],'raw':!![]});_0x5b8761[_0x9987('0xce')]({'model':db[_0x9987('0xd0')],'as':'Contact','attributes':['id',_0x9987('0xd1'),_0x9987('0xd2')],'raw':!![]});var _0x149d65=[{'model':db[_0x9987('0xbb')],'as':_0x9987('0xd3'),'attributes':['id',_0x9987('0x75'),_0x9987('0xd4'),_0x9987('0xd5'),_0x9987('0xd6'),_0x9987('0x7f')],'include':_0x5b8761}];_0x149d65[_0x9987('0xce')]({'model':db[_0x9987('0xd7')],'as':_0x9987('0xd8'),'attributes':['id',_0x9987('0x41')]});_0x149d65[_0x9987('0xce')]({'model':db['User'],'as':'Owner','attributes':['id','fullname']});return db['SmsInteraction']['find']({'where':{'id':_0x24c499['params']['id']},'include':_0x149d65})['then'](handleEntityNotFound(_0x18637a,null))['then'](function(_0x5117cf){if(_0x5117cf){var _0x21484f=_0x5117cf[_0x9987('0xd9')]({'plain':!![]});fs[_0x9987('0xda')](_0x45e0cf);var _0x35d17e={'channel':_0x9987('0xdb'),'account':_0x21484f[_0x9987('0xd8')]['name'],'agent':_0x21484f[_0x9987('0xdc')]?_0x21484f[_0x9987('0xdc')][_0x9987('0xcf')]:_0x9987('0xdd'),'createdAt':moment(_0x21484f[_0x9987('0xd4')])['format'](_0x9987('0xc1'))['toString'](),'closedAt':_0x21484f[_0x9987('0xde')]?moment(_0x21484f[_0x9987('0xdf')])[_0x9987('0xc0')](_0x9987('0xc1'))[_0x9987('0x99')]():'','disposition':_0x21484f[_0x9987('0xe0')],'messages':_(_0x21484f['Messages'])[_0x9987('0x83')]({'secret':![]})[_0x9987('0x3b')](function(_0x59e770){return{'date':moment(_0x59e770[_0x9987('0xd4')])['format'](_0x9987('0xc1'))[_0x9987('0x99')](),'sender':_0x59e770[_0x9987('0xd5')]===_0x9987('0xe1')?_0x59e770[_0x9987('0x73')]?_0x59e770['User'][_0x9987('0xcf')]:_0x9987('0xe2'):_0x59e770[_0x9987('0xe3')][_0x9987('0xd1')]+(_0x59e770['Contact'][_0x9987('0xd2')]?'\x20'+_0x59e770[_0x9987('0xe3')][_0x9987('0xd2')]:''),'body':_0x59e770[_0x9987('0x75')],'direction':_0x59e770['direction']===_0x9987('0xe1')?'A':'C','secret':_0x59e770[_0x9987('0xd6')],'read':_0x59e770[_0x9987('0x7f')]};})[_0x9987('0x64')]()};return ejs[_0x9987('0xe4')](path['join'](config['root'],_0x9987('0xc9'),'views',_0x9987('0xe5')),{'interaction':_0x35d17e})[_0x9987('0x2f')](function(_0x11e7b4){var _0x12341e=path[_0x9987('0xcd')](_0x45e0cf,_0x9987('0xe6')+_0x21484f['id']+'-'+_0x405e5a+_0x9987('0xe7'));var _0x127370={'path':_0x12341e,'channel':_0x9987('0xdb'),'interactionId':_0x21484f['id']};return pdf[_0x9987('0xe8')](_0x11e7b4,_0x127370);})['then'](function(){return new BPromise(function(_0x576139,_0x871be1){zipdir(_0x45e0cf,{'saveTo':_0x380b1c},function(_0x1ad92c,_0x203027){if(_0x1ad92c)return _0x871be1(_0x1ad92c);return _0x576139(_0x203027);});})['then'](function(){return new BPromise(function(_0x290f23,_0x307e88){rimraf(_0x45e0cf,function(_0x3e6525){if(_0x3e6525)_0x307e88(_0x3e6525);return _0x290f23();});});})[_0x9987('0x2f')](function(){return _0x18637a[_0x9987('0xe9')](_0x380b1c,_0x56b92e,function(_0x1b33fa){if(_0x1b33fa){console['log']('err',_0x1b33fa);}else{fs[_0x9987('0xea')](_0x380b1c);}});});});}else{return _0x18637a[_0x9987('0x23')](0xc8);}})[_0x9987('0x39')](handleError(_0x18637a,null));};
\ No newline at end of file
+var _0x269b=['redis','defaults','socket.io-emitter','./smsInteraction.socket','sendStatus','status','end','json','offset','undefined','count','limit','apply','reject','save','update','then','destroy','error','stack','name','send','Users','fullname','Tags','forEach','push','TagIds','catch','map','SmsInteraction','fieldName','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','field','from','u.id','u.fullname','ui.SmsInteractionId','user_has_sms_interactions','users','u.id\x20=\x20ui.UserId','sms_interactions','left_join','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','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','having','`\x20=\x200','`\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)','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','type','start','Tag','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','text','keys','some','compact','isEmpty','SmsAccountId','i.SmsAccountId\x20IN\x20?','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','Sequelize','QueryTypes','SELECT','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','resolve','i.SmsAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','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','c.lastName','Contact.lastName','c.email','Contact.email','Contact.phone','c.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','SmsInteractionId','all','rows','params','options','create','body','describe','SmsMessage','addMessage','ids','getMessages','findOne','rawAttributes','format','YYYY-MM-DD\x20HH:mm:ss','includeAll','include','addTags','omit','spread','findAll','emit','smsInteractionTags:save','removeTags','download','unix','join','root','files','tmp','server','attachments','transcript-%d-%s.zip','CmContact','firstName','lastName','Messages','direction','SmsAccount','Account','Owner','get','mkdirSync','N.A.','closed','disposition','out','System','renderFile','views','downloadInteraction.ejs','transcript-','Sms','log','err','unlinkSync','eml-format','zip-dir','request-promise','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0x41e922,_0x4c128c){var _0x2c69de=function(_0x148a44){while(--_0x148a44){_0x41e922['push'](_0x41e922['shift']());}};_0x2c69de(++_0x4c128c);}(_0x269b,0x1be));var _0xb269=function(_0x221abd,_0x621d76){_0x221abd=_0x221abd-0x0;var _0x47e399=_0x269b[_0x221abd];return _0x47e399;};'use strict';var emlformat=require(_0xb269('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb269('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb269('0x2'));var moment=require(_0xb269('0x3'));var BPromise=require(_0xb269('0x4'));var Mustache=require(_0xb269('0x5'));var util=require('util');var path=require(_0xb269('0x6'));var sox=require('sox');var csv=require(_0xb269('0x7'));var ejs=require(_0xb269('0x8'));var fs=require('fs');var fs_extra=require(_0xb269('0x9'));var _=require(_0xb269('0xa'));var squel=require(_0xb269('0xb'));var crypto=require(_0xb269('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xb269('0xd'));var toCsv=require(_0xb269('0x7'));var querystring=require('querystring');var Papa=require(_0xb269('0xe'));var Redis=require(_0xb269('0xf'));var authService=require(_0xb269('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xb269('0x11'));var pdf=require(_0xb269('0x12'));var hardwareService=require(_0xb269('0x13'));var logger=require(_0xb269('0x14'))(_0xb269('0x15'));var utils=require(_0xb269('0x16'));var config=require(_0xb269('0x17'));var licenseUtil=require(_0xb269('0x18'));var db=require(_0xb269('0x19'))['db'];config[_0xb269('0x1a')]=_[_0xb269('0x1b')](config[_0xb269('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0xb269('0x1c'))(new Redis(config[_0xb269('0x1a')]));require(_0xb269('0x1d'))['register'](socket);function respondWithStatusCode(_0x6805df,_0x598d05){_0x598d05=_0x598d05||0xcc;return function(_0x11e19){if(_0x11e19){return _0x6805df[_0xb269('0x1e')](_0x598d05);}return _0x6805df[_0xb269('0x1f')](_0x598d05)[_0xb269('0x20')]();};}function respondWithResult(_0x4ca81b,_0xafcf54){_0xafcf54=_0xafcf54||0xc8;return function(_0x33a8c6){if(_0x33a8c6){return _0x4ca81b[_0xb269('0x1f')](_0xafcf54)[_0xb269('0x21')](_0x33a8c6);}};}function respondWithFilteredResult(_0x379df4,_0x3486e0){return function(_0x3b64b8){if(_0x3b64b8){var _0x248f2c=typeof _0x3486e0[_0xb269('0x22')]===_0xb269('0x23')&&typeof _0x3486e0['limit']===_0xb269('0x23');var _0x2f6e62=_0x3b64b8[_0xb269('0x24')];var _0x3a66e6=_0x248f2c?0x0:_0x3486e0[_0xb269('0x22')];var _0x377889=_0x248f2c?_0x3b64b8[_0xb269('0x24')]:_0x3486e0[_0xb269('0x22')]+_0x3486e0[_0xb269('0x25')];var _0x5cfc7f;if(_0x377889>=_0x2f6e62){_0x377889=_0x2f6e62;_0x5cfc7f=0xc8;}else{_0x5cfc7f=0xce;}_0x379df4['status'](_0x5cfc7f);return _0x379df4['set']('Content-Range',_0x3a66e6+'-'+_0x377889+'/'+_0x2f6e62)[_0xb269('0x21')](_0x3b64b8);}return null;};}function patchUpdates(_0x45c8a1){return function(_0x8ab8ac){try{jsonpatch[_0xb269('0x26')](_0x8ab8ac,_0x45c8a1,!![]);}catch(_0x1d1d36){return BPromise[_0xb269('0x27')](_0x1d1d36);}return _0x8ab8ac[_0xb269('0x28')]();};}function saveUpdates(_0x435973,_0x47cf9e){return function(_0x17663a){if(_0x17663a){return _0x17663a[_0xb269('0x29')](_0x435973)[_0xb269('0x2a')](function(_0x2e553e){return _0x2e553e;});}return null;};}function removeEntity(_0x227152,_0x4a8a5e){return function(_0x1351d7){if(_0x1351d7){return _0x1351d7[_0xb269('0x2b')]()[_0xb269('0x2a')](function(){_0x227152[_0xb269('0x1f')](0xcc)[_0xb269('0x20')]();});}};}function handleEntityNotFound(_0x2ad98f,_0x1c2956){return function(_0xa1e619){if(!_0xa1e619){_0x2ad98f[_0xb269('0x1e')](0x194);}return _0xa1e619;};}function handleError(_0x1e0cda,_0x541745){_0x541745=_0x541745||0x1f4;return function(_0x57cc5e){logger[_0xb269('0x2c')](_0x57cc5e[_0xb269('0x2d')]);if(_0x57cc5e[_0xb269('0x2e')]){delete _0x57cc5e[_0xb269('0x2e')];}_0x1e0cda[_0xb269('0x1f')](_0x541745)[_0xb269('0x2f')](_0x57cc5e);};}function getInteractionUsers(_0x1493ae,_0x4d8600){return new BPromise(function(_0x45caca,_0x556a5){try{if(_0x4d8600[_0x1493ae['id']]){_0x1493ae[_0xb269('0x30')]=_['map'](_0x4d8600[_0x1493ae['id']],function(_0x15ac9c){return{'id':_0x15ac9c['id'],'fullname':_0x15ac9c[_0xb269('0x31')]};});}}catch(_0x44f799){_0x556a5(_0x44f799);}_0x45caca(_0x1493ae);});}function getInteractionTags(_0x54da59,_0x2cb5a0){return new BPromise(function(_0x2e4a3e,_0x3c9fe6){try{if(_0x54da59['TagIds']){_0x54da59[_0xb269('0x32')]=[];_0x54da59['TagIds']['split'](',')[_0xb269('0x33')](function(_0x207e0f){_0x54da59[_0xb269('0x32')][_0xb269('0x34')](_0x2cb5a0[_0x207e0f]);});}delete _0x54da59[_0xb269('0x35')];}catch(_0x37c513){_0x3c9fe6(_0x37c513);}_0x2e4a3e(_0x54da59);});}function updateSmsInteraction(_0x2c931a,_0x44ec73,_0xf50ea0){return new BPromise(function(_0x31a394,_0x4fdb1b){return getInteractionUsers(_0x2c931a,_0xf50ea0)['then'](function(_0x1ebc1b){return getInteractionTags(_0x1ebc1b,_0x44ec73);})['then'](function(_0x446cb7){_0x31a394(_0x446cb7);})[_0xb269('0x36')](function(_0x10ee53){_0x4fdb1b(_0x10ee53);});});}exports['index']=function(_0x5c3e56,_0x16d55d){var _0x343fc6={},_0x4b3564={},_0x75a797={'count':0x0,'rows':[]};var _0xc902c9=_[_0xb269('0x37')](db[_0xb269('0x38')]['rawAttributes'],function(_0x16ffa8){return{'name':_0x16ffa8[_0xb269('0x39')],'type':_0x16ffa8['type']['key']};});_0x4b3564['model']=_[_0xb269('0x37')](_0xc902c9,'name');_0x4b3564[_0xb269('0x3a')]=_['keys'](_0x5c3e56[_0xb269('0x3a')]);_0x4b3564[_0xb269('0x3b')]=_[_0xb269('0x3c')](_0x4b3564[_0xb269('0x3d')],_0x4b3564[_0xb269('0x3a')]);_0x343fc6[_0xb269('0x3e')]=_[_0xb269('0x3c')](_0x4b3564[_0xb269('0x3d')],qs['fields'](_0x5c3e56['query'][_0xb269('0x3f')]));_0x343fc6[_0xb269('0x3e')]=_0x343fc6[_0xb269('0x3e')][_0xb269('0x40')]?_0x343fc6['attributes']:_0x4b3564['model'];if(!_0x5c3e56[_0xb269('0x3a')][_0xb269('0x41')](_0xb269('0x42'))){_0x343fc6[_0xb269('0x25')]=qs['limit'](_0x5c3e56['query'][_0xb269('0x25')]);_0x343fc6[_0xb269('0x22')]=qs[_0xb269('0x22')](_0x5c3e56[_0xb269('0x3a')]['offset']);}_0x343fc6['order']=qs[_0xb269('0x43')](_0x5c3e56[_0xb269('0x3a')][_0xb269('0x43')]);_0x343fc6[_0xb269('0x44')]=qs[_0xb269('0x3b')](_[_0xb269('0x45')](_0x5c3e56[_0xb269('0x3a')],_0x4b3564['filters']),_0xc902c9);var _0x45b2b6=[];var _0x67d995=squel['select']()[_0xb269('0x46')]('id')[_0xb269('0x46')](_0xb269('0x2e'))[_0xb269('0x46')]('color')[_0xb269('0x47')]('tools_tags');var _0x2c0167=squel['select']()[_0xb269('0x46')](_0xb269('0x48'))[_0xb269('0x46')](_0xb269('0x49'))[_0xb269('0x46')](_0xb269('0x4a'))[_0xb269('0x47')](_0xb269('0x4b'),'ui')['left_join'](_0xb269('0x4c'),'u',_0xb269('0x4d'));var _0x266c2b=squel['select']()[_0xb269('0x47')](_0xb269('0x4e'),'i')[_0xb269('0x4f')](_0xb269('0x50'),'c',_0xb269('0x51'))[_0xb269('0x4f')]('users','o',_0xb269('0x52'))[_0xb269('0x4f')](_0xb269('0x53'),'a',_0xb269('0x54'))[_0xb269('0x4f')](_0xb269('0x55'),'me',_0xb269('0x56'))['left_join'](_0xb269('0x57'),'it',_0xb269('0x58'))[_0xb269('0x4f')]('tools_tags','t',_0xb269('0x59'));var _0x545c48=squel[_0xb269('0x5a')]();var _0x2e41d0=[];var _0x596a49=squel[_0xb269('0x5a')]();var _0x4f0692;if(_0x5c3e56[_0xb269('0x3a')][_0xb269('0x5b')]){_0x4f0692=as[_0xb269('0x5c')](_0x5c3e56[_0xb269('0x3a')][_0xb269('0x5b')]);var _0x52947e=_0x4f0692[_0xb269('0x5d')];for(var _0x5ce19d=0x0;_0x5ce19d<_0x4f0692[_0xb269('0x5e')][_0xb269('0x40')];_0x5ce19d++){var _0x26fb0b=_0x4f0692[_0xb269('0x5e')][_0x5ce19d];var _0x148660='i';var _0x3c5d4a=_[_0xb269('0x5f')](_0xc902c9,[_0xb269('0x2e'),_0x26fb0b[_0xb269('0x46')]]);if(!_0x3c5d4a){switch(_0x26fb0b[_0xb269('0x46')]){case _0xb269('0x60'):if(_0x26fb0b['value']==0x1){_0x266c2b[_0xb269('0x61')]('`'+_0x26fb0b[_0xb269('0x46')]+_0xb269('0x62'));}else{_0x266c2b['having']('`'+_0x26fb0b[_0xb269('0x46')]+_0xb269('0x63'));}break;case _0xb269('0x64'):if(_0x26fb0b[_0xb269('0x65')]==='$substring'){if(_0x26fb0b[_0xb269('0x66')][_0xb269('0x67')]('\x20')[_0xb269('0x40')]>0x1){_0x545c48[_0x52947e](_0xb269('0x68'),qs['getFullTextValue'](_0x26fb0b[_0xb269('0x66')]),null);}else{var _0x2fd676='%'+_0x26fb0b[_0xb269('0x66')]+'%';_0x545c48[_0x52947e](_0xb269('0x69'),_0x2fd676,_0x2fd676,_0x2fd676);}}else{_0x3c5d4a=_['find'](_0xc902c9,[_0xb269('0x2e'),_0xb269('0x6a')]);_0x26fb0b[_0xb269('0x46')]=_0xb269('0x6a');_0x842a82=as['buildExpression'](_0x148660,_0x3c5d4a[_0xb269('0x6b')],_0x26fb0b);_0x545c48[_0x52947e](_0x842a82['text'],_0x842a82[_0xb269('0x66')][_0xb269('0x6c')],_0x842a82['value']['end']);}break;case _0xb269('0x6d'):var _0x513814=_0x26fb0b['value'][_0xb269('0x67')](',')[_0xb269('0x37')](function(_0x4cb57c){return Number(_0x4cb57c);});_0x513814['forEach'](function(_0x130e8f){_0x596a49['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x130e8f+',%');});_0x2e41d0=_['union'](_0x2e41d0,_0x513814);break;case _0xb269('0x6e'):if(_0x26fb0b['operator']==='$substring'){_0x545c48[_0x52947e](_0xb269('0x6f'),'%'+_0x26fb0b['value']+'%',null);}else{_0x3c5d4a=_['find'](_0xc902c9,['name',_0xb269('0x70')]);_0x26fb0b[_0xb269('0x46')]=_0xb269('0x70');_0x842a82=as[_0xb269('0x71')](_0x148660,_0x3c5d4a['type'],_0x26fb0b);_0x545c48[_0x52947e](_0x842a82['text'],_0x842a82[_0xb269('0x66')][_0xb269('0x6c')],_0x842a82[_0xb269('0x66')][_0xb269('0x20')]);}break;case'body':_0x842a82=as[_0xb269('0x71')]('me',null,_0x26fb0b);_0x545c48[_0x52947e](_0x842a82[_0xb269('0x72')],_0x842a82['value'][_0xb269('0x6c')],_0x842a82[_0xb269('0x66')]['end']);break;}}else{var _0x842a82=as['buildExpression'](_0x148660,_0x3c5d4a[_0xb269('0x6b')],_0x26fb0b);_0x545c48[_0x52947e](_0x842a82[_0xb269('0x72')],_0x842a82[_0xb269('0x66')][_0xb269('0x6c')],_0x842a82[_0xb269('0x66')]['end']);}}}else{var _0x1d557e=_(_0x5c3e56[_0xb269('0x3a')])[_0xb269('0x73')]()[_0xb269('0x37')](function(_0x52f490){return _[_0xb269('0x74')](_0xc902c9,[_0xb269('0x2e'),_0x52f490])?_0x52f490:undefined;})[_0xb269('0x75')]()[_0xb269('0x66')]();if(!_[_0xb269('0x76')](_0x1d557e)){_0x1d557e[_0xb269('0x33')](function(_0x3c945e){if(_0x3c945e===_0xb269('0x77')){_0x266c2b[_0xb269('0x44')](_0xb269('0x78'),[][_0xb269('0x79')](_0x5c3e56['query'][_0x3c945e]));}else if(_0x3c945e===_0xb269('0x7a')){var _0x524a13=JSON['parse'](_0x5c3e56[_0xb269('0x3a')][_0x3c945e])[_0xb269('0x7b')];var _0x28f2b9=JSON[_0xb269('0x7c')](_0x5c3e56[_0xb269('0x3a')][_0x3c945e])[_0xb269('0x7d')];_0x266c2b[_0xb269('0x44')](_0xb269('0x7e'),_0x524a13,_0x28f2b9);}else{if(_0x5c3e56[_0xb269('0x3a')][_0x3c945e]===_0xb269('0x7f')){_0x266c2b[_0xb269('0x44')]('i.'+_0x3c945e+_0xb269('0x80'));}else{_0x266c2b[_0xb269('0x44')]('i.'+_0x3c945e+_0xb269('0x81'),_0x5c3e56[_0xb269('0x3a')][_0x3c945e]);}}});}if(_0x5c3e56[_0xb269('0x3a')][_0xb269('0x82')]){if(_0x5c3e56['query']['read']==0x1){_0x266c2b['having']('`unreadMessages`\x20=\x200');}else{_0x266c2b[_0xb269('0x61')](_0xb269('0x83'));}}if(_0x5c3e56['query'][_0xb269('0x84')]){_0x2e41d0=_[_0xb269('0x85')](_0x5c3e56[_0xb269('0x3a')]['tag'])?_0x5c3e56[_0xb269('0x3a')][_0xb269('0x84')]:new Array(_0x5c3e56[_0xb269('0x3a')]['tag']);_0x2e41d0[_0xb269('0x33')](function(_0x1a84b5){_0x596a49['or'](_0xb269('0x86'),'%,'+_0x1a84b5+',%');});}if(_0x5c3e56[_0xb269('0x3a')][_0xb269('0x87')]){var _0x30db37=_0x5c3e56[_0xb269('0x3a')]['filter']['replace']('\x5c','\x5c\x5c')[_0xb269('0x88')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x30db37)){_0x545c48['or'](_0xb269('0x89'),_0x30db37+'%')['or']('i.phone\x20LIKE\x20?',_0x30db37+'%');}else{_0x545c48['or'](_0xb269('0x8a'),qs[_0xb269('0x8b')](_0x30db37))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x30db37+'%');}}}_0x266c2b[_0xb269('0x44')](_0x545c48);_0x266c2b['group']('i.id');var _0x21d92b={'type':db[_0xb269('0x8c')][_0xb269('0x8d')][_0xb269('0x8e')],'raw':!![]};var _0x451567=_0x266c2b[_0xb269('0x8f')]();_0x451567[_0xb269('0x46')](_0xb269('0x90'));_0x451567[_0xb269('0x46')](_0xb269('0x91'),'unreadMessages');if(_0x343fc6[_0xb269('0x92')]){_0x343fc6[_0xb269('0x92')]['forEach'](function(_0x29ce39){var _0x470280=_0x29ce39[0x0]===_0xb269('0x93')?_0x29ce39[0x0]:'i.'+_0x29ce39[0x0];_0x266c2b[_0xb269('0x92')](_0x470280,_0x29ce39[0x1]==='DESC'?![]:!![]);});}if(!_[_0xb269('0x76')](_0x2e41d0)){_0x266c2b[_0xb269('0x61')](_0x596a49);_0x451567[_0xb269('0x44')]('t.id\x20IN\x20?',_0x2e41d0);}BPromise[_0xb269('0x94')]()[_0xb269('0x2a')](function(){if(!_0x4f0692){if(_0x5c3e56[_0xb269('0x3a')][_0xb269('0x77')])return;_0x451567[_0xb269('0x44')](_0xb269('0x95'));_0x266c2b[_0xb269('0x44')](_0xb269('0x95'));return;}if(_0x5c3e56[_0xb269('0x96')][_0xb269('0x97')]!==_0xb269('0x98'))return;return _0x5c3e56[_0xb269('0x96')][_0xb269('0x99')]({'attributes':['id'],'raw':!![]})[_0xb269('0x2a')](function(_0x6f970){if(_[_0xb269('0x76')](_0x6f970)){_0x451567['where'](_0xb269('0x9a'));_0x266c2b[_0xb269('0x44')](_0xb269('0x9a'));}else{_0x451567[_0xb269('0x44')]('i.SmsAccountId\x20IN\x20?',_[_0xb269('0x37')](_0x6f970,'id'));_0x266c2b[_0xb269('0x44')](_0xb269('0x78'),_[_0xb269('0x37')](_0x6f970,'id'));}});})['then'](function(){if(_0x5c3e56[_0xb269('0x96')][_0xb269('0x97')]===_0xb269('0x98')&&!_0x4f0692&&!_0x5c3e56[_0xb269('0x3a')][_0xb269('0x77')])return[];return db[_0xb269('0x9b')]['query'](_0x451567[_0xb269('0x9c')](),_0x21d92b);})[_0xb269('0x2a')](function(_0x5290d6){_0x75a797['count']=_0x5290d6[_0xb269('0x40')];if(_0x75a797[_0xb269('0x24')]===0x0)return[];return db[_0xb269('0x9b')]['query'](_0x67d995[_0xb269('0x9c')](),_0x21d92b)[_0xb269('0x2a')](function(_0x148eb8){_0x45b2b6=_['keyBy'](_0x148eb8,'id');_0x21d92b=_[_0xb269('0x9d')](_0x21d92b,{'model':db[_0xb269('0x38')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5c3e56['query']['fields']){_0x343fc6[_0xb269('0x3e')][_0xb269('0x33')](function(_0x72f37b){_0x266c2b[_0xb269('0x46')]('i.'+_0x72f37b);});}else{_0x266c2b['field'](_0xb269('0x91'),_0xb269('0x60'));_0x266c2b['field'](_0xb269('0x9e'),_0xb269('0x9f'));_0x266c2b[_0xb269('0x46')](_0xb269('0xa0'),_0xb269('0xa1'));_0x266c2b[_0xb269('0x46')](_0xb269('0xa2'),_0xb269('0x93'));_0x266c2b[_0xb269('0x46')](_0xb269('0xa3'));_0x266c2b[_0xb269('0x46')](_0xb269('0xa4'),'Contact.firstName');_0x266c2b[_0xb269('0x46')](_0xb269('0xa5'),_0xb269('0xa6'));_0x266c2b['field'](_0xb269('0xa7'),_0xb269('0xa8'));_0x266c2b[_0xb269('0x46')]('c.phone',_0xb269('0xa9'));_0x266c2b[_0xb269('0x46')](_0xb269('0xaa'),'Contact.mobile');_0x266c2b[_0xb269('0x46')](_0xb269('0xab'),_0xb269('0xac'));_0x266c2b[_0xb269('0x46')](_0xb269('0xad'),_0xb269('0xae'));_0x266c2b[_0xb269('0x46')]('o.internal',_0xb269('0xaf'));_0x266c2b[_0xb269('0x46')](_0xb269('0xb0'),_0xb269('0x35'));}if(_0x343fc6[_0xb269('0x25')])_0x266c2b[_0xb269('0x25')](_0x343fc6[_0xb269('0x25')]);if(_0x343fc6[_0xb269('0x22')])_0x266c2b[_0xb269('0x22')](_0x343fc6[_0xb269('0x22')]);return db[_0xb269('0x9b')][_0xb269('0x3a')](_0x266c2b[_0xb269('0x9c')](),_0x21d92b);})[_0xb269('0x2a')](function(_0x4bc463){if(_0x4bc463[_0xb269('0x40')]>0x0)_0x2c0167[_0xb269('0x44')](_0xb269('0xb1'),_['map'](_0x4bc463,'id'));return db['sequelize'][_0xb269('0x3a')](_0x2c0167[_0xb269('0x9c')](),_0x21d92b)[_0xb269('0x2a')](function(_0x2741c8){var _0x243640=_[_0xb269('0xb2')](_0x2741c8,_0xb269('0xb3'));var _0x221c13=[];_0x4bc463[_0xb269('0x33')](function(_0x2e13e9){_0x221c13[_0xb269('0x34')](updateSmsInteraction(_0x2e13e9,_0x45b2b6,_0x243640));});return BPromise[_0xb269('0xb4')](_0x221c13);});});})[_0xb269('0x2a')](function(_0x2dfdeb){_0x75a797[_0xb269('0xb5')]=_0x2dfdeb;return _0x75a797;})[_0xb269('0x2a')](respondWithFilteredResult(_0x16d55d,_0x343fc6))['catch'](handleError(_0x16d55d,null));};exports['show']=function(_0x5cca13,_0x40de9b){var _0x190b2e={'raw':![],'where':{'id':_0x5cca13[_0xb269('0xb6')]['id']}},_0x54ac02={};_0x54ac02['model']=_[_0xb269('0x73')](db[_0xb269('0x38')]['rawAttributes']);_0x54ac02['query']=_[_0xb269('0x73')](_0x5cca13[_0xb269('0x3a')]);_0x54ac02[_0xb269('0x3b')]=_[_0xb269('0x3c')](_0x54ac02[_0xb269('0x3d')],_0x54ac02[_0xb269('0x3a')]);_0x190b2e[_0xb269('0x3e')]=_[_0xb269('0x3c')](_0x54ac02[_0xb269('0x3d')],qs[_0xb269('0x3f')](_0x5cca13[_0xb269('0x3a')][_0xb269('0x3f')]));_0x190b2e[_0xb269('0x3e')]=_0x190b2e[_0xb269('0x3e')]['length']?_0x190b2e[_0xb269('0x3e')]:_0x54ac02[_0xb269('0x3d')];if(_0x5cca13[_0xb269('0x3a')]['includeAll']){_0x190b2e['include']=[{'all':!![]}];}_0x190b2e=_['merge']({},_0x190b2e,_0x5cca13[_0xb269('0xb7')]);return db['SmsInteraction']['find'](_0x190b2e)[_0xb269('0x2a')](handleEntityNotFound(_0x40de9b,null))[_0xb269('0x2a')](respondWithResult(_0x40de9b,null))[_0xb269('0x36')](handleError(_0x40de9b,null));};exports[_0xb269('0xb8')]=function(_0x54344d,_0x263f58){return db[_0xb269('0x38')][_0xb269('0xb8')](_0x54344d[_0xb269('0xb9')],{})[_0xb269('0x2a')](respondWithResult(_0x263f58,0xc9))[_0xb269('0x36')](handleError(_0x263f58,null));};exports['update']=function(_0x419bce,_0x8a7a50){if(_0x419bce[_0xb269('0xb9')]['id']){delete _0x419bce[_0xb269('0xb9')]['id'];}return db[_0xb269('0x38')][_0xb269('0x5f')]({'where':{'id':_0x419bce['params']['id']}})['then'](handleEntityNotFound(_0x8a7a50,null))[_0xb269('0x2a')](saveUpdates(_0x419bce['body'],null))['then'](respondWithResult(_0x8a7a50,null))[_0xb269('0x36')](handleError(_0x8a7a50,null));};exports[_0xb269('0x2b')]=function(_0x533306,_0x13e64b){return db['SmsInteraction']['find']({'where':{'id':_0x533306['params']['id']}})[_0xb269('0x2a')](handleEntityNotFound(_0x13e64b,null))[_0xb269('0x2a')](removeEntity(_0x13e64b,null))['catch'](handleError(_0x13e64b,null));};exports[_0xb269('0xba')]=function(_0x8c288b,_0x18452d){return db[_0xb269('0x38')][_0xb269('0xba')]()[_0xb269('0x2a')](respondWithResult(_0x18452d,null))[_0xb269('0x36')](handleError(_0x18452d,null));};exports['addMessage']=function(_0x54c3d3,_0x1fd11c,_0x59ffa3){return db[_0xb269('0xbb')][_0xb269('0x5f')]({'where':{'id':_0x54c3d3[_0xb269('0xb6')]['id']}})[_0xb269('0x2a')](handleEntityNotFound(_0x1fd11c,null))[_0xb269('0x2a')](function(_0x7eba0){if(_0x7eba0){return _0x7eba0[_0xb269('0xbc')](_0x54c3d3[_0xb269('0xb9')]['ids'],_['omit'](_0x54c3d3[_0xb269('0xb9')],[_0xb269('0xbd'),'id'])||{});}})[_0xb269('0x2a')](respondWithResult(_0x1fd11c,null))[_0xb269('0x36')](handleError(_0x1fd11c,null));};exports[_0xb269('0xbe')]=function(_0x179d6e,_0x33c347,_0x18af81){var _0x3e6e30={'raw':![],'where':{}};var _0x24f310={};var _0x4092a0={'count':0x0,'rows':[]};return db[_0xb269('0x38')][_0xb269('0xbf')]({'where':{'id':_0x179d6e[_0xb269('0xb6')]['id']}})[_0xb269('0x2a')](handleEntityNotFound(_0x33c347,null))[_0xb269('0x2a')](function(_0x1315e6){if(_0x1315e6){_0x24f310[_0xb269('0x3d')]=_[_0xb269('0x73')](db['SmsMessage'][_0xb269('0xc0')]);_0x24f310[_0xb269('0x3a')]=_[_0xb269('0x73')](_0x179d6e[_0xb269('0x3a')]);_0x24f310[_0xb269('0x3b')]=_[_0xb269('0x3c')](_0x24f310['model'],_0x24f310[_0xb269('0x3a')]);_0x3e6e30[_0xb269('0x3e')]=_[_0xb269('0x3c')](_0x24f310[_0xb269('0x3d')],qs[_0xb269('0x3f')](_0x179d6e['query']['fields']));_0x3e6e30['attributes']=_0x3e6e30['attributes'][_0xb269('0x40')]?_0x3e6e30[_0xb269('0x3e')]:_0x24f310[_0xb269('0x3d')];if(!_0x179d6e[_0xb269('0x3a')][_0xb269('0x41')](_0xb269('0x42'))){_0x3e6e30[_0xb269('0x25')]=qs['limit'](_0x179d6e[_0xb269('0x3a')][_0xb269('0x25')]);_0x3e6e30[_0xb269('0x22')]=qs[_0xb269('0x22')](_0x179d6e[_0xb269('0x3a')][_0xb269('0x22')]);}_0x3e6e30['order']=qs['sort'](_0x179d6e['query'][_0xb269('0x43')]);_0x3e6e30['where']=qs[_0xb269('0x3b')](_[_0xb269('0x45')](_0x179d6e[_0xb269('0x3a')],_0x24f310['filters']));_0x3e6e30[_0xb269('0x44')][_0xb269('0xb3')]=_0x1315e6['id'];if(_0x179d6e[_0xb269('0x3a')][_0xb269('0x87')]){_0x3e6e30['where']=_[_0xb269('0x9d')](_0x3e6e30['where'],{'$or':_[_0xb269('0x37')](_0x3e6e30[_0xb269('0x3e')],function(_0x58d03e){var _0x2b93d9={};_0x2b93d9[_0x58d03e]={'$like':'%'+_0x179d6e['query'][_0xb269('0x87')]+'%'};return _0x2b93d9;})});}if(_0x179d6e[_0xb269('0x3a')][_0xb269('0x7b')]){var _0xb7c3eb=_0x179d6e[_0xb269('0x3a')][_0xb269('0x7b')][_0xb269('0x67')](',');var _0x1ab43e={};_0x1ab43e[_0xb7c3eb[0x0]]={'$gte':moment(_0xb7c3eb[0x1])[_0xb269('0xc1')](_0xb269('0xc2'))};_0x3e6e30[_0xb269('0x44')]=_[_0xb269('0x9d')](_0x3e6e30['where'],_0x1ab43e);}_0x3e6e30=_[_0xb269('0x9d')]({},_0x3e6e30,_0x179d6e[_0xb269('0xb7')]);return db[_0xb269('0xbb')][_0xb269('0x24')]({'where':_0x3e6e30[_0xb269('0x44')]})[_0xb269('0x2a')](function(_0x228d30){_0x4092a0[_0xb269('0x24')]=_0x228d30;if(_0x179d6e['query'][_0xb269('0xc3')]){_0x3e6e30[_0xb269('0xc4')]=[{'all':!![]}];}return db['SmsMessage']['findAll'](_0x3e6e30);})['then'](function(_0x245c3d){_0x4092a0[_0xb269('0xb5')]=_0x245c3d;return _0x4092a0;});}})[_0xb269('0x2a')](respondWithFilteredResult(_0x33c347,_0x3e6e30))[_0xb269('0x36')](handleError(_0x33c347,null));};exports[_0xb269('0xc5')]=function(_0x2849e7,_0x107ed7,_0x2911d3){return db[_0xb269('0x38')][_0xb269('0x5f')]({'where':{'id':_0x2849e7[_0xb269('0xb6')]['id']}})['then'](handleEntityNotFound(_0x107ed7,null))['then'](function(_0x33df88){if(_0x33df88){return _0x33df88['setTags'](_0x2849e7[_0xb269('0xb9')][_0xb269('0xbd')],_[_0xb269('0xc6')](_0x2849e7[_0xb269('0xb9')],[_0xb269('0xbd'),'id'])||{})[_0xb269('0xc7')](function(){return db[_0xb269('0x6d')][_0xb269('0xc8')]({'attributes':['id','name','color'],'where':{'id':_0x2849e7['body']['ids']}});})[_0xb269('0x2a')](function(_0x426952){socket[_0xb269('0xc9')](_0xb269('0xca'),{'id':Number(_0x2849e7[_0xb269('0xb6')]['id']),'tags':_0x426952||[]});return{'id':Number(_0x2849e7['params']['id']),'tags':_0x426952||[]};});}})['then'](respondWithResult(_0x107ed7,null))[_0xb269('0x36')](handleError(_0x107ed7,null));};exports[_0xb269('0xcb')]=function(_0x224f08,_0x4422da,_0x183b89){return db[_0xb269('0x38')][_0xb269('0x5f')]({'where':{'id':_0x224f08['params']['id']}})[_0xb269('0x2a')](handleEntityNotFound(_0x4422da,null))[_0xb269('0x2a')](function(_0x441d5c){if(_0x441d5c){return _0x441d5c[_0xb269('0xcb')](_0x224f08[_0xb269('0x3a')][_0xb269('0xbd')]);}})[_0xb269('0x2a')](respondWithStatusCode(_0x4422da,null))[_0xb269('0x36')](handleError(_0x4422da,null));};exports[_0xb269('0xcc')]=function(_0x15367e,_0x2ed85d){var _0x5cd8c3=moment()[_0xb269('0xcd')]()[_0xb269('0x9c')]();var _0x95d6eb=path[_0xb269('0xce')](config[_0xb269('0xcf')],'server',_0xb269('0xd0'),_0xb269('0xd1'));var _0x36c482=path['join'](config[_0xb269('0xcf')],_0xb269('0xd2'),_0xb269('0xd0'),_0xb269('0xd3'));var _0x34eee6=path[_0xb269('0xce')](_0x95d6eb,_0x5cd8c3);var _0x1580fb=util['format'](_0xb269('0xd4'),_0x15367e[_0xb269('0xb6')]['id'],_0x5cd8c3);var _0x1d8a22=path[_0xb269('0xce')](_0x95d6eb,_0x1580fb);var _0x216b0a=[];_0x216b0a['push']({'model':db[_0xb269('0x6e')],'as':_0xb269('0x6e'),'attributes':['id',_0xb269('0x31')],'raw':!![]});_0x216b0a['push']({'model':db[_0xb269('0xd5')],'as':_0xb269('0x64'),'attributes':['id',_0xb269('0xd6'),_0xb269('0xd7')],'raw':!![]});var _0x360a24=[{'model':db['SmsMessage'],'as':_0xb269('0xd8'),'attributes':['id',_0xb269('0xb9'),'createdAt',_0xb269('0xd9'),'secret',_0xb269('0x82')],'include':_0x216b0a}];_0x360a24[_0xb269('0x34')]({'model':db[_0xb269('0xda')],'as':_0xb269('0xdb'),'attributes':['id','name']});_0x360a24[_0xb269('0x34')]({'model':db[_0xb269('0x6e')],'as':_0xb269('0xdc'),'attributes':['id',_0xb269('0x31')]});return db[_0xb269('0x38')][_0xb269('0x5f')]({'where':{'id':_0x15367e['params']['id']},'include':_0x360a24})['then'](handleEntityNotFound(_0x2ed85d,null))['then'](function(_0x1e0aeb){if(_0x1e0aeb){var _0x6d752a=_0x1e0aeb[_0xb269('0xdd')]({'plain':!![]});fs[_0xb269('0xde')](_0x34eee6);var _0x2dfd6a={'channel':'Sms','account':_0x6d752a[_0xb269('0xdb')][_0xb269('0x2e')],'agent':_0x6d752a[_0xb269('0xdc')]?_0x6d752a[_0xb269('0xdc')][_0xb269('0x31')]:_0xb269('0xdf'),'createdAt':moment(_0x6d752a[_0xb269('0x7a')])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0xb269('0x9c')](),'closedAt':_0x6d752a[_0xb269('0xe0')]?moment(_0x6d752a['closedAt'])[_0xb269('0xc1')](_0xb269('0xc2'))[_0xb269('0x9c')]():'','disposition':_0x6d752a[_0xb269('0xe1')],'messages':_(_0x6d752a[_0xb269('0xd8')])[_0xb269('0x87')]({'secret':![]})['map'](function(_0x406bac){return{'date':moment(_0x406bac['createdAt'])[_0xb269('0xc1')](_0xb269('0xc2'))['toString'](),'sender':_0x406bac[_0xb269('0xd9')]===_0xb269('0xe2')?_0x406bac[_0xb269('0x6e')]?_0x406bac['User'][_0xb269('0x31')]:_0xb269('0xe3'):_0x406bac['Contact'][_0xb269('0xd6')]+(_0x406bac['Contact']['lastName']?'\x20'+_0x406bac[_0xb269('0x64')]['lastName']:''),'body':_0x406bac[_0xb269('0xb9')],'direction':_0x406bac['direction']===_0xb269('0xe2')?'A':'C','secret':_0x406bac['secret'],'read':_0x406bac[_0xb269('0x82')]};})[_0xb269('0x66')]()};return ejs[_0xb269('0xe4')](path['join'](config['root'],'server',_0xb269('0xe5'),_0xb269('0xe6')),{'interaction':_0x2dfd6a})['then'](function(_0x3f6f42){var _0x4a0d3a=path[_0xb269('0xce')](_0x34eee6,_0xb269('0xe7')+_0x6d752a['id']+'-'+_0x5cd8c3+'.pdf');var _0x3029f0={'path':_0x4a0d3a,'channel':_0xb269('0xe8'),'interactionId':_0x6d752a['id']};return pdf['createPdfFromHTML'](_0x3f6f42,_0x3029f0);})[_0xb269('0x2a')](function(){return new BPromise(function(_0x5a441c,_0x36129a){zipdir(_0x34eee6,{'saveTo':_0x1d8a22},function(_0x328933,_0xf6dab2){if(_0x328933)return _0x36129a(_0x328933);return _0x5a441c(_0xf6dab2);});})['then'](function(){return new BPromise(function(_0x57422b,_0x38da8f){rimraf(_0x34eee6,function(_0x5a535b){if(_0x5a535b)_0x38da8f(_0x5a535b);return _0x57422b();});});})['then'](function(){return _0x2ed85d['download'](_0x1d8a22,_0x1580fb,function(_0x3469ad){if(_0x3469ad){console[_0xb269('0xe9')](_0xb269('0xea'),_0x3469ad);}else{fs[_0xb269('0xeb')](_0x1d8a22);}});});});}else{return _0x2ed85d['sendStatus'](0xc8);}})[_0xb269('0x36')](handleError(_0x2ed85d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7708=['hook','exports','events','../../mysqldb','remove','getUsers','then','setDataValue','Users','map','length','emit','catch'];(function(_0xae7883,_0xabf9c8){var _0xd55326=function(_0x51fb2f){while(--_0x51fb2f){_0xae7883['push'](_0xae7883['shift']());}};_0xd55326(++_0xabf9c8);}(_0x7708,0x188));var _0x8770=function(_0x40ddc0,_0x41c082){_0x40ddc0=_0x40ddc0-0x0;var _0x1aebf1=_0x7708[_0x40ddc0];return _0x1aebf1;};'use strict';var EventEmitter=require(_0x8770('0x0'));var SmsInteraction=require(_0x8770('0x1'))['db']['SmsInteraction'];var SmsMessage=require(_0x8770('0x1'))['db']['SmsMessage'];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x8770('0x2')};function emitEvent(_0x1a796d){return function(_0x577b13,_0x40d401,_0x50bab7){_0x577b13[_0x8770('0x3')]({'attributes':['id'],'raw':!![]})[_0x8770('0x4')](function(_0x2b0295){_0x577b13[_0x8770('0x5')](_0x8770('0x6'),_0x2b0295[_0x8770('0x7')](function(_0x2d4a1d){return{'id':_0x2d4a1d['id']};}));return SmsMessage['findAll']({'where':{'SmsInteractionId':_0x577b13['id'],'direction':'in','read':![]},'raw':!![]});})[_0x8770('0x4')](function(_0x2ca830){_0x577b13[_0x8770('0x5')]('unreadMessages',_0x2ca830[_0x8770('0x8')]);SmsInteractionEvents[_0x8770('0x9')](_0x1a796d+':'+_0x577b13['id'],_0x577b13);SmsInteractionEvents[_0x8770('0x9')](_0x1a796d,_0x577b13);_0x50bab7(null);})[_0x8770('0xa')](_0x50bab7(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsInteraction[_0x8770('0xb')](e,emitEvent(event));}}module[_0x8770('0xc')]=SmsInteractionEvents;
\ No newline at end of file
+var _0x8603=['update','remove','getUsers','then','setDataValue','findAll','unreadMessages','emit','hasOwnProperty','hook','../../mysqldb','SmsInteraction','save'];(function(_0x404af0,_0x37e661){var _0x357a9b=function(_0xf7962f){while(--_0xf7962f){_0x404af0['push'](_0x404af0['shift']());}};_0x357a9b(++_0x37e661);}(_0x8603,0x190));var _0x3860=function(_0x161d36,_0x437fee){_0x161d36=_0x161d36-0x0;var _0x84de4=_0x8603[_0x161d36];return _0x84de4;};'use strict';var EventEmitter=require('events');var SmsInteraction=require(_0x3860('0x0'))['db'][_0x3860('0x1')];var SmsMessage=require(_0x3860('0x0'))['db']['SmsMessage'];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x3860('0x2'),'afterUpdate':_0x3860('0x3'),'afterDestroy':_0x3860('0x4')};function emitEvent(_0x490262){return function(_0x2fc97a,_0x56f8c5,_0xb0fc24){_0x2fc97a[_0x3860('0x5')]({'attributes':['id'],'raw':!![]})[_0x3860('0x6')](function(_0xd3ce26){_0x2fc97a[_0x3860('0x7')]('Users',_0xd3ce26['map'](function(_0x5b1ac8){return{'id':_0x5b1ac8['id']};}));return SmsMessage[_0x3860('0x8')]({'where':{'SmsInteractionId':_0x2fc97a['id'],'direction':'in','read':![]},'raw':!![]});})[_0x3860('0x6')](function(_0x52c277){_0x2fc97a[_0x3860('0x7')](_0x3860('0x9'),_0x52c277['length']);SmsInteractionEvents[_0x3860('0xa')](_0x490262+':'+_0x2fc97a['id'],_0x2fc97a);SmsInteractionEvents[_0x3860('0xa')](_0x490262,_0x2fc97a);_0xb0fc24(null);})['catch'](_0xb0fc24(null));};}for(var e in events){if(events[_0x3860('0xb')](e)){var event=events[e];SmsInteraction[_0x3860('0xc')](e,emitEvent(event));}}module['exports']=SmsInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf55c=['sms_interactions','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','bluebird','request-promise','rimraf','../../config/environment','./smsInteraction.attributes','exports','define'];(function(_0xfebf3e,_0x2f1836){var _0x936839=function(_0x4a83d2){while(--_0x4a83d2){_0xfebf3e['push'](_0xfebf3e['shift']());}};_0x936839(++_0x2f1836);}(_0xf55c,0x93));var _0xcf55=function(_0x4e1d03,_0x786f3a){_0x4e1d03=_0x4e1d03-0x0;var _0x362d4b=_0xf55c[_0x4e1d03];return _0x362d4b;};'use strict';var _=require(_0xcf55('0x0'));var util=require(_0xcf55('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0xcf55('0x2'));var rp=require(_0xcf55('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xcf55('0x4'));var config=require(_0xcf55('0x5'));var attributes=require(_0xcf55('0x6'));module[_0xcf55('0x7')]=function(_0x3fe59d,_0x2e2c3b){return _0x3fe59d[_0xcf55('0x8')]('SmsInteraction',attributes,{'tableName':_0xcf55('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x5e66ab,_0x678d81,_0x363221){if(_0x5e66ab['changed']('closed')){_0x5e66ab['closedAt']=moment()[_0xcf55('0xa')](_0xcf55('0xb'));}_0x363221(null,_0x5e66ab);}}});};
\ No newline at end of file
+var _0xad95=['changed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./smsInteraction.attributes','exports','define','SmsInteraction','sms_interactions'];(function(_0x39adb2,_0x540b96){var _0x1df693=function(_0x13fb10){while(--_0x13fb10){_0x39adb2['push'](_0x39adb2['shift']());}};_0x1df693(++_0x540b96);}(_0xad95,0x82));var _0x5ad9=function(_0x35022e,_0x4ce343){_0x35022e=_0x35022e-0x0;var _0x5973d3=_0xad95[_0x35022e];return _0x5973d3;};'use strict';var _=require('lodash');var util=require(_0x5ad9('0x0'));var logger=require(_0x5ad9('0x1'))(_0x5ad9('0x2'));var moment=require(_0x5ad9('0x3'));var BPromise=require(_0x5ad9('0x4'));var rp=require(_0x5ad9('0x5'));var fs=require('fs');var path=require(_0x5ad9('0x6'));var rimraf=require(_0x5ad9('0x7'));var config=require(_0x5ad9('0x8'));var attributes=require(_0x5ad9('0x9'));module[_0x5ad9('0xa')]=function(_0x184050,_0xbf9350){return _0x184050[_0x5ad9('0xb')](_0x5ad9('0xc'),attributes,{'tableName':_0x5ad9('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x36dc19,_0x54e05c,_0x4a6062){if(_0x36dc19[_0x5ad9('0xe')]('closed')){_0x36dc19[_0x5ad9('0xf')]=moment()[_0x5ad9('0x10')](_0x5ad9('0x11'));}_0x4a6062(null,_0x36dc19);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x45b9=['ids','spread','AddTags','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','defaults','localhost','socket.io-emitter','redis','request','then','SmsInteraction,\x20%s,\x20%s','debug','SmsInteraction,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','info','result','catch','UpdateSmsInteraction','options','raw','where','attributes','limit','SmsInteraction','find','addTags','body'];(function(_0x401407,_0x46aa6f){var _0x2fa310=function(_0x129b64){while(--_0x129b64){_0x401407['push'](_0x401407['shift']());}};_0x2fa310(++_0x46aa6f);}(_0x45b9,0xc1));var _0x945b=function(_0x3e9c17,_0x2a84a9){_0x3e9c17=_0x3e9c17-0x0;var _0x24c41d=_0x45b9[_0x3e9c17];return _0x24c41d;};'use strict';var _=require('lodash');var util=require(_0x945b('0x0'));var moment=require('moment');var BPromise=require(_0x945b('0x1'));var rs=require(_0x945b('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x945b('0x3'))['db'];var utils=require(_0x945b('0x4'));var logger=require(_0x945b('0x5'))(_0x945b('0x6'));var config=require(_0x945b('0x7'));var jayson=require(_0x945b('0x8'));var client=jayson['client']['http']({'port':0x232a});config['redis']=_[_0x945b('0x9')](config['redis'],{'host':_0x945b('0xa'),'port':0x18eb});var socket=require(_0x945b('0xb'))(new Redis(config[_0x945b('0xc')]));require('./smsInteraction.socket')['register'](socket);function respondWithRpcPromise(_0x56e8bd,_0x39628a,_0x2e8643){return new BPromise(function(_0x11e173,_0x3806ca){return client[_0x945b('0xd')](_0x56e8bd,_0x2e8643)[_0x945b('0xe')](function(_0x5cea5a){logger['info'](_0x945b('0xf'),_0x39628a,'request\x20sent');logger[_0x945b('0x10')](_0x945b('0x11'),_0x39628a,_0x945b('0x12'),JSON[_0x945b('0x13')](_0x5cea5a));if(_0x5cea5a[_0x945b('0x14')]){if(_0x5cea5a[_0x945b('0x14')]['code']===0x1f4){logger[_0x945b('0x14')](_0x945b('0xf'),_0x39628a,_0x5cea5a[_0x945b('0x14')][_0x945b('0x15')]);return _0x3806ca(_0x5cea5a[_0x945b('0x14')][_0x945b('0x15')]);}logger[_0x945b('0x14')]('SmsInteraction,\x20%s,\x20%s',_0x39628a,_0x5cea5a[_0x945b('0x14')][_0x945b('0x15')]);return _0x11e173(_0x5cea5a[_0x945b('0x14')][_0x945b('0x15')]);}else{logger[_0x945b('0x16')](_0x945b('0xf'),_0x39628a,'request\x20sent');_0x11e173(_0x5cea5a[_0x945b('0x17')][_0x945b('0x15')]);}})[_0x945b('0x18')](function(_0x56ce5b){logger[_0x945b('0x14')](_0x945b('0xf'),_0x39628a,_0x56ce5b);_0x3806ca(_0x56ce5b);});});}exports[_0x945b('0x19')]=function(_0x2b1e9e){var _0x37870d=this;return new Promise(function(_0x2340c8,_0x5f4c9c){return db['SmsInteraction']['update'](_0x2b1e9e['body'],{'raw':_0x2b1e9e['options']?_0x2b1e9e[_0x945b('0x1a')][_0x945b('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2b1e9e[_0x945b('0x1a')]?_0x2b1e9e[_0x945b('0x1a')][_0x945b('0x1c')]||null:null,'attributes':_0x2b1e9e['options']?_0x2b1e9e[_0x945b('0x1a')][_0x945b('0x1d')]||null:null,'limit':_0x2b1e9e[_0x945b('0x1a')]?_0x2b1e9e['options'][_0x945b('0x1e')]||null:null})[_0x945b('0xe')](function(_0x1889b1){logger[_0x945b('0x16')]('UpdateSmsInteraction',_0x2b1e9e);logger[_0x945b('0x10')](_0x945b('0x19'),_0x2b1e9e,JSON[_0x945b('0x13')](_0x1889b1));_0x2340c8(_0x1889b1);})['catch'](function(_0x36e187){logger[_0x945b('0x14')](_0x945b('0x19'),_0x36e187[_0x945b('0x15')],_0x2b1e9e);_0x5f4c9c(_0x37870d[_0x945b('0x14')](0x1f4,_0x36e187[_0x945b('0x15')]));});});};exports['AddTagsToSmsInteraction']=function(_0x3e618c){return new Promise(function(_0x48baab,_0x1a3c77){return db[_0x945b('0x1f')][_0x945b('0x20')]({'where':_0x3e618c[_0x945b('0x1a')]?_0x3e618c[_0x945b('0x1a')]['where']||null:null})[_0x945b('0xe')](function(_0x437eb5){if(_0x437eb5){return _0x437eb5[_0x945b('0x21')](_0x3e618c[_0x945b('0x22')][_0x945b('0x23')],_['omit'](_0x3e618c[_0x945b('0x22')],[_0x945b('0x23'),'id'])||{});}})[_0x945b('0x24')](function(_0x34cb0e){logger[_0x945b('0x16')](_0x945b('0x25'),_0x3e618c);logger[_0x945b('0x10')]('AddTags',_0x3e618c,JSON[_0x945b('0x13')](_0x34cb0e));_0x48baab(_0x34cb0e);})[_0x945b('0x18')](function(_0x971e3d){logger['error']('AddTags',_0x971e3d['message'],_0x3e618c);_0x1a3c77(_this['error'](0x1f4,_0x971e3d['message']));});});};
\ No newline at end of file
+var _0x7260=['options','raw','attributes','limit','AddTagsToSmsInteraction','SmsInteraction','find','where','ids','spread','AddTags','stringify','catch','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','register','then','info','SmsInteraction,\x20%s,\x20%s','request\x20sent','debug','SmsInteraction,\x20%s,\x20%s,\x20%s','error','code','message','result','UpdateSmsInteraction','update','body'];(function(_0x521a70,_0x1b7b25){var _0x59d4f8=function(_0x2fa3ae){while(--_0x2fa3ae){_0x521a70['push'](_0x521a70['shift']());}};_0x59d4f8(++_0x1b7b25);}(_0x7260,0x88));var _0x0726=function(_0x2fddc1,_0x463c9e){_0x2fddc1=_0x2fddc1-0x0;var _0x2d78ea=_0x7260[_0x2fddc1];return _0x2d78ea;};'use strict';var _=require(_0x0726('0x0'));var util=require(_0x0726('0x1'));var moment=require('moment');var BPromise=require(_0x0726('0x2'));var rs=require(_0x0726('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0726('0x4'))['db'];var utils=require(_0x0726('0x5'));var logger=require('../../config/logger')(_0x0726('0x6'));var config=require(_0x0726('0x7'));var jayson=require(_0x0726('0x8'));var client=jayson[_0x0726('0x9')]['http']({'port':0x232a});config[_0x0726('0xa')]=_[_0x0726('0xb')](config[_0x0726('0xa')],{'host':_0x0726('0xc'),'port':0x18eb});var socket=require(_0x0726('0xd'))(new Redis(config['redis']));require('./smsInteraction.socket')[_0x0726('0xe')](socket);function respondWithRpcPromise(_0x2e50a9,_0x2299b1,_0x262997){return new BPromise(function(_0x5da4ac,_0x4d61b2){return client['request'](_0x2e50a9,_0x262997)[_0x0726('0xf')](function(_0x3318ba){logger[_0x0726('0x10')](_0x0726('0x11'),_0x2299b1,_0x0726('0x12'));logger[_0x0726('0x13')](_0x0726('0x14'),_0x2299b1,_0x0726('0x12'),JSON['stringify'](_0x3318ba));if(_0x3318ba['error']){if(_0x3318ba[_0x0726('0x15')][_0x0726('0x16')]===0x1f4){logger['error'](_0x0726('0x11'),_0x2299b1,_0x3318ba[_0x0726('0x15')][_0x0726('0x17')]);return _0x4d61b2(_0x3318ba[_0x0726('0x15')][_0x0726('0x17')]);}logger[_0x0726('0x15')]('SmsInteraction,\x20%s,\x20%s',_0x2299b1,_0x3318ba[_0x0726('0x15')][_0x0726('0x17')]);return _0x5da4ac(_0x3318ba[_0x0726('0x15')]['message']);}else{logger[_0x0726('0x10')](_0x0726('0x11'),_0x2299b1,'request\x20sent');_0x5da4ac(_0x3318ba[_0x0726('0x18')][_0x0726('0x17')]);}})['catch'](function(_0x47aea4){logger[_0x0726('0x15')]('SmsInteraction,\x20%s,\x20%s',_0x2299b1,_0x47aea4);_0x4d61b2(_0x47aea4);});});}exports[_0x0726('0x19')]=function(_0x464af9){var _0x24b8d0=this;return new Promise(function(_0x277c93,_0x41a0aa){return db['SmsInteraction'][_0x0726('0x1a')](_0x464af9[_0x0726('0x1b')],{'raw':_0x464af9['options']?_0x464af9[_0x0726('0x1c')][_0x0726('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x464af9[_0x0726('0x1c')]?_0x464af9['options']['where']||null:null,'attributes':_0x464af9[_0x0726('0x1c')]?_0x464af9[_0x0726('0x1c')][_0x0726('0x1e')]||null:null,'limit':_0x464af9[_0x0726('0x1c')]?_0x464af9[_0x0726('0x1c')][_0x0726('0x1f')]||null:null})['then'](function(_0x286f40){logger[_0x0726('0x10')]('UpdateSmsInteraction',_0x464af9);logger['debug']('UpdateSmsInteraction',_0x464af9,JSON['stringify'](_0x286f40));_0x277c93(_0x286f40);})['catch'](function(_0x306601){logger[_0x0726('0x15')](_0x0726('0x19'),_0x306601[_0x0726('0x17')],_0x464af9);_0x41a0aa(_0x24b8d0['error'](0x1f4,_0x306601['message']));});});};exports[_0x0726('0x20')]=function(_0x437cd6){return new Promise(function(_0x40aea2,_0x7c3d4d){return db[_0x0726('0x21')][_0x0726('0x22')]({'where':_0x437cd6[_0x0726('0x1c')]?_0x437cd6['options'][_0x0726('0x23')]||null:null})[_0x0726('0xf')](function(_0x51572b){if(_0x51572b){return _0x51572b['addTags'](_0x437cd6['body']['ids'],_['omit'](_0x437cd6[_0x0726('0x1b')],[_0x0726('0x24'),'id'])||{});}})[_0x0726('0x25')](function(_0x2707e3){logger[_0x0726('0x10')](_0x0726('0x26'),_0x437cd6);logger[_0x0726('0x13')](_0x0726('0x26'),_0x437cd6,JSON[_0x0726('0x27')](_0x2707e3));_0x40aea2(_0x2707e3);})[_0x0726('0x28')](function(_0x233270){logger[_0x0726('0x15')](_0x0726('0x26'),_0x233270[_0x0726('0x17')],_0x437cd6);_0x7c3d4d(_this[_0x0726('0x15')](0x1f4,_0x233270[_0x0726('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e2a=['removeListener','smsInteraction:','./smsInteraction.events','save','emit'];(function(_0x331312,_0x12b37f){var _0x5e674e=function(_0x24f157){while(--_0x24f157){_0x331312['push'](_0x331312['shift']());}};_0x5e674e(++_0x12b37f);}(_0x9e2a,0xed));var _0xa9e2=function(_0x402af5,_0x559d42){_0x402af5=_0x402af5-0x0;var _0x161671=_0x9e2a[_0x402af5];return _0x161671;};'use strict';var SmsInteractionEvents=require(_0xa9e2('0x0'));var events=[_0xa9e2('0x1'),'remove','update'];function createListener(_0x5ce887,_0x4deda7){return function(_0x1a5275){_0x4deda7[_0xa9e2('0x2')](_0x5ce887,_0x1a5275);};}function removeListener(_0x1b634a,_0x35b0d3){return function(){SmsInteractionEvents[_0xa9e2('0x3')](_0x1b634a,_0x35b0d3);};}exports['register']=function(_0x5dc936){for(var _0x1f503f=0x0,_0x496db3=events['length'];_0x1f503f<_0x496db3;_0x1f503f++){var _0x4e8ccf=events[_0x1f503f];var _0xcc64d6=createListener(_0xa9e2('0x4')+_0x4e8ccf,_0x5dc936);SmsInteractionEvents['on'](_0x4e8ccf,_0xcc64d6);}};
\ No newline at end of file
+var _0xfef6=['emit','removeListener','register','smsInteraction:','./smsInteraction.events','remove','update'];(function(_0x47fee5,_0x2afc0c){var _0x510ee2=function(_0x74b92b){while(--_0x74b92b){_0x47fee5['push'](_0x47fee5['shift']());}};_0x510ee2(++_0x2afc0c);}(_0xfef6,0xba));var _0x6fef=function(_0x45e1e2,_0x7f6008){_0x45e1e2=_0x45e1e2-0x0;var _0x7b82d=_0xfef6[_0x45e1e2];return _0x7b82d;};'use strict';var SmsInteractionEvents=require(_0x6fef('0x0'));var events=['save',_0x6fef('0x1'),_0x6fef('0x2')];function createListener(_0x1f943b,_0x251619){return function(_0xee4887){_0x251619[_0x6fef('0x3')](_0x1f943b,_0xee4887);};}function removeListener(_0x3a8320,_0x30939b){return function(){SmsInteractionEvents[_0x6fef('0x4')](_0x3a8320,_0x30939b);};}exports[_0x6fef('0x5')]=function(_0x577efa){for(var _0x2457af=0x0,_0x149e22=events['length'];_0x2457af<_0x149e22;_0x2457af++){var _0x60e9b5=events[_0x2457af];var _0x453fe8=createListener(_0x6fef('0x6')+_0x60e9b5,_0x577efa);SmsInteractionEvents['on'](_0x60e9b5,_0x453fe8);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaaf7=['destroy','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./smsMessage.controller','get','isAuthenticated','index','/describe','describe','/:id','post','tracked','sms','smsmessage:create','create','/:id/status','status','put','update','/:id/accept','accept','/:id/reject','reject','delete'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0xaaf7,0x79));var _0x7aaf=function(_0x3b2486,_0x4c912c){_0x3b2486=_0x3b2486-0x0;var _0x444609=_0xaaf7[_0x3b2486];return _0x444609;};'use strict';var multer=require(_0x7aaf('0x0'));var util=require(_0x7aaf('0x1'));var path=require(_0x7aaf('0x2'));var timeout=require(_0x7aaf('0x3'));var express=require(_0x7aaf('0x4'));var router=express[_0x7aaf('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x7aaf('0x6'));var interaction=require(_0x7aaf('0x7'));var config=require('../../config/environment');var controller=require(_0x7aaf('0x8'));router[_0x7aaf('0x9')]('/',auth[_0x7aaf('0xa')](),controller[_0x7aaf('0xb')]);router[_0x7aaf('0x9')](_0x7aaf('0xc'),auth[_0x7aaf('0xa')](),controller[_0x7aaf('0xd')]);router[_0x7aaf('0x9')](_0x7aaf('0xe'),auth[_0x7aaf('0xa')](),controller['show']);router[_0x7aaf('0xf')]('/',auth[_0x7aaf('0xa')](),interaction[_0x7aaf('0x10')](_0x7aaf('0x11'),_0x7aaf('0x12')),controller[_0x7aaf('0x13')]);router[_0x7aaf('0xf')](_0x7aaf('0x14'),controller[_0x7aaf('0x15')]);router[_0x7aaf('0x16')]('/:id',auth[_0x7aaf('0xa')](),controller[_0x7aaf('0x17')]);router[_0x7aaf('0x16')](_0x7aaf('0x18'),auth[_0x7aaf('0xa')](),controller[_0x7aaf('0x19')]);router[_0x7aaf('0x16')](_0x7aaf('0x1a'),auth['isAuthenticated'](),controller[_0x7aaf('0x1b')]);router[_0x7aaf('0x1c')](_0x7aaf('0xe'),auth[_0x7aaf('0xa')](),controller[_0x7aaf('0x1d')]);module['exports']=router;
\ No newline at end of file
+var _0x9741=['post','status','put','/:id/accept','accept','reject','/:id','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./smsMessage.controller','get','isAuthenticated','index','/describe','describe','show','tracked','sms','smsmessage:create','create'];(function(_0x88cd7b,_0x4c884c){var _0x56fcc8=function(_0x513b3d){while(--_0x513b3d){_0x88cd7b['push'](_0x88cd7b['shift']());}};_0x56fcc8(++_0x4c884c);}(_0x9741,0x1ee));var _0x1974=function(_0x5d85d6,_0x3155cc){_0x5d85d6=_0x5d85d6-0x0;var _0x260726=_0x9741[_0x5d85d6];return _0x260726;};'use strict';var multer=require(_0x1974('0x0'));var util=require(_0x1974('0x1'));var path=require(_0x1974('0x2'));var timeout=require(_0x1974('0x3'));var express=require(_0x1974('0x4'));var router=express[_0x1974('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x1974('0x6'));var interaction=require(_0x1974('0x7'));var config=require('../../config/environment');var controller=require(_0x1974('0x8'));router[_0x1974('0x9')]('/',auth[_0x1974('0xa')](),controller[_0x1974('0xb')]);router[_0x1974('0x9')](_0x1974('0xc'),auth[_0x1974('0xa')](),controller[_0x1974('0xd')]);router[_0x1974('0x9')]('/:id',auth[_0x1974('0xa')](),controller[_0x1974('0xe')]);router['post']('/',auth[_0x1974('0xa')](),interaction[_0x1974('0xf')](_0x1974('0x10'),_0x1974('0x11')),controller[_0x1974('0x12')]);router[_0x1974('0x13')]('/:id/status',controller[_0x1974('0x14')]);router[_0x1974('0x15')]('/:id',auth[_0x1974('0xa')](),controller['update']);router[_0x1974('0x15')](_0x1974('0x16'),auth[_0x1974('0xa')](),controller[_0x1974('0x17')]);router['put']('/:id/reject',auth['isAuthenticated'](),controller[_0x1974('0x18')]);router['delete'](_0x1974('0x19'),auth[_0x1974('0xa')](),controller['destroy']);module[_0x1974('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c59=['DATE','BOOLEAN','TEXT','sequelize','exports','medium','ENUM','out','STRING'];(function(_0x310eb9,_0x1aed15){var _0x28915c=function(_0x457fd6){while(--_0x457fd6){_0x310eb9['push'](_0x310eb9['shift']());}};_0x28915c(++_0x1aed15);}(_0x2c59,0x1e9));var _0x92c5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2c59[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x92c5('0x0'));module[_0x92c5('0x1')]={'body':{'type':Sequelize['TEXT'](_0x92c5('0x2')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x92c5('0x3')]('in',_0x92c5('0x4')),'defaultValue':_0x92c5('0x4'),'allowNull':![]},'messageId':{'type':Sequelize[_0x92c5('0x5')](0xbe)},'phone':{'type':Sequelize[_0x92c5('0x5')]},'readAt':{'type':Sequelize[_0x92c5('0x6')]},'secret':{'type':Sequelize[_0x92c5('0x7')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x92c5('0x5')]},'providerResponse':{'type':Sequelize[_0x92c5('0x8')]}};
\ No newline at end of file
+var _0xc9c5=['sequelize','medium','BOOLEAN','ENUM','out','STRING','DATE','TEXT'];(function(_0x1e5137,_0x3726e0){var _0x4d7cff=function(_0x373891){while(--_0x373891){_0x1e5137['push'](_0x1e5137['shift']());}};_0x4d7cff(++_0x3726e0);}(_0xc9c5,0x150));var _0x5c9c=function(_0xa2ac9,_0xf07f28){_0xa2ac9=_0xa2ac9-0x0;var _0x690e9b=_0xc9c5[_0xa2ac9];return _0x690e9b;};'use strict';var Sequelize=require(_0x5c9c('0x0'));module['exports']={'body':{'type':Sequelize['TEXT'](_0x5c9c('0x1')),'allowNull':![]},'read':{'type':Sequelize[_0x5c9c('0x2')],'defaultValue':![]},'direction':{'type':Sequelize[_0x5c9c('0x3')]('in','out'),'defaultValue':_0x5c9c('0x4'),'allowNull':![]},'messageId':{'type':Sequelize['STRING'](0xbe)},'phone':{'type':Sequelize[_0x5c9c('0x5')]},'readAt':{'type':Sequelize[_0x5c9c('0x6')]},'secret':{'type':Sequelize[_0x5c9c('0x2')],'defaultValue':![]},'providerName':{'type':Sequelize['STRING']},'providerResponse':{'type':Sequelize[_0x5c9c('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x72d7=['error','code','message','result','catch','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','then','destroy','stack','name','send','map','SmsMessage','fieldName','type','key','model','query','keys','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','findAll','rows','show','params','length','include','find','create','body','update','describe','sms-interactions','accept','sms','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','get','SmsInteraction','read1stAt','interaction','[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','QueryTypes','SELECT','User','fullname','email','internal','manual','interface','SIP/%s','channel','motionChannel','event','EventManager','acceptmessage','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','ContactId','contact','rejectmessage','SmsAccount','debug','received\x20delivery\x20report\x20from','inspect','twilio','messageId','SmsAccount,\x20%s,\x20%s,\x20%s','plivo','indexOf','sent','delivered','plivio','infobip','results','groupName','DELIVERED','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./smsMessage.socket','jayson/promise','client','http','request','info','SmsMessage,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x3fba9f,_0x3b7b9b){var _0x192cf1=function(_0x557290){while(--_0x557290){_0x3fba9f['push'](_0x3fba9f['shift']());}};_0x192cf1(++_0x3b7b9b);}(_0x72d7,0x19b));var _0x772d=function(_0x3899d1,_0x4aa04c){_0x3899d1=_0x3899d1-0x0;var _0xeb4a7d=_0x72d7[_0x3899d1];return _0xeb4a7d;};'use strict';var emlformat=require(_0x772d('0x0'));var rimraf=require(_0x772d('0x1'));var zipdir=require(_0x772d('0x2'));var jsonpatch=require(_0x772d('0x3'));var rp=require(_0x772d('0x4'));var moment=require(_0x772d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x772d('0x6'));var util=require('util');var path=require('path');var sox=require(_0x772d('0x7'));var csv=require(_0x772d('0x8'));var ejs=require(_0x772d('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x772d('0xa'));var squel=require(_0x772d('0xb'));var crypto=require(_0x772d('0xc'));var jsforce=require(_0x772d('0xd'));var deskjs=require(_0x772d('0xe'));var toCsv=require(_0x772d('0x8'));var querystring=require(_0x772d('0xf'));var Papa=require('papaparse');var Redis=require(_0x772d('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x772d('0x11'));var logger=require(_0x772d('0x12'))(_0x772d('0x13'));var utils=require(_0x772d('0x14'));var config=require(_0x772d('0x15'));var licenseUtil=require(_0x772d('0x16'));var db=require(_0x772d('0x17'))['db'];config[_0x772d('0x18')]=_['defaults'](config[_0x772d('0x18')],{'host':_0x772d('0x19'),'port':0x18eb});var socket=require(_0x772d('0x1a'))(new Redis(config[_0x772d('0x18')]));require(_0x772d('0x1b'))['register'](socket);var jayson=require(_0x772d('0x1c'));var client=jayson['client']['http']({'port':0x232c});var client9002=jayson[_0x772d('0x1d')][_0x772d('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x54457d,_0x5880f0,_0x3e2bc9,_0x78b80){return new BPromise(function(_0x53a421,_0x2743ed){var _0x281577=_0x78b80||client;return _0x281577[_0x772d('0x1f')](_0x54457d,_0x3e2bc9)['then'](function(_0x4b0283){logger[_0x772d('0x20')](_0x772d('0x21'),_0x5880f0,_0x772d('0x22'));logger['debug']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x5880f0,_0x772d('0x22'),JSON[_0x772d('0x23')](_0x4b0283));if(_0x4b0283[_0x772d('0x24')]){if(_0x4b0283[_0x772d('0x24')][_0x772d('0x25')]===0x1f4){logger['error']('SmsMessage,\x20%s,\x20%s',_0x5880f0,_0x4b0283[_0x772d('0x24')]['message']);return _0x2743ed(_0x4b0283[_0x772d('0x24')]['message']);}logger['error'](_0x772d('0x21'),_0x5880f0,_0x4b0283[_0x772d('0x24')][_0x772d('0x26')]);return _0x53a421(_0x4b0283['error'][_0x772d('0x26')]);}else{logger[_0x772d('0x20')](_0x772d('0x21'),_0x5880f0,_0x772d('0x22'));_0x53a421(_0x4b0283[_0x772d('0x27')][_0x772d('0x26')]);}})[_0x772d('0x28')](function(_0x2f4587){logger['error'](_0x772d('0x21'),_0x5880f0,_0x2f4587);_0x2743ed(_0x2f4587);});});}function respondWithStatusCode(_0x41a487,_0x51cbd6){_0x51cbd6=_0x51cbd6||0xcc;return function(_0x2aab30){if(_0x2aab30){return _0x41a487[_0x772d('0x29')](_0x51cbd6);}return _0x41a487[_0x772d('0x2a')](_0x51cbd6)[_0x772d('0x2b')]();};}function respondWithResult(_0x5a599a,_0x26dd6c){_0x26dd6c=_0x26dd6c||0xc8;return function(_0x19ddb5){if(_0x19ddb5){return _0x5a599a[_0x772d('0x2a')](_0x26dd6c)['json'](_0x19ddb5);}};}function respondWithFilteredResult(_0x59a04b,_0x1fd695){return function(_0x1ded63){if(_0x1ded63){var _0x1cb0e3=typeof _0x1fd695[_0x772d('0x2c')]===_0x772d('0x2d')&&typeof _0x1fd695[_0x772d('0x2e')]===_0x772d('0x2d');var _0x533acf=_0x1ded63[_0x772d('0x2f')];var _0x4ff532=_0x1cb0e3?0x0:_0x1fd695[_0x772d('0x2c')];var _0x153c57=_0x1cb0e3?_0x1ded63[_0x772d('0x2f')]:_0x1fd695[_0x772d('0x2c')]+_0x1fd695[_0x772d('0x2e')];var _0x140c74;if(_0x153c57>=_0x533acf){_0x153c57=_0x533acf;_0x140c74=0xc8;}else{_0x140c74=0xce;}_0x59a04b[_0x772d('0x2a')](_0x140c74);return _0x59a04b[_0x772d('0x30')](_0x772d('0x31'),_0x4ff532+'-'+_0x153c57+'/'+_0x533acf)[_0x772d('0x32')](_0x1ded63);}return null;};}function patchUpdates(_0x1c2ce0){return function(_0x591b2d){try{jsonpatch[_0x772d('0x33')](_0x591b2d,_0x1c2ce0,!![]);}catch(_0x58f18b){return BPromise[_0x772d('0x34')](_0x58f18b);}return _0x591b2d[_0x772d('0x35')]();};}function saveUpdates(_0xde89d9,_0x44512e){return function(_0xc34fd8){if(_0xc34fd8){return _0xc34fd8['update'](_0xde89d9)[_0x772d('0x36')](function(_0x4a2000){return _0x4a2000;});}return null;};}function removeEntity(_0x4999de,_0x34ace3){return function(_0x135a8d){if(_0x135a8d){return _0x135a8d[_0x772d('0x37')]()['then'](function(){_0x4999de['status'](0xcc)[_0x772d('0x2b')]();});}};}function handleEntityNotFound(_0x1bbaab,_0x244cee){return function(_0x223132){if(!_0x223132){_0x1bbaab[_0x772d('0x29')](0x194);}return _0x223132;};}function handleError(_0x39b315,_0x1c615e){_0x1c615e=_0x1c615e||0x1f4;return function(_0x3e98fd){logger[_0x772d('0x24')](_0x3e98fd[_0x772d('0x38')]);if(_0x3e98fd[_0x772d('0x39')]){delete _0x3e98fd[_0x772d('0x39')];}_0x39b315[_0x772d('0x2a')](_0x1c615e)[_0x772d('0x3a')](_0x3e98fd);};}exports['index']=function(_0x49589e,_0x437012){var _0x596090={},_0x3f141b={},_0x347be2={'count':0x0,'rows':[]};var _0x5b1765=_[_0x772d('0x3b')](db[_0x772d('0x3c')]['rawAttributes'],function(_0x3a0f97){return{'name':_0x3a0f97[_0x772d('0x3d')],'type':_0x3a0f97[_0x772d('0x3e')][_0x772d('0x3f')]};});_0x3f141b[_0x772d('0x40')]=_['map'](_0x5b1765,'name');_0x3f141b[_0x772d('0x41')]=_[_0x772d('0x42')](_0x49589e[_0x772d('0x41')]);_0x3f141b['filters']=_['intersection'](_0x3f141b[_0x772d('0x40')],_0x3f141b[_0x772d('0x41')]);_0x596090[_0x772d('0x43')]=_[_0x772d('0x44')](_0x3f141b[_0x772d('0x40')],qs['fields'](_0x49589e[_0x772d('0x41')][_0x772d('0x45')]));_0x596090[_0x772d('0x43')]=_0x596090[_0x772d('0x43')]['length']?_0x596090['attributes']:_0x3f141b['model'];if(!_0x49589e[_0x772d('0x41')][_0x772d('0x46')](_0x772d('0x47'))){_0x596090[_0x772d('0x2e')]=qs[_0x772d('0x2e')](_0x49589e[_0x772d('0x41')]['limit']);_0x596090[_0x772d('0x2c')]=qs[_0x772d('0x2c')](_0x49589e[_0x772d('0x41')][_0x772d('0x2c')]);}_0x596090[_0x772d('0x48')]=qs[_0x772d('0x49')](_0x49589e[_0x772d('0x41')][_0x772d('0x49')]);_0x596090[_0x772d('0x4a')]=qs[_0x772d('0x4b')](_[_0x772d('0x4c')](_0x49589e['query'],_0x3f141b[_0x772d('0x4b')]),_0x5b1765);if(_0x49589e[_0x772d('0x41')][_0x772d('0x4d')]){_0x596090[_0x772d('0x4a')]=_['merge'](_0x596090[_0x772d('0x4a')],{'$or':_[_0x772d('0x3b')](_0x5b1765,function(_0x2894f8){if(_0x2894f8[_0x772d('0x3e')]!==_0x772d('0x4e')){var _0x542798={};_0x542798[_0x2894f8[_0x772d('0x39')]]={'$like':'%'+_0x49589e[_0x772d('0x41')][_0x772d('0x4d')]+'%'};return _0x542798;}})});}_0x596090=_[_0x772d('0x4f')]({},_0x596090,_0x49589e[_0x772d('0x50')]);var _0x15c6c5={'where':_0x596090[_0x772d('0x4a')]};return db[_0x772d('0x3c')][_0x772d('0x2f')](_0x15c6c5)[_0x772d('0x36')](function(_0x431f5f){_0x347be2[_0x772d('0x2f')]=_0x431f5f;if(_0x49589e[_0x772d('0x41')][_0x772d('0x51')]){_0x596090['include']=[{'all':!![]}];}return db[_0x772d('0x3c')][_0x772d('0x52')](_0x596090);})['then'](function(_0x376cbe){_0x347be2[_0x772d('0x53')]=_0x376cbe;return _0x347be2;})[_0x772d('0x36')](respondWithFilteredResult(_0x437012,_0x596090))[_0x772d('0x28')](handleError(_0x437012,null));};exports[_0x772d('0x54')]=function(_0x5696c8,_0x30dee8){var _0xc7bf14={'raw':!![],'where':{'id':_0x5696c8[_0x772d('0x55')]['id']}},_0x5e5244={};_0x5e5244[_0x772d('0x40')]=_[_0x772d('0x42')](db[_0x772d('0x3c')]['rawAttributes']);_0x5e5244[_0x772d('0x41')]=_[_0x772d('0x42')](_0x5696c8[_0x772d('0x41')]);_0x5e5244['filters']=_[_0x772d('0x44')](_0x5e5244[_0x772d('0x40')],_0x5e5244[_0x772d('0x41')]);_0xc7bf14['attributes']=_[_0x772d('0x44')](_0x5e5244['model'],qs[_0x772d('0x45')](_0x5696c8[_0x772d('0x41')][_0x772d('0x45')]));_0xc7bf14['attributes']=_0xc7bf14[_0x772d('0x43')][_0x772d('0x56')]?_0xc7bf14[_0x772d('0x43')]:_0x5e5244[_0x772d('0x40')];if(_0x5696c8[_0x772d('0x41')][_0x772d('0x51')]){_0xc7bf14[_0x772d('0x57')]=[{'all':!![]}];}_0xc7bf14=_[_0x772d('0x4f')]({},_0xc7bf14,_0x5696c8[_0x772d('0x50')]);return db[_0x772d('0x3c')][_0x772d('0x58')](_0xc7bf14)[_0x772d('0x36')](handleEntityNotFound(_0x30dee8,null))[_0x772d('0x36')](respondWithResult(_0x30dee8,null))[_0x772d('0x28')](handleError(_0x30dee8,null));};exports['create']=function(_0x28db16,_0x18ad7f){return db[_0x772d('0x3c')][_0x772d('0x59')](_0x28db16[_0x772d('0x5a')],{})[_0x772d('0x36')](respondWithResult(_0x18ad7f,0xc9))[_0x772d('0x28')](handleError(_0x18ad7f,null));};exports[_0x772d('0x5b')]=function(_0x238884,_0x334c34){if(_0x238884[_0x772d('0x5a')]['id']){delete _0x238884[_0x772d('0x5a')]['id'];}return db['SmsMessage'][_0x772d('0x58')]({'where':{'id':_0x238884[_0x772d('0x55')]['id']}})[_0x772d('0x36')](handleEntityNotFound(_0x334c34,null))[_0x772d('0x36')](saveUpdates(_0x238884[_0x772d('0x5a')],null))[_0x772d('0x36')](respondWithResult(_0x334c34,null))['catch'](handleError(_0x334c34,null));};exports[_0x772d('0x37')]=function(_0x5a15de,_0xb075ee){return db[_0x772d('0x3c')][_0x772d('0x58')]({'where':{'id':_0x5a15de['params']['id']}})[_0x772d('0x36')](handleEntityNotFound(_0xb075ee,null))[_0x772d('0x36')](removeEntity(_0xb075ee,null))[_0x772d('0x28')](handleError(_0xb075ee,null));};exports[_0x772d('0x5c')]=function(_0x24c2de,_0x142158){return db[_0x772d('0x3c')][_0x772d('0x5c')]()[_0x772d('0x36')](respondWithResult(_0x142158,null))['catch'](handleError(_0x142158,null));};var interaction_log=require('../../config/logger')(_0x772d('0x5d'));exports[_0x772d('0x5e')]=function(_0x5bf58d,_0x27ca99,_0x203dc7){var _0x1fd4fa={'agent':{},'channel':_0x772d('0x5f')};if(_0x5bf58d['body']['id']){delete _0x5bf58d[_0x772d('0x5a')]['id'];}_0x5bf58d[_0x772d('0x5a')][_0x772d('0x60')]=!![];_0x5bf58d[_0x772d('0x5a')][_0x772d('0x61')]=moment()[_0x772d('0x62')](_0x772d('0x63'));_0x5bf58d[_0x772d('0x5a')][_0x772d('0x64')]=_0x5bf58d[_0x772d('0x5a')][_0x772d('0x64')]||_0x5bf58d[_0x772d('0x65')]['id'];_0x1fd4fa[_0x772d('0x66')]['id']=_0x5bf58d['body']['UserId'];return db[_0x772d('0x3c')]['find']({'where':{'id':_0x5bf58d[_0x772d('0x55')]['id'],'UserId':null}})[_0x772d('0x36')](handleEntityNotFound(_0x27ca99,null))[_0x772d('0x36')](saveUpdates(_0x5bf58d[_0x772d('0x5a')],null))[_0x772d('0x36')](function(_0x2eabca){if(_0x2eabca){_0x1fd4fa[_0x772d('0x26')]=_0x2eabca[_0x772d('0x67')]({'plain':!![]});return db[_0x772d('0x68')][_0x772d('0x58')]({'where':{'id':_0x2eabca['SmsInteractionId']}});}return null;})[_0x772d('0x36')](handleEntityNotFound(_0x27ca99,null))[_0x772d('0x36')](function(_0x1b07b8){if(_0x1b07b8){return _0x1b07b8[_0x772d('0x5b')]({'UserId':_0x5bf58d['body'][_0x772d('0x64')],'read1stAt':_['isNil'](_0x1b07b8[_0x772d('0x69')])?moment()['format'](_0x772d('0x63')):undefined});}return null;})['then'](function(_0x23d6e6){if(_0x23d6e6){_0x1fd4fa[_0x772d('0x6a')]=_0x23d6e6['get']({'plain':!![]});interaction_log[_0x772d('0x20')](_0x772d('0x6b'),_0x5bf58d[_0x772d('0x65')]['id'],_0x5bf58d[_0x772d('0x65')]['name'],_0x5bf58d[_0x772d('0x65')][_0x772d('0x6c')],_0x1fd4fa[_0x772d('0x6a')]['id'],_0x5bf58d[_0x772d('0x5a')]?JSON[_0x772d('0x23')](_0x5bf58d[_0x772d('0x5a')]):_0x772d('0x6d'));return respondWithRpcPromise('AcceptMessage','acceptMessage',_0x1fd4fa);}return null;})['then'](function(_0xbc5632){var _0x27ab12=_0x772d('0x6e')+_0xbc5632[_0x772d('0x26')]['ContactId'];return db[_0x772d('0x6f')][_0x772d('0x41')](_0x27ab12,{'type':db[_0x772d('0x70')][_0x772d('0x71')][_0x772d('0x72')],'raw':!![]})[_0x772d('0x36')](function(_0x56d954){return _0x56d954;});})[_0x772d('0x36')](function(_0x185f1e){if(_0x185f1e){_0x1fd4fa[_0x772d('0x26')]['contact']=_0x185f1e[0x0];if(!_0x5bf58d[_0x772d('0x5a')][_0x772d('0x64')])return;return db[_0x772d('0x73')][_0x772d('0x58')]({'where':{'id':_0x5bf58d[_0x772d('0x5a')][_0x772d('0x64')],'role':_0x772d('0x66')},'attributes':['id',_0x772d('0x39'),_0x772d('0x74'),_0x772d('0x75'),_0x772d('0x76')],'raw':!![]});}return null;})['then'](function(_0x52a59d){if(!_0x52a59d)return null;_0x1fd4fa[_0x772d('0x26')][_0x772d('0x66')]=_0x52a59d;return _0x1fd4fa;})[_0x772d('0x36')](function(_0x582a67){if(_0x582a67){if(_0x5bf58d[_0x772d('0x5a')][_0x772d('0x77')]){_0x1fd4fa['message'][_0x772d('0x78')]=util[_0x772d('0x62')](_0x772d('0x79'),_0x5bf58d[_0x772d('0x65')]['name']);_0x1fd4fa[_0x772d('0x26')][_0x772d('0x7a')]=_0x1fd4fa[_0x772d('0x7a')];_0x1fd4fa[_0x772d('0x26')][_0x772d('0x7b')]=_0x1fd4fa[_0x772d('0x7a')];_0x1fd4fa['message'][_0x772d('0x7c')]='accept';return respondWithRpcPromise(_0x772d('0x7d'),_0x772d('0x7d'),{'event':_0x772d('0x7e'),'message':_0x1fd4fa[_0x772d('0x26')]},client9002)[_0x772d('0x36')](function(){return _0x1fd4fa;});}return _0x1fd4fa;}return null;})[_0x772d('0x36')](respondWithResult(_0x27ca99,null))[_0x772d('0x28')](handleError(_0x27ca99,null));};var interaction_log=require(_0x772d('0x12'))(_0x772d('0x5d'));exports['reject']=function(_0x370351,_0x476a88,_0x1e6196){var _0x417854={'agent':{},'channel':_0x772d('0x5f')};if(_0x370351[_0x772d('0x5a')]['id']){delete _0x370351['body']['id'];}_0x370351['body'][_0x772d('0x64')]=_0x370351[_0x772d('0x5a')]['UserId']||_0x370351[_0x772d('0x65')]['id'];_0x417854[_0x772d('0x66')]['id']=_0x370351['body'][_0x772d('0x64')];return db['SmsMessage'][_0x772d('0x58')]({'where':{'id':_0x370351[_0x772d('0x55')]['id'],'UserId':null}})[_0x772d('0x36')](handleEntityNotFound(_0x476a88,null))['then'](function(_0x13318b){if(_0x13318b){_0x417854[_0x772d('0x26')]=_0x13318b[_0x772d('0x67')]({'plain':!![]});return db[_0x772d('0x68')][_0x772d('0x58')]({'where':{'id':_0x13318b['SmsInteractionId']}});}return null;})[_0x772d('0x36')](handleEntityNotFound(_0x476a88,null))['then'](function(_0x44d6a3){if(_0x44d6a3){_0x417854[_0x772d('0x6a')]=_0x44d6a3['get']({'plain':!![]});interaction_log[_0x772d('0x20')](_0x772d('0x7f'),_0x370351[_0x772d('0x65')]['id'],_0x370351[_0x772d('0x65')][_0x772d('0x39')],_0x370351[_0x772d('0x65')][_0x772d('0x6c')],_0x417854[_0x772d('0x6a')]['id'],_0x370351[_0x772d('0x5a')]?JSON[_0x772d('0x23')](_0x370351['body']):_0x772d('0x6d'));return respondWithRpcPromise(_0x772d('0x80'),_0x772d('0x81'),_0x417854);}return null;})[_0x772d('0x36')](function(_0x54a986){var _0x2095b9='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x54a986[_0x772d('0x26')][_0x772d('0x82')];return db[_0x772d('0x6f')]['query'](_0x2095b9,{'type':db[_0x772d('0x70')][_0x772d('0x71')]['SELECT'],'raw':!![]})[_0x772d('0x36')](function(_0x31dbcd){return _0x31dbcd;});})[_0x772d('0x36')](function(_0x37a9d2){if(_0x37a9d2){_0x417854[_0x772d('0x26')][_0x772d('0x83')]=_0x37a9d2[0x0];if(!_0x370351[_0x772d('0x5a')][_0x772d('0x64')])return;return db['User'][_0x772d('0x58')]({'where':{'id':_0x370351['body'][_0x772d('0x64')],'role':_0x772d('0x66')},'attributes':['id','name',_0x772d('0x74'),_0x772d('0x75'),'internal'],'raw':!![]});}return null;})[_0x772d('0x36')](function(_0x253892){if(!_0x253892)return null;_0x417854[_0x772d('0x26')][_0x772d('0x66')]=_0x253892;return _0x417854;})[_0x772d('0x36')](function(_0x4a7bee){if(_0x4a7bee){_0x4a7bee[_0x772d('0x26')]['interface']=util['format'](_0x772d('0x79'),_0x370351[_0x772d('0x65')][_0x772d('0x39')]);_0x4a7bee['message']['channel']=_0x417854[_0x772d('0x7a')];_0x4a7bee[_0x772d('0x26')]['motionChannel']=_0x417854['channel'];_0x4a7bee['message'][_0x772d('0x7c')]=_0x772d('0x34');respondWithRpcPromise(_0x772d('0x7d'),'EventManager',{'event':_0x772d('0x84'),'message':_0x4a7bee['message']},client9002);return _0x417854;}return null;})[_0x772d('0x36')](respondWithResult(_0x476a88,null))[_0x772d('0x28')](handleError(_0x476a88,null));};exports['status']=function(_0x841568,_0x254117,_0x4e5550){if(_0x841568['body']['id']){delete _0x841568['body']['id'];}var _0xaacb28;return db[_0x772d('0x3c')][_0x772d('0x58')]({'where':{'id':_0x841568[_0x772d('0x55')]['id']}})[_0x772d('0x36')](handleEntityNotFound(_0x254117,null))[_0x772d('0x36')](function(_0x27add0){if(_0x27add0){_0xaacb28=_0x27add0;return db[_0x772d('0x85')][_0x772d('0x58')]({'where':{'id':_0x27add0['SmsAccountId']}});}})[_0x772d('0x36')](handleEntityNotFound(_0x254117,null))[_0x772d('0x36')](function(_0x5b0de5){if(_0x5b0de5){logger[_0x772d('0x86')]('SmsMessage,\x20%s,\x20%s,\x20%s','status',_0x772d('0x87'),_0x5b0de5[_0x772d('0x3e')],util[_0x772d('0x88')](_0x841568[_0x772d('0x5a')],{'showHidden':![],'depth':null}));switch(_0x5b0de5[_0x772d('0x3e')]){case _0x772d('0x89'):if(_0x841568[_0x772d('0x5a')]['MessageSid']&&_0x841568[_0x772d('0x5a')]['MessageSid']===_0xaacb28[_0x772d('0x8a')]){return _0xaacb28[_0x772d('0x5b')]({'read':!![]});}else{logger[_0x772d('0x24')](_0x772d('0x8b'),_0x772d('0x2a'),'twilio',util[_0x772d('0x88')](_0x841568[_0x772d('0x5a')],{'showHidden':![],'depth':null}));}break;case _0x772d('0x8c'):if(_0x841568[_0x772d('0x5a')]['MessageUUID']&&_0x841568[_0x772d('0x5a')]['MessageUUID']===_0xaacb28['messageId']&&_[_0x772d('0x8d')]([_0x772d('0x8e'),_0x772d('0x8f')],_0x841568[_0x772d('0x5a')]['Status'])>=0x0){return _0xaacb28[_0x772d('0x5b')]({'read':!![]});}else{logger['error'](_0x772d('0x8b'),_0x772d('0x2a'),_0x772d('0x90'),util[_0x772d('0x88')](_0x841568[_0x772d('0x5a')],{'showHidden':![],'depth':null}));}break;case _0x772d('0x91'):var _0x533b36=_0x841568['body'][_0x772d('0x92')][0x0];if(_0x533b36[_0x772d('0x2a')][_0x772d('0x93')]===_0x772d('0x94')){return _0xaacb28[_0x772d('0x5b')]({'read':!![]});}else{logger[_0x772d('0x24')](_0x772d('0x8b'),_0x772d('0x2a'),_0x772d('0x91'),util[_0x772d('0x88')](_0x841568['body'],{'showHidden':![],'depth':null}));}break;}return _0xaacb28;}})[_0x772d('0x36')](respondWithResult(_0x254117,null))[_0x772d('0x28')](handleError(_0x254117,null));};
\ No newline at end of file
+var _0xa751=['register','jayson/promise','client','http','then','info','SmsMessage,\x20%s,\x20%s','request\x20sent','debug','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','end','offset','undefined','limit','count','status','set','json','apply','reject','update','destroy','name','send','map','SmsMessage','rawAttributes','key','query','attributes','fields','length','model','hasOwnProperty','nolimit','order','sort','filters','pick','where','merge','VIRTUAL','filter','options','include','findAll','rows','show','params','keys','intersection','find','create','body','describe','accept','readAt','format','UserId','user','agent','read1stAt','get','[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','interaction','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','email','interface','SIP/%s','channel','event','EventManager','acceptmessage','sms-interactions','sms','SmsInteractionId','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','ContactId','rejectmessage','SmsAccountId','received\x20delivery\x20report\x20from','type','inspect','MessageSid','messageId','SmsAccount,\x20%s,\x20%s,\x20%s','twilio','MessageUUID','indexOf','sent','delivered','plivio','groupName','DELIVERED','infobip','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter'];(function(_0x52d52f,_0x51d396){var _0x56b27a=function(_0x289aa2){while(--_0x289aa2){_0x52d52f['push'](_0x52d52f['shift']());}};_0x56b27a(++_0x51d396);}(_0xa751,0x18e));var _0x1a75=function(_0x402674,_0x4822c3){_0x402674=_0x402674-0x0;var _0x2387c3=_0xa751[_0x402674];return _0x2387c3;};'use strict';var emlformat=require(_0x1a75('0x0'));var rimraf=require(_0x1a75('0x1'));var zipdir=require(_0x1a75('0x2'));var jsonpatch=require(_0x1a75('0x3'));var rp=require(_0x1a75('0x4'));var moment=require(_0x1a75('0x5'));var BPromise=require(_0x1a75('0x6'));var Mustache=require(_0x1a75('0x7'));var util=require(_0x1a75('0x8'));var path=require(_0x1a75('0x9'));var sox=require(_0x1a75('0xa'));var csv=require(_0x1a75('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1a75('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x1a75('0xd'));var deskjs=require(_0x1a75('0xe'));var toCsv=require(_0x1a75('0xb'));var querystring=require(_0x1a75('0xf'));var Papa=require(_0x1a75('0x10'));var Redis=require(_0x1a75('0x11'));var authService=require(_0x1a75('0x12'));var qs=require(_0x1a75('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1a75('0x14'));var logger=require(_0x1a75('0x15'))('api');var utils=require(_0x1a75('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x1a75('0x17'));var db=require(_0x1a75('0x18'))['db'];config[_0x1a75('0x19')]=_['defaults'](config[_0x1a75('0x19')],{'host':_0x1a75('0x1a'),'port':0x18eb});var socket=require(_0x1a75('0x1b'))(new Redis(config[_0x1a75('0x19')]));require('./smsMessage.socket')[_0x1a75('0x1c')](socket);var jayson=require(_0x1a75('0x1d'));var client=jayson[_0x1a75('0x1e')][_0x1a75('0x1f')]({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x47244d,_0x2223dc,_0x18661f,_0x466186){return new BPromise(function(_0x3ec5ee,_0x257581){var _0x2756a4=_0x466186||client;return _0x2756a4['request'](_0x47244d,_0x18661f)[_0x1a75('0x20')](function(_0x8bc06b){logger[_0x1a75('0x21')](_0x1a75('0x22'),_0x2223dc,_0x1a75('0x23'));logger[_0x1a75('0x24')](_0x1a75('0x25'),_0x2223dc,_0x1a75('0x23'),JSON[_0x1a75('0x26')](_0x8bc06b));if(_0x8bc06b[_0x1a75('0x27')]){if(_0x8bc06b[_0x1a75('0x27')][_0x1a75('0x28')]===0x1f4){logger[_0x1a75('0x27')](_0x1a75('0x22'),_0x2223dc,_0x8bc06b['error']['message']);return _0x257581(_0x8bc06b['error'][_0x1a75('0x29')]);}logger['error'](_0x1a75('0x22'),_0x2223dc,_0x8bc06b[_0x1a75('0x27')][_0x1a75('0x29')]);return _0x3ec5ee(_0x8bc06b[_0x1a75('0x27')][_0x1a75('0x29')]);}else{logger[_0x1a75('0x21')]('SmsMessage,\x20%s,\x20%s',_0x2223dc,_0x1a75('0x23'));_0x3ec5ee(_0x8bc06b[_0x1a75('0x2a')][_0x1a75('0x29')]);}})[_0x1a75('0x2b')](function(_0x573214){logger['error']('SmsMessage,\x20%s,\x20%s',_0x2223dc,_0x573214);_0x257581(_0x573214);});});}function respondWithStatusCode(_0x2423fb,_0x5130b3){_0x5130b3=_0x5130b3||0xcc;return function(_0x4e8acd){if(_0x4e8acd){return _0x2423fb[_0x1a75('0x2c')](_0x5130b3);}return _0x2423fb['status'](_0x5130b3)[_0x1a75('0x2d')]();};}function respondWithResult(_0x472a09,_0x273ef8){_0x273ef8=_0x273ef8||0xc8;return function(_0x3deb21){if(_0x3deb21){return _0x472a09['status'](_0x273ef8)['json'](_0x3deb21);}};}function respondWithFilteredResult(_0x29c746,_0xbc948c){return function(_0x311258){if(_0x311258){var _0x23323e=typeof _0xbc948c[_0x1a75('0x2e')]===_0x1a75('0x2f')&&typeof _0xbc948c[_0x1a75('0x30')]===_0x1a75('0x2f');var _0x252bca=_0x311258[_0x1a75('0x31')];var _0x57aa4b=_0x23323e?0x0:_0xbc948c[_0x1a75('0x2e')];var _0x5e38e0=_0x23323e?_0x311258[_0x1a75('0x31')]:_0xbc948c[_0x1a75('0x2e')]+_0xbc948c[_0x1a75('0x30')];var _0x39eac8;if(_0x5e38e0>=_0x252bca){_0x5e38e0=_0x252bca;_0x39eac8=0xc8;}else{_0x39eac8=0xce;}_0x29c746[_0x1a75('0x32')](_0x39eac8);return _0x29c746[_0x1a75('0x33')]('Content-Range',_0x57aa4b+'-'+_0x5e38e0+'/'+_0x252bca)[_0x1a75('0x34')](_0x311258);}return null;};}function patchUpdates(_0x271934){return function(_0x5b1eae){try{jsonpatch[_0x1a75('0x35')](_0x5b1eae,_0x271934,!![]);}catch(_0x8f4b87){return BPromise[_0x1a75('0x36')](_0x8f4b87);}return _0x5b1eae['save']();};}function saveUpdates(_0x125aac,_0x45cf86){return function(_0x2b9d2f){if(_0x2b9d2f){return _0x2b9d2f[_0x1a75('0x37')](_0x125aac)[_0x1a75('0x20')](function(_0x28bdef){return _0x28bdef;});}return null;};}function removeEntity(_0x4fb1b0,_0xbf8e3b){return function(_0x19bea9){if(_0x19bea9){return _0x19bea9[_0x1a75('0x38')]()[_0x1a75('0x20')](function(){_0x4fb1b0['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2a72d9,_0x1945e7){return function(_0x1c8647){if(!_0x1c8647){_0x2a72d9[_0x1a75('0x2c')](0x194);}return _0x1c8647;};}function handleError(_0x5a8da8,_0x408d25){_0x408d25=_0x408d25||0x1f4;return function(_0x253278){logger[_0x1a75('0x27')](_0x253278['stack']);if(_0x253278['name']){delete _0x253278[_0x1a75('0x39')];}_0x5a8da8[_0x1a75('0x32')](_0x408d25)[_0x1a75('0x3a')](_0x253278);};}exports['index']=function(_0xf9999b,_0x4433a8){var _0x53e919={},_0x430123={},_0x23b3bd={'count':0x0,'rows':[]};var _0x5c778f=_[_0x1a75('0x3b')](db[_0x1a75('0x3c')][_0x1a75('0x3d')],function(_0x41f3ce){return{'name':_0x41f3ce['fieldName'],'type':_0x41f3ce['type'][_0x1a75('0x3e')]};});_0x430123['model']=_[_0x1a75('0x3b')](_0x5c778f,'name');_0x430123['query']=_['keys'](_0xf9999b[_0x1a75('0x3f')]);_0x430123['filters']=_['intersection'](_0x430123['model'],_0x430123['query']);_0x53e919[_0x1a75('0x40')]=_['intersection'](_0x430123['model'],qs['fields'](_0xf9999b[_0x1a75('0x3f')][_0x1a75('0x41')]));_0x53e919['attributes']=_0x53e919[_0x1a75('0x40')][_0x1a75('0x42')]?_0x53e919['attributes']:_0x430123[_0x1a75('0x43')];if(!_0xf9999b[_0x1a75('0x3f')][_0x1a75('0x44')](_0x1a75('0x45'))){_0x53e919[_0x1a75('0x30')]=qs[_0x1a75('0x30')](_0xf9999b[_0x1a75('0x3f')][_0x1a75('0x30')]);_0x53e919[_0x1a75('0x2e')]=qs['offset'](_0xf9999b[_0x1a75('0x3f')]['offset']);}_0x53e919[_0x1a75('0x46')]=qs[_0x1a75('0x47')](_0xf9999b[_0x1a75('0x3f')]['sort']);_0x53e919['where']=qs[_0x1a75('0x48')](_[_0x1a75('0x49')](_0xf9999b[_0x1a75('0x3f')],_0x430123[_0x1a75('0x48')]),_0x5c778f);if(_0xf9999b[_0x1a75('0x3f')]['filter']){_0x53e919[_0x1a75('0x4a')]=_[_0x1a75('0x4b')](_0x53e919['where'],{'$or':_[_0x1a75('0x3b')](_0x5c778f,function(_0x5b2ff7){if(_0x5b2ff7['type']!==_0x1a75('0x4c')){var _0x22044c={};_0x22044c[_0x5b2ff7[_0x1a75('0x39')]]={'$like':'%'+_0xf9999b['query'][_0x1a75('0x4d')]+'%'};return _0x22044c;}})});}_0x53e919=_[_0x1a75('0x4b')]({},_0x53e919,_0xf9999b[_0x1a75('0x4e')]);var _0x4dc1ed={'where':_0x53e919[_0x1a75('0x4a')]};return db['SmsMessage'][_0x1a75('0x31')](_0x4dc1ed)[_0x1a75('0x20')](function(_0x1564f0){_0x23b3bd[_0x1a75('0x31')]=_0x1564f0;if(_0xf9999b[_0x1a75('0x3f')]['includeAll']){_0x53e919[_0x1a75('0x4f')]=[{'all':!![]}];}return db[_0x1a75('0x3c')][_0x1a75('0x50')](_0x53e919);})['then'](function(_0x24987e){_0x23b3bd[_0x1a75('0x51')]=_0x24987e;return _0x23b3bd;})[_0x1a75('0x20')](respondWithFilteredResult(_0x4433a8,_0x53e919))['catch'](handleError(_0x4433a8,null));};exports[_0x1a75('0x52')]=function(_0x4d7c56,_0x3edecd){var _0x3e471f={'raw':!![],'where':{'id':_0x4d7c56[_0x1a75('0x53')]['id']}},_0x163ff2={};_0x163ff2[_0x1a75('0x43')]=_[_0x1a75('0x54')](db[_0x1a75('0x3c')][_0x1a75('0x3d')]);_0x163ff2[_0x1a75('0x3f')]=_['keys'](_0x4d7c56['query']);_0x163ff2['filters']=_['intersection'](_0x163ff2[_0x1a75('0x43')],_0x163ff2[_0x1a75('0x3f')]);_0x3e471f[_0x1a75('0x40')]=_[_0x1a75('0x55')](_0x163ff2['model'],qs[_0x1a75('0x41')](_0x4d7c56[_0x1a75('0x3f')][_0x1a75('0x41')]));_0x3e471f[_0x1a75('0x40')]=_0x3e471f[_0x1a75('0x40')][_0x1a75('0x42')]?_0x3e471f[_0x1a75('0x40')]:_0x163ff2[_0x1a75('0x43')];if(_0x4d7c56[_0x1a75('0x3f')]['includeAll']){_0x3e471f[_0x1a75('0x4f')]=[{'all':!![]}];}_0x3e471f=_[_0x1a75('0x4b')]({},_0x3e471f,_0x4d7c56[_0x1a75('0x4e')]);return db[_0x1a75('0x3c')][_0x1a75('0x56')](_0x3e471f)[_0x1a75('0x20')](handleEntityNotFound(_0x3edecd,null))[_0x1a75('0x20')](respondWithResult(_0x3edecd,null))[_0x1a75('0x2b')](handleError(_0x3edecd,null));};exports[_0x1a75('0x57')]=function(_0x5a1dff,_0x5c448b){return db['SmsMessage'][_0x1a75('0x57')](_0x5a1dff['body'],{})['then'](respondWithResult(_0x5c448b,0xc9))[_0x1a75('0x2b')](handleError(_0x5c448b,null));};exports[_0x1a75('0x37')]=function(_0x301528,_0x2fb515){if(_0x301528[_0x1a75('0x58')]['id']){delete _0x301528[_0x1a75('0x58')]['id'];}return db[_0x1a75('0x3c')][_0x1a75('0x56')]({'where':{'id':_0x301528[_0x1a75('0x53')]['id']}})[_0x1a75('0x20')](handleEntityNotFound(_0x2fb515,null))['then'](saveUpdates(_0x301528[_0x1a75('0x58')],null))['then'](respondWithResult(_0x2fb515,null))[_0x1a75('0x2b')](handleError(_0x2fb515,null));};exports['destroy']=function(_0x195fbe,_0x3130d5){return db[_0x1a75('0x3c')][_0x1a75('0x56')]({'where':{'id':_0x195fbe['params']['id']}})[_0x1a75('0x20')](handleEntityNotFound(_0x3130d5,null))['then'](removeEntity(_0x3130d5,null))['catch'](handleError(_0x3130d5,null));};exports[_0x1a75('0x59')]=function(_0x374bfd,_0x597e86){return db[_0x1a75('0x3c')][_0x1a75('0x59')]()['then'](respondWithResult(_0x597e86,null))[_0x1a75('0x2b')](handleError(_0x597e86,null));};var interaction_log=require(_0x1a75('0x15'))('sms-interactions');exports[_0x1a75('0x5a')]=function(_0xb24f2b,_0x14f75f,_0xc6b23d){var _0x33dc65={'agent':{},'channel':'sms'};if(_0xb24f2b['body']['id']){delete _0xb24f2b['body']['id'];}_0xb24f2b[_0x1a75('0x58')]['read']=!![];_0xb24f2b[_0x1a75('0x58')][_0x1a75('0x5b')]=moment()[_0x1a75('0x5c')]('YYYY-MM-DD\x20HH:mm:ss');_0xb24f2b[_0x1a75('0x58')]['UserId']=_0xb24f2b['body'][_0x1a75('0x5d')]||_0xb24f2b[_0x1a75('0x5e')]['id'];_0x33dc65[_0x1a75('0x5f')]['id']=_0xb24f2b[_0x1a75('0x58')]['UserId'];return db[_0x1a75('0x3c')][_0x1a75('0x56')]({'where':{'id':_0xb24f2b[_0x1a75('0x53')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x14f75f,null))[_0x1a75('0x20')](saveUpdates(_0xb24f2b[_0x1a75('0x58')],null))[_0x1a75('0x20')](function(_0x5000b1){if(_0x5000b1){_0x33dc65[_0x1a75('0x29')]=_0x5000b1['get']({'plain':!![]});return db['SmsInteraction']['find']({'where':{'id':_0x5000b1['SmsInteractionId']}});}return null;})[_0x1a75('0x20')](handleEntityNotFound(_0x14f75f,null))['then'](function(_0x83a128){if(_0x83a128){return _0x83a128['update']({'UserId':_0xb24f2b[_0x1a75('0x58')][_0x1a75('0x5d')],'read1stAt':_['isNil'](_0x83a128[_0x1a75('0x60')])?moment()[_0x1a75('0x5c')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})['then'](function(_0x2996da){if(_0x2996da){_0x33dc65['interaction']=_0x2996da[_0x1a75('0x61')]({'plain':!![]});interaction_log[_0x1a75('0x21')](_0x1a75('0x62'),_0xb24f2b[_0x1a75('0x5e')]['id'],_0xb24f2b[_0x1a75('0x5e')][_0x1a75('0x39')],_0xb24f2b[_0x1a75('0x5e')]['role'],_0x33dc65[_0x1a75('0x63')]['id'],_0xb24f2b[_0x1a75('0x58')]?JSON[_0x1a75('0x26')](_0xb24f2b[_0x1a75('0x58')]):_0x1a75('0x64'));return respondWithRpcPromise(_0x1a75('0x65'),_0x1a75('0x66'),_0x33dc65);}return null;})['then'](function(_0x245eab){var _0x54cf3b=_0x1a75('0x67')+_0x245eab[_0x1a75('0x29')]['ContactId'];return db[_0x1a75('0x68')][_0x1a75('0x3f')](_0x54cf3b,{'type':db[_0x1a75('0x69')][_0x1a75('0x6a')][_0x1a75('0x6b')],'raw':!![]})[_0x1a75('0x20')](function(_0x4b6271){return _0x4b6271;});})[_0x1a75('0x20')](function(_0x383065){if(_0x383065){_0x33dc65['message'][_0x1a75('0x6c')]=_0x383065[0x0];if(!_0xb24f2b[_0x1a75('0x58')][_0x1a75('0x5d')])return;return db[_0x1a75('0x6d')][_0x1a75('0x56')]({'where':{'id':_0xb24f2b[_0x1a75('0x58')][_0x1a75('0x5d')],'role':_0x1a75('0x5f')},'attributes':['id',_0x1a75('0x39'),_0x1a75('0x6e'),_0x1a75('0x6f'),'internal'],'raw':!![]});}return null;})[_0x1a75('0x20')](function(_0x1622f7){if(!_0x1622f7)return null;_0x33dc65[_0x1a75('0x29')][_0x1a75('0x5f')]=_0x1622f7;return _0x33dc65;})['then'](function(_0x576d3c){if(_0x576d3c){if(_0xb24f2b[_0x1a75('0x58')]['manual']){_0x33dc65[_0x1a75('0x29')][_0x1a75('0x70')]=util[_0x1a75('0x5c')](_0x1a75('0x71'),_0xb24f2b[_0x1a75('0x5e')]['name']);_0x33dc65[_0x1a75('0x29')][_0x1a75('0x72')]=_0x33dc65['channel'];_0x33dc65[_0x1a75('0x29')][_0x1a75('0x73')]=_0x1a75('0x5a');return respondWithRpcPromise(_0x1a75('0x74'),'EventManager',{'event':_0x1a75('0x75'),'message':_0x33dc65[_0x1a75('0x29')]},client9002)[_0x1a75('0x20')](function(){return _0x33dc65;});}return _0x33dc65;}return null;})[_0x1a75('0x20')](respondWithResult(_0x14f75f,null))[_0x1a75('0x2b')](handleError(_0x14f75f,null));};var interaction_log=require('../../config/logger')(_0x1a75('0x76'));exports['reject']=function(_0x5ca90d,_0x112048,_0x3794c3){var _0x24109a={'agent':{},'channel':_0x1a75('0x77')};if(_0x5ca90d[_0x1a75('0x58')]['id']){delete _0x5ca90d[_0x1a75('0x58')]['id'];}_0x5ca90d[_0x1a75('0x58')][_0x1a75('0x5d')]=_0x5ca90d[_0x1a75('0x58')][_0x1a75('0x5d')]||_0x5ca90d['user']['id'];_0x24109a[_0x1a75('0x5f')]['id']=_0x5ca90d[_0x1a75('0x58')][_0x1a75('0x5d')];return db['SmsMessage'][_0x1a75('0x56')]({'where':{'id':_0x5ca90d[_0x1a75('0x53')]['id'],'UserId':null}})[_0x1a75('0x20')](handleEntityNotFound(_0x112048,null))['then'](function(_0x253344){if(_0x253344){_0x24109a[_0x1a75('0x29')]=_0x253344[_0x1a75('0x61')]({'plain':!![]});return db['SmsInteraction'][_0x1a75('0x56')]({'where':{'id':_0x253344[_0x1a75('0x78')]}});}return null;})[_0x1a75('0x20')](handleEntityNotFound(_0x112048,null))[_0x1a75('0x20')](function(_0x96e41b){if(_0x96e41b){_0x24109a[_0x1a75('0x63')]=_0x96e41b[_0x1a75('0x61')]({'plain':!![]});interaction_log[_0x1a75('0x21')](_0x1a75('0x79'),_0x5ca90d[_0x1a75('0x5e')]['id'],_0x5ca90d['user'][_0x1a75('0x39')],_0x5ca90d[_0x1a75('0x5e')]['role'],_0x24109a[_0x1a75('0x63')]['id'],_0x5ca90d['body']?JSON[_0x1a75('0x26')](_0x5ca90d[_0x1a75('0x58')]):_0x1a75('0x64'));return respondWithRpcPromise(_0x1a75('0x7a'),_0x1a75('0x7b'),_0x24109a);}return null;})[_0x1a75('0x20')](function(_0x58dfae){var _0x417369=_0x1a75('0x67')+_0x58dfae[_0x1a75('0x29')][_0x1a75('0x7c')];return db[_0x1a75('0x68')][_0x1a75('0x3f')](_0x417369,{'type':db[_0x1a75('0x69')][_0x1a75('0x6a')][_0x1a75('0x6b')],'raw':!![]})['then'](function(_0x435ce9){return _0x435ce9;});})['then'](function(_0x2a8e51){if(_0x2a8e51){_0x24109a[_0x1a75('0x29')][_0x1a75('0x6c')]=_0x2a8e51[0x0];if(!_0x5ca90d[_0x1a75('0x58')][_0x1a75('0x5d')])return;return db[_0x1a75('0x6d')][_0x1a75('0x56')]({'where':{'id':_0x5ca90d[_0x1a75('0x58')]['UserId'],'role':'agent'},'attributes':['id',_0x1a75('0x39'),'fullname','email','internal'],'raw':!![]});}return null;})['then'](function(_0x586de7){if(!_0x586de7)return null;_0x24109a[_0x1a75('0x29')][_0x1a75('0x5f')]=_0x586de7;return _0x24109a;})[_0x1a75('0x20')](function(_0x28e8b7){if(_0x28e8b7){_0x28e8b7['message']['interface']=util[_0x1a75('0x5c')](_0x1a75('0x71'),_0x5ca90d[_0x1a75('0x5e')][_0x1a75('0x39')]);_0x28e8b7[_0x1a75('0x29')][_0x1a75('0x72')]=_0x24109a[_0x1a75('0x72')];_0x28e8b7[_0x1a75('0x29')][_0x1a75('0x73')]='reject';respondWithRpcPromise('EventManager',_0x1a75('0x74'),{'event':_0x1a75('0x7d'),'message':_0x28e8b7[_0x1a75('0x29')]},client9002);return _0x24109a;}return null;})[_0x1a75('0x20')](respondWithResult(_0x112048,null))[_0x1a75('0x2b')](handleError(_0x112048,null));};exports[_0x1a75('0x32')]=function(_0x4693db,_0xe763d7,_0x5848b8){if(_0x4693db[_0x1a75('0x58')]['id']){delete _0x4693db[_0x1a75('0x58')]['id'];}var _0x31b9a7;return db[_0x1a75('0x3c')][_0x1a75('0x56')]({'where':{'id':_0x4693db[_0x1a75('0x53')]['id']}})[_0x1a75('0x20')](handleEntityNotFound(_0xe763d7,null))['then'](function(_0x44fe4e){if(_0x44fe4e){_0x31b9a7=_0x44fe4e;return db['SmsAccount'][_0x1a75('0x56')]({'where':{'id':_0x44fe4e[_0x1a75('0x7e')]}});}})[_0x1a75('0x20')](handleEntityNotFound(_0xe763d7,null))['then'](function(_0x43780c){if(_0x43780c){logger[_0x1a75('0x24')](_0x1a75('0x25'),'status',_0x1a75('0x7f'),_0x43780c[_0x1a75('0x80')],util[_0x1a75('0x81')](_0x4693db['body'],{'showHidden':![],'depth':null}));switch(_0x43780c[_0x1a75('0x80')]){case'twilio':if(_0x4693db[_0x1a75('0x58')][_0x1a75('0x82')]&&_0x4693db[_0x1a75('0x58')][_0x1a75('0x82')]===_0x31b9a7[_0x1a75('0x83')]){return _0x31b9a7['update']({'read':!![]});}else{logger[_0x1a75('0x27')](_0x1a75('0x84'),_0x1a75('0x32'),_0x1a75('0x85'),util['inspect'](_0x4693db[_0x1a75('0x58')],{'showHidden':![],'depth':null}));}break;case'plivo':if(_0x4693db[_0x1a75('0x58')][_0x1a75('0x86')]&&_0x4693db[_0x1a75('0x58')][_0x1a75('0x86')]===_0x31b9a7['messageId']&&_[_0x1a75('0x87')]([_0x1a75('0x88'),_0x1a75('0x89')],_0x4693db[_0x1a75('0x58')]['Status'])>=0x0){return _0x31b9a7[_0x1a75('0x37')]({'read':!![]});}else{logger['error'](_0x1a75('0x84'),_0x1a75('0x32'),_0x1a75('0x8a'),util[_0x1a75('0x81')](_0x4693db[_0x1a75('0x58')],{'showHidden':![],'depth':null}));}break;case'infobip':var _0x588f11=_0x4693db[_0x1a75('0x58')]['results'][0x0];if(_0x588f11[_0x1a75('0x32')][_0x1a75('0x8b')]===_0x1a75('0x8c')){return _0x31b9a7[_0x1a75('0x37')]({'read':!![]});}else{logger['error'](_0x1a75('0x84'),'status',_0x1a75('0x8d'),util[_0x1a75('0x81')](_0x4693db['body'],{'showHidden':![],'depth':null}));}break;}return _0x31b9a7;}})[_0x1a75('0x20')](respondWithResult(_0xe763d7,null))['catch'](handleError(_0xe763d7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d9a=['exports','events','../../mysqldb','SmsMessage','setMaxListeners','save','update','emit'];(function(_0x42400d,_0x4049a7){var _0x29eeda=function(_0x59ec04){while(--_0x59ec04){_0x42400d['push'](_0x42400d['shift']());}};_0x29eeda(++_0x4049a7);}(_0x7d9a,0xa9));var _0xa7d9=function(_0x1c5515,_0x1b3950){_0x1c5515=_0x1c5515-0x0;var _0x403e71=_0x7d9a[_0x1c5515];return _0x403e71;};'use strict';var EventEmitter=require(_0xa7d9('0x0'));var SmsMessage=require(_0xa7d9('0x1'))['db'][_0xa7d9('0x2')];var SmsMessageEvents=new EventEmitter();SmsMessageEvents[_0xa7d9('0x3')](0x0);var events={'afterCreate':_0xa7d9('0x4'),'afterUpdate':_0xa7d9('0x5'),'afterDestroy':'remove'};function emitEvent(_0x511a98){return function(_0x5be079,_0x1f2c77,_0x1ffe08){SmsMessageEvents[_0xa7d9('0x6')](_0x511a98+':'+_0x5be079['id'],_0x5be079);SmsMessageEvents[_0xa7d9('0x6')](_0x511a98,_0x5be079);_0x1ffe08(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsMessage['hook'](e,emitEvent(event));}}module[_0xa7d9('0x7')]=SmsMessageEvents;
\ No newline at end of file
+var _0xa279=['save','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','SmsMessage','setMaxListeners'];(function(_0x2aed3,_0x5f9c05){var _0x160e00=function(_0x552b3a){while(--_0x552b3a){_0x2aed3['push'](_0x2aed3['shift']());}};_0x160e00(++_0x5f9c05);}(_0xa279,0xcd));var _0x9a27=function(_0x367dcc,_0x5ed097){_0x367dcc=_0x367dcc-0x0;var _0x2bb535=_0xa279[_0x367dcc];return _0x2bb535;};'use strict';var EventEmitter=require(_0x9a27('0x0'));var SmsMessage=require(_0x9a27('0x1'))['db'][_0x9a27('0x2')];var SmsMessageEvents=new EventEmitter();SmsMessageEvents[_0x9a27('0x3')](0x0);var events={'afterCreate':_0x9a27('0x4'),'afterUpdate':_0x9a27('0x5'),'afterDestroy':_0x9a27('0x6')};function emitEvent(_0x4c87e2){return function(_0x469486,_0xa0e5a0,_0x172b37){SmsMessageEvents[_0x9a27('0x7')](_0x4c87e2+':'+_0x469486['id'],_0x469486);SmsMessageEvents[_0x9a27('0x7')](_0x4c87e2,_0x469486);_0x172b37(null);};}for(var e in events){if(events[_0x9a27('0x8')](e)){var event=events[e];SmsMessage[_0x9a27('0x9')](e,emitEvent(event));}}module[_0x9a27('0xa')]=SmsMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5310=['secret','UserId','SmsInteractionId','SmsInteraction','findOne','then','update','SmsAccount','find','SmsAccountId','type','twilio','accountSid','authToken','phone','messages','remote','/api/sms/messages/','/status?token=','token','sid','catch','error','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','skebby','https://api.skebby.it/API/v1.0/REST/','username','password','smsMethod','sender','&password=','GET','sms','user_key','session_key','internal_order_id','deliveryReport','read','Missing\x20parameters:\x20username,\x20password','connectel','senderString','POST','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','%s:%s','Basic\x20%s','toString','data','queued_count','head','message_id','clickSend','plivo','authId','https://api.plivo.com/v1/Account/%s/Message/','base64','message_uuid','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','IBSSO\x20','Missing\x20parameters:\x20base_url','csc','crypto','apiKey','login','timestamp','keys','sort','md5','digest','signature=','/external/get/send.php?','Missing\x20parameters:\x20apiKey','clickatell','https://platform.clickatell.com/messages','uuid','apiMessageId','accountId','/messages','bandwidth','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','message','https://api.intelepeer.com/_rest/v4/app/sms/mdr','Bearer\x20','refid','status','Token\x20not\x20received','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','bluebird','request-promise','path','rimraf','../../config/environment','./smsMessage.attributes','exports','define','SmsMessage','sms_messages','messageId','fti_sms_messages','body','FULLTEXT','get','direction','toLowerCase','out'];(function(_0x12d033,_0x25fa2f){var _0x3b4e80=function(_0x46c1f4){while(--_0x46c1f4){_0x12d033['push'](_0x12d033['shift']());}};_0x3b4e80(++_0x25fa2f);}(_0x5310,0x150));var _0x0531=function(_0x12d033,_0x25fa2f){_0x12d033=_0x12d033-0x0;var _0x3b4e80=_0x5310[_0x12d033];return _0x3b4e80;};'use strict';var _=require(_0x0531('0x0'));var util=require(_0x0531('0x1'));var logger=require(_0x0531('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0531('0x3'));var rp=require(_0x0531('0x4'));var fs=require('fs');var path=require(_0x0531('0x5'));var rimraf=require(_0x0531('0x6'));var config=require(_0x0531('0x7'));var attributes=require(_0x0531('0x8'));module[_0x0531('0x9')]=function(_0x3ffdcd,_0x21955c){return _0x3ffdcd[_0x0531('0xa')](_0x0531('0xb'),attributes,{'tableName':_0x0531('0xc'),'paranoid':![],'indexes':[{'name':'messageId','fields':[_0x0531('0xd')]},{'name':_0x0531('0xe'),'fields':[_0x0531('0xf')],'type':_0x0531('0x10')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x57614b,_0x5374d6,_0x3fae21){var _0x392189=_0x3ffdcd['models'];var _0x13f7c9=_0x57614b[_0x0531('0x11')]({'plain':!![]});if(_0x13f7c9[_0x0531('0x12')][_0x0531('0x13')]()==='in'||_0x13f7c9[_0x0531('0x12')][_0x0531('0x13')]()===_0x0531('0x14')&&!_0x13f7c9[_0x0531('0x15')]&&!_['isNil'](_0x13f7c9[_0x0531('0x16')])&&!_['isNil'](_0x13f7c9[_0x0531('0x17')])){_0x392189[_0x0531('0x18')][_0x0531('0x19')]({'where':{'id':_0x13f7c9['SmsInteractionId']}})[_0x0531('0x1a')](function(_0x3f73cc){if(_0x3f73cc){_0x3f73cc[_0x0531('0x1b')]({'lastMsgAt':_0x13f7c9['createdAt'],'lastMsgDirection':_0x13f7c9[_0x0531('0x12')][_0x0531('0x13')]()});}})['catch'](function(_0x3cf7df){console['error'](_0x3cf7df);});}if(_0x13f7c9[_0x0531('0x12')]===_0x0531('0x14')&&!_0x13f7c9[_0x0531('0x15')]){var _0x351732;_0x392189[_0x0531('0x1c')][_0x0531('0x1d')]({'where':{'id':_0x13f7c9[_0x0531('0x1e')]},'raw':!![]})[_0x0531('0x1a')](function(_0x4a8fb6){_0x351732=_0x4a8fb6;if(_0x351732&&_0x351732[_0x0531('0x1f')]){switch(_0x351732[_0x0531('0x1f')]){case _0x0531('0x20'):var _0x9c6df1=require(_0x0531('0x20'));if(_0x351732[_0x0531('0x21')]&&_0x351732[_0x0531('0x22')]&&_0x351732[_0x0531('0x23')]){var _0x4951c1=new _0x9c6df1(_0x351732['accountSid'],_0x351732[_0x0531('0x22')]);_0x4951c1[_0x0531('0x24')]['create']({'body':_0x13f7c9[_0x0531('0xf')],'to':_0x13f7c9[_0x0531('0x23')],'from':_0x351732['phone'],'statusCallback':_0x351732[_0x0531('0x25')]+_0x0531('0x26')+_0x13f7c9['id']+_0x0531('0x27')+_0x351732[_0x0531('0x28')]})[_0x0531('0x1a')](function(_0x11bc3d){if(_0x11bc3d[_0x0531('0x29')]){return _0x57614b[_0x0531('0x1b')]({'messageId':_0x11bc3d['sid']});}})[_0x0531('0x2a')](function(_0x1a4c9d){logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),'twilio',util[_0x0531('0x2e')](_0x1a4c9d,{'showHidden':![],'depth':null}));});}else{logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x20'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0x0531('0x2f'):var _0x499ebd=_0x0531('0x30');if(_0x351732[_0x0531('0x31')]&&_0x351732[_0x0531('0x32')]){var _0x335e03={'recipient':[_0x13f7c9['phone']],'message':_0x13f7c9[_0x0531('0xf')],'message_type':_0x351732['smsMethod']};if(_0x351732[_0x0531('0x33')]&&_0x351732[_0x0531('0x33')]!=='SI'){_0x335e03[_0x0531('0x34')]=_0x351732[_0x0531('0x23')];}var _0xbce54d={'url':_0x499ebd+'login?username='+_0x351732['username']+_0x0531('0x35')+_0x351732['password'],'method':_0x0531('0x36')};rp(_0xbce54d)[_0x0531('0x1a')](function(_0x10cbf2){var _0x30bb68=_0x10cbf2['split'](';');var _0x52c8d6={'user_key':_0x30bb68[0x0],'session_key':_0x30bb68[0x1]};_0xbce54d={'url':_0x499ebd+_0x0531('0x37'),'method':'POST','headers':{'user_key':_0x52c8d6[_0x0531('0x38')],'Session_key':_0x52c8d6[_0x0531('0x39')]},'json':!![],'body':_0x335e03};return rp(_0xbce54d);})[_0x0531('0x1a')](function(_0x344cfb){if(_0x344cfb['total_sent']>=0x1){var _0x19880e={'messageId':_0x344cfb[_0x0531('0x3a')]};if(_0x351732[_0x0531('0x33')]!=='GP'||!_0x351732[_0x0531('0x3b')]){_0x19880e[_0x0531('0x3c')]=!![];}return _0x57614b['update'](_0x19880e);}else{return logger[_0x0531('0x2b')](_0x0531('0x2c'),'afterCreate',_0x0531('0x2f'),util[_0x0531('0x2e')](_0x344cfb,{'showHidden':![],'depth':null}));}})[_0x0531('0x2a')](function(_0x467da4){return logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x2f'),util[_0x0531('0x2e')](_0x467da4,{'showHidden':![],'depth':null}));});}else{logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x2f'),_0x0531('0x3d'));}break;case _0x0531('0x3e'):if(_0x351732[_0x0531('0x22')]){var _0x324403={'recipient':_0x13f7c9[_0x0531('0x23')],'message':_0x13f7c9[_0x0531('0xf')],'sender':_0x351732[_0x0531('0x3f')]||_0x351732[_0x0531('0x23')],'authorization':_0x351732[_0x0531('0x22')]};var _0x5374d6={'method':_0x0531('0x40'),'uri':'https://smsapi.connectel.se/api/v2/send/','body':_0x324403,'json':!![]};rp(_0x5374d6)['then'](function(_0x81de81){var _0x88d8dc={'messageId':_0x81de81['requestid']};if(!_0x351732[_0x0531('0x3b')]){_0x88d8dc[_0x0531('0x3c')]=!![];}return _0x57614b[_0x0531('0x1b')](_0x88d8dc);})[_0x0531('0x2a')](function(_0x23bb4d){logger[_0x0531('0x2b')](_0x0531('0x2c'),'afterCreate',_0x0531('0x3e'),util['inspect'](_0x23bb4d,{'showHidden':![],'depth':null}));});}else{logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x3e'),_0x0531('0x41'));}break;case _0x0531('0x42'):if(_0x351732[_0x0531('0x31')]&&_0x351732[_0x0531('0x32')]){var _0x324403={'messages':[{'source':_0x0531('0x43'),'to':_0x13f7c9[_0x0531('0x23')],'body':_0x13f7c9[_0x0531('0xf')],'from':_0x351732[_0x0531('0x3f')]||_0x351732[_0x0531('0x23')]}]};var _0xe2a0e5=util[_0x0531('0x44')](_0x0531('0x45'),_0x351732[_0x0531('0x31')],_0x351732[_0x0531('0x32')]);var _0x5374d6={'method':_0x0531('0x40'),'uri':'https://rest.clicksend.com/v3/sms/send','body':_0x324403,'headers':{'Authorization':util['format'](_0x0531('0x46'),new Buffer(_0xe2a0e5)[_0x0531('0x47')]('base64'))},'json':!![]};rp(_0x5374d6)[_0x0531('0x1a')](function(_0x66ce59){if(_0x66ce59['http_code']>=0xc8&&_0x66ce59['http_code']<=0xce){if(_0x66ce59[_0x0531('0x48')]&&_0x66ce59[_0x0531('0x48')][_0x0531('0x49')]>0x0){var _0x1e9625=_[_0x0531('0x4a')](_0x66ce59[_0x0531('0x48')]['messages']);var _0x598a24={'messageId':_0x1e9625[_0x0531('0x4b')]};if(!_0x351732[_0x0531('0x3b')]){_0x598a24[_0x0531('0x3c')]=!![];}return _0x57614b['update'](_0x598a24);}else{logger[_0x0531('0x2b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x0531('0x2d'),_0x0531('0x4c'),util[_0x0531('0x2e')](_0x66ce59,{'showHidden':![],'depth':null}));}}else{logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x4c'),util[_0x0531('0x2e')](_0x66ce59,{'showHidden':![],'depth':null}));}})['catch'](function(_0x573dab){logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x0531('0x2d'),_0x0531('0x4c'),util['inspect'](_0x573dab,{'showHidden':![],'depth':null}));});}else{logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),'clickSend',_0x0531('0x3d'));}break;case _0x0531('0x4d'):if(_0x351732[_0x0531('0x4e')]&&_0x351732[_0x0531('0x22')]){var _0x324403={'dst':_0x13f7c9[_0x0531('0x23')],'text':_0x13f7c9[_0x0531('0xf')],'src':_0x351732[_0x0531('0x3f')]||_0x351732['phone'],'url':_0x351732[_0x0531('0x25')]+_0x0531('0x26')+_0x13f7c9['id']+_0x0531('0x27')+_0x351732[_0x0531('0x28')]};var _0xe2a0e5=util[_0x0531('0x44')](_0x0531('0x45'),_0x351732['authId'],_0x351732[_0x0531('0x22')]);var _0x5374d6={'method':_0x0531('0x40'),'uri':util[_0x0531('0x44')](_0x0531('0x4f'),_0x351732[_0x0531('0x4e')]),'body':_0x324403,'headers':{'Authorization':util[_0x0531('0x44')](_0x0531('0x46'),new Buffer(_0xe2a0e5)[_0x0531('0x47')](_0x0531('0x50')))},'json':!![]};rp(_0x5374d6)['then'](function(_0x126318){var _0x373217={'messageId':_0x126318[_0x0531('0x51')][0x0]};return _0x57614b[_0x0531('0x1b')](_0x373217);})[_0x0531('0x2a')](function(_0x54247f){logger['error'](_0x0531('0x2c'),_0x0531('0x2d'),'plivo',util['inspect'](_0x54247f,{'showHidden':![],'depth':null}));});}else{logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x4d'),_0x0531('0x52'));}break;case _0x0531('0x53'):if(_0x351732['username']&&_0x351732[_0x0531('0x32')]){if(_0x351732[_0x0531('0x54')]){var _0x3404d3={'method':_0x0531('0x40'),'uri':_0x351732['baseUrl']+_0x0531('0x55'),'body':{'username':_0x351732[_0x0531('0x31')],'password':_0x351732[_0x0531('0x32')]},'json':!![]};return rp(_0x3404d3)[_0x0531('0x1a')](function(_0x5b850a){var _0x17067c={'method':'POST','uri':_0x351732[_0x0531('0x54')]+_0x0531('0x56'),'body':{'messages':[{'from':_0x351732[_0x0531('0x23')],'destinations':[{'to':_0x13f7c9[_0x0531('0x23')]}],'text':_0x13f7c9[_0x0531('0xf')],'notifyUrl':_0x351732[_0x0531('0x25')]+_0x0531('0x26')+_0x13f7c9['id']+_0x0531('0x27')+_0x351732[_0x0531('0x28')],'notifyContentType':_0x0531('0x57'),'callbackData':_0x351732['phone']+';'+_0x13f7c9[_0x0531('0xf')]}]},'headers':{'Authorization':_0x0531('0x58')+_0x5b850a[_0x0531('0x28')]},'json':!![]};return rp(_0x17067c)[_0x0531('0x1a')](function(_0x397f98){if(_0x397f98[_0x0531('0x24')]){var _0x24c2b6={'messageId':_0x397f98[_0x0531('0x24')][0x0][_0x0531('0xd')]};if(!_0x351732['deliveryReport']){_0x24c2b6[_0x0531('0x3c')]=!![];}return _0x57614b['update'](_0x24c2b6);}else{return logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),'infobip',util[_0x0531('0x2e')](_0x397f98,{'showHidden':![],'depth':null}));}});})[_0x0531('0x2a')](function(_0x557c2b){return logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x53'),util[_0x0531('0x2e')](_0x557c2b,{'showHidden':![],'depth':null}));});}else{logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x53'),_0x0531('0x59'));}}else{logger['error'](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x53'),'Missing\x20parameters:\x20username,\x20password');}break;case _0x0531('0x5a'):var _0x54f35f=require(_0x0531('0x5b'));if(_0x351732[_0x0531('0x5c')]){var _0x2505cf={};_0x2505cf[_0x0531('0x5d')]=_0x351732[_0x0531('0x31')];_0x2505cf['phone']=_0x13f7c9[_0x0531('0x23')];_0x2505cf[_0x0531('0x34')]=_0x351732['phone'];_0x2505cf['text']=_0x13f7c9[_0x0531('0xf')];_0x2505cf[_0x0531('0x5e')]=+new Date();var _0x4dea8d='';var _0x223d63='';var _0x103a88=Object[_0x0531('0x5f')](_0x2505cf);_0x103a88[_0x0531('0x60')]();for(var _0xf6ccf5=0x0;_0xf6ccf5<_0x103a88['length'];_0xf6ccf5++){if(_0x4dea8d!=''){_0x4dea8d+='&';}_0x4dea8d+=_0x103a88[_0xf6ccf5]+'='+encodeURIComponent(_0x2505cf[_0x103a88[_0xf6ccf5]]);_0x223d63+=_0x2505cf[_0x103a88[_0xf6ccf5]];}_0x223d63+=_0x351732[_0x0531('0x5c')];_0x223d63=_0x54f35f['createHash'](_0x0531('0x61'))[_0x0531('0x1b')](_0x223d63)[_0x0531('0x62')]('hex');if(_0x4dea8d!==''){_0x4dea8d+='&';}_0x4dea8d+=_0x0531('0x63')+_0x223d63;var _0xbce54d={'method':_0x0531('0x36'),'uri':_0x351732[_0x0531('0x54')]+_0x0531('0x64')+_0x4dea8d,'json':!![]};return rp(_0xbce54d)[_0x0531('0x1a')](function(_0x5caa95){var _0x3ba294=Object[_0x0531('0x5f')](_0x5caa95);if(_0x5caa95[_0x3ba294[0x0]][_0x0531('0x2b')]&&parseInt(_0x5caa95[_0x3ba294[0x0]][_0x0531('0x2b')])===0x0){var _0x2ec19c={'messageId':_0x5caa95[_0x3ba294[0x0]]['id_sms']};if(!_0x351732[_0x0531('0x3b')]){_0x2ec19c[_0x0531('0x3c')]=!![];}return _0x57614b['update'](_0x2ec19c);}else{return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x0531('0x2d'),_0x0531('0x5a'),util['inspect'](_0x5caa95[_0x0531('0x2b')],{'showHidden':![],'depth':null}));}})[_0x0531('0x2a')](function(_0x5c1221){return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x0531('0x2d'),_0x0531('0x5a'),util[_0x0531('0x2e')](_0x5c1221,{'showHidden':![],'depth':null}));});}else{logger[_0x0531('0x2b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x0531('0x2d'),_0x0531('0x5a'),_0x0531('0x65'));}break;case _0x0531('0x66'):if(_0x351732[_0x0531('0x5c')]){var _0x9b0c03={'method':_0x0531('0x40'),'uri':_0x0531('0x67'),'headers':{'Authorization':_0x351732[_0x0531('0x5c')]},'body':{'content':_0x13f7c9[_0x0531('0xf')],'to':[_0x13f7c9['phone']],'from':_0x351732[_0x0531('0x23')],'binary':![],'clientMessageId':_0x0531('0x68'),'charset':'UTF-8'},'json':!![]};rp(_0x9b0c03)[_0x0531('0x1a')](function(_0x5bf0f0){if(!_0x5bf0f0[_0x0531('0x2b')]){var _0x3be440={'messageId':_0x5bf0f0[_0x0531('0x24')][0x0][_0x0531('0x69')]};if(!_0x351732[_0x0531('0x3b')]){_0x3be440[_0x0531('0x3c')]=!![];}return _0x57614b[_0x0531('0x1b')](_0x3be440);}else{return logger['error'](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x66'),util[_0x0531('0x2e')](_0x5bf0f0[_0x0531('0x2b')],{'showHidden':![],'depth':null}));}})[_0x0531('0x2a')](function(_0x38dc33){return logger[_0x0531('0x2b')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','clickatell',util[_0x0531('0x2e')](_0x38dc33,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x0531('0x2d'),'clickatell','Missing\x20parameters:\x20apiKey');}break;case'bandwidth':if(_0x351732[_0x0531('0x31')]&&_0x351732[_0x0531('0x32')]){var _0xe2a0e5=util[_0x0531('0x44')]('%s:%s',_0x351732['username'],_0x351732[_0x0531('0x32')]);var _0x5374d6={'method':_0x0531('0x40'),'uri':'https://messaging.bandwidth.com/api/v2/users/'+_0x351732[_0x0531('0x6a')]+_0x0531('0x6b'),'body':{'to':[_0x13f7c9[_0x0531('0x23')]],'text':_0x13f7c9[_0x0531('0xf')],'from':_0x351732['phone'],'applicationId':_0x351732['applicationId']},'headers':{'Authorization':util[_0x0531('0x44')](_0x0531('0x46'),new Buffer(_0xe2a0e5)[_0x0531('0x47')](_0x0531('0x50')))},'json':!![]};rp(_0x5374d6)[_0x0531('0x1a')](function(_0x5c454d){if(_0x5c454d['id']){var _0x2e19db={'messageId':_0x5c454d['id']};return _0x57614b['update'](_0x2e19db);}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x0531('0x2d'),_0x0531('0x6c'),util[_0x0531('0x2e')](_0x5c454d,{'showHidden':![],'depth':null}));}})['catch'](function(_0x35c685){logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x6c'),util[_0x0531('0x2e')](_0x35c685,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x6c'),'Missing\x20parameters:\x20username,\x20password');}break;case _0x0531('0x6d'):if(_0x351732[_0x0531('0x5c')]){var _0x1e0207={};var _0xbce54d={'method':'POST','uri':_0x0531('0x6e'),'headers':{'Authorization':'Bearer\x20'+_0x351732[_0x0531('0x5c')],'Content-Type':_0x0531('0x57')},'body':{'from':_0x351732['phone'],'to':_0x13f7c9[_0x0531('0x23')],'text':_0x13f7c9[_0x0531('0xf')]},'json':!![]};return rp(_0xbce54d)[_0x0531('0x1a')](function(_0x4e806f){if(_0x4e806f['code']==0xca){_0x1e0207[_0x0531('0x6f')]=_0x4e806f;var _0x31b335={'method':_0x0531('0x40'),'uri':_0x0531('0x70'),'headers':{'Authorization':_0x0531('0x71')+_0x351732[_0x0531('0x5c')],'Content-Type':_0x0531('0x57')},'body':{'refid':_0x1e0207[_0x0531('0x6f')][_0x0531('0x72')]},'json':!![]};return rp(_0x31b335)[_0x0531('0x1a')](function(_0x58563f){_0x1e0207[_0x0531('0x73')]=_0x58563f;var _0x262763={'messageId':_0x1e0207['message'][_0x0531('0x72')],'read':!![]};return _0x57614b['update'](_0x262763);});}else{return logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),'intelepeer',util[_0x0531('0x2e')](_0x4e806f,{'showHidden':![],'depth':null}));}})[_0x0531('0x2a')](function(_0x57d0a1){return logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),_0x0531('0x6d'),util[_0x0531('0x2e')](_0x57d0a1,{'showHidden':![],'depth':null}));});}else{return logger[_0x0531('0x2b')](_0x0531('0x2c'),_0x0531('0x2d'),'intelepeer',_0x0531('0x74'));}break;}}})['finally'](function(){_0x3fae21();});}else{_0x3fae21();}}},'charset':_0x0531('0x75'),'collate':_0x0531('0x76')});};
\ No newline at end of file
+var _0xadb8=['https://api.intelepeer.com/_rest/v4/app/sms/send','https://api.intelepeer.com/_rest/v4/app/sms/mdr','Bearer\x20','message','status','finally','utf8mb4','utf8mb4_unicode_ci','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./smsMessage.attributes','define','SmsMessage','sms_messages','messageId','models','get','direction','toLowerCase','out','secret','isNil','SmsInteractionId','update','createdAt','catch','error','SmsAccount','then','type','twilio','accountSid','authToken','phone','create','body','remote','/api/sms/messages/','/status?token=','token','sid','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','https://api.skebby.it/API/v1.0/REST/','password','smsMethod','sender','login?username=','&password=','GET','split','sms','POST','total_sent','internal_order_id','deliveryReport','read','Missing\x20parameters:\x20username,\x20password','https://smsapi.connectel.se/api/v2/send/','requestid','connectel','Missing\x20parameters:\x20authToken','username','xCALLY\x20Motion','%s:%s','format','Basic\x20%s','toString','base64','http_code','data','head','messages','message_id','clickSend','plivo','authId','senderString','https://api.plivo.com/v1/Account/%s/Message/','message_uuid','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','IBSSO\x20','infobip','Missing\x20parameters:\x20base_url','csc','crypto','text','keys','sort','apiKey','createHash','md5','digest','hex','signature=','clickatell','https://platform.clickatell.com/messages','uuid','apiMessageId','Missing\x20parameters:\x20apiKey','bandwidth','/messages','intelepeer'];(function(_0x1cd47d,_0x55bc75){var _0x29d52f=function(_0x37737a){while(--_0x37737a){_0x1cd47d['push'](_0x1cd47d['shift']());}};_0x29d52f(++_0x55bc75);}(_0xadb8,0x1d0));var _0x8adb=function(_0x5a7d41,_0x4447e2){_0x5a7d41=_0x5a7d41-0x0;var _0x98d8fa=_0xadb8[_0x5a7d41];return _0x98d8fa;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x8adb('0x0'))('api');var moment=require(_0x8adb('0x1'));var BPromise=require(_0x8adb('0x2'));var rp=require(_0x8adb('0x3'));var fs=require('fs');var path=require(_0x8adb('0x4'));var rimraf=require(_0x8adb('0x5'));var config=require(_0x8adb('0x6'));var attributes=require(_0x8adb('0x7'));module['exports']=function(_0x15bc63,_0x1a5f36){return _0x15bc63[_0x8adb('0x8')](_0x8adb('0x9'),attributes,{'tableName':_0x8adb('0xa'),'paranoid':![],'indexes':[{'name':_0x8adb('0xb'),'fields':[_0x8adb('0xb')]},{'name':'fti_sms_messages','fields':['body'],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4695c6,_0x5be2f4,_0x4d986d){var _0x52f6c3=_0x15bc63[_0x8adb('0xc')];var _0x628c45=_0x4695c6[_0x8adb('0xd')]({'plain':!![]});if(_0x628c45[_0x8adb('0xe')][_0x8adb('0xf')]()==='in'||_0x628c45[_0x8adb('0xe')][_0x8adb('0xf')]()===_0x8adb('0x10')&&!_0x628c45[_0x8adb('0x11')]&&!_[_0x8adb('0x12')](_0x628c45['UserId'])){_0x52f6c3['SmsInteraction']['findOne']({'where':{'id':_0x628c45[_0x8adb('0x13')]}})['then'](function(_0xe9280c){if(_0xe9280c){_0xe9280c[_0x8adb('0x14')]({'lastMsgAt':_0x628c45[_0x8adb('0x15')],'lastMsgDirection':_0x628c45['direction'][_0x8adb('0xf')]()});}})[_0x8adb('0x16')](function(_0x1096fb){console[_0x8adb('0x17')](_0x1096fb);});}if(_0x628c45[_0x8adb('0xe')]===_0x8adb('0x10')&&!_0x628c45['secret']){var _0xc01052;_0x52f6c3[_0x8adb('0x18')]['find']({'where':{'id':_0x628c45['SmsAccountId']},'raw':!![]})[_0x8adb('0x19')](function(_0x30ef5a){_0xc01052=_0x30ef5a;if(_0xc01052&&_0xc01052[_0x8adb('0x1a')]){switch(_0xc01052[_0x8adb('0x1a')]){case _0x8adb('0x1b'):var _0x3c1720=require(_0x8adb('0x1b'));if(_0xc01052[_0x8adb('0x1c')]&&_0xc01052[_0x8adb('0x1d')]&&_0xc01052[_0x8adb('0x1e')]){var _0x36c62a=new _0x3c1720(_0xc01052[_0x8adb('0x1c')],_0xc01052['authToken']);_0x36c62a['messages'][_0x8adb('0x1f')]({'body':_0x628c45[_0x8adb('0x20')],'to':_0x628c45['phone'],'from':_0xc01052[_0x8adb('0x1e')],'statusCallback':_0xc01052[_0x8adb('0x21')]+_0x8adb('0x22')+_0x628c45['id']+_0x8adb('0x23')+_0xc01052[_0x8adb('0x24')]})[_0x8adb('0x19')](function(_0x542156){if(_0x542156[_0x8adb('0x25')]){return _0x4695c6[_0x8adb('0x14')]({'messageId':_0x542156[_0x8adb('0x25')]});}})['catch'](function(_0x5c8c18){logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),_0x8adb('0x1b'),util[_0x8adb('0x28')](_0x5c8c18,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x8adb('0x26'),_0x8adb('0x27'),_0x8adb('0x1b'),_0x8adb('0x29'));}break;case _0x8adb('0x2a'):var _0x4aca77=_0x8adb('0x2b');if(_0xc01052['username']&&_0xc01052[_0x8adb('0x2c')]){var _0x3b6c55={'recipient':[_0x628c45[_0x8adb('0x1e')]],'message':_0x628c45[_0x8adb('0x20')],'message_type':_0xc01052['smsMethod']};if(_0xc01052[_0x8adb('0x2d')]&&_0xc01052['smsMethod']!=='SI'){_0x3b6c55[_0x8adb('0x2e')]=_0xc01052[_0x8adb('0x1e')];}var _0x47e337={'url':_0x4aca77+_0x8adb('0x2f')+_0xc01052['username']+_0x8adb('0x30')+_0xc01052['password'],'method':_0x8adb('0x31')};rp(_0x47e337)['then'](function(_0x1d4962){var _0x1661a3=_0x1d4962[_0x8adb('0x32')](';');var _0x1cb97c={'user_key':_0x1661a3[0x0],'session_key':_0x1661a3[0x1]};_0x47e337={'url':_0x4aca77+_0x8adb('0x33'),'method':_0x8adb('0x34'),'headers':{'user_key':_0x1cb97c['user_key'],'Session_key':_0x1cb97c['session_key']},'json':!![],'body':_0x3b6c55};return rp(_0x47e337);})[_0x8adb('0x19')](function(_0x46fc72){if(_0x46fc72[_0x8adb('0x35')]>=0x1){var _0x77e99f={'messageId':_0x46fc72[_0x8adb('0x36')]};if(_0xc01052[_0x8adb('0x2d')]!=='GP'||!_0xc01052[_0x8adb('0x37')]){_0x77e99f[_0x8adb('0x38')]=!![];}return _0x4695c6[_0x8adb('0x14')](_0x77e99f);}else{return logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),_0x8adb('0x2a'),util['inspect'](_0x46fc72,{'showHidden':![],'depth':null}));}})[_0x8adb('0x16')](function(_0x420ae0){return logger['error'](_0x8adb('0x26'),'afterCreate',_0x8adb('0x2a'),util[_0x8adb('0x28')](_0x420ae0,{'showHidden':![],'depth':null}));});}else{logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),'skebby',_0x8adb('0x39'));}break;case'connectel':if(_0xc01052[_0x8adb('0x1d')]){var _0x1fcbd4={'recipient':_0x628c45['phone'],'message':_0x628c45[_0x8adb('0x20')],'sender':_0xc01052['senderString']||_0xc01052[_0x8adb('0x1e')],'authorization':_0xc01052['authToken']};var _0x5be2f4={'method':_0x8adb('0x34'),'uri':_0x8adb('0x3a'),'body':_0x1fcbd4,'json':!![]};rp(_0x5be2f4)['then'](function(_0x54aab3){var _0x182c4b={'messageId':_0x54aab3[_0x8adb('0x3b')]};if(!_0xc01052['deliveryReport']){_0x182c4b[_0x8adb('0x38')]=!![];}return _0x4695c6[_0x8adb('0x14')](_0x182c4b);})[_0x8adb('0x16')](function(_0x3872c9){logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),_0x8adb('0x3c'),util['inspect'](_0x3872c9,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x8adb('0x26'),_0x8adb('0x27'),_0x8adb('0x3c'),_0x8adb('0x3d'));}break;case'clicksend':if(_0xc01052[_0x8adb('0x3e')]&&_0xc01052['password']){var _0x1fcbd4={'messages':[{'source':_0x8adb('0x3f'),'to':_0x628c45[_0x8adb('0x1e')],'body':_0x628c45[_0x8adb('0x20')],'from':_0xc01052['senderString']||_0xc01052['phone']}]};var _0x1ae4a2=util['format'](_0x8adb('0x40'),_0xc01052['username'],_0xc01052['password']);var _0x5be2f4={'method':_0x8adb('0x34'),'uri':'https://rest.clicksend.com/v3/sms/send','body':_0x1fcbd4,'headers':{'Authorization':util[_0x8adb('0x41')](_0x8adb('0x42'),new Buffer(_0x1ae4a2)[_0x8adb('0x43')](_0x8adb('0x44')))},'json':!![]};rp(_0x5be2f4)[_0x8adb('0x19')](function(_0x54f741){if(_0x54f741[_0x8adb('0x45')]>=0xc8&&_0x54f741['http_code']<=0xce){if(_0x54f741[_0x8adb('0x46')]&&_0x54f741[_0x8adb('0x46')]['queued_count']>0x0){var _0x53953e=_[_0x8adb('0x47')](_0x54f741['data'][_0x8adb('0x48')]);var _0x1ade43={'messageId':_0x53953e[_0x8adb('0x49')]};if(!_0xc01052[_0x8adb('0x37')]){_0x1ade43['read']=!![];}return _0x4695c6[_0x8adb('0x14')](_0x1ade43);}else{logger[_0x8adb('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x8adb('0x4a'),util[_0x8adb('0x28')](_0x54f741,{'showHidden':![],'depth':null}));}}else{logger[_0x8adb('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8adb('0x27'),_0x8adb('0x4a'),util[_0x8adb('0x28')](_0x54f741,{'showHidden':![],'depth':null}));}})[_0x8adb('0x16')](function(_0x2f6031){logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),_0x8adb('0x4a'),util[_0x8adb('0x28')](_0x2f6031,{'showHidden':![],'depth':null}));});}else{logger[_0x8adb('0x17')](_0x8adb('0x26'),'afterCreate',_0x8adb('0x4a'),_0x8adb('0x39'));}break;case _0x8adb('0x4b'):if(_0xc01052[_0x8adb('0x4c')]&&_0xc01052[_0x8adb('0x1d')]){var _0x1fcbd4={'dst':_0x628c45[_0x8adb('0x1e')],'text':_0x628c45[_0x8adb('0x20')],'src':_0xc01052[_0x8adb('0x4d')]||_0xc01052[_0x8adb('0x1e')],'url':_0xc01052['remote']+_0x8adb('0x22')+_0x628c45['id']+_0x8adb('0x23')+_0xc01052[_0x8adb('0x24')]};var _0x1ae4a2=util[_0x8adb('0x41')](_0x8adb('0x40'),_0xc01052[_0x8adb('0x4c')],_0xc01052[_0x8adb('0x1d')]);var _0x5be2f4={'method':_0x8adb('0x34'),'uri':util[_0x8adb('0x41')](_0x8adb('0x4e'),_0xc01052[_0x8adb('0x4c')]),'body':_0x1fcbd4,'headers':{'Authorization':util['format'](_0x8adb('0x42'),new Buffer(_0x1ae4a2)[_0x8adb('0x43')](_0x8adb('0x44')))},'json':!![]};rp(_0x5be2f4)[_0x8adb('0x19')](function(_0x549a7a){var _0x415dc0={'messageId':_0x549a7a[_0x8adb('0x4f')][0x0]};return _0x4695c6[_0x8adb('0x14')](_0x415dc0);})[_0x8adb('0x16')](function(_0x3ede2b){logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),_0x8adb('0x4b'),util[_0x8adb('0x28')](_0x3ede2b,{'showHidden':![],'depth':null}));});}else{logger[_0x8adb('0x17')](_0x8adb('0x26'),'afterCreate',_0x8adb('0x4b'),'Missing\x20parameters:\x20authId,\x20authToken');}break;case'infobip':if(_0xc01052[_0x8adb('0x3e')]&&_0xc01052[_0x8adb('0x2c')]){if(_0xc01052['baseUrl']){var _0x272899={'method':_0x8adb('0x34'),'uri':_0xc01052[_0x8adb('0x50')]+_0x8adb('0x51'),'body':{'username':_0xc01052['username'],'password':_0xc01052[_0x8adb('0x2c')]},'json':!![]};return rp(_0x272899)['then'](function(_0x26d693){var _0x43b78a={'method':_0x8adb('0x34'),'uri':_0xc01052['baseUrl']+_0x8adb('0x52'),'body':{'messages':[{'from':_0xc01052['phone'],'destinations':[{'to':_0x628c45[_0x8adb('0x1e')]}],'text':_0x628c45[_0x8adb('0x20')],'notifyUrl':_0xc01052[_0x8adb('0x21')]+'/api/sms/messages/'+_0x628c45['id']+_0x8adb('0x23')+_0xc01052[_0x8adb('0x24')],'notifyContentType':_0x8adb('0x53'),'callbackData':_0xc01052[_0x8adb('0x1e')]+';'+_0x628c45['body']}]},'headers':{'Authorization':_0x8adb('0x54')+_0x26d693[_0x8adb('0x24')]},'json':!![]};return rp(_0x43b78a)['then'](function(_0x1f1961){if(_0x1f1961[_0x8adb('0x48')]){var _0x43730e={'messageId':_0x1f1961['messages'][0x0][_0x8adb('0xb')]};if(!_0xc01052[_0x8adb('0x37')]){_0x43730e[_0x8adb('0x38')]=!![];}return _0x4695c6[_0x8adb('0x14')](_0x43730e);}else{return logger['error'](_0x8adb('0x26'),'afterCreate','infobip',util['inspect'](_0x1f1961,{'showHidden':![],'depth':null}));}});})[_0x8adb('0x16')](function(_0x3ea3b9){return logger[_0x8adb('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8adb('0x27'),'infobip',util[_0x8adb('0x28')](_0x3ea3b9,{'showHidden':![],'depth':null}));});}else{logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),_0x8adb('0x55'),_0x8adb('0x56'));}}else{logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),'infobip',_0x8adb('0x39'));}break;case _0x8adb('0x57'):var _0x4659ee=require(_0x8adb('0x58'));if(_0xc01052['apiKey']){var _0x30d2a7={};_0x30d2a7['login']=_0xc01052[_0x8adb('0x3e')];_0x30d2a7[_0x8adb('0x1e')]=_0x628c45[_0x8adb('0x1e')];_0x30d2a7[_0x8adb('0x2e')]=_0xc01052['phone'];_0x30d2a7[_0x8adb('0x59')]=_0x628c45[_0x8adb('0x20')];_0x30d2a7['timestamp']=+new Date();var _0x4f47fb='';var _0x504ab2='';var _0x366b92=Object[_0x8adb('0x5a')](_0x30d2a7);_0x366b92[_0x8adb('0x5b')]();for(var _0x551dd9=0x0;_0x551dd9<_0x366b92['length'];_0x551dd9++){if(_0x4f47fb!=''){_0x4f47fb+='&';}_0x4f47fb+=_0x366b92[_0x551dd9]+'='+encodeURIComponent(_0x30d2a7[_0x366b92[_0x551dd9]]);_0x504ab2+=_0x30d2a7[_0x366b92[_0x551dd9]];}_0x504ab2+=_0xc01052[_0x8adb('0x5c')];_0x504ab2=_0x4659ee[_0x8adb('0x5d')](_0x8adb('0x5e'))['update'](_0x504ab2)[_0x8adb('0x5f')](_0x8adb('0x60'));if(_0x4f47fb!==''){_0x4f47fb+='&';}_0x4f47fb+=_0x8adb('0x61')+_0x504ab2;var _0x47e337={'method':_0x8adb('0x31'),'uri':_0xc01052[_0x8adb('0x50')]+'/external/get/send.php?'+_0x4f47fb,'json':!![]};return rp(_0x47e337)[_0x8adb('0x19')](function(_0x53078f){var _0x5d17d4=Object[_0x8adb('0x5a')](_0x53078f);if(_0x53078f[_0x5d17d4[0x0]][_0x8adb('0x17')]&&parseInt(_0x53078f[_0x5d17d4[0x0]][_0x8adb('0x17')])===0x0){var _0x572cdc={'messageId':_0x53078f[_0x5d17d4[0x0]]['id_sms']};if(!_0xc01052[_0x8adb('0x37')]){_0x572cdc[_0x8adb('0x38')]=!![];}return _0x4695c6[_0x8adb('0x14')](_0x572cdc);}else{return logger[_0x8adb('0x17')](_0x8adb('0x26'),'afterCreate',_0x8adb('0x57'),util['inspect'](_0x53078f['error'],{'showHidden':![],'depth':null}));}})['catch'](function(_0x3e1149){return logger['error'](_0x8adb('0x26'),_0x8adb('0x27'),_0x8adb('0x57'),util['inspect'](_0x3e1149,{'showHidden':![],'depth':null}));});}else{logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),'csc','Missing\x20parameters:\x20apiKey');}break;case _0x8adb('0x62'):if(_0xc01052[_0x8adb('0x5c')]){var _0x1e623e={'method':_0x8adb('0x34'),'uri':_0x8adb('0x63'),'headers':{'Authorization':_0xc01052['apiKey']},'body':{'content':_0x628c45[_0x8adb('0x20')],'to':[_0x628c45[_0x8adb('0x1e')]],'from':_0xc01052[_0x8adb('0x1e')],'binary':![],'clientMessageId':_0x8adb('0x64'),'charset':'UTF-8'},'json':!![]};rp(_0x1e623e)[_0x8adb('0x19')](function(_0x3b897d){if(!_0x3b897d[_0x8adb('0x17')]){var _0x3353ae={'messageId':_0x3b897d[_0x8adb('0x48')][0x0][_0x8adb('0x65')]};if(!_0xc01052['deliveryReport']){_0x3353ae[_0x8adb('0x38')]=!![];}return _0x4695c6[_0x8adb('0x14')](_0x3353ae);}else{return logger['error'](_0x8adb('0x26'),_0x8adb('0x27'),_0x8adb('0x62'),util[_0x8adb('0x28')](_0x3b897d[_0x8adb('0x17')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x15e8b){return logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),_0x8adb('0x62'),util['inspect'](_0x15e8b,{'showHidden':![],'depth':null}));});}else{logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),'clickatell',_0x8adb('0x66'));}break;case _0x8adb('0x67'):if(_0xc01052[_0x8adb('0x3e')]&&_0xc01052['password']){var _0x1ae4a2=util[_0x8adb('0x41')](_0x8adb('0x40'),_0xc01052[_0x8adb('0x3e')],_0xc01052[_0x8adb('0x2c')]);var _0x5be2f4={'method':_0x8adb('0x34'),'uri':'https://messaging.bandwidth.com/api/v2/users/'+_0xc01052['accountId']+_0x8adb('0x68'),'body':{'to':[_0x628c45[_0x8adb('0x1e')]],'text':_0x628c45[_0x8adb('0x20')],'from':_0xc01052[_0x8adb('0x1e')],'applicationId':_0xc01052['applicationId']},'headers':{'Authorization':util[_0x8adb('0x41')](_0x8adb('0x42'),new Buffer(_0x1ae4a2)[_0x8adb('0x43')](_0x8adb('0x44')))},'json':!![]};rp(_0x5be2f4)[_0x8adb('0x19')](function(_0x37bd3c){if(_0x37bd3c['id']){var _0x12089f={'messageId':_0x37bd3c['id']};return _0x4695c6[_0x8adb('0x14')](_0x12089f);}else{logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),'bandwidth',util[_0x8adb('0x28')](_0x37bd3c,{'showHidden':![],'depth':null}));}})[_0x8adb('0x16')](function(_0x323d88){logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),'bandwidth',util['inspect'](_0x323d88,{'showHidden':![],'depth':null}));});}else{logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),_0x8adb('0x67'),_0x8adb('0x39'));}break;case _0x8adb('0x69'):if(_0xc01052[_0x8adb('0x5c')]){var _0x449dc5={};var _0x47e337={'method':'POST','uri':_0x8adb('0x6a'),'headers':{'Authorization':'Bearer\x20'+_0xc01052['apiKey'],'Content-Type':'application/json'},'body':{'from':_0xc01052[_0x8adb('0x1e')],'to':_0x628c45['phone'],'text':_0x628c45[_0x8adb('0x20')]},'json':!![]};return rp(_0x47e337)[_0x8adb('0x19')](function(_0x4bc2b4){if(_0x4bc2b4['code']==0xca){_0x449dc5['message']=_0x4bc2b4;var _0x59d565={'method':_0x8adb('0x34'),'uri':_0x8adb('0x6b'),'headers':{'Authorization':_0x8adb('0x6c')+_0xc01052[_0x8adb('0x5c')],'Content-Type':_0x8adb('0x53')},'body':{'refid':_0x449dc5[_0x8adb('0x6d')]['refid']},'json':!![]};return rp(_0x59d565)[_0x8adb('0x19')](function(_0x266009){_0x449dc5[_0x8adb('0x6e')]=_0x266009;var _0x176cef={'messageId':_0x449dc5[_0x8adb('0x6d')]['refid'],'read':!![]};return _0x4695c6['update'](_0x176cef);});}else{return logger[_0x8adb('0x17')](_0x8adb('0x26'),'afterCreate','intelepeer',util[_0x8adb('0x28')](_0x4bc2b4,{'showHidden':![],'depth':null}));}})[_0x8adb('0x16')](function(_0x3413d7){return logger[_0x8adb('0x17')](_0x8adb('0x26'),_0x8adb('0x27'),'intelepeer',util[_0x8adb('0x28')](_0x3413d7,{'showHidden':![],'depth':null}));});}else{return logger[_0x8adb('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8adb('0x27'),_0x8adb('0x69'),'Token\x20not\x20received');}break;}}})[_0x8adb('0x6f')](function(){_0x4d986d();});}else{_0x4d986d();}}},'charset':_0x8adb('0x70'),'collate':_0x8adb('0x71')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c18=['socket.io-emitter','register','request','then','info','SmsMessage,\x20%s,\x20%s','debug','SmsMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','SmsMessage','options','raw','CreateSmsMessage','lodash','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','localhost'];(function(_0x3d755e,_0x77d6d6){var _0x225d37=function(_0x1b963e){while(--_0x1b963e){_0x3d755e['push'](_0x3d755e['shift']());}};_0x225d37(++_0x77d6d6);}(_0x5c18,0x15d));var _0x85c1=function(_0x49490e,_0x57a91b){_0x49490e=_0x49490e-0x0;var _0x2a48b9=_0x5c18[_0x49490e];return _0x2a48b9;};'use strict';var _=require(_0x85c1('0x0'));var util=require('util');var moment=require(_0x85c1('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x85c1('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x85c1('0x3'));var logger=require(_0x85c1('0x4'))(_0x85c1('0x5'));var config=require(_0x85c1('0x6'));var jayson=require(_0x85c1('0x7'));var client=jayson[_0x85c1('0x8')][_0x85c1('0x9')]({'port':0x232a});config['redis']=_['defaults'](config['redis'],{'host':_0x85c1('0xa'),'port':0x18eb});var socket=require(_0x85c1('0xb'))(new Redis(config['redis']));require('./smsMessage.socket')[_0x85c1('0xc')](socket);function respondWithRpcPromise(_0x131bc4,_0x2b5c5a,_0x527b86){return new BPromise(function(_0x1e1d16,_0x57109a){return client[_0x85c1('0xd')](_0x131bc4,_0x527b86)[_0x85c1('0xe')](function(_0x45604){logger[_0x85c1('0xf')](_0x85c1('0x10'),_0x2b5c5a,'request\x20sent');logger[_0x85c1('0x11')](_0x85c1('0x12'),_0x2b5c5a,_0x85c1('0x13'),JSON[_0x85c1('0x14')](_0x45604));if(_0x45604['error']){if(_0x45604[_0x85c1('0x15')][_0x85c1('0x16')]===0x1f4){logger[_0x85c1('0x15')](_0x85c1('0x10'),_0x2b5c5a,_0x45604[_0x85c1('0x15')][_0x85c1('0x17')]);return _0x57109a(_0x45604[_0x85c1('0x15')][_0x85c1('0x17')]);}logger[_0x85c1('0x15')](_0x85c1('0x10'),_0x2b5c5a,_0x45604[_0x85c1('0x15')][_0x85c1('0x17')]);return _0x1e1d16(_0x45604['error'][_0x85c1('0x17')]);}else{logger[_0x85c1('0xf')](_0x85c1('0x10'),_0x2b5c5a,'request\x20sent');_0x1e1d16(_0x45604[_0x85c1('0x18')][_0x85c1('0x17')]);}})[_0x85c1('0x19')](function(_0x2bcee5){logger[_0x85c1('0x15')](_0x85c1('0x10'),_0x2b5c5a,_0x2bcee5);_0x57109a(_0x2bcee5);});});}exports['CreateSmsMessage']=function(_0x561c71){var _0x25f863=this;return new Promise(function(_0x4ee42f,_0x28b7ae){return db[_0x85c1('0x1a')]['create'](_0x561c71['body'],{'raw':_0x561c71[_0x85c1('0x1b')]?_0x561c71[_0x85c1('0x1b')][_0x85c1('0x1c')]===undefined?!![]:![]:!![]})[_0x85c1('0xe')](function(_0x58f6cf){logger[_0x85c1('0xf')](_0x85c1('0x1d'),_0x561c71);logger['debug'](_0x85c1('0x1d'),_0x561c71,JSON['stringify'](_0x58f6cf));_0x4ee42f(_0x58f6cf);})[_0x85c1('0x19')](function(_0x5c4f25){logger['error'](_0x85c1('0x1d'),_0x5c4f25[_0x85c1('0x17')],_0x561c71);_0x28b7ae(_0x25f863[_0x85c1('0x15')](0x1f4,_0x5c4f25[_0x85c1('0x17')]));});});};
\ No newline at end of file
+var _0x2973=['SmsMessage,\x20%s,\x20%s,\x20%s','error','message','catch','CreateSmsMessage','SmsMessage','body','options','raw','stringify','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','localhost','redis','./smsMessage.socket','register','request','then','info','SmsMessage,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x595e70,_0x1849ba){var _0xdb99ee=function(_0x56a156){while(--_0x56a156){_0x595e70['push'](_0x595e70['shift']());}};_0xdb99ee(++_0x1849ba);}(_0x2973,0x13c));var _0x3297=function(_0x3aaf78,_0x27aa1f){_0x3aaf78=_0x3aaf78-0x0;var _0x1c97b7=_0x2973[_0x3aaf78];return _0x1c97b7;};'use strict';var _=require(_0x3297('0x0'));var util=require(_0x3297('0x1'));var moment=require('moment');var BPromise=require(_0x3297('0x2'));var rs=require(_0x3297('0x3'));var fs=require('fs');var Redis=require(_0x3297('0x4'));var db=require(_0x3297('0x5'))['db'];var utils=require(_0x3297('0x6'));var logger=require(_0x3297('0x7'))(_0x3297('0x8'));var config=require(_0x3297('0x9'));var jayson=require(_0x3297('0xa'));var client=jayson[_0x3297('0xb')][_0x3297('0xc')]({'port':0x232a});config['redis']=_[_0x3297('0xd')](config['redis'],{'host':_0x3297('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x3297('0xf')]));require(_0x3297('0x10'))[_0x3297('0x11')](socket);function respondWithRpcPromise(_0x3ad49f,_0x4e7949,_0x3ade29){return new BPromise(function(_0x130211,_0x5701dd){return client[_0x3297('0x12')](_0x3ad49f,_0x3ade29)[_0x3297('0x13')](function(_0x27f650){logger[_0x3297('0x14')](_0x3297('0x15'),_0x4e7949,_0x3297('0x16'));logger[_0x3297('0x17')](_0x3297('0x18'),_0x4e7949,'request\x20sent',JSON['stringify'](_0x27f650));if(_0x27f650['error']){if(_0x27f650[_0x3297('0x19')]['code']===0x1f4){logger[_0x3297('0x19')]('SmsMessage,\x20%s,\x20%s',_0x4e7949,_0x27f650[_0x3297('0x19')][_0x3297('0x1a')]);return _0x5701dd(_0x27f650[_0x3297('0x19')][_0x3297('0x1a')]);}logger[_0x3297('0x19')](_0x3297('0x15'),_0x4e7949,_0x27f650[_0x3297('0x19')][_0x3297('0x1a')]);return _0x130211(_0x27f650[_0x3297('0x19')][_0x3297('0x1a')]);}else{logger[_0x3297('0x14')](_0x3297('0x15'),_0x4e7949,'request\x20sent');_0x130211(_0x27f650['result'][_0x3297('0x1a')]);}})[_0x3297('0x1b')](function(_0x56e9e4){logger['error']('SmsMessage,\x20%s,\x20%s',_0x4e7949,_0x56e9e4);_0x5701dd(_0x56e9e4);});});}exports[_0x3297('0x1c')]=function(_0x2a6224){var _0x3f85bb=this;return new Promise(function(_0x3d7323,_0xa2dd4f){return db[_0x3297('0x1d')]['create'](_0x2a6224[_0x3297('0x1e')],{'raw':_0x2a6224[_0x3297('0x1f')]?_0x2a6224[_0x3297('0x1f')][_0x3297('0x20')]===undefined?!![]:![]:!![]})[_0x3297('0x13')](function(_0x3e4b88){logger[_0x3297('0x14')]('CreateSmsMessage',_0x2a6224);logger[_0x3297('0x17')](_0x3297('0x1c'),_0x2a6224,JSON[_0x3297('0x21')](_0x3e4b88));_0x3d7323(_0x3e4b88);})[_0x3297('0x1b')](function(_0x37fbc1){logger[_0x3297('0x19')]('CreateSmsMessage',_0x37fbc1[_0x3297('0x1a')],_0x2a6224);_0xa2dd4f(_0x3f85bb[_0x3297('0x19')](0x1f4,_0x37fbc1[_0x3297('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6bbb=['update','emit','removeListener','./smsMessage.events','save'];(function(_0x145f49,_0x2322dd){var _0x3b1a4e=function(_0x304c11){while(--_0x304c11){_0x145f49['push'](_0x145f49['shift']());}};_0x3b1a4e(++_0x2322dd);}(_0x6bbb,0x134));var _0xb6bb=function(_0xa990b7,_0x26c527){_0xa990b7=_0xa990b7-0x0;var _0x52c99c=_0x6bbb[_0xa990b7];return _0x52c99c;};'use strict';var SmsMessageEvents=require(_0xb6bb('0x0'));var events=[_0xb6bb('0x1'),'remove',_0xb6bb('0x2')];function createListener(_0xbe1162,_0x1fb63b){return function(_0x5af6e0){_0x1fb63b[_0xb6bb('0x3')](_0xbe1162,_0x5af6e0);};}function removeListener(_0x22c674,_0x519b4a){return function(){SmsMessageEvents[_0xb6bb('0x4')](_0x22c674,_0x519b4a);};}exports['register']=function(_0x887e3c){for(var _0x1f4509=0x0,_0x517f3d=events['length'];_0x1f4509<_0x517f3d;_0x1f4509++){var _0x43412a=events[_0x1f4509];var _0x429a9c=createListener('smsMessage:'+_0x43412a,_0x887e3c);SmsMessageEvents['on'](_0x43412a,_0x429a9c);}};
\ No newline at end of file
+var _0x5f54=['emit','removeListener','register','smsMessage:','save','update'];(function(_0x2156b1,_0x1d6c41){var _0x22361c=function(_0x5e1473){while(--_0x5e1473){_0x2156b1['push'](_0x2156b1['shift']());}};_0x22361c(++_0x1d6c41);}(_0x5f54,0xb2));var _0x45f5=function(_0xddfb9d,_0x55ac5a){_0xddfb9d=_0xddfb9d-0x0;var _0x5f58be=_0x5f54[_0xddfb9d];return _0x5f58be;};'use strict';var SmsMessageEvents=require('./smsMessage.events');var events=[_0x45f5('0x0'),'remove',_0x45f5('0x1')];function createListener(_0x56e94c,_0x50f60d){return function(_0x50b0d5){_0x50f60d[_0x45f5('0x2')](_0x56e94c,_0x50b0d5);};}function removeListener(_0xdc166b,_0x402e89){return function(){SmsMessageEvents[_0x45f5('0x3')](_0xdc166b,_0x402e89);};}exports[_0x45f5('0x4')]=function(_0x24be56){for(var _0x44d25d=0x0,_0x33a42d=events['length'];_0x44d25d<_0x33a42d;_0x44d25d++){var _0x3954d2=events[_0x44d25d];var _0x36d540=createListener(_0x45f5('0x5')+_0x3954d2,_0x24be56);SmsMessageEvents['on'](_0x3954d2,_0x36d540);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x421e=['/:id/users','addAgents','/:id','update','delete','removeTeams','removeAgents','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsQueue.controller','get','/describe','isAuthenticated','describe','show','/:id/members','getMembers','/:id/teams','getTeams','getAgents','post','create'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x421e,0x147));var _0xe421=function(_0xc77c92,_0x8a9f1){_0xc77c92=_0xc77c92-0x0;var _0x51319b=_0x421e[_0xc77c92];return _0x51319b;};'use strict';var multer=require(_0xe421('0x0'));var util=require(_0xe421('0x1'));var path=require(_0xe421('0x2'));var timeout=require(_0xe421('0x3'));var express=require('express');var router=express[_0xe421('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xe421('0x5'));var interaction=require(_0xe421('0x6'));var config=require(_0xe421('0x7'));var controller=require(_0xe421('0x8'));router[_0xe421('0x9')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0xe421('0xa'),auth[_0xe421('0xb')](),controller[_0xe421('0xc')]);router['get']('/:id',auth[_0xe421('0xb')](),controller[_0xe421('0xd')]);router['get'](_0xe421('0xe'),auth[_0xe421('0xb')](),controller[_0xe421('0xf')]);router[_0xe421('0x9')](_0xe421('0x10'),auth[_0xe421('0xb')](),controller[_0xe421('0x11')]);router[_0xe421('0x9')]('/:id/users',auth[_0xe421('0xb')](),controller[_0xe421('0x12')]);router[_0xe421('0x13')]('/',auth[_0xe421('0xb')](),controller[_0xe421('0x14')]);router['post'](_0xe421('0x10'),auth[_0xe421('0xb')](),controller['addTeams']);router[_0xe421('0x13')](_0xe421('0x15'),auth[_0xe421('0xb')](),controller[_0xe421('0x16')]);router['put'](_0xe421('0x17'),auth[_0xe421('0xb')](),controller[_0xe421('0x18')]);router[_0xe421('0x19')](_0xe421('0x17'),auth[_0xe421('0xb')](),controller['destroy']);router['delete'](_0xe421('0x10'),auth[_0xe421('0xb')](),controller[_0xe421('0x1a')]);router['delete']('/:id/users',auth[_0xe421('0xb')](),controller[_0xe421('0x1b')]);module[_0xe421('0x1c')]=router;
\ No newline at end of file
+var _0xfbb2=['/:id/members','/:id/teams','getTeams','/:id/users','getAgents','post','addTeams','addAgents','put','/:id','update','delete','destroy','removeTeams','removeAgents','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./smsQueue.controller','get','isAuthenticated','/describe','describe','show'];(function(_0x3906bc,_0x225557){var _0x340a61=function(_0x39f8a1){while(--_0x39f8a1){_0x3906bc['push'](_0x3906bc['shift']());}};_0x340a61(++_0x225557);}(_0xfbb2,0xe9));var _0x2fbb=function(_0x293440,_0x357eff){_0x293440=_0x293440-0x0;var _0x596af9=_0xfbb2[_0x293440];return _0x596af9;};'use strict';var multer=require(_0x2fbb('0x0'));var util=require(_0x2fbb('0x1'));var path=require(_0x2fbb('0x2'));var timeout=require(_0x2fbb('0x3'));var express=require(_0x2fbb('0x4'));var router=express[_0x2fbb('0x5')]();var fs_extra=require(_0x2fbb('0x6'));var auth=require(_0x2fbb('0x7'));var interaction=require(_0x2fbb('0x8'));var config=require('../../config/environment');var controller=require(_0x2fbb('0x9'));router[_0x2fbb('0xa')]('/',auth[_0x2fbb('0xb')](),controller['index']);router['get'](_0x2fbb('0xc'),auth[_0x2fbb('0xb')](),controller[_0x2fbb('0xd')]);router[_0x2fbb('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x2fbb('0xe')]);router['get'](_0x2fbb('0xf'),auth[_0x2fbb('0xb')](),controller['getMembers']);router[_0x2fbb('0xa')](_0x2fbb('0x10'),auth[_0x2fbb('0xb')](),controller[_0x2fbb('0x11')]);router[_0x2fbb('0xa')](_0x2fbb('0x12'),auth[_0x2fbb('0xb')](),controller[_0x2fbb('0x13')]);router[_0x2fbb('0x14')]('/',auth[_0x2fbb('0xb')](),controller['create']);router[_0x2fbb('0x14')](_0x2fbb('0x10'),auth[_0x2fbb('0xb')](),controller[_0x2fbb('0x15')]);router[_0x2fbb('0x14')](_0x2fbb('0x12'),auth[_0x2fbb('0xb')](),controller[_0x2fbb('0x16')]);router[_0x2fbb('0x17')](_0x2fbb('0x18'),auth[_0x2fbb('0xb')](),controller[_0x2fbb('0x19')]);router[_0x2fbb('0x1a')]('/:id',auth['isAuthenticated'](),controller[_0x2fbb('0x1b')]);router[_0x2fbb('0x1a')]('/:id/teams',auth[_0x2fbb('0xb')](),controller[_0x2fbb('0x1c')]);router[_0x2fbb('0x1a')]('/:id/users',auth[_0x2fbb('0xb')](),controller[_0x2fbb('0x1d')]);module[_0x2fbb('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b54=['ENUM','rrmemory','sequelize','exports','name','STRING','INTEGER'];(function(_0x3f88bc,_0xe38cf5){var _0x4df1c4=function(_0x111de1){while(--_0x111de1){_0x3f88bc['push'](_0x3f88bc['shift']());}};_0x4df1c4(++_0xe38cf5);}(_0x7b54,0x159));var _0x47b5=function(_0x21cd08,_0x16cd11){_0x21cd08=_0x21cd08-0x0;var _0x1d77ba=_0x7b54[_0x21cd08];return _0x1d77ba;};'use strict';var Sequelize=require(_0x47b5('0x0'));module[_0x47b5('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x47b5('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x47b5('0x3')]},'timeout':{'type':Sequelize[_0x47b5('0x4')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x47b5('0x5')](_0x47b5('0x6'),'beepall','roundrobin')}};
\ No newline at end of file
+var _0x98cb=['exports','STRING','name','INTEGER','ENUM','beepall','roundrobin','sequelize'];(function(_0x54c277,_0xd94cfc){var _0x22b9e0=function(_0x4703ab){while(--_0x4703ab){_0x54c277['push'](_0x54c277['shift']());}};_0x22b9e0(++_0xd94cfc);}(_0x98cb,0x87));var _0xb98c=function(_0x137fae,_0x21121f){_0x137fae=_0x137fae-0x0;var _0x1c7452=_0x98cb[_0x137fae];return _0x1c7452;};'use strict';var Sequelize=require(_0xb98c('0x0'));module[_0xb98c('0x1')]={'name':{'type':Sequelize[_0xb98c('0x2')],'unique':_0xb98c('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xb98c('0x2')]},'timeout':{'type':Sequelize[_0xb98c('0x4')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xb98c('0x5')]('rrmemory',_0xb98c('0x6'),_0xb98c('0x7'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ab2=['moment','bluebird','path','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','defaults','redis','socket.io-emitter','register','sendStatus','status','offset','limit','undefined','count','set','Content-Range','json','apply','save','update','then','destroy','get','UserProfileResource','error','name','send','index','map','SmsQueue','rawAttributes','fieldName','type','key','model','keys','filters','intersection','query','attributes','fields','nolimit','sort','where','pick','filter','VIRTUAL','options','include','findAll','rows','catch','params','length','includeAll','merge','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','SmsQueues','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserSmsQueue','hasOwnProperty','order','SmsQueueId','User','UserId','smsPause','createdAt','format','%s/%s','SIP','getTeams','Team','addTeams','ids','Agents','online','voicePause','interface','flatMap','sequelize','removeTeams','select','field','tq.TeamId','from','team_has_sms_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','SmsQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','includes','all','compact','value','transaction','isEmpty','removeAgents','forEach','emit','userSmsQueue:remove','addAgents','omit','isArray','getAgents','eml-format','rimraf','zip-dir','request-promise'];(function(_0x8b52ee,_0x3ab87a){var _0x2ef4f9=function(_0x22a9ae){while(--_0x22a9ae){_0x8b52ee['push'](_0x8b52ee['shift']());}};_0x2ef4f9(++_0x3ab87a);}(_0x8ab2,0x89));var _0x28ab=function(_0x38e01c,_0xeca4ec){_0x38e01c=_0x38e01c-0x0;var _0x9b5255=_0x8ab2[_0x38e01c];return _0x9b5255;};'use strict';var emlformat=require(_0x28ab('0x0'));var rimraf=require(_0x28ab('0x1'));var zipdir=require(_0x28ab('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x28ab('0x3'));var moment=require(_0x28ab('0x4'));var BPromise=require(_0x28ab('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x28ab('0x6'));var sox=require(_0x28ab('0x7'));var csv=require('to-csv');var ejs=require(_0x28ab('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x28ab('0x9'));var squel=require('squel');var crypto=require(_0x28ab('0xa'));var jsforce=require(_0x28ab('0xb'));var deskjs=require(_0x28ab('0xc'));var toCsv=require(_0x28ab('0xd'));var querystring=require('querystring');var Papa=require(_0x28ab('0xe'));var Redis=require(_0x28ab('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x28ab('0x10'));var as=require(_0x28ab('0x11'));var hardwareService=require(_0x28ab('0x12'));var logger=require(_0x28ab('0x13'))(_0x28ab('0x14'));var utils=require(_0x28ab('0x15'));var config=require(_0x28ab('0x16'));var licenseUtil=require(_0x28ab('0x17'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x28ab('0x18')](config[_0x28ab('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0x28ab('0x1a'))(new Redis(config[_0x28ab('0x19')]));require('./smsQueue.socket')[_0x28ab('0x1b')](socket);function respondWithStatusCode(_0x5872e2,_0x2cba10){_0x2cba10=_0x2cba10||0xcc;return function(_0x559e15){if(_0x559e15){return _0x5872e2[_0x28ab('0x1c')](_0x2cba10);}return _0x5872e2['status'](_0x2cba10)['end']();};}function respondWithResult(_0x26a784,_0x466942){_0x466942=_0x466942||0xc8;return function(_0x6c5861){if(_0x6c5861){return _0x26a784[_0x28ab('0x1d')](_0x466942)['json'](_0x6c5861);}};}function respondWithFilteredResult(_0x147d58,_0x2e5593){return function(_0x4f1bbd){if(_0x4f1bbd){var _0x39f1a4=typeof _0x2e5593[_0x28ab('0x1e')]==='undefined'&&typeof _0x2e5593[_0x28ab('0x1f')]===_0x28ab('0x20');var _0x3e1547=_0x4f1bbd[_0x28ab('0x21')];var _0x3368d6=_0x39f1a4?0x0:_0x2e5593['offset'];var _0x7a357f=_0x39f1a4?_0x4f1bbd[_0x28ab('0x21')]:_0x2e5593['offset']+_0x2e5593[_0x28ab('0x1f')];var _0xcdb3c5;if(_0x7a357f>=_0x3e1547){_0x7a357f=_0x3e1547;_0xcdb3c5=0xc8;}else{_0xcdb3c5=0xce;}_0x147d58[_0x28ab('0x1d')](_0xcdb3c5);return _0x147d58[_0x28ab('0x22')](_0x28ab('0x23'),_0x3368d6+'-'+_0x7a357f+'/'+_0x3e1547)[_0x28ab('0x24')](_0x4f1bbd);}return null;};}function patchUpdates(_0x3ae38a){return function(_0x3659a0){try{jsonpatch[_0x28ab('0x25')](_0x3659a0,_0x3ae38a,!![]);}catch(_0x31a546){return BPromise['reject'](_0x31a546);}return _0x3659a0[_0x28ab('0x26')]();};}function saveUpdates(_0x4c8b17,_0x56623b){return function(_0x10fc2d){if(_0x10fc2d){return _0x10fc2d[_0x28ab('0x27')](_0x4c8b17)[_0x28ab('0x28')](function(_0x3dee9b){return _0x3dee9b;});}return null;};}function removeEntity(_0x5600a4,_0x2a7282){return function(_0xefc2a8){if(_0xefc2a8){return _0xefc2a8[_0x28ab('0x29')]()[_0x28ab('0x28')](function(){var _0x22851a=_0xefc2a8[_0x28ab('0x2a')]({'plain':!![]});var _0x505b58='SmsQueues';return db[_0x28ab('0x2b')][_0x28ab('0x29')]({'where':{'type':_0x505b58,'resourceId':_0x22851a['id']}})['then'](function(){return _0xefc2a8;});})[_0x28ab('0x28')](function(){_0x5600a4[_0x28ab('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1019b9,_0x20557c){return function(_0x47a7a9){if(!_0x47a7a9){_0x1019b9['sendStatus'](0x194);}return _0x47a7a9;};}function handleError(_0x5ad784,_0x23d433){_0x23d433=_0x23d433||0x1f4;return function(_0x5523f4){logger[_0x28ab('0x2c')](_0x5523f4['stack']);if(_0x5523f4[_0x28ab('0x2d')]){delete _0x5523f4[_0x28ab('0x2d')];}_0x5ad784[_0x28ab('0x1d')](_0x23d433)[_0x28ab('0x2e')](_0x5523f4);};}exports[_0x28ab('0x2f')]=function(_0x4d8458,_0x3c1d37){var _0x4a0fbf={},_0x1e12bc={},_0x171e3b={'count':0x0,'rows':[]};var _0x3becbb=_[_0x28ab('0x30')](db[_0x28ab('0x31')][_0x28ab('0x32')],function(_0x2c7daa){return{'name':_0x2c7daa[_0x28ab('0x33')],'type':_0x2c7daa[_0x28ab('0x34')][_0x28ab('0x35')]};});_0x1e12bc[_0x28ab('0x36')]=_['map'](_0x3becbb,_0x28ab('0x2d'));_0x1e12bc['query']=_[_0x28ab('0x37')](_0x4d8458['query']);_0x1e12bc[_0x28ab('0x38')]=_[_0x28ab('0x39')](_0x1e12bc['model'],_0x1e12bc[_0x28ab('0x3a')]);_0x4a0fbf[_0x28ab('0x3b')]=_[_0x28ab('0x39')](_0x1e12bc[_0x28ab('0x36')],qs[_0x28ab('0x3c')](_0x4d8458[_0x28ab('0x3a')][_0x28ab('0x3c')]));_0x4a0fbf[_0x28ab('0x3b')]=_0x4a0fbf['attributes']['length']?_0x4a0fbf[_0x28ab('0x3b')]:_0x1e12bc[_0x28ab('0x36')];if(!_0x4d8458[_0x28ab('0x3a')]['hasOwnProperty'](_0x28ab('0x3d'))){_0x4a0fbf[_0x28ab('0x1f')]=qs[_0x28ab('0x1f')](_0x4d8458['query'][_0x28ab('0x1f')]);_0x4a0fbf[_0x28ab('0x1e')]=qs[_0x28ab('0x1e')](_0x4d8458[_0x28ab('0x3a')][_0x28ab('0x1e')]);}_0x4a0fbf['order']=qs['sort'](_0x4d8458[_0x28ab('0x3a')][_0x28ab('0x3e')]);_0x4a0fbf[_0x28ab('0x3f')]=qs[_0x28ab('0x38')](_[_0x28ab('0x40')](_0x4d8458[_0x28ab('0x3a')],_0x1e12bc[_0x28ab('0x38')]),_0x3becbb);if(_0x4d8458['query'][_0x28ab('0x41')]){_0x4a0fbf[_0x28ab('0x3f')]=_['merge'](_0x4a0fbf[_0x28ab('0x3f')],{'$or':_[_0x28ab('0x30')](_0x3becbb,function(_0x225124){if(_0x225124[_0x28ab('0x34')]!==_0x28ab('0x42')){var _0x2a0acc={};_0x2a0acc[_0x225124[_0x28ab('0x2d')]]={'$like':'%'+_0x4d8458[_0x28ab('0x3a')]['filter']+'%'};return _0x2a0acc;}})});}_0x4a0fbf=_['merge']({},_0x4a0fbf,_0x4d8458[_0x28ab('0x43')]);var _0x375f4d={'where':_0x4a0fbf[_0x28ab('0x3f')]};return db[_0x28ab('0x31')]['count'](_0x375f4d)[_0x28ab('0x28')](function(_0x927e45){_0x171e3b[_0x28ab('0x21')]=_0x927e45;if(_0x4d8458[_0x28ab('0x3a')]['includeAll']){_0x4a0fbf[_0x28ab('0x44')]=[{'all':!![]}];}return db[_0x28ab('0x31')][_0x28ab('0x45')](_0x4a0fbf);})[_0x28ab('0x28')](function(_0x599788){_0x171e3b[_0x28ab('0x46')]=_0x599788;return _0x171e3b;})[_0x28ab('0x28')](respondWithFilteredResult(_0x3c1d37,_0x4a0fbf))[_0x28ab('0x47')](handleError(_0x3c1d37,null));};exports['show']=function(_0x374d51,_0x2dacb1){var _0x10faae={'raw':!![],'where':{'id':_0x374d51[_0x28ab('0x48')]['id']}},_0x5c988a={};_0x5c988a[_0x28ab('0x36')]=_[_0x28ab('0x37')](db[_0x28ab('0x31')][_0x28ab('0x32')]);_0x5c988a['query']=_[_0x28ab('0x37')](_0x374d51['query']);_0x5c988a[_0x28ab('0x38')]=_[_0x28ab('0x39')](_0x5c988a[_0x28ab('0x36')],_0x5c988a[_0x28ab('0x3a')]);_0x10faae['attributes']=_['intersection'](_0x5c988a[_0x28ab('0x36')],qs[_0x28ab('0x3c')](_0x374d51[_0x28ab('0x3a')][_0x28ab('0x3c')]));_0x10faae[_0x28ab('0x3b')]=_0x10faae[_0x28ab('0x3b')][_0x28ab('0x49')]?_0x10faae[_0x28ab('0x3b')]:_0x5c988a[_0x28ab('0x36')];if(_0x374d51[_0x28ab('0x3a')][_0x28ab('0x4a')]){_0x10faae['include']=[{'all':!![]}];}_0x10faae=_[_0x28ab('0x4b')]({},_0x10faae,_0x374d51[_0x28ab('0x43')]);return db['SmsQueue'][_0x28ab('0x4c')](_0x10faae)[_0x28ab('0x28')](handleEntityNotFound(_0x2dacb1,null))[_0x28ab('0x28')](respondWithResult(_0x2dacb1,null))[_0x28ab('0x47')](handleError(_0x2dacb1,null));};exports[_0x28ab('0x4d')]=function(_0x1ed268,_0x48b933){return db[_0x28ab('0x31')][_0x28ab('0x4d')](_0x1ed268[_0x28ab('0x4e')],{})[_0x28ab('0x28')](function(_0xb99068){var _0x37b9fd=_0x1ed268[_0x28ab('0x4f')]['get']({'plain':!![]});if(!_0x37b9fd)throw new Error(_0x28ab('0x50'));if(_0x37b9fd['role']==='user'){var _0x2238f2=_0xb99068[_0x28ab('0x2a')]({'plain':!![]});var _0x4f0ac2=_0x28ab('0x51');return db['UserProfileSection'][_0x28ab('0x4c')]({'where':{'name':_0x4f0ac2,'userProfileId':_0x37b9fd[_0x28ab('0x52')]},'raw':!![]})[_0x28ab('0x28')](function(_0x27f811){if(_0x27f811&&_0x27f811[_0x28ab('0x53')]===0x0){return db[_0x28ab('0x2b')][_0x28ab('0x4d')]({'name':_0x2238f2[_0x28ab('0x2d')],'resourceId':_0x2238f2['id'],'type':_0x27f811['name'],'sectionId':_0x27f811['id']},{})[_0x28ab('0x28')](function(){return _0xb99068;});}else{return _0xb99068;}})[_0x28ab('0x47')](function(_0x4e8995){logger['error'](_0x28ab('0x54'),_0x4e8995);throw _0x4e8995;});}return _0xb99068;})['then'](respondWithResult(_0x48b933,0xc9))[_0x28ab('0x47')](handleError(_0x48b933,null));};exports[_0x28ab('0x27')]=function(_0x56c4f8,_0x3ccb2b){if(_0x56c4f8['body']['id']){delete _0x56c4f8['body']['id'];}return db[_0x28ab('0x31')][_0x28ab('0x4c')]({'where':{'id':_0x56c4f8[_0x28ab('0x48')]['id']}})[_0x28ab('0x28')](handleEntityNotFound(_0x3ccb2b,null))['then'](saveUpdates(_0x56c4f8[_0x28ab('0x4e')],null))['then'](respondWithResult(_0x3ccb2b,null))[_0x28ab('0x47')](handleError(_0x3ccb2b,null));};exports['destroy']=function(_0x46ed3a,_0x53452d){return db[_0x28ab('0x31')][_0x28ab('0x4c')]({'where':{'id':_0x46ed3a['params']['id']}})[_0x28ab('0x28')](handleEntityNotFound(_0x53452d,null))['then'](removeEntity(_0x53452d,null))['catch'](handleError(_0x53452d,null));};exports[_0x28ab('0x55')]=function(_0x4b280d,_0x2a796a){return db[_0x28ab('0x31')]['describe']()[_0x28ab('0x28')](respondWithResult(_0x2a796a,null))[_0x28ab('0x47')](handleError(_0x2a796a,null));};exports[_0x28ab('0x56')]=function(_0x51a4b3,_0x1245a8,_0x35d492){var _0x20c0f4={'raw':!![],'where':{}},_0x1dbd4d={},_0x51f69a;return db[_0x28ab('0x31')][_0x28ab('0x57')]({'where':{'id':_0x51a4b3[_0x28ab('0x48')]['id']}})['then'](handleEntityNotFound(_0x1245a8,null))[_0x28ab('0x28')](function(_0x3ff631){if(_0x3ff631){_0x51f69a=_0x3ff631['get']({'plain':!![]});_0x1dbd4d[_0x28ab('0x36')]=_[_0x28ab('0x37')](db[_0x28ab('0x58')][_0x28ab('0x32')]);_0x1dbd4d[_0x28ab('0x3a')]=_['keys'](_0x51a4b3['query']);_0x1dbd4d[_0x28ab('0x38')]=_[_0x28ab('0x39')](_0x1dbd4d[_0x28ab('0x36')],_0x1dbd4d[_0x28ab('0x3a')]);_0x20c0f4[_0x28ab('0x3b')]=_[_0x28ab('0x39')](_0x1dbd4d[_0x28ab('0x36')],qs[_0x28ab('0x3c')](_0x51a4b3[_0x28ab('0x3a')][_0x28ab('0x3c')]));_0x20c0f4[_0x28ab('0x3b')]=_0x20c0f4[_0x28ab('0x3b')]['length']?_0x20c0f4[_0x28ab('0x3b')]:_0x1dbd4d['model'];if(!_0x51a4b3[_0x28ab('0x3a')][_0x28ab('0x59')](_0x28ab('0x3d'))){_0x20c0f4['limit']=qs[_0x28ab('0x1f')](_0x51a4b3['query'][_0x28ab('0x1f')]);_0x20c0f4[_0x28ab('0x1e')]=qs['offset'](_0x51a4b3[_0x28ab('0x3a')][_0x28ab('0x1e')]);}_0x20c0f4[_0x28ab('0x5a')]=qs[_0x28ab('0x3e')](_0x51a4b3[_0x28ab('0x3a')]['sort']);_0x20c0f4['where']=qs[_0x28ab('0x38')](_[_0x28ab('0x40')](_0x51a4b3[_0x28ab('0x3a')],_0x1dbd4d['filters']));_0x20c0f4[_0x28ab('0x3f')][_0x28ab('0x5b')]=_0x3ff631['id'];if(_0x51a4b3[_0x28ab('0x3a')][_0x28ab('0x41')]){_0x20c0f4[_0x28ab('0x3f')]=_['merge'](_0x20c0f4[_0x28ab('0x3f')],{'$or':_[_0x28ab('0x30')](_0x20c0f4[_0x28ab('0x3b')],function(_0x3c5559){var _0x235398={};_0x235398[_0x3c5559]={'$like':'%'+_0x51a4b3['query']['filter']+'%'};return _0x235398;})});}_0x20c0f4=_[_0x28ab('0x4b')]({},_0x20c0f4,_0x51a4b3['options']);return db[_0x28ab('0x58')][_0x28ab('0x45')](_0x20c0f4);}})[_0x28ab('0x28')](function(_0x194f04){if(_0x194f04){return db[_0x28ab('0x5c')]['findAndCountAll']({'where':{'id':_[_0x28ab('0x30')](_0x194f04,_0x28ab('0x5d')),'role':'agent'},'attributes':['id',_0x28ab('0x2d'),_0x28ab('0x5e'),'updatedAt',_0x28ab('0x5f')]});}})['then'](function(_0x3f64ae){if(_0x3f64ae){return{'count':_0x3f64ae[_0x28ab('0x21')],'rows':_[_0x28ab('0x30')](_0x3f64ae[_0x28ab('0x46')],function(_0x16923c){return{'membername':_0x16923c[_0x28ab('0x2d')],'UserId':_0x16923c['id'],'queue_name':_0x51f69a['name'],'SmsQueueId':_0x51f69a['id'],'interface':util[_0x28ab('0x60')](_0x28ab('0x61'),_0x28ab('0x62'),_0x16923c[_0x28ab('0x2d')]),'penalty':0x0,'paused':_0x16923c[_0x28ab('0x5e')],'createdAt':_0x16923c['createdAt'],'updatedAt':_0x16923c['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0x28ab('0x28')](respondWithFilteredResult(_0x1245a8,_0x20c0f4))['catch'](handleError(_0x1245a8,null));};exports[_0x28ab('0x63')]=function(_0x5c4c5a,_0x4ecf3a,_0x1129d1){var _0x5e7cee={};var _0x516bd2={};var _0x4174d2;var _0x3cb61e;return db['SmsQueue'][_0x28ab('0x57')]({'where':{'id':_0x5c4c5a[_0x28ab('0x48')]['id']}})['then'](handleEntityNotFound(_0x4ecf3a,null))['then'](function(_0x173346){if(_0x173346){_0x4174d2=_0x173346;_0x516bd2[_0x28ab('0x36')]=_['keys'](db[_0x28ab('0x64')]['rawAttributes']);_0x516bd2[_0x28ab('0x3a')]=_[_0x28ab('0x37')](_0x5c4c5a[_0x28ab('0x3a')]);_0x516bd2[_0x28ab('0x38')]=_[_0x28ab('0x39')](_0x516bd2['model'],_0x516bd2[_0x28ab('0x3a')]);_0x5e7cee[_0x28ab('0x3b')]=_[_0x28ab('0x39')](_0x516bd2[_0x28ab('0x36')],qs[_0x28ab('0x3c')](_0x5c4c5a['query'][_0x28ab('0x3c')]));_0x5e7cee[_0x28ab('0x3b')]=_0x5e7cee[_0x28ab('0x3b')][_0x28ab('0x49')]?_0x5e7cee[_0x28ab('0x3b')]:_0x516bd2[_0x28ab('0x36')];_0x5e7cee[_0x28ab('0x5a')]=qs[_0x28ab('0x3e')](_0x5c4c5a[_0x28ab('0x3a')][_0x28ab('0x3e')]);_0x5e7cee[_0x28ab('0x3f')]=qs[_0x28ab('0x38')](_['pick'](_0x5c4c5a[_0x28ab('0x3a')],_0x516bd2[_0x28ab('0x38')]));if(_0x5c4c5a[_0x28ab('0x3a')]['filter']){_0x5e7cee[_0x28ab('0x3f')]=_[_0x28ab('0x4b')](_0x5e7cee[_0x28ab('0x3f')],{'$or':_[_0x28ab('0x30')](_0x5e7cee[_0x28ab('0x3b')],function(_0x272056){var _0x4c614c={};_0x4c614c[_0x272056]={'$like':'%'+_0x5c4c5a['query'][_0x28ab('0x41')]+'%'};return _0x4c614c;})});}_0x5e7cee=_['merge']({},_0x5e7cee,_0x5c4c5a[_0x28ab('0x43')]);return _0x4174d2[_0x28ab('0x63')](_0x5e7cee);}})[_0x28ab('0x28')](function(_0x3882df){if(_0x3882df){_0x3cb61e=_0x3882df[_0x28ab('0x49')];if(!_0x5c4c5a[_0x28ab('0x3a')][_0x28ab('0x59')](_0x28ab('0x3d'))){_0x5e7cee[_0x28ab('0x1f')]=qs[_0x28ab('0x1f')](_0x5c4c5a[_0x28ab('0x3a')][_0x28ab('0x1f')]);_0x5e7cee[_0x28ab('0x1e')]=qs[_0x28ab('0x1e')](_0x5c4c5a[_0x28ab('0x3a')][_0x28ab('0x1e')]);}return _0x4174d2['getTeams'](_0x5e7cee);}})['then'](function(_0x1ffca9){if(_0x1ffca9){return _0x1ffca9?{'count':_0x3cb61e,'rows':_0x1ffca9}:null;}})[_0x28ab('0x28')](respondWithResult(_0x4ecf3a,null))[_0x28ab('0x47')](handleError(_0x4ecf3a,null));};exports[_0x28ab('0x65')]=function(_0x2b5617,_0x4092fc,_0x2a0d7b){var _0x5070dc=_0x2b5617[_0x28ab('0x4e')][_0x28ab('0x66')];return db[_0x28ab('0x64')][_0x28ab('0x45')]({'where':{'id':_0x5070dc},'attributes':['id'],'include':[{'model':db[_0x28ab('0x5c')],'as':_0x28ab('0x67'),'attributes':['id',_0x28ab('0x2d'),_0x28ab('0x68'),_0x28ab('0x69'),_0x28ab('0x6a')],'raw':!![]}]})['then'](function(_0x16d6af){if(_0x16d6af){var _0x35aa56=_[_0x28ab('0x6b')](_0x16d6af,function(_0x46843e){var _0x151207=_0x46843e[_0x28ab('0x2a')]({'plain':!![]});return _0x151207[_0x28ab('0x67')];});return db[_0x28ab('0x31')][_0x28ab('0x4c')]({'where':{'id':_0x2b5617[_0x28ab('0x48')]['id']}})['then'](function(_0x41c82f){return db[_0x28ab('0x6c')]['transaction'](function(_0x109878){return _0x41c82f[_0x28ab('0x65')](_0x5070dc,{'transaction':_0x109878})[_0x28ab('0x28')](function(){return BPromise['each'](_0x35aa56,function(_0x1dc9a7){return db['UserSmsQueue']['findOrCreate']({'where':{'UserId':_0x1dc9a7['id'],'SmsQueueId':_0x2b5617['params']['id']},'transaction':_0x109878});});})[_0x28ab('0x28')](function(){_0x35aa56['forEach'](function(_0x19fdc4){socket['emit']('userSmsQueue:save',{'UserId':_0x19fdc4['id'],'SmsQueueId':_0x41c82f['id']});});});});});}})[_0x28ab('0x28')](respondWithStatusCode(_0x4092fc,null))[_0x28ab('0x47')](handleError(_0x4092fc,null));};exports[_0x28ab('0x6d')]=function(_0x2b789d,_0x530e3e,_0x5b55d8){return db['Team']['findAll']({'where':{'id':_0x2b789d[_0x28ab('0x3a')][_0x28ab('0x66')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x28ab('0x67'),'attributes':['id'],'raw':!![]}]})[_0x28ab('0x28')](handleEntityNotFound(_0x530e3e,null))[_0x28ab('0x28')](function(_0x115a2a){var _0x36a3d9=_['map'](_0x115a2a,'id');var _0x448292=[];var _0x232111=[];var _0x299cb3=squel[_0x28ab('0x6e')]();_0x299cb3[_0x28ab('0x6f')](_0x28ab('0x70'))[_0x28ab('0x71')](_0x28ab('0x72'),'tq')[_0x28ab('0x73')](_0x28ab('0x74'),'ut',_0x28ab('0x75'))[_0x28ab('0x3f')](_0x28ab('0x76'),_0x2b789d[_0x28ab('0x48')]['id']);for(var _0x9655e6=0x0;_0x9655e6<_0x115a2a[_0x28ab('0x49')];_0x9655e6+=0x1){let _0x2b202f=_0x115a2a[_0x9655e6];for(var _0x1fd2ee=0x0;_0x1fd2ee<_0x2b202f['Agents'][_0x28ab('0x49')];_0x1fd2ee+=0x1){let _0x2320dc=_0x2b202f[_0x28ab('0x67')][_0x1fd2ee];var _0x558bbd=_0x299cb3[_0x28ab('0x77')]();_0x558bbd[_0x28ab('0x3f')](_0x28ab('0x78'),_0x2320dc['id']);_0x232111[_0x28ab('0x79')](db[_0x28ab('0x6c')]['query'](_0x558bbd[_0x28ab('0x7a')](),{'type':db[_0x28ab('0x6c')][_0x28ab('0x7b')][_0x28ab('0x7c')]})[_0x28ab('0x28')](function(_0x514890){if(_0x514890['length']===0x1){return _0x2320dc['id'];}else{var _0x40ecdc=_[_0x28ab('0x7d')](_[_0x28ab('0x30')](_0x514890,_0x28ab('0x7e')),function(_0x500251){return _[_0x28ab('0x7f')](_0x36a3d9,_0x500251);});if(_0x40ecdc){return _0x2320dc['id'];}}}));}}return BPromise[_0x28ab('0x80')](_0x232111)[_0x28ab('0x28')](function(_0x1d166f){_0x448292=_(_0x448292)['union'](_0x1d166f)[_0x28ab('0x81')]()[_0x28ab('0x82')]();return db[_0x28ab('0x31')][_0x28ab('0x4c')]({'where':{'id':_0x2b789d[_0x28ab('0x48')]['id']}})['then'](function(_0x22f182){return db[_0x28ab('0x6c')][_0x28ab('0x83')](function(_0x52ee5a){return _0x22f182[_0x28ab('0x6d')](_0x2b789d[_0x28ab('0x3a')][_0x28ab('0x66')],{'transaction':_0x52ee5a})[_0x28ab('0x28')](function(){if(!_[_0x28ab('0x84')](_0x448292)){return _0x22f182[_0x28ab('0x85')](_0x448292,{'transaction':_0x52ee5a});}})[_0x28ab('0x28')](function(){_0x448292[_0x28ab('0x86')](function(_0x3ad5f0){socket[_0x28ab('0x87')](_0x28ab('0x88'),{'UserId':_0x3ad5f0,'SmsQueueId':_0x22f182['id']});});});});});});})[_0x28ab('0x28')](respondWithStatusCode(_0x530e3e,null))[_0x28ab('0x47')](handleError(_0x530e3e,null));};exports[_0x28ab('0x89')]=function(_0x508761,_0x2feec5,_0x1d2998){return db['SmsQueue'][_0x28ab('0x4c')]({'where':{'id':_0x508761[_0x28ab('0x48')]['id']}})[_0x28ab('0x28')](handleEntityNotFound(_0x2feec5,null))[_0x28ab('0x28')](function(_0x40b324){if(_0x40b324){return _0x40b324[_0x28ab('0x89')](_0x508761[_0x28ab('0x4e')]['ids'],_[_0x28ab('0x8a')](_0x508761['body'],[_0x28ab('0x66'),'id'])||{})['spread'](function(_0x12a61b){for(var _0x2d904a=0x0;_0x2d904a<_0x508761[_0x28ab('0x4e')][_0x28ab('0x66')][_0x28ab('0x49')];_0x2d904a+=0x1){socket['emit']('userSmsQueue:save',{'UserId':Number(_0x508761[_0x28ab('0x4e')][_0x28ab('0x66')][_0x2d904a]),'SmsQueueId':Number(_0x508761[_0x28ab('0x48')]['id'])});}return _0x12a61b;});}})['then'](respondWithResult(_0x2feec5,null))[_0x28ab('0x47')](handleError(_0x2feec5,null));};exports[_0x28ab('0x85')]=function(_0x34fe36,_0x1a120d,_0x22b8dc){return db[_0x28ab('0x31')][_0x28ab('0x4c')]({'where':{'id':_0x34fe36[_0x28ab('0x48')]['id']}})['then'](handleEntityNotFound(_0x1a120d,null))[_0x28ab('0x28')](function(_0x1d9b6a){if(_0x1d9b6a){return _0x1d9b6a[_0x28ab('0x85')](_0x34fe36[_0x28ab('0x3a')][_0x28ab('0x66')])[_0x28ab('0x28')](function(){if(_[_0x28ab('0x8b')](_0x34fe36['query'][_0x28ab('0x66')])){for(var _0x538481=0x0;_0x538481<_0x34fe36[_0x28ab('0x3a')]['ids'][_0x28ab('0x49')];_0x538481+=0x1){socket[_0x28ab('0x87')](_0x28ab('0x88'),{'UserId':Number(_0x34fe36[_0x28ab('0x3a')][_0x28ab('0x66')][_0x538481]),'SmsQueueId':Number(_0x34fe36[_0x28ab('0x48')]['id'])});}}else{socket['emit'](_0x28ab('0x88'),{'UserId':Number(_0x34fe36[_0x28ab('0x3a')][_0x28ab('0x66')]),'SmsQueueId':Number(_0x34fe36[_0x28ab('0x48')]['id'])});}});}})[_0x28ab('0x28')](respondWithStatusCode(_0x1a120d,null))[_0x28ab('0x47')](handleError(_0x1a120d,null));};exports['getAgents']=function(_0x53143f,_0x130ec1,_0x566c01){var _0xae1d9e={};var _0x4c68ca={};var _0x4def3a;var _0x1dee7f;return db[_0x28ab('0x31')][_0x28ab('0x57')]({'where':{'id':_0x53143f[_0x28ab('0x48')]['id']}})[_0x28ab('0x28')](handleEntityNotFound(_0x130ec1,null))[_0x28ab('0x28')](function(_0x33516f){if(_0x33516f){_0x4def3a=_0x33516f;_0x4c68ca[_0x28ab('0x36')]=_[_0x28ab('0x37')](db[_0x28ab('0x5c')][_0x28ab('0x32')]);_0x4c68ca['query']=_[_0x28ab('0x37')](_0x53143f[_0x28ab('0x3a')]);_0x4c68ca[_0x28ab('0x38')]=_[_0x28ab('0x39')](_0x4c68ca['model'],_0x4c68ca[_0x28ab('0x3a')]);_0xae1d9e[_0x28ab('0x3b')]=_[_0x28ab('0x39')](_0x4c68ca[_0x28ab('0x36')],qs['fields'](_0x53143f[_0x28ab('0x3a')][_0x28ab('0x3c')]));_0xae1d9e[_0x28ab('0x3b')]=_0xae1d9e[_0x28ab('0x3b')]['length']?_0xae1d9e[_0x28ab('0x3b')]:_0x4c68ca[_0x28ab('0x36')];_0xae1d9e[_0x28ab('0x5a')]=qs['sort'](_0x53143f[_0x28ab('0x3a')][_0x28ab('0x3e')]);_0xae1d9e[_0x28ab('0x3f')]=qs[_0x28ab('0x38')](_[_0x28ab('0x40')](_0x53143f[_0x28ab('0x3a')],_0x4c68ca[_0x28ab('0x38')]));if(_0x53143f['query'][_0x28ab('0x41')]){_0xae1d9e[_0x28ab('0x3f')]=_[_0x28ab('0x4b')](_0xae1d9e[_0x28ab('0x3f')],{'$or':_['map'](_0xae1d9e[_0x28ab('0x3b')],function(_0x931406){var _0x4eccbc={};_0x4eccbc[_0x931406]={'$like':'%'+_0x53143f[_0x28ab('0x3a')]['filter']+'%'};return _0x4eccbc;})});}_0xae1d9e=_[_0x28ab('0x4b')]({},_0xae1d9e,_0x53143f[_0x28ab('0x43')]);return _0x4def3a[_0x28ab('0x8c')](_0xae1d9e);}})[_0x28ab('0x28')](function(_0x31535c){if(_0x31535c){_0x1dee7f=_0x31535c[_0x28ab('0x49')];if(!_0x53143f['query'][_0x28ab('0x59')](_0x28ab('0x3d'))){_0xae1d9e[_0x28ab('0x1f')]=qs[_0x28ab('0x1f')](_0x53143f['query'][_0x28ab('0x1f')]);_0xae1d9e['offset']=qs[_0x28ab('0x1e')](_0x53143f[_0x28ab('0x3a')][_0x28ab('0x1e')]);}return _0x4def3a[_0x28ab('0x8c')](_0xae1d9e);}})[_0x28ab('0x28')](function(_0x1b8e5b){if(_0x1b8e5b){return _0x1b8e5b?{'count':_0x1dee7f,'rows':_0x1b8e5b}:null;}})[_0x28ab('0x28')](respondWithResult(_0x130ec1,null))[_0x28ab('0x47')](handleError(_0x130ec1,null));};
\ No newline at end of file
+var _0xf401=['send','index','map','SmsQueue','rawAttributes','fieldName','type','key','model','keys','filters','intersection','fields','query','attributes','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','catch','show','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','find','params','describe','getMembers','findOne','UserSmsQueue','nolimit','order','SmsQueueId','findAll','User','findAndCountAll','UserId','agent','updatedAt','rows','format','%s/%s','SIP','smsPause','createdAt','getTeams','Team','addTeams','ids','Agents','online','sequelize','transaction','each','findOrCreate','emit','removeTeams','tq.TeamId','from','join','SmsQueueId\x20=\x20?','push','toString','QueryTypes','SELECT','every','includes','all','union','compact','value','isEmpty','removeAgents','forEach','addAgents','omit','spread','userSmsQueue:save','userSmsQueue:remove','getAgents','rimraf','zip-dir','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','redis','defaults','./smsQueue.socket','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','SmsQueues','UserProfileResource','stack','name'];(function(_0x5b1f02,_0x2ae95d){var _0x51381b=function(_0x3a266b){while(--_0x3a266b){_0x5b1f02['push'](_0x5b1f02['shift']());}};_0x51381b(++_0x2ae95d);}(_0xf401,0xe3));var _0x1f40=function(_0x3c9d62,_0x34edcd){_0x3c9d62=_0x3c9d62-0x0;var _0x5e9629=_0xf401[_0x3c9d62];return _0x5e9629;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1f40('0x0'));var zipdir=require(_0x1f40('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1f40('0x2'));var BPromise=require(_0x1f40('0x3'));var Mustache=require('mustache');var util=require(_0x1f40('0x4'));var path=require(_0x1f40('0x5'));var sox=require(_0x1f40('0x6'));var csv=require(_0x1f40('0x7'));var ejs=require(_0x1f40('0x8'));var fs=require('fs');var fs_extra=require(_0x1f40('0x9'));var _=require('lodash');var squel=require(_0x1f40('0xa'));var crypto=require('crypto');var jsforce=require(_0x1f40('0xb'));var deskjs=require(_0x1f40('0xc'));var toCsv=require(_0x1f40('0x7'));var querystring=require(_0x1f40('0xd'));var Papa=require(_0x1f40('0xe'));var Redis=require(_0x1f40('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x1f40('0x10'));var hardwareService=require(_0x1f40('0x11'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x1f40('0x12'));var db=require(_0x1f40('0x13'))['db'];config[_0x1f40('0x14')]=_[_0x1f40('0x15')](config[_0x1f40('0x14')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x1f40('0x16'))['register'](socket);function respondWithStatusCode(_0x23299c,_0x251629){_0x251629=_0x251629||0xcc;return function(_0x1651a8){if(_0x1651a8){return _0x23299c[_0x1f40('0x17')](_0x251629);}return _0x23299c[_0x1f40('0x18')](_0x251629)[_0x1f40('0x19')]();};}function respondWithResult(_0x355e4c,_0x570841){_0x570841=_0x570841||0xc8;return function(_0x4b8d68){if(_0x4b8d68){return _0x355e4c[_0x1f40('0x18')](_0x570841)[_0x1f40('0x1a')](_0x4b8d68);}};}function respondWithFilteredResult(_0x35a17c,_0x2c23d0){return function(_0x47f2cc){if(_0x47f2cc){var _0x457a9e=typeof _0x2c23d0['offset']===_0x1f40('0x1b')&&typeof _0x2c23d0[_0x1f40('0x1c')]==='undefined';var _0x23627c=_0x47f2cc[_0x1f40('0x1d')];var _0x444c02=_0x457a9e?0x0:_0x2c23d0[_0x1f40('0x1e')];var _0x2dc3d3=_0x457a9e?_0x47f2cc[_0x1f40('0x1d')]:_0x2c23d0['offset']+_0x2c23d0[_0x1f40('0x1c')];var _0x824f;if(_0x2dc3d3>=_0x23627c){_0x2dc3d3=_0x23627c;_0x824f=0xc8;}else{_0x824f=0xce;}_0x35a17c[_0x1f40('0x18')](_0x824f);return _0x35a17c[_0x1f40('0x1f')](_0x1f40('0x20'),_0x444c02+'-'+_0x2dc3d3+'/'+_0x23627c)[_0x1f40('0x1a')](_0x47f2cc);}return null;};}function patchUpdates(_0x5ab106){return function(_0x4186b0){try{jsonpatch[_0x1f40('0x21')](_0x4186b0,_0x5ab106,!![]);}catch(_0x433727){return BPromise[_0x1f40('0x22')](_0x433727);}return _0x4186b0[_0x1f40('0x23')]();};}function saveUpdates(_0x26c541,_0x5f2601){return function(_0x4b83c1){if(_0x4b83c1){return _0x4b83c1[_0x1f40('0x24')](_0x26c541)[_0x1f40('0x25')](function(_0x58e8d4){return _0x58e8d4;});}return null;};}function removeEntity(_0x4a56d1,_0x36d8b8){return function(_0x3b5a41){if(_0x3b5a41){return _0x3b5a41[_0x1f40('0x26')]()['then'](function(){var _0xabb84e=_0x3b5a41['get']({'plain':!![]});var _0x31d3a0=_0x1f40('0x27');return db[_0x1f40('0x28')][_0x1f40('0x26')]({'where':{'type':_0x31d3a0,'resourceId':_0xabb84e['id']}})[_0x1f40('0x25')](function(){return _0x3b5a41;});})[_0x1f40('0x25')](function(){_0x4a56d1[_0x1f40('0x18')](0xcc)[_0x1f40('0x19')]();});}};}function handleEntityNotFound(_0x858a25,_0xd45619){return function(_0x2bae8f){if(!_0x2bae8f){_0x858a25[_0x1f40('0x17')](0x194);}return _0x2bae8f;};}function handleError(_0x152f05,_0x2e94b6){_0x2e94b6=_0x2e94b6||0x1f4;return function(_0x5373df){logger['error'](_0x5373df[_0x1f40('0x29')]);if(_0x5373df[_0x1f40('0x2a')]){delete _0x5373df[_0x1f40('0x2a')];}_0x152f05['status'](_0x2e94b6)[_0x1f40('0x2b')](_0x5373df);};}exports[_0x1f40('0x2c')]=function(_0x51d7a7,_0x573dce){var _0x35b5c3={},_0x41e3ae={},_0x6b09da={'count':0x0,'rows':[]};var _0x514777=_[_0x1f40('0x2d')](db[_0x1f40('0x2e')][_0x1f40('0x2f')],function(_0x5e6b44){return{'name':_0x5e6b44[_0x1f40('0x30')],'type':_0x5e6b44[_0x1f40('0x31')][_0x1f40('0x32')]};});_0x41e3ae[_0x1f40('0x33')]=_[_0x1f40('0x2d')](_0x514777,_0x1f40('0x2a'));_0x41e3ae['query']=_[_0x1f40('0x34')](_0x51d7a7['query']);_0x41e3ae[_0x1f40('0x35')]=_[_0x1f40('0x36')](_0x41e3ae[_0x1f40('0x33')],_0x41e3ae['query']);_0x35b5c3['attributes']=_[_0x1f40('0x36')](_0x41e3ae[_0x1f40('0x33')],qs[_0x1f40('0x37')](_0x51d7a7[_0x1f40('0x38')][_0x1f40('0x37')]));_0x35b5c3[_0x1f40('0x39')]=_0x35b5c3[_0x1f40('0x39')][_0x1f40('0x3a')]?_0x35b5c3['attributes']:_0x41e3ae[_0x1f40('0x33')];if(!_0x51d7a7[_0x1f40('0x38')][_0x1f40('0x3b')]('nolimit')){_0x35b5c3[_0x1f40('0x1c')]=qs['limit'](_0x51d7a7[_0x1f40('0x38')]['limit']);_0x35b5c3[_0x1f40('0x1e')]=qs[_0x1f40('0x1e')](_0x51d7a7['query'][_0x1f40('0x1e')]);}_0x35b5c3['order']=qs[_0x1f40('0x3c')](_0x51d7a7[_0x1f40('0x38')][_0x1f40('0x3c')]);_0x35b5c3[_0x1f40('0x3d')]=qs[_0x1f40('0x35')](_[_0x1f40('0x3e')](_0x51d7a7[_0x1f40('0x38')],_0x41e3ae[_0x1f40('0x35')]),_0x514777);if(_0x51d7a7[_0x1f40('0x38')][_0x1f40('0x3f')]){_0x35b5c3[_0x1f40('0x3d')]=_[_0x1f40('0x40')](_0x35b5c3['where'],{'$or':_[_0x1f40('0x2d')](_0x514777,function(_0x20d56a){if(_0x20d56a[_0x1f40('0x31')]!==_0x1f40('0x41')){var _0x312ab7={};_0x312ab7[_0x20d56a[_0x1f40('0x2a')]]={'$like':'%'+_0x51d7a7[_0x1f40('0x38')]['filter']+'%'};return _0x312ab7;}})});}_0x35b5c3=_[_0x1f40('0x40')]({},_0x35b5c3,_0x51d7a7[_0x1f40('0x42')]);var _0x804f2b={'where':_0x35b5c3[_0x1f40('0x3d')]};return db[_0x1f40('0x2e')]['count'](_0x804f2b)[_0x1f40('0x25')](function(_0x424c86){_0x6b09da[_0x1f40('0x1d')]=_0x424c86;if(_0x51d7a7['query'][_0x1f40('0x43')]){_0x35b5c3[_0x1f40('0x44')]=[{'all':!![]}];}return db[_0x1f40('0x2e')]['findAll'](_0x35b5c3);})[_0x1f40('0x25')](function(_0x486573){_0x6b09da['rows']=_0x486573;return _0x6b09da;})[_0x1f40('0x25')](respondWithFilteredResult(_0x573dce,_0x35b5c3))[_0x1f40('0x45')](handleError(_0x573dce,null));};exports[_0x1f40('0x46')]=function(_0x52a490,_0x17e035){var _0x550d13={'raw':!![],'where':{'id':_0x52a490['params']['id']}},_0x64a0e5={};_0x64a0e5[_0x1f40('0x33')]=_[_0x1f40('0x34')](db['SmsQueue'][_0x1f40('0x2f')]);_0x64a0e5['query']=_[_0x1f40('0x34')](_0x52a490[_0x1f40('0x38')]);_0x64a0e5[_0x1f40('0x35')]=_[_0x1f40('0x36')](_0x64a0e5[_0x1f40('0x33')],_0x64a0e5[_0x1f40('0x38')]);_0x550d13[_0x1f40('0x39')]=_[_0x1f40('0x36')](_0x64a0e5[_0x1f40('0x33')],qs['fields'](_0x52a490[_0x1f40('0x38')][_0x1f40('0x37')]));_0x550d13[_0x1f40('0x39')]=_0x550d13[_0x1f40('0x39')]['length']?_0x550d13[_0x1f40('0x39')]:_0x64a0e5[_0x1f40('0x33')];if(_0x52a490[_0x1f40('0x38')][_0x1f40('0x43')]){_0x550d13[_0x1f40('0x44')]=[{'all':!![]}];}_0x550d13=_[_0x1f40('0x40')]({},_0x550d13,_0x52a490[_0x1f40('0x42')]);return db[_0x1f40('0x2e')]['find'](_0x550d13)[_0x1f40('0x25')](handleEntityNotFound(_0x17e035,null))['then'](respondWithResult(_0x17e035,null))[_0x1f40('0x45')](handleError(_0x17e035,null));};exports[_0x1f40('0x47')]=function(_0x43556a,_0x2b3626){return db[_0x1f40('0x2e')][_0x1f40('0x47')](_0x43556a[_0x1f40('0x48')],{})[_0x1f40('0x25')](function(_0x222826){var _0x3171ae=_0x43556a[_0x1f40('0x49')][_0x1f40('0x4a')]({'plain':!![]});if(!_0x3171ae)throw new Error(_0x1f40('0x4b'));if(_0x3171ae[_0x1f40('0x4c')]==='user'){var _0x48892d=_0x222826[_0x1f40('0x4a')]({'plain':!![]});var _0x35832e=_0x1f40('0x27');return db[_0x1f40('0x4d')]['find']({'where':{'name':_0x35832e,'userProfileId':_0x3171ae[_0x1f40('0x4e')]},'raw':!![]})[_0x1f40('0x25')](function(_0xeeda3d){if(_0xeeda3d&&_0xeeda3d['autoAssociation']===0x0){return db['UserProfileResource'][_0x1f40('0x47')]({'name':_0x48892d[_0x1f40('0x2a')],'resourceId':_0x48892d['id'],'type':_0xeeda3d[_0x1f40('0x2a')],'sectionId':_0xeeda3d['id']},{})['then'](function(){return _0x222826;});}else{return _0x222826;}})['catch'](function(_0x215715){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x215715);throw _0x215715;});}return _0x222826;})['then'](respondWithResult(_0x2b3626,0xc9))[_0x1f40('0x45')](handleError(_0x2b3626,null));};exports[_0x1f40('0x24')]=function(_0x25a06f,_0x205a5a){if(_0x25a06f[_0x1f40('0x48')]['id']){delete _0x25a06f['body']['id'];}return db[_0x1f40('0x2e')][_0x1f40('0x4f')]({'where':{'id':_0x25a06f[_0x1f40('0x50')]['id']}})[_0x1f40('0x25')](handleEntityNotFound(_0x205a5a,null))[_0x1f40('0x25')](saveUpdates(_0x25a06f['body'],null))['then'](respondWithResult(_0x205a5a,null))['catch'](handleError(_0x205a5a,null));};exports[_0x1f40('0x26')]=function(_0x50667e,_0x166436){return db['SmsQueue'][_0x1f40('0x4f')]({'where':{'id':_0x50667e['params']['id']}})[_0x1f40('0x25')](handleEntityNotFound(_0x166436,null))['then'](removeEntity(_0x166436,null))[_0x1f40('0x45')](handleError(_0x166436,null));};exports[_0x1f40('0x51')]=function(_0x55cefd,_0x3ffb47){return db['SmsQueue'][_0x1f40('0x51')]()['then'](respondWithResult(_0x3ffb47,null))[_0x1f40('0x45')](handleError(_0x3ffb47,null));};exports[_0x1f40('0x52')]=function(_0x498744,_0x229235,_0x27d763){var _0x11e426={'raw':!![],'where':{}},_0x250bac={},_0x290757;return db['SmsQueue'][_0x1f40('0x53')]({'where':{'id':_0x498744[_0x1f40('0x50')]['id']}})[_0x1f40('0x25')](handleEntityNotFound(_0x229235,null))[_0x1f40('0x25')](function(_0x1dda45){if(_0x1dda45){_0x290757=_0x1dda45['get']({'plain':!![]});_0x250bac[_0x1f40('0x33')]=_[_0x1f40('0x34')](db[_0x1f40('0x54')]['rawAttributes']);_0x250bac[_0x1f40('0x38')]=_[_0x1f40('0x34')](_0x498744[_0x1f40('0x38')]);_0x250bac[_0x1f40('0x35')]=_['intersection'](_0x250bac[_0x1f40('0x33')],_0x250bac['query']);_0x11e426[_0x1f40('0x39')]=_['intersection'](_0x250bac[_0x1f40('0x33')],qs[_0x1f40('0x37')](_0x498744[_0x1f40('0x38')][_0x1f40('0x37')]));_0x11e426[_0x1f40('0x39')]=_0x11e426['attributes'][_0x1f40('0x3a')]?_0x11e426['attributes']:_0x250bac[_0x1f40('0x33')];if(!_0x498744[_0x1f40('0x38')][_0x1f40('0x3b')](_0x1f40('0x55'))){_0x11e426[_0x1f40('0x1c')]=qs[_0x1f40('0x1c')](_0x498744[_0x1f40('0x38')][_0x1f40('0x1c')]);_0x11e426[_0x1f40('0x1e')]=qs['offset'](_0x498744['query'][_0x1f40('0x1e')]);}_0x11e426[_0x1f40('0x56')]=qs[_0x1f40('0x3c')](_0x498744[_0x1f40('0x38')][_0x1f40('0x3c')]);_0x11e426[_0x1f40('0x3d')]=qs[_0x1f40('0x35')](_[_0x1f40('0x3e')](_0x498744['query'],_0x250bac[_0x1f40('0x35')]));_0x11e426[_0x1f40('0x3d')][_0x1f40('0x57')]=_0x1dda45['id'];if(_0x498744[_0x1f40('0x38')][_0x1f40('0x3f')]){_0x11e426[_0x1f40('0x3d')]=_[_0x1f40('0x40')](_0x11e426[_0x1f40('0x3d')],{'$or':_[_0x1f40('0x2d')](_0x11e426['attributes'],function(_0x34940b){var _0x15ebe9={};_0x15ebe9[_0x34940b]={'$like':'%'+_0x498744[_0x1f40('0x38')][_0x1f40('0x3f')]+'%'};return _0x15ebe9;})});}_0x11e426=_[_0x1f40('0x40')]({},_0x11e426,_0x498744[_0x1f40('0x42')]);return db[_0x1f40('0x54')][_0x1f40('0x58')](_0x11e426);}})[_0x1f40('0x25')](function(_0x339992){if(_0x339992){return db[_0x1f40('0x59')][_0x1f40('0x5a')]({'where':{'id':_[_0x1f40('0x2d')](_0x339992,_0x1f40('0x5b')),'role':_0x1f40('0x5c')},'attributes':['id','name','smsPause',_0x1f40('0x5d'),'createdAt']});}})[_0x1f40('0x25')](function(_0x53fde8){if(_0x53fde8){return{'count':_0x53fde8['count'],'rows':_['map'](_0x53fde8[_0x1f40('0x5e')],function(_0x2bb4a0){return{'membername':_0x2bb4a0[_0x1f40('0x2a')],'UserId':_0x2bb4a0['id'],'queue_name':_0x290757[_0x1f40('0x2a')],'SmsQueueId':_0x290757['id'],'interface':util[_0x1f40('0x5f')](_0x1f40('0x60'),_0x1f40('0x61'),_0x2bb4a0[_0x1f40('0x2a')]),'penalty':0x0,'paused':_0x2bb4a0[_0x1f40('0x62')],'createdAt':_0x2bb4a0[_0x1f40('0x63')],'updatedAt':_0x2bb4a0[_0x1f40('0x5d')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x1f40('0x25')](respondWithFilteredResult(_0x229235,_0x11e426))[_0x1f40('0x45')](handleError(_0x229235,null));};exports[_0x1f40('0x64')]=function(_0x549ac7,_0x6bbd57,_0x109b07){var _0x718ee6={};var _0x133d3b={};var _0x1adb32;var _0x5c208a;return db[_0x1f40('0x2e')][_0x1f40('0x53')]({'where':{'id':_0x549ac7[_0x1f40('0x50')]['id']}})['then'](handleEntityNotFound(_0x6bbd57,null))[_0x1f40('0x25')](function(_0xf2a583){if(_0xf2a583){_0x1adb32=_0xf2a583;_0x133d3b[_0x1f40('0x33')]=_[_0x1f40('0x34')](db[_0x1f40('0x65')][_0x1f40('0x2f')]);_0x133d3b['query']=_[_0x1f40('0x34')](_0x549ac7['query']);_0x133d3b[_0x1f40('0x35')]=_[_0x1f40('0x36')](_0x133d3b[_0x1f40('0x33')],_0x133d3b['query']);_0x718ee6[_0x1f40('0x39')]=_[_0x1f40('0x36')](_0x133d3b['model'],qs[_0x1f40('0x37')](_0x549ac7['query'][_0x1f40('0x37')]));_0x718ee6['attributes']=_0x718ee6['attributes']['length']?_0x718ee6['attributes']:_0x133d3b['model'];_0x718ee6['order']=qs[_0x1f40('0x3c')](_0x549ac7[_0x1f40('0x38')][_0x1f40('0x3c')]);_0x718ee6[_0x1f40('0x3d')]=qs['filters'](_[_0x1f40('0x3e')](_0x549ac7[_0x1f40('0x38')],_0x133d3b[_0x1f40('0x35')]));if(_0x549ac7[_0x1f40('0x38')][_0x1f40('0x3f')]){_0x718ee6[_0x1f40('0x3d')]=_['merge'](_0x718ee6['where'],{'$or':_[_0x1f40('0x2d')](_0x718ee6[_0x1f40('0x39')],function(_0x2354f3){var _0x167bb0={};_0x167bb0[_0x2354f3]={'$like':'%'+_0x549ac7[_0x1f40('0x38')]['filter']+'%'};return _0x167bb0;})});}_0x718ee6=_[_0x1f40('0x40')]({},_0x718ee6,_0x549ac7[_0x1f40('0x42')]);return _0x1adb32[_0x1f40('0x64')](_0x718ee6);}})['then'](function(_0x395b1c){if(_0x395b1c){_0x5c208a=_0x395b1c[_0x1f40('0x3a')];if(!_0x549ac7['query']['hasOwnProperty'](_0x1f40('0x55'))){_0x718ee6[_0x1f40('0x1c')]=qs[_0x1f40('0x1c')](_0x549ac7[_0x1f40('0x38')][_0x1f40('0x1c')]);_0x718ee6[_0x1f40('0x1e')]=qs[_0x1f40('0x1e')](_0x549ac7['query'][_0x1f40('0x1e')]);}return _0x1adb32['getTeams'](_0x718ee6);}})[_0x1f40('0x25')](function(_0x56cc57){if(_0x56cc57){return _0x56cc57?{'count':_0x5c208a,'rows':_0x56cc57}:null;}})[_0x1f40('0x25')](respondWithResult(_0x6bbd57,null))[_0x1f40('0x45')](handleError(_0x6bbd57,null));};exports[_0x1f40('0x66')]=function(_0x32ca09,_0x278ee3,_0x3cf3bf){var _0x398503=_0x32ca09[_0x1f40('0x48')][_0x1f40('0x67')];return db[_0x1f40('0x65')][_0x1f40('0x58')]({'where':{'id':_0x398503},'attributes':['id'],'include':[{'model':db[_0x1f40('0x59')],'as':_0x1f40('0x68'),'attributes':['id','name',_0x1f40('0x69'),'voicePause','interface'],'raw':!![]}]})[_0x1f40('0x25')](function(_0xcafce2){if(_0xcafce2){var _0x57c8f1=_['flatMap'](_0xcafce2,function(_0x8a02d2){var _0x109e42=_0x8a02d2[_0x1f40('0x4a')]({'plain':!![]});return _0x109e42[_0x1f40('0x68')];});return db['SmsQueue']['find']({'where':{'id':_0x32ca09[_0x1f40('0x50')]['id']}})[_0x1f40('0x25')](function(_0x31d35e){return db[_0x1f40('0x6a')][_0x1f40('0x6b')](function(_0x54b7f2){return _0x31d35e[_0x1f40('0x66')](_0x398503,{'transaction':_0x54b7f2})[_0x1f40('0x25')](function(){return BPromise[_0x1f40('0x6c')](_0x57c8f1,function(_0x39bd5c){return db['UserSmsQueue'][_0x1f40('0x6d')]({'where':{'UserId':_0x39bd5c['id'],'SmsQueueId':_0x32ca09[_0x1f40('0x50')]['id']},'transaction':_0x54b7f2});});})[_0x1f40('0x25')](function(){_0x57c8f1['forEach'](function(_0x5db5c5){socket[_0x1f40('0x6e')]('userSmsQueue:save',{'UserId':_0x5db5c5['id'],'SmsQueueId':_0x31d35e['id']});});});});});}})['then'](respondWithStatusCode(_0x278ee3,null))[_0x1f40('0x45')](handleError(_0x278ee3,null));};exports[_0x1f40('0x6f')]=function(_0x4c07ae,_0x3ce56d,_0x422479){return db[_0x1f40('0x65')][_0x1f40('0x58')]({'where':{'id':_0x4c07ae[_0x1f40('0x38')][_0x1f40('0x67')]},'attributes':['id'],'include':[{'model':db[_0x1f40('0x59')],'as':_0x1f40('0x68'),'attributes':['id'],'raw':!![]}]})[_0x1f40('0x25')](handleEntityNotFound(_0x3ce56d,null))[_0x1f40('0x25')](function(_0x585237){var _0x300c6a=_[_0x1f40('0x2d')](_0x585237,'id');var _0x194321=[];var _0x4a192c=[];var _0x5dd1cd=squel['select']();_0x5dd1cd['field'](_0x1f40('0x70'))[_0x1f40('0x71')]('team_has_sms_queues','tq')[_0x1f40('0x72')]('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0x1f40('0x3d')](_0x1f40('0x73'),_0x4c07ae[_0x1f40('0x50')]['id']);for(var _0x36cfd4=0x0;_0x36cfd4<_0x585237[_0x1f40('0x3a')];_0x36cfd4+=0x1){let _0x3a10aa=_0x585237[_0x36cfd4];for(var _0xb500a=0x0;_0xb500a<_0x3a10aa[_0x1f40('0x68')][_0x1f40('0x3a')];_0xb500a+=0x1){let _0x14496c=_0x3a10aa['Agents'][_0xb500a];var _0x457e93=_0x5dd1cd['clone']();_0x457e93[_0x1f40('0x3d')]('ut.UserId\x20=\x20?',_0x14496c['id']);_0x4a192c[_0x1f40('0x74')](db[_0x1f40('0x6a')]['query'](_0x457e93[_0x1f40('0x75')](),{'type':db[_0x1f40('0x6a')][_0x1f40('0x76')][_0x1f40('0x77')]})['then'](function(_0x19fab8){if(_0x19fab8['length']===0x1){return _0x14496c['id'];}else{var _0x4acf88=_[_0x1f40('0x78')](_[_0x1f40('0x2d')](_0x19fab8,'TeamId'),function(_0x43697a){return _[_0x1f40('0x79')](_0x300c6a,_0x43697a);});if(_0x4acf88){return _0x14496c['id'];}}}));}}return BPromise[_0x1f40('0x7a')](_0x4a192c)[_0x1f40('0x25')](function(_0x1b4a4b){_0x194321=_(_0x194321)[_0x1f40('0x7b')](_0x1b4a4b)[_0x1f40('0x7c')]()[_0x1f40('0x7d')]();return db[_0x1f40('0x2e')][_0x1f40('0x4f')]({'where':{'id':_0x4c07ae[_0x1f40('0x50')]['id']}})['then'](function(_0x1eb9bb){return db[_0x1f40('0x6a')][_0x1f40('0x6b')](function(_0x3442cf){return _0x1eb9bb[_0x1f40('0x6f')](_0x4c07ae[_0x1f40('0x38')][_0x1f40('0x67')],{'transaction':_0x3442cf})['then'](function(){if(!_[_0x1f40('0x7e')](_0x194321)){return _0x1eb9bb[_0x1f40('0x7f')](_0x194321,{'transaction':_0x3442cf});}})[_0x1f40('0x25')](function(){_0x194321[_0x1f40('0x80')](function(_0x45d66f){socket[_0x1f40('0x6e')]('userSmsQueue:remove',{'UserId':_0x45d66f,'SmsQueueId':_0x1eb9bb['id']});});});});});});})[_0x1f40('0x25')](respondWithStatusCode(_0x3ce56d,null))['catch'](handleError(_0x3ce56d,null));};exports[_0x1f40('0x81')]=function(_0x1e923a,_0x2f9900,_0x4c973d){return db[_0x1f40('0x2e')]['find']({'where':{'id':_0x1e923a['params']['id']}})['then'](handleEntityNotFound(_0x2f9900,null))[_0x1f40('0x25')](function(_0x46b75d){if(_0x46b75d){return _0x46b75d[_0x1f40('0x81')](_0x1e923a[_0x1f40('0x48')][_0x1f40('0x67')],_[_0x1f40('0x82')](_0x1e923a['body'],[_0x1f40('0x67'),'id'])||{})[_0x1f40('0x83')](function(_0x3139e8){for(var _0x5efe51=0x0;_0x5efe51<_0x1e923a[_0x1f40('0x48')][_0x1f40('0x67')][_0x1f40('0x3a')];_0x5efe51+=0x1){socket[_0x1f40('0x6e')](_0x1f40('0x84'),{'UserId':Number(_0x1e923a[_0x1f40('0x48')][_0x1f40('0x67')][_0x5efe51]),'SmsQueueId':Number(_0x1e923a['params']['id'])});}return _0x3139e8;});}})[_0x1f40('0x25')](respondWithResult(_0x2f9900,null))[_0x1f40('0x45')](handleError(_0x2f9900,null));};exports[_0x1f40('0x7f')]=function(_0x1f9c45,_0x5359f6,_0x5af832){return db[_0x1f40('0x2e')][_0x1f40('0x4f')]({'where':{'id':_0x1f9c45['params']['id']}})[_0x1f40('0x25')](handleEntityNotFound(_0x5359f6,null))[_0x1f40('0x25')](function(_0x24270e){if(_0x24270e){return _0x24270e['removeAgents'](_0x1f9c45[_0x1f40('0x38')][_0x1f40('0x67')])[_0x1f40('0x25')](function(){if(_['isArray'](_0x1f9c45[_0x1f40('0x38')]['ids'])){for(var _0x349be4=0x0;_0x349be4<_0x1f9c45[_0x1f40('0x38')][_0x1f40('0x67')][_0x1f40('0x3a')];_0x349be4+=0x1){socket[_0x1f40('0x6e')](_0x1f40('0x85'),{'UserId':Number(_0x1f9c45[_0x1f40('0x38')]['ids'][_0x349be4]),'SmsQueueId':Number(_0x1f9c45['params']['id'])});}}else{socket['emit'](_0x1f40('0x85'),{'UserId':Number(_0x1f9c45['query']['ids']),'SmsQueueId':Number(_0x1f9c45[_0x1f40('0x50')]['id'])});}});}})[_0x1f40('0x25')](respondWithStatusCode(_0x5359f6,null))[_0x1f40('0x45')](handleError(_0x5359f6,null));};exports['getAgents']=function(_0x37a12,_0x423cd8,_0x84aca3){var _0x1e1a5c={};var _0x26ebdb={};var _0x259517;var _0x3a7488;return db[_0x1f40('0x2e')][_0x1f40('0x53')]({'where':{'id':_0x37a12[_0x1f40('0x50')]['id']}})[_0x1f40('0x25')](handleEntityNotFound(_0x423cd8,null))[_0x1f40('0x25')](function(_0x203d37){if(_0x203d37){_0x259517=_0x203d37;_0x26ebdb[_0x1f40('0x33')]=_[_0x1f40('0x34')](db['User'][_0x1f40('0x2f')]);_0x26ebdb['query']=_['keys'](_0x37a12['query']);_0x26ebdb[_0x1f40('0x35')]=_[_0x1f40('0x36')](_0x26ebdb['model'],_0x26ebdb[_0x1f40('0x38')]);_0x1e1a5c[_0x1f40('0x39')]=_[_0x1f40('0x36')](_0x26ebdb[_0x1f40('0x33')],qs[_0x1f40('0x37')](_0x37a12[_0x1f40('0x38')][_0x1f40('0x37')]));_0x1e1a5c[_0x1f40('0x39')]=_0x1e1a5c['attributes'][_0x1f40('0x3a')]?_0x1e1a5c['attributes']:_0x26ebdb[_0x1f40('0x33')];_0x1e1a5c['order']=qs['sort'](_0x37a12[_0x1f40('0x38')][_0x1f40('0x3c')]);_0x1e1a5c[_0x1f40('0x3d')]=qs[_0x1f40('0x35')](_[_0x1f40('0x3e')](_0x37a12[_0x1f40('0x38')],_0x26ebdb[_0x1f40('0x35')]));if(_0x37a12[_0x1f40('0x38')][_0x1f40('0x3f')]){_0x1e1a5c[_0x1f40('0x3d')]=_['merge'](_0x1e1a5c['where'],{'$or':_['map'](_0x1e1a5c[_0x1f40('0x39')],function(_0x94e684){var _0x59b609={};_0x59b609[_0x94e684]={'$like':'%'+_0x37a12[_0x1f40('0x38')]['filter']+'%'};return _0x59b609;})});}_0x1e1a5c=_[_0x1f40('0x40')]({},_0x1e1a5c,_0x37a12['options']);return _0x259517[_0x1f40('0x86')](_0x1e1a5c);}})['then'](function(_0x50d59b){if(_0x50d59b){_0x3a7488=_0x50d59b[_0x1f40('0x3a')];if(!_0x37a12[_0x1f40('0x38')][_0x1f40('0x3b')](_0x1f40('0x55'))){_0x1e1a5c['limit']=qs['limit'](_0x37a12[_0x1f40('0x38')][_0x1f40('0x1c')]);_0x1e1a5c[_0x1f40('0x1e')]=qs[_0x1f40('0x1e')](_0x37a12[_0x1f40('0x38')][_0x1f40('0x1e')]);}return _0x259517[_0x1f40('0x86')](_0x1e1a5c);}})['then'](function(_0x5b2a2e){if(_0x5b2a2e){return _0x5b2a2e?{'count':_0x3a7488,'rows':_0x5b2a2e}:null;}})[_0x1f40('0x25')](respondWithResult(_0x423cd8,null))[_0x1f40('0x45')](handleError(_0x423cd8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1812=['SmsQueue','save','remove','emit','hasOwnProperty','hook','exports','events'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x1812,0x137));var _0x2181=function(_0x132671,_0x26760e){_0x132671=_0x132671-0x0;var _0x4a3b55=_0x1812[_0x132671];return _0x4a3b55;};'use strict';var EventEmitter=require(_0x2181('0x0'));var SmsQueue=require('../../mysqldb')['db'][_0x2181('0x1')];var SmsQueueEvents=new EventEmitter();SmsQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x2181('0x2'),'afterUpdate':'update','afterDestroy':_0x2181('0x3')};function emitEvent(_0x1f05b9){return function(_0x5951c0,_0x158630,_0x5e6afb){SmsQueueEvents[_0x2181('0x4')](_0x1f05b9+':'+_0x5951c0['id'],_0x5951c0);SmsQueueEvents[_0x2181('0x4')](_0x1f05b9,_0x5951c0);_0x5e6afb(null);};}for(var e in events){if(events[_0x2181('0x5')](e)){var event=events[e];SmsQueue[_0x2181('0x6')](e,emitEvent(event));}}module[_0x2181('0x7')]=SmsQueueEvents;
\ No newline at end of file
+var _0xdfd9=['hasOwnProperty','events','../../mysqldb','SmsQueue','setMaxListeners','save','update','remove','emit'];(function(_0x171fb6,_0x1116d6){var _0x2dda01=function(_0x517505){while(--_0x517505){_0x171fb6['push'](_0x171fb6['shift']());}};_0x2dda01(++_0x1116d6);}(_0xdfd9,0x160));var _0x9dfd=function(_0x41fd5b,_0x25ea38){_0x41fd5b=_0x41fd5b-0x0;var _0x35755e=_0xdfd9[_0x41fd5b];return _0x35755e;};'use strict';var EventEmitter=require(_0x9dfd('0x0'));var SmsQueue=require(_0x9dfd('0x1'))['db'][_0x9dfd('0x2')];var SmsQueueEvents=new EventEmitter();SmsQueueEvents[_0x9dfd('0x3')](0x0);var events={'afterCreate':_0x9dfd('0x4'),'afterUpdate':_0x9dfd('0x5'),'afterDestroy':_0x9dfd('0x6')};function emitEvent(_0x1f9b21){return function(_0x4904bd,_0x49f3bf,_0x4e35f3){SmsQueueEvents[_0x9dfd('0x7')](_0x1f9b21+':'+_0x4904bd['id'],_0x4904bd);SmsQueueEvents[_0x9dfd('0x7')](_0x1f9b21,_0x4904bd);_0x4e35f3(null);};}for(var e in events){if(events[_0x9dfd('0x8')](e)){var event=events[e];SmsQueue['hook'](e,emitEvent(event));}}module['exports']=SmsQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6803=['./smsQueue.attributes','exports','SmsQueue','sms_queues','lodash','api','moment','request-promise','path','rimraf','../../config/environment'];(function(_0x4230f4,_0x38625b){var _0x4a12ac=function(_0x3c18da){while(--_0x3c18da){_0x4230f4['push'](_0x4230f4['shift']());}};_0x4a12ac(++_0x38625b);}(_0x6803,0xd5));var _0x3680=function(_0x295840,_0x53d758){_0x295840=_0x295840-0x0;var _0x38cd71=_0x6803[_0x295840];return _0x38cd71;};'use strict';var _=require(_0x3680('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x3680('0x1'));var moment=require(_0x3680('0x2'));var BPromise=require('bluebird');var rp=require(_0x3680('0x3'));var fs=require('fs');var path=require(_0x3680('0x4'));var rimraf=require(_0x3680('0x5'));var config=require(_0x3680('0x6'));var attributes=require(_0x3680('0x7'));module[_0x3680('0x8')]=function(_0x5c4d04,_0x41ce34){return _0x5c4d04['define'](_0x3680('0x9'),attributes,{'tableName':_0x3680('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xeab0=['sms_queues','lodash','util','../../config/logger','api','moment','request-promise','rimraf','./smsQueue.attributes','exports','SmsQueue'];(function(_0x474e07,_0xbd0097){var _0x48c689=function(_0x40cc29){while(--_0x40cc29){_0x474e07['push'](_0x474e07['shift']());}};_0x48c689(++_0xbd0097);}(_0xeab0,0x156));var _0x0eab=function(_0x1694f5,_0x49b7c3){_0x1694f5=_0x1694f5-0x0;var _0x5b4321=_0xeab0[_0x1694f5];return _0x5b4321;};'use strict';var _=require(_0x0eab('0x0'));var util=require(_0x0eab('0x1'));var logger=require(_0x0eab('0x2'))(_0x0eab('0x3'));var moment=require(_0x0eab('0x4'));var BPromise=require('bluebird');var rp=require(_0x0eab('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0eab('0x6'));var config=require('../../config/environment');var attributes=require(_0x0eab('0x7'));module[_0x0eab('0x8')]=function(_0x452af7,_0x5e45ec){return _0x452af7['define'](_0x0eab('0x9'),attributes,{'tableName':_0x0eab('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c34=['redis','./smsQueue.socket','register','request','then','info','SmsQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','SmsQueue,\x20%s,\x20%s','message','catch','GetSmsQueue','SmsQueue','options','raw','where','include','map','model','attributes','debug','ShowSmsQueue','find','lodash','util','moment','bluebird','../../mysqldb','rpc','../../config/environment','jayson/promise','client','defaults','localhost','socket.io-emitter'];(function(_0x775c3a,_0x592780){var _0x5cdbcf=function(_0x4e2244){while(--_0x4e2244){_0x775c3a['push'](_0x775c3a['shift']());}};_0x5cdbcf(++_0x592780);}(_0x5c34,0x18b));var _0x45c3=function(_0x124d0b,_0x257521){_0x124d0b=_0x124d0b-0x0;var _0x42d9e9=_0x5c34[_0x124d0b];return _0x42d9e9;};'use strict';var _=require(_0x45c3('0x0'));var util=require(_0x45c3('0x1'));var moment=require(_0x45c3('0x2'));var BPromise=require(_0x45c3('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x45c3('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x45c3('0x5'));var config=require(_0x45c3('0x6'));var jayson=require(_0x45c3('0x7'));var client=jayson[_0x45c3('0x8')]['http']({'port':0x232a});config['redis']=_[_0x45c3('0x9')](config['redis'],{'host':_0x45c3('0xa'),'port':0x18eb});var socket=require(_0x45c3('0xb'))(new Redis(config[_0x45c3('0xc')]));require(_0x45c3('0xd'))[_0x45c3('0xe')](socket);function respondWithRpcPromise(_0x4efe97,_0x15c7d1,_0x384390){return new BPromise(function(_0x48b940,_0x3847b1){return client[_0x45c3('0xf')](_0x4efe97,_0x384390)[_0x45c3('0x10')](function(_0x160f90){logger[_0x45c3('0x11')]('SmsQueue,\x20%s,\x20%s',_0x15c7d1,'request\x20sent');logger['debug'](_0x45c3('0x12'),_0x15c7d1,_0x45c3('0x13'),JSON[_0x45c3('0x14')](_0x160f90));if(_0x160f90['error']){if(_0x160f90[_0x45c3('0x15')]['code']===0x1f4){logger['error'](_0x45c3('0x16'),_0x15c7d1,_0x160f90[_0x45c3('0x15')][_0x45c3('0x17')]);return _0x3847b1(_0x160f90[_0x45c3('0x15')][_0x45c3('0x17')]);}logger['error'](_0x45c3('0x16'),_0x15c7d1,_0x160f90[_0x45c3('0x15')][_0x45c3('0x17')]);return _0x48b940(_0x160f90[_0x45c3('0x15')][_0x45c3('0x17')]);}else{logger[_0x45c3('0x11')]('SmsQueue,\x20%s,\x20%s',_0x15c7d1,_0x45c3('0x13'));_0x48b940(_0x160f90['result'][_0x45c3('0x17')]);}})[_0x45c3('0x18')](function(_0x41458e){logger[_0x45c3('0x15')]('SmsQueue,\x20%s,\x20%s',_0x15c7d1,_0x41458e);_0x3847b1(_0x41458e);});});}exports[_0x45c3('0x19')]=function(_0x292ca2){var _0x17bcfd=this;return new Promise(function(_0x19b1cb,_0x52df35){return db[_0x45c3('0x1a')]['findAll']({'raw':_0x292ca2[_0x45c3('0x1b')]?_0x292ca2[_0x45c3('0x1b')][_0x45c3('0x1c')]===undefined?!![]:![]:!![],'where':_0x292ca2[_0x45c3('0x1b')]?_0x292ca2[_0x45c3('0x1b')][_0x45c3('0x1d')]||null:null,'attributes':_0x292ca2[_0x45c3('0x1b')]?_0x292ca2[_0x45c3('0x1b')]['attributes']||null:null,'limit':_0x292ca2[_0x45c3('0x1b')]?_0x292ca2[_0x45c3('0x1b')]['limit']||null:null,'include':_0x292ca2[_0x45c3('0x1b')]?_0x292ca2[_0x45c3('0x1b')][_0x45c3('0x1e')]?_[_0x45c3('0x1f')](_0x292ca2['options'][_0x45c3('0x1e')],function(_0x34f9a7){return{'model':db[_0x34f9a7['model']],'as':_0x34f9a7['as'],'attributes':_0x34f9a7['attributes'],'include':_0x34f9a7[_0x45c3('0x1e')]?_[_0x45c3('0x1f')](_0x34f9a7[_0x45c3('0x1e')],function(_0x3089be){return{'model':db[_0x3089be[_0x45c3('0x20')]],'as':_0x3089be['as'],'attributes':_0x3089be[_0x45c3('0x21')],'include':_0x3089be[_0x45c3('0x1e')]?_[_0x45c3('0x1f')](_0x3089be['include'],function(_0x1b5a54){return{'model':db[_0x1b5a54[_0x45c3('0x20')]],'as':_0x1b5a54['as'],'attributes':_0x1b5a54[_0x45c3('0x21')]};}):[]};}):[]};}):[]:[]})[_0x45c3('0x10')](function(_0x1bcdf3){logger[_0x45c3('0x11')](_0x45c3('0x19'),_0x292ca2);logger[_0x45c3('0x22')]('GetSmsQueue',_0x292ca2,JSON[_0x45c3('0x14')](_0x1bcdf3));_0x19b1cb(_0x1bcdf3);})[_0x45c3('0x18')](function(_0x482b04){logger['error']('GetSmsQueue',_0x482b04[_0x45c3('0x17')],_0x292ca2);_0x52df35(_0x17bcfd[_0x45c3('0x15')](0x1f4,_0x482b04[_0x45c3('0x17')]));});});};exports[_0x45c3('0x23')]=function(_0xf2f8c6){var _0x2e59ee=this;return new Promise(function(_0x23093a,_0x35f114){return db[_0x45c3('0x1a')][_0x45c3('0x24')]({'raw':_0xf2f8c6[_0x45c3('0x1b')]?_0xf2f8c6[_0x45c3('0x1b')][_0x45c3('0x1c')]===undefined?!![]:![]:!![],'where':_0xf2f8c6['options']?_0xf2f8c6[_0x45c3('0x1b')][_0x45c3('0x1d')]||null:null,'attributes':_0xf2f8c6[_0x45c3('0x1b')]?_0xf2f8c6['options'][_0x45c3('0x21')]||null:null,'include':_0xf2f8c6[_0x45c3('0x1b')]?_0xf2f8c6[_0x45c3('0x1b')]['include']?_['map'](_0xf2f8c6[_0x45c3('0x1b')][_0x45c3('0x1e')],function(_0x40dc66){return{'model':db[_0x40dc66['model']],'as':_0x40dc66['as'],'attributes':_0x40dc66[_0x45c3('0x21')],'include':_0x40dc66['include']?_[_0x45c3('0x1f')](_0x40dc66[_0x45c3('0x1e')],function(_0xeb4a8f){return{'model':db[_0xeb4a8f[_0x45c3('0x20')]],'as':_0xeb4a8f['as'],'attributes':_0xeb4a8f['attributes'],'include':_0xeb4a8f[_0x45c3('0x1e')]?_[_0x45c3('0x1f')](_0xeb4a8f['include'],function(_0x3b0261){return{'model':db[_0x3b0261[_0x45c3('0x20')]],'as':_0x3b0261['as'],'attributes':_0x3b0261[_0x45c3('0x21')]};}):[]};}):[]};}):[]:[]})[_0x45c3('0x10')](function(_0x1a7d29){logger[_0x45c3('0x11')](_0x45c3('0x23'),_0xf2f8c6);logger[_0x45c3('0x22')](_0x45c3('0x23'),_0xf2f8c6,JSON[_0x45c3('0x14')](_0x1a7d29));_0x23093a(_0x1a7d29);})[_0x45c3('0x18')](function(_0x1caa0c){logger[_0x45c3('0x15')](_0x45c3('0x23'),_0x1caa0c[_0x45c3('0x17')],_0xf2f8c6);_0x35f114(_0x2e59ee[_0x45c3('0x15')](0x1f4,_0x1caa0c[_0x45c3('0x17')]));});});};
\ No newline at end of file
+var _0x809a=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','defaults','redis','localhost','socket.io-emitter','register','request','then','info','SmsQueue,\x20%s,\x20%s','request\x20sent','SmsQueue,\x20%s,\x20%s,\x20%s','error','code','message','result','SmsQueue','findAll','options','raw','attributes','map','include','model','GetSmsQueue','debug','catch','ShowSmsQueue','find','stringify','lodash'];(function(_0x208b7a,_0x2e3baa){var _0x37b7ec=function(_0x3a163d){while(--_0x3a163d){_0x208b7a['push'](_0x208b7a['shift']());}};_0x37b7ec(++_0x2e3baa);}(_0x809a,0x9f));var _0xa809=function(_0x297314,_0x1b1ee2){_0x297314=_0x297314-0x0;var _0x354230=_0x809a[_0x297314];return _0x354230;};'use strict';var _=require(_0xa809('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xa809('0x1'));var rs=require(_0xa809('0x2'));var fs=require('fs');var Redis=require(_0xa809('0x3'));var db=require(_0xa809('0x4'))['db'];var utils=require(_0xa809('0x5'));var logger=require(_0xa809('0x6'))(_0xa809('0x7'));var config=require(_0xa809('0x8'));var jayson=require(_0xa809('0x9'));var client=jayson[_0xa809('0xa')]['http']({'port':0x232a});config['redis']=_[_0xa809('0xb')](config[_0xa809('0xc')],{'host':_0xa809('0xd'),'port':0x18eb});var socket=require(_0xa809('0xe'))(new Redis(config[_0xa809('0xc')]));require('./smsQueue.socket')[_0xa809('0xf')](socket);function respondWithRpcPromise(_0x1a7253,_0x25decb,_0x4ead7e){return new BPromise(function(_0x4296a9,_0x1bfd3f){return client[_0xa809('0x10')](_0x1a7253,_0x4ead7e)[_0xa809('0x11')](function(_0x599c1b){logger[_0xa809('0x12')](_0xa809('0x13'),_0x25decb,_0xa809('0x14'));logger['debug'](_0xa809('0x15'),_0x25decb,_0xa809('0x14'),JSON['stringify'](_0x599c1b));if(_0x599c1b[_0xa809('0x16')]){if(_0x599c1b['error'][_0xa809('0x17')]===0x1f4){logger[_0xa809('0x16')](_0xa809('0x13'),_0x25decb,_0x599c1b[_0xa809('0x16')]['message']);return _0x1bfd3f(_0x599c1b[_0xa809('0x16')][_0xa809('0x18')]);}logger[_0xa809('0x16')](_0xa809('0x13'),_0x25decb,_0x599c1b[_0xa809('0x16')][_0xa809('0x18')]);return _0x4296a9(_0x599c1b[_0xa809('0x16')]['message']);}else{logger['info'](_0xa809('0x13'),_0x25decb,'request\x20sent');_0x4296a9(_0x599c1b[_0xa809('0x19')][_0xa809('0x18')]);}})['catch'](function(_0x5d6a0d){logger[_0xa809('0x16')](_0xa809('0x13'),_0x25decb,_0x5d6a0d);_0x1bfd3f(_0x5d6a0d);});});}exports['GetSmsQueue']=function(_0x4c09dc){var _0x5af36f=this;return new Promise(function(_0x173743,_0x427a75){return db[_0xa809('0x1a')][_0xa809('0x1b')]({'raw':_0x4c09dc[_0xa809('0x1c')]?_0x4c09dc[_0xa809('0x1c')][_0xa809('0x1d')]===undefined?!![]:![]:!![],'where':_0x4c09dc[_0xa809('0x1c')]?_0x4c09dc[_0xa809('0x1c')]['where']||null:null,'attributes':_0x4c09dc[_0xa809('0x1c')]?_0x4c09dc['options'][_0xa809('0x1e')]||null:null,'limit':_0x4c09dc[_0xa809('0x1c')]?_0x4c09dc[_0xa809('0x1c')]['limit']||null:null,'include':_0x4c09dc[_0xa809('0x1c')]?_0x4c09dc[_0xa809('0x1c')]['include']?_[_0xa809('0x1f')](_0x4c09dc['options'][_0xa809('0x20')],function(_0x499e43){return{'model':db[_0x499e43[_0xa809('0x21')]],'as':_0x499e43['as'],'attributes':_0x499e43['attributes'],'include':_0x499e43[_0xa809('0x20')]?_['map'](_0x499e43[_0xa809('0x20')],function(_0x1f16fe){return{'model':db[_0x1f16fe['model']],'as':_0x1f16fe['as'],'attributes':_0x1f16fe['attributes'],'include':_0x1f16fe[_0xa809('0x20')]?_[_0xa809('0x1f')](_0x1f16fe[_0xa809('0x20')],function(_0x1b688f){return{'model':db[_0x1b688f['model']],'as':_0x1b688f['as'],'attributes':_0x1b688f['attributes']};}):[]};}):[]};}):[]:[]})[_0xa809('0x11')](function(_0x43a13b){logger[_0xa809('0x12')](_0xa809('0x22'),_0x4c09dc);logger[_0xa809('0x23')]('GetSmsQueue',_0x4c09dc,JSON['stringify'](_0x43a13b));_0x173743(_0x43a13b);})[_0xa809('0x24')](function(_0x5a1201){logger[_0xa809('0x16')](_0xa809('0x22'),_0x5a1201[_0xa809('0x18')],_0x4c09dc);_0x427a75(_0x5af36f['error'](0x1f4,_0x5a1201[_0xa809('0x18')]));});});};exports[_0xa809('0x25')]=function(_0x21c1b5){var _0x416dbf=this;return new Promise(function(_0x5732f0,_0x1a12aa){return db['SmsQueue'][_0xa809('0x26')]({'raw':_0x21c1b5[_0xa809('0x1c')]?_0x21c1b5['options'][_0xa809('0x1d')]===undefined?!![]:![]:!![],'where':_0x21c1b5[_0xa809('0x1c')]?_0x21c1b5[_0xa809('0x1c')]['where']||null:null,'attributes':_0x21c1b5[_0xa809('0x1c')]?_0x21c1b5[_0xa809('0x1c')][_0xa809('0x1e')]||null:null,'include':_0x21c1b5[_0xa809('0x1c')]?_0x21c1b5['options'][_0xa809('0x20')]?_['map'](_0x21c1b5[_0xa809('0x1c')][_0xa809('0x20')],function(_0x49d6ea){return{'model':db[_0x49d6ea[_0xa809('0x21')]],'as':_0x49d6ea['as'],'attributes':_0x49d6ea[_0xa809('0x1e')],'include':_0x49d6ea[_0xa809('0x20')]?_['map'](_0x49d6ea['include'],function(_0x514a6f){return{'model':db[_0x514a6f['model']],'as':_0x514a6f['as'],'attributes':_0x514a6f['attributes'],'include':_0x514a6f[_0xa809('0x20')]?_[_0xa809('0x1f')](_0x514a6f[_0xa809('0x20')],function(_0x3b1066){return{'model':db[_0x3b1066[_0xa809('0x21')]],'as':_0x3b1066['as'],'attributes':_0x3b1066['attributes']};}):[]};}):[]};}):[]:[]})[_0xa809('0x11')](function(_0x2116d3){logger[_0xa809('0x12')](_0xa809('0x25'),_0x21c1b5);logger[_0xa809('0x23')](_0xa809('0x25'),_0x21c1b5,JSON[_0xa809('0x27')](_0x2116d3));_0x5732f0(_0x2116d3);})[_0xa809('0x24')](function(_0x5d8731){logger['error'](_0xa809('0x25'),_0x5d8731[_0xa809('0x18')],_0x21c1b5);_0x1a12aa(_0x416dbf[_0xa809('0x16')](0x1f4,_0x5d8731[_0xa809('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce28=['save','remove','emit','removeListener','smsQueue:','./smsQueue.events'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xce28,0x191));var _0x8ce2=function(_0x62c958,_0x2bfdbc){_0x62c958=_0x62c958-0x0;var _0x57ec61=_0xce28[_0x62c958];return _0x57ec61;};'use strict';var SmsQueueEvents=require(_0x8ce2('0x0'));var events=[_0x8ce2('0x1'),_0x8ce2('0x2'),'update'];function createListener(_0x14f81f,_0x76e178){return function(_0x456cb6){_0x76e178[_0x8ce2('0x3')](_0x14f81f,_0x456cb6);};}function removeListener(_0x5309ff,_0x4f1716){return function(){SmsQueueEvents[_0x8ce2('0x4')](_0x5309ff,_0x4f1716);};}exports['register']=function(_0x47912f){for(var _0x4bb7ba=0x0,_0x51e77f=events['length'];_0x4bb7ba<_0x51e77f;_0x4bb7ba++){var _0xf8664a=events[_0x4bb7ba];var _0x4f1d5e=createListener(_0x8ce2('0x5')+_0xf8664a,_0x47912f);SmsQueueEvents['on'](_0xf8664a,_0x4f1d5e);}};
\ No newline at end of file
+var _0x0806=['length','smsQueue:','./smsQueue.events','remove','update','emit','removeListener','register'];(function(_0x4bf6f9,_0x32229c){var _0x281380=function(_0x14a91a){while(--_0x14a91a){_0x4bf6f9['push'](_0x4bf6f9['shift']());}};_0x281380(++_0x32229c);}(_0x0806,0x11a));var _0x6080=function(_0x552475,_0xfa1597){_0x552475=_0x552475-0x0;var _0x5171a6=_0x0806[_0x552475];return _0x5171a6;};'use strict';var SmsQueueEvents=require(_0x6080('0x0'));var events=['save',_0x6080('0x1'),_0x6080('0x2')];function createListener(_0x5723b6,_0x361671){return function(_0x2acc73){_0x361671[_0x6080('0x3')](_0x5723b6,_0x2acc73);};}function removeListener(_0x5ba28d,_0x9d182f){return function(){SmsQueueEvents[_0x6080('0x4')](_0x5ba28d,_0x9d182f);};}exports[_0x6080('0x5')]=function(_0x4e6fd1){for(var _0x2c066d=0x0,_0x21003b=events[_0x6080('0x6')];_0x2c066d<_0x21003b;_0x2c066d++){var _0x86e6f8=events[_0x2c066d];var _0x46edc8=createListener(_0x6080('0x7')+_0x86e6f8,_0x4e6fd1);SmsQueueEvents['on'](_0x86e6f8,_0x46edc8);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa277=['../../config/environment','./smsQueueReport.controller','get','index','/describe','isAuthenticated','/:id','post','create','put','update','delete','destroy','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x5d8cb3,_0x434a9e){var _0x3d6c3a=function(_0x5652e1){while(--_0x5652e1){_0x5d8cb3['push'](_0x5d8cb3['shift']());}};_0x3d6c3a(++_0x434a9e);}(_0xa277,0x1c7));var _0x7a27=function(_0x46fa52,_0x1a881d){_0x46fa52=_0x46fa52-0x0;var _0x32c202=_0xa277[_0x46fa52];return _0x32c202;};'use strict';var multer=require('multer');var util=require(_0x7a27('0x0'));var path=require(_0x7a27('0x1'));var timeout=require(_0x7a27('0x2'));var express=require('express');var router=express[_0x7a27('0x3')]();var fs_extra=require(_0x7a27('0x4'));var auth=require(_0x7a27('0x5'));var interaction=require(_0x7a27('0x6'));var config=require(_0x7a27('0x7'));var controller=require(_0x7a27('0x8'));router[_0x7a27('0x9')]('/',auth['isAuthenticated'](),controller[_0x7a27('0xa')]);router[_0x7a27('0x9')](_0x7a27('0xb'),auth[_0x7a27('0xc')](),controller['describe']);router[_0x7a27('0x9')](_0x7a27('0xd'),auth['isAuthenticated'](),controller['show']);router[_0x7a27('0xe')]('/',auth[_0x7a27('0xc')](),controller[_0x7a27('0xf')]);router[_0x7a27('0x10')]('/:id',auth[_0x7a27('0xc')](),controller[_0x7a27('0x11')]);router[_0x7a27('0x12')](_0x7a27('0xd'),auth[_0x7a27('0xc')](),controller[_0x7a27('0x13')]);module[_0x7a27('0x14')]=router;
\ No newline at end of file
+var _0x40e1=['exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','get','isAuthenticated','index','/describe','/:id','show','post','create','put','update'];(function(_0x220708,_0x4441b8){var _0x4547fd=function(_0x5f461e){while(--_0x5f461e){_0x220708['push'](_0x220708['shift']());}};_0x4547fd(++_0x4441b8);}(_0x40e1,0x1e7));var _0x140e=function(_0x38ecda,_0x3b551e){_0x38ecda=_0x38ecda-0x0;var _0x3fa8f3=_0x40e1[_0x38ecda];return _0x3fa8f3;};'use strict';var multer=require(_0x140e('0x0'));var util=require('util');var path=require(_0x140e('0x1'));var timeout=require(_0x140e('0x2'));var express=require(_0x140e('0x3'));var router=express[_0x140e('0x4')]();var fs_extra=require(_0x140e('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x140e('0x6'));var config=require('../../config/environment');var controller=require('./smsQueueReport.controller');router[_0x140e('0x7')]('/',auth[_0x140e('0x8')](),controller[_0x140e('0x9')]);router['get'](_0x140e('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x140e('0x7')](_0x140e('0xb'),auth[_0x140e('0x8')](),controller[_0x140e('0xc')]);router[_0x140e('0xd')]('/',auth[_0x140e('0x8')](),controller[_0x140e('0xe')]);router[_0x140e('0xf')](_0x140e('0xb'),auth['isAuthenticated'](),controller[_0x140e('0x10')]);router['delete'](_0x140e('0xb'),auth[_0x140e('0x8')](),controller['destroy']);module[_0x140e('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2937=['STRING','DATE','moment','sequelize','exports'];(function(_0x13915f,_0x3d90c6){var _0x373181=function(_0x66a7b4){while(--_0x66a7b4){_0x13915f['push'](_0x13915f['shift']());}};_0x373181(++_0x3d90c6);}(_0x2937,0x1ba));var _0x7293=function(_0x572f7a,_0x109677){_0x572f7a=_0x572f7a-0x0;var _0x14b167=_0x2937[_0x572f7a];return _0x14b167;};'use strict';var moment=require(_0x7293('0x0'));var Sequelize=require(_0x7293('0x1'));module[_0x7293('0x2')]={'uniqueid':{'type':Sequelize[_0x7293('0x3')],'allowNull':![]},'from':{'type':Sequelize[_0x7293('0x3')]},'joinAt':{'type':Sequelize[_0x7293('0x4')]},'leaveAt':{'type':Sequelize[_0x7293('0x4')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x7293('0x4')]},'reason':{'type':Sequelize[_0x7293('0x3')]}};
\ No newline at end of file
+var _0x62ad=['moment','sequelize','STRING','DATE'];(function(_0x130581,_0x3d6ac6){var _0x2c49e5=function(_0x568e00){while(--_0x568e00){_0x130581['push'](_0x130581['shift']());}};_0x2c49e5(++_0x3d6ac6);}(_0x62ad,0x134));var _0xd62a=function(_0x53608f,_0x1336c8){_0x53608f=_0x53608f-0x0;var _0x44fa5c=_0x62ad[_0x53608f];return _0x44fa5c;};'use strict';var moment=require(_0xd62a('0x0'));var Sequelize=require(_0xd62a('0x1'));module['exports']={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0xd62a('0x2')]},'joinAt':{'type':Sequelize[_0xd62a('0x3')]},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0xd62a('0x3')]},'reason':{'type':Sequelize[_0xd62a('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc97e=['attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','type','VIRTUAL','options','includeAll','include','rows','catch','show','params','find','create','body','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','ejs','lodash','squel','crypto','jsforce','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','apply','reject','update','then','error','stack','name','send','index','map','SmsQueueReport','rawAttributes','fieldName','key','query','keys','filters','intersection','model','fields'];(function(_0x44a1fc,_0x8b735c){var _0x3ef3f8=function(_0x32da0c){while(--_0x32da0c){_0x44a1fc['push'](_0x44a1fc['shift']());}};_0x3ef3f8(++_0x8b735c);}(_0xc97e,0x1df));var _0xec97=function(_0x4b790a,_0x45edd1){_0x4b790a=_0x4b790a-0x0;var _0x598214=_0xc97e[_0x4b790a];return _0x598214;};'use strict';var emlformat=require(_0xec97('0x0'));var rimraf=require(_0xec97('0x1'));var zipdir=require(_0xec97('0x2'));var jsonpatch=require(_0xec97('0x3'));var rp=require(_0xec97('0x4'));var moment=require(_0xec97('0x5'));var BPromise=require(_0xec97('0x6'));var Mustache=require(_0xec97('0x7'));var util=require('util');var path=require('path');var sox=require(_0xec97('0x8'));var csv=require('to-csv');var ejs=require(_0xec97('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xec97('0xa'));var squel=require(_0xec97('0xb'));var crypto=require(_0xec97('0xc'));var jsforce=require(_0xec97('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xec97('0xe'));var querystring=require('querystring');var Papa=require(_0xec97('0xf'));var Redis=require(_0xec97('0x10'));var authService=require(_0xec97('0x11'));var qs=require(_0xec97('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xec97('0x13'));var utils=require(_0xec97('0x14'));var config=require(_0xec97('0x15'));var licenseUtil=require(_0xec97('0x16'));var db=require(_0xec97('0x17'))['db'];function respondWithStatusCode(_0x44ce10,_0x19940b){_0x19940b=_0x19940b||0xcc;return function(_0x34eeca){if(_0x34eeca){return _0x44ce10[_0xec97('0x18')](_0x19940b);}return _0x44ce10['status'](_0x19940b)[_0xec97('0x19')]();};}function respondWithResult(_0x3c6c22,_0x2829ec){_0x2829ec=_0x2829ec||0xc8;return function(_0x3fd59c){if(_0x3fd59c){return _0x3c6c22[_0xec97('0x1a')](_0x2829ec)[_0xec97('0x1b')](_0x3fd59c);}};}function respondWithFilteredResult(_0x3a981b,_0x3b7017){return function(_0x2678c2){if(_0x2678c2){var _0x4b9df1=typeof _0x3b7017[_0xec97('0x1c')]==='undefined'&&typeof _0x3b7017[_0xec97('0x1d')]===_0xec97('0x1e');var _0x1ba7ab=_0x2678c2['count'];var _0x1c4f89=_0x4b9df1?0x0:_0x3b7017['offset'];var _0x531f5b=_0x4b9df1?_0x2678c2[_0xec97('0x1f')]:_0x3b7017['offset']+_0x3b7017[_0xec97('0x1d')];var _0x35f3c5;if(_0x531f5b>=_0x1ba7ab){_0x531f5b=_0x1ba7ab;_0x35f3c5=0xc8;}else{_0x35f3c5=0xce;}_0x3a981b[_0xec97('0x1a')](_0x35f3c5);return _0x3a981b[_0xec97('0x20')]('Content-Range',_0x1c4f89+'-'+_0x531f5b+'/'+_0x1ba7ab)[_0xec97('0x1b')](_0x2678c2);}return null;};}function patchUpdates(_0x38a618){return function(_0x444bb3){try{jsonpatch[_0xec97('0x21')](_0x444bb3,_0x38a618,!![]);}catch(_0x13a106){return BPromise[_0xec97('0x22')](_0x13a106);}return _0x444bb3['save']();};}function saveUpdates(_0x26e86e,_0x34d659){return function(_0x564efa){if(_0x564efa){return _0x564efa[_0xec97('0x23')](_0x26e86e)[_0xec97('0x24')](function(_0x16630b){return _0x16630b;});}return null;};}function removeEntity(_0x246fc9,_0x5e1996){return function(_0x5d0fa1){if(_0x5d0fa1){return _0x5d0fa1['destroy']()['then'](function(){_0x246fc9[_0xec97('0x1a')](0xcc)[_0xec97('0x19')]();});}};}function handleEntityNotFound(_0x2b5ef5,_0x4982c2){return function(_0x20506b){if(!_0x20506b){_0x2b5ef5[_0xec97('0x18')](0x194);}return _0x20506b;};}function handleError(_0x4017a4,_0x195c98){_0x195c98=_0x195c98||0x1f4;return function(_0x20e82a){logger[_0xec97('0x25')](_0x20e82a[_0xec97('0x26')]);if(_0x20e82a[_0xec97('0x27')]){delete _0x20e82a['name'];}_0x4017a4[_0xec97('0x1a')](_0x195c98)[_0xec97('0x28')](_0x20e82a);};}exports[_0xec97('0x29')]=function(_0x42367f,_0x220e61){var _0x8fe68d={},_0x4163b2={},_0x109828={'count':0x0,'rows':[]};var _0x2a9cd8=_[_0xec97('0x2a')](db[_0xec97('0x2b')][_0xec97('0x2c')],function(_0x43a839){return{'name':_0x43a839[_0xec97('0x2d')],'type':_0x43a839['type'][_0xec97('0x2e')]};});_0x4163b2['model']=_[_0xec97('0x2a')](_0x2a9cd8,_0xec97('0x27'));_0x4163b2[_0xec97('0x2f')]=_[_0xec97('0x30')](_0x42367f[_0xec97('0x2f')]);_0x4163b2[_0xec97('0x31')]=_[_0xec97('0x32')](_0x4163b2[_0xec97('0x33')],_0x4163b2['query']);_0x8fe68d['attributes']=_[_0xec97('0x32')](_0x4163b2['model'],qs[_0xec97('0x34')](_0x42367f[_0xec97('0x2f')]['fields']));_0x8fe68d[_0xec97('0x35')]=_0x8fe68d['attributes'][_0xec97('0x36')]?_0x8fe68d[_0xec97('0x35')]:_0x4163b2[_0xec97('0x33')];if(!_0x42367f[_0xec97('0x2f')][_0xec97('0x37')](_0xec97('0x38'))){_0x8fe68d[_0xec97('0x1d')]=qs['limit'](_0x42367f['query'][_0xec97('0x1d')]);_0x8fe68d[_0xec97('0x1c')]=qs[_0xec97('0x1c')](_0x42367f[_0xec97('0x2f')][_0xec97('0x1c')]);}_0x8fe68d[_0xec97('0x39')]=qs[_0xec97('0x3a')](_0x42367f['query'][_0xec97('0x3a')]);_0x8fe68d[_0xec97('0x3b')]=qs['filters'](_['pick'](_0x42367f[_0xec97('0x2f')],_0x4163b2[_0xec97('0x31')]),_0x2a9cd8);if(_0x42367f[_0xec97('0x2f')][_0xec97('0x3c')]){_0x8fe68d[_0xec97('0x3b')]=_[_0xec97('0x3d')](_0x8fe68d['where'],{'$or':_[_0xec97('0x2a')](_0x2a9cd8,function(_0x328c65){if(_0x328c65[_0xec97('0x3e')]!==_0xec97('0x3f')){var _0x5606c5={};_0x5606c5[_0x328c65[_0xec97('0x27')]]={'$like':'%'+_0x42367f['query']['filter']+'%'};return _0x5606c5;}})});}_0x8fe68d=_['merge']({},_0x8fe68d,_0x42367f[_0xec97('0x40')]);var _0x13eb33={'where':_0x8fe68d[_0xec97('0x3b')]};return db['SmsQueueReport'][_0xec97('0x1f')](_0x13eb33)[_0xec97('0x24')](function(_0x2f3e08){_0x109828['count']=_0x2f3e08;if(_0x42367f[_0xec97('0x2f')][_0xec97('0x41')]){_0x8fe68d[_0xec97('0x42')]=[{'all':!![]}];}return db[_0xec97('0x2b')]['findAll'](_0x8fe68d);})[_0xec97('0x24')](function(_0x3d562f){_0x109828[_0xec97('0x43')]=_0x3d562f;return _0x109828;})[_0xec97('0x24')](respondWithFilteredResult(_0x220e61,_0x8fe68d))[_0xec97('0x44')](handleError(_0x220e61,null));};exports[_0xec97('0x45')]=function(_0x16ff69,_0x23d8b2){var _0x3b7c02={'raw':!![],'where':{'id':_0x16ff69[_0xec97('0x46')]['id']}},_0x4ebc9c={};_0x4ebc9c[_0xec97('0x33')]=_[_0xec97('0x30')](db[_0xec97('0x2b')][_0xec97('0x2c')]);_0x4ebc9c['query']=_[_0xec97('0x30')](_0x16ff69['query']);_0x4ebc9c['filters']=_[_0xec97('0x32')](_0x4ebc9c[_0xec97('0x33')],_0x4ebc9c[_0xec97('0x2f')]);_0x3b7c02['attributes']=_[_0xec97('0x32')](_0x4ebc9c[_0xec97('0x33')],qs[_0xec97('0x34')](_0x16ff69[_0xec97('0x2f')][_0xec97('0x34')]));_0x3b7c02['attributes']=_0x3b7c02[_0xec97('0x35')][_0xec97('0x36')]?_0x3b7c02[_0xec97('0x35')]:_0x4ebc9c[_0xec97('0x33')];if(_0x16ff69[_0xec97('0x2f')][_0xec97('0x41')]){_0x3b7c02['include']=[{'all':!![]}];}_0x3b7c02=_['merge']({},_0x3b7c02,_0x16ff69[_0xec97('0x40')]);return db[_0xec97('0x2b')][_0xec97('0x47')](_0x3b7c02)[_0xec97('0x24')](handleEntityNotFound(_0x23d8b2,null))['then'](respondWithResult(_0x23d8b2,null))[_0xec97('0x44')](handleError(_0x23d8b2,null));};exports[_0xec97('0x48')]=function(_0x1c740b,_0x52629d){return db[_0xec97('0x2b')][_0xec97('0x48')](_0x1c740b['body'],{})[_0xec97('0x24')](respondWithResult(_0x52629d,0xc9))[_0xec97('0x44')](handleError(_0x52629d,null));};exports[_0xec97('0x23')]=function(_0x148527,_0x1c9e3a){if(_0x148527[_0xec97('0x49')]['id']){delete _0x148527[_0xec97('0x49')]['id'];}return db[_0xec97('0x2b')][_0xec97('0x47')]({'where':{'id':_0x148527[_0xec97('0x46')]['id']}})[_0xec97('0x24')](handleEntityNotFound(_0x1c9e3a,null))[_0xec97('0x24')](saveUpdates(_0x148527[_0xec97('0x49')],null))['then'](respondWithResult(_0x1c9e3a,null))['catch'](handleError(_0x1c9e3a,null));};exports[_0xec97('0x4a')]=function(_0x12bec3,_0xf16d56){return db['SmsQueueReport'][_0xec97('0x47')]({'where':{'id':_0x12bec3['params']['id']}})[_0xec97('0x24')](handleEntityNotFound(_0xf16d56,null))[_0xec97('0x24')](removeEntity(_0xf16d56,null))[_0xec97('0x44')](handleError(_0xf16d56,null));};exports[_0xec97('0x4b')]=function(_0x1f6dc7,_0x2ced1a){return db[_0xec97('0x2b')][_0xec97('0x4b')]()['then'](respondWithResult(_0x2ced1a,null))[_0xec97('0x44')](handleError(_0x2ced1a,null));};
\ No newline at end of file
+var _0x31bd=['then','destroy','end','send','index','SmsQueueReport','rawAttributes','key','model','map','name','query','keys','filters','intersection','attributes','fields','length','order','sort','where','filter','merge','type','VIRTUAL','options','includeAll','include','catch','show','params','find','create','body','describe','eml-format','rimraf','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/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','save','update'];(function(_0x2e1b5d,_0x234e32){var _0x21f98f=function(_0x2bbee1){while(--_0x2bbee1){_0x2e1b5d['push'](_0x2e1b5d['shift']());}};_0x21f98f(++_0x234e32);}(_0x31bd,0x6e));var _0xd31b=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x31bd[_0x3b380d];return _0x54502b;};'use strict';var emlformat=require(_0xd31b('0x0'));var rimraf=require(_0xd31b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd31b('0x2'));var rp=require(_0xd31b('0x3'));var moment=require(_0xd31b('0x4'));var BPromise=require(_0xd31b('0x5'));var Mustache=require(_0xd31b('0x6'));var util=require(_0xd31b('0x7'));var path=require(_0xd31b('0x8'));var sox=require(_0xd31b('0x9'));var csv=require(_0xd31b('0xa'));var ejs=require(_0xd31b('0xb'));var fs=require('fs');var fs_extra=require(_0xd31b('0xc'));var _=require(_0xd31b('0xd'));var squel=require(_0xd31b('0xe'));var crypto=require(_0xd31b('0xf'));var jsforce=require(_0xd31b('0x10'));var deskjs=require(_0xd31b('0x11'));var toCsv=require('to-csv');var querystring=require(_0xd31b('0x12'));var Papa=require(_0xd31b('0x13'));var Redis=require(_0xd31b('0x14'));var authService=require(_0xd31b('0x15'));var qs=require(_0xd31b('0x16'));var as=require(_0xd31b('0x17'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd31b('0x18'))(_0xd31b('0x19'));var utils=require(_0xd31b('0x1a'));var config=require('../../config/environment');var licenseUtil=require(_0xd31b('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3a96b1,_0x316952){_0x316952=_0x316952||0xcc;return function(_0x4c6202){if(_0x4c6202){return _0x3a96b1[_0xd31b('0x1c')](_0x316952);}return _0x3a96b1[_0xd31b('0x1d')](_0x316952)['end']();};}function respondWithResult(_0x12b5b0,_0x5736de){_0x5736de=_0x5736de||0xc8;return function(_0x4ad4a1){if(_0x4ad4a1){return _0x12b5b0['status'](_0x5736de)['json'](_0x4ad4a1);}};}function respondWithFilteredResult(_0x135fe5,_0x1148d3){return function(_0x2ed5c7){if(_0x2ed5c7){var _0x340b7d=typeof _0x1148d3[_0xd31b('0x1e')]===_0xd31b('0x1f')&&typeof _0x1148d3[_0xd31b('0x20')]===_0xd31b('0x1f');var _0x510822=_0x2ed5c7[_0xd31b('0x21')];var _0x511110=_0x340b7d?0x0:_0x1148d3[_0xd31b('0x1e')];var _0x126f70=_0x340b7d?_0x2ed5c7['count']:_0x1148d3[_0xd31b('0x1e')]+_0x1148d3['limit'];var _0x4f9b22;if(_0x126f70>=_0x510822){_0x126f70=_0x510822;_0x4f9b22=0xc8;}else{_0x4f9b22=0xce;}_0x135fe5[_0xd31b('0x1d')](_0x4f9b22);return _0x135fe5[_0xd31b('0x22')](_0xd31b('0x23'),_0x511110+'-'+_0x126f70+'/'+_0x510822)[_0xd31b('0x24')](_0x2ed5c7);}return null;};}function patchUpdates(_0x1bded5){return function(_0x332854){try{jsonpatch[_0xd31b('0x25')](_0x332854,_0x1bded5,!![]);}catch(_0x522eb0){return BPromise['reject'](_0x522eb0);}return _0x332854[_0xd31b('0x26')]();};}function saveUpdates(_0x57b4fb,_0x39e412){return function(_0x19a089){if(_0x19a089){return _0x19a089[_0xd31b('0x27')](_0x57b4fb)[_0xd31b('0x28')](function(_0x29f093){return _0x29f093;});}return null;};}function removeEntity(_0x5901dd,_0x38dfb7){return function(_0x985cd8){if(_0x985cd8){return _0x985cd8[_0xd31b('0x29')]()[_0xd31b('0x28')](function(){_0x5901dd[_0xd31b('0x1d')](0xcc)[_0xd31b('0x2a')]();});}};}function handleEntityNotFound(_0x35a7c2,_0x56ea15){return function(_0x1a2f45){if(!_0x1a2f45){_0x35a7c2[_0xd31b('0x1c')](0x194);}return _0x1a2f45;};}function handleError(_0x88c454,_0x208aaf){_0x208aaf=_0x208aaf||0x1f4;return function(_0x35d1ae){logger['error'](_0x35d1ae['stack']);if(_0x35d1ae['name']){delete _0x35d1ae['name'];}_0x88c454[_0xd31b('0x1d')](_0x208aaf)[_0xd31b('0x2b')](_0x35d1ae);};}exports[_0xd31b('0x2c')]=function(_0x33c465,_0x44baf3){var _0x277365={},_0x3ee098={},_0x5c8161={'count':0x0,'rows':[]};var _0x233ce8=_['map'](db[_0xd31b('0x2d')][_0xd31b('0x2e')],function(_0x2295dd){return{'name':_0x2295dd['fieldName'],'type':_0x2295dd['type'][_0xd31b('0x2f')]};});_0x3ee098[_0xd31b('0x30')]=_[_0xd31b('0x31')](_0x233ce8,_0xd31b('0x32'));_0x3ee098[_0xd31b('0x33')]=_[_0xd31b('0x34')](_0x33c465['query']);_0x3ee098[_0xd31b('0x35')]=_[_0xd31b('0x36')](_0x3ee098[_0xd31b('0x30')],_0x3ee098['query']);_0x277365[_0xd31b('0x37')]=_[_0xd31b('0x36')](_0x3ee098['model'],qs[_0xd31b('0x38')](_0x33c465[_0xd31b('0x33')]['fields']));_0x277365[_0xd31b('0x37')]=_0x277365[_0xd31b('0x37')][_0xd31b('0x39')]?_0x277365['attributes']:_0x3ee098[_0xd31b('0x30')];if(!_0x33c465[_0xd31b('0x33')]['hasOwnProperty']('nolimit')){_0x277365[_0xd31b('0x20')]=qs[_0xd31b('0x20')](_0x33c465[_0xd31b('0x33')]['limit']);_0x277365[_0xd31b('0x1e')]=qs[_0xd31b('0x1e')](_0x33c465[_0xd31b('0x33')][_0xd31b('0x1e')]);}_0x277365[_0xd31b('0x3a')]=qs[_0xd31b('0x3b')](_0x33c465[_0xd31b('0x33')][_0xd31b('0x3b')]);_0x277365[_0xd31b('0x3c')]=qs['filters'](_['pick'](_0x33c465['query'],_0x3ee098[_0xd31b('0x35')]),_0x233ce8);if(_0x33c465['query'][_0xd31b('0x3d')]){_0x277365[_0xd31b('0x3c')]=_[_0xd31b('0x3e')](_0x277365['where'],{'$or':_[_0xd31b('0x31')](_0x233ce8,function(_0x365f6d){if(_0x365f6d[_0xd31b('0x3f')]!==_0xd31b('0x40')){var _0x32aa12={};_0x32aa12[_0x365f6d[_0xd31b('0x32')]]={'$like':'%'+_0x33c465[_0xd31b('0x33')][_0xd31b('0x3d')]+'%'};return _0x32aa12;}})});}_0x277365=_[_0xd31b('0x3e')]({},_0x277365,_0x33c465[_0xd31b('0x41')]);var _0xb55d63={'where':_0x277365[_0xd31b('0x3c')]};return db[_0xd31b('0x2d')]['count'](_0xb55d63)[_0xd31b('0x28')](function(_0x507c03){_0x5c8161['count']=_0x507c03;if(_0x33c465[_0xd31b('0x33')][_0xd31b('0x42')]){_0x277365[_0xd31b('0x43')]=[{'all':!![]}];}return db['SmsQueueReport']['findAll'](_0x277365);})[_0xd31b('0x28')](function(_0x233700){_0x5c8161['rows']=_0x233700;return _0x5c8161;})[_0xd31b('0x28')](respondWithFilteredResult(_0x44baf3,_0x277365))[_0xd31b('0x44')](handleError(_0x44baf3,null));};exports[_0xd31b('0x45')]=function(_0xd924b1,_0x445d64){var _0x357f17={'raw':!![],'where':{'id':_0xd924b1[_0xd31b('0x46')]['id']}},_0x3076f6={};_0x3076f6['model']=_[_0xd31b('0x34')](db[_0xd31b('0x2d')][_0xd31b('0x2e')]);_0x3076f6['query']=_[_0xd31b('0x34')](_0xd924b1[_0xd31b('0x33')]);_0x3076f6['filters']=_[_0xd31b('0x36')](_0x3076f6[_0xd31b('0x30')],_0x3076f6['query']);_0x357f17[_0xd31b('0x37')]=_[_0xd31b('0x36')](_0x3076f6[_0xd31b('0x30')],qs[_0xd31b('0x38')](_0xd924b1[_0xd31b('0x33')][_0xd31b('0x38')]));_0x357f17[_0xd31b('0x37')]=_0x357f17[_0xd31b('0x37')][_0xd31b('0x39')]?_0x357f17[_0xd31b('0x37')]:_0x3076f6['model'];if(_0xd924b1[_0xd31b('0x33')][_0xd31b('0x42')]){_0x357f17[_0xd31b('0x43')]=[{'all':!![]}];}_0x357f17=_[_0xd31b('0x3e')]({},_0x357f17,_0xd924b1[_0xd31b('0x41')]);return db[_0xd31b('0x2d')][_0xd31b('0x47')](_0x357f17)[_0xd31b('0x28')](handleEntityNotFound(_0x445d64,null))[_0xd31b('0x28')](respondWithResult(_0x445d64,null))[_0xd31b('0x44')](handleError(_0x445d64,null));};exports[_0xd31b('0x48')]=function(_0xc161fc,_0x1ca54c){return db['SmsQueueReport'][_0xd31b('0x48')](_0xc161fc[_0xd31b('0x49')],{})['then'](respondWithResult(_0x1ca54c,0xc9))[_0xd31b('0x44')](handleError(_0x1ca54c,null));};exports[_0xd31b('0x27')]=function(_0x163359,_0x5aeaec){if(_0x163359[_0xd31b('0x49')]['id']){delete _0x163359[_0xd31b('0x49')]['id'];}return db[_0xd31b('0x2d')][_0xd31b('0x47')]({'where':{'id':_0x163359['params']['id']}})[_0xd31b('0x28')](handleEntityNotFound(_0x5aeaec,null))[_0xd31b('0x28')](saveUpdates(_0x163359[_0xd31b('0x49')],null))[_0xd31b('0x28')](respondWithResult(_0x5aeaec,null))[_0xd31b('0x44')](handleError(_0x5aeaec,null));};exports[_0xd31b('0x29')]=function(_0x24b7e4,_0x5aeb1d){return db['SmsQueueReport'][_0xd31b('0x47')]({'where':{'id':_0x24b7e4[_0xd31b('0x46')]['id']}})['then'](handleEntityNotFound(_0x5aeb1d,null))[_0xd31b('0x28')](removeEntity(_0x5aeb1d,null))['catch'](handleError(_0x5aeb1d,null));};exports[_0xd31b('0x4a')]=function(_0x3fd79c,_0x30ece8){return db['SmsQueueReport'][_0xd31b('0x4a')]()[_0xd31b('0x28')](respondWithResult(_0x30ece8,null))[_0xd31b('0x44')](handleError(_0x30ece8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['define','SmsQueueReport','uniqueid','lodash','util','../../config/logger','bluebird','path','rimraf','../../config/environment','./smsQueueReport.attributes','exports'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_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 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
+var _0xd8b0=['define','report_sms_queue','uniqueid','lodash','util','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x1f3b4d,_0x2c3c32){var _0xfd352a=function(_0x4c1fb2){while(--_0x4c1fb2){_0x1f3b4d['push'](_0x1f3b4d['shift']());}};_0xfd352a(++_0x2c3c32);}(_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('./smsQueueReport.attributes');module['exports']=function(_0x3f8b6f,_0x227c63){return _0x3f8b6f[_0x0d8b('0x7')]('SmsQueueReport',attributes,{'tableName':_0x0d8b('0x8'),'paranoid':![],'indexes':[{'name':_0x0d8b('0x9'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf776=['options','raw','CreateSmsQueueReport','stringify','UpdateSmsQueueReport','where','attributes','limit','util','moment','bluebird','randomstring','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SmsQueueReport,\x20%s,\x20%s','request\x20sent','debug','SmsQueueReport,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','SmsQueueReport','create','body'];(function(_0x2bf799,_0x3d81dc){var _0x220479=function(_0x3ca801){while(--_0x3ca801){_0x2bf799['push'](_0x2bf799['shift']());}};_0x220479(++_0x3d81dc);}(_0xf776,0x194));var _0x6f77=function(_0x2f584f,_0x19170d){_0x2f584f=_0x2f584f-0x0;var _0x3422f7=_0xf776[_0x2f584f];return _0x3422f7;};'use strict';var _=require('lodash');var util=require(_0x6f77('0x0'));var moment=require(_0x6f77('0x1'));var BPromise=require(_0x6f77('0x2'));var rs=require(_0x6f77('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6f77('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x6f77('0x5'));var config=require(_0x6f77('0x6'));var jayson=require(_0x6f77('0x7'));var client=jayson[_0x6f77('0x8')][_0x6f77('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x417e26,_0x13cdf5,_0x21d1db){return new BPromise(function(_0x38d54a,_0x4f7a4b){return client[_0x6f77('0xa')](_0x417e26,_0x21d1db)[_0x6f77('0xb')](function(_0x3ed1f1){logger[_0x6f77('0xc')](_0x6f77('0xd'),_0x13cdf5,_0x6f77('0xe'));logger[_0x6f77('0xf')](_0x6f77('0x10'),_0x13cdf5,'request\x20sent',JSON['stringify'](_0x3ed1f1));if(_0x3ed1f1['error']){if(_0x3ed1f1[_0x6f77('0x11')][_0x6f77('0x12')]===0x1f4){logger[_0x6f77('0x11')](_0x6f77('0xd'),_0x13cdf5,_0x3ed1f1[_0x6f77('0x11')][_0x6f77('0x13')]);return _0x4f7a4b(_0x3ed1f1[_0x6f77('0x11')][_0x6f77('0x13')]);}logger[_0x6f77('0x11')](_0x6f77('0xd'),_0x13cdf5,_0x3ed1f1[_0x6f77('0x11')][_0x6f77('0x13')]);return _0x38d54a(_0x3ed1f1[_0x6f77('0x11')][_0x6f77('0x13')]);}else{logger['info'](_0x6f77('0xd'),_0x13cdf5,_0x6f77('0xe'));_0x38d54a(_0x3ed1f1[_0x6f77('0x14')][_0x6f77('0x13')]);}})[_0x6f77('0x15')](function(_0x5e166c){logger['error'](_0x6f77('0xd'),_0x13cdf5,_0x5e166c);_0x4f7a4b(_0x5e166c);});});}exports['CreateSmsQueueReport']=function(_0x497cd6){var _0x274e6e=this;return new Promise(function(_0x4eedf2,_0x2e49b9){return db[_0x6f77('0x16')][_0x6f77('0x17')](_0x497cd6[_0x6f77('0x18')],{'raw':_0x497cd6[_0x6f77('0x19')]?_0x497cd6[_0x6f77('0x19')][_0x6f77('0x1a')]===undefined?!![]:![]:!![]})[_0x6f77('0xb')](function(_0x31d1fb){logger['info'](_0x6f77('0x1b'),_0x497cd6);logger[_0x6f77('0xf')]('CreateSmsQueueReport',_0x497cd6,JSON[_0x6f77('0x1c')](_0x31d1fb));_0x4eedf2(_0x31d1fb);})[_0x6f77('0x15')](function(_0x1d83a8){logger['error'](_0x6f77('0x1b'),_0x1d83a8['message'],_0x497cd6);_0x2e49b9(_0x274e6e[_0x6f77('0x11')](0x1f4,_0x1d83a8[_0x6f77('0x13')]));});});};exports[_0x6f77('0x1d')]=function(_0x403473){var _0x3292a6=this;return new Promise(function(_0x877281,_0x801725){return db[_0x6f77('0x16')]['update'](_0x403473[_0x6f77('0x18')],{'raw':_0x403473[_0x6f77('0x19')]?_0x403473[_0x6f77('0x19')][_0x6f77('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x403473[_0x6f77('0x19')]?_0x403473['options'][_0x6f77('0x1e')]||null:null,'attributes':_0x403473['options']?_0x403473['options'][_0x6f77('0x1f')]||null:null,'limit':_0x403473[_0x6f77('0x19')]?_0x403473[_0x6f77('0x19')][_0x6f77('0x20')]||null:null})[_0x6f77('0xb')](function(_0x3e813f){logger['info'](_0x6f77('0x1d'),_0x403473);logger[_0x6f77('0xf')](_0x6f77('0x1d'),_0x403473,JSON[_0x6f77('0x1c')](_0x3e813f));_0x877281(_0x3e813f);})[_0x6f77('0x15')](function(_0x5b206e){logger['error']('UpdateSmsQueueReport',_0x5b206e[_0x6f77('0x13')],_0x403473);_0x801725(_0x3292a6['error'](0x1f4,_0x5b206e[_0x6f77('0x13')]));});});};
\ No newline at end of file
+var _0x65fe=['UpdateSmsQueueReport','update','where','attributes','limit','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','then','info','request\x20sent','debug','SmsQueueReport,\x20%s,\x20%s,\x20%s','error','code','SmsQueueReport,\x20%s,\x20%s','message','result','catch','CreateSmsQueueReport','SmsQueueReport','create','options','raw','stringify'];(function(_0x475f88,_0x4029d5){var _0x5201a9=function(_0x314414){while(--_0x314414){_0x475f88['push'](_0x475f88['shift']());}};_0x5201a9(++_0x4029d5);}(_0x65fe,0x165));var _0xe65f=function(_0x53256e,_0xbec028){_0x53256e=_0x53256e-0x0;var _0x52a80b=_0x65fe[_0x53256e];return _0x52a80b;};'use strict';var _=require('lodash');var util=require(_0xe65f('0x0'));var moment=require(_0xe65f('0x1'));var BPromise=require(_0xe65f('0x2'));var rs=require(_0xe65f('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe65f('0x4'))['db'];var utils=require(_0xe65f('0x5'));var logger=require('../../config/logger')(_0xe65f('0x6'));var config=require(_0xe65f('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xe65f('0x8')][_0xe65f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1e1e24,_0x3c6d62,_0x1b9a64){return new BPromise(function(_0x3d8658,_0x202f6e){return client['request'](_0x1e1e24,_0x1b9a64)[_0xe65f('0xa')](function(_0x2ab6a4){logger[_0xe65f('0xb')]('SmsQueueReport,\x20%s,\x20%s',_0x3c6d62,_0xe65f('0xc'));logger[_0xe65f('0xd')](_0xe65f('0xe'),_0x3c6d62,_0xe65f('0xc'),JSON['stringify'](_0x2ab6a4));if(_0x2ab6a4[_0xe65f('0xf')]){if(_0x2ab6a4[_0xe65f('0xf')][_0xe65f('0x10')]===0x1f4){logger['error'](_0xe65f('0x11'),_0x3c6d62,_0x2ab6a4[_0xe65f('0xf')][_0xe65f('0x12')]);return _0x202f6e(_0x2ab6a4[_0xe65f('0xf')][_0xe65f('0x12')]);}logger[_0xe65f('0xf')](_0xe65f('0x11'),_0x3c6d62,_0x2ab6a4['error'][_0xe65f('0x12')]);return _0x3d8658(_0x2ab6a4[_0xe65f('0xf')][_0xe65f('0x12')]);}else{logger['info'](_0xe65f('0x11'),_0x3c6d62,_0xe65f('0xc'));_0x3d8658(_0x2ab6a4[_0xe65f('0x13')][_0xe65f('0x12')]);}})[_0xe65f('0x14')](function(_0x2270de){logger['error'](_0xe65f('0x11'),_0x3c6d62,_0x2270de);_0x202f6e(_0x2270de);});});}exports[_0xe65f('0x15')]=function(_0x2ffa4d){var _0x53f6a2=this;return new Promise(function(_0x595f91,_0x2eb18d){return db[_0xe65f('0x16')][_0xe65f('0x17')](_0x2ffa4d['body'],{'raw':_0x2ffa4d[_0xe65f('0x18')]?_0x2ffa4d['options'][_0xe65f('0x19')]===undefined?!![]:![]:!![]})[_0xe65f('0xa')](function(_0x1cc371){logger[_0xe65f('0xb')](_0xe65f('0x15'),_0x2ffa4d);logger['debug'](_0xe65f('0x15'),_0x2ffa4d,JSON[_0xe65f('0x1a')](_0x1cc371));_0x595f91(_0x1cc371);})[_0xe65f('0x14')](function(_0x5d63f4){logger[_0xe65f('0xf')]('CreateSmsQueueReport',_0x5d63f4[_0xe65f('0x12')],_0x2ffa4d);_0x2eb18d(_0x53f6a2['error'](0x1f4,_0x5d63f4[_0xe65f('0x12')]));});});};exports[_0xe65f('0x1b')]=function(_0x4f0bad){var _0x3a1d9a=this;return new Promise(function(_0x23e33b,_0x17be63){return db[_0xe65f('0x16')][_0xe65f('0x1c')](_0x4f0bad['body'],{'raw':_0x4f0bad[_0xe65f('0x18')]?_0x4f0bad[_0xe65f('0x18')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4f0bad[_0xe65f('0x18')]?_0x4f0bad[_0xe65f('0x18')][_0xe65f('0x1d')]||null:null,'attributes':_0x4f0bad[_0xe65f('0x18')]?_0x4f0bad[_0xe65f('0x18')][_0xe65f('0x1e')]||null:null,'limit':_0x4f0bad['options']?_0x4f0bad['options'][_0xe65f('0x1f')]||null:null})[_0xe65f('0xa')](function(_0x8965b0){logger[_0xe65f('0xb')]('UpdateSmsQueueReport',_0x4f0bad);logger[_0xe65f('0xd')]('UpdateSmsQueueReport',_0x4f0bad,JSON[_0xe65f('0x1a')](_0x8965b0));_0x23e33b(_0x8965b0);})[_0xe65f('0x14')](function(_0x4cad48){logger[_0xe65f('0xf')](_0xe65f('0x1b'),_0x4cad48[_0xe65f('0x12')],_0x4f0bad);_0x17be63(_0x3a1d9a['error'](0x1f4,_0x4cad48['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd0f=['index','/describe','describe','/:id','show','post','put','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./smsTransferReport.controller','get','isAuthenticated'];(function(_0xaa7739,_0x27d8e6){var _0x5353c1=function(_0x20e6bc){while(--_0x20e6bc){_0xaa7739['push'](_0xaa7739['shift']());}};_0x5353c1(++_0x27d8e6);}(_0xfd0f,0x1b8));var _0xffd0=function(_0x95efd5,_0x3b73e7){_0x95efd5=_0x95efd5-0x0;var _0x3278b5=_0xfd0f[_0x95efd5];return _0x3278b5;};'use strict';var multer=require(_0xffd0('0x0'));var util=require(_0xffd0('0x1'));var path=require('path');var timeout=require(_0xffd0('0x2'));var express=require(_0xffd0('0x3'));var router=express[_0xffd0('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xffd0('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xffd0('0x6'));var controller=require(_0xffd0('0x7'));router[_0xffd0('0x8')]('/',auth[_0xffd0('0x9')](),controller[_0xffd0('0xa')]);router[_0xffd0('0x8')](_0xffd0('0xb'),auth[_0xffd0('0x9')](),controller[_0xffd0('0xc')]);router['get'](_0xffd0('0xd'),auth[_0xffd0('0x9')](),controller[_0xffd0('0xe')]);router[_0xffd0('0xf')]('/',auth['isAuthenticated'](),controller['create']);router[_0xffd0('0x10')](_0xffd0('0xd'),auth[_0xffd0('0x9')](),controller['update']);router['delete'](_0xffd0('0xd'),auth[_0xffd0('0x9')](),controller['destroy']);module[_0xffd0('0x11')]=router;
\ No newline at end of file
+var _0x0207=['../../config/environment','./smsTransferReport.controller','index','get','/describe','isAuthenticated','describe','/:id','post','create','delete','exports','util','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x3f5043,_0xddf662){var _0x5126ae=function(_0x937476){while(--_0x937476){_0x3f5043['push'](_0x3f5043['shift']());}};_0x5126ae(++_0xddf662);}(_0x0207,0x162));var _0x7020=function(_0x4e592c,_0x2ce3c9){_0x4e592c=_0x4e592c-0x0;var _0x5e7b33=_0x0207[_0x4e592c];return _0x5e7b33;};'use strict';var multer=require('multer');var util=require(_0x7020('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x7020('0x1'));var router=express[_0x7020('0x2')]();var fs_extra=require(_0x7020('0x3'));var auth=require(_0x7020('0x4'));var interaction=require(_0x7020('0x5'));var config=require(_0x7020('0x6'));var controller=require(_0x7020('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x7020('0x8')]);router[_0x7020('0x9')](_0x7020('0xa'),auth[_0x7020('0xb')](),controller[_0x7020('0xc')]);router[_0x7020('0x9')](_0x7020('0xd'),auth['isAuthenticated'](),controller['show']);router[_0x7020('0xe')]('/',auth[_0x7020('0xb')](),controller[_0x7020('0xf')]);router['put'](_0x7020('0xd'),auth[_0x7020('0xb')](),controller['update']);router[_0x7020('0x10')](_0x7020('0xd'),auth[_0x7020('0xb')](),controller['destroy']);module[_0x7020('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['ENUM','account','agent','queue','NOW','exports','STRING'];(function(_0x12d034,_0x430f51){var _0x39d6e5=function(_0x579248){while(--_0x579248){_0x12d034['push'](_0x12d034['shift']());}};_0x39d6e5(++_0x430f51);}(_0x9c44,0x178));var _0x49c4=function(_0x209941,_0x5c9988){_0x209941=_0x209941-0x0;var _0x1e8729=_0x9c44[_0x209941];return _0x1e8729;};'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
+var _0xb43b=['DATE','NOW','moment','sequelize','STRING','ENUM','account','queue'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0xb43b,0x1b2));var _0xbb43=function(_0x2f0ff5,_0x48e184){_0x2f0ff5=_0x2f0ff5-0x0;var _0x5d2910=_0xb43b[_0x2f0ff5];return _0x5d2910;};'use strict';var moment=require(_0xbb43('0x0'));var Sequelize=require(_0xbb43('0x1'));module['exports']={'uniqueid':{'type':Sequelize[_0xbb43('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0xbb43('0x3')](_0xbb43('0x4'),'agent',_0xbb43('0x5')),'allowNull':![],'defaultValue':_0xbb43('0x5')},'transferredAt':{'type':Sequelize[_0xbb43('0x6')],'allowNull':![],'defaultValue':Sequelize[_0xbb43('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd166=['include','findAll','rows','catch','show','params','rawAttributes','intersection','find','create','body','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','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','count','Content-Range','reject','save','update','then','destroy','error','stack','name','send','map','type','key','query','keys','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','SmsTransferReport','includeAll'];(function(_0x29cb45,_0x4d5605){var _0x1dabcc=function(_0x294bf3){while(--_0x294bf3){_0x29cb45['push'](_0x29cb45['shift']());}};_0x1dabcc(++_0x4d5605);}(_0xd166,0xf6));var _0x6d16=function(_0x459df7,_0x411edb){_0x459df7=_0x459df7-0x0;var _0x48c681=_0xd166[_0x459df7];return _0x48c681;};'use strict';var emlformat=require(_0x6d16('0x0'));var rimraf=require(_0x6d16('0x1'));var zipdir=require(_0x6d16('0x2'));var jsonpatch=require(_0x6d16('0x3'));var rp=require(_0x6d16('0x4'));var moment=require(_0x6d16('0x5'));var BPromise=require(_0x6d16('0x6'));var Mustache=require(_0x6d16('0x7'));var util=require(_0x6d16('0x8'));var path=require(_0x6d16('0x9'));var sox=require(_0x6d16('0xa'));var csv=require(_0x6d16('0xb'));var ejs=require(_0x6d16('0xc'));var fs=require('fs');var fs_extra=require(_0x6d16('0xd'));var _=require('lodash');var squel=require(_0x6d16('0xe'));var crypto=require(_0x6d16('0xf'));var jsforce=require(_0x6d16('0x10'));var deskjs=require(_0x6d16('0x11'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x6d16('0x12'));var Redis=require(_0x6d16('0x13'));var authService=require(_0x6d16('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x6d16('0x15'));var hardwareService=require(_0x6d16('0x16'));var logger=require(_0x6d16('0x17'))('api');var utils=require('../../config/utils');var config=require(_0x6d16('0x18'));var licenseUtil=require(_0x6d16('0x19'));var db=require(_0x6d16('0x1a'))['db'];function respondWithStatusCode(_0x47112d,_0x5a0015){_0x5a0015=_0x5a0015||0xcc;return function(_0x18ab68){if(_0x18ab68){return _0x47112d[_0x6d16('0x1b')](_0x5a0015);}return _0x47112d['status'](_0x5a0015)[_0x6d16('0x1c')]();};}function respondWithResult(_0x348b6e,_0x6ca1aa){_0x6ca1aa=_0x6ca1aa||0xc8;return function(_0x5977ef){if(_0x5977ef){return _0x348b6e[_0x6d16('0x1d')](_0x6ca1aa)[_0x6d16('0x1e')](_0x5977ef);}};}function respondWithFilteredResult(_0xa9b510,_0x65155a){return function(_0x53d958){if(_0x53d958){var _0x1ae40d=typeof _0x65155a[_0x6d16('0x1f')]==='undefined'&&typeof _0x65155a[_0x6d16('0x20')]==='undefined';var _0x14e506=_0x53d958[_0x6d16('0x21')];var _0x5680b9=_0x1ae40d?0x0:_0x65155a[_0x6d16('0x1f')];var _0xef29bb=_0x1ae40d?_0x53d958[_0x6d16('0x21')]:_0x65155a[_0x6d16('0x1f')]+_0x65155a[_0x6d16('0x20')];var _0x47e23e;if(_0xef29bb>=_0x14e506){_0xef29bb=_0x14e506;_0x47e23e=0xc8;}else{_0x47e23e=0xce;}_0xa9b510[_0x6d16('0x1d')](_0x47e23e);return _0xa9b510['set'](_0x6d16('0x22'),_0x5680b9+'-'+_0xef29bb+'/'+_0x14e506)[_0x6d16('0x1e')](_0x53d958);}return null;};}function patchUpdates(_0x641f15){return function(_0x1c59b6){try{jsonpatch['apply'](_0x1c59b6,_0x641f15,!![]);}catch(_0x4095c2){return BPromise[_0x6d16('0x23')](_0x4095c2);}return _0x1c59b6[_0x6d16('0x24')]();};}function saveUpdates(_0x20cde3,_0x32f784){return function(_0x16863c){if(_0x16863c){return _0x16863c[_0x6d16('0x25')](_0x20cde3)[_0x6d16('0x26')](function(_0x1e5eea){return _0x1e5eea;});}return null;};}function removeEntity(_0x3ef952,_0x561bf8){return function(_0x2f288d){if(_0x2f288d){return _0x2f288d[_0x6d16('0x27')]()[_0x6d16('0x26')](function(){_0x3ef952[_0x6d16('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x593d4e,_0x2280cf){return function(_0x41dd2e){if(!_0x41dd2e){_0x593d4e[_0x6d16('0x1b')](0x194);}return _0x41dd2e;};}function handleError(_0x449a6c,_0x4c4269){_0x4c4269=_0x4c4269||0x1f4;return function(_0x293ee8){logger[_0x6d16('0x28')](_0x293ee8[_0x6d16('0x29')]);if(_0x293ee8[_0x6d16('0x2a')]){delete _0x293ee8[_0x6d16('0x2a')];}_0x449a6c[_0x6d16('0x1d')](_0x4c4269)[_0x6d16('0x2b')](_0x293ee8);};}exports['index']=function(_0x280d1c,_0x547cc8){var _0x57ecb7={},_0x1deba9={},_0x3c1f30={'count':0x0,'rows':[]};var _0x27b6fb=_[_0x6d16('0x2c')](db['SmsTransferReport']['rawAttributes'],function(_0x2b3df4){return{'name':_0x2b3df4['fieldName'],'type':_0x2b3df4[_0x6d16('0x2d')][_0x6d16('0x2e')]};});_0x1deba9['model']=_[_0x6d16('0x2c')](_0x27b6fb,'name');_0x1deba9[_0x6d16('0x2f')]=_[_0x6d16('0x30')](_0x280d1c[_0x6d16('0x2f')]);_0x1deba9['filters']=_['intersection'](_0x1deba9[_0x6d16('0x31')],_0x1deba9['query']);_0x57ecb7[_0x6d16('0x32')]=_['intersection'](_0x1deba9[_0x6d16('0x31')],qs['fields'](_0x280d1c[_0x6d16('0x2f')][_0x6d16('0x33')]));_0x57ecb7[_0x6d16('0x32')]=_0x57ecb7[_0x6d16('0x32')][_0x6d16('0x34')]?_0x57ecb7[_0x6d16('0x32')]:_0x1deba9[_0x6d16('0x31')];if(!_0x280d1c[_0x6d16('0x2f')][_0x6d16('0x35')](_0x6d16('0x36'))){_0x57ecb7['limit']=qs[_0x6d16('0x20')](_0x280d1c['query'][_0x6d16('0x20')]);_0x57ecb7[_0x6d16('0x1f')]=qs[_0x6d16('0x1f')](_0x280d1c[_0x6d16('0x2f')][_0x6d16('0x1f')]);}_0x57ecb7[_0x6d16('0x37')]=qs['sort'](_0x280d1c[_0x6d16('0x2f')][_0x6d16('0x38')]);_0x57ecb7[_0x6d16('0x39')]=qs[_0x6d16('0x3a')](_[_0x6d16('0x3b')](_0x280d1c['query'],_0x1deba9[_0x6d16('0x3a')]),_0x27b6fb);if(_0x280d1c['query']['filter']){_0x57ecb7[_0x6d16('0x39')]=_[_0x6d16('0x3c')](_0x57ecb7['where'],{'$or':_[_0x6d16('0x2c')](_0x27b6fb,function(_0x546de5){if(_0x546de5['type']!==_0x6d16('0x3d')){var _0xdf5f0e={};_0xdf5f0e[_0x546de5[_0x6d16('0x2a')]]={'$like':'%'+_0x280d1c[_0x6d16('0x2f')][_0x6d16('0x3e')]+'%'};return _0xdf5f0e;}})});}_0x57ecb7=_['merge']({},_0x57ecb7,_0x280d1c[_0x6d16('0x3f')]);var _0x587315={'where':_0x57ecb7[_0x6d16('0x39')]};return db[_0x6d16('0x40')][_0x6d16('0x21')](_0x587315)[_0x6d16('0x26')](function(_0x21298a){_0x3c1f30[_0x6d16('0x21')]=_0x21298a;if(_0x280d1c['query'][_0x6d16('0x41')]){_0x57ecb7[_0x6d16('0x42')]=[{'all':!![]}];}return db[_0x6d16('0x40')][_0x6d16('0x43')](_0x57ecb7);})[_0x6d16('0x26')](function(_0x39f5ce){_0x3c1f30[_0x6d16('0x44')]=_0x39f5ce;return _0x3c1f30;})[_0x6d16('0x26')](respondWithFilteredResult(_0x547cc8,_0x57ecb7))[_0x6d16('0x45')](handleError(_0x547cc8,null));};exports[_0x6d16('0x46')]=function(_0x57fe5d,_0x98718c){var _0x52b6ec={'raw':!![],'where':{'id':_0x57fe5d[_0x6d16('0x47')]['id']}},_0x40a6a4={};_0x40a6a4[_0x6d16('0x31')]=_['keys'](db[_0x6d16('0x40')][_0x6d16('0x48')]);_0x40a6a4[_0x6d16('0x2f')]=_['keys'](_0x57fe5d[_0x6d16('0x2f')]);_0x40a6a4[_0x6d16('0x3a')]=_[_0x6d16('0x49')](_0x40a6a4[_0x6d16('0x31')],_0x40a6a4['query']);_0x52b6ec[_0x6d16('0x32')]=_[_0x6d16('0x49')](_0x40a6a4[_0x6d16('0x31')],qs[_0x6d16('0x33')](_0x57fe5d['query'][_0x6d16('0x33')]));_0x52b6ec[_0x6d16('0x32')]=_0x52b6ec['attributes'][_0x6d16('0x34')]?_0x52b6ec[_0x6d16('0x32')]:_0x40a6a4[_0x6d16('0x31')];if(_0x57fe5d['query'][_0x6d16('0x41')]){_0x52b6ec[_0x6d16('0x42')]=[{'all':!![]}];}_0x52b6ec=_[_0x6d16('0x3c')]({},_0x52b6ec,_0x57fe5d['options']);return db['SmsTransferReport'][_0x6d16('0x4a')](_0x52b6ec)[_0x6d16('0x26')](handleEntityNotFound(_0x98718c,null))['then'](respondWithResult(_0x98718c,null))[_0x6d16('0x45')](handleError(_0x98718c,null));};exports[_0x6d16('0x4b')]=function(_0x409d25,_0x43bdcc){return db['SmsTransferReport'][_0x6d16('0x4b')](_0x409d25[_0x6d16('0x4c')],{})['then'](respondWithResult(_0x43bdcc,0xc9))[_0x6d16('0x45')](handleError(_0x43bdcc,null));};exports[_0x6d16('0x25')]=function(_0x2c761c,_0x5be6cd){if(_0x2c761c['body']['id']){delete _0x2c761c['body']['id'];}return db[_0x6d16('0x40')][_0x6d16('0x4a')]({'where':{'id':_0x2c761c[_0x6d16('0x47')]['id']}})[_0x6d16('0x26')](handleEntityNotFound(_0x5be6cd,null))[_0x6d16('0x26')](saveUpdates(_0x2c761c[_0x6d16('0x4c')],null))[_0x6d16('0x26')](respondWithResult(_0x5be6cd,null))[_0x6d16('0x45')](handleError(_0x5be6cd,null));};exports[_0x6d16('0x27')]=function(_0x41b9a5,_0x1c7eb5){return db[_0x6d16('0x40')][_0x6d16('0x4a')]({'where':{'id':_0x41b9a5[_0x6d16('0x47')]['id']}})['then'](handleEntityNotFound(_0x1c7eb5,null))[_0x6d16('0x26')](removeEntity(_0x1c7eb5,null))[_0x6d16('0x45')](handleError(_0x1c7eb5,null));};exports[_0x6d16('0x4d')]=function(_0x1736f7,_0xf19f03){return db[_0x6d16('0x40')][_0x6d16('0x4d')]()[_0x6d16('0x26')](respondWithResult(_0xf19f03,null))['catch'](handleError(_0xf19f03,null));};
\ No newline at end of file
+var _0xf8c8=['VIRTUAL','options','include','findAll','catch','show','params','rawAttributes','find','create','body','update','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','reject','save','then','destroy','stack','name','index','SmsTransferReport','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','order','sort','pick','filter','where','merge'];(function(_0x11c573,_0x9e7c6e){var _0x6b72de=function(_0x2e8a61){while(--_0x2e8a61){_0x11c573['push'](_0x11c573['shift']());}};_0x6b72de(++_0x9e7c6e);}(_0xf8c8,0x139));var _0x8f8c=function(_0x241cd3,_0x4dcef2){_0x241cd3=_0x241cd3-0x0;var _0x5b4cdc=_0xf8c8[_0x241cd3];return _0x5b4cdc;};'use strict';var emlformat=require(_0x8f8c('0x0'));var rimraf=require(_0x8f8c('0x1'));var zipdir=require(_0x8f8c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8f8c('0x3'));var moment=require(_0x8f8c('0x4'));var BPromise=require(_0x8f8c('0x5'));var Mustache=require(_0x8f8c('0x6'));var util=require(_0x8f8c('0x7'));var path=require(_0x8f8c('0x8'));var sox=require(_0x8f8c('0x9'));var csv=require(_0x8f8c('0xa'));var ejs=require(_0x8f8c('0xb'));var fs=require('fs');var fs_extra=require(_0x8f8c('0xc'));var _=require(_0x8f8c('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x8f8c('0xe'));var deskjs=require(_0x8f8c('0xf'));var toCsv=require('to-csv');var querystring=require(_0x8f8c('0x10'));var Papa=require(_0x8f8c('0x11'));var Redis=require(_0x8f8c('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x8f8c('0x13'));var hardwareService=require(_0x8f8c('0x14'));var logger=require('../../config/logger')(_0x8f8c('0x15'));var utils=require(_0x8f8c('0x16'));var config=require(_0x8f8c('0x17'));var licenseUtil=require(_0x8f8c('0x18'));var db=require(_0x8f8c('0x19'))['db'];function respondWithStatusCode(_0x1aaae5,_0x5dfda5){_0x5dfda5=_0x5dfda5||0xcc;return function(_0x512902){if(_0x512902){return _0x1aaae5[_0x8f8c('0x1a')](_0x5dfda5);}return _0x1aaae5[_0x8f8c('0x1b')](_0x5dfda5)[_0x8f8c('0x1c')]();};}function respondWithResult(_0x3d1f97,_0x318da3){_0x318da3=_0x318da3||0xc8;return function(_0x28463e){if(_0x28463e){return _0x3d1f97[_0x8f8c('0x1b')](_0x318da3)['json'](_0x28463e);}};}function respondWithFilteredResult(_0x3bd8bf,_0x14cc84){return function(_0x338d35){if(_0x338d35){var _0x828cd6=typeof _0x14cc84['offset']===_0x8f8c('0x1d')&&typeof _0x14cc84[_0x8f8c('0x1e')]===_0x8f8c('0x1d');var _0x57ddf6=_0x338d35[_0x8f8c('0x1f')];var _0x2aef5e=_0x828cd6?0x0:_0x14cc84[_0x8f8c('0x20')];var _0x2fe91c=_0x828cd6?_0x338d35[_0x8f8c('0x1f')]:_0x14cc84[_0x8f8c('0x20')]+_0x14cc84[_0x8f8c('0x1e')];var _0x2bdd9f;if(_0x2fe91c>=_0x57ddf6){_0x2fe91c=_0x57ddf6;_0x2bdd9f=0xc8;}else{_0x2bdd9f=0xce;}_0x3bd8bf[_0x8f8c('0x1b')](_0x2bdd9f);return _0x3bd8bf[_0x8f8c('0x21')](_0x8f8c('0x22'),_0x2aef5e+'-'+_0x2fe91c+'/'+_0x57ddf6)[_0x8f8c('0x23')](_0x338d35);}return null;};}function patchUpdates(_0x110aca){return function(_0x315aa0){try{jsonpatch['apply'](_0x315aa0,_0x110aca,!![]);}catch(_0x58c308){return BPromise[_0x8f8c('0x24')](_0x58c308);}return _0x315aa0[_0x8f8c('0x25')]();};}function saveUpdates(_0x2b20d2,_0x24fc59){return function(_0x24c91e){if(_0x24c91e){return _0x24c91e['update'](_0x2b20d2)[_0x8f8c('0x26')](function(_0x13df64){return _0x13df64;});}return null;};}function removeEntity(_0x3cae5e,_0x15489a){return function(_0x1885fa){if(_0x1885fa){return _0x1885fa[_0x8f8c('0x27')]()['then'](function(){_0x3cae5e[_0x8f8c('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2fa06b,_0x55319a){return function(_0xe53f9d){if(!_0xe53f9d){_0x2fa06b[_0x8f8c('0x1a')](0x194);}return _0xe53f9d;};}function handleError(_0x31a068,_0x11ceed){_0x11ceed=_0x11ceed||0x1f4;return function(_0x444466){logger['error'](_0x444466[_0x8f8c('0x28')]);if(_0x444466[_0x8f8c('0x29')]){delete _0x444466[_0x8f8c('0x29')];}_0x31a068[_0x8f8c('0x1b')](_0x11ceed)['send'](_0x444466);};}exports[_0x8f8c('0x2a')]=function(_0x171a3b,_0x3fffde){var _0x19f9a7={},_0x949906={},_0x5351c6={'count':0x0,'rows':[]};var _0x42d8a6=_['map'](db[_0x8f8c('0x2b')]['rawAttributes'],function(_0x31a92e){return{'name':_0x31a92e[_0x8f8c('0x2c')],'type':_0x31a92e[_0x8f8c('0x2d')][_0x8f8c('0x2e')]};});_0x949906[_0x8f8c('0x2f')]=_[_0x8f8c('0x30')](_0x42d8a6,'name');_0x949906[_0x8f8c('0x31')]=_[_0x8f8c('0x32')](_0x171a3b[_0x8f8c('0x31')]);_0x949906[_0x8f8c('0x33')]=_[_0x8f8c('0x34')](_0x949906[_0x8f8c('0x2f')],_0x949906[_0x8f8c('0x31')]);_0x19f9a7[_0x8f8c('0x35')]=_['intersection'](_0x949906[_0x8f8c('0x2f')],qs[_0x8f8c('0x36')](_0x171a3b[_0x8f8c('0x31')][_0x8f8c('0x36')]));_0x19f9a7[_0x8f8c('0x35')]=_0x19f9a7[_0x8f8c('0x35')][_0x8f8c('0x37')]?_0x19f9a7['attributes']:_0x949906[_0x8f8c('0x2f')];if(!_0x171a3b[_0x8f8c('0x31')]['hasOwnProperty']('nolimit')){_0x19f9a7[_0x8f8c('0x1e')]=qs[_0x8f8c('0x1e')](_0x171a3b[_0x8f8c('0x31')][_0x8f8c('0x1e')]);_0x19f9a7[_0x8f8c('0x20')]=qs[_0x8f8c('0x20')](_0x171a3b['query'][_0x8f8c('0x20')]);}_0x19f9a7[_0x8f8c('0x38')]=qs[_0x8f8c('0x39')](_0x171a3b[_0x8f8c('0x31')][_0x8f8c('0x39')]);_0x19f9a7['where']=qs[_0x8f8c('0x33')](_[_0x8f8c('0x3a')](_0x171a3b[_0x8f8c('0x31')],_0x949906[_0x8f8c('0x33')]),_0x42d8a6);if(_0x171a3b['query'][_0x8f8c('0x3b')]){_0x19f9a7[_0x8f8c('0x3c')]=_[_0x8f8c('0x3d')](_0x19f9a7['where'],{'$or':_['map'](_0x42d8a6,function(_0x17fff5){if(_0x17fff5[_0x8f8c('0x2d')]!==_0x8f8c('0x3e')){var _0x22abd0={};_0x22abd0[_0x17fff5[_0x8f8c('0x29')]]={'$like':'%'+_0x171a3b['query'][_0x8f8c('0x3b')]+'%'};return _0x22abd0;}})});}_0x19f9a7=_['merge']({},_0x19f9a7,_0x171a3b[_0x8f8c('0x3f')]);var _0x3b4856={'where':_0x19f9a7['where']};return db[_0x8f8c('0x2b')][_0x8f8c('0x1f')](_0x3b4856)[_0x8f8c('0x26')](function(_0x19fe20){_0x5351c6[_0x8f8c('0x1f')]=_0x19fe20;if(_0x171a3b[_0x8f8c('0x31')]['includeAll']){_0x19f9a7[_0x8f8c('0x40')]=[{'all':!![]}];}return db[_0x8f8c('0x2b')][_0x8f8c('0x41')](_0x19f9a7);})['then'](function(_0x3faeaf){_0x5351c6['rows']=_0x3faeaf;return _0x5351c6;})['then'](respondWithFilteredResult(_0x3fffde,_0x19f9a7))[_0x8f8c('0x42')](handleError(_0x3fffde,null));};exports[_0x8f8c('0x43')]=function(_0x258c75,_0xc399a6){var _0x2c89d1={'raw':!![],'where':{'id':_0x258c75[_0x8f8c('0x44')]['id']}},_0x12b8a3={};_0x12b8a3[_0x8f8c('0x2f')]=_[_0x8f8c('0x32')](db[_0x8f8c('0x2b')][_0x8f8c('0x45')]);_0x12b8a3[_0x8f8c('0x31')]=_[_0x8f8c('0x32')](_0x258c75['query']);_0x12b8a3[_0x8f8c('0x33')]=_['intersection'](_0x12b8a3[_0x8f8c('0x2f')],_0x12b8a3[_0x8f8c('0x31')]);_0x2c89d1[_0x8f8c('0x35')]=_['intersection'](_0x12b8a3[_0x8f8c('0x2f')],qs[_0x8f8c('0x36')](_0x258c75[_0x8f8c('0x31')]['fields']));_0x2c89d1[_0x8f8c('0x35')]=_0x2c89d1[_0x8f8c('0x35')][_0x8f8c('0x37')]?_0x2c89d1[_0x8f8c('0x35')]:_0x12b8a3[_0x8f8c('0x2f')];if(_0x258c75[_0x8f8c('0x31')]['includeAll']){_0x2c89d1[_0x8f8c('0x40')]=[{'all':!![]}];}_0x2c89d1=_[_0x8f8c('0x3d')]({},_0x2c89d1,_0x258c75[_0x8f8c('0x3f')]);return db[_0x8f8c('0x2b')][_0x8f8c('0x46')](_0x2c89d1)['then'](handleEntityNotFound(_0xc399a6,null))[_0x8f8c('0x26')](respondWithResult(_0xc399a6,null))[_0x8f8c('0x42')](handleError(_0xc399a6,null));};exports[_0x8f8c('0x47')]=function(_0x320118,_0x172c6c){return db[_0x8f8c('0x2b')][_0x8f8c('0x47')](_0x320118[_0x8f8c('0x48')],{})[_0x8f8c('0x26')](respondWithResult(_0x172c6c,0xc9))['catch'](handleError(_0x172c6c,null));};exports[_0x8f8c('0x49')]=function(_0x1ef23f,_0x155322){if(_0x1ef23f[_0x8f8c('0x48')]['id']){delete _0x1ef23f[_0x8f8c('0x48')]['id'];}return db[_0x8f8c('0x2b')][_0x8f8c('0x46')]({'where':{'id':_0x1ef23f['params']['id']}})[_0x8f8c('0x26')](handleEntityNotFound(_0x155322,null))['then'](saveUpdates(_0x1ef23f[_0x8f8c('0x48')],null))[_0x8f8c('0x26')](respondWithResult(_0x155322,null))[_0x8f8c('0x42')](handleError(_0x155322,null));};exports[_0x8f8c('0x27')]=function(_0x4396d2,_0x7f8de8){return db[_0x8f8c('0x2b')][_0x8f8c('0x46')]({'where':{'id':_0x4396d2[_0x8f8c('0x44')]['id']}})[_0x8f8c('0x26')](handleEntityNotFound(_0x7f8de8,null))['then'](removeEntity(_0x7f8de8,null))[_0x8f8c('0x42')](handleError(_0x7f8de8,null));};exports[_0x8f8c('0x4a')]=function(_0x15f6a6,_0x177599){return db[_0x8f8c('0x2b')][_0x8f8c('0x4a')]()['then'](respondWithResult(_0x177599,null))[_0x8f8c('0x42')](handleError(_0x177599,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdcf4=['request-promise','rimraf','../../config/environment','./smsTransferReport.attributes','exports','define','SmsTransferReport','report_sms_transfer','uniqueid','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x35d2c8,_0x269492){var _0x5809c9=function(_0x1af6a9){while(--_0x1af6a9){_0x35d2c8['push'](_0x35d2c8['shift']());}};_0x5809c9(++_0x269492);}(_0xdcf4,0x126));var _0x4dcf=function(_0x4ec26f,_0x459750){_0x4ec26f=_0x4ec26f-0x0;var _0x4a8c8b=_0xdcf4[_0x4ec26f];return _0x4a8c8b;};'use strict';var _=require(_0x4dcf('0x0'));var util=require(_0x4dcf('0x1'));var logger=require(_0x4dcf('0x2'))(_0x4dcf('0x3'));var moment=require(_0x4dcf('0x4'));var BPromise=require(_0x4dcf('0x5'));var rp=require(_0x4dcf('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x4dcf('0x7'));var config=require(_0x4dcf('0x8'));var attributes=require(_0x4dcf('0x9'));module[_0x4dcf('0xa')]=function(_0x497687,_0x12f560){return _0x497687[_0x4dcf('0xb')](_0x4dcf('0xc'),attributes,{'tableName':_0x4dcf('0xd'),'paranoid':![],'indexes':[{'name':_0x4dcf('0xe'),'fields':[_0x4dcf('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xae3d=['SmsTransferReport','report_sms_transfer','uniqueid','lodash','util','api','moment','path','rimraf','./smsTransferReport.attributes','exports','define'];(function(_0x2f92f1,_0x3b28b0){var _0x2bbda2=function(_0xf0f266){while(--_0xf0f266){_0x2f92f1['push'](_0x2f92f1['shift']());}};_0x2bbda2(++_0x3b28b0);}(_0xae3d,0x1e3));var _0xdae3=function(_0x53abe5,_0x33a9e5){_0x53abe5=_0x53abe5-0x0;var _0xc1c37e=_0xae3d[_0x53abe5];return _0xc1c37e;};'use strict';var _=require(_0xdae3('0x0'));var util=require(_0xdae3('0x1'));var logger=require('../../config/logger')(_0xdae3('0x2'));var moment=require(_0xdae3('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xdae3('0x4'));var rimraf=require(_0xdae3('0x5'));var config=require('../../config/environment');var attributes=require(_0xdae3('0x6'));module[_0xdae3('0x7')]=function(_0x46631d,_0x310aed){return _0x46631d[_0xdae3('0x8')](_0xdae3('0x9'),attributes,{'tableName':_0xdae3('0xa'),'paranoid':![],'indexes':[{'name':_0xdae3('0xb'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b7f=['../../config/environment','jayson/promise','client','http','info','SmsTransferReport,\x20%s,\x20%s','request\x20sent','debug','SmsTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x57bce6,_0x3038a8){var _0x146df3=function(_0x4928b5){while(--_0x4928b5){_0x57bce6['push'](_0x57bce6['shift']());}};_0x146df3(++_0x3038a8);}(_0x5b7f,0x8c));var _0xf5b7=function(_0x3d0322,_0x527a8b){_0x3d0322=_0x3d0322-0x0;var _0x176489=_0x5b7f[_0x3d0322];return _0x176489;};'use strict';var _=require(_0xf5b7('0x0'));var util=require(_0xf5b7('0x1'));var moment=require(_0xf5b7('0x2'));var BPromise=require(_0xf5b7('0x3'));var rs=require(_0xf5b7('0x4'));var fs=require('fs');var Redis=require(_0xf5b7('0x5'));var db=require(_0xf5b7('0x6'))['db'];var utils=require(_0xf5b7('0x7'));var logger=require(_0xf5b7('0x8'))(_0xf5b7('0x9'));var config=require(_0xf5b7('0xa'));var jayson=require(_0xf5b7('0xb'));var client=jayson[_0xf5b7('0xc')][_0xf5b7('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x1d7c78,_0xd69bc,_0x3711ec){return new BPromise(function(_0x426253,_0x556cb0){return client['request'](_0x1d7c78,_0x3711ec)['then'](function(_0x31c6ea){logger[_0xf5b7('0xe')](_0xf5b7('0xf'),_0xd69bc,_0xf5b7('0x10'));logger[_0xf5b7('0x11')](_0xf5b7('0x12'),_0xd69bc,_0xf5b7('0x10'),JSON[_0xf5b7('0x13')](_0x31c6ea));if(_0x31c6ea[_0xf5b7('0x14')]){if(_0x31c6ea[_0xf5b7('0x14')][_0xf5b7('0x15')]===0x1f4){logger[_0xf5b7('0x14')]('SmsTransferReport,\x20%s,\x20%s',_0xd69bc,_0x31c6ea[_0xf5b7('0x14')][_0xf5b7('0x16')]);return _0x556cb0(_0x31c6ea[_0xf5b7('0x14')][_0xf5b7('0x16')]);}logger[_0xf5b7('0x14')]('SmsTransferReport,\x20%s,\x20%s',_0xd69bc,_0x31c6ea[_0xf5b7('0x14')]['message']);return _0x426253(_0x31c6ea['error']['message']);}else{logger['info'](_0xf5b7('0xf'),_0xd69bc,_0xf5b7('0x10'));_0x426253(_0x31c6ea[_0xf5b7('0x17')][_0xf5b7('0x16')]);}})[_0xf5b7('0x18')](function(_0x4cac90){logger[_0xf5b7('0x14')](_0xf5b7('0xf'),_0xd69bc,_0x4cac90);_0x556cb0(_0x4cac90);});});}
\ No newline at end of file
+var _0xc770=['jayson/promise','http','request','then','info','SmsTransferReport,\x20%s,\x20%s','SmsTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x4b8d20,_0x5c69db){var _0x2cd1aa=function(_0x47e151){while(--_0x47e151){_0x4b8d20['push'](_0x4b8d20['shift']());}};_0x2cd1aa(++_0x5c69db);}(_0xc770,0xd3));var _0x0c77=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc770[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x0c77('0x0'));var util=require(_0x0c77('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x0c77('0x2'));var fs=require('fs');var Redis=require(_0x0c77('0x3'));var db=require(_0x0c77('0x4'))['db'];var utils=require(_0x0c77('0x5'));var logger=require(_0x0c77('0x6'))(_0x0c77('0x7'));var config=require(_0x0c77('0x8'));var jayson=require(_0x0c77('0x9'));var client=jayson['client'][_0x0c77('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1972ef,_0x4b2424,_0x221281){return new BPromise(function(_0x4aec3c,_0x33a295){return client[_0x0c77('0xb')](_0x1972ef,_0x221281)[_0x0c77('0xc')](function(_0x5c2178){logger[_0x0c77('0xd')](_0x0c77('0xe'),_0x4b2424,'request\x20sent');logger['debug'](_0x0c77('0xf'),_0x4b2424,'request\x20sent',JSON[_0x0c77('0x10')](_0x5c2178));if(_0x5c2178[_0x0c77('0x11')]){if(_0x5c2178['error'][_0x0c77('0x12')]===0x1f4){logger[_0x0c77('0x11')](_0x0c77('0xe'),_0x4b2424,_0x5c2178[_0x0c77('0x11')]['message']);return _0x33a295(_0x5c2178['error']['message']);}logger[_0x0c77('0x11')](_0x0c77('0xe'),_0x4b2424,_0x5c2178[_0x0c77('0x11')][_0x0c77('0x13')]);return _0x4aec3c(_0x5c2178['error'][_0x0c77('0x13')]);}else{logger[_0x0c77('0xd')]('SmsTransferReport,\x20%s,\x20%s',_0x4b2424,_0x0c77('0x14'));_0x4aec3c(_0x5c2178[_0x0c77('0x15')]['message']);}})['catch'](function(_0x233042){logger[_0x0c77('0x11')]('SmsTransferReport,\x20%s,\x20%s',_0x4b2424,_0x233042);_0x33a295(_0x233042);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4dec=['update','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./sound.controller','get','isAuthenticated','index','/:id','show','/:id/download','download','diskStorage','join','root','server/files/sounds/original/','originalname','replace','%s-%s%s','basename','extname','single','put'];(function(_0x26ae5c,_0x3351d6){var _0x3bb507=function(_0x193f51){while(--_0x193f51){_0x26ae5c['push'](_0x26ae5c['shift']());}};_0x3bb507(++_0x3351d6);}(_0x4dec,0x119));var _0xc4de=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x4dec[_0x2dafbe];return _0x58a45a;};'use strict';var multer=require('multer');var util=require(_0xc4de('0x0'));var path=require(_0xc4de('0x1'));var timeout=require('connect-timeout');var express=require(_0xc4de('0x2'));var router=express[_0xc4de('0x3')]();var fs_extra=require(_0xc4de('0x4'));var auth=require(_0xc4de('0x5'));var interaction=require(_0xc4de('0x6'));var config=require(_0xc4de('0x7'));var controller=require(_0xc4de('0x8'));router[_0xc4de('0x9')]('/',auth[_0xc4de('0xa')](),controller[_0xc4de('0xb')]);router[_0xc4de('0x9')](_0xc4de('0xc'),auth[_0xc4de('0xa')](),controller[_0xc4de('0xd')]);router[_0xc4de('0x9')](_0xc4de('0xe'),auth[_0xc4de('0xa')](),controller[_0xc4de('0xf')]);var upload=multer({'storage':multer[_0xc4de('0x10')]({'destination':function(_0x202b7a,_0x180c46,_0x17bf8e){_0x17bf8e(null,path[_0xc4de('0x11')](config[_0xc4de('0x12')],_0xc4de('0x13')));},'filename':function(_0x3c79f4,_0x4d32dd,_0x652eb4){_0x4d32dd[_0xc4de('0x14')]=_0x4d32dd[_0xc4de('0x14')][_0xc4de('0x15')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x652eb4(null,util['format'](_0xc4de('0x16'),path[_0xc4de('0x17')](_0x4d32dd[_0xc4de('0x14')],path[_0xc4de('0x18')](_0x4d32dd[_0xc4de('0x14')])),Date['now'](),path[_0xc4de('0x18')](_0x4d32dd[_0xc4de('0x14')])));}})});router['post']('/',upload[_0xc4de('0x19')]('file'),controller['create']);router[_0xc4de('0x1a')]('/:id',auth['isAuthenticated'](),controller[_0xc4de('0x1b')]);router['delete']('/:id',auth[_0xc4de('0xa')](),controller['delete']);module['exports']=router;
\ No newline at end of file
+var _0x10f7=['basename','extname','now','post','single','file','create','put','/:id','update','delete','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./sound.controller','get','isAuthenticated','index','show','/:id/download','download','diskStorage','root','originalname','replace','%s-%s%s'];(function(_0x3e1e91,_0x970a2e){var _0x4db75d=function(_0x49bad8){while(--_0x49bad8){_0x3e1e91['push'](_0x3e1e91['shift']());}};_0x4db75d(++_0x970a2e);}(_0x10f7,0xac));var _0x710f=function(_0x15321a,_0x5398b9){_0x15321a=_0x15321a-0x0;var _0x5b85f2=_0x10f7[_0x15321a];return _0x5b85f2;};'use strict';var multer=require(_0x710f('0x0'));var util=require(_0x710f('0x1'));var path=require(_0x710f('0x2'));var timeout=require(_0x710f('0x3'));var express=require('express');var router=express[_0x710f('0x4')]();var fs_extra=require(_0x710f('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x710f('0x6'));var config=require(_0x710f('0x7'));var controller=require(_0x710f('0x8'));router[_0x710f('0x9')]('/',auth[_0x710f('0xa')](),controller[_0x710f('0xb')]);router['get']('/:id',auth[_0x710f('0xa')](),controller[_0x710f('0xc')]);router[_0x710f('0x9')](_0x710f('0xd'),auth['isAuthenticated'](),controller[_0x710f('0xe')]);var upload=multer({'storage':multer[_0x710f('0xf')]({'destination':function(_0x462bbb,_0x2f03fd,_0x235d38){_0x235d38(null,path['join'](config[_0x710f('0x10')],'server/files/sounds/original/'));},'filename':function(_0x2e88ac,_0x3effec,_0x4b22c4){_0x3effec['originalname']=_0x3effec[_0x710f('0x11')][_0x710f('0x12')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x4b22c4(null,util['format'](_0x710f('0x13'),path[_0x710f('0x14')](_0x3effec[_0x710f('0x11')],path[_0x710f('0x15')](_0x3effec[_0x710f('0x11')])),Date[_0x710f('0x16')](),path['extname'](_0x3effec[_0x710f('0x11')])));}})});router[_0x710f('0x17')]('/',upload[_0x710f('0x18')](_0x710f('0x19')),controller[_0x710f('0x1a')]);router[_0x710f('0x1b')](_0x710f('0x1c'),auth[_0x710f('0xa')](),controller[_0x710f('0x1d')]);router[_0x710f('0x1e')]('/:id',auth['isAuthenticated'](),controller[_0x710f('0x1e')]);module[_0x710f('0x1f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55db=['INTEGER','FLOAT','exports','STRING','BIGINT'];(function(_0x13b975,_0x49669c){var _0x207615=function(_0x4a5ca4){while(--_0x4a5ca4){_0x13b975['push'](_0x13b975['shift']());}};_0x207615(++_0x49669c);}(_0x55db,0x1b5));var _0xb55d=function(_0x1cc597,_0x52b070){_0x1cc597=_0x1cc597-0x0;var _0x507937=_0x55db[_0x1cc597];return _0x507937;};'use strict';var Sequelize=require('sequelize');module[_0xb55d('0x0')]={'name':{'type':Sequelize[_0xb55d('0x1')],'unique':'name','allowNull':![]},'save_name':{'type':Sequelize[_0xb55d('0x1')]},'display_name':{'type':Sequelize[_0xb55d('0x1')],'defaultValue':''},'description':{'type':Sequelize[_0xb55d('0x1')]},'original_format':{'type':Sequelize[_0xb55d('0x1')]},'original_duration':{'type':Sequelize['FLOAT']},'original_sampleCount':{'type':Sequelize[_0xb55d('0x2')]},'original_channelCount':{'type':Sequelize['INTEGER']},'original_bitRate':{'type':Sequelize[_0xb55d('0x2')]},'original_sampleRate':{'type':Sequelize[_0xb55d('0x3')]},'converted_format':{'type':Sequelize[_0xb55d('0x1')]},'converted_duration':{'type':Sequelize[_0xb55d('0x4')]},'converted_sampleCount':{'type':Sequelize[_0xb55d('0x2')]},'converted_channelCount':{'type':Sequelize[_0xb55d('0x3')]},'converted_bitRate':{'type':Sequelize[_0xb55d('0x2')]},'converted_sampleRate':{'type':Sequelize[_0xb55d('0x3')]}};
\ No newline at end of file
+var _0xd3eb=['INTEGER','sequelize','exports','STRING','name','FLOAT','BIGINT'];(function(_0x3f94f5,_0x20659c){var _0x12c0ca=function(_0x2e50de){while(--_0x2e50de){_0x3f94f5['push'](_0x3f94f5['shift']());}};_0x12c0ca(++_0x20659c);}(_0xd3eb,0x120));var _0xbd3e=function(_0x415603,_0x21320c){_0x415603=_0x415603-0x0;var _0x131e72=_0xd3eb[_0x415603];return _0x131e72;};'use strict';var Sequelize=require(_0xbd3e('0x0'));module[_0xbd3e('0x1')]={'name':{'type':Sequelize[_0xbd3e('0x2')],'unique':_0xbd3e('0x3'),'allowNull':![]},'save_name':{'type':Sequelize[_0xbd3e('0x2')]},'display_name':{'type':Sequelize[_0xbd3e('0x2')],'defaultValue':''},'description':{'type':Sequelize[_0xbd3e('0x2')]},'original_format':{'type':Sequelize[_0xbd3e('0x2')]},'original_duration':{'type':Sequelize[_0xbd3e('0x4')]},'original_sampleCount':{'type':Sequelize[_0xbd3e('0x5')]},'original_channelCount':{'type':Sequelize['INTEGER']},'original_bitRate':{'type':Sequelize['BIGINT']},'original_sampleRate':{'type':Sequelize[_0xbd3e('0x6')]},'converted_format':{'type':Sequelize[_0xbd3e('0x2')]},'converted_duration':{'type':Sequelize[_0xbd3e('0x4')]},'converted_sampleCount':{'type':Sequelize['BIGINT']},'converted_channelCount':{'type':Sequelize['INTEGER']},'converted_bitRate':{'type':Sequelize[_0xbd3e('0x5')]},'converted_sampleRate':{'type':Sequelize[_0xbd3e('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e53=['squel','crypto','jsforce','desk.js','querystring','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','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','get','Sounds','UserProfileResource','stack','name','send','index','Sound','rawAttributes','type','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','options','includeAll','findAll','catch','show','params','include','merge','find','download','save_name','converted_format','existsSync','join','root','Sequelize','ValidationError','format','%s.%s','basename','file','originalname','filename','extname','substring','wav','server/files/sounds/original','Sound\x20upload\x20filepath:\x20%s','chmodSync','0777','transcode','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_sampleRate','create','body','role','userProfileId','user','UserProfileSection','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','description','original_format','eml-format','rimraf','request-promise','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash'];(function(_0x3cf419,_0x14d974){var _0x5c0d9b=function(_0x2525fe){while(--_0x2525fe){_0x3cf419['push'](_0x3cf419['shift']());}};_0x5c0d9b(++_0x14d974);}(_0x3e53,0xf2));var _0x33e5=function(_0x1aee67,_0x4fb27e){_0x1aee67=_0x1aee67-0x0;var _0x32ed46=_0x3e53[_0x1aee67];return _0x32ed46;};'use strict';var emlformat=require(_0x33e5('0x0'));var rimraf=require(_0x33e5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x33e5('0x2'));var moment=require('moment');var BPromise=require(_0x33e5('0x3'));var Mustache=require(_0x33e5('0x4'));var util=require('util');var path=require(_0x33e5('0x5'));var sox=require('sox');var csv=require(_0x33e5('0x6'));var ejs=require(_0x33e5('0x7'));var fs=require('fs');var fs_extra=require(_0x33e5('0x8'));var _=require(_0x33e5('0x9'));var squel=require(_0x33e5('0xa'));var crypto=require(_0x33e5('0xb'));var jsforce=require(_0x33e5('0xc'));var deskjs=require(_0x33e5('0xd'));var toCsv=require(_0x33e5('0x6'));var querystring=require(_0x33e5('0xe'));var Papa=require('papaparse');var Redis=require(_0x33e5('0xf'));var authService=require(_0x33e5('0x10'));var qs=require(_0x33e5('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x33e5('0x12'));var logger=require(_0x33e5('0x13'))(_0x33e5('0x14'));var utils=require(_0x33e5('0x15'));var config=require(_0x33e5('0x16'));var licenseUtil=require(_0x33e5('0x17'));var db=require(_0x33e5('0x18'))['db'];function respondWithStatusCode(_0x540544,_0x29078b){_0x29078b=_0x29078b||0xcc;return function(_0x3046e4){if(_0x3046e4){return _0x540544[_0x33e5('0x19')](_0x29078b);}return _0x540544[_0x33e5('0x1a')](_0x29078b)[_0x33e5('0x1b')]();};}function respondWithResult(_0x4e4c22,_0x47a87c){_0x47a87c=_0x47a87c||0xc8;return function(_0x4439b6){if(_0x4439b6){return _0x4e4c22[_0x33e5('0x1a')](_0x47a87c)[_0x33e5('0x1c')](_0x4439b6);}};}function respondWithFilteredResult(_0xcbeeaa,_0x2721e0){return function(_0x260eca){if(_0x260eca){var _0x22bb89=typeof _0x2721e0['offset']===_0x33e5('0x1d')&&typeof _0x2721e0[_0x33e5('0x1e')]===_0x33e5('0x1d');var _0x2959be=_0x260eca[_0x33e5('0x1f')];var _0xf2b365=_0x22bb89?0x0:_0x2721e0[_0x33e5('0x20')];var _0x2d9d70=_0x22bb89?_0x260eca[_0x33e5('0x1f')]:_0x2721e0['offset']+_0x2721e0[_0x33e5('0x1e')];var _0x147f38;if(_0x2d9d70>=_0x2959be){_0x2d9d70=_0x2959be;_0x147f38=0xc8;}else{_0x147f38=0xce;}_0xcbeeaa[_0x33e5('0x1a')](_0x147f38);return _0xcbeeaa[_0x33e5('0x21')](_0x33e5('0x22'),_0xf2b365+'-'+_0x2d9d70+'/'+_0x2959be)[_0x33e5('0x1c')](_0x260eca);}return null;};}function patchUpdates(_0x15502c){return function(_0x468d38){try{jsonpatch[_0x33e5('0x23')](_0x468d38,_0x15502c,!![]);}catch(_0x3f6ece){return BPromise[_0x33e5('0x24')](_0x3f6ece);}return _0x468d38[_0x33e5('0x25')]();};}function saveUpdates(_0x44b40a,_0x5ea775){return function(_0x1cae15){if(_0x1cae15){return _0x1cae15[_0x33e5('0x26')](_0x44b40a)[_0x33e5('0x27')](function(_0x121976){return _0x121976;});}return null;};}function removeEntity(_0x13c853,_0x5894e6){return function(_0x2b80a2){if(_0x2b80a2){return _0x2b80a2[_0x33e5('0x28')]()['then'](function(){var _0x59bf0f=_0x2b80a2[_0x33e5('0x29')]({'plain':!![]});var _0x102d95=_0x33e5('0x2a');return db[_0x33e5('0x2b')][_0x33e5('0x28')]({'where':{'type':_0x102d95,'resourceId':_0x59bf0f['id']}})[_0x33e5('0x27')](function(){return _0x2b80a2;});})[_0x33e5('0x27')](function(){_0x13c853[_0x33e5('0x1a')](0xcc)[_0x33e5('0x1b')]();});}};}function handleEntityNotFound(_0x2351ea,_0x401708){return function(_0x458715){if(!_0x458715){_0x2351ea['sendStatus'](0x194);}return _0x458715;};}function handleError(_0x4bf611,_0x15667c){_0x15667c=_0x15667c||0x1f4;return function(_0x4c9558){logger['error'](_0x4c9558[_0x33e5('0x2c')]);if(_0x4c9558[_0x33e5('0x2d')]){delete _0x4c9558[_0x33e5('0x2d')];}_0x4bf611[_0x33e5('0x1a')](_0x15667c)[_0x33e5('0x2e')](_0x4c9558);};}exports[_0x33e5('0x2f')]=function(_0x134941,_0x220d2d){var _0x379311={},_0x31d723={},_0x1395a4={'count':0x0,'rows':[]};var _0x443ac9=_['map'](db[_0x33e5('0x30')][_0x33e5('0x31')],function(_0x370701){return{'name':_0x370701['fieldName'],'type':_0x370701[_0x33e5('0x32')]['key']};});_0x31d723[_0x33e5('0x33')]=_[_0x33e5('0x34')](_0x443ac9,_0x33e5('0x2d'));_0x31d723['query']=_[_0x33e5('0x35')](_0x134941[_0x33e5('0x36')]);_0x31d723[_0x33e5('0x37')]=_[_0x33e5('0x38')](_0x31d723[_0x33e5('0x33')],_0x31d723['query']);_0x379311[_0x33e5('0x39')]=_['intersection'](_0x31d723['model'],qs[_0x33e5('0x3a')](_0x134941[_0x33e5('0x36')][_0x33e5('0x3a')]));_0x379311[_0x33e5('0x39')]=_0x379311[_0x33e5('0x39')][_0x33e5('0x3b')]?_0x379311[_0x33e5('0x39')]:_0x31d723['model'];if(!_0x134941[_0x33e5('0x36')][_0x33e5('0x3c')](_0x33e5('0x3d'))){_0x379311[_0x33e5('0x1e')]=qs[_0x33e5('0x1e')](_0x134941[_0x33e5('0x36')][_0x33e5('0x1e')]);_0x379311[_0x33e5('0x20')]=qs['offset'](_0x134941['query'][_0x33e5('0x20')]);}_0x379311[_0x33e5('0x3e')]=qs[_0x33e5('0x3f')](_0x134941[_0x33e5('0x36')][_0x33e5('0x3f')]);_0x379311[_0x33e5('0x40')]=qs[_0x33e5('0x37')](_[_0x33e5('0x41')](_0x134941[_0x33e5('0x36')],_0x31d723['filters']),_0x443ac9);if(_0x134941[_0x33e5('0x36')][_0x33e5('0x42')]){_0x379311[_0x33e5('0x40')]=_['merge'](_0x379311[_0x33e5('0x40')],{'$or':_[_0x33e5('0x34')](_0x443ac9,function(_0x4466be){if(_0x4466be[_0x33e5('0x32')]!=='VIRTUAL'){var _0x48b49d={};_0x48b49d[_0x4466be['name']]={'$like':'%'+_0x134941[_0x33e5('0x36')][_0x33e5('0x42')]+'%'};return _0x48b49d;}})});}_0x379311=_['merge']({},_0x379311,_0x134941[_0x33e5('0x43')]);var _0x677ec1={'where':_0x379311[_0x33e5('0x40')]};return db[_0x33e5('0x30')]['count'](_0x677ec1)[_0x33e5('0x27')](function(_0x5209be){_0x1395a4[_0x33e5('0x1f')]=_0x5209be;if(_0x134941['query'][_0x33e5('0x44')]){_0x379311['include']=[{'all':!![]}];}return db[_0x33e5('0x30')][_0x33e5('0x45')](_0x379311);})[_0x33e5('0x27')](function(_0x5b0333){_0x1395a4['rows']=_0x5b0333;return _0x1395a4;})[_0x33e5('0x27')](respondWithFilteredResult(_0x220d2d,_0x379311))[_0x33e5('0x46')](handleError(_0x220d2d,null));};exports[_0x33e5('0x47')]=function(_0x3985b8,_0x52f56b){var _0xe25f1b={'raw':!![],'where':{'id':_0x3985b8[_0x33e5('0x48')]['id']}},_0xbad709={};_0xbad709[_0x33e5('0x33')]=_[_0x33e5('0x35')](db[_0x33e5('0x30')]['rawAttributes']);_0xbad709['query']=_['keys'](_0x3985b8['query']);_0xbad709[_0x33e5('0x37')]=_['intersection'](_0xbad709[_0x33e5('0x33')],_0xbad709[_0x33e5('0x36')]);_0xe25f1b[_0x33e5('0x39')]=_['intersection'](_0xbad709[_0x33e5('0x33')],qs[_0x33e5('0x3a')](_0x3985b8['query'][_0x33e5('0x3a')]));_0xe25f1b[_0x33e5('0x39')]=_0xe25f1b[_0x33e5('0x39')][_0x33e5('0x3b')]?_0xe25f1b[_0x33e5('0x39')]:_0xbad709['model'];if(_0x3985b8[_0x33e5('0x36')]['includeAll']){_0xe25f1b[_0x33e5('0x49')]=[{'all':!![]}];}_0xe25f1b=_[_0x33e5('0x4a')]({},_0xe25f1b,_0x3985b8[_0x33e5('0x43')]);return db[_0x33e5('0x30')][_0x33e5('0x4b')](_0xe25f1b)[_0x33e5('0x27')](handleEntityNotFound(_0x52f56b,null))['then'](respondWithResult(_0x52f56b,null))[_0x33e5('0x46')](handleError(_0x52f56b,null));};exports[_0x33e5('0x4c')]=function(_0xc6c4d,_0x58a89b,_0x5a181d){return db[_0x33e5('0x30')][_0x33e5('0x4b')]({'where':{'id':_0xc6c4d['params']['id']},'attributes':[_0x33e5('0x2d'),_0x33e5('0x4d'),_0x33e5('0x4e')],'raw':!![]})[_0x33e5('0x27')](handleEntityNotFound(_0x58a89b,null))[_0x33e5('0x27')](function(_0x21baa8){if(_0x21baa8){if(!fs[_0x33e5('0x4f')](path[_0x33e5('0x50')](config[_0x33e5('0x51')],'server/files/sounds/converted',_0x21baa8['save_name']+'.'+_0x21baa8[_0x33e5('0x4e')]))){throw new db[(_0x33e5('0x52'))][(_0x33e5('0x53'))]('Sound\x20not\x20found');}return _0x58a89b[_0x33e5('0x4c')](path['join'](config[_0x33e5('0x51')],'server/files/sounds/converted',util[_0x33e5('0x54')](_0x33e5('0x55'),_0x21baa8[_0x33e5('0x4d')],_0x21baa8[_0x33e5('0x4e')])),util[_0x33e5('0x54')]('%s.%s',_0x21baa8[_0x33e5('0x2d')],_0x21baa8[_0x33e5('0x4e')]));}return null;})[_0x33e5('0x46')](handleError(_0x58a89b,null));};exports['create']=function(_0x587182,_0x275679,_0x3443a8){var _0x311600={'name':path[_0x33e5('0x56')](_0x587182[_0x33e5('0x57')]['originalname'],path['extname'](_0x587182[_0x33e5('0x57')][_0x33e5('0x58')])),'save_name':path['basename'](_0x587182['file'][_0x33e5('0x59')],path[_0x33e5('0x5a')](_0x587182[_0x33e5('0x57')][_0x33e5('0x59')])),'original_format':path[_0x33e5('0x5a')](_0x587182['file'][_0x33e5('0x58')])[_0x33e5('0x5b')](0x1),'converted_format':_0x33e5('0x5c')};var _0x4212be=path[_0x33e5('0x50')](config[_0x33e5('0x51')],_0x33e5('0x5d'),_0x587182[_0x33e5('0x57')][_0x33e5('0x59')]);var _0x864344=path[_0x33e5('0x50')](config[_0x33e5('0x51')],'server/files/sounds/converted',util['format'](_0x33e5('0x55'),path[_0x33e5('0x56')](_0x587182[_0x33e5('0x57')][_0x33e5('0x59')],path[_0x33e5('0x5a')](_0x587182[_0x33e5('0x57')][_0x33e5('0x59')])),_0x311600[_0x33e5('0x4e')]));logger['info'](_0x33e5('0x5e'),_0x4212be);logger['info']('Sound\x20upload\x20destination:\x20%s',_0x864344);try{fs[_0x33e5('0x5f')](_0x4212be,parseInt(_0x33e5('0x60'),0x8));var _0x1aa652=sox[_0x33e5('0x61')](_0x4212be,_0x864344,{'sampleRate':0x1f40,'format':_0x33e5('0x5c'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x1aa652['on']('error',function(_0x349ced){fs[_0x33e5('0x62')](_0x4212be);_0x275679['status'](0x1f4)[_0x33e5('0x2e')](_0x349ced);});_0x1aa652['on'](_0x33e5('0x63'),function(_0x408a74){_0x311600[_0x33e5('0x64')]=isNaN(_0x408a74[_0x33e5('0x65')])?null:_0x408a74['duration']*0x3e8;_0x311600[_0x33e5('0x66')]=isNaN(_0x408a74[_0x33e5('0x67')])?null:_0x408a74[_0x33e5('0x67')];_0x311600[_0x33e5('0x68')]=isNaN(_0x408a74[_0x33e5('0x69')])?null:_0x408a74[_0x33e5('0x69')];_0x311600[_0x33e5('0x6a')]=isNaN(_0x408a74[_0x33e5('0x6b')])?null:_0x408a74['bitRate'];_0x311600[_0x33e5('0x6c')]=isNaN(_0x408a74[_0x33e5('0x6d')])?null:_0x408a74[_0x33e5('0x6d')];});_0x1aa652['on'](_0x33e5('0x6e'),function(_0x5cd4f6){_0x311600[_0x33e5('0x6f')]=isNaN(_0x5cd4f6['duration'])?null:_0x5cd4f6[_0x33e5('0x65')]*0x3e8;_0x311600[_0x33e5('0x70')]=isNaN(_0x5cd4f6[_0x33e5('0x67')])?null:_0x5cd4f6[_0x33e5('0x67')];_0x311600['converted_channelCount']=isNaN(_0x5cd4f6[_0x33e5('0x69')])?null:_0x5cd4f6['channelCount'];_0x311600['converted_bitRate']=isNaN(_0x5cd4f6[_0x33e5('0x6b')])?null:_0x5cd4f6['bitRate'];_0x311600[_0x33e5('0x71')]=isNaN(_0x5cd4f6[_0x33e5('0x6d')])?null:_0x5cd4f6[_0x33e5('0x6d')];});_0x1aa652['on'](_0x33e5('0x1b'),function(){fs[_0x33e5('0x5f')](_0x864344,parseInt('0777',0x8));return db['Sound'][_0x33e5('0x72')](_0x311600)['then'](function(_0x29a45b){var _0x12dded={'role':_0x587182[_0x33e5('0x73')][_0x33e5('0x74')],'userProfileId':_0x587182['body'][_0x33e5('0x75')]};if(!_0x12dded)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x12dded[_0x33e5('0x74')]===_0x33e5('0x76')){var _0x35106b=_0x29a45b['get']({'plain':!![]});return db[_0x33e5('0x77')][_0x33e5('0x4b')]({'where':{'name':'Sounds','userProfileId':_0x12dded[_0x33e5('0x75')]},'raw':!![]})['then'](function(_0x4f69e7){if(_0x4f69e7&&_0x4f69e7[_0x33e5('0x78')]===0x0){return db[_0x33e5('0x2b')]['create']({'name':_0x35106b['name'],'resourceId':_0x35106b['id'],'type':_0x4f69e7['name'],'sectionId':_0x4f69e7['id']},{})['then'](function(){return _0x29a45b;});}else{return _0x29a45b;}})[_0x33e5('0x46')](function(_0x5cc8aa){logger[_0x33e5('0x79')](_0x33e5('0x7a'),_0x5cc8aa);throw _0x5cc8aa;});}return _0x29a45b;})[_0x33e5('0x27')](respondWithResult(_0x275679,null))[_0x33e5('0x46')](handleError(_0x275679,null));});_0x1aa652[_0x33e5('0x7b')]();}catch(_0x43cb2a){_0x275679[_0x33e5('0x1a')](0x1f4)[_0x33e5('0x2e')](_0x43cb2a);}};exports['update']=function(_0x51ce4d,_0x5a8892,_0x203b3b){return db[_0x33e5('0x30')][_0x33e5('0x4b')]({'where':{'id':_0x51ce4d['params']['id']}})[_0x33e5('0x27')](handleEntityNotFound(_0x5a8892,null))[_0x33e5('0x27')](saveUpdates(_['pick'](_0x51ce4d[_0x33e5('0x73')],[_0x33e5('0x2d'),_0x33e5('0x7c')]),null))['then'](respondWithResult(_0x5a8892,null))[_0x33e5('0x46')](handleError(_0x5a8892,null));};exports['delete']=function(_0x567629,_0x127207,_0x12229c){return db['Sound']['find']({'where':{'id':_0x567629[_0x33e5('0x48')]['id']}})[_0x33e5('0x27')](function(_0x14ed32){if(_0x14ed32){return _0x14ed32[_0x33e5('0x28')]();}})[_0x33e5('0x27')](function(_0x13265f){var _0x33e4d9=path[_0x33e5('0x50')](config[_0x33e5('0x51')],'server/files/sounds/original',util[_0x33e5('0x54')](_0x33e5('0x55'),_0x13265f['save_name'],_0x13265f[_0x33e5('0x7d')]));var _0x4da53c=path[_0x33e5('0x50')](config[_0x33e5('0x51')],'server/files/sounds/converted',util['format'](_0x33e5('0x55'),_0x13265f[_0x33e5('0x4d')],_0x13265f[_0x33e5('0x4e')]));fs[_0x33e5('0x62')](_0x33e4d9);fs[_0x33e5('0x62')](_0x4da53c);return _0x13265f;})[_0x33e5('0x27')](function(_0x258f57){if(_0x258f57){return _0x127207['status'](0xcc)[_0x33e5('0x1b')]();}})['then'](handleEntityNotFound(_0x127207,null))[_0x33e5('0x46')](handleError(_0x127207,null));};
\ No newline at end of file
+var _0x3e9b=['../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','save','update','then','get','Sounds','name','send','index','map','Sound','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','download','save_name','converted_format','root','server/files/sounds/converted','Sequelize','ValidationError','Sound\x20not\x20found','format','%s.%s','basename','file','originalname','filename','extname','substring','wav','join','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','transcode','error','original_duration','sampleCount','channelCount','original_bitRate','bitRate','sampleRate','dest','duration','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','end','0777','create','role','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','description','delete','server/files/sounds/original','original_format','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api'];(function(_0x2ec3cb,_0xc935c8){var _0x52ced9=function(_0x1841d3){while(--_0x1841d3){_0x2ec3cb['push'](_0x2ec3cb['shift']());}};_0x52ced9(++_0xc935c8);}(_0x3e9b,0x1e2));var _0xb3e9=function(_0x2b062d,_0x5cf49d){_0x2b062d=_0x2b062d-0x0;var _0x5c8de8=_0x3e9b[_0x2b062d];return _0x5c8de8;};'use strict';var emlformat=require(_0xb3e9('0x0'));var rimraf=require(_0xb3e9('0x1'));var zipdir=require(_0xb3e9('0x2'));var jsonpatch=require(_0xb3e9('0x3'));var rp=require(_0xb3e9('0x4'));var moment=require(_0xb3e9('0x5'));var BPromise=require(_0xb3e9('0x6'));var Mustache=require(_0xb3e9('0x7'));var util=require('util');var path=require(_0xb3e9('0x8'));var sox=require(_0xb3e9('0x9'));var csv=require(_0xb3e9('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xb3e9('0xb'));var crypto=require(_0xb3e9('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xb3e9('0xd'));var toCsv=require(_0xb3e9('0xa'));var querystring=require(_0xb3e9('0xe'));var Papa=require(_0xb3e9('0xf'));var Redis=require(_0xb3e9('0x10'));var authService=require(_0xb3e9('0x11'));var qs=require(_0xb3e9('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb3e9('0x13'));var logger=require(_0xb3e9('0x14'))(_0xb3e9('0x15'));var utils=require(_0xb3e9('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xb3e9('0x17'));var db=require(_0xb3e9('0x18'))['db'];function respondWithStatusCode(_0xe503d8,_0x403934){_0x403934=_0x403934||0xcc;return function(_0x3f4bc2){if(_0x3f4bc2){return _0xe503d8[_0xb3e9('0x19')](_0x403934);}return _0xe503d8[_0xb3e9('0x1a')](_0x403934)['end']();};}function respondWithResult(_0x32eecf,_0xdd59ba){_0xdd59ba=_0xdd59ba||0xc8;return function(_0xf4bb7c){if(_0xf4bb7c){return _0x32eecf['status'](_0xdd59ba)[_0xb3e9('0x1b')](_0xf4bb7c);}};}function respondWithFilteredResult(_0x2e98d4,_0x1aa89e){return function(_0x7b887c){if(_0x7b887c){var _0x2b882d=typeof _0x1aa89e[_0xb3e9('0x1c')]===_0xb3e9('0x1d')&&typeof _0x1aa89e[_0xb3e9('0x1e')]===_0xb3e9('0x1d');var _0x549fcd=_0x7b887c[_0xb3e9('0x1f')];var _0x182abb=_0x2b882d?0x0:_0x1aa89e[_0xb3e9('0x1c')];var _0x3db887=_0x2b882d?_0x7b887c['count']:_0x1aa89e[_0xb3e9('0x1c')]+_0x1aa89e['limit'];var _0x545a9f;if(_0x3db887>=_0x549fcd){_0x3db887=_0x549fcd;_0x545a9f=0xc8;}else{_0x545a9f=0xce;}_0x2e98d4[_0xb3e9('0x1a')](_0x545a9f);return _0x2e98d4[_0xb3e9('0x20')](_0xb3e9('0x21'),_0x182abb+'-'+_0x3db887+'/'+_0x549fcd)[_0xb3e9('0x1b')](_0x7b887c);}return null;};}function patchUpdates(_0x53e8bc){return function(_0x2303cb){try{jsonpatch['apply'](_0x2303cb,_0x53e8bc,!![]);}catch(_0x40b08c){return BPromise['reject'](_0x40b08c);}return _0x2303cb[_0xb3e9('0x22')]();};}function saveUpdates(_0x4b114f,_0x13adcd){return function(_0x106bca){if(_0x106bca){return _0x106bca[_0xb3e9('0x23')](_0x4b114f)['then'](function(_0x41ad5c){return _0x41ad5c;});}return null;};}function removeEntity(_0xd4727b,_0x480678){return function(_0x4da6e3){if(_0x4da6e3){return _0x4da6e3['destroy']()[_0xb3e9('0x24')](function(){var _0xa69c57=_0x4da6e3[_0xb3e9('0x25')]({'plain':!![]});var _0x38e2df=_0xb3e9('0x26');return db['UserProfileResource']['destroy']({'where':{'type':_0x38e2df,'resourceId':_0xa69c57['id']}})[_0xb3e9('0x24')](function(){return _0x4da6e3;});})['then'](function(){_0xd4727b[_0xb3e9('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2de685,_0x23f56c){return function(_0x586932){if(!_0x586932){_0x2de685[_0xb3e9('0x19')](0x194);}return _0x586932;};}function handleError(_0x19af5b,_0x32beeb){_0x32beeb=_0x32beeb||0x1f4;return function(_0x36a283){logger['error'](_0x36a283['stack']);if(_0x36a283[_0xb3e9('0x27')]){delete _0x36a283[_0xb3e9('0x27')];}_0x19af5b[_0xb3e9('0x1a')](_0x32beeb)[_0xb3e9('0x28')](_0x36a283);};}exports[_0xb3e9('0x29')]=function(_0x4556df,_0x119cab){var _0x2be962={},_0xac1b21={},_0x50093a={'count':0x0,'rows':[]};var _0x1f763d=_[_0xb3e9('0x2a')](db[_0xb3e9('0x2b')]['rawAttributes'],function(_0xdf6bbc){return{'name':_0xdf6bbc[_0xb3e9('0x2c')],'type':_0xdf6bbc[_0xb3e9('0x2d')][_0xb3e9('0x2e')]};});_0xac1b21[_0xb3e9('0x2f')]=_[_0xb3e9('0x2a')](_0x1f763d,_0xb3e9('0x27'));_0xac1b21[_0xb3e9('0x30')]=_[_0xb3e9('0x31')](_0x4556df['query']);_0xac1b21[_0xb3e9('0x32')]=_[_0xb3e9('0x33')](_0xac1b21[_0xb3e9('0x2f')],_0xac1b21[_0xb3e9('0x30')]);_0x2be962[_0xb3e9('0x34')]=_[_0xb3e9('0x33')](_0xac1b21[_0xb3e9('0x2f')],qs[_0xb3e9('0x35')](_0x4556df[_0xb3e9('0x30')][_0xb3e9('0x35')]));_0x2be962[_0xb3e9('0x34')]=_0x2be962[_0xb3e9('0x34')][_0xb3e9('0x36')]?_0x2be962['attributes']:_0xac1b21[_0xb3e9('0x2f')];if(!_0x4556df[_0xb3e9('0x30')][_0xb3e9('0x37')](_0xb3e9('0x38'))){_0x2be962['limit']=qs[_0xb3e9('0x1e')](_0x4556df[_0xb3e9('0x30')][_0xb3e9('0x1e')]);_0x2be962[_0xb3e9('0x1c')]=qs[_0xb3e9('0x1c')](_0x4556df[_0xb3e9('0x30')][_0xb3e9('0x1c')]);}_0x2be962[_0xb3e9('0x39')]=qs[_0xb3e9('0x3a')](_0x4556df[_0xb3e9('0x30')][_0xb3e9('0x3a')]);_0x2be962['where']=qs[_0xb3e9('0x32')](_[_0xb3e9('0x3b')](_0x4556df[_0xb3e9('0x30')],_0xac1b21[_0xb3e9('0x32')]),_0x1f763d);if(_0x4556df[_0xb3e9('0x30')][_0xb3e9('0x3c')]){_0x2be962[_0xb3e9('0x3d')]=_['merge'](_0x2be962['where'],{'$or':_[_0xb3e9('0x2a')](_0x1f763d,function(_0x5ac038){if(_0x5ac038[_0xb3e9('0x2d')]!=='VIRTUAL'){var _0x33ad41={};_0x33ad41[_0x5ac038['name']]={'$like':'%'+_0x4556df[_0xb3e9('0x30')][_0xb3e9('0x3c')]+'%'};return _0x33ad41;}})});}_0x2be962=_[_0xb3e9('0x3e')]({},_0x2be962,_0x4556df[_0xb3e9('0x3f')]);var _0x40c73f={'where':_0x2be962[_0xb3e9('0x3d')]};return db['Sound']['count'](_0x40c73f)[_0xb3e9('0x24')](function(_0x1ddcec){_0x50093a['count']=_0x1ddcec;if(_0x4556df[_0xb3e9('0x30')][_0xb3e9('0x40')]){_0x2be962[_0xb3e9('0x41')]=[{'all':!![]}];}return db[_0xb3e9('0x2b')][_0xb3e9('0x42')](_0x2be962);})[_0xb3e9('0x24')](function(_0x30b783){_0x50093a[_0xb3e9('0x43')]=_0x30b783;return _0x50093a;})[_0xb3e9('0x24')](respondWithFilteredResult(_0x119cab,_0x2be962))[_0xb3e9('0x44')](handleError(_0x119cab,null));};exports[_0xb3e9('0x45')]=function(_0x147b19,_0xc26193){var _0xa93c1c={'raw':!![],'where':{'id':_0x147b19[_0xb3e9('0x46')]['id']}},_0xf5c950={};_0xf5c950[_0xb3e9('0x2f')]=_[_0xb3e9('0x31')](db['Sound'][_0xb3e9('0x47')]);_0xf5c950[_0xb3e9('0x30')]=_[_0xb3e9('0x31')](_0x147b19['query']);_0xf5c950[_0xb3e9('0x32')]=_[_0xb3e9('0x33')](_0xf5c950[_0xb3e9('0x2f')],_0xf5c950[_0xb3e9('0x30')]);_0xa93c1c[_0xb3e9('0x34')]=_[_0xb3e9('0x33')](_0xf5c950[_0xb3e9('0x2f')],qs[_0xb3e9('0x35')](_0x147b19['query']['fields']));_0xa93c1c['attributes']=_0xa93c1c[_0xb3e9('0x34')][_0xb3e9('0x36')]?_0xa93c1c[_0xb3e9('0x34')]:_0xf5c950['model'];if(_0x147b19['query'][_0xb3e9('0x40')]){_0xa93c1c[_0xb3e9('0x41')]=[{'all':!![]}];}_0xa93c1c=_[_0xb3e9('0x3e')]({},_0xa93c1c,_0x147b19['options']);return db[_0xb3e9('0x2b')][_0xb3e9('0x48')](_0xa93c1c)['then'](handleEntityNotFound(_0xc26193,null))[_0xb3e9('0x24')](respondWithResult(_0xc26193,null))['catch'](handleError(_0xc26193,null));};exports[_0xb3e9('0x49')]=function(_0x2454a0,_0x303009,_0x1a0adf){return db[_0xb3e9('0x2b')][_0xb3e9('0x48')]({'where':{'id':_0x2454a0[_0xb3e9('0x46')]['id']},'attributes':[_0xb3e9('0x27'),_0xb3e9('0x4a'),_0xb3e9('0x4b')],'raw':!![]})[_0xb3e9('0x24')](handleEntityNotFound(_0x303009,null))[_0xb3e9('0x24')](function(_0x507611){if(_0x507611){if(!fs['existsSync'](path['join'](config[_0xb3e9('0x4c')],_0xb3e9('0x4d'),_0x507611[_0xb3e9('0x4a')]+'.'+_0x507611[_0xb3e9('0x4b')]))){throw new db[(_0xb3e9('0x4e'))][(_0xb3e9('0x4f'))](_0xb3e9('0x50'));}return _0x303009[_0xb3e9('0x49')](path['join'](config[_0xb3e9('0x4c')],_0xb3e9('0x4d'),util[_0xb3e9('0x51')](_0xb3e9('0x52'),_0x507611['save_name'],_0x507611[_0xb3e9('0x4b')])),util[_0xb3e9('0x51')](_0xb3e9('0x52'),_0x507611['name'],_0x507611['converted_format']));}return null;})['catch'](handleError(_0x303009,null));};exports['create']=function(_0x113439,_0x401223,_0x3cb685){var _0x34ef21={'name':path[_0xb3e9('0x53')](_0x113439[_0xb3e9('0x54')]['originalname'],path['extname'](_0x113439['file'][_0xb3e9('0x55')])),'save_name':path[_0xb3e9('0x53')](_0x113439[_0xb3e9('0x54')]['filename'],path['extname'](_0x113439['file'][_0xb3e9('0x56')])),'original_format':path[_0xb3e9('0x57')](_0x113439['file']['originalname'])[_0xb3e9('0x58')](0x1),'converted_format':_0xb3e9('0x59')};var _0x31ac88=path[_0xb3e9('0x5a')](config[_0xb3e9('0x4c')],'server/files/sounds/original',_0x113439[_0xb3e9('0x54')][_0xb3e9('0x56')]);var _0xcb3862=path[_0xb3e9('0x5a')](config[_0xb3e9('0x4c')],'server/files/sounds/converted',util['format']('%s.%s',path[_0xb3e9('0x53')](_0x113439['file']['filename'],path[_0xb3e9('0x57')](_0x113439['file'][_0xb3e9('0x56')])),_0x34ef21[_0xb3e9('0x4b')]));logger[_0xb3e9('0x5b')](_0xb3e9('0x5c'),_0x31ac88);logger['info'](_0xb3e9('0x5d'),_0xcb3862);try{fs[_0xb3e9('0x5e')](_0x31ac88,parseInt('0777',0x8));var _0x4879a1=sox[_0xb3e9('0x5f')](_0x31ac88,_0xcb3862,{'sampleRate':0x1f40,'format':_0xb3e9('0x59'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x4879a1['on'](_0xb3e9('0x60'),function(_0x1dd131){fs['unlinkSync'](_0x31ac88);_0x401223[_0xb3e9('0x1a')](0x1f4)['send'](_0x1dd131);});_0x4879a1['on']('src',function(_0x1bc21e){_0x34ef21[_0xb3e9('0x61')]=isNaN(_0x1bc21e['duration'])?null:_0x1bc21e['duration']*0x3e8;_0x34ef21['original_sampleCount']=isNaN(_0x1bc21e[_0xb3e9('0x62')])?null:_0x1bc21e[_0xb3e9('0x62')];_0x34ef21['original_channelCount']=isNaN(_0x1bc21e[_0xb3e9('0x63')])?null:_0x1bc21e['channelCount'];_0x34ef21[_0xb3e9('0x64')]=isNaN(_0x1bc21e[_0xb3e9('0x65')])?null:_0x1bc21e['bitRate'];_0x34ef21['original_sampleRate']=isNaN(_0x1bc21e[_0xb3e9('0x66')])?null:_0x1bc21e[_0xb3e9('0x66')];});_0x4879a1['on'](_0xb3e9('0x67'),function(_0x2afea9){_0x34ef21['converted_duration']=isNaN(_0x2afea9[_0xb3e9('0x68')])?null:_0x2afea9[_0xb3e9('0x68')]*0x3e8;_0x34ef21[_0xb3e9('0x69')]=isNaN(_0x2afea9['sampleCount'])?null:_0x2afea9[_0xb3e9('0x62')];_0x34ef21[_0xb3e9('0x6a')]=isNaN(_0x2afea9[_0xb3e9('0x63')])?null:_0x2afea9['channelCount'];_0x34ef21[_0xb3e9('0x6b')]=isNaN(_0x2afea9[_0xb3e9('0x65')])?null:_0x2afea9[_0xb3e9('0x65')];_0x34ef21[_0xb3e9('0x6c')]=isNaN(_0x2afea9[_0xb3e9('0x66')])?null:_0x2afea9['sampleRate'];});_0x4879a1['on'](_0xb3e9('0x6d'),function(){fs[_0xb3e9('0x5e')](_0xcb3862,parseInt(_0xb3e9('0x6e'),0x8));return db[_0xb3e9('0x2b')][_0xb3e9('0x6f')](_0x34ef21)['then'](function(_0x1cbf26){var _0x4571a6={'role':_0x113439['body'][_0xb3e9('0x70')],'userProfileId':_0x113439[_0xb3e9('0x71')][_0xb3e9('0x72')]};if(!_0x4571a6)throw new Error(_0xb3e9('0x73'));if(_0x4571a6[_0xb3e9('0x70')]===_0xb3e9('0x74')){var _0x3513eb=_0x1cbf26[_0xb3e9('0x25')]({'plain':!![]});return db['UserProfileSection'][_0xb3e9('0x48')]({'where':{'name':_0xb3e9('0x26'),'userProfileId':_0x4571a6[_0xb3e9('0x72')]},'raw':!![]})['then'](function(_0x1215df){if(_0x1215df&&_0x1215df[_0xb3e9('0x75')]===0x0){return db[_0xb3e9('0x76')]['create']({'name':_0x3513eb[_0xb3e9('0x27')],'resourceId':_0x3513eb['id'],'type':_0x1215df[_0xb3e9('0x27')],'sectionId':_0x1215df['id']},{})[_0xb3e9('0x24')](function(){return _0x1cbf26;});}else{return _0x1cbf26;}})[_0xb3e9('0x44')](function(_0x3894fb){logger[_0xb3e9('0x60')](_0xb3e9('0x77'),_0x3894fb);throw _0x3894fb;});}return _0x1cbf26;})[_0xb3e9('0x24')](respondWithResult(_0x401223,null))[_0xb3e9('0x44')](handleError(_0x401223,null));});_0x4879a1[_0xb3e9('0x78')]();}catch(_0x5ef8f3){_0x401223[_0xb3e9('0x1a')](0x1f4)[_0xb3e9('0x28')](_0x5ef8f3);}};exports[_0xb3e9('0x23')]=function(_0x298a43,_0x3e2c44,_0x33ee3f){return db['Sound']['find']({'where':{'id':_0x298a43[_0xb3e9('0x46')]['id']}})[_0xb3e9('0x24')](handleEntityNotFound(_0x3e2c44,null))['then'](saveUpdates(_[_0xb3e9('0x3b')](_0x298a43['body'],[_0xb3e9('0x27'),_0xb3e9('0x79')]),null))[_0xb3e9('0x24')](respondWithResult(_0x3e2c44,null))[_0xb3e9('0x44')](handleError(_0x3e2c44,null));};exports[_0xb3e9('0x7a')]=function(_0x44d95b,_0x2e4798,_0x151f23){return db['Sound']['find']({'where':{'id':_0x44d95b['params']['id']}})['then'](function(_0x35d7a4){if(_0x35d7a4){return _0x35d7a4['destroy']();}})[_0xb3e9('0x24')](function(_0x348ce8){var _0x19ae58=path[_0xb3e9('0x5a')](config[_0xb3e9('0x4c')],_0xb3e9('0x7b'),util[_0xb3e9('0x51')](_0xb3e9('0x52'),_0x348ce8['save_name'],_0x348ce8[_0xb3e9('0x7c')]));var _0x4f683a=path[_0xb3e9('0x5a')](config['root'],_0xb3e9('0x4d'),util['format'](_0xb3e9('0x52'),_0x348ce8[_0xb3e9('0x4a')],_0x348ce8[_0xb3e9('0x4b')]));fs[_0xb3e9('0x7d')](_0x19ae58);fs[_0xb3e9('0x7d')](_0x4f683a);return _0x348ce8;})[_0xb3e9('0x24')](function(_0x11cf77){if(_0x11cf77){return _0x2e4798[_0xb3e9('0x1a')](0xcc)[_0xb3e9('0x6d')]();}})[_0xb3e9('0x24')](handleEntityNotFound(_0x2e4798,null))[_0xb3e9('0x44')](handleError(_0x2e4798,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x831f=['request-promise','path','rimraf','define','Sound','tools_sounds','lodash','util','../../config/logger','api','moment'];(function(_0x1f239e,_0x367b43){var _0x826971=function(_0x2c5777){while(--_0x2c5777){_0x1f239e['push'](_0x1f239e['shift']());}};_0x826971(++_0x367b43);}(_0x831f,0x1be));var _0xf831=function(_0x4796eb,_0x2f8389){_0x4796eb=_0x4796eb-0x0;var _0x1fb1a4=_0x831f[_0x4796eb];return _0x1fb1a4;};'use strict';var _=require(_0xf831('0x0'));var util=require(_0xf831('0x1'));var logger=require(_0xf831('0x2'))(_0xf831('0x3'));var moment=require(_0xf831('0x4'));var BPromise=require('bluebird');var rp=require(_0xf831('0x5'));var fs=require('fs');var path=require(_0xf831('0x6'));var rimraf=require(_0xf831('0x7'));var config=require('../../config/environment');var attributes=require('./sound.attributes');module['exports']=function(_0x3d2392,_0x40429c){return _0x3d2392[_0xf831('0x8')](_0xf831('0x9'),attributes,{'tableName':_0xf831('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfb7d=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','Sound','tools_sounds','lodash','util','../../config/logger'];(function(_0xf8711c,_0x17a96e){var _0x44c082=function(_0x13fac6){while(--_0x13fac6){_0xf8711c['push'](_0xf8711c['shift']());}};_0x44c082(++_0x17a96e);}(_0xfb7d,0xda));var _0xdfb7=function(_0x53a5c1,_0x2c0211){_0x53a5c1=_0x53a5c1-0x0;var _0x5956a1=_0xfb7d[_0x53a5c1];return _0x5956a1;};'use strict';var _=require(_0xdfb7('0x0'));var util=require(_0xdfb7('0x1'));var logger=require(_0xdfb7('0x2'))(_0xdfb7('0x3'));var moment=require(_0xdfb7('0x4'));var BPromise=require(_0xdfb7('0x5'));var rp=require(_0xdfb7('0x6'));var fs=require('fs');var path=require(_0xdfb7('0x7'));var rimraf=require(_0xdfb7('0x8'));var config=require(_0xdfb7('0x9'));var attributes=require('./sound.attributes');module[_0xdfb7('0xa')]=function(_0x23bf58,_0x58addc){return _0x23bf58['define'](_0xdfb7('0xb'),attributes,{'tableName':_0xdfb7('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x41a5=['bluebird','../../mysqldb','../../config/environment','jayson/promise','client','http','request','then','info','Sound,\x20%s,\x20%s','debug','request\x20sent','error','code','message','result','catch','ShowSound','Sound','find','raw','options','where','include','map','model','attributes','lodash','moment'];(function(_0x18ecae,_0x2bf366){var _0x2fe95b=function(_0x5143a5){while(--_0x5143a5){_0x18ecae['push'](_0x18ecae['shift']());}};_0x2fe95b(++_0x2bf366);}(_0x41a5,0x1ce));var _0x541a=function(_0x5e75eb,_0x393b28){_0x5e75eb=_0x5e75eb-0x0;var _0x3d499d=_0x41a5[_0x5e75eb];return _0x3d499d;};'use strict';var _=require(_0x541a('0x0'));var util=require('util');var moment=require(_0x541a('0x1'));var BPromise=require(_0x541a('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x541a('0x3'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x541a('0x4'));var jayson=require(_0x541a('0x5'));var client=jayson[_0x541a('0x6')][_0x541a('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x5c2ec7,_0x36be5b,_0x1195ef){return new BPromise(function(_0x3b03fc,_0xf96300){return client[_0x541a('0x8')](_0x5c2ec7,_0x1195ef)[_0x541a('0x9')](function(_0x25c1c2){logger[_0x541a('0xa')](_0x541a('0xb'),_0x36be5b,'request\x20sent');logger[_0x541a('0xc')]('Sound,\x20%s,\x20%s,\x20%s',_0x36be5b,_0x541a('0xd'),JSON['stringify'](_0x25c1c2));if(_0x25c1c2[_0x541a('0xe')]){if(_0x25c1c2[_0x541a('0xe')][_0x541a('0xf')]===0x1f4){logger[_0x541a('0xe')]('Sound,\x20%s,\x20%s',_0x36be5b,_0x25c1c2[_0x541a('0xe')][_0x541a('0x10')]);return _0xf96300(_0x25c1c2[_0x541a('0xe')]['message']);}logger['error'](_0x541a('0xb'),_0x36be5b,_0x25c1c2[_0x541a('0xe')][_0x541a('0x10')]);return _0x3b03fc(_0x25c1c2[_0x541a('0xe')][_0x541a('0x10')]);}else{logger['info'](_0x541a('0xb'),_0x36be5b,_0x541a('0xd'));_0x3b03fc(_0x25c1c2[_0x541a('0x11')][_0x541a('0x10')]);}})[_0x541a('0x12')](function(_0x1b5b18){logger[_0x541a('0xe')](_0x541a('0xb'),_0x36be5b,_0x1b5b18);_0xf96300(_0x1b5b18);});});}exports[_0x541a('0x13')]=function(_0x55ab5d){var _0x4f0bfd=this;return new Promise(function(_0x3eed2e,_0x508037){return db[_0x541a('0x14')][_0x541a('0x15')]({'raw':_0x55ab5d['options']?_0x55ab5d['options'][_0x541a('0x16')]===undefined?!![]:![]:!![],'where':_0x55ab5d[_0x541a('0x17')]?_0x55ab5d[_0x541a('0x17')][_0x541a('0x18')]||null:null,'attributes':_0x55ab5d['options']?_0x55ab5d[_0x541a('0x17')]['attributes']||null:null,'include':_0x55ab5d[_0x541a('0x17')]?_0x55ab5d[_0x541a('0x17')][_0x541a('0x19')]?_[_0x541a('0x1a')](_0x55ab5d[_0x541a('0x17')][_0x541a('0x19')],function(_0x2b71f5){return{'model':db[_0x2b71f5[_0x541a('0x1b')]],'as':_0x2b71f5['as'],'attributes':_0x2b71f5[_0x541a('0x1c')],'include':_0x2b71f5[_0x541a('0x19')]?_['map'](_0x2b71f5[_0x541a('0x19')],function(_0x3b2b9f){return{'model':db[_0x3b2b9f['model']],'as':_0x3b2b9f['as'],'attributes':_0x3b2b9f[_0x541a('0x1c')],'include':_0x3b2b9f[_0x541a('0x19')]?_[_0x541a('0x1a')](_0x3b2b9f['include'],function(_0xb219f4){return{'model':db[_0xb219f4['model']],'as':_0xb219f4['as'],'attributes':_0xb219f4['attributes']};}):[]};}):[]};}):[]:[]})[_0x541a('0x9')](function(_0x57ac7d){logger[_0x541a('0xa')](_0x541a('0x13'),_0x55ab5d);logger[_0x541a('0xc')](_0x541a('0x13'),_0x55ab5d,JSON['stringify'](_0x57ac7d));_0x3eed2e(_0x57ac7d);})[_0x541a('0x12')](function(_0xc198b3){logger[_0x541a('0xe')](_0x541a('0x13'),_0xc198b3[_0x541a('0x10')],_0x55ab5d);_0x508037(_0x4f0bfd[_0x541a('0xe')](0x1f4,_0xc198b3['message']));});});};
\ No newline at end of file
+var _0xb863=['util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','then','info','Sound,\x20%s,\x20%s','request\x20sent','debug','Sound,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','Sound','find','options','raw','include','map','model','attributes','ShowSound','lodash'];(function(_0x58efa6,_0x2c00bd){var _0x5d643c=function(_0x1d1ef2){while(--_0x1d1ef2){_0x58efa6['push'](_0x58efa6['shift']());}};_0x5d643c(++_0x2c00bd);}(_0xb863,0x173));var _0x3b86=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0xb863[_0x3ab51d];return _0x29a04e;};'use strict';var _=require(_0x3b86('0x0'));var util=require(_0x3b86('0x1'));var moment=require(_0x3b86('0x2'));var BPromise=require('bluebird');var rs=require(_0x3b86('0x3'));var fs=require('fs');var Redis=require(_0x3b86('0x4'));var db=require(_0x3b86('0x5'))['db'];var utils=require(_0x3b86('0x6'));var logger=require(_0x3b86('0x7'))(_0x3b86('0x8'));var config=require('../../config/environment');var jayson=require(_0x3b86('0x9'));var client=jayson['client'][_0x3b86('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x55a46b,_0x43deb8,_0x539771){return new BPromise(function(_0x5f0245,_0x48a323){return client['request'](_0x55a46b,_0x539771)[_0x3b86('0xb')](function(_0x5b68e2){logger[_0x3b86('0xc')](_0x3b86('0xd'),_0x43deb8,_0x3b86('0xe'));logger[_0x3b86('0xf')](_0x3b86('0x10'),_0x43deb8,_0x3b86('0xe'),JSON['stringify'](_0x5b68e2));if(_0x5b68e2['error']){if(_0x5b68e2['error'][_0x3b86('0x11')]===0x1f4){logger[_0x3b86('0x12')]('Sound,\x20%s,\x20%s',_0x43deb8,_0x5b68e2[_0x3b86('0x12')][_0x3b86('0x13')]);return _0x48a323(_0x5b68e2[_0x3b86('0x12')][_0x3b86('0x13')]);}logger[_0x3b86('0x12')](_0x3b86('0xd'),_0x43deb8,_0x5b68e2[_0x3b86('0x12')][_0x3b86('0x13')]);return _0x5f0245(_0x5b68e2[_0x3b86('0x12')][_0x3b86('0x13')]);}else{logger[_0x3b86('0xc')](_0x3b86('0xd'),_0x43deb8,_0x3b86('0xe'));_0x5f0245(_0x5b68e2[_0x3b86('0x14')][_0x3b86('0x13')]);}})[_0x3b86('0x15')](function(_0x42fba2){logger[_0x3b86('0x12')](_0x3b86('0xd'),_0x43deb8,_0x42fba2);_0x48a323(_0x42fba2);});});}exports['ShowSound']=function(_0x461929){var _0x1d0d9e=this;return new Promise(function(_0x26445c,_0x442ec4){return db[_0x3b86('0x16')][_0x3b86('0x17')]({'raw':_0x461929[_0x3b86('0x18')]?_0x461929['options'][_0x3b86('0x19')]===undefined?!![]:![]:!![],'where':_0x461929[_0x3b86('0x18')]?_0x461929[_0x3b86('0x18')]['where']||null:null,'attributes':_0x461929[_0x3b86('0x18')]?_0x461929[_0x3b86('0x18')]['attributes']||null:null,'include':_0x461929[_0x3b86('0x18')]?_0x461929[_0x3b86('0x18')][_0x3b86('0x1a')]?_[_0x3b86('0x1b')](_0x461929[_0x3b86('0x18')][_0x3b86('0x1a')],function(_0x57c800){return{'model':db[_0x57c800[_0x3b86('0x1c')]],'as':_0x57c800['as'],'attributes':_0x57c800['attributes'],'include':_0x57c800[_0x3b86('0x1a')]?_[_0x3b86('0x1b')](_0x57c800['include'],function(_0x24d2d7){return{'model':db[_0x24d2d7['model']],'as':_0x24d2d7['as'],'attributes':_0x24d2d7[_0x3b86('0x1d')],'include':_0x24d2d7[_0x3b86('0x1a')]?_[_0x3b86('0x1b')](_0x24d2d7[_0x3b86('0x1a')],function(_0x210280){return{'model':db[_0x210280[_0x3b86('0x1c')]],'as':_0x210280['as'],'attributes':_0x210280[_0x3b86('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2ca487){logger[_0x3b86('0xc')](_0x3b86('0x1e'),_0x461929);logger[_0x3b86('0xf')](_0x3b86('0x1e'),_0x461929,JSON['stringify'](_0x2ca487));_0x26445c(_0x2ca487);})[_0x3b86('0x15')](function(_0x3a2de0){logger['error']('ShowSound',_0x3a2de0[_0x3b86('0x13')],_0x461929);_0x442ec4(_0x1d0d9e['error'](0x1f4,_0x3a2de0[_0x3b86('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['./squareMessage.controller','get','index','isAuthenticated','show','post','create','put','/:id','destroy','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x477b5b,_0x57826a){var _0xd233ef=function(_0x55129a){while(--_0x55129a){_0x477b5b['push'](_0x477b5b['shift']());}};_0xd233ef(++_0x57826a);}(_0xb10b,0x12a));var _0xbb10=function(_0x34b57c,_0x97c5c9){_0x34b57c=_0x34b57c-0x0;var _0x2ac76b=_0xb10b[_0x34b57c];return _0x2ac76b;};'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('0xd')]('/',auth[_0xbb10('0xb')](),controller[_0xbb10('0xe')]);router[_0xbb10('0xf')](_0xbb10('0x10'),auth[_0xbb10('0xb')](),controller['update']);router['delete'](_0xbb10('0x10'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x11')]);module['exports']=router;
\ No newline at end of file
+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(_0x2ce6d5,_0x333e0c){var _0x32d272=function(_0x399f0b){while(--_0x399f0b){_0x2ce6d5['push'](_0x2ce6d5['shift']());}};_0x32d272(++_0x333e0c);}(_0x4fc2,0x111));var _0x24fc=function(_0x177e72,_0x28bf32){_0x177e72=_0x177e72-0x0;var _0x392698=_0x4fc2[_0x177e72];return _0x392698;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa04d=['medium','ENUM','out','STRING','TEXT'];(function(_0x366fde,_0x1436f5){var _0xe1cc47=function(_0x3ce064){while(--_0x3ce064){_0x366fde['push'](_0x366fde['shift']());}};_0xe1cc47(++_0x1436f5);}(_0xa04d,0x166));var _0xda04=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xa04d[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require('sequelize');module['exports']={'uniqueid':{'type':Sequelize[_0xda04('0x0')]},'body':{'type':Sequelize[_0xda04('0x1')](_0xda04('0x2')),'allowNull':![]},'direction':{'type':Sequelize[_0xda04('0x3')]('in',_0xda04('0x4')),'defaultValue':_0xda04('0x4'),'allowNull':![]},'providerName':{'type':Sequelize['STRING']},'providerResponse':{'type':Sequelize[_0xda04('0x1')]}};
\ No newline at end of file
+var _0xd7ff=['ENUM','out','STRING','TEXT','sequelize','exports'];(function(_0x4c440b,_0x3ea627){var _0x2d48cf=function(_0x56bac7){while(--_0x56bac7){_0x4c440b['push'](_0x4c440b['shift']());}};_0x2d48cf(++_0x3ea627);}(_0xd7ff,0x1d8));var _0xfd7f=function(_0x51cbc7,_0x70e604){_0x51cbc7=_0x51cbc7-0x0;var _0x1ec150=_0xd7ff[_0x51cbc7];return _0x1ec150;};'use strict';var Sequelize=require(_0xfd7f('0x0'));module[_0xfd7f('0x1')]={'uniqueid':{'type':Sequelize['STRING']},'body':{'type':Sequelize['TEXT']('medium'),'allowNull':![]},'direction':{'type':Sequelize[_0xfd7f('0x2')]('in',_0xfd7f('0x3')),'defaultValue':_0xfd7f('0x3'),'allowNull':![]},'providerName':{'type':Sequelize[_0xfd7f('0x4')]},'providerResponse':{'type':Sequelize[_0xfd7f('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x720f=['json','offset','undefined','count','limit','set','Content-Range','apply','save','then','error','stack','name','send','index','map','rawAttributes','fieldName','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','SquareMessage','includeAll','include','findAll','rows','catch','show','params','keys','create','body','update','destroy','find','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status'];(function(_0x25bea7,_0x49ab45){var _0x175952=function(_0x56a0b5){while(--_0x56a0b5){_0x25bea7['push'](_0x25bea7['shift']());}};_0x175952(++_0x49ab45);}(_0x720f,0x80));var _0xf720=function(_0x3e112d,_0x2bb132){_0x3e112d=_0x3e112d-0x0;var _0x531c31=_0x720f[_0x3e112d];return _0x531c31;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf720('0x0'));var zipdir=require(_0xf720('0x1'));var jsonpatch=require(_0xf720('0x2'));var rp=require(_0xf720('0x3'));var moment=require(_0xf720('0x4'));var BPromise=require(_0xf720('0x5'));var Mustache=require('mustache');var util=require(_0xf720('0x6'));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(_0xf720('0x7'));var _=require('lodash');var squel=require(_0xf720('0x8'));var crypto=require(_0xf720('0x9'));var jsforce=require(_0xf720('0xa'));var deskjs=require(_0xf720('0xb'));var toCsv=require(_0xf720('0xc'));var querystring=require(_0xf720('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xf720('0xe'));var qs=require(_0xf720('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf720('0x10'));var logger=require(_0xf720('0x11'))(_0xf720('0x12'));var utils=require(_0xf720('0x13'));var config=require(_0xf720('0x14'));var licenseUtil=require(_0xf720('0x15'));var db=require(_0xf720('0x16'))['db'];function respondWithStatusCode(_0x126923,_0x2ac51e){_0x2ac51e=_0x2ac51e||0xcc;return function(_0x3df134){if(_0x3df134){return _0x126923[_0xf720('0x17')](_0x2ac51e);}return _0x126923['status'](_0x2ac51e)[_0xf720('0x18')]();};}function respondWithResult(_0x60fe59,_0x58bb61){_0x58bb61=_0x58bb61||0xc8;return function(_0x5a24fe){if(_0x5a24fe){return _0x60fe59[_0xf720('0x19')](_0x58bb61)[_0xf720('0x1a')](_0x5a24fe);}};}function respondWithFilteredResult(_0x57fa87,_0x15ff66){return function(_0xcc9410){if(_0xcc9410){var _0x91f4a6=typeof _0x15ff66[_0xf720('0x1b')]===_0xf720('0x1c')&&typeof _0x15ff66['limit']===_0xf720('0x1c');var _0x447864=_0xcc9410[_0xf720('0x1d')];var _0x3e0771=_0x91f4a6?0x0:_0x15ff66[_0xf720('0x1b')];var _0x323454=_0x91f4a6?_0xcc9410[_0xf720('0x1d')]:_0x15ff66[_0xf720('0x1b')]+_0x15ff66[_0xf720('0x1e')];var _0x3a692c;if(_0x323454>=_0x447864){_0x323454=_0x447864;_0x3a692c=0xc8;}else{_0x3a692c=0xce;}_0x57fa87[_0xf720('0x19')](_0x3a692c);return _0x57fa87[_0xf720('0x1f')](_0xf720('0x20'),_0x3e0771+'-'+_0x323454+'/'+_0x447864)['json'](_0xcc9410);}return null;};}function patchUpdates(_0x268172){return function(_0x218cfc){try{jsonpatch[_0xf720('0x21')](_0x218cfc,_0x268172,!![]);}catch(_0x52d418){return BPromise['reject'](_0x52d418);}return _0x218cfc[_0xf720('0x22')]();};}function saveUpdates(_0x440f2c,_0x5e38ad){return function(_0x84c1f){if(_0x84c1f){return _0x84c1f['update'](_0x440f2c)[_0xf720('0x23')](function(_0x4f7eb4){return _0x4f7eb4;});}return null;};}function removeEntity(_0x45b8e3,_0x47e955){return function(_0x662c13){if(_0x662c13){return _0x662c13['destroy']()['then'](function(){_0x45b8e3[_0xf720('0x19')](0xcc)[_0xf720('0x18')]();});}};}function handleEntityNotFound(_0x1e7cc7,_0x747df6){return function(_0x116c35){if(!_0x116c35){_0x1e7cc7[_0xf720('0x17')](0x194);}return _0x116c35;};}function handleError(_0x292b58,_0x58092c){_0x58092c=_0x58092c||0x1f4;return function(_0x18cf33){logger[_0xf720('0x24')](_0x18cf33[_0xf720('0x25')]);if(_0x18cf33[_0xf720('0x26')]){delete _0x18cf33[_0xf720('0x26')];}_0x292b58[_0xf720('0x19')](_0x58092c)[_0xf720('0x27')](_0x18cf33);};}exports[_0xf720('0x28')]=function(_0x2a615a,_0x14c937){var _0x3f83e4={},_0x3c432e={},_0x3bcaf2={'count':0x0,'rows':[]};var _0x788904=_[_0xf720('0x29')](db['SquareMessage'][_0xf720('0x2a')],function(_0x365f3a){return{'name':_0x365f3a[_0xf720('0x2b')],'type':_0x365f3a['type'][_0xf720('0x2c')]};});_0x3c432e[_0xf720('0x2d')]=_[_0xf720('0x29')](_0x788904,_0xf720('0x26'));_0x3c432e['query']=_['keys'](_0x2a615a[_0xf720('0x2e')]);_0x3c432e[_0xf720('0x2f')]=_[_0xf720('0x30')](_0x3c432e[_0xf720('0x2d')],_0x3c432e[_0xf720('0x2e')]);_0x3f83e4['attributes']=_['intersection'](_0x3c432e[_0xf720('0x2d')],qs[_0xf720('0x31')](_0x2a615a[_0xf720('0x2e')][_0xf720('0x31')]));_0x3f83e4[_0xf720('0x32')]=_0x3f83e4[_0xf720('0x32')][_0xf720('0x33')]?_0x3f83e4[_0xf720('0x32')]:_0x3c432e['model'];if(!_0x2a615a[_0xf720('0x2e')][_0xf720('0x34')](_0xf720('0x35'))){_0x3f83e4[_0xf720('0x1e')]=qs[_0xf720('0x1e')](_0x2a615a[_0xf720('0x2e')][_0xf720('0x1e')]);_0x3f83e4[_0xf720('0x1b')]=qs['offset'](_0x2a615a[_0xf720('0x2e')][_0xf720('0x1b')]);}_0x3f83e4[_0xf720('0x36')]=qs[_0xf720('0x37')](_0x2a615a['query'][_0xf720('0x37')]);_0x3f83e4[_0xf720('0x38')]=qs[_0xf720('0x2f')](_[_0xf720('0x39')](_0x2a615a[_0xf720('0x2e')],_0x3c432e['filters']),_0x788904);if(_0x2a615a['query'][_0xf720('0x3a')]){_0x3f83e4[_0xf720('0x38')]=_[_0xf720('0x3b')](_0x3f83e4[_0xf720('0x38')],{'$or':_[_0xf720('0x29')](_0x788904,function(_0x3ef3ea){if(_0x3ef3ea[_0xf720('0x3c')]!==_0xf720('0x3d')){var _0x14477b={};_0x14477b[_0x3ef3ea[_0xf720('0x26')]]={'$like':'%'+_0x2a615a[_0xf720('0x2e')][_0xf720('0x3a')]+'%'};return _0x14477b;}})});}_0x3f83e4=_[_0xf720('0x3b')]({},_0x3f83e4,_0x2a615a[_0xf720('0x3e')]);var _0x11bcb7={'where':_0x3f83e4['where']};return db[_0xf720('0x3f')]['count'](_0x11bcb7)[_0xf720('0x23')](function(_0x198691){_0x3bcaf2[_0xf720('0x1d')]=_0x198691;if(_0x2a615a[_0xf720('0x2e')][_0xf720('0x40')]){_0x3f83e4[_0xf720('0x41')]=[{'all':!![]}];}return db[_0xf720('0x3f')][_0xf720('0x42')](_0x3f83e4);})[_0xf720('0x23')](function(_0x4e43fd){_0x3bcaf2[_0xf720('0x43')]=_0x4e43fd;return _0x3bcaf2;})['then'](respondWithFilteredResult(_0x14c937,_0x3f83e4))[_0xf720('0x44')](handleError(_0x14c937,null));};exports[_0xf720('0x45')]=function(_0x323116,_0x17bb2b){var _0x45325b={'raw':!![],'where':{'id':_0x323116[_0xf720('0x46')]['id']}},_0x1b20cc={};_0x1b20cc[_0xf720('0x2d')]=_[_0xf720('0x47')](db[_0xf720('0x3f')]['rawAttributes']);_0x1b20cc['query']=_[_0xf720('0x47')](_0x323116[_0xf720('0x2e')]);_0x1b20cc[_0xf720('0x2f')]=_[_0xf720('0x30')](_0x1b20cc[_0xf720('0x2d')],_0x1b20cc['query']);_0x45325b[_0xf720('0x32')]=_['intersection'](_0x1b20cc[_0xf720('0x2d')],qs[_0xf720('0x31')](_0x323116[_0xf720('0x2e')]['fields']));_0x45325b['attributes']=_0x45325b[_0xf720('0x32')]['length']?_0x45325b[_0xf720('0x32')]:_0x1b20cc['model'];if(_0x323116[_0xf720('0x2e')][_0xf720('0x40')]){_0x45325b[_0xf720('0x41')]=[{'all':!![]}];}_0x45325b=_[_0xf720('0x3b')]({},_0x45325b,_0x323116[_0xf720('0x3e')]);return db[_0xf720('0x3f')]['find'](_0x45325b)[_0xf720('0x23')](handleEntityNotFound(_0x17bb2b,null))[_0xf720('0x23')](respondWithResult(_0x17bb2b,null))[_0xf720('0x44')](handleError(_0x17bb2b,null));};exports[_0xf720('0x48')]=function(_0x27250f,_0xb30780){return db[_0xf720('0x3f')]['create'](_0x27250f[_0xf720('0x49')],{})[_0xf720('0x23')](respondWithResult(_0xb30780,0xc9))[_0xf720('0x44')](handleError(_0xb30780,null));};exports[_0xf720('0x4a')]=function(_0x1fca5c,_0x1e00ae){if(_0x1fca5c[_0xf720('0x49')]['id']){delete _0x1fca5c[_0xf720('0x49')]['id'];}return db[_0xf720('0x3f')]['find']({'where':{'id':_0x1fca5c['params']['id']}})['then'](handleEntityNotFound(_0x1e00ae,null))[_0xf720('0x23')](saveUpdates(_0x1fca5c['body'],null))[_0xf720('0x23')](respondWithResult(_0x1e00ae,null))[_0xf720('0x44')](handleError(_0x1e00ae,null));};exports[_0xf720('0x4b')]=function(_0x5dee2e,_0x5dae40){return db['SquareMessage'][_0xf720('0x4c')]({'where':{'id':_0x5dee2e[_0xf720('0x46')]['id']}})[_0xf720('0x23')](handleEntityNotFound(_0x5dae40,null))['then'](removeEntity(_0x5dae40,null))[_0xf720('0x44')](handleError(_0x5dae40,null));};
\ No newline at end of file
+var _0xf65d=['filter','merge','where','VIRTUAL','options','includeAll','rows','show','include','find','catch','create','body','destroy','params','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','apply','save','update','then','sendStatus','stack','name','send','index','map','SquareMessage','rawAttributes','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filters'];(function(_0x80d69e,_0x42590e){var _0x24de00=function(_0x25dadb){while(--_0x25dadb){_0x80d69e['push'](_0x80d69e['shift']());}};_0x24de00(++_0x42590e);}(_0xf65d,0x9f));var _0xdf65=function(_0x49b076,_0x4fb74e){_0x49b076=_0x49b076-0x0;var _0xa3609=_0xf65d[_0x49b076];return _0xa3609;};'use strict';var emlformat=require(_0xdf65('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xdf65('0x1'));var jsonpatch=require(_0xdf65('0x2'));var rp=require(_0xdf65('0x3'));var moment=require(_0xdf65('0x4'));var BPromise=require(_0xdf65('0x5'));var Mustache=require(_0xdf65('0x6'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xdf65('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xdf65('0x8'));var _=require(_0xdf65('0x9'));var squel=require('squel');var crypto=require(_0xdf65('0xa'));var jsforce=require(_0xdf65('0xb'));var deskjs=require(_0xdf65('0xc'));var toCsv=require(_0xdf65('0x7'));var querystring=require(_0xdf65('0xd'));var Papa=require(_0xdf65('0xe'));var Redis=require('ioredis');var authService=require(_0xdf65('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xdf65('0x10'));var hardwareService=require(_0xdf65('0x11'));var logger=require(_0xdf65('0x12'))('api');var utils=require('../../config/utils');var config=require(_0xdf65('0x13'));var licenseUtil=require(_0xdf65('0x14'));var db=require(_0xdf65('0x15'))['db'];function respondWithStatusCode(_0x389a24,_0x20162f){_0x20162f=_0x20162f||0xcc;return function(_0x42cfce){if(_0x42cfce){return _0x389a24['sendStatus'](_0x20162f);}return _0x389a24[_0xdf65('0x16')](_0x20162f)[_0xdf65('0x17')]();};}function respondWithResult(_0x51f281,_0x50de22){_0x50de22=_0x50de22||0xc8;return function(_0x5a0ae1){if(_0x5a0ae1){return _0x51f281[_0xdf65('0x16')](_0x50de22)[_0xdf65('0x18')](_0x5a0ae1);}};}function respondWithFilteredResult(_0x11f0e3,_0x1b6d10){return function(_0x1d6f22){if(_0x1d6f22){var _0x9bcb1c=typeof _0x1b6d10[_0xdf65('0x19')]===_0xdf65('0x1a')&&typeof _0x1b6d10[_0xdf65('0x1b')]===_0xdf65('0x1a');var _0x54e0b2=_0x1d6f22[_0xdf65('0x1c')];var _0x532215=_0x9bcb1c?0x0:_0x1b6d10[_0xdf65('0x19')];var _0x3a175b=_0x9bcb1c?_0x1d6f22[_0xdf65('0x1c')]:_0x1b6d10[_0xdf65('0x19')]+_0x1b6d10[_0xdf65('0x1b')];var _0x30a521;if(_0x3a175b>=_0x54e0b2){_0x3a175b=_0x54e0b2;_0x30a521=0xc8;}else{_0x30a521=0xce;}_0x11f0e3['status'](_0x30a521);return _0x11f0e3[_0xdf65('0x1d')]('Content-Range',_0x532215+'-'+_0x3a175b+'/'+_0x54e0b2)[_0xdf65('0x18')](_0x1d6f22);}return null;};}function patchUpdates(_0x299ed3){return function(_0xd57bc8){try{jsonpatch[_0xdf65('0x1e')](_0xd57bc8,_0x299ed3,!![]);}catch(_0x2042a5){return BPromise['reject'](_0x2042a5);}return _0xd57bc8[_0xdf65('0x1f')]();};}function saveUpdates(_0x326995,_0x5ee78d){return function(_0x45fb5f){if(_0x45fb5f){return _0x45fb5f[_0xdf65('0x20')](_0x326995)[_0xdf65('0x21')](function(_0x12e935){return _0x12e935;});}return null;};}function removeEntity(_0x529bf0,_0x2c6900){return function(_0x2eff40){if(_0x2eff40){return _0x2eff40['destroy']()['then'](function(){_0x529bf0[_0xdf65('0x16')](0xcc)[_0xdf65('0x17')]();});}};}function handleEntityNotFound(_0x3d0aea,_0x59f046){return function(_0x5ea71f){if(!_0x5ea71f){_0x3d0aea[_0xdf65('0x22')](0x194);}return _0x5ea71f;};}function handleError(_0x1c958a,_0x513807){_0x513807=_0x513807||0x1f4;return function(_0x513d12){logger['error'](_0x513d12[_0xdf65('0x23')]);if(_0x513d12['name']){delete _0x513d12[_0xdf65('0x24')];}_0x1c958a['status'](_0x513807)[_0xdf65('0x25')](_0x513d12);};}exports[_0xdf65('0x26')]=function(_0x501b53,_0x2cca76){var _0xe7fbc3={},_0x166060={},_0x220402={'count':0x0,'rows':[]};var _0x41c1d6=_[_0xdf65('0x27')](db[_0xdf65('0x28')][_0xdf65('0x29')],function(_0x5581da){return{'name':_0x5581da['fieldName'],'type':_0x5581da[_0xdf65('0x2a')][_0xdf65('0x2b')]};});_0x166060[_0xdf65('0x2c')]=_['map'](_0x41c1d6,_0xdf65('0x24'));_0x166060['query']=_[_0xdf65('0x2d')](_0x501b53[_0xdf65('0x2e')]);_0x166060['filters']=_[_0xdf65('0x2f')](_0x166060[_0xdf65('0x2c')],_0x166060[_0xdf65('0x2e')]);_0xe7fbc3[_0xdf65('0x30')]=_[_0xdf65('0x2f')](_0x166060[_0xdf65('0x2c')],qs['fields'](_0x501b53['query'][_0xdf65('0x31')]));_0xe7fbc3['attributes']=_0xe7fbc3[_0xdf65('0x30')][_0xdf65('0x32')]?_0xe7fbc3[_0xdf65('0x30')]:_0x166060['model'];if(!_0x501b53[_0xdf65('0x2e')][_0xdf65('0x33')](_0xdf65('0x34'))){_0xe7fbc3[_0xdf65('0x1b')]=qs[_0xdf65('0x1b')](_0x501b53['query'][_0xdf65('0x1b')]);_0xe7fbc3[_0xdf65('0x19')]=qs[_0xdf65('0x19')](_0x501b53['query'][_0xdf65('0x19')]);}_0xe7fbc3[_0xdf65('0x35')]=qs[_0xdf65('0x36')](_0x501b53[_0xdf65('0x2e')][_0xdf65('0x36')]);_0xe7fbc3['where']=qs['filters'](_[_0xdf65('0x37')](_0x501b53[_0xdf65('0x2e')],_0x166060[_0xdf65('0x38')]),_0x41c1d6);if(_0x501b53['query'][_0xdf65('0x39')]){_0xe7fbc3['where']=_[_0xdf65('0x3a')](_0xe7fbc3[_0xdf65('0x3b')],{'$or':_[_0xdf65('0x27')](_0x41c1d6,function(_0x583c87){if(_0x583c87[_0xdf65('0x2a')]!==_0xdf65('0x3c')){var _0x1a1912={};_0x1a1912[_0x583c87[_0xdf65('0x24')]]={'$like':'%'+_0x501b53[_0xdf65('0x2e')][_0xdf65('0x39')]+'%'};return _0x1a1912;}})});}_0xe7fbc3=_[_0xdf65('0x3a')]({},_0xe7fbc3,_0x501b53[_0xdf65('0x3d')]);var _0x596002={'where':_0xe7fbc3[_0xdf65('0x3b')]};return db[_0xdf65('0x28')][_0xdf65('0x1c')](_0x596002)['then'](function(_0x4cc99a){_0x220402[_0xdf65('0x1c')]=_0x4cc99a;if(_0x501b53['query'][_0xdf65('0x3e')]){_0xe7fbc3['include']=[{'all':!![]}];}return db['SquareMessage']['findAll'](_0xe7fbc3);})[_0xdf65('0x21')](function(_0x352e21){_0x220402[_0xdf65('0x3f')]=_0x352e21;return _0x220402;})['then'](respondWithFilteredResult(_0x2cca76,_0xe7fbc3))['catch'](handleError(_0x2cca76,null));};exports[_0xdf65('0x40')]=function(_0x526d32,_0x2bb2fc){var _0x2d3aea={'raw':!![],'where':{'id':_0x526d32['params']['id']}},_0x2e3e35={};_0x2e3e35[_0xdf65('0x2c')]=_['keys'](db[_0xdf65('0x28')][_0xdf65('0x29')]);_0x2e3e35['query']=_[_0xdf65('0x2d')](_0x526d32[_0xdf65('0x2e')]);_0x2e3e35[_0xdf65('0x38')]=_['intersection'](_0x2e3e35[_0xdf65('0x2c')],_0x2e3e35[_0xdf65('0x2e')]);_0x2d3aea[_0xdf65('0x30')]=_[_0xdf65('0x2f')](_0x2e3e35[_0xdf65('0x2c')],qs[_0xdf65('0x31')](_0x526d32[_0xdf65('0x2e')]['fields']));_0x2d3aea[_0xdf65('0x30')]=_0x2d3aea[_0xdf65('0x30')][_0xdf65('0x32')]?_0x2d3aea[_0xdf65('0x30')]:_0x2e3e35[_0xdf65('0x2c')];if(_0x526d32['query']['includeAll']){_0x2d3aea[_0xdf65('0x41')]=[{'all':!![]}];}_0x2d3aea=_[_0xdf65('0x3a')]({},_0x2d3aea,_0x526d32[_0xdf65('0x3d')]);return db[_0xdf65('0x28')][_0xdf65('0x42')](_0x2d3aea)[_0xdf65('0x21')](handleEntityNotFound(_0x2bb2fc,null))[_0xdf65('0x21')](respondWithResult(_0x2bb2fc,null))[_0xdf65('0x43')](handleError(_0x2bb2fc,null));};exports[_0xdf65('0x44')]=function(_0x2f8adf,_0x4ec5d8){return db[_0xdf65('0x28')][_0xdf65('0x44')](_0x2f8adf['body'],{})[_0xdf65('0x21')](respondWithResult(_0x4ec5d8,0xc9))[_0xdf65('0x43')](handleError(_0x4ec5d8,null));};exports[_0xdf65('0x20')]=function(_0x502716,_0x39be69){if(_0x502716[_0xdf65('0x45')]['id']){delete _0x502716[_0xdf65('0x45')]['id'];}return db['SquareMessage'][_0xdf65('0x42')]({'where':{'id':_0x502716['params']['id']}})['then'](handleEntityNotFound(_0x39be69,null))['then'](saveUpdates(_0x502716[_0xdf65('0x45')],null))[_0xdf65('0x21')](respondWithResult(_0x39be69,null))['catch'](handleError(_0x39be69,null));};exports[_0xdf65('0x46')]=function(_0x2f4c75,_0x2ff5fe){return db['SquareMessage'][_0xdf65('0x42')]({'where':{'id':_0x2f4c75[_0xdf65('0x47')]['id']}})[_0xdf65('0x21')](handleEntityNotFound(_0x2ff5fe,null))[_0xdf65('0x21')](removeEntity(_0x2ff5fe,null))['catch'](handleError(_0x2ff5fe,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e1f=['api','moment','bluebird','request-promise','rimraf','../../config/environment','./squareMessage.attributes','define','SquareMessage','square_messages','lodash','util','../../config/logger'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x4e1f,0x1b7));var _0xf4e1=function(_0x198be1,_0x53622b){_0x198be1=_0x198be1-0x0;var _0x2852e9=_0x4e1f[_0x198be1];return _0x2852e9;};'use strict';var _=require(_0xf4e1('0x0'));var util=require(_0xf4e1('0x1'));var logger=require(_0xf4e1('0x2'))(_0xf4e1('0x3'));var moment=require(_0xf4e1('0x4'));var BPromise=require(_0xf4e1('0x5'));var rp=require(_0xf4e1('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xf4e1('0x7'));var config=require(_0xf4e1('0x8'));var attributes=require(_0xf4e1('0x9'));module['exports']=function(_0x4abb43,_0x49065b){return _0x4abb43[_0xf4e1('0xa')](_0xf4e1('0xb'),attributes,{'tableName':_0xf4e1('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4c2a=['./squareMessage.attributes','SquareMessage','lodash','bluebird','path','../../config/environment'];(function(_0x50b93e,_0xa152a9){var _0x20d71e=function(_0x3fcf4c){while(--_0x3fcf4c){_0x50b93e['push'](_0x50b93e['shift']());}};_0x20d71e(++_0xa152a9);}(_0x4c2a,0x68));var _0xa4c2=function(_0x2aa31e,_0x440880){_0x2aa31e=_0x2aa31e-0x0;var _0x2dc758=_0x4c2a[_0x2aa31e];return _0x2dc758;};'use strict';var _=require(_0xa4c2('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0xa4c2('0x1'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xa4c2('0x2'));var rimraf=require('rimraf');var config=require(_0xa4c2('0x3'));var attributes=require(_0xa4c2('0x4'));module['exports']=function(_0x1b5a3,_0x28f55b){return _0x1b5a3['define'](_0xa4c2('0x5'),attributes,{'tableName':'square_messages','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ace=['SquareMessage,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','SquareMessage','create','body','options','raw','CreateSquareMessage','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','client','http','then','info'];(function(_0x5d8ac6,_0x1edb07){var _0x415283=function(_0x4383d4){while(--_0x4383d4){_0x5d8ac6['push'](_0x5d8ac6['shift']());}};_0x415283(++_0x1edb07);}(_0x8ace,0xcc));var _0xe8ac=function(_0x3b0b05,_0x425360){_0x3b0b05=_0x3b0b05-0x0;var _0x5ef8f5=_0x8ace[_0x3b0b05];return _0x5ef8f5;};'use strict';var _=require(_0xe8ac('0x0'));var util=require(_0xe8ac('0x1'));var moment=require(_0xe8ac('0x2'));var BPromise=require('bluebird');var rs=require(_0xe8ac('0x3'));var fs=require('fs');var Redis=require(_0xe8ac('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xe8ac('0x5'));var logger=require(_0xe8ac('0x6'))(_0xe8ac('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xe8ac('0x8')][_0xe8ac('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x120c43,_0xdc7267,_0x2157ed){return new BPromise(function(_0x3f72ce,_0x3e257f){return client['request'](_0x120c43,_0x2157ed)[_0xe8ac('0xa')](function(_0x3ad36b){logger[_0xe8ac('0xb')](_0xe8ac('0xc'),_0xdc7267,'request\x20sent');logger[_0xe8ac('0xd')]('SquareMessage,\x20%s,\x20%s,\x20%s',_0xdc7267,_0xe8ac('0xe'),JSON[_0xe8ac('0xf')](_0x3ad36b));if(_0x3ad36b[_0xe8ac('0x10')]){if(_0x3ad36b[_0xe8ac('0x10')][_0xe8ac('0x11')]===0x1f4){logger[_0xe8ac('0x10')](_0xe8ac('0xc'),_0xdc7267,_0x3ad36b[_0xe8ac('0x10')][_0xe8ac('0x12')]);return _0x3e257f(_0x3ad36b['error'][_0xe8ac('0x12')]);}logger[_0xe8ac('0x10')]('SquareMessage,\x20%s,\x20%s',_0xdc7267,_0x3ad36b[_0xe8ac('0x10')][_0xe8ac('0x12')]);return _0x3f72ce(_0x3ad36b['error'][_0xe8ac('0x12')]);}else{logger[_0xe8ac('0xb')](_0xe8ac('0xc'),_0xdc7267,_0xe8ac('0xe'));_0x3f72ce(_0x3ad36b[_0xe8ac('0x13')][_0xe8ac('0x12')]);}})[_0xe8ac('0x14')](function(_0x68fe58){logger[_0xe8ac('0x10')](_0xe8ac('0xc'),_0xdc7267,_0x68fe58);_0x3e257f(_0x68fe58);});});}exports['CreateSquareMessage']=function(_0x2bae6b){var _0x309b09=this;return new Promise(function(_0x26ab87,_0x135884){return db[_0xe8ac('0x15')][_0xe8ac('0x16')](_0x2bae6b[_0xe8ac('0x17')],{'raw':_0x2bae6b[_0xe8ac('0x18')]?_0x2bae6b[_0xe8ac('0x18')][_0xe8ac('0x19')]===undefined?!![]:![]:!![]})[_0xe8ac('0xa')](function(_0x1047f2){logger['info'](_0xe8ac('0x1a'),_0x2bae6b);logger[_0xe8ac('0xd')](_0xe8ac('0x1a'),_0x2bae6b,JSON['stringify'](_0x1047f2));_0x26ab87(_0x1047f2);})[_0xe8ac('0x14')](function(_0xff71a4){logger[_0xe8ac('0x10')](_0xe8ac('0x1a'),_0xff71a4[_0xe8ac('0x12')],_0x2bae6b);_0x135884(_0x309b09[_0xe8ac('0x10')](0x1f4,_0xff71a4['message']));});});};
\ No newline at end of file
+var _0x37d5=['request\x20sent','debug','stringify','error','code','message','result','CreateSquareMessage','body','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','then','info','SquareMessage,\x20%s,\x20%s'];(function(_0x598a9b,_0x2daa83){var _0x547372=function(_0x5966bf){while(--_0x5966bf){_0x598a9b['push'](_0x598a9b['shift']());}};_0x547372(++_0x2daa83);}(_0x37d5,0x11d));var _0x537d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x37d5[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x537d('0x0'));var util=require('util');var moment=require(_0x537d('0x1'));var BPromise=require(_0x537d('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x537d('0x3'));var db=require(_0x537d('0x4'))['db'];var utils=require(_0x537d('0x5'));var logger=require(_0x537d('0x6'))(_0x537d('0x7'));var config=require('../../config/environment');var jayson=require(_0x537d('0x8'));var client=jayson[_0x537d('0x9')][_0x537d('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1a34a6,_0x313565,_0x18e8db){return new BPromise(function(_0x574fd3,_0x11fa32){return client['request'](_0x1a34a6,_0x18e8db)[_0x537d('0xb')](function(_0x3d4c15){logger[_0x537d('0xc')](_0x537d('0xd'),_0x313565,_0x537d('0xe'));logger[_0x537d('0xf')]('SquareMessage,\x20%s,\x20%s,\x20%s',_0x313565,_0x537d('0xe'),JSON[_0x537d('0x10')](_0x3d4c15));if(_0x3d4c15[_0x537d('0x11')]){if(_0x3d4c15['error'][_0x537d('0x12')]===0x1f4){logger[_0x537d('0x11')]('SquareMessage,\x20%s,\x20%s',_0x313565,_0x3d4c15['error'][_0x537d('0x13')]);return _0x11fa32(_0x3d4c15[_0x537d('0x11')][_0x537d('0x13')]);}logger['error'](_0x537d('0xd'),_0x313565,_0x3d4c15[_0x537d('0x11')][_0x537d('0x13')]);return _0x574fd3(_0x3d4c15[_0x537d('0x11')][_0x537d('0x13')]);}else{logger[_0x537d('0xc')](_0x537d('0xd'),_0x313565,'request\x20sent');_0x574fd3(_0x3d4c15[_0x537d('0x14')][_0x537d('0x13')]);}})['catch'](function(_0x858638){logger[_0x537d('0x11')](_0x537d('0xd'),_0x313565,_0x858638);_0x11fa32(_0x858638);});});}exports[_0x537d('0x15')]=function(_0x53f26d){var _0x2132a3=this;return new Promise(function(_0x31c315,_0x5f48ea){return db['SquareMessage']['create'](_0x53f26d[_0x537d('0x16')],{'raw':_0x53f26d['options']?_0x53f26d['options']['raw']===undefined?!![]:![]:!![]})[_0x537d('0xb')](function(_0x246eaa){logger[_0x537d('0xc')](_0x537d('0x15'),_0x53f26d);logger['debug'](_0x537d('0x15'),_0x53f26d,JSON[_0x537d('0x10')](_0x246eaa));_0x31c315(_0x246eaa);})['catch'](function(_0x492d64){logger[_0x537d('0x11')](_0x537d('0x15'),_0x492d64[_0x537d('0x13')],_0x53f26d);_0x5f48ea(_0x2132a3[_0x537d('0x11')](0x1f4,_0x492d64[_0x537d('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33db=['connect-timeout','express','Router','fs-extra','../../components/interaction/service','./squareOdbc.controller','get','/:id','show','/:id/test','isAuthenticated','15s','test','post','create','put','update','delete','destroy','multer','util'];(function(_0x5b6375,_0x563718){var _0x4045b4=function(_0x314db8){while(--_0x314db8){_0x5b6375['push'](_0x5b6375['shift']());}};_0x4045b4(++_0x563718);}(_0x33db,0x1b7));var _0xb33d=function(_0xd13171,_0xc54453){_0xd13171=_0xd13171-0x0;var _0x452bd0=_0x33db[_0xd13171];return _0x452bd0;};'use strict';var multer=require(_0xb33d('0x0'));var util=require(_0xb33d('0x1'));var path=require('path');var timeout=require(_0xb33d('0x2'));var express=require(_0xb33d('0x3'));var router=express[_0xb33d('0x4')]();var fs_extra=require(_0xb33d('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xb33d('0x6'));var config=require('../../config/environment');var controller=require(_0xb33d('0x7'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0xb33d('0x8')](_0xb33d('0x9'),auth['isAuthenticated'](),controller[_0xb33d('0xa')]);router[_0xb33d('0x8')](_0xb33d('0xb'),auth[_0xb33d('0xc')](),timeout(_0xb33d('0xd')),controller[_0xb33d('0xe')]);router[_0xb33d('0xf')]('/',auth[_0xb33d('0xc')](),controller[_0xb33d('0x10')]);router[_0xb33d('0x11')](_0xb33d('0x9'),auth['isAuthenticated'](),controller[_0xb33d('0x12')]);router[_0xb33d('0x13')](_0xb33d('0x9'),auth[_0xb33d('0xc')](),controller[_0xb33d('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x9413=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareOdbc.controller','get','/:id','isAuthenticated','15s','test','post','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express'];(function(_0x4a4b2c,_0xd56092){var _0x52f2d9=function(_0x540e50){while(--_0x540e50){_0x4a4b2c['push'](_0x4a4b2c['shift']());}};_0x52f2d9(++_0xd56092);}(_0x9413,0x8e));var _0x3941=function(_0x164760,_0x5874b0){_0x164760=_0x164760-0x0;var _0x8b91b2=_0x9413[_0x164760];return _0x8b91b2;};'use strict';var multer=require(_0x3941('0x0'));var util=require(_0x3941('0x1'));var path=require(_0x3941('0x2'));var timeout=require(_0x3941('0x3'));var express=require(_0x3941('0x4'));var router=express[_0x3941('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x3941('0x6'));var interaction=require(_0x3941('0x7'));var config=require(_0x3941('0x8'));var controller=require(_0x3941('0x9'));router[_0x3941('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0x3941('0xa')](_0x3941('0xb'),auth[_0x3941('0xc')](),controller['show']);router['get']('/:id/test',auth[_0x3941('0xc')](),timeout(_0x3941('0xd')),controller[_0x3941('0xe')]);router[_0x3941('0xf')]('/',auth[_0x3941('0xc')](),controller['create']);router[_0x3941('0x10')](_0x3941('0xb'),auth['isAuthenticated'](),controller[_0x3941('0x11')]);router[_0x3941('0x12')]('/:id',auth['isAuthenticated'](),controller[_0x3941('0x13')]);module[_0x3941('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb970=['name','STRING','sequelize','exports'];(function(_0x12387b,_0x316ea7){var _0x5d756a=function(_0x12fc59){while(--_0x12fc59){_0x12387b['push'](_0x12387b['shift']());}};_0x5d756a(++_0x316ea7);}(_0xb970,0xae));var _0x0b97=function(_0x3ab928,_0x2b990b){_0x3ab928=_0x3ab928-0x0;var _0xf47692=_0xb970[_0x3ab928];return _0xf47692;};'use strict';var Sequelize=require(_0x0b97('0x0'));module[_0x0b97('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x0b97('0x2'),'allowNull':![]},'dsn':{'type':Sequelize[_0x0b97('0x3')]},'description':{'type':Sequelize[_0x0b97('0x3')]}};
\ No newline at end of file
+var _0xe8f8=['sequelize','STRING'];(function(_0x3f8b16,_0x1fb61f){var _0x76f5a7=function(_0x2204fa){while(--_0x2204fa){_0x3f8b16['push'](_0x3f8b16['shift']());}};_0x76f5a7(++_0x1fb61f);}(_0xe8f8,0x1da));var _0x8e8f=function(_0x39fd3a,_0x3f57b7){_0x39fd3a=_0x39fd3a-0x0;var _0x674f3c=_0xe8f8[_0x39fd3a];return _0x674f3c;};'use strict';var Sequelize=require(_0x8e8f('0x0'));module['exports']={'name':{'type':Sequelize[_0x8e8f('0x1')],'unique':'name','allowNull':![]},'dsn':{'type':Sequelize[_0x8e8f('0x1')]},'description':{'type':Sequelize[_0x8e8f('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x99b0=['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/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','status','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','get','ODBC','end','sendStatus','error','stack','name','send','map','SquareOdbc','rawAttributes','fieldName','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','order','where','merge','type','VIRTUAL','filter','options','findAll','rows','params','keys','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','test','dsn','odbc','openSync','closeSync'];(function(_0x57d370,_0x3ed0f6){var _0x550fd2=function(_0x59634f){while(--_0x59634f){_0x57d370['push'](_0x57d370['shift']());}};_0x550fd2(++_0x3ed0f6);}(_0x99b0,0x1a4));var _0x099b=function(_0x286e7a,_0x462fc4){_0x286e7a=_0x286e7a-0x0;var _0xc9ff6d=_0x99b0[_0x286e7a];return _0xc9ff6d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x099b('0x0'));var zipdir=require(_0x099b('0x1'));var jsonpatch=require(_0x099b('0x2'));var rp=require(_0x099b('0x3'));var moment=require(_0x099b('0x4'));var BPromise=require(_0x099b('0x5'));var Mustache=require(_0x099b('0x6'));var util=require('util');var path=require('path');var sox=require(_0x099b('0x7'));var csv=require(_0x099b('0x8'));var ejs=require(_0x099b('0x9'));var fs=require('fs');var fs_extra=require(_0x099b('0xa'));var _=require(_0x099b('0xb'));var squel=require(_0x099b('0xc'));var crypto=require('crypto');var jsforce=require(_0x099b('0xd'));var deskjs=require(_0x099b('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x099b('0xf'));var Redis=require(_0x099b('0x10'));var authService=require(_0x099b('0x11'));var qs=require(_0x099b('0x12'));var as=require(_0x099b('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x099b('0x14'))(_0x099b('0x15'));var utils=require(_0x099b('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5bed1b,_0x10a9be){_0x10a9be=_0x10a9be||0xcc;return function(_0x374fcd){if(_0x374fcd){return _0x5bed1b['sendStatus'](_0x10a9be);}return _0x5bed1b[_0x099b('0x17')](_0x10a9be)['end']();};}function respondWithResult(_0x8d5b99,_0x5d6625){_0x5d6625=_0x5d6625||0xc8;return function(_0x35a179){if(_0x35a179){return _0x8d5b99[_0x099b('0x17')](_0x5d6625)[_0x099b('0x18')](_0x35a179);}};}function respondWithFilteredResult(_0x108bc0,_0x464731){return function(_0x1615ea){if(_0x1615ea){var _0x5d04bb=typeof _0x464731[_0x099b('0x19')]===_0x099b('0x1a')&&typeof _0x464731['limit']===_0x099b('0x1a');var _0xc3c8ae=_0x1615ea[_0x099b('0x1b')];var _0x1c8cda=_0x5d04bb?0x0:_0x464731[_0x099b('0x19')];var _0xceadbc=_0x5d04bb?_0x1615ea[_0x099b('0x1b')]:_0x464731[_0x099b('0x19')]+_0x464731[_0x099b('0x1c')];var _0x84faf5;if(_0xceadbc>=_0xc3c8ae){_0xceadbc=_0xc3c8ae;_0x84faf5=0xc8;}else{_0x84faf5=0xce;}_0x108bc0['status'](_0x84faf5);return _0x108bc0[_0x099b('0x1d')](_0x099b('0x1e'),_0x1c8cda+'-'+_0xceadbc+'/'+_0xc3c8ae)[_0x099b('0x18')](_0x1615ea);}return null;};}function patchUpdates(_0xe28f69){return function(_0x410637){try{jsonpatch['apply'](_0x410637,_0xe28f69,!![]);}catch(_0x4f876e){return BPromise[_0x099b('0x1f')](_0x4f876e);}return _0x410637[_0x099b('0x20')]();};}function saveUpdates(_0x4532df,_0x3e2035){return function(_0x1263bc){if(_0x1263bc){return _0x1263bc[_0x099b('0x21')](_0x4532df)[_0x099b('0x22')](function(_0x2d3644){return _0x2d3644;});}return null;};}function removeEntity(_0x3772d0,_0x37b236){return function(_0x23c83f){if(_0x23c83f){return _0x23c83f['destroy']()[_0x099b('0x22')](function(){var _0x15bf1b=_0x23c83f[_0x099b('0x23')]({'plain':!![]});var _0x5b44d3=_0x099b('0x24');return db['UserProfileResource']['destroy']({'where':{'type':_0x5b44d3,'resourceId':_0x15bf1b['id']}})[_0x099b('0x22')](function(){return _0x23c83f;});})[_0x099b('0x22')](function(){_0x3772d0[_0x099b('0x17')](0xcc)[_0x099b('0x25')]();});}};}function handleEntityNotFound(_0x429fa8,_0x2b0377){return function(_0x2da0e4){if(!_0x2da0e4){_0x429fa8[_0x099b('0x26')](0x194);}return _0x2da0e4;};}function handleError(_0x2621f7,_0x2e134f){_0x2e134f=_0x2e134f||0x1f4;return function(_0x42b245){logger[_0x099b('0x27')](_0x42b245[_0x099b('0x28')]);if(_0x42b245[_0x099b('0x29')]){delete _0x42b245[_0x099b('0x29')];}_0x2621f7[_0x099b('0x17')](_0x2e134f)[_0x099b('0x2a')](_0x42b245);};}exports['index']=function(_0x102847,_0x33ddac){var _0x365a00={},_0x4c8e4b={},_0x13ce39={'count':0x0,'rows':[]};var _0x2e4050=_[_0x099b('0x2b')](db[_0x099b('0x2c')][_0x099b('0x2d')],function(_0x369644){return{'name':_0x369644[_0x099b('0x2e')],'type':_0x369644['type'][_0x099b('0x2f')]};});_0x4c8e4b[_0x099b('0x30')]=_[_0x099b('0x2b')](_0x2e4050,_0x099b('0x29'));_0x4c8e4b[_0x099b('0x31')]=_['keys'](_0x102847[_0x099b('0x31')]);_0x4c8e4b[_0x099b('0x32')]=_['intersection'](_0x4c8e4b[_0x099b('0x30')],_0x4c8e4b[_0x099b('0x31')]);_0x365a00[_0x099b('0x33')]=_[_0x099b('0x34')](_0x4c8e4b[_0x099b('0x30')],qs[_0x099b('0x35')](_0x102847[_0x099b('0x31')][_0x099b('0x35')]));_0x365a00[_0x099b('0x33')]=_0x365a00['attributes'][_0x099b('0x36')]?_0x365a00[_0x099b('0x33')]:_0x4c8e4b[_0x099b('0x30')];if(!_0x102847[_0x099b('0x31')][_0x099b('0x37')]('nolimit')){_0x365a00[_0x099b('0x1c')]=qs[_0x099b('0x1c')](_0x102847[_0x099b('0x31')][_0x099b('0x1c')]);_0x365a00[_0x099b('0x19')]=qs[_0x099b('0x19')](_0x102847[_0x099b('0x31')][_0x099b('0x19')]);}_0x365a00[_0x099b('0x38')]=qs['sort'](_0x102847[_0x099b('0x31')]['sort']);_0x365a00[_0x099b('0x39')]=qs['filters'](_['pick'](_0x102847['query'],_0x4c8e4b['filters']),_0x2e4050);if(_0x102847['query']['filter']){_0x365a00['where']=_[_0x099b('0x3a')](_0x365a00[_0x099b('0x39')],{'$or':_[_0x099b('0x2b')](_0x2e4050,function(_0x50f738){if(_0x50f738[_0x099b('0x3b')]!==_0x099b('0x3c')){var _0x1ec29c={};_0x1ec29c[_0x50f738[_0x099b('0x29')]]={'$like':'%'+_0x102847[_0x099b('0x31')][_0x099b('0x3d')]+'%'};return _0x1ec29c;}})});}_0x365a00=_[_0x099b('0x3a')]({},_0x365a00,_0x102847[_0x099b('0x3e')]);var _0x559ef9={'where':_0x365a00['where']};return db[_0x099b('0x2c')][_0x099b('0x1b')](_0x559ef9)[_0x099b('0x22')](function(_0x556f94){_0x13ce39['count']=_0x556f94;if(_0x102847[_0x099b('0x31')]['includeAll']){_0x365a00['include']=[{'all':!![]}];}return db[_0x099b('0x2c')][_0x099b('0x3f')](_0x365a00);})[_0x099b('0x22')](function(_0xcf8ed4){_0x13ce39[_0x099b('0x40')]=_0xcf8ed4;return _0x13ce39;})[_0x099b('0x22')](respondWithFilteredResult(_0x33ddac,_0x365a00))['catch'](handleError(_0x33ddac,null));};exports['show']=function(_0x5500d3,_0x3e3ccd){var _0x290609={'raw':!![],'where':{'id':_0x5500d3[_0x099b('0x41')]['id']}},_0x19da51={};_0x19da51[_0x099b('0x30')]=_[_0x099b('0x42')](db['SquareOdbc'][_0x099b('0x2d')]);_0x19da51['query']=_['keys'](_0x5500d3[_0x099b('0x31')]);_0x19da51['filters']=_[_0x099b('0x34')](_0x19da51[_0x099b('0x30')],_0x19da51[_0x099b('0x31')]);_0x290609['attributes']=_[_0x099b('0x34')](_0x19da51[_0x099b('0x30')],qs['fields'](_0x5500d3[_0x099b('0x31')][_0x099b('0x35')]));_0x290609[_0x099b('0x33')]=_0x290609['attributes'][_0x099b('0x36')]?_0x290609['attributes']:_0x19da51[_0x099b('0x30')];if(_0x5500d3[_0x099b('0x31')]['includeAll']){_0x290609['include']=[{'all':!![]}];}_0x290609=_[_0x099b('0x3a')]({},_0x290609,_0x5500d3[_0x099b('0x3e')]);return db['SquareOdbc'][_0x099b('0x43')](_0x290609)['then'](handleEntityNotFound(_0x3e3ccd,null))[_0x099b('0x22')](respondWithResult(_0x3e3ccd,null))[_0x099b('0x44')](handleError(_0x3e3ccd,null));};exports[_0x099b('0x45')]=function(_0x32ebf3,_0x5bfaee){return db[_0x099b('0x2c')][_0x099b('0x45')](_0x32ebf3[_0x099b('0x46')],{})['then'](function(_0x4b6439){var _0x2b7c94=_0x32ebf3[_0x099b('0x47')][_0x099b('0x23')]({'plain':!![]});if(!_0x2b7c94)throw new Error(_0x099b('0x48'));if(_0x2b7c94[_0x099b('0x49')]===_0x099b('0x47')){var _0x1bc7f5=_0x4b6439[_0x099b('0x23')]({'plain':!![]});var _0x3aa6f7=_0x099b('0x24');return db[_0x099b('0x4a')][_0x099b('0x43')]({'where':{'name':_0x3aa6f7,'userProfileId':_0x2b7c94['userProfileId']},'raw':!![]})[_0x099b('0x22')](function(_0x504d9d){if(_0x504d9d&&_0x504d9d[_0x099b('0x4b')]===0x0){return db[_0x099b('0x4c')][_0x099b('0x45')]({'name':_0x1bc7f5['name'],'resourceId':_0x1bc7f5['id'],'type':_0x504d9d[_0x099b('0x29')],'sectionId':_0x504d9d['id']},{})[_0x099b('0x22')](function(){return _0x4b6439;});}else{return _0x4b6439;}})[_0x099b('0x44')](function(_0x193d5a){logger['error'](_0x099b('0x4d'),_0x193d5a);throw _0x193d5a;});}return _0x4b6439;})[_0x099b('0x22')](respondWithResult(_0x5bfaee,0xc9))[_0x099b('0x44')](handleError(_0x5bfaee,null));};exports[_0x099b('0x21')]=function(_0x2dfc33,_0x176517){if(_0x2dfc33['body']['id']){delete _0x2dfc33[_0x099b('0x46')]['id'];}return db['SquareOdbc'][_0x099b('0x43')]({'where':{'id':_0x2dfc33[_0x099b('0x41')]['id']}})['then'](handleEntityNotFound(_0x176517,null))[_0x099b('0x22')](saveUpdates(_0x2dfc33[_0x099b('0x46')],null))['then'](respondWithResult(_0x176517,null))[_0x099b('0x44')](handleError(_0x176517,null));};exports[_0x099b('0x4e')]=function(_0x2bedce,_0x8f91a0){return db[_0x099b('0x2c')][_0x099b('0x43')]({'where':{'id':_0x2bedce[_0x099b('0x41')]['id']}})[_0x099b('0x22')](handleEntityNotFound(_0x8f91a0,null))['then'](removeEntity(_0x8f91a0,null))['catch'](handleError(_0x8f91a0,null));};exports[_0x099b('0x4f')]=function(_0x25415e,_0x130648,_0x44d0d6){var _0x207815;return db[_0x099b('0x2c')][_0x099b('0x43')]({'where':{'id':_0x25415e[_0x099b('0x41')]['id']},'attributes':['id',_0x099b('0x50')]})[_0x099b('0x22')](handleEntityNotFound(_0x130648,null))[_0x099b('0x22')](function(_0x3c5690){if(_0x3c5690){var _0x54159d=require(_0x099b('0x51'))();_0x54159d[_0x099b('0x52')](_0x3c5690[_0x099b('0x50')]);_0x54159d[_0x099b('0x53')]();return _0x3c5690;}})[_0x099b('0x22')](respondWithResult(_0x130648,null))['catch'](handleError(_0x130648,null));};
\ No newline at end of file
+var _0xbb01=['options','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','test','dsn','odbc','openSync','closeSync','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','get','ODBC','error','name','send','index','map','SquareOdbc','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','order','sort','where','pick','filter','merge','VIRTUAL'];(function(_0x312ae4,_0x4a50db){var _0x52154d=function(_0x43215b){while(--_0x43215b){_0x312ae4['push'](_0x312ae4['shift']());}};_0x52154d(++_0x4a50db);}(_0xbb01,0x6c));var _0x1bb0=function(_0x5c6244,_0x112ab8){_0x5c6244=_0x5c6244-0x0;var _0x5800ce=_0xbb01[_0x5c6244];return _0x5800ce;};'use strict';var emlformat=require(_0x1bb0('0x0'));var rimraf=require(_0x1bb0('0x1'));var zipdir=require(_0x1bb0('0x2'));var jsonpatch=require(_0x1bb0('0x3'));var rp=require('request-promise');var moment=require(_0x1bb0('0x4'));var BPromise=require(_0x1bb0('0x5'));var Mustache=require(_0x1bb0('0x6'));var util=require(_0x1bb0('0x7'));var path=require(_0x1bb0('0x8'));var sox=require(_0x1bb0('0x9'));var csv=require(_0x1bb0('0xa'));var ejs=require(_0x1bb0('0xb'));var fs=require('fs');var fs_extra=require(_0x1bb0('0xc'));var _=require('lodash');var squel=require(_0x1bb0('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x1bb0('0xe'));var toCsv=require(_0x1bb0('0xa'));var querystring=require(_0x1bb0('0xf'));var Papa=require(_0x1bb0('0x10'));var Redis=require('ioredis');var authService=require(_0x1bb0('0x11'));var qs=require(_0x1bb0('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1bb0('0x13'));var logger=require('../../config/logger')(_0x1bb0('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x491688,_0x2b57db){_0x2b57db=_0x2b57db||0xcc;return function(_0x2bf4f6){if(_0x2bf4f6){return _0x491688[_0x1bb0('0x15')](_0x2b57db);}return _0x491688[_0x1bb0('0x16')](_0x2b57db)[_0x1bb0('0x17')]();};}function respondWithResult(_0x5d84f3,_0x30d91e){_0x30d91e=_0x30d91e||0xc8;return function(_0x3dd3f6){if(_0x3dd3f6){return _0x5d84f3[_0x1bb0('0x16')](_0x30d91e)[_0x1bb0('0x18')](_0x3dd3f6);}};}function respondWithFilteredResult(_0x31a5d3,_0x54240f){return function(_0x48321f){if(_0x48321f){var _0xef436c=typeof _0x54240f['offset']==='undefined'&&typeof _0x54240f[_0x1bb0('0x19')]===_0x1bb0('0x1a');var _0x466c1d=_0x48321f[_0x1bb0('0x1b')];var _0x37fef6=_0xef436c?0x0:_0x54240f[_0x1bb0('0x1c')];var _0x74dc61=_0xef436c?_0x48321f[_0x1bb0('0x1b')]:_0x54240f[_0x1bb0('0x1c')]+_0x54240f[_0x1bb0('0x19')];var _0x4fa210;if(_0x74dc61>=_0x466c1d){_0x74dc61=_0x466c1d;_0x4fa210=0xc8;}else{_0x4fa210=0xce;}_0x31a5d3[_0x1bb0('0x16')](_0x4fa210);return _0x31a5d3[_0x1bb0('0x1d')](_0x1bb0('0x1e'),_0x37fef6+'-'+_0x74dc61+'/'+_0x466c1d)[_0x1bb0('0x18')](_0x48321f);}return null;};}function patchUpdates(_0x56368d){return function(_0x253087){try{jsonpatch[_0x1bb0('0x1f')](_0x253087,_0x56368d,!![]);}catch(_0x2609a3){return BPromise[_0x1bb0('0x20')](_0x2609a3);}return _0x253087[_0x1bb0('0x21')]();};}function saveUpdates(_0x55d227,_0xffa8dc){return function(_0x3531a9){if(_0x3531a9){return _0x3531a9[_0x1bb0('0x22')](_0x55d227)[_0x1bb0('0x23')](function(_0x5c3593){return _0x5c3593;});}return null;};}function removeEntity(_0x26f618,_0x4f260b){return function(_0x54a8fc){if(_0x54a8fc){return _0x54a8fc[_0x1bb0('0x24')]()[_0x1bb0('0x23')](function(){var _0x4e472c=_0x54a8fc[_0x1bb0('0x25')]({'plain':!![]});var _0x51dcf0=_0x1bb0('0x26');return db['UserProfileResource']['destroy']({'where':{'type':_0x51dcf0,'resourceId':_0x4e472c['id']}})['then'](function(){return _0x54a8fc;});})[_0x1bb0('0x23')](function(){_0x26f618[_0x1bb0('0x16')](0xcc)[_0x1bb0('0x17')]();});}};}function handleEntityNotFound(_0x12f1e9,_0x1fa61e){return function(_0x32c9f8){if(!_0x32c9f8){_0x12f1e9[_0x1bb0('0x15')](0x194);}return _0x32c9f8;};}function handleError(_0x231622,_0x253535){_0x253535=_0x253535||0x1f4;return function(_0x10c4df){logger[_0x1bb0('0x27')](_0x10c4df['stack']);if(_0x10c4df[_0x1bb0('0x28')]){delete _0x10c4df[_0x1bb0('0x28')];}_0x231622[_0x1bb0('0x16')](_0x253535)[_0x1bb0('0x29')](_0x10c4df);};}exports[_0x1bb0('0x2a')]=function(_0x44d683,_0x22bb47){var _0x4def19={},_0x4a16bd={},_0x4f2b40={'count':0x0,'rows':[]};var _0x246928=_[_0x1bb0('0x2b')](db[_0x1bb0('0x2c')][_0x1bb0('0x2d')],function(_0x1a9491){return{'name':_0x1a9491[_0x1bb0('0x2e')],'type':_0x1a9491[_0x1bb0('0x2f')][_0x1bb0('0x30')]};});_0x4a16bd[_0x1bb0('0x31')]=_['map'](_0x246928,_0x1bb0('0x28'));_0x4a16bd['query']=_[_0x1bb0('0x32')](_0x44d683[_0x1bb0('0x33')]);_0x4a16bd[_0x1bb0('0x34')]=_[_0x1bb0('0x35')](_0x4a16bd['model'],_0x4a16bd[_0x1bb0('0x33')]);_0x4def19['attributes']=_[_0x1bb0('0x35')](_0x4a16bd[_0x1bb0('0x31')],qs[_0x1bb0('0x36')](_0x44d683[_0x1bb0('0x33')][_0x1bb0('0x36')]));_0x4def19['attributes']=_0x4def19[_0x1bb0('0x37')][_0x1bb0('0x38')]?_0x4def19[_0x1bb0('0x37')]:_0x4a16bd[_0x1bb0('0x31')];if(!_0x44d683['query']['hasOwnProperty']('nolimit')){_0x4def19[_0x1bb0('0x19')]=qs['limit'](_0x44d683[_0x1bb0('0x33')][_0x1bb0('0x19')]);_0x4def19['offset']=qs[_0x1bb0('0x1c')](_0x44d683[_0x1bb0('0x33')]['offset']);}_0x4def19[_0x1bb0('0x39')]=qs['sort'](_0x44d683[_0x1bb0('0x33')][_0x1bb0('0x3a')]);_0x4def19[_0x1bb0('0x3b')]=qs[_0x1bb0('0x34')](_[_0x1bb0('0x3c')](_0x44d683['query'],_0x4a16bd['filters']),_0x246928);if(_0x44d683[_0x1bb0('0x33')][_0x1bb0('0x3d')]){_0x4def19[_0x1bb0('0x3b')]=_[_0x1bb0('0x3e')](_0x4def19['where'],{'$or':_[_0x1bb0('0x2b')](_0x246928,function(_0x52ccef){if(_0x52ccef['type']!==_0x1bb0('0x3f')){var _0x42aee0={};_0x42aee0[_0x52ccef['name']]={'$like':'%'+_0x44d683[_0x1bb0('0x33')][_0x1bb0('0x3d')]+'%'};return _0x42aee0;}})});}_0x4def19=_[_0x1bb0('0x3e')]({},_0x4def19,_0x44d683[_0x1bb0('0x40')]);var _0x1be1c6={'where':_0x4def19[_0x1bb0('0x3b')]};return db['SquareOdbc']['count'](_0x1be1c6)[_0x1bb0('0x23')](function(_0x4b9446){_0x4f2b40[_0x1bb0('0x1b')]=_0x4b9446;if(_0x44d683[_0x1bb0('0x33')][_0x1bb0('0x41')]){_0x4def19[_0x1bb0('0x42')]=[{'all':!![]}];}return db[_0x1bb0('0x2c')][_0x1bb0('0x43')](_0x4def19);})[_0x1bb0('0x23')](function(_0x416124){_0x4f2b40[_0x1bb0('0x44')]=_0x416124;return _0x4f2b40;})['then'](respondWithFilteredResult(_0x22bb47,_0x4def19))[_0x1bb0('0x45')](handleError(_0x22bb47,null));};exports[_0x1bb0('0x46')]=function(_0x5aa677,_0x4baa91){var _0x4a6701={'raw':!![],'where':{'id':_0x5aa677[_0x1bb0('0x47')]['id']}},_0x4a3816={};_0x4a3816[_0x1bb0('0x31')]=_[_0x1bb0('0x32')](db[_0x1bb0('0x2c')][_0x1bb0('0x2d')]);_0x4a3816[_0x1bb0('0x33')]=_['keys'](_0x5aa677[_0x1bb0('0x33')]);_0x4a3816[_0x1bb0('0x34')]=_[_0x1bb0('0x35')](_0x4a3816[_0x1bb0('0x31')],_0x4a3816[_0x1bb0('0x33')]);_0x4a6701[_0x1bb0('0x37')]=_[_0x1bb0('0x35')](_0x4a3816[_0x1bb0('0x31')],qs[_0x1bb0('0x36')](_0x5aa677[_0x1bb0('0x33')][_0x1bb0('0x36')]));_0x4a6701[_0x1bb0('0x37')]=_0x4a6701[_0x1bb0('0x37')][_0x1bb0('0x38')]?_0x4a6701[_0x1bb0('0x37')]:_0x4a3816['model'];if(_0x5aa677[_0x1bb0('0x33')][_0x1bb0('0x41')]){_0x4a6701[_0x1bb0('0x42')]=[{'all':!![]}];}_0x4a6701=_[_0x1bb0('0x3e')]({},_0x4a6701,_0x5aa677[_0x1bb0('0x40')]);return db[_0x1bb0('0x2c')][_0x1bb0('0x48')](_0x4a6701)[_0x1bb0('0x23')](handleEntityNotFound(_0x4baa91,null))[_0x1bb0('0x23')](respondWithResult(_0x4baa91,null))[_0x1bb0('0x45')](handleError(_0x4baa91,null));};exports[_0x1bb0('0x49')]=function(_0x7e0f8d,_0x3cf14b){return db[_0x1bb0('0x2c')][_0x1bb0('0x49')](_0x7e0f8d[_0x1bb0('0x4a')],{})[_0x1bb0('0x23')](function(_0x35b34b){var _0x3d91f1=_0x7e0f8d[_0x1bb0('0x4b')][_0x1bb0('0x25')]({'plain':!![]});if(!_0x3d91f1)throw new Error(_0x1bb0('0x4c'));if(_0x3d91f1['role']==='user'){var _0xfeef68=_0x35b34b[_0x1bb0('0x25')]({'plain':!![]});var _0x2ee227=_0x1bb0('0x26');return db[_0x1bb0('0x4d')][_0x1bb0('0x48')]({'where':{'name':_0x2ee227,'userProfileId':_0x3d91f1[_0x1bb0('0x4e')]},'raw':!![]})[_0x1bb0('0x23')](function(_0x573bfd){if(_0x573bfd&&_0x573bfd['autoAssociation']===0x0){return db[_0x1bb0('0x4f')]['create']({'name':_0xfeef68[_0x1bb0('0x28')],'resourceId':_0xfeef68['id'],'type':_0x573bfd[_0x1bb0('0x28')],'sectionId':_0x573bfd['id']},{})[_0x1bb0('0x23')](function(){return _0x35b34b;});}else{return _0x35b34b;}})[_0x1bb0('0x45')](function(_0x21ed5b){logger[_0x1bb0('0x27')](_0x1bb0('0x50'),_0x21ed5b);throw _0x21ed5b;});}return _0x35b34b;})[_0x1bb0('0x23')](respondWithResult(_0x3cf14b,0xc9))[_0x1bb0('0x45')](handleError(_0x3cf14b,null));};exports['update']=function(_0x139577,_0xce279b){if(_0x139577[_0x1bb0('0x4a')]['id']){delete _0x139577['body']['id'];}return db[_0x1bb0('0x2c')][_0x1bb0('0x48')]({'where':{'id':_0x139577[_0x1bb0('0x47')]['id']}})[_0x1bb0('0x23')](handleEntityNotFound(_0xce279b,null))['then'](saveUpdates(_0x139577['body'],null))[_0x1bb0('0x23')](respondWithResult(_0xce279b,null))['catch'](handleError(_0xce279b,null));};exports[_0x1bb0('0x24')]=function(_0x15a765,_0xedd047){return db['SquareOdbc'][_0x1bb0('0x48')]({'where':{'id':_0x15a765[_0x1bb0('0x47')]['id']}})[_0x1bb0('0x23')](handleEntityNotFound(_0xedd047,null))['then'](removeEntity(_0xedd047,null))['catch'](handleError(_0xedd047,null));};exports[_0x1bb0('0x51')]=function(_0x340d80,_0x142229,_0x3c9015){var _0x38fd41;return db['SquareOdbc'][_0x1bb0('0x48')]({'where':{'id':_0x340d80[_0x1bb0('0x47')]['id']},'attributes':['id',_0x1bb0('0x52')]})[_0x1bb0('0x23')](handleEntityNotFound(_0x142229,null))['then'](function(_0x256677){if(_0x256677){var _0x28cc7c=require(_0x1bb0('0x53'))();_0x28cc7c[_0x1bb0('0x54')](_0x256677[_0x1bb0('0x52')]);_0x28cc7c[_0x1bb0('0x55')]();return _0x256677;}})[_0x1bb0('0x23')](respondWithResult(_0x142229,null))[_0x1bb0('0x45')](handleError(_0x142229,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccdc=['SquareOdbc','util','../../config/logger','api','moment','request-promise','rimraf','../../config/environment','./squareOdbc.attributes','define'];(function(_0x15f3c0,_0x165a64){var _0x1adfe0=function(_0x212cfc){while(--_0x212cfc){_0x15f3c0['push'](_0x15f3c0['shift']());}};_0x1adfe0(++_0x165a64);}(_0xccdc,0x15f));var _0xcccd=function(_0x3ff085,_0x27c92e){_0x3ff085=_0x3ff085-0x0;var _0x2b68c3=_0xccdc[_0x3ff085];return _0x2b68c3;};'use strict';var _=require('lodash');var util=require(_0xcccd('0x0'));var logger=require(_0xcccd('0x1'))(_0xcccd('0x2'));var moment=require(_0xcccd('0x3'));var BPromise=require('bluebird');var rp=require(_0xcccd('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xcccd('0x5'));var config=require(_0xcccd('0x6'));var attributes=require(_0xcccd('0x7'));module['exports']=function(_0xd9263b,_0x2f89fc){return _0xd9263b[_0xcccd('0x8')](_0xcccd('0x9'),attributes,{'tableName':'square_odbc','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb10b=['./squareOdbc.attributes','exports','define','SquareOdbc','square_odbc','util','moment','bluebird','request-promise','path','../../config/environment'];(function(_0x55749d,_0x30b18b){var _0x23edaf=function(_0x29088e){while(--_0x29088e){_0x55749d['push'](_0x55749d['shift']());}};_0x23edaf(++_0x30b18b);}(_0xb10b,0x144));var _0xbb10=function(_0x58b5d7,_0x79ca8a){_0x58b5d7=_0x58b5d7-0x0;var _0x817269=_0xb10b[_0x58b5d7];return _0x817269;};'use strict';var _=require('lodash');var util=require(_0xbb10('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0xbb10('0x1'));var BPromise=require(_0xbb10('0x2'));var rp=require(_0xbb10('0x3'));var fs=require('fs');var path=require(_0xbb10('0x4'));var rimraf=require('rimraf');var config=require(_0xbb10('0x5'));var attributes=require(_0xbb10('0x6'));module[_0xbb10('0x7')]=function(_0x18ddf6,_0x13f44d){return _0x18ddf6[_0xbb10('0x8')](_0xbb10('0x9'),attributes,{'tableName':_0xbb10('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa63c=['SquareOdbc','find','options','where','include','model','attributes','map','catch','util','moment','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','SquareOdbc,\x20%s,\x20%s,\x20%s','stringify','error','SquareOdbc,\x20%s,\x20%s','message','result','ShowSquareOdbc'];(function(_0x596e47,_0x3cd49d){var _0x18d386=function(_0x4ad953){while(--_0x4ad953){_0x596e47['push'](_0x596e47['shift']());}};_0x18d386(++_0x3cd49d);}(_0xa63c,0xb7));var _0xca63=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xa63c[_0x501510];return _0x1e6ee5;};'use strict';var _=require('lodash');var util=require(_0xca63('0x0'));var moment=require(_0xca63('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xca63('0x2'))['db'];var utils=require(_0xca63('0x3'));var logger=require(_0xca63('0x4'))(_0xca63('0x5'));var config=require(_0xca63('0x6'));var jayson=require(_0xca63('0x7'));var client=jayson['client'][_0xca63('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x540498,_0x340a64,_0x1ab3ea){return new BPromise(function(_0x3e65de,_0x4c2c61){return client[_0xca63('0x9')](_0x540498,_0x1ab3ea)[_0xca63('0xa')](function(_0x3f6d02){logger[_0xca63('0xb')]('SquareOdbc,\x20%s,\x20%s',_0x340a64,_0xca63('0xc'));logger['debug'](_0xca63('0xd'),_0x340a64,_0xca63('0xc'),JSON[_0xca63('0xe')](_0x3f6d02));if(_0x3f6d02[_0xca63('0xf')]){if(_0x3f6d02[_0xca63('0xf')]['code']===0x1f4){logger[_0xca63('0xf')](_0xca63('0x10'),_0x340a64,_0x3f6d02[_0xca63('0xf')][_0xca63('0x11')]);return _0x4c2c61(_0x3f6d02[_0xca63('0xf')]['message']);}logger['error'](_0xca63('0x10'),_0x340a64,_0x3f6d02[_0xca63('0xf')]['message']);return _0x3e65de(_0x3f6d02['error'][_0xca63('0x11')]);}else{logger[_0xca63('0xb')]('SquareOdbc,\x20%s,\x20%s',_0x340a64,_0xca63('0xc'));_0x3e65de(_0x3f6d02[_0xca63('0x12')][_0xca63('0x11')]);}})['catch'](function(_0x5434f2){logger['error'](_0xca63('0x10'),_0x340a64,_0x5434f2);_0x4c2c61(_0x5434f2);});});}exports[_0xca63('0x13')]=function(_0x237aa9){var _0xe3a234=this;return new Promise(function(_0x146e00,_0x33aa97){return db[_0xca63('0x14')][_0xca63('0x15')]({'raw':_0x237aa9['options']?_0x237aa9[_0xca63('0x16')]['raw']===undefined?!![]:![]:!![],'where':_0x237aa9[_0xca63('0x16')]?_0x237aa9['options'][_0xca63('0x17')]||null:null,'attributes':_0x237aa9['options']?_0x237aa9['options']['attributes']||null:null,'include':_0x237aa9[_0xca63('0x16')]?_0x237aa9[_0xca63('0x16')][_0xca63('0x18')]?_['map'](_0x237aa9[_0xca63('0x16')][_0xca63('0x18')],function(_0x50eba6){return{'model':db[_0x50eba6[_0xca63('0x19')]],'as':_0x50eba6['as'],'attributes':_0x50eba6[_0xca63('0x1a')],'include':_0x50eba6['include']?_[_0xca63('0x1b')](_0x50eba6[_0xca63('0x18')],function(_0x2f4339){return{'model':db[_0x2f4339[_0xca63('0x19')]],'as':_0x2f4339['as'],'attributes':_0x2f4339['attributes'],'include':_0x2f4339[_0xca63('0x18')]?_[_0xca63('0x1b')](_0x2f4339[_0xca63('0x18')],function(_0x560904){return{'model':db[_0x560904[_0xca63('0x19')]],'as':_0x560904['as'],'attributes':_0x560904[_0xca63('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xca63('0xa')](function(_0x2cad92){logger[_0xca63('0xb')](_0xca63('0x13'),_0x237aa9);logger['debug'](_0xca63('0x13'),_0x237aa9,JSON[_0xca63('0xe')](_0x2cad92));_0x146e00(_0x2cad92);})[_0xca63('0x1c')](function(_0x5c08f9){logger[_0xca63('0xf')](_0xca63('0x13'),_0x5c08f9['message'],_0x237aa9);_0x33aa97(_0xe3a234[_0xca63('0xf')](0x1f4,_0x5c08f9[_0xca63('0x11')]));});});};
\ No newline at end of file
+var _0xa20a=['SquareOdbc,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','SquareOdbc,\x20%s,\x20%s','message','result','catch','ShowSquareOdbc','SquareOdbc','find','options','raw','attributes','include','map','model','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','debug'];(function(_0x5c6244,_0x112ab8){var _0x5800ce=function(_0x304e3d){while(--_0x304e3d){_0x5c6244['push'](_0x5c6244['shift']());}};_0x5800ce(++_0x112ab8);}(_0xa20a,0x1cc));var _0xaa20=function(_0x35885a,_0x42fed7){_0x35885a=_0x35885a-0x0;var _0xe86249=_0xa20a[_0x35885a];return _0xe86249;};'use strict';var _=require(_0xaa20('0x0'));var util=require(_0xaa20('0x1'));var moment=require(_0xaa20('0x2'));var BPromise=require('bluebird');var rs=require(_0xaa20('0x3'));var fs=require('fs');var Redis=require(_0xaa20('0x4'));var db=require(_0xaa20('0x5'))['db'];var utils=require(_0xaa20('0x6'));var logger=require(_0xaa20('0x7'))('rpc');var config=require(_0xaa20('0x8'));var jayson=require(_0xaa20('0x9'));var client=jayson[_0xaa20('0xa')][_0xaa20('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xbbc30,_0x1ccec7,_0x112fe0){return new BPromise(function(_0x4a1f4c,_0x263798){return client[_0xaa20('0xc')](_0xbbc30,_0x112fe0)[_0xaa20('0xd')](function(_0x145c09){logger[_0xaa20('0xe')]('SquareOdbc,\x20%s,\x20%s',_0x1ccec7,'request\x20sent');logger[_0xaa20('0xf')](_0xaa20('0x10'),_0x1ccec7,_0xaa20('0x11'),JSON[_0xaa20('0x12')](_0x145c09));if(_0x145c09[_0xaa20('0x13')]){if(_0x145c09[_0xaa20('0x13')][_0xaa20('0x14')]===0x1f4){logger[_0xaa20('0x13')](_0xaa20('0x15'),_0x1ccec7,_0x145c09['error'][_0xaa20('0x16')]);return _0x263798(_0x145c09[_0xaa20('0x13')]['message']);}logger[_0xaa20('0x13')](_0xaa20('0x15'),_0x1ccec7,_0x145c09[_0xaa20('0x13')][_0xaa20('0x16')]);return _0x4a1f4c(_0x145c09[_0xaa20('0x13')][_0xaa20('0x16')]);}else{logger[_0xaa20('0xe')]('SquareOdbc,\x20%s,\x20%s',_0x1ccec7,_0xaa20('0x11'));_0x4a1f4c(_0x145c09[_0xaa20('0x17')][_0xaa20('0x16')]);}})[_0xaa20('0x18')](function(_0x2b68fc){logger['error']('SquareOdbc,\x20%s,\x20%s',_0x1ccec7,_0x2b68fc);_0x263798(_0x2b68fc);});});}exports[_0xaa20('0x19')]=function(_0x4af4a3){var _0xcfa3d0=this;return new Promise(function(_0x39b2d1,_0x500683){return db[_0xaa20('0x1a')][_0xaa20('0x1b')]({'raw':_0x4af4a3[_0xaa20('0x1c')]?_0x4af4a3[_0xaa20('0x1c')][_0xaa20('0x1d')]===undefined?!![]:![]:!![],'where':_0x4af4a3['options']?_0x4af4a3['options']['where']||null:null,'attributes':_0x4af4a3[_0xaa20('0x1c')]?_0x4af4a3[_0xaa20('0x1c')][_0xaa20('0x1e')]||null:null,'include':_0x4af4a3['options']?_0x4af4a3[_0xaa20('0x1c')][_0xaa20('0x1f')]?_[_0xaa20('0x20')](_0x4af4a3[_0xaa20('0x1c')][_0xaa20('0x1f')],function(_0x256724){return{'model':db[_0x256724[_0xaa20('0x21')]],'as':_0x256724['as'],'attributes':_0x256724[_0xaa20('0x1e')],'include':_0x256724['include']?_['map'](_0x256724['include'],function(_0x30f025){return{'model':db[_0x30f025[_0xaa20('0x21')]],'as':_0x30f025['as'],'attributes':_0x30f025[_0xaa20('0x1e')],'include':_0x30f025['include']?_[_0xaa20('0x20')](_0x30f025[_0xaa20('0x1f')],function(_0x483f10){return{'model':db[_0x483f10[_0xaa20('0x21')]],'as':_0x483f10['as'],'attributes':_0x483f10[_0xaa20('0x1e')]};}):[]};}):[]};}):[]:[]})[_0xaa20('0xd')](function(_0x25eb52){logger[_0xaa20('0xe')](_0xaa20('0x19'),_0x4af4a3);logger[_0xaa20('0xf')]('ShowSquareOdbc',_0x4af4a3,JSON[_0xaa20('0x12')](_0x25eb52));_0x39b2d1(_0x25eb52);})['catch'](function(_0x22e690){logger['error'](_0xaa20('0x19'),_0x22e690[_0xaa20('0x16')],_0x4af4a3);_0x500683(_0xcfa3d0[_0xaa20('0x13')](0x1f4,_0x22e690[_0xaa20('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe797=['path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./squareProject.controller','get','isAuthenticated','/:id','/:id/users','getUsers','create','post','addUsers','put','delete','removeUsers','multer','util'];(function(_0x304600,_0x4ecdfe){var _0x337878=function(_0xe2b418){while(--_0xe2b418){_0x304600['push'](_0x304600['shift']());}};_0x337878(++_0x4ecdfe);}(_0xe797,0x12a));var _0x7e79=function(_0x31786e,_0x21d759){_0x31786e=_0x31786e-0x0;var _0x495c1d=_0xe797[_0x31786e];return _0x495c1d;};'use strict';var multer=require(_0x7e79('0x0'));var util=require(_0x7e79('0x1'));var path=require(_0x7e79('0x2'));var timeout=require(_0x7e79('0x3'));var express=require(_0x7e79('0x4'));var router=express[_0x7e79('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x7e79('0x6'));var interaction=require(_0x7e79('0x7'));var config=require('../../config/environment');var controller=require(_0x7e79('0x8'));router[_0x7e79('0x9')]('/',auth[_0x7e79('0xa')](),controller['index']);router['get'](_0x7e79('0xb'),auth[_0x7e79('0xa')](),controller['show']);router['get'](_0x7e79('0xc'),auth[_0x7e79('0xa')](),controller[_0x7e79('0xd')]);router['post']('/',auth[_0x7e79('0xa')](),controller[_0x7e79('0xe')]);router[_0x7e79('0xf')](_0x7e79('0xc'),auth[_0x7e79('0xa')](),controller[_0x7e79('0x10')]);router[_0x7e79('0x11')](_0x7e79('0xb'),auth[_0x7e79('0xa')](),controller['update']);router[_0x7e79('0x12')]('/:id',auth[_0x7e79('0xa')](),controller['destroy']);router[_0x7e79('0x12')](_0x7e79('0xc'),auth[_0x7e79('0xa')](),controller[_0x7e79('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x2a84=['/:id','isAuthenticated','/:id/users','getUsers','post','create','put','destroy','delete','removeUsers','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./squareProject.controller','get','index'];(function(_0x42e8df,_0x147866){var _0x2fbb8b=function(_0x40f48f){while(--_0x40f48f){_0x42e8df['push'](_0x42e8df['shift']());}};_0x2fbb8b(++_0x147866);}(_0x2a84,0x170));var _0x42a8=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x2a84[_0x14add3];return _0x4a174f;};'use strict';var multer=require(_0x42a8('0x0'));var util=require(_0x42a8('0x1'));var path=require('path');var timeout=require(_0x42a8('0x2'));var express=require(_0x42a8('0x3'));var router=express[_0x42a8('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x42a8('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x42a8('0x6'));var controller=require(_0x42a8('0x7'));router[_0x42a8('0x8')]('/',auth['isAuthenticated'](),controller[_0x42a8('0x9')]);router['get'](_0x42a8('0xa'),auth[_0x42a8('0xb')](),controller['show']);router[_0x42a8('0x8')](_0x42a8('0xc'),auth['isAuthenticated'](),controller[_0x42a8('0xd')]);router[_0x42a8('0xe')]('/',auth['isAuthenticated'](),controller[_0x42a8('0xf')]);router[_0x42a8('0xe')](_0x42a8('0xc'),auth['isAuthenticated'](),controller['addUsers']);router[_0x42a8('0x10')]('/:id',auth[_0x42a8('0xb')](),controller['update']);router['delete'](_0x42a8('0xa'),auth[_0x42a8('0xb')](),controller[_0x42a8('0x11')]);router[_0x42a8('0x12')](_0x42a8('0xc'),auth[_0x42a8('0xb')](),controller[_0x42a8('0x13')]);module[_0x42a8('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x93f1=['BLOB','getDataValue','production','DATE','sequelize','STRING','name','TEXT','long','preproduction','toString','utf8'];(function(_0x19288f,_0x593b58){var _0x280b73=function(_0x344efa){while(--_0x344efa){_0x19288f['push'](_0x19288f['shift']());}};_0x280b73(++_0x593b58);}(_0x93f1,0x7c));var _0x193f=function(_0x55a4e8,_0x1897a2){_0x55a4e8=_0x55a4e8-0x0;var _0x270064=_0x93f1[_0x55a4e8];return _0x270064;};'use strict';var Sequelize=require(_0x193f('0x0'));module['exports']={'name':{'type':Sequelize[_0x193f('0x1')],'unique':_0x193f('0x2'),'allowNull':![]},'description':{'type':Sequelize[_0x193f('0x1')]},'notes':{'type':Sequelize[_0x193f('0x3')]},'preproduction':{'type':Sequelize['BLOB'](_0x193f('0x4')),'get':function(){if(this['getDataValue']('preproduction')){return this['getDataValue'](_0x193f('0x5'))[_0x193f('0x6')](_0x193f('0x7'));}}},'production':{'type':Sequelize[_0x193f('0x8')](_0x193f('0x4')),'get':function(){if(this[_0x193f('0x9')]('production')){return this['getDataValue'](_0x193f('0xa'))[_0x193f('0x6')](_0x193f('0x7'));}}},'savedAt':{'type':Sequelize['DATE']},'publishedAt':{'type':Sequelize[_0x193f('0xb')]}};
\ No newline at end of file
+var _0x8135=['getDataValue','toString','long','utf8','DATE','exports','name','STRING','TEXT','BLOB','preproduction'];(function(_0x377352,_0x4349d8){var _0x426764=function(_0x53dab7){while(--_0x53dab7){_0x377352['push'](_0x377352['shift']());}};_0x426764(++_0x4349d8);}(_0x8135,0x73));var _0x5813=function(_0xa967a5,_0xae4a4c){_0xa967a5=_0xa967a5-0x0;var _0x543f74=_0x8135[_0xa967a5];return _0x543f74;};'use strict';var Sequelize=require('sequelize');module[_0x5813('0x0')]={'name':{'type':Sequelize['STRING'],'unique':_0x5813('0x1'),'allowNull':![]},'description':{'type':Sequelize[_0x5813('0x2')]},'notes':{'type':Sequelize[_0x5813('0x3')]},'preproduction':{'type':Sequelize[_0x5813('0x4')]('long'),'get':function(){if(this['getDataValue'](_0x5813('0x5'))){return this[_0x5813('0x6')](_0x5813('0x5'))[_0x5813('0x7')]('utf8');}}},'production':{'type':Sequelize[_0x5813('0x4')](_0x5813('0x8')),'get':function(){if(this[_0x5813('0x6')]('production')){return this[_0x5813('0x6')]('production')['toString'](_0x5813('0x9'));}}},'savedAt':{'type':Sequelize[_0x5813('0xa')]},'publishedAt':{'type':Sequelize[_0x5813('0xa')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0feb=['../../config/logger','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./squareProject.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','destroy','get','UserProfileResource','error','stack','name','rawAttributes','type','map','keys','filters','intersection','model','fields','attributes','query','order','sort','where','merge','VIRTUAL','filter','options','includeAll','findAll','rows','catch','SquareProject','length','include','create','body','user','role','SquareProjects','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','addUsers','ids','removeUsers','isArray','emit','userSquareProject:remove','getUsers','findOne','User','hasOwnProperty','nolimit','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x3bf6bb,_0x4b85c7){var _0x4f9809=function(_0x25477b){while(--_0x25477b){_0x3bf6bb['push'](_0x3bf6bb['shift']());}};_0x4f9809(++_0x4b85c7);}(_0x0feb,0x1bf));var _0xb0fe=function(_0x4aa227,_0x41ef21){_0x4aa227=_0x4aa227-0x0;var _0x1759cd=_0x0feb[_0x4aa227];return _0x1759cd;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xb0fe('0x0'));var jsonpatch=require(_0xb0fe('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xb0fe('0x2'));var Mustache=require(_0xb0fe('0x3'));var util=require(_0xb0fe('0x4'));var path=require(_0xb0fe('0x5'));var sox=require(_0xb0fe('0x6'));var csv=require(_0xb0fe('0x7'));var ejs=require(_0xb0fe('0x8'));var fs=require('fs');var fs_extra=require(_0xb0fe('0x9'));var _=require(_0xb0fe('0xa'));var squel=require('squel');var crypto=require(_0xb0fe('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xb0fe('0x7'));var querystring=require(_0xb0fe('0xc'));var Papa=require('papaparse');var Redis=require(_0xb0fe('0xd'));var authService=require(_0xb0fe('0xe'));var qs=require(_0xb0fe('0xf'));var as=require(_0xb0fe('0x10'));var hardwareService=require(_0xb0fe('0x11'));var logger=require(_0xb0fe('0x12'))('api');var utils=require(_0xb0fe('0x13'));var config=require(_0xb0fe('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xb0fe('0x15'))['db'];config['redis']=_[_0xb0fe('0x16')](config[_0xb0fe('0x17')],{'host':_0xb0fe('0x18'),'port':0x18eb});var socket=require(_0xb0fe('0x19'))(new Redis(config['redis']));require(_0xb0fe('0x1a'))[_0xb0fe('0x1b')](socket);function respondWithStatusCode(_0x3290ab,_0x48f145){_0x48f145=_0x48f145||0xcc;return function(_0x14c8a9){if(_0x14c8a9){return _0x3290ab[_0xb0fe('0x1c')](_0x48f145);}return _0x3290ab[_0xb0fe('0x1d')](_0x48f145)[_0xb0fe('0x1e')]();};}function respondWithResult(_0x2ed2fd,_0x145faa){_0x145faa=_0x145faa||0xc8;return function(_0x3140b0){if(_0x3140b0){return _0x2ed2fd[_0xb0fe('0x1d')](_0x145faa)[_0xb0fe('0x1f')](_0x3140b0);}};}function respondWithFilteredResult(_0x2fe60d,_0x4c1c69){return function(_0x45eeb9){if(_0x45eeb9){var _0x4b9576=typeof _0x4c1c69[_0xb0fe('0x20')]===_0xb0fe('0x21')&&typeof _0x4c1c69[_0xb0fe('0x22')]===_0xb0fe('0x21');var _0x70eead=_0x45eeb9['count'];var _0x5579a4=_0x4b9576?0x0:_0x4c1c69[_0xb0fe('0x20')];var _0x1a2672=_0x4b9576?_0x45eeb9[_0xb0fe('0x23')]:_0x4c1c69[_0xb0fe('0x20')]+_0x4c1c69[_0xb0fe('0x22')];var _0x345e24;if(_0x1a2672>=_0x70eead){_0x1a2672=_0x70eead;_0x345e24=0xc8;}else{_0x345e24=0xce;}_0x2fe60d[_0xb0fe('0x1d')](_0x345e24);return _0x2fe60d[_0xb0fe('0x24')](_0xb0fe('0x25'),_0x5579a4+'-'+_0x1a2672+'/'+_0x70eead)[_0xb0fe('0x1f')](_0x45eeb9);}return null;};}function patchUpdates(_0x35a775){return function(_0x30606c){try{jsonpatch[_0xb0fe('0x26')](_0x30606c,_0x35a775,!![]);}catch(_0x12fec4){return BPromise['reject'](_0x12fec4);}return _0x30606c[_0xb0fe('0x27')]();};}function saveUpdates(_0x1fe243,_0x4beb67){return function(_0x3af807){if(_0x3af807){return _0x3af807['update'](_0x1fe243)[_0xb0fe('0x28')](function(_0x54d60f){return _0x54d60f;});}return null;};}function removeEntity(_0xca1c47,_0x4ccfeb){return function(_0x1f7cf5){if(_0x1f7cf5){return _0x1f7cf5[_0xb0fe('0x29')]()['then'](function(){var _0x29297c=_0x1f7cf5[_0xb0fe('0x2a')]({'plain':!![]});var _0x224263='SquareProjects';return db[_0xb0fe('0x2b')][_0xb0fe('0x29')]({'where':{'type':_0x224263,'resourceId':_0x29297c['id']}})[_0xb0fe('0x28')](function(){return _0x1f7cf5;});})[_0xb0fe('0x28')](function(){_0xca1c47[_0xb0fe('0x1d')](0xcc)[_0xb0fe('0x1e')]();});}};}function handleEntityNotFound(_0x338c46,_0x256054){return function(_0x58d8b6){if(!_0x58d8b6){_0x338c46[_0xb0fe('0x1c')](0x194);}return _0x58d8b6;};}function handleError(_0x253df7,_0x3bb4df){_0x3bb4df=_0x3bb4df||0x1f4;return function(_0x278c6c){logger[_0xb0fe('0x2c')](_0x278c6c[_0xb0fe('0x2d')]);if(_0x278c6c[_0xb0fe('0x2e')]){delete _0x278c6c[_0xb0fe('0x2e')];}_0x253df7[_0xb0fe('0x1d')](_0x3bb4df)['send'](_0x278c6c);};}exports['index']=function(_0x2d1943,_0x45f2fd){var _0x15ef05={},_0xc4461e={},_0x224e04={'count':0x0,'rows':[]};var _0x1915b1=_['map'](db['SquareProject'][_0xb0fe('0x2f')],function(_0xb8991e){return{'name':_0xb8991e['fieldName'],'type':_0xb8991e[_0xb0fe('0x30')]['key']};});_0xc4461e['model']=_[_0xb0fe('0x31')](_0x1915b1,'name');_0xc4461e['query']=_[_0xb0fe('0x32')](_0x2d1943['query']);_0xc4461e[_0xb0fe('0x33')]=_[_0xb0fe('0x34')](_0xc4461e[_0xb0fe('0x35')],_0xc4461e['query']);_0x15ef05['attributes']=_[_0xb0fe('0x34')](_0xc4461e[_0xb0fe('0x35')],qs[_0xb0fe('0x36')](_0x2d1943['query'][_0xb0fe('0x36')]));_0x15ef05[_0xb0fe('0x37')]=_0x15ef05['attributes']['length']?_0x15ef05[_0xb0fe('0x37')]:_0xc4461e[_0xb0fe('0x35')];if(!_0x2d1943[_0xb0fe('0x38')]['hasOwnProperty']('nolimit')){_0x15ef05['limit']=qs[_0xb0fe('0x22')](_0x2d1943[_0xb0fe('0x38')][_0xb0fe('0x22')]);_0x15ef05['offset']=qs['offset'](_0x2d1943[_0xb0fe('0x38')][_0xb0fe('0x20')]);}_0x15ef05[_0xb0fe('0x39')]=qs[_0xb0fe('0x3a')](_0x2d1943['query'][_0xb0fe('0x3a')]);_0x15ef05['where']=qs[_0xb0fe('0x33')](_['pick'](_0x2d1943[_0xb0fe('0x38')],_0xc4461e[_0xb0fe('0x33')]),_0x1915b1);if(_0x2d1943['query']['filter']){_0x15ef05[_0xb0fe('0x3b')]=_[_0xb0fe('0x3c')](_0x15ef05['where'],{'$or':_[_0xb0fe('0x31')](_0x1915b1,function(_0x53cbb4){if(_0x53cbb4[_0xb0fe('0x30')]!==_0xb0fe('0x3d')){var _0x368970={};_0x368970[_0x53cbb4[_0xb0fe('0x2e')]]={'$like':'%'+_0x2d1943[_0xb0fe('0x38')][_0xb0fe('0x3e')]+'%'};return _0x368970;}})});}_0x15ef05=_[_0xb0fe('0x3c')]({},_0x15ef05,_0x2d1943[_0xb0fe('0x3f')]);var _0x4ba223={'where':_0x15ef05[_0xb0fe('0x3b')]};return db['SquareProject'][_0xb0fe('0x23')](_0x4ba223)[_0xb0fe('0x28')](function(_0x10a960){_0x224e04[_0xb0fe('0x23')]=_0x10a960;if(_0x2d1943[_0xb0fe('0x38')][_0xb0fe('0x40')]){_0x15ef05['include']=[{'all':!![]}];}return db['SquareProject'][_0xb0fe('0x41')](_0x15ef05);})['then'](function(_0x51de75){_0x224e04[_0xb0fe('0x42')]=_0x51de75;return _0x224e04;})['then'](respondWithFilteredResult(_0x45f2fd,_0x15ef05))[_0xb0fe('0x43')](handleError(_0x45f2fd,null));};exports['show']=function(_0x16770f,_0x5917de){var _0x4d37f0={'raw':![],'where':{'id':_0x16770f['params']['id']}},_0x19493d={};_0x19493d['model']=_[_0xb0fe('0x32')](db[_0xb0fe('0x44')][_0xb0fe('0x2f')]);_0x19493d[_0xb0fe('0x38')]=_[_0xb0fe('0x32')](_0x16770f[_0xb0fe('0x38')]);_0x19493d['filters']=_[_0xb0fe('0x34')](_0x19493d[_0xb0fe('0x35')],_0x19493d[_0xb0fe('0x38')]);_0x4d37f0[_0xb0fe('0x37')]=_[_0xb0fe('0x34')](_0x19493d[_0xb0fe('0x35')],qs[_0xb0fe('0x36')](_0x16770f['query'][_0xb0fe('0x36')]));_0x4d37f0[_0xb0fe('0x37')]=_0x4d37f0['attributes'][_0xb0fe('0x45')]?_0x4d37f0['attributes']:_0x19493d[_0xb0fe('0x35')];if(_0x16770f[_0xb0fe('0x38')][_0xb0fe('0x40')]){_0x4d37f0[_0xb0fe('0x46')]=[{'all':!![]}];}_0x4d37f0=_['merge']({},_0x4d37f0,_0x16770f['options']);return db[_0xb0fe('0x44')]['find'](_0x4d37f0)['then'](handleEntityNotFound(_0x5917de,null))[_0xb0fe('0x28')](respondWithResult(_0x5917de,null))[_0xb0fe('0x43')](handleError(_0x5917de,null));};exports['create']=function(_0x5c11ec,_0x1eb5e6){return db[_0xb0fe('0x44')][_0xb0fe('0x47')](_0x5c11ec[_0xb0fe('0x48')],{})[_0xb0fe('0x28')](function(_0x219ac5){var _0x17f82c=_0x5c11ec[_0xb0fe('0x49')][_0xb0fe('0x2a')]({'plain':!![]});if(!_0x17f82c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x17f82c[_0xb0fe('0x4a')]===_0xb0fe('0x49')){var _0x2c8b44=_0x219ac5[_0xb0fe('0x2a')]({'plain':!![]});var _0x301a7d=_0xb0fe('0x4b');return db['UserProfileSection'][_0xb0fe('0x4c')]({'where':{'name':_0x301a7d,'userProfileId':_0x17f82c[_0xb0fe('0x4d')]},'raw':!![]})[_0xb0fe('0x28')](function(_0x47a6c2){if(_0x47a6c2&&_0x47a6c2[_0xb0fe('0x4e')]===0x0){return db[_0xb0fe('0x2b')][_0xb0fe('0x47')]({'name':_0x2c8b44['name'],'resourceId':_0x2c8b44['id'],'type':_0x47a6c2[_0xb0fe('0x2e')],'sectionId':_0x47a6c2['id']},{})['then'](function(){return _0x219ac5;});}else{return _0x219ac5;}})[_0xb0fe('0x43')](function(_0x12e5cb){logger[_0xb0fe('0x2c')](_0xb0fe('0x4f'),_0x12e5cb);throw _0x12e5cb;});}return _0x219ac5;})[_0xb0fe('0x28')](respondWithResult(_0x1eb5e6,0xc9))[_0xb0fe('0x43')](handleError(_0x1eb5e6,null));};exports[_0xb0fe('0x50')]=function(_0x370bc4,_0x5b0316){if(_0x370bc4[_0xb0fe('0x48')]['id']){delete _0x370bc4['body']['id'];}return db[_0xb0fe('0x44')][_0xb0fe('0x4c')]({'where':{'id':_0x370bc4[_0xb0fe('0x51')]['id']}})['then'](handleEntityNotFound(_0x5b0316,null))[_0xb0fe('0x28')](saveUpdates(_0x370bc4[_0xb0fe('0x48')],null))[_0xb0fe('0x28')](respondWithResult(_0x5b0316,null))[_0xb0fe('0x43')](handleError(_0x5b0316,null));};exports[_0xb0fe('0x29')]=function(_0x38b257,_0xa3bb2c){return db[_0xb0fe('0x44')][_0xb0fe('0x4c')]({'where':{'id':_0x38b257[_0xb0fe('0x51')]['id']}})[_0xb0fe('0x28')](handleEntityNotFound(_0xa3bb2c,null))[_0xb0fe('0x28')](removeEntity(_0xa3bb2c,null))[_0xb0fe('0x43')](handleError(_0xa3bb2c,null));};exports['addUsers']=function(_0x1154a9,_0x3e31eb,_0x550c77){return db[_0xb0fe('0x44')]['find']({'where':{'id':_0x1154a9[_0xb0fe('0x51')]['id']}})[_0xb0fe('0x28')](handleEntityNotFound(_0x3e31eb,null))['then'](function(_0x38deb9){if(_0x38deb9){return _0x38deb9[_0xb0fe('0x52')](_0x1154a9[_0xb0fe('0x48')][_0xb0fe('0x53')],_['omit'](_0x1154a9['body'],[_0xb0fe('0x53'),'id'])||{});}})['then'](respondWithResult(_0x3e31eb,null))[_0xb0fe('0x43')](handleError(_0x3e31eb,null));};exports[_0xb0fe('0x54')]=function(_0x35e84a,_0x562eaf,_0x495e71){return db[_0xb0fe('0x44')][_0xb0fe('0x4c')]({'where':{'id':_0x35e84a[_0xb0fe('0x51')]['id']}})[_0xb0fe('0x28')](handleEntityNotFound(_0x562eaf,null))[_0xb0fe('0x28')](function(_0x2fd4da){if(_0x2fd4da){return _0x2fd4da[_0xb0fe('0x54')](_0x35e84a[_0xb0fe('0x38')][_0xb0fe('0x53')])[_0xb0fe('0x28')](function(){if(_[_0xb0fe('0x55')](_0x35e84a[_0xb0fe('0x38')]['ids'])){for(var _0x34ae81=0x0;_0x34ae81<_0x35e84a[_0xb0fe('0x38')]['ids'][_0xb0fe('0x45')];_0x34ae81+=0x1){socket[_0xb0fe('0x56')](_0xb0fe('0x57'),{'UserId':Number(_0x35e84a['query'][_0xb0fe('0x53')][_0x34ae81]),'SquareProjectId':Number(_0x35e84a[_0xb0fe('0x51')]['id'])});}}else{socket[_0xb0fe('0x56')]('userSquareProject:remove',{'UserId':Number(_0x35e84a[_0xb0fe('0x38')][_0xb0fe('0x53')]),'SquareProjectId':Number(_0x35e84a[_0xb0fe('0x51')]['id'])});}});}})[_0xb0fe('0x28')](respondWithStatusCode(_0x562eaf,null))['catch'](handleError(_0x562eaf,null));};exports[_0xb0fe('0x58')]=function(_0x4f5e9f,_0x45c004,_0x693b94){var _0x185b97={};var _0x1548a8={};var _0x27c5b0;var _0x4d689f;return db[_0xb0fe('0x44')][_0xb0fe('0x59')]({'where':{'id':_0x4f5e9f[_0xb0fe('0x51')]['id']}})[_0xb0fe('0x28')](handleEntityNotFound(_0x45c004,null))[_0xb0fe('0x28')](function(_0xab927){if(_0xab927){_0x27c5b0=_0xab927;_0x1548a8[_0xb0fe('0x35')]=_[_0xb0fe('0x32')](db[_0xb0fe('0x5a')][_0xb0fe('0x2f')]);_0x1548a8[_0xb0fe('0x38')]=_['keys'](_0x4f5e9f[_0xb0fe('0x38')]);_0x1548a8[_0xb0fe('0x33')]=_[_0xb0fe('0x34')](_0x1548a8[_0xb0fe('0x35')],_0x1548a8[_0xb0fe('0x38')]);_0x185b97[_0xb0fe('0x37')]=_['intersection'](_0x1548a8['model'],qs[_0xb0fe('0x36')](_0x4f5e9f[_0xb0fe('0x38')][_0xb0fe('0x36')]));_0x185b97['attributes']=_0x185b97[_0xb0fe('0x37')][_0xb0fe('0x45')]?_0x185b97['attributes']:_0x1548a8[_0xb0fe('0x35')];_0x185b97[_0xb0fe('0x39')]=qs['sort'](_0x4f5e9f[_0xb0fe('0x38')][_0xb0fe('0x3a')]);_0x185b97['where']=qs[_0xb0fe('0x33')](_['pick'](_0x4f5e9f['query'],_0x1548a8['filters']));if(_0x4f5e9f[_0xb0fe('0x38')]['filter']){_0x185b97[_0xb0fe('0x3b')]=_[_0xb0fe('0x3c')](_0x185b97[_0xb0fe('0x3b')],{'$or':_[_0xb0fe('0x31')](_0x185b97[_0xb0fe('0x37')],function(_0x4f64be){var _0x508097={};_0x508097[_0x4f64be]={'$like':'%'+_0x4f5e9f[_0xb0fe('0x38')]['filter']+'%'};return _0x508097;})});}_0x185b97=_[_0xb0fe('0x3c')]({},_0x185b97,_0x4f5e9f[_0xb0fe('0x3f')]);return _0x27c5b0[_0xb0fe('0x58')](_0x185b97);}})[_0xb0fe('0x28')](function(_0xe76f1a){if(_0xe76f1a){_0x4d689f=_0xe76f1a['length'];if(!_0x4f5e9f[_0xb0fe('0x38')][_0xb0fe('0x5b')](_0xb0fe('0x5c'))){_0x185b97[_0xb0fe('0x22')]=qs['limit'](_0x4f5e9f[_0xb0fe('0x38')][_0xb0fe('0x22')]);_0x185b97['offset']=qs[_0xb0fe('0x20')](_0x4f5e9f[_0xb0fe('0x38')]['offset']);}return _0x27c5b0[_0xb0fe('0x58')](_0x185b97);}})['then'](function(_0x354e25){if(_0x354e25){return _0x354e25?{'count':_0x4d689f,'rows':_0x354e25}:null;}})[_0xb0fe('0x28')](respondWithResult(_0x45c004,null))[_0xb0fe('0x43')](handleError(_0x45c004,null));};
\ No newline at end of file
+var _0x8c49=['offset','set','apply','reject','then','destroy','get','UserProfileResource','sendStatus','error','name','send','index','map','SquareProject','rawAttributes','key','model','keys','query','intersection','attributes','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','fields','length','include','find','create','user','SquareProjects','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','addUsers','omit','ids','removeUsers','emit','userSquareProject:remove','getUsers','findOne','User','filters','hasOwnProperty','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./squareProject.socket','end','status','json','undefined','limit','count'];(function(_0x1e9424,_0x191cba){var _0x1bd96c=function(_0x5e952d){while(--_0x5e952d){_0x1e9424['push'](_0x1e9424['shift']());}};_0x1bd96c(++_0x191cba);}(_0x8c49,0xf8));var _0x98c4=function(_0x483807,_0x11861b){_0x483807=_0x483807-0x0;var _0x1f678a=_0x8c49[_0x483807];return _0x1f678a;};'use strict';var emlformat=require(_0x98c4('0x0'));var rimraf=require(_0x98c4('0x1'));var zipdir=require(_0x98c4('0x2'));var jsonpatch=require(_0x98c4('0x3'));var rp=require('request-promise');var moment=require(_0x98c4('0x4'));var BPromise=require(_0x98c4('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x98c4('0x6'));var sox=require(_0x98c4('0x7'));var csv=require(_0x98c4('0x8'));var ejs=require(_0x98c4('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x98c4('0xa'));var crypto=require(_0x98c4('0xb'));var jsforce=require(_0x98c4('0xc'));var deskjs=require(_0x98c4('0xd'));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(_0x98c4('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x98c4('0xf'));var logger=require(_0x98c4('0x10'))(_0x98c4('0x11'));var utils=require(_0x98c4('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x98c4('0x13'));var db=require(_0x98c4('0x14'))['db'];config[_0x98c4('0x15')]=_[_0x98c4('0x16')](config[_0x98c4('0x15')],{'host':'localhost','port':0x18eb});var socket=require(_0x98c4('0x17'))(new Redis(config['redis']));require(_0x98c4('0x18'))['register'](socket);function respondWithStatusCode(_0x16bca2,_0x2782a7){_0x2782a7=_0x2782a7||0xcc;return function(_0x52da23){if(_0x52da23){return _0x16bca2['sendStatus'](_0x2782a7);}return _0x16bca2['status'](_0x2782a7)[_0x98c4('0x19')]();};}function respondWithResult(_0x556fc0,_0x3d8ee3){_0x3d8ee3=_0x3d8ee3||0xc8;return function(_0x47cd3e){if(_0x47cd3e){return _0x556fc0[_0x98c4('0x1a')](_0x3d8ee3)[_0x98c4('0x1b')](_0x47cd3e);}};}function respondWithFilteredResult(_0x53b65d,_0x294458){return function(_0xa36335){if(_0xa36335){var _0x15cef3=typeof _0x294458['offset']===_0x98c4('0x1c')&&typeof _0x294458[_0x98c4('0x1d')]==='undefined';var _0x49d900=_0xa36335[_0x98c4('0x1e')];var _0x6ff4e2=_0x15cef3?0x0:_0x294458[_0x98c4('0x1f')];var _0x470ac7=_0x15cef3?_0xa36335[_0x98c4('0x1e')]:_0x294458[_0x98c4('0x1f')]+_0x294458[_0x98c4('0x1d')];var _0x409ea6;if(_0x470ac7>=_0x49d900){_0x470ac7=_0x49d900;_0x409ea6=0xc8;}else{_0x409ea6=0xce;}_0x53b65d[_0x98c4('0x1a')](_0x409ea6);return _0x53b65d[_0x98c4('0x20')]('Content-Range',_0x6ff4e2+'-'+_0x470ac7+'/'+_0x49d900)[_0x98c4('0x1b')](_0xa36335);}return null;};}function patchUpdates(_0x326113){return function(_0x36d65c){try{jsonpatch[_0x98c4('0x21')](_0x36d65c,_0x326113,!![]);}catch(_0x9277b0){return BPromise[_0x98c4('0x22')](_0x9277b0);}return _0x36d65c['save']();};}function saveUpdates(_0xaebf19,_0x2b4e84){return function(_0x101206){if(_0x101206){return _0x101206['update'](_0xaebf19)[_0x98c4('0x23')](function(_0x41f7a6){return _0x41f7a6;});}return null;};}function removeEntity(_0x32168a,_0x4232a9){return function(_0x263722){if(_0x263722){return _0x263722[_0x98c4('0x24')]()['then'](function(){var _0x10314f=_0x263722[_0x98c4('0x25')]({'plain':!![]});var _0x5dad61='SquareProjects';return db[_0x98c4('0x26')][_0x98c4('0x24')]({'where':{'type':_0x5dad61,'resourceId':_0x10314f['id']}})[_0x98c4('0x23')](function(){return _0x263722;});})[_0x98c4('0x23')](function(){_0x32168a[_0x98c4('0x1a')](0xcc)[_0x98c4('0x19')]();});}};}function handleEntityNotFound(_0x44ac8c,_0x127bd7){return function(_0x2082cd){if(!_0x2082cd){_0x44ac8c[_0x98c4('0x27')](0x194);}return _0x2082cd;};}function handleError(_0x1eee2e,_0x475828){_0x475828=_0x475828||0x1f4;return function(_0x16b669){logger[_0x98c4('0x28')](_0x16b669['stack']);if(_0x16b669['name']){delete _0x16b669[_0x98c4('0x29')];}_0x1eee2e[_0x98c4('0x1a')](_0x475828)[_0x98c4('0x2a')](_0x16b669);};}exports[_0x98c4('0x2b')]=function(_0x56e18a,_0x16fd20){var _0x2fdefb={},_0x20e135={},_0x32e990={'count':0x0,'rows':[]};var _0x3f306b=_[_0x98c4('0x2c')](db[_0x98c4('0x2d')][_0x98c4('0x2e')],function(_0x3697ec){return{'name':_0x3697ec['fieldName'],'type':_0x3697ec['type'][_0x98c4('0x2f')]};});_0x20e135[_0x98c4('0x30')]=_[_0x98c4('0x2c')](_0x3f306b,_0x98c4('0x29'));_0x20e135['query']=_[_0x98c4('0x31')](_0x56e18a[_0x98c4('0x32')]);_0x20e135['filters']=_[_0x98c4('0x33')](_0x20e135[_0x98c4('0x30')],_0x20e135[_0x98c4('0x32')]);_0x2fdefb[_0x98c4('0x34')]=_[_0x98c4('0x33')](_0x20e135[_0x98c4('0x30')],qs['fields'](_0x56e18a[_0x98c4('0x32')]['fields']));_0x2fdefb[_0x98c4('0x34')]=_0x2fdefb['attributes']['length']?_0x2fdefb[_0x98c4('0x34')]:_0x20e135[_0x98c4('0x30')];if(!_0x56e18a[_0x98c4('0x32')]['hasOwnProperty'](_0x98c4('0x35'))){_0x2fdefb[_0x98c4('0x1d')]=qs[_0x98c4('0x1d')](_0x56e18a[_0x98c4('0x32')][_0x98c4('0x1d')]);_0x2fdefb[_0x98c4('0x1f')]=qs[_0x98c4('0x1f')](_0x56e18a[_0x98c4('0x32')]['offset']);}_0x2fdefb[_0x98c4('0x36')]=qs[_0x98c4('0x37')](_0x56e18a['query'][_0x98c4('0x37')]);_0x2fdefb[_0x98c4('0x38')]=qs['filters'](_[_0x98c4('0x39')](_0x56e18a[_0x98c4('0x32')],_0x20e135['filters']),_0x3f306b);if(_0x56e18a[_0x98c4('0x32')][_0x98c4('0x3a')]){_0x2fdefb[_0x98c4('0x38')]=_[_0x98c4('0x3b')](_0x2fdefb[_0x98c4('0x38')],{'$or':_['map'](_0x3f306b,function(_0x4446f0){if(_0x4446f0[_0x98c4('0x3c')]!==_0x98c4('0x3d')){var _0x4c5776={};_0x4c5776[_0x4446f0[_0x98c4('0x29')]]={'$like':'%'+_0x56e18a[_0x98c4('0x32')][_0x98c4('0x3a')]+'%'};return _0x4c5776;}})});}_0x2fdefb=_['merge']({},_0x2fdefb,_0x56e18a[_0x98c4('0x3e')]);var _0x5cc417={'where':_0x2fdefb['where']};return db[_0x98c4('0x2d')][_0x98c4('0x1e')](_0x5cc417)[_0x98c4('0x23')](function(_0x38c19c){_0x32e990[_0x98c4('0x1e')]=_0x38c19c;if(_0x56e18a[_0x98c4('0x32')][_0x98c4('0x3f')]){_0x2fdefb['include']=[{'all':!![]}];}return db[_0x98c4('0x2d')][_0x98c4('0x40')](_0x2fdefb);})[_0x98c4('0x23')](function(_0x4282d2){_0x32e990[_0x98c4('0x41')]=_0x4282d2;return _0x32e990;})['then'](respondWithFilteredResult(_0x16fd20,_0x2fdefb))[_0x98c4('0x42')](handleError(_0x16fd20,null));};exports[_0x98c4('0x43')]=function(_0x381a1f,_0x13df0e){var _0xebdf62={'raw':![],'where':{'id':_0x381a1f[_0x98c4('0x44')]['id']}},_0x5a04cc={};_0x5a04cc[_0x98c4('0x30')]=_[_0x98c4('0x31')](db[_0x98c4('0x2d')][_0x98c4('0x2e')]);_0x5a04cc['query']=_[_0x98c4('0x31')](_0x381a1f['query']);_0x5a04cc['filters']=_[_0x98c4('0x33')](_0x5a04cc[_0x98c4('0x30')],_0x5a04cc['query']);_0xebdf62[_0x98c4('0x34')]=_['intersection'](_0x5a04cc[_0x98c4('0x30')],qs[_0x98c4('0x45')](_0x381a1f[_0x98c4('0x32')][_0x98c4('0x45')]));_0xebdf62[_0x98c4('0x34')]=_0xebdf62[_0x98c4('0x34')][_0x98c4('0x46')]?_0xebdf62[_0x98c4('0x34')]:_0x5a04cc[_0x98c4('0x30')];if(_0x381a1f[_0x98c4('0x32')][_0x98c4('0x3f')]){_0xebdf62[_0x98c4('0x47')]=[{'all':!![]}];}_0xebdf62=_['merge']({},_0xebdf62,_0x381a1f[_0x98c4('0x3e')]);return db[_0x98c4('0x2d')][_0x98c4('0x48')](_0xebdf62)[_0x98c4('0x23')](handleEntityNotFound(_0x13df0e,null))[_0x98c4('0x23')](respondWithResult(_0x13df0e,null))[_0x98c4('0x42')](handleError(_0x13df0e,null));};exports['create']=function(_0x4dcfe2,_0x13b3c8){return db['SquareProject'][_0x98c4('0x49')](_0x4dcfe2['body'],{})['then'](function(_0x2204ec){var _0x38f3f2=_0x4dcfe2[_0x98c4('0x4a')]['get']({'plain':!![]});if(!_0x38f3f2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x38f3f2['role']===_0x98c4('0x4a')){var _0x358643=_0x2204ec['get']({'plain':!![]});var _0x4700bc=_0x98c4('0x4b');return db[_0x98c4('0x4c')][_0x98c4('0x48')]({'where':{'name':_0x4700bc,'userProfileId':_0x38f3f2[_0x98c4('0x4d')]},'raw':!![]})[_0x98c4('0x23')](function(_0x58d3b1){if(_0x58d3b1&&_0x58d3b1[_0x98c4('0x4e')]===0x0){return db[_0x98c4('0x26')][_0x98c4('0x49')]({'name':_0x358643['name'],'resourceId':_0x358643['id'],'type':_0x58d3b1[_0x98c4('0x29')],'sectionId':_0x58d3b1['id']},{})['then'](function(){return _0x2204ec;});}else{return _0x2204ec;}})[_0x98c4('0x42')](function(_0x321bb6){logger['error'](_0x98c4('0x4f'),_0x321bb6);throw _0x321bb6;});}return _0x2204ec;})[_0x98c4('0x23')](respondWithResult(_0x13b3c8,0xc9))[_0x98c4('0x42')](handleError(_0x13b3c8,null));};exports[_0x98c4('0x50')]=function(_0xa731f3,_0xf48ead){if(_0xa731f3['body']['id']){delete _0xa731f3[_0x98c4('0x51')]['id'];}return db[_0x98c4('0x2d')]['find']({'where':{'id':_0xa731f3[_0x98c4('0x44')]['id']}})[_0x98c4('0x23')](handleEntityNotFound(_0xf48ead,null))[_0x98c4('0x23')](saveUpdates(_0xa731f3[_0x98c4('0x51')],null))[_0x98c4('0x23')](respondWithResult(_0xf48ead,null))[_0x98c4('0x42')](handleError(_0xf48ead,null));};exports[_0x98c4('0x24')]=function(_0x30fd31,_0x2ae9fd){return db[_0x98c4('0x2d')][_0x98c4('0x48')]({'where':{'id':_0x30fd31[_0x98c4('0x44')]['id']}})[_0x98c4('0x23')](handleEntityNotFound(_0x2ae9fd,null))[_0x98c4('0x23')](removeEntity(_0x2ae9fd,null))[_0x98c4('0x42')](handleError(_0x2ae9fd,null));};exports[_0x98c4('0x52')]=function(_0x233ab2,_0x44a5da,_0x106366){return db[_0x98c4('0x2d')][_0x98c4('0x48')]({'where':{'id':_0x233ab2[_0x98c4('0x44')]['id']}})[_0x98c4('0x23')](handleEntityNotFound(_0x44a5da,null))[_0x98c4('0x23')](function(_0x3fdb6){if(_0x3fdb6){return _0x3fdb6['addUsers'](_0x233ab2['body']['ids'],_[_0x98c4('0x53')](_0x233ab2['body'],[_0x98c4('0x54'),'id'])||{});}})[_0x98c4('0x23')](respondWithResult(_0x44a5da,null))[_0x98c4('0x42')](handleError(_0x44a5da,null));};exports['removeUsers']=function(_0x246b5b,_0x2d3ce0,_0x4e7419){return db[_0x98c4('0x2d')][_0x98c4('0x48')]({'where':{'id':_0x246b5b[_0x98c4('0x44')]['id']}})['then'](handleEntityNotFound(_0x2d3ce0,null))[_0x98c4('0x23')](function(_0x4ede8b){if(_0x4ede8b){return _0x4ede8b[_0x98c4('0x55')](_0x246b5b['query']['ids'])[_0x98c4('0x23')](function(){if(_['isArray'](_0x246b5b[_0x98c4('0x32')][_0x98c4('0x54')])){for(var _0x4a8ec3=0x0;_0x4a8ec3<_0x246b5b[_0x98c4('0x32')]['ids']['length'];_0x4a8ec3+=0x1){socket[_0x98c4('0x56')](_0x98c4('0x57'),{'UserId':Number(_0x246b5b['query'][_0x98c4('0x54')][_0x4a8ec3]),'SquareProjectId':Number(_0x246b5b[_0x98c4('0x44')]['id'])});}}else{socket[_0x98c4('0x56')](_0x98c4('0x57'),{'UserId':Number(_0x246b5b[_0x98c4('0x32')]['ids']),'SquareProjectId':Number(_0x246b5b[_0x98c4('0x44')]['id'])});}});}})[_0x98c4('0x23')](respondWithStatusCode(_0x2d3ce0,null))['catch'](handleError(_0x2d3ce0,null));};exports[_0x98c4('0x58')]=function(_0x499c97,_0x5c0d65,_0x1c2643){var _0x27c7b9={};var _0x663060={};var _0x2d6ed9;var _0xb6f939;return db[_0x98c4('0x2d')][_0x98c4('0x59')]({'where':{'id':_0x499c97[_0x98c4('0x44')]['id']}})['then'](handleEntityNotFound(_0x5c0d65,null))[_0x98c4('0x23')](function(_0x501dd3){if(_0x501dd3){_0x2d6ed9=_0x501dd3;_0x663060[_0x98c4('0x30')]=_[_0x98c4('0x31')](db[_0x98c4('0x5a')][_0x98c4('0x2e')]);_0x663060[_0x98c4('0x32')]=_[_0x98c4('0x31')](_0x499c97['query']);_0x663060[_0x98c4('0x5b')]=_[_0x98c4('0x33')](_0x663060['model'],_0x663060[_0x98c4('0x32')]);_0x27c7b9[_0x98c4('0x34')]=_[_0x98c4('0x33')](_0x663060['model'],qs[_0x98c4('0x45')](_0x499c97['query']['fields']));_0x27c7b9[_0x98c4('0x34')]=_0x27c7b9[_0x98c4('0x34')][_0x98c4('0x46')]?_0x27c7b9['attributes']:_0x663060['model'];_0x27c7b9[_0x98c4('0x36')]=qs[_0x98c4('0x37')](_0x499c97[_0x98c4('0x32')][_0x98c4('0x37')]);_0x27c7b9[_0x98c4('0x38')]=qs[_0x98c4('0x5b')](_[_0x98c4('0x39')](_0x499c97[_0x98c4('0x32')],_0x663060[_0x98c4('0x5b')]));if(_0x499c97['query'][_0x98c4('0x3a')]){_0x27c7b9[_0x98c4('0x38')]=_['merge'](_0x27c7b9[_0x98c4('0x38')],{'$or':_['map'](_0x27c7b9[_0x98c4('0x34')],function(_0x49a752){var _0x19d5e4={};_0x19d5e4[_0x49a752]={'$like':'%'+_0x499c97[_0x98c4('0x32')]['filter']+'%'};return _0x19d5e4;})});}_0x27c7b9=_['merge']({},_0x27c7b9,_0x499c97[_0x98c4('0x3e')]);return _0x2d6ed9['getUsers'](_0x27c7b9);}})['then'](function(_0x11023b){if(_0x11023b){_0xb6f939=_0x11023b['length'];if(!_0x499c97[_0x98c4('0x32')][_0x98c4('0x5c')](_0x98c4('0x35'))){_0x27c7b9[_0x98c4('0x1d')]=qs[_0x98c4('0x1d')](_0x499c97['query']['limit']);_0x27c7b9[_0x98c4('0x1f')]=qs[_0x98c4('0x1f')](_0x499c97[_0x98c4('0x32')][_0x98c4('0x1f')]);}return _0x2d6ed9[_0x98c4('0x58')](_0x27c7b9);}})[_0x98c4('0x23')](function(_0x16f4d8){if(_0x16f4d8){return _0x16f4d8?{'count':_0xb6f939,'rows':_0x16f4d8}:null;}})['then'](respondWithResult(_0x5c0d65,null))[_0x98c4('0x42')](handleError(_0x5c0d65,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a2e=['hook','exports','events','../../mysqldb','SquareProject','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0x566622,_0x399507){var _0x1851dd=function(_0xbd926c){while(--_0xbd926c){_0x566622['push'](_0x566622['shift']());}};_0x1851dd(++_0x399507);}(_0x7a2e,0x157));var _0xe7a2=function(_0x4e676e,_0x2a7c6d){_0x4e676e=_0x4e676e-0x0;var _0x336a3c=_0x7a2e[_0x4e676e];return _0x336a3c;};'use strict';var EventEmitter=require(_0xe7a2('0x0'));var SquareProject=require(_0xe7a2('0x1'))['db'][_0xe7a2('0x2')];var SquareProjectEvents=new EventEmitter();SquareProjectEvents[_0xe7a2('0x3')](0x0);var events={'afterCreate':_0xe7a2('0x4'),'afterUpdate':_0xe7a2('0x5'),'afterDestroy':_0xe7a2('0x6')};function emitEvent(_0x3379ca){return function(_0x1b7dad,_0x5398be,_0xb8ca8d){SquareProjectEvents[_0xe7a2('0x7')](_0x3379ca+':'+_0x1b7dad['id'],_0x1b7dad);SquareProjectEvents[_0xe7a2('0x7')](_0x3379ca,_0x1b7dad);_0xb8ca8d(null);};}for(var e in events){if(events[_0xe7a2('0x8')](e)){var event=events[e];SquareProject[_0xe7a2('0x9')](e,emitEvent(event));}}module[_0xe7a2('0xa')]=SquareProjectEvents;
\ No newline at end of file
+var _0xd99d=['hook','events','../../mysqldb','save','update','remove','emit','hasOwnProperty'];(function(_0x33032e,_0x31411a){var _0x13316b=function(_0x2fb049){while(--_0x2fb049){_0x33032e['push'](_0x33032e['shift']());}};_0x13316b(++_0x31411a);}(_0xd99d,0x179));var _0xdd99=function(_0x4a66a0,_0x46a69f){_0x4a66a0=_0x4a66a0-0x0;var _0x1ae60b=_0xd99d[_0x4a66a0];return _0x1ae60b;};'use strict';var EventEmitter=require(_0xdd99('0x0'));var SquareProject=require(_0xdd99('0x1'))['db']['SquareProject'];var SquareProjectEvents=new EventEmitter();SquareProjectEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xdd99('0x2'),'afterUpdate':_0xdd99('0x3'),'afterDestroy':_0xdd99('0x4')};function emitEvent(_0x427fd3){return function(_0x236b54,_0x59f27b,_0x79d1e){SquareProjectEvents['emit'](_0x427fd3+':'+_0x236b54['id'],_0x236b54);SquareProjectEvents[_0xdd99('0x5')](_0x427fd3,_0x236b54);_0x79d1e(null);};}for(var e in events){if(events[_0xdd99('0x6')](e)){var event=events[e];SquareProject[_0xdd99('0x7')](e,emitEvent(event));}}module['exports']=SquareProjectEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e27=['rimraf','../../config/environment','./squareProject.attributes','define','square_projects','savedAt','YYYY-MM-DD\x20HH:mm:ss','changed','publishedAt','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x407cda,_0x1b4d98){var _0x5b6c92=function(_0x43db12){while(--_0x43db12){_0x407cda['push'](_0x407cda['shift']());}};_0x5b6c92(++_0x1b4d98);}(_0x5e27,0xc4));var _0x75e2=function(_0x5432d9,_0x28d20e){_0x5432d9=_0x5432d9-0x0;var _0x39aecf=_0x5e27[_0x5432d9];return _0x39aecf;};'use strict';var _=require(_0x75e2('0x0'));var util=require(_0x75e2('0x1'));var logger=require(_0x75e2('0x2'))(_0x75e2('0x3'));var moment=require(_0x75e2('0x4'));var BPromise=require(_0x75e2('0x5'));var rp=require(_0x75e2('0x6'));var fs=require('fs');var path=require(_0x75e2('0x7'));var rimraf=require(_0x75e2('0x8'));var config=require(_0x75e2('0x9'));var attributes=require(_0x75e2('0xa'));module['exports']=function(_0x5d42ff,_0x166fb2){return _0x5d42ff[_0x75e2('0xb')]('SquareProject',attributes,{'tableName':_0x75e2('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x500558,_0x2dffa5,_0x47e2ba){if(_0x500558['changed']('preproduction')){_0x500558[_0x75e2('0xd')]=moment()['format'](_0x75e2('0xe'));}if(_0x500558[_0x75e2('0xf')]('production')){_0x500558[_0x75e2('0x10')]=moment()['format'](_0x75e2('0xe'));}_0x47e2ba(null,_0x500558);}}});};
\ No newline at end of file
+var _0x5c62=['publishedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./squareProject.attributes','exports','define','SquareProject','square_projects','changed','preproduction'];(function(_0x310504,_0x26ad95){var _0x5b36d0=function(_0x253f28){while(--_0x253f28){_0x310504['push'](_0x310504['shift']());}};_0x5b36d0(++_0x26ad95);}(_0x5c62,0x120));var _0x25c6=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x5c62[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0x25c6('0x0'));var util=require(_0x25c6('0x1'));var logger=require(_0x25c6('0x2'))(_0x25c6('0x3'));var moment=require(_0x25c6('0x4'));var BPromise=require(_0x25c6('0x5'));var rp=require(_0x25c6('0x6'));var fs=require('fs');var path=require(_0x25c6('0x7'));var rimraf=require('rimraf');var config=require(_0x25c6('0x8'));var attributes=require(_0x25c6('0x9'));module[_0x25c6('0xa')]=function(_0x5bc01d,_0x3a6b97){return _0x5bc01d[_0x25c6('0xb')](_0x25c6('0xc'),attributes,{'tableName':_0x25c6('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x40b2ca,_0x56a2d5,_0x5a6a98){if(_0x40b2ca[_0x25c6('0xe')](_0x25c6('0xf'))){_0x40b2ca['savedAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0x40b2ca[_0x25c6('0xe')]('production')){_0x40b2ca[_0x25c6('0x10')]=moment()[_0x25c6('0x11')](_0x25c6('0x12'));}_0x5a6a98(null,_0x40b2ca);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d83=['SquareProject,\x20%s,\x20%s','debug','request\x20sent','error','code','message','result','ShowSquareProject','find','options','where','include','map','model','attributes','stringify','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./squareProject.socket','register','then','info'];(function(_0x49d280,_0x33d68f){var _0x25274a=function(_0x8ace90){while(--_0x8ace90){_0x49d280['push'](_0x49d280['shift']());}};_0x25274a(++_0x33d68f);}(_0x5d83,0xe9));var _0x35d8=function(_0x3ced91,_0x19cb7a){_0x3ced91=_0x3ced91-0x0;var _0x56fd4c=_0x5d83[_0x3ced91];return _0x56fd4c;};'use strict';var _=require(_0x35d8('0x0'));var util=require(_0x35d8('0x1'));var moment=require(_0x35d8('0x2'));var BPromise=require(_0x35d8('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x35d8('0x4'));var db=require(_0x35d8('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x35d8('0x6'));var config=require(_0x35d8('0x7'));var jayson=require(_0x35d8('0x8'));var client=jayson[_0x35d8('0x9')][_0x35d8('0xa')]({'port':0x232a});config[_0x35d8('0xb')]=_[_0x35d8('0xc')](config[_0x35d8('0xb')],{'host':_0x35d8('0xd'),'port':0x18eb});var socket=require(_0x35d8('0xe'))(new Redis(config[_0x35d8('0xb')]));require(_0x35d8('0xf'))[_0x35d8('0x10')](socket);function respondWithRpcPromise(_0x5790e8,_0x523be0,_0x272c1f){return new BPromise(function(_0x8ab90d,_0x1895b9){return client['request'](_0x5790e8,_0x272c1f)[_0x35d8('0x11')](function(_0x2c137e){logger[_0x35d8('0x12')](_0x35d8('0x13'),_0x523be0,'request\x20sent');logger[_0x35d8('0x14')]('SquareProject,\x20%s,\x20%s,\x20%s',_0x523be0,_0x35d8('0x15'),JSON['stringify'](_0x2c137e));if(_0x2c137e['error']){if(_0x2c137e[_0x35d8('0x16')][_0x35d8('0x17')]===0x1f4){logger[_0x35d8('0x16')](_0x35d8('0x13'),_0x523be0,_0x2c137e[_0x35d8('0x16')][_0x35d8('0x18')]);return _0x1895b9(_0x2c137e['error'][_0x35d8('0x18')]);}logger[_0x35d8('0x16')]('SquareProject,\x20%s,\x20%s',_0x523be0,_0x2c137e[_0x35d8('0x16')][_0x35d8('0x18')]);return _0x8ab90d(_0x2c137e['error']['message']);}else{logger['info']('SquareProject,\x20%s,\x20%s',_0x523be0,_0x35d8('0x15'));_0x8ab90d(_0x2c137e[_0x35d8('0x19')][_0x35d8('0x18')]);}})['catch'](function(_0x1b8d49){logger[_0x35d8('0x16')](_0x35d8('0x13'),_0x523be0,_0x1b8d49);_0x1895b9(_0x1b8d49);});});}exports[_0x35d8('0x1a')]=function(_0x192e3b){var _0x521107=this;return new Promise(function(_0x27fe34,_0x25ab7){return db['SquareProject'][_0x35d8('0x1b')]({'raw':_0x192e3b[_0x35d8('0x1c')]?_0x192e3b['options']['raw']===undefined?!![]:![]:!![],'where':_0x192e3b[_0x35d8('0x1c')]?_0x192e3b[_0x35d8('0x1c')][_0x35d8('0x1d')]||null:null,'attributes':_0x192e3b[_0x35d8('0x1c')]?_0x192e3b[_0x35d8('0x1c')]['attributes']||null:null,'include':_0x192e3b[_0x35d8('0x1c')]?_0x192e3b[_0x35d8('0x1c')][_0x35d8('0x1e')]?_[_0x35d8('0x1f')](_0x192e3b['options']['include'],function(_0x3fada5){return{'model':db[_0x3fada5[_0x35d8('0x20')]],'as':_0x3fada5['as'],'attributes':_0x3fada5[_0x35d8('0x21')],'include':_0x3fada5[_0x35d8('0x1e')]?_[_0x35d8('0x1f')](_0x3fada5[_0x35d8('0x1e')],function(_0x44443d){return{'model':db[_0x44443d[_0x35d8('0x20')]],'as':_0x44443d['as'],'attributes':_0x44443d['attributes'],'include':_0x44443d[_0x35d8('0x1e')]?_[_0x35d8('0x1f')](_0x44443d[_0x35d8('0x1e')],function(_0x26c21e){return{'model':db[_0x26c21e[_0x35d8('0x20')]],'as':_0x26c21e['as'],'attributes':_0x26c21e[_0x35d8('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x44145c){logger[_0x35d8('0x12')]('ShowSquareProject',_0x192e3b);logger[_0x35d8('0x14')](_0x35d8('0x1a'),_0x192e3b,JSON[_0x35d8('0x22')](_0x44145c));_0x27fe34(_0x44145c);})[_0x35d8('0x23')](function(_0x248628){logger['error'](_0x35d8('0x1a'),_0x248628[_0x35d8('0x18')],_0x192e3b);_0x25ab7(_0x521107[_0x35d8('0x16')](0x1f4,_0x248628[_0x35d8('0x18')]));});});};
\ No newline at end of file
+var _0xd0cf=['client','http','redis','defaults','localhost','socket.io-emitter','./squareProject.socket','register','request','info','SquareProject,\x20%s,\x20%s','request\x20sent','debug','SquareProject,\x20%s,\x20%s,\x20%s','error','message','result','catch','ShowSquareProject','SquareProject','find','options','where','attributes','include','map','model','then','stringify','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise'];(function(_0x15bce2,_0x54d97b){var _0x17f066=function(_0x535017){while(--_0x535017){_0x15bce2['push'](_0x15bce2['shift']());}};_0x17f066(++_0x54d97b);}(_0xd0cf,0x185));var _0xfd0c=function(_0x5954d2,_0x15db93){_0x5954d2=_0x5954d2-0x0;var _0x316928=_0xd0cf[_0x5954d2];return _0x316928;};'use strict';var _=require(_0xfd0c('0x0'));var util=require(_0xfd0c('0x1'));var moment=require(_0xfd0c('0x2'));var BPromise=require(_0xfd0c('0x3'));var rs=require(_0xfd0c('0x4'));var fs=require('fs');var Redis=require(_0xfd0c('0x5'));var db=require(_0xfd0c('0x6'))['db'];var utils=require(_0xfd0c('0x7'));var logger=require(_0xfd0c('0x8'))(_0xfd0c('0x9'));var config=require('../../config/environment');var jayson=require(_0xfd0c('0xa'));var client=jayson[_0xfd0c('0xb')][_0xfd0c('0xc')]({'port':0x232a});config[_0xfd0c('0xd')]=_[_0xfd0c('0xe')](config[_0xfd0c('0xd')],{'host':_0xfd0c('0xf'),'port':0x18eb});var socket=require(_0xfd0c('0x10'))(new Redis(config[_0xfd0c('0xd')]));require(_0xfd0c('0x11'))[_0xfd0c('0x12')](socket);function respondWithRpcPromise(_0x27fa18,_0x56de40,_0x341f7e){return new BPromise(function(_0x21d71f,_0x1eb938){return client[_0xfd0c('0x13')](_0x27fa18,_0x341f7e)['then'](function(_0x807c0b){logger[_0xfd0c('0x14')](_0xfd0c('0x15'),_0x56de40,_0xfd0c('0x16'));logger[_0xfd0c('0x17')](_0xfd0c('0x18'),_0x56de40,_0xfd0c('0x16'),JSON['stringify'](_0x807c0b));if(_0x807c0b[_0xfd0c('0x19')]){if(_0x807c0b[_0xfd0c('0x19')]['code']===0x1f4){logger[_0xfd0c('0x19')](_0xfd0c('0x15'),_0x56de40,_0x807c0b[_0xfd0c('0x19')]['message']);return _0x1eb938(_0x807c0b[_0xfd0c('0x19')][_0xfd0c('0x1a')]);}logger['error'](_0xfd0c('0x15'),_0x56de40,_0x807c0b[_0xfd0c('0x19')]['message']);return _0x21d71f(_0x807c0b['error']['message']);}else{logger[_0xfd0c('0x14')](_0xfd0c('0x15'),_0x56de40,_0xfd0c('0x16'));_0x21d71f(_0x807c0b[_0xfd0c('0x1b')][_0xfd0c('0x1a')]);}})[_0xfd0c('0x1c')](function(_0x20fa9f){logger['error'](_0xfd0c('0x15'),_0x56de40,_0x20fa9f);_0x1eb938(_0x20fa9f);});});}exports[_0xfd0c('0x1d')]=function(_0x45bcb7){var _0x29bc6d=this;return new Promise(function(_0x5228bc,_0x59d659){return db[_0xfd0c('0x1e')][_0xfd0c('0x1f')]({'raw':_0x45bcb7[_0xfd0c('0x20')]?_0x45bcb7['options']['raw']===undefined?!![]:![]:!![],'where':_0x45bcb7[_0xfd0c('0x20')]?_0x45bcb7[_0xfd0c('0x20')][_0xfd0c('0x21')]||null:null,'attributes':_0x45bcb7[_0xfd0c('0x20')]?_0x45bcb7[_0xfd0c('0x20')][_0xfd0c('0x22')]||null:null,'include':_0x45bcb7[_0xfd0c('0x20')]?_0x45bcb7[_0xfd0c('0x20')][_0xfd0c('0x23')]?_[_0xfd0c('0x24')](_0x45bcb7[_0xfd0c('0x20')][_0xfd0c('0x23')],function(_0x32b948){return{'model':db[_0x32b948[_0xfd0c('0x25')]],'as':_0x32b948['as'],'attributes':_0x32b948[_0xfd0c('0x22')],'include':_0x32b948['include']?_['map'](_0x32b948[_0xfd0c('0x23')],function(_0x3dc90a){return{'model':db[_0x3dc90a[_0xfd0c('0x25')]],'as':_0x3dc90a['as'],'attributes':_0x3dc90a[_0xfd0c('0x22')],'include':_0x3dc90a[_0xfd0c('0x23')]?_[_0xfd0c('0x24')](_0x3dc90a[_0xfd0c('0x23')],function(_0x783d0e){return{'model':db[_0x783d0e[_0xfd0c('0x25')]],'as':_0x783d0e['as'],'attributes':_0x783d0e[_0xfd0c('0x22')]};}):[]};}):[]};}):[]:[]})[_0xfd0c('0x26')](function(_0x2a31e7){logger[_0xfd0c('0x14')]('ShowSquareProject',_0x45bcb7);logger[_0xfd0c('0x17')]('ShowSquareProject',_0x45bcb7,JSON[_0xfd0c('0x27')](_0x2a31e7));_0x5228bc(_0x2a31e7);})[_0xfd0c('0x1c')](function(_0x156d94){logger[_0xfd0c('0x19')](_0xfd0c('0x1d'),_0x156d94[_0xfd0c('0x1a')],_0x45bcb7);_0x59d659(_0x29bc6d[_0xfd0c('0x19')](0x1f4,_0x156d94[_0xfd0c('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe900=['squareProject:','./squareProject.events','save','remove','update','length'];(function(_0x138adb,_0x193fee){var _0x1b27f2=function(_0x5e97a2){while(--_0x5e97a2){_0x138adb['push'](_0x138adb['shift']());}};_0x1b27f2(++_0x193fee);}(_0xe900,0x109));var _0x0e90=function(_0x1c523f,_0x1c02d9){_0x1c523f=_0x1c523f-0x0;var _0x4a0047=_0xe900[_0x1c523f];return _0x4a0047;};'use strict';var SquareProjectEvents=require(_0x0e90('0x0'));var events=[_0x0e90('0x1'),_0x0e90('0x2'),_0x0e90('0x3')];function createListener(_0x4e8dae,_0x2b8daa){return function(_0x1b31a0){_0x2b8daa['emit'](_0x4e8dae,_0x1b31a0);};}function removeListener(_0x181ce3,_0x554d39){return function(){SquareProjectEvents['removeListener'](_0x181ce3,_0x554d39);};}exports['register']=function(_0x44cdbc){for(var _0x3146d5=0x0,_0x7a4fad=events[_0x0e90('0x4')];_0x3146d5<_0x7a4fad;_0x3146d5++){var _0x1a98da=events[_0x3146d5];var _0x560c77=createListener(_0x0e90('0x5')+_0x1a98da,_0x44cdbc);SquareProjectEvents['on'](_0x1a98da,_0x560c77);}};
\ No newline at end of file
+var _0xb3d4=['remove','update','register','squareProject:','save'];(function(_0x224095,_0x5ec204){var _0x239e48=function(_0x4f0a4a){while(--_0x4f0a4a){_0x224095['push'](_0x224095['shift']());}};_0x239e48(++_0x5ec204);}(_0xb3d4,0xfe));var _0x4b3d=function(_0x599806,_0x5f3282){_0x599806=_0x599806-0x0;var _0x4e87fd=_0xb3d4[_0x599806];return _0x4e87fd;};'use strict';var SquareProjectEvents=require('./squareProject.events');var events=[_0x4b3d('0x0'),_0x4b3d('0x1'),_0x4b3d('0x2')];function createListener(_0x21b729,_0x1d4cb6){return function(_0x470918){_0x1d4cb6['emit'](_0x21b729,_0x470918);};}function removeListener(_0x313331,_0x464a4f){return function(){SquareProjectEvents['removeListener'](_0x313331,_0x464a4f);};}exports[_0x4b3d('0x3')]=function(_0x51bf23){for(var _0x37d6a2=0x0,_0x2aae10=events['length'];_0x37d6a2<_0x2aae10;_0x37d6a2++){var _0x30c7f8=events[_0x37d6a2];var _0x46dd8a=createListener(_0x4b3d('0x4')+_0x30c7f8,_0x51bf23);SquareProjectEvents['on'](_0x30c7f8,_0x46dd8a);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4975=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareRecording.controller','get','index','/:id','isAuthenticated','show','/:id/download','download','post','create','put','update','destroy','exports','multer','path','connect-timeout','express'];(function(_0x1a4f07,_0x36d08a){var _0x47c88b=function(_0x55dc33){while(--_0x55dc33){_0x1a4f07['push'](_0x1a4f07['shift']());}};_0x47c88b(++_0x36d08a);}(_0x4975,0x86));var _0x5497=function(_0x5e2119,_0x427a79){_0x5e2119=_0x5e2119-0x0;var _0x3b85c5=_0x4975[_0x5e2119];return _0x3b85c5;};'use strict';var multer=require(_0x5497('0x0'));var util=require('util');var path=require(_0x5497('0x1'));var timeout=require(_0x5497('0x2'));var express=require(_0x5497('0x3'));var router=express[_0x5497('0x4')]();var fs_extra=require(_0x5497('0x5'));var auth=require(_0x5497('0x6'));var interaction=require(_0x5497('0x7'));var config=require(_0x5497('0x8'));var controller=require(_0x5497('0x9'));router[_0x5497('0xa')]('/',auth['isAuthenticated'](),controller[_0x5497('0xb')]);router['get'](_0x5497('0xc'),auth[_0x5497('0xd')](),controller[_0x5497('0xe')]);router['get'](_0x5497('0xf'),auth['isAuthenticated'](),controller[_0x5497('0x10')]);router[_0x5497('0x11')]('/',auth[_0x5497('0xd')](),controller[_0x5497('0x12')]);router[_0x5497('0x13')](_0x5497('0xc'),auth[_0x5497('0xd')](),controller[_0x5497('0x14')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0x5497('0x15')]);module[_0x5497('0x16')]=router;
\ No newline at end of file
+var _0xe14b=['Router','../../components/auth/service','./squareRecording.controller','get','isAuthenticated','index','/:id','download','post','delete','destroy','exports','multer','util','express'];(function(_0x3f8d4b,_0x189fa5){var _0x4110a9=function(_0x10bf4a){while(--_0x10bf4a){_0x3f8d4b['push'](_0x3f8d4b['shift']());}};_0x4110a9(++_0x189fa5);}(_0xe14b,0x93));var _0xbe14=function(_0x2640bd,_0x25fbb7){_0x2640bd=_0x2640bd-0x0;var _0x1ceece=_0xe14b[_0x2640bd];return _0x1ceece;};'use strict';var multer=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xbe14('0x2'));var router=express[_0xbe14('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xbe14('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xbe14('0x5'));router[_0xbe14('0x6')]('/',auth[_0xbe14('0x7')](),controller[_0xbe14('0x8')]);router[_0xbe14('0x6')](_0xbe14('0x9'),auth[_0xbe14('0x7')](),controller['show']);router['get']('/:id/download',auth[_0xbe14('0x7')](),controller[_0xbe14('0xa')]);router[_0xbe14('0xb')]('/',auth[_0xbe14('0x7')](),controller['create']);router['put'](_0xbe14('0x9'),auth[_0xbe14('0x7')](),controller['update']);router[_0xbe14('0xc')](_0xbe14('0x9'),auth[_0xbe14('0x7')](),controller[_0xbe14('0xd')]);module[_0xbe14('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae24=['VIRTUAL','savePath','sequelize','STRING'];(function(_0x3afe92,_0x3b3c98){var _0x1617a6=function(_0x1de713){while(--_0x1de713){_0x3afe92['push'](_0x3afe92['shift']());}};_0x1617a6(++_0x3b3c98);}(_0xae24,0x182));var _0x4ae2=function(_0xe82afe,_0x33c4e1){_0xe82afe=_0xe82afe-0x0;var _0x3fa26f=_0xae24[_0xe82afe];return _0x3fa26f;};'use strict';var Sequelize=require(_0x4ae2('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0x4ae2('0x1')]},'callerid':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x4ae2('0x1')]},'context':{'type':Sequelize[_0x4ae2('0x1')]},'extension':{'type':Sequelize['STRING']},'priority':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x4ae2('0x1')]},'dnid':{'type':Sequelize['STRING']},'projectName':{'type':Sequelize[_0x4ae2('0x1')]},'saveName':{'type':Sequelize[_0x4ae2('0x1')]},'filename':{'type':Sequelize[_0x4ae2('0x1')]},'savePath':{'type':Sequelize[_0x4ae2('0x1')]},'format':{'type':Sequelize[_0x4ae2('0x2')],'get':function(){var _0x307247='';var _0x4f2e84=this['getDataValue'](_0x4ae2('0x3'));if(_0x4f2e84){_0x307247=_0x4f2e84['substring'](_0x4f2e84['lastIndexOf']('.'));}return _0x307247;}}};
\ No newline at end of file
+var _0x038b=['lastIndexOf','exports','STRING','VIRTUAL','substring'];(function(_0x102ad1,_0x53c404){var _0x25c010=function(_0x2f061d){while(--_0x2f061d){_0x102ad1['push'](_0x102ad1['shift']());}};_0x25c010(++_0x53c404);}(_0x038b,0x114));var _0xb038=function(_0x190584,_0x453d4e){_0x190584=_0x190584-0x0;var _0x278330=_0x038b[_0x190584];return _0x278330;};'use strict';var Sequelize=require('sequelize');module[_0xb038('0x0')]={'uniqueid':{'type':Sequelize[_0xb038('0x1')]},'callerid':{'type':Sequelize[_0xb038('0x1')]},'calleridname':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0xb038('0x1')]},'extension':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0xb038('0x1')]},'accountcode':{'type':Sequelize[_0xb038('0x1')]},'dnid':{'type':Sequelize['STRING']},'projectName':{'type':Sequelize[_0xb038('0x1')]},'saveName':{'type':Sequelize[_0xb038('0x1')]},'filename':{'type':Sequelize['STRING']},'savePath':{'type':Sequelize['STRING']},'format':{'type':Sequelize[_0xb038('0x2')],'get':function(){var _0x1b077a='';var _0x1534a9=this['getDataValue']('savePath');if(_0x1534a9){_0x1b077a=_0x1534a9[_0xb038('0x3')](_0x1534a9[_0xb038('0x4')]('.'));}return _0x1b077a;}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8cf9=['show','params','include','find','create','body','download','../../components/encryptor','uniqueid','filename','savePath','%s.cypher','existsSync','decryptFile','secrets','recording','Sequelize','extname','unlink','message','SquareRecording\x20not\x20found','Not\x20found','isNil','Entity\x20not\x20found','cancellazione\x20fisica\x20documento\x20%s','info','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','File:\x20\x22','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','index','map','SquareRecording','rawAttributes','fieldName','query','keys','model','attributes','intersection','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','type','options','includeAll','findAll','catch'];(function(_0x2dfcec,_0x26a8ed){var _0x1d3eb1=function(_0x1762fd){while(--_0x1762fd){_0x2dfcec['push'](_0x2dfcec['shift']());}};_0x1d3eb1(++_0x26a8ed);}(_0x8cf9,0x140));var _0x98cf=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x8cf9[_0x122ef9];return _0x42fba0;};'use strict';var emlformat=require(_0x98cf('0x0'));var rimraf=require(_0x98cf('0x1'));var zipdir=require(_0x98cf('0x2'));var jsonpatch=require(_0x98cf('0x3'));var rp=require('request-promise');var moment=require(_0x98cf('0x4'));var BPromise=require(_0x98cf('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x98cf('0x6'));var csv=require('to-csv');var ejs=require(_0x98cf('0x7'));var fs=require('fs');var fs_extra=require(_0x98cf('0x8'));var _=require(_0x98cf('0x9'));var squel=require(_0x98cf('0xa'));var crypto=require(_0x98cf('0xb'));var jsforce=require(_0x98cf('0xc'));var deskjs=require(_0x98cf('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x98cf('0xe'));var Redis=require(_0x98cf('0xf'));var authService=require(_0x98cf('0x10'));var qs=require(_0x98cf('0x11'));var as=require(_0x98cf('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x98cf('0x13'))(_0x98cf('0x14'));var utils=require(_0x98cf('0x15'));var config=require(_0x98cf('0x16'));var licenseUtil=require(_0x98cf('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1b21c8,_0x196129){_0x196129=_0x196129||0xcc;return function(_0xfac046){if(_0xfac046){return _0x1b21c8[_0x98cf('0x18')](_0x196129);}return _0x1b21c8[_0x98cf('0x19')](_0x196129)[_0x98cf('0x1a')]();};}function respondWithResult(_0x120889,_0xbb3ba1){_0xbb3ba1=_0xbb3ba1||0xc8;return function(_0x175ee9){if(_0x175ee9){return _0x120889[_0x98cf('0x19')](_0xbb3ba1)[_0x98cf('0x1b')](_0x175ee9);}};}function respondWithFilteredResult(_0xc4eea6,_0x5b7e82){return function(_0x3efb21){if(_0x3efb21){var _0x1813bf=typeof _0x5b7e82[_0x98cf('0x1c')]===_0x98cf('0x1d')&&typeof _0x5b7e82[_0x98cf('0x1e')]===_0x98cf('0x1d');var _0x18963f=_0x3efb21[_0x98cf('0x1f')];var _0x37b8be=_0x1813bf?0x0:_0x5b7e82['offset'];var _0x406b9d=_0x1813bf?_0x3efb21[_0x98cf('0x1f')]:_0x5b7e82['offset']+_0x5b7e82[_0x98cf('0x1e')];var _0x546ccd;if(_0x406b9d>=_0x18963f){_0x406b9d=_0x18963f;_0x546ccd=0xc8;}else{_0x546ccd=0xce;}_0xc4eea6[_0x98cf('0x19')](_0x546ccd);return _0xc4eea6[_0x98cf('0x20')](_0x98cf('0x21'),_0x37b8be+'-'+_0x406b9d+'/'+_0x18963f)[_0x98cf('0x1b')](_0x3efb21);}return null;};}function patchUpdates(_0x1b02d0){return function(_0x23abc5){try{jsonpatch[_0x98cf('0x22')](_0x23abc5,_0x1b02d0,!![]);}catch(_0x2cc548){return BPromise[_0x98cf('0x23')](_0x2cc548);}return _0x23abc5[_0x98cf('0x24')]();};}function saveUpdates(_0x423001,_0x667667){return function(_0x1791a7){if(_0x1791a7){return _0x1791a7[_0x98cf('0x25')](_0x423001)[_0x98cf('0x26')](function(_0x3ed83a){return _0x3ed83a;});}return null;};}function removeEntity(_0xbdf789,_0x30fd64){return function(_0x165623){if(_0x165623){return _0x165623[_0x98cf('0x27')]()[_0x98cf('0x26')](function(){_0xbdf789[_0x98cf('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2a30b1,_0x1ffdb2){return function(_0x397c0a){if(!_0x397c0a){_0x2a30b1[_0x98cf('0x18')](0x194);}return _0x397c0a;};}function handleError(_0x306afc,_0x3fe0dc){_0x3fe0dc=_0x3fe0dc||0x1f4;return function(_0x169ca2){logger[_0x98cf('0x28')](_0x169ca2[_0x98cf('0x29')]);if(_0x169ca2[_0x98cf('0x2a')]){delete _0x169ca2['name'];}_0x306afc['status'](_0x3fe0dc)['send'](_0x169ca2);};}exports[_0x98cf('0x2b')]=function(_0x9b0fff,_0x30b9e4){var _0x108ccd={},_0x5016a3={},_0x13c261={'count':0x0,'rows':[]};var _0x455bc7=_[_0x98cf('0x2c')](db[_0x98cf('0x2d')][_0x98cf('0x2e')],function(_0x2f9d86){return{'name':_0x2f9d86[_0x98cf('0x2f')],'type':_0x2f9d86['type']['key']};});_0x5016a3['model']=_['map'](_0x455bc7,'name');_0x5016a3[_0x98cf('0x30')]=_[_0x98cf('0x31')](_0x9b0fff[_0x98cf('0x30')]);_0x5016a3['filters']=_['intersection'](_0x5016a3[_0x98cf('0x32')],_0x5016a3[_0x98cf('0x30')]);_0x108ccd[_0x98cf('0x33')]=_[_0x98cf('0x34')](_0x5016a3[_0x98cf('0x32')],qs[_0x98cf('0x35')](_0x9b0fff[_0x98cf('0x30')]['fields']));_0x108ccd['attributes']=_0x108ccd['attributes'][_0x98cf('0x36')]?_0x108ccd[_0x98cf('0x33')]:_0x5016a3['model'];if(!_0x9b0fff[_0x98cf('0x30')]['hasOwnProperty'](_0x98cf('0x37'))){_0x108ccd['limit']=qs['limit'](_0x9b0fff[_0x98cf('0x30')]['limit']);_0x108ccd[_0x98cf('0x1c')]=qs[_0x98cf('0x1c')](_0x9b0fff['query']['offset']);}_0x108ccd[_0x98cf('0x38')]=qs[_0x98cf('0x39')](_0x9b0fff[_0x98cf('0x30')][_0x98cf('0x39')]);_0x108ccd[_0x98cf('0x3a')]=qs[_0x98cf('0x3b')](_[_0x98cf('0x3c')](_0x9b0fff[_0x98cf('0x30')],_0x5016a3[_0x98cf('0x3b')]),_0x455bc7);if(_0x9b0fff[_0x98cf('0x30')][_0x98cf('0x3d')]){_0x108ccd[_0x98cf('0x3a')]=_[_0x98cf('0x3e')](_0x108ccd['where'],{'$or':_[_0x98cf('0x2c')](_0x455bc7,function(_0x2aaa2c){if(_0x2aaa2c[_0x98cf('0x3f')]!=='VIRTUAL'){var _0x4ed014={};_0x4ed014[_0x2aaa2c[_0x98cf('0x2a')]]={'$like':'%'+_0x9b0fff[_0x98cf('0x30')][_0x98cf('0x3d')]+'%'};return _0x4ed014;}})});}_0x108ccd=_[_0x98cf('0x3e')]({},_0x108ccd,_0x9b0fff[_0x98cf('0x40')]);var _0x3365d2={'where':_0x108ccd[_0x98cf('0x3a')]};return db['SquareRecording'][_0x98cf('0x1f')](_0x3365d2)[_0x98cf('0x26')](function(_0xf79951){_0x13c261['count']=_0xf79951;if(_0x9b0fff[_0x98cf('0x30')][_0x98cf('0x41')]){_0x108ccd['include']=[{'all':!![]}];}return db[_0x98cf('0x2d')][_0x98cf('0x42')](_0x108ccd);})['then'](function(_0x446afc){_0x13c261['rows']=_0x446afc;return _0x13c261;})[_0x98cf('0x26')](respondWithFilteredResult(_0x30b9e4,_0x108ccd))[_0x98cf('0x43')](handleError(_0x30b9e4,null));};exports[_0x98cf('0x44')]=function(_0x5c9310,_0x3d83b1){var _0x363ada={'raw':!![],'where':{'id':_0x5c9310[_0x98cf('0x45')]['id']}},_0x27d5a2={};_0x27d5a2['model']=_[_0x98cf('0x31')](db[_0x98cf('0x2d')][_0x98cf('0x2e')]);_0x27d5a2[_0x98cf('0x30')]=_['keys'](_0x5c9310[_0x98cf('0x30')]);_0x27d5a2[_0x98cf('0x3b')]=_[_0x98cf('0x34')](_0x27d5a2[_0x98cf('0x32')],_0x27d5a2[_0x98cf('0x30')]);_0x363ada[_0x98cf('0x33')]=_[_0x98cf('0x34')](_0x27d5a2[_0x98cf('0x32')],qs[_0x98cf('0x35')](_0x5c9310[_0x98cf('0x30')][_0x98cf('0x35')]));_0x363ada['attributes']=_0x363ada[_0x98cf('0x33')][_0x98cf('0x36')]?_0x363ada[_0x98cf('0x33')]:_0x27d5a2[_0x98cf('0x32')];if(_0x5c9310[_0x98cf('0x30')][_0x98cf('0x41')]){_0x363ada[_0x98cf('0x46')]=[{'all':!![]}];}_0x363ada=_['merge']({},_0x363ada,_0x5c9310[_0x98cf('0x40')]);return db['SquareRecording'][_0x98cf('0x47')](_0x363ada)['then'](handleEntityNotFound(_0x3d83b1,null))['then'](respondWithResult(_0x3d83b1,null))[_0x98cf('0x43')](handleError(_0x3d83b1,null));};exports[_0x98cf('0x48')]=function(_0x4e63da,_0x57052a){return db[_0x98cf('0x2d')]['create'](_0x4e63da[_0x98cf('0x49')],{})['then'](respondWithResult(_0x57052a,0xc9))[_0x98cf('0x43')](handleError(_0x57052a,null));};exports['update']=function(_0x337258,_0x5d76a4){if(_0x337258[_0x98cf('0x49')]['id']){delete _0x337258[_0x98cf('0x49')]['id'];}return db['SquareRecording'][_0x98cf('0x47')]({'where':{'id':_0x337258['params']['id']}})[_0x98cf('0x26')](handleEntityNotFound(_0x5d76a4,null))[_0x98cf('0x26')](saveUpdates(_0x337258[_0x98cf('0x49')],null))[_0x98cf('0x26')](respondWithResult(_0x5d76a4,null))[_0x98cf('0x43')](handleError(_0x5d76a4,null));};exports[_0x98cf('0x4a')]=function(_0x3283b3,_0x3dcd42,_0x2f56b0){var _0x4a1581=require(_0x98cf('0x4b'));var _0x2243da=![];var _0x4338fc={};if(_0x3283b3[_0x98cf('0x30')][_0x98cf('0x3f')]&&_0x3283b3['query'][_0x98cf('0x3f')]===_0x98cf('0x4c')){_0x4338fc[_0x98cf('0x4c')]=_0x3283b3[_0x98cf('0x45')]['id'];}else{_0x4338fc['id']=_0x3283b3['params']['id'];}return db[_0x98cf('0x2d')][_0x98cf('0x47')]({'where':_0x4338fc,'attributes':['id','savePath',_0x98cf('0x4d')],'raw':!![]})[_0x98cf('0x26')](handleEntityNotFound(_0x3dcd42,null))['then'](function(_0x160788){if(_0x160788){var _0x2c0241=_0x160788[_0x98cf('0x4e')];var _0x2e806b=util['format'](_0x98cf('0x4f'),_0x2c0241);if(fs[_0x98cf('0x50')](_0x2e806b)){_0x2243da=!![];return _0x4a1581[_0x98cf('0x51')](_0x2e806b,_0x2c0241,config[_0x98cf('0x52')][_0x98cf('0x53')])[_0x98cf('0x26')](function(){return _0x160788;});}return _0x160788;}})[_0x98cf('0x26')](function(_0x2c31b9){if(_0x2c31b9){var _0x84f76a=_0x2c31b9[_0x98cf('0x4e')];if(!fs['existsSync'](_0x84f76a)){throw new db[(_0x98cf('0x54'))]['ValidationError']('SquareRecording\x20not\x20found');}if(_0x2c31b9[_0x98cf('0x4d')]){return _0x3dcd42[_0x98cf('0x4a')](_0x84f76a,_0x2c31b9[_0x98cf('0x4d')]+path[_0x98cf('0x55')](_0x84f76a),function(){if(_0x2243da){fs[_0x98cf('0x56')](_0x84f76a);}});}else{return _0x3dcd42[_0x98cf('0x4a')](_0x84f76a,function(_0x46e01e){if(_0x2243da){fs['unlink'](_0x84f76a);}});}}})['catch'](function(_0x16a740){if(_0x16a740[_0x98cf('0x57')]===_0x98cf('0x58')){_0x3dcd42[_0x98cf('0x19')](0x194)['send'](_0x98cf('0x59'));}else{return handleError(_0x3dcd42,null);}});};exports['destroy']=function(_0xaf9f85,_0x299810){return db['SquareRecording'][_0x98cf('0x47')]({'where':{'id':_0xaf9f85[_0x98cf('0x45')]['id']}})[_0x98cf('0x26')](function(_0x24edb1){if(_[_0x98cf('0x5a')](_0x24edb1)){throw new ReferenceError(_0x98cf('0x5b'));}return _0x24edb1;})[_0x98cf('0x26')](function(_0x4094c8){var _0x2f1aaf=_0x4094c8['savePath'];logger['info'](_0x98cf('0x5c'),_0x2f1aaf);if(!_[_0x98cf('0x5a')](_0x4094c8[_0x98cf('0x4e')])&&fs['existsSync'](_0x2f1aaf)){logger[_0x98cf('0x5d')]('File:\x20\x22'+_0x2f1aaf+_0x98cf('0x5e'));fs[_0x98cf('0x5f')](_0x2f1aaf);}_0x2f1aaf=_0x2f1aaf+'.cypher';if(!_['isNil'](_0x4094c8[_0x98cf('0x4e')])&&fs[_0x98cf('0x50')](_0x2f1aaf)){logger[_0x98cf('0x5d')](_0x98cf('0x60')+_0x2f1aaf+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0x98cf('0x5f')](_0x2f1aaf);}return _0x4094c8;})[_0x98cf('0x26')](function(_0x183c27){if(!_0x183c27)throw new InternalError();return _0x183c27[_0x98cf('0x27')]();})[_0x98cf('0x26')](function(){_0x299810['status'](0xcc)[_0x98cf('0x1a')]();})[_0x98cf('0x43')](handleError(_0x299810,null));};
\ No newline at end of file
+var _0x7524=['params','rawAttributes','fields','body','find','download','../../components/encryptor','type','uniqueid','savePath','filename','format','%s.cypher','existsSync','decryptFile','recording','Sequelize','ValidationError','SquareRecording\x20not\x20found','extname','unlink','Not\x20found','isNil','Entity\x20not\x20found','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','rimraf','fast-json-patch','request-promise','moment','bluebird','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','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','json','offset','undefined','limit','count','set','reject','save','update','then','destroy','error','send','SquareRecording','fieldName','key','model','map','name','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch'];(function(_0x47bcee,_0x5c0311){var _0x4b88a8=function(_0x170762){while(--_0x170762){_0x47bcee['push'](_0x47bcee['shift']());}};_0x4b88a8(++_0x5c0311);}(_0x7524,0xdc));var _0x4752=function(_0x57e597,_0x5dada8){_0x57e597=_0x57e597-0x0;var _0x4050c8=_0x7524[_0x57e597];return _0x4050c8;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4752('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4752('0x1'));var rp=require(_0x4752('0x2'));var moment=require(_0x4752('0x3'));var BPromise=require(_0x4752('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x4752('0x5'));var sox=require(_0x4752('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4752('0x7'));var _=require(_0x4752('0x8'));var squel=require(_0x4752('0x9'));var crypto=require(_0x4752('0xa'));var jsforce=require(_0x4752('0xb'));var deskjs=require(_0x4752('0xc'));var toCsv=require(_0x4752('0xd'));var querystring=require('querystring');var Papa=require(_0x4752('0xe'));var Redis=require(_0x4752('0xf'));var authService=require(_0x4752('0x10'));var qs=require(_0x4752('0x11'));var as=require(_0x4752('0x12'));var hardwareService=require(_0x4752('0x13'));var logger=require(_0x4752('0x14'))(_0x4752('0x15'));var utils=require('../../config/utils');var config=require(_0x4752('0x16'));var licenseUtil=require(_0x4752('0x17'));var db=require(_0x4752('0x18'))['db'];function respondWithStatusCode(_0x26039c,_0x53dc25){_0x53dc25=_0x53dc25||0xcc;return function(_0x4c194d){if(_0x4c194d){return _0x26039c[_0x4752('0x19')](_0x53dc25);}return _0x26039c[_0x4752('0x1a')](_0x53dc25)[_0x4752('0x1b')]();};}function respondWithResult(_0x50c39c,_0x328e05){_0x328e05=_0x328e05||0xc8;return function(_0x3d8982){if(_0x3d8982){return _0x50c39c[_0x4752('0x1a')](_0x328e05)[_0x4752('0x1c')](_0x3d8982);}};}function respondWithFilteredResult(_0x262ad1,_0x2cf32d){return function(_0x46b205){if(_0x46b205){var _0x363b80=typeof _0x2cf32d[_0x4752('0x1d')]===_0x4752('0x1e')&&typeof _0x2cf32d[_0x4752('0x1f')]==='undefined';var _0x4bf08b=_0x46b205[_0x4752('0x20')];var _0x58757a=_0x363b80?0x0:_0x2cf32d[_0x4752('0x1d')];var _0x5e591d=_0x363b80?_0x46b205[_0x4752('0x20')]:_0x2cf32d['offset']+_0x2cf32d[_0x4752('0x1f')];var _0x5d20fa;if(_0x5e591d>=_0x4bf08b){_0x5e591d=_0x4bf08b;_0x5d20fa=0xc8;}else{_0x5d20fa=0xce;}_0x262ad1[_0x4752('0x1a')](_0x5d20fa);return _0x262ad1[_0x4752('0x21')]('Content-Range',_0x58757a+'-'+_0x5e591d+'/'+_0x4bf08b)[_0x4752('0x1c')](_0x46b205);}return null;};}function patchUpdates(_0x1d5e71){return function(_0x3cc165){try{jsonpatch['apply'](_0x3cc165,_0x1d5e71,!![]);}catch(_0x86ea40){return BPromise[_0x4752('0x22')](_0x86ea40);}return _0x3cc165[_0x4752('0x23')]();};}function saveUpdates(_0x31aa23,_0x153116){return function(_0x52ea6b){if(_0x52ea6b){return _0x52ea6b[_0x4752('0x24')](_0x31aa23)[_0x4752('0x25')](function(_0x15e15b){return _0x15e15b;});}return null;};}function removeEntity(_0x8e8b4e,_0x380de3){return function(_0x55e9b4){if(_0x55e9b4){return _0x55e9b4[_0x4752('0x26')]()[_0x4752('0x25')](function(){_0x8e8b4e[_0x4752('0x1a')](0xcc)[_0x4752('0x1b')]();});}};}function handleEntityNotFound(_0x3f9354,_0x5a1a04){return function(_0x27f334){if(!_0x27f334){_0x3f9354[_0x4752('0x19')](0x194);}return _0x27f334;};}function handleError(_0x253b2,_0x5dfe96){_0x5dfe96=_0x5dfe96||0x1f4;return function(_0x4f7b02){logger[_0x4752('0x27')](_0x4f7b02['stack']);if(_0x4f7b02['name']){delete _0x4f7b02['name'];}_0x253b2[_0x4752('0x1a')](_0x5dfe96)[_0x4752('0x28')](_0x4f7b02);};}exports['index']=function(_0x143132,_0x3f331f){var _0x117e60={},_0x4d9b92={},_0x3baba0={'count':0x0,'rows':[]};var _0x1706bf=_['map'](db[_0x4752('0x29')]['rawAttributes'],function(_0x1a752b){return{'name':_0x1a752b[_0x4752('0x2a')],'type':_0x1a752b['type'][_0x4752('0x2b')]};});_0x4d9b92[_0x4752('0x2c')]=_[_0x4752('0x2d')](_0x1706bf,_0x4752('0x2e'));_0x4d9b92[_0x4752('0x2f')]=_[_0x4752('0x30')](_0x143132[_0x4752('0x2f')]);_0x4d9b92[_0x4752('0x31')]=_[_0x4752('0x32')](_0x4d9b92[_0x4752('0x2c')],_0x4d9b92[_0x4752('0x2f')]);_0x117e60[_0x4752('0x33')]=_[_0x4752('0x32')](_0x4d9b92['model'],qs['fields'](_0x143132['query']['fields']));_0x117e60[_0x4752('0x33')]=_0x117e60[_0x4752('0x33')][_0x4752('0x34')]?_0x117e60[_0x4752('0x33')]:_0x4d9b92[_0x4752('0x2c')];if(!_0x143132[_0x4752('0x2f')][_0x4752('0x35')](_0x4752('0x36'))){_0x117e60[_0x4752('0x1f')]=qs[_0x4752('0x1f')](_0x143132[_0x4752('0x2f')][_0x4752('0x1f')]);_0x117e60[_0x4752('0x1d')]=qs[_0x4752('0x1d')](_0x143132[_0x4752('0x2f')][_0x4752('0x1d')]);}_0x117e60[_0x4752('0x37')]=qs[_0x4752('0x38')](_0x143132['query'][_0x4752('0x38')]);_0x117e60[_0x4752('0x39')]=qs['filters'](_[_0x4752('0x3a')](_0x143132[_0x4752('0x2f')],_0x4d9b92[_0x4752('0x31')]),_0x1706bf);if(_0x143132[_0x4752('0x2f')][_0x4752('0x3b')]){_0x117e60[_0x4752('0x39')]=_[_0x4752('0x3c')](_0x117e60['where'],{'$or':_['map'](_0x1706bf,function(_0x147f7){if(_0x147f7['type']!==_0x4752('0x3d')){var _0x22a36b={};_0x22a36b[_0x147f7[_0x4752('0x2e')]]={'$like':'%'+_0x143132[_0x4752('0x2f')][_0x4752('0x3b')]+'%'};return _0x22a36b;}})});}_0x117e60=_[_0x4752('0x3c')]({},_0x117e60,_0x143132[_0x4752('0x3e')]);var _0x4ef8ae={'where':_0x117e60['where']};return db['SquareRecording']['count'](_0x4ef8ae)[_0x4752('0x25')](function(_0x3ffedc){_0x3baba0[_0x4752('0x20')]=_0x3ffedc;if(_0x143132['query'][_0x4752('0x3f')]){_0x117e60[_0x4752('0x40')]=[{'all':!![]}];}return db[_0x4752('0x29')][_0x4752('0x41')](_0x117e60);})[_0x4752('0x25')](function(_0x155fd7){_0x3baba0[_0x4752('0x42')]=_0x155fd7;return _0x3baba0;})[_0x4752('0x25')](respondWithFilteredResult(_0x3f331f,_0x117e60))[_0x4752('0x43')](handleError(_0x3f331f,null));};exports['show']=function(_0x548365,_0x1d1250){var _0x53fbcc={'raw':!![],'where':{'id':_0x548365[_0x4752('0x44')]['id']}},_0x5d0330={};_0x5d0330[_0x4752('0x2c')]=_['keys'](db[_0x4752('0x29')][_0x4752('0x45')]);_0x5d0330['query']=_[_0x4752('0x30')](_0x548365['query']);_0x5d0330['filters']=_['intersection'](_0x5d0330[_0x4752('0x2c')],_0x5d0330[_0x4752('0x2f')]);_0x53fbcc[_0x4752('0x33')]=_[_0x4752('0x32')](_0x5d0330[_0x4752('0x2c')],qs[_0x4752('0x46')](_0x548365['query'][_0x4752('0x46')]));_0x53fbcc[_0x4752('0x33')]=_0x53fbcc['attributes'][_0x4752('0x34')]?_0x53fbcc[_0x4752('0x33')]:_0x5d0330[_0x4752('0x2c')];if(_0x548365[_0x4752('0x2f')][_0x4752('0x3f')]){_0x53fbcc['include']=[{'all':!![]}];}_0x53fbcc=_[_0x4752('0x3c')]({},_0x53fbcc,_0x548365[_0x4752('0x3e')]);return db[_0x4752('0x29')]['find'](_0x53fbcc)['then'](handleEntityNotFound(_0x1d1250,null))[_0x4752('0x25')](respondWithResult(_0x1d1250,null))[_0x4752('0x43')](handleError(_0x1d1250,null));};exports['create']=function(_0x416800,_0x3663f6){return db[_0x4752('0x29')]['create'](_0x416800[_0x4752('0x47')],{})[_0x4752('0x25')](respondWithResult(_0x3663f6,0xc9))[_0x4752('0x43')](handleError(_0x3663f6,null));};exports['update']=function(_0x38ac0a,_0x4bc3ed){if(_0x38ac0a[_0x4752('0x47')]['id']){delete _0x38ac0a['body']['id'];}return db[_0x4752('0x29')][_0x4752('0x48')]({'where':{'id':_0x38ac0a['params']['id']}})[_0x4752('0x25')](handleEntityNotFound(_0x4bc3ed,null))[_0x4752('0x25')](saveUpdates(_0x38ac0a[_0x4752('0x47')],null))[_0x4752('0x25')](respondWithResult(_0x4bc3ed,null))[_0x4752('0x43')](handleError(_0x4bc3ed,null));};exports[_0x4752('0x49')]=function(_0xcd416c,_0x31094b,_0x2098c7){var _0x4e0a85=require(_0x4752('0x4a'));var _0x31c248=![];var _0x4bc1ea={};if(_0xcd416c[_0x4752('0x2f')]['type']&&_0xcd416c[_0x4752('0x2f')][_0x4752('0x4b')]===_0x4752('0x4c')){_0x4bc1ea['uniqueid']=_0xcd416c[_0x4752('0x44')]['id'];}else{_0x4bc1ea['id']=_0xcd416c['params']['id'];}return db[_0x4752('0x29')]['find']({'where':_0x4bc1ea,'attributes':['id',_0x4752('0x4d'),_0x4752('0x4e')],'raw':!![]})[_0x4752('0x25')](handleEntityNotFound(_0x31094b,null))[_0x4752('0x25')](function(_0x52af24){if(_0x52af24){var _0x23713a=_0x52af24[_0x4752('0x4d')];var _0x39eeba=util[_0x4752('0x4f')](_0x4752('0x50'),_0x23713a);if(fs[_0x4752('0x51')](_0x39eeba)){_0x31c248=!![];return _0x4e0a85[_0x4752('0x52')](_0x39eeba,_0x23713a,config['secrets'][_0x4752('0x53')])[_0x4752('0x25')](function(){return _0x52af24;});}return _0x52af24;}})[_0x4752('0x25')](function(_0x28554d){if(_0x28554d){var _0x32738a=_0x28554d['savePath'];if(!fs[_0x4752('0x51')](_0x32738a)){throw new db[(_0x4752('0x54'))][(_0x4752('0x55'))](_0x4752('0x56'));}if(_0x28554d[_0x4752('0x4e')]){return _0x31094b['download'](_0x32738a,_0x28554d['filename']+path[_0x4752('0x57')](_0x32738a),function(){if(_0x31c248){fs[_0x4752('0x58')](_0x32738a);}});}else{return _0x31094b['download'](_0x32738a,function(_0x5bee34){if(_0x31c248){fs[_0x4752('0x58')](_0x32738a);}});}}})['catch'](function(_0x4b0147){if(_0x4b0147['message']===_0x4752('0x56')){_0x31094b[_0x4752('0x1a')](0x194)['send'](_0x4752('0x59'));}else{return handleError(_0x31094b,null);}});};exports[_0x4752('0x26')]=function(_0x329f64,_0x3f8016){return db[_0x4752('0x29')]['find']({'where':{'id':_0x329f64[_0x4752('0x44')]['id']}})[_0x4752('0x25')](function(_0x259b15){if(_[_0x4752('0x5a')](_0x259b15)){throw new ReferenceError(_0x4752('0x5b'));}return _0x259b15;})[_0x4752('0x25')](function(_0x2dc118){var _0x32c4b3=_0x2dc118['savePath'];logger[_0x4752('0x5c')]('cancellazione\x20fisica\x20documento\x20%s',_0x32c4b3);if(!_[_0x4752('0x5a')](_0x2dc118[_0x4752('0x4d')])&&fs['existsSync'](_0x32c4b3)){logger['info'](_0x4752('0x5d')+_0x32c4b3+_0x4752('0x5e'));fs[_0x4752('0x5f')](_0x32c4b3);}_0x32c4b3=_0x32c4b3+'.cypher';if(!_[_0x4752('0x5a')](_0x2dc118['savePath'])&&fs[_0x4752('0x51')](_0x32c4b3)){logger[_0x4752('0x5c')](_0x4752('0x5d')+_0x32c4b3+_0x4752('0x5e'));fs['unlinkSync'](_0x32c4b3);}return _0x2dc118;})[_0x4752('0x25')](function(_0x151a7d){if(!_0x151a7d)throw new InternalError();return _0x151a7d[_0x4752('0x26')]();})[_0x4752('0x25')](function(){_0x3f8016[_0x4752('0x1a')](0xcc)[_0x4752('0x1b')]();})[_0x4752('0x43')](handleError(_0x3f8016,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c23=['rimraf','../../config/environment','./squareRecording.attributes','exports','SquareRecording','square_recordings','lodash','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x565ed7,_0x398228){var _0x183ad7=function(_0x5a43d7){while(--_0x5a43d7){_0x565ed7['push'](_0x565ed7['shift']());}};_0x183ad7(++_0x398228);}(_0x0c23,0x13e));var _0x30c2=function(_0x45b8e4,_0x252f40){_0x45b8e4=_0x45b8e4-0x0;var _0x41816c=_0x0c23[_0x45b8e4];return _0x41816c;};'use strict';var _=require(_0x30c2('0x0'));var util=require(_0x30c2('0x1'));var logger=require(_0x30c2('0x2'))(_0x30c2('0x3'));var moment=require(_0x30c2('0x4'));var BPromise=require(_0x30c2('0x5'));var rp=require(_0x30c2('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x30c2('0x7'));var config=require(_0x30c2('0x8'));var attributes=require(_0x30c2('0x9'));module[_0x30c2('0xa')]=function(_0x28630b,_0x166e7a){return _0x28630b['define'](_0x30c2('0xb'),attributes,{'tableName':_0x30c2('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x33af=['request-promise','path','rimraf','./squareRecording.attributes','exports','define','SquareRecording','square_recordings','util','api','moment','bluebird'];(function(_0x46b22a,_0x5bf83a){var _0x44c2e8=function(_0x21b6fc){while(--_0x21b6fc){_0x46b22a['push'](_0x46b22a['shift']());}};_0x44c2e8(++_0x5bf83a);}(_0x33af,0xec));var _0xf33a=function(_0x505f73,_0x1f95d8){_0x505f73=_0x505f73-0x0;var _0x227e7f=_0x33af[_0x505f73];return _0x227e7f;};'use strict';var _=require('lodash');var util=require(_0xf33a('0x0'));var logger=require('../../config/logger')(_0xf33a('0x1'));var moment=require(_0xf33a('0x2'));var BPromise=require(_0xf33a('0x3'));var rp=require(_0xf33a('0x4'));var fs=require('fs');var path=require(_0xf33a('0x5'));var rimraf=require(_0xf33a('0x6'));var config=require('../../config/environment');var attributes=require(_0xf33a('0x7'));module[_0xf33a('0x8')]=function(_0x583e54,_0xc0dd13){return _0x583e54[_0xf33a('0x9')](_0xf33a('0xa'),attributes,{'tableName':_0xf33a('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x83c5=['message','result','catch','CreateSquareRecording','create','body','options','raw','debug','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SquareRecording,\x20%s,\x20%s','request\x20sent','SquareRecording,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x3c4e4c,_0x36ff70){var _0x144a87=function(_0x5efb4b){while(--_0x5efb4b){_0x3c4e4c['push'](_0x3c4e4c['shift']());}};_0x144a87(++_0x36ff70);}(_0x83c5,0x9f));var _0x583c=function(_0x2b2f77,_0x2b6843){_0x2b2f77=_0x2b2f77-0x0;var _0x35532a=_0x83c5[_0x2b2f77];return _0x35532a;};'use strict';var _=require(_0x583c('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x583c('0x1'));var rs=require(_0x583c('0x2'));var fs=require('fs');var Redis=require(_0x583c('0x3'));var db=require(_0x583c('0x4'))['db'];var utils=require(_0x583c('0x5'));var logger=require(_0x583c('0x6'))(_0x583c('0x7'));var config=require(_0x583c('0x8'));var jayson=require(_0x583c('0x9'));var client=jayson[_0x583c('0xa')][_0x583c('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1a68a2,_0x334397,_0x1b75a0){return new BPromise(function(_0x240286,_0x4b284b){return client[_0x583c('0xc')](_0x1a68a2,_0x1b75a0)[_0x583c('0xd')](function(_0xfebb4f){logger[_0x583c('0xe')](_0x583c('0xf'),_0x334397,_0x583c('0x10'));logger['debug'](_0x583c('0x11'),_0x334397,'request\x20sent',JSON[_0x583c('0x12')](_0xfebb4f));if(_0xfebb4f['error']){if(_0xfebb4f[_0x583c('0x13')][_0x583c('0x14')]===0x1f4){logger['error'](_0x583c('0xf'),_0x334397,_0xfebb4f[_0x583c('0x13')][_0x583c('0x15')]);return _0x4b284b(_0xfebb4f[_0x583c('0x13')]['message']);}logger[_0x583c('0x13')]('SquareRecording,\x20%s,\x20%s',_0x334397,_0xfebb4f['error'][_0x583c('0x15')]);return _0x240286(_0xfebb4f['error'][_0x583c('0x15')]);}else{logger['info'](_0x583c('0xf'),_0x334397,_0x583c('0x10'));_0x240286(_0xfebb4f[_0x583c('0x16')][_0x583c('0x15')]);}})[_0x583c('0x17')](function(_0x20479d){logger[_0x583c('0x13')](_0x583c('0xf'),_0x334397,_0x20479d);_0x4b284b(_0x20479d);});});}exports[_0x583c('0x18')]=function(_0x2fb010){var _0x440d0f=this;return new Promise(function(_0x524ad9,_0x19f1a3){return db['SquareRecording'][_0x583c('0x19')](_0x2fb010[_0x583c('0x1a')],{'raw':_0x2fb010[_0x583c('0x1b')]?_0x2fb010[_0x583c('0x1b')][_0x583c('0x1c')]===undefined?!![]:![]:!![]})[_0x583c('0xd')](function(_0x42c478){logger[_0x583c('0xe')](_0x583c('0x18'),_0x2fb010);logger[_0x583c('0x1d')](_0x583c('0x18'),_0x2fb010,JSON[_0x583c('0x12')](_0x42c478));_0x524ad9(_0x42c478);})[_0x583c('0x17')](function(_0x3a0272){logger[_0x583c('0x13')]('CreateSquareRecording',_0x3a0272[_0x583c('0x15')],_0x2fb010);_0x19f1a3(_0x440d0f[_0x583c('0x13')](0x1f4,_0x3a0272[_0x583c('0x15')]));});});};
\ No newline at end of file
+var _0xb3b3=['catch','CreateSquareRecording','SquareRecording','options','then','debug','lodash','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','info','SquareRecording,\x20%s,\x20%s','request\x20sent','SquareRecording,\x20%s,\x20%s,\x20%s','stringify','error','message','result'];(function(_0x230951,_0x4dad52){var _0xeb26b1=function(_0x25776c){while(--_0x25776c){_0x230951['push'](_0x230951['shift']());}};_0xeb26b1(++_0x4dad52);}(_0xb3b3,0x17d));var _0x3b3b=function(_0x5c34a2,_0x138d25){_0x5c34a2=_0x5c34a2-0x0;var _0x3924a8=_0xb3b3[_0x5c34a2];return _0x3924a8;};'use strict';var _=require(_0x3b3b('0x0'));var util=require('util');var moment=require(_0x3b3b('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x3b3b('0x2'));var db=require(_0x3b3b('0x3'))['db'];var utils=require(_0x3b3b('0x4'));var logger=require(_0x3b3b('0x5'))(_0x3b3b('0x6'));var config=require(_0x3b3b('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x3b3b('0x8')][_0x3b3b('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5c2b1d,_0x55e3c9,_0x2a81e7){return new BPromise(function(_0xa22e6,_0x42ed83){return client[_0x3b3b('0xa')](_0x5c2b1d,_0x2a81e7)['then'](function(_0x35e83d){logger[_0x3b3b('0xb')](_0x3b3b('0xc'),_0x55e3c9,_0x3b3b('0xd'));logger['debug'](_0x3b3b('0xe'),_0x55e3c9,'request\x20sent',JSON[_0x3b3b('0xf')](_0x35e83d));if(_0x35e83d[_0x3b3b('0x10')]){if(_0x35e83d['error']['code']===0x1f4){logger[_0x3b3b('0x10')]('SquareRecording,\x20%s,\x20%s',_0x55e3c9,_0x35e83d[_0x3b3b('0x10')]['message']);return _0x42ed83(_0x35e83d[_0x3b3b('0x10')]['message']);}logger[_0x3b3b('0x10')](_0x3b3b('0xc'),_0x55e3c9,_0x35e83d['error'][_0x3b3b('0x11')]);return _0xa22e6(_0x35e83d[_0x3b3b('0x10')][_0x3b3b('0x11')]);}else{logger[_0x3b3b('0xb')](_0x3b3b('0xc'),_0x55e3c9,_0x3b3b('0xd'));_0xa22e6(_0x35e83d[_0x3b3b('0x12')][_0x3b3b('0x11')]);}})[_0x3b3b('0x13')](function(_0x5a86e6){logger[_0x3b3b('0x10')](_0x3b3b('0xc'),_0x55e3c9,_0x5a86e6);_0x42ed83(_0x5a86e6);});});}exports[_0x3b3b('0x14')]=function(_0x12cd00){var _0xf9903b=this;return new Promise(function(_0x11c402,_0x1e788f){return db[_0x3b3b('0x15')]['create'](_0x12cd00['body'],{'raw':_0x12cd00[_0x3b3b('0x16')]?_0x12cd00[_0x3b3b('0x16')]['raw']===undefined?!![]:![]:!![]})[_0x3b3b('0x17')](function(_0x3d0ef7){logger['info'](_0x3b3b('0x14'),_0x12cd00);logger[_0x3b3b('0x18')](_0x3b3b('0x14'),_0x12cd00,JSON[_0x3b3b('0xf')](_0x3d0ef7));_0x11c402(_0x3d0ef7);})[_0x3b3b('0x13')](function(_0x4bd8c2){logger[_0x3b3b('0x10')](_0x3b3b('0x14'),_0x4bd8c2[_0x3b3b('0x11')],_0x12cd00);_0x1e788f(_0xf9903b[_0x3b3b('0x10')](0x1f4,_0x4bd8c2[_0x3b3b('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(_0x4416ef,_0x39a040){var _0x355ea1=function(_0x5dba3a){while(--_0x5dba3a){_0x4416ef['push'](_0x4416ef['shift']());}};_0x355ea1(++_0x39a040);}(_0xe706,0xa3));var _0x6e70=function(_0x33add6,_0x435ffe){_0x33add6=_0x33add6-0x0;var _0x1d96ec=_0xe706[_0x33add6];return _0x1d96ec;};'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(_0x328bee,_0x12f30c){var _0x10d4b7=function(_0x302699){while(--_0x302699){_0x328bee['push'](_0x328bee['shift']());}};_0x10d4b7(++_0x12f30c);}(_0xbaf0,0x12a));var _0x0baf=function(_0x465028,_0x4570ac){_0x465028=_0x465028-0x0;var _0xb783d4=_0xbaf0[_0x465028];return _0xb783d4;};'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 _0x99c0=['STRING','DATE','BOOLEAN','sequelize'];(function(_0x11f9d2,_0x4dcb09){var _0x16535d=function(_0x24c150){while(--_0x24c150){_0x11f9d2['push'](_0x11f9d2['shift']());}};_0x16535d(++_0x4dcb09);}(_0x99c0,0x173));var _0x099c=function(_0x2e9be4,_0x463bf6){_0x2e9be4=_0x2e9be4-0x0;var _0x22cb76=_0x99c0[_0x2e9be4];return _0x22cb76;};'use strict';var Sequelize=require(_0x099c('0x0'));module['exports']={'network':{'type':Sequelize[_0x099c('0x1')]},'network_script':{'type':Sequelize[_0x099c('0x1')]},'request':{'type':Sequelize[_0x099c('0x1')]},'channel':{'type':Sequelize[_0x099c('0x1')]},'language':{'type':Sequelize[_0x099c('0x1')]},'type':{'type':Sequelize[_0x099c('0x1')]},'uniqueid':{'type':Sequelize[_0x099c('0x1')]},'version':{'type':Sequelize[_0x099c('0x1')]},'callerid':{'type':Sequelize[_0x099c('0x1')]},'calleridname':{'type':Sequelize[_0x099c('0x1')]},'callingpres':{'type':Sequelize[_0x099c('0x1')]},'callingani2':{'type':Sequelize[_0x099c('0x1')]},'callington':{'type':Sequelize[_0x099c('0x1')]},'callingtns':{'type':Sequelize['STRING']},'dnid':{'type':Sequelize['STRING']},'rdnis':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0x099c('0x1')]},'extension':{'type':Sequelize[_0x099c('0x1')]},'priority':{'type':Sequelize['STRING']},'enhanced':{'type':Sequelize[_0x099c('0x1')]},'accountcode':{'type':Sequelize[_0x099c('0x1')]},'threadid':{'type':Sequelize['STRING']},'project_name':{'type':Sequelize[_0x099c('0x1')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x099c('0x2')]},'bot':{'type':Sequelize[_0x099c('0x3')],'defaultValue':![]}};
\ No newline at end of file
+var _0x8320=['DATE','sequelize','exports','STRING'];(function(_0x3702ee,_0x2c575d){var _0x4df574=function(_0x199cb2){while(--_0x199cb2){_0x3702ee['push'](_0x3702ee['shift']());}};_0x4df574(++_0x2c575d);}(_0x8320,0x1a1));var _0x0832=function(_0x3c59fc,_0x10dbd2){_0x3c59fc=_0x3c59fc-0x0;var _0x2b78d4=_0x8320[_0x3c59fc];return _0x2b78d4;};'use strict';var Sequelize=require(_0x0832('0x0'));module[_0x0832('0x1')]={'network':{'type':Sequelize['STRING']},'network_script':{'type':Sequelize[_0x0832('0x2')]},'request':{'type':Sequelize[_0x0832('0x2')]},'channel':{'type':Sequelize[_0x0832('0x2')]},'language':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x0832('0x2')]},'uniqueid':{'type':Sequelize[_0x0832('0x2')]},'version':{'type':Sequelize[_0x0832('0x2')]},'callerid':{'type':Sequelize[_0x0832('0x2')]},'calleridname':{'type':Sequelize[_0x0832('0x2')]},'callingpres':{'type':Sequelize['STRING']},'callingani2':{'type':Sequelize[_0x0832('0x2')]},'callington':{'type':Sequelize[_0x0832('0x2')]},'callingtns':{'type':Sequelize['STRING']},'dnid':{'type':Sequelize[_0x0832('0x2')]},'rdnis':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0x0832('0x2')]},'extension':{'type':Sequelize[_0x0832('0x2')]},'priority':{'type':Sequelize[_0x0832('0x2')]},'enhanced':{'type':Sequelize[_0x0832('0x2')]},'accountcode':{'type':Sequelize[_0x0832('0x2')]},'threadid':{'type':Sequelize['STRING']},'project_name':{'type':Sequelize[_0x0832('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x0832('0x3')]},'bot':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdbc2=['body','params','find','describe','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','error','stack','name','send','rawAttributes','fieldName','type','key','model','map','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','SquareReport','include','rows','catch','show','options','create'];(function(_0x5f5d5f,_0x3d81e6){var _0xddf9a5=function(_0x106f56){while(--_0x106f56){_0x5f5d5f['push'](_0x5f5d5f['shift']());}};_0xddf9a5(++_0x3d81e6);}(_0xdbc2,0x128));var _0x2dbc=function(_0x120fe8,_0x2168af){_0x120fe8=_0x120fe8-0x0;var _0x41f29c=_0xdbc2[_0x120fe8];return _0x41f29c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2dbc('0x0'));var jsonpatch=require(_0x2dbc('0x1'));var rp=require(_0x2dbc('0x2'));var moment=require(_0x2dbc('0x3'));var BPromise=require(_0x2dbc('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x2dbc('0x5'));var sox=require(_0x2dbc('0x6'));var csv=require(_0x2dbc('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2dbc('0x8'));var _=require(_0x2dbc('0x9'));var squel=require('squel');var crypto=require(_0x2dbc('0xa'));var jsforce=require(_0x2dbc('0xb'));var deskjs=require(_0x2dbc('0xc'));var toCsv=require('to-csv');var querystring=require(_0x2dbc('0xd'));var Papa=require(_0x2dbc('0xe'));var Redis=require(_0x2dbc('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x2dbc('0x10'));var as=require(_0x2dbc('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2dbc('0x12'))(_0x2dbc('0x13'));var utils=require(_0x2dbc('0x14'));var config=require(_0x2dbc('0x15'));var licenseUtil=require(_0x2dbc('0x16'));var db=require(_0x2dbc('0x17'))['db'];function respondWithStatusCode(_0x13d303,_0x2b258f){_0x2b258f=_0x2b258f||0xcc;return function(_0x471f4){if(_0x471f4){return _0x13d303['sendStatus'](_0x2b258f);}return _0x13d303['status'](_0x2b258f)[_0x2dbc('0x18')]();};}function respondWithResult(_0x180ac3,_0x3f0729){_0x3f0729=_0x3f0729||0xc8;return function(_0x37fa13){if(_0x37fa13){return _0x180ac3[_0x2dbc('0x19')](_0x3f0729)[_0x2dbc('0x1a')](_0x37fa13);}};}function respondWithFilteredResult(_0x12189d,_0xc78a7f){return function(_0x182943){if(_0x182943){var _0x380d65=typeof _0xc78a7f[_0x2dbc('0x1b')]===_0x2dbc('0x1c')&&typeof _0xc78a7f['limit']===_0x2dbc('0x1c');var _0x2094eb=_0x182943[_0x2dbc('0x1d')];var _0x4fc805=_0x380d65?0x0:_0xc78a7f['offset'];var _0x588b47=_0x380d65?_0x182943['count']:_0xc78a7f[_0x2dbc('0x1b')]+_0xc78a7f[_0x2dbc('0x1e')];var _0x300ed7;if(_0x588b47>=_0x2094eb){_0x588b47=_0x2094eb;_0x300ed7=0xc8;}else{_0x300ed7=0xce;}_0x12189d['status'](_0x300ed7);return _0x12189d[_0x2dbc('0x1f')](_0x2dbc('0x20'),_0x4fc805+'-'+_0x588b47+'/'+_0x2094eb)['json'](_0x182943);}return null;};}function patchUpdates(_0x2bc484){return function(_0x35309c){try{jsonpatch['apply'](_0x35309c,_0x2bc484,!![]);}catch(_0x3b6bf4){return BPromise[_0x2dbc('0x21')](_0x3b6bf4);}return _0x35309c[_0x2dbc('0x22')]();};}function saveUpdates(_0xd7005b,_0x8df806){return function(_0x41e724){if(_0x41e724){return _0x41e724[_0x2dbc('0x23')](_0xd7005b)[_0x2dbc('0x24')](function(_0x3c4c8c){return _0x3c4c8c;});}return null;};}function removeEntity(_0x479f0f,_0x5ce872){return function(_0x5793c7){if(_0x5793c7){return _0x5793c7['destroy']()[_0x2dbc('0x24')](function(){_0x479f0f['status'](0xcc)[_0x2dbc('0x18')]();});}};}function handleEntityNotFound(_0x47b216,_0x2e52a3){return function(_0x369901){if(!_0x369901){_0x47b216['sendStatus'](0x194);}return _0x369901;};}function handleError(_0x30ab8e,_0x43c772){_0x43c772=_0x43c772||0x1f4;return function(_0x4bad46){logger[_0x2dbc('0x25')](_0x4bad46[_0x2dbc('0x26')]);if(_0x4bad46[_0x2dbc('0x27')]){delete _0x4bad46['name'];}_0x30ab8e['status'](_0x43c772)[_0x2dbc('0x28')](_0x4bad46);};}exports['index']=function(_0x1ee3e4,_0x14b1d9){var _0x175bbe={},_0x384abd={},_0x3c7c8d={'count':0x0,'rows':[]};var _0x40c152=_['map'](db['SquareReport'][_0x2dbc('0x29')],function(_0x2393d8){return{'name':_0x2393d8[_0x2dbc('0x2a')],'type':_0x2393d8[_0x2dbc('0x2b')][_0x2dbc('0x2c')]};});_0x384abd[_0x2dbc('0x2d')]=_[_0x2dbc('0x2e')](_0x40c152,_0x2dbc('0x27'));_0x384abd['query']=_[_0x2dbc('0x2f')](_0x1ee3e4[_0x2dbc('0x30')]);_0x384abd[_0x2dbc('0x31')]=_['intersection'](_0x384abd[_0x2dbc('0x2d')],_0x384abd[_0x2dbc('0x30')]);_0x175bbe[_0x2dbc('0x32')]=_[_0x2dbc('0x33')](_0x384abd['model'],qs[_0x2dbc('0x34')](_0x1ee3e4[_0x2dbc('0x30')][_0x2dbc('0x34')]));_0x175bbe[_0x2dbc('0x32')]=_0x175bbe[_0x2dbc('0x32')][_0x2dbc('0x35')]?_0x175bbe['attributes']:_0x384abd[_0x2dbc('0x2d')];if(!_0x1ee3e4[_0x2dbc('0x30')][_0x2dbc('0x36')](_0x2dbc('0x37'))){_0x175bbe[_0x2dbc('0x1e')]=qs['limit'](_0x1ee3e4[_0x2dbc('0x30')][_0x2dbc('0x1e')]);_0x175bbe[_0x2dbc('0x1b')]=qs[_0x2dbc('0x1b')](_0x1ee3e4[_0x2dbc('0x30')][_0x2dbc('0x1b')]);}_0x175bbe[_0x2dbc('0x38')]=qs[_0x2dbc('0x39')](_0x1ee3e4[_0x2dbc('0x30')]['sort']);_0x175bbe[_0x2dbc('0x3a')]=qs[_0x2dbc('0x31')](_[_0x2dbc('0x3b')](_0x1ee3e4[_0x2dbc('0x30')],_0x384abd[_0x2dbc('0x31')]),_0x40c152);if(_0x1ee3e4['query'][_0x2dbc('0x3c')]){_0x175bbe[_0x2dbc('0x3a')]=_[_0x2dbc('0x3d')](_0x175bbe['where'],{'$or':_[_0x2dbc('0x2e')](_0x40c152,function(_0x514d12){if(_0x514d12[_0x2dbc('0x2b')]!=='VIRTUAL'){var _0x2e6be4={};_0x2e6be4[_0x514d12[_0x2dbc('0x27')]]={'$like':'%'+_0x1ee3e4[_0x2dbc('0x30')][_0x2dbc('0x3c')]+'%'};return _0x2e6be4;}})});}_0x175bbe=_[_0x2dbc('0x3d')]({},_0x175bbe,_0x1ee3e4['options']);var _0xc488b={'where':_0x175bbe['where']};return db[_0x2dbc('0x3e')][_0x2dbc('0x1d')](_0xc488b)[_0x2dbc('0x24')](function(_0x470cb1){_0x3c7c8d['count']=_0x470cb1;if(_0x1ee3e4[_0x2dbc('0x30')]['includeAll']){_0x175bbe[_0x2dbc('0x3f')]=[{'all':!![]}];}return db[_0x2dbc('0x3e')]['findAll'](_0x175bbe);})['then'](function(_0x322d62){_0x3c7c8d[_0x2dbc('0x40')]=_0x322d62;return _0x3c7c8d;})['then'](respondWithFilteredResult(_0x14b1d9,_0x175bbe))[_0x2dbc('0x41')](handleError(_0x14b1d9,null));};exports[_0x2dbc('0x42')]=function(_0x35b3e7,_0x24d175){var _0x18cd74={'raw':!![],'where':{'id':_0x35b3e7['params']['id']}},_0x4000cd={};_0x4000cd[_0x2dbc('0x2d')]=_[_0x2dbc('0x2f')](db['SquareReport']['rawAttributes']);_0x4000cd['query']=_['keys'](_0x35b3e7['query']);_0x4000cd[_0x2dbc('0x31')]=_[_0x2dbc('0x33')](_0x4000cd[_0x2dbc('0x2d')],_0x4000cd[_0x2dbc('0x30')]);_0x18cd74[_0x2dbc('0x32')]=_['intersection'](_0x4000cd[_0x2dbc('0x2d')],qs['fields'](_0x35b3e7[_0x2dbc('0x30')]['fields']));_0x18cd74[_0x2dbc('0x32')]=_0x18cd74[_0x2dbc('0x32')][_0x2dbc('0x35')]?_0x18cd74[_0x2dbc('0x32')]:_0x4000cd['model'];if(_0x35b3e7['query']['includeAll']){_0x18cd74[_0x2dbc('0x3f')]=[{'all':!![]}];}_0x18cd74=_[_0x2dbc('0x3d')]({},_0x18cd74,_0x35b3e7[_0x2dbc('0x43')]);return db[_0x2dbc('0x3e')]['find'](_0x18cd74)['then'](handleEntityNotFound(_0x24d175,null))['then'](respondWithResult(_0x24d175,null))[_0x2dbc('0x41')](handleError(_0x24d175,null));};exports[_0x2dbc('0x44')]=function(_0x53a16b,_0x2cfbda){return db[_0x2dbc('0x3e')][_0x2dbc('0x44')](_0x53a16b[_0x2dbc('0x45')],{})[_0x2dbc('0x24')](respondWithResult(_0x2cfbda,0xc9))['catch'](handleError(_0x2cfbda,null));};exports[_0x2dbc('0x23')]=function(_0x32d38b,_0x3e509a){if(_0x32d38b['body']['id']){delete _0x32d38b[_0x2dbc('0x45')]['id'];}return db['SquareReport']['find']({'where':{'id':_0x32d38b[_0x2dbc('0x46')]['id']}})[_0x2dbc('0x24')](handleEntityNotFound(_0x3e509a,null))['then'](saveUpdates(_0x32d38b['body'],null))[_0x2dbc('0x24')](respondWithResult(_0x3e509a,null))[_0x2dbc('0x41')](handleError(_0x3e509a,null));};exports['destroy']=function(_0x484a91,_0x4f2585){return db[_0x2dbc('0x3e')][_0x2dbc('0x47')]({'where':{'id':_0x484a91[_0x2dbc('0x46')]['id']}})[_0x2dbc('0x24')](handleEntityNotFound(_0x4f2585,null))[_0x2dbc('0x24')](removeEntity(_0x4f2585,null))['catch'](handleError(_0x4f2585,null));};exports[_0x2dbc('0x48')]=function(_0x54cd4f,_0x27c406){return db['SquareReport'][_0x2dbc('0x48')]()[_0x2dbc('0x24')](respondWithResult(_0x27c406,null))['catch'](handleError(_0x27c406,null));};
\ No newline at end of file
+var _0x2561=['body','catch','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','index','map','rawAttributes','type','key','name','keys','query','filters','intersection','attributes','model','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','SquareReport','includeAll','findAll','show','params','find','create'];(function(_0x396772,_0x1d24d4){var _0x49b80a=function(_0x5f4098){while(--_0x5f4098){_0x396772['push'](_0x396772['shift']());}};_0x49b80a(++_0x1d24d4);}(_0x2561,0x16b));var _0x1256=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0x2561[_0x126558];return _0x1f6d14;};'use strict';var emlformat=require(_0x1256('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1256('0x1'));var jsonpatch=require(_0x1256('0x2'));var rp=require(_0x1256('0x3'));var moment=require(_0x1256('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x1256('0x5'));var path=require('path');var sox=require(_0x1256('0x6'));var csv=require('to-csv');var ejs=require(_0x1256('0x7'));var fs=require('fs');var fs_extra=require(_0x1256('0x8'));var _=require(_0x1256('0x9'));var squel=require(_0x1256('0xa'));var crypto=require('crypto');var jsforce=require(_0x1256('0xb'));var deskjs=require(_0x1256('0xc'));var toCsv=require('to-csv');var querystring=require(_0x1256('0xd'));var Papa=require(_0x1256('0xe'));var Redis=require(_0x1256('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x1256('0x10'));var as=require(_0x1256('0x11'));var hardwareService=require(_0x1256('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x1256('0x13'));var licenseUtil=require(_0x1256('0x14'));var db=require(_0x1256('0x15'))['db'];function respondWithStatusCode(_0x4d75b2,_0x11cb1a){_0x11cb1a=_0x11cb1a||0xcc;return function(_0x4bf1e6){if(_0x4bf1e6){return _0x4d75b2[_0x1256('0x16')](_0x11cb1a);}return _0x4d75b2[_0x1256('0x17')](_0x11cb1a)[_0x1256('0x18')]();};}function respondWithResult(_0x1a236b,_0x1b5ff2){_0x1b5ff2=_0x1b5ff2||0xc8;return function(_0x494133){if(_0x494133){return _0x1a236b[_0x1256('0x17')](_0x1b5ff2)['json'](_0x494133);}};}function respondWithFilteredResult(_0x5e560f,_0x3ea25e){return function(_0x59c010){if(_0x59c010){var _0x2bfd79=typeof _0x3ea25e[_0x1256('0x19')]===_0x1256('0x1a')&&typeof _0x3ea25e[_0x1256('0x1b')]===_0x1256('0x1a');var _0x17fa09=_0x59c010[_0x1256('0x1c')];var _0x48db2a=_0x2bfd79?0x0:_0x3ea25e[_0x1256('0x19')];var _0x1b52c7=_0x2bfd79?_0x59c010['count']:_0x3ea25e['offset']+_0x3ea25e[_0x1256('0x1b')];var _0x3c5a21;if(_0x1b52c7>=_0x17fa09){_0x1b52c7=_0x17fa09;_0x3c5a21=0xc8;}else{_0x3c5a21=0xce;}_0x5e560f[_0x1256('0x17')](_0x3c5a21);return _0x5e560f[_0x1256('0x1d')](_0x1256('0x1e'),_0x48db2a+'-'+_0x1b52c7+'/'+_0x17fa09)['json'](_0x59c010);}return null;};}function patchUpdates(_0x10f1e3){return function(_0x173425){try{jsonpatch[_0x1256('0x1f')](_0x173425,_0x10f1e3,!![]);}catch(_0x5d521d){return BPromise[_0x1256('0x20')](_0x5d521d);}return _0x173425[_0x1256('0x21')]();};}function saveUpdates(_0x552cc1,_0x1ad9b0){return function(_0xe006b9){if(_0xe006b9){return _0xe006b9[_0x1256('0x22')](_0x552cc1)[_0x1256('0x23')](function(_0x201cda){return _0x201cda;});}return null;};}function removeEntity(_0x27dedd,_0x3838f4){return function(_0x3a408d){if(_0x3a408d){return _0x3a408d[_0x1256('0x24')]()[_0x1256('0x23')](function(){_0x27dedd[_0x1256('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x9b7e97,_0x5df4e3){return function(_0x29348f){if(!_0x29348f){_0x9b7e97[_0x1256('0x16')](0x194);}return _0x29348f;};}function handleError(_0x176544,_0x7a5532){_0x7a5532=_0x7a5532||0x1f4;return function(_0x3b2c4c){logger[_0x1256('0x25')](_0x3b2c4c[_0x1256('0x26')]);if(_0x3b2c4c['name']){delete _0x3b2c4c['name'];}_0x176544[_0x1256('0x17')](_0x7a5532)['send'](_0x3b2c4c);};}exports[_0x1256('0x27')]=function(_0x497899,_0x385885){var _0x2be6a3={},_0x40aa67={},_0x5d5887={'count':0x0,'rows':[]};var _0x2465c6=_[_0x1256('0x28')](db['SquareReport'][_0x1256('0x29')],function(_0x351f67){return{'name':_0x351f67['fieldName'],'type':_0x351f67[_0x1256('0x2a')][_0x1256('0x2b')]};});_0x40aa67['model']=_[_0x1256('0x28')](_0x2465c6,_0x1256('0x2c'));_0x40aa67['query']=_[_0x1256('0x2d')](_0x497899[_0x1256('0x2e')]);_0x40aa67[_0x1256('0x2f')]=_[_0x1256('0x30')](_0x40aa67['model'],_0x40aa67[_0x1256('0x2e')]);_0x2be6a3[_0x1256('0x31')]=_[_0x1256('0x30')](_0x40aa67[_0x1256('0x32')],qs[_0x1256('0x33')](_0x497899[_0x1256('0x2e')][_0x1256('0x33')]));_0x2be6a3[_0x1256('0x31')]=_0x2be6a3[_0x1256('0x31')][_0x1256('0x34')]?_0x2be6a3['attributes']:_0x40aa67[_0x1256('0x32')];if(!_0x497899[_0x1256('0x2e')]['hasOwnProperty'](_0x1256('0x35'))){_0x2be6a3['limit']=qs['limit'](_0x497899[_0x1256('0x2e')]['limit']);_0x2be6a3[_0x1256('0x19')]=qs[_0x1256('0x19')](_0x497899[_0x1256('0x2e')]['offset']);}_0x2be6a3[_0x1256('0x36')]=qs[_0x1256('0x37')](_0x497899[_0x1256('0x2e')][_0x1256('0x37')]);_0x2be6a3[_0x1256('0x38')]=qs['filters'](_[_0x1256('0x39')](_0x497899[_0x1256('0x2e')],_0x40aa67[_0x1256('0x2f')]),_0x2465c6);if(_0x497899[_0x1256('0x2e')][_0x1256('0x3a')]){_0x2be6a3[_0x1256('0x38')]=_[_0x1256('0x3b')](_0x2be6a3[_0x1256('0x38')],{'$or':_[_0x1256('0x28')](_0x2465c6,function(_0x3db011){if(_0x3db011[_0x1256('0x2a')]!==_0x1256('0x3c')){var _0x2e2974={};_0x2e2974[_0x3db011[_0x1256('0x2c')]]={'$like':'%'+_0x497899[_0x1256('0x2e')]['filter']+'%'};return _0x2e2974;}})});}_0x2be6a3=_['merge']({},_0x2be6a3,_0x497899[_0x1256('0x3d')]);var _0x4f15e9={'where':_0x2be6a3[_0x1256('0x38')]};return db[_0x1256('0x3e')][_0x1256('0x1c')](_0x4f15e9)[_0x1256('0x23')](function(_0x48563b){_0x5d5887[_0x1256('0x1c')]=_0x48563b;if(_0x497899[_0x1256('0x2e')][_0x1256('0x3f')]){_0x2be6a3['include']=[{'all':!![]}];}return db[_0x1256('0x3e')][_0x1256('0x40')](_0x2be6a3);})[_0x1256('0x23')](function(_0x337cd2){_0x5d5887['rows']=_0x337cd2;return _0x5d5887;})[_0x1256('0x23')](respondWithFilteredResult(_0x385885,_0x2be6a3))['catch'](handleError(_0x385885,null));};exports[_0x1256('0x41')]=function(_0x19d2d5,_0x5cabc4){var _0x415fc1={'raw':!![],'where':{'id':_0x19d2d5[_0x1256('0x42')]['id']}},_0x1b9b05={};_0x1b9b05[_0x1256('0x32')]=_[_0x1256('0x2d')](db['SquareReport'][_0x1256('0x29')]);_0x1b9b05['query']=_['keys'](_0x19d2d5[_0x1256('0x2e')]);_0x1b9b05[_0x1256('0x2f')]=_[_0x1256('0x30')](_0x1b9b05['model'],_0x1b9b05[_0x1256('0x2e')]);_0x415fc1[_0x1256('0x31')]=_[_0x1256('0x30')](_0x1b9b05[_0x1256('0x32')],qs['fields'](_0x19d2d5[_0x1256('0x2e')]['fields']));_0x415fc1[_0x1256('0x31')]=_0x415fc1[_0x1256('0x31')][_0x1256('0x34')]?_0x415fc1['attributes']:_0x1b9b05[_0x1256('0x32')];if(_0x19d2d5[_0x1256('0x2e')]['includeAll']){_0x415fc1['include']=[{'all':!![]}];}_0x415fc1=_[_0x1256('0x3b')]({},_0x415fc1,_0x19d2d5[_0x1256('0x3d')]);return db[_0x1256('0x3e')][_0x1256('0x43')](_0x415fc1)[_0x1256('0x23')](handleEntityNotFound(_0x5cabc4,null))[_0x1256('0x23')](respondWithResult(_0x5cabc4,null))['catch'](handleError(_0x5cabc4,null));};exports['create']=function(_0x3cdcec,_0x5e99e7){return db[_0x1256('0x3e')][_0x1256('0x44')](_0x3cdcec[_0x1256('0x45')],{})[_0x1256('0x23')](respondWithResult(_0x5e99e7,0xc9))['catch'](handleError(_0x5e99e7,null));};exports['update']=function(_0x544f98,_0x536229){if(_0x544f98[_0x1256('0x45')]['id']){delete _0x544f98['body']['id'];}return db[_0x1256('0x3e')][_0x1256('0x43')]({'where':{'id':_0x544f98[_0x1256('0x42')]['id']}})[_0x1256('0x23')](handleEntityNotFound(_0x536229,null))[_0x1256('0x23')](saveUpdates(_0x544f98[_0x1256('0x45')],null))[_0x1256('0x23')](respondWithResult(_0x536229,null))[_0x1256('0x46')](handleError(_0x536229,null));};exports['destroy']=function(_0x4182eb,_0x171327){return db[_0x1256('0x3e')][_0x1256('0x43')]({'where':{'id':_0x4182eb[_0x1256('0x42')]['id']}})[_0x1256('0x23')](handleEntityNotFound(_0x171327,null))[_0x1256('0x23')](removeEntity(_0x171327,null))['catch'](handleError(_0x171327,null));};exports['describe']=function(_0x506e4f,_0x505451){return db['SquareReport'][_0x1256('0x47')]()[_0x1256('0x23')](respondWithResult(_0x505451,null))[_0x1256('0x46')](handleError(_0x505451,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x398e=['project_name','leaveAt','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','exports','SquareReport','report_square','uid_pname','uniqueid'];(function(_0x2ab0fb,_0xf21f9e){var _0x578c50=function(_0x1223b3){while(--_0x1223b3){_0x2ab0fb['push'](_0x2ab0fb['shift']());}};_0x578c50(++_0xf21f9e);}(_0x398e,0x1b5));var _0xe398=function(_0x5416db,_0x55683a){_0x5416db=_0x5416db-0x0;var _0x243e35=_0x398e[_0x5416db];return _0x243e35;};'use strict';var _=require('lodash');var util=require(_0xe398('0x0'));var logger=require(_0xe398('0x1'))(_0xe398('0x2'));var moment=require('moment');var BPromise=require(_0xe398('0x3'));var rp=require(_0xe398('0x4'));var fs=require('fs');var path=require(_0xe398('0x5'));var rimraf=require(_0xe398('0x6'));var config=require(_0xe398('0x7'));var attributes=require('./squareReport.attributes');module[_0xe398('0x8')]=function(_0x1c7d92,_0x445dd6){return _0x1c7d92['define'](_0xe398('0x9'),attributes,{'tableName':_0xe398('0xa'),'paranoid':![],'indexes':[{'name':_0xe398('0xb'),'fields':[_0xe398('0xc'),_0xe398('0xd')]},{'name':_0xe398('0xe'),'fields':[_0xe398('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xe91b=['../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','exports','report_square','uid_pname','uniqueid','leaveAt','util'];(function(_0x118231,_0xa8cccc){var _0x5066c6=function(_0x3121e0){while(--_0x3121e0){_0x118231['push'](_0x118231['shift']());}};_0x5066c6(++_0xa8cccc);}(_0xe91b,0x9b));var _0xbe91=function(_0x95942,_0x85da80){_0x95942=_0x95942-0x0;var _0x6d7f81=_0xe91b[_0x95942];return _0x6d7f81;};'use strict';var _=require('lodash');var util=require(_0xbe91('0x0'));var logger=require(_0xbe91('0x1'))(_0xbe91('0x2'));var moment=require(_0xbe91('0x3'));var BPromise=require(_0xbe91('0x4'));var rp=require(_0xbe91('0x5'));var fs=require('fs');var path=require(_0xbe91('0x6'));var rimraf=require('rimraf');var config=require(_0xbe91('0x7'));var attributes=require('./squareReport.attributes');module[_0xbe91('0x8')]=function(_0x439b57,_0x22fd15){return _0x439b57['define']('SquareReport',attributes,{'tableName':_0xbe91('0x9'),'paranoid':![],'indexes':[{'name':_0xbe91('0xa'),'fields':[_0xbe91('0xb'),'project_name']},{'name':_0xbe91('0xc'),'fields':[_0xbe91('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc545=['options','raw','UpdateSquareReport','update','where','attributes','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','request','then','SquareReport,\x20%s,\x20%s','request\x20sent','debug','SquareReport,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','CreateSquareReport','SquareReport','create','body'];(function(_0x146bf9,_0x39a969){var _0x5902f9=function(_0x408f55){while(--_0x408f55){_0x146bf9['push'](_0x146bf9['shift']());}};_0x5902f9(++_0x39a969);}(_0xc545,0x82));var _0x5c54=function(_0x455fe3,_0x4ce7ab){_0x455fe3=_0x455fe3-0x0;var _0x2f9e6c=_0xc545[_0x455fe3];return _0x2f9e6c;};'use strict';var _=require('lodash');var util=require(_0x5c54('0x0'));var moment=require(_0x5c54('0x1'));var BPromise=require('bluebird');var rs=require(_0x5c54('0x2'));var fs=require('fs');var Redis=require(_0x5c54('0x3'));var db=require(_0x5c54('0x4'))['db'];var utils=require(_0x5c54('0x5'));var logger=require(_0x5c54('0x6'))(_0x5c54('0x7'));var config=require(_0x5c54('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3a2688,_0x4f943b,_0x378b3a){return new BPromise(function(_0x5072d7,_0x84799d){return client[_0x5c54('0x9')](_0x3a2688,_0x378b3a)[_0x5c54('0xa')](function(_0x37374b){logger['info'](_0x5c54('0xb'),_0x4f943b,_0x5c54('0xc'));logger[_0x5c54('0xd')](_0x5c54('0xe'),_0x4f943b,'request\x20sent',JSON[_0x5c54('0xf')](_0x37374b));if(_0x37374b['error']){if(_0x37374b[_0x5c54('0x10')]['code']===0x1f4){logger[_0x5c54('0x10')](_0x5c54('0xb'),_0x4f943b,_0x37374b[_0x5c54('0x10')]['message']);return _0x84799d(_0x37374b[_0x5c54('0x10')]['message']);}logger['error'](_0x5c54('0xb'),_0x4f943b,_0x37374b[_0x5c54('0x10')][_0x5c54('0x11')]);return _0x5072d7(_0x37374b['error'][_0x5c54('0x11')]);}else{logger[_0x5c54('0x12')](_0x5c54('0xb'),_0x4f943b,_0x5c54('0xc'));_0x5072d7(_0x37374b[_0x5c54('0x13')][_0x5c54('0x11')]);}})[_0x5c54('0x14')](function(_0x154a28){logger[_0x5c54('0x10')]('SquareReport,\x20%s,\x20%s',_0x4f943b,_0x154a28);_0x84799d(_0x154a28);});});}exports[_0x5c54('0x15')]=function(_0x3537ff){var _0x575738=this;return new Promise(function(_0x5c1ade,_0x4be954){return db[_0x5c54('0x16')][_0x5c54('0x17')](_0x3537ff[_0x5c54('0x18')],{'raw':_0x3537ff['options']?_0x3537ff[_0x5c54('0x19')][_0x5c54('0x1a')]===undefined?!![]:![]:!![]})['then'](function(_0x50d4b4){logger['info'](_0x5c54('0x15'),_0x3537ff);logger[_0x5c54('0xd')](_0x5c54('0x15'),_0x3537ff,JSON['stringify'](_0x50d4b4));_0x5c1ade(_0x50d4b4);})['catch'](function(_0x48372b){logger[_0x5c54('0x10')]('CreateSquareReport',_0x48372b[_0x5c54('0x11')],_0x3537ff);_0x4be954(_0x575738[_0x5c54('0x10')](0x1f4,_0x48372b['message']));});});};exports[_0x5c54('0x1b')]=function(_0x387bc6){var _0x5377d5=this;return new Promise(function(_0x307927,_0x25a91c){return db[_0x5c54('0x16')][_0x5c54('0x1c')](_0x387bc6[_0x5c54('0x18')],{'raw':_0x387bc6[_0x5c54('0x19')]?_0x387bc6['options'][_0x5c54('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x387bc6['options']?_0x387bc6[_0x5c54('0x19')][_0x5c54('0x1d')]||null:null,'attributes':_0x387bc6[_0x5c54('0x19')]?_0x387bc6[_0x5c54('0x19')][_0x5c54('0x1e')]||null:null,'limit':_0x387bc6[_0x5c54('0x19')]?_0x387bc6[_0x5c54('0x19')]['limit']||null:null})[_0x5c54('0xa')](function(_0x30a160){logger[_0x5c54('0x12')](_0x5c54('0x1b'),_0x387bc6);logger[_0x5c54('0xd')](_0x5c54('0x1b'),_0x387bc6,JSON[_0x5c54('0xf')](_0x30a160));_0x307927(_0x30a160);})[_0x5c54('0x14')](function(_0x5c8b70){logger[_0x5c54('0x10')](_0x5c54('0x1b'),_0x5c8b70[_0x5c54('0x11')],_0x387bc6);_0x25a91c(_0x5377d5[_0x5c54('0x10')](0x1f4,_0x5c8b70[_0x5c54('0x11')]));});});};
\ No newline at end of file
+var _0x2682=['jayson/promise','http','request','info','SquareReport,\x20%s,\x20%s','request\x20sent','debug','SquareReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateSquareReport','SquareReport','create','body','options','UpdateSquareReport','update','raw','where','attributes','limit','then','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x8b1d90,_0x5ab978){var _0x2c60fd=function(_0x694b43){while(--_0x694b43){_0x8b1d90['push'](_0x8b1d90['shift']());}};_0x2c60fd(++_0x5ab978);}(_0x2682,0xaa));var _0x2268=function(_0x3a9696,_0x5b3dee){_0x3a9696=_0x3a9696-0x0;var _0x269f27=_0x2682[_0x3a9696];return _0x269f27;};'use strict';var _=require(_0x2268('0x0'));var util=require(_0x2268('0x1'));var moment=require(_0x2268('0x2'));var BPromise=require('bluebird');var rs=require(_0x2268('0x3'));var fs=require('fs');var Redis=require(_0x2268('0x4'));var db=require(_0x2268('0x5'))['db'];var utils=require(_0x2268('0x6'));var logger=require(_0x2268('0x7'))(_0x2268('0x8'));var config=require(_0x2268('0x9'));var jayson=require(_0x2268('0xa'));var client=jayson['client'][_0x2268('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1e11d7,_0x275bd7,_0x2ac3f0){return new BPromise(function(_0x3a3db2,_0x29dec2){return client[_0x2268('0xc')](_0x1e11d7,_0x2ac3f0)['then'](function(_0x37efcf){logger[_0x2268('0xd')](_0x2268('0xe'),_0x275bd7,_0x2268('0xf'));logger[_0x2268('0x10')](_0x2268('0x11'),_0x275bd7,'request\x20sent',JSON[_0x2268('0x12')](_0x37efcf));if(_0x37efcf[_0x2268('0x13')]){if(_0x37efcf[_0x2268('0x13')][_0x2268('0x14')]===0x1f4){logger[_0x2268('0x13')](_0x2268('0xe'),_0x275bd7,_0x37efcf[_0x2268('0x13')]['message']);return _0x29dec2(_0x37efcf[_0x2268('0x13')][_0x2268('0x15')]);}logger['error'](_0x2268('0xe'),_0x275bd7,_0x37efcf[_0x2268('0x13')]['message']);return _0x3a3db2(_0x37efcf[_0x2268('0x13')][_0x2268('0x15')]);}else{logger[_0x2268('0xd')](_0x2268('0xe'),_0x275bd7,_0x2268('0xf'));_0x3a3db2(_0x37efcf[_0x2268('0x16')][_0x2268('0x15')]);}})[_0x2268('0x17')](function(_0x589fb3){logger[_0x2268('0x13')](_0x2268('0xe'),_0x275bd7,_0x589fb3);_0x29dec2(_0x589fb3);});});}exports[_0x2268('0x18')]=function(_0x587b71){var _0x4be266=this;return new Promise(function(_0x275360,_0x1dbee5){return db[_0x2268('0x19')][_0x2268('0x1a')](_0x587b71[_0x2268('0x1b')],{'raw':_0x587b71[_0x2268('0x1c')]?_0x587b71[_0x2268('0x1c')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0xb24e1c){logger['info'](_0x2268('0x18'),_0x587b71);logger[_0x2268('0x10')](_0x2268('0x18'),_0x587b71,JSON[_0x2268('0x12')](_0xb24e1c));_0x275360(_0xb24e1c);})['catch'](function(_0x3763c7){logger[_0x2268('0x13')]('CreateSquareReport',_0x3763c7[_0x2268('0x15')],_0x587b71);_0x1dbee5(_0x4be266['error'](0x1f4,_0x3763c7[_0x2268('0x15')]));});});};exports[_0x2268('0x1d')]=function(_0x15ebc2){var _0x2226e9=this;return new Promise(function(_0x1d6948,_0x2e1711){return db[_0x2268('0x19')][_0x2268('0x1e')](_0x15ebc2[_0x2268('0x1b')],{'raw':_0x15ebc2['options']?_0x15ebc2[_0x2268('0x1c')][_0x2268('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x15ebc2[_0x2268('0x1c')]?_0x15ebc2[_0x2268('0x1c')][_0x2268('0x20')]||null:null,'attributes':_0x15ebc2[_0x2268('0x1c')]?_0x15ebc2[_0x2268('0x1c')][_0x2268('0x21')]||null:null,'limit':_0x15ebc2[_0x2268('0x1c')]?_0x15ebc2[_0x2268('0x1c')][_0x2268('0x22')]||null:null})[_0x2268('0x23')](function(_0x56d0f6){logger['info'](_0x2268('0x1d'),_0x15ebc2);logger[_0x2268('0x10')](_0x2268('0x1d'),_0x15ebc2,JSON['stringify'](_0x56d0f6));_0x1d6948(_0x56d0f6);})[_0x2268('0x17')](function(_0x480acf){logger[_0x2268('0x13')](_0x2268('0x1d'),_0x480acf[_0x2268('0x15')],_0x15ebc2);_0x2e1711(_0x2226e9[_0x2268('0x13')](0x1f4,_0x480acf[_0x2268('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2ac=['../../config/environment','./squareReportDetail.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','put','update','delete','destroy','exports','multer','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x5806c3,_0x5105d8){var _0x48ac77=function(_0x4826ec){while(--_0x4826ec){_0x5806c3['push'](_0x5806c3['shift']());}};_0x48ac77(++_0x5105d8);}(_0xe2ac,0xf6));var _0xce2a=function(_0xf9a6cf,_0x11870e){_0xf9a6cf=_0xf9a6cf-0x0;var _0x59e2bc=_0xe2ac[_0xf9a6cf];return _0x59e2bc;};'use strict';var multer=require(_0xce2a('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xce2a('0x1'));var express=require('express');var router=express[_0xce2a('0x2')]();var fs_extra=require(_0xce2a('0x3'));var auth=require(_0xce2a('0x4'));var interaction=require(_0xce2a('0x5'));var config=require(_0xce2a('0x6'));var controller=require(_0xce2a('0x7'));router[_0xce2a('0x8')]('/',auth[_0xce2a('0x9')](),controller[_0xce2a('0xa')]);router[_0xce2a('0x8')](_0xce2a('0xb'),auth['isAuthenticated'](),controller[_0xce2a('0xc')]);router[_0xce2a('0x8')](_0xce2a('0xd'),auth['isAuthenticated'](),controller[_0xce2a('0xe')]);router[_0xce2a('0xf')]('/',auth[_0xce2a('0x9')](),controller['create']);router[_0xce2a('0x10')](_0xce2a('0xd'),auth[_0xce2a('0x9')](),controller[_0xce2a('0x11')]);router[_0xce2a('0x12')]('/:id',auth[_0xce2a('0x9')](),controller[_0xce2a('0x13')]);module[_0xce2a('0x14')]=router;
\ No newline at end of file
+var _0xa149=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareReportDetail.controller','get','index','/describe','isAuthenticated','describe','post','put','/:id','delete','destroy','exports','multer','util','express','Router'];(function(_0x490f5c,_0x5edf0c){var _0x495d9=function(_0x40a8cf){while(--_0x40a8cf){_0x490f5c['push'](_0x490f5c['shift']());}};_0x495d9(++_0x5edf0c);}(_0xa149,0x164));var _0x9a14=function(_0x3cd32f,_0x596cc1){_0x3cd32f=_0x3cd32f-0x0;var _0x1be833=_0xa149[_0x3cd32f];return _0x1be833;};'use strict';var multer=require(_0x9a14('0x0'));var util=require(_0x9a14('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x9a14('0x2'));var router=express[_0x9a14('0x3')]();var fs_extra=require(_0x9a14('0x4'));var auth=require(_0x9a14('0x5'));var interaction=require(_0x9a14('0x6'));var config=require(_0x9a14('0x7'));var controller=require(_0x9a14('0x8'));router[_0x9a14('0x9')]('/',auth['isAuthenticated'](),controller[_0x9a14('0xa')]);router['get'](_0x9a14('0xb'),auth[_0x9a14('0xc')](),controller[_0x9a14('0xd')]);router['get']('/:id',auth['isAuthenticated'](),controller['show']);router[_0x9a14('0xe')]('/',auth[_0x9a14('0xc')](),controller['create']);router[_0x9a14('0xf')](_0x9a14('0x10'),auth[_0x9a14('0xc')](),controller['update']);router[_0x9a14('0x11')](_0x9a14('0x10'),auth[_0x9a14('0xc')](),controller[_0x9a14('0x12')]);module[_0x9a14('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfcf4=['STRING','TEXT','sequelize','exports'];(function(_0xcf5436,_0x4632c3){var _0xc4f5c8=function(_0x567528){while(--_0x567528){_0xcf5436['push'](_0xcf5436['shift']());}};_0xc4f5c8(++_0x4632c3);}(_0xfcf4,0xe2));var _0x4fcf=function(_0x440964,_0x56c481){_0x440964=_0x440964-0x0;var _0x4b5276=_0xfcf4[_0x440964];return _0x4b5276;};'use strict';var Sequelize=require(_0x4fcf('0x0'));module[_0x4fcf('0x1')]={'uniqueid':{'type':Sequelize[_0x4fcf('0x2')]},'node':{'type':Sequelize[_0x4fcf('0x2')]},'application':{'type':Sequelize['STRING']},'data':{'type':Sequelize[_0x4fcf('0x3')]},'project_name':{'type':Sequelize[_0x4fcf('0x2')]},'callerid':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x7dc1=['sequelize','exports','STRING','TEXT'];(function(_0x4f72d8,_0x470fd7){var _0x44ef7a=function(_0x4a36d2){while(--_0x4a36d2){_0x4f72d8['push'](_0x4f72d8['shift']());}};_0x44ef7a(++_0x470fd7);}(_0x7dc1,0x6c));var _0x17dc=function(_0x3041e8,_0x48c4eb){_0x3041e8=_0x3041e8-0x0;var _0x5621c1=_0x7dc1[_0x3041e8];return _0x5621c1;};'use strict';var Sequelize=require(_0x17dc('0x0'));module[_0x17dc('0x1')]={'uniqueid':{'type':Sequelize['STRING']},'node':{'type':Sequelize[_0x17dc('0x2')]},'application':{'type':Sequelize[_0x17dc('0x2')]},'data':{'type':Sequelize[_0x17dc('0x3')]},'project_name':{'type':Sequelize[_0x17dc('0x2')]},'callerid':{'type':Sequelize[_0x17dc('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb085=['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','limit','undefined','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','index','map','key','model','keys','filters','intersection','attributes','fields','query','hasOwnProperty','order','sort','where','pick','merge','type','VIRTUAL','filter','options','SquareDetailsReport','count','includeAll','include','findAll','rows','catch','show','rawAttributes','create','body','params','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring'];(function(_0x4558af,_0x407efc){var _0x2851f9=function(_0x590629){while(--_0x590629){_0x4558af['push'](_0x4558af['shift']());}};_0x2851f9(++_0x407efc);}(_0xb085,0xd8));var _0x5b08=function(_0x191c83,_0x32fff6){_0x191c83=_0x191c83-0x0;var _0x322ae0=_0xb085[_0x191c83];return _0x322ae0;};'use strict';var emlformat=require(_0x5b08('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x5b08('0x1'));var jsonpatch=require(_0x5b08('0x2'));var rp=require(_0x5b08('0x3'));var moment=require(_0x5b08('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x5b08('0x5'));var util=require('util');var path=require(_0x5b08('0x6'));var sox=require('sox');var csv=require(_0x5b08('0x7'));var ejs=require(_0x5b08('0x8'));var fs=require('fs');var fs_extra=require(_0x5b08('0x9'));var _=require('lodash');var squel=require(_0x5b08('0xa'));var crypto=require(_0x5b08('0xb'));var jsforce=require(_0x5b08('0xc'));var deskjs=require(_0x5b08('0xd'));var toCsv=require(_0x5b08('0x7'));var querystring=require(_0x5b08('0xe'));var Papa=require(_0x5b08('0xf'));var Redis=require(_0x5b08('0x10'));var authService=require(_0x5b08('0x11'));var qs=require(_0x5b08('0x12'));var as=require(_0x5b08('0x13'));var hardwareService=require(_0x5b08('0x14'));var logger=require(_0x5b08('0x15'))(_0x5b08('0x16'));var utils=require(_0x5b08('0x17'));var config=require(_0x5b08('0x18'));var licenseUtil=require(_0x5b08('0x19'));var db=require(_0x5b08('0x1a'))['db'];function respondWithStatusCode(_0x1eba14,_0x58da35){_0x58da35=_0x58da35||0xcc;return function(_0x1bf422){if(_0x1bf422){return _0x1eba14[_0x5b08('0x1b')](_0x58da35);}return _0x1eba14[_0x5b08('0x1c')](_0x58da35)['end']();};}function respondWithResult(_0x3d4491,_0x7e8bd9){_0x7e8bd9=_0x7e8bd9||0xc8;return function(_0x3a422d){if(_0x3a422d){return _0x3d4491[_0x5b08('0x1c')](_0x7e8bd9)[_0x5b08('0x1d')](_0x3a422d);}};}function respondWithFilteredResult(_0x4aac4d,_0x3ab921){return function(_0x4c6b23){if(_0x4c6b23){var _0x682a38=typeof _0x3ab921[_0x5b08('0x1e')]==='undefined'&&typeof _0x3ab921[_0x5b08('0x1f')]===_0x5b08('0x20');var _0x4b90aa=_0x4c6b23['count'];var _0x3e6951=_0x682a38?0x0:_0x3ab921[_0x5b08('0x1e')];var _0x9f9363=_0x682a38?_0x4c6b23['count']:_0x3ab921[_0x5b08('0x1e')]+_0x3ab921['limit'];var _0x3e3d7d;if(_0x9f9363>=_0x4b90aa){_0x9f9363=_0x4b90aa;_0x3e3d7d=0xc8;}else{_0x3e3d7d=0xce;}_0x4aac4d['status'](_0x3e3d7d);return _0x4aac4d[_0x5b08('0x21')](_0x5b08('0x22'),_0x3e6951+'-'+_0x9f9363+'/'+_0x4b90aa)[_0x5b08('0x1d')](_0x4c6b23);}return null;};}function patchUpdates(_0x389a22){return function(_0x3f77ef){try{jsonpatch[_0x5b08('0x23')](_0x3f77ef,_0x389a22,!![]);}catch(_0x53e082){return BPromise[_0x5b08('0x24')](_0x53e082);}return _0x3f77ef[_0x5b08('0x25')]();};}function saveUpdates(_0x1b5bfa,_0x54f815){return function(_0x38f5f4){if(_0x38f5f4){return _0x38f5f4[_0x5b08('0x26')](_0x1b5bfa)[_0x5b08('0x27')](function(_0x101136){return _0x101136;});}return null;};}function removeEntity(_0x4e31a4,_0x3491ae){return function(_0x487e00){if(_0x487e00){return _0x487e00[_0x5b08('0x28')]()[_0x5b08('0x27')](function(){_0x4e31a4['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x526390,_0x15334a){return function(_0x2ab478){if(!_0x2ab478){_0x526390[_0x5b08('0x1b')](0x194);}return _0x2ab478;};}function handleError(_0x49d26d,_0x459b5f){_0x459b5f=_0x459b5f||0x1f4;return function(_0x51e666){logger[_0x5b08('0x29')](_0x51e666[_0x5b08('0x2a')]);if(_0x51e666[_0x5b08('0x2b')]){delete _0x51e666[_0x5b08('0x2b')];}_0x49d26d[_0x5b08('0x1c')](_0x459b5f)['send'](_0x51e666);};}exports[_0x5b08('0x2c')]=function(_0x17e315,_0xaa98c6){var _0x472e24={},_0x557c78={},_0xfe662e={'count':0x0,'rows':[]};var _0x10656f=_[_0x5b08('0x2d')](db['SquareDetailsReport']['rawAttributes'],function(_0x5d91a3){return{'name':_0x5d91a3['fieldName'],'type':_0x5d91a3['type'][_0x5b08('0x2e')]};});_0x557c78[_0x5b08('0x2f')]=_[_0x5b08('0x2d')](_0x10656f,'name');_0x557c78['query']=_[_0x5b08('0x30')](_0x17e315['query']);_0x557c78[_0x5b08('0x31')]=_[_0x5b08('0x32')](_0x557c78[_0x5b08('0x2f')],_0x557c78['query']);_0x472e24[_0x5b08('0x33')]=_['intersection'](_0x557c78[_0x5b08('0x2f')],qs[_0x5b08('0x34')](_0x17e315[_0x5b08('0x35')][_0x5b08('0x34')]));_0x472e24[_0x5b08('0x33')]=_0x472e24[_0x5b08('0x33')]['length']?_0x472e24['attributes']:_0x557c78[_0x5b08('0x2f')];if(!_0x17e315[_0x5b08('0x35')][_0x5b08('0x36')]('nolimit')){_0x472e24['limit']=qs[_0x5b08('0x1f')](_0x17e315[_0x5b08('0x35')]['limit']);_0x472e24[_0x5b08('0x1e')]=qs[_0x5b08('0x1e')](_0x17e315['query'][_0x5b08('0x1e')]);}_0x472e24[_0x5b08('0x37')]=qs[_0x5b08('0x38')](_0x17e315[_0x5b08('0x35')][_0x5b08('0x38')]);_0x472e24[_0x5b08('0x39')]=qs[_0x5b08('0x31')](_[_0x5b08('0x3a')](_0x17e315[_0x5b08('0x35')],_0x557c78[_0x5b08('0x31')]),_0x10656f);if(_0x17e315[_0x5b08('0x35')]['filter']){_0x472e24[_0x5b08('0x39')]=_[_0x5b08('0x3b')](_0x472e24['where'],{'$or':_[_0x5b08('0x2d')](_0x10656f,function(_0x479677){if(_0x479677[_0x5b08('0x3c')]!==_0x5b08('0x3d')){var _0x4606ed={};_0x4606ed[_0x479677[_0x5b08('0x2b')]]={'$like':'%'+_0x17e315[_0x5b08('0x35')][_0x5b08('0x3e')]+'%'};return _0x4606ed;}})});}_0x472e24=_[_0x5b08('0x3b')]({},_0x472e24,_0x17e315[_0x5b08('0x3f')]);var _0x165489={'where':_0x472e24['where']};return db[_0x5b08('0x40')][_0x5b08('0x41')](_0x165489)['then'](function(_0xa67564){_0xfe662e[_0x5b08('0x41')]=_0xa67564;if(_0x17e315['query'][_0x5b08('0x42')]){_0x472e24[_0x5b08('0x43')]=[{'all':!![]}];}return db['SquareDetailsReport'][_0x5b08('0x44')](_0x472e24);})[_0x5b08('0x27')](function(_0x5041b5){_0xfe662e[_0x5b08('0x45')]=_0x5041b5;return _0xfe662e;})[_0x5b08('0x27')](respondWithFilteredResult(_0xaa98c6,_0x472e24))[_0x5b08('0x46')](handleError(_0xaa98c6,null));};exports[_0x5b08('0x47')]=function(_0x50582,_0x414c07){var _0x54b4cf={'raw':!![],'where':{'id':_0x50582['params']['id']}},_0x51e837={};_0x51e837[_0x5b08('0x2f')]=_[_0x5b08('0x30')](db[_0x5b08('0x40')][_0x5b08('0x48')]);_0x51e837[_0x5b08('0x35')]=_[_0x5b08('0x30')](_0x50582[_0x5b08('0x35')]);_0x51e837['filters']=_[_0x5b08('0x32')](_0x51e837[_0x5b08('0x2f')],_0x51e837[_0x5b08('0x35')]);_0x54b4cf[_0x5b08('0x33')]=_['intersection'](_0x51e837[_0x5b08('0x2f')],qs['fields'](_0x50582[_0x5b08('0x35')][_0x5b08('0x34')]));_0x54b4cf[_0x5b08('0x33')]=_0x54b4cf[_0x5b08('0x33')]['length']?_0x54b4cf[_0x5b08('0x33')]:_0x51e837['model'];if(_0x50582[_0x5b08('0x35')][_0x5b08('0x42')]){_0x54b4cf[_0x5b08('0x43')]=[{'all':!![]}];}_0x54b4cf=_[_0x5b08('0x3b')]({},_0x54b4cf,_0x50582[_0x5b08('0x3f')]);return db['SquareDetailsReport']['find'](_0x54b4cf)[_0x5b08('0x27')](handleEntityNotFound(_0x414c07,null))['then'](respondWithResult(_0x414c07,null))[_0x5b08('0x46')](handleError(_0x414c07,null));};exports[_0x5b08('0x49')]=function(_0x414533,_0xbf3997){return db['SquareDetailsReport'][_0x5b08('0x49')](_0x414533[_0x5b08('0x4a')],{})[_0x5b08('0x27')](respondWithResult(_0xbf3997,0xc9))['catch'](handleError(_0xbf3997,null));};exports[_0x5b08('0x26')]=function(_0x43f87e,_0x12f4e1){if(_0x43f87e[_0x5b08('0x4a')]['id']){delete _0x43f87e['body']['id'];}return db[_0x5b08('0x40')]['find']({'where':{'id':_0x43f87e[_0x5b08('0x4b')]['id']}})[_0x5b08('0x27')](handleEntityNotFound(_0x12f4e1,null))[_0x5b08('0x27')](saveUpdates(_0x43f87e[_0x5b08('0x4a')],null))[_0x5b08('0x27')](respondWithResult(_0x12f4e1,null))[_0x5b08('0x46')](handleError(_0x12f4e1,null));};exports[_0x5b08('0x28')]=function(_0x14dc9b,_0x3d3479){return db['SquareDetailsReport']['find']({'where':{'id':_0x14dc9b[_0x5b08('0x4b')]['id']}})['then'](handleEntityNotFound(_0x3d3479,null))['then'](removeEntity(_0x3d3479,null))['catch'](handleError(_0x3d3479,null));};exports['describe']=function(_0x46ac68,_0x494488){return db['SquareDetailsReport'][_0x5b08('0x4c')]()[_0x5b08('0x27')](respondWithResult(_0x494488,null))[_0x5b08('0x46')](handleError(_0x494488,null));};
\ No newline at end of file
+var _0xb022=['catch','show','params','intersection','include','find','create','body','destroy','describe','zip-dir','request-promise','moment','bluebird','mustache','util','ejs','fs-extra','lodash','crypto','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','error','name','send','index','SquareDetailsReport','rawAttributes','fieldName','type','key','query','keys','filters','attributes','model','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','includeAll','rows'];(function(_0x4ff09b,_0x53f67d){var _0x3f5c2e=function(_0x124592){while(--_0x124592){_0x4ff09b['push'](_0x4ff09b['shift']());}};_0x3f5c2e(++_0x53f67d);}(_0xb022,0x1f4));var _0x2b02=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0xb022[_0x3947c9];return _0x2e7871;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2b02('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2b02('0x1'));var moment=require(_0x2b02('0x2'));var BPromise=require(_0x2b02('0x3'));var Mustache=require(_0x2b02('0x4'));var util=require(_0x2b02('0x5'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x2b02('0x6'));var fs=require('fs');var fs_extra=require(_0x2b02('0x7'));var _=require(_0x2b02('0x8'));var squel=require('squel');var crypto=require(_0x2b02('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x2b02('0xa'));var toCsv=require(_0x2b02('0xb'));var querystring=require(_0x2b02('0xc'));var Papa=require(_0x2b02('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x2b02('0xe'));var as=require(_0x2b02('0xf'));var hardwareService=require(_0x2b02('0x10'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x2b02('0x11'));var licenseUtil=require(_0x2b02('0x12'));var db=require(_0x2b02('0x13'))['db'];function respondWithStatusCode(_0x2b28e9,_0x91fad4){_0x91fad4=_0x91fad4||0xcc;return function(_0x57b0c2){if(_0x57b0c2){return _0x2b28e9[_0x2b02('0x14')](_0x91fad4);}return _0x2b28e9[_0x2b02('0x15')](_0x91fad4)[_0x2b02('0x16')]();};}function respondWithResult(_0x52e42a,_0x10628a){_0x10628a=_0x10628a||0xc8;return function(_0x44c5f9){if(_0x44c5f9){return _0x52e42a['status'](_0x10628a)[_0x2b02('0x17')](_0x44c5f9);}};}function respondWithFilteredResult(_0x27d3c0,_0x31b5f2){return function(_0xc40208){if(_0xc40208){var _0x5a553f=typeof _0x31b5f2['offset']===_0x2b02('0x18')&&typeof _0x31b5f2[_0x2b02('0x19')]===_0x2b02('0x18');var _0x199f56=_0xc40208[_0x2b02('0x1a')];var _0xb59753=_0x5a553f?0x0:_0x31b5f2[_0x2b02('0x1b')];var _0x29adf3=_0x5a553f?_0xc40208['count']:_0x31b5f2[_0x2b02('0x1b')]+_0x31b5f2[_0x2b02('0x19')];var _0x413853;if(_0x29adf3>=_0x199f56){_0x29adf3=_0x199f56;_0x413853=0xc8;}else{_0x413853=0xce;}_0x27d3c0[_0x2b02('0x15')](_0x413853);return _0x27d3c0[_0x2b02('0x1c')](_0x2b02('0x1d'),_0xb59753+'-'+_0x29adf3+'/'+_0x199f56)[_0x2b02('0x17')](_0xc40208);}return null;};}function patchUpdates(_0x256128){return function(_0x563402){try{jsonpatch['apply'](_0x563402,_0x256128,!![]);}catch(_0x407890){return BPromise[_0x2b02('0x1e')](_0x407890);}return _0x563402[_0x2b02('0x1f')]();};}function saveUpdates(_0x2daa86,_0x1ea0cf){return function(_0x5b47d6){if(_0x5b47d6){return _0x5b47d6[_0x2b02('0x20')](_0x2daa86)[_0x2b02('0x21')](function(_0x101dd7){return _0x101dd7;});}return null;};}function removeEntity(_0x43173e,_0x1adb14){return function(_0x26f1cf){if(_0x26f1cf){return _0x26f1cf['destroy']()[_0x2b02('0x21')](function(){_0x43173e['status'](0xcc)[_0x2b02('0x16')]();});}};}function handleEntityNotFound(_0x1f6a41,_0x52c7e7){return function(_0x491203){if(!_0x491203){_0x1f6a41[_0x2b02('0x14')](0x194);}return _0x491203;};}function handleError(_0x14c49a,_0x791c60){_0x791c60=_0x791c60||0x1f4;return function(_0x445307){logger[_0x2b02('0x22')](_0x445307['stack']);if(_0x445307['name']){delete _0x445307[_0x2b02('0x23')];}_0x14c49a[_0x2b02('0x15')](_0x791c60)[_0x2b02('0x24')](_0x445307);};}exports[_0x2b02('0x25')]=function(_0x7bc9f,_0x2585dd){var _0x4fd269={},_0xb9ea05={},_0x54c2b3={'count':0x0,'rows':[]};var _0x15ebb5=_['map'](db[_0x2b02('0x26')][_0x2b02('0x27')],function(_0x17e492){return{'name':_0x17e492[_0x2b02('0x28')],'type':_0x17e492[_0x2b02('0x29')][_0x2b02('0x2a')]};});_0xb9ea05['model']=_['map'](_0x15ebb5,_0x2b02('0x23'));_0xb9ea05[_0x2b02('0x2b')]=_[_0x2b02('0x2c')](_0x7bc9f['query']);_0xb9ea05[_0x2b02('0x2d')]=_['intersection'](_0xb9ea05['model'],_0xb9ea05['query']);_0x4fd269[_0x2b02('0x2e')]=_['intersection'](_0xb9ea05[_0x2b02('0x2f')],qs[_0x2b02('0x30')](_0x7bc9f[_0x2b02('0x2b')][_0x2b02('0x30')]));_0x4fd269[_0x2b02('0x2e')]=_0x4fd269[_0x2b02('0x2e')][_0x2b02('0x31')]?_0x4fd269[_0x2b02('0x2e')]:_0xb9ea05[_0x2b02('0x2f')];if(!_0x7bc9f[_0x2b02('0x2b')][_0x2b02('0x32')](_0x2b02('0x33'))){_0x4fd269['limit']=qs['limit'](_0x7bc9f[_0x2b02('0x2b')][_0x2b02('0x19')]);_0x4fd269['offset']=qs[_0x2b02('0x1b')](_0x7bc9f[_0x2b02('0x2b')][_0x2b02('0x1b')]);}_0x4fd269['order']=qs[_0x2b02('0x34')](_0x7bc9f[_0x2b02('0x2b')][_0x2b02('0x34')]);_0x4fd269[_0x2b02('0x35')]=qs[_0x2b02('0x2d')](_['pick'](_0x7bc9f['query'],_0xb9ea05['filters']),_0x15ebb5);if(_0x7bc9f[_0x2b02('0x2b')][_0x2b02('0x36')]){_0x4fd269[_0x2b02('0x35')]=_[_0x2b02('0x37')](_0x4fd269[_0x2b02('0x35')],{'$or':_['map'](_0x15ebb5,function(_0x11b2f9){if(_0x11b2f9['type']!==_0x2b02('0x38')){var _0xb93c9e={};_0xb93c9e[_0x11b2f9['name']]={'$like':'%'+_0x7bc9f[_0x2b02('0x2b')][_0x2b02('0x36')]+'%'};return _0xb93c9e;}})});}_0x4fd269=_[_0x2b02('0x37')]({},_0x4fd269,_0x7bc9f[_0x2b02('0x39')]);var _0x35ed75={'where':_0x4fd269[_0x2b02('0x35')]};return db[_0x2b02('0x26')]['count'](_0x35ed75)[_0x2b02('0x21')](function(_0x23abad){_0x54c2b3[_0x2b02('0x1a')]=_0x23abad;if(_0x7bc9f[_0x2b02('0x2b')][_0x2b02('0x3a')]){_0x4fd269['include']=[{'all':!![]}];}return db['SquareDetailsReport']['findAll'](_0x4fd269);})[_0x2b02('0x21')](function(_0xb24d18){_0x54c2b3[_0x2b02('0x3b')]=_0xb24d18;return _0x54c2b3;})[_0x2b02('0x21')](respondWithFilteredResult(_0x2585dd,_0x4fd269))[_0x2b02('0x3c')](handleError(_0x2585dd,null));};exports[_0x2b02('0x3d')]=function(_0x20c93a,_0x701b0e){var _0x339457={'raw':!![],'where':{'id':_0x20c93a[_0x2b02('0x3e')]['id']}},_0x46f648={};_0x46f648['model']=_[_0x2b02('0x2c')](db[_0x2b02('0x26')][_0x2b02('0x27')]);_0x46f648['query']=_[_0x2b02('0x2c')](_0x20c93a[_0x2b02('0x2b')]);_0x46f648[_0x2b02('0x2d')]=_[_0x2b02('0x3f')](_0x46f648[_0x2b02('0x2f')],_0x46f648[_0x2b02('0x2b')]);_0x339457['attributes']=_[_0x2b02('0x3f')](_0x46f648[_0x2b02('0x2f')],qs[_0x2b02('0x30')](_0x20c93a[_0x2b02('0x2b')][_0x2b02('0x30')]));_0x339457[_0x2b02('0x2e')]=_0x339457[_0x2b02('0x2e')][_0x2b02('0x31')]?_0x339457[_0x2b02('0x2e')]:_0x46f648[_0x2b02('0x2f')];if(_0x20c93a['query'][_0x2b02('0x3a')]){_0x339457[_0x2b02('0x40')]=[{'all':!![]}];}_0x339457=_[_0x2b02('0x37')]({},_0x339457,_0x20c93a['options']);return db[_0x2b02('0x26')][_0x2b02('0x41')](_0x339457)[_0x2b02('0x21')](handleEntityNotFound(_0x701b0e,null))[_0x2b02('0x21')](respondWithResult(_0x701b0e,null))[_0x2b02('0x3c')](handleError(_0x701b0e,null));};exports[_0x2b02('0x42')]=function(_0x12263e,_0x317fb0){return db[_0x2b02('0x26')][_0x2b02('0x42')](_0x12263e[_0x2b02('0x43')],{})[_0x2b02('0x21')](respondWithResult(_0x317fb0,0xc9))[_0x2b02('0x3c')](handleError(_0x317fb0,null));};exports[_0x2b02('0x20')]=function(_0x3bb9aa,_0x5d513f){if(_0x3bb9aa[_0x2b02('0x43')]['id']){delete _0x3bb9aa[_0x2b02('0x43')]['id'];}return db['SquareDetailsReport'][_0x2b02('0x41')]({'where':{'id':_0x3bb9aa['params']['id']}})[_0x2b02('0x21')](handleEntityNotFound(_0x5d513f,null))['then'](saveUpdates(_0x3bb9aa[_0x2b02('0x43')],null))['then'](respondWithResult(_0x5d513f,null))[_0x2b02('0x3c')](handleError(_0x5d513f,null));};exports[_0x2b02('0x44')]=function(_0x4f91cd,_0x51e26d){return db[_0x2b02('0x26')][_0x2b02('0x41')]({'where':{'id':_0x4f91cd[_0x2b02('0x3e')]['id']}})[_0x2b02('0x21')](handleEntityNotFound(_0x51e26d,null))[_0x2b02('0x21')](removeEntity(_0x51e26d,null))[_0x2b02('0x3c')](handleError(_0x51e26d,null));};exports[_0x2b02('0x45')]=function(_0x5520db,_0x6eff4c){return db[_0x2b02('0x26')][_0x2b02('0x45')]()[_0x2b02('0x21')](respondWithResult(_0x6eff4c,null))[_0x2b02('0x3c')](handleError(_0x6eff4c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6735=['report_square_details','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','define','SquareDetailsReport'];(function(_0x3f93bf,_0x357d58){var _0x14cdce=function(_0x392699){while(--_0x392699){_0x3f93bf['push'](_0x3f93bf['shift']());}};_0x14cdce(++_0x357d58);}(_0x6735,0x9d));var _0x5673=function(_0x2e686c,_0x27af97){_0x2e686c=_0x2e686c-0x0;var _0xa8a692=_0x6735[_0x2e686c];return _0xa8a692;};'use strict';var _=require(_0x5673('0x0'));var util=require(_0x5673('0x1'));var logger=require(_0x5673('0x2'))(_0x5673('0x3'));var moment=require(_0x5673('0x4'));var BPromise=require(_0x5673('0x5'));var rp=require(_0x5673('0x6'));var fs=require('fs');var path=require(_0x5673('0x7'));var rimraf=require(_0x5673('0x8'));var config=require(_0x5673('0x9'));var attributes=require('./squareReportDetail.attributes');module['exports']=function(_0x187956,_0x5346e3){return _0x187956[_0x5673('0xa')](_0x5673('0xb'),attributes,{'tableName':_0x5673('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x848f=['moment','bluebird','request-promise','rimraf','exports','define','SquareDetailsReport','report_square_details','util'];(function(_0x20aadb,_0x5a607a){var _0x520018=function(_0x1d258a){while(--_0x1d258a){_0x20aadb['push'](_0x20aadb['shift']());}};_0x520018(++_0x5a607a);}(_0x848f,0xc5));var _0xf848=function(_0x25be56,_0x27f880){_0x25be56=_0x25be56-0x0;var _0x136ffb=_0x848f[_0x25be56];return _0x136ffb;};'use strict';var _=require('lodash');var util=require(_0xf848('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0xf848('0x1'));var BPromise=require(_0xf848('0x2'));var rp=require(_0xf848('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xf848('0x4'));var config=require('../../config/environment');var attributes=require('./squareReportDetail.attributes');module[_0xf848('0x5')]=function(_0x522886,_0x41ea1d){return _0x522886[_0xf848('0x6')](_0xf848('0x7'),attributes,{'tableName':_0xf848('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c3c=['SquareDetailsReport','create','body','options','raw','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','SquareDetailsReport,\x20%s,\x20%s','request\x20sent','SquareDetailsReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','CreateSquareDetailsReport'];(function(_0xb165eb,_0xfaea30){var _0x25771a=function(_0x3cd0e2){while(--_0x3cd0e2){_0xb165eb['push'](_0xb165eb['shift']());}};_0x25771a(++_0xfaea30);}(_0x5c3c,0x132));var _0xc5c3=function(_0xf71120,_0x25b7f9){_0xf71120=_0xf71120-0x0;var _0xbe2fd3=_0x5c3c[_0xf71120];return _0xbe2fd3;};'use strict';var _=require(_0xc5c3('0x0'));var util=require(_0xc5c3('0x1'));var moment=require(_0xc5c3('0x2'));var BPromise=require(_0xc5c3('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc5c3('0x4'));var db=require(_0xc5c3('0x5'))['db'];var utils=require(_0xc5c3('0x6'));var logger=require(_0xc5c3('0x7'))(_0xc5c3('0x8'));var config=require(_0xc5c3('0x9'));var jayson=require(_0xc5c3('0xa'));var client=jayson[_0xc5c3('0xb')][_0xc5c3('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x5a392b,_0x4b8404,_0x591f7d){return new BPromise(function(_0x723c31,_0x522be1){return client['request'](_0x5a392b,_0x591f7d)[_0xc5c3('0xd')](function(_0x46e2c1){logger['info'](_0xc5c3('0xe'),_0x4b8404,_0xc5c3('0xf'));logger['debug'](_0xc5c3('0x10'),_0x4b8404,_0xc5c3('0xf'),JSON[_0xc5c3('0x11')](_0x46e2c1));if(_0x46e2c1['error']){if(_0x46e2c1[_0xc5c3('0x12')][_0xc5c3('0x13')]===0x1f4){logger['error'](_0xc5c3('0xe'),_0x4b8404,_0x46e2c1[_0xc5c3('0x12')][_0xc5c3('0x14')]);return _0x522be1(_0x46e2c1['error'][_0xc5c3('0x14')]);}logger[_0xc5c3('0x12')](_0xc5c3('0xe'),_0x4b8404,_0x46e2c1[_0xc5c3('0x12')][_0xc5c3('0x14')]);return _0x723c31(_0x46e2c1['error']['message']);}else{logger[_0xc5c3('0x15')](_0xc5c3('0xe'),_0x4b8404,_0xc5c3('0xf'));_0x723c31(_0x46e2c1[_0xc5c3('0x16')]['message']);}})['catch'](function(_0x467ba9){logger['error'](_0xc5c3('0xe'),_0x4b8404,_0x467ba9);_0x522be1(_0x467ba9);});});}exports[_0xc5c3('0x17')]=function(_0x2ff158){var _0x13c867=this;return new Promise(function(_0x28bae6,_0x5e11d5){return db[_0xc5c3('0x18')][_0xc5c3('0x19')](_0x2ff158[_0xc5c3('0x1a')],{'raw':_0x2ff158[_0xc5c3('0x1b')]?_0x2ff158['options'][_0xc5c3('0x1c')]===undefined?!![]:![]:!![]})[_0xc5c3('0xd')](function(_0x3cc612){logger[_0xc5c3('0x15')](_0xc5c3('0x17'),_0x2ff158);logger['debug'](_0xc5c3('0x17'),_0x2ff158,JSON[_0xc5c3('0x11')](_0x3cc612));_0x28bae6(_0x3cc612);})[_0xc5c3('0x1d')](function(_0x2de266){logger[_0xc5c3('0x12')](_0xc5c3('0x17'),_0x2de266[_0xc5c3('0x14')],_0x2ff158);_0x5e11d5(_0x13c867['error'](0x1f4,_0x2de266['message']));});});};
\ No newline at end of file
+var _0xde9f=['../../config/environment','jayson/promise','client','request','then','info','SquareDetailsReport,\x20%s,\x20%s','request\x20sent','debug','SquareDetailsReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','SquareDetailsReport','options','raw','CreateSquareDetailsReport','catch','lodash','bluebird','randomstring','../../mysqldb','../../config/utils','rpc'];(function(_0x3f8ba3,_0x4fe833){var _0x1c2e73=function(_0x2aeacf){while(--_0x2aeacf){_0x3f8ba3['push'](_0x3f8ba3['shift']());}};_0x1c2e73(++_0x4fe833);}(_0xde9f,0x118));var _0xfde9=function(_0x51b661,_0x566ef8){_0x51b661=_0x51b661-0x0;var _0x5d1971=_0xde9f[_0x51b661];return _0x5d1971;};'use strict';var _=require(_0xfde9('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xfde9('0x1'));var rs=require(_0xfde9('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfde9('0x3'))['db'];var utils=require(_0xfde9('0x4'));var logger=require('../../config/logger')(_0xfde9('0x5'));var config=require(_0xfde9('0x6'));var jayson=require(_0xfde9('0x7'));var client=jayson[_0xfde9('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4c3e01,_0x179ee0,_0x18a202){return new BPromise(function(_0x5569c2,_0x19a337){return client[_0xfde9('0x9')](_0x4c3e01,_0x18a202)[_0xfde9('0xa')](function(_0x3b775d){logger[_0xfde9('0xb')](_0xfde9('0xc'),_0x179ee0,_0xfde9('0xd'));logger[_0xfde9('0xe')](_0xfde9('0xf'),_0x179ee0,_0xfde9('0xd'),JSON[_0xfde9('0x10')](_0x3b775d));if(_0x3b775d[_0xfde9('0x11')]){if(_0x3b775d[_0xfde9('0x11')][_0xfde9('0x12')]===0x1f4){logger['error']('SquareDetailsReport,\x20%s,\x20%s',_0x179ee0,_0x3b775d[_0xfde9('0x11')][_0xfde9('0x13')]);return _0x19a337(_0x3b775d[_0xfde9('0x11')][_0xfde9('0x13')]);}logger['error']('SquareDetailsReport,\x20%s,\x20%s',_0x179ee0,_0x3b775d[_0xfde9('0x11')][_0xfde9('0x13')]);return _0x5569c2(_0x3b775d[_0xfde9('0x11')][_0xfde9('0x13')]);}else{logger[_0xfde9('0xb')]('SquareDetailsReport,\x20%s,\x20%s',_0x179ee0,_0xfde9('0xd'));_0x5569c2(_0x3b775d[_0xfde9('0x14')][_0xfde9('0x13')]);}})['catch'](function(_0x31b1c7){logger[_0xfde9('0x11')](_0xfde9('0xc'),_0x179ee0,_0x31b1c7);_0x19a337(_0x31b1c7);});});}exports['CreateSquareDetailsReport']=function(_0x4c9f24){var _0x5eb89e=this;return new Promise(function(_0x544f19,_0x166f1c){return db[_0xfde9('0x15')]['create'](_0x4c9f24['body'],{'raw':_0x4c9f24[_0xfde9('0x16')]?_0x4c9f24[_0xfde9('0x16')][_0xfde9('0x17')]===undefined?!![]:![]:!![]})[_0xfde9('0xa')](function(_0x162b07){logger[_0xfde9('0xb')](_0xfde9('0x18'),_0x4c9f24);logger[_0xfde9('0xe')](_0xfde9('0x18'),_0x4c9f24,JSON[_0xfde9('0x10')](_0x162b07));_0x544f19(_0x162b07);})[_0xfde9('0x19')](function(_0x28d189){logger['error'](_0xfde9('0x18'),_0x28d189['message'],_0x4c9f24);_0x166f1c(_0x5eb89e[_0xfde9('0x11')](0x1f4,_0x28d189[_0xfde9('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7779=['killProcess','exports','express','../../components/auth/service','./system.controller','get','isAuthenticated','index'];(function(_0x28a364,_0x489e7b){var _0x5110b6=function(_0x1589d4){while(--_0x1589d4){_0x28a364['push'](_0x28a364['shift']());}};_0x5110b6(++_0x489e7b);}(_0x7779,0x10a));var _0x9777=function(_0x489c95,_0x53159c){_0x489c95=_0x489c95-0x0;var _0x10e7a7=_0x7779[_0x489c95];return _0x10e7a7;};'use strict';var express=require(_0x9777('0x0'));var router=express['Router']();var auth=require(_0x9777('0x1'));var controller=require(_0x9777('0x2'));router[_0x9777('0x3')]('/',auth[_0x9777('0x4')](),controller[_0x9777('0x5')]);router[_0x9777('0x3')]('/process/:pid/kill',auth[_0x9777('0x4')](),controller[_0x9777('0x6')]);module[_0x9777('0x7')]=router;
\ No newline at end of file
+var _0x7cfe=['/process/:pid/kill','isAuthenticated','exports','express','Router','../../components/auth/service','get','index'];(function(_0x55453b,_0x6ffc60){var _0x3f22a8=function(_0x2118ba){while(--_0x2118ba){_0x55453b['push'](_0x55453b['shift']());}};_0x3f22a8(++_0x6ffc60);}(_0x7cfe,0x123));var _0xe7cf=function(_0x39d8f5,_0x1111d5){_0x39d8f5=_0x39d8f5-0x0;var _0x550410=_0x7cfe[_0x39d8f5];return _0x550410;};'use strict';var express=require(_0xe7cf('0x0'));var router=express[_0xe7cf('0x1')]();var auth=require(_0xe7cf('0x2'));var controller=require('./system.controller');router[_0xe7cf('0x3')]('/',auth['isAuthenticated'](),controller[_0xe7cf('0x4')]);router[_0xe7cf('0x3')](_0xe7cf('0x5'),auth[_0xe7cf('0x6')](),controller['killProcess']);module[_0xe7cf('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9396=['index','then','catch','status','json','components/import/cm','ps\x20-p\x20%s\x20-ww\x20-o\x20args','params','pid','split','indexOf','format','Process\x20with\x20pid\x20%s\x20not\x20found!','SIGINT','Process\x20with\x20pid\x20%s\x20killed\x20correctly','killProcess','api','bluebird','lodash','error','<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s','inspect','name','send'];(function(_0x491faa,_0x4f2907){var _0x414440=function(_0x310864){while(--_0x310864){_0x491faa['push'](_0x491faa['shift']());}};_0x414440(++_0x4f2907);}(_0x9396,0x130));var _0x6939=function(_0x2e5636,_0x2b9540){_0x2e5636=_0x2e5636-0x0;var _0x4d7371=_0x9396[_0x2e5636];return _0x4d7371;};'use strict';var info=require('systeminformation');var exec=require('child_process')['exec'];var logger=require('../../config/logger')(_0x6939('0x0'));var util=require('util');var BPromise=require(_0x6939('0x1'));var _=require(_0x6939('0x2'));function handleError(_0x4a2ca9,_0xd1a9b6,_0x39c7cc){_0xd1a9b6=_0xd1a9b6||0x1f4;return function(_0x20d7c3){logger[_0x6939('0x3')](_0x6939('0x4'),_0x39c7cc,_0xd1a9b6,util[_0x6939('0x5')](_0x20d7c3,{'showHidden':![],'depth':null}));delete _0x20d7c3[_0x6939('0x6')];_0x4a2ca9['status'](_0xd1a9b6)[_0x6939('0x7')](_0x20d7c3);};}exports[_0x6939('0x8')]=function(_0x3778a0,_0x2cb02d){return info['getAllData']()[_0x6939('0x9')](function(_0x2a36e2){return _0x2cb02d['status'](0xc8)['json'](_0x2a36e2);})[_0x6939('0xa')](function(_0x51575c){return _0x2cb02d[_0x6939('0xb')](0x1f4)[_0x6939('0xc')](_0x51575c);});};exports['killProcess']=function(_0x1f2532,_0x4d1f7e){var _0x37e4b1=[_0x6939('0xd')];return new BPromise(function(_0x1f6a7e,_0x50badc){return exec(util['format'](_0x6939('0xe'),_0x1f2532[_0x6939('0xf')][_0x6939('0x10')]),function(_0x300be8,_0x5c751e,_0x391e32){if(_0x300be8){return _0x50badc(_0x300be8);}return _0x1f6a7e(_0x5c751e);});})[_0x6939('0x9')](function(_0x2d8717){var _0x57dbc6=![];var _0x4b2222=_0x2d8717[_0x6939('0x11')](/\n/);for(var _0x1b981a=0x0,_0x12fe62=_0x37e4b1['length'];_0x1b981a<_0x12fe62,_0x57dbc6===![];_0x1b981a+=0x1){if(_0x2d8717[_0x6939('0x12')](_0x37e4b1[_0x1b981a])>=0x0){_0x57dbc6=!![];}}if(!_0x57dbc6){throw new Error(util[_0x6939('0x13')](_0x6939('0x14'),_0x1f2532[_0x6939('0xf')]['pid']));}process['kill'](_0x1f2532[_0x6939('0xf')][_0x6939('0x10')],_0x6939('0x15'));return _0x4d1f7e[_0x6939('0xb')](0xc8)['json']({'message':util['format'](_0x6939('0x16'),_0x1f2532[_0x6939('0xf')]['pid'])});})[_0x6939('0xa')](handleError(_0x4d1f7e,null,_0x6939('0x17')));};
\ No newline at end of file
+var _0xcd3b=['child_process','exec','../../config/logger','util','bluebird','lodash','error','<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s','inspect','name','status','index','getAllData','then','json','catch','format','params','pid','split','length','kill','SIGINT','Process\x20with\x20pid\x20%s\x20killed\x20correctly','systeminformation'];(function(_0x2c1d17,_0x58fa72){var _0x50107f=function(_0x3a3982){while(--_0x3a3982){_0x2c1d17['push'](_0x2c1d17['shift']());}};_0x50107f(++_0x58fa72);}(_0xcd3b,0x1da));var _0xbcd3=function(_0x1cc206,_0x297eec){_0x1cc206=_0x1cc206-0x0;var _0x333819=_0xcd3b[_0x1cc206];return _0x333819;};'use strict';var info=require(_0xbcd3('0x0'));var exec=require(_0xbcd3('0x1'))[_0xbcd3('0x2')];var logger=require(_0xbcd3('0x3'))('api');var util=require(_0xbcd3('0x4'));var BPromise=require(_0xbcd3('0x5'));var _=require(_0xbcd3('0x6'));function handleError(_0x1c7a97,_0x579cfe,_0x2586fa){_0x579cfe=_0x579cfe||0x1f4;return function(_0x5f4278){logger[_0xbcd3('0x7')](_0xbcd3('0x8'),_0x2586fa,_0x579cfe,util[_0xbcd3('0x9')](_0x5f4278,{'showHidden':![],'depth':null}));delete _0x5f4278[_0xbcd3('0xa')];_0x1c7a97[_0xbcd3('0xb')](_0x579cfe)['send'](_0x5f4278);};}exports[_0xbcd3('0xc')]=function(_0x21d175,_0xd7f106){return info[_0xbcd3('0xd')]()[_0xbcd3('0xe')](function(_0x8f5d9f){return _0xd7f106[_0xbcd3('0xb')](0xc8)[_0xbcd3('0xf')](_0x8f5d9f);})[_0xbcd3('0x10')](function(_0x41bcc8){return _0xd7f106[_0xbcd3('0xb')](0x1f4)[_0xbcd3('0xf')](_0x41bcc8);});};exports['killProcess']=function(_0x38f7b3,_0x2a8efd){var _0x47b146=['components/import/cm'];return new BPromise(function(_0x16d592,_0x3b2906){return exec(util[_0xbcd3('0x11')]('ps\x20-p\x20%s\x20-ww\x20-o\x20args',_0x38f7b3[_0xbcd3('0x12')][_0xbcd3('0x13')]),function(_0xb09780,_0x1d0a25,_0x247d35){if(_0xb09780){return _0x3b2906(_0xb09780);}return _0x16d592(_0x1d0a25);});})[_0xbcd3('0xe')](function(_0x1e0f7c){var _0x3f08e2=![];var _0x5e595b=_0x1e0f7c[_0xbcd3('0x14')](/\n/);for(var _0x3f2477=0x0,_0x61a8ee=_0x47b146[_0xbcd3('0x15')];_0x3f2477<_0x61a8ee,_0x3f08e2===![];_0x3f2477+=0x1){if(_0x1e0f7c['indexOf'](_0x47b146[_0x3f2477])>=0x0){_0x3f08e2=!![];}}if(!_0x3f08e2){throw new Error(util['format']('Process\x20with\x20pid\x20%s\x20not\x20found!',_0x38f7b3[_0xbcd3('0x12')][_0xbcd3('0x13')]));}process[_0xbcd3('0x16')](_0x38f7b3[_0xbcd3('0x12')]['pid'],_0xbcd3('0x17'));return _0x2a8efd[_0xbcd3('0xb')](0xc8)[_0xbcd3('0xf')]({'message':util[_0xbcd3('0x11')](_0xbcd3('0x18'),_0x38f7b3[_0xbcd3('0x12')][_0xbcd3('0x13')])});})[_0xbcd3('0x10')](handleError(_0x2a8efd,null,'killProcess'));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x211e=['express','../../components/auth/service','../../components/interaction/service','../../config/environment','./tag.controller','isAuthenticated','index','get','/:id','show','post','create','put','update','delete','multer','util','path','connect-timeout'];(function(_0x210acd,_0x5617de){var _0x9ae98a=function(_0x751aad){while(--_0x751aad){_0x210acd['push'](_0x210acd['shift']());}};_0x9ae98a(++_0x5617de);}(_0x211e,0x1b1));var _0xe211=function(_0x20a459,_0xdde012){_0x20a459=_0x20a459-0x0;var _0x433126=_0x211e[_0x20a459];return _0x433126;};'use strict';var multer=require(_0xe211('0x0'));var util=require(_0xe211('0x1'));var path=require(_0xe211('0x2'));var timeout=require(_0xe211('0x3'));var express=require(_0xe211('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xe211('0x5'));var interaction=require(_0xe211('0x6'));var config=require(_0xe211('0x7'));var controller=require(_0xe211('0x8'));router['get']('/',auth[_0xe211('0x9')](),controller[_0xe211('0xa')]);router[_0xe211('0xb')](_0xe211('0xc'),auth['isAuthenticated'](),controller[_0xe211('0xd')]);router[_0xe211('0xe')]('/',auth[_0xe211('0x9')](),controller[_0xe211('0xf')]);router[_0xe211('0x10')](_0xe211('0xc'),auth[_0xe211('0x9')](),controller[_0xe211('0x11')]);router[_0xe211('0x12')](_0xe211('0xc'),auth[_0xe211('0x9')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x1c76=['isAuthenticated','index','/:id','show','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get'];(function(_0x4f5a83,_0x16b3a9){var _0x39640b=function(_0x30af70){while(--_0x30af70){_0x4f5a83['push'](_0x4f5a83['shift']());}};_0x39640b(++_0x16b3a9);}(_0x1c76,0x107));var _0x61c7=function(_0x201a73,_0x443bf4){_0x201a73=_0x201a73-0x0;var _0x452417=_0x1c76[_0x201a73];return _0x452417;};'use strict';var multer=require(_0x61c7('0x0'));var util=require(_0x61c7('0x1'));var path=require(_0x61c7('0x2'));var timeout=require(_0x61c7('0x3'));var express=require(_0x61c7('0x4'));var router=express[_0x61c7('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x61c7('0x6'));var interaction=require(_0x61c7('0x7'));var config=require(_0x61c7('0x8'));var controller=require('./tag.controller');router[_0x61c7('0x9')]('/',auth[_0x61c7('0xa')](),controller[_0x61c7('0xb')]);router[_0x61c7('0x9')](_0x61c7('0xc'),auth[_0x61c7('0xa')](),controller[_0x61c7('0xd')]);router[_0x61c7('0xe')]('/',auth[_0x61c7('0xa')](),controller[_0x61c7('0xf')]);router[_0x61c7('0x10')](_0x61c7('0xc'),auth['isAuthenticated'](),controller[_0x61c7('0x11')]);router[_0x61c7('0x12')](_0x61c7('0xc'),auth[_0x61c7('0xa')](),controller[_0x61c7('0x13')]);module[_0x61c7('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb79a=['name','STRING','#0091EA','sequelize','exports'];(function(_0x90d49f,_0x35b3c3){var _0x5779df=function(_0x6b86bb){while(--_0x6b86bb){_0x90d49f['push'](_0x90d49f['shift']());}};_0x5779df(++_0x35b3c3);}(_0xb79a,0x18e));var _0xab79=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xb79a[_0x2641f9];return _0x585741;};'use strict';var Sequelize=require(_0xab79('0x0'));module[_0xab79('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xab79('0x2'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize[_0xab79('0x3')],'defaultValue':_0xab79('0x4')},'description':{'type':Sequelize[_0xab79('0x3')]}};
\ No newline at end of file
+var _0xe605=['#0091EA','sequelize','exports','name','STRING'];(function(_0xf273f9,_0x486198){var _0xb4abcc=function(_0x2f9418){while(--_0x2f9418){_0xf273f9['push'](_0xf273f9['shift']());}};_0xb4abcc(++_0x486198);}(_0xe605,0x92));var _0x5e60=function(_0x104a5e,_0x44981f){_0x104a5e=_0x104a5e-0x0;var _0x2e3693=_0xe605[_0x104a5e];return _0x2e3693;};'use strict';var Sequelize=require(_0x5e60('0x0'));module[_0x5e60('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x5e60('0x2'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize[_0x5e60('0x3')],'defaultValue':_0x5e60('0x4')},'description':{'type':Sequelize[_0x5e60('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f62=['name','send','index','Tag','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','map','filter','merge','options','count','includeAll','catch','show','params','rawAttributes','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Tags','UserProfileSection','userProfileId','autoAssociation','rimraf','fast-json-patch','request-promise','moment','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','update','destroy','then','get','UserProfileResource','error','stack'];(function(_0x4c4713,_0x3ae918){var _0xe3c4a1=function(_0x63100e){while(--_0x63100e){_0x4c4713['push'](_0x4c4713['shift']());}};_0xe3c4a1(++_0x3ae918);}(_0x9f62,0x154));var _0x29f6=function(_0x2efd08,_0x555164){_0x2efd08=_0x2efd08-0x0;var _0x1d8045=_0x9f62[_0x2efd08];return _0x1d8045;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x29f6('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x29f6('0x1'));var rp=require(_0x29f6('0x2'));var moment=require(_0x29f6('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x29f6('0x4'));var path=require(_0x29f6('0x5'));var sox=require(_0x29f6('0x6'));var csv=require(_0x29f6('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x29f6('0x8'));var _=require(_0x29f6('0x9'));var squel=require(_0x29f6('0xa'));var crypto=require(_0x29f6('0xb'));var jsforce=require(_0x29f6('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x29f6('0xd'));var authService=require(_0x29f6('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x29f6('0xf'));var logger=require(_0x29f6('0x10'))('api');var utils=require(_0x29f6('0x11'));var config=require(_0x29f6('0x12'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x559585,_0x57b2d2){_0x57b2d2=_0x57b2d2||0xcc;return function(_0x2ae0e4){if(_0x2ae0e4){return _0x559585[_0x29f6('0x13')](_0x57b2d2);}return _0x559585[_0x29f6('0x14')](_0x57b2d2)[_0x29f6('0x15')]();};}function respondWithResult(_0x17de6e,_0x156c96){_0x156c96=_0x156c96||0xc8;return function(_0x35d2e2){if(_0x35d2e2){return _0x17de6e[_0x29f6('0x14')](_0x156c96)[_0x29f6('0x16')](_0x35d2e2);}};}function respondWithFilteredResult(_0x19331f,_0x28d314){return function(_0x370484){if(_0x370484){var _0x1dde97=typeof _0x28d314[_0x29f6('0x17')]===_0x29f6('0x18')&&typeof _0x28d314[_0x29f6('0x19')]===_0x29f6('0x18');var _0x5bfda7=_0x370484['count'];var _0x2e66d3=_0x1dde97?0x0:_0x28d314[_0x29f6('0x17')];var _0xb31436=_0x1dde97?_0x370484['count']:_0x28d314[_0x29f6('0x17')]+_0x28d314[_0x29f6('0x19')];var _0x49252f;if(_0xb31436>=_0x5bfda7){_0xb31436=_0x5bfda7;_0x49252f=0xc8;}else{_0x49252f=0xce;}_0x19331f[_0x29f6('0x14')](_0x49252f);return _0x19331f[_0x29f6('0x1a')](_0x29f6('0x1b'),_0x2e66d3+'-'+_0xb31436+'/'+_0x5bfda7)[_0x29f6('0x16')](_0x370484);}return null;};}function patchUpdates(_0xb6e7a9){return function(_0x2bfb3d){try{jsonpatch['apply'](_0x2bfb3d,_0xb6e7a9,!![]);}catch(_0xfb8fd2){return BPromise['reject'](_0xfb8fd2);}return _0x2bfb3d['save']();};}function saveUpdates(_0x470019,_0x1fa159){return function(_0x39c6b3){if(_0x39c6b3){return _0x39c6b3[_0x29f6('0x1c')](_0x470019)['then'](function(_0x2c672e){return _0x2c672e;});}return null;};}function removeEntity(_0x49f67d,_0xd4179c){return function(_0xcce041){if(_0xcce041){return _0xcce041[_0x29f6('0x1d')]()[_0x29f6('0x1e')](function(){var _0x4fc725=_0xcce041[_0x29f6('0x1f')]({'plain':!![]});var _0x4d494f='Tags';return db[_0x29f6('0x20')][_0x29f6('0x1d')]({'where':{'type':_0x4d494f,'resourceId':_0x4fc725['id']}})[_0x29f6('0x1e')](function(){return _0xcce041;});})[_0x29f6('0x1e')](function(){_0x49f67d[_0x29f6('0x14')](0xcc)[_0x29f6('0x15')]();});}};}function handleEntityNotFound(_0x23c630,_0x50cdd2){return function(_0x2183b7){if(!_0x2183b7){_0x23c630[_0x29f6('0x13')](0x194);}return _0x2183b7;};}function handleError(_0x1ab8d8,_0x3dace7){_0x3dace7=_0x3dace7||0x1f4;return function(_0xda0a63){logger[_0x29f6('0x21')](_0xda0a63[_0x29f6('0x22')]);if(_0xda0a63[_0x29f6('0x23')]){delete _0xda0a63[_0x29f6('0x23')];}_0x1ab8d8[_0x29f6('0x14')](_0x3dace7)[_0x29f6('0x24')](_0xda0a63);};}exports[_0x29f6('0x25')]=function(_0x40c830,_0x304c28){var _0x375564={},_0x218931={},_0x3a7249={'count':0x0,'rows':[]};var _0x5492c2=_['map'](db[_0x29f6('0x26')]['rawAttributes'],function(_0x341071){return{'name':_0x341071[_0x29f6('0x27')],'type':_0x341071[_0x29f6('0x28')][_0x29f6('0x29')]};});_0x218931['model']=_['map'](_0x5492c2,_0x29f6('0x23'));_0x218931[_0x29f6('0x2a')]=_[_0x29f6('0x2b')](_0x40c830[_0x29f6('0x2a')]);_0x218931[_0x29f6('0x2c')]=_[_0x29f6('0x2d')](_0x218931[_0x29f6('0x2e')],_0x218931[_0x29f6('0x2a')]);_0x375564[_0x29f6('0x2f')]=_[_0x29f6('0x2d')](_0x218931[_0x29f6('0x2e')],qs[_0x29f6('0x30')](_0x40c830[_0x29f6('0x2a')][_0x29f6('0x30')]));_0x375564['attributes']=_0x375564['attributes'][_0x29f6('0x31')]?_0x375564[_0x29f6('0x2f')]:_0x218931[_0x29f6('0x2e')];if(!_0x40c830['query'][_0x29f6('0x32')](_0x29f6('0x33'))){_0x375564[_0x29f6('0x19')]=qs[_0x29f6('0x19')](_0x40c830[_0x29f6('0x2a')]['limit']);_0x375564[_0x29f6('0x17')]=qs[_0x29f6('0x17')](_0x40c830[_0x29f6('0x2a')][_0x29f6('0x17')]);}_0x375564['order']=qs[_0x29f6('0x34')](_0x40c830[_0x29f6('0x2a')][_0x29f6('0x34')]);_0x375564[_0x29f6('0x35')]=qs['filters'](_['pick'](_0x40c830[_0x29f6('0x2a')],_0x218931['filters']),_0x5492c2);if(_0x40c830[_0x29f6('0x2a')]['filter']){_0x375564[_0x29f6('0x35')]=_['merge'](_0x375564[_0x29f6('0x35')],{'$or':_[_0x29f6('0x36')](_0x5492c2,function(_0x5448c4){if(_0x5448c4[_0x29f6('0x28')]!=='VIRTUAL'){var _0x3f3475={};_0x3f3475[_0x5448c4[_0x29f6('0x23')]]={'$like':'%'+_0x40c830['query'][_0x29f6('0x37')]+'%'};return _0x3f3475;}})});}_0x375564=_[_0x29f6('0x38')]({},_0x375564,_0x40c830[_0x29f6('0x39')]);var _0x1e9d5a={'where':_0x375564['where']};return db[_0x29f6('0x26')][_0x29f6('0x3a')](_0x1e9d5a)[_0x29f6('0x1e')](function(_0x2322eb){_0x3a7249[_0x29f6('0x3a')]=_0x2322eb;if(_0x40c830['query'][_0x29f6('0x3b')]){_0x375564['include']=[{'all':!![]}];}return db[_0x29f6('0x26')]['findAll'](_0x375564);})[_0x29f6('0x1e')](function(_0x3a8a12){_0x3a7249['rows']=_0x3a8a12;return _0x3a7249;})[_0x29f6('0x1e')](respondWithFilteredResult(_0x304c28,_0x375564))[_0x29f6('0x3c')](handleError(_0x304c28,null));};exports[_0x29f6('0x3d')]=function(_0x27d655,_0x5402bb){var _0x415dd3={'raw':!![],'where':{'id':_0x27d655[_0x29f6('0x3e')]['id']}},_0x2a83b7={};_0x2a83b7['model']=_[_0x29f6('0x2b')](db['Tag'][_0x29f6('0x3f')]);_0x2a83b7['query']=_['keys'](_0x27d655['query']);_0x2a83b7[_0x29f6('0x2c')]=_[_0x29f6('0x2d')](_0x2a83b7[_0x29f6('0x2e')],_0x2a83b7[_0x29f6('0x2a')]);_0x415dd3[_0x29f6('0x2f')]=_[_0x29f6('0x2d')](_0x2a83b7[_0x29f6('0x2e')],qs[_0x29f6('0x30')](_0x27d655[_0x29f6('0x2a')][_0x29f6('0x30')]));_0x415dd3['attributes']=_0x415dd3['attributes'][_0x29f6('0x31')]?_0x415dd3[_0x29f6('0x2f')]:_0x2a83b7[_0x29f6('0x2e')];if(_0x27d655[_0x29f6('0x2a')]['includeAll']){_0x415dd3[_0x29f6('0x40')]=[{'all':!![]}];}_0x415dd3=_[_0x29f6('0x38')]({},_0x415dd3,_0x27d655['options']);return db[_0x29f6('0x26')][_0x29f6('0x41')](_0x415dd3)[_0x29f6('0x1e')](handleEntityNotFound(_0x5402bb,null))[_0x29f6('0x1e')](respondWithResult(_0x5402bb,null))[_0x29f6('0x3c')](handleError(_0x5402bb,null));};exports[_0x29f6('0x42')]=function(_0x320b5e,_0x1f03b6){return db[_0x29f6('0x26')][_0x29f6('0x42')](_0x320b5e[_0x29f6('0x43')],{})[_0x29f6('0x1e')](function(_0x58ea69){var _0x416c24=_0x320b5e[_0x29f6('0x44')][_0x29f6('0x1f')]({'plain':!![]});if(!_0x416c24)throw new Error(_0x29f6('0x45'));if(_0x416c24[_0x29f6('0x46')]==='user'){var _0x2e29e3=_0x58ea69['get']({'plain':!![]});var _0x546c91=_0x29f6('0x47');return db[_0x29f6('0x48')][_0x29f6('0x41')]({'where':{'name':_0x546c91,'userProfileId':_0x416c24[_0x29f6('0x49')]},'raw':!![]})[_0x29f6('0x1e')](function(_0x509caf){if(_0x509caf&&_0x509caf[_0x29f6('0x4a')]===0x0){return db[_0x29f6('0x20')]['create']({'name':_0x2e29e3[_0x29f6('0x23')],'resourceId':_0x2e29e3['id'],'type':_0x509caf['name'],'sectionId':_0x509caf['id']},{})[_0x29f6('0x1e')](function(){return _0x58ea69;});}else{return _0x58ea69;}})[_0x29f6('0x3c')](function(_0x27601d){logger[_0x29f6('0x21')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x27601d);throw _0x27601d;});}return _0x58ea69;})[_0x29f6('0x1e')](respondWithResult(_0x1f03b6,0xc9))[_0x29f6('0x3c')](handleError(_0x1f03b6,null));};exports[_0x29f6('0x1c')]=function(_0x217428,_0x3aa7eb){if(_0x217428[_0x29f6('0x43')]['id']){delete _0x217428[_0x29f6('0x43')]['id'];}return db['Tag'][_0x29f6('0x41')]({'where':{'id':_0x217428[_0x29f6('0x3e')]['id']}})[_0x29f6('0x1e')](handleEntityNotFound(_0x3aa7eb,null))[_0x29f6('0x1e')](saveUpdates(_0x217428[_0x29f6('0x43')],null))[_0x29f6('0x1e')](respondWithResult(_0x3aa7eb,null))[_0x29f6('0x3c')](handleError(_0x3aa7eb,null));};exports[_0x29f6('0x1d')]=function(_0x39d531,_0x3dbd19){return db['Tag']['find']({'where':{'id':_0x39d531[_0x29f6('0x3e')]['id']}})[_0x29f6('0x1e')](handleEntityNotFound(_0x3dbd19,null))[_0x29f6('0x1e')](removeEntity(_0x3dbd19,null))['catch'](handleError(_0x3dbd19,null));};
\ No newline at end of file
+var _0xaf93=['sort','where','filters','filter','merge','map','options','includeAll','include','findAll','rows','catch','show','params','keys','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','eml-format','rimraf','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','jsforce','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','set','apply','reject','then','get','Tags','UserProfileResource','destroy','end','sendStatus','stack','name','index','Tag','rawAttributes','type','key','model','query','intersection','attributes','fields','length','nolimit'];(function(_0x42fee0,_0x49a55d){var _0x2ebd12=function(_0x44bee6){while(--_0x44bee6){_0x42fee0['push'](_0x42fee0['shift']());}};_0x2ebd12(++_0x49a55d);}(_0xaf93,0x151));var _0x3af9=function(_0x16859e,_0x4c61d0){_0x16859e=_0x16859e-0x0;var _0x49021f=_0xaf93[_0x16859e];return _0x49021f;};'use strict';var emlformat=require(_0x3af9('0x0'));var rimraf=require(_0x3af9('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x3af9('0x2'));var moment=require(_0x3af9('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x3af9('0x4'));var util=require(_0x3af9('0x5'));var path=require(_0x3af9('0x6'));var sox=require(_0x3af9('0x7'));var csv=require(_0x3af9('0x8'));var ejs=require(_0x3af9('0x9'));var fs=require('fs');var fs_extra=require(_0x3af9('0xa'));var _=require('lodash');var squel=require(_0x3af9('0xb'));var crypto=require('crypto');var jsforce=require(_0x3af9('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3af9('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x3af9('0xe'));var qs=require(_0x3af9('0xf'));var as=require(_0x3af9('0x10'));var hardwareService=require(_0x3af9('0x11'));var logger=require('../../config/logger')(_0x3af9('0x12'));var utils=require(_0x3af9('0x13'));var config=require(_0x3af9('0x14'));var licenseUtil=require(_0x3af9('0x15'));var db=require(_0x3af9('0x16'))['db'];function respondWithStatusCode(_0xfa1410,_0x212f63){_0x212f63=_0x212f63||0xcc;return function(_0xa7b81f){if(_0xa7b81f){return _0xfa1410['sendStatus'](_0x212f63);}return _0xfa1410[_0x3af9('0x17')](_0x212f63)['end']();};}function respondWithResult(_0x152254,_0x222b6f){_0x222b6f=_0x222b6f||0xc8;return function(_0x1e4ebb){if(_0x1e4ebb){return _0x152254['status'](_0x222b6f)[_0x3af9('0x18')](_0x1e4ebb);}};}function respondWithFilteredResult(_0x1088fc,_0x37cb8b){return function(_0x4b2845){if(_0x4b2845){var _0x278e80=typeof _0x37cb8b[_0x3af9('0x19')]===_0x3af9('0x1a')&&typeof _0x37cb8b[_0x3af9('0x1b')]==='undefined';var _0x1d3410=_0x4b2845[_0x3af9('0x1c')];var _0x298135=_0x278e80?0x0:_0x37cb8b[_0x3af9('0x19')];var _0x314df2=_0x278e80?_0x4b2845['count']:_0x37cb8b[_0x3af9('0x19')]+_0x37cb8b[_0x3af9('0x1b')];var _0x1f9214;if(_0x314df2>=_0x1d3410){_0x314df2=_0x1d3410;_0x1f9214=0xc8;}else{_0x1f9214=0xce;}_0x1088fc[_0x3af9('0x17')](_0x1f9214);return _0x1088fc[_0x3af9('0x1d')]('Content-Range',_0x298135+'-'+_0x314df2+'/'+_0x1d3410)[_0x3af9('0x18')](_0x4b2845);}return null;};}function patchUpdates(_0x34eb91){return function(_0x449349){try{jsonpatch[_0x3af9('0x1e')](_0x449349,_0x34eb91,!![]);}catch(_0x3c1793){return BPromise[_0x3af9('0x1f')](_0x3c1793);}return _0x449349['save']();};}function saveUpdates(_0x4a88ea,_0x505e25){return function(_0x5e24e3){if(_0x5e24e3){return _0x5e24e3['update'](_0x4a88ea)[_0x3af9('0x20')](function(_0x5c1c8f){return _0x5c1c8f;});}return null;};}function removeEntity(_0x74c872,_0x307f9d){return function(_0x4b5a5c){if(_0x4b5a5c){return _0x4b5a5c['destroy']()['then'](function(){var _0x119e85=_0x4b5a5c[_0x3af9('0x21')]({'plain':!![]});var _0x22965b=_0x3af9('0x22');return db[_0x3af9('0x23')][_0x3af9('0x24')]({'where':{'type':_0x22965b,'resourceId':_0x119e85['id']}})[_0x3af9('0x20')](function(){return _0x4b5a5c;});})[_0x3af9('0x20')](function(){_0x74c872['status'](0xcc)[_0x3af9('0x25')]();});}};}function handleEntityNotFound(_0x574b71,_0x485754){return function(_0x177650){if(!_0x177650){_0x574b71[_0x3af9('0x26')](0x194);}return _0x177650;};}function handleError(_0x19643f,_0xf8840){_0xf8840=_0xf8840||0x1f4;return function(_0x374382){logger['error'](_0x374382[_0x3af9('0x27')]);if(_0x374382[_0x3af9('0x28')]){delete _0x374382[_0x3af9('0x28')];}_0x19643f['status'](_0xf8840)['send'](_0x374382);};}exports[_0x3af9('0x29')]=function(_0x1d022d,_0x8867c6){var _0x540969={},_0x4186d5={},_0x115673={'count':0x0,'rows':[]};var _0x1c923d=_['map'](db[_0x3af9('0x2a')][_0x3af9('0x2b')],function(_0x407572){return{'name':_0x407572['fieldName'],'type':_0x407572[_0x3af9('0x2c')][_0x3af9('0x2d')]};});_0x4186d5[_0x3af9('0x2e')]=_['map'](_0x1c923d,_0x3af9('0x28'));_0x4186d5[_0x3af9('0x2f')]=_['keys'](_0x1d022d[_0x3af9('0x2f')]);_0x4186d5['filters']=_[_0x3af9('0x30')](_0x4186d5['model'],_0x4186d5['query']);_0x540969[_0x3af9('0x31')]=_['intersection'](_0x4186d5[_0x3af9('0x2e')],qs[_0x3af9('0x32')](_0x1d022d[_0x3af9('0x2f')]['fields']));_0x540969['attributes']=_0x540969[_0x3af9('0x31')][_0x3af9('0x33')]?_0x540969['attributes']:_0x4186d5['model'];if(!_0x1d022d[_0x3af9('0x2f')]['hasOwnProperty'](_0x3af9('0x34'))){_0x540969[_0x3af9('0x1b')]=qs['limit'](_0x1d022d['query'][_0x3af9('0x1b')]);_0x540969[_0x3af9('0x19')]=qs[_0x3af9('0x19')](_0x1d022d[_0x3af9('0x2f')][_0x3af9('0x19')]);}_0x540969['order']=qs['sort'](_0x1d022d[_0x3af9('0x2f')][_0x3af9('0x35')]);_0x540969[_0x3af9('0x36')]=qs[_0x3af9('0x37')](_['pick'](_0x1d022d['query'],_0x4186d5[_0x3af9('0x37')]),_0x1c923d);if(_0x1d022d[_0x3af9('0x2f')][_0x3af9('0x38')]){_0x540969['where']=_[_0x3af9('0x39')](_0x540969[_0x3af9('0x36')],{'$or':_[_0x3af9('0x3a')](_0x1c923d,function(_0x576c86){if(_0x576c86[_0x3af9('0x2c')]!=='VIRTUAL'){var _0x1f3ac9={};_0x1f3ac9[_0x576c86[_0x3af9('0x28')]]={'$like':'%'+_0x1d022d[_0x3af9('0x2f')][_0x3af9('0x38')]+'%'};return _0x1f3ac9;}})});}_0x540969=_[_0x3af9('0x39')]({},_0x540969,_0x1d022d[_0x3af9('0x3b')]);var _0x43fd62={'where':_0x540969[_0x3af9('0x36')]};return db[_0x3af9('0x2a')][_0x3af9('0x1c')](_0x43fd62)[_0x3af9('0x20')](function(_0x4d7bd4){_0x115673[_0x3af9('0x1c')]=_0x4d7bd4;if(_0x1d022d[_0x3af9('0x2f')][_0x3af9('0x3c')]){_0x540969[_0x3af9('0x3d')]=[{'all':!![]}];}return db[_0x3af9('0x2a')][_0x3af9('0x3e')](_0x540969);})[_0x3af9('0x20')](function(_0x384a61){_0x115673[_0x3af9('0x3f')]=_0x384a61;return _0x115673;})[_0x3af9('0x20')](respondWithFilteredResult(_0x8867c6,_0x540969))[_0x3af9('0x40')](handleError(_0x8867c6,null));};exports[_0x3af9('0x41')]=function(_0x549274,_0x542580){var _0x461dd6={'raw':!![],'where':{'id':_0x549274[_0x3af9('0x42')]['id']}},_0x1daea4={};_0x1daea4[_0x3af9('0x2e')]=_[_0x3af9('0x43')](db[_0x3af9('0x2a')][_0x3af9('0x2b')]);_0x1daea4[_0x3af9('0x2f')]=_[_0x3af9('0x43')](_0x549274[_0x3af9('0x2f')]);_0x1daea4[_0x3af9('0x37')]=_[_0x3af9('0x30')](_0x1daea4[_0x3af9('0x2e')],_0x1daea4['query']);_0x461dd6[_0x3af9('0x31')]=_[_0x3af9('0x30')](_0x1daea4[_0x3af9('0x2e')],qs[_0x3af9('0x32')](_0x549274['query']['fields']));_0x461dd6[_0x3af9('0x31')]=_0x461dd6['attributes'][_0x3af9('0x33')]?_0x461dd6[_0x3af9('0x31')]:_0x1daea4[_0x3af9('0x2e')];if(_0x549274[_0x3af9('0x2f')]['includeAll']){_0x461dd6[_0x3af9('0x3d')]=[{'all':!![]}];}_0x461dd6=_[_0x3af9('0x39')]({},_0x461dd6,_0x549274[_0x3af9('0x3b')]);return db['Tag']['find'](_0x461dd6)[_0x3af9('0x20')](handleEntityNotFound(_0x542580,null))['then'](respondWithResult(_0x542580,null))['catch'](handleError(_0x542580,null));};exports['create']=function(_0x19bd47,_0x3bc784){return db[_0x3af9('0x2a')][_0x3af9('0x44')](_0x19bd47[_0x3af9('0x45')],{})[_0x3af9('0x20')](function(_0x442681){var _0x48377b=_0x19bd47[_0x3af9('0x46')][_0x3af9('0x21')]({'plain':!![]});if(!_0x48377b)throw new Error(_0x3af9('0x47'));if(_0x48377b[_0x3af9('0x48')]===_0x3af9('0x46')){var _0x1104d4=_0x442681['get']({'plain':!![]});var _0x1b4509=_0x3af9('0x22');return db[_0x3af9('0x49')][_0x3af9('0x4a')]({'where':{'name':_0x1b4509,'userProfileId':_0x48377b['userProfileId']},'raw':!![]})[_0x3af9('0x20')](function(_0x39d954){if(_0x39d954&&_0x39d954[_0x3af9('0x4b')]===0x0){return db[_0x3af9('0x23')]['create']({'name':_0x1104d4[_0x3af9('0x28')],'resourceId':_0x1104d4['id'],'type':_0x39d954[_0x3af9('0x28')],'sectionId':_0x39d954['id']},{})[_0x3af9('0x20')](function(){return _0x442681;});}else{return _0x442681;}})[_0x3af9('0x40')](function(_0x4c75b6){logger['error'](_0x3af9('0x4c'),_0x4c75b6);throw _0x4c75b6;});}return _0x442681;})[_0x3af9('0x20')](respondWithResult(_0x3bc784,0xc9))[_0x3af9('0x40')](handleError(_0x3bc784,null));};exports[_0x3af9('0x4d')]=function(_0x3f087a,_0x268820){if(_0x3f087a[_0x3af9('0x45')]['id']){delete _0x3f087a[_0x3af9('0x45')]['id'];}return db[_0x3af9('0x2a')][_0x3af9('0x4a')]({'where':{'id':_0x3f087a[_0x3af9('0x42')]['id']}})['then'](handleEntityNotFound(_0x268820,null))[_0x3af9('0x20')](saveUpdates(_0x3f087a[_0x3af9('0x45')],null))['then'](respondWithResult(_0x268820,null))['catch'](handleError(_0x268820,null));};exports[_0x3af9('0x24')]=function(_0x4b205f,_0x27f717){return db[_0x3af9('0x2a')]['find']({'where':{'id':_0x4b205f['params']['id']}})[_0x3af9('0x20')](handleEntityNotFound(_0x27f717,null))[_0x3af9('0x20')](removeEntity(_0x27f717,null))[_0x3af9('0x40')](handleError(_0x27f717,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x50cd=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','./tag.attributes','exports','Tag'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x50cd,0x6e));var _0xd50c=function(_0xd21fe7,_0x225a39){_0xd21fe7=_0xd21fe7-0x0;var _0x14d570=_0x50cd[_0xd21fe7];return _0x14d570;};'use strict';var _=require(_0xd50c('0x0'));var util=require(_0xd50c('0x1'));var logger=require(_0xd50c('0x2'))(_0xd50c('0x3'));var moment=require(_0xd50c('0x4'));var BPromise=require(_0xd50c('0x5'));var rp=require(_0xd50c('0x6'));var fs=require('fs');var path=require(_0xd50c('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xd50c('0x8'));module[_0xd50c('0x9')]=function(_0x2a888b,_0x1c2dfa){return _0x2a888b['define'](_0xd50c('0xa'),attributes,{'tableName':'tools_tags','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xdd51=['define','Tag','lodash','util','bluebird','request-promise','path','../../config/environment','./tag.attributes','exports'];(function(_0x5677c0,_0x17ab5b){var _0x5711e3=function(_0x1cdf5f){while(--_0x1cdf5f){_0x5677c0['push'](_0x5677c0['shift']());}};_0x5711e3(++_0x17ab5b);}(_0xdd51,0xca));var _0x1dd5=function(_0x56482c,_0x16118d){_0x56482c=_0x56482c-0x0;var _0x5aae7a=_0xdd51[_0x56482c];return _0x5aae7a;};'use strict';var _=require(_0x1dd5('0x0'));var util=require(_0x1dd5('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0x1dd5('0x2'));var rp=require(_0x1dd5('0x3'));var fs=require('fs');var path=require(_0x1dd5('0x4'));var rimraf=require('rimraf');var config=require(_0x1dd5('0x5'));var attributes=require(_0x1dd5('0x6'));module[_0x1dd5('0x7')]=function(_0x4aa37d,_0x35ecd9){return _0x4aa37d[_0x1dd5('0x8')](_0x1dd5('0x9'),attributes,{'tableName':'tools_tags','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd13e=['Tag,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','ioredis','../../config/utils','rpc','../../config/environment','request','then','info','request\x20sent','debug','Tag,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x7dda43,_0x69df58){var _0x236512=function(_0xde2ca4){while(--_0xde2ca4){_0x7dda43['push'](_0x7dda43['shift']());}};_0x236512(++_0x69df58);}(_0xd13e,0x193));var _0xed13=function(_0x52a563,_0x3d75a1){_0x52a563=_0x52a563-0x0;var _0x3ca253=_0xd13e[_0x52a563];return _0x3ca253;};'use strict';var _=require(_0xed13('0x0'));var util=require(_0xed13('0x1'));var moment=require(_0xed13('0x2'));var BPromise=require(_0xed13('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xed13('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xed13('0x5'));var logger=require('../../config/logger')(_0xed13('0x6'));var config=require(_0xed13('0x7'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x95ff4c,_0x134929,_0xab0fff){return new BPromise(function(_0x3b3984,_0x369798){return client[_0xed13('0x8')](_0x95ff4c,_0xab0fff)[_0xed13('0x9')](function(_0x9bc191){logger[_0xed13('0xa')]('Tag,\x20%s,\x20%s',_0x134929,_0xed13('0xb'));logger[_0xed13('0xc')](_0xed13('0xd'),_0x134929,_0xed13('0xb'),JSON[_0xed13('0xe')](_0x9bc191));if(_0x9bc191['error']){if(_0x9bc191[_0xed13('0xf')][_0xed13('0x10')]===0x1f4){logger[_0xed13('0xf')](_0xed13('0x11'),_0x134929,_0x9bc191[_0xed13('0xf')][_0xed13('0x12')]);return _0x369798(_0x9bc191['error'][_0xed13('0x12')]);}logger['error'](_0xed13('0x11'),_0x134929,_0x9bc191['error'][_0xed13('0x12')]);return _0x3b3984(_0x9bc191['error'][_0xed13('0x12')]);}else{logger['info'](_0xed13('0x11'),_0x134929,_0xed13('0xb'));_0x3b3984(_0x9bc191[_0xed13('0x13')][_0xed13('0x12')]);}})[_0xed13('0x14')](function(_0x1f8585){logger[_0xed13('0xf')](_0xed13('0x11'),_0x134929,_0x1f8585);_0x369798(_0x1f8585);});});}
\ No newline at end of file
+var _0xb458=['Tag,\x20%s,\x20%s,\x20%s','code','error','message','request\x20sent','result','catch','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','http','request','then','info','Tag,\x20%s,\x20%s','debug'];(function(_0x32f7d7,_0x54231b){var _0x133d09=function(_0x41a7ab){while(--_0x41a7ab){_0x32f7d7['push'](_0x32f7d7['shift']());}};_0x133d09(++_0x54231b);}(_0xb458,0x103));var _0x8b45=function(_0x374305,_0x3bf2b1){_0x374305=_0x374305-0x0;var _0x48f9c6=_0xb458[_0x374305];return _0x48f9c6;};'use strict';var _=require(_0x8b45('0x0'));var util=require(_0x8b45('0x1'));var moment=require(_0x8b45('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8b45('0x3'));var db=require(_0x8b45('0x4'))['db'];var utils=require(_0x8b45('0x5'));var logger=require(_0x8b45('0x6'))('rpc');var config=require(_0x8b45('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x8b45('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x12bd05,_0x2daa9a,_0x3a8ccb){return new BPromise(function(_0x32342f,_0x4d1718){return client[_0x8b45('0x9')](_0x12bd05,_0x3a8ccb)[_0x8b45('0xa')](function(_0x33f30e){logger[_0x8b45('0xb')](_0x8b45('0xc'),_0x2daa9a,'request\x20sent');logger[_0x8b45('0xd')](_0x8b45('0xe'),_0x2daa9a,'request\x20sent',JSON['stringify'](_0x33f30e));if(_0x33f30e['error']){if(_0x33f30e['error'][_0x8b45('0xf')]===0x1f4){logger[_0x8b45('0x10')](_0x8b45('0xc'),_0x2daa9a,_0x33f30e['error'][_0x8b45('0x11')]);return _0x4d1718(_0x33f30e[_0x8b45('0x10')][_0x8b45('0x11')]);}logger[_0x8b45('0x10')](_0x8b45('0xc'),_0x2daa9a,_0x33f30e[_0x8b45('0x10')]['message']);return _0x32342f(_0x33f30e['error'][_0x8b45('0x11')]);}else{logger[_0x8b45('0xb')](_0x8b45('0xc'),_0x2daa9a,_0x8b45('0x12'));_0x32342f(_0x33f30e[_0x8b45('0x13')][_0x8b45('0x11')]);}})[_0x8b45('0x14')](function(_0x147d6b){logger[_0x8b45('0x10')](_0x8b45('0xc'),_0x2daa9a,_0x147d6b);_0x4d1718(_0x147d6b);});});}
\ 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(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4243a3,_0x447337){_0x4243a3=_0x4243a3-0x0;var _0x1b2a33=_0xa9e0[_0x4243a3];return _0x1b2a33;};'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(_0x8c43de,_0x90ff31){var _0xa6591b=function(_0x469716){while(--_0x469716){_0x8c43de['push'](_0x8c43de['shift']());}};_0xa6591b(++_0x90ff31);}(_0xa9e0,0x123));var _0x0a9e=function(_0x934425,_0x5af72f){_0x934425=_0x934425-0x0;var _0x31d596=_0xa9e0[_0x934425];return _0x31d596;};'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 _0xbaf0=['name','exports','STRING'];(function(_0x2235bf,_0x3a06a7){var _0x4c3a64=function(_0x3b3bb6){while(--_0x3b3bb6){_0x2235bf['push'](_0x2235bf['shift']());}};_0x4c3a64(++_0x3a06a7);}(_0xbaf0,0x12a));var _0x0baf=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0xbaf0[_0x2b4411];return _0x8e41ef;};'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 _0x0713=['STRING','name'];(function(_0x37af90,_0x3fe010){var _0x51a27d=function(_0x40adaf){while(--_0x40adaf){_0x37af90['push'](_0x37af90['shift']());}};_0x51a27d(++_0x3fe010);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x3071('0x0')],'allowNull':![],'unique':_0x3071('0x1')},'description':{'type':Sequelize[_0x3071('0x0')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe7f5=['emit','Queue:remove','QueueId','getAgents','order','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./team.socket','sendStatus','status','json','offset','undefined','limit','count','set','reject','save','update','error','stack','name','index','map','Team','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','then','includeAll','include','findAll','rows','catch','params','keys','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','Teams','UserProfileSection','autoAssociation','UserProfileResource','destroy','sequelize','transaction','Sequelize','QueryTypes','SELECT','UserId','UserVoiceQueue','MailQueueId','UserMailQueue','SmsQueueId','UserSmsQueue','UserChatQueue','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','FaxQueueId','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','OpenchannelQueueId','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','send','getQueues','channel','isValidChannel','ValidationError','Unknown\x20channel','capitalize','toLowerCase','rawAttributes','findOne','add','Queues','removeQueues','remove','addAgents','isArray','ids','Voice','Chat','Mail','Fax','Openchannel','Whatsapp','penalty','User','findOrCreate','Queue:save','online','voicePause','interface','UserVoiceQueueRt','upsert','isNil','format','SIP/%s','TeamVoiceQueue','all','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','spread','removeAgents','Sms'];(function(_0x1b6186,_0x1ec7f2){var _0x186121=function(_0x1748a8){while(--_0x1748a8){_0x1b6186['push'](_0x1b6186['shift']());}};_0x186121(++_0x1ec7f2);}(_0xe7f5,0x135));var _0x5e7f=function(_0x3c9870,_0xa9a52e){_0x3c9870=_0x3c9870-0x0;var _0x24fc01=_0xe7f5[_0x3c9870];return _0x24fc01;};'use strict';var emlformat=require(_0x5e7f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x5e7f('0x1'));var jsonpatch=require(_0x5e7f('0x2'));var rp=require(_0x5e7f('0x3'));var moment=require(_0x5e7f('0x4'));var BPromise=require(_0x5e7f('0x5'));var Mustache=require(_0x5e7f('0x6'));var util=require(_0x5e7f('0x7'));var path=require(_0x5e7f('0x8'));var sox=require(_0x5e7f('0x9'));var csv=require(_0x5e7f('0xa'));var ejs=require(_0x5e7f('0xb'));var fs=require('fs');var fs_extra=require(_0x5e7f('0xc'));var _=require(_0x5e7f('0xd'));var squel=require(_0x5e7f('0xe'));var crypto=require(_0x5e7f('0xf'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x5e7f('0x10'));var Papa=require(_0x5e7f('0x11'));var Redis=require(_0x5e7f('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x5e7f('0x13'));var hardwareService=require(_0x5e7f('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x5e7f('0x15'));var config=require(_0x5e7f('0x16'));var licenseUtil=require(_0x5e7f('0x17'));var db=require(_0x5e7f('0x18'))['db'];config[_0x5e7f('0x19')]=_[_0x5e7f('0x1a')](config[_0x5e7f('0x19')],{'host':_0x5e7f('0x1b'),'port':0x18eb});var socket=require(_0x5e7f('0x1c'))(new Redis(config[_0x5e7f('0x19')]));require(_0x5e7f('0x1d'))['register'](socket);function respondWithStatusCode(_0x4aa656,_0x4926c7){_0x4926c7=_0x4926c7||0xcc;return function(_0x46af36){if(_0x46af36){return _0x4aa656[_0x5e7f('0x1e')](_0x4926c7);}return _0x4aa656[_0x5e7f('0x1f')](_0x4926c7)['end']();};}function respondWithResult(_0x305308,_0x32ff76){_0x32ff76=_0x32ff76||0xc8;return function(_0x3de787){if(_0x3de787){return _0x305308[_0x5e7f('0x1f')](_0x32ff76)[_0x5e7f('0x20')](_0x3de787);}};}function respondWithFilteredResult(_0x4900e,_0x21dc3c){return function(_0x5ea9c6){if(_0x5ea9c6){var _0x4e5d9a=typeof _0x21dc3c[_0x5e7f('0x21')]===_0x5e7f('0x22')&&typeof _0x21dc3c[_0x5e7f('0x23')]==='undefined';var _0x1cc774=_0x5ea9c6[_0x5e7f('0x24')];var _0xf9fa42=_0x4e5d9a?0x0:_0x21dc3c[_0x5e7f('0x21')];var _0x2b07e4=_0x4e5d9a?_0x5ea9c6[_0x5e7f('0x24')]:_0x21dc3c['offset']+_0x21dc3c['limit'];var _0x14e9a6;if(_0x2b07e4>=_0x1cc774){_0x2b07e4=_0x1cc774;_0x14e9a6=0xc8;}else{_0x14e9a6=0xce;}_0x4900e['status'](_0x14e9a6);return _0x4900e[_0x5e7f('0x25')]('Content-Range',_0xf9fa42+'-'+_0x2b07e4+'/'+_0x1cc774)[_0x5e7f('0x20')](_0x5ea9c6);}return null;};}function patchUpdates(_0x18d529){return function(_0x24ef83){try{jsonpatch['apply'](_0x24ef83,_0x18d529,!![]);}catch(_0x51d3f2){return BPromise[_0x5e7f('0x26')](_0x51d3f2);}return _0x24ef83[_0x5e7f('0x27')]();};}function saveUpdates(_0x1d3e7c,_0x5fbb2f){return function(_0x5a53d5){if(_0x5a53d5){return _0x5a53d5[_0x5e7f('0x28')](_0x1d3e7c)['then'](function(_0x4910f4){return _0x4910f4;});}return null;};}function handleEntityNotFound(_0x3fae21,_0x531116){return function(_0x536172){if(!_0x536172){_0x3fae21[_0x5e7f('0x1e')](0x194);}return _0x536172;};}function handleError(_0x215f86,_0xd1c1f6){_0xd1c1f6=_0xd1c1f6||0x1f4;return function(_0x287d93){logger[_0x5e7f('0x29')](_0x287d93[_0x5e7f('0x2a')]);if(_0x287d93[_0x5e7f('0x2b')]){delete _0x287d93['name'];}_0x215f86['status'](_0xd1c1f6)['send'](_0x287d93);};}exports[_0x5e7f('0x2c')]=function(_0x1e91f8,_0x5484e9){var _0xac3075={},_0x1491f5={},_0x2e59fd={'count':0x0,'rows':[]};var _0x31aa37=_[_0x5e7f('0x2d')](db[_0x5e7f('0x2e')]['rawAttributes'],function(_0x349ccd){return{'name':_0x349ccd[_0x5e7f('0x2f')],'type':_0x349ccd[_0x5e7f('0x30')][_0x5e7f('0x31')]};});_0x1491f5['model']=_[_0x5e7f('0x2d')](_0x31aa37,_0x5e7f('0x2b'));_0x1491f5[_0x5e7f('0x32')]=_['keys'](_0x1e91f8[_0x5e7f('0x32')]);_0x1491f5[_0x5e7f('0x33')]=_[_0x5e7f('0x34')](_0x1491f5[_0x5e7f('0x35')],_0x1491f5[_0x5e7f('0x32')]);_0xac3075[_0x5e7f('0x36')]=_['intersection'](_0x1491f5[_0x5e7f('0x35')],qs[_0x5e7f('0x37')](_0x1e91f8[_0x5e7f('0x32')][_0x5e7f('0x37')]));_0xac3075[_0x5e7f('0x36')]=_0xac3075[_0x5e7f('0x36')][_0x5e7f('0x38')]?_0xac3075['attributes']:_0x1491f5[_0x5e7f('0x35')];if(!_0x1e91f8['query'][_0x5e7f('0x39')](_0x5e7f('0x3a'))){_0xac3075['limit']=qs[_0x5e7f('0x23')](_0x1e91f8['query'][_0x5e7f('0x23')]);_0xac3075[_0x5e7f('0x21')]=qs[_0x5e7f('0x21')](_0x1e91f8[_0x5e7f('0x32')][_0x5e7f('0x21')]);}_0xac3075['order']=qs[_0x5e7f('0x3b')](_0x1e91f8[_0x5e7f('0x32')][_0x5e7f('0x3b')]);_0xac3075[_0x5e7f('0x3c')]=qs[_0x5e7f('0x33')](_[_0x5e7f('0x3d')](_0x1e91f8[_0x5e7f('0x32')],_0x1491f5['filters']),_0x31aa37);if(_0x1e91f8[_0x5e7f('0x32')]['filter']){_0xac3075[_0x5e7f('0x3c')]=_[_0x5e7f('0x3e')](_0xac3075[_0x5e7f('0x3c')],{'$or':_['map'](_0x31aa37,function(_0x4abc99){if(_0x4abc99['type']!==_0x5e7f('0x3f')){var _0x82077a={};_0x82077a[_0x4abc99[_0x5e7f('0x2b')]]={'$like':'%'+_0x1e91f8[_0x5e7f('0x32')][_0x5e7f('0x40')]+'%'};return _0x82077a;}})});}_0xac3075=_['merge']({},_0xac3075,_0x1e91f8[_0x5e7f('0x41')]);var _0x2b8557={'where':_0xac3075[_0x5e7f('0x3c')]};return db[_0x5e7f('0x2e')][_0x5e7f('0x24')](_0x2b8557)[_0x5e7f('0x42')](function(_0x4110ce){_0x2e59fd[_0x5e7f('0x24')]=_0x4110ce;if(_0x1e91f8[_0x5e7f('0x32')][_0x5e7f('0x43')]){_0xac3075[_0x5e7f('0x44')]=[{'all':!![]}];}return db[_0x5e7f('0x2e')][_0x5e7f('0x45')](_0xac3075);})[_0x5e7f('0x42')](function(_0x2eaa64){_0x2e59fd[_0x5e7f('0x46')]=_0x2eaa64;return _0x2e59fd;})[_0x5e7f('0x42')](respondWithFilteredResult(_0x5484e9,_0xac3075))[_0x5e7f('0x47')](handleError(_0x5484e9,null));};exports['show']=function(_0x1db363,_0x52637b){var _0x16fced={'raw':![],'where':{'id':_0x1db363[_0x5e7f('0x48')]['id']}},_0xa1daef={};_0xa1daef[_0x5e7f('0x35')]=_[_0x5e7f('0x49')](db[_0x5e7f('0x2e')]['rawAttributes']);_0xa1daef[_0x5e7f('0x32')]=_[_0x5e7f('0x49')](_0x1db363['query']);_0xa1daef[_0x5e7f('0x33')]=_[_0x5e7f('0x34')](_0xa1daef[_0x5e7f('0x35')],_0xa1daef['query']);_0x16fced[_0x5e7f('0x36')]=_[_0x5e7f('0x34')](_0xa1daef[_0x5e7f('0x35')],qs['fields'](_0x1db363['query'][_0x5e7f('0x37')]));_0x16fced[_0x5e7f('0x36')]=_0x16fced[_0x5e7f('0x36')]['length']?_0x16fced[_0x5e7f('0x36')]:_0xa1daef[_0x5e7f('0x35')];if(_0x1db363['query'][_0x5e7f('0x43')]){_0x16fced['include']=[{'all':!![]}];}_0x16fced=_[_0x5e7f('0x3e')]({},_0x16fced,_0x1db363['options']);return db[_0x5e7f('0x2e')][_0x5e7f('0x4a')](_0x16fced)[_0x5e7f('0x42')](handleEntityNotFound(_0x52637b,null))[_0x5e7f('0x42')](respondWithResult(_0x52637b,null))[_0x5e7f('0x47')](handleError(_0x52637b,null));};exports[_0x5e7f('0x4b')]=function(_0x1507cf,_0x306df3){return db[_0x5e7f('0x2e')][_0x5e7f('0x4b')](_0x1507cf[_0x5e7f('0x4c')],{})[_0x5e7f('0x42')](function(_0x15dab4){var _0x4ade23=_0x1507cf[_0x5e7f('0x4d')]['get']({'plain':!![]});if(!_0x4ade23)throw new Error(_0x5e7f('0x4e'));if(_0x4ade23[_0x5e7f('0x4f')]===_0x5e7f('0x4d')){var _0x368202=_0x15dab4[_0x5e7f('0x50')]({'plain':!![]});var _0x4a95c8=_0x5e7f('0x51');return db[_0x5e7f('0x52')][_0x5e7f('0x4a')]({'where':{'name':_0x4a95c8,'userProfileId':_0x4ade23['userProfileId']},'raw':!![]})[_0x5e7f('0x42')](function(_0x22fbf8){if(_0x22fbf8&&_0x22fbf8[_0x5e7f('0x53')]===0x0){return db[_0x5e7f('0x54')][_0x5e7f('0x4b')]({'name':_0x368202['name'],'resourceId':_0x368202['id'],'type':_0x22fbf8[_0x5e7f('0x2b')],'sectionId':_0x22fbf8['id']},{})['then'](function(){return _0x15dab4;});}else{return _0x15dab4;}})[_0x5e7f('0x47')](function(_0x4da0d3){logger[_0x5e7f('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4da0d3);throw _0x4da0d3;});}return _0x15dab4;})[_0x5e7f('0x42')](respondWithResult(_0x306df3,0xc9))[_0x5e7f('0x47')](handleError(_0x306df3,null));};exports['update']=function(_0x2c6ca0,_0x3d7148){if(_0x2c6ca0[_0x5e7f('0x4c')]['id']){delete _0x2c6ca0[_0x5e7f('0x4c')]['id'];}return db['Team'][_0x5e7f('0x4a')]({'where':{'id':_0x2c6ca0['params']['id']}})[_0x5e7f('0x42')](handleEntityNotFound(_0x3d7148,null))[_0x5e7f('0x42')](saveUpdates(_0x2c6ca0[_0x5e7f('0x4c')],null))['then'](respondWithResult(_0x3d7148,null))['catch'](handleError(_0x3d7148,null));};exports[_0x5e7f('0x55')]=function(_0x3e9418,_0x2ca888){var _0x3481a1=_0x3e9418[_0x5e7f('0x48')]['id'];var _0x40e050=[];return db[_0x5e7f('0x56')][_0x5e7f('0x57')](function(_0x280d51){var _0x5a3a49='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0x3481a1;return db[_0x5e7f('0x56')][_0x5e7f('0x32')](_0x5a3a49,{'type':db[_0x5e7f('0x58')][_0x5e7f('0x59')][_0x5e7f('0x5a')],'raw':!![],'transaction':_0x280d51})[_0x5e7f('0x42')](function(_0x3bbbb5){_0x40e050=_['map'](_0x3bbbb5,function(_0x14ec1e){return Number(_0x14ec1e[_0x5e7f('0x5b')]);});})[_0x5e7f('0x42')](function(){var _0x145b1e='SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20'+_0x3481a1;return db[_0x5e7f('0x56')][_0x5e7f('0x32')](_0x145b1e,{'type':db[_0x5e7f('0x58')][_0x5e7f('0x59')]['SELECT'],'raw':!![],'transaction':_0x280d51});})['then'](function(_0x510199){var _0x8aed7=_[_0x5e7f('0x2d')](_0x510199,function(_0x992707){return Number(_0x992707['VoiceQueueId']);});return db[_0x5e7f('0x5c')]['destroy']({'where':{'UserId':{'$in':_0x40e050},'VoiceQueueId':{'$in':_0x8aed7}},'transaction':_0x280d51});})[_0x5e7f('0x42')](function(){var _0x3683bc='SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20'+_0x3481a1;return db[_0x5e7f('0x56')][_0x5e7f('0x32')](_0x3683bc,{'type':db[_0x5e7f('0x58')][_0x5e7f('0x59')][_0x5e7f('0x5a')],'raw':!![],'transaction':_0x280d51});})[_0x5e7f('0x42')](function(_0x7b232e){var _0x34d76c=_[_0x5e7f('0x2d')](_0x7b232e,function(_0x5f3383){return Number(_0x5f3383[_0x5e7f('0x5d')]);});return db[_0x5e7f('0x5e')][_0x5e7f('0x55')]({'where':{'UserId':{'$in':_0x40e050},'MailQueueId':{'$in':_0x34d76c}},'transaction':_0x280d51});})[_0x5e7f('0x42')](function(){var _0x5dbbf5='SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20'+_0x3481a1;return db[_0x5e7f('0x56')][_0x5e7f('0x32')](_0x5dbbf5,{'type':db['Sequelize'][_0x5e7f('0x59')][_0x5e7f('0x5a')],'raw':!![],'transaction':_0x280d51});})['then'](function(_0x5242db){var _0x1fdd69=_['map'](_0x5242db,function(_0x131cca){return Number(_0x131cca[_0x5e7f('0x5f')]);});return db[_0x5e7f('0x60')][_0x5e7f('0x55')]({'where':{'UserId':{'$in':_0x40e050},'SmsQueueId':{'$in':_0x1fdd69}},'transaction':_0x280d51});})[_0x5e7f('0x42')](function(){var _0x422c77='SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20'+_0x3481a1;return db[_0x5e7f('0x56')]['query'](_0x422c77,{'type':db[_0x5e7f('0x58')]['QueryTypes'][_0x5e7f('0x5a')],'raw':!![],'transaction':_0x280d51});})[_0x5e7f('0x42')](function(_0x38c87c){var _0x9cbbb3=_[_0x5e7f('0x2d')](_0x38c87c,function(_0x427aa3){return Number(_0x427aa3['ChatQueueId']);});return db[_0x5e7f('0x61')][_0x5e7f('0x55')]({'where':{'UserId':{'$in':_0x40e050},'ChatQueueId':{'$in':_0x9cbbb3}},'transaction':_0x280d51});})[_0x5e7f('0x42')](function(){var _0x963f9a=_0x5e7f('0x62')+_0x3481a1;return db[_0x5e7f('0x56')][_0x5e7f('0x32')](_0x963f9a,{'type':db['Sequelize'][_0x5e7f('0x59')][_0x5e7f('0x5a')],'raw':!![],'transaction':_0x280d51});})['then'](function(_0x4c3b27){var _0x1c92f6=_[_0x5e7f('0x2d')](_0x4c3b27,function(_0x558966){return Number(_0x558966[_0x5e7f('0x63')]);});return db['UserFaxQueue'][_0x5e7f('0x55')]({'where':{'UserId':{'$in':_0x40e050},'FaxQueueId':{'$in':_0x1c92f6}},'transaction':_0x280d51});})[_0x5e7f('0x42')](function(){var _0x21b0a7=_0x5e7f('0x64')+_0x3481a1;return db[_0x5e7f('0x56')][_0x5e7f('0x32')](_0x21b0a7,{'type':db[_0x5e7f('0x58')]['QueryTypes'][_0x5e7f('0x5a')],'raw':!![],'transaction':_0x280d51});})[_0x5e7f('0x42')](function(_0x266aa8){var _0x4deafb=_[_0x5e7f('0x2d')](_0x266aa8,function(_0x50c8d1){return Number(_0x50c8d1[_0x5e7f('0x65')]);});return db['UserOpenchannelQueue']['destroy']({'where':{'UserId':{'$in':_0x40e050},'OpenchannelQueueId':{'$in':_0x4deafb}},'transaction':_0x280d51});})[_0x5e7f('0x42')](function(){var _0x20eb80=_0x5e7f('0x66')+_0x3481a1;return db[_0x5e7f('0x56')]['query'](_0x20eb80,{'type':db['Sequelize'][_0x5e7f('0x59')][_0x5e7f('0x5a')],'raw':!![],'transaction':_0x280d51});})[_0x5e7f('0x42')](function(_0x493f1f){var _0xf3a288=_[_0x5e7f('0x2d')](_0x493f1f,function(_0x4f6419){return Number(_0x4f6419[_0x5e7f('0x67')]);});return db['UserWhatsappQueue'][_0x5e7f('0x55')]({'where':{'UserId':{'$in':_0x40e050},'WhatsappQueueId':{'$in':_0xf3a288}},'transaction':_0x280d51});})[_0x5e7f('0x42')](function(){return db['TeamVoicePrefix'][_0x5e7f('0x4a')]({'where':{'TeamId':_0x3481a1}});})[_0x5e7f('0x42')](function(_0x11df13){if(_0x11df13===null){return;}return db['UserVoicePrefix'][_0x5e7f('0x55')]({'where':{'UserId':{'$in':_0x40e050},'VoicePrefixId':_0x11df13['VoicePrefixId']},'transaction':_0x280d51});})['then'](function(){return db[_0x5e7f('0x2e')][_0x5e7f('0x55')]({'where':{'id':_0x3481a1},'cascade':!![],'transaction':_0x280d51});})['then'](function(_0xedc093){if(_0xedc093===0x0){_0x2ca888[_0x5e7f('0x1e')](0x194);}else{return db[_0x5e7f('0x54')][_0x5e7f('0x55')]({'where':{'type':_0x5e7f('0x51'),'resourceId':_0x3481a1},'cascade':!![],'transaction':_0x280d51})['then'](function(){_0x2ca888[_0x5e7f('0x1f')](0xcc)['end']();});}})['catch'](function(_0x55f638){_0x2ca888['status'](0x1f4)[_0x5e7f('0x68')](_0x55f638);});});};exports[_0x5e7f('0x69')]=function(_0x26cf60,_0x5f3c75,_0x4d2f36){return db['Team']['findOne']({'where':{'id':_0x26cf60[_0x5e7f('0x48')]['id']}})['then'](handleEntityNotFound(_0x5f3c75,null))['then'](function(_0x5bb3bf){if(!_0x26cf60['query'][_0x5e7f('0x6a')]||!utils[_0x5e7f('0x6b')](_0x26cf60[_0x5e7f('0x32')]['channel'])){throw new db[(_0x5e7f('0x58'))][(_0x5e7f('0x6c'))](_0x5e7f('0x6d'));}var _0x4bf7a3={};var _0x5b5b11={};_0x5b5b11['model']=_['keys'](db[_[_0x5e7f('0x6e')](_0x26cf60[_0x5e7f('0x32')]['channel'][_0x5e7f('0x6f')]())+'Queue'][_0x5e7f('0x70')]);_0x5b5b11[_0x5e7f('0x32')]=_['keys'](_0x26cf60[_0x5e7f('0x32')]);_0x5b5b11[_0x5e7f('0x33')]=_[_0x5e7f('0x34')](_0x5b5b11[_0x5e7f('0x35')],_0x5b5b11[_0x5e7f('0x32')]);_0x4bf7a3[_0x5e7f('0x36')]=_['intersection'](_0x5b5b11['model'],qs[_0x5e7f('0x37')](_0x26cf60[_0x5e7f('0x32')][_0x5e7f('0x37')]));_0x4bf7a3['attributes']=_0x4bf7a3[_0x5e7f('0x36')][_0x5e7f('0x38')]?_0x4bf7a3[_0x5e7f('0x36')]:_0x5b5b11[_0x5e7f('0x35')];_0x4bf7a3[_0x5e7f('0x23')]=qs[_0x5e7f('0x23')](_0x26cf60[_0x5e7f('0x32')][_0x5e7f('0x23')]);_0x4bf7a3['offset']=qs[_0x5e7f('0x21')](_0x26cf60[_0x5e7f('0x32')]['offset']);_0x4bf7a3['order']=qs[_0x5e7f('0x3b')](_0x26cf60[_0x5e7f('0x32')][_0x5e7f('0x3b')]);_0x4bf7a3[_0x5e7f('0x3c')]=qs[_0x5e7f('0x33')](_['pick'](_0x26cf60[_0x5e7f('0x32')],_0x5b5b11[_0x5e7f('0x33')]));_0x4bf7a3=_[_0x5e7f('0x3e')]({},_0x4bf7a3,_0x26cf60['options']);return _0x5bb3bf[_0x5e7f('0x50')+_[_0x5e7f('0x6e')](_0x26cf60[_0x5e7f('0x32')][_0x5e7f('0x6a')][_0x5e7f('0x6f')]())+'Queues'](_0x4bf7a3);})['then'](respondWithResult(_0x5f3c75,null))['catch'](handleError(_0x5f3c75,null));};exports['addQueues']=function(_0x1bf35b,_0x5e4de8,_0x2b97ff){return db[_0x5e7f('0x2e')][_0x5e7f('0x71')]({'where':{'id':_0x1bf35b['params']['id']}})[_0x5e7f('0x42')](function(_0x58afe7){if(_0x58afe7){if(!_0x1bf35b['body'][_0x5e7f('0x6a')]||!utils['isValidChannel'](_0x1bf35b[_0x5e7f('0x4c')][_0x5e7f('0x6a')])){throw new db[(_0x5e7f('0x58'))][(_0x5e7f('0x6c'))](_0x5e7f('0x6d'));}return _0x58afe7[_0x5e7f('0x72')+_[_0x5e7f('0x6e')](_0x1bf35b[_0x5e7f('0x4c')][_0x5e7f('0x6a')][_0x5e7f('0x6f')]())+_0x5e7f('0x73')](_0x1bf35b['body']['ids']);}return null;})[_0x5e7f('0x42')](handleEntityNotFound(_0x5e4de8,null))[_0x5e7f('0x42')](respondWithStatusCode(_0x5e4de8,null))[_0x5e7f('0x47')](handleError(_0x5e4de8,null));};exports[_0x5e7f('0x74')]=function(_0x591765,_0x3f6ae7,_0x3ad0ec){return db[_0x5e7f('0x2e')]['findOne']({'where':{'id':_0x591765[_0x5e7f('0x48')]['id']}})[_0x5e7f('0x42')](function(_0x45e3e7){if(_0x45e3e7){if(!_0x591765['query'][_0x5e7f('0x6a')]||!utils[_0x5e7f('0x6b')](_0x591765[_0x5e7f('0x32')][_0x5e7f('0x6a')])){throw new db[(_0x5e7f('0x58'))][(_0x5e7f('0x6c'))](_0x5e7f('0x6d'));}return _0x45e3e7[_0x5e7f('0x75')+_[_0x5e7f('0x6e')](_0x591765[_0x5e7f('0x32')][_0x5e7f('0x6a')]['toLowerCase']())+'Queues'](_0x591765['query']['ids']);}return null;})[_0x5e7f('0x42')](handleEntityNotFound(_0x3f6ae7,null))['then'](respondWithStatusCode(_0x3f6ae7,null))[_0x5e7f('0x47')](handleError(_0x3f6ae7,null));};exports[_0x5e7f('0x76')]=function(_0x2f5502,_0x8c542){var _0x5c2584=_[_0x5e7f('0x77')](_0x2f5502[_0x5e7f('0x4c')]['ids'])?_0x2f5502[_0x5e7f('0x4c')][_0x5e7f('0x78')]:[_0x2f5502[_0x5e7f('0x4c')][_0x5e7f('0x78')]];var _0x36e107=_0x2f5502[_0x5e7f('0x48')]['id'];return db['Team'][_0x5e7f('0x4a')]({'where':{'id':_0x36e107}})[_0x5e7f('0x42')](handleEntityNotFound(_0x8c542,null))['then'](function(_0x48910d){if(_0x48910d){var _0x54c49e=[_0x5e7f('0x79'),_0x5e7f('0x7a'),_0x5e7f('0x7b'),'Sms',_0x5e7f('0x7c'),_0x5e7f('0x7d'),_0x5e7f('0x7e')];return db[_0x5e7f('0x56')][_0x5e7f('0x57')](function(_0x2e0bb0){var _0x3210cd=_[_0x5e7f('0x2d')](_0x54c49e,function(_0x76d2ab){var _0x218095={'attributes':['id','name']};if(_0x76d2ab==='Voice'){_0x218095['through']={'attributes':['penalty']};}return _0x48910d[_0x5e7f('0x50')+_0x76d2ab+_0x5e7f('0x73')](_0x218095)[_0x5e7f('0x42')](function(_0x5d588d){var _0x3aa656=_[_0x5e7f('0x2d')](_0x5d588d,function(_0x350675){var _0x54c8ea=_[_0x5e7f('0x2d')](_0x5c2584,function(_0x4fc30f){var _0x22c54a={'where':{'UserId':_0x4fc30f,[_0x76d2ab+'QueueId']:_0x350675['id']},'transaction':_0x2e0bb0};if(_0x76d2ab==='Voice'){_0x22c54a[_0x5e7f('0x1a')]={'penalty':_0x350675['TeamVoiceQueue'][_0x5e7f('0x7f')]};}return db[_0x5e7f('0x80')+_0x76d2ab+'Queue'][_0x5e7f('0x81')](_0x22c54a)[_0x5e7f('0x42')](function(){socket['emit']('user'+_0x76d2ab+_0x5e7f('0x82'),{'UserId':_0x4fc30f,[_0x76d2ab+'QueueId']:_0x350675['id']});if(_0x76d2ab!==_0x5e7f('0x79')){return;}return db[_0x5e7f('0x80')][_0x5e7f('0x45')]({'where':{'id':_0x5c2584,'online':0x1},'attributes':['id',_0x5e7f('0x2b'),_0x5e7f('0x83'),_0x5e7f('0x84'),_0x5e7f('0x85')],'raw':!![]})[_0x5e7f('0x42')](function(_0x221dc5){var _0x517ee3=_[_0x5e7f('0x2d')](_0x221dc5,function(_0x35a852){return db[_0x5e7f('0x86')][_0x5e7f('0x87')]({'membername':_0x35a852[_0x5e7f('0x2b')],'UserId':_0x35a852['id'],'queue_name':_0x350675[_0x5e7f('0x2b')],'VoiceQueueId':_0x350675['id'],'interface':_[_0x5e7f('0x88')](_0x35a852[_0x5e7f('0x85')])?util[_0x5e7f('0x89')](_0x5e7f('0x8a'),_0x35a852['name']):_0x35a852[_0x5e7f('0x85')],'paused':_0x35a852[_0x5e7f('0x84')]||![],'penalty':_0x350675[_0x5e7f('0x8b')][_0x5e7f('0x7f')]},{'transaction':_0x2e0bb0});});return Promise[_0x5e7f('0x8c')](_0x517ee3);});});});return Promise[_0x5e7f('0x8c')](_0x54c8ea);});return Promise[_0x5e7f('0x8c')](_0x3aa656);})['then'](function(){return db[_0x5e7f('0x8d')][_0x5e7f('0x71')]({'where':{'teamId':_0x36e107}})[_0x5e7f('0x42')](function(_0x358d5f){if(_0x358d5f){var _0x493105=_[_0x5e7f('0x2d')](_0x5c2584,function(_0x485660){db[_0x5e7f('0x8e')][_0x5e7f('0x87')]({'UserId':_0x485660,'VoicePrefixId':_0x358d5f[_0x5e7f('0x8f')]});});return Promise['all'](_0x493105);}});});});return Promise[_0x5e7f('0x8c')](_0x3210cd)['then'](function(){return _0x48910d[_0x5e7f('0x76')](_0x5c2584,{'transaction':_0x2e0bb0})[_0x5e7f('0x90')](function(_0x44153a){return _0x44153a;});});});}})[_0x5e7f('0x42')](respondWithResult(_0x8c542,null))[_0x5e7f('0x47')](handleError(_0x8c542,null));};exports[_0x5e7f('0x91')]=function(_0x3dd922,_0x392e9c){var _0x1644a2=_['isArray'](_0x3dd922[_0x5e7f('0x32')][_0x5e7f('0x78')])?_0x3dd922[_0x5e7f('0x32')][_0x5e7f('0x78')]:[_0x3dd922[_0x5e7f('0x32')][_0x5e7f('0x78')]];var _0x2eb183=_0x3dd922[_0x5e7f('0x48')]['id'];return db['Team']['find']({'where':{'id':_0x2eb183}})[_0x5e7f('0x42')](handleEntityNotFound(_0x392e9c,null))[_0x5e7f('0x42')](function(_0x2e0577){if(_0x2e0577){var _0x3cb945=[_0x5e7f('0x79'),_0x5e7f('0x7a'),'Mail',_0x5e7f('0x92'),_0x5e7f('0x7c'),'Openchannel',_0x5e7f('0x7e')];return db[_0x5e7f('0x56')][_0x5e7f('0x57')](function(_0x357fff){var _0x38a156=_[_0x5e7f('0x2d')](_0x3cb945,function(_0x4320eb){var _0xa0e3fd={'attributes':['id',_0x5e7f('0x2b')]};return _0x2e0577[_0x5e7f('0x50')+_0x4320eb+_0x5e7f('0x73')](_0xa0e3fd)['then'](function(_0x55b4a){var _0x598013=_[_0x5e7f('0x2d')](_0x55b4a,function(_0x35151b){return _0x35151b[_0x5e7f('0x91')](_0x1644a2,{'transaction':_0x357fff})[_0x5e7f('0x42')](function(){var _0x183b8a=_[_0x5e7f('0x2d')](_0x1644a2,function(_0x23f4f2){socket[_0x5e7f('0x93')](_0x5e7f('0x4d')+_0x4320eb+_0x5e7f('0x94'),{'UserId':Number(_0x23f4f2),[_0x4320eb+_0x5e7f('0x95')]:_0x35151b['id']});if(_0x4320eb!=='Voice'){return;}return db[_0x5e7f('0x86')][_0x5e7f('0x55')]({'where':{'VoiceQueueId':_0x35151b['id'],'UserId':_0x23f4f2},'transaction':_0x357fff});});return Promise[_0x5e7f('0x8c')](_0x183b8a);});});return Promise[_0x5e7f('0x8c')](_0x598013);});});return Promise[_0x5e7f('0x8c')](_0x38a156)[_0x5e7f('0x42')](function(){return _0x2e0577[_0x5e7f('0x91')](_0x1644a2,{'transaction':_0x357fff});})[_0x5e7f('0x42')](function(){return db[_0x5e7f('0x8d')][_0x5e7f('0x71')]({'where':{'teamId':_0x2eb183}})[_0x5e7f('0x42')](function(_0xaf4056){if(_0xaf4056){var _0xe0d410=_['map'](_0x1644a2,function(_0x5d91c4){db[_0x5e7f('0x8e')][_0x5e7f('0x55')]({'where':{'UserId':_0x5d91c4,'VoicePrefixId':_0xaf4056[_0x5e7f('0x8f')]}});});return Promise[_0x5e7f('0x8c')](_0xe0d410);}});});});}})[_0x5e7f('0x42')](respondWithStatusCode(_0x392e9c,null))[_0x5e7f('0x47')](handleError(_0x392e9c,null));};exports[_0x5e7f('0x96')]=function(_0x3caf1f,_0x5d04d1,_0x5c7554){var _0x10b948={};var _0xa11881={};var _0x5b3467;var _0x431d87;return db[_0x5e7f('0x2e')][_0x5e7f('0x71')]({'where':{'id':_0x3caf1f[_0x5e7f('0x48')]['id']}})[_0x5e7f('0x42')](handleEntityNotFound(_0x5d04d1,null))[_0x5e7f('0x42')](function(_0x4cbe46){if(_0x4cbe46){_0x5b3467=_0x4cbe46;_0xa11881[_0x5e7f('0x35')]=_[_0x5e7f('0x49')](db['User'][_0x5e7f('0x70')]);_0xa11881[_0x5e7f('0x32')]=_[_0x5e7f('0x49')](_0x3caf1f['query']);_0xa11881[_0x5e7f('0x33')]=_['intersection'](_0xa11881[_0x5e7f('0x35')],_0xa11881[_0x5e7f('0x32')]);_0x10b948[_0x5e7f('0x36')]=_[_0x5e7f('0x34')](_0xa11881[_0x5e7f('0x35')],qs[_0x5e7f('0x37')](_0x3caf1f['query'][_0x5e7f('0x37')]));_0x10b948[_0x5e7f('0x36')]=_0x10b948[_0x5e7f('0x36')][_0x5e7f('0x38')]?_0x10b948[_0x5e7f('0x36')]:_0xa11881[_0x5e7f('0x35')];_0x10b948[_0x5e7f('0x97')]=qs[_0x5e7f('0x3b')](_0x3caf1f[_0x5e7f('0x32')][_0x5e7f('0x3b')]);_0x10b948[_0x5e7f('0x3c')]=qs[_0x5e7f('0x33')](_[_0x5e7f('0x3d')](_0x3caf1f[_0x5e7f('0x32')],_0xa11881[_0x5e7f('0x33')]));if(_0x3caf1f[_0x5e7f('0x32')][_0x5e7f('0x40')]){_0x10b948[_0x5e7f('0x3c')]=_[_0x5e7f('0x3e')](_0x10b948[_0x5e7f('0x3c')],{'$or':_['map'](_0x10b948['attributes'],function(_0x370e21){var _0x409059={};_0x409059[_0x370e21]={'$like':'%'+_0x3caf1f[_0x5e7f('0x32')][_0x5e7f('0x40')]+'%'};return _0x409059;})});}_0x10b948=_[_0x5e7f('0x3e')]({},_0x10b948,_0x3caf1f[_0x5e7f('0x41')]);return _0x5b3467[_0x5e7f('0x96')](_0x10b948);}})[_0x5e7f('0x42')](function(_0x4613d5){if(_0x4613d5){_0x431d87=_0x4613d5[_0x5e7f('0x38')];if(!_0x3caf1f[_0x5e7f('0x32')][_0x5e7f('0x39')](_0x5e7f('0x3a'))){_0x10b948['limit']=qs[_0x5e7f('0x23')](_0x3caf1f[_0x5e7f('0x32')][_0x5e7f('0x23')]);_0x10b948[_0x5e7f('0x21')]=qs[_0x5e7f('0x21')](_0x3caf1f[_0x5e7f('0x32')][_0x5e7f('0x21')]);}return _0x5b3467[_0x5e7f('0x96')](_0x10b948);}})[_0x5e7f('0x42')](function(_0x3e4cdf){if(_0x3e4cdf){return _0x3e4cdf?{'count':_0x431d87,'rows':_0x3e4cdf}:null;}})[_0x5e7f('0x42')](respondWithResult(_0x5d04d1,null))[_0x5e7f('0x47')](handleError(_0x5d04d1,null));};
\ No newline at end of file
+var _0xdabc=['undefined','count','set','Content-Range','json','apply','reject','save','update','then','destroy','get','Teams','UserProfileResource','error','stack','name','send','map','Team','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','limit','order','sort','where','filter','merge','VIRTUAL','options','findAll','rows','show','params','keys','includeAll','include','catch','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','autoAssociation','create','getQueues','channel','isValidChannel','Sequelize','ValidationError','Unknown\x20channel','Queue','capitalize','toLowerCase','addQueues','findOne','add','ids','removeQueues','remove','Queues','addAgents','Sms','Fax','Openchannel','Whatsapp','sequelize','Voice','through','penalty','QueueId','User','findOrCreate','Queue:save','online','voicePause','upsert','isNil','interface','format','SIP/%s','all','spread','removeAgents','Chat','Mail','transaction','parse','Queue:remove','getAgents','nolimit','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../mysqldb','redis','defaults','localhost','./team.socket','register','sendStatus','status','end','offset'];(function(_0x140357,_0x6670bd){var _0x4fdf00=function(_0x527977){while(--_0x527977){_0x140357['push'](_0x140357['shift']());}};_0x4fdf00(++_0x6670bd);}(_0xdabc,0x16b));var _0xcdab=function(_0x58b3ca,_0x4183bc){_0x58b3ca=_0x58b3ca-0x0;var _0x1dfab9=_0xdabc[_0x58b3ca];return _0x1dfab9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xcdab('0x0'));var zipdir=require(_0xcdab('0x1'));var jsonpatch=require(_0xcdab('0x2'));var rp=require('request-promise');var moment=require(_0xcdab('0x3'));var BPromise=require(_0xcdab('0x4'));var Mustache=require(_0xcdab('0x5'));var util=require(_0xcdab('0x6'));var path=require(_0xcdab('0x7'));var sox=require(_0xcdab('0x8'));var csv=require(_0xcdab('0x9'));var ejs=require(_0xcdab('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xcdab('0xb'));var squel=require(_0xcdab('0xc'));var crypto=require(_0xcdab('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xcdab('0xe'));var toCsv=require(_0xcdab('0x9'));var querystring=require(_0xcdab('0xf'));var Papa=require('papaparse');var Redis=require(_0xcdab('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xcdab('0x11'));var as=require(_0xcdab('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xcdab('0x13'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xcdab('0x14'))['db'];config[_0xcdab('0x15')]=_[_0xcdab('0x16')](config[_0xcdab('0x15')],{'host':_0xcdab('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xcdab('0x18'))[_0xcdab('0x19')](socket);function respondWithStatusCode(_0x516186,_0x54e2a6){_0x54e2a6=_0x54e2a6||0xcc;return function(_0x5956eb){if(_0x5956eb){return _0x516186[_0xcdab('0x1a')](_0x54e2a6);}return _0x516186[_0xcdab('0x1b')](_0x54e2a6)[_0xcdab('0x1c')]();};}function respondWithResult(_0x12ea56,_0x2bc7d8){_0x2bc7d8=_0x2bc7d8||0xc8;return function(_0x29fd58){if(_0x29fd58){return _0x12ea56['status'](_0x2bc7d8)['json'](_0x29fd58);}};}function respondWithFilteredResult(_0x2c099d,_0x332739){return function(_0x5e21e6){if(_0x5e21e6){var _0xef41c6=typeof _0x332739[_0xcdab('0x1d')]==='undefined'&&typeof _0x332739['limit']===_0xcdab('0x1e');var _0x536d2d=_0x5e21e6['count'];var _0x2527b2=_0xef41c6?0x0:_0x332739[_0xcdab('0x1d')];var _0x3a6a16=_0xef41c6?_0x5e21e6[_0xcdab('0x1f')]:_0x332739[_0xcdab('0x1d')]+_0x332739['limit'];var _0x32d72f;if(_0x3a6a16>=_0x536d2d){_0x3a6a16=_0x536d2d;_0x32d72f=0xc8;}else{_0x32d72f=0xce;}_0x2c099d[_0xcdab('0x1b')](_0x32d72f);return _0x2c099d[_0xcdab('0x20')](_0xcdab('0x21'),_0x2527b2+'-'+_0x3a6a16+'/'+_0x536d2d)[_0xcdab('0x22')](_0x5e21e6);}return null;};}function patchUpdates(_0x547832){return function(_0x393255){try{jsonpatch[_0xcdab('0x23')](_0x393255,_0x547832,!![]);}catch(_0x2b9556){return BPromise[_0xcdab('0x24')](_0x2b9556);}return _0x393255[_0xcdab('0x25')]();};}function saveUpdates(_0x3bb70a,_0x392cae){return function(_0x11127b){if(_0x11127b){return _0x11127b[_0xcdab('0x26')](_0x3bb70a)[_0xcdab('0x27')](function(_0x5dc824){return _0x5dc824;});}return null;};}function removeEntity(_0x71a8da,_0x5b5be9){return function(_0xfef032){if(_0xfef032){return _0xfef032[_0xcdab('0x28')]()[_0xcdab('0x27')](function(){var _0xee92eb=_0xfef032[_0xcdab('0x29')]({'plain':!![]});var _0x5ca8c7=_0xcdab('0x2a');return db[_0xcdab('0x2b')][_0xcdab('0x28')]({'where':{'type':_0x5ca8c7,'resourceId':_0xee92eb['id']}})[_0xcdab('0x27')](function(){return _0xfef032;});})['then'](function(){_0x71a8da[_0xcdab('0x1b')](0xcc)[_0xcdab('0x1c')]();});}};}function handleEntityNotFound(_0x4243ef,_0x1ffdd8){return function(_0x2afd6a){if(!_0x2afd6a){_0x4243ef[_0xcdab('0x1a')](0x194);}return _0x2afd6a;};}function handleError(_0x135d6c,_0x5f4c66){_0x5f4c66=_0x5f4c66||0x1f4;return function(_0x47441e){logger[_0xcdab('0x2c')](_0x47441e[_0xcdab('0x2d')]);if(_0x47441e[_0xcdab('0x2e')]){delete _0x47441e[_0xcdab('0x2e')];}_0x135d6c['status'](_0x5f4c66)[_0xcdab('0x2f')](_0x47441e);};}exports['index']=function(_0x16aeb3,_0x46b4b6){var _0x13372b={},_0x48cf9f={},_0x32005f={'count':0x0,'rows':[]};var _0x5ab328=_[_0xcdab('0x30')](db[_0xcdab('0x31')][_0xcdab('0x32')],function(_0x3c15fe){return{'name':_0x3c15fe[_0xcdab('0x33')],'type':_0x3c15fe[_0xcdab('0x34')]['key']};});_0x48cf9f[_0xcdab('0x35')]=_[_0xcdab('0x30')](_0x5ab328,_0xcdab('0x2e'));_0x48cf9f['query']=_['keys'](_0x16aeb3[_0xcdab('0x36')]);_0x48cf9f[_0xcdab('0x37')]=_[_0xcdab('0x38')](_0x48cf9f[_0xcdab('0x35')],_0x48cf9f['query']);_0x13372b[_0xcdab('0x39')]=_[_0xcdab('0x38')](_0x48cf9f[_0xcdab('0x35')],qs[_0xcdab('0x3a')](_0x16aeb3[_0xcdab('0x36')][_0xcdab('0x3a')]));_0x13372b['attributes']=_0x13372b['attributes'][_0xcdab('0x3b')]?_0x13372b['attributes']:_0x48cf9f[_0xcdab('0x35')];if(!_0x16aeb3[_0xcdab('0x36')][_0xcdab('0x3c')]('nolimit')){_0x13372b['limit']=qs[_0xcdab('0x3d')](_0x16aeb3[_0xcdab('0x36')][_0xcdab('0x3d')]);_0x13372b[_0xcdab('0x1d')]=qs[_0xcdab('0x1d')](_0x16aeb3[_0xcdab('0x36')][_0xcdab('0x1d')]);}_0x13372b[_0xcdab('0x3e')]=qs['sort'](_0x16aeb3[_0xcdab('0x36')][_0xcdab('0x3f')]);_0x13372b[_0xcdab('0x40')]=qs[_0xcdab('0x37')](_['pick'](_0x16aeb3[_0xcdab('0x36')],_0x48cf9f['filters']),_0x5ab328);if(_0x16aeb3['query'][_0xcdab('0x41')]){_0x13372b[_0xcdab('0x40')]=_[_0xcdab('0x42')](_0x13372b['where'],{'$or':_[_0xcdab('0x30')](_0x5ab328,function(_0x256576){if(_0x256576[_0xcdab('0x34')]!==_0xcdab('0x43')){var _0x5d9b70={};_0x5d9b70[_0x256576[_0xcdab('0x2e')]]={'$like':'%'+_0x16aeb3['query'][_0xcdab('0x41')]+'%'};return _0x5d9b70;}})});}_0x13372b=_[_0xcdab('0x42')]({},_0x13372b,_0x16aeb3[_0xcdab('0x44')]);var _0x55d5d3={'where':_0x13372b['where']};return db[_0xcdab('0x31')]['count'](_0x55d5d3)[_0xcdab('0x27')](function(_0x21b678){_0x32005f[_0xcdab('0x1f')]=_0x21b678;if(_0x16aeb3[_0xcdab('0x36')]['includeAll']){_0x13372b['include']=[{'all':!![]}];}return db[_0xcdab('0x31')][_0xcdab('0x45')](_0x13372b);})[_0xcdab('0x27')](function(_0x10d0bd){_0x32005f[_0xcdab('0x46')]=_0x10d0bd;return _0x32005f;})[_0xcdab('0x27')](respondWithFilteredResult(_0x46b4b6,_0x13372b))['catch'](handleError(_0x46b4b6,null));};exports[_0xcdab('0x47')]=function(_0x3d2b8a,_0x373eac){var _0x26e653={'raw':![],'where':{'id':_0x3d2b8a[_0xcdab('0x48')]['id']}},_0x37c837={};_0x37c837[_0xcdab('0x35')]=_[_0xcdab('0x49')](db[_0xcdab('0x31')]['rawAttributes']);_0x37c837[_0xcdab('0x36')]=_[_0xcdab('0x49')](_0x3d2b8a['query']);_0x37c837[_0xcdab('0x37')]=_['intersection'](_0x37c837[_0xcdab('0x35')],_0x37c837[_0xcdab('0x36')]);_0x26e653[_0xcdab('0x39')]=_[_0xcdab('0x38')](_0x37c837['model'],qs[_0xcdab('0x3a')](_0x3d2b8a[_0xcdab('0x36')][_0xcdab('0x3a')]));_0x26e653['attributes']=_0x26e653[_0xcdab('0x39')][_0xcdab('0x3b')]?_0x26e653[_0xcdab('0x39')]:_0x37c837[_0xcdab('0x35')];if(_0x3d2b8a['query'][_0xcdab('0x4a')]){_0x26e653[_0xcdab('0x4b')]=[{'all':!![]}];}_0x26e653=_['merge']({},_0x26e653,_0x3d2b8a[_0xcdab('0x44')]);return db[_0xcdab('0x31')]['find'](_0x26e653)[_0xcdab('0x27')](handleEntityNotFound(_0x373eac,null))['then'](respondWithResult(_0x373eac,null))[_0xcdab('0x4c')](handleError(_0x373eac,null));};exports['create']=function(_0x2fcbe0,_0x482d3c){return db[_0xcdab('0x31')]['create'](_0x2fcbe0[_0xcdab('0x4d')],{})['then'](function(_0x5ebc5e){var _0x197bb0=_0x2fcbe0[_0xcdab('0x4e')][_0xcdab('0x29')]({'plain':!![]});if(!_0x197bb0)throw new Error(_0xcdab('0x4f'));if(_0x197bb0[_0xcdab('0x50')]===_0xcdab('0x4e')){var _0x358c65=_0x5ebc5e[_0xcdab('0x29')]({'plain':!![]});var _0xa7301=_0xcdab('0x2a');return db[_0xcdab('0x51')][_0xcdab('0x52')]({'where':{'name':_0xa7301,'userProfileId':_0x197bb0['userProfileId']},'raw':!![]})[_0xcdab('0x27')](function(_0x533574){if(_0x533574&&_0x533574[_0xcdab('0x53')]===0x0){return db[_0xcdab('0x2b')][_0xcdab('0x54')]({'name':_0x358c65[_0xcdab('0x2e')],'resourceId':_0x358c65['id'],'type':_0x533574[_0xcdab('0x2e')],'sectionId':_0x533574['id']},{})[_0xcdab('0x27')](function(){return _0x5ebc5e;});}else{return _0x5ebc5e;}})['catch'](function(_0x41c1a2){logger[_0xcdab('0x2c')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x41c1a2);throw _0x41c1a2;});}return _0x5ebc5e;})['then'](respondWithResult(_0x482d3c,0xc9))[_0xcdab('0x4c')](handleError(_0x482d3c,null));};exports[_0xcdab('0x26')]=function(_0x329249,_0x542b9d){if(_0x329249[_0xcdab('0x4d')]['id']){delete _0x329249[_0xcdab('0x4d')]['id'];}return db['Team'][_0xcdab('0x52')]({'where':{'id':_0x329249[_0xcdab('0x48')]['id']}})[_0xcdab('0x27')](handleEntityNotFound(_0x542b9d,null))[_0xcdab('0x27')](saveUpdates(_0x329249[_0xcdab('0x4d')],null))[_0xcdab('0x27')](respondWithResult(_0x542b9d,null))[_0xcdab('0x4c')](handleError(_0x542b9d,null));};exports[_0xcdab('0x28')]=function(_0x1f8f10,_0x5bc16a){return db[_0xcdab('0x31')][_0xcdab('0x52')]({'where':{'id':_0x1f8f10[_0xcdab('0x48')]['id']}})[_0xcdab('0x27')](handleEntityNotFound(_0x5bc16a,null))[_0xcdab('0x27')](removeEntity(_0x5bc16a,null))[_0xcdab('0x4c')](handleError(_0x5bc16a,null));};exports[_0xcdab('0x55')]=function(_0x4d2dc1,_0x3d8aa1,_0x5b7d4b){return db[_0xcdab('0x31')]['findOne']({'where':{'id':_0x4d2dc1[_0xcdab('0x48')]['id']}})[_0xcdab('0x27')](handleEntityNotFound(_0x3d8aa1,null))['then'](function(_0x4d2a7d){if(!_0x4d2dc1[_0xcdab('0x36')][_0xcdab('0x56')]||!utils[_0xcdab('0x57')](_0x4d2dc1[_0xcdab('0x36')][_0xcdab('0x56')])){throw new db[(_0xcdab('0x58'))][(_0xcdab('0x59'))](_0xcdab('0x5a'));}var _0x23e685={};var _0x31f288={};_0x31f288[_0xcdab('0x35')]=_[_0xcdab('0x49')](db[_['capitalize'](_0x4d2dc1[_0xcdab('0x36')][_0xcdab('0x56')]['toLowerCase']())+_0xcdab('0x5b')][_0xcdab('0x32')]);_0x31f288[_0xcdab('0x36')]=_[_0xcdab('0x49')](_0x4d2dc1[_0xcdab('0x36')]);_0x31f288['filters']=_['intersection'](_0x31f288[_0xcdab('0x35')],_0x31f288[_0xcdab('0x36')]);_0x23e685[_0xcdab('0x39')]=_[_0xcdab('0x38')](_0x31f288[_0xcdab('0x35')],qs[_0xcdab('0x3a')](_0x4d2dc1[_0xcdab('0x36')][_0xcdab('0x3a')]));_0x23e685[_0xcdab('0x39')]=_0x23e685[_0xcdab('0x39')][_0xcdab('0x3b')]?_0x23e685[_0xcdab('0x39')]:_0x31f288['model'];_0x23e685[_0xcdab('0x3d')]=qs[_0xcdab('0x3d')](_0x4d2dc1[_0xcdab('0x36')][_0xcdab('0x3d')]);_0x23e685[_0xcdab('0x1d')]=qs[_0xcdab('0x1d')](_0x4d2dc1['query'][_0xcdab('0x1d')]);_0x23e685[_0xcdab('0x3e')]=qs[_0xcdab('0x3f')](_0x4d2dc1['query'][_0xcdab('0x3f')]);_0x23e685[_0xcdab('0x40')]=qs[_0xcdab('0x37')](_['pick'](_0x4d2dc1['query'],_0x31f288[_0xcdab('0x37')]));_0x23e685=_['merge']({},_0x23e685,_0x4d2dc1[_0xcdab('0x44')]);return _0x4d2a7d[_0xcdab('0x29')+_[_0xcdab('0x5c')](_0x4d2dc1[_0xcdab('0x36')][_0xcdab('0x56')][_0xcdab('0x5d')]())+'Queues'](_0x23e685);})[_0xcdab('0x27')](respondWithResult(_0x3d8aa1,null))['catch'](handleError(_0x3d8aa1,null));};exports[_0xcdab('0x5e')]=function(_0x5d0a1d,_0x35b016,_0x552eaa){return db[_0xcdab('0x31')][_0xcdab('0x5f')]({'where':{'id':_0x5d0a1d[_0xcdab('0x48')]['id']}})[_0xcdab('0x27')](function(_0x4d56ac){if(_0x4d56ac){if(!_0x5d0a1d[_0xcdab('0x4d')][_0xcdab('0x56')]||!utils[_0xcdab('0x57')](_0x5d0a1d[_0xcdab('0x4d')][_0xcdab('0x56')])){throw new db[(_0xcdab('0x58'))][(_0xcdab('0x59'))]('Unknown\x20channel');}return _0x4d56ac[_0xcdab('0x60')+_[_0xcdab('0x5c')](_0x5d0a1d[_0xcdab('0x4d')][_0xcdab('0x56')][_0xcdab('0x5d')]())+'Queues'](_0x5d0a1d[_0xcdab('0x4d')][_0xcdab('0x61')]);}return null;})[_0xcdab('0x27')](handleEntityNotFound(_0x35b016,null))[_0xcdab('0x27')](respondWithStatusCode(_0x35b016,null))['catch'](handleError(_0x35b016,null));};exports[_0xcdab('0x62')]=function(_0x91ae09,_0xe15945,_0x5d8a81){return db[_0xcdab('0x31')][_0xcdab('0x5f')]({'where':{'id':_0x91ae09['params']['id']}})['then'](function(_0x5c5c07){if(_0x5c5c07){if(!_0x91ae09['query'][_0xcdab('0x56')]||!utils[_0xcdab('0x57')](_0x91ae09[_0xcdab('0x36')][_0xcdab('0x56')])){throw new db[(_0xcdab('0x58'))][(_0xcdab('0x59'))](_0xcdab('0x5a'));}return _0x5c5c07[_0xcdab('0x63')+_[_0xcdab('0x5c')](_0x91ae09['query'][_0xcdab('0x56')][_0xcdab('0x5d')]())+_0xcdab('0x64')](_0x91ae09[_0xcdab('0x36')][_0xcdab('0x61')]);}return null;})['then'](handleEntityNotFound(_0xe15945,null))[_0xcdab('0x27')](respondWithStatusCode(_0xe15945,null))['catch'](handleError(_0xe15945,null));};exports[_0xcdab('0x65')]=function(_0x4fb9bd,_0x3c3707){return db['Team'][_0xcdab('0x52')]({'where':{'id':_0x4fb9bd[_0xcdab('0x48')]['id']}})[_0xcdab('0x27')](handleEntityNotFound(_0x3c3707,null))[_0xcdab('0x27')](function(_0x210b62){if(_0x210b62){var _0x570508=['Voice','Chat','Mail',_0xcdab('0x66'),_0xcdab('0x67'),_0xcdab('0x68'),_0xcdab('0x69')];return db[_0xcdab('0x6a')]['transaction'](function(_0x4ee0b7){var _0x3251b4=_[_0xcdab('0x30')](_0x570508,function(_0x209d3f){var _0x4003b8={'attributes':['id',_0xcdab('0x2e')]};if(_0x209d3f===_0xcdab('0x6b')){_0x4003b8[_0xcdab('0x6c')]={'attributes':[_0xcdab('0x6d')]};}return _0x210b62[_0xcdab('0x29')+_0x209d3f+'Queues'](_0x4003b8)['then'](function(_0x2dfb9d){var _0x314438=_[_0xcdab('0x30')](_0x2dfb9d,function(_0x1a08bb){var _0x3b4b0c=_[_0xcdab('0x30')](_0x4fb9bd['body'][_0xcdab('0x61')],function(_0x504a65){var _0x574a39={'where':{'UserId':_0x504a65,[_0x209d3f+_0xcdab('0x6e')]:_0x1a08bb['id']},'transaction':_0x4ee0b7};if(_0x209d3f===_0xcdab('0x6b')){_0x574a39['defaults']={'penalty':_0x1a08bb['TeamVoiceQueue'][_0xcdab('0x6d')]};}return db[_0xcdab('0x6f')+_0x209d3f+_0xcdab('0x5b')][_0xcdab('0x70')](_0x574a39)[_0xcdab('0x27')](function(){socket['emit'](_0xcdab('0x4e')+_0x209d3f+_0xcdab('0x71'),{'UserId':_0x504a65,[_0x209d3f+_0xcdab('0x6e')]:_0x1a08bb['id']});if(_0x209d3f!==_0xcdab('0x6b'))return;return db[_0xcdab('0x6f')][_0xcdab('0x45')]({'where':{'id':_0x4fb9bd[_0xcdab('0x4d')][_0xcdab('0x61')],'online':0x1},'attributes':['id',_0xcdab('0x2e'),_0xcdab('0x72'),_0xcdab('0x73'),'interface'],'raw':!![]})['then'](function(_0x42b85f){var _0x1ccaa0=_[_0xcdab('0x30')](_0x42b85f,function(_0x1ebc54){return db['UserVoiceQueueRt'][_0xcdab('0x74')]({'membername':_0x1ebc54[_0xcdab('0x2e')],'UserId':_0x1ebc54['id'],'queue_name':_0x1a08bb['name'],'VoiceQueueId':_0x1a08bb['id'],'interface':_[_0xcdab('0x75')](_0x1ebc54[_0xcdab('0x76')])?util[_0xcdab('0x77')](_0xcdab('0x78'),_0x1ebc54[_0xcdab('0x2e')]):_0x1ebc54[_0xcdab('0x76')],'paused':_0x1ebc54[_0xcdab('0x73')]||![],'penalty':_0x1a08bb['TeamVoiceQueue'][_0xcdab('0x6d')]},{'transaction':_0x4ee0b7});});return Promise[_0xcdab('0x79')](_0x1ccaa0);});});});return Promise['all'](_0x3b4b0c);});return Promise[_0xcdab('0x79')](_0x314438);});});return Promise[_0xcdab('0x79')](_0x3251b4)['then'](function(){return _0x210b62[_0xcdab('0x65')](_0x4fb9bd[_0xcdab('0x4d')]['ids'],{'transaction':_0x4ee0b7})[_0xcdab('0x7a')](function(_0x4c0d53){return _0x4c0d53;});});});}})['then'](respondWithResult(_0x3c3707,null))[_0xcdab('0x4c')](handleError(_0x3c3707,null));};exports[_0xcdab('0x7b')]=function(_0xe5da63,_0x4e5499){return db[_0xcdab('0x31')][_0xcdab('0x52')]({'where':{'id':_0xe5da63['params']['id']}})['then'](handleEntityNotFound(_0x4e5499,null))[_0xcdab('0x27')](function(_0x334c54){if(_0x334c54){var _0x1fd39b=[_0xcdab('0x6b'),_0xcdab('0x7c'),_0xcdab('0x7d'),_0xcdab('0x66'),'Fax',_0xcdab('0x68'),'Whatsapp'];return db[_0xcdab('0x6a')][_0xcdab('0x7e')](function(_0x1048c2){var _0x1a5faa=_['map'](_0x1fd39b,function(_0x5f5b4d){var _0x57c3e1={'attributes':['id',_0xcdab('0x2e')]};return _0x334c54['get'+_0x5f5b4d+_0xcdab('0x64')](_0x57c3e1)[_0xcdab('0x27')](function(_0x22d8bc){var _0x3b5444=_[_0xcdab('0x30')](_0x22d8bc,function(_0x5c8b30){return _0x5c8b30[_0xcdab('0x7b')](_0xe5da63['query'][_0xcdab('0x61')],{'transaction':_0x1048c2})['then'](function(){var _0x1bd9cd=JSON[_0xcdab('0x7f')]('['+_0xe5da63['query']['ids']+']');var _0x406e43=_['map'](_0x1bd9cd,function(_0x1b5fdd){socket['emit'](_0xcdab('0x4e')+_0x5f5b4d+_0xcdab('0x80'),{'UserId':Number(_0x1b5fdd),[_0x5f5b4d+'QueueId']:_0x5c8b30['id']});if(_0x5f5b4d!==_0xcdab('0x6b'))return;return db['UserVoiceQueueRt'][_0xcdab('0x28')]({'where':{'VoiceQueueId':_0x5c8b30['id'],'UserId':_0x1b5fdd},'transaction':_0x1048c2});});return Promise[_0xcdab('0x79')](_0x406e43);});});return Promise['all'](_0x3b5444);});});return Promise['all'](_0x1a5faa)[_0xcdab('0x27')](function(){return _0x334c54['removeAgents'](_0xe5da63['query'][_0xcdab('0x61')],{'transaction':_0x1048c2});});});}})[_0xcdab('0x27')](respondWithStatusCode(_0x4e5499,null))[_0xcdab('0x4c')](handleError(_0x4e5499,null));};exports[_0xcdab('0x81')]=function(_0x55d57f,_0x1a31f7,_0x544a56){var _0x5e122a={};var _0x3bddf7={};var _0x1b83be;var _0x2aad99;return db[_0xcdab('0x31')][_0xcdab('0x5f')]({'where':{'id':_0x55d57f[_0xcdab('0x48')]['id']}})[_0xcdab('0x27')](handleEntityNotFound(_0x1a31f7,null))[_0xcdab('0x27')](function(_0x466386){if(_0x466386){_0x1b83be=_0x466386;_0x3bddf7[_0xcdab('0x35')]=_[_0xcdab('0x49')](db[_0xcdab('0x6f')][_0xcdab('0x32')]);_0x3bddf7[_0xcdab('0x36')]=_[_0xcdab('0x49')](_0x55d57f[_0xcdab('0x36')]);_0x3bddf7[_0xcdab('0x37')]=_[_0xcdab('0x38')](_0x3bddf7[_0xcdab('0x35')],_0x3bddf7[_0xcdab('0x36')]);_0x5e122a['attributes']=_[_0xcdab('0x38')](_0x3bddf7['model'],qs[_0xcdab('0x3a')](_0x55d57f['query']['fields']));_0x5e122a[_0xcdab('0x39')]=_0x5e122a[_0xcdab('0x39')]['length']?_0x5e122a[_0xcdab('0x39')]:_0x3bddf7[_0xcdab('0x35')];_0x5e122a[_0xcdab('0x3e')]=qs[_0xcdab('0x3f')](_0x55d57f[_0xcdab('0x36')][_0xcdab('0x3f')]);_0x5e122a[_0xcdab('0x40')]=qs['filters'](_['pick'](_0x55d57f[_0xcdab('0x36')],_0x3bddf7[_0xcdab('0x37')]));if(_0x55d57f['query'][_0xcdab('0x41')]){_0x5e122a[_0xcdab('0x40')]=_['merge'](_0x5e122a[_0xcdab('0x40')],{'$or':_[_0xcdab('0x30')](_0x5e122a[_0xcdab('0x39')],function(_0x5a3a07){var _0x392c87={};_0x392c87[_0x5a3a07]={'$like':'%'+_0x55d57f['query']['filter']+'%'};return _0x392c87;})});}_0x5e122a=_[_0xcdab('0x42')]({},_0x5e122a,_0x55d57f[_0xcdab('0x44')]);return _0x1b83be[_0xcdab('0x81')](_0x5e122a);}})[_0xcdab('0x27')](function(_0x3d9943){if(_0x3d9943){_0x2aad99=_0x3d9943['length'];if(!_0x55d57f[_0xcdab('0x36')][_0xcdab('0x3c')](_0xcdab('0x82'))){_0x5e122a[_0xcdab('0x3d')]=qs[_0xcdab('0x3d')](_0x55d57f[_0xcdab('0x36')][_0xcdab('0x3d')]);_0x5e122a[_0xcdab('0x1d')]=qs[_0xcdab('0x1d')](_0x55d57f[_0xcdab('0x36')]['offset']);}return _0x1b83be['getAgents'](_0x5e122a);}})[_0xcdab('0x27')](function(_0xb3d51a){if(_0xb3d51a){return _0xb3d51a?{'count':_0x2aad99,'rows':_0xb3d51a}:null;}})[_0xcdab('0x27')](respondWithResult(_0x1a31f7,null))['catch'](handleError(_0x1a31f7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58cf=['Team','emit','hasOwnProperty','exports'];(function(_0x572d75,_0x47f326){var _0x24f93f=function(_0x15445b){while(--_0x15445b){_0x572d75['push'](_0x572d75['shift']());}};_0x24f93f(++_0x47f326);}(_0x58cf,0x1e8));var _0xf58c=function(_0x500c0,_0xdb6a03){_0x500c0=_0x500c0-0x0;var _0xdd146f=_0x58cf[_0x500c0];return _0xdd146f;};'use strict';var EventEmitter=require('events');var Team=require('../../mysqldb')['db'][_0xf58c('0x0')];var TeamEvents=new EventEmitter();TeamEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x5c4ea5){return function(_0x12e330,_0x19df9d,_0x18c1bd){TeamEvents[_0xf58c('0x1')](_0x5c4ea5+':'+_0x12e330['id'],_0x12e330);TeamEvents[_0xf58c('0x1')](_0x5c4ea5,_0x12e330);_0x18c1bd(null);};}for(var e in events){if(events[_0xf58c('0x2')](e)){var event=events[e];Team['hook'](e,emitEvent(event));}}module[_0xf58c('0x3')]=TeamEvents;
\ No newline at end of file
+var _0xdd4b=['hook','exports','events','../../mysqldb','Team','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0x4e1082,_0x230353){var _0x4b08c5=function(_0x2be6bc){while(--_0x2be6bc){_0x4e1082['push'](_0x4e1082['shift']());}};_0x4b08c5(++_0x230353);}(_0xdd4b,0x65));var _0xbdd4=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0xdd4b[_0x4b369d];return _0x571a98;};'use strict';var EventEmitter=require(_0xbdd4('0x0'));var Team=require(_0xbdd4('0x1'))['db'][_0xbdd4('0x2')];var TeamEvents=new EventEmitter();TeamEvents[_0xbdd4('0x3')](0x0);var events={'afterCreate':_0xbdd4('0x4'),'afterUpdate':_0xbdd4('0x5'),'afterDestroy':_0xbdd4('0x6')};function emitEvent(_0x140a87){return function(_0x220d96,_0x36fc3e,_0x11a3ce){TeamEvents[_0xbdd4('0x7')](_0x140a87+':'+_0x220d96['id'],_0x220d96);TeamEvents[_0xbdd4('0x7')](_0x140a87,_0x220d96);_0x11a3ce(null);};}for(var e in events){if(events[_0xbdd4('0x8')](e)){var event=events[e];Team[_0xbdd4('0x9')](e,emitEvent(event));}}module[_0xbdd4('0xa')]=TeamEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c33=['moment','bluebird','path','./team.attributes','define','Team','teams','lodash','util','../../config/logger','api'];(function(_0x282588,_0x22dade){var _0x322e53=function(_0x34dc2f){while(--_0x34dc2f){_0x282588['push'](_0x282588['shift']());}};_0x322e53(++_0x22dade);}(_0x6c33,0x1eb));var _0x36c3=function(_0x584da3,_0x388a44){_0x584da3=_0x584da3-0x0;var _0x37aeb9=_0x6c33[_0x584da3];return _0x37aeb9;};'use strict';var _=require(_0x36c3('0x0'));var util=require(_0x36c3('0x1'));var logger=require(_0x36c3('0x2'))(_0x36c3('0x3'));var moment=require(_0x36c3('0x4'));var BPromise=require(_0x36c3('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x36c3('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x36c3('0x7'));module['exports']=function(_0x2691ad,_0x52be33){return _0x2691ad[_0x36c3('0x8')](_0x36c3('0x9'),attributes,{'tableName':_0x36c3('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0ba8=['rimraf','./team.attributes','exports','define','Team','teams','lodash','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x4cbe17,_0x300320){var _0x3070ef=function(_0xce193c){while(--_0xce193c){_0x4cbe17['push'](_0x4cbe17['shift']());}};_0x3070ef(++_0x300320);}(_0x0ba8,0x1f4));var _0x80ba=function(_0x5d46fa,_0x51d20b){_0x5d46fa=_0x5d46fa-0x0;var _0x618cbb=_0x0ba8[_0x5d46fa];return _0x618cbb;};'use strict';var _=require(_0x80ba('0x0'));var util=require('util');var logger=require(_0x80ba('0x1'))(_0x80ba('0x2'));var moment=require(_0x80ba('0x3'));var BPromise=require(_0x80ba('0x4'));var rp=require(_0x80ba('0x5'));var fs=require('fs');var path=require(_0x80ba('0x6'));var rimraf=require(_0x80ba('0x7'));var config=require('../../config/environment');var attributes=require(_0x80ba('0x8'));module[_0x80ba('0x9')]=function(_0x2f781b,_0x2a620b){return _0x2f781b[_0x80ba('0xa')](_0x80ba('0xb'),attributes,{'tableName':_0x80ba('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d05=['request','then','info','Team,\x20%s,\x20%s','request\x20sent','debug','Team,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','redis','socket.io-emitter','./team.socket','register'];(function(_0x2a7b0a,_0x46c966){var _0x778beb=function(_0xb807e1){while(--_0xb807e1){_0x2a7b0a['push'](_0x2a7b0a['shift']());}};_0x778beb(++_0x46c966);}(_0x2d05,0x144));var _0x52d0=function(_0x4fd0a1,_0x2296a1){_0x4fd0a1=_0x4fd0a1-0x0;var _0x1e7516=_0x2d05[_0x4fd0a1];return _0x1e7516;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x52d0('0x0'));var BPromise=require(_0x52d0('0x1'));var rs=require(_0x52d0('0x2'));var fs=require('fs');var Redis=require(_0x52d0('0x3'));var db=require(_0x52d0('0x4'))['db'];var utils=require(_0x52d0('0x5'));var logger=require(_0x52d0('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x52d0('0x7'));var client=jayson[_0x52d0('0x8')][_0x52d0('0x9')]({'port':0x232a});config[_0x52d0('0xa')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x52d0('0xb'))(new Redis(config[_0x52d0('0xa')]));require(_0x52d0('0xc'))[_0x52d0('0xd')](socket);function respondWithRpcPromise(_0x10eec0,_0x18bd68,_0x14b6a4){return new BPromise(function(_0xb48e42,_0x53c71c){return client[_0x52d0('0xe')](_0x10eec0,_0x14b6a4)[_0x52d0('0xf')](function(_0x87e552){logger[_0x52d0('0x10')](_0x52d0('0x11'),_0x18bd68,_0x52d0('0x12'));logger[_0x52d0('0x13')](_0x52d0('0x14'),_0x18bd68,_0x52d0('0x12'),JSON[_0x52d0('0x15')](_0x87e552));if(_0x87e552[_0x52d0('0x16')]){if(_0x87e552['error']['code']===0x1f4){logger[_0x52d0('0x16')](_0x52d0('0x11'),_0x18bd68,_0x87e552[_0x52d0('0x16')][_0x52d0('0x17')]);return _0x53c71c(_0x87e552[_0x52d0('0x16')][_0x52d0('0x17')]);}logger[_0x52d0('0x16')](_0x52d0('0x11'),_0x18bd68,_0x87e552[_0x52d0('0x16')][_0x52d0('0x17')]);return _0xb48e42(_0x87e552[_0x52d0('0x16')][_0x52d0('0x17')]);}else{logger[_0x52d0('0x10')](_0x52d0('0x11'),_0x18bd68,'request\x20sent');_0xb48e42(_0x87e552[_0x52d0('0x18')][_0x52d0('0x17')]);}})[_0x52d0('0x19')](function(_0x5da467){logger[_0x52d0('0x16')](_0x52d0('0x11'),_0x18bd68,_0x5da467);_0x53c71c(_0x5da467);});});}
\ No newline at end of file
+var _0xe59e=['code','message','Team,\x20%s,\x20%s','result','util','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','defaults','redis','localhost','socket.io-emitter','./team.socket','register','request','then','info','request\x20sent','debug','Team,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x43e64c,_0x2f3c57){var _0x3ba422=function(_0x3bfebc){while(--_0x3bfebc){_0x43e64c['push'](_0x43e64c['shift']());}};_0x3ba422(++_0x2f3c57);}(_0xe59e,0xdc));var _0xee59=function(_0x21d881,_0x2bb2b4){_0x21d881=_0x21d881-0x0;var _0x4ff597=_0xe59e[_0x21d881];return _0x4ff597;};'use strict';var _=require('lodash');var util=require(_0xee59('0x0'));var moment=require('moment');var BPromise=require(_0xee59('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xee59('0x2'));var db=require(_0xee59('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xee59('0x4'))(_0xee59('0x5'));var config=require(_0xee59('0x6'));var jayson=require(_0xee59('0x7'));var client=jayson['client'][_0xee59('0x8')]({'port':0x232a});config['redis']=_[_0xee59('0x9')](config[_0xee59('0xa')],{'host':_0xee59('0xb'),'port':0x18eb});var socket=require(_0xee59('0xc'))(new Redis(config[_0xee59('0xa')]));require(_0xee59('0xd'))[_0xee59('0xe')](socket);function respondWithRpcPromise(_0x3adc83,_0x208327,_0x506290){return new BPromise(function(_0x11da7b,_0x2feeac){return client[_0xee59('0xf')](_0x3adc83,_0x506290)[_0xee59('0x10')](function(_0x5e3fac){logger[_0xee59('0x11')]('Team,\x20%s,\x20%s',_0x208327,_0xee59('0x12'));logger[_0xee59('0x13')](_0xee59('0x14'),_0x208327,_0xee59('0x12'),JSON[_0xee59('0x15')](_0x5e3fac));if(_0x5e3fac[_0xee59('0x16')]){if(_0x5e3fac['error'][_0xee59('0x17')]===0x1f4){logger[_0xee59('0x16')]('Team,\x20%s,\x20%s',_0x208327,_0x5e3fac[_0xee59('0x16')]['message']);return _0x2feeac(_0x5e3fac[_0xee59('0x16')][_0xee59('0x18')]);}logger['error'](_0xee59('0x19'),_0x208327,_0x5e3fac[_0xee59('0x16')][_0xee59('0x18')]);return _0x11da7b(_0x5e3fac[_0xee59('0x16')][_0xee59('0x18')]);}else{logger[_0xee59('0x11')]('Team,\x20%s,\x20%s',_0x208327,_0xee59('0x12'));_0x11da7b(_0x5e3fac[_0xee59('0x1a')][_0xee59('0x18')]);}})['catch'](function(_0x530361){logger['error'](_0xee59('0x19'),_0x208327,_0x530361);_0x2feeac(_0x530361);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdab3=['team:','./team.events','save','update','register','length'];(function(_0x59d47a,_0x4df759){var _0x5c4c92=function(_0x1d7dcc){while(--_0x1d7dcc){_0x59d47a['push'](_0x59d47a['shift']());}};_0x5c4c92(++_0x4df759);}(_0xdab3,0x97));var _0x3dab=function(_0x4760aa,_0x127a5a){_0x4760aa=_0x4760aa-0x0;var _0x51ce12=_0xdab3[_0x4760aa];return _0x51ce12;};'use strict';var TeamEvents=require(_0x3dab('0x0'));var events=[_0x3dab('0x1'),'remove',_0x3dab('0x2')];function createListener(_0x4bc108,_0x58d045){return function(_0x10d8d7){_0x58d045['emit'](_0x4bc108,_0x10d8d7);};}function removeListener(_0xbfc445,_0x55fc5e){return function(){TeamEvents['removeListener'](_0xbfc445,_0x55fc5e);};}exports[_0x3dab('0x3')]=function(_0x1ab4b1){for(var _0x1c00a4=0x0,_0x2d5215=events[_0x3dab('0x4')];_0x1c00a4<_0x2d5215;_0x1c00a4++){var _0x58ae6e=events[_0x1c00a4];var _0x2ba728=createListener(_0x3dab('0x5')+_0x58ae6e,_0x1ab4b1);TeamEvents['on'](_0x58ae6e,_0x2ba728);}};
\ No newline at end of file
+var _0x585b=['team:','./team.events','save','removeListener','register'];(function(_0x140309,_0x59c904){var _0x4d8f26=function(_0x1be854){while(--_0x1be854){_0x140309['push'](_0x140309['shift']());}};_0x4d8f26(++_0x59c904);}(_0x585b,0x1af));var _0xb585=function(_0x122096,_0x60c295){_0x122096=_0x122096-0x0;var _0x3d1966=_0x585b[_0x122096];return _0x3d1966;};'use strict';var TeamEvents=require(_0xb585('0x0'));var events=[_0xb585('0x1'),'remove','update'];function createListener(_0x2da463,_0x527906){return function(_0x124908){_0x527906['emit'](_0x2da463,_0x124908);};}function removeListener(_0x4db6de,_0x5cc948){return function(){TeamEvents[_0xb585('0x2')](_0x4db6de,_0x5cc948);};}exports[_0xb585('0x3')]=function(_0x2ed1c1){for(var _0x474970=0x0,_0x378aff=events['length'];_0x474970<_0x378aff;_0x474970++){var _0x1488a5=events[_0x474970];var _0x4d8dfc=createListener(_0xb585('0x4')+_0x1488a5,_0x2ed1c1);TeamEvents['on'](_0x1488a5,_0x4d8dfc);}};
\ 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 _0x6a17=['exports','INTEGER','sequelize'];(function(_0x365827,_0x1bae4f){var _0x3fe8ac=function(_0x1ef93a){while(--_0x1ef93a){_0x365827['push'](_0x365827['shift']());}};_0x3fe8ac(++_0x1bae4f);}(_0x6a17,0x1e8));var _0x76a1=function(_0x20d0ce,_0x4ee438){_0x20d0ce=_0x20d0ce-0x0;var _0x718cd9=_0x6a17[_0x20d0ce];return _0x718cd9;};'use strict';var Sequelize=require(_0x76a1('0x0'));module[_0x76a1('0x1')]={'TeamId':{'type':Sequelize[_0x76a1('0x2')]},'VoicePrefixId':{'type':Sequelize[_0x76a1('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 _0x252f=['util','moment','bluebird','rimraf','../../config/environment','./teamVoicePrefix.attributes','exports','define','TeamVoicePrefix','team_has_voice_prefixes','lodash'];(function(_0x3a607e,_0x54d530){var _0x37b106=function(_0x1becae){while(--_0x1becae){_0x3a607e['push'](_0x3a607e['shift']());}};_0x37b106(++_0x54d530);}(_0x252f,0xd0));var _0xf252=function(_0x1b1e76,_0x31695b){_0x1b1e76=_0x1b1e76-0x0;var _0x3d743a=_0x252f[_0x1b1e76];return _0x3d743a;};'use strict';var _=require(_0xf252('0x0'));var util=require(_0xf252('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xf252('0x2'));var BPromise=require(_0xf252('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xf252('0x4'));var config=require(_0xf252('0x5'));var attributes=require(_0xf252('0x6'));module[_0xf252('0x7')]=function(_0x2e0676,_0x5cbe86){return _0x2e0676[_0xf252('0x8')](_0xf252('0x9'),attributes,{'tableName':_0xf252('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ 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(_0x18fd21,_0x4af3d1){var _0x113f67=function(_0x45b480){while(--_0x45b480){_0x18fd21['push'](_0x18fd21['shift']());}};_0x113f67(++_0x4af3d1);}(_0x9c44,0x178));var _0x49c4=function(_0x565c49,_0x54acd0){_0x565c49=_0x565c49-0x0;var _0x20ca34=_0x9c44[_0x565c49];return _0x20ca34;};'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 _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0x64387,_0x40acf0){var _0x32e350=function(_0x4a27fa){while(--_0x4a27fa){_0x64387['push'](_0x64387['shift']());}};_0x32e350(++_0x40acf0);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x4327fe,_0x4f8040){_0x4327fe=_0x4327fe-0x0;var _0x138651=_0xcb91[_0x4327fe];return _0x138651;};'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 _0xa5e4=['INTEGER','sequelize','exports'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0xa5e4,0x163));var _0x4a5e=function(_0x158b64,_0x5f2732){_0x158b64=_0x158b64-0x0;var _0x590b1e=_0xa5e4[_0x158b64];return _0x590b1e;};'use strict';var Sequelize=require(_0x4a5e('0x0'));module[_0x4a5e('0x1')]={'penalty':{'type':Sequelize[_0x4a5e('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xf5e6=['sequelize','exports'];(function(_0x4fbad6,_0x3eb736){var _0x5a4bc9=function(_0x1753c4){while(--_0x1753c4){_0x4fbad6['push'](_0x4fbad6['shift']());}};_0x5a4bc9(++_0x3eb736);}(_0xf5e6,0x132));var _0x6f5e=function(_0x3443d3,_0xf1bb82){_0x3443d3=_0x3443d3-0x0;var _0x3de675=_0xf5e6[_0x3443d3];return _0x3de675;};'use strict';var Sequelize=require(_0x6f5e('0x0'));module[_0x6f5e('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2137=['define','team_has_voice_queues','lodash','util','../../config/logger','bluebird','path','rimraf','../../config/environment'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x2137,0x134));var _0x7213=function(_0x30268c,_0x39acbd){_0x30268c=_0x30268c-0x0;var _0x3b4842=_0x2137[_0x30268c];return _0x3b4842;};'use strict';var _=require(_0x7213('0x0'));var util=require(_0x7213('0x1'));var logger=require(_0x7213('0x2'))('api');var moment=require('moment');var BPromise=require(_0x7213('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x7213('0x4'));var rimraf=require(_0x7213('0x5'));var config=require(_0x7213('0x6'));var attributes=require('./teamVoiceQueue.attributes');module['exports']=function(_0x4f36f0,_0x2cf2d6){return _0x4f36f0[_0x7213('0x7')]('TeamVoiceQueue',attributes,{'tableName':_0x7213('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4f29=['team_has_voice_queues','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./teamVoiceQueue.attributes','exports','define','TeamVoiceQueue'];(function(_0xddf6f9,_0xa9bc15){var _0x4877af=function(_0x5f2d81){while(--_0x5f2d81){_0xddf6f9['push'](_0xddf6f9['shift']());}};_0x4877af(++_0xa9bc15);}(_0x4f29,0xfd));var _0x94f2=function(_0x39014b,_0x55875d){_0x39014b=_0x39014b-0x0;var _0xfb6678=_0x4f29[_0x39014b];return _0xfb6678;};'use strict';var _=require('lodash');var util=require(_0x94f2('0x0'));var logger=require(_0x94f2('0x1'))(_0x94f2('0x2'));var moment=require(_0x94f2('0x3'));var BPromise=require(_0x94f2('0x4'));var rp=require(_0x94f2('0x5'));var fs=require('fs');var path=require(_0x94f2('0x6'));var rimraf=require(_0x94f2('0x7'));var config=require(_0x94f2('0x8'));var attributes=require(_0x94f2('0x9'));module[_0x94f2('0xa')]=function(_0x493302,_0x5e9216){return _0x493302[_0x94f2('0xb')](_0x94f2('0xc'),attributes,{'tableName':_0x94f2('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccdc=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','TeamVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','TeamVoiceQueue,\x20%s,\x20%s','message','catch','lodash','util','randomstring','ioredis'];(function(_0x5b6d34,_0x2a32a0){var _0x65eb46=function(_0x2fed53){while(--_0x2fed53){_0x5b6d34['push'](_0x5b6d34['shift']());}};_0x65eb46(++_0x2a32a0);}(_0xccdc,0x1c4));var _0xcccd=function(_0x279d37,_0x14de3f){_0x279d37=_0x279d37-0x0;var _0x530173=_0xccdc[_0x279d37];return _0x530173;};'use strict';var _=require(_0xcccd('0x0'));var util=require(_0xcccd('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xcccd('0x2'));var fs=require('fs');var Redis=require(_0xcccd('0x3'));var db=require(_0xcccd('0x4'))['db'];var utils=require(_0xcccd('0x5'));var logger=require(_0xcccd('0x6'))(_0xcccd('0x7'));var config=require(_0xcccd('0x8'));var jayson=require(_0xcccd('0x9'));var client=jayson[_0xcccd('0xa')][_0xcccd('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5bd55e,_0x4cc734,_0x270368){return new BPromise(function(_0x1b8c05,_0x41ea2d){return client[_0xcccd('0xc')](_0x5bd55e,_0x270368)[_0xcccd('0xd')](function(_0x1d921f){logger[_0xcccd('0xe')]('TeamVoiceQueue,\x20%s,\x20%s',_0x4cc734,_0xcccd('0xf'));logger[_0xcccd('0x10')](_0xcccd('0x11'),_0x4cc734,_0xcccd('0xf'),JSON[_0xcccd('0x12')](_0x1d921f));if(_0x1d921f[_0xcccd('0x13')]){if(_0x1d921f[_0xcccd('0x13')][_0xcccd('0x14')]===0x1f4){logger[_0xcccd('0x13')](_0xcccd('0x15'),_0x4cc734,_0x1d921f[_0xcccd('0x13')][_0xcccd('0x16')]);return _0x41ea2d(_0x1d921f[_0xcccd('0x13')][_0xcccd('0x16')]);}logger[_0xcccd('0x13')](_0xcccd('0x15'),_0x4cc734,_0x1d921f[_0xcccd('0x13')][_0xcccd('0x16')]);return _0x1b8c05(_0x1d921f['error']['message']);}else{logger[_0xcccd('0xe')](_0xcccd('0x15'),_0x4cc734,_0xcccd('0xf'));_0x1b8c05(_0x1d921f['result'][_0xcccd('0x16')]);}})[_0xcccd('0x17')](function(_0x1b3bd9){logger['error'](_0xcccd('0x15'),_0x4cc734,_0x1b3bd9);_0x41ea2d(_0x1b3bd9);});});}
\ No newline at end of file
+var _0x0e9f=['TeamVoiceQueue,\x20%s,\x20%s','result','util','moment','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','request\x20sent','TeamVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x53d763,_0x862ce){var _0x9c18f6=function(_0x4a0a06){while(--_0x4a0a06){_0x53d763['push'](_0x53d763['shift']());}};_0x9c18f6(++_0x862ce);}(_0x0e9f,0x7a));var _0xf0e9=function(_0x411d94,_0x5cb74a){_0x411d94=_0x411d94-0x0;var _0x11a065=_0x0e9f[_0x411d94];return _0x11a065;};'use strict';var _=require('lodash');var util=require(_0xf0e9('0x0'));var moment=require(_0xf0e9('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf0e9('0x2'))['db'];var utils=require(_0xf0e9('0x3'));var logger=require(_0xf0e9('0x4'))(_0xf0e9('0x5'));var config=require(_0xf0e9('0x6'));var jayson=require(_0xf0e9('0x7'));var client=jayson[_0xf0e9('0x8')][_0xf0e9('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x29cb56,_0x5000d8,_0x5178ff){return new BPromise(function(_0x1b05b8,_0x171cbf){return client[_0xf0e9('0xa')](_0x29cb56,_0x5178ff)['then'](function(_0x328a6a){logger[_0xf0e9('0xb')]('TeamVoiceQueue,\x20%s,\x20%s',_0x5000d8,_0xf0e9('0xc'));logger['debug'](_0xf0e9('0xd'),_0x5000d8,'request\x20sent',JSON[_0xf0e9('0xe')](_0x328a6a));if(_0x328a6a[_0xf0e9('0xf')]){if(_0x328a6a['error'][_0xf0e9('0x10')]===0x1f4){logger[_0xf0e9('0xf')]('TeamVoiceQueue,\x20%s,\x20%s',_0x5000d8,_0x328a6a['error']['message']);return _0x171cbf(_0x328a6a['error'][_0xf0e9('0x11')]);}logger[_0xf0e9('0xf')](_0xf0e9('0x12'),_0x5000d8,_0x328a6a[_0xf0e9('0xf')]['message']);return _0x1b05b8(_0x328a6a[_0xf0e9('0xf')][_0xf0e9('0x11')]);}else{logger['info'](_0xf0e9('0x12'),_0x5000d8,_0xf0e9('0xc'));_0x1b05b8(_0x328a6a[_0xf0e9('0x13')]['message']);}})['catch'](function(_0xf409e3){logger[_0xf0e9('0xf')](_0xf0e9('0x12'),_0x5000d8,_0xf409e3);_0x171cbf(_0xf409e3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x77a9=['multer','path','express','Router','fs-extra','../../components/auth/service','../../config/environment','./template.controller','get','isAuthenticated','index','show','create','put','/:id','update','delete','destroy'];(function(_0x589c33,_0x13ec38){var _0x37c3e7=function(_0xc7856f){while(--_0xc7856f){_0x589c33['push'](_0x589c33['shift']());}};_0x37c3e7(++_0x13ec38);}(_0x77a9,0x19e));var _0x977a=function(_0x867f8f,_0x37605a){_0x867f8f=_0x867f8f-0x0;var _0x49e6b6=_0x77a9[_0x867f8f];return _0x49e6b6;};'use strict';var multer=require(_0x977a('0x0'));var util=require('util');var path=require(_0x977a('0x1'));var timeout=require('connect-timeout');var express=require(_0x977a('0x2'));var router=express[_0x977a('0x3')]();var fs_extra=require(_0x977a('0x4'));var auth=require(_0x977a('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x977a('0x6'));var controller=require(_0x977a('0x7'));router[_0x977a('0x8')]('/',auth[_0x977a('0x9')](),controller[_0x977a('0xa')]);router['get']('/:id',auth[_0x977a('0x9')](),controller[_0x977a('0xb')]);router['post']('/',auth[_0x977a('0x9')](),controller[_0x977a('0xc')]);router[_0x977a('0xd')](_0x977a('0xe'),auth[_0x977a('0x9')](),controller[_0x977a('0xf')]);router[_0x977a('0x10')](_0x977a('0xe'),auth[_0x977a('0x9')](),controller[_0x977a('0x11')]);module['exports']=router;
\ No newline at end of file
+var _0x6209=['get','/:id','post','create','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./template.controller','isAuthenticated','index'];(function(_0x2532d2,_0x35f525){var _0x41801e=function(_0x38b0ff){while(--_0x38b0ff){_0x2532d2['push'](_0x2532d2['shift']());}};_0x41801e(++_0x35f525);}(_0x6209,0x1e8));var _0x9620=function(_0x55f8b4,_0x43f30d){_0x55f8b4=_0x55f8b4-0x0;var _0x2475f9=_0x6209[_0x55f8b4];return _0x2475f9;};'use strict';var multer=require(_0x9620('0x0'));var util=require(_0x9620('0x1'));var path=require(_0x9620('0x2'));var timeout=require(_0x9620('0x3'));var express=require(_0x9620('0x4'));var router=express[_0x9620('0x5')]();var fs_extra=require(_0x9620('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x9620('0x7'));var config=require(_0x9620('0x8'));var controller=require(_0x9620('0x9'));router['get']('/',auth[_0x9620('0xa')](),controller[_0x9620('0xb')]);router[_0x9620('0xc')](_0x9620('0xd'),auth['isAuthenticated'](),controller['show']);router[_0x9620('0xe')]('/',auth['isAuthenticated'](),controller[_0x9620('0xf')]);router[_0x9620('0x10')](_0x9620('0xd'),auth[_0x9620('0xa')](),controller[_0x9620('0x11')]);router[_0x9620('0x12')](_0x9620('0xd'),auth['isAuthenticated'](),controller[_0x9620('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe843=['TEXT','sequelize','exports','STRING'];(function(_0x1bad8a,_0x4a160f){var _0xfa3b6b=function(_0x1abb3a){while(--_0x1abb3a){_0x1bad8a['push'](_0x1bad8a['shift']());}};_0xfa3b6b(++_0x4a160f);}(_0xe843,0x165));var _0x3e84=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xe843[_0x122ef9];return _0x42fba0;};'use strict';var Sequelize=require(_0x3e84('0x0'));module[_0x3e84('0x1')]={'name':{'type':Sequelize[_0x3e84('0x2')]},'description':{'type':Sequelize['STRING']},'html':{'type':Sequelize[_0x3e84('0x3')]}};
\ No newline at end of file
+var _0xcbfb=['sequelize','exports','STRING'];(function(_0x595c4e,_0x444249){var _0x1e224c=function(_0x3c46d0){while(--_0x3c46d0){_0x595c4e['push'](_0x595c4e['shift']());}};_0x1e224c(++_0x444249);}(_0xcbfb,0xf3));var _0xbcbf=function(_0x4b3b96,_0x5ea6d6){_0x4b3b96=_0x4b3b96-0x0;var _0x504bdb=_0xcbfb[_0x4b3b96];return _0x504bdb;};'use strict';var Sequelize=require(_0xbcbf('0x0'));module[_0xbcbf('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xbcbf('0x2')]},'html':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ac7=['../../config/license/util','../../mysqldb','status','end','json','offset','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','sendStatus','error','stack','name','send','index','map','Template','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','options','includeAll','include','findAll','rows','show','length','find','catch','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','Templates','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils'];(function(_0x26c9db,_0x15faf9){var _0x5643e6=function(_0x228785){while(--_0x228785){_0x26c9db['push'](_0x26c9db['shift']());}};_0x5643e6(++_0x15faf9);}(_0x4ac7,0x194));var _0x74ac=function(_0x487b0c,_0x14ff74){_0x487b0c=_0x487b0c-0x0;var _0x1adbdc=_0x4ac7[_0x487b0c];return _0x1adbdc;};'use strict';var emlformat=require(_0x74ac('0x0'));var rimraf=require(_0x74ac('0x1'));var zipdir=require(_0x74ac('0x2'));var jsonpatch=require(_0x74ac('0x3'));var rp=require('request-promise');var moment=require(_0x74ac('0x4'));var BPromise=require(_0x74ac('0x5'));var Mustache=require(_0x74ac('0x6'));var util=require('util');var path=require(_0x74ac('0x7'));var sox=require('sox');var csv=require(_0x74ac('0x8'));var ejs=require(_0x74ac('0x9'));var fs=require('fs');var fs_extra=require(_0x74ac('0xa'));var _=require('lodash');var squel=require(_0x74ac('0xb'));var crypto=require(_0x74ac('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x74ac('0xd'));var toCsv=require(_0x74ac('0x8'));var querystring=require(_0x74ac('0xe'));var Papa=require(_0x74ac('0xf'));var Redis=require('ioredis');var authService=require(_0x74ac('0x10'));var qs=require(_0x74ac('0x11'));var as=require(_0x74ac('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x74ac('0x13'));var utils=require(_0x74ac('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x74ac('0x15'));var db=require(_0x74ac('0x16'))['db'];function respondWithStatusCode(_0x36e6e4,_0x5aa0a1){_0x5aa0a1=_0x5aa0a1||0xcc;return function(_0x548444){if(_0x548444){return _0x36e6e4['sendStatus'](_0x5aa0a1);}return _0x36e6e4[_0x74ac('0x17')](_0x5aa0a1)[_0x74ac('0x18')]();};}function respondWithResult(_0x39aac0,_0x2c58fc){_0x2c58fc=_0x2c58fc||0xc8;return function(_0x2c39eb){if(_0x2c39eb){return _0x39aac0[_0x74ac('0x17')](_0x2c58fc)[_0x74ac('0x19')](_0x2c39eb);}};}function respondWithFilteredResult(_0x3f6f8f,_0x1735d0){return function(_0x3a490b){if(_0x3a490b){var _0x19cfee=typeof _0x1735d0[_0x74ac('0x1a')]==='undefined'&&typeof _0x1735d0['limit']==='undefined';var _0x4bd78a=_0x3a490b[_0x74ac('0x1b')];var _0x38ec0c=_0x19cfee?0x0:_0x1735d0[_0x74ac('0x1a')];var _0x365be3=_0x19cfee?_0x3a490b[_0x74ac('0x1b')]:_0x1735d0['offset']+_0x1735d0[_0x74ac('0x1c')];var _0x3c7570;if(_0x365be3>=_0x4bd78a){_0x365be3=_0x4bd78a;_0x3c7570=0xc8;}else{_0x3c7570=0xce;}_0x3f6f8f['status'](_0x3c7570);return _0x3f6f8f[_0x74ac('0x1d')](_0x74ac('0x1e'),_0x38ec0c+'-'+_0x365be3+'/'+_0x4bd78a)[_0x74ac('0x19')](_0x3a490b);}return null;};}function patchUpdates(_0x2a92cf){return function(_0x2c1b74){try{jsonpatch[_0x74ac('0x1f')](_0x2c1b74,_0x2a92cf,!![]);}catch(_0x4f39a2){return BPromise[_0x74ac('0x20')](_0x4f39a2);}return _0x2c1b74[_0x74ac('0x21')]();};}function saveUpdates(_0x31c4f2,_0x1b6a36){return function(_0x17c879){if(_0x17c879){return _0x17c879[_0x74ac('0x22')](_0x31c4f2)[_0x74ac('0x23')](function(_0xdd76be){return _0xdd76be;});}return null;};}function removeEntity(_0x1e22bc,_0x1a720c){return function(_0x2bc00b){if(_0x2bc00b){return _0x2bc00b[_0x74ac('0x24')]()['then'](function(){var _0x40764d=_0x2bc00b[_0x74ac('0x25')]({'plain':!![]});var _0x171158='Templates';return db['UserProfileResource'][_0x74ac('0x24')]({'where':{'type':_0x171158,'resourceId':_0x40764d['id']}})[_0x74ac('0x23')](function(){return _0x2bc00b;});})[_0x74ac('0x23')](function(){_0x1e22bc['status'](0xcc)[_0x74ac('0x18')]();});}};}function handleEntityNotFound(_0x1737aa,_0x32df36){return function(_0x563cc0){if(!_0x563cc0){_0x1737aa[_0x74ac('0x26')](0x194);}return _0x563cc0;};}function handleError(_0x4b3052,_0x28ad21){_0x28ad21=_0x28ad21||0x1f4;return function(_0x1eaeb0){logger[_0x74ac('0x27')](_0x1eaeb0[_0x74ac('0x28')]);if(_0x1eaeb0[_0x74ac('0x29')]){delete _0x1eaeb0[_0x74ac('0x29')];}_0x4b3052['status'](_0x28ad21)[_0x74ac('0x2a')](_0x1eaeb0);};}exports[_0x74ac('0x2b')]=function(_0x5f2cd3,_0x161542){var _0x2aa19a={},_0x3b9321={},_0x245705={'count':0x0,'rows':[]};var _0x5c1e5c=_[_0x74ac('0x2c')](db[_0x74ac('0x2d')][_0x74ac('0x2e')],function(_0x3b8978){return{'name':_0x3b8978[_0x74ac('0x2f')],'type':_0x3b8978['type'][_0x74ac('0x30')]};});_0x3b9321[_0x74ac('0x31')]=_[_0x74ac('0x2c')](_0x5c1e5c,_0x74ac('0x29'));_0x3b9321['query']=_[_0x74ac('0x32')](_0x5f2cd3[_0x74ac('0x33')]);_0x3b9321[_0x74ac('0x34')]=_[_0x74ac('0x35')](_0x3b9321[_0x74ac('0x31')],_0x3b9321[_0x74ac('0x33')]);_0x2aa19a[_0x74ac('0x36')]=_[_0x74ac('0x35')](_0x3b9321[_0x74ac('0x31')],qs[_0x74ac('0x37')](_0x5f2cd3[_0x74ac('0x33')][_0x74ac('0x37')]));_0x2aa19a[_0x74ac('0x36')]=_0x2aa19a['attributes']['length']?_0x2aa19a[_0x74ac('0x36')]:_0x3b9321['model'];if(!_0x5f2cd3[_0x74ac('0x33')][_0x74ac('0x38')](_0x74ac('0x39'))){_0x2aa19a[_0x74ac('0x1c')]=qs[_0x74ac('0x1c')](_0x5f2cd3['query'][_0x74ac('0x1c')]);_0x2aa19a[_0x74ac('0x1a')]=qs['offset'](_0x5f2cd3['query']['offset']);}_0x2aa19a[_0x74ac('0x3a')]=qs[_0x74ac('0x3b')](_0x5f2cd3['query'][_0x74ac('0x3b')]);_0x2aa19a[_0x74ac('0x3c')]=qs[_0x74ac('0x34')](_[_0x74ac('0x3d')](_0x5f2cd3['query'],_0x3b9321['filters']),_0x5c1e5c);if(_0x5f2cd3[_0x74ac('0x33')][_0x74ac('0x3e')]){_0x2aa19a['where']=_[_0x74ac('0x3f')](_0x2aa19a[_0x74ac('0x3c')],{'$or':_[_0x74ac('0x2c')](_0x5c1e5c,function(_0x53d561){if(_0x53d561[_0x74ac('0x40')]!=='VIRTUAL'){var _0x2fdf91={};_0x2fdf91[_0x53d561[_0x74ac('0x29')]]={'$like':'%'+_0x5f2cd3[_0x74ac('0x33')][_0x74ac('0x3e')]+'%'};return _0x2fdf91;}})});}_0x2aa19a=_[_0x74ac('0x3f')]({},_0x2aa19a,_0x5f2cd3[_0x74ac('0x41')]);var _0x24bd2f={'where':_0x2aa19a[_0x74ac('0x3c')]};return db[_0x74ac('0x2d')][_0x74ac('0x1b')](_0x24bd2f)['then'](function(_0x5becf9){_0x245705['count']=_0x5becf9;if(_0x5f2cd3[_0x74ac('0x33')][_0x74ac('0x42')]){_0x2aa19a[_0x74ac('0x43')]=[{'all':!![]}];}return db[_0x74ac('0x2d')][_0x74ac('0x44')](_0x2aa19a);})['then'](function(_0x20a857){_0x245705[_0x74ac('0x45')]=_0x20a857;return _0x245705;})[_0x74ac('0x23')](respondWithFilteredResult(_0x161542,_0x2aa19a))['catch'](handleError(_0x161542,null));};exports[_0x74ac('0x46')]=function(_0x175b64,_0x4910d3){var _0x5e04f2={'raw':!![],'where':{'id':_0x175b64['params']['id']}},_0x22c982={};_0x22c982[_0x74ac('0x31')]=_[_0x74ac('0x32')](db[_0x74ac('0x2d')][_0x74ac('0x2e')]);_0x22c982['query']=_[_0x74ac('0x32')](_0x175b64[_0x74ac('0x33')]);_0x22c982['filters']=_[_0x74ac('0x35')](_0x22c982[_0x74ac('0x31')],_0x22c982[_0x74ac('0x33')]);_0x5e04f2[_0x74ac('0x36')]=_[_0x74ac('0x35')](_0x22c982['model'],qs['fields'](_0x175b64[_0x74ac('0x33')][_0x74ac('0x37')]));_0x5e04f2['attributes']=_0x5e04f2[_0x74ac('0x36')][_0x74ac('0x47')]?_0x5e04f2['attributes']:_0x22c982[_0x74ac('0x31')];if(_0x175b64[_0x74ac('0x33')]['includeAll']){_0x5e04f2['include']=[{'all':!![]}];}_0x5e04f2=_['merge']({},_0x5e04f2,_0x175b64[_0x74ac('0x41')]);return db[_0x74ac('0x2d')][_0x74ac('0x48')](_0x5e04f2)[_0x74ac('0x23')](handleEntityNotFound(_0x4910d3,null))['then'](respondWithResult(_0x4910d3,null))[_0x74ac('0x49')](handleError(_0x4910d3,null));};exports[_0x74ac('0x4a')]=function(_0x2e5e7f,_0x40ec2c){return db[_0x74ac('0x2d')][_0x74ac('0x4a')](_0x2e5e7f['body'],{})['then'](function(_0x5cdaa0){var _0x21a43b=_0x2e5e7f['user'][_0x74ac('0x25')]({'plain':!![]});if(!_0x21a43b)throw new Error(_0x74ac('0x4b'));if(_0x21a43b[_0x74ac('0x4c')]===_0x74ac('0x4d')){var _0x4ebd8c=_0x5cdaa0[_0x74ac('0x25')]({'plain':!![]});var _0x1d2427=_0x74ac('0x4e');return db[_0x74ac('0x4f')]['find']({'where':{'name':_0x1d2427,'userProfileId':_0x21a43b[_0x74ac('0x50')]},'raw':!![]})[_0x74ac('0x23')](function(_0x181648){if(_0x181648&&_0x181648[_0x74ac('0x51')]===0x0){return db['UserProfileResource'][_0x74ac('0x4a')]({'name':_0x4ebd8c[_0x74ac('0x29')],'resourceId':_0x4ebd8c['id'],'type':_0x181648['name'],'sectionId':_0x181648['id']},{})[_0x74ac('0x23')](function(){return _0x5cdaa0;});}else{return _0x5cdaa0;}})[_0x74ac('0x49')](function(_0x5e69c6){logger[_0x74ac('0x27')](_0x74ac('0x52'),_0x5e69c6);throw _0x5e69c6;});}return _0x5cdaa0;})[_0x74ac('0x23')](respondWithResult(_0x40ec2c,0xc9))[_0x74ac('0x49')](handleError(_0x40ec2c,null));};exports[_0x74ac('0x22')]=function(_0x2ea557,_0x34cb04){if(_0x2ea557[_0x74ac('0x53')]['id']){delete _0x2ea557[_0x74ac('0x53')]['id'];}return db[_0x74ac('0x2d')][_0x74ac('0x48')]({'where':{'id':_0x2ea557[_0x74ac('0x54')]['id']}})[_0x74ac('0x23')](handleEntityNotFound(_0x34cb04,null))[_0x74ac('0x23')](saveUpdates(_0x2ea557[_0x74ac('0x53')],null))[_0x74ac('0x23')](respondWithResult(_0x34cb04,null))[_0x74ac('0x49')](handleError(_0x34cb04,null));};exports['destroy']=function(_0x247e7f,_0x5c2094){return db[_0x74ac('0x2d')][_0x74ac('0x48')]({'where':{'id':_0x247e7f['params']['id']}})[_0x74ac('0x23')](handleEntityNotFound(_0x5c2094,null))['then'](removeEntity(_0x5c2094,null))['catch'](handleError(_0x5c2094,null));};
\ No newline at end of file
+var _0x7293=['end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','get','Templates','destroy','then','error','stack','name','send','index','map','Template','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','merge','options','include','findAll','show','params','includeAll','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status'];(function(_0x3356e1,_0x50b259){var _0x4a2b16=function(_0x4e48d5){while(--_0x4e48d5){_0x3356e1['push'](_0x3356e1['shift']());}};_0x4a2b16(++_0x50b259);}(_0x7293,0x18a));var _0x3729=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x7293[_0x4565bf];return _0x5610ba;};'use strict';var emlformat=require(_0x3729('0x0'));var rimraf=require(_0x3729('0x1'));var zipdir=require(_0x3729('0x2'));var jsonpatch=require(_0x3729('0x3'));var rp=require(_0x3729('0x4'));var moment=require(_0x3729('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x3729('0x6'));var util=require(_0x3729('0x7'));var path=require(_0x3729('0x8'));var sox=require(_0x3729('0x9'));var csv=require(_0x3729('0xa'));var ejs=require(_0x3729('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3729('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x3729('0xd'));var deskjs=require(_0x3729('0xe'));var toCsv=require(_0x3729('0xa'));var querystring=require(_0x3729('0xf'));var Papa=require(_0x3729('0x10'));var Redis=require('ioredis');var authService=require(_0x3729('0x11'));var qs=require(_0x3729('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3729('0x13'));var logger=require(_0x3729('0x14'))('api');var utils=require(_0x3729('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x3729('0x16'));var db=require(_0x3729('0x17'))['db'];function respondWithStatusCode(_0xab379f,_0x3a0d4a){_0x3a0d4a=_0x3a0d4a||0xcc;return function(_0x5c8e2d){if(_0x5c8e2d){return _0xab379f[_0x3729('0x18')](_0x3a0d4a);}return _0xab379f[_0x3729('0x19')](_0x3a0d4a)[_0x3729('0x1a')]();};}function respondWithResult(_0x4f7d12,_0x395025){_0x395025=_0x395025||0xc8;return function(_0x62ca29){if(_0x62ca29){return _0x4f7d12[_0x3729('0x19')](_0x395025)[_0x3729('0x1b')](_0x62ca29);}};}function respondWithFilteredResult(_0x19bad5,_0x216410){return function(_0x236e73){if(_0x236e73){var _0x364b2=typeof _0x216410[_0x3729('0x1c')]===_0x3729('0x1d')&&typeof _0x216410[_0x3729('0x1e')]===_0x3729('0x1d');var _0x5afe09=_0x236e73['count'];var _0x160902=_0x364b2?0x0:_0x216410[_0x3729('0x1c')];var _0x1ea762=_0x364b2?_0x236e73[_0x3729('0x1f')]:_0x216410[_0x3729('0x1c')]+_0x216410['limit'];var _0x478ad7;if(_0x1ea762>=_0x5afe09){_0x1ea762=_0x5afe09;_0x478ad7=0xc8;}else{_0x478ad7=0xce;}_0x19bad5[_0x3729('0x19')](_0x478ad7);return _0x19bad5[_0x3729('0x20')](_0x3729('0x21'),_0x160902+'-'+_0x1ea762+'/'+_0x5afe09)[_0x3729('0x1b')](_0x236e73);}return null;};}function patchUpdates(_0x48ae09){return function(_0xfa8e82){try{jsonpatch[_0x3729('0x22')](_0xfa8e82,_0x48ae09,!![]);}catch(_0x2f3707){return BPromise[_0x3729('0x23')](_0x2f3707);}return _0xfa8e82[_0x3729('0x24')]();};}function saveUpdates(_0x244aab,_0x141f2d){return function(_0x125b7a){if(_0x125b7a){return _0x125b7a[_0x3729('0x25')](_0x244aab)['then'](function(_0x1e259e){return _0x1e259e;});}return null;};}function removeEntity(_0x2b1f86,_0x3101ec){return function(_0x339263){if(_0x339263){return _0x339263['destroy']()['then'](function(){var _0x232867=_0x339263[_0x3729('0x26')]({'plain':!![]});var _0x390d62=_0x3729('0x27');return db['UserProfileResource'][_0x3729('0x28')]({'where':{'type':_0x390d62,'resourceId':_0x232867['id']}})[_0x3729('0x29')](function(){return _0x339263;});})['then'](function(){_0x2b1f86[_0x3729('0x19')](0xcc)[_0x3729('0x1a')]();});}};}function handleEntityNotFound(_0x834aac,_0x23a7d0){return function(_0x29512c){if(!_0x29512c){_0x834aac[_0x3729('0x18')](0x194);}return _0x29512c;};}function handleError(_0x4408d9,_0x364699){_0x364699=_0x364699||0x1f4;return function(_0x3aa62d){logger[_0x3729('0x2a')](_0x3aa62d[_0x3729('0x2b')]);if(_0x3aa62d['name']){delete _0x3aa62d[_0x3729('0x2c')];}_0x4408d9[_0x3729('0x19')](_0x364699)[_0x3729('0x2d')](_0x3aa62d);};}exports[_0x3729('0x2e')]=function(_0x4ed9b7,_0x4e0fae){var _0x51fd79={},_0x74c409={},_0x2b874c={'count':0x0,'rows':[]};var _0x568e02=_[_0x3729('0x2f')](db[_0x3729('0x30')][_0x3729('0x31')],function(_0x4f03e6){return{'name':_0x4f03e6[_0x3729('0x32')],'type':_0x4f03e6['type'][_0x3729('0x33')]};});_0x74c409[_0x3729('0x34')]=_[_0x3729('0x2f')](_0x568e02,_0x3729('0x2c'));_0x74c409[_0x3729('0x35')]=_[_0x3729('0x36')](_0x4ed9b7[_0x3729('0x35')]);_0x74c409[_0x3729('0x37')]=_[_0x3729('0x38')](_0x74c409[_0x3729('0x34')],_0x74c409['query']);_0x51fd79[_0x3729('0x39')]=_[_0x3729('0x38')](_0x74c409[_0x3729('0x34')],qs['fields'](_0x4ed9b7['query'][_0x3729('0x3a')]));_0x51fd79[_0x3729('0x39')]=_0x51fd79[_0x3729('0x39')][_0x3729('0x3b')]?_0x51fd79[_0x3729('0x39')]:_0x74c409['model'];if(!_0x4ed9b7[_0x3729('0x35')][_0x3729('0x3c')](_0x3729('0x3d'))){_0x51fd79[_0x3729('0x1e')]=qs[_0x3729('0x1e')](_0x4ed9b7[_0x3729('0x35')][_0x3729('0x1e')]);_0x51fd79[_0x3729('0x1c')]=qs[_0x3729('0x1c')](_0x4ed9b7[_0x3729('0x35')]['offset']);}_0x51fd79[_0x3729('0x3e')]=qs[_0x3729('0x3f')](_0x4ed9b7[_0x3729('0x35')][_0x3729('0x3f')]);_0x51fd79[_0x3729('0x40')]=qs[_0x3729('0x37')](_[_0x3729('0x41')](_0x4ed9b7[_0x3729('0x35')],_0x74c409[_0x3729('0x37')]),_0x568e02);if(_0x4ed9b7[_0x3729('0x35')][_0x3729('0x42')]){_0x51fd79[_0x3729('0x40')]=_['merge'](_0x51fd79[_0x3729('0x40')],{'$or':_[_0x3729('0x2f')](_0x568e02,function(_0x5e4a41){if(_0x5e4a41[_0x3729('0x43')]!=='VIRTUAL'){var _0x20ffb5={};_0x20ffb5[_0x5e4a41[_0x3729('0x2c')]]={'$like':'%'+_0x4ed9b7['query']['filter']+'%'};return _0x20ffb5;}})});}_0x51fd79=_[_0x3729('0x44')]({},_0x51fd79,_0x4ed9b7[_0x3729('0x45')]);var _0x47953b={'where':_0x51fd79[_0x3729('0x40')]};return db[_0x3729('0x30')][_0x3729('0x1f')](_0x47953b)[_0x3729('0x29')](function(_0x1db5af){_0x2b874c['count']=_0x1db5af;if(_0x4ed9b7[_0x3729('0x35')]['includeAll']){_0x51fd79[_0x3729('0x46')]=[{'all':!![]}];}return db[_0x3729('0x30')][_0x3729('0x47')](_0x51fd79);})['then'](function(_0x318d5c){_0x2b874c['rows']=_0x318d5c;return _0x2b874c;})[_0x3729('0x29')](respondWithFilteredResult(_0x4e0fae,_0x51fd79))['catch'](handleError(_0x4e0fae,null));};exports[_0x3729('0x48')]=function(_0x1b0035,_0x112e79){var _0x44840d={'raw':!![],'where':{'id':_0x1b0035[_0x3729('0x49')]['id']}},_0x138f5d={};_0x138f5d[_0x3729('0x34')]=_[_0x3729('0x36')](db['Template'][_0x3729('0x31')]);_0x138f5d[_0x3729('0x35')]=_[_0x3729('0x36')](_0x1b0035['query']);_0x138f5d[_0x3729('0x37')]=_['intersection'](_0x138f5d['model'],_0x138f5d[_0x3729('0x35')]);_0x44840d[_0x3729('0x39')]=_['intersection'](_0x138f5d[_0x3729('0x34')],qs[_0x3729('0x3a')](_0x1b0035[_0x3729('0x35')]['fields']));_0x44840d[_0x3729('0x39')]=_0x44840d[_0x3729('0x39')][_0x3729('0x3b')]?_0x44840d[_0x3729('0x39')]:_0x138f5d['model'];if(_0x1b0035['query'][_0x3729('0x4a')]){_0x44840d[_0x3729('0x46')]=[{'all':!![]}];}_0x44840d=_[_0x3729('0x44')]({},_0x44840d,_0x1b0035[_0x3729('0x45')]);return db[_0x3729('0x30')][_0x3729('0x4b')](_0x44840d)['then'](handleEntityNotFound(_0x112e79,null))[_0x3729('0x29')](respondWithResult(_0x112e79,null))[_0x3729('0x4c')](handleError(_0x112e79,null));};exports[_0x3729('0x4d')]=function(_0x34c1e2,_0x43972b){return db[_0x3729('0x30')][_0x3729('0x4d')](_0x34c1e2[_0x3729('0x4e')],{})['then'](function(_0x49e85a){var _0x28e814=_0x34c1e2[_0x3729('0x4f')][_0x3729('0x26')]({'plain':!![]});if(!_0x28e814)throw new Error(_0x3729('0x50'));if(_0x28e814[_0x3729('0x51')]===_0x3729('0x4f')){var _0x35c6dd=_0x49e85a[_0x3729('0x26')]({'plain':!![]});var _0x144897='Templates';return db['UserProfileSection'][_0x3729('0x4b')]({'where':{'name':_0x144897,'userProfileId':_0x28e814['userProfileId']},'raw':!![]})[_0x3729('0x29')](function(_0x544cb3){if(_0x544cb3&&_0x544cb3['autoAssociation']===0x0){return db[_0x3729('0x52')]['create']({'name':_0x35c6dd[_0x3729('0x2c')],'resourceId':_0x35c6dd['id'],'type':_0x544cb3['name'],'sectionId':_0x544cb3['id']},{})['then'](function(){return _0x49e85a;});}else{return _0x49e85a;}})[_0x3729('0x4c')](function(_0x13f13d){logger[_0x3729('0x2a')](_0x3729('0x53'),_0x13f13d);throw _0x13f13d;});}return _0x49e85a;})[_0x3729('0x29')](respondWithResult(_0x43972b,0xc9))['catch'](handleError(_0x43972b,null));};exports['update']=function(_0x539dd4,_0x30b65f){if(_0x539dd4['body']['id']){delete _0x539dd4[_0x3729('0x4e')]['id'];}return db[_0x3729('0x30')]['find']({'where':{'id':_0x539dd4[_0x3729('0x49')]['id']}})[_0x3729('0x29')](handleEntityNotFound(_0x30b65f,null))[_0x3729('0x29')](saveUpdates(_0x539dd4[_0x3729('0x4e')],null))[_0x3729('0x29')](respondWithResult(_0x30b65f,null))[_0x3729('0x4c')](handleError(_0x30b65f,null));};exports[_0x3729('0x28')]=function(_0x2e7278,_0x3096aa){return db[_0x3729('0x30')][_0x3729('0x4b')]({'where':{'id':_0x2e7278[_0x3729('0x49')]['id']}})[_0x3729('0x29')](handleEntityNotFound(_0x3096aa,null))[_0x3729('0x29')](removeEntity(_0x3096aa,null))[_0x3729('0x4c')](handleError(_0x3096aa,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb741=['exports','define','Template','tools_templates','lodash','util','../../config/logger','moment','request-promise','path','../../config/environment'];(function(_0x40b7b3,_0x439152){var _0x194f96=function(_0x8c337f){while(--_0x8c337f){_0x40b7b3['push'](_0x40b7b3['shift']());}};_0x194f96(++_0x439152);}(_0xb741,0x7d));var _0x1b74=function(_0x3e0d38,_0x10b422){_0x3e0d38=_0x3e0d38-0x0;var _0x21a67c=_0xb741[_0x3e0d38];return _0x21a67c;};'use strict';var _=require(_0x1b74('0x0'));var util=require(_0x1b74('0x1'));var logger=require(_0x1b74('0x2'))('api');var moment=require(_0x1b74('0x3'));var BPromise=require('bluebird');var rp=require(_0x1b74('0x4'));var fs=require('fs');var path=require(_0x1b74('0x5'));var rimraf=require('rimraf');var config=require(_0x1b74('0x6'));var attributes=require('./template.attributes');module[_0x1b74('0x7')]=function(_0x37ce9e,_0x4a4380){return _0x37ce9e[_0x1b74('0x8')](_0x1b74('0x9'),attributes,{'tableName':_0x1b74('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xba75=['moment','bluebird','request-promise','path','../../config/environment','./template.attributes','define','Template','../../config/logger','api'];(function(_0x255815,_0x508998){var _0x5f5c55=function(_0x413944){while(--_0x413944){_0x255815['push'](_0x255815['shift']());}};_0x5f5c55(++_0x508998);}(_0xba75,0x148));var _0x5ba7=function(_0x5bfa42,_0x46ec12){_0x5bfa42=_0x5bfa42-0x0;var _0x5b1a31=_0xba75[_0x5bfa42];return _0x5b1a31;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x5ba7('0x0'))(_0x5ba7('0x1'));var moment=require(_0x5ba7('0x2'));var BPromise=require(_0x5ba7('0x3'));var rp=require(_0x5ba7('0x4'));var fs=require('fs');var path=require(_0x5ba7('0x5'));var rimraf=require('rimraf');var config=require(_0x5ba7('0x6'));var attributes=require(_0x5ba7('0x7'));module['exports']=function(_0x1248da,_0xf0d905){return _0x1248da[_0x5ba7('0x8')](_0x5ba7('0x9'),attributes,{'tableName':'tools_templates','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf43d=['model','map','debug','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Template,\x20%s,\x20%s','Template,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','GetTemplate','findAll','options','attributes','limit','include'];(function(_0x5c3c0b,_0x4ee35e){var _0x52ecd2=function(_0x3cf575){while(--_0x3cf575){_0x5c3c0b['push'](_0x5c3c0b['shift']());}};_0x52ecd2(++_0x4ee35e);}(_0xf43d,0x1a7));var _0xdf43=function(_0x30ebb8,_0x8b2c5c){_0x30ebb8=_0x30ebb8-0x0;var _0x447f75=_0xf43d[_0x30ebb8];return _0x447f75;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xdf43('0x0'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xdf43('0x1'));var db=require('../../mysqldb')['db'];var utils=require(_0xdf43('0x2'));var logger=require(_0xdf43('0x3'))(_0xdf43('0x4'));var config=require(_0xdf43('0x5'));var jayson=require(_0xdf43('0x6'));var client=jayson[_0xdf43('0x7')][_0xdf43('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x47acc7,_0x2505b6,_0x494e49){return new BPromise(function(_0x5155f1,_0x2557c5){return client[_0xdf43('0x9')](_0x47acc7,_0x494e49)[_0xdf43('0xa')](function(_0x4c43dc){logger[_0xdf43('0xb')](_0xdf43('0xc'),_0x2505b6,'request\x20sent');logger['debug'](_0xdf43('0xd'),_0x2505b6,'request\x20sent',JSON[_0xdf43('0xe')](_0x4c43dc));if(_0x4c43dc[_0xdf43('0xf')]){if(_0x4c43dc['error'][_0xdf43('0x10')]===0x1f4){logger[_0xdf43('0xf')]('Template,\x20%s,\x20%s',_0x2505b6,_0x4c43dc[_0xdf43('0xf')][_0xdf43('0x11')]);return _0x2557c5(_0x4c43dc[_0xdf43('0xf')][_0xdf43('0x11')]);}logger[_0xdf43('0xf')](_0xdf43('0xc'),_0x2505b6,_0x4c43dc[_0xdf43('0xf')][_0xdf43('0x11')]);return _0x5155f1(_0x4c43dc[_0xdf43('0xf')]['message']);}else{logger[_0xdf43('0xb')]('Template,\x20%s,\x20%s',_0x2505b6,_0xdf43('0x12'));_0x5155f1(_0x4c43dc[_0xdf43('0x13')]['message']);}})[_0xdf43('0x14')](function(_0x5f2248){logger[_0xdf43('0xf')](_0xdf43('0xc'),_0x2505b6,_0x5f2248);_0x2557c5(_0x5f2248);});});}exports[_0xdf43('0x15')]=function(_0x1e155b){var _0x32824f=this;return new Promise(function(_0x6e3ba5,_0x16e552){return db['Template'][_0xdf43('0x16')]({'raw':_0x1e155b['options']?_0x1e155b[_0xdf43('0x17')]['raw']===undefined?!![]:![]:!![],'where':_0x1e155b[_0xdf43('0x17')]?_0x1e155b['options']['where']||null:null,'attributes':_0x1e155b[_0xdf43('0x17')]?_0x1e155b[_0xdf43('0x17')][_0xdf43('0x18')]||null:null,'limit':_0x1e155b['options']?_0x1e155b[_0xdf43('0x17')][_0xdf43('0x19')]||null:null,'include':_0x1e155b[_0xdf43('0x17')]?_0x1e155b['options']['include']?_['map'](_0x1e155b[_0xdf43('0x17')][_0xdf43('0x1a')],function(_0x2999ba){return{'model':db[_0x2999ba['model']],'as':_0x2999ba['as'],'attributes':_0x2999ba[_0xdf43('0x18')],'include':_0x2999ba[_0xdf43('0x1a')]?_['map'](_0x2999ba['include'],function(_0x3360d9){return{'model':db[_0x3360d9[_0xdf43('0x1b')]],'as':_0x3360d9['as'],'attributes':_0x3360d9[_0xdf43('0x18')],'include':_0x3360d9[_0xdf43('0x1a')]?_[_0xdf43('0x1c')](_0x3360d9[_0xdf43('0x1a')],function(_0x3e8edc){return{'model':db[_0x3e8edc[_0xdf43('0x1b')]],'as':_0x3e8edc['as'],'attributes':_0x3e8edc['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x34513b){logger['info']('GetTemplate',_0x1e155b);logger[_0xdf43('0x1d')](_0xdf43('0x15'),_0x1e155b,JSON['stringify'](_0x34513b));_0x6e3ba5(_0x34513b);})[_0xdf43('0x14')](function(_0x30b9c4){logger[_0xdf43('0xf')](_0xdf43('0x15'),_0x30b9c4[_0xdf43('0x11')],_0x1e155b);_0x16e552(_0x32824f[_0xdf43('0xf')](0x1f4,_0x30b9c4[_0xdf43('0x11')]));});});};
\ No newline at end of file
+var _0xcf38=['ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','then','info','Template,\x20%s,\x20%s','request\x20sent','debug','Template,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetTemplate','Template','options','raw','where','limit','include','model','attributes','map','catch','util','bluebird'];(function(_0x436e7f,_0x26e16f){var _0x5d14d1=function(_0xfd1a14){while(--_0xfd1a14){_0x436e7f['push'](_0x436e7f['shift']());}};_0x5d14d1(++_0x26e16f);}(_0xcf38,0x1cf));var _0x8cf3=function(_0x30cfc3,_0x256fe3){_0x30cfc3=_0x30cfc3-0x0;var _0x37518c=_0xcf38[_0x30cfc3];return _0x37518c;};'use strict';var _=require('lodash');var util=require(_0x8cf3('0x0'));var moment=require('moment');var BPromise=require(_0x8cf3('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8cf3('0x2'));var db=require(_0x8cf3('0x3'))['db'];var utils=require(_0x8cf3('0x4'));var logger=require('../../config/logger')(_0x8cf3('0x5'));var config=require(_0x8cf3('0x6'));var jayson=require(_0x8cf3('0x7'));var client=jayson['client'][_0x8cf3('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x35cb5d,_0x14e995,_0x8d42ff){return new BPromise(function(_0xcbbfd2,_0x4f1788){return client['request'](_0x35cb5d,_0x8d42ff)[_0x8cf3('0x9')](function(_0x23bd33){logger[_0x8cf3('0xa')](_0x8cf3('0xb'),_0x14e995,_0x8cf3('0xc'));logger[_0x8cf3('0xd')](_0x8cf3('0xe'),_0x14e995,'request\x20sent',JSON[_0x8cf3('0xf')](_0x23bd33));if(_0x23bd33['error']){if(_0x23bd33[_0x8cf3('0x10')][_0x8cf3('0x11')]===0x1f4){logger[_0x8cf3('0x10')](_0x8cf3('0xb'),_0x14e995,_0x23bd33[_0x8cf3('0x10')][_0x8cf3('0x12')]);return _0x4f1788(_0x23bd33[_0x8cf3('0x10')][_0x8cf3('0x12')]);}logger['error'](_0x8cf3('0xb'),_0x14e995,_0x23bd33[_0x8cf3('0x10')][_0x8cf3('0x12')]);return _0xcbbfd2(_0x23bd33[_0x8cf3('0x10')][_0x8cf3('0x12')]);}else{logger[_0x8cf3('0xa')]('Template,\x20%s,\x20%s',_0x14e995,'request\x20sent');_0xcbbfd2(_0x23bd33[_0x8cf3('0x13')][_0x8cf3('0x12')]);}})['catch'](function(_0x45180b){logger[_0x8cf3('0x10')]('Template,\x20%s,\x20%s',_0x14e995,_0x45180b);_0x4f1788(_0x45180b);});});}exports[_0x8cf3('0x14')]=function(_0x3fe868){var _0x5ef3a9=this;return new Promise(function(_0x320f4e,_0x4cdfaa){return db[_0x8cf3('0x15')]['findAll']({'raw':_0x3fe868[_0x8cf3('0x16')]?_0x3fe868[_0x8cf3('0x16')][_0x8cf3('0x17')]===undefined?!![]:![]:!![],'where':_0x3fe868[_0x8cf3('0x16')]?_0x3fe868[_0x8cf3('0x16')][_0x8cf3('0x18')]||null:null,'attributes':_0x3fe868[_0x8cf3('0x16')]?_0x3fe868[_0x8cf3('0x16')]['attributes']||null:null,'limit':_0x3fe868[_0x8cf3('0x16')]?_0x3fe868[_0x8cf3('0x16')][_0x8cf3('0x19')]||null:null,'include':_0x3fe868['options']?_0x3fe868[_0x8cf3('0x16')][_0x8cf3('0x1a')]?_['map'](_0x3fe868['options'][_0x8cf3('0x1a')],function(_0x25a84f){return{'model':db[_0x25a84f[_0x8cf3('0x1b')]],'as':_0x25a84f['as'],'attributes':_0x25a84f[_0x8cf3('0x1c')],'include':_0x25a84f[_0x8cf3('0x1a')]?_[_0x8cf3('0x1d')](_0x25a84f[_0x8cf3('0x1a')],function(_0x1f9009){return{'model':db[_0x1f9009['model']],'as':_0x1f9009['as'],'attributes':_0x1f9009[_0x8cf3('0x1c')],'include':_0x1f9009[_0x8cf3('0x1a')]?_['map'](_0x1f9009['include'],function(_0x13c625){return{'model':db[_0x13c625[_0x8cf3('0x1b')]],'as':_0x13c625['as'],'attributes':_0x13c625[_0x8cf3('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x8cf3('0x9')](function(_0x507cca){logger[_0x8cf3('0xa')](_0x8cf3('0x14'),_0x3fe868);logger[_0x8cf3('0xd')](_0x8cf3('0x14'),_0x3fe868,JSON[_0x8cf3('0xf')](_0x507cca));_0x320f4e(_0x507cca);})[_0x8cf3('0x1e')](function(_0x52750a){logger[_0x8cf3('0x10')](_0x8cf3('0x14'),_0x52750a[_0x8cf3('0x12')],_0x3fe868);_0x4cdfaa(_0x5ef3a9['error'](0x1f4,_0x52750a[_0x8cf3('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf443=['getActions','post','addAnyCondition','addAction','put','delete','destroy','exports','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./trigger.controller','isAuthenticated','index','get','/:id','show','/:id/all_conditions','getAllConditions','/:id/any_conditions','getAnyConditions','/:id/actions'];(function(_0x318692,_0x3348c8){var _0x2f135f=function(_0x1c2956){while(--_0x1c2956){_0x318692['push'](_0x318692['shift']());}};_0x2f135f(++_0x3348c8);}(_0xf443,0xc5));var _0x3f44=function(_0x2a9dae,_0x4332f4){_0x2a9dae=_0x2a9dae-0x0;var _0x536698=_0xf443[_0x2a9dae];return _0x536698;};'use strict';var multer=require('multer');var util=require(_0x3f44('0x0'));var path=require(_0x3f44('0x1'));var timeout=require(_0x3f44('0x2'));var express=require(_0x3f44('0x3'));var router=express['Router']();var fs_extra=require(_0x3f44('0x4'));var auth=require(_0x3f44('0x5'));var interaction=require(_0x3f44('0x6'));var config=require(_0x3f44('0x7'));var controller=require(_0x3f44('0x8'));router['get']('/',auth[_0x3f44('0x9')](),controller[_0x3f44('0xa')]);router[_0x3f44('0xb')](_0x3f44('0xc'),auth[_0x3f44('0x9')](),controller[_0x3f44('0xd')]);router[_0x3f44('0xb')](_0x3f44('0xe'),auth[_0x3f44('0x9')](),controller[_0x3f44('0xf')]);router['get'](_0x3f44('0x10'),auth[_0x3f44('0x9')](),controller[_0x3f44('0x11')]);router[_0x3f44('0xb')](_0x3f44('0x12'),auth[_0x3f44('0x9')](),controller[_0x3f44('0x13')]);router[_0x3f44('0x14')]('/',auth[_0x3f44('0x9')](),controller['create']);router['post'](_0x3f44('0xe'),auth[_0x3f44('0x9')](),controller['addAllCondition']);router['post'](_0x3f44('0x10'),auth[_0x3f44('0x9')](),controller[_0x3f44('0x15')]);router[_0x3f44('0x14')](_0x3f44('0x12'),auth[_0x3f44('0x9')](),controller[_0x3f44('0x16')]);router[_0x3f44('0x17')](_0x3f44('0xc'),auth[_0x3f44('0x9')](),controller['update']);router[_0x3f44('0x18')](_0x3f44('0xc'),auth['isAuthenticated'](),controller[_0x3f44('0x19')]);module[_0x3f44('0x1a')]=router;
\ No newline at end of file
+var _0x686a=['delete','destroy','exports','multer','util','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','show','get','getAllConditions','/:id/any_conditions','/:id/actions','getActions','post','create','addAllCondition','addAnyCondition','addAction','put','/:id','update'];(function(_0x3ca1a4,_0x5a4e3d){var _0x7d8111=function(_0x35fa46){while(--_0x35fa46){_0x3ca1a4['push'](_0x3ca1a4['shift']());}};_0x7d8111(++_0x5a4e3d);}(_0x686a,0x162));var _0xa686=function(_0x21f013,_0x3a2050){_0x21f013=_0x21f013-0x0;var _0x1addf8=_0x686a[_0x21f013];return _0x1addf8;};'use strict';var multer=require(_0xa686('0x0'));var util=require(_0xa686('0x1'));var path=require('path');var timeout=require(_0xa686('0x2'));var express=require(_0xa686('0x3'));var router=express['Router']();var fs_extra=require(_0xa686('0x4'));var auth=require(_0xa686('0x5'));var interaction=require(_0xa686('0x6'));var config=require(_0xa686('0x7'));var controller=require('./trigger.controller');router['get']('/',auth[_0xa686('0x8')](),controller[_0xa686('0x9')]);router['get']('/:id',auth[_0xa686('0x8')](),controller[_0xa686('0xa')]);router[_0xa686('0xb')]('/:id/all_conditions',auth[_0xa686('0x8')](),controller[_0xa686('0xc')]);router[_0xa686('0xb')](_0xa686('0xd'),auth[_0xa686('0x8')](),controller['getAnyConditions']);router[_0xa686('0xb')](_0xa686('0xe'),auth[_0xa686('0x8')](),controller[_0xa686('0xf')]);router[_0xa686('0x10')]('/',auth['isAuthenticated'](),controller[_0xa686('0x11')]);router[_0xa686('0x10')]('/:id/all_conditions',auth[_0xa686('0x8')](),controller[_0xa686('0x12')]);router[_0xa686('0x10')](_0xa686('0xd'),auth[_0xa686('0x8')](),controller[_0xa686('0x13')]);router[_0xa686('0x10')](_0xa686('0xe'),auth[_0xa686('0x8')](),controller[_0xa686('0x14')]);router[_0xa686('0x15')](_0xa686('0x16'),auth[_0xa686('0x8')](),controller[_0xa686('0x17')]);router[_0xa686('0x18')](_0xa686('0x16'),auth[_0xa686('0x8')](),controller[_0xa686('0x19')]);module[_0xa686('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x48d0=['exports','STRING','sequelize'];(function(_0x173452,_0x3aa870){var _0xee3fd0=function(_0x10eb01){while(--_0x10eb01){_0x173452['push'](_0x173452['shift']());}};_0xee3fd0(++_0x3aa870);}(_0x48d0,0xf5));var _0x048d=function(_0x6241f4,_0x4730b9){_0x6241f4=_0x6241f4-0x0;var _0x437ee7=_0x48d0[_0x6241f4];return _0x437ee7;};'use strict';var Sequelize=require(_0x048d('0x0'));module[_0x048d('0x1')]={'name':{'type':Sequelize[_0x048d('0x2')]},'channel':{'type':Sequelize[_0x048d('0x2')]},'description':{'type':Sequelize[_0x048d('0x2')]},'status':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x91fb=['STRING','BOOLEAN','sequelize','exports'];(function(_0x460be7,_0x1ae4f2){var _0x53d249=function(_0x2a1088){while(--_0x2a1088){_0x460be7['push'](_0x460be7['shift']());}};_0x53d249(++_0x1ae4f2);}(_0x91fb,0x132));var _0xb91f=function(_0x556634,_0x520958){_0x556634=_0x556634-0x0;var _0x4429fd=_0x91fb[_0x556634];return _0x4429fd;};'use strict';var Sequelize=require(_0xb91f('0x0'));module[_0xb91f('0x1')]={'name':{'type':Sequelize[_0xb91f('0x2')]},'channel':{'type':Sequelize[_0xb91f('0x2')]},'description':{'type':Sequelize[_0xb91f('0x2')]},'status':{'type':Sequelize[_0xb91f('0x3')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe74e=['options','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','TriggerAllId','Condition','getAllConditions','findOne','getAnyConditions','addAction','TriggerId','getActions','Action','eml-format','zip-dir','fast-json-patch','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','../../mysqldb','sendStatus','status','json','offset','limit','undefined','count','set','apply','reject','then','destroy','get','Triggers','UserProfileResource','end','name','send','index','map','Trigger','rawAttributes','fieldName','type','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL'];(function(_0x3f8f20,_0x2be121){var _0x508733=function(_0x11d83e){while(--_0x11d83e){_0x3f8f20['push'](_0x3f8f20['shift']());}};_0x508733(++_0x2be121);}(_0xe74e,0xd7));var _0xee74=function(_0x36a456,_0x2362da){_0x36a456=_0x36a456-0x0;var _0xfb6deb=_0xe74e[_0x36a456];return _0xfb6deb;};'use strict';var emlformat=require(_0xee74('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xee74('0x1'));var jsonpatch=require(_0xee74('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xee74('0x3'));var csv=require(_0xee74('0x4'));var ejs=require(_0xee74('0x5'));var fs=require('fs');var fs_extra=require(_0xee74('0x6'));var _=require(_0xee74('0x7'));var squel=require(_0xee74('0x8'));var crypto=require('crypto');var jsforce=require(_0xee74('0x9'));var deskjs=require(_0xee74('0xa'));var toCsv=require('to-csv');var querystring=require(_0xee74('0xb'));var Papa=require('papaparse');var Redis=require(_0xee74('0xc'));var authService=require(_0xee74('0xd'));var qs=require(_0xee74('0xe'));var as=require(_0xee74('0xf'));var hardwareService=require(_0xee74('0x10'));var logger=require(_0xee74('0x11'))(_0xee74('0x12'));var utils=require(_0xee74('0x13'));var config=require(_0xee74('0x14'));var licenseUtil=require(_0xee74('0x15'));var db=require(_0xee74('0x16'))['db'];function respondWithStatusCode(_0x5f36ba,_0x46df36){_0x46df36=_0x46df36||0xcc;return function(_0x4649f4){if(_0x4649f4){return _0x5f36ba[_0xee74('0x17')](_0x46df36);}return _0x5f36ba['status'](_0x46df36)['end']();};}function respondWithResult(_0x34f6bb,_0x37c7fb){_0x37c7fb=_0x37c7fb||0xc8;return function(_0x96da76){if(_0x96da76){return _0x34f6bb[_0xee74('0x18')](_0x37c7fb)[_0xee74('0x19')](_0x96da76);}};}function respondWithFilteredResult(_0x50d145,_0x365bba){return function(_0xe8b6e4){if(_0xe8b6e4){var _0x1b1833=typeof _0x365bba[_0xee74('0x1a')]==='undefined'&&typeof _0x365bba[_0xee74('0x1b')]===_0xee74('0x1c');var _0x5aea07=_0xe8b6e4['count'];var _0x47845e=_0x1b1833?0x0:_0x365bba[_0xee74('0x1a')];var _0x5195b7=_0x1b1833?_0xe8b6e4[_0xee74('0x1d')]:_0x365bba[_0xee74('0x1a')]+_0x365bba[_0xee74('0x1b')];var _0x1b0d96;if(_0x5195b7>=_0x5aea07){_0x5195b7=_0x5aea07;_0x1b0d96=0xc8;}else{_0x1b0d96=0xce;}_0x50d145[_0xee74('0x18')](_0x1b0d96);return _0x50d145[_0xee74('0x1e')]('Content-Range',_0x47845e+'-'+_0x5195b7+'/'+_0x5aea07)[_0xee74('0x19')](_0xe8b6e4);}return null;};}function patchUpdates(_0x289db9){return function(_0x46e075){try{jsonpatch[_0xee74('0x1f')](_0x46e075,_0x289db9,!![]);}catch(_0x4412eb){return BPromise[_0xee74('0x20')](_0x4412eb);}return _0x46e075['save']();};}function saveUpdates(_0xdee0ee,_0x4bb235){return function(_0x337732){if(_0x337732){return _0x337732['update'](_0xdee0ee)[_0xee74('0x21')](function(_0x111ada){return _0x111ada;});}return null;};}function removeEntity(_0x514cde,_0x212be1){return function(_0x5e8947){if(_0x5e8947){return _0x5e8947[_0xee74('0x22')]()[_0xee74('0x21')](function(){var _0x492eb2=_0x5e8947[_0xee74('0x23')]({'plain':!![]});var _0xf4001f=_0xee74('0x24');return db[_0xee74('0x25')][_0xee74('0x22')]({'where':{'type':_0xf4001f,'resourceId':_0x492eb2['id']}})[_0xee74('0x21')](function(){return _0x5e8947;});})[_0xee74('0x21')](function(){_0x514cde['status'](0xcc)[_0xee74('0x26')]();});}};}function handleEntityNotFound(_0x3611bb,_0x4e5861){return function(_0x5fee93){if(!_0x5fee93){_0x3611bb[_0xee74('0x17')](0x194);}return _0x5fee93;};}function handleError(_0x388761,_0x1d11b4){_0x1d11b4=_0x1d11b4||0x1f4;return function(_0x2fb5aa){logger['error'](_0x2fb5aa['stack']);if(_0x2fb5aa['name']){delete _0x2fb5aa[_0xee74('0x27')];}_0x388761[_0xee74('0x18')](_0x1d11b4)[_0xee74('0x28')](_0x2fb5aa);};}exports[_0xee74('0x29')]=function(_0x433612,_0x323017){var _0x55bedd={},_0x2e5482={},_0x5cb5dd={'count':0x0,'rows':[]};var _0x3bdae=_[_0xee74('0x2a')](db[_0xee74('0x2b')][_0xee74('0x2c')],function(_0x17a7b3){return{'name':_0x17a7b3[_0xee74('0x2d')],'type':_0x17a7b3[_0xee74('0x2e')]['key']};});_0x2e5482['model']=_['map'](_0x3bdae,_0xee74('0x27'));_0x2e5482[_0xee74('0x2f')]=_[_0xee74('0x30')](_0x433612['query']);_0x2e5482[_0xee74('0x31')]=_[_0xee74('0x32')](_0x2e5482['model'],_0x2e5482[_0xee74('0x2f')]);_0x55bedd[_0xee74('0x33')]=_[_0xee74('0x32')](_0x2e5482[_0xee74('0x34')],qs[_0xee74('0x35')](_0x433612[_0xee74('0x2f')][_0xee74('0x35')]));_0x55bedd[_0xee74('0x33')]=_0x55bedd[_0xee74('0x33')][_0xee74('0x36')]?_0x55bedd[_0xee74('0x33')]:_0x2e5482['model'];if(!_0x433612[_0xee74('0x2f')][_0xee74('0x37')](_0xee74('0x38'))){_0x55bedd[_0xee74('0x1b')]=qs['limit'](_0x433612['query'][_0xee74('0x1b')]);_0x55bedd['offset']=qs[_0xee74('0x1a')](_0x433612['query'][_0xee74('0x1a')]);}_0x55bedd[_0xee74('0x39')]=qs[_0xee74('0x3a')](_0x433612[_0xee74('0x2f')]['sort']);_0x55bedd[_0xee74('0x3b')]=qs['filters'](_[_0xee74('0x3c')](_0x433612[_0xee74('0x2f')],_0x2e5482[_0xee74('0x31')]),_0x3bdae);if(_0x433612[_0xee74('0x2f')][_0xee74('0x3d')]){_0x55bedd[_0xee74('0x3b')]=_[_0xee74('0x3e')](_0x55bedd['where'],{'$or':_[_0xee74('0x2a')](_0x3bdae,function(_0x44deb8){if(_0x44deb8[_0xee74('0x2e')]!==_0xee74('0x3f')){var _0x547922={};_0x547922[_0x44deb8['name']]={'$like':'%'+_0x433612[_0xee74('0x2f')][_0xee74('0x3d')]+'%'};return _0x547922;}})});}_0x55bedd=_[_0xee74('0x3e')]({},_0x55bedd,_0x433612[_0xee74('0x40')]);var _0x13b5fa={'where':_0x55bedd['where']};return db[_0xee74('0x2b')][_0xee74('0x1d')](_0x13b5fa)[_0xee74('0x21')](function(_0x55a61f){_0x5cb5dd['count']=_0x55a61f;if(_0x433612[_0xee74('0x2f')][_0xee74('0x41')]){_0x55bedd[_0xee74('0x42')]=[{'all':!![]}];}return db[_0xee74('0x2b')][_0xee74('0x43')](_0x55bedd);})[_0xee74('0x21')](function(_0x750eaf){_0x5cb5dd[_0xee74('0x44')]=_0x750eaf;return _0x5cb5dd;})['then'](respondWithFilteredResult(_0x323017,_0x55bedd))[_0xee74('0x45')](handleError(_0x323017,null));};exports[_0xee74('0x46')]=function(_0x3d692e,_0x558b97){var _0x1c4195={'raw':![],'where':{'id':_0x3d692e[_0xee74('0x47')]['id']}},_0x53e621={};_0x53e621[_0xee74('0x34')]=_[_0xee74('0x30')](db[_0xee74('0x2b')][_0xee74('0x2c')]);_0x53e621[_0xee74('0x2f')]=_[_0xee74('0x30')](_0x3d692e['query']);_0x53e621['filters']=_['intersection'](_0x53e621[_0xee74('0x34')],_0x53e621[_0xee74('0x2f')]);_0x1c4195[_0xee74('0x33')]=_[_0xee74('0x32')](_0x53e621[_0xee74('0x34')],qs[_0xee74('0x35')](_0x3d692e[_0xee74('0x2f')][_0xee74('0x35')]));_0x1c4195[_0xee74('0x33')]=_0x1c4195['attributes']['length']?_0x1c4195['attributes']:_0x53e621[_0xee74('0x34')];if(_0x3d692e[_0xee74('0x2f')][_0xee74('0x41')]){_0x1c4195[_0xee74('0x42')]=[{'all':!![]}];}_0x1c4195=_[_0xee74('0x3e')]({},_0x1c4195,_0x3d692e[_0xee74('0x40')]);return db[_0xee74('0x2b')][_0xee74('0x48')](_0x1c4195)['then'](handleEntityNotFound(_0x558b97,null))[_0xee74('0x21')](respondWithResult(_0x558b97,null))[_0xee74('0x45')](handleError(_0x558b97,null));};exports[_0xee74('0x49')]=function(_0x3cf278,_0x1ce5a4){return db['Trigger'][_0xee74('0x49')](_0x3cf278[_0xee74('0x4a')],{})['then'](function(_0x277314){var _0xc4d24a=_0x3cf278[_0xee74('0x4b')][_0xee74('0x23')]({'plain':!![]});if(!_0xc4d24a)throw new Error(_0xee74('0x4c'));if(_0xc4d24a[_0xee74('0x4d')]===_0xee74('0x4b')){var _0x246a3e=_0x277314['get']({'plain':!![]});var _0x3828a4=_0xee74('0x24');return db[_0xee74('0x4e')][_0xee74('0x48')]({'where':{'name':_0x3828a4,'userProfileId':_0xc4d24a[_0xee74('0x4f')]},'raw':!![]})[_0xee74('0x21')](function(_0x2870d5){if(_0x2870d5&&_0x2870d5[_0xee74('0x50')]===0x0){return db[_0xee74('0x25')][_0xee74('0x49')]({'name':_0x246a3e[_0xee74('0x27')],'resourceId':_0x246a3e['id'],'type':_0x2870d5[_0xee74('0x27')],'sectionId':_0x2870d5['id']},{})[_0xee74('0x21')](function(){return _0x277314;});}else{return _0x277314;}})[_0xee74('0x45')](function(_0x1e85aa){logger[_0xee74('0x51')](_0xee74('0x52'),_0x1e85aa);throw _0x1e85aa;});}return _0x277314;})[_0xee74('0x21')](respondWithResult(_0x1ce5a4,0xc9))[_0xee74('0x45')](handleError(_0x1ce5a4,null));};exports[_0xee74('0x53')]=function(_0x281409,_0x3ad0fd){if(_0x281409[_0xee74('0x4a')]['id']){delete _0x281409[_0xee74('0x4a')]['id'];}return db['Trigger'][_0xee74('0x48')]({'where':{'id':_0x281409[_0xee74('0x47')]['id']}})[_0xee74('0x21')](handleEntityNotFound(_0x3ad0fd,null))[_0xee74('0x21')](saveUpdates(_0x281409[_0xee74('0x4a')],null))[_0xee74('0x21')](respondWithResult(_0x3ad0fd,null))['catch'](handleError(_0x3ad0fd,null));};exports['destroy']=function(_0x50cea5,_0x179f12){return db['Trigger'][_0xee74('0x48')]({'where':{'id':_0x50cea5[_0xee74('0x47')]['id']}})[_0xee74('0x21')](handleEntityNotFound(_0x179f12,null))[_0xee74('0x21')](removeEntity(_0x179f12,null))['catch'](handleError(_0x179f12,null));};exports['addAllCondition']=function(_0x5ee09d,_0x1e500c,_0x25341d){if(_0x5ee09d[_0xee74('0x4a')]['id']){delete _0x5ee09d[_0xee74('0x4a')]['id'];}return db[_0xee74('0x2b')]['find']({'where':{'id':_0x5ee09d[_0xee74('0x47')]['id']}})['then'](handleEntityNotFound(_0x1e500c,null))['then'](function(_0xc38127){if(_0xc38127){_0x5ee09d[_0xee74('0x4a')][_0xee74('0x54')]=_0xc38127['id'];return db[_0xee74('0x55')][_0xee74('0x49')](_0x5ee09d[_0xee74('0x4a')]);}})[_0xee74('0x21')](respondWithResult(_0x1e500c,null))[_0xee74('0x45')](handleError(_0x1e500c,null));};exports['addAnyCondition']=function(_0x161641,_0x1de35b,_0xd280ef){if(_0x161641[_0xee74('0x4a')]['id']){delete _0x161641['body']['id'];}return db['Trigger'][_0xee74('0x48')]({'where':{'id':_0x161641[_0xee74('0x47')]['id']}})[_0xee74('0x21')](handleEntityNotFound(_0x1de35b,null))[_0xee74('0x21')](function(_0x18f2ea){if(_0x18f2ea){_0x161641['body']['TriggerAnyId']=_0x18f2ea['id'];return db[_0xee74('0x55')][_0xee74('0x49')](_0x161641[_0xee74('0x4a')]);}})[_0xee74('0x21')](respondWithResult(_0x1de35b,null))['catch'](handleError(_0x1de35b,null));};exports[_0xee74('0x56')]=function(_0x445e66,_0x32aaba,_0x104832){var _0x503998={};var _0x57655f={};var _0x4c144b;var _0xac833d;return db['Trigger'][_0xee74('0x57')]({'where':{'id':_0x445e66['params']['id']}})[_0xee74('0x21')](handleEntityNotFound(_0x32aaba,null))[_0xee74('0x21')](function(_0x4f2256){if(_0x4f2256){_0x4c144b=_0x4f2256;_0x57655f[_0xee74('0x34')]=_[_0xee74('0x30')](db[_0xee74('0x55')][_0xee74('0x2c')]);_0x57655f['query']=_[_0xee74('0x30')](_0x445e66['query']);_0x57655f[_0xee74('0x31')]=_[_0xee74('0x32')](_0x57655f[_0xee74('0x34')],_0x57655f['query']);_0x503998[_0xee74('0x33')]=_[_0xee74('0x32')](_0x57655f[_0xee74('0x34')],qs[_0xee74('0x35')](_0x445e66['query'][_0xee74('0x35')]));_0x503998[_0xee74('0x33')]=_0x503998['attributes']['length']?_0x503998['attributes']:_0x57655f[_0xee74('0x34')];_0x503998['order']=qs[_0xee74('0x3a')](_0x445e66[_0xee74('0x2f')][_0xee74('0x3a')]);_0x503998[_0xee74('0x3b')]=qs['filters'](_[_0xee74('0x3c')](_0x445e66['query'],_0x57655f[_0xee74('0x31')]));if(_0x445e66[_0xee74('0x2f')]['filter']){_0x503998[_0xee74('0x3b')]=_[_0xee74('0x3e')](_0x503998['where'],{'$or':_[_0xee74('0x2a')](_0x503998[_0xee74('0x33')],function(_0x5fdf98){var _0x50769e={};_0x50769e[_0x5fdf98]={'$like':'%'+_0x445e66[_0xee74('0x2f')][_0xee74('0x3d')]+'%'};return _0x50769e;})});}_0x503998=_[_0xee74('0x3e')]({},_0x503998,_0x445e66[_0xee74('0x40')]);return _0x4c144b[_0xee74('0x56')](_0x503998);}})[_0xee74('0x21')](function(_0x57ae10){if(_0x57ae10){_0xac833d=_0x57ae10[_0xee74('0x36')];if(!_0x445e66[_0xee74('0x2f')][_0xee74('0x37')](_0xee74('0x38'))){_0x503998[_0xee74('0x1b')]=qs[_0xee74('0x1b')](_0x445e66['query']['limit']);_0x503998[_0xee74('0x1a')]=qs[_0xee74('0x1a')](_0x445e66[_0xee74('0x2f')][_0xee74('0x1a')]);}return _0x4c144b[_0xee74('0x56')](_0x503998);}})[_0xee74('0x21')](function(_0x2e3f9d){if(_0x2e3f9d){return _0x2e3f9d?{'count':_0xac833d,'rows':_0x2e3f9d}:null;}})[_0xee74('0x21')](respondWithResult(_0x32aaba,null))[_0xee74('0x45')](handleError(_0x32aaba,null));};exports[_0xee74('0x58')]=function(_0x4b4996,_0x40cc7f,_0x49b420){var _0x349a6a={};var _0x5245a2={};var _0x25e227;var _0x2cef19;return db[_0xee74('0x2b')][_0xee74('0x57')]({'where':{'id':_0x4b4996[_0xee74('0x47')]['id']}})['then'](handleEntityNotFound(_0x40cc7f,null))['then'](function(_0x14e418){if(_0x14e418){_0x25e227=_0x14e418;_0x5245a2[_0xee74('0x34')]=_[_0xee74('0x30')](db[_0xee74('0x55')]['rawAttributes']);_0x5245a2[_0xee74('0x2f')]=_['keys'](_0x4b4996[_0xee74('0x2f')]);_0x5245a2[_0xee74('0x31')]=_['intersection'](_0x5245a2[_0xee74('0x34')],_0x5245a2['query']);_0x349a6a['attributes']=_[_0xee74('0x32')](_0x5245a2[_0xee74('0x34')],qs[_0xee74('0x35')](_0x4b4996[_0xee74('0x2f')][_0xee74('0x35')]));_0x349a6a[_0xee74('0x33')]=_0x349a6a[_0xee74('0x33')]['length']?_0x349a6a[_0xee74('0x33')]:_0x5245a2[_0xee74('0x34')];_0x349a6a['order']=qs['sort'](_0x4b4996['query'][_0xee74('0x3a')]);_0x349a6a[_0xee74('0x3b')]=qs[_0xee74('0x31')](_['pick'](_0x4b4996['query'],_0x5245a2['filters']));if(_0x4b4996[_0xee74('0x2f')][_0xee74('0x3d')]){_0x349a6a['where']=_[_0xee74('0x3e')](_0x349a6a[_0xee74('0x3b')],{'$or':_[_0xee74('0x2a')](_0x349a6a['attributes'],function(_0x12ce90){var _0x5e7b94={};_0x5e7b94[_0x12ce90]={'$like':'%'+_0x4b4996[_0xee74('0x2f')][_0xee74('0x3d')]+'%'};return _0x5e7b94;})});}_0x349a6a=_['merge']({},_0x349a6a,_0x4b4996[_0xee74('0x40')]);return _0x25e227[_0xee74('0x58')](_0x349a6a);}})['then'](function(_0x379d06){if(_0x379d06){_0x2cef19=_0x379d06[_0xee74('0x36')];if(!_0x4b4996[_0xee74('0x2f')][_0xee74('0x37')](_0xee74('0x38'))){_0x349a6a[_0xee74('0x1b')]=qs[_0xee74('0x1b')](_0x4b4996[_0xee74('0x2f')][_0xee74('0x1b')]);_0x349a6a[_0xee74('0x1a')]=qs[_0xee74('0x1a')](_0x4b4996[_0xee74('0x2f')][_0xee74('0x1a')]);}return _0x25e227[_0xee74('0x58')](_0x349a6a);}})['then'](function(_0x450718){if(_0x450718){return _0x450718?{'count':_0x2cef19,'rows':_0x450718}:null;}})[_0xee74('0x21')](respondWithResult(_0x40cc7f,null))[_0xee74('0x45')](handleError(_0x40cc7f,null));};exports[_0xee74('0x59')]=function(_0x351189,_0x1a7237,_0x2d1b0c){if(_0x351189[_0xee74('0x4a')]['id']){delete _0x351189[_0xee74('0x4a')]['id'];}return db[_0xee74('0x2b')][_0xee74('0x48')]({'where':{'id':_0x351189[_0xee74('0x47')]['id']}})[_0xee74('0x21')](handleEntityNotFound(_0x1a7237,null))[_0xee74('0x21')](function(_0x4215b5){if(_0x4215b5){_0x351189[_0xee74('0x4a')][_0xee74('0x5a')]=_0x4215b5['id'];return db['Action'][_0xee74('0x49')](_0x351189['body']);}})[_0xee74('0x21')](respondWithResult(_0x1a7237,null))['catch'](handleError(_0x1a7237,null));};exports[_0xee74('0x5b')]=function(_0xf83ecd,_0x365f1a,_0x14a620){var _0x3fa47f={};var _0x1dfd0c={};var _0x5100cb;var _0x3d3c16;return db[_0xee74('0x2b')][_0xee74('0x57')]({'where':{'id':_0xf83ecd[_0xee74('0x47')]['id']}})[_0xee74('0x21')](handleEntityNotFound(_0x365f1a,null))['then'](function(_0x5e935e){if(_0x5e935e){_0x5100cb=_0x5e935e;_0x1dfd0c[_0xee74('0x34')]=_[_0xee74('0x30')](db[_0xee74('0x5c')][_0xee74('0x2c')]);_0x1dfd0c['query']=_[_0xee74('0x30')](_0xf83ecd['query']);_0x1dfd0c[_0xee74('0x31')]=_[_0xee74('0x32')](_0x1dfd0c[_0xee74('0x34')],_0x1dfd0c['query']);_0x3fa47f[_0xee74('0x33')]=_[_0xee74('0x32')](_0x1dfd0c[_0xee74('0x34')],qs[_0xee74('0x35')](_0xf83ecd['query'][_0xee74('0x35')]));_0x3fa47f[_0xee74('0x33')]=_0x3fa47f[_0xee74('0x33')][_0xee74('0x36')]?_0x3fa47f[_0xee74('0x33')]:_0x1dfd0c[_0xee74('0x34')];_0x3fa47f['order']=qs['sort'](_0xf83ecd[_0xee74('0x2f')][_0xee74('0x3a')]);_0x3fa47f[_0xee74('0x3b')]=qs[_0xee74('0x31')](_['pick'](_0xf83ecd[_0xee74('0x2f')],_0x1dfd0c[_0xee74('0x31')]));if(_0xf83ecd[_0xee74('0x2f')]['filter']){_0x3fa47f[_0xee74('0x3b')]=_['merge'](_0x3fa47f[_0xee74('0x3b')],{'$or':_['map'](_0x3fa47f[_0xee74('0x33')],function(_0x2dff19){var _0x4709d6={};_0x4709d6[_0x2dff19]={'$like':'%'+_0xf83ecd[_0xee74('0x2f')][_0xee74('0x3d')]+'%'};return _0x4709d6;})});}_0x3fa47f=_['merge']({},_0x3fa47f,_0xf83ecd[_0xee74('0x40')]);return _0x5100cb[_0xee74('0x5b')](_0x3fa47f);}})[_0xee74('0x21')](function(_0x580f1f){if(_0x580f1f){_0x3d3c16=_0x580f1f[_0xee74('0x36')];if(!_0xf83ecd[_0xee74('0x2f')][_0xee74('0x37')](_0xee74('0x38'))){_0x3fa47f[_0xee74('0x1b')]=qs[_0xee74('0x1b')](_0xf83ecd[_0xee74('0x2f')][_0xee74('0x1b')]);_0x3fa47f[_0xee74('0x1a')]=qs['offset'](_0xf83ecd[_0xee74('0x2f')]['offset']);}return _0x5100cb[_0xee74('0x5b')](_0x3fa47f);}})['then'](function(_0x3180d9){if(_0x3180d9){return _0x3180d9?{'count':_0x3d3c16,'rows':_0x3180d9}:null;}})['then'](respondWithResult(_0x365f1a,null))[_0xee74('0x45')](handleError(_0x365f1a,null));};
\ No newline at end of file
+var _0xbde5=['Content-Range','apply','reject','save','update','then','Triggers','destroy','error','name','send','map','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','pick','filter','merge','VIRTUAL','Trigger','include','rows','params','includeAll','options','catch','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','find','autoAssociation','addAllCondition','TriggerAllId','addAnyCondition','TriggerAnyId','getAllConditions','hasOwnProperty','Condition','order','getAnyConditions','TriggerId','Action','getActions','findOne','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xbde5,0x95));var _0x5bde=function(_0x144206,_0x35fa8c){_0x144206=_0x144206-0x0;var _0x312340=_0xbde5[_0x144206];return _0x312340;};'use strict';var emlformat=require(_0x5bde('0x0'));var rimraf=require(_0x5bde('0x1'));var zipdir=require(_0x5bde('0x2'));var jsonpatch=require(_0x5bde('0x3'));var rp=require(_0x5bde('0x4'));var moment=require(_0x5bde('0x5'));var BPromise=require(_0x5bde('0x6'));var Mustache=require(_0x5bde('0x7'));var util=require(_0x5bde('0x8'));var path=require(_0x5bde('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x5bde('0xa'));var fs=require('fs');var fs_extra=require(_0x5bde('0xb'));var _=require(_0x5bde('0xc'));var squel=require('squel');var crypto=require(_0x5bde('0xd'));var jsforce=require(_0x5bde('0xe'));var deskjs=require(_0x5bde('0xf'));var toCsv=require(_0x5bde('0x10'));var querystring=require('querystring');var Papa=require(_0x5bde('0x11'));var Redis=require(_0x5bde('0x12'));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(_0x5bde('0x13'))(_0x5bde('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x5bde('0x15'));var db=require(_0x5bde('0x16'))['db'];function respondWithStatusCode(_0x3669c4,_0x4138f7){_0x4138f7=_0x4138f7||0xcc;return function(_0x464064){if(_0x464064){return _0x3669c4[_0x5bde('0x17')](_0x4138f7);}return _0x3669c4[_0x5bde('0x18')](_0x4138f7)[_0x5bde('0x19')]();};}function respondWithResult(_0x18acc7,_0x3bd1fd){_0x3bd1fd=_0x3bd1fd||0xc8;return function(_0x2db8b8){if(_0x2db8b8){return _0x18acc7[_0x5bde('0x18')](_0x3bd1fd)[_0x5bde('0x1a')](_0x2db8b8);}};}function respondWithFilteredResult(_0x509e75,_0x40f189){return function(_0x1cfacf){if(_0x1cfacf){var _0x957a43=typeof _0x40f189[_0x5bde('0x1b')]===_0x5bde('0x1c')&&typeof _0x40f189[_0x5bde('0x1d')]==='undefined';var _0x2b518d=_0x1cfacf[_0x5bde('0x1e')];var _0x4c32b5=_0x957a43?0x0:_0x40f189['offset'];var _0x7ab7f6=_0x957a43?_0x1cfacf[_0x5bde('0x1e')]:_0x40f189['offset']+_0x40f189[_0x5bde('0x1d')];var _0x50b829;if(_0x7ab7f6>=_0x2b518d){_0x7ab7f6=_0x2b518d;_0x50b829=0xc8;}else{_0x50b829=0xce;}_0x509e75[_0x5bde('0x18')](_0x50b829);return _0x509e75['set'](_0x5bde('0x1f'),_0x4c32b5+'-'+_0x7ab7f6+'/'+_0x2b518d)[_0x5bde('0x1a')](_0x1cfacf);}return null;};}function patchUpdates(_0x35778e){return function(_0x5c71f7){try{jsonpatch[_0x5bde('0x20')](_0x5c71f7,_0x35778e,!![]);}catch(_0x34e742){return BPromise[_0x5bde('0x21')](_0x34e742);}return _0x5c71f7[_0x5bde('0x22')]();};}function saveUpdates(_0x33aa69,_0x514eca){return function(_0x350325){if(_0x350325){return _0x350325[_0x5bde('0x23')](_0x33aa69)[_0x5bde('0x24')](function(_0x1e4a0b){return _0x1e4a0b;});}return null;};}function removeEntity(_0x37fa4d,_0x453dcd){return function(_0x4688f8){if(_0x4688f8){return _0x4688f8['destroy']()[_0x5bde('0x24')](function(){var _0xda9c98=_0x4688f8['get']({'plain':!![]});var _0x4a6264=_0x5bde('0x25');return db['UserProfileResource'][_0x5bde('0x26')]({'where':{'type':_0x4a6264,'resourceId':_0xda9c98['id']}})[_0x5bde('0x24')](function(){return _0x4688f8;});})[_0x5bde('0x24')](function(){_0x37fa4d[_0x5bde('0x18')](0xcc)[_0x5bde('0x19')]();});}};}function handleEntityNotFound(_0x56c7f9,_0x51c23f){return function(_0x390955){if(!_0x390955){_0x56c7f9['sendStatus'](0x194);}return _0x390955;};}function handleError(_0x26d352,_0x17599e){_0x17599e=_0x17599e||0x1f4;return function(_0x15b0e7){logger[_0x5bde('0x27')](_0x15b0e7['stack']);if(_0x15b0e7[_0x5bde('0x28')]){delete _0x15b0e7[_0x5bde('0x28')];}_0x26d352[_0x5bde('0x18')](_0x17599e)[_0x5bde('0x29')](_0x15b0e7);};}exports['index']=function(_0x23061d,_0x2a3854){var _0x11cfcd={},_0x2c1699={},_0x5cc902={'count':0x0,'rows':[]};var _0x3a7c05=_[_0x5bde('0x2a')](db['Trigger'][_0x5bde('0x2b')],function(_0x43d61a){return{'name':_0x43d61a['fieldName'],'type':_0x43d61a[_0x5bde('0x2c')][_0x5bde('0x2d')]};});_0x2c1699[_0x5bde('0x2e')]=_[_0x5bde('0x2a')](_0x3a7c05,'name');_0x2c1699[_0x5bde('0x2f')]=_[_0x5bde('0x30')](_0x23061d[_0x5bde('0x2f')]);_0x2c1699[_0x5bde('0x31')]=_[_0x5bde('0x32')](_0x2c1699[_0x5bde('0x2e')],_0x2c1699[_0x5bde('0x2f')]);_0x11cfcd[_0x5bde('0x33')]=_[_0x5bde('0x32')](_0x2c1699[_0x5bde('0x2e')],qs[_0x5bde('0x34')](_0x23061d[_0x5bde('0x2f')][_0x5bde('0x34')]));_0x11cfcd[_0x5bde('0x33')]=_0x11cfcd[_0x5bde('0x33')][_0x5bde('0x35')]?_0x11cfcd['attributes']:_0x2c1699[_0x5bde('0x2e')];if(!_0x23061d[_0x5bde('0x2f')]['hasOwnProperty'](_0x5bde('0x36'))){_0x11cfcd[_0x5bde('0x1d')]=qs[_0x5bde('0x1d')](_0x23061d[_0x5bde('0x2f')][_0x5bde('0x1d')]);_0x11cfcd[_0x5bde('0x1b')]=qs['offset'](_0x23061d[_0x5bde('0x2f')]['offset']);}_0x11cfcd['order']=qs[_0x5bde('0x37')](_0x23061d[_0x5bde('0x2f')][_0x5bde('0x37')]);_0x11cfcd[_0x5bde('0x38')]=qs['filters'](_[_0x5bde('0x39')](_0x23061d[_0x5bde('0x2f')],_0x2c1699[_0x5bde('0x31')]),_0x3a7c05);if(_0x23061d[_0x5bde('0x2f')][_0x5bde('0x3a')]){_0x11cfcd[_0x5bde('0x38')]=_[_0x5bde('0x3b')](_0x11cfcd[_0x5bde('0x38')],{'$or':_[_0x5bde('0x2a')](_0x3a7c05,function(_0x13fe0f){if(_0x13fe0f[_0x5bde('0x2c')]!==_0x5bde('0x3c')){var _0xe77f5f={};_0xe77f5f[_0x13fe0f[_0x5bde('0x28')]]={'$like':'%'+_0x23061d['query'][_0x5bde('0x3a')]+'%'};return _0xe77f5f;}})});}_0x11cfcd=_[_0x5bde('0x3b')]({},_0x11cfcd,_0x23061d['options']);var _0x1fe62f={'where':_0x11cfcd[_0x5bde('0x38')]};return db[_0x5bde('0x3d')]['count'](_0x1fe62f)[_0x5bde('0x24')](function(_0x2d80c7){_0x5cc902[_0x5bde('0x1e')]=_0x2d80c7;if(_0x23061d[_0x5bde('0x2f')]['includeAll']){_0x11cfcd[_0x5bde('0x3e')]=[{'all':!![]}];}return db[_0x5bde('0x3d')]['findAll'](_0x11cfcd);})[_0x5bde('0x24')](function(_0x5857c7){_0x5cc902[_0x5bde('0x3f')]=_0x5857c7;return _0x5cc902;})[_0x5bde('0x24')](respondWithFilteredResult(_0x2a3854,_0x11cfcd))['catch'](handleError(_0x2a3854,null));};exports['show']=function(_0x20004b,_0x4924b5){var _0x2b349d={'raw':![],'where':{'id':_0x20004b[_0x5bde('0x40')]['id']}},_0x1c1c17={};_0x1c1c17[_0x5bde('0x2e')]=_[_0x5bde('0x30')](db['Trigger'][_0x5bde('0x2b')]);_0x1c1c17[_0x5bde('0x2f')]=_[_0x5bde('0x30')](_0x20004b[_0x5bde('0x2f')]);_0x1c1c17['filters']=_['intersection'](_0x1c1c17[_0x5bde('0x2e')],_0x1c1c17['query']);_0x2b349d[_0x5bde('0x33')]=_[_0x5bde('0x32')](_0x1c1c17[_0x5bde('0x2e')],qs[_0x5bde('0x34')](_0x20004b['query'][_0x5bde('0x34')]));_0x2b349d[_0x5bde('0x33')]=_0x2b349d[_0x5bde('0x33')][_0x5bde('0x35')]?_0x2b349d[_0x5bde('0x33')]:_0x1c1c17[_0x5bde('0x2e')];if(_0x20004b[_0x5bde('0x2f')][_0x5bde('0x41')]){_0x2b349d[_0x5bde('0x3e')]=[{'all':!![]}];}_0x2b349d=_[_0x5bde('0x3b')]({},_0x2b349d,_0x20004b[_0x5bde('0x42')]);return db['Trigger']['find'](_0x2b349d)[_0x5bde('0x24')](handleEntityNotFound(_0x4924b5,null))[_0x5bde('0x24')](respondWithResult(_0x4924b5,null))[_0x5bde('0x43')](handleError(_0x4924b5,null));};exports[_0x5bde('0x44')]=function(_0x5da6e0,_0x2ffc95){return db[_0x5bde('0x3d')][_0x5bde('0x44')](_0x5da6e0[_0x5bde('0x45')],{})[_0x5bde('0x24')](function(_0x1b47cc){var _0x4bcade=_0x5da6e0['user'][_0x5bde('0x46')]({'plain':!![]});if(!_0x4bcade)throw new Error(_0x5bde('0x47'));if(_0x4bcade[_0x5bde('0x48')]===_0x5bde('0x49')){var _0x17b7e2=_0x1b47cc[_0x5bde('0x46')]({'plain':!![]});var _0x5df009='Triggers';return db[_0x5bde('0x4a')][_0x5bde('0x4b')]({'where':{'name':_0x5df009,'userProfileId':_0x4bcade['userProfileId']},'raw':!![]})['then'](function(_0x46a69a){if(_0x46a69a&&_0x46a69a[_0x5bde('0x4c')]===0x0){return db['UserProfileResource'][_0x5bde('0x44')]({'name':_0x17b7e2['name'],'resourceId':_0x17b7e2['id'],'type':_0x46a69a[_0x5bde('0x28')],'sectionId':_0x46a69a['id']},{})['then'](function(){return _0x1b47cc;});}else{return _0x1b47cc;}})[_0x5bde('0x43')](function(_0x44ad9d){logger[_0x5bde('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x44ad9d);throw _0x44ad9d;});}return _0x1b47cc;})[_0x5bde('0x24')](respondWithResult(_0x2ffc95,0xc9))['catch'](handleError(_0x2ffc95,null));};exports[_0x5bde('0x23')]=function(_0x4d95f6,_0x25af79){if(_0x4d95f6[_0x5bde('0x45')]['id']){delete _0x4d95f6['body']['id'];}return db['Trigger']['find']({'where':{'id':_0x4d95f6['params']['id']}})[_0x5bde('0x24')](handleEntityNotFound(_0x25af79,null))[_0x5bde('0x24')](saveUpdates(_0x4d95f6['body'],null))[_0x5bde('0x24')](respondWithResult(_0x25af79,null))['catch'](handleError(_0x25af79,null));};exports['destroy']=function(_0x4ec88e,_0x25f8e1){return db[_0x5bde('0x3d')][_0x5bde('0x4b')]({'where':{'id':_0x4ec88e[_0x5bde('0x40')]['id']}})[_0x5bde('0x24')](handleEntityNotFound(_0x25f8e1,null))[_0x5bde('0x24')](removeEntity(_0x25f8e1,null))['catch'](handleError(_0x25f8e1,null));};exports[_0x5bde('0x4d')]=function(_0x2fd9,_0x2436d8,_0x5d6853){if(_0x2fd9[_0x5bde('0x45')]['id']){delete _0x2fd9[_0x5bde('0x45')]['id'];}return db[_0x5bde('0x3d')][_0x5bde('0x4b')]({'where':{'id':_0x2fd9[_0x5bde('0x40')]['id']}})['then'](handleEntityNotFound(_0x2436d8,null))[_0x5bde('0x24')](function(_0x38c588){if(_0x38c588){_0x2fd9[_0x5bde('0x45')][_0x5bde('0x4e')]=_0x38c588['id'];return db['Condition']['create'](_0x2fd9['body']);}})[_0x5bde('0x24')](respondWithResult(_0x2436d8,null))[_0x5bde('0x43')](handleError(_0x2436d8,null));};exports[_0x5bde('0x4f')]=function(_0x238030,_0x16f608,_0x236c28){if(_0x238030['body']['id']){delete _0x238030[_0x5bde('0x45')]['id'];}return db[_0x5bde('0x3d')][_0x5bde('0x4b')]({'where':{'id':_0x238030['params']['id']}})['then'](handleEntityNotFound(_0x16f608,null))[_0x5bde('0x24')](function(_0x28640e){if(_0x28640e){_0x238030['body'][_0x5bde('0x50')]=_0x28640e['id'];return db['Condition'][_0x5bde('0x44')](_0x238030[_0x5bde('0x45')]);}})['then'](respondWithResult(_0x16f608,null))[_0x5bde('0x43')](handleError(_0x16f608,null));};exports['getAllConditions']=function(_0x353777,_0x1a2a68,_0x401a53){var _0x3c0220={};var _0x3ac9b1={};var _0x218169;var _0x1149e5;return db[_0x5bde('0x3d')]['findOne']({'where':{'id':_0x353777[_0x5bde('0x40')]['id']}})['then'](handleEntityNotFound(_0x1a2a68,null))['then'](function(_0x5a7cbc){if(_0x5a7cbc){_0x218169=_0x5a7cbc;_0x3ac9b1['model']=_[_0x5bde('0x30')](db['Condition'][_0x5bde('0x2b')]);_0x3ac9b1[_0x5bde('0x2f')]=_[_0x5bde('0x30')](_0x353777[_0x5bde('0x2f')]);_0x3ac9b1[_0x5bde('0x31')]=_[_0x5bde('0x32')](_0x3ac9b1[_0x5bde('0x2e')],_0x3ac9b1['query']);_0x3c0220['attributes']=_['intersection'](_0x3ac9b1['model'],qs[_0x5bde('0x34')](_0x353777[_0x5bde('0x2f')]['fields']));_0x3c0220[_0x5bde('0x33')]=_0x3c0220[_0x5bde('0x33')][_0x5bde('0x35')]?_0x3c0220[_0x5bde('0x33')]:_0x3ac9b1[_0x5bde('0x2e')];_0x3c0220['order']=qs['sort'](_0x353777[_0x5bde('0x2f')][_0x5bde('0x37')]);_0x3c0220[_0x5bde('0x38')]=qs[_0x5bde('0x31')](_[_0x5bde('0x39')](_0x353777[_0x5bde('0x2f')],_0x3ac9b1[_0x5bde('0x31')]));if(_0x353777['query'][_0x5bde('0x3a')]){_0x3c0220[_0x5bde('0x38')]=_[_0x5bde('0x3b')](_0x3c0220[_0x5bde('0x38')],{'$or':_['map'](_0x3c0220[_0x5bde('0x33')],function(_0x30d84e){var _0x176431={};_0x176431[_0x30d84e]={'$like':'%'+_0x353777[_0x5bde('0x2f')]['filter']+'%'};return _0x176431;})});}_0x3c0220=_[_0x5bde('0x3b')]({},_0x3c0220,_0x353777['options']);return _0x218169[_0x5bde('0x51')](_0x3c0220);}})[_0x5bde('0x24')](function(_0x571cdd){if(_0x571cdd){_0x1149e5=_0x571cdd[_0x5bde('0x35')];if(!_0x353777['query'][_0x5bde('0x52')]('nolimit')){_0x3c0220[_0x5bde('0x1d')]=qs['limit'](_0x353777[_0x5bde('0x2f')][_0x5bde('0x1d')]);_0x3c0220[_0x5bde('0x1b')]=qs['offset'](_0x353777['query']['offset']);}return _0x218169[_0x5bde('0x51')](_0x3c0220);}})[_0x5bde('0x24')](function(_0x12c5f7){if(_0x12c5f7){return _0x12c5f7?{'count':_0x1149e5,'rows':_0x12c5f7}:null;}})[_0x5bde('0x24')](respondWithResult(_0x1a2a68,null))[_0x5bde('0x43')](handleError(_0x1a2a68,null));};exports['getAnyConditions']=function(_0x592905,_0x2f93cb,_0x131b02){var _0xcd3a85={};var _0x34044a={};var _0x4d6e9;var _0x230016;return db[_0x5bde('0x3d')]['findOne']({'where':{'id':_0x592905[_0x5bde('0x40')]['id']}})[_0x5bde('0x24')](handleEntityNotFound(_0x2f93cb,null))[_0x5bde('0x24')](function(_0x1d0e5a){if(_0x1d0e5a){_0x4d6e9=_0x1d0e5a;_0x34044a[_0x5bde('0x2e')]=_[_0x5bde('0x30')](db[_0x5bde('0x53')][_0x5bde('0x2b')]);_0x34044a[_0x5bde('0x2f')]=_[_0x5bde('0x30')](_0x592905[_0x5bde('0x2f')]);_0x34044a[_0x5bde('0x31')]=_['intersection'](_0x34044a[_0x5bde('0x2e')],_0x34044a[_0x5bde('0x2f')]);_0xcd3a85[_0x5bde('0x33')]=_[_0x5bde('0x32')](_0x34044a['model'],qs['fields'](_0x592905[_0x5bde('0x2f')][_0x5bde('0x34')]));_0xcd3a85[_0x5bde('0x33')]=_0xcd3a85[_0x5bde('0x33')][_0x5bde('0x35')]?_0xcd3a85['attributes']:_0x34044a[_0x5bde('0x2e')];_0xcd3a85[_0x5bde('0x54')]=qs['sort'](_0x592905[_0x5bde('0x2f')][_0x5bde('0x37')]);_0xcd3a85[_0x5bde('0x38')]=qs[_0x5bde('0x31')](_['pick'](_0x592905[_0x5bde('0x2f')],_0x34044a[_0x5bde('0x31')]));if(_0x592905[_0x5bde('0x2f')][_0x5bde('0x3a')]){_0xcd3a85[_0x5bde('0x38')]=_[_0x5bde('0x3b')](_0xcd3a85[_0x5bde('0x38')],{'$or':_[_0x5bde('0x2a')](_0xcd3a85[_0x5bde('0x33')],function(_0x20047a){var _0x4e2070={};_0x4e2070[_0x20047a]={'$like':'%'+_0x592905[_0x5bde('0x2f')][_0x5bde('0x3a')]+'%'};return _0x4e2070;})});}_0xcd3a85=_[_0x5bde('0x3b')]({},_0xcd3a85,_0x592905[_0x5bde('0x42')]);return _0x4d6e9[_0x5bde('0x55')](_0xcd3a85);}})[_0x5bde('0x24')](function(_0x499ecd){if(_0x499ecd){_0x230016=_0x499ecd[_0x5bde('0x35')];if(!_0x592905[_0x5bde('0x2f')]['hasOwnProperty']('nolimit')){_0xcd3a85[_0x5bde('0x1d')]=qs['limit'](_0x592905[_0x5bde('0x2f')][_0x5bde('0x1d')]);_0xcd3a85[_0x5bde('0x1b')]=qs['offset'](_0x592905[_0x5bde('0x2f')]['offset']);}return _0x4d6e9[_0x5bde('0x55')](_0xcd3a85);}})[_0x5bde('0x24')](function(_0x1ad113){if(_0x1ad113){return _0x1ad113?{'count':_0x230016,'rows':_0x1ad113}:null;}})['then'](respondWithResult(_0x2f93cb,null))[_0x5bde('0x43')](handleError(_0x2f93cb,null));};exports['addAction']=function(_0x77f6ce,_0x57ea48,_0x3cc5e6){if(_0x77f6ce[_0x5bde('0x45')]['id']){delete _0x77f6ce[_0x5bde('0x45')]['id'];}return db[_0x5bde('0x3d')][_0x5bde('0x4b')]({'where':{'id':_0x77f6ce[_0x5bde('0x40')]['id']}})[_0x5bde('0x24')](handleEntityNotFound(_0x57ea48,null))[_0x5bde('0x24')](function(_0x2767c4){if(_0x2767c4){_0x77f6ce[_0x5bde('0x45')][_0x5bde('0x56')]=_0x2767c4['id'];return db[_0x5bde('0x57')]['create'](_0x77f6ce[_0x5bde('0x45')]);}})[_0x5bde('0x24')](respondWithResult(_0x57ea48,null))[_0x5bde('0x43')](handleError(_0x57ea48,null));};exports[_0x5bde('0x58')]=function(_0x260f41,_0x51841f,_0x165c40){var _0x4b885c={};var _0x3b5bf8={};var _0xf613bd;var _0x2c0539;return db[_0x5bde('0x3d')][_0x5bde('0x59')]({'where':{'id':_0x260f41[_0x5bde('0x40')]['id']}})[_0x5bde('0x24')](handleEntityNotFound(_0x51841f,null))[_0x5bde('0x24')](function(_0x139f21){if(_0x139f21){_0xf613bd=_0x139f21;_0x3b5bf8[_0x5bde('0x2e')]=_[_0x5bde('0x30')](db[_0x5bde('0x57')][_0x5bde('0x2b')]);_0x3b5bf8[_0x5bde('0x2f')]=_[_0x5bde('0x30')](_0x260f41[_0x5bde('0x2f')]);_0x3b5bf8[_0x5bde('0x31')]=_[_0x5bde('0x32')](_0x3b5bf8[_0x5bde('0x2e')],_0x3b5bf8[_0x5bde('0x2f')]);_0x4b885c[_0x5bde('0x33')]=_[_0x5bde('0x32')](_0x3b5bf8[_0x5bde('0x2e')],qs[_0x5bde('0x34')](_0x260f41[_0x5bde('0x2f')]['fields']));_0x4b885c[_0x5bde('0x33')]=_0x4b885c[_0x5bde('0x33')][_0x5bde('0x35')]?_0x4b885c[_0x5bde('0x33')]:_0x3b5bf8[_0x5bde('0x2e')];_0x4b885c[_0x5bde('0x54')]=qs[_0x5bde('0x37')](_0x260f41[_0x5bde('0x2f')]['sort']);_0x4b885c[_0x5bde('0x38')]=qs['filters'](_[_0x5bde('0x39')](_0x260f41[_0x5bde('0x2f')],_0x3b5bf8[_0x5bde('0x31')]));if(_0x260f41[_0x5bde('0x2f')]['filter']){_0x4b885c[_0x5bde('0x38')]=_['merge'](_0x4b885c[_0x5bde('0x38')],{'$or':_[_0x5bde('0x2a')](_0x4b885c[_0x5bde('0x33')],function(_0x2656d9){var _0x294f24={};_0x294f24[_0x2656d9]={'$like':'%'+_0x260f41['query']['filter']+'%'};return _0x294f24;})});}_0x4b885c=_['merge']({},_0x4b885c,_0x260f41[_0x5bde('0x42')]);return _0xf613bd[_0x5bde('0x58')](_0x4b885c);}})['then'](function(_0x3888a2){if(_0x3888a2){_0x2c0539=_0x3888a2[_0x5bde('0x35')];if(!_0x260f41[_0x5bde('0x2f')][_0x5bde('0x52')](_0x5bde('0x36'))){_0x4b885c[_0x5bde('0x1d')]=qs[_0x5bde('0x1d')](_0x260f41[_0x5bde('0x2f')][_0x5bde('0x1d')]);_0x4b885c[_0x5bde('0x1b')]=qs[_0x5bde('0x1b')](_0x260f41[_0x5bde('0x2f')][_0x5bde('0x1b')]);}return _0xf613bd[_0x5bde('0x58')](_0x4b885c);}})['then'](function(_0x4cb143){if(_0x4cb143){return _0x4cb143?{'count':_0x2c0539,'rows':_0x4cb143}:null;}})[_0x5bde('0x24')](respondWithResult(_0x51841f,null))[_0x5bde('0x43')](handleError(_0x51841f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46cb=['bluebird','request-promise','path','rimraf','../../config/environment','./trigger.attributes','exports','define','Trigger','tools_triggers','api','moment'];(function(_0x37bce2,_0x58ab85){var _0x74915f=function(_0x470560){while(--_0x470560){_0x37bce2['push'](_0x37bce2['shift']());}};_0x74915f(++_0x58ab85);}(_0x46cb,0xd6));var _0xb46c=function(_0x12c45d,_0x97707a){_0x12c45d=_0x12c45d-0x0;var _0x4f2a58=_0x46cb[_0x12c45d];return _0x4f2a58;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0xb46c('0x0'));var moment=require(_0xb46c('0x1'));var BPromise=require(_0xb46c('0x2'));var rp=require(_0xb46c('0x3'));var fs=require('fs');var path=require(_0xb46c('0x4'));var rimraf=require(_0xb46c('0x5'));var config=require(_0xb46c('0x6'));var attributes=require(_0xb46c('0x7'));module[_0xb46c('0x8')]=function(_0xf4f306,_0x2e3704){return _0xf4f306[_0xb46c('0x9')](_0xb46c('0xa'),attributes,{'tableName':_0xb46c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x323b=['lodash','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./trigger.attributes','exports','tools_triggers'];(function(_0x281249,_0x1e1460){var _0xf5399a=function(_0x536982){while(--_0x536982){_0x281249['push'](_0x281249['shift']());}};_0xf5399a(++_0x1e1460);}(_0x323b,0x1ad));var _0xb323=function(_0x44c992,_0x19f125){_0x44c992=_0x44c992-0x0;var _0x4fce68=_0x323b[_0x44c992];return _0x4fce68;};'use strict';var _=require(_0xb323('0x0'));var util=require('util');var logger=require(_0xb323('0x1'))(_0xb323('0x2'));var moment=require(_0xb323('0x3'));var BPromise=require('bluebird');var rp=require(_0xb323('0x4'));var fs=require('fs');var path=require(_0xb323('0x5'));var rimraf=require(_0xb323('0x6'));var config=require(_0xb323('0x7'));var attributes=require(_0xb323('0x8'));module[_0xb323('0x9')]=function(_0x142b9b,_0x4620a0){return _0x142b9b['define']('Trigger',attributes,{'tableName':_0xb323('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x091d=['../../config/utils','../../config/logger','rpc','../../config/environment','http','request','then','info','Trigger,\x20%s,\x20%s','Trigger,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetTrigger','Trigger','findAll','options','raw','attributes','limit','include','map','model','debug','ShowTrigger','lodash','util','bluebird','randomstring','ioredis'];(function(_0x3c2a69,_0x4c8b41){var _0x596bc8=function(_0x1b4b7c){while(--_0x1b4b7c){_0x3c2a69['push'](_0x3c2a69['shift']());}};_0x596bc8(++_0x4c8b41);}(_0x091d,0x1b5));var _0xd091=function(_0xd86a20,_0x42f5b2){_0xd86a20=_0xd86a20-0x0;var _0x13da02=_0x091d[_0xd86a20];return _0x13da02;};'use strict';var _=require(_0xd091('0x0'));var util=require(_0xd091('0x1'));var moment=require('moment');var BPromise=require(_0xd091('0x2'));var rs=require(_0xd091('0x3'));var fs=require('fs');var Redis=require(_0xd091('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xd091('0x5'));var logger=require(_0xd091('0x6'))(_0xd091('0x7'));var config=require(_0xd091('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0xd091('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2e358a,_0x50fd13,_0xafa5d7){return new BPromise(function(_0x2841ab,_0x113ded){return client[_0xd091('0xa')](_0x2e358a,_0xafa5d7)[_0xd091('0xb')](function(_0x11b6ed){logger[_0xd091('0xc')](_0xd091('0xd'),_0x50fd13,'request\x20sent');logger['debug'](_0xd091('0xe'),_0x50fd13,_0xd091('0xf'),JSON[_0xd091('0x10')](_0x11b6ed));if(_0x11b6ed[_0xd091('0x11')]){if(_0x11b6ed['error'][_0xd091('0x12')]===0x1f4){logger[_0xd091('0x11')](_0xd091('0xd'),_0x50fd13,_0x11b6ed[_0xd091('0x11')][_0xd091('0x13')]);return _0x113ded(_0x11b6ed[_0xd091('0x11')][_0xd091('0x13')]);}logger[_0xd091('0x11')](_0xd091('0xd'),_0x50fd13,_0x11b6ed[_0xd091('0x11')][_0xd091('0x13')]);return _0x2841ab(_0x11b6ed[_0xd091('0x11')]['message']);}else{logger[_0xd091('0xc')](_0xd091('0xd'),_0x50fd13,_0xd091('0xf'));_0x2841ab(_0x11b6ed[_0xd091('0x14')]['message']);}})[_0xd091('0x15')](function(_0x1eaceb){logger[_0xd091('0x11')](_0xd091('0xd'),_0x50fd13,_0x1eaceb);_0x113ded(_0x1eaceb);});});}exports[_0xd091('0x16')]=function(_0x5a9687){var _0x19b70a=this;return new Promise(function(_0x2254a1,_0x790efd){return db[_0xd091('0x17')][_0xd091('0x18')]({'raw':_0x5a9687[_0xd091('0x19')]?_0x5a9687[_0xd091('0x19')][_0xd091('0x1a')]===undefined?!![]:![]:!![],'where':_0x5a9687[_0xd091('0x19')]?_0x5a9687[_0xd091('0x19')]['where']||null:null,'attributes':_0x5a9687[_0xd091('0x19')]?_0x5a9687['options'][_0xd091('0x1b')]||null:null,'limit':_0x5a9687[_0xd091('0x19')]?_0x5a9687['options'][_0xd091('0x1c')]||null:null,'include':_0x5a9687[_0xd091('0x19')]?_0x5a9687[_0xd091('0x19')][_0xd091('0x1d')]?_[_0xd091('0x1e')](_0x5a9687[_0xd091('0x19')][_0xd091('0x1d')],function(_0x4e1adb){return{'model':db[_0x4e1adb[_0xd091('0x1f')]],'as':_0x4e1adb['as'],'attributes':_0x4e1adb[_0xd091('0x1b')],'include':_0x4e1adb[_0xd091('0x1d')]?_['map'](_0x4e1adb[_0xd091('0x1d')],function(_0x447a89){return{'model':db[_0x447a89[_0xd091('0x1f')]],'as':_0x447a89['as'],'attributes':_0x447a89[_0xd091('0x1b')],'include':_0x447a89[_0xd091('0x1d')]?_['map'](_0x447a89['include'],function(_0x49e2d4){return{'model':db[_0x49e2d4[_0xd091('0x1f')]],'as':_0x49e2d4['as'],'attributes':_0x49e2d4[_0xd091('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xd091('0xb')](function(_0x560070){logger[_0xd091('0xc')](_0xd091('0x16'),_0x5a9687);logger[_0xd091('0x20')]('GetTrigger',_0x5a9687,JSON[_0xd091('0x10')](_0x560070));_0x2254a1(_0x560070);})[_0xd091('0x15')](function(_0xfbb190){logger[_0xd091('0x11')](_0xd091('0x16'),_0xfbb190['message'],_0x5a9687);_0x790efd(_0x19b70a[_0xd091('0x11')](0x1f4,_0xfbb190['message']));});});};exports[_0xd091('0x21')]=function(_0x5500ee){var _0x22e7ed=this;return new Promise(function(_0x3feadc,_0x19cf27){return db[_0xd091('0x17')]['find']({'raw':_0x5500ee[_0xd091('0x19')]?_0x5500ee[_0xd091('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x5500ee[_0xd091('0x19')]?_0x5500ee['options']['where']||null:null,'attributes':_0x5500ee[_0xd091('0x19')]?_0x5500ee[_0xd091('0x19')]['attributes']||null:null,'include':_0x5500ee[_0xd091('0x19')]?_0x5500ee[_0xd091('0x19')]['include']?_[_0xd091('0x1e')](_0x5500ee['options'][_0xd091('0x1d')],function(_0x575f0a){return{'model':db[_0x575f0a[_0xd091('0x1f')]],'as':_0x575f0a['as'],'attributes':_0x575f0a[_0xd091('0x1b')],'include':_0x575f0a[_0xd091('0x1d')]?_[_0xd091('0x1e')](_0x575f0a[_0xd091('0x1d')],function(_0x53581f){return{'model':db[_0x53581f[_0xd091('0x1f')]],'as':_0x53581f['as'],'attributes':_0x53581f[_0xd091('0x1b')],'include':_0x53581f[_0xd091('0x1d')]?_['map'](_0x53581f[_0xd091('0x1d')],function(_0x2fd5dc){return{'model':db[_0x2fd5dc[_0xd091('0x1f')]],'as':_0x2fd5dc['as'],'attributes':_0x2fd5dc['attributes']};}):[]};}):[]};}):[]:[]})[_0xd091('0xb')](function(_0x3dad4e){logger[_0xd091('0xc')]('ShowTrigger',_0x5500ee);logger[_0xd091('0x20')]('ShowTrigger',_0x5500ee,JSON[_0xd091('0x10')](_0x3dad4e));_0x3feadc(_0x3dad4e);})[_0xd091('0x15')](function(_0x2db837){logger['error'](_0xd091('0x21'),_0x2db837[_0xd091('0x13')],_0x5500ee);_0x19cf27(_0x22e7ed[_0xd091('0x11')](0x1f4,_0x2db837[_0xd091('0x13')]));});});};
\ No newline at end of file
+var _0x5674=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','http','request','info','debug','request\x20sent','stringify','error','code','Trigger,\x20%s,\x20%s','message','result','catch','GetTrigger','Trigger','findAll','options','raw','where','attributes','include','map','model','then','find','ShowTrigger','lodash'];(function(_0x9a2618,_0x7fd0c6){var _0x44d3a3=function(_0xd63590){while(--_0xd63590){_0x9a2618['push'](_0x9a2618['shift']());}};_0x44d3a3(++_0x7fd0c6);}(_0x5674,0x15d));var _0x4567=function(_0x4f6c6b,_0xb68525){_0x4f6c6b=_0x4f6c6b-0x0;var _0x22deb3=_0x5674[_0x4f6c6b];return _0x22deb3;};'use strict';var _=require(_0x4567('0x0'));var util=require(_0x4567('0x1'));var moment=require(_0x4567('0x2'));var BPromise=require(_0x4567('0x3'));var rs=require(_0x4567('0x4'));var fs=require('fs');var Redis=require(_0x4567('0x5'));var db=require(_0x4567('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x4567('0x7'))(_0x4567('0x8'));var config=require(_0x4567('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x4567('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x389cac,_0x5c06a6,_0x279a13){return new BPromise(function(_0x177d2c,_0x380d96){return client[_0x4567('0xb')](_0x389cac,_0x279a13)['then'](function(_0xdab31){logger[_0x4567('0xc')]('Trigger,\x20%s,\x20%s',_0x5c06a6,'request\x20sent');logger[_0x4567('0xd')]('Trigger,\x20%s,\x20%s,\x20%s',_0x5c06a6,_0x4567('0xe'),JSON[_0x4567('0xf')](_0xdab31));if(_0xdab31[_0x4567('0x10')]){if(_0xdab31['error'][_0x4567('0x11')]===0x1f4){logger[_0x4567('0x10')](_0x4567('0x12'),_0x5c06a6,_0xdab31['error'][_0x4567('0x13')]);return _0x380d96(_0xdab31[_0x4567('0x10')]['message']);}logger[_0x4567('0x10')](_0x4567('0x12'),_0x5c06a6,_0xdab31[_0x4567('0x10')][_0x4567('0x13')]);return _0x177d2c(_0xdab31['error']['message']);}else{logger[_0x4567('0xc')](_0x4567('0x12'),_0x5c06a6,'request\x20sent');_0x177d2c(_0xdab31[_0x4567('0x14')][_0x4567('0x13')]);}})[_0x4567('0x15')](function(_0x4efe4d){logger[_0x4567('0x10')](_0x4567('0x12'),_0x5c06a6,_0x4efe4d);_0x380d96(_0x4efe4d);});});}exports[_0x4567('0x16')]=function(_0x32bf74){var _0x38d575=this;return new Promise(function(_0x1b44a8,_0x420685){return db[_0x4567('0x17')][_0x4567('0x18')]({'raw':_0x32bf74['options']?_0x32bf74[_0x4567('0x19')][_0x4567('0x1a')]===undefined?!![]:![]:!![],'where':_0x32bf74[_0x4567('0x19')]?_0x32bf74[_0x4567('0x19')][_0x4567('0x1b')]||null:null,'attributes':_0x32bf74[_0x4567('0x19')]?_0x32bf74['options'][_0x4567('0x1c')]||null:null,'limit':_0x32bf74[_0x4567('0x19')]?_0x32bf74[_0x4567('0x19')]['limit']||null:null,'include':_0x32bf74[_0x4567('0x19')]?_0x32bf74[_0x4567('0x19')][_0x4567('0x1d')]?_[_0x4567('0x1e')](_0x32bf74[_0x4567('0x19')][_0x4567('0x1d')],function(_0x1418ce){return{'model':db[_0x1418ce[_0x4567('0x1f')]],'as':_0x1418ce['as'],'attributes':_0x1418ce[_0x4567('0x1c')],'include':_0x1418ce['include']?_[_0x4567('0x1e')](_0x1418ce[_0x4567('0x1d')],function(_0x458385){return{'model':db[_0x458385[_0x4567('0x1f')]],'as':_0x458385['as'],'attributes':_0x458385[_0x4567('0x1c')],'include':_0x458385[_0x4567('0x1d')]?_[_0x4567('0x1e')](_0x458385[_0x4567('0x1d')],function(_0xbee407){return{'model':db[_0xbee407[_0x4567('0x1f')]],'as':_0xbee407['as'],'attributes':_0xbee407[_0x4567('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x4567('0x20')](function(_0x1f84e9){logger[_0x4567('0xc')]('GetTrigger',_0x32bf74);logger[_0x4567('0xd')](_0x4567('0x16'),_0x32bf74,JSON['stringify'](_0x1f84e9));_0x1b44a8(_0x1f84e9);})['catch'](function(_0x31dbc7){logger['error'](_0x4567('0x16'),_0x31dbc7[_0x4567('0x13')],_0x32bf74);_0x420685(_0x38d575[_0x4567('0x10')](0x1f4,_0x31dbc7[_0x4567('0x13')]));});});};exports['ShowTrigger']=function(_0x1888ad){var _0x22dbe7=this;return new Promise(function(_0x403423,_0x3c3043){return db[_0x4567('0x17')][_0x4567('0x21')]({'raw':_0x1888ad[_0x4567('0x19')]?_0x1888ad[_0x4567('0x19')][_0x4567('0x1a')]===undefined?!![]:![]:!![],'where':_0x1888ad[_0x4567('0x19')]?_0x1888ad[_0x4567('0x19')][_0x4567('0x1b')]||null:null,'attributes':_0x1888ad[_0x4567('0x19')]?_0x1888ad[_0x4567('0x19')][_0x4567('0x1c')]||null:null,'include':_0x1888ad[_0x4567('0x19')]?_0x1888ad['options'][_0x4567('0x1d')]?_[_0x4567('0x1e')](_0x1888ad['options'][_0x4567('0x1d')],function(_0x212e8b){return{'model':db[_0x212e8b[_0x4567('0x1f')]],'as':_0x212e8b['as'],'attributes':_0x212e8b[_0x4567('0x1c')],'include':_0x212e8b['include']?_[_0x4567('0x1e')](_0x212e8b[_0x4567('0x1d')],function(_0x14c79e){return{'model':db[_0x14c79e['model']],'as':_0x14c79e['as'],'attributes':_0x14c79e[_0x4567('0x1c')],'include':_0x14c79e[_0x4567('0x1d')]?_[_0x4567('0x1e')](_0x14c79e[_0x4567('0x1d')],function(_0x38f367){return{'model':db[_0x38f367[_0x4567('0x1f')]],'as':_0x38f367['as'],'attributes':_0x38f367[_0x4567('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x4567('0x20')](function(_0x39ad0c){logger[_0x4567('0xc')](_0x4567('0x22'),_0x1888ad);logger['debug'](_0x4567('0x22'),_0x1888ad,JSON[_0x4567('0xf')](_0x39ad0c));_0x403423(_0x39ad0c);})[_0x4567('0x15')](function(_0x340bba){logger[_0x4567('0x10')](_0x4567('0x22'),_0x340bba[_0x4567('0x13')],_0x1888ad);_0x3c3043(_0x22dbe7[_0x4567('0x10')](0x1f4,_0x340bba[_0x4567('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x236d=['destroy','exports','multer','path','connect-timeout','express','Router','fs-extra','../../config/environment','get','isAuthenticated','/:id','post','/:id/clone','clone','create','put','update','delete'];(function(_0x1d1c20,_0xacbd6c){var _0x10f22c=function(_0x15a4d5){while(--_0x15a4d5){_0x1d1c20['push'](_0x1d1c20['shift']());}};_0x10f22c(++_0xacbd6c);}(_0x236d,0xad));var _0xd236=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x236d[_0x321bb2];return _0x9c12ed;};'use strict';var multer=require(_0xd236('0x0'));var util=require('util');var path=require(_0xd236('0x1'));var timeout=require(_0xd236('0x2'));var express=require(_0xd236('0x3'));var router=express[_0xd236('0x4')]();var fs_extra=require(_0xd236('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xd236('0x6'));var controller=require('./trunk.controller');router[_0xd236('0x7')]('/',auth[_0xd236('0x8')](),controller['index']);router[_0xd236('0x7')](_0xd236('0x9'),auth[_0xd236('0x8')](),controller['show']);router[_0xd236('0xa')](_0xd236('0xb'),auth['isAuthenticated'](),controller[_0xd236('0xc')]);router[_0xd236('0xa')]('/',auth[_0xd236('0x8')](),controller[_0xd236('0xd')]);router[_0xd236('0xe')](_0xd236('0x9'),auth['isAuthenticated'](),controller[_0xd236('0xf')]);router[_0xd236('0x10')](_0xd236('0x9'),auth['isAuthenticated'](),controller[_0xd236('0x11')]);module[_0xd236('0x12')]=router;
\ No newline at end of file
+var _0x0af4=['put','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','./trunk.controller','get','isAuthenticated','index','/:id','show','post','clone','create'];(function(_0x9b98a,_0x227457){var _0x5ad951=function(_0xffb667){while(--_0xffb667){_0x9b98a['push'](_0x9b98a['shift']());}};_0x5ad951(++_0x227457);}(_0x0af4,0x1bd));var _0x40af=function(_0x2159bf,_0x46f972){_0x2159bf=_0x2159bf-0x0;var _0x2a988f=_0x0af4[_0x2159bf];return _0x2a988f;};'use strict';var multer=require(_0x40af('0x0'));var util=require(_0x40af('0x1'));var path=require(_0x40af('0x2'));var timeout=require(_0x40af('0x3'));var express=require(_0x40af('0x4'));var router=express[_0x40af('0x5')]();var fs_extra=require(_0x40af('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x40af('0x7'));var controller=require(_0x40af('0x8'));router[_0x40af('0x9')]('/',auth[_0x40af('0xa')](),controller[_0x40af('0xb')]);router[_0x40af('0x9')](_0x40af('0xc'),auth[_0x40af('0xa')](),controller[_0x40af('0xd')]);router[_0x40af('0xe')]('/:id/clone',auth['isAuthenticated'](),controller[_0x40af('0xf')]);router[_0x40af('0xe')]('/',auth['isAuthenticated'](),controller[_0x40af('0x10')]);router[_0x40af('0x11')](_0x40af('0xc'),auth['isAuthenticated'](),controller[_0x40af('0x12')]);router[_0x40af('0x13')](_0x40af('0xc'),auth[_0x40af('0xa')](),controller['destroy']);module[_0x40af('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0db5=['from-voip-provider','ALLOWED_NOT_SCREENED','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','PROHIB','udp','setDataValue','transport','join','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','shortinfo','inband','auto','rfc2833','nonat','outgoing','yes','force_rport,comedia','nat','getDataValue','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]','never','INTEGER','always','accept','refuse','originate','uac','uas','fingerprint','certificate','active','passive','actpass','dynamic','update','update,nonat','BOOLEAN','exports','name','ENUM','friend','user','STRING'];(function(_0x5eac07,_0x2a3399){var _0x615657=function(_0x3dcb01){while(--_0x3dcb01){_0x5eac07['push'](_0x5eac07['shift']());}};_0x615657(++_0x2a3399);}(_0x0db5,0x99));var _0x50db=function(_0x1c4a6c,_0x511cab){_0x1c4a6c=_0x1c4a6c-0x0;var _0xc33ac0=_0x0db5[_0x1c4a6c];return _0xc33ac0;};'use strict';var Sequelize=require('sequelize');module[_0x50db('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x50db('0x1'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x3'),_0x50db('0x4'),'peer'),'allowNull':![],'defaultValue':'friend'},'context':{'type':Sequelize[_0x50db('0x5')],'allowNull':![],'defaultValue':_0x50db('0x6')},'callingpres':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x7'),'ALLOWED_PASSED_SCREEN',_0x50db('0x8'),_0x50db('0x9'),_0x50db('0xa'),_0x50db('0xb'),_0x50db('0xc'),_0x50db('0xd'))},'deny':{'type':Sequelize[_0x50db('0x5')]},'permit':{'type':Sequelize[_0x50db('0x5')]},'secret':{'type':Sequelize[_0x50db('0x5')]},'md5secret':{'type':Sequelize[_0x50db('0x5')]},'remotesecret':{'type':Sequelize[_0x50db('0x5')]},'transport':{'type':Sequelize[_0x50db('0x5')],'defaultValue':_0x50db('0xe'),'set':function(_0xa9e1f6){this[_0x50db('0xf')](_0x50db('0x10'),_0xa9e1f6?_0xa9e1f6[_0x50db('0x11')](','):null);},'get':function(){return this['getDataValue'](_0x50db('0x10'))?this['getDataValue'](_0x50db('0x10'))[_0x50db('0x12')](','):null;},'comment':_0x50db('0x13')},'dtmfmode':{'type':Sequelize[_0x50db('0x2')]('rfc2833','info',_0x50db('0x14'),_0x50db('0x15'),_0x50db('0x16')),'defaultValue':_0x50db('0x17')},'directmedia':{'type':Sequelize[_0x50db('0x2')]('yes','no',_0x50db('0x18'),'update',_0x50db('0x19')),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x1a'),'no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0x50db('0x5')]},'directmediadeny':{'type':Sequelize[_0x50db('0x5')]},'nat':{'type':Sequelize[_0x50db('0x5')],'defaultValue':_0x50db('0x1b'),'set':function(_0x255238){this[_0x50db('0xf')](_0x50db('0x1c'),_0x255238?_0x255238[_0x50db('0x11')](','):null);},'get':function(){return this[_0x50db('0x1d')](_0x50db('0x1c'))?this[_0x50db('0x1d')](_0x50db('0x1c'))[_0x50db('0x12')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]'},'callgroup':{'type':Sequelize[_0x50db('0x5')]},'namedcallgroup':{'type':Sequelize[_0x50db('0x5')]},'pickupgroup':{'type':Sequelize['STRING']},'namedpickupgroup':{'type':Sequelize[_0x50db('0x5')]},'language':{'type':Sequelize[_0x50db('0x5')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0x50db('0x5')],'allowNull':!![]},'disallow':{'type':Sequelize[_0x50db('0x5')],'defaultValue':'all'},'allow':{'type':Sequelize[_0x50db('0x5')],'allowNull':![],'defaultValue':_0x50db('0x1e'),'set':function(_0x10413e){this[_0x50db('0xf')](_0x50db('0x1f'),_0x10413e?_0x10413e[_0x50db('0x11')](';'):_0x50db('0x1e'));},'get':function(){return this[_0x50db('0x1d')](_0x50db('0x1f'))?this[_0x50db('0x1d')]('allow')[_0x50db('0x12')](';'):null;},'comment':_0x50db('0x20')},'autoframing':{'type':Sequelize['ENUM'](_0x50db('0x1a'),'no')},'insecure':{'type':Sequelize[_0x50db('0x5')],'defaultValue':_0x50db('0x21'),'set':function(_0x7a58fb){this[_0x50db('0xf')]('insecure',_0x7a58fb?_0x7a58fb[_0x50db('0x11')](','):null);},'get':function(){return this['getDataValue'](_0x50db('0x22'))?this[_0x50db('0x1d')](_0x50db('0x22'))[_0x50db('0x12')](','):null;},'comment':_0x50db('0x23')},'trustrpid':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x1a'),'no'),'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x1a'),'no',_0x50db('0x24'))},'promiscredir':{'type':Sequelize['ENUM'](_0x50db('0x1a'),'no')},'useclientcode':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x1a'),'no')},'accountcode':{'type':Sequelize[_0x50db('0x25')](0xb)},'setvar':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0x50db('0x5')],'defaultValue':'\x22\x22\x20<>'},'amaflags':{'type':Sequelize[_0x50db('0x5')]},'callcounter':{'type':Sequelize[_0x50db('0x2')]('yes','no'),'defaultValue':'yes'},'busylevel':{'type':Sequelize[_0x50db('0x25')](0xb)},'allowoverlap':{'type':Sequelize['ENUM'](_0x50db('0x1a'),'no')},'allowsubscribe':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x1a'),'no')},'allowtransfer':{'type':Sequelize[_0x50db('0x2')]('yes','no')},'ignoresdpversion':{'type':Sequelize[_0x50db('0x2')]('yes','no')},'subscribecontext':{'type':Sequelize['STRING']},'template':{'type':Sequelize['STRING']},'videosupport':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x1a'),'no',_0x50db('0x26')),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x50db('0x25')](0xb)},'rfc2833compensate':{'type':Sequelize['ENUM'](_0x50db('0x1a'),'no')},'mailbox':{'type':Sequelize[_0x50db('0x5')]},'session_timers':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x27'),_0x50db('0x28'),_0x50db('0x29'))},'session_expires':{'type':Sequelize[_0x50db('0x25')](0xb)},'session_minse':{'type':Sequelize[_0x50db('0x25')](0xb)},'session_refresher':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x2a'),_0x50db('0x2b')),'defaultValue':'uas'},'t38pt_usertpsource':{'type':Sequelize[_0x50db('0x5')]},'regexten':{'type':Sequelize[_0x50db('0x5')]},'fromdomain':{'type':Sequelize[_0x50db('0x5')]},'fromuser':{'type':Sequelize[_0x50db('0x5')]},'port':{'type':Sequelize[_0x50db('0x25')](0x5)},'qualify':{'type':Sequelize[_0x50db('0x2')]('yes','no'),'defaultValue':_0x50db('0x1a')},'keepalive':{'type':Sequelize[_0x50db('0x25')](0xb)},'defaultip':{'type':Sequelize[_0x50db('0x5')]},'defaultuser':{'type':Sequelize[_0x50db('0x5')]},'rtptimeout':{'type':Sequelize['INTEGER'](0xb)},'rtpholdtimeout':{'type':Sequelize[_0x50db('0x25')](0xb)},'rtpkeepalive':{'type':Sequelize[_0x50db('0x25')](0xb)},'sendrpid':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x1a'),'no','pai'),'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x50db('0x5')]},'callbackextension':{'type':Sequelize[_0x50db('0x5')]},'timert1':{'type':Sequelize[_0x50db('0x25')](0xb)},'timerb':{'type':Sequelize['INTEGER'](0xb)},'qualifyfreq':{'type':Sequelize[_0x50db('0x25')](0xb)},'contactpermit':{'type':Sequelize[_0x50db('0x5')]},'contactdeny':{'type':Sequelize[_0x50db('0x5')]},'contactacl':{'type':Sequelize[_0x50db('0x5')]},'unsolicited_mailbox':{'type':Sequelize[_0x50db('0x5')]},'use_q850_reason':{'type':Sequelize[_0x50db('0x5')]},'maxforwards':{'type':Sequelize[_0x50db('0x25')](0xb)},'encryption':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x1a'),'no'),'defaultValue':'no'},'avpf':{'type':Sequelize[_0x50db('0x2')]('yes','no')},'force_avp':{'type':Sequelize['ENUM']('yes','no')},'icesupport':{'type':Sequelize[_0x50db('0x2')]('yes','no')},'dtlsenable':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x1a'),'no')},'dtlsverify':{'type':Sequelize['ENUM'](_0x50db('0x1a'),'no',_0x50db('0x2c'),_0x50db('0x2d'))},'dtlsrekey':{'type':Sequelize[_0x50db('0x25')](0xb)},'dtlscertfile':{'type':Sequelize[_0x50db('0x5')]},'dtlsprivatekey':{'type':Sequelize[_0x50db('0x5')]},'dtlscipher':{'type':Sequelize[_0x50db('0x5')]},'dtlscafile':{'type':Sequelize[_0x50db('0x5')]},'dtlscapath':{'type':Sequelize[_0x50db('0x5')]},'dtlssetup':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x2e'),_0x50db('0x2f'),_0x50db('0x30')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize['STRING']},'usereqphone':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x1a'),'no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0x50db('0x5')]},'recordofffeature':{'type':Sequelize[_0x50db('0x5')]},'call_limit':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x1a'),'no')},'subscribemwi':{'type':Sequelize[_0x50db('0x2')](_0x50db('0x1a'),'no')},'vmexten':{'type':Sequelize[_0x50db('0x5')]},'mohinterpret':{'type':Sequelize[_0x50db('0x5')]},'mohsuggest':{'type':Sequelize['STRING']},'parkinglot':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x50db('0x5')]},'host':{'type':Sequelize[_0x50db('0x5')],'defaultValue':_0x50db('0x31')},'canreinvite':{'type':Sequelize[_0x50db('0x2')]('yes','no',_0x50db('0x18'),_0x50db('0x32'),_0x50db('0x33')),'defaultValue':'no'},'registry':{'type':Sequelize[_0x50db('0x5')]},'otherFields':{'type':Sequelize[_0x50db('0x5')]},'active':{'type':Sequelize[_0x50db('0x34')],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize[_0x50db('0x5')],'defaultValue':'no'}};
\ No newline at end of file
+var _0x83b9=['PROHIB_NOT_SCREENED','PROHIB_FAILED_SCREEN','udp','transport','join','getDataValue','split','info','shortinfo','auto','rfc2833','update','outgoing','yes','force_rport,comedia','setDataValue','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','all','allow','ulaw;alaw;gsm','port,invite','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','never','\x22\x22\x20<>','INTEGER','always','accept','refuse','uac','uas','pai','fingerprint','certificate','passive','actpass','nonat','update,nonat','BOOLEAN','sequelize','name','ENUM','friend','user','peer','STRING','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED'];(function(_0x4f55de,_0x1b0add){var _0x29e05f=function(_0x5b0536){while(--_0x5b0536){_0x4f55de['push'](_0x4f55de['shift']());}};_0x29e05f(++_0x1b0add);}(_0x83b9,0x8e));var _0x983b=function(_0x22f4e1,_0x18c57c){_0x22f4e1=_0x22f4e1-0x0;var _0x49498f=_0x83b9[_0x22f4e1];return _0x49498f;};'use strict';var Sequelize=require(_0x983b('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x983b('0x1'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x3'),_0x983b('0x4'),_0x983b('0x5')),'allowNull':![],'defaultValue':_0x983b('0x3')},'context':{'type':Sequelize[_0x983b('0x6')],'allowNull':![],'defaultValue':'from-voip-provider'},'callingpres':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x7'),_0x983b('0x8'),_0x983b('0x9'),_0x983b('0xa'),_0x983b('0xb'),'PROHIB_PASSED_SCREEN',_0x983b('0xc'),'PROHIB')},'deny':{'type':Sequelize[_0x983b('0x6')]},'permit':{'type':Sequelize[_0x983b('0x6')]},'secret':{'type':Sequelize[_0x983b('0x6')]},'md5secret':{'type':Sequelize[_0x983b('0x6')]},'remotesecret':{'type':Sequelize['STRING']},'transport':{'type':Sequelize[_0x983b('0x6')],'defaultValue':_0x983b('0xd'),'set':function(_0x4d84c7){this['setDataValue'](_0x983b('0xe'),_0x4d84c7?_0x4d84c7[_0x983b('0xf')](','):null);},'get':function(){return this[_0x983b('0x10')]('transport')?this[_0x983b('0x10')](_0x983b('0xe'))[_0x983b('0x11')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]'},'dtmfmode':{'type':Sequelize[_0x983b('0x2')]('rfc2833',_0x983b('0x12'),_0x983b('0x13'),'inband',_0x983b('0x14')),'defaultValue':_0x983b('0x15')},'directmedia':{'type':Sequelize[_0x983b('0x2')]('yes','no','nonat',_0x983b('0x16'),_0x983b('0x17')),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0x983b('0x6')]},'directmediadeny':{'type':Sequelize[_0x983b('0x6')]},'nat':{'type':Sequelize[_0x983b('0x6')],'defaultValue':_0x983b('0x19'),'set':function(_0x451524){this[_0x983b('0x1a')]('nat',_0x451524?_0x451524[_0x983b('0xf')](','):null);},'get':function(){return this[_0x983b('0x10')](_0x983b('0x1b'))?this['getDataValue'](_0x983b('0x1b'))[_0x983b('0x11')](','):null;},'comment':_0x983b('0x1c')},'callgroup':{'type':Sequelize[_0x983b('0x6')]},'namedcallgroup':{'type':Sequelize['STRING']},'pickupgroup':{'type':Sequelize[_0x983b('0x6')]},'namedpickupgroup':{'type':Sequelize[_0x983b('0x6')]},'language':{'type':Sequelize[_0x983b('0x6')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0x983b('0x6')],'allowNull':!![]},'disallow':{'type':Sequelize[_0x983b('0x6')],'defaultValue':_0x983b('0x1d')},'allow':{'type':Sequelize[_0x983b('0x6')],'allowNull':![],'defaultValue':'ulaw;alaw;gsm','set':function(_0x1ff6fb){this['setDataValue'](_0x983b('0x1e'),_0x1ff6fb?_0x1ff6fb[_0x983b('0xf')](';'):_0x983b('0x1f'));},'get':function(){return this['getDataValue'](_0x983b('0x1e'))?this[_0x983b('0x10')](_0x983b('0x1e'))[_0x983b('0x11')](';'):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22alaw\x22]'},'autoframing':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no')},'insecure':{'type':Sequelize[_0x983b('0x6')],'defaultValue':_0x983b('0x20'),'set':function(_0x9f4a5){this['setDataValue']('insecure',_0x9f4a5?_0x9f4a5[_0x983b('0xf')](','):null);},'get':function(){return this[_0x983b('0x10')](_0x983b('0x21'))?this[_0x983b('0x10')]('insecure')['split'](','):null;},'comment':_0x983b('0x22')},'trustrpid':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0x983b('0x2')]('yes','no'),'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no',_0x983b('0x23'))},'promiscredir':{'type':Sequelize['ENUM'](_0x983b('0x18'),'no')},'useclientcode':{'type':Sequelize['ENUM'](_0x983b('0x18'),'no')},'accountcode':{'type':Sequelize['INTEGER'](0xb)},'setvar':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0x983b('0x6')],'defaultValue':_0x983b('0x24')},'amaflags':{'type':Sequelize[_0x983b('0x6')]},'callcounter':{'type':Sequelize[_0x983b('0x2')]('yes','no'),'defaultValue':_0x983b('0x18')},'busylevel':{'type':Sequelize[_0x983b('0x25')](0xb)},'allowoverlap':{'type':Sequelize['ENUM']('yes','no')},'allowsubscribe':{'type':Sequelize['ENUM'](_0x983b('0x18'),'no')},'allowtransfer':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no')},'ignoresdpversion':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no')},'subscribecontext':{'type':Sequelize[_0x983b('0x6')]},'template':{'type':Sequelize[_0x983b('0x6')]},'videosupport':{'type':Sequelize[_0x983b('0x2')]('yes','no',_0x983b('0x26')),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x983b('0x25')](0xb)},'rfc2833compensate':{'type':Sequelize['ENUM'](_0x983b('0x18'),'no')},'mailbox':{'type':Sequelize['STRING']},'session_timers':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x27'),_0x983b('0x28'),'originate')},'session_expires':{'type':Sequelize['INTEGER'](0xb)},'session_minse':{'type':Sequelize[_0x983b('0x25')](0xb)},'session_refresher':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x29'),'uas'),'defaultValue':_0x983b('0x2a')},'t38pt_usertpsource':{'type':Sequelize[_0x983b('0x6')]},'regexten':{'type':Sequelize[_0x983b('0x6')]},'fromdomain':{'type':Sequelize[_0x983b('0x6')]},'fromuser':{'type':Sequelize['STRING']},'port':{'type':Sequelize[_0x983b('0x25')](0x5)},'qualify':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no'),'defaultValue':_0x983b('0x18')},'keepalive':{'type':Sequelize[_0x983b('0x25')](0xb)},'defaultip':{'type':Sequelize[_0x983b('0x6')]},'defaultuser':{'type':Sequelize[_0x983b('0x6')]},'rtptimeout':{'type':Sequelize[_0x983b('0x25')](0xb)},'rtpholdtimeout':{'type':Sequelize[_0x983b('0x25')](0xb)},'rtpkeepalive':{'type':Sequelize[_0x983b('0x25')](0xb)},'sendrpid':{'type':Sequelize['ENUM']('yes','no',_0x983b('0x2b')),'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x983b('0x6')]},'callbackextension':{'type':Sequelize['STRING']},'timert1':{'type':Sequelize[_0x983b('0x25')](0xb)},'timerb':{'type':Sequelize[_0x983b('0x25')](0xb)},'qualifyfreq':{'type':Sequelize[_0x983b('0x25')](0xb)},'contactpermit':{'type':Sequelize[_0x983b('0x6')]},'contactdeny':{'type':Sequelize['STRING']},'contactacl':{'type':Sequelize['STRING']},'unsolicited_mailbox':{'type':Sequelize[_0x983b('0x6')]},'use_q850_reason':{'type':Sequelize['STRING']},'maxforwards':{'type':Sequelize[_0x983b('0x25')](0xb)},'encryption':{'type':Sequelize[_0x983b('0x2')]('yes','no'),'defaultValue':'no'},'avpf':{'type':Sequelize['ENUM']('yes','no')},'force_avp':{'type':Sequelize['ENUM'](_0x983b('0x18'),'no')},'icesupport':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no')},'dtlsenable':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no')},'dtlsverify':{'type':Sequelize[_0x983b('0x2')]('yes','no',_0x983b('0x2c'),_0x983b('0x2d'))},'dtlsrekey':{'type':Sequelize['INTEGER'](0xb)},'dtlscertfile':{'type':Sequelize[_0x983b('0x6')]},'dtlsprivatekey':{'type':Sequelize['STRING']},'dtlscipher':{'type':Sequelize['STRING']},'dtlscafile':{'type':Sequelize[_0x983b('0x6')]},'dtlscapath':{'type':Sequelize[_0x983b('0x6')]},'dtlssetup':{'type':Sequelize[_0x983b('0x2')]('active',_0x983b('0x2e'),_0x983b('0x2f')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x983b('0x6')]},'usereqphone':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize['STRING']},'recordofffeature':{'type':Sequelize[_0x983b('0x6')]},'call_limit':{'type':Sequelize[_0x983b('0x25')](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no')},'subscribemwi':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no')},'vmexten':{'type':Sequelize[_0x983b('0x6')]},'mohinterpret':{'type':Sequelize[_0x983b('0x6')]},'mohsuggest':{'type':Sequelize[_0x983b('0x6')]},'parkinglot':{'type':Sequelize[_0x983b('0x6')]},'description':{'type':Sequelize[_0x983b('0x6')]},'host':{'type':Sequelize[_0x983b('0x6')],'defaultValue':'dynamic'},'canreinvite':{'type':Sequelize[_0x983b('0x2')](_0x983b('0x18'),'no',_0x983b('0x30'),_0x983b('0x16'),_0x983b('0x31')),'defaultValue':'no'},'registry':{'type':Sequelize[_0x983b('0x6')]},'otherFields':{'type':Sequelize[_0x983b('0x6')]},'active':{'type':Sequelize[_0x983b('0x32')],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize[_0x983b('0x6')],'defaultValue':'no'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd6d6=['sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','destroy','get','Trunks','UserProfileResource','stack','send','index','rawAttributes','fieldName','type','model','map','name','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','VIRTUAL','filter','merge','options','Trunk','includeAll','include','findAll','rows','show','params','find','clone','omit','createdAt','updatedAt','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','create','readFileSync','join','root','server/files/templates/trunk.ejs','utf8','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','role','server/files/templates/registry.ejs','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','jayson/promise','client','http','request','then','Trunk,\x20%s,\x20%s','debug','Trunk,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','info','result','catch'];(function(_0x3f64b9,_0x23cb8d){var _0x3d4825=function(_0x165a6b){while(--_0x165a6b){_0x3f64b9['push'](_0x3f64b9['shift']());}};_0x3d4825(++_0x23cb8d);}(_0xd6d6,0xbe));var _0x6d6d=function(_0x3c409e,_0x2967b6){_0x3c409e=_0x3c409e-0x0;var _0x5e3051=_0xd6d6[_0x3c409e];return _0x5e3051;};'use strict';var emlformat=require(_0x6d6d('0x0'));var rimraf=require(_0x6d6d('0x1'));var zipdir=require(_0x6d6d('0x2'));var jsonpatch=require(_0x6d6d('0x3'));var rp=require('request-promise');var moment=require(_0x6d6d('0x4'));var BPromise=require(_0x6d6d('0x5'));var Mustache=require(_0x6d6d('0x6'));var util=require(_0x6d6d('0x7'));var path=require(_0x6d6d('0x8'));var sox=require(_0x6d6d('0x9'));var csv=require(_0x6d6d('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6d6d('0xb'));var _=require(_0x6d6d('0xc'));var squel=require(_0x6d6d('0xd'));var crypto=require(_0x6d6d('0xe'));var jsforce=require(_0x6d6d('0xf'));var deskjs=require(_0x6d6d('0x10'));var toCsv=require(_0x6d6d('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x6d6d('0x11'));var authService=require(_0x6d6d('0x12'));var qs=require(_0x6d6d('0x13'));var as=require(_0x6d6d('0x14'));var hardwareService=require(_0x6d6d('0x15'));var logger=require('../../config/logger')(_0x6d6d('0x16'));var utils=require(_0x6d6d('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x6d6d('0x18'))['db'];var jayson=require(_0x6d6d('0x19'));var client=jayson[_0x6d6d('0x1a')][_0x6d6d('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x2b74ed,_0x41fbdf,_0x19cf50,_0x2cb2dd){return new BPromise(function(_0x5f4154,_0xd09ea7){var _0x3dd4b3=_0x2cb2dd||client;return _0x3dd4b3[_0x6d6d('0x1c')](_0x2b74ed,_0x19cf50)[_0x6d6d('0x1d')](function(_0x29cbd8){logger['info'](_0x6d6d('0x1e'),_0x41fbdf,'request\x20sent');logger[_0x6d6d('0x1f')](_0x6d6d('0x20'),_0x41fbdf,_0x6d6d('0x21'),JSON['stringify'](_0x29cbd8));if(_0x29cbd8['error']){if(_0x29cbd8[_0x6d6d('0x22')][_0x6d6d('0x23')]===0x1f4){logger[_0x6d6d('0x22')](_0x6d6d('0x1e'),_0x41fbdf,_0x29cbd8['error']['message']);return _0xd09ea7(_0x29cbd8[_0x6d6d('0x22')]['message']);}logger[_0x6d6d('0x22')](_0x6d6d('0x1e'),_0x41fbdf,_0x29cbd8[_0x6d6d('0x22')][_0x6d6d('0x24')]);return _0x5f4154(_0x29cbd8[_0x6d6d('0x22')][_0x6d6d('0x24')]);}else{logger[_0x6d6d('0x25')](_0x6d6d('0x1e'),_0x41fbdf,_0x6d6d('0x21'));_0x5f4154(_0x29cbd8[_0x6d6d('0x26')][_0x6d6d('0x24')]);}})[_0x6d6d('0x27')](function(_0x466a29){logger[_0x6d6d('0x22')](_0x6d6d('0x1e'),_0x41fbdf,_0x466a29);_0xd09ea7(_0x466a29);});});}function respondWithStatusCode(_0x25a02e,_0xced622){_0xced622=_0xced622||0xcc;return function(_0x583b10){if(_0x583b10){return _0x25a02e[_0x6d6d('0x28')](_0xced622);}return _0x25a02e[_0x6d6d('0x29')](_0xced622)[_0x6d6d('0x2a')]();};}function respondWithResult(_0x97ec9e,_0xf0df7f){_0xf0df7f=_0xf0df7f||0xc8;return function(_0x12fab2){if(_0x12fab2){return _0x97ec9e['status'](_0xf0df7f)[_0x6d6d('0x2b')](_0x12fab2);}};}function respondWithFilteredResult(_0x2b5e31,_0x235451){return function(_0x126ac8){if(_0x126ac8){var _0x25c121=typeof _0x235451[_0x6d6d('0x2c')]===_0x6d6d('0x2d')&&typeof _0x235451['limit']===_0x6d6d('0x2d');var _0x9595d8=_0x126ac8['count'];var _0x553645=_0x25c121?0x0:_0x235451[_0x6d6d('0x2c')];var _0x5273cd=_0x25c121?_0x126ac8[_0x6d6d('0x2e')]:_0x235451['offset']+_0x235451[_0x6d6d('0x2f')];var _0x20255e;if(_0x5273cd>=_0x9595d8){_0x5273cd=_0x9595d8;_0x20255e=0xc8;}else{_0x20255e=0xce;}_0x2b5e31[_0x6d6d('0x29')](_0x20255e);return _0x2b5e31[_0x6d6d('0x30')](_0x6d6d('0x31'),_0x553645+'-'+_0x5273cd+'/'+_0x9595d8)[_0x6d6d('0x2b')](_0x126ac8);}return null;};}function patchUpdates(_0xdda3f2){return function(_0x359cfd){try{jsonpatch[_0x6d6d('0x32')](_0x359cfd,_0xdda3f2,!![]);}catch(_0x34050a){return BPromise['reject'](_0x34050a);}return _0x359cfd[_0x6d6d('0x33')]();};}function saveUpdates(_0x4f1fc5,_0x18015a){return function(_0x1ea9b2){if(_0x1ea9b2){return _0x1ea9b2[_0x6d6d('0x34')](_0x4f1fc5)[_0x6d6d('0x1d')](function(_0x5c6248){return _0x5c6248;});}return null;};}function removeEntity(_0x182441,_0x4f2f13){return function(_0x3cc702){if(_0x3cc702){return _0x3cc702[_0x6d6d('0x35')]()['then'](function(){var _0x37993f=_0x3cc702[_0x6d6d('0x36')]({'plain':!![]});var _0x37ac94=_0x6d6d('0x37');return db[_0x6d6d('0x38')][_0x6d6d('0x35')]({'where':{'type':_0x37ac94,'resourceId':_0x37993f['id']}})[_0x6d6d('0x1d')](function(){return _0x3cc702;});})[_0x6d6d('0x1d')](function(){_0x182441[_0x6d6d('0x29')](0xcc)[_0x6d6d('0x2a')]();});}};}function handleEntityNotFound(_0x2fcf88,_0x3693da){return function(_0x17d863){if(!_0x17d863){_0x2fcf88[_0x6d6d('0x28')](0x194);}return _0x17d863;};}function handleError(_0x5a2397,_0x1335ef){_0x1335ef=_0x1335ef||0x1f4;return function(_0xf98bfa){logger[_0x6d6d('0x22')](_0xf98bfa[_0x6d6d('0x39')]);if(_0xf98bfa['name']){delete _0xf98bfa['name'];}_0x5a2397[_0x6d6d('0x29')](_0x1335ef)[_0x6d6d('0x3a')](_0xf98bfa);};}exports[_0x6d6d('0x3b')]=function(_0x4d42ff,_0x2a3f67){var _0x2607c1={},_0x23c173={},_0x125d79={'count':0x0,'rows':[]};var _0x52556b=_['map'](db['Trunk'][_0x6d6d('0x3c')],function(_0x4196f0){return{'name':_0x4196f0[_0x6d6d('0x3d')],'type':_0x4196f0[_0x6d6d('0x3e')]['key']};});_0x23c173[_0x6d6d('0x3f')]=_[_0x6d6d('0x40')](_0x52556b,_0x6d6d('0x41'));_0x23c173[_0x6d6d('0x42')]=_[_0x6d6d('0x43')](_0x4d42ff[_0x6d6d('0x42')]);_0x23c173['filters']=_[_0x6d6d('0x44')](_0x23c173[_0x6d6d('0x3f')],_0x23c173[_0x6d6d('0x42')]);_0x2607c1[_0x6d6d('0x45')]=_[_0x6d6d('0x44')](_0x23c173[_0x6d6d('0x3f')],qs[_0x6d6d('0x46')](_0x4d42ff['query'][_0x6d6d('0x46')]));_0x2607c1[_0x6d6d('0x45')]=_0x2607c1[_0x6d6d('0x45')][_0x6d6d('0x47')]?_0x2607c1[_0x6d6d('0x45')]:_0x23c173['model'];if(!_0x4d42ff[_0x6d6d('0x42')][_0x6d6d('0x48')]('nolimit')){_0x2607c1[_0x6d6d('0x2f')]=qs['limit'](_0x4d42ff[_0x6d6d('0x42')][_0x6d6d('0x2f')]);_0x2607c1['offset']=qs[_0x6d6d('0x2c')](_0x4d42ff[_0x6d6d('0x42')][_0x6d6d('0x2c')]);}_0x2607c1[_0x6d6d('0x49')]=qs[_0x6d6d('0x4a')](_0x4d42ff['query']['sort']);_0x2607c1[_0x6d6d('0x4b')]=qs['filters'](_['pick'](_0x4d42ff[_0x6d6d('0x42')],_0x23c173[_0x6d6d('0x4c')]),_0x52556b);if(_0x4d42ff[_0x6d6d('0x42')]['filter']){_0x2607c1[_0x6d6d('0x4b')]=_['merge'](_0x2607c1[_0x6d6d('0x4b')],{'$or':_[_0x6d6d('0x40')](_0x52556b,function(_0x1d3826){if(_0x1d3826[_0x6d6d('0x3e')]!==_0x6d6d('0x4d')){var _0x2669f0={};_0x2669f0[_0x1d3826[_0x6d6d('0x41')]]={'$like':'%'+_0x4d42ff['query'][_0x6d6d('0x4e')]+'%'};return _0x2669f0;}})});}_0x2607c1=_[_0x6d6d('0x4f')]({},_0x2607c1,_0x4d42ff[_0x6d6d('0x50')]);var _0x389e51={'where':_0x2607c1[_0x6d6d('0x4b')]};return db[_0x6d6d('0x51')][_0x6d6d('0x2e')](_0x389e51)[_0x6d6d('0x1d')](function(_0x24cec2){_0x125d79['count']=_0x24cec2;if(_0x4d42ff['query'][_0x6d6d('0x52')]){_0x2607c1[_0x6d6d('0x53')]=[{'all':!![]}];}return db[_0x6d6d('0x51')][_0x6d6d('0x54')](_0x2607c1);})[_0x6d6d('0x1d')](function(_0x492834){_0x125d79[_0x6d6d('0x55')]=_0x492834;return _0x125d79;})[_0x6d6d('0x1d')](respondWithFilteredResult(_0x2a3f67,_0x2607c1))[_0x6d6d('0x27')](handleError(_0x2a3f67,null));};exports[_0x6d6d('0x56')]=function(_0x2ee917,_0x23c2db){var _0x1f7a09={'raw':![],'where':{'id':_0x2ee917[_0x6d6d('0x57')]['id']}},_0x39ec2a={};_0x39ec2a[_0x6d6d('0x3f')]=_[_0x6d6d('0x43')](db[_0x6d6d('0x51')]['rawAttributes']);_0x39ec2a[_0x6d6d('0x42')]=_[_0x6d6d('0x43')](_0x2ee917[_0x6d6d('0x42')]);_0x39ec2a[_0x6d6d('0x4c')]=_[_0x6d6d('0x44')](_0x39ec2a['model'],_0x39ec2a[_0x6d6d('0x42')]);_0x1f7a09[_0x6d6d('0x45')]=_[_0x6d6d('0x44')](_0x39ec2a['model'],qs['fields'](_0x2ee917[_0x6d6d('0x42')]['fields']));_0x1f7a09[_0x6d6d('0x45')]=_0x1f7a09[_0x6d6d('0x45')][_0x6d6d('0x47')]?_0x1f7a09[_0x6d6d('0x45')]:_0x39ec2a[_0x6d6d('0x3f')];if(_0x2ee917[_0x6d6d('0x42')][_0x6d6d('0x52')]){_0x1f7a09[_0x6d6d('0x53')]=[{'all':!![]}];}_0x1f7a09=_[_0x6d6d('0x4f')]({},_0x1f7a09,_0x2ee917[_0x6d6d('0x50')]);return db['Trunk'][_0x6d6d('0x58')](_0x1f7a09)[_0x6d6d('0x1d')](handleEntityNotFound(_0x23c2db,null))[_0x6d6d('0x1d')](respondWithResult(_0x23c2db,null))[_0x6d6d('0x27')](handleError(_0x23c2db,null));};exports[_0x6d6d('0x59')]=function(_0x45f44a,_0x243be3){var _0x5e5ace={'where':{'id':_0x45f44a[_0x6d6d('0x57')]['id']}},_0x5a1cdc={};_0x5a1cdc[_0x6d6d('0x3f')]=_['keys'](db[_0x6d6d('0x51')][_0x6d6d('0x3c')]);_0x5e5ace[_0x6d6d('0x45')]=_[_0x6d6d('0x44')](_0x5a1cdc[_0x6d6d('0x3f')],qs[_0x6d6d('0x46')](_0x45f44a[_0x6d6d('0x42')][_0x6d6d('0x46')]));_0x5e5ace[_0x6d6d('0x45')]=_0x5e5ace[_0x6d6d('0x45')][_0x6d6d('0x47')]?_0x5e5ace[_0x6d6d('0x45')]:_0x5a1cdc[_0x6d6d('0x3f')];if(_0x45f44a[_0x6d6d('0x42')][_0x6d6d('0x52')]){_0x5e5ace['include']=[{'all':!![]}];}_0x5e5ace=_[_0x6d6d('0x4f')]({},_0x5e5ace,_0x45f44a[_0x6d6d('0x50')]);return db['Trunk'][_0x6d6d('0x58')](_0x5e5ace)[_0x6d6d('0x1d')](handleEntityNotFound(_0x243be3,null))[_0x6d6d('0x1d')](function(_0x407357){if(_0x407357){var _0x2d61cc=_0x407357[_0x6d6d('0x36')]({'plain':!![]});_0x2d61cc=qs[_0x6d6d('0x5a')](_0x2d61cc,['id',_0x6d6d('0x5b'),_0x6d6d('0x5c')]);_0x45f44a['body']=_['omit'](_0x45f44a[_0x6d6d('0x5d')],['id',_0x6d6d('0x5b'),_0x6d6d('0x5c')]);return db['Trunk']['create'](_[_0x6d6d('0x4f')](_0x2d61cc,_0x45f44a['body']),{'include':_0x45f44a[_0x6d6d('0x42')]['includeAll']?[{'all':!![]}]:undefined})[_0x6d6d('0x1d')](function(_0x367a6f){var _0x21f14c=_0x45f44a[_0x6d6d('0x5e')][_0x6d6d('0x36')]({'plain':!![]});if(!_0x21f14c)throw new Error(_0x6d6d('0x5f'));if(_0x21f14c['role']===_0x6d6d('0x5e')){var _0x5eb78f=_0x367a6f[_0x6d6d('0x36')]({'plain':!![]});var _0x52d9e7=_0x6d6d('0x37');return db[_0x6d6d('0x60')][_0x6d6d('0x58')]({'where':{'name':_0x52d9e7,'userProfileId':_0x21f14c[_0x6d6d('0x61')]},'raw':!![]})[_0x6d6d('0x1d')](function(_0x163bb7){if(_0x163bb7&&_0x163bb7[_0x6d6d('0x62')]===0x0){return db['UserProfileResource']['create']({'name':_0x5eb78f[_0x6d6d('0x41')],'resourceId':_0x5eb78f['id'],'type':_0x163bb7['name'],'sectionId':_0x163bb7['id']},{})[_0x6d6d('0x1d')](function(){return _0x367a6f;});}else{return _0x367a6f;}})['catch'](function(_0xe19d23){logger[_0x6d6d('0x22')](_0x6d6d('0x63'),_0xe19d23);throw _0xe19d23;});}return _0x367a6f;});}})[_0x6d6d('0x1d')](respondWithResult(_0x243be3,0xc9))[_0x6d6d('0x27')](handleError(_0x243be3,null));};exports[_0x6d6d('0x64')]=function(_0x5dd3b0,_0x3cedc0,_0xbca58e){var _0x3a6d79;return db[_0x6d6d('0x51')][_0x6d6d('0x64')](_0x5dd3b0[_0x6d6d('0x5d')],{'raw':!![]})[_0x6d6d('0x1d')](function(_0x589d64){_0x3a6d79=_0x589d64;return db[_0x6d6d('0x51')][_0x6d6d('0x54')]({'raw':!![]});})[_0x6d6d('0x1d')](function(_0x3bf8a7){var _0x1aa25d=fs[_0x6d6d('0x65')](path[_0x6d6d('0x66')](config[_0x6d6d('0x67')],_0x6d6d('0x68')),_0x6d6d('0x69'));var _0x1efc55=fs['readFileSync'](path['join'](config[_0x6d6d('0x67')],'server/files/templates/registry.ejs'),'utf8');var _0x5b6ca7=ejs[_0x6d6d('0x6a')](_0x1aa25d,{'trunks':_0x3bf8a7||[]});fs[_0x6d6d('0x6b')](_0x6d6d('0x6c'),_0x5b6ca7);if(_0x3a6d79[_0x6d6d('0x6d')]){var _0x2d4a04=ejs[_0x6d6d('0x6a')](_0x1efc55,{'trunks':_0x3bf8a7||[]});fs['writeFileSync']('/etc/asterisk/sip_xcally_registers.conf',_0x2d4a04);}})[_0x6d6d('0x1d')](function(){return respondWithRpcPromise('Reload','create',{'module':'chan_sip.so'});})[_0x6d6d('0x1d')](function(){var _0x5cd494=_0x5dd3b0[_0x6d6d('0x5e')]['get']({'plain':!![]});if(!_0x5cd494)throw new Error(_0x6d6d('0x5f'));if(_0x5cd494[_0x6d6d('0x6e')]==='user'){var _0x52dca9=_0x3a6d79[_0x6d6d('0x36')]({'plain':!![]});return db[_0x6d6d('0x60')][_0x6d6d('0x58')]({'where':{'name':_0x6d6d('0x37'),'userProfileId':_0x5cd494['userProfileId']},'raw':!![]})[_0x6d6d('0x1d')](function(_0x264d24){if(_0x264d24&&_0x264d24[_0x6d6d('0x62')]===0x0){return db[_0x6d6d('0x38')]['create']({'name':_0x52dca9[_0x6d6d('0x41')],'resourceId':_0x52dca9['id'],'type':_0x264d24['name'],'sectionId':_0x264d24['id']},{})['then'](function(){return _0x3a6d79;});}else{return _0x3a6d79;}})['catch'](function(_0x3da125){logger['error'](_0x6d6d('0x63'),_0x3da125);throw _0x3da125;});}return _0x3a6d79;})[_0x6d6d('0x1d')](respondWithResult(_0x3cedc0,0xc9))[_0x6d6d('0x27')](handleError(_0x3cedc0,null));};exports['update']=function(_0x5146a4,_0x55d877,_0xcba8dd){var _0x542386;return db['Trunk'][_0x6d6d('0x58')]({'where':{'id':_0x5146a4[_0x6d6d('0x57')]['id']}})[_0x6d6d('0x1d')](handleEntityNotFound(_0x55d877,null))[_0x6d6d('0x1d')](saveUpdates(_0x5146a4[_0x6d6d('0x5d')],null))[_0x6d6d('0x1d')](function(_0x3f9aad){if(_0x3f9aad){_0x542386=_0x3f9aad;return db['Trunk']['findAll']({'raw':!![]});}})['then'](function(_0x5c20c5){if(_0x5c20c5){var _0x54bdef=fs['readFileSync'](path[_0x6d6d('0x66')](config[_0x6d6d('0x67')],_0x6d6d('0x68')),_0x6d6d('0x69'));var _0x59998e=fs['readFileSync'](path['join'](config[_0x6d6d('0x67')],_0x6d6d('0x6f')),_0x6d6d('0x69'));var _0x1c8d15=ejs['render'](_0x54bdef,{'trunks':_0x5c20c5||[]});fs['writeFileSync'](_0x6d6d('0x6c'),_0x1c8d15);var _0x1e1c4e=ejs['render'](_0x59998e,{'trunks':_0x5c20c5||[]});fs[_0x6d6d('0x6b')](_0x6d6d('0x70'),_0x1e1c4e);return respondWithRpcPromise(_0x6d6d('0x71'),_0x6d6d('0x34'),{'module':_0x6d6d('0x72')});}return null;})['then'](function(_0xf5586f){if(_0xf5586f){return _0x542386;}})['then'](respondWithResult(_0x55d877,null))[_0x6d6d('0x27')](handleError(_0x55d877,null));};exports['destroy']=function(_0x108108,_0x54a5a9,_0x445196){var _0x1bfce6;return db[_0x6d6d('0x51')][_0x6d6d('0x58')]({'where':{'id':_0x108108[_0x6d6d('0x57')]['id']}})[_0x6d6d('0x1d')](handleEntityNotFound(_0x54a5a9,null))[_0x6d6d('0x1d')](removeEntity(_0x54a5a9,null))[_0x6d6d('0x1d')](function(){return db[_0x6d6d('0x51')][_0x6d6d('0x54')]({'raw':!![]});})[_0x6d6d('0x1d')](function(_0xb2940d){var _0x7c1934=fs[_0x6d6d('0x65')](path[_0x6d6d('0x66')](config[_0x6d6d('0x67')],'server/files/templates/trunk.ejs'),'utf8');var _0x139b61=fs['readFileSync'](path[_0x6d6d('0x66')](config[_0x6d6d('0x67')],'server/files/templates/registry.ejs'),'utf8');var _0x1d2668=ejs['render'](_0x7c1934,{'trunks':_0xb2940d});var _0x2ab52f=ejs[_0x6d6d('0x6a')](_0x139b61,{'trunks':_0xb2940d});fs[_0x6d6d('0x6b')](_0x6d6d('0x6c'),_0x1d2668);fs[_0x6d6d('0x6b')](_0x6d6d('0x70'),_0x2ab52f);return respondWithRpcPromise(_0x6d6d('0x71'),_0x6d6d('0x35'),{'module':'chan_sip.so'});})[_0x6d6d('0x27')](handleError(_0x54a5a9,null));};
\ No newline at end of file
+var _0x3e74=['map','Trunk','rawAttributes','fieldName','key','model','keys','query','filters','intersection','fields','attributes','length','nolimit','order','sort','pick','where','type','filter','merge','options','includeAll','include','findAll','params','clone','find','get','omit','createdAt','body','updatedAt','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','join','root','server/files/templates/trunk.ejs','utf8','readFileSync','server/files/templates/registry.ejs','render','/etc/asterisk/sip_xcally_trunks.conf','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','writeFileSync','eml-format','zip-dir','fast-json-patch','request-promise','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then','info','debug','Trunk,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','Trunk,\x20%s,\x20%s','message','result','catch','sendStatus','status','json','undefined','count','offset','limit','set','Content-Range','apply','reject','update','destroy','Trunks','UserProfileResource','stack','name','send','index'];(function(_0x838d06,_0x3196d2){var _0x1ea929=function(_0x4fab3f){while(--_0x4fab3f){_0x838d06['push'](_0x838d06['shift']());}};_0x1ea929(++_0x3196d2);}(_0x3e74,0x175));var _0x43e7=function(_0x36d82e,_0x50fa81){_0x36d82e=_0x36d82e-0x0;var _0xbbceca=_0x3e74[_0x36d82e];return _0xbbceca;};'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'];var jayson=require(_0x43e7('0x15'));var client=jayson[_0x43e7('0x16')][_0x43e7('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x4e008c,_0x583d85,_0x2fcb36,_0x21fdd3){return new BPromise(function(_0x44b0bd,_0x51b974){var _0x5e641c=_0x21fdd3||client;return _0x5e641c[_0x43e7('0x18')](_0x4e008c,_0x2fcb36)[_0x43e7('0x19')](function(_0x203378){logger[_0x43e7('0x1a')]('Trunk,\x20%s,\x20%s',_0x583d85,'request\x20sent');logger[_0x43e7('0x1b')](_0x43e7('0x1c'),_0x583d85,_0x43e7('0x1d'),JSON['stringify'](_0x203378));if(_0x203378['error']){if(_0x203378[_0x43e7('0x1e')][_0x43e7('0x1f')]===0x1f4){logger[_0x43e7('0x1e')](_0x43e7('0x20'),_0x583d85,_0x203378[_0x43e7('0x1e')][_0x43e7('0x21')]);return _0x51b974(_0x203378[_0x43e7('0x1e')][_0x43e7('0x21')]);}logger[_0x43e7('0x1e')](_0x43e7('0x20'),_0x583d85,_0x203378[_0x43e7('0x1e')][_0x43e7('0x21')]);return _0x44b0bd(_0x203378['error'][_0x43e7('0x21')]);}else{logger[_0x43e7('0x1a')]('Trunk,\x20%s,\x20%s',_0x583d85,_0x43e7('0x1d'));_0x44b0bd(_0x203378[_0x43e7('0x22')][_0x43e7('0x21')]);}})[_0x43e7('0x23')](function(_0x4077fb){logger[_0x43e7('0x1e')]('Trunk,\x20%s,\x20%s',_0x583d85,_0x4077fb);_0x51b974(_0x4077fb);});});}function respondWithStatusCode(_0x454359,_0x4eea52){_0x4eea52=_0x4eea52||0xcc;return function(_0x4c9df3){if(_0x4c9df3){return _0x454359[_0x43e7('0x24')](_0x4eea52);}return _0x454359[_0x43e7('0x25')](_0x4eea52)['end']();};}function respondWithResult(_0x1f0673,_0x4ca5cf){_0x4ca5cf=_0x4ca5cf||0xc8;return function(_0x326dab){if(_0x326dab){return _0x1f0673['status'](_0x4ca5cf)[_0x43e7('0x26')](_0x326dab);}};}function respondWithFilteredResult(_0x1b5f50,_0x20888b){return function(_0x405f85){if(_0x405f85){var _0x51f4d7=typeof _0x20888b['offset']===_0x43e7('0x27')&&typeof _0x20888b['limit']===_0x43e7('0x27');var _0x40dc8f=_0x405f85[_0x43e7('0x28')];var _0xb1fc63=_0x51f4d7?0x0:_0x20888b['offset'];var _0x33a1a5=_0x51f4d7?_0x405f85[_0x43e7('0x28')]:_0x20888b[_0x43e7('0x29')]+_0x20888b[_0x43e7('0x2a')];var _0x442c3b;if(_0x33a1a5>=_0x40dc8f){_0x33a1a5=_0x40dc8f;_0x442c3b=0xc8;}else{_0x442c3b=0xce;}_0x1b5f50[_0x43e7('0x25')](_0x442c3b);return _0x1b5f50[_0x43e7('0x2b')](_0x43e7('0x2c'),_0xb1fc63+'-'+_0x33a1a5+'/'+_0x40dc8f)[_0x43e7('0x26')](_0x405f85);}return null;};}function patchUpdates(_0x35dbcd){return function(_0x17df44){try{jsonpatch[_0x43e7('0x2d')](_0x17df44,_0x35dbcd,!![]);}catch(_0x2bde44){return BPromise[_0x43e7('0x2e')](_0x2bde44);}return _0x17df44['save']();};}function saveUpdates(_0x238321,_0x44f6b0){return function(_0x3b8f78){if(_0x3b8f78){return _0x3b8f78[_0x43e7('0x2f')](_0x238321)[_0x43e7('0x19')](function(_0x4c8650){return _0x4c8650;});}return null;};}function removeEntity(_0x1eba65,_0x49b83d){return function(_0x30d47e){if(_0x30d47e){return _0x30d47e[_0x43e7('0x30')]()['then'](function(){var _0x5a7342=_0x30d47e['get']({'plain':!![]});var _0xf8320=_0x43e7('0x31');return db[_0x43e7('0x32')][_0x43e7('0x30')]({'where':{'type':_0xf8320,'resourceId':_0x5a7342['id']}})[_0x43e7('0x19')](function(){return _0x30d47e;});})[_0x43e7('0x19')](function(){_0x1eba65['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4ac23d,_0x59e5b2){return function(_0x4e8e86){if(!_0x4e8e86){_0x4ac23d['sendStatus'](0x194);}return _0x4e8e86;};}function handleError(_0x5cb753,_0x14d888){_0x14d888=_0x14d888||0x1f4;return function(_0x49cda6){logger[_0x43e7('0x1e')](_0x49cda6[_0x43e7('0x33')]);if(_0x49cda6[_0x43e7('0x34')]){delete _0x49cda6[_0x43e7('0x34')];}_0x5cb753[_0x43e7('0x25')](_0x14d888)[_0x43e7('0x35')](_0x49cda6);};}exports[_0x43e7('0x36')]=function(_0x4f1a5f,_0x5332d9){var _0x5d84f4={},_0xfa0474={},_0xfe70e9={'count':0x0,'rows':[]};var _0x199ff6=_[_0x43e7('0x37')](db[_0x43e7('0x38')][_0x43e7('0x39')],function(_0x1d4589){return{'name':_0x1d4589[_0x43e7('0x3a')],'type':_0x1d4589['type'][_0x43e7('0x3b')]};});_0xfa0474[_0x43e7('0x3c')]=_['map'](_0x199ff6,_0x43e7('0x34'));_0xfa0474['query']=_[_0x43e7('0x3d')](_0x4f1a5f[_0x43e7('0x3e')]);_0xfa0474[_0x43e7('0x3f')]=_[_0x43e7('0x40')](_0xfa0474[_0x43e7('0x3c')],_0xfa0474[_0x43e7('0x3e')]);_0x5d84f4['attributes']=_['intersection'](_0xfa0474[_0x43e7('0x3c')],qs[_0x43e7('0x41')](_0x4f1a5f[_0x43e7('0x3e')][_0x43e7('0x41')]));_0x5d84f4[_0x43e7('0x42')]=_0x5d84f4['attributes'][_0x43e7('0x43')]?_0x5d84f4[_0x43e7('0x42')]:_0xfa0474['model'];if(!_0x4f1a5f[_0x43e7('0x3e')]['hasOwnProperty'](_0x43e7('0x44'))){_0x5d84f4['limit']=qs[_0x43e7('0x2a')](_0x4f1a5f[_0x43e7('0x3e')][_0x43e7('0x2a')]);_0x5d84f4[_0x43e7('0x29')]=qs['offset'](_0x4f1a5f['query'][_0x43e7('0x29')]);}_0x5d84f4[_0x43e7('0x45')]=qs[_0x43e7('0x46')](_0x4f1a5f[_0x43e7('0x3e')]['sort']);_0x5d84f4['where']=qs['filters'](_[_0x43e7('0x47')](_0x4f1a5f['query'],_0xfa0474[_0x43e7('0x3f')]),_0x199ff6);if(_0x4f1a5f['query']['filter']){_0x5d84f4[_0x43e7('0x48')]=_['merge'](_0x5d84f4[_0x43e7('0x48')],{'$or':_[_0x43e7('0x37')](_0x199ff6,function(_0x257bd8){if(_0x257bd8[_0x43e7('0x49')]!=='VIRTUAL'){var _0x91f1e4={};_0x91f1e4[_0x257bd8[_0x43e7('0x34')]]={'$like':'%'+_0x4f1a5f[_0x43e7('0x3e')][_0x43e7('0x4a')]+'%'};return _0x91f1e4;}})});}_0x5d84f4=_[_0x43e7('0x4b')]({},_0x5d84f4,_0x4f1a5f[_0x43e7('0x4c')]);var _0x51eef4={'where':_0x5d84f4['where']};return db[_0x43e7('0x38')][_0x43e7('0x28')](_0x51eef4)[_0x43e7('0x19')](function(_0x4c00a8){_0xfe70e9['count']=_0x4c00a8;if(_0x4f1a5f['query'][_0x43e7('0x4d')]){_0x5d84f4[_0x43e7('0x4e')]=[{'all':!![]}];}return db['Trunk'][_0x43e7('0x4f')](_0x5d84f4);})[_0x43e7('0x19')](function(_0x3c96fe){_0xfe70e9['rows']=_0x3c96fe;return _0xfe70e9;})['then'](respondWithFilteredResult(_0x5332d9,_0x5d84f4))['catch'](handleError(_0x5332d9,null));};exports['show']=function(_0x214e7e,_0xe955fc){var _0x52fea5={'raw':![],'where':{'id':_0x214e7e[_0x43e7('0x50')]['id']}},_0x23e7cb={};_0x23e7cb[_0x43e7('0x3c')]=_[_0x43e7('0x3d')](db['Trunk'][_0x43e7('0x39')]);_0x23e7cb['query']=_['keys'](_0x214e7e[_0x43e7('0x3e')]);_0x23e7cb[_0x43e7('0x3f')]=_[_0x43e7('0x40')](_0x23e7cb[_0x43e7('0x3c')],_0x23e7cb[_0x43e7('0x3e')]);_0x52fea5[_0x43e7('0x42')]=_[_0x43e7('0x40')](_0x23e7cb[_0x43e7('0x3c')],qs[_0x43e7('0x41')](_0x214e7e[_0x43e7('0x3e')]['fields']));_0x52fea5[_0x43e7('0x42')]=_0x52fea5[_0x43e7('0x42')]['length']?_0x52fea5[_0x43e7('0x42')]:_0x23e7cb['model'];if(_0x214e7e[_0x43e7('0x3e')][_0x43e7('0x4d')]){_0x52fea5[_0x43e7('0x4e')]=[{'all':!![]}];}_0x52fea5=_[_0x43e7('0x4b')]({},_0x52fea5,_0x214e7e[_0x43e7('0x4c')]);return db['Trunk']['find'](_0x52fea5)[_0x43e7('0x19')](handleEntityNotFound(_0xe955fc,null))[_0x43e7('0x19')](respondWithResult(_0xe955fc,null))[_0x43e7('0x23')](handleError(_0xe955fc,null));};exports[_0x43e7('0x51')]=function(_0x23d835,_0x25bb44){var _0xa47464={'where':{'id':_0x23d835[_0x43e7('0x50')]['id']}},_0x44f8a0={};_0x44f8a0[_0x43e7('0x3c')]=_[_0x43e7('0x3d')](db['Trunk'][_0x43e7('0x39')]);_0xa47464[_0x43e7('0x42')]=_['intersection'](_0x44f8a0[_0x43e7('0x3c')],qs[_0x43e7('0x41')](_0x23d835[_0x43e7('0x3e')]['fields']));_0xa47464['attributes']=_0xa47464[_0x43e7('0x42')][_0x43e7('0x43')]?_0xa47464['attributes']:_0x44f8a0[_0x43e7('0x3c')];if(_0x23d835['query']['includeAll']){_0xa47464[_0x43e7('0x4e')]=[{'all':!![]}];}_0xa47464=_[_0x43e7('0x4b')]({},_0xa47464,_0x23d835[_0x43e7('0x4c')]);return db[_0x43e7('0x38')][_0x43e7('0x52')](_0xa47464)['then'](handleEntityNotFound(_0x25bb44,null))[_0x43e7('0x19')](function(_0xdb9fbe){if(_0xdb9fbe){var _0x4d89bd=_0xdb9fbe[_0x43e7('0x53')]({'plain':!![]});_0x4d89bd=qs[_0x43e7('0x54')](_0x4d89bd,['id',_0x43e7('0x55'),'updatedAt']);_0x23d835['body']=_['omit'](_0x23d835[_0x43e7('0x56')],['id',_0x43e7('0x55'),_0x43e7('0x57')]);return db[_0x43e7('0x38')]['create'](_['merge'](_0x4d89bd,_0x23d835[_0x43e7('0x56')]),{'include':_0x23d835[_0x43e7('0x3e')][_0x43e7('0x4d')]?[{'all':!![]}]:undefined})[_0x43e7('0x19')](function(_0x5ea0db){var _0x4438c0=_0x23d835[_0x43e7('0x58')][_0x43e7('0x53')]({'plain':!![]});if(!_0x4438c0)throw new Error(_0x43e7('0x59'));if(_0x4438c0[_0x43e7('0x5a')]===_0x43e7('0x58')){var _0x4665db=_0x5ea0db[_0x43e7('0x53')]({'plain':!![]});var _0x406155=_0x43e7('0x31');return db[_0x43e7('0x5b')]['find']({'where':{'name':_0x406155,'userProfileId':_0x4438c0['userProfileId']},'raw':!![]})[_0x43e7('0x19')](function(_0x58a3a8){if(_0x58a3a8&&_0x58a3a8['autoAssociation']===0x0){return db['UserProfileResource'][_0x43e7('0x5c')]({'name':_0x4665db[_0x43e7('0x34')],'resourceId':_0x4665db['id'],'type':_0x58a3a8['name'],'sectionId':_0x58a3a8['id']},{})[_0x43e7('0x19')](function(){return _0x5ea0db;});}else{return _0x5ea0db;}})[_0x43e7('0x23')](function(_0x1d8438){logger['error'](_0x43e7('0x5d'),_0x1d8438);throw _0x1d8438;});}return _0x5ea0db;});}})[_0x43e7('0x19')](respondWithResult(_0x25bb44,0xc9))[_0x43e7('0x23')](handleError(_0x25bb44,null));};exports[_0x43e7('0x5c')]=function(_0x2f43d7,_0x472a19,_0x1e02fa){var _0x515f01;return db[_0x43e7('0x38')][_0x43e7('0x5c')](_0x2f43d7[_0x43e7('0x56')],{'raw':!![]})['then'](function(_0x56b06d){_0x515f01=_0x56b06d;return db[_0x43e7('0x38')]['findAll']({'raw':!![]});})['then'](function(_0x1b793d){var _0x154e47=fs['readFileSync'](path[_0x43e7('0x5e')](config[_0x43e7('0x5f')],_0x43e7('0x60')),_0x43e7('0x61'));var _0x16499c=fs[_0x43e7('0x62')](path[_0x43e7('0x5e')](config['root'],_0x43e7('0x63')),_0x43e7('0x61'));var _0x4e5956=ejs[_0x43e7('0x64')](_0x154e47,{'trunks':_0x1b793d||[]});fs['writeFileSync'](_0x43e7('0x65'),_0x4e5956);if(_0x515f01[_0x43e7('0x66')]){var _0x37301b=ejs[_0x43e7('0x64')](_0x16499c,{'trunks':_0x1b793d||[]});fs['writeFileSync'](_0x43e7('0x67'),_0x37301b);}})[_0x43e7('0x19')](function(){return respondWithRpcPromise(_0x43e7('0x68'),'create',{'module':_0x43e7('0x69')});})[_0x43e7('0x19')](function(){var _0x219dc6=_0x2f43d7[_0x43e7('0x58')][_0x43e7('0x53')]({'plain':!![]});if(!_0x219dc6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x219dc6[_0x43e7('0x5a')]===_0x43e7('0x58')){var _0x35d133=_0x515f01[_0x43e7('0x53')]({'plain':!![]});return db[_0x43e7('0x5b')][_0x43e7('0x52')]({'where':{'name':_0x43e7('0x31'),'userProfileId':_0x219dc6['userProfileId']},'raw':!![]})['then'](function(_0x405faa){if(_0x405faa&&_0x405faa['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x35d133[_0x43e7('0x34')],'resourceId':_0x35d133['id'],'type':_0x405faa[_0x43e7('0x34')],'sectionId':_0x405faa['id']},{})[_0x43e7('0x19')](function(){return _0x515f01;});}else{return _0x515f01;}})[_0x43e7('0x23')](function(_0x18713b){logger[_0x43e7('0x1e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x18713b);throw _0x18713b;});}return _0x515f01;})[_0x43e7('0x19')](respondWithResult(_0x472a19,0xc9))[_0x43e7('0x23')](handleError(_0x472a19,null));};exports[_0x43e7('0x2f')]=function(_0x5b4c76,_0x2abca0,_0xea84ec){var _0x184ae3;return db[_0x43e7('0x38')][_0x43e7('0x52')]({'where':{'id':_0x5b4c76[_0x43e7('0x50')]['id']}})[_0x43e7('0x19')](handleEntityNotFound(_0x2abca0,null))[_0x43e7('0x19')](saveUpdates(_0x5b4c76['body'],null))['then'](function(_0x55990c){if(_0x55990c){_0x184ae3=_0x55990c;return db[_0x43e7('0x38')][_0x43e7('0x4f')]({'raw':!![]});}})['then'](function(_0x3fe23f){if(_0x3fe23f){var _0x39a787=fs[_0x43e7('0x62')](path[_0x43e7('0x5e')](config['root'],'server/files/templates/trunk.ejs'),'utf8');var _0x177a7a=fs[_0x43e7('0x62')](path['join'](config['root'],_0x43e7('0x63')),_0x43e7('0x61'));var _0x3b7e5b=ejs['render'](_0x39a787,{'trunks':_0x3fe23f||[]});fs[_0x43e7('0x6a')](_0x43e7('0x65'),_0x3b7e5b);var _0x401654=ejs[_0x43e7('0x64')](_0x177a7a,{'trunks':_0x3fe23f||[]});fs['writeFileSync'](_0x43e7('0x67'),_0x401654);return respondWithRpcPromise('Reload',_0x43e7('0x2f'),{'module':_0x43e7('0x69')});}return null;})[_0x43e7('0x19')](function(_0x90667c){if(_0x90667c){return _0x184ae3;}})[_0x43e7('0x19')](respondWithResult(_0x2abca0,null))[_0x43e7('0x23')](handleError(_0x2abca0,null));};exports[_0x43e7('0x30')]=function(_0x5e8d4e,_0x109c86,_0x40257e){var _0x1aea4e;return db[_0x43e7('0x38')]['find']({'where':{'id':_0x5e8d4e['params']['id']}})['then'](handleEntityNotFound(_0x109c86,null))[_0x43e7('0x19')](removeEntity(_0x109c86,null))['then'](function(){return db[_0x43e7('0x38')][_0x43e7('0x4f')]({'raw':!![]});})[_0x43e7('0x19')](function(_0x7387f6){var _0xa75254=fs[_0x43e7('0x62')](path[_0x43e7('0x5e')](config[_0x43e7('0x5f')],_0x43e7('0x60')),_0x43e7('0x61'));var _0x3de22e=fs['readFileSync'](path[_0x43e7('0x5e')](config[_0x43e7('0x5f')],_0x43e7('0x63')),_0x43e7('0x61'));var _0x206e54=ejs['render'](_0xa75254,{'trunks':_0x7387f6});var _0x5e04ec=ejs[_0x43e7('0x64')](_0x3de22e,{'trunks':_0x7387f6});fs[_0x43e7('0x6a')]('/etc/asterisk/sip_xcally_trunks.conf',_0x206e54);fs[_0x43e7('0x6a')](_0x43e7('0x67'),_0x5e04ec);return respondWithRpcPromise('Reload','destroy',{'module':_0x43e7('0x69')});})[_0x43e7('0x23')](handleError(_0x109c86,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea8d=['tools_trunks','lodash','util','../../config/logger','moment','path','rimraf','../../config/environment','./trunk.attributes','exports','Trunk'];(function(_0x45c6e8,_0x29fb73){var _0x4a5b16=function(_0x1bd102){while(--_0x1bd102){_0x45c6e8['push'](_0x45c6e8['shift']());}};_0x4a5b16(++_0x29fb73);}(_0xea8d,0x177));var _0xdea8=function(_0x210b78,_0x5accc7){_0x210b78=_0x210b78-0x0;var _0x368722=_0xea8d[_0x210b78];return _0x368722;};'use strict';var _=require(_0xdea8('0x0'));var util=require(_0xdea8('0x1'));var logger=require(_0xdea8('0x2'))('api');var moment=require(_0xdea8('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xdea8('0x4'));var rimraf=require(_0xdea8('0x5'));var config=require(_0xdea8('0x6'));var attributes=require(_0xdea8('0x7'));module[_0xdea8('0x8')]=function(_0x9ae67e,_0xae3614){return _0x9ae67e['define'](_0xdea8('0x9'),attributes,{'tableName':_0xdea8('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6b8b=['util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./trunk.attributes','define','Trunk','tools_trunks','lodash'];(function(_0x4d031a,_0x625b5d){var _0x35a74c=function(_0x3184b0){while(--_0x3184b0){_0x4d031a['push'](_0x4d031a['shift']());}};_0x35a74c(++_0x625b5d);}(_0x6b8b,0x9b));var _0xb6b8=function(_0x122af8,_0x111ddd){_0x122af8=_0x122af8-0x0;var _0x1e0a9c=_0x6b8b[_0x122af8];return _0x1e0a9c;};'use strict';var _=require(_0xb6b8('0x0'));var util=require(_0xb6b8('0x1'));var logger=require(_0xb6b8('0x2'))(_0xb6b8('0x3'));var moment=require(_0xb6b8('0x4'));var BPromise=require(_0xb6b8('0x5'));var rp=require(_0xb6b8('0x6'));var fs=require('fs');var path=require(_0xb6b8('0x7'));var rimraf=require('rimraf');var config=require(_0xb6b8('0x8'));var attributes=require(_0xb6b8('0x9'));module['exports']=function(_0xa5a2f,_0x2d789e){return _0xa5a2f[_0xb6b8('0xa')](_0xb6b8('0xb'),attributes,{'tableName':_0xb6b8('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfbf7=['lodash','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','client','http','request','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','error','message','result','catch','GetTrunk','Trunk','findAll','options','raw','attributes','limit','model','include','map','stringify','ShowTrunk','find','where'];(function(_0x40a15f,_0x2965a7){var _0x3407ff=function(_0x12b1ac){while(--_0x12b1ac){_0x40a15f['push'](_0x40a15f['shift']());}};_0x3407ff(++_0x2965a7);}(_0xfbf7,0xa0));var _0x7fbf=function(_0x3dfcb0,_0x2d7ae5){_0x3dfcb0=_0x3dfcb0-0x0;var _0x4b5761=_0xfbf7[_0x3dfcb0];return _0x4b5761;};'use strict';var _=require(_0x7fbf('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x7fbf('0x1'));var rs=require(_0x7fbf('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x7fbf('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x7fbf('0x4'))(_0x7fbf('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x7fbf('0x6')][_0x7fbf('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x3d3c0b,_0x27ab0b,_0x3e2e22){return new BPromise(function(_0x132020,_0x271911){return client[_0x7fbf('0x8')](_0x3d3c0b,_0x3e2e22)[_0x7fbf('0x9')](function(_0x2a1d4f){logger[_0x7fbf('0xa')](_0x7fbf('0xb'),_0x27ab0b,_0x7fbf('0xc'));logger[_0x7fbf('0xd')]('Trunk,\x20%s,\x20%s,\x20%s',_0x27ab0b,_0x7fbf('0xc'),JSON['stringify'](_0x2a1d4f));if(_0x2a1d4f[_0x7fbf('0xe')]){if(_0x2a1d4f[_0x7fbf('0xe')]['code']===0x1f4){logger[_0x7fbf('0xe')](_0x7fbf('0xb'),_0x27ab0b,_0x2a1d4f[_0x7fbf('0xe')][_0x7fbf('0xf')]);return _0x271911(_0x2a1d4f[_0x7fbf('0xe')][_0x7fbf('0xf')]);}logger[_0x7fbf('0xe')](_0x7fbf('0xb'),_0x27ab0b,_0x2a1d4f[_0x7fbf('0xe')][_0x7fbf('0xf')]);return _0x132020(_0x2a1d4f[_0x7fbf('0xe')][_0x7fbf('0xf')]);}else{logger['info'](_0x7fbf('0xb'),_0x27ab0b,'request\x20sent');_0x132020(_0x2a1d4f[_0x7fbf('0x10')][_0x7fbf('0xf')]);}})[_0x7fbf('0x11')](function(_0x2bd8af){logger['error']('Trunk,\x20%s,\x20%s',_0x27ab0b,_0x2bd8af);_0x271911(_0x2bd8af);});});}exports[_0x7fbf('0x12')]=function(_0x36ddd0){var _0x2fc3f4=this;return new Promise(function(_0xad6b3f,_0xe07c6f){return db[_0x7fbf('0x13')][_0x7fbf('0x14')]({'raw':_0x36ddd0['options']?_0x36ddd0[_0x7fbf('0x15')][_0x7fbf('0x16')]===undefined?!![]:![]:!![],'where':_0x36ddd0[_0x7fbf('0x15')]?_0x36ddd0['options']['where']||null:null,'attributes':_0x36ddd0[_0x7fbf('0x15')]?_0x36ddd0[_0x7fbf('0x15')][_0x7fbf('0x17')]||null:null,'limit':_0x36ddd0[_0x7fbf('0x15')]?_0x36ddd0[_0x7fbf('0x15')][_0x7fbf('0x18')]||null:null,'include':_0x36ddd0['options']?_0x36ddd0[_0x7fbf('0x15')]['include']?_['map'](_0x36ddd0[_0x7fbf('0x15')]['include'],function(_0x20213b){return{'model':db[_0x20213b[_0x7fbf('0x19')]],'as':_0x20213b['as'],'attributes':_0x20213b['attributes'],'include':_0x20213b[_0x7fbf('0x1a')]?_['map'](_0x20213b['include'],function(_0x5b2235){return{'model':db[_0x5b2235[_0x7fbf('0x19')]],'as':_0x5b2235['as'],'attributes':_0x5b2235['attributes'],'include':_0x5b2235[_0x7fbf('0x1a')]?_[_0x7fbf('0x1b')](_0x5b2235[_0x7fbf('0x1a')],function(_0x5c615f){return{'model':db[_0x5c615f['model']],'as':_0x5c615f['as'],'attributes':_0x5c615f[_0x7fbf('0x17')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5b34e5){logger['info'](_0x7fbf('0x12'),_0x36ddd0);logger[_0x7fbf('0xd')]('GetTrunk',_0x36ddd0,JSON[_0x7fbf('0x1c')](_0x5b34e5));_0xad6b3f(_0x5b34e5);})[_0x7fbf('0x11')](function(_0x563748){logger['error'](_0x7fbf('0x12'),_0x563748['message'],_0x36ddd0);_0xe07c6f(_0x2fc3f4[_0x7fbf('0xe')](0x1f4,_0x563748['message']));});});};exports[_0x7fbf('0x1d')]=function(_0x2755aa){var _0x234426=this;return new Promise(function(_0x4d9575,_0x3362d7){return db['Trunk'][_0x7fbf('0x1e')]({'raw':_0x2755aa[_0x7fbf('0x15')]?_0x2755aa[_0x7fbf('0x15')][_0x7fbf('0x16')]===undefined?!![]:![]:!![],'where':_0x2755aa[_0x7fbf('0x15')]?_0x2755aa[_0x7fbf('0x15')][_0x7fbf('0x1f')]||null:null,'attributes':_0x2755aa['options']?_0x2755aa['options'][_0x7fbf('0x17')]||null:null,'include':_0x2755aa['options']?_0x2755aa[_0x7fbf('0x15')]['include']?_[_0x7fbf('0x1b')](_0x2755aa['options'][_0x7fbf('0x1a')],function(_0x3bee74){return{'model':db[_0x3bee74[_0x7fbf('0x19')]],'as':_0x3bee74['as'],'attributes':_0x3bee74[_0x7fbf('0x17')],'include':_0x3bee74[_0x7fbf('0x1a')]?_[_0x7fbf('0x1b')](_0x3bee74[_0x7fbf('0x1a')],function(_0x1f6de3){return{'model':db[_0x1f6de3[_0x7fbf('0x19')]],'as':_0x1f6de3['as'],'attributes':_0x1f6de3[_0x7fbf('0x17')],'include':_0x1f6de3[_0x7fbf('0x1a')]?_[_0x7fbf('0x1b')](_0x1f6de3['include'],function(_0x66ab1e){return{'model':db[_0x66ab1e[_0x7fbf('0x19')]],'as':_0x66ab1e['as'],'attributes':_0x66ab1e[_0x7fbf('0x17')]};}):[]};}):[]};}):[]:[]})[_0x7fbf('0x9')](function(_0x2bddde){logger[_0x7fbf('0xa')](_0x7fbf('0x1d'),_0x2755aa);logger[_0x7fbf('0xd')]('ShowTrunk',_0x2755aa,JSON[_0x7fbf('0x1c')](_0x2bddde));_0x4d9575(_0x2bddde);})[_0x7fbf('0x11')](function(_0x16330b){logger[_0x7fbf('0xe')](_0x7fbf('0x1d'),_0x16330b[_0x7fbf('0xf')],_0x2755aa);_0x3362d7(_0x234426[_0x7fbf('0xe')](0x1f4,_0x16330b[_0x7fbf('0xf')]));});});};
\ No newline at end of file
+var _0x3c5e=['rpc','../../config/environment','jayson/promise','client','request','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','options','raw','where','attributes','limit','include','map','model','GetTrunk','ShowTrunk','Trunk','find','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger'];(function(_0x24cdae,_0x2f1cd9){var _0x2b598c=function(_0x491669){while(--_0x491669){_0x24cdae['push'](_0x24cdae['shift']());}};_0x2b598c(++_0x2f1cd9);}(_0x3c5e,0x145));var _0xe3c5=function(_0x141696,_0x44dd4e){_0x141696=_0x141696-0x0;var _0xd8480c=_0x3c5e[_0x141696];return _0xd8480c;};'use strict';var _=require(_0xe3c5('0x0'));var util=require(_0xe3c5('0x1'));var moment=require(_0xe3c5('0x2'));var BPromise=require(_0xe3c5('0x3'));var rs=require(_0xe3c5('0x4'));var fs=require('fs');var Redis=require(_0xe3c5('0x5'));var db=require(_0xe3c5('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xe3c5('0x7'))(_0xe3c5('0x8'));var config=require(_0xe3c5('0x9'));var jayson=require(_0xe3c5('0xa'));var client=jayson[_0xe3c5('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x249124,_0x1df81d,_0x478c14){return new BPromise(function(_0x1ebad7,_0x277742){return client[_0xe3c5('0xc')](_0x249124,_0x478c14)[_0xe3c5('0xd')](function(_0x2d556f){logger[_0xe3c5('0xe')](_0xe3c5('0xf'),_0x1df81d,_0xe3c5('0x10'));logger[_0xe3c5('0x11')](_0xe3c5('0x12'),_0x1df81d,_0xe3c5('0x10'),JSON[_0xe3c5('0x13')](_0x2d556f));if(_0x2d556f[_0xe3c5('0x14')]){if(_0x2d556f['error'][_0xe3c5('0x15')]===0x1f4){logger[_0xe3c5('0x14')](_0xe3c5('0xf'),_0x1df81d,_0x2d556f[_0xe3c5('0x14')][_0xe3c5('0x16')]);return _0x277742(_0x2d556f[_0xe3c5('0x14')][_0xe3c5('0x16')]);}logger[_0xe3c5('0x14')](_0xe3c5('0xf'),_0x1df81d,_0x2d556f['error'][_0xe3c5('0x16')]);return _0x1ebad7(_0x2d556f[_0xe3c5('0x14')][_0xe3c5('0x16')]);}else{logger[_0xe3c5('0xe')](_0xe3c5('0xf'),_0x1df81d,_0xe3c5('0x10'));_0x1ebad7(_0x2d556f[_0xe3c5('0x17')][_0xe3c5('0x16')]);}})[_0xe3c5('0x18')](function(_0x5ea67c){logger['error']('Trunk,\x20%s,\x20%s',_0x1df81d,_0x5ea67c);_0x277742(_0x5ea67c);});});}exports['GetTrunk']=function(_0x2bd51d){var _0xb61d9c=this;return new Promise(function(_0x2fa81e,_0x150618){return db['Trunk']['findAll']({'raw':_0x2bd51d[_0xe3c5('0x19')]?_0x2bd51d['options'][_0xe3c5('0x1a')]===undefined?!![]:![]:!![],'where':_0x2bd51d[_0xe3c5('0x19')]?_0x2bd51d[_0xe3c5('0x19')][_0xe3c5('0x1b')]||null:null,'attributes':_0x2bd51d['options']?_0x2bd51d['options'][_0xe3c5('0x1c')]||null:null,'limit':_0x2bd51d[_0xe3c5('0x19')]?_0x2bd51d['options'][_0xe3c5('0x1d')]||null:null,'include':_0x2bd51d[_0xe3c5('0x19')]?_0x2bd51d['options'][_0xe3c5('0x1e')]?_[_0xe3c5('0x1f')](_0x2bd51d[_0xe3c5('0x19')]['include'],function(_0x5f8849){return{'model':db[_0x5f8849['model']],'as':_0x5f8849['as'],'attributes':_0x5f8849[_0xe3c5('0x1c')],'include':_0x5f8849[_0xe3c5('0x1e')]?_[_0xe3c5('0x1f')](_0x5f8849[_0xe3c5('0x1e')],function(_0x4af61a){return{'model':db[_0x4af61a[_0xe3c5('0x20')]],'as':_0x4af61a['as'],'attributes':_0x4af61a[_0xe3c5('0x1c')],'include':_0x4af61a[_0xe3c5('0x1e')]?_['map'](_0x4af61a[_0xe3c5('0x1e')],function(_0x16f6e4){return{'model':db[_0x16f6e4[_0xe3c5('0x20')]],'as':_0x16f6e4['as'],'attributes':_0x16f6e4[_0xe3c5('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4285b5){logger[_0xe3c5('0xe')](_0xe3c5('0x21'),_0x2bd51d);logger['debug'](_0xe3c5('0x21'),_0x2bd51d,JSON[_0xe3c5('0x13')](_0x4285b5));_0x2fa81e(_0x4285b5);})['catch'](function(_0x2fae68){logger[_0xe3c5('0x14')](_0xe3c5('0x21'),_0x2fae68[_0xe3c5('0x16')],_0x2bd51d);_0x150618(_0xb61d9c[_0xe3c5('0x14')](0x1f4,_0x2fae68[_0xe3c5('0x16')]));});});};exports[_0xe3c5('0x22')]=function(_0x32b030){var _0x57f0f2=this;return new Promise(function(_0x84ffb7,_0x74656f){return db[_0xe3c5('0x23')][_0xe3c5('0x24')]({'raw':_0x32b030['options']?_0x32b030[_0xe3c5('0x19')][_0xe3c5('0x1a')]===undefined?!![]:![]:!![],'where':_0x32b030['options']?_0x32b030[_0xe3c5('0x19')][_0xe3c5('0x1b')]||null:null,'attributes':_0x32b030[_0xe3c5('0x19')]?_0x32b030[_0xe3c5('0x19')][_0xe3c5('0x1c')]||null:null,'include':_0x32b030[_0xe3c5('0x19')]?_0x32b030[_0xe3c5('0x19')]['include']?_[_0xe3c5('0x1f')](_0x32b030['options'][_0xe3c5('0x1e')],function(_0x1bf8e5){return{'model':db[_0x1bf8e5['model']],'as':_0x1bf8e5['as'],'attributes':_0x1bf8e5[_0xe3c5('0x1c')],'include':_0x1bf8e5[_0xe3c5('0x1e')]?_['map'](_0x1bf8e5['include'],function(_0x565b14){return{'model':db[_0x565b14[_0xe3c5('0x20')]],'as':_0x565b14['as'],'attributes':_0x565b14[_0xe3c5('0x1c')],'include':_0x565b14[_0xe3c5('0x1e')]?_[_0xe3c5('0x1f')](_0x565b14['include'],function(_0xdea697){return{'model':db[_0xdea697['model']],'as':_0xdea697['as'],'attributes':_0xdea697[_0xe3c5('0x1c')]};}):[]};}):[]};}):[]:[]})[_0xe3c5('0xd')](function(_0x46ca09){logger[_0xe3c5('0xe')](_0xe3c5('0x22'),_0x32b030);logger['debug'](_0xe3c5('0x22'),_0x32b030,JSON[_0xe3c5('0x13')](_0x46ca09));_0x84ffb7(_0x46ca09);})[_0xe3c5('0x18')](function(_0x468852){logger['error'](_0xe3c5('0x22'),_0x468852[_0xe3c5('0x16')],_0x32b030);_0x74656f(_0x57f0f2[_0xe3c5('0x14')](0x1f4,_0x468852[_0xe3c5('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3bea=['addAvatar','/:id/login','login','/:id/logout','logout','/:id/pause','pause','unpause','/:id/teams','addTeams','/:id/chat_interactions','addChatInteractions','/:id/mail_interactions','addMailInteractions','/:id/fax_interactions','addSmsInteractions','/:id/openchannel_interactions','addOpenchannelInteractions','addWhatsappInteractions','addFaxAccounts','addMailAccounts','addOpenchannelAccounts','/:id/whatsapp_accounts','addSquareProjects','put','update','/:id/password','changePassword','removeQueues','delete','removeTeams','removeFaxInteractions','/:id/sms_interactions','removeSmsInteractions','removeOpenchannelInteractions','removeWhatsappInteractions','removeFaxAccounts','removeMailAccounts','removeOpenchannelAccounts','removeSmsAccounts','/:id/api_key','removeApiKey','multer','path','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','whoami','/:id','show','/:id/avatar','getAvatar','/:id/open_tabs','getOpenTabs','/:id/contacts','/:id/queues','getVoiceQueuesRt','/:id/groups','getGroups','/:id/recordings','getRecordings','/:id/screen_recordings','getScreenRecordings','/:id/chat/interactions','getChatInteractions','getOpenchannelInteractions','getMailInteractions','/:id/sms/interactions','getSmsInteractions','/:id/fax/interactions','getFaxInteractions','getWhatsappInteractions','getTeams','/:id/lists','getLists','/:id/agents','getAgents','getVoicePrefixes','/:id/fax_accounts','/:id/mail_accounts','getMailAccounts','/:id/openchannel_accounts','getOpenchannelAccounts','/:id/sms_accounts','/:id/chat_websites','getWhatsappAccounts','/:id/square_projects','/:id/scheduled_calls','getScheduledCalls','getApiKey','post','addContacts','create','/create_many','addQueues','diskStorage','join','root','%s-%s','originalname','file'];(function(_0x2c8c27,_0x4da307){var _0x4c27f9=function(_0x50f667){while(--_0x50f667){_0x2c8c27['push'](_0x2c8c27['shift']());}};_0x4c27f9(++_0x4da307);}(_0x3bea,0x168));var _0xa3be=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0x3bea[_0x13d07a];return _0x5ee0ee;};'use strict';var multer=require(_0xa3be('0x0'));var util=require('util');var path=require(_0xa3be('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xa3be('0x2')]();var fs_extra=require(_0xa3be('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xa3be('0x4'));var config=require(_0xa3be('0x5'));var controller=require('./user.controller');router[_0xa3be('0x6')]('/',auth[_0xa3be('0x7')](),controller[_0xa3be('0x8')]);router[_0xa3be('0x6')](_0xa3be('0x9'),auth[_0xa3be('0x7')](),controller['describe']);router['get']('/whoami',auth[_0xa3be('0x7')](),controller[_0xa3be('0xa')]);router[_0xa3be('0x6')]('/presence',auth[_0xa3be('0x7')](),controller['getPresence']);router[_0xa3be('0x6')](_0xa3be('0xb'),auth['isAuthenticated'](),controller[_0xa3be('0xc')]);router[_0xa3be('0x6')](_0xa3be('0xd'),controller[_0xa3be('0xe')]);router[_0xa3be('0x6')](_0xa3be('0xf'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x10')]);router['get'](_0xa3be('0x11'),auth[_0xa3be('0x7')](),controller['getContacts']);router[_0xa3be('0x6')](_0xa3be('0x12'),auth[_0xa3be('0x7')](),controller['getQueues']);router[_0xa3be('0x6')]('/:id/queues_rt',auth['isAuthenticated'](),controller[_0xa3be('0x13')]);router[_0xa3be('0x6')](_0xa3be('0x14'),auth['isAuthenticated'](),controller[_0xa3be('0x15')]);router['get'](_0xa3be('0x16'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x17')]);router[_0xa3be('0x6')](_0xa3be('0x18'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x19')]);router[_0xa3be('0x6')](_0xa3be('0x1a'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x1b')]);router[_0xa3be('0x6')]('/:id/openchannel/interactions',auth[_0xa3be('0x7')](),controller[_0xa3be('0x1c')]);router[_0xa3be('0x6')]('/:id/mail/interactions',auth[_0xa3be('0x7')](),controller[_0xa3be('0x1d')]);router[_0xa3be('0x6')](_0xa3be('0x1e'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x1f')]);router[_0xa3be('0x6')](_0xa3be('0x20'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x21')]);router['get']('/:id/whatsapp/interactions',auth[_0xa3be('0x7')](),controller[_0xa3be('0x22')]);router[_0xa3be('0x6')]('/:id/teams',auth['isAuthenticated'](),controller[_0xa3be('0x23')]);router[_0xa3be('0x6')](_0xa3be('0x24'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x25')]);router[_0xa3be('0x6')](_0xa3be('0x26'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x27')]);router[_0xa3be('0x6')]('/:id/prefixes',auth[_0xa3be('0x7')](),controller[_0xa3be('0x28')]);router[_0xa3be('0x6')](_0xa3be('0x29'),auth['isAuthenticated'](),controller['getFaxAccounts']);router['get'](_0xa3be('0x2a'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x2b')]);router[_0xa3be('0x6')](_0xa3be('0x2c'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x2d')]);router[_0xa3be('0x6')](_0xa3be('0x2e'),auth[_0xa3be('0x7')](),controller['getSmsAccounts']);router[_0xa3be('0x6')](_0xa3be('0x2f'),auth[_0xa3be('0x7')](),controller['getChatWebsites']);router[_0xa3be('0x6')]('/:id/whatsapp_accounts',auth['isAuthenticated'](),controller[_0xa3be('0x30')]);router[_0xa3be('0x6')](_0xa3be('0x31'),auth[_0xa3be('0x7')](),controller['getSquareProjects']);router[_0xa3be('0x6')](_0xa3be('0x32'),auth['isAuthenticated'](),controller[_0xa3be('0x33')]);router[_0xa3be('0x6')]('/:id/api_key',auth[_0xa3be('0x7')](),controller[_0xa3be('0x34')]);router[_0xa3be('0x35')](_0xa3be('0x11'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x36')]);router[_0xa3be('0x35')]('/',auth[_0xa3be('0x7')](),controller[_0xa3be('0x37')]);router[_0xa3be('0x35')](_0xa3be('0x38'),auth[_0xa3be('0x7')](),controller['bulkCreate']);router['post'](_0xa3be('0x12'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x39')]);var upload=multer({'storage':multer[_0xa3be('0x3a')]({'destination':function(_0x2e1848,_0x2a9c84,_0x1a353e){_0x1a353e(null,path[_0xa3be('0x3b')](config[_0xa3be('0x3c')],'server/files/images/'));},'filename':function(_0x292be5,_0xbba5a,_0x382722){_0x382722(null,util['format'](_0xa3be('0x3d'),Date['now'](),_0xbba5a[_0xa3be('0x3e')]));}})});router[_0xa3be('0x35')](_0xa3be('0xd'),upload['single'](_0xa3be('0x3f')),controller[_0xa3be('0x40')]);router[_0xa3be('0x35')](_0xa3be('0x41'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x42')]);router[_0xa3be('0x35')](_0xa3be('0x43'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x44')]);router[_0xa3be('0x35')](_0xa3be('0x45'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x46')]);router[_0xa3be('0x35')]('/:id/unpause',auth[_0xa3be('0x7')](),controller[_0xa3be('0x47')]);router[_0xa3be('0x35')](_0xa3be('0x48'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x49')]);router[_0xa3be('0x35')](_0xa3be('0x4a'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x4b')]);router['post'](_0xa3be('0x4c'),auth['isAuthenticated'](),controller[_0xa3be('0x4d')]);router[_0xa3be('0x35')](_0xa3be('0x4e'),auth[_0xa3be('0x7')](),controller['addFaxInteractions']);router[_0xa3be('0x35')]('/:id/sms_interactions',auth[_0xa3be('0x7')](),controller[_0xa3be('0x4f')]);router[_0xa3be('0x35')](_0xa3be('0x50'),auth['isAuthenticated'](),controller[_0xa3be('0x51')]);router[_0xa3be('0x35')]('/:id/whatsapp_interactions',auth[_0xa3be('0x7')](),controller[_0xa3be('0x52')]);router[_0xa3be('0x35')]('/:id/fax_accounts',auth['isAuthenticated'](),controller[_0xa3be('0x53')]);router[_0xa3be('0x35')]('/:id/mail_accounts',auth[_0xa3be('0x7')](),controller[_0xa3be('0x54')]);router[_0xa3be('0x35')]('/:id/openchannel_accounts',auth['isAuthenticated'](),controller[_0xa3be('0x55')]);router[_0xa3be('0x35')](_0xa3be('0x2e'),auth[_0xa3be('0x7')](),controller['addSmsAccounts']);router[_0xa3be('0x35')](_0xa3be('0x2f'),auth[_0xa3be('0x7')](),controller['addChatWebsites']);router['post'](_0xa3be('0x56'),auth[_0xa3be('0x7')](),controller['addWhatsappAccounts']);router[_0xa3be('0x35')](_0xa3be('0x31'),auth['isAuthenticated'](),controller[_0xa3be('0x57')]);router[_0xa3be('0x35')]('/:id/api_key',auth[_0xa3be('0x7')](),controller['createApiKey']);router[_0xa3be('0x58')](_0xa3be('0xb'),auth['isAuthenticated'](),controller[_0xa3be('0x59')]);router[_0xa3be('0x58')](_0xa3be('0x5a'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x5b')]);router['delete'](_0xa3be('0x12'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x5c')]);router[_0xa3be('0x5d')](_0xa3be('0x48'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x5e')]);router[_0xa3be('0x5d')](_0xa3be('0xb'),auth[_0xa3be('0x7')](),controller['destroy']);router['delete']('/:id/chat_interactions',auth[_0xa3be('0x7')](),controller['removeChatInteractions']);router[_0xa3be('0x5d')](_0xa3be('0x4c'),auth['isAuthenticated'](),controller['removeMailInteractions']);router[_0xa3be('0x5d')](_0xa3be('0x4e'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x5f')]);router[_0xa3be('0x5d')](_0xa3be('0x60'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x61')]);router[_0xa3be('0x5d')](_0xa3be('0x50'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x62')]);router['delete']('/:id/whatsapp_interactions',auth['isAuthenticated'](),controller[_0xa3be('0x63')]);router[_0xa3be('0x5d')](_0xa3be('0x29'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x64')]);router[_0xa3be('0x5d')](_0xa3be('0x2a'),auth['isAuthenticated'](),controller[_0xa3be('0x65')]);router[_0xa3be('0x5d')](_0xa3be('0x2c'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x66')]);router[_0xa3be('0x5d')]('/:id/sms_accounts',auth[_0xa3be('0x7')](),controller[_0xa3be('0x67')]);router['delete'](_0xa3be('0x2f'),auth['isAuthenticated'](),controller['removeChatWebsites']);router[_0xa3be('0x5d')](_0xa3be('0x56'),auth[_0xa3be('0x7')](),controller['removeWhatsappAccounts']);router[_0xa3be('0x5d')](_0xa3be('0x31'),auth['isAuthenticated'](),controller['removeSquareProjects']);router[_0xa3be('0x5d')](_0xa3be('0x68'),auth[_0xa3be('0x7')](),controller[_0xa3be('0x69')]);module['exports']=router;
\ No newline at end of file
+var _0xcbec=['unpause','addTeams','/:id/chat_interactions','addChatInteractions','/:id/mail_interactions','addMailInteractions','/:id/fax_interactions','addFaxInteractions','/:id/sms_interactions','/:id/openchannel_interactions','addOpenchannelInteractions','/:id/whatsapp_interactions','addWhatsappInteractions','addMailAccounts','addSmsAccounts','addChatWebsites','/:id/whatsapp_accounts','addWhatsappAccounts','addSquareProjects','createApiKey','put','update','/:id/password','changePassword','delete','removeQueues','removeTeams','removeChatInteractions','removeMailInteractions','removeSmsInteractions','removeOpenchannelInteractions','removeWhatsappInteractions','/:id/mail_accounts','removeOpenchannelAccounts','removeSmsAccounts','removeChatWebsites','removeWhatsappAccounts','multer','util','express','fs-extra','../../components/interaction/service','../../config/environment','./user.controller','index','get','/describe','isAuthenticated','describe','whoami','/presence','getPresence','/:id','show','getAvatar','getOpenTabs','getContacts','/:id/queues','getQueues','getVoiceQueuesRt','/:id/groups','getGroups','/:id/recordings','getRecordings','getScreenRecordings','/:id/chat/interactions','getChatInteractions','getOpenchannelInteractions','/:id/mail/interactions','getMailInteractions','/:id/sms/interactions','/:id/fax/interactions','getWhatsappInteractions','/:id/teams','/:id/lists','getLists','getAgents','/:id/fax_accounts','getFaxAccounts','getMailAccounts','/:id/openchannel_accounts','/:id/sms_accounts','getSmsAccounts','/:id/chat_websites','getChatWebsites','/:id/square_projects','getSquareProjects','/:id/scheduled_calls','getScheduledCalls','/:id/api_key','getApiKey','post','/:id/contacts','addContacts','create','diskStorage','root','format','%s-%s','now','originalname','file','addAvatar','login','/:id/logout','logout','pause','/:id/unpause'];(function(_0x26a463,_0x1d10b9){var _0x5d43a3=function(_0x31de58){while(--_0x31de58){_0x26a463['push'](_0x26a463['shift']());}};_0x5d43a3(++_0x1d10b9);}(_0xcbec,0x91));var _0xccbe=function(_0x1efbbe,_0x37e8ee){_0x1efbbe=_0x1efbbe-0x0;var _0x2f97be=_0xcbec[_0x1efbbe];return _0x2f97be;};'use strict';var multer=require(_0xccbe('0x0'));var util=require(_0xccbe('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xccbe('0x2'));var router=express['Router']();var fs_extra=require(_0xccbe('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xccbe('0x4'));var config=require(_0xccbe('0x5'));var controller=require(_0xccbe('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0xccbe('0x7')]);router[_0xccbe('0x8')](_0xccbe('0x9'),auth[_0xccbe('0xa')](),controller[_0xccbe('0xb')]);router[_0xccbe('0x8')]('/whoami',auth[_0xccbe('0xa')](),controller[_0xccbe('0xc')]);router['get'](_0xccbe('0xd'),auth[_0xccbe('0xa')](),controller[_0xccbe('0xe')]);router[_0xccbe('0x8')](_0xccbe('0xf'),auth['isAuthenticated'](),controller[_0xccbe('0x10')]);router['get']('/:id/avatar',controller[_0xccbe('0x11')]);router[_0xccbe('0x8')]('/:id/open_tabs',auth[_0xccbe('0xa')](),controller[_0xccbe('0x12')]);router['get']('/:id/contacts',auth[_0xccbe('0xa')](),controller[_0xccbe('0x13')]);router[_0xccbe('0x8')](_0xccbe('0x14'),auth['isAuthenticated'](),controller[_0xccbe('0x15')]);router[_0xccbe('0x8')]('/:id/queues_rt',auth[_0xccbe('0xa')](),controller[_0xccbe('0x16')]);router['get'](_0xccbe('0x17'),auth['isAuthenticated'](),controller[_0xccbe('0x18')]);router['get'](_0xccbe('0x19'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x1a')]);router[_0xccbe('0x8')]('/:id/screen_recordings',auth['isAuthenticated'](),controller[_0xccbe('0x1b')]);router[_0xccbe('0x8')](_0xccbe('0x1c'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x1d')]);router[_0xccbe('0x8')]('/:id/openchannel/interactions',auth[_0xccbe('0xa')](),controller[_0xccbe('0x1e')]);router[_0xccbe('0x8')](_0xccbe('0x1f'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x20')]);router['get'](_0xccbe('0x21'),auth['isAuthenticated'](),controller['getSmsInteractions']);router[_0xccbe('0x8')](_0xccbe('0x22'),auth[_0xccbe('0xa')](),controller['getFaxInteractions']);router[_0xccbe('0x8')]('/:id/whatsapp/interactions',auth['isAuthenticated'](),controller[_0xccbe('0x23')]);router[_0xccbe('0x8')](_0xccbe('0x24'),auth['isAuthenticated'](),controller['getTeams']);router[_0xccbe('0x8')](_0xccbe('0x25'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x26')]);router['get']('/:id/agents',auth[_0xccbe('0xa')](),controller[_0xccbe('0x27')]);router[_0xccbe('0x8')]('/:id/prefixes',auth[_0xccbe('0xa')](),controller['getVoicePrefixes']);router[_0xccbe('0x8')](_0xccbe('0x28'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x29')]);router[_0xccbe('0x8')]('/:id/mail_accounts',auth['isAuthenticated'](),controller[_0xccbe('0x2a')]);router[_0xccbe('0x8')](_0xccbe('0x2b'),auth[_0xccbe('0xa')](),controller['getOpenchannelAccounts']);router[_0xccbe('0x8')](_0xccbe('0x2c'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x2d')]);router[_0xccbe('0x8')](_0xccbe('0x2e'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x2f')]);router['get']('/:id/whatsapp_accounts',auth[_0xccbe('0xa')](),controller['getWhatsappAccounts']);router[_0xccbe('0x8')](_0xccbe('0x30'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x31')]);router[_0xccbe('0x8')](_0xccbe('0x32'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x33')]);router[_0xccbe('0x8')](_0xccbe('0x34'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x35')]);router[_0xccbe('0x36')](_0xccbe('0x37'),auth['isAuthenticated'](),controller[_0xccbe('0x38')]);router['post']('/',auth[_0xccbe('0xa')](),controller[_0xccbe('0x39')]);router[_0xccbe('0x36')]('/create_many',auth[_0xccbe('0xa')](),controller['bulkCreate']);router[_0xccbe('0x36')](_0xccbe('0x14'),auth[_0xccbe('0xa')](),controller['addQueues']);var upload=multer({'storage':multer[_0xccbe('0x3a')]({'destination':function(_0x4f165d,_0x4e57d3,_0x10ee2e){_0x10ee2e(null,path['join'](config[_0xccbe('0x3b')],'server/files/images/'));},'filename':function(_0x56268a,_0x38a8d8,_0x23b667){_0x23b667(null,util[_0xccbe('0x3c')](_0xccbe('0x3d'),Date[_0xccbe('0x3e')](),_0x38a8d8[_0xccbe('0x3f')]));}})});router['post']('/:id/avatar',upload['single'](_0xccbe('0x40')),controller[_0xccbe('0x41')]);router[_0xccbe('0x36')]('/:id/login',auth['isAuthenticated'](),controller[_0xccbe('0x42')]);router[_0xccbe('0x36')](_0xccbe('0x43'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x44')]);router[_0xccbe('0x36')]('/:id/pause',auth[_0xccbe('0xa')](),controller[_0xccbe('0x45')]);router['post'](_0xccbe('0x46'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x47')]);router[_0xccbe('0x36')](_0xccbe('0x24'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x48')]);router[_0xccbe('0x36')](_0xccbe('0x49'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x4a')]);router[_0xccbe('0x36')](_0xccbe('0x4b'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x4c')]);router[_0xccbe('0x36')](_0xccbe('0x4d'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x4e')]);router['post'](_0xccbe('0x4f'),auth[_0xccbe('0xa')](),controller['addSmsInteractions']);router[_0xccbe('0x36')](_0xccbe('0x50'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x51')]);router[_0xccbe('0x36')](_0xccbe('0x52'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x53')]);router[_0xccbe('0x36')]('/:id/fax_accounts',auth[_0xccbe('0xa')](),controller['addFaxAccounts']);router[_0xccbe('0x36')]('/:id/mail_accounts',auth[_0xccbe('0xa')](),controller[_0xccbe('0x54')]);router[_0xccbe('0x36')]('/:id/openchannel_accounts',auth[_0xccbe('0xa')](),controller['addOpenchannelAccounts']);router[_0xccbe('0x36')](_0xccbe('0x2c'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x55')]);router[_0xccbe('0x36')](_0xccbe('0x2e'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x56')]);router['post'](_0xccbe('0x57'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x58')]);router[_0xccbe('0x36')](_0xccbe('0x30'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x59')]);router['post'](_0xccbe('0x34'),auth['isAuthenticated'](),controller[_0xccbe('0x5a')]);router[_0xccbe('0x5b')]('/:id',auth[_0xccbe('0xa')](),controller[_0xccbe('0x5c')]);router[_0xccbe('0x5b')](_0xccbe('0x5d'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x5e')]);router[_0xccbe('0x5f')](_0xccbe('0x14'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x60')]);router[_0xccbe('0x5f')](_0xccbe('0x24'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x61')]);router['delete'](_0xccbe('0xf'),auth['isAuthenticated'](),controller['destroy']);router[_0xccbe('0x5f')](_0xccbe('0x49'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x62')]);router[_0xccbe('0x5f')](_0xccbe('0x4b'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x63')]);router[_0xccbe('0x5f')]('/:id/fax_interactions',auth[_0xccbe('0xa')](),controller['removeFaxInteractions']);router[_0xccbe('0x5f')](_0xccbe('0x4f'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x64')]);router[_0xccbe('0x5f')](_0xccbe('0x50'),auth['isAuthenticated'](),controller[_0xccbe('0x65')]);router['delete'](_0xccbe('0x52'),auth['isAuthenticated'](),controller[_0xccbe('0x66')]);router[_0xccbe('0x5f')]('/:id/fax_accounts',auth[_0xccbe('0xa')](),controller['removeFaxAccounts']);router[_0xccbe('0x5f')](_0xccbe('0x67'),auth['isAuthenticated'](),controller['removeMailAccounts']);router[_0xccbe('0x5f')](_0xccbe('0x2b'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x68')]);router['delete'](_0xccbe('0x2c'),auth[_0xccbe('0xa')](),controller[_0xccbe('0x69')]);router[_0xccbe('0x5f')]('/:id/chat_websites',auth[_0xccbe('0xa')](),controller[_0xccbe('0x6a')]);router['delete']('/:id/whatsapp_accounts',auth['isAuthenticated'](),controller[_0xccbe('0x6b')]);router[_0xccbe('0x5f')]('/:id/square_projects',auth[_0xccbe('0xa')](),controller['removeSquareProjects']);router['delete'](_0xccbe('0x34'),auth[_0xccbe('0xa')](),controller['removeApiKey']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd246=['udp','transport','join','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','info','shortinfo','inband','auto','yes','update','outgoing','force_rport,comedia','nat','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<>','always','refuse','originate','uas','fingerprint','certificate','passive','nonat','TEXT','showWebBar','get','isArray','encryption','force_avp','icesupport','dtlsenable','dtlssetup','dtlscertfile','dtlsprivatekey','wss','avpf','dtlsverify','actpass','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','rtcp_mux','permissions','map','VIRTUAL','phoneBarEnableScreenRecordingByAgent','string','true','false','blocked','loginAttempts','blockedAt','sequelize','moment','util','lodash','exports','STRING','name','defaultuser','setDataValue','fullname','callerid','format','internal','email','toLowerCase','admin','agent','telephone','INTEGER','accountcode','getDataValue','BOOLEAN','DATE','ENUM','user','friend','from-sip','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN'];(function(_0x9aad16,_0x3b6ce6){var _0x45aa70=function(_0x5646cd){while(--_0x5646cd){_0x9aad16['push'](_0x9aad16['shift']());}};_0x45aa70(++_0x3b6ce6);}(_0xd246,0xf5));var _0x6d24=function(_0x4843cf,_0x480cb5){_0x4843cf=_0x4843cf-0x0;var _0x52ad78=_0xd246[_0x4843cf];return _0x52ad78;};'use strict';var Sequelize=require(_0x6d24('0x0'));var moment=require(_0x6d24('0x1'));var util=require(_0x6d24('0x2'));var _=require(_0x6d24('0x3'));module[_0x6d24('0x4')]={'name':{'type':Sequelize[_0x6d24('0x5')],'allowNull':![],'unique':_0x6d24('0x6'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x51c18f){this['setDataValue'](_0x6d24('0x6'),_0x51c18f);this['setDataValue'](_0x6d24('0x7'),_0x51c18f);},'comment':'The\x20name\x20of\x20the\x20user'},'fullname':{'type':Sequelize[_0x6d24('0x5')],'allowNull':![],'set':function(_0x7f6dfa){this[_0x6d24('0x8')](_0x6d24('0x9'),_0x7f6dfa);this[_0x6d24('0x8')](_0x6d24('0xa'),util[_0x6d24('0xb')]('\x22%s\x22\x20<%s>',_0x7f6dfa,this['getDataValue'](_0x6d24('0xc'))));}},'alias':{'type':Sequelize['STRING']},'email':{'type':Sequelize[_0x6d24('0x5')],'allowNull':![],'unique':'email','validate':{'isEmail':!![]},'set':function(_0x7450a7){if(_0x7450a7){this['setDataValue'](_0x6d24('0xd'),_0x7450a7[_0x6d24('0xe')]());}}},'role':{'type':Sequelize['ENUM'](_0x6d24('0xf'),'user',_0x6d24('0x10'),_0x6d24('0x11')),'allowNull':![]},'password':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize['STRING'],'defaultValue':'local'},'internal':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':![],'unique':_0x6d24('0xc'),'set':function(_0x2eb6a6){this[_0x6d24('0x8')]('internal',_0x2eb6a6);this['setDataValue'](_0x6d24('0x13'),_0x2eb6a6);this[_0x6d24('0x8')](_0x6d24('0xa'),util['format']('\x22%s\x22\x20<%s>',this[_0x6d24('0x14')](_0x6d24('0x9')),_0x2eb6a6));}},'salt':{'type':Sequelize[_0x6d24('0x5')]},'phone':{'type':Sequelize[_0x6d24('0x5')]},'mobile':{'type':Sequelize[_0x6d24('0x5')]},'address':{'type':Sequelize[_0x6d24('0x5')]},'zipcode':{'type':Sequelize['STRING']},'userpic':{'type':Sequelize['STRING']},'city':{'type':Sequelize[_0x6d24('0x5')]},'country':{'type':Sequelize[_0x6d24('0x5')]},'online':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'lastLoginAt':{'type':Sequelize['DATE']},'voicePause':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'chatPause':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'mailPause':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'faxPause':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'smsPause':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'whatsappPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'openchannelPause':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'pauseType':{'type':Sequelize[_0x6d24('0x5')],'defaultValue':'DEFAULT\x20PAUSE'},'lastPauseAt':{'type':Sequelize[_0x6d24('0x16')]},'chatCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'mailCapacity':{'type':Sequelize[_0x6d24('0x12')],'defaultValue':0x0},'faxCapacity':{'type':Sequelize[_0x6d24('0x12')],'defaultValue':0x0},'smsCapacity':{'type':Sequelize[_0x6d24('0x12')],'defaultValue':0x0},'whatsappCapacity':{'type':Sequelize[_0x6d24('0x12')],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0x6d24('0x12')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize['INTEGER'](0x5),'defaultValue':0x1428},'phoneBarExpires':{'type':Sequelize[_0x6d24('0x12')](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize['INTEGER'],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'chanspy':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'description':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'host':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':'dynamic'},'ipaddr':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'port':{'type':Sequelize[_0x6d24('0x12')](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize['STRING'],'allowNull':!![]},'regserver':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'useragent':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'lastms':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':!![]},'type':{'type':Sequelize[_0x6d24('0x17')]('friend',_0x6d24('0x18'),'peer'),'allowNull':!![],'defaultValue':_0x6d24('0x19')},'context':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![],'defaultValue':_0x6d24('0x1a')},'callingpres':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x1b'),_0x6d24('0x1c'),_0x6d24('0x1d'),_0x6d24('0x1e'),_0x6d24('0x1f'),_0x6d24('0x20'),_0x6d24('0x21'),'PROHIB'),'allowNull':!![]},'deny':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'permit':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'secret':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'md5secret':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'remotesecret':{'type':Sequelize['STRING'],'allowNull':!![]},'transport':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0x6d24('0x22'),'set':function(_0x1b20b3){this[_0x6d24('0x8')](_0x6d24('0x23'),_0x1b20b3?_0x1b20b3[_0x6d24('0x24')](','):null);},'get':function(){return this['getDataValue'](_0x6d24('0x23'))?this['getDataValue'](_0x6d24('0x23'))[_0x6d24('0x25')](','):null;},'comment':_0x6d24('0x26')},'dtmfmode':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x27'),_0x6d24('0x28'),_0x6d24('0x29'),_0x6d24('0x2a'),_0x6d24('0x2b')),'allowNull':!![],'defaultValue':_0x6d24('0x27')},'directmedia':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no','nonat',_0x6d24('0x2d'),_0x6d24('0x2e')),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize['ENUM'](_0x6d24('0x2c'),'no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'directmediadeny':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'nat':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![],'defaultValue':_0x6d24('0x2f'),'set':function(_0x5ab94e){this['setDataValue'](_0x6d24('0x30'),_0x5ab94e?_0x5ab94e[_0x6d24('0x24')](','):null);},'get':function(){return this[_0x6d24('0x14')](_0x6d24('0x30'))?this[_0x6d24('0x14')](_0x6d24('0x30'))[_0x6d24('0x25')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]'},'callgroup':{'type':Sequelize['STRING']},'namedcallgroup':{'type':Sequelize[_0x6d24('0x5')]},'pickupgroup':{'type':Sequelize[_0x6d24('0x5')]},'namedpickupgroup':{'type':Sequelize[_0x6d24('0x5')]},'language':{'type':Sequelize[_0x6d24('0x5')],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING']},'disallow':{'type':Sequelize[_0x6d24('0x5')],'allowNull':![],'defaultValue':_0x6d24('0x31')},'allow':{'type':Sequelize[_0x6d24('0x5')],'allowNull':![],'defaultValue':_0x6d24('0x32'),'set':function(_0x12a230){this[_0x6d24('0x8')](_0x6d24('0x33'),_0x12a230?_0x12a230[_0x6d24('0x24')](';'):_0x6d24('0x32'));},'get':function(){return this[_0x6d24('0x14')](_0x6d24('0x33'))?this[_0x6d24('0x14')](_0x6d24('0x33'))[_0x6d24('0x25')](';'):null;},'comment':_0x6d24('0x34')},'autoframing':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no'),'allowNull':!![]},'insecure':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![],'set':function(_0x50677d){this[_0x6d24('0x8')](_0x6d24('0x35'),_0x50677d?_0x50677d[_0x6d24('0x24')](','):null);},'get':function(){return this[_0x6d24('0x14')]('insecure')?this[_0x6d24('0x14')](_0x6d24('0x35'))['split'](','):null;},'comment':_0x6d24('0x36')},'trustrpid':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0x6d24('0x17')]('yes','no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no',_0x6d24('0x37')),'allowNull':!![]},'promiscredir':{'type':Sequelize[_0x6d24('0x17')]('yes','no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no'),'allowNull':!![]},'accountcode':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':!![]},'setvar':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'callerid':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0x6d24('0x38')},'amaflags':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'callcounter':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no'),'allowNull':!![],'defaultValue':'yes'},'busylevel':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize['ENUM'](_0x6d24('0x2c'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize[_0x6d24('0x17')]('yes','no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'template':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'videosupport':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no',_0x6d24('0x39')),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize['ENUM'](_0x6d24('0x2c'),'no'),'allowNull':!![]},'mailbox':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'session_timers':{'type':Sequelize[_0x6d24('0x17')]('accept',_0x6d24('0x3a'),_0x6d24('0x3b')),'allowNull':!![]},'session_expires':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize[_0x6d24('0x17')]('uac',_0x6d24('0x3c')),'allowNull':!![],'defaultValue':_0x6d24('0x3c')},'t38pt_usertpsource':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'regexten':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'fromdomain':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'fromuser':{'type':Sequelize['STRING'],'allowNull':!![]},'qualify':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no'),'allowNull':!![],'defaultValue':_0x6d24('0x2c')},'keepalive':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize['STRING'],'allowNull':!![]},'defaultuser':{'type':Sequelize['STRING'],'allowNull':!![]},'rtptimeout':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize['ENUM'](_0x6d24('0x2c'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'callbackextension':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'timert1':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'contactdeny':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'contactacl':{'type':Sequelize['STRING'],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'use_q850_reason':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'maxforwards':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':!![]},'encryption':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize[_0x6d24('0x17')]('yes','no'),'allowNull':!![]},'force_avp':{'type':Sequelize[_0x6d24('0x17')]('yes','no'),'allowNull':!![]},'icesupport':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize[_0x6d24('0x17')]('yes','no',_0x6d24('0x3d'),_0x6d24('0x3e')),'allowNull':!![]},'dtlsrekey':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'dtlscapath':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlssetup':{'type':Sequelize[_0x6d24('0x17')]('active',_0x6d24('0x3f'),'actpass'),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize['STRING'],'allowNull':!![]},'usereqphone':{'type':Sequelize['ENUM'](_0x6d24('0x2c'),'no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize['STRING'],'allowNull':!![]},'recordofffeature':{'type':Sequelize['STRING'],'allowNull':!![]},'call_limit':{'type':Sequelize[_0x6d24('0x12')](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize['ENUM'](_0x6d24('0x2c'),'no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'mohinterpret':{'type':Sequelize['STRING'],'allowNull':!![]},'mohsuggest':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'parkinglot':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'canreinvite':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no',_0x6d24('0x40'),_0x6d24('0x2d'),'update,nonat'),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize[_0x6d24('0x5')]},'resetPasswordExpires':{'type':Sequelize[_0x6d24('0x16')]},'passwordResetAt':{'type':Sequelize[_0x6d24('0x16')],'defaultValue':null},'previousPasswords':{'type':Sequelize[_0x6d24('0x41')]},'showWebBar':{'type':Sequelize[_0x6d24('0x12')],'defaultValue':0x0,'set':function(_0x476803){this[_0x6d24('0x8')](_0x6d24('0x42'),_0x476803);var _0x42bb59=this[_0x6d24('0x43')]({'plain':!![]});switch(_0x476803){case 0x0:case 0x1:var _0x5e4b9c=_0x42bb59[_0x6d24('0x23')]?_[_0x6d24('0x44')](_0x42bb59[_0x6d24('0x23')])?_0x42bb59['transport'][_0x6d24('0x24')]():_0x42bb59[_0x6d24('0x23')]:_0x6d24('0x22');if(_0x5e4b9c==='wss'){_0x5e4b9c=_0x6d24('0x22');}this[_0x6d24('0x8')](_0x6d24('0x23'),_0x5e4b9c);this[_0x6d24('0x8')](_0x6d24('0x45'),'no');this[_0x6d24('0x8')]('avpf',null);this[_0x6d24('0x8')](_0x6d24('0x46'),null);this['setDataValue'](_0x6d24('0x47'),null);this[_0x6d24('0x8')](_0x6d24('0x48'),null);this[_0x6d24('0x8')]('dtlsverify',null);this['setDataValue'](_0x6d24('0x49'),null);this[_0x6d24('0x8')](_0x6d24('0x4a'),null);this['setDataValue'](_0x6d24('0x4b'),null);this[_0x6d24('0x8')]('rtcp_mux','no');break;case 0x2:this['setDataValue'](_0x6d24('0x23'),_0x6d24('0x4c'));this[_0x6d24('0x8')](_0x6d24('0x45'),_0x6d24('0x2c'));this[_0x6d24('0x8')](_0x6d24('0x4d'),_0x6d24('0x2c'));this[_0x6d24('0x8')](_0x6d24('0x46'),_0x6d24('0x2c'));this[_0x6d24('0x8')]('icesupport','yes');this[_0x6d24('0x8')](_0x6d24('0x48'),_0x6d24('0x2c'));this[_0x6d24('0x8')](_0x6d24('0x4e'),'no');this[_0x6d24('0x8')]('dtlssetup',_0x6d24('0x4f'));this['setDataValue'](_0x6d24('0x4a'),_0x42bb59['dtlscertfile']||_0x6d24('0x50'));this['setDataValue'](_0x6d24('0x4b'),_0x42bb59[_0x6d24('0x4b')]||_0x6d24('0x51'));this['setDataValue'](_0x6d24('0x52'),_0x6d24('0x2c'));break;default:}}},'permissions':{'type':Sequelize[_0x6d24('0x41')],'set':function(_0x5590ff){this['setDataValue'](_0x6d24('0x53'),_0x5590ff?_0x5590ff[_0x6d24('0x24')](','):[]);},'get':function(){return this['getDataValue'](_0x6d24('0x53'))?_[_0x6d24('0x54')](this['getDataValue']('permissions')['split'](','),function(_0x5a9c7c){return parseInt(_0x5a9c7c,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize[_0x6d24('0x5')]},'phoneBarNoReplyNumber':{'type':Sequelize[_0x6d24('0x5')]},'phoneBarBusyNumber':{'type':Sequelize[_0x6d24('0x5')]},'phoneBarUnconditional':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize[_0x6d24('0x12')],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize['STRING'],'defaultValue':''},'crudPermissions':{'type':Sequelize[_0x6d24('0x12')],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize[_0x6d24('0x17')](_0x6d24('0x2c'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0x6d24('0x5')]},'phoneBarEnableJaws':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'phoneBarEnableScreenRecordingByAgent':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize[_0x6d24('0x55')],'get':function(){return this[_0x6d24('0x14')]('phoneBarEnableScreenRecordingByAgent')?this[_0x6d24('0x14')](_0x6d24('0x56')):![];}},'phoneBarEnableAutomaticScreenRecording':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'hotdesk':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'interface':{'type':Sequelize[_0x6d24('0x5')],'defaultValue':null},'privacyEnabled':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]},'apiKeyNonce':{'type':Sequelize['STRING'],'allowNull':!![]},'apiKeyIat':{'type':Sequelize[_0x6d24('0x5')],'allowNull':!![]},'screenrecording':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'set':function(_0x432469){if(typeof _0x432469===_0x6d24('0x57')){var _0x1e0d7d=_0x432469==='1'?!![]:_0x432469==='0'?![]:_0x432469===_0x6d24('0x58')?!![]:_0x432469===_0x6d24('0x59')?![]:![];this[_0x6d24('0x8')]('screenrecording',_0x1e0d7d);}else{this[_0x6d24('0x8')]('screenrecording',_0x432469);}}},'blocked':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![],'set':function(_0xfce97d){this[_0x6d24('0x8')](_0x6d24('0x5a'),_0xfce97d);if(_0xfce97d===!![]){this[_0x6d24('0x8')]('blockedAt',moment());this['setDataValue'](_0x6d24('0x5b'),0x0);}else{this['setDataValue'](_0x6d24('0x5c'),null);}}},'blockedAt':{'type':Sequelize['DATE'],'defaultValue':null},'loginAttempts':{'type':Sequelize[_0x6d24('0x12')],'defaultValue':0x0},'disabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'settingsEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'wssPort':{'type':Sequelize[_0x6d24('0x12')](0x5)['UNSIGNED'],'defaultValue':0x1f99},'downloadAttachments':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':!![]},'ignorePauseForPreviewCalls':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'selectRecallMeCampaign':{'type':Sequelize[_0x6d24('0x15')],'defaultValue':![]}};
\ No newline at end of file
+var _0xee2c=['setDataValue','name','defaultuser','The\x20name\x20of\x20the\x20user','callerid','format','\x22%s\x22\x20<%s>','getDataValue','internal','email','toLowerCase','ENUM','admin','agent','local','INTEGER','accountcode','fullname','BOOLEAN','DATE','DEFAULT\x20PAUSE','dynamic','friend','user','from-sip','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB','udp','transport','join','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','info','inband','auto','yes','nonat','outgoing','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','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<>','always','refuse','originate','uac','uas','fingerprint','certificate','active','passive','actpass','update','update,nonat','TEXT','showWebBar','isArray','wss','avpf','force_avp','dtlsenable','dtlsverify','dtlssetup','dtlscertfile','dtlsprivatekey','rtcp_mux','icesupport','/etc/pki/tls/private/motion.key','permissions','VIRTUAL','phoneBarEnableScreenRecordingByAgent','string','true','false','screenrecording','blocked','blockedAt','UNSIGNED','sequelize','util','lodash','exports','STRING'];(function(_0x559443,_0x4eb8b6){var _0x246c41=function(_0x2e5eb2){while(--_0x2e5eb2){_0x559443['push'](_0x559443['shift']());}};_0x246c41(++_0x4eb8b6);}(_0xee2c,0x1c7));var _0xcee2=function(_0x341e0f,_0x4a09d0){_0x341e0f=_0x341e0f-0x0;var _0x59555a=_0xee2c[_0x341e0f];return _0x59555a;};'use strict';var Sequelize=require(_0xcee2('0x0'));var moment=require('moment');var util=require(_0xcee2('0x1'));var _=require(_0xcee2('0x2'));module[_0xcee2('0x3')]={'name':{'type':Sequelize[_0xcee2('0x4')],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x589e9d){this[_0xcee2('0x5')](_0xcee2('0x6'),_0x589e9d);this['setDataValue'](_0xcee2('0x7'),_0x589e9d);},'comment':_0xcee2('0x8')},'fullname':{'type':Sequelize[_0xcee2('0x4')],'allowNull':![],'set':function(_0x3d7611){this[_0xcee2('0x5')]('fullname',_0x3d7611);this['setDataValue'](_0xcee2('0x9'),util[_0xcee2('0xa')](_0xcee2('0xb'),_0x3d7611,this[_0xcee2('0xc')](_0xcee2('0xd'))));}},'alias':{'type':Sequelize[_0xcee2('0x4')]},'email':{'type':Sequelize[_0xcee2('0x4')],'allowNull':![],'unique':_0xcee2('0xe'),'validate':{'isEmail':!![]},'set':function(_0x4ded22){if(_0x4ded22){this[_0xcee2('0x5')](_0xcee2('0xe'),_0x4ded22[_0xcee2('0xf')]());}}},'role':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x11'),'user',_0xcee2('0x12'),'telephone'),'allowNull':![]},'password':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize['STRING'],'defaultValue':_0xcee2('0x13')},'internal':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':![],'unique':_0xcee2('0xd'),'set':function(_0x347a97){this['setDataValue'](_0xcee2('0xd'),_0x347a97);this[_0xcee2('0x5')](_0xcee2('0x15'),_0x347a97);this[_0xcee2('0x5')](_0xcee2('0x9'),util[_0xcee2('0xa')](_0xcee2('0xb'),this[_0xcee2('0xc')](_0xcee2('0x16')),_0x347a97));}},'salt':{'type':Sequelize['STRING']},'phone':{'type':Sequelize[_0xcee2('0x4')]},'mobile':{'type':Sequelize['STRING']},'address':{'type':Sequelize[_0xcee2('0x4')]},'zipcode':{'type':Sequelize[_0xcee2('0x4')]},'userpic':{'type':Sequelize[_0xcee2('0x4')]},'city':{'type':Sequelize[_0xcee2('0x4')]},'country':{'type':Sequelize['STRING']},'online':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'lastLoginAt':{'type':Sequelize[_0xcee2('0x18')]},'voicePause':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'chatPause':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'mailPause':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'faxPause':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'smsPause':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'whatsappPause':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'openchannelPause':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'pauseType':{'type':Sequelize[_0xcee2('0x4')],'defaultValue':_0xcee2('0x19')},'lastPauseAt':{'type':Sequelize['DATE']},'chatCapacity':{'type':Sequelize[_0xcee2('0x14')],'defaultValue':0x0},'mailCapacity':{'type':Sequelize[_0xcee2('0x14')],'defaultValue':0x0},'faxCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'smsCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'whatsappCapacity':{'type':Sequelize[_0xcee2('0x14')],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize[_0xcee2('0x14')](0x5),'defaultValue':0x1428},'phoneBarExpires':{'type':Sequelize['INTEGER'](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize[_0xcee2('0x14')],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'chanspy':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'description':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'host':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0xcee2('0x1a')},'ipaddr':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'port':{'type':Sequelize[_0xcee2('0x14')](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'regserver':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'useragent':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'lastms':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'type':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x1b'),_0xcee2('0x1c'),'peer'),'allowNull':!![],'defaultValue':_0xcee2('0x1b')},'context':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![],'defaultValue':_0xcee2('0x1d')},'callingpres':{'type':Sequelize['ENUM'](_0xcee2('0x1e'),_0xcee2('0x1f'),'ALLOWED_FAILED_SCREEN',_0xcee2('0x20'),_0xcee2('0x21'),'PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN',_0xcee2('0x22')),'allowNull':!![]},'deny':{'type':Sequelize['STRING'],'allowNull':!![]},'permit':{'type':Sequelize['STRING'],'allowNull':!![]},'secret':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'md5secret':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'remotesecret':{'type':Sequelize['STRING'],'allowNull':!![]},'transport':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![],'defaultValue':_0xcee2('0x23'),'set':function(_0x21635f){this[_0xcee2('0x5')](_0xcee2('0x24'),_0x21635f?_0x21635f[_0xcee2('0x25')](','):null);},'get':function(){return this[_0xcee2('0xc')](_0xcee2('0x24'))?this[_0xcee2('0xc')](_0xcee2('0x24'))[_0xcee2('0x26')](','):null;},'comment':_0xcee2('0x27')},'dtmfmode':{'type':Sequelize['ENUM'](_0xcee2('0x28'),_0xcee2('0x29'),'shortinfo',_0xcee2('0x2a'),_0xcee2('0x2b')),'allowNull':!![],'defaultValue':'rfc2833'},'directmedia':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no',_0xcee2('0x2d'),'update',_0xcee2('0x2e')),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'directmediadeny':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'nat':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![],'defaultValue':'force_rport,comedia','set':function(_0x457f39){this[_0xcee2('0x5')](_0xcee2('0x2f'),_0x457f39?_0x457f39['join'](','):null);},'get':function(){return this[_0xcee2('0xc')]('nat')?this['getDataValue'](_0xcee2('0x2f'))[_0xcee2('0x26')](','):null;},'comment':_0xcee2('0x30')},'callgroup':{'type':Sequelize[_0xcee2('0x4')]},'namedcallgroup':{'type':Sequelize[_0xcee2('0x4')]},'pickupgroup':{'type':Sequelize[_0xcee2('0x4')]},'namedpickupgroup':{'type':Sequelize['STRING']},'language':{'type':Sequelize['STRING'],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING']},'disallow':{'type':Sequelize[_0xcee2('0x4')],'allowNull':![],'defaultValue':'all'},'allow':{'type':Sequelize[_0xcee2('0x4')],'allowNull':![],'defaultValue':_0xcee2('0x31'),'set':function(_0x5ad17c){this[_0xcee2('0x5')]('allow',_0x5ad17c?_0x5ad17c['join'](';'):_0xcee2('0x31'));},'get':function(){return this[_0xcee2('0xc')]('allow')?this['getDataValue'](_0xcee2('0x32'))[_0xcee2('0x26')](';'):null;},'comment':_0xcee2('0x33')},'autoframing':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![]},'insecure':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![],'set':function(_0x31824a){this[_0xcee2('0x5')](_0xcee2('0x34'),_0x31824a?_0x31824a['join'](','):null);},'get':function(){return this[_0xcee2('0xc')](_0xcee2('0x34'))?this[_0xcee2('0xc')](_0xcee2('0x34'))['split'](','):null;},'comment':_0xcee2('0x35')},'trustrpid':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no',_0xcee2('0x36')),'allowNull':!![]},'promiscredir':{'type':Sequelize[_0xcee2('0x10')]('yes','no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![]},'accountcode':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'setvar':{'type':Sequelize['STRING'],'allowNull':!![]},'callerid':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![],'defaultValue':_0xcee2('0x37')},'amaflags':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'callcounter':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![],'defaultValue':_0xcee2('0x2c')},'busylevel':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize[_0xcee2('0x10')]('yes','no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'template':{'type':Sequelize['STRING'],'allowNull':!![]},'videosupport':{'type':Sequelize['ENUM'](_0xcee2('0x2c'),'no',_0xcee2('0x38')),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![]},'mailbox':{'type':Sequelize['STRING'],'allowNull':!![]},'session_timers':{'type':Sequelize[_0xcee2('0x10')]('accept',_0xcee2('0x39'),_0xcee2('0x3a')),'allowNull':!![]},'session_expires':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x3b'),_0xcee2('0x3c')),'allowNull':!![],'defaultValue':'uas'},'t38pt_usertpsource':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'regexten':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'fromdomain':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'fromuser':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'qualify':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![],'defaultValue':_0xcee2('0x2c')},'keepalive':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'defaultuser':{'type':Sequelize['STRING'],'allowNull':!![]},'rtptimeout':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize['ENUM'](_0xcee2('0x2c'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'callbackextension':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'timert1':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'contactdeny':{'type':Sequelize['STRING'],'allowNull':!![]},'contactacl':{'type':Sequelize['STRING'],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize['STRING'],'allowNull':!![]},'use_q850_reason':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'maxforwards':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![]},'encryption':{'type':Sequelize[_0xcee2('0x10')]('yes','no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![]},'force_avp':{'type':Sequelize[_0xcee2('0x10')]('yes','no'),'allowNull':!![]},'icesupport':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize[_0xcee2('0x10')]('yes','no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no',_0xcee2('0x3d'),_0xcee2('0x3e')),'allowNull':!![]},'dtlsrekey':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'dtlscapath':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'dtlssetup':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x3f'),_0xcee2('0x40'),_0xcee2('0x41')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'usereqphone':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'recordofffeature':{'type':Sequelize['STRING'],'allowNull':!![]},'call_limit':{'type':Sequelize[_0xcee2('0x14')](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'mohinterpret':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'mohsuggest':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'parkinglot':{'type':Sequelize['STRING'],'allowNull':!![]},'canreinvite':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no',_0xcee2('0x2d'),_0xcee2('0x42'),_0xcee2('0x43')),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize[_0xcee2('0x4')]},'resetPasswordExpires':{'type':Sequelize[_0xcee2('0x18')]},'passwordResetAt':{'type':Sequelize[_0xcee2('0x18')],'defaultValue':null},'previousPasswords':{'type':Sequelize[_0xcee2('0x44')]},'showWebBar':{'type':Sequelize['INTEGER'],'defaultValue':0x0,'set':function(_0x4eedba){this[_0xcee2('0x5')](_0xcee2('0x45'),_0x4eedba);var _0xde163f=this['get']({'plain':!![]});switch(_0x4eedba){case 0x0:case 0x1:var _0x5089e1=_0xde163f['transport']?_[_0xcee2('0x46')](_0xde163f['transport'])?_0xde163f['transport'][_0xcee2('0x25')]():_0xde163f['transport']:_0xcee2('0x23');if(_0x5089e1===_0xcee2('0x47')){_0x5089e1='udp';}this[_0xcee2('0x5')](_0xcee2('0x24'),_0x5089e1);this['setDataValue']('encryption','no');this[_0xcee2('0x5')](_0xcee2('0x48'),null);this[_0xcee2('0x5')](_0xcee2('0x49'),null);this[_0xcee2('0x5')]('icesupport',null);this[_0xcee2('0x5')](_0xcee2('0x4a'),null);this[_0xcee2('0x5')](_0xcee2('0x4b'),null);this[_0xcee2('0x5')](_0xcee2('0x4c'),null);this[_0xcee2('0x5')](_0xcee2('0x4d'),null);this[_0xcee2('0x5')](_0xcee2('0x4e'),null);this[_0xcee2('0x5')](_0xcee2('0x4f'),'no');break;case 0x2:this['setDataValue'](_0xcee2('0x24'),_0xcee2('0x47'));this[_0xcee2('0x5')]('encryption','yes');this[_0xcee2('0x5')](_0xcee2('0x48'),_0xcee2('0x2c'));this[_0xcee2('0x5')]('force_avp','yes');this[_0xcee2('0x5')](_0xcee2('0x50'),_0xcee2('0x2c'));this[_0xcee2('0x5')](_0xcee2('0x4a'),'yes');this['setDataValue'](_0xcee2('0x4b'),'no');this[_0xcee2('0x5')](_0xcee2('0x4c'),_0xcee2('0x41'));this[_0xcee2('0x5')]('dtlscertfile',_0xde163f[_0xcee2('0x4d')]||'/etc/pki/tls/certs/motion.crt');this[_0xcee2('0x5')](_0xcee2('0x4e'),_0xde163f[_0xcee2('0x4e')]||_0xcee2('0x51'));this['setDataValue'](_0xcee2('0x4f'),'yes');break;default:}}},'permissions':{'type':Sequelize['TEXT'],'set':function(_0x30a033){this[_0xcee2('0x5')](_0xcee2('0x52'),_0x30a033?_0x30a033[_0xcee2('0x25')](','):[]);},'get':function(){return this['getDataValue'](_0xcee2('0x52'))?_['map'](this['getDataValue'](_0xcee2('0x52'))[_0xcee2('0x26')](','),function(_0x14c95d){return parseInt(_0x14c95d,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize['STRING']},'phoneBarNoReplyNumber':{'type':Sequelize[_0xcee2('0x4')]},'phoneBarBusyNumber':{'type':Sequelize['STRING']},'phoneBarUnconditional':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize[_0xcee2('0x14')],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize[_0xcee2('0x4')],'defaultValue':''},'crudPermissions':{'type':Sequelize[_0xcee2('0x14')],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize[_0xcee2('0x10')](_0xcee2('0x2c'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0xcee2('0x4')]},'phoneBarEnableJaws':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'phoneBarEnableScreenRecordingByAgent':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize[_0xcee2('0x53')],'get':function(){return this[_0xcee2('0xc')](_0xcee2('0x54'))?this[_0xcee2('0xc')](_0xcee2('0x54')):![];}},'phoneBarEnableAutomaticScreenRecording':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'hotdesk':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'interface':{'type':Sequelize['STRING'],'defaultValue':null},'privacyEnabled':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'apiKeyNonce':{'type':Sequelize[_0xcee2('0x4')],'allowNull':!![]},'apiKeyIat':{'type':Sequelize['STRING'],'allowNull':!![]},'screenrecording':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![],'set':function(_0x40557b){if(typeof _0x40557b===_0xcee2('0x55')){var _0x158580=_0x40557b==='1'?!![]:_0x40557b==='0'?![]:_0x40557b===_0xcee2('0x56')?!![]:_0x40557b===_0xcee2('0x57')?![]:![];this[_0xcee2('0x5')](_0xcee2('0x58'),_0x158580);}else{this[_0xcee2('0x5')](_0xcee2('0x58'),_0x40557b);}}},'blocked':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'set':function(_0x1d40b7){this['setDataValue'](_0xcee2('0x59'),_0x1d40b7);if(_0x1d40b7===!![]){this[_0xcee2('0x5')](_0xcee2('0x5a'),moment());this[_0xcee2('0x5')]('loginAttempts',0x0);}else{this['setDataValue'](_0xcee2('0x5a'),null);}}},'blockedAt':{'type':Sequelize['DATE'],'defaultValue':null},'loginAttempts':{'type':Sequelize[_0xcee2('0x14')],'defaultValue':0x0},'disabled':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':![]},'settingsEnabled':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':!![]},'wssPort':{'type':Sequelize[_0xcee2('0x14')](0x5)[_0xcee2('0x5b')],'defaultValue':0x1f99},'downloadAttachments':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0xcee2('0x17')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xafc4=['user_has_mail_interactions:remove','addFaxInteractions','user_has_fax_interactions:save','user_has_fax_interactions:remove','addSmsInteractions','user_has_sms_interactions:save','removeSmsInteractions','user_has_sms_interactions:remove','addOpenchannelInteractions','user_has_openchannel_interactions:save','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','addWhatsappInteractions','user_has_whatsapp_interactions:save','removeWhatsappInteractions','getVoicePrefixes','VoicePrefix','getFaxAccounts','FaxAccount','addFaxAccounts','removeFaxAccounts','getMailAccounts','addMailAccounts','removeMailAccounts','getOpenchannelAccounts','OpenchannelAccount','addOpenchannelAccounts','removeOpenchannelAccounts','SmsAccount','getSmsAccounts','addSmsAccounts','removeSmsAccounts','ChatWebsite','getChatWebsites','addChatWebsites','removeChatWebsites','WhatsappAccount','getWhatsappAccounts','addWhatsappAccounts','removeWhatsappAccounts','getSquareProjects','SquareProject','addSquareProjects','removeSquareProjects','getScheduledCalls','$and','$or','$gt','$gte','$lt','$lte','$ne','$eq','$not','$between','$in','$notIn','$like','$notLike','$iLike','$contains','$contained','$any','lastName','dialActive','VoiceQueue','CmHopper','retrieveApiKey','token','You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.','generateApiKey','nonce','removeApiKey','apiKeyNonce','apiKeyIat','API\x20key\x20not\x20available','whoami','Unable\x20to\x20retrieve\x20the\x20current\x20user','teams','queues','inbound','lower','col','desc','asc','substring','orderBy','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','http','offline','unknown','unavailable','voiceStatus','busy','charAt','toUpperCase','slice','select','field','ui.','InteractionId','ui.createdAt','_interactions','ui.UserId\x20=\x20?','toString','moment','util','lodash','squel','jayson/promise','ioredis','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','socket.io-emitter','./user.socket','register','redis','defaults','localhost','request','then','info','User,\x20%s,\x20%s','request\x20sent','User,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','offset','undefined','limit','count','json','update','destroy','get','role','admin','Users','user','Agents','agent','Telephones','telephone','filter','map','includes','find','value','UserProfileResource','end','stack','name','index','User','rawAttributes','fieldName','type','key','password','salt','getOptions','where','includeAll','include','attributes','push','rows','query','openTabs','true','length','chat','sms','dataValues','fax','mail','all','params','model','differenceBy','keys','filters','intersection','fields','merge','options','openchannel','body','describe','addContacts','ids','omit','findById','securePassword','validatePasswordPattern','max','internal','isNil','min_internal','sequelize','QueryTypes','SELECT','from','voicemail','mailbox','fullname','email','permissions','102','110','104','105','108','109','100','111','114','115','create','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','checkUserLimits','settingsEnabled','userProfileId','VoiceMail','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','bulkCreate','some','each','isEmpty','oldPassword','newPassword','Sequelize','ValidationError','authenticate','Wrong\x20credentials','New\x20password\x20must\x20be\x20different\x20from\x20old\x20password','Invalid\x20body\x20format.\x20Use\x20newPassword','findOne','enforcePasswordHistory','previousPasswords','validatePasswordHistory','passwordHistoryLimit','addQueues','channel','loginInPause','voicePause','interface','isValidChannel','add','capitalize','toLowerCase','penalty','spread','QueueId','emit','Queue:save','voice','online','format','SIP/%s','UserVoiceQueueRt','removeQueues','Unknown\x20channel','remove','Queues','isArray','Queue:remove','userpic','getAvatar','join','root','server/files/images/logos/default_profile.png','server/files/images/','download','getOpenTabs','whatsapp','ChatOpenTabs','CHAT','createdAt','FAX','OpenchannelOpenTabs','OPENCHANNEL','MailOpenTabs','SmsOpenTabs','SMS','WhatsappOpenTabs','WHATSAPP','CmContact','order','sort','pick','getContacts','hasOwnProperty','CmList','Tag','Tags','color','tag','nolimit','Queue','Unknown\x20role','findAll','getVoiceQueuesRt','getGroups','ChatGroup','VoiceRecording','UserId','getScreenRecordings','ScreenRecording','ChatInteraction','getChatInteractions','getOpenchannelInteractions','OpenchannelInteraction','MailInteraction','getSmsInteractions','getFaxInteractions','FaxInteraction','getWhatsappInteractions','login','phone','mobile','LOCAL/%s@from-sip/n','intrf','user:%s','user:forcelogout','headers','connection','remoteAddress','socket','User\x20not\x20found\x20or\x20not\x20allowed\x20to\x20perform\x20login\x20method','getVoiceQueues','UserVoiceQueue.penalty','upsert','MemberReport','forEach','YYYY-MM-DD\x20HH:mm:ss','device','PAUSE','LOGININPAUSE','concat','isMiddleware','resolve','logout','pause','QueuePause','getChannels','DEFAULT\x20PAUSE','unpause','mailPause','chatPause','faxPause','openchannelPause','smsPause','whatsapppause','pauseType','lastPauseAt','manual','set','%s%s','getTeams','Team','addTeams','Voice','getChatQueues','setDataValue','Chat','getMailQueues','Mail','getSmsQueues','Sms','getWhatsappQueues','Whatsapp','getFaxQueues','Fax','getOpenchannelQueues','Openchannel','flatten','transaction','addAgent','getDataValue','TeamVoicePrefix','UserVoicePrefix','removeTeams','removeAgent','VoicePrefixId','getLists','getAgents','values','send','You\x20can\x27t\x20delete\x20yourself','addChatInteractions','user_has_chat_interactions:save','removeChatInteractions','user_has_chat_interactions:remove','user_has_mail_interactions:save','removeMailInteractions'];(function(_0x56f777,_0x1168f1){var _0x3d08be=function(_0x36d68b){while(--_0x36d68b){_0x56f777['push'](_0x56f777['shift']());}};_0x3d08be(++_0x1168f1);}(_0xafc4,0x69));var _0x4afc=function(_0x3ab61d,_0x361f2e){_0x3ab61d=_0x3ab61d-0x0;var _0x5f2462=_0xafc4[_0x3ab61d];return _0x5f2462;};'use strict';var moment=require(_0x4afc('0x0'));var BPromise=require('bluebird');var util=require(_0x4afc('0x1'));var path=require('path');var fs=require('fs');var _=require(_0x4afc('0x2'));var squel=require(_0x4afc('0x3'));var jayson=require(_0x4afc('0x4'));var Redis=require(_0x4afc('0x5'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x4afc('0x6'));var utils=require(_0x4afc('0x7'));var config=require(_0x4afc('0x8'));var licenseUtil=require(_0x4afc('0x9'));var db=require(_0x4afc('0xa'))['db'];var socket=require(_0x4afc('0xb'))(new Redis(config['redis']));require(_0x4afc('0xc'))[_0x4afc('0xd')](socket);config[_0x4afc('0xe')]=_[_0x4afc('0xf')](config[_0x4afc('0xe')],{'host':_0x4afc('0x10'),'port':0x18eb});var client=jayson['client']['http']({'port':0x232a});var values;function respondWithRpcPromise(_0x7f127f,_0x49222e,_0x281230,_0x225793){return new BPromise(function(_0x49b56f,_0x38b322){var _0x3fb54a=_0x225793||client;return _0x3fb54a[_0x4afc('0x11')](_0x7f127f,_0x281230)[_0x4afc('0x12')](function(_0x1d8f98){logger[_0x4afc('0x13')](_0x4afc('0x14'),_0x49222e,_0x4afc('0x15'));logger['debug'](_0x4afc('0x16'),_0x49222e,_0x4afc('0x15'),JSON[_0x4afc('0x17')](_0x1d8f98));if(_0x1d8f98[_0x4afc('0x18')]){if(_0x1d8f98['error']['code']===0x1f4){logger[_0x4afc('0x18')]('User,\x20%s,\x20%s',_0x49222e,_0x1d8f98[_0x4afc('0x18')][_0x4afc('0x19')]);return _0x38b322(_0x1d8f98[_0x4afc('0x18')][_0x4afc('0x19')]);}logger[_0x4afc('0x18')](_0x4afc('0x14'),_0x49222e,_0x1d8f98[_0x4afc('0x18')][_0x4afc('0x19')]);return _0x49b56f(_0x1d8f98[_0x4afc('0x18')][_0x4afc('0x19')]);}else{logger[_0x4afc('0x13')]('User,\x20%s,\x20%s',_0x49222e,_0x4afc('0x15'));_0x49b56f(_0x1d8f98[_0x4afc('0x1a')][_0x4afc('0x19')]);}})[_0x4afc('0x1b')](function(_0x557a7e){logger[_0x4afc('0x18')](_0x4afc('0x14'),_0x49222e,_0x557a7e);_0x38b322(_0x557a7e);});});}function respondWithStatusCode(_0x2de6e9,_0x280587){_0x280587=_0x280587||0xcc;return function(_0x1559b8){if(_0x1559b8){return _0x2de6e9[_0x4afc('0x1c')](_0x280587);}return _0x2de6e9[_0x4afc('0x1d')](_0x280587)['end']();};}function respondWithResult(_0x5403e4,_0x3ecf2d){_0x3ecf2d=_0x3ecf2d||0xc8;return function(_0x57f37c){if(_0x57f37c){return _0x5403e4[_0x4afc('0x1d')](_0x3ecf2d)['json'](_0x57f37c);}};}function respondWithFilteredResult(_0x1aa676,_0x2a0314){return function(_0x1e454e){if(_0x1e454e){var _0x2876f2=typeof _0x2a0314[_0x4afc('0x1e')]===_0x4afc('0x1f')&&typeof _0x2a0314[_0x4afc('0x20')]===_0x4afc('0x1f');var _0x2bb837=_0x1e454e[_0x4afc('0x21')];var _0x4e8273=_0x2876f2?0x0:_0x2a0314[_0x4afc('0x1e')];var _0x35f5b3=_0x2876f2?_0x1e454e['count']:_0x2a0314[_0x4afc('0x1e')]+_0x2a0314[_0x4afc('0x20')];var _0x2d6112;if(_0x35f5b3>=_0x2bb837){_0x35f5b3=_0x2bb837;_0x2d6112=0xc8;}else{_0x2d6112=0xce;}_0x1aa676['status'](_0x2d6112);return _0x1aa676['set']('Content-Range',_0x4e8273+'-'+_0x35f5b3+'/'+_0x2bb837)[_0x4afc('0x22')](_0x1e454e);}return null;};}function saveUpdates(_0x5db47e){return function(_0x5e4747){if(_0x5e4747){return _0x5e4747[_0x4afc('0x23')](_0x5db47e)[_0x4afc('0x12')](function(_0x494fe7){return _0x494fe7;});}return null;};}function removeEntity(_0x514278){return function(_0x52e3dd){if(_0x52e3dd){return _0x52e3dd[_0x4afc('0x24')]()[_0x4afc('0x12')](function(){var _0x17a43d=_0x52e3dd[_0x4afc('0x25')]({'plain':!![]});if(_0x17a43d[_0x4afc('0x26')]===_0x4afc('0x27'))return;var _0x566389=[{'name':_0x4afc('0x28'),'value':_0x4afc('0x29'),'ignore':!![]},{'name':_0x4afc('0x2a'),'value':_0x4afc('0x2b'),'ignore':![]},{'name':_0x4afc('0x2c'),'value':_0x4afc('0x2d'),'ignore':![]}];var _0xbabe1e=_(_0x566389)[_0x4afc('0x2e')]('ignore')[_0x4afc('0x2f')]('value')['value']();if(_[_0x4afc('0x30')](_0xbabe1e,_0x17a43d[_0x4afc('0x26')])){return;}var _0x266f7f=_[_0x4afc('0x31')](_0x566389,[_0x4afc('0x32'),_0x17a43d[_0x4afc('0x26')]])['name'];return db[_0x4afc('0x33')][_0x4afc('0x24')]({'where':{'type':_0x266f7f,'resourceId':_0x17a43d['id']}})[_0x4afc('0x12')](function(){return _0x52e3dd;});})[_0x4afc('0x12')](function(){_0x514278[_0x4afc('0x1d')](0xcc)[_0x4afc('0x34')]();});}};}function handleEntityNotFound(_0x48f0c6){return function(_0x22eea2){if(!_0x22eea2){_0x48f0c6[_0x4afc('0x1c')](0x194);}return _0x22eea2;};}function handleError(_0x91565d,_0x283bc2){_0x283bc2=_0x283bc2||0x1f4;return function(_0x499464){logger['error'](_0x499464[_0x4afc('0x35')]);if(_0x499464[_0x4afc('0x36')]){delete _0x499464[_0x4afc('0x36')];}_0x91565d['status'](_0x283bc2)['send'](_0x499464);};}exports[_0x4afc('0x37')]=function(_0x4a06cf,_0x5947bb){var _0x295b53={},_0x1dc853={'count':0x0,'rows':[]};var _0x2be40e=_(db[_0x4afc('0x38')][_0x4afc('0x39')])[_0x4afc('0x2f')](function(_0x453e12){return{'name':_0x453e12[_0x4afc('0x3a')],'type':_0x453e12[_0x4afc('0x3b')][_0x4afc('0x3c')]};})[_0x4afc('0x2e')](function(_0x3ef2aa){return!_[_0x4afc('0x30')]([_0x4afc('0x3d'),_0x4afc('0x3e')],_0x3ef2aa['name']);})[_0x4afc('0x32')]();_0x295b53=qs[_0x4afc('0x3f')](_0x2be40e,_0x4a06cf);var _0x4357a6={'where':_0x295b53[_0x4afc('0x40')]};return db[_0x4afc('0x38')][_0x4afc('0x21')](_0x4357a6)[_0x4afc('0x12')](function(_0x50d53f){_0x1dc853['count']=_0x50d53f;if(_0x4a06cf['query'][_0x4afc('0x41')]){_0x295b53[_0x4afc('0x42')]=[{'all':!![]}];}if(!_['includes'](_0x295b53[_0x4afc('0x43')],'id')){_0x295b53[_0x4afc('0x43')][_0x4afc('0x44')]('id');}return db[_0x4afc('0x38')]['findAll'](_0x295b53);})[_0x4afc('0x12')](function(_0x45c9c3){_0x1dc853[_0x4afc('0x45')]=_0x45c9c3;if(_0x4a06cf[_0x4afc('0x46')][_0x4afc('0x47')]===_0x4afc('0x48')){var _0x51dca0=[];for(var _0x1e6f95=0x0;_0x1e6f95<_0x1dc853['rows'][_0x4afc('0x49')];_0x1e6f95++){_0x51dca0[_0x4afc('0x44')](get_open_tabs(_0x4afc('0x4a'),_0x1dc853['rows'][_0x1e6f95]['dataValues']));_0x51dca0[_0x4afc('0x44')](get_open_tabs(_0x4afc('0x4b'),_0x1dc853[_0x4afc('0x45')][_0x1e6f95][_0x4afc('0x4c')]));_0x51dca0[_0x4afc('0x44')](get_open_tabs(_0x4afc('0x4d'),_0x1dc853[_0x4afc('0x45')][_0x1e6f95][_0x4afc('0x4c')]));_0x51dca0['push'](get_open_tabs(_0x4afc('0x4e'),_0x1dc853[_0x4afc('0x45')][_0x1e6f95]['dataValues']));_0x51dca0[_0x4afc('0x44')](get_open_tabs('openchannel',_0x1dc853[_0x4afc('0x45')][_0x1e6f95][_0x4afc('0x4c')]));_0x51dca0[_0x4afc('0x44')](get_open_tabs('whatsapp',_0x1dc853[_0x4afc('0x45')][_0x1e6f95][_0x4afc('0x4c')]));}return BPromise[_0x4afc('0x4f')](_0x51dca0)[_0x4afc('0x12')](function(_0x4772db){return _0x1dc853;});}else{return _0x1dc853;}})[_0x4afc('0x12')](respondWithFilteredResult(_0x5947bb,_0x295b53))['catch'](handleError(_0x5947bb,null));};exports['show']=function(_0x4f4e46,_0x32f3b9){var _0x1c5661={'raw':![],'where':{'id':_0x4f4e46[_0x4afc('0x50')]['id']}},_0x42e274={};_0x42e274[_0x4afc('0x51')]=_[_0x4afc('0x52')](_[_0x4afc('0x53')](db[_0x4afc('0x38')][_0x4afc('0x39')]),[_0x4afc('0x3d'),'salt']);_0x42e274[_0x4afc('0x46')]=_['keys'](_0x4f4e46['query']);_0x42e274[_0x4afc('0x54')]=_['intersection'](_0x42e274[_0x4afc('0x51')],_0x42e274[_0x4afc('0x46')]);_0x1c5661[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x42e274['model'],qs[_0x4afc('0x56')](_0x4f4e46['query'][_0x4afc('0x56')]));_0x1c5661[_0x4afc('0x43')]=_0x1c5661[_0x4afc('0x43')][_0x4afc('0x49')]?_0x1c5661[_0x4afc('0x43')]:_0x42e274[_0x4afc('0x51')];if(_0x4f4e46[_0x4afc('0x46')][_0x4afc('0x41')]){_0x1c5661[_0x4afc('0x42')]=[{'all':!![]}];}_0x1c5661=_[_0x4afc('0x57')]({},_0x1c5661,_0x4f4e46[_0x4afc('0x58')]);if(!_[_0x4afc('0x30')](_0x1c5661['attributes'],'id')){_0x1c5661[_0x4afc('0x43')][_0x4afc('0x44')]('id');}return db[_0x4afc('0x38')][_0x4afc('0x31')](_0x1c5661)[_0x4afc('0x12')](handleEntityNotFound(_0x32f3b9,null))[_0x4afc('0x12')](function(_0x2fd538){var _0x10c254=[];values=_0x2fd538;if(_0x4f4e46[_0x4afc('0x46')][_0x4afc('0x47')]===_0x4afc('0x48')){_0x10c254[_0x4afc('0x44')](get_open_tabs(_0x4afc('0x4a'),_0x2fd538['dataValues']));_0x10c254[_0x4afc('0x44')](get_open_tabs('sms',_0x2fd538[_0x4afc('0x4c')]));_0x10c254[_0x4afc('0x44')](get_open_tabs(_0x4afc('0x59'),_0x2fd538[_0x4afc('0x4c')]));_0x10c254['push'](get_open_tabs('whatsapp',_0x2fd538[_0x4afc('0x4c')]));_0x10c254[_0x4afc('0x44')](get_open_tabs('fax',_0x2fd538[_0x4afc('0x4c')]));_0x10c254[_0x4afc('0x44')](get_open_tabs(_0x4afc('0x4e'),_0x2fd538[_0x4afc('0x4c')]));return BPromise[_0x4afc('0x4f')](_0x10c254);}else{return values;}})[_0x4afc('0x12')](function(_0x154797){return values;})[_0x4afc('0x12')](respondWithResult(_0x32f3b9,null))[_0x4afc('0x1b')](handleError(_0x32f3b9,null));};exports[_0x4afc('0x23')]=function(_0x4295a5,_0x1a4d15){if(_0x4295a5[_0x4afc('0x5a')]['id']){delete _0x4295a5[_0x4afc('0x5a')]['id'];}delete _0x4295a5['body'][_0x4afc('0x26')];return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x4295a5[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x1a4d15,null))[_0x4afc('0x12')](saveUpdates(_0x4295a5[_0x4afc('0x5a')],null))['then'](respondWithResult(_0x1a4d15,null))[_0x4afc('0x1b')](handleError(_0x1a4d15,null));};exports[_0x4afc('0x5b')]=function(_0x543dce,_0x4b3439){return db[_0x4afc('0x38')][_0x4afc('0x5b')]()[_0x4afc('0x12')](respondWithResult(_0x4b3439,null))[_0x4afc('0x1b')](handleError(_0x4b3439,null));};exports[_0x4afc('0x5c')]=function(_0x193850,_0x37cfa6){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x193850[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0x37cfa6,null))['then'](function(_0x458533){if(_0x458533){return _0x458533[_0x4afc('0x5c')](_0x193850['body'][_0x4afc('0x5d')],_[_0x4afc('0x5e')](_0x193850['body'],['ids','id'])||{});}})[_0x4afc('0x12')](respondWithResult(_0x37cfa6,null))[_0x4afc('0x1b')](handleError(_0x37cfa6,null));};function validateUser(_0x576ea0){return new BPromise(function(_0x53792a,_0x3875f8){if(_0x576ea0['internal'])return _0x53792a(_0x576ea0);return db['Setting'][_0x4afc('0x5f')](0x1)[_0x4afc('0x12')](function(_0x53f9ca){if(_0x53f9ca[_0x4afc('0x60')])authService[_0x4afc('0x61')](_0x576ea0[_0x4afc('0x3d')]);db[_0x4afc('0x38')][_0x4afc('0x62')](_0x4afc('0x63'))['then'](function(_0x25969c){if(_[_0x4afc('0x64')](_0x25969c)){_0x576ea0[_0x4afc('0x63')]=_0x53f9ca['min_internal']||0x1;return;}if(_['isNil'](_0x53f9ca['min_internal'])||_0x53f9ca[_0x4afc('0x65')]===_0x25969c){_0x576ea0[_0x4afc('0x63')]=_0x25969c+0x1;return;}if(_0x53f9ca[_0x4afc('0x65')]>_0x25969c){_0x576ea0['internal']=_0x53f9ca[_0x4afc('0x65')];return;}return db['sequelize']['query']('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[_0x4afc('0x66')][_0x4afc('0x67')][_0x4afc('0x68')]})['then'](function(_0x1e56b7){if(_0x1e56b7&&_0x1e56b7[_0x4afc('0x49')]){for(var _0x18ab12=0x0,_0x5e3e9b=_0x1e56b7[_0x4afc('0x49')];_0x18ab12<_0x5e3e9b&&_[_0x4afc('0x64')](_0x576ea0[_0x4afc('0x63')]);_0x18ab12++){if(_0x53f9ca[_0x4afc('0x65')]<=_0x1e56b7[_0x18ab12][_0x4afc('0x69')]){_0x576ea0['internal']=_0x1e56b7[_0x18ab12]['from'];}else if(_0x53f9ca[_0x4afc('0x65')]>_0x1e56b7[_0x18ab12][_0x4afc('0x69')]&&_0x53f9ca[_0x4afc('0x65')]<=_0x1e56b7[_0x18ab12]['to']){_0x576ea0['internal']=_0x53f9ca[_0x4afc('0x65')];}}}if(_[_0x4afc('0x64')](_0x576ea0[_0x4afc('0x63')])){_0x576ea0[_0x4afc('0x63')]=_0x25969c+0x1;}return _0x53792a(_0x576ea0);});});})[_0x4afc('0x1b')](function(_0x4bc6e5){_0x3875f8(_0x4bc6e5);});});}function updateUser(_0x1ef397){return new BPromise(function(_0x8ba1da,_0x517efb){try{if(_0x1ef397[_0x4afc('0x6a')]){_0x1ef397[_0x4afc('0x6b')]=_0x1ef397[_0x4afc('0x63')];_0x1ef397['VoiceMail']={'mailbox':_0x1ef397[_0x4afc('0x63')],'password':_0x1ef397[_0x4afc('0x3d')],'fullname':_0x1ef397[_0x4afc('0x6c')],'email':_0x1ef397[_0x4afc('0x6d')]};}if(_0x1ef397[_0x4afc('0x26')]===_0x4afc('0x2b')){if(!_0x1ef397[_0x4afc('0x6e')])_0x1ef397[_0x4afc('0x6e')]=['101',_0x4afc('0x6f'),'103','113',_0x4afc('0x70'),_0x4afc('0x71'),_0x4afc('0x72'),'106','107',_0x4afc('0x73'),_0x4afc('0x74'),_0x4afc('0x75'),_0x4afc('0x76'),_0x4afc('0x77'),_0x4afc('0x78')];}_0x8ba1da(_0x1ef397);}catch(_0x4701ca){_0x517efb(_0x4701ca);}});}exports[_0x4afc('0x79')]=function(_0x5fd3e1,_0x396cb5){if(_0x5fd3e1[_0x4afc('0x29')][_0x4afc('0x26')]===_0x4afc('0x2b'))throw new Error(_0x4afc('0x7a'));if(_0x5fd3e1[_0x4afc('0x5a')][_0x4afc('0x26')]==='user'&&_0x5fd3e1[_0x4afc('0x29')][_0x4afc('0x26')]!==_0x4afc('0x27')){throw new Error(_0x4afc('0x7b'));}if(_0x5fd3e1[_0x4afc('0x5a')][_0x4afc('0x26')]===_0x4afc('0x27')&&_0x5fd3e1[_0x4afc('0x29')][_0x4afc('0x26')]!=='admin'){throw new Error(_0x4afc('0x7c'));}return licenseUtil[_0x4afc('0x7d')]([_0x5fd3e1[_0x4afc('0x5a')]])[_0x4afc('0x12')](function(){return validateUser(_0x5fd3e1['body']);})[_0x4afc('0x12')](function(_0x56b862){return updateUser(_0x56b862)[_0x4afc('0x12')](function(_0x4956b2){if(_0x4956b2[_0x4afc('0x26')]===_0x4afc('0x27')){_0x4956b2[_0x4afc('0x7e')]=_0x5fd3e1[_0x4afc('0x29')][_0x4afc('0x7e')];delete _0x4956b2[_0x4afc('0x7f')];}return _0x4956b2;});})['then'](function(_0xbbcbf4){return db[_0x4afc('0x38')]['create'](_0xbbcbf4,{'include':[{'model':db[_0x4afc('0x80')],'as':_0x4afc('0x80')}]});})[_0x4afc('0x12')](function(_0x4affde){if(_0x5fd3e1[_0x4afc('0x5a')][_0x4afc('0x26')]===_0x4afc('0x29'))return _0x4affde;if(_0x5fd3e1[_0x4afc('0x29')]['role']!==_0x4afc('0x29'))return _0x4affde;return db[_0x4afc('0x81')]['find']({'where':{'name':_0x4affde[_0x4afc('0x26')]===_0x4afc('0x2b')?_0x4afc('0x2a'):'Telephones','userProfileId':_0x5fd3e1['user'][_0x4afc('0x7f')]},'raw':!![]})[_0x4afc('0x12')](function(_0x1c0483){if(!_0x1c0483||_0x1c0483[_0x4afc('0x82')]!=0x0)return _0x4affde;return db[_0x4afc('0x33')][_0x4afc('0x79')]({'name':_0x4affde[_0x4afc('0x36')],'resourceId':_0x4affde['id'],'type':_0x1c0483[_0x4afc('0x36')],'sectionId':_0x1c0483['id']},{})[_0x4afc('0x12')](function(){return _0x4affde;});})[_0x4afc('0x1b')](function(_0x32a7a3){logger[_0x4afc('0x18')](_0x4afc('0x83'),_0x32a7a3);throw _0x32a7a3;});})[_0x4afc('0x12')](respondWithResult(_0x396cb5,0xc9))[_0x4afc('0x1b')](handleError(_0x396cb5,null));};exports[_0x4afc('0x84')]=function(_0x5d0ae9,_0x165a35){var _0x105ab7=_0x5d0ae9['body'];var _0xd8f88a=[];if(_0x5d0ae9['user']['role']===_0x4afc('0x2b'))throw new Error('Unauthorized');if(_['some'](_0x105ab7,[_0x4afc('0x26'),'user'])&&_0x5d0ae9[_0x4afc('0x29')]['role']!==_0x4afc('0x27')){throw new Error(_0x4afc('0x7b'));}if(_[_0x4afc('0x85')](_0x105ab7,[_0x4afc('0x26'),_0x4afc('0x27')])&&_0x5d0ae9['user'][_0x4afc('0x26')]!==_0x4afc('0x27')){throw new Error('Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20administrator');}return licenseUtil['checkUserLimits'](_0x105ab7)[_0x4afc('0x12')](function(){return validateUser(_0x105ab7[0x0]);})[_0x4afc('0x12')](function(){for(var _0x373e9c=0x1;_0x373e9c<_0x105ab7[_0x4afc('0x49')];_0x373e9c++){var _0x4596ed=_0x105ab7[_0x373e9c-0x1]['internal'];if(!_0x105ab7[_0x373e9c][_0x4afc('0x63')])_0x105ab7[_0x373e9c][_0x4afc('0x63')]=_0x4596ed+0x1;_0xd8f88a[_0x4afc('0x44')](validateUser(_0x105ab7[_0x373e9c]));}return BPromise[_0x4afc('0x4f')](_0xd8f88a);})['then'](function(){_0xd8f88a=[];for(var _0x114e0f=0x0;_0x114e0f<_0x105ab7['length'];_0x114e0f++){_0xd8f88a[_0x4afc('0x44')](updateUser(_0x105ab7[_0x114e0f]));}return BPromise[_0x4afc('0x4f')](_0xd8f88a);})[_0x4afc('0x12')](function(){return BPromise[_0x4afc('0x86')](_0x105ab7,function(_0xa580ad){return db[_0x4afc('0x38')][_0x4afc('0x79')](_0xa580ad,{'include':[{'model':db[_0x4afc('0x80')],'as':_0x4afc('0x80')}]})[_0x4afc('0x12')](function(_0x27dd60){_0xa580ad['id']=_0x27dd60['id'];return _0xa580ad;});});})['then'](function(_0x26a924){if(_0x5d0ae9['body'][_0x4afc('0x26')]==='user')return _0x26a924;if(_0x5d0ae9['user'][_0x4afc('0x26')]!=='user')return _0x26a924;var _0x512f92=_[_0x4afc('0x85')](_0x26a924,function(_0x489c9d){return _0x489c9d[_0x4afc('0x26')]===_0x4afc('0x2b')||_0x489c9d['role']===_0x4afc('0x2d');});if(!_0x512f92)return _0x26a924;return db[_0x4afc('0x81')]['findAll']({'where':{'name':{'$or':[_0x4afc('0x2a'),_0x4afc('0x2c')]},'userProfileId':_0x5d0ae9[_0x4afc('0x29')]['userProfileId']},'raw':!![]})[_0x4afc('0x12')](function(_0x298c87){if(_[_0x4afc('0x87')](_0x298c87)||!_[_0x4afc('0x85')](_0x298c87,[_0x4afc('0x82'),0x0]))return _0x26a924;_0xd8f88a=[];var _0xbdeb7d=_(_0x298c87)['map'](function(_0x4daf24){if(_0x4daf24[_0x4afc('0x82')]===0x1)return;return _0x4daf24[_0x4afc('0x36')]==='Agents'?_0x4afc('0x2b'):_0x4afc('0x2d');})['compact']()[_0x4afc('0x32')]();for(var _0x102fd8=0x0;_0x102fd8<_0x26a924[_0x4afc('0x49')];_0x102fd8++){if(!_[_0x4afc('0x30')](_0xbdeb7d,_0x26a924[_0x102fd8][_0x4afc('0x26')]))return;var _0x4b1bbc=_0x26a924[_0x102fd8][_0x4afc('0x26')]===_0x4afc('0x2b')?_0x4afc('0x2a'):_0x4afc('0x2c');_0xd8f88a[_0x4afc('0x44')](db['UserProfileResource'][_0x4afc('0x79')]({'name':_0x26a924[_0x102fd8][_0x4afc('0x36')],'resourceId':_0x26a924[_0x102fd8]['id'],'type':_0x4b1bbc,'sectionId':_[_0x4afc('0x31')](_0x298c87,['name',_0x4b1bbc])['id']},{}));}return BPromise[_0x4afc('0x4f')](_0xd8f88a);});})[_0x4afc('0x12')](respondWithResult(_0x165a35,0xc9))['catch'](handleError(_0x165a35,null));};exports['changePassword']=function(_0x4c27a2,_0x1119a9){if(_0x4c27a2[_0x4afc('0x5a')]['id']){delete _0x4c27a2['body']['id'];}return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x4c27a2['params']['id']}})[_0x4afc('0x12')](function(_0x37a056){if(!_0x37a056)return null;if(_0x37a056['id']===_0x4c27a2[_0x4afc('0x29')]['id']){if(!_0x4c27a2[_0x4afc('0x5a')][_0x4afc('0x88')]||!_0x4c27a2[_0x4afc('0x5a')][_0x4afc('0x89')]){throw new db[(_0x4afc('0x8a'))][(_0x4afc('0x8b'))]('Invalid\x20body\x20format.\x20Use\x20oldPassword\x20and\x20newPassword');}if(!_0x37a056[_0x4afc('0x8c')](_0x4c27a2[_0x4afc('0x5a')][_0x4afc('0x88')])){throw new db[(_0x4afc('0x8a'))]['ValidationError'](_0x4afc('0x8d'));}if(_0x4c27a2[_0x4afc('0x5a')]['oldPassword']===_0x4c27a2['body']['newPassword']){throw new db[(_0x4afc('0x8a'))][(_0x4afc('0x8b'))](_0x4afc('0x8e'));}}else if(_0x4c27a2['user'][_0x4afc('0x26')]===_0x4afc('0x27')){if(!_0x4c27a2[_0x4afc('0x5a')]['newPassword']){throw new db[(_0x4afc('0x8a'))]['ValidationError']('Invalid\x20body\x20format.\x20Use\x20newPassword');}}else if(_0x4c27a2[_0x4afc('0x29')][_0x4afc('0x26')]===_0x4afc('0x29')){if(!_0x4c27a2['body'][_0x4afc('0x89')]){throw new db[(_0x4afc('0x8a'))][(_0x4afc('0x8b'))](_0x4afc('0x8f'));}if(_0x37a056[_0x4afc('0x26')]!==_0x4afc('0x2b')){throw new db[(_0x4afc('0x8a'))][(_0x4afc('0x8b'))](_0x4afc('0x7a'));}}else{throw new db['Sequelize']['ValidationError'](_0x4afc('0x7a'));}return _0x37a056;})[_0x4afc('0x12')](handleEntityNotFound(_0x1119a9,null))[_0x4afc('0x12')](function(_0x2b3bbb){return db['Setting'][_0x4afc('0x90')]({'attributes':['id','securePassword','enforcePasswordHistory','passwordHistoryLimit']})[_0x4afc('0x12')](function(_0x449529){if(_0x449529[_0x4afc('0x60')])authService[_0x4afc('0x61')](_0x4c27a2[_0x4afc('0x5a')][_0x4afc('0x89')]);if(!_0x449529[_0x4afc('0x91')]||!_0x2b3bbb[_0x4afc('0x92')])return _0x2b3bbb;authService[_0x4afc('0x93')](_0x4c27a2[_0x4afc('0x5a')][_0x4afc('0x89')],_0x2b3bbb[_0x4afc('0x92')],_0x449529[_0x4afc('0x94')]);return _0x2b3bbb;})['then'](saveUpdates({'password':_0x4c27a2[_0x4afc('0x5a')][_0x4afc('0x89')],'passwordResetAt':_0x4c27a2[_0x4afc('0x29')]['id']==_0x4c27a2[_0x4afc('0x50')]['id']?moment():null,'previousPasswords':authService['updatePasswordsHistory'](_0x4c27a2[_0x4afc('0x5a')][_0x4afc('0x89')],_0x2b3bbb['previousPasswords'])},null));})[_0x4afc('0x12')](respondWithResult(_0x1119a9,null))[_0x4afc('0x1b')](handleError(_0x1119a9,null));};exports[_0x4afc('0x95')]=function(_0x46f5c1,_0x504eae){var _0x42f066=_0x46f5c1[_0x4afc('0x5a')][_0x4afc('0x96')];return db['User'][_0x4afc('0x31')]({'where':{'id':_0x46f5c1[_0x4afc('0x50')]['id']},'attributes':['id','name',_0x4afc('0x26'),'online',_0x4afc('0x97'),_0x4afc('0x98'),_0x4afc('0x99')]})[_0x4afc('0x12')](handleEntityNotFound(_0x504eae,null))[_0x4afc('0x12')](function(_0x2f5d0b){if(_0x2f5d0b){if(!utils[_0x4afc('0x9a')](_0x42f066)){throw new db[(_0x4afc('0x8a'))]['ValidationError']('Unknown\x20channel');}return _0x2f5d0b[_0x4afc('0x9b')+_[_0x4afc('0x9c')](_0x42f066[_0x4afc('0x9d')]())+'Queues'](_0x46f5c1[_0x4afc('0x5a')][_0x4afc('0x5d')],{'penalty':_0x46f5c1['body'][_0x4afc('0x9e')]||0x0})[_0x4afc('0x9f')](function(_0x173149){for(var _0x5ca9fe=0x0;_0x5ca9fe<_0x46f5c1[_0x4afc('0x5a')][_0x4afc('0x5d')][_0x4afc('0x49')];_0x5ca9fe+=0x1){var _0x53d197={'UserId':Number(_0x46f5c1[_0x4afc('0x50')]['id'])};_0x53d197[_[_0x4afc('0x9c')](_0x42f066[_0x4afc('0x9d')]())+_0x4afc('0xa0')]=Number(_0x46f5c1[_0x4afc('0x5a')][_0x4afc('0x5d')][_0x5ca9fe]);socket[_0x4afc('0xa1')](_0x4afc('0x29')+_[_0x4afc('0x9c')](_0x42f066['toLowerCase']())+_0x4afc('0xa2'),_0x53d197);}return _0x173149;})[_0x4afc('0x12')](function(){if(_0x42f066===_0x4afc('0xa3')){return db['VoiceQueue']['findAll']({'where':{'id':_0x46f5c1[_0x4afc('0x5a')][_0x4afc('0x5d')]||[]},'raw':!![],'attributes':['id',_0x4afc('0x36')]});}})[_0x4afc('0x12')](function(_0xc8fba2){var _0x4118f3=_0x2f5d0b[_0x4afc('0x25')]({'plain':!![]});var _0x1cb863=[];if(_0x42f066===_0x4afc('0xa3')&&_0x4118f3['role']===_0x4afc('0x2b')&&_0x4118f3[_0x4afc('0xa4')]){for(var _0x456618=0x0;_0x456618<_0xc8fba2['length'];_0x456618+=0x1){_0x1cb863[_0x4afc('0x44')]({'membername':_0x4118f3[_0x4afc('0x36')],'UserId':_0x4118f3['id'],'queue_name':_0xc8fba2[_0x456618][_0x4afc('0x36')],'VoiceQueueId':_0xc8fba2[_0x456618]['id'],'interface':_['isNil'](_0x4118f3[_0x4afc('0x99')])?util[_0x4afc('0xa5')](_0x4afc('0xa6'),_0x4118f3[_0x4afc('0x36')]):_0x4118f3[_0x4afc('0x99')],'paused':_0x4118f3[_0x4afc('0x98')]||![],'penalty':_0x46f5c1['body'][_0x4afc('0x9e')]||0x0});}return BPromise['each'](_0x1cb863,function(_0x5b721b){return db[_0x4afc('0xa7')]['upsert'](_0x5b721b);});}return _0x2f5d0b;});}})[_0x4afc('0x12')](respondWithStatusCode(_0x504eae,null))[_0x4afc('0x1b')](handleError(_0x504eae,null));};exports[_0x4afc('0xa8')]=function(_0x1191ac,_0x5bbeab){var _0x455a57;return db['User'][_0x4afc('0x31')]({'where':{'id':_0x1191ac[_0x4afc('0x50')]['id']},'attributes':['id','name',_0x4afc('0x26')]})[_0x4afc('0x12')](handleEntityNotFound(_0x5bbeab,null))[_0x4afc('0x12')](function(_0x205e1b){if(_0x205e1b){_0x455a57=_0x205e1b;if(!_0x1191ac['query'][_0x4afc('0x96')]||!utils['isValidChannel'](_0x1191ac[_0x4afc('0x46')][_0x4afc('0x96')])){throw new db['Sequelize'][(_0x4afc('0x8b'))](_0x4afc('0xa9'));}return _0x205e1b[_0x4afc('0xaa')+_[_0x4afc('0x9c')](_0x1191ac['query'][_0x4afc('0x96')]['toLowerCase']())+_0x4afc('0xab')](_0x1191ac[_0x4afc('0x46')][_0x4afc('0x5d')]);}})[_0x4afc('0x12')](function(_0x1fc5d8){if(_[_0x4afc('0xac')](_0x1191ac['query']['ids'])){for(var _0x1f0e12=0x0;_0x1f0e12<_0x1191ac[_0x4afc('0x46')][_0x4afc('0x5d')][_0x4afc('0x49')];_0x1f0e12+=0x1){var _0x43fcf3={'UserId':Number(_0x1191ac[_0x4afc('0x50')]['id'])};_0x43fcf3[_['capitalize'](_0x1191ac[_0x4afc('0x46')][_0x4afc('0x96')][_0x4afc('0x9d')]())+_0x4afc('0xa0')]=Number(_0x1191ac[_0x4afc('0x46')]['ids'][_0x1f0e12]);socket[_0x4afc('0xa1')](_0x4afc('0x29')+_[_0x4afc('0x9c')](_0x1191ac['query'][_0x4afc('0x96')][_0x4afc('0x9d')]())+_0x4afc('0xad'),_0x43fcf3);}}else{var _0x43fcf3={'UserId':Number(_0x1191ac[_0x4afc('0x50')]['id'])};_0x43fcf3[_[_0x4afc('0x9c')](_0x1191ac[_0x4afc('0x46')][_0x4afc('0x96')]['toLowerCase']())+_0x4afc('0xa0')]=Number(_0x1191ac[_0x4afc('0x46')][_0x4afc('0x5d')]);socket[_0x4afc('0xa1')](_0x4afc('0x29')+_[_0x4afc('0x9c')](_0x1191ac[_0x4afc('0x46')]['channel'][_0x4afc('0x9d')]())+_0x4afc('0xad'),_0x43fcf3);}return _0x1fc5d8;})[_0x4afc('0x12')](function(){if(_0x1191ac[_0x4afc('0x46')][_0x4afc('0x96')]===_0x4afc('0xa3')){return db[_0x4afc('0xa7')]['destroy']({'where':{'UserId':_0x1191ac['params']['id'],'VoiceQueueId':_0x1191ac[_0x4afc('0x46')]['ids']},'individualHooks':!![]})[_0x4afc('0x12')](function(){return _0x455a57;});}return _0x455a57;})[_0x4afc('0x12')](respondWithStatusCode(_0x5bbeab,null))[_0x4afc('0x1b')](handleError(_0x5bbeab,null));};exports['addAvatar']=function(_0x75a628,_0x1ea1cb){_0x75a628[_0x4afc('0x5a')][_0x4afc('0xae')]=_0x75a628['file']['filename'];return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x75a628[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0x1ea1cb,null))[_0x4afc('0x12')](saveUpdates(_0x75a628['body'],null))[_0x4afc('0x12')](respondWithResult(_0x1ea1cb,null))['catch'](handleError(_0x1ea1cb,null));};exports[_0x4afc('0xaf')]=function(_0x54ea16,_0x1d79cd){var _0x4ba3a9=path[_0x4afc('0xb0')](config[_0x4afc('0xb1')],_0x4afc('0xb2'));return db['User'][_0x4afc('0x31')]({'where':{'id':_0x54ea16['params']['id']},'attributes':['id',_0x4afc('0xae')],'raw':!![]})['then'](handleEntityNotFound(_0x1d79cd,null))[_0x4afc('0x12')](function(_0x2257f3){if(_0x2257f3){if(_['isNil'](_0x2257f3[_0x4afc('0xae')])){return _0x1d79cd['download'](_0x4ba3a9);}else{if(!fs['existsSync'](path[_0x4afc('0xb0')](config[_0x4afc('0xb1')],_0x4afc('0xb3'),_0x2257f3[_0x4afc('0xae')]))){return _0x1d79cd[_0x4afc('0xb4')](_0x4ba3a9);}return _0x1d79cd[_0x4afc('0xb4')](path[_0x4afc('0xb0')](config[_0x4afc('0xb1')],_0x4afc('0xb3'),_0x2257f3['userpic']));}}})[_0x4afc('0x1b')](handleError(_0x1d79cd,null));};exports[_0x4afc('0xb5')]=function(_0x280319,_0x1e6529){return db[_0x4afc('0x38')]['find']({'where':{'id':_0x280319[_0x4afc('0x50')]['id']},'attributes':['id']})['then'](handleEntityNotFound(_0x1e6529,null))[_0x4afc('0x12')](function(_0x14c79c){var _0x4df52a=[];values=_0x14c79c[_0x4afc('0x4c')];_0x4df52a[_0x4afc('0x44')](get_open_tabs('chat',_0x14c79c[_0x4afc('0x4c')]));_0x4df52a[_0x4afc('0x44')](get_open_tabs(_0x4afc('0x4b'),_0x14c79c['dataValues']));_0x4df52a['push'](get_open_tabs(_0x4afc('0x59'),_0x14c79c[_0x4afc('0x4c')]));_0x4df52a[_0x4afc('0x44')](get_open_tabs(_0x4afc('0xb6'),_0x14c79c[_0x4afc('0x4c')]));_0x4df52a[_0x4afc('0x44')](get_open_tabs(_0x4afc('0x4d'),_0x14c79c['dataValues']));_0x4df52a[_0x4afc('0x44')](get_open_tabs(_0x4afc('0x4e'),_0x14c79c[_0x4afc('0x4c')]));return BPromise[_0x4afc('0x4f')](_0x4df52a);})[_0x4afc('0x12')](function(_0x31f863){var _0x46f93b=[];if(_0x31f863){for(var _0x444586=0x0;_0x444586<values[_0x4afc('0xb7')]['length'];_0x444586++){var _0x41bd1d=values[_0x4afc('0xb7')][_0x444586];_0x46f93b[_0x4afc('0x44')]({'channel':_0x4afc('0xb8'),'id':_0x41bd1d['id'],'createdAt':_0x41bd1d[_0x4afc('0xb9')]});}for(var _0x444586=0x0;_0x444586<values['FaxOpenTabs'][_0x4afc('0x49')];_0x444586++){var _0x41bd1d=values['FaxOpenTabs'][_0x444586];_0x46f93b[_0x4afc('0x44')]({'channel':_0x4afc('0xba'),'id':_0x41bd1d['id'],'createdAt':_0x41bd1d['createdAt']});}for(var _0x444586=0x0;_0x444586<values[_0x4afc('0xbb')]['length'];_0x444586++){var _0x41bd1d=values[_0x4afc('0xbb')][_0x444586];_0x46f93b[_0x4afc('0x44')]({'channel':_0x4afc('0xbc'),'id':_0x41bd1d['id'],'createdAt':_0x41bd1d[_0x4afc('0xb9')]});}for(var _0x444586=0x0;_0x444586<values['MailOpenTabs'][_0x4afc('0x49')];_0x444586++){var _0x41bd1d=values[_0x4afc('0xbd')][_0x444586];_0x46f93b['push']({'channel':'MAIL','id':_0x41bd1d['id'],'createdAt':_0x41bd1d['createdAt']});}for(var _0x444586=0x0;_0x444586<values[_0x4afc('0xbe')][_0x4afc('0x49')];_0x444586++){var _0x41bd1d=values[_0x4afc('0xbe')][_0x444586];_0x46f93b['push']({'channel':_0x4afc('0xbf'),'id':_0x41bd1d['id'],'createdAt':_0x41bd1d[_0x4afc('0xb9')]});}for(var _0x444586=0x0;_0x444586<values[_0x4afc('0xc0')]['length'];_0x444586++){var _0x41bd1d=values[_0x4afc('0xc0')][_0x444586];_0x46f93b[_0x4afc('0x44')]({'channel':_0x4afc('0xc1'),'id':_0x41bd1d['id'],'createdAt':_0x41bd1d[_0x4afc('0xb9')]});}var _0x313fd4={'count':_0x46f93b['length'],'rows':_0x46f93b};return _0x313fd4;}else return null;})[_0x4afc('0x12')](respondWithResult(_0x1e6529,null))[_0x4afc('0x1b')](handleError(_0x1e6529,null));};exports['getContacts']=function(_0x3d3842,_0x4ac560){var _0x4cb98b={};var _0x30a93f={};var _0x1258b7;var _0x10d378;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x3d3842[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x4ac560,null))['then'](function(_0x253e57){if(_0x253e57){_0x1258b7=_0x253e57;_0x30a93f[_0x4afc('0x51')]=_['keys'](db[_0x4afc('0xc2')][_0x4afc('0x39')]);_0x30a93f['query']=_[_0x4afc('0x53')](_0x3d3842[_0x4afc('0x46')]);_0x30a93f[_0x4afc('0x54')]=_['intersection'](_0x30a93f[_0x4afc('0x51')],_0x30a93f[_0x4afc('0x46')]);_0x4cb98b[_0x4afc('0x43')]=_['intersection'](_0x30a93f['model'],qs[_0x4afc('0x56')](_0x3d3842['query'][_0x4afc('0x56')]));_0x4cb98b[_0x4afc('0x43')]=_0x4cb98b[_0x4afc('0x43')]['length']?_0x4cb98b['attributes']:_0x30a93f[_0x4afc('0x51')];_0x4cb98b[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x3d3842[_0x4afc('0x46')][_0x4afc('0xc4')]);_0x4cb98b[_0x4afc('0x40')]=qs['filters'](_[_0x4afc('0xc5')](_0x3d3842[_0x4afc('0x46')],_0x30a93f[_0x4afc('0x54')]));if(_0x3d3842[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x4cb98b['where']=_[_0x4afc('0x57')](_0x4cb98b[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0x4cb98b['attributes'],function(_0x15ee30){var _0x133d22={};_0x133d22[_0x15ee30]={'$like':'%'+_0x3d3842['query']['filter']+'%'};return _0x133d22;})});}_0x4cb98b=_[_0x4afc('0x57')]({},_0x4cb98b,_0x3d3842[_0x4afc('0x58')]);return _0x1258b7[_0x4afc('0xc6')](_0x4cb98b);}})[_0x4afc('0x12')](function(_0x35a448){if(_0x35a448){_0x10d378=_0x35a448[_0x4afc('0x49')];if(_0x3d3842[_0x4afc('0x46')][_0x4afc('0xc7')]('includeAll')){_0x4cb98b[_0x4afc('0x42')]=[{'model':db[_0x4afc('0xc8')],'as':'List','required':![]},{'model':db[_0x4afc('0xc9')],'as':_0x4afc('0xca'),'attributes':['id',_0x4afc('0x36'),_0x4afc('0xcb')],'where':_0x3d3842[_0x4afc('0x46')][_0x4afc('0xcc')]?{'id':_0x3d3842['query'][_0x4afc('0xcc')]}:undefined,'required':_0x3d3842[_0x4afc('0x46')][_0x4afc('0xcc')]?!![]:![]}];}if(!_0x3d3842[_0x4afc('0x46')]['hasOwnProperty'](_0x4afc('0xcd'))){_0x4cb98b[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x3d3842[_0x4afc('0x46')]['limit']);_0x4cb98b[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x3d3842[_0x4afc('0x46')][_0x4afc('0x1e')]);}return _0x1258b7[_0x4afc('0xc6')](_0x4cb98b);}})[_0x4afc('0x12')](function(_0x32f847){if(_0x32f847){return _0x32f847?{'count':_0x10d378,'rows':_0x32f847}:null;}})['then'](respondWithResult(_0x4ac560,null))['catch'](handleError(_0x4ac560,null));};exports['getQueues']=function(_0x37d689,_0x5d8273){var _0x27b9f3;var _0x4e05af;var _0x462734={};var _0x30a586;return db[_0x4afc('0x38')]['findOne']({'where':{'id':_0x37d689[_0x4afc('0x50')]['id']},'attributes':['id',_0x4afc('0x36'),_0x4afc('0x26')]})[_0x4afc('0x12')](handleEntityNotFound(_0x5d8273,null))['then'](function(_0x44c475){if(!utils[_0x4afc('0x9a')](_0x37d689[_0x4afc('0x46')]['channel'])){throw new db[(_0x4afc('0x8a'))][(_0x4afc('0x8b'))]('Unknown\x20channel');}_0x27b9f3=_0x44c475;var _0x43f64e={};_0x43f64e[_0x4afc('0x51')]=_[_0x4afc('0x53')](db[_[_0x4afc('0x9c')](_0x37d689[_0x4afc('0x46')]['channel'])+'Queue'][_0x4afc('0x39')]);_0x43f64e[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x37d689[_0x4afc('0x46')]);_0x43f64e[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x43f64e[_0x4afc('0x51')],_0x43f64e[_0x4afc('0x46')]);_0x462734[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x43f64e['model'],qs[_0x4afc('0x56')](_0x37d689[_0x4afc('0x46')][_0x4afc('0x56')]));_0x462734[_0x4afc('0x43')]=_0x462734[_0x4afc('0x43')][_0x4afc('0x49')]?_0x462734[_0x4afc('0x43')]:_0x43f64e['model'];_0x462734[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x37d689[_0x4afc('0x46')]['sort']);_0x462734['where']=qs['filters'](_['pick'](_0x37d689['query'],_0x43f64e[_0x4afc('0x54')]));if(_0x37d689['query'][_0x4afc('0x2e')]){_0x462734[_0x4afc('0x40')]=_[_0x4afc('0x57')](_0x462734['where'],{'$or':_[_0x4afc('0x2f')](_0x462734[_0x4afc('0x43')],function(_0x469e5c){var _0x2b9f4c={};_0x2b9f4c[_0x469e5c]={'$like':'%'+_0x37d689[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0x2b9f4c;})});}_0x462734=_[_0x4afc('0x57')]({},_0x462734,_0x37d689[_0x4afc('0x58')]);switch(_0x27b9f3['role']){case _0x4afc('0x27'):return db[_[_0x4afc('0x9c')](_0x37d689['query'][_0x4afc('0x96')])+_0x4afc('0xce')]['findAll'](_0x462734);case'user':case _0x4afc('0x2b'):return _0x27b9f3[_0x4afc('0x25')+_[_0x4afc('0x9c')](_0x37d689[_0x4afc('0x46')]['channel'])+_0x4afc('0xab')](_0x462734);default:throw new db[(_0x4afc('0x8a'))][(_0x4afc('0x8b'))](_0x4afc('0xcf'));}})['then'](function(_0x516e83){_0x30a586=_0x516e83['length'];if(!_0x37d689[_0x4afc('0x46')][_0x4afc('0xc7')]('nolimit')){_0x462734[_0x4afc('0x20')]=qs['limit'](_0x37d689['query'][_0x4afc('0x20')]);_0x462734['offset']=qs[_0x4afc('0x1e')](_0x37d689[_0x4afc('0x46')][_0x4afc('0x1e')]);}switch(_0x27b9f3[_0x4afc('0x26')]){case _0x4afc('0x27'):return db[_['capitalize'](_0x37d689[_0x4afc('0x46')]['channel'])+_0x4afc('0xce')][_0x4afc('0xd0')](_0x462734);case _0x4afc('0x29'):case _0x4afc('0x2b'):return _0x27b9f3[_0x4afc('0x25')+_['capitalize'](_0x37d689[_0x4afc('0x46')][_0x4afc('0x96')])+_0x4afc('0xab')](_0x462734);}})[_0x4afc('0x12')](function(_0x57ea48){return{'count':_0x30a586,'rows':_0x57ea48};})[_0x4afc('0x12')](respondWithResult(_0x5d8273,null))[_0x4afc('0x1b')](handleError(_0x5d8273,null));};exports['getVoiceQueuesRt']=function(_0x27ba2b,_0x4ace83){var _0x588d22={};var _0x6ba82={};var _0x109e1c;var _0x1f074e;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x27ba2b[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x4ace83,null))[_0x4afc('0x12')](function(_0x1ea800){if(_0x1ea800){_0x109e1c=_0x1ea800;_0x6ba82[_0x4afc('0x51')]=_['keys'](db[_0x4afc('0xa7')][_0x4afc('0x39')]);_0x6ba82[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x27ba2b['query']);_0x6ba82[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x6ba82[_0x4afc('0x51')],_0x6ba82[_0x4afc('0x46')]);_0x588d22[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x6ba82[_0x4afc('0x51')],qs['fields'](_0x27ba2b['query']['fields']));_0x588d22['attributes']=_0x588d22[_0x4afc('0x43')][_0x4afc('0x49')]?_0x588d22[_0x4afc('0x43')]:_0x6ba82[_0x4afc('0x51')];_0x588d22[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x27ba2b[_0x4afc('0x46')]['sort']);_0x588d22[_0x4afc('0x40')]=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0x27ba2b[_0x4afc('0x46')],_0x6ba82[_0x4afc('0x54')]));if(_0x27ba2b[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x588d22['where']=_['merge'](_0x588d22[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0x588d22[_0x4afc('0x43')],function(_0xa1b979){var _0xef44ed={};_0xef44ed[_0xa1b979]={'$like':'%'+_0x27ba2b[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0xef44ed;})});}_0x588d22=_[_0x4afc('0x57')]({},_0x588d22,_0x27ba2b[_0x4afc('0x58')]);return _0x109e1c[_0x4afc('0xd1')](_0x588d22);}})['then'](function(_0x2c2408){if(_0x2c2408){_0x1f074e=_0x2c2408[_0x4afc('0x49')];if(!_0x27ba2b[_0x4afc('0x46')][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0x588d22[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x27ba2b[_0x4afc('0x46')][_0x4afc('0x20')]);_0x588d22[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x27ba2b[_0x4afc('0x46')][_0x4afc('0x1e')]);}return _0x109e1c[_0x4afc('0xd1')](_0x588d22);}})['then'](function(_0x2c72e9){if(_0x2c72e9){return _0x2c72e9?{'count':_0x1f074e,'rows':_0x2c72e9}:null;}})[_0x4afc('0x12')](respondWithResult(_0x4ace83,null))[_0x4afc('0x1b')](handleError(_0x4ace83,null));};exports[_0x4afc('0xd2')]=function(_0xf2c7ac,_0x483907){var _0x5749b0={};var _0x8ee261={};var _0x14393c;var _0x17f4ae;return db['User'][_0x4afc('0x90')]({'where':{'id':_0xf2c7ac[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x483907,null))[_0x4afc('0x12')](function(_0xae6119){if(_0xae6119){_0x14393c=_0xae6119;_0x8ee261[_0x4afc('0x51')]=_['keys'](db[_0x4afc('0xd3')][_0x4afc('0x39')]);_0x8ee261[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0xf2c7ac[_0x4afc('0x46')]);_0x8ee261[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x8ee261[_0x4afc('0x51')],_0x8ee261[_0x4afc('0x46')]);_0x5749b0[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x8ee261[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0xf2c7ac['query'][_0x4afc('0x56')]));_0x5749b0[_0x4afc('0x43')]=_0x5749b0[_0x4afc('0x43')][_0x4afc('0x49')]?_0x5749b0[_0x4afc('0x43')]:_0x8ee261[_0x4afc('0x51')];_0x5749b0['order']=qs['sort'](_0xf2c7ac[_0x4afc('0x46')]['sort']);_0x5749b0[_0x4afc('0x40')]=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0xf2c7ac[_0x4afc('0x46')],_0x8ee261[_0x4afc('0x54')]));if(_0xf2c7ac[_0x4afc('0x46')]['filter']){_0x5749b0['where']=_[_0x4afc('0x57')](_0x5749b0['where'],{'$or':_['map'](_0x5749b0['attributes'],function(_0x3c6bf5){var _0x52edc5={};_0x52edc5[_0x3c6bf5]={'$like':'%'+_0xf2c7ac['query'][_0x4afc('0x2e')]+'%'};return _0x52edc5;})});}_0x5749b0=_[_0x4afc('0x57')]({},_0x5749b0,_0xf2c7ac[_0x4afc('0x58')]);return _0x14393c[_0x4afc('0xd2')](_0x5749b0);}})['then'](function(_0x4bdac0){if(_0x4bdac0){_0x17f4ae=_0x4bdac0[_0x4afc('0x49')];if(!_0xf2c7ac[_0x4afc('0x46')][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0x5749b0[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0xf2c7ac[_0x4afc('0x46')][_0x4afc('0x20')]);_0x5749b0['offset']=qs[_0x4afc('0x1e')](_0xf2c7ac[_0x4afc('0x46')]['offset']);}return _0x14393c[_0x4afc('0xd2')](_0x5749b0);}})[_0x4afc('0x12')](function(_0x1bd92){if(_0x1bd92){return _0x1bd92?{'count':_0x17f4ae,'rows':_0x1bd92}:null;}})[_0x4afc('0x12')](respondWithResult(_0x483907,null))['catch'](handleError(_0x483907,null));};exports['getRecordings']=function(_0x34a3d3,_0x32a093){var _0x435fe2={'raw':!![],'where':{}};var _0x357686={};var _0x51229c={'count':0x0,'rows':[]};return db['User'][_0x4afc('0x90')]({'where':{'id':_0x34a3d3['params']['id']}})['then'](handleEntityNotFound(_0x32a093,null))['then'](function(_0x3d0d88){if(_0x3d0d88){_0x357686[_0x4afc('0x51')]=_[_0x4afc('0x53')](db[_0x4afc('0xd4')][_0x4afc('0x39')]);_0x357686[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x34a3d3[_0x4afc('0x46')]);_0x357686[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x357686[_0x4afc('0x51')],_0x357686[_0x4afc('0x46')]);_0x435fe2[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x357686[_0x4afc('0x51')],qs['fields'](_0x34a3d3['query'][_0x4afc('0x56')]));_0x435fe2[_0x4afc('0x43')]=_0x435fe2[_0x4afc('0x43')]['length']?_0x435fe2[_0x4afc('0x43')]:_0x357686[_0x4afc('0x51')];if(!_0x34a3d3['query'][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0x435fe2[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x34a3d3[_0x4afc('0x46')][_0x4afc('0x20')]);_0x435fe2[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x34a3d3[_0x4afc('0x46')]['offset']);}_0x435fe2[_0x4afc('0xc3')]=qs['sort'](_0x34a3d3[_0x4afc('0x46')][_0x4afc('0xc4')]);_0x435fe2[_0x4afc('0x40')]=qs['filters'](_[_0x4afc('0xc5')](_0x34a3d3[_0x4afc('0x46')],_0x357686[_0x4afc('0x54')]));_0x435fe2[_0x4afc('0x40')][_0x4afc('0xd5')]=_0x3d0d88['id'];if(_0x34a3d3[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x435fe2[_0x4afc('0x40')]=_['merge'](_0x435fe2[_0x4afc('0x40')],{'$or':_['map'](_0x435fe2['attributes'],function(_0x24188f){var _0x5c72f0={};_0x5c72f0[_0x24188f]={'$like':'%'+_0x34a3d3[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0x5c72f0;})});}_0x435fe2=_[_0x4afc('0x57')]({},_0x435fe2,_0x34a3d3[_0x4afc('0x58')]);return db[_0x4afc('0xd4')][_0x4afc('0x21')]({'where':_0x435fe2[_0x4afc('0x40')]})[_0x4afc('0x12')](function(_0x567377){_0x51229c[_0x4afc('0x21')]=_0x567377;if(_0x34a3d3['query'][_0x4afc('0x41')]){_0x435fe2[_0x4afc('0x42')]=[{'all':!![]}];}return db[_0x4afc('0xd4')][_0x4afc('0xd0')](_0x435fe2);})[_0x4afc('0x12')](function(_0xfc07f8){_0x51229c[_0x4afc('0x45')]=_0xfc07f8;return _0x51229c;});}})[_0x4afc('0x12')](respondWithFilteredResult(_0x32a093,_0x435fe2))[_0x4afc('0x1b')](handleError(_0x32a093,null));};exports[_0x4afc('0xd6')]=function(_0x352f22,_0x1c0de1){var _0xf341ff={'raw':!![],'where':{}};var _0xe5cce1={};var _0x422111={'count':0x0,'rows':[]};return db['User'][_0x4afc('0x90')]({'where':{'id':_0x352f22['params']['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x1c0de1,null))[_0x4afc('0x12')](function(_0xb1e983){if(_0xb1e983){_0xe5cce1[_0x4afc('0x51')]=_[_0x4afc('0x53')](db[_0x4afc('0xd7')][_0x4afc('0x39')]);_0xe5cce1['query']=_[_0x4afc('0x53')](_0x352f22[_0x4afc('0x46')]);_0xe5cce1['filters']=_[_0x4afc('0x55')](_0xe5cce1[_0x4afc('0x51')],_0xe5cce1[_0x4afc('0x46')]);_0xf341ff[_0x4afc('0x43')]=_['intersection'](_0xe5cce1[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0x352f22[_0x4afc('0x46')]['fields']));_0xf341ff['attributes']=_0xf341ff[_0x4afc('0x43')][_0x4afc('0x49')]?_0xf341ff[_0x4afc('0x43')]:_0xe5cce1['model'];if(!_0x352f22[_0x4afc('0x46')][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0xf341ff[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x352f22['query'][_0x4afc('0x20')]);_0xf341ff[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x352f22[_0x4afc('0x46')]['offset']);}_0xf341ff[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x352f22[_0x4afc('0x46')]['sort']);_0xf341ff['where']=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0x352f22[_0x4afc('0x46')],_0xe5cce1[_0x4afc('0x54')]));_0xf341ff[_0x4afc('0x40')][_0x4afc('0xd5')]=_0xb1e983['id'];if(_0x352f22[_0x4afc('0x46')][_0x4afc('0x2e')]){_0xf341ff[_0x4afc('0x40')]=_['merge'](_0xf341ff[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0xf341ff[_0x4afc('0x43')],function(_0x215cdd){var _0x48017e={};_0x48017e[_0x215cdd]={'$like':'%'+_0x352f22[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0x48017e;})});}_0xf341ff=_[_0x4afc('0x57')]({},_0xf341ff,_0x352f22[_0x4afc('0x58')]);return db[_0x4afc('0xd7')][_0x4afc('0x21')]({'where':_0xf341ff[_0x4afc('0x40')]})[_0x4afc('0x12')](function(_0x417ae8){_0x422111[_0x4afc('0x21')]=_0x417ae8;if(_0x352f22[_0x4afc('0x46')]['includeAll']){_0xf341ff[_0x4afc('0x42')]=[{'all':!![]}];}return db[_0x4afc('0xd7')]['findAll'](_0xf341ff);})['then'](function(_0x52e013){_0x422111[_0x4afc('0x45')]=_0x52e013;return _0x422111;});}})[_0x4afc('0x12')](respondWithFilteredResult(_0x1c0de1,_0xf341ff))[_0x4afc('0x1b')](handleError(_0x1c0de1,null));};exports['getChatInteractions']=function(_0x118a09,_0x3305ec){var _0x170cab={};var _0x2ea4df={};var _0x29f115;var _0x39f011;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x118a09[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0x3305ec,null))['then'](function(_0x274773){if(_0x274773){_0x29f115=_0x274773;_0x2ea4df['model']=_[_0x4afc('0x53')](db[_0x4afc('0xd8')][_0x4afc('0x39')]);_0x2ea4df[_0x4afc('0x46')]=_['keys'](_0x118a09[_0x4afc('0x46')]);_0x2ea4df[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x2ea4df[_0x4afc('0x51')],_0x2ea4df['query']);_0x170cab[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x2ea4df['model'],qs['fields'](_0x118a09[_0x4afc('0x46')]['fields']));_0x170cab[_0x4afc('0x43')]=_0x170cab['attributes'][_0x4afc('0x49')]?_0x170cab[_0x4afc('0x43')]:_0x2ea4df[_0x4afc('0x51')];_0x170cab[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x118a09['query']['sort']);_0x170cab['where']=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0x118a09[_0x4afc('0x46')],_0x2ea4df[_0x4afc('0x54')]));if(_0x118a09[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x170cab['where']=_[_0x4afc('0x57')](_0x170cab[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0x170cab[_0x4afc('0x43')],function(_0x259ba2){var _0x1e39dd={};_0x1e39dd[_0x259ba2]={'$like':'%'+_0x118a09['query']['filter']+'%'};return _0x1e39dd;})});}_0x170cab=_['merge']({},_0x170cab,_0x118a09[_0x4afc('0x58')]);return _0x29f115['getChatInteractions'](_0x170cab);}})[_0x4afc('0x12')](function(_0x520337){if(_0x520337){_0x39f011=_0x520337['length'];if(!_0x118a09[_0x4afc('0x46')][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0x170cab[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x118a09[_0x4afc('0x46')]['limit']);_0x170cab[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x118a09['query'][_0x4afc('0x1e')]);}return _0x29f115[_0x4afc('0xd9')](_0x170cab);}})[_0x4afc('0x12')](function(_0x47e0bb){if(_0x47e0bb){return _0x47e0bb?{'count':_0x39f011,'rows':_0x47e0bb}:null;}})[_0x4afc('0x12')](respondWithResult(_0x3305ec,null))[_0x4afc('0x1b')](handleError(_0x3305ec,null));};exports[_0x4afc('0xda')]=function(_0x298466,_0x4268df){var _0x22d6d0={};var _0xb432b4={};var _0x1713fd;var _0x3b7648;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x298466[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0x4268df,null))['then'](function(_0x5cbf5c){if(_0x5cbf5c){_0x1713fd=_0x5cbf5c;_0xb432b4[_0x4afc('0x51')]=_[_0x4afc('0x53')](db[_0x4afc('0xdb')][_0x4afc('0x39')]);_0xb432b4[_0x4afc('0x46')]=_['keys'](_0x298466[_0x4afc('0x46')]);_0xb432b4[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0xb432b4['model'],_0xb432b4['query']);_0x22d6d0['attributes']=_[_0x4afc('0x55')](_0xb432b4[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0x298466[_0x4afc('0x46')][_0x4afc('0x56')]));_0x22d6d0[_0x4afc('0x43')]=_0x22d6d0['attributes']['length']?_0x22d6d0['attributes']:_0xb432b4[_0x4afc('0x51')];_0x22d6d0[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x298466[_0x4afc('0x46')]['sort']);_0x22d6d0[_0x4afc('0x40')]=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0x298466['query'],_0xb432b4[_0x4afc('0x54')]));if(_0x298466[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x22d6d0[_0x4afc('0x40')]=_['merge'](_0x22d6d0['where'],{'$or':_[_0x4afc('0x2f')](_0x22d6d0[_0x4afc('0x43')],function(_0x375f24){var _0x5d0e3a={};_0x5d0e3a[_0x375f24]={'$like':'%'+_0x298466['query'][_0x4afc('0x2e')]+'%'};return _0x5d0e3a;})});}_0x22d6d0=_['merge']({},_0x22d6d0,_0x298466[_0x4afc('0x58')]);return _0x1713fd[_0x4afc('0xda')](_0x22d6d0);}})['then'](function(_0x13d4a4){if(_0x13d4a4){_0x3b7648=_0x13d4a4[_0x4afc('0x49')];if(!_0x298466[_0x4afc('0x46')]['hasOwnProperty'](_0x4afc('0xcd'))){_0x22d6d0[_0x4afc('0x20')]=qs['limit'](_0x298466[_0x4afc('0x46')]['limit']);_0x22d6d0['offset']=qs['offset'](_0x298466[_0x4afc('0x46')]['offset']);}return _0x1713fd[_0x4afc('0xda')](_0x22d6d0);}})['then'](function(_0x5780a3){if(_0x5780a3){return _0x5780a3?{'count':_0x3b7648,'rows':_0x5780a3}:null;}})[_0x4afc('0x12')](respondWithResult(_0x4268df,null))['catch'](handleError(_0x4268df,null));};exports['getMailInteractions']=function(_0x34785d,_0x561809){var _0x42d2b5={'raw':!![],'where':{}};var _0x2ec86c={};var _0x1aa3e3={'count':0x0,'rows':[]};return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x34785d[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x561809,null))['then'](function(_0x5866c6){if(_0x5866c6){_0x2ec86c['model']=_['keys'](db[_0x4afc('0xdc')]['rawAttributes']);_0x2ec86c['query']=_[_0x4afc('0x53')](_0x34785d[_0x4afc('0x46')]);_0x2ec86c[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x2ec86c[_0x4afc('0x51')],_0x2ec86c['query']);_0x42d2b5[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x2ec86c[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0x34785d[_0x4afc('0x46')][_0x4afc('0x56')]));_0x42d2b5['attributes']=_0x42d2b5[_0x4afc('0x43')][_0x4afc('0x49')]?_0x42d2b5['attributes']:_0x2ec86c[_0x4afc('0x51')];if(!_0x34785d[_0x4afc('0x46')][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0x42d2b5[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x34785d[_0x4afc('0x46')][_0x4afc('0x20')]);_0x42d2b5[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x34785d[_0x4afc('0x46')][_0x4afc('0x1e')]);}_0x42d2b5[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x34785d[_0x4afc('0x46')]['sort']);_0x42d2b5['where']=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0x34785d['query'],_0x2ec86c[_0x4afc('0x54')]));_0x42d2b5['where']['UserId']=_0x5866c6['id'];if(_0x34785d['query'][_0x4afc('0x2e')]){_0x42d2b5['where']=_[_0x4afc('0x57')](_0x42d2b5[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0x42d2b5[_0x4afc('0x43')],function(_0x515c5a){var _0x542683={};_0x542683[_0x515c5a]={'$like':'%'+_0x34785d['query'][_0x4afc('0x2e')]+'%'};return _0x542683;})});}_0x42d2b5=_[_0x4afc('0x57')]({},_0x42d2b5,_0x34785d[_0x4afc('0x58')]);return db[_0x4afc('0xdc')][_0x4afc('0x21')]({'where':_0x42d2b5[_0x4afc('0x40')]})[_0x4afc('0x12')](function(_0x394664){_0x1aa3e3[_0x4afc('0x21')]=_0x394664;if(_0x34785d['query'][_0x4afc('0x41')]){_0x42d2b5[_0x4afc('0x42')]=[{'all':!![]}];}return db['MailInteraction'][_0x4afc('0xd0')](_0x42d2b5);})['then'](function(_0x3186f8){_0x1aa3e3['rows']=_0x3186f8;return _0x1aa3e3;});}})[_0x4afc('0x12')](respondWithFilteredResult(_0x561809,_0x42d2b5))['catch'](handleError(_0x561809,null));};exports['getSmsInteractions']=function(_0x503222,_0x4bebe8){var _0x177089={};var _0x29f4b5={};var _0x430b9e;var _0x20340f;return db['User'][_0x4afc('0x90')]({'where':{'id':_0x503222[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x4bebe8,null))[_0x4afc('0x12')](function(_0x27f37e){if(_0x27f37e){_0x430b9e=_0x27f37e;_0x29f4b5[_0x4afc('0x51')]=_[_0x4afc('0x53')](db['SmsInteraction'][_0x4afc('0x39')]);_0x29f4b5[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x503222[_0x4afc('0x46')]);_0x29f4b5[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x29f4b5[_0x4afc('0x51')],_0x29f4b5[_0x4afc('0x46')]);_0x177089[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x29f4b5['model'],qs[_0x4afc('0x56')](_0x503222[_0x4afc('0x46')][_0x4afc('0x56')]));_0x177089['attributes']=_0x177089[_0x4afc('0x43')][_0x4afc('0x49')]?_0x177089[_0x4afc('0x43')]:_0x29f4b5[_0x4afc('0x51')];_0x177089['order']=qs['sort'](_0x503222[_0x4afc('0x46')]['sort']);_0x177089[_0x4afc('0x40')]=qs[_0x4afc('0x54')](_['pick'](_0x503222[_0x4afc('0x46')],_0x29f4b5['filters']));if(_0x503222[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x177089[_0x4afc('0x40')]=_[_0x4afc('0x57')](_0x177089[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0x177089[_0x4afc('0x43')],function(_0x5c3f54){var _0x478719={};_0x478719[_0x5c3f54]={'$like':'%'+_0x503222[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0x478719;})});}_0x177089=_[_0x4afc('0x57')]({},_0x177089,_0x503222[_0x4afc('0x58')]);return _0x430b9e[_0x4afc('0xdd')](_0x177089);}})['then'](function(_0x445c3f){if(_0x445c3f){_0x20340f=_0x445c3f[_0x4afc('0x49')];if(!_0x503222[_0x4afc('0x46')][_0x4afc('0xc7')]('nolimit')){_0x177089[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x503222[_0x4afc('0x46')][_0x4afc('0x20')]);_0x177089[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x503222[_0x4afc('0x46')][_0x4afc('0x1e')]);}return _0x430b9e['getSmsInteractions'](_0x177089);}})[_0x4afc('0x12')](function(_0x5024a5){if(_0x5024a5){return _0x5024a5?{'count':_0x20340f,'rows':_0x5024a5}:null;}})[_0x4afc('0x12')](respondWithResult(_0x4bebe8,null))['catch'](handleError(_0x4bebe8,null));};exports[_0x4afc('0xde')]=function(_0x5aa79a,_0x572cb7){var _0x3859cc={};var _0x2c1ca2={};var _0x2d99f8;var _0x48e77f;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x5aa79a[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0x572cb7,null))[_0x4afc('0x12')](function(_0x2ac118){if(_0x2ac118){_0x2d99f8=_0x2ac118;_0x2c1ca2['model']=_[_0x4afc('0x53')](db[_0x4afc('0xdf')][_0x4afc('0x39')]);_0x2c1ca2['query']=_['keys'](_0x5aa79a['query']);_0x2c1ca2[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x2c1ca2[_0x4afc('0x51')],_0x2c1ca2[_0x4afc('0x46')]);_0x3859cc[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x2c1ca2[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0x5aa79a['query']['fields']));_0x3859cc[_0x4afc('0x43')]=_0x3859cc[_0x4afc('0x43')][_0x4afc('0x49')]?_0x3859cc['attributes']:_0x2c1ca2[_0x4afc('0x51')];_0x3859cc[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x5aa79a[_0x4afc('0x46')]['sort']);_0x3859cc['where']=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0x5aa79a[_0x4afc('0x46')],_0x2c1ca2[_0x4afc('0x54')]));if(_0x5aa79a[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x3859cc['where']=_[_0x4afc('0x57')](_0x3859cc['where'],{'$or':_['map'](_0x3859cc[_0x4afc('0x43')],function(_0x354889){var _0x32269b={};_0x32269b[_0x354889]={'$like':'%'+_0x5aa79a[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0x32269b;})});}_0x3859cc=_['merge']({},_0x3859cc,_0x5aa79a[_0x4afc('0x58')]);return _0x2d99f8[_0x4afc('0xde')](_0x3859cc);}})[_0x4afc('0x12')](function(_0x2a3f70){if(_0x2a3f70){_0x48e77f=_0x2a3f70[_0x4afc('0x49')];if(!_0x5aa79a['query'][_0x4afc('0xc7')]('nolimit')){_0x3859cc[_0x4afc('0x20')]=qs['limit'](_0x5aa79a[_0x4afc('0x46')][_0x4afc('0x20')]);_0x3859cc[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x5aa79a[_0x4afc('0x46')]['offset']);}return _0x2d99f8[_0x4afc('0xde')](_0x3859cc);}})[_0x4afc('0x12')](function(_0x41340e){if(_0x41340e){return _0x41340e?{'count':_0x48e77f,'rows':_0x41340e}:null;}})[_0x4afc('0x12')](respondWithResult(_0x572cb7,null))[_0x4afc('0x1b')](handleError(_0x572cb7,null));};exports[_0x4afc('0xe0')]=function(_0x17cb33,_0x35723e){var _0x22d0f5={};var _0x36c4fc={};var _0x4b4ede;var _0x1f2a94;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x17cb33['params']['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x35723e,null))['then'](function(_0x2dfdc3){if(_0x2dfdc3){_0x4b4ede=_0x2dfdc3;_0x36c4fc[_0x4afc('0x51')]=_['keys'](db['WhatsappInteraction'][_0x4afc('0x39')]);_0x36c4fc['query']=_[_0x4afc('0x53')](_0x17cb33[_0x4afc('0x46')]);_0x36c4fc[_0x4afc('0x54')]=_['intersection'](_0x36c4fc[_0x4afc('0x51')],_0x36c4fc[_0x4afc('0x46')]);_0x22d0f5['attributes']=_['intersection'](_0x36c4fc[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0x17cb33[_0x4afc('0x46')][_0x4afc('0x56')]));_0x22d0f5[_0x4afc('0x43')]=_0x22d0f5[_0x4afc('0x43')][_0x4afc('0x49')]?_0x22d0f5['attributes']:_0x36c4fc['model'];_0x22d0f5[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x17cb33[_0x4afc('0x46')][_0x4afc('0xc4')]);_0x22d0f5[_0x4afc('0x40')]=qs['filters'](_[_0x4afc('0xc5')](_0x17cb33[_0x4afc('0x46')],_0x36c4fc[_0x4afc('0x54')]));if(_0x17cb33[_0x4afc('0x46')]['filter']){_0x22d0f5[_0x4afc('0x40')]=_['merge'](_0x22d0f5[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0x22d0f5[_0x4afc('0x43')],function(_0x413368){var _0x5c3467={};_0x5c3467[_0x413368]={'$like':'%'+_0x17cb33[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0x5c3467;})});}_0x22d0f5=_[_0x4afc('0x57')]({},_0x22d0f5,_0x17cb33['options']);return _0x4b4ede[_0x4afc('0xe0')](_0x22d0f5);}})[_0x4afc('0x12')](function(_0x549d33){if(_0x549d33){_0x1f2a94=_0x549d33[_0x4afc('0x49')];if(!_0x17cb33[_0x4afc('0x46')]['hasOwnProperty'](_0x4afc('0xcd'))){_0x22d0f5[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x17cb33[_0x4afc('0x46')][_0x4afc('0x20')]);_0x22d0f5[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x17cb33[_0x4afc('0x46')]['offset']);}return _0x4b4ede[_0x4afc('0xe0')](_0x22d0f5);}})[_0x4afc('0x12')](function(_0x42e854){if(_0x42e854){return _0x42e854?{'count':_0x1f2a94,'rows':_0x42e854}:null;}})[_0x4afc('0x12')](respondWithResult(_0x35723e,null))[_0x4afc('0x1b')](handleError(_0x35723e,null));};exports[_0x4afc('0xe1')]=function(_0x2def3d,_0x5a5624,_0x3d8385){var _0x56eb0a;var _0x2a827d;var _0x3a85ae;var _0xf1d45c=!_[_0x4afc('0x64')](_0x2def3d[_0x4afc('0x50')]['id'])?_0x2def3d[_0x4afc('0x50')]['id']:!_[_0x4afc('0x64')](_0x2def3d[_0x4afc('0x29')]['id'])?_0x2def3d[_0x4afc('0x29')]['id']:null;return db['User'][_0x4afc('0x31')]({'where':{'id':_0xf1d45c,'role':{'$or':[_0x4afc('0x27'),_0x4afc('0x29'),_0x4afc('0x2b')]}},'attributes':['id',_0x4afc('0x36'),_0x4afc('0xe2'),_0x4afc('0xe3'),_0x4afc('0x26'),_0x4afc('0x63'),_0x4afc('0x97')]})[_0x4afc('0x12')](function(_0x438110){if(_0x438110){if(_0x438110[_0x4afc('0x26')]==='agent'){_0x56eb0a=_0x438110;if(_0x2def3d[_0x4afc('0x5a')][_0x4afc('0x99')]){_0x3a85ae=util['format'](_0x4afc('0xe4'),_0x56eb0a[_0x2def3d[_0x4afc('0x5a')][_0x4afc('0x99')]]);}else if(_0x2def3d[_0x4afc('0x5a')][_0x4afc('0xe5')]){_0x3a85ae=util['format'](_0x4afc('0xa6'),_0x2def3d[_0x4afc('0x5a')][_0x4afc('0xe5')]);}else{_0x3a85ae=util[_0x4afc('0xa5')](_0x4afc('0xa6'),_0x56eb0a[_0x4afc('0x36')]);}socket['to'](util['format'](_0x4afc('0xe6'),_0x56eb0a[_0x4afc('0x36')]))[_0x4afc('0xa1')](_0x4afc('0xe7'),{'user':{'id':_0x56eb0a['id'],'name':_0x56eb0a[_0x4afc('0x36')]},'ip':_0x2def3d[_0x4afc('0xe8')]['x-forwarded-for']||_0x2def3d[_0x4afc('0xe9')][_0x4afc('0xea')]||_0x2def3d[_0x4afc('0xeb')][_0x4afc('0xea')]||_0x2def3d[_0x4afc('0xe9')][_0x4afc('0xeb')]['remoteAddress']});return db[_0x4afc('0xa7')][_0x4afc('0x24')]({'where':{'membername':_0x56eb0a[_0x4afc('0x36')]},'individualHooks':!![]});}}else{throw new db[(_0x4afc('0x8a'))][(_0x4afc('0x8b'))](_0x4afc('0xec'));}})[_0x4afc('0x12')](function(){if(_0x56eb0a){return _0x56eb0a[_0x4afc('0xed')]({'raw':!![]});}})[_0x4afc('0x12')](function(_0x10a4b0){if(_0x56eb0a){var _0x32af65=[];if(_0x10a4b0){_0x2a827d=_0x10a4b0;if(_0x2a827d[_0x4afc('0x49')]){for(var _0x1f2cc9=0x0;_0x1f2cc9<_0x2a827d[_0x4afc('0x49')];_0x1f2cc9++){_0x32af65[_0x4afc('0x44')]({'membername':_0x56eb0a[_0x4afc('0x36')],'UserId':_0x56eb0a['id'],'queue_name':_0x2a827d[_0x1f2cc9][_0x4afc('0x36')],'VoiceQueueId':_0x2a827d[_0x1f2cc9]['id'],'interface':_0x3a85ae,'paused':_0x56eb0a[_0x4afc('0x97')]||![],'penalty':_0x2a827d[_0x1f2cc9][_0x4afc('0xee')]||0x0});}return BPromise['each'](_0x32af65,function(_0x17576c){return db[_0x4afc('0xa7')][_0x4afc('0xef')](_0x17576c);});}}}})[_0x4afc('0x12')](function(){if(_0x56eb0a){return db[_0x4afc('0xf0')][_0x4afc('0xd0')]({'where':{'membername':_0x56eb0a[_0x4afc('0x36')],'exitAt':null}});}})[_0x4afc('0x12')](function(_0xe7ba1f){if(_0x56eb0a){var _0x1df825=[];_0xe7ba1f[_0x4afc('0xf1')](function(_0x30af13){_0x1df825['push'](_0x30af13[_0x4afc('0x23')]({'exitAt':moment()[_0x4afc('0xa5')](_0x4afc('0xf2'))}));});return BPromise[_0x4afc('0x4f')](_0x1df825);}})[_0x4afc('0x12')](function(){if(_0x56eb0a){var _0x4eeed2=[];var _0x357d47=[];var _0x3ac087=utils['getChannels']();var _0x435d5c={'membername':_0x56eb0a[_0x4afc('0x36')],'interface':_0x3a85ae,'enterAt':moment()[_0x4afc('0xa5')](_0x4afc('0xf2')),'role':_0x56eb0a[_0x4afc('0x26')],'internal':_0x56eb0a[_0x4afc('0x63')]};_0x3ac087[_0x4afc('0xf1')](function(_0x33d0e2){_0x4eeed2[_0x4afc('0x44')](_['merge']({'channel':_0x33d0e2,'type':'LOGIN','data1':_0x2def3d[_0x4afc('0x5a')][_0x4afc('0xf3')],'data2':_0x3a85ae},_0x435d5c));if(_0x56eb0a['loginInPause']){_0x357d47['push'](_[_0x4afc('0x57')]({'channel':_0x33d0e2,'type':_0x4afc('0xf4'),'data1':_0x4afc('0xf5')},_0x435d5c));}});return db[_0x4afc('0xf0')][_0x4afc('0x84')](_0x4eeed2[_0x4afc('0xf6')](_0x357d47),{'individualHooks':!![]});}})[_0x4afc('0x12')](function(){if(_0x56eb0a){return _0x56eb0a[_0x4afc('0x23')]({'online':!![],'lastLoginAt':moment()['format'](_0x4afc('0xf2')),'voicePause':_0x56eb0a[_0x4afc('0x97')]||![],'mailPause':_0x56eb0a[_0x4afc('0x97')]||![],'chatPause':_0x56eb0a['loginInPause']||![],'faxPause':_0x56eb0a['loginInPause']||![],'smsPause':_0x56eb0a[_0x4afc('0x97')]||![],'openchannelPause':_0x56eb0a['loginInPause']||![],'whatsappPause':_0x56eb0a[_0x4afc('0x97')]||![],'pauseType':_0x56eb0a[_0x4afc('0x97')]?_0x4afc('0xf5'):null,'interface':_0x3a85ae,'lastPauseAt':moment()[_0x4afc('0xa5')](_0x4afc('0xf2'))});}})[_0x4afc('0x12')](function(_0x58b218){if(_0x2def3d[_0x4afc('0xf7')]){return _0x3d8385();}else{return BPromise[_0x4afc('0xf8')](_0x58b218)[_0x4afc('0x12')](respondWithResult(_0x5a5624,null));}})[_0x4afc('0x1b')](handleError(_0x5a5624,null));};exports[_0x4afc('0xf9')]=function(_0x2b40c0,_0x46310c){var _0x5f22db;return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x2b40c0['params']['id'],'role':_0x4afc('0x2b')},'attributes':['id','name',_0x4afc('0x26')]})[_0x4afc('0x12')](handleEntityNotFound(_0x46310c,null))[_0x4afc('0x12')](function(_0x40cc7b){if(_0x40cc7b){_0x5f22db=_0x40cc7b;return db[_0x4afc('0xa7')][_0x4afc('0x24')]({'where':{'membername':_0x5f22db[_0x4afc('0x36')]},'individualHooks':!![]});}})[_0x4afc('0x12')](function(){return db[_0x4afc('0xf0')]['findAll']({'where':{'membername':_0x5f22db[_0x4afc('0x36')],'exitAt':null}});})[_0x4afc('0x12')](function(_0x3a160a){var _0xb43e79=[];_0x3a160a['forEach'](function(_0x1303da){_0xb43e79[_0x4afc('0x44')](_0x1303da[_0x4afc('0x23')]({'exitAt':moment()[_0x4afc('0xa5')](_0x4afc('0xf2'))}));});return BPromise[_0x4afc('0x4f')](_0xb43e79);})[_0x4afc('0x12')](function(){return _0x5f22db['update']({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![],'interface':null});})['then'](respondWithResult(_0x46310c,null))[_0x4afc('0x1b')](handleError(_0x46310c,null));};exports[_0x4afc('0xfa')]=function(_0x311bb1,_0x39a6c9){var _0x4baa3f;return db[_0x4afc('0xa7')][_0x4afc('0x23')]({'paused':0x1},{'where':{'UserId':_0x311bb1['params']['id']},'individualHooks':!![]})[_0x4afc('0x12')](function(){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x311bb1['params']['id'],'role':_0x4afc('0x2b')},'attributes':['id',_0x4afc('0x36'),_0x4afc('0x26'),_0x4afc('0x63'),_0x4afc('0x99')]});})['then'](handleEntityNotFound(_0x39a6c9,null))['then'](function(_0xdf708b){if(_0xdf708b){_0x4baa3f=_0xdf708b;return respondWithRpcPromise(_0x4afc('0xfb'),_0x4afc('0xfa'),{'id':_0x4baa3f['id'],'name':_0x4baa3f[_0x4afc('0x36')],'pause':!![]});}})[_0x4afc('0x12')](function(){if(_0x4baa3f){return db[_0x4afc('0xf0')][_0x4afc('0xd0')]({'where':{'membername':_0x4baa3f[_0x4afc('0x36')],'type':_0x4afc('0xf4'),'exitAt':null}});}})[_0x4afc('0x12')](function(_0x3bf3be){if(_0x3bf3be[_0x4afc('0x49')]){var _0x10678f=moment()['format'](_0x4afc('0xf2'));for(var _0x28657e=0x0,_0x2623eb=_0x3bf3be[_0x4afc('0x49')];_0x28657e<_0x2623eb;_0x28657e++){_0x3bf3be[_0x28657e]['updateAttributes']({'exitAt':_0x10678f});}}})['then'](function(){var _0x30d57f=[];var _0x2f7637=utils[_0x4afc('0xfc')]();_0x2f7637[_0x4afc('0xf1')](function(_0x29a4e3){_0x30d57f['push']({'channel':_0x29a4e3,'membername':_0x4baa3f[_0x4afc('0x36')],'interface':_[_0x4afc('0x64')](_0x4baa3f['interface'])?util[_0x4afc('0xa5')](_0x4afc('0xa6'),_0x4baa3f[_0x4afc('0x36')]):_0x4baa3f['interface'],'type':_0x4afc('0xf4'),'enterAt':moment()[_0x4afc('0xa5')](_0x4afc('0xf2')),'data1':_0x311bb1[_0x4afc('0x5a')][_0x4afc('0x3b')]||'DEFAULT\x20PAUSE','role':_0x4baa3f[_0x4afc('0x26')],'internal':_0x4baa3f[_0x4afc('0x63')]});});return db[_0x4afc('0xf0')][_0x4afc('0x84')](_0x30d57f,{'individualHooks':!![]});})[_0x4afc('0x12')](function(){return _0x4baa3f[_0x4afc('0x23')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'whatsappPause':!![],'openchannelPause':!![],'pauseType':_0x311bb1[_0x4afc('0x5a')][_0x4afc('0x3b')]||_0x4afc('0xfd'),'lastPauseAt':moment()['format'](_0x4afc('0xf2'))});})[_0x4afc('0x12')](respondWithResult(_0x39a6c9,null))[_0x4afc('0x1b')](handleError(_0x39a6c9,null));};exports[_0x4afc('0xfe')]=function(_0x397064,_0x133048){var _0x4d1783;return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x397064[_0x4afc('0x50')]['id']},'attributes':['id',_0x4afc('0x36'),'role',_0x4afc('0x98'),_0x4afc('0xff'),_0x4afc('0x100'),_0x4afc('0x101'),_0x4afc('0x102'),_0x4afc('0x103'),_0x4afc('0x104'),_0x4afc('0x105'),_0x4afc('0x106')]})[_0x4afc('0x12')](handleEntityNotFound(_0x133048,null))[_0x4afc('0x12')](function(_0x130820){if(_0x130820){_0x4d1783=_0x130820;if(_0x397064['body']['channel']&&!utils[_0x4afc('0x9a')](_0x397064[_0x4afc('0x5a')][_0x4afc('0x96')])){throw new db[(_0x4afc('0x8a'))]['ValidationError']('Unknown\x20channel');}switch(_0x397064[_0x4afc('0x5a')][_0x4afc('0x96')]){case'voice':return respondWithRpcPromise(_0x4afc('0xfb'),_0x4afc('0xfe'),{'id':_0x4d1783['id'],'name':_0x4d1783[_0x4afc('0x36')],'pause':![]})[_0x4afc('0x12')](function(){return db[_0x4afc('0xa7')]['update']({'paused':0x0},{'where':{'UserId':_0x4d1783['id']},'individualHooks':!![]});})[_0x4afc('0x12')](function(){return db[_0x4afc('0xf0')][_0x4afc('0x31')]({'where':{'channel':_0x397064[_0x4afc('0x5a')]['channel'],'membername':_0x4d1783['name'],'type':_0x4afc('0xf4'),'exitAt':null}});})[_0x4afc('0x12')](function(_0x47c223){if(_0x47c223){return _0x47c223['update']({'exitAt':moment()[_0x4afc('0xa5')](_0x4afc('0xf2')),'data2':_0x4afc('0x107')},{'individualHooks':!![]});}return null;})[_0x4afc('0x12')](function(){return _0x4d1783['update']({'voicePause':![]});});case _0x4afc('0x4e'):case _0x4afc('0x4a'):case'fax':case'sms':case'whatsapp':case'openchannel':return db[_0x4afc('0xf0')][_0x4afc('0x31')]({'where':{'channel':_0x397064[_0x4afc('0x5a')][_0x4afc('0x96')],'membername':_0x4d1783[_0x4afc('0x36')],'type':_0x4afc('0xf4'),'exitAt':null}})['then'](function(_0x14a78a){if(_0x14a78a){return _0x14a78a['update']({'exitAt':moment()[_0x4afc('0xa5')](_0x4afc('0xf2')),'data2':'manual'},{'individualHooks':!![]});}return null;})[_0x4afc('0x12')](function(){var _0x4fa182={};_[_0x4afc('0x108')](_0x4fa182,util[_0x4afc('0xa5')](_0x4afc('0x109'),_0x397064['body'][_0x4afc('0x96')],'Pause'),![]);return _0x4d1783[_0x4afc('0x23')](_0x4fa182);});default:return respondWithRpcPromise(_0x4afc('0xfb'),_0x4afc('0xfe'),{'id':_0x4d1783['id'],'name':_0x4d1783[_0x4afc('0x36')],'pause':![]})['then'](function(){return db[_0x4afc('0xa7')][_0x4afc('0x23')]({'paused':0x0},{'where':{'UserId':_0x4d1783['id']}});})['then'](function(){return db[_0x4afc('0xf0')][_0x4afc('0xd0')]({'where':{'membername':_0x4d1783[_0x4afc('0x36')],'type':_0x4afc('0xf4'),'exitAt':null}});})[_0x4afc('0x12')](function(_0x3876fc){var _0x4e5371=[];_0x3876fc['forEach'](function(_0x382ad2){_0x4e5371[_0x4afc('0x44')](_0x382ad2[_0x4afc('0x23')]({'exitAt':moment()[_0x4afc('0xa5')](_0x4afc('0xf2')),'data2':_0x4afc('0x107')}));});return BPromise[_0x4afc('0x4f')](_0x4e5371);})['then'](function(){return _0x4d1783[_0x4afc('0x23')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'whatsappPause':![],'openchannelPause':![]});});}}})[_0x4afc('0x12')](respondWithResult(_0x133048,null))[_0x4afc('0x1b')](handleError(_0x133048,null));};exports[_0x4afc('0x10a')]=function(_0x58cc51,_0x2d1ee1){var _0x3e9536={};var _0x46b2e7={};var _0x9c6534;var _0x3fab9e;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x58cc51[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x2d1ee1,null))[_0x4afc('0x12')](function(_0x4f487e){if(_0x4f487e){_0x9c6534=_0x4f487e;_0x46b2e7[_0x4afc('0x51')]=_[_0x4afc('0x53')](db[_0x4afc('0x10b')][_0x4afc('0x39')]);_0x46b2e7[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x58cc51[_0x4afc('0x46')]);_0x46b2e7[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x46b2e7[_0x4afc('0x51')],_0x46b2e7[_0x4afc('0x46')]);_0x3e9536[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x46b2e7[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0x58cc51['query'][_0x4afc('0x56')]));_0x3e9536['attributes']=_0x3e9536[_0x4afc('0x43')]['length']?_0x3e9536[_0x4afc('0x43')]:_0x46b2e7[_0x4afc('0x51')];_0x3e9536[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x58cc51['query']['sort']);_0x3e9536[_0x4afc('0x40')]=qs['filters'](_[_0x4afc('0xc5')](_0x58cc51[_0x4afc('0x46')],_0x46b2e7[_0x4afc('0x54')]));if(_0x58cc51[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x3e9536[_0x4afc('0x40')]=_['merge'](_0x3e9536[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0x3e9536[_0x4afc('0x43')],function(_0x355e67){var _0x43faa4={};_0x43faa4[_0x355e67]={'$like':'%'+_0x58cc51[_0x4afc('0x46')]['filter']+'%'};return _0x43faa4;})});}_0x3e9536=_[_0x4afc('0x57')]({},_0x3e9536,_0x58cc51[_0x4afc('0x58')]);return _0x9c6534['getTeams'](_0x3e9536);}})['then'](function(_0x3a2661){if(_0x3a2661){_0x3fab9e=_0x3a2661[_0x4afc('0x49')];if(!_0x58cc51['query'][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0x3e9536[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x58cc51[_0x4afc('0x46')]['limit']);_0x3e9536[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x58cc51[_0x4afc('0x46')][_0x4afc('0x1e')]);}return _0x9c6534[_0x4afc('0x10a')](_0x3e9536);}})[_0x4afc('0x12')](function(_0x5edc1c){if(_0x5edc1c){return _0x5edc1c?{'count':_0x3fab9e,'rows':_0x5edc1c}:null;}})[_0x4afc('0x12')](respondWithResult(_0x2d1ee1,null))[_0x4afc('0x1b')](handleError(_0x2d1ee1,null));};exports['addTeams']=function(_0x5d44c7,_0x4b70cb){return db['User']['find']({'where':{'id':_0x5d44c7[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x4b70cb,null))[_0x4afc('0x12')](function(_0xa20838){if(_0xa20838){var _0x4f2947=_0xa20838[_0x4afc('0x25')]({'plain':!![]});return _0xa20838[_0x4afc('0x10c')](_0x5d44c7[_0x4afc('0x5a')][_0x4afc('0x5d')],_[_0x4afc('0x5e')](_0x5d44c7['body'],[_0x4afc('0x5d'),'id'])||{})[_0x4afc('0x12')](function(){for(var _0x332056=0x0;_0x332056<_0x5d44c7['body']['ids'][_0x4afc('0x49')];_0x332056++){var _0x199fd8=[];var _0xcbf49d={};db[_0x4afc('0x10b')][_0x4afc('0x90')]({'where':{'id':_0x5d44c7[_0x4afc('0x5a')][_0x4afc('0x5d')][_0x332056]}})['then'](function(_0x49f682){_0xcbf49d=_0x49f682['dataValues'];_0x199fd8[_0x4afc('0x44')](_0x49f682['getVoiceQueues']()['then'](function(_0x4656a0){for(var _0x464ad8=0x0;_0x464ad8<_0x4656a0[_0x4afc('0x49')];_0x464ad8++){_0x4656a0[_0x464ad8]['setDataValue'](_0x4afc('0x96'),_0x4afc('0x10d'));}return _0x4656a0;}));_0x199fd8[_0x4afc('0x44')](_0x49f682[_0x4afc('0x10e')]()[_0x4afc('0x12')](function(_0x16a434){for(var _0x422da2=0x0;_0x422da2<_0x16a434[_0x4afc('0x49')];_0x422da2++){_0x16a434[_0x422da2][_0x4afc('0x10f')]('channel',_0x4afc('0x110'));}return _0x16a434;}));_0x199fd8['push'](_0x49f682[_0x4afc('0x111')]()['then'](function(_0x2f9b54){for(var _0x2d4e0e=0x0;_0x2d4e0e<_0x2f9b54[_0x4afc('0x49')];_0x2d4e0e++){_0x2f9b54[_0x2d4e0e][_0x4afc('0x10f')](_0x4afc('0x96'),_0x4afc('0x112'));}return _0x2f9b54;}));_0x199fd8['push'](_0x49f682[_0x4afc('0x113')]()[_0x4afc('0x12')](function(_0x5b4f52){for(var _0x5af786=0x0;_0x5af786<_0x5b4f52['length'];_0x5af786++){_0x5b4f52[_0x5af786][_0x4afc('0x10f')](_0x4afc('0x96'),_0x4afc('0x114'));}return _0x5b4f52;}));_0x199fd8[_0x4afc('0x44')](_0x49f682[_0x4afc('0x115')]()[_0x4afc('0x12')](function(_0x25fc47){for(var _0x5da18=0x0;_0x5da18<_0x25fc47['length'];_0x5da18++){_0x25fc47[_0x5da18][_0x4afc('0x10f')](_0x4afc('0x96'),_0x4afc('0x116'));}return _0x25fc47;}));_0x199fd8[_0x4afc('0x44')](_0x49f682[_0x4afc('0x117')]()[_0x4afc('0x12')](function(_0x1890f4){for(var _0x1e1ddd=0x0;_0x1e1ddd<_0x1890f4[_0x4afc('0x49')];_0x1e1ddd++){_0x1890f4[_0x1e1ddd]['setDataValue'](_0x4afc('0x96'),_0x4afc('0x118'));}return _0x1890f4;}));_0x199fd8[_0x4afc('0x44')](_0x49f682[_0x4afc('0x119')]()[_0x4afc('0x12')](function(_0x24e508){for(var _0xc5b2ac=0x0;_0xc5b2ac<_0x24e508[_0x4afc('0x49')];_0xc5b2ac++){_0x24e508[_0xc5b2ac][_0x4afc('0x10f')](_0x4afc('0x96'),_0x4afc('0x11a'));}return _0x24e508;}));return BPromise['all'](_0x199fd8);})[_0x4afc('0x12')](function(_0x42e26d){var _0x429e5c=_[_0x4afc('0x11b')](_0x42e26d);_0x199fd8=[];return db[_0x4afc('0x66')][_0x4afc('0x11c')](function(_0x581d3a){for(var _0x318da6=0x0;_0x318da6<_0x429e5c[_0x4afc('0x49')];_0x318da6++){_0x199fd8['push'](_0x429e5c[_0x318da6][_0x4afc('0x11d')](_0x4f2947['id']),{'transaction':_0x581d3a});}return BPromise[_0x4afc('0x4f')](_0x199fd8)['then'](function(){if(_0x4f2947[_0x4afc('0xa4')]){return BPromise[_0x4afc('0x86')](_[_0x4afc('0x2e')](_0x429e5c,function(_0x68340f){return _0x68340f[_0x4afc('0x11e')](_0x4afc('0x96'))===_0x4afc('0x10d');}),function(_0x14e2df){return db['UserVoiceQueueRt'][_0x4afc('0xef')]({'membername':_0x4f2947[_0x4afc('0x36')],'UserId':_0x4f2947['id'],'queue_name':_0x14e2df[_0x4afc('0x36')],'VoiceQueueId':_0x14e2df['id'],'interface':_[_0x4afc('0x64')](_0x4f2947['interface'])?util[_0x4afc('0xa5')](_0x4afc('0xa6'),_0x4f2947['name']):_0x4f2947['interface'],'paused':_0x4f2947[_0x4afc('0x98')]||![],'penalty':_0x4f2947[_0x4afc('0x9e')]},{'transaction':_0x581d3a});});}else{return;}})[_0x4afc('0x12')](function(){for(var _0x12bb08=0x0;_0x12bb08<_0x429e5c[_0x4afc('0x49')];_0x12bb08++){var _0x30328e=_0x429e5c[_0x12bb08][_0x4afc('0x11e')](_0x4afc('0x96'));var _0x6039e0=_0x30328e+'QueueId';socket['emit'](_0x4afc('0x29')+_0x30328e+_0x4afc('0xa2'),{'UserId':_0x4f2947['id'],['queueField']:_0x429e5c[_0x12bb08]['id']});}});});})[_0x4afc('0x12')](function(){db[_0x4afc('0x11f')][_0x4afc('0x90')]({'where':{'teamId':_0xcbf49d['id']}})['then'](function(_0x70521a){if(_0x70521a){db[_0x4afc('0x120')][_0x4afc('0x79')]({'UserId':_0x5d44c7['params']['id'],'VoicePrefixId':_0x70521a['VoicePrefixId']});}});});}});}})[_0x4afc('0x12')](respondWithStatusCode(_0x4b70cb,null))[_0x4afc('0x1b')](handleError(_0x4b70cb,null));};exports[_0x4afc('0x121')]=function(_0x3bcd5a,_0x269978){return db['User']['findOne']({'where':{'id':_0x3bcd5a[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0x269978,null))[_0x4afc('0x12')](function(_0x54ea77){if(_0x54ea77){var _0x15d7e0=_0x54ea77[_0x4afc('0x25')]({'plain':!![]});var _0x3a2047=_0x3bcd5a['query'][_0x4afc('0x5d')];return _0x54ea77[_0x4afc('0x121')](_0x3a2047)[_0x4afc('0x12')](function(){for(var _0x5b83fb=0x0;_0x5b83fb<_0x3a2047[_0x4afc('0x49')];_0x5b83fb++){var _0x17f318=[];var _0x1bcc01={};db[_0x4afc('0x10b')]['findOne']({'where':{'id':_0x3a2047[_0x5b83fb]}})[_0x4afc('0x12')](function(_0x5e0eff){_0x1bcc01=_0x5e0eff['dataValues'];_0x17f318['push'](_0x5e0eff[_0x4afc('0xed')]()[_0x4afc('0x12')](function(_0xdf6808){for(var _0x32a48f=0x0;_0x32a48f<_0xdf6808['length'];_0x32a48f++){_0xdf6808[_0x32a48f][_0x4afc('0x10f')](_0x4afc('0x96'),'Voice');}return _0xdf6808;}));_0x17f318[_0x4afc('0x44')](_0x5e0eff[_0x4afc('0x10e')]()[_0x4afc('0x12')](function(_0x5bdb93){for(var _0x50abae=0x0;_0x50abae<_0x5bdb93['length'];_0x50abae++){_0x5bdb93[_0x50abae][_0x4afc('0x10f')]('channel',_0x4afc('0x110'));}return _0x5bdb93;}));_0x17f318[_0x4afc('0x44')](_0x5e0eff['getMailQueues']()[_0x4afc('0x12')](function(_0x189d77){for(var _0x4fa7b7=0x0;_0x4fa7b7<_0x189d77[_0x4afc('0x49')];_0x4fa7b7++){_0x189d77[_0x4fa7b7]['setDataValue'](_0x4afc('0x96'),'Mail');}return _0x189d77;}));_0x17f318[_0x4afc('0x44')](_0x5e0eff[_0x4afc('0x113')]()[_0x4afc('0x12')](function(_0xe0435d){for(var _0x1d6cf4=0x0;_0x1d6cf4<_0xe0435d[_0x4afc('0x49')];_0x1d6cf4++){_0xe0435d[_0x1d6cf4]['setDataValue'](_0x4afc('0x96'),_0x4afc('0x114'));}return _0xe0435d;}));_0x17f318[_0x4afc('0x44')](_0x5e0eff[_0x4afc('0x115')]()[_0x4afc('0x12')](function(_0x4cfdc9){for(var _0x50cc37=0x0;_0x50cc37<_0x4cfdc9['length'];_0x50cc37++){_0x4cfdc9[_0x50cc37][_0x4afc('0x10f')]('channel',_0x4afc('0x116'));}return _0x4cfdc9;}));_0x17f318[_0x4afc('0x44')](_0x5e0eff[_0x4afc('0x117')]()[_0x4afc('0x12')](function(_0x550f47){for(var _0x1d33b7=0x0;_0x1d33b7<_0x550f47[_0x4afc('0x49')];_0x1d33b7++){_0x550f47[_0x1d33b7][_0x4afc('0x10f')]('channel',_0x4afc('0x118'));}return _0x550f47;}));_0x17f318[_0x4afc('0x44')](_0x5e0eff[_0x4afc('0x119')]()[_0x4afc('0x12')](function(_0x5ee897){for(var _0x5c6313=0x0;_0x5c6313<_0x5ee897[_0x4afc('0x49')];_0x5c6313++){_0x5ee897[_0x5c6313][_0x4afc('0x10f')](_0x4afc('0x96'),'Openchannel');}return _0x5ee897;}));return BPromise['all'](_0x17f318);})[_0x4afc('0x12')](function(_0x7611ab){var _0x3efdfe=_[_0x4afc('0x11b')](_0x7611ab);_0x17f318=[];return db[_0x4afc('0x66')][_0x4afc('0x11c')](function(_0x4742d8){for(var _0x389a20=0x0;_0x389a20<_0x3efdfe[_0x4afc('0x49')];_0x389a20++){_0x17f318[_0x4afc('0x44')](_0x3efdfe[_0x389a20][_0x4afc('0x122')](_0x15d7e0['id']),{'transaction':_0x4742d8});}return BPromise[_0x4afc('0x4f')](_0x17f318)[_0x4afc('0x12')](function(){if(_0x15d7e0[_0x4afc('0xa4')]){return BPromise['each'](_['filter'](_0x3efdfe,function(_0x572619){return _0x572619[_0x4afc('0x11e')](_0x4afc('0x96'))==='Voice';}),function(_0x689130){return db[_0x4afc('0xa7')][_0x4afc('0x24')]({'where':{'VoiceQueueId':_0x689130['id'],'UserId':_0x15d7e0['id']},'transaction':_0x4742d8});});}else{return;}})[_0x4afc('0x12')](function(){db[_0x4afc('0x11f')]['findOne']({'where':{'teamId':_0x1bcc01['id']}})[_0x4afc('0x12')](function(_0x26626a){if(_0x26626a){return db[_0x4afc('0x120')]['destroy']({'where':{'UserId':_0x15d7e0['id'],'VoicePrefixId':_0x26626a[_0x4afc('0x4c')][_0x4afc('0x123')]}});}});})['then'](function(){for(var _0x532d6a=0x0;_0x532d6a<_0x3efdfe['length'];_0x532d6a++){var _0x1de888=_0x3efdfe[_0x532d6a][_0x4afc('0x11e')](_0x4afc('0x96'));var _0x353b1f=_0x1de888+_0x4afc('0xa0');socket[_0x4afc('0xa1')]('user'+_0x1de888+'Queue:remove',{'UserId':_0x15d7e0['id'],['queueField']:_0x3efdfe[_0x532d6a]['id']});}});});});}});}})[_0x4afc('0x12')](respondWithStatusCode(_0x269978,null))['catch'](handleError(_0x269978,null));};exports[_0x4afc('0x124')]=function(_0xb0771d,_0x10b3bf){var _0xbde174={};var _0xedf1fb={};var _0x340b7e;var _0x4389c1;return db[_0x4afc('0x38')]['findOne']({'where':{'id':_0xb0771d['params']['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x10b3bf,null))['then'](function(_0x52b5ae){if(_0x52b5ae){_0x340b7e=_0x52b5ae;_0xedf1fb[_0x4afc('0x51')]=_[_0x4afc('0x53')](db['CmList'][_0x4afc('0x39')]);_0xedf1fb[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0xb0771d['query']);_0xedf1fb[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0xedf1fb[_0x4afc('0x51')],_0xedf1fb['query']);_0xbde174[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0xedf1fb[_0x4afc('0x51')],qs['fields'](_0xb0771d[_0x4afc('0x46')][_0x4afc('0x56')]));_0xbde174[_0x4afc('0x43')]=_0xbde174[_0x4afc('0x43')]['length']?_0xbde174[_0x4afc('0x43')]:_0xedf1fb['model'];_0xbde174[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0xb0771d[_0x4afc('0x46')]['sort']);_0xbde174[_0x4afc('0x40')]=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0xb0771d[_0x4afc('0x46')],_0xedf1fb[_0x4afc('0x54')]));if(_0xb0771d[_0x4afc('0x46')][_0x4afc('0x2e')]){_0xbde174[_0x4afc('0x40')]=_['merge'](_0xbde174[_0x4afc('0x40')],{'$or':_['map'](_0xbde174[_0x4afc('0x43')],function(_0x2b4938){var _0x243f28={};_0x243f28[_0x2b4938]={'$like':'%'+_0xb0771d['query'][_0x4afc('0x2e')]+'%'};return _0x243f28;})});}_0xbde174=_['merge']({},_0xbde174,_0xb0771d[_0x4afc('0x58')]);return _0x340b7e[_0x4afc('0x124')](_0xbde174);}})['then'](function(_0x5143cc){if(_0x5143cc){_0x4389c1=_0x5143cc[_0x4afc('0x49')];if(!_0xb0771d[_0x4afc('0x46')][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0xbde174[_0x4afc('0x20')]=qs['limit'](_0xb0771d[_0x4afc('0x46')][_0x4afc('0x20')]);_0xbde174[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0xb0771d['query'][_0x4afc('0x1e')]);}return _0x340b7e[_0x4afc('0x124')](_0xbde174);}})['then'](function(_0x47e847){if(_0x47e847){return _0x47e847?{'count':_0x4389c1,'rows':_0x47e847}:null;}})[_0x4afc('0x12')](respondWithResult(_0x10b3bf,null))['catch'](handleError(_0x10b3bf,null));};exports[_0x4afc('0x125')]=function(_0x537f54,_0xba85ff){var _0x499838={};var _0x478ca6={};var _0x3a52c6;var _0x2cf812;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x537f54[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0xba85ff,null))[_0x4afc('0x12')](function(_0x37924d){if(_0x37924d){_0x3a52c6=_0x37924d;_0x478ca6[_0x4afc('0x51')]=_[_0x4afc('0x53')](db[_0x4afc('0x38')]['rawAttributes']);_0x478ca6[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x537f54[_0x4afc('0x46')]);_0x478ca6[_0x4afc('0x54')]=_['intersection'](_0x478ca6[_0x4afc('0x51')],_0x478ca6[_0x4afc('0x46')]);_0x499838['attributes']=_['intersection'](_0x478ca6['model'],qs[_0x4afc('0x56')](_0x537f54[_0x4afc('0x46')][_0x4afc('0x56')]));_0x499838[_0x4afc('0x43')]=_0x499838[_0x4afc('0x43')][_0x4afc('0x49')]?_0x499838[_0x4afc('0x43')]:_0x478ca6[_0x4afc('0x51')];_0x499838['order']=qs[_0x4afc('0xc4')](_0x537f54[_0x4afc('0x46')]['sort']);_0x499838['where']=qs['filters'](_[_0x4afc('0xc5')](_0x537f54[_0x4afc('0x46')],_0x478ca6['filters']));if(_0x537f54[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x499838[_0x4afc('0x40')]=_['merge'](_0x499838[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0x499838[_0x4afc('0x43')],function(_0x5513c3){var _0x4c94a1={};_0x4c94a1[_0x5513c3]={'$like':'%'+_0x537f54[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0x4c94a1;})});}_0x499838['model']=db['User'];_0x499838['as']=_0x4afc('0x2a');_0x499838=_[_0x4afc('0x57')]({},_0x499838,_0x537f54[_0x4afc('0x58')]);return _0x3a52c6[_0x4afc('0xed')]({'include':[_0x499838]});}})[_0x4afc('0x12')](function(_0x3c9d31){if(_0x3c9d31){var _0x5cabb8={},_0x422523=[],_0x1b0af7=0x0;for(var _0x2a597f=0x0;_0x2a597f<_0x3c9d31[_0x4afc('0x49')];_0x2a597f+=0x1){for(var _0x298453=0x0,_0x110424;_0x298453<_0x3c9d31[_0x2a597f]['Agents'][_0x4afc('0x49')];_0x298453+=0x1){_0x110424=_0x3c9d31[_0x2a597f][_0x4afc('0x2a')][_0x298453][_0x4afc('0x25')]({'plain':!![]});_0x5cabb8[_0x110424['id']]=_0x110424;}}_0x5cabb8=_[_0x4afc('0x126')](_0x5cabb8);for(var _0x59636d=qs[_0x4afc('0x1e')](_0x537f54[_0x4afc('0x46')][_0x4afc('0x1e')]);_0x59636d<_0x5cabb8[_0x4afc('0x49')]&&_0x422523[_0x4afc('0x49')]<qs['limit'](_0x537f54['query'][_0x4afc('0x20')]);_0x59636d+=0x1){if(_0x5cabb8[_0x59636d]){_0x422523['push'](_0x5cabb8[_0x59636d]);}}return{'count':_0x5cabb8[_0x4afc('0x49')],'rows':_0x422523};}})[_0x4afc('0x12')](respondWithResult(_0xba85ff,null))[_0x4afc('0x1b')](handleError(_0xba85ff,null));};exports[_0x4afc('0x24')]=function(_0x58b146,_0x3b5e42){if(_0x58b146[_0x4afc('0x29')]['id']==_0x58b146[_0x4afc('0x50')]['id']){return _0x3b5e42[_0x4afc('0x1d')](0x1f4)[_0x4afc('0x127')]({'message':_0x4afc('0x128')});}return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x58b146[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x3b5e42,null))[_0x4afc('0x12')](removeEntity(_0x3b5e42,null))[_0x4afc('0x1b')](handleError(_0x3b5e42,null));};exports[_0x4afc('0x129')]=function(_0x1270c9,_0xb5cf48){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x1270c9[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0xb5cf48,null))[_0x4afc('0x12')](function(_0x4fcbf4){if(_0x4fcbf4){return _0x4fcbf4['addChatInteractions'](_0x1270c9[_0x4afc('0x5a')]['ids'],_[_0x4afc('0x5e')](_0x1270c9[_0x4afc('0x5a')],[_0x4afc('0x5d'),'id'])||{})['spread'](function(){for(var _0xee6f3=0x0;_0xee6f3<_0x1270c9[_0x4afc('0x5a')][_0x4afc('0x5d')][_0x4afc('0x49')];_0xee6f3+=0x1){socket[_0x4afc('0xa1')](_0x4afc('0x12a'),{'ChatInteractionId':Number(_0x1270c9[_0x4afc('0x5a')][_0x4afc('0x5d')][_0xee6f3]),'UserId':Number(_0x1270c9[_0x4afc('0x50')]['id'])});}return _0x1270c9[_0x4afc('0x5a')][_0x4afc('0x5d')];});}})[_0x4afc('0x12')](respondWithResult(_0xb5cf48,null))[_0x4afc('0x1b')](handleError(_0xb5cf48,null));};exports['removeChatInteractions']=function(_0x761f36,_0x3b028c){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x761f36[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0x3b028c,null))[_0x4afc('0x12')](function(_0x2ba979){if(_0x2ba979){return _0x2ba979[_0x4afc('0x12b')](_0x761f36[_0x4afc('0x46')][_0x4afc('0x5d')])[_0x4afc('0x12')](function(){if(_['isArray'](_0x761f36[_0x4afc('0x46')]['ids'])){for(var _0x24b9ac=0x0;_0x24b9ac<_0x761f36[_0x4afc('0x46')][_0x4afc('0x5d')][_0x4afc('0x49')];_0x24b9ac+=0x1){socket[_0x4afc('0xa1')](_0x4afc('0x12c'),{'ChatInteractionId':Number(_0x761f36[_0x4afc('0x46')][_0x4afc('0x5d')][_0x24b9ac]),'UserId':Number(_0x761f36[_0x4afc('0x50')]['id'])});}}else{socket['emit'](_0x4afc('0x12c'),{'ChatInteractionId':Number(_0x761f36['query'][_0x4afc('0x5d')]),'UserId':Number(_0x761f36[_0x4afc('0x50')]['id'])});}});}})[_0x4afc('0x12')](respondWithStatusCode(_0x3b028c,null))['catch'](handleError(_0x3b028c,null));};exports['addMailInteractions']=function(_0x16124c,_0x4639ee){return db['User'][_0x4afc('0x31')]({'where':{'id':_0x16124c[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0x4639ee,null))[_0x4afc('0x12')](function(_0xe6b27c){if(_0xe6b27c){return _0xe6b27c['addMailInteractions'](_0x16124c[_0x4afc('0x5a')][_0x4afc('0x5d')],_[_0x4afc('0x5e')](_0x16124c[_0x4afc('0x5a')],[_0x4afc('0x5d'),'id'])||{})[_0x4afc('0x9f')](function(){for(var _0x351edb=0x0;_0x351edb<_0x16124c['body']['ids'][_0x4afc('0x49')];_0x351edb+=0x1){socket['emit'](_0x4afc('0x12d'),{'MailInteractionId':Number(_0x16124c[_0x4afc('0x5a')][_0x4afc('0x5d')][_0x351edb]),'UserId':Number(_0x16124c[_0x4afc('0x50')]['id'])});}return _0x16124c[_0x4afc('0x5a')][_0x4afc('0x5d')];});}})['then'](respondWithResult(_0x4639ee,null))['catch'](handleError(_0x4639ee,null));};exports[_0x4afc('0x12e')]=function(_0x5c65ae,_0x5fbae8){return db[_0x4afc('0x38')]['find']({'where':{'id':_0x5c65ae[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x5fbae8,null))[_0x4afc('0x12')](function(_0x7efc52){if(_0x7efc52){return _0x7efc52[_0x4afc('0x12e')](_0x5c65ae[_0x4afc('0x46')][_0x4afc('0x5d')])['then'](function(){if(_[_0x4afc('0xac')](_0x5c65ae[_0x4afc('0x46')][_0x4afc('0x5d')])){for(var _0x1b4109=0x0;_0x1b4109<_0x5c65ae[_0x4afc('0x46')]['ids'][_0x4afc('0x49')];_0x1b4109+=0x1){socket[_0x4afc('0xa1')](_0x4afc('0x12f'),{'MailInteractionId':Number(_0x5c65ae[_0x4afc('0x46')][_0x4afc('0x5d')][_0x1b4109]),'UserId':Number(_0x5c65ae[_0x4afc('0x50')]['id'])});}}else{socket[_0x4afc('0xa1')](_0x4afc('0x12f'),{'MailInteractionId':Number(_0x5c65ae[_0x4afc('0x46')][_0x4afc('0x5d')]),'UserId':Number(_0x5c65ae[_0x4afc('0x50')]['id'])});}});}})['then'](respondWithStatusCode(_0x5fbae8,null))[_0x4afc('0x1b')](handleError(_0x5fbae8,null));};exports[_0x4afc('0x130')]=function(_0x1c2610,_0xa92c5a){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x1c2610[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0xa92c5a,null))[_0x4afc('0x12')](function(_0x4676c4){if(_0x4676c4){return _0x4676c4[_0x4afc('0x130')](_0x1c2610[_0x4afc('0x5a')][_0x4afc('0x5d')],_['omit'](_0x1c2610[_0x4afc('0x5a')],[_0x4afc('0x5d'),'id'])||{})[_0x4afc('0x9f')](function(){for(var _0x561718=0x0;_0x561718<_0x1c2610[_0x4afc('0x5a')][_0x4afc('0x5d')][_0x4afc('0x49')];_0x561718+=0x1){socket['emit'](_0x4afc('0x131'),{'FaxInteractionId':Number(_0x1c2610[_0x4afc('0x5a')]['ids'][_0x561718]),'UserId':Number(_0x1c2610[_0x4afc('0x50')]['id'])});}return _0x1c2610[_0x4afc('0x5a')]['ids'];});}})[_0x4afc('0x12')](respondWithResult(_0xa92c5a,null))['catch'](handleError(_0xa92c5a,null));};exports['removeFaxInteractions']=function(_0x47d3e8,_0xa0c516){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x47d3e8[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0xa0c516,null))['then'](function(_0x38ec15){if(_0x38ec15){return _0x38ec15['removeFaxInteractions'](_0x47d3e8['query'][_0x4afc('0x5d')])[_0x4afc('0x12')](function(){if(_[_0x4afc('0xac')](_0x47d3e8['query'][_0x4afc('0x5d')])){for(var _0x4b5692=0x0;_0x4b5692<_0x47d3e8[_0x4afc('0x46')][_0x4afc('0x5d')]['length'];_0x4b5692+=0x1){socket['emit']('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x47d3e8['query'][_0x4afc('0x5d')][_0x4b5692]),'UserId':Number(_0x47d3e8[_0x4afc('0x50')]['id'])});}}else{socket[_0x4afc('0xa1')](_0x4afc('0x132'),{'FaxInteractionId':Number(_0x47d3e8['query'][_0x4afc('0x5d')]),'UserId':Number(_0x47d3e8[_0x4afc('0x50')]['id'])});}});}})[_0x4afc('0x12')](respondWithStatusCode(_0xa0c516,null))[_0x4afc('0x1b')](handleError(_0xa0c516,null));};exports[_0x4afc('0x133')]=function(_0x133a59,_0x2719ea){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x133a59[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x2719ea,null))[_0x4afc('0x12')](function(_0x4cc1f1){if(_0x4cc1f1){return _0x4cc1f1[_0x4afc('0x133')](_0x133a59[_0x4afc('0x5a')][_0x4afc('0x5d')],_['omit'](_0x133a59[_0x4afc('0x5a')],['ids','id'])||{})[_0x4afc('0x9f')](function(){for(var _0x18a0a5=0x0;_0x18a0a5<_0x133a59['body'][_0x4afc('0x5d')][_0x4afc('0x49')];_0x18a0a5+=0x1){socket['emit'](_0x4afc('0x134'),{'SmsInteractionId':Number(_0x133a59[_0x4afc('0x5a')][_0x4afc('0x5d')][_0x18a0a5]),'UserId':Number(_0x133a59[_0x4afc('0x50')]['id'])});}return _0x133a59[_0x4afc('0x5a')][_0x4afc('0x5d')];});}})['then'](respondWithResult(_0x2719ea,null))[_0x4afc('0x1b')](handleError(_0x2719ea,null));};exports[_0x4afc('0x135')]=function(_0x36aa3f,_0x14d944){return db[_0x4afc('0x38')]['find']({'where':{'id':_0x36aa3f[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x14d944,null))['then'](function(_0x5d244d){if(_0x5d244d){return _0x5d244d[_0x4afc('0x135')](_0x36aa3f['query'][_0x4afc('0x5d')])[_0x4afc('0x12')](function(){if(_[_0x4afc('0xac')](_0x36aa3f[_0x4afc('0x46')]['ids'])){for(var _0x2cfca9=0x0;_0x2cfca9<_0x36aa3f[_0x4afc('0x46')][_0x4afc('0x5d')][_0x4afc('0x49')];_0x2cfca9+=0x1){socket[_0x4afc('0xa1')](_0x4afc('0x136'),{'SmsInteractionId':Number(_0x36aa3f[_0x4afc('0x46')][_0x4afc('0x5d')][_0x2cfca9]),'UserId':Number(_0x36aa3f[_0x4afc('0x50')]['id'])});}}else{socket[_0x4afc('0xa1')](_0x4afc('0x136'),{'SmsInteractionId':Number(_0x36aa3f['query'][_0x4afc('0x5d')]),'UserId':Number(_0x36aa3f['params']['id'])});}});}})['then'](respondWithStatusCode(_0x14d944,null))[_0x4afc('0x1b')](handleError(_0x14d944,null));};exports[_0x4afc('0x137')]=function(_0x3eed6e,_0x26f349){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x3eed6e[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x26f349,null))['then'](function(_0x357940){if(_0x357940){return _0x357940[_0x4afc('0x137')](_0x3eed6e[_0x4afc('0x5a')][_0x4afc('0x5d')],_[_0x4afc('0x5e')](_0x3eed6e[_0x4afc('0x5a')],[_0x4afc('0x5d'),'id'])||{})[_0x4afc('0x9f')](function(){for(var _0x31bd83=0x0;_0x31bd83<_0x3eed6e['body'][_0x4afc('0x5d')][_0x4afc('0x49')];_0x31bd83+=0x1){socket['emit'](_0x4afc('0x138'),{'OpenchannelInteractionId':Number(_0x3eed6e[_0x4afc('0x5a')][_0x4afc('0x5d')][_0x31bd83]),'UserId':Number(_0x3eed6e[_0x4afc('0x50')]['id'])});}return _0x3eed6e[_0x4afc('0x5a')][_0x4afc('0x5d')];});}})['then'](respondWithResult(_0x26f349,null))[_0x4afc('0x1b')](handleError(_0x26f349,null));};exports[_0x4afc('0x139')]=function(_0x542b98,_0x3802a9){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x542b98[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x3802a9,null))[_0x4afc('0x12')](function(_0x326446){if(_0x326446){return _0x326446[_0x4afc('0x139')](_0x542b98[_0x4afc('0x46')][_0x4afc('0x5d')])[_0x4afc('0x12')](function(){if(_[_0x4afc('0xac')](_0x542b98[_0x4afc('0x46')][_0x4afc('0x5d')])){for(var _0x14add6=0x0;_0x14add6<_0x542b98[_0x4afc('0x46')][_0x4afc('0x5d')][_0x4afc('0x49')];_0x14add6+=0x1){socket[_0x4afc('0xa1')](_0x4afc('0x13a'),{'OpenchannelInteractionId':Number(_0x542b98[_0x4afc('0x46')][_0x4afc('0x5d')][_0x14add6]),'UserId':Number(_0x542b98['params']['id'])});}}else{socket['emit'](_0x4afc('0x13a'),{'OpenchannelInteractionId':Number(_0x542b98['query'][_0x4afc('0x5d')]),'UserId':Number(_0x542b98[_0x4afc('0x50')]['id'])});}});}})[_0x4afc('0x12')](respondWithStatusCode(_0x3802a9,null))['catch'](handleError(_0x3802a9,null));};exports['addWhatsappInteractions']=function(_0x5d7e56,_0x2d08a5){return db['User'][_0x4afc('0x31')]({'where':{'id':_0x5d7e56[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x2d08a5,null))[_0x4afc('0x12')](function(_0x3d89bf){if(_0x3d89bf){return _0x3d89bf[_0x4afc('0x13b')](_0x5d7e56[_0x4afc('0x5a')]['ids'],_['omit'](_0x5d7e56['body'],['ids','id'])||{})[_0x4afc('0x9f')](function(){for(var _0x2bb38d=0x0;_0x2bb38d<_0x5d7e56[_0x4afc('0x5a')][_0x4afc('0x5d')][_0x4afc('0x49')];_0x2bb38d+=0x1){socket[_0x4afc('0xa1')](_0x4afc('0x13c'),{'WhatsappInteractionId':Number(_0x5d7e56[_0x4afc('0x5a')][_0x4afc('0x5d')][_0x2bb38d]),'UserId':Number(_0x5d7e56[_0x4afc('0x50')]['id'])});}return _0x5d7e56['body'][_0x4afc('0x5d')];});}})[_0x4afc('0x12')](respondWithResult(_0x2d08a5,null))[_0x4afc('0x1b')](handleError(_0x2d08a5,null));};exports[_0x4afc('0x13d')]=function(_0xc503a9,_0x560769){return db['User'][_0x4afc('0x31')]({'where':{'id':_0xc503a9[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x560769,null))[_0x4afc('0x12')](function(_0x3226d3){if(_0x3226d3){return _0x3226d3[_0x4afc('0x13d')](_0xc503a9[_0x4afc('0x46')][_0x4afc('0x5d')]);}})['then'](respondWithStatusCode(_0x560769,null))[_0x4afc('0x1b')](handleError(_0x560769,null));};exports[_0x4afc('0x13e')]=function(_0x4119d7,_0x40dd10){var _0x2bf372={};var _0x523def={};var _0x5c593e;var _0x32e257;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x4119d7[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x40dd10,null))[_0x4afc('0x12')](function(_0x582495){if(_0x582495){_0x5c593e=_0x582495;_0x523def[_0x4afc('0x51')]=_[_0x4afc('0x53')](db[_0x4afc('0x13f')]['rawAttributes']);_0x523def[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x4119d7['query']);_0x523def[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x523def[_0x4afc('0x51')],_0x523def[_0x4afc('0x46')]);_0x2bf372[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x523def[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0x4119d7[_0x4afc('0x46')]['fields']));_0x2bf372['attributes']=_0x2bf372['attributes'][_0x4afc('0x49')]?_0x2bf372[_0x4afc('0x43')]:_0x523def[_0x4afc('0x51')];_0x2bf372[_0x4afc('0xc3')]=qs['sort'](_0x4119d7[_0x4afc('0x46')][_0x4afc('0xc4')]);_0x2bf372['where']=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0x4119d7[_0x4afc('0x46')],_0x523def[_0x4afc('0x54')]));if(_0x4119d7[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x2bf372[_0x4afc('0x40')]=_[_0x4afc('0x57')](_0x2bf372['where'],{'$or':_[_0x4afc('0x2f')](_0x2bf372[_0x4afc('0x43')],function(_0x30ebde){var _0x5b98b6={};_0x5b98b6[_0x30ebde]={'$like':'%'+_0x4119d7['query'][_0x4afc('0x2e')]+'%'};return _0x5b98b6;})});}_0x2bf372=_['merge']({},_0x2bf372,_0x4119d7[_0x4afc('0x58')]);return _0x5c593e[_0x4afc('0x13e')](_0x2bf372);}})['then'](function(_0x4ff346){if(_0x4ff346){_0x32e257=_0x4ff346['length'];if(!_0x4119d7[_0x4afc('0x46')][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0x2bf372[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x4119d7[_0x4afc('0x46')][_0x4afc('0x20')]);_0x2bf372['offset']=qs[_0x4afc('0x1e')](_0x4119d7['query'][_0x4afc('0x1e')]);}return _0x5c593e[_0x4afc('0x13e')](_0x2bf372);}})['then'](function(_0x22de5b){if(_0x22de5b){return _0x22de5b?{'count':_0x32e257,'rows':_0x22de5b}:null;}})['then'](respondWithResult(_0x40dd10,null))['catch'](handleError(_0x40dd10,null));};exports[_0x4afc('0x140')]=function(_0x293343,_0x42976b){var _0x5a69d9={};var _0x2274ee={};var _0x4b55b4;var _0x464841;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x293343[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x42976b,null))[_0x4afc('0x12')](function(_0xa3bb49){if(_0xa3bb49){_0x4b55b4=_0xa3bb49;_0x2274ee[_0x4afc('0x51')]=_[_0x4afc('0x53')](db[_0x4afc('0x141')][_0x4afc('0x39')]);_0x2274ee[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x293343[_0x4afc('0x46')]);_0x2274ee[_0x4afc('0x54')]=_['intersection'](_0x2274ee['model'],_0x2274ee[_0x4afc('0x46')]);_0x5a69d9[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x2274ee[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0x293343[_0x4afc('0x46')][_0x4afc('0x56')]));_0x5a69d9[_0x4afc('0x43')]=_0x5a69d9[_0x4afc('0x43')][_0x4afc('0x49')]?_0x5a69d9[_0x4afc('0x43')]:_0x2274ee[_0x4afc('0x51')];_0x5a69d9[_0x4afc('0xc3')]=qs['sort'](_0x293343[_0x4afc('0x46')][_0x4afc('0xc4')]);_0x5a69d9[_0x4afc('0x40')]=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0x293343[_0x4afc('0x46')],_0x2274ee[_0x4afc('0x54')]));if(_0x293343[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x5a69d9[_0x4afc('0x40')]=_[_0x4afc('0x57')](_0x5a69d9[_0x4afc('0x40')],{'$or':_['map'](_0x5a69d9[_0x4afc('0x43')],function(_0x3a25eb){var _0x1c79e5={};_0x1c79e5[_0x3a25eb]={'$like':'%'+_0x293343[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0x1c79e5;})});}_0x5a69d9=_[_0x4afc('0x57')]({},_0x5a69d9,_0x293343[_0x4afc('0x58')]);return _0x4b55b4[_0x4afc('0x140')](_0x5a69d9);}})[_0x4afc('0x12')](function(_0x2fe703){if(_0x2fe703){_0x464841=_0x2fe703[_0x4afc('0x49')];if(!_0x293343['query'][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0x5a69d9[_0x4afc('0x20')]=qs['limit'](_0x293343['query'][_0x4afc('0x20')]);_0x5a69d9[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x293343[_0x4afc('0x46')][_0x4afc('0x1e')]);}return _0x4b55b4['getFaxAccounts'](_0x5a69d9);}})['then'](function(_0x3ba01f){if(_0x3ba01f){return _0x3ba01f?{'count':_0x464841,'rows':_0x3ba01f}:null;}})['then'](respondWithResult(_0x42976b,null))[_0x4afc('0x1b')](handleError(_0x42976b,null));};exports['addFaxAccounts']=function(_0x4bd20a,_0xedc0e5){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x4bd20a[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0xedc0e5,null))[_0x4afc('0x12')](function(_0x5e923c){if(_0x5e923c){return _0x5e923c[_0x4afc('0x142')](_0x4bd20a[_0x4afc('0x5a')]['ids'],_['omit'](_0x4bd20a[_0x4afc('0x5a')],[_0x4afc('0x5d'),'id'])||{});}})[_0x4afc('0x12')](respondWithResult(_0xedc0e5,null))['catch'](handleError(_0xedc0e5,null));};exports[_0x4afc('0x143')]=function(_0x1a198f,_0x45fda4){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x1a198f[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x45fda4,null))[_0x4afc('0x12')](function(_0x557063){if(_0x557063){return _0x557063[_0x4afc('0x143')](_0x1a198f[_0x4afc('0x46')][_0x4afc('0x5d')]);}})[_0x4afc('0x12')](respondWithStatusCode(_0x45fda4,null))[_0x4afc('0x1b')](handleError(_0x45fda4,null));};exports['getMailAccounts']=function(_0x1ed243,_0x4e5450){var _0x5524bc={};var _0x3ebe62={};var _0x118ed2;var _0x8028a6;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x1ed243['params']['id']}})['then'](handleEntityNotFound(_0x4e5450,null))[_0x4afc('0x12')](function(_0x380cc3){if(_0x380cc3){_0x118ed2=_0x380cc3;_0x3ebe62[_0x4afc('0x51')]=_['keys'](db['MailAccount'][_0x4afc('0x39')]);_0x3ebe62[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x1ed243['query']);_0x3ebe62[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x3ebe62[_0x4afc('0x51')],_0x3ebe62['query']);_0x5524bc[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x3ebe62[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0x1ed243[_0x4afc('0x46')][_0x4afc('0x56')]));_0x5524bc[_0x4afc('0x43')]=_0x5524bc[_0x4afc('0x43')][_0x4afc('0x49')]?_0x5524bc[_0x4afc('0x43')]:_0x3ebe62['model'];_0x5524bc[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x1ed243[_0x4afc('0x46')][_0x4afc('0xc4')]);_0x5524bc[_0x4afc('0x40')]=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0x1ed243[_0x4afc('0x46')],_0x3ebe62[_0x4afc('0x54')]));if(_0x1ed243[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x5524bc[_0x4afc('0x40')]=_[_0x4afc('0x57')](_0x5524bc[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0x5524bc[_0x4afc('0x43')],function(_0x5e6360){var _0x317148={};_0x317148[_0x5e6360]={'$like':'%'+_0x1ed243['query'][_0x4afc('0x2e')]+'%'};return _0x317148;})});}_0x5524bc=_['merge']({},_0x5524bc,_0x1ed243['options']);return _0x118ed2[_0x4afc('0x144')](_0x5524bc);}})[_0x4afc('0x12')](function(_0x2a9a46){if(_0x2a9a46){_0x8028a6=_0x2a9a46[_0x4afc('0x49')];if(!_0x1ed243[_0x4afc('0x46')][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0x5524bc[_0x4afc('0x20')]=qs['limit'](_0x1ed243[_0x4afc('0x46')][_0x4afc('0x20')]);_0x5524bc[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x1ed243['query'][_0x4afc('0x1e')]);}return _0x118ed2['getMailAccounts'](_0x5524bc);}})[_0x4afc('0x12')](function(_0x31f11d){if(_0x31f11d){return _0x31f11d?{'count':_0x8028a6,'rows':_0x31f11d}:null;}})[_0x4afc('0x12')](respondWithResult(_0x4e5450,null))[_0x4afc('0x1b')](handleError(_0x4e5450,null));};exports['addMailAccounts']=function(_0x5c1c39,_0x50e657){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x5c1c39[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x50e657,null))['then'](function(_0x50b131){if(_0x50b131){return _0x50b131[_0x4afc('0x145')](_0x5c1c39[_0x4afc('0x5a')]['ids'],_[_0x4afc('0x5e')](_0x5c1c39['body'],[_0x4afc('0x5d'),'id'])||{});}})['then'](respondWithResult(_0x50e657,null))[_0x4afc('0x1b')](handleError(_0x50e657,null));};exports[_0x4afc('0x146')]=function(_0x39bf00,_0x1acb0b){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x39bf00[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x1acb0b,null))[_0x4afc('0x12')](function(_0xba5017){if(_0xba5017){return _0xba5017[_0x4afc('0x146')](_0x39bf00[_0x4afc('0x46')][_0x4afc('0x5d')]);}})[_0x4afc('0x12')](respondWithStatusCode(_0x1acb0b,null))['catch'](handleError(_0x1acb0b,null));};exports[_0x4afc('0x147')]=function(_0x54a205,_0xc08ffb){var _0x39215a={};var _0x4c742f={};var _0x3a321c;var _0x75275;return db['User'][_0x4afc('0x90')]({'where':{'id':_0x54a205[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0xc08ffb,null))[_0x4afc('0x12')](function(_0x5e2ea2){if(_0x5e2ea2){_0x3a321c=_0x5e2ea2;_0x4c742f[_0x4afc('0x51')]=_[_0x4afc('0x53')](db[_0x4afc('0x148')][_0x4afc('0x39')]);_0x4c742f[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x54a205['query']);_0x4c742f[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x4c742f[_0x4afc('0x51')],_0x4c742f['query']);_0x39215a[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x4c742f[_0x4afc('0x51')],qs['fields'](_0x54a205[_0x4afc('0x46')][_0x4afc('0x56')]));_0x39215a[_0x4afc('0x43')]=_0x39215a[_0x4afc('0x43')][_0x4afc('0x49')]?_0x39215a[_0x4afc('0x43')]:_0x4c742f[_0x4afc('0x51')];_0x39215a[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x54a205['query'][_0x4afc('0xc4')]);_0x39215a[_0x4afc('0x40')]=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0x54a205['query'],_0x4c742f['filters']));if(_0x54a205['query'][_0x4afc('0x2e')]){_0x39215a[_0x4afc('0x40')]=_['merge'](_0x39215a['where'],{'$or':_[_0x4afc('0x2f')](_0x39215a['attributes'],function(_0x3d28f7){var _0x56b4d7={};_0x56b4d7[_0x3d28f7]={'$like':'%'+_0x54a205[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0x56b4d7;})});}_0x39215a=_[_0x4afc('0x57')]({},_0x39215a,_0x54a205['options']);return _0x3a321c['getOpenchannelAccounts'](_0x39215a);}})[_0x4afc('0x12')](function(_0x4fa2c9){if(_0x4fa2c9){_0x75275=_0x4fa2c9[_0x4afc('0x49')];if(!_0x54a205['query']['hasOwnProperty'](_0x4afc('0xcd'))){_0x39215a[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x54a205[_0x4afc('0x46')][_0x4afc('0x20')]);_0x39215a[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x54a205[_0x4afc('0x46')][_0x4afc('0x1e')]);}return _0x3a321c['getOpenchannelAccounts'](_0x39215a);}})[_0x4afc('0x12')](function(_0x33939d){if(_0x33939d){return _0x33939d?{'count':_0x75275,'rows':_0x33939d}:null;}})[_0x4afc('0x12')](respondWithResult(_0xc08ffb,null))[_0x4afc('0x1b')](handleError(_0xc08ffb,null));};exports[_0x4afc('0x149')]=function(_0x19c81a,_0x2a982f){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x19c81a['params']['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x2a982f,null))[_0x4afc('0x12')](function(_0x2c199e){if(_0x2c199e){return _0x2c199e[_0x4afc('0x149')](_0x19c81a[_0x4afc('0x5a')]['ids'],_['omit'](_0x19c81a[_0x4afc('0x5a')],['ids','id'])||{});}})[_0x4afc('0x12')](respondWithResult(_0x2a982f,null))[_0x4afc('0x1b')](handleError(_0x2a982f,null));};exports[_0x4afc('0x14a')]=function(_0x1b2af7,_0x8fc443){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x1b2af7['params']['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x8fc443,null))[_0x4afc('0x12')](function(_0x29ed23){if(_0x29ed23){return _0x29ed23[_0x4afc('0x14a')](_0x1b2af7[_0x4afc('0x46')][_0x4afc('0x5d')]);}})[_0x4afc('0x12')](respondWithStatusCode(_0x8fc443,null))[_0x4afc('0x1b')](handleError(_0x8fc443,null));};exports['getSmsAccounts']=function(_0x3c95e7,_0x1aa361){var _0xeb5538={};var _0x2f0ae9={};var _0x5a4b7e;var _0x380c27;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x3c95e7[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x1aa361,null))[_0x4afc('0x12')](function(_0x2f7136){if(_0x2f7136){_0x5a4b7e=_0x2f7136;_0x2f0ae9['model']=_['keys'](db[_0x4afc('0x14b')]['rawAttributes']);_0x2f0ae9[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x3c95e7['query']);_0x2f0ae9[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x2f0ae9[_0x4afc('0x51')],_0x2f0ae9[_0x4afc('0x46')]);_0xeb5538[_0x4afc('0x43')]=_['intersection'](_0x2f0ae9[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0x3c95e7[_0x4afc('0x46')]['fields']));_0xeb5538['attributes']=_0xeb5538[_0x4afc('0x43')][_0x4afc('0x49')]?_0xeb5538[_0x4afc('0x43')]:_0x2f0ae9[_0x4afc('0x51')];_0xeb5538[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x3c95e7[_0x4afc('0x46')]['sort']);_0xeb5538[_0x4afc('0x40')]=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0x3c95e7[_0x4afc('0x46')],_0x2f0ae9[_0x4afc('0x54')]));if(_0x3c95e7['query']['filter']){_0xeb5538['where']=_[_0x4afc('0x57')](_0xeb5538[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0xeb5538[_0x4afc('0x43')],function(_0x49059a){var _0x981a={};_0x981a[_0x49059a]={'$like':'%'+_0x3c95e7[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0x981a;})});}_0xeb5538=_[_0x4afc('0x57')]({},_0xeb5538,_0x3c95e7[_0x4afc('0x58')]);return _0x5a4b7e[_0x4afc('0x14c')](_0xeb5538);}})[_0x4afc('0x12')](function(_0x134636){if(_0x134636){_0x380c27=_0x134636[_0x4afc('0x49')];if(!_0x3c95e7[_0x4afc('0x46')][_0x4afc('0xc7')]('nolimit')){_0xeb5538[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x3c95e7[_0x4afc('0x46')][_0x4afc('0x20')]);_0xeb5538[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x3c95e7['query'][_0x4afc('0x1e')]);}return _0x5a4b7e['getSmsAccounts'](_0xeb5538);}})[_0x4afc('0x12')](function(_0x25a2dd){if(_0x25a2dd){return _0x25a2dd?{'count':_0x380c27,'rows':_0x25a2dd}:null;}})['then'](respondWithResult(_0x1aa361,null))['catch'](handleError(_0x1aa361,null));};exports[_0x4afc('0x14d')]=function(_0x5870f2,_0x2957ab){return db['User'][_0x4afc('0x31')]({'where':{'id':_0x5870f2[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x2957ab,null))[_0x4afc('0x12')](function(_0x57bcf1){if(_0x57bcf1){return _0x57bcf1[_0x4afc('0x14d')](_0x5870f2['body']['ids'],_[_0x4afc('0x5e')](_0x5870f2[_0x4afc('0x5a')],[_0x4afc('0x5d'),'id'])||{});}})[_0x4afc('0x12')](respondWithResult(_0x2957ab,null))[_0x4afc('0x1b')](handleError(_0x2957ab,null));};exports['removeSmsAccounts']=function(_0xccd830,_0x42c6cb){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0xccd830['params']['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x42c6cb,null))[_0x4afc('0x12')](function(_0x1f4428){if(_0x1f4428){return _0x1f4428[_0x4afc('0x14e')](_0xccd830[_0x4afc('0x46')][_0x4afc('0x5d')]);}})['then'](respondWithStatusCode(_0x42c6cb,null))[_0x4afc('0x1b')](handleError(_0x42c6cb,null));};exports['getChatWebsites']=function(_0x40c8eb,_0x2d64e8){var _0x2962ec={};var _0x5e8355={};var _0x58911f;var _0x47f795;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x40c8eb['params']['id']}})['then'](handleEntityNotFound(_0x2d64e8,null))[_0x4afc('0x12')](function(_0x5c6658){if(_0x5c6658){_0x58911f=_0x5c6658;_0x5e8355['model']=_[_0x4afc('0x53')](db[_0x4afc('0x14f')][_0x4afc('0x39')]);_0x5e8355[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x40c8eb[_0x4afc('0x46')]);_0x5e8355[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x5e8355['model'],_0x5e8355[_0x4afc('0x46')]);_0x2962ec[_0x4afc('0x43')]=_['intersection'](_0x5e8355[_0x4afc('0x51')],qs['fields'](_0x40c8eb['query']['fields']));_0x2962ec[_0x4afc('0x43')]=_0x2962ec[_0x4afc('0x43')][_0x4afc('0x49')]?_0x2962ec['attributes']:_0x5e8355[_0x4afc('0x51')];_0x2962ec['order']=qs['sort'](_0x40c8eb[_0x4afc('0x46')][_0x4afc('0xc4')]);_0x2962ec[_0x4afc('0x40')]=qs[_0x4afc('0x54')](_['pick'](_0x40c8eb[_0x4afc('0x46')],_0x5e8355[_0x4afc('0x54')]));if(_0x40c8eb[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x2962ec['where']=_['merge'](_0x2962ec[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0x2962ec[_0x4afc('0x43')],function(_0x24a222){var _0x4b75b3={};_0x4b75b3[_0x24a222]={'$like':'%'+_0x40c8eb[_0x4afc('0x46')]['filter']+'%'};return _0x4b75b3;})});}_0x2962ec=_[_0x4afc('0x57')]({},_0x2962ec,_0x40c8eb['options']);return _0x58911f[_0x4afc('0x150')](_0x2962ec);}})['then'](function(_0x2bbd84){if(_0x2bbd84){_0x47f795=_0x2bbd84[_0x4afc('0x49')];if(!_0x40c8eb[_0x4afc('0x46')][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0x2962ec['limit']=qs['limit'](_0x40c8eb[_0x4afc('0x46')][_0x4afc('0x20')]);_0x2962ec[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x40c8eb['query']['offset']);}return _0x58911f[_0x4afc('0x150')](_0x2962ec);}})[_0x4afc('0x12')](function(_0x2bc1a2){if(_0x2bc1a2){return _0x2bc1a2?{'count':_0x47f795,'rows':_0x2bc1a2}:null;}})[_0x4afc('0x12')](respondWithResult(_0x2d64e8,null))[_0x4afc('0x1b')](handleError(_0x2d64e8,null));};exports[_0x4afc('0x151')]=function(_0x25eab2,_0x33a321){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x25eab2[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0x33a321,null))[_0x4afc('0x12')](function(_0x557417){if(_0x557417){return _0x557417[_0x4afc('0x151')](_0x25eab2[_0x4afc('0x5a')][_0x4afc('0x5d')],_['omit'](_0x25eab2[_0x4afc('0x5a')],['ids','id'])||{});}})[_0x4afc('0x12')](respondWithResult(_0x33a321,null))[_0x4afc('0x1b')](handleError(_0x33a321,null));};exports[_0x4afc('0x152')]=function(_0x44a6ce,_0x5dac36){return db[_0x4afc('0x38')]['find']({'where':{'id':_0x44a6ce[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x5dac36,null))['then'](function(_0x32a3e6){if(_0x32a3e6){return _0x32a3e6[_0x4afc('0x152')](_0x44a6ce[_0x4afc('0x46')][_0x4afc('0x5d')]);}})[_0x4afc('0x12')](respondWithStatusCode(_0x5dac36,null))['catch'](handleError(_0x5dac36,null));};exports['getWhatsappAccounts']=function(_0x127fd9,_0x353bf1){var _0x3e160f={};var _0x15d4f2={};var _0x47964f;var _0x1081eb;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x127fd9[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x353bf1,null))[_0x4afc('0x12')](function(_0x8e007b){if(_0x8e007b){_0x47964f=_0x8e007b;_0x15d4f2[_0x4afc('0x51')]=_['keys'](db[_0x4afc('0x153')]['rawAttributes']);_0x15d4f2['query']=_[_0x4afc('0x53')](_0x127fd9[_0x4afc('0x46')]);_0x15d4f2[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x15d4f2['model'],_0x15d4f2[_0x4afc('0x46')]);_0x3e160f[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x15d4f2[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0x127fd9['query']['fields']));_0x3e160f[_0x4afc('0x43')]=_0x3e160f[_0x4afc('0x43')]['length']?_0x3e160f[_0x4afc('0x43')]:_0x15d4f2[_0x4afc('0x51')];_0x3e160f[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x127fd9[_0x4afc('0x46')][_0x4afc('0xc4')]);_0x3e160f['where']=qs[_0x4afc('0x54')](_['pick'](_0x127fd9[_0x4afc('0x46')],_0x15d4f2['filters']));if(_0x127fd9['query'][_0x4afc('0x2e')]){_0x3e160f[_0x4afc('0x40')]=_[_0x4afc('0x57')](_0x3e160f[_0x4afc('0x40')],{'$or':_['map'](_0x3e160f['attributes'],function(_0x1aa696){var _0x4f87e7={};_0x4f87e7[_0x1aa696]={'$like':'%'+_0x127fd9[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0x4f87e7;})});}_0x3e160f=_[_0x4afc('0x57')]({},_0x3e160f,_0x127fd9[_0x4afc('0x58')]);return _0x47964f['getWhatsappAccounts'](_0x3e160f);}})[_0x4afc('0x12')](function(_0x404cec){if(_0x404cec){_0x1081eb=_0x404cec[_0x4afc('0x49')];if(!_0x127fd9[_0x4afc('0x46')][_0x4afc('0xc7')](_0x4afc('0xcd'))){_0x3e160f[_0x4afc('0x20')]=qs['limit'](_0x127fd9[_0x4afc('0x46')][_0x4afc('0x20')]);_0x3e160f[_0x4afc('0x1e')]=qs['offset'](_0x127fd9[_0x4afc('0x46')][_0x4afc('0x1e')]);}return _0x47964f[_0x4afc('0x154')](_0x3e160f);}})['then'](function(_0xa8bc83){if(_0xa8bc83){return _0xa8bc83?{'count':_0x1081eb,'rows':_0xa8bc83}:null;}})[_0x4afc('0x12')](respondWithResult(_0x353bf1,null))[_0x4afc('0x1b')](handleError(_0x353bf1,null));};exports['addWhatsappAccounts']=function(_0x3d8103,_0x50b864){return db['User']['find']({'where':{'id':_0x3d8103[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x50b864,null))['then'](function(_0x19e4c5){if(_0x19e4c5){return _0x19e4c5[_0x4afc('0x155')](_0x3d8103['body'][_0x4afc('0x5d')],_[_0x4afc('0x5e')](_0x3d8103[_0x4afc('0x5a')],[_0x4afc('0x5d'),'id'])||{});}})[_0x4afc('0x12')](respondWithResult(_0x50b864,null))[_0x4afc('0x1b')](handleError(_0x50b864,null));};exports['removeWhatsappAccounts']=function(_0xb51dae,_0x5b844b){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0xb51dae[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x5b844b,null))['then'](function(_0x147c3d){if(_0x147c3d){return _0x147c3d[_0x4afc('0x156')](_0xb51dae[_0x4afc('0x46')][_0x4afc('0x5d')]);}})[_0x4afc('0x12')](respondWithStatusCode(_0x5b844b,null))['catch'](handleError(_0x5b844b,null));};exports[_0x4afc('0x157')]=function(_0xfc4b88,_0x179324){var _0x401431={};var _0x33f9b8={};var _0x4223e5;var _0x1e3e27;return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0xfc4b88['params']['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x179324,null))['then'](function(_0x2784e3){if(_0x2784e3){_0x4223e5=_0x2784e3;_0x33f9b8[_0x4afc('0x51')]=_[_0x4afc('0x53')](db[_0x4afc('0x158')][_0x4afc('0x39')]);_0x33f9b8[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0xfc4b88[_0x4afc('0x46')]);_0x33f9b8[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x33f9b8[_0x4afc('0x51')],_0x33f9b8[_0x4afc('0x46')]);_0x401431['attributes']=_[_0x4afc('0x55')](_0x33f9b8[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0xfc4b88[_0x4afc('0x46')][_0x4afc('0x56')]));_0x401431[_0x4afc('0x43')]=_0x401431[_0x4afc('0x43')][_0x4afc('0x49')]?_0x401431[_0x4afc('0x43')]:_0x33f9b8[_0x4afc('0x51')];_0x401431[_0x4afc('0xc3')]=qs['sort'](_0xfc4b88[_0x4afc('0x46')][_0x4afc('0xc4')]);_0x401431[_0x4afc('0x40')]=qs[_0x4afc('0x54')](_[_0x4afc('0xc5')](_0xfc4b88['query'],_0x33f9b8[_0x4afc('0x54')]));if(_0xfc4b88['query'][_0x4afc('0x2e')]){_0x401431[_0x4afc('0x40')]=_[_0x4afc('0x57')](_0x401431[_0x4afc('0x40')],{'$or':_[_0x4afc('0x2f')](_0x401431['attributes'],function(_0x29952b){var _0x1f725c={};_0x1f725c[_0x29952b]={'$like':'%'+_0xfc4b88[_0x4afc('0x46')]['filter']+'%'};return _0x1f725c;})});}_0x401431=_[_0x4afc('0x57')]({},_0x401431,_0xfc4b88[_0x4afc('0x58')]);return _0x4223e5[_0x4afc('0x157')](_0x401431);}})['then'](function(_0x5af6f6){if(_0x5af6f6){_0x1e3e27=_0x5af6f6[_0x4afc('0x49')];if(!_0xfc4b88[_0x4afc('0x46')]['hasOwnProperty']('nolimit')){_0x401431[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0xfc4b88[_0x4afc('0x46')][_0x4afc('0x20')]);_0x401431['offset']=qs[_0x4afc('0x1e')](_0xfc4b88[_0x4afc('0x46')][_0x4afc('0x1e')]);}return _0x4223e5[_0x4afc('0x157')](_0x401431);}})['then'](function(_0x122c22){if(_0x122c22){return _0x122c22?{'count':_0x1e3e27,'rows':_0x122c22}:null;}})[_0x4afc('0x12')](respondWithResult(_0x179324,null))[_0x4afc('0x1b')](handleError(_0x179324,null));};exports['addSquareProjects']=function(_0x7291f,_0x3aa008){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x7291f[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x3aa008,null))[_0x4afc('0x12')](function(_0x3303f9){if(_0x3303f9){return _0x3303f9[_0x4afc('0x159')](_0x7291f[_0x4afc('0x5a')]['ids'],_[_0x4afc('0x5e')](_0x7291f[_0x4afc('0x5a')],[_0x4afc('0x5d'),'id'])||{});}})['then'](respondWithResult(_0x3aa008,null))['catch'](handleError(_0x3aa008,null));};exports[_0x4afc('0x15a')]=function(_0x1c4d1a,_0x38384a){return db[_0x4afc('0x38')][_0x4afc('0x31')]({'where':{'id':_0x1c4d1a[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](handleEntityNotFound(_0x38384a,null))[_0x4afc('0x12')](function(_0x321dd4){if(_0x321dd4){return _0x321dd4['removeSquareProjects'](_0x1c4d1a['query'][_0x4afc('0x5d')]);}})[_0x4afc('0x12')](respondWithStatusCode(_0x38384a,null))[_0x4afc('0x1b')](handleError(_0x38384a,null));};exports[_0x4afc('0x15b')]=function(_0x47d415,_0x5239b0){var _0x1a71b4={},_0x19cb36={},_0x5d0a4c={'count':0x0,'rows':[]};var _0x3c956c=db['CmHopper'][_0x4afc('0x39')];_0x19cb36['model']=_[_0x4afc('0x53')](_0x3c956c);_0x19cb36[_0x4afc('0x46')]=_[_0x4afc('0x53')](_0x47d415['query']);_0x19cb36[_0x4afc('0x54')]=_[_0x4afc('0x55')](_0x19cb36['model'],_0x19cb36[_0x4afc('0x46')]);_0x19cb36[_0x4afc('0x54')]=_[_0x4afc('0xf6')](_0x19cb36['filters'],[_0x4afc('0x15c'),_0x4afc('0x15d'),_0x4afc('0x15e'),_0x4afc('0x15f'),_0x4afc('0x160'),_0x4afc('0x161'),_0x4afc('0x162'),_0x4afc('0x163'),_0x4afc('0x164'),_0x4afc('0x165'),'$notBetween',_0x4afc('0x166'),_0x4afc('0x167'),_0x4afc('0x168'),_0x4afc('0x169'),_0x4afc('0x16a'),'$notILike',_0x4afc('0x168'),'$overlap',_0x4afc('0x16b'),_0x4afc('0x16c'),_0x4afc('0x16d')]);_0x1a71b4[_0x4afc('0x43')]=_[_0x4afc('0x55')](_0x19cb36[_0x4afc('0x51')],qs[_0x4afc('0x56')](_0x47d415['query']['fields']));_0x1a71b4['attributes']=_0x1a71b4[_0x4afc('0x43')][_0x4afc('0x49')]?_0x1a71b4[_0x4afc('0x43')]:_0x19cb36[_0x4afc('0x51')];if(!_0x47d415[_0x4afc('0x46')]['hasOwnProperty'](_0x4afc('0xcd'))){_0x1a71b4[_0x4afc('0x20')]=qs[_0x4afc('0x20')](_0x47d415[_0x4afc('0x46')]['limit']);_0x1a71b4[_0x4afc('0x1e')]=qs['offset'](_0x47d415[_0x4afc('0x46')][_0x4afc('0x1e')]);}_0x1a71b4[_0x4afc('0xc3')]=qs[_0x4afc('0xc4')](_0x47d415[_0x4afc('0x46')]['sort']);_0x1a71b4['where']=qs['filters'](_[_0x4afc('0xc5')](_0x47d415[_0x4afc('0x46')],_0x19cb36[_0x4afc('0x54')]));if(_0x47d415[_0x4afc('0x46')][_0x4afc('0x2e')]){_0x1a71b4[_0x4afc('0x40')]=_['merge'](_0x1a71b4['where'],{'$or':_['map'](_0x1a71b4[_0x4afc('0x43')],function(_0x280333){var _0x832883={};_0x832883[_0x280333]={'$like':'%'+_0x47d415[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'};return _0x832883;})});}_0x1a71b4[_0x4afc('0x40')]={'$and':[_0x1a71b4['where'],{'$or':[{'UserId':_0x47d415[_0x4afc('0x50')]['id']},{'OwnerId':_0x47d415[_0x4afc('0x50')]['id']}]}]};_0x1a71b4=_['merge']({},_0x1a71b4,_0x47d415['options']);var _0x25540c={'where':_0x1a71b4[_0x4afc('0x40')]};return db['CmHopper'][_0x4afc('0x21')](_0x25540c)['then'](function(_0x2dffa8){_0x5d0a4c['count']=_0x2dffa8;if(_0x47d415[_0x4afc('0x46')][_0x4afc('0x41')]){_0x1a71b4['include']=[{'attributes':['id','firstName',_0x4afc('0x16e'),_0x4afc('0xe2')],'model':db['CmContact'],'as':'Contact'},{'attributes':['id',_0x4afc('0x36'),_0x4afc('0x16f')],'model':db[_0x4afc('0x170')],'as':_0x4afc('0xce')}];}return db[_0x4afc('0x171')][_0x4afc('0xd0')](_0x1a71b4);})['then'](function(_0x327e95){_0x5d0a4c[_0x4afc('0x45')]=_0x327e95;return _0x5d0a4c;})['then'](respondWithFilteredResult(_0x5239b0,_0x1a71b4))['catch'](handleError(_0x5239b0,null));};exports['getApiKey']=function(_0x1727c1,_0x59dae2){if(!_[_0x4afc('0x64')](_0x1727c1[_0x4afc('0x29')]['id'])&&(_0x1727c1['user']['role']==_0x4afc('0x27')||_0x1727c1[_0x4afc('0x29')][_0x4afc('0x26')]==_0x4afc('0x29'))){return db[_0x4afc('0x38')][_0x4afc('0x90')]({'where':{'id':_0x1727c1[_0x4afc('0x50')]['id']},'raw':!![]})[_0x4afc('0x12')](function(_0x4c66c5){return authService[_0x4afc('0x172')](_0x4c66c5);})[_0x4afc('0x12')](function(_0x2626f5){if(_0x2626f5){return _0x59dae2[_0x4afc('0x1d')](0xc8)[_0x4afc('0x22')]({'api_key':_0x2626f5[_0x4afc('0x173')]});}else{return _0x59dae2[_0x4afc('0x1d')](0xcc)[_0x4afc('0x22')]({'message':'No\x20API\x20access\x20key\x20found!'});}})[_0x4afc('0x1b')](handleError(_0x59dae2,0x193));}else{return _0x59dae2['status'](0x191)[_0x4afc('0x22')]({'message':_0x4afc('0x174')});}};exports['createApiKey']=function(_0x1bbeac,_0x29f93f){if(!_[_0x4afc('0x64')](_0x1bbeac[_0x4afc('0x29')]['id'])&&(_0x1bbeac['user'][_0x4afc('0x26')]==_0x4afc('0x27')||_0x1bbeac['user'][_0x4afc('0x26')]==_0x4afc('0x29'))){return db['User'][_0x4afc('0x31')]({'where':{'id':_0x1bbeac[_0x4afc('0x50')]['id']}})[_0x4afc('0x12')](function(_0x4c5680){return authService[_0x4afc('0x175')](_0x4c5680);})[_0x4afc('0x12')](function(_0x23869f){return db[_0x4afc('0x38')][_0x4afc('0x23')]({'apiKeyIat':_0x23869f['iat'],'apiKeyNonce':_0x23869f[_0x4afc('0x176')]},{'where':{'id':_0x1bbeac[_0x4afc('0x50')]['id']}})['then'](function(){return _0x29f93f[_0x4afc('0x1d')](0xc8)[_0x4afc('0x22')]({'api_key':_0x23869f[_0x4afc('0x173')]});});})[_0x4afc('0x1b')](handleError(_0x29f93f,0x193));}else{return _0x29f93f[_0x4afc('0x1d')](0x191)[_0x4afc('0x22')]({'message':_0x4afc('0x174')});}};exports[_0x4afc('0x177')]=function(_0x273ed9,_0x39461e){if(!_[_0x4afc('0x64')](_0x273ed9[_0x4afc('0x29')]['id'])&&(_0x273ed9[_0x4afc('0x29')][_0x4afc('0x26')]==_0x4afc('0x27')||_0x273ed9[_0x4afc('0x29')][_0x4afc('0x26')]==_0x4afc('0x29'))){return db['User'][_0x4afc('0x31')]({'where':{'id':_0x273ed9[_0x4afc('0x50')]['id']}})['then'](handleEntityNotFound(_0x39461e,null))[_0x4afc('0x12')](function(_0xd46894){if(_0xd46894&&_0xd46894[_0x4afc('0x178')]&&_0xd46894[_0x4afc('0x179')])return _0xd46894;else throw{'message':_0x4afc('0x17a')};})['then'](function(_0x574d7d){return db[_0x4afc('0x38')][_0x4afc('0x23')]({'apiKeyNonce':null,'apiKeyIat':null},{'where':{'id':_0x273ed9['params']['id']}});})['then'](respondWithStatusCode(_0x39461e,0xc8))['catch'](handleError(_0x39461e,0x193));}else{return _0x39461e['status'](0x191)[_0x4afc('0x22')]({'message':_0x4afc('0x174')});}};exports[_0x4afc('0x17b')]=function(_0x149b45,_0x5a9ea6){var _0x245660=_0x149b45[_0x4afc('0x29')][_0x4afc('0x25')]({'plain':!![]});if(!_0x245660){return _0x5a9ea6[_0x4afc('0x1d')](0x191)[_0x4afc('0x127')](_0x4afc('0x17c'));}else{return _0x5a9ea6[_0x4afc('0x1d')](0xc8)[_0x4afc('0x22')](_0x245660);}};exports['getPresence']=function(_0x57cad9,_0x3616d8){var _0x475f94={'offset':0x0},_0x1a735c={'count':0x0,'rows':[]};Promise[_0x4afc('0xf8')]()[_0x4afc('0x12')](function(){if(!_0x57cad9[_0x4afc('0x46')][_0x4afc('0x2e')]&&!_0x57cad9[_0x4afc('0x46')][_0x4afc('0x17d')]&&!_0x57cad9['query']['queues'])return[];return Promise['resolve']()[_0x4afc('0x12')](function(){var _0x471768=[];if(!_[_0x4afc('0x87')](_0x57cad9[_0x4afc('0x46')][_0x4afc('0x17d')])){_0x471768['push'](db[_0x4afc('0x10b')][_0x4afc('0xd0')]({'attributes':['id',_0x4afc('0x36')],'where':{'id':_0x57cad9['query'][_0x4afc('0x17d')]}}));}if(!_[_0x4afc('0x87')](_0x57cad9[_0x4afc('0x46')][_0x4afc('0x17e')])){_0x471768[_0x4afc('0x44')](db[_0x4afc('0x170')][_0x4afc('0xd0')]({'attributes':['id',_0x4afc('0x36')],'type':_0x4afc('0x17f'),'where':{'id':_0x57cad9['query'][_0x4afc('0x17e')]}}));}return Promise[_0x4afc('0x4f')](_0x471768);})[_0x4afc('0x12')](function(_0x48f203){var _0x5bfa67=_[_0x4afc('0x11b')](_0x48f203)[_0x4afc('0x2f')](function(_0x30cd83){return _0x30cd83[_0x4afc('0x125')]({'attributes':['id',_0x4afc('0x36'),_0x4afc('0x63'),_0x4afc('0xa4')],'raw':!![]});});return Promise[_0x4afc('0x4f')](_0x5bfa67);})[_0x4afc('0x12')](function(_0xa0a42){var _0x1a1620=_[_0x4afc('0x11b')](_0xa0a42);if(!_0x57cad9[_0x4afc('0x46')]['filter'])return _0x1a1620;if(_[_0x4afc('0x87')](_0x1a1620)){return db[_0x4afc('0x38')][_0x4afc('0xd0')]({'attributes':['id',_0x4afc('0x36'),_0x4afc('0x63'),'online'],'where':{'role':_0x4afc('0x2b'),'$or':[db['sequelize'][_0x4afc('0x40')](db[_0x4afc('0x66')]['fn'](_0x4afc('0x180'),db[_0x4afc('0x66')][_0x4afc('0x181')](_0x4afc('0x36'))),{'$like':'%'+_0x57cad9['query'][_0x4afc('0x2e')][_0x4afc('0x9d')]()+'%'}),{'internal':{'$like':'%'+_0x57cad9[_0x4afc('0x46')][_0x4afc('0x2e')]+'%'}}]},'raw':!![]});}else{return _(_0x1a1620)['flatten']()[_0x4afc('0x2e')](function(_0x3c044c){return _0x3c044c['name'][_0x4afc('0x9d')]()[_0x4afc('0x30')](_0x57cad9[_0x4afc('0x46')][_0x4afc('0x2e')]['toLowerCase']())||_0x3c044c['internal']['toString']()[_0x4afc('0x30')](_0x57cad9[_0x4afc('0x46')][_0x4afc('0x2e')]);})[_0x4afc('0x32')]();}})[_0x4afc('0x12')](function(_0x467629){var _0x4e7f73=_0x4afc('0x36');var _0x3771ba='asc';if(_0x57cad9[_0x4afc('0x46')][_0x4afc('0xc4')]){var _0x3771ba=_0x57cad9[_0x4afc('0x46')][_0x4afc('0xc4')][0x0]==='-'?_0x4afc('0x182'):_0x4afc('0x183');var _0x4e7f73=_0x3771ba===_0x4afc('0x183')?_0x57cad9[_0x4afc('0x46')]['sort']:_0x57cad9[_0x4afc('0x46')][_0x4afc('0xc4')][_0x4afc('0x184')](0x1);}return _(_0x467629)['uniqBy']('id')[_0x4afc('0x185')]([function(_0x58449e){return _0x4e7f73===_0x4afc('0x36')?_0x58449e[_0x4e7f73][_0x4afc('0x9d')]():_0x58449e[_0x4e7f73];}],[_0x3771ba])[_0x4afc('0x2f')](function(_0x37ca93){return _[_0x4afc('0xc5')](_0x37ca93,['id',_0x4afc('0x36'),_0x4afc('0x63'),_0x4afc('0xa4')]);})['value']();})[_0x4afc('0x12')](function(_0x31df4b){return client[_0x4afc('0x11')](_0x4afc('0x2a'),_0x57cad9)[_0x4afc('0x12')](function(_0x2684e9){if(_0x2684e9[_0x4afc('0x18')])throw new Error(_0x4afc('0x186'));var _0x39102b=_0x2684e9[_0x4afc('0x1a')];var _0x3c0846=jayson['client'][_0x4afc('0x187')]({'port':0x232c});return _0x3c0846['request'](_0x4afc('0x2a'),_0x57cad9)[_0x4afc('0x12')](function(_0x19213c){if(_0x19213c['error'])throw new Error('Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)');var _0x560a34=_0x19213c[_0x4afc('0x1a')];return _[_0x4afc('0x57')]({},_0x560a34,_0x39102b);});})[_0x4afc('0x12')](function(_0x1cd985){return _[_0x4afc('0x2f')](_0x31df4b,function(_0x4dadf1){var _0x4fd91b=_[_0x4afc('0x31')](_0x1cd985[_0x4afc('0x45')],['id',_0x4dadf1['id']]);if(!_0x4fd91b||!_0x4dadf1[_0x4afc('0xa4')]){_0x4dadf1[_0x4afc('0x1d')]=_0x4afc('0x188');}else if(_0x4fd91b[_0x4afc('0x98')]){_0x4dadf1[_0x4afc('0x1d')]=_0x4afc('0xfa');}else{_0x4dadf1[_0x4afc('0x1d')]=_[_0x4afc('0x30')](['idle',_0x4afc('0x189'),_0x4afc('0x18a'),'ringing',null,undefined],_0x4fd91b[_0x4afc('0x18b')])?'online':_0x4afc('0x18c');}return _0x4dadf1;});});});})[_0x4afc('0x12')](function(_0x363160){if(!_0x57cad9[_0x4afc('0x46')]['hasOwnProperty'](_0x4afc('0xcd'))){_0x475f94[_0x4afc('0x20')]=qs['limit'](_0x57cad9[_0x4afc('0x46')][_0x4afc('0x20')]||0xa);_0x475f94[_0x4afc('0x1e')]=qs[_0x4afc('0x1e')](_0x57cad9['query'][_0x4afc('0x1e')]);}_0x1a735c[_0x4afc('0x21')]=_0x363160[_0x4afc('0x49')];_0x1a735c['rows']=_0x475f94[_0x4afc('0x20')]?_0x363160['slice'](_0x475f94[_0x4afc('0x1e')],_0x475f94[_0x4afc('0x1e')]+_0x475f94[_0x4afc('0x20')]):_0x363160;return _0x1a735c;})['then'](respondWithFilteredResult(_0x3616d8,_0x475f94))[_0x4afc('0x1b')](handleError(_0x3616d8,null));};function get_open_tabs(_0x438e9d,_0x545fb1){var _0x5e9d2a=_0x438e9d[_0x4afc('0x18d')](0x0)[_0x4afc('0x18e')]()+_0x438e9d[_0x4afc('0x18f')](0x1);var _0x459f7f={'type':db[_0x4afc('0x8a')][_0x4afc('0x67')][_0x4afc('0x68')],'raw':!![]};return new BPromise(function(_0x1dd170,_0x5c6401){var _0x3a0577=squel[_0x4afc('0x190')]()[_0x4afc('0x191')](_0x4afc('0x192')+_0x5e9d2a+_0x4afc('0x193'),'id')[_0x4afc('0x191')](_0x4afc('0x194'))['from']('user_has_'+_0x438e9d+_0x4afc('0x195'),'ui')['where'](_0x4afc('0x196'),_0x545fb1['id']);return db[_0x4afc('0x66')][_0x4afc('0x46')](_0x3a0577[_0x4afc('0x197')](),_0x459f7f)[_0x4afc('0x12')](function(_0x2b7f1c){_0x545fb1[_0x5e9d2a+'OpenTabs']=_0x2b7f1c;_0x1dd170(_0x2b7f1c);})[_0x4afc('0x1b')](function(_0x20c30c){_0x5c6401(_0x20c30c);});});};
\ No newline at end of file
+var _0xe820=['getContacts','order','sort','pick','hasOwnProperty','List','Tag','color','tag','nolimit','getQueues','Queue','Unknown\x20role','getVoiceQueuesRt','findOne','getGroups','ChatGroup','VoiceRecording','getScreenRecordings','ScreenRecording','UserId','getChatInteractions','ChatInteraction','getOpenchannelInteractions','getMailInteractions','MailInteraction','SmsInteraction','getSmsInteractions','getFaxInteractions','FaxInteraction','WhatsappInteraction','getWhatsappInteractions','login','mobile','LOCAL/%s@from-sip/n','intrf','SIP/%s','user:%s','headers','x-forwarded-for','connection','remoteAddress','socket','getVoiceQueues','UserVoiceQueue.penalty','upsert','MemberReport','forEach','getChannels','YYYY-MM-DD\x20HH:mm:ss','LOGIN','device','PAUSE','concat','LOGININPAUSE','isMiddleware','logout','QueuePause','pause','updateAttributes','type','DEFAULT\x20PAUSE','unpause','mailPause','chatPause','faxPause','openchannelPause','smsPause','whatsapppause','pauseType','lastPauseAt','manual','set','%s%s','Pause','getTeams','Team','getChatQueues','setDataValue','Mail','getSmsQueues','Sms','getWhatsappQueues','Whatsapp','Fax','getOpenchannelQueues','Openchannel','transaction','addAgent','Voice','getDataValue','removeTeams','Chat','getMailQueues','getFaxQueues','flatten','removeAgent','getLists','CmList','getAgents','values','You\x20can\x27t\x20delete\x20yourself','addChatInteractions','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','addSmsInteractions','user_has_sms_interactions:save','removeSmsInteractions','user_has_sms_interactions:remove','addOpenchannelInteractions','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','addWhatsappInteractions','removeWhatsappInteractions','getVoicePrefixes','VoicePrefix','getFaxAccounts','FaxAccount','addFaxAccounts','removeFaxAccounts','getMailAccounts','MailAccount','addMailAccounts','removeMailAccounts','getOpenchannelAccounts','addOpenchannelAccounts','removeOpenchannelAccounts','getSmsAccounts','SmsAccount','removeSmsAccounts','getChatWebsites','ChatWebsite','addChatWebsites','removeChatWebsites','getWhatsappAccounts','addWhatsappAccounts','removeWhatsappAccounts','SquareProject','getSquareProjects','addSquareProjects','removeSquareProjects','getScheduledCalls','CmHopper','$and','$lt','$lte','$eq','$not','$between','$in','$notIn','$like','$notILike','$overlap','$contains','$contained','$any','firstName','lastName','phone','CmContact','Contact','getApiKey','retrieveApiKey','token','No\x20API\x20access\x20key\x20found!','You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.','createApiKey','generateApiKey','iat','nonce','apiKeyNonce','API\x20key\x20not\x20available','whoami','Unable\x20to\x20retrieve\x20the\x20current\x20user','getPresence','resolve','queues','teams','col','asc','substring','uniqBy','orderBy','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)','offline','idle','unavailable','ringing','voiceStatus','slice','charAt','toUpperCase','field','ui.','InteractionId','ui.createdAt','user_has_','_interactions','toString','moment','util','squel','jayson/promise','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','./user.socket','register','defaults','localhost','client','http','request','then','info','request\x20sent','code','error','message','User,\x20%s,\x20%s','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','destroy','role','user','Agents','agent','telephone','filter','ignore','map','value','includes','find','name','UserProfileResource','stack','send','User','rawAttributes','fieldName','password','salt','getOptions','where','query','include','attributes','push','findAll','rows','length','chat','dataValues','fax','mail','openchannel','whatsapp','params','model','differenceBy','keys','filters','intersection','fields','includeAll','merge','options','openTabs','true','sms','all','update','body','describe','addContacts','omit','internal','Setting','findById','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','voicemail','mailbox','VoiceMail','fullname','permissions','101','103','110','104','105','106','107','109','100','114','115','Unauthorized','admin','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','create','UserProfileSection','autoAssociation','bulkCreate','some','checkUserLimits','each','userProfileId','isEmpty','compact','Telephones','changePassword','newPassword','Sequelize','Invalid\x20body\x20format.\x20Use\x20oldPassword\x20and\x20newPassword','ValidationError','Wrong\x20credentials','oldPassword','New\x20password\x20must\x20be\x20different\x20from\x20old\x20password','Invalid\x20body\x20format.\x20Use\x20newPassword','securePassword','enforcePasswordHistory','passwordHistoryLimit','validatePasswordHistory','previousPasswords','updatePasswordsHistory','addQueues','channel','online','loginInPause','voicePause','isValidChannel','Unknown\x20channel','add','capitalize','toLowerCase','Queues','ids','penalty','spread','QueueId','emit','Queue:save','voice','VoiceQueue','get','interface','format','removeQueues','Queue:remove','UserVoiceQueueRt','addAvatar','userpic','filename','getAvatar','root','server/files/images/logos/default_profile.png','download','existsSync','join','server/files/images/','ChatOpenTabs','CHAT','createdAt','FaxOpenTabs','OpenchannelOpenTabs','MailOpenTabs','MAIL','SmsOpenTabs','SMS','WhatsappOpenTabs'];(function(_0x3826ad,_0x49a30d){var _0x17b900=function(_0x38474f){while(--_0x38474f){_0x3826ad['push'](_0x3826ad['shift']());}};_0x17b900(++_0x49a30d);}(_0xe820,0xd2));var _0x0e82=function(_0x2cf082,_0x582e38){_0x2cf082=_0x2cf082-0x0;var _0x5331eb=_0xe820[_0x2cf082];return _0x5331eb;};'use strict';var moment=require(_0x0e82('0x0'));var BPromise=require('bluebird');var util=require(_0x0e82('0x1'));var path=require('path');var fs=require('fs');var _=require('lodash');var squel=require(_0x0e82('0x2'));var jayson=require(_0x0e82('0x3'));var Redis=require(_0x0e82('0x4'));var authService=require('../../components/auth/service');var qs=require(_0x0e82('0x5'));var logger=require('../../config/logger')(_0x0e82('0x6'));var utils=require(_0x0e82('0x7'));var config=require(_0x0e82('0x8'));var licenseUtil=require(_0x0e82('0x9'));var db=require(_0x0e82('0xa'))['db'];var socket=require('socket.io-emitter')(new Redis(config[_0x0e82('0xb')]));require(_0x0e82('0xc'))[_0x0e82('0xd')](socket);config[_0x0e82('0xb')]=_[_0x0e82('0xe')](config['redis'],{'host':_0x0e82('0xf'),'port':0x18eb});var client=jayson[_0x0e82('0x10')][_0x0e82('0x11')]({'port':0x232a});var values;function respondWithRpcPromise(_0x10b2e2,_0x1f1800,_0x2a1b32,_0x270173){return new BPromise(function(_0x588640,_0x44c7fd){var _0xb42f45=_0x270173||client;return _0xb42f45[_0x0e82('0x12')](_0x10b2e2,_0x2a1b32)[_0x0e82('0x13')](function(_0x166dc2){logger[_0x0e82('0x14')]('User,\x20%s,\x20%s',_0x1f1800,_0x0e82('0x15'));logger['debug']('User,\x20%s,\x20%s,\x20%s',_0x1f1800,_0x0e82('0x15'),JSON['stringify'](_0x166dc2));if(_0x166dc2['error']){if(_0x166dc2['error'][_0x0e82('0x16')]===0x1f4){logger['error']('User,\x20%s,\x20%s',_0x1f1800,_0x166dc2[_0x0e82('0x17')]['message']);return _0x44c7fd(_0x166dc2[_0x0e82('0x17')][_0x0e82('0x18')]);}logger[_0x0e82('0x17')](_0x0e82('0x19'),_0x1f1800,_0x166dc2['error'][_0x0e82('0x18')]);return _0x588640(_0x166dc2[_0x0e82('0x17')][_0x0e82('0x18')]);}else{logger[_0x0e82('0x14')](_0x0e82('0x19'),_0x1f1800,_0x0e82('0x15'));_0x588640(_0x166dc2[_0x0e82('0x1a')][_0x0e82('0x18')]);}})[_0x0e82('0x1b')](function(_0x224455){logger[_0x0e82('0x17')]('User,\x20%s,\x20%s',_0x1f1800,_0x224455);_0x44c7fd(_0x224455);});});}function respondWithStatusCode(_0x5ba6ee,_0x294696){_0x294696=_0x294696||0xcc;return function(_0x2781de){if(_0x2781de){return _0x5ba6ee[_0x0e82('0x1c')](_0x294696);}return _0x5ba6ee[_0x0e82('0x1d')](_0x294696)[_0x0e82('0x1e')]();};}function respondWithResult(_0x1bdad4,_0x39fcbe){_0x39fcbe=_0x39fcbe||0xc8;return function(_0x2688f9){if(_0x2688f9){return _0x1bdad4['status'](_0x39fcbe)[_0x0e82('0x1f')](_0x2688f9);}};}function respondWithFilteredResult(_0x13f023,_0x3d6c28){return function(_0x24f883){if(_0x24f883){var _0x507f08=typeof _0x3d6c28[_0x0e82('0x20')]===_0x0e82('0x21')&&typeof _0x3d6c28[_0x0e82('0x22')]===_0x0e82('0x21');var _0x4900d3=_0x24f883[_0x0e82('0x23')];var _0x51dbcd=_0x507f08?0x0:_0x3d6c28['offset'];var _0x384f88=_0x507f08?_0x24f883[_0x0e82('0x23')]:_0x3d6c28['offset']+_0x3d6c28[_0x0e82('0x22')];var _0xe3c530;if(_0x384f88>=_0x4900d3){_0x384f88=_0x4900d3;_0xe3c530=0xc8;}else{_0xe3c530=0xce;}_0x13f023[_0x0e82('0x1d')](_0xe3c530);return _0x13f023['set'](_0x0e82('0x24'),_0x51dbcd+'-'+_0x384f88+'/'+_0x4900d3)[_0x0e82('0x1f')](_0x24f883);}return null;};}function saveUpdates(_0x4ee65a){return function(_0xabc536){if(_0xabc536){return _0xabc536['update'](_0x4ee65a)[_0x0e82('0x13')](function(_0x3ec302){return _0x3ec302;});}return null;};}function removeEntity(_0x551f96){return function(_0x38cbbc){if(_0x38cbbc){return _0x38cbbc[_0x0e82('0x25')]()[_0x0e82('0x13')](function(){var _0x4d74d0=_0x38cbbc['get']({'plain':!![]});if(_0x4d74d0[_0x0e82('0x26')]==='admin')return;var _0x11211a=[{'name':'Users','value':_0x0e82('0x27'),'ignore':!![]},{'name':_0x0e82('0x28'),'value':_0x0e82('0x29'),'ignore':![]},{'name':'Telephones','value':_0x0e82('0x2a'),'ignore':![]}];var _0x59d2f8=_(_0x11211a)[_0x0e82('0x2b')](_0x0e82('0x2c'))[_0x0e82('0x2d')](_0x0e82('0x2e'))[_0x0e82('0x2e')]();if(_[_0x0e82('0x2f')](_0x59d2f8,_0x4d74d0['role'])){return;}var _0x433fc4=_[_0x0e82('0x30')](_0x11211a,[_0x0e82('0x2e'),_0x4d74d0[_0x0e82('0x26')]])[_0x0e82('0x31')];return db[_0x0e82('0x32')][_0x0e82('0x25')]({'where':{'type':_0x433fc4,'resourceId':_0x4d74d0['id']}})[_0x0e82('0x13')](function(){return _0x38cbbc;});})[_0x0e82('0x13')](function(){_0x551f96[_0x0e82('0x1d')](0xcc)[_0x0e82('0x1e')]();});}};}function handleEntityNotFound(_0x1a77a3){return function(_0x244f3d){if(!_0x244f3d){_0x1a77a3[_0x0e82('0x1c')](0x194);}return _0x244f3d;};}function handleError(_0x21dd97,_0x5b95c8){_0x5b95c8=_0x5b95c8||0x1f4;return function(_0x18643f){logger[_0x0e82('0x17')](_0x18643f[_0x0e82('0x33')]);if(_0x18643f[_0x0e82('0x31')]){delete _0x18643f['name'];}_0x21dd97[_0x0e82('0x1d')](_0x5b95c8)[_0x0e82('0x34')](_0x18643f);};}exports['index']=function(_0xd7ad2f,_0x57e505){var _0x4a855f={},_0x166707={'count':0x0,'rows':[]};var _0x1a77c3=_(db[_0x0e82('0x35')][_0x0e82('0x36')])[_0x0e82('0x2d')](function(_0x17e278){return{'name':_0x17e278[_0x0e82('0x37')],'type':_0x17e278['type']['key']};})[_0x0e82('0x2b')](function(_0x456d10){return!_[_0x0e82('0x2f')]([_0x0e82('0x38'),_0x0e82('0x39')],_0x456d10[_0x0e82('0x31')]);})[_0x0e82('0x2e')]();_0x4a855f=qs[_0x0e82('0x3a')](_0x1a77c3,_0xd7ad2f);var _0x4e11b7={'where':_0x4a855f[_0x0e82('0x3b')]};return db[_0x0e82('0x35')][_0x0e82('0x23')](_0x4e11b7)[_0x0e82('0x13')](function(_0x29e579){_0x166707[_0x0e82('0x23')]=_0x29e579;if(_0xd7ad2f[_0x0e82('0x3c')]['includeAll']){_0x4a855f[_0x0e82('0x3d')]=[{'all':!![]}];}if(!_[_0x0e82('0x2f')](_0x4a855f[_0x0e82('0x3e')],'id')){_0x4a855f[_0x0e82('0x3e')][_0x0e82('0x3f')]('id');}return db[_0x0e82('0x35')][_0x0e82('0x40')](_0x4a855f);})['then'](function(_0x581764){_0x166707['rows']=_0x581764;if(_0xd7ad2f['query']['openTabs']==='true'){var _0x651c76=[];for(var _0x182333=0x0;_0x182333<_0x166707[_0x0e82('0x41')][_0x0e82('0x42')];_0x182333++){_0x651c76[_0x0e82('0x3f')](get_open_tabs(_0x0e82('0x43'),_0x166707[_0x0e82('0x41')][_0x182333][_0x0e82('0x44')]));_0x651c76['push'](get_open_tabs('sms',_0x166707[_0x0e82('0x41')][_0x182333][_0x0e82('0x44')]));_0x651c76[_0x0e82('0x3f')](get_open_tabs(_0x0e82('0x45'),_0x166707[_0x0e82('0x41')][_0x182333][_0x0e82('0x44')]));_0x651c76[_0x0e82('0x3f')](get_open_tabs(_0x0e82('0x46'),_0x166707['rows'][_0x182333][_0x0e82('0x44')]));_0x651c76['push'](get_open_tabs(_0x0e82('0x47'),_0x166707['rows'][_0x182333][_0x0e82('0x44')]));_0x651c76['push'](get_open_tabs(_0x0e82('0x48'),_0x166707[_0x0e82('0x41')][_0x182333][_0x0e82('0x44')]));}return BPromise['all'](_0x651c76)['then'](function(_0x331668){return _0x166707;});}else{return _0x166707;}})[_0x0e82('0x13')](respondWithFilteredResult(_0x57e505,_0x4a855f))[_0x0e82('0x1b')](handleError(_0x57e505,null));};exports['show']=function(_0x384218,_0x508981){var _0x4038b6={'raw':![],'where':{'id':_0x384218[_0x0e82('0x49')]['id']}},_0x414745={};_0x414745[_0x0e82('0x4a')]=_[_0x0e82('0x4b')](_[_0x0e82('0x4c')](db[_0x0e82('0x35')][_0x0e82('0x36')]),[_0x0e82('0x38'),_0x0e82('0x39')]);_0x414745[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x384218['query']);_0x414745[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x414745['model'],_0x414745[_0x0e82('0x3c')]);_0x4038b6['attributes']=_['intersection'](_0x414745[_0x0e82('0x4a')],qs['fields'](_0x384218[_0x0e82('0x3c')][_0x0e82('0x4f')]));_0x4038b6[_0x0e82('0x3e')]=_0x4038b6[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x4038b6['attributes']:_0x414745[_0x0e82('0x4a')];if(_0x384218['query'][_0x0e82('0x50')]){_0x4038b6[_0x0e82('0x3d')]=[{'all':!![]}];}_0x4038b6=_[_0x0e82('0x51')]({},_0x4038b6,_0x384218[_0x0e82('0x52')]);if(!_[_0x0e82('0x2f')](_0x4038b6['attributes'],'id')){_0x4038b6[_0x0e82('0x3e')][_0x0e82('0x3f')]('id');}return db[_0x0e82('0x35')][_0x0e82('0x30')](_0x4038b6)[_0x0e82('0x13')](handleEntityNotFound(_0x508981,null))['then'](function(_0x2274a0){var _0x348b00=[];values=_0x2274a0;if(_0x384218[_0x0e82('0x3c')][_0x0e82('0x53')]===_0x0e82('0x54')){_0x348b00[_0x0e82('0x3f')](get_open_tabs(_0x0e82('0x43'),_0x2274a0[_0x0e82('0x44')]));_0x348b00[_0x0e82('0x3f')](get_open_tabs(_0x0e82('0x55'),_0x2274a0['dataValues']));_0x348b00['push'](get_open_tabs('openchannel',_0x2274a0[_0x0e82('0x44')]));_0x348b00['push'](get_open_tabs(_0x0e82('0x48'),_0x2274a0[_0x0e82('0x44')]));_0x348b00['push'](get_open_tabs('fax',_0x2274a0[_0x0e82('0x44')]));_0x348b00[_0x0e82('0x3f')](get_open_tabs(_0x0e82('0x46'),_0x2274a0[_0x0e82('0x44')]));return BPromise[_0x0e82('0x56')](_0x348b00);}else{return values;}})[_0x0e82('0x13')](function(_0x34c5b3){return values;})[_0x0e82('0x13')](respondWithResult(_0x508981,null))[_0x0e82('0x1b')](handleError(_0x508981,null));};exports[_0x0e82('0x57')]=function(_0x4ce423,_0x30e9f1){if(_0x4ce423[_0x0e82('0x58')]['id']){delete _0x4ce423[_0x0e82('0x58')]['id'];}delete _0x4ce423[_0x0e82('0x58')][_0x0e82('0x26')];return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x4ce423[_0x0e82('0x49')]['id']}})['then'](handleEntityNotFound(_0x30e9f1,null))[_0x0e82('0x13')](saveUpdates(_0x4ce423[_0x0e82('0x58')],null))[_0x0e82('0x13')](respondWithResult(_0x30e9f1,null))[_0x0e82('0x1b')](handleError(_0x30e9f1,null));};exports[_0x0e82('0x59')]=function(_0x28f3b7,_0x2d1e59){return db[_0x0e82('0x35')][_0x0e82('0x59')]()['then'](respondWithResult(_0x2d1e59,null))[_0x0e82('0x1b')](handleError(_0x2d1e59,null));};exports['addContacts']=function(_0x320692,_0x5af72f){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x320692['params']['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x5af72f,null))[_0x0e82('0x13')](function(_0x244b42){if(_0x244b42){return _0x244b42[_0x0e82('0x5a')](_0x320692[_0x0e82('0x58')]['ids'],_[_0x0e82('0x5b')](_0x320692['body'],['ids','id'])||{});}})[_0x0e82('0x13')](respondWithResult(_0x5af72f,null))[_0x0e82('0x1b')](handleError(_0x5af72f,null));};function validateUser(_0x78762e){return new BPromise(function(_0x2e2aeb,_0x2bdca1){if(_0x78762e[_0x0e82('0x5c')])return _0x2e2aeb(_0x78762e);return db[_0x0e82('0x5d')][_0x0e82('0x5e')](0x1)[_0x0e82('0x13')](function(_0x2b89a2){if(_0x2b89a2['securePassword'])authService['validatePasswordPattern'](_0x78762e[_0x0e82('0x38')]);db['User'][_0x0e82('0x5f')](_0x0e82('0x5c'))['then'](function(_0x2cba0c){if(_[_0x0e82('0x60')](_0x2cba0c)){_0x78762e['internal']=_0x2b89a2[_0x0e82('0x61')]||0x1;return;}if(_[_0x0e82('0x60')](_0x2b89a2['min_internal'])||_0x2b89a2[_0x0e82('0x61')]===_0x2cba0c){_0x78762e['internal']=_0x2cba0c+0x1;return;}if(_0x2b89a2[_0x0e82('0x61')]>_0x2cba0c){_0x78762e[_0x0e82('0x5c')]=_0x2b89a2[_0x0e82('0x61')];return;}return db[_0x0e82('0x62')][_0x0e82('0x3c')](_0x0e82('0x63'),{'type':db[_0x0e82('0x62')][_0x0e82('0x64')][_0x0e82('0x65')]})[_0x0e82('0x13')](function(_0x4b256f){if(_0x4b256f&&_0x4b256f[_0x0e82('0x42')]){for(var _0x4a696b=0x0,_0x131698=_0x4b256f[_0x0e82('0x42')];_0x4a696b<_0x131698&&_[_0x0e82('0x60')](_0x78762e['internal']);_0x4a696b++){if(_0x2b89a2[_0x0e82('0x61')]<=_0x4b256f[_0x4a696b][_0x0e82('0x66')]){_0x78762e[_0x0e82('0x5c')]=_0x4b256f[_0x4a696b][_0x0e82('0x66')];}else if(_0x2b89a2[_0x0e82('0x61')]>_0x4b256f[_0x4a696b]['from']&&_0x2b89a2[_0x0e82('0x61')]<=_0x4b256f[_0x4a696b]['to']){_0x78762e['internal']=_0x2b89a2[_0x0e82('0x61')];}}}if(_[_0x0e82('0x60')](_0x78762e['internal'])){_0x78762e['internal']=_0x2cba0c+0x1;}return _0x2e2aeb(_0x78762e);});});})[_0x0e82('0x1b')](function(_0x2b154e){_0x2bdca1(_0x2b154e);});});}function updateUser(_0x1b2b8c){return new BPromise(function(_0x22791b,_0x1b6fcd){try{if(_0x1b2b8c[_0x0e82('0x67')]){_0x1b2b8c[_0x0e82('0x68')]=_0x1b2b8c[_0x0e82('0x5c')];_0x1b2b8c[_0x0e82('0x69')]={'mailbox':_0x1b2b8c['internal'],'password':_0x1b2b8c[_0x0e82('0x38')],'fullname':_0x1b2b8c[_0x0e82('0x6a')],'email':_0x1b2b8c['email']};}if(_0x1b2b8c['role']==='agent'){if(!_0x1b2b8c[_0x0e82('0x6b')])_0x1b2b8c[_0x0e82('0x6b')]=[_0x0e82('0x6c'),'102',_0x0e82('0x6d'),'113',_0x0e82('0x6e'),_0x0e82('0x6f'),_0x0e82('0x70'),_0x0e82('0x71'),_0x0e82('0x72'),'108',_0x0e82('0x73'),_0x0e82('0x74'),'111',_0x0e82('0x75'),_0x0e82('0x76')];}_0x22791b(_0x1b2b8c);}catch(_0x12f7b2){_0x1b6fcd(_0x12f7b2);}});}exports['create']=function(_0x2c6e71,_0x51d9a7){if(_0x2c6e71[_0x0e82('0x27')][_0x0e82('0x26')]===_0x0e82('0x29'))throw new Error(_0x0e82('0x77'));if(_0x2c6e71[_0x0e82('0x58')][_0x0e82('0x26')]===_0x0e82('0x27')&&_0x2c6e71[_0x0e82('0x27')]['role']!==_0x0e82('0x78')){throw new Error(_0x0e82('0x79'));}if(_0x2c6e71[_0x0e82('0x58')][_0x0e82('0x26')]===_0x0e82('0x78')&&_0x2c6e71['user'][_0x0e82('0x26')]!=='admin'){throw new Error(_0x0e82('0x7a'));}return licenseUtil['checkUserLimits']([_0x2c6e71[_0x0e82('0x58')]])[_0x0e82('0x13')](function(){return validateUser(_0x2c6e71['body']);})[_0x0e82('0x13')](function(_0x1ad736){return updateUser(_0x1ad736)[_0x0e82('0x13')](function(_0x5d07d6){if(_0x5d07d6['role']==='admin'){_0x5d07d6[_0x0e82('0x7b')]=_0x2c6e71[_0x0e82('0x27')][_0x0e82('0x7b')];delete _0x5d07d6['userProfileId'];}return _0x5d07d6;});})[_0x0e82('0x13')](function(_0x9a9927){return db[_0x0e82('0x35')][_0x0e82('0x7c')](_0x9a9927,{'include':[{'model':db[_0x0e82('0x69')],'as':_0x0e82('0x69')}]});})[_0x0e82('0x13')](function(_0x446a39){if(_0x2c6e71['body'][_0x0e82('0x26')]===_0x0e82('0x27'))return _0x446a39;if(_0x2c6e71[_0x0e82('0x27')][_0x0e82('0x26')]!==_0x0e82('0x27'))return _0x446a39;return db[_0x0e82('0x7d')][_0x0e82('0x30')]({'where':{'name':_0x446a39[_0x0e82('0x26')]==='agent'?_0x0e82('0x28'):'Telephones','userProfileId':_0x2c6e71['user']['userProfileId']},'raw':!![]})[_0x0e82('0x13')](function(_0xdd6323){if(!_0xdd6323||_0xdd6323[_0x0e82('0x7e')]!=0x0)return _0x446a39;return db[_0x0e82('0x32')]['create']({'name':_0x446a39[_0x0e82('0x31')],'resourceId':_0x446a39['id'],'type':_0xdd6323['name'],'sectionId':_0xdd6323['id']},{})[_0x0e82('0x13')](function(){return _0x446a39;});})[_0x0e82('0x1b')](function(_0x53598e){logger[_0x0e82('0x17')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x53598e);throw _0x53598e;});})['then'](respondWithResult(_0x51d9a7,0xc9))[_0x0e82('0x1b')](handleError(_0x51d9a7,null));};exports[_0x0e82('0x7f')]=function(_0x48f580,_0x5b358e){var _0xaadfbe=_0x48f580[_0x0e82('0x58')];var _0x154a14=[];if(_0x48f580[_0x0e82('0x27')][_0x0e82('0x26')]===_0x0e82('0x29'))throw new Error(_0x0e82('0x77'));if(_[_0x0e82('0x80')](_0xaadfbe,['role','user'])&&_0x48f580[_0x0e82('0x27')][_0x0e82('0x26')]!==_0x0e82('0x78')){throw new Error(_0x0e82('0x79'));}if(_[_0x0e82('0x80')](_0xaadfbe,[_0x0e82('0x26'),_0x0e82('0x78')])&&_0x48f580['user'][_0x0e82('0x26')]!=='admin'){throw new Error('Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20administrator');}return licenseUtil[_0x0e82('0x81')](_0xaadfbe)['then'](function(){return validateUser(_0xaadfbe[0x0]);})[_0x0e82('0x13')](function(){for(var _0x2ca1e2=0x1;_0x2ca1e2<_0xaadfbe['length'];_0x2ca1e2++){var _0x427aee=_0xaadfbe[_0x2ca1e2-0x1][_0x0e82('0x5c')];if(!_0xaadfbe[_0x2ca1e2][_0x0e82('0x5c')])_0xaadfbe[_0x2ca1e2][_0x0e82('0x5c')]=_0x427aee+0x1;_0x154a14[_0x0e82('0x3f')](validateUser(_0xaadfbe[_0x2ca1e2]));}return BPromise[_0x0e82('0x56')](_0x154a14);})[_0x0e82('0x13')](function(){_0x154a14=[];for(var _0x5a3b88=0x0;_0x5a3b88<_0xaadfbe[_0x0e82('0x42')];_0x5a3b88++){_0x154a14['push'](updateUser(_0xaadfbe[_0x5a3b88]));}return BPromise['all'](_0x154a14);})['then'](function(){return BPromise[_0x0e82('0x82')](_0xaadfbe,function(_0x30f947){return db[_0x0e82('0x35')][_0x0e82('0x7c')](_0x30f947,{'include':[{'model':db[_0x0e82('0x69')],'as':_0x0e82('0x69')}]})['then'](function(_0x890f08){_0x30f947['id']=_0x890f08['id'];return _0x30f947;});});})['then'](function(_0x5f59f1){if(_0x48f580['body'][_0x0e82('0x26')]==='user')return _0x5f59f1;if(_0x48f580['user'][_0x0e82('0x26')]!==_0x0e82('0x27'))return _0x5f59f1;var _0x4d8b98=_[_0x0e82('0x80')](_0x5f59f1,function(_0x463093){return _0x463093['role']===_0x0e82('0x29')||_0x463093[_0x0e82('0x26')]===_0x0e82('0x2a');});if(!_0x4d8b98)return _0x5f59f1;return db['UserProfileSection'][_0x0e82('0x40')]({'where':{'name':{'$or':[_0x0e82('0x28'),'Telephones']},'userProfileId':_0x48f580[_0x0e82('0x27')][_0x0e82('0x83')]},'raw':!![]})['then'](function(_0x112305){if(_[_0x0e82('0x84')](_0x112305)||!_['some'](_0x112305,[_0x0e82('0x7e'),0x0]))return _0x5f59f1;_0x154a14=[];var _0x2461fd=_(_0x112305)[_0x0e82('0x2d')](function(_0x283e49){if(_0x283e49['autoAssociation']===0x1)return;return _0x283e49['name']===_0x0e82('0x28')?_0x0e82('0x29'):_0x0e82('0x2a');})[_0x0e82('0x85')]()[_0x0e82('0x2e')]();for(var _0x2b1f99=0x0;_0x2b1f99<_0x5f59f1[_0x0e82('0x42')];_0x2b1f99++){if(!_[_0x0e82('0x2f')](_0x2461fd,_0x5f59f1[_0x2b1f99][_0x0e82('0x26')]))return;var _0x5837d8=_0x5f59f1[_0x2b1f99][_0x0e82('0x26')]===_0x0e82('0x29')?_0x0e82('0x28'):_0x0e82('0x86');_0x154a14['push'](db[_0x0e82('0x32')][_0x0e82('0x7c')]({'name':_0x5f59f1[_0x2b1f99]['name'],'resourceId':_0x5f59f1[_0x2b1f99]['id'],'type':_0x5837d8,'sectionId':_[_0x0e82('0x30')](_0x112305,[_0x0e82('0x31'),_0x5837d8])['id']},{}));}return BPromise[_0x0e82('0x56')](_0x154a14);});})[_0x0e82('0x13')](respondWithResult(_0x5b358e,0xc9))[_0x0e82('0x1b')](handleError(_0x5b358e,null));};exports[_0x0e82('0x87')]=function(_0x50b65f,_0x17a56d){if(_0x50b65f['body']['id']){delete _0x50b65f[_0x0e82('0x58')]['id'];}return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x50b65f[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](function(_0x17b93c){if(!_0x17b93c)return null;if(_0x17b93c['id']===_0x50b65f[_0x0e82('0x27')]['id']){if(!_0x50b65f[_0x0e82('0x58')]['oldPassword']||!_0x50b65f[_0x0e82('0x58')][_0x0e82('0x88')]){throw new db[(_0x0e82('0x89'))]['ValidationError'](_0x0e82('0x8a'));}if(!_0x17b93c['authenticate'](_0x50b65f[_0x0e82('0x58')]['oldPassword'])){throw new db[(_0x0e82('0x89'))][(_0x0e82('0x8b'))](_0x0e82('0x8c'));}if(_0x50b65f['body'][_0x0e82('0x8d')]===_0x50b65f[_0x0e82('0x58')][_0x0e82('0x88')]){throw new db[(_0x0e82('0x89'))]['ValidationError'](_0x0e82('0x8e'));}}else if(_0x50b65f[_0x0e82('0x27')][_0x0e82('0x26')]===_0x0e82('0x78')){if(!_0x50b65f[_0x0e82('0x58')]['newPassword']){throw new db[(_0x0e82('0x89'))][(_0x0e82('0x8b'))](_0x0e82('0x8f'));}}else if(_0x50b65f[_0x0e82('0x27')][_0x0e82('0x26')]==='user'){if(!_0x50b65f['body'][_0x0e82('0x88')]){throw new db[(_0x0e82('0x89'))]['ValidationError']('Invalid\x20body\x20format.\x20Use\x20newPassword');}if(_0x17b93c[_0x0e82('0x26')]!==_0x0e82('0x29')){throw new db[(_0x0e82('0x89'))][(_0x0e82('0x8b'))](_0x0e82('0x77'));}}else{throw new db[(_0x0e82('0x89'))]['ValidationError'](_0x0e82('0x77'));}return _0x17b93c;})[_0x0e82('0x13')](handleEntityNotFound(_0x17a56d,null))[_0x0e82('0x13')](function(_0x29e98d){return db['Setting']['findOne']({'attributes':['id',_0x0e82('0x90'),_0x0e82('0x91'),_0x0e82('0x92')]})[_0x0e82('0x13')](function(_0x2bef61){if(_0x2bef61['securePassword'])authService['validatePasswordPattern'](_0x50b65f[_0x0e82('0x58')]['newPassword']);if(!_0x2bef61[_0x0e82('0x91')]||!_0x29e98d['previousPasswords'])return _0x29e98d;authService[_0x0e82('0x93')](_0x50b65f[_0x0e82('0x58')][_0x0e82('0x88')],_0x29e98d[_0x0e82('0x94')],_0x2bef61[_0x0e82('0x92')]);return _0x29e98d;})[_0x0e82('0x13')](saveUpdates({'password':_0x50b65f['body']['newPassword'],'passwordResetAt':_0x50b65f[_0x0e82('0x27')]['id']==_0x50b65f['params']['id']?moment():null,'previousPasswords':authService[_0x0e82('0x95')](_0x50b65f[_0x0e82('0x58')][_0x0e82('0x88')],_0x29e98d[_0x0e82('0x94')])},null));})[_0x0e82('0x13')](respondWithResult(_0x17a56d,null))[_0x0e82('0x1b')](handleError(_0x17a56d,null));};exports[_0x0e82('0x96')]=function(_0x1e305f,_0x25c63b){var _0x5333bd=_0x1e305f[_0x0e82('0x58')][_0x0e82('0x97')];return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x1e305f[_0x0e82('0x49')]['id']},'attributes':['id',_0x0e82('0x31'),'role',_0x0e82('0x98'),_0x0e82('0x99'),_0x0e82('0x9a'),'interface']})[_0x0e82('0x13')](handleEntityNotFound(_0x25c63b,null))[_0x0e82('0x13')](function(_0x5581e6){if(_0x5581e6){if(!utils[_0x0e82('0x9b')](_0x5333bd)){throw new db[(_0x0e82('0x89'))]['ValidationError'](_0x0e82('0x9c'));}return _0x5581e6[_0x0e82('0x9d')+_[_0x0e82('0x9e')](_0x5333bd[_0x0e82('0x9f')]())+_0x0e82('0xa0')](_0x1e305f[_0x0e82('0x58')][_0x0e82('0xa1')],{'penalty':_0x1e305f[_0x0e82('0x58')][_0x0e82('0xa2')]||0x0})[_0x0e82('0xa3')](function(_0x4dff8e){for(var _0x2d6234=0x0;_0x2d6234<_0x1e305f['body']['ids'][_0x0e82('0x42')];_0x2d6234+=0x1){var _0x4b3009={'UserId':Number(_0x1e305f[_0x0e82('0x49')]['id'])};_0x4b3009[_[_0x0e82('0x9e')](_0x5333bd[_0x0e82('0x9f')]())+_0x0e82('0xa4')]=Number(_0x1e305f[_0x0e82('0x58')]['ids'][_0x2d6234]);socket[_0x0e82('0xa5')](_0x0e82('0x27')+_['capitalize'](_0x5333bd['toLowerCase']())+_0x0e82('0xa6'),_0x4b3009);}return _0x4dff8e;})['then'](function(){if(_0x5333bd===_0x0e82('0xa7')){return db[_0x0e82('0xa8')][_0x0e82('0x40')]({'where':{'id':_0x1e305f['body']['ids']||[]},'raw':!![],'attributes':['id',_0x0e82('0x31')]});}})['then'](function(_0x2d6d4c){var _0x5ea7fa=_0x5581e6[_0x0e82('0xa9')]({'plain':!![]});var _0xdb4057=[];if(_0x5333bd==='voice'&&_0x5ea7fa[_0x0e82('0x26')]===_0x0e82('0x29')&&_0x5ea7fa['online']){for(var _0x22da22=0x0;_0x22da22<_0x2d6d4c[_0x0e82('0x42')];_0x22da22+=0x1){_0xdb4057['push']({'membername':_0x5ea7fa['name'],'UserId':_0x5ea7fa['id'],'queue_name':_0x2d6d4c[_0x22da22][_0x0e82('0x31')],'VoiceQueueId':_0x2d6d4c[_0x22da22]['id'],'interface':_['isNil'](_0x5ea7fa[_0x0e82('0xaa')])?util[_0x0e82('0xab')]('SIP/%s',_0x5ea7fa['name']):_0x5ea7fa[_0x0e82('0xaa')],'paused':_0x5ea7fa['voicePause']||![],'penalty':_0x1e305f[_0x0e82('0x58')][_0x0e82('0xa2')]||0x0});}return BPromise[_0x0e82('0x82')](_0xdb4057,function(_0x2f741c){return db['UserVoiceQueueRt']['upsert'](_0x2f741c);});}return _0x5581e6;});}})[_0x0e82('0x13')](respondWithStatusCode(_0x25c63b,null))[_0x0e82('0x1b')](handleError(_0x25c63b,null));};exports[_0x0e82('0xac')]=function(_0x1c54a1,_0x524627){var _0x46e722;return db['User'][_0x0e82('0x30')]({'where':{'id':_0x1c54a1[_0x0e82('0x49')]['id']},'attributes':['id','name',_0x0e82('0x26')]})['then'](handleEntityNotFound(_0x524627,null))['then'](function(_0x116462){if(_0x116462){_0x46e722=_0x116462;if(!_0x1c54a1[_0x0e82('0x3c')][_0x0e82('0x97')]||!utils[_0x0e82('0x9b')](_0x1c54a1[_0x0e82('0x3c')][_0x0e82('0x97')])){throw new db[(_0x0e82('0x89'))]['ValidationError']('Unknown\x20channel');}return _0x116462['remove'+_[_0x0e82('0x9e')](_0x1c54a1[_0x0e82('0x3c')]['channel'][_0x0e82('0x9f')]())+_0x0e82('0xa0')](_0x1c54a1[_0x0e82('0x3c')][_0x0e82('0xa1')]);}})[_0x0e82('0x13')](function(_0x1fc1ee){if(_['isArray'](_0x1c54a1[_0x0e82('0x3c')][_0x0e82('0xa1')])){for(var _0x3e4d27=0x0;_0x3e4d27<_0x1c54a1[_0x0e82('0x3c')][_0x0e82('0xa1')][_0x0e82('0x42')];_0x3e4d27+=0x1){var _0x4e33a4={'UserId':Number(_0x1c54a1[_0x0e82('0x49')]['id'])};_0x4e33a4[_[_0x0e82('0x9e')](_0x1c54a1[_0x0e82('0x3c')][_0x0e82('0x97')]['toLowerCase']())+_0x0e82('0xa4')]=Number(_0x1c54a1[_0x0e82('0x3c')][_0x0e82('0xa1')][_0x3e4d27]);socket[_0x0e82('0xa5')](_0x0e82('0x27')+_[_0x0e82('0x9e')](_0x1c54a1['query'][_0x0e82('0x97')]['toLowerCase']())+_0x0e82('0xad'),_0x4e33a4);}}else{var _0x4e33a4={'UserId':Number(_0x1c54a1[_0x0e82('0x49')]['id'])};_0x4e33a4[_[_0x0e82('0x9e')](_0x1c54a1['query'][_0x0e82('0x97')]['toLowerCase']())+'QueueId']=Number(_0x1c54a1['query']['ids']);socket[_0x0e82('0xa5')](_0x0e82('0x27')+_[_0x0e82('0x9e')](_0x1c54a1['query'][_0x0e82('0x97')][_0x0e82('0x9f')]())+_0x0e82('0xad'),_0x4e33a4);}return _0x1fc1ee;})['then'](function(){if(_0x1c54a1['query'][_0x0e82('0x97')]===_0x0e82('0xa7')){return db[_0x0e82('0xae')][_0x0e82('0x25')]({'where':{'UserId':_0x1c54a1[_0x0e82('0x49')]['id'],'VoiceQueueId':_0x1c54a1[_0x0e82('0x3c')]['ids']},'individualHooks':!![]})[_0x0e82('0x13')](function(){return _0x46e722;});}return _0x46e722;})[_0x0e82('0x13')](respondWithStatusCode(_0x524627,null))[_0x0e82('0x1b')](handleError(_0x524627,null));};exports[_0x0e82('0xaf')]=function(_0x2f59ee,_0x3b8d7e){_0x2f59ee[_0x0e82('0x58')][_0x0e82('0xb0')]=_0x2f59ee['file'][_0x0e82('0xb1')];return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x2f59ee[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x3b8d7e,null))[_0x0e82('0x13')](saveUpdates(_0x2f59ee[_0x0e82('0x58')],null))['then'](respondWithResult(_0x3b8d7e,null))['catch'](handleError(_0x3b8d7e,null));};exports[_0x0e82('0xb2')]=function(_0xdea2c2,_0x1e4fb8){var _0xfeb7e9=path['join'](config[_0x0e82('0xb3')],_0x0e82('0xb4'));return db[_0x0e82('0x35')]['find']({'where':{'id':_0xdea2c2[_0x0e82('0x49')]['id']},'attributes':['id',_0x0e82('0xb0')],'raw':!![]})[_0x0e82('0x13')](handleEntityNotFound(_0x1e4fb8,null))[_0x0e82('0x13')](function(_0x2fcc6b){if(_0x2fcc6b){if(_[_0x0e82('0x60')](_0x2fcc6b[_0x0e82('0xb0')])){return _0x1e4fb8[_0x0e82('0xb5')](_0xfeb7e9);}else{if(!fs[_0x0e82('0xb6')](path[_0x0e82('0xb7')](config['root'],'server/files/images/',_0x2fcc6b[_0x0e82('0xb0')]))){return _0x1e4fb8[_0x0e82('0xb5')](_0xfeb7e9);}return _0x1e4fb8['download'](path[_0x0e82('0xb7')](config[_0x0e82('0xb3')],_0x0e82('0xb8'),_0x2fcc6b[_0x0e82('0xb0')]));}}})['catch'](handleError(_0x1e4fb8,null));};exports['getOpenTabs']=function(_0x44302b,_0x426f48){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x44302b[_0x0e82('0x49')]['id']},'attributes':['id']})[_0x0e82('0x13')](handleEntityNotFound(_0x426f48,null))[_0x0e82('0x13')](function(_0x359e78){var _0x4b2d8d=[];values=_0x359e78[_0x0e82('0x44')];_0x4b2d8d[_0x0e82('0x3f')](get_open_tabs('chat',_0x359e78[_0x0e82('0x44')]));_0x4b2d8d[_0x0e82('0x3f')](get_open_tabs('sms',_0x359e78['dataValues']));_0x4b2d8d[_0x0e82('0x3f')](get_open_tabs(_0x0e82('0x47'),_0x359e78['dataValues']));_0x4b2d8d[_0x0e82('0x3f')](get_open_tabs('whatsapp',_0x359e78[_0x0e82('0x44')]));_0x4b2d8d[_0x0e82('0x3f')](get_open_tabs('fax',_0x359e78[_0x0e82('0x44')]));_0x4b2d8d['push'](get_open_tabs('mail',_0x359e78['dataValues']));return BPromise[_0x0e82('0x56')](_0x4b2d8d);})[_0x0e82('0x13')](function(_0x200a97){var _0x5b9692=[];if(_0x200a97){for(var _0x1ecd40=0x0;_0x1ecd40<values[_0x0e82('0xb9')]['length'];_0x1ecd40++){var _0x7f3f4e=values[_0x0e82('0xb9')][_0x1ecd40];_0x5b9692[_0x0e82('0x3f')]({'channel':_0x0e82('0xba'),'id':_0x7f3f4e['id'],'createdAt':_0x7f3f4e[_0x0e82('0xbb')]});}for(var _0x1ecd40=0x0;_0x1ecd40<values[_0x0e82('0xbc')][_0x0e82('0x42')];_0x1ecd40++){var _0x7f3f4e=values[_0x0e82('0xbc')][_0x1ecd40];_0x5b9692[_0x0e82('0x3f')]({'channel':'FAX','id':_0x7f3f4e['id'],'createdAt':_0x7f3f4e[_0x0e82('0xbb')]});}for(var _0x1ecd40=0x0;_0x1ecd40<values[_0x0e82('0xbd')][_0x0e82('0x42')];_0x1ecd40++){var _0x7f3f4e=values[_0x0e82('0xbd')][_0x1ecd40];_0x5b9692['push']({'channel':'OPENCHANNEL','id':_0x7f3f4e['id'],'createdAt':_0x7f3f4e[_0x0e82('0xbb')]});}for(var _0x1ecd40=0x0;_0x1ecd40<values[_0x0e82('0xbe')]['length'];_0x1ecd40++){var _0x7f3f4e=values[_0x0e82('0xbe')][_0x1ecd40];_0x5b9692[_0x0e82('0x3f')]({'channel':_0x0e82('0xbf'),'id':_0x7f3f4e['id'],'createdAt':_0x7f3f4e[_0x0e82('0xbb')]});}for(var _0x1ecd40=0x0;_0x1ecd40<values[_0x0e82('0xc0')][_0x0e82('0x42')];_0x1ecd40++){var _0x7f3f4e=values[_0x0e82('0xc0')][_0x1ecd40];_0x5b9692[_0x0e82('0x3f')]({'channel':_0x0e82('0xc1'),'id':_0x7f3f4e['id'],'createdAt':_0x7f3f4e['createdAt']});}for(var _0x1ecd40=0x0;_0x1ecd40<values['WhatsappOpenTabs'][_0x0e82('0x42')];_0x1ecd40++){var _0x7f3f4e=values[_0x0e82('0xc2')][_0x1ecd40];_0x5b9692[_0x0e82('0x3f')]({'channel':'WHATSAPP','id':_0x7f3f4e['id'],'createdAt':_0x7f3f4e[_0x0e82('0xbb')]});}var _0x169aef={'count':_0x5b9692['length'],'rows':_0x5b9692};return _0x169aef;}else return null;})[_0x0e82('0x13')](respondWithResult(_0x426f48,null))[_0x0e82('0x1b')](handleError(_0x426f48,null));};exports[_0x0e82('0xc3')]=function(_0x5b9928,_0x2d4c57){var _0x5dae3c={};var _0x30d560={};var _0x3350ae;var _0x174338;return db[_0x0e82('0x35')]['findOne']({'where':{'id':_0x5b9928[_0x0e82('0x49')]['id']}})['then'](handleEntityNotFound(_0x2d4c57,null))[_0x0e82('0x13')](function(_0x35b946){if(_0x35b946){_0x3350ae=_0x35b946;_0x30d560[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db['CmContact']['rawAttributes']);_0x30d560[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x5b9928[_0x0e82('0x3c')]);_0x30d560[_0x0e82('0x4d')]=_['intersection'](_0x30d560[_0x0e82('0x4a')],_0x30d560['query']);_0x5dae3c['attributes']=_[_0x0e82('0x4e')](_0x30d560['model'],qs[_0x0e82('0x4f')](_0x5b9928[_0x0e82('0x3c')]['fields']));_0x5dae3c[_0x0e82('0x3e')]=_0x5dae3c[_0x0e82('0x3e')]['length']?_0x5dae3c[_0x0e82('0x3e')]:_0x30d560[_0x0e82('0x4a')];_0x5dae3c[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x5b9928[_0x0e82('0x3c')]['sort']);_0x5dae3c[_0x0e82('0x3b')]=qs['filters'](_[_0x0e82('0xc6')](_0x5b9928['query'],_0x30d560[_0x0e82('0x4d')]));if(_0x5b9928[_0x0e82('0x3c')]['filter']){_0x5dae3c[_0x0e82('0x3b')]=_['merge'](_0x5dae3c[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0x5dae3c[_0x0e82('0x3e')],function(_0x3fccea){var _0x3f312e={};_0x3f312e[_0x3fccea]={'$like':'%'+_0x5b9928[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x3f312e;})});}_0x5dae3c=_['merge']({},_0x5dae3c,_0x5b9928[_0x0e82('0x52')]);return _0x3350ae[_0x0e82('0xc3')](_0x5dae3c);}})[_0x0e82('0x13')](function(_0xc15be3){if(_0xc15be3){_0x174338=_0xc15be3[_0x0e82('0x42')];if(_0x5b9928[_0x0e82('0x3c')][_0x0e82('0xc7')](_0x0e82('0x50'))){_0x5dae3c[_0x0e82('0x3d')]=[{'model':db['CmList'],'as':_0x0e82('0xc8'),'required':![]},{'model':db[_0x0e82('0xc9')],'as':'Tags','attributes':['id','name',_0x0e82('0xca')],'where':_0x5b9928[_0x0e82('0x3c')]['tag']?{'id':_0x5b9928[_0x0e82('0x3c')][_0x0e82('0xcb')]}:undefined,'required':_0x5b9928[_0x0e82('0x3c')][_0x0e82('0xcb')]?!![]:![]}];}if(!_0x5b9928[_0x0e82('0x3c')][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x5dae3c[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x5b9928[_0x0e82('0x3c')]['limit']);_0x5dae3c[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x5b9928[_0x0e82('0x3c')][_0x0e82('0x20')]);}return _0x3350ae['getContacts'](_0x5dae3c);}})[_0x0e82('0x13')](function(_0x2a08e8){if(_0x2a08e8){return _0x2a08e8?{'count':_0x174338,'rows':_0x2a08e8}:null;}})['then'](respondWithResult(_0x2d4c57,null))[_0x0e82('0x1b')](handleError(_0x2d4c57,null));};exports[_0x0e82('0xcd')]=function(_0x276ed7,_0x48713e){var _0x181abf;var _0x55304d;var _0x3baeb3={};var _0x1cc153;return db[_0x0e82('0x35')]['findOne']({'where':{'id':_0x276ed7[_0x0e82('0x49')]['id']},'attributes':['id',_0x0e82('0x31'),_0x0e82('0x26')]})['then'](handleEntityNotFound(_0x48713e,null))['then'](function(_0x45e2ff){if(!utils[_0x0e82('0x9b')](_0x276ed7[_0x0e82('0x3c')][_0x0e82('0x97')])){throw new db[(_0x0e82('0x89'))][(_0x0e82('0x8b'))](_0x0e82('0x9c'));}_0x181abf=_0x45e2ff;var _0x4a74bf={};_0x4a74bf[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_[_0x0e82('0x9e')](_0x276ed7[_0x0e82('0x3c')][_0x0e82('0x97')])+_0x0e82('0xce')][_0x0e82('0x36')]);_0x4a74bf[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x276ed7[_0x0e82('0x3c')]);_0x4a74bf[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x4a74bf[_0x0e82('0x4a')],_0x4a74bf[_0x0e82('0x3c')]);_0x3baeb3[_0x0e82('0x3e')]=_[_0x0e82('0x4e')](_0x4a74bf['model'],qs['fields'](_0x276ed7['query'][_0x0e82('0x4f')]));_0x3baeb3[_0x0e82('0x3e')]=_0x3baeb3[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x3baeb3['attributes']:_0x4a74bf['model'];_0x3baeb3['order']=qs['sort'](_0x276ed7[_0x0e82('0x3c')]['sort']);_0x3baeb3['where']=qs[_0x0e82('0x4d')](_['pick'](_0x276ed7['query'],_0x4a74bf[_0x0e82('0x4d')]));if(_0x276ed7[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x3baeb3[_0x0e82('0x3b')]=_['merge'](_0x3baeb3[_0x0e82('0x3b')],{'$or':_['map'](_0x3baeb3[_0x0e82('0x3e')],function(_0xc1957a){var _0x3119f9={};_0x3119f9[_0xc1957a]={'$like':'%'+_0x276ed7[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x3119f9;})});}_0x3baeb3=_['merge']({},_0x3baeb3,_0x276ed7[_0x0e82('0x52')]);switch(_0x181abf[_0x0e82('0x26')]){case _0x0e82('0x78'):return db[_['capitalize'](_0x276ed7[_0x0e82('0x3c')][_0x0e82('0x97')])+_0x0e82('0xce')][_0x0e82('0x40')](_0x3baeb3);case _0x0e82('0x27'):case _0x0e82('0x29'):return _0x181abf[_0x0e82('0xa9')+_[_0x0e82('0x9e')](_0x276ed7[_0x0e82('0x3c')][_0x0e82('0x97')])+_0x0e82('0xa0')](_0x3baeb3);default:throw new db[(_0x0e82('0x89'))]['ValidationError'](_0x0e82('0xcf'));}})[_0x0e82('0x13')](function(_0x2e224b){_0x1cc153=_0x2e224b[_0x0e82('0x42')];if(!_0x276ed7['query'][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x3baeb3[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x276ed7[_0x0e82('0x3c')]['limit']);_0x3baeb3[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x276ed7[_0x0e82('0x3c')]['offset']);}switch(_0x181abf[_0x0e82('0x26')]){case'admin':return db[_[_0x0e82('0x9e')](_0x276ed7['query'][_0x0e82('0x97')])+_0x0e82('0xce')][_0x0e82('0x40')](_0x3baeb3);case _0x0e82('0x27'):case _0x0e82('0x29'):return _0x181abf[_0x0e82('0xa9')+_[_0x0e82('0x9e')](_0x276ed7[_0x0e82('0x3c')][_0x0e82('0x97')])+_0x0e82('0xa0')](_0x3baeb3);}})['then'](function(_0x24a277){return{'count':_0x1cc153,'rows':_0x24a277};})[_0x0e82('0x13')](respondWithResult(_0x48713e,null))[_0x0e82('0x1b')](handleError(_0x48713e,null));};exports[_0x0e82('0xd0')]=function(_0x5c0f97,_0xbb2b8c){var _0x2e0016={};var _0x50bd57={};var _0x19188a;var _0x5ac3d2;return db[_0x0e82('0x35')][_0x0e82('0xd1')]({'where':{'id':_0x5c0f97[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0xbb2b8c,null))[_0x0e82('0x13')](function(_0x5be286){if(_0x5be286){_0x19188a=_0x5be286;_0x50bd57[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_0x0e82('0xae')][_0x0e82('0x36')]);_0x50bd57['query']=_[_0x0e82('0x4c')](_0x5c0f97[_0x0e82('0x3c')]);_0x50bd57[_0x0e82('0x4d')]=_['intersection'](_0x50bd57['model'],_0x50bd57[_0x0e82('0x3c')]);_0x2e0016[_0x0e82('0x3e')]=_[_0x0e82('0x4e')](_0x50bd57[_0x0e82('0x4a')],qs[_0x0e82('0x4f')](_0x5c0f97[_0x0e82('0x3c')][_0x0e82('0x4f')]));_0x2e0016[_0x0e82('0x3e')]=_0x2e0016[_0x0e82('0x3e')]['length']?_0x2e0016['attributes']:_0x50bd57['model'];_0x2e0016[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x5c0f97[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x2e0016[_0x0e82('0x3b')]=qs['filters'](_[_0x0e82('0xc6')](_0x5c0f97[_0x0e82('0x3c')],_0x50bd57['filters']));if(_0x5c0f97[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x2e0016[_0x0e82('0x3b')]=_[_0x0e82('0x51')](_0x2e0016[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0x2e0016[_0x0e82('0x3e')],function(_0x2d31ce){var _0x41f803={};_0x41f803[_0x2d31ce]={'$like':'%'+_0x5c0f97[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x41f803;})});}_0x2e0016=_[_0x0e82('0x51')]({},_0x2e0016,_0x5c0f97[_0x0e82('0x52')]);return _0x19188a[_0x0e82('0xd0')](_0x2e0016);}})[_0x0e82('0x13')](function(_0x404eba){if(_0x404eba){_0x5ac3d2=_0x404eba[_0x0e82('0x42')];if(!_0x5c0f97[_0x0e82('0x3c')][_0x0e82('0xc7')]('nolimit')){_0x2e0016[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x5c0f97[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x2e0016[_0x0e82('0x20')]=qs['offset'](_0x5c0f97[_0x0e82('0x3c')][_0x0e82('0x20')]);}return _0x19188a[_0x0e82('0xd0')](_0x2e0016);}})[_0x0e82('0x13')](function(_0x2e5642){if(_0x2e5642){return _0x2e5642?{'count':_0x5ac3d2,'rows':_0x2e5642}:null;}})['then'](respondWithResult(_0xbb2b8c,null))[_0x0e82('0x1b')](handleError(_0xbb2b8c,null));};exports[_0x0e82('0xd2')]=function(_0x37debb,_0x370e11){var _0x43ccec={};var _0x2bd07c={};var _0x4b27f2;var _0x104de4;return db[_0x0e82('0x35')]['findOne']({'where':{'id':_0x37debb[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x370e11,null))[_0x0e82('0x13')](function(_0x55eb6b){if(_0x55eb6b){_0x4b27f2=_0x55eb6b;_0x2bd07c[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_0x0e82('0xd3')][_0x0e82('0x36')]);_0x2bd07c['query']=_['keys'](_0x37debb[_0x0e82('0x3c')]);_0x2bd07c[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x2bd07c[_0x0e82('0x4a')],_0x2bd07c[_0x0e82('0x3c')]);_0x43ccec['attributes']=_[_0x0e82('0x4e')](_0x2bd07c['model'],qs['fields'](_0x37debb['query']['fields']));_0x43ccec['attributes']=_0x43ccec['attributes'][_0x0e82('0x42')]?_0x43ccec[_0x0e82('0x3e')]:_0x2bd07c[_0x0e82('0x4a')];_0x43ccec[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x37debb[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x43ccec[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x37debb[_0x0e82('0x3c')],_0x2bd07c[_0x0e82('0x4d')]));if(_0x37debb[_0x0e82('0x3c')]['filter']){_0x43ccec[_0x0e82('0x3b')]=_['merge'](_0x43ccec['where'],{'$or':_[_0x0e82('0x2d')](_0x43ccec[_0x0e82('0x3e')],function(_0x425174){var _0x181584={};_0x181584[_0x425174]={'$like':'%'+_0x37debb[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x181584;})});}_0x43ccec=_[_0x0e82('0x51')]({},_0x43ccec,_0x37debb[_0x0e82('0x52')]);return _0x4b27f2['getGroups'](_0x43ccec);}})[_0x0e82('0x13')](function(_0x3228e9){if(_0x3228e9){_0x104de4=_0x3228e9[_0x0e82('0x42')];if(!_0x37debb[_0x0e82('0x3c')][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x43ccec[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x37debb[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x43ccec[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x37debb[_0x0e82('0x3c')][_0x0e82('0x20')]);}return _0x4b27f2[_0x0e82('0xd2')](_0x43ccec);}})[_0x0e82('0x13')](function(_0x229752){if(_0x229752){return _0x229752?{'count':_0x104de4,'rows':_0x229752}:null;}})[_0x0e82('0x13')](respondWithResult(_0x370e11,null))[_0x0e82('0x1b')](handleError(_0x370e11,null));};exports['getRecordings']=function(_0x410ac2,_0x3225ab){var _0x4e51ef={'raw':!![],'where':{}};var _0x205662={};var _0x2ca4c4={'count':0x0,'rows':[]};return db['User']['findOne']({'where':{'id':_0x410ac2['params']['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x3225ab,null))[_0x0e82('0x13')](function(_0x491a71){if(_0x491a71){_0x205662[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db['VoiceRecording'][_0x0e82('0x36')]);_0x205662[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x410ac2[_0x0e82('0x3c')]);_0x205662[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x205662[_0x0e82('0x4a')],_0x205662[_0x0e82('0x3c')]);_0x4e51ef[_0x0e82('0x3e')]=_[_0x0e82('0x4e')](_0x205662[_0x0e82('0x4a')],qs[_0x0e82('0x4f')](_0x410ac2[_0x0e82('0x3c')][_0x0e82('0x4f')]));_0x4e51ef['attributes']=_0x4e51ef[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x4e51ef[_0x0e82('0x3e')]:_0x205662[_0x0e82('0x4a')];if(!_0x410ac2[_0x0e82('0x3c')][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x4e51ef[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x410ac2[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x4e51ef[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x410ac2[_0x0e82('0x3c')]['offset']);}_0x4e51ef[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x410ac2[_0x0e82('0x3c')]['sort']);_0x4e51ef['where']=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x410ac2[_0x0e82('0x3c')],_0x205662[_0x0e82('0x4d')]));_0x4e51ef['where']['UserId']=_0x491a71['id'];if(_0x410ac2[_0x0e82('0x3c')]['filter']){_0x4e51ef[_0x0e82('0x3b')]=_[_0x0e82('0x51')](_0x4e51ef[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0x4e51ef[_0x0e82('0x3e')],function(_0x134cae){var _0x466d6f={};_0x466d6f[_0x134cae]={'$like':'%'+_0x410ac2[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x466d6f;})});}_0x4e51ef=_[_0x0e82('0x51')]({},_0x4e51ef,_0x410ac2[_0x0e82('0x52')]);return db[_0x0e82('0xd4')][_0x0e82('0x23')]({'where':_0x4e51ef[_0x0e82('0x3b')]})[_0x0e82('0x13')](function(_0x2819dd){_0x2ca4c4['count']=_0x2819dd;if(_0x410ac2[_0x0e82('0x3c')][_0x0e82('0x50')]){_0x4e51ef[_0x0e82('0x3d')]=[{'all':!![]}];}return db[_0x0e82('0xd4')][_0x0e82('0x40')](_0x4e51ef);})['then'](function(_0x4238a6){_0x2ca4c4['rows']=_0x4238a6;return _0x2ca4c4;});}})[_0x0e82('0x13')](respondWithFilteredResult(_0x3225ab,_0x4e51ef))[_0x0e82('0x1b')](handleError(_0x3225ab,null));};exports[_0x0e82('0xd5')]=function(_0x279c21,_0x119ae8){var _0x5da556={'raw':!![],'where':{}};var _0xd88657={};var _0x31752d={'count':0x0,'rows':[]};return db['User'][_0x0e82('0xd1')]({'where':{'id':_0x279c21[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x119ae8,null))['then'](function(_0x26687a){if(_0x26687a){_0xd88657[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_0x0e82('0xd6')][_0x0e82('0x36')]);_0xd88657[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x279c21[_0x0e82('0x3c')]);_0xd88657['filters']=_[_0x0e82('0x4e')](_0xd88657[_0x0e82('0x4a')],_0xd88657[_0x0e82('0x3c')]);_0x5da556['attributes']=_[_0x0e82('0x4e')](_0xd88657[_0x0e82('0x4a')],qs['fields'](_0x279c21[_0x0e82('0x3c')][_0x0e82('0x4f')]));_0x5da556[_0x0e82('0x3e')]=_0x5da556['attributes']['length']?_0x5da556[_0x0e82('0x3e')]:_0xd88657[_0x0e82('0x4a')];if(!_0x279c21[_0x0e82('0x3c')]['hasOwnProperty']('nolimit')){_0x5da556['limit']=qs[_0x0e82('0x22')](_0x279c21[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x5da556[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x279c21[_0x0e82('0x3c')][_0x0e82('0x20')]);}_0x5da556[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x279c21[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x5da556[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x279c21['query'],_0xd88657['filters']));_0x5da556[_0x0e82('0x3b')][_0x0e82('0xd7')]=_0x26687a['id'];if(_0x279c21['query'][_0x0e82('0x2b')]){_0x5da556[_0x0e82('0x3b')]=_[_0x0e82('0x51')](_0x5da556[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0x5da556['attributes'],function(_0xdf7c04){var _0x516840={};_0x516840[_0xdf7c04]={'$like':'%'+_0x279c21['query'][_0x0e82('0x2b')]+'%'};return _0x516840;})});}_0x5da556=_['merge']({},_0x5da556,_0x279c21[_0x0e82('0x52')]);return db['ScreenRecording'][_0x0e82('0x23')]({'where':_0x5da556[_0x0e82('0x3b')]})[_0x0e82('0x13')](function(_0x33aafd){_0x31752d[_0x0e82('0x23')]=_0x33aafd;if(_0x279c21['query']['includeAll']){_0x5da556[_0x0e82('0x3d')]=[{'all':!![]}];}return db['ScreenRecording'][_0x0e82('0x40')](_0x5da556);})[_0x0e82('0x13')](function(_0x453cd6){_0x31752d[_0x0e82('0x41')]=_0x453cd6;return _0x31752d;});}})[_0x0e82('0x13')](respondWithFilteredResult(_0x119ae8,_0x5da556))[_0x0e82('0x1b')](handleError(_0x119ae8,null));};exports[_0x0e82('0xd8')]=function(_0x2d5f04,_0x2b67de){var _0x40d415={};var _0x5e9e71={};var _0x271b87;var _0x2deafc;return db[_0x0e82('0x35')][_0x0e82('0xd1')]({'where':{'id':_0x2d5f04[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x2b67de,null))[_0x0e82('0x13')](function(_0xe7b6a){if(_0xe7b6a){_0x271b87=_0xe7b6a;_0x5e9e71[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_0x0e82('0xd9')][_0x0e82('0x36')]);_0x5e9e71[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x2d5f04[_0x0e82('0x3c')]);_0x5e9e71[_0x0e82('0x4d')]=_['intersection'](_0x5e9e71[_0x0e82('0x4a')],_0x5e9e71['query']);_0x40d415[_0x0e82('0x3e')]=_[_0x0e82('0x4e')](_0x5e9e71[_0x0e82('0x4a')],qs['fields'](_0x2d5f04['query'][_0x0e82('0x4f')]));_0x40d415[_0x0e82('0x3e')]=_0x40d415[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x40d415[_0x0e82('0x3e')]:_0x5e9e71[_0x0e82('0x4a')];_0x40d415[_0x0e82('0xc4')]=qs['sort'](_0x2d5f04[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x40d415[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x2d5f04[_0x0e82('0x3c')],_0x5e9e71[_0x0e82('0x4d')]));if(_0x2d5f04[_0x0e82('0x3c')]['filter']){_0x40d415['where']=_[_0x0e82('0x51')](_0x40d415[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0x40d415['attributes'],function(_0xb8d472){var _0x466f24={};_0x466f24[_0xb8d472]={'$like':'%'+_0x2d5f04[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x466f24;})});}_0x40d415=_['merge']({},_0x40d415,_0x2d5f04[_0x0e82('0x52')]);return _0x271b87[_0x0e82('0xd8')](_0x40d415);}})[_0x0e82('0x13')](function(_0x18a2ff){if(_0x18a2ff){_0x2deafc=_0x18a2ff[_0x0e82('0x42')];if(!_0x2d5f04[_0x0e82('0x3c')][_0x0e82('0xc7')]('nolimit')){_0x40d415[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x2d5f04[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x40d415['offset']=qs[_0x0e82('0x20')](_0x2d5f04[_0x0e82('0x3c')]['offset']);}return _0x271b87[_0x0e82('0xd8')](_0x40d415);}})[_0x0e82('0x13')](function(_0x1c2dc8){if(_0x1c2dc8){return _0x1c2dc8?{'count':_0x2deafc,'rows':_0x1c2dc8}:null;}})[_0x0e82('0x13')](respondWithResult(_0x2b67de,null))[_0x0e82('0x1b')](handleError(_0x2b67de,null));};exports[_0x0e82('0xda')]=function(_0x2fa257,_0x18e386){var _0x4e730a={};var _0x10072f={};var _0x372641;var _0x16eb0e;return db[_0x0e82('0x35')][_0x0e82('0xd1')]({'where':{'id':_0x2fa257[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x18e386,null))[_0x0e82('0x13')](function(_0x559f7a){if(_0x559f7a){_0x372641=_0x559f7a;_0x10072f['model']=_[_0x0e82('0x4c')](db['OpenchannelInteraction'][_0x0e82('0x36')]);_0x10072f[_0x0e82('0x3c')]=_['keys'](_0x2fa257[_0x0e82('0x3c')]);_0x10072f[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x10072f[_0x0e82('0x4a')],_0x10072f[_0x0e82('0x3c')]);_0x4e730a[_0x0e82('0x3e')]=_[_0x0e82('0x4e')](_0x10072f[_0x0e82('0x4a')],qs[_0x0e82('0x4f')](_0x2fa257[_0x0e82('0x3c')][_0x0e82('0x4f')]));_0x4e730a[_0x0e82('0x3e')]=_0x4e730a['attributes']['length']?_0x4e730a[_0x0e82('0x3e')]:_0x10072f[_0x0e82('0x4a')];_0x4e730a[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x2fa257[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x4e730a['where']=qs['filters'](_[_0x0e82('0xc6')](_0x2fa257[_0x0e82('0x3c')],_0x10072f[_0x0e82('0x4d')]));if(_0x2fa257[_0x0e82('0x3c')]['filter']){_0x4e730a[_0x0e82('0x3b')]=_[_0x0e82('0x51')](_0x4e730a[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0x4e730a[_0x0e82('0x3e')],function(_0x14b364){var _0x1dc618={};_0x1dc618[_0x14b364]={'$like':'%'+_0x2fa257[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x1dc618;})});}_0x4e730a=_[_0x0e82('0x51')]({},_0x4e730a,_0x2fa257['options']);return _0x372641[_0x0e82('0xda')](_0x4e730a);}})[_0x0e82('0x13')](function(_0x4777be){if(_0x4777be){_0x16eb0e=_0x4777be[_0x0e82('0x42')];if(!_0x2fa257[_0x0e82('0x3c')][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x4e730a[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x2fa257['query'][_0x0e82('0x22')]);_0x4e730a[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x2fa257[_0x0e82('0x3c')][_0x0e82('0x20')]);}return _0x372641[_0x0e82('0xda')](_0x4e730a);}})[_0x0e82('0x13')](function(_0x374a76){if(_0x374a76){return _0x374a76?{'count':_0x16eb0e,'rows':_0x374a76}:null;}})[_0x0e82('0x13')](respondWithResult(_0x18e386,null))[_0x0e82('0x1b')](handleError(_0x18e386,null));};exports[_0x0e82('0xdb')]=function(_0x2a3846,_0x4aea06){var _0x5d9361={'raw':!![],'where':{}};var _0x139447={};var _0x153339={'count':0x0,'rows':[]};return db[_0x0e82('0x35')][_0x0e82('0xd1')]({'where':{'id':_0x2a3846[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x4aea06,null))[_0x0e82('0x13')](function(_0x4583f3){if(_0x4583f3){_0x139447[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_0x0e82('0xdc')][_0x0e82('0x36')]);_0x139447[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x2a3846[_0x0e82('0x3c')]);_0x139447[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x139447[_0x0e82('0x4a')],_0x139447['query']);_0x5d9361['attributes']=_['intersection'](_0x139447[_0x0e82('0x4a')],qs[_0x0e82('0x4f')](_0x2a3846['query'][_0x0e82('0x4f')]));_0x5d9361[_0x0e82('0x3e')]=_0x5d9361[_0x0e82('0x3e')]['length']?_0x5d9361[_0x0e82('0x3e')]:_0x139447['model'];if(!_0x2a3846[_0x0e82('0x3c')][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x5d9361[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x2a3846[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x5d9361[_0x0e82('0x20')]=qs['offset'](_0x2a3846['query'][_0x0e82('0x20')]);}_0x5d9361[_0x0e82('0xc4')]=qs['sort'](_0x2a3846[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x5d9361[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x2a3846['query'],_0x139447[_0x0e82('0x4d')]));_0x5d9361[_0x0e82('0x3b')][_0x0e82('0xd7')]=_0x4583f3['id'];if(_0x2a3846[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x5d9361['where']=_[_0x0e82('0x51')](_0x5d9361['where'],{'$or':_[_0x0e82('0x2d')](_0x5d9361[_0x0e82('0x3e')],function(_0x3d21fb){var _0x45b53e={};_0x45b53e[_0x3d21fb]={'$like':'%'+_0x2a3846[_0x0e82('0x3c')]['filter']+'%'};return _0x45b53e;})});}_0x5d9361=_[_0x0e82('0x51')]({},_0x5d9361,_0x2a3846['options']);return db[_0x0e82('0xdc')][_0x0e82('0x23')]({'where':_0x5d9361[_0x0e82('0x3b')]})[_0x0e82('0x13')](function(_0x3673f8){_0x153339[_0x0e82('0x23')]=_0x3673f8;if(_0x2a3846['query'][_0x0e82('0x50')]){_0x5d9361[_0x0e82('0x3d')]=[{'all':!![]}];}return db[_0x0e82('0xdc')][_0x0e82('0x40')](_0x5d9361);})[_0x0e82('0x13')](function(_0x10d871){_0x153339[_0x0e82('0x41')]=_0x10d871;return _0x153339;});}})['then'](respondWithFilteredResult(_0x4aea06,_0x5d9361))[_0x0e82('0x1b')](handleError(_0x4aea06,null));};exports['getSmsInteractions']=function(_0x3e8ed5,_0x3f084e){var _0xb03324={};var _0x1fbd1c={};var _0x37281e;var _0x1d1719;return db[_0x0e82('0x35')][_0x0e82('0xd1')]({'where':{'id':_0x3e8ed5[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x3f084e,null))[_0x0e82('0x13')](function(_0x305962){if(_0x305962){_0x37281e=_0x305962;_0x1fbd1c['model']=_[_0x0e82('0x4c')](db[_0x0e82('0xdd')][_0x0e82('0x36')]);_0x1fbd1c[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x3e8ed5['query']);_0x1fbd1c['filters']=_[_0x0e82('0x4e')](_0x1fbd1c[_0x0e82('0x4a')],_0x1fbd1c['query']);_0xb03324[_0x0e82('0x3e')]=_[_0x0e82('0x4e')](_0x1fbd1c[_0x0e82('0x4a')],qs[_0x0e82('0x4f')](_0x3e8ed5[_0x0e82('0x3c')][_0x0e82('0x4f')]));_0xb03324['attributes']=_0xb03324[_0x0e82('0x3e')][_0x0e82('0x42')]?_0xb03324[_0x0e82('0x3e')]:_0x1fbd1c['model'];_0xb03324[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x3e8ed5[_0x0e82('0x3c')]['sort']);_0xb03324[_0x0e82('0x3b')]=qs['filters'](_[_0x0e82('0xc6')](_0x3e8ed5['query'],_0x1fbd1c[_0x0e82('0x4d')]));if(_0x3e8ed5[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0xb03324[_0x0e82('0x3b')]=_[_0x0e82('0x51')](_0xb03324[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0xb03324[_0x0e82('0x3e')],function(_0x208980){var _0x1b1464={};_0x1b1464[_0x208980]={'$like':'%'+_0x3e8ed5[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x1b1464;})});}_0xb03324=_[_0x0e82('0x51')]({},_0xb03324,_0x3e8ed5[_0x0e82('0x52')]);return _0x37281e['getSmsInteractions'](_0xb03324);}})[_0x0e82('0x13')](function(_0x31d6fc){if(_0x31d6fc){_0x1d1719=_0x31d6fc[_0x0e82('0x42')];if(!_0x3e8ed5[_0x0e82('0x3c')][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0xb03324['limit']=qs[_0x0e82('0x22')](_0x3e8ed5[_0x0e82('0x3c')][_0x0e82('0x22')]);_0xb03324[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x3e8ed5['query'][_0x0e82('0x20')]);}return _0x37281e[_0x0e82('0xde')](_0xb03324);}})[_0x0e82('0x13')](function(_0x37f9c1){if(_0x37f9c1){return _0x37f9c1?{'count':_0x1d1719,'rows':_0x37f9c1}:null;}})['then'](respondWithResult(_0x3f084e,null))['catch'](handleError(_0x3f084e,null));};exports[_0x0e82('0xdf')]=function(_0x4b3535,_0x1ed7da){var _0x33c76d={};var _0x5b57e9={};var _0x43a54b;var _0x707109;return db[_0x0e82('0x35')]['findOne']({'where':{'id':_0x4b3535[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x1ed7da,null))[_0x0e82('0x13')](function(_0x74447){if(_0x74447){_0x43a54b=_0x74447;_0x5b57e9['model']=_['keys'](db[_0x0e82('0xe0')][_0x0e82('0x36')]);_0x5b57e9['query']=_[_0x0e82('0x4c')](_0x4b3535['query']);_0x5b57e9[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x5b57e9['model'],_0x5b57e9['query']);_0x33c76d[_0x0e82('0x3e')]=_[_0x0e82('0x4e')](_0x5b57e9[_0x0e82('0x4a')],qs[_0x0e82('0x4f')](_0x4b3535['query'][_0x0e82('0x4f')]));_0x33c76d['attributes']=_0x33c76d['attributes'][_0x0e82('0x42')]?_0x33c76d['attributes']:_0x5b57e9['model'];_0x33c76d[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x4b3535[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x33c76d[_0x0e82('0x3b')]=qs['filters'](_['pick'](_0x4b3535[_0x0e82('0x3c')],_0x5b57e9[_0x0e82('0x4d')]));if(_0x4b3535['query'][_0x0e82('0x2b')]){_0x33c76d[_0x0e82('0x3b')]=_['merge'](_0x33c76d[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0x33c76d[_0x0e82('0x3e')],function(_0x1fc8b2){var _0x2864dc={};_0x2864dc[_0x1fc8b2]={'$like':'%'+_0x4b3535[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x2864dc;})});}_0x33c76d=_['merge']({},_0x33c76d,_0x4b3535[_0x0e82('0x52')]);return _0x43a54b[_0x0e82('0xdf')](_0x33c76d);}})[_0x0e82('0x13')](function(_0x21ec8f){if(_0x21ec8f){_0x707109=_0x21ec8f[_0x0e82('0x42')];if(!_0x4b3535[_0x0e82('0x3c')][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x33c76d['limit']=qs[_0x0e82('0x22')](_0x4b3535[_0x0e82('0x3c')]['limit']);_0x33c76d['offset']=qs['offset'](_0x4b3535[_0x0e82('0x3c')][_0x0e82('0x20')]);}return _0x43a54b[_0x0e82('0xdf')](_0x33c76d);}})[_0x0e82('0x13')](function(_0x536baf){if(_0x536baf){return _0x536baf?{'count':_0x707109,'rows':_0x536baf}:null;}})[_0x0e82('0x13')](respondWithResult(_0x1ed7da,null))[_0x0e82('0x1b')](handleError(_0x1ed7da,null));};exports['getWhatsappInteractions']=function(_0x2dc36b,_0xc75ba4){var _0x464e94={};var _0x601aa0={};var _0xa6df34;var _0x4af58f;return db['User'][_0x0e82('0xd1')]({'where':{'id':_0x2dc36b['params']['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0xc75ba4,null))[_0x0e82('0x13')](function(_0x40f201){if(_0x40f201){_0xa6df34=_0x40f201;_0x601aa0[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_0x0e82('0xe1')][_0x0e82('0x36')]);_0x601aa0['query']=_['keys'](_0x2dc36b['query']);_0x601aa0['filters']=_['intersection'](_0x601aa0[_0x0e82('0x4a')],_0x601aa0['query']);_0x464e94[_0x0e82('0x3e')]=_[_0x0e82('0x4e')](_0x601aa0[_0x0e82('0x4a')],qs['fields'](_0x2dc36b[_0x0e82('0x3c')][_0x0e82('0x4f')]));_0x464e94[_0x0e82('0x3e')]=_0x464e94[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x464e94[_0x0e82('0x3e')]:_0x601aa0['model'];_0x464e94[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x2dc36b[_0x0e82('0x3c')]['sort']);_0x464e94[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x2dc36b[_0x0e82('0x3c')],_0x601aa0[_0x0e82('0x4d')]));if(_0x2dc36b[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x464e94['where']=_['merge'](_0x464e94[_0x0e82('0x3b')],{'$or':_['map'](_0x464e94[_0x0e82('0x3e')],function(_0x5ef920){var _0x5df5f0={};_0x5df5f0[_0x5ef920]={'$like':'%'+_0x2dc36b[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x5df5f0;})});}_0x464e94=_[_0x0e82('0x51')]({},_0x464e94,_0x2dc36b['options']);return _0xa6df34[_0x0e82('0xe2')](_0x464e94);}})[_0x0e82('0x13')](function(_0x2a01fc){if(_0x2a01fc){_0x4af58f=_0x2a01fc[_0x0e82('0x42')];if(!_0x2dc36b['query'][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x464e94[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x2dc36b[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x464e94[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x2dc36b[_0x0e82('0x3c')][_0x0e82('0x20')]);}return _0xa6df34[_0x0e82('0xe2')](_0x464e94);}})[_0x0e82('0x13')](function(_0x28c796){if(_0x28c796){return _0x28c796?{'count':_0x4af58f,'rows':_0x28c796}:null;}})[_0x0e82('0x13')](respondWithResult(_0xc75ba4,null))['catch'](handleError(_0xc75ba4,null));};exports[_0x0e82('0xe3')]=function(_0x270392,_0x23dbad,_0x105745){var _0x332719;var _0x3cd97d;var _0x79e0c7;var _0x2c3153=!_['isNil'](_0x270392[_0x0e82('0x49')]['id'])?_0x270392['params']['id']:!_['isNil'](_0x270392[_0x0e82('0x27')]['id'])?_0x270392[_0x0e82('0x27')]['id']:null;return db['User']['find']({'where':{'id':_0x2c3153,'role':{'$or':[_0x0e82('0x78'),_0x0e82('0x27'),_0x0e82('0x29')]}},'attributes':['id',_0x0e82('0x31'),'phone',_0x0e82('0xe4'),_0x0e82('0x26'),_0x0e82('0x5c'),_0x0e82('0x99')]})[_0x0e82('0x13')](function(_0x2fffb2){if(_0x2fffb2){if(_0x2fffb2[_0x0e82('0x26')]===_0x0e82('0x29')){_0x332719=_0x2fffb2;if(_0x270392[_0x0e82('0x58')][_0x0e82('0xaa')]){_0x79e0c7=util[_0x0e82('0xab')](_0x0e82('0xe5'),_0x332719[_0x270392[_0x0e82('0x58')]['interface']]);}else if(_0x270392[_0x0e82('0x58')][_0x0e82('0xe6')]){_0x79e0c7=util[_0x0e82('0xab')](_0x0e82('0xe7'),_0x270392['body'][_0x0e82('0xe6')]);}else{_0x79e0c7=util[_0x0e82('0xab')]('SIP/%s',_0x332719['name']);}socket['to'](util[_0x0e82('0xab')](_0x0e82('0xe8'),_0x332719[_0x0e82('0x31')]))[_0x0e82('0xa5')]('user:forcelogout',{'user':{'id':_0x332719['id'],'name':_0x332719['name']},'ip':_0x270392[_0x0e82('0xe9')][_0x0e82('0xea')]||_0x270392[_0x0e82('0xeb')][_0x0e82('0xec')]||_0x270392['socket'][_0x0e82('0xec')]||_0x270392[_0x0e82('0xeb')][_0x0e82('0xed')][_0x0e82('0xec')]});return db[_0x0e82('0xae')][_0x0e82('0x25')]({'where':{'membername':_0x332719['name']},'individualHooks':!![]});}}else{throw new db[(_0x0e82('0x89'))][(_0x0e82('0x8b'))]('User\x20not\x20found\x20or\x20not\x20allowed\x20to\x20perform\x20login\x20method');}})[_0x0e82('0x13')](function(){if(_0x332719){return _0x332719[_0x0e82('0xee')]({'raw':!![]});}})[_0x0e82('0x13')](function(_0x3bb4b9){if(_0x332719){var _0x2825ea=[];if(_0x3bb4b9){_0x3cd97d=_0x3bb4b9;if(_0x3cd97d['length']){for(var _0x36fefc=0x0;_0x36fefc<_0x3cd97d['length'];_0x36fefc++){_0x2825ea[_0x0e82('0x3f')]({'membername':_0x332719[_0x0e82('0x31')],'UserId':_0x332719['id'],'queue_name':_0x3cd97d[_0x36fefc][_0x0e82('0x31')],'VoiceQueueId':_0x3cd97d[_0x36fefc]['id'],'interface':_0x79e0c7,'paused':_0x332719[_0x0e82('0x99')]||![],'penalty':_0x3cd97d[_0x36fefc][_0x0e82('0xef')]||0x0});}return BPromise['each'](_0x2825ea,function(_0x2f5293){return db[_0x0e82('0xae')][_0x0e82('0xf0')](_0x2f5293);});}}}})[_0x0e82('0x13')](function(){if(_0x332719){return db[_0x0e82('0xf1')]['findAll']({'where':{'membername':_0x332719[_0x0e82('0x31')],'exitAt':null}});}})[_0x0e82('0x13')](function(_0x24fd6c){if(_0x332719){var _0x2644f5=[];_0x24fd6c[_0x0e82('0xf2')](function(_0x10450d){_0x2644f5[_0x0e82('0x3f')](_0x10450d[_0x0e82('0x57')]({'exitAt':moment()[_0x0e82('0xab')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x0e82('0x56')](_0x2644f5);}})[_0x0e82('0x13')](function(){if(_0x332719){var _0x4954b9=[];var _0x3513ee=[];var _0x23dfb4=utils[_0x0e82('0xf3')]();var _0x4a0528={'membername':_0x332719['name'],'interface':_0x79e0c7,'enterAt':moment()[_0x0e82('0xab')](_0x0e82('0xf4')),'role':_0x332719[_0x0e82('0x26')],'internal':_0x332719[_0x0e82('0x5c')]};_0x23dfb4[_0x0e82('0xf2')](function(_0x39861d){_0x4954b9[_0x0e82('0x3f')](_[_0x0e82('0x51')]({'channel':_0x39861d,'type':_0x0e82('0xf5'),'data1':_0x270392[_0x0e82('0x58')][_0x0e82('0xf6')],'data2':_0x79e0c7},_0x4a0528));if(_0x332719[_0x0e82('0x99')]){_0x3513ee['push'](_['merge']({'channel':_0x39861d,'type':_0x0e82('0xf7'),'data1':'LOGININPAUSE'},_0x4a0528));}});return db['MemberReport'][_0x0e82('0x7f')](_0x4954b9[_0x0e82('0xf8')](_0x3513ee),{'individualHooks':!![]});}})[_0x0e82('0x13')](function(){if(_0x332719){return _0x332719[_0x0e82('0x57')]({'online':!![],'lastLoginAt':moment()['format'](_0x0e82('0xf4')),'voicePause':_0x332719['loginInPause']||![],'mailPause':_0x332719[_0x0e82('0x99')]||![],'chatPause':_0x332719[_0x0e82('0x99')]||![],'faxPause':_0x332719[_0x0e82('0x99')]||![],'smsPause':_0x332719[_0x0e82('0x99')]||![],'openchannelPause':_0x332719['loginInPause']||![],'whatsappPause':_0x332719[_0x0e82('0x99')]||![],'pauseType':_0x332719[_0x0e82('0x99')]?_0x0e82('0xf9'):null,'interface':_0x79e0c7,'lastPauseAt':moment()[_0x0e82('0xab')](_0x0e82('0xf4'))});}})[_0x0e82('0x13')](function(_0x12a926){if(_0x270392[_0x0e82('0xfa')]){return _0x105745();}else{return BPromise['resolve'](_0x12a926)[_0x0e82('0x13')](respondWithResult(_0x23dbad,null));}})[_0x0e82('0x1b')](handleError(_0x23dbad,null));};exports[_0x0e82('0xfb')]=function(_0xf315b5,_0x388dfc){var _0x1d7ff3;return db['User'][_0x0e82('0x30')]({'where':{'id':_0xf315b5[_0x0e82('0x49')]['id'],'role':_0x0e82('0x29')},'attributes':['id',_0x0e82('0x31'),_0x0e82('0x26')]})[_0x0e82('0x13')](handleEntityNotFound(_0x388dfc,null))[_0x0e82('0x13')](function(_0x54092b){if(_0x54092b){_0x1d7ff3=_0x54092b;return db['UserVoiceQueueRt'][_0x0e82('0x25')]({'where':{'membername':_0x1d7ff3[_0x0e82('0x31')]},'individualHooks':!![]});}})[_0x0e82('0x13')](function(){return db['MemberReport']['findAll']({'where':{'membername':_0x1d7ff3['name'],'exitAt':null}});})[_0x0e82('0x13')](function(_0x4f5aa1){var _0x4b7029=[];_0x4f5aa1['forEach'](function(_0x199c49){_0x4b7029['push'](_0x199c49[_0x0e82('0x57')]({'exitAt':moment()[_0x0e82('0xab')](_0x0e82('0xf4'))}));});return BPromise[_0x0e82('0x56')](_0x4b7029);})[_0x0e82('0x13')](function(){return _0x1d7ff3[_0x0e82('0x57')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![],'interface':null});})[_0x0e82('0x13')](respondWithResult(_0x388dfc,null))[_0x0e82('0x1b')](handleError(_0x388dfc,null));};exports['pause']=function(_0x99d572,_0x182c98){var _0x3d3a81;return db['UserVoiceQueueRt'][_0x0e82('0x57')]({'paused':0x1},{'where':{'UserId':_0x99d572[_0x0e82('0x49')]['id']},'individualHooks':!![]})[_0x0e82('0x13')](function(){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x99d572[_0x0e82('0x49')]['id'],'role':_0x0e82('0x29')},'attributes':['id',_0x0e82('0x31'),'role',_0x0e82('0x5c'),'interface']});})[_0x0e82('0x13')](handleEntityNotFound(_0x182c98,null))[_0x0e82('0x13')](function(_0x4e44b8){if(_0x4e44b8){_0x3d3a81=_0x4e44b8;return respondWithRpcPromise(_0x0e82('0xfc'),_0x0e82('0xfd'),{'id':_0x3d3a81['id'],'name':_0x3d3a81['name'],'pause':!![]});}})[_0x0e82('0x13')](function(){if(_0x3d3a81){return db['MemberReport'][_0x0e82('0x40')]({'where':{'membername':_0x3d3a81[_0x0e82('0x31')],'type':'PAUSE','exitAt':null}});}})[_0x0e82('0x13')](function(_0xd2b7e){if(_0xd2b7e[_0x0e82('0x42')]){var _0x20f5b0=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');for(var _0x4d6892=0x0,_0x94cbdc=_0xd2b7e['length'];_0x4d6892<_0x94cbdc;_0x4d6892++){_0xd2b7e[_0x4d6892][_0x0e82('0xfe')]({'exitAt':_0x20f5b0});}}})[_0x0e82('0x13')](function(){var _0x1bcabe=[];var _0xed430d=utils[_0x0e82('0xf3')]();_0xed430d[_0x0e82('0xf2')](function(_0x4ccf60){_0x1bcabe[_0x0e82('0x3f')]({'channel':_0x4ccf60,'membername':_0x3d3a81[_0x0e82('0x31')],'interface':_[_0x0e82('0x60')](_0x3d3a81['interface'])?util['format'](_0x0e82('0xe7'),_0x3d3a81['name']):_0x3d3a81['interface'],'type':_0x0e82('0xf7'),'enterAt':moment()[_0x0e82('0xab')](_0x0e82('0xf4')),'data1':_0x99d572[_0x0e82('0x58')][_0x0e82('0xff')]||'DEFAULT\x20PAUSE','role':_0x3d3a81[_0x0e82('0x26')],'internal':_0x3d3a81[_0x0e82('0x5c')]});});return db['MemberReport'][_0x0e82('0x7f')](_0x1bcabe,{'individualHooks':!![]});})['then'](function(){return _0x3d3a81['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'whatsappPause':!![],'openchannelPause':!![],'pauseType':_0x99d572[_0x0e82('0x58')][_0x0e82('0xff')]||_0x0e82('0x100'),'lastPauseAt':moment()[_0x0e82('0xab')](_0x0e82('0xf4'))});})[_0x0e82('0x13')](respondWithResult(_0x182c98,null))['catch'](handleError(_0x182c98,null));};exports[_0x0e82('0x101')]=function(_0x5d6a3f,_0x3586ed){var _0x5534dc;return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x5d6a3f[_0x0e82('0x49')]['id']},'attributes':['id',_0x0e82('0x31'),'role',_0x0e82('0x9a'),_0x0e82('0x102'),_0x0e82('0x103'),_0x0e82('0x104'),_0x0e82('0x105'),_0x0e82('0x106'),_0x0e82('0x107'),_0x0e82('0x108'),_0x0e82('0x109')]})[_0x0e82('0x13')](handleEntityNotFound(_0x3586ed,null))[_0x0e82('0x13')](function(_0x2ffe62){if(_0x2ffe62){_0x5534dc=_0x2ffe62;if(_0x5d6a3f[_0x0e82('0x58')][_0x0e82('0x97')]&&!utils['isValidChannel'](_0x5d6a3f[_0x0e82('0x58')][_0x0e82('0x97')])){throw new db[(_0x0e82('0x89'))]['ValidationError'](_0x0e82('0x9c'));}switch(_0x5d6a3f['body'][_0x0e82('0x97')]){case _0x0e82('0xa7'):return respondWithRpcPromise(_0x0e82('0xfc'),_0x0e82('0x101'),{'id':_0x5534dc['id'],'name':_0x5534dc[_0x0e82('0x31')],'pause':![]})['then'](function(){return db['UserVoiceQueueRt']['update']({'paused':0x0},{'where':{'UserId':_0x5534dc['id']},'individualHooks':!![]});})['then'](function(){return db[_0x0e82('0xf1')][_0x0e82('0x30')]({'where':{'channel':_0x5d6a3f['body'][_0x0e82('0x97')],'membername':_0x5534dc[_0x0e82('0x31')],'type':_0x0e82('0xf7'),'exitAt':null}});})[_0x0e82('0x13')](function(_0x5a1c67){if(_0x5a1c67){return _0x5a1c67['update']({'exitAt':moment()['format'](_0x0e82('0xf4')),'data2':_0x0e82('0x10a')},{'individualHooks':!![]});}return null;})[_0x0e82('0x13')](function(){return _0x5534dc[_0x0e82('0x57')]({'voicePause':![]});});case _0x0e82('0x46'):case _0x0e82('0x43'):case _0x0e82('0x45'):case _0x0e82('0x55'):case'whatsapp':case _0x0e82('0x47'):return db[_0x0e82('0xf1')][_0x0e82('0x30')]({'where':{'channel':_0x5d6a3f['body'][_0x0e82('0x97')],'membername':_0x5534dc[_0x0e82('0x31')],'type':_0x0e82('0xf7'),'exitAt':null}})[_0x0e82('0x13')](function(_0x36bdd1){if(_0x36bdd1){return _0x36bdd1[_0x0e82('0x57')]({'exitAt':moment()[_0x0e82('0xab')](_0x0e82('0xf4')),'data2':_0x0e82('0x10a')},{'individualHooks':!![]});}return null;})[_0x0e82('0x13')](function(){var _0x56160e={};_[_0x0e82('0x10b')](_0x56160e,util[_0x0e82('0xab')](_0x0e82('0x10c'),_0x5d6a3f[_0x0e82('0x58')]['channel'],_0x0e82('0x10d')),![]);return _0x5534dc['update'](_0x56160e);});default:return respondWithRpcPromise(_0x0e82('0xfc'),_0x0e82('0x101'),{'id':_0x5534dc['id'],'name':_0x5534dc[_0x0e82('0x31')],'pause':![]})[_0x0e82('0x13')](function(){return db[_0x0e82('0xae')][_0x0e82('0x57')]({'paused':0x0},{'where':{'UserId':_0x5534dc['id']}});})['then'](function(){return db[_0x0e82('0xf1')][_0x0e82('0x40')]({'where':{'membername':_0x5534dc[_0x0e82('0x31')],'type':'PAUSE','exitAt':null}});})[_0x0e82('0x13')](function(_0x8358be){var _0x419244=[];_0x8358be[_0x0e82('0xf2')](function(_0x58e6a7){_0x419244[_0x0e82('0x3f')](_0x58e6a7[_0x0e82('0x57')]({'exitAt':moment()[_0x0e82('0xab')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':'manual'}));});return BPromise[_0x0e82('0x56')](_0x419244);})[_0x0e82('0x13')](function(){return _0x5534dc['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'whatsappPause':![],'openchannelPause':![]});});}}})[_0x0e82('0x13')](respondWithResult(_0x3586ed,null))[_0x0e82('0x1b')](handleError(_0x3586ed,null));};exports[_0x0e82('0x10e')]=function(_0x13a953,_0x4a3e76){var _0x129cfd={};var _0x51fc1f={};var _0x1a9aec;var _0x3f6820;return db['User'][_0x0e82('0xd1')]({'where':{'id':_0x13a953[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x4a3e76,null))[_0x0e82('0x13')](function(_0x47c27d){if(_0x47c27d){_0x1a9aec=_0x47c27d;_0x51fc1f[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_0x0e82('0x10f')][_0x0e82('0x36')]);_0x51fc1f[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x13a953[_0x0e82('0x3c')]);_0x51fc1f['filters']=_[_0x0e82('0x4e')](_0x51fc1f[_0x0e82('0x4a')],_0x51fc1f['query']);_0x129cfd['attributes']=_[_0x0e82('0x4e')](_0x51fc1f[_0x0e82('0x4a')],qs[_0x0e82('0x4f')](_0x13a953[_0x0e82('0x3c')][_0x0e82('0x4f')]));_0x129cfd['attributes']=_0x129cfd[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x129cfd[_0x0e82('0x3e')]:_0x51fc1f[_0x0e82('0x4a')];_0x129cfd[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x13a953[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x129cfd[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x13a953[_0x0e82('0x3c')],_0x51fc1f[_0x0e82('0x4d')]));if(_0x13a953[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x129cfd[_0x0e82('0x3b')]=_[_0x0e82('0x51')](_0x129cfd[_0x0e82('0x3b')],{'$or':_['map'](_0x129cfd['attributes'],function(_0x49c210){var _0x51edb6={};_0x51edb6[_0x49c210]={'$like':'%'+_0x13a953[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x51edb6;})});}_0x129cfd=_['merge']({},_0x129cfd,_0x13a953['options']);return _0x1a9aec[_0x0e82('0x10e')](_0x129cfd);}})['then'](function(_0x209252){if(_0x209252){_0x3f6820=_0x209252[_0x0e82('0x42')];if(!_0x13a953[_0x0e82('0x3c')][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x129cfd['limit']=qs[_0x0e82('0x22')](_0x13a953[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x129cfd[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x13a953['query'][_0x0e82('0x20')]);}return _0x1a9aec[_0x0e82('0x10e')](_0x129cfd);}})[_0x0e82('0x13')](function(_0x38a2ea){if(_0x38a2ea){return _0x38a2ea?{'count':_0x3f6820,'rows':_0x38a2ea}:null;}})[_0x0e82('0x13')](respondWithResult(_0x4a3e76,null))[_0x0e82('0x1b')](handleError(_0x4a3e76,null));};exports['addTeams']=function(_0xb6c3ba,_0x25071d){return db[_0x0e82('0x35')]['find']({'where':{'id':_0xb6c3ba[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x25071d,null))['then'](function(_0x20f834){if(_0x20f834){var _0x92ab83=_0x20f834['get']({'plain':!![]});return _0x20f834['addTeams'](_0xb6c3ba[_0x0e82('0x58')][_0x0e82('0xa1')],_[_0x0e82('0x5b')](_0xb6c3ba['body'],[_0x0e82('0xa1'),'id'])||{})[_0x0e82('0x13')](function(){for(var _0x760915=0x0;_0x760915<_0xb6c3ba[_0x0e82('0x58')][_0x0e82('0xa1')][_0x0e82('0x42')];_0x760915++){var _0x1362d3=[];db[_0x0e82('0x10f')][_0x0e82('0xd1')]({'where':{'id':_0xb6c3ba[_0x0e82('0x58')][_0x0e82('0xa1')][_0x760915]}})[_0x0e82('0x13')](function(_0x84eb1c){_0x1362d3[_0x0e82('0x3f')](_0x84eb1c[_0x0e82('0xee')]()['then'](function(_0x52d431){for(var _0xf8e7b7=0x0;_0xf8e7b7<_0x52d431[_0x0e82('0x42')];_0xf8e7b7++){_0x52d431[_0xf8e7b7]['setDataValue']('channel','Voice');}return _0x52d431;}));_0x1362d3[_0x0e82('0x3f')](_0x84eb1c[_0x0e82('0x110')]()[_0x0e82('0x13')](function(_0x40721b){for(var _0x40ab2f=0x0;_0x40ab2f<_0x40721b[_0x0e82('0x42')];_0x40ab2f++){_0x40721b[_0x40ab2f][_0x0e82('0x111')]('channel','Chat');}return _0x40721b;}));_0x1362d3[_0x0e82('0x3f')](_0x84eb1c['getMailQueues']()[_0x0e82('0x13')](function(_0x22075a){for(var _0xf6cd60=0x0;_0xf6cd60<_0x22075a[_0x0e82('0x42')];_0xf6cd60++){_0x22075a[_0xf6cd60]['setDataValue']('channel',_0x0e82('0x112'));}return _0x22075a;}));_0x1362d3[_0x0e82('0x3f')](_0x84eb1c[_0x0e82('0x113')]()[_0x0e82('0x13')](function(_0x65f199){for(var _0x40fbe0=0x0;_0x40fbe0<_0x65f199[_0x0e82('0x42')];_0x40fbe0++){_0x65f199[_0x40fbe0]['setDataValue'](_0x0e82('0x97'),_0x0e82('0x114'));}return _0x65f199;}));_0x1362d3[_0x0e82('0x3f')](_0x84eb1c[_0x0e82('0x115')]()[_0x0e82('0x13')](function(_0x5c8907){for(var _0x414027=0x0;_0x414027<_0x5c8907[_0x0e82('0x42')];_0x414027++){_0x5c8907[_0x414027]['setDataValue']('channel',_0x0e82('0x116'));}return _0x5c8907;}));_0x1362d3['push'](_0x84eb1c['getFaxQueues']()[_0x0e82('0x13')](function(_0x3a4854){for(var _0x41722c=0x0;_0x41722c<_0x3a4854[_0x0e82('0x42')];_0x41722c++){_0x3a4854[_0x41722c][_0x0e82('0x111')](_0x0e82('0x97'),_0x0e82('0x117'));}return _0x3a4854;}));_0x1362d3[_0x0e82('0x3f')](_0x84eb1c[_0x0e82('0x118')]()[_0x0e82('0x13')](function(_0x5daf82){for(var _0x4d0931=0x0;_0x4d0931<_0x5daf82[_0x0e82('0x42')];_0x4d0931++){_0x5daf82[_0x4d0931][_0x0e82('0x111')](_0x0e82('0x97'),_0x0e82('0x119'));}return _0x5daf82;}));return BPromise[_0x0e82('0x56')](_0x1362d3);})[_0x0e82('0x13')](function(_0xa067f){var _0x311b2f=_['flatten'](_0xa067f);_0x1362d3=[];return db[_0x0e82('0x62')][_0x0e82('0x11a')](function(_0x5593e7){for(var _0x44ed24=0x0;_0x44ed24<_0x311b2f['length'];_0x44ed24++){_0x1362d3[_0x0e82('0x3f')](_0x311b2f[_0x44ed24][_0x0e82('0x11b')](_0x92ab83['id']),{'transaction':_0x5593e7});}return BPromise[_0x0e82('0x56')](_0x1362d3)[_0x0e82('0x13')](function(){if(_0x92ab83[_0x0e82('0x98')]){return BPromise[_0x0e82('0x82')](_['filter'](_0x311b2f,function(_0x2fd49d){return _0x2fd49d['getDataValue'](_0x0e82('0x97'))===_0x0e82('0x11c');}),function(_0x458efe){return db[_0x0e82('0xae')][_0x0e82('0xf0')]({'membername':_0x92ab83[_0x0e82('0x31')],'UserId':_0x92ab83['id'],'queue_name':_0x458efe[_0x0e82('0x31')],'VoiceQueueId':_0x458efe['id'],'interface':_[_0x0e82('0x60')](_0x92ab83['interface'])?util[_0x0e82('0xab')]('SIP/%s',_0x92ab83[_0x0e82('0x31')]):_0x92ab83[_0x0e82('0xaa')],'paused':_0x92ab83[_0x0e82('0x9a')]||![],'penalty':_0x92ab83['penalty']},{'transaction':_0x5593e7});});}else{return;}})[_0x0e82('0x13')](function(){for(var _0x571605=0x0;_0x571605<_0x311b2f['length'];_0x571605++){var _0x5a3b4d=_0x311b2f[_0x571605][_0x0e82('0x11d')](_0x0e82('0x97'));var _0x2a5a59=_0x5a3b4d+_0x0e82('0xa4');socket[_0x0e82('0xa5')](_0x0e82('0x27')+_0x5a3b4d+'Queue:save',{'UserId':_0x92ab83['id'],['queueField']:_0x311b2f[_0x571605]['id']});}});});});}});}})[_0x0e82('0x13')](respondWithStatusCode(_0x25071d,null))[_0x0e82('0x1b')](handleError(_0x25071d,null));};exports[_0x0e82('0x11e')]=function(_0x505ab3,_0x91ac36){return db[_0x0e82('0x35')]['findOne']({'where':{'id':_0x505ab3[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x91ac36,null))[_0x0e82('0x13')](function(_0x285b00){if(_0x285b00){var _0x1ef028=_0x285b00[_0x0e82('0xa9')]({'plain':!![]});var _0x249017=_0x505ab3[_0x0e82('0x3c')]['ids'];return _0x285b00[_0x0e82('0x11e')](_0x249017)[_0x0e82('0x13')](function(){for(var _0x57159a=0x0;_0x57159a<_0x249017[_0x0e82('0x42')];_0x57159a++){var _0x1d0f8b=[];db[_0x0e82('0x10f')][_0x0e82('0xd1')]({'where':{'id':_0x249017[_0x57159a]}})[_0x0e82('0x13')](function(_0x400eaa){_0x1d0f8b['push'](_0x400eaa['getVoiceQueues']()[_0x0e82('0x13')](function(_0x4fd7f2){for(var _0x2ef793=0x0;_0x2ef793<_0x4fd7f2['length'];_0x2ef793++){_0x4fd7f2[_0x2ef793]['setDataValue']('channel',_0x0e82('0x11c'));}return _0x4fd7f2;}));_0x1d0f8b[_0x0e82('0x3f')](_0x400eaa[_0x0e82('0x110')]()['then'](function(_0x579ba2){for(var _0x22bc17=0x0;_0x22bc17<_0x579ba2['length'];_0x22bc17++){_0x579ba2[_0x22bc17][_0x0e82('0x111')](_0x0e82('0x97'),_0x0e82('0x11f'));}return _0x579ba2;}));_0x1d0f8b[_0x0e82('0x3f')](_0x400eaa[_0x0e82('0x120')]()[_0x0e82('0x13')](function(_0x570bc4){for(var _0x565988=0x0;_0x565988<_0x570bc4[_0x0e82('0x42')];_0x565988++){_0x570bc4[_0x565988][_0x0e82('0x111')](_0x0e82('0x97'),_0x0e82('0x112'));}return _0x570bc4;}));_0x1d0f8b[_0x0e82('0x3f')](_0x400eaa[_0x0e82('0x113')]()[_0x0e82('0x13')](function(_0x375bfb){for(var _0x162414=0x0;_0x162414<_0x375bfb[_0x0e82('0x42')];_0x162414++){_0x375bfb[_0x162414][_0x0e82('0x111')](_0x0e82('0x97'),_0x0e82('0x114'));}return _0x375bfb;}));_0x1d0f8b[_0x0e82('0x3f')](_0x400eaa[_0x0e82('0x115')]()['then'](function(_0x13641e){for(var _0x1964ae=0x0;_0x1964ae<_0x13641e[_0x0e82('0x42')];_0x1964ae++){_0x13641e[_0x1964ae][_0x0e82('0x111')]('channel','Whatsapp');}return _0x13641e;}));_0x1d0f8b[_0x0e82('0x3f')](_0x400eaa[_0x0e82('0x121')]()[_0x0e82('0x13')](function(_0x3a4644){for(var _0x832ee5=0x0;_0x832ee5<_0x3a4644[_0x0e82('0x42')];_0x832ee5++){_0x3a4644[_0x832ee5][_0x0e82('0x111')]('channel','Fax');}return _0x3a4644;}));_0x1d0f8b[_0x0e82('0x3f')](_0x400eaa[_0x0e82('0x118')]()['then'](function(_0x21f4ac){for(var _0x430227=0x0;_0x430227<_0x21f4ac[_0x0e82('0x42')];_0x430227++){_0x21f4ac[_0x430227][_0x0e82('0x111')]('channel','Openchannel');}return _0x21f4ac;}));return BPromise[_0x0e82('0x56')](_0x1d0f8b);})['then'](function(_0x2a973c){var _0x594c78=_[_0x0e82('0x122')](_0x2a973c);_0x1d0f8b=[];return db['sequelize'][_0x0e82('0x11a')](function(_0x2522b1){for(var _0x3fdb8c=0x0;_0x3fdb8c<_0x594c78['length'];_0x3fdb8c++){_0x1d0f8b[_0x0e82('0x3f')](_0x594c78[_0x3fdb8c][_0x0e82('0x123')](_0x1ef028['id']),{'transaction':_0x2522b1});}return BPromise[_0x0e82('0x56')](_0x1d0f8b)[_0x0e82('0x13')](function(){if(_0x1ef028[_0x0e82('0x98')]){return BPromise['each'](_['filter'](_0x594c78,function(_0x233416){return _0x233416[_0x0e82('0x11d')](_0x0e82('0x97'))==='Voice';}),function(_0x171297){return db[_0x0e82('0xae')][_0x0e82('0x25')]({'where':{'VoiceQueueId':_0x171297['id'],'UserId':_0x1ef028['id']},'transaction':_0x2522b1});});}else{return;}})[_0x0e82('0x13')](function(){for(var _0x1c0e09=0x0;_0x1c0e09<_0x594c78[_0x0e82('0x42')];_0x1c0e09++){var _0xad3b8c=_0x594c78[_0x1c0e09][_0x0e82('0x11d')](_0x0e82('0x97'));var _0x5a62a0=_0xad3b8c+_0x0e82('0xa4');socket[_0x0e82('0xa5')](_0x0e82('0x27')+_0xad3b8c+_0x0e82('0xad'),{'UserId':_0x1ef028['id'],['queueField']:_0x594c78[_0x1c0e09]['id']});}});});});}});}})[_0x0e82('0x13')](respondWithStatusCode(_0x91ac36,null))[_0x0e82('0x1b')](handleError(_0x91ac36,null));};exports[_0x0e82('0x124')]=function(_0x40a46a,_0x4fc201){var _0x453c6a={};var _0x254798={};var _0x485164;var _0x4b5676;return db[_0x0e82('0x35')][_0x0e82('0xd1')]({'where':{'id':_0x40a46a['params']['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x4fc201,null))[_0x0e82('0x13')](function(_0x248fac){if(_0x248fac){_0x485164=_0x248fac;_0x254798[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_0x0e82('0x125')][_0x0e82('0x36')]);_0x254798['query']=_[_0x0e82('0x4c')](_0x40a46a['query']);_0x254798[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x254798[_0x0e82('0x4a')],_0x254798['query']);_0x453c6a['attributes']=_[_0x0e82('0x4e')](_0x254798['model'],qs['fields'](_0x40a46a['query'][_0x0e82('0x4f')]));_0x453c6a['attributes']=_0x453c6a[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x453c6a[_0x0e82('0x3e')]:_0x254798[_0x0e82('0x4a')];_0x453c6a[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x40a46a[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x453c6a[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x40a46a[_0x0e82('0x3c')],_0x254798['filters']));if(_0x40a46a[_0x0e82('0x3c')]['filter']){_0x453c6a[_0x0e82('0x3b')]=_[_0x0e82('0x51')](_0x453c6a[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0x453c6a[_0x0e82('0x3e')],function(_0x26eb2e){var _0x1fdea2={};_0x1fdea2[_0x26eb2e]={'$like':'%'+_0x40a46a[_0x0e82('0x3c')]['filter']+'%'};return _0x1fdea2;})});}_0x453c6a=_['merge']({},_0x453c6a,_0x40a46a[_0x0e82('0x52')]);return _0x485164['getLists'](_0x453c6a);}})[_0x0e82('0x13')](function(_0x4595ef){if(_0x4595ef){_0x4b5676=_0x4595ef[_0x0e82('0x42')];if(!_0x40a46a[_0x0e82('0x3c')]['hasOwnProperty']('nolimit')){_0x453c6a['limit']=qs[_0x0e82('0x22')](_0x40a46a[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x453c6a['offset']=qs[_0x0e82('0x20')](_0x40a46a['query'][_0x0e82('0x20')]);}return _0x485164[_0x0e82('0x124')](_0x453c6a);}})['then'](function(_0x56ce1a){if(_0x56ce1a){return _0x56ce1a?{'count':_0x4b5676,'rows':_0x56ce1a}:null;}})[_0x0e82('0x13')](respondWithResult(_0x4fc201,null))['catch'](handleError(_0x4fc201,null));};exports[_0x0e82('0x126')]=function(_0x4d875b,_0x371c1c){var _0x25f656={};var _0x42617e={};var _0xe650eb;var _0x16e7eb;return db[_0x0e82('0x35')]['findOne']({'where':{'id':_0x4d875b['params']['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x371c1c,null))[_0x0e82('0x13')](function(_0x1f89f0){if(_0x1f89f0){_0xe650eb=_0x1f89f0;_0x42617e[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_0x0e82('0x35')][_0x0e82('0x36')]);_0x42617e[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x4d875b[_0x0e82('0x3c')]);_0x42617e[_0x0e82('0x4d')]=_['intersection'](_0x42617e[_0x0e82('0x4a')],_0x42617e['query']);_0x25f656[_0x0e82('0x3e')]=_[_0x0e82('0x4e')](_0x42617e['model'],qs[_0x0e82('0x4f')](_0x4d875b['query']['fields']));_0x25f656[_0x0e82('0x3e')]=_0x25f656[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x25f656['attributes']:_0x42617e['model'];_0x25f656[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x4d875b[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x25f656[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_['pick'](_0x4d875b[_0x0e82('0x3c')],_0x42617e[_0x0e82('0x4d')]));if(_0x4d875b[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x25f656[_0x0e82('0x3b')]=_[_0x0e82('0x51')](_0x25f656['where'],{'$or':_[_0x0e82('0x2d')](_0x25f656[_0x0e82('0x3e')],function(_0x51ac54){var _0x466144={};_0x466144[_0x51ac54]={'$like':'%'+_0x4d875b['query'][_0x0e82('0x2b')]+'%'};return _0x466144;})});}_0x25f656['model']=db[_0x0e82('0x35')];_0x25f656['as']=_0x0e82('0x28');_0x25f656=_['merge']({},_0x25f656,_0x4d875b['options']);return _0xe650eb[_0x0e82('0xee')]({'include':[_0x25f656]});}})[_0x0e82('0x13')](function(_0x4db790){if(_0x4db790){var _0x185244={},_0x1a5573=[],_0xcad26d=0x0;for(var _0x4f38bd=0x0;_0x4f38bd<_0x4db790[_0x0e82('0x42')];_0x4f38bd+=0x1){for(var _0x4f29a1=0x0,_0x679276;_0x4f29a1<_0x4db790[_0x4f38bd]['Agents'][_0x0e82('0x42')];_0x4f29a1+=0x1){_0x679276=_0x4db790[_0x4f38bd][_0x0e82('0x28')][_0x4f29a1][_0x0e82('0xa9')]({'plain':!![]});_0x185244[_0x679276['id']]=_0x679276;}}_0x185244=_[_0x0e82('0x127')](_0x185244);for(var _0x2bca5a=qs[_0x0e82('0x20')](_0x4d875b[_0x0e82('0x3c')]['offset']);_0x2bca5a<_0x185244[_0x0e82('0x42')]&&_0x1a5573[_0x0e82('0x42')]<qs[_0x0e82('0x22')](_0x4d875b[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x2bca5a+=0x1){if(_0x185244[_0x2bca5a]){_0x1a5573[_0x0e82('0x3f')](_0x185244[_0x2bca5a]);}}return{'count':_0x185244['length'],'rows':_0x1a5573};}})[_0x0e82('0x13')](respondWithResult(_0x371c1c,null))['catch'](handleError(_0x371c1c,null));};exports[_0x0e82('0x25')]=function(_0x2833ef,_0x356706){if(_0x2833ef[_0x0e82('0x27')]['id']==_0x2833ef[_0x0e82('0x49')]['id']){return _0x356706[_0x0e82('0x1d')](0x1f4)[_0x0e82('0x34')]({'message':_0x0e82('0x128')});}return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x2833ef[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x356706,null))[_0x0e82('0x13')](removeEntity(_0x356706,null))[_0x0e82('0x1b')](handleError(_0x356706,null));};exports[_0x0e82('0x129')]=function(_0x4ceda3,_0x2179b3){return db['User']['find']({'where':{'id':_0x4ceda3[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x2179b3,null))['then'](function(_0x39da62){if(_0x39da62){return _0x39da62['addChatInteractions'](_0x4ceda3[_0x0e82('0x58')][_0x0e82('0xa1')],_['omit'](_0x4ceda3[_0x0e82('0x58')],['ids','id'])||{})[_0x0e82('0xa3')](function(){for(var _0x1f24a2=0x0;_0x1f24a2<_0x4ceda3[_0x0e82('0x58')][_0x0e82('0xa1')][_0x0e82('0x42')];_0x1f24a2+=0x1){socket['emit'](_0x0e82('0x12a'),{'ChatInteractionId':Number(_0x4ceda3['body'][_0x0e82('0xa1')][_0x1f24a2]),'UserId':Number(_0x4ceda3['params']['id'])});}return _0x4ceda3[_0x0e82('0x58')][_0x0e82('0xa1')];});}})[_0x0e82('0x13')](respondWithResult(_0x2179b3,null))[_0x0e82('0x1b')](handleError(_0x2179b3,null));};exports['removeChatInteractions']=function(_0x522900,_0x48ac5e){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x522900['params']['id']}})['then'](handleEntityNotFound(_0x48ac5e,null))[_0x0e82('0x13')](function(_0x1c7e05){if(_0x1c7e05){return _0x1c7e05[_0x0e82('0x12b')](_0x522900['query'][_0x0e82('0xa1')])[_0x0e82('0x13')](function(){if(_[_0x0e82('0x12c')](_0x522900[_0x0e82('0x3c')]['ids'])){for(var _0x2ccdfd=0x0;_0x2ccdfd<_0x522900[_0x0e82('0x3c')]['ids'][_0x0e82('0x42')];_0x2ccdfd+=0x1){socket['emit'](_0x0e82('0x12d'),{'ChatInteractionId':Number(_0x522900[_0x0e82('0x3c')][_0x0e82('0xa1')][_0x2ccdfd]),'UserId':Number(_0x522900[_0x0e82('0x49')]['id'])});}}else{socket['emit']('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x522900[_0x0e82('0x3c')][_0x0e82('0xa1')]),'UserId':Number(_0x522900[_0x0e82('0x49')]['id'])});}});}})['then'](respondWithStatusCode(_0x48ac5e,null))[_0x0e82('0x1b')](handleError(_0x48ac5e,null));};exports['addMailInteractions']=function(_0x5aaf86,_0x5d55aa){return db['User']['find']({'where':{'id':_0x5aaf86[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x5d55aa,null))[_0x0e82('0x13')](function(_0x106b12){if(_0x106b12){return _0x106b12[_0x0e82('0x12e')](_0x5aaf86[_0x0e82('0x58')][_0x0e82('0xa1')],_[_0x0e82('0x5b')](_0x5aaf86[_0x0e82('0x58')],[_0x0e82('0xa1'),'id'])||{})['spread'](function(){for(var _0x4eed53=0x0;_0x4eed53<_0x5aaf86[_0x0e82('0x58')][_0x0e82('0xa1')][_0x0e82('0x42')];_0x4eed53+=0x1){socket[_0x0e82('0xa5')](_0x0e82('0x12f'),{'MailInteractionId':Number(_0x5aaf86[_0x0e82('0x58')]['ids'][_0x4eed53]),'UserId':Number(_0x5aaf86[_0x0e82('0x49')]['id'])});}return _0x5aaf86[_0x0e82('0x58')][_0x0e82('0xa1')];});}})[_0x0e82('0x13')](respondWithResult(_0x5d55aa,null))[_0x0e82('0x1b')](handleError(_0x5d55aa,null));};exports[_0x0e82('0x130')]=function(_0x27aab6,_0x54d6bd){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x27aab6[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x54d6bd,null))[_0x0e82('0x13')](function(_0x3f22a6){if(_0x3f22a6){return _0x3f22a6['removeMailInteractions'](_0x27aab6[_0x0e82('0x3c')]['ids'])['then'](function(){if(_[_0x0e82('0x12c')](_0x27aab6[_0x0e82('0x3c')][_0x0e82('0xa1')])){for(var _0xf39a42=0x0;_0xf39a42<_0x27aab6['query'][_0x0e82('0xa1')][_0x0e82('0x42')];_0xf39a42+=0x1){socket[_0x0e82('0xa5')]('user_has_mail_interactions:remove',{'MailInteractionId':Number(_0x27aab6[_0x0e82('0x3c')][_0x0e82('0xa1')][_0xf39a42]),'UserId':Number(_0x27aab6[_0x0e82('0x49')]['id'])});}}else{socket[_0x0e82('0xa5')](_0x0e82('0x131'),{'MailInteractionId':Number(_0x27aab6[_0x0e82('0x3c')][_0x0e82('0xa1')]),'UserId':Number(_0x27aab6[_0x0e82('0x49')]['id'])});}});}})['then'](respondWithStatusCode(_0x54d6bd,null))[_0x0e82('0x1b')](handleError(_0x54d6bd,null));};exports['addFaxInteractions']=function(_0x268b6c,_0x549027){return db['User']['find']({'where':{'id':_0x268b6c[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x549027,null))[_0x0e82('0x13')](function(_0x16259a){if(_0x16259a){return _0x16259a[_0x0e82('0x132')](_0x268b6c[_0x0e82('0x58')]['ids'],_[_0x0e82('0x5b')](_0x268b6c[_0x0e82('0x58')],['ids','id'])||{})[_0x0e82('0xa3')](function(){for(var _0x1c36c4=0x0;_0x1c36c4<_0x268b6c[_0x0e82('0x58')][_0x0e82('0xa1')][_0x0e82('0x42')];_0x1c36c4+=0x1){socket['emit'](_0x0e82('0x133'),{'FaxInteractionId':Number(_0x268b6c['body'][_0x0e82('0xa1')][_0x1c36c4]),'UserId':Number(_0x268b6c['params']['id'])});}return _0x268b6c[_0x0e82('0x58')][_0x0e82('0xa1')];});}})[_0x0e82('0x13')](respondWithResult(_0x549027,null))[_0x0e82('0x1b')](handleError(_0x549027,null));};exports[_0x0e82('0x134')]=function(_0x200669,_0x36d3e5){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x200669[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x36d3e5,null))['then'](function(_0xaabbbc){if(_0xaabbbc){return _0xaabbbc['removeFaxInteractions'](_0x200669['query']['ids'])[_0x0e82('0x13')](function(){if(_[_0x0e82('0x12c')](_0x200669[_0x0e82('0x3c')][_0x0e82('0xa1')])){for(var _0x5e339d=0x0;_0x5e339d<_0x200669['query'][_0x0e82('0xa1')][_0x0e82('0x42')];_0x5e339d+=0x1){socket['emit']('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x200669['query']['ids'][_0x5e339d]),'UserId':Number(_0x200669['params']['id'])});}}else{socket[_0x0e82('0xa5')]('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x200669[_0x0e82('0x3c')][_0x0e82('0xa1')]),'UserId':Number(_0x200669[_0x0e82('0x49')]['id'])});}});}})[_0x0e82('0x13')](respondWithStatusCode(_0x36d3e5,null))['catch'](handleError(_0x36d3e5,null));};exports[_0x0e82('0x135')]=function(_0x371a84,_0x11bed4){return db['User'][_0x0e82('0x30')]({'where':{'id':_0x371a84[_0x0e82('0x49')]['id']}})['then'](handleEntityNotFound(_0x11bed4,null))['then'](function(_0x21a353){if(_0x21a353){return _0x21a353[_0x0e82('0x135')](_0x371a84['body'][_0x0e82('0xa1')],_['omit'](_0x371a84[_0x0e82('0x58')],[_0x0e82('0xa1'),'id'])||{})[_0x0e82('0xa3')](function(){for(var _0xc3e821=0x0;_0xc3e821<_0x371a84['body'][_0x0e82('0xa1')][_0x0e82('0x42')];_0xc3e821+=0x1){socket[_0x0e82('0xa5')](_0x0e82('0x136'),{'SmsInteractionId':Number(_0x371a84['body'][_0x0e82('0xa1')][_0xc3e821]),'UserId':Number(_0x371a84[_0x0e82('0x49')]['id'])});}return _0x371a84[_0x0e82('0x58')][_0x0e82('0xa1')];});}})[_0x0e82('0x13')](respondWithResult(_0x11bed4,null))[_0x0e82('0x1b')](handleError(_0x11bed4,null));};exports['removeSmsInteractions']=function(_0x30a4d2,_0x4d7842){return db['User'][_0x0e82('0x30')]({'where':{'id':_0x30a4d2[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x4d7842,null))['then'](function(_0x269f9b){if(_0x269f9b){return _0x269f9b[_0x0e82('0x137')](_0x30a4d2[_0x0e82('0x3c')][_0x0e82('0xa1')])[_0x0e82('0x13')](function(){if(_[_0x0e82('0x12c')](_0x30a4d2[_0x0e82('0x3c')][_0x0e82('0xa1')])){for(var _0x35c24f=0x0;_0x35c24f<_0x30a4d2[_0x0e82('0x3c')][_0x0e82('0xa1')][_0x0e82('0x42')];_0x35c24f+=0x1){socket[_0x0e82('0xa5')](_0x0e82('0x138'),{'SmsInteractionId':Number(_0x30a4d2[_0x0e82('0x3c')]['ids'][_0x35c24f]),'UserId':Number(_0x30a4d2[_0x0e82('0x49')]['id'])});}}else{socket[_0x0e82('0xa5')](_0x0e82('0x138'),{'SmsInteractionId':Number(_0x30a4d2[_0x0e82('0x3c')][_0x0e82('0xa1')]),'UserId':Number(_0x30a4d2['params']['id'])});}});}})['then'](respondWithStatusCode(_0x4d7842,null))[_0x0e82('0x1b')](handleError(_0x4d7842,null));};exports['addOpenchannelInteractions']=function(_0x49108e,_0x5c2c8c){return db['User'][_0x0e82('0x30')]({'where':{'id':_0x49108e[_0x0e82('0x49')]['id']}})['then'](handleEntityNotFound(_0x5c2c8c,null))[_0x0e82('0x13')](function(_0x3840e3){if(_0x3840e3){return _0x3840e3[_0x0e82('0x139')](_0x49108e['body'][_0x0e82('0xa1')],_['omit'](_0x49108e[_0x0e82('0x58')],[_0x0e82('0xa1'),'id'])||{})[_0x0e82('0xa3')](function(){for(var _0x357bb4=0x0;_0x357bb4<_0x49108e[_0x0e82('0x58')][_0x0e82('0xa1')][_0x0e82('0x42')];_0x357bb4+=0x1){socket[_0x0e82('0xa5')]('user_has_openchannel_interactions:save',{'OpenchannelInteractionId':Number(_0x49108e[_0x0e82('0x58')][_0x0e82('0xa1')][_0x357bb4]),'UserId':Number(_0x49108e[_0x0e82('0x49')]['id'])});}return _0x49108e[_0x0e82('0x58')][_0x0e82('0xa1')];});}})[_0x0e82('0x13')](respondWithResult(_0x5c2c8c,null))[_0x0e82('0x1b')](handleError(_0x5c2c8c,null));};exports[_0x0e82('0x13a')]=function(_0x4c95db,_0x106e39){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x4c95db['params']['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x106e39,null))[_0x0e82('0x13')](function(_0x48a574){if(_0x48a574){return _0x48a574[_0x0e82('0x13a')](_0x4c95db[_0x0e82('0x3c')]['ids'])[_0x0e82('0x13')](function(){if(_[_0x0e82('0x12c')](_0x4c95db[_0x0e82('0x3c')]['ids'])){for(var _0x4ee332=0x0;_0x4ee332<_0x4c95db[_0x0e82('0x3c')]['ids'][_0x0e82('0x42')];_0x4ee332+=0x1){socket['emit']('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x4c95db[_0x0e82('0x3c')][_0x0e82('0xa1')][_0x4ee332]),'UserId':Number(_0x4c95db['params']['id'])});}}else{socket[_0x0e82('0xa5')](_0x0e82('0x13b'),{'OpenchannelInteractionId':Number(_0x4c95db[_0x0e82('0x3c')][_0x0e82('0xa1')]),'UserId':Number(_0x4c95db[_0x0e82('0x49')]['id'])});}});}})[_0x0e82('0x13')](respondWithStatusCode(_0x106e39,null))[_0x0e82('0x1b')](handleError(_0x106e39,null));};exports[_0x0e82('0x13c')]=function(_0x460b5e,_0x2e460b){return db['User'][_0x0e82('0x30')]({'where':{'id':_0x460b5e[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x2e460b,null))[_0x0e82('0x13')](function(_0x451798){if(_0x451798){return _0x451798[_0x0e82('0x13c')](_0x460b5e[_0x0e82('0x58')][_0x0e82('0xa1')],_[_0x0e82('0x5b')](_0x460b5e[_0x0e82('0x58')],[_0x0e82('0xa1'),'id'])||{})[_0x0e82('0xa3')](function(){for(var _0x14c355=0x0;_0x14c355<_0x460b5e[_0x0e82('0x58')][_0x0e82('0xa1')][_0x0e82('0x42')];_0x14c355+=0x1){socket[_0x0e82('0xa5')]('user_has_whatsapp_interactions:save',{'WhatsappInteractionId':Number(_0x460b5e[_0x0e82('0x58')][_0x0e82('0xa1')][_0x14c355]),'UserId':Number(_0x460b5e['params']['id'])});}return _0x460b5e[_0x0e82('0x58')][_0x0e82('0xa1')];});}})[_0x0e82('0x13')](respondWithResult(_0x2e460b,null))[_0x0e82('0x1b')](handleError(_0x2e460b,null));};exports[_0x0e82('0x13d')]=function(_0x40d303,_0x4e74c8){return db[_0x0e82('0x35')]['find']({'where':{'id':_0x40d303['params']['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x4e74c8,null))[_0x0e82('0x13')](function(_0x526af5){if(_0x526af5){return _0x526af5[_0x0e82('0x13d')](_0x40d303[_0x0e82('0x3c')][_0x0e82('0xa1')]);}})[_0x0e82('0x13')](respondWithStatusCode(_0x4e74c8,null))[_0x0e82('0x1b')](handleError(_0x4e74c8,null));};exports[_0x0e82('0x13e')]=function(_0xdd9532,_0x12699e){var _0x4196cd={};var _0x70e1ab={};var _0x6de29c;var _0x5b97df;return db[_0x0e82('0x35')]['findOne']({'where':{'id':_0xdd9532[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x12699e,null))[_0x0e82('0x13')](function(_0xe6e938){if(_0xe6e938){_0x6de29c=_0xe6e938;_0x70e1ab[_0x0e82('0x4a')]=_['keys'](db[_0x0e82('0x13f')][_0x0e82('0x36')]);_0x70e1ab[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0xdd9532[_0x0e82('0x3c')]);_0x70e1ab['filters']=_[_0x0e82('0x4e')](_0x70e1ab[_0x0e82('0x4a')],_0x70e1ab[_0x0e82('0x3c')]);_0x4196cd[_0x0e82('0x3e')]=_['intersection'](_0x70e1ab[_0x0e82('0x4a')],qs[_0x0e82('0x4f')](_0xdd9532['query'][_0x0e82('0x4f')]));_0x4196cd['attributes']=_0x4196cd[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x4196cd['attributes']:_0x70e1ab[_0x0e82('0x4a')];_0x4196cd[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0xdd9532[_0x0e82('0x3c')]['sort']);_0x4196cd[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0xdd9532['query'],_0x70e1ab['filters']));if(_0xdd9532[_0x0e82('0x3c')]['filter']){_0x4196cd[_0x0e82('0x3b')]=_['merge'](_0x4196cd[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0x4196cd[_0x0e82('0x3e')],function(_0x10b20b){var _0x56988e={};_0x56988e[_0x10b20b]={'$like':'%'+_0xdd9532[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x56988e;})});}_0x4196cd=_[_0x0e82('0x51')]({},_0x4196cd,_0xdd9532[_0x0e82('0x52')]);return _0x6de29c[_0x0e82('0x13e')](_0x4196cd);}})[_0x0e82('0x13')](function(_0x2701e1){if(_0x2701e1){_0x5b97df=_0x2701e1['length'];if(!_0xdd9532[_0x0e82('0x3c')]['hasOwnProperty'](_0x0e82('0xcc'))){_0x4196cd[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0xdd9532[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x4196cd[_0x0e82('0x20')]=qs['offset'](_0xdd9532['query']['offset']);}return _0x6de29c[_0x0e82('0x13e')](_0x4196cd);}})[_0x0e82('0x13')](function(_0x1baddf){if(_0x1baddf){return _0x1baddf?{'count':_0x5b97df,'rows':_0x1baddf}:null;}})[_0x0e82('0x13')](respondWithResult(_0x12699e,null))['catch'](handleError(_0x12699e,null));};exports[_0x0e82('0x140')]=function(_0x244bd4,_0x47d17c){var _0x30aa32={};var _0x1ef1be={};var _0x15473c;var _0xd39756;return db[_0x0e82('0x35')][_0x0e82('0xd1')]({'where':{'id':_0x244bd4['params']['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x47d17c,null))['then'](function(_0x40d593){if(_0x40d593){_0x15473c=_0x40d593;_0x1ef1be[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_0x0e82('0x141')][_0x0e82('0x36')]);_0x1ef1be[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x244bd4[_0x0e82('0x3c')]);_0x1ef1be[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x1ef1be[_0x0e82('0x4a')],_0x1ef1be[_0x0e82('0x3c')]);_0x30aa32['attributes']=_[_0x0e82('0x4e')](_0x1ef1be['model'],qs['fields'](_0x244bd4[_0x0e82('0x3c')][_0x0e82('0x4f')]));_0x30aa32[_0x0e82('0x3e')]=_0x30aa32[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x30aa32['attributes']:_0x1ef1be['model'];_0x30aa32[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x244bd4[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x30aa32[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x244bd4[_0x0e82('0x3c')],_0x1ef1be['filters']));if(_0x244bd4[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x30aa32[_0x0e82('0x3b')]=_['merge'](_0x30aa32[_0x0e82('0x3b')],{'$or':_['map'](_0x30aa32[_0x0e82('0x3e')],function(_0x58d9d9){var _0x509c6b={};_0x509c6b[_0x58d9d9]={'$like':'%'+_0x244bd4[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x509c6b;})});}_0x30aa32=_[_0x0e82('0x51')]({},_0x30aa32,_0x244bd4[_0x0e82('0x52')]);return _0x15473c[_0x0e82('0x140')](_0x30aa32);}})[_0x0e82('0x13')](function(_0x1be978){if(_0x1be978){_0xd39756=_0x1be978['length'];if(!_0x244bd4['query'][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x30aa32[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x244bd4[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x30aa32[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x244bd4[_0x0e82('0x3c')]['offset']);}return _0x15473c[_0x0e82('0x140')](_0x30aa32);}})['then'](function(_0xc3d59){if(_0xc3d59){return _0xc3d59?{'count':_0xd39756,'rows':_0xc3d59}:null;}})[_0x0e82('0x13')](respondWithResult(_0x47d17c,null))[_0x0e82('0x1b')](handleError(_0x47d17c,null));};exports[_0x0e82('0x142')]=function(_0x10c829,_0x7f2be){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x10c829[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x7f2be,null))['then'](function(_0x59d873){if(_0x59d873){return _0x59d873[_0x0e82('0x142')](_0x10c829['body']['ids'],_[_0x0e82('0x5b')](_0x10c829['body'],[_0x0e82('0xa1'),'id'])||{});}})[_0x0e82('0x13')](respondWithResult(_0x7f2be,null))['catch'](handleError(_0x7f2be,null));};exports[_0x0e82('0x143')]=function(_0x1ed644,_0x5ce6ea){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x1ed644['params']['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x5ce6ea,null))['then'](function(_0x5c49b1){if(_0x5c49b1){return _0x5c49b1['removeFaxAccounts'](_0x1ed644[_0x0e82('0x3c')][_0x0e82('0xa1')]);}})[_0x0e82('0x13')](respondWithStatusCode(_0x5ce6ea,null))[_0x0e82('0x1b')](handleError(_0x5ce6ea,null));};exports[_0x0e82('0x144')]=function(_0x3fea34,_0x635345){var _0x1eb462={};var _0x1c05bb={};var _0x65b640;var _0xba20ac;return db[_0x0e82('0x35')][_0x0e82('0xd1')]({'where':{'id':_0x3fea34[_0x0e82('0x49')]['id']}})['then'](handleEntityNotFound(_0x635345,null))[_0x0e82('0x13')](function(_0x594d5c){if(_0x594d5c){_0x65b640=_0x594d5c;_0x1c05bb[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_0x0e82('0x145')][_0x0e82('0x36')]);_0x1c05bb[_0x0e82('0x3c')]=_['keys'](_0x3fea34[_0x0e82('0x3c')]);_0x1c05bb[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x1c05bb['model'],_0x1c05bb[_0x0e82('0x3c')]);_0x1eb462['attributes']=_['intersection'](_0x1c05bb[_0x0e82('0x4a')],qs['fields'](_0x3fea34[_0x0e82('0x3c')][_0x0e82('0x4f')]));_0x1eb462[_0x0e82('0x3e')]=_0x1eb462[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x1eb462[_0x0e82('0x3e')]:_0x1c05bb[_0x0e82('0x4a')];_0x1eb462[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x3fea34[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x1eb462[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_['pick'](_0x3fea34['query'],_0x1c05bb['filters']));if(_0x3fea34[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x1eb462[_0x0e82('0x3b')]=_[_0x0e82('0x51')](_0x1eb462[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0x1eb462['attributes'],function(_0xb67fa3){var _0x384766={};_0x384766[_0xb67fa3]={'$like':'%'+_0x3fea34['query'][_0x0e82('0x2b')]+'%'};return _0x384766;})});}_0x1eb462=_[_0x0e82('0x51')]({},_0x1eb462,_0x3fea34[_0x0e82('0x52')]);return _0x65b640[_0x0e82('0x144')](_0x1eb462);}})[_0x0e82('0x13')](function(_0x48ffe0){if(_0x48ffe0){_0xba20ac=_0x48ffe0[_0x0e82('0x42')];if(!_0x3fea34[_0x0e82('0x3c')][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x1eb462[_0x0e82('0x22')]=qs['limit'](_0x3fea34[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x1eb462[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x3fea34['query'][_0x0e82('0x20')]);}return _0x65b640[_0x0e82('0x144')](_0x1eb462);}})['then'](function(_0x24d27c){if(_0x24d27c){return _0x24d27c?{'count':_0xba20ac,'rows':_0x24d27c}:null;}})[_0x0e82('0x13')](respondWithResult(_0x635345,null))[_0x0e82('0x1b')](handleError(_0x635345,null));};exports[_0x0e82('0x146')]=function(_0x2e9411,_0x1e6811){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x2e9411[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x1e6811,null))[_0x0e82('0x13')](function(_0x330bbe){if(_0x330bbe){return _0x330bbe['addMailAccounts'](_0x2e9411[_0x0e82('0x58')][_0x0e82('0xa1')],_[_0x0e82('0x5b')](_0x2e9411['body'],[_0x0e82('0xa1'),'id'])||{});}})[_0x0e82('0x13')](respondWithResult(_0x1e6811,null))['catch'](handleError(_0x1e6811,null));};exports['removeMailAccounts']=function(_0x5ee09c,_0x1278a0){return db['User'][_0x0e82('0x30')]({'where':{'id':_0x5ee09c[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x1278a0,null))[_0x0e82('0x13')](function(_0x40fa9e){if(_0x40fa9e){return _0x40fa9e[_0x0e82('0x147')](_0x5ee09c[_0x0e82('0x3c')][_0x0e82('0xa1')]);}})[_0x0e82('0x13')](respondWithStatusCode(_0x1278a0,null))[_0x0e82('0x1b')](handleError(_0x1278a0,null));};exports[_0x0e82('0x148')]=function(_0x7b5d57,_0x599d18){var _0x47e9ab={};var _0x3455a4={};var _0xdba55e;var _0x3e1e6d;return db[_0x0e82('0x35')][_0x0e82('0xd1')]({'where':{'id':_0x7b5d57[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x599d18,null))['then'](function(_0x1230d4){if(_0x1230d4){_0xdba55e=_0x1230d4;_0x3455a4[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db['OpenchannelAccount'][_0x0e82('0x36')]);_0x3455a4['query']=_['keys'](_0x7b5d57['query']);_0x3455a4['filters']=_[_0x0e82('0x4e')](_0x3455a4['model'],_0x3455a4[_0x0e82('0x3c')]);_0x47e9ab['attributes']=_[_0x0e82('0x4e')](_0x3455a4[_0x0e82('0x4a')],qs[_0x0e82('0x4f')](_0x7b5d57[_0x0e82('0x3c')][_0x0e82('0x4f')]));_0x47e9ab[_0x0e82('0x3e')]=_0x47e9ab[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x47e9ab[_0x0e82('0x3e')]:_0x3455a4[_0x0e82('0x4a')];_0x47e9ab['order']=qs['sort'](_0x7b5d57[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x47e9ab[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_['pick'](_0x7b5d57[_0x0e82('0x3c')],_0x3455a4[_0x0e82('0x4d')]));if(_0x7b5d57['query'][_0x0e82('0x2b')]){_0x47e9ab['where']=_[_0x0e82('0x51')](_0x47e9ab[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0x47e9ab['attributes'],function(_0x1139a7){var _0x5e3c6b={};_0x5e3c6b[_0x1139a7]={'$like':'%'+_0x7b5d57[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x5e3c6b;})});}_0x47e9ab=_['merge']({},_0x47e9ab,_0x7b5d57['options']);return _0xdba55e[_0x0e82('0x148')](_0x47e9ab);}})[_0x0e82('0x13')](function(_0x2a604a){if(_0x2a604a){_0x3e1e6d=_0x2a604a[_0x0e82('0x42')];if(!_0x7b5d57[_0x0e82('0x3c')][_0x0e82('0xc7')]('nolimit')){_0x47e9ab[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x7b5d57[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x47e9ab[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x7b5d57[_0x0e82('0x3c')][_0x0e82('0x20')]);}return _0xdba55e[_0x0e82('0x148')](_0x47e9ab);}})[_0x0e82('0x13')](function(_0x3d98be){if(_0x3d98be){return _0x3d98be?{'count':_0x3e1e6d,'rows':_0x3d98be}:null;}})[_0x0e82('0x13')](respondWithResult(_0x599d18,null))['catch'](handleError(_0x599d18,null));};exports[_0x0e82('0x149')]=function(_0x1b6f41,_0x500d33){return db[_0x0e82('0x35')]['find']({'where':{'id':_0x1b6f41[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x500d33,null))[_0x0e82('0x13')](function(_0x545f06){if(_0x545f06){return _0x545f06[_0x0e82('0x149')](_0x1b6f41[_0x0e82('0x58')]['ids'],_[_0x0e82('0x5b')](_0x1b6f41[_0x0e82('0x58')],[_0x0e82('0xa1'),'id'])||{});}})['then'](respondWithResult(_0x500d33,null))['catch'](handleError(_0x500d33,null));};exports[_0x0e82('0x14a')]=function(_0x3c0c77,_0x9cbba3){return db[_0x0e82('0x35')]['find']({'where':{'id':_0x3c0c77[_0x0e82('0x49')]['id']}})['then'](handleEntityNotFound(_0x9cbba3,null))['then'](function(_0x295554){if(_0x295554){return _0x295554[_0x0e82('0x14a')](_0x3c0c77[_0x0e82('0x3c')][_0x0e82('0xa1')]);}})[_0x0e82('0x13')](respondWithStatusCode(_0x9cbba3,null))[_0x0e82('0x1b')](handleError(_0x9cbba3,null));};exports[_0x0e82('0x14b')]=function(_0x4a14cd,_0x4c6aa1){var _0x5a6ab2={};var _0xf6964d={};var _0x46a08a;var _0x4d4db7;return db[_0x0e82('0x35')][_0x0e82('0xd1')]({'where':{'id':_0x4a14cd[_0x0e82('0x49')]['id']}})['then'](handleEntityNotFound(_0x4c6aa1,null))[_0x0e82('0x13')](function(_0x228a1f){if(_0x228a1f){_0x46a08a=_0x228a1f;_0xf6964d[_0x0e82('0x4a')]=_['keys'](db[_0x0e82('0x14c')][_0x0e82('0x36')]);_0xf6964d['query']=_[_0x0e82('0x4c')](_0x4a14cd[_0x0e82('0x3c')]);_0xf6964d[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0xf6964d['model'],_0xf6964d[_0x0e82('0x3c')]);_0x5a6ab2[_0x0e82('0x3e')]=_[_0x0e82('0x4e')](_0xf6964d[_0x0e82('0x4a')],qs[_0x0e82('0x4f')](_0x4a14cd['query'][_0x0e82('0x4f')]));_0x5a6ab2[_0x0e82('0x3e')]=_0x5a6ab2['attributes']['length']?_0x5a6ab2[_0x0e82('0x3e')]:_0xf6964d[_0x0e82('0x4a')];_0x5a6ab2['order']=qs[_0x0e82('0xc5')](_0x4a14cd['query'][_0x0e82('0xc5')]);_0x5a6ab2[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x4a14cd['query'],_0xf6964d[_0x0e82('0x4d')]));if(_0x4a14cd[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x5a6ab2[_0x0e82('0x3b')]=_[_0x0e82('0x51')](_0x5a6ab2['where'],{'$or':_[_0x0e82('0x2d')](_0x5a6ab2[_0x0e82('0x3e')],function(_0x18e46b){var _0x8fbf32={};_0x8fbf32[_0x18e46b]={'$like':'%'+_0x4a14cd['query']['filter']+'%'};return _0x8fbf32;})});}_0x5a6ab2=_[_0x0e82('0x51')]({},_0x5a6ab2,_0x4a14cd['options']);return _0x46a08a['getSmsAccounts'](_0x5a6ab2);}})[_0x0e82('0x13')](function(_0x4cceaf){if(_0x4cceaf){_0x4d4db7=_0x4cceaf['length'];if(!_0x4a14cd[_0x0e82('0x3c')][_0x0e82('0xc7')]('nolimit')){_0x5a6ab2['limit']=qs['limit'](_0x4a14cd['query'][_0x0e82('0x22')]);_0x5a6ab2[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x4a14cd[_0x0e82('0x3c')][_0x0e82('0x20')]);}return _0x46a08a['getSmsAccounts'](_0x5a6ab2);}})[_0x0e82('0x13')](function(_0x544d09){if(_0x544d09){return _0x544d09?{'count':_0x4d4db7,'rows':_0x544d09}:null;}})[_0x0e82('0x13')](respondWithResult(_0x4c6aa1,null))[_0x0e82('0x1b')](handleError(_0x4c6aa1,null));};exports['addSmsAccounts']=function(_0x26636d,_0x55e845){return db['User']['find']({'where':{'id':_0x26636d[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x55e845,null))['then'](function(_0x3d6c8e){if(_0x3d6c8e){return _0x3d6c8e['addSmsAccounts'](_0x26636d[_0x0e82('0x58')]['ids'],_[_0x0e82('0x5b')](_0x26636d['body'],[_0x0e82('0xa1'),'id'])||{});}})['then'](respondWithResult(_0x55e845,null))[_0x0e82('0x1b')](handleError(_0x55e845,null));};exports[_0x0e82('0x14d')]=function(_0x20a0f0,_0x36522c){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x20a0f0[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x36522c,null))[_0x0e82('0x13')](function(_0x119f99){if(_0x119f99){return _0x119f99[_0x0e82('0x14d')](_0x20a0f0[_0x0e82('0x3c')][_0x0e82('0xa1')]);}})[_0x0e82('0x13')](respondWithStatusCode(_0x36522c,null))[_0x0e82('0x1b')](handleError(_0x36522c,null));};exports[_0x0e82('0x14e')]=function(_0x4031b3,_0x54d9a9){var _0x120f10={};var _0x20a080={};var _0x4fb5e9;var _0x15a610;return db['User']['findOne']({'where':{'id':_0x4031b3[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x54d9a9,null))[_0x0e82('0x13')](function(_0x54736d){if(_0x54736d){_0x4fb5e9=_0x54736d;_0x20a080[_0x0e82('0x4a')]=_['keys'](db[_0x0e82('0x14f')][_0x0e82('0x36')]);_0x20a080[_0x0e82('0x3c')]=_['keys'](_0x4031b3['query']);_0x20a080[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x20a080[_0x0e82('0x4a')],_0x20a080[_0x0e82('0x3c')]);_0x120f10[_0x0e82('0x3e')]=_[_0x0e82('0x4e')](_0x20a080[_0x0e82('0x4a')],qs['fields'](_0x4031b3[_0x0e82('0x3c')]['fields']));_0x120f10[_0x0e82('0x3e')]=_0x120f10[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x120f10[_0x0e82('0x3e')]:_0x20a080[_0x0e82('0x4a')];_0x120f10[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x4031b3[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x120f10[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x4031b3[_0x0e82('0x3c')],_0x20a080['filters']));if(_0x4031b3[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x120f10[_0x0e82('0x3b')]=_[_0x0e82('0x51')](_0x120f10[_0x0e82('0x3b')],{'$or':_['map'](_0x120f10[_0x0e82('0x3e')],function(_0x2a7344){var _0xde7d9d={};_0xde7d9d[_0x2a7344]={'$like':'%'+_0x4031b3[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0xde7d9d;})});}_0x120f10=_[_0x0e82('0x51')]({},_0x120f10,_0x4031b3[_0x0e82('0x52')]);return _0x4fb5e9[_0x0e82('0x14e')](_0x120f10);}})[_0x0e82('0x13')](function(_0x3f4ff5){if(_0x3f4ff5){_0x15a610=_0x3f4ff5[_0x0e82('0x42')];if(!_0x4031b3['query'][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x120f10[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x4031b3[_0x0e82('0x3c')]['limit']);_0x120f10[_0x0e82('0x20')]=qs[_0x0e82('0x20')](_0x4031b3['query']['offset']);}return _0x4fb5e9[_0x0e82('0x14e')](_0x120f10);}})[_0x0e82('0x13')](function(_0x231a94){if(_0x231a94){return _0x231a94?{'count':_0x15a610,'rows':_0x231a94}:null;}})[_0x0e82('0x13')](respondWithResult(_0x54d9a9,null))[_0x0e82('0x1b')](handleError(_0x54d9a9,null));};exports[_0x0e82('0x150')]=function(_0x5b3fa7,_0x4030b7){return db[_0x0e82('0x35')]['find']({'where':{'id':_0x5b3fa7[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x4030b7,null))[_0x0e82('0x13')](function(_0x3c7216){if(_0x3c7216){return _0x3c7216[_0x0e82('0x150')](_0x5b3fa7[_0x0e82('0x58')]['ids'],_[_0x0e82('0x5b')](_0x5b3fa7[_0x0e82('0x58')],[_0x0e82('0xa1'),'id'])||{});}})[_0x0e82('0x13')](respondWithResult(_0x4030b7,null))['catch'](handleError(_0x4030b7,null));};exports['removeChatWebsites']=function(_0x2249ae,_0x2662ca){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x2249ae[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x2662ca,null))['then'](function(_0x2c5e46){if(_0x2c5e46){return _0x2c5e46[_0x0e82('0x151')](_0x2249ae['query']['ids']);}})[_0x0e82('0x13')](respondWithStatusCode(_0x2662ca,null))[_0x0e82('0x1b')](handleError(_0x2662ca,null));};exports['getWhatsappAccounts']=function(_0x4cdbac,_0x3fc44b){var _0x263a46={};var _0x415f75={};var _0x290e74;var _0x21239a;return db[_0x0e82('0x35')][_0x0e82('0xd1')]({'where':{'id':_0x4cdbac[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x3fc44b,null))['then'](function(_0x447fe9){if(_0x447fe9){_0x290e74=_0x447fe9;_0x415f75['model']=_['keys'](db['WhatsappAccount'][_0x0e82('0x36')]);_0x415f75[_0x0e82('0x3c')]=_['keys'](_0x4cdbac[_0x0e82('0x3c')]);_0x415f75[_0x0e82('0x4d')]=_['intersection'](_0x415f75[_0x0e82('0x4a')],_0x415f75[_0x0e82('0x3c')]);_0x263a46['attributes']=_[_0x0e82('0x4e')](_0x415f75[_0x0e82('0x4a')],qs['fields'](_0x4cdbac[_0x0e82('0x3c')][_0x0e82('0x4f')]));_0x263a46[_0x0e82('0x3e')]=_0x263a46[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x263a46[_0x0e82('0x3e')]:_0x415f75[_0x0e82('0x4a')];_0x263a46[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x4cdbac[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x263a46[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_['pick'](_0x4cdbac[_0x0e82('0x3c')],_0x415f75[_0x0e82('0x4d')]));if(_0x4cdbac[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x263a46[_0x0e82('0x3b')]=_[_0x0e82('0x51')](_0x263a46['where'],{'$or':_['map'](_0x263a46[_0x0e82('0x3e')],function(_0x23a33b){var _0x15b16d={};_0x15b16d[_0x23a33b]={'$like':'%'+_0x4cdbac[_0x0e82('0x3c')]['filter']+'%'};return _0x15b16d;})});}_0x263a46=_[_0x0e82('0x51')]({},_0x263a46,_0x4cdbac[_0x0e82('0x52')]);return _0x290e74[_0x0e82('0x152')](_0x263a46);}})['then'](function(_0xe24bbc){if(_0xe24bbc){_0x21239a=_0xe24bbc[_0x0e82('0x42')];if(!_0x4cdbac[_0x0e82('0x3c')][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x263a46[_0x0e82('0x22')]=qs['limit'](_0x4cdbac['query'][_0x0e82('0x22')]);_0x263a46[_0x0e82('0x20')]=qs['offset'](_0x4cdbac[_0x0e82('0x3c')][_0x0e82('0x20')]);}return _0x290e74['getWhatsappAccounts'](_0x263a46);}})[_0x0e82('0x13')](function(_0x48a908){if(_0x48a908){return _0x48a908?{'count':_0x21239a,'rows':_0x48a908}:null;}})[_0x0e82('0x13')](respondWithResult(_0x3fc44b,null))[_0x0e82('0x1b')](handleError(_0x3fc44b,null));};exports['addWhatsappAccounts']=function(_0x292fa6,_0x59e433){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x292fa6[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x59e433,null))[_0x0e82('0x13')](function(_0x474f02){if(_0x474f02){return _0x474f02[_0x0e82('0x153')](_0x292fa6[_0x0e82('0x58')][_0x0e82('0xa1')],_[_0x0e82('0x5b')](_0x292fa6[_0x0e82('0x58')],['ids','id'])||{});}})[_0x0e82('0x13')](respondWithResult(_0x59e433,null))[_0x0e82('0x1b')](handleError(_0x59e433,null));};exports[_0x0e82('0x154')]=function(_0x226a47,_0x21cc12){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x226a47[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x21cc12,null))[_0x0e82('0x13')](function(_0x2ae5cc){if(_0x2ae5cc){return _0x2ae5cc[_0x0e82('0x154')](_0x226a47[_0x0e82('0x3c')][_0x0e82('0xa1')]);}})[_0x0e82('0x13')](respondWithStatusCode(_0x21cc12,null))[_0x0e82('0x1b')](handleError(_0x21cc12,null));};exports['getSquareProjects']=function(_0x160fce,_0x1f9b2a){var _0x3b2f52={};var _0x338197={};var _0x3d567c;var _0x4581e9;return db['User'][_0x0e82('0xd1')]({'where':{'id':_0x160fce[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x1f9b2a,null))[_0x0e82('0x13')](function(_0x204573){if(_0x204573){_0x3d567c=_0x204573;_0x338197[_0x0e82('0x4a')]=_[_0x0e82('0x4c')](db[_0x0e82('0x155')][_0x0e82('0x36')]);_0x338197[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x160fce[_0x0e82('0x3c')]);_0x338197[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x338197[_0x0e82('0x4a')],_0x338197[_0x0e82('0x3c')]);_0x3b2f52[_0x0e82('0x3e')]=_['intersection'](_0x338197['model'],qs[_0x0e82('0x4f')](_0x160fce['query'][_0x0e82('0x4f')]));_0x3b2f52['attributes']=_0x3b2f52[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x3b2f52[_0x0e82('0x3e')]:_0x338197[_0x0e82('0x4a')];_0x3b2f52[_0x0e82('0xc4')]=qs['sort'](_0x160fce[_0x0e82('0x3c')]['sort']);_0x3b2f52[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x160fce[_0x0e82('0x3c')],_0x338197[_0x0e82('0x4d')]));if(_0x160fce[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x3b2f52['where']=_[_0x0e82('0x51')](_0x3b2f52[_0x0e82('0x3b')],{'$or':_['map'](_0x3b2f52[_0x0e82('0x3e')],function(_0x3ec372){var _0x4342ca={};_0x4342ca[_0x3ec372]={'$like':'%'+_0x160fce[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x4342ca;})});}_0x3b2f52=_['merge']({},_0x3b2f52,_0x160fce[_0x0e82('0x52')]);return _0x3d567c[_0x0e82('0x156')](_0x3b2f52);}})[_0x0e82('0x13')](function(_0x1917a0){if(_0x1917a0){_0x4581e9=_0x1917a0[_0x0e82('0x42')];if(!_0x160fce[_0x0e82('0x3c')][_0x0e82('0xc7')]('nolimit')){_0x3b2f52[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x160fce[_0x0e82('0x3c')][_0x0e82('0x22')]);_0x3b2f52[_0x0e82('0x20')]=qs['offset'](_0x160fce[_0x0e82('0x3c')][_0x0e82('0x20')]);}return _0x3d567c[_0x0e82('0x156')](_0x3b2f52);}})[_0x0e82('0x13')](function(_0x22346d){if(_0x22346d){return _0x22346d?{'count':_0x4581e9,'rows':_0x22346d}:null;}})[_0x0e82('0x13')](respondWithResult(_0x1f9b2a,null))[_0x0e82('0x1b')](handleError(_0x1f9b2a,null));};exports[_0x0e82('0x157')]=function(_0x4dc067,_0x536666){return db[_0x0e82('0x35')]['find']({'where':{'id':_0x4dc067['params']['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x536666,null))[_0x0e82('0x13')](function(_0x339b56){if(_0x339b56){return _0x339b56[_0x0e82('0x157')](_0x4dc067[_0x0e82('0x58')][_0x0e82('0xa1')],_['omit'](_0x4dc067[_0x0e82('0x58')],['ids','id'])||{});}})['then'](respondWithResult(_0x536666,null))[_0x0e82('0x1b')](handleError(_0x536666,null));};exports[_0x0e82('0x158')]=function(_0x30152b,_0x5c6ff3){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x30152b[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x5c6ff3,null))[_0x0e82('0x13')](function(_0x489b8a){if(_0x489b8a){return _0x489b8a[_0x0e82('0x158')](_0x30152b[_0x0e82('0x3c')][_0x0e82('0xa1')]);}})[_0x0e82('0x13')](respondWithStatusCode(_0x5c6ff3,null))[_0x0e82('0x1b')](handleError(_0x5c6ff3,null));};exports[_0x0e82('0x159')]=function(_0x1219b1,_0x535780){var _0x1ddccd={},_0x15032c={},_0xd3904={'count':0x0,'rows':[]};var _0x3f59f5=db[_0x0e82('0x15a')][_0x0e82('0x36')];_0x15032c['model']=_[_0x0e82('0x4c')](_0x3f59f5);_0x15032c[_0x0e82('0x3c')]=_[_0x0e82('0x4c')](_0x1219b1[_0x0e82('0x3c')]);_0x15032c[_0x0e82('0x4d')]=_[_0x0e82('0x4e')](_0x15032c[_0x0e82('0x4a')],_0x15032c[_0x0e82('0x3c')]);_0x15032c[_0x0e82('0x4d')]=_[_0x0e82('0xf8')](_0x15032c['filters'],[_0x0e82('0x15b'),'$or','$gt','$gte',_0x0e82('0x15c'),_0x0e82('0x15d'),'$ne',_0x0e82('0x15e'),_0x0e82('0x15f'),_0x0e82('0x160'),'$notBetween',_0x0e82('0x161'),_0x0e82('0x162'),_0x0e82('0x163'),'$notLike','$iLike',_0x0e82('0x164'),'$like',_0x0e82('0x165'),_0x0e82('0x166'),_0x0e82('0x167'),_0x0e82('0x168')]);_0x1ddccd[_0x0e82('0x3e')]=_[_0x0e82('0x4e')](_0x15032c[_0x0e82('0x4a')],qs[_0x0e82('0x4f')](_0x1219b1[_0x0e82('0x3c')]['fields']));_0x1ddccd[_0x0e82('0x3e')]=_0x1ddccd[_0x0e82('0x3e')][_0x0e82('0x42')]?_0x1ddccd[_0x0e82('0x3e')]:_0x15032c[_0x0e82('0x4a')];if(!_0x1219b1[_0x0e82('0x3c')][_0x0e82('0xc7')]('nolimit')){_0x1ddccd['limit']=qs[_0x0e82('0x22')](_0x1219b1[_0x0e82('0x3c')]['limit']);_0x1ddccd['offset']=qs[_0x0e82('0x20')](_0x1219b1['query'][_0x0e82('0x20')]);}_0x1ddccd[_0x0e82('0xc4')]=qs[_0x0e82('0xc5')](_0x1219b1[_0x0e82('0x3c')][_0x0e82('0xc5')]);_0x1ddccd[_0x0e82('0x3b')]=qs[_0x0e82('0x4d')](_[_0x0e82('0xc6')](_0x1219b1[_0x0e82('0x3c')],_0x15032c[_0x0e82('0x4d')]));if(_0x1219b1[_0x0e82('0x3c')][_0x0e82('0x2b')]){_0x1ddccd[_0x0e82('0x3b')]=_['merge'](_0x1ddccd[_0x0e82('0x3b')],{'$or':_[_0x0e82('0x2d')](_0x1ddccd[_0x0e82('0x3e')],function(_0x1f0449){var _0x1feb2a={};_0x1feb2a[_0x1f0449]={'$like':'%'+_0x1219b1[_0x0e82('0x3c')][_0x0e82('0x2b')]+'%'};return _0x1feb2a;})});}_0x1ddccd[_0x0e82('0x3b')]={'$and':[_0x1ddccd[_0x0e82('0x3b')],{'$or':[{'UserId':_0x1219b1[_0x0e82('0x49')]['id']},{'OwnerId':_0x1219b1[_0x0e82('0x49')]['id']}]}]};_0x1ddccd=_[_0x0e82('0x51')]({},_0x1ddccd,_0x1219b1[_0x0e82('0x52')]);var _0x50d91e={'where':_0x1ddccd[_0x0e82('0x3b')]};return db['CmHopper'][_0x0e82('0x23')](_0x50d91e)[_0x0e82('0x13')](function(_0x5df6b2){_0xd3904[_0x0e82('0x23')]=_0x5df6b2;if(_0x1219b1['query'][_0x0e82('0x50')]){_0x1ddccd[_0x0e82('0x3d')]=[{'attributes':['id',_0x0e82('0x169'),_0x0e82('0x16a'),_0x0e82('0x16b')],'model':db[_0x0e82('0x16c')],'as':_0x0e82('0x16d')},{'attributes':['id','name','dialActive'],'model':db[_0x0e82('0xa8')],'as':_0x0e82('0xce')}];}return db[_0x0e82('0x15a')][_0x0e82('0x40')](_0x1ddccd);})[_0x0e82('0x13')](function(_0x48c6df){_0xd3904[_0x0e82('0x41')]=_0x48c6df;return _0xd3904;})[_0x0e82('0x13')](respondWithFilteredResult(_0x535780,_0x1ddccd))[_0x0e82('0x1b')](handleError(_0x535780,null));};exports[_0x0e82('0x16e')]=function(_0x4545e6,_0x316d15){if(!_[_0x0e82('0x60')](_0x4545e6[_0x0e82('0x27')]['id'])&&(_0x4545e6[_0x0e82('0x27')][_0x0e82('0x26')]==_0x0e82('0x78')||_0x4545e6['user'][_0x0e82('0x26')]=='user')){return db[_0x0e82('0x35')][_0x0e82('0xd1')]({'where':{'id':_0x4545e6[_0x0e82('0x49')]['id']},'raw':!![]})[_0x0e82('0x13')](function(_0x497eca){return authService[_0x0e82('0x16f')](_0x497eca);})[_0x0e82('0x13')](function(_0x1004e8){if(_0x1004e8){return _0x316d15['status'](0xc8)['json']({'api_key':_0x1004e8[_0x0e82('0x170')]});}else{return _0x316d15['status'](0xcc)['json']({'message':_0x0e82('0x171')});}})[_0x0e82('0x1b')](handleError(_0x316d15,0x193));}else{return _0x316d15[_0x0e82('0x1d')](0x191)['json']({'message':_0x0e82('0x172')});}};exports[_0x0e82('0x173')]=function(_0x10bb3c,_0x368135){if(!_[_0x0e82('0x60')](_0x10bb3c[_0x0e82('0x27')]['id'])&&(_0x10bb3c[_0x0e82('0x27')][_0x0e82('0x26')]=='admin'||_0x10bb3c[_0x0e82('0x27')][_0x0e82('0x26')]==_0x0e82('0x27'))){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x10bb3c['params']['id']}})[_0x0e82('0x13')](function(_0x2f4b1d){return authService[_0x0e82('0x174')](_0x2f4b1d);})['then'](function(_0x18dcb4){return db[_0x0e82('0x35')][_0x0e82('0x57')]({'apiKeyIat':_0x18dcb4[_0x0e82('0x175')],'apiKeyNonce':_0x18dcb4[_0x0e82('0x176')]},{'where':{'id':_0x10bb3c[_0x0e82('0x49')]['id']}})['then'](function(){return _0x368135['status'](0xc8)[_0x0e82('0x1f')]({'api_key':_0x18dcb4[_0x0e82('0x170')]});});})['catch'](handleError(_0x368135,0x193));}else{return _0x368135['status'](0x191)[_0x0e82('0x1f')]({'message':_0x0e82('0x172')});}};exports['removeApiKey']=function(_0x55ea28,_0x39fca7){if(!_['isNil'](_0x55ea28[_0x0e82('0x27')]['id'])&&(_0x55ea28[_0x0e82('0x27')][_0x0e82('0x26')]==_0x0e82('0x78')||_0x55ea28['user'][_0x0e82('0x26')]==_0x0e82('0x27'))){return db[_0x0e82('0x35')][_0x0e82('0x30')]({'where':{'id':_0x55ea28[_0x0e82('0x49')]['id']}})[_0x0e82('0x13')](handleEntityNotFound(_0x39fca7,null))[_0x0e82('0x13')](function(_0x298f3b){if(_0x298f3b&&_0x298f3b[_0x0e82('0x177')]&&_0x298f3b['apiKeyIat'])return _0x298f3b;else throw{'message':_0x0e82('0x178')};})['then'](function(_0x1a8288){return db[_0x0e82('0x35')]['update']({'apiKeyNonce':null,'apiKeyIat':null},{'where':{'id':_0x55ea28[_0x0e82('0x49')]['id']}});})[_0x0e82('0x13')](respondWithStatusCode(_0x39fca7,0xc8))['catch'](handleError(_0x39fca7,0x193));}else{return _0x39fca7[_0x0e82('0x1d')](0x191)[_0x0e82('0x1f')]({'message':_0x0e82('0x172')});}};exports[_0x0e82('0x179')]=function(_0x2a7d05,_0x49c983){var _0x142d5c=_0x2a7d05[_0x0e82('0x27')][_0x0e82('0xa9')]({'plain':!![]});if(!_0x142d5c){return _0x49c983[_0x0e82('0x1d')](0x191)['send'](_0x0e82('0x17a'));}else{return _0x49c983[_0x0e82('0x1d')](0xc8)['json'](_0x142d5c);}};exports[_0x0e82('0x17b')]=function(_0x3cde21,_0x5a7265){var _0x245120={'offset':0x0},_0x13bdea={'count':0x0,'rows':[]};Promise[_0x0e82('0x17c')]()['then'](function(){if(!_0x3cde21[_0x0e82('0x3c')][_0x0e82('0x2b')]&&!_0x3cde21[_0x0e82('0x3c')]['teams']&&!_0x3cde21['query'][_0x0e82('0x17d')])return[];return Promise[_0x0e82('0x17c')]()['then'](function(){var _0x4a44a2=[];if(!_['isEmpty'](_0x3cde21[_0x0e82('0x3c')][_0x0e82('0x17e')])){_0x4a44a2[_0x0e82('0x3f')](db[_0x0e82('0x10f')][_0x0e82('0x40')]({'attributes':['id','name'],'where':{'id':_0x3cde21[_0x0e82('0x3c')][_0x0e82('0x17e')]}}));}if(!_['isEmpty'](_0x3cde21[_0x0e82('0x3c')][_0x0e82('0x17d')])){_0x4a44a2[_0x0e82('0x3f')](db[_0x0e82('0xa8')][_0x0e82('0x40')]({'attributes':['id',_0x0e82('0x31')],'type':'inbound','where':{'id':_0x3cde21[_0x0e82('0x3c')][_0x0e82('0x17d')]}}));}return Promise[_0x0e82('0x56')](_0x4a44a2);})['then'](function(_0x3b5e71){var _0x45b187=_[_0x0e82('0x122')](_0x3b5e71)[_0x0e82('0x2d')](function(_0x433237){return _0x433237['getAgents']({'attributes':['id',_0x0e82('0x31'),'internal',_0x0e82('0x98')],'raw':!![]});});return Promise[_0x0e82('0x56')](_0x45b187);})[_0x0e82('0x13')](function(_0x736b77){var _0x289712=_[_0x0e82('0x122')](_0x736b77);if(!_0x3cde21['query'][_0x0e82('0x2b')])return _0x289712;if(_[_0x0e82('0x84')](_0x289712)){return db[_0x0e82('0x35')][_0x0e82('0x40')]({'attributes':['id',_0x0e82('0x31'),'internal','online'],'where':{'role':_0x0e82('0x29'),'$or':[db[_0x0e82('0x62')][_0x0e82('0x3b')](db[_0x0e82('0x62')]['fn']('lower',db['sequelize'][_0x0e82('0x17f')]('name')),{'$like':'%'+_0x3cde21[_0x0e82('0x3c')][_0x0e82('0x2b')][_0x0e82('0x9f')]()+'%'}),{'internal':{'$like':'%'+_0x3cde21[_0x0e82('0x3c')]['filter']+'%'}}]},'raw':!![]});}else{return _(_0x289712)[_0x0e82('0x122')]()['filter'](function(_0x4ee2d5){return _0x4ee2d5[_0x0e82('0x31')]['toLowerCase']()[_0x0e82('0x2f')](_0x3cde21[_0x0e82('0x3c')][_0x0e82('0x2b')][_0x0e82('0x9f')]())||_0x4ee2d5[_0x0e82('0x5c')]['toString']()[_0x0e82('0x2f')](_0x3cde21[_0x0e82('0x3c')]['filter']);})[_0x0e82('0x2e')]();}})[_0x0e82('0x13')](function(_0x3e971a){var _0x35f65a=_0x0e82('0x31');var _0x4544ba=_0x0e82('0x180');if(_0x3cde21[_0x0e82('0x3c')][_0x0e82('0xc5')]){var _0x4544ba=_0x3cde21['query'][_0x0e82('0xc5')][0x0]==='-'?'desc':'asc';var _0x35f65a=_0x4544ba===_0x0e82('0x180')?_0x3cde21[_0x0e82('0x3c')]['sort']:_0x3cde21[_0x0e82('0x3c')][_0x0e82('0xc5')][_0x0e82('0x181')](0x1);}return _(_0x3e971a)[_0x0e82('0x182')]('id')[_0x0e82('0x183')]([function(_0x33f44a){return _0x35f65a==='name'?_0x33f44a[_0x35f65a][_0x0e82('0x9f')]():_0x33f44a[_0x35f65a];}],[_0x4544ba])['map'](function(_0x270780){return _[_0x0e82('0xc6')](_0x270780,['id','name',_0x0e82('0x5c'),_0x0e82('0x98')]);})[_0x0e82('0x2e')]();})[_0x0e82('0x13')](function(_0x2ebaca){return client['request'](_0x0e82('0x28'),_0x3cde21)[_0x0e82('0x13')](function(_0x5795f1){if(_0x5795f1[_0x0e82('0x17')])throw new Error(_0x0e82('0x184'));var _0x2cbd2=_0x5795f1[_0x0e82('0x1a')];var _0x43c027=jayson[_0x0e82('0x10')][_0x0e82('0x11')]({'port':0x232c});return _0x43c027[_0x0e82('0x12')](_0x0e82('0x28'),_0x3cde21)[_0x0e82('0x13')](function(_0x3836a8){if(_0x3836a8[_0x0e82('0x17')])throw new Error(_0x0e82('0x185'));var _0x30f082=_0x3836a8[_0x0e82('0x1a')];return _[_0x0e82('0x51')]({},_0x30f082,_0x2cbd2);});})['then'](function(_0x2a9667){return _[_0x0e82('0x2d')](_0x2ebaca,function(_0x48ef7b){var _0x106ca8=_[_0x0e82('0x30')](_0x2a9667[_0x0e82('0x41')],['id',_0x48ef7b['id']]);if(!_0x106ca8||!_0x48ef7b[_0x0e82('0x98')]){_0x48ef7b[_0x0e82('0x1d')]=_0x0e82('0x186');}else if(_0x106ca8[_0x0e82('0x9a')]){_0x48ef7b[_0x0e82('0x1d')]='pause';}else{_0x48ef7b[_0x0e82('0x1d')]=_[_0x0e82('0x2f')]([_0x0e82('0x187'),'unknown',_0x0e82('0x188'),_0x0e82('0x189'),null,undefined],_0x106ca8[_0x0e82('0x18a')])?'online':'busy';}return _0x48ef7b;});});});})[_0x0e82('0x13')](function(_0x484970){if(!_0x3cde21[_0x0e82('0x3c')][_0x0e82('0xc7')](_0x0e82('0xcc'))){_0x245120[_0x0e82('0x22')]=qs[_0x0e82('0x22')](_0x3cde21['query'][_0x0e82('0x22')]||0xa);_0x245120[_0x0e82('0x20')]=qs['offset'](_0x3cde21[_0x0e82('0x3c')][_0x0e82('0x20')]);}_0x13bdea[_0x0e82('0x23')]=_0x484970[_0x0e82('0x42')];_0x13bdea[_0x0e82('0x41')]=_0x245120['limit']?_0x484970[_0x0e82('0x18b')](_0x245120[_0x0e82('0x20')],_0x245120[_0x0e82('0x20')]+_0x245120['limit']):_0x484970;return _0x13bdea;})[_0x0e82('0x13')](respondWithFilteredResult(_0x5a7265,_0x245120))[_0x0e82('0x1b')](handleError(_0x5a7265,null));};function get_open_tabs(_0x22ce22,_0xcea494){var _0x41862f=_0x22ce22[_0x0e82('0x18c')](0x0)[_0x0e82('0x18d')]()+_0x22ce22[_0x0e82('0x18b')](0x1);var _0x2ccd8f={'type':db[_0x0e82('0x89')][_0x0e82('0x64')]['SELECT'],'raw':!![]};return new BPromise(function(_0x4db39c,_0x298579){var _0x4c97bd=squel['select']()[_0x0e82('0x18e')](_0x0e82('0x18f')+_0x41862f+_0x0e82('0x190'),'id')[_0x0e82('0x18e')](_0x0e82('0x191'))[_0x0e82('0x66')](_0x0e82('0x192')+_0x22ce22+_0x0e82('0x193'),'ui')[_0x0e82('0x3b')]('ui.UserId\x20=\x20?',_0xcea494['id']);return db[_0x0e82('0x62')][_0x0e82('0x3c')](_0x4c97bd[_0x0e82('0x194')](),_0x2ccd8f)[_0x0e82('0x13')](function(_0x19a07b){_0xcea494[_0x41862f+'OpenTabs']=_0x19a07b;_0x4db39c(_0x19a07b);})['catch'](function(_0xb55bce){_0x298579(_0xb55bce);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x808b=['hasOwnProperty','hook','events','../../mysqldb','User','setMaxListeners','update','remove','emit'];(function(_0xa148b7,_0x2f3eb2){var _0x51efd3=function(_0x34bcec){while(--_0x34bcec){_0xa148b7['push'](_0xa148b7['shift']());}};_0x51efd3(++_0x2f3eb2);}(_0x808b,0xda));var _0xb808=function(_0x92baa8,_0xaacf7e){_0x92baa8=_0x92baa8-0x0;var _0x94bc0d=_0x808b[_0x92baa8];return _0x94bc0d;};'use strict';var EventEmitter=require(_0xb808('0x0'));var User=require(_0xb808('0x1'))['db'][_0xb808('0x2')];var UserEvents=new EventEmitter();UserEvents[_0xb808('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0xb808('0x4'),'afterDestroy':_0xb808('0x5')};function emitEvent(_0xf10550){return function(_0x29876b,_0x14f6ba,_0x4bfedd){UserEvents[_0xb808('0x6')](_0xf10550+':'+_0x29876b['id'],_0x29876b);UserEvents[_0xb808('0x6')](_0xf10550,_0x29876b);_0x4bfedd(null);};}for(var e in events){if(events[_0xb808('0x7')](e)){var event=events[e];User[_0xb808('0x8')](e,emitEvent(event));}}module['exports']=UserEvents;
\ No newline at end of file
+var _0xde28=['setMaxListeners','update','emit','hasOwnProperty','hook','events','../../mysqldb','User'];(function(_0x50f957,_0x5e629b){var _0x5ff3dc=function(_0x5c3c40){while(--_0x5c3c40){_0x50f957['push'](_0x50f957['shift']());}};_0x5ff3dc(++_0x5e629b);}(_0xde28,0x1b5));var _0x8de2=function(_0x3af76b,_0x3ff964){_0x3af76b=_0x3af76b-0x0;var _0x441064=_0xde28[_0x3af76b];return _0x441064;};'use strict';var EventEmitter=require(_0x8de2('0x0'));var User=require(_0x8de2('0x1'))['db'][_0x8de2('0x2')];var UserEvents=new EventEmitter();UserEvents[_0x8de2('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x8de2('0x4'),'afterDestroy':'remove'};function emitEvent(_0x163b64){return function(_0xf8d5ae,_0x4d3a98,_0x585dd1){UserEvents[_0x8de2('0x5')](_0x163b64+':'+_0xf8d5ae['id'],_0xf8d5ae);UserEvents[_0x8de2('0x5')](_0x163b64,_0xf8d5ae);_0x585dd1(null);};}for(var e in events){if(events[_0x8de2('0x6')](e)){var event=events[e];User[_0x8de2('0x7')](e,emitEvent(event));}}module['exports']=UserEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4774=['defaults','VoiceChanSpy','findAll','then','internal','exports','models','User','users','utf8','utf8_bin','userProfileId','undefined','UserProfile','privacyEnabled','updateMd5Password','catch','resolve','changed','password','updatePassword','concat','VoiceExtension','bulkCreate','destroy','encryptPassword','function','Missing\x20Callback','randomBytes','toString','salt','base64','pbkdf2Sync','sha1','Invalid\x20password','makeSalt','md5secret',':asterisk:','bluebird','crypto','util','md5','lodash','google','length','context','system','format','%s%s','prefix','merge','Set','chanspy','record','MixMonitor','recordingFormat','auth','push','ChanSpy','SIP/%s,%s','name','options','StopMixMonitor','wav','gsm','from-sip','CDR(type)=internal','extensionMonitor','Dial','SIP/%s,,tTxXU(xcally-mixmonitor-context)','SIP/%s,,tTxX','Hangup','priority'];(function(_0x2d1c9a,_0xa63e28){var _0x10cb64=function(_0x15a58e){while(--_0x15a58e){_0x2d1c9a['push'](_0x2d1c9a['shift']());}};_0x10cb64(++_0xa63e28);}(_0x4774,0xb8));var _0x4477=function(_0xfb3de,_0xdcb968){_0xfb3de=_0xfb3de-0x0;var _0xdb3d0c=_0x4774[_0xfb3de];return _0xdb3d0c;};'use strict';var BPromise=require(_0x4477('0x0'));var crypto=require(_0x4477('0x1'));var util=require(_0x4477('0x2'));var md5=require(_0x4477('0x3'));var _=require(_0x4477('0x4'));var attributes=require('./user.attributes');var authTypes=[_0x4477('0x5')];var validatePresenceOf=function(_0x522607){return _0x522607&&_0x522607[_0x4477('0x6')];};var getChanSpyApplications=function(_0x96de80,_0x109bbb,_0x46a210){var _0x597387={'context':_0x96de80[_0x4477('0x7')]||'from-sip','type':_0x4477('0x8'),'isApp':![],'UserId':_0x96de80['id']};var _0x4336cf=[];for(var _0x3b6db0=0x0,_0x18675e=0x1;_0x3b6db0<_0x46a210[_0x4477('0x6')];_0x3b6db0++,_0x18675e=0x1){var _0x42e57c={'exten':util[_0x4477('0x9')](_0x4477('0xa'),_0x46a210[_0x3b6db0][_0x4477('0xb')],_0x109bbb),'ChanSpyId':_0x46a210[_0x3b6db0]['id']};_0x4336cf['push'](_[_0x4477('0xc')]({'app':_0x4477('0xd'),'appdata':util[_0x4477('0x9')]('CDR(type)=%s',_0x4477('0xe')),'priority':_0x18675e++},_0x597387,_0x42e57c));if(_0x46a210[_0x3b6db0][_0x4477('0xf')]){_0x4336cf['push'](_[_0x4477('0xc')]({'app':_0x4477('0x10'),'appdata':util['format']('${UNIQUEID}.%s,a',_0x46a210[_0x3b6db0][_0x4477('0x11')]),'priority':_0x18675e++},_0x597387,_0x42e57c));}if(_0x46a210[_0x3b6db0][_0x4477('0x12')]){_0x4336cf[_0x4477('0x13')](_[_0x4477('0xc')]({'app':'Authenticate','appdata':_0x46a210[_0x3b6db0]['password'],'priority':_0x18675e++},_0x597387,_0x42e57c));}_0x4336cf[_0x4477('0x13')](_['merge']({'app':_0x4477('0x14'),'appdata':util[_0x4477('0x9')](_0x4477('0x15'),_0x96de80[_0x4477('0x16')],_0x46a210[_0x3b6db0]['options']?_0x46a210[_0x3b6db0][_0x4477('0x17')]['join'](''):''),'priority':_0x18675e++},_0x597387,_0x42e57c));if(_0x46a210[_0x3b6db0][_0x4477('0xf')]){_0x4336cf['push'](_['merge']({'app':_0x4477('0x18'),'priority':_0x18675e++},_0x597387,_0x42e57c));}}return _0x4336cf;};var getUserApplications=function(_0x35896d,_0x57b4f5){var _0x2ed5a9=[_0x4477('0x19'),'WAV',_0x4477('0x1a')];var _0x24f248={'context':_0x35896d['context']||_0x4477('0x1b'),'exten':_0x57b4f5,'type':_0x4477('0x8'),'isApp':![],'UserId':_0x35896d['id']};var _0x41046d=[{'app':'Set','appdata':_0x4477('0x1c')}];if(_0x35896d[_0x4477('0x1d')]&&_['includes'](_0x2ed5a9,_0x35896d['extensionMonitor'])){_0x41046d[_0x4477('0x13')]({'app':'Set','appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}'});_0x41046d[_0x4477('0x13')]({'app':_0x4477('0xd'),'appdata':util['format']('_XCALLY_MIXMONITOR_FORMAT=%s',_0x35896d[_0x4477('0x1d')])});_0x41046d[_0x4477('0x13')]({'app':_0x4477('0x1e'),'appdata':util[_0x4477('0x9')](_0x4477('0x1f'),_0x35896d[_0x4477('0x16')])});}else{_0x41046d[_0x4477('0x13')]({'app':_0x4477('0x1e'),'appdata':util[_0x4477('0x9')](_0x4477('0x20'),_0x35896d[_0x4477('0x16')])});}_0x41046d['push']({'app':_0x4477('0x21')});for(var _0x1f840e=0x0;_0x1f840e<_0x41046d[_0x4477('0x6')];_0x1f840e++){_0x41046d[_0x1f840e][_0x4477('0x22')]=_0x1f840e+0x1;_0x41046d[_0x1f840e]=_[_0x4477('0x23')](_0x41046d[_0x1f840e],_0x24f248);}return _0x41046d;};var getChanSpyPromise=function(_0x12adca,_0xdc07fd){return new BPromise(function(_0x58eb7e,_0x53697d){return _0x12adca[_0x4477('0x24')][_0x4477('0x25')]()[_0x4477('0x26')](function(_0x1ea4c4){if(_0x1ea4c4){var _0x3ef2be=getChanSpyApplications(_0xdc07fd,_0xdc07fd['internal'],_0x1ea4c4);if(_0xdc07fd[_0x4477('0x27')]!=_0xdc07fd[_0x4477('0x16')]){_0x3ef2be=_0x3ef2be['concat'](getChanSpyApplications(_0xdc07fd,_0xdc07fd[_0x4477('0x16')],_0x1ea4c4));}return _0x58eb7e(_0x3ef2be);}return _0x58eb7e([]);})['catch'](function(_0x2dd30e){_0x53697d(_0x2dd30e);});});};module[_0x4477('0x28')]=function(_0x4faa25,_0x3167d4){var _0x4b905d=_0x4faa25[_0x4477('0x29')];return _0x4faa25['define'](_0x4477('0x2a'),attributes,{'tableName':_0x4477('0x2b'),'charset':_0x4477('0x2c'),'collate':_0x4477('0x2d'),'hooks':{'beforeCreate':function(_0x266965,_0x289cf3,_0x223a14){var _0x9ff23f=typeof _0x266965[_0x4477('0x2e')]===_0x4477('0x2f')?BPromise['resolve'](null):_0x4b905d[_0x4477('0x30')]['find']({'where':{'id':_0x266965[_0x4477('0x2e')]}});_0x9ff23f[_0x4477('0x26')](function(_0x4d8099){if(_0x4d8099){_0x266965[_0x4477('0x31')]=_0x4d8099['privacyEnabled'];}})['then'](function(){_0x266965[_0x4477('0x32')]();_0x266965['updatePassword'](_0x223a14);})[_0x4477('0x33')](function(_0x43c00d){_0x223a14(_0x43c00d);});},'beforeUpdate':function(_0x4a0254,_0x3e9678,_0x5705f6){Promise[_0x4477('0x34')]()[_0x4477('0x26')](function(){if(_0x4a0254['changed'](_0x4477('0x2e'))===![])return;return _0x4b905d[_0x4477('0x30')]['find']({'where':{'id':_0x4a0254['userProfileId']}})[_0x4477('0x26')](function(_0x351249){if(_0x351249)_0x4a0254['privacyEnabled']=_0x351249[_0x4477('0x31')];return;});})['then'](function(){if(_0x4a0254[_0x4477('0x35')](_0x4477('0x36'))){_0x4a0254[_0x4477('0x32')]();return _0x4a0254[_0x4477('0x37')](_0x5705f6);}_0x5705f6();})[_0x4477('0x33')](function(_0x58c566){_0x5705f6(_0x58c566);});},'afterCreate':function(_0xfc4f9c,_0x254942,_0xdbb6e4){var _0x3f0e11=getUserApplications(_0xfc4f9c,_0xfc4f9c[_0x4477('0x27')]);if(_0xfc4f9c[_0x4477('0x27')]!=_0xfc4f9c[_0x4477('0x16')]){_0x3f0e11=_0x3f0e11[_0x4477('0x38')](getUserApplications(_0xfc4f9c,_0xfc4f9c['name']));}return _0x4b905d[_0x4477('0x39')][_0x4477('0x3a')](_0x3f0e11)[_0x4477('0x26')](function(){if(_0xfc4f9c['chanspy']){return getChanSpyPromise(_0x4b905d,_0xfc4f9c);}})[_0x4477('0x26')](function(_0x58ca90){if(_0x58ca90&&_0x58ca90[_0x4477('0x6')]){return _0x4b905d['VoiceExtension'][_0x4477('0x3a')](_0x58ca90);}})[_0x4477('0x26')](function(){_0xdbb6e4();})[_0x4477('0x33')](function(_0x9bae79){_0xdbb6e4(_0x9bae79);});},'afterUpdate':function(_0x3fcf38,_0x4e2e8b,_0xb3aee3){return BPromise[_0x4477('0x34')]()['then'](function(){if(_0x3fcf38[_0x4477('0x35')](_0x4477('0xe'))||_0x3fcf38[_0x4477('0x35')](_0x4477('0x7'))){return _0x4b905d[_0x4477('0x39')][_0x4477('0x3b')]({'where':{'UserId':_0x3fcf38['id'],'type':_0x4477('0x8'),'ChanSpyId':{'$ne':null}}})['then'](function(){if(_0x3fcf38[_0x4477('0xe')]){return getChanSpyPromise(_0x4b905d,_0x3fcf38)[_0x4477('0x26')](function(_0x509739){if(_0x509739&&_0x509739[_0x4477('0x6')]){return _0x4b905d[_0x4477('0x39')][_0x4477('0x3a')](_0x509739);}});}});}})[_0x4477('0x26')](function(){if(_0x3fcf38[_0x4477('0x35')]('extensionMonitor')||_0x3fcf38['changed'](_0x4477('0x7'))){return _0x4b905d[_0x4477('0x39')][_0x4477('0x3b')]({'where':{'UserId':_0x3fcf38['id'],'type':_0x4477('0x8'),'ChanSpyId':null}})[_0x4477('0x26')](function(){var _0xf5da94=getUserApplications(_0x3fcf38,_0x3fcf38[_0x4477('0x27')]);if(_0x3fcf38[_0x4477('0x27')]!=_0x3fcf38[_0x4477('0x16')]){_0xf5da94=_0xf5da94[_0x4477('0x38')](getUserApplications(_0x3fcf38,_0x3fcf38[_0x4477('0x16')]));}return _0x4b905d[_0x4477('0x39')][_0x4477('0x3a')](_0xf5da94);});}})[_0x4477('0x26')](function(){_0xb3aee3();})[_0x4477('0x33')](function(_0x4940ae){_0xb3aee3(_0x4940ae);});},'afterDestroy':function(_0x67259c,_0x37bf46){return _0x4b905d[_0x4477('0x39')][_0x4477('0x3b')]({'where':{'UserId':_0x67259c['id'],'type':_0x4477('0x8')}});}},'instanceMethods':{'authenticate':function(_0x2cedc7,_0x145b2a){if(!_0x145b2a){return this[_0x4477('0x36')]===this[_0x4477('0x3c')](_0x2cedc7);}var _0x1a2ce1=this;this[_0x4477('0x3c')](_0x2cedc7,function(_0x580626,_0x396146){if(_0x580626){_0x145b2a(_0x580626);}if(_0x1a2ce1['password']===_0x396146){_0x145b2a(null,!![]);}else{_0x145b2a(null,![]);}});},'makeSalt':function(_0x5dc78a,_0x419d2f){var _0x3184c3=0x10;if(typeof arguments[0x0]==='function'){_0x419d2f=arguments[0x0];_0x5dc78a=_0x3184c3;}else if(typeof arguments[0x1]===_0x4477('0x3d')){_0x419d2f=arguments[0x1];}else{throw new Error(_0x4477('0x3e'));}if(!_0x5dc78a){_0x5dc78a=_0x3184c3;}return crypto[_0x4477('0x3f')](_0x5dc78a,function(_0x443639,_0xb0a747){if(_0x443639){_0x419d2f(_0x443639);}return _0x419d2f(null,_0xb0a747[_0x4477('0x40')]('base64'));});},'encryptPassword':function(_0xedf577,_0x472b39){if(!_0xedf577||!this['salt']){return _0x472b39?_0x472b39(null):null;}var _0x32ed09=0x2710;var _0x702e5f=0x40;var _0x25aa04=new Buffer(this[_0x4477('0x41')],_0x4477('0x42'));if(!_0x472b39){return crypto[_0x4477('0x43')](_0xedf577,_0x25aa04,_0x32ed09,_0x702e5f,_0x4477('0x44'))[_0x4477('0x40')](_0x4477('0x42'));}return crypto['pbkdf2'](_0xedf577,_0x25aa04,_0x32ed09,_0x702e5f,'sha1',function(_0x248aad,_0x47d4c1){if(_0x248aad){_0x472b39(_0x248aad);}return _0x472b39(null,_0x47d4c1[_0x4477('0x40')]('base64'));});},'updatePassword':function(_0x3794fa){if(!this['password']){return _0x3794fa(null);}if(!validatePresenceOf(this[_0x4477('0x36')])&&authTypes['indexOf'](this['provider'])===-0x1){_0x3794fa(new Error(_0x4477('0x45')));}var _0x4e4ad1=this;this[_0x4477('0x46')](function(_0x214f26,_0x305c32){if(_0x214f26){return _0x3794fa(_0x214f26);}_0x4e4ad1[_0x4477('0x41')]=_0x305c32;_0x4e4ad1[_0x4477('0x3c')](_0x4e4ad1['password'],function(_0x5c3766,_0x11cc75){if(_0x5c3766){_0x3794fa(_0x5c3766);}_0x4e4ad1[_0x4477('0x36')]=_0x11cc75;_0x3794fa(null);});});},'updateMd5Password':function(){this[_0x4477('0x47')]=md5(this[_0x4477('0x16')]+_0x4477('0x48')+this[_0x4477('0x36')]);return this['md5secret'];}}});};
\ No newline at end of file
+var _0x4c18=['resolve','UserProfile','privacyEnabled','updateMd5Password','updatePassword','catch','find','changed','VoiceExtension','bulkCreate','destroy','encryptPassword','function','Missing\x20Callback','randomBytes','base64','salt','pbkdf2Sync','sha1','toString','pbkdf2','indexOf','provider','Invalid\x20password','makeSalt','md5secret',':asterisk:','bluebird','crypto','lodash','./user.attributes','google','context','from-sip','system','length','format','%s%s','prefix','push','merge','Set','CDR(type)=%s','chanspy','record','MixMonitor','${UNIQUEID}.%s,a','Authenticate','password','ChanSpy','name','options','join','StopMixMonitor','WAV','gsm','CDR(type)=internal','extensionMonitor','includes','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=%s','SIP/%s,,tTxXU(xcally-mixmonitor-context)','SIP/%s,,tTxX','Hangup','findAll','then','internal','concat','exports','define','User','users','utf8','utf8_bin','userProfileId','undefined'];(function(_0x18ab2a,_0x4debcd){var _0x16dcee=function(_0x10107a){while(--_0x10107a){_0x18ab2a['push'](_0x18ab2a['shift']());}};_0x16dcee(++_0x4debcd);}(_0x4c18,0x14b));var _0x84c1=function(_0x17adf8,_0x398419){_0x17adf8=_0x17adf8-0x0;var _0x248833=_0x4c18[_0x17adf8];return _0x248833;};'use strict';var BPromise=require(_0x84c1('0x0'));var crypto=require(_0x84c1('0x1'));var util=require('util');var md5=require('md5');var _=require(_0x84c1('0x2'));var attributes=require(_0x84c1('0x3'));var authTypes=[_0x84c1('0x4')];var validatePresenceOf=function(_0x348649){return _0x348649&&_0x348649['length'];};var getChanSpyApplications=function(_0x88ed2f,_0x5bbab2,_0x979998){var _0xdbe265={'context':_0x88ed2f[_0x84c1('0x5')]||_0x84c1('0x6'),'type':_0x84c1('0x7'),'isApp':![],'UserId':_0x88ed2f['id']};var _0x94d550=[];for(var _0xc4eb56=0x0,_0x15dc77=0x1;_0xc4eb56<_0x979998[_0x84c1('0x8')];_0xc4eb56++,_0x15dc77=0x1){var _0x582c9b={'exten':util[_0x84c1('0x9')](_0x84c1('0xa'),_0x979998[_0xc4eb56][_0x84c1('0xb')],_0x5bbab2),'ChanSpyId':_0x979998[_0xc4eb56]['id']};_0x94d550[_0x84c1('0xc')](_[_0x84c1('0xd')]({'app':_0x84c1('0xe'),'appdata':util[_0x84c1('0x9')](_0x84c1('0xf'),_0x84c1('0x10')),'priority':_0x15dc77++},_0xdbe265,_0x582c9b));if(_0x979998[_0xc4eb56][_0x84c1('0x11')]){_0x94d550[_0x84c1('0xc')](_[_0x84c1('0xd')]({'app':_0x84c1('0x12'),'appdata':util[_0x84c1('0x9')](_0x84c1('0x13'),_0x979998[_0xc4eb56]['recordingFormat']),'priority':_0x15dc77++},_0xdbe265,_0x582c9b));}if(_0x979998[_0xc4eb56]['auth']){_0x94d550[_0x84c1('0xc')](_[_0x84c1('0xd')]({'app':_0x84c1('0x14'),'appdata':_0x979998[_0xc4eb56][_0x84c1('0x15')],'priority':_0x15dc77++},_0xdbe265,_0x582c9b));}_0x94d550[_0x84c1('0xc')](_[_0x84c1('0xd')]({'app':_0x84c1('0x16'),'appdata':util[_0x84c1('0x9')]('SIP/%s,%s',_0x88ed2f[_0x84c1('0x17')],_0x979998[_0xc4eb56][_0x84c1('0x18')]?_0x979998[_0xc4eb56][_0x84c1('0x18')][_0x84c1('0x19')](''):''),'priority':_0x15dc77++},_0xdbe265,_0x582c9b));if(_0x979998[_0xc4eb56][_0x84c1('0x11')]){_0x94d550['push'](_['merge']({'app':_0x84c1('0x1a'),'priority':_0x15dc77++},_0xdbe265,_0x582c9b));}}return _0x94d550;};var getUserApplications=function(_0x3621a5,_0x5bd120){var _0x4b16d8=['wav',_0x84c1('0x1b'),_0x84c1('0x1c')];var _0x1b79ab={'context':_0x3621a5[_0x84c1('0x5')]||_0x84c1('0x6'),'exten':_0x5bd120,'type':'system','isApp':![],'UserId':_0x3621a5['id']};var _0xc97c83=[{'app':_0x84c1('0xe'),'appdata':_0x84c1('0x1d')}];if(_0x3621a5[_0x84c1('0x1e')]&&_[_0x84c1('0x1f')](_0x4b16d8,_0x3621a5[_0x84c1('0x1e')])){_0xc97c83[_0x84c1('0xc')]({'app':_0x84c1('0xe'),'appdata':_0x84c1('0x20')});_0xc97c83[_0x84c1('0xc')]({'app':_0x84c1('0xe'),'appdata':util['format'](_0x84c1('0x21'),_0x3621a5[_0x84c1('0x1e')])});_0xc97c83[_0x84c1('0xc')]({'app':'Dial','appdata':util['format'](_0x84c1('0x22'),_0x3621a5[_0x84c1('0x17')])});}else{_0xc97c83[_0x84c1('0xc')]({'app':'Dial','appdata':util['format'](_0x84c1('0x23'),_0x3621a5['name'])});}_0xc97c83[_0x84c1('0xc')]({'app':_0x84c1('0x24')});for(var _0xc528aa=0x0;_0xc528aa<_0xc97c83[_0x84c1('0x8')];_0xc528aa++){_0xc97c83[_0xc528aa]['priority']=_0xc528aa+0x1;_0xc97c83[_0xc528aa]=_['defaults'](_0xc97c83[_0xc528aa],_0x1b79ab);}return _0xc97c83;};var getChanSpyPromise=function(_0xdbf130,_0x107304){return new BPromise(function(_0x32e642,_0x570477){return _0xdbf130['VoiceChanSpy'][_0x84c1('0x25')]()[_0x84c1('0x26')](function(_0x34aac1){if(_0x34aac1){var _0x25a83b=getChanSpyApplications(_0x107304,_0x107304['internal'],_0x34aac1);if(_0x107304[_0x84c1('0x27')]!=_0x107304['name']){_0x25a83b=_0x25a83b[_0x84c1('0x28')](getChanSpyApplications(_0x107304,_0x107304[_0x84c1('0x17')],_0x34aac1));}return _0x32e642(_0x25a83b);}return _0x32e642([]);})['catch'](function(_0x17445b){_0x570477(_0x17445b);});});};module[_0x84c1('0x29')]=function(_0x4b1b46,_0x10d3c3){var _0x2bf2b4=_0x4b1b46['models'];return _0x4b1b46[_0x84c1('0x2a')](_0x84c1('0x2b'),attributes,{'tableName':_0x84c1('0x2c'),'charset':_0x84c1('0x2d'),'collate':_0x84c1('0x2e'),'hooks':{'beforeCreate':function(_0x4b5ad,_0x3aaa31,_0x2f4b33){var _0xfacbc6=typeof _0x4b5ad[_0x84c1('0x2f')]===_0x84c1('0x30')?BPromise[_0x84c1('0x31')](null):_0x2bf2b4[_0x84c1('0x32')]['find']({'where':{'id':_0x4b5ad[_0x84c1('0x2f')]}});_0xfacbc6[_0x84c1('0x26')](function(_0x3ebbbe){if(_0x3ebbbe){_0x4b5ad['privacyEnabled']=_0x3ebbbe[_0x84c1('0x33')];}})['then'](function(){_0x4b5ad[_0x84c1('0x34')]();_0x4b5ad[_0x84c1('0x35')](_0x2f4b33);})[_0x84c1('0x36')](function(_0x537775){_0x2f4b33(_0x537775);});},'beforeUpdate':function(_0x4f9c9e,_0x1ee819,_0x40e532){Promise[_0x84c1('0x31')]()['then'](function(){if(_0x4f9c9e['changed'](_0x84c1('0x2f'))===![])return;return _0x2bf2b4[_0x84c1('0x32')][_0x84c1('0x37')]({'where':{'id':_0x4f9c9e[_0x84c1('0x2f')]}})['then'](function(_0x622b83){if(_0x622b83)_0x4f9c9e[_0x84c1('0x33')]=_0x622b83['privacyEnabled'];return;});})['then'](function(){if(_0x4f9c9e[_0x84c1('0x38')](_0x84c1('0x15'))){_0x4f9c9e['updateMd5Password']();return _0x4f9c9e[_0x84c1('0x35')](_0x40e532);}_0x40e532();})[_0x84c1('0x36')](function(_0x352d1d){_0x40e532(_0x352d1d);});},'afterCreate':function(_0x5b71da,_0x421798,_0x5b1469){var _0x1f21cf=getUserApplications(_0x5b71da,_0x5b71da[_0x84c1('0x27')]);if(_0x5b71da[_0x84c1('0x27')]!=_0x5b71da[_0x84c1('0x17')]){_0x1f21cf=_0x1f21cf[_0x84c1('0x28')](getUserApplications(_0x5b71da,_0x5b71da[_0x84c1('0x17')]));}return _0x2bf2b4[_0x84c1('0x39')][_0x84c1('0x3a')](_0x1f21cf)['then'](function(){if(_0x5b71da[_0x84c1('0x10')]){return getChanSpyPromise(_0x2bf2b4,_0x5b71da);}})[_0x84c1('0x26')](function(_0x2f3c74){if(_0x2f3c74&&_0x2f3c74[_0x84c1('0x8')]){return _0x2bf2b4[_0x84c1('0x39')][_0x84c1('0x3a')](_0x2f3c74);}})['then'](function(){_0x5b1469();})['catch'](function(_0x5dabd4){_0x5b1469(_0x5dabd4);});},'afterUpdate':function(_0x806b62,_0x47a302,_0x5ab4e1){return BPromise[_0x84c1('0x31')]()[_0x84c1('0x26')](function(){if(_0x806b62[_0x84c1('0x38')]('chanspy')||_0x806b62[_0x84c1('0x38')](_0x84c1('0x5'))){return _0x2bf2b4['VoiceExtension'][_0x84c1('0x3b')]({'where':{'UserId':_0x806b62['id'],'type':_0x84c1('0x7'),'ChanSpyId':{'$ne':null}}})[_0x84c1('0x26')](function(){if(_0x806b62['chanspy']){return getChanSpyPromise(_0x2bf2b4,_0x806b62)[_0x84c1('0x26')](function(_0x565040){if(_0x565040&&_0x565040[_0x84c1('0x8')]){return _0x2bf2b4['VoiceExtension']['bulkCreate'](_0x565040);}});}});}})[_0x84c1('0x26')](function(){if(_0x806b62['changed']('extensionMonitor')||_0x806b62[_0x84c1('0x38')](_0x84c1('0x5'))){return _0x2bf2b4['VoiceExtension'][_0x84c1('0x3b')]({'where':{'UserId':_0x806b62['id'],'type':_0x84c1('0x7'),'ChanSpyId':null}})[_0x84c1('0x26')](function(){var _0x15b00f=getUserApplications(_0x806b62,_0x806b62[_0x84c1('0x27')]);if(_0x806b62['internal']!=_0x806b62[_0x84c1('0x17')]){_0x15b00f=_0x15b00f[_0x84c1('0x28')](getUserApplications(_0x806b62,_0x806b62[_0x84c1('0x17')]));}return _0x2bf2b4[_0x84c1('0x39')][_0x84c1('0x3a')](_0x15b00f);});}})[_0x84c1('0x26')](function(){_0x5ab4e1();})[_0x84c1('0x36')](function(_0xc2a115){_0x5ab4e1(_0xc2a115);});},'afterDestroy':function(_0x45cbfb,_0x237deb){return _0x2bf2b4[_0x84c1('0x39')][_0x84c1('0x3b')]({'where':{'UserId':_0x45cbfb['id'],'type':'system'}});}},'instanceMethods':{'authenticate':function(_0x467351,_0xdbdb83){if(!_0xdbdb83){return this[_0x84c1('0x15')]===this[_0x84c1('0x3c')](_0x467351);}var _0xbefd3e=this;this[_0x84c1('0x3c')](_0x467351,function(_0x24bd46,_0x3c87e1){if(_0x24bd46){_0xdbdb83(_0x24bd46);}if(_0xbefd3e[_0x84c1('0x15')]===_0x3c87e1){_0xdbdb83(null,!![]);}else{_0xdbdb83(null,![]);}});},'makeSalt':function(_0x103fbb,_0x23eca3){var _0x9a41ef=0x10;if(typeof arguments[0x0]===_0x84c1('0x3d')){_0x23eca3=arguments[0x0];_0x103fbb=_0x9a41ef;}else if(typeof arguments[0x1]===_0x84c1('0x3d')){_0x23eca3=arguments[0x1];}else{throw new Error(_0x84c1('0x3e'));}if(!_0x103fbb){_0x103fbb=_0x9a41ef;}return crypto[_0x84c1('0x3f')](_0x103fbb,function(_0x1b892e,_0x52d040){if(_0x1b892e){_0x23eca3(_0x1b892e);}return _0x23eca3(null,_0x52d040['toString'](_0x84c1('0x40')));});},'encryptPassword':function(_0x3ba5cf,_0x454338){if(!_0x3ba5cf||!this['salt']){return _0x454338?_0x454338(null):null;}var _0x4b4490=0x2710;var _0x3ad83b=0x40;var _0x24f3cf=new Buffer(this[_0x84c1('0x41')],'base64');if(!_0x454338){return crypto[_0x84c1('0x42')](_0x3ba5cf,_0x24f3cf,_0x4b4490,_0x3ad83b,_0x84c1('0x43'))[_0x84c1('0x44')]('base64');}return crypto[_0x84c1('0x45')](_0x3ba5cf,_0x24f3cf,_0x4b4490,_0x3ad83b,_0x84c1('0x43'),function(_0xc0c3ca,_0x315fe5){if(_0xc0c3ca){_0x454338(_0xc0c3ca);}return _0x454338(null,_0x315fe5[_0x84c1('0x44')](_0x84c1('0x40')));});},'updatePassword':function(_0x1b1a07){if(!this[_0x84c1('0x15')]){return _0x1b1a07(null);}if(!validatePresenceOf(this[_0x84c1('0x15')])&&authTypes[_0x84c1('0x46')](this[_0x84c1('0x47')])===-0x1){_0x1b1a07(new Error(_0x84c1('0x48')));}var _0x14351b=this;this[_0x84c1('0x49')](function(_0x562b00,_0x543905){if(_0x562b00){return _0x1b1a07(_0x562b00);}_0x14351b[_0x84c1('0x41')]=_0x543905;_0x14351b[_0x84c1('0x3c')](_0x14351b['password'],function(_0x3db349,_0x191561){if(_0x3db349){_0x1b1a07(_0x3db349);}_0x14351b[_0x84c1('0x15')]=_0x191561;_0x1b1a07(null);});});},'updateMd5Password':function(){this[_0x84c1('0x4a')]=md5(this['name']+_0x84c1('0x4b')+this[_0x84c1('0x15')]);return this[_0x84c1('0x4a')];}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf59e=['localhost','socket.io-emitter','./user.socket','register','request','then','info','debug','User,\x20%s,\x20%s,\x20%s','error','message','User,\x20%s,\x20%s','request\x20sent','result','catch','GetUser','User','options','raw','where','attributes','limit','map','include','model','ShowUser','find','stringify','PauseUser','name','role','internal','interface','update','findAll','PAUSE','length','format','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','push','isNil','body','type','DEFAULT\x20PAUSE','uniqueid','MemberReport','UnpauseUser','findOne','isValidChannel','channel','Unknown\x20channel','voice','UserVoiceQueueRt','system','mail','chat','sms','openchannel','whatsapp','set','%s%s','destroy','LoginUser','mobile','phone','loginInPause','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','upsert','all','LOGIN','LOGININPAUSE','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults'];(function(_0x49974a,_0xe37958){var _0x41d548=function(_0x2945d7){while(--_0x2945d7){_0x49974a['push'](_0x49974a['shift']());}};_0x41d548(++_0xe37958);}(_0xf59e,0x107));var _0xef59=function(_0x2483fd,_0x2db145){_0x2483fd=_0x2483fd-0x0;var _0x31b04b=_0xf59e[_0x2483fd];return _0x31b04b;};'use strict';var _=require(_0xef59('0x0'));var util=require(_0xef59('0x1'));var moment=require('moment');var BPromise=require(_0xef59('0x2'));var rs=require(_0xef59('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xef59('0x4'))['db'];var utils=require(_0xef59('0x5'));var logger=require(_0xef59('0x6'))(_0xef59('0x7'));var config=require(_0xef59('0x8'));var jayson=require(_0xef59('0x9'));var client=jayson[_0xef59('0xa')]['http']({'port':0x232a});config[_0xef59('0xb')]=_[_0xef59('0xc')](config['redis'],{'host':_0xef59('0xd'),'port':0x18eb});var socket=require(_0xef59('0xe'))(new Redis(config['redis']));require(_0xef59('0xf'))[_0xef59('0x10')](socket);function respondWithRpcPromise(_0x264b1a,_0x21b473,_0x4340ad){return new BPromise(function(_0x26085c,_0x5a4ffe){return client[_0xef59('0x11')](_0x264b1a,_0x4340ad)[_0xef59('0x12')](function(_0x260802){logger[_0xef59('0x13')]('User,\x20%s,\x20%s',_0x21b473,'request\x20sent');logger[_0xef59('0x14')](_0xef59('0x15'),_0x21b473,'request\x20sent',JSON['stringify'](_0x260802));if(_0x260802[_0xef59('0x16')]){if(_0x260802[_0xef59('0x16')]['code']===0x1f4){logger[_0xef59('0x16')]('User,\x20%s,\x20%s',_0x21b473,_0x260802[_0xef59('0x16')][_0xef59('0x17')]);return _0x5a4ffe(_0x260802['error'][_0xef59('0x17')]);}logger['error'](_0xef59('0x18'),_0x21b473,_0x260802[_0xef59('0x16')]['message']);return _0x26085c(_0x260802['error']['message']);}else{logger['info'](_0xef59('0x18'),_0x21b473,_0xef59('0x19'));_0x26085c(_0x260802[_0xef59('0x1a')][_0xef59('0x17')]);}})[_0xef59('0x1b')](function(_0xb21551){logger['error']('User,\x20%s,\x20%s',_0x21b473,_0xb21551);_0x5a4ffe(_0xb21551);});});}exports[_0xef59('0x1c')]=function(_0xcd5f35){var _0x25edeb=this;return new Promise(function(_0x3a806d,_0x237647){return db[_0xef59('0x1d')]['findAll']({'raw':_0xcd5f35[_0xef59('0x1e')]?_0xcd5f35['options'][_0xef59('0x1f')]===undefined?!![]:![]:!![],'where':_0xcd5f35[_0xef59('0x1e')]?_0xcd5f35[_0xef59('0x1e')][_0xef59('0x20')]||null:null,'attributes':_0xcd5f35[_0xef59('0x1e')]?_0xcd5f35['options'][_0xef59('0x21')]||null:null,'limit':_0xcd5f35['options']?_0xcd5f35[_0xef59('0x1e')][_0xef59('0x22')]||null:null,'include':_0xcd5f35['options']?_0xcd5f35[_0xef59('0x1e')]['include']?_[_0xef59('0x23')](_0xcd5f35[_0xef59('0x1e')][_0xef59('0x24')],function(_0x59362a){return{'model':db[_0x59362a[_0xef59('0x25')]],'as':_0x59362a['as'],'attributes':_0x59362a[_0xef59('0x21')],'include':_0x59362a[_0xef59('0x24')]?_[_0xef59('0x23')](_0x59362a['include'],function(_0x31e9d6){return{'model':db[_0x31e9d6[_0xef59('0x25')]],'as':_0x31e9d6['as'],'attributes':_0x31e9d6[_0xef59('0x21')],'include':_0x31e9d6[_0xef59('0x24')]?_['map'](_0x31e9d6[_0xef59('0x24')],function(_0x1df2a9){return{'model':db[_0x1df2a9[_0xef59('0x25')]],'as':_0x1df2a9['as'],'attributes':_0x1df2a9['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x39f4ad){logger[_0xef59('0x13')](_0xef59('0x1c'),_0xcd5f35);logger[_0xef59('0x14')](_0xef59('0x1c'),_0xcd5f35,JSON['stringify'](_0x39f4ad));_0x3a806d(_0x39f4ad);})[_0xef59('0x1b')](function(_0x3b6ead){logger[_0xef59('0x16')](_0xef59('0x1c'),_0x3b6ead['message'],_0xcd5f35);_0x237647(_0x25edeb['error'](0x1f4,_0x3b6ead[_0xef59('0x17')]));});});};exports[_0xef59('0x26')]=function(_0x1c9f61){var _0x162f4c=this;return new Promise(function(_0x26541b,_0x25fbaf){return db[_0xef59('0x1d')][_0xef59('0x27')]({'raw':_0x1c9f61[_0xef59('0x1e')]?_0x1c9f61[_0xef59('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x1c9f61[_0xef59('0x1e')]?_0x1c9f61['options'][_0xef59('0x20')]||null:null,'attributes':_0x1c9f61[_0xef59('0x1e')]?_0x1c9f61[_0xef59('0x1e')]['attributes']||null:null,'include':_0x1c9f61[_0xef59('0x1e')]?_0x1c9f61[_0xef59('0x1e')][_0xef59('0x24')]?_[_0xef59('0x23')](_0x1c9f61['options'][_0xef59('0x24')],function(_0x40815b){return{'model':db[_0x40815b[_0xef59('0x25')]],'as':_0x40815b['as'],'attributes':_0x40815b[_0xef59('0x21')],'include':_0x40815b[_0xef59('0x24')]?_[_0xef59('0x23')](_0x40815b[_0xef59('0x24')],function(_0x33d539){return{'model':db[_0x33d539[_0xef59('0x25')]],'as':_0x33d539['as'],'attributes':_0x33d539[_0xef59('0x21')],'include':_0x33d539['include']?_[_0xef59('0x23')](_0x33d539[_0xef59('0x24')],function(_0x363185){return{'model':db[_0x363185[_0xef59('0x25')]],'as':_0x363185['as'],'attributes':_0x363185[_0xef59('0x21')]};}):[]};}):[]};}):[]:[]})[_0xef59('0x12')](function(_0x3a5586){logger[_0xef59('0x13')](_0xef59('0x26'),_0x1c9f61);logger[_0xef59('0x14')](_0xef59('0x26'),_0x1c9f61,JSON[_0xef59('0x28')](_0x3a5586));_0x26541b(_0x3a5586);})[_0xef59('0x1b')](function(_0x44015a){logger[_0xef59('0x16')](_0xef59('0x26'),_0x44015a[_0xef59('0x17')],_0x1c9f61);_0x25fbaf(_0x162f4c[_0xef59('0x16')](0x1f4,_0x44015a[_0xef59('0x17')]));});});};exports[_0xef59('0x29')]=function(_0x196d05){var _0x4299f0=this;return new Promise(function(_0x13a1a4,_0x80d995){var _0x42540c;return db[_0xef59('0x1d')][_0xef59('0x27')]({'where':_0x196d05[_0xef59('0x1e')][_0xef59('0x20')]||{},'attributes':['id',_0xef59('0x2a'),_0xef59('0x2b'),_0xef59('0x2c'),_0xef59('0x2d')]})[_0xef59('0x12')](function(_0x1b9f73){if(_0x1b9f73){_0x42540c=_0x1b9f73;return db['UserVoiceQueueRt'][_0xef59('0x2e')]({'paused':0x1},{'where':{'UserId':_0x42540c['id']},'individualHooks':!![]});}})['then'](function(){if(_0x42540c){return db['MemberReport'][_0xef59('0x2f')]({'where':{'membername':_0x42540c[_0xef59('0x2a')],'type':_0xef59('0x30'),'exitAt':null}});}})['then'](function(_0x3e5371){if(_0x42540c){if(_0x3e5371&&_0x3e5371[_0xef59('0x31')]){var _0x5d33c3=moment()[_0xef59('0x32')](_0xef59('0x33'));for(var _0x541125=0x0,_0x341b80=_0x3e5371[_0xef59('0x31')];_0x541125<_0x341b80;_0x541125++){_0x3e5371[_0x541125][_0xef59('0x34')]({'exitAt':_0x5d33c3});}}}})[_0xef59('0x12')](function(){if(_0x42540c){var _0x285099=[];var _0xc581d5=utils[_0xef59('0x35')]();_0xc581d5[_0xef59('0x36')](function(_0x395881){_0x285099[_0xef59('0x37')]({'channel':_0x395881,'membername':_0x42540c[_0xef59('0x2a')],'interface':_[_0xef59('0x38')](_0x42540c[_0xef59('0x2d')])?util[_0xef59('0x32')]('SIP/%s',_0x42540c[_0xef59('0x2a')]):_0x42540c[_0xef59('0x2d')],'type':_0xef59('0x30'),'enterAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x196d05[_0xef59('0x39')][_0xef59('0x3a')]||_0xef59('0x3b'),'role':_0x42540c[_0xef59('0x2b')],'internal':_0x42540c[_0xef59('0x2c')],'uniqueid':_0x196d05[_0xef59('0x39')][_0xef59('0x3c')]||null});});return db[_0xef59('0x3d')]['bulkCreate'](_0x285099,{'individualHooks':!![]});}})[_0xef59('0x12')](function(){if(_0x42540c){return _0x42540c[_0xef59('0x2e')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x196d05['body'][_0xef59('0x3a')]||_0xef59('0x3b'),'lastPauseAt':moment()[_0xef59('0x32')](_0xef59('0x33'))});}})[_0xef59('0x12')](function(_0x26a185){_0x13a1a4(_0x26a185);})[_0xef59('0x1b')](function(_0x405445){_0x80d995(_0x4299f0[_0xef59('0x16')](0x1f4,_0x405445[_0xef59('0x17')]));});});};exports[_0xef59('0x3e')]=function(_0x12d544){var _0x2eac26=this;return new Promise(function(_0x298601,_0xe83fd7){var _0x1a8409;return db['User'][_0xef59('0x3f')]({'where':_0x12d544['options'][_0xef59('0x20')]||{},'attributes':['id','name']})[_0xef59('0x12')](function(_0x59b1cd){if(_0x59b1cd){_0x1a8409=_0x59b1cd;if(_0x12d544[_0xef59('0x39')]['channel']&&!utils[_0xef59('0x40')](_0x12d544[_0xef59('0x39')][_0xef59('0x41')])){throw new Error(_0xef59('0x42'));}switch(_0x12d544[_0xef59('0x39')]['channel']){case _0xef59('0x43'):return db[_0xef59('0x44')][_0xef59('0x2e')]({'paused':0x0},{'where':{'UserId':_0x1a8409['id']}})[_0xef59('0x12')](function(){return db['MemberReport'][_0xef59('0x27')]({'where':{'channel':_0x12d544[_0xef59('0x39')][_0xef59('0x41')],'membername':_0x1a8409[_0xef59('0x2a')],'type':'PAUSE','exitAt':null}});})['then'](function(_0x23d9ea){if(_0x23d9ea){return _0x23d9ea[_0xef59('0x2e')]({'exitAt':moment()[_0xef59('0x32')](_0xef59('0x33')),'data2':_0xef59('0x45')},{'individualHooks':!![]});}return null;})['then'](function(){return _0x1a8409[_0xef59('0x2e')]({'voicePause':![]});});case _0xef59('0x46'):case _0xef59('0x47'):case'fax':case _0xef59('0x48'):case _0xef59('0x49'):case _0xef59('0x4a'):return db[_0xef59('0x3d')][_0xef59('0x27')]({'where':{'channel':_0x12d544[_0xef59('0x39')]['channel'],'membername':_0x1a8409['name'],'type':_0xef59('0x30'),'exitAt':null}})['then'](function(_0x5573b4){return _0x5573b4[_0xef59('0x2e')]({'exitAt':moment()[_0xef59('0x32')](_0xef59('0x33')),'data2':_0xef59('0x45')},{'individualHooks':!![]});})[_0xef59('0x12')](function(){var _0x4f1cfa={};_[_0xef59('0x4b')](_0x4f1cfa,util[_0xef59('0x32')](_0xef59('0x4c'),_0x12d544[_0xef59('0x39')][_0xef59('0x41')],'Pause'),![]);return _0x1a8409[_0xef59('0x2e')](_0x4f1cfa);});default:return db[_0xef59('0x44')][_0xef59('0x2e')]({'paused':0x0},{'where':{'UserId':_0x1a8409['id']}})['then'](function(){return db[_0xef59('0x3d')]['findAll']({'where':{'membername':_0x1a8409[_0xef59('0x2a')],'type':'PAUSE','exitAt':null}});})[_0xef59('0x12')](function(_0x95870f){var _0x48f26d=[];_0x95870f[_0xef59('0x36')](function(_0x4ba207){_0x48f26d[_0xef59('0x37')](_0x4ba207['update']({'exitAt':moment()[_0xef59('0x32')](_0xef59('0x33')),'data2':_0xef59('0x45')}));});return BPromise['all'](_0x48f26d);})[_0xef59('0x12')](function(){return _0x1a8409[_0xef59('0x2e')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0xef59('0x12')](function(_0x4f851e){_0x298601(_0x4f851e);})[_0xef59('0x1b')](function(_0xce4019){_0xe83fd7(_0x2eac26[_0xef59('0x16')](0x1f4,_0xce4019[_0xef59('0x17')]));});});};exports['LogoutUser']=function(_0xf8a73e){var _0x7ec3d8=this;return new Promise(function(_0x42381d,_0x11af4d){var _0x29f502;return db['User'][_0xef59('0x3f')]({'where':_0xf8a73e['options']['where']||{},'attributes':['id',_0xef59('0x2a')]})['then'](function(_0x4826f7){if(_0x4826f7){_0x29f502=_0x4826f7;return db[_0xef59('0x44')][_0xef59('0x4d')]({'where':{'membername':_0x29f502[_0xef59('0x2a')]},'individualHooks':!![]});}})[_0xef59('0x12')](function(){if(_0x29f502){return db[_0xef59('0x3d')][_0xef59('0x2f')]({'where':{'membername':_0x29f502[_0xef59('0x2a')],'exitAt':null}});}})[_0xef59('0x12')](function(_0x56f653){if(_0x29f502){if(_0x56f653&&_0x56f653[_0xef59('0x31')]){var _0x55a6a5=[];_0x56f653['forEach'](function(_0xf64ccd){_0x55a6a5[_0xef59('0x37')](_0xf64ccd[_0xef59('0x2e')]({'exitAt':moment()[_0xef59('0x32')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise['all'](_0x55a6a5);}}})['then'](function(){if(_0x29f502){return _0x29f502[_0xef59('0x2e')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})['then'](function(_0x581506){_0x42381d(_0x581506);})[_0xef59('0x1b')](function(_0x40128a){_0x11af4d(_0x7ec3d8['error'](0x1f4,_0x40128a[_0xef59('0x17')]));});});};exports[_0xef59('0x4e')]=function(_0x58e913){var _0x3f983f=this;return new Promise(function(_0x36bc06,_0x1e5013){var _0x5aa0fd;var _0x47201a;var _0x5836b2;var _0x4cf7d9;return db['User'][_0xef59('0x3f')]({'where':_0x58e913['options'][_0xef59('0x20')]||{},'attributes':['id',_0xef59('0x2a'),_0xef59('0x2b'),_0xef59('0x4f'),_0xef59('0x50'),'internal',_0xef59('0x51'),_0xef59('0x2d')]})[_0xef59('0x12')](function(_0x1421c2){if(_0x1421c2){_0x5aa0fd=_0x1421c2;_0x4cf7d9=_0x58e913[_0xef59('0x39')][_0xef59('0x2d')]?_0x58e913[_0xef59('0x39')][_0xef59('0x2d')]:util[_0xef59('0x32')]('SIP/%s',_0x5aa0fd['name']);return db['User'][_0xef59('0x52')]({'where':{'role':_0xef59('0x53'),'online':!![],'id':{'$ne':_0x5aa0fd['id']}}});}})[_0xef59('0x12')](function(_0xd986e8){if(_0xd986e8){_0x5836b2=_0xd986e8;return require(_0xef59('0x54'))[_0xef59('0x55')]();}})[_0xef59('0x12')](function(_0x21184e){if(_0x21184e&&_0x21184e[_0xef59('0x56')]&&_0x5836b2>=_0x21184e[_0xef59('0x56')]){throw new Error(_0xef59('0x57'));}})['then'](function(){if(_0x5aa0fd){return db['UserVoiceQueueRt'][_0xef59('0x4d')]({'where':{'membername':_0x5aa0fd[_0xef59('0x2a')]},'individualHooks':!![]});}})[_0xef59('0x12')](function(){if(_0x5aa0fd){return _0x5aa0fd['getVoiceQueues']({'raw':!![]});}})['then'](function(_0x31483b){if(_0x5aa0fd){if(_0x31483b){var _0x435eae=[];_0x47201a=_0x31483b;if(_0x47201a[_0xef59('0x31')]){for(var _0x5a2b01=0x0;_0x5a2b01<_0x47201a[_0xef59('0x31')];_0x5a2b01++){_0x435eae[_0xef59('0x37')](db[_0xef59('0x44')][_0xef59('0x58')]({'membername':_0x5aa0fd[_0xef59('0x2a')],'UserId':_0x5aa0fd['id'],'queue_name':_0x47201a[_0x5a2b01][_0xef59('0x2a')],'VoiceQueueId':_0x47201a[_0x5a2b01]['id'],'interface':_0x4cf7d9,'paused':_0x5aa0fd['loginInPause']||![],'penalty':_0x47201a[_0x5a2b01]['UserVoiceQueue.penalty']||0x0}));}return BPromise['all'](_0x435eae);}}}})[_0xef59('0x12')](function(){if(_0x5aa0fd){return db[_0xef59('0x3d')]['findAll']({'where':{'membername':_0x5aa0fd[_0xef59('0x2a')],'exitAt':null}});}})['then'](function(_0x5f4245){if(_0x5aa0fd){if(_0x5f4245&&_0x5f4245[_0xef59('0x31')]){var _0x3db21e=[];_0x5f4245['forEach'](function(_0x15e3c7){_0x3db21e[_0xef59('0x37')](_0x15e3c7[_0xef59('0x2e')]({'exitAt':moment()[_0xef59('0x32')](_0xef59('0x33'))}));});return BPromise[_0xef59('0x59')](_0x3db21e);}}})[_0xef59('0x12')](function(_0x247f5d){if(_0x5aa0fd){var _0x9dd9ec=[];var _0x51ea21=[];var _0x25b60e=utils[_0xef59('0x35')]();var _0x1aa29e={'membername':_0x5aa0fd[_0xef59('0x2a')],'interface':_0x4cf7d9,'enterAt':moment()['format'](_0xef59('0x33')),'role':_0x5aa0fd[_0xef59('0x2b')],'internal':_0x5aa0fd[_0xef59('0x2c')]};_0x25b60e['forEach'](function(_0x3227da){_0x9dd9ec[_0xef59('0x37')](_['merge']({'channel':_0x3227da,'type':_0xef59('0x5a'),'data1':'callysquare','data2':_0x4cf7d9},_0x1aa29e));if(_0x5aa0fd[_0xef59('0x51')]){_0x51ea21[_0xef59('0x37')](_['merge']({'channel':_0x3227da,'type':_0xef59('0x30'),'data1':_0xef59('0x5b')},_0x1aa29e));}});return db[_0xef59('0x3d')]['bulkCreate'](_0x9dd9ec['concat'](_0x51ea21),{'individualHooks':!![]});}})[_0xef59('0x12')](function(){if(_0x5aa0fd){return _0x5aa0fd['update']({'online':!![],'lastLoginAt':moment()[_0xef59('0x32')]('YYYY-MM-DD\x20HH:mm:ss'),'voicePause':_0x5aa0fd['loginInPause']||![],'mailPause':_0x5aa0fd['loginInPause']||![],'chatPause':_0x5aa0fd['loginInPause']||![],'faxPause':_0x5aa0fd[_0xef59('0x51')]||![],'smsPause':_0x5aa0fd['loginInPause']||![],'openchannelPause':_0x5aa0fd['loginInPause']||![],'pauseType':_0x5aa0fd[_0xef59('0x51')]?'LOGININPAUSE':null,'lastPauseAt':moment()['format'](_0xef59('0x33')),'interface':_0x4cf7d9});}})[_0xef59('0x12')](function(_0x2a8dbd){_0x36bc06(_0x2a8dbd);})['catch'](function(_0x4d9fb7){_0x1e5013(_0x3f983f[_0xef59('0x16')](0x1f4,_0x4d9fb7['message']));});});};
\ No newline at end of file
+var _0x9c0d=['merge','LOGIN','callysquare','LOGININPAUSE','concat','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','./user.socket','register','request','info','User,\x20%s,\x20%s','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetUser','User','findAll','options','attributes','limit','include','map','model','ShowUser','PauseUser','find','where','name','then','UserVoiceQueueRt','update','PAUSE','length','format','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','isNil','interface','SIP/%s','body','type','DEFAULT\x20PAUSE','internal','uniqueid','MemberReport','bulkCreate','UnpauseUser','findOne','channel','isValidChannel','Unknown\x20channel','voice','mail','fax','sms','openchannel','whatsapp','system','set','%s%s','push','all','LogoutUser','LoginUser','role','mobile','phone','loginInPause','count','agent','../../config/license/util','agents','Maximum\x20login\x20has\x20been\x20reached','destroy','getVoiceQueues','UserVoiceQueue.penalty'];(function(_0x113e32,_0x5339f0){var _0x4ff939=function(_0x2be9ca){while(--_0x2be9ca){_0x113e32['push'](_0x113e32['shift']());}};_0x4ff939(++_0x5339f0);}(_0x9c0d,0x1e0));var _0xd9c0=function(_0x201fc4,_0x2264e8){_0x201fc4=_0x201fc4-0x0;var _0x232e4d=_0x9c0d[_0x201fc4];return _0x232e4d;};'use strict';var _=require('lodash');var util=require(_0xd9c0('0x0'));var moment=require(_0xd9c0('0x1'));var BPromise=require(_0xd9c0('0x2'));var rs=require(_0xd9c0('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd9c0('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xd9c0('0x5'))(_0xd9c0('0x6'));var config=require('../../config/environment');var jayson=require(_0xd9c0('0x7'));var client=jayson[_0xd9c0('0x8')][_0xd9c0('0x9')]({'port':0x232a});config[_0xd9c0('0xa')]=_[_0xd9c0('0xb')](config[_0xd9c0('0xa')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xd9c0('0xc'))[_0xd9c0('0xd')](socket);function respondWithRpcPromise(_0x5b5d70,_0x1e620c,_0x4e674c){return new BPromise(function(_0x282eb9,_0x1e0b3d){return client[_0xd9c0('0xe')](_0x5b5d70,_0x4e674c)['then'](function(_0x8d2882){logger[_0xd9c0('0xf')](_0xd9c0('0x10'),_0x1e620c,_0xd9c0('0x11'));logger[_0xd9c0('0x12')](_0xd9c0('0x13'),_0x1e620c,_0xd9c0('0x11'),JSON[_0xd9c0('0x14')](_0x8d2882));if(_0x8d2882[_0xd9c0('0x15')]){if(_0x8d2882[_0xd9c0('0x15')][_0xd9c0('0x16')]===0x1f4){logger[_0xd9c0('0x15')](_0xd9c0('0x10'),_0x1e620c,_0x8d2882[_0xd9c0('0x15')]['message']);return _0x1e0b3d(_0x8d2882[_0xd9c0('0x15')][_0xd9c0('0x17')]);}logger[_0xd9c0('0x15')](_0xd9c0('0x10'),_0x1e620c,_0x8d2882[_0xd9c0('0x15')][_0xd9c0('0x17')]);return _0x282eb9(_0x8d2882[_0xd9c0('0x15')][_0xd9c0('0x17')]);}else{logger[_0xd9c0('0xf')](_0xd9c0('0x10'),_0x1e620c,_0xd9c0('0x11'));_0x282eb9(_0x8d2882[_0xd9c0('0x18')]['message']);}})[_0xd9c0('0x19')](function(_0x46dcc9){logger[_0xd9c0('0x15')](_0xd9c0('0x10'),_0x1e620c,_0x46dcc9);_0x1e0b3d(_0x46dcc9);});});}exports[_0xd9c0('0x1a')]=function(_0x13c666){var _0x40a837=this;return new Promise(function(_0x43ac01,_0x2a8744){return db[_0xd9c0('0x1b')][_0xd9c0('0x1c')]({'raw':_0x13c666[_0xd9c0('0x1d')]?_0x13c666[_0xd9c0('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x13c666[_0xd9c0('0x1d')]?_0x13c666['options']['where']||null:null,'attributes':_0x13c666['options']?_0x13c666['options'][_0xd9c0('0x1e')]||null:null,'limit':_0x13c666['options']?_0x13c666['options'][_0xd9c0('0x1f')]||null:null,'include':_0x13c666[_0xd9c0('0x1d')]?_0x13c666['options'][_0xd9c0('0x20')]?_[_0xd9c0('0x21')](_0x13c666[_0xd9c0('0x1d')][_0xd9c0('0x20')],function(_0xaa9215){return{'model':db[_0xaa9215[_0xd9c0('0x22')]],'as':_0xaa9215['as'],'attributes':_0xaa9215[_0xd9c0('0x1e')],'include':_0xaa9215[_0xd9c0('0x20')]?_['map'](_0xaa9215[_0xd9c0('0x20')],function(_0x2e3403){return{'model':db[_0x2e3403[_0xd9c0('0x22')]],'as':_0x2e3403['as'],'attributes':_0x2e3403['attributes'],'include':_0x2e3403[_0xd9c0('0x20')]?_[_0xd9c0('0x21')](_0x2e3403[_0xd9c0('0x20')],function(_0x408895){return{'model':db[_0x408895[_0xd9c0('0x22')]],'as':_0x408895['as'],'attributes':_0x408895[_0xd9c0('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x454e91){logger[_0xd9c0('0xf')](_0xd9c0('0x1a'),_0x13c666);logger[_0xd9c0('0x12')](_0xd9c0('0x1a'),_0x13c666,JSON[_0xd9c0('0x14')](_0x454e91));_0x43ac01(_0x454e91);})[_0xd9c0('0x19')](function(_0x1ecb18){logger['error'](_0xd9c0('0x1a'),_0x1ecb18[_0xd9c0('0x17')],_0x13c666);_0x2a8744(_0x40a837[_0xd9c0('0x15')](0x1f4,_0x1ecb18[_0xd9c0('0x17')]));});});};exports[_0xd9c0('0x23')]=function(_0x4603bf){var _0x40c41a=this;return new Promise(function(_0x24f143,_0x4858d6){return db['User']['find']({'raw':_0x4603bf[_0xd9c0('0x1d')]?_0x4603bf[_0xd9c0('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x4603bf[_0xd9c0('0x1d')]?_0x4603bf[_0xd9c0('0x1d')]['where']||null:null,'attributes':_0x4603bf[_0xd9c0('0x1d')]?_0x4603bf[_0xd9c0('0x1d')]['attributes']||null:null,'include':_0x4603bf[_0xd9c0('0x1d')]?_0x4603bf[_0xd9c0('0x1d')][_0xd9c0('0x20')]?_['map'](_0x4603bf[_0xd9c0('0x1d')][_0xd9c0('0x20')],function(_0x58ab09){return{'model':db[_0x58ab09[_0xd9c0('0x22')]],'as':_0x58ab09['as'],'attributes':_0x58ab09[_0xd9c0('0x1e')],'include':_0x58ab09[_0xd9c0('0x20')]?_['map'](_0x58ab09[_0xd9c0('0x20')],function(_0x58c8bd){return{'model':db[_0x58c8bd[_0xd9c0('0x22')]],'as':_0x58c8bd['as'],'attributes':_0x58c8bd[_0xd9c0('0x1e')],'include':_0x58c8bd['include']?_[_0xd9c0('0x21')](_0x58c8bd['include'],function(_0x269b7b){return{'model':db[_0x269b7b[_0xd9c0('0x22')]],'as':_0x269b7b['as'],'attributes':_0x269b7b[_0xd9c0('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4aa9a0){logger[_0xd9c0('0xf')](_0xd9c0('0x23'),_0x4603bf);logger[_0xd9c0('0x12')]('ShowUser',_0x4603bf,JSON[_0xd9c0('0x14')](_0x4aa9a0));_0x24f143(_0x4aa9a0);})[_0xd9c0('0x19')](function(_0xc7c39f){logger[_0xd9c0('0x15')](_0xd9c0('0x23'),_0xc7c39f[_0xd9c0('0x17')],_0x4603bf);_0x4858d6(_0x40c41a[_0xd9c0('0x15')](0x1f4,_0xc7c39f[_0xd9c0('0x17')]));});});};exports[_0xd9c0('0x24')]=function(_0x59fc44){var _0x3481a8=this;return new Promise(function(_0x5c1258,_0x3ac3a1){var _0x5789d2;return db[_0xd9c0('0x1b')][_0xd9c0('0x25')]({'where':_0x59fc44[_0xd9c0('0x1d')][_0xd9c0('0x26')]||{},'attributes':['id',_0xd9c0('0x27'),'role','internal','interface']})[_0xd9c0('0x28')](function(_0x4a9c90){if(_0x4a9c90){_0x5789d2=_0x4a9c90;return db[_0xd9c0('0x29')][_0xd9c0('0x2a')]({'paused':0x1},{'where':{'UserId':_0x5789d2['id']},'individualHooks':!![]});}})['then'](function(){if(_0x5789d2){return db['MemberReport']['findAll']({'where':{'membername':_0x5789d2[_0xd9c0('0x27')],'type':_0xd9c0('0x2b'),'exitAt':null}});}})[_0xd9c0('0x28')](function(_0x504fdd){if(_0x5789d2){if(_0x504fdd&&_0x504fdd[_0xd9c0('0x2c')]){var _0x14e9e0=moment()[_0xd9c0('0x2d')](_0xd9c0('0x2e'));for(var _0x3d6d42=0x0,_0x28cea8=_0x504fdd[_0xd9c0('0x2c')];_0x3d6d42<_0x28cea8;_0x3d6d42++){_0x504fdd[_0x3d6d42][_0xd9c0('0x2f')]({'exitAt':_0x14e9e0});}}}})['then'](function(){if(_0x5789d2){var _0x4fdbe2=[];var _0x1ab059=utils[_0xd9c0('0x30')]();_0x1ab059[_0xd9c0('0x31')](function(_0xbd8c3e){_0x4fdbe2['push']({'channel':_0xbd8c3e,'membername':_0x5789d2['name'],'interface':_[_0xd9c0('0x32')](_0x5789d2[_0xd9c0('0x33')])?util[_0xd9c0('0x2d')](_0xd9c0('0x34'),_0x5789d2['name']):_0x5789d2[_0xd9c0('0x33')],'type':'PAUSE','enterAt':moment()['format'](_0xd9c0('0x2e')),'data1':_0x59fc44[_0xd9c0('0x35')][_0xd9c0('0x36')]||_0xd9c0('0x37'),'role':_0x5789d2['role'],'internal':_0x5789d2[_0xd9c0('0x38')],'uniqueid':_0x59fc44[_0xd9c0('0x35')][_0xd9c0('0x39')]||null});});return db[_0xd9c0('0x3a')][_0xd9c0('0x3b')](_0x4fdbe2,{'individualHooks':!![]});}})[_0xd9c0('0x28')](function(){if(_0x5789d2){return _0x5789d2[_0xd9c0('0x2a')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x59fc44['body'][_0xd9c0('0x36')]||'DEFAULT\x20PAUSE','lastPauseAt':moment()[_0xd9c0('0x2d')](_0xd9c0('0x2e'))});}})[_0xd9c0('0x28')](function(_0x4cb676){_0x5c1258(_0x4cb676);})[_0xd9c0('0x19')](function(_0x4feab2){_0x3ac3a1(_0x3481a8[_0xd9c0('0x15')](0x1f4,_0x4feab2['message']));});});};exports[_0xd9c0('0x3c')]=function(_0x5ae41c){var _0x5be9a2=this;return new Promise(function(_0x44f135,_0x191f09){var _0x410f0d;return db[_0xd9c0('0x1b')][_0xd9c0('0x3d')]({'where':_0x5ae41c[_0xd9c0('0x1d')][_0xd9c0('0x26')]||{},'attributes':['id',_0xd9c0('0x27')]})[_0xd9c0('0x28')](function(_0x1cf9ff){if(_0x1cf9ff){_0x410f0d=_0x1cf9ff;if(_0x5ae41c['body'][_0xd9c0('0x3e')]&&!utils[_0xd9c0('0x3f')](_0x5ae41c[_0xd9c0('0x35')][_0xd9c0('0x3e')])){throw new Error(_0xd9c0('0x40'));}switch(_0x5ae41c[_0xd9c0('0x35')][_0xd9c0('0x3e')]){case _0xd9c0('0x41'):return db[_0xd9c0('0x29')][_0xd9c0('0x2a')]({'paused':0x0},{'where':{'UserId':_0x410f0d['id']}})[_0xd9c0('0x28')](function(){return db['MemberReport']['find']({'where':{'channel':_0x5ae41c[_0xd9c0('0x35')][_0xd9c0('0x3e')],'membername':_0x410f0d[_0xd9c0('0x27')],'type':'PAUSE','exitAt':null}});})[_0xd9c0('0x28')](function(_0x3d7d55){if(_0x3d7d55){return _0x3d7d55[_0xd9c0('0x2a')]({'exitAt':moment()[_0xd9c0('0x2d')](_0xd9c0('0x2e')),'data2':'system'},{'individualHooks':!![]});}return null;})[_0xd9c0('0x28')](function(){return _0x410f0d['update']({'voicePause':![]});});case _0xd9c0('0x42'):case'chat':case _0xd9c0('0x43'):case _0xd9c0('0x44'):case _0xd9c0('0x45'):case _0xd9c0('0x46'):return db['MemberReport'][_0xd9c0('0x25')]({'where':{'channel':_0x5ae41c[_0xd9c0('0x35')][_0xd9c0('0x3e')],'membername':_0x410f0d[_0xd9c0('0x27')],'type':_0xd9c0('0x2b'),'exitAt':null}})[_0xd9c0('0x28')](function(_0x2b72c2){return _0x2b72c2[_0xd9c0('0x2a')]({'exitAt':moment()[_0xd9c0('0x2d')](_0xd9c0('0x2e')),'data2':_0xd9c0('0x47')},{'individualHooks':!![]});})[_0xd9c0('0x28')](function(){var _0x394006={};_[_0xd9c0('0x48')](_0x394006,util[_0xd9c0('0x2d')](_0xd9c0('0x49'),_0x5ae41c[_0xd9c0('0x35')]['channel'],'Pause'),![]);return _0x410f0d[_0xd9c0('0x2a')](_0x394006);});default:return db[_0xd9c0('0x29')][_0xd9c0('0x2a')]({'paused':0x0},{'where':{'UserId':_0x410f0d['id']}})[_0xd9c0('0x28')](function(){return db[_0xd9c0('0x3a')]['findAll']({'where':{'membername':_0x410f0d[_0xd9c0('0x27')],'type':'PAUSE','exitAt':null}});})[_0xd9c0('0x28')](function(_0x1abb40){var _0x5adf68=[];_0x1abb40[_0xd9c0('0x31')](function(_0x7f1cd5){_0x5adf68[_0xd9c0('0x4a')](_0x7f1cd5[_0xd9c0('0x2a')]({'exitAt':moment()[_0xd9c0('0x2d')](_0xd9c0('0x2e')),'data2':_0xd9c0('0x47')}));});return BPromise[_0xd9c0('0x4b')](_0x5adf68);})[_0xd9c0('0x28')](function(){return _0x410f0d[_0xd9c0('0x2a')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0xd9c0('0x28')](function(_0x462169){_0x44f135(_0x462169);})[_0xd9c0('0x19')](function(_0x3cdaf2){_0x191f09(_0x5be9a2[_0xd9c0('0x15')](0x1f4,_0x3cdaf2[_0xd9c0('0x17')]));});});};exports[_0xd9c0('0x4c')]=function(_0xa21b8e){var _0x5f161f=this;return new Promise(function(_0x1a8f94,_0x11080a){var _0x1d99a3;return db[_0xd9c0('0x1b')]['findOne']({'where':_0xa21b8e[_0xd9c0('0x1d')][_0xd9c0('0x26')]||{},'attributes':['id',_0xd9c0('0x27')]})[_0xd9c0('0x28')](function(_0x2ebcd4){if(_0x2ebcd4){_0x1d99a3=_0x2ebcd4;return db['UserVoiceQueueRt']['destroy']({'where':{'membername':_0x1d99a3[_0xd9c0('0x27')]},'individualHooks':!![]});}})['then'](function(){if(_0x1d99a3){return db[_0xd9c0('0x3a')][_0xd9c0('0x1c')]({'where':{'membername':_0x1d99a3[_0xd9c0('0x27')],'exitAt':null}});}})[_0xd9c0('0x28')](function(_0x367e82){if(_0x1d99a3){if(_0x367e82&&_0x367e82[_0xd9c0('0x2c')]){var _0x205e1f=[];_0x367e82['forEach'](function(_0x150fd6){_0x205e1f[_0xd9c0('0x4a')](_0x150fd6[_0xd9c0('0x2a')]({'exitAt':moment()[_0xd9c0('0x2d')](_0xd9c0('0x2e'))}));});return BPromise[_0xd9c0('0x4b')](_0x205e1f);}}})['then'](function(){if(_0x1d99a3){return _0x1d99a3[_0xd9c0('0x2a')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xd9c0('0x28')](function(_0x1c37e1){_0x1a8f94(_0x1c37e1);})['catch'](function(_0x4c45e3){_0x11080a(_0x5f161f[_0xd9c0('0x15')](0x1f4,_0x4c45e3[_0xd9c0('0x17')]));});});};exports[_0xd9c0('0x4d')]=function(_0x4dac1f){var _0x475fa0=this;return new Promise(function(_0x752921,_0xf8a7e2){var _0x1af541;var _0x16b825;var _0x58f0ae;var _0x13f61c;return db[_0xd9c0('0x1b')][_0xd9c0('0x3d')]({'where':_0x4dac1f[_0xd9c0('0x1d')][_0xd9c0('0x26')]||{},'attributes':['id',_0xd9c0('0x27'),_0xd9c0('0x4e'),_0xd9c0('0x4f'),_0xd9c0('0x50'),'internal',_0xd9c0('0x51'),_0xd9c0('0x33')]})[_0xd9c0('0x28')](function(_0x22b99d){if(_0x22b99d){_0x1af541=_0x22b99d;_0x13f61c=_0x4dac1f[_0xd9c0('0x35')]['interface']?_0x4dac1f[_0xd9c0('0x35')][_0xd9c0('0x33')]:util[_0xd9c0('0x2d')](_0xd9c0('0x34'),_0x1af541['name']);return db[_0xd9c0('0x1b')][_0xd9c0('0x52')]({'where':{'role':_0xd9c0('0x53'),'online':!![],'id':{'$ne':_0x1af541['id']}}});}})[_0xd9c0('0x28')](function(_0x334d65){if(_0x334d65){_0x58f0ae=_0x334d65;return require(_0xd9c0('0x54'))['getLicense']();}})[_0xd9c0('0x28')](function(_0x5db3b8){if(_0x5db3b8&&_0x5db3b8[_0xd9c0('0x55')]&&_0x58f0ae>=_0x5db3b8[_0xd9c0('0x55')]){throw new Error(_0xd9c0('0x56'));}})[_0xd9c0('0x28')](function(){if(_0x1af541){return db[_0xd9c0('0x29')][_0xd9c0('0x57')]({'where':{'membername':_0x1af541[_0xd9c0('0x27')]},'individualHooks':!![]});}})[_0xd9c0('0x28')](function(){if(_0x1af541){return _0x1af541[_0xd9c0('0x58')]({'raw':!![]});}})[_0xd9c0('0x28')](function(_0x2fc225){if(_0x1af541){if(_0x2fc225){var _0x77115d=[];_0x16b825=_0x2fc225;if(_0x16b825[_0xd9c0('0x2c')]){for(var _0x114370=0x0;_0x114370<_0x16b825[_0xd9c0('0x2c')];_0x114370++){_0x77115d['push'](db[_0xd9c0('0x29')]['upsert']({'membername':_0x1af541[_0xd9c0('0x27')],'UserId':_0x1af541['id'],'queue_name':_0x16b825[_0x114370][_0xd9c0('0x27')],'VoiceQueueId':_0x16b825[_0x114370]['id'],'interface':_0x13f61c,'paused':_0x1af541[_0xd9c0('0x51')]||![],'penalty':_0x16b825[_0x114370][_0xd9c0('0x59')]||0x0}));}return BPromise[_0xd9c0('0x4b')](_0x77115d);}}}})[_0xd9c0('0x28')](function(){if(_0x1af541){return db['MemberReport'][_0xd9c0('0x1c')]({'where':{'membername':_0x1af541[_0xd9c0('0x27')],'exitAt':null}});}})['then'](function(_0x5f1efd){if(_0x1af541){if(_0x5f1efd&&_0x5f1efd[_0xd9c0('0x2c')]){var _0x407965=[];_0x5f1efd['forEach'](function(_0x17a8ea){_0x407965[_0xd9c0('0x4a')](_0x17a8ea[_0xd9c0('0x2a')]({'exitAt':moment()[_0xd9c0('0x2d')](_0xd9c0('0x2e'))}));});return BPromise[_0xd9c0('0x4b')](_0x407965);}}})[_0xd9c0('0x28')](function(_0x4a0068){if(_0x1af541){var _0x41e699=[];var _0x428462=[];var _0x7a427e=utils[_0xd9c0('0x30')]();var _0x499463={'membername':_0x1af541[_0xd9c0('0x27')],'interface':_0x13f61c,'enterAt':moment()['format'](_0xd9c0('0x2e')),'role':_0x1af541['role'],'internal':_0x1af541['internal']};_0x7a427e[_0xd9c0('0x31')](function(_0x4a9c9a){_0x41e699['push'](_[_0xd9c0('0x5a')]({'channel':_0x4a9c9a,'type':_0xd9c0('0x5b'),'data1':_0xd9c0('0x5c'),'data2':_0x13f61c},_0x499463));if(_0x1af541[_0xd9c0('0x51')]){_0x428462[_0xd9c0('0x4a')](_[_0xd9c0('0x5a')]({'channel':_0x4a9c9a,'type':_0xd9c0('0x2b'),'data1':_0xd9c0('0x5d')},_0x499463));}});return db[_0xd9c0('0x3a')][_0xd9c0('0x3b')](_0x41e699[_0xd9c0('0x5e')](_0x428462),{'individualHooks':!![]});}})[_0xd9c0('0x28')](function(){if(_0x1af541){return _0x1af541[_0xd9c0('0x2a')]({'online':!![],'lastLoginAt':moment()[_0xd9c0('0x2d')](_0xd9c0('0x2e')),'voicePause':_0x1af541[_0xd9c0('0x51')]||![],'mailPause':_0x1af541[_0xd9c0('0x51')]||![],'chatPause':_0x1af541['loginInPause']||![],'faxPause':_0x1af541[_0xd9c0('0x51')]||![],'smsPause':_0x1af541['loginInPause']||![],'openchannelPause':_0x1af541[_0xd9c0('0x51')]||![],'pauseType':_0x1af541[_0xd9c0('0x51')]?_0xd9c0('0x5d'):null,'lastPauseAt':moment()[_0xd9c0('0x2d')]('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0x13f61c});}})[_0xd9c0('0x28')](function(_0x1f49a8){_0x752921(_0x1f49a8);})[_0xd9c0('0x19')](function(_0x40ba49){_0xf8a7e2(_0x475fa0[_0xd9c0('0x15')](0x1f4,_0x40ba49['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0e5b=['emit','removeListener','register','length','user:','./user.events','update'];(function(_0x13d5fd,_0x52419a){var _0x536688=function(_0x18ec7f){while(--_0x18ec7f){_0x13d5fd['push'](_0x13d5fd['shift']());}};_0x536688(++_0x52419a);}(_0x0e5b,0xb4));var _0xb0e5=function(_0x39203f,_0x2f5621){_0x39203f=_0x39203f-0x0;var _0x3298aa=_0x0e5b[_0x39203f];return _0x3298aa;};'use strict';var UserEvents=require(_0xb0e5('0x0'));var events=['save','remove',_0xb0e5('0x1')];function createListener(_0x50e3e8,_0x24919f){return function(_0x351da6){_0x24919f[_0xb0e5('0x2')](_0x50e3e8,_0x351da6);};}function removeListener(_0x47e91f,_0x2b169a){return function(){UserEvents[_0xb0e5('0x3')](_0x47e91f,_0x2b169a);};}exports[_0xb0e5('0x4')]=function(_0x296c30){for(var _0x4d15ea=0x0,_0x41875f=events[_0xb0e5('0x5')];_0x4d15ea<_0x41875f;_0x4d15ea++){var _0x523736=events[_0x4d15ea];var _0x945a2=createListener(_0xb0e5('0x6')+_0x523736,_0x296c30);UserEvents['on'](_0x523736,_0x945a2);}};
\ No newline at end of file
+var _0xf2db=['update','register','./user.events','save','remove'];(function(_0x45a53d,_0x4c0850){var _0x5d0e30=function(_0x358cca){while(--_0x358cca){_0x45a53d['push'](_0x45a53d['shift']());}};_0x5d0e30(++_0x4c0850);}(_0xf2db,0xbb));var _0xbf2d=function(_0xf33ecf,_0x3e1140){_0xf33ecf=_0xf33ecf-0x0;var _0x152ada=_0xf2db[_0xf33ecf];return _0x152ada;};'use strict';var UserEvents=require(_0xbf2d('0x0'));var events=[_0xbf2d('0x1'),_0xbf2d('0x2'),_0xbf2d('0x3')];function createListener(_0xb7e0ca,_0x5a0853){return function(_0x3eefb8){_0x5a0853['emit'](_0xb7e0ca,_0x3eefb8);};}function removeListener(_0x1e577f,_0x2fa7b5){return function(){UserEvents['removeListener'](_0x1e577f,_0x2fa7b5);};}exports[_0xbf2d('0x4')]=function(_0x4109e2){for(var _0x219068=0x0,_0x37d8dc=events['length'];_0x219068<_0x37d8dc;_0x219068++){var _0x22e79e=events[_0x219068];var _0x5f1d3c=createListener('user:'+_0x22e79e,_0x4109e2);UserEvents['on'](_0x22e79e,_0x5f1d3c);}};
\ 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(_0x9e0cb3,_0x9cd497){var _0x5926b7=function(_0x30e82d){while(--_0x30e82d){_0x9e0cb3['push'](_0x9e0cb3['shift']());}};_0x5926b7(++_0x9cd497);}(_0x9c44,0x178));var _0x49c4=function(_0x2dea24,_0x2fc021){_0x2dea24=_0x2dea24-0x0;var _0x309d58=_0x9c44[_0x2dea24];return _0x309d58;};'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 _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0x4b635a,_0x8d01b2){var _0x3de488=function(_0x2b03a6){while(--_0x2b03a6){_0x4b635a['push'](_0x4b635a['shift']());}};_0x3de488(++_0x8d01b2);}(_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 _0x73ca=['sequelize','exports'];(function(_0x5c5ccc,_0x310bbf){var _0x814d5b=function(_0x4204a4){while(--_0x4204a4){_0x5c5ccc['push'](_0x5c5ccc['shift']());}};_0x814d5b(++_0x310bbf);}(_0x73ca,0x7a));var _0xa73c=function(_0x5f4271,_0x16a20b){_0x5f4271=_0x5f4271-0x0;var _0x4d29dd=_0x73ca[_0x5f4271];return _0x4d29dd;};'use strict';var Sequelize=require(_0xa73c('0x0'));module[_0xa73c('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x036b=['INTEGER','sequelize','exports'];(function(_0x5d4553,_0x3505cf){var _0x541b42=function(_0x41ce53){while(--_0x41ce53){_0x5d4553['push'](_0x5d4553['shift']());}};_0x541b42(++_0x3505cf);}(_0x036b,0x145));var _0xb036=function(_0x39ddd4,_0x38ce35){_0x39ddd4=_0x39ddd4-0x0;var _0x3d642a=_0x036b[_0x39ddd4];return _0x3d642a;};'use strict';var Sequelize=require(_0xb036('0x0'));module[_0xb036('0x1')]={'penalty':{'type':Sequelize[_0xb036('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0ec=['request-promise','path','rimraf','../../config/environment','./userChatQueue.attributes','exports','define','lodash','util','../../config/logger','api','moment'];(function(_0x172660,_0x260d9b){var _0x83204f=function(_0x4d6c80){while(--_0x4d6c80){_0x172660['push'](_0x172660['shift']());}};_0x83204f(++_0x260d9b);}(_0xf0ec,0x1db));var _0xcf0e=function(_0x53a7a8,_0xed2bff){_0x53a7a8=_0x53a7a8-0x0;var _0x555f71=_0xf0ec[_0x53a7a8];return _0x555f71;};'use strict';var _=require(_0xcf0e('0x0'));var util=require(_0xcf0e('0x1'));var logger=require(_0xcf0e('0x2'))(_0xcf0e('0x3'));var moment=require(_0xcf0e('0x4'));var BPromise=require('bluebird');var rp=require(_0xcf0e('0x5'));var fs=require('fs');var path=require(_0xcf0e('0x6'));var rimraf=require(_0xcf0e('0x7'));var config=require(_0xcf0e('0x8'));var attributes=require(_0xcf0e('0x9'));module[_0xcf0e('0xa')]=function(_0x51b485,_0x2a5e29){return _0x51b485[_0xcf0e('0xb')]('UserChatQueue',attributes,{'tableName':'user_has_chat_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4b78=['bluebird','request-promise','path','rimraf','exports','user_has_chat_queues','util','../../config/logger','moment'];(function(_0x4bdf64,_0x3022b2){var _0x9a1a19=function(_0x4e551b){while(--_0x4e551b){_0x4bdf64['push'](_0x4bdf64['shift']());}};_0x9a1a19(++_0x3022b2);}(_0x4b78,0x84));var _0x84b7=function(_0x2b7ef8,_0x3b4a13){_0x2b7ef8=_0x2b7ef8-0x0;var _0x156a34=_0x4b78[_0x2b7ef8];return _0x156a34;};'use strict';var _=require('lodash');var util=require(_0x84b7('0x0'));var logger=require(_0x84b7('0x1'))('api');var moment=require(_0x84b7('0x2'));var BPromise=require(_0x84b7('0x3'));var rp=require(_0x84b7('0x4'));var fs=require('fs');var path=require(_0x84b7('0x5'));var rimraf=require(_0x84b7('0x6'));var config=require('../../config/environment');var attributes=require('./userChatQueue.attributes');module[_0x84b7('0x7')]=function(_0x582ca1,_0x2c42de){return _0x582ca1['define']('UserChatQueue',attributes,{'tableName':_0x84b7('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x76e0=['stringify','error','code','message','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','jayson/promise','client','http','request','then','info','UserChatQueue,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x16c314,_0x4bcd8e){var _0x1b0580=function(_0x429c5d){while(--_0x429c5d){_0x16c314['push'](_0x16c314['shift']());}};_0x1b0580(++_0x4bcd8e);}(_0x76e0,0x1d2));var _0x076e=function(_0x4058e2,_0x2d80ad){_0x4058e2=_0x4058e2-0x0;var _0x14489c=_0x76e0[_0x4058e2];return _0x14489c;};'use strict';var _=require(_0x076e('0x0'));var util=require(_0x076e('0x1'));var moment=require(_0x076e('0x2'));var BPromise=require(_0x076e('0x3'));var rs=require(_0x076e('0x4'));var fs=require('fs');var Redis=require(_0x076e('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x076e('0x6'));var logger=require(_0x076e('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x076e('0x8'));var client=jayson[_0x076e('0x9')][_0x076e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4037d2,_0x1fbc19,_0x59c638){return new BPromise(function(_0x188b13,_0x2d5995){return client[_0x076e('0xb')](_0x4037d2,_0x59c638)[_0x076e('0xc')](function(_0x414f71){logger[_0x076e('0xd')](_0x076e('0xe'),_0x1fbc19,_0x076e('0xf'));logger[_0x076e('0x10')]('UserChatQueue,\x20%s,\x20%s,\x20%s',_0x1fbc19,_0x076e('0xf'),JSON[_0x076e('0x11')](_0x414f71));if(_0x414f71[_0x076e('0x12')]){if(_0x414f71[_0x076e('0x12')][_0x076e('0x13')]===0x1f4){logger[_0x076e('0x12')](_0x076e('0xe'),_0x1fbc19,_0x414f71[_0x076e('0x12')]['message']);return _0x2d5995(_0x414f71[_0x076e('0x12')]['message']);}logger[_0x076e('0x12')]('UserChatQueue,\x20%s,\x20%s',_0x1fbc19,_0x414f71[_0x076e('0x12')][_0x076e('0x14')]);return _0x188b13(_0x414f71[_0x076e('0x12')][_0x076e('0x14')]);}else{logger[_0x076e('0xd')](_0x076e('0xe'),_0x1fbc19,'request\x20sent');_0x188b13(_0x414f71['result']['message']);}})['catch'](function(_0x1daaac){logger[_0x076e('0x12')](_0x076e('0xe'),_0x1fbc19,_0x1daaac);_0x2d5995(_0x1daaac);});});}
\ No newline at end of file
+var _0x3a19=['moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','UserChatQueue,\x20%s,\x20%s','request\x20sent','UserChatQueue,\x20%s,\x20%s,\x20%s','error','message','catch','lodash','util'];(function(_0x1e6300,_0x24289b){var _0x1c7e8a=function(_0x1d47db){while(--_0x1d47db){_0x1e6300['push'](_0x1e6300['shift']());}};_0x1c7e8a(++_0x24289b);}(_0x3a19,0x178));var _0x93a1=function(_0x56479d,_0x5ea806){_0x56479d=_0x56479d-0x0;var _0x5bbe4e=_0x3a19[_0x56479d];return _0x5bbe4e;};'use strict';var _=require(_0x93a1('0x0'));var util=require(_0x93a1('0x1'));var moment=require(_0x93a1('0x2'));var BPromise=require(_0x93a1('0x3'));var rs=require(_0x93a1('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x93a1('0x5'))['db'];var utils=require(_0x93a1('0x6'));var logger=require(_0x93a1('0x7'))(_0x93a1('0x8'));var config=require(_0x93a1('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x93a1('0xa')][_0x93a1('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4ede89,_0x305290,_0x1d73da){return new BPromise(function(_0x31b0c6,_0x3a5864){return client[_0x93a1('0xc')](_0x4ede89,_0x1d73da)[_0x93a1('0xd')](function(_0x2f880d){logger[_0x93a1('0xe')](_0x93a1('0xf'),_0x305290,_0x93a1('0x10'));logger['debug'](_0x93a1('0x11'),_0x305290,_0x93a1('0x10'),JSON['stringify'](_0x2f880d));if(_0x2f880d[_0x93a1('0x12')]){if(_0x2f880d[_0x93a1('0x12')]['code']===0x1f4){logger['error'](_0x93a1('0xf'),_0x305290,_0x2f880d['error'][_0x93a1('0x13')]);return _0x3a5864(_0x2f880d[_0x93a1('0x12')][_0x93a1('0x13')]);}logger['error']('UserChatQueue,\x20%s,\x20%s',_0x305290,_0x2f880d['error'][_0x93a1('0x13')]);return _0x31b0c6(_0x2f880d['error'][_0x93a1('0x13')]);}else{logger[_0x93a1('0xe')](_0x93a1('0xf'),_0x305290,_0x93a1('0x10'));_0x31b0c6(_0x2f880d['result'][_0x93a1('0x13')]);}})[_0x93a1('0x14')](function(_0x6f2214){logger[_0x93a1('0x12')](_0x93a1('0xf'),_0x305290,_0x6f2214);_0x3a5864(_0x6f2214);});});}
\ 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(_0x4a8d83,_0x64519b){var _0x12ac73=function(_0x3090e5){while(--_0x3090e5){_0x4a8d83['push'](_0x4a8d83['shift']());}};_0x12ac73(++_0x64519b);}(_0x70e0,0x17b));var _0x070e=function(_0x3202ab,_0x291b88){_0x3202ab=_0x3202ab-0x0;var _0x33b443=_0x70e0[_0x3202ab];return _0x33b443;};'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(_0xc14279,_0x21d03b){var _0x4c0351=function(_0x3ff0fd){while(--_0x3ff0fd){_0xc14279['push'](_0xc14279['shift']());}};_0x4c0351(++_0x21d03b);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x163040,_0x38a58c){_0x163040=_0x163040-0x0;var _0x364667=_0xcb91[_0x163040];return _0x364667;};'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 _0xf623=['sequelize','exports','INTEGER','STRING'];(function(_0x17d880,_0x38c72a){var _0x365c33=function(_0x2f5a7e){while(--_0x2f5a7e){_0x17d880['push'](_0x17d880['shift']());}};_0x365c33(++_0x38c72a);}(_0xf623,0xe0));var _0x3f62=function(_0x21cbcd,_0x4ba851){_0x21cbcd=_0x21cbcd-0x0;var _0x59a138=_0xf623[_0x21cbcd];return _0x59a138;};'use strict';var Sequelize=require(_0x3f62('0x0'));module[_0x3f62('0x1')]={'penalty':{'type':Sequelize[_0x3f62('0x2')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0x3f62('0x2')],'defaultValue':0x0},'queue':{'type':Sequelize[_0x3f62('0x3')]}};
\ No newline at end of file
+var _0xccac=['sequelize','INTEGER','STRING'];(function(_0x13737d,_0x2f02ab){var _0x212058=function(_0x31f72c){while(--_0x31f72c){_0x13737d['push'](_0x13737d['shift']());}};_0x212058(++_0x2f02ab);}(_0xccac,0x12c));var _0xccca=function(_0x4c8185,_0x3a1b3f){_0x4c8185=_0x4c8185-0x0;var _0x438196=_0xccac[_0x4c8185];return _0x438196;};'use strict';var Sequelize=require(_0xccca('0x0'));module['exports']={'penalty':{'type':Sequelize[_0xccca('0x1')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0xccca('0x1')],'defaultValue':0x0},'queue':{'type':Sequelize[_0xccca('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2682=['./userFaxQueue.attributes','exports','define','UserFaxQueue','lodash','util','api','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x160c73,_0x2ee678){var _0xd9302=function(_0x169454){while(--_0x169454){_0x160c73['push'](_0x160c73['shift']());}};_0xd9302(++_0x2ee678);}(_0x2682,0xa0));var _0x2268=function(_0x1f4526,_0x6d5e56){_0x1f4526=_0x1f4526-0x0;var _0x43ed3d=_0x2682[_0x1f4526];return _0x43ed3d;};'use strict';var _=require(_0x2268('0x0'));var util=require(_0x2268('0x1'));var logger=require('../../config/logger')(_0x2268('0x2'));var moment=require('moment');var BPromise=require(_0x2268('0x3'));var rp=require(_0x2268('0x4'));var fs=require('fs');var path=require(_0x2268('0x5'));var rimraf=require(_0x2268('0x6'));var config=require(_0x2268('0x7'));var attributes=require(_0x2268('0x8'));module[_0x2268('0x9')]=function(_0x110a0e,_0x5d9f3c){return _0x110a0e[_0x2268('0xa')](_0x2268('0xb'),attributes,{'tableName':'user_has_fax_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb1f9=['user_has_fax_queues','util','moment','bluebird','request-promise','rimraf','../../config/environment','./userFaxQueue.attributes','exports','define','UserFaxQueue'];(function(_0x31b48b,_0x36ce5b){var _0x3843f7=function(_0x446310){while(--_0x446310){_0x31b48b['push'](_0x31b48b['shift']());}};_0x3843f7(++_0x36ce5b);}(_0xb1f9,0xc7));var _0x9b1f=function(_0x9551ae,_0x5176cc){_0x9551ae=_0x9551ae-0x0;var _0x2d2ae2=_0xb1f9[_0x9551ae];return _0x2d2ae2;};'use strict';var _=require('lodash');var util=require(_0x9b1f('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x9b1f('0x1'));var BPromise=require(_0x9b1f('0x2'));var rp=require(_0x9b1f('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x9b1f('0x4'));var config=require(_0x9b1f('0x5'));var attributes=require(_0x9b1f('0x6'));module[_0x9b1f('0x7')]=function(_0x3ad95d,_0x5d1fb5){return _0x3ad95d[_0x9b1f('0x8')](_0x9b1f('0x9'),attributes,{'tableName':_0x9b1f('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c10=['../../mysqldb','../../config/utils','../../config/environment','jayson/promise','request','then','UserFaxQueue,\x20%s,\x20%s','request\x20sent','debug','UserFaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','bluebird','randomstring','ioredis'];(function(_0x157374,_0x2b292f){var _0x3d9318=function(_0x3fbfdc){while(--_0x3fbfdc){_0x157374['push'](_0x157374['shift']());}};_0x3d9318(++_0x2b292f);}(_0x8c10,0x176));var _0x08c1=function(_0xa8f697,_0x501374){_0xa8f697=_0xa8f697-0x0;var _0x4255ba=_0x8c10[_0xa8f697];return _0x4255ba;};'use strict';var _=require(_0x08c1('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x08c1('0x1'));var rs=require(_0x08c1('0x2'));var fs=require('fs');var Redis=require(_0x08c1('0x3'));var db=require(_0x08c1('0x4'))['db'];var utils=require(_0x08c1('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x08c1('0x6'));var jayson=require(_0x08c1('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x5663d0,_0x2eebf8,_0x97f288){return new BPromise(function(_0xdda2e9,_0x334903){return client[_0x08c1('0x8')](_0x5663d0,_0x97f288)[_0x08c1('0x9')](function(_0x24d0a6){logger['info'](_0x08c1('0xa'),_0x2eebf8,_0x08c1('0xb'));logger[_0x08c1('0xc')](_0x08c1('0xd'),_0x2eebf8,_0x08c1('0xb'),JSON[_0x08c1('0xe')](_0x24d0a6));if(_0x24d0a6[_0x08c1('0xf')]){if(_0x24d0a6[_0x08c1('0xf')][_0x08c1('0x10')]===0x1f4){logger[_0x08c1('0xf')](_0x08c1('0xa'),_0x2eebf8,_0x24d0a6[_0x08c1('0xf')][_0x08c1('0x11')]);return _0x334903(_0x24d0a6[_0x08c1('0xf')][_0x08c1('0x11')]);}logger[_0x08c1('0xf')](_0x08c1('0xa'),_0x2eebf8,_0x24d0a6[_0x08c1('0xf')][_0x08c1('0x11')]);return _0xdda2e9(_0x24d0a6['error'][_0x08c1('0x11')]);}else{logger[_0x08c1('0x12')]('UserFaxQueue,\x20%s,\x20%s',_0x2eebf8,_0x08c1('0xb'));_0xdda2e9(_0x24d0a6[_0x08c1('0x13')][_0x08c1('0x11')]);}})[_0x08c1('0x14')](function(_0x341e5f){logger['error']('UserFaxQueue,\x20%s,\x20%s',_0x2eebf8,_0x341e5f);_0x334903(_0x341e5f);});});}
\ No newline at end of file
+var _0x6dbd=['rpc','../../config/environment','jayson/promise','client','request','then','info','UserFaxQueue,\x20%s,\x20%s','UserFaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x3aac69,_0x81d09f){var _0x38d35b=function(_0x58ef90){while(--_0x58ef90){_0x3aac69['push'](_0x3aac69['shift']());}};_0x38d35b(++_0x81d09f);}(_0x6dbd,0x102));var _0xd6db=function(_0xf667c,_0x55ecd0){_0xf667c=_0xf667c-0x0;var _0x38f8cd=_0x6dbd[_0xf667c];return _0x38f8cd;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xd6db('0x0'));var BPromise=require('bluebird');var rs=require(_0xd6db('0x1'));var fs=require('fs');var Redis=require(_0xd6db('0x2'));var db=require(_0xd6db('0x3'))['db'];var utils=require(_0xd6db('0x4'));var logger=require(_0xd6db('0x5'))(_0xd6db('0x6'));var config=require(_0xd6db('0x7'));var jayson=require(_0xd6db('0x8'));var client=jayson[_0xd6db('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0xcecc63,_0x43654f,_0xa89c74){return new BPromise(function(_0x579c6d,_0x244a1a){return client[_0xd6db('0xa')](_0xcecc63,_0xa89c74)[_0xd6db('0xb')](function(_0x2a626b){logger[_0xd6db('0xc')](_0xd6db('0xd'),_0x43654f,'request\x20sent');logger['debug'](_0xd6db('0xe'),_0x43654f,'request\x20sent',JSON[_0xd6db('0xf')](_0x2a626b));if(_0x2a626b[_0xd6db('0x10')]){if(_0x2a626b[_0xd6db('0x10')][_0xd6db('0x11')]===0x1f4){logger[_0xd6db('0x10')](_0xd6db('0xd'),_0x43654f,_0x2a626b[_0xd6db('0x10')][_0xd6db('0x12')]);return _0x244a1a(_0x2a626b['error']['message']);}logger[_0xd6db('0x10')]('UserFaxQueue,\x20%s,\x20%s',_0x43654f,_0x2a626b['error'][_0xd6db('0x12')]);return _0x579c6d(_0x2a626b[_0xd6db('0x10')][_0xd6db('0x12')]);}else{logger['info'](_0xd6db('0xd'),_0x43654f,_0xd6db('0x13'));_0x579c6d(_0x2a626b[_0xd6db('0x14')][_0xd6db('0x12')]);}})[_0xd6db('0x15')](function(_0x26db2f){logger['error']('UserFaxQueue,\x20%s,\x20%s',_0x43654f,_0x26db2f);_0x244a1a(_0x26db2f);});});}
\ 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(_0x333aec,_0x1b4a29){var _0x157cef=function(_0x7fa4ea){while(--_0x7fa4ea){_0x333aec['push'](_0x333aec['shift']());}};_0x157cef(++_0x1b4a29);}(_0xe706,0xa3));var _0x6e70=function(_0x2a3653,_0x2b5804){_0x2a3653=_0x2a3653-0x0;var _0x2d9e61=_0xe706[_0x2a3653];return _0x2d9e61;};'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(_0x2d2f1a,_0x57b966){var _0x55d9db=function(_0x15771f){while(--_0x15771f){_0x2d2f1a['push'](_0x2d2f1a['shift']());}};_0x55d9db(++_0x57b966);}(_0xa9e0,0x123));var _0x0a9e=function(_0x25bea7,_0x49ab45){_0x25bea7=_0x25bea7-0x0;var _0x175952=_0xa9e0[_0x25bea7];return _0x175952;};'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 _0xa857=['sequelize'];(function(_0x3b88bb,_0x2f88f6){var _0x45abdf=function(_0x1723e5){while(--_0x1723e5){_0x3b88bb['push'](_0x3b88bb['shift']());}};_0x45abdf(++_0x2f88f6);}(_0xa857,0x73));var _0x7a85=function(_0x4dfe1e,_0xbe30fe){_0x4dfe1e=_0x4dfe1e-0x0;var _0x53bead=_0xa857[_0x4dfe1e];return _0x53bead;};'use strict';var Sequelize=require(_0x7a85('0x0'));module['exports']={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x3b0d=['INTEGER','sequelize'];(function(_0x1d501e,_0xded069){var _0x23910a=function(_0x413548){while(--_0x413548){_0x1d501e['push'](_0x1d501e['shift']());}};_0x23910a(++_0xded069);}(_0x3b0d,0xf9));var _0xd3b0=function(_0x31d3fa,_0x4c621e){_0x31d3fa=_0x31d3fa-0x0;var _0x512a9c=_0x3b0d[_0x31d3fa];return _0x512a9c;};'use strict';var Sequelize=require(_0xd3b0('0x0'));module['exports']={'penalty':{'type':Sequelize[_0xd3b0('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c3a=['rimraf','./userMailQueue.attributes','exports','UserMailQueue','user_has_mail_queues','util','../../config/logger','request-promise','path'];(function(_0x17e735,_0x328f40){var _0x1824d6=function(_0x4460fe){while(--_0x4460fe){_0x17e735['push'](_0x17e735['shift']());}};_0x1824d6(++_0x328f40);}(_0x8c3a,0x1be));var _0xa8c3=function(_0x4aa40f,_0x1a98fa){_0x4aa40f=_0x4aa40f-0x0;var _0x2278de=_0x8c3a[_0x4aa40f];return _0x2278de;};'use strict';var _=require('lodash');var util=require(_0xa8c3('0x0'));var logger=require(_0xa8c3('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xa8c3('0x2'));var fs=require('fs');var path=require(_0xa8c3('0x3'));var rimraf=require(_0xa8c3('0x4'));var config=require('../../config/environment');var attributes=require(_0xa8c3('0x5'));module[_0xa8c3('0x6')]=function(_0x29a2f5,_0xee54b7){return _0x29a2f5['define'](_0xa8c3('0x7'),attributes,{'tableName':_0xa8c3('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x58f0=['path','rimraf','../../config/environment','define','UserMailQueue','user_has_mail_queues','lodash','../../config/logger','moment','bluebird','request-promise'];(function(_0x57bd4f,_0x42a4f5){var _0x25c08f=function(_0x5a3585){while(--_0x5a3585){_0x57bd4f['push'](_0x57bd4f['shift']());}};_0x25c08f(++_0x42a4f5);}(_0x58f0,0x1df));var _0x058f=function(_0x20d9df,_0x135273){_0x20d9df=_0x20d9df-0x0;var _0x1980f8=_0x58f0[_0x20d9df];return _0x1980f8;};'use strict';var _=require(_0x058f('0x0'));var util=require('util');var logger=require(_0x058f('0x1'))('api');var moment=require(_0x058f('0x2'));var BPromise=require(_0x058f('0x3'));var rp=require(_0x058f('0x4'));var fs=require('fs');var path=require(_0x058f('0x5'));var rimraf=require(_0x058f('0x6'));var config=require(_0x058f('0x7'));var attributes=require('./userMailQueue.attributes');module['exports']=function(_0x534356,_0x533f8c){return _0x534356[_0x058f('0x8')](_0x058f('0x9'),attributes,{'tableName':_0x058f('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','UserMailQueue,\x20%s,\x20%s','request\x20sent','debug','UserMailQueue,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x3f6d14,_0x3b66e3){var _0xa2678d=function(_0x2a2728){while(--_0x2a2728){_0x3f6d14['push'](_0x3f6d14['shift']());}};_0xa2678d(++_0x3b66e3);}(_0x9957,0x93));var _0x7995=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0x9957[_0x1ac595];return _0x455fff;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var moment=require(_0x7995('0x2'));var BPromise=require(_0x7995('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7995('0x4'));var db=require(_0x7995('0x5'))['db'];var utils=require(_0x7995('0x6'));var logger=require(_0x7995('0x7'))('rpc');var config=require(_0x7995('0x8'));var jayson=require(_0x7995('0x9'));var client=jayson[_0x7995('0xa')][_0x7995('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xbda126,_0x326741,_0x4996ca){return new BPromise(function(_0x465276,_0x1cad37){return client['request'](_0xbda126,_0x4996ca)[_0x7995('0xc')](function(_0x3116fb){logger[_0x7995('0xd')](_0x7995('0xe'),_0x326741,_0x7995('0xf'));logger[_0x7995('0x10')](_0x7995('0x11'),_0x326741,'request\x20sent',JSON[_0x7995('0x12')](_0x3116fb));if(_0x3116fb[_0x7995('0x13')]){if(_0x3116fb['error'][_0x7995('0x14')]===0x1f4){logger[_0x7995('0x13')](_0x7995('0xe'),_0x326741,_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);return _0x1cad37(_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);}logger['error']('UserMailQueue,\x20%s,\x20%s',_0x326741,_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);return _0x465276(_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);}else{logger[_0x7995('0xd')](_0x7995('0xe'),_0x326741,_0x7995('0xf'));_0x465276(_0x3116fb[_0x7995('0x16')]['message']);}})[_0x7995('0x17')](function(_0x565d97){logger[_0x7995('0x13')](_0x7995('0xe'),_0x326741,_0x565d97);_0x1cad37(_0x565d97);});});}
\ No newline at end of file
+var _0x8ef6=['result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','UserMailQueue,\x20%s,\x20%s','request\x20sent','debug','UserMailQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x4b0291,_0x365156){var _0x24834c=function(_0x5bd17e){while(--_0x5bd17e){_0x4b0291['push'](_0x4b0291['shift']());}};_0x24834c(++_0x365156);}(_0x8ef6,0xf2));var _0x68ef=function(_0x5dcf26,_0x2f9992){_0x5dcf26=_0x5dcf26-0x0;var _0x5f1188=_0x8ef6[_0x5dcf26];return _0x5f1188;};'use strict';var _=require(_0x68ef('0x0'));var util=require(_0x68ef('0x1'));var moment=require(_0x68ef('0x2'));var BPromise=require(_0x68ef('0x3'));var rs=require(_0x68ef('0x4'));var fs=require('fs');var Redis=require(_0x68ef('0x5'));var db=require(_0x68ef('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x68ef('0x7'))(_0x68ef('0x8'));var config=require(_0x68ef('0x9'));var jayson=require(_0x68ef('0xa'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3c2ff3,_0x4740e8,_0x2de776){return new BPromise(function(_0x4eb5eb,_0x228967){return client[_0x68ef('0xb')](_0x3c2ff3,_0x2de776)[_0x68ef('0xc')](function(_0x22ae26){logger[_0x68ef('0xd')](_0x68ef('0xe'),_0x4740e8,_0x68ef('0xf'));logger[_0x68ef('0x10')](_0x68ef('0x11'),_0x4740e8,_0x68ef('0xf'),JSON[_0x68ef('0x12')](_0x22ae26));if(_0x22ae26[_0x68ef('0x13')]){if(_0x22ae26['error'][_0x68ef('0x14')]===0x1f4){logger[_0x68ef('0x13')](_0x68ef('0xe'),_0x4740e8,_0x22ae26[_0x68ef('0x13')][_0x68ef('0x15')]);return _0x228967(_0x22ae26[_0x68ef('0x13')]['message']);}logger[_0x68ef('0x13')](_0x68ef('0xe'),_0x4740e8,_0x22ae26[_0x68ef('0x13')]['message']);return _0x4eb5eb(_0x22ae26[_0x68ef('0x13')][_0x68ef('0x15')]);}else{logger[_0x68ef('0xd')]('UserMailQueue,\x20%s,\x20%s',_0x4740e8,_0x68ef('0xf'));_0x4eb5eb(_0x22ae26[_0x68ef('0x16')][_0x68ef('0x15')]);}})[_0x68ef('0x17')](function(_0x5c4456){logger[_0x68ef('0x13')]('UserMailQueue,\x20%s,\x20%s',_0x4740e8,_0x5c4456);_0x228967(_0x5c4456);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa6b7=['../../config/environment','post','isAuthenticated','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x468c87,_0x3ecc35){var _0x3a9381=function(_0x6a0add){while(--_0x6a0add){_0x468c87['push'](_0x468c87['shift']());}};_0x3a9381(++_0x3ecc35);}(_0xa6b7,0x17a));var _0x7a6b=function(_0xbeb808,_0x881ddf){_0xbeb808=_0xbeb808-0x0;var _0x5d6909=_0xa6b7[_0xbeb808];return _0x5d6909;};'use strict';var multer=require('multer');var util=require(_0x7a6b('0x0'));var path=require(_0x7a6b('0x1'));var timeout=require(_0x7a6b('0x2'));var express=require(_0x7a6b('0x3'));var router=express[_0x7a6b('0x4')]();var fs_extra=require(_0x7a6b('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x7a6b('0x6'));var config=require(_0x7a6b('0x7'));var controller=require('./userNotification.controller');router[_0x7a6b('0x8')]('/',auth[_0x7a6b('0x9')](),controller['sendUserNotification']);module[_0x7a6b('0xa')]=router;
\ No newline at end of file
+var _0xb402=['../../config/environment','./userNotification.controller','post','sendUserNotification','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0xbf1132,_0x176b34){var _0xe63ce4=function(_0x52d8ed){while(--_0x52d8ed){_0xbf1132['push'](_0xbf1132['shift']());}};_0xe63ce4(++_0x176b34);}(_0xb402,0x7a));var _0x2b40=function(_0x1b64dd,_0x2cf769){_0x1b64dd=_0x1b64dd-0x0;var _0xeb464c=_0xb402[_0x1b64dd];return _0xeb464c;};'use strict';var multer=require(_0x2b40('0x0'));var util=require(_0x2b40('0x1'));var path=require('path');var timeout=require(_0x2b40('0x2'));var express=require(_0x2b40('0x3'));var router=express[_0x2b40('0x4')]();var fs_extra=require(_0x2b40('0x5'));var auth=require(_0x2b40('0x6'));var interaction=require(_0x2b40('0x7'));var config=require(_0x2b40('0x8'));var controller=require(_0x2b40('0x9'));router[_0x2b40('0xa')]('/',auth['isAuthenticated'](),controller[_0x2b40('0xb')]);module[_0x2b40('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3cb=['sequelize','exports','STRING','BOOLEAN'];(function(_0x52c57c,_0x798d44){var _0x4ac9e0=function(_0x499067){while(--_0x499067){_0x52c57c['push'](_0x52c57c['shift']());}};_0x4ac9e0(++_0x798d44);}(_0xf3cb,0x90));var _0xbf3c=function(_0x2f35b9,_0x5159dc){_0x2f35b9=_0x2f35b9-0x0;var _0x512d15=_0xf3cb[_0x2f35b9];return _0x512d15;};'use strict';var Sequelize=require(_0xbf3c('0x0'));module[_0xbf3c('0x1')]={'body':{'type':Sequelize['TEXT']},'senderName':{'type':Sequelize[_0xbf3c('0x2')]},'recipientsId':{'type':Sequelize['TEXT']},'recipientsDescription':{'type':Sequelize[_0xbf3c('0x2')]},'beep':{'type':Sequelize[_0xbf3c('0x3')]}};
\ No newline at end of file
+var _0x6a28=['exports','STRING','TEXT','sequelize'];(function(_0x55821d,_0x27a22e){var _0x58ea8a=function(_0x5bdd3d){while(--_0x5bdd3d){_0x55821d['push'](_0x55821d['shift']());}};_0x58ea8a(++_0x27a22e);}(_0x6a28,0x1c7));var _0x86a2=function(_0x156a32,_0xeefb67){_0x156a32=_0x156a32-0x0;var _0x37939b=_0x6a28[_0x156a32];return _0x37939b;};'use strict';var Sequelize=require(_0x86a2('0x0'));module[_0x86a2('0x1')]={'body':{'type':Sequelize['TEXT']},'senderName':{'type':Sequelize[_0x86a2('0x2')]},'recipientsId':{'type':Sequelize[_0x86a2('0x3')]},'recipientsDescription':{'type':Sequelize[_0x86a2('0x2')]},'beep':{'type':Sequelize['BOOLEAN']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef0e=['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','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','localhost','socket.io-emitter','./userNotification.socket','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','then','destroy','error','name','sendUserNotification','hasOwnProperty','text','body','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','Missing\x20\x27view\x27\x20parameter','Missing\x20\x27recipients\x27\x20parameter','recipients','Invalid\x20\x27recipients\x27\x20object','faxqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','isEmpty','recipientsDescription','SenderId','join','UserNotification','create','beep','forEach','recipient','emit','userNotification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','view','startCase','User','union','queue','replace','Queue','push','getAgents','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xef0e,0x124));var _0xeef0=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0xef0e[_0x178e48];return _0x440d7e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xeef0('0x0'));var zipdir=require(_0xeef0('0x1'));var jsonpatch=require(_0xeef0('0x2'));var rp=require(_0xeef0('0x3'));var moment=require(_0xeef0('0x4'));var BPromise=require(_0xeef0('0x5'));var Mustache=require('mustache');var util=require(_0xeef0('0x6'));var path=require(_0xeef0('0x7'));var sox=require(_0xeef0('0x8'));var csv=require(_0xeef0('0x9'));var ejs=require(_0xeef0('0xa'));var fs=require('fs');var fs_extra=require(_0xeef0('0xb'));var _=require(_0xeef0('0xc'));var squel=require(_0xeef0('0xd'));var crypto=require(_0xeef0('0xe'));var jsforce=require(_0xeef0('0xf'));var deskjs=require(_0xeef0('0x10'));var toCsv=require(_0xeef0('0x9'));var querystring=require(_0xeef0('0x11'));var Papa=require(_0xeef0('0x12'));var Redis=require(_0xeef0('0x13'));var authService=require(_0xeef0('0x14'));var qs=require(_0xeef0('0x15'));var as=require(_0xeef0('0x16'));var hardwareService=require(_0xeef0('0x17'));var logger=require(_0xeef0('0x18'))('api');var utils=require(_0xeef0('0x19'));var config=require(_0xeef0('0x1a'));var licenseUtil=require(_0xeef0('0x1b'));var db=require(_0xeef0('0x1c'))['db'];config['redis']=_['defaults'](config['redis'],{'host':_0xeef0('0x1d'),'port':0x18eb});var socket=require(_0xeef0('0x1e'))(new Redis(config['redis']));require(_0xeef0('0x1f'))['register'](socket);function respondWithStatusCode(_0x38f515,_0x452945){_0x452945=_0x452945||0xcc;return function(_0x3e1640){if(_0x3e1640){return _0x38f515[_0xeef0('0x20')](_0x452945);}return _0x38f515[_0xeef0('0x21')](_0x452945)[_0xeef0('0x22')]();};}function respondWithResult(_0x11ed27,_0x3696ad){_0x3696ad=_0x3696ad||0xc8;return function(_0x191261){if(_0x191261){return _0x11ed27[_0xeef0('0x21')](_0x3696ad)[_0xeef0('0x23')](_0x191261);}};}function respondWithFilteredResult(_0x5af666,_0x2523aa){return function(_0x4ce3df){if(_0x4ce3df){var _0x1fa227=typeof _0x2523aa[_0xeef0('0x24')]===_0xeef0('0x25')&&typeof _0x2523aa[_0xeef0('0x26')]==='undefined';var _0x4213a1=_0x4ce3df[_0xeef0('0x27')];var _0x14f609=_0x1fa227?0x0:_0x2523aa[_0xeef0('0x24')];var _0x1f1ab2=_0x1fa227?_0x4ce3df['count']:_0x2523aa['offset']+_0x2523aa[_0xeef0('0x26')];var _0x2170e3;if(_0x1f1ab2>=_0x4213a1){_0x1f1ab2=_0x4213a1;_0x2170e3=0xc8;}else{_0x2170e3=0xce;}_0x5af666['status'](_0x2170e3);return _0x5af666['set'](_0xeef0('0x28'),_0x14f609+'-'+_0x1f1ab2+'/'+_0x4213a1)[_0xeef0('0x23')](_0x4ce3df);}return null;};}function patchUpdates(_0x35c0a2){return function(_0x14020d){try{jsonpatch[_0xeef0('0x29')](_0x14020d,_0x35c0a2,!![]);}catch(_0x40b887){return BPromise[_0xeef0('0x2a')](_0x40b887);}return _0x14020d[_0xeef0('0x2b')]();};}function saveUpdates(_0x24097e,_0x3c1767){return function(_0x2429e9){if(_0x2429e9){return _0x2429e9['update'](_0x24097e)[_0xeef0('0x2c')](function(_0x17ab7c){return _0x17ab7c;});}return null;};}function removeEntity(_0x1d0d99,_0x72aa9a){return function(_0x156102){if(_0x156102){return _0x156102[_0xeef0('0x2d')]()[_0xeef0('0x2c')](function(){_0x1d0d99[_0xeef0('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x241274,_0x1ac0db){return function(_0x52d89d){if(!_0x52d89d){_0x241274[_0xeef0('0x20')](0x194);}return _0x52d89d;};}function handleError(_0x359f42,_0x87473c){_0x87473c=_0x87473c||0x1f4;return function(_0x1d1a63){logger[_0xeef0('0x2e')](_0x1d1a63['stack']);if(_0x1d1a63[_0xeef0('0x2f')]){delete _0x1d1a63['name'];}_0x359f42['status'](_0x87473c)['send'](_0x1d1a63);};}exports[_0xeef0('0x30')]=function(_0x581a02,_0x57d16a,_0x51ad7f){if(!_0x581a02['body'][_0xeef0('0x31')](_0xeef0('0x32'))&&!_0x581a02[_0xeef0('0x33')][_0xeef0('0x31')](_0xeef0('0x34'))){throw new db[(_0xeef0('0x35'))][(_0xeef0('0x36'))](_0xeef0('0x37'));}else{if(_0x581a02['body'][_0xeef0('0x31')](_0xeef0('0x34'))&&!_0x581a02[_0xeef0('0x33')][_0xeef0('0x31')]('view')){throw new db[(_0xeef0('0x35'))][(_0xeef0('0x36'))](_0xeef0('0x38'));}if(!_0x581a02[_0xeef0('0x33')][_0xeef0('0x31')]('recipients')){throw new db['Sequelize']['ValidationError'](_0xeef0('0x39'));}else{try{var _0x3ac56a=JSON['parse'](_0x581a02[_0xeef0('0x33')][_0xeef0('0x3a')]);}catch(_0x6b5195){logger[_0xeef0('0x2e')](_0x6b5195);throw new db[(_0xeef0('0x35'))]['ValidationError'](_0xeef0('0x3b'));}var _0x4211bc=['chatqueue',_0xeef0('0x3c'),_0xeef0('0x3d'),_0xeef0('0x3e'),_0xeef0('0x3f'),_0xeef0('0x40'),_0xeef0('0x41'),_0xeef0('0x42'),_0xeef0('0x43')];if(_[_0xeef0('0x44')](_0x3ac56a,function(_0x3b658e){return!_[_0xeef0('0x45')](_0x4211bc,_0x3b658e[_0xeef0('0x46')][_0xeef0('0x47')]());})){throw new db[(_0xeef0('0x35'))][(_0xeef0('0x36'))](_0xeef0('0x48'));}}}var _0x2fe11e={};_0x2fe11e[_0xeef0('0x49')]=_0x581a02[_0xeef0('0x33')][_0xeef0('0x31')](_0xeef0('0x49'))?_0x581a02[_0xeef0('0x33')][_0xeef0('0x49')]:_0x581a02[_0xeef0('0x43')]['fullname'];_0x2fe11e['recipientsDescription']=_[_0xeef0('0x4a')](_0x581a02[_0xeef0('0x33')][_0xeef0('0x4b')])?null:_0x581a02[_0xeef0('0x33')]['recipientsDescription'];_0x2fe11e['beep']=_0x581a02[_0xeef0('0x33')]['beep']||![];_0x2fe11e[_0xeef0('0x4c')]=_0x581a02[_0xeef0('0x43')]['id'];return getContent(_0x581a02[_0xeef0('0x33')])[_0xeef0('0x2c')](function(_0x33eb4d){_0x2fe11e['body']=_0x33eb4d;return getRecipients(_0x3ac56a);})[_0xeef0('0x2c')](function(_0x203999){_0x2fe11e['recipientsId']=_['sortBy'](_0x203999)[_0xeef0('0x4d')](',');return db['sequelize']['transaction'](function(_0x5ca490){return db[_0xeef0('0x4e')][_0xeef0('0x4f')](_0x2fe11e,{'raw':!![],'transaction':_0x5ca490})['then'](function(_0x2edde4){var _0x21f05b={'sender':_0x2fe11e[_0xeef0('0x49')],'description':_0x2fe11e[_0xeef0('0x4b')],'content':_0x2fe11e['body'],'beep':_0x2fe11e[_0xeef0('0x50')]};_0x203999[_0xeef0('0x51')](function(_0x2164e6){_0x21f05b[_0xeef0('0x52')]=_0x2164e6;socket[_0xeef0('0x53')](_0xeef0('0x54'),_0x21f05b);});return _0x2edde4;});});})[_0xeef0('0x2c')](respondWithResult(_0x57d16a,0xc9))[_0xeef0('0x55')](handleError(_0x57d16a,null));};function getContent(_0x4a053a){return new BPromise(function(_0x3d858c,_0x544f98){if(_0x4a053a[_0xeef0('0x32')]){_0x3d858c(_0x4a053a[_0xeef0('0x32')]);return;}return db[_0xeef0('0x56')][_0xeef0('0x57')]({'attributes':[_0xeef0('0x58')],'where':{'id':_0x4a053a[_0xeef0('0x34')]},'raw':!![]})[_0xeef0('0x2c')](function(_0x5a5a9a){if(!_0x5a5a9a)throw new db[(_0xeef0('0x35'))][(_0xeef0('0x36'))](_0xeef0('0x59'));var _0x2c5cb5=Mustache[_0xeef0('0x5a')](_0x5a5a9a[_0xeef0('0x58')],_0x4a053a[_0xeef0('0x5b')]);_0x3d858c(_0x2c5cb5);})[_0xeef0('0x55')](function(_0xfbfdce){_0x544f98(_0xfbfdce);});});}function getRecipients(_0x16d95c){return new BPromise(function(_0x450a9e,_0x339c29){var _0x115204=[];var _0x14c6dc=[];_0x16d95c[_0xeef0('0x51')](function(_0x4936d6){var _0x3ac88a=_[_0xeef0('0x5c')](_0x4936d6[_0xeef0('0x46')][_0xeef0('0x47')]());if(_0x3ac88a===_0xeef0('0x5d')){_0x115204=_[_0xeef0('0x5e')](_0x115204,_0x4936d6['ids']);}else{if(_[_0xeef0('0x45')](_0x3ac88a,_0xeef0('0x5f')))_0x3ac88a=_0x3ac88a[_0xeef0('0x60')]('queue',_0xeef0('0x61'));_0x4936d6['ids'][_0xeef0('0x51')](function(_0x2bbaf1){_0x14c6dc[_0xeef0('0x62')](getAgents(_0x3ac88a,_0x2bbaf1));});}});return BPromise['all'](_0x14c6dc)[_0xeef0('0x2c')](function(_0x940a7d){_0x115204=_[_0xeef0('0x5e')](_0x115204,_['flatten'](_0x940a7d));_0x450a9e(_0x115204);})['catch'](function(_0x40e778){_0x339c29(_0x40e778);});});}function getAgents(_0x523392,_0x2cab44){return new BPromise(function(_0x347f7a,_0x179629){return db[_0x523392][_0xeef0('0x57')]({'where':{'id':_0x2cab44}})[_0xeef0('0x2c')](function(_0x5445bf){return _0x5445bf[_0xeef0('0x63')]({'attributes':['id'],'raw':!![]})['then'](function(_0x12a59e){var _0x5ab329=_['map'](_0x12a59e,'id');_0x347f7a(_0x5ab329);});})['catch'](function(_0x121ea1){_0x179629(_0x121ea1);});});}
\ No newline at end of file
+var _0xbff8=['destroy','error','stack','name','send','sendUserNotification','body','hasOwnProperty','text','TemplateId','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','Missing\x20\x27recipients\x27\x20parameter','parse','recipients','faxqueue','mailqueue','openchannelqueue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','sortBy','join','sequelize','transaction','UserNotification','recipient','emit','userNotification:send','catch','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','html','forEach','startCase','User','union','queue','replace','Queue','ids','push','all','flatten','map','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','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','../../mysqldb','redis','defaults','socket.io-emitter','./userNotification.socket','sendStatus','end','status','json','offset','undefined','count','limit','Content-Range','apply','save','update','then'];(function(_0xd73f73,_0x52e92d){var _0x5516a8=function(_0x5efc2c){while(--_0x5efc2c){_0xd73f73['push'](_0xd73f73['shift']());}};_0x5516a8(++_0x52e92d);}(_0xbff8,0x1c8));var _0x8bff=function(_0x29d44d,_0x28805d){_0x29d44d=_0x29d44d-0x0;var _0x5bd0fd=_0xbff8[_0x29d44d];return _0x5bd0fd;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8bff('0x0'));var zipdir=require(_0x8bff('0x1'));var jsonpatch=require(_0x8bff('0x2'));var rp=require('request-promise');var moment=require(_0x8bff('0x3'));var BPromise=require(_0x8bff('0x4'));var Mustache=require(_0x8bff('0x5'));var util=require(_0x8bff('0x6'));var path=require(_0x8bff('0x7'));var sox=require(_0x8bff('0x8'));var csv=require(_0x8bff('0x9'));var ejs=require(_0x8bff('0xa'));var fs=require('fs');var fs_extra=require(_0x8bff('0xb'));var _=require(_0x8bff('0xc'));var squel=require(_0x8bff('0xd'));var crypto=require('crypto');var jsforce=require(_0x8bff('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x8bff('0x9'));var querystring=require(_0x8bff('0xf'));var Papa=require(_0x8bff('0x10'));var Redis=require(_0x8bff('0x11'));var authService=require(_0x8bff('0x12'));var qs=require(_0x8bff('0x13'));var as=require(_0x8bff('0x14'));var hardwareService=require(_0x8bff('0x15'));var logger=require(_0x8bff('0x16'))(_0x8bff('0x17'));var utils=require(_0x8bff('0x18'));var config=require(_0x8bff('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x8bff('0x1a'))['db'];config[_0x8bff('0x1b')]=_[_0x8bff('0x1c')](config[_0x8bff('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0x8bff('0x1d'))(new Redis(config['redis']));require(_0x8bff('0x1e'))['register'](socket);function respondWithStatusCode(_0x34c428,_0x53751c){_0x53751c=_0x53751c||0xcc;return function(_0x542b31){if(_0x542b31){return _0x34c428[_0x8bff('0x1f')](_0x53751c);}return _0x34c428['status'](_0x53751c)[_0x8bff('0x20')]();};}function respondWithResult(_0x13e3d4,_0x483a2e){_0x483a2e=_0x483a2e||0xc8;return function(_0x1c92d4){if(_0x1c92d4){return _0x13e3d4[_0x8bff('0x21')](_0x483a2e)[_0x8bff('0x22')](_0x1c92d4);}};}function respondWithFilteredResult(_0x3deea0,_0x531692){return function(_0x479439){if(_0x479439){var _0x2367d9=typeof _0x531692[_0x8bff('0x23')]===_0x8bff('0x24')&&typeof _0x531692['limit']===_0x8bff('0x24');var _0x203120=_0x479439[_0x8bff('0x25')];var _0x5bb2fa=_0x2367d9?0x0:_0x531692['offset'];var _0x1eca92=_0x2367d9?_0x479439[_0x8bff('0x25')]:_0x531692[_0x8bff('0x23')]+_0x531692[_0x8bff('0x26')];var _0x250dc1;if(_0x1eca92>=_0x203120){_0x1eca92=_0x203120;_0x250dc1=0xc8;}else{_0x250dc1=0xce;}_0x3deea0[_0x8bff('0x21')](_0x250dc1);return _0x3deea0['set'](_0x8bff('0x27'),_0x5bb2fa+'-'+_0x1eca92+'/'+_0x203120)['json'](_0x479439);}return null;};}function patchUpdates(_0x3da98d){return function(_0x19030d){try{jsonpatch[_0x8bff('0x28')](_0x19030d,_0x3da98d,!![]);}catch(_0x4b86ca){return BPromise['reject'](_0x4b86ca);}return _0x19030d[_0x8bff('0x29')]();};}function saveUpdates(_0x358139,_0x6a7527){return function(_0x353e58){if(_0x353e58){return _0x353e58[_0x8bff('0x2a')](_0x358139)[_0x8bff('0x2b')](function(_0xcdc11a){return _0xcdc11a;});}return null;};}function removeEntity(_0xd94070,_0xf6a835){return function(_0x446cb6){if(_0x446cb6){return _0x446cb6[_0x8bff('0x2c')]()[_0x8bff('0x2b')](function(){_0xd94070['status'](0xcc)[_0x8bff('0x20')]();});}};}function handleEntityNotFound(_0x567093,_0x258dec){return function(_0x1c366c){if(!_0x1c366c){_0x567093['sendStatus'](0x194);}return _0x1c366c;};}function handleError(_0x1b3126,_0x2fc199){_0x2fc199=_0x2fc199||0x1f4;return function(_0x2343ca){logger[_0x8bff('0x2d')](_0x2343ca[_0x8bff('0x2e')]);if(_0x2343ca[_0x8bff('0x2f')]){delete _0x2343ca[_0x8bff('0x2f')];}_0x1b3126['status'](_0x2fc199)[_0x8bff('0x30')](_0x2343ca);};}exports[_0x8bff('0x31')]=function(_0x2cfe21,_0x312732,_0xf41295){if(!_0x2cfe21[_0x8bff('0x32')][_0x8bff('0x33')](_0x8bff('0x34'))&&!_0x2cfe21['body']['hasOwnProperty'](_0x8bff('0x35'))){throw new db[(_0x8bff('0x36'))][(_0x8bff('0x37'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x2cfe21[_0x8bff('0x32')][_0x8bff('0x33')]('TemplateId')&&!_0x2cfe21[_0x8bff('0x32')]['hasOwnProperty'](_0x8bff('0x38'))){throw new db[(_0x8bff('0x36'))]['ValidationError'](_0x8bff('0x39'));}if(!_0x2cfe21[_0x8bff('0x32')][_0x8bff('0x33')]('recipients')){throw new db['Sequelize'][(_0x8bff('0x37'))](_0x8bff('0x3a'));}else{try{var _0x490079=JSON[_0x8bff('0x3b')](_0x2cfe21[_0x8bff('0x32')][_0x8bff('0x3c')]);}catch(_0x21e2ee){logger[_0x8bff('0x2d')](_0x21e2ee);throw new db['Sequelize'][(_0x8bff('0x37'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x19c41f=['chatqueue',_0x8bff('0x3d'),_0x8bff('0x3e'),_0x8bff('0x3f'),'smsqueue','voicequeue','whatsappqueue',_0x8bff('0x40'),_0x8bff('0x41')];if(_[_0x8bff('0x42')](_0x490079,function(_0x2447a7){return!_[_0x8bff('0x43')](_0x19c41f,_0x2447a7[_0x8bff('0x44')][_0x8bff('0x45')]());})){throw new db['Sequelize'][(_0x8bff('0x37'))](_0x8bff('0x46'));}}}var _0x221eb7={};_0x221eb7[_0x8bff('0x47')]=_0x2cfe21[_0x8bff('0x32')][_0x8bff('0x33')]('senderName')?_0x2cfe21[_0x8bff('0x32')][_0x8bff('0x47')]:_0x2cfe21['user'][_0x8bff('0x48')];_0x221eb7[_0x8bff('0x49')]=_[_0x8bff('0x4a')](_0x2cfe21[_0x8bff('0x32')][_0x8bff('0x49')])?null:_0x2cfe21['body'][_0x8bff('0x49')];_0x221eb7[_0x8bff('0x4b')]=_0x2cfe21[_0x8bff('0x32')][_0x8bff('0x4b')]||![];_0x221eb7['SenderId']=_0x2cfe21[_0x8bff('0x41')]['id'];return getContent(_0x2cfe21['body'])[_0x8bff('0x2b')](function(_0x8b4bc8){_0x221eb7[_0x8bff('0x32')]=_0x8b4bc8;return getRecipients(_0x490079);})[_0x8bff('0x2b')](function(_0x11456b){_0x221eb7['recipientsId']=_[_0x8bff('0x4c')](_0x11456b)[_0x8bff('0x4d')](',');return db[_0x8bff('0x4e')][_0x8bff('0x4f')](function(_0x599dab){return db[_0x8bff('0x50')]['create'](_0x221eb7,{'raw':!![],'transaction':_0x599dab})[_0x8bff('0x2b')](function(_0x290998){var _0x9bdc08={'sender':_0x221eb7['senderName'],'description':_0x221eb7[_0x8bff('0x49')],'content':_0x221eb7[_0x8bff('0x32')],'beep':_0x221eb7[_0x8bff('0x4b')]};_0x11456b['forEach'](function(_0x339a15){_0x9bdc08[_0x8bff('0x51')]=_0x339a15;socket[_0x8bff('0x52')](_0x8bff('0x53'),_0x9bdc08);});return _0x290998;});});})[_0x8bff('0x2b')](respondWithResult(_0x312732,0xc9))[_0x8bff('0x54')](handleError(_0x312732,null));};function getContent(_0x1afd86){return new BPromise(function(_0x33424f,_0x5e1f6e){if(_0x1afd86[_0x8bff('0x34')]){_0x33424f(_0x1afd86['text']);return;}return db['Template'][_0x8bff('0x55')]({'attributes':['html'],'where':{'id':_0x1afd86[_0x8bff('0x35')]},'raw':!![]})[_0x8bff('0x2b')](function(_0x5aaadd){if(!_0x5aaadd)throw new db[(_0x8bff('0x36'))][(_0x8bff('0x37'))](_0x8bff('0x56'));var _0x39d0dd=Mustache['render'](_0x5aaadd[_0x8bff('0x57')],_0x1afd86[_0x8bff('0x38')]);_0x33424f(_0x39d0dd);})[_0x8bff('0x54')](function(_0x361ae3){_0x5e1f6e(_0x361ae3);});});}function getRecipients(_0x47501c){return new BPromise(function(_0x1a722c,_0x324806){var _0x5e1c55=[];var _0x54dd4f=[];_0x47501c[_0x8bff('0x58')](function(_0x4382d8){var _0x48e4ff=_[_0x8bff('0x59')](_0x4382d8[_0x8bff('0x44')][_0x8bff('0x45')]());if(_0x48e4ff===_0x8bff('0x5a')){_0x5e1c55=_[_0x8bff('0x5b')](_0x5e1c55,_0x4382d8['ids']);}else{if(_['includes'](_0x48e4ff,_0x8bff('0x5c')))_0x48e4ff=_0x48e4ff[_0x8bff('0x5d')](_0x8bff('0x5c'),_0x8bff('0x5e'));_0x4382d8[_0x8bff('0x5f')]['forEach'](function(_0x43b47d){_0x54dd4f[_0x8bff('0x60')](getAgents(_0x48e4ff,_0x43b47d));});}});return BPromise[_0x8bff('0x61')](_0x54dd4f)[_0x8bff('0x2b')](function(_0xb8418){_0x5e1c55=_['union'](_0x5e1c55,_[_0x8bff('0x62')](_0xb8418));_0x1a722c(_0x5e1c55);})['catch'](function(_0x4c1a75){_0x324806(_0x4c1a75);});});}function getAgents(_0x2cf259,_0x25cb19){return new BPromise(function(_0x59d778,_0x194b03){return db[_0x2cf259][_0x8bff('0x55')]({'where':{'id':_0x25cb19}})[_0x8bff('0x2b')](function(_0x5e52c0){return _0x5e52c0['getAgents']({'attributes':['id'],'raw':!![]})[_0x8bff('0x2b')](function(_0x196cfb){var _0x1d5258=_[_0x8bff('0x63')](_0x196cfb,'id');_0x59d778(_0x1d5258);});})['catch'](function(_0x10487c){_0x194b03(_0x10487c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2cad=['events','UserNotification','save','update','remove','emit','hasOwnProperty','hook'];(function(_0x290d0f,_0x20f290){var _0x5f52f3=function(_0x286a4b){while(--_0x286a4b){_0x290d0f['push'](_0x290d0f['shift']());}};_0x5f52f3(++_0x20f290);}(_0x2cad,0x158));var _0xd2ca=function(_0x53b3ee,_0x12feb7){_0x53b3ee=_0x53b3ee-0x0;var _0x50fae3=_0x2cad[_0x53b3ee];return _0x50fae3;};'use strict';var EventEmitter=require(_0xd2ca('0x0'));var UserNotification=require('../../mysqldb')['db'][_0xd2ca('0x1')];var UserNotificationEvents=new EventEmitter();UserNotificationEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xd2ca('0x2'),'afterUpdate':_0xd2ca('0x3'),'afterDestroy':_0xd2ca('0x4')};function emitEvent(_0x5a9781){return function(_0xe95caa,_0x214555,_0x16a75a){UserNotificationEvents[_0xd2ca('0x5')](_0x5a9781+':'+_0xe95caa['id'],_0xe95caa);UserNotificationEvents[_0xd2ca('0x5')](_0x5a9781,_0xe95caa);_0x16a75a(null);};}for(var e in events){if(events[_0xd2ca('0x6')](e)){var event=events[e];UserNotification[_0xd2ca('0x7')](e,emitEvent(event));}}module['exports']=UserNotificationEvents;
\ No newline at end of file
+var _0xd879=['update','emit','hasOwnProperty','hook','exports','events','../../mysqldb','UserNotification','setMaxListeners','save'];(function(_0x2c9b76,_0x8dd364){var _0x1389f8=function(_0x3c4159){while(--_0x3c4159){_0x2c9b76['push'](_0x2c9b76['shift']());}};_0x1389f8(++_0x8dd364);}(_0xd879,0xaf));var _0x9d87=function(_0x3b30b0,_0x3af2bf){_0x3b30b0=_0x3b30b0-0x0;var _0x36b8e5=_0xd879[_0x3b30b0];return _0x36b8e5;};'use strict';var EventEmitter=require(_0x9d87('0x0'));var UserNotification=require(_0x9d87('0x1'))['db'][_0x9d87('0x2')];var UserNotificationEvents=new EventEmitter();UserNotificationEvents[_0x9d87('0x3')](0x0);var events={'afterCreate':_0x9d87('0x4'),'afterUpdate':_0x9d87('0x5'),'afterDestroy':'remove'};function emitEvent(_0x3c4894){return function(_0x2edac1,_0x26a82f,_0x1832cf){UserNotificationEvents[_0x9d87('0x6')](_0x3c4894+':'+_0x2edac1['id'],_0x2edac1);UserNotificationEvents['emit'](_0x3c4894,_0x2edac1);_0x1832cf(null);};}for(var e in events){if(events[_0x9d87('0x7')](e)){var event=events[e];UserNotification[_0x9d87('0x8')](e,emitEvent(event));}}module[_0x9d87('0x9')]=UserNotificationEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0197=['./userNotification.attributes','UserNotification','utf8mb4','utf8mb4_unicode_ci','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x213300,_0x20e270){var _0x4a7e7d=function(_0x291e35){while(--_0x291e35){_0x213300['push'](_0x213300['shift']());}};_0x4a7e7d(++_0x20e270);}(_0x0197,0x19c));var _0x7019=function(_0x2d9516,_0x44b885){_0x2d9516=_0x2d9516-0x0;var _0x491de=_0x0197[_0x2d9516];return _0x491de;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x7019('0x0'))(_0x7019('0x1'));var moment=require(_0x7019('0x2'));var BPromise=require(_0x7019('0x3'));var rp=require(_0x7019('0x4'));var fs=require('fs');var path=require(_0x7019('0x5'));var rimraf=require(_0x7019('0x6'));var config=require(_0x7019('0x7'));var attributes=require(_0x7019('0x8'));module['exports']=function(_0x2e597d,_0x3d753e){return _0x2e597d['define'](_0x7019('0x9'),attributes,{'tableName':'userNotifications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x7019('0xa'),'collate':_0x7019('0xb')});};
\ No newline at end of file
+var _0x81f3=['../../config/logger','api','moment','request-promise','rimraf','../../config/environment','userNotifications','util'];(function(_0x401cf2,_0x67904f){var _0x1a747f=function(_0x500d73){while(--_0x500d73){_0x401cf2['push'](_0x401cf2['shift']());}};_0x1a747f(++_0x67904f);}(_0x81f3,0xff));var _0x381f=function(_0x5bf6d0,_0x73c105){_0x5bf6d0=_0x5bf6d0-0x0;var _0x3d6fb3=_0x81f3[_0x5bf6d0];return _0x3d6fb3;};'use strict';var _=require('lodash');var util=require(_0x381f('0x0'));var logger=require(_0x381f('0x1'))(_0x381f('0x2'));var moment=require(_0x381f('0x3'));var BPromise=require('bluebird');var rp=require(_0x381f('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x381f('0x5'));var config=require(_0x381f('0x6'));var attributes=require('./userNotification.attributes');module['exports']=function(_0x381fd7,_0x343198){return _0x381fd7['define']('UserNotification',attributes,{'tableName':_0x381f('0x7'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2750=['defaults','localhost','socket.io-emitter','./userNotification.socket','register','then','info','UserNotification,\x20%s,\x20%s','request\x20sent','debug','UserNotification,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis'];(function(_0x25cc95,_0x4ec3b6){var _0x19f2c5=function(_0x3b97dc){while(--_0x3b97dc){_0x25cc95['push'](_0x25cc95['shift']());}};_0x19f2c5(++_0x4ec3b6);}(_0x2750,0x129));var _0x0275=function(_0x4bd7d1,_0x2cba33){_0x4bd7d1=_0x4bd7d1-0x0;var _0x46359f=_0x2750[_0x4bd7d1];return _0x46359f;};'use strict';var _=require(_0x0275('0x0'));var util=require(_0x0275('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x0275('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x0275('0x3'));var logger=require(_0x0275('0x4'))(_0x0275('0x5'));var config=require(_0x0275('0x6'));var jayson=require(_0x0275('0x7'));var client=jayson[_0x0275('0x8')][_0x0275('0x9')]({'port':0x232a});config[_0x0275('0xa')]=_[_0x0275('0xb')](config[_0x0275('0xa')],{'host':_0x0275('0xc'),'port':0x18eb});var socket=require(_0x0275('0xd'))(new Redis(config[_0x0275('0xa')]));require(_0x0275('0xe'))[_0x0275('0xf')](socket);function respondWithRpcPromise(_0x5abdb9,_0x2d2e4d,_0x283831){return new BPromise(function(_0x58edfc,_0x1fb1b8){return client['request'](_0x5abdb9,_0x283831)[_0x0275('0x10')](function(_0x59d353){logger[_0x0275('0x11')](_0x0275('0x12'),_0x2d2e4d,_0x0275('0x13'));logger[_0x0275('0x14')](_0x0275('0x15'),_0x2d2e4d,'request\x20sent',JSON[_0x0275('0x16')](_0x59d353));if(_0x59d353[_0x0275('0x17')]){if(_0x59d353['error'][_0x0275('0x18')]===0x1f4){logger[_0x0275('0x17')](_0x0275('0x12'),_0x2d2e4d,_0x59d353[_0x0275('0x17')][_0x0275('0x19')]);return _0x1fb1b8(_0x59d353['error'][_0x0275('0x19')]);}logger[_0x0275('0x17')]('UserNotification,\x20%s,\x20%s',_0x2d2e4d,_0x59d353[_0x0275('0x17')][_0x0275('0x19')]);return _0x58edfc(_0x59d353[_0x0275('0x17')][_0x0275('0x19')]);}else{logger[_0x0275('0x11')](_0x0275('0x12'),_0x2d2e4d,_0x0275('0x13'));_0x58edfc(_0x59d353[_0x0275('0x1a')][_0x0275('0x19')]);}})[_0x0275('0x1b')](function(_0x2f7e2e){logger['error']('UserNotification,\x20%s,\x20%s',_0x2d2e4d,_0x2f7e2e);_0x1fb1b8(_0x2f7e2e);});});}
\ No newline at end of file
+var _0xb508=['http','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','register','then','info','UserNotification,\x20%s,\x20%s','request\x20sent','debug','error','code','message','lodash','util','moment','randomstring','../../mysqldb','../../config/logger','rpc','client'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0xb508,0x151));var _0x8b50=function(_0x2a14ff,_0x3ddecc){_0x2a14ff=_0x2a14ff-0x0;var _0x22b6f7=_0xb508[_0x2a14ff];return _0x22b6f7;};'use strict';var _=require(_0x8b50('0x0'));var util=require(_0x8b50('0x1'));var moment=require(_0x8b50('0x2'));var BPromise=require('bluebird');var rs=require(_0x8b50('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8b50('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x8b50('0x5'))(_0x8b50('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x8b50('0x7')][_0x8b50('0x8')]({'port':0x232a});config[_0x8b50('0x9')]=_[_0x8b50('0xa')](config['redis'],{'host':_0x8b50('0xb'),'port':0x18eb});var socket=require(_0x8b50('0xc'))(new Redis(config['redis']));require(_0x8b50('0xd'))[_0x8b50('0xe')](socket);function respondWithRpcPromise(_0x26ced8,_0x4c7faf,_0x3b4a7f){return new BPromise(function(_0xdd5d0a,_0x2683b1){return client['request'](_0x26ced8,_0x3b4a7f)[_0x8b50('0xf')](function(_0x14f747){logger[_0x8b50('0x10')](_0x8b50('0x11'),_0x4c7faf,_0x8b50('0x12'));logger[_0x8b50('0x13')]('UserNotification,\x20%s,\x20%s,\x20%s',_0x4c7faf,_0x8b50('0x12'),JSON['stringify'](_0x14f747));if(_0x14f747['error']){if(_0x14f747[_0x8b50('0x14')][_0x8b50('0x15')]===0x1f4){logger[_0x8b50('0x14')]('UserNotification,\x20%s,\x20%s',_0x4c7faf,_0x14f747['error'][_0x8b50('0x16')]);return _0x2683b1(_0x14f747[_0x8b50('0x14')][_0x8b50('0x16')]);}logger[_0x8b50('0x14')](_0x8b50('0x11'),_0x4c7faf,_0x14f747[_0x8b50('0x14')]['message']);return _0xdd5d0a(_0x14f747[_0x8b50('0x14')][_0x8b50('0x16')]);}else{logger['info'](_0x8b50('0x11'),_0x4c7faf,_0x8b50('0x12'));_0xdd5d0a(_0x14f747['result'][_0x8b50('0x16')]);}})['catch'](function(_0x1bff5e){logger['error'](_0x8b50('0x11'),_0x4c7faf,_0x1bff5e);_0x2683b1(_0x1bff5e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe550=['emit','removeListener','register','length','userNotification:','./userNotification.events','remove'];(function(_0x33ba78,_0xbcaa2d){var _0x24a8a8=function(_0x2c25f5){while(--_0x2c25f5){_0x33ba78['push'](_0x33ba78['shift']());}};_0x24a8a8(++_0xbcaa2d);}(_0xe550,0x1be));var _0x0e55=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xe550[_0x14add3];return _0x4a174f;};'use strict';var UserNotificationEvents=require(_0x0e55('0x0'));var events=['save',_0x0e55('0x1'),'update'];function createListener(_0x1f77bb,_0x2a44f4){return function(_0x2e6940){_0x2a44f4[_0x0e55('0x2')](_0x1f77bb,_0x2e6940);};}function removeListener(_0x60d93c,_0xdea925){return function(){UserNotificationEvents[_0x0e55('0x3')](_0x60d93c,_0xdea925);};}exports[_0x0e55('0x4')]=function(_0x2f46e8){for(var _0x47827f=0x0,_0x4dacdb=events[_0x0e55('0x5')];_0x47827f<_0x4dacdb;_0x47827f++){var _0x4a17ad=events[_0x47827f];var _0x531ab1=createListener(_0x0e55('0x6')+_0x4a17ad,_0x2f46e8);UserNotificationEvents['on'](_0x4a17ad,_0x531ab1);}};
\ No newline at end of file
+var _0x2ed9=['emit','register','length','./userNotification.events','save','remove','update'];(function(_0x193e19,_0x50f87c){var _0x328220=function(_0x56aa9b){while(--_0x56aa9b){_0x193e19['push'](_0x193e19['shift']());}};_0x328220(++_0x50f87c);}(_0x2ed9,0x6c));var _0x92ed=function(_0x411871,_0x3f6641){_0x411871=_0x411871-0x0;var _0x2ab4fc=_0x2ed9[_0x411871];return _0x2ab4fc;};'use strict';var UserNotificationEvents=require(_0x92ed('0x0'));var events=[_0x92ed('0x1'),_0x92ed('0x2'),_0x92ed('0x3')];function createListener(_0x594c4b,_0x123a3f){return function(_0x406905){_0x123a3f[_0x92ed('0x4')](_0x594c4b,_0x406905);};}function removeListener(_0x2a02d3,_0x399917){return function(){UserNotificationEvents['removeListener'](_0x2a02d3,_0x399917);};}exports[_0x92ed('0x5')]=function(_0xf46a1b){for(var _0x57cecb=0x0,_0x5726d1=events[_0x92ed('0x6')];_0x57cecb<_0x5726d1;_0x57cecb++){var _0xb9132=events[_0x57cecb];var _0x5eda2a=createListener('userNotification:'+_0xb9132,_0xf46a1b);UserNotificationEvents['on'](_0xb9132,_0x5eda2a);}};
\ 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(_0x5c8b01,_0x1102c1){var _0x180b22=function(_0x279299){while(--_0x279299){_0x5c8b01['push'](_0x5c8b01['shift']());}};_0x180b22(++_0x1102c1);}(_0xa9e0,0x123));var _0x0a9e=function(_0x934425,_0x5af72f){_0x934425=_0x934425-0x0;var _0x31d596=_0xa9e0[_0x934425];return _0x31d596;};'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 _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0xe155f0,_0x2989c8){var _0x453005=function(_0x3b5fe2){while(--_0x3b5fe2){_0xe155f0['push'](_0xe155f0['shift']());}};_0x453005(++_0x2989c8);}(_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. *
// * *
// *************************************************************************
-'use strict';var Sequelize=require('sequelize');module['exports']={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x7e2a=['exports','INTEGER','sequelize'];(function(_0x5e6b49,_0xb79716){var _0x1e5fdb=function(_0x39d8a6){while(--_0x39d8a6){_0x5e6b49['push'](_0x5e6b49['shift']());}};_0x1e5fdb(++_0xb79716);}(_0x7e2a,0x1b2));var _0xa7e2=function(_0x4f74ac,_0x17d4f1){_0x4f74ac=_0x4f74ac-0x0;var _0x27d8d0=_0x7e2a[_0x4f74ac];return _0x27d8d0;};'use strict';var Sequelize=require(_0xa7e2('0x0'));module[_0xa7e2('0x1')]={'penalty':{'type':Sequelize[_0xa7e2('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5662=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./userOpenchannelQueue.attributes','exports','UserOpenchannelQueue','user_has_openchannel_queues','lodash','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5662,0x124));var _0x2566=function(_0x548dbb,_0xc1c8bf){_0x548dbb=_0x548dbb-0x0;var _0x5cff85=_0x5662[_0x548dbb];return _0x5cff85;};'use strict';var _=require(_0x2566('0x0'));var util=require(_0x2566('0x1'));var logger=require(_0x2566('0x2'))(_0x2566('0x3'));var moment=require(_0x2566('0x4'));var BPromise=require(_0x2566('0x5'));var rp=require(_0x2566('0x6'));var fs=require('fs');var path=require(_0x2566('0x7'));var rimraf=require(_0x2566('0x8'));var config=require(_0x2566('0x9'));var attributes=require(_0x2566('0xa'));module[_0x2566('0xb')]=function(_0xb77dce,_0x54bf3a){return _0xb77dce['define'](_0x2566('0xc'),attributes,{'tableName':_0x2566('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf4f2=['util','../../config/logger','api','bluebird','request-promise','rimraf','./userOpenchannelQueue.attributes','define','UserOpenchannelQueue','user_has_openchannel_queues','lodash'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xf4f2,0x8e));var _0x2f4f=function(_0x5159d3,_0x2bc997){_0x5159d3=_0x5159d3-0x0;var _0x1b356c=_0xf4f2[_0x5159d3];return _0x1b356c;};'use strict';var _=require(_0x2f4f('0x0'));var util=require(_0x2f4f('0x1'));var logger=require(_0x2f4f('0x2'))(_0x2f4f('0x3'));var moment=require('moment');var BPromise=require(_0x2f4f('0x4'));var rp=require(_0x2f4f('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x2f4f('0x6'));var config=require('../../config/environment');var attributes=require(_0x2f4f('0x7'));module['exports']=function(_0x4071ae,_0x3487d0){return _0x4071ae[_0x2f4f('0x8')](_0x2f4f('0x9'),attributes,{'tableName':_0x2f4f('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf5f4=['client','request','then','info','UserOpenchannelQueue,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x62f831,_0x11617e){var _0x3e8828=function(_0x25fd79){while(--_0x25fd79){_0x62f831['push'](_0x62f831['shift']());}};_0x3e8828(++_0x11617e);}(_0xf5f4,0x7a));var _0x4f5f=function(_0x560342,_0x1eb470){_0x560342=_0x560342-0x0;var _0x5235e3=_0xf5f4[_0x560342];return _0x5235e3;};'use strict';var _=require('lodash');var util=require(_0x4f5f('0x0'));var moment=require(_0x4f5f('0x1'));var BPromise=require('bluebird');var rs=require(_0x4f5f('0x2'));var fs=require('fs');var Redis=require(_0x4f5f('0x3'));var db=require(_0x4f5f('0x4'))['db'];var utils=require(_0x4f5f('0x5'));var logger=require(_0x4f5f('0x6'))(_0x4f5f('0x7'));var config=require(_0x4f5f('0x8'));var jayson=require(_0x4f5f('0x9'));var client=jayson[_0x4f5f('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x528fc6,_0x11eea9,_0x1f9a4b){return new BPromise(function(_0x34118f,_0x5f0bd2){return client[_0x4f5f('0xb')](_0x528fc6,_0x1f9a4b)[_0x4f5f('0xc')](function(_0x329f18){logger[_0x4f5f('0xd')](_0x4f5f('0xe'),_0x11eea9,_0x4f5f('0xf'));logger[_0x4f5f('0x10')]('UserOpenchannelQueue,\x20%s,\x20%s,\x20%s',_0x11eea9,_0x4f5f('0xf'),JSON['stringify'](_0x329f18));if(_0x329f18[_0x4f5f('0x11')]){if(_0x329f18[_0x4f5f('0x11')][_0x4f5f('0x12')]===0x1f4){logger[_0x4f5f('0x11')](_0x4f5f('0xe'),_0x11eea9,_0x329f18[_0x4f5f('0x11')][_0x4f5f('0x13')]);return _0x5f0bd2(_0x329f18[_0x4f5f('0x11')][_0x4f5f('0x13')]);}logger[_0x4f5f('0x11')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x11eea9,_0x329f18['error']['message']);return _0x34118f(_0x329f18[_0x4f5f('0x11')][_0x4f5f('0x13')]);}else{logger[_0x4f5f('0xd')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x11eea9,'request\x20sent');_0x34118f(_0x329f18[_0x4f5f('0x14')][_0x4f5f('0x13')]);}})[_0x4f5f('0x15')](function(_0x42bdbb){logger[_0x4f5f('0x11')](_0x4f5f('0xe'),_0x11eea9,_0x42bdbb);_0x5f0bd2(_0x42bdbb);});});}
\ No newline at end of file
+var _0xb2d1=['request\x20sent','UserOpenchannelQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','../../config/environment','client','request','UserOpenchannelQueue,\x20%s,\x20%s'];(function(_0x13e741,_0x5d3c24){var _0x3f8bb3=function(_0x4440a0){while(--_0x4440a0){_0x13e741['push'](_0x13e741['shift']());}};_0x3f8bb3(++_0x5d3c24);}(_0xb2d1,0xc2));var _0x1b2d=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0xb2d1[_0x42cae2];return _0x5f256f;};'use strict';var _=require('lodash');var util=require(_0x1b2d('0x0'));var moment=require(_0x1b2d('0x1'));var BPromise=require(_0x1b2d('0x2'));var rs=require(_0x1b2d('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1b2d('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x1b2d('0x5'))('rpc');var config=require(_0x1b2d('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x1b2d('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x363e45,_0x4ea3f8,_0x287ad4){return new BPromise(function(_0x2fb4bf,_0x597699){return client[_0x1b2d('0x8')](_0x363e45,_0x287ad4)['then'](function(_0x127bd7){logger['info'](_0x1b2d('0x9'),_0x4ea3f8,_0x1b2d('0xa'));logger['debug'](_0x1b2d('0xb'),_0x4ea3f8,'request\x20sent',JSON[_0x1b2d('0xc')](_0x127bd7));if(_0x127bd7[_0x1b2d('0xd')]){if(_0x127bd7[_0x1b2d('0xd')][_0x1b2d('0xe')]===0x1f4){logger['error'](_0x1b2d('0x9'),_0x4ea3f8,_0x127bd7[_0x1b2d('0xd')][_0x1b2d('0xf')]);return _0x597699(_0x127bd7[_0x1b2d('0xd')][_0x1b2d('0xf')]);}logger['error'](_0x1b2d('0x9'),_0x4ea3f8,_0x127bd7[_0x1b2d('0xd')]['message']);return _0x2fb4bf(_0x127bd7[_0x1b2d('0xd')][_0x1b2d('0xf')]);}else{logger[_0x1b2d('0x10')](_0x1b2d('0x9'),_0x4ea3f8,_0x1b2d('0xa'));_0x2fb4bf(_0x127bd7['result'][_0x1b2d('0xf')]);}})['catch'](function(_0x423378){logger[_0x1b2d('0xd')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x4ea3f8,_0x423378);_0x597699(_0x423378);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd72c=['removeResources','exports','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfile.controller','get','isAuthenticated','index','/describe','/:id','show','/:id/sections','getSections','/:id/resources','getResources','post','create','/:id/clone','addSections','addResources','put','update','delete','destroy','removeSections'];(function(_0xb13adb,_0x126166){var _0x1affa7=function(_0x1bac92){while(--_0x1bac92){_0xb13adb['push'](_0xb13adb['shift']());}};_0x1affa7(++_0x126166);}(_0xd72c,0xb0));var _0xcd72=function(_0x3540f9,_0x2539fe){_0x3540f9=_0x3540f9-0x0;var _0x492545=_0xd72c[_0x3540f9];return _0x492545;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xcd72('0x0'));var router=express[_0xcd72('0x1')]();var fs_extra=require(_0xcd72('0x2'));var auth=require(_0xcd72('0x3'));var interaction=require(_0xcd72('0x4'));var config=require(_0xcd72('0x5'));var controller=require(_0xcd72('0x6'));router[_0xcd72('0x7')]('/',auth[_0xcd72('0x8')](),controller[_0xcd72('0x9')]);router[_0xcd72('0x7')](_0xcd72('0xa'),auth['isAuthenticated'](),controller['describe']);router['get'](_0xcd72('0xb'),auth[_0xcd72('0x8')](),controller[_0xcd72('0xc')]);router['get'](_0xcd72('0xd'),auth[_0xcd72('0x8')](),controller[_0xcd72('0xe')]);router[_0xcd72('0x7')](_0xcd72('0xf'),auth['isAuthenticated'](),controller[_0xcd72('0x10')]);router[_0xcd72('0x11')]('/',auth[_0xcd72('0x8')](),controller[_0xcd72('0x12')]);router[_0xcd72('0x11')](_0xcd72('0x13'),auth[_0xcd72('0x8')](),controller['clone']);router[_0xcd72('0x11')]('/:id/sections',auth[_0xcd72('0x8')](),controller[_0xcd72('0x14')]);router['post'](_0xcd72('0xf'),auth[_0xcd72('0x8')](),controller[_0xcd72('0x15')]);router[_0xcd72('0x16')](_0xcd72('0xb'),auth[_0xcd72('0x8')](),controller[_0xcd72('0x17')]);router[_0xcd72('0x18')]('/:id',auth[_0xcd72('0x8')](),controller[_0xcd72('0x19')]);router[_0xcd72('0x18')](_0xcd72('0xd'),auth[_0xcd72('0x8')](),controller[_0xcd72('0x1a')]);router[_0xcd72('0x18')](_0xcd72('0xf'),auth[_0xcd72('0x8')](),controller[_0xcd72('0x1b')]);module[_0xcd72('0x1c')]=router;
\ No newline at end of file
+var _0x4beb=['show','/:id/sections','getSections','/:id/resources','getResources','post','create','/:id/clone','clone','update','destroy','delete','removeSections','removeResources','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index','describe','/:id'];(function(_0x330522,_0x30411b){var _0x1dcc6f=function(_0x2891f9){while(--_0x2891f9){_0x330522['push'](_0x330522['shift']());}};_0x1dcc6f(++_0x30411b);}(_0x4beb,0x17b));var _0xb4be=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4beb[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xb4be('0x0'));var util=require('util');var path=require(_0xb4be('0x1'));var timeout=require(_0xb4be('0x2'));var express=require(_0xb4be('0x3'));var router=express[_0xb4be('0x4')]();var fs_extra=require(_0xb4be('0x5'));var auth=require(_0xb4be('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xb4be('0x7'));var controller=require('./userProfile.controller');router[_0xb4be('0x8')]('/',auth[_0xb4be('0x9')](),controller[_0xb4be('0xa')]);router[_0xb4be('0x8')]('/describe',auth[_0xb4be('0x9')](),controller[_0xb4be('0xb')]);router['get'](_0xb4be('0xc'),auth[_0xb4be('0x9')](),controller[_0xb4be('0xd')]);router[_0xb4be('0x8')](_0xb4be('0xe'),auth['isAuthenticated'](),controller[_0xb4be('0xf')]);router[_0xb4be('0x8')](_0xb4be('0x10'),auth['isAuthenticated'](),controller[_0xb4be('0x11')]);router[_0xb4be('0x12')]('/',auth['isAuthenticated'](),controller[_0xb4be('0x13')]);router['post'](_0xb4be('0x14'),auth[_0xb4be('0x9')](),controller[_0xb4be('0x15')]);router[_0xb4be('0x12')]('/:id/sections',auth[_0xb4be('0x9')](),controller['addSections']);router[_0xb4be('0x12')]('/:id/resources',auth['isAuthenticated'](),controller['addResources']);router['put'](_0xb4be('0xc'),auth['isAuthenticated'](),controller[_0xb4be('0x16')]);router['delete'](_0xb4be('0xc'),auth['isAuthenticated'](),controller[_0xb4be('0x17')]);router[_0xb4be('0x18')]('/:id/sections',auth[_0xb4be('0x9')](),controller[_0xb4be('0x19')]);router[_0xb4be('0x18')](_0xb4be('0x10'),auth[_0xb4be('0x9')](),controller[_0xb4be('0x1a')]);module[_0xb4be('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf59b=['STRING','setDataValue','join','getDataValue','crudPermissions','split','BOOLEAN','sequelize','exports','name'];(function(_0x403580,_0x353dd3){var _0x18f0cf=function(_0x3f5ee4){while(--_0x3f5ee4){_0x403580['push'](_0x403580['shift']());}};_0x18f0cf(++_0x353dd3);}(_0xf59b,0x115));var _0xbf59=function(_0x53263b,_0x299c08){_0x53263b=_0x53263b-0x0;var _0x3fd94b=_0xf59b[_0x53263b];return _0x3fd94b;};'use strict';var Sequelize=require(_0xbf59('0x0'));module[_0xbf59('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xbf59('0x2')},'crudPermissions':{'type':Sequelize[_0xbf59('0x3')],'set':function(_0xa6f8b0){this[_0xbf59('0x4')]('crudPermissions',_0xa6f8b0?_0xa6f8b0[_0xbf59('0x5')](''):[]);},'get':function(){return this[_0xbf59('0x6')](_0xbf59('0x7'))?this[_0xbf59('0x6')]('crudPermissions')[_0xbf59('0x8')](''):[];},'allowNull':![],'defaultValue':'r'},'description':{'type':Sequelize[_0xbf59('0x3')],'allowNull':!![]},'privacyEnabled':{'type':Sequelize[_0xbf59('0x9')],'defaultValue':![]},'downloadAttachments':{'type':Sequelize[_0xbf59('0x9')],'defaultValue':!![]},'downloadCallySquareRecordings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadContactManagerLists':{'type':Sequelize[_0xbf59('0x9')],'defaultValue':!![]},'downloadJscriptySessions':{'type':Sequelize[_0xbf59('0x9')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0xbf59('0x9')],'defaultValue':!![]},'downloadScreenRecordings':{'type':Sequelize[_0xbf59('0x9')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0xbf59('0x9')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x10cd=['join','getDataValue','split','BOOLEAN','exports','STRING','name','setDataValue','crudPermissions'];(function(_0x4a94b1,_0x4f2518){var _0x20949f=function(_0x1c4aa6){while(--_0x1c4aa6){_0x4a94b1['push'](_0x4a94b1['shift']());}};_0x20949f(++_0x4f2518);}(_0x10cd,0x1f3));var _0xd10c=function(_0x5da8db,_0x5c2103){_0x5da8db=_0x5da8db-0x0;var _0x1eb753=_0x10cd[_0x5da8db];return _0x1eb753;};'use strict';var Sequelize=require('sequelize');module[_0xd10c('0x0')]={'name':{'type':Sequelize[_0xd10c('0x1')],'allowNull':![],'unique':_0xd10c('0x2')},'crudPermissions':{'type':Sequelize[_0xd10c('0x1')],'set':function(_0x226f8e){this[_0xd10c('0x3')](_0xd10c('0x4'),_0x226f8e?_0x226f8e[_0xd10c('0x5')](''):[]);},'get':function(){return this[_0xd10c('0x6')](_0xd10c('0x4'))?this[_0xd10c('0x6')](_0xd10c('0x4'))[_0xd10c('0x7')](''):[];},'allowNull':![],'defaultValue':'r'},'description':{'type':Sequelize[_0xd10c('0x1')],'allowNull':!![]},'privacyEnabled':{'type':Sequelize[_0xd10c('0x8')],'defaultValue':![]},'downloadAttachments':{'type':Sequelize[_0xd10c('0x8')],'defaultValue':!![]},'downloadCallySquareRecordings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadContactManagerLists':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadJscriptySessions':{'type':Sequelize[_0xd10c('0x8')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0xd10c('0x8')],'defaultValue':!![]},'downloadScreenRecordings':{'type':Sequelize[_0xd10c('0x8')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0xd10c('0x8')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5430=['includeAll','include','rows','catch','show','keys','create','clone','params','find','get','omit','createdAt','updatedAt','crudPermissions','body','sequelize','UserProfileSection','findAll','each','autoAssociation','UserProfileResource','sectionId','userProfileId','Resources','describe','transaction','removeSections','ids','enabled','isEmpty','includes','subsections','findOne','Dashboard','forEach','push','resourceId','Plugin','addResources','bulkCreate','removeResources','getResources','No\x20User\x20Profile\x20found\x20for\x20id\x20','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../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','offset','limit','count','set','Content-Range','apply','update','then','destroy','error','name','index','map','UserProfile','rawAttributes','fieldName','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filters','pick','filter','where','merge','type','VIRTUAL','options'];(function(_0x46ce14,_0x4f7796){var _0x1f15f0=function(_0x314f19){while(--_0x314f19){_0x46ce14['push'](_0x46ce14['shift']());}};_0x1f15f0(++_0x4f7796);}(_0x5430,0x10c));var _0x0543=function(_0x53c3e9,_0x1e1262){_0x53c3e9=_0x53c3e9-0x0;var _0x381083=_0x5430[_0x53c3e9];return _0x381083;};'use strict';var emlformat=require(_0x0543('0x0'));var rimraf=require(_0x0543('0x1'));var zipdir=require(_0x0543('0x2'));var jsonpatch=require(_0x0543('0x3'));var rp=require(_0x0543('0x4'));var moment=require(_0x0543('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x0543('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x0543('0x7'));var ejs=require(_0x0543('0x8'));var fs=require('fs');var fs_extra=require(_0x0543('0x9'));var _=require(_0x0543('0xa'));var squel=require(_0x0543('0xb'));var crypto=require('crypto');var jsforce=require(_0x0543('0xc'));var deskjs=require(_0x0543('0xd'));var toCsv=require(_0x0543('0x7'));var querystring=require(_0x0543('0xe'));var Papa=require(_0x0543('0xf'));var Redis=require(_0x0543('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x0543('0x11'));var as=require(_0x0543('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0543('0x13'))(_0x0543('0x14'));var utils=require(_0x0543('0x15'));var config=require(_0x0543('0x16'));var licenseUtil=require(_0x0543('0x17'));var db=require(_0x0543('0x18'))['db'];config[_0x0543('0x19')]=_[_0x0543('0x1a')](config[_0x0543('0x19')],{'host':_0x0543('0x1b'),'port':0x18eb});var socket=require(_0x0543('0x1c'))(new Redis(config[_0x0543('0x19')]));require('./userProfile.socket')[_0x0543('0x1d')](socket);function respondWithStatusCode(_0x21e9ac,_0x4d2a27){_0x4d2a27=_0x4d2a27||0xcc;return function(_0x4c4763){if(_0x4c4763){return _0x21e9ac[_0x0543('0x1e')](_0x4d2a27);}return _0x21e9ac[_0x0543('0x1f')](_0x4d2a27)[_0x0543('0x20')]();};}function respondWithResult(_0x1cfadf,_0x38a32e){_0x38a32e=_0x38a32e||0xc8;return function(_0x50d504){if(_0x50d504){return _0x1cfadf[_0x0543('0x1f')](_0x38a32e)[_0x0543('0x21')](_0x50d504);}};}function respondWithFilteredResult(_0x2dd5cb,_0x25254e){return function(_0x20b396){if(_0x20b396){var _0x285080=typeof _0x25254e[_0x0543('0x22')]==='undefined'&&typeof _0x25254e[_0x0543('0x23')]==='undefined';var _0x50ea84=_0x20b396[_0x0543('0x24')];var _0x419913=_0x285080?0x0:_0x25254e[_0x0543('0x22')];var _0x52eb53=_0x285080?_0x20b396[_0x0543('0x24')]:_0x25254e['offset']+_0x25254e[_0x0543('0x23')];var _0x411ec2;if(_0x52eb53>=_0x50ea84){_0x52eb53=_0x50ea84;_0x411ec2=0xc8;}else{_0x411ec2=0xce;}_0x2dd5cb['status'](_0x411ec2);return _0x2dd5cb[_0x0543('0x25')](_0x0543('0x26'),_0x419913+'-'+_0x52eb53+'/'+_0x50ea84)[_0x0543('0x21')](_0x20b396);}return null;};}function patchUpdates(_0x110060){return function(_0x37347e){try{jsonpatch[_0x0543('0x27')](_0x37347e,_0x110060,!![]);}catch(_0x4adba7){return BPromise['reject'](_0x4adba7);}return _0x37347e['save']();};}function saveUpdates(_0xbfe5dc,_0x25b3a1){return function(_0x15ebeb){if(_0x15ebeb){return _0x15ebeb[_0x0543('0x28')](_0xbfe5dc)[_0x0543('0x29')](function(_0x26e500){return _0x26e500;});}return null;};}function removeEntity(_0x36d824,_0x17a3de){return function(_0x1fca8a){if(_0x1fca8a){return _0x1fca8a[_0x0543('0x2a')]()[_0x0543('0x29')](function(){_0x36d824[_0x0543('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x25e6f1,_0x153bda){return function(_0x30ad9e){if(!_0x30ad9e){_0x25e6f1['sendStatus'](0x194);}return _0x30ad9e;};}function handleError(_0x9c7e34,_0x27031f){_0x27031f=_0x27031f||0x1f4;return function(_0x41c4a7){logger[_0x0543('0x2b')](_0x41c4a7['stack']);if(_0x41c4a7[_0x0543('0x2c')]){delete _0x41c4a7[_0x0543('0x2c')];}_0x9c7e34['status'](_0x27031f)['send'](_0x41c4a7);};}exports[_0x0543('0x2d')]=function(_0x16165c,_0x51d49d){var _0x3b879b={},_0x2e03d1={},_0x931ccc={'count':0x0,'rows':[]};var _0x2bd6ce=_[_0x0543('0x2e')](db[_0x0543('0x2f')][_0x0543('0x30')],function(_0x4f9b63){return{'name':_0x4f9b63[_0x0543('0x31')],'type':_0x4f9b63['type'][_0x0543('0x32')]};});_0x2e03d1[_0x0543('0x33')]=_[_0x0543('0x2e')](_0x2bd6ce,_0x0543('0x2c'));_0x2e03d1[_0x0543('0x34')]=_['keys'](_0x16165c[_0x0543('0x34')]);_0x2e03d1['filters']=_[_0x0543('0x35')](_0x2e03d1[_0x0543('0x33')],_0x2e03d1[_0x0543('0x34')]);_0x3b879b[_0x0543('0x36')]=_['intersection'](_0x2e03d1[_0x0543('0x33')],qs['fields'](_0x16165c[_0x0543('0x34')][_0x0543('0x37')]));_0x3b879b[_0x0543('0x36')]=_0x3b879b[_0x0543('0x36')][_0x0543('0x38')]?_0x3b879b[_0x0543('0x36')]:_0x2e03d1[_0x0543('0x33')];if(!_0x16165c[_0x0543('0x34')][_0x0543('0x39')](_0x0543('0x3a'))){_0x3b879b['limit']=qs[_0x0543('0x23')](_0x16165c[_0x0543('0x34')]['limit']);_0x3b879b[_0x0543('0x22')]=qs['offset'](_0x16165c[_0x0543('0x34')][_0x0543('0x22')]);}_0x3b879b['order']=qs['sort'](_0x16165c[_0x0543('0x34')][_0x0543('0x3b')]);_0x3b879b['where']=qs[_0x0543('0x3c')](_[_0x0543('0x3d')](_0x16165c['query'],_0x2e03d1[_0x0543('0x3c')]),_0x2bd6ce);if(_0x16165c[_0x0543('0x34')][_0x0543('0x3e')]){_0x3b879b[_0x0543('0x3f')]=_[_0x0543('0x40')](_0x3b879b['where'],{'$or':_['map'](_0x2bd6ce,function(_0x4816ac){if(_0x4816ac[_0x0543('0x41')]!==_0x0543('0x42')){var _0x43128f={};_0x43128f[_0x4816ac[_0x0543('0x2c')]]={'$like':'%'+_0x16165c['query'][_0x0543('0x3e')]+'%'};return _0x43128f;}})});}_0x3b879b=_[_0x0543('0x40')]({},_0x3b879b,_0x16165c[_0x0543('0x43')]);var _0x222765={'where':_0x3b879b[_0x0543('0x3f')]};return db[_0x0543('0x2f')][_0x0543('0x24')](_0x222765)['then'](function(_0x24a891){_0x931ccc[_0x0543('0x24')]=_0x24a891;if(_0x16165c[_0x0543('0x34')][_0x0543('0x44')]){_0x3b879b[_0x0543('0x45')]=[{'all':!![]}];}return db[_0x0543('0x2f')]['findAll'](_0x3b879b);})['then'](function(_0x44116a){_0x931ccc[_0x0543('0x46')]=_0x44116a;return _0x931ccc;})[_0x0543('0x29')](respondWithFilteredResult(_0x51d49d,_0x3b879b))[_0x0543('0x47')](handleError(_0x51d49d,null));};exports[_0x0543('0x48')]=function(_0xff6a88,_0x247f44){var _0x3fe39a={'raw':![],'where':{'id':_0xff6a88['params']['id']}},_0x1df75e={};_0x1df75e['model']=_[_0x0543('0x49')](db[_0x0543('0x2f')]['rawAttributes']);_0x1df75e['query']=_[_0x0543('0x49')](_0xff6a88[_0x0543('0x34')]);_0x1df75e['filters']=_[_0x0543('0x35')](_0x1df75e['model'],_0x1df75e[_0x0543('0x34')]);_0x3fe39a[_0x0543('0x36')]=_['intersection'](_0x1df75e['model'],qs[_0x0543('0x37')](_0xff6a88['query'][_0x0543('0x37')]));_0x3fe39a[_0x0543('0x36')]=_0x3fe39a[_0x0543('0x36')][_0x0543('0x38')]?_0x3fe39a[_0x0543('0x36')]:_0x1df75e[_0x0543('0x33')];if(_0xff6a88['query'][_0x0543('0x44')]){_0x3fe39a[_0x0543('0x45')]=[{'all':!![]}];}_0x3fe39a=_[_0x0543('0x40')]({},_0x3fe39a,_0xff6a88[_0x0543('0x43')]);return db[_0x0543('0x2f')]['find'](_0x3fe39a)[_0x0543('0x29')](handleEntityNotFound(_0x247f44,null))['then'](respondWithResult(_0x247f44,null))[_0x0543('0x47')](handleError(_0x247f44,null));};exports[_0x0543('0x4a')]=function(_0x3f4c40,_0x46d398){return db[_0x0543('0x2f')][_0x0543('0x4a')](_0x3f4c40['body'],{})['then'](respondWithResult(_0x46d398,0xc9))['catch'](handleError(_0x46d398,null));};exports[_0x0543('0x4b')]=function(_0x2177b8,_0x4964ba){var _0x188bfd={'where':{'id':_0x2177b8[_0x0543('0x4c')]['id']}},_0x1d9432={};_0x1d9432[_0x0543('0x33')]=_[_0x0543('0x49')](db[_0x0543('0x2f')]['rawAttributes']);_0x188bfd[_0x0543('0x36')]=_[_0x0543('0x35')](_0x1d9432[_0x0543('0x33')],qs[_0x0543('0x37')](_0x2177b8[_0x0543('0x34')][_0x0543('0x37')]));_0x188bfd[_0x0543('0x36')]=_0x188bfd[_0x0543('0x36')][_0x0543('0x38')]?_0x188bfd[_0x0543('0x36')]:_0x1d9432[_0x0543('0x33')];if(_0x2177b8[_0x0543('0x34')][_0x0543('0x44')]){_0x188bfd[_0x0543('0x45')]=[{'all':!![]}];}_0x188bfd=_['merge']({},_0x188bfd,_0x2177b8[_0x0543('0x43')]);return db[_0x0543('0x2f')][_0x0543('0x4d')](_0x188bfd)[_0x0543('0x29')](handleEntityNotFound(_0x4964ba,null))[_0x0543('0x29')](function(_0x2980ad){if(_0x2980ad){var _0x3a6022=_0x2980ad[_0x0543('0x4e')]({'plain':!![]});_0x3a6022=qs[_0x0543('0x4f')](_0x3a6022,['id',_0x0543('0x50'),_0x0543('0x51'),_0x0543('0x52')]);_0x2177b8[_0x0543('0x53')]=_[_0x0543('0x4f')](_0x2177b8[_0x0543('0x53')],['id','createdAt',_0x0543('0x51')]);return db[_0x0543('0x54')]['transaction'](function(_0x59eea9){return db[_0x0543('0x2f')][_0x0543('0x4a')](_['merge'](_0x3a6022,_0x2177b8[_0x0543('0x53')]),{'include':_0x2177b8['query'][_0x0543('0x44')]?[{'all':!![]}]:undefined,'transaction':_0x59eea9})['then'](function(_0x31aea7){var _0x588fca=_0x31aea7[_0x0543('0x4e')]({'plain':!![]});return db[_0x0543('0x55')][_0x0543('0x56')]({'where':{'userProfileId':_0x2177b8['params']['id']},'raw':!![]})[_0x0543('0x29')](function(_0x1a569b){if(_0x1a569b){return BPromise[_0x0543('0x57')](_0x1a569b,function(_0xf46956){return new BPromise(function(_0x313937,_0x42dbbf){if(_0xf46956[_0x0543('0x58')]===null||_0xf46956[_0x0543('0x58')]===0x1)_0x313937(null);return db[_0x0543('0x59')][_0x0543('0x56')]({'where':{'sectionId':_0xf46956['id']},'raw':!![]})[_0x0543('0x29')](function(_0x2ff23a){var _0x378566=_[_0x0543('0x2e')](_0x2ff23a,function(_0x2fc5f4){return qs['omit'](_0x2fc5f4,['id','createdAt',_0x0543('0x51'),_0x0543('0x5a')]);});_0x313937(_0x378566);})[_0x0543('0x47')](function(_0x28ad29){_0x42dbbf(_0x28ad29);});})[_0x0543('0x29')](function(_0x203cf7){var _0x4c4e49=qs[_0x0543('0x4f')](_0xf46956,['id',_0x0543('0x50'),'updatedAt']);_0x4c4e49[_0x0543('0x5b')]=_0x588fca['id'];if(_0x203cf7)_0x4c4e49[_0x0543('0x5c')]=_0x203cf7;return _0x4c4e49;})[_0x0543('0x29')](function(_0x46c33f){return db['UserProfileSection'][_0x0543('0x4a')](_0x46c33f,{'include':[{'model':db[_0x0543('0x59')],'as':_0x0543('0x5c')}],'raw':!![],'transaction':_0x59eea9});});})['then'](function(){return _0x588fca;});}});});});}})['then'](respondWithResult(_0x4964ba,0xc9))[_0x0543('0x47')](handleError(_0x4964ba,null));};exports[_0x0543('0x28')]=function(_0x1f44a3,_0x5311b7){if(_0x1f44a3[_0x0543('0x53')]['id']){delete _0x1f44a3[_0x0543('0x53')]['id'];}return db[_0x0543('0x2f')]['find']({'where':{'id':_0x1f44a3[_0x0543('0x4c')]['id']}})[_0x0543('0x29')](handleEntityNotFound(_0x5311b7,null))[_0x0543('0x29')](saveUpdates(_0x1f44a3[_0x0543('0x53')],null))[_0x0543('0x29')](respondWithResult(_0x5311b7,null))[_0x0543('0x47')](handleError(_0x5311b7,null));};exports[_0x0543('0x2a')]=function(_0x2fb930,_0x41cac7){return db[_0x0543('0x2f')][_0x0543('0x4d')]({'where':{'id':_0x2fb930[_0x0543('0x4c')]['id']}})[_0x0543('0x29')](handleEntityNotFound(_0x41cac7,null))[_0x0543('0x29')](removeEntity(_0x41cac7,null))['catch'](handleError(_0x41cac7,null));};exports['describe']=function(_0x41f0f2,_0x1f767c){return db[_0x0543('0x2f')][_0x0543('0x5d')]()['then'](respondWithResult(_0x1f767c,null))[_0x0543('0x47')](handleError(_0x1f767c,null));};exports['addSections']=function(_0x1e1fc0,_0x3fd0ad){var _0x2ab9f=_0x1e1fc0['body'];return db['UserProfile'][_0x0543('0x4d')]({'where':{'id':_0x1e1fc0['params']['id']}})['then'](handleEntityNotFound(_0x3fd0ad,null))[_0x0543('0x29')](function(_0x1f26dd){if(_0x1f26dd){return db[_0x0543('0x54')][_0x0543('0x5e')](function(_0x338c62){return db[_0x0543('0x55')][_0x0543('0x2a')]({'where':{'userProfileId':_0x1e1fc0[_0x0543('0x4c')]['id'],'sectionId':_[_0x0543('0x2e')](_0x2ab9f,function(_0x55bfa5){return _0x55bfa5[_0x0543('0x5a')];})},'transaction':_0x338c62})[_0x0543('0x29')](function(){var _0xe3fccd=_[_0x0543('0x2e')](_0x2ab9f,function(_0x3d918d){_0x3d918d['userProfileId']=_0x1e1fc0[_0x0543('0x4c')]['id'];return _0x3d918d;});var _0x5738de=[];return BPromise[_0x0543('0x57')](_0xe3fccd,function(_0x85a666){return db[_0x0543('0x55')][_0x0543('0x4a')](_0x85a666,{'include':[{'model':db['UserProfileResource'],'as':_0x0543('0x5c')}],'raw':!![],'transaction':_0x338c62})[_0x0543('0x29')](function(_0x439121){_0x5738de['push'](_0x439121[_0x0543('0x4e')]({'plain':!![]}));});})['then'](function(){return _0x5738de;});});});}})[_0x0543('0x29')](function(_0x3f8fb5){return _0x3f8fb5;})[_0x0543('0x29')](respondWithResult(_0x3fd0ad,null))[_0x0543('0x47')](handleError(_0x3fd0ad,null));};exports[_0x0543('0x5f')]=function(_0x21c920,_0x54f120){var _0x59f214;return db['UserProfile'][_0x0543('0x4d')]({'where':{'id':_0x21c920[_0x0543('0x4c')]['id']},'attributes':['id',_0x0543('0x2c')]})[_0x0543('0x29')](handleEntityNotFound(_0x54f120,null))[_0x0543('0x29')](function(_0x3e3bbe){if(_0x3e3bbe){_0x59f214=_0x3e3bbe;return db[_0x0543('0x55')][_0x0543('0x2a')]({'where':{'userProfileId':_0x21c920['params']['id'],'sectionId':_0x21c920['query'][_0x0543('0x60')]}});}})[_0x0543('0x29')](function(){return _0x59f214;})['then'](respondWithStatusCode(_0x54f120,null))[_0x0543('0x47')](handleError(_0x54f120,null));};exports['getSections']=function(_0x136760,_0x130901){var _0x1905d0=[];var _0x258015=[];return db[_0x0543('0x55')]['findAll']({'where':{'userProfileId':_0x136760[_0x0543('0x4c')]['id']},'raw':!![]})[_0x0543('0x29')](function(_0x494855){_0x1905d0=_[_0x0543('0x3e')](_0x494855,function(_0x3520e8){return _0x3520e8[_0x0543('0x61')]===0x1||_['includes']([0x3eb,0x709],_0x3520e8[_0x0543('0x5a')]);});if(!_[_0x0543('0x62')](_0x1905d0)){return _[_0x0543('0x2e')](_0x1905d0,function(_0x4abf55){return _0x4abf55[_0x0543('0x5a')];});}else{return;}})[_0x0543('0x29')](function(_0x339b0b){if(_0x339b0b)_0x258015=_0x339b0b;if(_[_0x0543('0x63')](_0x258015,0x64)){var _0x553023=_[_0x0543('0x4d')](_0x1905d0,{'sectionId':0x64});return hasDefaultDashboard(_0x553023)[_0x0543('0x29')](function(_0xdf249b){return _[_0x0543('0x2e')](_0x1905d0,function(_0x14393a){if(_0x14393a[_0x0543('0x5a')]===0x64){_0x14393a[_0x0543('0x64')]=_0xdf249b;}return _0x14393a;});});}else{return;}})[_0x0543('0x29')](function(_0x420b02){if(_0x420b02)_0x1905d0=_0x420b02;if(_[_0x0543('0x63')](_0x258015,0x3eb)){var _0x375b22=_[_0x0543('0x4d')](_0x1905d0,{'sectionId':0x3eb});return getCustomDashboards(_0x375b22)[_0x0543('0x29')](function(_0x20df70){return _[_0x0543('0x2e')](_0x1905d0,function(_0x3fe4ee){if(_0x375b22[_0x0543('0x61')]){if(_0x3fe4ee['sectionId']===0x3eb){_0x3fe4ee[_0x0543('0x64')]=_0x20df70;}}else{if(_0x3fe4ee[_0x0543('0x5a')]===0x64){_0x3fe4ee[_0x0543('0x64')]=_0x20df70;}}return _0x3fe4ee;});});}else{return;}})[_0x0543('0x29')](function(_0x185765){if(_0x185765)_0x1905d0=_0x185765;if(_[_0x0543('0x63')](_0x258015,0x709)){var _0x320617=_[_0x0543('0x4d')](_0x1905d0,{'sectionId':0x709});return getPlugins(_0x320617)[_0x0543('0x29')](function(_0x3c24fc){if(_0x320617[_0x0543('0x61')]){return _['map'](_0x1905d0,function(_0xee3ae3){if(_0xee3ae3[_0x0543('0x5a')]===0x709){_0xee3ae3[_0x0543('0x64')]=_0x3c24fc;}return _0xee3ae3;});}else{var _0x4d3416={'sectionId':0x76c,'enabled':0x1,'subsections':_0x3c24fc};var _0x40b27f=_['map'](_0x1905d0);_0x40b27f['push'](_0x4d3416);return _0x40b27f;}});}else{return;}})[_0x0543('0x29')](function(_0x587f56){if(_0x587f56)_0x1905d0=_0x587f56;return _[_0x0543('0x3e')](_0x1905d0,[_0x0543('0x61'),0x1]);})[_0x0543('0x29')](respondWithResult(_0x130901,null))[_0x0543('0x47')](handleError(_0x130901,null));};function hasDefaultDashboard(_0x5ac9c4){var _0x4bc97b=[0x65];return new BPromise(function(_0x46dc8e,_0x1769d9){try{if(_0x5ac9c4[_0x0543('0x58')]){_0x46dc8e(_0x4bc97b);}else{return db['UserProfileResource'][_0x0543('0x65')]({'where':{'sectionId':_0x5ac9c4['id']},'raw':!![]})[_0x0543('0x29')](function(_0x4cf0ca){_0x4cf0ca?_0x46dc8e(_0x4bc97b):_0x46dc8e();});}}catch(_0x32a641){_0x1769d9(_0x32a641);}});}function getCustomDashboards(_0x146062){var _0x5979d4=[];return new BPromise(function(_0x5eab25,_0x22e8fa){try{if(_0x146062[_0x0543('0x58')]){return db[_0x0543('0x66')]['findAll']({'raw':!![]})[_0x0543('0x29')](function(_0x37f54b){_0x37f54b[_0x0543('0x67')](function(_0x55952a){_0x5979d4['push'](_0x55952a['id']+0x1869f);});_0x5eab25(_0x5979d4);});}else{return db[_0x0543('0x59')][_0x0543('0x56')]({'where':{'sectionId':_0x146062['id']},'raw':!![]})[_0x0543('0x29')](function(_0x51c8ee){_0x51c8ee[_0x0543('0x67')](function(_0x2403e1){_0x5979d4[_0x0543('0x68')](_0x2403e1[_0x0543('0x69')]+0x1869f);});_0x5eab25(_0x5979d4);});}}catch(_0x20fa35){_0x22e8fa(_0x20fa35);}});}function getPlugins(_0x2a024f){var _0x190b81=[];return new BPromise(function(_0x19eeb5,_0xefa0a1){try{if(_0x2a024f[_0x0543('0x58')]){return db[_0x0543('0x6a')][_0x0543('0x56')]({'raw':!![]})[_0x0543('0x29')](function(_0x3d9f3d){_0x3d9f3d[_0x0543('0x67')](function(_0x26b7e7){_0x190b81[_0x0543('0x68')](_0x26b7e7['id']+0x15b38);});_0x19eeb5(_0x190b81);});}else{return db['UserProfileResource'][_0x0543('0x56')]({'where':{'sectionId':_0x2a024f['id']},'raw':!![]})[_0x0543('0x29')](function(_0x37c82f){_0x37c82f[_0x0543('0x67')](function(_0x4f2319){_0x190b81[_0x0543('0x68')](_0x4f2319[_0x0543('0x69')]+0x15b38);});_0x19eeb5(_0x190b81);});}}catch(_0xdd4d2d){_0xefa0a1(_0xdd4d2d);}});}exports[_0x0543('0x6b')]=function(_0x5eb668,_0x120017){return db[_0x0543('0x2f')]['find']({'where':{'id':_0x5eb668[_0x0543('0x4c')]['id']}})[_0x0543('0x29')](handleEntityNotFound(_0x120017,null))[_0x0543('0x29')](function(_0x12fddf){if(_0x12fddf){return db['sequelize'][_0x0543('0x5e')](function(_0x35ed5f){return db[_0x0543('0x55')][_0x0543('0x56')]({'where':{'userProfileId':_0x5eb668[_0x0543('0x4c')]['id']},'attributes':['id'],'raw':!![]})['then'](function(_0x25d634){if(_0x25d634){return db[_0x0543('0x55')]['destroy']({'where':{'userProfileId':_0x5eb668[_0x0543('0x4c')]['id'],'id':_['map'](_0x25d634,function(_0x1db117){return _0x1db117['id'];})},'transaction':_0x35ed5f});}})[_0x0543('0x29')](function(_0x128f67){var _0x15df91=_['map'](_0x5eb668[_0x0543('0x53')],function(_0x4c5a61){_0x4c5a61[_0x0543('0x5b')]=_0x5eb668[_0x0543('0x4c')]['id'];return _0x4c5a61;});return db[_0x0543('0x55')][_0x0543('0x6c')](_0x15df91,{'raw':!![],'transaction':_0x35ed5f});})[_0x0543('0x29')](function(_0x343786){var _0x175dc7=_[_0x0543('0x3e')](_[_0x0543('0x2e')](_0x343786,function(_0x45c547){return _0x45c547[_0x0543('0x4e')]({'plain':!![]});}),{'includeAll':![]});if(_0x175dc7){return db['UserProfileSection'][_0x0543('0x56')]({'where':{'userProfileId':_0x5eb668[_0x0543('0x4c')]['id'],'sectionId':_[_0x0543('0x2e')](_0x175dc7,function(_0x508a19){return _0x508a19[_0x0543('0x5a')];})},'attributes':['id','sectionId'],'raw':!![]})['then'](function(_0x736dad){var _0x485933=_['map'](_0x5eb668[_0x0543('0x53')],function(_0x3b6a72){_0x3b6a72[_0x0543('0x5b')]=_0x5eb668[_0x0543('0x4c')]['id'];return _0x3b6a72;});return db[_0x0543('0x59')][_0x0543('0x6c')](_0x485933,{'raw':!![],'transaction':_0x35ed5f});});}})['catch'](handleError(_0x120017,null));});}})['then'](function(_0x54dd54){var _0x4c02d8=_[_0x0543('0x2e')](_0x54dd54,function(_0x2835aa){return _0x2835aa[_0x0543('0x4e')]({'plain':!![]});});})[_0x0543('0x29')](respondWithResult(_0x120017,null))['catch'](handleError(_0x120017,null));};exports[_0x0543('0x6d')]=function(_0x1f0a31,_0x36f276,_0x3bd0af){return db[_0x0543('0x2f')][_0x0543('0x4d')]({'where':{'id':_0x1f0a31[_0x0543('0x4c')]['id']}})[_0x0543('0x29')](handleEntityNotFound(_0x36f276,null))[_0x0543('0x29')](function(_0xea2aa){if(_0xea2aa){return _0xea2aa['removeResources'](_0x1f0a31[_0x0543('0x34')][_0x0543('0x60')]);}})[_0x0543('0x29')](respondWithStatusCode(_0x36f276,null))[_0x0543('0x47')](handleError(_0x36f276,null));};exports[_0x0543('0x6e')]=function(_0x802ea6,_0x4beee9){var _0xda8501={};if(!_0x802ea6[_0x0543('0x34')]['section'])throw new Error('Missing\x20section\x20parameter');if(!_0x802ea6[_0x0543('0x34')][_0x0543('0x39')](_0x0543('0x3a'))){_0xda8501['limit']=qs[_0x0543('0x23')](_0x802ea6['query']['limit']);_0xda8501[_0x0543('0x22')]=qs['offset'](_0x802ea6[_0x0543('0x34')][_0x0543('0x22')]);}return db['UserProfile'][_0x0543('0x4d')]({'where':{'id':_0x802ea6['params']['id']}})[_0x0543('0x29')](function(_0x3de1fe){if(!_0x3de1fe)throw new Error(_0x0543('0x6f')+_0x802ea6['params']['id']);return db[_0x0543('0x2f')][_0x0543('0x6e')](_0x802ea6);})[_0x0543('0x29')](respondWithFilteredResult(_0x4beee9,_0xda8501))[_0x0543('0x47')](handleError(_0x4beee9,null));};
\ No newline at end of file
+var _0x964b=['UserProfile','includeAll','include','findAll','rows','catch','show','merge','find','create','body','keys','get','omit','crudPermissions','updatedAt','sequelize','UserProfileSection','params','autoAssociation','UserProfileResource','createdAt','sectionId','userProfileId','Resources','describe','addSections','transaction','each','removeSections','ids','getSections','enabled','includes','isEmpty','subsections','push','findOne','Dashboard','forEach','resourceId','Plugin','addResources','bulkCreate','removeResources','getResources','section','Missing\x20section\x20parameter','hasOwnProperty','No\x20User\x20Profile\x20found\x20for\x20id\x20','eml-format','rimraf','fast-json-patch','request-promise','moment','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','socket.io-emitter','redis','./userProfile.socket','register','status','json','offset','count','set','reject','update','destroy','then','end','sendStatus','error','stack','name','send','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','nolimit','limit','order','sort','filter','where','map','VIRTUAL','options'];(function(_0x1a7581,_0xc6a8eb){var _0x2f4b0d=function(_0x3725e4){while(--_0x3725e4){_0x1a7581['push'](_0x1a7581['shift']());}};_0x2f4b0d(++_0xc6a8eb);}(_0x964b,0x112));var _0xb964=function(_0x46c590,_0x432e4b){_0x46c590=_0x46c590-0x0;var _0x30ea3a=_0x964b[_0x46c590];return _0x30ea3a;};'use strict';var emlformat=require(_0xb964('0x0'));var rimraf=require(_0xb964('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb964('0x2'));var rp=require(_0xb964('0x3'));var moment=require(_0xb964('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xb964('0x5'));var path=require('path');var sox=require(_0xb964('0x6'));var csv=require(_0xb964('0x7'));var ejs=require(_0xb964('0x8'));var fs=require('fs');var fs_extra=require(_0xb964('0x9'));var _=require(_0xb964('0xa'));var squel=require(_0xb964('0xb'));var crypto=require(_0xb964('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xb964('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xb964('0xd'));var authService=require(_0xb964('0xe'));var qs=require(_0xb964('0xf'));var as=require(_0xb964('0x10'));var hardwareService=require(_0xb964('0x11'));var logger=require(_0xb964('0x12'))('api');var utils=require(_0xb964('0x13'));var config=require(_0xb964('0x14'));var licenseUtil=require(_0xb964('0x15'));var db=require(_0xb964('0x16'))['db'];config['redis']=_[_0xb964('0x17')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xb964('0x18'))(new Redis(config[_0xb964('0x19')]));require(_0xb964('0x1a'))[_0xb964('0x1b')](socket);function respondWithStatusCode(_0x2eebf3,_0x31c7f4){_0x31c7f4=_0x31c7f4||0xcc;return function(_0x3d5baa){if(_0x3d5baa){return _0x2eebf3['sendStatus'](_0x31c7f4);}return _0x2eebf3[_0xb964('0x1c')](_0x31c7f4)['end']();};}function respondWithResult(_0x538d2e,_0xd775d5){_0xd775d5=_0xd775d5||0xc8;return function(_0x19eb59){if(_0x19eb59){return _0x538d2e[_0xb964('0x1c')](_0xd775d5)[_0xb964('0x1d')](_0x19eb59);}};}function respondWithFilteredResult(_0x96e70a,_0x43309f){return function(_0x263276){if(_0x263276){var _0x44d78a=typeof _0x43309f[_0xb964('0x1e')]==='undefined'&&typeof _0x43309f['limit']==='undefined';var _0x2f5068=_0x263276[_0xb964('0x1f')];var _0x209075=_0x44d78a?0x0:_0x43309f[_0xb964('0x1e')];var _0x12056d=_0x44d78a?_0x263276['count']:_0x43309f['offset']+_0x43309f['limit'];var _0x36df0d;if(_0x12056d>=_0x2f5068){_0x12056d=_0x2f5068;_0x36df0d=0xc8;}else{_0x36df0d=0xce;}_0x96e70a[_0xb964('0x1c')](_0x36df0d);return _0x96e70a[_0xb964('0x20')]('Content-Range',_0x209075+'-'+_0x12056d+'/'+_0x2f5068)[_0xb964('0x1d')](_0x263276);}return null;};}function patchUpdates(_0x39f423){return function(_0x1ba889){try{jsonpatch['apply'](_0x1ba889,_0x39f423,!![]);}catch(_0x486d66){return BPromise[_0xb964('0x21')](_0x486d66);}return _0x1ba889['save']();};}function saveUpdates(_0x14dece,_0x2bace5){return function(_0x2b9b74){if(_0x2b9b74){return _0x2b9b74[_0xb964('0x22')](_0x14dece)['then'](function(_0x1cecce){return _0x1cecce;});}return null;};}function removeEntity(_0x1d9dcd,_0x2801dd){return function(_0x227d11){if(_0x227d11){return _0x227d11[_0xb964('0x23')]()[_0xb964('0x24')](function(){_0x1d9dcd[_0xb964('0x1c')](0xcc)[_0xb964('0x25')]();});}};}function handleEntityNotFound(_0x142f76,_0x4d82e2){return function(_0x2b5b7d){if(!_0x2b5b7d){_0x142f76[_0xb964('0x26')](0x194);}return _0x2b5b7d;};}function handleError(_0x9e2530,_0x271c55){_0x271c55=_0x271c55||0x1f4;return function(_0x4249fa){logger[_0xb964('0x27')](_0x4249fa[_0xb964('0x28')]);if(_0x4249fa['name']){delete _0x4249fa[_0xb964('0x29')];}_0x9e2530[_0xb964('0x1c')](_0x271c55)[_0xb964('0x2a')](_0x4249fa);};}exports['index']=function(_0x3615c0,_0x42fc07){var _0xa0df8b={},_0x2cc8b6={},_0x4321c3={'count':0x0,'rows':[]};var _0x36117c=_['map'](db['UserProfile'][_0xb964('0x2b')],function(_0x3b38c0){return{'name':_0x3b38c0[_0xb964('0x2c')],'type':_0x3b38c0[_0xb964('0x2d')]['key']};});_0x2cc8b6[_0xb964('0x2e')]=_['map'](_0x36117c,_0xb964('0x29'));_0x2cc8b6[_0xb964('0x2f')]=_['keys'](_0x3615c0['query']);_0x2cc8b6[_0xb964('0x30')]=_[_0xb964('0x31')](_0x2cc8b6[_0xb964('0x2e')],_0x2cc8b6[_0xb964('0x2f')]);_0xa0df8b[_0xb964('0x32')]=_[_0xb964('0x31')](_0x2cc8b6['model'],qs['fields'](_0x3615c0['query'][_0xb964('0x33')]));_0xa0df8b[_0xb964('0x32')]=_0xa0df8b[_0xb964('0x32')][_0xb964('0x34')]?_0xa0df8b[_0xb964('0x32')]:_0x2cc8b6[_0xb964('0x2e')];if(!_0x3615c0['query']['hasOwnProperty'](_0xb964('0x35'))){_0xa0df8b[_0xb964('0x36')]=qs[_0xb964('0x36')](_0x3615c0[_0xb964('0x2f')][_0xb964('0x36')]);_0xa0df8b['offset']=qs[_0xb964('0x1e')](_0x3615c0[_0xb964('0x2f')][_0xb964('0x1e')]);}_0xa0df8b[_0xb964('0x37')]=qs[_0xb964('0x38')](_0x3615c0[_0xb964('0x2f')][_0xb964('0x38')]);_0xa0df8b['where']=qs[_0xb964('0x30')](_['pick'](_0x3615c0[_0xb964('0x2f')],_0x2cc8b6['filters']),_0x36117c);if(_0x3615c0[_0xb964('0x2f')][_0xb964('0x39')]){_0xa0df8b['where']=_['merge'](_0xa0df8b[_0xb964('0x3a')],{'$or':_[_0xb964('0x3b')](_0x36117c,function(_0x2f9e6d){if(_0x2f9e6d[_0xb964('0x2d')]!==_0xb964('0x3c')){var _0x47c798={};_0x47c798[_0x2f9e6d[_0xb964('0x29')]]={'$like':'%'+_0x3615c0[_0xb964('0x2f')][_0xb964('0x39')]+'%'};return _0x47c798;}})});}_0xa0df8b=_['merge']({},_0xa0df8b,_0x3615c0[_0xb964('0x3d')]);var _0x16c4bc={'where':_0xa0df8b[_0xb964('0x3a')]};return db[_0xb964('0x3e')][_0xb964('0x1f')](_0x16c4bc)['then'](function(_0xe962f9){_0x4321c3[_0xb964('0x1f')]=_0xe962f9;if(_0x3615c0['query'][_0xb964('0x3f')]){_0xa0df8b[_0xb964('0x40')]=[{'all':!![]}];}return db[_0xb964('0x3e')][_0xb964('0x41')](_0xa0df8b);})['then'](function(_0x4a0d65){_0x4321c3[_0xb964('0x42')]=_0x4a0d65;return _0x4321c3;})[_0xb964('0x24')](respondWithFilteredResult(_0x42fc07,_0xa0df8b))[_0xb964('0x43')](handleError(_0x42fc07,null));};exports[_0xb964('0x44')]=function(_0x141f3d,_0x176c92){var _0x218562={'raw':![],'where':{'id':_0x141f3d['params']['id']}},_0x19687e={};_0x19687e[_0xb964('0x2e')]=_['keys'](db[_0xb964('0x3e')][_0xb964('0x2b')]);_0x19687e[_0xb964('0x2f')]=_['keys'](_0x141f3d[_0xb964('0x2f')]);_0x19687e[_0xb964('0x30')]=_[_0xb964('0x31')](_0x19687e[_0xb964('0x2e')],_0x19687e[_0xb964('0x2f')]);_0x218562[_0xb964('0x32')]=_[_0xb964('0x31')](_0x19687e[_0xb964('0x2e')],qs[_0xb964('0x33')](_0x141f3d['query']['fields']));_0x218562['attributes']=_0x218562[_0xb964('0x32')][_0xb964('0x34')]?_0x218562['attributes']:_0x19687e[_0xb964('0x2e')];if(_0x141f3d[_0xb964('0x2f')]['includeAll']){_0x218562['include']=[{'all':!![]}];}_0x218562=_[_0xb964('0x45')]({},_0x218562,_0x141f3d[_0xb964('0x3d')]);return db[_0xb964('0x3e')][_0xb964('0x46')](_0x218562)['then'](handleEntityNotFound(_0x176c92,null))[_0xb964('0x24')](respondWithResult(_0x176c92,null))['catch'](handleError(_0x176c92,null));};exports[_0xb964('0x47')]=function(_0x29bf54,_0x3cbfd5){return db[_0xb964('0x3e')][_0xb964('0x47')](_0x29bf54[_0xb964('0x48')],{})[_0xb964('0x24')](respondWithResult(_0x3cbfd5,0xc9))[_0xb964('0x43')](handleError(_0x3cbfd5,null));};exports['clone']=function(_0x2d74b7,_0x2f6406){var _0xd97da7={'where':{'id':_0x2d74b7['params']['id']}},_0x28c31a={};_0x28c31a[_0xb964('0x2e')]=_[_0xb964('0x49')](db[_0xb964('0x3e')][_0xb964('0x2b')]);_0xd97da7[_0xb964('0x32')]=_[_0xb964('0x31')](_0x28c31a[_0xb964('0x2e')],qs[_0xb964('0x33')](_0x2d74b7[_0xb964('0x2f')][_0xb964('0x33')]));_0xd97da7[_0xb964('0x32')]=_0xd97da7[_0xb964('0x32')][_0xb964('0x34')]?_0xd97da7[_0xb964('0x32')]:_0x28c31a[_0xb964('0x2e')];if(_0x2d74b7['query'][_0xb964('0x3f')]){_0xd97da7['include']=[{'all':!![]}];}_0xd97da7=_[_0xb964('0x45')]({},_0xd97da7,_0x2d74b7[_0xb964('0x3d')]);return db[_0xb964('0x3e')][_0xb964('0x46')](_0xd97da7)['then'](handleEntityNotFound(_0x2f6406,null))[_0xb964('0x24')](function(_0xc73004){if(_0xc73004){var _0x3947de=_0xc73004[_0xb964('0x4a')]({'plain':!![]});_0x3947de=qs[_0xb964('0x4b')](_0x3947de,['id','createdAt','updatedAt',_0xb964('0x4c')]);_0x2d74b7['body']=_[_0xb964('0x4b')](_0x2d74b7[_0xb964('0x48')],['id','createdAt',_0xb964('0x4d')]);return db[_0xb964('0x4e')]['transaction'](function(_0x44d05d){return db[_0xb964('0x3e')]['create'](_[_0xb964('0x45')](_0x3947de,_0x2d74b7['body']),{'include':_0x2d74b7[_0xb964('0x2f')][_0xb964('0x3f')]?[{'all':!![]}]:undefined,'transaction':_0x44d05d})[_0xb964('0x24')](function(_0xa4874){var _0x2e787a=_0xa4874[_0xb964('0x4a')]({'plain':!![]});return db[_0xb964('0x4f')]['findAll']({'where':{'userProfileId':_0x2d74b7[_0xb964('0x50')]['id']},'raw':!![]})['then'](function(_0x3f3b42){if(_0x3f3b42){return BPromise['each'](_0x3f3b42,function(_0x21c239){return new BPromise(function(_0x2f0fe7,_0x7c61f1){if(_0x21c239[_0xb964('0x51')]===null||_0x21c239[_0xb964('0x51')]===0x1)_0x2f0fe7(null);return db[_0xb964('0x52')]['findAll']({'where':{'sectionId':_0x21c239['id']},'raw':!![]})[_0xb964('0x24')](function(_0xd527bb){var _0x58cfbe=_[_0xb964('0x3b')](_0xd527bb,function(_0x1665b6){return qs['omit'](_0x1665b6,['id',_0xb964('0x53'),_0xb964('0x4d'),_0xb964('0x54')]);});_0x2f0fe7(_0x58cfbe);})['catch'](function(_0x299588){_0x7c61f1(_0x299588);});})[_0xb964('0x24')](function(_0x3840a0){var _0x146f78=qs[_0xb964('0x4b')](_0x21c239,['id',_0xb964('0x53'),_0xb964('0x4d')]);_0x146f78[_0xb964('0x55')]=_0x2e787a['id'];if(_0x3840a0)_0x146f78[_0xb964('0x56')]=_0x3840a0;return _0x146f78;})['then'](function(_0x15e8b2){return db['UserProfileSection']['create'](_0x15e8b2,{'include':[{'model':db[_0xb964('0x52')],'as':'Resources'}],'raw':!![],'transaction':_0x44d05d});});})[_0xb964('0x24')](function(){return _0x2e787a;});}});});});}})[_0xb964('0x24')](respondWithResult(_0x2f6406,0xc9))[_0xb964('0x43')](handleError(_0x2f6406,null));};exports['update']=function(_0x157805,_0x2235ce){if(_0x157805['body']['id']){delete _0x157805[_0xb964('0x48')]['id'];}return db[_0xb964('0x3e')][_0xb964('0x46')]({'where':{'id':_0x157805['params']['id']}})[_0xb964('0x24')](handleEntityNotFound(_0x2235ce,null))['then'](saveUpdates(_0x157805[_0xb964('0x48')],null))['then'](respondWithResult(_0x2235ce,null))[_0xb964('0x43')](handleError(_0x2235ce,null));};exports[_0xb964('0x23')]=function(_0x452cca,_0x1f3f68){return db['UserProfile'][_0xb964('0x46')]({'where':{'id':_0x452cca['params']['id']}})[_0xb964('0x24')](handleEntityNotFound(_0x1f3f68,null))[_0xb964('0x24')](removeEntity(_0x1f3f68,null))[_0xb964('0x43')](handleError(_0x1f3f68,null));};exports[_0xb964('0x57')]=function(_0x541999,_0x18d18c){return db[_0xb964('0x3e')][_0xb964('0x57')]()[_0xb964('0x24')](respondWithResult(_0x18d18c,null))[_0xb964('0x43')](handleError(_0x18d18c,null));};exports[_0xb964('0x58')]=function(_0xcd064b,_0x302351){var _0x1fdcbd=_0xcd064b[_0xb964('0x48')];return db['UserProfile'][_0xb964('0x46')]({'where':{'id':_0xcd064b[_0xb964('0x50')]['id']}})[_0xb964('0x24')](handleEntityNotFound(_0x302351,null))[_0xb964('0x24')](function(_0x289901){if(_0x289901){return db[_0xb964('0x4e')][_0xb964('0x59')](function(_0x39d8e1){return db[_0xb964('0x4f')][_0xb964('0x23')]({'where':{'userProfileId':_0xcd064b[_0xb964('0x50')]['id'],'sectionId':_['map'](_0x1fdcbd,function(_0x5e9151){return _0x5e9151[_0xb964('0x54')];})},'transaction':_0x39d8e1})[_0xb964('0x24')](function(){var _0x3ce6ba=_['map'](_0x1fdcbd,function(_0x351e23){_0x351e23['userProfileId']=_0xcd064b[_0xb964('0x50')]['id'];return _0x351e23;});var _0x4f4892=[];return BPromise[_0xb964('0x5a')](_0x3ce6ba,function(_0x206fc8){return db[_0xb964('0x4f')][_0xb964('0x47')](_0x206fc8,{'include':[{'model':db[_0xb964('0x52')],'as':'Resources'}],'raw':!![],'transaction':_0x39d8e1})[_0xb964('0x24')](function(_0x4a2ebf){_0x4f4892['push'](_0x4a2ebf[_0xb964('0x4a')]({'plain':!![]}));});})['then'](function(){return _0x4f4892;});});});}})[_0xb964('0x24')](function(_0x564ad0){return _0x564ad0;})[_0xb964('0x24')](respondWithResult(_0x302351,null))[_0xb964('0x43')](handleError(_0x302351,null));};exports[_0xb964('0x5b')]=function(_0x169add,_0x4d34f3){var _0x3d95e9;return db[_0xb964('0x3e')][_0xb964('0x46')]({'where':{'id':_0x169add[_0xb964('0x50')]['id']},'attributes':['id','name']})[_0xb964('0x24')](handleEntityNotFound(_0x4d34f3,null))[_0xb964('0x24')](function(_0x51e057){if(_0x51e057){_0x3d95e9=_0x51e057;return db[_0xb964('0x4f')][_0xb964('0x23')]({'where':{'userProfileId':_0x169add['params']['id'],'sectionId':_0x169add['query'][_0xb964('0x5c')]}});}})[_0xb964('0x24')](function(){return _0x3d95e9;})['then'](respondWithStatusCode(_0x4d34f3,null))[_0xb964('0x43')](handleError(_0x4d34f3,null));};exports[_0xb964('0x5d')]=function(_0x26ce8f,_0x293d12){var _0x554a5a=[];var _0x24d922=[];return db[_0xb964('0x4f')][_0xb964('0x41')]({'where':{'userProfileId':_0x26ce8f[_0xb964('0x50')]['id']},'raw':!![]})[_0xb964('0x24')](function(_0x48d2c9){_0x554a5a=_['filter'](_0x48d2c9,function(_0x33b756){return _0x33b756[_0xb964('0x5e')]===0x1||_[_0xb964('0x5f')]([0x3eb,0x709],_0x33b756[_0xb964('0x54')]);});if(!_[_0xb964('0x60')](_0x554a5a)){return _[_0xb964('0x3b')](_0x554a5a,function(_0x55ef89){return _0x55ef89[_0xb964('0x54')];});}else{return;}})[_0xb964('0x24')](function(_0x46b1c7){if(_0x46b1c7)_0x24d922=_0x46b1c7;if(_[_0xb964('0x5f')](_0x24d922,0x64)){var _0x52171b=_['find'](_0x554a5a,{'sectionId':0x64});return hasDefaultDashboard(_0x52171b)[_0xb964('0x24')](function(_0x23e516){return _[_0xb964('0x3b')](_0x554a5a,function(_0x28cba2){if(_0x28cba2[_0xb964('0x54')]===0x64){_0x28cba2['subsections']=_0x23e516;}return _0x28cba2;});});}else{return;}})[_0xb964('0x24')](function(_0x3f6148){if(_0x3f6148)_0x554a5a=_0x3f6148;if(_[_0xb964('0x5f')](_0x24d922,0x3eb)){var _0x4667d6=_[_0xb964('0x46')](_0x554a5a,{'sectionId':0x3eb});return getCustomDashboards(_0x4667d6)[_0xb964('0x24')](function(_0xbe89ff){return _[_0xb964('0x3b')](_0x554a5a,function(_0x30556b){if(_0x4667d6['enabled']){if(_0x30556b[_0xb964('0x54')]===0x3eb){_0x30556b[_0xb964('0x61')]=_0xbe89ff;}}else{if(_0x30556b['sectionId']===0x64){_0x30556b['subsections']=_0xbe89ff;}}return _0x30556b;});});}else{return;}})[_0xb964('0x24')](function(_0x44f4e3){if(_0x44f4e3)_0x554a5a=_0x44f4e3;if(_[_0xb964('0x5f')](_0x24d922,0x709)){var _0x3570a8=_[_0xb964('0x46')](_0x554a5a,{'sectionId':0x709});return getPlugins(_0x3570a8)[_0xb964('0x24')](function(_0x5306f2){if(_0x3570a8['enabled']){return _[_0xb964('0x3b')](_0x554a5a,function(_0x367c17){if(_0x367c17['sectionId']===0x709){_0x367c17[_0xb964('0x61')]=_0x5306f2;}return _0x367c17;});}else{var _0x1ab87d={'sectionId':0x76c,'enabled':0x1,'subsections':_0x5306f2};var _0x4ec7bb=_[_0xb964('0x3b')](_0x554a5a);_0x4ec7bb[_0xb964('0x62')](_0x1ab87d);return _0x4ec7bb;}});}else{return;}})[_0xb964('0x24')](function(_0x3298ad){if(_0x3298ad)_0x554a5a=_0x3298ad;return _[_0xb964('0x39')](_0x554a5a,[_0xb964('0x5e'),0x1]);})[_0xb964('0x24')](respondWithResult(_0x293d12,null))[_0xb964('0x43')](handleError(_0x293d12,null));};function hasDefaultDashboard(_0x3285cb){var _0x367eb8=[0x65];return new BPromise(function(_0x49707f,_0x541323){try{if(_0x3285cb[_0xb964('0x51')]){_0x49707f(_0x367eb8);}else{return db[_0xb964('0x52')][_0xb964('0x63')]({'where':{'sectionId':_0x3285cb['id']},'raw':!![]})['then'](function(_0x4a76f7){_0x4a76f7?_0x49707f(_0x367eb8):_0x49707f();});}}catch(_0x4d1b94){_0x541323(_0x4d1b94);}});}function getCustomDashboards(_0x1e0889){var _0x2ba9e5=[];return new BPromise(function(_0x38e30b,_0x3d4778){try{if(_0x1e0889[_0xb964('0x51')]){return db[_0xb964('0x64')]['findAll']({'raw':!![]})[_0xb964('0x24')](function(_0x4dbe07){_0x4dbe07[_0xb964('0x65')](function(_0x45854d){_0x2ba9e5['push'](_0x45854d['id']+0x1869f);});_0x38e30b(_0x2ba9e5);});}else{return db[_0xb964('0x52')][_0xb964('0x41')]({'where':{'sectionId':_0x1e0889['id']},'raw':!![]})[_0xb964('0x24')](function(_0x2d0e69){_0x2d0e69[_0xb964('0x65')](function(_0x53c7d0){_0x2ba9e5[_0xb964('0x62')](_0x53c7d0[_0xb964('0x66')]+0x1869f);});_0x38e30b(_0x2ba9e5);});}}catch(_0x1447a2){_0x3d4778(_0x1447a2);}});}function getPlugins(_0x476d92){var _0x1341a9=[];return new BPromise(function(_0x1e336a,_0x407ff7){try{if(_0x476d92['autoAssociation']){return db[_0xb964('0x67')][_0xb964('0x41')]({'raw':!![]})[_0xb964('0x24')](function(_0x26a401){_0x26a401[_0xb964('0x65')](function(_0x1df67e){_0x1341a9[_0xb964('0x62')](_0x1df67e['id']+0x15b38);});_0x1e336a(_0x1341a9);});}else{return db[_0xb964('0x52')]['findAll']({'where':{'sectionId':_0x476d92['id']},'raw':!![]})['then'](function(_0xeed18c){_0xeed18c[_0xb964('0x65')](function(_0x5b3c1d){_0x1341a9['push'](_0x5b3c1d[_0xb964('0x66')]+0x15b38);});_0x1e336a(_0x1341a9);});}}catch(_0x2d59b8){_0x407ff7(_0x2d59b8);}});}exports[_0xb964('0x68')]=function(_0x3e080d,_0xbc4508){return db[_0xb964('0x3e')][_0xb964('0x46')]({'where':{'id':_0x3e080d[_0xb964('0x50')]['id']}})[_0xb964('0x24')](handleEntityNotFound(_0xbc4508,null))['then'](function(_0x12ea3d){if(_0x12ea3d){return db[_0xb964('0x4e')][_0xb964('0x59')](function(_0x360036){return db[_0xb964('0x4f')][_0xb964('0x41')]({'where':{'userProfileId':_0x3e080d['params']['id']},'attributes':['id'],'raw':!![]})[_0xb964('0x24')](function(_0x233466){if(_0x233466){return db[_0xb964('0x4f')][_0xb964('0x23')]({'where':{'userProfileId':_0x3e080d['params']['id'],'id':_[_0xb964('0x3b')](_0x233466,function(_0x3b7988){return _0x3b7988['id'];})},'transaction':_0x360036});}})[_0xb964('0x24')](function(_0x534578){var _0xfcfaba=_[_0xb964('0x3b')](_0x3e080d['body'],function(_0x4a7746){_0x4a7746[_0xb964('0x55')]=_0x3e080d[_0xb964('0x50')]['id'];return _0x4a7746;});return db[_0xb964('0x4f')][_0xb964('0x69')](_0xfcfaba,{'raw':!![],'transaction':_0x360036});})[_0xb964('0x24')](function(_0x4f1df1){var _0x5b8844=_[_0xb964('0x39')](_['map'](_0x4f1df1,function(_0xdf8915){return _0xdf8915[_0xb964('0x4a')]({'plain':!![]});}),{'includeAll':![]});if(_0x5b8844){return db[_0xb964('0x4f')]['findAll']({'where':{'userProfileId':_0x3e080d['params']['id'],'sectionId':_[_0xb964('0x3b')](_0x5b8844,function(_0xcf9333){return _0xcf9333[_0xb964('0x54')];})},'attributes':['id',_0xb964('0x54')],'raw':!![]})[_0xb964('0x24')](function(_0x5746b7){var _0x4ce9f2=_[_0xb964('0x3b')](_0x3e080d[_0xb964('0x48')],function(_0x310f9b){_0x310f9b['userProfileId']=_0x3e080d[_0xb964('0x50')]['id'];return _0x310f9b;});return db['UserProfileResource'][_0xb964('0x69')](_0x4ce9f2,{'raw':!![],'transaction':_0x360036});});}})[_0xb964('0x43')](handleError(_0xbc4508,null));});}})[_0xb964('0x24')](function(_0x1b9773){var _0x4b2803=_[_0xb964('0x3b')](_0x1b9773,function(_0x2f21d2){return _0x2f21d2[_0xb964('0x4a')]({'plain':!![]});});})['then'](respondWithResult(_0xbc4508,null))[_0xb964('0x43')](handleError(_0xbc4508,null));};exports[_0xb964('0x6a')]=function(_0xc5c8c6,_0x37c3ba,_0x1a1998){return db[_0xb964('0x3e')][_0xb964('0x46')]({'where':{'id':_0xc5c8c6[_0xb964('0x50')]['id']}})['then'](handleEntityNotFound(_0x37c3ba,null))[_0xb964('0x24')](function(_0x5532e3){if(_0x5532e3){return _0x5532e3[_0xb964('0x6a')](_0xc5c8c6[_0xb964('0x2f')][_0xb964('0x5c')]);}})[_0xb964('0x24')](respondWithStatusCode(_0x37c3ba,null))['catch'](handleError(_0x37c3ba,null));};exports[_0xb964('0x6b')]=function(_0xd13e14,_0x278e24){var _0x304954={};if(!_0xd13e14['query'][_0xb964('0x6c')])throw new Error(_0xb964('0x6d'));if(!_0xd13e14['query'][_0xb964('0x6e')](_0xb964('0x35'))){_0x304954[_0xb964('0x36')]=qs[_0xb964('0x36')](_0xd13e14['query']['limit']);_0x304954[_0xb964('0x1e')]=qs[_0xb964('0x1e')](_0xd13e14[_0xb964('0x2f')][_0xb964('0x1e')]);}return db[_0xb964('0x3e')][_0xb964('0x46')]({'where':{'id':_0xd13e14[_0xb964('0x50')]['id']}})[_0xb964('0x24')](function(_0x5dc11c){if(!_0x5dc11c)throw new Error(_0xb964('0x6f')+_0xd13e14[_0xb964('0x50')]['id']);return db[_0xb964('0x3e')][_0xb964('0x6b')](_0xd13e14);})[_0xb964('0x24')](respondWithFilteredResult(_0x278e24,_0x304954))[_0xb964('0x43')](handleError(_0x278e24,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1867=['update','remove','emit','hasOwnProperty','exports','events','../../mysqldb','setMaxListeners'];(function(_0x5b977e,_0x110ba6){var _0x636edf=function(_0xabf91e){while(--_0xabf91e){_0x5b977e['push'](_0x5b977e['shift']());}};_0x636edf(++_0x110ba6);}(_0x1867,0xb5));var _0x7186=function(_0x24f85f,_0x239bae){_0x24f85f=_0x24f85f-0x0;var _0x35a3c4=_0x1867[_0x24f85f];return _0x35a3c4;};'use strict';var EventEmitter=require(_0x7186('0x0'));var UserProfile=require(_0x7186('0x1'))['db']['UserProfile'];var UserProfileEvents=new EventEmitter();UserProfileEvents[_0x7186('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x7186('0x3'),'afterDestroy':_0x7186('0x4')};function emitEvent(_0xeb165d){return function(_0xc7f9f0,_0x25d50d,_0x16dcd1){UserProfileEvents[_0x7186('0x5')](_0xeb165d+':'+_0xc7f9f0['id'],_0xc7f9f0);UserProfileEvents[_0x7186('0x5')](_0xeb165d,_0xc7f9f0);_0x16dcd1(null);};}for(var e in events){if(events[_0x7186('0x6')](e)){var event=events[e];UserProfile['hook'](e,emitEvent(event));}}module[_0x7186('0x7')]=UserProfileEvents;
\ No newline at end of file
+var _0x3588=['events','../../mysqldb','UserProfile','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook'];(function(_0x128cac,_0x5bed99){var _0x4bc54a=function(_0x32914f){while(--_0x32914f){_0x128cac['push'](_0x128cac['shift']());}};_0x4bc54a(++_0x5bed99);}(_0x3588,0x82));var _0x8358=function(_0x37f364,_0x56f6ae){_0x37f364=_0x37f364-0x0;var _0x1a97dd=_0x3588[_0x37f364];return _0x1a97dd;};'use strict';var EventEmitter=require(_0x8358('0x0'));var UserProfile=require(_0x8358('0x1'))['db'][_0x8358('0x2')];var UserProfileEvents=new EventEmitter();UserProfileEvents[_0x8358('0x3')](0x0);var events={'afterCreate':_0x8358('0x4'),'afterUpdate':_0x8358('0x5'),'afterDestroy':_0x8358('0x6')};function emitEvent(_0x586dd2){return function(_0x3fd803,_0xa7a3d4,_0x146ed6){UserProfileEvents[_0x8358('0x7')](_0x586dd2+':'+_0x3fd803['id'],_0x3fd803);UserProfileEvents['emit'](_0x586dd2,_0x3fd803);_0x146ed6(null);};}for(var e in events){if(events[_0x8358('0x8')](e)){var event=events[e];UserProfile[_0x8358('0x9')](e,emitEvent(event));}}module['exports']=UserProfileEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb145=['name','resourceId','type','childModel','SquareProject','odbc','SquareOdbc','squarerecordings','SquareRecording','parentSections','SquareProjects','projectName','projects','JscriptyProject','contacts','CmContact','Lists','ListId','CmList','companies','globalcustomfields','CmCustomField','chatqueues','chatwebsites','ChatWebsite','faxaccounts','FaxAccount','inboundroutes','outboundroutes','VoiceExtension','contexts','VoiceContext','voicemails','voicerecordings','VoiceRecording','membername','role','Telephones','User','telephone','VoiceQueues','queue','VoiceQueue','inbound','QueueCampaigns','outbound','musiconholds','VoiceMusicOnHold','voiceprefixes','Campaign','mailqueues','MailQueue','mailaccounts','MailAccount','mailsubstatuses','MailSubstatus','openchannelqueues','OpenchannelQueue','openchannelaccounts','OpenchannelAccount','SmsQueue','smsaccounts','whatsappqueues','WhatsappQueue','whatsappaccounts','teams','voicequeues','agents','telephones','admin','zendeskaccounts','ZendeskAccount','salesforceaccounts','SalesforceAccount','freshdeskaccounts','deskaccounts','DeskAccount','zohoaccounts','CannedAnswer','Disposition','customdashboards','intervals','Interval','pauses','Pause','scheduler','Schedule','Sound','tags','Tag','templates','Template','triggers','Trigger','trunks','Variable','plugins','Plugin','extractedreports','Reports','AnalyticMetric','toUpperCase','QueryTypes','SELECT','ui.','InteractionId','ui.createdAt','from','user_has_','_interactions','ui.UserId\x20=\x20?','query','toString','OpenTabs','UserProfile','user_profiles','Invalid\x20section\x20\x27','length','push','UserProfileSection','params','all','ignore','find','autoAssociation','rawAttributes','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','limit','offset','order','sort','pick','where','key','VIRTUAL','foreignKey','forEach','merge','options','AnalyticExtractedReport','include','reportType','DefaultReports','reportId','CustomReports','count','includeAll','color','ThroughTags','tag','rows','Agents','chat','dataValues','sms','fax','whatsapp','./userProfile.attributes','../../components/parsers/qs','squel','exports','models','filter','field','value','findAll','associatedResources','catch','model','then','map'];(function(_0x11590d,_0x144469){var _0x574912=function(_0x44d6d7){while(--_0x44d6d7){_0x11590d['push'](_0x11590d['shift']());}};_0x574912(++_0x144469);}(_0xb145,0xa3));var _0x5b14=function(_0x4954ce,_0x30295f){_0x4954ce=_0x4954ce-0x0;var _0x201c7d=_0xb145[_0x4954ce];return _0x201c7d;};'use strict';var _=require('lodash');var attributes=require(_0x5b14('0x0'));var qs=require(_0x5b14('0x1'));var squel=require(_0x5b14('0x2'));module[_0x5b14('0x3')]=function(_0x40609d){var _0x3defa8=_0x40609d[_0x5b14('0x4')];function _0x34b4cd(_0x5111cd,_0x1e0b5b){return new Promise(function(_0x15490e,_0x392425){if(!_0x1e0b5b)return _0x15490e(null);var _0x4d82ad=_0x1e0b5b['filter']?{[_0x1e0b5b[_0x5b14('0x5')][_0x5b14('0x6')]]:_0x1e0b5b[_0x5b14('0x5')][_0x5b14('0x7')]}:undefined;return _0x3defa8[_0x5111cd][_0x5b14('0x8')]({'where':_0x4d82ad,'raw':!![]})['then'](function(_0x32d729){_0x1e0b5b[_0x5b14('0x9')]=_['map'](_0x32d729,'id');_0x15490e(_0x1e0b5b);})[_0x5b14('0xa')](function(_0x17047f){_0x392425(_0x17047f);});});}function _0x1ecffb(_0xe146e8,_0x2102f0){return new Promise(function(_0x4fb6da,_0x265df3){var _0x50997e=_0xe146e8[_0x5b14('0x5')]?{[_0xe146e8[_0x5b14('0x5')][_0x5b14('0x6')]]:_0xe146e8[_0x5b14('0x5')][_0x5b14('0x7')]}:undefined;return _0x3defa8[_0xe146e8[_0x5b14('0xb')]]['findAll']({'where':_0x50997e,'raw':!![]})[_0x5b14('0xc')](function(_0x16f2a1){_0x2102f0[_0x5b14('0x9')]=_[_0x5b14('0xd')](_0x16f2a1,function(_0xba7e13){return _0xba7e13[_0x5b14('0xe')];});_0x4fb6da(_0x2102f0);})[_0x5b14('0xa')](function(_0xe5af75){_0x265df3(_0xe5af75);});});}function _0x183b0a(_0x287bb7,_0x221344,_0x2c3efb){if(!_0x221344)return Promise['resolve'](null);return new Promise(function(_0x24cfd0,_0x50866a){return _0x3defa8['UserProfileResource']['findAll']({'where':{'sectionId':_0x221344['id']},'raw':!![]})[_0x5b14('0xc')](function(_0x3035b5){if(_0x287bb7[_0x5b14('0x6')]&&_0x287bb7[_0x5b14('0x6')]!=='id'){_0x221344[_0x5b14('0x9')]=_[_0x5b14('0xd')](_0x3035b5,function(_0x19e6f8){return _0x19e6f8[_0x287bb7['field']];});}else{if(_0x2c3efb==='AnalyticExtractedReport'){_0x221344['associatedResources']=_[_0x5b14('0xd')](_0x3035b5,function(_0x2afa17){return{'id':_0x2afa17[_0x5b14('0xf')],'type':_0x2afa17[_0x5b14('0x10')]};});}else{_0x221344['associatedResources']=_[_0x5b14('0xd')](_0x3035b5,function(_0x1577f7){return _0x1577f7['resourceId'];});}}_0x24cfd0(_0x221344);})[_0x5b14('0xa')](function(_0x30734f){_0x50866a(_0x30734f);});});}function _0x50951f(_0x33a293,_0x54073f){var _0x59282c={'parentSections':[]};switch(_0x33a293['toLowerCase']()){case'squareprojects':_0x59282c[_0x5b14('0x11')]=_0x5b14('0x12');break;case _0x5b14('0x13'):_0x59282c['childModel']=_0x5b14('0x14');break;case _0x5b14('0x15'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x16');_0x59282c[_0x5b14('0x17')]=[{'name':_0x5b14('0x18'),'field':_0x5b14('0xe'),'foreignKey':_0x5b14('0x19')}];break;case _0x5b14('0x1a'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x1b');break;case _0x5b14('0x1c'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x1d');_0x59282c['parentSections']=[{'name':_0x5b14('0x1e'),'field':'id','foreignKey':_0x5b14('0x1f')}];break;case'lists':_0x59282c['childModel']=_0x5b14('0x20');break;case _0x5b14('0x21'):_0x59282c['childModel']='CmCompany';break;case _0x5b14('0x22'):_0x59282c['childModel']=_0x5b14('0x23');break;case _0x5b14('0x24'):_0x59282c['childModel']='ChatQueue';break;case _0x5b14('0x25'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x26');break;case'faxqueues':_0x59282c[_0x5b14('0x11')]='FaxQueue';break;case _0x5b14('0x27'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x28');break;case _0x5b14('0x29'):case'internalroutes':case _0x5b14('0x2a'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x2b');break;case _0x5b14('0x2c'):_0x59282c['childModel']=_0x5b14('0x2d');break;case _0x5b14('0x2e'):_0x59282c[_0x5b14('0x11')]='VoiceMail';break;case _0x5b14('0x2f'):_0x59282c['childModel']=_0x5b14('0x30');_0x59282c[_0x5b14('0x17')]=[{'name':'Agents','field':_0x5b14('0xe'),'foreignKey':_0x5b14('0x31'),'model':'User','filter':{'field':_0x5b14('0x32'),'value':['agent']}},{'name':_0x5b14('0x33'),'field':_0x5b14('0xe'),'foreignKey':_0x5b14('0x31'),'model':_0x5b14('0x34'),'filter':{'field':'role','value':[_0x5b14('0x35')]}},{'name':_0x5b14('0x36'),'field':_0x5b14('0xe'),'foreignKey':_0x5b14('0x37'),'model':_0x5b14('0x38'),'filter':{'field':_0x5b14('0x10'),'value':[_0x5b14('0x39')]}},{'name':_0x5b14('0x3a'),'field':_0x5b14('0xe'),'foreignKey':_0x5b14('0x37'),'model':_0x5b14('0x38'),'filter':{'field':_0x5b14('0x10'),'value':[_0x5b14('0x3b')]}}];break;case _0x5b14('0x3c'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x3d');break;case'chanspies':_0x59282c[_0x5b14('0x11')]='VoiceChanSpy';break;case _0x5b14('0x3e'):_0x59282c[_0x5b14('0x11')]='VoicePrefix';break;case'ivrcampaigns':_0x59282c['childModel']=_0x5b14('0x3f');break;case _0x5b14('0x40'):_0x59282c['childModel']=_0x5b14('0x41');break;case _0x5b14('0x42'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x43');break;case _0x5b14('0x44'):_0x59282c['childModel']=_0x5b14('0x45');break;case _0x5b14('0x46'):_0x59282c['childModel']=_0x5b14('0x47');break;case _0x5b14('0x48'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x49');break;case'smsqueues':_0x59282c[_0x5b14('0x11')]=_0x5b14('0x4a');break;case _0x5b14('0x4b'):_0x59282c[_0x5b14('0x11')]='SmsAccount';break;case _0x5b14('0x4c'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x4d');break;case _0x5b14('0x4e'):_0x59282c['childModel']='WhatsappAccount';break;case _0x5b14('0x4f'):_0x59282c[_0x5b14('0x11')]='Team';break;case _0x5b14('0x50'):case'queuecampaigns':_0x59282c[_0x5b14('0x11')]=_0x5b14('0x38');if(_0x54073f){_0x59282c[_0x5b14('0x17')]=[{'name':_0x5b14('0x36')},{'name':_0x5b14('0x3a')}];}break;case'users':case _0x5b14('0x51'):case _0x5b14('0x52'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x34');if(_0x54073f){_0x59282c[_0x5b14('0x17')]=[{'name':'Users','filter':{'field':'role','value':[_0x5b14('0x53'),'user']},'ignore':!![]},{'name':'Agents'},{'name':'Telephones'}];}break;case _0x5b14('0x54'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x55');break;case _0x5b14('0x56'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x57');break;case _0x5b14('0x58'):_0x59282c['childModel']='FreshdeskAccount';break;case'sugarcrmaccounts':_0x59282c['childModel']='SugarcrmAccount';break;case _0x5b14('0x59'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x5a');break;case _0x5b14('0x5b'):_0x59282c[_0x5b14('0x11')]='ZohoAccount';break;case'vtigeraccounts':_0x59282c[_0x5b14('0x11')]=_0x5b14('0x34');break;case'cannedanswers':_0x59282c[_0x5b14('0x11')]=_0x5b14('0x5c');break;case'dispositions':_0x59282c['childModel']=_0x5b14('0x5d');break;case _0x5b14('0x5e'):_0x59282c[_0x5b14('0x11')]='Dashboard';break;case _0x5b14('0x5f'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x60');break;case _0x5b14('0x61'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x62');break;case _0x5b14('0x63'):_0x59282c['childModel']=_0x5b14('0x64');break;case'sounds':_0x59282c[_0x5b14('0x11')]=_0x5b14('0x65');break;case _0x5b14('0x66'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x67');break;case _0x5b14('0x68'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x69');break;case _0x5b14('0x6a'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x6b');break;case _0x5b14('0x6c'):_0x59282c['childModel']='Trunk';break;case'variables':_0x59282c[_0x5b14('0x11')]=_0x5b14('0x6d');break;case _0x5b14('0x6e'):_0x59282c[_0x5b14('0x11')]=_0x5b14('0x6f');break;case _0x5b14('0x70'):_0x59282c[_0x5b14('0x11')]='AnalyticExtractedReport';_0x59282c[_0x5b14('0x17')]=[{'name':_0x5b14('0x71'),'field':'id','foreignKey':'reportId'}];break;case'metrics':_0x59282c[_0x5b14('0x11')]=_0x5b14('0x72');break;}return _0x59282c;}function _0x414f79(_0x16c74e,_0x32629d){var _0x1009e5=_0x16c74e['charAt'](0x0)[_0x5b14('0x73')]()+_0x16c74e['slice'](0x1);var _0x426c27={'type':_0x3defa8['Sequelize'][_0x5b14('0x74')][_0x5b14('0x75')],'raw':!![]};return new Promise(function(_0x3f7786,_0x49f348){var _0x2084c9=squel['select']()[_0x5b14('0x6')](_0x5b14('0x76')+_0x1009e5+_0x5b14('0x77'),'id')['field'](_0x5b14('0x78'))[_0x5b14('0x79')](_0x5b14('0x7a')+_0x16c74e+_0x5b14('0x7b'),'ui')['where'](_0x5b14('0x7c'),_0x32629d['id']);return _0x3defa8['sequelize'][_0x5b14('0x7d')](_0x2084c9[_0x5b14('0x7e')](),_0x426c27)['then'](function(_0x4a506a){_0x32629d[_0x1009e5+_0x5b14('0x7f')]=_0x4a506a;_0x3f7786(_0x4a506a);})[_0x5b14('0xa')](function(_0xb50187){_0x49f348(_0xb50187);});});}return _0x40609d['define'](_0x5b14('0x80'),attributes,{'tableName':_0x5b14('0x81'),'paranoid':![],'indexes':[],'timestamps':!![],'classMethods':{'getResources':function(_0x5c9afe){var _0x4b9720={'raw':![],'where':{}};var _0x3f4e96={};var _0x18ae4f={'count':0x0,'rows':[]};var _0x23db69=_0x5c9afe[_0x5b14('0x7d')]['section'];var _0x25b569=_0x5c9afe[_0x5b14('0x7d')]['mergeResources']||![];var _0x5e950d=_0x50951f(_0x23db69,_0x25b569);if(!_0x5e950d[_0x5b14('0x11')])throw new Error(_0x5b14('0x82')+_0x23db69+'\x27');var _0x4d3667=[{'name':_0x23db69}];if(!_['isEmpty'](_0x5e950d[_0x5b14('0x17')]))_0x4d3667=_0x5e950d[_0x5b14('0x17')];var _0x327b7e=[];for(var _0x5b4831=0x0;_0x5b4831<_0x4d3667[_0x5b14('0x83')];_0x5b4831++){_0x327b7e[_0x5b14('0x84')](_0x3defa8[_0x5b14('0x85')]['find']({'where':{'userProfileId':_0x5c9afe[_0x5b14('0x86')]['id'],'name':_0x4d3667[_0x5b4831][_0x5b14('0xe')]},'raw':!![]}));}return Promise[_0x5b14('0x87')](_0x327b7e)['then'](function(_0x439817){var _0x404adb=_[_0x5b14('0x5')](_0x439817,function(_0x2ca6dd){return _0x2ca6dd?_0x2ca6dd:undefined;});var _0x1c0fa2=_[_0x5b14('0x5')](_0x4d3667,[_0x5b14('0x88'),!![]]);var _0x51c15d=_['isEmpty'](_0x404adb)&&_['isEmpty'](_0x1c0fa2)?null:_['union'](_0x1c0fa2,_0x404adb);if(!_0x51c15d)return null;var _0x34e049=[];for(var _0x1f0867=0x0;_0x1f0867<_0x51c15d[_0x5b14('0x83')];_0x1f0867++){var _0x2d93a=_[_0x5b14('0x89')](_0x4d3667,function(_0x58f544){return _0x51c15d[_0x1f0867]?_0x58f544['name']===_0x51c15d[_0x1f0867][_0x5b14('0xe')]:null;});if(_0x2d93a){if(_0x51c15d[_0x1f0867][_0x5b14('0x88')]){_0x34e049[_0x5b14('0x84')](_0x34b4cd(_0x5e950d[_0x5b14('0x11')],_0x51c15d[_0x1f0867]));}else{if(!_0x51c15d[_0x1f0867][_0x5b14('0x8a')]){_0x34e049['push'](_0x183b0a(_0x2d93a,_0x51c15d[_0x1f0867],_0x5e950d['childModel']));}else{if(_0x2d93a[_0x5b14('0xb')]){_0x34e049[_0x5b14('0x84')](_0x1ecffb(_0x2d93a,_0x51c15d[_0x1f0867]));}}}}}return Promise[_0x5b14('0x87')](_0x34e049);})[_0x5b14('0xc')](function(_0x18de83){var _0x1c464f=_0x18de83;var _0x221759=null;if(_0x1c464f){_0x221759=_0x1c464f[_0x5b14('0x83')]===0x1?_0x1c464f[0x0]:null;}if(!_0x221759&&!_0x1c464f)return _0x18ae4f;var _0x334792=_0x3defa8[_0x5e950d['childModel']][_0x5b14('0x8b')];_0x3f4e96['model']=_[_0x5b14('0x8c')](_0x334792);_0x3f4e96[_0x5b14('0x7d')]=_[_0x5b14('0x8c')](_0x5c9afe[_0x5b14('0x7d')]);_0x3f4e96[_0x5b14('0x8d')]=_[_0x5b14('0x8e')](_0x3f4e96[_0x5b14('0xb')],_0x3f4e96['query']);_0x4b9720['attributes']=_[_0x5b14('0x8e')](_0x3f4e96[_0x5b14('0xb')],qs[_0x5b14('0x8f')](_0x5c9afe[_0x5b14('0x7d')][_0x5b14('0x8f')]));_0x4b9720['attributes']=_0x4b9720[_0x5b14('0x90')][_0x5b14('0x83')]?_0x4b9720[_0x5b14('0x90')]:_0x3f4e96[_0x5b14('0xb')];if(!_0x5c9afe[_0x5b14('0x7d')][_0x5b14('0x91')](_0x5b14('0x92'))){_0x4b9720[_0x5b14('0x93')]=qs[_0x5b14('0x93')](_0x5c9afe[_0x5b14('0x7d')]['limit']);_0x4b9720['offset']=qs[_0x5b14('0x94')](_0x5c9afe[_0x5b14('0x7d')]['offset']);}_0x4b9720[_0x5b14('0x95')]=qs[_0x5b14('0x96')](_0x5c9afe[_0x5b14('0x7d')][_0x5b14('0x96')]);_0x4b9720['where']=qs[_0x5b14('0x8d')](_[_0x5b14('0x97')](_0x5c9afe[_0x5b14('0x7d')],_0x3f4e96[_0x5b14('0x8d')]));if(_0x5c9afe[_0x5b14('0x7d')][_0x5b14('0x5')]){_0x4b9720[_0x5b14('0x98')]=_['merge'](_0x4b9720['where'],{'$or':_['map'](_0x334792,function(_0x12a1dd){if(_0x12a1dd[_0x5b14('0x10')][_0x5b14('0x99')]!==_0x5b14('0x9a')){var _0x3449df={};_0x3449df[_0x12a1dd[_0x5b14('0x6')]]={'$like':'%'+_0x5c9afe[_0x5b14('0x7d')][_0x5b14('0x5')]+'%'};return _0x3449df;}})});}var _0x2364bc=[];var _0x18d88b=null;var _0x29d158={};if(_0x221759){_0x18d88b=_['find'](_0x4d3667,[_0x5b14('0xe'),_0x221759[_0x5b14('0xe')]]);if(_0x18d88b[_0x5b14('0x6')]){_0x29d158={};if(_0x5e950d[_0x5b14('0x11')]==='AnalyticExtractedReport'){_0x29d158[_0x18d88b[_0x5b14('0x9b')]]=_[_0x5b14('0xd')](_0x221759[_0x5b14('0x9')],'id');}else{_0x29d158[_0x18d88b[_0x5b14('0x9b')]]=_0x221759[_0x5b14('0x9')];}_0x2364bc[_0x5b14('0x84')](_0x29d158);}else{_0x4b9720[_0x5b14('0x98')]['id']=_0x221759[_0x5b14('0x9')];}}else{for(var _0x189368=0x0;_0x189368<_0x1c464f[_0x5b14('0x83')];_0x189368++){_0x18d88b=_[_0x5b14('0x89')](_0x4d3667,[_0x5b14('0xe'),_0x1c464f[_0x189368][_0x5b14('0xe')]]);if(_0x18d88b[_0x5b14('0x6')]){_0x29d158={};_0x29d158[_0x18d88b[_0x5b14('0x9b')]]=_0x1c464f[_0x189368]['associatedResources'];_0x2364bc[_0x5b14('0x84')](_0x29d158);}else{if(!_0x4b9720[_0x5b14('0x98')]['id'])_0x4b9720[_0x5b14('0x98')]['id']=[];_0x1c464f[_0x189368][_0x5b14('0x9')][_0x5b14('0x9c')](function(_0x5939ae){_0x4b9720['where']['id'][_0x5b14('0x84')](_0x5939ae);});}}}if(!_['isEmpty'](_0x2364bc)){_0x4b9720[_0x5b14('0x98')]=_[_0x5b14('0x9d')](_0x4b9720[_0x5b14('0x98')],{'$and':{'$or':_0x2364bc}});}_0x4b9720=_[_0x5b14('0x9d')]({},_0x4b9720,_0x5c9afe[_0x5b14('0x9e')]);if(_0x221759&&!_0x221759[_0x5b14('0x8a')]&&_0x5e950d['childModel']===_0x5b14('0x9f')){if(_0x5c9afe['query']['includeAll']){_0x4b9720[_0x5b14('0xa0')]=[{'all':!![]}];}return _0x3defa8[_0x5e950d[_0x5b14('0x11')]][_0x5b14('0x8')](_0x4b9720)['then'](function(_0x5b8e11){var _0x5c9aa0=[];_0x5b8e11['forEach'](function(_0x1f2d2e){var _0x1f7304;switch(_0x1f2d2e[_0x5b14('0xa1')]){case'default':_0x1f7304=_['find'](_0x221759[_0x5b14('0x9')],function(_0x317f33){return _0x317f33['id']===_0x1f2d2e['reportId']&&_0x317f33[_0x5b14('0x10')]===_0x5b14('0xa2');});break;case'custom':_0x1f7304=_['find'](_0x221759['associatedResources'],function(_0x522cc5){return _0x522cc5['id']===_0x1f2d2e[_0x5b14('0xa3')]&&_0x522cc5['type']===_0x5b14('0xa4');});break;}if(_0x1f7304)_0x5c9aa0[_0x5b14('0x84')](_0x1f2d2e);});_0x18ae4f['count']=_0x5c9aa0[_0x5b14('0x83')];_0x18ae4f['rows']=_0x5c9aa0;return _0x18ae4f;});}else{return _0x3defa8[_0x5e950d[_0x5b14('0x11')]]['count']({'where':_0x4b9720[_0x5b14('0x98')]})[_0x5b14('0xc')](function(_0x52df2d){_0x18ae4f[_0x5b14('0xa5')]=_0x52df2d;if(_0x5c9afe[_0x5b14('0x7d')][_0x5b14('0xa6')]){if(_0x5e950d[_0x5b14('0x11')]==='CmContact'){_0x4b9720[_0x5b14('0xa0')]=[{'model':_0x3defa8[_0x5b14('0x67')],'as':'Tags','attributes':['id',_0x5b14('0xe'),_0x5b14('0xa7')],'required':_0x5c9afe[_0x5b14('0x7d')]['tag']?!![]:![]},{'model':_0x3defa8[_0x5b14('0x67')],'as':_0x5b14('0xa8'),'attributes':['id',_0x5b14('0xe'),'color'],'through':_0x5c9afe[_0x5b14('0x7d')]['tag']?{'attributes':[],'where':{'TagId':_0x5c9afe[_0x5b14('0x7d')]['tag']||undefined}}:{},'required':_0x5c9afe[_0x5b14('0x7d')][_0x5b14('0xa9')]?!![]:![]}];}else{_0x4b9720['include']=[{'all':!![]}];}}return _0x3defa8[_0x5e950d[_0x5b14('0x11')]]['findAll'](_0x4b9720);})[_0x5b14('0xc')](function(_0x891dee){_0x18ae4f[_0x5b14('0xaa')]=_0x891dee;if(_0x23db69===_0x5b14('0xab')&&_0x5c9afe[_0x5b14('0x7d')]['openTabs']==='true'){var _0x343fe3=[];for(var _0x5c5f1c=0x0;_0x5c5f1c<_0x18ae4f[_0x5b14('0xaa')][_0x5b14('0x83')];_0x5c5f1c++){_0x343fe3[_0x5b14('0x84')](_0x414f79(_0x5b14('0xac'),_0x18ae4f['rows'][_0x5c5f1c][_0x5b14('0xad')]));_0x343fe3[_0x5b14('0x84')](_0x414f79(_0x5b14('0xae'),_0x18ae4f[_0x5b14('0xaa')][_0x5c5f1c][_0x5b14('0xad')]));_0x343fe3[_0x5b14('0x84')](_0x414f79(_0x5b14('0xaf'),_0x18ae4f[_0x5b14('0xaa')][_0x5c5f1c][_0x5b14('0xad')]));_0x343fe3[_0x5b14('0x84')](_0x414f79('mail',_0x18ae4f['rows'][_0x5c5f1c]['dataValues']));_0x343fe3['push'](_0x414f79('openchannel',_0x18ae4f[_0x5b14('0xaa')][_0x5c5f1c][_0x5b14('0xad')]));_0x343fe3[_0x5b14('0x84')](_0x414f79(_0x5b14('0xb0'),_0x18ae4f['rows'][_0x5c5f1c][_0x5b14('0xad')]));}return Promise[_0x5b14('0x87')](_0x343fe3)[_0x5b14('0xc')](function(){return _0x18ae4f;});}return _0x18ae4f;});}});}}});};
\ No newline at end of file
+var _0xf2e3=['projects','JscriptyProject','contacts','Lists','ListId','lists','CmList','companies','globalcustomfields','CmCustomField','ChatQueue','chatwebsites','ChatWebsite','faxqueues','FaxQueue','faxaccounts','FaxAccount','inboundroutes','internalroutes','outboundroutes','VoiceExtension','contexts','VoiceContext','VoiceMail','voicerecordings','VoiceRecording','Agents','membername','User','role','Telephones','telephone','VoiceQueues','queue','VoiceQueue','inbound','QueueCampaigns','outbound','VoiceMusicOnHold','VoiceChanSpy','VoicePrefix','ivrcampaigns','mailqueues','MailAccount','mailsubstatuses','MailSubstatus','openchannelqueues','OpenchannelQueue','openchannelaccounts','OpenchannelAccount','smsqueues','SmsQueue','SmsAccount','whatsappqueues','whatsappaccounts','WhatsappAccount','Team','voicequeues','users','agents','admin','user','zendeskaccounts','salesforceaccounts','SalesforceAccount','freshdeskaccounts','FreshdeskAccount','sugarcrmaccounts','SugarcrmAccount','DeskAccount','ZohoAccount','vtigeraccounts','cannedanswers','CannedAnswer','dispositions','Disposition','Dashboard','intervals','Interval','pauses','Pause','scheduler','Schedule','sounds','Sound','Tag','templates','Template','triggers','Trigger','Trunk','variables','Variable','Plugin','extractedreports','reportId','metrics','AnalyticMetric','toUpperCase','slice','Sequelize','SELECT','ui.','ui.createdAt','from','user_has_','where','ui.UserId\x20=\x20?','sequelize','query','user_profiles','section','Invalid\x20section\x20\x27','isEmpty','length','find','params','all','ignore','union','push','autoAssociation','rawAttributes','keys','intersection','attributes','fields','hasOwnProperty','limit','offset','order','sort','filters','pick','merge','foreignKey','forEach','options','includeAll','include','reportType','DefaultReports','custom','count','rows','CmContact','color','tag','ThroughTags','openTabs','chat','dataValues','sms','fax','whatsapp','lodash','../../components/parsers/qs','squel','exports','models','filter','field','value','findAll','then','associatedResources','map','catch','model','resolve','UserProfileResource','AnalyticExtractedReport','resourceId','type','SquareProject','odbc','SquareOdbc','childModel','parentSections','SquareProjects','name','projectName'];(function(_0x4f11cb,_0x14e174){var _0x491488=function(_0x2904a9){while(--_0x2904a9){_0x4f11cb['push'](_0x4f11cb['shift']());}};_0x491488(++_0x14e174);}(_0xf2e3,0x9b));var _0x3f2e=function(_0x3070dc,_0x40cf11){_0x3070dc=_0x3070dc-0x0;var _0x431489=_0xf2e3[_0x3070dc];return _0x431489;};'use strict';var _=require(_0x3f2e('0x0'));var attributes=require('./userProfile.attributes');var qs=require(_0x3f2e('0x1'));var squel=require(_0x3f2e('0x2'));module[_0x3f2e('0x3')]=function(_0x30f1bb){var _0x27d28c=_0x30f1bb[_0x3f2e('0x4')];function _0x3938e2(_0xabcf5c,_0x216b26){return new Promise(function(_0x5f254a,_0x33a3b7){if(!_0x216b26)return _0x5f254a(null);var _0xdd6b3e=_0x216b26[_0x3f2e('0x5')]?{[_0x216b26[_0x3f2e('0x5')][_0x3f2e('0x6')]]:_0x216b26[_0x3f2e('0x5')][_0x3f2e('0x7')]}:undefined;return _0x27d28c[_0xabcf5c][_0x3f2e('0x8')]({'where':_0xdd6b3e,'raw':!![]})[_0x3f2e('0x9')](function(_0x29a6cc){_0x216b26[_0x3f2e('0xa')]=_[_0x3f2e('0xb')](_0x29a6cc,'id');_0x5f254a(_0x216b26);})[_0x3f2e('0xc')](function(_0x10a392){_0x33a3b7(_0x10a392);});});}function _0x1bb1dd(_0x305861,_0x824ee8){return new Promise(function(_0x475cd2,_0x39b819){var _0x5a4da3=_0x305861[_0x3f2e('0x5')]?{[_0x305861[_0x3f2e('0x5')]['field']]:_0x305861[_0x3f2e('0x5')][_0x3f2e('0x7')]}:undefined;return _0x27d28c[_0x305861[_0x3f2e('0xd')]][_0x3f2e('0x8')]({'where':_0x5a4da3,'raw':!![]})[_0x3f2e('0x9')](function(_0x57cba7){_0x824ee8[_0x3f2e('0xa')]=_[_0x3f2e('0xb')](_0x57cba7,function(_0x2d2fac){return _0x2d2fac['name'];});_0x475cd2(_0x824ee8);})[_0x3f2e('0xc')](function(_0x218b44){_0x39b819(_0x218b44);});});}function _0x17ef58(_0x2c4feb,_0x1dc5d0,_0x2fef73){if(!_0x1dc5d0)return Promise[_0x3f2e('0xe')](null);return new Promise(function(_0x155411,_0x178283){return _0x27d28c[_0x3f2e('0xf')][_0x3f2e('0x8')]({'where':{'sectionId':_0x1dc5d0['id']},'raw':!![]})['then'](function(_0x40e28f){if(_0x2c4feb[_0x3f2e('0x6')]&&_0x2c4feb[_0x3f2e('0x6')]!=='id'){_0x1dc5d0[_0x3f2e('0xa')]=_[_0x3f2e('0xb')](_0x40e28f,function(_0x4eb1e7){return _0x4eb1e7[_0x2c4feb['field']];});}else{if(_0x2fef73===_0x3f2e('0x10')){_0x1dc5d0[_0x3f2e('0xa')]=_[_0x3f2e('0xb')](_0x40e28f,function(_0x2ac500){return{'id':_0x2ac500[_0x3f2e('0x11')],'type':_0x2ac500[_0x3f2e('0x12')]};});}else{_0x1dc5d0['associatedResources']=_['map'](_0x40e28f,function(_0xf81165){return _0xf81165[_0x3f2e('0x11')];});}}_0x155411(_0x1dc5d0);})['catch'](function(_0x541292){_0x178283(_0x541292);});});}function _0x46bb1c(_0x5646f5,_0x1b8c67){var _0x401ed9={'parentSections':[]};switch(_0x5646f5['toLowerCase']()){case'squareprojects':_0x401ed9['childModel']=_0x3f2e('0x13');break;case _0x3f2e('0x14'):_0x401ed9['childModel']=_0x3f2e('0x15');break;case'squarerecordings':_0x401ed9[_0x3f2e('0x16')]='SquareRecording';_0x401ed9[_0x3f2e('0x17')]=[{'name':_0x3f2e('0x18'),'field':_0x3f2e('0x19'),'foreignKey':_0x3f2e('0x1a')}];break;case _0x3f2e('0x1b'):_0x401ed9['childModel']=_0x3f2e('0x1c');break;case _0x3f2e('0x1d'):_0x401ed9['childModel']='CmContact';_0x401ed9[_0x3f2e('0x17')]=[{'name':_0x3f2e('0x1e'),'field':'id','foreignKey':_0x3f2e('0x1f')}];break;case _0x3f2e('0x20'):_0x401ed9['childModel']=_0x3f2e('0x21');break;case _0x3f2e('0x22'):_0x401ed9[_0x3f2e('0x16')]='CmCompany';break;case _0x3f2e('0x23'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x24');break;case'chatqueues':_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x25');break;case _0x3f2e('0x26'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x27');break;case _0x3f2e('0x28'):_0x401ed9['childModel']=_0x3f2e('0x29');break;case _0x3f2e('0x2a'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x2b');break;case _0x3f2e('0x2c'):case _0x3f2e('0x2d'):case _0x3f2e('0x2e'):_0x401ed9['childModel']=_0x3f2e('0x2f');break;case _0x3f2e('0x30'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x31');break;case'voicemails':_0x401ed9['childModel']=_0x3f2e('0x32');break;case _0x3f2e('0x33'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x34');_0x401ed9[_0x3f2e('0x17')]=[{'name':_0x3f2e('0x35'),'field':_0x3f2e('0x19'),'foreignKey':_0x3f2e('0x36'),'model':_0x3f2e('0x37'),'filter':{'field':_0x3f2e('0x38'),'value':['agent']}},{'name':_0x3f2e('0x39'),'field':_0x3f2e('0x19'),'foreignKey':_0x3f2e('0x36'),'model':_0x3f2e('0x37'),'filter':{'field':'role','value':[_0x3f2e('0x3a')]}},{'name':_0x3f2e('0x3b'),'field':_0x3f2e('0x19'),'foreignKey':_0x3f2e('0x3c'),'model':_0x3f2e('0x3d'),'filter':{'field':_0x3f2e('0x12'),'value':[_0x3f2e('0x3e')]}},{'name':_0x3f2e('0x3f'),'field':'name','foreignKey':_0x3f2e('0x3c'),'model':_0x3f2e('0x3d'),'filter':{'field':_0x3f2e('0x12'),'value':[_0x3f2e('0x40')]}}];break;case'musiconholds':_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x41');break;case'chanspies':_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x42');break;case'voiceprefixes':_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x43');break;case _0x3f2e('0x44'):_0x401ed9[_0x3f2e('0x16')]='Campaign';break;case _0x3f2e('0x45'):_0x401ed9[_0x3f2e('0x16')]='MailQueue';break;case'mailaccounts':_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x46');break;case _0x3f2e('0x47'):_0x401ed9['childModel']=_0x3f2e('0x48');break;case _0x3f2e('0x49'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x4a');break;case _0x3f2e('0x4b'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x4c');break;case _0x3f2e('0x4d'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x4e');break;case'smsaccounts':_0x401ed9['childModel']=_0x3f2e('0x4f');break;case _0x3f2e('0x50'):_0x401ed9['childModel']='WhatsappQueue';break;case _0x3f2e('0x51'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x52');break;case'teams':_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x53');break;case _0x3f2e('0x54'):case'queuecampaigns':_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x3d');if(_0x1b8c67){_0x401ed9[_0x3f2e('0x17')]=[{'name':'VoiceQueues'},{'name':_0x3f2e('0x3f')}];}break;case _0x3f2e('0x55'):case _0x3f2e('0x56'):case'telephones':_0x401ed9[_0x3f2e('0x16')]='User';if(_0x1b8c67){_0x401ed9[_0x3f2e('0x17')]=[{'name':'Users','filter':{'field':'role','value':[_0x3f2e('0x57'),_0x3f2e('0x58')]},'ignore':!![]},{'name':_0x3f2e('0x35')},{'name':_0x3f2e('0x39')}];}break;case _0x3f2e('0x59'):_0x401ed9['childModel']='ZendeskAccount';break;case _0x3f2e('0x5a'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x5b');break;case _0x3f2e('0x5c'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x5d');break;case _0x3f2e('0x5e'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x5f');break;case'deskaccounts':_0x401ed9['childModel']=_0x3f2e('0x60');break;case'zohoaccounts':_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x61');break;case _0x3f2e('0x62'):_0x401ed9[_0x3f2e('0x16')]='User';break;case _0x3f2e('0x63'):_0x401ed9['childModel']=_0x3f2e('0x64');break;case _0x3f2e('0x65'):_0x401ed9['childModel']=_0x3f2e('0x66');break;case'customdashboards':_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x67');break;case _0x3f2e('0x68'):_0x401ed9['childModel']=_0x3f2e('0x69');break;case _0x3f2e('0x6a'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x6b');break;case _0x3f2e('0x6c'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x6d');break;case _0x3f2e('0x6e'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x6f');break;case'tags':_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x70');break;case _0x3f2e('0x71'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x72');break;case _0x3f2e('0x73'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x74');break;case'trunks':_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x75');break;case _0x3f2e('0x76'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x77');break;case'plugins':_0x401ed9['childModel']=_0x3f2e('0x78');break;case _0x3f2e('0x79'):_0x401ed9[_0x3f2e('0x16')]='AnalyticExtractedReport';_0x401ed9['parentSections']=[{'name':'Reports','field':'id','foreignKey':_0x3f2e('0x7a')}];break;case _0x3f2e('0x7b'):_0x401ed9[_0x3f2e('0x16')]=_0x3f2e('0x7c');break;}return _0x401ed9;}function _0x359197(_0x5689d6,_0x18cc5d){var _0xc3c853=_0x5689d6['charAt'](0x0)[_0x3f2e('0x7d')]()+_0x5689d6[_0x3f2e('0x7e')](0x1);var _0x3d05fe={'type':_0x27d28c[_0x3f2e('0x7f')]['QueryTypes'][_0x3f2e('0x80')],'raw':!![]};return new Promise(function(_0x5da1f3,_0x4dc239){var _0x793fbb=squel['select']()['field'](_0x3f2e('0x81')+_0xc3c853+'InteractionId','id')[_0x3f2e('0x6')](_0x3f2e('0x82'))[_0x3f2e('0x83')](_0x3f2e('0x84')+_0x5689d6+'_interactions','ui')[_0x3f2e('0x85')](_0x3f2e('0x86'),_0x18cc5d['id']);return _0x27d28c[_0x3f2e('0x87')][_0x3f2e('0x88')](_0x793fbb['toString'](),_0x3d05fe)[_0x3f2e('0x9')](function(_0x4858ee){_0x18cc5d[_0xc3c853+'OpenTabs']=_0x4858ee;_0x5da1f3(_0x4858ee);})[_0x3f2e('0xc')](function(_0x1d9f99){_0x4dc239(_0x1d9f99);});});}return _0x30f1bb['define']('UserProfile',attributes,{'tableName':_0x3f2e('0x89'),'paranoid':![],'indexes':[],'timestamps':!![],'classMethods':{'getResources':function(_0x27e810){var _0x32cd8e={'raw':![],'where':{}};var _0x487daf={};var _0x22b00a={'count':0x0,'rows':[]};var _0x311c62=_0x27e810[_0x3f2e('0x88')][_0x3f2e('0x8a')];var _0x515895=_0x27e810[_0x3f2e('0x88')]['mergeResources']||![];var _0x457492=_0x46bb1c(_0x311c62,_0x515895);if(!_0x457492[_0x3f2e('0x16')])throw new Error(_0x3f2e('0x8b')+_0x311c62+'\x27');var _0x3c87ce=[{'name':_0x311c62}];if(!_[_0x3f2e('0x8c')](_0x457492[_0x3f2e('0x17')]))_0x3c87ce=_0x457492[_0x3f2e('0x17')];var _0x266f60=[];for(var _0x4f42be=0x0;_0x4f42be<_0x3c87ce[_0x3f2e('0x8d')];_0x4f42be++){_0x266f60['push'](_0x27d28c['UserProfileSection'][_0x3f2e('0x8e')]({'where':{'userProfileId':_0x27e810[_0x3f2e('0x8f')]['id'],'name':_0x3c87ce[_0x4f42be]['name']},'raw':!![]}));}return Promise[_0x3f2e('0x90')](_0x266f60)[_0x3f2e('0x9')](function(_0x58c6f2){var _0x4768f5=_['filter'](_0x58c6f2,function(_0x5577c0){return _0x5577c0?_0x5577c0:undefined;});var _0x2d26c3=_[_0x3f2e('0x5')](_0x3c87ce,[_0x3f2e('0x91'),!![]]);var _0x5d3db7=_['isEmpty'](_0x4768f5)&&_[_0x3f2e('0x8c')](_0x2d26c3)?null:_[_0x3f2e('0x92')](_0x2d26c3,_0x4768f5);if(!_0x5d3db7)return null;var _0x1ac6a3=[];for(var _0x2cf3b9=0x0;_0x2cf3b9<_0x5d3db7[_0x3f2e('0x8d')];_0x2cf3b9++){var _0x3a8983=_[_0x3f2e('0x8e')](_0x3c87ce,function(_0x224e1e){return _0x5d3db7[_0x2cf3b9]?_0x224e1e[_0x3f2e('0x19')]===_0x5d3db7[_0x2cf3b9][_0x3f2e('0x19')]:null;});if(_0x3a8983){if(_0x5d3db7[_0x2cf3b9][_0x3f2e('0x91')]){_0x1ac6a3[_0x3f2e('0x93')](_0x3938e2(_0x457492[_0x3f2e('0x16')],_0x5d3db7[_0x2cf3b9]));}else{if(!_0x5d3db7[_0x2cf3b9][_0x3f2e('0x94')]){_0x1ac6a3[_0x3f2e('0x93')](_0x17ef58(_0x3a8983,_0x5d3db7[_0x2cf3b9],_0x457492[_0x3f2e('0x16')]));}else{if(_0x3a8983[_0x3f2e('0xd')]){_0x1ac6a3[_0x3f2e('0x93')](_0x1bb1dd(_0x3a8983,_0x5d3db7[_0x2cf3b9]));}}}}}return Promise[_0x3f2e('0x90')](_0x1ac6a3);})[_0x3f2e('0x9')](function(_0x50b853){var _0xbef922=_0x50b853;var _0x1850b6=null;if(_0xbef922){_0x1850b6=_0xbef922[_0x3f2e('0x8d')]===0x1?_0xbef922[0x0]:null;}if(!_0x1850b6&&!_0xbef922)return _0x22b00a;var _0xd9ea7b=_0x27d28c[_0x457492[_0x3f2e('0x16')]][_0x3f2e('0x95')];_0x487daf[_0x3f2e('0xd')]=_[_0x3f2e('0x96')](_0xd9ea7b);_0x487daf[_0x3f2e('0x88')]=_['keys'](_0x27e810[_0x3f2e('0x88')]);_0x487daf['filters']=_[_0x3f2e('0x97')](_0x487daf[_0x3f2e('0xd')],_0x487daf['query']);_0x32cd8e[_0x3f2e('0x98')]=_[_0x3f2e('0x97')](_0x487daf['model'],qs[_0x3f2e('0x99')](_0x27e810[_0x3f2e('0x88')][_0x3f2e('0x99')]));_0x32cd8e[_0x3f2e('0x98')]=_0x32cd8e[_0x3f2e('0x98')][_0x3f2e('0x8d')]?_0x32cd8e[_0x3f2e('0x98')]:_0x487daf[_0x3f2e('0xd')];if(!_0x27e810['query'][_0x3f2e('0x9a')]('nolimit')){_0x32cd8e[_0x3f2e('0x9b')]=qs[_0x3f2e('0x9b')](_0x27e810[_0x3f2e('0x88')][_0x3f2e('0x9b')]);_0x32cd8e[_0x3f2e('0x9c')]=qs[_0x3f2e('0x9c')](_0x27e810[_0x3f2e('0x88')][_0x3f2e('0x9c')]);}_0x32cd8e[_0x3f2e('0x9d')]=qs[_0x3f2e('0x9e')](_0x27e810[_0x3f2e('0x88')][_0x3f2e('0x9e')]);_0x32cd8e['where']=qs[_0x3f2e('0x9f')](_[_0x3f2e('0xa0')](_0x27e810[_0x3f2e('0x88')],_0x487daf[_0x3f2e('0x9f')]));if(_0x27e810[_0x3f2e('0x88')]['filter']){_0x32cd8e[_0x3f2e('0x85')]=_[_0x3f2e('0xa1')](_0x32cd8e['where'],{'$or':_[_0x3f2e('0xb')](_0xd9ea7b,function(_0x10ddb6){if(_0x10ddb6['type']['key']!=='VIRTUAL'){var _0x3dc17c={};_0x3dc17c[_0x10ddb6[_0x3f2e('0x6')]]={'$like':'%'+_0x27e810[_0x3f2e('0x88')][_0x3f2e('0x5')]+'%'};return _0x3dc17c;}})});}var _0x236dcf=[];var _0x38d0cb=null;var _0x27c3af={};if(_0x1850b6){_0x38d0cb=_[_0x3f2e('0x8e')](_0x3c87ce,[_0x3f2e('0x19'),_0x1850b6['name']]);if(_0x38d0cb[_0x3f2e('0x6')]){_0x27c3af={};if(_0x457492['childModel']===_0x3f2e('0x10')){_0x27c3af[_0x38d0cb['foreignKey']]=_[_0x3f2e('0xb')](_0x1850b6[_0x3f2e('0xa')],'id');}else{_0x27c3af[_0x38d0cb['foreignKey']]=_0x1850b6[_0x3f2e('0xa')];}_0x236dcf[_0x3f2e('0x93')](_0x27c3af);}else{_0x32cd8e[_0x3f2e('0x85')]['id']=_0x1850b6[_0x3f2e('0xa')];}}else{for(var _0x50d5ca=0x0;_0x50d5ca<_0xbef922[_0x3f2e('0x8d')];_0x50d5ca++){_0x38d0cb=_['find'](_0x3c87ce,[_0x3f2e('0x19'),_0xbef922[_0x50d5ca][_0x3f2e('0x19')]]);if(_0x38d0cb[_0x3f2e('0x6')]){_0x27c3af={};_0x27c3af[_0x38d0cb[_0x3f2e('0xa2')]]=_0xbef922[_0x50d5ca][_0x3f2e('0xa')];_0x236dcf[_0x3f2e('0x93')](_0x27c3af);}else{if(!_0x32cd8e['where']['id'])_0x32cd8e[_0x3f2e('0x85')]['id']=[];_0xbef922[_0x50d5ca][_0x3f2e('0xa')][_0x3f2e('0xa3')](function(_0x13e5c3){_0x32cd8e[_0x3f2e('0x85')]['id'][_0x3f2e('0x93')](_0x13e5c3);});}}}if(!_[_0x3f2e('0x8c')](_0x236dcf)){_0x32cd8e['where']=_['merge'](_0x32cd8e['where'],{'$and':{'$or':_0x236dcf}});}_0x32cd8e=_['merge']({},_0x32cd8e,_0x27e810[_0x3f2e('0xa4')]);if(_0x1850b6&&!_0x1850b6['autoAssociation']&&_0x457492[_0x3f2e('0x16')]==='AnalyticExtractedReport'){if(_0x27e810[_0x3f2e('0x88')][_0x3f2e('0xa5')]){_0x32cd8e[_0x3f2e('0xa6')]=[{'all':!![]}];}return _0x27d28c[_0x457492[_0x3f2e('0x16')]][_0x3f2e('0x8')](_0x32cd8e)[_0x3f2e('0x9')](function(_0x263160){var _0x5bd1cb=[];_0x263160[_0x3f2e('0xa3')](function(_0x850a9c){var _0x604478;switch(_0x850a9c[_0x3f2e('0xa7')]){case'default':_0x604478=_['find'](_0x1850b6[_0x3f2e('0xa')],function(_0x344afb){return _0x344afb['id']===_0x850a9c[_0x3f2e('0x7a')]&&_0x344afb['type']===_0x3f2e('0xa8');});break;case _0x3f2e('0xa9'):_0x604478=_['find'](_0x1850b6[_0x3f2e('0xa')],function(_0x14a919){return _0x14a919['id']===_0x850a9c[_0x3f2e('0x7a')]&&_0x14a919[_0x3f2e('0x12')]==='CustomReports';});break;}if(_0x604478)_0x5bd1cb[_0x3f2e('0x93')](_0x850a9c);});_0x22b00a[_0x3f2e('0xaa')]=_0x5bd1cb[_0x3f2e('0x8d')];_0x22b00a[_0x3f2e('0xab')]=_0x5bd1cb;return _0x22b00a;});}else{return _0x27d28c[_0x457492[_0x3f2e('0x16')]][_0x3f2e('0xaa')]({'where':_0x32cd8e[_0x3f2e('0x85')]})[_0x3f2e('0x9')](function(_0x380407){_0x22b00a['count']=_0x380407;if(_0x27e810[_0x3f2e('0x88')][_0x3f2e('0xa5')]){if(_0x457492[_0x3f2e('0x16')]===_0x3f2e('0xac')){_0x32cd8e[_0x3f2e('0xa6')]=[{'model':_0x27d28c[_0x3f2e('0x70')],'as':'Tags','attributes':['id',_0x3f2e('0x19'),_0x3f2e('0xad')],'required':_0x27e810[_0x3f2e('0x88')][_0x3f2e('0xae')]?!![]:![]},{'model':_0x27d28c['Tag'],'as':_0x3f2e('0xaf'),'attributes':['id',_0x3f2e('0x19'),_0x3f2e('0xad')],'through':_0x27e810[_0x3f2e('0x88')]['tag']?{'attributes':[],'where':{'TagId':_0x27e810[_0x3f2e('0x88')][_0x3f2e('0xae')]||undefined}}:{},'required':_0x27e810[_0x3f2e('0x88')][_0x3f2e('0xae')]?!![]:![]}];}else{_0x32cd8e[_0x3f2e('0xa6')]=[{'all':!![]}];}}return _0x27d28c[_0x457492[_0x3f2e('0x16')]][_0x3f2e('0x8')](_0x32cd8e);})[_0x3f2e('0x9')](function(_0x5cb1f8){_0x22b00a['rows']=_0x5cb1f8;if(_0x311c62===_0x3f2e('0x35')&&_0x27e810[_0x3f2e('0x88')][_0x3f2e('0xb0')]==='true'){var _0x511c6c=[];for(var _0x1d3945=0x0;_0x1d3945<_0x22b00a[_0x3f2e('0xab')][_0x3f2e('0x8d')];_0x1d3945++){_0x511c6c[_0x3f2e('0x93')](_0x359197(_0x3f2e('0xb1'),_0x22b00a[_0x3f2e('0xab')][_0x1d3945][_0x3f2e('0xb2')]));_0x511c6c['push'](_0x359197(_0x3f2e('0xb3'),_0x22b00a['rows'][_0x1d3945][_0x3f2e('0xb2')]));_0x511c6c[_0x3f2e('0x93')](_0x359197(_0x3f2e('0xb4'),_0x22b00a[_0x3f2e('0xab')][_0x1d3945]['dataValues']));_0x511c6c['push'](_0x359197('mail',_0x22b00a[_0x3f2e('0xab')][_0x1d3945]['dataValues']));_0x511c6c[_0x3f2e('0x93')](_0x359197('openchannel',_0x22b00a[_0x3f2e('0xab')][_0x1d3945][_0x3f2e('0xb2')]));_0x511c6c[_0x3f2e('0x93')](_0x359197(_0x3f2e('0xb5'),_0x22b00a[_0x3f2e('0xab')][_0x1d3945]['dataValues']));}return Promise[_0x3f2e('0x90')](_0x511c6c)[_0x3f2e('0x9')](function(){return _0x22b00a;});}return _0x22b00a;});}});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ff9=['util','bluebird','randomstring','../../config/utils','../../config/environment','jayson/promise','http','defaults','redis','socket.io-emitter','./userProfile.socket','register','request','then','info','UserProfile,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','lodash'];(function(_0x170634,_0x4cb26f){var _0x58d363=function(_0x295581){while(--_0x295581){_0x170634['push'](_0x170634['shift']());}};_0x58d363(++_0x4cb26f);}(_0x5ff9,0xa0));var _0x95ff=function(_0x198712,_0x9c949f){_0x198712=_0x198712-0x0;var _0x144f0d=_0x5ff9[_0x198712];return _0x144f0d;};'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']('UserProfile,\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']('UserProfile,\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
+var _0x4cff=['stringify','error','code','message','info','result','lodash','util','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','./userProfile.socket','register','request','then','UserProfile,\x20%s,\x20%s','request\x20sent'];(function(_0x129041,_0x1ea001){var _0x4d2f0c=function(_0x38cd8f){while(--_0x38cd8f){_0x129041['push'](_0x129041['shift']());}};_0x4d2f0c(++_0x1ea001);}(_0x4cff,0x14a));var _0xf4cf=function(_0x496b8a,_0x189a2d){_0x496b8a=_0x496b8a-0x0;var _0x23f627=_0x4cff[_0x496b8a];return _0x23f627;};'use strict';var _=require(_0xf4cf('0x0'));var util=require(_0xf4cf('0x1'));var moment=require('moment');var BPromise=require(_0xf4cf('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf4cf('0x3'));var db=require(_0xf4cf('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xf4cf('0x5'))(_0xf4cf('0x6'));var config=require(_0xf4cf('0x7'));var jayson=require(_0xf4cf('0x8'));var client=jayson[_0xf4cf('0x9')][_0xf4cf('0xa')]({'port':0x232a});config['redis']=_[_0xf4cf('0xb')](config[_0xf4cf('0xc')],{'host':_0xf4cf('0xd'),'port':0x18eb});var socket=require(_0xf4cf('0xe'))(new Redis(config['redis']));require(_0xf4cf('0xf'))[_0xf4cf('0x10')](socket);function respondWithRpcPromise(_0x10dd9e,_0x16a6f1,_0x520c03){return new BPromise(function(_0x3c40ab,_0xec3042){return client[_0xf4cf('0x11')](_0x10dd9e,_0x520c03)[_0xf4cf('0x12')](function(_0x50f939){logger['info'](_0xf4cf('0x13'),_0x16a6f1,'request\x20sent');logger['debug']('UserProfile,\x20%s,\x20%s,\x20%s',_0x16a6f1,_0xf4cf('0x14'),JSON[_0xf4cf('0x15')](_0x50f939));if(_0x50f939[_0xf4cf('0x16')]){if(_0x50f939[_0xf4cf('0x16')][_0xf4cf('0x17')]===0x1f4){logger[_0xf4cf('0x16')](_0xf4cf('0x13'),_0x16a6f1,_0x50f939[_0xf4cf('0x16')][_0xf4cf('0x18')]);return _0xec3042(_0x50f939[_0xf4cf('0x16')]['message']);}logger[_0xf4cf('0x16')](_0xf4cf('0x13'),_0x16a6f1,_0x50f939[_0xf4cf('0x16')][_0xf4cf('0x18')]);return _0x3c40ab(_0x50f939[_0xf4cf('0x16')][_0xf4cf('0x18')]);}else{logger[_0xf4cf('0x19')]('UserProfile,\x20%s,\x20%s',_0x16a6f1,_0xf4cf('0x14'));_0x3c40ab(_0x50f939[_0xf4cf('0x1a')][_0xf4cf('0x18')]);}})['catch'](function(_0x23f181){logger['error'](_0xf4cf('0x13'),_0x16a6f1,_0x23f181);_0xec3042(_0x23f181);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0e1c=['emit','register','length','userProfile:','./userProfile.events','save','remove'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x0e1c,0x82));var _0xc0e1=function(_0x13132f,_0x51a231){_0x13132f=_0x13132f-0x0;var _0x3ed170=_0x0e1c[_0x13132f];return _0x3ed170;};'use strict';var UserProfileEvents=require(_0xc0e1('0x0'));var events=[_0xc0e1('0x1'),_0xc0e1('0x2'),'update'];function createListener(_0x140f2b,_0x135eee){return function(_0x5576ed){_0x135eee[_0xc0e1('0x3')](_0x140f2b,_0x5576ed);};}function removeListener(_0x4848f5,_0x4b476e){return function(){UserProfileEvents['removeListener'](_0x4848f5,_0x4b476e);};}exports[_0xc0e1('0x4')]=function(_0x378337){for(var _0x5ba2dd=0x0,_0x11a4e5=events[_0xc0e1('0x5')];_0x5ba2dd<_0x11a4e5;_0x5ba2dd++){var _0x2bd831=events[_0x5ba2dd];var _0x448c0d=createListener(_0xc0e1('0x6')+_0x2bd831,_0x378337);UserProfileEvents['on'](_0x2bd831,_0x448c0d);}};
\ No newline at end of file
+var _0x878a=['userProfile:','./userProfile.events','remove','update','emit','removeListener','length'];(function(_0x291dfa,_0x520d0f){var _0x29f86f=function(_0x4e6379){while(--_0x4e6379){_0x291dfa['push'](_0x291dfa['shift']());}};_0x29f86f(++_0x520d0f);}(_0x878a,0x1ac));var _0xa878=function(_0x475a41,_0x3c30d6){_0x475a41=_0x475a41-0x0;var _0x542b92=_0x878a[_0x475a41];return _0x542b92;};'use strict';var UserProfileEvents=require(_0xa878('0x0'));var events=['save',_0xa878('0x1'),_0xa878('0x2')];function createListener(_0x2df402,_0x1d3065){return function(_0x5366de){_0x1d3065[_0xa878('0x3')](_0x2df402,_0x5366de);};}function removeListener(_0x1fe597,_0x5d2d2c){return function(){UserProfileEvents[_0xa878('0x4')](_0x1fe597,_0x5d2d2c);};}exports['register']=function(_0x101b7c){for(var _0x558fbf=0x0,_0x11a9fe=events[_0xa878('0x5')];_0x558fbf<_0x11a9fe;_0x558fbf++){var _0x25ba07=events[_0x558fbf];var _0x59ae63=createListener(_0xa878('0x6')+_0x25ba07,_0x101b7c);UserProfileEvents['on'](_0x25ba07,_0x59ae63);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf5d=['util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./userProfileResource.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','create','update','delete','exports','multer'];(function(_0x2a3157,_0x200166){var _0x5ec076=function(_0x1440cd){while(--_0x1440cd){_0x2a3157['push'](_0x2a3157['shift']());}};_0x5ec076(++_0x200166);}(_0xbf5d,0x14f));var _0xdbf5=function(_0x1faa64,_0x27380c){_0x1faa64=_0x1faa64-0x0;var _0x3e01e1=_0xbf5d[_0x1faa64];return _0x3e01e1;};'use strict';var multer=require(_0xdbf5('0x0'));var util=require(_0xdbf5('0x1'));var path=require('path');var timeout=require(_0xdbf5('0x2'));var express=require(_0xdbf5('0x3'));var router=express[_0xdbf5('0x4')]();var fs_extra=require(_0xdbf5('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xdbf5('0x6'));var config=require(_0xdbf5('0x7'));var controller=require(_0xdbf5('0x8'));router[_0xdbf5('0x9')]('/',auth[_0xdbf5('0xa')](),controller[_0xdbf5('0xb')]);router[_0xdbf5('0x9')](_0xdbf5('0xc'),auth['isAuthenticated'](),controller[_0xdbf5('0xd')]);router[_0xdbf5('0x9')](_0xdbf5('0xe'),auth[_0xdbf5('0xa')](),controller[_0xdbf5('0xf')]);router[_0xdbf5('0x10')]('/',auth[_0xdbf5('0xa')](),controller[_0xdbf5('0x11')]);router['put'](_0xdbf5('0xe'),auth[_0xdbf5('0xa')](),controller[_0xdbf5('0x12')]);router[_0xdbf5('0x13')]('/:id',auth[_0xdbf5('0xa')](),controller['destroy']);module[_0xdbf5('0x14')]=router;
\ No newline at end of file
+var _0xd8f3=['post','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfileResource.controller','get','index','/describe','isAuthenticated','describe','/:id','show'];(function(_0x48869c,_0x308597){var _0x1b4570=function(_0x19a56a){while(--_0x19a56a){_0x48869c['push'](_0x48869c['shift']());}};_0x1b4570(++_0x308597);}(_0xd8f3,0x16a));var _0x3d8f=function(_0x25ebdf,_0x1e235f){_0x25ebdf=_0x25ebdf-0x0;var _0x926ca4=_0xd8f3[_0x25ebdf];return _0x926ca4;};'use strict';var multer=require(_0x3d8f('0x0'));var util=require(_0x3d8f('0x1'));var path=require(_0x3d8f('0x2'));var timeout=require(_0x3d8f('0x3'));var express=require(_0x3d8f('0x4'));var router=express[_0x3d8f('0x5')]();var fs_extra=require(_0x3d8f('0x6'));var auth=require(_0x3d8f('0x7'));var interaction=require(_0x3d8f('0x8'));var config=require(_0x3d8f('0x9'));var controller=require(_0x3d8f('0xa'));router[_0x3d8f('0xb')]('/',auth['isAuthenticated'](),controller[_0x3d8f('0xc')]);router[_0x3d8f('0xb')](_0x3d8f('0xd'),auth[_0x3d8f('0xe')](),controller[_0x3d8f('0xf')]);router[_0x3d8f('0xb')](_0x3d8f('0x10'),auth[_0x3d8f('0xe')](),controller[_0x3d8f('0x11')]);router[_0x3d8f('0x12')]('/',auth[_0x3d8f('0xe')](),controller['create']);router['put']('/:id',auth[_0x3d8f('0xe')](),controller['update']);router['delete'](_0x3d8f('0x10'),auth[_0x3d8f('0xe')](),controller['destroy']);module[_0x3d8f('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8bb0=['sequelize','exports'];(function(_0x1f8cda,_0x541eb2){var _0x15cbb6=function(_0x3e771f){while(--_0x3e771f){_0x1f8cda['push'](_0x1f8cda['shift']());}};_0x15cbb6(++_0x541eb2);}(_0x8bb0,0x10e));var _0x08bb=function(_0x5326b1,_0x2a46eb){_0x5326b1=_0x5326b1-0x0;var _0x583d10=_0x8bb0[_0x5326b1];return _0x583d10;};'use strict';var Sequelize=require(_0x08bb('0x0'));module[_0x08bb('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'resourceId':{'type':Sequelize['INTEGER'],'allowNull':![]},'type':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
+var _0x081b=['INTEGER','STRING'];(function(_0x7b6a1e,_0x2facf8){var _0xa6f53e=function(_0x2c1019){while(--_0x2c1019){_0x7b6a1e['push'](_0x7b6a1e['shift']());}};_0xa6f53e(++_0x2facf8);}(_0x081b,0x71));var _0xb081=function(_0x17b3aa,_0x53ff4f){_0x17b3aa=_0x17b3aa-0x0;var _0x41702f=_0x081b[_0x17b3aa];return _0x41702f;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xb081('0x0')],'allowNull':![]},'resourceId':{'type':Sequelize[_0xb081('0x1')],'allowNull':![]},'type':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f0e=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','update','then','destroy','end','error','name','send','index','map','UserProfileResource','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','catch','options','find','create','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9f0e,0x116));var _0xe9f0=function(_0x3876b3,_0xfb9f88){_0x3876b3=_0x3876b3-0x0;var _0xf4ccf8=_0x9f0e[_0x3876b3];return _0xf4ccf8;};'use strict';var emlformat=require(_0xe9f0('0x0'));var rimraf=require(_0xe9f0('0x1'));var zipdir=require(_0xe9f0('0x2'));var jsonpatch=require(_0xe9f0('0x3'));var rp=require(_0xe9f0('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe9f0('0x5'));var util=require(_0xe9f0('0x6'));var path=require(_0xe9f0('0x7'));var sox=require(_0xe9f0('0x8'));var csv=require(_0xe9f0('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe9f0('0xa'));var squel=require(_0xe9f0('0xb'));var crypto=require(_0xe9f0('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xe9f0('0xd'));var toCsv=require(_0xe9f0('0x9'));var querystring=require(_0xe9f0('0xe'));var Papa=require(_0xe9f0('0xf'));var Redis=require(_0xe9f0('0x10'));var authService=require(_0xe9f0('0x11'));var qs=require(_0xe9f0('0x12'));var as=require(_0xe9f0('0x13'));var hardwareService=require(_0xe9f0('0x14'));var logger=require('../../config/logger')(_0xe9f0('0x15'));var utils=require(_0xe9f0('0x16'));var config=require(_0xe9f0('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xe9f0('0x18'))['db'];function respondWithStatusCode(_0x586763,_0x367545){_0x367545=_0x367545||0xcc;return function(_0xd82420){if(_0xd82420){return _0x586763[_0xe9f0('0x19')](_0x367545);}return _0x586763[_0xe9f0('0x1a')](_0x367545)['end']();};}function respondWithResult(_0x2cf75d,_0x5a10c6){_0x5a10c6=_0x5a10c6||0xc8;return function(_0x1e3ba8){if(_0x1e3ba8){return _0x2cf75d[_0xe9f0('0x1a')](_0x5a10c6)[_0xe9f0('0x1b')](_0x1e3ba8);}};}function respondWithFilteredResult(_0x59320d,_0x28bfac){return function(_0x33e9e4){if(_0x33e9e4){var _0x2e68ef=typeof _0x28bfac['offset']===_0xe9f0('0x1c')&&typeof _0x28bfac[_0xe9f0('0x1d')]===_0xe9f0('0x1c');var _0xd71ac8=_0x33e9e4[_0xe9f0('0x1e')];var _0x2ab12b=_0x2e68ef?0x0:_0x28bfac[_0xe9f0('0x1f')];var _0x59bf5a=_0x2e68ef?_0x33e9e4[_0xe9f0('0x1e')]:_0x28bfac[_0xe9f0('0x1f')]+_0x28bfac[_0xe9f0('0x1d')];var _0x5c4182;if(_0x59bf5a>=_0xd71ac8){_0x59bf5a=_0xd71ac8;_0x5c4182=0xc8;}else{_0x5c4182=0xce;}_0x59320d[_0xe9f0('0x1a')](_0x5c4182);return _0x59320d[_0xe9f0('0x20')](_0xe9f0('0x21'),_0x2ab12b+'-'+_0x59bf5a+'/'+_0xd71ac8)[_0xe9f0('0x1b')](_0x33e9e4);}return null;};}function patchUpdates(_0x5ba788){return function(_0x33f143){try{jsonpatch[_0xe9f0('0x22')](_0x33f143,_0x5ba788,!![]);}catch(_0x583687){return BPromise['reject'](_0x583687);}return _0x33f143['save']();};}function saveUpdates(_0x12fe9f,_0xa1ddc){return function(_0x1211ae){if(_0x1211ae){return _0x1211ae[_0xe9f0('0x23')](_0x12fe9f)[_0xe9f0('0x24')](function(_0x4a5c27){return _0x4a5c27;});}return null;};}function removeEntity(_0x229fe0,_0x38b7ee){return function(_0x437d43){if(_0x437d43){return _0x437d43[_0xe9f0('0x25')]()[_0xe9f0('0x24')](function(){_0x229fe0[_0xe9f0('0x1a')](0xcc)[_0xe9f0('0x26')]();});}};}function handleEntityNotFound(_0x1321bb,_0x3c4ba9){return function(_0x3fce54){if(!_0x3fce54){_0x1321bb['sendStatus'](0x194);}return _0x3fce54;};}function handleError(_0x371095,_0x27541f){_0x27541f=_0x27541f||0x1f4;return function(_0x2ddfba){logger[_0xe9f0('0x27')](_0x2ddfba['stack']);if(_0x2ddfba[_0xe9f0('0x28')]){delete _0x2ddfba[_0xe9f0('0x28')];}_0x371095[_0xe9f0('0x1a')](_0x27541f)[_0xe9f0('0x29')](_0x2ddfba);};}exports[_0xe9f0('0x2a')]=function(_0x5457f6,_0x130f96){var _0xdc16bc={},_0x44fb5b={},_0xab3d81={'count':0x0,'rows':[]};var _0xa27c84=_[_0xe9f0('0x2b')](db[_0xe9f0('0x2c')][_0xe9f0('0x2d')],function(_0x2b6503){return{'name':_0x2b6503[_0xe9f0('0x2e')],'type':_0x2b6503[_0xe9f0('0x2f')][_0xe9f0('0x30')]};});_0x44fb5b[_0xe9f0('0x31')]=_[_0xe9f0('0x2b')](_0xa27c84,_0xe9f0('0x28'));_0x44fb5b[_0xe9f0('0x32')]=_[_0xe9f0('0x33')](_0x5457f6[_0xe9f0('0x32')]);_0x44fb5b[_0xe9f0('0x34')]=_[_0xe9f0('0x35')](_0x44fb5b[_0xe9f0('0x31')],_0x44fb5b[_0xe9f0('0x32')]);_0xdc16bc[_0xe9f0('0x36')]=_[_0xe9f0('0x35')](_0x44fb5b['model'],qs['fields'](_0x5457f6['query'][_0xe9f0('0x37')]));_0xdc16bc['attributes']=_0xdc16bc[_0xe9f0('0x36')][_0xe9f0('0x38')]?_0xdc16bc['attributes']:_0x44fb5b[_0xe9f0('0x31')];if(!_0x5457f6['query']['hasOwnProperty']('nolimit')){_0xdc16bc[_0xe9f0('0x1d')]=qs[_0xe9f0('0x1d')](_0x5457f6['query'][_0xe9f0('0x1d')]);_0xdc16bc[_0xe9f0('0x1f')]=qs[_0xe9f0('0x1f')](_0x5457f6['query']['offset']);}_0xdc16bc[_0xe9f0('0x39')]=qs[_0xe9f0('0x3a')](_0x5457f6[_0xe9f0('0x32')]['sort']);_0xdc16bc[_0xe9f0('0x3b')]=qs[_0xe9f0('0x34')](_[_0xe9f0('0x3c')](_0x5457f6[_0xe9f0('0x32')],_0x44fb5b[_0xe9f0('0x34')]),_0xa27c84);if(_0x5457f6['query'][_0xe9f0('0x3d')]){_0xdc16bc[_0xe9f0('0x3b')]=_[_0xe9f0('0x3e')](_0xdc16bc['where'],{'$or':_[_0xe9f0('0x2b')](_0xa27c84,function(_0xbec11f){if(_0xbec11f['type']!==_0xe9f0('0x3f')){var _0x5154c3={};_0x5154c3[_0xbec11f[_0xe9f0('0x28')]]={'$like':'%'+_0x5457f6['query']['filter']+'%'};return _0x5154c3;}})});}_0xdc16bc=_['merge']({},_0xdc16bc,_0x5457f6['options']);var _0x5165f7={'where':_0xdc16bc[_0xe9f0('0x3b')]};return db[_0xe9f0('0x2c')][_0xe9f0('0x1e')](_0x5165f7)[_0xe9f0('0x24')](function(_0x2560c6){_0xab3d81[_0xe9f0('0x1e')]=_0x2560c6;if(_0x5457f6[_0xe9f0('0x32')][_0xe9f0('0x40')]){_0xdc16bc[_0xe9f0('0x41')]=[{'all':!![]}];}return db['UserProfileResource'][_0xe9f0('0x42')](_0xdc16bc);})[_0xe9f0('0x24')](function(_0x36b00a){_0xab3d81['rows']=_0x36b00a;return _0xab3d81;})['then'](respondWithFilteredResult(_0x130f96,_0xdc16bc))[_0xe9f0('0x43')](handleError(_0x130f96,null));};exports['show']=function(_0x297689,_0x52613a){var _0x314f0e={'raw':![],'where':{'id':_0x297689['params']['id']}},_0x42d9d2={};_0x42d9d2[_0xe9f0('0x31')]=_[_0xe9f0('0x33')](db[_0xe9f0('0x2c')][_0xe9f0('0x2d')]);_0x42d9d2[_0xe9f0('0x32')]=_['keys'](_0x297689[_0xe9f0('0x32')]);_0x42d9d2[_0xe9f0('0x34')]=_[_0xe9f0('0x35')](_0x42d9d2[_0xe9f0('0x31')],_0x42d9d2[_0xe9f0('0x32')]);_0x314f0e['attributes']=_[_0xe9f0('0x35')](_0x42d9d2['model'],qs['fields'](_0x297689[_0xe9f0('0x32')][_0xe9f0('0x37')]));_0x314f0e['attributes']=_0x314f0e[_0xe9f0('0x36')][_0xe9f0('0x38')]?_0x314f0e[_0xe9f0('0x36')]:_0x42d9d2[_0xe9f0('0x31')];if(_0x297689[_0xe9f0('0x32')][_0xe9f0('0x40')]){_0x314f0e[_0xe9f0('0x41')]=[{'all':!![]}];}_0x314f0e=_['merge']({},_0x314f0e,_0x297689[_0xe9f0('0x44')]);return db['UserProfileResource'][_0xe9f0('0x45')](_0x314f0e)['then'](handleEntityNotFound(_0x52613a,null))[_0xe9f0('0x24')](respondWithResult(_0x52613a,null))['catch'](handleError(_0x52613a,null));};exports[_0xe9f0('0x46')]=function(_0x2023b4,_0x422324){return db['UserProfileResource'][_0xe9f0('0x46')](_0x2023b4[_0xe9f0('0x47')],{})[_0xe9f0('0x24')](respondWithResult(_0x422324,0xc9))[_0xe9f0('0x43')](handleError(_0x422324,null));};exports[_0xe9f0('0x23')]=function(_0x135175,_0x6ece3f){if(_0x135175[_0xe9f0('0x47')]['id']){delete _0x135175[_0xe9f0('0x47')]['id'];}return db[_0xe9f0('0x2c')][_0xe9f0('0x45')]({'where':{'id':_0x135175[_0xe9f0('0x48')]['id']}})['then'](handleEntityNotFound(_0x6ece3f,null))['then'](saveUpdates(_0x135175[_0xe9f0('0x47')],null))[_0xe9f0('0x24')](respondWithResult(_0x6ece3f,null))[_0xe9f0('0x43')](handleError(_0x6ece3f,null));};exports['destroy']=function(_0x1ac381,_0x4d8b2e){return db[_0xe9f0('0x2c')][_0xe9f0('0x45')]({'where':{'id':_0x1ac381[_0xe9f0('0x48')]['id']}})[_0xe9f0('0x24')](handleEntityNotFound(_0x4d8b2e,null))['then'](removeEntity(_0x4d8b2e,null))[_0xe9f0('0x43')](handleError(_0x4d8b2e,null));};exports[_0xe9f0('0x49')]=function(_0x5163ea,_0x2bf65c){return db[_0xe9f0('0x2c')][_0xe9f0('0x49')]()[_0xe9f0('0x24')](respondWithResult(_0x2bf65c,null))['catch'](handleError(_0x2bf65c,null));};
\ No newline at end of file
+var _0xfcf0=['nolimit','order','sort','where','VIRTUAL','filter','includeAll','include','catch','params','merge','options','create','body','find','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','apply','reject','update','then','destroy','error','stack','name','send','index','UserProfileResource','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty'];(function(_0x279d37,_0x14de3f){var _0x530173=function(_0x37fc79){while(--_0x37fc79){_0x279d37['push'](_0x279d37['shift']());}};_0x530173(++_0x14de3f);}(_0xfcf0,0x138));var _0x0fcf=function(_0x3eb713,_0x437874){_0x3eb713=_0x3eb713-0x0;var _0x1d7128=_0xfcf0[_0x3eb713];return _0x1d7128;};'use strict';var emlformat=require(_0x0fcf('0x0'));var rimraf=require(_0x0fcf('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0fcf('0x2'));var rp=require(_0x0fcf('0x3'));var moment=require(_0x0fcf('0x4'));var BPromise=require(_0x0fcf('0x5'));var Mustache=require('mustache');var util=require(_0x0fcf('0x6'));var path=require(_0x0fcf('0x7'));var sox=require(_0x0fcf('0x8'));var csv=require(_0x0fcf('0x9'));var ejs=require(_0x0fcf('0xa'));var fs=require('fs');var fs_extra=require(_0x0fcf('0xb'));var _=require(_0x0fcf('0xc'));var squel=require(_0x0fcf('0xd'));var crypto=require('crypto');var jsforce=require(_0x0fcf('0xe'));var deskjs=require(_0x0fcf('0xf'));var toCsv=require(_0x0fcf('0x9'));var querystring=require('querystring');var Papa=require(_0x0fcf('0x10'));var Redis=require(_0x0fcf('0x11'));var authService=require(_0x0fcf('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x0fcf('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0fcf('0x14'))(_0x0fcf('0x15'));var utils=require(_0x0fcf('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x0fcf('0x17'))['db'];function respondWithStatusCode(_0x3c999e,_0x4b4904){_0x4b4904=_0x4b4904||0xcc;return function(_0x20153d){if(_0x20153d){return _0x3c999e[_0x0fcf('0x18')](_0x4b4904);}return _0x3c999e[_0x0fcf('0x19')](_0x4b4904)[_0x0fcf('0x1a')]();};}function respondWithResult(_0x25fadc,_0x48bba6){_0x48bba6=_0x48bba6||0xc8;return function(_0xa32692){if(_0xa32692){return _0x25fadc[_0x0fcf('0x19')](_0x48bba6)[_0x0fcf('0x1b')](_0xa32692);}};}function respondWithFilteredResult(_0x5e867f,_0x3c09c4){return function(_0x610106){if(_0x610106){var _0x445207=typeof _0x3c09c4[_0x0fcf('0x1c')]==='undefined'&&typeof _0x3c09c4[_0x0fcf('0x1d')]===_0x0fcf('0x1e');var _0x1a8477=_0x610106[_0x0fcf('0x1f')];var _0x19cfbd=_0x445207?0x0:_0x3c09c4['offset'];var _0x18ea32=_0x445207?_0x610106[_0x0fcf('0x1f')]:_0x3c09c4['offset']+_0x3c09c4[_0x0fcf('0x1d')];var _0x1b9a90;if(_0x18ea32>=_0x1a8477){_0x18ea32=_0x1a8477;_0x1b9a90=0xc8;}else{_0x1b9a90=0xce;}_0x5e867f['status'](_0x1b9a90);return _0x5e867f[_0x0fcf('0x20')]('Content-Range',_0x19cfbd+'-'+_0x18ea32+'/'+_0x1a8477)[_0x0fcf('0x1b')](_0x610106);}return null;};}function patchUpdates(_0x13454e){return function(_0x5c8279){try{jsonpatch[_0x0fcf('0x21')](_0x5c8279,_0x13454e,!![]);}catch(_0x3f28d0){return BPromise[_0x0fcf('0x22')](_0x3f28d0);}return _0x5c8279['save']();};}function saveUpdates(_0x2f03ce,_0x1dafc8){return function(_0x196d30){if(_0x196d30){return _0x196d30[_0x0fcf('0x23')](_0x2f03ce)[_0x0fcf('0x24')](function(_0x30e1b0){return _0x30e1b0;});}return null;};}function removeEntity(_0x5841a9,_0x2eef74){return function(_0x253641){if(_0x253641){return _0x253641[_0x0fcf('0x25')]()[_0x0fcf('0x24')](function(){_0x5841a9[_0x0fcf('0x19')](0xcc)[_0x0fcf('0x1a')]();});}};}function handleEntityNotFound(_0x2ce990,_0x18f269){return function(_0x117510){if(!_0x117510){_0x2ce990['sendStatus'](0x194);}return _0x117510;};}function handleError(_0x18965e,_0xc107a){_0xc107a=_0xc107a||0x1f4;return function(_0x41b7a2){logger[_0x0fcf('0x26')](_0x41b7a2[_0x0fcf('0x27')]);if(_0x41b7a2[_0x0fcf('0x28')]){delete _0x41b7a2[_0x0fcf('0x28')];}_0x18965e['status'](_0xc107a)[_0x0fcf('0x29')](_0x41b7a2);};}exports[_0x0fcf('0x2a')]=function(_0x200517,_0x35180d){var _0x49fd0e={},_0x5d9bcd={},_0x4af80d={'count':0x0,'rows':[]};var _0x428194=_['map'](db[_0x0fcf('0x2b')][_0x0fcf('0x2c')],function(_0x56a416){return{'name':_0x56a416[_0x0fcf('0x2d')],'type':_0x56a416[_0x0fcf('0x2e')][_0x0fcf('0x2f')]};});_0x5d9bcd[_0x0fcf('0x30')]=_[_0x0fcf('0x31')](_0x428194,_0x0fcf('0x28'));_0x5d9bcd['query']=_[_0x0fcf('0x32')](_0x200517[_0x0fcf('0x33')]);_0x5d9bcd[_0x0fcf('0x34')]=_[_0x0fcf('0x35')](_0x5d9bcd[_0x0fcf('0x30')],_0x5d9bcd[_0x0fcf('0x33')]);_0x49fd0e['attributes']=_[_0x0fcf('0x35')](_0x5d9bcd[_0x0fcf('0x30')],qs[_0x0fcf('0x36')](_0x200517[_0x0fcf('0x33')][_0x0fcf('0x36')]));_0x49fd0e[_0x0fcf('0x37')]=_0x49fd0e[_0x0fcf('0x37')][_0x0fcf('0x38')]?_0x49fd0e[_0x0fcf('0x37')]:_0x5d9bcd[_0x0fcf('0x30')];if(!_0x200517[_0x0fcf('0x33')][_0x0fcf('0x39')](_0x0fcf('0x3a'))){_0x49fd0e[_0x0fcf('0x1d')]=qs['limit'](_0x200517['query'][_0x0fcf('0x1d')]);_0x49fd0e['offset']=qs['offset'](_0x200517[_0x0fcf('0x33')][_0x0fcf('0x1c')]);}_0x49fd0e[_0x0fcf('0x3b')]=qs['sort'](_0x200517['query'][_0x0fcf('0x3c')]);_0x49fd0e[_0x0fcf('0x3d')]=qs[_0x0fcf('0x34')](_['pick'](_0x200517[_0x0fcf('0x33')],_0x5d9bcd[_0x0fcf('0x34')]),_0x428194);if(_0x200517[_0x0fcf('0x33')]['filter']){_0x49fd0e['where']=_['merge'](_0x49fd0e[_0x0fcf('0x3d')],{'$or':_[_0x0fcf('0x31')](_0x428194,function(_0xdfdd1){if(_0xdfdd1[_0x0fcf('0x2e')]!==_0x0fcf('0x3e')){var _0x4be8eb={};_0x4be8eb[_0xdfdd1[_0x0fcf('0x28')]]={'$like':'%'+_0x200517[_0x0fcf('0x33')][_0x0fcf('0x3f')]+'%'};return _0x4be8eb;}})});}_0x49fd0e=_['merge']({},_0x49fd0e,_0x200517['options']);var _0x13e4b2={'where':_0x49fd0e[_0x0fcf('0x3d')]};return db[_0x0fcf('0x2b')][_0x0fcf('0x1f')](_0x13e4b2)[_0x0fcf('0x24')](function(_0x4c6669){_0x4af80d[_0x0fcf('0x1f')]=_0x4c6669;if(_0x200517[_0x0fcf('0x33')][_0x0fcf('0x40')]){_0x49fd0e[_0x0fcf('0x41')]=[{'all':!![]}];}return db['UserProfileResource']['findAll'](_0x49fd0e);})[_0x0fcf('0x24')](function(_0x2444a6){_0x4af80d['rows']=_0x2444a6;return _0x4af80d;})[_0x0fcf('0x24')](respondWithFilteredResult(_0x35180d,_0x49fd0e))[_0x0fcf('0x42')](handleError(_0x35180d,null));};exports['show']=function(_0x237fa6,_0xfc2f2b){var _0x44eb03={'raw':![],'where':{'id':_0x237fa6[_0x0fcf('0x43')]['id']}},_0x1f322b={};_0x1f322b['model']=_[_0x0fcf('0x32')](db[_0x0fcf('0x2b')]['rawAttributes']);_0x1f322b['query']=_[_0x0fcf('0x32')](_0x237fa6['query']);_0x1f322b['filters']=_[_0x0fcf('0x35')](_0x1f322b[_0x0fcf('0x30')],_0x1f322b[_0x0fcf('0x33')]);_0x44eb03[_0x0fcf('0x37')]=_[_0x0fcf('0x35')](_0x1f322b[_0x0fcf('0x30')],qs[_0x0fcf('0x36')](_0x237fa6[_0x0fcf('0x33')][_0x0fcf('0x36')]));_0x44eb03[_0x0fcf('0x37')]=_0x44eb03['attributes'][_0x0fcf('0x38')]?_0x44eb03[_0x0fcf('0x37')]:_0x1f322b[_0x0fcf('0x30')];if(_0x237fa6['query']['includeAll']){_0x44eb03[_0x0fcf('0x41')]=[{'all':!![]}];}_0x44eb03=_[_0x0fcf('0x44')]({},_0x44eb03,_0x237fa6[_0x0fcf('0x45')]);return db[_0x0fcf('0x2b')]['find'](_0x44eb03)['then'](handleEntityNotFound(_0xfc2f2b,null))[_0x0fcf('0x24')](respondWithResult(_0xfc2f2b,null))[_0x0fcf('0x42')](handleError(_0xfc2f2b,null));};exports[_0x0fcf('0x46')]=function(_0x1fb83d,_0x345188){return db[_0x0fcf('0x2b')][_0x0fcf('0x46')](_0x1fb83d[_0x0fcf('0x47')],{})['then'](respondWithResult(_0x345188,0xc9))['catch'](handleError(_0x345188,null));};exports[_0x0fcf('0x23')]=function(_0x243699,_0x28d2f4){if(_0x243699[_0x0fcf('0x47')]['id']){delete _0x243699[_0x0fcf('0x47')]['id'];}return db[_0x0fcf('0x2b')]['find']({'where':{'id':_0x243699[_0x0fcf('0x43')]['id']}})[_0x0fcf('0x24')](handleEntityNotFound(_0x28d2f4,null))['then'](saveUpdates(_0x243699[_0x0fcf('0x47')],null))[_0x0fcf('0x24')](respondWithResult(_0x28d2f4,null))[_0x0fcf('0x42')](handleError(_0x28d2f4,null));};exports[_0x0fcf('0x25')]=function(_0x5435c0,_0xc514bf){return db[_0x0fcf('0x2b')][_0x0fcf('0x48')]({'where':{'id':_0x5435c0[_0x0fcf('0x43')]['id']}})[_0x0fcf('0x24')](handleEntityNotFound(_0xc514bf,null))[_0x0fcf('0x24')](removeEntity(_0xc514bf,null))[_0x0fcf('0x42')](handleError(_0xc514bf,null));};exports[_0x0fcf('0x49')]=function(_0x389d71,_0x3a473c){return db[_0x0fcf('0x2b')][_0x0fcf('0x49')]()[_0x0fcf('0x24')](respondWithResult(_0x3a473c,null))[_0x0fcf('0x42')](handleError(_0x3a473c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc508=['../../config/environment','./userProfileResource.attributes','exports','compositeIndex','resourceId','sectionId','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x4ae767,_0x4140f0){var _0x571df1=function(_0x454c64){while(--_0x454c64){_0x4ae767['push'](_0x4ae767['shift']());}};_0x571df1(++_0x4140f0);}(_0xc508,0x199));var _0x8c50=function(_0x5cfd73,_0x50b00a){_0x5cfd73=_0x5cfd73-0x0;var _0x6b767c=_0xc508[_0x5cfd73];return _0x6b767c;};'use strict';var _=require('lodash');var util=require(_0x8c50('0x0'));var logger=require(_0x8c50('0x1'))(_0x8c50('0x2'));var moment=require(_0x8c50('0x3'));var BPromise=require(_0x8c50('0x4'));var rp=require(_0x8c50('0x5'));var fs=require('fs');var path=require(_0x8c50('0x6'));var rimraf=require('rimraf');var config=require(_0x8c50('0x7'));var attributes=require(_0x8c50('0x8'));module[_0x8c50('0x9')]=function(_0x21ec4d,_0x3d60dc){return _0x21ec4d['define']('UserProfileResource',attributes,{'tableName':'user_profile_has_resources','paranoid':![],'indexes':[{'name':_0x8c50('0xa'),'fields':[_0x8c50('0xb'),_0x8c50('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x9225=['./userProfileResource.attributes','exports','define','UserProfileResource','user_profile_has_resources','compositeIndex','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x24cdd5,_0x4232a0){var _0x52a09e=function(_0x2599f4){while(--_0x2599f4){_0x24cdd5['push'](_0x24cdd5['shift']());}};_0x52a09e(++_0x4232a0);}(_0x9225,0x76));var _0x5922=function(_0x1e4360,_0x930b9b){_0x1e4360=_0x1e4360-0x0;var _0x31e6b4=_0x9225[_0x1e4360];return _0x31e6b4;};'use strict';var _=require(_0x5922('0x0'));var util=require('util');var logger=require(_0x5922('0x1'))(_0x5922('0x2'));var moment=require(_0x5922('0x3'));var BPromise=require(_0x5922('0x4'));var rp=require(_0x5922('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x5922('0x6'));var config=require(_0x5922('0x7'));var attributes=require(_0x5922('0x8'));module[_0x5922('0x9')]=function(_0x26fb36,_0x2b3db6){return _0x26fb36[_0x5922('0xa')](_0x5922('0xb'),attributes,{'tableName':_0x5922('0xc'),'paranoid':![],'indexes':[{'name':_0x5922('0xd'),'fields':['resourceId','sectionId']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x94f8=['UserProfileResource,\x20%s,\x20%s,\x20%s','error','code','message','result','util','moment','bluebird','randomstring','ioredis','../../config/logger','../../config/environment','client','request','then','UserProfileResource,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x5b3aca,_0x3d0d08){var _0x3c93b1=function(_0x11a2f5){while(--_0x11a2f5){_0x5b3aca['push'](_0x5b3aca['shift']());}};_0x3c93b1(++_0x3d0d08);}(_0x94f8,0xef));var _0x894f=function(_0x825ea9,_0x56c3ea){_0x825ea9=_0x825ea9-0x0;var _0x4282a8=_0x94f8[_0x825ea9];return _0x4282a8;};'use strict';var _=require('lodash');var util=require(_0x894f('0x0'));var moment=require(_0x894f('0x1'));var BPromise=require(_0x894f('0x2'));var rs=require(_0x894f('0x3'));var fs=require('fs');var Redis=require(_0x894f('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x894f('0x5'))('rpc');var config=require(_0x894f('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x894f('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x341a46,_0x56036c,_0xebf60c){return new BPromise(function(_0x9e3d8b,_0x2f4e32){return client[_0x894f('0x8')](_0x341a46,_0xebf60c)[_0x894f('0x9')](function(_0x371a81){logger['info'](_0x894f('0xa'),_0x56036c,_0x894f('0xb'));logger[_0x894f('0xc')](_0x894f('0xd'),_0x56036c,_0x894f('0xb'),JSON['stringify'](_0x371a81));if(_0x371a81[_0x894f('0xe')]){if(_0x371a81[_0x894f('0xe')][_0x894f('0xf')]===0x1f4){logger[_0x894f('0xe')](_0x894f('0xa'),_0x56036c,_0x371a81[_0x894f('0xe')]['message']);return _0x2f4e32(_0x371a81[_0x894f('0xe')][_0x894f('0x10')]);}logger[_0x894f('0xe')](_0x894f('0xa'),_0x56036c,_0x371a81[_0x894f('0xe')][_0x894f('0x10')]);return _0x9e3d8b(_0x371a81[_0x894f('0xe')][_0x894f('0x10')]);}else{logger['info']('UserProfileResource,\x20%s,\x20%s',_0x56036c,_0x894f('0xb'));_0x9e3d8b(_0x371a81[_0x894f('0x11')][_0x894f('0x10')]);}})['catch'](function(_0x57fe18){logger[_0x894f('0xe')]('UserProfileResource,\x20%s,\x20%s',_0x56036c,_0x57fe18);_0x2f4e32(_0x57fe18);});});}
\ No newline at end of file
+var _0xcac6=['lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','then','info','request\x20sent','debug','stringify','error','message','UserProfileResource,\x20%s,\x20%s','result','catch'];(function(_0x5acdaa,_0x482c7a){var _0x203e32=function(_0x7ac7f7){while(--_0x7ac7f7){_0x5acdaa['push'](_0x5acdaa['shift']());}};_0x203e32(++_0x482c7a);}(_0xcac6,0xd2));var _0x6cac=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xcac6[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x6cac('0x0'));var util=require('util');var moment=require(_0x6cac('0x1'));var BPromise=require(_0x6cac('0x2'));var rs=require(_0x6cac('0x3'));var fs=require('fs');var Redis=require(_0x6cac('0x4'));var db=require(_0x6cac('0x5'))['db'];var utils=require(_0x6cac('0x6'));var logger=require('../../config/logger')(_0x6cac('0x7'));var config=require('../../config/environment');var jayson=require(_0x6cac('0x8'));var client=jayson[_0x6cac('0x9')][_0x6cac('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3bdacd,_0x4d9e30,_0x8d459b){return new BPromise(function(_0x133052,_0x2970e2){return client['request'](_0x3bdacd,_0x8d459b)[_0x6cac('0xb')](function(_0x17a562){logger[_0x6cac('0xc')]('UserProfileResource,\x20%s,\x20%s',_0x4d9e30,_0x6cac('0xd'));logger[_0x6cac('0xe')]('UserProfileResource,\x20%s,\x20%s,\x20%s',_0x4d9e30,_0x6cac('0xd'),JSON[_0x6cac('0xf')](_0x17a562));if(_0x17a562[_0x6cac('0x10')]){if(_0x17a562[_0x6cac('0x10')]['code']===0x1f4){logger[_0x6cac('0x10')]('UserProfileResource,\x20%s,\x20%s',_0x4d9e30,_0x17a562[_0x6cac('0x10')][_0x6cac('0x11')]);return _0x2970e2(_0x17a562[_0x6cac('0x10')][_0x6cac('0x11')]);}logger[_0x6cac('0x10')](_0x6cac('0x12'),_0x4d9e30,_0x17a562[_0x6cac('0x10')][_0x6cac('0x11')]);return _0x133052(_0x17a562[_0x6cac('0x10')][_0x6cac('0x11')]);}else{logger[_0x6cac('0xc')](_0x6cac('0x12'),_0x4d9e30,_0x6cac('0xd'));_0x133052(_0x17a562[_0x6cac('0x13')][_0x6cac('0x11')]);}})[_0x6cac('0x14')](function(_0xe0913d){logger[_0x6cac('0x10')](_0x6cac('0x12'),_0x4d9e30,_0xe0913d);_0x2970e2(_0xe0913d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78dd=['create','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','index','get','/describe','isAuthenticated','describe','/:id','show','post'];(function(_0x2ee6d1,_0xfad422){var _0x4752c1=function(_0x1e748f){while(--_0x1e748f){_0x2ee6d1['push'](_0x2ee6d1['shift']());}};_0x4752c1(++_0xfad422);}(_0x78dd,0xa6));var _0xd78d=function(_0x249e96,_0x3ea39d){_0x249e96=_0x249e96-0x0;var _0x17444c=_0x78dd[_0x249e96];return _0x17444c;};'use strict';var multer=require(_0xd78d('0x0'));var util=require(_0xd78d('0x1'));var path=require(_0xd78d('0x2'));var timeout=require(_0xd78d('0x3'));var express=require(_0xd78d('0x4'));var router=express[_0xd78d('0x5')]();var fs_extra=require(_0xd78d('0x6'));var auth=require(_0xd78d('0x7'));var interaction=require(_0xd78d('0x8'));var config=require(_0xd78d('0x9'));var controller=require('./userProfileSection.controller');router['get']('/',auth['isAuthenticated'](),controller[_0xd78d('0xa')]);router[_0xd78d('0xb')](_0xd78d('0xc'),auth[_0xd78d('0xd')](),controller[_0xd78d('0xe')]);router['get'](_0xd78d('0xf'),auth[_0xd78d('0xd')](),controller[_0xd78d('0x10')]);router[_0xd78d('0x11')]('/',auth[_0xd78d('0xd')](),controller[_0xd78d('0x12')]);router[_0xd78d('0x13')](_0xd78d('0xf'),auth[_0xd78d('0xd')](),controller[_0xd78d('0x14')]);router[_0xd78d('0x15')](_0xd78d('0xf'),auth['isAuthenticated'](),controller[_0xd78d('0x16')]);module['exports']=router;
\ No newline at end of file
+var _0xb8ea=['../../components/auth/service','../../components/interaction/service','./userProfileSection.controller','index','get','/describe','isAuthenticated','/:id','show','post','create','put','update','destroy','exports','multer','util','path','connect-timeout','express','Router'];(function(_0x3792f0,_0x5b553a){var _0x17d322=function(_0x18a325){while(--_0x18a325){_0x3792f0['push'](_0x3792f0['shift']());}};_0x17d322(++_0x5b553a);}(_0xb8ea,0x135));var _0xab8e=function(_0x22db9f,_0x8efff4){_0x22db9f=_0x22db9f-0x0;var _0x31a26e=_0xb8ea[_0x22db9f];return _0x31a26e;};'use strict';var multer=require(_0xab8e('0x0'));var util=require(_0xab8e('0x1'));var path=require(_0xab8e('0x2'));var timeout=require(_0xab8e('0x3'));var express=require(_0xab8e('0x4'));var router=express[_0xab8e('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xab8e('0x6'));var interaction=require(_0xab8e('0x7'));var config=require('../../config/environment');var controller=require(_0xab8e('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0xab8e('0x9')]);router[_0xab8e('0xa')](_0xab8e('0xb'),auth[_0xab8e('0xc')](),controller['describe']);router[_0xab8e('0xa')](_0xab8e('0xd'),auth[_0xab8e('0xc')](),controller[_0xab8e('0xe')]);router[_0xab8e('0xf')]('/',auth[_0xab8e('0xc')](),controller[_0xab8e('0x10')]);router[_0xab8e('0x11')]('/:id',auth[_0xab8e('0xc')](),controller[_0xab8e('0x12')]);router['delete'](_0xab8e('0xd'),auth[_0xab8e('0xc')](),controller[_0xab8e('0x13')]);module[_0xab8e('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa5fa=['INTEGER','BOOLEAN','setDataValue','crudPermissions','join','getDataValue','split','exports','STRING'];(function(_0x225f50,_0x48a77d){var _0x19d003=function(_0x58965d){while(--_0x58965d){_0x225f50['push'](_0x225f50['shift']());}};_0x19d003(++_0x48a77d);}(_0xa5fa,0xc4));var _0xaa5f=function(_0x53b135,_0x3aa0d3){_0x53b135=_0x53b135-0x0;var _0x56e52f=_0xa5fa[_0x53b135];return _0x56e52f;};'use strict';var Sequelize=require('sequelize');module[_0xaa5f('0x0')]={'name':{'type':Sequelize[_0xaa5f('0x1')],'allowNull':![]},'category':{'type':Sequelize[_0xaa5f('0x1')],'allowNull':![]},'sectionId':{'type':Sequelize[_0xaa5f('0x2')],'allowNull':![]},'enabled':{'type':Sequelize['BOOLEAN'],'defaultValue':null},'autoAssociation':{'type':Sequelize[_0xaa5f('0x3')],'defaultValue':null},'crudPermissions':{'type':Sequelize[_0xaa5f('0x1')],'set':function(_0x4d1c8b){this[_0xaa5f('0x4')](_0xaa5f('0x5'),_0x4d1c8b?_0x4d1c8b[_0xaa5f('0x6')](''):[]);},'get':function(){return this[_0xaa5f('0x7')](_0xaa5f('0x5'))?this[_0xaa5f('0x7')](_0xaa5f('0x5'))[_0xaa5f('0x8')](''):[];}}};
\ No newline at end of file
+var _0x757a=['BOOLEAN','setDataValue','crudPermissions','join','getDataValue','split','exports','STRING'];(function(_0x250d2a,_0x2983be){var _0x5738fa=function(_0x3cbde0){while(--_0x3cbde0){_0x250d2a['push'](_0x250d2a['shift']());}};_0x5738fa(++_0x2983be);}(_0x757a,0xde));var _0xa757=function(_0x722e59,_0x587a77){_0x722e59=_0x722e59-0x0;var _0x30f294=_0x757a[_0x722e59];return _0x30f294;};'use strict';var Sequelize=require('sequelize');module[_0xa757('0x0')]={'name':{'type':Sequelize[_0xa757('0x1')],'allowNull':![]},'category':{'type':Sequelize['STRING'],'allowNull':![]},'sectionId':{'type':Sequelize['INTEGER'],'allowNull':![]},'enabled':{'type':Sequelize['BOOLEAN'],'defaultValue':null},'autoAssociation':{'type':Sequelize[_0xa757('0x2')],'defaultValue':null},'crudPermissions':{'type':Sequelize[_0xa757('0x1')],'set':function(_0x1c2932){this[_0xa757('0x3')](_0xa757('0x4'),_0x1c2932?_0x1c2932[_0xa757('0x5')](''):[]);},'get':function(){return this['getDataValue'](_0xa757('0x4'))?this[_0xa757('0x6')]('crudPermissions')[_0xa757('0x7')](''):[];}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2e84=['Content-Range','apply','reject','update','destroy','error','stack','name','send','index','map','UserProfileSection','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','where','pick','filter','merge','options','then','include','findAll','params','includeAll','create','body','catch','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','to-csv','fs-extra','lodash','crypto','desk.js','querystring','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'];(function(_0x7dcbb1,_0x5a68f8){var _0x49acc5=function(_0x6f0277){while(--_0x6f0277){_0x7dcbb1['push'](_0x7dcbb1['shift']());}};_0x49acc5(++_0x5a68f8);}(_0x2e84,0x6e));var _0x42e8=function(_0x3d5934,_0x144c6d){_0x3d5934=_0x3d5934-0x0;var _0x3b9386=_0x2e84[_0x3d5934];return _0x3b9386;};'use strict';var emlformat=require(_0x42e8('0x0'));var rimraf=require(_0x42e8('0x1'));var zipdir=require(_0x42e8('0x2'));var jsonpatch=require(_0x42e8('0x3'));var rp=require(_0x42e8('0x4'));var moment=require(_0x42e8('0x5'));var BPromise=require(_0x42e8('0x6'));var Mustache=require(_0x42e8('0x7'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x42e8('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x42e8('0x9'));var _=require(_0x42e8('0xa'));var squel=require('squel');var crypto=require(_0x42e8('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x42e8('0xc'));var toCsv=require(_0x42e8('0x8'));var querystring=require(_0x42e8('0xd'));var Papa=require('papaparse');var Redis=require(_0x42e8('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x42e8('0xf'));var hardwareService=require(_0x42e8('0x10'));var logger=require(_0x42e8('0x11'))(_0x42e8('0x12'));var utils=require(_0x42e8('0x13'));var config=require(_0x42e8('0x14'));var licenseUtil=require(_0x42e8('0x15'));var db=require(_0x42e8('0x16'))['db'];function respondWithStatusCode(_0x762424,_0x1eca5f){_0x1eca5f=_0x1eca5f||0xcc;return function(_0x2330f8){if(_0x2330f8){return _0x762424[_0x42e8('0x17')](_0x1eca5f);}return _0x762424[_0x42e8('0x18')](_0x1eca5f)[_0x42e8('0x19')]();};}function respondWithResult(_0x2d9fa9,_0x3a94e8){_0x3a94e8=_0x3a94e8||0xc8;return function(_0x1ad882){if(_0x1ad882){return _0x2d9fa9['status'](_0x3a94e8)[_0x42e8('0x1a')](_0x1ad882);}};}function respondWithFilteredResult(_0x374e27,_0x2f1983){return function(_0x21f400){if(_0x21f400){var _0x30dad8=typeof _0x2f1983[_0x42e8('0x1b')]===_0x42e8('0x1c')&&typeof _0x2f1983[_0x42e8('0x1d')]===_0x42e8('0x1c');var _0x5f15e8=_0x21f400['count'];var _0x4de1f=_0x30dad8?0x0:_0x2f1983['offset'];var _0x5b945c=_0x30dad8?_0x21f400[_0x42e8('0x1e')]:_0x2f1983['offset']+_0x2f1983[_0x42e8('0x1d')];var _0x2ddd72;if(_0x5b945c>=_0x5f15e8){_0x5b945c=_0x5f15e8;_0x2ddd72=0xc8;}else{_0x2ddd72=0xce;}_0x374e27[_0x42e8('0x18')](_0x2ddd72);return _0x374e27[_0x42e8('0x1f')](_0x42e8('0x20'),_0x4de1f+'-'+_0x5b945c+'/'+_0x5f15e8)['json'](_0x21f400);}return null;};}function patchUpdates(_0x33e20e){return function(_0x59c575){try{jsonpatch[_0x42e8('0x21')](_0x59c575,_0x33e20e,!![]);}catch(_0x3ad13c){return BPromise[_0x42e8('0x22')](_0x3ad13c);}return _0x59c575['save']();};}function saveUpdates(_0x41d5ea,_0x52bb88){return function(_0x165e85){if(_0x165e85){return _0x165e85[_0x42e8('0x23')](_0x41d5ea)['then'](function(_0x114ef2){return _0x114ef2;});}return null;};}function removeEntity(_0x504947,_0xa901e6){return function(_0x35cb49){if(_0x35cb49){return _0x35cb49[_0x42e8('0x24')]()['then'](function(){_0x504947['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x322f45,_0x26ff6a){return function(_0xf75fc8){if(!_0xf75fc8){_0x322f45[_0x42e8('0x17')](0x194);}return _0xf75fc8;};}function handleError(_0x2b44f6,_0x2d4889){_0x2d4889=_0x2d4889||0x1f4;return function(_0x144f4e){logger[_0x42e8('0x25')](_0x144f4e[_0x42e8('0x26')]);if(_0x144f4e[_0x42e8('0x27')]){delete _0x144f4e['name'];}_0x2b44f6[_0x42e8('0x18')](_0x2d4889)[_0x42e8('0x28')](_0x144f4e);};}exports[_0x42e8('0x29')]=function(_0x5d0d08,_0x5caef0){var _0x189772={},_0x27e561={},_0xa1a97b={'count':0x0,'rows':[]};var _0x543613=_[_0x42e8('0x2a')](db[_0x42e8('0x2b')][_0x42e8('0x2c')],function(_0x5792eb){return{'name':_0x5792eb['fieldName'],'type':_0x5792eb[_0x42e8('0x2d')][_0x42e8('0x2e')]};});_0x27e561[_0x42e8('0x2f')]=_[_0x42e8('0x2a')](_0x543613,_0x42e8('0x27'));_0x27e561[_0x42e8('0x30')]=_[_0x42e8('0x31')](_0x5d0d08[_0x42e8('0x30')]);_0x27e561[_0x42e8('0x32')]=_[_0x42e8('0x33')](_0x27e561[_0x42e8('0x2f')],_0x27e561[_0x42e8('0x30')]);_0x189772[_0x42e8('0x34')]=_[_0x42e8('0x33')](_0x27e561[_0x42e8('0x2f')],qs['fields'](_0x5d0d08[_0x42e8('0x30')][_0x42e8('0x35')]));_0x189772[_0x42e8('0x34')]=_0x189772['attributes'][_0x42e8('0x36')]?_0x189772[_0x42e8('0x34')]:_0x27e561[_0x42e8('0x2f')];if(!_0x5d0d08[_0x42e8('0x30')][_0x42e8('0x37')](_0x42e8('0x38'))){_0x189772[_0x42e8('0x1d')]=qs[_0x42e8('0x1d')](_0x5d0d08[_0x42e8('0x30')][_0x42e8('0x1d')]);_0x189772['offset']=qs[_0x42e8('0x1b')](_0x5d0d08[_0x42e8('0x30')]['offset']);}_0x189772['order']=qs['sort'](_0x5d0d08['query']['sort']);_0x189772[_0x42e8('0x39')]=qs[_0x42e8('0x32')](_[_0x42e8('0x3a')](_0x5d0d08['query'],_0x27e561[_0x42e8('0x32')]),_0x543613);if(_0x5d0d08[_0x42e8('0x30')]['filter']){_0x189772[_0x42e8('0x39')]=_['merge'](_0x189772[_0x42e8('0x39')],{'$or':_[_0x42e8('0x2a')](_0x543613,function(_0x11e495){if(_0x11e495[_0x42e8('0x2d')]!=='VIRTUAL'){var _0x55cec6={};_0x55cec6[_0x11e495[_0x42e8('0x27')]]={'$like':'%'+_0x5d0d08[_0x42e8('0x30')][_0x42e8('0x3b')]+'%'};return _0x55cec6;}})});}_0x189772=_[_0x42e8('0x3c')]({},_0x189772,_0x5d0d08[_0x42e8('0x3d')]);var _0x42df03={'where':_0x189772[_0x42e8('0x39')]};return db[_0x42e8('0x2b')][_0x42e8('0x1e')](_0x42df03)[_0x42e8('0x3e')](function(_0x3ae163){_0xa1a97b[_0x42e8('0x1e')]=_0x3ae163;if(_0x5d0d08['query']['includeAll']){_0x189772[_0x42e8('0x3f')]=[{'all':!![]}];}return db[_0x42e8('0x2b')][_0x42e8('0x40')](_0x189772);})[_0x42e8('0x3e')](function(_0x19ef56){_0xa1a97b['rows']=_0x19ef56;return _0xa1a97b;})[_0x42e8('0x3e')](respondWithFilteredResult(_0x5caef0,_0x189772))['catch'](handleError(_0x5caef0,null));};exports['show']=function(_0x1ac3a6,_0x5e99c3){var _0x29c421={'raw':![],'where':{'id':_0x1ac3a6[_0x42e8('0x41')]['id']}},_0x1afdf4={};_0x1afdf4[_0x42e8('0x2f')]=_[_0x42e8('0x31')](db[_0x42e8('0x2b')]['rawAttributes']);_0x1afdf4[_0x42e8('0x30')]=_['keys'](_0x1ac3a6[_0x42e8('0x30')]);_0x1afdf4['filters']=_['intersection'](_0x1afdf4[_0x42e8('0x2f')],_0x1afdf4[_0x42e8('0x30')]);_0x29c421['attributes']=_[_0x42e8('0x33')](_0x1afdf4[_0x42e8('0x2f')],qs[_0x42e8('0x35')](_0x1ac3a6[_0x42e8('0x30')][_0x42e8('0x35')]));_0x29c421[_0x42e8('0x34')]=_0x29c421['attributes'][_0x42e8('0x36')]?_0x29c421['attributes']:_0x1afdf4['model'];if(_0x1ac3a6['query'][_0x42e8('0x42')]){_0x29c421[_0x42e8('0x3f')]=[{'all':!![]}];}_0x29c421=_['merge']({},_0x29c421,_0x1ac3a6[_0x42e8('0x3d')]);return db['UserProfileSection']['find'](_0x29c421)[_0x42e8('0x3e')](handleEntityNotFound(_0x5e99c3,null))['then'](respondWithResult(_0x5e99c3,null))['catch'](handleError(_0x5e99c3,null));};exports[_0x42e8('0x43')]=function(_0x53b4b1,_0x1a2f63){return db[_0x42e8('0x2b')][_0x42e8('0x43')](_0x53b4b1[_0x42e8('0x44')],{})['then'](respondWithResult(_0x1a2f63,0xc9))[_0x42e8('0x45')](handleError(_0x1a2f63,null));};exports[_0x42e8('0x23')]=function(_0x316e75,_0x50bc4c){if(_0x316e75[_0x42e8('0x44')]['id']){delete _0x316e75['body']['id'];}return db[_0x42e8('0x2b')]['find']({'where':{'id':_0x316e75[_0x42e8('0x41')]['id']}})[_0x42e8('0x3e')](handleEntityNotFound(_0x50bc4c,null))['then'](saveUpdates(_0x316e75[_0x42e8('0x44')],null))[_0x42e8('0x3e')](respondWithResult(_0x50bc4c,null))['catch'](handleError(_0x50bc4c,null));};exports[_0x42e8('0x24')]=function(_0x4a00e3,_0x4be1e3){return db[_0x42e8('0x2b')]['find']({'where':{'id':_0x4a00e3[_0x42e8('0x41')]['id']}})['then'](handleEntityNotFound(_0x4be1e3,null))[_0x42e8('0x3e')](removeEntity(_0x4be1e3,null))[_0x42e8('0x45')](handleError(_0x4be1e3,null));};exports[_0x42e8('0x46')]=function(_0x74b383,_0x78a0c3){return db[_0x42e8('0x2b')]['describe']()[_0x42e8('0x3e')](respondWithResult(_0x78a0c3,null))['catch'](handleError(_0x78a0c3,null));};
\ No newline at end of file
+var _0x047a=['body','destroy','describe','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','count','set','Content-Range','json','reject','save','update','then','end','stack','name','map','UserProfileSection','rawAttributes','fieldName','key','model','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filters','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create'];(function(_0x28aea5,_0x3bb12e){var _0x6a55f9=function(_0xf6ece8){while(--_0xf6ece8){_0x28aea5['push'](_0x28aea5['shift']());}};_0x6a55f9(++_0x3bb12e);}(_0x047a,0x133));var _0xa047=function(_0xe16fcf,_0x2b5918){_0xe16fcf=_0xe16fcf-0x0;var _0x5981e9=_0x047a[_0xe16fcf];return _0x5981e9;};'use strict';var emlformat=require(_0xa047('0x0'));var rimraf=require(_0xa047('0x1'));var zipdir=require(_0xa047('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa047('0x3'));var moment=require('moment');var BPromise=require(_0xa047('0x4'));var Mustache=require(_0xa047('0x5'));var util=require(_0xa047('0x6'));var path=require(_0xa047('0x7'));var sox=require('sox');var csv=require(_0xa047('0x8'));var ejs=require(_0xa047('0x9'));var fs=require('fs');var fs_extra=require(_0xa047('0xa'));var _=require('lodash');var squel=require(_0xa047('0xb'));var crypto=require(_0xa047('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xa047('0xd'));var toCsv=require(_0xa047('0x8'));var querystring=require(_0xa047('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xa047('0xf'));var qs=require(_0xa047('0x10'));var as=require(_0xa047('0x11'));var hardwareService=require(_0xa047('0x12'));var logger=require(_0xa047('0x13'))(_0xa047('0x14'));var utils=require('../../config/utils');var config=require(_0xa047('0x15'));var licenseUtil=require(_0xa047('0x16'));var db=require(_0xa047('0x17'))['db'];function respondWithStatusCode(_0x21f424,_0x213679){_0x213679=_0x213679||0xcc;return function(_0x477108){if(_0x477108){return _0x21f424[_0xa047('0x18')](_0x213679);}return _0x21f424[_0xa047('0x19')](_0x213679)['end']();};}function respondWithResult(_0x1adc7f,_0x16ba17){_0x16ba17=_0x16ba17||0xc8;return function(_0x189897){if(_0x189897){return _0x1adc7f[_0xa047('0x19')](_0x16ba17)['json'](_0x189897);}};}function respondWithFilteredResult(_0x2e8dd3,_0xde9ab0){return function(_0x5d26e1){if(_0x5d26e1){var _0x5be16c=typeof _0xde9ab0[_0xa047('0x1a')]===_0xa047('0x1b')&&typeof _0xde9ab0['limit']===_0xa047('0x1b');var _0x3bd2df=_0x5d26e1['count'];var _0xb8fe4f=_0x5be16c?0x0:_0xde9ab0['offset'];var _0x34b3fc=_0x5be16c?_0x5d26e1[_0xa047('0x1c')]:_0xde9ab0[_0xa047('0x1a')]+_0xde9ab0['limit'];var _0x304f4b;if(_0x34b3fc>=_0x3bd2df){_0x34b3fc=_0x3bd2df;_0x304f4b=0xc8;}else{_0x304f4b=0xce;}_0x2e8dd3[_0xa047('0x19')](_0x304f4b);return _0x2e8dd3[_0xa047('0x1d')](_0xa047('0x1e'),_0xb8fe4f+'-'+_0x34b3fc+'/'+_0x3bd2df)[_0xa047('0x1f')](_0x5d26e1);}return null;};}function patchUpdates(_0x5d87e6){return function(_0x487b9c){try{jsonpatch['apply'](_0x487b9c,_0x5d87e6,!![]);}catch(_0x53a798){return BPromise[_0xa047('0x20')](_0x53a798);}return _0x487b9c[_0xa047('0x21')]();};}function saveUpdates(_0x625311,_0x181148){return function(_0x412451){if(_0x412451){return _0x412451[_0xa047('0x22')](_0x625311)[_0xa047('0x23')](function(_0x4743ba){return _0x4743ba;});}return null;};}function removeEntity(_0x209407,_0xc969ac){return function(_0xae5cd4){if(_0xae5cd4){return _0xae5cd4['destroy']()[_0xa047('0x23')](function(){_0x209407[_0xa047('0x19')](0xcc)[_0xa047('0x24')]();});}};}function handleEntityNotFound(_0x5dd4a8,_0x2cdab6){return function(_0x52bb54){if(!_0x52bb54){_0x5dd4a8[_0xa047('0x18')](0x194);}return _0x52bb54;};}function handleError(_0x4748c9,_0x5cfe53){_0x5cfe53=_0x5cfe53||0x1f4;return function(_0x340433){logger['error'](_0x340433[_0xa047('0x25')]);if(_0x340433[_0xa047('0x26')]){delete _0x340433['name'];}_0x4748c9[_0xa047('0x19')](_0x5cfe53)['send'](_0x340433);};}exports['index']=function(_0x280821,_0x1f6ddb){var _0x49ae5d={},_0x129549={},_0x1ae675={'count':0x0,'rows':[]};var _0x32ad00=_[_0xa047('0x27')](db[_0xa047('0x28')][_0xa047('0x29')],function(_0x193254){return{'name':_0x193254[_0xa047('0x2a')],'type':_0x193254['type'][_0xa047('0x2b')]};});_0x129549[_0xa047('0x2c')]=_[_0xa047('0x27')](_0x32ad00,'name');_0x129549[_0xa047('0x2d')]=_['keys'](_0x280821[_0xa047('0x2d')]);_0x129549['filters']=_[_0xa047('0x2e')](_0x129549[_0xa047('0x2c')],_0x129549[_0xa047('0x2d')]);_0x49ae5d['attributes']=_['intersection'](_0x129549[_0xa047('0x2c')],qs['fields'](_0x280821[_0xa047('0x2d')][_0xa047('0x2f')]));_0x49ae5d[_0xa047('0x30')]=_0x49ae5d[_0xa047('0x30')][_0xa047('0x31')]?_0x49ae5d[_0xa047('0x30')]:_0x129549[_0xa047('0x2c')];if(!_0x280821['query'][_0xa047('0x32')](_0xa047('0x33'))){_0x49ae5d[_0xa047('0x34')]=qs[_0xa047('0x34')](_0x280821[_0xa047('0x2d')][_0xa047('0x34')]);_0x49ae5d[_0xa047('0x1a')]=qs[_0xa047('0x1a')](_0x280821[_0xa047('0x2d')]['offset']);}_0x49ae5d[_0xa047('0x35')]=qs[_0xa047('0x36')](_0x280821[_0xa047('0x2d')]['sort']);_0x49ae5d[_0xa047('0x37')]=qs['filters'](_[_0xa047('0x38')](_0x280821['query'],_0x129549[_0xa047('0x39')]),_0x32ad00);if(_0x280821[_0xa047('0x2d')][_0xa047('0x3a')]){_0x49ae5d['where']=_['merge'](_0x49ae5d[_0xa047('0x37')],{'$or':_[_0xa047('0x27')](_0x32ad00,function(_0x23cfe6){if(_0x23cfe6[_0xa047('0x3b')]!==_0xa047('0x3c')){var _0x2ef602={};_0x2ef602[_0x23cfe6['name']]={'$like':'%'+_0x280821['query'][_0xa047('0x3a')]+'%'};return _0x2ef602;}})});}_0x49ae5d=_[_0xa047('0x3d')]({},_0x49ae5d,_0x280821[_0xa047('0x3e')]);var _0x4bacdf={'where':_0x49ae5d[_0xa047('0x37')]};return db['UserProfileSection']['count'](_0x4bacdf)[_0xa047('0x23')](function(_0x2229ae){_0x1ae675[_0xa047('0x1c')]=_0x2229ae;if(_0x280821[_0xa047('0x2d')][_0xa047('0x3f')]){_0x49ae5d[_0xa047('0x40')]=[{'all':!![]}];}return db[_0xa047('0x28')][_0xa047('0x41')](_0x49ae5d);})[_0xa047('0x23')](function(_0xbefe9d){_0x1ae675[_0xa047('0x42')]=_0xbefe9d;return _0x1ae675;})[_0xa047('0x23')](respondWithFilteredResult(_0x1f6ddb,_0x49ae5d))[_0xa047('0x43')](handleError(_0x1f6ddb,null));};exports[_0xa047('0x44')]=function(_0x2434b0,_0x40842b){var _0x4f15d0={'raw':![],'where':{'id':_0x2434b0[_0xa047('0x45')]['id']}},_0x4b4e95={};_0x4b4e95[_0xa047('0x2c')]=_[_0xa047('0x46')](db['UserProfileSection'][_0xa047('0x29')]);_0x4b4e95[_0xa047('0x2d')]=_[_0xa047('0x46')](_0x2434b0[_0xa047('0x2d')]);_0x4b4e95[_0xa047('0x39')]=_[_0xa047('0x2e')](_0x4b4e95['model'],_0x4b4e95['query']);_0x4f15d0[_0xa047('0x30')]=_[_0xa047('0x2e')](_0x4b4e95[_0xa047('0x2c')],qs['fields'](_0x2434b0[_0xa047('0x2d')][_0xa047('0x2f')]));_0x4f15d0['attributes']=_0x4f15d0['attributes']['length']?_0x4f15d0[_0xa047('0x30')]:_0x4b4e95[_0xa047('0x2c')];if(_0x2434b0[_0xa047('0x2d')][_0xa047('0x3f')]){_0x4f15d0[_0xa047('0x40')]=[{'all':!![]}];}_0x4f15d0=_[_0xa047('0x3d')]({},_0x4f15d0,_0x2434b0[_0xa047('0x3e')]);return db[_0xa047('0x28')][_0xa047('0x47')](_0x4f15d0)[_0xa047('0x23')](handleEntityNotFound(_0x40842b,null))['then'](respondWithResult(_0x40842b,null))[_0xa047('0x43')](handleError(_0x40842b,null));};exports[_0xa047('0x48')]=function(_0x2859cc,_0x354383){return db[_0xa047('0x28')][_0xa047('0x48')](_0x2859cc['body'],{})[_0xa047('0x23')](respondWithResult(_0x354383,0xc9))[_0xa047('0x43')](handleError(_0x354383,null));};exports['update']=function(_0x3598cb,_0x4a6f1f){if(_0x3598cb[_0xa047('0x49')]['id']){delete _0x3598cb[_0xa047('0x49')]['id'];}return db[_0xa047('0x28')][_0xa047('0x47')]({'where':{'id':_0x3598cb[_0xa047('0x45')]['id']}})[_0xa047('0x23')](handleEntityNotFound(_0x4a6f1f,null))[_0xa047('0x23')](saveUpdates(_0x3598cb[_0xa047('0x49')],null))['then'](respondWithResult(_0x4a6f1f,null))[_0xa047('0x43')](handleError(_0x4a6f1f,null));};exports[_0xa047('0x4a')]=function(_0x30e01a,_0x1b078d){return db['UserProfileSection'][_0xa047('0x47')]({'where':{'id':_0x30e01a['params']['id']}})[_0xa047('0x23')](handleEntityNotFound(_0x1b078d,null))[_0xa047('0x23')](removeEntity(_0x1b078d,null))[_0xa047('0x43')](handleError(_0x1b078d,null));};exports[_0xa047('0x4b')]=function(_0x5c2f33,_0xd814ed){return db[_0xa047('0x28')][_0xa047('0x4b')]()['then'](respondWithResult(_0xd814ed,null))[_0xa047('0x43')](handleError(_0xd814ed,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ecb=['define','UserProfileSection','user_profile_has_sections','compositeIndex','userProfileId','lodash','util','api','moment','request-promise','path','rimraf','../../config/environment','./userProfileSection.attributes','exports'];(function(_0x1fd675,_0x165dfe){var _0x16b554=function(_0x5761ff){while(--_0x5761ff){_0x1fd675['push'](_0x1fd675['shift']());}};_0x16b554(++_0x165dfe);}(_0x6ecb,0xd7));var _0xb6ec=function(_0xb5fc12,_0x52af9e){_0xb5fc12=_0xb5fc12-0x0;var _0x41063c=_0x6ecb[_0xb5fc12];return _0x41063c;};'use strict';var _=require(_0xb6ec('0x0'));var util=require(_0xb6ec('0x1'));var logger=require('../../config/logger')(_0xb6ec('0x2'));var moment=require(_0xb6ec('0x3'));var BPromise=require('bluebird');var rp=require(_0xb6ec('0x4'));var fs=require('fs');var path=require(_0xb6ec('0x5'));var rimraf=require(_0xb6ec('0x6'));var config=require(_0xb6ec('0x7'));var attributes=require(_0xb6ec('0x8'));module[_0xb6ec('0x9')]=function(_0x329224,_0x5ddd16){return _0x329224[_0xb6ec('0xa')](_0xb6ec('0xb'),attributes,{'tableName':_0xb6ec('0xc'),'paranoid':![],'indexes':[{'name':_0xb6ec('0xd'),'fields':['sectionId',_0xb6ec('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xec08=['rimraf','./userProfileSection.attributes','exports','user_profile_has_sections','compositeIndex','userProfileId','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x3ad27e,_0x4058f9){var _0x49ea6f=function(_0x37df09){while(--_0x37df09){_0x3ad27e['push'](_0x3ad27e['shift']());}};_0x49ea6f(++_0x4058f9);}(_0xec08,0x84));var _0x8ec0=function(_0x17b41e,_0x5e83a1){_0x17b41e=_0x17b41e-0x0;var _0x1c50b2=_0xec08[_0x17b41e];return _0x1c50b2;};'use strict';var _=require(_0x8ec0('0x0'));var util=require(_0x8ec0('0x1'));var logger=require(_0x8ec0('0x2'))(_0x8ec0('0x3'));var moment=require(_0x8ec0('0x4'));var BPromise=require(_0x8ec0('0x5'));var rp=require(_0x8ec0('0x6'));var fs=require('fs');var path=require(_0x8ec0('0x7'));var rimraf=require(_0x8ec0('0x8'));var config=require('../../config/environment');var attributes=require(_0x8ec0('0x9'));module[_0x8ec0('0xa')]=function(_0xdb9dea,_0xee97b5){return _0xdb9dea['define']('UserProfileSection',attributes,{'tableName':_0x8ec0('0xb'),'paranoid':![],'indexes':[{'name':_0x8ec0('0xc'),'fields':['sectionId',_0x8ec0('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5716=['error','code','message','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','UserProfileSection,\x20%s,\x20%s','request\x20sent','debug','UserProfileSection,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x220f3f,_0x11c540){var _0x1f170e=function(_0x2c0ec9){while(--_0x2c0ec9){_0x220f3f['push'](_0x220f3f['shift']());}};_0x1f170e(++_0x11c540);}(_0x5716,0xcd));var _0x6571=function(_0x2235bf,_0x3a06a7){_0x2235bf=_0x2235bf-0x0;var _0x4c3a64=_0x5716[_0x2235bf];return _0x4c3a64;};'use strict';var _=require(_0x6571('0x0'));var util=require(_0x6571('0x1'));var moment=require('moment');var BPromise=require(_0x6571('0x2'));var rs=require(_0x6571('0x3'));var fs=require('fs');var Redis=require(_0x6571('0x4'));var db=require(_0x6571('0x5'))['db'];var utils=require(_0x6571('0x6'));var logger=require(_0x6571('0x7'))(_0x6571('0x8'));var config=require(_0x6571('0x9'));var jayson=require(_0x6571('0xa'));var client=jayson['client'][_0x6571('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x200b82,_0x495bda,_0x1cee3f){return new BPromise(function(_0x208220,_0x44910f){return client[_0x6571('0xc')](_0x200b82,_0x1cee3f)[_0x6571('0xd')](function(_0x42f3cc){logger[_0x6571('0xe')](_0x6571('0xf'),_0x495bda,_0x6571('0x10'));logger[_0x6571('0x11')](_0x6571('0x12'),_0x495bda,_0x6571('0x10'),JSON[_0x6571('0x13')](_0x42f3cc));if(_0x42f3cc['error']){if(_0x42f3cc[_0x6571('0x14')][_0x6571('0x15')]===0x1f4){logger[_0x6571('0x14')](_0x6571('0xf'),_0x495bda,_0x42f3cc[_0x6571('0x14')]['message']);return _0x44910f(_0x42f3cc[_0x6571('0x14')][_0x6571('0x16')]);}logger['error']('UserProfileSection,\x20%s,\x20%s',_0x495bda,_0x42f3cc[_0x6571('0x14')][_0x6571('0x16')]);return _0x208220(_0x42f3cc['error'][_0x6571('0x16')]);}else{logger[_0x6571('0xe')]('UserProfileSection,\x20%s,\x20%s',_0x495bda,_0x6571('0x10'));_0x208220(_0x42f3cc[_0x6571('0x17')][_0x6571('0x16')]);}})[_0x6571('0x18')](function(_0x2a0997){logger['error'](_0x6571('0xf'),_0x495bda,_0x2a0997);_0x44910f(_0x2a0997);});});}
\ No newline at end of file
+var _0xd04e=['../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','debug','request\x20sent','error','UserProfileSection,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x5e6fe1,_0x8f80ad){var _0x5a6018=function(_0x1f1225){while(--_0x1f1225){_0x5e6fe1['push'](_0x5e6fe1['shift']());}};_0x5a6018(++_0x8f80ad);}(_0xd04e,0x10d));var _0xed04=function(_0x32f7d7,_0x54231b){_0x32f7d7=_0x32f7d7-0x0;var _0x133d09=_0xd04e[_0x32f7d7];return _0x133d09;};'use strict';var _=require(_0xed04('0x0'));var util=require(_0xed04('0x1'));var moment=require(_0xed04('0x2'));var BPromise=require(_0xed04('0x3'));var rs=require(_0xed04('0x4'));var fs=require('fs');var Redis=require(_0xed04('0x5'));var db=require(_0xed04('0x6'))['db'];var utils=require(_0xed04('0x7'));var logger=require(_0xed04('0x8'))('rpc');var config=require(_0xed04('0x9'));var jayson=require(_0xed04('0xa'));var client=jayson[_0xed04('0xb')][_0xed04('0xc')]({'port':0x232a});function respondWithRpcPromise(_0xf7aa9e,_0x4cdc39,_0x523527){return new BPromise(function(_0x5df2d2,_0x270f24){return client[_0xed04('0xd')](_0xf7aa9e,_0x523527)[_0xed04('0xe')](function(_0x277eac){logger[_0xed04('0xf')]('UserProfileSection,\x20%s,\x20%s',_0x4cdc39,'request\x20sent');logger[_0xed04('0x10')]('UserProfileSection,\x20%s,\x20%s,\x20%s',_0x4cdc39,_0xed04('0x11'),JSON['stringify'](_0x277eac));if(_0x277eac[_0xed04('0x12')]){if(_0x277eac[_0xed04('0x12')]['code']===0x1f4){logger[_0xed04('0x12')](_0xed04('0x13'),_0x4cdc39,_0x277eac[_0xed04('0x12')]['message']);return _0x270f24(_0x277eac[_0xed04('0x12')][_0xed04('0x14')]);}logger[_0xed04('0x12')](_0xed04('0x13'),_0x4cdc39,_0x277eac[_0xed04('0x12')][_0xed04('0x14')]);return _0x5df2d2(_0x277eac['error']['message']);}else{logger['info'](_0xed04('0x13'),_0x4cdc39,'request\x20sent');_0x5df2d2(_0x277eac[_0xed04('0x15')][_0xed04('0x14')]);}})[_0xed04('0x16')](function(_0x4d8934){logger[_0xed04('0x12')]('UserProfileSection,\x20%s,\x20%s',_0x4cdc39,_0x4d8934);_0x270f24(_0x4d8934);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0xf7058b,_0x22c9b7){var _0x24cbf0=function(_0x2997ac){while(--_0x2997ac){_0xf7058b['push'](_0xf7058b['shift']());}};_0x24cbf0(++_0x22c9b7);}(_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'));module['exports']=router;
\ No newline at end of file
+var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x42c2eb,_0x252c89){var _0x2beeba=function(_0x1395e7){while(--_0x1395e7){_0x42c2eb['push'](_0x42c2eb['shift']());}};_0x2beeba(++_0x252c89);}(_0xe706,0xa3));var _0x6e70=function(_0x45e56c,_0x4235d0){_0x45e56c=_0x45e56c-0x0;var _0x4826ef=_0xe706[_0x45e56c];return _0x4826ef;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x06b0=['sequelize','INTEGER'];(function(_0x6a5f12,_0x3cd8a5){var _0x40dc6f=function(_0x11076a){while(--_0x11076a){_0x6a5f12['push'](_0x6a5f12['shift']());}};_0x40dc6f(++_0x3cd8a5);}(_0x06b0,0x74));var _0x006b=function(_0x99ac38,_0x271575){_0x99ac38=_0x99ac38-0x0;var _0x47954b=_0x06b0[_0x99ac38];return _0x47954b;};'use strict';var Sequelize=require(_0x006b('0x0'));module['exports']={'penalty':{'type':Sequelize[_0x006b('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x7fc4=['exports'];(function(_0x4f53a6,_0x582ff5){var _0x30e4b7=function(_0x1aaf04){while(--_0x1aaf04){_0x4f53a6['push'](_0x4f53a6['shift']());}};_0x30e4b7(++_0x582ff5);}(_0x7fc4,0x1cf));var _0x47fc=function(_0x1a3825,_0x2f6321){_0x1a3825=_0x1a3825-0x0;var _0x4fc98b=_0x7fc4[_0x1a3825];return _0x4fc98b;};'use strict';var Sequelize=require('sequelize');module[_0x47fc('0x0')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8fb=['lodash','util','../../config/logger','api','path','rimraf','./userSmsQueue.attributes','exports','UserSmsQueue'];(function(_0x4d7ec2,_0x3873dc){var _0x5ef49f=function(_0x3540d1){while(--_0x3540d1){_0x4d7ec2['push'](_0x4d7ec2['shift']());}};_0x5ef49f(++_0x3873dc);}(_0xd8fb,0x99));var _0xbd8f=function(_0x23fc06,_0x21b2b2){_0x23fc06=_0x23fc06-0x0;var _0x2c0dd7=_0xd8fb[_0x23fc06];return _0x2c0dd7;};'use strict';var _=require(_0xbd8f('0x0'));var util=require(_0xbd8f('0x1'));var logger=require(_0xbd8f('0x2'))(_0xbd8f('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xbd8f('0x4'));var rimraf=require(_0xbd8f('0x5'));var config=require('../../config/environment');var attributes=require(_0xbd8f('0x6'));module[_0xbd8f('0x7')]=function(_0x5543b2,_0x33d541){return _0x5543b2['define'](_0xbd8f('0x8'),attributes,{'tableName':'user_has_sms_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe2bc=['./userSmsQueue.attributes','exports','define','user_has_sms_queues','lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf'];(function(_0x579b4c,_0x418ec0){var _0x598027=function(_0x58c7ea){while(--_0x58c7ea){_0x579b4c['push'](_0x579b4c['shift']());}};_0x598027(++_0x418ec0);}(_0xe2bc,0x1a6));var _0xce2b=function(_0x4a3898,_0x4c9853){_0x4a3898=_0x4a3898-0x0;var _0x25ceb0=_0xe2bc[_0x4a3898];return _0x25ceb0;};'use strict';var _=require(_0xce2b('0x0'));var util=require('util');var logger=require(_0xce2b('0x1'))('api');var moment=require(_0xce2b('0x2'));var BPromise=require(_0xce2b('0x3'));var rp=require(_0xce2b('0x4'));var fs=require('fs');var path=require(_0xce2b('0x5'));var rimraf=require(_0xce2b('0x6'));var config=require('../../config/environment');var attributes=require(_0xce2b('0x7'));module[_0xce2b('0x8')]=function(_0x3c15d3,_0x343373){return _0x3c15d3[_0xce2b('0x9')]('UserSmsQueue',attributes,{'tableName':_0xce2b('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf93=['UserSmsQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','then','UserSmsQueue,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x2e9a38,_0x46ed9e){var _0x4fe581=function(_0x31e4a0){while(--_0x31e4a0){_0x2e9a38['push'](_0x2e9a38['shift']());}};_0x4fe581(++_0x46ed9e);}(_0xbf93,0x7d));var _0x3bf9=function(_0x59dcd4,_0xb8f851){_0x59dcd4=_0x59dcd4-0x0;var _0x10f46e=_0xbf93[_0x59dcd4];return _0x10f46e;};'use strict';var _=require(_0x3bf9('0x0'));var util=require(_0x3bf9('0x1'));var moment=require(_0x3bf9('0x2'));var BPromise=require(_0x3bf9('0x3'));var rs=require(_0x3bf9('0x4'));var fs=require('fs');var Redis=require(_0x3bf9('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x3bf9('0x6'));var logger=require('../../config/logger')(_0x3bf9('0x7'));var config=require(_0x3bf9('0x8'));var jayson=require(_0x3bf9('0x9'));var client=jayson[_0x3bf9('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x527e4f,_0x19960a,_0x142eda){return new BPromise(function(_0x1eb38e,_0x231473){return client['request'](_0x527e4f,_0x142eda)[_0x3bf9('0xb')](function(_0x573695){logger['info'](_0x3bf9('0xc'),_0x19960a,_0x3bf9('0xd'));logger[_0x3bf9('0xe')](_0x3bf9('0xf'),_0x19960a,_0x3bf9('0xd'),JSON[_0x3bf9('0x10')](_0x573695));if(_0x573695[_0x3bf9('0x11')]){if(_0x573695['error']['code']===0x1f4){logger[_0x3bf9('0x11')](_0x3bf9('0xc'),_0x19960a,_0x573695['error'][_0x3bf9('0x12')]);return _0x231473(_0x573695['error'][_0x3bf9('0x12')]);}logger['error'](_0x3bf9('0xc'),_0x19960a,_0x573695['error'][_0x3bf9('0x12')]);return _0x1eb38e(_0x573695[_0x3bf9('0x11')][_0x3bf9('0x12')]);}else{logger['info'](_0x3bf9('0xc'),_0x19960a,'request\x20sent');_0x1eb38e(_0x573695[_0x3bf9('0x13')][_0x3bf9('0x12')]);}})['catch'](function(_0x26787c){logger[_0x3bf9('0x11')](_0x3bf9('0xc'),_0x19960a,_0x26787c);_0x231473(_0x26787c);});});}
\ No newline at end of file
+var _0x3529=['info','UserSmsQueue,\x20%s,\x20%s','debug','UserSmsQueue,\x20%s,\x20%s,\x20%s','error','code','message','request\x20sent','result','catch','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then'];(function(_0x333ac4,_0x5677a4){var _0x193894=function(_0x28012d){while(--_0x28012d){_0x333ac4['push'](_0x333ac4['shift']());}};_0x193894(++_0x5677a4);}(_0x3529,0xb2));var _0x9352=function(_0xa7d678,_0x3dfdff){_0xa7d678=_0xa7d678-0x0;var _0x5cc539=_0x3529[_0xa7d678];return _0x5cc539;};'use strict';var _=require(_0x9352('0x0'));var util=require('util');var moment=require(_0x9352('0x1'));var BPromise=require('bluebird');var rs=require(_0x9352('0x2'));var fs=require('fs');var Redis=require(_0x9352('0x3'));var db=require(_0x9352('0x4'))['db'];var utils=require(_0x9352('0x5'));var logger=require(_0x9352('0x6'))(_0x9352('0x7'));var config=require(_0x9352('0x8'));var jayson=require(_0x9352('0x9'));var client=jayson[_0x9352('0xa')][_0x9352('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2fba14,_0x2d0bb6,_0x19b2f6){return new BPromise(function(_0x410c81,_0x40b7ec){return client[_0x9352('0xc')](_0x2fba14,_0x19b2f6)[_0x9352('0xd')](function(_0x11f8f8){logger[_0x9352('0xe')](_0x9352('0xf'),_0x2d0bb6,'request\x20sent');logger[_0x9352('0x10')](_0x9352('0x11'),_0x2d0bb6,'request\x20sent',JSON['stringify'](_0x11f8f8));if(_0x11f8f8[_0x9352('0x12')]){if(_0x11f8f8[_0x9352('0x12')][_0x9352('0x13')]===0x1f4){logger[_0x9352('0x12')](_0x9352('0xf'),_0x2d0bb6,_0x11f8f8[_0x9352('0x12')][_0x9352('0x14')]);return _0x40b7ec(_0x11f8f8[_0x9352('0x12')][_0x9352('0x14')]);}logger[_0x9352('0x12')](_0x9352('0xf'),_0x2d0bb6,_0x11f8f8[_0x9352('0x12')][_0x9352('0x14')]);return _0x410c81(_0x11f8f8[_0x9352('0x12')][_0x9352('0x14')]);}else{logger[_0x9352('0xe')](_0x9352('0xf'),_0x2d0bb6,_0x9352('0x15'));_0x410c81(_0x11f8f8[_0x9352('0x16')][_0x9352('0x14')]);}})[_0x9352('0x17')](function(_0x35bb7b){logger[_0x9352('0x12')](_0x9352('0xf'),_0x2d0bb6,_0x35bb7b);_0x40b7ec(_0x35bb7b);});});}
\ 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 _0x3192=['sequelize','INTEGER'];(function(_0x3ebc55,_0x2a5751){var _0x56332d=function(_0xdbf75e){while(--_0xdbf75e){_0x3ebc55['push'](_0x3ebc55['shift']());}};_0x56332d(++_0x2a5751);}(_0x3192,0xee));var _0x2319=function(_0x370b66,_0x246228){_0x370b66=_0x370b66-0x0;var _0x41aa3c=_0x3192[_0x370b66];return _0x41aa3c;};'use strict';var Sequelize=require(_0x2319('0x0'));module['exports']={'UserId':{'type':Sequelize[_0x2319('0x1')]},'VoicePrefixId':{'type':Sequelize[_0x2319('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 _0xa9e0=['../../config/environment','./userVoicePrefix.attributes','exports','define','UserVoicePrefix','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0x307646,_0x1e4c10){var _0x286bcb=function(_0x26026d){while(--_0x26026d){_0x307646['push'](_0x307646['shift']());}};_0x286bcb(++_0x1e4c10);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4fc9e6,_0xc51915){_0x4fc9e6=_0x4fc9e6-0x0;var _0x551d28=_0xa9e0[_0x4fc9e6];return _0x551d28;};'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 _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0xe1fe73,_0x272135){var _0x257731=function(_0x59944a){while(--_0x59944a){_0xe1fe73['push'](_0xe1fe73['shift']());}};_0x257731(++_0x272135);}(_0xe706,0xa3));var _0x6e70=function(_0x240261,_0x4fe66c){_0x240261=_0x240261-0x0;var _0x45c332=_0xe706[_0x240261];return _0x45c332;};'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 _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x3e2c1e,_0x1e8d40){var _0x1c6666=function(_0x190b73){while(--_0x190b73){_0x3e2c1e['push'](_0x3e2c1e['shift']());}};_0x1c6666(++_0x1e8d40);}(_0x9c44,0x178));var _0x49c4=function(_0x68c979,_0x431cff){_0x68c979=_0x68c979-0x0;var _0x4f0001=_0x9c44[_0x68c979];return _0x4f0001;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6c3=['exports','sequelize'];(function(_0x3135bb,_0x34c7ab){var _0x54d4a0=function(_0x4cc11d){while(--_0x4cc11d){_0x3135bb['push'](_0x3135bb['shift']());}};_0x54d4a0(++_0x34c7ab);}(_0xf6c3,0x1cf));var _0x3f6c=function(_0xd8bf74,_0x49aa2e){_0xd8bf74=_0xd8bf74-0x0;var _0x2fbd3b=_0xf6c3[_0xd8bf74];return _0x2fbd3b;};'use strict';var Sequelize=require(_0x3f6c('0x0'));module[_0x3f6c('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x0c74=['INTEGER','exports'];(function(_0x5f1f2c,_0x5a8cc1){var _0x5b07fa=function(_0x2234d8){while(--_0x2234d8){_0x5f1f2c['push'](_0x5f1f2c['shift']());}};_0x5b07fa(++_0x5a8cc1);}(_0x0c74,0x1cd));var _0x40c7=function(_0x20c260,_0x19a98e){_0x20c260=_0x20c260-0x0;var _0x6e0a59=_0x0c74[_0x20c260];return _0x6e0a59;};'use strict';var Sequelize=require('sequelize');module[_0x40c7('0x0')]={'penalty':{'type':Sequelize[_0x40c7('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8fc3=['lodash','util','moment','bluebird','path','../../config/environment','exports','define','UserVoiceQueue','user_has_voice_queues'];(function(_0x10772c,_0x1df6ad){var _0x806119=function(_0xd52771){while(--_0xd52771){_0x10772c['push'](_0x10772c['shift']());}};_0x806119(++_0x1df6ad);}(_0x8fc3,0x168));var _0x38fc=function(_0x446208,_0xb483fb){_0x446208=_0x446208-0x0;var _0xe49563=_0x8fc3[_0x446208];return _0xe49563;};'use strict';var _=require(_0x38fc('0x0'));var util=require(_0x38fc('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x38fc('0x2'));var BPromise=require(_0x38fc('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x38fc('0x4'));var rimraf=require('rimraf');var config=require(_0x38fc('0x5'));var attributes=require('./userVoiceQueue.attributes');module[_0x38fc('0x6')]=function(_0x152b15,_0x5d43b0){return _0x152b15[_0x38fc('0x7')](_0x38fc('0x8'),attributes,{'tableName':_0x38fc('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc839=['../../config/environment','define','UserVoiceQueue','lodash','util','api','moment','bluebird','request-promise','path','rimraf'];(function(_0xd8a8af,_0x1e93f0){var _0x5b7278=function(_0x458800){while(--_0x458800){_0xd8a8af['push'](_0xd8a8af['shift']());}};_0x5b7278(++_0x1e93f0);}(_0xc839,0x7c));var _0x9c83=function(_0x50a8ab,_0x2525fa){_0x50a8ab=_0x50a8ab-0x0;var _0x13f124=_0xc839[_0x50a8ab];return _0x13f124;};'use strict';var _=require(_0x9c83('0x0'));var util=require(_0x9c83('0x1'));var logger=require('../../config/logger')(_0x9c83('0x2'));var moment=require(_0x9c83('0x3'));var BPromise=require(_0x9c83('0x4'));var rp=require(_0x9c83('0x5'));var fs=require('fs');var path=require(_0x9c83('0x6'));var rimraf=require(_0x9c83('0x7'));var config=require(_0x9c83('0x8'));var attributes=require('./userVoiceQueue.attributes');module['exports']=function(_0x179b49,_0x490e84){return _0x179b49[_0x9c83('0x9')](_0x9c83('0xa'),attributes,{'tableName':'user_has_voice_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8113=['http','request','info','UserVoiceQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','lodash','moment','bluebird','../../mysqldb','../../config/logger','rpc','../../config/environment','client'];(function(_0x4bfac3,_0x58324d){var _0x15f0f2=function(_0xf0c511){while(--_0xf0c511){_0x4bfac3['push'](_0x4bfac3['shift']());}};_0x15f0f2(++_0x58324d);}(_0x8113,0x98));var _0x3811=function(_0x1f0aab,_0x55700c){_0x1f0aab=_0x1f0aab-0x0;var _0x2861be=_0x8113[_0x1f0aab];return _0x2861be;};'use strict';var _=require(_0x3811('0x0'));var util=require('util');var moment=require(_0x3811('0x1'));var BPromise=require(_0x3811('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3811('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x3811('0x4'))(_0x3811('0x5'));var config=require(_0x3811('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x3811('0x7')][_0x3811('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x36c8ad,_0x226d95,_0x1a2d30){return new BPromise(function(_0xe83046,_0x8a0d37){return client[_0x3811('0x9')](_0x36c8ad,_0x1a2d30)['then'](function(_0x2d1a6a){logger[_0x3811('0xa')](_0x3811('0xb'),_0x226d95,_0x3811('0xc'));logger[_0x3811('0xd')]('UserVoiceQueue,\x20%s,\x20%s,\x20%s',_0x226d95,_0x3811('0xc'),JSON[_0x3811('0xe')](_0x2d1a6a));if(_0x2d1a6a['error']){if(_0x2d1a6a[_0x3811('0xf')][_0x3811('0x10')]===0x1f4){logger[_0x3811('0xf')](_0x3811('0xb'),_0x226d95,_0x2d1a6a[_0x3811('0xf')]['message']);return _0x8a0d37(_0x2d1a6a[_0x3811('0xf')][_0x3811('0x11')]);}logger['error'](_0x3811('0xb'),_0x226d95,_0x2d1a6a[_0x3811('0xf')][_0x3811('0x11')]);return _0xe83046(_0x2d1a6a['error'][_0x3811('0x11')]);}else{logger['info']('UserVoiceQueue,\x20%s,\x20%s',_0x226d95,_0x3811('0xc'));_0xe83046(_0x2d1a6a[_0x3811('0x12')]['message']);}})[_0x3811('0x13')](function(_0x49025e){logger[_0x3811('0xf')](_0x3811('0xb'),_0x226d95,_0x49025e);_0x8a0d37(_0x49025e);});});}
\ No newline at end of file
+var _0xec3c=['code','message','result','catch','lodash','util','moment','ioredis','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','UserVoiceQueue,\x20%s,\x20%s','request\x20sent','debug','error'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xec3c,0x1cc));var _0xcec3=function(_0x131b03,_0x372368){_0x131b03=_0x131b03-0x0;var _0x198edf=_0xec3c[_0x131b03];return _0x198edf;};'use strict';var _=require(_0xcec3('0x0'));var util=require(_0xcec3('0x1'));var moment=require(_0xcec3('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xcec3('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xcec3('0x4'))('rpc');var config=require(_0xcec3('0x5'));var jayson=require(_0xcec3('0x6'));var client=jayson[_0xcec3('0x7')][_0xcec3('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1147d6,_0x41e5df,_0x59d8fd){return new BPromise(function(_0x5114d6,_0x26473a){return client['request'](_0x1147d6,_0x59d8fd)[_0xcec3('0x9')](function(_0x1a2103){logger[_0xcec3('0xa')](_0xcec3('0xb'),_0x41e5df,_0xcec3('0xc'));logger[_0xcec3('0xd')]('UserVoiceQueue,\x20%s,\x20%s,\x20%s',_0x41e5df,_0xcec3('0xc'),JSON['stringify'](_0x1a2103));if(_0x1a2103[_0xcec3('0xe')]){if(_0x1a2103[_0xcec3('0xe')][_0xcec3('0xf')]===0x1f4){logger[_0xcec3('0xe')]('UserVoiceQueue,\x20%s,\x20%s',_0x41e5df,_0x1a2103[_0xcec3('0xe')][_0xcec3('0x10')]);return _0x26473a(_0x1a2103[_0xcec3('0xe')]['message']);}logger[_0xcec3('0xe')](_0xcec3('0xb'),_0x41e5df,_0x1a2103[_0xcec3('0xe')][_0xcec3('0x10')]);return _0x5114d6(_0x1a2103[_0xcec3('0xe')][_0xcec3('0x10')]);}else{logger['info'](_0xcec3('0xb'),_0x41e5df,_0xcec3('0xc'));_0x5114d6(_0x1a2103[_0xcec3('0x11')][_0xcec3('0x10')]);}})[_0xcec3('0x12')](function(_0x1986d3){logger[_0xcec3('0xe')](_0xcec3('0xb'),_0x41e5df,_0x1986d3);_0x26473a(_0x1986d3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0x37f7f5,_0x3b19b4){var _0x3a4377=function(_0x450a20){while(--_0x450a20){_0x37f7f5['push'](_0x37f7f5['shift']());}};_0x3a4377(++_0x3b19b4);}(_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'));module['exports']=router;
\ No newline at end of file
+var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0x4e623c,_0x110ef0){var _0x43fbbf=function(_0x38eafe){while(--_0x38eafe){_0x4e623c['push'](_0x4e623c['shift']());}};_0x43fbbf(++_0x110ef0);}(_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 _0x84bb=['exports','INTEGER','Required\x20by\x20Asterisk','STRING','queue_interface','sequelize'];(function(_0x104df1,_0x2fc845){var _0x4e1a8d=function(_0x553ac8){while(--_0x553ac8){_0x104df1['push'](_0x104df1['shift']());}};_0x4e1a8d(++_0x2fc845);}(_0x84bb,0x9b));var _0xb84b=function(_0x40e13e,_0x376d13){_0x40e13e=_0x40e13e-0x0;var _0x5db39e=_0x84bb[_0x40e13e];return _0x5db39e;};'use strict';var Sequelize=require(_0xb84b('0x0'));module[_0xb84b('0x1')]={'uniqueid':{'type':Sequelize[_0xb84b('0x2')],'primaryKey':!![],'autoIncrement':!![],'comment':_0xb84b('0x3')},'membername':{'type':Sequelize[_0xb84b('0x4')],'allowNull':![],'comment':_0xb84b('0x3')},'UserId':{'type':Sequelize['INTEGER'],'allowNull':![]},'queue_name':{'type':Sequelize[_0xb84b('0x4')],'allowNull':![],'unique':_0xb84b('0x5'),'comment':_0xb84b('0x3')},'VoiceQueueId':{'type':Sequelize[_0xb84b('0x2')],'allowNull':![]},'interface':{'type':Sequelize[_0xb84b('0x4')],'allowNull':![],'unique':_0xb84b('0x5'),'comment':_0xb84b('0x3')},'penalty':{'type':Sequelize[_0xb84b('0x2')](0xb),'defaultValue':0x0,'comment':_0xb84b('0x3')},'paused':{'type':Sequelize[_0xb84b('0x2')](0xb),'defaultValue':0x0,'comment':'Required\x20by\x20Asterisk'}};
\ No newline at end of file
+var _0xa0f1=['Required\x20by\x20Asterisk','sequelize','exports','INTEGER','STRING','queue_interface'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa0f1,0x199));var _0x1a0f=function(_0x39b981,_0x22395d){_0x39b981=_0x39b981-0x0;var _0xfc8ba=_0xa0f1[_0x39b981];return _0xfc8ba;};'use strict';var Sequelize=require(_0x1a0f('0x0'));module[_0x1a0f('0x1')]={'uniqueid':{'type':Sequelize[_0x1a0f('0x2')],'primaryKey':!![],'autoIncrement':!![],'comment':'Required\x20by\x20Asterisk'},'membername':{'type':Sequelize[_0x1a0f('0x3')],'allowNull':![],'comment':'Required\x20by\x20Asterisk'},'UserId':{'type':Sequelize[_0x1a0f('0x2')],'allowNull':![]},'queue_name':{'type':Sequelize[_0x1a0f('0x3')],'allowNull':![],'unique':_0x1a0f('0x4'),'comment':_0x1a0f('0x5')},'VoiceQueueId':{'type':Sequelize['INTEGER'],'allowNull':![]},'interface':{'type':Sequelize[_0x1a0f('0x3')],'allowNull':![],'unique':_0x1a0f('0x4'),'comment':'Required\x20by\x20Asterisk'},'penalty':{'type':Sequelize[_0x1a0f('0x2')](0xb),'defaultValue':0x0,'comment':'Required\x20by\x20Asterisk'},'paused':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0,'comment':'Required\x20by\x20Asterisk'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x03d7=['save','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x03d7,0x1f1));var _0x703d=function(_0xd9d6d9,_0x5613e6){_0xd9d6d9=_0xd9d6d9-0x0;var _0x1c9fa2=_0x03d7[_0xd9d6d9];return _0x1c9fa2;};'use strict';var EventEmitter=require(_0x703d('0x0'));var UserVoiceQueueRt=require(_0x703d('0x1'))['db']['UserVoiceQueueRt'];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents[_0x703d('0x2')](0x0);var events={'afterCreate':_0x703d('0x3'),'afterUpdate':_0x703d('0x4'),'afterDestroy':_0x703d('0x5')};function emitEvent(_0x1a9e5d){return function(_0x14a57d,_0x30c963,_0x39668b){UserVoiceQueueRtEvents[_0x703d('0x6')](_0x1a9e5d+':'+_0x14a57d['id'],_0x14a57d);UserVoiceQueueRtEvents[_0x703d('0x6')](_0x1a9e5d,_0x14a57d);_0x39668b(null);};}for(var e in events){if(events[_0x703d('0x7')](e)){var event=events[e];UserVoiceQueueRt[_0x703d('0x8')](e,emitEvent(event));}}module[_0x703d('0x9')]=UserVoiceQueueRtEvents;
\ No newline at end of file
+var _0xcc09=['../../mysqldb','UserVoiceQueueRt','setMaxListeners','emit','hasOwnProperty','hook','exports'];(function(_0x37fdbf,_0x446b4e){var _0x4069e7=function(_0x1199e3){while(--_0x1199e3){_0x37fdbf['push'](_0x37fdbf['shift']());}};_0x4069e7(++_0x446b4e);}(_0xcc09,0x7e));var _0x9cc0=function(_0x474bc0,_0x26989c){_0x474bc0=_0x474bc0-0x0;var _0x4b24cf=_0xcc09[_0x474bc0];return _0x4b24cf;};'use strict';var EventEmitter=require('events');var UserVoiceQueueRt=require(_0x9cc0('0x0'))['db'][_0x9cc0('0x1')];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents[_0x9cc0('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x130e87){return function(_0x5c9493,_0x1d0e60,_0x5984c0){UserVoiceQueueRtEvents[_0x9cc0('0x3')](_0x130e87+':'+_0x5c9493['id'],_0x5c9493);UserVoiceQueueRtEvents[_0x9cc0('0x3')](_0x130e87,_0x5c9493);_0x5984c0(null);};}for(var e in events){if(events[_0x9cc0('0x4')](e)){var event=events[e];UserVoiceQueueRt[_0x9cc0('0x5')](e,emitEvent(event));}}module[_0x9cc0('0x6')]=UserVoiceQueueRtEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f51=['rimraf','./userVoiceQueueRt.attributes','exports','UserVoiceQueueRt','user_has_voice_queues_rt','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x4b174a,_0x33a017){var _0x3cd7bf=function(_0x44ccd9){while(--_0x44ccd9){_0x4b174a['push'](_0x4b174a['shift']());}};_0x3cd7bf(++_0x33a017);}(_0x1f51,0x191));var _0x11f5=function(_0x379348,_0x3e7b31){_0x379348=_0x379348-0x0;var _0x5bc9d0=_0x1f51[_0x379348];return _0x5bc9d0;};'use strict';var _=require('lodash');var util=require(_0x11f5('0x0'));var logger=require(_0x11f5('0x1'))('api');var moment=require(_0x11f5('0x2'));var BPromise=require(_0x11f5('0x3'));var rp=require(_0x11f5('0x4'));var fs=require('fs');var path=require(_0x11f5('0x5'));var rimraf=require(_0x11f5('0x6'));var config=require('../../config/environment');var attributes=require(_0x11f5('0x7'));module[_0x11f5('0x8')]=function(_0x5c1793,_0x5744ee){return _0x5c1793['define'](_0x11f5('0x9'),attributes,{'tableName':_0x11f5('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfab9=['./userVoiceQueueRt.attributes','exports','define','UserVoiceQueueRt','user_has_voice_queues_rt','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x423035,_0x51ddeb){var _0x3645fc=function(_0x2205f8){while(--_0x2205f8){_0x423035['push'](_0x423035['shift']());}};_0x3645fc(++_0x51ddeb);}(_0xfab9,0x163));var _0x9fab=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xfab9[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x9fab('0x0'));var util=require(_0x9fab('0x1'));var logger=require(_0x9fab('0x2'))('api');var moment=require(_0x9fab('0x3'));var BPromise=require(_0x9fab('0x4'));var rp=require(_0x9fab('0x5'));var fs=require('fs');var path=require(_0x9fab('0x6'));var rimraf=require(_0x9fab('0x7'));var config=require(_0x9fab('0x8'));var attributes=require(_0x9fab('0x9'));module[_0x9fab('0xa')]=function(_0x203897,_0x41bb33){return _0x203897[_0x9fab('0xb')](_0x9fab('0xc'),attributes,{'tableName':_0x9fab('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb999=['message','result','catch','GetVoiceQueueRtPauses','UserVoiceQueueRt','findAll','options','raw','where','sequelize','COUNT','literal','`paused`\x20=\x201,\x201,\x20null','outboundQueuePauses','debug','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','localhost','redis','./userVoiceQueueRt.socket','register','request','then','info','UserVoiceQueueRt,\x20%s,\x20%s','request\x20sent','UserVoiceQueueRt,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x4e2e3a,_0x5d5c94){var _0x422b17=function(_0x3376c3){while(--_0x3376c3){_0x4e2e3a['push'](_0x4e2e3a['shift']());}};_0x422b17(++_0x5d5c94);}(_0xb999,0x1a9));var _0x9b99=function(_0x16a7f9,_0x5bc63f){_0x16a7f9=_0x16a7f9-0x0;var _0x12a5a4=_0xb999[_0x16a7f9];return _0x12a5a4;};'use strict';var _=require(_0x9b99('0x0'));var util=require('util');var moment=require(_0x9b99('0x1'));var BPromise=require(_0x9b99('0x2'));var rs=require(_0x9b99('0x3'));var fs=require('fs');var Redis=require(_0x9b99('0x4'));var db=require(_0x9b99('0x5'))['db'];var utils=require(_0x9b99('0x6'));var logger=require(_0x9b99('0x7'))(_0x9b99('0x8'));var config=require(_0x9b99('0x9'));var jayson=require(_0x9b99('0xa'));var client=jayson[_0x9b99('0xb')][_0x9b99('0xc')]({'port':0x232a});config['redis']=_['defaults'](config['redis'],{'host':_0x9b99('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9b99('0xe')]));require(_0x9b99('0xf'))[_0x9b99('0x10')](socket);function respondWithRpcPromise(_0x5212f4,_0x3a1ca1,_0x559d86){return new BPromise(function(_0x59e7df,_0x1b3f72){return client[_0x9b99('0x11')](_0x5212f4,_0x559d86)[_0x9b99('0x12')](function(_0x46be5e){logger[_0x9b99('0x13')](_0x9b99('0x14'),_0x3a1ca1,_0x9b99('0x15'));logger['debug'](_0x9b99('0x16'),_0x3a1ca1,_0x9b99('0x15'),JSON[_0x9b99('0x17')](_0x46be5e));if(_0x46be5e['error']){if(_0x46be5e[_0x9b99('0x18')][_0x9b99('0x19')]===0x1f4){logger[_0x9b99('0x18')]('UserVoiceQueueRt,\x20%s,\x20%s',_0x3a1ca1,_0x46be5e[_0x9b99('0x18')][_0x9b99('0x1a')]);return _0x1b3f72(_0x46be5e[_0x9b99('0x18')][_0x9b99('0x1a')]);}logger[_0x9b99('0x18')]('UserVoiceQueueRt,\x20%s,\x20%s',_0x3a1ca1,_0x46be5e['error'][_0x9b99('0x1a')]);return _0x59e7df(_0x46be5e[_0x9b99('0x18')][_0x9b99('0x1a')]);}else{logger[_0x9b99('0x13')]('UserVoiceQueueRt,\x20%s,\x20%s',_0x3a1ca1,_0x9b99('0x15'));_0x59e7df(_0x46be5e[_0x9b99('0x1b')][_0x9b99('0x1a')]);}})[_0x9b99('0x1c')](function(_0x41853b){logger['error'](_0x9b99('0x14'),_0x3a1ca1,_0x41853b);_0x1b3f72(_0x41853b);});});}exports[_0x9b99('0x1d')]=function(_0x559175){var _0x3b73cf=this;return new Promise(function(_0x4ee729,_0x4c4d92){return db[_0x9b99('0x1e')][_0x9b99('0x1f')]({'raw':_0x559175['options']?_0x559175[_0x9b99('0x20')][_0x9b99('0x21')]===undefined?!![]:![]:!![],'where':_0x559175[_0x9b99('0x20')]?_0x559175['options'][_0x9b99('0x22')]||null:null,'attributes':[[db[_0x9b99('0x23')]['fn'](_0x9b99('0x24'),db['sequelize']['fn']('IF',db['sequelize'][_0x9b99('0x25')](_0x9b99('0x26')))),_0x9b99('0x27')]]})[_0x9b99('0x12')](function(_0x5e8462){logger[_0x9b99('0x13')](_0x9b99('0x1d'),_0x559175);logger[_0x9b99('0x28')]('GetVoiceQueueRtPauses',_0x559175,JSON['stringify'](_0x5e8462));_0x4ee729(_0x5e8462);})['catch'](function(_0xb51b9c){logger[_0x9b99('0x18')](_0x9b99('0x1d'),_0xb51b9c[_0x9b99('0x1a')],_0x559175);_0x4c4d92(_0x3b73cf['error'](0x1f4,_0xb51b9c['message']));});});};
\ No newline at end of file
+var _0x976e=['message','catch','GetVoiceQueueRtPauses','UserVoiceQueueRt','findAll','options','raw','where','sequelize','COUNT','outboundQueuePauses','stringify','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','http','defaults','localhost','socket.io-emitter','redis','register','request','then','info','UserVoiceQueueRt,\x20%s,\x20%s','request\x20sent','error','code'];(function(_0x5b93c2,_0x3a4382){var _0x1e731c=function(_0x9964af){while(--_0x9964af){_0x5b93c2['push'](_0x5b93c2['shift']());}};_0x1e731c(++_0x3a4382);}(_0x976e,0x124));var _0xe976=function(_0x546201,_0x49ee3e){_0x546201=_0x546201-0x0;var _0x57e598=_0x976e[_0x546201];return _0x57e598;};'use strict';var _=require(_0xe976('0x0'));var util=require(_0xe976('0x1'));var moment=require(_0xe976('0x2'));var BPromise=require(_0xe976('0x3'));var rs=require(_0xe976('0x4'));var fs=require('fs');var Redis=require(_0xe976('0x5'));var db=require(_0xe976('0x6'))['db'];var utils=require(_0xe976('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0xe976('0x8'));var jayson=require(_0xe976('0x9'));var client=jayson['client'][_0xe976('0xa')]({'port':0x232a});config['redis']=_[_0xe976('0xb')](config['redis'],{'host':_0xe976('0xc'),'port':0x18eb});var socket=require(_0xe976('0xd'))(new Redis(config[_0xe976('0xe')]));require('./userVoiceQueueRt.socket')[_0xe976('0xf')](socket);function respondWithRpcPromise(_0x3e7d6a,_0x4036c9,_0x316d14){return new BPromise(function(_0x5d1ef9,_0x32b85b){return client[_0xe976('0x10')](_0x3e7d6a,_0x316d14)[_0xe976('0x11')](function(_0xdab392){logger[_0xe976('0x12')](_0xe976('0x13'),_0x4036c9,_0xe976('0x14'));logger['debug']('UserVoiceQueueRt,\x20%s,\x20%s,\x20%s',_0x4036c9,_0xe976('0x14'),JSON['stringify'](_0xdab392));if(_0xdab392[_0xe976('0x15')]){if(_0xdab392[_0xe976('0x15')][_0xe976('0x16')]===0x1f4){logger[_0xe976('0x15')](_0xe976('0x13'),_0x4036c9,_0xdab392[_0xe976('0x15')]['message']);return _0x32b85b(_0xdab392['error']['message']);}logger[_0xe976('0x15')](_0xe976('0x13'),_0x4036c9,_0xdab392[_0xe976('0x15')][_0xe976('0x17')]);return _0x5d1ef9(_0xdab392[_0xe976('0x15')]['message']);}else{logger[_0xe976('0x12')](_0xe976('0x13'),_0x4036c9,_0xe976('0x14'));_0x5d1ef9(_0xdab392['result'][_0xe976('0x17')]);}})[_0xe976('0x18')](function(_0x32fb81){logger['error'](_0xe976('0x13'),_0x4036c9,_0x32fb81);_0x32b85b(_0x32fb81);});});}exports[_0xe976('0x19')]=function(_0x266e6e){var _0x250d98=this;return new Promise(function(_0x5a96d7,_0x240979){return db[_0xe976('0x1a')][_0xe976('0x1b')]({'raw':_0x266e6e[_0xe976('0x1c')]?_0x266e6e[_0xe976('0x1c')][_0xe976('0x1d')]===undefined?!![]:![]:!![],'where':_0x266e6e[_0xe976('0x1c')]?_0x266e6e[_0xe976('0x1c')][_0xe976('0x1e')]||null:null,'attributes':[[db[_0xe976('0x1f')]['fn'](_0xe976('0x20'),db[_0xe976('0x1f')]['fn']('IF',db['sequelize']['literal']('`paused`\x20=\x201,\x201,\x20null'))),_0xe976('0x21')]]})[_0xe976('0x11')](function(_0x4d978a){logger[_0xe976('0x12')](_0xe976('0x19'),_0x266e6e);logger['debug'](_0xe976('0x19'),_0x266e6e,JSON[_0xe976('0x22')](_0x4d978a));_0x5a96d7(_0x4d978a);})[_0xe976('0x18')](function(_0x529967){logger[_0xe976('0x15')]('GetVoiceQueueRtPauses',_0x529967[_0xe976('0x17')],_0x266e6e);_0x240979(_0x250d98[_0xe976('0x15')](0x1f4,_0x529967[_0xe976('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x600f=['remove','emit','removeListener','register','length','./userVoiceQueueRt.events','save'];(function(_0x375521,_0x413159){var _0x1fb976=function(_0x2eddfc){while(--_0x2eddfc){_0x375521['push'](_0x375521['shift']());}};_0x1fb976(++_0x413159);}(_0x600f,0xb4));var _0xf600=function(_0x431c26,_0x4b8f47){_0x431c26=_0x431c26-0x0;var _0x3092fd=_0x600f[_0x431c26];return _0x3092fd;};'use strict';var UserVoiceQueueRtEvents=require(_0xf600('0x0'));var events=[_0xf600('0x1'),_0xf600('0x2'),'update'];function createListener(_0x248cfa,_0x52544a){return function(_0x6a56f5){_0x52544a[_0xf600('0x3')](_0x248cfa,_0x6a56f5);};}function removeListener(_0x1b8de0,_0x181497){return function(){UserVoiceQueueRtEvents[_0xf600('0x4')](_0x1b8de0,_0x181497);};}exports[_0xf600('0x5')]=function(_0x304fdf){for(var _0xba580a=0x0,_0x5a6457=events[_0xf600('0x6')];_0xba580a<_0x5a6457;_0xba580a++){var _0x56f333=events[_0xba580a];var _0x489c42=createListener('userVoiceQueueRt:'+_0x56f333,_0x304fdf);UserVoiceQueueRtEvents['on'](_0x56f333,_0x489c42);}};
\ No newline at end of file
+var _0x6bdc=['remove','update','emit','register','length','userVoiceQueueRt:','./userVoiceQueueRt.events','save'];(function(_0x1cd674,_0x8d3638){var _0x27928f=function(_0x5e3c70){while(--_0x5e3c70){_0x1cd674['push'](_0x1cd674['shift']());}};_0x27928f(++_0x8d3638);}(_0x6bdc,0x14e));var _0xc6bd=function(_0x207b93,_0x28e22c){_0x207b93=_0x207b93-0x0;var _0x4dda36=_0x6bdc[_0x207b93];return _0x4dda36;};'use strict';var UserVoiceQueueRtEvents=require(_0xc6bd('0x0'));var events=[_0xc6bd('0x1'),_0xc6bd('0x2'),_0xc6bd('0x3')];function createListener(_0x43d0b2,_0x433998){return function(_0x2c9f68){_0x433998[_0xc6bd('0x4')](_0x43d0b2,_0x2c9f68);};}function removeListener(_0x1bb923,_0xd0f13){return function(){UserVoiceQueueRtEvents['removeListener'](_0x1bb923,_0xd0f13);};}exports[_0xc6bd('0x5')]=function(_0x26218a){for(var _0x158271=0x0,_0x3f5327=events[_0xc6bd('0x6')];_0x158271<_0x3f5327;_0x158271++){var _0x8bd379=events[_0x158271];var _0x5ca385=createListener(_0xc6bd('0x7')+_0x8bd379,_0x26218a);UserVoiceQueueRtEvents['on'](_0x8bd379,_0x5ca385);}};
\ 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(_0x6df215,_0x138346){var _0x3ce4bb=function(_0x30b47b){while(--_0x30b47b){_0x6df215['push'](_0x6df215['shift']());}};_0x3ce4bb(++_0x138346);}(_0xe706,0xa3));var _0x6e70=function(_0x2991ea,_0x4a0231){_0x2991ea=_0x2991ea-0x0;var _0x4e1c51=_0xe706[_0x2991ea];return _0x4e1c51;};'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(_0x49c756,_0x37f990){var _0x15fc63=function(_0x563ca0){while(--_0x563ca0){_0x49c756['push'](_0x49c756['shift']());}};_0x15fc63(++_0x37f990);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2bf141,_0x31eac7){_0x2bf141=_0x2bf141-0x0;var _0x48277b=_0xa9e0[_0x2bf141];return _0x48277b;};'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 _0xde5f=['INTEGER','sequelize','exports'];(function(_0x2e02c9,_0x415cc3){var _0x4d249a=function(_0x49edfd){while(--_0x49edfd){_0x2e02c9['push'](_0x2e02c9['shift']());}};_0x4d249a(++_0x415cc3);}(_0xde5f,0x97));var _0xfde5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xde5f[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0xfde5('0x0'));module[_0xfde5('0x1')]={'penalty':{'type':Sequelize[_0xfde5('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x1af1=['exports','sequelize'];(function(_0x31c6ca,_0x5b37b3){var _0x1b5088=function(_0x3c840b){while(--_0x3c840b){_0x31c6ca['push'](_0x31c6ca['shift']());}};_0x1b5088(++_0x5b37b3);}(_0x1af1,0x1e9));var _0x11af=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1af1[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x11af('0x0'));module[_0x11af('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9d1a=['../../config/environment','./userWhatsappQueue.attributes','define','UserWhatsappQueue','user_has_whatsapp_queues','util','api','moment','bluebird','request-promise','path','rimraf'];(function(_0xaaf2b8,_0x41f5ec){var _0xd2e0a1=function(_0x52c19e){while(--_0x52c19e){_0xaaf2b8['push'](_0xaaf2b8['shift']());}};_0xd2e0a1(++_0x41f5ec);}(_0x9d1a,0xb9));var _0xa9d1=function(_0x4a96ca,_0x13754e){_0x4a96ca=_0x4a96ca-0x0;var _0x2aed48=_0x9d1a[_0x4a96ca];return _0x2aed48;};'use strict';var _=require('lodash');var util=require(_0xa9d1('0x0'));var logger=require('../../config/logger')(_0xa9d1('0x1'));var moment=require(_0xa9d1('0x2'));var BPromise=require(_0xa9d1('0x3'));var rp=require(_0xa9d1('0x4'));var fs=require('fs');var path=require(_0xa9d1('0x5'));var rimraf=require(_0xa9d1('0x6'));var config=require(_0xa9d1('0x7'));var attributes=require(_0xa9d1('0x8'));module['exports']=function(_0x3b3758,_0x526d99){return _0x3b3758[_0xa9d1('0x9')](_0xa9d1('0xa'),attributes,{'tableName':_0xa9d1('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1f19=['rimraf','../../config/environment','exports','define','UserWhatsappQueue','user_has_whatsapp_queues','lodash','util','../../config/logger','moment','bluebird','path'];(function(_0x15c87d,_0x2863cc){var _0x3d3acf=function(_0x597c07){while(--_0x597c07){_0x15c87d['push'](_0x15c87d['shift']());}};_0x3d3acf(++_0x2863cc);}(_0x1f19,0xa2));var _0x91f1=function(_0x79e8a8,_0xf0ee3c){_0x79e8a8=_0x79e8a8-0x0;var _0x1ec168=_0x1f19[_0x79e8a8];return _0x1ec168;};'use strict';var _=require(_0x91f1('0x0'));var util=require(_0x91f1('0x1'));var logger=require(_0x91f1('0x2'))('api');var moment=require(_0x91f1('0x3'));var BPromise=require(_0x91f1('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x91f1('0x5'));var rimraf=require(_0x91f1('0x6'));var config=require(_0x91f1('0x7'));var attributes=require('./userWhatsappQueue.attributes');module[_0x91f1('0x8')]=function(_0x5830ef,_0x1f0ddc){return _0x5830ef[_0x91f1('0x9')](_0x91f1('0xa'),attributes,{'tableName':_0x91f1('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ca2=['message','result','catch','lodash','util','moment','bluebird','randomstring','../../config/logger','rpc','../../config/environment','client','http','request','then','info','UserWhatsappQueue,\x20%s,\x20%s','request\x20sent','debug','error'];(function(_0x1ac6c7,_0x4ed10d){var _0x3679c2=function(_0x11f8f1){while(--_0x11f8f1){_0x1ac6c7['push'](_0x1ac6c7['shift']());}};_0x3679c2(++_0x4ed10d);}(_0x7ca2,0x67));var _0x27ca=function(_0x4d4a9d,_0x3d6d37){_0x4d4a9d=_0x4d4a9d-0x0;var _0x461c72=_0x7ca2[_0x4d4a9d];return _0x461c72;};'use strict';var _=require(_0x27ca('0x0'));var util=require(_0x27ca('0x1'));var moment=require(_0x27ca('0x2'));var BPromise=require(_0x27ca('0x3'));var rs=require(_0x27ca('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x27ca('0x5'))(_0x27ca('0x6'));var config=require(_0x27ca('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x27ca('0x8')][_0x27ca('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x148721,_0x4d8161,_0x4fb8b0){return new BPromise(function(_0x9307ec,_0x281854){return client[_0x27ca('0xa')](_0x148721,_0x4fb8b0)[_0x27ca('0xb')](function(_0x552dc8){logger[_0x27ca('0xc')](_0x27ca('0xd'),_0x4d8161,_0x27ca('0xe'));logger[_0x27ca('0xf')]('UserWhatsappQueue,\x20%s,\x20%s,\x20%s',_0x4d8161,_0x27ca('0xe'),JSON['stringify'](_0x552dc8));if(_0x552dc8[_0x27ca('0x10')]){if(_0x552dc8['error']['code']===0x1f4){logger[_0x27ca('0x10')]('UserWhatsappQueue,\x20%s,\x20%s',_0x4d8161,_0x552dc8['error']['message']);return _0x281854(_0x552dc8[_0x27ca('0x10')][_0x27ca('0x11')]);}logger[_0x27ca('0x10')](_0x27ca('0xd'),_0x4d8161,_0x552dc8['error']['message']);return _0x9307ec(_0x552dc8[_0x27ca('0x10')][_0x27ca('0x11')]);}else{logger[_0x27ca('0xc')](_0x27ca('0xd'),_0x4d8161,_0x27ca('0xe'));_0x9307ec(_0x552dc8[_0x27ca('0x12')]['message']);}})[_0x27ca('0x13')](function(_0xe48368){logger[_0x27ca('0x10')](_0x27ca('0xd'),_0x4d8161,_0xe48368);_0x281854(_0xe48368);});});}
\ No newline at end of file
+var _0x91c5=['debug','stringify','error','code','message','result','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','request','then','info','UserWhatsappQueue,\x20%s,\x20%s','request\x20sent'];(function(_0xa238a5,_0x4b211f){var _0x75ed48=function(_0x58f0c7){while(--_0x58f0c7){_0xa238a5['push'](_0xa238a5['shift']());}};_0x75ed48(++_0x4b211f);}(_0x91c5,0x1d4));var _0x591c=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x91c5[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x591c('0x0'));var util=require(_0x591c('0x1'));var moment=require(_0x591c('0x2'));var BPromise=require(_0x591c('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x591c('0x4'));var db=require(_0x591c('0x5'))['db'];var utils=require(_0x591c('0x6'));var logger=require(_0x591c('0x7'))(_0x591c('0x8'));var config=require('../../config/environment');var jayson=require(_0x591c('0x9'));var client=jayson['client'][_0x591c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4a5108,_0x58c8f7,_0x31c436){return new BPromise(function(_0x40849f,_0xbf1bc6){return client[_0x591c('0xb')](_0x4a5108,_0x31c436)[_0x591c('0xc')](function(_0x1775d1){logger[_0x591c('0xd')](_0x591c('0xe'),_0x58c8f7,_0x591c('0xf'));logger[_0x591c('0x10')]('UserWhatsappQueue,\x20%s,\x20%s,\x20%s',_0x58c8f7,_0x591c('0xf'),JSON[_0x591c('0x11')](_0x1775d1));if(_0x1775d1[_0x591c('0x12')]){if(_0x1775d1[_0x591c('0x12')][_0x591c('0x13')]===0x1f4){logger[_0x591c('0x12')]('UserWhatsappQueue,\x20%s,\x20%s',_0x58c8f7,_0x1775d1[_0x591c('0x12')][_0x591c('0x14')]);return _0xbf1bc6(_0x1775d1[_0x591c('0x12')][_0x591c('0x14')]);}logger[_0x591c('0x12')](_0x591c('0xe'),_0x58c8f7,_0x1775d1['error'][_0x591c('0x14')]);return _0x40849f(_0x1775d1[_0x591c('0x12')]['message']);}else{logger[_0x591c('0xd')](_0x591c('0xe'),_0x58c8f7,_0x591c('0xf'));_0x40849f(_0x1775d1[_0x591c('0x15')]['message']);}})['catch'](function(_0x25fca0){logger[_0x591c('0x12')](_0x591c('0xe'),_0x58c8f7,_0x25fca0);_0xbf1bc6(_0x25fca0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab5b=['get','isAuthenticated','index','/:id','show','post','put','delete','destroy','exports','multer','util','connect-timeout','express','../../components/auth/service','../../config/environment','./variable.controller'];(function(_0x79c933,_0x4d3b3d){var _0x1ee974=function(_0x4cf7fc){while(--_0x4cf7fc){_0x79c933['push'](_0x79c933['shift']());}};_0x1ee974(++_0x4d3b3d);}(_0xab5b,0x11a));var _0xbab5=function(_0x14dcc9,_0x19ac97){_0x14dcc9=_0x14dcc9-0x0;var _0x410bed=_0xab5b[_0x14dcc9];return _0x410bed;};'use strict';var multer=require(_0xbab5('0x0'));var util=require(_0xbab5('0x1'));var path=require('path');var timeout=require(_0xbab5('0x2'));var express=require(_0xbab5('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xbab5('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xbab5('0x5'));var controller=require(_0xbab5('0x6'));router[_0xbab5('0x7')]('/',auth[_0xbab5('0x8')](),controller[_0xbab5('0x9')]);router['get'](_0xbab5('0xa'),auth[_0xbab5('0x8')](),controller[_0xbab5('0xb')]);router[_0xbab5('0xc')]('/',auth[_0xbab5('0x8')](),controller['create']);router[_0xbab5('0xd')](_0xbab5('0xa'),auth[_0xbab5('0x8')](),controller['update']);router[_0xbab5('0xe')](_0xbab5('0xa'),auth['isAuthenticated'](),controller[_0xbab5('0xf')]);module[_0xbab5('0x10')]=router;
\ No newline at end of file
+var _0x0d64=['multer','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./variable.controller','get','isAuthenticated','index','/:id','show','post','update','delete','exports'];(function(_0x4038cc,_0x250d96){var _0x51776b=function(_0xaec93d){while(--_0xaec93d){_0x4038cc['push'](_0x4038cc['shift']());}};_0x51776b(++_0x250d96);}(_0x0d64,0x77));var _0x40d6=function(_0x33448a,_0x184f78){_0x33448a=_0x33448a-0x0;var _0x4ece1d=_0x0d64[_0x33448a];return _0x4ece1d;};'use strict';var multer=require(_0x40d6('0x0'));var util=require('util');var path=require(_0x40d6('0x1'));var timeout=require(_0x40d6('0x2'));var express=require('express');var router=express[_0x40d6('0x3')]();var fs_extra=require(_0x40d6('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x40d6('0x5'));var config=require(_0x40d6('0x6'));var controller=require(_0x40d6('0x7'));router[_0x40d6('0x8')]('/',auth[_0x40d6('0x9')](),controller[_0x40d6('0xa')]);router[_0x40d6('0x8')](_0x40d6('0xb'),auth[_0x40d6('0x9')](),controller[_0x40d6('0xc')]);router[_0x40d6('0xd')]('/',auth[_0x40d6('0x9')](),controller['create']);router['put'](_0x40d6('0xb'),auth['isAuthenticated'](),controller[_0x40d6('0xe')]);router[_0x40d6('0xf')]('/:id',auth[_0x40d6('0x9')](),controller['destroy']);module[_0x40d6('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x162e=['exports','STRING','name','sequelize'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x162e,0x6b));var _0xe162=function(_0x3a5924,_0x3f8567){_0x3a5924=_0x3a5924-0x0;var _0x582887=_0x162e[_0x3a5924];return _0x582887;};'use strict';var Sequelize=require(_0xe162('0x0'));module[_0xe162('0x1')]={'name':{'type':Sequelize[_0xe162('0x2')],'unique':_0xe162('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xe162('0x2')]}};
\ No newline at end of file
+var _0x1b99=['exports','STRING','sequelize'];(function(_0x3ea44b,_0x2fcd82){var _0x3bafa9=function(_0x5db98f){while(--_0x5db98f){_0x3ea44b['push'](_0x3ea44b['shift']());}};_0x3bafa9(++_0x2fcd82);}(_0x1b99,0x17c));var _0x91b9=function(_0x68ee8b,_0x3cc6c5){_0x68ee8b=_0x68ee8b-0x0;var _0x5148f7=_0x1b99[_0x68ee8b];return _0x5148f7;};'use strict';var Sequelize=require(_0x91b9('0x0'));module[_0x91b9('0x1')]={'name':{'type':Sequelize[_0x91b9('0x2')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x91b9('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb569=['index','map','Variable','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','pick','filter','where','merge','includeAll','include','rows','show','keys','options','catch','create','body','user','role','find','userProfileId','autoAssociation','error','params','eml-format','rimraf','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/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','count','limit','set','apply','reject','save','update','then','get','UserProfileResource','destroy','stack','name','send'];(function(_0x3438cf,_0x73b174){var _0x278698=function(_0xbba932){while(--_0xbba932){_0x3438cf['push'](_0x3438cf['shift']());}};_0x278698(++_0x73b174);}(_0xb569,0x7b));var _0x9b56=function(_0x45d551,_0x47a931){_0x45d551=_0x45d551-0x0;var _0x2eefa1=_0xb569[_0x45d551];return _0x2eefa1;};'use strict';var emlformat=require(_0x9b56('0x0'));var rimraf=require(_0x9b56('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9b56('0x2'));var rp=require(_0x9b56('0x3'));var moment=require(_0x9b56('0x4'));var BPromise=require(_0x9b56('0x5'));var Mustache=require(_0x9b56('0x6'));var util=require(_0x9b56('0x7'));var path=require(_0x9b56('0x8'));var sox=require(_0x9b56('0x9'));var csv=require(_0x9b56('0xa'));var ejs=require(_0x9b56('0xb'));var fs=require('fs');var fs_extra=require(_0x9b56('0xc'));var _=require(_0x9b56('0xd'));var squel=require(_0x9b56('0xe'));var crypto=require(_0x9b56('0xf'));var jsforce=require(_0x9b56('0x10'));var deskjs=require(_0x9b56('0x11'));var toCsv=require('to-csv');var querystring=require(_0x9b56('0x12'));var Papa=require(_0x9b56('0x13'));var Redis=require(_0x9b56('0x14'));var authService=require(_0x9b56('0x15'));var qs=require(_0x9b56('0x16'));var as=require(_0x9b56('0x17'));var hardwareService=require(_0x9b56('0x18'));var logger=require(_0x9b56('0x19'))(_0x9b56('0x1a'));var utils=require(_0x9b56('0x1b'));var config=require(_0x9b56('0x1c'));var licenseUtil=require(_0x9b56('0x1d'));var db=require(_0x9b56('0x1e'))['db'];function respondWithStatusCode(_0x16de31,_0x294358){_0x294358=_0x294358||0xcc;return function(_0x5b5e8f){if(_0x5b5e8f){return _0x16de31[_0x9b56('0x1f')](_0x294358);}return _0x16de31[_0x9b56('0x20')](_0x294358)[_0x9b56('0x21')]();};}function respondWithResult(_0x3b39f1,_0x1d0684){_0x1d0684=_0x1d0684||0xc8;return function(_0x309d70){if(_0x309d70){return _0x3b39f1[_0x9b56('0x20')](_0x1d0684)[_0x9b56('0x22')](_0x309d70);}};}function respondWithFilteredResult(_0x1e0b7f,_0x40856b){return function(_0x1bc02f){if(_0x1bc02f){var _0x427417=typeof _0x40856b[_0x9b56('0x23')]==='undefined'&&typeof _0x40856b['limit']===_0x9b56('0x24');var _0x5cf038=_0x1bc02f[_0x9b56('0x25')];var _0x5ff5f9=_0x427417?0x0:_0x40856b[_0x9b56('0x23')];var _0x586fac=_0x427417?_0x1bc02f[_0x9b56('0x25')]:_0x40856b['offset']+_0x40856b[_0x9b56('0x26')];var _0x571f76;if(_0x586fac>=_0x5cf038){_0x586fac=_0x5cf038;_0x571f76=0xc8;}else{_0x571f76=0xce;}_0x1e0b7f[_0x9b56('0x20')](_0x571f76);return _0x1e0b7f[_0x9b56('0x27')]('Content-Range',_0x5ff5f9+'-'+_0x586fac+'/'+_0x5cf038)[_0x9b56('0x22')](_0x1bc02f);}return null;};}function patchUpdates(_0xa9fc1f){return function(_0x25bed5){try{jsonpatch[_0x9b56('0x28')](_0x25bed5,_0xa9fc1f,!![]);}catch(_0xb6be61){return BPromise[_0x9b56('0x29')](_0xb6be61);}return _0x25bed5[_0x9b56('0x2a')]();};}function saveUpdates(_0x277ce4,_0x55cb12){return function(_0x5d9688){if(_0x5d9688){return _0x5d9688[_0x9b56('0x2b')](_0x277ce4)[_0x9b56('0x2c')](function(_0x24c185){return _0x24c185;});}return null;};}function removeEntity(_0x29caa7,_0x11aa66){return function(_0x330749){if(_0x330749){return _0x330749['destroy']()[_0x9b56('0x2c')](function(){var _0x4dab67=_0x330749[_0x9b56('0x2d')]({'plain':!![]});var _0x19336b='Variables';return db[_0x9b56('0x2e')][_0x9b56('0x2f')]({'where':{'type':_0x19336b,'resourceId':_0x4dab67['id']}})[_0x9b56('0x2c')](function(){return _0x330749;});})[_0x9b56('0x2c')](function(){_0x29caa7[_0x9b56('0x20')](0xcc)[_0x9b56('0x21')]();});}};}function handleEntityNotFound(_0x5bf949,_0x1ef58b){return function(_0x50b361){if(!_0x50b361){_0x5bf949[_0x9b56('0x1f')](0x194);}return _0x50b361;};}function handleError(_0x2e8c45,_0x1df055){_0x1df055=_0x1df055||0x1f4;return function(_0x339235){logger['error'](_0x339235[_0x9b56('0x30')]);if(_0x339235[_0x9b56('0x31')]){delete _0x339235[_0x9b56('0x31')];}_0x2e8c45[_0x9b56('0x20')](_0x1df055)[_0x9b56('0x32')](_0x339235);};}exports[_0x9b56('0x33')]=function(_0x286e36,_0x5d5f90){var _0x3ae710={},_0x51b343={},_0x50e4f4={'count':0x0,'rows':[]};var _0x10fdfb=_[_0x9b56('0x34')](db[_0x9b56('0x35')][_0x9b56('0x36')],function(_0x46a679){return{'name':_0x46a679[_0x9b56('0x37')],'type':_0x46a679[_0x9b56('0x38')][_0x9b56('0x39')]};});_0x51b343[_0x9b56('0x3a')]=_['map'](_0x10fdfb,_0x9b56('0x31'));_0x51b343[_0x9b56('0x3b')]=_['keys'](_0x286e36['query']);_0x51b343[_0x9b56('0x3c')]=_[_0x9b56('0x3d')](_0x51b343['model'],_0x51b343[_0x9b56('0x3b')]);_0x3ae710[_0x9b56('0x3e')]=_['intersection'](_0x51b343[_0x9b56('0x3a')],qs[_0x9b56('0x3f')](_0x286e36[_0x9b56('0x3b')][_0x9b56('0x3f')]));_0x3ae710[_0x9b56('0x3e')]=_0x3ae710[_0x9b56('0x3e')][_0x9b56('0x40')]?_0x3ae710[_0x9b56('0x3e')]:_0x51b343[_0x9b56('0x3a')];if(!_0x286e36[_0x9b56('0x3b')][_0x9b56('0x41')]('nolimit')){_0x3ae710['limit']=qs[_0x9b56('0x26')](_0x286e36[_0x9b56('0x3b')]['limit']);_0x3ae710['offset']=qs['offset'](_0x286e36[_0x9b56('0x3b')][_0x9b56('0x23')]);}_0x3ae710['order']=qs[_0x9b56('0x42')](_0x286e36[_0x9b56('0x3b')][_0x9b56('0x42')]);_0x3ae710['where']=qs[_0x9b56('0x3c')](_[_0x9b56('0x43')](_0x286e36[_0x9b56('0x3b')],_0x51b343['filters']),_0x10fdfb);if(_0x286e36[_0x9b56('0x3b')][_0x9b56('0x44')]){_0x3ae710[_0x9b56('0x45')]=_[_0x9b56('0x46')](_0x3ae710['where'],{'$or':_[_0x9b56('0x34')](_0x10fdfb,function(_0x442c6e){if(_0x442c6e[_0x9b56('0x38')]!=='VIRTUAL'){var _0xc2ad18={};_0xc2ad18[_0x442c6e['name']]={'$like':'%'+_0x286e36['query'][_0x9b56('0x44')]+'%'};return _0xc2ad18;}})});}_0x3ae710=_['merge']({},_0x3ae710,_0x286e36['options']);var _0x663f53={'where':_0x3ae710[_0x9b56('0x45')]};return db[_0x9b56('0x35')][_0x9b56('0x25')](_0x663f53)['then'](function(_0x4a6d1d){_0x50e4f4['count']=_0x4a6d1d;if(_0x286e36[_0x9b56('0x3b')][_0x9b56('0x47')]){_0x3ae710[_0x9b56('0x48')]=[{'all':!![]}];}return db[_0x9b56('0x35')]['findAll'](_0x3ae710);})[_0x9b56('0x2c')](function(_0x30d0a9){_0x50e4f4[_0x9b56('0x49')]=_0x30d0a9;return _0x50e4f4;})[_0x9b56('0x2c')](respondWithFilteredResult(_0x5d5f90,_0x3ae710))['catch'](handleError(_0x5d5f90,null));};exports[_0x9b56('0x4a')]=function(_0x130ba9,_0x27eee3){var _0x38c6dc={'raw':!![],'where':{'id':_0x130ba9['params']['id']}},_0x1e3ea8={};_0x1e3ea8['model']=_[_0x9b56('0x4b')](db[_0x9b56('0x35')]['rawAttributes']);_0x1e3ea8[_0x9b56('0x3b')]=_[_0x9b56('0x4b')](_0x130ba9[_0x9b56('0x3b')]);_0x1e3ea8[_0x9b56('0x3c')]=_['intersection'](_0x1e3ea8[_0x9b56('0x3a')],_0x1e3ea8['query']);_0x38c6dc[_0x9b56('0x3e')]=_[_0x9b56('0x3d')](_0x1e3ea8[_0x9b56('0x3a')],qs[_0x9b56('0x3f')](_0x130ba9[_0x9b56('0x3b')][_0x9b56('0x3f')]));_0x38c6dc[_0x9b56('0x3e')]=_0x38c6dc[_0x9b56('0x3e')]['length']?_0x38c6dc[_0x9b56('0x3e')]:_0x1e3ea8[_0x9b56('0x3a')];if(_0x130ba9[_0x9b56('0x3b')][_0x9b56('0x47')]){_0x38c6dc[_0x9b56('0x48')]=[{'all':!![]}];}_0x38c6dc=_[_0x9b56('0x46')]({},_0x38c6dc,_0x130ba9[_0x9b56('0x4c')]);return db['Variable']['find'](_0x38c6dc)[_0x9b56('0x2c')](handleEntityNotFound(_0x27eee3,null))[_0x9b56('0x2c')](respondWithResult(_0x27eee3,null))[_0x9b56('0x4d')](handleError(_0x27eee3,null));};exports['create']=function(_0x2469c1,_0x4c6823){return db['Variable'][_0x9b56('0x4e')](_0x2469c1[_0x9b56('0x4f')],{})[_0x9b56('0x2c')](function(_0x38995b){var _0x2538de=_0x2469c1[_0x9b56('0x50')][_0x9b56('0x2d')]({'plain':!![]});if(!_0x2538de)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2538de[_0x9b56('0x51')]===_0x9b56('0x50')){var _0x5ab1b2=_0x38995b[_0x9b56('0x2d')]({'plain':!![]});var _0x591179='Variables';return db['UserProfileSection'][_0x9b56('0x52')]({'where':{'name':_0x591179,'userProfileId':_0x2538de[_0x9b56('0x53')]},'raw':!![]})[_0x9b56('0x2c')](function(_0x24a03f){if(_0x24a03f&&_0x24a03f[_0x9b56('0x54')]===0x0){return db['UserProfileResource'][_0x9b56('0x4e')]({'name':_0x5ab1b2[_0x9b56('0x31')],'resourceId':_0x5ab1b2['id'],'type':_0x24a03f[_0x9b56('0x31')],'sectionId':_0x24a03f['id']},{})[_0x9b56('0x2c')](function(){return _0x38995b;});}else{return _0x38995b;}})[_0x9b56('0x4d')](function(_0xafaa1){logger[_0x9b56('0x55')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xafaa1);throw _0xafaa1;});}return _0x38995b;})[_0x9b56('0x2c')](respondWithResult(_0x4c6823,0xc9))['catch'](handleError(_0x4c6823,null));};exports[_0x9b56('0x2b')]=function(_0x2d3dab,_0x4aee74){if(_0x2d3dab[_0x9b56('0x4f')]['id']){delete _0x2d3dab[_0x9b56('0x4f')]['id'];}return db['Variable'][_0x9b56('0x52')]({'where':{'id':_0x2d3dab[_0x9b56('0x56')]['id']}})['then'](handleEntityNotFound(_0x4aee74,null))[_0x9b56('0x2c')](saveUpdates(_0x2d3dab[_0x9b56('0x4f')],null))[_0x9b56('0x2c')](respondWithResult(_0x4aee74,null))[_0x9b56('0x4d')](handleError(_0x4aee74,null));};exports[_0x9b56('0x2f')]=function(_0x312324,_0x5dda01){return db[_0x9b56('0x35')][_0x9b56('0x52')]({'where':{'id':_0x312324[_0x9b56('0x56')]['id']}})[_0x9b56('0x2c')](handleEntityNotFound(_0x5dda01,null))['then'](removeEntity(_0x5dda01,null))['catch'](handleError(_0x5dda01,null));};
\ No newline at end of file
+var _0x975b=['limit','set','Content-Range','json','apply','reject','save','update','then','Variables','destroy','end','error','stack','name','send','index','Variable','key','model','map','query','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','type','options','includeAll','include','findAll','rows','catch','show','params','keys','rawAttributes','intersection','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','count'];(function(_0x4fbc20,_0x33bbc4){var _0x419740=function(_0x2a692a){while(--_0x2a692a){_0x4fbc20['push'](_0x4fbc20['shift']());}};_0x419740(++_0x33bbc4);}(_0x975b,0x182));var _0xb975=function(_0x52a6c8,_0x244ed1){_0x52a6c8=_0x52a6c8-0x0;var _0x3c4dec=_0x975b[_0x52a6c8];return _0x3c4dec;};'use strict';var emlformat=require(_0xb975('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xb975('0x1'));var moment=require(_0xb975('0x2'));var BPromise=require(_0xb975('0x3'));var Mustache=require('mustache');var util=require(_0xb975('0x4'));var path=require(_0xb975('0x5'));var sox=require(_0xb975('0x6'));var csv=require(_0xb975('0x7'));var ejs=require(_0xb975('0x8'));var fs=require('fs');var fs_extra=require(_0xb975('0x9'));var _=require(_0xb975('0xa'));var squel=require(_0xb975('0xb'));var crypto=require(_0xb975('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xb975('0xd'));var toCsv=require(_0xb975('0x7'));var querystring=require(_0xb975('0xe'));var Papa=require(_0xb975('0xf'));var Redis=require(_0xb975('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xb975('0x11'));var as=require(_0xb975('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb975('0x13'))(_0xb975('0x14'));var utils=require('../../config/utils');var config=require(_0xb975('0x15'));var licenseUtil=require(_0xb975('0x16'));var db=require(_0xb975('0x17'))['db'];function respondWithStatusCode(_0x2de706,_0x3bdc9c){_0x3bdc9c=_0x3bdc9c||0xcc;return function(_0x39db54){if(_0x39db54){return _0x2de706[_0xb975('0x18')](_0x3bdc9c);}return _0x2de706[_0xb975('0x19')](_0x3bdc9c)['end']();};}function respondWithResult(_0xf9c41,_0x1cac9c){_0x1cac9c=_0x1cac9c||0xc8;return function(_0xdee1e3){if(_0xdee1e3){return _0xf9c41[_0xb975('0x19')](_0x1cac9c)['json'](_0xdee1e3);}};}function respondWithFilteredResult(_0x23eade,_0x39b57e){return function(_0x3580a3){if(_0x3580a3){var _0x2dc703=typeof _0x39b57e[_0xb975('0x1a')]===_0xb975('0x1b')&&typeof _0x39b57e['limit']==='undefined';var _0x7e0fe2=_0x3580a3[_0xb975('0x1c')];var _0x1e3c40=_0x2dc703?0x0:_0x39b57e[_0xb975('0x1a')];var _0x1a0b43=_0x2dc703?_0x3580a3[_0xb975('0x1c')]:_0x39b57e['offset']+_0x39b57e[_0xb975('0x1d')];var _0x2f5c28;if(_0x1a0b43>=_0x7e0fe2){_0x1a0b43=_0x7e0fe2;_0x2f5c28=0xc8;}else{_0x2f5c28=0xce;}_0x23eade[_0xb975('0x19')](_0x2f5c28);return _0x23eade[_0xb975('0x1e')](_0xb975('0x1f'),_0x1e3c40+'-'+_0x1a0b43+'/'+_0x7e0fe2)[_0xb975('0x20')](_0x3580a3);}return null;};}function patchUpdates(_0x55a39c){return function(_0x37a9b2){try{jsonpatch[_0xb975('0x21')](_0x37a9b2,_0x55a39c,!![]);}catch(_0x556868){return BPromise[_0xb975('0x22')](_0x556868);}return _0x37a9b2[_0xb975('0x23')]();};}function saveUpdates(_0x33605e,_0x2460fd){return function(_0xc5c073){if(_0xc5c073){return _0xc5c073[_0xb975('0x24')](_0x33605e)['then'](function(_0x3ce8da){return _0x3ce8da;});}return null;};}function removeEntity(_0x9c339,_0x39aff0){return function(_0x4b674f){if(_0x4b674f){return _0x4b674f['destroy']()[_0xb975('0x25')](function(){var _0x1135e0=_0x4b674f['get']({'plain':!![]});var _0x2c874a=_0xb975('0x26');return db['UserProfileResource'][_0xb975('0x27')]({'where':{'type':_0x2c874a,'resourceId':_0x1135e0['id']}})[_0xb975('0x25')](function(){return _0x4b674f;});})['then'](function(){_0x9c339[_0xb975('0x19')](0xcc)[_0xb975('0x28')]();});}};}function handleEntityNotFound(_0xc51999,_0x220cbd){return function(_0x5d1a9e){if(!_0x5d1a9e){_0xc51999[_0xb975('0x18')](0x194);}return _0x5d1a9e;};}function handleError(_0x14bfaa,_0x2b8ff0){_0x2b8ff0=_0x2b8ff0||0x1f4;return function(_0x1789ce){logger[_0xb975('0x29')](_0x1789ce[_0xb975('0x2a')]);if(_0x1789ce[_0xb975('0x2b')]){delete _0x1789ce[_0xb975('0x2b')];}_0x14bfaa[_0xb975('0x19')](_0x2b8ff0)[_0xb975('0x2c')](_0x1789ce);};}exports[_0xb975('0x2d')]=function(_0x2ed8dd,_0xbbcdf6){var _0x2926ec={},_0xada85a={},_0x1e7f7e={'count':0x0,'rows':[]};var _0xef86e4=_['map'](db[_0xb975('0x2e')]['rawAttributes'],function(_0x491bde){return{'name':_0x491bde['fieldName'],'type':_0x491bde['type'][_0xb975('0x2f')]};});_0xada85a[_0xb975('0x30')]=_[_0xb975('0x31')](_0xef86e4,_0xb975('0x2b'));_0xada85a[_0xb975('0x32')]=_['keys'](_0x2ed8dd[_0xb975('0x32')]);_0xada85a[_0xb975('0x33')]=_['intersection'](_0xada85a[_0xb975('0x30')],_0xada85a[_0xb975('0x32')]);_0x2926ec[_0xb975('0x34')]=_['intersection'](_0xada85a[_0xb975('0x30')],qs[_0xb975('0x35')](_0x2ed8dd[_0xb975('0x32')]['fields']));_0x2926ec[_0xb975('0x34')]=_0x2926ec['attributes'][_0xb975('0x36')]?_0x2926ec['attributes']:_0xada85a[_0xb975('0x30')];if(!_0x2ed8dd[_0xb975('0x32')][_0xb975('0x37')](_0xb975('0x38'))){_0x2926ec['limit']=qs[_0xb975('0x1d')](_0x2ed8dd[_0xb975('0x32')][_0xb975('0x1d')]);_0x2926ec['offset']=qs[_0xb975('0x1a')](_0x2ed8dd[_0xb975('0x32')][_0xb975('0x1a')]);}_0x2926ec[_0xb975('0x39')]=qs[_0xb975('0x3a')](_0x2ed8dd[_0xb975('0x32')][_0xb975('0x3a')]);_0x2926ec[_0xb975('0x3b')]=qs[_0xb975('0x33')](_['pick'](_0x2ed8dd[_0xb975('0x32')],_0xada85a[_0xb975('0x33')]),_0xef86e4);if(_0x2ed8dd[_0xb975('0x32')][_0xb975('0x3c')]){_0x2926ec[_0xb975('0x3b')]=_[_0xb975('0x3d')](_0x2926ec[_0xb975('0x3b')],{'$or':_[_0xb975('0x31')](_0xef86e4,function(_0x48b9d1){if(_0x48b9d1[_0xb975('0x3e')]!=='VIRTUAL'){var _0x147d5e={};_0x147d5e[_0x48b9d1[_0xb975('0x2b')]]={'$like':'%'+_0x2ed8dd[_0xb975('0x32')][_0xb975('0x3c')]+'%'};return _0x147d5e;}})});}_0x2926ec=_[_0xb975('0x3d')]({},_0x2926ec,_0x2ed8dd[_0xb975('0x3f')]);var _0x438296={'where':_0x2926ec[_0xb975('0x3b')]};return db[_0xb975('0x2e')][_0xb975('0x1c')](_0x438296)[_0xb975('0x25')](function(_0x16a1fc){_0x1e7f7e[_0xb975('0x1c')]=_0x16a1fc;if(_0x2ed8dd[_0xb975('0x32')][_0xb975('0x40')]){_0x2926ec[_0xb975('0x41')]=[{'all':!![]}];}return db[_0xb975('0x2e')][_0xb975('0x42')](_0x2926ec);})['then'](function(_0x56a8af){_0x1e7f7e[_0xb975('0x43')]=_0x56a8af;return _0x1e7f7e;})[_0xb975('0x25')](respondWithFilteredResult(_0xbbcdf6,_0x2926ec))[_0xb975('0x44')](handleError(_0xbbcdf6,null));};exports[_0xb975('0x45')]=function(_0x14969b,_0x492955){var _0x31c3c3={'raw':!![],'where':{'id':_0x14969b[_0xb975('0x46')]['id']}},_0x15aacf={};_0x15aacf[_0xb975('0x30')]=_[_0xb975('0x47')](db[_0xb975('0x2e')][_0xb975('0x48')]);_0x15aacf[_0xb975('0x32')]=_[_0xb975('0x47')](_0x14969b[_0xb975('0x32')]);_0x15aacf['filters']=_[_0xb975('0x49')](_0x15aacf['model'],_0x15aacf['query']);_0x31c3c3['attributes']=_[_0xb975('0x49')](_0x15aacf[_0xb975('0x30')],qs[_0xb975('0x35')](_0x14969b[_0xb975('0x32')][_0xb975('0x35')]));_0x31c3c3[_0xb975('0x34')]=_0x31c3c3[_0xb975('0x34')][_0xb975('0x36')]?_0x31c3c3['attributes']:_0x15aacf[_0xb975('0x30')];if(_0x14969b[_0xb975('0x32')][_0xb975('0x40')]){_0x31c3c3[_0xb975('0x41')]=[{'all':!![]}];}_0x31c3c3=_[_0xb975('0x3d')]({},_0x31c3c3,_0x14969b[_0xb975('0x3f')]);return db[_0xb975('0x2e')][_0xb975('0x4a')](_0x31c3c3)[_0xb975('0x25')](handleEntityNotFound(_0x492955,null))[_0xb975('0x25')](respondWithResult(_0x492955,null))[_0xb975('0x44')](handleError(_0x492955,null));};exports[_0xb975('0x4b')]=function(_0x5b47ff,_0xd4186a){return db[_0xb975('0x2e')]['create'](_0x5b47ff[_0xb975('0x4c')],{})[_0xb975('0x25')](function(_0x2f3268){var _0x6027ba=_0x5b47ff['user']['get']({'plain':!![]});if(!_0x6027ba)throw new Error(_0xb975('0x4d'));if(_0x6027ba['role']===_0xb975('0x4e')){var _0x48b3f9=_0x2f3268['get']({'plain':!![]});var _0x345753=_0xb975('0x26');return db[_0xb975('0x4f')][_0xb975('0x4a')]({'where':{'name':_0x345753,'userProfileId':_0x6027ba[_0xb975('0x50')]},'raw':!![]})[_0xb975('0x25')](function(_0x3cd2e1){if(_0x3cd2e1&&_0x3cd2e1[_0xb975('0x51')]===0x0){return db['UserProfileResource'][_0xb975('0x4b')]({'name':_0x48b3f9[_0xb975('0x2b')],'resourceId':_0x48b3f9['id'],'type':_0x3cd2e1[_0xb975('0x2b')],'sectionId':_0x3cd2e1['id']},{})[_0xb975('0x25')](function(){return _0x2f3268;});}else{return _0x2f3268;}})[_0xb975('0x44')](function(_0xfd2587){logger['error'](_0xb975('0x52'),_0xfd2587);throw _0xfd2587;});}return _0x2f3268;})[_0xb975('0x25')](respondWithResult(_0xd4186a,0xc9))[_0xb975('0x44')](handleError(_0xd4186a,null));};exports['update']=function(_0x1f0063,_0x27dd22){if(_0x1f0063[_0xb975('0x4c')]['id']){delete _0x1f0063[_0xb975('0x4c')]['id'];}return db[_0xb975('0x2e')][_0xb975('0x4a')]({'where':{'id':_0x1f0063[_0xb975('0x46')]['id']}})[_0xb975('0x25')](handleEntityNotFound(_0x27dd22,null))[_0xb975('0x25')](saveUpdates(_0x1f0063['body'],null))[_0xb975('0x25')](respondWithResult(_0x27dd22,null))['catch'](handleError(_0x27dd22,null));};exports[_0xb975('0x27')]=function(_0x5eb030,_0x2e7d01){return db['Variable']['find']({'where':{'id':_0x5eb030[_0xb975('0x46')]['id']}})[_0xb975('0x25')](handleEntityNotFound(_0x2e7d01,null))[_0xb975('0x25')](removeEntity(_0x2e7d01,null))['catch'](handleError(_0x2e7d01,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1fe9=['rimraf','../../config/environment','./variable.attributes','exports','Variable','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x599f41,_0x4db732){var _0x2e4d58=function(_0x14c882){while(--_0x14c882){_0x599f41['push'](_0x599f41['shift']());}};_0x2e4d58(++_0x4db732);}(_0x1fe9,0x109));var _0x91fe=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0x1fe9[_0x40a045];return _0x1a687c;};'use strict';var _=require(_0x91fe('0x0'));var util=require(_0x91fe('0x1'));var logger=require(_0x91fe('0x2'))(_0x91fe('0x3'));var moment=require(_0x91fe('0x4'));var BPromise=require(_0x91fe('0x5'));var rp=require(_0x91fe('0x6'));var fs=require('fs');var path=require(_0x91fe('0x7'));var rimraf=require(_0x91fe('0x8'));var config=require(_0x91fe('0x9'));var attributes=require(_0x91fe('0xa'));module[_0x91fe('0xb')]=function(_0x2a63e9,_0x3978d1){return _0x2a63e9['define'](_0x91fe('0xc'),attributes,{'tableName':'tools_variables','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5d0b=['request-promise','path','rimraf','./variable.attributes','define','Variable','tools_variables','lodash','../../config/logger','api','moment'];(function(_0x54d4a8,_0x585a59){var _0x3b321b=function(_0x245c6a){while(--_0x245c6a){_0x54d4a8['push'](_0x54d4a8['shift']());}};_0x3b321b(++_0x585a59);}(_0x5d0b,0x1ca));var _0xb5d0=function(_0x330cc5,_0x147150){_0x330cc5=_0x330cc5-0x0;var _0x5b3ad9=_0x5d0b[_0x330cc5];return _0x5b3ad9;};'use strict';var _=require(_0xb5d0('0x0'));var util=require('util');var logger=require(_0xb5d0('0x1'))(_0xb5d0('0x2'));var moment=require(_0xb5d0('0x3'));var BPromise=require('bluebird');var rp=require(_0xb5d0('0x4'));var fs=require('fs');var path=require(_0xb5d0('0x5'));var rimraf=require(_0xb5d0('0x6'));var config=require('../../config/environment');var attributes=require(_0xb5d0('0x7'));module['exports']=function(_0x135af6,_0x2e7641){return _0x135af6[_0xb5d0('0x8')](_0xb5d0('0x9'),attributes,{'tableName':_0xb5d0('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b84=['catch','lodash','util','randomstring','../../config/utils','../../config/logger','rpc','http','then','info','request\x20sent','debug','Variable,\x20%s,\x20%s,\x20%s','stringify','error','Variable,\x20%s,\x20%s','message','ShowVariable','Variable','find','options','raw','where','attributes','include','map','model'];(function(_0x4600a5,_0x51e668){var _0x48e138=function(_0x3e6674){while(--_0x3e6674){_0x4600a5['push'](_0x4600a5['shift']());}};_0x48e138(++_0x51e668);}(_0x4b84,0x1cc));var _0x44b8=function(_0x57b236,_0x30614e){_0x57b236=_0x57b236-0x0;var _0x4feb29=_0x4b84[_0x57b236];return _0x4feb29;};'use strict';var _=require(_0x44b8('0x0'));var util=require(_0x44b8('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x44b8('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x44b8('0x3'));var logger=require(_0x44b8('0x4'))(_0x44b8('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x44b8('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x54274b,_0x327f59,_0x5947f7){return new BPromise(function(_0x3e87c5,_0x5a2353){return client['request'](_0x54274b,_0x5947f7)[_0x44b8('0x7')](function(_0x42319d){logger[_0x44b8('0x8')]('Variable,\x20%s,\x20%s',_0x327f59,_0x44b8('0x9'));logger[_0x44b8('0xa')](_0x44b8('0xb'),_0x327f59,_0x44b8('0x9'),JSON[_0x44b8('0xc')](_0x42319d));if(_0x42319d[_0x44b8('0xd')]){if(_0x42319d[_0x44b8('0xd')]['code']===0x1f4){logger[_0x44b8('0xd')](_0x44b8('0xe'),_0x327f59,_0x42319d['error'][_0x44b8('0xf')]);return _0x5a2353(_0x42319d['error'][_0x44b8('0xf')]);}logger[_0x44b8('0xd')]('Variable,\x20%s,\x20%s',_0x327f59,_0x42319d[_0x44b8('0xd')]['message']);return _0x3e87c5(_0x42319d['error'][_0x44b8('0xf')]);}else{logger[_0x44b8('0x8')](_0x44b8('0xe'),_0x327f59,_0x44b8('0x9'));_0x3e87c5(_0x42319d['result']['message']);}})['catch'](function(_0x3fe9fb){logger['error'](_0x44b8('0xe'),_0x327f59,_0x3fe9fb);_0x5a2353(_0x3fe9fb);});});}exports[_0x44b8('0x10')]=function(_0x55e258){var _0x36743e=this;return new Promise(function(_0xe3de8f,_0x5103f5){return db[_0x44b8('0x11')][_0x44b8('0x12')]({'raw':_0x55e258['options']?_0x55e258[_0x44b8('0x13')][_0x44b8('0x14')]===undefined?!![]:![]:!![],'where':_0x55e258[_0x44b8('0x13')]?_0x55e258[_0x44b8('0x13')][_0x44b8('0x15')]||null:null,'attributes':_0x55e258[_0x44b8('0x13')]?_0x55e258[_0x44b8('0x13')][_0x44b8('0x16')]||null:null,'include':_0x55e258[_0x44b8('0x13')]?_0x55e258[_0x44b8('0x13')][_0x44b8('0x17')]?_[_0x44b8('0x18')](_0x55e258['options'][_0x44b8('0x17')],function(_0x3a8aa4){return{'model':db[_0x3a8aa4[_0x44b8('0x19')]],'as':_0x3a8aa4['as'],'attributes':_0x3a8aa4[_0x44b8('0x16')],'include':_0x3a8aa4[_0x44b8('0x17')]?_['map'](_0x3a8aa4[_0x44b8('0x17')],function(_0x54677c){return{'model':db[_0x54677c[_0x44b8('0x19')]],'as':_0x54677c['as'],'attributes':_0x54677c[_0x44b8('0x16')],'include':_0x54677c[_0x44b8('0x17')]?_[_0x44b8('0x18')](_0x54677c[_0x44b8('0x17')],function(_0x59acbc){return{'model':db[_0x59acbc[_0x44b8('0x19')]],'as':_0x59acbc['as'],'attributes':_0x59acbc['attributes']};}):[]};}):[]};}):[]:[]})[_0x44b8('0x7')](function(_0x350482){logger['info'](_0x44b8('0x10'),_0x55e258);logger[_0x44b8('0xa')](_0x44b8('0x10'),_0x55e258,JSON['stringify'](_0x350482));_0xe3de8f(_0x350482);})[_0x44b8('0x1a')](function(_0x242342){logger['error'](_0x44b8('0x10'),_0x242342['message'],_0x55e258);_0x5103f5(_0x36743e[_0x44b8('0xd')](0x1f4,_0x242342['message']));});});};
\ No newline at end of file
+var _0x8ef6=['result','catch','Variable','find','options','raw','include','model','attributes','map','ShowVariable','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','Variable,\x20%s,\x20%s','request\x20sent','debug','Variable,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x39f097,_0x17116b){var _0x544f6a=function(_0x457caf){while(--_0x457caf){_0x39f097['push'](_0x39f097['shift']());}};_0x544f6a(++_0x17116b);}(_0x8ef6,0xf2));var _0x68ef=function(_0x4473b4,_0x3a320b){_0x4473b4=_0x4473b4-0x0;var _0x332982=_0x8ef6[_0x4473b4];return _0x332982;};'use strict';var _=require(_0x68ef('0x0'));var util=require(_0x68ef('0x1'));var moment=require(_0x68ef('0x2'));var BPromise=require(_0x68ef('0x3'));var rs=require(_0x68ef('0x4'));var fs=require('fs');var Redis=require(_0x68ef('0x5'));var db=require(_0x68ef('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x68ef('0x7'))(_0x68ef('0x8'));var config=require(_0x68ef('0x9'));var jayson=require(_0x68ef('0xa'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3c2ff3,_0x4740e8,_0x2de776){return new BPromise(function(_0x4eb5eb,_0x228967){return client[_0x68ef('0xb')](_0x3c2ff3,_0x2de776)[_0x68ef('0xc')](function(_0x22ae26){logger[_0x68ef('0xd')](_0x68ef('0xe'),_0x4740e8,_0x68ef('0xf'));logger[_0x68ef('0x10')](_0x68ef('0x11'),_0x4740e8,_0x68ef('0xf'),JSON[_0x68ef('0x12')](_0x22ae26));if(_0x22ae26[_0x68ef('0x13')]){if(_0x22ae26['error'][_0x68ef('0x14')]===0x1f4){logger[_0x68ef('0x13')](_0x68ef('0xe'),_0x4740e8,_0x22ae26[_0x68ef('0x13')][_0x68ef('0x15')]);return _0x228967(_0x22ae26[_0x68ef('0x13')]['message']);}logger[_0x68ef('0x13')](_0x68ef('0xe'),_0x4740e8,_0x22ae26[_0x68ef('0x13')]['message']);return _0x4eb5eb(_0x22ae26[_0x68ef('0x13')][_0x68ef('0x15')]);}else{logger[_0x68ef('0xd')]('Variable,\x20%s,\x20%s',_0x4740e8,_0x68ef('0xf'));_0x4eb5eb(_0x22ae26[_0x68ef('0x16')][_0x68ef('0x15')]);}})[_0x68ef('0x17')](function(_0x5c4456){logger[_0x68ef('0x13')]('Variable,\x20%s,\x20%s',_0x4740e8,_0x5c4456);_0x228967(_0x5c4456);});});}exports['ShowVariable']=function(_0x2633c1){var _0x404870=this;return new Promise(function(_0x4ade0d,_0x527870){return db[_0x68ef('0x18')][_0x68ef('0x19')]({'raw':_0x2633c1[_0x68ef('0x1a')]?_0x2633c1['options'][_0x68ef('0x1b')]===undefined?!![]:![]:!![],'where':_0x2633c1[_0x68ef('0x1a')]?_0x2633c1[_0x68ef('0x1a')]['where']||null:null,'attributes':_0x2633c1[_0x68ef('0x1a')]?_0x2633c1[_0x68ef('0x1a')]['attributes']||null:null,'include':_0x2633c1[_0x68ef('0x1a')]?_0x2633c1[_0x68ef('0x1a')][_0x68ef('0x1c')]?_['map'](_0x2633c1['options']['include'],function(_0x26018d){return{'model':db[_0x26018d[_0x68ef('0x1d')]],'as':_0x26018d['as'],'attributes':_0x26018d[_0x68ef('0x1e')],'include':_0x26018d[_0x68ef('0x1c')]?_[_0x68ef('0x1f')](_0x26018d[_0x68ef('0x1c')],function(_0x258cd5){return{'model':db[_0x258cd5[_0x68ef('0x1d')]],'as':_0x258cd5['as'],'attributes':_0x258cd5[_0x68ef('0x1e')],'include':_0x258cd5[_0x68ef('0x1c')]?_['map'](_0x258cd5[_0x68ef('0x1c')],function(_0x57f9ee){return{'model':db[_0x57f9ee['model']],'as':_0x57f9ee['as'],'attributes':_0x57f9ee['attributes']};}):[]};}):[]};}):[]:[]})[_0x68ef('0xc')](function(_0x268f32){logger[_0x68ef('0xd')](_0x68ef('0x20'),_0x2633c1);logger['debug']('ShowVariable',_0x2633c1,JSON[_0x68ef('0x12')](_0x268f32));_0x4ade0d(_0x268f32);})[_0x68ef('0x17')](function(_0x7bf96){logger[_0x68ef('0x13')](_0x68ef('0x20'),_0x7bf96[_0x68ef('0x15')],_0x2633c1);_0x527870(_0x404870[_0x68ef('0x13')](0x1f4,_0x7bf96[_0x68ef('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ed4=['canUpdate','fetch','/reset','reset','/pull','pull','/restart','restart','/migrations','exports','express','Router','../../components/auth/service','get','index','isAuthenticated'];(function(_0x46698a,_0x8de1e4){var _0x356db0=function(_0x19e83c){while(--_0x19e83c){_0x46698a['push'](_0x46698a['shift']());}};_0x356db0(++_0x8de1e4);}(_0x2ed4,0x6a));var _0x42ed=function(_0x421eeb,_0x3d3e3e){_0x421eeb=_0x421eeb-0x0;var _0x2c7371=_0x2ed4[_0x421eeb];return _0x2c7371;};'use strict';var express=require(_0x42ed('0x0'));var router=express[_0x42ed('0x1')]();var auth=require(_0x42ed('0x2'));var controller=require('./version.controller');router[_0x42ed('0x3')]('/',controller[_0x42ed('0x4')]);router['get']('/fetch',auth[_0x42ed('0x5')](),auth[_0x42ed('0x6')](),controller[_0x42ed('0x7')]);router[_0x42ed('0x3')](_0x42ed('0x8'),auth[_0x42ed('0x5')](),auth[_0x42ed('0x6')](),controller[_0x42ed('0x9')]);router[_0x42ed('0x3')](_0x42ed('0xa'),auth[_0x42ed('0x5')](),auth[_0x42ed('0x6')](),controller[_0x42ed('0xb')]);router['get'](_0x42ed('0xc'),auth[_0x42ed('0x5')](),controller[_0x42ed('0xd')]);router['get'](_0x42ed('0xe'),controller['migrations']);module[_0x42ed('0xf')]=router;
\ No newline at end of file
+var _0xac29=['/fetch','fetch','/reset','isAuthenticated','canUpdate','reset','/pull','/restart','restart','/migrations','Router','./version.controller','get','index'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0xac29,0xea));var _0x9ac2=function(_0x2a0c95,_0x5c0c18){_0x2a0c95=_0x2a0c95-0x0;var _0x2457a0=_0xac29[_0x2a0c95];return _0x2457a0;};'use strict';var express=require('express');var router=express[_0x9ac2('0x0')]();var auth=require('../../components/auth/service');var controller=require(_0x9ac2('0x1'));router[_0x9ac2('0x2')]('/',controller[_0x9ac2('0x3')]);router[_0x9ac2('0x2')](_0x9ac2('0x4'),auth['isAuthenticated'](),auth['canUpdate'](),controller[_0x9ac2('0x5')]);router[_0x9ac2('0x2')](_0x9ac2('0x6'),auth[_0x9ac2('0x7')](),auth[_0x9ac2('0x8')](),controller[_0x9ac2('0x9')]);router[_0x9ac2('0x2')](_0x9ac2('0xa'),auth[_0x9ac2('0x7')](),auth['canUpdate'](),controller['pull']);router['get'](_0x9ac2('0xb'),auth['isAuthenticated'](),controller[_0x9ac2('0xc')]);router[_0x9ac2('0x2')](_0x9ac2('0xd'),controller['migrations']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b9a=['npm\x20install\x20--production','restart','motion2','then','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','migrations','join','root','server','push','length','sequelize','Migration','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','map','.js','Database\x20migrated\x20successfully\x20from\x20version\x20','last','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','version','compare-versions','child_process','exec','../../config/environment','../../config/pm2','../../config/logger','update','exports','query','latest','fetch','tags','2.0.0','status','json','master','error','info','git\x20fetch','reset','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','pull'];(function(_0x3419a2,_0x36a764){var _0x359fb6=function(_0x229e22){while(--_0x229e22){_0x3419a2['push'](_0x3419a2['shift']());}};_0x359fb6(++_0x36a764);}(_0x5b9a,0x13b));var _0xa5b9=function(_0x242cf9,_0x331e28){_0x242cf9=_0x242cf9-0x0;var _0x44a81e=_0x5b9a[_0x242cf9];return _0x44a81e;};'use strict';var Umzug=require(_0xa5b9('0x0'));var path=require(_0xa5b9('0x1'));var fs=require('fs');var _=require(_0xa5b9('0x2'));var pkginfo=require('pkginfo')(module,_0xa5b9('0x3'));var compareVersions=require(_0xa5b9('0x4'));var exec=require(_0xa5b9('0x5'))[_0xa5b9('0x6')];var db=require('../../mysqldb')['db'];var config=require(_0xa5b9('0x7'));var pm2=require(_0xa5b9('0x8'));var logger=require(_0xa5b9('0x9'))(_0xa5b9('0xa'));var git=require('simple-git')(config['root']);exports['index']=function(_0x5f3897,_0x48ef00){var _0x476a63={'current':module[_0xa5b9('0xb')]['version'],'phonebar':0x2};if(_0x5f3897[_0xa5b9('0xc')]&&_0x5f3897[_0xa5b9('0xc')][_0xa5b9('0xd')]){return git[_0xa5b9('0xe')]()[_0xa5b9('0xf')](function(_0x13b9a5,_0xc2825f){_0x476a63[_0xa5b9('0xd')]=(_0x13b9a5?module[_0xa5b9('0xb')][_0xa5b9('0x3')]:_0xc2825f[_0xa5b9('0xd')])||_0xa5b9('0x10');return _0x48ef00[_0xa5b9('0x11')](0xc8)['json'](_0x476a63);});}else{return _0x48ef00[_0xa5b9('0x11')](0xc8)[_0xa5b9('0x12')](_0x476a63);}};exports['fetch']=function(_0x49ff04,_0x3b0126){return git[_0xa5b9('0xe')](['origin',_0xa5b9('0x13')],function(_0x1b491e){if(_0x1b491e){logger[_0xa5b9('0x14')](_0x1b491e);return _0x3b0126[_0xa5b9('0x11')](0x1f4)[_0xa5b9('0x12')](_0x1b491e);}logger[_0xa5b9('0x15')](_0xa5b9('0x16'));return _0x3b0126[_0xa5b9('0x11')](0xc8)[_0xa5b9('0x12')]({'output':'git\x20fetch\x20origin\x20master'});});};exports[_0xa5b9('0x17')]=function(_0x21161a,_0x2de88f){return git['reset'](['--hard',_0xa5b9('0x18')],function(_0x522b5b){if(_0x522b5b){logger[_0xa5b9('0x14')](_0x522b5b);return _0x2de88f[_0xa5b9('0x11')](0x1f4)[_0xa5b9('0x12')](_0x522b5b);}logger[_0xa5b9('0x15')](_0xa5b9('0x19'));return _0x2de88f[_0xa5b9('0x11')](0xc8)[_0xa5b9('0x12')]({'output':_0xa5b9('0x1a')});});};exports[_0xa5b9('0x1b')]=function(_0x55267b,_0x136720){exec(_0xa5b9('0x1c'),function(_0x1da6fd,_0x4c6a47,_0xd1acb9){logger['info'](_0x4c6a47);logger[_0xa5b9('0x15')](_0xd1acb9);if(_0x1da6fd){logger['error'](_0x1da6fd);return _0x136720['status'](0x1f4)[_0xa5b9('0x12')](_0x1da6fd);}return _0x136720[_0xa5b9('0x11')](0xc8)[_0xa5b9('0x12')]({'output':_0x4c6a47});});};exports[_0xa5b9('0x1d')]=function(_0x2d5e3a,_0x1cbab3){return pm2[_0xa5b9('0x1d')](_0xa5b9('0x1e'))[_0xa5b9('0x1f')](function(_0x167595){logger[_0xa5b9('0x15')](_0xa5b9('0x20'),_0x167595);return _0x1cbab3[_0xa5b9('0x11')](0xc8)[_0xa5b9('0x12')]({'output':_0xa5b9('0x21')});})['catch'](function(_0x25cffe){logger[_0xa5b9('0x14')](_0x25cffe);return _0x1cbab3[_0xa5b9('0x11')](0x1f4)[_0xa5b9('0x12')](_0x25cffe);});};exports[_0xa5b9('0x22')]=function(_0x4bdcdc,_0x2ed53c){var _0x1a7041=fs['readdirSync'](path[_0xa5b9('0x23')](config[_0xa5b9('0x24')],_0xa5b9('0x25'),_0xa5b9('0x22')));var _0x5b2f63=[];for(var _0x562201=0x0;_0x562201<_0x1a7041['length'];_0x562201++){var _0x16cafe=_0x1a7041[_0x562201]['replace']('.js','');if(compareVersions(module[_0xa5b9('0xb')][_0xa5b9('0x3')],_0x16cafe)===-0x1){_0x5b2f63[_0xa5b9('0x26')](_0x16cafe);}}if(_0x5b2f63[_0xa5b9('0x27')]){var _0x10afa5=_0x5b2f63['sort'](compareVersions);var _0x41c1fc=new Umzug({'storage':_0xa5b9('0x28'),'storageOptions':{'model':db['Migration'],'modelName':_0xa5b9('0x29'),'columnName':_0xa5b9('0x3')},'migrations':{'params':[db[_0xa5b9('0x28')]['getQueryInterface'](),db[_0xa5b9('0x28')]['constructor'],function(){throw new Error(_0xa5b9('0x2a'));}],'path':path['join'](config[_0xa5b9('0x24')],_0xa5b9('0x25'),'migrations'),'pattern':/\.js$/}});_0x41c1fc['up']({'migrations':_[_0xa5b9('0x2b')](_0x10afa5,function(_0x20b5a4){return _0x20b5a4+_0xa5b9('0x2c');})})['then'](function(){return _0x2ed53c['status'](0xc8)[_0xa5b9('0x12')]({'output':_0xa5b9('0x2d')+module['exports'][_0xa5b9('0x3')]+'\x20to\x20'+_[_0xa5b9('0x2e')](_0x10afa5),'migrations':_[_0xa5b9('0x23')](_0x10afa5)});})['catch'](function(_0xcd5831){if(_0xcd5831 instanceof db[_0xa5b9('0x28')][_0xa5b9('0x2f')]){return _0x2ed53c[_0xa5b9('0x11')](0xc8)['json']({'output':_0xa5b9('0x30')});}else{return _0x2ed53c[_0xa5b9('0x11')](0x1f4)[_0xa5b9('0x12')](_0xcd5831);}});}else{return _0x2ed53c[_0xa5b9('0x11')](0xc8)[_0xa5b9('0x12')]({'output':'Database\x20already\x20up-to-date'});}};
\ No newline at end of file
+var _0x6201=['map','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','pkginfo','version','compare-versions','exec','../../mysqldb','../../config/environment','../../config/pm2','../../config/logger','update','simple-git','root','exports','latest','fetch','tags','2.0.0','json','origin','master','status','git\x20fetch','git\x20fetch\x20origin\x20master','reset','FETCH_HEAD','error','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','npm\x20install\x20--production','info','restart','motion2','then','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','migrations','server','length','replace','.js','push','sort','sequelize','Migration','getQueryInterface','join'];(function(_0x431400,_0x47c64c){var _0x3c5819=function(_0x9ea74d){while(--_0x9ea74d){_0x431400['push'](_0x431400['shift']());}};_0x3c5819(++_0x47c64c);}(_0x6201,0xa1));var _0x1620=function(_0x287adf,_0x12a145){_0x287adf=_0x287adf-0x0;var _0x4348bf=_0x6201[_0x287adf];return _0x4348bf;};'use strict';var Umzug=require(_0x1620('0x0'));var path=require(_0x1620('0x1'));var fs=require('fs');var _=require('lodash');var pkginfo=require(_0x1620('0x2'))(module,_0x1620('0x3'));var compareVersions=require(_0x1620('0x4'));var exec=require('child_process')[_0x1620('0x5')];var db=require(_0x1620('0x6'))['db'];var config=require(_0x1620('0x7'));var pm2=require(_0x1620('0x8'));var logger=require(_0x1620('0x9'))(_0x1620('0xa'));var git=require(_0x1620('0xb'))(config[_0x1620('0xc')]);exports['index']=function(_0x4e6f0a,_0x2cb929){var _0x211529={'current':module[_0x1620('0xd')][_0x1620('0x3')],'phonebar':0x2};if(_0x4e6f0a['query']&&_0x4e6f0a['query'][_0x1620('0xe')]){return git[_0x1620('0xf')]()[_0x1620('0x10')](function(_0x4ca3ef,_0x95d565){_0x211529[_0x1620('0xe')]=(_0x4ca3ef?module[_0x1620('0xd')][_0x1620('0x3')]:_0x95d565[_0x1620('0xe')])||_0x1620('0x11');return _0x2cb929['status'](0xc8)[_0x1620('0x12')](_0x211529);});}else{return _0x2cb929['status'](0xc8)[_0x1620('0x12')](_0x211529);}};exports[_0x1620('0xf')]=function(_0x164e2e,_0x256c15){return git[_0x1620('0xf')]([_0x1620('0x13'),_0x1620('0x14')],function(_0x19faef){if(_0x19faef){logger['error'](_0x19faef);return _0x256c15[_0x1620('0x15')](0x1f4)[_0x1620('0x12')](_0x19faef);}logger['info'](_0x1620('0x16'));return _0x256c15['status'](0xc8)['json']({'output':_0x1620('0x17')});});};exports[_0x1620('0x18')]=function(_0x3c0c1f,_0x4e7c27){return git[_0x1620('0x18')](['--hard',_0x1620('0x19')],function(_0x938329){if(_0x938329){logger[_0x1620('0x1a')](_0x938329);return _0x4e7c27[_0x1620('0x15')](0x1f4)[_0x1620('0x12')](_0x938329);}logger['info'](_0x1620('0x1b'));return _0x4e7c27[_0x1620('0x15')](0xc8)[_0x1620('0x12')]({'output':_0x1620('0x1c')});});};exports['pull']=function(_0x3c93a6,_0x2e6461){exec(_0x1620('0x1d'),function(_0x47bf3b,_0x59d711,_0x4d891d){logger[_0x1620('0x1e')](_0x59d711);logger[_0x1620('0x1e')](_0x4d891d);if(_0x47bf3b){logger[_0x1620('0x1a')](_0x47bf3b);return _0x2e6461['status'](0x1f4)[_0x1620('0x12')](_0x47bf3b);}return _0x2e6461[_0x1620('0x15')](0xc8)[_0x1620('0x12')]({'output':_0x59d711});});};exports[_0x1620('0x1f')]=function(_0x3ffc5e,_0x47eef8){return pm2['restart'](_0x1620('0x20'))[_0x1620('0x21')](function(_0x13c661){logger[_0x1620('0x1e')](_0x1620('0x22'),_0x13c661);return _0x47eef8['status'](0xc8)[_0x1620('0x12')]({'output':_0x1620('0x23')});})['catch'](function(_0x2de110){logger['error'](_0x2de110);return _0x47eef8['status'](0x1f4)[_0x1620('0x12')](_0x2de110);});};exports[_0x1620('0x24')]=function(_0xdd29d2,_0x209672){var _0x3601dc=fs['readdirSync'](path['join'](config[_0x1620('0xc')],_0x1620('0x25'),_0x1620('0x24')));var _0x4570dc=[];for(var _0x120862=0x0;_0x120862<_0x3601dc[_0x1620('0x26')];_0x120862++){var _0x4ad8cf=_0x3601dc[_0x120862][_0x1620('0x27')](_0x1620('0x28'),'');if(compareVersions(module['exports'][_0x1620('0x3')],_0x4ad8cf)===-0x1){_0x4570dc[_0x1620('0x29')](_0x4ad8cf);}}if(_0x4570dc['length']){var _0x2500a1=_0x4570dc[_0x1620('0x2a')](compareVersions);var _0x404472=new Umzug({'storage':_0x1620('0x2b'),'storageOptions':{'model':db['Migration'],'modelName':_0x1620('0x2c'),'columnName':_0x1620('0x3')},'migrations':{'params':[db[_0x1620('0x2b')][_0x1620('0x2d')](),db[_0x1620('0x2b')]['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[_0x1620('0x2e')](config[_0x1620('0xc')],'server',_0x1620('0x24')),'pattern':/\.js$/}});_0x404472['up']({'migrations':_[_0x1620('0x2f')](_0x2500a1,function(_0x174a47){return _0x174a47+_0x1620('0x28');})})[_0x1620('0x21')](function(){return _0x209672[_0x1620('0x15')](0xc8)['json']({'output':_0x1620('0x30')+module[_0x1620('0xd')][_0x1620('0x3')]+_0x1620('0x31')+_['last'](_0x2500a1),'migrations':_['join'](_0x2500a1)});})['catch'](function(_0x4911a2){if(_0x4911a2 instanceof db[_0x1620('0x2b')][_0x1620('0x32')]){return _0x209672['status'](0xc8)[_0x1620('0x12')]({'output':_0x1620('0x33')});}else{return _0x209672[_0x1620('0x15')](0x1f4)['json'](_0x4911a2);}});}else{return _0x209672[_0x1620('0x15')](0xc8)[_0x1620('0x12')]({'output':_0x1620('0x33')});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd451=['../../components/interaction/service','../../config/environment','./voiceAgentReport.controller','get','isAuthenticated','index','/describe','/:id','show','post','create','put','update','delete','destroy','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service'];(function(_0x12b8ec,_0x1655be){var _0x21af77=function(_0xe59f){while(--_0xe59f){_0x12b8ec['push'](_0x12b8ec['shift']());}};_0x21af77(++_0x1655be);}(_0xd451,0x180));var _0x1d45=function(_0x156940,_0x4ce104){_0x156940=_0x156940-0x0;var _0x34dc76=_0xd451[_0x156940];return _0x34dc76;};'use strict';var multer=require(_0x1d45('0x0'));var util=require('util');var path=require(_0x1d45('0x1'));var timeout=require(_0x1d45('0x2'));var express=require(_0x1d45('0x3'));var router=express[_0x1d45('0x4')]();var fs_extra=require(_0x1d45('0x5'));var auth=require(_0x1d45('0x6'));var interaction=require(_0x1d45('0x7'));var config=require(_0x1d45('0x8'));var controller=require(_0x1d45('0x9'));router[_0x1d45('0xa')]('/',auth[_0x1d45('0xb')](),controller[_0x1d45('0xc')]);router['get'](_0x1d45('0xd'),auth[_0x1d45('0xb')](),controller['describe']);router[_0x1d45('0xa')](_0x1d45('0xe'),auth[_0x1d45('0xb')](),controller[_0x1d45('0xf')]);router[_0x1d45('0x10')]('/',auth[_0x1d45('0xb')](),controller[_0x1d45('0x11')]);router[_0x1d45('0x12')]('/:id',auth[_0x1d45('0xb')](),controller[_0x1d45('0x13')]);router[_0x1d45('0x14')](_0x1d45('0xe'),auth[_0x1d45('0xb')](),controller[_0x1d45('0x15')]);module[_0x1d45('0x16')]=router;
\ No newline at end of file
+var _0x7428=['util','express','fs-extra','../../config/environment','get','isAuthenticated','index','/describe','/:id','show','post','update','delete','destroy','exports','multer'];(function(_0x181d03,_0x207db3){var _0x2f6623=function(_0x269167){while(--_0x269167){_0x181d03['push'](_0x181d03['shift']());}};_0x2f6623(++_0x207db3);}(_0x7428,0x15f));var _0x8742=function(_0x448ca9,_0x1f027a){_0x448ca9=_0x448ca9-0x0;var _0x24c84e=_0x7428[_0x448ca9];return _0x24c84e;};'use strict';var multer=require(_0x8742('0x0'));var util=require(_0x8742('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x8742('0x2'));var router=express['Router']();var fs_extra=require(_0x8742('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x8742('0x4'));var controller=require('./voiceAgentReport.controller');router[_0x8742('0x5')]('/',auth[_0x8742('0x6')](),controller[_0x8742('0x7')]);router[_0x8742('0x5')](_0x8742('0x8'),auth[_0x8742('0x6')](),controller['describe']);router['get'](_0x8742('0x9'),auth[_0x8742('0x6')](),controller[_0x8742('0xa')]);router[_0x8742('0xb')]('/',auth[_0x8742('0x6')](),controller['create']);router['put'](_0x8742('0x9'),auth[_0x8742('0x6')](),controller[_0x8742('0xc')]);router[_0x8742('0xd')]('/:id',auth[_0x8742('0x6')](),controller[_0x8742('0xe')]);module[_0x8742('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88c3=['INTEGER','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','STRING','DATE','BOOLEAN'];(function(_0x44d6f6,_0x4c3600){var _0x2f0ee2=function(_0x2cb481){while(--_0x2cb481){_0x44d6f6['push'](_0x44d6f6['shift']());}};_0x2f0ee2(++_0x4c3600);}(_0x88c3,0x1ee));var _0x388c=function(_0x5dfd21,_0x210e28){_0x5dfd21=_0x5dfd21-0x0;var _0x192061=_0x88c3[_0x5dfd21];return _0x192061;};'use strict';var Sequelize=require(_0x388c('0x0'));module['exports']={'type':{'type':Sequelize[_0x388c('0x1')]},'uniqueid':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x388c('0x1')]},'queue':{'type':Sequelize['STRING']},'interface':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0x388c('0x1')]},'agentcalledAt':{'type':Sequelize[_0x388c('0x2')]},'agentconnectAt':{'type':Sequelize[_0x388c('0x2')]},'agentcompleteAt':{'type':Sequelize[_0x388c('0x2')]},'agentringnoanswerAt':{'type':Sequelize[_0x388c('0x2')]},'agentdumpAt':{'type':Sequelize[_0x388c('0x2')]},'holdtime':{'type':Sequelize['INTEGER']},'agentcomplete':{'type':Sequelize[_0x388c('0x3')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0x388c('0x3')],'defaultValue':![]},'agentdump':{'type':Sequelize[_0x388c('0x3')],'defaultValue':![]},'talktime':{'type':Sequelize[_0x388c('0x4')]},'agentacw':{'type':Sequelize[_0x388c('0x3')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x388c('0x4')]},'reason':{'type':Sequelize[_0x388c('0x1')]},'lastevent':{'type':Sequelize[_0x388c('0x1')]},'channel':{'type':Sequelize['STRING']},'channelstate':{'type':Sequelize[_0x388c('0x4')]},'channelstatedesc':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize[_0x388c('0x1')]},'language':{'type':Sequelize[_0x388c('0x1')]},'accountcode':{'type':Sequelize[_0x388c('0x1')]},'context':{'type':Sequelize[_0x388c('0x1')]},'exten':{'type':Sequelize[_0x388c('0x1')]},'priority':{'type':Sequelize[_0x388c('0x1')]},'destchannel':{'type':Sequelize[_0x388c('0x1')]},'destchannelstate':{'type':Sequelize[_0x388c('0x4')]},'destchannelstatedesc':{'type':Sequelize[_0x388c('0x1')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize['STRING']},'destconnectedlinename':{'type':Sequelize[_0x388c('0x1')]},'destlanguage':{'type':Sequelize[_0x388c('0x1')]},'destaccountcode':{'type':Sequelize['STRING']},'destcontext':{'type':Sequelize[_0x388c('0x1')]},'destexten':{'type':Sequelize[_0x388c('0x1')]},'destpriority':{'type':Sequelize['STRING']},'destuniqueid':{'type':Sequelize['STRING']},'answeredelsewheredestinationuniqueid':{'type':Sequelize[_0x388c('0x1')]},'answeredelsewheremembername':{'type':Sequelize[_0x388c('0x1')]},'transfer':{'type':Sequelize[_0x388c('0x3')],'defaultValue':![]},'transfertype':{'type':Sequelize['STRING'],'comment':_0x388c('0x5')},'transferexten':{'type':Sequelize['STRING']},'transferuniqueid':{'type':Sequelize[_0x388c('0x1')]},'agententerreason':{'type':Sequelize[_0x388c('0x4')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xd523=['BOOLEAN','INTEGER','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','exports','STRING','DATE'];(function(_0x4d32bb,_0x430e98){var _0x5d52bc=function(_0x9791ca){while(--_0x9791ca){_0x4d32bb['push'](_0x4d32bb['shift']());}};_0x5d52bc(++_0x430e98);}(_0xd523,0x153));var _0x3d52=function(_0x33a0b1,_0x1702a3){_0x33a0b1=_0x33a0b1-0x0;var _0x16fa87=_0xd523[_0x33a0b1];return _0x16fa87;};'use strict';var Sequelize=require(_0x3d52('0x0'));module[_0x3d52('0x1')]={'type':{'type':Sequelize[_0x3d52('0x2')]},'uniqueid':{'type':Sequelize[_0x3d52('0x2')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x3d52('0x2')]},'queue':{'type':Sequelize[_0x3d52('0x2')]},'interface':{'type':Sequelize[_0x3d52('0x2')]},'membername':{'type':Sequelize['STRING']},'agentcalledAt':{'type':Sequelize[_0x3d52('0x3')]},'agentconnectAt':{'type':Sequelize[_0x3d52('0x3')]},'agentcompleteAt':{'type':Sequelize[_0x3d52('0x3')]},'agentringnoanswerAt':{'type':Sequelize[_0x3d52('0x3')]},'agentdumpAt':{'type':Sequelize['DATE']},'holdtime':{'type':Sequelize['INTEGER']},'agentcomplete':{'type':Sequelize[_0x3d52('0x4')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0x3d52('0x4')],'defaultValue':![]},'agentdump':{'type':Sequelize[_0x3d52('0x4')],'defaultValue':![]},'talktime':{'type':Sequelize[_0x3d52('0x5')]},'agentacw':{'type':Sequelize[_0x3d52('0x4')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x3d52('0x5')]},'reason':{'type':Sequelize[_0x3d52('0x2')]},'lastevent':{'type':Sequelize[_0x3d52('0x2')]},'channel':{'type':Sequelize[_0x3d52('0x2')]},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0x3d52('0x2')]},'connectedlinenum':{'type':Sequelize[_0x3d52('0x2')]},'connectedlinename':{'type':Sequelize[_0x3d52('0x2')]},'language':{'type':Sequelize[_0x3d52('0x2')]},'accountcode':{'type':Sequelize[_0x3d52('0x2')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0x3d52('0x2')]},'priority':{'type':Sequelize['STRING']},'destchannel':{'type':Sequelize['STRING']},'destchannelstate':{'type':Sequelize[_0x3d52('0x5')]},'destchannelstatedesc':{'type':Sequelize[_0x3d52('0x2')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize['STRING']},'destconnectedlinename':{'type':Sequelize[_0x3d52('0x2')]},'destlanguage':{'type':Sequelize[_0x3d52('0x2')]},'destaccountcode':{'type':Sequelize[_0x3d52('0x2')]},'destcontext':{'type':Sequelize[_0x3d52('0x2')]},'destexten':{'type':Sequelize[_0x3d52('0x2')]},'destpriority':{'type':Sequelize[_0x3d52('0x2')]},'destuniqueid':{'type':Sequelize[_0x3d52('0x2')]},'answeredelsewheredestinationuniqueid':{'type':Sequelize[_0x3d52('0x2')]},'answeredelsewheremembername':{'type':Sequelize[_0x3d52('0x2')]},'transfer':{'type':Sequelize[_0x3d52('0x4')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0x3d52('0x2')],'comment':_0x3d52('0x6')},'transferexten':{'type':Sequelize[_0x3d52('0x2')]},'transferuniqueid':{'type':Sequelize[_0x3d52('0x2')]},'agententerreason':{'type':Sequelize[_0x3d52('0x5')],'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(_0x1cc8fe,_0x105328){var _0x230054=function(_0x1a1b56){while(--_0x1a1b56){_0x1cc8fe['push'](_0x1cc8fe['shift']());}};_0x230054(++_0x105328);}(_0xa9e0,0x123));var _0x0a9e=function(_0x9aada2,_0xd2d349){_0x9aada2=_0x9aada2-0x0;var _0x196dff=_0xa9e0[_0x9aada2];return _0x196dff;};'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(_0x2070da,_0x45e586){var _0x4f9fe1=function(_0x5b6f2a){while(--_0x5b6f2a){_0x2070da['push'](_0x2070da['shift']());}};_0x4f9fe1(++_0x45e586);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5447fd,_0x52a6b5){_0x5447fd=_0x5447fd-0x0;var _0x15b28a=_0xa9e0[_0x5447fd];return _0x15b28a;};'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 _0xabce=['path','rimraf','../../config/environment','define','report_agent','uniqueid','destuniqueid','lodash','util','../../config/logger','api','moment'];(function(_0xace7f5,_0x1b3167){var _0x272c96=function(_0x351a6f){while(--_0x351a6f){_0xace7f5['push'](_0xace7f5['shift']());}};_0x272c96(++_0x1b3167);}(_0xabce,0x103));var _0xeabc=function(_0x481bf7,_0x437f69){_0x481bf7=_0x481bf7-0x0;var _0x461787=_0xabce[_0x481bf7];return _0x461787;};'use strict';var _=require(_0xeabc('0x0'));var util=require(_0xeabc('0x1'));var logger=require(_0xeabc('0x2'))(_0xeabc('0x3'));var moment=require(_0xeabc('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xeabc('0x5'));var rimraf=require(_0xeabc('0x6'));var config=require(_0xeabc('0x7'));var attributes=require('./voiceAgentReport.attributes');module['exports']=function(_0x1b07a8,_0x52a4d7){return _0x1b07a8[_0xeabc('0x8')]('VoiceAgentReport',attributes,{'tableName':_0xeabc('0x9'),'paranoid':![],'indexes':[{'fields':[_0xeabc('0xa'),_0xeabc('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x7412=['report_agent','uniqueid','destuniqueid','lodash','api','bluebird','define'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7412,0x161));var _0x2741=function(_0xbd08b4,_0x4790ed){_0xbd08b4=_0xbd08b4-0x0;var _0x314f1e=_0x7412[_0xbd08b4];return _0x314f1e;};'use strict';var _=require(_0x2741('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x2741('0x1'));var moment=require('moment');var BPromise=require(_0x2741('0x2'));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('./voiceAgentReport.attributes');module['exports']=function(_0x23985b,_0xcc6e28){return _0x23985b[_0x2741('0x3')]('VoiceAgentReport',attributes,{'tableName':_0x2741('0x4'),'paranoid':![],'indexes':[{'fields':[_0x2741('0x5'),_0x2741('0x6')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9430=['VoiceAgentReport','create','body','options','raw','CreateVoiceAgentReport','UpdateVoiceAgentReport','where','attributes','lodash','moment','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','http','request','then','info','VoiceAgentReport,\x20%s,\x20%s','request\x20sent','debug','VoiceAgentReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch'];(function(_0x1c7ac2,_0x295452){var _0xa6128f=function(_0xf5eee4){while(--_0xf5eee4){_0x1c7ac2['push'](_0x1c7ac2['shift']());}};_0xa6128f(++_0x295452);}(_0x9430,0x7d));var _0x0943=function(_0x292a1d,_0x4c690e){_0x292a1d=_0x292a1d-0x0;var _0x9e166d=_0x9430[_0x292a1d];return _0x9e166d;};'use strict';var _=require(_0x0943('0x0'));var util=require('util');var moment=require(_0x0943('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0943('0x2'))['db'];var utils=require(_0x0943('0x3'));var logger=require(_0x0943('0x4'))('rpc');var config=require('../../config/environment');var jayson=require(_0x0943('0x5'));var client=jayson['client'][_0x0943('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x342d34,_0x2a9b89,_0x2a20d3){return new BPromise(function(_0x2d5685,_0x4c5dfc){return client[_0x0943('0x7')](_0x342d34,_0x2a20d3)[_0x0943('0x8')](function(_0x6becaa){logger[_0x0943('0x9')](_0x0943('0xa'),_0x2a9b89,_0x0943('0xb'));logger[_0x0943('0xc')](_0x0943('0xd'),_0x2a9b89,_0x0943('0xb'),JSON[_0x0943('0xe')](_0x6becaa));if(_0x6becaa['error']){if(_0x6becaa[_0x0943('0xf')][_0x0943('0x10')]===0x1f4){logger[_0x0943('0xf')]('VoiceAgentReport,\x20%s,\x20%s',_0x2a9b89,_0x6becaa[_0x0943('0xf')][_0x0943('0x11')]);return _0x4c5dfc(_0x6becaa[_0x0943('0xf')][_0x0943('0x11')]);}logger[_0x0943('0xf')](_0x0943('0xa'),_0x2a9b89,_0x6becaa['error'][_0x0943('0x11')]);return _0x2d5685(_0x6becaa[_0x0943('0xf')][_0x0943('0x11')]);}else{logger[_0x0943('0x9')](_0x0943('0xa'),_0x2a9b89,_0x0943('0xb'));_0x2d5685(_0x6becaa[_0x0943('0x12')][_0x0943('0x11')]);}})[_0x0943('0x13')](function(_0x49b88b){logger[_0x0943('0xf')](_0x0943('0xa'),_0x2a9b89,_0x49b88b);_0x4c5dfc(_0x49b88b);});});}exports['CreateVoiceAgentReport']=function(_0x1594df){var _0x4fd40a=this;return new Promise(function(_0x3ea556,_0x2a4f14){return db[_0x0943('0x14')][_0x0943('0x15')](_0x1594df[_0x0943('0x16')],{'raw':_0x1594df[_0x0943('0x17')]?_0x1594df['options'][_0x0943('0x18')]===undefined?!![]:![]:!![]})['then'](function(_0x5158c4){logger['info'](_0x0943('0x19'),_0x1594df);logger[_0x0943('0xc')](_0x0943('0x19'),_0x1594df,JSON[_0x0943('0xe')](_0x5158c4));_0x3ea556(_0x5158c4);})['catch'](function(_0x203dd7){logger[_0x0943('0xf')](_0x0943('0x19'),_0x203dd7[_0x0943('0x11')],_0x1594df);_0x2a4f14(_0x4fd40a['error'](0x1f4,_0x203dd7['message']));});});};exports[_0x0943('0x1a')]=function(_0x2327ab){var _0xc60987=this;return new Promise(function(_0x78e1eb,_0x16bfea){return db['VoiceAgentReport']['update'](_0x2327ab[_0x0943('0x16')],{'raw':_0x2327ab[_0x0943('0x17')]?_0x2327ab[_0x0943('0x17')][_0x0943('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2327ab[_0x0943('0x17')]?_0x2327ab['options'][_0x0943('0x1b')]||null:null,'attributes':_0x2327ab[_0x0943('0x17')]?_0x2327ab[_0x0943('0x17')][_0x0943('0x1c')]||null:null,'limit':_0x2327ab[_0x0943('0x17')]?_0x2327ab[_0x0943('0x17')]['limit']||null:null})[_0x0943('0x8')](function(_0x472871){logger[_0x0943('0x9')](_0x0943('0x1a'),_0x2327ab);logger[_0x0943('0xc')](_0x0943('0x1a'),_0x2327ab,JSON[_0x0943('0xe')](_0x472871));_0x78e1eb(_0x472871);})[_0x0943('0x13')](function(_0x51316b){logger[_0x0943('0xf')](_0x0943('0x1a'),_0x51316b[_0x0943('0x11')],_0x2327ab);_0x16bfea(_0xc60987[_0x0943('0xf')](0x1f4,_0x51316b['message']));});});};
\ No newline at end of file
+var _0x7340=['VoiceAgentReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateVoiceAgentReport','VoiceAgentReport','create','body','options','update','raw','attributes','limit','UpdateVoiceAgentReport','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','VoiceAgentReport,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x1d7fe0,_0x35c678){var _0x1ea59a=function(_0x59d3c5){while(--_0x59d3c5){_0x1d7fe0['push'](_0x1d7fe0['shift']());}};_0x1ea59a(++_0x35c678);}(_0x7340,0x7d));var _0x0734=function(_0xac770b,_0x3c74ef){_0xac770b=_0xac770b-0x0;var _0x399b1b=_0x7340[_0xac770b];return _0x399b1b;};'use strict';var _=require(_0x0734('0x0'));var util=require(_0x0734('0x1'));var moment=require('moment');var BPromise=require(_0x0734('0x2'));var rs=require(_0x0734('0x3'));var fs=require('fs');var Redis=require(_0x0734('0x4'));var db=require(_0x0734('0x5'))['db'];var utils=require(_0x0734('0x6'));var logger=require(_0x0734('0x7'))(_0x0734('0x8'));var config=require(_0x0734('0x9'));var jayson=require(_0x0734('0xa'));var client=jayson[_0x0734('0xb')][_0x0734('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x922203,_0x349e63,_0x3d78a0){return new BPromise(function(_0x36c593,_0x994938){return client[_0x0734('0xd')](_0x922203,_0x3d78a0)[_0x0734('0xe')](function(_0x34cc9e){logger[_0x0734('0xf')](_0x0734('0x10'),_0x349e63,_0x0734('0x11'));logger[_0x0734('0x12')](_0x0734('0x13'),_0x349e63,_0x0734('0x11'),JSON[_0x0734('0x14')](_0x34cc9e));if(_0x34cc9e['error']){if(_0x34cc9e[_0x0734('0x15')][_0x0734('0x16')]===0x1f4){logger['error']('VoiceAgentReport,\x20%s,\x20%s',_0x349e63,_0x34cc9e['error']['message']);return _0x994938(_0x34cc9e[_0x0734('0x15')][_0x0734('0x17')]);}logger['error']('VoiceAgentReport,\x20%s,\x20%s',_0x349e63,_0x34cc9e[_0x0734('0x15')][_0x0734('0x17')]);return _0x36c593(_0x34cc9e[_0x0734('0x15')][_0x0734('0x17')]);}else{logger['info']('VoiceAgentReport,\x20%s,\x20%s',_0x349e63,_0x0734('0x11'));_0x36c593(_0x34cc9e[_0x0734('0x18')][_0x0734('0x17')]);}})[_0x0734('0x19')](function(_0x561eeb){logger[_0x0734('0x15')]('VoiceAgentReport,\x20%s,\x20%s',_0x349e63,_0x561eeb);_0x994938(_0x561eeb);});});}exports[_0x0734('0x1a')]=function(_0x5185d4){var _0x58dbe8=this;return new Promise(function(_0x16c2b6,_0x1825d9){return db[_0x0734('0x1b')][_0x0734('0x1c')](_0x5185d4[_0x0734('0x1d')],{'raw':_0x5185d4[_0x0734('0x1e')]?_0x5185d4[_0x0734('0x1e')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x18ee0b){logger[_0x0734('0xf')]('CreateVoiceAgentReport',_0x5185d4);logger['debug'](_0x0734('0x1a'),_0x5185d4,JSON[_0x0734('0x14')](_0x18ee0b));_0x16c2b6(_0x18ee0b);})[_0x0734('0x19')](function(_0x4e88a3){logger[_0x0734('0x15')](_0x0734('0x1a'),_0x4e88a3[_0x0734('0x17')],_0x5185d4);_0x1825d9(_0x58dbe8['error'](0x1f4,_0x4e88a3[_0x0734('0x17')]));});});};exports['UpdateVoiceAgentReport']=function(_0x28f7be){var _0x1a10b7=this;return new Promise(function(_0x36bc40,_0x36dc28){return db['VoiceAgentReport'][_0x0734('0x1f')](_0x28f7be[_0x0734('0x1d')],{'raw':_0x28f7be[_0x0734('0x1e')]?_0x28f7be[_0x0734('0x1e')][_0x0734('0x20')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x28f7be[_0x0734('0x1e')]?_0x28f7be[_0x0734('0x1e')]['where']||null:null,'attributes':_0x28f7be[_0x0734('0x1e')]?_0x28f7be[_0x0734('0x1e')][_0x0734('0x21')]||null:null,'limit':_0x28f7be[_0x0734('0x1e')]?_0x28f7be['options'][_0x0734('0x22')]||null:null})[_0x0734('0xe')](function(_0xbd72ac){logger['info'](_0x0734('0x23'),_0x28f7be);logger['debug']('UpdateVoiceAgentReport',_0x28f7be,JSON[_0x0734('0x14')](_0xbd72ac));_0x36bc40(_0xbd72ac);})['catch'](function(_0x10c901){logger[_0x0734('0x15')](_0x0734('0x23'),_0x10c901['message'],_0x28f7be);_0x36dc28(_0x1a10b7['error'](0x1f4,_0x10c901[_0x0734('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fd1=['path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','create','update','delete','destroy','exports','multer'];(function(_0x34b96d,_0xbd0b37){var _0x15b73e=function(_0x2a7b7c){while(--_0x2a7b7c){_0x34b96d['push'](_0x34b96d['shift']());}};_0x15b73e(++_0xbd0b37);}(_0x5fd1,0x155));var _0x15fd=function(_0x461a32,_0xbcf717){_0x461a32=_0x461a32-0x0;var _0x54957f=_0x5fd1[_0x461a32];return _0x54957f;};'use strict';var multer=require(_0x15fd('0x0'));var util=require('util');var path=require(_0x15fd('0x1'));var timeout=require(_0x15fd('0x2'));var express=require(_0x15fd('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x15fd('0x4'));var interaction=require(_0x15fd('0x5'));var config=require(_0x15fd('0x6'));var controller=require('./voiceCallReport.controller');router[_0x15fd('0x7')]('/',auth[_0x15fd('0x8')](),controller[_0x15fd('0x9')]);router[_0x15fd('0x7')](_0x15fd('0xa'),auth['isAuthenticated'](),controller[_0x15fd('0xb')]);router[_0x15fd('0x7')](_0x15fd('0xc'),auth['isAuthenticated'](),controller[_0x15fd('0xd')]);router['post']('/',auth[_0x15fd('0x8')](),controller[_0x15fd('0xe')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0x15fd('0xf')]);router[_0x15fd('0x10')](_0x15fd('0xc'),auth[_0x15fd('0x8')](),controller[_0x15fd('0x11')]);module[_0x15fd('0x12')]=router;
\ No newline at end of file
+var _0xd13e=['update','destroy','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../config/environment','./voiceCallReport.controller','get','/describe','isAuthenticated','describe','/:id','show','post','create','put'];(function(_0x5a123f,_0x14cb93){var _0x40f3e8=function(_0x19fb34){while(--_0x19fb34){_0x5a123f['push'](_0x5a123f['shift']());}};_0x40f3e8(++_0x14cb93);}(_0xd13e,0x193));var _0xed13=function(_0x3902c2,_0x4df8fc){_0x3902c2=_0x3902c2-0x0;var _0x50e986=_0xd13e[_0x3902c2];return _0x50e986;};'use strict';var multer=require(_0xed13('0x0'));var util=require(_0xed13('0x1'));var path=require(_0xed13('0x2'));var timeout=require(_0xed13('0x3'));var express=require('express');var router=express[_0xed13('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xed13('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xed13('0x6'));var controller=require(_0xed13('0x7'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0xed13('0x8')](_0xed13('0x9'),auth[_0xed13('0xa')](),controller[_0xed13('0xb')]);router[_0xed13('0x8')](_0xed13('0xc'),auth[_0xed13('0xa')](),controller[_0xed13('0xd')]);router[_0xed13('0xe')]('/',auth['isAuthenticated'](),controller[_0xed13('0xf')]);router[_0xed13('0x10')](_0xed13('0xc'),auth[_0xed13('0xa')](),controller[_0xed13('0x11')]);router['delete'](_0xed13('0xc'),auth[_0xed13('0xa')](),controller[_0xed13('0x12')]);module[_0xed13('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b47=['DATE','INTEGER','exports','ENUM','inbound','internal','outbound','outbound-fax','dialer','STRING','TEXT'];(function(_0x1056ec,_0x136261){var _0x59913b=function(_0x1026a2){while(--_0x1026a2){_0x1056ec['push'](_0x1056ec['shift']());}};_0x59913b(++_0x136261);}(_0x6b47,0xe9));var _0x76b4=function(_0x44e00a,_0x248bbc){_0x44e00a=_0x44e00a-0x0;var _0x2bdfba=_0x6b47[_0x44e00a];return _0x2bdfba;};'use strict';var Sequelize=require('sequelize');module[_0x76b4('0x0')]={'uniqueid':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x76b4('0x1')](_0x76b4('0x2'),_0x76b4('0x3'),_0x76b4('0x4'),'inbound-fax',_0x76b4('0x5'),_0x76b4('0x6'))},'tag':{'type':Sequelize[_0x76b4('0x7')]},'accountcode':{'type':Sequelize[_0x76b4('0x7')]},'source':{'type':Sequelize[_0x76b4('0x7')]},'destination':{'type':Sequelize['STRING']},'destinationcontext':{'type':Sequelize[_0x76b4('0x7')]},'callerid':{'type':Sequelize[_0x76b4('0x7')]},'channel':{'type':Sequelize[_0x76b4('0x7')]},'destinationchannel':{'type':Sequelize[_0x76b4('0x7')]},'lastapplication':{'type':Sequelize[_0x76b4('0x7')]},'lastdata':{'type':Sequelize[_0x76b4('0x8')]},'starttime':{'type':Sequelize[_0x76b4('0x9')]},'systemanswertime':{'type':Sequelize[_0x76b4('0x9')]},'answertime':{'type':Sequelize[_0x76b4('0x9')]},'endtime':{'type':Sequelize[_0x76b4('0x9')]},'duration':{'type':Sequelize[_0x76b4('0xa')]},'billableseconds':{'type':Sequelize[_0x76b4('0xa')]},'mohtime':{'type':Sequelize[_0x76b4('0xa')],'defaultValue':0x0},'disposition':{'type':Sequelize['STRING']},'amaflags':{'type':Sequelize[_0x76b4('0x7')]},'userfield':{'type':Sequelize[_0x76b4('0x7')]},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0x76b4('0x7')]},'userThirdDisposition':{'type':Sequelize[_0x76b4('0x7')]},'note':{'type':Sequelize[_0x76b4('0x7')]},'prefix':{'type':Sequelize['STRING']},'routeid':{'type':Sequelize['INTEGER']},'sipcallid':{'type':Sequelize[_0x76b4('0x7')]}};
\ No newline at end of file
+var _0x80e0=['outbound','inbound-fax','outbound-fax','DATE','INTEGER','STRING','ENUM','inbound'];(function(_0x599ae9,_0x4b9c01){var _0x5861e6=function(_0xfed49b){while(--_0xfed49b){_0x599ae9['push'](_0x599ae9['shift']());}};_0x5861e6(++_0x4b9c01);}(_0x80e0,0x9d));var _0x080e=function(_0xa59703,_0x3da613){_0xa59703=_0xa59703-0x0;var _0x3e666f=_0x80e0[_0xa59703];return _0x3e666f;};'use strict';var Sequelize=require('sequelize');module['exports']={'uniqueid':{'type':Sequelize[_0x080e('0x0')]},'type':{'type':Sequelize[_0x080e('0x1')](_0x080e('0x2'),'internal',_0x080e('0x3'),_0x080e('0x4'),_0x080e('0x5'),'dialer')},'tag':{'type':Sequelize[_0x080e('0x0')]},'accountcode':{'type':Sequelize[_0x080e('0x0')]},'source':{'type':Sequelize[_0x080e('0x0')]},'destination':{'type':Sequelize['STRING']},'destinationcontext':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x080e('0x0')]},'destinationchannel':{'type':Sequelize['STRING']},'lastapplication':{'type':Sequelize[_0x080e('0x0')]},'lastdata':{'type':Sequelize['TEXT']},'starttime':{'type':Sequelize[_0x080e('0x6')]},'systemanswertime':{'type':Sequelize[_0x080e('0x6')]},'answertime':{'type':Sequelize[_0x080e('0x6')]},'endtime':{'type':Sequelize[_0x080e('0x6')]},'duration':{'type':Sequelize[_0x080e('0x7')]},'billableseconds':{'type':Sequelize['INTEGER']},'mohtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x080e('0x0')]},'amaflags':{'type':Sequelize[_0x080e('0x0')]},'userfield':{'type':Sequelize[_0x080e('0x0')]},'userDisposition':{'type':Sequelize[_0x080e('0x0')]},'userSecondDisposition':{'type':Sequelize['STRING']},'userThirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x080e('0x0')]},'prefix':{'type':Sequelize[_0x080e('0x0')]},'routeid':{'type':Sequelize[_0x080e('0x7')]},'sipcallid':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f2f=['stack','name','send','index','VoiceCallReport','rawAttributes','fieldName','type','map','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','filter','merge','where','options','includeAll','include','fullname','alias','User','findAll','catch','params','keys','find','create','body','destroy','describe','update','uniqueid','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','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then'];(function(_0xfd9b19,_0x21d75f){var _0x514918=function(_0x52e212){while(--_0x52e212){_0xfd9b19['push'](_0xfd9b19['shift']());}};_0x514918(++_0x21d75f);}(_0x5f2f,0x73));var _0xf5f2=function(_0x3c65db,_0x347c73){_0x3c65db=_0x3c65db-0x0;var _0x3c8e31=_0x5f2f[_0x3c65db];return _0x3c8e31;};'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 hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xf5f2('0x14'));var utils=require(_0xf5f2('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xf5f2('0x16'));var db=require(_0xf5f2('0x17'))['db'];function respondWithStatusCode(_0x331482,_0x3f2997){_0x3f2997=_0x3f2997||0xcc;return function(_0x59bb6c){if(_0x59bb6c){return _0x331482[_0xf5f2('0x18')](_0x3f2997);}return _0x331482['status'](_0x3f2997)[_0xf5f2('0x19')]();};}function respondWithResult(_0xea612c,_0x269909){_0x269909=_0x269909||0xc8;return function(_0x1c1a5c){if(_0x1c1a5c){return _0xea612c[_0xf5f2('0x1a')](_0x269909)['json'](_0x1c1a5c);}};}function respondWithFilteredResult(_0xafe430,_0x286197){return function(_0x17d656){if(_0x17d656){var _0x1b6dd2=typeof _0x286197[_0xf5f2('0x1b')]===_0xf5f2('0x1c')&&typeof _0x286197[_0xf5f2('0x1d')]===_0xf5f2('0x1c');var _0x11f702=_0x17d656[_0xf5f2('0x1e')];var _0x20fccd=_0x1b6dd2?0x0:_0x286197[_0xf5f2('0x1b')];var _0x4ff59b=_0x1b6dd2?_0x17d656[_0xf5f2('0x1e')]:_0x286197[_0xf5f2('0x1b')]+_0x286197[_0xf5f2('0x1d')];var _0x1bf655;if(_0x4ff59b>=_0x11f702){_0x4ff59b=_0x11f702;_0x1bf655=0xc8;}else{_0x1bf655=0xce;}_0xafe430['status'](_0x1bf655);return _0xafe430[_0xf5f2('0x1f')](_0xf5f2('0x20'),_0x20fccd+'-'+_0x4ff59b+'/'+_0x11f702)['json'](_0x17d656);}return null;};}function patchUpdates(_0x47acfc){return function(_0x2d2805){try{jsonpatch[_0xf5f2('0x21')](_0x2d2805,_0x47acfc,!![]);}catch(_0x4ae323){return BPromise[_0xf5f2('0x22')](_0x4ae323);}return _0x2d2805[_0xf5f2('0x23')]();};}function saveUpdates(_0x39e44a,_0x39c024){return function(_0x36f1cb){if(_0x36f1cb){return _0x36f1cb['update'](_0x39e44a)[_0xf5f2('0x24')](function(_0x4669a6){return _0x4669a6;});}return null;};}function removeEntity(_0x4e8bda,_0x2833fe){return function(_0x287ad5){if(_0x287ad5){return _0x287ad5['destroy']()['then'](function(){_0x4e8bda[_0xf5f2('0x1a')](0xcc)[_0xf5f2('0x19')]();});}};}function handleEntityNotFound(_0x13da6f,_0x1a5bb3){return function(_0xf6c58d){if(!_0xf6c58d){_0x13da6f[_0xf5f2('0x18')](0x194);}return _0xf6c58d;};}function handleError(_0x13a3be,_0x281ec8){_0x281ec8=_0x281ec8||0x1f4;return function(_0x294414){logger['error'](_0x294414[_0xf5f2('0x25')]);if(_0x294414[_0xf5f2('0x26')]){delete _0x294414[_0xf5f2('0x26')];}_0x13a3be[_0xf5f2('0x1a')](_0x281ec8)[_0xf5f2('0x27')](_0x294414);};}exports[_0xf5f2('0x28')]=function(_0x5b6672,_0x53cb96){var _0x22c826={},_0x14c829={},_0x11c771={'count':0x0,'rows':[]};var _0x5027ab=_['map'](db[_0xf5f2('0x29')][_0xf5f2('0x2a')],function(_0x17394a){return{'name':_0x17394a[_0xf5f2('0x2b')],'type':_0x17394a[_0xf5f2('0x2c')]['key']};});_0x14c829['model']=_[_0xf5f2('0x2d')](_0x5027ab,'name');_0x14c829[_0xf5f2('0x2e')]=_['keys'](_0x5b6672[_0xf5f2('0x2e')]);_0x14c829[_0xf5f2('0x2f')]=_[_0xf5f2('0x30')](_0x14c829[_0xf5f2('0x31')],_0x14c829[_0xf5f2('0x2e')]);_0x22c826[_0xf5f2('0x32')]=_[_0xf5f2('0x30')](_0x14c829[_0xf5f2('0x31')],qs['fields'](_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x33')]));_0x22c826[_0xf5f2('0x32')]=_0x22c826[_0xf5f2('0x32')][_0xf5f2('0x34')]?_0x22c826[_0xf5f2('0x32')]:_0x14c829[_0xf5f2('0x31')];if(!_0x5b6672['query'][_0xf5f2('0x35')](_0xf5f2('0x36'))){_0x22c826['limit']=qs[_0xf5f2('0x1d')](_0x5b6672['query'][_0xf5f2('0x1d')]);_0x22c826[_0xf5f2('0x1b')]=qs[_0xf5f2('0x1b')](_0x5b6672[_0xf5f2('0x2e')]['offset']);}_0x22c826['order']=qs[_0xf5f2('0x37')](_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x37')]);_0x22c826['where']=qs[_0xf5f2('0x2f')](_['pick'](_0x5b6672[_0xf5f2('0x2e')],_0x14c829['filters']),_0x5027ab);if(_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x38')]){_0x22c826['where']=_[_0xf5f2('0x39')](_0x22c826[_0xf5f2('0x3a')],{'$or':_[_0xf5f2('0x2d')](_0x5027ab,function(_0x35f738){if(_0x35f738['type']!=='VIRTUAL'){var _0x3d328f={};_0x3d328f[_0x35f738[_0xf5f2('0x26')]]={'$like':'%'+_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x38')]+'%'};return _0x3d328f;}})});}_0x22c826=_[_0xf5f2('0x39')]({},_0x22c826,_0x5b6672[_0xf5f2('0x3b')]);var _0x2bc20e={'where':_0x22c826['where']};return db[_0xf5f2('0x29')][_0xf5f2('0x1e')](_0x2bc20e)['then'](function(_0xc6a1ae){_0x11c771[_0xf5f2('0x1e')]=_0xc6a1ae;if(_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x3c')]){_0x22c826[_0xf5f2('0x3d')]=[{'attributes':['id',_0xf5f2('0x26'),_0xf5f2('0x3e'),_0xf5f2('0x3f')],'model':db['User'],'as':_0xf5f2('0x40')}];}return db[_0xf5f2('0x29')][_0xf5f2('0x41')](_0x22c826);})['then'](function(_0x509dbc){_0x11c771['rows']=_0x509dbc;return _0x11c771;})[_0xf5f2('0x24')](respondWithFilteredResult(_0x53cb96,_0x22c826))[_0xf5f2('0x42')](handleError(_0x53cb96,null));};exports['show']=function(_0x106272,_0xeed03d){var _0x28e33f={'raw':!![],'where':{'id':_0x106272[_0xf5f2('0x43')]['id']}},_0x31f86c={};_0x31f86c[_0xf5f2('0x31')]=_[_0xf5f2('0x44')](db[_0xf5f2('0x29')][_0xf5f2('0x2a')]);_0x31f86c[_0xf5f2('0x2e')]=_[_0xf5f2('0x44')](_0x106272[_0xf5f2('0x2e')]);_0x31f86c[_0xf5f2('0x2f')]=_[_0xf5f2('0x30')](_0x31f86c['model'],_0x31f86c[_0xf5f2('0x2e')]);_0x28e33f['attributes']=_[_0xf5f2('0x30')](_0x31f86c[_0xf5f2('0x31')],qs[_0xf5f2('0x33')](_0x106272[_0xf5f2('0x2e')][_0xf5f2('0x33')]));_0x28e33f[_0xf5f2('0x32')]=_0x28e33f['attributes'][_0xf5f2('0x34')]?_0x28e33f[_0xf5f2('0x32')]:_0x31f86c[_0xf5f2('0x31')];if(_0x106272[_0xf5f2('0x2e')][_0xf5f2('0x3c')]){_0x28e33f[_0xf5f2('0x3d')]=[{'all':!![]}];}_0x28e33f=_[_0xf5f2('0x39')]({},_0x28e33f,_0x106272[_0xf5f2('0x3b')]);return db['VoiceCallReport'][_0xf5f2('0x45')](_0x28e33f)[_0xf5f2('0x24')](handleEntityNotFound(_0xeed03d,null))[_0xf5f2('0x24')](respondWithResult(_0xeed03d,null))['catch'](handleError(_0xeed03d,null));};exports[_0xf5f2('0x46')]=function(_0xc91b64,_0x3179a9){return db['VoiceCallReport']['create'](_0xc91b64[_0xf5f2('0x47')],{})[_0xf5f2('0x24')](respondWithResult(_0x3179a9,0xc9))['catch'](handleError(_0x3179a9,null));};exports[_0xf5f2('0x48')]=function(_0x533cca,_0x740321){return db['VoiceCallReport'][_0xf5f2('0x45')]({'where':{'id':_0x533cca['params']['id']}})[_0xf5f2('0x24')](handleEntityNotFound(_0x740321,null))[_0xf5f2('0x24')](removeEntity(_0x740321,null))[_0xf5f2('0x42')](handleError(_0x740321,null));};exports[_0xf5f2('0x49')]=function(_0x4fa738,_0x3154c1){return db[_0xf5f2('0x29')]['describe']()['then'](respondWithResult(_0x3154c1,null))[_0xf5f2('0x42')](handleError(_0x3154c1,null));};exports[_0xf5f2('0x4a')]=function(_0x57782c,_0x22b645){if(_0x57782c[_0xf5f2('0x47')][_0xf5f2('0x4b')]){delete _0x57782c[_0xf5f2('0x47')]['uniqueid'];}return db['VoiceCallReport'][_0xf5f2('0x45')]({'where':{'uniqueid':_0x57782c[_0xf5f2('0x43')]['id'],'UserId':{'$or':[null,_0x57782c['user']['id']]}}})[_0xf5f2('0x24')](handleEntityNotFound(_0x22b645,null))[_0xf5f2('0x24')](saveUpdates(_0x57782c[_0xf5f2('0x47')],null))[_0xf5f2('0x24')](respondWithResult(_0x22b645,null))[_0xf5f2('0x42')](handleError(_0x22b645,null));};
\ No newline at end of file
+var _0xdb28=['options','includeAll','fullname','User','findAll','rows','catch','show','params','rawAttributes','intersection','include','find','create','destroy','describe','body','uniqueid','user','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','index','VoiceCallReport','fieldName','type','key','map','query','keys','model','fields','attributes','length','nolimit','order','sort','filters','filter','where','VIRTUAL','merge'];(function(_0x4176f7,_0x5b6b44){var _0x4166d1=function(_0x1678ee){while(--_0x1678ee){_0x4176f7['push'](_0x4176f7['shift']());}};_0x4166d1(++_0x5b6b44);}(_0xdb28,0x106));var _0x8db2=function(_0x33bdde,_0x3a9eb7){_0x33bdde=_0x33bdde-0x0;var _0x597d3a=_0xdb28[_0x33bdde];return _0x597d3a;};'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']=[{'attributes':['id',_0x8db2('0x28'),_0x8db2('0x40'),'alias'],'model':db['User'],'as':_0x8db2('0x41')}];}return db['VoiceCallReport'][_0x8db2('0x42')](_0x21bae5);})[_0x8db2('0x24')](function(_0x313130){_0x3124d5[_0x8db2('0x43')]=_0x313130;return _0x3124d5;})[_0x8db2('0x24')](respondWithFilteredResult(_0xbe5ece,_0x21bae5))[_0x8db2('0x44')](handleError(_0xbe5ece,null));};exports[_0x8db2('0x45')]=function(_0x5c97ef,_0x2f86b1){var _0x3d44de={'raw':!![],'where':{'id':_0x5c97ef[_0x8db2('0x46')]['id']}},_0x40c69e={};_0x40c69e['model']=_[_0x8db2('0x31')](db[_0x8db2('0x2b')][_0x8db2('0x47')]);_0x40c69e[_0x8db2('0x30')]=_['keys'](_0x5c97ef[_0x8db2('0x30')]);_0x40c69e['filters']=_[_0x8db2('0x48')](_0x40c69e[_0x8db2('0x32')],_0x40c69e[_0x8db2('0x30')]);_0x3d44de['attributes']=_['intersection'](_0x40c69e[_0x8db2('0x32')],qs['fields'](_0x5c97ef[_0x8db2('0x30')][_0x8db2('0x33')]));_0x3d44de[_0x8db2('0x34')]=_0x3d44de[_0x8db2('0x34')][_0x8db2('0x35')]?_0x3d44de[_0x8db2('0x34')]:_0x40c69e[_0x8db2('0x32')];if(_0x5c97ef[_0x8db2('0x30')][_0x8db2('0x3f')]){_0x3d44de[_0x8db2('0x49')]=[{'all':!![]}];}_0x3d44de=_[_0x8db2('0x3d')]({},_0x3d44de,_0x5c97ef[_0x8db2('0x3e')]);return db['VoiceCallReport'][_0x8db2('0x4a')](_0x3d44de)[_0x8db2('0x24')](handleEntityNotFound(_0x2f86b1,null))[_0x8db2('0x24')](respondWithResult(_0x2f86b1,null))[_0x8db2('0x44')](handleError(_0x2f86b1,null));};exports['create']=function(_0x4ffd9d,_0x11c224){return db[_0x8db2('0x2b')][_0x8db2('0x4b')](_0x4ffd9d['body'],{})['then'](respondWithResult(_0x11c224,0xc9))['catch'](handleError(_0x11c224,null));};exports[_0x8db2('0x4c')]=function(_0x368c37,_0x55c7dd){return db[_0x8db2('0x2b')][_0x8db2('0x4a')]({'where':{'id':_0x368c37[_0x8db2('0x46')]['id']}})[_0x8db2('0x24')](handleEntityNotFound(_0x55c7dd,null))['then'](removeEntity(_0x55c7dd,null))['catch'](handleError(_0x55c7dd,null));};exports[_0x8db2('0x4d')]=function(_0x18c6ef,_0x2908e4){return db[_0x8db2('0x2b')][_0x8db2('0x4d')]()[_0x8db2('0x24')](respondWithResult(_0x2908e4,null))[_0x8db2('0x44')](handleError(_0x2908e4,null));};exports[_0x8db2('0x23')]=function(_0x4187d6,_0x426ae0){if(_0x4187d6[_0x8db2('0x4e')][_0x8db2('0x4f')]){delete _0x4187d6[_0x8db2('0x4e')][_0x8db2('0x4f')];}return db[_0x8db2('0x2b')]['find']({'where':{'uniqueid':_0x4187d6[_0x8db2('0x46')]['id'],'UserId':{'$or':[null,_0x4187d6[_0x8db2('0x50')]['id']]}}})['then'](handleEntityNotFound(_0x426ae0,null))[_0x8db2('0x24')](saveUpdates(_0x4187d6[_0x8db2('0x4e')],null))[_0x8db2('0x24')](respondWithResult(_0x426ae0,null))['catch'](handleError(_0x426ae0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc893=['lodash','api','moment','bluebird','request-promise','path','../../config/environment','./voiceCallReport.attributes','exports','define','VoiceCallReport','report_call'];(function(_0x3ff085,_0x27c92e){var _0x2b68c3=function(_0x37811e){while(--_0x37811e){_0x3ff085['push'](_0x3ff085['shift']());}};_0x2b68c3(++_0x27c92e);}(_0xc893,0x1d4));var _0x3c89=function(_0x2a3e17,_0x1d0ee5){_0x2a3e17=_0x2a3e17-0x0;var _0x3b7043=_0xc893[_0x2a3e17];return _0x3b7043;};'use strict';var _=require(_0x3c89('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x3c89('0x1'));var moment=require(_0x3c89('0x2'));var BPromise=require(_0x3c89('0x3'));var rp=require(_0x3c89('0x4'));var fs=require('fs');var path=require(_0x3c89('0x5'));var rimraf=require('rimraf');var config=require(_0x3c89('0x6'));var attributes=require(_0x3c89('0x7'));module[_0x3c89('0x8')]=function(_0x48115c,_0x3117f4){return _0x48115c[_0x3c89('0x9')](_0x3c89('0xa'),attributes,{'tableName':_0x3c89('0xb'),'paranoid':![],'indexes':[{'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5cba=['util','../../config/logger','bluebird','request-promise','path','rimraf','../../config/environment','./voiceCallReport.attributes','define','report_call','lodash'];(function(_0x29c675,_0x4a9fb3){var _0x43a359=function(_0x52aa19){while(--_0x52aa19){_0x29c675['push'](_0x29c675['shift']());}};_0x43a359(++_0x4a9fb3);}(_0x5cba,0xd0));var _0xa5cb=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x5cba[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xa5cb('0x0'));var util=require(_0xa5cb('0x1'));var logger=require(_0xa5cb('0x2'))('api');var moment=require('moment');var BPromise=require(_0xa5cb('0x3'));var rp=require(_0xa5cb('0x4'));var fs=require('fs');var path=require(_0xa5cb('0x5'));var rimraf=require(_0xa5cb('0x6'));var config=require(_0xa5cb('0x7'));var attributes=require(_0xa5cb('0x8'));module['exports']=function(_0x44fe0a,_0x3f076c){return _0x44fe0a[_0xa5cb('0x9')]('VoiceCallReport',attributes,{'tableName':_0xa5cb('0xa'),'paranoid':![],'indexes':[{'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5dc8=['bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','VoiceCallReport,\x20%s,\x20%s','request\x20sent','debug','VoiceCallReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','VoiceCallReport','findAll','options','where','include','map','model','attributes','GetVoiceCallReport','CreateVoiceCallReport','create','raw','then','UpdateVoiceCallReport','update','body','lodash','util','moment'];(function(_0x37abf4,_0x3b94a7){var _0x235d22=function(_0x504784){while(--_0x504784){_0x37abf4['push'](_0x37abf4['shift']());}};_0x235d22(++_0x3b94a7);}(_0x5dc8,0x1aa));var _0x85dc=function(_0xd2e2ab,_0x2440cf){_0xd2e2ab=_0xd2e2ab-0x0;var _0x1703a2=_0x5dc8[_0xd2e2ab];return _0x1703a2;};'use strict';var _=require(_0x85dc('0x0'));var util=require(_0x85dc('0x1'));var moment=require(_0x85dc('0x2'));var BPromise=require(_0x85dc('0x3'));var rs=require(_0x85dc('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x85dc('0x5'));var logger=require(_0x85dc('0x6'))(_0x85dc('0x7'));var config=require(_0x85dc('0x8'));var jayson=require(_0x85dc('0x9'));var client=jayson[_0x85dc('0xa')][_0x85dc('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x54e594,_0x4e9fad,_0x3bc0ab){return new BPromise(function(_0x37c6c9,_0x4025f3){return client[_0x85dc('0xc')](_0x54e594,_0x3bc0ab)['then'](function(_0x350aa2){logger[_0x85dc('0xd')](_0x85dc('0xe'),_0x4e9fad,_0x85dc('0xf'));logger[_0x85dc('0x10')](_0x85dc('0x11'),_0x4e9fad,'request\x20sent',JSON[_0x85dc('0x12')](_0x350aa2));if(_0x350aa2['error']){if(_0x350aa2[_0x85dc('0x13')]['code']===0x1f4){logger['error'](_0x85dc('0xe'),_0x4e9fad,_0x350aa2[_0x85dc('0x13')]['message']);return _0x4025f3(_0x350aa2[_0x85dc('0x13')][_0x85dc('0x14')]);}logger[_0x85dc('0x13')](_0x85dc('0xe'),_0x4e9fad,_0x350aa2['error'][_0x85dc('0x14')]);return _0x37c6c9(_0x350aa2[_0x85dc('0x13')][_0x85dc('0x14')]);}else{logger[_0x85dc('0xd')](_0x85dc('0xe'),_0x4e9fad,'request\x20sent');_0x37c6c9(_0x350aa2[_0x85dc('0x15')][_0x85dc('0x14')]);}})[_0x85dc('0x16')](function(_0x4c94e0){logger[_0x85dc('0x13')](_0x85dc('0xe'),_0x4e9fad,_0x4c94e0);_0x4025f3(_0x4c94e0);});});}exports['GetVoiceCallReport']=function(_0x5d3494){var _0x518173=this;return new Promise(function(_0xc9d0c1,_0x3664d2){return db[_0x85dc('0x17')][_0x85dc('0x18')]({'raw':_0x5d3494['options']?_0x5d3494[_0x85dc('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x5d3494[_0x85dc('0x19')]?_0x5d3494[_0x85dc('0x19')][_0x85dc('0x1a')]||null:null,'attributes':_0x5d3494['options']?_0x5d3494[_0x85dc('0x19')]['attributes']||null:null,'limit':_0x5d3494[_0x85dc('0x19')]?_0x5d3494[_0x85dc('0x19')]['limit']||null:null,'include':_0x5d3494['options']?_0x5d3494[_0x85dc('0x19')][_0x85dc('0x1b')]?_[_0x85dc('0x1c')](_0x5d3494[_0x85dc('0x19')][_0x85dc('0x1b')],function(_0x383d6b){return{'model':db[_0x383d6b[_0x85dc('0x1d')]],'as':_0x383d6b['as'],'attributes':_0x383d6b[_0x85dc('0x1e')],'include':_0x383d6b[_0x85dc('0x1b')]?_[_0x85dc('0x1c')](_0x383d6b['include'],function(_0x185631){return{'model':db[_0x185631[_0x85dc('0x1d')]],'as':_0x185631['as'],'attributes':_0x185631[_0x85dc('0x1e')],'include':_0x185631[_0x85dc('0x1b')]?_[_0x85dc('0x1c')](_0x185631[_0x85dc('0x1b')],function(_0x5ca910){return{'model':db[_0x5ca910[_0x85dc('0x1d')]],'as':_0x5ca910['as'],'attributes':_0x5ca910['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x2db47f){logger[_0x85dc('0xd')](_0x85dc('0x1f'),_0x5d3494);logger[_0x85dc('0x10')](_0x85dc('0x1f'),_0x5d3494,JSON[_0x85dc('0x12')](_0x2db47f));_0xc9d0c1(_0x2db47f);})[_0x85dc('0x16')](function(_0x487474){logger[_0x85dc('0x13')](_0x85dc('0x1f'),_0x487474[_0x85dc('0x14')],_0x5d3494);_0x3664d2(_0x518173[_0x85dc('0x13')](0x1f4,_0x487474[_0x85dc('0x14')]));});});};exports[_0x85dc('0x20')]=function(_0x4e8e06){var _0x52eaa6=this;return new Promise(function(_0x1f4169,_0x39e8ec){return db[_0x85dc('0x17')][_0x85dc('0x21')](_0x4e8e06['body'],{'raw':_0x4e8e06['options']?_0x4e8e06[_0x85dc('0x19')][_0x85dc('0x22')]===undefined?!![]:![]:!![]})[_0x85dc('0x23')](function(_0x38dcb2){logger['info']('CreateVoiceCallReport',_0x4e8e06);logger[_0x85dc('0x10')]('CreateVoiceCallReport',_0x4e8e06,JSON[_0x85dc('0x12')](_0x38dcb2));_0x1f4169(_0x38dcb2);})[_0x85dc('0x16')](function(_0x107241){logger[_0x85dc('0x13')](_0x85dc('0x20'),_0x107241[_0x85dc('0x14')],_0x4e8e06);_0x39e8ec(_0x52eaa6['error'](0x1f4,_0x107241['message']));});});};exports[_0x85dc('0x24')]=function(_0x2c3936){var _0x5720e3=this;return new Promise(function(_0x56de8a,_0x497a00){return db[_0x85dc('0x17')][_0x85dc('0x25')](_0x2c3936[_0x85dc('0x26')],{'raw':_0x2c3936[_0x85dc('0x19')]?_0x2c3936[_0x85dc('0x19')][_0x85dc('0x22')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2c3936[_0x85dc('0x19')]?_0x2c3936['options'][_0x85dc('0x1a')]||null:null,'attributes':_0x2c3936[_0x85dc('0x19')]?_0x2c3936[_0x85dc('0x19')]['attributes']||null:null,'limit':_0x2c3936['options']?_0x2c3936[_0x85dc('0x19')]['limit']||null:null})[_0x85dc('0x23')](function(_0x25b32f){logger['info']('UpdateVoiceCallReport',_0x2c3936);logger['debug'](_0x85dc('0x24'),_0x2c3936,JSON[_0x85dc('0x12')](_0x25b32f));_0x56de8a(_0x25b32f);})['catch'](function(_0x71341a){logger[_0x85dc('0x13')](_0x85dc('0x24'),_0x71341a[_0x85dc('0x14')],_0x2c3936);_0x497a00(_0x5720e3[_0x85dc('0x13')](0x1f4,_0x71341a[_0x85dc('0x14')]));});});};
\ No newline at end of file
+var _0x6c9b=['lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','request','then','info','request\x20sent','debug','VoiceCallReport,\x20%s,\x20%s,\x20%s','error','code','message','VoiceCallReport,\x20%s,\x20%s','result','GetVoiceCallReport','VoiceCallReport','findAll','options','raw','where','attributes','limit','map','include','model','stringify','catch','create','CreateVoiceCallReport','UpdateVoiceCallReport','update','body'];(function(_0x2e43ab,_0x457bfc){var _0x386b75=function(_0xdf5b63){while(--_0xdf5b63){_0x2e43ab['push'](_0x2e43ab['shift']());}};_0x386b75(++_0x457bfc);}(_0x6c9b,0x111));var _0xb6c9=function(_0x40937d,_0xee78bc){_0x40937d=_0x40937d-0x0;var _0x297f23=_0x6c9b[_0x40937d];return _0x297f23;};'use strict';var _=require(_0xb6c9('0x0'));var util=require(_0xb6c9('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xb6c9('0x2'));var fs=require('fs');var Redis=require(_0xb6c9('0x3'));var db=require(_0xb6c9('0x4'))['db'];var utils=require(_0xb6c9('0x5'));var logger=require(_0xb6c9('0x6'))(_0xb6c9('0x7'));var config=require(_0xb6c9('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0xb6c9('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3259c0,_0x3d004b,_0xefc90a){return new BPromise(function(_0x3d083b,_0x239cbc){return client[_0xb6c9('0xa')](_0x3259c0,_0xefc90a)[_0xb6c9('0xb')](function(_0x1cac0b){logger[_0xb6c9('0xc')]('VoiceCallReport,\x20%s,\x20%s',_0x3d004b,_0xb6c9('0xd'));logger[_0xb6c9('0xe')](_0xb6c9('0xf'),_0x3d004b,_0xb6c9('0xd'),JSON['stringify'](_0x1cac0b));if(_0x1cac0b[_0xb6c9('0x10')]){if(_0x1cac0b['error'][_0xb6c9('0x11')]===0x1f4){logger[_0xb6c9('0x10')]('VoiceCallReport,\x20%s,\x20%s',_0x3d004b,_0x1cac0b[_0xb6c9('0x10')][_0xb6c9('0x12')]);return _0x239cbc(_0x1cac0b[_0xb6c9('0x10')]['message']);}logger['error']('VoiceCallReport,\x20%s,\x20%s',_0x3d004b,_0x1cac0b[_0xb6c9('0x10')][_0xb6c9('0x12')]);return _0x3d083b(_0x1cac0b['error'][_0xb6c9('0x12')]);}else{logger[_0xb6c9('0xc')](_0xb6c9('0x13'),_0x3d004b,_0xb6c9('0xd'));_0x3d083b(_0x1cac0b[_0xb6c9('0x14')][_0xb6c9('0x12')]);}})['catch'](function(_0x310a8e){logger[_0xb6c9('0x10')](_0xb6c9('0x13'),_0x3d004b,_0x310a8e);_0x239cbc(_0x310a8e);});});}exports[_0xb6c9('0x15')]=function(_0x1647d8){var _0x392602=this;return new Promise(function(_0x4cad47,_0x23a5d5){return db[_0xb6c9('0x16')][_0xb6c9('0x17')]({'raw':_0x1647d8['options']?_0x1647d8[_0xb6c9('0x18')][_0xb6c9('0x19')]===undefined?!![]:![]:!![],'where':_0x1647d8[_0xb6c9('0x18')]?_0x1647d8[_0xb6c9('0x18')][_0xb6c9('0x1a')]||null:null,'attributes':_0x1647d8[_0xb6c9('0x18')]?_0x1647d8[_0xb6c9('0x18')][_0xb6c9('0x1b')]||null:null,'limit':_0x1647d8[_0xb6c9('0x18')]?_0x1647d8['options'][_0xb6c9('0x1c')]||null:null,'include':_0x1647d8[_0xb6c9('0x18')]?_0x1647d8['options']['include']?_[_0xb6c9('0x1d')](_0x1647d8['options'][_0xb6c9('0x1e')],function(_0x390a40){return{'model':db[_0x390a40[_0xb6c9('0x1f')]],'as':_0x390a40['as'],'attributes':_0x390a40[_0xb6c9('0x1b')],'include':_0x390a40[_0xb6c9('0x1e')]?_[_0xb6c9('0x1d')](_0x390a40[_0xb6c9('0x1e')],function(_0x3ad917){return{'model':db[_0x3ad917[_0xb6c9('0x1f')]],'as':_0x3ad917['as'],'attributes':_0x3ad917[_0xb6c9('0x1b')],'include':_0x3ad917[_0xb6c9('0x1e')]?_[_0xb6c9('0x1d')](_0x3ad917[_0xb6c9('0x1e')],function(_0x35839f){return{'model':db[_0x35839f['model']],'as':_0x35839f['as'],'attributes':_0x35839f[_0xb6c9('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x31f723){logger[_0xb6c9('0xc')](_0xb6c9('0x15'),_0x1647d8);logger['debug'](_0xb6c9('0x15'),_0x1647d8,JSON[_0xb6c9('0x20')](_0x31f723));_0x4cad47(_0x31f723);})[_0xb6c9('0x21')](function(_0x4c0b53){logger['error']('GetVoiceCallReport',_0x4c0b53[_0xb6c9('0x12')],_0x1647d8);_0x23a5d5(_0x392602[_0xb6c9('0x10')](0x1f4,_0x4c0b53[_0xb6c9('0x12')]));});});};exports['CreateVoiceCallReport']=function(_0x14cc6a){var _0x4bb336=this;return new Promise(function(_0x5281ce,_0x5c09ca){return db[_0xb6c9('0x16')][_0xb6c9('0x22')](_0x14cc6a['body'],{'raw':_0x14cc6a[_0xb6c9('0x18')]?_0x14cc6a[_0xb6c9('0x18')][_0xb6c9('0x19')]===undefined?!![]:![]:!![]})[_0xb6c9('0xb')](function(_0x4f1a87){logger['info'](_0xb6c9('0x23'),_0x14cc6a);logger[_0xb6c9('0xe')](_0xb6c9('0x23'),_0x14cc6a,JSON['stringify'](_0x4f1a87));_0x5281ce(_0x4f1a87);})[_0xb6c9('0x21')](function(_0x58b502){logger[_0xb6c9('0x10')](_0xb6c9('0x23'),_0x58b502[_0xb6c9('0x12')],_0x14cc6a);_0x5c09ca(_0x4bb336['error'](0x1f4,_0x58b502['message']));});});};exports[_0xb6c9('0x24')]=function(_0x3662f0){var _0x3b5156=this;return new Promise(function(_0x40ce81,_0x1b820e){return db[_0xb6c9('0x16')][_0xb6c9('0x25')](_0x3662f0[_0xb6c9('0x26')],{'raw':_0x3662f0[_0xb6c9('0x18')]?_0x3662f0[_0xb6c9('0x18')][_0xb6c9('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3662f0[_0xb6c9('0x18')]?_0x3662f0[_0xb6c9('0x18')][_0xb6c9('0x1a')]||null:null,'attributes':_0x3662f0[_0xb6c9('0x18')]?_0x3662f0[_0xb6c9('0x18')][_0xb6c9('0x1b')]||null:null,'limit':_0x3662f0[_0xb6c9('0x18')]?_0x3662f0['options']['limit']||null:null})[_0xb6c9('0xb')](function(_0x37bf80){logger[_0xb6c9('0xc')]('UpdateVoiceCallReport',_0x3662f0);logger[_0xb6c9('0xe')]('UpdateVoiceCallReport',_0x3662f0,JSON[_0xb6c9('0x20')](_0x37bf80));_0x40ce81(_0x37bf80);})[_0xb6c9('0x21')](function(_0x4f6c8e){logger[_0xb6c9('0x10')](_0xb6c9('0x24'),_0x4f6c8e[_0xb6c9('0x12')],_0x3662f0);_0x1b820e(_0x3b5156[_0xb6c9('0x10')](0x1f4,_0x4f6c8e[_0xb6c9('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe7e2=['index','/:id','show','post','create','delete','exports','multer','util','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','./voiceChanSpy.controller','isAuthenticated'];(function(_0x26ca86,_0x57581a){var _0x13a203=function(_0x365ad9){while(--_0x365ad9){_0x26ca86['push'](_0x26ca86['shift']());}};_0x13a203(++_0x57581a);}(_0xe7e2,0x1e7));var _0x2e7e=function(_0x4e9b74,_0x54d2b6){_0x4e9b74=_0x4e9b74-0x0;var _0x41e038=_0xe7e2[_0x4e9b74];return _0x41e038;};'use strict';var multer=require(_0x2e7e('0x0'));var util=require(_0x2e7e('0x1'));var path=require('path');var timeout=require(_0x2e7e('0x2'));var express=require(_0x2e7e('0x3'));var router=express['Router']();var fs_extra=require(_0x2e7e('0x4'));var auth=require(_0x2e7e('0x5'));var interaction=require(_0x2e7e('0x6'));var config=require('../../config/environment');var controller=require(_0x2e7e('0x7'));router['get']('/',auth[_0x2e7e('0x8')](),controller[_0x2e7e('0x9')]);router['get'](_0x2e7e('0xa'),auth[_0x2e7e('0x8')](),controller[_0x2e7e('0xb')]);router[_0x2e7e('0xc')]('/',auth[_0x2e7e('0x8')](),controller[_0x2e7e('0xd')]);router['put'](_0x2e7e('0xa'),auth[_0x2e7e('0x8')](),controller['update']);router[_0x2e7e('0xe')](_0x2e7e('0xa'),auth[_0x2e7e('0x8')](),controller['destroy']);module[_0x2e7e('0xf')]=router;
\ No newline at end of file
+var _0xcd7c=['post','create','put','delete','destroy','exports','connect-timeout','Router','../../components/auth/service','../../config/environment','./voiceChanSpy.controller','get','isAuthenticated','index','/:id','show'];(function(_0x24bd02,_0x3259ea){var _0x1cb630=function(_0x5cdef4){while(--_0x5cdef4){_0x24bd02['push'](_0x24bd02['shift']());}};_0x1cb630(++_0x3259ea);}(_0xcd7c,0xd6));var _0xccd7=function(_0x57ba2f,_0x242161){_0x57ba2f=_0x57ba2f-0x0;var _0x1d60a4=_0xcd7c[_0x57ba2f];return _0x1d60a4;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0xccd7('0x0'));var express=require('express');var router=express[_0xccd7('0x1')]();var fs_extra=require('fs-extra');var auth=require(_0xccd7('0x2'));var interaction=require('../../components/interaction/service');var config=require(_0xccd7('0x3'));var controller=require(_0xccd7('0x4'));router[_0xccd7('0x5')]('/',auth[_0xccd7('0x6')](),controller[_0xccd7('0x7')]);router[_0xccd7('0x5')](_0xccd7('0x8'),auth[_0xccd7('0x6')](),controller[_0xccd7('0x9')]);router[_0xccd7('0xa')]('/',auth[_0xccd7('0x6')](),controller[_0xccd7('0xb')]);router[_0xccd7('0xc')]('/:id',auth[_0xccd7('0x6')](),controller['update']);router[_0xccd7('0xd')](_0xccd7('0x8'),auth[_0xccd7('0x6')](),controller[_0xccd7('0xe')]);module[_0xccd7('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9302=['name','join','getDataValue','options','split','BOOLEAN','sequelize','exports','STRING'];(function(_0x3fa15f,_0x1d6c49){var _0x3b6027=function(_0x10a88a){while(--_0x10a88a){_0x3fa15f['push'](_0x3fa15f['shift']());}};_0x3b6027(++_0x1d6c49);}(_0x9302,0x126));var _0x2930=function(_0x1fd491,_0x2f35ce){_0x1fd491=_0x1fd491-0x0;var _0x52c1ad=_0x9302[_0x1fd491];return _0x52c1ad;};'use strict';var Sequelize=require(_0x2930('0x0'));module[_0x2930('0x1')]={'name':{'type':Sequelize[_0x2930('0x2')]},'prefix':{'type':Sequelize[_0x2930('0x2')],'unique':_0x2930('0x3'),'allowNull':![]},'options':{'type':Sequelize['STRING'],'set':function(_0x5eeae){this['setDataValue']('options',_0x5eeae?_0x5eeae[_0x2930('0x4')](''):[]);},'get':function(){return this[_0x2930('0x5')](_0x2930('0x6'))?this[_0x2930('0x5')]('options')[_0x2930('0x7')](''):[];}},'auth':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'password':{'type':Sequelize[_0x2930('0x2')]},'record':{'type':Sequelize[_0x2930('0x8')],'defaultValue':![]},'recordingFormat':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x2930('0x2')]}};
\ No newline at end of file
+var _0x45ac=['sequelize','exports','STRING','name','setDataValue','join','getDataValue','options'];(function(_0x276cfd,_0x2e2bb0){var _0x43e876=function(_0xc64982){while(--_0xc64982){_0x276cfd['push'](_0x276cfd['shift']());}};_0x43e876(++_0x2e2bb0);}(_0x45ac,0xc0));var _0xc45a=function(_0x132ea3,_0x40b0a3){_0x132ea3=_0x132ea3-0x0;var _0x4400bf=_0x45ac[_0x132ea3];return _0x4400bf;};'use strict';var Sequelize=require(_0xc45a('0x0'));module[_0xc45a('0x1')]={'name':{'type':Sequelize[_0xc45a('0x2')]},'prefix':{'type':Sequelize[_0xc45a('0x2')],'unique':_0xc45a('0x3'),'allowNull':![]},'options':{'type':Sequelize[_0xc45a('0x2')],'set':function(_0x354fc9){this[_0xc45a('0x4')]('options',_0x354fc9?_0x354fc9[_0xc45a('0x5')](''):[]);},'get':function(){return this[_0xc45a('0x6')](_0xc45a('0x7'))?this[_0xc45a('0x6')]('options')['split'](''):[];}},'auth':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'password':{'type':Sequelize[_0xc45a('0x2')]},'record':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'recordingFormat':{'type':Sequelize[_0xc45a('0x2')]},'description':{'type':Sequelize[_0xc45a('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc91b=['VoiceChanSpy','rawAttributes','fieldName','key','model','filters','intersection','query','attributes','fields','nolimit','sort','where','pick','filter','merge','map','type','VIRTUAL','includeAll','include','rows','catch','keys','length','find','create','body','role','user','ChanSpies','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','index'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xc91b,0x16f));var _0xbc91=function(_0x1c6a6b,_0x3cfb74){_0x1c6a6b=_0x1c6a6b-0x0;var _0xfa293c=_0xc91b[_0x1c6a6b];return _0xfa293c;};'use strict';var emlformat=require(_0xbc91('0x0'));var rimraf=require(_0xbc91('0x1'));var zipdir=require(_0xbc91('0x2'));var jsonpatch=require(_0xbc91('0x3'));var rp=require(_0xbc91('0x4'));var moment=require(_0xbc91('0x5'));var BPromise=require(_0xbc91('0x6'));var Mustache=require(_0xbc91('0x7'));var util=require('util');var path=require(_0xbc91('0x8'));var sox=require(_0xbc91('0x9'));var csv=require('to-csv');var ejs=require(_0xbc91('0xa'));var fs=require('fs');var fs_extra=require(_0xbc91('0xb'));var _=require('lodash');var squel=require(_0xbc91('0xc'));var crypto=require(_0xbc91('0xd'));var jsforce=require(_0xbc91('0xe'));var deskjs=require(_0xbc91('0xf'));var toCsv=require(_0xbc91('0x10'));var querystring=require(_0xbc91('0x11'));var Papa=require(_0xbc91('0x12'));var Redis=require('ioredis');var authService=require(_0xbc91('0x13'));var qs=require(_0xbc91('0x14'));var as=require(_0xbc91('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xbc91('0x16'));var utils=require(_0xbc91('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xbc91('0x18'))['db'];function respondWithStatusCode(_0x5211a2,_0x4a7e33){_0x4a7e33=_0x4a7e33||0xcc;return function(_0x235bef){if(_0x235bef){return _0x5211a2[_0xbc91('0x19')](_0x4a7e33);}return _0x5211a2[_0xbc91('0x1a')](_0x4a7e33)[_0xbc91('0x1b')]();};}function respondWithResult(_0x4d035b,_0x5021da){_0x5021da=_0x5021da||0xc8;return function(_0x26e91a){if(_0x26e91a){return _0x4d035b[_0xbc91('0x1a')](_0x5021da)['json'](_0x26e91a);}};}function respondWithFilteredResult(_0x5bf355,_0x32d4d4){return function(_0x196ff2){if(_0x196ff2){var _0x10284e=typeof _0x32d4d4[_0xbc91('0x1c')]===_0xbc91('0x1d')&&typeof _0x32d4d4[_0xbc91('0x1e')]===_0xbc91('0x1d');var _0x297f4f=_0x196ff2['count'];var _0x60911a=_0x10284e?0x0:_0x32d4d4[_0xbc91('0x1c')];var _0x181d48=_0x10284e?_0x196ff2[_0xbc91('0x1f')]:_0x32d4d4[_0xbc91('0x1c')]+_0x32d4d4[_0xbc91('0x1e')];var _0xcdc6ce;if(_0x181d48>=_0x297f4f){_0x181d48=_0x297f4f;_0xcdc6ce=0xc8;}else{_0xcdc6ce=0xce;}_0x5bf355['status'](_0xcdc6ce);return _0x5bf355[_0xbc91('0x20')](_0xbc91('0x21'),_0x60911a+'-'+_0x181d48+'/'+_0x297f4f)[_0xbc91('0x22')](_0x196ff2);}return null;};}function patchUpdates(_0x558c32){return function(_0x53e0ce){try{jsonpatch[_0xbc91('0x23')](_0x53e0ce,_0x558c32,!![]);}catch(_0x42a8df){return BPromise[_0xbc91('0x24')](_0x42a8df);}return _0x53e0ce[_0xbc91('0x25')]();};}function saveUpdates(_0x50d295,_0x521196){return function(_0x2ac3a4){if(_0x2ac3a4){return _0x2ac3a4[_0xbc91('0x26')](_0x50d295)[_0xbc91('0x27')](function(_0x473a21){return _0x473a21;});}return null;};}function removeEntity(_0x33c576,_0x11752){return function(_0x571fb0){if(_0x571fb0){return _0x571fb0[_0xbc91('0x28')]()[_0xbc91('0x27')](function(){var _0x5a051b=_0x571fb0[_0xbc91('0x29')]({'plain':!![]});var _0x9c9948='ChanSpies';return db[_0xbc91('0x2a')][_0xbc91('0x28')]({'where':{'type':_0x9c9948,'resourceId':_0x5a051b['id']}})['then'](function(){return _0x571fb0;});})[_0xbc91('0x27')](function(){_0x33c576['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4d7bb3,_0x3cd56c){return function(_0x235ed7){if(!_0x235ed7){_0x4d7bb3['sendStatus'](0x194);}return _0x235ed7;};}function handleError(_0x52a260,_0x5e2162){_0x5e2162=_0x5e2162||0x1f4;return function(_0x310704){logger[_0xbc91('0x2b')](_0x310704[_0xbc91('0x2c')]);if(_0x310704[_0xbc91('0x2d')]){delete _0x310704[_0xbc91('0x2d')];}_0x52a260[_0xbc91('0x1a')](_0x5e2162)[_0xbc91('0x2e')](_0x310704);};}exports[_0xbc91('0x2f')]=function(_0x118d61,_0xef80db){var _0x2c163e={},_0x5e21bc={},_0x1754ec={'count':0x0,'rows':[]};var _0x1ddf3d=_['map'](db[_0xbc91('0x30')][_0xbc91('0x31')],function(_0x371f4b){return{'name':_0x371f4b[_0xbc91('0x32')],'type':_0x371f4b['type'][_0xbc91('0x33')]};});_0x5e21bc[_0xbc91('0x34')]=_['map'](_0x1ddf3d,_0xbc91('0x2d'));_0x5e21bc['query']=_['keys'](_0x118d61['query']);_0x5e21bc[_0xbc91('0x35')]=_[_0xbc91('0x36')](_0x5e21bc['model'],_0x5e21bc[_0xbc91('0x37')]);_0x2c163e[_0xbc91('0x38')]=_['intersection'](_0x5e21bc[_0xbc91('0x34')],qs[_0xbc91('0x39')](_0x118d61[_0xbc91('0x37')][_0xbc91('0x39')]));_0x2c163e[_0xbc91('0x38')]=_0x2c163e[_0xbc91('0x38')]['length']?_0x2c163e['attributes']:_0x5e21bc['model'];if(!_0x118d61[_0xbc91('0x37')]['hasOwnProperty'](_0xbc91('0x3a'))){_0x2c163e[_0xbc91('0x1e')]=qs[_0xbc91('0x1e')](_0x118d61[_0xbc91('0x37')][_0xbc91('0x1e')]);_0x2c163e[_0xbc91('0x1c')]=qs[_0xbc91('0x1c')](_0x118d61[_0xbc91('0x37')]['offset']);}_0x2c163e['order']=qs[_0xbc91('0x3b')](_0x118d61['query']['sort']);_0x2c163e[_0xbc91('0x3c')]=qs[_0xbc91('0x35')](_[_0xbc91('0x3d')](_0x118d61['query'],_0x5e21bc[_0xbc91('0x35')]),_0x1ddf3d);if(_0x118d61[_0xbc91('0x37')][_0xbc91('0x3e')]){_0x2c163e['where']=_[_0xbc91('0x3f')](_0x2c163e[_0xbc91('0x3c')],{'$or':_[_0xbc91('0x40')](_0x1ddf3d,function(_0x29c97f){if(_0x29c97f[_0xbc91('0x41')]!==_0xbc91('0x42')){var _0x2354a5={};_0x2354a5[_0x29c97f[_0xbc91('0x2d')]]={'$like':'%'+_0x118d61[_0xbc91('0x37')][_0xbc91('0x3e')]+'%'};return _0x2354a5;}})});}_0x2c163e=_[_0xbc91('0x3f')]({},_0x2c163e,_0x118d61['options']);var _0xd8fefc={'where':_0x2c163e[_0xbc91('0x3c')]};return db[_0xbc91('0x30')][_0xbc91('0x1f')](_0xd8fefc)[_0xbc91('0x27')](function(_0x115fad){_0x1754ec[_0xbc91('0x1f')]=_0x115fad;if(_0x118d61['query'][_0xbc91('0x43')]){_0x2c163e[_0xbc91('0x44')]=[{'all':!![]}];}return db['VoiceChanSpy']['findAll'](_0x2c163e);})['then'](function(_0x386a2b){_0x1754ec[_0xbc91('0x45')]=_0x386a2b;return _0x1754ec;})[_0xbc91('0x27')](respondWithFilteredResult(_0xef80db,_0x2c163e))[_0xbc91('0x46')](handleError(_0xef80db,null));};exports['show']=function(_0x159ef5,_0x480013){var _0x589ce7={'raw':![],'where':{'id':_0x159ef5['params']['id']}},_0x1d273f={};_0x1d273f[_0xbc91('0x34')]=_[_0xbc91('0x47')](db['VoiceChanSpy'][_0xbc91('0x31')]);_0x1d273f[_0xbc91('0x37')]=_['keys'](_0x159ef5[_0xbc91('0x37')]);_0x1d273f[_0xbc91('0x35')]=_[_0xbc91('0x36')](_0x1d273f[_0xbc91('0x34')],_0x1d273f[_0xbc91('0x37')]);_0x589ce7[_0xbc91('0x38')]=_['intersection'](_0x1d273f['model'],qs[_0xbc91('0x39')](_0x159ef5['query'][_0xbc91('0x39')]));_0x589ce7['attributes']=_0x589ce7[_0xbc91('0x38')][_0xbc91('0x48')]?_0x589ce7['attributes']:_0x1d273f['model'];if(_0x159ef5[_0xbc91('0x37')]['includeAll']){_0x589ce7[_0xbc91('0x44')]=[{'all':!![]}];}_0x589ce7=_[_0xbc91('0x3f')]({},_0x589ce7,_0x159ef5['options']);return db[_0xbc91('0x30')][_0xbc91('0x49')](_0x589ce7)['then'](handleEntityNotFound(_0x480013,null))[_0xbc91('0x27')](respondWithResult(_0x480013,null))[_0xbc91('0x46')](handleError(_0x480013,null));};exports['create']=function(_0x85d35f,_0x44ff40){return db[_0xbc91('0x30')][_0xbc91('0x4a')](_0x85d35f[_0xbc91('0x4b')],{})[_0xbc91('0x27')](function(_0x16ad3d){var _0x294a22=_0x85d35f['user'][_0xbc91('0x29')]({'plain':!![]});if(!_0x294a22)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x294a22[_0xbc91('0x4c')]===_0xbc91('0x4d')){var _0x28a561=_0x16ad3d[_0xbc91('0x29')]({'plain':!![]});var _0x379d7a=_0xbc91('0x4e');return db['UserProfileSection'][_0xbc91('0x49')]({'where':{'name':_0x379d7a,'userProfileId':_0x294a22[_0xbc91('0x4f')]},'raw':!![]})[_0xbc91('0x27')](function(_0x1e5e83){if(_0x1e5e83&&_0x1e5e83[_0xbc91('0x50')]===0x0){return db[_0xbc91('0x2a')][_0xbc91('0x4a')]({'name':_0x28a561['name'],'resourceId':_0x28a561['id'],'type':_0x1e5e83['name'],'sectionId':_0x1e5e83['id']},{})[_0xbc91('0x27')](function(){return _0x16ad3d;});}else{return _0x16ad3d;}})[_0xbc91('0x46')](function(_0x331924){logger[_0xbc91('0x2b')](_0xbc91('0x51'),_0x331924);throw _0x331924;});}return _0x16ad3d;})[_0xbc91('0x27')](respondWithResult(_0x44ff40,0xc9))[_0xbc91('0x46')](handleError(_0x44ff40,null));};exports[_0xbc91('0x26')]=function(_0xabcbb1,_0x5d0211){if(_0xabcbb1[_0xbc91('0x4b')]['id']){delete _0xabcbb1[_0xbc91('0x4b')]['id'];}return db[_0xbc91('0x30')]['find']({'where':{'id':_0xabcbb1[_0xbc91('0x52')]['id']}})[_0xbc91('0x27')](handleEntityNotFound(_0x5d0211,null))[_0xbc91('0x27')](saveUpdates(_0xabcbb1[_0xbc91('0x4b')],null))[_0xbc91('0x27')](respondWithResult(_0x5d0211,null))[_0xbc91('0x46')](handleError(_0x5d0211,null));};exports['destroy']=function(_0x574f43,_0x49b84f){return db[_0xbc91('0x30')]['find']({'where':{'id':_0x574f43[_0xbc91('0x52')]['id']}})[_0xbc91('0x27')](handleEntityNotFound(_0x49b84f,null))[_0xbc91('0x27')](removeEntity(_0x49b84f,null))[_0xbc91('0x46')](handleError(_0x49b84f,null));};
\ No newline at end of file
+var _0xd353=['then','get','UserProfileResource','error','stack','name','send','index','map','VoiceChanSpy','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','filters','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','ChanSpies','UserProfileSection','autoAssociation','destroy','eml-format','rimraf','fast-json-patch','request-promise','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','save','update'];(function(_0x5756f8,_0x22b6d5){var _0x3bb749=function(_0x332204){while(--_0x332204){_0x5756f8['push'](_0x5756f8['shift']());}};_0x3bb749(++_0x22b6d5);}(_0xd353,0x7e));var _0x3d35=function(_0x402ba7,_0x34af6c){_0x402ba7=_0x402ba7-0x0;var _0x330c44=_0xd353[_0x402ba7];return _0x330c44;};'use strict';var emlformat=require(_0x3d35('0x0'));var rimraf=require(_0x3d35('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3d35('0x2'));var rp=require(_0x3d35('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x3d35('0x4'));var util=require('util');var path=require(_0x3d35('0x5'));var sox=require(_0x3d35('0x6'));var csv=require(_0x3d35('0x7'));var ejs=require(_0x3d35('0x8'));var fs=require('fs');var fs_extra=require(_0x3d35('0x9'));var _=require(_0x3d35('0xa'));var squel=require(_0x3d35('0xb'));var crypto=require('crypto');var jsforce=require(_0x3d35('0xc'));var deskjs=require(_0x3d35('0xd'));var toCsv=require(_0x3d35('0x7'));var querystring=require(_0x3d35('0xe'));var Papa=require(_0x3d35('0xf'));var Redis=require(_0x3d35('0x10'));var authService=require(_0x3d35('0x11'));var qs=require(_0x3d35('0x12'));var as=require(_0x3d35('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x3d35('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5aafa1,_0x289a28){_0x289a28=_0x289a28||0xcc;return function(_0x567e9a){if(_0x567e9a){return _0x5aafa1[_0x3d35('0x15')](_0x289a28);}return _0x5aafa1[_0x3d35('0x16')](_0x289a28)[_0x3d35('0x17')]();};}function respondWithResult(_0x24cce9,_0x548c84){_0x548c84=_0x548c84||0xc8;return function(_0x46b4e8){if(_0x46b4e8){return _0x24cce9[_0x3d35('0x16')](_0x548c84)['json'](_0x46b4e8);}};}function respondWithFilteredResult(_0x3037f1,_0x1ec3db){return function(_0x5c59a0){if(_0x5c59a0){var _0x2c5e9a=typeof _0x1ec3db[_0x3d35('0x18')]===_0x3d35('0x19')&&typeof _0x1ec3db[_0x3d35('0x1a')]===_0x3d35('0x19');var _0x12b4ac=_0x5c59a0['count'];var _0x4685ce=_0x2c5e9a?0x0:_0x1ec3db[_0x3d35('0x18')];var _0x206cd3=_0x2c5e9a?_0x5c59a0[_0x3d35('0x1b')]:_0x1ec3db['offset']+_0x1ec3db['limit'];var _0x3daf7e;if(_0x206cd3>=_0x12b4ac){_0x206cd3=_0x12b4ac;_0x3daf7e=0xc8;}else{_0x3daf7e=0xce;}_0x3037f1['status'](_0x3daf7e);return _0x3037f1['set'](_0x3d35('0x1c'),_0x4685ce+'-'+_0x206cd3+'/'+_0x12b4ac)[_0x3d35('0x1d')](_0x5c59a0);}return null;};}function patchUpdates(_0x3dcdd5){return function(_0x314df6){try{jsonpatch['apply'](_0x314df6,_0x3dcdd5,!![]);}catch(_0x2d7bda){return BPromise['reject'](_0x2d7bda);}return _0x314df6[_0x3d35('0x1e')]();};}function saveUpdates(_0x34f516,_0x446cd8){return function(_0x3f5a61){if(_0x3f5a61){return _0x3f5a61[_0x3d35('0x1f')](_0x34f516)[_0x3d35('0x20')](function(_0x13eb1d){return _0x13eb1d;});}return null;};}function removeEntity(_0x2e62a7,_0xe8fcaa){return function(_0x53945c){if(_0x53945c){return _0x53945c['destroy']()['then'](function(){var _0x34b833=_0x53945c[_0x3d35('0x21')]({'plain':!![]});var _0xa9d142='ChanSpies';return db[_0x3d35('0x22')]['destroy']({'where':{'type':_0xa9d142,'resourceId':_0x34b833['id']}})['then'](function(){return _0x53945c;});})['then'](function(){_0x2e62a7['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x477be9,_0x1fbf77){return function(_0x4fb07f){if(!_0x4fb07f){_0x477be9['sendStatus'](0x194);}return _0x4fb07f;};}function handleError(_0x5720f8,_0x3b4b6d){_0x3b4b6d=_0x3b4b6d||0x1f4;return function(_0x190799){logger[_0x3d35('0x23')](_0x190799[_0x3d35('0x24')]);if(_0x190799[_0x3d35('0x25')]){delete _0x190799['name'];}_0x5720f8[_0x3d35('0x16')](_0x3b4b6d)[_0x3d35('0x26')](_0x190799);};}exports[_0x3d35('0x27')]=function(_0x4f3ded,_0x12d74c){var _0x11c30b={},_0x34e33f={},_0x576ffc={'count':0x0,'rows':[]};var _0x5d952d=_[_0x3d35('0x28')](db[_0x3d35('0x29')][_0x3d35('0x2a')],function(_0xe4685f){return{'name':_0xe4685f[_0x3d35('0x2b')],'type':_0xe4685f[_0x3d35('0x2c')][_0x3d35('0x2d')]};});_0x34e33f[_0x3d35('0x2e')]=_[_0x3d35('0x28')](_0x5d952d,'name');_0x34e33f[_0x3d35('0x2f')]=_['keys'](_0x4f3ded['query']);_0x34e33f['filters']=_[_0x3d35('0x30')](_0x34e33f[_0x3d35('0x2e')],_0x34e33f[_0x3d35('0x2f')]);_0x11c30b[_0x3d35('0x31')]=_[_0x3d35('0x30')](_0x34e33f['model'],qs[_0x3d35('0x32')](_0x4f3ded['query'][_0x3d35('0x32')]));_0x11c30b[_0x3d35('0x31')]=_0x11c30b[_0x3d35('0x31')][_0x3d35('0x33')]?_0x11c30b[_0x3d35('0x31')]:_0x34e33f[_0x3d35('0x2e')];if(!_0x4f3ded[_0x3d35('0x2f')][_0x3d35('0x34')](_0x3d35('0x35'))){_0x11c30b[_0x3d35('0x1a')]=qs[_0x3d35('0x1a')](_0x4f3ded[_0x3d35('0x2f')][_0x3d35('0x1a')]);_0x11c30b['offset']=qs[_0x3d35('0x18')](_0x4f3ded['query'][_0x3d35('0x18')]);}_0x11c30b[_0x3d35('0x36')]=qs['sort'](_0x4f3ded[_0x3d35('0x2f')]['sort']);_0x11c30b[_0x3d35('0x37')]=qs['filters'](_[_0x3d35('0x38')](_0x4f3ded[_0x3d35('0x2f')],_0x34e33f['filters']),_0x5d952d);if(_0x4f3ded['query'][_0x3d35('0x39')]){_0x11c30b[_0x3d35('0x37')]=_[_0x3d35('0x3a')](_0x11c30b['where'],{'$or':_[_0x3d35('0x28')](_0x5d952d,function(_0x439e1f){if(_0x439e1f['type']!==_0x3d35('0x3b')){var _0x269b57={};_0x269b57[_0x439e1f[_0x3d35('0x25')]]={'$like':'%'+_0x4f3ded['query'][_0x3d35('0x39')]+'%'};return _0x269b57;}})});}_0x11c30b=_[_0x3d35('0x3a')]({},_0x11c30b,_0x4f3ded[_0x3d35('0x3c')]);var _0x2995ed={'where':_0x11c30b[_0x3d35('0x37')]};return db[_0x3d35('0x29')]['count'](_0x2995ed)[_0x3d35('0x20')](function(_0x5cd93e){_0x576ffc[_0x3d35('0x1b')]=_0x5cd93e;if(_0x4f3ded[_0x3d35('0x2f')][_0x3d35('0x3d')]){_0x11c30b[_0x3d35('0x3e')]=[{'all':!![]}];}return db[_0x3d35('0x29')][_0x3d35('0x3f')](_0x11c30b);})[_0x3d35('0x20')](function(_0x1d52b4){_0x576ffc[_0x3d35('0x40')]=_0x1d52b4;return _0x576ffc;})[_0x3d35('0x20')](respondWithFilteredResult(_0x12d74c,_0x11c30b))[_0x3d35('0x41')](handleError(_0x12d74c,null));};exports[_0x3d35('0x42')]=function(_0x185157,_0xf6e6b1){var _0x55a67c={'raw':![],'where':{'id':_0x185157[_0x3d35('0x43')]['id']}},_0x1e3146={};_0x1e3146[_0x3d35('0x2e')]=_['keys'](db[_0x3d35('0x29')]['rawAttributes']);_0x1e3146[_0x3d35('0x2f')]=_[_0x3d35('0x44')](_0x185157['query']);_0x1e3146[_0x3d35('0x45')]=_[_0x3d35('0x30')](_0x1e3146['model'],_0x1e3146[_0x3d35('0x2f')]);_0x55a67c[_0x3d35('0x31')]=_[_0x3d35('0x30')](_0x1e3146['model'],qs[_0x3d35('0x32')](_0x185157[_0x3d35('0x2f')][_0x3d35('0x32')]));_0x55a67c[_0x3d35('0x31')]=_0x55a67c[_0x3d35('0x31')][_0x3d35('0x33')]?_0x55a67c[_0x3d35('0x31')]:_0x1e3146['model'];if(_0x185157[_0x3d35('0x2f')]['includeAll']){_0x55a67c[_0x3d35('0x3e')]=[{'all':!![]}];}_0x55a67c=_['merge']({},_0x55a67c,_0x185157[_0x3d35('0x3c')]);return db[_0x3d35('0x29')][_0x3d35('0x46')](_0x55a67c)[_0x3d35('0x20')](handleEntityNotFound(_0xf6e6b1,null))[_0x3d35('0x20')](respondWithResult(_0xf6e6b1,null))[_0x3d35('0x41')](handleError(_0xf6e6b1,null));};exports[_0x3d35('0x47')]=function(_0x25fa20,_0x1da2d9){return db[_0x3d35('0x29')][_0x3d35('0x47')](_0x25fa20[_0x3d35('0x48')],{})[_0x3d35('0x20')](function(_0x4fbf98){var _0x117b00=_0x25fa20['user'][_0x3d35('0x21')]({'plain':!![]});if(!_0x117b00)throw new Error(_0x3d35('0x49'));if(_0x117b00[_0x3d35('0x4a')]==='user'){var _0x41cf94=_0x4fbf98[_0x3d35('0x21')]({'plain':!![]});var _0x5de3b0=_0x3d35('0x4b');return db[_0x3d35('0x4c')]['find']({'where':{'name':_0x5de3b0,'userProfileId':_0x117b00['userProfileId']},'raw':!![]})[_0x3d35('0x20')](function(_0x5f55dc){if(_0x5f55dc&&_0x5f55dc[_0x3d35('0x4d')]===0x0){return db['UserProfileResource'][_0x3d35('0x47')]({'name':_0x41cf94[_0x3d35('0x25')],'resourceId':_0x41cf94['id'],'type':_0x5f55dc[_0x3d35('0x25')],'sectionId':_0x5f55dc['id']},{})['then'](function(){return _0x4fbf98;});}else{return _0x4fbf98;}})[_0x3d35('0x41')](function(_0x1b9739){logger[_0x3d35('0x23')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1b9739);throw _0x1b9739;});}return _0x4fbf98;})[_0x3d35('0x20')](respondWithResult(_0x1da2d9,0xc9))[_0x3d35('0x41')](handleError(_0x1da2d9,null));};exports[_0x3d35('0x1f')]=function(_0x50875f,_0x2bb40c){if(_0x50875f[_0x3d35('0x48')]['id']){delete _0x50875f[_0x3d35('0x48')]['id'];}return db['VoiceChanSpy'][_0x3d35('0x46')]({'where':{'id':_0x50875f['params']['id']}})[_0x3d35('0x20')](handleEntityNotFound(_0x2bb40c,null))[_0x3d35('0x20')](saveUpdates(_0x50875f['body'],null))[_0x3d35('0x20')](respondWithResult(_0x2bb40c,null))[_0x3d35('0x41')](handleError(_0x2bb40c,null));};exports[_0x3d35('0x4e')]=function(_0x1d1264,_0x123017){return db[_0x3d35('0x29')]['find']({'where':{'id':_0x1d1264[_0x3d35('0x43')]['id']}})[_0x3d35('0x20')](handleEntityNotFound(_0x123017,null))[_0x3d35('0x20')](removeEntity(_0x123017,null))[_0x3d35('0x41')](handleError(_0x123017,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ba1=['internal','User','findAll','agent','then','catch','exports','models','define','voice_chanspy','VoiceExtension','bulkCreate','destroy','bluebird','./voiceChanSpy.attributes','context','from-sip','format','%s%s','prefix','system','push','merge','Set','CDR(type)=%s','chanspy','record','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','password','name','options','join','StopMixMonitor','length','concat'];(function(_0x31c20e,_0x4f000f){var _0xc0b61a=function(_0x5f45ba){while(--_0x5f45ba){_0x31c20e['push'](_0x31c20e['shift']());}};_0xc0b61a(++_0x4f000f);}(_0x3ba1,0x117));var _0x13ba=function(_0x13a45f,_0x533e58){_0x13a45f=_0x13a45f-0x0;var _0x145ef3=_0x3ba1[_0x13a45f];return _0x145ef3;};'use strict';var _=require('lodash');var util=require('util');var BPromise=require(_0x13ba('0x0'));var attributes=require(_0x13ba('0x1'));var getUserApplications=function(_0x389fef,_0x1521f4,_0x279b49){var _0x4f8664=0x1;var _0x1dfa05=[];var _0x616e14={'context':_0x1521f4[_0x13ba('0x2')]||_0x13ba('0x3'),'exten':util[_0x13ba('0x4')](_0x13ba('0x5'),_0x389fef[_0x13ba('0x6')],_0x279b49),'type':_0x13ba('0x7'),'isApp':![],'ChanSpyId':_0x389fef['id'],'UserId':_0x1521f4['id']};_0x1dfa05[_0x13ba('0x8')](_[_0x13ba('0x9')]({'app':_0x13ba('0xa'),'appdata':util['format'](_0x13ba('0xb'),_0x13ba('0xc')),'priority':_0x4f8664++},_0x616e14));if(_0x389fef[_0x13ba('0xd')]){_0x1dfa05[_0x13ba('0x8')](_[_0x13ba('0x9')]({'app':'MixMonitor','appdata':util['format'](_0x13ba('0xe'),_0x389fef[_0x13ba('0xf')]),'priority':_0x4f8664++},_0x616e14));}if(_0x389fef[_0x13ba('0x10')]){_0x1dfa05['push'](_[_0x13ba('0x9')]({'app':_0x13ba('0x11'),'appdata':_0x389fef[_0x13ba('0x12')],'priority':_0x4f8664++},_0x616e14));}_0x1dfa05[_0x13ba('0x8')](_['merge']({'app':'ChanSpy','appdata':util[_0x13ba('0x4')]('SIP/%s,%s',_0x1521f4[_0x13ba('0x13')],_0x389fef['options']?_0x389fef[_0x13ba('0x14')][_0x13ba('0x15')](''):''),'priority':_0x4f8664++},_0x616e14));if(_0x389fef[_0x13ba('0xd')]){_0x1dfa05[_0x13ba('0x8')](_['merge']({'app':_0x13ba('0x16'),'priority':_0x4f8664++},_0x616e14));}return _0x1dfa05;};var getChanSpyApplications=function(_0x7e322,_0x24e252){var _0x4622cb=[];for(var _0x496b77=0x0,_0x519336=0x1;_0x496b77<_0x24e252[_0x13ba('0x17')];_0x496b77++,_0x519336=0x1){_0x4622cb=_0x4622cb[_0x13ba('0x18')](getUserApplications(_0x7e322,_0x24e252[_0x496b77],_0x24e252[_0x496b77][_0x13ba('0x19')]));if(_0x24e252[_0x496b77][_0x13ba('0x19')]!=_0x24e252[_0x496b77][_0x13ba('0x13')]){_0x4622cb=_0x4622cb['concat'](getUserApplications(_0x7e322,_0x24e252[_0x496b77],_0x24e252[_0x496b77]['name']));}}return _0x4622cb;};var getChanSpyPromise=function(_0x2716ef,_0x5e9ee8){return new BPromise(function(_0x4f9c9c,_0x33535d){return _0x2716ef[_0x13ba('0x1a')][_0x13ba('0x1b')]({'attributes':['id',_0x13ba('0x13'),_0x13ba('0x19')],'where':{'role':_0x13ba('0x1c'),'chanspy':!![]},'raw':!![]})[_0x13ba('0x1d')](function(_0x1fe4ee){if(_0x1fe4ee){return _0x4f9c9c(getChanSpyApplications(_0x5e9ee8,_0x1fe4ee));}return _0x4f9c9c([]);})[_0x13ba('0x1e')](function(_0x20bd35){_0x33535d(_0x20bd35);});});};module[_0x13ba('0x1f')]=function(_0x2b6fbd,_0x3a3374){var _0x3288e6=_0x2b6fbd[_0x13ba('0x20')];return _0x2b6fbd[_0x13ba('0x21')]('VoiceChanSpy',attributes,{'tableName':_0x13ba('0x22'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x1897b1,_0x29b550,_0x4497f9){return getChanSpyPromise(_0x3288e6,_0x1897b1)[_0x13ba('0x1d')](function(_0x2ab2e3){if(_0x2ab2e3&&_0x2ab2e3[_0x13ba('0x17')]){return _0x3288e6['VoiceExtension']['bulkCreate'](_0x2ab2e3);}})['then'](function(){_0x4497f9();})[_0x13ba('0x1e')](function(_0x52b43e){_0x4497f9(_0x52b43e);});},'afterUpdate':function(_0x123aaa,_0x5102e7,_0x5991d7){return _0x3288e6[_0x13ba('0x23')]['destroy']({'where':{'ChanSpyId':_0x123aaa['id']}})[_0x13ba('0x1d')](function(){return getChanSpyPromise(_0x3288e6,_0x123aaa);})[_0x13ba('0x1d')](function(_0x5343a5){if(_0x5343a5&&_0x5343a5['length']){return _0x3288e6[_0x13ba('0x23')][_0x13ba('0x24')](_0x5343a5);}})[_0x13ba('0x1d')](function(){_0x5991d7();})['catch'](function(_0x3869a1){_0x5991d7(_0x3869a1);});},'afterDestroy':function(_0x1dcc76,_0x381e16,_0x4fcdac){return _0x3288e6[_0x13ba('0x23')][_0x13ba('0x25')]({'where':{'ChanSpyId':_0x1dcc76['id']}})[_0x13ba('0x1d')](function(){_0x4fcdac();})[_0x13ba('0x1e')](function(_0x3b6de2){_0x4fcdac(_0x3b6de2);});}}});};
\ No newline at end of file
+var _0x4740=['User','findAll','agent','then','catch','exports','models','VoiceChanSpy','voice_chanspy','length','VoiceExtension','destroy','bulkCreate','lodash','util','bluebird','./voiceChanSpy.attributes','context','from-sip','format','%s%s','prefix','system','merge','Set','CDR(type)=%s','chanspy','record','push','${UNIQUEID}.%s,a','recordingFormat','Authenticate','password','ChanSpy','SIP/%s,%s','name','options','join','StopMixMonitor','internal','concat'];(function(_0x99c3c7,_0x2098b9){var _0x361a13=function(_0x459d07){while(--_0x459d07){_0x99c3c7['push'](_0x99c3c7['shift']());}};_0x361a13(++_0x2098b9);}(_0x4740,0x1a7));var _0x0474=function(_0x5780f9,_0x75280b){_0x5780f9=_0x5780f9-0x0;var _0x1fb737=_0x4740[_0x5780f9];return _0x1fb737;};'use strict';var _=require(_0x0474('0x0'));var util=require(_0x0474('0x1'));var BPromise=require(_0x0474('0x2'));var attributes=require(_0x0474('0x3'));var getUserApplications=function(_0x3378e0,_0x43e8b5,_0xd89dd5){var _0x1ce4fa=0x1;var _0x1a6894=[];var _0x116f46={'context':_0x43e8b5[_0x0474('0x4')]||_0x0474('0x5'),'exten':util[_0x0474('0x6')](_0x0474('0x7'),_0x3378e0[_0x0474('0x8')],_0xd89dd5),'type':_0x0474('0x9'),'isApp':![],'ChanSpyId':_0x3378e0['id'],'UserId':_0x43e8b5['id']};_0x1a6894['push'](_[_0x0474('0xa')]({'app':_0x0474('0xb'),'appdata':util[_0x0474('0x6')](_0x0474('0xc'),_0x0474('0xd')),'priority':_0x1ce4fa++},_0x116f46));if(_0x3378e0[_0x0474('0xe')]){_0x1a6894[_0x0474('0xf')](_[_0x0474('0xa')]({'app':'MixMonitor','appdata':util[_0x0474('0x6')](_0x0474('0x10'),_0x3378e0[_0x0474('0x11')]),'priority':_0x1ce4fa++},_0x116f46));}if(_0x3378e0['auth']){_0x1a6894[_0x0474('0xf')](_['merge']({'app':_0x0474('0x12'),'appdata':_0x3378e0[_0x0474('0x13')],'priority':_0x1ce4fa++},_0x116f46));}_0x1a6894['push'](_[_0x0474('0xa')]({'app':_0x0474('0x14'),'appdata':util[_0x0474('0x6')](_0x0474('0x15'),_0x43e8b5[_0x0474('0x16')],_0x3378e0['options']?_0x3378e0[_0x0474('0x17')][_0x0474('0x18')](''):''),'priority':_0x1ce4fa++},_0x116f46));if(_0x3378e0[_0x0474('0xe')]){_0x1a6894['push'](_[_0x0474('0xa')]({'app':_0x0474('0x19'),'priority':_0x1ce4fa++},_0x116f46));}return _0x1a6894;};var getChanSpyApplications=function(_0x31970d,_0x7bb87c){var _0x225f66=[];for(var _0x27ca3c=0x0,_0x101caa=0x1;_0x27ca3c<_0x7bb87c['length'];_0x27ca3c++,_0x101caa=0x1){_0x225f66=_0x225f66['concat'](getUserApplications(_0x31970d,_0x7bb87c[_0x27ca3c],_0x7bb87c[_0x27ca3c][_0x0474('0x1a')]));if(_0x7bb87c[_0x27ca3c][_0x0474('0x1a')]!=_0x7bb87c[_0x27ca3c][_0x0474('0x16')]){_0x225f66=_0x225f66[_0x0474('0x1b')](getUserApplications(_0x31970d,_0x7bb87c[_0x27ca3c],_0x7bb87c[_0x27ca3c]['name']));}}return _0x225f66;};var getChanSpyPromise=function(_0x86e2b0,_0x2d3666){return new BPromise(function(_0x7e09af,_0x2e9e60){return _0x86e2b0[_0x0474('0x1c')][_0x0474('0x1d')]({'attributes':['id',_0x0474('0x16'),_0x0474('0x1a')],'where':{'role':_0x0474('0x1e'),'chanspy':!![]},'raw':!![]})[_0x0474('0x1f')](function(_0x2d56f1){if(_0x2d56f1){return _0x7e09af(getChanSpyApplications(_0x2d3666,_0x2d56f1));}return _0x7e09af([]);})[_0x0474('0x20')](function(_0x1343bf){_0x2e9e60(_0x1343bf);});});};module[_0x0474('0x21')]=function(_0x5b9eda,_0x3e7a42){var _0x546b49=_0x5b9eda[_0x0474('0x22')];return _0x5b9eda['define'](_0x0474('0x23'),attributes,{'tableName':_0x0474('0x24'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x5c1de1,_0x29716a,_0x4cb79e){return getChanSpyPromise(_0x546b49,_0x5c1de1)[_0x0474('0x1f')](function(_0x1a2e7b){if(_0x1a2e7b&&_0x1a2e7b[_0x0474('0x25')]){return _0x546b49['VoiceExtension']['bulkCreate'](_0x1a2e7b);}})['then'](function(){_0x4cb79e();})[_0x0474('0x20')](function(_0x1622fb){_0x4cb79e(_0x1622fb);});},'afterUpdate':function(_0x142a35,_0x29454e,_0x3727c4){return _0x546b49[_0x0474('0x26')][_0x0474('0x27')]({'where':{'ChanSpyId':_0x142a35['id']}})[_0x0474('0x1f')](function(){return getChanSpyPromise(_0x546b49,_0x142a35);})[_0x0474('0x1f')](function(_0x596792){if(_0x596792&&_0x596792[_0x0474('0x25')]){return _0x546b49[_0x0474('0x26')][_0x0474('0x28')](_0x596792);}})[_0x0474('0x1f')](function(){_0x3727c4();})[_0x0474('0x20')](function(_0x51fd11){_0x3727c4(_0x51fd11);});},'afterDestroy':function(_0x4c7b44,_0x52215b,_0x2ed3ff){return _0x546b49[_0x0474('0x26')]['destroy']({'where':{'ChanSpyId':_0x4c7b44['id']}})[_0x0474('0x1f')](function(){_0x2ed3ff();})['catch'](function(_0x3c18e5){_0x2ed3ff(_0x3c18e5);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9099=['../../config/environment','jayson/promise','client','http','info','request\x20sent','debug','VoiceChanSpy,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceChanSpy,\x20%s,\x20%s','message','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x43e97d,_0x56a06b){var _0x424cd9=function(_0x4f574b){while(--_0x4f574b){_0x43e97d['push'](_0x43e97d['shift']());}};_0x424cd9(++_0x56a06b);}(_0x9099,0x1ac));var _0x9909=function(_0x3d34da,_0x3abcc1){_0x3d34da=_0x3d34da-0x0;var _0xcf6af8=_0x9099[_0x3d34da];return _0xcf6af8;};'use strict';var _=require(_0x9909('0x0'));var util=require('util');var moment=require(_0x9909('0x1'));var BPromise=require(_0x9909('0x2'));var rs=require(_0x9909('0x3'));var fs=require('fs');var Redis=require(_0x9909('0x4'));var db=require(_0x9909('0x5'))['db'];var utils=require(_0x9909('0x6'));var logger=require(_0x9909('0x7'))(_0x9909('0x8'));var config=require(_0x9909('0x9'));var jayson=require(_0x9909('0xa'));var client=jayson[_0x9909('0xb')][_0x9909('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x3b7391,_0x3dc2dd,_0x54011f){return new BPromise(function(_0x6d755a,_0x5dcd39){return client['request'](_0x3b7391,_0x54011f)['then'](function(_0x5023b7){logger[_0x9909('0xd')]('VoiceChanSpy,\x20%s,\x20%s',_0x3dc2dd,_0x9909('0xe'));logger[_0x9909('0xf')](_0x9909('0x10'),_0x3dc2dd,'request\x20sent',JSON[_0x9909('0x11')](_0x5023b7));if(_0x5023b7['error']){if(_0x5023b7[_0x9909('0x12')][_0x9909('0x13')]===0x1f4){logger[_0x9909('0x12')](_0x9909('0x14'),_0x3dc2dd,_0x5023b7[_0x9909('0x12')][_0x9909('0x15')]);return _0x5dcd39(_0x5023b7[_0x9909('0x12')][_0x9909('0x15')]);}logger[_0x9909('0x12')](_0x9909('0x14'),_0x3dc2dd,_0x5023b7[_0x9909('0x12')][_0x9909('0x15')]);return _0x6d755a(_0x5023b7[_0x9909('0x12')]['message']);}else{logger[_0x9909('0xd')]('VoiceChanSpy,\x20%s,\x20%s',_0x3dc2dd,_0x9909('0xe'));_0x6d755a(_0x5023b7['result'][_0x9909('0x15')]);}})[_0x9909('0x16')](function(_0x245f0d){logger['error'](_0x9909('0x14'),_0x3dc2dd,_0x245f0d);_0x5dcd39(_0x245f0d);});});}
\ No newline at end of file
+var _0x2f68=['VoiceChanSpy,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','jayson/promise','client','request','then','info','VoiceChanSpy,\x20%s,\x20%s','debug'];(function(_0x7d4526,_0x1d82fb){var _0x1941cd=function(_0x2a8c22){while(--_0x2a8c22){_0x7d4526['push'](_0x7d4526['shift']());}};_0x1941cd(++_0x1d82fb);}(_0x2f68,0x9a));var _0x82f6=function(_0x49fda8,_0x1439b4){_0x49fda8=_0x49fda8-0x0;var _0x34d121=_0x2f68[_0x49fda8];return _0x34d121;};'use strict';var _=require('lodash');var util=require(_0x82f6('0x0'));var moment=require(_0x82f6('0x1'));var BPromise=require(_0x82f6('0x2'));var rs=require(_0x82f6('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x82f6('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x82f6('0x5'))(_0x82f6('0x6'));var config=require('../../config/environment');var jayson=require(_0x82f6('0x7'));var client=jayson[_0x82f6('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5a8089,_0x1bc0be,_0x5660bf){return new BPromise(function(_0x5daa3c,_0x864400){return client[_0x82f6('0x9')](_0x5a8089,_0x5660bf)[_0x82f6('0xa')](function(_0x5ee0e5){logger[_0x82f6('0xb')](_0x82f6('0xc'),_0x1bc0be,'request\x20sent');logger[_0x82f6('0xd')](_0x82f6('0xe'),_0x1bc0be,_0x82f6('0xf'),JSON[_0x82f6('0x10')](_0x5ee0e5));if(_0x5ee0e5[_0x82f6('0x11')]){if(_0x5ee0e5[_0x82f6('0x11')]['code']===0x1f4){logger[_0x82f6('0x11')](_0x82f6('0xc'),_0x1bc0be,_0x5ee0e5['error'][_0x82f6('0x12')]);return _0x864400(_0x5ee0e5[_0x82f6('0x11')][_0x82f6('0x12')]);}logger[_0x82f6('0x11')](_0x82f6('0xc'),_0x1bc0be,_0x5ee0e5[_0x82f6('0x11')][_0x82f6('0x12')]);return _0x5daa3c(_0x5ee0e5[_0x82f6('0x11')][_0x82f6('0x12')]);}else{logger['info'](_0x82f6('0xc'),_0x1bc0be,'request\x20sent');_0x5daa3c(_0x5ee0e5[_0x82f6('0x13')][_0x82f6('0x12')]);}})[_0x82f6('0x14')](function(_0x1033d3){logger[_0x82f6('0x11')](_0x82f6('0xc'),_0x1bc0be,_0x1033d3);_0x864400(_0x1033d3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd9ce=['/:id','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceContext.controller','get','isAuthenticated','index','show','post','create'];(function(_0x2f6da1,_0x26a099){var _0x586721=function(_0x1db1b1){while(--_0x1db1b1){_0x2f6da1['push'](_0x2f6da1['shift']());}};_0x586721(++_0x26a099);}(_0xd9ce,0x1cf));var _0xed9c=function(_0x8f7825,_0xaa0ca0){_0x8f7825=_0x8f7825-0x0;var _0x29a7c9=_0xd9ce[_0x8f7825];return _0x29a7c9;};'use strict';var multer=require(_0xed9c('0x0'));var util=require(_0xed9c('0x1'));var path=require(_0xed9c('0x2'));var timeout=require(_0xed9c('0x3'));var express=require(_0xed9c('0x4'));var router=express[_0xed9c('0x5')]();var fs_extra=require(_0xed9c('0x6'));var auth=require(_0xed9c('0x7'));var interaction=require(_0xed9c('0x8'));var config=require(_0xed9c('0x9'));var controller=require(_0xed9c('0xa'));router[_0xed9c('0xb')]('/',auth[_0xed9c('0xc')](),controller[_0xed9c('0xd')]);router[_0xed9c('0xb')]('/:id',auth['isAuthenticated'](),controller[_0xed9c('0xe')]);router[_0xed9c('0xf')]('/',auth[_0xed9c('0xc')](),controller[_0xed9c('0x10')]);router['put'](_0xed9c('0x11'),auth[_0xed9c('0xc')](),controller['update']);router[_0xed9c('0x12')](_0xed9c('0x11'),auth[_0xed9c('0xc')](),controller[_0xed9c('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x6db7=['Router','fs-extra','../../config/environment','./voiceContext.controller','get','isAuthenticated','index','/:id','post','create','update','destroy','multer','util','path','connect-timeout','express'];(function(_0x583479,_0x1e27e0){var _0x4ce078=function(_0xc78cae){while(--_0xc78cae){_0x583479['push'](_0x583479['shift']());}};_0x4ce078(++_0x1e27e0);}(_0x6db7,0x14f));var _0x76db=function(_0x1a9b94,_0x4d763e){_0x1a9b94=_0x1a9b94-0x0;var _0x379102=_0x6db7[_0x1a9b94];return _0x379102;};'use strict';var multer=require(_0x76db('0x0'));var util=require(_0x76db('0x1'));var path=require(_0x76db('0x2'));var timeout=require(_0x76db('0x3'));var express=require(_0x76db('0x4'));var router=express[_0x76db('0x5')]();var fs_extra=require(_0x76db('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x76db('0x7'));var controller=require(_0x76db('0x8'));router[_0x76db('0x9')]('/',auth[_0x76db('0xa')](),controller[_0x76db('0xb')]);router[_0x76db('0x9')](_0x76db('0xc'),auth['isAuthenticated'](),controller['show']);router[_0x76db('0xd')]('/',auth[_0x76db('0xa')](),controller[_0x76db('0xe')]);router['put']('/:id',auth[_0x76db('0xa')](),controller[_0x76db('0xf')]);router['delete'](_0x76db('0xc'),auth['isAuthenticated'](),controller[_0x76db('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb9e1=['BOOLEAN','sequelize','exports','STRING','name'];(function(_0x2af303,_0x13de4d){var _0x363b73=function(_0x166b2e){while(--_0x166b2e){_0x2af303['push'](_0x2af303['shift']());}};_0x363b73(++_0x13de4d);}(_0xb9e1,0x9c));var _0x1b9e=function(_0x4904af,_0x4418bc){_0x4904af=_0x4904af-0x0;var _0x2a2f45=_0xb9e1[_0x4904af];return _0x2a2f45;};'use strict';var Sequelize=require(_0x1b9e('0x0'));module[_0x1b9e('0x1')]={'name':{'type':Sequelize[_0x1b9e('0x2')],'unique':_0x1b9e('0x3')},'description':{'type':Sequelize[_0x1b9e('0x2')],'allowNull':!![]},'defaultEntry':{'type':Sequelize[_0x1b9e('0x4')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x2d6b=['name','sequelize','exports','STRING'];(function(_0xab6781,_0x13e0c0){var _0x260d0e=function(_0x17e8c5){while(--_0x17e8c5){_0xab6781['push'](_0xab6781['shift']());}};_0x260d0e(++_0x13e0c0);}(_0x2d6b,0xe1));var _0xb2d6=function(_0x4b73a2,_0x40b5fe){_0x4b73a2=_0x4b73a2-0x0;var _0x383c66=_0x2d6b[_0x4b73a2];return _0x383c66;};'use strict';var Sequelize=require(_0xb2d6('0x0'));module[_0xb2d6('0x1')]={'name':{'type':Sequelize[_0xb2d6('0x2')],'unique':_0xb2d6('0x3')},'description':{'type':Sequelize[_0xb2d6('0x2')],'allowNull':!![]},'defaultEntry':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe818=['VoiceContext','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','findAll','show','params','find','create','readFileSync','join','server/files/templates/context.ejs','writeFileSync','Reload','chan_sip.so','user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','root','utf8','/etc/asterisk/extensions_xcally_contexts.conf','render','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','jayson/promise','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','offset','limit','undefined','count','set','Content-Range','reject','update','get','Contexts','UserProfileResource','destroy','sendStatus','stack','name','send','map'];(function(_0x203432,_0x2688e7){var _0x22c20f=function(_0x1c8f8b){while(--_0x1c8f8b){_0x203432['push'](_0x203432['shift']());}};_0x22c20f(++_0x2688e7);}(_0xe818,0x15c));var _0x8e81=function(_0x2d4fb5,_0x1d2b31){_0x2d4fb5=_0x2d4fb5-0x0;var _0x188c4e=_0xe818[_0x2d4fb5];return _0x188c4e;};'use strict';var emlformat=require(_0x8e81('0x0'));var rimraf=require(_0x8e81('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8e81('0x2'));var rp=require(_0x8e81('0x3'));var moment=require('moment');var BPromise=require(_0x8e81('0x4'));var Mustache=require(_0x8e81('0x5'));var util=require(_0x8e81('0x6'));var path=require('path');var sox=require(_0x8e81('0x7'));var csv=require('to-csv');var ejs=require(_0x8e81('0x8'));var fs=require('fs');var fs_extra=require(_0x8e81('0x9'));var _=require(_0x8e81('0xa'));var squel=require(_0x8e81('0xb'));var crypto=require(_0x8e81('0xc'));var jsforce=require(_0x8e81('0xd'));var deskjs=require(_0x8e81('0xe'));var toCsv=require('to-csv');var querystring=require(_0x8e81('0xf'));var Papa=require(_0x8e81('0x10'));var Redis=require(_0x8e81('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x8e81('0x12'));var as=require(_0x8e81('0x13'));var hardwareService=require(_0x8e81('0x14'));var logger=require('../../config/logger')(_0x8e81('0x15'));var utils=require('../../config/utils');var config=require(_0x8e81('0x16'));var licenseUtil=require(_0x8e81('0x17'));var db=require('../../mysqldb')['db'];var jayson=require(_0x8e81('0x18'));var client=jayson[_0x8e81('0x19')][_0x8e81('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x2e4451,_0x26fcc3,_0xac5806,_0x3c5a97){return new BPromise(function(_0x143ec0,_0x18d14){var _0xb9c8ec=_0x3c5a97||client;return _0xb9c8ec[_0x8e81('0x1b')](_0x2e4451,_0xac5806)[_0x8e81('0x1c')](function(_0x295841){logger[_0x8e81('0x1d')](_0x8e81('0x1e'),_0x26fcc3,_0x8e81('0x1f'));logger[_0x8e81('0x20')](_0x8e81('0x21'),_0x26fcc3,'request\x20sent',JSON[_0x8e81('0x22')](_0x295841));if(_0x295841['error']){if(_0x295841[_0x8e81('0x23')][_0x8e81('0x24')]===0x1f4){logger[_0x8e81('0x23')](_0x8e81('0x1e'),_0x26fcc3,_0x295841[_0x8e81('0x23')][_0x8e81('0x25')]);return _0x18d14(_0x295841[_0x8e81('0x23')][_0x8e81('0x25')]);}logger[_0x8e81('0x23')](_0x8e81('0x1e'),_0x26fcc3,_0x295841[_0x8e81('0x23')][_0x8e81('0x25')]);return _0x143ec0(_0x295841['error'][_0x8e81('0x25')]);}else{logger[_0x8e81('0x1d')](_0x8e81('0x1e'),_0x26fcc3,_0x8e81('0x1f'));_0x143ec0(_0x295841[_0x8e81('0x26')]['message']);}})[_0x8e81('0x27')](function(_0x33b2a6){logger[_0x8e81('0x23')](_0x8e81('0x1e'),_0x26fcc3,_0x33b2a6);_0x18d14(_0x33b2a6);});});}function respondWithStatusCode(_0x1e2e55,_0x2cc127){_0x2cc127=_0x2cc127||0xcc;return function(_0xdfcea6){if(_0xdfcea6){return _0x1e2e55['sendStatus'](_0x2cc127);}return _0x1e2e55[_0x8e81('0x28')](_0x2cc127)[_0x8e81('0x29')]();};}function respondWithResult(_0x40f415,_0x3d62c4){_0x3d62c4=_0x3d62c4||0xc8;return function(_0x5e6d3c){if(_0x5e6d3c){return _0x40f415[_0x8e81('0x28')](_0x3d62c4)[_0x8e81('0x2a')](_0x5e6d3c);}};}function respondWithFilteredResult(_0x3ab361,_0x48c5da){return function(_0x2af70f){if(_0x2af70f){var _0x446dcd=typeof _0x48c5da[_0x8e81('0x2b')]==='undefined'&&typeof _0x48c5da[_0x8e81('0x2c')]===_0x8e81('0x2d');var _0x59bb8b=_0x2af70f[_0x8e81('0x2e')];var _0x2ebab7=_0x446dcd?0x0:_0x48c5da['offset'];var _0x3e2d36=_0x446dcd?_0x2af70f[_0x8e81('0x2e')]:_0x48c5da[_0x8e81('0x2b')]+_0x48c5da[_0x8e81('0x2c')];var _0x38f5d8;if(_0x3e2d36>=_0x59bb8b){_0x3e2d36=_0x59bb8b;_0x38f5d8=0xc8;}else{_0x38f5d8=0xce;}_0x3ab361[_0x8e81('0x28')](_0x38f5d8);return _0x3ab361[_0x8e81('0x2f')](_0x8e81('0x30'),_0x2ebab7+'-'+_0x3e2d36+'/'+_0x59bb8b)[_0x8e81('0x2a')](_0x2af70f);}return null;};}function patchUpdates(_0x2516ea){return function(_0x4dc9b6){try{jsonpatch['apply'](_0x4dc9b6,_0x2516ea,!![]);}catch(_0x5c0801){return BPromise[_0x8e81('0x31')](_0x5c0801);}return _0x4dc9b6['save']();};}function saveUpdates(_0x2c8cd4,_0x41d648){return function(_0x1acf85){if(_0x1acf85){return _0x1acf85[_0x8e81('0x32')](_0x2c8cd4)[_0x8e81('0x1c')](function(_0x1d196e){return _0x1d196e;});}return null;};}function removeEntity(_0x1ab6d,_0x465547){return function(_0x35c18c){if(_0x35c18c){return _0x35c18c['destroy']()[_0x8e81('0x1c')](function(){var _0x164492=_0x35c18c[_0x8e81('0x33')]({'plain':!![]});var _0x123707=_0x8e81('0x34');return db[_0x8e81('0x35')][_0x8e81('0x36')]({'where':{'type':_0x123707,'resourceId':_0x164492['id']}})['then'](function(){return _0x35c18c;});})[_0x8e81('0x1c')](function(){_0x1ab6d['status'](0xcc)[_0x8e81('0x29')]();});}};}function handleEntityNotFound(_0x1f5c8f,_0x1afc75){return function(_0xe224bf){if(!_0xe224bf){_0x1f5c8f[_0x8e81('0x37')](0x194);}return _0xe224bf;};}function handleError(_0x3a4e40,_0x3e90e3){_0x3e90e3=_0x3e90e3||0x1f4;return function(_0x13e6ba){logger[_0x8e81('0x23')](_0x13e6ba[_0x8e81('0x38')]);if(_0x13e6ba['name']){delete _0x13e6ba[_0x8e81('0x39')];}_0x3a4e40['status'](_0x3e90e3)[_0x8e81('0x3a')](_0x13e6ba);};}exports['index']=function(_0x29f065,_0x1967e3){var _0x27ad8e={},_0x463b2a={},_0x18e310={'count':0x0,'rows':[]};var _0x595b87=_[_0x8e81('0x3b')](db[_0x8e81('0x3c')][_0x8e81('0x3d')],function(_0x27703d){return{'name':_0x27703d[_0x8e81('0x3e')],'type':_0x27703d[_0x8e81('0x3f')]['key']};});_0x463b2a[_0x8e81('0x40')]=_[_0x8e81('0x3b')](_0x595b87,_0x8e81('0x39'));_0x463b2a[_0x8e81('0x41')]=_[_0x8e81('0x42')](_0x29f065['query']);_0x463b2a[_0x8e81('0x43')]=_[_0x8e81('0x44')](_0x463b2a[_0x8e81('0x40')],_0x463b2a[_0x8e81('0x41')]);_0x27ad8e[_0x8e81('0x45')]=_['intersection'](_0x463b2a[_0x8e81('0x40')],qs[_0x8e81('0x46')](_0x29f065[_0x8e81('0x41')]['fields']));_0x27ad8e[_0x8e81('0x45')]=_0x27ad8e[_0x8e81('0x45')][_0x8e81('0x47')]?_0x27ad8e[_0x8e81('0x45')]:_0x463b2a[_0x8e81('0x40')];if(!_0x29f065[_0x8e81('0x41')][_0x8e81('0x48')](_0x8e81('0x49'))){_0x27ad8e['limit']=qs[_0x8e81('0x2c')](_0x29f065['query']['limit']);_0x27ad8e[_0x8e81('0x2b')]=qs[_0x8e81('0x2b')](_0x29f065[_0x8e81('0x41')]['offset']);}_0x27ad8e[_0x8e81('0x4a')]=qs[_0x8e81('0x4b')](_0x29f065['query']['sort']);_0x27ad8e[_0x8e81('0x4c')]=qs['filters'](_[_0x8e81('0x4d')](_0x29f065[_0x8e81('0x41')],_0x463b2a[_0x8e81('0x43')]),_0x595b87);if(_0x29f065[_0x8e81('0x41')][_0x8e81('0x4e')]){_0x27ad8e[_0x8e81('0x4c')]=_['merge'](_0x27ad8e[_0x8e81('0x4c')],{'$or':_['map'](_0x595b87,function(_0x443c26){if(_0x443c26['type']!==_0x8e81('0x4f')){var _0x51490e={};_0x51490e[_0x443c26[_0x8e81('0x39')]]={'$like':'%'+_0x29f065['query']['filter']+'%'};return _0x51490e;}})});}_0x27ad8e=_[_0x8e81('0x50')]({},_0x27ad8e,_0x29f065['options']);var _0x33e4c3={'where':_0x27ad8e[_0x8e81('0x4c')]};return db[_0x8e81('0x3c')][_0x8e81('0x2e')](_0x33e4c3)[_0x8e81('0x1c')](function(_0x58d691){_0x18e310[_0x8e81('0x2e')]=_0x58d691;if(_0x29f065[_0x8e81('0x41')][_0x8e81('0x51')]){_0x27ad8e[_0x8e81('0x52')]=[{'all':!![]}];}return db[_0x8e81('0x3c')][_0x8e81('0x53')](_0x27ad8e);})[_0x8e81('0x1c')](function(_0x36cfe){_0x18e310['rows']=_0x36cfe;return _0x18e310;})[_0x8e81('0x1c')](respondWithFilteredResult(_0x1967e3,_0x27ad8e))['catch'](handleError(_0x1967e3,null));};exports[_0x8e81('0x54')]=function(_0x2c82c6,_0x372222){var _0x3c5998={'raw':![],'where':{'id':_0x2c82c6[_0x8e81('0x55')]['id']}},_0x3fdbcf={};_0x3fdbcf[_0x8e81('0x40')]=_['keys'](db[_0x8e81('0x3c')]['rawAttributes']);_0x3fdbcf[_0x8e81('0x41')]=_[_0x8e81('0x42')](_0x2c82c6['query']);_0x3fdbcf[_0x8e81('0x43')]=_['intersection'](_0x3fdbcf[_0x8e81('0x40')],_0x3fdbcf[_0x8e81('0x41')]);_0x3c5998[_0x8e81('0x45')]=_[_0x8e81('0x44')](_0x3fdbcf[_0x8e81('0x40')],qs[_0x8e81('0x46')](_0x2c82c6[_0x8e81('0x41')][_0x8e81('0x46')]));_0x3c5998['attributes']=_0x3c5998[_0x8e81('0x45')][_0x8e81('0x47')]?_0x3c5998[_0x8e81('0x45')]:_0x3fdbcf[_0x8e81('0x40')];if(_0x2c82c6[_0x8e81('0x41')][_0x8e81('0x51')]){_0x3c5998[_0x8e81('0x52')]=[{'all':!![]}];}_0x3c5998=_[_0x8e81('0x50')]({},_0x3c5998,_0x2c82c6['options']);return db['VoiceContext'][_0x8e81('0x56')](_0x3c5998)['then'](handleEntityNotFound(_0x372222,null))[_0x8e81('0x1c')](respondWithResult(_0x372222,null))[_0x8e81('0x27')](handleError(_0x372222,null));};exports['create']=function(_0x282993,_0x59858f,_0x4d63d4){var _0x1ec7a0;return db[_0x8e81('0x3c')][_0x8e81('0x57')](_0x282993['body'],{'raw':!![]})['then'](function(_0x1d1b78){_0x1ec7a0=_0x1d1b78;return db['VoiceContext'][_0x8e81('0x53')]({'raw':!![]});})['then'](function(_0x23b50f){var _0x51b5b5=fs[_0x8e81('0x58')](path[_0x8e81('0x59')](config['root'],_0x8e81('0x5a')),'utf8');var _0x38a175=ejs['render'](_0x51b5b5,{'contexts':_0x23b50f||[]});fs[_0x8e81('0x5b')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x38a175);})[_0x8e81('0x1c')](function(){return respondWithRpcPromise(_0x8e81('0x5c'),_0x8e81('0x57'),{'module':_0x8e81('0x5d')});})[_0x8e81('0x1c')](function(){var _0x13d57d=_0x282993[_0x8e81('0x5e')][_0x8e81('0x33')]({'plain':!![]});if(!_0x13d57d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x13d57d['role']==='user'){var _0x98b3ba=_0x1ec7a0['get']({'plain':!![]});return db['UserProfileSection'][_0x8e81('0x56')]({'where':{'name':_0x8e81('0x34'),'userProfileId':_0x13d57d[_0x8e81('0x5f')]},'raw':!![]})[_0x8e81('0x1c')](function(_0x291a71){if(_0x291a71&&_0x291a71[_0x8e81('0x60')]===0x0){return db[_0x8e81('0x35')]['create']({'name':_0x98b3ba[_0x8e81('0x39')],'resourceId':_0x98b3ba['id'],'type':_0x291a71['name'],'sectionId':_0x291a71['id']},{})[_0x8e81('0x1c')](function(){return _0x1ec7a0;});}else{return _0x1ec7a0;}})['catch'](function(_0x35a22f){logger[_0x8e81('0x23')](_0x8e81('0x61'),_0x35a22f);throw _0x35a22f;});}return _0x1ec7a0;})[_0x8e81('0x1c')](respondWithResult(_0x59858f,0xc9))['catch'](handleError(_0x59858f,null));};exports[_0x8e81('0x32')]=function(_0x1bb5b3,_0x6bfe45,_0x2e3b87){var _0x26f623;return db[_0x8e81('0x3c')][_0x8e81('0x56')]({'where':{'id':_0x1bb5b3[_0x8e81('0x55')]['id']}})[_0x8e81('0x1c')](handleEntityNotFound(_0x6bfe45,null))['then'](saveUpdates(_0x1bb5b3['body'],null))[_0x8e81('0x1c')](function(_0x1955af){if(_0x1955af){_0x26f623=_0x1955af;return db['VoiceContext'][_0x8e81('0x53')]({'raw':!![]});}})[_0x8e81('0x1c')](function(_0x514918){var _0x28365b=fs[_0x8e81('0x58')](path[_0x8e81('0x59')](config[_0x8e81('0x62')],'server/files/templates/context.ejs'),_0x8e81('0x63'));var _0x15a44f=ejs['render'](_0x28365b,{'contexts':_0x514918||[]});fs[_0x8e81('0x5b')](_0x8e81('0x64'),_0x15a44f);})[_0x8e81('0x1c')](function(){return respondWithRpcPromise(_0x8e81('0x5c'),_0x8e81('0x32'),{'module':'chan_sip.so'});})['then'](function(){return _0x26f623;})['then'](respondWithResult(_0x6bfe45,null))[_0x8e81('0x27')](handleError(_0x6bfe45,null));};exports[_0x8e81('0x36')]=function(_0x539449,_0x4fe9c0,_0x6b2a64){var _0x4f50d3;return db['VoiceContext'][_0x8e81('0x56')]({'where':{'id':_0x539449['params']['id']}})[_0x8e81('0x1c')](handleEntityNotFound(_0x4fe9c0,null))['then'](removeEntity(_0x4fe9c0,null))[_0x8e81('0x1c')](function(){return db['VoiceContext']['findAll']({'raw':!![]});})[_0x8e81('0x1c')](function(_0x498014){var _0x7d33a4=fs[_0x8e81('0x58')](path[_0x8e81('0x59')](config[_0x8e81('0x62')],_0x8e81('0x5a')),_0x8e81('0x63'));var _0x4ea0e1=ejs[_0x8e81('0x65')](_0x7d33a4,{'contexts':_0x498014});fs[_0x8e81('0x5b')](_0x8e81('0x64'),_0x4ea0e1);return respondWithRpcPromise('Reload',_0x8e81('0x36'),{'module':_0x8e81('0x5d')});})[_0x8e81('0x27')](handleError(_0x4fe9c0,null));};
\ No newline at end of file
+var _0xe029=['length','hasOwnProperty','nolimit','order','sort','where','pick','filters','merge','filter','includeAll','include','findAll','rows','show','params','options','find','create','body','readFileSync','root','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','chan_sip.so','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','join','Reload','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','crypto','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../mysqldb','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','sendStatus','status','end','undefined','limit','offset','count','set','Content-Range','json','apply','reject','save','destroy','Contexts','UserProfileResource','stack','name','send','index','VoiceContext','rawAttributes','fieldName','type','key','model','map','keys','query','intersection','fields','attributes'];(function(_0x1305e3,_0x43a724){var _0x1068e9=function(_0x1bc555){while(--_0x1bc555){_0x1305e3['push'](_0x1305e3['shift']());}};_0x1068e9(++_0x43a724);}(_0xe029,0xfd));var _0x9e02=function(_0x621bee,_0x58f8c0){_0x621bee=_0x621bee-0x0;var _0x3076c8=_0xe029[_0x621bee];return _0x3076c8;};'use strict';var emlformat=require(_0x9e02('0x0'));var rimraf=require(_0x9e02('0x1'));var zipdir=require(_0x9e02('0x2'));var jsonpatch=require(_0x9e02('0x3'));var rp=require(_0x9e02('0x4'));var moment=require(_0x9e02('0x5'));var BPromise=require(_0x9e02('0x6'));var Mustache=require('mustache');var util=require(_0x9e02('0x7'));var path=require(_0x9e02('0x8'));var sox=require(_0x9e02('0x9'));var csv=require('to-csv');var ejs=require(_0x9e02('0xa'));var fs=require('fs');var fs_extra=require(_0x9e02('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x9e02('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x9e02('0xd'));var toCsv=require(_0x9e02('0xe'));var querystring=require(_0x9e02('0xf'));var Papa=require('papaparse');var Redis=require(_0x9e02('0x10'));var authService=require(_0x9e02('0x11'));var qs=require(_0x9e02('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9e02('0x13'));var logger=require(_0x9e02('0x14'))(_0x9e02('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x9e02('0x16'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x9e02('0x17')][_0x9e02('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x455053,_0x4c72ba,_0xd60ade,_0x195d1c){return new BPromise(function(_0x142611,_0x3a1e63){var _0x43b1ce=_0x195d1c||client;return _0x43b1ce[_0x9e02('0x19')](_0x455053,_0xd60ade)[_0x9e02('0x1a')](function(_0x25974e){logger[_0x9e02('0x1b')](_0x9e02('0x1c'),_0x4c72ba,_0x9e02('0x1d'));logger[_0x9e02('0x1e')](_0x9e02('0x1f'),_0x4c72ba,'request\x20sent',JSON[_0x9e02('0x20')](_0x25974e));if(_0x25974e[_0x9e02('0x21')]){if(_0x25974e[_0x9e02('0x21')]['code']===0x1f4){logger[_0x9e02('0x21')]('VoiceContext,\x20%s,\x20%s',_0x4c72ba,_0x25974e[_0x9e02('0x21')]['message']);return _0x3a1e63(_0x25974e[_0x9e02('0x21')][_0x9e02('0x22')]);}logger[_0x9e02('0x21')](_0x9e02('0x1c'),_0x4c72ba,_0x25974e['error'][_0x9e02('0x22')]);return _0x142611(_0x25974e[_0x9e02('0x21')][_0x9e02('0x22')]);}else{logger[_0x9e02('0x1b')](_0x9e02('0x1c'),_0x4c72ba,_0x9e02('0x1d'));_0x142611(_0x25974e['result'][_0x9e02('0x22')]);}})[_0x9e02('0x23')](function(_0x421fbc){logger[_0x9e02('0x21')](_0x9e02('0x1c'),_0x4c72ba,_0x421fbc);_0x3a1e63(_0x421fbc);});});}function respondWithStatusCode(_0x54a7f9,_0x584d64){_0x584d64=_0x584d64||0xcc;return function(_0x40d5f1){if(_0x40d5f1){return _0x54a7f9[_0x9e02('0x24')](_0x584d64);}return _0x54a7f9[_0x9e02('0x25')](_0x584d64)[_0x9e02('0x26')]();};}function respondWithResult(_0x41a756,_0x26785e){_0x26785e=_0x26785e||0xc8;return function(_0x566838){if(_0x566838){return _0x41a756[_0x9e02('0x25')](_0x26785e)['json'](_0x566838);}};}function respondWithFilteredResult(_0x173536,_0x19118b){return function(_0x4dcb82){if(_0x4dcb82){var _0x5d486e=typeof _0x19118b['offset']===_0x9e02('0x27')&&typeof _0x19118b[_0x9e02('0x28')]==='undefined';var _0x5e5052=_0x4dcb82['count'];var _0x4f06cb=_0x5d486e?0x0:_0x19118b[_0x9e02('0x29')];var _0xa42d91=_0x5d486e?_0x4dcb82[_0x9e02('0x2a')]:_0x19118b[_0x9e02('0x29')]+_0x19118b['limit'];var _0x5b7f0c;if(_0xa42d91>=_0x5e5052){_0xa42d91=_0x5e5052;_0x5b7f0c=0xc8;}else{_0x5b7f0c=0xce;}_0x173536[_0x9e02('0x25')](_0x5b7f0c);return _0x173536[_0x9e02('0x2b')](_0x9e02('0x2c'),_0x4f06cb+'-'+_0xa42d91+'/'+_0x5e5052)[_0x9e02('0x2d')](_0x4dcb82);}return null;};}function patchUpdates(_0x53d76e){return function(_0x62a1c8){try{jsonpatch[_0x9e02('0x2e')](_0x62a1c8,_0x53d76e,!![]);}catch(_0x37c127){return BPromise[_0x9e02('0x2f')](_0x37c127);}return _0x62a1c8[_0x9e02('0x30')]();};}function saveUpdates(_0x5471a5,_0x19755d){return function(_0x545826){if(_0x545826){return _0x545826['update'](_0x5471a5)[_0x9e02('0x1a')](function(_0x7e6abc){return _0x7e6abc;});}return null;};}function removeEntity(_0x504780,_0xe7ffdf){return function(_0x24828a){if(_0x24828a){return _0x24828a[_0x9e02('0x31')]()[_0x9e02('0x1a')](function(){var _0x4c957d=_0x24828a['get']({'plain':!![]});var _0x54a07f=_0x9e02('0x32');return db[_0x9e02('0x33')]['destroy']({'where':{'type':_0x54a07f,'resourceId':_0x4c957d['id']}})[_0x9e02('0x1a')](function(){return _0x24828a;});})[_0x9e02('0x1a')](function(){_0x504780[_0x9e02('0x25')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5d2901,_0x37903a){return function(_0x33d58f){if(!_0x33d58f){_0x5d2901[_0x9e02('0x24')](0x194);}return _0x33d58f;};}function handleError(_0x2ce56d,_0x2fa08e){_0x2fa08e=_0x2fa08e||0x1f4;return function(_0x24092b){logger[_0x9e02('0x21')](_0x24092b[_0x9e02('0x34')]);if(_0x24092b[_0x9e02('0x35')]){delete _0x24092b[_0x9e02('0x35')];}_0x2ce56d[_0x9e02('0x25')](_0x2fa08e)[_0x9e02('0x36')](_0x24092b);};}exports[_0x9e02('0x37')]=function(_0x595a2b,_0x4546ad){var _0x1d7eba={},_0x207530={},_0x4d32bf={'count':0x0,'rows':[]};var _0x3ff10d=_['map'](db[_0x9e02('0x38')][_0x9e02('0x39')],function(_0x231076){return{'name':_0x231076[_0x9e02('0x3a')],'type':_0x231076[_0x9e02('0x3b')][_0x9e02('0x3c')]};});_0x207530[_0x9e02('0x3d')]=_[_0x9e02('0x3e')](_0x3ff10d,_0x9e02('0x35'));_0x207530['query']=_[_0x9e02('0x3f')](_0x595a2b[_0x9e02('0x40')]);_0x207530['filters']=_['intersection'](_0x207530[_0x9e02('0x3d')],_0x207530['query']);_0x1d7eba['attributes']=_[_0x9e02('0x41')](_0x207530[_0x9e02('0x3d')],qs['fields'](_0x595a2b[_0x9e02('0x40')][_0x9e02('0x42')]));_0x1d7eba[_0x9e02('0x43')]=_0x1d7eba[_0x9e02('0x43')][_0x9e02('0x44')]?_0x1d7eba[_0x9e02('0x43')]:_0x207530[_0x9e02('0x3d')];if(!_0x595a2b[_0x9e02('0x40')][_0x9e02('0x45')](_0x9e02('0x46'))){_0x1d7eba['limit']=qs[_0x9e02('0x28')](_0x595a2b[_0x9e02('0x40')][_0x9e02('0x28')]);_0x1d7eba['offset']=qs[_0x9e02('0x29')](_0x595a2b[_0x9e02('0x40')][_0x9e02('0x29')]);}_0x1d7eba[_0x9e02('0x47')]=qs[_0x9e02('0x48')](_0x595a2b['query'][_0x9e02('0x48')]);_0x1d7eba[_0x9e02('0x49')]=qs['filters'](_[_0x9e02('0x4a')](_0x595a2b['query'],_0x207530[_0x9e02('0x4b')]),_0x3ff10d);if(_0x595a2b[_0x9e02('0x40')]['filter']){_0x1d7eba['where']=_[_0x9e02('0x4c')](_0x1d7eba['where'],{'$or':_[_0x9e02('0x3e')](_0x3ff10d,function(_0x2f4630){if(_0x2f4630[_0x9e02('0x3b')]!=='VIRTUAL'){var _0x19b8d1={};_0x19b8d1[_0x2f4630['name']]={'$like':'%'+_0x595a2b[_0x9e02('0x40')][_0x9e02('0x4d')]+'%'};return _0x19b8d1;}})});}_0x1d7eba=_['merge']({},_0x1d7eba,_0x595a2b['options']);var _0x38dfbb={'where':_0x1d7eba['where']};return db[_0x9e02('0x38')][_0x9e02('0x2a')](_0x38dfbb)['then'](function(_0x3399bb){_0x4d32bf[_0x9e02('0x2a')]=_0x3399bb;if(_0x595a2b['query'][_0x9e02('0x4e')]){_0x1d7eba[_0x9e02('0x4f')]=[{'all':!![]}];}return db['VoiceContext'][_0x9e02('0x50')](_0x1d7eba);})[_0x9e02('0x1a')](function(_0x4dc08d){_0x4d32bf[_0x9e02('0x51')]=_0x4dc08d;return _0x4d32bf;})[_0x9e02('0x1a')](respondWithFilteredResult(_0x4546ad,_0x1d7eba))[_0x9e02('0x23')](handleError(_0x4546ad,null));};exports[_0x9e02('0x52')]=function(_0x156bc3,_0x51665d){var _0x12836e={'raw':![],'where':{'id':_0x156bc3[_0x9e02('0x53')]['id']}},_0x2c1097={};_0x2c1097[_0x9e02('0x3d')]=_[_0x9e02('0x3f')](db[_0x9e02('0x38')]['rawAttributes']);_0x2c1097[_0x9e02('0x40')]=_[_0x9e02('0x3f')](_0x156bc3['query']);_0x2c1097['filters']=_['intersection'](_0x2c1097[_0x9e02('0x3d')],_0x2c1097[_0x9e02('0x40')]);_0x12836e[_0x9e02('0x43')]=_[_0x9e02('0x41')](_0x2c1097[_0x9e02('0x3d')],qs[_0x9e02('0x42')](_0x156bc3['query']['fields']));_0x12836e['attributes']=_0x12836e[_0x9e02('0x43')][_0x9e02('0x44')]?_0x12836e[_0x9e02('0x43')]:_0x2c1097['model'];if(_0x156bc3[_0x9e02('0x40')][_0x9e02('0x4e')]){_0x12836e[_0x9e02('0x4f')]=[{'all':!![]}];}_0x12836e=_['merge']({},_0x12836e,_0x156bc3[_0x9e02('0x54')]);return db['VoiceContext'][_0x9e02('0x55')](_0x12836e)[_0x9e02('0x1a')](handleEntityNotFound(_0x51665d,null))['then'](respondWithResult(_0x51665d,null))[_0x9e02('0x23')](handleError(_0x51665d,null));};exports[_0x9e02('0x56')]=function(_0x37becb,_0x594142,_0x11b829){var _0x2938f5;return db[_0x9e02('0x38')][_0x9e02('0x56')](_0x37becb[_0x9e02('0x57')],{'raw':!![]})[_0x9e02('0x1a')](function(_0x4f4bea){_0x2938f5=_0x4f4bea;return db[_0x9e02('0x38')][_0x9e02('0x50')]({'raw':!![]});})[_0x9e02('0x1a')](function(_0x589cff){var _0x568add=fs[_0x9e02('0x58')](path['join'](config[_0x9e02('0x59')],_0x9e02('0x5a')),_0x9e02('0x5b'));var _0x37811c=ejs[_0x9e02('0x5c')](_0x568add,{'contexts':_0x589cff||[]});fs[_0x9e02('0x5d')](_0x9e02('0x5e'),_0x37811c);})[_0x9e02('0x1a')](function(){return respondWithRpcPromise('Reload',_0x9e02('0x56'),{'module':_0x9e02('0x5f')});})[_0x9e02('0x1a')](function(){var _0x528eaf=_0x37becb['user'][_0x9e02('0x60')]({'plain':!![]});if(!_0x528eaf)throw new Error(_0x9e02('0x61'));if(_0x528eaf[_0x9e02('0x62')]===_0x9e02('0x63')){var _0x3620f6=_0x2938f5[_0x9e02('0x60')]({'plain':!![]});return db[_0x9e02('0x64')][_0x9e02('0x55')]({'where':{'name':_0x9e02('0x32'),'userProfileId':_0x528eaf[_0x9e02('0x65')]},'raw':!![]})[_0x9e02('0x1a')](function(_0x55605e){if(_0x55605e&&_0x55605e[_0x9e02('0x66')]===0x0){return db[_0x9e02('0x33')][_0x9e02('0x56')]({'name':_0x3620f6[_0x9e02('0x35')],'resourceId':_0x3620f6['id'],'type':_0x55605e[_0x9e02('0x35')],'sectionId':_0x55605e['id']},{})[_0x9e02('0x1a')](function(){return _0x2938f5;});}else{return _0x2938f5;}})[_0x9e02('0x23')](function(_0x1dfd21){logger[_0x9e02('0x21')](_0x9e02('0x67'),_0x1dfd21);throw _0x1dfd21;});}return _0x2938f5;})[_0x9e02('0x1a')](respondWithResult(_0x594142,0xc9))['catch'](handleError(_0x594142,null));};exports[_0x9e02('0x68')]=function(_0x19013a,_0x5b50d3,_0x25a140){var _0x4aa7de;return db['VoiceContext'][_0x9e02('0x55')]({'where':{'id':_0x19013a[_0x9e02('0x53')]['id']}})[_0x9e02('0x1a')](handleEntityNotFound(_0x5b50d3,null))[_0x9e02('0x1a')](saveUpdates(_0x19013a['body'],null))[_0x9e02('0x1a')](function(_0x15d5b2){if(_0x15d5b2){_0x4aa7de=_0x15d5b2;return db[_0x9e02('0x38')][_0x9e02('0x50')]({'raw':!![]});}})[_0x9e02('0x1a')](function(_0x3c2d18){var _0x4a1b3e=fs[_0x9e02('0x58')](path[_0x9e02('0x69')](config['root'],_0x9e02('0x5a')),_0x9e02('0x5b'));var _0x2b33e9=ejs['render'](_0x4a1b3e,{'contexts':_0x3c2d18||[]});fs[_0x9e02('0x5d')](_0x9e02('0x5e'),_0x2b33e9);})[_0x9e02('0x1a')](function(){return respondWithRpcPromise(_0x9e02('0x6a'),_0x9e02('0x68'),{'module':'chan_sip.so'});})['then'](function(){return _0x4aa7de;})[_0x9e02('0x1a')](respondWithResult(_0x5b50d3,null))[_0x9e02('0x23')](handleError(_0x5b50d3,null));};exports[_0x9e02('0x31')]=function(_0x433280,_0x4631f4,_0x1937a6){var _0x160b94;return db[_0x9e02('0x38')][_0x9e02('0x55')]({'where':{'id':_0x433280[_0x9e02('0x53')]['id']}})['then'](handleEntityNotFound(_0x4631f4,null))[_0x9e02('0x1a')](removeEntity(_0x4631f4,null))['then'](function(){return db[_0x9e02('0x38')][_0x9e02('0x50')]({'raw':!![]});})[_0x9e02('0x1a')](function(_0x437c7c){var _0x2df966=fs[_0x9e02('0x58')](path[_0x9e02('0x69')](config[_0x9e02('0x59')],_0x9e02('0x5a')),_0x9e02('0x5b'));var _0x2a87b8=ejs[_0x9e02('0x5c')](_0x2df966,{'contexts':_0x437c7c});fs[_0x9e02('0x5d')](_0x9e02('0x5e'),_0x2a87b8);return respondWithRpcPromise('Reload',_0x9e02('0x31'),{'module':_0x9e02('0x5f')});})[_0x9e02('0x23')](handleError(_0x4631f4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb1e=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','voice_contexts'];(function(_0x41d7a8,_0x386185){var _0xc39215=function(_0x10cb86){while(--_0x10cb86){_0x41d7a8['push'](_0x41d7a8['shift']());}};_0xc39215(++_0x386185);}(_0xcb1e,0x138));var _0xecb1=function(_0x2fc012,_0x503e5b){_0x2fc012=_0x2fc012-0x0;var _0x2891f9=_0xcb1e[_0x2fc012];return _0x2891f9;};'use strict';var _=require(_0xecb1('0x0'));var util=require(_0xecb1('0x1'));var logger=require(_0xecb1('0x2'))(_0xecb1('0x3'));var moment=require(_0xecb1('0x4'));var BPromise=require(_0xecb1('0x5'));var rp=require(_0xecb1('0x6'));var fs=require('fs');var path=require(_0xecb1('0x7'));var rimraf=require(_0xecb1('0x8'));var config=require(_0xecb1('0x9'));var attributes=require('./voiceContext.attributes');module[_0xecb1('0xa')]=function(_0x795348,_0x1c38f6){return _0x795348[_0xecb1('0xb')]('VoiceContext',attributes,{'tableName':_0xecb1('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5f36=['voice_contexts','lodash','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./voiceContext.attributes','exports','define','VoiceContext'];(function(_0x13e47d,_0x1e38bd){var _0x1042e4=function(_0x3e382b){while(--_0x3e382b){_0x13e47d['push'](_0x13e47d['shift']());}};_0x1042e4(++_0x1e38bd);}(_0x5f36,0x12c));var _0x65f3=function(_0x3a650f,_0x36c57e){_0x3a650f=_0x3a650f-0x0;var _0xe0b691=_0x5f36[_0x3a650f];return _0xe0b691;};'use strict';var _=require(_0x65f3('0x0'));var util=require('util');var logger=require(_0x65f3('0x1'))(_0x65f3('0x2'));var moment=require(_0x65f3('0x3'));var BPromise=require(_0x65f3('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x65f3('0x5'));var rimraf=require(_0x65f3('0x6'));var config=require(_0x65f3('0x7'));var attributes=require(_0x65f3('0x8'));module[_0x65f3('0x9')]=function(_0xf331ee,_0x18bd93){return _0xf331ee[_0x65f3('0xa')](_0x65f3('0xb'),attributes,{'tableName':_0x65f3('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x315f=['error','message','result','catch','lodash','moment','ioredis','../../config/environment','client','http','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s'];(function(_0x65d12e,_0x4b0a30){var _0x4274e0=function(_0x121624){while(--_0x121624){_0x65d12e['push'](_0x65d12e['shift']());}};_0x4274e0(++_0x4b0a30);}(_0x315f,0x174));var _0xf315=function(_0x431ff8,_0x4085dd){_0x431ff8=_0x431ff8-0x0;var _0x84ccd4=_0x315f[_0x431ff8];return _0x84ccd4;};'use strict';var _=require(_0xf315('0x0'));var util=require('util');var moment=require(_0xf315('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf315('0x2'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0xf315('0x3'));var jayson=require('jayson/promise');var client=jayson[_0xf315('0x4')][_0xf315('0x5')]({'port':0x232a});function respondWithRpcPromise(_0xc2344,_0x1e42f7,_0xbfd128){return new BPromise(function(_0x430ba1,_0x48679b){return client['request'](_0xc2344,_0xbfd128)[_0xf315('0x6')](function(_0x529dae){logger[_0xf315('0x7')](_0xf315('0x8'),_0x1e42f7,_0xf315('0x9'));logger[_0xf315('0xa')](_0xf315('0xb'),_0x1e42f7,'request\x20sent',JSON['stringify'](_0x529dae));if(_0x529dae[_0xf315('0xc')]){if(_0x529dae['error']['code']===0x1f4){logger[_0xf315('0xc')]('VoiceContext,\x20%s,\x20%s',_0x1e42f7,_0x529dae[_0xf315('0xc')][_0xf315('0xd')]);return _0x48679b(_0x529dae[_0xf315('0xc')][_0xf315('0xd')]);}logger['error'](_0xf315('0x8'),_0x1e42f7,_0x529dae[_0xf315('0xc')]['message']);return _0x430ba1(_0x529dae[_0xf315('0xc')]['message']);}else{logger[_0xf315('0x7')](_0xf315('0x8'),_0x1e42f7,_0xf315('0x9'));_0x430ba1(_0x529dae[_0xf315('0xe')][_0xf315('0xd')]);}})[_0xf315('0xf')](function(_0xc4dde8){logger[_0xf315('0xc')](_0xf315('0x8'),_0x1e42f7,_0xc4dde8);_0x48679b(_0xc4dde8);});});}
\ No newline at end of file
+var _0x6ae2=['../../config/utils','../../config/logger','../../config/environment','jayson/promise','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','error','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6ae2,0x1ed));var _0x26ae=function(_0x13e35a,_0x10906d){_0x13e35a=_0x13e35a-0x0;var _0x265502=_0x6ae2[_0x13e35a];return _0x265502;};'use strict';var _=require(_0x26ae('0x0'));var util=require(_0x26ae('0x1'));var moment=require(_0x26ae('0x2'));var BPromise=require(_0x26ae('0x3'));var rs=require(_0x26ae('0x4'));var fs=require('fs');var Redis=require(_0x26ae('0x5'));var db=require(_0x26ae('0x6'))['db'];var utils=require(_0x26ae('0x7'));var logger=require(_0x26ae('0x8'))('rpc');var config=require(_0x26ae('0x9'));var jayson=require(_0x26ae('0xa'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x13cb27,_0xde4226,_0x473907){return new BPromise(function(_0x151de3,_0x3bc9de){return client[_0x26ae('0xb')](_0x13cb27,_0x473907)[_0x26ae('0xc')](function(_0x4b3eca){logger[_0x26ae('0xd')](_0x26ae('0xe'),_0xde4226,_0x26ae('0xf'));logger[_0x26ae('0x10')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0xde4226,_0x26ae('0xf'),JSON['stringify'](_0x4b3eca));if(_0x4b3eca[_0x26ae('0x11')]){if(_0x4b3eca['error']['code']===0x1f4){logger[_0x26ae('0x11')](_0x26ae('0xe'),_0xde4226,_0x4b3eca[_0x26ae('0x11')][_0x26ae('0x12')]);return _0x3bc9de(_0x4b3eca[_0x26ae('0x11')][_0x26ae('0x12')]);}logger[_0x26ae('0x11')](_0x26ae('0xe'),_0xde4226,_0x4b3eca[_0x26ae('0x11')][_0x26ae('0x12')]);return _0x151de3(_0x4b3eca[_0x26ae('0x11')][_0x26ae('0x12')]);}else{logger['info'](_0x26ae('0xe'),_0xde4226,_0x26ae('0xf'));_0x151de3(_0x4b3eca['result'][_0x26ae('0x12')]);}})[_0x26ae('0x13')](function(_0x4f71d8){logger[_0x26ae('0x11')](_0x26ae('0xe'),_0xde4226,_0x4f71d8);_0x3bc9de(_0x4f71d8);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7576=['get','isAuthenticated','index','/:id','show','post','create','put','update','delete','destroy','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./voiceDialReport.controller'];(function(_0x5ba4fb,_0x349f47){var _0x4f1e67=function(_0x2f9dbe){while(--_0x2f9dbe){_0x5ba4fb['push'](_0x5ba4fb['shift']());}};_0x4f1e67(++_0x349f47);}(_0x7576,0x1d8));var _0x6757=function(_0x2ac32f,_0xdcd8d2){_0x2ac32f=_0x2ac32f-0x0;var _0x934903=_0x7576[_0x2ac32f];return _0x934903;};'use strict';var multer=require(_0x6757('0x0'));var util=require('util');var path=require(_0x6757('0x1'));var timeout=require('connect-timeout');var express=require(_0x6757('0x2'));var router=express[_0x6757('0x3')]();var fs_extra=require(_0x6757('0x4'));var auth=require(_0x6757('0x5'));var interaction=require(_0x6757('0x6'));var config=require('../../config/environment');var controller=require(_0x6757('0x7'));router[_0x6757('0x8')]('/',auth[_0x6757('0x9')](),controller[_0x6757('0xa')]);router['get']('/describe',auth[_0x6757('0x9')](),controller['describe']);router['get'](_0x6757('0xb'),auth[_0x6757('0x9')](),controller[_0x6757('0xc')]);router[_0x6757('0xd')]('/',auth['isAuthenticated'](),controller[_0x6757('0xe')]);router[_0x6757('0xf')]('/:id',auth['isAuthenticated'](),controller[_0x6757('0x10')]);router[_0x6757('0x11')](_0x6757('0xb'),auth['isAuthenticated'](),controller[_0x6757('0x12')]);module[_0x6757('0x13')]=router;
\ No newline at end of file
+var _0x1d1a=['get','index','/describe','describe','/:id','isAuthenticated','create','put','delete','exports','multer','util','path','connect-timeout','Router','../../components/interaction/service'];(function(_0x15d2f8,_0x10edfc){var _0x3fa453=function(_0x28beab){while(--_0x28beab){_0x15d2f8['push'](_0x15d2f8['shift']());}};_0x3fa453(++_0x10edfc);}(_0x1d1a,0x1da));var _0xa1d1=function(_0xea1e20,_0x2cf093){_0xea1e20=_0xea1e20-0x0;var _0x1ff08a=_0x1d1a[_0xea1e20];return _0x1ff08a;};'use strict';var multer=require(_0xa1d1('0x0'));var util=require(_0xa1d1('0x1'));var path=require(_0xa1d1('0x2'));var timeout=require(_0xa1d1('0x3'));var express=require('express');var router=express[_0xa1d1('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xa1d1('0x5'));var config=require('../../config/environment');var controller=require('./voiceDialReport.controller');router[_0xa1d1('0x6')]('/',auth['isAuthenticated'](),controller[_0xa1d1('0x7')]);router[_0xa1d1('0x6')](_0xa1d1('0x8'),auth['isAuthenticated'](),controller[_0xa1d1('0x9')]);router['get'](_0xa1d1('0xa'),auth[_0xa1d1('0xb')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0xa1d1('0xc')]);router[_0xa1d1('0xd')](_0xa1d1('0xa'),auth[_0xa1d1('0xb')](),controller['update']);router[_0xa1d1('0xe')](_0xa1d1('0xa'),auth[_0xa1d1('0xb')](),controller['destroy']);module[_0xa1d1('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3cd=['exports','STRING','INTEGER','DATE','sequelize'];(function(_0x479509,_0x1daf8a){var _0x382da8=function(_0x39d77c){while(--_0x39d77c){_0x479509['push'](_0x479509['shift']());}};_0x382da8(++_0x1daf8a);}(_0xf3cd,0xfe));var _0xdf3c=function(_0x3e618a,_0x135251){_0x3e618a=_0x3e618a-0x0;var _0x1f3d61=_0xf3cd[_0x3e618a];return _0x1f3d61;};'use strict';var Sequelize=require(_0xdf3c('0x0'));module[_0xdf3c('0x1')]={'privilege':{'type':Sequelize[_0xdf3c('0x2')]},'channel':{'type':Sequelize[_0xdf3c('0x2')]},'channelstate':{'type':Sequelize[_0xdf3c('0x3')]},'channelstatedesc':{'type':Sequelize[_0xdf3c('0x2')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0xdf3c('0x2')]},'connectedlinenum':{'type':Sequelize[_0xdf3c('0x2')]},'connectedlinename':{'type':Sequelize[_0xdf3c('0x2')]},'language':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0xdf3c('0x2')]},'context':{'type':Sequelize[_0xdf3c('0x2')]},'exten':{'type':Sequelize[_0xdf3c('0x2')]},'priority':{'type':Sequelize[_0xdf3c('0x3')]},'uniqueid':{'type':Sequelize[_0xdf3c('0x2')]},'linkedid':{'type':Sequelize[_0xdf3c('0x2')]},'destchannel':{'type':Sequelize['STRING']},'destchannelstate':{'type':Sequelize[_0xdf3c('0x3')]},'destchannelstatedesc':{'type':Sequelize['STRING']},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize[_0xdf3c('0x2')]},'destconnectedlinenum':{'type':Sequelize[_0xdf3c('0x2')]},'destconnectedlinename':{'type':Sequelize['STRING']},'destlanguage':{'type':Sequelize[_0xdf3c('0x2')]},'destaccountcode':{'type':Sequelize[_0xdf3c('0x2')]},'destcontext':{'type':Sequelize[_0xdf3c('0x2')]},'destexten':{'type':Sequelize[_0xdf3c('0x2')]},'destpriority':{'type':Sequelize[_0xdf3c('0x3')]},'destuniqueid':{'type':Sequelize[_0xdf3c('0x2')]},'destlinkedid':{'type':Sequelize[_0xdf3c('0x2')]},'dialstring':{'type':Sequelize[_0xdf3c('0x2')]},'dialstatus':{'type':Sequelize['STRING']},'starttime':{'type':Sequelize[_0xdf3c('0x4')]},'answertime':{'type':Sequelize[_0xdf3c('0x4')]},'endtime':{'type':Sequelize[_0xdf3c('0x4')]},'lastevent':{'type':Sequelize[_0xdf3c('0x2')],'comment':'called,connect,complete'},'routeId':{'type':Sequelize[_0xdf3c('0x3')]},'duration':{'type':Sequelize[_0xdf3c('0x3')]},'holdtime':{'type':Sequelize[_0xdf3c('0x3')]},'billableseconds':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
+var _0xb821=['DATE','called,connect,complete','exports','STRING','INTEGER'];(function(_0x5bdfb2,_0x5eeb10){var _0x5f5240=function(_0x2cb9c6){while(--_0x2cb9c6){_0x5bdfb2['push'](_0x5bdfb2['shift']());}};_0x5f5240(++_0x5eeb10);}(_0xb821,0xa7));var _0x1b82=function(_0x5cf2d5,_0x4a2c08){_0x5cf2d5=_0x5cf2d5-0x0;var _0x1d032c=_0xb821[_0x5cf2d5];return _0x1d032c;};'use strict';var Sequelize=require('sequelize');module[_0x1b82('0x0')]={'privilege':{'type':Sequelize[_0x1b82('0x1')]},'channel':{'type':Sequelize['STRING']},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0x1b82('0x1')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x1b82('0x1')]},'connectedlinename':{'type':Sequelize[_0x1b82('0x1')]},'language':{'type':Sequelize[_0x1b82('0x1')]},'accountcode':{'type':Sequelize[_0x1b82('0x1')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0x1b82('0x1')]},'priority':{'type':Sequelize[_0x1b82('0x2')]},'uniqueid':{'type':Sequelize[_0x1b82('0x1')]},'linkedid':{'type':Sequelize[_0x1b82('0x1')]},'destchannel':{'type':Sequelize[_0x1b82('0x1')]},'destchannelstate':{'type':Sequelize[_0x1b82('0x2')]},'destchannelstatedesc':{'type':Sequelize[_0x1b82('0x1')]},'destcalleridnum':{'type':Sequelize[_0x1b82('0x1')]},'destcalleridname':{'type':Sequelize[_0x1b82('0x1')]},'destconnectedlinenum':{'type':Sequelize['STRING']},'destconnectedlinename':{'type':Sequelize[_0x1b82('0x1')]},'destlanguage':{'type':Sequelize[_0x1b82('0x1')]},'destaccountcode':{'type':Sequelize[_0x1b82('0x1')]},'destcontext':{'type':Sequelize[_0x1b82('0x1')]},'destexten':{'type':Sequelize[_0x1b82('0x1')]},'destpriority':{'type':Sequelize[_0x1b82('0x2')]},'destuniqueid':{'type':Sequelize[_0x1b82('0x1')]},'destlinkedid':{'type':Sequelize[_0x1b82('0x1')]},'dialstring':{'type':Sequelize['STRING']},'dialstatus':{'type':Sequelize[_0x1b82('0x1')]},'starttime':{'type':Sequelize[_0x1b82('0x3')]},'answertime':{'type':Sequelize[_0x1b82('0x3')]},'endtime':{'type':Sequelize[_0x1b82('0x3')]},'lastevent':{'type':Sequelize['STRING'],'comment':_0x1b82('0x4')},'routeId':{'type':Sequelize['INTEGER']},'duration':{'type':Sequelize['INTEGER']},'holdtime':{'type':Sequelize[_0x1b82('0x2')]},'billableseconds':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0946=['find','create','body','update','params','describe','eml-format','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','../../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','set','reject','then','destroy','name','send','index','map','VoiceDialReport','rawAttributes','fieldName','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','count','include','findAll','rows','catch','show','length'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x0946,0xde));var _0x6094=function(_0x1709e7,_0x2ced21){_0x1709e7=_0x1709e7-0x0;var _0x402819=_0x0946[_0x1709e7];return _0x402819;};'use strict';var emlformat=require(_0x6094('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x6094('0x1'));var moment=require(_0x6094('0x2'));var BPromise=require(_0x6094('0x3'));var Mustache=require(_0x6094('0x4'));var util=require(_0x6094('0x5'));var path=require('path');var sox=require(_0x6094('0x6'));var csv=require(_0x6094('0x7'));var ejs=require(_0x6094('0x8'));var fs=require('fs');var fs_extra=require(_0x6094('0x9'));var _=require('lodash');var squel=require(_0x6094('0xa'));var crypto=require(_0x6094('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x6094('0xc'));var toCsv=require(_0x6094('0x7'));var querystring=require(_0x6094('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x6094('0xe'));var qs=require(_0x6094('0xf'));var as=require(_0x6094('0x10'));var hardwareService=require(_0x6094('0x11'));var logger=require(_0x6094('0x12'))(_0x6094('0x13'));var utils=require(_0x6094('0x14'));var config=require(_0x6094('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x6094('0x16'))['db'];function respondWithStatusCode(_0x5f2510,_0x5f3a84){_0x5f3a84=_0x5f3a84||0xcc;return function(_0x14e7f0){if(_0x14e7f0){return _0x5f2510[_0x6094('0x17')](_0x5f3a84);}return _0x5f2510[_0x6094('0x18')](_0x5f3a84)[_0x6094('0x19')]();};}function respondWithResult(_0x6cfdf7,_0x37b417){_0x37b417=_0x37b417||0xc8;return function(_0x52b6ad){if(_0x52b6ad){return _0x6cfdf7[_0x6094('0x18')](_0x37b417)[_0x6094('0x1a')](_0x52b6ad);}};}function respondWithFilteredResult(_0x56325e,_0x527606){return function(_0x2e104f){if(_0x2e104f){var _0x17b0eb=typeof _0x527606[_0x6094('0x1b')]===_0x6094('0x1c')&&typeof _0x527606[_0x6094('0x1d')]===_0x6094('0x1c');var _0x38454a=_0x2e104f['count'];var _0x47b7e9=_0x17b0eb?0x0:_0x527606[_0x6094('0x1b')];var _0x2c4166=_0x17b0eb?_0x2e104f['count']:_0x527606['offset']+_0x527606['limit'];var _0x2b49aa;if(_0x2c4166>=_0x38454a){_0x2c4166=_0x38454a;_0x2b49aa=0xc8;}else{_0x2b49aa=0xce;}_0x56325e[_0x6094('0x18')](_0x2b49aa);return _0x56325e[_0x6094('0x1e')]('Content-Range',_0x47b7e9+'-'+_0x2c4166+'/'+_0x38454a)[_0x6094('0x1a')](_0x2e104f);}return null;};}function patchUpdates(_0x1a43a8){return function(_0x519a9b){try{jsonpatch['apply'](_0x519a9b,_0x1a43a8,!![]);}catch(_0x2b91d8){return BPromise[_0x6094('0x1f')](_0x2b91d8);}return _0x519a9b['save']();};}function saveUpdates(_0x18e16b,_0x29b0e5){return function(_0x4c9d57){if(_0x4c9d57){return _0x4c9d57['update'](_0x18e16b)[_0x6094('0x20')](function(_0x407fb5){return _0x407fb5;});}return null;};}function removeEntity(_0xc7b279,_0x592472){return function(_0x254003){if(_0x254003){return _0x254003[_0x6094('0x21')]()[_0x6094('0x20')](function(){_0xc7b279[_0x6094('0x18')](0xcc)[_0x6094('0x19')]();});}};}function handleEntityNotFound(_0x94ae67,_0x73c2c9){return function(_0x2036d1){if(!_0x2036d1){_0x94ae67['sendStatus'](0x194);}return _0x2036d1;};}function handleError(_0x26e6cf,_0x2559ac){_0x2559ac=_0x2559ac||0x1f4;return function(_0x299c70){logger['error'](_0x299c70['stack']);if(_0x299c70[_0x6094('0x22')]){delete _0x299c70[_0x6094('0x22')];}_0x26e6cf['status'](_0x2559ac)[_0x6094('0x23')](_0x299c70);};}exports[_0x6094('0x24')]=function(_0x5a8d01,_0x1bdd65){var _0xfb2f20={},_0x2caf3a={},_0x45ec8b={'count':0x0,'rows':[]};var _0x3d958a=_[_0x6094('0x25')](db[_0x6094('0x26')][_0x6094('0x27')],function(_0x3414ba){return{'name':_0x3414ba[_0x6094('0x28')],'type':_0x3414ba['type']['key']};});_0x2caf3a['model']=_['map'](_0x3d958a,_0x6094('0x22'));_0x2caf3a[_0x6094('0x29')]=_[_0x6094('0x2a')](_0x5a8d01[_0x6094('0x29')]);_0x2caf3a[_0x6094('0x2b')]=_[_0x6094('0x2c')](_0x2caf3a[_0x6094('0x2d')],_0x2caf3a[_0x6094('0x29')]);_0xfb2f20[_0x6094('0x2e')]=_[_0x6094('0x2c')](_0x2caf3a['model'],qs[_0x6094('0x2f')](_0x5a8d01['query']['fields']));_0xfb2f20['attributes']=_0xfb2f20[_0x6094('0x2e')]['length']?_0xfb2f20[_0x6094('0x2e')]:_0x2caf3a[_0x6094('0x2d')];if(!_0x5a8d01[_0x6094('0x29')][_0x6094('0x30')](_0x6094('0x31'))){_0xfb2f20[_0x6094('0x1d')]=qs[_0x6094('0x1d')](_0x5a8d01['query'][_0x6094('0x1d')]);_0xfb2f20[_0x6094('0x1b')]=qs[_0x6094('0x1b')](_0x5a8d01[_0x6094('0x29')][_0x6094('0x1b')]);}_0xfb2f20[_0x6094('0x32')]=qs[_0x6094('0x33')](_0x5a8d01[_0x6094('0x29')][_0x6094('0x33')]);_0xfb2f20[_0x6094('0x34')]=qs['filters'](_[_0x6094('0x35')](_0x5a8d01[_0x6094('0x29')],_0x2caf3a['filters']),_0x3d958a);if(_0x5a8d01[_0x6094('0x29')][_0x6094('0x36')]){_0xfb2f20[_0x6094('0x34')]=_[_0x6094('0x37')](_0xfb2f20[_0x6094('0x34')],{'$or':_[_0x6094('0x25')](_0x3d958a,function(_0x3b853c){if(_0x3b853c[_0x6094('0x38')]!==_0x6094('0x39')){var _0x2ffe7a={};_0x2ffe7a[_0x3b853c[_0x6094('0x22')]]={'$like':'%'+_0x5a8d01[_0x6094('0x29')][_0x6094('0x36')]+'%'};return _0x2ffe7a;}})});}_0xfb2f20=_[_0x6094('0x37')]({},_0xfb2f20,_0x5a8d01[_0x6094('0x3a')]);var _0x1a02b6={'where':_0xfb2f20['where']};return db[_0x6094('0x26')][_0x6094('0x3b')](_0x1a02b6)[_0x6094('0x20')](function(_0x2d0007){_0x45ec8b[_0x6094('0x3b')]=_0x2d0007;if(_0x5a8d01['query']['includeAll']){_0xfb2f20[_0x6094('0x3c')]=[{'all':!![]}];}return db['VoiceDialReport'][_0x6094('0x3d')](_0xfb2f20);})[_0x6094('0x20')](function(_0x4cd003){_0x45ec8b[_0x6094('0x3e')]=_0x4cd003;return _0x45ec8b;})[_0x6094('0x20')](respondWithFilteredResult(_0x1bdd65,_0xfb2f20))[_0x6094('0x3f')](handleError(_0x1bdd65,null));};exports[_0x6094('0x40')]=function(_0x2f09c9,_0x15a90c){var _0x527a22={'raw':!![],'where':{'id':_0x2f09c9['params']['id']}},_0x45fdcc={};_0x45fdcc['model']=_['keys'](db[_0x6094('0x26')]['rawAttributes']);_0x45fdcc[_0x6094('0x29')]=_['keys'](_0x2f09c9[_0x6094('0x29')]);_0x45fdcc['filters']=_[_0x6094('0x2c')](_0x45fdcc[_0x6094('0x2d')],_0x45fdcc[_0x6094('0x29')]);_0x527a22[_0x6094('0x2e')]=_[_0x6094('0x2c')](_0x45fdcc[_0x6094('0x2d')],qs['fields'](_0x2f09c9['query'][_0x6094('0x2f')]));_0x527a22[_0x6094('0x2e')]=_0x527a22[_0x6094('0x2e')][_0x6094('0x41')]?_0x527a22[_0x6094('0x2e')]:_0x45fdcc[_0x6094('0x2d')];if(_0x2f09c9[_0x6094('0x29')]['includeAll']){_0x527a22['include']=[{'all':!![]}];}_0x527a22=_[_0x6094('0x37')]({},_0x527a22,_0x2f09c9[_0x6094('0x3a')]);return db[_0x6094('0x26')][_0x6094('0x42')](_0x527a22)[_0x6094('0x20')](handleEntityNotFound(_0x15a90c,null))['then'](respondWithResult(_0x15a90c,null))[_0x6094('0x3f')](handleError(_0x15a90c,null));};exports[_0x6094('0x43')]=function(_0x1289d7,_0x3e60de){return db['VoiceDialReport'][_0x6094('0x43')](_0x1289d7[_0x6094('0x44')],{})[_0x6094('0x20')](respondWithResult(_0x3e60de,0xc9))['catch'](handleError(_0x3e60de,null));};exports[_0x6094('0x45')]=function(_0x9f42c0,_0x36543d){if(_0x9f42c0['body']['id']){delete _0x9f42c0[_0x6094('0x44')]['id'];}return db[_0x6094('0x26')]['find']({'where':{'id':_0x9f42c0[_0x6094('0x46')]['id']}})['then'](handleEntityNotFound(_0x36543d,null))['then'](saveUpdates(_0x9f42c0[_0x6094('0x44')],null))['then'](respondWithResult(_0x36543d,null))[_0x6094('0x3f')](handleError(_0x36543d,null));};exports[_0x6094('0x21')]=function(_0xcbb8da,_0x412ef9){return db[_0x6094('0x26')][_0x6094('0x42')]({'where':{'id':_0xcbb8da[_0x6094('0x46')]['id']}})[_0x6094('0x20')](handleEntityNotFound(_0x412ef9,null))[_0x6094('0x20')](removeEntity(_0x412ef9,null))[_0x6094('0x3f')](handleError(_0x412ef9,null));};exports[_0x6094('0x47')]=function(_0x5e68a7,_0x419abb){return db['VoiceDialReport'][_0x6094('0x47')]()['then'](respondWithResult(_0x419abb,null))[_0x6094('0x3f')](handleError(_0x419abb,null));};
\ No newline at end of file
+var _0x8065=['../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','count','offset','limit','set','Content-Range','apply','save','destroy','then','error','stack','send','index','map','VoiceDialReport','fieldName','key','model','name','query','filters','intersection','fields','attributes','length','order','where','pick','merge','filter','include','findAll','rows','catch','show','params','keys','rawAttributes','includeAll','create','update','body','find','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0x8065,0x153));var _0x5806=function(_0xefff93,_0x42aca2){_0xefff93=_0xefff93-0x0;var _0x3f7aac=_0x8065[_0xefff93];return _0x3f7aac;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5806('0x0'));var zipdir=require(_0x5806('0x1'));var jsonpatch=require(_0x5806('0x2'));var rp=require(_0x5806('0x3'));var moment=require(_0x5806('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x5806('0x5'));var util=require('util');var path=require(_0x5806('0x6'));var sox=require(_0x5806('0x7'));var csv=require(_0x5806('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5806('0x9'));var _=require(_0x5806('0xa'));var squel=require(_0x5806('0xb'));var crypto=require(_0x5806('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x5806('0xd'));var toCsv=require(_0x5806('0x8'));var querystring=require('querystring');var Papa=require(_0x5806('0xe'));var Redis=require(_0x5806('0xf'));var authService=require(_0x5806('0x10'));var qs=require(_0x5806('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5806('0x12'));var logger=require('../../config/logger')(_0x5806('0x13'));var utils=require(_0x5806('0x14'));var config=require(_0x5806('0x15'));var licenseUtil=require(_0x5806('0x16'));var db=require(_0x5806('0x17'))['db'];function respondWithStatusCode(_0x47218f,_0x4a2dac){_0x4a2dac=_0x4a2dac||0xcc;return function(_0x372d15){if(_0x372d15){return _0x47218f[_0x5806('0x18')](_0x4a2dac);}return _0x47218f[_0x5806('0x19')](_0x4a2dac)[_0x5806('0x1a')]();};}function respondWithResult(_0x2659c5,_0x5aeb25){_0x5aeb25=_0x5aeb25||0xc8;return function(_0x2ecacf){if(_0x2ecacf){return _0x2659c5['status'](_0x5aeb25)[_0x5806('0x1b')](_0x2ecacf);}};}function respondWithFilteredResult(_0x37583e,_0x23a06f){return function(_0x562efb){if(_0x562efb){var _0x476cf3=typeof _0x23a06f['offset']===_0x5806('0x1c')&&typeof _0x23a06f['limit']===_0x5806('0x1c');var _0x33ac04=_0x562efb[_0x5806('0x1d')];var _0x4528dc=_0x476cf3?0x0:_0x23a06f['offset'];var _0x2959e1=_0x476cf3?_0x562efb[_0x5806('0x1d')]:_0x23a06f[_0x5806('0x1e')]+_0x23a06f[_0x5806('0x1f')];var _0x4206fc;if(_0x2959e1>=_0x33ac04){_0x2959e1=_0x33ac04;_0x4206fc=0xc8;}else{_0x4206fc=0xce;}_0x37583e[_0x5806('0x19')](_0x4206fc);return _0x37583e[_0x5806('0x20')](_0x5806('0x21'),_0x4528dc+'-'+_0x2959e1+'/'+_0x33ac04)[_0x5806('0x1b')](_0x562efb);}return null;};}function patchUpdates(_0x204ab1){return function(_0x1b1dba){try{jsonpatch[_0x5806('0x22')](_0x1b1dba,_0x204ab1,!![]);}catch(_0x3e8eb0){return BPromise['reject'](_0x3e8eb0);}return _0x1b1dba[_0x5806('0x23')]();};}function saveUpdates(_0x3a6246,_0x21b548){return function(_0x1c4452){if(_0x1c4452){return _0x1c4452['update'](_0x3a6246)['then'](function(_0x59328d){return _0x59328d;});}return null;};}function removeEntity(_0xcd22e,_0x14f449){return function(_0x43c1a0){if(_0x43c1a0){return _0x43c1a0[_0x5806('0x24')]()[_0x5806('0x25')](function(){_0xcd22e[_0x5806('0x19')](0xcc)[_0x5806('0x1a')]();});}};}function handleEntityNotFound(_0xb6057b,_0x3c0c73){return function(_0x24897e){if(!_0x24897e){_0xb6057b[_0x5806('0x18')](0x194);}return _0x24897e;};}function handleError(_0x490248,_0x6e646f){_0x6e646f=_0x6e646f||0x1f4;return function(_0x19bbae){logger[_0x5806('0x26')](_0x19bbae[_0x5806('0x27')]);if(_0x19bbae['name']){delete _0x19bbae['name'];}_0x490248[_0x5806('0x19')](_0x6e646f)[_0x5806('0x28')](_0x19bbae);};}exports[_0x5806('0x29')]=function(_0x28af20,_0x2bbb0a){var _0x52188f={},_0x329435={},_0x4761eb={'count':0x0,'rows':[]};var _0x893d5a=_[_0x5806('0x2a')](db[_0x5806('0x2b')]['rawAttributes'],function(_0x23a7e8){return{'name':_0x23a7e8[_0x5806('0x2c')],'type':_0x23a7e8['type'][_0x5806('0x2d')]};});_0x329435[_0x5806('0x2e')]=_[_0x5806('0x2a')](_0x893d5a,_0x5806('0x2f'));_0x329435[_0x5806('0x30')]=_['keys'](_0x28af20[_0x5806('0x30')]);_0x329435[_0x5806('0x31')]=_[_0x5806('0x32')](_0x329435[_0x5806('0x2e')],_0x329435[_0x5806('0x30')]);_0x52188f['attributes']=_[_0x5806('0x32')](_0x329435[_0x5806('0x2e')],qs[_0x5806('0x33')](_0x28af20[_0x5806('0x30')][_0x5806('0x33')]));_0x52188f[_0x5806('0x34')]=_0x52188f[_0x5806('0x34')][_0x5806('0x35')]?_0x52188f[_0x5806('0x34')]:_0x329435[_0x5806('0x2e')];if(!_0x28af20[_0x5806('0x30')]['hasOwnProperty']('nolimit')){_0x52188f['limit']=qs[_0x5806('0x1f')](_0x28af20[_0x5806('0x30')][_0x5806('0x1f')]);_0x52188f[_0x5806('0x1e')]=qs['offset'](_0x28af20[_0x5806('0x30')][_0x5806('0x1e')]);}_0x52188f[_0x5806('0x36')]=qs['sort'](_0x28af20['query']['sort']);_0x52188f[_0x5806('0x37')]=qs[_0x5806('0x31')](_[_0x5806('0x38')](_0x28af20['query'],_0x329435[_0x5806('0x31')]),_0x893d5a);if(_0x28af20[_0x5806('0x30')]['filter']){_0x52188f[_0x5806('0x37')]=_[_0x5806('0x39')](_0x52188f[_0x5806('0x37')],{'$or':_[_0x5806('0x2a')](_0x893d5a,function(_0x169c1c){if(_0x169c1c['type']!=='VIRTUAL'){var _0x1586cf={};_0x1586cf[_0x169c1c[_0x5806('0x2f')]]={'$like':'%'+_0x28af20['query'][_0x5806('0x3a')]+'%'};return _0x1586cf;}})});}_0x52188f=_[_0x5806('0x39')]({},_0x52188f,_0x28af20['options']);var _0x1d761a={'where':_0x52188f[_0x5806('0x37')]};return db['VoiceDialReport'][_0x5806('0x1d')](_0x1d761a)[_0x5806('0x25')](function(_0x1d590c){_0x4761eb[_0x5806('0x1d')]=_0x1d590c;if(_0x28af20[_0x5806('0x30')]['includeAll']){_0x52188f[_0x5806('0x3b')]=[{'all':!![]}];}return db['VoiceDialReport'][_0x5806('0x3c')](_0x52188f);})[_0x5806('0x25')](function(_0x2855a6){_0x4761eb[_0x5806('0x3d')]=_0x2855a6;return _0x4761eb;})[_0x5806('0x25')](respondWithFilteredResult(_0x2bbb0a,_0x52188f))[_0x5806('0x3e')](handleError(_0x2bbb0a,null));};exports[_0x5806('0x3f')]=function(_0x27019f,_0xf192a6){var _0x2207bf={'raw':!![],'where':{'id':_0x27019f[_0x5806('0x40')]['id']}},_0x3934a1={};_0x3934a1[_0x5806('0x2e')]=_[_0x5806('0x41')](db[_0x5806('0x2b')][_0x5806('0x42')]);_0x3934a1[_0x5806('0x30')]=_[_0x5806('0x41')](_0x27019f['query']);_0x3934a1['filters']=_[_0x5806('0x32')](_0x3934a1['model'],_0x3934a1[_0x5806('0x30')]);_0x2207bf[_0x5806('0x34')]=_[_0x5806('0x32')](_0x3934a1[_0x5806('0x2e')],qs['fields'](_0x27019f[_0x5806('0x30')][_0x5806('0x33')]));_0x2207bf[_0x5806('0x34')]=_0x2207bf['attributes'][_0x5806('0x35')]?_0x2207bf[_0x5806('0x34')]:_0x3934a1[_0x5806('0x2e')];if(_0x27019f['query'][_0x5806('0x43')]){_0x2207bf['include']=[{'all':!![]}];}_0x2207bf=_[_0x5806('0x39')]({},_0x2207bf,_0x27019f['options']);return db[_0x5806('0x2b')]['find'](_0x2207bf)[_0x5806('0x25')](handleEntityNotFound(_0xf192a6,null))[_0x5806('0x25')](respondWithResult(_0xf192a6,null))[_0x5806('0x3e')](handleError(_0xf192a6,null));};exports[_0x5806('0x44')]=function(_0x16014f,_0x2677e1){return db[_0x5806('0x2b')][_0x5806('0x44')](_0x16014f['body'],{})['then'](respondWithResult(_0x2677e1,0xc9))[_0x5806('0x3e')](handleError(_0x2677e1,null));};exports[_0x5806('0x45')]=function(_0x2ef6cc,_0x218b69){if(_0x2ef6cc[_0x5806('0x46')]['id']){delete _0x2ef6cc[_0x5806('0x46')]['id'];}return db[_0x5806('0x2b')][_0x5806('0x47')]({'where':{'id':_0x2ef6cc[_0x5806('0x40')]['id']}})[_0x5806('0x25')](handleEntityNotFound(_0x218b69,null))[_0x5806('0x25')](saveUpdates(_0x2ef6cc[_0x5806('0x46')],null))[_0x5806('0x25')](respondWithResult(_0x218b69,null))['catch'](handleError(_0x218b69,null));};exports[_0x5806('0x24')]=function(_0xc69196,_0x331a06){return db[_0x5806('0x2b')][_0x5806('0x47')]({'where':{'id':_0xc69196['params']['id']}})[_0x5806('0x25')](handleEntityNotFound(_0x331a06,null))[_0x5806('0x25')](removeEntity(_0x331a06,null))[_0x5806('0x3e')](handleError(_0x331a06,null));};exports['describe']=function(_0x267b4f,_0x464b2e){return db['VoiceDialReport']['describe']()[_0x5806('0x25')](respondWithResult(_0x464b2e,null))[_0x5806('0x3e')](handleError(_0x464b2e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00b7=['report_dial','uniqueid','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','define','VoiceDialReport'];(function(_0x4c491d,_0x1e4bb5){var _0x4004e2=function(_0xb4dc86){while(--_0xb4dc86){_0x4c491d['push'](_0x4c491d['shift']());}};_0x4004e2(++_0x1e4bb5);}(_0x00b7,0x160));var _0x700b=function(_0x6251e4,_0xdf1ad0){_0x6251e4=_0x6251e4-0x0;var _0x4cd4e0=_0x00b7[_0x6251e4];return _0x4cd4e0;};'use strict';var _=require(_0x700b('0x0'));var util=require(_0x700b('0x1'));var logger=require(_0x700b('0x2'))(_0x700b('0x3'));var moment=require(_0x700b('0x4'));var BPromise=require(_0x700b('0x5'));var rp=require(_0x700b('0x6'));var fs=require('fs');var path=require(_0x700b('0x7'));var rimraf=require(_0x700b('0x8'));var config=require(_0x700b('0x9'));var attributes=require('./voiceDialReport.attributes');module['exports']=function(_0x42c8b6,_0x29f9b7){return _0x42c8b6[_0x700b('0xa')](_0x700b('0xb'),attributes,{'tableName':_0x700b('0xc'),'paranoid':![],'indexes':[{'fields':[_0x700b('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x9f8b=['api','request-promise','path','rimraf','../../config/environment','./voiceDialReport.attributes','exports','define','VoiceDialReport','report_dial','uniqueid','util','../../config/logger'];(function(_0x1fc72a,_0x3e55ef){var _0x443d9a=function(_0x5b8a6b){while(--_0x5b8a6b){_0x1fc72a['push'](_0x1fc72a['shift']());}};_0x443d9a(++_0x3e55ef);}(_0x9f8b,0x9a));var _0xb9f8=function(_0x934754,_0x15bd40){_0x934754=_0x934754-0x0;var _0x5cf1fc=_0x9f8b[_0x934754];return _0x5cf1fc;};'use strict';var _=require('lodash');var util=require(_0xb9f8('0x0'));var logger=require(_0xb9f8('0x1'))(_0xb9f8('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xb9f8('0x3'));var fs=require('fs');var path=require(_0xb9f8('0x4'));var rimraf=require(_0xb9f8('0x5'));var config=require(_0xb9f8('0x6'));var attributes=require(_0xb9f8('0x7'));module[_0xb9f8('0x8')]=function(_0x7a983b,_0x9c53b3){return _0x7a983b[_0xb9f8('0x9')](_0xb9f8('0xa'),attributes,{'tableName':_0xb9f8('0xb'),'paranoid':![],'indexes':[{'fields':[_0xb9f8('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa7ff=['request\x20sent','debug','stringify','error','code','VoiceDialReport,\x20%s,\x20%s','message','info','result','body','options','raw','CreateVoiceDialReport','catch','UpdateVoiceDialReport','VoiceDialReport','where','attributes','limit','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','then'];(function(_0x3b09e0,_0x436492){var _0x2d2f1b=function(_0x730911){while(--_0x730911){_0x3b09e0['push'](_0x3b09e0['shift']());}};_0x2d2f1b(++_0x436492);}(_0xa7ff,0x1f3));var _0xfa7f=function(_0x9dfc10,_0x19c2d5){_0x9dfc10=_0x9dfc10-0x0;var _0x4f938a=_0xa7ff[_0x9dfc10];return _0x4f938a;};'use strict';var _=require('lodash');var util=require(_0xfa7f('0x0'));var moment=require('moment');var BPromise=require(_0xfa7f('0x1'));var rs=require(_0xfa7f('0x2'));var fs=require('fs');var Redis=require(_0xfa7f('0x3'));var db=require(_0xfa7f('0x4'))['db'];var utils=require(_0xfa7f('0x5'));var logger=require(_0xfa7f('0x6'))('rpc');var config=require(_0xfa7f('0x7'));var jayson=require(_0xfa7f('0x8'));var client=jayson['client'][_0xfa7f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x562b18,_0x18a13f,_0xe8c3a5){return new BPromise(function(_0x297c4f,_0xe8e037){return client['request'](_0x562b18,_0xe8c3a5)[_0xfa7f('0xa')](function(_0xf2d371){logger['info']('VoiceDialReport,\x20%s,\x20%s',_0x18a13f,_0xfa7f('0xb'));logger[_0xfa7f('0xc')]('VoiceDialReport,\x20%s,\x20%s,\x20%s',_0x18a13f,_0xfa7f('0xb'),JSON[_0xfa7f('0xd')](_0xf2d371));if(_0xf2d371[_0xfa7f('0xe')]){if(_0xf2d371[_0xfa7f('0xe')][_0xfa7f('0xf')]===0x1f4){logger[_0xfa7f('0xe')]('VoiceDialReport,\x20%s,\x20%s',_0x18a13f,_0xf2d371[_0xfa7f('0xe')]['message']);return _0xe8e037(_0xf2d371['error']['message']);}logger[_0xfa7f('0xe')](_0xfa7f('0x10'),_0x18a13f,_0xf2d371[_0xfa7f('0xe')][_0xfa7f('0x11')]);return _0x297c4f(_0xf2d371['error']['message']);}else{logger[_0xfa7f('0x12')](_0xfa7f('0x10'),_0x18a13f,_0xfa7f('0xb'));_0x297c4f(_0xf2d371[_0xfa7f('0x13')][_0xfa7f('0x11')]);}})['catch'](function(_0x1bd2d0){logger[_0xfa7f('0xe')](_0xfa7f('0x10'),_0x18a13f,_0x1bd2d0);_0xe8e037(_0x1bd2d0);});});}exports['CreateVoiceDialReport']=function(_0x3dbabf){var _0x58bc98=this;return new Promise(function(_0x38e649,_0x2e4659){return db['VoiceDialReport']['create'](_0x3dbabf[_0xfa7f('0x14')],{'raw':_0x3dbabf['options']?_0x3dbabf[_0xfa7f('0x15')][_0xfa7f('0x16')]===undefined?!![]:![]:!![]})[_0xfa7f('0xa')](function(_0x4af75f){logger[_0xfa7f('0x12')](_0xfa7f('0x17'),_0x3dbabf);logger[_0xfa7f('0xc')]('CreateVoiceDialReport',_0x3dbabf,JSON[_0xfa7f('0xd')](_0x4af75f));_0x38e649(_0x4af75f);})[_0xfa7f('0x18')](function(_0x12ad18){logger['error']('CreateVoiceDialReport',_0x12ad18[_0xfa7f('0x11')],_0x3dbabf);_0x2e4659(_0x58bc98[_0xfa7f('0xe')](0x1f4,_0x12ad18[_0xfa7f('0x11')]));});});};exports[_0xfa7f('0x19')]=function(_0x51f1dc){var _0x40e571=this;return new Promise(function(_0x22a948,_0x58a5e7){return db[_0xfa7f('0x1a')]['update'](_0x51f1dc[_0xfa7f('0x14')],{'raw':_0x51f1dc[_0xfa7f('0x15')]?_0x51f1dc[_0xfa7f('0x15')][_0xfa7f('0x16')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x51f1dc[_0xfa7f('0x15')]?_0x51f1dc[_0xfa7f('0x15')][_0xfa7f('0x1b')]||null:null,'attributes':_0x51f1dc[_0xfa7f('0x15')]?_0x51f1dc['options'][_0xfa7f('0x1c')]||null:null,'limit':_0x51f1dc[_0xfa7f('0x15')]?_0x51f1dc[_0xfa7f('0x15')][_0xfa7f('0x1d')]||null:null})[_0xfa7f('0xa')](function(_0x367a1a){logger[_0xfa7f('0x12')](_0xfa7f('0x19'),_0x51f1dc);logger[_0xfa7f('0xc')](_0xfa7f('0x19'),_0x51f1dc,JSON[_0xfa7f('0xd')](_0x367a1a));_0x22a948(_0x367a1a);})[_0xfa7f('0x18')](function(_0x346205){logger[_0xfa7f('0xe')](_0xfa7f('0x19'),_0x346205[_0xfa7f('0x11')],_0x51f1dc);_0x58a5e7(_0x40e571['error'](0x1f4,_0x346205['message']));});});};
\ No newline at end of file
+var _0xf71a=['result','catch','CreateVoiceDialReport','VoiceDialReport','create','body','options','raw','then','UpdateVoiceDialReport','update','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','request','info','VoiceDialReport,\x20%s,\x20%s','request\x20sent','debug','VoiceDialReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf71a,0xc5));var _0xaf71=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xf71a[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xaf71('0x0'));var BPromise=require(_0xaf71('0x1'));var rs=require(_0xaf71('0x2'));var fs=require('fs');var Redis=require(_0xaf71('0x3'));var db=require(_0xaf71('0x4'))['db'];var utils=require(_0xaf71('0x5'));var logger=require(_0xaf71('0x6'))('rpc');var config=require(_0xaf71('0x7'));var jayson=require(_0xaf71('0x8'));var client=jayson['client'][_0xaf71('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4703ed,_0x139bdb,_0x2f49ae){return new BPromise(function(_0x42e87c,_0x2ab8d5){return client[_0xaf71('0xa')](_0x4703ed,_0x2f49ae)['then'](function(_0x3b0044){logger[_0xaf71('0xb')](_0xaf71('0xc'),_0x139bdb,_0xaf71('0xd'));logger[_0xaf71('0xe')](_0xaf71('0xf'),_0x139bdb,'request\x20sent',JSON[_0xaf71('0x10')](_0x3b0044));if(_0x3b0044[_0xaf71('0x11')]){if(_0x3b0044[_0xaf71('0x11')][_0xaf71('0x12')]===0x1f4){logger[_0xaf71('0x11')](_0xaf71('0xc'),_0x139bdb,_0x3b0044['error'][_0xaf71('0x13')]);return _0x2ab8d5(_0x3b0044[_0xaf71('0x11')][_0xaf71('0x13')]);}logger[_0xaf71('0x11')]('VoiceDialReport,\x20%s,\x20%s',_0x139bdb,_0x3b0044[_0xaf71('0x11')]['message']);return _0x42e87c(_0x3b0044[_0xaf71('0x11')][_0xaf71('0x13')]);}else{logger[_0xaf71('0xb')]('VoiceDialReport,\x20%s,\x20%s',_0x139bdb,_0xaf71('0xd'));_0x42e87c(_0x3b0044[_0xaf71('0x14')][_0xaf71('0x13')]);}})[_0xaf71('0x15')](function(_0x1629ed){logger[_0xaf71('0x11')](_0xaf71('0xc'),_0x139bdb,_0x1629ed);_0x2ab8d5(_0x1629ed);});});}exports[_0xaf71('0x16')]=function(_0x862257){var _0x448ae7=this;return new Promise(function(_0x456ddf,_0x2e7b6a){return db[_0xaf71('0x17')][_0xaf71('0x18')](_0x862257[_0xaf71('0x19')],{'raw':_0x862257[_0xaf71('0x1a')]?_0x862257[_0xaf71('0x1a')][_0xaf71('0x1b')]===undefined?!![]:![]:!![]})[_0xaf71('0x1c')](function(_0x490405){logger['info']('CreateVoiceDialReport',_0x862257);logger['debug'](_0xaf71('0x16'),_0x862257,JSON[_0xaf71('0x10')](_0x490405));_0x456ddf(_0x490405);})[_0xaf71('0x15')](function(_0x26e3af){logger[_0xaf71('0x11')](_0xaf71('0x16'),_0x26e3af['message'],_0x862257);_0x2e7b6a(_0x448ae7['error'](0x1f4,_0x26e3af[_0xaf71('0x13')]));});});};exports[_0xaf71('0x1d')]=function(_0x3a1f78){var _0x180451=this;return new Promise(function(_0x1db823,_0x18c91f){return db[_0xaf71('0x17')][_0xaf71('0x1e')](_0x3a1f78[_0xaf71('0x19')],{'raw':_0x3a1f78[_0xaf71('0x1a')]?_0x3a1f78[_0xaf71('0x1a')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3a1f78[_0xaf71('0x1a')]?_0x3a1f78[_0xaf71('0x1a')]['where']||null:null,'attributes':_0x3a1f78[_0xaf71('0x1a')]?_0x3a1f78['options']['attributes']||null:null,'limit':_0x3a1f78['options']?_0x3a1f78[_0xaf71('0x1a')]['limit']||null:null})[_0xaf71('0x1c')](function(_0x59f98f){logger['info'](_0xaf71('0x1d'),_0x3a1f78);logger[_0xaf71('0xe')](_0xaf71('0x1d'),_0x3a1f78,JSON[_0xaf71('0x10')](_0x59f98f));_0x1db823(_0x59f98f);})[_0xaf71('0x15')](function(_0x20a59c){logger[_0xaf71('0x11')](_0xaf71('0x1d'),_0x20a59c['message'],_0x3a1f78);_0x18c91f(_0x180451[_0xaf71('0x11')](0x1f4,_0x20a59c[_0xaf71('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7e58=['/:id','isAuthenticated','show','post','create','update','delete','destroy','multer','util','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceExtension.controller','index','get'];(function(_0x196dc5,_0x50be9d){var _0x56458e=function(_0x5bd98b){while(--_0x5bd98b){_0x196dc5['push'](_0x196dc5['shift']());}};_0x56458e(++_0x50be9d);}(_0x7e58,0x112));var _0x87e5=function(_0x45d0c9,_0x2e7caa){_0x45d0c9=_0x45d0c9-0x0;var _0x235c27=_0x7e58[_0x45d0c9];return _0x235c27;};'use strict';var multer=require(_0x87e5('0x0'));var util=require(_0x87e5('0x1'));var path=require('path');var timeout=require(_0x87e5('0x2'));var express=require(_0x87e5('0x3'));var router=express['Router']();var fs_extra=require(_0x87e5('0x4'));var auth=require(_0x87e5('0x5'));var interaction=require(_0x87e5('0x6'));var config=require(_0x87e5('0x7'));var controller=require(_0x87e5('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0x87e5('0x9')]);router[_0x87e5('0xa')](_0x87e5('0xb'),auth[_0x87e5('0xc')](),controller[_0x87e5('0xd')]);router[_0x87e5('0xe')]('/',auth[_0x87e5('0xc')](),controller[_0x87e5('0xf')]);router[_0x87e5('0xe')]('/:id/applications',auth[_0x87e5('0xc')](),controller['addApplications']);router['put']('/:id',auth[_0x87e5('0xc')](),controller[_0x87e5('0x10')]);router[_0x87e5('0x11')](_0x87e5('0xb'),auth[_0x87e5('0xc')](),controller[_0x87e5('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0x2aca=['express','../../components/interaction/service','../../config/environment','get','/:id','isAuthenticated','show','/:id/applications','addApplications','put','update','delete','destroy','multer','util'];(function(_0x18b9f1,_0x2f858e){var _0x23535c=function(_0x10d7e9){while(--_0x10d7e9){_0x18b9f1['push'](_0x18b9f1['shift']());}};_0x23535c(++_0x2f858e);}(_0x2aca,0x1ed));var _0xa2ac=function(_0x51496e,_0x29e254){_0x51496e=_0x51496e-0x0;var _0x3cf6c5=_0x2aca[_0x51496e];return _0x3cf6c5;};'use strict';var multer=require(_0xa2ac('0x0'));var util=require(_0xa2ac('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xa2ac('0x2'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xa2ac('0x3'));var config=require(_0xa2ac('0x4'));var controller=require('./voiceExtension.controller');router[_0xa2ac('0x5')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0xa2ac('0x6'),auth[_0xa2ac('0x7')](),controller[_0xa2ac('0x8')]);router['post']('/',auth[_0xa2ac('0x7')](),controller['create']);router['post'](_0xa2ac('0x9'),auth[_0xa2ac('0x7')](),controller[_0xa2ac('0xa')]);router[_0xa2ac('0xb')]('/:id',auth[_0xa2ac('0x7')](),controller[_0xa2ac('0xc')]);router[_0xa2ac('0xd')](_0xa2ac('0x6'),auth[_0xa2ac('0x7')](),controller[_0xa2ac('0xe')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfde1=['internal','inbound-fax','outbound-fax','system','any','BOOLEAN','wav','VIRTUAL','exten','exports','STRING','compositeIndex','ENUM','outbound'];(function(_0x334841,_0x2bbc4c){var _0x5beb4b=function(_0x4bea72){while(--_0x4bea72){_0x334841['push'](_0x334841['shift']());}};_0x5beb4b(++_0x2bbc4c);}(_0xfde1,0x105));var _0x1fde=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xfde1[_0x122ef9];return _0x42fba0;};'use strict';var Sequelize=require('sequelize');module[_0x1fde('0x0')]={'context':{'type':Sequelize[_0x1fde('0x1')],'allowNull':![],'unique':_0x1fde('0x2'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize['STRING'],'allowNull':![],'unique':'compositeIndex'},'priority':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'1','unique':_0x1fde('0x2')},'tag':{'type':Sequelize[_0x1fde('0x1')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'NoOp'},'appdata':{'type':Sequelize[_0x1fde('0x1')](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize[_0x1fde('0x3')]('inbound',_0x1fde('0x4'),_0x1fde('0x5'),_0x1fde('0x6'),_0x1fde('0x7'),_0x1fde('0x8'),_0x1fde('0x9')),'allowNull':![]},'description':{'type':Sequelize[_0x1fde('0x1')]},'interval':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'*,*,*,*'},'IntervalId':{'type':Sequelize['INTEGER']},'isApp':{'type':Sequelize[_0x1fde('0xa')],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize[_0x1fde('0x1')],'defaultValue':null},'callerID':{'type':Sequelize['STRING'],'allowNull':!![]},'record':{'type':Sequelize[_0x1fde('0xa')],'defaultValue':![]},'cutdigits':{'type':Sequelize['INTEGER']},'recordingFormat':{'type':Sequelize['STRING'],'defaultValue':_0x1fde('0xb')},'answer':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'name':{'type':Sequelize[_0x1fde('0xc')],'get':function(_0x359d09){return this['getDataValue'](_0x1fde('0xd'));}},'alias':{'type':Sequelize[_0x1fde('0x1')],'allowNull':!![]}};
\ No newline at end of file
+var _0x371e=['wav','VIRTUAL','getDataValue','sequelize','exports','STRING','compositeIndex','NoOp','ENUM','outbound','inbound-fax','outbound-fax','system','any','*,*,*,*','INTEGER','BOOLEAN'];(function(_0x4503df,_0xfec122){var _0x3f1b2b=function(_0x32b1de){while(--_0x32b1de){_0x4503df['push'](_0x4503df['shift']());}};_0x3f1b2b(++_0xfec122);}(_0x371e,0x19b));var _0xe371=function(_0x934c00,_0x40d18d){_0x934c00=_0x934c00-0x0;var _0x323115=_0x371e[_0x934c00];return _0x323115;};'use strict';var Sequelize=require(_0xe371('0x0'));module[_0xe371('0x1')]={'context':{'type':Sequelize[_0xe371('0x2')],'allowNull':![],'unique':_0xe371('0x3'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xe371('0x3')},'priority':{'type':Sequelize[_0xe371('0x2')],'allowNull':![],'defaultValue':'1','unique':_0xe371('0x3')},'tag':{'type':Sequelize[_0xe371('0x2')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize[_0xe371('0x2')],'allowNull':![],'defaultValue':_0xe371('0x4')},'appdata':{'type':Sequelize[_0xe371('0x2')](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize[_0xe371('0x5')]('inbound',_0xe371('0x6'),'internal',_0xe371('0x7'),_0xe371('0x8'),_0xe371('0x9'),_0xe371('0xa')),'allowNull':![]},'description':{'type':Sequelize[_0xe371('0x2')]},'interval':{'type':Sequelize[_0xe371('0x2')],'allowNull':![],'defaultValue':_0xe371('0xb')},'IntervalId':{'type':Sequelize[_0xe371('0xc')]},'isApp':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize[_0xe371('0x2')],'defaultValue':null},'callerID':{'type':Sequelize[_0xe371('0x2')],'allowNull':!![]},'record':{'type':Sequelize[_0xe371('0xd')],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0xe371('0xc')]},'recordingFormat':{'type':Sequelize[_0xe371('0x2')],'defaultValue':_0xe371('0xe')},'answer':{'type':Sequelize[_0xe371('0xd')],'defaultValue':!![]},'name':{'type':Sequelize[_0xe371('0xf')],'get':function(_0x3f42bf){return this[_0xe371('0x10')]('exten');}},'alias':{'type':Sequelize['STRING'],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a59=['params','keys','include','catch','body','startsWith','exten','concat','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','cutdigits','mandatoryDisposition','alias','findOne','transaction','isApp','createRouting','findAndCountAll','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','end','status','json','offset','undefined','limit','count','set','destroy','then','get','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','internal','filter','ignore','map','value','includes','type','find','name','UserProfileResource','sendStatus','stack','send','index','VoiceExtension','fieldName','query','filters','intersection','attributes','model','fields','length','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','options','rows','show'];(function(_0xf269fd,_0x17ad9e){var _0x9682ca=function(_0xbbebed){while(--_0xbbebed){_0xf269fd['push'](_0xf269fd['shift']());}};_0x9682ca(++_0x17ad9e);}(_0x9a59,0xce));var _0x99a5=function(_0x5bb6cd,_0x1e571f){_0x5bb6cd=_0x5bb6cd-0x0;var _0x203f7a=_0x9a59[_0x5bb6cd];return _0x203f7a;};'use strict';var _=require(_0x99a5('0x0'));var Redis=require(_0x99a5('0x1'));var qs=require(_0x99a5('0x2'));var logger=require(_0x99a5('0x3'))(_0x99a5('0x4'));var config=require(_0x99a5('0x5'));var db=require('../../mysqldb')['db'];config[_0x99a5('0x6')]=_[_0x99a5('0x7')](config[_0x99a5('0x6')],{'host':_0x99a5('0x8'),'port':0x18eb});var socket=require(_0x99a5('0x9'))(new Redis(config['redis']));require(_0x99a5('0xa'))[_0x99a5('0xb')](socket);function respondWithStatusCode(_0x9c9a0c,_0x30b321){_0x30b321=_0x30b321||0xcc;return function(_0x209501){if(_0x209501){return _0x9c9a0c['sendStatus'](_0x30b321);}return _0x9c9a0c['status'](_0x30b321)[_0x99a5('0xc')]();};}function respondWithResult(_0x58e3f6,_0x324c99){_0x324c99=_0x324c99||0xc8;return function(_0x40075b){if(_0x40075b){return _0x58e3f6[_0x99a5('0xd')](_0x324c99)[_0x99a5('0xe')](_0x40075b);}};}function respondWithFilteredResult(_0x41fb27,_0x153d48){return function(_0x2ae20c){if(_0x2ae20c){var _0x4dc8ac=typeof _0x153d48[_0x99a5('0xf')]===_0x99a5('0x10')&&typeof _0x153d48[_0x99a5('0x11')]===_0x99a5('0x10');var _0xb6c036=_0x2ae20c[_0x99a5('0x12')];var _0x5af1ed=_0x4dc8ac?0x0:_0x153d48['offset'];var _0x160ff4=_0x4dc8ac?_0x2ae20c['count']:_0x153d48['offset']+_0x153d48[_0x99a5('0x11')];var _0x405967;if(_0x160ff4>=_0xb6c036){_0x160ff4=_0xb6c036;_0x405967=0xc8;}else{_0x405967=0xce;}_0x41fb27[_0x99a5('0xd')](_0x405967);return _0x41fb27[_0x99a5('0x13')]('Content-Range',_0x5af1ed+'-'+_0x160ff4+'/'+_0xb6c036)[_0x99a5('0xe')](_0x2ae20c);}return null;};}function removeEntity(_0x5a63ef){return function(_0x1698c9){if(_0x1698c9){return _0x1698c9[_0x99a5('0x14')]()[_0x99a5('0x15')](function(){var _0x5757dd=_0x1698c9[_0x99a5('0x16')]({'plain':!![]});var _0x3b33d6=[{'name':_0x99a5('0x17'),'value':_0x99a5('0x18'),'ignore':![]},{'name':_0x99a5('0x19'),'value':_0x99a5('0x1a'),'ignore':![]},{'name':_0x99a5('0x1b'),'value':_0x99a5('0x1c'),'ignore':![]}];var _0x532357=_(_0x3b33d6)[_0x99a5('0x1d')](_0x99a5('0x1e'))[_0x99a5('0x1f')]('value')[_0x99a5('0x20')]();if(_[_0x99a5('0x21')](_0x532357,_0x5757dd[_0x99a5('0x22')])){return;}var _0xbdcb9b=_[_0x99a5('0x23')](_0x3b33d6,[_0x99a5('0x20'),_0x5757dd[_0x99a5('0x22')]])[_0x99a5('0x24')];return db[_0x99a5('0x25')][_0x99a5('0x14')]({'where':{'type':_0xbdcb9b,'resourceId':_0x5757dd['id']}})[_0x99a5('0x15')](function(){return _0x1698c9;});})[_0x99a5('0x15')](function(){_0x5a63ef[_0x99a5('0xd')](0xcc)[_0x99a5('0xc')]();});}};}function handleEntityNotFound(_0x3b2f53){return function(_0x396d02){if(!_0x396d02){_0x3b2f53[_0x99a5('0x26')](0x194);}return _0x396d02;};}function handleError(_0x3343a4,_0x34f729){_0x34f729=_0x34f729||0x1f4;return function(_0xbd0e91){logger['error'](_0xbd0e91[_0x99a5('0x27')]);if(_0xbd0e91[_0x99a5('0x24')]){delete _0xbd0e91[_0x99a5('0x24')];}_0x3343a4['status'](_0x34f729)[_0x99a5('0x28')](_0xbd0e91);};}exports[_0x99a5('0x29')]=function(_0x15d27d,_0x442206){var _0x3efc50={},_0x240e17={},_0x96c8d7={'count':0x0,'rows':[]};var _0x9936e8=_[_0x99a5('0x1f')](db[_0x99a5('0x2a')]['rawAttributes'],function(_0x3e7914){return{'name':_0x3e7914[_0x99a5('0x2b')],'type':_0x3e7914[_0x99a5('0x22')]['key']};});_0x240e17['model']=_['map'](_0x9936e8,_0x99a5('0x24'));_0x240e17[_0x99a5('0x2c')]=_['keys'](_0x15d27d[_0x99a5('0x2c')]);_0x240e17[_0x99a5('0x2d')]=_[_0x99a5('0x2e')](_0x240e17['model'],_0x240e17[_0x99a5('0x2c')]);_0x3efc50[_0x99a5('0x2f')]=_['intersection'](_0x240e17[_0x99a5('0x30')],qs[_0x99a5('0x31')](_0x15d27d[_0x99a5('0x2c')][_0x99a5('0x31')]));_0x3efc50[_0x99a5('0x2f')]=_0x3efc50['attributes'][_0x99a5('0x32')]?_0x3efc50[_0x99a5('0x2f')]:_0x240e17[_0x99a5('0x30')];if(!_0x15d27d[_0x99a5('0x2c')][_0x99a5('0x33')]('nolimit')){_0x3efc50[_0x99a5('0x11')]=qs['limit'](_0x15d27d[_0x99a5('0x2c')][_0x99a5('0x11')]);_0x3efc50[_0x99a5('0xf')]=qs[_0x99a5('0xf')](_0x15d27d[_0x99a5('0x2c')][_0x99a5('0xf')]);}_0x3efc50[_0x99a5('0x34')]=qs[_0x99a5('0x35')](_0x15d27d[_0x99a5('0x2c')][_0x99a5('0x35')]);_0x3efc50[_0x99a5('0x36')]=qs[_0x99a5('0x2d')](_[_0x99a5('0x37')](_0x15d27d['query'],_0x240e17['filters']),_0x9936e8);if(_0x15d27d['query']['filter']){_0x3efc50['where']=_[_0x99a5('0x38')](_0x3efc50[_0x99a5('0x36')],{'$or':_['map'](_0x9936e8,function(_0x329358){if(_0x329358[_0x99a5('0x22')]!==_0x99a5('0x39')){var _0x40b7cc={};_0x40b7cc[_0x329358[_0x99a5('0x24')]]={'$like':'%'+_0x15d27d[_0x99a5('0x2c')][_0x99a5('0x1d')]+'%'};return _0x40b7cc;}})});}_0x3efc50=_[_0x99a5('0x38')]({},_0x3efc50,_0x15d27d[_0x99a5('0x3a')]);var _0x7da3cf={'where':_0x3efc50['where']};return db[_0x99a5('0x2a')][_0x99a5('0x12')](_0x7da3cf)[_0x99a5('0x15')](function(_0x249e11){_0x96c8d7[_0x99a5('0x12')]=_0x249e11;if(_0x15d27d[_0x99a5('0x2c')]['includeAll']){_0x3efc50['include']=[{'all':!![]}];}return db['VoiceExtension']['findAll'](_0x3efc50);})[_0x99a5('0x15')](function(_0x3f5a50){_0x96c8d7[_0x99a5('0x3b')]=_0x3f5a50;return _0x96c8d7;})['then'](respondWithFilteredResult(_0x442206,_0x3efc50))['catch'](handleError(_0x442206,null));};exports[_0x99a5('0x3c')]=function(_0x3f8a48,_0x583cf8){var _0x4af539={'raw':![],'where':{'id':_0x3f8a48[_0x99a5('0x3d')]['id']}},_0x53e027={};_0x53e027[_0x99a5('0x30')]=_[_0x99a5('0x3e')](db[_0x99a5('0x2a')]['rawAttributes']);_0x53e027[_0x99a5('0x2c')]=_[_0x99a5('0x3e')](_0x3f8a48[_0x99a5('0x2c')]);_0x53e027['filters']=_['intersection'](_0x53e027[_0x99a5('0x30')],_0x53e027[_0x99a5('0x2c')]);_0x4af539[_0x99a5('0x2f')]=_[_0x99a5('0x2e')](_0x53e027[_0x99a5('0x30')],qs['fields'](_0x3f8a48['query'][_0x99a5('0x31')]));_0x4af539[_0x99a5('0x2f')]=_0x4af539[_0x99a5('0x2f')][_0x99a5('0x32')]?_0x4af539['attributes']:_0x53e027[_0x99a5('0x30')];if(_0x3f8a48[_0x99a5('0x2c')]['includeAll']){_0x4af539[_0x99a5('0x3f')]=[{'all':!![]}];}_0x4af539=_[_0x99a5('0x38')]({},_0x4af539,_0x3f8a48[_0x99a5('0x3a')]);return db[_0x99a5('0x2a')]['find'](_0x4af539)[_0x99a5('0x15')](handleEntityNotFound(_0x583cf8,null))[_0x99a5('0x15')](respondWithResult(_0x583cf8,null))['catch'](handleError(_0x583cf8,null));};exports[_0x99a5('0x14')]=function(_0x57888a,_0x116a5b){return db[_0x99a5('0x2a')][_0x99a5('0x23')]({'where':{'id':_0x57888a['params']['id']}})[_0x99a5('0x15')](handleEntityNotFound(_0x116a5b,null))[_0x99a5('0x15')](removeEntity(_0x116a5b,null))[_0x99a5('0x40')](handleError(_0x116a5b,null));};exports['create']=function(_0x345b0c,_0x717266){if(_0x345b0c[_0x99a5('0x41')]['type']==='outbound'&&!_[_0x99a5('0x42')](_0x345b0c['body']['exten'],'_')){_0x345b0c[_0x99a5('0x41')][_0x99a5('0x43')]='_'[_0x99a5('0x44')](_0x345b0c[_0x99a5('0x41')][_0x99a5('0x43')]);}return db[_0x99a5('0x2a')][_0x99a5('0x45')](_0x345b0c[_0x99a5('0x41')],{'raw':![]})['then'](function(_0x5727db){var _0x15173f=_0x345b0c[_0x99a5('0x46')][_0x99a5('0x16')]({'plain':!![]});if(!_0x15173f)throw new Error(_0x99a5('0x47'));if(_0x15173f[_0x99a5('0x48')]==='user'){var _0x297603=_0x5727db[_0x99a5('0x16')]({'plain':!![]});var _0x4f8f1c=[{'name':_0x99a5('0x17'),'value':_0x99a5('0x18')},{'name':_0x99a5('0x19'),'value':_0x99a5('0x1a')},{'name':_0x99a5('0x1b'),'value':_0x99a5('0x1c')}];var _0x1330f8=_['find'](_0x4f8f1c,[_0x99a5('0x20'),_0x297603['type']])[_0x99a5('0x24')];return db[_0x99a5('0x49')][_0x99a5('0x23')]({'where':{'name':_0x1330f8,'userProfileId':_0x15173f[_0x99a5('0x4a')]},'raw':!![]})[_0x99a5('0x15')](function(_0x270536){if(_0x270536&&_0x270536[_0x99a5('0x4b')]===0x0){return db[_0x99a5('0x25')][_0x99a5('0x45')]({'name':_0x297603['name'],'resourceId':_0x297603['id'],'type':_0x270536['name'],'sectionId':_0x270536['id']},{})['then'](function(){return _0x5727db;});}else{return _0x5727db;}})[_0x99a5('0x40')](function(_0x5c24f3){logger[_0x99a5('0x4c')](_0x99a5('0x4d'),_0x5c24f3);throw _0x5c24f3;});}return _0x5727db;})[_0x99a5('0x15')](respondWithResult(_0x717266,0xc9))[_0x99a5('0x40')](handleError(_0x717266,null));};exports[_0x99a5('0x4e')]=function(_0x4b7790,_0x500e34){if(_0x4b7790[_0x99a5('0x41')]['id']){delete _0x4b7790[_0x99a5('0x41')]['id'];}return db['VoiceExtension']['find']({'where':{'id':_0x4b7790['params']['id']}})[_0x99a5('0x15')](handleEntityNotFound(_0x500e34,null))[_0x99a5('0x15')](function(_0x452e8e){if(_0x452e8e){return db[_0x99a5('0x2a')]['update'](_[_0x99a5('0x37')](_0x4b7790['body'],['exten',_0x99a5('0x4f'),_0x99a5('0x50'),'recordingFormat',_0x99a5('0x51'),_0x99a5('0x52'),_0x99a5('0x53')]),{'where':{'context':_0x452e8e['context'],'exten':_0x452e8e[_0x99a5('0x43')]},'individualHooks':!![]})[_0x99a5('0x15')](function(_0x5211e8){return _0x5211e8;});}return null;})['then'](respondWithStatusCode(_0x500e34,null))[_0x99a5('0x40')](handleError(_0x500e34,null));};exports['addApplications']=function(_0x2e3fe2,_0x3d483b){return db[_0x99a5('0x2a')][_0x99a5('0x54')]({'where':{'id':_0x2e3fe2['params']['id']}})[_0x99a5('0x15')](function(_0x27ea69){if(_0x27ea69){return db['sequelize'][_0x99a5('0x55')](function(_0xf35719){return db[_0x99a5('0x2a')][_0x99a5('0x14')]({'where':{'VoiceExtensionId':_0x2e3fe2[_0x99a5('0x3d')]['id']},'transaction':_0xf35719})['then'](function(){var _0x12a338=_[_0x99a5('0x1f')](_0x2e3fe2[_0x99a5('0x41')],function(_0x2716ef){_0x2716ef['VoiceExtensionId']=_0x2e3fe2[_0x99a5('0x3d')]['id'];_0x2716ef[_0x99a5('0x56')]=!![];return _0x2716ef;});return _0x27ea69[_0x99a5('0x57')](_0x12a338);})[_0x99a5('0x15')](function(_0x5167b8){console['log']('LOG\x20~\x20.then\x20~\x20routing',_0x5167b8);return db[_0x99a5('0x2a')]['bulkCreate'](_0x5167b8,{'transaction':_0xf35719});});})[_0x99a5('0x15')](function(){return db['VoiceExtension'][_0x99a5('0x58')]({'where':{'isApp':!![],'VoiceExtensionId':_0x2e3fe2[_0x99a5('0x3d')]['id']},'order':'cast(priority\x20as\x20unsigned)'});});}})[_0x99a5('0x15')](respondWithResult(_0x3d483b,null))[_0x99a5('0x40')](handleError(_0x3d483b,null));};
\ No newline at end of file
+var _0x726a=['includeAll','include','findAll','rows','catch','show','params','keys','intersection','fields','length','create','body','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','InboundRoutes','UserProfileSection','autoAssociation','error','context','description','mandatoryDisposition','alias','addApplications','findOne','sequelize','isApp','rewriteDial','toLowerCase','true','createRouting','bulkCreate','findAndCountAll','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','to-csv','ejs','lodash','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','offset','undefined','count','set','Content-Range','apply','reject','update','then','get','OutboundRoutes','outbound','InternalRoutes','internal','ignore','map','value','includes','type','find','name','UserProfileResource','destroy','stack','send','index','VoiceExtension','rawAttributes','fieldName','key','model','query','filters','attributes','nolimit','limit','sort','where','pick','filter','merge','VIRTUAL','options'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x726a,0x1e5));var _0xa726=function(_0x32f3f5,_0x1a5cd1){_0x32f3f5=_0x32f3f5-0x0;var _0x52fcb1=_0x726a[_0x32f3f5];return _0x52fcb1;};'use strict';var emlformat=require(_0xa726('0x0'));var rimraf=require(_0xa726('0x1'));var zipdir=require(_0xa726('0x2'));var jsonpatch=require(_0xa726('0x3'));var rp=require(_0xa726('0x4'));var moment=require(_0xa726('0x5'));var BPromise=require(_0xa726('0x6'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xa726('0x7'));var ejs=require(_0xa726('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa726('0x9'));var squel=require(_0xa726('0xa'));var crypto=require('crypto');var jsforce=require(_0xa726('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xa726('0x7'));var querystring=require('querystring');var Papa=require(_0xa726('0xc'));var Redis=require(_0xa726('0xd'));var authService=require(_0xa726('0xe'));var qs=require(_0xa726('0xf'));var as=require(_0xa726('0x10'));var hardwareService=require(_0xa726('0x11'));var logger=require(_0xa726('0x12'))(_0xa726('0x13'));var utils=require(_0xa726('0x14'));var config=require(_0xa726('0x15'));var licenseUtil=require(_0xa726('0x16'));var db=require('../../mysqldb')['db'];config[_0xa726('0x17')]=_[_0xa726('0x18')](config['redis'],{'host':_0xa726('0x19'),'port':0x18eb});var socket=require(_0xa726('0x1a'))(new Redis(config[_0xa726('0x17')]));require(_0xa726('0x1b'))[_0xa726('0x1c')](socket);function respondWithStatusCode(_0x45f089,_0x144993){_0x144993=_0x144993||0xcc;return function(_0x3c6422){if(_0x3c6422){return _0x45f089[_0xa726('0x1d')](_0x144993);}return _0x45f089[_0xa726('0x1e')](_0x144993)[_0xa726('0x1f')]();};}function respondWithResult(_0x41c77e,_0x18f5b8){_0x18f5b8=_0x18f5b8||0xc8;return function(_0x25079d){if(_0x25079d){return _0x41c77e[_0xa726('0x1e')](_0x18f5b8)['json'](_0x25079d);}};}function respondWithFilteredResult(_0x3b8920,_0x620789){return function(_0x1840e1){if(_0x1840e1){var _0x2c1a67=typeof _0x620789[_0xa726('0x20')]===_0xa726('0x21')&&typeof _0x620789['limit']===_0xa726('0x21');var _0x5c5d4e=_0x1840e1['count'];var _0x213c7a=_0x2c1a67?0x0:_0x620789[_0xa726('0x20')];var _0x1ec5e8=_0x2c1a67?_0x1840e1[_0xa726('0x22')]:_0x620789[_0xa726('0x20')]+_0x620789['limit'];var _0x3d4fcd;if(_0x1ec5e8>=_0x5c5d4e){_0x1ec5e8=_0x5c5d4e;_0x3d4fcd=0xc8;}else{_0x3d4fcd=0xce;}_0x3b8920['status'](_0x3d4fcd);return _0x3b8920[_0xa726('0x23')](_0xa726('0x24'),_0x213c7a+'-'+_0x1ec5e8+'/'+_0x5c5d4e)['json'](_0x1840e1);}return null;};}function patchUpdates(_0x5e022f){return function(_0x1c3110){try{jsonpatch[_0xa726('0x25')](_0x1c3110,_0x5e022f,!![]);}catch(_0x3f79f9){return BPromise[_0xa726('0x26')](_0x3f79f9);}return _0x1c3110['save']();};}function saveUpdates(_0x39174a,_0x4c7f9e){return function(_0x4f672c){if(_0x4f672c){return _0x4f672c[_0xa726('0x27')](_0x39174a)['then'](function(_0x5f3678){return _0x5f3678;});}return null;};}function removeEntity(_0x29291b,_0x7a635e){return function(_0x442026){if(_0x442026){return _0x442026['destroy']()[_0xa726('0x28')](function(){var _0x38757b=_0x442026[_0xa726('0x29')]({'plain':!![]});var _0x159e4b=[{'name':'InboundRoutes','value':'inbound','ignore':![]},{'name':_0xa726('0x2a'),'value':_0xa726('0x2b'),'ignore':![]},{'name':_0xa726('0x2c'),'value':_0xa726('0x2d'),'ignore':![]}];var _0x12d9b5=_(_0x159e4b)['filter'](_0xa726('0x2e'))[_0xa726('0x2f')](_0xa726('0x30'))[_0xa726('0x30')]();if(_[_0xa726('0x31')](_0x12d9b5,_0x38757b[_0xa726('0x32')])){return;}var _0x5a48bf=_[_0xa726('0x33')](_0x159e4b,[_0xa726('0x30'),_0x38757b[_0xa726('0x32')]])[_0xa726('0x34')];return db[_0xa726('0x35')][_0xa726('0x36')]({'where':{'type':_0x5a48bf,'resourceId':_0x38757b['id']}})[_0xa726('0x28')](function(){return _0x442026;});})[_0xa726('0x28')](function(){_0x29291b['status'](0xcc)[_0xa726('0x1f')]();});}};}function handleEntityNotFound(_0x151f0d,_0x1bf9b1){return function(_0x368575){if(!_0x368575){_0x151f0d[_0xa726('0x1d')](0x194);}return _0x368575;};}function handleError(_0x571d81,_0x3c92ff){_0x3c92ff=_0x3c92ff||0x1f4;return function(_0x2325d0){logger['error'](_0x2325d0[_0xa726('0x37')]);if(_0x2325d0[_0xa726('0x34')]){delete _0x2325d0[_0xa726('0x34')];}_0x571d81[_0xa726('0x1e')](_0x3c92ff)[_0xa726('0x38')](_0x2325d0);};}exports[_0xa726('0x39')]=function(_0xd2c1b,_0x46f524){var _0x38ebc2={},_0x1d2eda={},_0x139bdb={'count':0x0,'rows':[]};var _0x67d0d=_[_0xa726('0x2f')](db[_0xa726('0x3a')][_0xa726('0x3b')],function(_0x44e455){return{'name':_0x44e455[_0xa726('0x3c')],'type':_0x44e455['type'][_0xa726('0x3d')]};});_0x1d2eda[_0xa726('0x3e')]=_[_0xa726('0x2f')](_0x67d0d,_0xa726('0x34'));_0x1d2eda[_0xa726('0x3f')]=_['keys'](_0xd2c1b[_0xa726('0x3f')]);_0x1d2eda[_0xa726('0x40')]=_['intersection'](_0x1d2eda[_0xa726('0x3e')],_0x1d2eda[_0xa726('0x3f')]);_0x38ebc2[_0xa726('0x41')]=_['intersection'](_0x1d2eda[_0xa726('0x3e')],qs['fields'](_0xd2c1b[_0xa726('0x3f')]['fields']));_0x38ebc2[_0xa726('0x41')]=_0x38ebc2[_0xa726('0x41')]['length']?_0x38ebc2[_0xa726('0x41')]:_0x1d2eda['model'];if(!_0xd2c1b['query']['hasOwnProperty'](_0xa726('0x42'))){_0x38ebc2[_0xa726('0x43')]=qs[_0xa726('0x43')](_0xd2c1b['query'][_0xa726('0x43')]);_0x38ebc2[_0xa726('0x20')]=qs[_0xa726('0x20')](_0xd2c1b[_0xa726('0x3f')][_0xa726('0x20')]);}_0x38ebc2['order']=qs[_0xa726('0x44')](_0xd2c1b[_0xa726('0x3f')]['sort']);_0x38ebc2[_0xa726('0x45')]=qs[_0xa726('0x40')](_[_0xa726('0x46')](_0xd2c1b[_0xa726('0x3f')],_0x1d2eda[_0xa726('0x40')]),_0x67d0d);if(_0xd2c1b[_0xa726('0x3f')][_0xa726('0x47')]){_0x38ebc2[_0xa726('0x45')]=_[_0xa726('0x48')](_0x38ebc2['where'],{'$or':_['map'](_0x67d0d,function(_0x4d9b03){if(_0x4d9b03[_0xa726('0x32')]!==_0xa726('0x49')){var _0x28b5d8={};_0x28b5d8[_0x4d9b03[_0xa726('0x34')]]={'$like':'%'+_0xd2c1b[_0xa726('0x3f')]['filter']+'%'};return _0x28b5d8;}})});}_0x38ebc2=_['merge']({},_0x38ebc2,_0xd2c1b[_0xa726('0x4a')]);var _0xc700ea={'where':_0x38ebc2[_0xa726('0x45')]};return db[_0xa726('0x3a')][_0xa726('0x22')](_0xc700ea)[_0xa726('0x28')](function(_0x18d747){_0x139bdb['count']=_0x18d747;if(_0xd2c1b['query'][_0xa726('0x4b')]){_0x38ebc2[_0xa726('0x4c')]=[{'all':!![]}];}return db['VoiceExtension'][_0xa726('0x4d')](_0x38ebc2);})[_0xa726('0x28')](function(_0x3c1a22){_0x139bdb[_0xa726('0x4e')]=_0x3c1a22;return _0x139bdb;})[_0xa726('0x28')](respondWithFilteredResult(_0x46f524,_0x38ebc2))[_0xa726('0x4f')](handleError(_0x46f524,null));};exports[_0xa726('0x50')]=function(_0x1dc7c1,_0x2b5d22){var _0x5dd190={'raw':![],'where':{'id':_0x1dc7c1[_0xa726('0x51')]['id']}},_0xa12a17={};_0xa12a17[_0xa726('0x3e')]=_['keys'](db[_0xa726('0x3a')][_0xa726('0x3b')]);_0xa12a17[_0xa726('0x3f')]=_[_0xa726('0x52')](_0x1dc7c1[_0xa726('0x3f')]);_0xa12a17[_0xa726('0x40')]=_['intersection'](_0xa12a17[_0xa726('0x3e')],_0xa12a17[_0xa726('0x3f')]);_0x5dd190[_0xa726('0x41')]=_[_0xa726('0x53')](_0xa12a17[_0xa726('0x3e')],qs['fields'](_0x1dc7c1['query'][_0xa726('0x54')]));_0x5dd190['attributes']=_0x5dd190[_0xa726('0x41')][_0xa726('0x55')]?_0x5dd190[_0xa726('0x41')]:_0xa12a17['model'];if(_0x1dc7c1[_0xa726('0x3f')][_0xa726('0x4b')]){_0x5dd190[_0xa726('0x4c')]=[{'all':!![]}];}_0x5dd190=_[_0xa726('0x48')]({},_0x5dd190,_0x1dc7c1[_0xa726('0x4a')]);return db[_0xa726('0x3a')]['find'](_0x5dd190)[_0xa726('0x28')](handleEntityNotFound(_0x2b5d22,null))[_0xa726('0x28')](respondWithResult(_0x2b5d22,null))['catch'](handleError(_0x2b5d22,null));};exports[_0xa726('0x36')]=function(_0x43b793,_0x5f2dc1){return db[_0xa726('0x3a')][_0xa726('0x33')]({'where':{'id':_0x43b793[_0xa726('0x51')]['id']}})['then'](handleEntityNotFound(_0x5f2dc1,null))[_0xa726('0x28')](removeEntity(_0x5f2dc1,null))[_0xa726('0x4f')](handleError(_0x5f2dc1,null));};exports[_0xa726('0x56')]=function(_0x5a4156,_0x305594){if(_0x5a4156[_0xa726('0x57')][_0xa726('0x32')]==='outbound'&&!_[_0xa726('0x58')](_0x5a4156['body']['exten'],'_')){_0x5a4156[_0xa726('0x57')][_0xa726('0x59')]='_'[_0xa726('0x5a')](_0x5a4156[_0xa726('0x57')][_0xa726('0x59')]);}return db['VoiceExtension']['create'](_0x5a4156[_0xa726('0x57')],{'raw':![]})[_0xa726('0x28')](function(_0x36bd76){var _0x464ba2=_0x5a4156[_0xa726('0x5b')][_0xa726('0x29')]({'plain':!![]});if(!_0x464ba2)throw new Error(_0xa726('0x5c'));if(_0x464ba2[_0xa726('0x5d')]===_0xa726('0x5b')){var _0x55127b=_0x36bd76[_0xa726('0x29')]({'plain':!![]});var _0x14bd32=[{'name':_0xa726('0x5e'),'value':'inbound'},{'name':'OutboundRoutes','value':_0xa726('0x2b')},{'name':_0xa726('0x2c'),'value':_0xa726('0x2d')}];var _0x3a85eb=_[_0xa726('0x33')](_0x14bd32,[_0xa726('0x30'),_0x55127b[_0xa726('0x32')]])[_0xa726('0x34')];return db[_0xa726('0x5f')]['find']({'where':{'name':_0x3a85eb,'userProfileId':_0x464ba2['userProfileId']},'raw':!![]})[_0xa726('0x28')](function(_0xdd68ba){if(_0xdd68ba&&_0xdd68ba[_0xa726('0x60')]===0x0){return db[_0xa726('0x35')][_0xa726('0x56')]({'name':_0x55127b[_0xa726('0x34')],'resourceId':_0x55127b['id'],'type':_0xdd68ba['name'],'sectionId':_0xdd68ba['id']},{})['then'](function(){return _0x36bd76;});}else{return _0x36bd76;}})[_0xa726('0x4f')](function(_0x411f87){logger[_0xa726('0x61')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x411f87);throw _0x411f87;});}return _0x36bd76;})[_0xa726('0x28')](respondWithResult(_0x305594,0xc9))[_0xa726('0x4f')](handleError(_0x305594,null));};exports['update']=function(_0x32f272,_0x2d6f2f){if(_0x32f272[_0xa726('0x57')]['id']){delete _0x32f272[_0xa726('0x57')]['id'];}return db[_0xa726('0x3a')]['find']({'where':{'id':_0x32f272[_0xa726('0x51')]['id']}})[_0xa726('0x28')](handleEntityNotFound(_0x2d6f2f,null))[_0xa726('0x28')](function(_0x471267){if(_0x471267){return db[_0xa726('0x3a')]['update'](_['pick'](_0x32f272[_0xa726('0x57')],[_0xa726('0x59'),_0xa726('0x62'),_0xa726('0x63'),'recordingFormat','cutdigits',_0xa726('0x64'),_0xa726('0x65')]),{'where':{'context':_0x471267['context'],'exten':_0x471267[_0xa726('0x59')]},'individualHooks':!![]})['then'](function(_0x3fa3cb){return _0x3fa3cb;});}return null;})[_0xa726('0x28')](respondWithStatusCode(_0x2d6f2f,null))[_0xa726('0x4f')](handleError(_0x2d6f2f,null));};exports[_0xa726('0x66')]=function(_0x75814d,_0x390d55){return db[_0xa726('0x3a')][_0xa726('0x67')]({'where':{'id':_0x75814d[_0xa726('0x51')]['id']}})[_0xa726('0x28')](function(_0xbb6a02){if(_0xbb6a02){return db[_0xa726('0x68')]['transaction'](function(_0x41160e){return db[_0xa726('0x3a')][_0xa726('0x36')]({'where':{'VoiceExtensionId':_0x75814d[_0xa726('0x51')]['id']},'transaction':_0x41160e})[_0xa726('0x28')](function(){var _0x5b4a82=_[_0xa726('0x2f')](_0x75814d['body'],function(_0x189d41){_0x189d41['VoiceExtensionId']=_0x75814d[_0xa726('0x51')]['id'];_0x189d41[_0xa726('0x69')]=!![];return _0x189d41;});var _0x35fcb6=_0x75814d['query'][_0xa726('0x6a')]&&_0x75814d[_0xa726('0x3f')][_0xa726('0x6a')][_0xa726('0x6b')]()===_0xa726('0x6c')?!![]:![];return _0xbb6a02[_0xa726('0x6d')](_0x5b4a82,_0x35fcb6);})['then'](function(_0x3ae5fb){return db['VoiceExtension'][_0xa726('0x6e')](_0x3ae5fb,{'transaction':_0x41160e});});})[_0xa726('0x28')](function(){return db[_0xa726('0x3a')][_0xa726('0x6f')]({'where':{'isApp':!![],'VoiceExtensionId':_0x75814d[_0xa726('0x51')]['id']},'order':'cast(priority\x20as\x20unsigned)'});});}})['then'](respondWithResult(_0x390d55,null))[_0xa726('0x4f')](handleError(_0x390d55,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25ad=['events','VoiceExtension','setMaxListeners','update','remove','emit','hasOwnProperty','hook','exports'];(function(_0xad9d4d,_0x5bf432){var _0x195e72=function(_0x1d2e78){while(--_0x1d2e78){_0xad9d4d['push'](_0xad9d4d['shift']());}};_0x195e72(++_0x5bf432);}(_0x25ad,0x1b0));var _0xd25a=function(_0x2f194c,_0x1c005f){_0x2f194c=_0x2f194c-0x0;var _0x9039d2=_0x25ad[_0x2f194c];return _0x9039d2;};'use strict';var EventEmitter=require(_0xd25a('0x0'));var VoiceExtension=require('../../mysqldb')['db'][_0xd25a('0x1')];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents[_0xd25a('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0xd25a('0x3'),'afterDestroy':_0xd25a('0x4')};function emitEvent(_0x12c97e){return function(_0x34165a,_0x5e12fa,_0x49a594){VoiceExtensionEvents[_0xd25a('0x5')](_0x12c97e+':'+_0x34165a['id'],_0x34165a);VoiceExtensionEvents[_0xd25a('0x5')](_0x12c97e,_0x34165a);_0x49a594(null);};}for(var e in events){if(events[_0xd25a('0x6')](e)){var event=events[e];VoiceExtension[_0xd25a('0x7')](e,emitEvent(event));}}module[_0xd25a('0x8')]=VoiceExtensionEvents;
\ No newline at end of file
+var _0xc596=['emit','hasOwnProperty','hook','events','../../mysqldb','VoiceExtension','save','update','remove'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0xc596,0x159));var _0x6c59=function(_0x4d9205,_0x8e02b2){_0x4d9205=_0x4d9205-0x0;var _0x2d6e01=_0xc596[_0x4d9205];return _0x2d6e01;};'use strict';var EventEmitter=require(_0x6c59('0x0'));var VoiceExtension=require(_0x6c59('0x1'))['db'][_0x6c59('0x2')];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x6c59('0x3'),'afterUpdate':_0x6c59('0x4'),'afterDestroy':_0x6c59('0x5')};function emitEvent(_0x30e48e){return function(_0x2f9202,_0x5dbd70,_0x3b6f6a){VoiceExtensionEvents['emit'](_0x30e48e+':'+_0x2f9202['id'],_0x2f9202);VoiceExtensionEvents[_0x6c59('0x6')](_0x30e48e,_0x2f9202);_0x3b6f6a(null);};}for(var e in events){if(events[_0x6c59('0x7')](e)){var event=events[e];VoiceExtension[_0x6c59('0x8')](e,emitEvent(event));}}module['exports']=VoiceExtensionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2fed=['outboundrouteid=','hasOwnProperty','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','timeout','split','name','param','phone','prefix','SIP','trunk','options','none','indexOf','U(xcally-mixmonitor-context)','join','isEmpty','Interval','interval','IntervalId','then','length','intervals','map','toLowerCase','tag','CDR(tag)=','callerID','Set(CALLERID(all)=','answer','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','appdata','priority','concat','last','catch','VoiceExtension','voice_extensions','get','Hangup','lodash','./voiceExtension.attributes','exports','type','Set','CDR(type)=','context','exten','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','inbound','push','CDR(routeid)=','MONITOR_OPTIONS=ab','outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','XCALLY-MOTION-PROGRESS=0'];(function(_0x38faf6,_0x24c03c){var _0x4a3dc6=function(_0x3d8715){while(--_0x3d8715){_0x38faf6['push'](_0x38faf6['shift']());}};_0x4a3dc6(++_0x24c03c);}(_0x2fed,0x7c));var _0xd2fe=function(_0x39ed4b,_0x2e61b5){_0x39ed4b=_0x39ed4b-0x0;var _0x16eefe=_0x2fed[_0x39ed4b];return _0x16eefe;};'use strict';var _=require(_0xd2fe('0x0'));var attributes=require(_0xd2fe('0x1'));module[_0xd2fe('0x2')]=function(_0x1f0e53){var _0x15f95a=_0x1f0e53['models'];function _0x3c9206(_0x20b497){var _0x48707a=0x2;var _0x58f3f8=[{'type':_0x20b497[_0xd2fe('0x3')],'app':_0xd2fe('0x4'),'appdata':_0xd2fe('0x5')+_0x20b497['type'],'context':_0x20b497[_0xd2fe('0x6')],'exten':_0x20b497[_0xd2fe('0x7')],'priority':_0x48707a++,'VoiceExtensionId':_0x20b497['id']},{'type':_0x20b497[_0xd2fe('0x3')],'app':_0x20b497[_0xd2fe('0x8')]?'Set':_0xd2fe('0x9'),'appdata':_0x20b497[_0xd2fe('0x8')]?_0xd2fe('0xa')+_0x20b497[_0xd2fe('0x8')]:_0xd2fe('0xb'),'context':_0x20b497[_0xd2fe('0x6')],'exten':_0x20b497[_0xd2fe('0x7')],'priority':_0x48707a++,'VoiceExtensionId':_0x20b497['id']}];if(_0x20b497[_0xd2fe('0x3')]===_0xd2fe('0xc')){_0x58f3f8[_0xd2fe('0xd')]({'type':_0xd2fe('0xc'),'app':_0xd2fe('0x4'),'appdata':_0xd2fe('0xe')+_0x20b497['id'],'context':_0x20b497[_0xd2fe('0x6')],'exten':_0x20b497[_0xd2fe('0x7')],'priority':_0x48707a++,'VoiceExtensionId':_0x20b497['id']});}_0x58f3f8[_0xd2fe('0xd')]({'type':_0x20b497[_0xd2fe('0x3')],'app':_0xd2fe('0x4'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x20b497[_0xd2fe('0x6')],'exten':_0x20b497[_0xd2fe('0x7')],'priority':_0x48707a++,'VoiceExtensionId':_0x20b497['id']},{'type':_0x20b497[_0xd2fe('0x3')],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x20b497['context'],'exten':_0x20b497[_0xd2fe('0x7')],'priority':_0x48707a++,'VoiceExtensionId':_0x20b497['id']},{'type':_0x20b497['type'],'app':_0xd2fe('0x4'),'appdata':_0xd2fe('0xf'),'context':_0x20b497[_0xd2fe('0x6')],'exten':_0x20b497[_0xd2fe('0x7')],'priority':_0x48707a++,'VoiceExtensionId':_0x20b497['id']});return _0x58f3f8;}function _0x303ca2(_0x2bc730){var _0x588d03=0x2;var _0x5486e2=[{'type':_0xd2fe('0x10'),'app':_0xd2fe('0x4'),'appdata':'CDR(type)=outbound','context':_0x2bc730[_0xd2fe('0x6')],'exten':_0x2bc730[_0xd2fe('0x7')],'priority':_0x588d03++,'VoiceExtensionId':_0x2bc730['id']},{'type':_0xd2fe('0x10'),'app':_0x2bc730[_0xd2fe('0x8')]?_0xd2fe('0x4'):_0xd2fe('0x9'),'appdata':_0x2bc730[_0xd2fe('0x8')]?_0xd2fe('0xa')+_0x2bc730[_0xd2fe('0x8')]:_0xd2fe('0xb'),'context':_0x2bc730['context'],'exten':_0x2bc730[_0xd2fe('0x7')],'priority':_0x588d03++,'VoiceExtensionId':_0x2bc730['id']},{'type':'outbound','app':_0xd2fe('0x4'),'appdata':_0xd2fe('0x11')+(_0x2bc730[_0xd2fe('0x12')]?_0xd2fe('0x13')+_0x2bc730['cutdigits']+'}':_0xd2fe('0x14')),'context':_0x2bc730['context'],'exten':_0x2bc730[_0xd2fe('0x7')],'priority':_0x588d03++,'VoiceExtensionId':_0x2bc730['id']},{'type':_0xd2fe('0x10'),'app':_0xd2fe('0x4'),'appdata':'CDR(routeid)='+_0x2bc730['id'],'context':_0x2bc730['context'],'exten':_0x2bc730[_0xd2fe('0x7')],'priority':_0x588d03++,'VoiceExtensionId':_0x2bc730['id']},{'type':_0xd2fe('0x10'),'app':_0xd2fe('0x15'),'appdata':_0xd2fe('0x16')+(_0x588d03+0x2)+_0xd2fe('0x17')+(_0x588d03+0x1)+')','context':_0x2bc730['context'],'exten':_0x2bc730['exten'],'priority':_0x588d03++,'VoiceExtensionId':_0x2bc730['id']},{'type':'outbound','app':_0xd2fe('0x4'),'appdata':_0x2bc730[_0xd2fe('0x12')]?_0xd2fe('0x18')+_0x2bc730[_0xd2fe('0x12')]+'}':'CDR(prefix)=noprefix','context':_0x2bc730[_0xd2fe('0x6')],'exten':_0x2bc730[_0xd2fe('0x7')],'priority':_0x588d03++,'VoiceExtensionId':_0x2bc730['id']},{'type':_0xd2fe('0x10'),'app':_0xd2fe('0x4'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x2bc730[_0xd2fe('0x6')],'exten':_0x2bc730[_0xd2fe('0x7')],'priority':_0x588d03++,'VoiceExtensionId':_0x2bc730['id']},{'type':_0xd2fe('0x10'),'app':'Set','appdata':_0xd2fe('0x19'),'context':_0x2bc730[_0xd2fe('0x6')],'exten':_0x2bc730[_0xd2fe('0x7')],'priority':_0x588d03++,'VoiceExtensionId':_0x2bc730['id']},{'type':_0xd2fe('0x10'),'app':'Set','appdata':_0xd2fe('0xf'),'context':_0x2bc730[_0xd2fe('0x6')],'exten':_0x2bc730[_0xd2fe('0x7')],'priority':_0x588d03++,'VoiceExtensionId':_0x2bc730['id']},{'type':_0xd2fe('0x10'),'app':'Set','appdata':_0xd2fe('0x1a')+_0x2bc730['id'],'context':_0x2bc730[_0xd2fe('0x6')],'exten':_0x2bc730[_0xd2fe('0x7')],'priority':_0x588d03++,'VoiceExtensionId':_0x2bc730['id']}];if(_0x2bc730[_0xd2fe('0x1b')](_0xd2fe('0x1c'))&&_0x2bc730[_0xd2fe('0x1c')]!=='none'){_0x5486e2[_0xd2fe('0xd')]({'type':_0xd2fe('0x10'),'app':'Set','appdata':_0xd2fe('0x1d'),'context':_0x2bc730[_0xd2fe('0x6')],'exten':_0x2bc730[_0xd2fe('0x7')],'priority':_0x588d03++,'VoiceExtensionId':_0x2bc730['id']},{'type':'outbound','app':_0xd2fe('0x4'),'appdata':_0xd2fe('0x1e')+_0x2bc730['recordingFormat']||_0xd2fe('0x1f'),'context':_0x2bc730[_0xd2fe('0x6')],'exten':_0x2bc730[_0xd2fe('0x7')],'priority':_0x588d03++,'VoiceExtensionId':_0x2bc730['id']});}return _0x5486e2;}function _0x426bd6(_0x351ab3,_0xaaf366){var _0x5b2668=[{'name':'trunk','param':0x0},{'name':_0xd2fe('0x20'),'param':0x1},{'name':'options','param':0x2},{'name':'url','param':0x3}];var _0x1d7679={};var _0x6cc70e=_0xaaf366[_0xd2fe('0x21')](',');var _0x101ba2=[];for(var _0x32278d=0x0;_0x32278d<_0x5b2668['length'];_0x32278d++){switch(_0x5b2668[_0x32278d][_0xd2fe('0x22')]){case'trunk':_0x1d7679['trunk']=_0x6cc70e[_0x5b2668[_0x32278d][_0xd2fe('0x23')]][_0xd2fe('0x21')]('/')[0x1];_0x1d7679[_0xd2fe('0x24')]=_0x6cc70e[_0x5b2668[_0x32278d][_0xd2fe('0x23')]][_0xd2fe('0x21')]('/')[0x2];_0x1d7679[_0xd2fe('0x25')]=_0x1d7679[_0xd2fe('0x24')]?_0x1d7679['phone'][_0xd2fe('0x21')]('$')[0x0]:undefined;_0x1d7679[_0xd2fe('0x24')]=_0x351ab3[_0xd2fe('0x12')]?(_0x1d7679['prefix']||'')+'${EXTEN:'+_0x351ab3[_0xd2fe('0x12')]+'}':(_0x1d7679[_0xd2fe('0x25')]||'')+_0xd2fe('0x14');_0x101ba2[_0x5b2668[_0x32278d][_0xd2fe('0x23')]]=[_0xd2fe('0x26'),_0x1d7679[_0xd2fe('0x27')],_0x1d7679[_0xd2fe('0x24')]]['join']('/');break;case _0xd2fe('0x28'):_0x1d7679[_0xd2fe('0x28')]=_0x6cc70e[_0x5b2668[_0x32278d]['param']];if(_0x351ab3[_0xd2fe('0x1c')]!==_0xd2fe('0x29')){if(_0x1d7679[_0xd2fe('0x28')][_0xd2fe('0x2a')]('U(xcally-mixmonitor-context)')<0x0){_0x1d7679[_0xd2fe('0x28')]+=_0xd2fe('0x2b');}}else{_0x1d7679[_0xd2fe('0x28')]=_0x1d7679[_0xd2fe('0x28')]['replace'](_0xd2fe('0x2b'),'');}_0x101ba2[_0x5b2668[_0x32278d][_0xd2fe('0x23')]]=_0x1d7679[_0xd2fe('0x28')];break;default:_0x101ba2[_0x5b2668[_0x32278d]['param']]=_0x6cc70e[_0x5b2668[_0x32278d][_0xd2fe('0x23')]];}}return _0x101ba2[_0xd2fe('0x2c')](',');}function _0x382334(_0x59349f,_0x3bf20b,_0x1ba6de){return new Promise(function(_0x4df7ed,_0x53200a){var _0x4931a0=[];if(_[_0xd2fe('0x2d')](_0x3bf20b))return _0x4df7ed(_0x4931a0);_0x15f95a[_0xd2fe('0x2e')]['findAll']({'attributes':['id',_0xd2fe('0x2f'),_0xd2fe('0x30')],'raw':!![]})[_0xd2fe('0x31')](function(_0x5e6f7d){for(var _0x2d873d=0x0,_0x3b0f93=0x0;_0x2d873d<_0x3bf20b[_0xd2fe('0x32')];_0x2d873d++,_0x3b0f93=0x0){var _0x1ebccd=_0x3bf20b[_0x2d873d];var _0xb9901e=[];var _0x23b612=[];delete _0x1ebccd['id'];if(_0x1ebccd[_0xd2fe('0x2f')]!=='*,*,*,*'){_0x1ebccd[_0xd2fe('0x33')]=[_0x1ebccd[_0xd2fe('0x2f')]];}else{_0x1ebccd[_0xd2fe('0x33')]=_0x1ebccd[_0xd2fe('0x30')]?_[_0xd2fe('0x34')](_['filter'](_0x5e6f7d,{'IntervalId':_0x1ebccd['IntervalId']}),_0xd2fe('0x2f')):[];}_0x1ebccd[_0xd2fe('0x6')]=_0x59349f[_0xd2fe('0x6')];_0x1ebccd['exten']=_0x59349f['exten'];if(_0x1ebccd[_0xd2fe('0x3')])_0x1ebccd[_0xd2fe('0x3')]=_0x1ebccd[_0xd2fe('0x3')][_0xd2fe('0x35')]();if(_0x59349f[_0xd2fe('0x3')]===_0xd2fe('0x10')){if(_0x1ebccd[_0xd2fe('0x1b')](_0xd2fe('0x36'))&&_0x1ebccd[_0xd2fe('0x36')]&&_0x1ebccd[_0xd2fe('0x36')]!=='--'){_0xb9901e[_0xd2fe('0xd')]({'type':_0x1ebccd['type'][_0xd2fe('0x35')](),'app':_0xd2fe('0x4'),'appdata':_0xd2fe('0x37')+_0x1ebccd['tag'],'context':_0x59349f[_0xd2fe('0x6')],'exten':_0x59349f['exten'],'priority':_0x1ebccd['intervals'][_0xd2fe('0x32')]+_0x1ba6de+_0x3b0f93++,'VoiceExtensionId':_0x59349f['id']});}_0xb9901e['push']({'type':_0x1ebccd[_0xd2fe('0x3')]['toLowerCase'](),'app':_0xd2fe('0x15'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x1ebccd[_0xd2fe('0x38')]?_0xd2fe('0x39')+_0x1ebccd['callerID']+')':'NoOp(No\x20number\x20available)'),'context':_0x59349f[_0xd2fe('0x6')],'exten':_0x59349f[_0xd2fe('0x7')],'priority':_0x1ebccd['intervals'][_0xd2fe('0x32')]+_0x1ba6de+_0x3b0f93++,'VoiceExtensionId':_0x59349f['id']});}else{if(_0x1ebccd[_0xd2fe('0x1b')](_0xd2fe('0x3a'))){if(['queue','playback']['includes'](_0x1ebccd[_0xd2fe('0x3b')]['toLowerCase']())&&_0x1ebccd[_0xd2fe('0x3c')]!==_0xd2fe('0x3d')){if(_0x1ebccd[_0xd2fe('0x3a')]){_0xb9901e[_0xd2fe('0xd')]({'type':_0x1ebccd[_0xd2fe('0x3')]['toLowerCase'](),'app':_0xd2fe('0x15'),'appdata':_0xd2fe('0x3e'),'context':_0x59349f['context'],'exten':_0x59349f[_0xd2fe('0x7')],'priority':_0x1ebccd[_0xd2fe('0x33')]['length']+_0x1ba6de+_0x3b0f93++,'VoiceExtensionId':_0x59349f['id']});_0xb9901e[_0xd2fe('0xd')]({'type':_0x1ebccd[_0xd2fe('0x3')][_0xd2fe('0x35')](),'app':_0xd2fe('0x4'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x59349f['context'],'exten':_0x59349f[_0xd2fe('0x7')],'priority':_0x1ebccd[_0xd2fe('0x33')][_0xd2fe('0x32')]+_0x1ba6de+_0x3b0f93++,'VoiceExtensionId':_0x59349f['id']});}else{_0xb9901e['push']({'type':_0x1ebccd[_0xd2fe('0x3')]['toLowerCase'](),'app':_0xd2fe('0x15'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x59349f[_0xd2fe('0x6')],'exten':_0x59349f['exten'],'priority':_0x1ebccd[_0xd2fe('0x33')][_0xd2fe('0x32')]+_0x1ba6de+_0x3b0f93++,'VoiceExtensionId':_0x59349f['id']});_0xb9901e[_0xd2fe('0xd')]({'type':_0x1ebccd['type'][_0xd2fe('0x35')](),'app':'Set','appdata':_0xd2fe('0x3f'),'context':_0x59349f[_0xd2fe('0x6')],'exten':_0x59349f[_0xd2fe('0x7')],'priority':_0x1ebccd[_0xd2fe('0x33')]['length']+_0x1ba6de+_0x3b0f93++,'VoiceExtensionId':_0x59349f['id']});}}}}for(var _0x217192=0x0;_0x217192<_0x1ebccd['intervals'][_0xd2fe('0x32')];_0x217192++){var _0x1a17c7=_0x1ba6de+_0x1ebccd[_0xd2fe('0x33')][_0xd2fe('0x32')];var _0x2574bc=_0x217192===_0x1ebccd[_0xd2fe('0x33')]['length']-0x1?_0x1ba6de+_0xb9901e[_0xd2fe('0x32')]+_0x23b612[_0xd2fe('0x32')]+0x2:_0x1ba6de+_0x217192+0x1;_0xb9901e['splice'](_0x217192,0x0,{'type':_0x59349f['type'],'app':_0xd2fe('0x40'),'appdata':_0x1ebccd['intervals'][_0x217192]+'?'+_0x59349f[_0xd2fe('0x6')]+_0xd2fe('0x41')+_0x1a17c7+':'+_0x59349f[_0xd2fe('0x6')]+_0xd2fe('0x41')+_0x2574bc,'exten':_0x59349f[_0xd2fe('0x7')],'context':_0x59349f['context'],'priority':_0x1ba6de+_0x217192,'VoiceExtensionId':_0x59349f['id']});}if(_0x1ebccd[_0xd2fe('0x3c')]==='outboundDial')_0x1ebccd['appdata']=_0x426bd6(_0x59349f,_0x1ebccd[_0xd2fe('0x42')]);_0x1ebccd[_0xd2fe('0x43')]=_0xb9901e['length']?_['last'](_0xb9901e)[_0xd2fe('0x43')]+0x1:_0x1ba6de;_0x4931a0=_[_0xd2fe('0x44')](_0x4931a0,_0xb9901e,[_0x1ebccd],_0x23b612);_0x1ba6de=_[_0xd2fe('0x45')](_0x4931a0)[_0xd2fe('0x43')]+0x1;}return _0x4df7ed(_0x4931a0);})[_0xd2fe('0x46')](function(_0x4371f6){_0x53200a(_0x4371f6);});});}return _0x1f0e53['define'](_0xd2fe('0x47'),attributes,{'tableName':_0xd2fe('0x48'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x10e2fc){var _0x3040b3=this[_0xd2fe('0x49')]({'plain':!![]});var _0x184d39=_0x3040b3[_0xd2fe('0x3')]===_0xd2fe('0x10')?_0x303ca2(_0x3040b3):_0x3c9206(_0x3040b3);return _0x382334(_0x3040b3,_0x10e2fc,_['last'](_0x184d39)['priority']+0x1)[_0xd2fe('0x31')](function(_0x3b0667){var _0x16095a=_[_0xd2fe('0x44')](_0x184d39,_0x3b0667);_0x16095a[_0xd2fe('0xd')]({'type':_0x3040b3['type'],'app':_0xd2fe('0x4a'),'exten':_0x3040b3[_0xd2fe('0x7')],'context':_0x3040b3[_0xd2fe('0x6')],'priority':_['last'](_0x16095a)[_0xd2fe('0x43')]+0x1,'VoiceExtensionId':_0x3040b3['id']});return _0x16095a;});}}});};
\ No newline at end of file
+var _0x577f=['push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','trunk','timeout','options','url','split','length','param','prefix','phone','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval','then','intervals','IntervalId','map','filter','tag','toLowerCase','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','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','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','concat','last','catch','VoiceExtension','voice_extensions','util','lodash','./voiceExtension.attributes','exports','models','type','context','exten','alias','Set','NoOp','CDR(routeAlias)=','No\x20alias\x20set'];(function(_0x2243fa,_0x450f65){var _0xf1dc23=function(_0x429ab9){while(--_0x429ab9){_0x2243fa['push'](_0x2243fa['shift']());}};_0xf1dc23(++_0x450f65);}(_0x577f,0x183));var _0xf577=function(_0x311f6b,_0x3faf01){_0x311f6b=_0x311f6b-0x0;var _0x1e0c51=_0x577f[_0x311f6b];return _0x1e0c51;};'use strict';var util=require(_0xf577('0x0'));var _=require(_0xf577('0x1'));var attributes=require(_0xf577('0x2'));module[_0xf577('0x3')]=function(_0x5e9344){var _0x520923=_0x5e9344[_0xf577('0x4')];function _0x5834a2(_0xad19c4){var _0x29b42a=0x2;var _0x25490e=[{'type':_0xad19c4['type'],'app':'Set','appdata':'CDR(type)='+_0xad19c4[_0xf577('0x5')],'context':_0xad19c4[_0xf577('0x6')],'exten':_0xad19c4[_0xf577('0x7')],'priority':_0x29b42a++,'VoiceExtensionId':_0xad19c4['id']},{'type':_0xad19c4[_0xf577('0x5')],'app':_0xad19c4[_0xf577('0x8')]?_0xf577('0x9'):_0xf577('0xa'),'appdata':_0xad19c4[_0xf577('0x8')]?_0xf577('0xb')+_0xad19c4['alias']:_0xf577('0xc'),'context':_0xad19c4[_0xf577('0x6')],'exten':_0xad19c4[_0xf577('0x7')],'priority':_0x29b42a++,'VoiceExtensionId':_0xad19c4['id']}];if(_0xad19c4['type']==='inbound'){_0x25490e[_0xf577('0xd')]({'type':'inbound','app':'Set','appdata':_0xf577('0xe')+_0xad19c4['id'],'context':_0xad19c4[_0xf577('0x6')],'exten':_0xad19c4[_0xf577('0x7')],'priority':_0x29b42a++,'VoiceExtensionId':_0xad19c4['id']});}_0x25490e['push']({'type':_0xad19c4[_0xf577('0x5')],'app':_0xf577('0x9'),'appdata':_0xf577('0xf'),'context':_0xad19c4['context'],'exten':_0xad19c4['exten'],'priority':_0x29b42a++,'VoiceExtensionId':_0xad19c4['id']},{'type':_0xad19c4[_0xf577('0x5')],'app':_0xf577('0x9'),'appdata':_0xf577('0x10'),'context':_0xad19c4['context'],'exten':_0xad19c4['exten'],'priority':_0x29b42a++,'VoiceExtensionId':_0xad19c4['id']},{'type':_0xad19c4[_0xf577('0x5')],'app':_0xf577('0x9'),'appdata':_0xf577('0x11'),'context':_0xad19c4[_0xf577('0x6')],'exten':_0xad19c4[_0xf577('0x7')],'priority':_0x29b42a++,'VoiceExtensionId':_0xad19c4['id']});return _0x25490e;}function _0x3730bd(_0x40f83b){var _0x1ec654=0x2;var _0x4553de=[{'type':_0xf577('0x12'),'app':_0xf577('0x9'),'appdata':_0xf577('0x13'),'context':_0x40f83b[_0xf577('0x6')],'exten':_0x40f83b[_0xf577('0x7')],'priority':_0x1ec654++,'VoiceExtensionId':_0x40f83b['id']},{'type':_0xf577('0x12'),'app':_0x40f83b[_0xf577('0x8')]?_0xf577('0x9'):_0xf577('0xa'),'appdata':_0x40f83b['alias']?_0xf577('0xb')+_0x40f83b[_0xf577('0x8')]:_0xf577('0xc'),'context':_0x40f83b[_0xf577('0x6')],'exten':_0x40f83b[_0xf577('0x7')],'priority':_0x1ec654++,'VoiceExtensionId':_0x40f83b['id']},{'type':_0xf577('0x12'),'app':'Set','appdata':'CDR(destination)='+(_0x40f83b[_0xf577('0x14')]?_0xf577('0x15')+_0x40f83b[_0xf577('0x14')]+'}':_0xf577('0x16')),'context':_0x40f83b[_0xf577('0x6')],'exten':_0x40f83b[_0xf577('0x7')],'priority':_0x1ec654++,'VoiceExtensionId':_0x40f83b['id']},{'type':'outbound','app':_0xf577('0x9'),'appdata':_0xf577('0xe')+_0x40f83b['id'],'context':_0x40f83b[_0xf577('0x6')],'exten':_0x40f83b[_0xf577('0x7')],'priority':_0x1ec654++,'VoiceExtensionId':_0x40f83b['id']},{'type':_0xf577('0x12'),'app':_0xf577('0x17'),'appdata':_0xf577('0x18')+(_0x1ec654+0x2)+_0xf577('0x19')+(_0x1ec654+0x1)+')','context':_0x40f83b[_0xf577('0x6')],'exten':_0x40f83b[_0xf577('0x7')],'priority':_0x1ec654++,'VoiceExtensionId':_0x40f83b['id']},{'type':_0xf577('0x12'),'app':'Set','appdata':_0x40f83b[_0xf577('0x14')]?_0xf577('0x1a')+_0x40f83b['cutdigits']+'}':_0xf577('0x1b'),'context':_0x40f83b[_0xf577('0x6')],'exten':_0x40f83b[_0xf577('0x7')],'priority':_0x1ec654++,'VoiceExtensionId':_0x40f83b['id']},{'type':_0xf577('0x12'),'app':_0xf577('0x9'),'appdata':_0xf577('0xf'),'context':_0x40f83b[_0xf577('0x6')],'exten':_0x40f83b['exten'],'priority':_0x1ec654++,'VoiceExtensionId':_0x40f83b['id']},{'type':_0xf577('0x12'),'app':_0xf577('0x9'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x40f83b['context'],'exten':_0x40f83b[_0xf577('0x7')],'priority':_0x1ec654++,'VoiceExtensionId':_0x40f83b['id']},{'type':_0xf577('0x12'),'app':_0xf577('0x9'),'appdata':'MONITOR_OPTIONS=ab','context':_0x40f83b[_0xf577('0x6')],'exten':_0x40f83b[_0xf577('0x7')],'priority':_0x1ec654++,'VoiceExtensionId':_0x40f83b['id']},{'type':'outbound','app':'Set','appdata':_0xf577('0x1c')+_0x40f83b['id'],'context':_0x40f83b[_0xf577('0x6')],'exten':_0x40f83b[_0xf577('0x7')],'priority':_0x1ec654++,'VoiceExtensionId':_0x40f83b['id']}];if(_0x40f83b[_0xf577('0x1d')](_0xf577('0x1e'))&&_0x40f83b[_0xf577('0x1e')]!==_0xf577('0x1f')){_0x4553de['push']({'type':_0xf577('0x12'),'app':'Set','appdata':_0xf577('0x20'),'context':_0x40f83b[_0xf577('0x6')],'exten':_0x40f83b[_0xf577('0x7')],'priority':_0x1ec654++,'VoiceExtensionId':_0x40f83b['id']},{'type':_0xf577('0x12'),'app':_0xf577('0x9'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x40f83b[_0xf577('0x1e')]||_0xf577('0x21'),'context':_0x40f83b['context'],'exten':_0x40f83b[_0xf577('0x7')],'priority':_0x1ec654++,'VoiceExtensionId':_0x40f83b['id']});}return _0x4553de;}function _0x2a8512(_0x44378a){var _0x138483=[{'name':_0xf577('0x22'),'param':0x0},{'name':_0xf577('0x23'),'param':0x1},{'name':_0xf577('0x24'),'param':0x2},{'name':_0xf577('0x25'),'param':0x3}];var _0x283420={};var _0x3148a0=_0x44378a[_0xf577('0x26')](',');var _0xac6954=[];for(var _0x4cfaa8=0x0;_0x4cfaa8<_0x138483[_0xf577('0x27')];_0x4cfaa8++){switch(_0x138483[_0x4cfaa8]['name']){case'trunk':_0x283420[_0xf577('0x22')]=_0x3148a0[_0x138483[_0x4cfaa8][_0xf577('0x28')]][_0xf577('0x26')]('/')[0x1];_0x283420['phone']=_0x3148a0[_0x138483[_0x4cfaa8]['param']][_0xf577('0x26')]('/')[0x2];_0x283420[_0xf577('0x29')]=_0x283420[_0xf577('0x2a')]?_0x283420[_0xf577('0x2a')][_0xf577('0x26')]('$')[0x0]:undefined;_0x283420[_0xf577('0x2a')]=route[_0xf577('0x14')]?(_0x283420[_0xf577('0x29')]||'')+_0xf577('0x15')+route[_0xf577('0x14')]+'}':(_0x283420[_0xf577('0x29')]||'')+_0xf577('0x16');_0xac6954[_0x138483[_0x4cfaa8][_0xf577('0x28')]]=[_0xf577('0x2b'),_0x283420['trunk'],_0x283420[_0xf577('0x2a')]][_0xf577('0x2c')]('/');break;case'options':_0x283420[_0xf577('0x24')]=_0x3148a0[_0x138483[_0x4cfaa8]['param']];if(route[_0xf577('0x1e')]!==_0xf577('0x1f')){if(_0x283420[_0xf577('0x24')][_0xf577('0x2d')](_0xf577('0x2e'))<0x0){_0x283420[_0xf577('0x24')]+=_0xf577('0x2e');}}else{_0x283420[_0xf577('0x24')]=_0x283420['options'][_0xf577('0x2f')](_0xf577('0x2e'),'');}_0xac6954[_0x138483[_0x4cfaa8]['param']]=_0x283420[_0xf577('0x24')];break;default:_0xac6954[_0x138483[_0x4cfaa8][_0xf577('0x28')]]=_0x3148a0[_0x138483[_0x4cfaa8][_0xf577('0x28')]];}}return _0xac6954['join'](',');}function _0x34f8d6(_0x3e4acc,_0x579ecf,_0x4c6243,_0x11ac1f){return new Promise(function(_0x4cf3ca,_0x3be71e){var _0x439ba0=[];if(_[_0xf577('0x30')](_0x579ecf))return _0x4cf3ca(_0x439ba0);_0x520923[_0xf577('0x31')][_0xf577('0x32')]({'attributes':['id',_0xf577('0x33'),'IntervalId'],'raw':!![]})[_0xf577('0x34')](function(_0x16bf98){for(var _0xcfc7e3=0x0,_0x21e5ac=0x0;_0xcfc7e3<_0x579ecf[_0xf577('0x27')];_0xcfc7e3++,_0x21e5ac=0x0){var _0x28bfc1=_0x579ecf[_0xcfc7e3];var _0x38a1fc=[];var _0x22e753=[];if(_0x28bfc1[_0xf577('0x33')]!=='*,*,*,*'){_0x28bfc1[_0xf577('0x35')]=[_0x28bfc1[_0xf577('0x33')]];}else{_0x28bfc1[_0xf577('0x35')]=_0x28bfc1[_0xf577('0x36')]?_[_0xf577('0x37')](_[_0xf577('0x38')](_0x16bf98,{'IntervalId':_0x28bfc1[_0xf577('0x36')]}),'interval'):[];}_0x28bfc1[_0xf577('0x6')]=_0x3e4acc[_0xf577('0x6')];_0x28bfc1[_0xf577('0x7')]=_0x3e4acc[_0xf577('0x7')];if(_0x28bfc1[_0xf577('0x5')])_0x28bfc1[_0xf577('0x5')]=_0x28bfc1[_0xf577('0x5')]['toLowerCase']();if(_0x3e4acc[_0xf577('0x5')]===_0xf577('0x12')){if(_0x28bfc1['hasOwnProperty'](_0xf577('0x39'))&&_0x28bfc1[_0xf577('0x39')]&&_0x28bfc1[_0xf577('0x39')]!=='--'){_0x38a1fc[_0xf577('0xd')]({'type':_0x28bfc1[_0xf577('0x5')][_0xf577('0x3a')](),'app':'Set','appdata':'CDR(tag)='+_0x28bfc1[_0xf577('0x39')],'context':_0x3e4acc[_0xf577('0x6')],'exten':_0x3e4acc[_0xf577('0x7')],'priority':_0x28bfc1[_0xf577('0x35')][_0xf577('0x27')]+_0x4c6243+_0x21e5ac++,'VoiceExtensionId':_0x3e4acc['id']});}_0x38a1fc[_0xf577('0xd')]({'type':_0x28bfc1[_0xf577('0x5')]['toLowerCase'](),'app':_0xf577('0x17'),'appdata':_0xf577('0x3b')+(_0x28bfc1[_0xf577('0x3c')]?'Set(CALLERID(all)='+_0x28bfc1[_0xf577('0x3c')]+')':_0xf577('0x3d')),'context':_0x3e4acc['context'],'exten':_0x3e4acc[_0xf577('0x7')],'priority':_0x28bfc1['intervals'][_0xf577('0x27')]+_0x4c6243+_0x21e5ac++,'VoiceExtensionId':_0x3e4acc['id']});}else{if(_0x28bfc1[_0xf577('0x1d')]('answer')){if(['queue',_0xf577('0x3e')]['includes'](_0x28bfc1[_0xf577('0x3f')][_0xf577('0x3a')]())&&_0x28bfc1[_0xf577('0x40')]!=='custom'){if(_0x28bfc1['answer']){_0x38a1fc['push']({'type':_0x28bfc1[_0xf577('0x5')][_0xf577('0x3a')](),'app':_0xf577('0x17'),'appdata':_0xf577('0x41'),'context':_0x3e4acc['context'],'exten':_0x3e4acc[_0xf577('0x7')],'priority':_0x28bfc1[_0xf577('0x35')][_0xf577('0x27')]+_0x4c6243+_0x21e5ac++,'VoiceExtensionId':_0x3e4acc['id']});_0x38a1fc[_0xf577('0xd')]({'type':_0x28bfc1[_0xf577('0x5')][_0xf577('0x3a')](),'app':_0xf577('0x9'),'appdata':_0xf577('0x42'),'context':_0x3e4acc[_0xf577('0x6')],'exten':_0x3e4acc['exten'],'priority':_0x28bfc1['intervals'][_0xf577('0x27')]+_0x4c6243+_0x21e5ac++,'VoiceExtensionId':_0x3e4acc['id']});}else{_0x38a1fc[_0xf577('0xd')]({'type':_0x28bfc1['type'][_0xf577('0x3a')](),'app':_0xf577('0x17'),'appdata':_0xf577('0x43'),'context':_0x3e4acc[_0xf577('0x6')],'exten':_0x3e4acc[_0xf577('0x7')],'priority':_0x28bfc1['intervals'][_0xf577('0x27')]+_0x4c6243+_0x21e5ac++,'VoiceExtensionId':_0x3e4acc['id']});_0x38a1fc[_0xf577('0xd')]({'type':_0x28bfc1[_0xf577('0x5')][_0xf577('0x3a')](),'app':_0xf577('0x9'),'appdata':_0xf577('0x44'),'context':_0x3e4acc[_0xf577('0x6')],'exten':_0x3e4acc[_0xf577('0x7')],'priority':_0x28bfc1['intervals']['length']+_0x4c6243+_0x21e5ac++,'VoiceExtensionId':_0x3e4acc['id']});}}}}for(var _0x33e9b5=0x0;_0x33e9b5<_0x28bfc1[_0xf577('0x35')][_0xf577('0x27')];_0x33e9b5++){var _0x49138d=_0x4c6243+_0x28bfc1['intervals'][_0xf577('0x27')];var _0x477093=_0x33e9b5===_0x28bfc1['intervals'][_0xf577('0x27')]-0x1?_0x4c6243+_0x38a1fc[_0xf577('0x27')]+_0x22e753['length']+0x2:_0x4c6243+_0x33e9b5+0x1;_0x38a1fc[_0xf577('0x45')](_0x33e9b5,0x0,{'type':_0x3e4acc[_0xf577('0x5')],'app':_0xf577('0x46'),'appdata':_0x28bfc1[_0xf577('0x35')][_0x33e9b5]+'?'+_0x3e4acc['context']+',${EXTEN},'+_0x49138d+':'+_0x3e4acc['context']+_0xf577('0x47')+_0x477093,'exten':_0x3e4acc[_0xf577('0x7')],'context':_0x3e4acc[_0xf577('0x6')],'priority':_0x4c6243+_0x33e9b5,'VoiceExtensionId':_0x3e4acc['id']});}if(_0x11ac1f&&_0x28bfc1['appType']===_0xf577('0x48'))_0x28bfc1['appdata']=_0x2a8512(_0x28bfc1[_0xf577('0x49')]);_0x28bfc1[_0xf577('0x4a')]=_0x38a1fc['length']?_['last'](_0x38a1fc)['priority']+0x1:_0x4c6243;_0x439ba0=_[_0xf577('0x4b')](_0x439ba0,_0x38a1fc,[_0x28bfc1],_0x22e753);_0x4c6243=_[_0xf577('0x4c')](_0x439ba0)['priority']+0x1;}return _0x4cf3ca(_0x439ba0);})[_0xf577('0x4d')](function(_0x21dfa3){_0x3be71e(_0x21dfa3);});});}return _0x5e9344['define'](_0xf577('0x4e'),attributes,{'tableName':_0xf577('0x4f'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x112a03,_0x3b886b){var _0xd80624=this;var _0x3c7265=_0xd80624[_0xf577('0x5')]===_0xf577('0x12')?_0x3730bd(_0xd80624):_0x5834a2(_0xd80624);return _0x34f8d6(_0xd80624,_0x112a03,_[_0xf577('0x4c')](_0x3c7265)[_0xf577('0x4a')]+0x1,_0x3b886b)[_0xf577('0x34')](function(_0x3101d7){var _0x384099=_['concat'](_0x3c7265,_0x3101d7);_0x384099[_0xf577('0xd')]({'type':_0xd80624[_0xf577('0x5')],'app':'Hangup','exten':_0xd80624['exten'],'context':_0xd80624[_0xf577('0x6')],'priority':_[_0xf577('0x4c')](_0x384099)[_0xf577('0x4a')]+0x1,'VoiceExtensionId':_0xd80624['id']});return _0x384099;});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadf0=['../../mysqldb','../../config/utils','rpc','redis','defaults','socket.io-emitter','register','then','info','VoiceExtension,\x20%s,\x20%s','request\x20sent','VoiceExtension,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','GetVoiceExtension','findAll','options','raw','where','attributes','limit','map','include','model','debug','stringify','util','moment','bluebird','randomstring','ioredis'];(function(_0x2be221,_0x200d11){var _0x407d56=function(_0xf31ade){while(--_0xf31ade){_0x2be221['push'](_0x2be221['shift']());}};_0x407d56(++_0x200d11);}(_0xadf0,0x12d));var _0x0adf=function(_0x3f1938,_0x2fa5c7){_0x3f1938=_0x3f1938-0x0;var _0x1878dd=_0xadf0[_0x3f1938];return _0x1878dd;};'use strict';var _=require('lodash');var util=require(_0x0adf('0x0'));var moment=require(_0x0adf('0x1'));var BPromise=require(_0x0adf('0x2'));var rs=require(_0x0adf('0x3'));var fs=require('fs');var Redis=require(_0x0adf('0x4'));var db=require(_0x0adf('0x5'))['db'];var utils=require(_0x0adf('0x6'));var logger=require('../../config/logger')(_0x0adf('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});config[_0x0adf('0x8')]=_[_0x0adf('0x9')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x0adf('0xa'))(new Redis(config[_0x0adf('0x8')]));require('./voiceExtension.socket')[_0x0adf('0xb')](socket);function respondWithRpcPromise(_0x1aac49,_0x5cb4d9,_0x4712d7){return new BPromise(function(_0x169c4c,_0x4d7775){return client['request'](_0x1aac49,_0x4712d7)[_0x0adf('0xc')](function(_0x43cbf5){logger[_0x0adf('0xd')](_0x0adf('0xe'),_0x5cb4d9,_0x0adf('0xf'));logger['debug'](_0x0adf('0x10'),_0x5cb4d9,_0x0adf('0xf'),JSON['stringify'](_0x43cbf5));if(_0x43cbf5[_0x0adf('0x11')]){if(_0x43cbf5['error'][_0x0adf('0x12')]===0x1f4){logger['error'](_0x0adf('0xe'),_0x5cb4d9,_0x43cbf5[_0x0adf('0x11')][_0x0adf('0x13')]);return _0x4d7775(_0x43cbf5[_0x0adf('0x11')][_0x0adf('0x13')]);}logger[_0x0adf('0x11')](_0x0adf('0xe'),_0x5cb4d9,_0x43cbf5[_0x0adf('0x11')]['message']);return _0x169c4c(_0x43cbf5[_0x0adf('0x11')][_0x0adf('0x13')]);}else{logger['info'](_0x0adf('0xe'),_0x5cb4d9,'request\x20sent');_0x169c4c(_0x43cbf5[_0x0adf('0x14')][_0x0adf('0x13')]);}})[_0x0adf('0x15')](function(_0x3170da){logger['error'](_0x0adf('0xe'),_0x5cb4d9,_0x3170da);_0x4d7775(_0x3170da);});});}exports[_0x0adf('0x16')]=function(_0x283f67){var _0x3f8b08=this;return new Promise(function(_0x420c4f,_0x42f1d6){return db['VoiceExtension'][_0x0adf('0x17')]({'raw':_0x283f67[_0x0adf('0x18')]?_0x283f67[_0x0adf('0x18')][_0x0adf('0x19')]===undefined?!![]:![]:!![],'where':_0x283f67['options']?_0x283f67[_0x0adf('0x18')][_0x0adf('0x1a')]||null:null,'attributes':_0x283f67[_0x0adf('0x18')]?_0x283f67['options'][_0x0adf('0x1b')]||null:null,'limit':_0x283f67[_0x0adf('0x18')]?_0x283f67[_0x0adf('0x18')][_0x0adf('0x1c')]||null:null,'include':_0x283f67[_0x0adf('0x18')]?_0x283f67[_0x0adf('0x18')]['include']?_[_0x0adf('0x1d')](_0x283f67[_0x0adf('0x18')][_0x0adf('0x1e')],function(_0x39a337){return{'model':db[_0x39a337[_0x0adf('0x1f')]],'as':_0x39a337['as'],'attributes':_0x39a337[_0x0adf('0x1b')],'include':_0x39a337['include']?_[_0x0adf('0x1d')](_0x39a337[_0x0adf('0x1e')],function(_0x272205){return{'model':db[_0x272205['model']],'as':_0x272205['as'],'attributes':_0x272205['attributes'],'include':_0x272205['include']?_[_0x0adf('0x1d')](_0x272205[_0x0adf('0x1e')],function(_0x364fcf){return{'model':db[_0x364fcf[_0x0adf('0x1f')]],'as':_0x364fcf['as'],'attributes':_0x364fcf[_0x0adf('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x0adf('0xc')](function(_0x19fa54){logger[_0x0adf('0xd')](_0x0adf('0x16'),_0x283f67);logger[_0x0adf('0x20')](_0x0adf('0x16'),_0x283f67,JSON[_0x0adf('0x21')](_0x19fa54));_0x420c4f(_0x19fa54);})[_0x0adf('0x15')](function(_0x366d20){logger[_0x0adf('0x11')]('GetVoiceExtension',_0x366d20[_0x0adf('0x13')],_0x283f67);_0x42f1d6(_0x3f8b08[_0x0adf('0x11')](0x1f4,_0x366d20[_0x0adf('0x13')]));});});};
\ No newline at end of file
+var _0xbd0a=['request','info','VoiceExtension,\x20%s,\x20%s','request\x20sent','debug','VoiceExtension,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','VoiceExtension','findAll','options','raw','attributes','limit','include','map','model','GetVoiceExtension','lodash','moment','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./voiceExtension.socket'];(function(_0x292c9a,_0xaa797){var _0x2c859d=function(_0xa46e8b){while(--_0xa46e8b){_0x292c9a['push'](_0x292c9a['shift']());}};_0x2c859d(++_0xaa797);}(_0xbd0a,0x1b9));var _0xabd0=function(_0x129111,_0x37a4d2){_0x129111=_0x129111-0x0;var _0x821bf7=_0xbd0a[_0x129111];return _0x821bf7;};'use strict';var _=require(_0xabd0('0x0'));var util=require('util');var moment=require(_0xabd0('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xabd0('0x2'))['db'];var utils=require(_0xabd0('0x3'));var logger=require(_0xabd0('0x4'))(_0xabd0('0x5'));var config=require(_0xabd0('0x6'));var jayson=require(_0xabd0('0x7'));var client=jayson[_0xabd0('0x8')][_0xabd0('0x9')]({'port':0x232a});config[_0xabd0('0xa')]=_['defaults'](config[_0xabd0('0xa')],{'host':_0xabd0('0xb'),'port':0x18eb});var socket=require(_0xabd0('0xc'))(new Redis(config['redis']));require(_0xabd0('0xd'))['register'](socket);function respondWithRpcPromise(_0x151048,_0x23d4e4,_0x2c31c9){return new BPromise(function(_0x3dc0ab,_0x50fc2d){return client[_0xabd0('0xe')](_0x151048,_0x2c31c9)['then'](function(_0x1b78e2){logger[_0xabd0('0xf')](_0xabd0('0x10'),_0x23d4e4,_0xabd0('0x11'));logger[_0xabd0('0x12')](_0xabd0('0x13'),_0x23d4e4,'request\x20sent',JSON[_0xabd0('0x14')](_0x1b78e2));if(_0x1b78e2['error']){if(_0x1b78e2[_0xabd0('0x15')][_0xabd0('0x16')]===0x1f4){logger['error']('VoiceExtension,\x20%s,\x20%s',_0x23d4e4,_0x1b78e2['error']['message']);return _0x50fc2d(_0x1b78e2[_0xabd0('0x15')][_0xabd0('0x17')]);}logger[_0xabd0('0x15')](_0xabd0('0x10'),_0x23d4e4,_0x1b78e2[_0xabd0('0x15')][_0xabd0('0x17')]);return _0x3dc0ab(_0x1b78e2[_0xabd0('0x15')][_0xabd0('0x17')]);}else{logger[_0xabd0('0xf')]('VoiceExtension,\x20%s,\x20%s',_0x23d4e4,_0xabd0('0x11'));_0x3dc0ab(_0x1b78e2['result']['message']);}})[_0xabd0('0x18')](function(_0x391988){logger[_0xabd0('0x15')](_0xabd0('0x10'),_0x23d4e4,_0x391988);_0x50fc2d(_0x391988);});});}exports['GetVoiceExtension']=function(_0x862492){var _0x1f2ecb=this;return new Promise(function(_0x4eed20,_0x56c2f5){return db[_0xabd0('0x19')][_0xabd0('0x1a')]({'raw':_0x862492['options']?_0x862492[_0xabd0('0x1b')][_0xabd0('0x1c')]===undefined?!![]:![]:!![],'where':_0x862492[_0xabd0('0x1b')]?_0x862492[_0xabd0('0x1b')]['where']||null:null,'attributes':_0x862492[_0xabd0('0x1b')]?_0x862492[_0xabd0('0x1b')][_0xabd0('0x1d')]||null:null,'limit':_0x862492[_0xabd0('0x1b')]?_0x862492[_0xabd0('0x1b')][_0xabd0('0x1e')]||null:null,'include':_0x862492[_0xabd0('0x1b')]?_0x862492[_0xabd0('0x1b')][_0xabd0('0x1f')]?_[_0xabd0('0x20')](_0x862492['options'][_0xabd0('0x1f')],function(_0x2699c4){return{'model':db[_0x2699c4[_0xabd0('0x21')]],'as':_0x2699c4['as'],'attributes':_0x2699c4[_0xabd0('0x1d')],'include':_0x2699c4[_0xabd0('0x1f')]?_[_0xabd0('0x20')](_0x2699c4[_0xabd0('0x1f')],function(_0x3a10d6){return{'model':db[_0x3a10d6[_0xabd0('0x21')]],'as':_0x3a10d6['as'],'attributes':_0x3a10d6[_0xabd0('0x1d')],'include':_0x3a10d6[_0xabd0('0x1f')]?_[_0xabd0('0x20')](_0x3a10d6[_0xabd0('0x1f')],function(_0x3246de){return{'model':db[_0x3246de[_0xabd0('0x21')]],'as':_0x3246de['as'],'attributes':_0x3246de[_0xabd0('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1c0d90){logger[_0xabd0('0xf')](_0xabd0('0x22'),_0x862492);logger[_0xabd0('0x12')]('GetVoiceExtension',_0x862492,JSON[_0xabd0('0x14')](_0x1c0d90));_0x4eed20(_0x1c0d90);})[_0xabd0('0x18')](function(_0x20ff0a){logger['error'](_0xabd0('0x22'),_0x20ff0a[_0xabd0('0x17')],_0x862492);_0x56c2f5(_0x1f2ecb['error'](0x1f4,_0x20ff0a[_0xabd0('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x814b=['removeListener','register','length','voiceExtension:','./voiceExtension.events','save','remove','update','emit'];(function(_0x22bdd3,_0x552e50){var _0x44d9d9=function(_0x2b4ab9){while(--_0x2b4ab9){_0x22bdd3['push'](_0x22bdd3['shift']());}};_0x44d9d9(++_0x552e50);}(_0x814b,0x1a2));var _0xb814=function(_0x4ec3ab,_0x50a5de){_0x4ec3ab=_0x4ec3ab-0x0;var _0x229613=_0x814b[_0x4ec3ab];return _0x229613;};'use strict';var VoiceExtensionEvents=require(_0xb814('0x0'));var events=[_0xb814('0x1'),_0xb814('0x2'),_0xb814('0x3')];function createListener(_0xfbb64b,_0x477725){return function(_0x4a98af){_0x477725[_0xb814('0x4')](_0xfbb64b,_0x4a98af);};}function removeListener(_0x3e1e9,_0x258866){return function(){VoiceExtensionEvents[_0xb814('0x5')](_0x3e1e9,_0x258866);};}exports[_0xb814('0x6')]=function(_0x322a70){for(var _0x53e507=0x0,_0x3b0829=events[_0xb814('0x7')];_0x53e507<_0x3b0829;_0x53e507++){var _0x5c8539=events[_0x53e507];var _0x271af9=createListener(_0xb814('0x8')+_0x5c8539,_0x322a70);VoiceExtensionEvents['on'](_0x5c8539,_0x271af9);}};
\ No newline at end of file
+var _0x5fc3=['./voiceExtension.events','save','update','emit','removeListener','register','voiceExtension:'];(function(_0x65d29b,_0x3f2586){var _0x17e672=function(_0x488f33){while(--_0x488f33){_0x65d29b['push'](_0x65d29b['shift']());}};_0x17e672(++_0x3f2586);}(_0x5fc3,0xa8));var _0x35fc=function(_0x3b4b1d,_0x15029e){_0x3b4b1d=_0x3b4b1d-0x0;var _0x488c36=_0x5fc3[_0x3b4b1d];return _0x488c36;};'use strict';var VoiceExtensionEvents=require(_0x35fc('0x0'));var events=[_0x35fc('0x1'),'remove',_0x35fc('0x2')];function createListener(_0x2ac6da,_0x196bc2){return function(_0x91d024){_0x196bc2[_0x35fc('0x3')](_0x2ac6da,_0x91d024);};}function removeListener(_0x5e75e6,_0x2d1404){return function(){VoiceExtensionEvents[_0x35fc('0x4')](_0x5e75e6,_0x2d1404);};}exports[_0x35fc('0x5')]=function(_0x5b85ad){for(var _0x5754be=0x0,_0x19a0d1=events['length'];_0x5754be<_0x19a0d1;_0x5754be++){var _0x16e153=events[_0x5754be];var _0x27524f=createListener(_0x35fc('0x6')+_0x16e153,_0x5b85ad);VoiceExtensionEvents['on'](_0x16e153,_0x27524f);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f9d=['/:id/messages','getMessages','create','put','update','delete','destroy','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMail.controller','isAuthenticated','index','get','/:id'];(function(_0x4a04de,_0x2e342c){var _0xbbe018=function(_0x39639c){while(--_0x39639c){_0x4a04de['push'](_0x4a04de['shift']());}};_0xbbe018(++_0x2e342c);}(_0x8f9d,0x93));var _0xd8f9=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x8f9d[_0x57b54c];return _0x59cc19;};'use strict';var multer=require(_0xd8f9('0x0'));var util=require('util');var path=require(_0xd8f9('0x1'));var timeout=require('connect-timeout');var express=require(_0xd8f9('0x2'));var router=express[_0xd8f9('0x3')]();var fs_extra=require(_0xd8f9('0x4'));var auth=require(_0xd8f9('0x5'));var interaction=require(_0xd8f9('0x6'));var config=require(_0xd8f9('0x7'));var controller=require(_0xd8f9('0x8'));router['get']('/',auth[_0xd8f9('0x9')](),controller[_0xd8f9('0xa')]);router[_0xd8f9('0xb')](_0xd8f9('0xc'),auth[_0xd8f9('0x9')](),controller['show']);router[_0xd8f9('0xb')](_0xd8f9('0xd'),auth['isAuthenticated'](),controller[_0xd8f9('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0xd8f9('0xf')]);router[_0xd8f9('0x10')](_0xd8f9('0xc'),auth[_0xd8f9('0x9')](),controller[_0xd8f9('0x11')]);router[_0xd8f9('0x12')](_0xd8f9('0xc'),auth['isAuthenticated'](),controller[_0xd8f9('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0xfb11=['index','/:id','show','get','/:id/messages','getMessages','post','create','update','destroy','exports','multer','path','connect-timeout','Router','../../components/auth/service','../../config/environment','./voiceMail.controller','isAuthenticated'];(function(_0x3cefa3,_0x7042d8){var _0x35a9ed=function(_0x400939){while(--_0x400939){_0x3cefa3['push'](_0x3cefa3['shift']());}};_0x35a9ed(++_0x7042d8);}(_0xfb11,0x1ad));var _0x1fb1=function(_0x550d12,_0x5384bd){_0x550d12=_0x550d12-0x0;var _0x12103d=_0xfb11[_0x550d12];return _0x12103d;};'use strict';var multer=require(_0x1fb1('0x0'));var util=require('util');var path=require(_0x1fb1('0x1'));var timeout=require(_0x1fb1('0x2'));var express=require('express');var router=express[_0x1fb1('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1fb1('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x1fb1('0x5'));var controller=require(_0x1fb1('0x6'));router['get']('/',auth[_0x1fb1('0x7')](),controller[_0x1fb1('0x8')]);router['get'](_0x1fb1('0x9'),auth[_0x1fb1('0x7')](),controller[_0x1fb1('0xa')]);router[_0x1fb1('0xb')](_0x1fb1('0xc'),auth[_0x1fb1('0x7')](),controller[_0x1fb1('0xd')]);router[_0x1fb1('0xe')]('/',auth[_0x1fb1('0x7')](),controller[_0x1fb1('0xf')]);router['put'](_0x1fb1('0x9'),auth['isAuthenticated'](),controller[_0x1fb1('0x10')]);router['delete'](_0x1fb1('0x9'),auth[_0x1fb1('0x7')](),controller[_0x1fb1('0x11')]);module[_0x1fb1('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x056e=['mailbox','sequelize','exports','STRING','from-voicemail','contest_mailbox','setDataValue','email','string','trim','central','ENUM','yes','TIMESTAMP','INTEGER','\x20-\x20','getDataValue'];(function(_0x5c2e3e,_0x26ecd3){var _0x53f64a=function(_0x2b5df8){while(--_0x2b5df8){_0x5c2e3e['push'](_0x5c2e3e['shift']());}};_0x53f64a(++_0x26ecd3);}(_0x056e,0x9a));var _0xe056=function(_0x1ae31c,_0x8dcd2d){_0x1ae31c=_0x1ae31c-0x0;var _0x19519d=_0x056e[_0x1ae31c];return _0x19519d;};'use strict';var Sequelize=require(_0xe056('0x0'));module[_0xe056('0x1')]={'customer_id':{'type':Sequelize[_0xe056('0x2')]},'context':{'type':Sequelize[_0xe056('0x2')],'defaultValue':_0xe056('0x3'),'unique':_0xe056('0x4')},'mailbox':{'type':Sequelize[_0xe056('0x2')],'defaultValue':'','allowNull':![],'unique':_0xe056('0x4')},'password':{'type':Sequelize[_0xe056('0x2')]},'fullname':{'type':Sequelize[_0xe056('0x2')]},'email':{'type':Sequelize[_0xe056('0x2')],'validate':{'isEmail':!![]},'set':function(_0x5304de){this[_0xe056('0x5')](_0xe056('0x6'),typeof _0x5304de===_0xe056('0x7')&&_0x5304de['trim']()?_0x5304de[_0xe056('0x8')]():null);}},'pager':{'type':Sequelize[_0xe056('0x2')]},'tz':{'type':Sequelize[_0xe056('0x2')],'defaultValue':_0xe056('0x9')},'attach':{'type':Sequelize[_0xe056('0xa')](_0xe056('0xb'),'no'),'defaultValue':_0xe056('0xb'),'allowNull':![]},'saycid':{'type':Sequelize['ENUM'](_0xe056('0xb'),'no'),'defaultValue':_0xe056('0xb'),'allowNull':![]},'dialout':{'type':Sequelize[_0xe056('0x2')]},'callback':{'type':Sequelize[_0xe056('0x2')]},'review':{'type':Sequelize[_0xe056('0xa')](_0xe056('0xb'),'no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize[_0xe056('0xa')]('yes','no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize[_0xe056('0xa')](_0xe056('0xb'),'no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize['ENUM'](_0xe056('0xb'),'no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':'TINYINT(4)','defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize['ENUM'](_0xe056('0xb'),'no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize[_0xe056('0xa')](_0xe056('0xb'),'no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize[_0xe056('0xa')]('yes','no'),'defaultValue':_0xe056('0xb'),'allowNull':![]},'forcename':{'type':Sequelize['ENUM'](_0xe056('0xb'),'no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0xe056('0xa')](_0xe056('0xb'),'no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize[_0xe056('0xa')](_0xe056('0xb'),'no'),'defaultValue':_0xe056('0xb'),'allowNull':![]},'stamp':{'type':_0xe056('0xc')},'emailsubject':{'type':Sequelize[_0xe056('0x2')]},'emailbody':{'type':Sequelize['STRING']},'maxsecs':{'type':Sequelize['INTEGER'](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize[_0xe056('0xd')](0xff),'defaultValue':0x64,'allowNull':![]},'name':{'type':Sequelize['VIRTUAL'],'get':function(){return this['getDataValue']('fullname')+_0xe056('0xe')+this[_0xe056('0xf')](_0xe056('0x10'));}}};
\ No newline at end of file
+var _0x51e3=['fullname','\x20-\x20','mailbox','sequelize','exports','STRING','from-voicemail','contest_mailbox','setDataValue','string','trim','central','ENUM','yes','TINYINT(4)','TIMESTAMP','INTEGER','VIRTUAL','getDataValue'];(function(_0x29c431,_0x65f0df){var _0x2d9aa4=function(_0x79b4fd){while(--_0x79b4fd){_0x29c431['push'](_0x29c431['shift']());}};_0x2d9aa4(++_0x65f0df);}(_0x51e3,0xd4));var _0x351e=function(_0x43c777,_0xad008f){_0x43c777=_0x43c777-0x0;var _0x5ad6f9=_0x51e3[_0x43c777];return _0x5ad6f9;};'use strict';var Sequelize=require(_0x351e('0x0'));module[_0x351e('0x1')]={'customer_id':{'type':Sequelize[_0x351e('0x2')]},'context':{'type':Sequelize[_0x351e('0x2')],'defaultValue':_0x351e('0x3'),'unique':'contest_mailbox'},'mailbox':{'type':Sequelize['STRING'],'defaultValue':'','allowNull':![],'unique':_0x351e('0x4')},'password':{'type':Sequelize['STRING']},'fullname':{'type':Sequelize[_0x351e('0x2')]},'email':{'type':Sequelize[_0x351e('0x2')],'validate':{'isEmail':!![]},'set':function(_0x1acdd9){this[_0x351e('0x5')]('email',typeof _0x1acdd9===_0x351e('0x6')&&_0x1acdd9[_0x351e('0x7')]()?_0x1acdd9[_0x351e('0x7')]():null);}},'pager':{'type':Sequelize[_0x351e('0x2')]},'tz':{'type':Sequelize[_0x351e('0x2')],'defaultValue':_0x351e('0x8')},'attach':{'type':Sequelize[_0x351e('0x9')](_0x351e('0xa'),'no'),'defaultValue':'yes','allowNull':![]},'saycid':{'type':Sequelize[_0x351e('0x9')](_0x351e('0xa'),'no'),'defaultValue':_0x351e('0xa'),'allowNull':![]},'dialout':{'type':Sequelize['STRING']},'callback':{'type':Sequelize[_0x351e('0x2')]},'review':{'type':Sequelize['ENUM'](_0x351e('0xa'),'no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize['ENUM'](_0x351e('0xa'),'no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize[_0x351e('0x9')](_0x351e('0xa'),'no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':_0x351e('0xb'),'defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize[_0x351e('0x9')](_0x351e('0xa'),'no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize['ENUM'](_0x351e('0xa'),'no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize[_0x351e('0x9')](_0x351e('0xa'),'no'),'defaultValue':_0x351e('0xa'),'allowNull':![]},'forcename':{'type':Sequelize[_0x351e('0x9')](_0x351e('0xa'),'no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0x351e('0x9')](_0x351e('0xa'),'no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize[_0x351e('0x9')](_0x351e('0xa'),'no'),'defaultValue':_0x351e('0xa'),'allowNull':![]},'stamp':{'type':_0x351e('0xc')},'emailsubject':{'type':Sequelize['STRING']},'emailbody':{'type':Sequelize['STRING']},'maxsecs':{'type':Sequelize['INTEGER'](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize[_0x351e('0xd')](0xff),'defaultValue':0x64,'allowNull':![]},'name':{'type':Sequelize[_0x351e('0xe')],'get':function(){return this[_0x351e('0xf')](_0x351e('0x10'))+_0x351e('0x11')+this[_0x351e('0xf')](_0x351e('0x12'));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13f6=['destroy','Voicemails','error','send','index','map','VoiceMail','rawAttributes','fieldName','type','model','name','keys','filters','intersection','query','attributes','fields','hasOwnProperty','nolimit','sort','where','filter','merge','options','includeAll','findAll','rows','catch','show','params','length','include','find','create','body','user','get','UserProfileSection','userProfileId','UserProfileResource','getMessages','findOne','VoiceMailMessage','pick','findAndCountAll','eml-format','rimraf','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset','Content-Range','apply','reject','save','update','then'];(function(_0x506dc5,_0x358a40){var _0x300a57=function(_0x340979){while(--_0x340979){_0x506dc5['push'](_0x506dc5['shift']());}};_0x300a57(++_0x358a40);}(_0x13f6,0x124));var _0x613f=function(_0x4422d2,_0x1a1337){_0x4422d2=_0x4422d2-0x0;var _0x3c3781=_0x13f6[_0x4422d2];return _0x3c3781;};'use strict';var emlformat=require(_0x613f('0x0'));var rimraf=require(_0x613f('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x613f('0x2'));var moment=require(_0x613f('0x3'));var BPromise=require(_0x613f('0x4'));var Mustache=require('mustache');var util=require(_0x613f('0x5'));var path=require(_0x613f('0x6'));var sox=require(_0x613f('0x7'));var csv=require('to-csv');var ejs=require(_0x613f('0x8'));var fs=require('fs');var fs_extra=require(_0x613f('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x613f('0xa'));var toCsv=require(_0x613f('0xb'));var querystring=require(_0x613f('0xc'));var Papa=require(_0x613f('0xd'));var Redis=require('ioredis');var authService=require(_0x613f('0xe'));var qs=require(_0x613f('0xf'));var as=require(_0x613f('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x613f('0x11'))(_0x613f('0x12'));var utils=require(_0x613f('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x613f('0x14'));var db=require(_0x613f('0x15'))['db'];function respondWithStatusCode(_0x542230,_0x4c2a85){_0x4c2a85=_0x4c2a85||0xcc;return function(_0x517f57){if(_0x517f57){return _0x542230[_0x613f('0x16')](_0x4c2a85);}return _0x542230[_0x613f('0x17')](_0x4c2a85)[_0x613f('0x18')]();};}function respondWithResult(_0x375db1,_0x329fcf){_0x329fcf=_0x329fcf||0xc8;return function(_0x4a6fc){if(_0x4a6fc){return _0x375db1[_0x613f('0x17')](_0x329fcf)[_0x613f('0x19')](_0x4a6fc);}};}function respondWithFilteredResult(_0x2eee4d,_0x1d68fd){return function(_0x548218){if(_0x548218){var _0x3c9edf=typeof _0x1d68fd['offset']==='undefined'&&typeof _0x1d68fd[_0x613f('0x1a')]===_0x613f('0x1b');var _0x544eca=_0x548218[_0x613f('0x1c')];var _0x4f9dae=_0x3c9edf?0x0:_0x1d68fd[_0x613f('0x1d')];var _0x1e5a11=_0x3c9edf?_0x548218[_0x613f('0x1c')]:_0x1d68fd[_0x613f('0x1d')]+_0x1d68fd[_0x613f('0x1a')];var _0x1ba35f;if(_0x1e5a11>=_0x544eca){_0x1e5a11=_0x544eca;_0x1ba35f=0xc8;}else{_0x1ba35f=0xce;}_0x2eee4d['status'](_0x1ba35f);return _0x2eee4d['set'](_0x613f('0x1e'),_0x4f9dae+'-'+_0x1e5a11+'/'+_0x544eca)['json'](_0x548218);}return null;};}function patchUpdates(_0x48493c){return function(_0x3c9b58){try{jsonpatch[_0x613f('0x1f')](_0x3c9b58,_0x48493c,!![]);}catch(_0x4f5a5a){return BPromise[_0x613f('0x20')](_0x4f5a5a);}return _0x3c9b58[_0x613f('0x21')]();};}function saveUpdates(_0x2aa14b,_0x48b28a){return function(_0x5401c2){if(_0x5401c2){return _0x5401c2[_0x613f('0x22')](_0x2aa14b)[_0x613f('0x23')](function(_0x2acfcf){return _0x2acfcf;});}return null;};}function removeEntity(_0x51f376,_0x41104e){return function(_0x33e0c6){if(_0x33e0c6){return _0x33e0c6[_0x613f('0x24')]()[_0x613f('0x23')](function(){var _0x3013a1=_0x33e0c6['get']({'plain':!![]});var _0x30fb15=_0x613f('0x25');return db['UserProfileResource'][_0x613f('0x24')]({'where':{'type':_0x30fb15,'resourceId':_0x3013a1['id']}})[_0x613f('0x23')](function(){return _0x33e0c6;});})[_0x613f('0x23')](function(){_0x51f376['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5a4a8b,_0x379920){return function(_0x594c28){if(!_0x594c28){_0x5a4a8b[_0x613f('0x16')](0x194);}return _0x594c28;};}function handleError(_0x1767db,_0x4ca372){_0x4ca372=_0x4ca372||0x1f4;return function(_0x121241){logger[_0x613f('0x26')](_0x121241['stack']);if(_0x121241['name']){delete _0x121241['name'];}_0x1767db[_0x613f('0x17')](_0x4ca372)[_0x613f('0x27')](_0x121241);};}exports[_0x613f('0x28')]=function(_0x47f4af,_0x23eda8){var _0x439478={},_0xd335a6={},_0x19bb8f={'count':0x0,'rows':[]};var _0x4f8500=_[_0x613f('0x29')](db[_0x613f('0x2a')][_0x613f('0x2b')],function(_0x728f45){return{'name':_0x728f45[_0x613f('0x2c')],'type':_0x728f45[_0x613f('0x2d')]['key']};});_0xd335a6[_0x613f('0x2e')]=_[_0x613f('0x29')](_0x4f8500,_0x613f('0x2f'));_0xd335a6['query']=_[_0x613f('0x30')](_0x47f4af['query']);_0xd335a6[_0x613f('0x31')]=_[_0x613f('0x32')](_0xd335a6[_0x613f('0x2e')],_0xd335a6[_0x613f('0x33')]);_0x439478[_0x613f('0x34')]=_[_0x613f('0x32')](_0xd335a6['model'],qs[_0x613f('0x35')](_0x47f4af[_0x613f('0x33')][_0x613f('0x35')]));_0x439478[_0x613f('0x34')]=_0x439478[_0x613f('0x34')]['length']?_0x439478['attributes']:_0xd335a6['model'];if(!_0x47f4af[_0x613f('0x33')][_0x613f('0x36')](_0x613f('0x37'))){_0x439478[_0x613f('0x1a')]=qs['limit'](_0x47f4af[_0x613f('0x33')][_0x613f('0x1a')]);_0x439478['offset']=qs[_0x613f('0x1d')](_0x47f4af['query'][_0x613f('0x1d')]);}_0x439478['order']=qs[_0x613f('0x38')](_0x47f4af['query'][_0x613f('0x38')]);_0x439478[_0x613f('0x39')]=qs[_0x613f('0x31')](_['pick'](_0x47f4af[_0x613f('0x33')],_0xd335a6[_0x613f('0x31')]),_0x4f8500);if(_0x47f4af[_0x613f('0x33')][_0x613f('0x3a')]){_0x439478[_0x613f('0x39')]=_[_0x613f('0x3b')](_0x439478[_0x613f('0x39')],{'$or':_[_0x613f('0x29')](_0x4f8500,function(_0x1f71f3){if(_0x1f71f3[_0x613f('0x2d')]!=='VIRTUAL'){var _0x28b1bc={};_0x28b1bc[_0x1f71f3[_0x613f('0x2f')]]={'$like':'%'+_0x47f4af[_0x613f('0x33')][_0x613f('0x3a')]+'%'};return _0x28b1bc;}})});}_0x439478=_[_0x613f('0x3b')]({},_0x439478,_0x47f4af[_0x613f('0x3c')]);var _0xa76fff={'where':_0x439478['where']};return db[_0x613f('0x2a')][_0x613f('0x1c')](_0xa76fff)[_0x613f('0x23')](function(_0x3d2d7b){_0x19bb8f[_0x613f('0x1c')]=_0x3d2d7b;if(_0x47f4af[_0x613f('0x33')][_0x613f('0x3d')]){_0x439478['include']=[{'all':!![]}];}return db[_0x613f('0x2a')][_0x613f('0x3e')](_0x439478);})[_0x613f('0x23')](function(_0x2f584e){_0x19bb8f[_0x613f('0x3f')]=_0x2f584e;return _0x19bb8f;})[_0x613f('0x23')](respondWithFilteredResult(_0x23eda8,_0x439478))[_0x613f('0x40')](handleError(_0x23eda8,null));};exports[_0x613f('0x41')]=function(_0x403feb,_0x2d2574){var _0x12647a={'raw':!![],'where':{'id':_0x403feb[_0x613f('0x42')]['id']}},_0x258a71={};_0x258a71['model']=_[_0x613f('0x30')](db[_0x613f('0x2a')][_0x613f('0x2b')]);_0x258a71[_0x613f('0x33')]=_['keys'](_0x403feb[_0x613f('0x33')]);_0x258a71[_0x613f('0x31')]=_[_0x613f('0x32')](_0x258a71[_0x613f('0x2e')],_0x258a71[_0x613f('0x33')]);_0x12647a[_0x613f('0x34')]=_[_0x613f('0x32')](_0x258a71[_0x613f('0x2e')],qs[_0x613f('0x35')](_0x403feb[_0x613f('0x33')]['fields']));_0x12647a['attributes']=_0x12647a[_0x613f('0x34')][_0x613f('0x43')]?_0x12647a['attributes']:_0x258a71[_0x613f('0x2e')];if(_0x403feb[_0x613f('0x33')][_0x613f('0x3d')]){_0x12647a[_0x613f('0x44')]=[{'all':!![]}];}_0x12647a=_[_0x613f('0x3b')]({},_0x12647a,_0x403feb[_0x613f('0x3c')]);return db[_0x613f('0x2a')][_0x613f('0x45')](_0x12647a)[_0x613f('0x23')](handleEntityNotFound(_0x2d2574,null))[_0x613f('0x23')](respondWithResult(_0x2d2574,null))[_0x613f('0x40')](handleError(_0x2d2574,null));};exports[_0x613f('0x46')]=function(_0x174e22,_0x17f8e5){return db[_0x613f('0x2a')][_0x613f('0x46')](_0x174e22[_0x613f('0x47')],{})[_0x613f('0x23')](function(_0x5a4079){var _0x47c84b=_0x174e22[_0x613f('0x48')][_0x613f('0x49')]({'plain':!![]});if(!_0x47c84b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x47c84b['role']===_0x613f('0x48')){var _0x51729a=_0x5a4079['get']({'plain':!![]});var _0x6e006b=_0x613f('0x25');return db[_0x613f('0x4a')]['find']({'where':{'name':_0x6e006b,'userProfileId':_0x47c84b[_0x613f('0x4b')]},'raw':!![]})[_0x613f('0x23')](function(_0x4f59b6){if(_0x4f59b6&&_0x4f59b6['autoAssociation']===0x0){return db[_0x613f('0x4c')][_0x613f('0x46')]({'name':_0x51729a[_0x613f('0x2f')],'resourceId':_0x51729a['id'],'type':_0x4f59b6[_0x613f('0x2f')],'sectionId':_0x4f59b6['id']},{})[_0x613f('0x23')](function(){return _0x5a4079;});}else{return _0x5a4079;}})[_0x613f('0x40')](function(_0x24d162){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x24d162);throw _0x24d162;});}return _0x5a4079;})[_0x613f('0x23')](respondWithResult(_0x17f8e5,0xc9))['catch'](handleError(_0x17f8e5,null));};exports['update']=function(_0x387913,_0x52c2a6){if(_0x387913[_0x613f('0x47')]['id']){delete _0x387913['body']['id'];}return db[_0x613f('0x2a')][_0x613f('0x45')]({'where':{'id':_0x387913[_0x613f('0x42')]['id']}})[_0x613f('0x23')](handleEntityNotFound(_0x52c2a6,null))[_0x613f('0x23')](saveUpdates(_0x387913[_0x613f('0x47')],null))[_0x613f('0x23')](respondWithResult(_0x52c2a6,null))['catch'](handleError(_0x52c2a6,null));};exports[_0x613f('0x24')]=function(_0x4ff3ad,_0x3ce3dd){return db[_0x613f('0x2a')][_0x613f('0x45')]({'where':{'id':_0x4ff3ad[_0x613f('0x42')]['id']}})[_0x613f('0x23')](handleEntityNotFound(_0x3ce3dd,null))[_0x613f('0x23')](removeEntity(_0x3ce3dd,null))[_0x613f('0x40')](handleError(_0x3ce3dd,null));};exports[_0x613f('0x4d')]=function(_0x214d01,_0x49637d,_0x2ebce1){return db[_0x613f('0x2a')][_0x613f('0x4e')]({'where':{'id':_0x214d01['params']['id']}})['then'](handleEntityNotFound(_0x49637d,null))[_0x613f('0x23')](function(_0x4b6eb3){var _0xcb1c9d;var _0x3c3cd7={},_0x42a72b={};_0x42a72b[_0x613f('0x2e')]=_[_0x613f('0x30')](db[_0x613f('0x4f')][_0x613f('0x2b')]);_0x42a72b[_0x613f('0x33')]=_[_0x613f('0x30')](_0x214d01[_0x613f('0x33')]);_0x42a72b[_0x613f('0x31')]=_['intersection'](_0x42a72b[_0x613f('0x2e')],_0x42a72b[_0x613f('0x33')]);_0x3c3cd7[_0x613f('0x34')]=_[_0x613f('0x32')](_0x42a72b['model'],qs[_0x613f('0x35')](_0x214d01[_0x613f('0x33')]['fields']));_0x3c3cd7['attributes']=_0x3c3cd7[_0x613f('0x34')]['length']?_0x3c3cd7['attributes']:_0x42a72b['model'];if(!_0x214d01[_0x613f('0x33')]['hasOwnProperty']('nolimit')){_0x3c3cd7['limit']=qs[_0x613f('0x1a')](_0x214d01[_0x613f('0x33')]['limit']);_0x3c3cd7[_0x613f('0x1d')]=qs[_0x613f('0x1d')](_0x214d01[_0x613f('0x33')][_0x613f('0x1d')]);}_0x3c3cd7['order']=qs[_0x613f('0x38')](_0x214d01[_0x613f('0x33')]['sort']);_0x3c3cd7[_0x613f('0x39')]=qs[_0x613f('0x31')](_[_0x613f('0x50')](_0x214d01[_0x613f('0x33')],_0x42a72b[_0x613f('0x31')]));if(_0x214d01[_0x613f('0x33')][_0x613f('0x3a')]){_0x3c3cd7[_0x613f('0x39')]=_[_0x613f('0x3b')](_0x3c3cd7[_0x613f('0x39')],{'$or':_[_0x613f('0x29')](_0x3c3cd7[_0x613f('0x34')],function(_0x50d7ca){var _0x1c4e48={};_0x1c4e48[_0x50d7ca]={'$like':'%'+_0x214d01[_0x613f('0x33')][_0x613f('0x3a')]+'%'};return _0x1c4e48;})});}_0x3c3cd7[_0x613f('0x39')]=_[_0x613f('0x3b')](_0x3c3cd7[_0x613f('0x39')],{'mailboxuser':_0x4b6eb3['mailbox']});_0x3c3cd7=_[_0x613f('0x3b')]({},_0x3c3cd7,_0x214d01[_0x613f('0x3c')]);return db[_0x613f('0x4f')][_0x613f('0x51')](_0x3c3cd7)[_0x613f('0x23')](respondWithFilteredResult(_0x49637d,_0x3c3cd7));})[_0x613f('0x40')](handleError(_0x49637d,null));};
\ No newline at end of file
+var _0xc900=['body','params','findOne','VoiceMailMessage','findAndCountAll','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/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','save','update','then','destroy','Voicemails','UserProfileResource','error','name','send','index','map','fieldName','type','key','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','VoiceMail','includeAll','include','findAll','catch','show','rawAttributes','keys','find','user','get','role','UserProfileSection','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0xe73080,_0x24c56d){var _0x12cbc4=function(_0x1377e2){while(--_0x1377e2){_0xe73080['push'](_0xe73080['shift']());}};_0x12cbc4(++_0x24c56d);}(_0xc900,0xb3));var _0x0c90=function(_0x43bedb,_0x2227bd){_0x43bedb=_0x43bedb-0x0;var _0x4879f9=_0xc900[_0x43bedb];return _0x4879f9;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x0c90('0x0'));var jsonpatch=require(_0x0c90('0x1'));var rp=require(_0x0c90('0x2'));var moment=require('moment');var BPromise=require(_0x0c90('0x3'));var Mustache=require(_0x0c90('0x4'));var util=require('util');var path=require(_0x0c90('0x5'));var sox=require(_0x0c90('0x6'));var csv=require(_0x0c90('0x7'));var ejs=require(_0x0c90('0x8'));var fs=require('fs');var fs_extra=require(_0x0c90('0x9'));var _=require(_0x0c90('0xa'));var squel=require('squel');var crypto=require(_0x0c90('0xb'));var jsforce=require(_0x0c90('0xc'));var deskjs=require(_0x0c90('0xd'));var toCsv=require(_0x0c90('0x7'));var querystring=require(_0x0c90('0xe'));var Papa=require(_0x0c90('0xf'));var Redis=require(_0x0c90('0x10'));var authService=require(_0x0c90('0x11'));var qs=require(_0x0c90('0x12'));var as=require(_0x0c90('0x13'));var hardwareService=require(_0x0c90('0x14'));var logger=require(_0x0c90('0x15'))(_0x0c90('0x16'));var utils=require('../../config/utils');var config=require(_0x0c90('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x0c90('0x18'))['db'];function respondWithStatusCode(_0x50e7db,_0x459cdb){_0x459cdb=_0x459cdb||0xcc;return function(_0x26fc46){if(_0x26fc46){return _0x50e7db[_0x0c90('0x19')](_0x459cdb);}return _0x50e7db[_0x0c90('0x1a')](_0x459cdb)[_0x0c90('0x1b')]();};}function respondWithResult(_0x59ea8e,_0x467b32){_0x467b32=_0x467b32||0xc8;return function(_0x4451e0){if(_0x4451e0){return _0x59ea8e['status'](_0x467b32)[_0x0c90('0x1c')](_0x4451e0);}};}function respondWithFilteredResult(_0x3a492d,_0x3bd5e8){return function(_0x5bef7d){if(_0x5bef7d){var _0x5daeb7=typeof _0x3bd5e8[_0x0c90('0x1d')]===_0x0c90('0x1e')&&typeof _0x3bd5e8[_0x0c90('0x1f')]===_0x0c90('0x1e');var _0x276b92=_0x5bef7d[_0x0c90('0x20')];var _0x42321a=_0x5daeb7?0x0:_0x3bd5e8['offset'];var _0xc3bb47=_0x5daeb7?_0x5bef7d[_0x0c90('0x20')]:_0x3bd5e8[_0x0c90('0x1d')]+_0x3bd5e8[_0x0c90('0x1f')];var _0x594267;if(_0xc3bb47>=_0x276b92){_0xc3bb47=_0x276b92;_0x594267=0xc8;}else{_0x594267=0xce;}_0x3a492d[_0x0c90('0x1a')](_0x594267);return _0x3a492d[_0x0c90('0x21')](_0x0c90('0x22'),_0x42321a+'-'+_0xc3bb47+'/'+_0x276b92)[_0x0c90('0x1c')](_0x5bef7d);}return null;};}function patchUpdates(_0x315932){return function(_0xc08f54){try{jsonpatch['apply'](_0xc08f54,_0x315932,!![]);}catch(_0x365a42){return BPromise['reject'](_0x365a42);}return _0xc08f54[_0x0c90('0x23')]();};}function saveUpdates(_0x1a021e,_0x47b13c){return function(_0x2a053a){if(_0x2a053a){return _0x2a053a[_0x0c90('0x24')](_0x1a021e)[_0x0c90('0x25')](function(_0x86dee){return _0x86dee;});}return null;};}function removeEntity(_0x212164,_0x3b287c){return function(_0x4dfbc3){if(_0x4dfbc3){return _0x4dfbc3[_0x0c90('0x26')]()[_0x0c90('0x25')](function(){var _0x5695a2=_0x4dfbc3['get']({'plain':!![]});var _0x28d005=_0x0c90('0x27');return db[_0x0c90('0x28')][_0x0c90('0x26')]({'where':{'type':_0x28d005,'resourceId':_0x5695a2['id']}})['then'](function(){return _0x4dfbc3;});})[_0x0c90('0x25')](function(){_0x212164[_0x0c90('0x1a')](0xcc)[_0x0c90('0x1b')]();});}};}function handleEntityNotFound(_0x277d4a,_0x427c2b){return function(_0x114589){if(!_0x114589){_0x277d4a['sendStatus'](0x194);}return _0x114589;};}function handleError(_0x15de68,_0x22a47d){_0x22a47d=_0x22a47d||0x1f4;return function(_0x39f1b2){logger[_0x0c90('0x29')](_0x39f1b2['stack']);if(_0x39f1b2['name']){delete _0x39f1b2[_0x0c90('0x2a')];}_0x15de68[_0x0c90('0x1a')](_0x22a47d)[_0x0c90('0x2b')](_0x39f1b2);};}exports[_0x0c90('0x2c')]=function(_0x119e09,_0x562664){var _0x120136={},_0x50b156={},_0x478002={'count':0x0,'rows':[]};var _0x47a935=_[_0x0c90('0x2d')](db['VoiceMail']['rawAttributes'],function(_0x886634){return{'name':_0x886634[_0x0c90('0x2e')],'type':_0x886634[_0x0c90('0x2f')][_0x0c90('0x30')]};});_0x50b156['model']=_[_0x0c90('0x2d')](_0x47a935,'name');_0x50b156[_0x0c90('0x31')]=_['keys'](_0x119e09[_0x0c90('0x31')]);_0x50b156[_0x0c90('0x32')]=_['intersection'](_0x50b156[_0x0c90('0x33')],_0x50b156[_0x0c90('0x31')]);_0x120136[_0x0c90('0x34')]=_[_0x0c90('0x35')](_0x50b156[_0x0c90('0x33')],qs[_0x0c90('0x36')](_0x119e09[_0x0c90('0x31')][_0x0c90('0x36')]));_0x120136['attributes']=_0x120136[_0x0c90('0x34')][_0x0c90('0x37')]?_0x120136[_0x0c90('0x34')]:_0x50b156[_0x0c90('0x33')];if(!_0x119e09['query'][_0x0c90('0x38')](_0x0c90('0x39'))){_0x120136[_0x0c90('0x1f')]=qs[_0x0c90('0x1f')](_0x119e09[_0x0c90('0x31')][_0x0c90('0x1f')]);_0x120136[_0x0c90('0x1d')]=qs[_0x0c90('0x1d')](_0x119e09['query'][_0x0c90('0x1d')]);}_0x120136[_0x0c90('0x3a')]=qs['sort'](_0x119e09[_0x0c90('0x31')][_0x0c90('0x3b')]);_0x120136[_0x0c90('0x3c')]=qs[_0x0c90('0x32')](_[_0x0c90('0x3d')](_0x119e09['query'],_0x50b156[_0x0c90('0x32')]),_0x47a935);if(_0x119e09[_0x0c90('0x31')][_0x0c90('0x3e')]){_0x120136[_0x0c90('0x3c')]=_[_0x0c90('0x3f')](_0x120136[_0x0c90('0x3c')],{'$or':_[_0x0c90('0x2d')](_0x47a935,function(_0x1695dd){if(_0x1695dd[_0x0c90('0x2f')]!=='VIRTUAL'){var _0x2cd2c2={};_0x2cd2c2[_0x1695dd['name']]={'$like':'%'+_0x119e09[_0x0c90('0x31')]['filter']+'%'};return _0x2cd2c2;}})});}_0x120136=_[_0x0c90('0x3f')]({},_0x120136,_0x119e09[_0x0c90('0x40')]);var _0x49f8b4={'where':_0x120136['where']};return db[_0x0c90('0x41')]['count'](_0x49f8b4)[_0x0c90('0x25')](function(_0x4545bb){_0x478002[_0x0c90('0x20')]=_0x4545bb;if(_0x119e09['query'][_0x0c90('0x42')]){_0x120136[_0x0c90('0x43')]=[{'all':!![]}];}return db[_0x0c90('0x41')][_0x0c90('0x44')](_0x120136);})[_0x0c90('0x25')](function(_0x1184c4){_0x478002['rows']=_0x1184c4;return _0x478002;})[_0x0c90('0x25')](respondWithFilteredResult(_0x562664,_0x120136))[_0x0c90('0x45')](handleError(_0x562664,null));};exports[_0x0c90('0x46')]=function(_0x399115,_0x3c47c9){var _0x15d040={'raw':!![],'where':{'id':_0x399115['params']['id']}},_0x30b9df={};_0x30b9df[_0x0c90('0x33')]=_['keys'](db[_0x0c90('0x41')][_0x0c90('0x47')]);_0x30b9df[_0x0c90('0x31')]=_[_0x0c90('0x48')](_0x399115[_0x0c90('0x31')]);_0x30b9df[_0x0c90('0x32')]=_[_0x0c90('0x35')](_0x30b9df[_0x0c90('0x33')],_0x30b9df[_0x0c90('0x31')]);_0x15d040[_0x0c90('0x34')]=_[_0x0c90('0x35')](_0x30b9df[_0x0c90('0x33')],qs[_0x0c90('0x36')](_0x399115[_0x0c90('0x31')][_0x0c90('0x36')]));_0x15d040['attributes']=_0x15d040[_0x0c90('0x34')][_0x0c90('0x37')]?_0x15d040[_0x0c90('0x34')]:_0x30b9df[_0x0c90('0x33')];if(_0x399115[_0x0c90('0x31')][_0x0c90('0x42')]){_0x15d040[_0x0c90('0x43')]=[{'all':!![]}];}_0x15d040=_[_0x0c90('0x3f')]({},_0x15d040,_0x399115[_0x0c90('0x40')]);return db[_0x0c90('0x41')][_0x0c90('0x49')](_0x15d040)[_0x0c90('0x25')](handleEntityNotFound(_0x3c47c9,null))[_0x0c90('0x25')](respondWithResult(_0x3c47c9,null))[_0x0c90('0x45')](handleError(_0x3c47c9,null));};exports['create']=function(_0x1b4aac,_0x38f492){return db['VoiceMail']['create'](_0x1b4aac['body'],{})[_0x0c90('0x25')](function(_0x1205d0){var _0x460cf9=_0x1b4aac[_0x0c90('0x4a')][_0x0c90('0x4b')]({'plain':!![]});if(!_0x460cf9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x460cf9[_0x0c90('0x4c')]===_0x0c90('0x4a')){var _0x2b756d=_0x1205d0['get']({'plain':!![]});var _0x119776=_0x0c90('0x27');return db[_0x0c90('0x4d')][_0x0c90('0x49')]({'where':{'name':_0x119776,'userProfileId':_0x460cf9[_0x0c90('0x4e')]},'raw':!![]})[_0x0c90('0x25')](function(_0x42c121){if(_0x42c121&&_0x42c121[_0x0c90('0x4f')]===0x0){return db[_0x0c90('0x28')][_0x0c90('0x50')]({'name':_0x2b756d['name'],'resourceId':_0x2b756d['id'],'type':_0x42c121[_0x0c90('0x2a')],'sectionId':_0x42c121['id']},{})['then'](function(){return _0x1205d0;});}else{return _0x1205d0;}})[_0x0c90('0x45')](function(_0x67539d){logger[_0x0c90('0x29')](_0x0c90('0x51'),_0x67539d);throw _0x67539d;});}return _0x1205d0;})[_0x0c90('0x25')](respondWithResult(_0x38f492,0xc9))[_0x0c90('0x45')](handleError(_0x38f492,null));};exports['update']=function(_0x4930fc,_0x5382d9){if(_0x4930fc['body']['id']){delete _0x4930fc[_0x0c90('0x52')]['id'];}return db[_0x0c90('0x41')][_0x0c90('0x49')]({'where':{'id':_0x4930fc['params']['id']}})[_0x0c90('0x25')](handleEntityNotFound(_0x5382d9,null))[_0x0c90('0x25')](saveUpdates(_0x4930fc['body'],null))[_0x0c90('0x25')](respondWithResult(_0x5382d9,null))['catch'](handleError(_0x5382d9,null));};exports[_0x0c90('0x26')]=function(_0x8951f2,_0x42398b){return db[_0x0c90('0x41')]['find']({'where':{'id':_0x8951f2[_0x0c90('0x53')]['id']}})['then'](handleEntityNotFound(_0x42398b,null))[_0x0c90('0x25')](removeEntity(_0x42398b,null))[_0x0c90('0x45')](handleError(_0x42398b,null));};exports['getMessages']=function(_0x52b437,_0x51c356,_0x221fba){return db[_0x0c90('0x41')][_0x0c90('0x54')]({'where':{'id':_0x52b437[_0x0c90('0x53')]['id']}})[_0x0c90('0x25')](handleEntityNotFound(_0x51c356,null))['then'](function(_0x3bfd01){var _0x25ab13;var _0x5ee971={},_0x3eb725={};_0x3eb725['model']=_[_0x0c90('0x48')](db[_0x0c90('0x55')]['rawAttributes']);_0x3eb725[_0x0c90('0x31')]=_['keys'](_0x52b437['query']);_0x3eb725['filters']=_[_0x0c90('0x35')](_0x3eb725[_0x0c90('0x33')],_0x3eb725[_0x0c90('0x31')]);_0x5ee971[_0x0c90('0x34')]=_['intersection'](_0x3eb725['model'],qs[_0x0c90('0x36')](_0x52b437[_0x0c90('0x31')][_0x0c90('0x36')]));_0x5ee971['attributes']=_0x5ee971[_0x0c90('0x34')][_0x0c90('0x37')]?_0x5ee971[_0x0c90('0x34')]:_0x3eb725['model'];if(!_0x52b437[_0x0c90('0x31')][_0x0c90('0x38')](_0x0c90('0x39'))){_0x5ee971['limit']=qs[_0x0c90('0x1f')](_0x52b437[_0x0c90('0x31')][_0x0c90('0x1f')]);_0x5ee971[_0x0c90('0x1d')]=qs[_0x0c90('0x1d')](_0x52b437[_0x0c90('0x31')][_0x0c90('0x1d')]);}_0x5ee971[_0x0c90('0x3a')]=qs[_0x0c90('0x3b')](_0x52b437['query']['sort']);_0x5ee971[_0x0c90('0x3c')]=qs[_0x0c90('0x32')](_[_0x0c90('0x3d')](_0x52b437[_0x0c90('0x31')],_0x3eb725[_0x0c90('0x32')]));if(_0x52b437[_0x0c90('0x31')][_0x0c90('0x3e')]){_0x5ee971[_0x0c90('0x3c')]=_[_0x0c90('0x3f')](_0x5ee971[_0x0c90('0x3c')],{'$or':_[_0x0c90('0x2d')](_0x5ee971[_0x0c90('0x34')],function(_0x309152){var _0x164d4d={};_0x164d4d[_0x309152]={'$like':'%'+_0x52b437[_0x0c90('0x31')]['filter']+'%'};return _0x164d4d;})});}_0x5ee971[_0x0c90('0x3c')]=_[_0x0c90('0x3f')](_0x5ee971[_0x0c90('0x3c')],{'mailboxuser':_0x3bfd01['mailbox']});_0x5ee971=_['merge']({},_0x5ee971,_0x52b437[_0x0c90('0x40')]);return db['VoiceMailMessage'][_0x0c90('0x56')](_0x5ee971)[_0x0c90('0x25')](respondWithFilteredResult(_0x51c356,_0x5ee971));})['catch'](handleError(_0x51c356,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x92f8=['util','../../config/logger','api','moment','bluebird','../../config/environment','./voiceMail.attributes','VoiceMail','voice_voicemail','mailbox_context','mailbox','context','lodash'];(function(_0x4a53d,_0x58a95e){var _0x27410e=function(_0x38fc90){while(--_0x38fc90){_0x4a53d['push'](_0x4a53d['shift']());}};_0x27410e(++_0x58a95e);}(_0x92f8,0xa8));var _0x892f=function(_0x250ce7,_0x502ad3){_0x250ce7=_0x250ce7-0x0;var _0x416428=_0x92f8[_0x250ce7];return _0x416428;};'use strict';var _=require(_0x892f('0x0'));var util=require(_0x892f('0x1'));var logger=require(_0x892f('0x2'))(_0x892f('0x3'));var moment=require(_0x892f('0x4'));var BPromise=require(_0x892f('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x892f('0x6'));var attributes=require(_0x892f('0x7'));module['exports']=function(_0x226b9a,_0x4d6305){return _0x226b9a['define'](_0x892f('0x8'),attributes,{'tableName':_0x892f('0x9'),'paranoid':![],'indexes':[{'name':_0x892f('0xa'),'fields':[_0x892f('0xb'),_0x892f('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xeeb8=['util','../../config/logger','moment','bluebird','request-promise','path','define','VoiceMail','voice_voicemail','mailbox_context','context'];(function(_0x5a95fa,_0x4a2fc9){var _0x1a61b8=function(_0x59f119){while(--_0x59f119){_0x5a95fa['push'](_0x5a95fa['shift']());}};_0x1a61b8(++_0x4a2fc9);}(_0xeeb8,0xb0));var _0x8eeb=function(_0x1bbc2c,_0x38450c){_0x1bbc2c=_0x1bbc2c-0x0;var _0x323115=_0xeeb8[_0x1bbc2c];return _0x323115;};'use strict';var _=require('lodash');var util=require(_0x8eeb('0x0'));var logger=require(_0x8eeb('0x1'))('api');var moment=require(_0x8eeb('0x2'));var BPromise=require(_0x8eeb('0x3'));var rp=require(_0x8eeb('0x4'));var fs=require('fs');var path=require(_0x8eeb('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./voiceMail.attributes');module['exports']=function(_0xcca94a,_0x24dbe2){return _0xcca94a[_0x8eeb('0x6')](_0x8eeb('0x7'),attributes,{'tableName':_0x8eeb('0x8'),'paranoid':![],'indexes':[{'name':_0x8eeb('0x9'),'fields':['mailbox',_0x8eeb('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf000=['then','info','VoiceMail,\x20%s,\x20%s','debug','VoiceMail,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request'];(function(_0x2112d4,_0x3c863c){var _0x434972=function(_0x477020){while(--_0x477020){_0x2112d4['push'](_0x2112d4['shift']());}};_0x434972(++_0x3c863c);}(_0xf000,0xfb));var _0x0f00=function(_0xa990b7,_0x26c527){_0xa990b7=_0xa990b7-0x0;var _0x52c99c=_0xf000[_0xa990b7];return _0x52c99c;};'use strict';var _=require(_0x0f00('0x0'));var util=require(_0x0f00('0x1'));var moment=require(_0x0f00('0x2'));var BPromise=require('bluebird');var rs=require(_0x0f00('0x3'));var fs=require('fs');var Redis=require(_0x0f00('0x4'));var db=require(_0x0f00('0x5'))['db'];var utils=require(_0x0f00('0x6'));var logger=require(_0x0f00('0x7'))(_0x0f00('0x8'));var config=require(_0x0f00('0x9'));var jayson=require(_0x0f00('0xa'));var client=jayson[_0x0f00('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3817ea,_0x33a102,_0x4e246c){return new BPromise(function(_0x1047c2,_0x101e76){return client[_0x0f00('0xc')](_0x3817ea,_0x4e246c)[_0x0f00('0xd')](function(_0x218af4){logger[_0x0f00('0xe')](_0x0f00('0xf'),_0x33a102,'request\x20sent');logger[_0x0f00('0x10')](_0x0f00('0x11'),_0x33a102,'request\x20sent',JSON[_0x0f00('0x12')](_0x218af4));if(_0x218af4[_0x0f00('0x13')]){if(_0x218af4[_0x0f00('0x13')][_0x0f00('0x14')]===0x1f4){logger['error'](_0x0f00('0xf'),_0x33a102,_0x218af4['error'][_0x0f00('0x15')]);return _0x101e76(_0x218af4[_0x0f00('0x13')][_0x0f00('0x15')]);}logger[_0x0f00('0x13')](_0x0f00('0xf'),_0x33a102,_0x218af4[_0x0f00('0x13')][_0x0f00('0x15')]);return _0x1047c2(_0x218af4[_0x0f00('0x13')][_0x0f00('0x15')]);}else{logger[_0x0f00('0xe')]('VoiceMail,\x20%s,\x20%s',_0x33a102,'request\x20sent');_0x1047c2(_0x218af4[_0x0f00('0x16')][_0x0f00('0x15')]);}})[_0x0f00('0x17')](function(_0x33f115){logger['error']('VoiceMail,\x20%s,\x20%s',_0x33a102,_0x33f115);_0x101e76(_0x33f115);});});}
\ No newline at end of file
+var _0xe3bc=['info','VoiceMail,\x20%s,\x20%s','request\x20sent','debug','VoiceMail,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','jayson/promise','client','then'];(function(_0x2eb4f9,_0x47f2d2){var _0x1de35f=function(_0x409055){while(--_0x409055){_0x2eb4f9['push'](_0x2eb4f9['shift']());}};_0x1de35f(++_0x47f2d2);}(_0xe3bc,0xdb));var _0xce3b=function(_0x2a6ebc,_0x44324f){_0x2a6ebc=_0x2a6ebc-0x0;var _0x3a7d56=_0xe3bc[_0x2a6ebc];return _0x3a7d56;};'use strict';var _=require('lodash');var util=require(_0xce3b('0x0'));var moment=require(_0xce3b('0x1'));var BPromise=require(_0xce3b('0x2'));var rs=require(_0xce3b('0x3'));var fs=require('fs');var Redis=require(_0xce3b('0x4'));var db=require(_0xce3b('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0xce3b('0x6'));var client=jayson[_0xce3b('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2acb3e,_0x3556aa,_0x347a86){return new BPromise(function(_0x2adbc2,_0xb8e98b){return client['request'](_0x2acb3e,_0x347a86)[_0xce3b('0x8')](function(_0x1780c8){logger[_0xce3b('0x9')](_0xce3b('0xa'),_0x3556aa,_0xce3b('0xb'));logger[_0xce3b('0xc')](_0xce3b('0xd'),_0x3556aa,_0xce3b('0xb'),JSON[_0xce3b('0xe')](_0x1780c8));if(_0x1780c8['error']){if(_0x1780c8[_0xce3b('0xf')][_0xce3b('0x10')]===0x1f4){logger[_0xce3b('0xf')](_0xce3b('0xa'),_0x3556aa,_0x1780c8[_0xce3b('0xf')][_0xce3b('0x11')]);return _0xb8e98b(_0x1780c8['error']['message']);}logger[_0xce3b('0xf')](_0xce3b('0xa'),_0x3556aa,_0x1780c8[_0xce3b('0xf')]['message']);return _0x2adbc2(_0x1780c8['error']['message']);}else{logger[_0xce3b('0x9')](_0xce3b('0xa'),_0x3556aa,_0xce3b('0xb'));_0x2adbc2(_0x1780c8[_0xce3b('0x12')][_0xce3b('0x11')]);}})['catch'](function(_0x4f0924){logger['error']('VoiceMail,\x20%s,\x20%s',_0x3556aa,_0x4f0924);_0xb8e98b(_0x4f0924);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x873c=['./voiceMailMessage.controller','get','isAuthenticated','/:id','show','/:id/download','download','post','create','put','update','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x117a01,_0x184658){var _0x1b0c55=function(_0x375c8d){while(--_0x375c8d){_0x117a01['push'](_0x117a01['shift']());}};_0x1b0c55(++_0x184658);}(_0x873c,0x1b1));var _0xc873=function(_0x4115d4,_0x4ff87b){_0x4115d4=_0x4115d4-0x0;var _0x15b8fa=_0x873c[_0x4115d4];return _0x15b8fa;};'use strict';var multer=require(_0xc873('0x0'));var util=require(_0xc873('0x1'));var path=require('path');var timeout=require(_0xc873('0x2'));var express=require(_0xc873('0x3'));var router=express[_0xc873('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xc873('0x5'));var interaction=require(_0xc873('0x6'));var config=require(_0xc873('0x7'));var controller=require(_0xc873('0x8'));router[_0xc873('0x9')]('/',auth[_0xc873('0xa')](),controller['index']);router[_0xc873('0x9')](_0xc873('0xb'),auth['isAuthenticated'](),controller[_0xc873('0xc')]);router[_0xc873('0x9')](_0xc873('0xd'),auth[_0xc873('0xa')](),controller[_0xc873('0xe')]);router[_0xc873('0xf')]('/',auth['isAuthenticated'](),controller[_0xc873('0x10')]);router[_0xc873('0x11')](_0xc873('0xb'),auth[_0xc873('0xa')](),controller[_0xc873('0x12')]);router['delete'](_0xc873('0xb'),auth[_0xc873('0xa')](),controller[_0xc873('0x13')]);module[_0xc873('0x14')]=router;
\ No newline at end of file
+var _0x2751=['update','delete','destroy','exports','multer','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMailMessage.controller','get','isAuthenticated','index','/:id','show','/:id/download','download','create','put'];(function(_0x7ac2d,_0x50b7eb){var _0x4d91e2=function(_0x43f662){while(--_0x43f662){_0x7ac2d['push'](_0x7ac2d['shift']());}};_0x4d91e2(++_0x50b7eb);}(_0x2751,0x16c));var _0x1275=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x2751[_0xa464c9];return _0x3d73c4;};'use strict';var multer=require(_0x1275('0x0'));var util=require('util');var path=require(_0x1275('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x1275('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x1275('0x3'));var interaction=require(_0x1275('0x4'));var config=require(_0x1275('0x5'));var controller=require(_0x1275('0x6'));router[_0x1275('0x7')]('/',auth[_0x1275('0x8')](),controller[_0x1275('0x9')]);router[_0x1275('0x7')](_0x1275('0xa'),auth['isAuthenticated'](),controller[_0x1275('0xb')]);router[_0x1275('0x7')](_0x1275('0xc'),auth[_0x1275('0x8')](),controller[_0x1275('0xd')]);router['post']('/',auth['isAuthenticated'](),controller[_0x1275('0xe')]);router[_0x1275('0xf')](_0x1275('0xa'),auth[_0x1275('0x8')](),controller[_0x1275('0x10')]);router[_0x1275('0x11')](_0x1275('0xa'),auth['isAuthenticated'](),controller[_0x1275('0x12')]);module[_0x1275('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x07c2=['exports','VIRTUAL','getDataValue','STRING','BLOB','long','literal','CURRENT_TIMESTAMP\x20ON\x20UPDATE\x20CURRENT_TIMESTAMP','sequelize'];(function(_0x315aea,_0x318a80){var _0x4a4bdb=function(_0x7c049c){while(--_0x7c049c){_0x315aea['push'](_0x315aea['shift']());}};_0x4a4bdb(++_0x318a80);}(_0x07c2,0x19d));var _0x207c=function(_0x165d3c,_0x3ba20d){_0x165d3c=_0x165d3c-0x0;var _0xc27339=_0x07c2[_0x165d3c];return _0xc27339;};'use strict';var Sequelize=require(_0x207c('0x0'));module[_0x207c('0x1')]={'name':{'type':Sequelize[_0x207c('0x2')],'get':function(_0x2a5bca){return this[_0x207c('0x3')]('id');}},'msgnum':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0x207c('0x4')],'defaultValue':''},'context':{'type':Sequelize['STRING'],'defaultValue':''},'macrocontext':{'type':Sequelize[_0x207c('0x4')],'defaultValue':''},'callerid':{'type':Sequelize[_0x207c('0x4')],'defaultValue':''},'origtime':{'type':Sequelize['STRING'],'defaultValue':''},'duration':{'type':Sequelize[_0x207c('0x4')],'defaultValue':''},'mailboxuser':{'type':Sequelize[_0x207c('0x4')],'defaultValue':''},'mailboxcontext':{'type':Sequelize['STRING'],'defaultValue':''},'recording':{'type':Sequelize[_0x207c('0x5')](_0x207c('0x6')),'defaultValue':null},'flag':{'type':Sequelize[_0x207c('0x4')],'defaultValue':''},'msg_id':{'type':Sequelize[_0x207c('0x4')],'defaultValue':''},'stamp':{'type':'TIMESTAMP','defaultValue':Sequelize[_0x207c('0x7')](_0x207c('0x8'))}};
\ No newline at end of file
+var _0x7d6a=['exports','getDataValue','STRING','BLOB','long','TIMESTAMP','literal','CURRENT_TIMESTAMP\x20ON\x20UPDATE\x20CURRENT_TIMESTAMP','sequelize'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x7d6a,0x128));var _0xa7d6=function(_0x39cc40,_0x391073){_0x39cc40=_0x39cc40-0x0;var _0x5f2225=_0x7d6a[_0x39cc40];return _0x5f2225;};'use strict';var Sequelize=require(_0xa7d6('0x0'));module[_0xa7d6('0x1')]={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x11ffb1){return this[_0xa7d6('0x2')]('id');}},'msgnum':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0xa7d6('0x3')],'defaultValue':''},'context':{'type':Sequelize[_0xa7d6('0x3')],'defaultValue':''},'macrocontext':{'type':Sequelize['STRING'],'defaultValue':''},'callerid':{'type':Sequelize['STRING'],'defaultValue':''},'origtime':{'type':Sequelize['STRING'],'defaultValue':''},'duration':{'type':Sequelize[_0xa7d6('0x3')],'defaultValue':''},'mailboxuser':{'type':Sequelize[_0xa7d6('0x3')],'defaultValue':''},'mailboxcontext':{'type':Sequelize[_0xa7d6('0x3')],'defaultValue':''},'recording':{'type':Sequelize[_0xa7d6('0x4')](_0xa7d6('0x5')),'defaultValue':null},'flag':{'type':Sequelize['STRING'],'defaultValue':''},'msg_id':{'type':Sequelize[_0xa7d6('0x3')],'defaultValue':''},'stamp':{'type':_0xa7d6('0x6'),'defaultValue':Sequelize[_0xa7d6('0x7')](_0xa7d6('0x8'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb38f=['sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','save','destroy','name','send','index','map','rawAttributes','fieldName','type','key','differenceBy','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','then','includeAll','include','VoiceMailMessage','rows','catch','show','params','options','find','create','body','update','download','recording','msg_id','Sequelize','ValidationError','VoiceMailMessage\x20not\x20found','audio/wav','attachment','Content-Disposition','attachment;\x20filename=\x22','.wav\x22','set','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0x5da630,_0x40a422){var _0x1a401b=function(_0x439b54){while(--_0x439b54){_0x5da630['push'](_0x5da630['shift']());}};_0x1a401b(++_0x40a422);}(_0xb38f,0x147));var _0xfb38=function(_0x2fcf18,_0x10009a){_0x2fcf18=_0x2fcf18-0x0;var _0x4c68cc=_0xb38f[_0x2fcf18];return _0x4c68cc;};'use strict';var emlformat=require(_0xfb38('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xfb38('0x1'));var jsonpatch=require(_0xfb38('0x2'));var rp=require(_0xfb38('0x3'));var moment=require(_0xfb38('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xfb38('0x5'));var util=require('util');var path=require(_0xfb38('0x6'));var sox=require('sox');var csv=require(_0xfb38('0x7'));var ejs=require(_0xfb38('0x8'));var fs=require('fs');var fs_extra=require(_0xfb38('0x9'));var _=require(_0xfb38('0xa'));var squel=require(_0xfb38('0xb'));var crypto=require(_0xfb38('0xc'));var jsforce=require(_0xfb38('0xd'));var deskjs=require(_0xfb38('0xe'));var toCsv=require('to-csv');var querystring=require(_0xfb38('0xf'));var Papa=require(_0xfb38('0x10'));var Redis=require(_0xfb38('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xfb38('0x12'));var as=require(_0xfb38('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xfb38('0x14'))(_0xfb38('0x15'));var utils=require('../../config/utils');var config=require(_0xfb38('0x16'));var licenseUtil=require(_0xfb38('0x17'));var db=require(_0xfb38('0x18'))['db'];function respondWithStatusCode(_0x50b3f2,_0x5c9190){_0x5c9190=_0x5c9190||0xcc;return function(_0x32ec81){if(_0x32ec81){return _0x50b3f2[_0xfb38('0x19')](_0x5c9190);}return _0x50b3f2[_0xfb38('0x1a')](_0x5c9190)[_0xfb38('0x1b')]();};}function respondWithResult(_0x1abaf3,_0x2be80c){_0x2be80c=_0x2be80c||0xc8;return function(_0x44ab34){if(_0x44ab34){return _0x1abaf3[_0xfb38('0x1a')](_0x2be80c)[_0xfb38('0x1c')](_0x44ab34);}};}function respondWithFilteredResult(_0x3e6b6b,_0x9fe01b){return function(_0x2fe4b3){if(_0x2fe4b3){var _0x4c57ea=typeof _0x9fe01b[_0xfb38('0x1d')]===_0xfb38('0x1e')&&typeof _0x9fe01b[_0xfb38('0x1f')]==='undefined';var _0x5c9a0d=_0x2fe4b3[_0xfb38('0x20')];var _0x2c0614=_0x4c57ea?0x0:_0x9fe01b[_0xfb38('0x1d')];var _0x5b2e58=_0x4c57ea?_0x2fe4b3[_0xfb38('0x20')]:_0x9fe01b[_0xfb38('0x1d')]+_0x9fe01b[_0xfb38('0x1f')];var _0x4fb56a;if(_0x5b2e58>=_0x5c9a0d){_0x5b2e58=_0x5c9a0d;_0x4fb56a=0xc8;}else{_0x4fb56a=0xce;}_0x3e6b6b[_0xfb38('0x1a')](_0x4fb56a);return _0x3e6b6b['set'](_0xfb38('0x21'),_0x2c0614+'-'+_0x5b2e58+'/'+_0x5c9a0d)[_0xfb38('0x1c')](_0x2fe4b3);}return null;};}function patchUpdates(_0xb1fc6e){return function(_0x1502cd){try{jsonpatch[_0xfb38('0x22')](_0x1502cd,_0xb1fc6e,!![]);}catch(_0x1c9d51){return BPromise['reject'](_0x1c9d51);}return _0x1502cd[_0xfb38('0x23')]();};}function saveUpdates(_0x52ea41,_0x34eac1){return function(_0x3d5f9d){if(_0x3d5f9d){return _0x3d5f9d['update'](_0x52ea41)['then'](function(_0x155e1f){return _0x155e1f;});}return null;};}function removeEntity(_0x1b5a5b,_0x163a6e){return function(_0x170f48){if(_0x170f48){return _0x170f48[_0xfb38('0x24')]()['then'](function(){_0x1b5a5b[_0xfb38('0x1a')](0xcc)[_0xfb38('0x1b')]();});}};}function handleEntityNotFound(_0x2fc600,_0x270f96){return function(_0x59e0ae){if(!_0x59e0ae){_0x2fc600['sendStatus'](0x194);}return _0x59e0ae;};}function handleError(_0x3ce21f,_0x5918ee){_0x5918ee=_0x5918ee||0x1f4;return function(_0x2bfc57){logger['error'](_0x2bfc57['stack']);if(_0x2bfc57['name']){delete _0x2bfc57[_0xfb38('0x25')];}_0x3ce21f[_0xfb38('0x1a')](_0x5918ee)[_0xfb38('0x26')](_0x2bfc57);};}exports[_0xfb38('0x27')]=function(_0x11b03a,_0x27e6af){var _0xaa6515={},_0x432aa6={},_0x41da15={'count':0x0,'rows':[]};var _0x535ba0=_[_0xfb38('0x28')](db['VoiceMailMessage'][_0xfb38('0x29')],function(_0x2af953){return{'name':_0x2af953[_0xfb38('0x2a')],'type':_0x2af953[_0xfb38('0x2b')][_0xfb38('0x2c')]};});_0x432aa6['model']=_[_0xfb38('0x2d')](_[_0xfb38('0x28')](_0x535ba0,_0xfb38('0x25')),[_0xfb38('0x25')]);_0x432aa6['query']=_[_0xfb38('0x2e')](_0x11b03a[_0xfb38('0x2f')]);_0x432aa6[_0xfb38('0x30')]=_[_0xfb38('0x31')](_0x432aa6[_0xfb38('0x32')],_0x432aa6[_0xfb38('0x2f')]);_0xaa6515[_0xfb38('0x33')]=_['intersection'](_0x432aa6[_0xfb38('0x32')],qs[_0xfb38('0x34')](_0x11b03a[_0xfb38('0x2f')][_0xfb38('0x34')]));_0xaa6515[_0xfb38('0x33')]=_0xaa6515[_0xfb38('0x33')][_0xfb38('0x35')]?_0xaa6515[_0xfb38('0x33')]:_0x432aa6['model'];if(!_0x11b03a[_0xfb38('0x2f')][_0xfb38('0x36')](_0xfb38('0x37'))){_0xaa6515['limit']=qs[_0xfb38('0x1f')](_0x11b03a[_0xfb38('0x2f')]['limit']);_0xaa6515[_0xfb38('0x1d')]=qs[_0xfb38('0x1d')](_0x11b03a['query'][_0xfb38('0x1d')]);}_0xaa6515[_0xfb38('0x38')]=qs[_0xfb38('0x39')](_0x11b03a[_0xfb38('0x2f')]['sort']);_0xaa6515[_0xfb38('0x3a')]=qs[_0xfb38('0x30')](_[_0xfb38('0x3b')](_0x11b03a[_0xfb38('0x2f')],_0x432aa6[_0xfb38('0x30')]),_0x535ba0);if(_0x11b03a['query'][_0xfb38('0x3c')]){_0xaa6515[_0xfb38('0x3a')]=_[_0xfb38('0x3d')](_0xaa6515['where'],{'$or':_['map'](_0x535ba0,function(_0x17508f){if(_0x17508f[_0xfb38('0x2b')]!==_0xfb38('0x3e')){var _0x5153b6={};_0x5153b6[_0x17508f[_0xfb38('0x25')]]={'$like':'%'+_0x11b03a['query'][_0xfb38('0x3c')]+'%'};return _0x5153b6;}})});}_0xaa6515=_[_0xfb38('0x3d')]({},_0xaa6515,_0x11b03a['options']);var _0x1aa0bb={'where':_0xaa6515[_0xfb38('0x3a')]};return db['VoiceMailMessage'][_0xfb38('0x20')](_0x1aa0bb)[_0xfb38('0x3f')](function(_0x46b50c){_0x41da15[_0xfb38('0x20')]=_0x46b50c;if(_0x11b03a[_0xfb38('0x2f')][_0xfb38('0x40')]){_0xaa6515[_0xfb38('0x41')]=[{'all':!![]}];}return db[_0xfb38('0x42')]['findAll'](_0xaa6515);})[_0xfb38('0x3f')](function(_0x57c0ea){_0x41da15[_0xfb38('0x43')]=_0x57c0ea;return _0x41da15;})[_0xfb38('0x3f')](respondWithFilteredResult(_0x27e6af,_0xaa6515))[_0xfb38('0x44')](handleError(_0x27e6af,null));};exports[_0xfb38('0x45')]=function(_0x4d1bd7,_0x357334){var _0x2bea5b={'raw':!![],'where':{'id':_0x4d1bd7[_0xfb38('0x46')]['id']}},_0x104cc4={};_0x104cc4[_0xfb38('0x32')]=_[_0xfb38('0x2e')](db[_0xfb38('0x42')]['rawAttributes']);_0x104cc4[_0xfb38('0x2f')]=_[_0xfb38('0x2e')](_0x4d1bd7['query']);_0x104cc4['filters']=_[_0xfb38('0x31')](_0x104cc4[_0xfb38('0x32')],_0x104cc4[_0xfb38('0x2f')]);_0x2bea5b['attributes']=_[_0xfb38('0x31')](_0x104cc4[_0xfb38('0x32')],qs['fields'](_0x4d1bd7[_0xfb38('0x2f')][_0xfb38('0x34')]));_0x2bea5b[_0xfb38('0x33')]=_0x2bea5b['attributes'][_0xfb38('0x35')]?_0x2bea5b[_0xfb38('0x33')]:_0x104cc4[_0xfb38('0x32')];if(_0x4d1bd7[_0xfb38('0x2f')][_0xfb38('0x40')]){_0x2bea5b[_0xfb38('0x41')]=[{'all':!![]}];}_0x2bea5b=_[_0xfb38('0x3d')]({},_0x2bea5b,_0x4d1bd7[_0xfb38('0x47')]);return db[_0xfb38('0x42')][_0xfb38('0x48')](_0x2bea5b)[_0xfb38('0x3f')](handleEntityNotFound(_0x357334,null))[_0xfb38('0x3f')](respondWithResult(_0x357334,null))[_0xfb38('0x44')](handleError(_0x357334,null));};exports[_0xfb38('0x49')]=function(_0x322e43,_0x92f40d){return db[_0xfb38('0x42')][_0xfb38('0x49')](_0x322e43[_0xfb38('0x4a')],{})[_0xfb38('0x3f')](respondWithResult(_0x92f40d,0xc9))['catch'](handleError(_0x92f40d,null));};exports[_0xfb38('0x4b')]=function(_0x4aeb37,_0x3b5aea){if(_0x4aeb37['body']['id']){delete _0x4aeb37[_0xfb38('0x4a')]['id'];}return db[_0xfb38('0x42')][_0xfb38('0x48')]({'where':{'id':_0x4aeb37['params']['id']}})[_0xfb38('0x3f')](handleEntityNotFound(_0x3b5aea,null))['then'](saveUpdates(_0x4aeb37[_0xfb38('0x4a')],null))[_0xfb38('0x3f')](respondWithResult(_0x3b5aea,null))[_0xfb38('0x44')](handleError(_0x3b5aea,null));};exports[_0xfb38('0x24')]=function(_0x431bcc,_0x58cb4c){return db[_0xfb38('0x42')][_0xfb38('0x48')]({'where':{'id':_0x431bcc[_0xfb38('0x46')]['id']}})[_0xfb38('0x3f')](handleEntityNotFound(_0x58cb4c,null))['then'](removeEntity(_0x58cb4c,null))[_0xfb38('0x44')](handleError(_0x58cb4c,null));};exports[_0xfb38('0x4c')]=function(_0x260631,_0x24f1b9,_0x136ab5){return db[_0xfb38('0x42')]['find']({'where':{'id':_0x260631['params']['id']},'attributes':['id',_0xfb38('0x4d'),_0xfb38('0x4e')]})[_0xfb38('0x3f')](handleEntityNotFound(_0x24f1b9,null))['then'](function(_0xf048ec){if(_0xf048ec){if(!_0xf048ec['recording']){throw new db[(_0xfb38('0x4f'))][(_0xfb38('0x50'))](_0xfb38('0x51'));}var _0x10d867={'Content-Type':_0xfb38('0x52'),'Content-Disposition':_0xfb38('0x53')};if(_0xf048ec[_0xfb38('0x4e')]){_0x10d867[_0xfb38('0x54')]=_0xfb38('0x55')+_0xf048ec[_0xfb38('0x4e')]+_0xfb38('0x56');}_0x24f1b9[_0xfb38('0x57')](_0x10d867);return _0x24f1b9[_0xfb38('0x26')](new Buffer(_0xf048ec[_0xfb38('0x4d')]));}})['catch'](handleError(_0x24f1b9,null));};
\ No newline at end of file
+var _0x5959=['ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','destroy','error','stack','name','send','index','map','VoiceMailMessage','fieldName','type','key','differenceBy','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','then','includeAll','include','findAll','rows','catch','show','params','keys','rawAttributes','create','body','download','recording','msg_id','Sequelize','VoiceMailMessage\x20not\x20found','audio/wav','attachment','Content-Disposition','.wav\x22','eml-format','rimraf','zip-dir','bluebird','mustache','util','sox','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse'];(function(_0x3cb86b,_0x3c75f6){var _0x3c10a0=function(_0x71331f){while(--_0x71331f){_0x3cb86b['push'](_0x3cb86b['shift']());}};_0x3c10a0(++_0x3c75f6);}(_0x5959,0x145));var _0x9595=function(_0x1a61db,_0x3ad3af){_0x1a61db=_0x1a61db-0x0;var _0x5ac3bf=_0x5959[_0x1a61db];return _0x5ac3bf;};'use strict';var emlformat=require(_0x9595('0x0'));var rimraf=require(_0x9595('0x1'));var zipdir=require(_0x9595('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x9595('0x3'));var Mustache=require(_0x9595('0x4'));var util=require(_0x9595('0x5'));var path=require('path');var sox=require(_0x9595('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9595('0x7'));var _=require('lodash');var squel=require(_0x9595('0x8'));var crypto=require(_0x9595('0x9'));var jsforce=require(_0x9595('0xa'));var deskjs=require(_0x9595('0xb'));var toCsv=require(_0x9595('0xc'));var querystring=require(_0x9595('0xd'));var Papa=require(_0x9595('0xe'));var Redis=require(_0x9595('0xf'));var authService=require(_0x9595('0x10'));var qs=require(_0x9595('0x11'));var as=require(_0x9595('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9595('0x13'))(_0x9595('0x14'));var utils=require('../../config/utils');var config=require(_0x9595('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x9595('0x16'))['db'];function respondWithStatusCode(_0x5e84b4,_0x450296){_0x450296=_0x450296||0xcc;return function(_0x57ed8c){if(_0x57ed8c){return _0x5e84b4['sendStatus'](_0x450296);}return _0x5e84b4[_0x9595('0x17')](_0x450296)[_0x9595('0x18')]();};}function respondWithResult(_0x316c80,_0x4134ee){_0x4134ee=_0x4134ee||0xc8;return function(_0x3055e6){if(_0x3055e6){return _0x316c80['status'](_0x4134ee)[_0x9595('0x19')](_0x3055e6);}};}function respondWithFilteredResult(_0x56016e,_0x253183){return function(_0x22801c){if(_0x22801c){var _0xa6e8b4=typeof _0x253183['offset']===_0x9595('0x1a')&&typeof _0x253183[_0x9595('0x1b')]===_0x9595('0x1a');var _0x2539db=_0x22801c[_0x9595('0x1c')];var _0x479480=_0xa6e8b4?0x0:_0x253183[_0x9595('0x1d')];var _0x22b92c=_0xa6e8b4?_0x22801c['count']:_0x253183[_0x9595('0x1d')]+_0x253183['limit'];var _0x5a21ef;if(_0x22b92c>=_0x2539db){_0x22b92c=_0x2539db;_0x5a21ef=0xc8;}else{_0x5a21ef=0xce;}_0x56016e[_0x9595('0x17')](_0x5a21ef);return _0x56016e[_0x9595('0x1e')](_0x9595('0x1f'),_0x479480+'-'+_0x22b92c+'/'+_0x2539db)[_0x9595('0x19')](_0x22801c);}return null;};}function patchUpdates(_0x370417){return function(_0x2c0069){try{jsonpatch['apply'](_0x2c0069,_0x370417,!![]);}catch(_0x180910){return BPromise[_0x9595('0x20')](_0x180910);}return _0x2c0069[_0x9595('0x21')]();};}function saveUpdates(_0x3081fa,_0x2eb325){return function(_0x3a4072){if(_0x3a4072){return _0x3a4072[_0x9595('0x22')](_0x3081fa)['then'](function(_0x302a8c){return _0x302a8c;});}return null;};}function removeEntity(_0x2dc594,_0x7e4824){return function(_0x47f919){if(_0x47f919){return _0x47f919[_0x9595('0x23')]()['then'](function(){_0x2dc594['status'](0xcc)[_0x9595('0x18')]();});}};}function handleEntityNotFound(_0x1752ec,_0x18dc4f){return function(_0x5b1818){if(!_0x5b1818){_0x1752ec['sendStatus'](0x194);}return _0x5b1818;};}function handleError(_0x46f349,_0x251a34){_0x251a34=_0x251a34||0x1f4;return function(_0x2256cd){logger[_0x9595('0x24')](_0x2256cd[_0x9595('0x25')]);if(_0x2256cd[_0x9595('0x26')]){delete _0x2256cd[_0x9595('0x26')];}_0x46f349[_0x9595('0x17')](_0x251a34)[_0x9595('0x27')](_0x2256cd);};}exports[_0x9595('0x28')]=function(_0x231e35,_0x2fd430){var _0x41e2b5={},_0x4c51d4={},_0x5a9c4d={'count':0x0,'rows':[]};var _0x43df94=_[_0x9595('0x29')](db[_0x9595('0x2a')]['rawAttributes'],function(_0x4079a0){return{'name':_0x4079a0[_0x9595('0x2b')],'type':_0x4079a0[_0x9595('0x2c')][_0x9595('0x2d')]};});_0x4c51d4['model']=_[_0x9595('0x2e')](_[_0x9595('0x29')](_0x43df94,'name'),[_0x9595('0x26')]);_0x4c51d4[_0x9595('0x2f')]=_['keys'](_0x231e35[_0x9595('0x2f')]);_0x4c51d4[_0x9595('0x30')]=_['intersection'](_0x4c51d4[_0x9595('0x31')],_0x4c51d4['query']);_0x41e2b5[_0x9595('0x32')]=_[_0x9595('0x33')](_0x4c51d4[_0x9595('0x31')],qs[_0x9595('0x34')](_0x231e35[_0x9595('0x2f')][_0x9595('0x34')]));_0x41e2b5[_0x9595('0x32')]=_0x41e2b5[_0x9595('0x32')][_0x9595('0x35')]?_0x41e2b5[_0x9595('0x32')]:_0x4c51d4[_0x9595('0x31')];if(!_0x231e35[_0x9595('0x2f')][_0x9595('0x36')](_0x9595('0x37'))){_0x41e2b5['limit']=qs[_0x9595('0x1b')](_0x231e35[_0x9595('0x2f')][_0x9595('0x1b')]);_0x41e2b5['offset']=qs[_0x9595('0x1d')](_0x231e35[_0x9595('0x2f')][_0x9595('0x1d')]);}_0x41e2b5[_0x9595('0x38')]=qs[_0x9595('0x39')](_0x231e35[_0x9595('0x2f')]['sort']);_0x41e2b5[_0x9595('0x3a')]=qs[_0x9595('0x30')](_[_0x9595('0x3b')](_0x231e35[_0x9595('0x2f')],_0x4c51d4['filters']),_0x43df94);if(_0x231e35[_0x9595('0x2f')][_0x9595('0x3c')]){_0x41e2b5['where']=_[_0x9595('0x3d')](_0x41e2b5[_0x9595('0x3a')],{'$or':_['map'](_0x43df94,function(_0xcbc53f){if(_0xcbc53f[_0x9595('0x2c')]!==_0x9595('0x3e')){var _0x1855ce={};_0x1855ce[_0xcbc53f[_0x9595('0x26')]]={'$like':'%'+_0x231e35['query']['filter']+'%'};return _0x1855ce;}})});}_0x41e2b5=_[_0x9595('0x3d')]({},_0x41e2b5,_0x231e35[_0x9595('0x3f')]);var _0x906183={'where':_0x41e2b5[_0x9595('0x3a')]};return db[_0x9595('0x2a')][_0x9595('0x1c')](_0x906183)[_0x9595('0x40')](function(_0x37fe53){_0x5a9c4d[_0x9595('0x1c')]=_0x37fe53;if(_0x231e35[_0x9595('0x2f')][_0x9595('0x41')]){_0x41e2b5[_0x9595('0x42')]=[{'all':!![]}];}return db[_0x9595('0x2a')][_0x9595('0x43')](_0x41e2b5);})[_0x9595('0x40')](function(_0x2511ca){_0x5a9c4d[_0x9595('0x44')]=_0x2511ca;return _0x5a9c4d;})[_0x9595('0x40')](respondWithFilteredResult(_0x2fd430,_0x41e2b5))[_0x9595('0x45')](handleError(_0x2fd430,null));};exports[_0x9595('0x46')]=function(_0x19c328,_0x56d9a8){var _0x50fba3={'raw':!![],'where':{'id':_0x19c328[_0x9595('0x47')]['id']}},_0x3346e1={};_0x3346e1[_0x9595('0x31')]=_[_0x9595('0x48')](db['VoiceMailMessage'][_0x9595('0x49')]);_0x3346e1['query']=_['keys'](_0x19c328['query']);_0x3346e1[_0x9595('0x30')]=_[_0x9595('0x33')](_0x3346e1[_0x9595('0x31')],_0x3346e1[_0x9595('0x2f')]);_0x50fba3[_0x9595('0x32')]=_[_0x9595('0x33')](_0x3346e1[_0x9595('0x31')],qs['fields'](_0x19c328[_0x9595('0x2f')][_0x9595('0x34')]));_0x50fba3[_0x9595('0x32')]=_0x50fba3[_0x9595('0x32')][_0x9595('0x35')]?_0x50fba3[_0x9595('0x32')]:_0x3346e1['model'];if(_0x19c328[_0x9595('0x2f')][_0x9595('0x41')]){_0x50fba3[_0x9595('0x42')]=[{'all':!![]}];}_0x50fba3=_['merge']({},_0x50fba3,_0x19c328['options']);return db['VoiceMailMessage']['find'](_0x50fba3)['then'](handleEntityNotFound(_0x56d9a8,null))['then'](respondWithResult(_0x56d9a8,null))[_0x9595('0x45')](handleError(_0x56d9a8,null));};exports[_0x9595('0x4a')]=function(_0x4df0e7,_0x19e6cd){return db[_0x9595('0x2a')]['create'](_0x4df0e7[_0x9595('0x4b')],{})[_0x9595('0x40')](respondWithResult(_0x19e6cd,0xc9))[_0x9595('0x45')](handleError(_0x19e6cd,null));};exports[_0x9595('0x22')]=function(_0x187ece,_0x239119){if(_0x187ece[_0x9595('0x4b')]['id']){delete _0x187ece[_0x9595('0x4b')]['id'];}return db[_0x9595('0x2a')]['find']({'where':{'id':_0x187ece[_0x9595('0x47')]['id']}})[_0x9595('0x40')](handleEntityNotFound(_0x239119,null))[_0x9595('0x40')](saveUpdates(_0x187ece[_0x9595('0x4b')],null))['then'](respondWithResult(_0x239119,null))[_0x9595('0x45')](handleError(_0x239119,null));};exports[_0x9595('0x23')]=function(_0x2d66ed,_0x2d95cb){return db[_0x9595('0x2a')]['find']({'where':{'id':_0x2d66ed[_0x9595('0x47')]['id']}})[_0x9595('0x40')](handleEntityNotFound(_0x2d95cb,null))[_0x9595('0x40')](removeEntity(_0x2d95cb,null))[_0x9595('0x45')](handleError(_0x2d95cb,null));};exports[_0x9595('0x4c')]=function(_0x3ef88a,_0x481d7a,_0x23775f){return db[_0x9595('0x2a')]['find']({'where':{'id':_0x3ef88a[_0x9595('0x47')]['id']},'attributes':['id',_0x9595('0x4d'),_0x9595('0x4e')]})[_0x9595('0x40')](handleEntityNotFound(_0x481d7a,null))[_0x9595('0x40')](function(_0x5088be){if(_0x5088be){if(!_0x5088be[_0x9595('0x4d')]){throw new db[(_0x9595('0x4f'))]['ValidationError'](_0x9595('0x50'));}var _0x1bdc4a={'Content-Type':_0x9595('0x51'),'Content-Disposition':_0x9595('0x52')};if(_0x5088be[_0x9595('0x4e')]){_0x1bdc4a[_0x9595('0x53')]='attachment;\x20filename=\x22'+_0x5088be['msg_id']+_0x9595('0x54');}_0x481d7a[_0x9595('0x1e')](_0x1bdc4a);return _0x481d7a[_0x9595('0x27')](new Buffer(_0x5088be[_0x9595('0x4d')]));}})[_0x9595('0x45')](handleError(_0x481d7a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89d5=['bluebird','request-promise','path','rimraf','../../config/environment','./voiceMailMessage.attributes','exports','define','VoiceMailMessage','dir','lodash','util','../../config/logger','moment'];(function(_0x42f009,_0x5e27b1){var _0x22a1e0=function(_0x297993){while(--_0x297993){_0x42f009['push'](_0x42f009['shift']());}};_0x22a1e0(++_0x5e27b1);}(_0x89d5,0x88));var _0x589d=function(_0x187ee1,_0x3fd1e6){_0x187ee1=_0x187ee1-0x0;var _0x388160=_0x89d5[_0x187ee1];return _0x388160;};'use strict';var _=require(_0x589d('0x0'));var util=require(_0x589d('0x1'));var logger=require(_0x589d('0x2'))('api');var moment=require(_0x589d('0x3'));var BPromise=require(_0x589d('0x4'));var rp=require(_0x589d('0x5'));var fs=require('fs');var path=require(_0x589d('0x6'));var rimraf=require(_0x589d('0x7'));var config=require(_0x589d('0x8'));var attributes=require(_0x589d('0x9'));module[_0x589d('0xa')]=function(_0x22bb1c,_0x9c37ed){return _0x22bb1c[_0x589d('0xb')](_0x589d('0xc'),attributes,{'tableName':'voice_voicemail_messages','paranoid':![],'indexes':[{'name':_0x589d('0xd'),'fields':['dir']}],'timestamps':![]});};
\ No newline at end of file
+var _0xbab1=['../../config/environment','./voiceMailMessage.attributes','exports','define','VoiceMailMessage','voice_voicemail_messages','dir','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x24a96c,_0x3e5044){var _0x56e45b=function(_0x40eb40){while(--_0x40eb40){_0x24a96c['push'](_0x24a96c['shift']());}};_0x56e45b(++_0x3e5044);}(_0xbab1,0xf7));var _0x1bab=function(_0x1d664a,_0x149a34){_0x1d664a=_0x1d664a-0x0;var _0x335345=_0xbab1[_0x1d664a];return _0x335345;};'use strict';var _=require(_0x1bab('0x0'));var util=require(_0x1bab('0x1'));var logger=require(_0x1bab('0x2'))(_0x1bab('0x3'));var moment=require(_0x1bab('0x4'));var BPromise=require(_0x1bab('0x5'));var rp=require(_0x1bab('0x6'));var fs=require('fs');var path=require(_0x1bab('0x7'));var rimraf=require(_0x1bab('0x8'));var config=require(_0x1bab('0x9'));var attributes=require(_0x1bab('0xa'));module[_0x1bab('0xb')]=function(_0x5be941,_0x401b79){return _0x5be941[_0x1bab('0xc')](_0x1bab('0xd'),attributes,{'tableName':_0x1bab('0xe'),'paranoid':![],'indexes':[{'name':_0x1bab('0xf'),'fields':[_0x1bab('0xf')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb0b=['VoiceMailMessage,\x20%s,\x20%s','message','result','catch','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','then','info','request\x20sent','debug','VoiceMailMessage,\x20%s,\x20%s,\x20%s','stringify','code','error'];(function(_0x2bb3f6,_0x25fde0){var _0x62b339=function(_0x53e014){while(--_0x53e014){_0x2bb3f6['push'](_0x2bb3f6['shift']());}};_0x62b339(++_0x25fde0);}(_0xfb0b,0xca));var _0xbfb0=function(_0x4a8a25,_0x430d2e){_0x4a8a25=_0x4a8a25-0x0;var _0x33818c=_0xfb0b[_0x4a8a25];return _0x33818c;};'use strict';var _=require(_0xbfb0('0x0'));var util=require('util');var moment=require(_0xbfb0('0x1'));var BPromise=require('bluebird');var rs=require(_0xbfb0('0x2'));var fs=require('fs');var Redis=require(_0xbfb0('0x3'));var db=require(_0xbfb0('0x4'))['db'];var utils=require(_0xbfb0('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0xbfb0('0x6'));var jayson=require(_0xbfb0('0x7'));var client=jayson[_0xbfb0('0x8')][_0xbfb0('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1cc60c,_0x1a0de3,_0x272a54){return new BPromise(function(_0x3a0b6c,_0x17f29e){return client['request'](_0x1cc60c,_0x272a54)[_0xbfb0('0xa')](function(_0x3cb822){logger[_0xbfb0('0xb')]('VoiceMailMessage,\x20%s,\x20%s',_0x1a0de3,_0xbfb0('0xc'));logger[_0xbfb0('0xd')](_0xbfb0('0xe'),_0x1a0de3,_0xbfb0('0xc'),JSON[_0xbfb0('0xf')](_0x3cb822));if(_0x3cb822['error']){if(_0x3cb822['error'][_0xbfb0('0x10')]===0x1f4){logger[_0xbfb0('0x11')](_0xbfb0('0x12'),_0x1a0de3,_0x3cb822[_0xbfb0('0x11')][_0xbfb0('0x13')]);return _0x17f29e(_0x3cb822[_0xbfb0('0x11')]['message']);}logger['error']('VoiceMailMessage,\x20%s,\x20%s',_0x1a0de3,_0x3cb822[_0xbfb0('0x11')][_0xbfb0('0x13')]);return _0x3a0b6c(_0x3cb822[_0xbfb0('0x11')][_0xbfb0('0x13')]);}else{logger[_0xbfb0('0xb')](_0xbfb0('0x12'),_0x1a0de3,_0xbfb0('0xc'));_0x3a0b6c(_0x3cb822[_0xbfb0('0x14')][_0xbfb0('0x13')]);}})[_0xbfb0('0x15')](function(_0x130b59){logger[_0xbfb0('0x11')](_0xbfb0('0x12'),_0x1a0de3,_0x130b59);_0x17f29e(_0x130b59);});});}
\ No newline at end of file
+var _0xcdee=['debug','VoiceMailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','then','VoiceMailMessage,\x20%s,\x20%s','request\x20sent'];(function(_0x17a0a0,_0x1befaa){var _0x4da752=function(_0x429829){while(--_0x429829){_0x17a0a0['push'](_0x17a0a0['shift']());}};_0x4da752(++_0x1befaa);}(_0xcdee,0xfb));var _0xecde=function(_0x3f10af,_0x573514){_0x3f10af=_0x3f10af-0x0;var _0x2e73bf=_0xcdee[_0x3f10af];return _0x2e73bf;};'use strict';var _=require('lodash');var util=require(_0xecde('0x0'));var moment=require(_0xecde('0x1'));var BPromise=require(_0xecde('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xecde('0x3'));var db=require(_0xecde('0x4'))['db'];var utils=require(_0xecde('0x5'));var logger=require(_0xecde('0x6'))('rpc');var config=require(_0xecde('0x7'));var jayson=require(_0xecde('0x8'));var client=jayson['client'][_0xecde('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x30dba9,_0x197bde,_0x2db781){return new BPromise(function(_0x2a5219,_0xe65c26){return client['request'](_0x30dba9,_0x2db781)[_0xecde('0xa')](function(_0x5b5975){logger['info'](_0xecde('0xb'),_0x197bde,_0xecde('0xc'));logger[_0xecde('0xd')](_0xecde('0xe'),_0x197bde,_0xecde('0xc'),JSON[_0xecde('0xf')](_0x5b5975));if(_0x5b5975['error']){if(_0x5b5975[_0xecde('0x10')][_0xecde('0x11')]===0x1f4){logger[_0xecde('0x10')](_0xecde('0xb'),_0x197bde,_0x5b5975[_0xecde('0x10')][_0xecde('0x12')]);return _0xe65c26(_0x5b5975[_0xecde('0x10')][_0xecde('0x12')]);}logger[_0xecde('0x10')]('VoiceMailMessage,\x20%s,\x20%s',_0x197bde,_0x5b5975['error']['message']);return _0x2a5219(_0x5b5975['error'][_0xecde('0x12')]);}else{logger[_0xecde('0x13')](_0xecde('0xb'),_0x197bde,_0xecde('0xc'));_0x2a5219(_0x5b5975[_0xecde('0x14')][_0xecde('0x12')]);}})[_0xecde('0x15')](function(_0x69aa23){logger[_0xecde('0x10')](_0xecde('0xb'),_0x197bde,_0x69aa23);_0xe65c26(_0x69aa23);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1492=['../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','/:id/sounds','post','create','addSound','delete','destroy','removeSound','exports','multer','util','path','express','Router','fs-extra'];(function(_0x18257d,_0x5d1ad7){var _0x2dc361=function(_0x38d0ab){while(--_0x38d0ab){_0x18257d['push'](_0x18257d['shift']());}};_0x2dc361(++_0x5d1ad7);}(_0x1492,0x9a));var _0x2149=function(_0x2bb66c,_0x36c6c6){_0x2bb66c=_0x2bb66c-0x0;var _0x1e0f98=_0x1492[_0x2bb66c];return _0x1e0f98;};'use strict';var multer=require(_0x2149('0x0'));var util=require(_0x2149('0x1'));var path=require(_0x2149('0x2'));var timeout=require('connect-timeout');var express=require(_0x2149('0x3'));var router=express[_0x2149('0x4')]();var fs_extra=require(_0x2149('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x2149('0x6'));var config=require(_0x2149('0x7'));var controller=require('./voiceMusicOnHold.controller');router[_0x2149('0x8')]('/',auth[_0x2149('0x9')](),controller[_0x2149('0xa')]);router['get'](_0x2149('0xb'),auth['isAuthenticated'](),controller['show']);router['get'](_0x2149('0xc'),auth[_0x2149('0x9')](),controller['getSounds']);router[_0x2149('0xd')]('/',auth[_0x2149('0x9')](),controller[_0x2149('0xe')]);router['post']('/:id/sounds',auth['isAuthenticated'](),controller[_0x2149('0xf')]);router['put'](_0x2149('0xb'),auth[_0x2149('0x9')](),controller['update']);router[_0x2149('0x10')](_0x2149('0xb'),auth[_0x2149('0x9')](),controller[_0x2149('0x11')]);router[_0x2149('0x10')]('/:id/sounds/:id2',auth[_0x2149('0x9')](),controller[_0x2149('0x12')]);module[_0x2149('0x13')]=router;
\ No newline at end of file
+var _0x802f=['addSound','put','/:id','update','destroy','delete','removeSound','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMusicOnHold.controller','get','index','show','/:id/sounds','getSounds','create','isAuthenticated'];(function(_0xe750e1,_0x215aea){var _0x4fce9f=function(_0x4f296b){while(--_0x4f296b){_0xe750e1['push'](_0xe750e1['shift']());}};_0x4fce9f(++_0x215aea);}(_0x802f,0xbf));var _0xf802=function(_0x3103a2,_0x1df848){_0x3103a2=_0x3103a2-0x0;var _0x3b5871=_0x802f[_0x3103a2];return _0x3b5871;};'use strict';var multer=require(_0xf802('0x0'));var util=require('util');var path=require(_0xf802('0x1'));var timeout=require(_0xf802('0x2'));var express=require(_0xf802('0x3'));var router=express[_0xf802('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xf802('0x5'));var interaction=require(_0xf802('0x6'));var config=require(_0xf802('0x7'));var controller=require(_0xf802('0x8'));router[_0xf802('0x9')]('/',auth['isAuthenticated'](),controller[_0xf802('0xa')]);router[_0xf802('0x9')]('/:id',auth['isAuthenticated'](),controller[_0xf802('0xb')]);router[_0xf802('0x9')](_0xf802('0xc'),auth['isAuthenticated'](),controller[_0xf802('0xd')]);router['post']('/',auth['isAuthenticated'](),controller[_0xf802('0xe')]);router['post'](_0xf802('0xc'),auth[_0xf802('0xf')](),controller[_0xf802('0x10')]);router[_0xf802('0x11')](_0xf802('0x12'),auth[_0xf802('0xf')](),controller[_0xf802('0x13')]);router['delete'](_0xf802('0x12'),auth[_0xf802('0xf')](),controller[_0xf802('0x14')]);router[_0xf802('0x15')]('/:id/sounds/:id2',auth[_0xf802('0xf')](),controller[_0xf802('0x16')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee41=['STRING','ENUM','custom','files','mp3nb','quietmp3nb','quietmp3','mp3','alpha','TIMESTAMP','BOOLEAN','sequelize','exports'];(function(_0xca89df,_0x1c1ea1){var _0x3aca35=function(_0x4bd5d3){while(--_0x4bd5d3){_0xca89df['push'](_0xca89df['shift']());}};_0x3aca35(++_0x1c1ea1);}(_0xee41,0xa7));var _0x1ee4=function(_0x36cff7,_0x5cb048){_0x36cff7=_0x36cff7-0x0;var _0x21c697=_0xee41[_0x36cff7];return _0x21c697;};'use strict';var Sequelize=require(_0x1ee4('0x0'));module[_0x1ee4('0x1')]={'name':{'type':Sequelize[_0x1ee4('0x2')],'allowNull':![],'unique':'name'},'mode':{'type':Sequelize[_0x1ee4('0x3')](_0x1ee4('0x4'),_0x1ee4('0x5'),_0x1ee4('0x6'),_0x1ee4('0x7'),_0x1ee4('0x8'),_0x1ee4('0x9')),'allowNull':!![],'defaultValue':_0x1ee4('0x5')},'directory':{'type':Sequelize[_0x1ee4('0x2')],'allowNull':!![]},'application':{'type':Sequelize[_0x1ee4('0x2')],'allowNull':!![]},'digit':{'type':Sequelize['STRING'],'allowNull':!![]},'sort':{'type':Sequelize[_0x1ee4('0x2')],'allowNull':!![],'defaultValue':_0x1ee4('0xa')},'format':{'type':Sequelize[_0x1ee4('0x2')],'allowNull':!![]},'stamp':{'type':_0x1ee4('0xb')},'defaultEntry':{'type':Sequelize[_0x1ee4('0xc')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x3827=['sequelize','exports','STRING','name','ENUM','files','mp3nb','quietmp3nb','quietmp3','mp3','alpha','BOOLEAN'];(function(_0x5ce3c8,_0x2503bd){var _0xa76867=function(_0x52815e){while(--_0x52815e){_0x5ce3c8['push'](_0x5ce3c8['shift']());}};_0xa76867(++_0x2503bd);}(_0x3827,0x84));var _0x7382=function(_0x29d915,_0x54a040){_0x29d915=_0x29d915-0x0;var _0x160f86=_0x3827[_0x29d915];return _0x160f86;};'use strict';var Sequelize=require(_0x7382('0x0'));module[_0x7382('0x1')]={'name':{'type':Sequelize[_0x7382('0x2')],'allowNull':![],'unique':_0x7382('0x3')},'mode':{'type':Sequelize[_0x7382('0x4')]('custom',_0x7382('0x5'),_0x7382('0x6'),_0x7382('0x7'),_0x7382('0x8'),_0x7382('0x9')),'allowNull':!![],'defaultValue':_0x7382('0x5')},'directory':{'type':Sequelize[_0x7382('0x2')],'allowNull':!![]},'application':{'type':Sequelize[_0x7382('0x2')],'allowNull':!![]},'digit':{'type':Sequelize[_0x7382('0x2')],'allowNull':!![]},'sort':{'type':Sequelize[_0x7382('0x2')],'allowNull':!![],'defaultValue':_0x7382('0xa')},'format':{'type':Sequelize['STRING'],'allowNull':!![]},'stamp':{'type':'TIMESTAMP'},'defaultEntry':{'type':Sequelize[_0x7382('0xb')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa718=['undefined','count','limit','Content-Range','apply','reject','save','update','destroy','then','MusicOnHolds','UserProfileResource','error','stack','name','send','index','VoiceMusicOnHold','rawAttributes','key','map','keys','query','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','order','sort','pick','where','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','fields','merge','find','body','sequelize','transaction','mode','files','directory','root','server/files/moh','mkdirSync','0777','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','create','forEach','unlinkSync','join','rmdirSync','ValidationError','message','addSound','findOne','save_name','converted_format','format','basename','extname','symlinkSync','Sequelize','removeSound','id2','Sound','%s.%s','filter','getSounds','eml-format','zip-dir','moment','bluebird','mustache','util','path','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset'];(function(_0x12f2fb,_0xf5fcce){var _0x275b57=function(_0xefc5a8){while(--_0xefc5a8){_0x12f2fb['push'](_0x12f2fb['shift']());}};_0x275b57(++_0xf5fcce);}(_0xa718,0xc8));var _0x8a71=function(_0x3a3daa,_0x48672b){_0x3a3daa=_0x3a3daa-0x0;var _0x449407=_0xa718[_0x3a3daa];return _0x449407;};'use strict';var emlformat=require(_0x8a71('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8a71('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x8a71('0x2'));var BPromise=require(_0x8a71('0x3'));var Mustache=require(_0x8a71('0x4'));var util=require(_0x8a71('0x5'));var path=require(_0x8a71('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x8a71('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8a71('0x8'));var squel=require(_0x8a71('0x9'));var crypto=require(_0x8a71('0xa'));var jsforce=require(_0x8a71('0xb'));var deskjs=require(_0x8a71('0xc'));var toCsv=require(_0x8a71('0xd'));var querystring=require(_0x8a71('0xe'));var Papa=require(_0x8a71('0xf'));var Redis=require(_0x8a71('0x10'));var authService=require(_0x8a71('0x11'));var qs=require(_0x8a71('0x12'));var as=require(_0x8a71('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8a71('0x14'))(_0x8a71('0x15'));var utils=require(_0x8a71('0x16'));var config=require(_0x8a71('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x8a71('0x18'))['db'];function respondWithStatusCode(_0x2a5f0a,_0x1f68e4){_0x1f68e4=_0x1f68e4||0xcc;return function(_0xe5c259){if(_0xe5c259){return _0x2a5f0a[_0x8a71('0x19')](_0x1f68e4);}return _0x2a5f0a[_0x8a71('0x1a')](_0x1f68e4)[_0x8a71('0x1b')]();};}function respondWithResult(_0xd87310,_0x471666){_0x471666=_0x471666||0xc8;return function(_0x57daef){if(_0x57daef){return _0xd87310['status'](_0x471666)[_0x8a71('0x1c')](_0x57daef);}};}function respondWithFilteredResult(_0x389294,_0x1ccd6e){return function(_0x516295){if(_0x516295){var _0x5d2df6=typeof _0x1ccd6e[_0x8a71('0x1d')]===_0x8a71('0x1e')&&typeof _0x1ccd6e['limit']==='undefined';var _0x1397eb=_0x516295[_0x8a71('0x1f')];var _0x504876=_0x5d2df6?0x0:_0x1ccd6e['offset'];var _0x104bd4=_0x5d2df6?_0x516295['count']:_0x1ccd6e[_0x8a71('0x1d')]+_0x1ccd6e[_0x8a71('0x20')];var _0x320995;if(_0x104bd4>=_0x1397eb){_0x104bd4=_0x1397eb;_0x320995=0xc8;}else{_0x320995=0xce;}_0x389294[_0x8a71('0x1a')](_0x320995);return _0x389294['set'](_0x8a71('0x21'),_0x504876+'-'+_0x104bd4+'/'+_0x1397eb)['json'](_0x516295);}return null;};}function patchUpdates(_0x342616){return function(_0x2b7bf6){try{jsonpatch[_0x8a71('0x22')](_0x2b7bf6,_0x342616,!![]);}catch(_0xd1ea7e){return BPromise[_0x8a71('0x23')](_0xd1ea7e);}return _0x2b7bf6[_0x8a71('0x24')]();};}function saveUpdates(_0x11c0ef,_0x192854){return function(_0x2e247f){if(_0x2e247f){return _0x2e247f[_0x8a71('0x25')](_0x11c0ef)['then'](function(_0x227eee){return _0x227eee;});}return null;};}function removeEntity(_0x37255f,_0x39c4ce){return function(_0x50f2ce){if(_0x50f2ce){return _0x50f2ce[_0x8a71('0x26')]()[_0x8a71('0x27')](function(){var _0x326db4=_0x50f2ce['get']({'plain':!![]});var _0x53f3c4=_0x8a71('0x28');return db[_0x8a71('0x29')][_0x8a71('0x26')]({'where':{'type':_0x53f3c4,'resourceId':_0x326db4['id']}})[_0x8a71('0x27')](function(){return _0x50f2ce;});})[_0x8a71('0x27')](function(){_0x37255f[_0x8a71('0x1a')](0xcc)[_0x8a71('0x1b')]();});}};}function handleEntityNotFound(_0x281770,_0x2f981b){return function(_0x4b8509){if(!_0x4b8509){_0x281770[_0x8a71('0x19')](0x194);}return _0x4b8509;};}function handleError(_0x2ac237,_0x4a9674){_0x4a9674=_0x4a9674||0x1f4;return function(_0x401f2c){logger[_0x8a71('0x2a')](_0x401f2c[_0x8a71('0x2b')]);if(_0x401f2c[_0x8a71('0x2c')]){delete _0x401f2c[_0x8a71('0x2c')];}_0x2ac237[_0x8a71('0x1a')](_0x4a9674)[_0x8a71('0x2d')](_0x401f2c);};}exports[_0x8a71('0x2e')]=function(_0x1383cb,_0x5240f0){var _0x2f4d86={},_0xdf8bee={},_0x1121a2={'count':0x0,'rows':[]};var _0x3da87c=_['map'](db[_0x8a71('0x2f')][_0x8a71('0x30')],function(_0x21e47b){return{'name':_0x21e47b['fieldName'],'type':_0x21e47b['type'][_0x8a71('0x31')]};});_0xdf8bee['model']=_[_0x8a71('0x32')](_0x3da87c,_0x8a71('0x2c'));_0xdf8bee['query']=_[_0x8a71('0x33')](_0x1383cb[_0x8a71('0x34')]);_0xdf8bee[_0x8a71('0x35')]=_[_0x8a71('0x36')](_0xdf8bee[_0x8a71('0x37')],_0xdf8bee['query']);_0x2f4d86[_0x8a71('0x38')]=_[_0x8a71('0x36')](_0xdf8bee[_0x8a71('0x37')],qs['fields'](_0x1383cb[_0x8a71('0x34')]['fields']));_0x2f4d86[_0x8a71('0x38')]=_0x2f4d86[_0x8a71('0x38')][_0x8a71('0x39')]?_0x2f4d86[_0x8a71('0x38')]:_0xdf8bee['model'];if(!_0x1383cb[_0x8a71('0x34')][_0x8a71('0x3a')](_0x8a71('0x3b'))){_0x2f4d86[_0x8a71('0x20')]=qs[_0x8a71('0x20')](_0x1383cb[_0x8a71('0x34')][_0x8a71('0x20')]);_0x2f4d86[_0x8a71('0x1d')]=qs[_0x8a71('0x1d')](_0x1383cb[_0x8a71('0x34')]['offset']);}_0x2f4d86[_0x8a71('0x3c')]=qs[_0x8a71('0x3d')](_0x1383cb[_0x8a71('0x34')][_0x8a71('0x3d')]);delete _0x1383cb[_0x8a71('0x34')][_0x8a71('0x3d')];_0x2f4d86['where']=qs[_0x8a71('0x35')](_[_0x8a71('0x3e')](_0x1383cb['query'],_0xdf8bee[_0x8a71('0x35')]),_0x3da87c);if(_0x1383cb['query']['filter']){_0x2f4d86[_0x8a71('0x3f')]=_['merge'](_0x2f4d86[_0x8a71('0x3f')],{'$or':_['map'](_0x3da87c,function(_0x3b7caf){if(_0x3b7caf['type']!==_0x8a71('0x40')){var _0x5802df={};_0x5802df[_0x3b7caf[_0x8a71('0x2c')]]={'$like':'%'+_0x1383cb[_0x8a71('0x34')]['filter']+'%'};return _0x5802df;}})});}_0x2f4d86=_['merge']({},_0x2f4d86,_0x1383cb[_0x8a71('0x41')]);var _0x3c8a3d={'where':_0x2f4d86[_0x8a71('0x3f')]};return db[_0x8a71('0x2f')][_0x8a71('0x1f')](_0x3c8a3d)[_0x8a71('0x27')](function(_0x4e43ba){_0x1121a2[_0x8a71('0x1f')]=_0x4e43ba;if(_0x1383cb[_0x8a71('0x34')][_0x8a71('0x42')]){_0x2f4d86[_0x8a71('0x43')]=[{'all':!![]}];}return db['VoiceMusicOnHold'][_0x8a71('0x44')](_0x2f4d86);})[_0x8a71('0x27')](function(_0x42d5db){_0x1121a2[_0x8a71('0x45')]=_0x42d5db;return _0x1121a2;})[_0x8a71('0x27')](respondWithFilteredResult(_0x5240f0,_0x2f4d86))[_0x8a71('0x46')](handleError(_0x5240f0,null));};exports[_0x8a71('0x47')]=function(_0xec7145,_0x19f32f){var _0x414b8c={'raw':![],'where':{'id':_0xec7145[_0x8a71('0x48')]['id']}},_0xdf30ed={};_0xdf30ed[_0x8a71('0x37')]=_[_0x8a71('0x33')](db['VoiceMusicOnHold'][_0x8a71('0x30')]);_0xdf30ed[_0x8a71('0x34')]=_['keys'](_0xec7145[_0x8a71('0x34')]);_0xdf30ed['filters']=_[_0x8a71('0x36')](_0xdf30ed[_0x8a71('0x37')],_0xdf30ed[_0x8a71('0x34')]);_0x414b8c['attributes']=_['intersection'](_0xdf30ed[_0x8a71('0x37')],qs[_0x8a71('0x49')](_0xec7145['query'][_0x8a71('0x49')]));_0x414b8c[_0x8a71('0x38')]=_0x414b8c[_0x8a71('0x38')][_0x8a71('0x39')]?_0x414b8c[_0x8a71('0x38')]:_0xdf30ed['model'];if(_0xec7145[_0x8a71('0x34')][_0x8a71('0x42')]){_0x414b8c['include']=[{'all':!![]}];}_0x414b8c=_[_0x8a71('0x4a')]({},_0x414b8c,_0xec7145[_0x8a71('0x41')]);return db[_0x8a71('0x2f')][_0x8a71('0x4b')](_0x414b8c)[_0x8a71('0x27')](handleEntityNotFound(_0x19f32f,null))['then'](respondWithResult(_0x19f32f,null))[_0x8a71('0x46')](handleError(_0x19f32f,null));};exports[_0x8a71('0x25')]=function(_0x3e499d,_0x1c7dc1){if(_0x3e499d[_0x8a71('0x4c')]['id']){delete _0x3e499d[_0x8a71('0x4c')]['id'];}return db['VoiceMusicOnHold'][_0x8a71('0x4b')]({'where':{'id':_0x3e499d[_0x8a71('0x48')]['id']}})[_0x8a71('0x27')](handleEntityNotFound(_0x1c7dc1,null))[_0x8a71('0x27')](saveUpdates(_0x3e499d[_0x8a71('0x4c')],null))[_0x8a71('0x27')](respondWithResult(_0x1c7dc1,null))[_0x8a71('0x46')](handleError(_0x1c7dc1,null));};exports['create']=function(_0xbcafb0,_0x43b6e9,_0xc52d32){return db[_0x8a71('0x4d')][_0x8a71('0x4e')](function(_0x502127){if(_0xbcafb0[_0x8a71('0x4c')][_0x8a71('0x4f')]===_0x8a71('0x50')){_0xbcafb0[_0x8a71('0x4c')][_0x8a71('0x51')]=path['join'](config[_0x8a71('0x52')],_0x8a71('0x53'),_0xbcafb0['body'][_0x8a71('0x2c')]);}return db[_0x8a71('0x2f')]['create'](_0xbcafb0[_0x8a71('0x4c')],{'transaction':_0x502127})[_0x8a71('0x27')](function(_0x2c03d5){if(_0xbcafb0[_0x8a71('0x4c')]['mode']===_0x8a71('0x50')){fs[_0x8a71('0x54')](_0x2c03d5[_0x8a71('0x51')],parseInt(_0x8a71('0x55'),0x8));}var _0x48500b=_0xbcafb0[_0x8a71('0x56')][_0x8a71('0x57')]({'plain':!![]});if(!_0x48500b)throw new Error(_0x8a71('0x58'));if(_0x48500b[_0x8a71('0x59')]===_0x8a71('0x56')){var _0x3bd2a0=_0x2c03d5[_0x8a71('0x57')]({'plain':!![]});return db[_0x8a71('0x5a')][_0x8a71('0x4b')]({'where':{'name':'MusicOnHolds','userProfileId':_0x48500b[_0x8a71('0x5b')]},'raw':!![]})[_0x8a71('0x27')](function(_0x8349c9){if(_0x8349c9&&_0x8349c9[_0x8a71('0x5c')]===0x0){return db[_0x8a71('0x29')][_0x8a71('0x5d')]({'name':_0x3bd2a0['name'],'resourceId':_0x3bd2a0['id'],'type':_0x8349c9[_0x8a71('0x2c')],'sectionId':_0x8349c9['id']},{})[_0x8a71('0x27')](function(){return _0x2c03d5;});}else{return _0x2c03d5;}})['catch'](function(_0x1e89dd){logger[_0x8a71('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1e89dd);});}return _0x2c03d5;});})[_0x8a71('0x27')](respondWithResult(_0x43b6e9,0xc9))['catch'](handleError(_0x43b6e9,null));};exports[_0x8a71('0x26')]=function(_0x220c34,_0x5622b2,_0x411259){var _0x2e412a;return db[_0x8a71('0x2f')][_0x8a71('0x4b')]({'where':{'id':_0x220c34[_0x8a71('0x48')]['id']}})[_0x8a71('0x27')](function(_0x5581a8){if(_0x5581a8){return db['sequelize'][_0x8a71('0x4e')](function(_0x4110e5){return _0x5581a8[_0x8a71('0x26')]({'transaction':_0x4110e5,'raw':!![]})[_0x8a71('0x27')](function(_0xf4c32e){if(_0xf4c32e[_0x8a71('0x51')]){fs['readdirSync'](_0xf4c32e['directory'])[_0x8a71('0x5e')](function(_0x1ddcd0){fs[_0x8a71('0x5f')](path[_0x8a71('0x60')](_0xf4c32e['directory'],_0x1ddcd0));});fs[_0x8a71('0x61')](_0xf4c32e['directory']);}return _0xf4c32e;});})[_0x8a71('0x46')](function(_0x4fff17){throw new db['Sequelize'][(_0x8a71('0x62'))](_0x4fff17[_0x8a71('0x63')]);});}})[_0x8a71('0x27')](handleEntityNotFound(_0x5622b2,null))[_0x8a71('0x27')](removeEntity(_0x5622b2,null))[_0x8a71('0x46')](handleError(_0x5622b2,null));};exports[_0x8a71('0x64')]=function(_0x2a9416,_0x4b66c4,_0x4b2cf8){return db['sequelize'][_0x8a71('0x4e')](function(_0x24d6e2){var _0x2d72cd;return db['VoiceMusicOnHold']['find']({'where':{'id':_0x2a9416['params']['id']}})['then'](function(_0x56e23){if(_0x56e23){_0x2d72cd=_0x56e23;return _0x56e23[_0x8a71('0x64')](_0x2a9416['body']['id'],{'transaction':_0x24d6e2});}})[_0x8a71('0x27')](function(_0x1de16c){if(_0x1de16c){return db['Sound'][_0x8a71('0x65')]({'where':{'id':_0x2a9416[_0x8a71('0x4c')]['id']},'attributes':['id',_0x8a71('0x2c'),_0x8a71('0x66'),_0x8a71('0x67'),'createdAt'],'raw':!![]});}})[_0x8a71('0x27')](function(_0x5bf508){if(_0x5bf508){var _0x1a733b=path[_0x8a71('0x60')](config[_0x8a71('0x52')],'server/files/sounds/converted',util[_0x8a71('0x68')]('%s.%s',path[_0x8a71('0x69')](_0x5bf508[_0x8a71('0x66')],path[_0x8a71('0x6a')](_0x5bf508[_0x8a71('0x66')])),_0x5bf508[_0x8a71('0x67')]));var _0x6c89a4=path[_0x8a71('0x60')](config[_0x8a71('0x52')],_0x8a71('0x53'),_0x2d72cd[_0x8a71('0x2c')],util[_0x8a71('0x68')]('%s.%s',_0x5bf508[_0x8a71('0x2c')],_0x5bf508['converted_format']));fs[_0x8a71('0x6b')](_0x1a733b,_0x6c89a4);return _0x5bf508;}})['catch'](function(_0x3f058d){throw new db[(_0x8a71('0x6c'))][(_0x8a71('0x62'))](_0x3f058d[_0x8a71('0x63')]);});})[_0x8a71('0x27')](handleEntityNotFound(_0x4b66c4,null))[_0x8a71('0x27')](respondWithResult(_0x4b66c4,0xc9))[_0x8a71('0x46')](handleError(_0x4b66c4,null));};exports[_0x8a71('0x6d')]=function(_0x228de1,_0x8f5db6,_0x20070b){return db[_0x8a71('0x4d')]['transaction'](function(_0x4b3930){var _0x34c639;return db[_0x8a71('0x2f')][_0x8a71('0x65')]({'where':{'id':_0x228de1[_0x8a71('0x48')]['id']}})[_0x8a71('0x27')](handleEntityNotFound(_0x8f5db6,null))[_0x8a71('0x27')](function(_0x127a19){if(_0x127a19){_0x34c639=_0x127a19;return _0x127a19['removeSound'](_0x228de1[_0x8a71('0x48')][_0x8a71('0x6e')]);}})[_0x8a71('0x27')](function(_0x583022){if(_0x583022){return db[_0x8a71('0x6f')]['findOne']({'where':{'id':_0x228de1['params'][_0x8a71('0x6e')]},'attributes':['id','name',_0x8a71('0x66'),_0x8a71('0x67'),'createdAt'],'raw':!![]});}})[_0x8a71('0x27')](function(_0x3c1275){if(_0x3c1275){fs[_0x8a71('0x5f')](path[_0x8a71('0x60')](_0x34c639[_0x8a71('0x51')],util[_0x8a71('0x68')](_0x8a71('0x70'),_0x3c1275[_0x8a71('0x2c')],_0x3c1275[_0x8a71('0x67')])));return _0x3c1275;}})[_0x8a71('0x46')](function(_0x37b5df){throw new db[(_0x8a71('0x6c'))][(_0x8a71('0x62'))](_0x37b5df[_0x8a71('0x63')]);});})[_0x8a71('0x27')](handleEntityNotFound(_0x8f5db6,null))[_0x8a71('0x27')](respondWithStatusCode(_0x8f5db6,0xcc))[_0x8a71('0x46')](handleError(_0x8f5db6,null));};exports['getSounds']=function(_0x227aef,_0x26a2bf,_0x37451d){var _0x152665={};var _0x513605={};var _0x3a3446;var _0xa8854;return db[_0x8a71('0x2f')][_0x8a71('0x65')]({'where':{'id':_0x227aef[_0x8a71('0x48')]['id']}})[_0x8a71('0x27')](handleEntityNotFound(_0x26a2bf,null))[_0x8a71('0x27')](function(_0x4568c1){if(_0x4568c1){_0x3a3446=_0x4568c1;_0x513605['model']=_[_0x8a71('0x33')](db[_0x8a71('0x6f')]['rawAttributes']);_0x513605[_0x8a71('0x34')]=_[_0x8a71('0x33')](_0x227aef[_0x8a71('0x34')]);_0x513605[_0x8a71('0x35')]=_['intersection'](_0x513605[_0x8a71('0x37')],_0x513605[_0x8a71('0x34')]);_0x152665['attributes']=_[_0x8a71('0x36')](_0x513605['model'],qs[_0x8a71('0x49')](_0x227aef[_0x8a71('0x34')][_0x8a71('0x49')]));_0x152665[_0x8a71('0x38')]=_0x152665[_0x8a71('0x38')][_0x8a71('0x39')]?_0x152665[_0x8a71('0x38')]:_0x513605[_0x8a71('0x37')];_0x152665[_0x8a71('0x3c')]=qs[_0x8a71('0x3d')](_0x227aef[_0x8a71('0x34')][_0x8a71('0x3d')]);_0x152665[_0x8a71('0x3f')]=qs[_0x8a71('0x35')](_['pick'](_0x227aef[_0x8a71('0x34')],_0x513605[_0x8a71('0x35')]));if(_0x227aef[_0x8a71('0x34')]['filter']){_0x152665[_0x8a71('0x3f')]=_[_0x8a71('0x4a')](_0x152665['where'],{'$or':_[_0x8a71('0x32')](_0x152665['attributes'],function(_0x294301){var _0x300321={};_0x300321[_0x294301]={'$like':'%'+_0x227aef[_0x8a71('0x34')][_0x8a71('0x71')]+'%'};return _0x300321;})});}_0x152665=_[_0x8a71('0x4a')]({},_0x152665,_0x227aef['options']);return _0x3a3446[_0x8a71('0x72')](_0x152665);}})[_0x8a71('0x27')](function(_0x3a6859){if(_0x3a6859){_0xa8854=_0x3a6859['length'];if(!_0x227aef[_0x8a71('0x34')][_0x8a71('0x3a')](_0x8a71('0x3b'))){_0x152665[_0x8a71('0x20')]=qs[_0x8a71('0x20')](_0x227aef['query']['limit']);_0x152665['offset']=qs[_0x8a71('0x1d')](_0x227aef[_0x8a71('0x34')][_0x8a71('0x1d')]);}return _0x3a3446[_0x8a71('0x72')](_0x152665);}})['then'](function(_0x34b66f){if(_0x34b66f){return _0x34b66f?{'count':_0xa8854,'rows':_0x34b66f}:null;}})[_0x8a71('0x27')](respondWithResult(_0x26a2bf,null))[_0x8a71('0x46')](handleError(_0x26a2bf,null));};
\ No newline at end of file
+var _0x74c3=['sequelize','transaction','files','directory','root','server/files/moh','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','UserProfileResource','error','unlinkSync','rmdirSync','ValidationError','message','addSound','Sound','findOne','save_name','converted_format','server/files/sounds/converted','format','%s.%s','join','symlinkSync','Sequelize','removeSound','id2','getSounds','nolimit','rimraf','zip-dir','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','get','MusicOnHolds','end','stack','name','send','index','map','VoiceMusicOnHold','rawAttributes','fieldName','type','key','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','order','sort','filters','pick','filter','merge','VIRTUAL','where','include','rows','catch','show','params','includeAll','options','body','find','create'];(function(_0x53a460,_0x52b475){var _0x5dcf76=function(_0x1dfb97){while(--_0x1dfb97){_0x53a460['push'](_0x53a460['shift']());}};_0x5dcf76(++_0x52b475);}(_0x74c3,0xf4));var _0x374c=function(_0xe35d6,_0x1c1484){_0xe35d6=_0xe35d6-0x0;var _0x3ae807=_0x74c3[_0xe35d6];return _0x3ae807;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x374c('0x0'));var zipdir=require(_0x374c('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x374c('0x2'));var Mustache=require(_0x374c('0x3'));var util=require('util');var path=require(_0x374c('0x4'));var sox=require(_0x374c('0x5'));var csv=require(_0x374c('0x6'));var ejs=require(_0x374c('0x7'));var fs=require('fs');var fs_extra=require(_0x374c('0x8'));var _=require('lodash');var squel=require(_0x374c('0x9'));var crypto=require(_0x374c('0xa'));var jsforce=require(_0x374c('0xb'));var deskjs=require(_0x374c('0xc'));var toCsv=require(_0x374c('0x6'));var querystring=require('querystring');var Papa=require(_0x374c('0xd'));var Redis=require(_0x374c('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x374c('0xf'));var as=require(_0x374c('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x374c('0x11'));var utils=require(_0x374c('0x12'));var config=require(_0x374c('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x374c('0x14'))['db'];function respondWithStatusCode(_0x4a96cd,_0x827017){_0x827017=_0x827017||0xcc;return function(_0x1e1dec){if(_0x1e1dec){return _0x4a96cd[_0x374c('0x15')](_0x827017);}return _0x4a96cd[_0x374c('0x16')](_0x827017)['end']();};}function respondWithResult(_0xe25c05,_0x9a41e0){_0x9a41e0=_0x9a41e0||0xc8;return function(_0x3273b9){if(_0x3273b9){return _0xe25c05['status'](_0x9a41e0)[_0x374c('0x17')](_0x3273b9);}};}function respondWithFilteredResult(_0x53cec2,_0x53674c){return function(_0x21692c){if(_0x21692c){var _0x320525=typeof _0x53674c[_0x374c('0x18')]===_0x374c('0x19')&&typeof _0x53674c['limit']==='undefined';var _0x2c6503=_0x21692c[_0x374c('0x1a')];var _0x26a9dd=_0x320525?0x0:_0x53674c[_0x374c('0x18')];var _0x2fb0f5=_0x320525?_0x21692c[_0x374c('0x1a')]:_0x53674c[_0x374c('0x18')]+_0x53674c[_0x374c('0x1b')];var _0x5ef31d;if(_0x2fb0f5>=_0x2c6503){_0x2fb0f5=_0x2c6503;_0x5ef31d=0xc8;}else{_0x5ef31d=0xce;}_0x53cec2[_0x374c('0x16')](_0x5ef31d);return _0x53cec2[_0x374c('0x1c')](_0x374c('0x1d'),_0x26a9dd+'-'+_0x2fb0f5+'/'+_0x2c6503)['json'](_0x21692c);}return null;};}function patchUpdates(_0x2fb335){return function(_0x4e9775){try{jsonpatch[_0x374c('0x1e')](_0x4e9775,_0x2fb335,!![]);}catch(_0x1b13ac){return BPromise[_0x374c('0x1f')](_0x1b13ac);}return _0x4e9775['save']();};}function saveUpdates(_0x11a892,_0x1aa84e){return function(_0x534f11){if(_0x534f11){return _0x534f11[_0x374c('0x20')](_0x11a892)[_0x374c('0x21')](function(_0x288663){return _0x288663;});}return null;};}function removeEntity(_0x203427,_0xcebb65){return function(_0x5e9932){if(_0x5e9932){return _0x5e9932[_0x374c('0x22')]()[_0x374c('0x21')](function(){var _0x559b49=_0x5e9932[_0x374c('0x23')]({'plain':!![]});var _0x4efda8=_0x374c('0x24');return db['UserProfileResource']['destroy']({'where':{'type':_0x4efda8,'resourceId':_0x559b49['id']}})['then'](function(){return _0x5e9932;});})[_0x374c('0x21')](function(){_0x203427[_0x374c('0x16')](0xcc)[_0x374c('0x25')]();});}};}function handleEntityNotFound(_0x51ea91,_0x959635){return function(_0x4b442a){if(!_0x4b442a){_0x51ea91['sendStatus'](0x194);}return _0x4b442a;};}function handleError(_0x1ed3f8,_0xe4fbe4){_0xe4fbe4=_0xe4fbe4||0x1f4;return function(_0x572702){logger['error'](_0x572702[_0x374c('0x26')]);if(_0x572702[_0x374c('0x27')]){delete _0x572702[_0x374c('0x27')];}_0x1ed3f8[_0x374c('0x16')](_0xe4fbe4)[_0x374c('0x28')](_0x572702);};}exports[_0x374c('0x29')]=function(_0x54c26d,_0x29a071){var _0x2bc846={},_0x436ef6={},_0x564ad0={'count':0x0,'rows':[]};var _0x129c2f=_[_0x374c('0x2a')](db[_0x374c('0x2b')][_0x374c('0x2c')],function(_0x12f0d0){return{'name':_0x12f0d0[_0x374c('0x2d')],'type':_0x12f0d0[_0x374c('0x2e')][_0x374c('0x2f')]};});_0x436ef6['model']=_[_0x374c('0x2a')](_0x129c2f,_0x374c('0x27'));_0x436ef6[_0x374c('0x30')]=_[_0x374c('0x31')](_0x54c26d[_0x374c('0x30')]);_0x436ef6['filters']=_[_0x374c('0x32')](_0x436ef6[_0x374c('0x33')],_0x436ef6[_0x374c('0x30')]);_0x2bc846['attributes']=_[_0x374c('0x32')](_0x436ef6[_0x374c('0x33')],qs[_0x374c('0x34')](_0x54c26d[_0x374c('0x30')][_0x374c('0x34')]));_0x2bc846['attributes']=_0x2bc846[_0x374c('0x35')][_0x374c('0x36')]?_0x2bc846[_0x374c('0x35')]:_0x436ef6[_0x374c('0x33')];if(!_0x54c26d[_0x374c('0x30')][_0x374c('0x37')]('nolimit')){_0x2bc846['limit']=qs[_0x374c('0x1b')](_0x54c26d[_0x374c('0x30')]['limit']);_0x2bc846[_0x374c('0x18')]=qs[_0x374c('0x18')](_0x54c26d[_0x374c('0x30')]['offset']);}_0x2bc846[_0x374c('0x38')]=qs[_0x374c('0x39')](_0x54c26d[_0x374c('0x30')]['sort']);delete _0x54c26d[_0x374c('0x30')][_0x374c('0x39')];_0x2bc846['where']=qs[_0x374c('0x3a')](_[_0x374c('0x3b')](_0x54c26d['query'],_0x436ef6[_0x374c('0x3a')]),_0x129c2f);if(_0x54c26d[_0x374c('0x30')][_0x374c('0x3c')]){_0x2bc846['where']=_[_0x374c('0x3d')](_0x2bc846['where'],{'$or':_[_0x374c('0x2a')](_0x129c2f,function(_0x1639e3){if(_0x1639e3[_0x374c('0x2e')]!==_0x374c('0x3e')){var _0x290d67={};_0x290d67[_0x1639e3[_0x374c('0x27')]]={'$like':'%'+_0x54c26d[_0x374c('0x30')][_0x374c('0x3c')]+'%'};return _0x290d67;}})});}_0x2bc846=_['merge']({},_0x2bc846,_0x54c26d['options']);var _0x4dd84a={'where':_0x2bc846[_0x374c('0x3f')]};return db[_0x374c('0x2b')][_0x374c('0x1a')](_0x4dd84a)[_0x374c('0x21')](function(_0x7acdb){_0x564ad0[_0x374c('0x1a')]=_0x7acdb;if(_0x54c26d[_0x374c('0x30')]['includeAll']){_0x2bc846[_0x374c('0x40')]=[{'all':!![]}];}return db[_0x374c('0x2b')]['findAll'](_0x2bc846);})[_0x374c('0x21')](function(_0xe7a53){_0x564ad0[_0x374c('0x41')]=_0xe7a53;return _0x564ad0;})[_0x374c('0x21')](respondWithFilteredResult(_0x29a071,_0x2bc846))[_0x374c('0x42')](handleError(_0x29a071,null));};exports[_0x374c('0x43')]=function(_0x14f6ac,_0x196963){var _0x53dc53={'raw':![],'where':{'id':_0x14f6ac[_0x374c('0x44')]['id']}},_0x56e5db={};_0x56e5db[_0x374c('0x33')]=_['keys'](db['VoiceMusicOnHold'][_0x374c('0x2c')]);_0x56e5db[_0x374c('0x30')]=_[_0x374c('0x31')](_0x14f6ac[_0x374c('0x30')]);_0x56e5db[_0x374c('0x3a')]=_['intersection'](_0x56e5db[_0x374c('0x33')],_0x56e5db['query']);_0x53dc53['attributes']=_[_0x374c('0x32')](_0x56e5db[_0x374c('0x33')],qs[_0x374c('0x34')](_0x14f6ac[_0x374c('0x30')][_0x374c('0x34')]));_0x53dc53[_0x374c('0x35')]=_0x53dc53[_0x374c('0x35')][_0x374c('0x36')]?_0x53dc53[_0x374c('0x35')]:_0x56e5db[_0x374c('0x33')];if(_0x14f6ac['query'][_0x374c('0x45')]){_0x53dc53[_0x374c('0x40')]=[{'all':!![]}];}_0x53dc53=_[_0x374c('0x3d')]({},_0x53dc53,_0x14f6ac[_0x374c('0x46')]);return db[_0x374c('0x2b')]['find'](_0x53dc53)['then'](handleEntityNotFound(_0x196963,null))['then'](respondWithResult(_0x196963,null))[_0x374c('0x42')](handleError(_0x196963,null));};exports[_0x374c('0x20')]=function(_0x42aad7,_0x4024a0){if(_0x42aad7['body']['id']){delete _0x42aad7[_0x374c('0x47')]['id'];}return db['VoiceMusicOnHold'][_0x374c('0x48')]({'where':{'id':_0x42aad7['params']['id']}})[_0x374c('0x21')](handleEntityNotFound(_0x4024a0,null))[_0x374c('0x21')](saveUpdates(_0x42aad7[_0x374c('0x47')],null))['then'](respondWithResult(_0x4024a0,null))[_0x374c('0x42')](handleError(_0x4024a0,null));};exports[_0x374c('0x49')]=function(_0x18b33e,_0x20ceaf,_0x3285e1){return db[_0x374c('0x4a')][_0x374c('0x4b')](function(_0x20e30f){if(_0x18b33e['body']['mode']===_0x374c('0x4c')){_0x18b33e[_0x374c('0x47')][_0x374c('0x4d')]=path['join'](config[_0x374c('0x4e')],_0x374c('0x4f'),_0x18b33e['body']['name']);}return db['VoiceMusicOnHold'][_0x374c('0x49')](_0x18b33e['body'],{'transaction':_0x20e30f})['then'](function(_0x491b11){if(_0x18b33e['body']['mode']===_0x374c('0x4c')){fs['mkdirSync'](_0x491b11['directory'],parseInt(_0x374c('0x50'),0x8));}var _0x29087b=_0x18b33e[_0x374c('0x51')][_0x374c('0x23')]({'plain':!![]});if(!_0x29087b)throw new Error(_0x374c('0x52'));if(_0x29087b[_0x374c('0x53')]===_0x374c('0x51')){var _0x33e8df=_0x491b11[_0x374c('0x23')]({'plain':!![]});return db['UserProfileSection'][_0x374c('0x48')]({'where':{'name':_0x374c('0x24'),'userProfileId':_0x29087b['userProfileId']},'raw':!![]})['then'](function(_0x51f6a9){if(_0x51f6a9&&_0x51f6a9[_0x374c('0x54')]===0x0){return db[_0x374c('0x55')][_0x374c('0x49')]({'name':_0x33e8df[_0x374c('0x27')],'resourceId':_0x33e8df['id'],'type':_0x51f6a9[_0x374c('0x27')],'sectionId':_0x51f6a9['id']},{})[_0x374c('0x21')](function(){return _0x491b11;});}else{return _0x491b11;}})['catch'](function(_0x288b64){logger[_0x374c('0x56')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x288b64);});}return _0x491b11;});})[_0x374c('0x21')](respondWithResult(_0x20ceaf,0xc9))[_0x374c('0x42')](handleError(_0x20ceaf,null));};exports['destroy']=function(_0x2bd709,_0x22659b,_0x3b621e){var _0x3d0ec6;return db[_0x374c('0x2b')]['find']({'where':{'id':_0x2bd709[_0x374c('0x44')]['id']}})['then'](function(_0x2938be){if(_0x2938be){return db['sequelize'][_0x374c('0x4b')](function(_0x37cdb0){return _0x2938be[_0x374c('0x22')]({'transaction':_0x37cdb0,'raw':!![]})[_0x374c('0x21')](function(_0x17a289){if(_0x17a289[_0x374c('0x4d')]){fs['readdirSync'](_0x17a289[_0x374c('0x4d')])['forEach'](function(_0x2aadc7){fs[_0x374c('0x57')](path['join'](_0x17a289['directory'],_0x2aadc7));});fs[_0x374c('0x58')](_0x17a289[_0x374c('0x4d')]);}return _0x17a289;});})[_0x374c('0x42')](function(_0x459a6b){throw new db['Sequelize'][(_0x374c('0x59'))](_0x459a6b[_0x374c('0x5a')]);});}})[_0x374c('0x21')](handleEntityNotFound(_0x22659b,null))['then'](removeEntity(_0x22659b,null))['catch'](handleError(_0x22659b,null));};exports[_0x374c('0x5b')]=function(_0x4cb13c,_0x2ae864,_0x2833a4){return db[_0x374c('0x4a')][_0x374c('0x4b')](function(_0x49c67c){var _0x5e6b7c;return db[_0x374c('0x2b')]['find']({'where':{'id':_0x4cb13c[_0x374c('0x44')]['id']}})[_0x374c('0x21')](function(_0x322588){if(_0x322588){_0x5e6b7c=_0x322588;return _0x322588[_0x374c('0x5b')](_0x4cb13c[_0x374c('0x47')]['id'],{'transaction':_0x49c67c});}})[_0x374c('0x21')](function(_0x2f35ba){if(_0x2f35ba){return db[_0x374c('0x5c')][_0x374c('0x5d')]({'where':{'id':_0x4cb13c[_0x374c('0x47')]['id']},'attributes':['id',_0x374c('0x27'),_0x374c('0x5e'),_0x374c('0x5f'),'createdAt'],'raw':!![]});}})[_0x374c('0x21')](function(_0x24b10a){if(_0x24b10a){var _0x3626d0=path['join'](config[_0x374c('0x4e')],_0x374c('0x60'),util[_0x374c('0x61')](_0x374c('0x62'),path['basename'](_0x24b10a['save_name'],path['extname'](_0x24b10a[_0x374c('0x5e')])),_0x24b10a[_0x374c('0x5f')]));var _0x2737e3=path[_0x374c('0x63')](config[_0x374c('0x4e')],_0x374c('0x4f'),_0x5e6b7c[_0x374c('0x27')],util['format'](_0x374c('0x62'),_0x24b10a[_0x374c('0x27')],_0x24b10a[_0x374c('0x5f')]));fs[_0x374c('0x64')](_0x3626d0,_0x2737e3);return _0x24b10a;}})[_0x374c('0x42')](function(_0x186f0f){throw new db[(_0x374c('0x65'))][(_0x374c('0x59'))](_0x186f0f[_0x374c('0x5a')]);});})[_0x374c('0x21')](handleEntityNotFound(_0x2ae864,null))[_0x374c('0x21')](respondWithResult(_0x2ae864,0xc9))[_0x374c('0x42')](handleError(_0x2ae864,null));};exports[_0x374c('0x66')]=function(_0x1847a9,_0x52e57c,_0x33ba38){return db[_0x374c('0x4a')]['transaction'](function(_0x477923){var _0x39597b;return db[_0x374c('0x2b')][_0x374c('0x5d')]({'where':{'id':_0x1847a9['params']['id']}})[_0x374c('0x21')](handleEntityNotFound(_0x52e57c,null))[_0x374c('0x21')](function(_0x54a9c8){if(_0x54a9c8){_0x39597b=_0x54a9c8;return _0x54a9c8['removeSound'](_0x1847a9[_0x374c('0x44')][_0x374c('0x67')]);}})['then'](function(_0x6ac1f9){if(_0x6ac1f9){return db[_0x374c('0x5c')]['findOne']({'where':{'id':_0x1847a9[_0x374c('0x44')][_0x374c('0x67')]},'attributes':['id',_0x374c('0x27'),_0x374c('0x5e'),_0x374c('0x5f'),'createdAt'],'raw':!![]});}})[_0x374c('0x21')](function(_0x5edf63){if(_0x5edf63){fs[_0x374c('0x57')](path[_0x374c('0x63')](_0x39597b['directory'],util[_0x374c('0x61')](_0x374c('0x62'),_0x5edf63[_0x374c('0x27')],_0x5edf63[_0x374c('0x5f')])));return _0x5edf63;}})[_0x374c('0x42')](function(_0x546919){throw new db['Sequelize'][(_0x374c('0x59'))](_0x546919[_0x374c('0x5a')]);});})[_0x374c('0x21')](handleEntityNotFound(_0x52e57c,null))[_0x374c('0x21')](respondWithStatusCode(_0x52e57c,0xcc))['catch'](handleError(_0x52e57c,null));};exports[_0x374c('0x68')]=function(_0x5cb20a,_0x218e5e,_0x384f3e){var _0x5d751f={};var _0x3f8382={};var _0x482532;var _0x2408e2;return db[_0x374c('0x2b')]['findOne']({'where':{'id':_0x5cb20a['params']['id']}})[_0x374c('0x21')](handleEntityNotFound(_0x218e5e,null))[_0x374c('0x21')](function(_0x482a5e){if(_0x482a5e){_0x482532=_0x482a5e;_0x3f8382[_0x374c('0x33')]=_[_0x374c('0x31')](db[_0x374c('0x5c')][_0x374c('0x2c')]);_0x3f8382[_0x374c('0x30')]=_[_0x374c('0x31')](_0x5cb20a[_0x374c('0x30')]);_0x3f8382[_0x374c('0x3a')]=_[_0x374c('0x32')](_0x3f8382['model'],_0x3f8382[_0x374c('0x30')]);_0x5d751f[_0x374c('0x35')]=_[_0x374c('0x32')](_0x3f8382[_0x374c('0x33')],qs[_0x374c('0x34')](_0x5cb20a['query']['fields']));_0x5d751f[_0x374c('0x35')]=_0x5d751f[_0x374c('0x35')][_0x374c('0x36')]?_0x5d751f[_0x374c('0x35')]:_0x3f8382[_0x374c('0x33')];_0x5d751f[_0x374c('0x38')]=qs[_0x374c('0x39')](_0x5cb20a['query']['sort']);_0x5d751f[_0x374c('0x3f')]=qs[_0x374c('0x3a')](_[_0x374c('0x3b')](_0x5cb20a[_0x374c('0x30')],_0x3f8382['filters']));if(_0x5cb20a[_0x374c('0x30')][_0x374c('0x3c')]){_0x5d751f['where']=_[_0x374c('0x3d')](_0x5d751f['where'],{'$or':_[_0x374c('0x2a')](_0x5d751f['attributes'],function(_0x5a34e1){var _0x3608f4={};_0x3608f4[_0x5a34e1]={'$like':'%'+_0x5cb20a['query']['filter']+'%'};return _0x3608f4;})});}_0x5d751f=_['merge']({},_0x5d751f,_0x5cb20a[_0x374c('0x46')]);return _0x482532['getSounds'](_0x5d751f);}})[_0x374c('0x21')](function(_0x5d6325){if(_0x5d6325){_0x2408e2=_0x5d6325[_0x374c('0x36')];if(!_0x5cb20a['query'][_0x374c('0x37')](_0x374c('0x69'))){_0x5d751f['limit']=qs[_0x374c('0x1b')](_0x5cb20a['query'][_0x374c('0x1b')]);_0x5d751f[_0x374c('0x18')]=qs[_0x374c('0x18')](_0x5cb20a[_0x374c('0x30')][_0x374c('0x18')]);}return _0x482532[_0x374c('0x68')](_0x5d751f);}})['then'](function(_0x2a39bf){if(_0x2a39bf){return _0x2a39bf?{'count':_0x2408e2,'rows':_0x2a39bf}:null;}})[_0x374c('0x21')](respondWithResult(_0x218e5e,null))['catch'](handleError(_0x218e5e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf857=['moment','request-promise','path','rimraf','../../config/environment','exports','define','VoiceMusicOnHold','lodash','util'];(function(_0x5df2ac,_0x10d1d4){var _0x221a4b=function(_0x1eec0e){while(--_0x1eec0e){_0x5df2ac['push'](_0x5df2ac['shift']());}};_0x221a4b(++_0x10d1d4);}(_0xf857,0x13e));var _0x7f85=function(_0x4776c0,_0x249591){_0x4776c0=_0x4776c0-0x0;var _0x46cc4a=_0xf857[_0x4776c0];return _0x46cc4a;};'use strict';var _=require(_0x7f85('0x0'));var util=require(_0x7f85('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x7f85('0x2'));var BPromise=require('bluebird');var rp=require(_0x7f85('0x3'));var fs=require('fs');var path=require(_0x7f85('0x4'));var rimraf=require(_0x7f85('0x5'));var config=require(_0x7f85('0x6'));var attributes=require('./voiceMusicOnHold.attributes');module[_0x7f85('0x7')]=function(_0x2bde0f,_0x13c9a7){return _0x2bde0f[_0x7f85('0x8')](_0x7f85('0x9'),attributes,{'tableName':'voice_musiconhold','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3c5d=['VoiceMusicOnHold','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./voiceMusicOnHold.attributes','exports','define'];(function(_0x35af23,_0x9190f6){var _0x340506=function(_0xd4c26b){while(--_0xd4c26b){_0x35af23['push'](_0x35af23['shift']());}};_0x340506(++_0x9190f6);}(_0x3c5d,0xd9));var _0xd3c5=function(_0x4a33e9,_0x3924a4){_0x4a33e9=_0x4a33e9-0x0;var _0x295f69=_0x3c5d[_0x4a33e9];return _0x295f69;};'use strict';var _=require('lodash');var util=require(_0xd3c5('0x0'));var logger=require(_0xd3c5('0x1'))(_0xd3c5('0x2'));var moment=require(_0xd3c5('0x3'));var BPromise=require('bluebird');var rp=require(_0xd3c5('0x4'));var fs=require('fs');var path=require(_0xd3c5('0x5'));var rimraf=require(_0xd3c5('0x6'));var config=require(_0xd3c5('0x7'));var attributes=require(_0xd3c5('0x8'));module[_0xd3c5('0x9')]=function(_0x40219d,_0x25cb04){return _0x40219d[_0xd3c5('0xa')](_0xd3c5('0xb'),attributes,{'tableName':'voice_musiconhold','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['http','info','VoiceMusicOnHold,\x20%s,\x20%s','request\x20sent','debug','VoiceMusicOnHold,\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(_0x5e8a54,_0xb3d594){var _0x209776=function(_0x3fa08f){while(--_0x3fa08f){_0x5e8a54['push'](_0x5e8a54['shift']());}};_0x209776(++_0xb3d594);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3c4737,_0x2329ec){_0x3c4737=_0x3c4737-0x0;var _0x2bb926=_0xa9e0[_0x3c4737];return _0x2bb926;};'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 _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(_0x3157f9,_0x3af8dd){var _0x395439=function(_0x2ee0b9){while(--_0x2ee0b9){_0x3157f9['push'](_0x3157f9['shift']());}};_0x395439(++_0x3af8dd);}(_0x70e0,0x17b));var _0x070e=function(_0x17f5a8,_0x147670){_0x17f5a8=_0x17f5a8-0x0;var _0x4450f3=_0x70e0[_0x17f5a8];return _0x4450f3;};'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 _0x2028=['../../components/interaction/service','./voicePrefix.controller','get','isAuthenticated','index','describe','/:id','show','/:id/users','getAgents','getTeams','post','addAgents','addTeams','delete','destroy','/:id/teams','exports','path','express','Router','fs-extra'];(function(_0x25b389,_0x411005){var _0xcbc27=function(_0x10156a){while(--_0x10156a){_0x25b389['push'](_0x25b389['shift']());}};_0xcbc27(++_0x411005);}(_0x2028,0x1e0));var _0x8202=function(_0x17b031,_0x99b2ef){_0x17b031=_0x17b031-0x0;var _0x1bf867=_0x2028[_0x17b031];return _0x1bf867;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x8202('0x0'));var timeout=require('connect-timeout');var express=require(_0x8202('0x1'));var router=express[_0x8202('0x2')]();var fs_extra=require(_0x8202('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x8202('0x4'));var config=require('../../config/environment');var controller=require(_0x8202('0x5'));router[_0x8202('0x6')]('/',auth[_0x8202('0x7')](),controller[_0x8202('0x8')]);router['get']('/describe',auth[_0x8202('0x7')](),controller[_0x8202('0x9')]);router[_0x8202('0x6')](_0x8202('0xa'),auth['isAuthenticated'](),controller[_0x8202('0xb')]);router[_0x8202('0x6')](_0x8202('0xc'),auth[_0x8202('0x7')](),controller[_0x8202('0xd')]);router[_0x8202('0x6')]('/:id/teams',auth[_0x8202('0x7')](),controller[_0x8202('0xe')]);router[_0x8202('0xf')]('/',auth[_0x8202('0x7')](),controller['create']);router[_0x8202('0xf')](_0x8202('0xc'),auth['isAuthenticated'](),controller[_0x8202('0x10')]);router[_0x8202('0xf')]('/:id/teams',auth[_0x8202('0x7')](),controller[_0x8202('0x11')]);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router[_0x8202('0x12')](_0x8202('0xa'),auth[_0x8202('0x7')](),controller[_0x8202('0x13')]);router[_0x8202('0x12')](_0x8202('0xc'),auth[_0x8202('0x7')](),controller['removeAgents']);router['delete'](_0x8202('0x14'),auth[_0x8202('0x7')](),controller['removeTeams']);module[_0x8202('0x15')]=router;
\ No newline at end of file
+var _0x7fa3=['../../components/auth/service','../../components/interaction/service','../../config/environment','./voicePrefix.controller','get','isAuthenticated','/describe','describe','/:id','show','getAgents','post','create','/:id/users','addAgents','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router'];(function(_0x3c8726,_0x3be213){var _0x58a4=function(_0x48c869){while(--_0x48c869){_0x3c8726['push'](_0x3c8726['shift']());}};_0x58a4(++_0x3be213);}(_0x7fa3,0x19a));var _0x37fa=function(_0x18f137,_0x5e06b4){_0x18f137=_0x18f137-0x0;var _0x147221=_0x7fa3[_0x18f137];return _0x147221;};'use strict';var multer=require(_0x37fa('0x0'));var util=require(_0x37fa('0x1'));var path=require(_0x37fa('0x2'));var timeout=require(_0x37fa('0x3'));var express=require(_0x37fa('0x4'));var router=express[_0x37fa('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x37fa('0x6'));var interaction=require(_0x37fa('0x7'));var config=require(_0x37fa('0x8'));var controller=require(_0x37fa('0x9'));router[_0x37fa('0xa')]('/',auth[_0x37fa('0xb')](),controller['index']);router[_0x37fa('0xa')](_0x37fa('0xc'),auth[_0x37fa('0xb')](),controller[_0x37fa('0xd')]);router[_0x37fa('0xa')](_0x37fa('0xe'),auth['isAuthenticated'](),controller[_0x37fa('0xf')]);router['get']('/:id/users',auth[_0x37fa('0xb')](),controller[_0x37fa('0x10')]);router[_0x37fa('0x11')]('/',auth[_0x37fa('0xb')](),controller[_0x37fa('0x12')]);router[_0x37fa('0x11')](_0x37fa('0x13'),auth[_0x37fa('0xb')](),controller[_0x37fa('0x14')]);router[_0x37fa('0x15')](_0x37fa('0xe'),auth[_0x37fa('0xb')](),controller[_0x37fa('0x16')]);router[_0x37fa('0x17')]('/:id',auth[_0x37fa('0xb')](),controller[_0x37fa('0x18')]);router[_0x37fa('0x17')](_0x37fa('0x13'),auth[_0x37fa('0xb')](),controller['removeAgents']);module[_0x37fa('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73b5=['system-','getDataValue','INTEGER','STRING','VIRTUAL'];(function(_0x1070ed,_0x472dbe){var _0x22c2f7=function(_0x2fd526){while(--_0x2fd526){_0x1070ed['push'](_0x1070ed['shift']());}};_0x22c2f7(++_0x472dbe);}(_0x73b5,0xd0));var _0x573b=function(_0x2d7a41,_0x247471){_0x2d7a41=_0x2d7a41-0x0;var _0x4a42a6=_0x73b5[_0x2d7a41];return _0x4a42a6;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x573b('0x0')],'allowNull':![],'unique':'name'},'prefix':{'type':Sequelize[_0x573b('0x1')],'get':function(_0x5de5a6){return _0x573b('0x2')+this[_0x573b('0x3')]('name')+'-';}},'description':{'type':Sequelize[_0x573b('0x0')]},'callerIdAll':{'type':Sequelize[_0x573b('0x0')]},'VoiceExtensionId':{'type':Sequelize[_0x573b('0x4')]}};
\ No newline at end of file
+var _0xb532=['name','VIRTUAL','system-','exports','STRING'];(function(_0x479cd8,_0x18aafe){var _0x5f0660=function(_0x7e4e03){while(--_0x7e4e03){_0x479cd8['push'](_0x479cd8['shift']());}};_0x5f0660(++_0x18aafe);}(_0xb532,0x170));var _0x2b53=function(_0x150654,_0x22e377){_0x150654=_0x150654-0x0;var _0x28dbee=_0xb532[_0x150654];return _0x28dbee;};'use strict';var Sequelize=require('sequelize');module[_0x2b53('0x0')]={'name':{'type':Sequelize[_0x2b53('0x1')],'allowNull':![],'unique':_0x2b53('0x2')},'prefix':{'type':Sequelize[_0x2b53('0x3')],'get':function(_0x309a4a){return _0x2b53('0x4')+this['getDataValue'](_0x2b53('0x2'))+'-';}},'description':{'type':Sequelize[_0x2b53('0x1')]},'callerIdAll':{'type':Sequelize[_0x2b53('0x1')]},'VoiceExtensionId':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0598=['bluebird','mustache','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','redis','defaults','localhost','socket.io-emitter','./voicePrefix.socket','sendStatus','status','json','offset','undefined','limit','Content-Range','reject','save','update','then','destroy','get','VoicePrefixes','end','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','sort','where','pick','VIRTUAL','filter','merge','count','includeAll','include','VoicePrefix','findAll','rows','catch','show','params','options','find','describe','sequelize','transaction','create','body','VoiceExtension','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','exten','app','description','Voice\x20Prefix\x20Extension','priority','NoOp','Voice\x20Prefix','VoiceExtensionId','VoicePrefixId','bulkCreate','prefix','push','Set','CDR(prefix)=','callerIdAll','PREFIX-CALLERIDALL=','No\x20callerid\x20available','${EXTEN:','charAt','system-','findById','addAgents','ids','emit','removeAgents','isArray','userVoicePrefix:remove','findOne','User','order','getAgents','nolimit','getTeams','Team','addTeams','Agents','online','voicePause','interface','flatMap','each','TeamVoicePrefix','upsert','UserVoicePrefix','findOrCreate','forEach','removeTeams','select','field','from','team_has_voice_prefixes','join','user_has_teams','VoicePrefixId\x20=\x20?','clone','toString','QueryTypes','SELECT','every','all','union','compact','value','isEmpty','eml-format','rimraf','fast-json-patch'];(function(_0x46c9df,_0x3dc61d){var _0x58cd06=function(_0x5efd6d){while(--_0x5efd6d){_0x46c9df['push'](_0x46c9df['shift']());}};_0x58cd06(++_0x3dc61d);}(_0x0598,0x92));var _0x8059=function(_0x2dfc85,_0x14a836){_0x2dfc85=_0x2dfc85-0x0;var _0x17885a=_0x0598[_0x2dfc85];return _0x17885a;};'use strict';var emlformat=require(_0x8059('0x0'));var rimraf=require(_0x8059('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8059('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x8059('0x3'));var Mustache=require(_0x8059('0x4'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x8059('0x5'));var ejs=require(_0x8059('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x8059('0x7'));var crypto=require(_0x8059('0x8'));var jsforce=require(_0x8059('0x9'));var deskjs=require(_0x8059('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x8059('0xb'));var Redis=require(_0x8059('0xc'));var authService=require(_0x8059('0xd'));var qs=require(_0x8059('0xe'));var as=require(_0x8059('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x8059('0x10'));var utils=require(_0x8059('0x11'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x8059('0x12')]=_[_0x8059('0x13')](config[_0x8059('0x12')],{'host':_0x8059('0x14'),'port':0x18eb});var socket=require(_0x8059('0x15'))(new Redis(config['redis']));require(_0x8059('0x16'))['register'](socket);function respondWithStatusCode(_0x346b23,_0x5c916e){_0x5c916e=_0x5c916e||0xcc;return function(_0x3e4f08){if(_0x3e4f08){return _0x346b23[_0x8059('0x17')](_0x5c916e);}return _0x346b23[_0x8059('0x18')](_0x5c916e)['end']();};}function respondWithResult(_0x516c1f,_0x5cda43){_0x5cda43=_0x5cda43||0xc8;return function(_0x3b8f18){if(_0x3b8f18){return _0x516c1f[_0x8059('0x18')](_0x5cda43)[_0x8059('0x19')](_0x3b8f18);}};}function respondWithFilteredResult(_0x246c9d,_0x3abfe8){return function(_0x4b6d55){if(_0x4b6d55){var _0x10ad98=typeof _0x3abfe8[_0x8059('0x1a')]===_0x8059('0x1b')&&typeof _0x3abfe8[_0x8059('0x1c')]==='undefined';var _0x5456a9=_0x4b6d55['count'];var _0x113f42=_0x10ad98?0x0:_0x3abfe8['offset'];var _0x1857c1=_0x10ad98?_0x4b6d55['count']:_0x3abfe8[_0x8059('0x1a')]+_0x3abfe8[_0x8059('0x1c')];var _0x1e9ac5;if(_0x1857c1>=_0x5456a9){_0x1857c1=_0x5456a9;_0x1e9ac5=0xc8;}else{_0x1e9ac5=0xce;}_0x246c9d['status'](_0x1e9ac5);return _0x246c9d['set'](_0x8059('0x1d'),_0x113f42+'-'+_0x1857c1+'/'+_0x5456a9)[_0x8059('0x19')](_0x4b6d55);}return null;};}function patchUpdates(_0x32aeda){return function(_0x1585a3){try{jsonpatch['apply'](_0x1585a3,_0x32aeda,!![]);}catch(_0x3bc226){return BPromise[_0x8059('0x1e')](_0x3bc226);}return _0x1585a3[_0x8059('0x1f')]();};}function saveUpdates(_0x5449d9,_0xe9a72d){return function(_0x2256b1){if(_0x2256b1){return _0x2256b1[_0x8059('0x20')](_0x5449d9)[_0x8059('0x21')](function(_0x59d3a6){return _0x59d3a6;});}return null;};}function removeEntity(_0x140f64,_0x2cd179){return function(_0x4781e2){if(_0x4781e2){return _0x4781e2[_0x8059('0x22')]()[_0x8059('0x21')](function(){var _0x54b88b=_0x4781e2[_0x8059('0x23')]({'plain':!![]});var _0x19b95a=_0x8059('0x24');return db['UserProfileResource']['destroy']({'where':{'type':_0x19b95a,'resourceId':_0x54b88b['id']}})['then'](function(){return _0x4781e2;});})[_0x8059('0x21')](function(){_0x140f64[_0x8059('0x18')](0xcc)[_0x8059('0x25')]();});}};}function handleEntityNotFound(_0x1009af,_0x59abe9){return function(_0x1eb71b){if(!_0x1eb71b){_0x1009af['sendStatus'](0x194);}return _0x1eb71b;};}function handleError(_0x2f887c,_0x35c73e){_0x35c73e=_0x35c73e||0x1f4;return function(_0x5ecf7f){logger[_0x8059('0x26')](_0x5ecf7f[_0x8059('0x27')]);if(_0x5ecf7f[_0x8059('0x28')]){delete _0x5ecf7f[_0x8059('0x28')];}_0x2f887c[_0x8059('0x18')](_0x35c73e)[_0x8059('0x29')](_0x5ecf7f);};}exports[_0x8059('0x2a')]=function(_0x2016ea,_0x505756){var _0xb3c36e={},_0x40b39e={},_0x1f8983={'count':0x0,'rows':[]};var _0x15f843=_[_0x8059('0x2b')](db['VoicePrefix'][_0x8059('0x2c')],function(_0x22c492){return{'name':_0x22c492[_0x8059('0x2d')],'type':_0x22c492[_0x8059('0x2e')][_0x8059('0x2f')]};});_0x40b39e[_0x8059('0x30')]=_[_0x8059('0x2b')](_0x15f843,_0x8059('0x28'));_0x40b39e[_0x8059('0x31')]=_[_0x8059('0x32')](_0x2016ea['query']);_0x40b39e[_0x8059('0x33')]=_['intersection'](_0x40b39e[_0x8059('0x30')],_0x40b39e['query']);_0xb3c36e['attributes']=_[_0x8059('0x34')](_0x40b39e['model'],qs[_0x8059('0x35')](_0x2016ea['query'][_0x8059('0x35')]));_0xb3c36e['attributes']=_0xb3c36e[_0x8059('0x36')][_0x8059('0x37')]?_0xb3c36e['attributes']:_0x40b39e[_0x8059('0x30')];if(!_0x2016ea[_0x8059('0x31')][_0x8059('0x38')]('nolimit')){_0xb3c36e[_0x8059('0x1c')]=qs['limit'](_0x2016ea[_0x8059('0x31')]['limit']);_0xb3c36e[_0x8059('0x1a')]=qs[_0x8059('0x1a')](_0x2016ea[_0x8059('0x31')][_0x8059('0x1a')]);}_0xb3c36e['order']=qs[_0x8059('0x39')](_0x2016ea['query']['sort']);_0xb3c36e[_0x8059('0x3a')]=qs[_0x8059('0x33')](_[_0x8059('0x3b')](_0x2016ea[_0x8059('0x31')],_0x40b39e[_0x8059('0x33')]),_0x15f843);if(_0x2016ea['query']['filter']){_0xb3c36e['where']=_['merge'](_0xb3c36e[_0x8059('0x3a')],{'$or':_[_0x8059('0x2b')](_0x15f843,function(_0xc84f04){if(_0xc84f04['type']!==_0x8059('0x3c')){var _0x406ec3={};_0x406ec3[_0xc84f04['name']]={'$like':'%'+_0x2016ea[_0x8059('0x31')][_0x8059('0x3d')]+'%'};return _0x406ec3;}})});}_0xb3c36e=_[_0x8059('0x3e')]({},_0xb3c36e,_0x2016ea['options']);var _0x2c48cf={'where':_0xb3c36e[_0x8059('0x3a')]};return db['VoicePrefix'][_0x8059('0x3f')](_0x2c48cf)[_0x8059('0x21')](function(_0x3f00de){_0x1f8983[_0x8059('0x3f')]=_0x3f00de;if(_0x2016ea[_0x8059('0x31')][_0x8059('0x40')]){_0xb3c36e[_0x8059('0x41')]=[{'all':!![]}];}return db[_0x8059('0x42')][_0x8059('0x43')](_0xb3c36e);})[_0x8059('0x21')](function(_0x1d64db){_0x1f8983[_0x8059('0x44')]=_0x1d64db;return _0x1f8983;})[_0x8059('0x21')](respondWithFilteredResult(_0x505756,_0xb3c36e))[_0x8059('0x45')](handleError(_0x505756,null));};exports[_0x8059('0x46')]=function(_0x93ee2f,_0x35c94a){var _0x25f542={'raw':![],'where':{'id':_0x93ee2f[_0x8059('0x47')]['id']}},_0x1b613f={};_0x1b613f[_0x8059('0x30')]=_[_0x8059('0x32')](db[_0x8059('0x42')]['rawAttributes']);_0x1b613f[_0x8059('0x31')]=_['keys'](_0x93ee2f['query']);_0x1b613f[_0x8059('0x33')]=_['intersection'](_0x1b613f[_0x8059('0x30')],_0x1b613f['query']);_0x25f542[_0x8059('0x36')]=_[_0x8059('0x34')](_0x1b613f[_0x8059('0x30')],qs[_0x8059('0x35')](_0x93ee2f[_0x8059('0x31')][_0x8059('0x35')]));_0x25f542['attributes']=_0x25f542[_0x8059('0x36')]['length']?_0x25f542[_0x8059('0x36')]:_0x1b613f[_0x8059('0x30')];if(_0x93ee2f[_0x8059('0x31')]['includeAll']){_0x25f542[_0x8059('0x41')]=[{'all':!![]}];}_0x25f542=_[_0x8059('0x3e')]({},_0x25f542,_0x93ee2f[_0x8059('0x48')]);return db[_0x8059('0x42')]['find'](_0x25f542)[_0x8059('0x21')](handleEntityNotFound(_0x35c94a,null))[_0x8059('0x21')](respondWithResult(_0x35c94a,null))[_0x8059('0x45')](handleError(_0x35c94a,null));};exports['destroy']=function(_0x2ba3f1,_0x5d9458){return db['VoicePrefix'][_0x8059('0x49')]({'where':{'id':_0x2ba3f1['params']['id']}})[_0x8059('0x21')](handleEntityNotFound(_0x5d9458,null))['then'](removeEntity(_0x5d9458,null))[_0x8059('0x45')](handleError(_0x5d9458,null));};exports[_0x8059('0x4a')]=function(_0x5ea40c,_0x20d779){return db['VoicePrefix'][_0x8059('0x4a')]()[_0x8059('0x21')](respondWithResult(_0x20d779,null))[_0x8059('0x45')](handleError(_0x20d779,null));};exports['create']=function(_0x2dd991,_0x5035a9){var _0x21ceef;return db[_0x8059('0x4b')][_0x8059('0x4c')](function(_0xb63fee){return db['VoicePrefix'][_0x8059('0x4d')](_0x2dd991[_0x8059('0x4e')],{'transaction':_0xb63fee})['then'](function(_0x41e280){_0x21ceef=_0x41e280['get']({'plain':!![]});return db[_0x8059('0x4f')]['find']({'where':{'id':_0x21ceef['VoiceExtensionId']},'raw':!![]})[_0x8059('0x21')](function(_0x388829){return createVoicePrefixExtensions(_0x21ceef,_0x388829,_0xb63fee);});});})[_0x8059('0x21')](function(){var _0x3afe66=_0x2dd991[_0x8059('0x50')][_0x8059('0x23')]({'plain':!![]});if(!_0x3afe66)throw new Error(_0x8059('0x51'));if(_0x3afe66['role']==='user'){var _0x52ed37=_0x21ceef;return db['UserProfileSection'][_0x8059('0x49')]({'where':{'name':_0x8059('0x24'),'userProfileId':_0x3afe66['userProfileId']},'raw':!![]})[_0x8059('0x21')](function(_0x4b0078){if(_0x4b0078&&_0x4b0078['autoAssociation']===0x0){return db[_0x8059('0x52')]['create']({'name':_0x52ed37[_0x8059('0x28')],'resourceId':_0x52ed37['id'],'type':_0x4b0078[_0x8059('0x28')],'sectionId':_0x4b0078['id']},{})[_0x8059('0x21')](function(){return _0x21ceef;});}else{return _0x21ceef;}})['catch'](function(_0x52511f){logger[_0x8059('0x26')](_0x8059('0x53'),_0x52511f);throw _0x52511f;});}return _0x21ceef;})[_0x8059('0x21')](respondWithResult(_0x5035a9,null))['catch'](handleError(_0x5035a9,null));};function Extension(_0x501f2c,_0x1260b1,_0x538460,_0x479a19){this[_0x8059('0x54')]='from-sip';this[_0x8059('0x55')]=_0x501f2c;this[_0x8059('0x56')]=_0x538460;this['type']='system';this[_0x8059('0x57')]=_0x8059('0x58');this[_0x8059('0x59')]=_0x1260b1;this['appdata']=_0x479a19;}function createVoicePrefixExtensions(_0x2d9df5,_0x4452ab,_0xc6b6d8){return new BPromise(function(_0x18bce2,_0x4b4dbe){var _0x1b3553=new Extension(formatPrefixName(_0x2d9df5['prefix']),0x1,_0x8059('0x5a'),_0x8059('0x5b'));_0x1b3553['VoicePrefixId']=_0x2d9df5['id'];return db[_0x8059('0x4f')]['create'](_0x1b3553,{'transaction':_0xc6b6d8})[_0x8059('0x21')](function(_0x319c65){var _0x2e8ef2=_0x319c65[_0x8059('0x23')]({'plain':!![]});var _0x2750b0=_[_0x8059('0x2b')](addVoicePrefixExtensions(_0x2d9df5,_0x4452ab),function(_0x28b466){_0x28b466[_0x8059('0x5c')]=_0x2e8ef2['id'];_0x28b466[_0x8059('0x5d')]=_0x2d9df5['id'];return _0x28b466;});return db[_0x8059('0x4f')][_0x8059('0x5e')](_0x2750b0,{'transaction':_0xc6b6d8})[_0x8059('0x21')](function(_0x325f9c){if(!_0x325f9c){return _0x4b4dbe('Extensions\x20creation\x20failed');}else{return _0x18bce2(_0x325f9c);}})[_0x8059('0x45')](function(_0x2dc612){return _0x4b4dbe(_0x2dc612);});});;});};function addVoicePrefixExtensions(_0x391924,_0x421682){var _0x2cf1fd=[];var _0x59a211=formatPrefixName(_0x391924[_0x8059('0x5f')]);_0x2cf1fd[_0x8059('0x60')](new Extension(_0x59a211,0x2,_0x8059('0x61'),_0x8059('0x62')+_0x391924[_0x8059('0x28')]));if(_0x391924[_0x8059('0x63')]){_0x2cf1fd[_0x8059('0x60')](new Extension(_0x59a211,0x3,_0x8059('0x61'),_0x8059('0x64')+_0x391924['callerIdAll']));}else{_0x2cf1fd[_0x8059('0x60')](new Extension(_0x59a211,0x3,_0x8059('0x5a'),_0x8059('0x65')));}_0x2cf1fd['push'](new Extension(_0x59a211,0x4,'goto',_0x421682[_0x8059('0x54')]+','+_0x8059('0x66')+(0x8+_0x391924[_0x8059('0x28')][_0x8059('0x37')])+'}'+','+0x1));return _0x2cf1fd;}function formatPrefixName(_0x1878a6){var _0x2a1833='_';for(var _0x18b3d8=0x0;_0x18b3d8<_0x1878a6['length'];_0x18b3d8++){if(_0x1878a6[_0x8059('0x67')](_0x18b3d8)=='-'){_0x2a1833+=_0x1878a6[_0x8059('0x67')](_0x18b3d8);}else{_0x2a1833+='['+_0x1878a6[_0x8059('0x67')](_0x18b3d8)+']';}}_0x2a1833+='.';return _0x2a1833;}exports['update']=function(_0x3cacf8,_0x255ade,_0x3cd45d){var _0x2d4970=_0x3cacf8['body'];_0x2d4970['prefix']=_0x8059('0x68')+_0x2d4970[_0x8059('0x28')]+'-';return db['sequelize'][_0x8059('0x4c')](function(_0x1c19b0){return db[_0x8059('0x42')][_0x8059('0x20')](_0x2d4970,{'where':{'id':_0x2d4970['id']},'transaction':_0x1c19b0})[_0x8059('0x21')](function(){return db[_0x8059('0x4f')]['destroy']({'where':{'VoicePrefixId':_0x2d4970['id']},'transaction':_0x1c19b0})[_0x8059('0x21')](function(){return db[_0x8059('0x4f')][_0x8059('0x49')]({'where':{'id':_0x2d4970['VoiceExtensionId']},'raw':!![]})['then'](function(_0x36b586){return createVoicePrefixExtensions(_0x2d4970,_0x36b586,_0x1c19b0);});});});})[_0x8059('0x21')](function(){return db['VoicePrefix'][_0x8059('0x69')](_0x2d4970['id']);})[_0x8059('0x21')](respondWithResult(_0x255ade,null))[_0x8059('0x45')](handleError(_0x255ade,null));};exports[_0x8059('0x6a')]=function(_0x2009d9,_0xb36842,_0x2596ff){return db[_0x8059('0x42')][_0x8059('0x49')]({'where':{'id':_0x2009d9[_0x8059('0x47')]['id']}})[_0x8059('0x21')](handleEntityNotFound(_0xb36842,null))[_0x8059('0x21')](function(_0x598596){if(_0x598596){return _0x598596[_0x8059('0x6a')](_0x2009d9[_0x8059('0x4e')][_0x8059('0x6b')],_['omit'](_0x2009d9['body'],[_0x8059('0x6b'),'id'])||{})['spread'](function(_0x4b31cb){for(var _0x1554ca=0x0;_0x1554ca<_0x2009d9[_0x8059('0x4e')]['ids'][_0x8059('0x37')];_0x1554ca+=0x1){socket[_0x8059('0x6c')]('userVoicePrefix:save',{'UserId':Number(_0x2009d9['body'][_0x8059('0x6b')][_0x1554ca]),'VoicePrefixId':Number(_0x2009d9['params']['id'])});}return _0x4b31cb;});}})['then'](respondWithResult(_0xb36842,null))[_0x8059('0x45')](handleError(_0xb36842,null));};exports[_0x8059('0x6d')]=function(_0x230c39,_0x3be51a,_0x55257a){return db['VoicePrefix'][_0x8059('0x49')]({'where':{'id':_0x230c39[_0x8059('0x47')]['id']}})[_0x8059('0x21')](handleEntityNotFound(_0x3be51a,null))[_0x8059('0x21')](function(_0x1611d0){if(_0x1611d0){return _0x1611d0[_0x8059('0x6d')](_0x230c39['query']['ids'])[_0x8059('0x21')](function(){if(_[_0x8059('0x6e')](_0x230c39[_0x8059('0x31')]['ids'])){for(var _0x25bae4=0x0;_0x25bae4<_0x230c39[_0x8059('0x31')]['ids'][_0x8059('0x37')];_0x25bae4+=0x1){socket[_0x8059('0x6c')]('userVoicePrefix:remove',{'UserId':Number(_0x230c39[_0x8059('0x31')][_0x8059('0x6b')][_0x25bae4]),'VoicePrefixId':Number(_0x230c39[_0x8059('0x47')]['id'])});}}else{socket[_0x8059('0x6c')](_0x8059('0x6f'),{'UserId':Number(_0x230c39[_0x8059('0x31')][_0x8059('0x6b')]),'VoicePrefixId':Number(_0x230c39[_0x8059('0x47')]['id'])});}});}})[_0x8059('0x21')](respondWithStatusCode(_0x3be51a,null))['catch'](handleError(_0x3be51a,null));};exports['getAgents']=function(_0x1b9f1a,_0x1452ed,_0x3fbdbe){var _0x32c6f2={};var _0x1a92c9={};var _0x29715f;var _0x5f3d1a;return db[_0x8059('0x42')][_0x8059('0x70')]({'where':{'id':_0x1b9f1a[_0x8059('0x47')]['id']}})['then'](handleEntityNotFound(_0x1452ed,null))[_0x8059('0x21')](function(_0x3c3b4d){if(_0x3c3b4d){_0x29715f=_0x3c3b4d;_0x1a92c9[_0x8059('0x30')]=_[_0x8059('0x32')](db[_0x8059('0x71')][_0x8059('0x2c')]);_0x1a92c9[_0x8059('0x31')]=_[_0x8059('0x32')](_0x1b9f1a[_0x8059('0x31')]);_0x1a92c9[_0x8059('0x33')]=_[_0x8059('0x34')](_0x1a92c9[_0x8059('0x30')],_0x1a92c9[_0x8059('0x31')]);_0x32c6f2[_0x8059('0x36')]=_[_0x8059('0x34')](_0x1a92c9['model'],qs[_0x8059('0x35')](_0x1b9f1a[_0x8059('0x31')]['fields']));_0x32c6f2[_0x8059('0x36')]=_0x32c6f2['attributes'][_0x8059('0x37')]?_0x32c6f2[_0x8059('0x36')]:_0x1a92c9[_0x8059('0x30')];_0x32c6f2[_0x8059('0x72')]=qs[_0x8059('0x39')](_0x1b9f1a[_0x8059('0x31')][_0x8059('0x39')]);_0x32c6f2[_0x8059('0x3a')]=qs[_0x8059('0x33')](_[_0x8059('0x3b')](_0x1b9f1a[_0x8059('0x31')],_0x1a92c9[_0x8059('0x33')]));if(_0x1b9f1a['query']['filter']){_0x32c6f2[_0x8059('0x3a')]=_[_0x8059('0x3e')](_0x32c6f2['where'],{'$or':_[_0x8059('0x2b')](_0x32c6f2['attributes'],function(_0x27fb1c){var _0x33e2e9={};_0x33e2e9[_0x27fb1c]={'$like':'%'+_0x1b9f1a[_0x8059('0x31')][_0x8059('0x3d')]+'%'};return _0x33e2e9;})});}_0x32c6f2=_[_0x8059('0x3e')]({},_0x32c6f2,_0x1b9f1a[_0x8059('0x48')]);return _0x29715f[_0x8059('0x73')](_0x32c6f2);}})[_0x8059('0x21')](function(_0x403f68){if(_0x403f68){_0x5f3d1a=_0x403f68[_0x8059('0x37')];if(!_0x1b9f1a['query'][_0x8059('0x38')](_0x8059('0x74'))){_0x32c6f2['limit']=qs[_0x8059('0x1c')](_0x1b9f1a[_0x8059('0x31')][_0x8059('0x1c')]);_0x32c6f2[_0x8059('0x1a')]=qs[_0x8059('0x1a')](_0x1b9f1a['query'][_0x8059('0x1a')]);}return _0x29715f[_0x8059('0x73')](_0x32c6f2);}})[_0x8059('0x21')](function(_0x360f2d){if(_0x360f2d){return _0x360f2d?{'count':_0x5f3d1a,'rows':_0x360f2d}:null;}})['then'](respondWithResult(_0x1452ed,null))[_0x8059('0x45')](handleError(_0x1452ed,null));};exports[_0x8059('0x75')]=function(_0x6356ed,_0x36c21b,_0x299b67){var _0x43388b={};var _0x29e863={};var _0x3ac878;var _0x163883;return db[_0x8059('0x42')]['findOne']({'where':{'id':_0x6356ed[_0x8059('0x47')]['id']}})[_0x8059('0x21')](handleEntityNotFound(_0x36c21b,null))[_0x8059('0x21')](function(_0x3fe77d){if(_0x3fe77d){_0x3ac878=_0x3fe77d;_0x29e863[_0x8059('0x30')]=_[_0x8059('0x32')](db[_0x8059('0x76')][_0x8059('0x2c')]);_0x29e863[_0x8059('0x31')]=_[_0x8059('0x32')](_0x6356ed['query']);_0x29e863[_0x8059('0x33')]=_[_0x8059('0x34')](_0x29e863[_0x8059('0x30')],_0x29e863[_0x8059('0x31')]);_0x43388b[_0x8059('0x36')]=_[_0x8059('0x34')](_0x29e863['model'],qs['fields'](_0x6356ed[_0x8059('0x31')]['fields']));_0x43388b['attributes']=_0x43388b['attributes'][_0x8059('0x37')]?_0x43388b[_0x8059('0x36')]:_0x29e863[_0x8059('0x30')];_0x43388b[_0x8059('0x72')]=qs['sort'](_0x6356ed[_0x8059('0x31')][_0x8059('0x39')]);_0x43388b[_0x8059('0x3a')]=qs[_0x8059('0x33')](_[_0x8059('0x3b')](_0x6356ed[_0x8059('0x31')],_0x29e863['filters']));if(_0x6356ed[_0x8059('0x31')][_0x8059('0x3d')]){_0x43388b[_0x8059('0x3a')]=_[_0x8059('0x3e')](_0x43388b[_0x8059('0x3a')],{'$or':_[_0x8059('0x2b')](_0x43388b[_0x8059('0x36')],function(_0x1c2e18){var _0x15a50f={};_0x15a50f[_0x1c2e18]={'$like':'%'+_0x6356ed[_0x8059('0x31')][_0x8059('0x3d')]+'%'};return _0x15a50f;})});}_0x43388b=_[_0x8059('0x3e')]({},_0x43388b,_0x6356ed[_0x8059('0x48')]);return _0x3ac878[_0x8059('0x75')](_0x43388b);}})['then'](function(_0x26f318){if(_0x26f318){_0x163883=_0x26f318[_0x8059('0x37')];if(!_0x6356ed[_0x8059('0x31')][_0x8059('0x38')]('nolimit')){_0x43388b['limit']=qs['limit'](_0x6356ed['query'][_0x8059('0x1c')]);_0x43388b[_0x8059('0x1a')]=qs[_0x8059('0x1a')](_0x6356ed[_0x8059('0x31')][_0x8059('0x1a')]);}return _0x3ac878[_0x8059('0x75')](_0x43388b);}})[_0x8059('0x21')](function(_0x2ec671){if(_0x2ec671){return _0x2ec671?{'count':_0x163883,'rows':_0x2ec671}:null;}})[_0x8059('0x21')](respondWithResult(_0x36c21b,null))[_0x8059('0x45')](handleError(_0x36c21b,null));};exports[_0x8059('0x77')]=function(_0x28a925,_0x4bc6a7,_0x11462a){var _0x42378f=_0x28a925[_0x8059('0x4e')][_0x8059('0x6b')];var _0x5369dd;return db[_0x8059('0x76')][_0x8059('0x43')]({'where':{'id':_0x42378f},'attributes':['id'],'include':[{'model':db['User'],'as':_0x8059('0x78'),'attributes':['id','name',_0x8059('0x79'),_0x8059('0x7a'),_0x8059('0x7b')],'raw':!![]}]})[_0x8059('0x21')](function(_0x23c4ce){if(_0x23c4ce){_0x5369dd=_0x23c4ce;var _0x179a1a=_[_0x8059('0x7c')](_0x23c4ce,function(_0x485ca3){var _0x234f25=_0x485ca3[_0x8059('0x23')]({'plain':!![]});return _0x234f25[_0x8059('0x78')];});return db[_0x8059('0x42')][_0x8059('0x49')]({'where':{'id':_0x28a925[_0x8059('0x47')]['id']}})[_0x8059('0x21')](function(_0x59d597){return db[_0x8059('0x4b')]['transaction'](function(_0x396e77){return _0x59d597[_0x8059('0x77')](_0x42378f,{'transaction':_0x396e77})[_0x8059('0x21')](function(){return BPromise[_0x8059('0x7d')](_0x5369dd,function(_0x554d39){return db[_0x8059('0x7e')][_0x8059('0x7f')]({'TeamId':_0x554d39['id'],'VoicePrefixId':_0x28a925['params']['id']},{'transaction':_0x396e77});});})['then'](function(){return BPromise[_0x8059('0x7d')](_0x179a1a,function(_0x52dc27){return db[_0x8059('0x80')][_0x8059('0x81')]({'where':{'UserId':_0x52dc27['id'],'VoicePrefixId':_0x28a925[_0x8059('0x47')]['id']},'transaction':_0x396e77});});})[_0x8059('0x21')](function(){_0x179a1a[_0x8059('0x82')](function(_0x4f5235){socket['emit']('userVoicePrefix:save',{'UserId':_0x4f5235['id'],'VoicePrefixId':_0x59d597['id']});});});});});}})['then'](respondWithStatusCode(_0x4bc6a7,null))[_0x8059('0x45')](handleError(_0x4bc6a7,null));};exports[_0x8059('0x83')]=function(_0x3741b9,_0x59feb8,_0x390e92){return db[_0x8059('0x76')][_0x8059('0x43')]({'where':{'id':_0x3741b9[_0x8059('0x31')][_0x8059('0x6b')]},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x59feb8,null))[_0x8059('0x21')](function(_0xe6758c){var _0x11b71b=_[_0x8059('0x2b')](_0xe6758c,'id');var _0x4cc1c0=[];var _0x4e1ca4=[];var _0x5282b2=squel[_0x8059('0x84')]();_0x5282b2[_0x8059('0x85')]('tq.TeamId')[_0x8059('0x86')](_0x8059('0x87'),'tq')[_0x8059('0x88')](_0x8059('0x89'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0x8059('0x3a')](_0x8059('0x8a'),_0x3741b9[_0x8059('0x47')]['id']);for(var _0xdd7d0d=0x0;_0xdd7d0d<_0xe6758c[_0x8059('0x37')];_0xdd7d0d+=0x1){let _0x1922be=_0xe6758c[_0xdd7d0d];for(var _0x1baaba=0x0;_0x1baaba<_0x1922be[_0x8059('0x78')][_0x8059('0x37')];_0x1baaba+=0x1){let _0x4ca098=_0x1922be[_0x8059('0x78')][_0x1baaba];var _0x1e5ff8=_0x5282b2[_0x8059('0x8b')]();_0x1e5ff8['where']('ut.UserId\x20=\x20?',_0x4ca098['id']);_0x4e1ca4['push'](db[_0x8059('0x4b')][_0x8059('0x31')](_0x1e5ff8[_0x8059('0x8c')](),{'type':db[_0x8059('0x4b')][_0x8059('0x8d')][_0x8059('0x8e')]})[_0x8059('0x21')](function(_0x31fa7f){if(_0x31fa7f[_0x8059('0x37')]===0x1){return _0x4ca098['id'];}else{var _0x38dc0d=_[_0x8059('0x8f')](_['map'](_0x31fa7f,'TeamId'),function(_0x2b6c58){return _['includes'](_0x11b71b,_0x2b6c58);});if(_0x38dc0d){return _0x4ca098['id'];}}}));}}return BPromise[_0x8059('0x90')](_0x4e1ca4)[_0x8059('0x21')](function(_0xbe8fb){_0x4cc1c0=_(_0x4cc1c0)[_0x8059('0x91')](_0xbe8fb)[_0x8059('0x92')]()[_0x8059('0x93')]();return db['VoicePrefix'][_0x8059('0x49')]({'where':{'id':_0x3741b9[_0x8059('0x47')]['id']}})[_0x8059('0x21')](function(_0x3a5e9a){return db[_0x8059('0x4b')][_0x8059('0x4c')](function(_0x13dcc1){return _0x3a5e9a[_0x8059('0x83')](_0x3741b9[_0x8059('0x31')][_0x8059('0x6b')],{'transaction':_0x13dcc1})[_0x8059('0x21')](function(){if(!_[_0x8059('0x94')](_0x4cc1c0)){return _0x3a5e9a[_0x8059('0x6d')](_0x4cc1c0,{'transaction':_0x13dcc1});}})[_0x8059('0x21')](function(){_0x4cc1c0['forEach'](function(_0x3be218){socket['emit']('userVoicePrefix:remove',{'UserId':_0x3be218,'VoicePrefixId':_0x3a5e9a['id']});});});});});});})['then'](respondWithStatusCode(_0x59feb8,null))[_0x8059('0x45')](handleError(_0x59feb8,null));};
\ No newline at end of file
+var _0xa9cd=['Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','from-sip','app','system','description','Voice\x20Prefix\x20Extension','priority','appdata','prefix','NoOp','VoicePrefixId','bulkCreate','Set','CDR(prefix)=','callerIdAll','push','PREFIX-CALLERIDALL=','goto','context','update','system-','findById','addAgents','omit','spread','ids','userVoicePrefix:save','removeAgents','isArray','userVoicePrefix:remove','findOne','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','redis','defaults','localhost','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','save','then','get','VoicePrefixes','UserProfileResource','error','send','index','map','VoicePrefix','rawAttributes','fieldName','key','name','keys','query','filters','model','attributes','intersection','fields','length','nolimit','order','sort','where','pick','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','destroy','find','params','describe','create','sequelize','transaction','body','VoiceExtension','VoiceExtensionId','user'];(function(_0x528372,_0x1bc4c8){var _0x2e2c58=function(_0x188584){while(--_0x188584){_0x528372['push'](_0x528372['shift']());}};_0x2e2c58(++_0x1bc4c8);}(_0xa9cd,0x187));var _0xda9c=function(_0x8eac40,_0x4f4549){_0x8eac40=_0x8eac40-0x0;var _0x23f256=_0xa9cd[_0x8eac40];return _0x23f256;};'use strict';var emlformat=require(_0xda9c('0x0'));var rimraf=require(_0xda9c('0x1'));var zipdir=require(_0xda9c('0x2'));var jsonpatch=require(_0xda9c('0x3'));var rp=require(_0xda9c('0x4'));var moment=require(_0xda9c('0x5'));var BPromise=require(_0xda9c('0x6'));var Mustache=require(_0xda9c('0x7'));var util=require('util');var path=require(_0xda9c('0x8'));var sox=require(_0xda9c('0x9'));var csv=require(_0xda9c('0xa'));var ejs=require(_0xda9c('0xb'));var fs=require('fs');var fs_extra=require(_0xda9c('0xc'));var _=require(_0xda9c('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xda9c('0xe'));var toCsv=require(_0xda9c('0xa'));var querystring=require(_0xda9c('0xf'));var Papa=require(_0xda9c('0x10'));var Redis=require('ioredis');var authService=require(_0xda9c('0x11'));var qs=require(_0xda9c('0x12'));var as=require(_0xda9c('0x13'));var hardwareService=require(_0xda9c('0x14'));var logger=require(_0xda9c('0x15'))('api');var utils=require(_0xda9c('0x16'));var config=require(_0xda9c('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xda9c('0x18')]=_[_0xda9c('0x19')](config[_0xda9c('0x18')],{'host':_0xda9c('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xda9c('0x18')]));require('./voicePrefix.socket')['register'](socket);function respondWithStatusCode(_0x463c3f,_0x7bc0e8){_0x7bc0e8=_0x7bc0e8||0xcc;return function(_0x1c1e70){if(_0x1c1e70){return _0x463c3f[_0xda9c('0x1b')](_0x7bc0e8);}return _0x463c3f[_0xda9c('0x1c')](_0x7bc0e8)['end']();};}function respondWithResult(_0x3b2eb3,_0x2a2b11){_0x2a2b11=_0x2a2b11||0xc8;return function(_0x15c257){if(_0x15c257){return _0x3b2eb3[_0xda9c('0x1c')](_0x2a2b11)[_0xda9c('0x1d')](_0x15c257);}};}function respondWithFilteredResult(_0x120be1,_0x1e2bae){return function(_0x470c5a){if(_0x470c5a){var _0x502ac0=typeof _0x1e2bae[_0xda9c('0x1e')]===_0xda9c('0x1f')&&typeof _0x1e2bae['limit']===_0xda9c('0x1f');var _0x5bc4e1=_0x470c5a[_0xda9c('0x20')];var _0x5fd257=_0x502ac0?0x0:_0x1e2bae[_0xda9c('0x1e')];var _0x12e058=_0x502ac0?_0x470c5a[_0xda9c('0x20')]:_0x1e2bae['offset']+_0x1e2bae[_0xda9c('0x21')];var _0x4e220c;if(_0x12e058>=_0x5bc4e1){_0x12e058=_0x5bc4e1;_0x4e220c=0xc8;}else{_0x4e220c=0xce;}_0x120be1[_0xda9c('0x1c')](_0x4e220c);return _0x120be1[_0xda9c('0x22')](_0xda9c('0x23'),_0x5fd257+'-'+_0x12e058+'/'+_0x5bc4e1)[_0xda9c('0x1d')](_0x470c5a);}return null;};}function patchUpdates(_0x17ade1){return function(_0xb09c09){try{jsonpatch['apply'](_0xb09c09,_0x17ade1,!![]);}catch(_0x2e409e){return BPromise['reject'](_0x2e409e);}return _0xb09c09[_0xda9c('0x24')]();};}function saveUpdates(_0x4361e2,_0x2abfcd){return function(_0x2f3b5b){if(_0x2f3b5b){return _0x2f3b5b['update'](_0x4361e2)['then'](function(_0x3be0c8){return _0x3be0c8;});}return null;};}function removeEntity(_0x188907,_0x19d6b4){return function(_0x30c4b5){if(_0x30c4b5){return _0x30c4b5['destroy']()[_0xda9c('0x25')](function(){var _0x115211=_0x30c4b5[_0xda9c('0x26')]({'plain':!![]});var _0x17d6d5=_0xda9c('0x27');return db[_0xda9c('0x28')]['destroy']({'where':{'type':_0x17d6d5,'resourceId':_0x115211['id']}})[_0xda9c('0x25')](function(){return _0x30c4b5;});})['then'](function(){_0x188907[_0xda9c('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x149018,_0x230952){return function(_0x2e2a71){if(!_0x2e2a71){_0x149018[_0xda9c('0x1b')](0x194);}return _0x2e2a71;};}function handleError(_0x5a3a11,_0xd21b6a){_0xd21b6a=_0xd21b6a||0x1f4;return function(_0x27abae){logger[_0xda9c('0x29')](_0x27abae['stack']);if(_0x27abae['name']){delete _0x27abae['name'];}_0x5a3a11[_0xda9c('0x1c')](_0xd21b6a)[_0xda9c('0x2a')](_0x27abae);};}exports[_0xda9c('0x2b')]=function(_0x272ae2,_0x20082d){var _0x192ecd={},_0x1b1515={},_0x39c998={'count':0x0,'rows':[]};var _0x24fee1=_[_0xda9c('0x2c')](db[_0xda9c('0x2d')][_0xda9c('0x2e')],function(_0x5a0dc8){return{'name':_0x5a0dc8[_0xda9c('0x2f')],'type':_0x5a0dc8['type'][_0xda9c('0x30')]};});_0x1b1515['model']=_['map'](_0x24fee1,_0xda9c('0x31'));_0x1b1515['query']=_[_0xda9c('0x32')](_0x272ae2[_0xda9c('0x33')]);_0x1b1515[_0xda9c('0x34')]=_['intersection'](_0x1b1515[_0xda9c('0x35')],_0x1b1515[_0xda9c('0x33')]);_0x192ecd[_0xda9c('0x36')]=_[_0xda9c('0x37')](_0x1b1515[_0xda9c('0x35')],qs[_0xda9c('0x38')](_0x272ae2[_0xda9c('0x33')][_0xda9c('0x38')]));_0x192ecd[_0xda9c('0x36')]=_0x192ecd[_0xda9c('0x36')][_0xda9c('0x39')]?_0x192ecd[_0xda9c('0x36')]:_0x1b1515['model'];if(!_0x272ae2['query']['hasOwnProperty'](_0xda9c('0x3a'))){_0x192ecd[_0xda9c('0x21')]=qs['limit'](_0x272ae2[_0xda9c('0x33')][_0xda9c('0x21')]);_0x192ecd[_0xda9c('0x1e')]=qs[_0xda9c('0x1e')](_0x272ae2[_0xda9c('0x33')][_0xda9c('0x1e')]);}_0x192ecd[_0xda9c('0x3b')]=qs[_0xda9c('0x3c')](_0x272ae2[_0xda9c('0x33')][_0xda9c('0x3c')]);_0x192ecd[_0xda9c('0x3d')]=qs[_0xda9c('0x34')](_[_0xda9c('0x3e')](_0x272ae2[_0xda9c('0x33')],_0x1b1515[_0xda9c('0x34')]),_0x24fee1);if(_0x272ae2[_0xda9c('0x33')][_0xda9c('0x3f')]){_0x192ecd[_0xda9c('0x3d')]=_['merge'](_0x192ecd[_0xda9c('0x3d')],{'$or':_['map'](_0x24fee1,function(_0x38df31){if(_0x38df31[_0xda9c('0x40')]!==_0xda9c('0x41')){var _0x516eaa={};_0x516eaa[_0x38df31['name']]={'$like':'%'+_0x272ae2['query']['filter']+'%'};return _0x516eaa;}})});}_0x192ecd=_[_0xda9c('0x42')]({},_0x192ecd,_0x272ae2[_0xda9c('0x43')]);var _0x1e0d75={'where':_0x192ecd[_0xda9c('0x3d')]};return db[_0xda9c('0x2d')][_0xda9c('0x20')](_0x1e0d75)['then'](function(_0x1f4468){_0x39c998[_0xda9c('0x20')]=_0x1f4468;if(_0x272ae2['query'][_0xda9c('0x44')]){_0x192ecd[_0xda9c('0x45')]=[{'all':!![]}];}return db[_0xda9c('0x2d')][_0xda9c('0x46')](_0x192ecd);})['then'](function(_0x24e284){_0x39c998[_0xda9c('0x47')]=_0x24e284;return _0x39c998;})[_0xda9c('0x25')](respondWithFilteredResult(_0x20082d,_0x192ecd))[_0xda9c('0x48')](handleError(_0x20082d,null));};exports[_0xda9c('0x49')]=function(_0x3b718f,_0x43f293){var _0x1eb20a={'raw':![],'where':{'id':_0x3b718f['params']['id']}},_0x40a2dc={};_0x40a2dc[_0xda9c('0x35')]=_[_0xda9c('0x32')](db[_0xda9c('0x2d')][_0xda9c('0x2e')]);_0x40a2dc['query']=_[_0xda9c('0x32')](_0x3b718f[_0xda9c('0x33')]);_0x40a2dc[_0xda9c('0x34')]=_[_0xda9c('0x37')](_0x40a2dc[_0xda9c('0x35')],_0x40a2dc['query']);_0x1eb20a['attributes']=_['intersection'](_0x40a2dc[_0xda9c('0x35')],qs[_0xda9c('0x38')](_0x3b718f[_0xda9c('0x33')][_0xda9c('0x38')]));_0x1eb20a[_0xda9c('0x36')]=_0x1eb20a[_0xda9c('0x36')][_0xda9c('0x39')]?_0x1eb20a[_0xda9c('0x36')]:_0x40a2dc[_0xda9c('0x35')];if(_0x3b718f[_0xda9c('0x33')][_0xda9c('0x44')]){_0x1eb20a[_0xda9c('0x45')]=[{'all':!![]}];}_0x1eb20a=_[_0xda9c('0x42')]({},_0x1eb20a,_0x3b718f['options']);return db['VoicePrefix']['find'](_0x1eb20a)[_0xda9c('0x25')](handleEntityNotFound(_0x43f293,null))['then'](respondWithResult(_0x43f293,null))[_0xda9c('0x48')](handleError(_0x43f293,null));};exports[_0xda9c('0x4a')]=function(_0x317352,_0x3ba598){return db[_0xda9c('0x2d')][_0xda9c('0x4b')]({'where':{'id':_0x317352[_0xda9c('0x4c')]['id']}})[_0xda9c('0x25')](handleEntityNotFound(_0x3ba598,null))[_0xda9c('0x25')](removeEntity(_0x3ba598,null))[_0xda9c('0x48')](handleError(_0x3ba598,null));};exports[_0xda9c('0x4d')]=function(_0xec66a0,_0x2902d4){return db[_0xda9c('0x2d')][_0xda9c('0x4d')]()['then'](respondWithResult(_0x2902d4,null))[_0xda9c('0x48')](handleError(_0x2902d4,null));};exports[_0xda9c('0x4e')]=function(_0x4ec816,_0x475d3f){var _0x589674;return db[_0xda9c('0x4f')][_0xda9c('0x50')](function(_0x254a34){return db[_0xda9c('0x2d')]['create'](_0x4ec816[_0xda9c('0x51')],{'transaction':_0x254a34})[_0xda9c('0x25')](function(_0x1fe927){_0x589674=_0x1fe927[_0xda9c('0x26')]({'plain':!![]});return db[_0xda9c('0x52')]['find']({'where':{'id':_0x589674[_0xda9c('0x53')]},'raw':!![]})[_0xda9c('0x25')](function(_0x2ea8d7){return createVoicePrefixExtensions(_0x589674,_0x2ea8d7,_0x254a34);});});})[_0xda9c('0x25')](function(){var _0x4e2ca4=_0x4ec816[_0xda9c('0x54')][_0xda9c('0x26')]({'plain':!![]});if(!_0x4e2ca4)throw new Error(_0xda9c('0x55'));if(_0x4e2ca4[_0xda9c('0x56')]===_0xda9c('0x54')){var _0x2816f8=_0x589674;return db['UserProfileSection']['find']({'where':{'name':_0xda9c('0x27'),'userProfileId':_0x4e2ca4[_0xda9c('0x57')]},'raw':!![]})[_0xda9c('0x25')](function(_0x35a0d1){if(_0x35a0d1&&_0x35a0d1['autoAssociation']===0x0){return db[_0xda9c('0x28')][_0xda9c('0x4e')]({'name':_0x2816f8[_0xda9c('0x31')],'resourceId':_0x2816f8['id'],'type':_0x35a0d1[_0xda9c('0x31')],'sectionId':_0x35a0d1['id']},{})['then'](function(){return _0x589674;});}else{return _0x589674;}})[_0xda9c('0x48')](function(_0x4d8f87){logger[_0xda9c('0x29')](_0xda9c('0x58'),_0x4d8f87);throw _0x4d8f87;});}return _0x589674;})[_0xda9c('0x25')](respondWithResult(_0x475d3f,null))['catch'](handleError(_0x475d3f,null));};function Extension(_0x16c299,_0x2f898c,_0x4122cd,_0x2e3ee3){this['context']=_0xda9c('0x59');this['exten']=_0x16c299;this[_0xda9c('0x5a')]=_0x4122cd;this['type']=_0xda9c('0x5b');this[_0xda9c('0x5c')]=_0xda9c('0x5d');this[_0xda9c('0x5e')]=_0x2f898c;this[_0xda9c('0x5f')]=_0x2e3ee3;}function createVoicePrefixExtensions(_0x4d2a0c,_0x43b880,_0xb2651e){return new BPromise(function(_0x5285ef,_0x5f488e){var _0x4283db=new Extension(formatPrefixName(_0x4d2a0c[_0xda9c('0x60')]),0x1,_0xda9c('0x61'),'Voice\x20Prefix');_0x4283db['VoicePrefixId']=_0x4d2a0c['id'];return db[_0xda9c('0x52')][_0xda9c('0x4e')](_0x4283db,{'transaction':_0xb2651e})[_0xda9c('0x25')](function(_0x41cc80){var _0x5542ff=_0x41cc80['get']({'plain':!![]});var _0x32ebd8=_[_0xda9c('0x2c')](addVoicePrefixExtensions(_0x4d2a0c,_0x43b880),function(_0x192f4f){_0x192f4f[_0xda9c('0x53')]=_0x5542ff['id'];_0x192f4f[_0xda9c('0x62')]=_0x4d2a0c['id'];return _0x192f4f;});return db[_0xda9c('0x52')][_0xda9c('0x63')](_0x32ebd8,{'transaction':_0xb2651e})[_0xda9c('0x25')](function(_0x1a76f9){if(!_0x1a76f9){return _0x5f488e('Extensions\x20creation\x20failed');}else{return _0x5285ef(_0x1a76f9);}})[_0xda9c('0x48')](function(_0x29d1f2){return _0x5f488e(_0x29d1f2);});});;});};function addVoicePrefixExtensions(_0x5bf841,_0x5f7bd8){var _0x30853e=[];var _0xb11155=formatPrefixName(_0x5bf841[_0xda9c('0x60')]);_0x30853e['push'](new Extension(_0xb11155,0x2,_0xda9c('0x64'),_0xda9c('0x65')+_0x5bf841['name']));if(_0x5bf841[_0xda9c('0x66')]){_0x30853e[_0xda9c('0x67')](new Extension(_0xb11155,0x3,_0xda9c('0x64'),_0xda9c('0x68')+_0x5bf841['callerIdAll']));}else{_0x30853e[_0xda9c('0x67')](new Extension(_0xb11155,0x3,_0xda9c('0x61'),'No\x20callerid\x20available'));}_0x30853e['push'](new Extension(_0xb11155,0x4,_0xda9c('0x69'),_0x5f7bd8[_0xda9c('0x6a')]+','+'${EXTEN:'+(0x8+_0x5bf841[_0xda9c('0x31')][_0xda9c('0x39')])+'}'+','+0x1));return _0x30853e;}function formatPrefixName(_0xe82a58){var _0x5b1232='_';for(var _0xfbbe82=0x0;_0xfbbe82<_0xe82a58[_0xda9c('0x39')];_0xfbbe82++){if(_0xe82a58['charAt'](_0xfbbe82)=='-'){_0x5b1232+=_0xe82a58['charAt'](_0xfbbe82);}else{_0x5b1232+='['+_0xe82a58['charAt'](_0xfbbe82)+']';}}_0x5b1232+='.';return _0x5b1232;}exports[_0xda9c('0x6b')]=function(_0x3a1cbb,_0x5b74af,_0x3639dc){var _0x3374d1=_0x3a1cbb['body'];_0x3374d1[_0xda9c('0x60')]=_0xda9c('0x6c')+_0x3374d1[_0xda9c('0x31')]+'-';return db[_0xda9c('0x4f')][_0xda9c('0x50')](function(_0x21a29a){return db[_0xda9c('0x2d')]['update'](_0x3374d1,{'where':{'id':_0x3374d1['id']},'transaction':_0x21a29a})[_0xda9c('0x25')](function(){return db['VoiceExtension'][_0xda9c('0x4a')]({'where':{'VoicePrefixId':_0x3374d1['id']},'transaction':_0x21a29a})[_0xda9c('0x25')](function(){return db[_0xda9c('0x52')]['find']({'where':{'id':_0x3374d1[_0xda9c('0x53')]},'raw':!![]})[_0xda9c('0x25')](function(_0x597b43){return createVoicePrefixExtensions(_0x3374d1,_0x597b43,_0x21a29a);});});});})['then'](function(){return db[_0xda9c('0x2d')][_0xda9c('0x6d')](_0x3374d1['id']);})[_0xda9c('0x25')](respondWithResult(_0x5b74af,null))[_0xda9c('0x48')](handleError(_0x5b74af,null));};exports[_0xda9c('0x6e')]=function(_0x5703f8,_0x2f3c1e,_0x3e82be){return db[_0xda9c('0x2d')][_0xda9c('0x4b')]({'where':{'id':_0x5703f8['params']['id']}})[_0xda9c('0x25')](handleEntityNotFound(_0x2f3c1e,null))['then'](function(_0x12d9b3){if(_0x12d9b3){return _0x12d9b3[_0xda9c('0x6e')](_0x5703f8[_0xda9c('0x51')]['ids'],_[_0xda9c('0x6f')](_0x5703f8[_0xda9c('0x51')],['ids','id'])||{})[_0xda9c('0x70')](function(_0x16e88b){for(var _0x101d10=0x0;_0x101d10<_0x5703f8[_0xda9c('0x51')][_0xda9c('0x71')][_0xda9c('0x39')];_0x101d10+=0x1){socket['emit'](_0xda9c('0x72'),{'UserId':Number(_0x5703f8[_0xda9c('0x51')][_0xda9c('0x71')][_0x101d10]),'VoicePrefixId':Number(_0x5703f8['params']['id'])});}return _0x16e88b;});}})[_0xda9c('0x25')](respondWithResult(_0x2f3c1e,null))[_0xda9c('0x48')](handleError(_0x2f3c1e,null));};exports['removeAgents']=function(_0x43eb96,_0x1a9529,_0x433f04){return db[_0xda9c('0x2d')]['find']({'where':{'id':_0x43eb96[_0xda9c('0x4c')]['id']}})[_0xda9c('0x25')](handleEntityNotFound(_0x1a9529,null))[_0xda9c('0x25')](function(_0x4bbe2b){if(_0x4bbe2b){return _0x4bbe2b[_0xda9c('0x73')](_0x43eb96[_0xda9c('0x33')]['ids'])[_0xda9c('0x25')](function(){if(_[_0xda9c('0x74')](_0x43eb96[_0xda9c('0x33')][_0xda9c('0x71')])){for(var _0x90bad5=0x0;_0x90bad5<_0x43eb96[_0xda9c('0x33')][_0xda9c('0x71')][_0xda9c('0x39')];_0x90bad5+=0x1){socket['emit'](_0xda9c('0x75'),{'UserId':Number(_0x43eb96[_0xda9c('0x33')][_0xda9c('0x71')][_0x90bad5]),'VoicePrefixId':Number(_0x43eb96['params']['id'])});}}else{socket['emit']('userVoicePrefix:remove',{'UserId':Number(_0x43eb96[_0xda9c('0x33')][_0xda9c('0x71')]),'VoicePrefixId':Number(_0x43eb96[_0xda9c('0x4c')]['id'])});}});}})[_0xda9c('0x25')](respondWithStatusCode(_0x1a9529,null))['catch'](handleError(_0x1a9529,null));};exports['getAgents']=function(_0x271743,_0x50478d,_0x2dd6b9){var _0xe82adf={};var _0x1af598={};var _0x1a42a1;var _0x5de303;return db[_0xda9c('0x2d')][_0xda9c('0x76')]({'where':{'id':_0x271743[_0xda9c('0x4c')]['id']}})['then'](handleEntityNotFound(_0x50478d,null))[_0xda9c('0x25')](function(_0x2b3db8){if(_0x2b3db8){_0x1a42a1=_0x2b3db8;_0x1af598[_0xda9c('0x35')]=_[_0xda9c('0x32')](db['User'][_0xda9c('0x2e')]);_0x1af598[_0xda9c('0x33')]=_['keys'](_0x271743[_0xda9c('0x33')]);_0x1af598[_0xda9c('0x34')]=_[_0xda9c('0x37')](_0x1af598['model'],_0x1af598['query']);_0xe82adf[_0xda9c('0x36')]=_[_0xda9c('0x37')](_0x1af598[_0xda9c('0x35')],qs[_0xda9c('0x38')](_0x271743[_0xda9c('0x33')]['fields']));_0xe82adf[_0xda9c('0x36')]=_0xe82adf['attributes']['length']?_0xe82adf[_0xda9c('0x36')]:_0x1af598[_0xda9c('0x35')];_0xe82adf[_0xda9c('0x3b')]=qs[_0xda9c('0x3c')](_0x271743[_0xda9c('0x33')][_0xda9c('0x3c')]);_0xe82adf[_0xda9c('0x3d')]=qs['filters'](_[_0xda9c('0x3e')](_0x271743[_0xda9c('0x33')],_0x1af598[_0xda9c('0x34')]));if(_0x271743[_0xda9c('0x33')][_0xda9c('0x3f')]){_0xe82adf[_0xda9c('0x3d')]=_[_0xda9c('0x42')](_0xe82adf[_0xda9c('0x3d')],{'$or':_['map'](_0xe82adf['attributes'],function(_0x3971e8){var _0x4a96ab={};_0x4a96ab[_0x3971e8]={'$like':'%'+_0x271743[_0xda9c('0x33')][_0xda9c('0x3f')]+'%'};return _0x4a96ab;})});}_0xe82adf=_[_0xda9c('0x42')]({},_0xe82adf,_0x271743[_0xda9c('0x43')]);return _0x1a42a1['getAgents'](_0xe82adf);}})[_0xda9c('0x25')](function(_0x2341de){if(_0x2341de){_0x5de303=_0x2341de['length'];if(!_0x271743[_0xda9c('0x33')]['hasOwnProperty']('nolimit')){_0xe82adf['limit']=qs[_0xda9c('0x21')](_0x271743['query'][_0xda9c('0x21')]);_0xe82adf['offset']=qs[_0xda9c('0x1e')](_0x271743[_0xda9c('0x33')][_0xda9c('0x1e')]);}return _0x1a42a1['getAgents'](_0xe82adf);}})[_0xda9c('0x25')](function(_0x16ff81){if(_0x16ff81){return _0x16ff81?{'count':_0x5de303,'rows':_0x16ff81}:null;}})[_0xda9c('0x25')](respondWithResult(_0x50478d,null))[_0xda9c('0x48')](handleError(_0x50478d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x422f=['update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','VoicePrefix','setMaxListeners','save'];(function(_0x2ad925,_0x24f451){var _0x1d8732=function(_0x27349c){while(--_0x27349c){_0x2ad925['push'](_0x2ad925['shift']());}};_0x1d8732(++_0x24f451);}(_0x422f,0xe2));var _0xf422=function(_0x3e646e,_0x1e30a8){_0x3e646e=_0x3e646e-0x0;var _0xd997cc=_0x422f[_0x3e646e];return _0xd997cc;};'use strict';var EventEmitter=require(_0xf422('0x0'));var VoicePrefix=require(_0xf422('0x1'))['db'][_0xf422('0x2')];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents[_0xf422('0x3')](0x0);var events={'afterCreate':_0xf422('0x4'),'afterUpdate':_0xf422('0x5'),'afterDestroy':_0xf422('0x6')};function emitEvent(_0x50ec28){return function(_0x5e7c9f,_0x494cc4,_0x1d03aa){VoicePrefixEvents[_0xf422('0x7')](_0x50ec28+':'+_0x5e7c9f['id'],_0x5e7c9f);VoicePrefixEvents[_0xf422('0x7')](_0x50ec28,_0x5e7c9f);_0x1d03aa(null);};}for(var e in events){if(events[_0xf422('0x8')](e)){var event=events[e];VoicePrefix[_0xf422('0x9')](e,emitEvent(event));}}module[_0xf422('0xa')]=VoicePrefixEvents;
\ No newline at end of file
+var _0x63ef=['VoicePrefix','update','remove','emit','hasOwnProperty','exports','events'];(function(_0x32f9ca,_0x2fa8bc){var _0x52e083=function(_0x4fd86a){while(--_0x4fd86a){_0x32f9ca['push'](_0x32f9ca['shift']());}};_0x52e083(++_0x2fa8bc);}(_0x63ef,0xdf));var _0xf63e=function(_0x1a0600,_0x41feef){_0x1a0600=_0x1a0600-0x0;var _0x734670=_0x63ef[_0x1a0600];return _0x734670;};'use strict';var EventEmitter=require(_0xf63e('0x0'));var VoicePrefix=require('../../mysqldb')['db'][_0xf63e('0x1')];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0xf63e('0x2'),'afterDestroy':_0xf63e('0x3')};function emitEvent(_0x31ecc3){return function(_0x3ba2ce,_0x5465c4,_0x30ff04){VoicePrefixEvents['emit'](_0x31ecc3+':'+_0x3ba2ce['id'],_0x3ba2ce);VoicePrefixEvents[_0xf63e('0x4')](_0x31ecc3,_0x3ba2ce);_0x30ff04(null);};}for(var e in events){if(events[_0xf63e('0x5')](e)){var event=events[e];VoicePrefix['hook'](e,emitEvent(event));}}module[_0xf63e('0x6')]=VoicePrefixEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x340e=['VoicePrefix','voice_prefixes','lodash','../../config/logger','api','moment','request-promise','rimraf','../../config/environment','./voicePrefix.attributes','exports','define'];(function(_0x2446ef,_0x5b42d5){var _0x53e0a9=function(_0xd9637b){while(--_0xd9637b){_0x2446ef['push'](_0x2446ef['shift']());}};_0x53e0a9(++_0x5b42d5);}(_0x340e,0x152));var _0xe340=function(_0x48020c,_0x37053e){_0x48020c=_0x48020c-0x0;var _0x28fe9a=_0x340e[_0x48020c];return _0x28fe9a;};'use strict';var _=require(_0xe340('0x0'));var util=require('util');var logger=require(_0xe340('0x1'))(_0xe340('0x2'));var moment=require(_0xe340('0x3'));var BPromise=require('bluebird');var rp=require(_0xe340('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xe340('0x5'));var config=require(_0xe340('0x6'));var attributes=require(_0xe340('0x7'));module[_0xe340('0x8')]=function(_0x4b4a9a,_0x3d419b){return _0x4b4a9a[_0xe340('0x9')](_0xe340('0xa'),attributes,{'tableName':_0xe340('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x06f4=['bluebird','request-promise','rimraf','../../config/environment','./voicePrefix.attributes','define','voice_prefixes','util','api','moment'];(function(_0x47a9ab,_0x211f5b){var _0x5e58c6=function(_0x3e2a7f){while(--_0x3e2a7f){_0x47a9ab['push'](_0x47a9ab['shift']());}};_0x5e58c6(++_0x211f5b);}(_0x06f4,0x15b));var _0x406f=function(_0x4a5a2e,_0x2a550a){_0x4a5a2e=_0x4a5a2e-0x0;var _0x5b1c8c=_0x06f4[_0x4a5a2e];return _0x5b1c8c;};'use strict';var _=require('lodash');var util=require(_0x406f('0x0'));var logger=require('../../config/logger')(_0x406f('0x1'));var moment=require(_0x406f('0x2'));var BPromise=require(_0x406f('0x3'));var rp=require(_0x406f('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x406f('0x5'));var config=require(_0x406f('0x6'));var attributes=require(_0x406f('0x7'));module['exports']=function(_0x1d1a12,_0x1e2cd8){return _0x1d1a12[_0x406f('0x8')]('VoicePrefix',attributes,{'tableName':_0x406f('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ca4=['socket.io-emitter','register','request','then','VoicePrefix,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis'];(function(_0x5ab4ea,_0x4de43f){var _0x3824f0=function(_0x2b3046){while(--_0x2b3046){_0x5ab4ea['push'](_0x5ab4ea['shift']());}};_0x3824f0(++_0x4de43f);}(_0x4ca4,0x100));var _0x44ca=function(_0x5c0506,_0x88e89b){_0x5c0506=_0x5c0506-0x0;var _0x1d6432=_0x4ca4[_0x5c0506];return _0x1d6432;};'use strict';var _=require(_0x44ca('0x0'));var util=require(_0x44ca('0x1'));var moment=require(_0x44ca('0x2'));var BPromise=require(_0x44ca('0x3'));var rs=require(_0x44ca('0x4'));var fs=require('fs');var Redis=require(_0x44ca('0x5'));var db=require(_0x44ca('0x6'))['db'];var utils=require(_0x44ca('0x7'));var logger=require('../../config/logger')(_0x44ca('0x8'));var config=require(_0x44ca('0x9'));var jayson=require(_0x44ca('0xa'));var client=jayson[_0x44ca('0xb')][_0x44ca('0xc')]({'port':0x232a});config[_0x44ca('0xd')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x44ca('0xe'))(new Redis(config[_0x44ca('0xd')]));require('./voicePrefix.socket')[_0x44ca('0xf')](socket);function respondWithRpcPromise(_0x5e3b2b,_0x4b16de,_0x89a1c5){return new BPromise(function(_0x12e21e,_0xe84c65){return client[_0x44ca('0x10')](_0x5e3b2b,_0x89a1c5)[_0x44ca('0x11')](function(_0x48c477){logger['info'](_0x44ca('0x12'),_0x4b16de,_0x44ca('0x13'));logger['debug']('VoicePrefix,\x20%s,\x20%s,\x20%s',_0x4b16de,_0x44ca('0x13'),JSON[_0x44ca('0x14')](_0x48c477));if(_0x48c477[_0x44ca('0x15')]){if(_0x48c477[_0x44ca('0x15')][_0x44ca('0x16')]===0x1f4){logger[_0x44ca('0x15')](_0x44ca('0x12'),_0x4b16de,_0x48c477[_0x44ca('0x15')]['message']);return _0xe84c65(_0x48c477[_0x44ca('0x15')][_0x44ca('0x17')]);}logger['error'](_0x44ca('0x12'),_0x4b16de,_0x48c477[_0x44ca('0x15')]['message']);return _0x12e21e(_0x48c477[_0x44ca('0x15')][_0x44ca('0x17')]);}else{logger[_0x44ca('0x18')](_0x44ca('0x12'),_0x4b16de,_0x44ca('0x13'));_0x12e21e(_0x48c477[_0x44ca('0x19')][_0x44ca('0x17')]);}})[_0x44ca('0x1a')](function(_0x22e86c){logger['error'](_0x44ca('0x12'),_0x4b16de,_0x22e86c);_0xe84c65(_0x22e86c);});});}
\ No newline at end of file
+var _0x8f6b=['localhost','./voicePrefix.socket','register','request','then','info','VoicePrefix,\x20%s,\x20%s','debug','VoicePrefix,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','client','redis'];(function(_0x121689,_0xfc6372){var _0x4ad7a5=function(_0xfd576){while(--_0xfd576){_0x121689['push'](_0x121689['shift']());}};_0x4ad7a5(++_0xfc6372);}(_0x8f6b,0x146));var _0xb8f6=function(_0x5783f4,_0x4a9e0a){_0x5783f4=_0x5783f4-0x0;var _0x28e380=_0x8f6b[_0x5783f4];return _0x28e380;};'use strict';var _=require(_0xb8f6('0x0'));var util=require(_0xb8f6('0x1'));var moment=require(_0xb8f6('0x2'));var BPromise=require('bluebird');var rs=require(_0xb8f6('0x3'));var fs=require('fs');var Redis=require(_0xb8f6('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xb8f6('0x5'));var logger=require(_0xb8f6('0x6'))('rpc');var config=require(_0xb8f6('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xb8f6('0x8')]['http']({'port':0x232a});config[_0xb8f6('0x9')]=_['defaults'](config[_0xb8f6('0x9')],{'host':_0xb8f6('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xb8f6('0xb'))[_0xb8f6('0xc')](socket);function respondWithRpcPromise(_0x14cc71,_0x379ed5,_0x165d17){return new BPromise(function(_0x3f8e2a,_0x210f71){return client[_0xb8f6('0xd')](_0x14cc71,_0x165d17)[_0xb8f6('0xe')](function(_0x2ef5c1){logger[_0xb8f6('0xf')](_0xb8f6('0x10'),_0x379ed5,'request\x20sent');logger[_0xb8f6('0x11')](_0xb8f6('0x12'),_0x379ed5,'request\x20sent',JSON[_0xb8f6('0x13')](_0x2ef5c1));if(_0x2ef5c1[_0xb8f6('0x14')]){if(_0x2ef5c1[_0xb8f6('0x14')]['code']===0x1f4){logger[_0xb8f6('0x14')]('VoicePrefix,\x20%s,\x20%s',_0x379ed5,_0x2ef5c1[_0xb8f6('0x14')][_0xb8f6('0x15')]);return _0x210f71(_0x2ef5c1['error']['message']);}logger[_0xb8f6('0x14')](_0xb8f6('0x10'),_0x379ed5,_0x2ef5c1[_0xb8f6('0x14')][_0xb8f6('0x15')]);return _0x3f8e2a(_0x2ef5c1[_0xb8f6('0x14')][_0xb8f6('0x15')]);}else{logger[_0xb8f6('0xf')](_0xb8f6('0x10'),_0x379ed5,_0xb8f6('0x16'));_0x3f8e2a(_0x2ef5c1['result']['message']);}})[_0xb8f6('0x17')](function(_0x4566c5){logger[_0xb8f6('0x14')](_0xb8f6('0x10'),_0x379ed5,_0x4566c5);_0x210f71(_0x4566c5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac72=['register','length','voicePrefix:','./voicePrefix.events','save','remove','emit','removeListener'];(function(_0x4db769,_0x52ddfc){var _0x66a468=function(_0x395879){while(--_0x395879){_0x4db769['push'](_0x4db769['shift']());}};_0x66a468(++_0x52ddfc);}(_0xac72,0x1eb));var _0x2ac7=function(_0x3521c0,_0xe26d99){_0x3521c0=_0x3521c0-0x0;var _0x4380e3=_0xac72[_0x3521c0];return _0x4380e3;};'use strict';var VoicePrefixEvents=require(_0x2ac7('0x0'));var events=[_0x2ac7('0x1'),_0x2ac7('0x2'),'update'];function createListener(_0x164d24,_0x2620d6){return function(_0x6eda17){_0x2620d6[_0x2ac7('0x3')](_0x164d24,_0x6eda17);};}function removeListener(_0x238ae5,_0x38dc98){return function(){VoicePrefixEvents[_0x2ac7('0x4')](_0x238ae5,_0x38dc98);};}exports[_0x2ac7('0x5')]=function(_0x2c56b0){for(var _0x28add9=0x0,_0x4e11a4=events[_0x2ac7('0x6')];_0x28add9<_0x4e11a4;_0x28add9++){var _0xf836e2=events[_0x28add9];var _0x5055f1=createListener(_0x2ac7('0x7')+_0xf836e2,_0x2c56b0);VoicePrefixEvents['on'](_0xf836e2,_0x5055f1);}};
\ No newline at end of file
+var _0x61a5=['voicePrefix:','./voicePrefix.events','remove','update','emit','removeListener','register'];(function(_0xb4d92f,_0x5647a7){var _0x42d5fb=function(_0xd3b9f5){while(--_0xd3b9f5){_0xb4d92f['push'](_0xb4d92f['shift']());}};_0x42d5fb(++_0x5647a7);}(_0x61a5,0x19e));var _0x561a=function(_0x308a1d,_0x3d379d){_0x308a1d=_0x308a1d-0x0;var _0x5eb875=_0x61a5[_0x308a1d];return _0x5eb875;};'use strict';var VoicePrefixEvents=require(_0x561a('0x0'));var events=['save',_0x561a('0x1'),_0x561a('0x2')];function createListener(_0x59e06d,_0x28d449){return function(_0x5754b1){_0x28d449[_0x561a('0x3')](_0x59e06d,_0x5754b1);};}function removeListener(_0x526edf,_0x1d8bd8){return function(){VoicePrefixEvents[_0x561a('0x4')](_0x526edf,_0x1d8bd8);};}exports[_0x561a('0x5')]=function(_0x28ff42){for(var _0x1e2ce1=0x0,_0x2a763a=events['length'];_0x1e2ce1<_0x2a763a;_0x1e2ce1++){var _0x3d020c=events[_0x1e2ce1];var _0x27e026=createListener(_0x561a('0x6')+_0x3d020c,_0x28ff42);VoicePrefixEvents['on'](_0x3d020c,_0x27e026);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueue.controller','get','index','isAuthenticated','show','/:id/hoppers','getHoppers','/:id/hopper_histories','/:id/hopper_finals','getHopperBlacks','/:id/teams','getTeams','/:id/users','getAgents','/:id/members','getMembers','/:id/lists','/:id/blacklists','getBlackLists','post','create','/:id/clone','addTeams','addAgents','addLists','addBlackLists','put','/:id','update','delete','removeTeams','removeAgents','removeLists','removeBlackLists','exports','multer','path','connect-timeout'];(function(_0xd02def,_0x144f25){var _0x2e8374=function(_0x5ceb35){while(--_0x5ceb35){_0xd02def['push'](_0xd02def['shift']());}};_0x2e8374(++_0x144f25);}(_0xb10b,0x12a));var _0xbb10=function(_0x4b87dc,_0x65bfba){_0x4b87dc=_0x4b87dc-0x0;var _0x4c3b12=_0xb10b[_0x4b87dc];return _0x4c3b12;};'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('0x9')](_0xbb10('0xf'),auth['isAuthenticated'](),controller['getHopperHistories']);router[_0xbb10('0x9')](_0xbb10('0x10'),auth[_0xbb10('0xb')](),controller['getHopperFinals']);router[_0xbb10('0x9')]('/:id/hopper_black',auth[_0xbb10('0xb')](),controller[_0xbb10('0x11')]);router[_0xbb10('0x9')](_0xbb10('0x12'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x13')]);router['get'](_0xbb10('0x14'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x15')]);router[_0xbb10('0x9')](_0xbb10('0x16'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x17')]);router[_0xbb10('0x9')](_0xbb10('0x18'),auth[_0xbb10('0xb')](),controller['getLists']);router[_0xbb10('0x9')](_0xbb10('0x19'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x1a')]);router[_0xbb10('0x1b')]('/',auth[_0xbb10('0xb')](),controller[_0xbb10('0x1c')]);router[_0xbb10('0x1b')](_0xbb10('0x1d'),auth[_0xbb10('0xb')](),controller['clone']);router[_0xbb10('0x1b')](_0xbb10('0x12'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x1e')]);router[_0xbb10('0x1b')](_0xbb10('0x14'),auth['isAuthenticated'](),controller[_0xbb10('0x1f')]);router[_0xbb10('0x1b')]('/:id/lists',auth['isAuthenticated'](),controller[_0xbb10('0x20')]);router[_0xbb10('0x1b')](_0xbb10('0x19'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x21')]);router[_0xbb10('0x22')](_0xbb10('0x23'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x24')]);router[_0xbb10('0x25')](_0xbb10('0x23'),auth[_0xbb10('0xb')](),controller['destroy']);router['delete']('/:id/teams',auth[_0xbb10('0xb')](),controller[_0xbb10('0x26')]);router[_0xbb10('0x25')]('/:id/users',auth[_0xbb10('0xb')](),controller[_0xbb10('0x27')]);router[_0xbb10('0x25')](_0xbb10('0x18'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x28')]);router[_0xbb10('0x25')]('/:id/blacklists',auth[_0xbb10('0xb')](),controller[_0xbb10('0x29')]);module[_0xbb10('0x2a')]=router;
\ No newline at end of file
+var _0x3405=['get','isAuthenticated','index','/:id','getHoppers','/:id/hopper_histories','/:id/hopper_finals','getHopperFinals','getHopperBlacks','getTeams','/:id/users','getAgents','getMembers','/:id/lists','getLists','/:id/blacklists','post','/:id/clone','clone','addTeams','addAgents','addLists','update','delete','destroy','/:id/teams','removeTeams','removeLists','removeBlackLists','exports','multer','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueue.controller'];(function(_0x1671be,_0x386112){var _0x2cae40=function(_0x166a70){while(--_0x166a70){_0x1671be['push'](_0x1671be['shift']());}};_0x2cae40(++_0x386112);}(_0x3405,0x6a));var _0x5340=function(_0x220f3f,_0x11c540){_0x220f3f=_0x220f3f-0x0;var _0x1f170e=_0x3405[_0x220f3f];return _0x1f170e;};'use strict';var multer=require(_0x5340('0x0'));var util=require('util');var path=require(_0x5340('0x1'));var timeout=require(_0x5340('0x2'));var express=require(_0x5340('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x5340('0x4'));var interaction=require(_0x5340('0x5'));var config=require(_0x5340('0x6'));var controller=require(_0x5340('0x7'));router[_0x5340('0x8')]('/',auth[_0x5340('0x9')](),controller[_0x5340('0xa')]);router[_0x5340('0x8')](_0x5340('0xb'),auth[_0x5340('0x9')](),controller['show']);router['get']('/:id/hoppers',auth[_0x5340('0x9')](),controller[_0x5340('0xc')]);router[_0x5340('0x8')](_0x5340('0xd'),auth[_0x5340('0x9')](),controller['getHopperHistories']);router[_0x5340('0x8')](_0x5340('0xe'),auth[_0x5340('0x9')](),controller[_0x5340('0xf')]);router[_0x5340('0x8')]('/:id/hopper_black',auth[_0x5340('0x9')](),controller[_0x5340('0x10')]);router[_0x5340('0x8')]('/:id/teams',auth[_0x5340('0x9')](),controller[_0x5340('0x11')]);router[_0x5340('0x8')](_0x5340('0x12'),auth[_0x5340('0x9')](),controller[_0x5340('0x13')]);router[_0x5340('0x8')]('/:id/members',auth[_0x5340('0x9')](),controller[_0x5340('0x14')]);router[_0x5340('0x8')](_0x5340('0x15'),auth[_0x5340('0x9')](),controller[_0x5340('0x16')]);router[_0x5340('0x8')](_0x5340('0x17'),auth[_0x5340('0x9')](),controller['getBlackLists']);router[_0x5340('0x18')]('/',auth['isAuthenticated'](),controller['create']);router[_0x5340('0x18')](_0x5340('0x19'),auth[_0x5340('0x9')](),controller[_0x5340('0x1a')]);router['post']('/:id/teams',auth[_0x5340('0x9')](),controller[_0x5340('0x1b')]);router[_0x5340('0x18')]('/:id/users',auth[_0x5340('0x9')](),controller[_0x5340('0x1c')]);router['post']('/:id/lists',auth[_0x5340('0x9')](),controller[_0x5340('0x1d')]);router[_0x5340('0x18')](_0x5340('0x17'),auth[_0x5340('0x9')](),controller['addBlackLists']);router['put'](_0x5340('0xb'),auth[_0x5340('0x9')](),controller[_0x5340('0x1e')]);router[_0x5340('0x1f')](_0x5340('0xb'),auth[_0x5340('0x9')](),controller[_0x5340('0x20')]);router[_0x5340('0x1f')](_0x5340('0x21'),auth['isAuthenticated'](),controller[_0x5340('0x22')]);router[_0x5340('0x1f')](_0x5340('0x12'),auth[_0x5340('0x9')](),controller['removeAgents']);router[_0x5340('0x1f')](_0x5340('0x15'),auth[_0x5340('0x9')](),controller[_0x5340('0x23')]);router[_0x5340('0x1f')](_0x5340('0x17'),auth[_0x5340('0x9')](),controller[_0x5340('0x24')]);module[_0x5340('0x25')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd1c2=['once','periodic_announce','join','joinempty','split','leavewhenempty','BOOLEAN','acw','Active/Disactive\x20Campaign','preview','Dial\x20Method.','UNSIGNED','Max\x209999\x20channels,\x200\x20means\x20unlimited.','Max\x209999\x20member\x20in\x20queue(min:1,\x20max:9999),\x200\x20means\x20unlimited.','FLOAT','Power\x20Level:\x20Calls\x20for\x20agents\x20(min:1,\x20max:10).','agentBusyFactor','Only\x20for\x20predictive\x20method.','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','tTxX','https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue','Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','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)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','never','onlyIfOpen','always','Active/Disactive\x20AMD','#AMD\x20Initial\x20Silence','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Maximum\x20Word\x20Length','#RecallMe\x20Timeout\x20(min:1)','Active/Disactive\x20Recall\x20In\x20Queue','DESC','ASC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','#Machine\x20Retry\x20(min:1,\x20max:999)','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','random','rrmemory','wrandom','setDataValue','strategy','type','dialMethod','getDataValue','booked','roundrobin','progressive','predictive','power','INTEGER','yes','all'];(function(_0x5124cd,_0xd00cea){var _0x1f4e4e=function(_0x18ba36){while(--_0x18ba36){_0x5124cd['push'](_0x5124cd['shift']());}};_0x1f4e4e(++_0xd00cea);}(_0xd1c2,0x80));var _0x2d1c=function(_0x481a30,_0xe87adf){_0x481a30=_0x481a30-0x0;var _0x16dda5=_0xd1c2[_0x481a30];return _0x16dda5;};'use strict';var Sequelize=require(_0x2d1c('0x0'));module[_0x2d1c('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x2d1c('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x4'),'outbound'),'allowNull':![],'defaultValue':_0x2d1c('0x4')},'musiconhold':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':_0x2d1c('0x6')},'announce':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':''},'strategy':{'type':Sequelize[_0x2d1c('0x3')]('rr',_0x2d1c('0x7'),'leastrecent','fewestcalls',_0x2d1c('0x8'),_0x2d1c('0x9'),'linear',_0x2d1c('0xa'),'rrordered'),'allowNull':![],'defaultValue':_0x2d1c('0x7'),'set':function(_0xb7a843){this[_0x2d1c('0xb')](_0x2d1c('0xc'),_0xb7a843?_0xb7a843:'rrmemory');},'get':function(){var _0x5daa15=this['getDataValue'](_0x2d1c('0xd'));var _0x2fc72f=this['getDataValue'](_0x2d1c('0xe'));var _0x5215a0=this[_0x2d1c('0xf')]('strategy');if(_0x5daa15===_0x2d1c('0x4')){return _0x5215a0;}if(_0x2fc72f===_0x2d1c('0x10')&&_0x5215a0===_0x2d1c('0x9')||_0x2fc72f==='booked'&&_0x5215a0===_0x2d1c('0x11')){return _0x5215a0;}if(_0x2fc72f===_0x2d1c('0x12')||_0x2fc72f===_0x2d1c('0x13')||_0x2fc72f===_0x2d1c('0x14')){return _0x5215a0;}return null;}},'servicelevel':{'type':Sequelize[_0x2d1c('0x15')](0xb),'defaultValue':0x0},'context':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize[_0x2d1c('0x15')](0xb)},'timeout':{'type':Sequelize[_0x2d1c('0x15')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize['STRING']},'weight':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x16'),'no'),'defaultValue':_0x2d1c('0x16')},'autopause':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x16'),'no',_0x2d1c('0x17')),'defaultValue':'no'},'autopausedelay':{'type':Sequelize[_0x2d1c('0x15')](0xb)},'autopausebusy':{'type':Sequelize[_0x2d1c('0x3')]('yes','no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x16'),'no'),'defaultValue':'no'},'maxlen':{'type':Sequelize[_0x2d1c('0x15')](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x16'),'no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0x2d1c('0x3')]('yes','no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x16'),'no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize['ENUM'](_0x2d1c('0x16'),'no'),'defaultValue':'no'},'membermacro':{'type':Sequelize['STRING'],'allowNull':!![]},'membergosub':{'type':Sequelize[_0x2d1c('0x5')],'allowNull':!![]},'announce_frequency':{'type':Sequelize[_0x2d1c('0x15')](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0x2d1c('0x15')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x16'),'no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x16'),'no'),'defaultValue':_0x2d1c('0x16')},'announce_holdtime':{'type':Sequelize['ENUM'](_0x2d1c('0x16'),'no',_0x2d1c('0x18')),'defaultValue':'no'},'announce_position':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize['ENUM'](_0x2d1c('0x16'),'no')},'announce_position_limit':{'type':Sequelize[_0x2d1c('0x15')](0xb)},'announce_round_seconds':{'type':Sequelize[_0x2d1c('0x3')]('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':''},'monitor_type':{'type':Sequelize[_0x2d1c('0x5')]},'queue_youarenext':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':null},'queue_thereare':{'type':Sequelize['STRING'],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':null},'queue_holdtime':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':null},'queue_minute':{'type':Sequelize[_0x2d1c('0x5')],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':null},'queue_seconds':{'type':Sequelize['STRING'],'defaultValue':null},'queue_thankyou':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':null},'queue_reporthold':{'type':Sequelize['STRING']},'queue_quantity1':{'type':Sequelize[_0x2d1c('0x5')]},'queue_quantity2':{'type':Sequelize[_0x2d1c('0x5')]},'queue_periodic_announce':{'type':Sequelize[_0x2d1c('0x5')]},'queue_less_than':{'type':Sequelize[_0x2d1c('0x5')]},'periodic_announce':{'type':Sequelize['TEXT'],'set':function(_0x1d28e6){this['setDataValue'](_0x2d1c('0x19'),_0x1d28e6?_0x1d28e6[_0x2d1c('0x1a')](','):[]);},'get':function(){return this[_0x2d1c('0xf')](_0x2d1c('0x19'))?this[_0x2d1c('0xf')](_0x2d1c('0x19'))['split'](','):[];}},'joinempty':{'type':Sequelize['STRING'],'defaultValue':_0x2d1c('0x16'),'set':function(_0x496ac0){this[_0x2d1c('0xb')](_0x2d1c('0x1b'),_0x496ac0?_0x496ac0[_0x2d1c('0x1a')](','):undefined);},'get':function(){return this[_0x2d1c('0xf')](_0x2d1c('0x1b'))?this[_0x2d1c('0xf')]('joinempty')[_0x2d1c('0x1c')](','):undefined;}},'leavewhenempty':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':'no','set':function(_0x30b314){this[_0x2d1c('0xb')](_0x2d1c('0x1d'),_0x30b314?_0x30b314[_0x2d1c('0x1a')](','):undefined);},'get':function(){return this[_0x2d1c('0xf')](_0x2d1c('0x1d'))?this[_0x2d1c('0xf')](_0x2d1c('0x1d'))['split'](','):undefined;}},'reportholdtime':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x16'),'no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x16'),'no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize['ENUM'](_0x2d1c('0x16'),'no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize[_0x2d1c('0x5')]},'description':{'type':Sequelize[_0x2d1c('0x5')]},'acw':{'type':Sequelize[_0x2d1c('0x1e')],'defaultValue':0x0,'set':function(_0x40e28c){this['setDataValue'](_0x2d1c('0x1f'),_0x40e28c);if(_0x40e28c){if(this[_0x2d1c('0xf')]('wrapuptime')<0x2){this[_0x2d1c('0xb')]('wrapuptime',0x2);}}}},'acwTimeout':{'type':Sequelize[_0x2d1c('0x15')](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x2d1c('0x20')},'dialMethod':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x21'),_0x2d1c('0x12'),'power',_0x2d1c('0x13'),'booked'),'defaultValue':_0x2d1c('0x12'),'comment':_0x2d1c('0x22')},'dialLimitChannel':{'type':Sequelize[_0x2d1c('0x15')](0x4)[_0x2d1c('0x23')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x2d1c('0x24')},'dialLimitQueue':{'type':Sequelize[_0x2d1c('0x15')](0x4)['UNSIGNED'],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x2d1c('0x25')},'dialPowerLevel':{'type':Sequelize[_0x2d1c('0x26')](0x2)['UNSIGNED'],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0x2d1c('0x27')},'dialPredictiveOptimization':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x28'),'dropRate'),'defaultValue':'dropRate','comment':_0x2d1c('0x29')},'dialPredictiveOptimizationPercentage':{'type':Sequelize[_0x2d1c('0x26')](0x2)[_0x2d1c('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':'Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)'},'dialPredictiveInterval':{'type':Sequelize[_0x2d1c('0x15')](0x3)[_0x2d1c('0x23')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0x2d1c('0x2a')},'dialOriginateCallerIdName':{'type':Sequelize[_0x2d1c('0x5')]},'dialOriginateCallerIdNumber':{'type':Sequelize['STRING']},'dialOriginateTimeout':{'type':Sequelize[_0x2d1c('0x15')](0x3)['UNSIGNED'],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':'Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialQueueOptions':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':_0x2d1c('0x2b'),'comment':_0x2d1c('0x2c')},'dialQueueTimeout':{'type':Sequelize['INTEGER'](0x3)[_0x2d1c('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x2d1c('0x2d')},'dialQueueProject':{'type':Sequelize[_0x2d1c('0x5')],'comment':_0x2d1c('0x2e')},'dialCongestionMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x2d1c('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x2d1c('0x2f')},'dialCongestionRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x2d1c('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x2d1c('0x30')},'dialBusyMaxRetry':{'type':Sequelize[_0x2d1c('0x15')](0x3)[_0x2d1c('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x2d1c('0x31')},'dialBusyRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x2d1c('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x2d1c('0x32')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0x2d1c('0x15')](0x3)[_0x2d1c('0x23')],'defaultValue':0x3,'comment':_0x2d1c('0x33')},'dialNoAnswerRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x2d1c('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialGlobalMaxRetry':{'type':Sequelize[_0x2d1c('0x15')](0x3)[_0x2d1c('0x23')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':'#Global\x20Max\x20Retry\x20(min:1,\x20max:999)'},'dialTimezone':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x2d1c('0x5')],'defaultValue':_0x2d1c('0x34')},'dialPrefix':{'type':Sequelize['STRING'],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize[_0x2d1c('0x3')]('always',_0x2d1c('0x35'),_0x2d1c('0x36')),'defaultValue':_0x2d1c('0x37')},'dialAMDActive':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x2d1c('0x38')},'dialAMDInitialSilence':{'type':Sequelize[_0x2d1c('0x15')](0x9)[_0x2d1c('0x23')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x2d1c('0x39')},'dialAMDGreeting':{'type':Sequelize['INTEGER'](0x9)[_0x2d1c('0x23')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':'#AMD\x20Greeting'},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x2d1c('0x15')](0x9)[_0x2d1c('0x23')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x2d1c('0x3a')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x2d1c('0x15')](0x9)[_0x2d1c('0x23')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x2d1c('0x3b')},'dialAMDMinWordLength':{'type':Sequelize[_0x2d1c('0x15')](0x9)[_0x2d1c('0x23')],'defaultValue':0x64,'validate':{'min':0x0},'comment':'#AMD\x20Min\x20Word\x20Length'},'dialAMDBetweenWordsSilence':{'type':Sequelize['INTEGER'](0x9)[_0x2d1c('0x23')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x2d1c('0x3c')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0x2d1c('0x15')](0x9)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0x2d1c('0x3d')},'dialAMDSilenceThreshold':{'type':Sequelize[_0x2d1c('0x15')](0x5)['UNSIGNED'],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':'#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)'},'dialAMDMaximumWordLength':{'type':Sequelize[_0x2d1c('0x15')](0x9)[_0x2d1c('0x23')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x2d1c('0x3e')},'dialRecallMeTimeout':{'type':Sequelize['INTEGER'](0x5)[_0x2d1c('0x23')],'validate':{'min':0x1},'defaultValue':0x1e,'comment':_0x2d1c('0x3f')},'dialRecallInQueue':{'type':Sequelize[_0x2d1c('0x1e')],'defaultValue':0x0,'comment':_0x2d1c('0x40')},'dialOrderByScheduledAt':{'type':Sequelize[_0x2d1c('0x3')](_0x2d1c('0x41'),_0x2d1c('0x42')),'defaultValue':_0x2d1c('0x41')},'dialQueueProject2':{'type':Sequelize[_0x2d1c('0x5')],'comment':'AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)'},'dialAgiAfterHangupClient':{'type':Sequelize[_0x2d1c('0x1e')],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x2d1c('0x15')](0x3)[_0x2d1c('0x23')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x2d1c('0x43')},'dialCutDigit':{'type':Sequelize[_0x2d1c('0x15')](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Cut\x20Digit\x20(min:1,\x20max:15)'},'dialNoSuchNumberMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x2d1c('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)'},'dialNoSuchNumberRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x2d1c('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialDropMaxRetry':{'type':Sequelize[_0x2d1c('0x15')](0x3)[_0x2d1c('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Drop\x20Retry\x20(min:1,\x20max:999)'},'dialDropRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x2d1c('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x2d1c('0x44')},'dialAbandonedMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x2d1c('0x45')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x2d1c('0x15')](0x5)[_0x2d1c('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialMachineMaxRetry':{'type':Sequelize[_0x2d1c('0x15')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x2d1c('0x46')},'dialMachineRetryFrequency':{'type':Sequelize[_0x2d1c('0x15')](0x5)[_0x2d1c('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x2d1c('0x47')},'dialAgentRejectMaxRetry':{'type':Sequelize[_0x2d1c('0x15')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x2d1c('0x48')},'dialAgentRejectRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x2d1c('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'mandatoryDispositionPauseId':{'type':Sequelize[_0x2d1c('0x15')],'allowNull':!![],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0x2d1c('0x49'),'set':function(_0x280fd9){if(!_0x280fd9)this['setDataValue'](_0x2d1c('0x4a'),null);this['setDataValue'](_0x2d1c('0x4b'),_0x280fd9);}},'dialPredictiveIntervalMaxThreshold':{'type':Sequelize[_0x2d1c('0x15')](0x3)[_0x2d1c('0x23')],'defaultValue':0x14,'validate':{'min':0x1,'max':0x64}},'dialPredictiveIntervalMinThreshold':{'type':Sequelize[_0x2d1c('0x15')](0x3)[_0x2d1c('0x23')],'defaultValue':0xa,'validate':{'min':0x1,'max':0x64}},'dialPreviewAutoRecallMe':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0x2b83=['FLOAT','agentBusyFactor','dropRate','Only\x20for\x20predictive\x20method.','Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)','Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)','#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)','onlyIfOpen','always','Active/Disactive\x20AMD','#AMD\x20Initial\x20Silence','#AMD\x20Greeting','#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)','#RecallMe\x20Timeout\x20(min:1)','DESC','ASC','Random\x20Last\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\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Machine\x20Retry\x20(min:1,\x20max:999)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','mandatoryDisposition','exports','STRING','ENUM','inbound','outbound','default','ringall','fewestcalls','random','rrmemory','linear','rrordered','strategy','getDataValue','type','dialMethod','roundrobin','progressive','predictive','power','INTEGER','yes','all','once','TEXT','setDataValue','periodic_announce','join','split','joinempty','leavewhenempty','BOOLEAN','acw','Active/Disactive\x20Campaign','Dial\x20Method.','UNSIGNED','Max\x209999\x20member\x20in\x20queue(min:1,\x20max:9999),\x200\x20means\x20unlimited.'];(function(_0x14a729,_0x326ba7){var _0x4a672d=function(_0x136353){while(--_0x136353){_0x14a729['push'](_0x14a729['shift']());}};_0x4a672d(++_0x326ba7);}(_0x2b83,0x1d3));var _0x32b8=function(_0x15c2cb,_0x4c514e){_0x15c2cb=_0x15c2cb-0x0;var _0x5eb6e7=_0x2b83[_0x15c2cb];return _0x5eb6e7;};'use strict';var Sequelize=require('sequelize');module[_0x32b8('0x0')]={'name':{'type':Sequelize[_0x32b8('0x1')],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x32b8('0x2')](_0x32b8('0x3'),_0x32b8('0x4')),'allowNull':![],'defaultValue':'inbound'},'musiconhold':{'type':Sequelize['STRING'],'defaultValue':_0x32b8('0x5')},'announce':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':''},'strategy':{'type':Sequelize['ENUM']('rr',_0x32b8('0x6'),'leastrecent',_0x32b8('0x7'),_0x32b8('0x8'),_0x32b8('0x9'),_0x32b8('0xa'),'wrandom',_0x32b8('0xb')),'allowNull':![],'defaultValue':_0x32b8('0x6'),'set':function(_0x48257a){this['setDataValue'](_0x32b8('0xc'),_0x48257a?_0x48257a:'rrmemory');},'get':function(){var _0x10e421=this[_0x32b8('0xd')](_0x32b8('0xe'));var _0x3d3ca6=this['getDataValue'](_0x32b8('0xf'));var _0x3b6bc6=this['getDataValue']('strategy');if(_0x10e421===_0x32b8('0x3')){return _0x3b6bc6;}if(_0x3d3ca6==='booked'&&_0x3b6bc6===_0x32b8('0x9')||_0x3d3ca6==='booked'&&_0x3b6bc6===_0x32b8('0x10')){return _0x3b6bc6;}if(_0x3d3ca6===_0x32b8('0x11')||_0x3d3ca6===_0x32b8('0x12')||_0x3d3ca6===_0x32b8('0x13')){return _0x3b6bc6;}return null;}},'servicelevel':{'type':Sequelize[_0x32b8('0x14')](0xb),'defaultValue':0x0},'context':{'type':Sequelize['STRING'],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize['INTEGER'](0xb)},'timeout':{'type':Sequelize[_0x32b8('0x14')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize['STRING']},'weight':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize[_0x32b8('0x14')](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0x32b8('0x15')},'autopause':{'type':Sequelize[_0x32b8('0x2')](_0x32b8('0x15'),'no',_0x32b8('0x16')),'defaultValue':'no'},'autopausedelay':{'type':Sequelize['INTEGER'](0xb)},'autopausebusy':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize[_0x32b8('0x2')](_0x32b8('0x15'),'no'),'defaultValue':'no'},'maxlen':{'type':Sequelize[_0x32b8('0x14')](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0x32b8('0x2')]('yes','no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0x32b8('0x2')](_0x32b8('0x15'),'no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0x32b8('0x2')](_0x32b8('0x15'),'no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize[_0x32b8('0x2')](_0x32b8('0x15'),'no'),'defaultValue':'no'},'membermacro':{'type':Sequelize[_0x32b8('0x1')],'allowNull':!![]},'membergosub':{'type':Sequelize[_0x32b8('0x1')],'allowNull':!![]},'announce_frequency':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0x32b8('0x14')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize['ENUM'](_0x32b8('0x15'),'no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize['ENUM'](_0x32b8('0x15'),'no'),'defaultValue':_0x32b8('0x15')},'announce_holdtime':{'type':Sequelize[_0x32b8('0x2')](_0x32b8('0x15'),'no',_0x32b8('0x17')),'defaultValue':'no'},'announce_position':{'type':Sequelize['STRING'],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize[_0x32b8('0x2')](_0x32b8('0x15'),'no')},'announce_position_limit':{'type':Sequelize[_0x32b8('0x14')](0xb)},'announce_round_seconds':{'type':Sequelize[_0x32b8('0x2')]('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':''},'monitor_type':{'type':Sequelize[_0x32b8('0x1')]},'queue_youarenext':{'type':Sequelize['STRING'],'defaultValue':null},'queue_thereare':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':null},'queue_holdtime':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':null},'queue_minute':{'type':Sequelize[_0x32b8('0x1')],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':null},'queue_seconds':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':null},'queue_thankyou':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':null},'queue_reporthold':{'type':Sequelize[_0x32b8('0x1')]},'queue_quantity1':{'type':Sequelize[_0x32b8('0x1')]},'queue_quantity2':{'type':Sequelize[_0x32b8('0x1')]},'queue_periodic_announce':{'type':Sequelize[_0x32b8('0x1')]},'queue_less_than':{'type':Sequelize[_0x32b8('0x1')]},'periodic_announce':{'type':Sequelize[_0x32b8('0x18')],'set':function(_0x55202b){this[_0x32b8('0x19')](_0x32b8('0x1a'),_0x55202b?_0x55202b[_0x32b8('0x1b')](','):[]);},'get':function(){return this[_0x32b8('0xd')](_0x32b8('0x1a'))?this[_0x32b8('0xd')](_0x32b8('0x1a'))[_0x32b8('0x1c')](','):[];}},'joinempty':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':_0x32b8('0x15'),'set':function(_0x521bf4){this[_0x32b8('0x19')](_0x32b8('0x1d'),_0x521bf4?_0x521bf4[_0x32b8('0x1b')](','):undefined);},'get':function(){return this[_0x32b8('0xd')]('joinempty')?this['getDataValue'](_0x32b8('0x1d'))[_0x32b8('0x1c')](','):undefined;}},'leavewhenempty':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':'no','set':function(_0x12ff7d){this['setDataValue'](_0x32b8('0x1e'),_0x12ff7d?_0x12ff7d[_0x32b8('0x1b')](','):undefined);},'get':function(){return this[_0x32b8('0xd')](_0x32b8('0x1e'))?this[_0x32b8('0xd')](_0x32b8('0x1e'))[_0x32b8('0x1c')](','):undefined;}},'reportholdtime':{'type':Sequelize[_0x32b8('0x2')]('yes','no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize[_0x32b8('0x2')]('yes','no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize[_0x32b8('0x14')](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize[_0x32b8('0x2')](_0x32b8('0x15'),'no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize[_0x32b8('0x1')]},'description':{'type':Sequelize[_0x32b8('0x1')]},'acw':{'type':Sequelize[_0x32b8('0x1f')],'defaultValue':0x0,'set':function(_0x4c9ab0){this[_0x32b8('0x19')](_0x32b8('0x20'),_0x4c9ab0);if(_0x4c9ab0){if(this[_0x32b8('0xd')]('wrapuptime')<0x2){this[_0x32b8('0x19')]('wrapuptime',0x2);}}}},'acwTimeout':{'type':Sequelize[_0x32b8('0x14')](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize[_0x32b8('0x1f')],'defaultValue':0x0,'comment':_0x32b8('0x21')},'dialMethod':{'type':Sequelize[_0x32b8('0x2')]('preview',_0x32b8('0x11'),_0x32b8('0x13'),_0x32b8('0x12'),'booked'),'defaultValue':'progressive','comment':_0x32b8('0x22')},'dialLimitChannel':{'type':Sequelize[_0x32b8('0x14')](0x4)[_0x32b8('0x23')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':'Max\x209999\x20channels,\x200\x20means\x20unlimited.'},'dialLimitQueue':{'type':Sequelize['INTEGER'](0x4)['UNSIGNED'],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x32b8('0x24')},'dialPowerLevel':{'type':Sequelize[_0x32b8('0x25')](0x2)[_0x32b8('0x23')],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':'Power\x20Level:\x20Calls\x20for\x20agents\x20(min:1,\x20max:10).'},'dialPredictiveOptimization':{'type':Sequelize[_0x32b8('0x2')](_0x32b8('0x26'),_0x32b8('0x27')),'defaultValue':_0x32b8('0x27'),'comment':_0x32b8('0x28')},'dialPredictiveOptimizationPercentage':{'type':Sequelize[_0x32b8('0x25')](0x2)[_0x32b8('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':_0x32b8('0x29')},'dialPredictiveInterval':{'type':Sequelize['INTEGER'](0x3)[_0x32b8('0x23')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':'Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)'},'dialOriginateCallerIdName':{'type':Sequelize['STRING']},'dialOriginateCallerIdNumber':{'type':Sequelize['STRING']},'dialOriginateTimeout':{'type':Sequelize['INTEGER'](0x3)[_0x32b8('0x23')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':'Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialQueueOptions':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':'tTxX','comment':'https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue'},'dialQueueTimeout':{'type':Sequelize[_0x32b8('0x14')](0x3)[_0x32b8('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x32b8('0x2a')},'dialQueueProject':{'type':Sequelize['STRING'],'comment':_0x32b8('0x2b')},'dialCongestionMaxRetry':{'type':Sequelize[_0x32b8('0x14')](0x3)[_0x32b8('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Congestion\x20Retry\x20(min:1,\x20max:999)'},'dialCongestionRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x32b8('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialBusyMaxRetry':{'type':Sequelize[_0x32b8('0x14')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x32b8('0x2c')},'dialBusyRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x32b8('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x32b8('0x2d')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0x32b8('0x14')](0x3)[_0x32b8('0x23')],'defaultValue':0x3,'comment':'#NoAnswer\x20Retry\x20(min:1,\x20max:999)'},'dialNoAnswerRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x32b8('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x32b8('0x2e')},'dialGlobalMaxRetry':{'type':Sequelize[_0x32b8('0x14')](0x3)['UNSIGNED'],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':'#Global\x20Max\x20Retry\x20(min:1,\x20max:999)'},'dialTimezone':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':'07:00-22:00,*,*,*'},'dialPrefix':{'type':Sequelize[_0x32b8('0x1')],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize['ENUM']('always','never',_0x32b8('0x2f')),'defaultValue':_0x32b8('0x30')},'dialAMDActive':{'type':Sequelize[_0x32b8('0x1f')],'defaultValue':0x0,'comment':_0x32b8('0x31')},'dialAMDInitialSilence':{'type':Sequelize['INTEGER'](0x9)[_0x32b8('0x23')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x32b8('0x32')},'dialAMDGreeting':{'type':Sequelize[_0x32b8('0x14')](0x9)[_0x32b8('0x23')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0x32b8('0x33')},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x32b8('0x14')](0x9)[_0x32b8('0x23')],'defaultValue':0x320,'validate':{'min':0x0},'comment':'#AMD\x20After\x20Greeting\x20Silence'},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x32b8('0x14')](0x9)[_0x32b8('0x23')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x32b8('0x34')},'dialAMDMinWordLength':{'type':Sequelize[_0x32b8('0x14')](0x9)[_0x32b8('0x23')],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0x32b8('0x35')},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0x32b8('0x14')](0x9)[_0x32b8('0x23')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x32b8('0x36')},'dialAMDMaximumNumberOfWords':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0x32b8('0x37')},'dialAMDSilenceThreshold':{'type':Sequelize[_0x32b8('0x14')](0x5)[_0x32b8('0x23')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x32b8('0x38')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x32b8('0x14')](0x9)[_0x32b8('0x23')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':'#AMD\x20Maximum\x20Word\x20Length'},'dialRecallMeTimeout':{'type':Sequelize[_0x32b8('0x14')](0x5)[_0x32b8('0x23')],'validate':{'min':0x1},'defaultValue':0x1e,'comment':_0x32b8('0x39')},'dialRecallInQueue':{'type':Sequelize[_0x32b8('0x1f')],'defaultValue':0x0,'comment':'Active/Disactive\x20Recall\x20In\x20Queue'},'dialOrderByScheduledAt':{'type':Sequelize[_0x32b8('0x2')](_0x32b8('0x3a'),_0x32b8('0x3b')),'defaultValue':'DESC'},'dialQueueProject2':{'type':Sequelize[_0x32b8('0x1')],'comment':_0x32b8('0x2b')},'dialAgiAfterHangupClient':{'type':Sequelize[_0x32b8('0x1f')],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize[_0x32b8('0x1f')],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x32b8('0x14')](0x3)[_0x32b8('0x23')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x32b8('0x3c')},'dialCutDigit':{'type':Sequelize['INTEGER'](0x3)[_0x32b8('0x23')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Cut\x20Digit\x20(min:1,\x20max:15)'},'dialNoSuchNumberMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x32b8('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x32b8('0x3d')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0x32b8('0x14')](0x5)[_0x32b8('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x32b8('0x3e')},'dialDropMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x32b8('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x32b8('0x3f')},'dialDropRetryFrequency':{'type':Sequelize[_0x32b8('0x14')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x32b8('0x40')},'dialAbandonedMaxRetry':{'type':Sequelize[_0x32b8('0x14')](0x3)[_0x32b8('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Abandoned\x20Retry\x20(min:1,\x20max:999)'},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x32b8('0x14')](0x5)[_0x32b8('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x32b8('0x41')},'dialMachineMaxRetry':{'type':Sequelize[_0x32b8('0x14')](0x3)[_0x32b8('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x32b8('0x42')},'dialMachineRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x32b8('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAgentRejectMaxRetry':{'type':Sequelize[_0x32b8('0x14')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#AgentReject\x20Retry\x20(min:1,\x20max:999)'},'dialAgentRejectRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x32b8('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x32b8('0x43')},'mandatoryDispositionPauseId':{'type':Sequelize[_0x32b8('0x14')],'allowNull':!![],'comment':_0x32b8('0x44')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0x32b8('0x45'),'set':function(_0x391244){if(!_0x391244)this[_0x32b8('0x19')](_0x32b8('0x46'),null);this['setDataValue'](_0x32b8('0x47'),_0x391244);}},'dialPredictiveIntervalMaxThreshold':{'type':Sequelize[_0x32b8('0x14')](0x3)[_0x32b8('0x23')],'defaultValue':0x14,'validate':{'min':0x1,'max':0x64}},'dialPredictiveIntervalMinThreshold':{'type':Sequelize[_0x32b8('0x14')](0x3)[_0x32b8('0x23')],'defaultValue':0xa,'validate':{'min':0x1,'max':0x64}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1501=['order','sort','where','pick','filter','merge','VIRTUAL','VoiceQueue','includeAll','include','findAll','show','rawAttributes','keys','fields','options','catch','create','body','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','params','createdAt','updatedAt','omit','QueueCampaigns','destroy','getHoppers','findOne','CmHopper','VoiceQueueId','rows','getHopperHistories','CmHopperHistory','getHopperFinals','CmHopperFinal','getHopperBlacks','CmHopperBlack','Team','getTeams','addTeams','teams','User','Agents','voicePause','interface','flatMap','forEach','penalty','sequelize','transaction','each','TeamVoiceQueue','upsert','UserVoiceQueue','UserVoiceQueueRt','SIP/%s','emit','userVoiceQueue:save','ids','select','field','tq.TeamId','from','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','VoiceQueueId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','all','union','removeTeams','isEmpty','userVoiceQueue:remove','addAgents','online','isNil','format','removeAgents','isArray','getAgents','getMembers','getLists','CmList','addLists','dialCheckDuplicateType','insert','into','phone','scheduledAt','ContactId','ListId','NOW()','CmListId','cm_contacts','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','COALESCE(phone,\x27\x27)','cm_hopper','onlyIfOpen','deletedAt\x20IS\x20NULL','fromQuery','removeLists','getBlackLists','addBlackLists','spread','removeBlackLists','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','util','path','ejs','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','./voiceQueue.socket','sendStatus','status','end','json','offset','limit','count','set','apply','save','update','then','get','VoiceQueues','outbound','ignore','map','includes','find','value','name','UserProfileResource','error','send','index','fieldName','type','key','model','query','filters','intersection','attributes','length','hasOwnProperty','nolimit'];(function(_0xaf304b,_0x417e24){var _0xed1c2c=function(_0x317e6c){while(--_0x317e6c){_0xaf304b['push'](_0xaf304b['shift']());}};_0xed1c2c(++_0x417e24);}(_0x1501,0x129));var _0x1150=function(_0x10221b,_0x4202b8){_0x10221b=_0x10221b-0x0;var _0x40e259=_0x1501[_0x10221b];return _0x40e259;};'use strict';var emlformat=require(_0x1150('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1150('0x1'));var jsonpatch=require(_0x1150('0x2'));var rp=require(_0x1150('0x3'));var moment=require('moment');var BPromise=require(_0x1150('0x4'));var Mustache=require('mustache');var util=require(_0x1150('0x5'));var path=require(_0x1150('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1150('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1150('0x8'));var squel=require(_0x1150('0x9'));var crypto=require(_0x1150('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x1150('0xb'));var toCsv=require(_0x1150('0xc'));var querystring=require(_0x1150('0xd'));var Papa=require(_0x1150('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x1150('0xf'));var as=require(_0x1150('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1150('0x11'))(_0x1150('0x12'));var utils=require(_0x1150('0x13'));var config=require(_0x1150('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x1150('0x15'))['db'];config[_0x1150('0x16')]=_[_0x1150('0x17')](config[_0x1150('0x16')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x1150('0x16')]));require(_0x1150('0x18'))['register'](socket);function respondWithStatusCode(_0x1b3718,_0x390ba0){_0x390ba0=_0x390ba0||0xcc;return function(_0x456d65){if(_0x456d65){return _0x1b3718[_0x1150('0x19')](_0x390ba0);}return _0x1b3718[_0x1150('0x1a')](_0x390ba0)[_0x1150('0x1b')]();};}function respondWithResult(_0x1e3fb6,_0x54dd8f){_0x54dd8f=_0x54dd8f||0xc8;return function(_0x425009){if(_0x425009){return _0x1e3fb6['status'](_0x54dd8f)[_0x1150('0x1c')](_0x425009);}};}function respondWithFilteredResult(_0x1f4a38,_0x24625e){return function(_0x1ed93b){if(_0x1ed93b){var _0x5472dc=typeof _0x24625e[_0x1150('0x1d')]==='undefined'&&typeof _0x24625e[_0x1150('0x1e')]==='undefined';var _0x172516=_0x1ed93b[_0x1150('0x1f')];var _0x2e375e=_0x5472dc?0x0:_0x24625e[_0x1150('0x1d')];var _0x50a9bf=_0x5472dc?_0x1ed93b['count']:_0x24625e[_0x1150('0x1d')]+_0x24625e[_0x1150('0x1e')];var _0x431da9;if(_0x50a9bf>=_0x172516){_0x50a9bf=_0x172516;_0x431da9=0xc8;}else{_0x431da9=0xce;}_0x1f4a38['status'](_0x431da9);return _0x1f4a38[_0x1150('0x20')]('Content-Range',_0x2e375e+'-'+_0x50a9bf+'/'+_0x172516)['json'](_0x1ed93b);}return null;};}function patchUpdates(_0x26d146){return function(_0x5e9343){try{jsonpatch[_0x1150('0x21')](_0x5e9343,_0x26d146,!![]);}catch(_0x31c180){return BPromise['reject'](_0x31c180);}return _0x5e9343[_0x1150('0x22')]();};}function saveUpdates(_0x4e1981,_0x2ebd9c){return function(_0x308375){if(_0x308375){return _0x308375[_0x1150('0x23')](_0x4e1981)[_0x1150('0x24')](function(_0x227166){return _0x227166;});}return null;};}function removeEntity(_0x4ef784,_0x3a5b0d){return function(_0x19dc5e){if(_0x19dc5e){return _0x19dc5e['destroy']()[_0x1150('0x24')](function(){var _0x4a54e3=_0x19dc5e[_0x1150('0x25')]({'plain':!![]});var _0x286f54=[{'name':_0x1150('0x26'),'value':'inbound','ignore':![]},{'name':'QueueCampaigns','value':_0x1150('0x27'),'ignore':![]}];var _0x352faf=_(_0x286f54)['filter'](_0x1150('0x28'))[_0x1150('0x29')]('value')['value']();if(_[_0x1150('0x2a')](_0x352faf,_0x4a54e3['type'])){return;}var _0x4a93ed=_[_0x1150('0x2b')](_0x286f54,[_0x1150('0x2c'),_0x4a54e3['type']])[_0x1150('0x2d')];return db[_0x1150('0x2e')]['destroy']({'where':{'type':_0x4a93ed,'resourceId':_0x4a54e3['id']}})[_0x1150('0x24')](function(){return _0x19dc5e;});})[_0x1150('0x24')](function(){_0x4ef784[_0x1150('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x406e74,_0x3638c7){return function(_0x485fa7){if(!_0x485fa7){_0x406e74[_0x1150('0x19')](0x194);}return _0x485fa7;};}function handleError(_0x315c8e,_0x3750c8){_0x3750c8=_0x3750c8||0x1f4;return function(_0x1e54ee){logger[_0x1150('0x2f')](_0x1e54ee['stack']);if(_0x1e54ee[_0x1150('0x2d')]){delete _0x1e54ee[_0x1150('0x2d')];}_0x315c8e[_0x1150('0x1a')](_0x3750c8)[_0x1150('0x30')](_0x1e54ee);};}exports[_0x1150('0x31')]=function(_0x3c38f0,_0x233e45){var _0x3732c8={},_0x587379={},_0x8c2692={'count':0x0,'rows':[]};var _0x4463f9=_[_0x1150('0x29')](db['VoiceQueue']['rawAttributes'],function(_0x2bea81){return{'name':_0x2bea81[_0x1150('0x32')],'type':_0x2bea81[_0x1150('0x33')][_0x1150('0x34')]};});_0x587379[_0x1150('0x35')]=_[_0x1150('0x29')](_0x4463f9,'name');_0x587379[_0x1150('0x36')]=_['keys'](_0x3c38f0[_0x1150('0x36')]);_0x587379[_0x1150('0x37')]=_[_0x1150('0x38')](_0x587379[_0x1150('0x35')],_0x587379['query']);_0x3732c8[_0x1150('0x39')]=_[_0x1150('0x38')](_0x587379[_0x1150('0x35')],qs['fields'](_0x3c38f0[_0x1150('0x36')]['fields']));_0x3732c8['attributes']=_0x3732c8['attributes'][_0x1150('0x3a')]?_0x3732c8['attributes']:_0x587379[_0x1150('0x35')];if(!_0x3c38f0[_0x1150('0x36')][_0x1150('0x3b')](_0x1150('0x3c'))){_0x3732c8[_0x1150('0x1e')]=qs[_0x1150('0x1e')](_0x3c38f0[_0x1150('0x36')][_0x1150('0x1e')]);_0x3732c8['offset']=qs[_0x1150('0x1d')](_0x3c38f0[_0x1150('0x36')][_0x1150('0x1d')]);}_0x3732c8[_0x1150('0x3d')]=qs[_0x1150('0x3e')](_0x3c38f0[_0x1150('0x36')][_0x1150('0x3e')]);_0x3732c8[_0x1150('0x3f')]=qs[_0x1150('0x37')](_[_0x1150('0x40')](_0x3c38f0[_0x1150('0x36')],_0x587379[_0x1150('0x37')]),_0x4463f9);if(_0x3c38f0['query'][_0x1150('0x41')]){_0x3732c8[_0x1150('0x3f')]=_[_0x1150('0x42')](_0x3732c8[_0x1150('0x3f')],{'$or':_['map'](_0x4463f9,function(_0xc5ee5c){if(_0xc5ee5c[_0x1150('0x33')]!==_0x1150('0x43')){var _0x7da570={};_0x7da570[_0xc5ee5c[_0x1150('0x2d')]]={'$like':'%'+_0x3c38f0[_0x1150('0x36')][_0x1150('0x41')]+'%'};return _0x7da570;}})});}_0x3732c8=_[_0x1150('0x42')]({},_0x3732c8,_0x3c38f0['options']);var _0x28e8c2={'where':_0x3732c8[_0x1150('0x3f')]};return db[_0x1150('0x44')][_0x1150('0x1f')](_0x28e8c2)[_0x1150('0x24')](function(_0x4dcf14){_0x8c2692['count']=_0x4dcf14;if(_0x3c38f0[_0x1150('0x36')][_0x1150('0x45')]){_0x3732c8[_0x1150('0x46')]=[{'all':!![]}];}return db[_0x1150('0x44')][_0x1150('0x47')](_0x3732c8);})[_0x1150('0x24')](function(_0x1d71bb){_0x8c2692['rows']=_0x1d71bb;return _0x8c2692;})[_0x1150('0x24')](respondWithFilteredResult(_0x233e45,_0x3732c8))['catch'](handleError(_0x233e45,null));};exports[_0x1150('0x48')]=function(_0x5443a3,_0x38e726){var _0x609a84={'raw':![],'where':{'id':_0x5443a3['params']['id']}},_0x1c26c6={};_0x1c26c6[_0x1150('0x35')]=_['keys'](db[_0x1150('0x44')][_0x1150('0x49')]);_0x1c26c6[_0x1150('0x36')]=_[_0x1150('0x4a')](_0x5443a3[_0x1150('0x36')]);_0x1c26c6[_0x1150('0x37')]=_[_0x1150('0x38')](_0x1c26c6[_0x1150('0x35')],_0x1c26c6[_0x1150('0x36')]);_0x609a84[_0x1150('0x39')]=_[_0x1150('0x38')](_0x1c26c6[_0x1150('0x35')],qs[_0x1150('0x4b')](_0x5443a3['query'][_0x1150('0x4b')]));_0x609a84['attributes']=_0x609a84['attributes']['length']?_0x609a84[_0x1150('0x39')]:_0x1c26c6[_0x1150('0x35')];if(_0x5443a3[_0x1150('0x36')][_0x1150('0x45')]){_0x609a84[_0x1150('0x46')]=[{'all':!![]}];}_0x609a84=_['merge']({},_0x609a84,_0x5443a3[_0x1150('0x4c')]);return db[_0x1150('0x44')]['find'](_0x609a84)['then'](handleEntityNotFound(_0x38e726,null))['then'](respondWithResult(_0x38e726,null))[_0x1150('0x4d')](handleError(_0x38e726,null));};exports['create']=function(_0x39d86a,_0x1bcd38){return db[_0x1150('0x44')][_0x1150('0x4e')](_0x39d86a[_0x1150('0x4f')],{})[_0x1150('0x24')](function(_0x1ebf57){var _0x5e4b99=_0x39d86a['user']['get']({'plain':!![]});if(!_0x5e4b99)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5e4b99[_0x1150('0x50')]===_0x1150('0x51')){var _0x4a80fd=_0x1ebf57[_0x1150('0x25')]({'plain':!![]});var _0x312a69=[{'name':_0x1150('0x26'),'value':'inbound'},{'name':'QueueCampaigns','value':_0x1150('0x27')}];var _0x4e9b7f=_[_0x1150('0x2b')](_0x312a69,[_0x1150('0x2c'),_0x4a80fd[_0x1150('0x33')]])[_0x1150('0x2d')];return db[_0x1150('0x52')][_0x1150('0x2b')]({'where':{'name':_0x4e9b7f,'userProfileId':_0x5e4b99[_0x1150('0x53')]},'raw':!![]})[_0x1150('0x24')](function(_0x5a383d){if(_0x5a383d&&_0x5a383d[_0x1150('0x54')]===0x0){return db[_0x1150('0x2e')][_0x1150('0x4e')]({'name':_0x4a80fd[_0x1150('0x2d')],'resourceId':_0x4a80fd['id'],'type':_0x5a383d['name'],'sectionId':_0x5a383d['id']},{})[_0x1150('0x24')](function(){return _0x1ebf57;});}else{return _0x1ebf57;}})['catch'](function(_0x34461c){logger[_0x1150('0x2f')](_0x1150('0x55'),_0x34461c);throw _0x34461c;});}return _0x1ebf57;})[_0x1150('0x24')](respondWithResult(_0x1bcd38,0xc9))['catch'](handleError(_0x1bcd38,null));};exports[_0x1150('0x56')]=function(_0x3ef7bb,_0xceb325){var _0x18b0e1={'where':{'id':_0x3ef7bb[_0x1150('0x57')]['id']}},_0x196e16={};_0x196e16[_0x1150('0x35')]=_['keys'](db[_0x1150('0x44')][_0x1150('0x49')]);_0x18b0e1[_0x1150('0x39')]=_[_0x1150('0x38')](_0x196e16[_0x1150('0x35')],qs[_0x1150('0x4b')](_0x3ef7bb[_0x1150('0x36')][_0x1150('0x4b')]));_0x18b0e1[_0x1150('0x39')]=_0x18b0e1['attributes'][_0x1150('0x3a')]?_0x18b0e1[_0x1150('0x39')]:_0x196e16['model'];if(_0x3ef7bb[_0x1150('0x36')]['includeAll']){_0x18b0e1[_0x1150('0x46')]=[{'all':!![]}];}_0x18b0e1=_[_0x1150('0x42')]({},_0x18b0e1,_0x3ef7bb[_0x1150('0x4c')]);return db[_0x1150('0x44')]['find'](_0x18b0e1)['then'](handleEntityNotFound(_0xceb325,null))[_0x1150('0x24')](function(_0xd8b97b){if(_0xd8b97b){var _0x45a77f=_0xd8b97b[_0x1150('0x25')]({'plain':!![]});_0x45a77f=qs['omit'](_0x45a77f,['id',_0x1150('0x58'),_0x1150('0x59')]);_0x3ef7bb['body']=_[_0x1150('0x5a')](_0x3ef7bb[_0x1150('0x4f')],['id','createdAt',_0x1150('0x59')]);return db[_0x1150('0x44')][_0x1150('0x4e')](_[_0x1150('0x42')](_0x45a77f,_0x3ef7bb['body']),{'include':_0x3ef7bb[_0x1150('0x36')][_0x1150('0x45')]?[{'all':!![]}]:undefined})[_0x1150('0x24')](function(_0x39f29c){var _0x481b63=_0x3ef7bb[_0x1150('0x51')][_0x1150('0x25')]({'plain':!![]});if(!_0x481b63)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x481b63['role']===_0x1150('0x51')){var _0x48e9ba=_0x39f29c[_0x1150('0x25')]({'plain':!![]});var _0x5404f3=[{'name':_0x1150('0x26'),'value':'inbound'},{'name':_0x1150('0x5b'),'value':'outbound'}];var _0x1d2d68=_[_0x1150('0x2b')](_0x5404f3,[_0x1150('0x2c'),_0x48e9ba[_0x1150('0x33')]])[_0x1150('0x2d')];return db[_0x1150('0x52')][_0x1150('0x2b')]({'where':{'name':_0x1d2d68,'userProfileId':_0x481b63[_0x1150('0x53')]},'raw':!![]})['then'](function(_0x3f889d){if(_0x3f889d&&_0x3f889d[_0x1150('0x54')]===0x0){return db['UserProfileResource'][_0x1150('0x4e')]({'name':_0x48e9ba['name'],'resourceId':_0x48e9ba['id'],'type':_0x3f889d[_0x1150('0x2d')],'sectionId':_0x3f889d['id']},{})[_0x1150('0x24')](function(){return _0x39f29c;});}else{return _0x39f29c;}})['catch'](function(_0xff81a9){logger['error'](_0x1150('0x55'),_0xff81a9);throw _0xff81a9;});}return _0x39f29c;});}})[_0x1150('0x24')](respondWithResult(_0xceb325,0xc9))[_0x1150('0x4d')](handleError(_0xceb325,null));};exports[_0x1150('0x23')]=function(_0x174255,_0x5e60bd){if(_0x174255[_0x1150('0x4f')]['id']){delete _0x174255['body']['id'];}return db[_0x1150('0x44')][_0x1150('0x2b')]({'where':{'id':_0x174255['params']['id']}})[_0x1150('0x24')](handleEntityNotFound(_0x5e60bd,null))[_0x1150('0x24')](saveUpdates(_0x174255[_0x1150('0x4f')],null))[_0x1150('0x24')](respondWithResult(_0x5e60bd,null))['catch'](handleError(_0x5e60bd,null));};exports[_0x1150('0x5c')]=function(_0x4c2afa,_0x5781c8){return db[_0x1150('0x44')][_0x1150('0x2b')]({'where':{'id':_0x4c2afa[_0x1150('0x57')]['id']}})['then'](handleEntityNotFound(_0x5781c8,null))[_0x1150('0x24')](removeEntity(_0x5781c8,null))[_0x1150('0x4d')](handleError(_0x5781c8,null));};exports[_0x1150('0x5d')]=function(_0x3e42ac,_0xa9ea4,_0x38cefa){var _0xc75a83={'raw':![],'where':{}};var _0x161c71={};var _0x11f57b={'count':0x0,'rows':[]};return db[_0x1150('0x44')][_0x1150('0x5e')]({'where':{'id':_0x3e42ac['params']['id']}})[_0x1150('0x24')](handleEntityNotFound(_0xa9ea4,null))[_0x1150('0x24')](function(_0x6e01a7){if(_0x6e01a7){_0x161c71[_0x1150('0x35')]=_[_0x1150('0x4a')](db[_0x1150('0x5f')][_0x1150('0x49')]);_0x161c71[_0x1150('0x36')]=_[_0x1150('0x4a')](_0x3e42ac[_0x1150('0x36')]);_0x161c71[_0x1150('0x37')]=_[_0x1150('0x38')](_0x161c71['model'],_0x161c71[_0x1150('0x36')]);_0xc75a83[_0x1150('0x39')]=_['intersection'](_0x161c71[_0x1150('0x35')],qs[_0x1150('0x4b')](_0x3e42ac[_0x1150('0x36')][_0x1150('0x4b')]));_0xc75a83['attributes']=_0xc75a83[_0x1150('0x39')]['length']?_0xc75a83['attributes']:_0x161c71[_0x1150('0x35')];if(!_0x3e42ac[_0x1150('0x36')][_0x1150('0x3b')](_0x1150('0x3c'))){_0xc75a83[_0x1150('0x1e')]=qs['limit'](_0x3e42ac[_0x1150('0x36')]['limit']);_0xc75a83[_0x1150('0x1d')]=qs[_0x1150('0x1d')](_0x3e42ac[_0x1150('0x36')]['offset']);}_0xc75a83[_0x1150('0x3d')]=qs[_0x1150('0x3e')](_0x3e42ac[_0x1150('0x36')]['sort']);_0xc75a83[_0x1150('0x3f')]=qs['filters'](_[_0x1150('0x40')](_0x3e42ac['query'],_0x161c71[_0x1150('0x37')]));_0xc75a83[_0x1150('0x3f')][_0x1150('0x60')]=_0x6e01a7['id'];if(_0x3e42ac[_0x1150('0x36')][_0x1150('0x41')]){_0xc75a83[_0x1150('0x3f')]=_[_0x1150('0x42')](_0xc75a83[_0x1150('0x3f')],{'$or':_[_0x1150('0x29')](_0xc75a83[_0x1150('0x39')],function(_0x390f28){var _0x4223d5={};_0x4223d5[_0x390f28]={'$like':'%'+_0x3e42ac[_0x1150('0x36')]['filter']+'%'};return _0x4223d5;})});}_0xc75a83=_[_0x1150('0x42')]({},_0xc75a83,_0x3e42ac[_0x1150('0x4c')]);return db['CmHopper']['count']({'where':_0xc75a83[_0x1150('0x3f')]})[_0x1150('0x24')](function(_0x26860a){_0x11f57b['count']=_0x26860a;if(_0x3e42ac[_0x1150('0x36')][_0x1150('0x45')]){_0xc75a83[_0x1150('0x46')]=[{'all':!![]}];}return db[_0x1150('0x5f')][_0x1150('0x47')](_0xc75a83);})['then'](function(_0x470551){_0x11f57b[_0x1150('0x61')]=_0x470551;return _0x11f57b;});}})[_0x1150('0x24')](respondWithFilteredResult(_0xa9ea4,_0xc75a83))[_0x1150('0x4d')](handleError(_0xa9ea4,null));};exports[_0x1150('0x62')]=function(_0x357300,_0x4a4603,_0x193247){var _0x2caa5f={'raw':!![],'where':{}};var _0x49f403={};var _0x8d825a={'count':0x0,'rows':[]};return db[_0x1150('0x44')]['findOne']({'where':{'id':_0x357300[_0x1150('0x57')]['id']}})[_0x1150('0x24')](handleEntityNotFound(_0x4a4603,null))[_0x1150('0x24')](function(_0x1934f){if(_0x1934f){_0x49f403['model']=_[_0x1150('0x4a')](db[_0x1150('0x63')][_0x1150('0x49')]);_0x49f403['query']=_[_0x1150('0x4a')](_0x357300['query']);_0x49f403[_0x1150('0x37')]=_['intersection'](_0x49f403[_0x1150('0x35')],_0x49f403[_0x1150('0x36')]);_0x2caa5f['attributes']=_[_0x1150('0x38')](_0x49f403[_0x1150('0x35')],qs[_0x1150('0x4b')](_0x357300['query'][_0x1150('0x4b')]));_0x2caa5f[_0x1150('0x39')]=_0x2caa5f[_0x1150('0x39')][_0x1150('0x3a')]?_0x2caa5f[_0x1150('0x39')]:_0x49f403[_0x1150('0x35')];if(!_0x357300['query'][_0x1150('0x3b')]('nolimit')){_0x2caa5f[_0x1150('0x1e')]=qs[_0x1150('0x1e')](_0x357300[_0x1150('0x36')][_0x1150('0x1e')]);_0x2caa5f[_0x1150('0x1d')]=qs[_0x1150('0x1d')](_0x357300[_0x1150('0x36')][_0x1150('0x1d')]);}_0x2caa5f[_0x1150('0x3d')]=qs[_0x1150('0x3e')](_0x357300['query'][_0x1150('0x3e')]);_0x2caa5f['where']=qs[_0x1150('0x37')](_['pick'](_0x357300['query'],_0x49f403[_0x1150('0x37')]));_0x2caa5f[_0x1150('0x3f')][_0x1150('0x60')]=_0x1934f['id'];if(_0x357300['query']['filter']){_0x2caa5f[_0x1150('0x3f')]=_[_0x1150('0x42')](_0x2caa5f[_0x1150('0x3f')],{'$or':_['map'](_0x2caa5f[_0x1150('0x39')],function(_0x3bd6d2){var _0x542d32={};_0x542d32[_0x3bd6d2]={'$like':'%'+_0x357300[_0x1150('0x36')][_0x1150('0x41')]+'%'};return _0x542d32;})});}_0x2caa5f=_[_0x1150('0x42')]({},_0x2caa5f,_0x357300[_0x1150('0x4c')]);return db['CmHopperHistory'][_0x1150('0x1f')]({'where':_0x2caa5f[_0x1150('0x3f')]})[_0x1150('0x24')](function(_0x15f429){_0x8d825a['count']=_0x15f429;if(_0x357300['query'][_0x1150('0x45')]){_0x2caa5f[_0x1150('0x46')]=[{'all':!![]}];}return db[_0x1150('0x63')][_0x1150('0x47')](_0x2caa5f);})['then'](function(_0x396c90){_0x8d825a[_0x1150('0x61')]=_0x396c90;return _0x8d825a;});}})[_0x1150('0x24')](respondWithFilteredResult(_0x4a4603,_0x2caa5f))[_0x1150('0x4d')](handleError(_0x4a4603,null));};exports[_0x1150('0x64')]=function(_0x396307,_0xf930f9,_0x4bd6ab){var _0x422c0d={'raw':!![],'where':{}};var _0x53beba={};var _0x515c88={'count':0x0,'rows':[]};return db['VoiceQueue'][_0x1150('0x5e')]({'where':{'id':_0x396307[_0x1150('0x57')]['id']}})['then'](handleEntityNotFound(_0xf930f9,null))[_0x1150('0x24')](function(_0x379d26){if(_0x379d26){_0x53beba[_0x1150('0x35')]=_[_0x1150('0x4a')](db[_0x1150('0x65')][_0x1150('0x49')]);_0x53beba[_0x1150('0x36')]=_['keys'](_0x396307[_0x1150('0x36')]);_0x53beba[_0x1150('0x37')]=_[_0x1150('0x38')](_0x53beba['model'],_0x53beba[_0x1150('0x36')]);_0x422c0d['attributes']=_['intersection'](_0x53beba[_0x1150('0x35')],qs[_0x1150('0x4b')](_0x396307[_0x1150('0x36')][_0x1150('0x4b')]));_0x422c0d[_0x1150('0x39')]=_0x422c0d['attributes']['length']?_0x422c0d[_0x1150('0x39')]:_0x53beba[_0x1150('0x35')];if(!_0x396307['query']['hasOwnProperty']('nolimit')){_0x422c0d[_0x1150('0x1e')]=qs[_0x1150('0x1e')](_0x396307[_0x1150('0x36')]['limit']);_0x422c0d['offset']=qs[_0x1150('0x1d')](_0x396307[_0x1150('0x36')][_0x1150('0x1d')]);}_0x422c0d[_0x1150('0x3d')]=qs[_0x1150('0x3e')](_0x396307[_0x1150('0x36')][_0x1150('0x3e')]);_0x422c0d[_0x1150('0x3f')]=qs[_0x1150('0x37')](_[_0x1150('0x40')](_0x396307[_0x1150('0x36')],_0x53beba[_0x1150('0x37')]));_0x422c0d[_0x1150('0x3f')][_0x1150('0x60')]=_0x379d26['id'];if(_0x396307[_0x1150('0x36')][_0x1150('0x41')]){_0x422c0d[_0x1150('0x3f')]=_[_0x1150('0x42')](_0x422c0d['where'],{'$or':_['map'](_0x422c0d[_0x1150('0x39')],function(_0x4e608c){var _0x290528={};_0x290528[_0x4e608c]={'$like':'%'+_0x396307[_0x1150('0x36')][_0x1150('0x41')]+'%'};return _0x290528;})});}_0x422c0d=_['merge']({},_0x422c0d,_0x396307[_0x1150('0x4c')]);return db[_0x1150('0x65')][_0x1150('0x1f')]({'where':_0x422c0d['where']})[_0x1150('0x24')](function(_0x80b09){_0x515c88['count']=_0x80b09;if(_0x396307[_0x1150('0x36')][_0x1150('0x45')]){_0x422c0d[_0x1150('0x46')]=[{'all':!![]}];}return db[_0x1150('0x65')]['findAll'](_0x422c0d);})[_0x1150('0x24')](function(_0x2b9595){_0x515c88[_0x1150('0x61')]=_0x2b9595;return _0x515c88;});}})['then'](respondWithFilteredResult(_0xf930f9,_0x422c0d))[_0x1150('0x4d')](handleError(_0xf930f9,null));};exports[_0x1150('0x66')]=function(_0xa789f1,_0x43fda3,_0x1da995){var _0x1cef32={'raw':!![],'where':{}};var _0x183ab0={};var _0x558e66={'count':0x0,'rows':[]};return db[_0x1150('0x44')][_0x1150('0x5e')]({'where':{'id':_0xa789f1[_0x1150('0x57')]['id']}})[_0x1150('0x24')](handleEntityNotFound(_0x43fda3,null))['then'](function(_0x10cb70){if(_0x10cb70){_0x183ab0[_0x1150('0x35')]=_[_0x1150('0x4a')](db['CmHopperBlack'][_0x1150('0x49')]);_0x183ab0[_0x1150('0x36')]=_[_0x1150('0x4a')](_0xa789f1[_0x1150('0x36')]);_0x183ab0['filters']=_[_0x1150('0x38')](_0x183ab0[_0x1150('0x35')],_0x183ab0['query']);_0x1cef32[_0x1150('0x39')]=_[_0x1150('0x38')](_0x183ab0[_0x1150('0x35')],qs['fields'](_0xa789f1[_0x1150('0x36')][_0x1150('0x4b')]));_0x1cef32['attributes']=_0x1cef32[_0x1150('0x39')][_0x1150('0x3a')]?_0x1cef32[_0x1150('0x39')]:_0x183ab0[_0x1150('0x35')];if(!_0xa789f1[_0x1150('0x36')][_0x1150('0x3b')](_0x1150('0x3c'))){_0x1cef32[_0x1150('0x1e')]=qs['limit'](_0xa789f1['query']['limit']);_0x1cef32['offset']=qs[_0x1150('0x1d')](_0xa789f1['query'][_0x1150('0x1d')]);}_0x1cef32[_0x1150('0x3d')]=qs[_0x1150('0x3e')](_0xa789f1[_0x1150('0x36')]['sort']);_0x1cef32[_0x1150('0x3f')]=qs[_0x1150('0x37')](_[_0x1150('0x40')](_0xa789f1[_0x1150('0x36')],_0x183ab0[_0x1150('0x37')]));_0x1cef32[_0x1150('0x3f')][_0x1150('0x60')]=_0x10cb70['id'];if(_0xa789f1[_0x1150('0x36')][_0x1150('0x41')]){_0x1cef32[_0x1150('0x3f')]=_[_0x1150('0x42')](_0x1cef32[_0x1150('0x3f')],{'$or':_[_0x1150('0x29')](_0x1cef32['attributes'],function(_0x556b5f){var _0x57dd91={};_0x57dd91[_0x556b5f]={'$like':'%'+_0xa789f1[_0x1150('0x36')]['filter']+'%'};return _0x57dd91;})});}_0x1cef32=_['merge']({},_0x1cef32,_0xa789f1[_0x1150('0x4c')]);return db[_0x1150('0x67')][_0x1150('0x1f')]({'where':_0x1cef32['where']})['then'](function(_0x18989e){_0x558e66[_0x1150('0x1f')]=_0x18989e;if(_0xa789f1[_0x1150('0x36')][_0x1150('0x45')]){_0x1cef32[_0x1150('0x46')]=[{'all':!![]}];}return db['CmHopperBlack']['findAll'](_0x1cef32);})[_0x1150('0x24')](function(_0x1b36aa){_0x558e66[_0x1150('0x61')]=_0x1b36aa;return _0x558e66;});}})['then'](respondWithFilteredResult(_0x43fda3,_0x1cef32))[_0x1150('0x4d')](handleError(_0x43fda3,null));};exports['getTeams']=function(_0x55b8cb,_0x31a6b5,_0x4e06b3){var _0x3b7f91={};var _0x39538a={};var _0x58c057;var _0x1eb28d;return db[_0x1150('0x44')][_0x1150('0x5e')]({'where':{'id':_0x55b8cb[_0x1150('0x57')]['id']}})['then'](handleEntityNotFound(_0x31a6b5,null))['then'](function(_0x403bfc){if(_0x403bfc){_0x58c057=_0x403bfc;_0x39538a[_0x1150('0x35')]=_[_0x1150('0x4a')](db[_0x1150('0x68')][_0x1150('0x49')]);_0x39538a[_0x1150('0x36')]=_[_0x1150('0x4a')](_0x55b8cb[_0x1150('0x36')]);_0x39538a[_0x1150('0x37')]=_[_0x1150('0x38')](_0x39538a[_0x1150('0x35')],_0x39538a[_0x1150('0x36')]);_0x3b7f91['attributes']=_[_0x1150('0x38')](_0x39538a[_0x1150('0x35')],qs[_0x1150('0x4b')](_0x55b8cb[_0x1150('0x36')][_0x1150('0x4b')]));_0x3b7f91['attributes']=_0x3b7f91[_0x1150('0x39')]['length']?_0x3b7f91[_0x1150('0x39')]:_0x39538a[_0x1150('0x35')];_0x3b7f91['order']=qs['sort'](_0x55b8cb[_0x1150('0x36')]['sort']);_0x3b7f91['where']=qs[_0x1150('0x37')](_[_0x1150('0x40')](_0x55b8cb['query'],_0x39538a['filters']));if(_0x55b8cb[_0x1150('0x36')][_0x1150('0x41')]){_0x3b7f91[_0x1150('0x3f')]=_['merge'](_0x3b7f91[_0x1150('0x3f')],{'$or':_[_0x1150('0x29')](_0x3b7f91[_0x1150('0x39')],function(_0x41e20c){var _0x2997bd={};_0x2997bd[_0x41e20c]={'$like':'%'+_0x55b8cb[_0x1150('0x36')]['filter']+'%'};return _0x2997bd;})});}_0x3b7f91=_['merge']({},_0x3b7f91,_0x55b8cb['options']);return _0x58c057[_0x1150('0x69')](_0x3b7f91);}})['then'](function(_0x2b4070){if(_0x2b4070){_0x1eb28d=_0x2b4070[_0x1150('0x3a')];if(!_0x55b8cb['query'][_0x1150('0x3b')](_0x1150('0x3c'))){_0x3b7f91[_0x1150('0x1e')]=qs[_0x1150('0x1e')](_0x55b8cb[_0x1150('0x36')][_0x1150('0x1e')]);_0x3b7f91[_0x1150('0x1d')]=qs['offset'](_0x55b8cb[_0x1150('0x36')][_0x1150('0x1d')]);}return _0x58c057['getTeams'](_0x3b7f91);}})[_0x1150('0x24')](function(_0x129206){if(_0x129206){return _0x129206?{'count':_0x1eb28d,'rows':_0x129206}:null;}})[_0x1150('0x24')](respondWithResult(_0x31a6b5,null))[_0x1150('0x4d')](handleError(_0x31a6b5,null));};exports[_0x1150('0x6a')]=function(_0x690636,_0x57da26,_0x20240e){var _0x6f5755=_0x690636[_0x1150('0x4f')][_0x1150('0x6b')];var _0x45c458=_['map'](_0x6f5755,'id');return db[_0x1150('0x68')]['findAll']({'where':{'id':_0x45c458},'attributes':['id'],'include':[{'model':db[_0x1150('0x6c')],'as':_0x1150('0x6d'),'attributes':['id',_0x1150('0x2d'),'online',_0x1150('0x6e'),_0x1150('0x6f')],'raw':!![]}]})[_0x1150('0x24')](function(_0x5583cc){if(_0x5583cc){var _0x507df0=_[_0x1150('0x70')](_0x5583cc,function(_0x243b97){var _0x5f38b9=_0x243b97[_0x1150('0x25')]({'plain':!![]});_0x5f38b9[_0x1150('0x6d')][_0x1150('0x71')](function(_0xd6d072){_0xd6d072[_0x1150('0x72')]=_[_0x1150('0x2b')](_0x6f5755,{'id':_0x5f38b9['id']})['penalty'];});return _0x5f38b9[_0x1150('0x6d')];});return db['VoiceQueue'][_0x1150('0x2b')]({'where':{'id':_0x690636[_0x1150('0x57')]['id']}})[_0x1150('0x24')](function(_0x120fee){return db[_0x1150('0x73')][_0x1150('0x74')](function(_0x199790){return _0x120fee['addTeams'](_0x45c458,{'transaction':_0x199790})['then'](function(){return BPromise[_0x1150('0x75')](_0x6f5755,function(_0x3edf03){return db[_0x1150('0x76')][_0x1150('0x77')]({'TeamId':_0x3edf03['id'],'VoiceQueueId':_0x690636[_0x1150('0x57')]['id'],'penalty':_0x3edf03[_0x1150('0x72')]},{'transaction':_0x199790});});})['then'](function(){return BPromise[_0x1150('0x75')](_0x507df0,function(_0x166d3){return db[_0x1150('0x78')]['findOrCreate']({'where':{'UserId':_0x166d3['id'],'VoiceQueueId':_0x690636[_0x1150('0x57')]['id']},'defaults':{'penalty':_0x166d3[_0x1150('0x72')]},'transaction':_0x199790});});})['then'](function(){return BPromise[_0x1150('0x75')](_[_0x1150('0x41')](_0x507df0,{'online':!![]}),function(_0xb2349e){return db[_0x1150('0x79')][_0x1150('0x77')]({'membername':_0xb2349e['name'],'UserId':_0xb2349e['id'],'queue_name':_0x120fee[_0x1150('0x2d')],'VoiceQueueId':_0x120fee['id'],'interface':_['isNil'](_0xb2349e['interface'])?util['format'](_0x1150('0x7a'),_0xb2349e['name']):_0xb2349e[_0x1150('0x6f')],'paused':_0xb2349e[_0x1150('0x6e')]||![],'penalty':_0xb2349e[_0x1150('0x72')]},{'transaction':_0x199790});});})['then'](function(){_0x507df0[_0x1150('0x71')](function(_0x5cb9f4){socket[_0x1150('0x7b')](_0x1150('0x7c'),{'UserId':_0x5cb9f4['id'],'VoiceQueueId':_0x120fee['id']});});});});});}})['then'](respondWithStatusCode(_0x57da26,null))[_0x1150('0x4d')](handleError(_0x57da26,null));};exports['removeTeams']=function(_0x10f2ea,_0x3300b4,_0x22649d){return db[_0x1150('0x68')][_0x1150('0x47')]({'where':{'id':_0x10f2ea['query'][_0x1150('0x7d')]},'attributes':['id'],'include':[{'model':db[_0x1150('0x6c')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x1150('0x24')](handleEntityNotFound(_0x3300b4,null))['then'](function(_0x382683){var _0x562187=_[_0x1150('0x29')](_0x382683,'id');var _0xb87d78=[];var _0x19e73f=[];var _0x4caf8e=squel[_0x1150('0x7e')]();_0x4caf8e[_0x1150('0x7f')](_0x1150('0x80'))[_0x1150('0x81')]('team_has_voice_queues','tq')[_0x1150('0x82')](_0x1150('0x83'),'ut',_0x1150('0x84'))[_0x1150('0x3f')](_0x1150('0x85'),_0x10f2ea[_0x1150('0x57')]['id']);for(var _0x40bbde=0x0;_0x40bbde<_0x382683[_0x1150('0x3a')];_0x40bbde+=0x1){let _0x465639=_0x382683[_0x40bbde];for(var _0x4fc28b=0x0;_0x4fc28b<_0x465639['Agents'][_0x1150('0x3a')];_0x4fc28b+=0x1){let _0xf6cc7c=_0x465639['Agents'][_0x4fc28b];var _0x5e6150=_0x4caf8e['clone']();_0x5e6150[_0x1150('0x3f')]('ut.UserId\x20=\x20?',_0xf6cc7c['id']);_0x19e73f[_0x1150('0x86')](db[_0x1150('0x73')][_0x1150('0x36')](_0x5e6150[_0x1150('0x87')](),{'type':db[_0x1150('0x73')][_0x1150('0x88')][_0x1150('0x89')]})[_0x1150('0x24')](function(_0x12c996){if(_0x12c996[_0x1150('0x3a')]===0x1){return _0xf6cc7c['id'];}else{var _0x460708=_[_0x1150('0x8a')](_[_0x1150('0x29')](_0x12c996,_0x1150('0x8b')),function(_0x42a2f8){return _[_0x1150('0x2a')](_0x562187,_0x42a2f8);});if(_0x460708){return _0xf6cc7c['id'];}}}));}}return BPromise[_0x1150('0x8c')](_0x19e73f)[_0x1150('0x24')](function(_0x57bebb){_0xb87d78=_(_0xb87d78)[_0x1150('0x8d')](_0x57bebb)['compact']()['value']();return db['VoiceQueue']['find']({'where':{'id':_0x10f2ea[_0x1150('0x57')]['id']}})[_0x1150('0x24')](function(_0xa29691){return db[_0x1150('0x73')][_0x1150('0x74')](function(_0x5730de){return _0xa29691[_0x1150('0x8e')](_0x10f2ea[_0x1150('0x36')][_0x1150('0x7d')],{'transaction':_0x5730de})[_0x1150('0x24')](function(){if(!_[_0x1150('0x8f')](_0xb87d78)){return _0xa29691['removeAgents'](_0xb87d78,{'transaction':_0x5730de})[_0x1150('0x24')](function(){return db[_0x1150('0x79')][_0x1150('0x5c')]({'where':{'VoiceQueueId':_0x10f2ea[_0x1150('0x57')]['id'],'UserId':_0xb87d78},'transaction':_0x5730de});});}})[_0x1150('0x24')](function(){_0xb87d78[_0x1150('0x71')](function(_0x5f35ce){socket[_0x1150('0x7b')](_0x1150('0x90'),{'UserId':_0x5f35ce,'VoiceQueueId':_0xa29691['id']});});});});});});})[_0x1150('0x24')](respondWithStatusCode(_0x3300b4,null))[_0x1150('0x4d')](handleError(_0x3300b4,null));};exports[_0x1150('0x91')]=function(_0x5526f3,_0x29a4cd,_0x3cf501){var _0x3b47d9,_0xf419aa;return db[_0x1150('0x44')][_0x1150('0x2b')]({'where':{'id':_0x5526f3[_0x1150('0x57')]['id']}})['then'](handleEntityNotFound(_0x29a4cd,null))[_0x1150('0x24')](function(_0x4edcb0){if(_0x4edcb0){_0xf419aa=_0x4edcb0;return _0x4edcb0[_0x1150('0x91')](_0x5526f3['body'][_0x1150('0x7d')],_[_0x1150('0x5a')](_0x5526f3['body'],['ids','id'])||{})['spread'](function(_0x1faa4d){for(var _0x23ea41=0x0;_0x23ea41<_0x5526f3['body'][_0x1150('0x7d')]['length'];_0x23ea41+=0x1){socket[_0x1150('0x7b')](_0x1150('0x7c'),{'UserId':Number(_0x5526f3[_0x1150('0x4f')][_0x1150('0x7d')][_0x23ea41]),'VoiceQueueId':Number(_0x5526f3['params']['id'])});}return _0x1faa4d;});}})['then'](function(_0x127a23){_0x3b47d9=_0x127a23||[];if(_0xf419aa){return db[_0x1150('0x6c')][_0x1150('0x47')]({'where':{'id':_0x5526f3[_0x1150('0x4f')][_0x1150('0x7d')]},'attributes':['id',_0x1150('0x2d'),_0x1150('0x92'),_0x1150('0x6e'),_0x1150('0x6f')],'raw':!![]});}})[_0x1150('0x24')](function(_0x5ef860){if(!_[_0x1150('0x8f')](_0x5ef860)){var _0x517d21=[];for(var _0x343c64=0x0;_0x343c64<_0x5ef860[_0x1150('0x3a')];_0x343c64++){if(_0x5ef860[_0x343c64][_0x1150('0x92')]){_0x517d21[_0x1150('0x86')](db[_0x1150('0x79')][_0x1150('0x77')]({'membername':_0x5ef860[_0x343c64]['name'],'UserId':_0x5ef860[_0x343c64]['id'],'queue_name':_0xf419aa[_0x1150('0x2d')],'VoiceQueueId':_0xf419aa['id'],'interface':_[_0x1150('0x93')](_0x5ef860[_0x343c64]['interface'])?util[_0x1150('0x94')]('SIP/%s',_0x5ef860[_0x343c64]['name']):_0x5ef860[_0x343c64]['interface'],'paused':_0x5ef860[_0x343c64][_0x1150('0x6e')]||![],'penalty':_0x5526f3[_0x1150('0x4f')][_0x1150('0x72')]||0x0}));}}return BPromise[_0x1150('0x8c')](_0x517d21);}})[_0x1150('0x24')](function(){return _0x3b47d9;})['then'](respondWithResult(_0x29a4cd,null))['catch'](handleError(_0x29a4cd,null));};exports['removeAgents']=function(_0x5eaf9d,_0x594bce,_0x47f730){return db[_0x1150('0x44')][_0x1150('0x2b')]({'where':{'id':_0x5eaf9d[_0x1150('0x57')]['id']}})[_0x1150('0x24')](handleEntityNotFound(_0x594bce,null))[_0x1150('0x24')](function(_0x103d2c){if(_0x103d2c){return _0x103d2c[_0x1150('0x95')](_0x5eaf9d[_0x1150('0x36')]['ids'])[_0x1150('0x24')](function(){if(_[_0x1150('0x96')](_0x5eaf9d[_0x1150('0x36')][_0x1150('0x7d')])){for(var _0x41256c=0x0;_0x41256c<_0x5eaf9d[_0x1150('0x36')][_0x1150('0x7d')][_0x1150('0x3a')];_0x41256c+=0x1){socket[_0x1150('0x7b')](_0x1150('0x90'),{'UserId':Number(_0x5eaf9d[_0x1150('0x36')][_0x1150('0x7d')][_0x41256c]),'VoiceQueueId':Number(_0x5eaf9d[_0x1150('0x57')]['id'])});}}else{socket[_0x1150('0x7b')](_0x1150('0x90'),{'UserId':Number(_0x5eaf9d['query']['ids']),'VoiceQueueId':Number(_0x5eaf9d[_0x1150('0x57')]['id'])});}});}})[_0x1150('0x24')](function(_0x563c66){return db['UserVoiceQueueRt'][_0x1150('0x5c')]({'where':{'VoiceQueueId':_0x5eaf9d[_0x1150('0x57')]['id'],'UserId':_0x5eaf9d[_0x1150('0x36')][_0x1150('0x7d')]}})['then'](function(){return _0x563c66;});})[_0x1150('0x24')](respondWithStatusCode(_0x594bce,null))[_0x1150('0x4d')](handleError(_0x594bce,null));};exports['getAgents']=function(_0x75f096,_0x196671,_0x373542){var _0x1dfad3={};var _0x5b3b2f={};var _0x18ac22;var _0xd32f60;return db[_0x1150('0x44')][_0x1150('0x5e')]({'where':{'id':_0x75f096[_0x1150('0x57')]['id']}})[_0x1150('0x24')](handleEntityNotFound(_0x196671,null))[_0x1150('0x24')](function(_0x52a260){if(_0x52a260){_0x18ac22=_0x52a260;_0x5b3b2f[_0x1150('0x35')]=_[_0x1150('0x4a')](db[_0x1150('0x6c')][_0x1150('0x49')]);_0x5b3b2f['query']=_[_0x1150('0x4a')](_0x75f096[_0x1150('0x36')]);_0x5b3b2f[_0x1150('0x37')]=_[_0x1150('0x38')](_0x5b3b2f[_0x1150('0x35')],_0x5b3b2f[_0x1150('0x36')]);_0x1dfad3[_0x1150('0x39')]=_[_0x1150('0x38')](_0x5b3b2f[_0x1150('0x35')],qs[_0x1150('0x4b')](_0x75f096[_0x1150('0x36')][_0x1150('0x4b')]));_0x1dfad3[_0x1150('0x39')]=_0x1dfad3['attributes'][_0x1150('0x3a')]?_0x1dfad3['attributes']:_0x5b3b2f[_0x1150('0x35')];_0x1dfad3[_0x1150('0x3d')]=qs[_0x1150('0x3e')](_0x75f096['query']['sort']);_0x1dfad3[_0x1150('0x3f')]=qs[_0x1150('0x37')](_[_0x1150('0x40')](_0x75f096['query'],_0x5b3b2f['filters']));if(_0x75f096[_0x1150('0x36')]['filter']){_0x1dfad3[_0x1150('0x3f')]=_[_0x1150('0x42')](_0x1dfad3[_0x1150('0x3f')],{'$or':_['map'](_0x1dfad3[_0x1150('0x39')],function(_0x5158fd){var _0x197e34={};_0x197e34[_0x5158fd]={'$like':'%'+_0x75f096[_0x1150('0x36')]['filter']+'%'};return _0x197e34;})});}_0x1dfad3=_['merge']({},_0x1dfad3,_0x75f096['options']);return _0x18ac22['getAgents'](_0x1dfad3);}})[_0x1150('0x24')](function(_0x2a2dfb){if(_0x2a2dfb){_0xd32f60=_0x2a2dfb[_0x1150('0x3a')];if(!_0x75f096[_0x1150('0x36')][_0x1150('0x3b')](_0x1150('0x3c'))){_0x1dfad3['limit']=qs[_0x1150('0x1e')](_0x75f096[_0x1150('0x36')][_0x1150('0x1e')]);_0x1dfad3['offset']=qs['offset'](_0x75f096[_0x1150('0x36')][_0x1150('0x1d')]);}return _0x18ac22[_0x1150('0x97')](_0x1dfad3);}})[_0x1150('0x24')](function(_0x57a80c){if(_0x57a80c){return _0x57a80c?{'count':_0xd32f60,'rows':_0x57a80c}:null;}})[_0x1150('0x24')](respondWithResult(_0x196671,null))[_0x1150('0x4d')](handleError(_0x196671,null));};exports[_0x1150('0x98')]=function(_0x564e77,_0x506d9f,_0xc31b55){var _0x3b0c6e={};var _0x3c1950={};var _0x1af161;var _0x195f08;return db[_0x1150('0x44')]['findOne']({'where':{'id':_0x564e77[_0x1150('0x57')]['id']}})[_0x1150('0x24')](handleEntityNotFound(_0x506d9f,null))['then'](function(_0x3585c8){if(_0x3585c8){_0x1af161=_0x3585c8;_0x3c1950['model']=_[_0x1150('0x4a')](db[_0x1150('0x79')][_0x1150('0x49')]);_0x3c1950[_0x1150('0x36')]=_[_0x1150('0x4a')](_0x564e77[_0x1150('0x36')]);_0x3c1950['filters']=_[_0x1150('0x38')](_0x3c1950[_0x1150('0x35')],_0x3c1950['query']);_0x3b0c6e['attributes']=_[_0x1150('0x38')](_0x3c1950['model'],qs[_0x1150('0x4b')](_0x564e77[_0x1150('0x36')][_0x1150('0x4b')]));_0x3b0c6e[_0x1150('0x39')]=_0x3b0c6e[_0x1150('0x39')]['length']?_0x3b0c6e[_0x1150('0x39')]:_0x3c1950[_0x1150('0x35')];_0x3b0c6e[_0x1150('0x3d')]=qs[_0x1150('0x3e')](_0x564e77['query'][_0x1150('0x3e')]);_0x3b0c6e[_0x1150('0x3f')]=qs['filters'](_['pick'](_0x564e77[_0x1150('0x36')],_0x3c1950['filters']));if(_0x564e77[_0x1150('0x36')][_0x1150('0x41')]){_0x3b0c6e['where']=_['merge'](_0x3b0c6e[_0x1150('0x3f')],{'$or':_['map'](_0x3b0c6e[_0x1150('0x39')],function(_0x70cc6f){var _0x2e56b3={};_0x2e56b3[_0x70cc6f]={'$like':'%'+_0x564e77[_0x1150('0x36')]['filter']+'%'};return _0x2e56b3;})});}_0x3b0c6e=_[_0x1150('0x42')]({},_0x3b0c6e,_0x564e77[_0x1150('0x4c')]);return _0x1af161[_0x1150('0x98')](_0x3b0c6e);}})[_0x1150('0x24')](function(_0x98fdd9){if(_0x98fdd9){_0x195f08=_0x98fdd9[_0x1150('0x3a')];if(!_0x564e77[_0x1150('0x36')][_0x1150('0x3b')]('nolimit')){_0x3b0c6e[_0x1150('0x1e')]=qs[_0x1150('0x1e')](_0x564e77[_0x1150('0x36')][_0x1150('0x1e')]);_0x3b0c6e[_0x1150('0x1d')]=qs['offset'](_0x564e77[_0x1150('0x36')][_0x1150('0x1d')]);}return _0x1af161[_0x1150('0x98')](_0x3b0c6e);}})['then'](function(_0x55e656){return _0x55e656?{'count':_0x195f08,'rows':_0x55e656}:null;})[_0x1150('0x24')](respondWithResult(_0x506d9f,null))[_0x1150('0x4d')](handleError(_0x506d9f,null));};exports[_0x1150('0x99')]=function(_0x5b3eef,_0x1fa1ed,_0x57772a){var _0x1e8d9f={};var _0x12790b={};var _0x23f6f2;var _0x49fc01;return db[_0x1150('0x44')][_0x1150('0x5e')]({'where':{'id':_0x5b3eef['params']['id']}})[_0x1150('0x24')](handleEntityNotFound(_0x1fa1ed,null))['then'](function(_0x465ab7){if(_0x465ab7){_0x23f6f2=_0x465ab7;_0x12790b[_0x1150('0x35')]=_[_0x1150('0x4a')](db[_0x1150('0x9a')][_0x1150('0x49')]);_0x12790b[_0x1150('0x36')]=_[_0x1150('0x4a')](_0x5b3eef['query']);_0x12790b[_0x1150('0x37')]=_[_0x1150('0x38')](_0x12790b[_0x1150('0x35')],_0x12790b[_0x1150('0x36')]);_0x1e8d9f['attributes']=_[_0x1150('0x38')](_0x12790b[_0x1150('0x35')],qs[_0x1150('0x4b')](_0x5b3eef[_0x1150('0x36')]['fields']));_0x1e8d9f[_0x1150('0x39')]=_0x1e8d9f[_0x1150('0x39')][_0x1150('0x3a')]?_0x1e8d9f['attributes']:_0x12790b[_0x1150('0x35')];_0x1e8d9f[_0x1150('0x3d')]=qs['sort'](_0x5b3eef[_0x1150('0x36')][_0x1150('0x3e')]);_0x1e8d9f[_0x1150('0x3f')]=qs['filters'](_[_0x1150('0x40')](_0x5b3eef['query'],_0x12790b[_0x1150('0x37')]));if(_0x5b3eef[_0x1150('0x36')][_0x1150('0x41')]){_0x1e8d9f['where']=_['merge'](_0x1e8d9f[_0x1150('0x3f')],{'$or':_[_0x1150('0x29')](_0x1e8d9f[_0x1150('0x39')],function(_0x47fce8){var _0x4d88f0={};_0x4d88f0[_0x47fce8]={'$like':'%'+_0x5b3eef['query'][_0x1150('0x41')]+'%'};return _0x4d88f0;})});}_0x1e8d9f=_[_0x1150('0x42')]({},_0x1e8d9f,_0x5b3eef[_0x1150('0x4c')]);return _0x23f6f2['getLists'](_0x1e8d9f);}})[_0x1150('0x24')](function(_0x23eb88){if(_0x23eb88){_0x49fc01=_0x23eb88[_0x1150('0x3a')];if(!_0x5b3eef['query']['hasOwnProperty'](_0x1150('0x3c'))){_0x1e8d9f[_0x1150('0x1e')]=qs[_0x1150('0x1e')](_0x5b3eef[_0x1150('0x36')][_0x1150('0x1e')]);_0x1e8d9f[_0x1150('0x1d')]=qs[_0x1150('0x1d')](_0x5b3eef['query']['offset']);}return _0x23f6f2['getLists'](_0x1e8d9f);}})['then'](function(_0x2c2b6b){if(_0x2c2b6b){return _0x2c2b6b?{'count':_0x49fc01,'rows':_0x2c2b6b}:null;}})[_0x1150('0x24')](respondWithResult(_0x1fa1ed,null))[_0x1150('0x4d')](handleError(_0x1fa1ed,null));};exports[_0x1150('0x9b')]=function(_0x1d0334,_0x42a402,_0x2e3739){var _0x5517dc,_0x27de1c;return db[_0x1150('0x44')][_0x1150('0x2b')]({'where':{'id':_0x1d0334[_0x1150('0x57')]['id']}})[_0x1150('0x24')](handleEntityNotFound(_0x42a402,null))[_0x1150('0x24')](function(_0x533921){if(_0x533921){_0x27de1c=_0x533921;return _0x533921[_0x1150('0x9b')](_0x1d0334[_0x1150('0x4f')][_0x1150('0x7d')],_[_0x1150('0x5a')](_0x1d0334[_0x1150('0x4f')],[_0x1150('0x7d'),'id'])||{});}return null;})['spread'](function(_0x1e71f2){var _0x599cde;_0x5517dc=_0x1e71f2||[];var _0x3b2ee9=[];if(_0x1e71f2){for(var _0x2885a9=0x0;_0x2885a9<_0x1e71f2[_0x1150('0x3a')];_0x2885a9+=0x1){var _0x910e4d=_0x1e71f2[_0x2885a9][_0x1150('0x25')]({'plain':!![]});_0x27de1c[_0x1150('0x9c')]=_0x1d0334['body'][_0x1150('0x9c')]?_0x1d0334[_0x1150('0x4f')][_0x1150('0x9c')]:_0x27de1c[_0x1150('0x9c')];switch(_0x27de1c[_0x1150('0x9c')]){case'always':_0x599cde=squel[_0x1150('0x9d')]()[_0x1150('0x9e')]('cm_hopper')['fromQuery']([_0x1150('0x9f'),_0x1150('0xa0'),_0x1150('0xa1'),_0x1150('0xa2'),'VoiceQueueId','createdAt',_0x1150('0x59')],squel[_0x1150('0x7e')]()[_0x1150('0x7f')]('phone','phone')[_0x1150('0x7f')](_0x1150('0xa3'),_0x1150('0xa0'))['field']('id',_0x1150('0xa1'))[_0x1150('0x7f')](_0x910e4d[_0x1150('0xa4')][_0x1150('0x87')](),_0x1150('0xa2'))[_0x1150('0x7f')](_0x1d0334[_0x1150('0x57')]['id'][_0x1150('0x87')](),_0x1150('0x60'))['field'](_0x1150('0xa3'),_0x1150('0x58'))[_0x1150('0x7f')](_0x1150('0xa3'),_0x1150('0x59'))[_0x1150('0x81')](_0x1150('0xa5'))[_0x1150('0x3f')]('deletedAt\x20IS\x20NULL')['where'](_0x1150('0xa6'),_0x910e4d['CmListId'][_0x1150('0x87')]())[_0x1150('0x3f')](_0x1150('0xa7'))[_0x1150('0x3f')](_0x1150('0xa8'),squel[_0x1150('0x7e')]()['field']('COALESCE(calleridnum,\x27\x27)')[_0x1150('0x81')]('cm_hopper_final')[_0x1150('0x3f')](_0x1150('0x85'),_0x1d0334[_0x1150('0x57')]['id']['toString']()))[_0x1150('0x3f')](_0x1150('0xa8'),squel[_0x1150('0x7e')]()[_0x1150('0x7f')](_0x1150('0xa9'))[_0x1150('0x81')](_0x1150('0xaa'))[_0x1150('0x3f')](_0x1150('0x85'),_0x1d0334[_0x1150('0x57')]['id']['toString']())))['toString']();break;case _0x1150('0xab'):_0x599cde=squel['insert']()[_0x1150('0x9e')](_0x1150('0xaa'))['fromQuery']([_0x1150('0x9f'),_0x1150('0xa0'),_0x1150('0xa1'),_0x1150('0xa2'),'VoiceQueueId',_0x1150('0x58'),_0x1150('0x59')],squel[_0x1150('0x7e')]()[_0x1150('0x7f')](_0x1150('0x9f'),'phone')[_0x1150('0x7f')](_0x1150('0xa3'),_0x1150('0xa0'))[_0x1150('0x7f')]('id','ContactId')[_0x1150('0x7f')](_0x910e4d['CmListId'][_0x1150('0x87')](),_0x1150('0xa2'))[_0x1150('0x7f')](_0x1d0334['params']['id'][_0x1150('0x87')](),_0x1150('0x60'))[_0x1150('0x7f')](_0x1150('0xa3'),_0x1150('0x58'))[_0x1150('0x7f')](_0x1150('0xa3'),_0x1150('0x59'))[_0x1150('0x81')](_0x1150('0xa5'))[_0x1150('0x3f')](_0x1150('0xac'))[_0x1150('0x3f')]('ListId\x20=\x20?',_0x910e4d[_0x1150('0xa4')][_0x1150('0x87')]())[_0x1150('0x3f')](_0x1150('0xa7'))['where'](_0x1150('0xa8'),squel[_0x1150('0x7e')]()['field'](_0x1150('0xa9'))[_0x1150('0x81')](_0x1150('0xaa'))[_0x1150('0x3f')](_0x1150('0x85'),_0x1d0334[_0x1150('0x57')]['id'][_0x1150('0x87')]())))[_0x1150('0x87')]();break;default:_0x599cde=squel[_0x1150('0x9d')]()['into'](_0x1150('0xaa'))[_0x1150('0xad')]([_0x1150('0x9f'),_0x1150('0xa0'),_0x1150('0xa1'),'ListId','VoiceQueueId',_0x1150('0x58'),_0x1150('0x59')],squel[_0x1150('0x7e')]()[_0x1150('0x7f')](_0x1150('0x9f'),_0x1150('0x9f'))[_0x1150('0x7f')](_0x1150('0xa3'),_0x1150('0xa0'))[_0x1150('0x7f')]('id',_0x1150('0xa1'))['field'](_0x910e4d[_0x1150('0xa4')][_0x1150('0x87')](),_0x1150('0xa2'))['field'](_0x1d0334[_0x1150('0x57')]['id'][_0x1150('0x87')](),_0x1150('0x60'))[_0x1150('0x7f')](_0x1150('0xa3'),_0x1150('0x58'))['field'](_0x1150('0xa3'),_0x1150('0x59'))[_0x1150('0x81')]('cm_contacts')[_0x1150('0x3f')](_0x1150('0xac'))[_0x1150('0x3f')](_0x1150('0xa6'),_0x910e4d[_0x1150('0xa4')]['toString']())[_0x1150('0x3f')](_0x1150('0xa7')))[_0x1150('0x87')]();}_0x3b2ee9[_0x1150('0x86')](db['sequelize']['query'](_0x599cde));}return BPromise[_0x1150('0x8c')](_0x3b2ee9);}})['then'](function(){return _0x5517dc;})[_0x1150('0x24')](respondWithResult(_0x42a402,null))[_0x1150('0x4d')](handleError(_0x42a402,null));};exports[_0x1150('0xae')]=function(_0x87acf8,_0x40a1ae,_0x18193d){return db[_0x1150('0x44')][_0x1150('0x2b')]({'where':{'id':_0x87acf8[_0x1150('0x57')]['id']}})[_0x1150('0x24')](handleEntityNotFound(_0x40a1ae,null))[_0x1150('0x24')](function(_0xac6355){if(_0xac6355){return _0xac6355[_0x1150('0xae')](_0x87acf8['query'][_0x1150('0x7d')]);}})[_0x1150('0x24')](function(_0x1d92de){if(_0x1d92de){return db[_0x1150('0x5f')][_0x1150('0x5c')]({'where':{'ListId':_0x87acf8['query'][_0x1150('0x7d')],'VoiceQueueId':_0x87acf8[_0x1150('0x57')]['id']}})['then'](function(){return _0x1d92de;});}})[_0x1150('0x24')](respondWithStatusCode(_0x40a1ae,null))[_0x1150('0x4d')](handleError(_0x40a1ae,null));};exports[_0x1150('0xaf')]=function(_0xa9c124,_0x2546f6,_0x1fcab2){var _0x3d5e4f={};var _0x5e2859={};var _0x48c359;var _0x4440f3;return db[_0x1150('0x44')][_0x1150('0x5e')]({'where':{'id':_0xa9c124[_0x1150('0x57')]['id']}})[_0x1150('0x24')](handleEntityNotFound(_0x2546f6,null))[_0x1150('0x24')](function(_0x2ac80d){if(_0x2ac80d){_0x48c359=_0x2ac80d;_0x5e2859[_0x1150('0x35')]=_[_0x1150('0x4a')](db['CmList'][_0x1150('0x49')]);_0x5e2859[_0x1150('0x36')]=_['keys'](_0xa9c124[_0x1150('0x36')]);_0x5e2859[_0x1150('0x37')]=_[_0x1150('0x38')](_0x5e2859[_0x1150('0x35')],_0x5e2859['query']);_0x3d5e4f[_0x1150('0x39')]=_[_0x1150('0x38')](_0x5e2859[_0x1150('0x35')],qs[_0x1150('0x4b')](_0xa9c124[_0x1150('0x36')][_0x1150('0x4b')]));_0x3d5e4f[_0x1150('0x39')]=_0x3d5e4f['attributes']['length']?_0x3d5e4f[_0x1150('0x39')]:_0x5e2859[_0x1150('0x35')];_0x3d5e4f[_0x1150('0x3d')]=qs[_0x1150('0x3e')](_0xa9c124[_0x1150('0x36')]['sort']);_0x3d5e4f[_0x1150('0x3f')]=qs['filters'](_[_0x1150('0x40')](_0xa9c124[_0x1150('0x36')],_0x5e2859[_0x1150('0x37')]));if(_0xa9c124[_0x1150('0x36')]['filter']){_0x3d5e4f['where']=_[_0x1150('0x42')](_0x3d5e4f['where'],{'$or':_['map'](_0x3d5e4f['attributes'],function(_0x326c00){var _0xd22ab3={};_0xd22ab3[_0x326c00]={'$like':'%'+_0xa9c124[_0x1150('0x36')][_0x1150('0x41')]+'%'};return _0xd22ab3;})});}_0x3d5e4f=_[_0x1150('0x42')]({},_0x3d5e4f,_0xa9c124[_0x1150('0x4c')]);return _0x48c359[_0x1150('0xaf')](_0x3d5e4f);}})['then'](function(_0x1ac6b7){if(_0x1ac6b7){_0x4440f3=_0x1ac6b7[_0x1150('0x3a')];if(!_0xa9c124[_0x1150('0x36')][_0x1150('0x3b')](_0x1150('0x3c'))){_0x3d5e4f[_0x1150('0x1e')]=qs[_0x1150('0x1e')](_0xa9c124[_0x1150('0x36')][_0x1150('0x1e')]);_0x3d5e4f[_0x1150('0x1d')]=qs[_0x1150('0x1d')](_0xa9c124[_0x1150('0x36')][_0x1150('0x1d')]);}return _0x48c359[_0x1150('0xaf')](_0x3d5e4f);}})[_0x1150('0x24')](function(_0x285255){if(_0x285255){return _0x285255?{'count':_0x4440f3,'rows':_0x285255}:null;}})[_0x1150('0x24')](respondWithResult(_0x2546f6,null))[_0x1150('0x4d')](handleError(_0x2546f6,null));};exports[_0x1150('0xb0')]=function(_0xb562df,_0x36f8d4,_0x4bfba7){var _0x4bad31,_0x5e6e59;return db[_0x1150('0x44')][_0x1150('0x2b')]({'where':{'id':_0xb562df[_0x1150('0x57')]['id']}})[_0x1150('0x24')](handleEntityNotFound(_0x36f8d4,null))[_0x1150('0x24')](function(_0x430bf8){if(_0x430bf8){_0x5e6e59=_0x430bf8;return _0x430bf8[_0x1150('0xb0')](_0xb562df[_0x1150('0x4f')][_0x1150('0x7d')],_[_0x1150('0x5a')](_0xb562df[_0x1150('0x4f')],['ids','id'])||{});}return null;})[_0x1150('0xb1')](function(_0xde94bf){var _0x2a2c14;_0x4bad31=_0xde94bf||[];var _0x2e28b9=[];if(_0xde94bf){for(var _0x35d1f3=0x0;_0x35d1f3<_0xde94bf[_0x1150('0x3a')];_0x35d1f3+=0x1){var _0x2d36e4=_0xde94bf[_0x35d1f3][_0x1150('0x25')]({'plain':!![]});_0x2a2c14=squel[_0x1150('0x9d')]()[_0x1150('0x9e')]('cm_hopper_black')[_0x1150('0xad')]([_0x1150('0x9f'),_0x1150('0xa1'),_0x1150('0xa2'),'VoiceQueueId',_0x1150('0x58'),'updatedAt'],squel[_0x1150('0x7e')]()['field'](_0x1150('0x9f'),_0x1150('0x9f'))[_0x1150('0x7f')]('id',_0x1150('0xa1'))['field'](_0x2d36e4['CmListId'][_0x1150('0x87')](),_0x1150('0xa2'))[_0x1150('0x7f')](_0xb562df[_0x1150('0x57')]['id'][_0x1150('0x87')](),_0x1150('0x60'))[_0x1150('0x7f')](_0x1150('0xa3'),_0x1150('0x58'))[_0x1150('0x7f')](_0x1150('0xa3'),_0x1150('0x59'))[_0x1150('0x81')]('cm_contacts')['where'](_0x1150('0xac'))[_0x1150('0x3f')]('ListId\x20=\x20?',_0x2d36e4['CmListId'][_0x1150('0x87')]())['where']('phone\x20IS\x20NOT\x20NULL'))['toString']();_0x2e28b9[_0x1150('0x86')](db[_0x1150('0x73')][_0x1150('0x36')](_0x2a2c14));}return BPromise[_0x1150('0x8c')](_0x2e28b9);}})[_0x1150('0x24')](function(){return _0x4bad31;})[_0x1150('0x24')](respondWithResult(_0x36f8d4,null))[_0x1150('0x4d')](handleError(_0x36f8d4,null));};exports['removeBlackLists']=function(_0x1c8864,_0x215c10,_0x27eb53){return db[_0x1150('0x44')][_0x1150('0x2b')]({'where':{'id':_0x1c8864['params']['id']}})['then'](handleEntityNotFound(_0x215c10,null))[_0x1150('0x24')](function(_0x2ffb0e){if(_0x2ffb0e){return _0x2ffb0e[_0x1150('0xb2')](_0x1c8864[_0x1150('0x36')]['ids']);}})[_0x1150('0x24')](function(_0x851cb7){if(_0x851cb7){return db[_0x1150('0x67')][_0x1150('0x5c')]({'where':{'ListId':_0x1c8864[_0x1150('0x36')][_0x1150('0x7d')],'VoiceQueueId':_0x1c8864[_0x1150('0x57')]['id']}})[_0x1150('0x24')](function(){return _0x851cb7;});}})[_0x1150('0x24')](respondWithStatusCode(_0x215c10,null))['catch'](handleError(_0x215c10,null));};
\ No newline at end of file
+var _0x08f5=['addLists','dialCheckDuplicateType','always','insert','fromQuery','phone','scheduledAt','ContactId','ListId','NOW()','CmListId','from','cm_contacts','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','cm_hopper_final','COALESCE(phone,\x27\x27)','VoiceQueueId\x20=\x20?','onlyIfOpen','into','cm_hopper','deletedAt\x20IS\x20NULL','removeLists','getBlackLists','addBlackLists','cm_hopper_black','removeBlackLists','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','socket.io-emitter','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','get','VoiceQueues','inbound','QueueCampaigns','outbound','ignore','map','value','includes','find','type','error','stack','name','send','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','VoiceQueue','includeAll','include','catch','show','params','fields','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','omit','createdAt','updatedAt','body','UserProfileSection','getHoppers','findOne','CmHopper','findAll','rows','CmHopperHistory','getHopperFinals','CmHopperFinal','rawAttributes','CmHopperBlack','VoiceQueueId','getTeams','Team','addTeams','teams','User','Agents','online','voicePause','interface','flatMap','penalty','sequelize','transaction','each','TeamVoiceQueue','upsert','UserVoiceQueue','findOrCreate','UserVoiceQueueRt','isNil','SIP/%s','forEach','emit','select','field','team_has_voice_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ut.UserId\x20=\x20?','push','toString','SELECT','every','TeamId','all','compact','ids','isEmpty','removeAgents','addAgents','spread','userVoiceQueue:save','format','isArray','userVoiceQueue:remove','getAgents','getMembers','getLists','CmList'];(function(_0x1a57d6,_0x4e36d6){var _0x2d98f4=function(_0x4e854d){while(--_0x4e854d){_0x1a57d6['push'](_0x1a57d6['shift']());}};_0x2d98f4(++_0x4e36d6);}(_0x08f5,0x18c));var _0x508f=function(_0x28fbbf,_0x11f896){_0x28fbbf=_0x28fbbf-0x0;var _0x543af6=_0x08f5[_0x28fbbf];return _0x543af6;};'use strict';var emlformat=require(_0x508f('0x0'));var rimraf=require(_0x508f('0x1'));var zipdir=require(_0x508f('0x2'));var jsonpatch=require(_0x508f('0x3'));var rp=require(_0x508f('0x4'));var moment=require('moment');var BPromise=require(_0x508f('0x5'));var Mustache=require('mustache');var util=require(_0x508f('0x6'));var path=require('path');var sox=require(_0x508f('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x508f('0x8'));var _=require(_0x508f('0x9'));var squel=require(_0x508f('0xa'));var crypto=require(_0x508f('0xb'));var jsforce=require(_0x508f('0xc'));var deskjs=require(_0x508f('0xd'));var toCsv=require(_0x508f('0xe'));var querystring=require(_0x508f('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x508f('0x10'));var as=require(_0x508f('0x11'));var hardwareService=require(_0x508f('0x12'));var logger=require(_0x508f('0x13'))(_0x508f('0x14'));var utils=require(_0x508f('0x15'));var config=require(_0x508f('0x16'));var licenseUtil=require(_0x508f('0x17'));var db=require('../../mysqldb')['db'];config[_0x508f('0x18')]=_[_0x508f('0x19')](config[_0x508f('0x18')],{'host':'localhost','port':0x18eb});var socket=require(_0x508f('0x1a'))(new Redis(config[_0x508f('0x18')]));require('./voiceQueue.socket')['register'](socket);function respondWithStatusCode(_0x476685,_0x19a8de){_0x19a8de=_0x19a8de||0xcc;return function(_0x131c71){if(_0x131c71){return _0x476685[_0x508f('0x1b')](_0x19a8de);}return _0x476685[_0x508f('0x1c')](_0x19a8de)[_0x508f('0x1d')]();};}function respondWithResult(_0x499e49,_0x1a2908){_0x1a2908=_0x1a2908||0xc8;return function(_0x3010e4){if(_0x3010e4){return _0x499e49[_0x508f('0x1c')](_0x1a2908)[_0x508f('0x1e')](_0x3010e4);}};}function respondWithFilteredResult(_0x3b5cfd,_0x53e6dd){return function(_0x134547){if(_0x134547){var _0x57e1f2=typeof _0x53e6dd[_0x508f('0x1f')]===_0x508f('0x20')&&typeof _0x53e6dd[_0x508f('0x21')]==='undefined';var _0x2c9920=_0x134547[_0x508f('0x22')];var _0x550ecf=_0x57e1f2?0x0:_0x53e6dd[_0x508f('0x1f')];var _0xa387a9=_0x57e1f2?_0x134547[_0x508f('0x22')]:_0x53e6dd[_0x508f('0x1f')]+_0x53e6dd[_0x508f('0x21')];var _0x2343ec;if(_0xa387a9>=_0x2c9920){_0xa387a9=_0x2c9920;_0x2343ec=0xc8;}else{_0x2343ec=0xce;}_0x3b5cfd[_0x508f('0x1c')](_0x2343ec);return _0x3b5cfd[_0x508f('0x23')](_0x508f('0x24'),_0x550ecf+'-'+_0xa387a9+'/'+_0x2c9920)[_0x508f('0x1e')](_0x134547);}return null;};}function patchUpdates(_0x283803){return function(_0x29dd02){try{jsonpatch[_0x508f('0x25')](_0x29dd02,_0x283803,!![]);}catch(_0x46f20c){return BPromise[_0x508f('0x26')](_0x46f20c);}return _0x29dd02[_0x508f('0x27')]();};}function saveUpdates(_0x91065e,_0x5f4e83){return function(_0x48ed45){if(_0x48ed45){return _0x48ed45[_0x508f('0x28')](_0x91065e)['then'](function(_0x40ce50){return _0x40ce50;});}return null;};}function removeEntity(_0x48d9ee,_0x1ad92e){return function(_0x51be4b){if(_0x51be4b){return _0x51be4b[_0x508f('0x29')]()[_0x508f('0x2a')](function(){var _0x56f9c0=_0x51be4b[_0x508f('0x2b')]({'plain':!![]});var _0x33cb8e=[{'name':_0x508f('0x2c'),'value':_0x508f('0x2d'),'ignore':![]},{'name':_0x508f('0x2e'),'value':_0x508f('0x2f'),'ignore':![]}];var _0x554bd4=_(_0x33cb8e)['filter'](_0x508f('0x30'))[_0x508f('0x31')](_0x508f('0x32'))[_0x508f('0x32')]();if(_[_0x508f('0x33')](_0x554bd4,_0x56f9c0['type'])){return;}var _0x70af17=_[_0x508f('0x34')](_0x33cb8e,[_0x508f('0x32'),_0x56f9c0[_0x508f('0x35')]])['name'];return db['UserProfileResource']['destroy']({'where':{'type':_0x70af17,'resourceId':_0x56f9c0['id']}})[_0x508f('0x2a')](function(){return _0x51be4b;});})[_0x508f('0x2a')](function(){_0x48d9ee[_0x508f('0x1c')](0xcc)[_0x508f('0x1d')]();});}};}function handleEntityNotFound(_0x54f1b1,_0x3ac7fd){return function(_0x47e732){if(!_0x47e732){_0x54f1b1['sendStatus'](0x194);}return _0x47e732;};}function handleError(_0xf14e59,_0x353b72){_0x353b72=_0x353b72||0x1f4;return function(_0x223f41){logger[_0x508f('0x36')](_0x223f41[_0x508f('0x37')]);if(_0x223f41[_0x508f('0x38')]){delete _0x223f41[_0x508f('0x38')];}_0xf14e59['status'](_0x353b72)[_0x508f('0x39')](_0x223f41);};}exports['index']=function(_0x3c59d6,_0x3faa7b){var _0x2bc514={},_0x541af0={},_0x15c1ad={'count':0x0,'rows':[]};var _0x128ef1=_[_0x508f('0x31')](db['VoiceQueue']['rawAttributes'],function(_0x5aa5a5){return{'name':_0x5aa5a5['fieldName'],'type':_0x5aa5a5[_0x508f('0x35')]['key']};});_0x541af0[_0x508f('0x3a')]=_[_0x508f('0x31')](_0x128ef1,'name');_0x541af0[_0x508f('0x3b')]=_[_0x508f('0x3c')](_0x3c59d6[_0x508f('0x3b')]);_0x541af0[_0x508f('0x3d')]=_[_0x508f('0x3e')](_0x541af0[_0x508f('0x3a')],_0x541af0[_0x508f('0x3b')]);_0x2bc514[_0x508f('0x3f')]=_['intersection'](_0x541af0['model'],qs['fields'](_0x3c59d6[_0x508f('0x3b')]['fields']));_0x2bc514['attributes']=_0x2bc514[_0x508f('0x3f')][_0x508f('0x40')]?_0x2bc514['attributes']:_0x541af0[_0x508f('0x3a')];if(!_0x3c59d6[_0x508f('0x3b')][_0x508f('0x41')](_0x508f('0x42'))){_0x2bc514[_0x508f('0x21')]=qs['limit'](_0x3c59d6[_0x508f('0x3b')][_0x508f('0x21')]);_0x2bc514[_0x508f('0x1f')]=qs[_0x508f('0x1f')](_0x3c59d6[_0x508f('0x3b')][_0x508f('0x1f')]);}_0x2bc514[_0x508f('0x43')]=qs[_0x508f('0x44')](_0x3c59d6[_0x508f('0x3b')]['sort']);_0x2bc514[_0x508f('0x45')]=qs[_0x508f('0x3d')](_[_0x508f('0x46')](_0x3c59d6[_0x508f('0x3b')],_0x541af0[_0x508f('0x3d')]),_0x128ef1);if(_0x3c59d6['query'][_0x508f('0x47')]){_0x2bc514[_0x508f('0x45')]=_[_0x508f('0x48')](_0x2bc514['where'],{'$or':_[_0x508f('0x31')](_0x128ef1,function(_0x218434){if(_0x218434[_0x508f('0x35')]!==_0x508f('0x49')){var _0x56efab={};_0x56efab[_0x218434[_0x508f('0x38')]]={'$like':'%'+_0x3c59d6[_0x508f('0x3b')][_0x508f('0x47')]+'%'};return _0x56efab;}})});}_0x2bc514=_[_0x508f('0x48')]({},_0x2bc514,_0x3c59d6[_0x508f('0x4a')]);var _0xa6c30f={'where':_0x2bc514['where']};return db[_0x508f('0x4b')][_0x508f('0x22')](_0xa6c30f)[_0x508f('0x2a')](function(_0x26c502){_0x15c1ad['count']=_0x26c502;if(_0x3c59d6[_0x508f('0x3b')][_0x508f('0x4c')]){_0x2bc514[_0x508f('0x4d')]=[{'all':!![]}];}return db[_0x508f('0x4b')]['findAll'](_0x2bc514);})[_0x508f('0x2a')](function(_0x37fcce){_0x15c1ad['rows']=_0x37fcce;return _0x15c1ad;})['then'](respondWithFilteredResult(_0x3faa7b,_0x2bc514))[_0x508f('0x4e')](handleError(_0x3faa7b,null));};exports[_0x508f('0x4f')]=function(_0x4c26c6,_0x2b75ca){var _0x2a67cd={'raw':![],'where':{'id':_0x4c26c6[_0x508f('0x50')]['id']}},_0x4dc97f={};_0x4dc97f['model']=_[_0x508f('0x3c')](db['VoiceQueue']['rawAttributes']);_0x4dc97f[_0x508f('0x3b')]=_[_0x508f('0x3c')](_0x4c26c6[_0x508f('0x3b')]);_0x4dc97f[_0x508f('0x3d')]=_[_0x508f('0x3e')](_0x4dc97f['model'],_0x4dc97f[_0x508f('0x3b')]);_0x2a67cd[_0x508f('0x3f')]=_[_0x508f('0x3e')](_0x4dc97f['model'],qs[_0x508f('0x51')](_0x4c26c6[_0x508f('0x3b')][_0x508f('0x51')]));_0x2a67cd['attributes']=_0x2a67cd[_0x508f('0x3f')]['length']?_0x2a67cd[_0x508f('0x3f')]:_0x4dc97f[_0x508f('0x3a')];if(_0x4c26c6[_0x508f('0x3b')][_0x508f('0x4c')]){_0x2a67cd[_0x508f('0x4d')]=[{'all':!![]}];}_0x2a67cd=_['merge']({},_0x2a67cd,_0x4c26c6['options']);return db[_0x508f('0x4b')][_0x508f('0x34')](_0x2a67cd)[_0x508f('0x2a')](handleEntityNotFound(_0x2b75ca,null))[_0x508f('0x2a')](respondWithResult(_0x2b75ca,null))[_0x508f('0x4e')](handleError(_0x2b75ca,null));};exports[_0x508f('0x52')]=function(_0x11a4e6,_0x575d08){return db['VoiceQueue'][_0x508f('0x52')](_0x11a4e6['body'],{})[_0x508f('0x2a')](function(_0x4c96b3){var _0x4386f7=_0x11a4e6[_0x508f('0x53')][_0x508f('0x2b')]({'plain':!![]});if(!_0x4386f7)throw new Error(_0x508f('0x54'));if(_0x4386f7['role']===_0x508f('0x53')){var _0x3f0f30=_0x4c96b3[_0x508f('0x2b')]({'plain':!![]});var _0x4e8cb6=[{'name':'VoiceQueues','value':_0x508f('0x2d')},{'name':'QueueCampaigns','value':_0x508f('0x2f')}];var _0x29699c=_[_0x508f('0x34')](_0x4e8cb6,[_0x508f('0x32'),_0x3f0f30[_0x508f('0x35')]])[_0x508f('0x38')];return db['UserProfileSection']['find']({'where':{'name':_0x29699c,'userProfileId':_0x4386f7[_0x508f('0x55')]},'raw':!![]})['then'](function(_0x2a97bf){if(_0x2a97bf&&_0x2a97bf[_0x508f('0x56')]===0x0){return db[_0x508f('0x57')][_0x508f('0x52')]({'name':_0x3f0f30[_0x508f('0x38')],'resourceId':_0x3f0f30['id'],'type':_0x2a97bf[_0x508f('0x38')],'sectionId':_0x2a97bf['id']},{})[_0x508f('0x2a')](function(){return _0x4c96b3;});}else{return _0x4c96b3;}})[_0x508f('0x4e')](function(_0x520f27){logger['error'](_0x508f('0x58'),_0x520f27);throw _0x520f27;});}return _0x4c96b3;})['then'](respondWithResult(_0x575d08,0xc9))[_0x508f('0x4e')](handleError(_0x575d08,null));};exports[_0x508f('0x59')]=function(_0x2cd8e1,_0x17399b){var _0x1e04a4={'where':{'id':_0x2cd8e1[_0x508f('0x50')]['id']}},_0x3ee95c={};_0x3ee95c['model']=_[_0x508f('0x3c')](db['VoiceQueue']['rawAttributes']);_0x1e04a4['attributes']=_[_0x508f('0x3e')](_0x3ee95c[_0x508f('0x3a')],qs['fields'](_0x2cd8e1[_0x508f('0x3b')][_0x508f('0x51')]));_0x1e04a4['attributes']=_0x1e04a4['attributes'][_0x508f('0x40')]?_0x1e04a4[_0x508f('0x3f')]:_0x3ee95c[_0x508f('0x3a')];if(_0x2cd8e1[_0x508f('0x3b')][_0x508f('0x4c')]){_0x1e04a4[_0x508f('0x4d')]=[{'all':!![]}];}_0x1e04a4=_[_0x508f('0x48')]({},_0x1e04a4,_0x2cd8e1[_0x508f('0x4a')]);return db[_0x508f('0x4b')][_0x508f('0x34')](_0x1e04a4)[_0x508f('0x2a')](handleEntityNotFound(_0x17399b,null))[_0x508f('0x2a')](function(_0x12af4b){if(_0x12af4b){var _0x3577d5=_0x12af4b['get']({'plain':!![]});_0x3577d5=qs[_0x508f('0x5a')](_0x3577d5,['id',_0x508f('0x5b'),_0x508f('0x5c')]);_0x2cd8e1[_0x508f('0x5d')]=_[_0x508f('0x5a')](_0x2cd8e1['body'],['id',_0x508f('0x5b'),_0x508f('0x5c')]);return db[_0x508f('0x4b')][_0x508f('0x52')](_[_0x508f('0x48')](_0x3577d5,_0x2cd8e1['body']),{'include':_0x2cd8e1['query'][_0x508f('0x4c')]?[{'all':!![]}]:undefined})[_0x508f('0x2a')](function(_0xb30466){var _0x3c364d=_0x2cd8e1[_0x508f('0x53')][_0x508f('0x2b')]({'plain':!![]});if(!_0x3c364d)throw new Error(_0x508f('0x54'));if(_0x3c364d['role']===_0x508f('0x53')){var _0x558142=_0xb30466[_0x508f('0x2b')]({'plain':!![]});var _0x2e65a3=[{'name':_0x508f('0x2c'),'value':_0x508f('0x2d')},{'name':_0x508f('0x2e'),'value':_0x508f('0x2f')}];var _0x4ec4de=_[_0x508f('0x34')](_0x2e65a3,[_0x508f('0x32'),_0x558142[_0x508f('0x35')]])[_0x508f('0x38')];return db[_0x508f('0x5e')][_0x508f('0x34')]({'where':{'name':_0x4ec4de,'userProfileId':_0x3c364d[_0x508f('0x55')]},'raw':!![]})[_0x508f('0x2a')](function(_0x578adc){if(_0x578adc&&_0x578adc[_0x508f('0x56')]===0x0){return db[_0x508f('0x57')][_0x508f('0x52')]({'name':_0x558142['name'],'resourceId':_0x558142['id'],'type':_0x578adc[_0x508f('0x38')],'sectionId':_0x578adc['id']},{})[_0x508f('0x2a')](function(){return _0xb30466;});}else{return _0xb30466;}})[_0x508f('0x4e')](function(_0xa17719){logger['error'](_0x508f('0x58'),_0xa17719);throw _0xa17719;});}return _0xb30466;});}})[_0x508f('0x2a')](respondWithResult(_0x17399b,0xc9))[_0x508f('0x4e')](handleError(_0x17399b,null));};exports['update']=function(_0x495fda,_0x515a3){if(_0x495fda['body']['id']){delete _0x495fda[_0x508f('0x5d')]['id'];}return db[_0x508f('0x4b')][_0x508f('0x34')]({'where':{'id':_0x495fda[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](handleEntityNotFound(_0x515a3,null))[_0x508f('0x2a')](saveUpdates(_0x495fda[_0x508f('0x5d')],null))[_0x508f('0x2a')](respondWithResult(_0x515a3,null))['catch'](handleError(_0x515a3,null));};exports[_0x508f('0x29')]=function(_0x2e151b,_0x532a55){return db[_0x508f('0x4b')]['find']({'where':{'id':_0x2e151b[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](handleEntityNotFound(_0x532a55,null))[_0x508f('0x2a')](removeEntity(_0x532a55,null))[_0x508f('0x4e')](handleError(_0x532a55,null));};exports[_0x508f('0x5f')]=function(_0x1fa714,_0x24390a,_0x160cf9){var _0x298e92={'raw':![],'where':{}};var _0x1ccd32={};var _0x3b5f95={'count':0x0,'rows':[]};return db[_0x508f('0x4b')][_0x508f('0x60')]({'where':{'id':_0x1fa714[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](handleEntityNotFound(_0x24390a,null))[_0x508f('0x2a')](function(_0x1fd5bf){if(_0x1fd5bf){_0x1ccd32[_0x508f('0x3a')]=_[_0x508f('0x3c')](db[_0x508f('0x61')]['rawAttributes']);_0x1ccd32[_0x508f('0x3b')]=_['keys'](_0x1fa714[_0x508f('0x3b')]);_0x1ccd32[_0x508f('0x3d')]=_[_0x508f('0x3e')](_0x1ccd32[_0x508f('0x3a')],_0x1ccd32['query']);_0x298e92[_0x508f('0x3f')]=_['intersection'](_0x1ccd32['model'],qs[_0x508f('0x51')](_0x1fa714[_0x508f('0x3b')][_0x508f('0x51')]));_0x298e92[_0x508f('0x3f')]=_0x298e92[_0x508f('0x3f')]['length']?_0x298e92[_0x508f('0x3f')]:_0x1ccd32[_0x508f('0x3a')];if(!_0x1fa714[_0x508f('0x3b')][_0x508f('0x41')](_0x508f('0x42'))){_0x298e92['limit']=qs['limit'](_0x1fa714[_0x508f('0x3b')]['limit']);_0x298e92[_0x508f('0x1f')]=qs[_0x508f('0x1f')](_0x1fa714['query'][_0x508f('0x1f')]);}_0x298e92[_0x508f('0x43')]=qs[_0x508f('0x44')](_0x1fa714['query'][_0x508f('0x44')]);_0x298e92['where']=qs[_0x508f('0x3d')](_[_0x508f('0x46')](_0x1fa714[_0x508f('0x3b')],_0x1ccd32[_0x508f('0x3d')]));_0x298e92['where']['VoiceQueueId']=_0x1fd5bf['id'];if(_0x1fa714[_0x508f('0x3b')][_0x508f('0x47')]){_0x298e92[_0x508f('0x45')]=_[_0x508f('0x48')](_0x298e92[_0x508f('0x45')],{'$or':_[_0x508f('0x31')](_0x298e92[_0x508f('0x3f')],function(_0x4b090f){var _0x537b0f={};_0x537b0f[_0x4b090f]={'$like':'%'+_0x1fa714[_0x508f('0x3b')][_0x508f('0x47')]+'%'};return _0x537b0f;})});}_0x298e92=_['merge']({},_0x298e92,_0x1fa714[_0x508f('0x4a')]);return db[_0x508f('0x61')][_0x508f('0x22')]({'where':_0x298e92[_0x508f('0x45')]})[_0x508f('0x2a')](function(_0x4895b4){_0x3b5f95[_0x508f('0x22')]=_0x4895b4;if(_0x1fa714[_0x508f('0x3b')][_0x508f('0x4c')]){_0x298e92[_0x508f('0x4d')]=[{'all':!![]}];}return db['CmHopper'][_0x508f('0x62')](_0x298e92);})[_0x508f('0x2a')](function(_0x29e9c7){_0x3b5f95[_0x508f('0x63')]=_0x29e9c7;return _0x3b5f95;});}})['then'](respondWithFilteredResult(_0x24390a,_0x298e92))[_0x508f('0x4e')](handleError(_0x24390a,null));};exports['getHopperHistories']=function(_0xff2d04,_0x4f213d,_0x6313d3){var _0x5d0768={'raw':!![],'where':{}};var _0x408466={};var _0x2b42b7={'count':0x0,'rows':[]};return db[_0x508f('0x4b')][_0x508f('0x60')]({'where':{'id':_0xff2d04[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](handleEntityNotFound(_0x4f213d,null))['then'](function(_0x186e7c){if(_0x186e7c){_0x408466[_0x508f('0x3a')]=_[_0x508f('0x3c')](db[_0x508f('0x64')]['rawAttributes']);_0x408466[_0x508f('0x3b')]=_[_0x508f('0x3c')](_0xff2d04[_0x508f('0x3b')]);_0x408466['filters']=_[_0x508f('0x3e')](_0x408466[_0x508f('0x3a')],_0x408466[_0x508f('0x3b')]);_0x5d0768[_0x508f('0x3f')]=_[_0x508f('0x3e')](_0x408466[_0x508f('0x3a')],qs[_0x508f('0x51')](_0xff2d04[_0x508f('0x3b')][_0x508f('0x51')]));_0x5d0768['attributes']=_0x5d0768[_0x508f('0x3f')][_0x508f('0x40')]?_0x5d0768[_0x508f('0x3f')]:_0x408466[_0x508f('0x3a')];if(!_0xff2d04[_0x508f('0x3b')][_0x508f('0x41')](_0x508f('0x42'))){_0x5d0768['limit']=qs['limit'](_0xff2d04[_0x508f('0x3b')][_0x508f('0x21')]);_0x5d0768[_0x508f('0x1f')]=qs['offset'](_0xff2d04['query'][_0x508f('0x1f')]);}_0x5d0768[_0x508f('0x43')]=qs['sort'](_0xff2d04[_0x508f('0x3b')][_0x508f('0x44')]);_0x5d0768['where']=qs[_0x508f('0x3d')](_[_0x508f('0x46')](_0xff2d04[_0x508f('0x3b')],_0x408466[_0x508f('0x3d')]));_0x5d0768[_0x508f('0x45')]['VoiceQueueId']=_0x186e7c['id'];if(_0xff2d04[_0x508f('0x3b')][_0x508f('0x47')]){_0x5d0768['where']=_[_0x508f('0x48')](_0x5d0768['where'],{'$or':_['map'](_0x5d0768[_0x508f('0x3f')],function(_0x1f457e){var _0x2e2d8c={};_0x2e2d8c[_0x1f457e]={'$like':'%'+_0xff2d04[_0x508f('0x3b')][_0x508f('0x47')]+'%'};return _0x2e2d8c;})});}_0x5d0768=_[_0x508f('0x48')]({},_0x5d0768,_0xff2d04[_0x508f('0x4a')]);return db[_0x508f('0x64')][_0x508f('0x22')]({'where':_0x5d0768['where']})[_0x508f('0x2a')](function(_0x87b95e){_0x2b42b7[_0x508f('0x22')]=_0x87b95e;if(_0xff2d04[_0x508f('0x3b')][_0x508f('0x4c')]){_0x5d0768[_0x508f('0x4d')]=[{'all':!![]}];}return db[_0x508f('0x64')][_0x508f('0x62')](_0x5d0768);})[_0x508f('0x2a')](function(_0x1816bc){_0x2b42b7[_0x508f('0x63')]=_0x1816bc;return _0x2b42b7;});}})[_0x508f('0x2a')](respondWithFilteredResult(_0x4f213d,_0x5d0768))[_0x508f('0x4e')](handleError(_0x4f213d,null));};exports[_0x508f('0x65')]=function(_0x504380,_0x31c8aa,_0x151c13){var _0x418da3={'raw':!![],'where':{}};var _0xd6521f={};var _0x41ef59={'count':0x0,'rows':[]};return db[_0x508f('0x4b')][_0x508f('0x60')]({'where':{'id':_0x504380[_0x508f('0x50')]['id']}})['then'](handleEntityNotFound(_0x31c8aa,null))[_0x508f('0x2a')](function(_0x44c65b){if(_0x44c65b){_0xd6521f['model']=_[_0x508f('0x3c')](db[_0x508f('0x66')][_0x508f('0x67')]);_0xd6521f[_0x508f('0x3b')]=_['keys'](_0x504380[_0x508f('0x3b')]);_0xd6521f[_0x508f('0x3d')]=_['intersection'](_0xd6521f[_0x508f('0x3a')],_0xd6521f[_0x508f('0x3b')]);_0x418da3['attributes']=_[_0x508f('0x3e')](_0xd6521f['model'],qs[_0x508f('0x51')](_0x504380[_0x508f('0x3b')][_0x508f('0x51')]));_0x418da3['attributes']=_0x418da3[_0x508f('0x3f')]['length']?_0x418da3[_0x508f('0x3f')]:_0xd6521f[_0x508f('0x3a')];if(!_0x504380['query'][_0x508f('0x41')]('nolimit')){_0x418da3[_0x508f('0x21')]=qs[_0x508f('0x21')](_0x504380['query'][_0x508f('0x21')]);_0x418da3[_0x508f('0x1f')]=qs[_0x508f('0x1f')](_0x504380[_0x508f('0x3b')][_0x508f('0x1f')]);}_0x418da3[_0x508f('0x43')]=qs[_0x508f('0x44')](_0x504380['query']['sort']);_0x418da3['where']=qs['filters'](_[_0x508f('0x46')](_0x504380[_0x508f('0x3b')],_0xd6521f[_0x508f('0x3d')]));_0x418da3['where']['VoiceQueueId']=_0x44c65b['id'];if(_0x504380[_0x508f('0x3b')][_0x508f('0x47')]){_0x418da3[_0x508f('0x45')]=_[_0x508f('0x48')](_0x418da3[_0x508f('0x45')],{'$or':_['map'](_0x418da3[_0x508f('0x3f')],function(_0x8801d5){var _0x4437e6={};_0x4437e6[_0x8801d5]={'$like':'%'+_0x504380[_0x508f('0x3b')]['filter']+'%'};return _0x4437e6;})});}_0x418da3=_[_0x508f('0x48')]({},_0x418da3,_0x504380[_0x508f('0x4a')]);return db['CmHopperFinal']['count']({'where':_0x418da3[_0x508f('0x45')]})[_0x508f('0x2a')](function(_0x5b7996){_0x41ef59[_0x508f('0x22')]=_0x5b7996;if(_0x504380[_0x508f('0x3b')][_0x508f('0x4c')]){_0x418da3['include']=[{'all':!![]}];}return db[_0x508f('0x66')][_0x508f('0x62')](_0x418da3);})['then'](function(_0x53271e){_0x41ef59[_0x508f('0x63')]=_0x53271e;return _0x41ef59;});}})[_0x508f('0x2a')](respondWithFilteredResult(_0x31c8aa,_0x418da3))['catch'](handleError(_0x31c8aa,null));};exports['getHopperBlacks']=function(_0x1c531b,_0x226203,_0x59f81a){var _0x4bf735={'raw':!![],'where':{}};var _0x1fc11e={};var _0x34acc8={'count':0x0,'rows':[]};return db['VoiceQueue'][_0x508f('0x60')]({'where':{'id':_0x1c531b[_0x508f('0x50')]['id']}})['then'](handleEntityNotFound(_0x226203,null))['then'](function(_0x2467ca){if(_0x2467ca){_0x1fc11e[_0x508f('0x3a')]=_[_0x508f('0x3c')](db[_0x508f('0x68')]['rawAttributes']);_0x1fc11e[_0x508f('0x3b')]=_[_0x508f('0x3c')](_0x1c531b[_0x508f('0x3b')]);_0x1fc11e[_0x508f('0x3d')]=_[_0x508f('0x3e')](_0x1fc11e[_0x508f('0x3a')],_0x1fc11e[_0x508f('0x3b')]);_0x4bf735['attributes']=_[_0x508f('0x3e')](_0x1fc11e[_0x508f('0x3a')],qs[_0x508f('0x51')](_0x1c531b[_0x508f('0x3b')][_0x508f('0x51')]));_0x4bf735[_0x508f('0x3f')]=_0x4bf735['attributes'][_0x508f('0x40')]?_0x4bf735['attributes']:_0x1fc11e[_0x508f('0x3a')];if(!_0x1c531b[_0x508f('0x3b')][_0x508f('0x41')](_0x508f('0x42'))){_0x4bf735[_0x508f('0x21')]=qs[_0x508f('0x21')](_0x1c531b[_0x508f('0x3b')]['limit']);_0x4bf735['offset']=qs[_0x508f('0x1f')](_0x1c531b[_0x508f('0x3b')]['offset']);}_0x4bf735[_0x508f('0x43')]=qs[_0x508f('0x44')](_0x1c531b[_0x508f('0x3b')][_0x508f('0x44')]);_0x4bf735['where']=qs[_0x508f('0x3d')](_[_0x508f('0x46')](_0x1c531b[_0x508f('0x3b')],_0x1fc11e[_0x508f('0x3d')]));_0x4bf735[_0x508f('0x45')][_0x508f('0x69')]=_0x2467ca['id'];if(_0x1c531b[_0x508f('0x3b')][_0x508f('0x47')]){_0x4bf735['where']=_['merge'](_0x4bf735[_0x508f('0x45')],{'$or':_[_0x508f('0x31')](_0x4bf735[_0x508f('0x3f')],function(_0x4ebb44){var _0x3f0cd2={};_0x3f0cd2[_0x4ebb44]={'$like':'%'+_0x1c531b[_0x508f('0x3b')][_0x508f('0x47')]+'%'};return _0x3f0cd2;})});}_0x4bf735=_[_0x508f('0x48')]({},_0x4bf735,_0x1c531b['options']);return db[_0x508f('0x68')][_0x508f('0x22')]({'where':_0x4bf735['where']})[_0x508f('0x2a')](function(_0x35443f){_0x34acc8[_0x508f('0x22')]=_0x35443f;if(_0x1c531b['query'][_0x508f('0x4c')]){_0x4bf735['include']=[{'all':!![]}];}return db[_0x508f('0x68')][_0x508f('0x62')](_0x4bf735);})[_0x508f('0x2a')](function(_0x329ab8){_0x34acc8[_0x508f('0x63')]=_0x329ab8;return _0x34acc8;});}})['then'](respondWithFilteredResult(_0x226203,_0x4bf735))[_0x508f('0x4e')](handleError(_0x226203,null));};exports[_0x508f('0x6a')]=function(_0xc9ed16,_0x22beb9,_0x2dd379){var _0x13342c={};var _0x8c582b={};var _0x13c45c;var _0x697fcc;return db[_0x508f('0x4b')][_0x508f('0x60')]({'where':{'id':_0xc9ed16[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](handleEntityNotFound(_0x22beb9,null))['then'](function(_0x1306c2){if(_0x1306c2){_0x13c45c=_0x1306c2;_0x8c582b['model']=_[_0x508f('0x3c')](db[_0x508f('0x6b')]['rawAttributes']);_0x8c582b['query']=_[_0x508f('0x3c')](_0xc9ed16[_0x508f('0x3b')]);_0x8c582b['filters']=_['intersection'](_0x8c582b[_0x508f('0x3a')],_0x8c582b[_0x508f('0x3b')]);_0x13342c[_0x508f('0x3f')]=_[_0x508f('0x3e')](_0x8c582b[_0x508f('0x3a')],qs[_0x508f('0x51')](_0xc9ed16[_0x508f('0x3b')]['fields']));_0x13342c[_0x508f('0x3f')]=_0x13342c['attributes']['length']?_0x13342c['attributes']:_0x8c582b[_0x508f('0x3a')];_0x13342c['order']=qs[_0x508f('0x44')](_0xc9ed16[_0x508f('0x3b')][_0x508f('0x44')]);_0x13342c[_0x508f('0x45')]=qs[_0x508f('0x3d')](_[_0x508f('0x46')](_0xc9ed16[_0x508f('0x3b')],_0x8c582b['filters']));if(_0xc9ed16['query'][_0x508f('0x47')]){_0x13342c[_0x508f('0x45')]=_[_0x508f('0x48')](_0x13342c['where'],{'$or':_[_0x508f('0x31')](_0x13342c['attributes'],function(_0x2dc013){var _0x2c81fa={};_0x2c81fa[_0x2dc013]={'$like':'%'+_0xc9ed16[_0x508f('0x3b')]['filter']+'%'};return _0x2c81fa;})});}_0x13342c=_[_0x508f('0x48')]({},_0x13342c,_0xc9ed16[_0x508f('0x4a')]);return _0x13c45c[_0x508f('0x6a')](_0x13342c);}})[_0x508f('0x2a')](function(_0x689b51){if(_0x689b51){_0x697fcc=_0x689b51[_0x508f('0x40')];if(!_0xc9ed16[_0x508f('0x3b')][_0x508f('0x41')]('nolimit')){_0x13342c[_0x508f('0x21')]=qs[_0x508f('0x21')](_0xc9ed16[_0x508f('0x3b')][_0x508f('0x21')]);_0x13342c[_0x508f('0x1f')]=qs[_0x508f('0x1f')](_0xc9ed16[_0x508f('0x3b')]['offset']);}return _0x13c45c[_0x508f('0x6a')](_0x13342c);}})[_0x508f('0x2a')](function(_0x3f8456){if(_0x3f8456){return _0x3f8456?{'count':_0x697fcc,'rows':_0x3f8456}:null;}})['then'](respondWithResult(_0x22beb9,null))[_0x508f('0x4e')](handleError(_0x22beb9,null));};exports[_0x508f('0x6c')]=function(_0x3ee9e5,_0x1bc7cb,_0xf833f6){var _0x20724a=_0x3ee9e5[_0x508f('0x5d')][_0x508f('0x6d')];var _0x28a15d=_[_0x508f('0x31')](_0x20724a,'id');return db['Team'][_0x508f('0x62')]({'where':{'id':_0x28a15d},'attributes':['id'],'include':[{'model':db[_0x508f('0x6e')],'as':_0x508f('0x6f'),'attributes':['id','name',_0x508f('0x70'),_0x508f('0x71'),_0x508f('0x72')],'raw':!![]}]})[_0x508f('0x2a')](function(_0xb8e889){if(_0xb8e889){var _0x34c0a4=_[_0x508f('0x73')](_0xb8e889,function(_0x72f6ad){var _0x4c5c7b=_0x72f6ad['get']({'plain':!![]});_0x4c5c7b[_0x508f('0x6f')]['forEach'](function(_0xe9ce2c){_0xe9ce2c[_0x508f('0x74')]=_['find'](_0x20724a,{'id':_0x4c5c7b['id']})['penalty'];});return _0x4c5c7b[_0x508f('0x6f')];});return db[_0x508f('0x4b')][_0x508f('0x34')]({'where':{'id':_0x3ee9e5[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](function(_0x3a450d){return db[_0x508f('0x75')][_0x508f('0x76')](function(_0x11f626){return _0x3a450d[_0x508f('0x6c')](_0x28a15d,{'transaction':_0x11f626})['then'](function(){return BPromise[_0x508f('0x77')](_0x20724a,function(_0x379977){return db[_0x508f('0x78')][_0x508f('0x79')]({'TeamId':_0x379977['id'],'VoiceQueueId':_0x3ee9e5[_0x508f('0x50')]['id'],'penalty':_0x379977[_0x508f('0x74')]},{'transaction':_0x11f626});});})['then'](function(){return BPromise[_0x508f('0x77')](_0x34c0a4,function(_0x514cd3){return db[_0x508f('0x7a')][_0x508f('0x7b')]({'where':{'UserId':_0x514cd3['id'],'VoiceQueueId':_0x3ee9e5[_0x508f('0x50')]['id']},'defaults':{'penalty':_0x514cd3[_0x508f('0x74')]},'transaction':_0x11f626});});})['then'](function(){return BPromise[_0x508f('0x77')](_[_0x508f('0x47')](_0x34c0a4,{'online':!![]}),function(_0x4e0bf4){return db[_0x508f('0x7c')]['upsert']({'membername':_0x4e0bf4[_0x508f('0x38')],'UserId':_0x4e0bf4['id'],'queue_name':_0x3a450d[_0x508f('0x38')],'VoiceQueueId':_0x3a450d['id'],'interface':_[_0x508f('0x7d')](_0x4e0bf4['interface'])?util['format'](_0x508f('0x7e'),_0x4e0bf4[_0x508f('0x38')]):_0x4e0bf4[_0x508f('0x72')],'paused':_0x4e0bf4['voicePause']||![],'penalty':_0x4e0bf4[_0x508f('0x74')]},{'transaction':_0x11f626});});})[_0x508f('0x2a')](function(){_0x34c0a4[_0x508f('0x7f')](function(_0x285d20){socket[_0x508f('0x80')]('userVoiceQueue:save',{'UserId':_0x285d20['id'],'VoiceQueueId':_0x3a450d['id']});});});});});}})['then'](respondWithStatusCode(_0x1bc7cb,null))['catch'](handleError(_0x1bc7cb,null));};exports['removeTeams']=function(_0x12bf80,_0x3f156d,_0x362a5e){return db['Team'][_0x508f('0x62')]({'where':{'id':_0x12bf80[_0x508f('0x3b')]['ids']},'attributes':['id'],'include':[{'model':db[_0x508f('0x6e')],'as':_0x508f('0x6f'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x3f156d,null))[_0x508f('0x2a')](function(_0x4e1919){var _0x16eb79=_[_0x508f('0x31')](_0x4e1919,'id');var _0x23398a=[];var _0x505d2a=[];var _0x4c3ed8=squel[_0x508f('0x81')]();_0x4c3ed8[_0x508f('0x82')]('tq.TeamId')['from'](_0x508f('0x83'),'tq')[_0x508f('0x84')](_0x508f('0x85'),'ut',_0x508f('0x86'))[_0x508f('0x45')]('VoiceQueueId\x20=\x20?',_0x12bf80[_0x508f('0x50')]['id']);for(var _0x110712=0x0;_0x110712<_0x4e1919[_0x508f('0x40')];_0x110712+=0x1){let _0x4e61a1=_0x4e1919[_0x110712];for(var _0x2fa740=0x0;_0x2fa740<_0x4e61a1[_0x508f('0x6f')][_0x508f('0x40')];_0x2fa740+=0x1){let _0xe7473a=_0x4e61a1['Agents'][_0x2fa740];var _0x10c99f=_0x4c3ed8[_0x508f('0x59')]();_0x10c99f[_0x508f('0x45')](_0x508f('0x87'),_0xe7473a['id']);_0x505d2a[_0x508f('0x88')](db['sequelize'][_0x508f('0x3b')](_0x10c99f[_0x508f('0x89')](),{'type':db[_0x508f('0x75')]['QueryTypes'][_0x508f('0x8a')]})[_0x508f('0x2a')](function(_0x34369f){if(_0x34369f['length']===0x1){return _0xe7473a['id'];}else{var _0x21add9=_[_0x508f('0x8b')](_[_0x508f('0x31')](_0x34369f,_0x508f('0x8c')),function(_0x2c1de2){return _[_0x508f('0x33')](_0x16eb79,_0x2c1de2);});if(_0x21add9){return _0xe7473a['id'];}}}));}}return BPromise[_0x508f('0x8d')](_0x505d2a)[_0x508f('0x2a')](function(_0x3ecec6){_0x23398a=_(_0x23398a)['union'](_0x3ecec6)[_0x508f('0x8e')]()[_0x508f('0x32')]();return db[_0x508f('0x4b')][_0x508f('0x34')]({'where':{'id':_0x12bf80[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](function(_0x58e3a4){return db[_0x508f('0x75')][_0x508f('0x76')](function(_0x38b977){return _0x58e3a4['removeTeams'](_0x12bf80['query'][_0x508f('0x8f')],{'transaction':_0x38b977})[_0x508f('0x2a')](function(){if(!_[_0x508f('0x90')](_0x23398a)){return _0x58e3a4[_0x508f('0x91')](_0x23398a,{'transaction':_0x38b977})['then'](function(){return db[_0x508f('0x7c')][_0x508f('0x29')]({'where':{'VoiceQueueId':_0x12bf80[_0x508f('0x50')]['id'],'UserId':_0x23398a},'transaction':_0x38b977});});}})[_0x508f('0x2a')](function(){_0x23398a[_0x508f('0x7f')](function(_0x4d4850){socket[_0x508f('0x80')]('userVoiceQueue:remove',{'UserId':_0x4d4850,'VoiceQueueId':_0x58e3a4['id']});});});});});});})['then'](respondWithStatusCode(_0x3f156d,null))[_0x508f('0x4e')](handleError(_0x3f156d,null));};exports[_0x508f('0x92')]=function(_0x7ad923,_0x661828,_0xff708d){var _0x56ac27,_0x20730d;return db[_0x508f('0x4b')]['find']({'where':{'id':_0x7ad923[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](handleEntityNotFound(_0x661828,null))[_0x508f('0x2a')](function(_0x21f5de){if(_0x21f5de){_0x20730d=_0x21f5de;return _0x21f5de[_0x508f('0x92')](_0x7ad923[_0x508f('0x5d')]['ids'],_[_0x508f('0x5a')](_0x7ad923['body'],[_0x508f('0x8f'),'id'])||{})[_0x508f('0x93')](function(_0x5a1b5){for(var _0x259374=0x0;_0x259374<_0x7ad923[_0x508f('0x5d')][_0x508f('0x8f')]['length'];_0x259374+=0x1){socket[_0x508f('0x80')](_0x508f('0x94'),{'UserId':Number(_0x7ad923[_0x508f('0x5d')]['ids'][_0x259374]),'VoiceQueueId':Number(_0x7ad923['params']['id'])});}return _0x5a1b5;});}})[_0x508f('0x2a')](function(_0x494afe){_0x56ac27=_0x494afe||[];if(_0x20730d){return db[_0x508f('0x6e')][_0x508f('0x62')]({'where':{'id':_0x7ad923['body'][_0x508f('0x8f')]},'attributes':['id','name','online',_0x508f('0x71'),_0x508f('0x72')],'raw':!![]});}})[_0x508f('0x2a')](function(_0x177123){if(!_[_0x508f('0x90')](_0x177123)){var _0x3c42ad=[];for(var _0x487a77=0x0;_0x487a77<_0x177123[_0x508f('0x40')];_0x487a77++){if(_0x177123[_0x487a77][_0x508f('0x70')]){_0x3c42ad[_0x508f('0x88')](db[_0x508f('0x7c')][_0x508f('0x79')]({'membername':_0x177123[_0x487a77][_0x508f('0x38')],'UserId':_0x177123[_0x487a77]['id'],'queue_name':_0x20730d[_0x508f('0x38')],'VoiceQueueId':_0x20730d['id'],'interface':_[_0x508f('0x7d')](_0x177123[_0x487a77][_0x508f('0x72')])?util[_0x508f('0x95')](_0x508f('0x7e'),_0x177123[_0x487a77]['name']):_0x177123[_0x487a77]['interface'],'paused':_0x177123[_0x487a77][_0x508f('0x71')]||![],'penalty':_0x7ad923[_0x508f('0x5d')]['penalty']||0x0}));}}return BPromise[_0x508f('0x8d')](_0x3c42ad);}})[_0x508f('0x2a')](function(){return _0x56ac27;})[_0x508f('0x2a')](respondWithResult(_0x661828,null))[_0x508f('0x4e')](handleError(_0x661828,null));};exports[_0x508f('0x91')]=function(_0x31fa19,_0x96152e,_0x552a30){return db[_0x508f('0x4b')][_0x508f('0x34')]({'where':{'id':_0x31fa19[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](handleEntityNotFound(_0x96152e,null))[_0x508f('0x2a')](function(_0x3b773b){if(_0x3b773b){return _0x3b773b[_0x508f('0x91')](_0x31fa19[_0x508f('0x3b')][_0x508f('0x8f')])[_0x508f('0x2a')](function(){if(_[_0x508f('0x96')](_0x31fa19['query'][_0x508f('0x8f')])){for(var _0x41541b=0x0;_0x41541b<_0x31fa19[_0x508f('0x3b')]['ids']['length'];_0x41541b+=0x1){socket[_0x508f('0x80')](_0x508f('0x97'),{'UserId':Number(_0x31fa19['query'][_0x508f('0x8f')][_0x41541b]),'VoiceQueueId':Number(_0x31fa19[_0x508f('0x50')]['id'])});}}else{socket[_0x508f('0x80')](_0x508f('0x97'),{'UserId':Number(_0x31fa19['query'][_0x508f('0x8f')]),'VoiceQueueId':Number(_0x31fa19[_0x508f('0x50')]['id'])});}});}})[_0x508f('0x2a')](function(_0xa91bec){return db[_0x508f('0x7c')]['destroy']({'where':{'VoiceQueueId':_0x31fa19[_0x508f('0x50')]['id'],'UserId':_0x31fa19[_0x508f('0x3b')]['ids']}})[_0x508f('0x2a')](function(){return _0xa91bec;});})[_0x508f('0x2a')](respondWithStatusCode(_0x96152e,null))[_0x508f('0x4e')](handleError(_0x96152e,null));};exports[_0x508f('0x98')]=function(_0x1231ad,_0x1e6c6f,_0x209129){var _0x169456={};var _0x49bb5c={};var _0x389820;var _0x15f4d0;return db[_0x508f('0x4b')][_0x508f('0x60')]({'where':{'id':_0x1231ad[_0x508f('0x50')]['id']}})['then'](handleEntityNotFound(_0x1e6c6f,null))[_0x508f('0x2a')](function(_0x18849a){if(_0x18849a){_0x389820=_0x18849a;_0x49bb5c[_0x508f('0x3a')]=_[_0x508f('0x3c')](db[_0x508f('0x6e')][_0x508f('0x67')]);_0x49bb5c[_0x508f('0x3b')]=_[_0x508f('0x3c')](_0x1231ad[_0x508f('0x3b')]);_0x49bb5c[_0x508f('0x3d')]=_['intersection'](_0x49bb5c[_0x508f('0x3a')],_0x49bb5c[_0x508f('0x3b')]);_0x169456['attributes']=_[_0x508f('0x3e')](_0x49bb5c[_0x508f('0x3a')],qs[_0x508f('0x51')](_0x1231ad[_0x508f('0x3b')]['fields']));_0x169456['attributes']=_0x169456[_0x508f('0x3f')][_0x508f('0x40')]?_0x169456[_0x508f('0x3f')]:_0x49bb5c['model'];_0x169456[_0x508f('0x43')]=qs[_0x508f('0x44')](_0x1231ad[_0x508f('0x3b')][_0x508f('0x44')]);_0x169456[_0x508f('0x45')]=qs[_0x508f('0x3d')](_[_0x508f('0x46')](_0x1231ad[_0x508f('0x3b')],_0x49bb5c[_0x508f('0x3d')]));if(_0x1231ad[_0x508f('0x3b')][_0x508f('0x47')]){_0x169456[_0x508f('0x45')]=_[_0x508f('0x48')](_0x169456['where'],{'$or':_[_0x508f('0x31')](_0x169456[_0x508f('0x3f')],function(_0x5d9caa){var _0x4fa979={};_0x4fa979[_0x5d9caa]={'$like':'%'+_0x1231ad[_0x508f('0x3b')][_0x508f('0x47')]+'%'};return _0x4fa979;})});}_0x169456=_['merge']({},_0x169456,_0x1231ad[_0x508f('0x4a')]);return _0x389820[_0x508f('0x98')](_0x169456);}})[_0x508f('0x2a')](function(_0x480b17){if(_0x480b17){_0x15f4d0=_0x480b17[_0x508f('0x40')];if(!_0x1231ad[_0x508f('0x3b')]['hasOwnProperty'](_0x508f('0x42'))){_0x169456[_0x508f('0x21')]=qs[_0x508f('0x21')](_0x1231ad[_0x508f('0x3b')]['limit']);_0x169456[_0x508f('0x1f')]=qs[_0x508f('0x1f')](_0x1231ad[_0x508f('0x3b')][_0x508f('0x1f')]);}return _0x389820[_0x508f('0x98')](_0x169456);}})[_0x508f('0x2a')](function(_0x15f0c1){if(_0x15f0c1){return _0x15f0c1?{'count':_0x15f4d0,'rows':_0x15f0c1}:null;}})['then'](respondWithResult(_0x1e6c6f,null))['catch'](handleError(_0x1e6c6f,null));};exports['getMembers']=function(_0x5ab14c,_0x53203e,_0x2a923a){var _0x470d08={};var _0x23abae={};var _0x21d696;var _0x40490a;return db[_0x508f('0x4b')]['findOne']({'where':{'id':_0x5ab14c[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](handleEntityNotFound(_0x53203e,null))['then'](function(_0x35f4c9){if(_0x35f4c9){_0x21d696=_0x35f4c9;_0x23abae[_0x508f('0x3a')]=_[_0x508f('0x3c')](db[_0x508f('0x7c')][_0x508f('0x67')]);_0x23abae[_0x508f('0x3b')]=_[_0x508f('0x3c')](_0x5ab14c[_0x508f('0x3b')]);_0x23abae[_0x508f('0x3d')]=_['intersection'](_0x23abae[_0x508f('0x3a')],_0x23abae[_0x508f('0x3b')]);_0x470d08[_0x508f('0x3f')]=_[_0x508f('0x3e')](_0x23abae[_0x508f('0x3a')],qs['fields'](_0x5ab14c['query'][_0x508f('0x51')]));_0x470d08[_0x508f('0x3f')]=_0x470d08[_0x508f('0x3f')]['length']?_0x470d08['attributes']:_0x23abae[_0x508f('0x3a')];_0x470d08[_0x508f('0x43')]=qs[_0x508f('0x44')](_0x5ab14c['query']['sort']);_0x470d08[_0x508f('0x45')]=qs[_0x508f('0x3d')](_[_0x508f('0x46')](_0x5ab14c[_0x508f('0x3b')],_0x23abae[_0x508f('0x3d')]));if(_0x5ab14c[_0x508f('0x3b')][_0x508f('0x47')]){_0x470d08[_0x508f('0x45')]=_[_0x508f('0x48')](_0x470d08['where'],{'$or':_[_0x508f('0x31')](_0x470d08['attributes'],function(_0x238582){var _0x1453cb={};_0x1453cb[_0x238582]={'$like':'%'+_0x5ab14c['query'][_0x508f('0x47')]+'%'};return _0x1453cb;})});}_0x470d08=_['merge']({},_0x470d08,_0x5ab14c['options']);return _0x21d696[_0x508f('0x99')](_0x470d08);}})['then'](function(_0x4b6d21){if(_0x4b6d21){_0x40490a=_0x4b6d21[_0x508f('0x40')];if(!_0x5ab14c['query'][_0x508f('0x41')]('nolimit')){_0x470d08[_0x508f('0x21')]=qs['limit'](_0x5ab14c['query'][_0x508f('0x21')]);_0x470d08['offset']=qs[_0x508f('0x1f')](_0x5ab14c['query'][_0x508f('0x1f')]);}return _0x21d696[_0x508f('0x99')](_0x470d08);}})[_0x508f('0x2a')](function(_0x3cc4e6){return _0x3cc4e6?{'count':_0x40490a,'rows':_0x3cc4e6}:null;})[_0x508f('0x2a')](respondWithResult(_0x53203e,null))['catch'](handleError(_0x53203e,null));};exports[_0x508f('0x9a')]=function(_0x3ec348,_0x597f0d,_0x3e1afb){var _0x3e220e={};var _0x25fbf6={};var _0x1515c;var _0x3e93bc;return db[_0x508f('0x4b')][_0x508f('0x60')]({'where':{'id':_0x3ec348[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](handleEntityNotFound(_0x597f0d,null))[_0x508f('0x2a')](function(_0x5cc3cf){if(_0x5cc3cf){_0x1515c=_0x5cc3cf;_0x25fbf6[_0x508f('0x3a')]=_[_0x508f('0x3c')](db[_0x508f('0x9b')][_0x508f('0x67')]);_0x25fbf6['query']=_['keys'](_0x3ec348[_0x508f('0x3b')]);_0x25fbf6[_0x508f('0x3d')]=_['intersection'](_0x25fbf6[_0x508f('0x3a')],_0x25fbf6[_0x508f('0x3b')]);_0x3e220e['attributes']=_[_0x508f('0x3e')](_0x25fbf6[_0x508f('0x3a')],qs[_0x508f('0x51')](_0x3ec348['query'][_0x508f('0x51')]));_0x3e220e[_0x508f('0x3f')]=_0x3e220e[_0x508f('0x3f')][_0x508f('0x40')]?_0x3e220e['attributes']:_0x25fbf6['model'];_0x3e220e[_0x508f('0x43')]=qs[_0x508f('0x44')](_0x3ec348['query']['sort']);_0x3e220e[_0x508f('0x45')]=qs['filters'](_[_0x508f('0x46')](_0x3ec348[_0x508f('0x3b')],_0x25fbf6['filters']));if(_0x3ec348[_0x508f('0x3b')][_0x508f('0x47')]){_0x3e220e[_0x508f('0x45')]=_[_0x508f('0x48')](_0x3e220e[_0x508f('0x45')],{'$or':_[_0x508f('0x31')](_0x3e220e['attributes'],function(_0x1d0bd2){var _0x1d8ffb={};_0x1d8ffb[_0x1d0bd2]={'$like':'%'+_0x3ec348['query'][_0x508f('0x47')]+'%'};return _0x1d8ffb;})});}_0x3e220e=_[_0x508f('0x48')]({},_0x3e220e,_0x3ec348[_0x508f('0x4a')]);return _0x1515c[_0x508f('0x9a')](_0x3e220e);}})[_0x508f('0x2a')](function(_0x421ba7){if(_0x421ba7){_0x3e93bc=_0x421ba7[_0x508f('0x40')];if(!_0x3ec348[_0x508f('0x3b')][_0x508f('0x41')](_0x508f('0x42'))){_0x3e220e['limit']=qs['limit'](_0x3ec348[_0x508f('0x3b')][_0x508f('0x21')]);_0x3e220e['offset']=qs[_0x508f('0x1f')](_0x3ec348[_0x508f('0x3b')][_0x508f('0x1f')]);}return _0x1515c[_0x508f('0x9a')](_0x3e220e);}})[_0x508f('0x2a')](function(_0x2f78d4){if(_0x2f78d4){return _0x2f78d4?{'count':_0x3e93bc,'rows':_0x2f78d4}:null;}})['then'](respondWithResult(_0x597f0d,null))[_0x508f('0x4e')](handleError(_0x597f0d,null));};exports[_0x508f('0x9c')]=function(_0x1fcdba,_0x4f8815,_0x5a3878){var _0x211b12,_0xcd1e5e;return db['VoiceQueue'][_0x508f('0x34')]({'where':{'id':_0x1fcdba[_0x508f('0x50')]['id']}})['then'](handleEntityNotFound(_0x4f8815,null))[_0x508f('0x2a')](function(_0x1129ce){if(_0x1129ce){_0xcd1e5e=_0x1129ce;return _0x1129ce['addLists'](_0x1fcdba[_0x508f('0x5d')][_0x508f('0x8f')],_['omit'](_0x1fcdba[_0x508f('0x5d')],['ids','id'])||{});}return null;})[_0x508f('0x93')](function(_0x49f1c7){var _0x16007a;_0x211b12=_0x49f1c7||[];var _0x7a3af9=[];if(_0x49f1c7){for(var _0x544044=0x0;_0x544044<_0x49f1c7[_0x508f('0x40')];_0x544044+=0x1){var _0x5bbd08=_0x49f1c7[_0x544044]['get']({'plain':!![]});_0xcd1e5e[_0x508f('0x9d')]=_0x1fcdba['body'][_0x508f('0x9d')]?_0x1fcdba['body'][_0x508f('0x9d')]:_0xcd1e5e['dialCheckDuplicateType'];switch(_0xcd1e5e[_0x508f('0x9d')]){case _0x508f('0x9e'):_0x16007a=squel[_0x508f('0x9f')]()['into']('cm_hopper')[_0x508f('0xa0')]([_0x508f('0xa1'),_0x508f('0xa2'),_0x508f('0xa3'),_0x508f('0xa4'),_0x508f('0x69'),_0x508f('0x5b'),_0x508f('0x5c')],squel[_0x508f('0x81')]()[_0x508f('0x82')](_0x508f('0xa1'),_0x508f('0xa1'))[_0x508f('0x82')](_0x508f('0xa5'),_0x508f('0xa2'))[_0x508f('0x82')]('id',_0x508f('0xa3'))['field'](_0x5bbd08[_0x508f('0xa6')][_0x508f('0x89')](),'ListId')[_0x508f('0x82')](_0x1fcdba[_0x508f('0x50')]['id']['toString'](),_0x508f('0x69'))[_0x508f('0x82')](_0x508f('0xa5'),_0x508f('0x5b'))[_0x508f('0x82')]('NOW()','updatedAt')[_0x508f('0xa7')](_0x508f('0xa8'))['where']('deletedAt\x20IS\x20NULL')[_0x508f('0x45')](_0x508f('0xa9'),_0x5bbd08[_0x508f('0xa6')]['toString']())['where'](_0x508f('0xaa'))['where'](_0x508f('0xab'),squel[_0x508f('0x81')]()[_0x508f('0x82')]('COALESCE(calleridnum,\x27\x27)')['from'](_0x508f('0xac'))['where']('VoiceQueueId\x20=\x20?',_0x1fcdba[_0x508f('0x50')]['id'][_0x508f('0x89')]()))[_0x508f('0x45')](_0x508f('0xab'),squel[_0x508f('0x81')]()[_0x508f('0x82')](_0x508f('0xad'))[_0x508f('0xa7')]('cm_hopper')[_0x508f('0x45')](_0x508f('0xae'),_0x1fcdba[_0x508f('0x50')]['id'][_0x508f('0x89')]())))[_0x508f('0x89')]();break;case _0x508f('0xaf'):_0x16007a=squel[_0x508f('0x9f')]()[_0x508f('0xb0')](_0x508f('0xb1'))[_0x508f('0xa0')](['phone',_0x508f('0xa2'),_0x508f('0xa3'),_0x508f('0xa4'),_0x508f('0x69'),_0x508f('0x5b'),_0x508f('0x5c')],squel['select']()[_0x508f('0x82')]('phone','phone')[_0x508f('0x82')](_0x508f('0xa5'),_0x508f('0xa2'))['field']('id',_0x508f('0xa3'))[_0x508f('0x82')](_0x5bbd08[_0x508f('0xa6')][_0x508f('0x89')](),_0x508f('0xa4'))['field'](_0x1fcdba['params']['id']['toString'](),'VoiceQueueId')[_0x508f('0x82')](_0x508f('0xa5'),_0x508f('0x5b'))[_0x508f('0x82')]('NOW()',_0x508f('0x5c'))[_0x508f('0xa7')](_0x508f('0xa8'))['where'](_0x508f('0xb2'))['where'](_0x508f('0xa9'),_0x5bbd08[_0x508f('0xa6')][_0x508f('0x89')]())['where']('phone\x20IS\x20NOT\x20NULL')[_0x508f('0x45')](_0x508f('0xab'),squel['select']()[_0x508f('0x82')](_0x508f('0xad'))[_0x508f('0xa7')]('cm_hopper')[_0x508f('0x45')](_0x508f('0xae'),_0x1fcdba['params']['id'][_0x508f('0x89')]())))[_0x508f('0x89')]();break;default:_0x16007a=squel[_0x508f('0x9f')]()['into'](_0x508f('0xb1'))['fromQuery']([_0x508f('0xa1'),_0x508f('0xa2'),_0x508f('0xa3'),_0x508f('0xa4'),_0x508f('0x69'),_0x508f('0x5b'),_0x508f('0x5c')],squel[_0x508f('0x81')]()[_0x508f('0x82')]('phone',_0x508f('0xa1'))[_0x508f('0x82')]('NOW()',_0x508f('0xa2'))[_0x508f('0x82')]('id',_0x508f('0xa3'))[_0x508f('0x82')](_0x5bbd08[_0x508f('0xa6')][_0x508f('0x89')](),_0x508f('0xa4'))[_0x508f('0x82')](_0x1fcdba[_0x508f('0x50')]['id'][_0x508f('0x89')](),_0x508f('0x69'))[_0x508f('0x82')]('NOW()',_0x508f('0x5b'))['field'](_0x508f('0xa5'),_0x508f('0x5c'))['from'](_0x508f('0xa8'))['where'](_0x508f('0xb2'))['where'](_0x508f('0xa9'),_0x5bbd08[_0x508f('0xa6')][_0x508f('0x89')]())[_0x508f('0x45')](_0x508f('0xaa')))['toString']();}_0x7a3af9[_0x508f('0x88')](db[_0x508f('0x75')][_0x508f('0x3b')](_0x16007a));}return BPromise[_0x508f('0x8d')](_0x7a3af9);}})[_0x508f('0x2a')](function(){return _0x211b12;})[_0x508f('0x2a')](respondWithResult(_0x4f8815,null))[_0x508f('0x4e')](handleError(_0x4f8815,null));};exports[_0x508f('0xb3')]=function(_0x3af03a,_0x257dad,_0x17e7af){return db[_0x508f('0x4b')][_0x508f('0x34')]({'where':{'id':_0x3af03a[_0x508f('0x50')]['id']}})['then'](handleEntityNotFound(_0x257dad,null))['then'](function(_0x38bbef){if(_0x38bbef){return _0x38bbef['removeLists'](_0x3af03a[_0x508f('0x3b')]['ids']);}})[_0x508f('0x2a')](function(_0x2a300d){if(_0x2a300d){return db[_0x508f('0x61')]['destroy']({'where':{'ListId':_0x3af03a[_0x508f('0x3b')][_0x508f('0x8f')],'VoiceQueueId':_0x3af03a[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](function(){return _0x2a300d;});}})['then'](respondWithStatusCode(_0x257dad,null))[_0x508f('0x4e')](handleError(_0x257dad,null));};exports[_0x508f('0xb4')]=function(_0x4d2216,_0x2a874c,_0x39d16b){var _0x1e9b4e={};var _0xd035e={};var _0x4365e0;var _0x3f6bcd;return db[_0x508f('0x4b')][_0x508f('0x60')]({'where':{'id':_0x4d2216[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](handleEntityNotFound(_0x2a874c,null))['then'](function(_0x2e3beb){if(_0x2e3beb){_0x4365e0=_0x2e3beb;_0xd035e['model']=_[_0x508f('0x3c')](db[_0x508f('0x9b')]['rawAttributes']);_0xd035e['query']=_['keys'](_0x4d2216['query']);_0xd035e[_0x508f('0x3d')]=_[_0x508f('0x3e')](_0xd035e[_0x508f('0x3a')],_0xd035e['query']);_0x1e9b4e[_0x508f('0x3f')]=_['intersection'](_0xd035e[_0x508f('0x3a')],qs['fields'](_0x4d2216[_0x508f('0x3b')][_0x508f('0x51')]));_0x1e9b4e[_0x508f('0x3f')]=_0x1e9b4e['attributes']['length']?_0x1e9b4e[_0x508f('0x3f')]:_0xd035e['model'];_0x1e9b4e[_0x508f('0x43')]=qs['sort'](_0x4d2216[_0x508f('0x3b')][_0x508f('0x44')]);_0x1e9b4e[_0x508f('0x45')]=qs['filters'](_[_0x508f('0x46')](_0x4d2216['query'],_0xd035e['filters']));if(_0x4d2216[_0x508f('0x3b')][_0x508f('0x47')]){_0x1e9b4e['where']=_[_0x508f('0x48')](_0x1e9b4e[_0x508f('0x45')],{'$or':_[_0x508f('0x31')](_0x1e9b4e['attributes'],function(_0x3476bf){var _0x5cb5f7={};_0x5cb5f7[_0x3476bf]={'$like':'%'+_0x4d2216[_0x508f('0x3b')][_0x508f('0x47')]+'%'};return _0x5cb5f7;})});}_0x1e9b4e=_[_0x508f('0x48')]({},_0x1e9b4e,_0x4d2216['options']);return _0x4365e0['getBlackLists'](_0x1e9b4e);}})[_0x508f('0x2a')](function(_0x29c0ee){if(_0x29c0ee){_0x3f6bcd=_0x29c0ee[_0x508f('0x40')];if(!_0x4d2216[_0x508f('0x3b')]['hasOwnProperty'](_0x508f('0x42'))){_0x1e9b4e[_0x508f('0x21')]=qs[_0x508f('0x21')](_0x4d2216['query'][_0x508f('0x21')]);_0x1e9b4e[_0x508f('0x1f')]=qs['offset'](_0x4d2216['query']['offset']);}return _0x4365e0[_0x508f('0xb4')](_0x1e9b4e);}})[_0x508f('0x2a')](function(_0xd8e83c){if(_0xd8e83c){return _0xd8e83c?{'count':_0x3f6bcd,'rows':_0xd8e83c}:null;}})[_0x508f('0x2a')](respondWithResult(_0x2a874c,null))[_0x508f('0x4e')](handleError(_0x2a874c,null));};exports[_0x508f('0xb5')]=function(_0x165733,_0x4b8293,_0x4c3bfb){var _0x36372b,_0x3d6b49;return db[_0x508f('0x4b')][_0x508f('0x34')]({'where':{'id':_0x165733[_0x508f('0x50')]['id']}})[_0x508f('0x2a')](handleEntityNotFound(_0x4b8293,null))['then'](function(_0x158bb3){if(_0x158bb3){_0x3d6b49=_0x158bb3;return _0x158bb3[_0x508f('0xb5')](_0x165733[_0x508f('0x5d')]['ids'],_['omit'](_0x165733[_0x508f('0x5d')],['ids','id'])||{});}return null;})['spread'](function(_0x393c5f){var _0x87df6b;_0x36372b=_0x393c5f||[];var _0x27b630=[];if(_0x393c5f){for(var _0x54ecff=0x0;_0x54ecff<_0x393c5f[_0x508f('0x40')];_0x54ecff+=0x1){var _0x51fbe2=_0x393c5f[_0x54ecff]['get']({'plain':!![]});_0x87df6b=squel[_0x508f('0x9f')]()['into'](_0x508f('0xb6'))['fromQuery'](['phone',_0x508f('0xa3'),_0x508f('0xa4'),_0x508f('0x69'),_0x508f('0x5b'),'updatedAt'],squel['select']()[_0x508f('0x82')](_0x508f('0xa1'),'phone')[_0x508f('0x82')]('id','ContactId')[_0x508f('0x82')](_0x51fbe2[_0x508f('0xa6')]['toString'](),_0x508f('0xa4'))[_0x508f('0x82')](_0x165733[_0x508f('0x50')]['id'][_0x508f('0x89')](),_0x508f('0x69'))[_0x508f('0x82')]('NOW()','createdAt')['field'](_0x508f('0xa5'),_0x508f('0x5c'))[_0x508f('0xa7')]('cm_contacts')['where'](_0x508f('0xb2'))[_0x508f('0x45')]('ListId\x20=\x20?',_0x51fbe2[_0x508f('0xa6')][_0x508f('0x89')]())[_0x508f('0x45')](_0x508f('0xaa')))[_0x508f('0x89')]();_0x27b630[_0x508f('0x88')](db[_0x508f('0x75')][_0x508f('0x3b')](_0x87df6b));}return BPromise[_0x508f('0x8d')](_0x27b630);}})[_0x508f('0x2a')](function(){return _0x36372b;})['then'](respondWithResult(_0x4b8293,null))[_0x508f('0x4e')](handleError(_0x4b8293,null));};exports[_0x508f('0xb7')]=function(_0x40836d,_0x13b55f,_0x48d758){return db['VoiceQueue'][_0x508f('0x34')]({'where':{'id':_0x40836d[_0x508f('0x50')]['id']}})['then'](handleEntityNotFound(_0x13b55f,null))[_0x508f('0x2a')](function(_0x5c8a4a){if(_0x5c8a4a){return _0x5c8a4a[_0x508f('0xb7')](_0x40836d['query'][_0x508f('0x8f')]);}})[_0x508f('0x2a')](function(_0x3bf958){if(_0x3bf958){return db['CmHopperBlack'][_0x508f('0x29')]({'where':{'ListId':_0x40836d[_0x508f('0x3b')]['ids'],'VoiceQueueId':_0x40836d['params']['id']}})[_0x508f('0x2a')](function(){return _0x3bf958;});}})[_0x508f('0x2a')](respondWithStatusCode(_0x13b55f,null))[_0x508f('0x4e')](handleError(_0x13b55f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfbf4=['setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','events','../../mysqldb','VoiceQueue'];(function(_0x193f91,_0x159cab){var _0x19a30c=function(_0x41b49d){while(--_0x41b49d){_0x193f91['push'](_0x193f91['shift']());}};_0x19a30c(++_0x159cab);}(_0xfbf4,0xc5));var _0x4fbf=function(_0x2f9968,_0x17c452){_0x2f9968=_0x2f9968-0x0;var _0x4941be=_0xfbf4[_0x2f9968];return _0x4941be;};'use strict';var EventEmitter=require(_0x4fbf('0x0'));var VoiceQueue=require(_0x4fbf('0x1'))['db'][_0x4fbf('0x2')];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents[_0x4fbf('0x3')](0x0);var events={'afterCreate':_0x4fbf('0x4'),'afterUpdate':_0x4fbf('0x5'),'afterDestroy':_0x4fbf('0x6')};function emitEvent(_0x523082){return function(_0x37b1d4,_0x10fcb9,_0x464ff3){VoiceQueueEvents[_0x4fbf('0x7')](_0x523082+':'+_0x37b1d4['id'],_0x37b1d4);VoiceQueueEvents['emit'](_0x523082,_0x37b1d4);_0x464ff3(null);};}for(var e in events){if(events[_0x4fbf('0x8')](e)){var event=events[e];VoiceQueue[_0x4fbf('0x9')](e,emitEvent(event));}}module['exports']=VoiceQueueEvents;
\ No newline at end of file
+var _0xb453=['update','remove','emit','hook','exports','events','VoiceQueue'];(function(_0x10562b,_0x5b6af6){var _0x19b8b2=function(_0x5cb05f){while(--_0x5cb05f){_0x10562b['push'](_0x10562b['shift']());}};_0x19b8b2(++_0x5b6af6);}(_0xb453,0x1cc));var _0x3b45=function(_0x4907d8,_0x22cfa8){_0x4907d8=_0x4907d8-0x0;var _0x4d6da0=_0xb453[_0x4907d8];return _0x4d6da0;};'use strict';var EventEmitter=require(_0x3b45('0x0'));var VoiceQueue=require('../../mysqldb')['db'][_0x3b45('0x1')];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0x3b45('0x2'),'afterDestroy':_0x3b45('0x3')};function emitEvent(_0x4bacf2){return function(_0x4090c5,_0xb8c70d,_0x56f585){VoiceQueueEvents[_0x3b45('0x4')](_0x4bacf2+':'+_0x4090c5['id'],_0x4090c5);VoiceQueueEvents[_0x3b45('0x4')](_0x4bacf2,_0x4090c5);_0x56f585(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoiceQueue[_0x3b45('0x5')](e,emitEvent(event));}}module[_0x3b45('0x6')]=VoiceQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['request-promise','path','./voiceQueue.attributes','define','VoiceQueue','voice_queues','../../config/logger','api','moment','bluebird'];(function(_0x2ecc3a,_0x1b9fac){var _0x1f14ee=function(_0xd9b34a){while(--_0xd9b34a){_0x2ecc3a['push'](_0x2ecc3a['shift']());}};_0x1f14ee(++_0x1b9fac);}(_0x9c44,0x178));var _0x49c4=function(_0x4f9b18,_0x2cb5ca){_0x4f9b18=_0x4f9b18-0x0;var _0x29f20c=_0x9c44[_0x4f9b18];return _0x29f20c;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x49c4('0x0'))(_0x49c4('0x1'));var moment=require(_0x49c4('0x2'));var BPromise=require(_0x49c4('0x3'));var rp=require(_0x49c4('0x4'));var fs=require('fs');var path=require(_0x49c4('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x49c4('0x6'));module['exports']=function(_0xc1278f,_0x6030ae){return _0xc1278f[_0x49c4('0x7')](_0x49c4('0x8'),attributes,{'tableName':_0x49c4('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3e74=['exports','VoiceQueue','voice_queues','lodash','../../config/logger','api','moment','path','../../config/environment','./voiceQueue.attributes'];(function(_0x4d9f63,_0x115c88){var _0xa6dcfe=function(_0x5ac493){while(--_0x5ac493){_0x4d9f63['push'](_0x4d9f63['shift']());}};_0xa6dcfe(++_0x115c88);}(_0x3e74,0x175));var _0x43e7=function(_0x2d9f4e,_0x422b09){_0x2d9f4e=_0x2d9f4e-0x0;var _0xa61545=_0x3e74[_0x2d9f4e];return _0xa61545;};'use strict';var _=require(_0x43e7('0x0'));var util=require('util');var logger=require(_0x43e7('0x1'))(_0x43e7('0x2'));var moment=require(_0x43e7('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x43e7('0x4'));var rimraf=require('rimraf');var config=require(_0x43e7('0x5'));var attributes=require(_0x43e7('0x6'));module[_0x43e7('0x7')]=function(_0x1c503b,_0xc98b9c){return _0x1c503b['define'](_0x43e7('0x8'),attributes,{'tableName':_0x43e7('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c63=['raw','where','attributes','map','include','model','then','find','ShowVoiceQueue','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','redis','defaults','localhost','request','info','debug','VoiceQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','VoiceQueue,\x20%s,\x20%s','message','result','catch','GetVoiceQueue','VoiceQueue','findAll','options'];(function(_0x556bb1,_0x34830d){var _0x45455f=function(_0x13c6ba){while(--_0x13c6ba){_0x556bb1['push'](_0x556bb1['shift']());}};_0x45455f(++_0x34830d);}(_0x5c63,0x1ea));var _0x35c6=function(_0x5711a6,_0x2a0f8d){_0x5711a6=_0x5711a6-0x0;var _0x52abe6=_0x5c63[_0x5711a6];return _0x52abe6;};'use strict';var _=require(_0x35c6('0x0'));var util=require('util');var moment=require(_0x35c6('0x1'));var BPromise=require(_0x35c6('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x35c6('0x3'));var db=require(_0x35c6('0x4'))['db'];var utils=require(_0x35c6('0x5'));var logger=require(_0x35c6('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x35c6('0x7'));var client=jayson[_0x35c6('0x8')][_0x35c6('0x9')]({'port':0x232a});config[_0x35c6('0xa')]=_[_0x35c6('0xb')](config[_0x35c6('0xa')],{'host':_0x35c6('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x35c6('0xa')]));require('./voiceQueue.socket')['register'](socket);function respondWithRpcPromise(_0x284568,_0x32c15d,_0x460412){return new BPromise(function(_0x45766b,_0x18032d){return client[_0x35c6('0xd')](_0x284568,_0x460412)['then'](function(_0xb92aa9){logger[_0x35c6('0xe')]('VoiceQueue,\x20%s,\x20%s',_0x32c15d,'request\x20sent');logger[_0x35c6('0xf')](_0x35c6('0x10'),_0x32c15d,_0x35c6('0x11'),JSON[_0x35c6('0x12')](_0xb92aa9));if(_0xb92aa9[_0x35c6('0x13')]){if(_0xb92aa9[_0x35c6('0x13')]['code']===0x1f4){logger[_0x35c6('0x13')](_0x35c6('0x14'),_0x32c15d,_0xb92aa9[_0x35c6('0x13')][_0x35c6('0x15')]);return _0x18032d(_0xb92aa9[_0x35c6('0x13')][_0x35c6('0x15')]);}logger[_0x35c6('0x13')]('VoiceQueue,\x20%s,\x20%s',_0x32c15d,_0xb92aa9['error'][_0x35c6('0x15')]);return _0x45766b(_0xb92aa9[_0x35c6('0x13')][_0x35c6('0x15')]);}else{logger[_0x35c6('0xe')](_0x35c6('0x14'),_0x32c15d,_0x35c6('0x11'));_0x45766b(_0xb92aa9[_0x35c6('0x16')]['message']);}})[_0x35c6('0x17')](function(_0x1dbca3){logger[_0x35c6('0x13')](_0x35c6('0x14'),_0x32c15d,_0x1dbca3);_0x18032d(_0x1dbca3);});});}exports[_0x35c6('0x18')]=function(_0x238f33){var _0x7e288f=this;return new Promise(function(_0x2cee56,_0x17ebd2){return db[_0x35c6('0x19')][_0x35c6('0x1a')]({'raw':_0x238f33[_0x35c6('0x1b')]?_0x238f33[_0x35c6('0x1b')][_0x35c6('0x1c')]===undefined?!![]:![]:!![],'where':_0x238f33[_0x35c6('0x1b')]?_0x238f33[_0x35c6('0x1b')][_0x35c6('0x1d')]||null:null,'attributes':_0x238f33[_0x35c6('0x1b')]?_0x238f33['options'][_0x35c6('0x1e')]||null:null,'limit':_0x238f33[_0x35c6('0x1b')]?_0x238f33[_0x35c6('0x1b')]['limit']||null:null,'include':_0x238f33[_0x35c6('0x1b')]?_0x238f33[_0x35c6('0x1b')]['include']?_[_0x35c6('0x1f')](_0x238f33[_0x35c6('0x1b')][_0x35c6('0x20')],function(_0x5dc043){return{'model':db[_0x5dc043[_0x35c6('0x21')]],'as':_0x5dc043['as'],'attributes':_0x5dc043[_0x35c6('0x1e')],'include':_0x5dc043[_0x35c6('0x20')]?_[_0x35c6('0x1f')](_0x5dc043[_0x35c6('0x20')],function(_0x12aa57){return{'model':db[_0x12aa57[_0x35c6('0x21')]],'as':_0x12aa57['as'],'attributes':_0x12aa57[_0x35c6('0x1e')],'include':_0x12aa57[_0x35c6('0x20')]?_[_0x35c6('0x1f')](_0x12aa57[_0x35c6('0x20')],function(_0x5a3752){return{'model':db[_0x5a3752['model']],'as':_0x5a3752['as'],'attributes':_0x5a3752['attributes']};}):[]};}):[]};}):[]:[]})[_0x35c6('0x22')](function(_0x4c5132){logger[_0x35c6('0xe')](_0x35c6('0x18'),_0x238f33);logger[_0x35c6('0xf')](_0x35c6('0x18'),_0x238f33,JSON[_0x35c6('0x12')](_0x4c5132));_0x2cee56(_0x4c5132);})[_0x35c6('0x17')](function(_0xc5be59){logger[_0x35c6('0x13')](_0x35c6('0x18'),_0xc5be59[_0x35c6('0x15')],_0x238f33);_0x17ebd2(_0x7e288f[_0x35c6('0x13')](0x1f4,_0xc5be59[_0x35c6('0x15')]));});});};exports['ShowVoiceQueue']=function(_0x56a5e3){var _0x324d8d=this;return new Promise(function(_0x568679,_0x321371){return db[_0x35c6('0x19')][_0x35c6('0x23')]({'raw':_0x56a5e3[_0x35c6('0x1b')]?_0x56a5e3[_0x35c6('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x56a5e3[_0x35c6('0x1b')]?_0x56a5e3['options'][_0x35c6('0x1d')]||null:null,'attributes':_0x56a5e3[_0x35c6('0x1b')]?_0x56a5e3[_0x35c6('0x1b')]['attributes']||null:null,'include':_0x56a5e3[_0x35c6('0x1b')]?_0x56a5e3['options'][_0x35c6('0x20')]?_['map'](_0x56a5e3['options']['include'],function(_0x379378){return{'model':db[_0x379378[_0x35c6('0x21')]],'as':_0x379378['as'],'attributes':_0x379378['attributes'],'include':_0x379378['include']?_[_0x35c6('0x1f')](_0x379378[_0x35c6('0x20')],function(_0x272f5c){return{'model':db[_0x272f5c[_0x35c6('0x21')]],'as':_0x272f5c['as'],'attributes':_0x272f5c[_0x35c6('0x1e')],'include':_0x272f5c[_0x35c6('0x20')]?_['map'](_0x272f5c['include'],function(_0x454b0c){return{'model':db[_0x454b0c[_0x35c6('0x21')]],'as':_0x454b0c['as'],'attributes':_0x454b0c[_0x35c6('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0xcfa6d0){logger[_0x35c6('0xe')](_0x35c6('0x24'),_0x56a5e3);logger[_0x35c6('0xf')](_0x35c6('0x24'),_0x56a5e3,JSON[_0x35c6('0x12')](_0xcfa6d0));_0x568679(_0xcfa6d0);})['catch'](function(_0x596614){logger[_0x35c6('0x13')](_0x35c6('0x24'),_0x596614[_0x35c6('0x15')],_0x56a5e3);_0x321371(_0x324d8d[_0x35c6('0x13')](0x1f4,_0x596614[_0x35c6('0x15')]));});});};
\ No newline at end of file
+var _0xf4b7=['VoiceQueue','find','ShowVoiceQueue','util','moment','randomstring','../../config/utils','../../config/logger','rpc','jayson/promise','http','redis','defaults','localhost','./voiceQueue.socket','register','request','info','debug','VoiceQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','VoiceQueue,\x20%s,\x20%s','message','result','catch','findAll','options','raw','attributes','limit','include','map','model','then','GetVoiceQueue'];(function(_0x2fe538,_0x142ef2){var _0x557a6a=function(_0x310c6d){while(--_0x310c6d){_0x2fe538['push'](_0x2fe538['shift']());}};_0x557a6a(++_0x142ef2);}(_0xf4b7,0x1a5));var _0x7f4b=function(_0x5d3182,_0x4ec4db){_0x5d3182=_0x5d3182-0x0;var _0xcb2c9f=_0xf4b7[_0x5d3182];return _0xcb2c9f;};'use strict';var _=require('lodash');var util=require(_0x7f4b('0x0'));var moment=require(_0x7f4b('0x1'));var BPromise=require('bluebird');var rs=require(_0x7f4b('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x7f4b('0x3'));var logger=require(_0x7f4b('0x4'))(_0x7f4b('0x5'));var config=require('../../config/environment');var jayson=require(_0x7f4b('0x6'));var client=jayson['client'][_0x7f4b('0x7')]({'port':0x232a});config[_0x7f4b('0x8')]=_[_0x7f4b('0x9')](config['redis'],{'host':_0x7f4b('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7f4b('0x8')]));require(_0x7f4b('0xb'))[_0x7f4b('0xc')](socket);function respondWithRpcPromise(_0xb78497,_0x259a86,_0x5f1b9f){return new BPromise(function(_0x7c5bcd,_0x128664){return client[_0x7f4b('0xd')](_0xb78497,_0x5f1b9f)['then'](function(_0x291114){logger[_0x7f4b('0xe')]('VoiceQueue,\x20%s,\x20%s',_0x259a86,'request\x20sent');logger[_0x7f4b('0xf')](_0x7f4b('0x10'),_0x259a86,_0x7f4b('0x11'),JSON[_0x7f4b('0x12')](_0x291114));if(_0x291114['error']){if(_0x291114[_0x7f4b('0x13')][_0x7f4b('0x14')]===0x1f4){logger[_0x7f4b('0x13')](_0x7f4b('0x15'),_0x259a86,_0x291114[_0x7f4b('0x13')][_0x7f4b('0x16')]);return _0x128664(_0x291114[_0x7f4b('0x13')][_0x7f4b('0x16')]);}logger[_0x7f4b('0x13')](_0x7f4b('0x15'),_0x259a86,_0x291114[_0x7f4b('0x13')]['message']);return _0x7c5bcd(_0x291114[_0x7f4b('0x13')][_0x7f4b('0x16')]);}else{logger[_0x7f4b('0xe')](_0x7f4b('0x15'),_0x259a86,_0x7f4b('0x11'));_0x7c5bcd(_0x291114[_0x7f4b('0x17')][_0x7f4b('0x16')]);}})[_0x7f4b('0x18')](function(_0x2ed1b2){logger['error']('VoiceQueue,\x20%s,\x20%s',_0x259a86,_0x2ed1b2);_0x128664(_0x2ed1b2);});});}exports['GetVoiceQueue']=function(_0x336d86){var _0x4b83cd=this;return new Promise(function(_0x23486d,_0x280e8f){return db['VoiceQueue'][_0x7f4b('0x19')]({'raw':_0x336d86[_0x7f4b('0x1a')]?_0x336d86[_0x7f4b('0x1a')][_0x7f4b('0x1b')]===undefined?!![]:![]:!![],'where':_0x336d86[_0x7f4b('0x1a')]?_0x336d86['options']['where']||null:null,'attributes':_0x336d86[_0x7f4b('0x1a')]?_0x336d86[_0x7f4b('0x1a')][_0x7f4b('0x1c')]||null:null,'limit':_0x336d86[_0x7f4b('0x1a')]?_0x336d86[_0x7f4b('0x1a')][_0x7f4b('0x1d')]||null:null,'include':_0x336d86[_0x7f4b('0x1a')]?_0x336d86[_0x7f4b('0x1a')][_0x7f4b('0x1e')]?_[_0x7f4b('0x1f')](_0x336d86['options'][_0x7f4b('0x1e')],function(_0x5021d1){return{'model':db[_0x5021d1[_0x7f4b('0x20')]],'as':_0x5021d1['as'],'attributes':_0x5021d1[_0x7f4b('0x1c')],'include':_0x5021d1[_0x7f4b('0x1e')]?_['map'](_0x5021d1[_0x7f4b('0x1e')],function(_0xb0eb93){return{'model':db[_0xb0eb93[_0x7f4b('0x20')]],'as':_0xb0eb93['as'],'attributes':_0xb0eb93[_0x7f4b('0x1c')],'include':_0xb0eb93[_0x7f4b('0x1e')]?_[_0x7f4b('0x1f')](_0xb0eb93[_0x7f4b('0x1e')],function(_0x4bb4c0){return{'model':db[_0x4bb4c0['model']],'as':_0x4bb4c0['as'],'attributes':_0x4bb4c0['attributes']};}):[]};}):[]};}):[]:[]})[_0x7f4b('0x21')](function(_0x472579){logger[_0x7f4b('0xe')](_0x7f4b('0x22'),_0x336d86);logger[_0x7f4b('0xf')](_0x7f4b('0x22'),_0x336d86,JSON[_0x7f4b('0x12')](_0x472579));_0x23486d(_0x472579);})[_0x7f4b('0x18')](function(_0x55d3de){logger[_0x7f4b('0x13')](_0x7f4b('0x22'),_0x55d3de[_0x7f4b('0x16')],_0x336d86);_0x280e8f(_0x4b83cd['error'](0x1f4,_0x55d3de['message']));});});};exports['ShowVoiceQueue']=function(_0x3752d8){var _0x549f2f=this;return new Promise(function(_0x1c638f,_0x2f7833){return db[_0x7f4b('0x23')][_0x7f4b('0x24')]({'raw':_0x3752d8[_0x7f4b('0x1a')]?_0x3752d8[_0x7f4b('0x1a')][_0x7f4b('0x1b')]===undefined?!![]:![]:!![],'where':_0x3752d8['options']?_0x3752d8[_0x7f4b('0x1a')]['where']||null:null,'attributes':_0x3752d8['options']?_0x3752d8[_0x7f4b('0x1a')][_0x7f4b('0x1c')]||null:null,'include':_0x3752d8['options']?_0x3752d8[_0x7f4b('0x1a')]['include']?_[_0x7f4b('0x1f')](_0x3752d8[_0x7f4b('0x1a')][_0x7f4b('0x1e')],function(_0xd5fbbb){return{'model':db[_0xd5fbbb[_0x7f4b('0x20')]],'as':_0xd5fbbb['as'],'attributes':_0xd5fbbb[_0x7f4b('0x1c')],'include':_0xd5fbbb[_0x7f4b('0x1e')]?_['map'](_0xd5fbbb['include'],function(_0x222343){return{'model':db[_0x222343[_0x7f4b('0x20')]],'as':_0x222343['as'],'attributes':_0x222343[_0x7f4b('0x1c')],'include':_0x222343[_0x7f4b('0x1e')]?_[_0x7f4b('0x1f')](_0x222343[_0x7f4b('0x1e')],function(_0x4256f6){return{'model':db[_0x4256f6[_0x7f4b('0x20')]],'as':_0x4256f6['as'],'attributes':_0x4256f6[_0x7f4b('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x7f4b('0x21')](function(_0x39c492){logger['info'](_0x7f4b('0x25'),_0x3752d8);logger[_0x7f4b('0xf')](_0x7f4b('0x25'),_0x3752d8,JSON[_0x7f4b('0x12')](_0x39c492));_0x1c638f(_0x39c492);})[_0x7f4b('0x18')](function(_0x3b0c09){logger[_0x7f4b('0x13')](_0x7f4b('0x25'),_0x3b0c09[_0x7f4b('0x16')],_0x3752d8);_0x2f7833(_0x549f2f[_0x7f4b('0x13')](0x1f4,_0x3b0c09['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7ff=['voiceQueue:','save','remove','update','emit','removeListener','register'];(function(_0x57cec4,_0x2f9a2f){var _0x198c36=function(_0x3bf0ce){while(--_0x3bf0ce){_0x57cec4['push'](_0x57cec4['shift']());}};_0x198c36(++_0x2f9a2f);}(_0xb7ff,0x78));var _0xfb7f=function(_0x3da0a4,_0x2641a4){_0x3da0a4=_0x3da0a4-0x0;var _0x313cc1=_0xb7ff[_0x3da0a4];return _0x313cc1;};'use strict';var VoiceQueueEvents=require('./voiceQueue.events');var events=[_0xfb7f('0x0'),_0xfb7f('0x1'),_0xfb7f('0x2')];function createListener(_0xef3eaa,_0x4809de){return function(_0xb0060e){_0x4809de[_0xfb7f('0x3')](_0xef3eaa,_0xb0060e);};}function removeListener(_0x1838e8,_0x507c9b){return function(){VoiceQueueEvents[_0xfb7f('0x4')](_0x1838e8,_0x507c9b);};}exports[_0xfb7f('0x5')]=function(_0x51d819){for(var _0x4c5f16=0x0,_0x2e898a=events['length'];_0x4c5f16<_0x2e898a;_0x4c5f16++){var _0x50220c=events[_0x4c5f16];var _0x1d76ed=createListener(_0xfb7f('0x6')+_0x50220c,_0x51d819);VoiceQueueEvents['on'](_0x50220c,_0x1d76ed);}};
\ No newline at end of file
+var _0x1f5b=['length','voiceQueue:','./voiceQueue.events','remove','update','removeListener','register'];(function(_0x4789c1,_0x37ac92){var _0x4a07bc=function(_0x1d57c8){while(--_0x1d57c8){_0x4789c1['push'](_0x4789c1['shift']());}};_0x4a07bc(++_0x37ac92);}(_0x1f5b,0x1a6));var _0xb1f5=function(_0x11c035,_0x355db9){_0x11c035=_0x11c035-0x0;var _0x2175eb=_0x1f5b[_0x11c035];return _0x2175eb;};'use strict';var VoiceQueueEvents=require(_0xb1f5('0x0'));var events=['save',_0xb1f5('0x1'),_0xb1f5('0x2')];function createListener(_0x2ffe03,_0x1a21ed){return function(_0x50715c){_0x1a21ed['emit'](_0x2ffe03,_0x50715c);};}function removeListener(_0x21597f,_0x34308b){return function(){VoiceQueueEvents[_0xb1f5('0x3')](_0x21597f,_0x34308b);};}exports[_0xb1f5('0x4')]=function(_0x23684a){for(var _0x1413dd=0x0,_0x5a7759=events[_0xb1f5('0x5')];_0x1413dd<_0x5a7759;_0x1413dd++){var _0x1af2d5=events[_0x1413dd];var _0xf4ce3c=createListener(_0xb1f5('0x6')+_0x1af2d5,_0x23684a);VoiceQueueEvents['on'](_0x1af2d5,_0xf4ce3c);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x926b=['express','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index','/describe','/index','getVoiceQueuesReport','post','create','put','/:id','exports','path','connect-timeout'];(function(_0xcf0012,_0x1a4b7b){var _0x113b7b=function(_0x28f71d){while(--_0x28f71d){_0xcf0012['push'](_0xcf0012['shift']());}};_0x113b7b(++_0x1a4b7b);}(_0x926b,0x178));var _0xb926=function(_0x50ddb5,_0x49a797){_0x50ddb5=_0x50ddb5-0x0;var _0xa0c49a=_0x926b[_0x50ddb5];return _0xa0c49a;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xb926('0x0'));var timeout=require(_0xb926('0x1'));var express=require(_0xb926('0x2'));var router=express[_0xb926('0x3')]();var fs_extra=require(_0xb926('0x4'));var auth=require(_0xb926('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xb926('0x6'));var controller=require('./voiceQueueReport.controller');router[_0xb926('0x7')]('/',auth[_0xb926('0x8')](),controller[_0xb926('0x9')]);router[_0xb926('0x7')](_0xb926('0xa'),auth[_0xb926('0x8')](),controller['describe']);router[_0xb926('0x7')](_0xb926('0xb'),auth[_0xb926('0x8')](),controller[_0xb926('0xc')]);router['get']('/:id',auth['isAuthenticated'](),controller['show']);router[_0xb926('0xd')]('/',auth[_0xb926('0x8')](),controller[_0xb926('0xe')]);router[_0xb926('0xf')]('/:id',auth[_0xb926('0x8')](),controller['update']);router['delete'](_0xb926('0x10'),auth[_0xb926('0x8')](),controller['destroy']);module[_0xb926('0x11')]=router;
\ No newline at end of file
+var _0x0d70=['get','isAuthenticated','index','/describe','describe','/index','/:id','show','post','create','put','update','destroy','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./voiceQueueReport.controller'];(function(_0x550d09,_0x44107f){var _0x23b9d3=function(_0x367eb3){while(--_0x367eb3){_0x550d09['push'](_0x550d09['shift']());}};_0x23b9d3(++_0x44107f);}(_0x0d70,0xd3));var _0x00d7=function(_0x3e9e11,_0x4be033){_0x3e9e11=_0x3e9e11-0x0;var _0x27cae1=_0x0d70[_0x3e9e11];return _0x27cae1;};'use strict';var multer=require(_0x00d7('0x0'));var util=require(_0x00d7('0x1'));var path=require('path');var timeout=require(_0x00d7('0x2'));var express=require(_0x00d7('0x3'));var router=express[_0x00d7('0x4')]();var fs_extra=require(_0x00d7('0x5'));var auth=require(_0x00d7('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x00d7('0x7'));var controller=require(_0x00d7('0x8'));router[_0x00d7('0x9')]('/',auth[_0x00d7('0xa')](),controller[_0x00d7('0xb')]);router[_0x00d7('0x9')](_0x00d7('0xc'),auth[_0x00d7('0xa')](),controller[_0x00d7('0xd')]);router[_0x00d7('0x9')](_0x00d7('0xe'),auth[_0x00d7('0xa')](),controller['getVoiceQueuesReport']);router[_0x00d7('0x9')](_0x00d7('0xf'),auth[_0x00d7('0xa')](),controller[_0x00d7('0x10')]);router[_0x00d7('0x11')]('/',auth[_0x00d7('0xa')](),controller[_0x00d7('0x12')]);router[_0x00d7('0x13')](_0x00d7('0xf'),auth[_0x00d7('0xa')](),controller[_0x00d7('0x14')]);router['delete'](_0x00d7('0xf'),auth[_0x00d7('0xa')](),controller[_0x00d7('0x15')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c61=['queuecallerleaveAt','holdtime','INTEGER','BOOLEAN','moment','STRING','DATE','getDataValue','queuecallerjoinAt','format','YYYY-MM-DD\x20HH:mm:ss','diff','seconds','setDataValue'];(function(_0x3fc524,_0x18a88b){var _0x1ad1f5=function(_0x3f1a0f){while(--_0x3f1a0f){_0x3fc524['push'](_0x3fc524['shift']());}};_0x1ad1f5(++_0x18a88b);}(_0x9c61,0x82));var _0x19c6=function(_0x34e37e,_0x3db1ca){_0x34e37e=_0x34e37e-0x0;var _0x4eb5a3=_0x9c61[_0x34e37e];return _0x4eb5a3;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x19c6('0x0'));module['exports']={'type':{'type':Sequelize[_0x19c6('0x1')]},'uniqueid':{'type':Sequelize[_0x19c6('0x1')]},'calleridnum':{'type':Sequelize[_0x19c6('0x1')]},'calleridname':{'type':Sequelize[_0x19c6('0x1')]},'queue':{'type':Sequelize[_0x19c6('0x1')]},'queuecallerjoinAt':{'type':Sequelize[_0x19c6('0x2')]},'queuecallerleaveAt':{'type':Sequelize['DATE'],'set':function(_0x2a07b4){var _0x353140=moment(_0x2a07b4);var _0x5b2d12=moment(this[_0x19c6('0x3')](_0x19c6('0x4')))[_0x19c6('0x5')](_0x19c6('0x6'));var _0x5d54a3=_0x353140[_0x19c6('0x7')](_0x5b2d12,_0x19c6('0x8'));this[_0x19c6('0x9')](_0x19c6('0xa'),_0x2a07b4);this['setDataValue'](_0x19c6('0xb'),_0x5d54a3||null);}},'position':{'type':Sequelize[_0x19c6('0xc')]},'count':{'type':Sequelize['INTEGER']},'queuecallerabandon':{'type':Sequelize[_0x19c6('0xd')],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize[_0x19c6('0x2')]},'queuecallercomplete':{'type':Sequelize[_0x19c6('0xd')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize[_0x19c6('0x2')]},'queuecallerexit':{'type':Sequelize[_0x19c6('0xd')],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize['DATE']},'queuecallerexitreason':{'type':Sequelize[_0x19c6('0x1')],'comment':'COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT'},'originalposition':{'type':Sequelize['INTEGER']},'channel':{'type':Sequelize[_0x19c6('0x1')]},'connectedlinenum':{'type':Sequelize[_0x19c6('0x1')]},'connectedlinename':{'type':Sequelize[_0x19c6('0x1')]},'accountcode':{'type':Sequelize[_0x19c6('0x1')]},'context':{'type':Sequelize[_0x19c6('0x1')]},'exten':{'type':Sequelize[_0x19c6('0x1')]},'priority':{'type':Sequelize['STRING']},'holdtime':{'type':Sequelize['INTEGER']},'mohtime':{'type':Sequelize[_0x19c6('0xc')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0x19c6('0xd')],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize['STRING']},'transfer':{'type':Sequelize[_0x19c6('0xd')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0x19c6('0x1')],'comment':'FORWARD,\x20BLIND,\x20ATTENDED'},'transferexten':{'type':Sequelize[_0x19c6('0x1')]},'transferuniqueid':{'type':Sequelize[_0x19c6('0x1')]},'disposition':{'type':Sequelize[_0x19c6('0x1')]},'secondDisposition':{'type':Sequelize[_0x19c6('0x1')]},'thirdDisposition':{'type':Sequelize[_0x19c6('0x1')]},'queuecallerenterreason':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x9efd=['diff','seconds','queuecallerleaveAt','setDataValue','INTEGER','BOOLEAN','COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT','FORWARD,\x20BLIND,\x20ATTENDED','exports','STRING','DATE','getDataValue','queuecallerjoinAt','format','YYYY-MM-DD\x20HH:mm:ss'];(function(_0xbeb1e3,_0x58ce41){var _0x161436=function(_0x3d97b4){while(--_0x3d97b4){_0xbeb1e3['push'](_0xbeb1e3['shift']());}};_0x161436(++_0x58ce41);}(_0x9efd,0x143));var _0xd9ef=function(_0x58ccba,_0x9ce23){_0x58ccba=_0x58ccba-0x0;var _0x728ca2=_0x9efd[_0x58ccba];return _0x728ca2;};'use strict';var Sequelize=require('sequelize');var moment=require('moment');module[_0xd9ef('0x0')]={'type':{'type':Sequelize[_0xd9ef('0x1')]},'uniqueid':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xd9ef('0x1')]},'calleridname':{'type':Sequelize[_0xd9ef('0x1')]},'queue':{'type':Sequelize['STRING']},'queuecallerjoinAt':{'type':Sequelize[_0xd9ef('0x2')]},'queuecallerleaveAt':{'type':Sequelize[_0xd9ef('0x2')],'set':function(_0x8bbe83){var _0x559792=moment(_0x8bbe83);var _0x1febbb=moment(this[_0xd9ef('0x3')](_0xd9ef('0x4')))[_0xd9ef('0x5')](_0xd9ef('0x6'));var _0x520d14=_0x559792[_0xd9ef('0x7')](_0x1febbb,_0xd9ef('0x8'));this['setDataValue'](_0xd9ef('0x9'),_0x8bbe83);this[_0xd9ef('0xa')]('holdtime',_0x520d14||null);}},'position':{'type':Sequelize[_0xd9ef('0xb')]},'count':{'type':Sequelize[_0xd9ef('0xb')]},'queuecallerabandon':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize[_0xd9ef('0x2')]},'queuecallercomplete':{'type':Sequelize[_0xd9ef('0xc')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize[_0xd9ef('0x2')]},'queuecallerexit':{'type':Sequelize[_0xd9ef('0xc')],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize[_0xd9ef('0x2')]},'queuecallerexitreason':{'type':Sequelize[_0xd9ef('0x1')],'comment':_0xd9ef('0xd')},'originalposition':{'type':Sequelize[_0xd9ef('0xb')]},'channel':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0xd9ef('0x1')]},'connectedlinename':{'type':Sequelize[_0xd9ef('0x1')]},'accountcode':{'type':Sequelize[_0xd9ef('0x1')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0xd9ef('0x1')]},'priority':{'type':Sequelize[_0xd9ef('0x1')]},'holdtime':{'type':Sequelize[_0xd9ef('0xb')]},'mohtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'assigned':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize[_0xd9ef('0x1')]},'transfer':{'type':Sequelize[_0xd9ef('0xc')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0xd9ef('0x1')],'comment':_0xd9ef('0xe')},'transferexten':{'type':Sequelize[_0xd9ef('0x1')]},'transferuniqueid':{'type':Sequelize[_0xd9ef('0x1')]},'disposition':{'type':Sequelize[_0xd9ef('0x1')]},'secondDisposition':{'type':Sequelize[_0xd9ef('0x1')]},'thirdDisposition':{'type':Sequelize[_0xd9ef('0x1')]},'queuecallerenterreason':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x287d=['params','describe','getVoiceQueuesReport','nolimit','findAll','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceQueueReport.socket','register','sendStatus','status','json','undefined','count','offset','set','Content-Range','apply','save','update','then','destroy','end','error','stack','name','send','VoiceQueueReport','rawAttributes','type','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','length','find','create','body'];(function(_0x3af3c1,_0x1b7dae){var _0x5bf10e=function(_0x3073fb){while(--_0x3073fb){_0x3af3c1['push'](_0x3af3c1['shift']());}};_0x5bf10e(++_0x1b7dae);}(_0x287d,0x151));var _0xd287=function(_0x35fb56,_0x5dadff){_0x35fb56=_0x35fb56-0x0;var _0x2fd52c=_0x287d[_0x35fb56];return _0x2fd52c;};'use strict';var emlformat=require(_0xd287('0x0'));var rimraf=require(_0xd287('0x1'));var zipdir=require(_0xd287('0x2'));var jsonpatch=require(_0xd287('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xd287('0x4'));var Mustache=require(_0xd287('0x5'));var util=require('util');var path=require(_0xd287('0x6'));var sox=require(_0xd287('0x7'));var csv=require(_0xd287('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd287('0x9'));var _=require(_0xd287('0xa'));var squel=require(_0xd287('0xb'));var crypto=require(_0xd287('0xc'));var jsforce=require(_0xd287('0xd'));var deskjs=require(_0xd287('0xe'));var toCsv=require('to-csv');var querystring=require(_0xd287('0xf'));var Papa=require(_0xd287('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xd287('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd287('0x12'));var logger=require('../../config/logger')(_0xd287('0x13'));var utils=require(_0xd287('0x14'));var config=require(_0xd287('0x15'));var licenseUtil=require(_0xd287('0x16'));var db=require(_0xd287('0x17'))['db'];config[_0xd287('0x18')]=_[_0xd287('0x19')](config[_0xd287('0x18')],{'host':_0xd287('0x1a'),'port':0x18eb});var socket=require(_0xd287('0x1b'))(new Redis(config['redis']));require(_0xd287('0x1c'))[_0xd287('0x1d')](socket);function respondWithStatusCode(_0x548c7e,_0x283f5d){_0x283f5d=_0x283f5d||0xcc;return function(_0x29dc95){if(_0x29dc95){return _0x548c7e[_0xd287('0x1e')](_0x283f5d);}return _0x548c7e[_0xd287('0x1f')](_0x283f5d)['end']();};}function respondWithResult(_0x4d3f21,_0x35dfb2){_0x35dfb2=_0x35dfb2||0xc8;return function(_0x4f86ae){if(_0x4f86ae){return _0x4d3f21['status'](_0x35dfb2)[_0xd287('0x20')](_0x4f86ae);}};}function respondWithFilteredResult(_0x20c246,_0x3c75f8){return function(_0x2ed225){if(_0x2ed225){var _0x581106=typeof _0x3c75f8['offset']===_0xd287('0x21')&&typeof _0x3c75f8['limit']===_0xd287('0x21');var _0x217076=_0x2ed225[_0xd287('0x22')];var _0x7a9f2b=_0x581106?0x0:_0x3c75f8[_0xd287('0x23')];var _0xe38a29=_0x581106?_0x2ed225[_0xd287('0x22')]:_0x3c75f8['offset']+_0x3c75f8['limit'];var _0x1494c5;if(_0xe38a29>=_0x217076){_0xe38a29=_0x217076;_0x1494c5=0xc8;}else{_0x1494c5=0xce;}_0x20c246[_0xd287('0x1f')](_0x1494c5);return _0x20c246[_0xd287('0x24')](_0xd287('0x25'),_0x7a9f2b+'-'+_0xe38a29+'/'+_0x217076)[_0xd287('0x20')](_0x2ed225);}return null;};}function patchUpdates(_0x2d03d2){return function(_0x19894c){try{jsonpatch[_0xd287('0x26')](_0x19894c,_0x2d03d2,!![]);}catch(_0x47293a){return BPromise['reject'](_0x47293a);}return _0x19894c[_0xd287('0x27')]();};}function saveUpdates(_0x569d03,_0x131e12){return function(_0x39003f){if(_0x39003f){return _0x39003f[_0xd287('0x28')](_0x569d03)[_0xd287('0x29')](function(_0x44a21a){return _0x44a21a;});}return null;};}function removeEntity(_0x5c3618,_0x5306d9){return function(_0x41ddf9){if(_0x41ddf9){return _0x41ddf9[_0xd287('0x2a')]()[_0xd287('0x29')](function(){_0x5c3618[_0xd287('0x1f')](0xcc)[_0xd287('0x2b')]();});}};}function handleEntityNotFound(_0x5d597f,_0xc5a94c){return function(_0x5ced3d){if(!_0x5ced3d){_0x5d597f[_0xd287('0x1e')](0x194);}return _0x5ced3d;};}function handleError(_0x37bfae,_0x12116e){_0x12116e=_0x12116e||0x1f4;return function(_0x23f8b9){logger[_0xd287('0x2c')](_0x23f8b9[_0xd287('0x2d')]);if(_0x23f8b9[_0xd287('0x2e')]){delete _0x23f8b9[_0xd287('0x2e')];}_0x37bfae[_0xd287('0x1f')](_0x12116e)[_0xd287('0x2f')](_0x23f8b9);};}exports['index']=function(_0x3cc3e2,_0x228284){var _0x4cff65={},_0x1ffce5={},_0x34575b={'count':0x0,'rows':[]};var _0x149997=_['map'](db[_0xd287('0x30')][_0xd287('0x31')],function(_0x54efdf){return{'name':_0x54efdf['fieldName'],'type':_0x54efdf[_0xd287('0x32')][_0xd287('0x33')]};});_0x1ffce5[_0xd287('0x34')]=_[_0xd287('0x35')](_0x149997,_0xd287('0x2e'));_0x1ffce5[_0xd287('0x36')]=_[_0xd287('0x37')](_0x3cc3e2[_0xd287('0x36')]);_0x1ffce5[_0xd287('0x38')]=_[_0xd287('0x39')](_0x1ffce5[_0xd287('0x34')],_0x1ffce5[_0xd287('0x36')]);_0x4cff65[_0xd287('0x3a')]=_[_0xd287('0x39')](_0x1ffce5[_0xd287('0x34')],qs[_0xd287('0x3b')](_0x3cc3e2[_0xd287('0x36')]['fields']));_0x4cff65['attributes']=_0x4cff65[_0xd287('0x3a')]['length']?_0x4cff65[_0xd287('0x3a')]:_0x1ffce5[_0xd287('0x34')];if(!_0x3cc3e2['query'][_0xd287('0x3c')]('nolimit')){_0x4cff65[_0xd287('0x3d')]=qs['limit'](_0x3cc3e2[_0xd287('0x36')][_0xd287('0x3d')]);_0x4cff65[_0xd287('0x23')]=qs[_0xd287('0x23')](_0x3cc3e2[_0xd287('0x36')]['offset']);}_0x4cff65[_0xd287('0x3e')]=qs[_0xd287('0x3f')](_0x3cc3e2[_0xd287('0x36')][_0xd287('0x3f')]);_0x4cff65[_0xd287('0x40')]=qs[_0xd287('0x38')](_[_0xd287('0x41')](_0x3cc3e2[_0xd287('0x36')],_0x1ffce5['filters']),_0x149997);if(_0x3cc3e2[_0xd287('0x36')][_0xd287('0x42')]){_0x4cff65[_0xd287('0x40')]=_[_0xd287('0x43')](_0x4cff65['where'],{'$or':_[_0xd287('0x35')](_0x149997,function(_0x3b82c3){if(_0x3b82c3['type']!==_0xd287('0x44')){var _0xe1b2ba={};_0xe1b2ba[_0x3b82c3[_0xd287('0x2e')]]={'$like':'%'+_0x3cc3e2[_0xd287('0x36')][_0xd287('0x42')]+'%'};return _0xe1b2ba;}})});}_0x4cff65=_[_0xd287('0x43')]({},_0x4cff65,_0x3cc3e2[_0xd287('0x45')]);var _0xf40439={'where':_0x4cff65[_0xd287('0x40')]};return db[_0xd287('0x30')][_0xd287('0x22')](_0xf40439)[_0xd287('0x29')](function(_0x55cbf5){_0x34575b['count']=_0x55cbf5;if(_0x3cc3e2[_0xd287('0x36')][_0xd287('0x46')]){_0x4cff65[_0xd287('0x47')]=[{'all':!![]}];}return db['VoiceQueueReport']['findAll'](_0x4cff65);})[_0xd287('0x29')](function(_0xe580ee){_0x34575b[_0xd287('0x48')]=_0xe580ee;return _0x34575b;})[_0xd287('0x29')](respondWithFilteredResult(_0x228284,_0x4cff65))[_0xd287('0x49')](handleError(_0x228284,null));};exports['show']=function(_0x4f8188,_0x1d966e){var _0x36348b={'raw':![],'where':{'id':_0x4f8188['params']['id']}},_0x50127b={};_0x50127b[_0xd287('0x34')]=_[_0xd287('0x37')](db[_0xd287('0x30')]['rawAttributes']);_0x50127b[_0xd287('0x36')]=_[_0xd287('0x37')](_0x4f8188[_0xd287('0x36')]);_0x50127b[_0xd287('0x38')]=_['intersection'](_0x50127b[_0xd287('0x34')],_0x50127b[_0xd287('0x36')]);_0x36348b[_0xd287('0x3a')]=_[_0xd287('0x39')](_0x50127b[_0xd287('0x34')],qs[_0xd287('0x3b')](_0x4f8188['query']['fields']));_0x36348b[_0xd287('0x3a')]=_0x36348b[_0xd287('0x3a')][_0xd287('0x4a')]?_0x36348b[_0xd287('0x3a')]:_0x50127b[_0xd287('0x34')];if(_0x4f8188['query'][_0xd287('0x46')]){_0x36348b['include']=[{'all':!![]}];}_0x36348b=_[_0xd287('0x43')]({},_0x36348b,_0x4f8188[_0xd287('0x45')]);return db[_0xd287('0x30')][_0xd287('0x4b')](_0x36348b)[_0xd287('0x29')](handleEntityNotFound(_0x1d966e,null))[_0xd287('0x29')](respondWithResult(_0x1d966e,null))['catch'](handleError(_0x1d966e,null));};exports['create']=function(_0x4bf221,_0x319ebb){return db[_0xd287('0x30')][_0xd287('0x4c')](_0x4bf221[_0xd287('0x4d')],{})[_0xd287('0x29')](respondWithResult(_0x319ebb,0xc9))[_0xd287('0x49')](handleError(_0x319ebb,null));};exports[_0xd287('0x28')]=function(_0x4aeca3,_0x144955){if(_0x4aeca3['body']['id']){delete _0x4aeca3['body']['id'];}return db[_0xd287('0x30')]['find']({'where':{'id':_0x4aeca3[_0xd287('0x4e')]['id']}})['then'](handleEntityNotFound(_0x144955,null))[_0xd287('0x29')](saveUpdates(_0x4aeca3[_0xd287('0x4d')],null))['then'](respondWithResult(_0x144955,null))[_0xd287('0x49')](handleError(_0x144955,null));};exports['destroy']=function(_0x11b540,_0x1ab0e8){return db['VoiceQueueReport'][_0xd287('0x4b')]({'where':{'id':_0x11b540['params']['id']}})[_0xd287('0x29')](handleEntityNotFound(_0x1ab0e8,null))[_0xd287('0x29')](removeEntity(_0x1ab0e8,null))['catch'](handleError(_0x1ab0e8,null));};exports[_0xd287('0x4f')]=function(_0x4d16b0,_0x1e3565){return db['VoiceQueueReport']['describe']()[_0xd287('0x29')](respondWithResult(_0x1e3565,null))[_0xd287('0x49')](handleError(_0x1e3565,null));};exports[_0xd287('0x50')]=function(_0x1752a9,_0x58ae73){var _0x2f6453={},_0x2986cc={},_0x1044e2={'count':0x0,'rows':[]};_0x2986cc[_0xd287('0x34')]=_['keys'](db[_0xd287('0x30')]['rawAttributes']);_0x2986cc[_0xd287('0x36')]=_['keys'](_0x1752a9[_0xd287('0x36')]);_0x2986cc[_0xd287('0x38')]=_[_0xd287('0x39')](_0x2986cc[_0xd287('0x34')],_0x2986cc[_0xd287('0x36')]);_0x2f6453[_0xd287('0x3a')]=_[_0xd287('0x39')](_0x2986cc['model'],qs[_0xd287('0x3b')](_0x1752a9[_0xd287('0x36')][_0xd287('0x3b')]));_0x2f6453[_0xd287('0x3a')]=_0x2f6453['attributes']['length']?_0x2f6453[_0xd287('0x3a')]:_0x2986cc[_0xd287('0x34')];if(!_0x1752a9[_0xd287('0x36')][_0xd287('0x3c')](_0xd287('0x51'))){_0x2f6453[_0xd287('0x3d')]=qs[_0xd287('0x3d')](_0x1752a9[_0xd287('0x36')][_0xd287('0x3d')]);_0x2f6453[_0xd287('0x23')]=qs[_0xd287('0x23')](_0x1752a9[_0xd287('0x36')][_0xd287('0x23')]);}_0x2f6453[_0xd287('0x3e')]=qs['sort'](_0x1752a9[_0xd287('0x36')][_0xd287('0x3f')]);_0x2f6453[_0xd287('0x40')]=qs['filters'](_[_0xd287('0x41')](_0x1752a9[_0xd287('0x36')],_0x2986cc[_0xd287('0x38')]));if(_0x1752a9[_0xd287('0x36')][_0xd287('0x42')]){_0x2f6453['where']=_[_0xd287('0x43')](_0x2f6453[_0xd287('0x40')],{'$or':_[_0xd287('0x35')](_0x2f6453[_0xd287('0x3a')],function(_0x36d30d){var _0x2ffede={};_0x2ffede[_0x36d30d]={'$like':'%'+_0x1752a9[_0xd287('0x36')]['filter']+'%'};return _0x2ffede;})});}_0x2f6453=_[_0xd287('0x43')]({},_0x2f6453,_0x1752a9[_0xd287('0x45')]);var _0xe284c2={'where':_0x2f6453['where']};return db[_0xd287('0x30')][_0xd287('0x22')](_0xe284c2)['then'](function(_0x23f1c6){_0x1044e2['count']=_0x23f1c6;if(_0x1752a9[_0xd287('0x36')][_0xd287('0x46')]){_0x2f6453[_0xd287('0x47')]=[{'all':!![]}];}return db[_0xd287('0x30')][_0xd287('0x52')](_0x2f6453);})[_0xd287('0x29')](function(_0x252292){_0x1044e2[_0xd287('0x48')]=_0x252292;return _0x1044e2;})['then'](respondWithFilteredResult(_0x58ae73,_0x2f6453,_0xd287('0x50')))[_0xd287('0x49')](handleError(_0x58ae73,null,'getVoiceQueuesReport'));};
\ No newline at end of file
+var _0x75f8=['update','then','destroy','error','stack','name','map','rawAttributes','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','filter','merge','type','VoiceQueueReport','includeAll','findAll','keys','include','options','find','create','body','catch','params','describe','getVoiceQueuesReport','order','pick','rows','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','status','end','json','offset','undefined','count','set','apply','reject'];(function(_0xa03be4,_0x193c5a){var _0x41f887=function(_0x3dd8a0){while(--_0x3dd8a0){_0xa03be4['push'](_0xa03be4['shift']());}};_0x41f887(++_0x193c5a);}(_0x75f8,0x16c));var _0x875f=function(_0xe8712b,_0x42aa8c){_0xe8712b=_0xe8712b-0x0;var _0xf5bcdc=_0x75f8[_0xe8712b];return _0xf5bcdc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x875f('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x875f('0x1'));var rp=require(_0x875f('0x2'));var moment=require(_0x875f('0x3'));var BPromise=require(_0x875f('0x4'));var Mustache=require('mustache');var util=require(_0x875f('0x5'));var path=require(_0x875f('0x6'));var sox=require(_0x875f('0x7'));var csv=require('to-csv');var ejs=require(_0x875f('0x8'));var fs=require('fs');var fs_extra=require(_0x875f('0x9'));var _=require(_0x875f('0xa'));var squel=require(_0x875f('0xb'));var crypto=require('crypto');var jsforce=require(_0x875f('0xc'));var deskjs=require(_0x875f('0xd'));var toCsv=require(_0x875f('0xe'));var querystring=require(_0x875f('0xf'));var Papa=require(_0x875f('0x10'));var Redis=require(_0x875f('0x11'));var authService=require(_0x875f('0x12'));var qs=require(_0x875f('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x875f('0x14'));var logger=require(_0x875f('0x15'))(_0x875f('0x16'));var utils=require(_0x875f('0x17'));var config=require(_0x875f('0x18'));var licenseUtil=require(_0x875f('0x19'));var db=require(_0x875f('0x1a'))['db'];config[_0x875f('0x1b')]=_[_0x875f('0x1c')](config[_0x875f('0x1b')],{'host':_0x875f('0x1d'),'port':0x18eb});var socket=require(_0x875f('0x1e'))(new Redis(config[_0x875f('0x1b')]));require('./voiceQueueReport.socket')['register'](socket);function respondWithStatusCode(_0x434bb2,_0x28aa20){_0x28aa20=_0x28aa20||0xcc;return function(_0xc59f71){if(_0xc59f71){return _0x434bb2[_0x875f('0x1f')](_0x28aa20);}return _0x434bb2[_0x875f('0x20')](_0x28aa20)[_0x875f('0x21')]();};}function respondWithResult(_0x136c7d,_0x46062a){_0x46062a=_0x46062a||0xc8;return function(_0x21d33c){if(_0x21d33c){return _0x136c7d[_0x875f('0x20')](_0x46062a)[_0x875f('0x22')](_0x21d33c);}};}function respondWithFilteredResult(_0x443d83,_0x1ac37c){return function(_0x4c6cc2){if(_0x4c6cc2){var _0x3ae9a6=typeof _0x1ac37c[_0x875f('0x23')]==='undefined'&&typeof _0x1ac37c['limit']===_0x875f('0x24');var _0x265c4f=_0x4c6cc2[_0x875f('0x25')];var _0x2874ed=_0x3ae9a6?0x0:_0x1ac37c[_0x875f('0x23')];var _0x48098c=_0x3ae9a6?_0x4c6cc2[_0x875f('0x25')]:_0x1ac37c[_0x875f('0x23')]+_0x1ac37c['limit'];var _0x27d129;if(_0x48098c>=_0x265c4f){_0x48098c=_0x265c4f;_0x27d129=0xc8;}else{_0x27d129=0xce;}_0x443d83[_0x875f('0x20')](_0x27d129);return _0x443d83[_0x875f('0x26')]('Content-Range',_0x2874ed+'-'+_0x48098c+'/'+_0x265c4f)[_0x875f('0x22')](_0x4c6cc2);}return null;};}function patchUpdates(_0x158dc0){return function(_0x2b61fd){try{jsonpatch[_0x875f('0x27')](_0x2b61fd,_0x158dc0,!![]);}catch(_0x248f09){return BPromise[_0x875f('0x28')](_0x248f09);}return _0x2b61fd['save']();};}function saveUpdates(_0x4726b5,_0x48c6d3){return function(_0x2a4c48){if(_0x2a4c48){return _0x2a4c48[_0x875f('0x29')](_0x4726b5)[_0x875f('0x2a')](function(_0x148a47){return _0x148a47;});}return null;};}function removeEntity(_0x4a4f81,_0x2405b0){return function(_0xd43cbc){if(_0xd43cbc){return _0xd43cbc[_0x875f('0x2b')]()[_0x875f('0x2a')](function(){_0x4a4f81['status'](0xcc)[_0x875f('0x21')]();});}};}function handleEntityNotFound(_0x2c77ca,_0x50d77a){return function(_0x2115f7){if(!_0x2115f7){_0x2c77ca[_0x875f('0x1f')](0x194);}return _0x2115f7;};}function handleError(_0x21aed7,_0x9feda6){_0x9feda6=_0x9feda6||0x1f4;return function(_0x1e9c75){logger[_0x875f('0x2c')](_0x1e9c75[_0x875f('0x2d')]);if(_0x1e9c75[_0x875f('0x2e')]){delete _0x1e9c75[_0x875f('0x2e')];}_0x21aed7[_0x875f('0x20')](_0x9feda6)['send'](_0x1e9c75);};}exports['index']=function(_0x395c5f,_0x47db29){var _0x4e6163={},_0x82c58e={},_0x127306={'count':0x0,'rows':[]};var _0x39410c=_[_0x875f('0x2f')](db['VoiceQueueReport'][_0x875f('0x30')],function(_0x5e8f7b){return{'name':_0x5e8f7b['fieldName'],'type':_0x5e8f7b['type'][_0x875f('0x31')]};});_0x82c58e[_0x875f('0x32')]=_[_0x875f('0x2f')](_0x39410c,'name');_0x82c58e['query']=_['keys'](_0x395c5f[_0x875f('0x33')]);_0x82c58e[_0x875f('0x34')]=_[_0x875f('0x35')](_0x82c58e['model'],_0x82c58e['query']);_0x4e6163[_0x875f('0x36')]=_[_0x875f('0x35')](_0x82c58e[_0x875f('0x32')],qs[_0x875f('0x37')](_0x395c5f[_0x875f('0x33')]['fields']));_0x4e6163[_0x875f('0x36')]=_0x4e6163[_0x875f('0x36')][_0x875f('0x38')]?_0x4e6163[_0x875f('0x36')]:_0x82c58e[_0x875f('0x32')];if(!_0x395c5f[_0x875f('0x33')][_0x875f('0x39')](_0x875f('0x3a'))){_0x4e6163[_0x875f('0x3b')]=qs[_0x875f('0x3b')](_0x395c5f['query'][_0x875f('0x3b')]);_0x4e6163[_0x875f('0x23')]=qs[_0x875f('0x23')](_0x395c5f[_0x875f('0x33')][_0x875f('0x23')]);}_0x4e6163['order']=qs['sort'](_0x395c5f[_0x875f('0x33')][_0x875f('0x3c')]);_0x4e6163[_0x875f('0x3d')]=qs[_0x875f('0x34')](_['pick'](_0x395c5f['query'],_0x82c58e[_0x875f('0x34')]),_0x39410c);if(_0x395c5f[_0x875f('0x33')][_0x875f('0x3e')]){_0x4e6163[_0x875f('0x3d')]=_[_0x875f('0x3f')](_0x4e6163[_0x875f('0x3d')],{'$or':_[_0x875f('0x2f')](_0x39410c,function(_0x2b1d00){if(_0x2b1d00[_0x875f('0x40')]!=='VIRTUAL'){var _0x5a86b7={};_0x5a86b7[_0x2b1d00[_0x875f('0x2e')]]={'$like':'%'+_0x395c5f['query'][_0x875f('0x3e')]+'%'};return _0x5a86b7;}})});}_0x4e6163=_['merge']({},_0x4e6163,_0x395c5f['options']);var _0x49ffec={'where':_0x4e6163['where']};return db[_0x875f('0x41')][_0x875f('0x25')](_0x49ffec)[_0x875f('0x2a')](function(_0x6ca770){_0x127306[_0x875f('0x25')]=_0x6ca770;if(_0x395c5f['query'][_0x875f('0x42')]){_0x4e6163['include']=[{'all':!![]}];}return db[_0x875f('0x41')][_0x875f('0x43')](_0x4e6163);})['then'](function(_0x3e1da9){_0x127306['rows']=_0x3e1da9;return _0x127306;})['then'](respondWithFilteredResult(_0x47db29,_0x4e6163))['catch'](handleError(_0x47db29,null));};exports['show']=function(_0x5ddf4c,_0x4620e6){var _0x14c890={'raw':![],'where':{'id':_0x5ddf4c['params']['id']}},_0x5127c7={};_0x5127c7[_0x875f('0x32')]=_['keys'](db[_0x875f('0x41')][_0x875f('0x30')]);_0x5127c7['query']=_[_0x875f('0x44')](_0x5ddf4c['query']);_0x5127c7[_0x875f('0x34')]=_[_0x875f('0x35')](_0x5127c7[_0x875f('0x32')],_0x5127c7[_0x875f('0x33')]);_0x14c890[_0x875f('0x36')]=_[_0x875f('0x35')](_0x5127c7['model'],qs[_0x875f('0x37')](_0x5ddf4c[_0x875f('0x33')][_0x875f('0x37')]));_0x14c890['attributes']=_0x14c890['attributes'][_0x875f('0x38')]?_0x14c890['attributes']:_0x5127c7['model'];if(_0x5ddf4c[_0x875f('0x33')][_0x875f('0x42')]){_0x14c890[_0x875f('0x45')]=[{'all':!![]}];}_0x14c890=_[_0x875f('0x3f')]({},_0x14c890,_0x5ddf4c[_0x875f('0x46')]);return db[_0x875f('0x41')][_0x875f('0x47')](_0x14c890)[_0x875f('0x2a')](handleEntityNotFound(_0x4620e6,null))['then'](respondWithResult(_0x4620e6,null))['catch'](handleError(_0x4620e6,null));};exports[_0x875f('0x48')]=function(_0x49e045,_0x50dbb0){return db[_0x875f('0x41')][_0x875f('0x48')](_0x49e045[_0x875f('0x49')],{})[_0x875f('0x2a')](respondWithResult(_0x50dbb0,0xc9))[_0x875f('0x4a')](handleError(_0x50dbb0,null));};exports[_0x875f('0x29')]=function(_0x570be4,_0x1b4cac){if(_0x570be4[_0x875f('0x49')]['id']){delete _0x570be4[_0x875f('0x49')]['id'];}return db[_0x875f('0x41')][_0x875f('0x47')]({'where':{'id':_0x570be4[_0x875f('0x4b')]['id']}})[_0x875f('0x2a')](handleEntityNotFound(_0x1b4cac,null))[_0x875f('0x2a')](saveUpdates(_0x570be4[_0x875f('0x49')],null))[_0x875f('0x2a')](respondWithResult(_0x1b4cac,null))['catch'](handleError(_0x1b4cac,null));};exports[_0x875f('0x2b')]=function(_0x58ba14,_0x35eb23){return db[_0x875f('0x41')][_0x875f('0x47')]({'where':{'id':_0x58ba14[_0x875f('0x4b')]['id']}})[_0x875f('0x2a')](handleEntityNotFound(_0x35eb23,null))[_0x875f('0x2a')](removeEntity(_0x35eb23,null))[_0x875f('0x4a')](handleError(_0x35eb23,null));};exports[_0x875f('0x4c')]=function(_0x4f142,_0x22622a){return db[_0x875f('0x41')][_0x875f('0x4c')]()[_0x875f('0x2a')](respondWithResult(_0x22622a,null))[_0x875f('0x4a')](handleError(_0x22622a,null));};exports[_0x875f('0x4d')]=function(_0x38987f,_0x27f00e){var _0x4fa40d={},_0x2fa06b={},_0x280223={'count':0x0,'rows':[]};_0x2fa06b['model']=_[_0x875f('0x44')](db[_0x875f('0x41')][_0x875f('0x30')]);_0x2fa06b[_0x875f('0x33')]=_['keys'](_0x38987f['query']);_0x2fa06b[_0x875f('0x34')]=_[_0x875f('0x35')](_0x2fa06b[_0x875f('0x32')],_0x2fa06b[_0x875f('0x33')]);_0x4fa40d[_0x875f('0x36')]=_[_0x875f('0x35')](_0x2fa06b[_0x875f('0x32')],qs[_0x875f('0x37')](_0x38987f[_0x875f('0x33')][_0x875f('0x37')]));_0x4fa40d['attributes']=_0x4fa40d['attributes'][_0x875f('0x38')]?_0x4fa40d['attributes']:_0x2fa06b[_0x875f('0x32')];if(!_0x38987f[_0x875f('0x33')][_0x875f('0x39')](_0x875f('0x3a'))){_0x4fa40d[_0x875f('0x3b')]=qs[_0x875f('0x3b')](_0x38987f['query'][_0x875f('0x3b')]);_0x4fa40d[_0x875f('0x23')]=qs[_0x875f('0x23')](_0x38987f[_0x875f('0x33')][_0x875f('0x23')]);}_0x4fa40d[_0x875f('0x4e')]=qs[_0x875f('0x3c')](_0x38987f[_0x875f('0x33')][_0x875f('0x3c')]);_0x4fa40d[_0x875f('0x3d')]=qs[_0x875f('0x34')](_[_0x875f('0x4f')](_0x38987f[_0x875f('0x33')],_0x2fa06b['filters']));if(_0x38987f['query']['filter']){_0x4fa40d['where']=_['merge'](_0x4fa40d[_0x875f('0x3d')],{'$or':_[_0x875f('0x2f')](_0x4fa40d[_0x875f('0x36')],function(_0x384d68){var _0x4dd3d5={};_0x4dd3d5[_0x384d68]={'$like':'%'+_0x38987f[_0x875f('0x33')][_0x875f('0x3e')]+'%'};return _0x4dd3d5;})});}_0x4fa40d=_[_0x875f('0x3f')]({},_0x4fa40d,_0x38987f['options']);var _0x4f49f1={'where':_0x4fa40d['where']};return db[_0x875f('0x41')][_0x875f('0x25')](_0x4f49f1)[_0x875f('0x2a')](function(_0x2910e5){_0x280223[_0x875f('0x25')]=_0x2910e5;if(_0x38987f['query']['includeAll']){_0x4fa40d[_0x875f('0x45')]=[{'all':!![]}];}return db[_0x875f('0x41')][_0x875f('0x43')](_0x4fa40d);})['then'](function(_0x2dd3a9){_0x280223[_0x875f('0x50')]=_0x2dd3a9;return _0x280223;})['then'](respondWithFilteredResult(_0x27f00e,_0x4fa40d,'getVoiceQueuesReport'))[_0x875f('0x4a')](handleError(_0x27f00e,null,_0x875f('0x4d')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x16f7=['remove','emit','hasOwnProperty','hook','exports','events','VoiceQueueReport','save','update'];(function(_0x1c1f40,_0x21a793){var _0x5f3de5=function(_0x2b1239){while(--_0x2b1239){_0x1c1f40['push'](_0x1c1f40['shift']());}};_0x5f3de5(++_0x21a793);}(_0x16f7,0xd4));var _0x716f=function(_0x5d89fd,_0x5bb9da){_0x5d89fd=_0x5d89fd-0x0;var _0x46638e=_0x16f7[_0x5d89fd];return _0x46638e;};'use strict';var EventEmitter=require(_0x716f('0x0'));var VoiceQueueReport=require('../../mysqldb')['db'][_0x716f('0x1')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x716f('0x2'),'afterUpdate':_0x716f('0x3'),'afterDestroy':_0x716f('0x4')};function emitEvent(_0x559184){return function(_0x2b39d8,_0x2df49b,_0x25de09){VoiceQueueReportEvents[_0x716f('0x5')](_0x559184+':'+_0x2b39d8['id'],_0x2b39d8);VoiceQueueReportEvents[_0x716f('0x5')](_0x559184,_0x2b39d8);_0x25de09(null);};}for(var e in events){if(events[_0x716f('0x6')](e)){var event=events[e];VoiceQueueReport[_0x716f('0x7')](e,emitEvent(event));}}module[_0x716f('0x8')]=VoiceQueueReportEvents;
\ No newline at end of file
+var _0xcb9c=['setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','VoiceQueueReport'];(function(_0x241066,_0x201eed){var _0x3553d4=function(_0x1de40a){while(--_0x1de40a){_0x241066['push'](_0x241066['shift']());}};_0x3553d4(++_0x201eed);}(_0xcb9c,0x110));var _0xccb9=function(_0x18ed19,_0x1f4cd4){_0x18ed19=_0x18ed19-0x0;var _0x557ae2=_0xcb9c[_0x18ed19];return _0x557ae2;};'use strict';var EventEmitter=require(_0xccb9('0x0'));var VoiceQueueReport=require(_0xccb9('0x1'))['db'][_0xccb9('0x2')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents[_0xccb9('0x3')](0x0);var events={'afterCreate':_0xccb9('0x4'),'afterUpdate':_0xccb9('0x5'),'afterDestroy':_0xccb9('0x6')};function emitEvent(_0x12a2a9){return function(_0x582401,_0x125125,_0x409f42){VoiceQueueReportEvents[_0xccb9('0x7')](_0x12a2a9+':'+_0x582401['id'],_0x582401);VoiceQueueReportEvents['emit'](_0x12a2a9,_0x582401);_0x409f42(null);};}for(var e in events){if(events[_0xccb9('0x8')](e)){var event=events[e];VoiceQueueReport[_0xccb9('0x9')](e,emitEvent(event));}}module[_0xccb9('0xa')]=VoiceQueueReportEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x032b=['uniqueid','calleridnum','util','moment','request-promise','rimraf','../../config/environment','./voiceQueueReport.attributes','exports','VoiceQueueReport','report_queue'];(function(_0x568b2a,_0x2dbd86){var _0x4d1419=function(_0xf661bb){while(--_0xf661bb){_0x568b2a['push'](_0x568b2a['shift']());}};_0x4d1419(++_0x2dbd86);}(_0x032b,0x183));var _0xb032=function(_0x4ee386,_0x1a9032){_0x4ee386=_0x4ee386-0x0;var _0x42450c=_0x032b[_0x4ee386];return _0x42450c;};'use strict';var _=require('lodash');var util=require(_0xb032('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0xb032('0x1'));var BPromise=require('bluebird');var rp=require(_0xb032('0x2'));var fs=require('fs');var path=require('path');var rimraf=require(_0xb032('0x3'));var config=require(_0xb032('0x4'));var attributes=require(_0xb032('0x5'));module[_0xb032('0x6')]=function(_0x22befc,_0x1295c9){return _0x22befc['define'](_0xb032('0x7'),attributes,{'tableName':_0xb032('0x8'),'paranoid':![],'indexes':[{'fields':[_0xb032('0x9')]},{'fields':[_0xb032('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x1ebd=['moment','bluebird','request-promise','path','../../config/environment','./voiceQueueReport.attributes','exports','define','report_queue','uniqueid','calleridnum','lodash','../../config/logger','api'];(function(_0x1928c9,_0x13a6d1){var _0x51b5fb=function(_0x24cf70){while(--_0x24cf70){_0x1928c9['push'](_0x1928c9['shift']());}};_0x51b5fb(++_0x13a6d1);}(_0x1ebd,0xf9));var _0xd1eb=function(_0x1a010f,_0x18491d){_0x1a010f=_0x1a010f-0x0;var _0x585afd=_0x1ebd[_0x1a010f];return _0x585afd;};'use strict';var _=require(_0xd1eb('0x0'));var util=require('util');var logger=require(_0xd1eb('0x1'))(_0xd1eb('0x2'));var moment=require(_0xd1eb('0x3'));var BPromise=require(_0xd1eb('0x4'));var rp=require(_0xd1eb('0x5'));var fs=require('fs');var path=require(_0xd1eb('0x6'));var rimraf=require('rimraf');var config=require(_0xd1eb('0x7'));var attributes=require(_0xd1eb('0x8'));module[_0xd1eb('0x9')]=function(_0x264269,_0x2e1616){return _0x264269[_0xd1eb('0xa')]('VoiceQueueReport',attributes,{'tableName':_0xd1eb('0xb'),'paranoid':![],'indexes':[{'fields':[_0xd1eb('0xc')]},{'fields':[_0xd1eb('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f1f=['update','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./voiceQueueReport.socket','register','then','info','VoiceQueueReport,\x20%s,\x20%s','VoiceQueueReport,\x20%s,\x20%s,\x20%s','error','message','request\x20sent','result','catch','GetVoiceQueueReport','VoiceQueueReport','options','raw','where','limit','include','model','map','attributes','stringify','CreateVoiceQueueReport','create','body','debug','UpdateVoiceQueueReport'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x8f1f,0xd8));var _0xf8f1=function(_0x9e7f9b,_0x372c6a){_0x9e7f9b=_0x9e7f9b-0x0;var _0x236b32=_0x8f1f[_0x9e7f9b];return _0x236b32;};'use strict';var _=require(_0xf8f1('0x0'));var util=require('util');var moment=require(_0xf8f1('0x1'));var BPromise=require('bluebird');var rs=require(_0xf8f1('0x2'));var fs=require('fs');var Redis=require(_0xf8f1('0x3'));var db=require(_0xf8f1('0x4'))['db'];var utils=require(_0xf8f1('0x5'));var logger=require(_0xf8f1('0x6'))(_0xf8f1('0x7'));var config=require(_0xf8f1('0x8'));var jayson=require(_0xf8f1('0x9'));var client=jayson[_0xf8f1('0xa')][_0xf8f1('0xb')]({'port':0x232a});config[_0xf8f1('0xc')]=_['defaults'](config[_0xf8f1('0xc')],{'host':_0xf8f1('0xd'),'port':0x18eb});var socket=require(_0xf8f1('0xe'))(new Redis(config[_0xf8f1('0xc')]));require(_0xf8f1('0xf'))[_0xf8f1('0x10')](socket);function respondWithRpcPromise(_0x3f7019,_0x95ef01,_0x470d2d){return new BPromise(function(_0x5b1fcc,_0x25af43){return client['request'](_0x3f7019,_0x470d2d)[_0xf8f1('0x11')](function(_0x3d366c){logger[_0xf8f1('0x12')](_0xf8f1('0x13'),_0x95ef01,'request\x20sent');logger['debug'](_0xf8f1('0x14'),_0x95ef01,'request\x20sent',JSON['stringify'](_0x3d366c));if(_0x3d366c[_0xf8f1('0x15')]){if(_0x3d366c[_0xf8f1('0x15')]['code']===0x1f4){logger['error'](_0xf8f1('0x13'),_0x95ef01,_0x3d366c['error'][_0xf8f1('0x16')]);return _0x25af43(_0x3d366c['error'][_0xf8f1('0x16')]);}logger['error'](_0xf8f1('0x13'),_0x95ef01,_0x3d366c['error'][_0xf8f1('0x16')]);return _0x5b1fcc(_0x3d366c[_0xf8f1('0x15')][_0xf8f1('0x16')]);}else{logger[_0xf8f1('0x12')](_0xf8f1('0x13'),_0x95ef01,_0xf8f1('0x17'));_0x5b1fcc(_0x3d366c[_0xf8f1('0x18')][_0xf8f1('0x16')]);}})[_0xf8f1('0x19')](function(_0x43b53f){logger[_0xf8f1('0x15')](_0xf8f1('0x13'),_0x95ef01,_0x43b53f);_0x25af43(_0x43b53f);});});}exports[_0xf8f1('0x1a')]=function(_0x5467da){var _0x879df1=this;return new Promise(function(_0x38c86e,_0xd83805){return db[_0xf8f1('0x1b')]['findAll']({'raw':_0x5467da['options']?_0x5467da[_0xf8f1('0x1c')][_0xf8f1('0x1d')]===undefined?!![]:![]:!![],'where':_0x5467da[_0xf8f1('0x1c')]?_0x5467da[_0xf8f1('0x1c')][_0xf8f1('0x1e')]||null:null,'attributes':_0x5467da['options']?_0x5467da[_0xf8f1('0x1c')]['attributes']||null:null,'limit':_0x5467da[_0xf8f1('0x1c')]?_0x5467da[_0xf8f1('0x1c')][_0xf8f1('0x1f')]||null:null,'include':_0x5467da[_0xf8f1('0x1c')]?_0x5467da[_0xf8f1('0x1c')][_0xf8f1('0x20')]?_['map'](_0x5467da['options']['include'],function(_0x3fd878){return{'model':db[_0x3fd878[_0xf8f1('0x21')]],'as':_0x3fd878['as'],'attributes':_0x3fd878['attributes'],'include':_0x3fd878[_0xf8f1('0x20')]?_['map'](_0x3fd878[_0xf8f1('0x20')],function(_0x2fe2e1){return{'model':db[_0x2fe2e1[_0xf8f1('0x21')]],'as':_0x2fe2e1['as'],'attributes':_0x2fe2e1['attributes'],'include':_0x2fe2e1['include']?_[_0xf8f1('0x22')](_0x2fe2e1[_0xf8f1('0x20')],function(_0xbd642b){return{'model':db[_0xbd642b['model']],'as':_0xbd642b['as'],'attributes':_0xbd642b[_0xf8f1('0x23')]};}):[]};}):[]};}):[]:[]})[_0xf8f1('0x11')](function(_0x4168fe){logger['info']('GetVoiceQueueReport',_0x5467da);logger['debug'](_0xf8f1('0x1a'),_0x5467da,JSON[_0xf8f1('0x24')](_0x4168fe));_0x38c86e(_0x4168fe);})['catch'](function(_0x2fce52){logger[_0xf8f1('0x15')]('GetVoiceQueueReport',_0x2fce52[_0xf8f1('0x16')],_0x5467da);_0xd83805(_0x879df1['error'](0x1f4,_0x2fce52['message']));});});};exports[_0xf8f1('0x25')]=function(_0x2d5d2e){var _0x393f1f=this;return new Promise(function(_0x490ba1,_0x3b152c){return db[_0xf8f1('0x1b')][_0xf8f1('0x26')](_0x2d5d2e[_0xf8f1('0x27')],{'raw':_0x2d5d2e[_0xf8f1('0x1c')]?_0x2d5d2e[_0xf8f1('0x1c')][_0xf8f1('0x1d')]===undefined?!![]:![]:!![]})[_0xf8f1('0x11')](function(_0x231f0e){logger[_0xf8f1('0x12')](_0xf8f1('0x25'),_0x2d5d2e);logger[_0xf8f1('0x28')](_0xf8f1('0x25'),_0x2d5d2e,JSON[_0xf8f1('0x24')](_0x231f0e));_0x490ba1(_0x231f0e);})['catch'](function(_0x5949ae){logger[_0xf8f1('0x15')](_0xf8f1('0x25'),_0x5949ae[_0xf8f1('0x16')],_0x2d5d2e);_0x3b152c(_0x393f1f[_0xf8f1('0x15')](0x1f4,_0x5949ae['message']));});});};exports[_0xf8f1('0x29')]=function(_0x421ed9){var _0x1ff0c8=this;return new Promise(function(_0x1b5a57,_0x178279){return db['VoiceQueueReport'][_0xf8f1('0x2a')](_0x421ed9['body'],{'raw':_0x421ed9['options']?_0x421ed9['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x421ed9['options']?_0x421ed9[_0xf8f1('0x1c')][_0xf8f1('0x1e')]||null:null,'attributes':_0x421ed9[_0xf8f1('0x1c')]?_0x421ed9[_0xf8f1('0x1c')]['attributes']||null:null,'limit':_0x421ed9[_0xf8f1('0x1c')]?_0x421ed9[_0xf8f1('0x1c')][_0xf8f1('0x1f')]||null:null})['then'](function(_0xacbfd2){logger[_0xf8f1('0x12')](_0xf8f1('0x29'),_0x421ed9);logger[_0xf8f1('0x28')](_0xf8f1('0x29'),_0x421ed9,JSON[_0xf8f1('0x24')](_0xacbfd2));_0x1b5a57(_0xacbfd2);})[_0xf8f1('0x19')](function(_0x29b74a){logger[_0xf8f1('0x15')](_0xf8f1('0x29'),_0x29b74a[_0xf8f1('0x16')],_0x421ed9);_0x178279(_0x1ff0c8[_0xf8f1('0x15')](0x1f4,_0x29b74a['message']));});});};
\ No newline at end of file
+var _0x23f5=['randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','localhost','socket.io-emitter','./voiceQueueReport.socket','register','request','then','info','VoiceQueueReport,\x20%s,\x20%s','request\x20sent','VoiceQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetVoiceQueueReport','findAll','options','raw','where','attributes','limit','include','model','map','VoiceQueueReport','create','body','CreateVoiceQueueReport','UpdateVoiceQueueReport','update','debug','lodash','util','moment'];(function(_0x1688f6,_0x9ab079){var _0x144c86=function(_0x3e979e){while(--_0x3e979e){_0x1688f6['push'](_0x1688f6['shift']());}};_0x144c86(++_0x9ab079);}(_0x23f5,0x105));var _0x523f=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x23f5[_0x57b54c];return _0x59cc19;};'use strict';var _=require(_0x523f('0x0'));var util=require(_0x523f('0x1'));var moment=require(_0x523f('0x2'));var BPromise=require('bluebird');var rs=require(_0x523f('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x523f('0x4'))['db'];var utils=require(_0x523f('0x5'));var logger=require(_0x523f('0x6'))(_0x523f('0x7'));var config=require('../../config/environment');var jayson=require(_0x523f('0x8'));var client=jayson[_0x523f('0x9')][_0x523f('0xa')]({'port':0x232a});config[_0x523f('0xb')]=_['defaults'](config['redis'],{'host':_0x523f('0xc'),'port':0x18eb});var socket=require(_0x523f('0xd'))(new Redis(config[_0x523f('0xb')]));require(_0x523f('0xe'))[_0x523f('0xf')](socket);function respondWithRpcPromise(_0x5521c9,_0x3ebac1,_0x4d299e){return new BPromise(function(_0x4608e9,_0x3f2768){return client[_0x523f('0x10')](_0x5521c9,_0x4d299e)[_0x523f('0x11')](function(_0x5ade1e){logger[_0x523f('0x12')](_0x523f('0x13'),_0x3ebac1,_0x523f('0x14'));logger['debug'](_0x523f('0x15'),_0x3ebac1,'request\x20sent',JSON[_0x523f('0x16')](_0x5ade1e));if(_0x5ade1e['error']){if(_0x5ade1e['error']['code']===0x1f4){logger[_0x523f('0x17')](_0x523f('0x13'),_0x3ebac1,_0x5ade1e['error'][_0x523f('0x18')]);return _0x3f2768(_0x5ade1e[_0x523f('0x17')]['message']);}logger[_0x523f('0x17')]('VoiceQueueReport,\x20%s,\x20%s',_0x3ebac1,_0x5ade1e[_0x523f('0x17')][_0x523f('0x18')]);return _0x4608e9(_0x5ade1e[_0x523f('0x17')]['message']);}else{logger['info'](_0x523f('0x13'),_0x3ebac1,_0x523f('0x14'));_0x4608e9(_0x5ade1e[_0x523f('0x19')][_0x523f('0x18')]);}})[_0x523f('0x1a')](function(_0x5e0308){logger['error'](_0x523f('0x13'),_0x3ebac1,_0x5e0308);_0x3f2768(_0x5e0308);});});}exports[_0x523f('0x1b')]=function(_0x2cc6eb){var _0x5c6e16=this;return new Promise(function(_0xd8ac40,_0x39f9b6){return db['VoiceQueueReport'][_0x523f('0x1c')]({'raw':_0x2cc6eb['options']?_0x2cc6eb[_0x523f('0x1d')][_0x523f('0x1e')]===undefined?!![]:![]:!![],'where':_0x2cc6eb[_0x523f('0x1d')]?_0x2cc6eb[_0x523f('0x1d')][_0x523f('0x1f')]||null:null,'attributes':_0x2cc6eb['options']?_0x2cc6eb['options'][_0x523f('0x20')]||null:null,'limit':_0x2cc6eb[_0x523f('0x1d')]?_0x2cc6eb[_0x523f('0x1d')][_0x523f('0x21')]||null:null,'include':_0x2cc6eb['options']?_0x2cc6eb[_0x523f('0x1d')][_0x523f('0x22')]?_['map'](_0x2cc6eb['options'][_0x523f('0x22')],function(_0x24b57b){return{'model':db[_0x24b57b[_0x523f('0x23')]],'as':_0x24b57b['as'],'attributes':_0x24b57b[_0x523f('0x20')],'include':_0x24b57b[_0x523f('0x22')]?_[_0x523f('0x24')](_0x24b57b[_0x523f('0x22')],function(_0x5b7d0d){return{'model':db[_0x5b7d0d[_0x523f('0x23')]],'as':_0x5b7d0d['as'],'attributes':_0x5b7d0d[_0x523f('0x20')],'include':_0x5b7d0d['include']?_['map'](_0x5b7d0d['include'],function(_0x5d330f){return{'model':db[_0x5d330f[_0x523f('0x23')]],'as':_0x5d330f['as'],'attributes':_0x5d330f[_0x523f('0x20')]};}):[]};}):[]};}):[]:[]})[_0x523f('0x11')](function(_0x1fce90){logger[_0x523f('0x12')](_0x523f('0x1b'),_0x2cc6eb);logger['debug'](_0x523f('0x1b'),_0x2cc6eb,JSON['stringify'](_0x1fce90));_0xd8ac40(_0x1fce90);})[_0x523f('0x1a')](function(_0x5a4b35){logger['error'](_0x523f('0x1b'),_0x5a4b35[_0x523f('0x18')],_0x2cc6eb);_0x39f9b6(_0x5c6e16['error'](0x1f4,_0x5a4b35[_0x523f('0x18')]));});});};exports['CreateVoiceQueueReport']=function(_0x3b9f08){var _0x4413df=this;return new Promise(function(_0x26d330,_0x51b683){return db[_0x523f('0x25')][_0x523f('0x26')](_0x3b9f08[_0x523f('0x27')],{'raw':_0x3b9f08[_0x523f('0x1d')]?_0x3b9f08['options']['raw']===undefined?!![]:![]:!![]})[_0x523f('0x11')](function(_0x4da325){logger['info']('CreateVoiceQueueReport',_0x3b9f08);logger['debug'](_0x523f('0x28'),_0x3b9f08,JSON[_0x523f('0x16')](_0x4da325));_0x26d330(_0x4da325);})[_0x523f('0x1a')](function(_0x7124a9){logger[_0x523f('0x17')]('CreateVoiceQueueReport',_0x7124a9[_0x523f('0x18')],_0x3b9f08);_0x51b683(_0x4413df[_0x523f('0x17')](0x1f4,_0x7124a9['message']));});});};exports[_0x523f('0x29')]=function(_0x1cfc8e){var _0x563e0a=this;return new Promise(function(_0x4d15b7,_0x2687de){return db[_0x523f('0x25')][_0x523f('0x2a')](_0x1cfc8e[_0x523f('0x27')],{'raw':_0x1cfc8e[_0x523f('0x1d')]?_0x1cfc8e[_0x523f('0x1d')][_0x523f('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1cfc8e['options']?_0x1cfc8e[_0x523f('0x1d')][_0x523f('0x1f')]||null:null,'attributes':_0x1cfc8e[_0x523f('0x1d')]?_0x1cfc8e[_0x523f('0x1d')][_0x523f('0x20')]||null:null,'limit':_0x1cfc8e['options']?_0x1cfc8e['options']['limit']||null:null})['then'](function(_0x51be5){logger[_0x523f('0x12')]('UpdateVoiceQueueReport',_0x1cfc8e);logger[_0x523f('0x2b')](_0x523f('0x29'),_0x1cfc8e,JSON[_0x523f('0x16')](_0x51be5));_0x4d15b7(_0x51be5);})[_0x523f('0x1a')](function(_0xad13cf){logger[_0x523f('0x17')](_0x523f('0x29'),_0xad13cf[_0x523f('0x18')],_0x1cfc8e);_0x2687de(_0x563e0a[_0x523f('0x17')](0x1f4,_0xad13cf[_0x523f('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x39e0=['register','length','voiceQueueReport:','remove','emit','removeListener'];(function(_0x29d052,_0x23a0c2){var _0x2b5829=function(_0x19585c){while(--_0x19585c){_0x29d052['push'](_0x29d052['shift']());}};_0x2b5829(++_0x23a0c2);}(_0x39e0,0x1c5));var _0x039e=function(_0x5882ac,_0x24b9ba){_0x5882ac=_0x5882ac-0x0;var _0xa860bd=_0x39e0[_0x5882ac];return _0xa860bd;};'use strict';var VoiceQueueReportEvents=require('./voiceQueueReport.events');var events=['save',_0x039e('0x0'),'update'];function createListener(_0x26e640,_0x2ee429){return function(_0x29c0df){_0x2ee429[_0x039e('0x1')](_0x26e640,_0x29c0df);};}function removeListener(_0x5d8b0e,_0x1b97df){return function(){VoiceQueueReportEvents[_0x039e('0x2')](_0x5d8b0e,_0x1b97df);};}exports[_0x039e('0x3')]=function(_0x4a0a75){for(var _0x2be3e2=0x0,_0x43f337=events[_0x039e('0x4')];_0x2be3e2<_0x43f337;_0x2be3e2++){var _0x3b6574=events[_0x2be3e2];var _0x44ff81=createListener(_0x039e('0x5')+_0x3b6574,_0x4a0a75);VoiceQueueReportEvents['on'](_0x3b6574,_0x44ff81);}};
\ No newline at end of file
+var _0xb9e3=['emit','length','voiceQueueReport:','./voiceQueueReport.events','save','remove','update'];(function(_0x247b0c,_0x492071){var _0xacb9ae=function(_0x2588a7){while(--_0x2588a7){_0x247b0c['push'](_0x247b0c['shift']());}};_0xacb9ae(++_0x492071);}(_0xb9e3,0xdc));var _0x3b9e=function(_0x2d61ac,_0x18ff36){_0x2d61ac=_0x2d61ac-0x0;var _0x3f7d3c=_0xb9e3[_0x2d61ac];return _0x3f7d3c;};'use strict';var VoiceQueueReportEvents=require(_0x3b9e('0x0'));var events=[_0x3b9e('0x1'),_0x3b9e('0x2'),_0x3b9e('0x3')];function createListener(_0xffa7f5,_0x54f160){return function(_0x2a2a5b){_0x54f160[_0x3b9e('0x4')](_0xffa7f5,_0x2a2a5b);};}function removeListener(_0x550fc1,_0x5e04bd){return function(){VoiceQueueReportEvents['removeListener'](_0x550fc1,_0x5e04bd);};}exports['register']=function(_0x30a9dd){for(var _0x313c48=0x0,_0x4fea26=events[_0x3b9e('0x5')];_0x313c48<_0x4fea26;_0x313c48++){var _0x33bb97=events[_0x313c48];var _0x33e67=createListener(_0x3b9e('0x6')+_0x33bb97,_0x30a9dd);VoiceQueueReportEvents['on'](_0x33bb97,_0x33e67);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0140=['path','connect-timeout','Router','../../components/interaction/service','../../config/environment','get','isAuthenticated','post','create','/:id','update','delete','destroy','multer','util'];(function(_0x7e2eb0,_0x17cd58){var _0xd92de4=function(_0x5d005b){while(--_0x5d005b){_0x7e2eb0['push'](_0x7e2eb0['shift']());}};_0xd92de4(++_0x17cd58);}(_0x0140,0x148));var _0x0014=function(_0x270adf,_0x1daaa3){_0x270adf=_0x270adf-0x0;var _0x29eda9=_0x0140[_0x270adf];return _0x29eda9;};'use strict';var multer=require(_0x0014('0x0'));var util=require(_0x0014('0x1'));var path=require(_0x0014('0x2'));var timeout=require(_0x0014('0x3'));var express=require('express');var router=express[_0x0014('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x0014('0x5'));var config=require(_0x0014('0x6'));var controller=require('./voiceQueuesLog.controller');router[_0x0014('0x7')]('/',auth[_0x0014('0x8')](),controller['index']);router[_0x0014('0x7')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x0014('0x9')]('/',auth['isAuthenticated'](),controller[_0x0014('0xa')]);router['put'](_0x0014('0xb'),auth['isAuthenticated'](),controller[_0x0014('0xc')]);router[_0x0014('0xd')](_0x0014('0xb'),auth['isAuthenticated'](),controller[_0x0014('0xe')]);module['exports']=router;
\ No newline at end of file
+var _0x56d8=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/:id','post','create','put','update','delete','destroy','exports','multer'];(function(_0x3a2a3c,_0x37bd31){var _0x50ac9a=function(_0x494a7f){while(--_0x494a7f){_0x3a2a3c['push'](_0x3a2a3c['shift']());}};_0x50ac9a(++_0x37bd31);}(_0x56d8,0x1a1));var _0x856d=function(_0xd1d19a,_0x1933f0){_0xd1d19a=_0xd1d19a-0x0;var _0x52a79d=_0x56d8[_0xd1d19a];return _0x52a79d;};'use strict';var multer=require(_0x856d('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x856d('0x1'));var express=require(_0x856d('0x2'));var router=express[_0x856d('0x3')]();var fs_extra=require(_0x856d('0x4'));var auth=require(_0x856d('0x5'));var interaction=require(_0x856d('0x6'));var config=require(_0x856d('0x7'));var controller=require('./voiceQueuesLog.controller');router['get']('/',auth[_0x856d('0x8')](),controller[_0x856d('0x9')]);router[_0x856d('0xa')](_0x856d('0xb'),auth['isAuthenticated'](),controller['show']);router[_0x856d('0xc')]('/',auth['isAuthenticated'](),controller[_0x856d('0xd')]);router[_0x856d('0xe')](_0x856d('0xb'),auth[_0x856d('0x8')](),controller[_0x856d('0xf')]);router[_0x856d('0x10')](_0x856d('0xb'),auth[_0x856d('0x8')](),controller[_0x856d('0x11')]);module[_0x856d('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4af9=['sequelize','moment','STRING','DATE','format'];(function(_0x571713,_0x1ffc28){var _0xfa2400=function(_0x569add){while(--_0x569add){_0x571713['push'](_0x571713['shift']());}};_0xfa2400(++_0x1ffc28);}(_0x4af9,0x12c));var _0x94af=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x4af9[_0x3b380d];return _0x54502b;};'use strict';var Sequelize=require(_0x94af('0x0'));var moment=require(_0x94af('0x1'));module['exports']={'time':{'type':Sequelize['STRING']},'callid':{'type':Sequelize[_0x94af('0x2')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize[_0x94af('0x2')],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize[_0x94af('0x2')],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize[_0x94af('0x2')],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0x94af('0x2')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize[_0x94af('0x2')],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize[_0x94af('0x2')],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0x94af('0x2')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize[_0x94af('0x2')],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize[_0x94af('0x3')],'allowNull':![],'defaultValue':moment()[_0x94af('0x4')]('YYYY-MM-DD\x20HH:mm:ss')}};
\ No newline at end of file
+var _0x7f2f=['exports','STRING','format','YYYY-MM-DD\x20HH:mm:ss','moment'];(function(_0x30e6c1,_0x1c02b6){var _0x177aac=function(_0x1e36e6){while(--_0x1e36e6){_0x30e6c1['push'](_0x30e6c1['shift']());}};_0x177aac(++_0x1c02b6);}(_0x7f2f,0x11c));var _0xf7f2=function(_0x1aab74,_0x38a57b){_0x1aab74=_0x1aab74-0x0;var _0x396af2=_0x7f2f[_0x1aab74];return _0x396af2;};'use strict';var Sequelize=require('sequelize');var moment=require(_0xf7f2('0x0'));module[_0xf7f2('0x1')]={'time':{'type':Sequelize['STRING']},'callid':{'type':Sequelize[_0xf7f2('0x2')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize[_0xf7f2('0x2')],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize[_0xf7f2('0x2')],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize[_0xf7f2('0x2')],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0xf7f2('0x2')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize[_0xf7f2('0x2')],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0xf7f2('0x2')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize[_0xf7f2('0x2')],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':moment()[_0xf7f2('0x3')](_0xf7f2('0x4'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa3c7=['sendStatus','end','status','json','offset','undefined','limit','count','set','apply','reject','save','update','then','name','index','VoiceQueuesLog','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','map','VIRTUAL','filter','merge','options','includeAll','include','findAll','rows','catch','params','rawAttributes','find','create','body','destroy','eml-format','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/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0x3de8a4,_0x289a5c){var _0x4635cf=function(_0x2bddb8){while(--_0x2bddb8){_0x3de8a4['push'](_0x3de8a4['shift']());}};_0x4635cf(++_0x289a5c);}(_0xa3c7,0x160));var _0x7a3c=function(_0x79b53e,_0x108f8d){_0x79b53e=_0x79b53e-0x0;var _0x2d4d6c=_0xa3c7[_0x79b53e];return _0x2d4d6c;};'use strict';var emlformat=require(_0x7a3c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7a3c('0x1'));var jsonpatch=require(_0x7a3c('0x2'));var rp=require(_0x7a3c('0x3'));var moment=require(_0x7a3c('0x4'));var BPromise=require(_0x7a3c('0x5'));var Mustache=require(_0x7a3c('0x6'));var util=require(_0x7a3c('0x7'));var path=require(_0x7a3c('0x8'));var sox=require(_0x7a3c('0x9'));var csv=require(_0x7a3c('0xa'));var ejs=require(_0x7a3c('0xb'));var fs=require('fs');var fs_extra=require(_0x7a3c('0xc'));var _=require(_0x7a3c('0xd'));var squel=require(_0x7a3c('0xe'));var crypto=require('crypto');var jsforce=require(_0x7a3c('0xf'));var deskjs=require(_0x7a3c('0x10'));var toCsv=require(_0x7a3c('0xa'));var querystring=require(_0x7a3c('0x11'));var Papa=require(_0x7a3c('0x12'));var Redis=require(_0x7a3c('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x7a3c('0x14'));var hardwareService=require(_0x7a3c('0x15'));var logger=require(_0x7a3c('0x16'))(_0x7a3c('0x17'));var utils=require(_0x7a3c('0x18'));var config=require(_0x7a3c('0x19'));var licenseUtil=require(_0x7a3c('0x1a'));var db=require(_0x7a3c('0x1b'))['db'];function respondWithStatusCode(_0x3509ea,_0x5d2ca4){_0x5d2ca4=_0x5d2ca4||0xcc;return function(_0x4127a4){if(_0x4127a4){return _0x3509ea[_0x7a3c('0x1c')](_0x5d2ca4);}return _0x3509ea['status'](_0x5d2ca4)[_0x7a3c('0x1d')]();};}function respondWithResult(_0x52cdbb,_0x9f7c56){_0x9f7c56=_0x9f7c56||0xc8;return function(_0xb2a2bd){if(_0xb2a2bd){return _0x52cdbb[_0x7a3c('0x1e')](_0x9f7c56)[_0x7a3c('0x1f')](_0xb2a2bd);}};}function respondWithFilteredResult(_0x2c6f9e,_0x5acadd){return function(_0x5a1241){if(_0x5a1241){var _0x5f0c9a=typeof _0x5acadd[_0x7a3c('0x20')]===_0x7a3c('0x21')&&typeof _0x5acadd[_0x7a3c('0x22')]===_0x7a3c('0x21');var _0x4693b2=_0x5a1241[_0x7a3c('0x23')];var _0x181337=_0x5f0c9a?0x0:_0x5acadd[_0x7a3c('0x20')];var _0xbb2f28=_0x5f0c9a?_0x5a1241['count']:_0x5acadd[_0x7a3c('0x20')]+_0x5acadd[_0x7a3c('0x22')];var _0x19c00b;if(_0xbb2f28>=_0x4693b2){_0xbb2f28=_0x4693b2;_0x19c00b=0xc8;}else{_0x19c00b=0xce;}_0x2c6f9e['status'](_0x19c00b);return _0x2c6f9e[_0x7a3c('0x24')]('Content-Range',_0x181337+'-'+_0xbb2f28+'/'+_0x4693b2)[_0x7a3c('0x1f')](_0x5a1241);}return null;};}function patchUpdates(_0x5db8fd){return function(_0x47b549){try{jsonpatch[_0x7a3c('0x25')](_0x47b549,_0x5db8fd,!![]);}catch(_0x5b7c39){return BPromise[_0x7a3c('0x26')](_0x5b7c39);}return _0x47b549[_0x7a3c('0x27')]();};}function saveUpdates(_0x24035c,_0x6b3491){return function(_0x12adb8){if(_0x12adb8){return _0x12adb8[_0x7a3c('0x28')](_0x24035c)['then'](function(_0x47067c){return _0x47067c;});}return null;};}function removeEntity(_0x51da15,_0x30dd01){return function(_0x5724bd){if(_0x5724bd){return _0x5724bd['destroy']()[_0x7a3c('0x29')](function(){_0x51da15['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x31c2b7,_0x4d8e2f){return function(_0x4dfc6c){if(!_0x4dfc6c){_0x31c2b7[_0x7a3c('0x1c')](0x194);}return _0x4dfc6c;};}function handleError(_0x4ac2ca,_0x4915e9){_0x4915e9=_0x4915e9||0x1f4;return function(_0x11ab74){logger['error'](_0x11ab74['stack']);if(_0x11ab74[_0x7a3c('0x2a')]){delete _0x11ab74[_0x7a3c('0x2a')];}_0x4ac2ca[_0x7a3c('0x1e')](_0x4915e9)['send'](_0x11ab74);};}exports[_0x7a3c('0x2b')]=function(_0x14d58a,_0x16cedf){var _0x126447={},_0x57ba8a={},_0x117d11={'count':0x0,'rows':[]};var _0x4f606a=_['map'](db[_0x7a3c('0x2c')]['rawAttributes'],function(_0x1dfd99){return{'name':_0x1dfd99[_0x7a3c('0x2d')],'type':_0x1dfd99[_0x7a3c('0x2e')]['key']};});_0x57ba8a[_0x7a3c('0x2f')]=_['map'](_0x4f606a,'name');_0x57ba8a[_0x7a3c('0x30')]=_[_0x7a3c('0x31')](_0x14d58a[_0x7a3c('0x30')]);_0x57ba8a[_0x7a3c('0x32')]=_[_0x7a3c('0x33')](_0x57ba8a[_0x7a3c('0x2f')],_0x57ba8a['query']);_0x126447[_0x7a3c('0x34')]=_[_0x7a3c('0x33')](_0x57ba8a[_0x7a3c('0x2f')],qs[_0x7a3c('0x35')](_0x14d58a[_0x7a3c('0x30')]['fields']));_0x126447[_0x7a3c('0x34')]=_0x126447[_0x7a3c('0x34')][_0x7a3c('0x36')]?_0x126447[_0x7a3c('0x34')]:_0x57ba8a[_0x7a3c('0x2f')];if(!_0x14d58a[_0x7a3c('0x30')][_0x7a3c('0x37')](_0x7a3c('0x38'))){_0x126447[_0x7a3c('0x22')]=qs['limit'](_0x14d58a[_0x7a3c('0x30')][_0x7a3c('0x22')]);_0x126447[_0x7a3c('0x20')]=qs[_0x7a3c('0x20')](_0x14d58a[_0x7a3c('0x30')][_0x7a3c('0x20')]);}_0x126447[_0x7a3c('0x39')]=qs[_0x7a3c('0x3a')](_0x14d58a[_0x7a3c('0x30')]['sort']);_0x126447[_0x7a3c('0x3b')]=qs[_0x7a3c('0x32')](_['pick'](_0x14d58a[_0x7a3c('0x30')],_0x57ba8a['filters']),_0x4f606a);if(_0x14d58a[_0x7a3c('0x30')]['filter']){_0x126447['where']=_['merge'](_0x126447['where'],{'$or':_[_0x7a3c('0x3c')](_0x4f606a,function(_0x26bddc){if(_0x26bddc[_0x7a3c('0x2e')]!==_0x7a3c('0x3d')){var _0x2f5db7={};_0x2f5db7[_0x26bddc[_0x7a3c('0x2a')]]={'$like':'%'+_0x14d58a[_0x7a3c('0x30')][_0x7a3c('0x3e')]+'%'};return _0x2f5db7;}})});}_0x126447=_[_0x7a3c('0x3f')]({},_0x126447,_0x14d58a[_0x7a3c('0x40')]);var _0x1cace8={'where':_0x126447[_0x7a3c('0x3b')]};return db[_0x7a3c('0x2c')][_0x7a3c('0x23')](_0x1cace8)[_0x7a3c('0x29')](function(_0x1afcbf){_0x117d11[_0x7a3c('0x23')]=_0x1afcbf;if(_0x14d58a[_0x7a3c('0x30')][_0x7a3c('0x41')]){_0x126447[_0x7a3c('0x42')]=[{'all':!![]}];}return db[_0x7a3c('0x2c')][_0x7a3c('0x43')](_0x126447);})[_0x7a3c('0x29')](function(_0x47a2f4){_0x117d11[_0x7a3c('0x44')]=_0x47a2f4;return _0x117d11;})[_0x7a3c('0x29')](respondWithFilteredResult(_0x16cedf,_0x126447))[_0x7a3c('0x45')](handleError(_0x16cedf,null));};exports['show']=function(_0x58bee3,_0x283d5f){var _0x19aa26={'raw':!![],'where':{'id':_0x58bee3[_0x7a3c('0x46')]['id']}},_0x414f03={};_0x414f03[_0x7a3c('0x2f')]=_[_0x7a3c('0x31')](db[_0x7a3c('0x2c')][_0x7a3c('0x47')]);_0x414f03[_0x7a3c('0x30')]=_[_0x7a3c('0x31')](_0x58bee3[_0x7a3c('0x30')]);_0x414f03[_0x7a3c('0x32')]=_[_0x7a3c('0x33')](_0x414f03[_0x7a3c('0x2f')],_0x414f03[_0x7a3c('0x30')]);_0x19aa26[_0x7a3c('0x34')]=_[_0x7a3c('0x33')](_0x414f03['model'],qs[_0x7a3c('0x35')](_0x58bee3['query'][_0x7a3c('0x35')]));_0x19aa26['attributes']=_0x19aa26['attributes']['length']?_0x19aa26[_0x7a3c('0x34')]:_0x414f03[_0x7a3c('0x2f')];if(_0x58bee3['query'][_0x7a3c('0x41')]){_0x19aa26[_0x7a3c('0x42')]=[{'all':!![]}];}_0x19aa26=_[_0x7a3c('0x3f')]({},_0x19aa26,_0x58bee3[_0x7a3c('0x40')]);return db['VoiceQueuesLog'][_0x7a3c('0x48')](_0x19aa26)[_0x7a3c('0x29')](handleEntityNotFound(_0x283d5f,null))[_0x7a3c('0x29')](respondWithResult(_0x283d5f,null))['catch'](handleError(_0x283d5f,null));};exports[_0x7a3c('0x49')]=function(_0x2a7e08,_0x1fef17){return db['VoiceQueuesLog'][_0x7a3c('0x49')](_0x2a7e08[_0x7a3c('0x4a')],{})[_0x7a3c('0x29')](respondWithResult(_0x1fef17,0xc9))[_0x7a3c('0x45')](handleError(_0x1fef17,null));};exports['update']=function(_0x481454,_0x2ddb24){if(_0x481454[_0x7a3c('0x4a')]['id']){delete _0x481454[_0x7a3c('0x4a')]['id'];}return db['VoiceQueuesLog'][_0x7a3c('0x48')]({'where':{'id':_0x481454[_0x7a3c('0x46')]['id']}})['then'](handleEntityNotFound(_0x2ddb24,null))[_0x7a3c('0x29')](saveUpdates(_0x481454[_0x7a3c('0x4a')],null))['then'](respondWithResult(_0x2ddb24,null))[_0x7a3c('0x45')](handleError(_0x2ddb24,null));};exports[_0x7a3c('0x4b')]=function(_0x3f8374,_0x513f41){return db[_0x7a3c('0x2c')][_0x7a3c('0x48')]({'where':{'id':_0x3f8374[_0x7a3c('0x46')]['id']}})[_0x7a3c('0x29')](handleEntityNotFound(_0x513f41,null))[_0x7a3c('0x29')](removeEntity(_0x513f41,null))['catch'](handleError(_0x513f41,null));};
\ No newline at end of file
+var _0x7600=['zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','save','update','destroy','then','error','stack','name','send','index','map','VoiceQueuesLog','rawAttributes','fieldName','type','keys','intersection','model','query','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','eml-format','rimraf'];(function(_0x2fc012,_0x503e5b){var _0x2891f9=function(_0x295f5e){while(--_0x295f5e){_0x2fc012['push'](_0x2fc012['shift']());}};_0x2891f9(++_0x503e5b);}(_0x7600,0x13e));var _0x0760=function(_0x21549c,_0x6d64d1){_0x21549c=_0x21549c-0x0;var _0x426cbd=_0x7600[_0x21549c];return _0x426cbd;};'use strict';var emlformat=require(_0x0760('0x0'));var rimraf=require(_0x0760('0x1'));var zipdir=require(_0x0760('0x2'));var jsonpatch=require(_0x0760('0x3'));var rp=require(_0x0760('0x4'));var moment=require(_0x0760('0x5'));var BPromise=require(_0x0760('0x6'));var Mustache=require(_0x0760('0x7'));var util=require(_0x0760('0x8'));var path=require('path');var sox=require(_0x0760('0x9'));var csv=require(_0x0760('0xa'));var ejs=require(_0x0760('0xb'));var fs=require('fs');var fs_extra=require(_0x0760('0xc'));var _=require(_0x0760('0xd'));var squel=require(_0x0760('0xe'));var crypto=require(_0x0760('0xf'));var jsforce=require(_0x0760('0x10'));var deskjs=require(_0x0760('0x11'));var toCsv=require(_0x0760('0xa'));var querystring=require(_0x0760('0x12'));var Papa=require(_0x0760('0x13'));var Redis=require('ioredis');var authService=require(_0x0760('0x14'));var qs=require(_0x0760('0x15'));var as=require(_0x0760('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0760('0x17'))(_0x0760('0x18'));var utils=require(_0x0760('0x19'));var config=require(_0x0760('0x1a'));var licenseUtil=require(_0x0760('0x1b'));var db=require(_0x0760('0x1c'))['db'];function respondWithStatusCode(_0x1f394f,_0xd4d1dd){_0xd4d1dd=_0xd4d1dd||0xcc;return function(_0x356bfd){if(_0x356bfd){return _0x1f394f[_0x0760('0x1d')](_0xd4d1dd);}return _0x1f394f[_0x0760('0x1e')](_0xd4d1dd)[_0x0760('0x1f')]();};}function respondWithResult(_0x51fc93,_0x1100ee){_0x1100ee=_0x1100ee||0xc8;return function(_0x31f147){if(_0x31f147){return _0x51fc93[_0x0760('0x1e')](_0x1100ee)['json'](_0x31f147);}};}function respondWithFilteredResult(_0x428a3b,_0x46eea6){return function(_0x4ed433){if(_0x4ed433){var _0x49d89e=typeof _0x46eea6[_0x0760('0x20')]===_0x0760('0x21')&&typeof _0x46eea6[_0x0760('0x22')]===_0x0760('0x21');var _0x125f15=_0x4ed433[_0x0760('0x23')];var _0x3c252d=_0x49d89e?0x0:_0x46eea6['offset'];var _0x5bfb58=_0x49d89e?_0x4ed433['count']:_0x46eea6[_0x0760('0x20')]+_0x46eea6[_0x0760('0x22')];var _0x2cb832;if(_0x5bfb58>=_0x125f15){_0x5bfb58=_0x125f15;_0x2cb832=0xc8;}else{_0x2cb832=0xce;}_0x428a3b['status'](_0x2cb832);return _0x428a3b[_0x0760('0x24')](_0x0760('0x25'),_0x3c252d+'-'+_0x5bfb58+'/'+_0x125f15)[_0x0760('0x26')](_0x4ed433);}return null;};}function patchUpdates(_0x27061d){return function(_0x24101f){try{jsonpatch['apply'](_0x24101f,_0x27061d,!![]);}catch(_0x2063f5){return BPromise[_0x0760('0x27')](_0x2063f5);}return _0x24101f[_0x0760('0x28')]();};}function saveUpdates(_0x2511d0,_0x11d1db){return function(_0x88c03d){if(_0x88c03d){return _0x88c03d[_0x0760('0x29')](_0x2511d0)['then'](function(_0x4fc37a){return _0x4fc37a;});}return null;};}function removeEntity(_0x513ca9,_0x510170){return function(_0x4e4679){if(_0x4e4679){return _0x4e4679[_0x0760('0x2a')]()[_0x0760('0x2b')](function(){_0x513ca9['status'](0xcc)[_0x0760('0x1f')]();});}};}function handleEntityNotFound(_0x4fe7aa,_0x155e30){return function(_0xed1ead){if(!_0xed1ead){_0x4fe7aa[_0x0760('0x1d')](0x194);}return _0xed1ead;};}function handleError(_0x56f083,_0x448e05){_0x448e05=_0x448e05||0x1f4;return function(_0xa606d5){logger[_0x0760('0x2c')](_0xa606d5[_0x0760('0x2d')]);if(_0xa606d5[_0x0760('0x2e')]){delete _0xa606d5[_0x0760('0x2e')];}_0x56f083[_0x0760('0x1e')](_0x448e05)[_0x0760('0x2f')](_0xa606d5);};}exports[_0x0760('0x30')]=function(_0x93947e,_0x3bd82b){var _0x50d6a8={},_0x2af4cd={},_0x1381ab={'count':0x0,'rows':[]};var _0x5ab921=_[_0x0760('0x31')](db[_0x0760('0x32')][_0x0760('0x33')],function(_0x5e6460){return{'name':_0x5e6460[_0x0760('0x34')],'type':_0x5e6460[_0x0760('0x35')]['key']};});_0x2af4cd['model']=_[_0x0760('0x31')](_0x5ab921,_0x0760('0x2e'));_0x2af4cd['query']=_[_0x0760('0x36')](_0x93947e['query']);_0x2af4cd['filters']=_[_0x0760('0x37')](_0x2af4cd[_0x0760('0x38')],_0x2af4cd[_0x0760('0x39')]);_0x50d6a8['attributes']=_[_0x0760('0x37')](_0x2af4cd[_0x0760('0x38')],qs[_0x0760('0x3a')](_0x93947e[_0x0760('0x39')][_0x0760('0x3a')]));_0x50d6a8[_0x0760('0x3b')]=_0x50d6a8[_0x0760('0x3b')][_0x0760('0x3c')]?_0x50d6a8['attributes']:_0x2af4cd[_0x0760('0x38')];if(!_0x93947e['query'][_0x0760('0x3d')](_0x0760('0x3e'))){_0x50d6a8[_0x0760('0x22')]=qs[_0x0760('0x22')](_0x93947e[_0x0760('0x39')][_0x0760('0x22')]);_0x50d6a8[_0x0760('0x20')]=qs[_0x0760('0x20')](_0x93947e[_0x0760('0x39')][_0x0760('0x20')]);}_0x50d6a8[_0x0760('0x3f')]=qs[_0x0760('0x40')](_0x93947e[_0x0760('0x39')][_0x0760('0x40')]);_0x50d6a8['where']=qs[_0x0760('0x41')](_[_0x0760('0x42')](_0x93947e[_0x0760('0x39')],_0x2af4cd[_0x0760('0x41')]),_0x5ab921);if(_0x93947e[_0x0760('0x39')][_0x0760('0x43')]){_0x50d6a8[_0x0760('0x44')]=_['merge'](_0x50d6a8[_0x0760('0x44')],{'$or':_[_0x0760('0x31')](_0x5ab921,function(_0x3ff568){if(_0x3ff568[_0x0760('0x35')]!=='VIRTUAL'){var _0x4db201={};_0x4db201[_0x3ff568[_0x0760('0x2e')]]={'$like':'%'+_0x93947e[_0x0760('0x39')][_0x0760('0x43')]+'%'};return _0x4db201;}})});}_0x50d6a8=_['merge']({},_0x50d6a8,_0x93947e[_0x0760('0x45')]);var _0x596b58={'where':_0x50d6a8[_0x0760('0x44')]};return db['VoiceQueuesLog'][_0x0760('0x23')](_0x596b58)['then'](function(_0x25178d){_0x1381ab[_0x0760('0x23')]=_0x25178d;if(_0x93947e[_0x0760('0x39')][_0x0760('0x46')]){_0x50d6a8[_0x0760('0x47')]=[{'all':!![]}];}return db[_0x0760('0x32')][_0x0760('0x48')](_0x50d6a8);})['then'](function(_0x400fa8){_0x1381ab[_0x0760('0x49')]=_0x400fa8;return _0x1381ab;})[_0x0760('0x2b')](respondWithFilteredResult(_0x3bd82b,_0x50d6a8))[_0x0760('0x4a')](handleError(_0x3bd82b,null));};exports[_0x0760('0x4b')]=function(_0x1ba414,_0x2c85ba){var _0x176f44={'raw':!![],'where':{'id':_0x1ba414[_0x0760('0x4c')]['id']}},_0x27278f={};_0x27278f[_0x0760('0x38')]=_[_0x0760('0x36')](db[_0x0760('0x32')][_0x0760('0x33')]);_0x27278f[_0x0760('0x39')]=_[_0x0760('0x36')](_0x1ba414[_0x0760('0x39')]);_0x27278f['filters']=_[_0x0760('0x37')](_0x27278f[_0x0760('0x38')],_0x27278f[_0x0760('0x39')]);_0x176f44['attributes']=_[_0x0760('0x37')](_0x27278f[_0x0760('0x38')],qs[_0x0760('0x3a')](_0x1ba414[_0x0760('0x39')][_0x0760('0x3a')]));_0x176f44[_0x0760('0x3b')]=_0x176f44['attributes'][_0x0760('0x3c')]?_0x176f44[_0x0760('0x3b')]:_0x27278f[_0x0760('0x38')];if(_0x1ba414['query'][_0x0760('0x46')]){_0x176f44['include']=[{'all':!![]}];}_0x176f44=_['merge']({},_0x176f44,_0x1ba414[_0x0760('0x45')]);return db[_0x0760('0x32')][_0x0760('0x4d')](_0x176f44)[_0x0760('0x2b')](handleEntityNotFound(_0x2c85ba,null))[_0x0760('0x2b')](respondWithResult(_0x2c85ba,null))['catch'](handleError(_0x2c85ba,null));};exports[_0x0760('0x4e')]=function(_0x27b129,_0x54cac2){return db[_0x0760('0x32')]['create'](_0x27b129[_0x0760('0x4f')],{})[_0x0760('0x2b')](respondWithResult(_0x54cac2,0xc9))[_0x0760('0x4a')](handleError(_0x54cac2,null));};exports[_0x0760('0x29')]=function(_0x32384e,_0x550cb5){if(_0x32384e[_0x0760('0x4f')]['id']){delete _0x32384e[_0x0760('0x4f')]['id'];}return db['VoiceQueuesLog'][_0x0760('0x4d')]({'where':{'id':_0x32384e[_0x0760('0x4c')]['id']}})['then'](handleEntityNotFound(_0x550cb5,null))[_0x0760('0x2b')](saveUpdates(_0x32384e[_0x0760('0x4f')],null))['then'](respondWithResult(_0x550cb5,null))[_0x0760('0x4a')](handleError(_0x550cb5,null));};exports['destroy']=function(_0x4d59bf,_0x31fd48){return db[_0x0760('0x32')][_0x0760('0x4d')]({'where':{'id':_0x4d59bf[_0x0760('0x4c')]['id']}})['then'](handleEntityNotFound(_0x31fd48,null))[_0x0760('0x2b')](removeEntity(_0x31fd48,null))[_0x0760('0x4a')](handleError(_0x31fd48,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac2c=['moment','request-promise','path','rimraf','./voiceQueuesLog.attributes','exports','voice_queues_log','event_dtm','event','../../config/logger','api'];(function(_0x90e3f,_0x2dc0a3){var _0x50bd28=function(_0x548d56){while(--_0x548d56){_0x90e3f['push'](_0x90e3f['shift']());}};_0x50bd28(++_0x2dc0a3);}(_0xac2c,0x195));var _0xcac2=function(_0x53807d,_0x4a90a8){_0x53807d=_0x53807d-0x0;var _0x501207=_0xac2c[_0x53807d];return _0x501207;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xcac2('0x0'))(_0xcac2('0x1'));var moment=require(_0xcac2('0x2'));var BPromise=require('bluebird');var rp=require(_0xcac2('0x3'));var fs=require('fs');var path=require(_0xcac2('0x4'));var rimraf=require(_0xcac2('0x5'));var config=require('../../config/environment');var attributes=require(_0xcac2('0x6'));module[_0xcac2('0x7')]=function(_0x1cdb89,_0x378c8d){return _0x1cdb89['define']('VoiceQueuesLog',attributes,{'tableName':_0xcac2('0x8'),'paranoid':![],'indexes':[{'name':_0xcac2('0x9'),'fields':[_0xcac2('0xa'),'dtm']}],'timestamps':![]});};
\ No newline at end of file
+var _0x1f63=['event_dtm','lodash','util','api','moment','bluebird','path','rimraf','exports','VoiceQueuesLog','voice_queues_log'];(function(_0x48b5e0,_0xb3826){var _0x4287ea=function(_0x14519e){while(--_0x14519e){_0x48b5e0['push'](_0x48b5e0['shift']());}};_0x4287ea(++_0xb3826);}(_0x1f63,0x7a));var _0x31f6=function(_0x2a4d2d,_0x249ce3){_0x2a4d2d=_0x2a4d2d-0x0;var _0x5dc922=_0x1f63[_0x2a4d2d];return _0x5dc922;};'use strict';var _=require(_0x31f6('0x0'));var util=require(_0x31f6('0x1'));var logger=require('../../config/logger')(_0x31f6('0x2'));var moment=require(_0x31f6('0x3'));var BPromise=require(_0x31f6('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x31f6('0x5'));var rimraf=require(_0x31f6('0x6'));var config=require('../../config/environment');var attributes=require('./voiceQueuesLog.attributes');module[_0x31f6('0x7')]=function(_0x11250b,_0xe8437e){return _0x11250b['define'](_0x31f6('0x8'),attributes,{'tableName':_0x31f6('0x9'),'paranoid':![],'indexes':[{'name':_0x31f6('0xa'),'fields':['event','dtm']}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7834=['then','VoiceQueuesLog,\x20%s,\x20%s','request\x20sent','debug','VoiceQueuesLog,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','lodash','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request'];(function(_0x44e78e,_0x5f2ba5){var _0xff1bb2=function(_0x1dc6a8){while(--_0x1dc6a8){_0x44e78e['push'](_0x44e78e['shift']());}};_0xff1bb2(++_0x5f2ba5);}(_0x7834,0x13f));var _0x4783=function(_0x5e4a6a,_0x287632){_0x5e4a6a=_0x5e4a6a-0x0;var _0xc8879f=_0x7834[_0x5e4a6a];return _0xc8879f;};'use strict';var _=require(_0x4783('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x4783('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4783('0x2'));var db=require(_0x4783('0x3'))['db'];var utils=require(_0x4783('0x4'));var logger=require(_0x4783('0x5'))(_0x4783('0x6'));var config=require(_0x4783('0x7'));var jayson=require(_0x4783('0x8'));var client=jayson['client'][_0x4783('0x9')]({'port':0x232a});function respondWithRpcPromise(_0xf8c030,_0x518da8,_0x2dcf46){return new BPromise(function(_0x16c83e,_0x36c0a7){return client[_0x4783('0xa')](_0xf8c030,_0x2dcf46)[_0x4783('0xb')](function(_0x1f8b29){logger['info'](_0x4783('0xc'),_0x518da8,_0x4783('0xd'));logger[_0x4783('0xe')](_0x4783('0xf'),_0x518da8,_0x4783('0xd'),JSON[_0x4783('0x10')](_0x1f8b29));if(_0x1f8b29[_0x4783('0x11')]){if(_0x1f8b29['error']['code']===0x1f4){logger[_0x4783('0x11')](_0x4783('0xc'),_0x518da8,_0x1f8b29['error'][_0x4783('0x12')]);return _0x36c0a7(_0x1f8b29['error'][_0x4783('0x12')]);}logger[_0x4783('0x11')](_0x4783('0xc'),_0x518da8,_0x1f8b29[_0x4783('0x11')][_0x4783('0x12')]);return _0x16c83e(_0x1f8b29['error'][_0x4783('0x12')]);}else{logger[_0x4783('0x13')](_0x4783('0xc'),_0x518da8,_0x4783('0xd'));_0x16c83e(_0x1f8b29[_0x4783('0x14')][_0x4783('0x12')]);}})[_0x4783('0x15')](function(_0x40dbcf){logger[_0x4783('0x11')](_0x4783('0xc'),_0x518da8,_0x40dbcf);_0x36c0a7(_0x40dbcf);});});}
\ No newline at end of file
+var _0xa9de=['stringify','error','code','message','request\x20sent','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','request','then','VoiceQueuesLog,\x20%s,\x20%s','debug'];(function(_0x4808d3,_0x3353c6){var _0x3057fa=function(_0x535a58){while(--_0x535a58){_0x4808d3['push'](_0x4808d3['shift']());}};_0x3057fa(++_0x3353c6);}(_0xa9de,0x99));var _0xea9d=function(_0x160c73,_0x2ee678){_0x160c73=_0x160c73-0x0;var _0xd9302=_0xa9de[_0x160c73];return _0xd9302;};'use strict';var _=require(_0xea9d('0x0'));var util=require(_0xea9d('0x1'));var moment=require(_0xea9d('0x2'));var BPromise=require(_0xea9d('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xea9d('0x4'));var db=require(_0xea9d('0x5'))['db'];var utils=require(_0xea9d('0x6'));var logger=require(_0xea9d('0x7'))(_0xea9d('0x8'));var config=require(_0xea9d('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xea9d('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5a1b1d,_0x927407,_0x4299d2){return new BPromise(function(_0xbbacc1,_0x1c4d2d){return client[_0xea9d('0xb')](_0x5a1b1d,_0x4299d2)[_0xea9d('0xc')](function(_0x11d292){logger['info'](_0xea9d('0xd'),_0x927407,'request\x20sent');logger[_0xea9d('0xe')]('VoiceQueuesLog,\x20%s,\x20%s,\x20%s',_0x927407,'request\x20sent',JSON[_0xea9d('0xf')](_0x11d292));if(_0x11d292[_0xea9d('0x10')]){if(_0x11d292['error'][_0xea9d('0x11')]===0x1f4){logger[_0xea9d('0x10')](_0xea9d('0xd'),_0x927407,_0x11d292['error'][_0xea9d('0x12')]);return _0x1c4d2d(_0x11d292['error']['message']);}logger[_0xea9d('0x10')](_0xea9d('0xd'),_0x927407,_0x11d292[_0xea9d('0x10')][_0xea9d('0x12')]);return _0xbbacc1(_0x11d292['error'][_0xea9d('0x12')]);}else{logger['info'](_0xea9d('0xd'),_0x927407,_0xea9d('0x13'));_0xbbacc1(_0x11d292['result'][_0xea9d('0x12')]);}})[_0xea9d('0x14')](function(_0x2ca2ad){logger['error'](_0xea9d('0xd'),_0x927407,_0x2ca2ad);_0x1c4d2d(_0x2ca2ad);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6cd0=['downloadTranscribe','post','create','runTranscribe','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceRecording.controller','get','index','isAuthenticated','describe','/:id','show','/:id/download','download','downloads','/:id/transcribe'];(function(_0x4d1cc5,_0x5cf765){var _0x5e3fe5=function(_0x1e96ef){while(--_0x1e96ef){_0x4d1cc5['push'](_0x4d1cc5['shift']());}};_0x5e3fe5(++_0x5cf765);}(_0x6cd0,0xb7));var _0x06cd=function(_0x30a14e,_0x29de4f){_0x30a14e=_0x30a14e-0x0;var _0x3de64b=_0x6cd0[_0x30a14e];return _0x3de64b;};'use strict';var multer=require(_0x06cd('0x0'));var util=require(_0x06cd('0x1'));var path=require(_0x06cd('0x2'));var timeout=require(_0x06cd('0x3'));var express=require(_0x06cd('0x4'));var router=express[_0x06cd('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x06cd('0x6'));var interaction=require(_0x06cd('0x7'));var config=require(_0x06cd('0x8'));var controller=require(_0x06cd('0x9'));router[_0x06cd('0xa')]('/',auth['isAuthenticated'](),controller[_0x06cd('0xb')]);router[_0x06cd('0xa')]('/describe',auth[_0x06cd('0xc')](),controller[_0x06cd('0xd')]);router[_0x06cd('0xa')](_0x06cd('0xe'),auth[_0x06cd('0xc')](),controller[_0x06cd('0xf')]);router[_0x06cd('0xa')](_0x06cd('0x10'),auth['isAuthenticated'](),controller[_0x06cd('0x11')]);router[_0x06cd('0xa')]('/:id/downloads',controller[_0x06cd('0x12')]);router[_0x06cd('0xa')](_0x06cd('0x13'),auth[_0x06cd('0xc')](),controller[_0x06cd('0x14')]);router[_0x06cd('0x15')]('/',auth['isAuthenticated'](),controller[_0x06cd('0x16')]);router['post'](_0x06cd('0x13'),auth[_0x06cd('0xc')](),controller[_0x06cd('0x17')]);router[_0x06cd('0x18')]('/:id',auth[_0x06cd('0xc')](),controller[_0x06cd('0x19')]);router[_0x06cd('0x1a')](_0x06cd('0xe'),auth['isAuthenticated'](),controller[_0x06cd('0x1b')]);module[_0x06cd('0x1c')]=router;
\ No newline at end of file
+var _0x8a8a=['exports','multer','util','path','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./voiceRecording.controller','get','index','/describe','isAuthenticated','/:id','show','/:id/download','download','/:id/downloads','downloads','downloadTranscribe','post','create','/:id/transcribe','runTranscribe','put','destroy'];(function(_0x571b16,_0x164130){var _0xb0f26=function(_0x4f4ec7){while(--_0x4f4ec7){_0x571b16['push'](_0x571b16['shift']());}};_0xb0f26(++_0x164130);}(_0x8a8a,0x6d));var _0xa8a8=function(_0x451b31,_0x180854){_0x451b31=_0x451b31-0x0;var _0xb75225=_0x8a8a[_0x451b31];return _0xb75225;};'use strict';var multer=require(_0xa8a8('0x0'));var util=require(_0xa8a8('0x1'));var path=require(_0xa8a8('0x2'));var timeout=require('connect-timeout');var express=require(_0xa8a8('0x3'));var router=express[_0xa8a8('0x4')]();var fs_extra=require(_0xa8a8('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xa8a8('0x6'));var config=require(_0xa8a8('0x7'));var controller=require(_0xa8a8('0x8'));router[_0xa8a8('0x9')]('/',auth['isAuthenticated'](),controller[_0xa8a8('0xa')]);router[_0xa8a8('0x9')](_0xa8a8('0xb'),auth[_0xa8a8('0xc')](),controller['describe']);router[_0xa8a8('0x9')](_0xa8a8('0xd'),auth[_0xa8a8('0xc')](),controller[_0xa8a8('0xe')]);router['get'](_0xa8a8('0xf'),auth['isAuthenticated'](),controller[_0xa8a8('0x10')]);router[_0xa8a8('0x9')](_0xa8a8('0x11'),controller[_0xa8a8('0x12')]);router[_0xa8a8('0x9')]('/:id/transcribe',auth[_0xa8a8('0xc')](),controller[_0xa8a8('0x13')]);router[_0xa8a8('0x14')]('/',auth['isAuthenticated'](),controller[_0xa8a8('0x15')]);router['post'](_0xa8a8('0x16'),auth['isAuthenticated'](),controller[_0xa8a8('0x17')]);router[_0xa8a8('0x18')](_0xa8a8('0xd'),auth[_0xa8a8('0xc')](),controller['update']);router['delete']('/:id',auth[_0xa8a8('0xc')](),controller[_0xa8a8('0x19')]);module[_0xa8a8('0x1a')]=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(_0xefd519,_0xc62635){var _0x4bb882=function(_0x37e0a1){while(--_0x37e0a1){_0xefd519['push'](_0xefd519['shift']());}};_0x4bb882(++_0xc62635);}(_0xa9e0,0x123));var _0x0a9e=function(_0x21aec3,_0x5c97e9){_0x21aec3=_0x21aec3-0x0;var _0x288bbc=_0xa9e0[_0x21aec3];return _0x288bbc;};'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(_0x341e0f,_0x4a09d0){var _0x59555a=function(_0x4343a8){while(--_0x4343a8){_0x341e0f['push'](_0x341e0f['shift']());}};_0x59555a(++_0x4a09d0);}(_0xa9e0,0x123));var _0x0a9e=function(_0x28947d,_0x4cc9c6){_0x28947d=_0x28947d-0x0;var _0x12d2ee=_0xa9e0[_0x28947d];return _0x12d2ee;};'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 _0xa87e=['../../mysqldb','sendStatus','status','json','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','send','VoiceRecording','rawAttributes','fieldName','type','model','format','query','attributes','intersection','fields','length','order','sort','where','pick','filters','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','keys','find','create','body','describe','download','../../components/encryptor','uniqueid','value','%s.cypher','existsSync','decryptFile','secrets','recording','Sequelize','ValidationError','VoiceRecording\x20not\x20found','filename','extname','unlink','message','Not\x20found','sequelize','col','token','$and','push','isNil','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','unlinkSync','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','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)','bucket','Bucket','location','Location','TranscriptionJob','transcribeName','TranscriptionJobName','transcribeStatus','TranscriptionJobStatus','runTranscribe','Voice\x20Recording\x20not\x20found','Setting','findOne','transcribe','transcribeRegion','language','Transcribe\x20not\x20configured','runSentiment','sentiment','sentimentAccountId','sentimentRegion','CloudProvider','transcribeAccountId','Cloud\x20Provider\x20not\x20available','data1','Cloud\x20Provider\x20not\x20configured','data2','Buckets','Name','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available','NEW','[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested','IN_PROGRESS','tempSentiment','downloadTranscribe','fileText','root','.txt','Transcript\x20not\x20available','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','aws-sdk','uuid/v4','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api'];(function(_0x2d6f20,_0x13de5d){var _0x3851e3=function(_0x32a4f6){while(--_0x32a4f6){_0x2d6f20['push'](_0x2d6f20['shift']());}};_0x3851e3(++_0x13de5d);}(_0xa87e,0x116));var _0xea87=function(_0x58ec43,_0x11de3e){_0x58ec43=_0x58ec43-0x0;var _0x3124c0=_0xa87e[_0x58ec43];return _0x3124c0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xea87('0x0'));var zipdir=require(_0xea87('0x1'));var jsonpatch=require(_0xea87('0x2'));var rp=require(_0xea87('0x3'));var moment=require(_0xea87('0x4'));var BPromise=require(_0xea87('0x5'));var Mustache=require(_0xea87('0x6'));var util=require(_0xea87('0x7'));var path=require(_0xea87('0x8'));var sox=require('sox');var csv=require(_0xea87('0x9'));var ejs=require(_0xea87('0xa'));var fs=require('fs');var fs_extra=require(_0xea87('0xb'));var _=require(_0xea87('0xc'));var squel=require(_0xea87('0xd'));var crypto=require(_0xea87('0xe'));var jsforce=require(_0xea87('0xf'));var deskjs=require(_0xea87('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xea87('0x11'));var AWS=require(_0xea87('0x12'));var uuidv4=require(_0xea87('0x13'));var Redis=require(_0xea87('0x14'));var authService=require(_0xea87('0x15'));var qs=require(_0xea87('0x16'));var as=require(_0xea87('0x17'));var hardwareService=require(_0xea87('0x18'));var logger=require('../../config/logger')(_0xea87('0x19'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xea87('0x1a'))['db'];function respondWithStatusCode(_0x85cfd4,_0x2e33d4){_0x2e33d4=_0x2e33d4||0xcc;return function(_0x50fd05){if(_0x50fd05){return _0x85cfd4[_0xea87('0x1b')](_0x2e33d4);}return _0x85cfd4['status'](_0x2e33d4)['end']();};}function respondWithResult(_0xb87e83,_0x326de7){_0x326de7=_0x326de7||0xc8;return function(_0x23ce4f){if(_0x23ce4f){return _0xb87e83[_0xea87('0x1c')](_0x326de7)[_0xea87('0x1d')](_0x23ce4f);}};}function respondWithFilteredResult(_0x3f6ce3,_0x4beeaa){return function(_0x3e8c3a){if(_0x3e8c3a){var _0x42b5e2=typeof _0x4beeaa['offset']==='undefined'&&typeof _0x4beeaa['limit']==='undefined';var _0x276593=_0x3e8c3a[_0xea87('0x1e')];var _0x136e75=_0x42b5e2?0x0:_0x4beeaa['offset'];var _0x433a06=_0x42b5e2?_0x3e8c3a['count']:_0x4beeaa[_0xea87('0x1f')]+_0x4beeaa[_0xea87('0x20')];var _0x2a5e3f;if(_0x433a06>=_0x276593){_0x433a06=_0x276593;_0x2a5e3f=0xc8;}else{_0x2a5e3f=0xce;}_0x3f6ce3[_0xea87('0x1c')](_0x2a5e3f);return _0x3f6ce3['set'](_0xea87('0x21'),_0x136e75+'-'+_0x433a06+'/'+_0x276593)['json'](_0x3e8c3a);}return null;};}function patchUpdates(_0x5dfd23){return function(_0x56d3cb){try{jsonpatch[_0xea87('0x22')](_0x56d3cb,_0x5dfd23,!![]);}catch(_0x536659){return BPromise[_0xea87('0x23')](_0x536659);}return _0x56d3cb[_0xea87('0x24')]();};}function saveUpdates(_0x107b86,_0x4163ed){return function(_0x272651){if(_0x272651){return _0x272651[_0xea87('0x25')](_0x107b86)[_0xea87('0x26')](function(_0x46c73b){return _0x46c73b;});}return null;};}function removeEntity(_0x14177c,_0x47f66f){return function(_0x2af097){if(_0x2af097){return _0x2af097[_0xea87('0x27')]()[_0xea87('0x26')](function(){_0x14177c['status'](0xcc)[_0xea87('0x28')]();});}};}function handleEntityNotFound(_0xba6e1a,_0x46fef5){return function(_0x2629aa){if(!_0x2629aa){_0xba6e1a['sendStatus'](0x194);}return _0x2629aa;};}function handleError(_0x4aadd4,_0x459db6){_0x459db6=_0x459db6||0x1f4;return function(_0x3444ad){logger[_0xea87('0x29')](_0x3444ad[_0xea87('0x2a')]);if(_0x3444ad['name']){delete _0x3444ad[_0xea87('0x2b')];}_0x4aadd4[_0xea87('0x1c')](_0x459db6)[_0xea87('0x2c')](_0x3444ad);};}exports['index']=function(_0x2c88b7,_0x358292){var _0xdcf0d4={},_0xa29bc3={},_0x129312={'count':0x0,'rows':[]};var _0x4eb137=_['map'](db[_0xea87('0x2d')][_0xea87('0x2e')],function(_0x3a8b3c){return{'name':_0x3a8b3c[_0xea87('0x2f')],'type':_0x3a8b3c[_0xea87('0x30')]['key']};});_0xa29bc3[_0xea87('0x31')]=_['differenceBy'](_['map'](_0x4eb137,'name'),[_0xea87('0x32')]);_0xa29bc3[_0xea87('0x33')]=_['keys'](_0x2c88b7[_0xea87('0x33')]);_0xa29bc3['filters']=_['intersection'](_0xa29bc3[_0xea87('0x31')],_0xa29bc3[_0xea87('0x33')]);_0xdcf0d4[_0xea87('0x34')]=_[_0xea87('0x35')](_0xa29bc3['model'],qs[_0xea87('0x36')](_0x2c88b7[_0xea87('0x33')]['fields']));_0xdcf0d4[_0xea87('0x34')]=_0xdcf0d4['attributes'][_0xea87('0x37')]?_0xdcf0d4[_0xea87('0x34')]:_0xa29bc3['model'];if(!_0x2c88b7['query']['hasOwnProperty']('nolimit')){_0xdcf0d4[_0xea87('0x20')]=qs[_0xea87('0x20')](_0x2c88b7[_0xea87('0x33')][_0xea87('0x20')]);_0xdcf0d4[_0xea87('0x1f')]=qs[_0xea87('0x1f')](_0x2c88b7['query'][_0xea87('0x1f')]);}_0xdcf0d4[_0xea87('0x38')]=qs[_0xea87('0x39')](_0x2c88b7[_0xea87('0x33')][_0xea87('0x39')]);_0xdcf0d4[_0xea87('0x3a')]=qs['filters'](_[_0xea87('0x3b')](_0x2c88b7[_0xea87('0x33')],_0xa29bc3[_0xea87('0x3c')]),_0x4eb137);if(_0x2c88b7[_0xea87('0x33')][_0xea87('0x3d')]){_0xdcf0d4[_0xea87('0x3a')]=_[_0xea87('0x3e')](_0xdcf0d4[_0xea87('0x3a')],{'$or':_['map'](_0x4eb137,function(_0x36ccb4){if(_0x36ccb4[_0xea87('0x30')]!==_0xea87('0x3f')){var _0x1dff7e={};_0x1dff7e[_0x36ccb4[_0xea87('0x2b')]]={'$like':'%'+_0x2c88b7[_0xea87('0x33')][_0xea87('0x3d')]+'%'};return _0x1dff7e;}})});}_0xdcf0d4=_[_0xea87('0x3e')]({},_0xdcf0d4,_0x2c88b7[_0xea87('0x40')]);var _0x5936c4={'where':_0xdcf0d4[_0xea87('0x3a')]};return db['VoiceRecording']['count'](_0x5936c4)[_0xea87('0x26')](function(_0x1503ed){_0x129312['count']=_0x1503ed;if(_0x2c88b7[_0xea87('0x33')][_0xea87('0x41')]){_0xdcf0d4[_0xea87('0x42')]=[{'all':!![]}];}return db[_0xea87('0x2d')][_0xea87('0x43')](_0xdcf0d4);})['then'](function(_0x37a8a9){_0x129312[_0xea87('0x44')]=_0x37a8a9;return _0x129312;})[_0xea87('0x26')](respondWithFilteredResult(_0x358292,_0xdcf0d4))[_0xea87('0x45')](handleError(_0x358292,null));};exports['show']=function(_0x37b7c9,_0x17e8df){var _0xdc04db={'raw':![],'where':{'id':_0x37b7c9[_0xea87('0x46')]['id']}},_0x48f844={};_0x48f844[_0xea87('0x31')]=_[_0xea87('0x47')](db[_0xea87('0x2d')][_0xea87('0x2e')]);_0x48f844[_0xea87('0x33')]=_['keys'](_0x37b7c9['query']);_0x48f844[_0xea87('0x3c')]=_[_0xea87('0x35')](_0x48f844[_0xea87('0x31')],_0x48f844['query']);_0xdc04db[_0xea87('0x34')]=_['intersection'](_0x48f844[_0xea87('0x31')],qs[_0xea87('0x36')](_0x37b7c9[_0xea87('0x33')][_0xea87('0x36')]));_0xdc04db[_0xea87('0x34')]=_0xdc04db[_0xea87('0x34')][_0xea87('0x37')]?_0xdc04db['attributes']:_0x48f844[_0xea87('0x31')];if(_0x37b7c9['query'][_0xea87('0x41')]){_0xdc04db['include']=[{'all':!![]}];}_0xdc04db=_[_0xea87('0x3e')]({},_0xdc04db,_0x37b7c9['options']);return db[_0xea87('0x2d')][_0xea87('0x48')](_0xdc04db)[_0xea87('0x26')](handleEntityNotFound(_0x17e8df,null))['then'](respondWithResult(_0x17e8df,null))[_0xea87('0x45')](handleError(_0x17e8df,null));};exports[_0xea87('0x49')]=function(_0x2a9e31,_0x2ef96f){return db[_0xea87('0x2d')][_0xea87('0x49')](_0x2a9e31[_0xea87('0x4a')],{})[_0xea87('0x26')](respondWithResult(_0x2ef96f,0xc9))[_0xea87('0x45')](handleError(_0x2ef96f,null));};exports[_0xea87('0x25')]=function(_0x3de308,_0x3870d9){if(_0x3de308['body']['id']){delete _0x3de308[_0xea87('0x4a')]['id'];}return db[_0xea87('0x2d')][_0xea87('0x48')]({'where':{'id':_0x3de308[_0xea87('0x46')]['id']}})[_0xea87('0x26')](handleEntityNotFound(_0x3870d9,null))[_0xea87('0x26')](saveUpdates(_0x3de308[_0xea87('0x4a')],null))[_0xea87('0x26')](respondWithResult(_0x3870d9,null))['catch'](handleError(_0x3870d9,null));};exports[_0xea87('0x4b')]=function(_0xfd58a0,_0x4c147e){return db[_0xea87('0x2d')][_0xea87('0x4b')]()['then'](respondWithResult(_0x4c147e,null))[_0xea87('0x45')](handleError(_0x4c147e,null));};exports[_0xea87('0x4c')]=function(_0x2eafa7,_0x308ef8,_0x34ba93){var _0x5886f7=require(_0xea87('0x4d'));var _0xa7afbb=![];var _0x593dc9={};if(_0x2eafa7[_0xea87('0x33')][_0xea87('0x30')]&&_0x2eafa7[_0xea87('0x33')][_0xea87('0x30')]===_0xea87('0x4e')){_0x593dc9[_0xea87('0x4e')]=_0x2eafa7[_0xea87('0x46')]['id'];}else{_0x593dc9['id']=_0x2eafa7['params']['id'];}return db[_0xea87('0x2d')][_0xea87('0x48')]({'where':_0x593dc9,'attributes':['id','value'],'raw':!![]})['then'](handleEntityNotFound(_0x308ef8,null))[_0xea87('0x26')](function(_0x382755){if(_0x382755){var _0x15b963=_0x382755[_0xea87('0x4f')];var _0xc17bef=util['format'](_0xea87('0x50'),_0x15b963);if(fs[_0xea87('0x51')](_0xc17bef)){_0xa7afbb=!![];return _0x5886f7[_0xea87('0x52')](_0xc17bef,_0x15b963,config[_0xea87('0x53')][_0xea87('0x54')])[_0xea87('0x26')](function(){return _0x382755;});}return _0x382755;}})[_0xea87('0x26')](function(_0x1e319f){if(_0x1e319f){var _0x137fe8=_0x1e319f[_0xea87('0x4f')];if(!fs['existsSync'](_0x137fe8)){throw new db[(_0xea87('0x55'))][(_0xea87('0x56'))](_0xea87('0x57'));}if(_0x1e319f['filename']){return _0x308ef8[_0xea87('0x4c')](_0x137fe8,_0x1e319f[_0xea87('0x58')]+path[_0xea87('0x59')](_0x137fe8),function(){if(_0xa7afbb){fs[_0xea87('0x5a')](_0x137fe8);}});}else{return _0x308ef8[_0xea87('0x4c')](_0x137fe8,function(_0x1021ec){if(_0xa7afbb){fs[_0xea87('0x5a')](_0x137fe8);}});}}})[_0xea87('0x45')](function(_0x2590d6){if(_0x2590d6[_0xea87('0x5b')]===_0xea87('0x57')){_0x308ef8[_0xea87('0x1c')](0x194)[_0xea87('0x2c')](_0xea87('0x5c'));}else{return handleError(_0x308ef8,null);}});};exports['downloads']=function(_0x2657de,_0x5a95dc,_0xf39775){var _0x2d359e=require(_0xea87('0x4d'));var _0x4df3fa=![];var _0x57430c={'$and':[db[_0xea87('0x5d')]['where'](db[_0xea87('0x5d')]['fn']('MD5',db[_0xea87('0x5d')][_0xea87('0x5e')]('uniqueid')),_0x2657de[_0xea87('0x33')][_0xea87('0x5f')])]};if(_0x2657de[_0xea87('0x33')][_0xea87('0x30')]&&_0x2657de['query'][_0xea87('0x30')]==='uniqueid'){_0x57430c[_0xea87('0x60')][_0xea87('0x61')]({'uniqueid':_0x2657de['params']['id']});}else{_0x57430c[_0xea87('0x60')]['push']({'id':_0x2657de[_0xea87('0x46')]['id']});}return db[_0xea87('0x2d')][_0xea87('0x48')]({'where':_0x57430c,'attributes':['id',_0xea87('0x4f')],'raw':!![]})[_0xea87('0x26')](handleEntityNotFound(_0x5a95dc,null))['then'](function(_0x25849b){if(_0x25849b){var _0x2ca5ad=util[_0xea87('0x32')](_0xea87('0x50'),_0x25849b[_0xea87('0x4f')]);if(fs[_0xea87('0x51')](_0x2ca5ad)){_0x4df3fa=!![];return _0x2d359e['decryptFile'](_0x2ca5ad,_0x25849b[_0xea87('0x4f')],config[_0xea87('0x53')][_0xea87('0x54')])[_0xea87('0x26')](function(){return _0x25849b;});}return _0x25849b;}})['then'](function(_0x94f24d){if(_0x94f24d){if(!fs[_0xea87('0x51')](_0x94f24d[_0xea87('0x4f')])){throw new db[(_0xea87('0x55'))][(_0xea87('0x56'))](_0xea87('0x57'));}if(_0x94f24d[_0xea87('0x58')]){return _0x5a95dc[_0xea87('0x4c')](_0x94f24d['value'],_0x94f24d['filename']+path[_0xea87('0x59')](_0x94f24d[_0xea87('0x4f')]),function(){if(_0x4df3fa){fs['unlink'](_0x94f24d['value']);}});}else{return _0x5a95dc[_0xea87('0x4c')](_0x94f24d[_0xea87('0x4f')],function(_0x33808b){if(_0x4df3fa){fs[_0xea87('0x5a')](_0x94f24d[_0xea87('0x4f')]);}});}}})[_0xea87('0x45')](handleError(_0x5a95dc,null));};exports[_0xea87('0x27')]=function(_0x2823d3,_0x31d90e){return db[_0xea87('0x2d')][_0xea87('0x48')]({'where':{'id':_0x2823d3['params']['id']}})[_0xea87('0x26')](function(_0xc2cdf){if(_[_0xea87('0x62')](_0xc2cdf)){throw new ReferenceError('Entity\x20not\x20found');}return _0xc2cdf;})[_0xea87('0x26')](function(_0x4288df){var _0x39673b=_0x4288df[_0xea87('0x4f')];logger[_0xea87('0x63')](_0xea87('0x64'),_0x39673b);if(!_['isNil'](_0x4288df[_0xea87('0x4f')])&&fs[_0xea87('0x51')](_0x39673b)){logger[_0xea87('0x63')](_0xea87('0x65')+_0x39673b+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xea87('0x66')](_0x39673b);}_0x39673b=_0x39673b+'.cypher';if(!_[_0xea87('0x62')](_0x4288df['value'])&&fs[_0xea87('0x51')](_0x39673b)){logger[_0xea87('0x63')](_0xea87('0x65')+_0x39673b+_0xea87('0x67'));fs[_0xea87('0x66')](_0x39673b);}return _0x4288df;})[_0xea87('0x26')](function(_0x30624f){if(!_0x30624f)throw new InternalError();return _0x30624f[_0xea87('0x27')]();})['then'](function(){_0x31d90e[_0xea87('0x1c')](0xcc)['end']();})[_0xea87('0x45')](handleError(_0x31d90e,null));};function getBucketslist(_0x7f0201,_0x197ea7,_0x70841f){return new Promise(function(_0x37f78b,_0x24fcb3){var _0x212f82=new AWS['S3']({'accessKeyId':_0x197ea7,'secretAccessKey':_0x7f0201,'region':_0x70841f});_0x212f82[_0xea87('0x68')]({},function(_0x431ac6,_0x41995f){if(_0x431ac6){return _0x24fcb3(_0x431ac6);}else{return _0x37f78b(_0x41995f);}});});}function createBucket(_0x3500de,_0x91667a,_0x301e4e,_0x111455){return new Promise(function(_0x10f258,_0x30612c){var _0x1931b9=new AWS['S3']({'accessKeyId':_0x91667a,'secretAccessKey':_0x3500de,'region':_0x301e4e});_0x1931b9[_0xea87('0x69')]({'Bucket':_0x111455},function(_0x5b48da,_0x4f1a47){if(_0x5b48da){return _0x30612c(_0x5b48da);}else{return _0x10f258(_0x4f1a47);}});});}function uploadFile(_0x594787,_0x5718e6,_0x488083,_0x2dd993,_0x34dc86,_0x3c5f22){return new Promise(function(_0x2a1220,_0x1716ab){var _0x2926e1=new AWS['S3']({'accessKeyId':_0x5718e6,'secretAccessKey':_0x594787,'region':_0x488083});_0x2926e1[_0xea87('0x6a')]({'Bucket':_0x2dd993,'Key':_0x34dc86,'Body':_0x3c5f22},function(_0x1a1fcb,_0x2675e0){if(_0x1a1fcb){return _0x1716ab(_0x1a1fcb);}else{return _0x2a1220(_0x2675e0);}});});}function startTranscribe(_0x23f192,_0x8d437e,_0x5cf221,_0x5cb2f0,_0x48606d,_0x4f3dfd){return new Promise(function(_0x5369a0,_0x3590e6){var _0x2d1811=new AWS[(_0xea87('0x6b'))]({'accessKeyId':_0x8d437e,'secretAccessKey':_0x23f192,'region':_0x5cf221});_0x2d1811[_0xea87('0x6c')]({'TranscriptionJobName':_0x5cb2f0,'LanguageCode':_0x48606d,'Media':{'MediaFileUri':_0x4f3dfd}},function(_0x55af5f,_0x4827b1){if(_0x55af5f){return _0x3590e6(_0x55af5f);}else{return _0x5369a0(_0x4827b1);}});});}function transcribe(_0x1f2112,_0x173549,_0x73337f,_0x23ecc1,_0x435f69,_0x26fc60,_0x274244){return new Promise(function(_0x567630,_0x386a6a){var _0x42b3fd={};logger[_0xea87('0x63')](util[_0xea87('0x32')](_0xea87('0x6d'),_0x1f2112,_0x435f69));return uploadFile(_0x173549,_0x73337f,_0x23ecc1,_0x435f69,path[_0xea87('0x6e')](_0x26fc60),fs[_0xea87('0x6f')](_0x26fc60))[_0xea87('0x26')](function(_0x1f8f9d){logger['info'](util['format'](_0xea87('0x70'),_0x1f2112,_0x435f69,_0x1f8f9d['Location']));_0x42b3fd[_0xea87('0x71')]=_0x1f8f9d[_0xea87('0x72')];_0x42b3fd[_0xea87('0x73')]=_0x1f8f9d[_0xea87('0x74')];logger[_0xea87('0x63')](util['format']('[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request',_0x1f2112));return startTranscribe(_0x173549,_0x73337f,_0x23ecc1,uuidv4(),_0x274244,_0x1f8f9d[_0xea87('0x74')]);})[_0xea87('0x26')](function(_0x3d0498){logger[_0xea87('0x63')](util[_0xea87('0x32')]('[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created',_0x1f2112,_0x3d0498[_0xea87('0x75')]['TranscriptionJobName']));_0x42b3fd[_0xea87('0x76')]=_0x3d0498['TranscriptionJob'][_0xea87('0x77')];_0x42b3fd[_0xea87('0x78')]=_0x3d0498[_0xea87('0x75')][_0xea87('0x79')];return _0x567630(_0x42b3fd);})['catch'](function(_0x5ce1b5){return _0x386a6a(_0x5ce1b5);});});}exports[_0xea87('0x7a')]=function(_0x49dbf2,_0x5f0ca5,_0x31f578){var _0xe2fa37;var _0x4b1a56;var _0x161863;var _0x237f29=require(_0xea87('0x4d'));return db['VoiceRecording']['findOne']({'where':{'id':_0x49dbf2[_0xea87('0x46')]['id']}})[_0xea87('0x26')](function(_0x392f5a){if(_0x392f5a){var _0x4d6a80=util[_0xea87('0x32')](_0xea87('0x50'),_0x392f5a['value']);if(fs['existsSync'](_0x4d6a80)){cypher=!![];return _0x237f29['decryptFile'](_0x4d6a80,_0x392f5a[_0xea87('0x4f')],config[_0xea87('0x53')]['recording'])[_0xea87('0x26')](function(){return _0x392f5a;});}return _0x392f5a;}})[_0xea87('0x26')](function(_0x3b6096){if(!_0x3b6096){throw new db[(_0xea87('0x55'))][(_0xea87('0x56'))](_0xea87('0x7b'));}_0x4b1a56=_0x3b6096;return db[_0xea87('0x7c')][_0xea87('0x7d')]({'where':{'id':0x1}});})[_0xea87('0x26')](handleEntityNotFound(_0x5f0ca5,null))[_0xea87('0x26')](function(_0x33cafb){if(_0x33cafb){_0xe2fa37=_0x33cafb;if(!_0xe2fa37[_0xea87('0x7e')]||!_0xe2fa37['transcribeAccountId']||!_0xe2fa37[_0xea87('0x7f')]||!_0xe2fa37[_0xea87('0x80')]||!_0xe2fa37[_0xea87('0x71')]){throw new db[(_0xea87('0x55'))][(_0xea87('0x56'))](_0xea87('0x81'));}if(_0x49dbf2[_0xea87('0x4a')][_0xea87('0x82')]&&(!_0xe2fa37[_0xea87('0x83')]||!_0xe2fa37[_0xea87('0x84')]||!_0xe2fa37[_0xea87('0x85')]||!_0xe2fa37[_0xea87('0x80')]||!_0xe2fa37[_0xea87('0x71')])){throw new db[(_0xea87('0x55'))][(_0xea87('0x56'))]('Sentiment\x20Analysis\x20not\x20configured');}return db[_0xea87('0x86')][_0xea87('0x7d')]({'where':{'id':_0xe2fa37[_0xea87('0x87')]}});}})['then'](function(_0xf41882){if(!_0xf41882){throw new db['Sequelize'][(_0xea87('0x56'))](_0xea87('0x88'));}if(!_0xf41882[_0xea87('0x89')]||!_0xf41882['data2']){throw new db['Sequelize'][(_0xea87('0x56'))](_0xea87('0x8a'));}_0x161863=_0xf41882;return getBucketslist(_0x161863[_0xea87('0x89')],_0x161863[_0xea87('0x8b')],_0xe2fa37['transcribeRegion']);})[_0xea87('0x26')](function(_0x415df8){if(_0x415df8&&_0x415df8[_0xea87('0x8c')]){var _0x5acce7=_[_0xea87('0x48')](_0x415df8[_0xea87('0x8c')],function(_0x5d9d13){return _0x5d9d13[_0xea87('0x8d')]===_0xe2fa37['bucket'];});if(!_0x5acce7){logger[_0xea87('0x63')](util[_0xea87('0x32')]('[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available',_0x49dbf2[_0xea87('0x46')]['id'],_0xe2fa37[_0xea87('0x71')]));return createBucket(_0x161863[_0xea87('0x89')],_0x161863['data2'],_0xe2fa37[_0xea87('0x7f')],_0xe2fa37[_0xea87('0x71')]);}logger[_0xea87('0x63')](util[_0xea87('0x32')](_0xea87('0x8e'),_0x49dbf2[_0xea87('0x46')]['id'],_0xe2fa37[_0xea87('0x71')]));return;}})[_0xea87('0x26')](function(_0x2a3d63){if(_0x4b1a56['transcribeStatus']===_0xea87('0x8f')){return transcribe(_0x49dbf2['params']['id'],_0x161863['data1'],_0x161863[_0xea87('0x8b')],_0xe2fa37[_0xea87('0x7f')],_0xe2fa37['bucket'],_0x4b1a56['value'],_0xe2fa37[_0xea87('0x80')]);}else{logger['info'](util['format'](_0xea87('0x90'),_0x49dbf2[_0xea87('0x46')]['id']));return{'transcribeStatus':_0xea87('0x91')};}})[_0xea87('0x26')](function(_0x12c138){if(_0x12c138){_0x12c138[_0xea87('0x92')]=_0x49dbf2[_0xea87('0x4a')][_0xea87('0x82')];return _0x4b1a56['updateAttributes'](_0x12c138);}})[_0xea87('0x26')](respondWithResult(_0x5f0ca5,null))['catch'](handleError(_0x5f0ca5,null));};function writeFile(_0x473c5a,_0x545a49){return new Promise(function(_0x2991ea,_0x35bc10){fs['writeFile'](_0x545a49,_0x473c5a,function(_0x4eaa6e,_0x1f4ebe){if(_0x4eaa6e){return _0x35bc10(_0x4eaa6e);}else{return _0x2991ea(_0x1f4ebe);}});});}exports[_0xea87('0x93')]=function(_0x50c6d6,_0x3ed320,_0x521957){return db[_0xea87('0x2d')][_0xea87('0x7d')]({'where':{'id':_0x50c6d6[_0xea87('0x46')]['id']}})['then'](handleEntityNotFound(_0x3ed320))[_0xea87('0x26')](function(_0x15c509){if(_0x15c509&&_0x15c509[_0xea87('0x94')]){var _0x3c41da=_0x15c509[_0xea87('0x94')];var _0x30d547=config[_0xea87('0x95')]+'/server/files/transcribes/transcribe_'+_0x15c509['id']+_0xea87('0x96');if(fs[_0xea87('0x51')](_0x30d547)){return _0x30d547;}return writeFile(_0x3c41da,_0x30d547)['then'](function(){return _0x30d547;});}else{throw new db['Sequelize']['ValidationError'](_0xea87('0x97'));}})[_0xea87('0x26')](function(_0x4970b4){return _0x3ed320[_0xea87('0x4c')](_0x4970b4);})[_0xea87('0x45')](handleError(_0x3ed320));};
\ No newline at end of file
+var _0xf7cb=['ioredis','../../components/auth/service','../../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','Content-Range','apply','save','update','then','error','stack','name','send','map','VoiceRecording','fieldName','type','key','model','differenceBy','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','findAll','rows','catch','show','params','rawAttributes','includeAll','include','options','find','body','download','uniqueid','value','%s.cypher','existsSync','decryptFile','recording','ValidationError','VoiceRecording\x20not\x20found','filename','extname','unlink','message','Not\x20found','downloads','../../components/encryptor','sequelize','MD5','col','token','$and','push','format','Sequelize','destroy','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','File:\x20\x22','upload','TranscribeService','[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s','basename','[RUNTRANSCRIPT][%d]\x20Voice\x20recording\x20uploaded\x20in\x20bucket\x20%s\x20(%s)','Location','bucket','Bucket','location','[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request','[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created','TranscriptionJobName','transcribeName','TranscriptionJob','runTranscribe','findOne','secrets','Voice\x20Recording\x20not\x20found','transcribe','transcribeRegion','language','Transcribe\x20not\x20configured','runSentiment','sentimentAccountId','sentimentRegion','Sentiment\x20Analysis\x20not\x20configured','CloudProvider','Cloud\x20Provider\x20not\x20available','data2','Cloud\x20Provider\x20not\x20configured','data1','Buckets','Name','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available','transcribeStatus','[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested','IN_PROGRESS','downloadTranscribe','fileText','root','/server/files/transcribes/transcribe_','.txt','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','aws-sdk','uuid/v4'];(function(_0x18c064,_0x4db1da){var _0x2a99a3=function(_0xaaf892){while(--_0xaaf892){_0x18c064['push'](_0x18c064['shift']());}};_0x2a99a3(++_0x4db1da);}(_0xf7cb,0x86));var _0xbf7c=function(_0x323ed8,_0x41bf75){_0x323ed8=_0x323ed8-0x0;var _0x6ba110=_0xf7cb[_0x323ed8];return _0x6ba110;};'use strict';var emlformat=require(_0xbf7c('0x0'));var rimraf=require(_0xbf7c('0x1'));var zipdir=require(_0xbf7c('0x2'));var jsonpatch=require(_0xbf7c('0x3'));var rp=require(_0xbf7c('0x4'));var moment=require('moment');var BPromise=require(_0xbf7c('0x5'));var Mustache=require(_0xbf7c('0x6'));var util=require(_0xbf7c('0x7'));var path=require(_0xbf7c('0x8'));var sox=require(_0xbf7c('0x9'));var csv=require(_0xbf7c('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xbf7c('0xb'));var squel=require(_0xbf7c('0xc'));var crypto=require(_0xbf7c('0xd'));var jsforce=require(_0xbf7c('0xe'));var deskjs=require(_0xbf7c('0xf'));var toCsv=require(_0xbf7c('0xa'));var querystring=require(_0xbf7c('0x10'));var Papa=require(_0xbf7c('0x11'));var AWS=require(_0xbf7c('0x12'));var uuidv4=require(_0xbf7c('0x13'));var Redis=require(_0xbf7c('0x14'));var authService=require(_0xbf7c('0x15'));var qs=require('../../components/parsers/qs');var as=require(_0xbf7c('0x16'));var hardwareService=require(_0xbf7c('0x17'));var logger=require(_0xbf7c('0x18'))(_0xbf7c('0x19'));var utils=require(_0xbf7c('0x1a'));var config=require(_0xbf7c('0x1b'));var licenseUtil=require(_0xbf7c('0x1c'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x10ccbb,_0x225513){_0x225513=_0x225513||0xcc;return function(_0x8ff322){if(_0x8ff322){return _0x10ccbb[_0xbf7c('0x1d')](_0x225513);}return _0x10ccbb[_0xbf7c('0x1e')](_0x225513)[_0xbf7c('0x1f')]();};}function respondWithResult(_0x10717b,_0x150f32){_0x150f32=_0x150f32||0xc8;return function(_0x29d981){if(_0x29d981){return _0x10717b[_0xbf7c('0x1e')](_0x150f32)[_0xbf7c('0x20')](_0x29d981);}};}function respondWithFilteredResult(_0xd63b53,_0x2f0a34){return function(_0x4f32fa){if(_0x4f32fa){var _0x4da950=typeof _0x2f0a34[_0xbf7c('0x21')]===_0xbf7c('0x22')&&typeof _0x2f0a34[_0xbf7c('0x23')]===_0xbf7c('0x22');var _0x4b33dd=_0x4f32fa[_0xbf7c('0x24')];var _0x4a5386=_0x4da950?0x0:_0x2f0a34[_0xbf7c('0x21')];var _0x3fa2c7=_0x4da950?_0x4f32fa['count']:_0x2f0a34['offset']+_0x2f0a34[_0xbf7c('0x23')];var _0x47abed;if(_0x3fa2c7>=_0x4b33dd){_0x3fa2c7=_0x4b33dd;_0x47abed=0xc8;}else{_0x47abed=0xce;}_0xd63b53[_0xbf7c('0x1e')](_0x47abed);return _0xd63b53[_0xbf7c('0x25')](_0xbf7c('0x26'),_0x4a5386+'-'+_0x3fa2c7+'/'+_0x4b33dd)[_0xbf7c('0x20')](_0x4f32fa);}return null;};}function patchUpdates(_0x3d9555){return function(_0x3f81ca){try{jsonpatch[_0xbf7c('0x27')](_0x3f81ca,_0x3d9555,!![]);}catch(_0x15474d){return BPromise['reject'](_0x15474d);}return _0x3f81ca[_0xbf7c('0x28')]();};}function saveUpdates(_0x4e13ad,_0x1918ef){return function(_0x1595dd){if(_0x1595dd){return _0x1595dd[_0xbf7c('0x29')](_0x4e13ad)[_0xbf7c('0x2a')](function(_0x2cfc3f){return _0x2cfc3f;});}return null;};}function removeEntity(_0x79a355,_0x1e50ff){return function(_0x2997ee){if(_0x2997ee){return _0x2997ee['destroy']()[_0xbf7c('0x2a')](function(){_0x79a355[_0xbf7c('0x1e')](0xcc)[_0xbf7c('0x1f')]();});}};}function handleEntityNotFound(_0x58c76d,_0x4b87b5){return function(_0x303058){if(!_0x303058){_0x58c76d[_0xbf7c('0x1d')](0x194);}return _0x303058;};}function handleError(_0x238bf5,_0x298597){_0x298597=_0x298597||0x1f4;return function(_0x209b3e){logger[_0xbf7c('0x2b')](_0x209b3e[_0xbf7c('0x2c')]);if(_0x209b3e[_0xbf7c('0x2d')]){delete _0x209b3e[_0xbf7c('0x2d')];}_0x238bf5[_0xbf7c('0x1e')](_0x298597)[_0xbf7c('0x2e')](_0x209b3e);};}exports['index']=function(_0x46eee0,_0x2e2afc){var _0x4857e2={},_0x13d68f={},_0x760ff6={'count':0x0,'rows':[]};var _0x24afc4=_[_0xbf7c('0x2f')](db[_0xbf7c('0x30')]['rawAttributes'],function(_0x23bc33){return{'name':_0x23bc33[_0xbf7c('0x31')],'type':_0x23bc33[_0xbf7c('0x32')][_0xbf7c('0x33')]};});_0x13d68f[_0xbf7c('0x34')]=_[_0xbf7c('0x35')](_['map'](_0x24afc4,_0xbf7c('0x2d')),['format']);_0x13d68f[_0xbf7c('0x36')]=_[_0xbf7c('0x37')](_0x46eee0['query']);_0x13d68f[_0xbf7c('0x38')]=_[_0xbf7c('0x39')](_0x13d68f[_0xbf7c('0x34')],_0x13d68f[_0xbf7c('0x36')]);_0x4857e2[_0xbf7c('0x3a')]=_[_0xbf7c('0x39')](_0x13d68f[_0xbf7c('0x34')],qs[_0xbf7c('0x3b')](_0x46eee0['query'][_0xbf7c('0x3b')]));_0x4857e2[_0xbf7c('0x3a')]=_0x4857e2[_0xbf7c('0x3a')][_0xbf7c('0x3c')]?_0x4857e2['attributes']:_0x13d68f[_0xbf7c('0x34')];if(!_0x46eee0['query'][_0xbf7c('0x3d')]('nolimit')){_0x4857e2['limit']=qs[_0xbf7c('0x23')](_0x46eee0['query']['limit']);_0x4857e2[_0xbf7c('0x21')]=qs[_0xbf7c('0x21')](_0x46eee0[_0xbf7c('0x36')][_0xbf7c('0x21')]);}_0x4857e2['order']=qs[_0xbf7c('0x3e')](_0x46eee0[_0xbf7c('0x36')][_0xbf7c('0x3e')]);_0x4857e2[_0xbf7c('0x3f')]=qs[_0xbf7c('0x38')](_[_0xbf7c('0x40')](_0x46eee0[_0xbf7c('0x36')],_0x13d68f[_0xbf7c('0x38')]),_0x24afc4);if(_0x46eee0[_0xbf7c('0x36')][_0xbf7c('0x41')]){_0x4857e2[_0xbf7c('0x3f')]=_[_0xbf7c('0x42')](_0x4857e2[_0xbf7c('0x3f')],{'$or':_['map'](_0x24afc4,function(_0x56faeb){if(_0x56faeb[_0xbf7c('0x32')]!==_0xbf7c('0x43')){var _0x4c411a={};_0x4c411a[_0x56faeb['name']]={'$like':'%'+_0x46eee0['query'][_0xbf7c('0x41')]+'%'};return _0x4c411a;}})});}_0x4857e2=_[_0xbf7c('0x42')]({},_0x4857e2,_0x46eee0['options']);var _0x244628={'where':_0x4857e2[_0xbf7c('0x3f')]};return db['VoiceRecording'][_0xbf7c('0x24')](_0x244628)['then'](function(_0x404b88){_0x760ff6[_0xbf7c('0x24')]=_0x404b88;if(_0x46eee0[_0xbf7c('0x36')]['includeAll']){_0x4857e2['include']=[{'all':!![]}];}return db[_0xbf7c('0x30')][_0xbf7c('0x44')](_0x4857e2);})['then'](function(_0x555817){_0x760ff6[_0xbf7c('0x45')]=_0x555817;return _0x760ff6;})[_0xbf7c('0x2a')](respondWithFilteredResult(_0x2e2afc,_0x4857e2))[_0xbf7c('0x46')](handleError(_0x2e2afc,null));};exports[_0xbf7c('0x47')]=function(_0x2b8712,_0xcd6dce){var _0x1e3d51={'raw':![],'where':{'id':_0x2b8712[_0xbf7c('0x48')]['id']}},_0x3682d4={};_0x3682d4[_0xbf7c('0x34')]=_['keys'](db['VoiceRecording'][_0xbf7c('0x49')]);_0x3682d4['query']=_['keys'](_0x2b8712['query']);_0x3682d4['filters']=_['intersection'](_0x3682d4[_0xbf7c('0x34')],_0x3682d4[_0xbf7c('0x36')]);_0x1e3d51[_0xbf7c('0x3a')]=_['intersection'](_0x3682d4[_0xbf7c('0x34')],qs[_0xbf7c('0x3b')](_0x2b8712[_0xbf7c('0x36')][_0xbf7c('0x3b')]));_0x1e3d51['attributes']=_0x1e3d51[_0xbf7c('0x3a')][_0xbf7c('0x3c')]?_0x1e3d51[_0xbf7c('0x3a')]:_0x3682d4[_0xbf7c('0x34')];if(_0x2b8712['query'][_0xbf7c('0x4a')]){_0x1e3d51[_0xbf7c('0x4b')]=[{'all':!![]}];}_0x1e3d51=_[_0xbf7c('0x42')]({},_0x1e3d51,_0x2b8712[_0xbf7c('0x4c')]);return db['VoiceRecording'][_0xbf7c('0x4d')](_0x1e3d51)['then'](handleEntityNotFound(_0xcd6dce,null))['then'](respondWithResult(_0xcd6dce,null))['catch'](handleError(_0xcd6dce,null));};exports['create']=function(_0x75567a,_0x2fd9d2){return db[_0xbf7c('0x30')]['create'](_0x75567a[_0xbf7c('0x4e')],{})['then'](respondWithResult(_0x2fd9d2,0xc9))['catch'](handleError(_0x2fd9d2,null));};exports[_0xbf7c('0x29')]=function(_0x59f66b,_0x4c6cd7){if(_0x59f66b[_0xbf7c('0x4e')]['id']){delete _0x59f66b['body']['id'];}return db[_0xbf7c('0x30')][_0xbf7c('0x4d')]({'where':{'id':_0x59f66b[_0xbf7c('0x48')]['id']}})[_0xbf7c('0x2a')](handleEntityNotFound(_0x4c6cd7,null))[_0xbf7c('0x2a')](saveUpdates(_0x59f66b['body'],null))['then'](respondWithResult(_0x4c6cd7,null))[_0xbf7c('0x46')](handleError(_0x4c6cd7,null));};exports['describe']=function(_0x40f62e,_0x5a5fdf){return db[_0xbf7c('0x30')]['describe']()[_0xbf7c('0x2a')](respondWithResult(_0x5a5fdf,null))[_0xbf7c('0x46')](handleError(_0x5a5fdf,null));};exports[_0xbf7c('0x4f')]=function(_0x1c2f3f,_0x1df494,_0x4649c9){var _0x1b26a9=require('../../components/encryptor');var _0x5a7bc3=![];var _0x202d0e={};if(_0x1c2f3f[_0xbf7c('0x36')][_0xbf7c('0x32')]&&_0x1c2f3f[_0xbf7c('0x36')]['type']===_0xbf7c('0x50')){_0x202d0e[_0xbf7c('0x50')]=_0x1c2f3f['params']['id'];}else{_0x202d0e['id']=_0x1c2f3f[_0xbf7c('0x48')]['id'];}return db[_0xbf7c('0x30')][_0xbf7c('0x4d')]({'where':_0x202d0e,'attributes':['id',_0xbf7c('0x51')],'raw':!![]})[_0xbf7c('0x2a')](handleEntityNotFound(_0x1df494,null))[_0xbf7c('0x2a')](function(_0x5e089e){if(_0x5e089e){var _0x43161f=_0x5e089e[_0xbf7c('0x51')];var _0x11ae5b=util['format'](_0xbf7c('0x52'),_0x43161f);if(fs[_0xbf7c('0x53')](_0x11ae5b)){_0x5a7bc3=!![];return _0x1b26a9[_0xbf7c('0x54')](_0x11ae5b,_0x43161f,config['secrets'][_0xbf7c('0x55')])[_0xbf7c('0x2a')](function(){return _0x5e089e;});}return _0x5e089e;}})[_0xbf7c('0x2a')](function(_0x283ae7){if(_0x283ae7){var _0x4baab5=_0x283ae7['value'];if(!fs['existsSync'](_0x4baab5)){throw new db['Sequelize'][(_0xbf7c('0x56'))](_0xbf7c('0x57'));}if(_0x283ae7[_0xbf7c('0x58')]){return _0x1df494[_0xbf7c('0x4f')](_0x4baab5,_0x283ae7[_0xbf7c('0x58')]+path[_0xbf7c('0x59')](_0x4baab5),function(){if(_0x5a7bc3){fs['unlink'](_0x4baab5);}});}else{return _0x1df494['download'](_0x4baab5,function(_0x406fba){if(_0x5a7bc3){fs[_0xbf7c('0x5a')](_0x4baab5);}});}}})[_0xbf7c('0x46')](function(_0x52bfa2){if(_0x52bfa2[_0xbf7c('0x5b')]==='VoiceRecording\x20not\x20found'){_0x1df494[_0xbf7c('0x1e')](0x194)[_0xbf7c('0x2e')](_0xbf7c('0x5c'));}else{return handleError(_0x1df494,null);}});};exports[_0xbf7c('0x5d')]=function(_0x4cb399,_0x56cfcd,_0x385e8e){var _0xd177d0=require(_0xbf7c('0x5e'));var _0x105f31=![];var _0x40f15d={'$and':[db[_0xbf7c('0x5f')][_0xbf7c('0x3f')](db[_0xbf7c('0x5f')]['fn'](_0xbf7c('0x60'),db['sequelize'][_0xbf7c('0x61')](_0xbf7c('0x50'))),_0x4cb399[_0xbf7c('0x36')][_0xbf7c('0x62')])]};if(_0x4cb399[_0xbf7c('0x36')][_0xbf7c('0x32')]&&_0x4cb399[_0xbf7c('0x36')][_0xbf7c('0x32')]===_0xbf7c('0x50')){_0x40f15d[_0xbf7c('0x63')]['push']({'uniqueid':_0x4cb399['params']['id']});}else{_0x40f15d[_0xbf7c('0x63')][_0xbf7c('0x64')]({'id':_0x4cb399['params']['id']});}return db[_0xbf7c('0x30')]['find']({'where':_0x40f15d,'attributes':['id',_0xbf7c('0x51')],'raw':!![]})['then'](handleEntityNotFound(_0x56cfcd,null))[_0xbf7c('0x2a')](function(_0x14fcae){if(_0x14fcae){var _0x1473ca=util[_0xbf7c('0x65')](_0xbf7c('0x52'),_0x14fcae[_0xbf7c('0x51')]);if(fs[_0xbf7c('0x53')](_0x1473ca)){_0x105f31=!![];return _0xd177d0[_0xbf7c('0x54')](_0x1473ca,_0x14fcae['value'],config['secrets'][_0xbf7c('0x55')])[_0xbf7c('0x2a')](function(){return _0x14fcae;});}return _0x14fcae;}})[_0xbf7c('0x2a')](function(_0x420c07){if(_0x420c07){if(!fs[_0xbf7c('0x53')](_0x420c07['value'])){throw new db[(_0xbf7c('0x66'))]['ValidationError'](_0xbf7c('0x57'));}if(_0x420c07['filename']){return _0x56cfcd[_0xbf7c('0x4f')](_0x420c07[_0xbf7c('0x51')],_0x420c07[_0xbf7c('0x58')]+path[_0xbf7c('0x59')](_0x420c07[_0xbf7c('0x51')]),function(){if(_0x105f31){fs[_0xbf7c('0x5a')](_0x420c07[_0xbf7c('0x51')]);}});}else{return _0x56cfcd['download'](_0x420c07[_0xbf7c('0x51')],function(_0x1eef74){if(_0x105f31){fs['unlink'](_0x420c07[_0xbf7c('0x51')]);}});}}})[_0xbf7c('0x46')](handleError(_0x56cfcd,null));};exports[_0xbf7c('0x67')]=function(_0x504518,_0x2bb22d){return db[_0xbf7c('0x30')]['find']({'where':{'id':_0x504518[_0xbf7c('0x48')]['id']}})['then'](function(_0x2a051a){if(_['isNil'](_0x2a051a)){throw new ReferenceError(_0xbf7c('0x68'));}return _0x2a051a;})[_0xbf7c('0x2a')](function(_0x537962){var _0x53f1bb=_0x537962['value'];logger[_0xbf7c('0x69')](_0xbf7c('0x6a'),_0x53f1bb);if(!_[_0xbf7c('0x6b')](_0x537962['value'])&&fs['existsSync'](_0x53f1bb)){logger[_0xbf7c('0x69')]('File:\x20\x22'+_0x53f1bb+_0xbf7c('0x6c'));fs[_0xbf7c('0x6d')](_0x53f1bb);}_0x53f1bb=_0x53f1bb+'.cypher';if(!_['isNil'](_0x537962['value'])&&fs[_0xbf7c('0x53')](_0x53f1bb)){logger[_0xbf7c('0x69')](_0xbf7c('0x6e')+_0x53f1bb+_0xbf7c('0x6c'));fs[_0xbf7c('0x6d')](_0x53f1bb);}return _0x537962;})['then'](function(_0x4eed0d){if(!_0x4eed0d)throw new InternalError();return _0x4eed0d['destroy']();})[_0xbf7c('0x2a')](function(){_0x2bb22d['status'](0xcc)[_0xbf7c('0x1f')]();})[_0xbf7c('0x46')](handleError(_0x2bb22d,null));};function getBucketslist(_0x320af9,_0x367284,_0x4da5e0){return new Promise(function(_0x4d557f,_0x38892d){var _0x3ee40b=new AWS['S3']({'accessKeyId':_0x367284,'secretAccessKey':_0x320af9,'region':_0x4da5e0});_0x3ee40b['listBuckets']({},function(_0x183abf,_0x3671c0){if(_0x183abf){return _0x38892d(_0x183abf);}else{return _0x4d557f(_0x3671c0);}});});}function createBucket(_0x58e55d,_0x423bd3,_0x1eb2fc,_0x1da259){return new Promise(function(_0x1518f7,_0x1b2a79){var _0x2ce534=new AWS['S3']({'accessKeyId':_0x423bd3,'secretAccessKey':_0x58e55d,'region':_0x1eb2fc});_0x2ce534['createBucket']({'Bucket':_0x1da259},function(_0x365ada,_0x581c7c){if(_0x365ada){return _0x1b2a79(_0x365ada);}else{return _0x1518f7(_0x581c7c);}});});}function uploadFile(_0x52a565,_0x1d2972,_0x4cf64e,_0x1a9c81,_0x3b17b4,_0x5e15c2){return new Promise(function(_0x178c92,_0x4489b6){var _0x51ba1a=new AWS['S3']({'accessKeyId':_0x1d2972,'secretAccessKey':_0x52a565,'region':_0x4cf64e});_0x51ba1a[_0xbf7c('0x6f')]({'Bucket':_0x1a9c81,'Key':_0x3b17b4,'Body':_0x5e15c2},function(_0x4c2c66,_0x4e31c3){if(_0x4c2c66){return _0x4489b6(_0x4c2c66);}else{return _0x178c92(_0x4e31c3);}});});}function startTranscribe(_0x1c983d,_0x4c76dc,_0xdace19,_0x3908d0,_0x334fd0,_0xdf89a7){return new Promise(function(_0x440bb2,_0x16011d){var _0xeec48=new AWS[(_0xbf7c('0x70'))]({'accessKeyId':_0x4c76dc,'secretAccessKey':_0x1c983d,'region':_0xdace19});_0xeec48['startTranscriptionJob']({'TranscriptionJobName':_0x3908d0,'LanguageCode':_0x334fd0,'Media':{'MediaFileUri':_0xdf89a7}},function(_0x824080,_0xf950db){if(_0x824080){return _0x16011d(_0x824080);}else{return _0x440bb2(_0xf950db);}});});}function transcribe(_0x33c75c,_0x2c4d7b,_0x533f1c,_0x393e6c,_0x189985,_0x5ecada,_0x428da2){return new Promise(function(_0x2248e1,_0x448f44){var _0x3b7748={};logger[_0xbf7c('0x69')](util[_0xbf7c('0x65')](_0xbf7c('0x71'),_0x33c75c,_0x189985));return uploadFile(_0x2c4d7b,_0x533f1c,_0x393e6c,_0x189985,path[_0xbf7c('0x72')](_0x5ecada),fs['readFileSync'](_0x5ecada))[_0xbf7c('0x2a')](function(_0x580257){logger[_0xbf7c('0x69')](util['format'](_0xbf7c('0x73'),_0x33c75c,_0x189985,_0x580257[_0xbf7c('0x74')]));_0x3b7748[_0xbf7c('0x75')]=_0x580257[_0xbf7c('0x76')];_0x3b7748[_0xbf7c('0x77')]=_0x580257[_0xbf7c('0x74')];logger['info'](util[_0xbf7c('0x65')](_0xbf7c('0x78'),_0x33c75c));return startTranscribe(_0x2c4d7b,_0x533f1c,_0x393e6c,uuidv4(),_0x428da2,_0x580257[_0xbf7c('0x74')]);})[_0xbf7c('0x2a')](function(_0x1018ec){logger[_0xbf7c('0x69')](util[_0xbf7c('0x65')](_0xbf7c('0x79'),_0x33c75c,_0x1018ec['TranscriptionJob'][_0xbf7c('0x7a')]));_0x3b7748[_0xbf7c('0x7b')]=_0x1018ec['TranscriptionJob'][_0xbf7c('0x7a')];_0x3b7748['transcribeStatus']=_0x1018ec[_0xbf7c('0x7c')]['TranscriptionJobStatus'];return _0x2248e1(_0x3b7748);})['catch'](function(_0x30f477){return _0x448f44(_0x30f477);});});}exports[_0xbf7c('0x7d')]=function(_0x195b6e,_0x32abf1,_0x4887cc){var _0x2c79c7;var _0x1d4205;var _0x50c9a4;var _0x3b1a81=require('../../components/encryptor');return db['VoiceRecording'][_0xbf7c('0x7e')]({'where':{'id':_0x195b6e['params']['id']}})[_0xbf7c('0x2a')](function(_0x2855db){if(_0x2855db){var _0x38fb60=util[_0xbf7c('0x65')](_0xbf7c('0x52'),_0x2855db['value']);if(fs[_0xbf7c('0x53')](_0x38fb60)){cypher=!![];return _0x3b1a81['decryptFile'](_0x38fb60,_0x2855db[_0xbf7c('0x51')],config[_0xbf7c('0x7f')]['recording'])[_0xbf7c('0x2a')](function(){return _0x2855db;});}return _0x2855db;}})[_0xbf7c('0x2a')](function(_0x3a86df){if(!_0x3a86df){throw new db['Sequelize'][(_0xbf7c('0x56'))](_0xbf7c('0x80'));}_0x1d4205=_0x3a86df;return db['Setting'][_0xbf7c('0x7e')]({'where':{'id':0x1}});})[_0xbf7c('0x2a')](handleEntityNotFound(_0x32abf1,null))[_0xbf7c('0x2a')](function(_0x4c60f6){if(_0x4c60f6){_0x2c79c7=_0x4c60f6;if(!_0x2c79c7[_0xbf7c('0x81')]||!_0x2c79c7['transcribeAccountId']||!_0x2c79c7[_0xbf7c('0x82')]||!_0x2c79c7[_0xbf7c('0x83')]||!_0x2c79c7[_0xbf7c('0x75')]){throw new db[(_0xbf7c('0x66'))][(_0xbf7c('0x56'))](_0xbf7c('0x84'));}if(_0x195b6e[_0xbf7c('0x4e')][_0xbf7c('0x85')]&&(!_0x2c79c7['sentiment']||!_0x2c79c7[_0xbf7c('0x86')]||!_0x2c79c7[_0xbf7c('0x87')]||!_0x2c79c7[_0xbf7c('0x83')]||!_0x2c79c7[_0xbf7c('0x75')])){throw new db[(_0xbf7c('0x66'))][(_0xbf7c('0x56'))](_0xbf7c('0x88'));}return db[_0xbf7c('0x89')][_0xbf7c('0x7e')]({'where':{'id':_0x2c79c7['transcribeAccountId']}});}})[_0xbf7c('0x2a')](function(_0x5b5d24){if(!_0x5b5d24){throw new db['Sequelize']['ValidationError'](_0xbf7c('0x8a'));}if(!_0x5b5d24['data1']||!_0x5b5d24[_0xbf7c('0x8b')]){throw new db[(_0xbf7c('0x66'))][(_0xbf7c('0x56'))](_0xbf7c('0x8c'));}_0x50c9a4=_0x5b5d24;return getBucketslist(_0x50c9a4[_0xbf7c('0x8d')],_0x50c9a4[_0xbf7c('0x8b')],_0x2c79c7[_0xbf7c('0x82')]);})[_0xbf7c('0x2a')](function(_0x4c3cb1){if(_0x4c3cb1&&_0x4c3cb1[_0xbf7c('0x8e')]){var _0x2d3fa2=_['find'](_0x4c3cb1[_0xbf7c('0x8e')],function(_0x51e9ab){return _0x51e9ab[_0xbf7c('0x8f')]===_0x2c79c7['bucket'];});if(!_0x2d3fa2){logger['info'](util['format'](_0xbf7c('0x90'),_0x195b6e[_0xbf7c('0x48')]['id'],_0x2c79c7['bucket']));return createBucket(_0x50c9a4['data1'],_0x50c9a4[_0xbf7c('0x8b')],_0x2c79c7[_0xbf7c('0x82')],_0x2c79c7[_0xbf7c('0x75')]);}logger['info'](util[_0xbf7c('0x65')](_0xbf7c('0x91'),_0x195b6e[_0xbf7c('0x48')]['id'],_0x2c79c7['bucket']));return;}})['then'](function(_0x503783){if(_0x1d4205[_0xbf7c('0x92')]==='NEW'){return transcribe(_0x195b6e[_0xbf7c('0x48')]['id'],_0x50c9a4[_0xbf7c('0x8d')],_0x50c9a4[_0xbf7c('0x8b')],_0x2c79c7[_0xbf7c('0x82')],_0x2c79c7[_0xbf7c('0x75')],_0x1d4205[_0xbf7c('0x51')],_0x2c79c7[_0xbf7c('0x83')]);}else{logger[_0xbf7c('0x69')](util[_0xbf7c('0x65')](_0xbf7c('0x93'),_0x195b6e[_0xbf7c('0x48')]['id']));return{'transcribeStatus':_0xbf7c('0x94')};}})[_0xbf7c('0x2a')](function(_0x4d6411){if(_0x4d6411){_0x4d6411['tempSentiment']=_0x195b6e['body'][_0xbf7c('0x85')];return _0x1d4205['updateAttributes'](_0x4d6411);}})[_0xbf7c('0x2a')](respondWithResult(_0x32abf1,null))[_0xbf7c('0x46')](handleError(_0x32abf1,null));};function writeFile(_0x5c6bcb,_0x87920f){return new Promise(function(_0x38b5fd,_0x342ee7){fs['writeFile'](_0x87920f,_0x5c6bcb,function(_0x376191,_0x198a62){if(_0x376191){return _0x342ee7(_0x376191);}else{return _0x38b5fd(_0x198a62);}});});}exports[_0xbf7c('0x95')]=function(_0x53f8d6,_0x95d0f3,_0x38def8){return db[_0xbf7c('0x30')][_0xbf7c('0x7e')]({'where':{'id':_0x53f8d6[_0xbf7c('0x48')]['id']}})[_0xbf7c('0x2a')](handleEntityNotFound(_0x95d0f3))[_0xbf7c('0x2a')](function(_0x5716f9){if(_0x5716f9&&_0x5716f9[_0xbf7c('0x96')]){var _0x4427bb=_0x5716f9[_0xbf7c('0x96')];var _0x24f63b=config[_0xbf7c('0x97')]+_0xbf7c('0x98')+_0x5716f9['id']+_0xbf7c('0x99');if(fs[_0xbf7c('0x53')](_0x24f63b)){return _0x24f63b;}return writeFile(_0x4427bb,_0x24f63b)[_0xbf7c('0x2a')](function(){return _0x24f63b;});}else{throw new db[(_0xbf7c('0x66'))]['ValidationError']('Transcript\x20not\x20available');}})['then'](function(_0x692a9d){return _0x95d0f3[_0xbf7c('0x4f')](_0x692a9d);})[_0xbf7c('0x46')](handleError(_0x95d0f3));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x62b7=['../../config/environment','./voiceRecording.attributes','VoiceRecording','voice_recordings','uniqueid','lodash','util','../../config/logger','api','moment','bluebird','path'];(function(_0x363887,_0x4f5e81){var _0x3dbf=function(_0x35a9b2){while(--_0x35a9b2){_0x363887['push'](_0x363887['shift']());}};_0x3dbf(++_0x4f5e81);}(_0x62b7,0x179));var _0x762b=function(_0xd5eb23,_0xe59104){_0xd5eb23=_0xd5eb23-0x0;var _0x5a4680=_0x62b7[_0xd5eb23];return _0x5a4680;};'use strict';var _=require(_0x762b('0x0'));var util=require(_0x762b('0x1'));var logger=require(_0x762b('0x2'))(_0x762b('0x3'));var moment=require(_0x762b('0x4'));var BPromise=require(_0x762b('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x762b('0x6'));var rimraf=require('rimraf');var config=require(_0x762b('0x7'));var attributes=require(_0x762b('0x8'));module['exports']=function(_0x1873ba,_0x5945c5){return _0x1873ba['define'](_0x762b('0x9'),attributes,{'tableName':_0x762b('0xa'),'paranoid':![],'indexes':[{'name':_0x762b('0xb'),'fields':[_0x762b('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x8ab2=['moment','bluebird','rimraf','../../config/environment','./voiceRecording.attributes','exports','define','voice_recordings','uniqueid','../../config/logger'];(function(_0x3b9d5f,_0x2e9039){var _0x39924e=function(_0x5752ee){while(--_0x5752ee){_0x3b9d5f['push'](_0x3b9d5f['shift']());}};_0x39924e(++_0x2e9039);}(_0x8ab2,0x167));var _0x28ab=function(_0x5bbe75,_0x32e4b6){_0x5bbe75=_0x5bbe75-0x0;var _0x353f23=_0x8ab2[_0x5bbe75];return _0x353f23;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x28ab('0x0'))('api');var moment=require(_0x28ab('0x1'));var BPromise=require(_0x28ab('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x28ab('0x3'));var config=require(_0x28ab('0x4'));var attributes=require(_0x28ab('0x5'));module[_0x28ab('0x6')]=function(_0x36397c,_0x212cf6){return _0x36397c[_0x28ab('0x7')]('VoiceRecording',attributes,{'tableName':_0x28ab('0x8'),'paranoid':![],'indexes':[{'name':_0x28ab('0x9'),'fields':[_0x28ab('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b12=['Setting','callRecordingEncryption','create','body','value','format','%s.cypher','secrets','recording','unlink','CreateVoiceRecording\x20file\x20encrypted','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','rpc','client','request','then','info','request\x20sent','debug','VoiceRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceRecording,\x20%s,\x20%s','message','catch','UpdateVoiceRecording','VoiceRecording','options','raw','attributes','CreateVoiceRecording','../../components/encryptor'];(function(_0x2c1ad6,_0x1864b3){var _0x531291=function(_0x3950ba){while(--_0x3950ba){_0x2c1ad6['push'](_0x2c1ad6['shift']());}};_0x531291(++_0x1864b3);}(_0x5b12,0xa3));var _0x25b1=function(_0x78dbf8,_0x38cf94){_0x78dbf8=_0x78dbf8-0x0;var _0x1959ba=_0x5b12[_0x78dbf8];return _0x1959ba;};'use strict';var _=require(_0x25b1('0x0'));var util=require(_0x25b1('0x1'));var moment=require(_0x25b1('0x2'));var BPromise=require('bluebird');var rs=require(_0x25b1('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x25b1('0x4'))['db'];var utils=require(_0x25b1('0x5'));var logger=require('../../config/logger')(_0x25b1('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x25b1('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5bb95b,_0x1f715d,_0x28c980){return new BPromise(function(_0x451c66,_0x2a46e0){return client[_0x25b1('0x8')](_0x5bb95b,_0x28c980)[_0x25b1('0x9')](function(_0x3346ed){logger[_0x25b1('0xa')]('VoiceRecording,\x20%s,\x20%s',_0x1f715d,_0x25b1('0xb'));logger[_0x25b1('0xc')](_0x25b1('0xd'),_0x1f715d,_0x25b1('0xb'),JSON[_0x25b1('0xe')](_0x3346ed));if(_0x3346ed[_0x25b1('0xf')]){if(_0x3346ed[_0x25b1('0xf')][_0x25b1('0x10')]===0x1f4){logger[_0x25b1('0xf')](_0x25b1('0x11'),_0x1f715d,_0x3346ed[_0x25b1('0xf')][_0x25b1('0x12')]);return _0x2a46e0(_0x3346ed[_0x25b1('0xf')][_0x25b1('0x12')]);}logger[_0x25b1('0xf')](_0x25b1('0x11'),_0x1f715d,_0x3346ed['error'][_0x25b1('0x12')]);return _0x451c66(_0x3346ed[_0x25b1('0xf')]['message']);}else{logger[_0x25b1('0xa')](_0x25b1('0x11'),_0x1f715d,_0x25b1('0xb'));_0x451c66(_0x3346ed['result']['message']);}})[_0x25b1('0x13')](function(_0x573ec2){logger[_0x25b1('0xf')](_0x25b1('0x11'),_0x1f715d,_0x573ec2);_0x2a46e0(_0x573ec2);});});}exports[_0x25b1('0x14')]=function(_0x27ccc9){var _0x1f78c2=this;return new Promise(function(_0x2a7d14,_0x17024a){return db[_0x25b1('0x15')]['update'](_0x27ccc9['body'],{'raw':_0x27ccc9[_0x25b1('0x16')]?_0x27ccc9['options'][_0x25b1('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x27ccc9['options']?_0x27ccc9[_0x25b1('0x16')]['where']||null:null,'attributes':_0x27ccc9[_0x25b1('0x16')]?_0x27ccc9['options'][_0x25b1('0x18')]||null:null,'limit':_0x27ccc9['options']?_0x27ccc9['options']['limit']||null:null})[_0x25b1('0x9')](function(_0x150436){logger['info'](_0x25b1('0x14'),_0x27ccc9);logger[_0x25b1('0xc')](_0x25b1('0x14'),_0x27ccc9,JSON[_0x25b1('0xe')](_0x150436));_0x2a7d14(_0x150436);})[_0x25b1('0x13')](function(_0x5e6b6b){logger[_0x25b1('0xf')](_0x25b1('0x14'),_0x5e6b6b[_0x25b1('0x12')],_0x27ccc9);_0x17024a(_0x1f78c2[_0x25b1('0xf')](0x1f4,_0x5e6b6b[_0x25b1('0x12')]));});});};exports[_0x25b1('0x19')]=function(_0x5d9ed7){var _0x3c05c6=this;return new Promise(function(_0x27dd68,_0x3d279f){var _0x5bc8fc=require(_0x25b1('0x1a'));var _0x9e175f;return db[_0x25b1('0x1b')]['findOne']({'attributes':['id',_0x25b1('0x1c')],'where':{'id':0x1},'raw':!![]})['then'](function(_0x19ecd1){_0x9e175f=_0x19ecd1;return db[_0x25b1('0x15')][_0x25b1('0x1d')](_0x5d9ed7[_0x25b1('0x1e')]);})[_0x25b1('0x9')](function(_0x300a14){if(_0x9e175f[_0x25b1('0x1c')]&&fs['existsSync'](_0x300a14[_0x25b1('0x1f')])){var _0xca56f0=util[_0x25b1('0x20')](_0x25b1('0x21'),_0x300a14[_0x25b1('0x1f')]);return _0x5bc8fc['encryptFile'](_0x300a14[_0x25b1('0x1f')],_0xca56f0,config[_0x25b1('0x22')][_0x25b1('0x23')])[_0x25b1('0x9')](function(){fs[_0x25b1('0x24')](_0x300a14['value']);logger['info'](_0x25b1('0x25'));return _0x300a14;});}return _0x300a14;})['then'](function(_0x446984){logger[_0x25b1('0xa')](_0x25b1('0x19'),_0x5d9ed7);logger['debug']('CreateVoiceRecording',_0x5d9ed7,JSON[_0x25b1('0xe')](_0x446984));_0x27dd68(_0x446984);})[_0x25b1('0x13')](function(_0x26d3bc){logger['error'](_0x25b1('0x19'),_0x26d3bc[_0x25b1('0x12')],_0x5d9ed7);_0x3d279f(_0x3c05c6[_0x25b1('0xf')](0x1f4,_0x26d3bc[_0x25b1('0x12')]));});});};
\ No newline at end of file
+var _0x896e=['body','options','raw','where','attributes','limit','CreateVoiceRecording','../../components/encryptor','findOne','callRecordingEncryption','existsSync','value','format','%s.cypher','encryptFile','unlink','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','VoiceRecording,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','info','catch','UpdateVoiceRecording','VoiceRecording','update'];(function(_0x21b7fb,_0x5a37d1){var _0x397b3d=function(_0x2f11d6){while(--_0x2f11d6){_0x21b7fb['push'](_0x21b7fb['shift']());}};_0x397b3d(++_0x5a37d1);}(_0x896e,0x1e9));var _0xe896=function(_0x26eb9f,_0xef5a10){_0x26eb9f=_0x26eb9f-0x0;var _0x447034=_0x896e[_0x26eb9f];return _0x447034;};'use strict';var _=require(_0xe896('0x0'));var util=require(_0xe896('0x1'));var moment=require(_0xe896('0x2'));var BPromise=require(_0xe896('0x3'));var rs=require(_0xe896('0x4'));var fs=require('fs');var Redis=require(_0xe896('0x5'));var db=require(_0xe896('0x6'))['db'];var utils=require(_0xe896('0x7'));var logger=require(_0xe896('0x8'))(_0xe896('0x9'));var config=require(_0xe896('0xa'));var jayson=require(_0xe896('0xb'));var client=jayson['client'][_0xe896('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x7a0721,_0x3b902c,_0x264eeb){return new BPromise(function(_0x43c619,_0x5a1909){return client[_0xe896('0xd')](_0x7a0721,_0x264eeb)[_0xe896('0xe')](function(_0x37a90d){logger['info'](_0xe896('0xf'),_0x3b902c,'request\x20sent');logger[_0xe896('0x10')]('VoiceRecording,\x20%s,\x20%s,\x20%s',_0x3b902c,_0xe896('0x11'),JSON[_0xe896('0x12')](_0x37a90d));if(_0x37a90d[_0xe896('0x13')]){if(_0x37a90d['error'][_0xe896('0x14')]===0x1f4){logger[_0xe896('0x13')](_0xe896('0xf'),_0x3b902c,_0x37a90d['error'][_0xe896('0x15')]);return _0x5a1909(_0x37a90d[_0xe896('0x13')][_0xe896('0x15')]);}logger['error'](_0xe896('0xf'),_0x3b902c,_0x37a90d[_0xe896('0x13')][_0xe896('0x15')]);return _0x43c619(_0x37a90d['error']['message']);}else{logger[_0xe896('0x16')](_0xe896('0xf'),_0x3b902c,'request\x20sent');_0x43c619(_0x37a90d['result'][_0xe896('0x15')]);}})[_0xe896('0x17')](function(_0x57f04b){logger[_0xe896('0x13')]('VoiceRecording,\x20%s,\x20%s',_0x3b902c,_0x57f04b);_0x5a1909(_0x57f04b);});});}exports[_0xe896('0x18')]=function(_0x32f86d){var _0x2d4cf0=this;return new Promise(function(_0x5dc89d,_0x782813){return db[_0xe896('0x19')][_0xe896('0x1a')](_0x32f86d[_0xe896('0x1b')],{'raw':_0x32f86d[_0xe896('0x1c')]?_0x32f86d[_0xe896('0x1c')][_0xe896('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x32f86d[_0xe896('0x1c')]?_0x32f86d['options'][_0xe896('0x1e')]||null:null,'attributes':_0x32f86d['options']?_0x32f86d['options'][_0xe896('0x1f')]||null:null,'limit':_0x32f86d[_0xe896('0x1c')]?_0x32f86d[_0xe896('0x1c')][_0xe896('0x20')]||null:null})['then'](function(_0x468479){logger['info']('UpdateVoiceRecording',_0x32f86d);logger[_0xe896('0x10')](_0xe896('0x18'),_0x32f86d,JSON[_0xe896('0x12')](_0x468479));_0x5dc89d(_0x468479);})[_0xe896('0x17')](function(_0x20e295){logger[_0xe896('0x13')](_0xe896('0x18'),_0x20e295['message'],_0x32f86d);_0x782813(_0x2d4cf0[_0xe896('0x13')](0x1f4,_0x20e295[_0xe896('0x15')]));});});};exports[_0xe896('0x21')]=function(_0x569d5f){var _0x26635e=this;return new Promise(function(_0xd50fe2,_0x2bc11d){var _0xe93aa0=require(_0xe896('0x22'));var _0x3f8ceb;return db['Setting'][_0xe896('0x23')]({'attributes':['id',_0xe896('0x24')],'where':{'id':0x1},'raw':!![]})[_0xe896('0xe')](function(_0xbfb15b){_0x3f8ceb=_0xbfb15b;return db[_0xe896('0x19')]['create'](_0x569d5f['body']);})['then'](function(_0x504d7c){if(_0x3f8ceb['callRecordingEncryption']&&fs[_0xe896('0x25')](_0x504d7c[_0xe896('0x26')])){var _0x10fd26=util[_0xe896('0x27')](_0xe896('0x28'),_0x504d7c[_0xe896('0x26')]);return _0xe93aa0[_0xe896('0x29')](_0x504d7c[_0xe896('0x26')],_0x10fd26,config['secrets']['recording'])[_0xe896('0xe')](function(){fs[_0xe896('0x2a')](_0x504d7c[_0xe896('0x26')]);logger[_0xe896('0x16')]('CreateVoiceRecording\x20file\x20encrypted');return _0x504d7c;});}return _0x504d7c;})[_0xe896('0xe')](function(_0x571e4d){logger['info'](_0xe896('0x21'),_0x569d5f);logger[_0xe896('0x10')](_0xe896('0x21'),_0x569d5f,JSON['stringify'](_0x571e4d));_0xd50fe2(_0x571e4d);})['catch'](function(_0x567589){logger[_0xe896('0x13')](_0xe896('0x21'),_0x567589[_0xe896('0x15')],_0x569d5f);_0x2bc11d(_0x26635e[_0xe896('0x13')](0x1f4,_0x567589[_0xe896('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc78a=['destroy','exports','multer','util','path','express','Router','../../components/interaction/service','../../config/environment','./voiceTransferReport.controller','get','isAuthenticated','index','/describe','/:id','post','create','update','delete'];(function(_0x3836f0,_0x48ba9d){var _0x401923=function(_0x59d867){while(--_0x59d867){_0x3836f0['push'](_0x3836f0['shift']());}};_0x401923(++_0x48ba9d);}(_0xc78a,0x11f));var _0xac78=function(_0x4d7f3f,_0x4d2803){_0x4d7f3f=_0x4d7f3f-0x0;var _0x5d67cc=_0xc78a[_0x4d7f3f];return _0x5d67cc;};'use strict';var multer=require(_0xac78('0x0'));var util=require(_0xac78('0x1'));var path=require(_0xac78('0x2'));var timeout=require('connect-timeout');var express=require(_0xac78('0x3'));var router=express[_0xac78('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xac78('0x5'));var config=require(_0xac78('0x6'));var controller=require(_0xac78('0x7'));router[_0xac78('0x8')]('/',auth[_0xac78('0x9')](),controller[_0xac78('0xa')]);router['get'](_0xac78('0xb'),auth[_0xac78('0x9')](),controller['describe']);router['get'](_0xac78('0xc'),auth[_0xac78('0x9')](),controller['show']);router[_0xac78('0xd')]('/',auth[_0xac78('0x9')](),controller[_0xac78('0xe')]);router['put'](_0xac78('0xc'),auth['isAuthenticated'](),controller[_0xac78('0xf')]);router[_0xac78('0x10')](_0xac78('0xc'),auth['isAuthenticated'](),controller[_0xac78('0x11')]);module[_0xac78('0x12')]=router;
\ No newline at end of file
+var _0x23d8=['get','index','/describe','isAuthenticated','describe','/:id','show','create','put','update','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./voiceTransferReport.controller'];(function(_0x551e07,_0x158a5f){var _0x5dae6c=function(_0x1dc3bc){while(--_0x1dc3bc){_0x551e07['push'](_0x551e07['shift']());}};_0x5dae6c(++_0x158a5f);}(_0x23d8,0x1da));var _0x823d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x23d8[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x823d('0x0'));var util=require(_0x823d('0x1'));var path=require(_0x823d('0x2'));var timeout=require(_0x823d('0x3'));var express=require(_0x823d('0x4'));var router=express[_0x823d('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x823d('0x6'));var interaction=require(_0x823d('0x7'));var config=require('../../config/environment');var controller=require(_0x823d('0x8'));router[_0x823d('0x9')]('/',auth['isAuthenticated'](),controller[_0x823d('0xa')]);router[_0x823d('0x9')](_0x823d('0xb'),auth[_0x823d('0xc')](),controller[_0x823d('0xd')]);router[_0x823d('0x9')](_0x823d('0xe'),auth['isAuthenticated'](),controller[_0x823d('0xf')]);router['post']('/',auth[_0x823d('0xc')](),controller[_0x823d('0x10')]);router[_0x823d('0x11')](_0x823d('0xe'),auth[_0x823d('0xc')](),controller[_0x823d('0x12')]);router['delete'](_0x823d('0xe'),auth[_0x823d('0xc')](),controller[_0x823d('0x13')]);module[_0x823d('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33f0=['STRING','moment','ENUM','blind','attended'];(function(_0x2f33c4,_0x181b0e){var _0x1c91e2=function(_0x2f58fc){while(--_0x2f58fc){_0x2f33c4['push'](_0x2f33c4['shift']());}};_0x1c91e2(++_0x181b0e);}(_0x33f0,0x10f));var _0x033f=function(_0x2fd233,_0x43e6d7){_0x2fd233=_0x2fd233-0x0;var _0x48fea5=_0x33f0[_0x2fd233];return _0x48fea5;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x033f('0x0'));module['exports']={'type':{'type':Sequelize[_0x033f('0x1')](_0x033f('0x2'),_0x033f('0x3'))},'result':{'type':Sequelize[_0x033f('0x4')]},'transfererchannel':{'type':Sequelize[_0x033f('0x4')]},'transferercalleridnum':{'type':Sequelize[_0x033f('0x4')]},'transferercalleridname':{'type':Sequelize['STRING']},'transfererconnectedlinenum':{'type':Sequelize['STRING']},'transfererconnectedlinename':{'type':Sequelize[_0x033f('0x4')]},'transfereraccountcode':{'type':Sequelize[_0x033f('0x4')]},'transferercontext':{'type':Sequelize[_0x033f('0x4')]},'transfererexten':{'type':Sequelize['STRING']},'transfererlinkedid':{'type':Sequelize[_0x033f('0x4')]},'transfereechannel':{'type':Sequelize['STRING']},'transfereecalleridnum':{'type':Sequelize['STRING']},'transfereecalleridname':{'type':Sequelize[_0x033f('0x4')]},'transfereeconnectedlinenum':{'type':Sequelize['STRING']},'transfereeconnectedlinename':{'type':Sequelize[_0x033f('0x4')]},'transfereeaccountcode':{'type':Sequelize[_0x033f('0x4')]},'transfereecontext':{'type':Sequelize['STRING']},'transfereeexten':{'type':Sequelize['STRING']},'transfereelinkedid':{'type':Sequelize[_0x033f('0x4')]},'isexternal':{'type':Sequelize[_0x033f('0x1')]('Yes','No')},'context':{'type':Sequelize['STRING']},'extension':{'type':Sequelize[_0x033f('0x4')]}};
\ No newline at end of file
+var _0xc803=['moment','exports','ENUM','blind','STRING','Yes'];(function(_0x3df09b,_0x1f334b){var _0x1b179c=function(_0xdaed4c){while(--_0xdaed4c){_0x3df09b['push'](_0x3df09b['shift']());}};_0x1b179c(++_0x1f334b);}(_0xc803,0xa2));var _0x3c80=function(_0x5c99d5,_0x41a4ac){_0x5c99d5=_0x5c99d5-0x0;var _0x1e6020=_0xc803[_0x5c99d5];return _0x1e6020;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x3c80('0x0'));module[_0x3c80('0x1')]={'type':{'type':Sequelize[_0x3c80('0x2')](_0x3c80('0x3'),'attended')},'result':{'type':Sequelize[_0x3c80('0x4')]},'transfererchannel':{'type':Sequelize[_0x3c80('0x4')]},'transferercalleridnum':{'type':Sequelize[_0x3c80('0x4')]},'transferercalleridname':{'type':Sequelize[_0x3c80('0x4')]},'transfererconnectedlinenum':{'type':Sequelize[_0x3c80('0x4')]},'transfererconnectedlinename':{'type':Sequelize['STRING']},'transfereraccountcode':{'type':Sequelize['STRING']},'transferercontext':{'type':Sequelize['STRING']},'transfererexten':{'type':Sequelize[_0x3c80('0x4')]},'transfererlinkedid':{'type':Sequelize[_0x3c80('0x4')]},'transfereechannel':{'type':Sequelize['STRING']},'transfereecalleridnum':{'type':Sequelize[_0x3c80('0x4')]},'transfereecalleridname':{'type':Sequelize[_0x3c80('0x4')]},'transfereeconnectedlinenum':{'type':Sequelize['STRING']},'transfereeconnectedlinename':{'type':Sequelize[_0x3c80('0x4')]},'transfereeaccountcode':{'type':Sequelize[_0x3c80('0x4')]},'transfereecontext':{'type':Sequelize[_0x3c80('0x4')]},'transfereeexten':{'type':Sequelize[_0x3c80('0x4')]},'transfereelinkedid':{'type':Sequelize['STRING']},'isexternal':{'type':Sequelize[_0x3c80('0x2')](_0x3c80('0x5'),'No')},'context':{'type':Sequelize[_0x3c80('0x4')]},'extension':{'type':Sequelize[_0x3c80('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9360=['attributes','length','hasOwnProperty','nolimit','filters','pick','filter','where','merge','type','VIRTUAL','options','count','includeAll','include','findAll','rows','catch','show','keys','body','find','params','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','set','Content-Range','json','apply','reject','save','update','destroy','then','sendStatus','error','stack','name','send','VoiceTransferReport','rawAttributes','fieldName','key','map','query','model','fields'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x9360,0x18a));var _0x0936=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x9360[_0x122ef9];return _0x42fba0;};'use strict';var emlformat=require(_0x0936('0x0'));var rimraf=require(_0x0936('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0936('0x2'));var rp=require(_0x0936('0x3'));var moment=require(_0x0936('0x4'));var BPromise=require(_0x0936('0x5'));var Mustache=require('mustache');var util=require(_0x0936('0x6'));var path=require(_0x0936('0x7'));var sox=require(_0x0936('0x8'));var csv=require(_0x0936('0x9'));var ejs=require(_0x0936('0xa'));var fs=require('fs');var fs_extra=require(_0x0936('0xb'));var _=require('lodash');var squel=require(_0x0936('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x0936('0x9'));var querystring=require(_0x0936('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x0936('0xe'));var as=require(_0x0936('0xf'));var hardwareService=require(_0x0936('0x10'));var logger=require(_0x0936('0x11'))(_0x0936('0x12'));var utils=require(_0x0936('0x13'));var config=require(_0x0936('0x14'));var licenseUtil=require(_0x0936('0x15'));var db=require(_0x0936('0x16'))['db'];function respondWithStatusCode(_0x2c7882,_0x36e537){_0x36e537=_0x36e537||0xcc;return function(_0x4f82b8){if(_0x4f82b8){return _0x2c7882['sendStatus'](_0x36e537);}return _0x2c7882[_0x0936('0x17')](_0x36e537)[_0x0936('0x18')]();};}function respondWithResult(_0x3e6aa4,_0x12d5dd){_0x12d5dd=_0x12d5dd||0xc8;return function(_0x31a466){if(_0x31a466){return _0x3e6aa4[_0x0936('0x17')](_0x12d5dd)['json'](_0x31a466);}};}function respondWithFilteredResult(_0x25ff8e,_0x330beb){return function(_0x4230ec){if(_0x4230ec){var _0x78b9ee=typeof _0x330beb[_0x0936('0x19')]===_0x0936('0x1a')&&typeof _0x330beb[_0x0936('0x1b')]==='undefined';var _0x30b951=_0x4230ec['count'];var _0x51a3d2=_0x78b9ee?0x0:_0x330beb[_0x0936('0x19')];var _0x2d8824=_0x78b9ee?_0x4230ec['count']:_0x330beb[_0x0936('0x19')]+_0x330beb[_0x0936('0x1b')];var _0x76f559;if(_0x2d8824>=_0x30b951){_0x2d8824=_0x30b951;_0x76f559=0xc8;}else{_0x76f559=0xce;}_0x25ff8e[_0x0936('0x17')](_0x76f559);return _0x25ff8e[_0x0936('0x1c')](_0x0936('0x1d'),_0x51a3d2+'-'+_0x2d8824+'/'+_0x30b951)[_0x0936('0x1e')](_0x4230ec);}return null;};}function patchUpdates(_0x53c669){return function(_0x4200b5){try{jsonpatch[_0x0936('0x1f')](_0x4200b5,_0x53c669,!![]);}catch(_0x3c51be){return BPromise[_0x0936('0x20')](_0x3c51be);}return _0x4200b5[_0x0936('0x21')]();};}function saveUpdates(_0x458336,_0x3bee46){return function(_0x1b98db){if(_0x1b98db){return _0x1b98db[_0x0936('0x22')](_0x458336)['then'](function(_0x3e0171){return _0x3e0171;});}return null;};}function removeEntity(_0x3ba0dd,_0x3bc971){return function(_0x4c1b01){if(_0x4c1b01){return _0x4c1b01[_0x0936('0x23')]()[_0x0936('0x24')](function(){_0x3ba0dd[_0x0936('0x17')](0xcc)[_0x0936('0x18')]();});}};}function handleEntityNotFound(_0x45bcfd,_0x1b0016){return function(_0x52e5d3){if(!_0x52e5d3){_0x45bcfd[_0x0936('0x25')](0x194);}return _0x52e5d3;};}function handleError(_0x3673f8,_0x3ff34c){_0x3ff34c=_0x3ff34c||0x1f4;return function(_0x36bc10){logger[_0x0936('0x26')](_0x36bc10[_0x0936('0x27')]);if(_0x36bc10['name']){delete _0x36bc10[_0x0936('0x28')];}_0x3673f8[_0x0936('0x17')](_0x3ff34c)[_0x0936('0x29')](_0x36bc10);};}exports['index']=function(_0x3ba471,_0x2fae1c){var _0x59c6e9={},_0x524642={},_0x187799={'count':0x0,'rows':[]};var _0x590b2f=_['map'](db[_0x0936('0x2a')][_0x0936('0x2b')],function(_0x39b625){return{'name':_0x39b625[_0x0936('0x2c')],'type':_0x39b625['type'][_0x0936('0x2d')]};});_0x524642['model']=_[_0x0936('0x2e')](_0x590b2f,'name');_0x524642[_0x0936('0x2f')]=_['keys'](_0x3ba471['query']);_0x524642['filters']=_['intersection'](_0x524642[_0x0936('0x30')],_0x524642[_0x0936('0x2f')]);_0x59c6e9['attributes']=_['intersection'](_0x524642['model'],qs[_0x0936('0x31')](_0x3ba471[_0x0936('0x2f')][_0x0936('0x31')]));_0x59c6e9['attributes']=_0x59c6e9[_0x0936('0x32')][_0x0936('0x33')]?_0x59c6e9[_0x0936('0x32')]:_0x524642[_0x0936('0x30')];if(!_0x3ba471[_0x0936('0x2f')][_0x0936('0x34')](_0x0936('0x35'))){_0x59c6e9[_0x0936('0x1b')]=qs[_0x0936('0x1b')](_0x3ba471[_0x0936('0x2f')][_0x0936('0x1b')]);_0x59c6e9[_0x0936('0x19')]=qs[_0x0936('0x19')](_0x3ba471['query']['offset']);}_0x59c6e9['order']=qs['sort'](_0x3ba471['query']['sort']);_0x59c6e9['where']=qs[_0x0936('0x36')](_[_0x0936('0x37')](_0x3ba471[_0x0936('0x2f')],_0x524642[_0x0936('0x36')]),_0x590b2f);if(_0x3ba471['query'][_0x0936('0x38')]){_0x59c6e9[_0x0936('0x39')]=_[_0x0936('0x3a')](_0x59c6e9[_0x0936('0x39')],{'$or':_[_0x0936('0x2e')](_0x590b2f,function(_0x2dc710){if(_0x2dc710[_0x0936('0x3b')]!==_0x0936('0x3c')){var _0x40cbcc={};_0x40cbcc[_0x2dc710['name']]={'$like':'%'+_0x3ba471[_0x0936('0x2f')][_0x0936('0x38')]+'%'};return _0x40cbcc;}})});}_0x59c6e9=_[_0x0936('0x3a')]({},_0x59c6e9,_0x3ba471[_0x0936('0x3d')]);var _0x2b253d={'where':_0x59c6e9[_0x0936('0x39')]};return db[_0x0936('0x2a')][_0x0936('0x3e')](_0x2b253d)[_0x0936('0x24')](function(_0x4d89c8){_0x187799[_0x0936('0x3e')]=_0x4d89c8;if(_0x3ba471['query'][_0x0936('0x3f')]){_0x59c6e9[_0x0936('0x40')]=[{'all':!![]}];}return db[_0x0936('0x2a')][_0x0936('0x41')](_0x59c6e9);})[_0x0936('0x24')](function(_0x3dd236){_0x187799[_0x0936('0x42')]=_0x3dd236;return _0x187799;})['then'](respondWithFilteredResult(_0x2fae1c,_0x59c6e9))[_0x0936('0x43')](handleError(_0x2fae1c,null));};exports[_0x0936('0x44')]=function(_0x493286,_0x512ed1){var _0x5e47c9={'raw':!![],'where':{'id':_0x493286['params']['id']}},_0xd9eaaa={};_0xd9eaaa['model']=_[_0x0936('0x45')](db[_0x0936('0x2a')][_0x0936('0x2b')]);_0xd9eaaa[_0x0936('0x2f')]=_[_0x0936('0x45')](_0x493286[_0x0936('0x2f')]);_0xd9eaaa[_0x0936('0x36')]=_['intersection'](_0xd9eaaa[_0x0936('0x30')],_0xd9eaaa[_0x0936('0x2f')]);_0x5e47c9['attributes']=_['intersection'](_0xd9eaaa['model'],qs['fields'](_0x493286[_0x0936('0x2f')][_0x0936('0x31')]));_0x5e47c9[_0x0936('0x32')]=_0x5e47c9['attributes'][_0x0936('0x33')]?_0x5e47c9[_0x0936('0x32')]:_0xd9eaaa[_0x0936('0x30')];if(_0x493286[_0x0936('0x2f')][_0x0936('0x3f')]){_0x5e47c9[_0x0936('0x40')]=[{'all':!![]}];}_0x5e47c9=_[_0x0936('0x3a')]({},_0x5e47c9,_0x493286[_0x0936('0x3d')]);return db['VoiceTransferReport']['find'](_0x5e47c9)[_0x0936('0x24')](handleEntityNotFound(_0x512ed1,null))[_0x0936('0x24')](respondWithResult(_0x512ed1,null))[_0x0936('0x43')](handleError(_0x512ed1,null));};exports['create']=function(_0x5eb22a,_0x2f3879){return db[_0x0936('0x2a')]['create'](_0x5eb22a[_0x0936('0x46')],{})['then'](respondWithResult(_0x2f3879,0xc9))['catch'](handleError(_0x2f3879,null));};exports[_0x0936('0x22')]=function(_0x18c84e,_0x3e4853){if(_0x18c84e[_0x0936('0x46')]['id']){delete _0x18c84e['body']['id'];}return db[_0x0936('0x2a')][_0x0936('0x47')]({'where':{'id':_0x18c84e[_0x0936('0x48')]['id']}})['then'](handleEntityNotFound(_0x3e4853,null))[_0x0936('0x24')](saveUpdates(_0x18c84e[_0x0936('0x46')],null))[_0x0936('0x24')](respondWithResult(_0x3e4853,null))['catch'](handleError(_0x3e4853,null));};exports[_0x0936('0x23')]=function(_0x2771d4,_0x2c0109){return db['VoiceTransferReport'][_0x0936('0x47')]({'where':{'id':_0x2771d4['params']['id']}})[_0x0936('0x24')](handleEntityNotFound(_0x2c0109,null))['then'](removeEntity(_0x2c0109,null))[_0x0936('0x43')](handleError(_0x2c0109,null));};exports[_0x0936('0x49')]=function(_0xbb1713,_0x184162){return db[_0x0936('0x2a')][_0x0936('0x49')]()[_0x0936('0x24')](respondWithResult(_0x184162,null))[_0x0936('0x43')](handleError(_0x184162,null));};
\ No newline at end of file
+var _0x037d=['reject','save','update','then','error','name','index','map','VoiceTransferReport','fieldName','key','model','query','keys','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','filters','filter','where','type','VIRTUAL','merge','options','findAll','rows','show','params','rawAttributes','includeAll','include','find','create','body','catch','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply'];(function(_0x27d958,_0x29ef87){var _0x53e63e=function(_0x4130ec){while(--_0x4130ec){_0x27d958['push'](_0x27d958['shift']());}};_0x53e63e(++_0x29ef87);}(_0x037d,0x19a));var _0xd037=function(_0x342baa,_0x4a110f){_0x342baa=_0x342baa-0x0;var _0x1208f3=_0x037d[_0x342baa];return _0x1208f3;};'use strict';var emlformat=require(_0xd037('0x0'));var rimraf=require(_0xd037('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd037('0x2'));var rp=require(_0xd037('0x3'));var moment=require(_0xd037('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xd037('0x5'));var util=require(_0xd037('0x6'));var path=require('path');var sox=require(_0xd037('0x7'));var csv=require(_0xd037('0x8'));var ejs=require(_0xd037('0x9'));var fs=require('fs');var fs_extra=require(_0xd037('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xd037('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xd037('0xc'));var toCsv=require(_0xd037('0x8'));var querystring=require(_0xd037('0xd'));var Papa=require(_0xd037('0xe'));var Redis=require(_0xd037('0xf'));var authService=require(_0xd037('0x10'));var qs=require(_0xd037('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd037('0x12'));var logger=require(_0xd037('0x13'))('api');var utils=require('../../config/utils');var config=require(_0xd037('0x14'));var licenseUtil=require(_0xd037('0x15'));var db=require(_0xd037('0x16'))['db'];function respondWithStatusCode(_0xd9b8ca,_0x5f5c9d){_0x5f5c9d=_0x5f5c9d||0xcc;return function(_0x5da80e){if(_0x5da80e){return _0xd9b8ca[_0xd037('0x17')](_0x5f5c9d);}return _0xd9b8ca[_0xd037('0x18')](_0x5f5c9d)[_0xd037('0x19')]();};}function respondWithResult(_0x24c808,_0x2ce770){_0x2ce770=_0x2ce770||0xc8;return function(_0x4da3c6){if(_0x4da3c6){return _0x24c808['status'](_0x2ce770)[_0xd037('0x1a')](_0x4da3c6);}};}function respondWithFilteredResult(_0x2b7cd1,_0x5c954a){return function(_0x26399d){if(_0x26399d){var _0xe93e70=typeof _0x5c954a['offset']===_0xd037('0x1b')&&typeof _0x5c954a[_0xd037('0x1c')]===_0xd037('0x1b');var _0x3cde2d=_0x26399d['count'];var _0x215890=_0xe93e70?0x0:_0x5c954a['offset'];var _0x4a3f3d=_0xe93e70?_0x26399d[_0xd037('0x1d')]:_0x5c954a[_0xd037('0x1e')]+_0x5c954a[_0xd037('0x1c')];var _0x55154e;if(_0x4a3f3d>=_0x3cde2d){_0x4a3f3d=_0x3cde2d;_0x55154e=0xc8;}else{_0x55154e=0xce;}_0x2b7cd1[_0xd037('0x18')](_0x55154e);return _0x2b7cd1[_0xd037('0x1f')](_0xd037('0x20'),_0x215890+'-'+_0x4a3f3d+'/'+_0x3cde2d)['json'](_0x26399d);}return null;};}function patchUpdates(_0xd30cbb){return function(_0x43c1e1){try{jsonpatch[_0xd037('0x21')](_0x43c1e1,_0xd30cbb,!![]);}catch(_0x328420){return BPromise[_0xd037('0x22')](_0x328420);}return _0x43c1e1[_0xd037('0x23')]();};}function saveUpdates(_0x3c4e9e,_0x335b66){return function(_0x2535f5){if(_0x2535f5){return _0x2535f5[_0xd037('0x24')](_0x3c4e9e)['then'](function(_0x1d3b18){return _0x1d3b18;});}return null;};}function removeEntity(_0x332cf8,_0x575ef8){return function(_0x36e5f5){if(_0x36e5f5){return _0x36e5f5['destroy']()[_0xd037('0x25')](function(){_0x332cf8['status'](0xcc)[_0xd037('0x19')]();});}};}function handleEntityNotFound(_0x52d44e,_0x36a7ac){return function(_0x7ade2){if(!_0x7ade2){_0x52d44e[_0xd037('0x17')](0x194);}return _0x7ade2;};}function handleError(_0x52b313,_0x516536){_0x516536=_0x516536||0x1f4;return function(_0x1b8b12){logger[_0xd037('0x26')](_0x1b8b12['stack']);if(_0x1b8b12[_0xd037('0x27')]){delete _0x1b8b12['name'];}_0x52b313[_0xd037('0x18')](_0x516536)['send'](_0x1b8b12);};}exports[_0xd037('0x28')]=function(_0x5c6876,_0x4bc11c){var _0x120678={},_0x30bdbc={},_0xcf8366={'count':0x0,'rows':[]};var _0x1c9488=_[_0xd037('0x29')](db[_0xd037('0x2a')]['rawAttributes'],function(_0xc84b44){return{'name':_0xc84b44[_0xd037('0x2b')],'type':_0xc84b44['type'][_0xd037('0x2c')]};});_0x30bdbc[_0xd037('0x2d')]=_[_0xd037('0x29')](_0x1c9488,_0xd037('0x27'));_0x30bdbc[_0xd037('0x2e')]=_[_0xd037('0x2f')](_0x5c6876[_0xd037('0x2e')]);_0x30bdbc['filters']=_['intersection'](_0x30bdbc[_0xd037('0x2d')],_0x30bdbc[_0xd037('0x2e')]);_0x120678[_0xd037('0x30')]=_[_0xd037('0x31')](_0x30bdbc['model'],qs[_0xd037('0x32')](_0x5c6876[_0xd037('0x2e')][_0xd037('0x32')]));_0x120678[_0xd037('0x30')]=_0x120678[_0xd037('0x30')]['length']?_0x120678[_0xd037('0x30')]:_0x30bdbc['model'];if(!_0x5c6876[_0xd037('0x2e')][_0xd037('0x33')](_0xd037('0x34'))){_0x120678[_0xd037('0x1c')]=qs[_0xd037('0x1c')](_0x5c6876['query'][_0xd037('0x1c')]);_0x120678['offset']=qs[_0xd037('0x1e')](_0x5c6876[_0xd037('0x2e')][_0xd037('0x1e')]);}_0x120678[_0xd037('0x35')]=qs[_0xd037('0x36')](_0x5c6876[_0xd037('0x2e')][_0xd037('0x36')]);_0x120678['where']=qs[_0xd037('0x37')](_['pick'](_0x5c6876['query'],_0x30bdbc[_0xd037('0x37')]),_0x1c9488);if(_0x5c6876[_0xd037('0x2e')][_0xd037('0x38')]){_0x120678['where']=_['merge'](_0x120678[_0xd037('0x39')],{'$or':_['map'](_0x1c9488,function(_0x2585aa){if(_0x2585aa[_0xd037('0x3a')]!==_0xd037('0x3b')){var _0x2d8cbc={};_0x2d8cbc[_0x2585aa[_0xd037('0x27')]]={'$like':'%'+_0x5c6876[_0xd037('0x2e')][_0xd037('0x38')]+'%'};return _0x2d8cbc;}})});}_0x120678=_[_0xd037('0x3c')]({},_0x120678,_0x5c6876[_0xd037('0x3d')]);var _0x8866c7={'where':_0x120678[_0xd037('0x39')]};return db[_0xd037('0x2a')][_0xd037('0x1d')](_0x8866c7)[_0xd037('0x25')](function(_0x10cfed){_0xcf8366[_0xd037('0x1d')]=_0x10cfed;if(_0x5c6876['query']['includeAll']){_0x120678['include']=[{'all':!![]}];}return db[_0xd037('0x2a')][_0xd037('0x3e')](_0x120678);})[_0xd037('0x25')](function(_0xe85659){_0xcf8366[_0xd037('0x3f')]=_0xe85659;return _0xcf8366;})[_0xd037('0x25')](respondWithFilteredResult(_0x4bc11c,_0x120678))['catch'](handleError(_0x4bc11c,null));};exports[_0xd037('0x40')]=function(_0x14b5a1,_0x1d395a){var _0x43036f={'raw':!![],'where':{'id':_0x14b5a1[_0xd037('0x41')]['id']}},_0x24bedd={};_0x24bedd[_0xd037('0x2d')]=_[_0xd037('0x2f')](db[_0xd037('0x2a')][_0xd037('0x42')]);_0x24bedd[_0xd037('0x2e')]=_[_0xd037('0x2f')](_0x14b5a1['query']);_0x24bedd['filters']=_[_0xd037('0x31')](_0x24bedd['model'],_0x24bedd[_0xd037('0x2e')]);_0x43036f['attributes']=_['intersection'](_0x24bedd[_0xd037('0x2d')],qs[_0xd037('0x32')](_0x14b5a1[_0xd037('0x2e')]['fields']));_0x43036f['attributes']=_0x43036f[_0xd037('0x30')]['length']?_0x43036f[_0xd037('0x30')]:_0x24bedd[_0xd037('0x2d')];if(_0x14b5a1['query'][_0xd037('0x43')]){_0x43036f[_0xd037('0x44')]=[{'all':!![]}];}_0x43036f=_[_0xd037('0x3c')]({},_0x43036f,_0x14b5a1[_0xd037('0x3d')]);return db[_0xd037('0x2a')][_0xd037('0x45')](_0x43036f)['then'](handleEntityNotFound(_0x1d395a,null))[_0xd037('0x25')](respondWithResult(_0x1d395a,null))['catch'](handleError(_0x1d395a,null));};exports[_0xd037('0x46')]=function(_0x1f2f7d,_0x3ef715){return db['VoiceTransferReport'][_0xd037('0x46')](_0x1f2f7d[_0xd037('0x47')],{})[_0xd037('0x25')](respondWithResult(_0x3ef715,0xc9))[_0xd037('0x48')](handleError(_0x3ef715,null));};exports['update']=function(_0x27502e,_0x58ff4b){if(_0x27502e[_0xd037('0x47')]['id']){delete _0x27502e['body']['id'];}return db['VoiceTransferReport']['find']({'where':{'id':_0x27502e[_0xd037('0x41')]['id']}})[_0xd037('0x25')](handleEntityNotFound(_0x58ff4b,null))['then'](saveUpdates(_0x27502e[_0xd037('0x47')],null))[_0xd037('0x25')](respondWithResult(_0x58ff4b,null))[_0xd037('0x48')](handleError(_0x58ff4b,null));};exports['destroy']=function(_0x26077d,_0x35ae5c){return db['VoiceTransferReport']['find']({'where':{'id':_0x26077d[_0xd037('0x41')]['id']}})[_0xd037('0x25')](handleEntityNotFound(_0x35ae5c,null))[_0xd037('0x25')](removeEntity(_0x35ae5c,null))[_0xd037('0x48')](handleError(_0x35ae5c,null));};exports[_0xd037('0x49')]=function(_0x2f3ce3,_0x56bfe1){return db[_0xd037('0x2a')][_0xd037('0x49')]()['then'](respondWithResult(_0x56bfe1,null))[_0xd037('0x48')](handleError(_0x56bfe1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7206=['../../config/environment','define','VoiceTransferReport','lodash','util','api','moment','path','rimraf'];(function(_0x1b2b6d,_0x43aca8){var _0x3c506e=function(_0x4d6c22){while(--_0x4d6c22){_0x1b2b6d['push'](_0x1b2b6d['shift']());}};_0x3c506e(++_0x43aca8);}(_0x7206,0xb7));var _0x6720=function(_0x404306,_0x25d4aa){_0x404306=_0x404306-0x0;var _0x3c5aac=_0x7206[_0x404306];return _0x3c5aac;};'use strict';var _=require(_0x6720('0x0'));var util=require(_0x6720('0x1'));var logger=require('../../config/logger')(_0x6720('0x2'));var moment=require(_0x6720('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x6720('0x4'));var rimraf=require(_0x6720('0x5'));var config=require(_0x6720('0x6'));var attributes=require('./voiceTransferReport.attributes');module['exports']=function(_0x401a62,_0x24b4a5){return _0x401a62[_0x6720('0x7')](_0x6720('0x8'),attributes,{'tableName':'report_call_transfer','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x697c=['request-promise','path','rimraf','../../config/environment','./voiceTransferReport.attributes','exports','define','VoiceTransferReport','report_call_transfer','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0x697c,0x1da));var _0xc697=function(_0x19e49f,_0x419b39){_0x19e49f=_0x19e49f-0x0;var _0x4940f3=_0x697c[_0x19e49f];return _0x4940f3;};'use strict';var _=require(_0xc697('0x0'));var util=require(_0xc697('0x1'));var logger=require(_0xc697('0x2'))(_0xc697('0x3'));var moment=require(_0xc697('0x4'));var BPromise=require(_0xc697('0x5'));var rp=require(_0xc697('0x6'));var fs=require('fs');var path=require(_0xc697('0x7'));var rimraf=require(_0xc697('0x8'));var config=require(_0xc697('0x9'));var attributes=require(_0xc697('0xa'));module[_0xc697('0xb')]=function(_0x5c2244,_0x1a8e7a){return _0x5c2244[_0xc697('0xc')](_0xc697('0xd'),attributes,{'tableName':_0xc697('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf4b=['code','message','result','catch','CreateVoiceTransferReport','create','body','options','raw','then','stringify','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','jayson/promise','client','request','info','VoiceTransferReport,\x20%s,\x20%s','request\x20sent','debug','VoiceTransferReport,\x20%s,\x20%s,\x20%s','error'];(function(_0x38c031,_0x3f41c9){var _0x108753=function(_0x29e833){while(--_0x29e833){_0x38c031['push'](_0x38c031['shift']());}};_0x108753(++_0x3f41c9);}(_0xdf4b,0x185));var _0xbdf4=function(_0x2c7800,_0x5e2d6d){_0x2c7800=_0x2c7800-0x0;var _0x1416a7=_0xdf4b[_0x2c7800];return _0x1416a7;};'use strict';var _=require(_0xbdf4('0x0'));var util=require('util');var moment=require(_0xbdf4('0x1'));var BPromise=require(_0xbdf4('0x2'));var rs=require(_0xbdf4('0x3'));var fs=require('fs');var Redis=require(_0xbdf4('0x4'));var db=require(_0xbdf4('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xbdf4('0x6'));var config=require('../../config/environment');var jayson=require(_0xbdf4('0x7'));var client=jayson[_0xbdf4('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5993bd,_0x3f646c,_0x30491f){return new BPromise(function(_0x5240b3,_0x397863){return client[_0xbdf4('0x9')](_0x5993bd,_0x30491f)['then'](function(_0x12456a){logger[_0xbdf4('0xa')](_0xbdf4('0xb'),_0x3f646c,_0xbdf4('0xc'));logger[_0xbdf4('0xd')](_0xbdf4('0xe'),_0x3f646c,_0xbdf4('0xc'),JSON['stringify'](_0x12456a));if(_0x12456a['error']){if(_0x12456a[_0xbdf4('0xf')][_0xbdf4('0x10')]===0x1f4){logger[_0xbdf4('0xf')](_0xbdf4('0xb'),_0x3f646c,_0x12456a[_0xbdf4('0xf')][_0xbdf4('0x11')]);return _0x397863(_0x12456a['error']['message']);}logger['error']('VoiceTransferReport,\x20%s,\x20%s',_0x3f646c,_0x12456a[_0xbdf4('0xf')][_0xbdf4('0x11')]);return _0x5240b3(_0x12456a[_0xbdf4('0xf')][_0xbdf4('0x11')]);}else{logger[_0xbdf4('0xa')](_0xbdf4('0xb'),_0x3f646c,_0xbdf4('0xc'));_0x5240b3(_0x12456a[_0xbdf4('0x12')]['message']);}})[_0xbdf4('0x13')](function(_0x317cda){logger[_0xbdf4('0xf')](_0xbdf4('0xb'),_0x3f646c,_0x317cda);_0x397863(_0x317cda);});});}exports[_0xbdf4('0x14')]=function(_0x682e5){var _0x41f965=this;return new Promise(function(_0x10906a,_0x489643){return db['VoiceTransferReport'][_0xbdf4('0x15')](_0x682e5[_0xbdf4('0x16')],{'raw':_0x682e5['options']?_0x682e5[_0xbdf4('0x17')][_0xbdf4('0x18')]===undefined?!![]:![]:!![]})[_0xbdf4('0x19')](function(_0x3b973b){logger[_0xbdf4('0xa')]('CreateVoiceTransferReport',_0x682e5);logger[_0xbdf4('0xd')](_0xbdf4('0x14'),_0x682e5,JSON[_0xbdf4('0x1a')](_0x3b973b));_0x10906a(_0x3b973b);})[_0xbdf4('0x13')](function(_0x5779a4){logger[_0xbdf4('0xf')](_0xbdf4('0x14'),_0x5779a4[_0xbdf4('0x11')],_0x682e5);_0x489643(_0x41f965['error'](0x1f4,_0x5779a4['message']));});});};
\ No newline at end of file
+var _0x2026=['../../config/environment','jayson/promise','client','http','request','then','info','VoiceTransferReport,\x20%s,\x20%s','request\x20sent','debug','VoiceTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateVoiceTransferReport','VoiceTransferReport','create','body','options','raw','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc'];(function(_0x5416db,_0x55683a){var _0x243e35=function(_0x1eb623){while(--_0x1eb623){_0x5416db['push'](_0x5416db['shift']());}};_0x243e35(++_0x55683a);}(_0x2026,0x71));var _0x6202=function(_0x11d49d,_0x3374e2){_0x11d49d=_0x11d49d-0x0;var _0x117159=_0x2026[_0x11d49d];return _0x117159;};'use strict';var _=require(_0x6202('0x0'));var util=require('util');var moment=require(_0x6202('0x1'));var BPromise=require(_0x6202('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6202('0x3'));var db=require(_0x6202('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x6202('0x5'))(_0x6202('0x6'));var config=require(_0x6202('0x7'));var jayson=require(_0x6202('0x8'));var client=jayson[_0x6202('0x9')][_0x6202('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x31329b,_0x3e2d8e,_0x4c8fea){return new BPromise(function(_0x3a5ac4,_0x4349d5){return client[_0x6202('0xb')](_0x31329b,_0x4c8fea)[_0x6202('0xc')](function(_0x19efd5){logger[_0x6202('0xd')](_0x6202('0xe'),_0x3e2d8e,_0x6202('0xf'));logger[_0x6202('0x10')](_0x6202('0x11'),_0x3e2d8e,_0x6202('0xf'),JSON[_0x6202('0x12')](_0x19efd5));if(_0x19efd5['error']){if(_0x19efd5[_0x6202('0x13')][_0x6202('0x14')]===0x1f4){logger['error'](_0x6202('0xe'),_0x3e2d8e,_0x19efd5[_0x6202('0x13')]['message']);return _0x4349d5(_0x19efd5[_0x6202('0x13')]['message']);}logger[_0x6202('0x13')](_0x6202('0xe'),_0x3e2d8e,_0x19efd5['error']['message']);return _0x3a5ac4(_0x19efd5[_0x6202('0x13')][_0x6202('0x15')]);}else{logger['info'](_0x6202('0xe'),_0x3e2d8e,'request\x20sent');_0x3a5ac4(_0x19efd5[_0x6202('0x16')][_0x6202('0x15')]);}})[_0x6202('0x17')](function(_0x1953a4){logger[_0x6202('0x13')](_0x6202('0xe'),_0x3e2d8e,_0x1953a4);_0x4349d5(_0x1953a4);});});}exports[_0x6202('0x18')]=function(_0x46e7a1){var _0x4fa6fe=this;return new Promise(function(_0x27d7bf,_0x52f4bc){return db[_0x6202('0x19')][_0x6202('0x1a')](_0x46e7a1[_0x6202('0x1b')],{'raw':_0x46e7a1[_0x6202('0x1c')]?_0x46e7a1['options'][_0x6202('0x1d')]===undefined?!![]:![]:!![]})[_0x6202('0xc')](function(_0x1d3d07){logger[_0x6202('0xd')]('CreateVoiceTransferReport',_0x46e7a1);logger['debug'](_0x6202('0x18'),_0x46e7a1,JSON[_0x6202('0x12')](_0x1d3d07));_0x27d7bf(_0x1d3d07);})['catch'](function(_0x500a95){logger[_0x6202('0x13')]('CreateVoiceTransferReport',_0x500a95['message'],_0x46e7a1);_0x52f4bc(_0x4fa6fe[_0x6202('0x13')](0x1f4,_0x500a95[_0x6202('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd89a=['canUpdate','originate','/hangup','hangup','/answer','answer','/hold','hold','/unhold','unhold','/transfer','exports','Router','./webbar.controller','post','/originate','isAuthenticated'];(function(_0x4b18ea,_0x2c070a){var _0x28ec1c=function(_0x251208){while(--_0x251208){_0x4b18ea['push'](_0x4b18ea['shift']());}};_0x28ec1c(++_0x2c070a);}(_0xd89a,0x182));var _0xad89=function(_0x90b1b1,_0x3c996d){_0x90b1b1=_0x90b1b1-0x0;var _0x2f23dc=_0xd89a[_0x90b1b1];return _0x2f23dc;};'use strict';var express=require('express');var router=express[_0xad89('0x0')]();var auth=require('../../components/auth/service');var controller=require(_0xad89('0x1'));router[_0xad89('0x2')](_0xad89('0x3'),auth[_0xad89('0x4')](),auth[_0xad89('0x5')](),controller[_0xad89('0x6')]);router[_0xad89('0x2')](_0xad89('0x7'),auth[_0xad89('0x4')](),auth[_0xad89('0x5')](),controller[_0xad89('0x8')]);router[_0xad89('0x2')](_0xad89('0x9'),auth[_0xad89('0x4')](),auth[_0xad89('0x5')](),controller[_0xad89('0xa')]);router['post'](_0xad89('0xb'),auth[_0xad89('0x4')](),auth[_0xad89('0x5')](),controller[_0xad89('0xc')]);router[_0xad89('0x2')](_0xad89('0xd'),auth['isAuthenticated'](),auth[_0xad89('0x5')](),controller[_0xad89('0xe')]);router[_0xad89('0x2')]('/calls',auth[_0xad89('0x4')](),auth['canUpdate'](),controller['calls']);router['post'](_0xad89('0xf'),auth[_0xad89('0x4')](),auth['canUpdate'](),controller['transfer']);module[_0xad89('0x10')]=router;
\ No newline at end of file
+var _0x3511=['answer','/unhold','unhold','calls','transfer','exports','express','../../components/auth/service','/originate','isAuthenticated','canUpdate','originate','/hangup','hangup','post'];(function(_0x45d55e,_0x2fede3){var _0x29812a=function(_0x3c6830){while(--_0x3c6830){_0x45d55e['push'](_0x45d55e['shift']());}};_0x29812a(++_0x2fede3);}(_0x3511,0x141));var _0x1351=function(_0x37b2db,_0x361844){_0x37b2db=_0x37b2db-0x0;var _0x34e762=_0x3511[_0x37b2db];return _0x34e762;};'use strict';var express=require(_0x1351('0x0'));var router=express['Router']();var auth=require(_0x1351('0x1'));var controller=require('./webbar.controller');router['post'](_0x1351('0x2'),auth[_0x1351('0x3')](),auth[_0x1351('0x4')](),controller[_0x1351('0x5')]);router['post'](_0x1351('0x6'),auth[_0x1351('0x3')](),auth[_0x1351('0x4')](),controller[_0x1351('0x7')]);router[_0x1351('0x8')]('/answer',auth[_0x1351('0x3')](),auth[_0x1351('0x4')](),controller[_0x1351('0x9')]);router[_0x1351('0x8')]('/hold',auth['isAuthenticated'](),auth['canUpdate'](),controller['hold']);router[_0x1351('0x8')](_0x1351('0xa'),auth['isAuthenticated'](),auth[_0x1351('0x4')](),controller[_0x1351('0xb')]);router[_0x1351('0x8')]('/calls',auth[_0x1351('0x3')](),auth[_0x1351('0x4')](),controller[_0x1351('0xc')]);router['post']('/transfer',auth[_0x1351('0x3')](),auth['canUpdate'](),controller[_0x1351('0xd')]);module[_0x1351('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x422f=['transfer','transfer\x20fired:','transferNumber','webbar:transfer','transfer\x20executed!','lodash','../../config/environment','util','jayson/promise','client','http','../../config/logger','webbarapi','ioredis','redis','defaults','socket.io-emitter','validate','number','userId\x20is\x20required','callNumber\x20is\x20required','string','sessionId\x20is\x20required','transferNumber\x20is\x20required','stringify','emit','log','handleError:','name','status','send','request','error','code','message','result','catch','findOne','agent','then','all','filter','UserId','sessionId\x20','\x20not\x20found!','info','originate\x20fired:','body','length','json','userId','callbackUrl','entityFound:','format','user:%s','webbar:originate','hangup\x20fired:','sessionId','hangup\x20executed!','answer','webbar:answer','answer\x20executed!','hold','hold\x20fired:','webbar:hold','hold\x20executed!','unhold','unhold\x20fired:','unhold\x20executed!','calls','calls\x20fired:','VoiceChannels','rows','conference','conference\x20fired:'];(function(_0x2005f1,_0x3e8f34){var _0x56f59c=function(_0x1949a6){while(--_0x1949a6){_0x2005f1['push'](_0x2005f1['shift']());}};_0x56f59c(++_0x3e8f34);}(_0x422f,0x1c7));var _0xf422=function(_0x44e016,_0x2a4ac3){_0x44e016=_0x44e016-0x0;var _0x5bc0a0=_0x422f[_0x44e016];return _0x5bc0a0;};'use strict';var path=require('path');var fs=require('fs');var _=require(_0xf422('0x0'));var db=require('../../mysqldb')['db'];var config=require(_0xf422('0x1'));var util=require(_0xf422('0x2'));var BPromise=require('bluebird');var jayson=require(_0xf422('0x3'));var amiClient=jayson[_0xf422('0x4')][_0xf422('0x5')]({'port':0x232a});var logger=require(_0xf422('0x6'))(_0xf422('0x7'));var Redis=require(_0xf422('0x8'));config[_0xf422('0x9')]=_[_0xf422('0xa')](config[_0xf422('0x9')],{'host':'localhost','port':0x18eb});var io=require(_0xf422('0xb'))(new Redis(config[_0xf422('0x9')]));var Schema=require(_0xf422('0xc'));var originateValidation=new Schema({'userId':{'type':_0xf422('0xd'),'required':[!![],_0xf422('0xe')]},'callNumber':{'type':'string','required':[!![],_0xf422('0xf')]},'callerId':{'type':'string'},'callbackUrl':{'type':'string'}});var hangupValidation=new Schema({'userId':{'type':_0xf422('0xd'),'required':[!![],_0xf422('0xe')]},'sessionId':{'type':_0xf422('0x10'),'required':![]}});var answerValidation=new Schema({'userId':{'type':_0xf422('0xd'),'required':[!![],_0xf422('0xe')]},'sessionId':{'type':'string','required':![]}});var transferValidation=new Schema({'userId':{'type':_0xf422('0xd'),'required':[!![],_0xf422('0xe')]},'sessionId':{'type':'string','required':[!![],_0xf422('0x11')]},'transferNumber':{'type':_0xf422('0x10'),'required':[!![],_0xf422('0x12')]}});var holdValidation=new Schema({'userId':{'type':_0xf422('0xd'),'required':[!![],_0xf422('0xe')]},'sessionId':{'type':_0xf422('0x10'),'required':![]}});var unholdValidation=new Schema({'userId':{'type':_0xf422('0xd'),'required':[!![],_0xf422('0xe')]},'sessionId':{'type':_0xf422('0x10'),'required':![]}});var callsValidation=new Schema({'userId':{'type':'number','required':[!![],'userId\x20is\x20required']}});var conferenceValidation=new Schema({'userId':{'type':'number','required':[!![],_0xf422('0xe')]}});function emit(_0x30b70a,_0x21a35d,_0xdf4434){logger['info'](_0x30b70a,_0x21a35d,JSON[_0xf422('0x13')](_0xdf4434));io['to'](_0x30b70a)[_0xf422('0x14')](_0x21a35d,_0xdf4434);}function handleError(_0x76e4b1){return function(_0x2ae133){console[_0xf422('0x15')](_0xf422('0x16'),_0x2ae133,_0x2ae133 instanceof RangeError);logger['error'](_0x2ae133['stack']);if(_0x2ae133 instanceof RangeError){if(_0x2ae133[_0xf422('0x17')]){delete _0x2ae133[_0xf422('0x17')];}_0x76e4b1[_0xf422('0x18')](0x194)['send'](_0x2ae133);}else{if(_0x2ae133[_0xf422('0x17')]){delete _0x2ae133['name'];}_0x76e4b1[_0xf422('0x18')](0x1f4)[_0xf422('0x19')](_0x2ae133);}};}function checkError(){return function(_0x36b7e7){if(!_0x36b7e7){throw new RangeError('NotFound');}return _0x36b7e7;};}function respondWithRpcPromise(_0xf2d06b,_0x3cdd93){return new BPromise(function(_0x511529,_0x4b80a0){var _0x268575=amiClient;return _0x268575[_0xf422('0x1a')](_0xf2d06b,_0x3cdd93)['then'](function(_0x25b6a5){if(_0x25b6a5['error']){if(_0x25b6a5[_0xf422('0x1b')][_0xf422('0x1c')]===0x1f4){return _0x4b80a0(_0x25b6a5[_0xf422('0x1b')][_0xf422('0x1d')]);}return _0x511529(_0x25b6a5[_0xf422('0x1b')][_0xf422('0x1d')]);}else{_0x511529(_0x25b6a5[_0xf422('0x1e')]);}})[_0xf422('0x1f')](function(_0x5dcab4){_0x4b80a0(_0x5dcab4);});});}function getAgent(_0x1125ce){return db['User'][_0xf422('0x20')]({'where':{'id':_0x1125ce,'role':_0xf422('0x21')}})[_0xf422('0x22')](checkError());}function getAgentCheckSession(_0x3d3fe4,_0xaa3e7e){return new BPromise(function(_0x31f439,_0x2d0053){var _0x4ebfe9=respondWithRpcPromise('VoiceChannels');var _0x35d1fa=getAgent(_0x3d3fe4);Promise[_0xf422('0x23')]([_0x4ebfe9,_0x35d1fa])[_0xf422('0x22')](function(_0x33ef63){var _0xefb99e=_0x33ef63[0x0];var _0x48e0c7=_0x33ef63[0x1];var _0x6d22f1=_[_0xf422('0x24')](_0xefb99e['rows'],function(_0x5f0186){return _0x5f0186[_0xf422('0x25')]==_0x48e0c7['id']&&_0x5f0186['sessionId']==_0xaa3e7e;});if(_0x6d22f1['length']==0x1){_0x31f439(_0x48e0c7);}else{_0x2d0053(new RangeError(_0xf422('0x26')+_0xaa3e7e+_0xf422('0x27')));}});});}exports['originate']=function(_0x261e29,_0x2f5b75){logger[_0xf422('0x28')](_0xf422('0x29'),_0x261e29[_0xf422('0x2a')]);var _0x4d8670=originateValidation[_0xf422('0xc')](_0x261e29['body']);if(_0x4d8670[_0xf422('0x2b')]>0x0){return _0x2f5b75[_0xf422('0x18')](0x190)[_0xf422('0x2c')](_0x4d8670);}var _0x1869a4=_0x261e29[_0xf422('0x2a')][_0xf422('0x2d')];var _0xbd95dd=_0x261e29['body']['callNumber'];var _0x2b35d2=_0x261e29[_0xf422('0x2a')]['callerId'];var _0x259bb2=_0x261e29[_0xf422('0x2a')][_0xf422('0x2e')];return getAgent(_0x1869a4)[_0xf422('0x22')](function(_0x12ddbf){logger[_0xf422('0x28')](_0xf422('0x2f'),_0x12ddbf[_0xf422('0x17')]);emit(util[_0xf422('0x30')](_0xf422('0x31'),_0x12ddbf[_0xf422('0x17')]),_0xf422('0x32'),{'callNumber':_0xbd95dd,'callerId':_0x2b35d2,'callbackUrl':_0x259bb2});return _0x2f5b75[_0xf422('0x18')](0xc8)[_0xf422('0x2c')]({'error':![],'message':'originate\x20executed!'});})['catch'](handleError(_0x2f5b75));};exports['hangup']=function(_0x2c9861,_0x2ae7e1){logger['info'](_0xf422('0x33'),_0x2c9861['body']);var _0x774834=hangupValidation[_0xf422('0xc')](_0x2c9861['body']);if(_0x774834[_0xf422('0x2b')]>0x0){return _0x2ae7e1[_0xf422('0x18')](0x190)[_0xf422('0x2c')](_0x774834);}var _0x511fc7=_0x2c9861[_0xf422('0x2a')]['userId'];var _0x567667=_0x2c9861['body'][_0xf422('0x34')];return getAgent(_0x511fc7)[_0xf422('0x22')](function(_0x2133a5){logger[_0xf422('0x28')](_0xf422('0x2f'),_0x2133a5[_0xf422('0x17')]);emit(util[_0xf422('0x30')](_0xf422('0x31'),_0x2133a5['name']),'webbar:hangup',{'sessionId':_0x567667});return _0x2ae7e1[_0xf422('0x18')](0xc8)[_0xf422('0x2c')]({'error':![],'message':_0xf422('0x35')});})[_0xf422('0x1f')](handleError(_0x2ae7e1));};exports[_0xf422('0x36')]=function(_0x35eac8,_0x56d615){logger[_0xf422('0x28')]('answer\x20fired:',_0x35eac8[_0xf422('0x2a')]);var _0x391e3c=answerValidation['validate'](_0x35eac8[_0xf422('0x2a')]);if(_0x391e3c[_0xf422('0x2b')]>0x0){return _0x56d615[_0xf422('0x18')](0x190)[_0xf422('0x2c')](_0x391e3c);}var _0x1658d0=_0x35eac8['body'][_0xf422('0x2d')];var _0x1e20a2=_0x35eac8[_0xf422('0x2a')][_0xf422('0x34')];return getAgent(_0x1658d0)[_0xf422('0x22')](function(_0x5ea94e){logger[_0xf422('0x28')](_0xf422('0x2f'),_0x5ea94e['name']);emit(util[_0xf422('0x30')]('user:%s',_0x5ea94e[_0xf422('0x17')]),_0xf422('0x37'),{'sessionId':_0x1e20a2});return _0x56d615[_0xf422('0x18')](0xc8)[_0xf422('0x2c')]({'error':![],'message':_0xf422('0x38')});})[_0xf422('0x1f')](handleError(_0x56d615));};exports[_0xf422('0x39')]=function(_0xd77d9,_0x2ad164){logger[_0xf422('0x28')](_0xf422('0x3a'),_0xd77d9[_0xf422('0x2a')]);var _0x154e72=holdValidation[_0xf422('0xc')](_0xd77d9[_0xf422('0x2a')]);if(_0x154e72['length']>0x0){return _0x2ad164['status'](0x190)[_0xf422('0x2c')](_0x154e72);}var _0x2c2ce9=_0xd77d9[_0xf422('0x2a')]['userId'];var _0x15967f=_0xd77d9[_0xf422('0x2a')][_0xf422('0x34')];return getAgent(_0x2c2ce9)[_0xf422('0x22')](function(_0x1f3a30){logger[_0xf422('0x28')](_0xf422('0x2f'),_0x1f3a30['name']);emit(util[_0xf422('0x30')]('user:%s',_0x1f3a30[_0xf422('0x17')]),_0xf422('0x3b'),{'sessionId':_0x15967f});return _0x2ad164['status'](0xc8)[_0xf422('0x2c')]({'error':![],'message':_0xf422('0x3c')});})[_0xf422('0x1f')](handleError(_0x2ad164));};exports[_0xf422('0x3d')]=function(_0x2df71a,_0x5c3cb8){logger['info'](_0xf422('0x3e'),_0x2df71a['body']);var _0x4429c6=unholdValidation[_0xf422('0xc')](_0x2df71a[_0xf422('0x2a')]);if(_0x4429c6[_0xf422('0x2b')]>0x0){return _0x5c3cb8['status'](0x190)['json'](_0x4429c6);}var _0x44448c=_0x2df71a[_0xf422('0x2a')][_0xf422('0x2d')];var _0xddcd6c=_0x2df71a[_0xf422('0x2a')][_0xf422('0x34')];return getAgent(_0x44448c)['then'](function(_0x315e79){logger['info'](_0xf422('0x2f'),_0x315e79[_0xf422('0x17')]);emit(util[_0xf422('0x30')](_0xf422('0x31'),_0x315e79['name']),'webbar:unhold',{'sessionId':_0xddcd6c});return _0x5c3cb8[_0xf422('0x18')](0xc8)[_0xf422('0x2c')]({'error':![],'message':_0xf422('0x3f')});})[_0xf422('0x1f')](handleError(_0x5c3cb8));};exports[_0xf422('0x40')]=function(_0x2ce919,_0x90f97f){logger['info'](_0xf422('0x41'),_0x90f97f[_0xf422('0x2a')]);var _0x19e687=callsValidation[_0xf422('0xc')](_0x2ce919[_0xf422('0x2a')]);if(_0x19e687[_0xf422('0x2b')]>0x0){return _0x90f97f[_0xf422('0x18')](0x190)[_0xf422('0x2c')](_0x19e687);}var _0x36f8ae=_0x2ce919[_0xf422('0x2a')]['userId'];var _0x4419e6=respondWithRpcPromise(_0xf422('0x42'));var _0x23ee77=getAgent(_0x36f8ae);return Promise[_0xf422('0x23')]([_0x4419e6,_0x23ee77])[_0xf422('0x22')](function(_0x5b14dd){var _0x235fff=_0x5b14dd[0x0];var _0x2b6a57=_0x5b14dd[0x1];var _0x4fa193=_[_0xf422('0x24')](_0x235fff[_0xf422('0x43')],function(_0x39fa95){return _0x39fa95[_0xf422('0x25')]==_0x2b6a57['id'];});return _0x90f97f[_0xf422('0x18')](0xc8)[_0xf422('0x2c')]({'count':_0x4fa193[_0xf422('0x2b')],'rows':_0x4fa193});})['catch'](handleError(_0x90f97f));};exports[_0xf422('0x44')]=function(_0x477a65,_0x462376){logger['info'](_0xf422('0x45'),_0x477a65[_0xf422('0x2a')]);var _0x3d9946=conferenceValidation[_0xf422('0xc')](_0x477a65[_0xf422('0x2a')]);if(_0x3d9946[_0xf422('0x2b')]>0x0){return _0x462376[_0xf422('0x18')](0x190)[_0xf422('0x2c')](_0x3d9946);}var _0x3f2095=_0x477a65[_0xf422('0x2a')][_0xf422('0x2d')];return getAgent(_0x3f2095)[_0xf422('0x22')](function(_0x28c6ac){logger[_0xf422('0x28')](_0xf422('0x2f'),_0x28c6ac[_0xf422('0x17')]);emit(util[_0xf422('0x30')](_0xf422('0x31'),_0x28c6ac[_0xf422('0x17')]),'webbar:conference');return _0x462376['status'](0xc8)[_0xf422('0x2c')]({'error':![],'message':'conference\x20executed!'});})[_0xf422('0x1f')](handleError(_0x462376));};exports[_0xf422('0x46')]=function(_0x416e40,_0x14904a){logger['info'](_0xf422('0x47'),_0x416e40[_0xf422('0x2a')]);var _0x2b1d8f=transferValidation['validate'](_0x416e40['body']);if(_0x2b1d8f[_0xf422('0x2b')]>0x0){return _0x14904a[_0xf422('0x18')](0x190)[_0xf422('0x2c')](_0x2b1d8f);}var _0x23d1b5=_0x416e40['body']['userId'];var _0x53f92e=_0x416e40[_0xf422('0x2a')][_0xf422('0x34')];var _0x3de5c5=_0x416e40[_0xf422('0x2a')][_0xf422('0x48')];return getAgent(_0x23d1b5)[_0xf422('0x22')](function(_0x3f165d){logger['info']('entityFound:',_0x3f165d['name']);emit(util[_0xf422('0x30')]('user:%s',_0x3f165d[_0xf422('0x17')]),_0xf422('0x49'),{'sessionId':_0x53f92e,'transferNumber':_0x3de5c5});return _0x14904a['status'](0xc8)[_0xf422('0x2c')]({'error':![],'message':_0xf422('0x4a')});})[_0xf422('0x1f')](handleError(_0x14904a));};
\ No newline at end of file
+var _0x9a19=['defaults','validate','number','callNumber\x20is\x20required','string','userId\x20is\x20required','sessionId\x20is\x20required','transferNumber\x20is\x20required','info','log','handleError:','error','stack','name','status','send','NotFound','then','message','result','catch','agent','filter','UserId','sessionId','length','sessionId\x20','\x20not\x20found!','originate','originate\x20fired:','json','body','userId','callNumber','callerId','entityFound:','format','user:%s','hangup','hangup\x20fired:','webbar:hangup','answer','answer\x20fired:','webbar:answer','answer\x20executed!','hold','hold\x20fired:','webbar:hold','unhold','unhold\x20fired:','calls','calls\x20fired:','VoiceChannels','rows','conference','conference\x20fired:','webbar:conference','transfer','webbar:transfer','transfer\x20executed!','path','lodash','../../mysqldb','util','bluebird','jayson/promise','client','http','../../config/logger','webbarapi','ioredis','redis'];(function(_0x4de4b0,_0x52bbd0){var _0x4101f7=function(_0x318492){while(--_0x318492){_0x4de4b0['push'](_0x4de4b0['shift']());}};_0x4101f7(++_0x52bbd0);}(_0x9a19,0x114));var _0x99a1=function(_0x2aa0e7,_0x4e5145){_0x2aa0e7=_0x2aa0e7-0x0;var _0x1472c0=_0x9a19[_0x2aa0e7];return _0x1472c0;};'use strict';var path=require(_0x99a1('0x0'));var fs=require('fs');var _=require(_0x99a1('0x1'));var db=require(_0x99a1('0x2'))['db'];var config=require('../../config/environment');var util=require(_0x99a1('0x3'));var BPromise=require(_0x99a1('0x4'));var jayson=require(_0x99a1('0x5'));var amiClient=jayson[_0x99a1('0x6')][_0x99a1('0x7')]({'port':0x232a});var logger=require(_0x99a1('0x8'))(_0x99a1('0x9'));var Redis=require(_0x99a1('0xa'));config[_0x99a1('0xb')]=_[_0x99a1('0xc')](config[_0x99a1('0xb')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));var Schema=require(_0x99a1('0xd'));var originateValidation=new Schema({'userId':{'type':_0x99a1('0xe'),'required':[!![],'userId\x20is\x20required']},'callNumber':{'type':'string','required':[!![],_0x99a1('0xf')]},'callerId':{'type':_0x99a1('0x10')},'callbackUrl':{'type':_0x99a1('0x10')}});var hangupValidation=new Schema({'userId':{'type':_0x99a1('0xe'),'required':[!![],_0x99a1('0x11')]},'sessionId':{'type':'string','required':![]}});var answerValidation=new Schema({'userId':{'type':_0x99a1('0xe'),'required':[!![],_0x99a1('0x11')]},'sessionId':{'type':_0x99a1('0x10'),'required':![]}});var transferValidation=new Schema({'userId':{'type':_0x99a1('0xe'),'required':[!![],_0x99a1('0x11')]},'sessionId':{'type':_0x99a1('0x10'),'required':[!![],_0x99a1('0x12')]},'transferNumber':{'type':_0x99a1('0x10'),'required':[!![],_0x99a1('0x13')]}});var holdValidation=new Schema({'userId':{'type':_0x99a1('0xe'),'required':[!![],_0x99a1('0x11')]},'sessionId':{'type':_0x99a1('0x10'),'required':![]}});var unholdValidation=new Schema({'userId':{'type':_0x99a1('0xe'),'required':[!![],_0x99a1('0x11')]},'sessionId':{'type':_0x99a1('0x10'),'required':![]}});var callsValidation=new Schema({'userId':{'type':'number','required':[!![],_0x99a1('0x11')]}});var conferenceValidation=new Schema({'userId':{'type':_0x99a1('0xe'),'required':[!![],_0x99a1('0x11')]}});function emit(_0x3d40cc,_0x384f05,_0x33e2c1){logger[_0x99a1('0x14')](_0x3d40cc,_0x384f05,JSON['stringify'](_0x33e2c1));io['to'](_0x3d40cc)['emit'](_0x384f05,_0x33e2c1);}function handleError(_0x6702d8){return function(_0xbf62f1){console[_0x99a1('0x15')](_0x99a1('0x16'),_0xbf62f1,_0xbf62f1 instanceof RangeError);logger[_0x99a1('0x17')](_0xbf62f1[_0x99a1('0x18')]);if(_0xbf62f1 instanceof RangeError){if(_0xbf62f1[_0x99a1('0x19')]){delete _0xbf62f1[_0x99a1('0x19')];}_0x6702d8[_0x99a1('0x1a')](0x194)[_0x99a1('0x1b')](_0xbf62f1);}else{if(_0xbf62f1[_0x99a1('0x19')]){delete _0xbf62f1['name'];}_0x6702d8[_0x99a1('0x1a')](0x1f4)[_0x99a1('0x1b')](_0xbf62f1);}};}function checkError(){return function(_0x5bed38){if(!_0x5bed38){throw new RangeError(_0x99a1('0x1c'));}return _0x5bed38;};}function respondWithRpcPromise(_0x53093d,_0x458ed3){return new BPromise(function(_0x2927b0,_0x2d6f20){var _0x2d3b82=amiClient;return _0x2d3b82['request'](_0x53093d,_0x458ed3)[_0x99a1('0x1d')](function(_0x1268a7){if(_0x1268a7['error']){if(_0x1268a7[_0x99a1('0x17')]['code']===0x1f4){return _0x2d6f20(_0x1268a7[_0x99a1('0x17')][_0x99a1('0x1e')]);}return _0x2927b0(_0x1268a7[_0x99a1('0x17')][_0x99a1('0x1e')]);}else{_0x2927b0(_0x1268a7[_0x99a1('0x1f')]);}})[_0x99a1('0x20')](function(_0x4fe7f7){_0x2d6f20(_0x4fe7f7);});});}function getAgent(_0x114b38){return db['User']['findOne']({'where':{'id':_0x114b38,'role':_0x99a1('0x21')}})[_0x99a1('0x1d')](checkError());}function getAgentCheckSession(_0xa6799b,_0x15a0b6){return new BPromise(function(_0x25d560,_0x309b93){var _0x183037=respondWithRpcPromise('VoiceChannels');var _0xf41b0d=getAgent(_0xa6799b);Promise['all']([_0x183037,_0xf41b0d])[_0x99a1('0x1d')](function(_0x1137f2){var _0x26fbae=_0x1137f2[0x0];var _0x523668=_0x1137f2[0x1];var _0x371edf=_[_0x99a1('0x22')](_0x26fbae['rows'],function(_0x37514e){return _0x37514e[_0x99a1('0x23')]==_0x523668['id']&&_0x37514e[_0x99a1('0x24')]==_0x15a0b6;});if(_0x371edf[_0x99a1('0x25')]==0x1){_0x25d560(_0x523668);}else{_0x309b93(new RangeError(_0x99a1('0x26')+_0x15a0b6+_0x99a1('0x27')));}});});}exports[_0x99a1('0x28')]=function(_0x26c23c,_0x52da8d){logger['info'](_0x99a1('0x29'),_0x26c23c['body']);var _0x38e383=originateValidation[_0x99a1('0xd')](_0x26c23c['body']);if(_0x38e383[_0x99a1('0x25')]>0x0){return _0x52da8d[_0x99a1('0x1a')](0x190)[_0x99a1('0x2a')](_0x38e383);}var _0x547ed3=_0x26c23c[_0x99a1('0x2b')][_0x99a1('0x2c')];var _0x3081cd=_0x26c23c[_0x99a1('0x2b')][_0x99a1('0x2d')];var _0x432fbc=_0x26c23c[_0x99a1('0x2b')][_0x99a1('0x2e')];var _0x215c18=_0x26c23c[_0x99a1('0x2b')]['callbackUrl'];return getAgent(_0x547ed3)['then'](function(_0x46e3f2){logger[_0x99a1('0x14')](_0x99a1('0x2f'),_0x46e3f2[_0x99a1('0x19')]);emit(util[_0x99a1('0x30')](_0x99a1('0x31'),_0x46e3f2[_0x99a1('0x19')]),'webbar:originate',{'callNumber':_0x3081cd,'callerId':_0x432fbc,'callbackUrl':_0x215c18});return _0x52da8d[_0x99a1('0x1a')](0xc8)[_0x99a1('0x2a')]({'error':![],'message':'originate\x20executed!'});})[_0x99a1('0x20')](handleError(_0x52da8d));};exports[_0x99a1('0x32')]=function(_0x391afa,_0x3cd1a0){logger[_0x99a1('0x14')](_0x99a1('0x33'),_0x391afa[_0x99a1('0x2b')]);var _0x2f8135=hangupValidation[_0x99a1('0xd')](_0x391afa[_0x99a1('0x2b')]);if(_0x2f8135[_0x99a1('0x25')]>0x0){return _0x3cd1a0[_0x99a1('0x1a')](0x190)[_0x99a1('0x2a')](_0x2f8135);}var _0x5018e9=_0x391afa['body']['userId'];var _0x29e884=_0x391afa[_0x99a1('0x2b')][_0x99a1('0x24')];return getAgent(_0x5018e9)[_0x99a1('0x1d')](function(_0x40613a){logger['info'](_0x99a1('0x2f'),_0x40613a[_0x99a1('0x19')]);emit(util[_0x99a1('0x30')]('user:%s',_0x40613a['name']),_0x99a1('0x34'),{'sessionId':_0x29e884});return _0x3cd1a0[_0x99a1('0x1a')](0xc8)[_0x99a1('0x2a')]({'error':![],'message':'hangup\x20executed!'});})[_0x99a1('0x20')](handleError(_0x3cd1a0));};exports[_0x99a1('0x35')]=function(_0x1b5d2d,_0x394762){logger[_0x99a1('0x14')](_0x99a1('0x36'),_0x1b5d2d[_0x99a1('0x2b')]);var _0x29d0a0=answerValidation[_0x99a1('0xd')](_0x1b5d2d[_0x99a1('0x2b')]);if(_0x29d0a0['length']>0x0){return _0x394762[_0x99a1('0x1a')](0x190)[_0x99a1('0x2a')](_0x29d0a0);}var _0x3d5373=_0x1b5d2d['body'][_0x99a1('0x2c')];var _0x51536d=_0x1b5d2d[_0x99a1('0x2b')][_0x99a1('0x24')];return getAgent(_0x3d5373)[_0x99a1('0x1d')](function(_0x3d7ec7){logger[_0x99a1('0x14')](_0x99a1('0x2f'),_0x3d7ec7['name']);emit(util[_0x99a1('0x30')]('user:%s',_0x3d7ec7[_0x99a1('0x19')]),_0x99a1('0x37'),{'sessionId':_0x51536d});return _0x394762[_0x99a1('0x1a')](0xc8)[_0x99a1('0x2a')]({'error':![],'message':_0x99a1('0x38')});})[_0x99a1('0x20')](handleError(_0x394762));};exports[_0x99a1('0x39')]=function(_0x3861b6,_0x61c259){logger[_0x99a1('0x14')](_0x99a1('0x3a'),_0x3861b6['body']);var _0x3c1f55=holdValidation[_0x99a1('0xd')](_0x3861b6['body']);if(_0x3c1f55[_0x99a1('0x25')]>0x0){return _0x61c259[_0x99a1('0x1a')](0x190)[_0x99a1('0x2a')](_0x3c1f55);}var _0x2e377b=_0x3861b6[_0x99a1('0x2b')][_0x99a1('0x2c')];var _0x2e3bef=_0x3861b6['body'][_0x99a1('0x24')];return getAgent(_0x2e377b)['then'](function(_0x1d4d3f){logger[_0x99a1('0x14')]('entityFound:',_0x1d4d3f['name']);emit(util[_0x99a1('0x30')](_0x99a1('0x31'),_0x1d4d3f[_0x99a1('0x19')]),_0x99a1('0x3b'),{'sessionId':_0x2e3bef});return _0x61c259[_0x99a1('0x1a')](0xc8)['json']({'error':![],'message':'hold\x20executed!'});})['catch'](handleError(_0x61c259));};exports[_0x99a1('0x3c')]=function(_0x4ae90e,_0x463e49){logger[_0x99a1('0x14')](_0x99a1('0x3d'),_0x4ae90e[_0x99a1('0x2b')]);var _0x1059b1=unholdValidation['validate'](_0x4ae90e[_0x99a1('0x2b')]);if(_0x1059b1[_0x99a1('0x25')]>0x0){return _0x463e49[_0x99a1('0x1a')](0x190)['json'](_0x1059b1);}var _0x81e218=_0x4ae90e['body']['userId'];var _0x1b9598=_0x4ae90e[_0x99a1('0x2b')][_0x99a1('0x24')];return getAgent(_0x81e218)[_0x99a1('0x1d')](function(_0x11632d){logger[_0x99a1('0x14')](_0x99a1('0x2f'),_0x11632d[_0x99a1('0x19')]);emit(util[_0x99a1('0x30')]('user:%s',_0x11632d[_0x99a1('0x19')]),'webbar:unhold',{'sessionId':_0x1b9598});return _0x463e49[_0x99a1('0x1a')](0xc8)[_0x99a1('0x2a')]({'error':![],'message':'unhold\x20executed!'});})[_0x99a1('0x20')](handleError(_0x463e49));};exports[_0x99a1('0x3e')]=function(_0x469e10,_0x2b2d63){logger[_0x99a1('0x14')](_0x99a1('0x3f'),_0x2b2d63[_0x99a1('0x2b')]);var _0x1a5658=callsValidation[_0x99a1('0xd')](_0x469e10[_0x99a1('0x2b')]);if(_0x1a5658[_0x99a1('0x25')]>0x0){return _0x2b2d63[_0x99a1('0x1a')](0x190)['json'](_0x1a5658);}var _0x4f64b7=_0x469e10[_0x99a1('0x2b')][_0x99a1('0x2c')];var _0x28caeb=respondWithRpcPromise(_0x99a1('0x40'));var _0x213719=getAgent(_0x4f64b7);return Promise['all']([_0x28caeb,_0x213719])[_0x99a1('0x1d')](function(_0x35f4a8){var _0x529f66=_0x35f4a8[0x0];var _0x6107cd=_0x35f4a8[0x1];var _0x95f20a=_[_0x99a1('0x22')](_0x529f66[_0x99a1('0x41')],function(_0x2b0e5f){return _0x2b0e5f['UserId']==_0x6107cd['id'];});return _0x2b2d63[_0x99a1('0x1a')](0xc8)[_0x99a1('0x2a')]({'count':_0x95f20a[_0x99a1('0x25')],'rows':_0x95f20a});})[_0x99a1('0x20')](handleError(_0x2b2d63));};exports[_0x99a1('0x42')]=function(_0x10289c,_0x59260e){logger[_0x99a1('0x14')](_0x99a1('0x43'),_0x10289c['body']);var _0x33feb9=conferenceValidation[_0x99a1('0xd')](_0x10289c[_0x99a1('0x2b')]);if(_0x33feb9[_0x99a1('0x25')]>0x0){return _0x59260e[_0x99a1('0x1a')](0x190)['json'](_0x33feb9);}var _0x52f450=_0x10289c['body']['userId'];return getAgent(_0x52f450)['then'](function(_0x38ce3c){logger[_0x99a1('0x14')]('entityFound:',_0x38ce3c['name']);emit(util[_0x99a1('0x30')]('user:%s',_0x38ce3c[_0x99a1('0x19')]),_0x99a1('0x44'));return _0x59260e[_0x99a1('0x1a')](0xc8)[_0x99a1('0x2a')]({'error':![],'message':'conference\x20executed!'});})[_0x99a1('0x20')](handleError(_0x59260e));};exports[_0x99a1('0x45')]=function(_0x11b1c1,_0x4fbfb3){logger[_0x99a1('0x14')]('transfer\x20fired:',_0x11b1c1[_0x99a1('0x2b')]);var _0x186615=transferValidation[_0x99a1('0xd')](_0x11b1c1[_0x99a1('0x2b')]);if(_0x186615[_0x99a1('0x25')]>0x0){return _0x4fbfb3['status'](0x190)['json'](_0x186615);}var _0x4fc962=_0x11b1c1[_0x99a1('0x2b')][_0x99a1('0x2c')];var _0x4ad713=_0x11b1c1['body'][_0x99a1('0x24')];var _0x2f5587=_0x11b1c1[_0x99a1('0x2b')]['transferNumber'];return getAgent(_0x4fc962)['then'](function(_0x2b8df8){logger['info'](_0x99a1('0x2f'),_0x2b8df8[_0x99a1('0x19')]);emit(util[_0x99a1('0x30')]('user:%s',_0x2b8df8[_0x99a1('0x19')]),_0x99a1('0x46'),{'sessionId':_0x4ad713,'transferNumber':_0x2f5587});return _0x4fbfb3['status'](0xc8)['json']({'error':![],'message':_0x99a1('0x47')});})['catch'](handleError(_0x4fbfb3));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1967=['addAnswer','addAgents','/:id/notify','notify','update','destroy','removeDispositions','delete','removeAnswers','removeAgents','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappAccount.controller','isAuthenticated','index','get','/describe','describe','/:id','show','/:id/dispositions','/:id/canned_answers','getAnswers','/:id/users','getAgents','/:id/applications','post','create'];(function(_0x5d7307,_0x289405){var _0x444d7d=function(_0x54e824){while(--_0x54e824){_0x5d7307['push'](_0x5d7307['shift']());}};_0x444d7d(++_0x289405);}(_0x1967,0x173));var _0x7196=function(_0x23272e,_0x2a4fa9){_0x23272e=_0x23272e-0x0;var _0x207a93=_0x1967[_0x23272e];return _0x207a93;};'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('0xc')](_0x7196('0x11'),auth['isAuthenticated'](),controller['getDispositions']);router[_0x7196('0xc')](_0x7196('0x12'),auth[_0x7196('0xa')](),controller[_0x7196('0x13')]);router[_0x7196('0xc')](_0x7196('0x14'),auth[_0x7196('0xa')](),controller[_0x7196('0x15')]);router[_0x7196('0xc')](_0x7196('0x16'),auth[_0x7196('0xa')](),controller['getApplications']);router[_0x7196('0x17')]('/',auth[_0x7196('0xa')](),controller[_0x7196('0x18')]);router[_0x7196('0x17')]('/:id/dispositions',auth[_0x7196('0xa')](),controller['addDisposition']);router[_0x7196('0x17')](_0x7196('0x12'),auth[_0x7196('0xa')](),controller[_0x7196('0x19')]);router[_0x7196('0x17')](_0x7196('0x14'),auth[_0x7196('0xa')](),controller[_0x7196('0x1a')]);router[_0x7196('0x17')](_0x7196('0x16'),auth[_0x7196('0xa')](),controller['addApplications']);router['post'](_0x7196('0x1b'),controller[_0x7196('0x1c')]);router[_0x7196('0x17')]('/:id/send',auth[_0x7196('0xa')](),controller['send']);router['put'](_0x7196('0xf'),auth[_0x7196('0xa')](),controller[_0x7196('0x1d')]);router['delete']('/:id',auth[_0x7196('0xa')](),controller[_0x7196('0x1e')]);router['delete'](_0x7196('0x11'),auth[_0x7196('0xa')](),controller[_0x7196('0x1f')]);router[_0x7196('0x20')](_0x7196('0x12'),auth['isAuthenticated'](),controller[_0x7196('0x21')]);router['delete'](_0x7196('0x14'),auth[_0x7196('0xa')](),controller[_0x7196('0x22')]);module[_0x7196('0x23')]=router;
\ No newline at end of file
+var _0xc1c6=['addDisposition','/:id/canned_answers','addAnswer','addAgents','/:id/applications','addApplications','notify','/:id/send','send','put','/:id','update','delete','destroy','removeDispositions','removeAnswers','/:id/users','removeAgents','exports','multer','util','path','express','fs-extra','../../components/auth/service','../../components/interaction/service','get','index','/describe','isAuthenticated','describe','show','/:id/dispositions','getDispositions','getAnswers','getAgents','post','create'];(function(_0x3b2cff,_0x30142f){var _0xcbf490=function(_0x4a370c){while(--_0x4a370c){_0x3b2cff['push'](_0x3b2cff['shift']());}};_0xcbf490(++_0x30142f);}(_0xc1c6,0xf7));var _0x6c1c=function(_0x37694d,_0x528a83){_0x37694d=_0x37694d-0x0;var _0x150b7c=_0xc1c6[_0x37694d];return _0x150b7c;};'use strict';var multer=require(_0x6c1c('0x0'));var util=require(_0x6c1c('0x1'));var path=require(_0x6c1c('0x2'));var timeout=require('connect-timeout');var express=require(_0x6c1c('0x3'));var router=express['Router']();var fs_extra=require(_0x6c1c('0x4'));var auth=require(_0x6c1c('0x5'));var interaction=require(_0x6c1c('0x6'));var config=require('../../config/environment');var controller=require('./whatsappAccount.controller');router[_0x6c1c('0x7')]('/',auth['isAuthenticated'](),controller[_0x6c1c('0x8')]);router['get'](_0x6c1c('0x9'),auth[_0x6c1c('0xa')](),controller[_0x6c1c('0xb')]);router[_0x6c1c('0x7')]('/:id',auth[_0x6c1c('0xa')](),controller[_0x6c1c('0xc')]);router['get'](_0x6c1c('0xd'),auth[_0x6c1c('0xa')](),controller[_0x6c1c('0xe')]);router[_0x6c1c('0x7')]('/:id/canned_answers',auth[_0x6c1c('0xa')](),controller[_0x6c1c('0xf')]);router[_0x6c1c('0x7')]('/:id/users',auth[_0x6c1c('0xa')](),controller[_0x6c1c('0x10')]);router[_0x6c1c('0x7')]('/:id/applications',auth[_0x6c1c('0xa')](),controller['getApplications']);router[_0x6c1c('0x11')]('/',auth[_0x6c1c('0xa')](),controller[_0x6c1c('0x12')]);router[_0x6c1c('0x11')](_0x6c1c('0xd'),auth[_0x6c1c('0xa')](),controller[_0x6c1c('0x13')]);router[_0x6c1c('0x11')](_0x6c1c('0x14'),auth['isAuthenticated'](),controller[_0x6c1c('0x15')]);router[_0x6c1c('0x11')]('/:id/users',auth[_0x6c1c('0xa')](),controller[_0x6c1c('0x16')]);router['post'](_0x6c1c('0x17'),auth['isAuthenticated'](),controller[_0x6c1c('0x18')]);router[_0x6c1c('0x11')]('/:id/notify',controller[_0x6c1c('0x19')]);router['post'](_0x6c1c('0x1a'),auth[_0x6c1c('0xa')](),controller[_0x6c1c('0x1b')]);router[_0x6c1c('0x1c')](_0x6c1c('0x1d'),auth[_0x6c1c('0xa')](),controller[_0x6c1c('0x1e')]);router[_0x6c1c('0x1f')](_0x6c1c('0x1d'),auth[_0x6c1c('0xa')](),controller[_0x6c1c('0x20')]);router[_0x6c1c('0x1f')](_0x6c1c('0xd'),auth[_0x6c1c('0xa')](),controller[_0x6c1c('0x21')]);router[_0x6c1c('0x1f')](_0x6c1c('0x14'),auth[_0x6c1c('0xa')](),controller[_0x6c1c('0x22')]);router[_0x6c1c('0x1f')](_0x6c1c('0x23'),auth[_0x6c1c('0xa')](),controller[_0x6c1c('0x24')]);module[_0x6c1c('0x25')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf6e=['STRING','name','generate','ENUM','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','randomstring','exports'];(function(_0x454384,_0x4faed3){var _0x5ad4b5=function(_0xc09146){while(--_0xc09146){_0x454384['push'](_0x454384['shift']());}};_0x5ad4b5(++_0x4faed3);}(_0xcf6e,0xed));var _0xecf6=function(_0x20de0f,_0x400f8d){_0x20de0f=_0x20de0f-0x0;var _0x521dcb=_0xcf6e[_0x20de0f];return _0x521dcb;};'use strict';var Sequelize=require(_0xecf6('0x0'));var rs=require(_0xecf6('0x1'));module[_0xecf6('0x2')]={'name':{'type':Sequelize[_0xecf6('0x3')],'unique':_0xecf6('0x4'),'allowNull':![]},'key':{'type':Sequelize[_0xecf6('0x3')],'allowNull':![]},'remote':{'type':Sequelize[_0xecf6('0x3')],'allowNull':![]},'token':{'type':Sequelize['STRING'],'defaultValue':function(){return rs[_0xecf6('0x5')]();}},'phone':{'type':Sequelize[_0xecf6('0x3')]},'type':{'type':Sequelize[_0xecf6('0x6')]('twilio')},'accountSid':{'type':Sequelize[_0xecf6('0x3')]},'authToken':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize[_0xecf6('0x7')],'defaultValue':function(){return _0xecf6('0x8');}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'notificationShake':{'type':Sequelize[_0xecf6('0x9')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xecf6('0x9')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xecf6('0xa')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xecf6('0x9')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xecf6('0xa')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xecf6('0xa')],'comment':_0xecf6('0xb')},'mandatoryDisposition':{'type':Sequelize[_0xecf6('0x9')],'defaultValue':![],'comment':_0xecf6('0xc'),'set':function(_0x1e1df7){if(!_0x1e1df7){this[_0xecf6('0xd')](_0xecf6('0xe'),null);}this[_0xecf6('0xd')](_0xecf6('0xf'),_0x1e1df7);}},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x9f54=['Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','randomstring','STRING','name','generate','ENUM','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'];(function(_0x190379,_0x4eab72){var _0x19a4ea=function(_0x58a316){while(--_0x58a316){_0x190379['push'](_0x190379['shift']());}};_0x19a4ea(++_0x4eab72);}(_0x9f54,0x103));var _0x49f5=function(_0xa1d8eb,_0x553d61){_0xa1d8eb=_0xa1d8eb-0x0;var _0x457f3a=_0x9f54[_0xa1d8eb];return _0x457f3a;};'use strict';var Sequelize=require(_0x49f5('0x0'));var rs=require(_0x49f5('0x1'));module['exports']={'name':{'type':Sequelize[_0x49f5('0x2')],'unique':_0x49f5('0x3'),'allowNull':![]},'key':{'type':Sequelize['STRING'],'allowNull':![]},'remote':{'type':Sequelize['STRING'],'allowNull':![]},'token':{'type':Sequelize[_0x49f5('0x2')],'defaultValue':function(){return rs[_0x49f5('0x4')]();}},'phone':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x49f5('0x5')]('twilio')},'accountSid':{'type':Sequelize['STRING']},'authToken':{'type':Sequelize[_0x49f5('0x2')]},'notificationTemplate':{'type':Sequelize[_0x49f5('0x6')],'defaultValue':function(){return _0x49f5('0x7');}},'notificationSound':{'type':Sequelize[_0x49f5('0x8')],'defaultValue':![]},'notificationShake':{'type':Sequelize[_0x49f5('0x8')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x49f5('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x49f5('0x8')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x49f5('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x49f5('0x8')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x49f5('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x49f5('0x9')],'comment':_0x49f5('0xa')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0x49f5('0xb'),'set':function(_0x56e026){if(!_0x56e026){this[_0x49f5('0xc')](_0x49f5('0xd'),null);}this[_0x49f5('0xc')](_0x49f5('0xe'),_0x56e026);}},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x20fe=['Content-Type','text/xml','send','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','List','out','Messages','dataValues','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','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','register','jayson/promise','http','request','then','info','WhatsappAccount,\x20%s,\x20%s','request\x20sent','debug','WhatsappAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','json','offset','undefined','limit','set','Content-Range','apply','save','update','get','WhatsappAccounts','UserProfileResource','status','end','stack','name','index','Pause','mandatoryDispositionPause','map','rawAttributes','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','WhatsappAccount','count','includeAll','include','findAll','rows','show','params','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','destroy','describe','addDisposition','WhatsappAccountId','getDispositions','findOne','Disposition','nolimit','pick','removeDispositions','ids','CannedAnswer','getAnswers','removeAnswers','addAgents','omit','spread','userWhatsappAccount:save','removeAgents','isArray','userWhatsappAccount:remove','emit','getAgents','User','addApplications','sequelize','WhatsappApplication','bulkCreate','findAndCountAll','priority','getApplications','Applications','applications','orderBy','account','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','mobile','twilio','from','replace','Body','messageId','MessageSid','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','ListId','CmContact','DESC','Contacts','contact','interaction','created','autoclose','push','close','unmanaged','*,*,*,*','WhatsappMessage','ContactId','AttachmentId','unshift','agent','waitForTheAssignedAgent','Start','startRouting','entity\x20found','WhatsappAccount,\x20%s,\x20%s,\x20%s,\x20%s'];(function(_0x3cc9d9,_0x69ed38){var _0x1a425d=function(_0x44d109){while(--_0x44d109){_0x3cc9d9['push'](_0x3cc9d9['shift']());}};_0x1a425d(++_0x69ed38);}(_0x20fe,0xc4));var _0xe20f=function(_0x19a165,_0x1c3275){_0x19a165=_0x19a165-0x0;var _0x1f090e=_0x20fe[_0x19a165];return _0x1f090e;};'use strict';var emlformat=require(_0xe20f('0x0'));var rimraf=require(_0xe20f('0x1'));var zipdir=require(_0xe20f('0x2'));var jsonpatch=require(_0xe20f('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xe20f('0x4'));var Mustache=require(_0xe20f('0x5'));var util=require(_0xe20f('0x6'));var path=require(_0xe20f('0x7'));var sox=require(_0xe20f('0x8'));var csv=require(_0xe20f('0x9'));var ejs=require(_0xe20f('0xa'));var fs=require('fs');var fs_extra=require(_0xe20f('0xb'));var _=require(_0xe20f('0xc'));var squel=require(_0xe20f('0xd'));var crypto=require(_0xe20f('0xe'));var jsforce=require(_0xe20f('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xe20f('0x9'));var querystring=require(_0xe20f('0x10'));var Papa=require(_0xe20f('0x11'));var Redis=require(_0xe20f('0x12'));var authService=require(_0xe20f('0x13'));var qs=require(_0xe20f('0x14'));var as=require(_0xe20f('0x15'));var hardwareService=require(_0xe20f('0x16'));var logger=require(_0xe20f('0x17'))(_0xe20f('0x18'));var utils=require(_0xe20f('0x19'));var config=require(_0xe20f('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0xe20f('0x1b'))['db'];config[_0xe20f('0x1c')]=_[_0xe20f('0x1d')](config[_0xe20f('0x1c')],{'host':_0xe20f('0x1e'),'port':0x18eb});var socket=require(_0xe20f('0x1f'))(new Redis(config[_0xe20f('0x1c')]));require('./whatsappAccount.socket')[_0xe20f('0x20')](socket);var jayson=require(_0xe20f('0x21'));var client=jayson['client'][_0xe20f('0x22')]({'port':0x232c});function respondWithRpcPromise(_0x11688e,_0x2c081f,_0x4e866a,_0x29d894){return new BPromise(function(_0x5acb34,_0x193a0c){var _0x13efae=_0x29d894||client;return _0x13efae[_0xe20f('0x23')](_0x11688e,_0x4e866a)[_0xe20f('0x24')](function(_0x40e774){logger[_0xe20f('0x25')](_0xe20f('0x26'),_0x2c081f,_0xe20f('0x27'));logger[_0xe20f('0x28')](_0xe20f('0x29'),_0x2c081f,_0xe20f('0x27'),JSON[_0xe20f('0x2a')](_0x40e774));if(_0x40e774[_0xe20f('0x2b')]){if(_0x40e774[_0xe20f('0x2b')][_0xe20f('0x2c')]===0x1f4){logger[_0xe20f('0x2b')](_0xe20f('0x26'),_0x2c081f,_0x40e774['error'][_0xe20f('0x2d')]);return _0x193a0c(_0x40e774[_0xe20f('0x2b')][_0xe20f('0x2d')]);}logger[_0xe20f('0x2b')]('WhatsappAccount,\x20%s,\x20%s',_0x2c081f,_0x40e774[_0xe20f('0x2b')][_0xe20f('0x2d')]);return _0x5acb34(_0x40e774[_0xe20f('0x2b')][_0xe20f('0x2d')]);}else{logger[_0xe20f('0x25')](_0xe20f('0x26'),_0x2c081f,'request\x20sent');_0x5acb34(_0x40e774[_0xe20f('0x2e')]['message']);}})[_0xe20f('0x2f')](function(_0x22c4cc){logger[_0xe20f('0x2b')](_0xe20f('0x26'),_0x2c081f,_0x22c4cc);_0x193a0c(_0x22c4cc);});});}function respondWithStatusCode(_0x1f44a3,_0x4861b3){_0x4861b3=_0x4861b3||0xcc;return function(_0x459b0d){if(_0x459b0d){return _0x1f44a3[_0xe20f('0x30')](_0x4861b3);}return _0x1f44a3['status'](_0x4861b3)['end']();};}function respondWithResult(_0x15b4db,_0x336e5c){_0x336e5c=_0x336e5c||0xc8;return function(_0x39b367){if(_0x39b367){return _0x15b4db['status'](_0x336e5c)[_0xe20f('0x31')](_0x39b367);}};}function respondWithFilteredResult(_0x3be44f,_0x2bebb1){return function(_0x2bf7b9){if(_0x2bf7b9){var _0x1d708f=typeof _0x2bebb1[_0xe20f('0x32')]===_0xe20f('0x33')&&typeof _0x2bebb1[_0xe20f('0x34')]===_0xe20f('0x33');var _0x54a79b=_0x2bf7b9['count'];var _0x2e56ea=_0x1d708f?0x0:_0x2bebb1[_0xe20f('0x32')];var _0x373323=_0x1d708f?_0x2bf7b9['count']:_0x2bebb1['offset']+_0x2bebb1[_0xe20f('0x34')];var _0x1e4d4c;if(_0x373323>=_0x54a79b){_0x373323=_0x54a79b;_0x1e4d4c=0xc8;}else{_0x1e4d4c=0xce;}_0x3be44f['status'](_0x1e4d4c);return _0x3be44f[_0xe20f('0x35')](_0xe20f('0x36'),_0x2e56ea+'-'+_0x373323+'/'+_0x54a79b)[_0xe20f('0x31')](_0x2bf7b9);}return null;};}function patchUpdates(_0x374610){return function(_0x4ade24){try{jsonpatch[_0xe20f('0x37')](_0x4ade24,_0x374610,!![]);}catch(_0x17aa66){return BPromise['reject'](_0x17aa66);}return _0x4ade24[_0xe20f('0x38')]();};}function saveUpdates(_0x102536,_0x46c402){return function(_0x19704b){if(_0x19704b){return _0x19704b[_0xe20f('0x39')](_0x102536)['then'](function(_0x202675){return _0x202675;});}return null;};}function removeEntity(_0x1fe997,_0x557ec8){return function(_0x28c105){if(_0x28c105){return _0x28c105['destroy']()[_0xe20f('0x24')](function(){var _0xff4a7d=_0x28c105[_0xe20f('0x3a')]({'plain':!![]});var _0x25b101=_0xe20f('0x3b');return db[_0xe20f('0x3c')]['destroy']({'where':{'type':_0x25b101,'resourceId':_0xff4a7d['id']}})[_0xe20f('0x24')](function(){return _0x28c105;});})[_0xe20f('0x24')](function(){_0x1fe997[_0xe20f('0x3d')](0xcc)[_0xe20f('0x3e')]();});}};}function handleEntityNotFound(_0x54c4c0,_0x117b4c){return function(_0x4a067e){if(!_0x4a067e){_0x54c4c0['sendStatus'](0x194);}return _0x4a067e;};}function handleError(_0x2a019d,_0x20f25a){_0x20f25a=_0x20f25a||0x1f4;return function(_0x6f94d1){logger[_0xe20f('0x2b')](_0x6f94d1[_0xe20f('0x3f')]);if(_0x6f94d1[_0xe20f('0x40')]){delete _0x6f94d1[_0xe20f('0x40')];}_0x2a019d['status'](_0x20f25a)['send'](_0x6f94d1);};}exports[_0xe20f('0x41')]=function(_0x29b86c,_0x2d29d4){var _0x40fd15={'include':[{'model':db[_0xe20f('0x42')],'as':_0xe20f('0x43')}]},_0x28f83f={},_0x4a1096={'count':0x0,'rows':[]};var _0x1982cd=_[_0xe20f('0x44')](db['WhatsappAccount'][_0xe20f('0x45')],function(_0x34db79){return{'name':_0x34db79['fieldName'],'type':_0x34db79[_0xe20f('0x46')]['key']};});_0x28f83f[_0xe20f('0x47')]=_['map'](_0x1982cd,'name');_0x28f83f[_0xe20f('0x48')]=_[_0xe20f('0x49')](_0x29b86c[_0xe20f('0x48')]);_0x28f83f[_0xe20f('0x4a')]=_[_0xe20f('0x4b')](_0x28f83f[_0xe20f('0x47')],_0x28f83f[_0xe20f('0x48')]);_0x40fd15['attributes']=_['intersection'](_0x28f83f[_0xe20f('0x47')],qs[_0xe20f('0x4c')](_0x29b86c['query'][_0xe20f('0x4c')]));_0x40fd15[_0xe20f('0x4d')]=_0x40fd15[_0xe20f('0x4d')][_0xe20f('0x4e')]?_0x40fd15[_0xe20f('0x4d')]:_0x28f83f[_0xe20f('0x47')];if(!_0x29b86c['query'][_0xe20f('0x4f')]('nolimit')){_0x40fd15[_0xe20f('0x34')]=qs[_0xe20f('0x34')](_0x29b86c[_0xe20f('0x48')]['limit']);_0x40fd15[_0xe20f('0x32')]=qs['offset'](_0x29b86c[_0xe20f('0x48')][_0xe20f('0x32')]);}_0x40fd15[_0xe20f('0x50')]=qs[_0xe20f('0x51')](_0x29b86c[_0xe20f('0x48')][_0xe20f('0x51')]);_0x40fd15[_0xe20f('0x52')]=qs[_0xe20f('0x4a')](_['pick'](_0x29b86c[_0xe20f('0x48')],_0x28f83f[_0xe20f('0x4a')]),_0x1982cd);if(_0x29b86c[_0xe20f('0x48')][_0xe20f('0x53')]){_0x40fd15[_0xe20f('0x52')]=_[_0xe20f('0x54')](_0x40fd15[_0xe20f('0x52')],{'$or':_[_0xe20f('0x44')](_0x1982cd,function(_0x567e09){if(_0x567e09[_0xe20f('0x46')]!==_0xe20f('0x55')){var _0x5f1979={};_0x5f1979[_0x567e09['name']]={'$like':'%'+_0x29b86c['query'][_0xe20f('0x53')]+'%'};return _0x5f1979;}})});}_0x40fd15=_[_0xe20f('0x54')]({},_0x40fd15,_0x29b86c[_0xe20f('0x56')]);var _0x49d5ac={'where':_0x40fd15[_0xe20f('0x52')]};return db[_0xe20f('0x57')][_0xe20f('0x58')](_0x49d5ac)[_0xe20f('0x24')](function(_0x10d1f0){_0x4a1096[_0xe20f('0x58')]=_0x10d1f0;if(_0x29b86c['query'][_0xe20f('0x59')]){_0x40fd15[_0xe20f('0x5a')]=[{'all':!![]}];}return db[_0xe20f('0x57')][_0xe20f('0x5b')](_0x40fd15);})['then'](function(_0x42a815){_0x4a1096[_0xe20f('0x5c')]=_0x42a815;return _0x4a1096;})['then'](respondWithFilteredResult(_0x2d29d4,_0x40fd15))[_0xe20f('0x2f')](handleError(_0x2d29d4,null));};exports[_0xe20f('0x5d')]=function(_0x36ed74,_0x2b179b){var _0x597bd3={'raw':![],'where':{'id':_0x36ed74[_0xe20f('0x5e')]['id']},'include':[{'model':db[_0xe20f('0x42')],'as':_0xe20f('0x43')}]},_0x312213={};_0x312213['model']=_[_0xe20f('0x49')](db[_0xe20f('0x57')]['rawAttributes']);_0x312213[_0xe20f('0x48')]=_['keys'](_0x36ed74['query']);_0x312213[_0xe20f('0x4a')]=_['intersection'](_0x312213[_0xe20f('0x47')],_0x312213[_0xe20f('0x48')]);_0x597bd3[_0xe20f('0x4d')]=_[_0xe20f('0x4b')](_0x312213[_0xe20f('0x47')],qs[_0xe20f('0x4c')](_0x36ed74['query'][_0xe20f('0x4c')]));_0x597bd3['attributes']=_0x597bd3[_0xe20f('0x4d')][_0xe20f('0x4e')]?_0x597bd3['attributes']:_0x312213[_0xe20f('0x47')];if(_0x36ed74[_0xe20f('0x48')][_0xe20f('0x59')]){_0x597bd3[_0xe20f('0x5a')]=[{'all':!![]}];}_0x597bd3=_['merge']({},_0x597bd3,_0x36ed74[_0xe20f('0x56')]);return db[_0xe20f('0x57')][_0xe20f('0x5f')](_0x597bd3)[_0xe20f('0x24')](handleEntityNotFound(_0x2b179b,null))[_0xe20f('0x24')](respondWithResult(_0x2b179b,null))[_0xe20f('0x2f')](handleError(_0x2b179b,null));};exports[_0xe20f('0x60')]=function(_0x39dd3c,_0x129574){return db[_0xe20f('0x57')]['create'](_0x39dd3c['body'],{})['then'](function(_0x52f66b){var _0x4756b5=_0x39dd3c['user']['get']({'plain':!![]});if(!_0x4756b5)throw new Error(_0xe20f('0x61'));if(_0x4756b5[_0xe20f('0x62')]===_0xe20f('0x63')){var _0x5cd06c=_0x52f66b[_0xe20f('0x3a')]({'plain':!![]});var _0xa640eb=_0xe20f('0x3b');return db[_0xe20f('0x64')][_0xe20f('0x5f')]({'where':{'name':_0xa640eb,'userProfileId':_0x4756b5['userProfileId']},'raw':!![]})[_0xe20f('0x24')](function(_0x14acf0){if(_0x14acf0&&_0x14acf0[_0xe20f('0x65')]===0x0){return db[_0xe20f('0x3c')][_0xe20f('0x60')]({'name':_0x5cd06c[_0xe20f('0x40')],'resourceId':_0x5cd06c['id'],'type':_0x14acf0['name'],'sectionId':_0x14acf0['id']},{})[_0xe20f('0x24')](function(){return _0x52f66b;});}else{return _0x52f66b;}})[_0xe20f('0x2f')](function(_0x50016b){logger[_0xe20f('0x2b')](_0xe20f('0x66'),_0x50016b);throw _0x50016b;});}return _0x52f66b;})[_0xe20f('0x24')](respondWithResult(_0x129574,0xc9))['catch'](handleError(_0x129574,null));};exports['update']=function(_0xb1c215,_0xd249d1){if(_0xb1c215[_0xe20f('0x67')]['id']){delete _0xb1c215[_0xe20f('0x67')]['id'];}return db[_0xe20f('0x57')]['find']({'where':{'id':_0xb1c215[_0xe20f('0x5e')]['id']},'include':[{'model':db[_0xe20f('0x42')],'as':_0xe20f('0x43')}]})[_0xe20f('0x24')](handleEntityNotFound(_0xd249d1,null))[_0xe20f('0x24')](saveUpdates(_0xb1c215[_0xe20f('0x67')],null))['then'](respondWithResult(_0xd249d1,null))[_0xe20f('0x2f')](handleError(_0xd249d1,null));};exports[_0xe20f('0x68')]=function(_0x220755,_0x160757){return db['WhatsappAccount']['find']({'where':{'id':_0x220755[_0xe20f('0x5e')]['id']}})['then'](handleEntityNotFound(_0x160757,null))['then'](removeEntity(_0x160757,null))[_0xe20f('0x2f')](handleError(_0x160757,null));};exports['describe']=function(_0x22bde3,_0x21616e){return db['WhatsappAccount'][_0xe20f('0x69')]()[_0xe20f('0x24')](respondWithResult(_0x21616e,null))[_0xe20f('0x2f')](handleError(_0x21616e,null));};exports[_0xe20f('0x6a')]=function(_0x4a4aca,_0x537264,_0x1efa27){if(_0x4a4aca[_0xe20f('0x67')]['id']){delete _0x4a4aca[_0xe20f('0x67')]['id'];}return db['WhatsappAccount']['find']({'where':{'id':_0x4a4aca['params']['id']}})[_0xe20f('0x24')](handleEntityNotFound(_0x537264,null))[_0xe20f('0x24')](function(_0x5b341f){if(_0x5b341f){_0x4a4aca['body'][_0xe20f('0x6b')]=_0x5b341f['id'];return db['Disposition'][_0xe20f('0x60')](_0x4a4aca[_0xe20f('0x67')]);}})[_0xe20f('0x24')](respondWithResult(_0x537264,null))[_0xe20f('0x2f')](handleError(_0x537264,null));};exports[_0xe20f('0x6c')]=function(_0x84be0a,_0x2d0af3,_0x1ba99d){var _0x433798={'raw':![],'where':{}};var _0x25b6f1={};var _0x30e526={'count':0x0,'rows':[]};return db[_0xe20f('0x57')][_0xe20f('0x6d')]({'where':{'id':_0x84be0a['params']['id']}})[_0xe20f('0x24')](handleEntityNotFound(_0x2d0af3,null))['then'](function(_0x4b32ad){if(_0x4b32ad){_0x25b6f1[_0xe20f('0x47')]=_[_0xe20f('0x49')](db[_0xe20f('0x6e')]['rawAttributes']);_0x25b6f1[_0xe20f('0x48')]=_[_0xe20f('0x49')](_0x84be0a[_0xe20f('0x48')]);_0x25b6f1[_0xe20f('0x4a')]=_['intersection'](_0x25b6f1[_0xe20f('0x47')],_0x25b6f1['query']);_0x433798[_0xe20f('0x4d')]=_[_0xe20f('0x4b')](_0x25b6f1[_0xe20f('0x47')],qs[_0xe20f('0x4c')](_0x84be0a[_0xe20f('0x48')]['fields']));_0x433798['attributes']=_0x433798[_0xe20f('0x4d')]['length']?_0x433798[_0xe20f('0x4d')]:_0x25b6f1['model'];if(!_0x84be0a[_0xe20f('0x48')][_0xe20f('0x4f')](_0xe20f('0x6f'))){_0x433798[_0xe20f('0x34')]=qs['limit'](_0x84be0a[_0xe20f('0x48')]['limit']);_0x433798[_0xe20f('0x32')]=qs[_0xe20f('0x32')](_0x84be0a[_0xe20f('0x48')]['offset']);}_0x433798[_0xe20f('0x50')]=qs[_0xe20f('0x51')](_0x84be0a[_0xe20f('0x48')][_0xe20f('0x51')]);_0x433798[_0xe20f('0x52')]=qs[_0xe20f('0x4a')](_[_0xe20f('0x70')](_0x84be0a[_0xe20f('0x48')],_0x25b6f1[_0xe20f('0x4a')]));_0x433798[_0xe20f('0x52')][_0xe20f('0x6b')]=_0x4b32ad['id'];if(_0x84be0a['query']['filter']){_0x433798[_0xe20f('0x52')]=_[_0xe20f('0x54')](_0x433798[_0xe20f('0x52')],{'$or':_[_0xe20f('0x44')](_0x433798['attributes'],function(_0x1b6cb0){var _0x92dd1={};_0x92dd1[_0x1b6cb0]={'$like':'%'+_0x84be0a['query'][_0xe20f('0x53')]+'%'};return _0x92dd1;})});}_0x433798=_[_0xe20f('0x54')]({},_0x433798,_0x84be0a['options']);return db['Disposition'][_0xe20f('0x58')]({'where':_0x433798[_0xe20f('0x52')]})[_0xe20f('0x24')](function(_0x562821){_0x30e526[_0xe20f('0x58')]=_0x562821;if(_0x84be0a['query'][_0xe20f('0x59')]){_0x433798[_0xe20f('0x5a')]=[{'all':!![]}];}return db['Disposition']['findAll'](_0x433798);})[_0xe20f('0x24')](function(_0x7d72d6){_0x30e526[_0xe20f('0x5c')]=_0x7d72d6;return _0x30e526;});}})['then'](respondWithFilteredResult(_0x2d0af3,_0x433798))['catch'](handleError(_0x2d0af3,null));};exports[_0xe20f('0x71')]=function(_0x44851e,_0x2c3c22,_0x59561b){return db[_0xe20f('0x57')]['find']({'where':{'id':_0x44851e[_0xe20f('0x5e')]['id']}})[_0xe20f('0x24')](handleEntityNotFound(_0x2c3c22,null))[_0xe20f('0x24')](function(_0x5777a4){if(_0x5777a4){return _0x5777a4[_0xe20f('0x71')](_0x44851e[_0xe20f('0x48')][_0xe20f('0x72')]);}})['then'](respondWithStatusCode(_0x2c3c22,null))[_0xe20f('0x2f')](handleError(_0x2c3c22,null));};exports['addAnswer']=function(_0x181493,_0x53c706,_0x497dbf){if(_0x181493[_0xe20f('0x67')]['id']){delete _0x181493[_0xe20f('0x67')]['id'];}return db[_0xe20f('0x57')]['find']({'where':{'id':_0x181493[_0xe20f('0x5e')]['id']}})[_0xe20f('0x24')](handleEntityNotFound(_0x53c706,null))[_0xe20f('0x24')](function(_0x3156f2){if(_0x3156f2){_0x181493[_0xe20f('0x67')][_0xe20f('0x6b')]=_0x3156f2['id'];return db[_0xe20f('0x73')]['create'](_0x181493[_0xe20f('0x67')]);}})[_0xe20f('0x24')](respondWithResult(_0x53c706,null))['catch'](handleError(_0x53c706,null));};exports[_0xe20f('0x74')]=function(_0x54499c,_0x1a5947,_0x1125f6){var _0x2b53a0={'raw':![],'where':{}};var _0x2bcd12={};var _0x58b507={'count':0x0,'rows':[]};return db[_0xe20f('0x57')][_0xe20f('0x6d')]({'where':{'id':_0x54499c['params']['id']}})['then'](handleEntityNotFound(_0x1a5947,null))[_0xe20f('0x24')](function(_0xd8c623){if(_0xd8c623){_0x2bcd12['model']=_[_0xe20f('0x49')](db[_0xe20f('0x73')][_0xe20f('0x45')]);_0x2bcd12[_0xe20f('0x48')]=_[_0xe20f('0x49')](_0x54499c['query']);_0x2bcd12[_0xe20f('0x4a')]=_[_0xe20f('0x4b')](_0x2bcd12[_0xe20f('0x47')],_0x2bcd12[_0xe20f('0x48')]);_0x2b53a0[_0xe20f('0x4d')]=_[_0xe20f('0x4b')](_0x2bcd12[_0xe20f('0x47')],qs[_0xe20f('0x4c')](_0x54499c[_0xe20f('0x48')]['fields']));_0x2b53a0['attributes']=_0x2b53a0[_0xe20f('0x4d')][_0xe20f('0x4e')]?_0x2b53a0[_0xe20f('0x4d')]:_0x2bcd12[_0xe20f('0x47')];if(!_0x54499c[_0xe20f('0x48')][_0xe20f('0x4f')]('nolimit')){_0x2b53a0[_0xe20f('0x34')]=qs[_0xe20f('0x34')](_0x54499c[_0xe20f('0x48')][_0xe20f('0x34')]);_0x2b53a0['offset']=qs[_0xe20f('0x32')](_0x54499c[_0xe20f('0x48')][_0xe20f('0x32')]);}_0x2b53a0['order']=qs['sort'](_0x54499c[_0xe20f('0x48')][_0xe20f('0x51')]);_0x2b53a0[_0xe20f('0x52')]=qs[_0xe20f('0x4a')](_[_0xe20f('0x70')](_0x54499c['query'],_0x2bcd12[_0xe20f('0x4a')]));_0x2b53a0[_0xe20f('0x52')]['WhatsappAccountId']=_0xd8c623['id'];if(_0x54499c[_0xe20f('0x48')][_0xe20f('0x53')]){_0x2b53a0[_0xe20f('0x52')]=_[_0xe20f('0x54')](_0x2b53a0[_0xe20f('0x52')],{'$or':_[_0xe20f('0x44')](_0x2b53a0[_0xe20f('0x4d')],function(_0x51873e){var _0x120363={};_0x120363[_0x51873e]={'$like':'%'+_0x54499c[_0xe20f('0x48')]['filter']+'%'};return _0x120363;})});}_0x2b53a0=_['merge']({},_0x2b53a0,_0x54499c[_0xe20f('0x56')]);return db[_0xe20f('0x73')][_0xe20f('0x58')]({'where':_0x2b53a0[_0xe20f('0x52')]})['then'](function(_0x361fef){_0x58b507['count']=_0x361fef;if(_0x54499c[_0xe20f('0x48')][_0xe20f('0x59')]){_0x2b53a0[_0xe20f('0x5a')]=[{'all':!![]}];}return db['CannedAnswer'][_0xe20f('0x5b')](_0x2b53a0);})[_0xe20f('0x24')](function(_0x66cf5a){_0x58b507[_0xe20f('0x5c')]=_0x66cf5a;return _0x58b507;});}})[_0xe20f('0x24')](respondWithFilteredResult(_0x1a5947,_0x2b53a0))[_0xe20f('0x2f')](handleError(_0x1a5947,null));};exports[_0xe20f('0x75')]=function(_0x48cf9f,_0x2805c0,_0x430c71){return db[_0xe20f('0x57')][_0xe20f('0x5f')]({'where':{'id':_0x48cf9f[_0xe20f('0x5e')]['id']}})[_0xe20f('0x24')](handleEntityNotFound(_0x2805c0,null))[_0xe20f('0x24')](function(_0x295670){if(_0x295670){return _0x295670[_0xe20f('0x75')](_0x48cf9f[_0xe20f('0x48')][_0xe20f('0x72')]);}})[_0xe20f('0x24')](respondWithStatusCode(_0x2805c0,null))[_0xe20f('0x2f')](handleError(_0x2805c0,null));};exports[_0xe20f('0x76')]=function(_0x3c8058,_0x18088a,_0x16a0fa){return db[_0xe20f('0x57')]['find']({'where':{'id':_0x3c8058['params']['id']}})[_0xe20f('0x24')](handleEntityNotFound(_0x18088a,null))['then'](function(_0x191bd9){if(_0x191bd9){return _0x191bd9[_0xe20f('0x76')](_0x3c8058[_0xe20f('0x67')][_0xe20f('0x72')],_[_0xe20f('0x77')](_0x3c8058[_0xe20f('0x67')],['ids','id'])||{})[_0xe20f('0x78')](function(_0x37b44a){for(var _0xf51e6f=0x0;_0xf51e6f<_0x3c8058[_0xe20f('0x67')][_0xe20f('0x72')][_0xe20f('0x4e')];_0xf51e6f+=0x1){socket['emit'](_0xe20f('0x79'),{'UserId':Number(_0x3c8058[_0xe20f('0x67')][_0xe20f('0x72')][_0xf51e6f]),'WhatsappAccountId':Number(_0x3c8058[_0xe20f('0x5e')]['id'])});}return _0x37b44a;});}})[_0xe20f('0x24')](respondWithResult(_0x18088a,null))[_0xe20f('0x2f')](handleError(_0x18088a,null));};exports[_0xe20f('0x7a')]=function(_0x11ccbb,_0x317591,_0xbad517){return db[_0xe20f('0x57')]['find']({'where':{'id':_0x11ccbb['params']['id']}})[_0xe20f('0x24')](handleEntityNotFound(_0x317591,null))[_0xe20f('0x24')](function(_0x5bd5bc){if(_0x5bd5bc){return _0x5bd5bc[_0xe20f('0x7a')](_0x11ccbb[_0xe20f('0x48')]['ids'])[_0xe20f('0x24')](function(){if(_[_0xe20f('0x7b')](_0x11ccbb[_0xe20f('0x48')][_0xe20f('0x72')])){for(var _0x5f019b=0x0;_0x5f019b<_0x11ccbb[_0xe20f('0x48')][_0xe20f('0x72')][_0xe20f('0x4e')];_0x5f019b+=0x1){socket['emit'](_0xe20f('0x7c'),{'UserId':Number(_0x11ccbb[_0xe20f('0x48')][_0xe20f('0x72')][_0x5f019b]),'WhatsappAccountId':Number(_0x11ccbb[_0xe20f('0x5e')]['id'])});}}else{socket[_0xe20f('0x7d')](_0xe20f('0x7c'),{'UserId':Number(_0x11ccbb['query'][_0xe20f('0x72')]),'WhatsappAccountId':Number(_0x11ccbb[_0xe20f('0x5e')]['id'])});}});}})[_0xe20f('0x24')](respondWithStatusCode(_0x317591,null))[_0xe20f('0x2f')](handleError(_0x317591,null));};exports[_0xe20f('0x7e')]=function(_0x16f9fb,_0x29a402,_0x2b9c2f){var _0x1f7f14={};var _0x502935={};var _0x10bf93;var _0x2d3ad6;return db['WhatsappAccount'][_0xe20f('0x6d')]({'where':{'id':_0x16f9fb[_0xe20f('0x5e')]['id']}})[_0xe20f('0x24')](handleEntityNotFound(_0x29a402,null))[_0xe20f('0x24')](function(_0x20f197){if(_0x20f197){_0x10bf93=_0x20f197;_0x502935['model']=_[_0xe20f('0x49')](db[_0xe20f('0x7f')][_0xe20f('0x45')]);_0x502935['query']=_[_0xe20f('0x49')](_0x16f9fb[_0xe20f('0x48')]);_0x502935[_0xe20f('0x4a')]=_[_0xe20f('0x4b')](_0x502935[_0xe20f('0x47')],_0x502935[_0xe20f('0x48')]);_0x1f7f14[_0xe20f('0x4d')]=_['intersection'](_0x502935[_0xe20f('0x47')],qs[_0xe20f('0x4c')](_0x16f9fb[_0xe20f('0x48')][_0xe20f('0x4c')]));_0x1f7f14[_0xe20f('0x4d')]=_0x1f7f14[_0xe20f('0x4d')][_0xe20f('0x4e')]?_0x1f7f14[_0xe20f('0x4d')]:_0x502935[_0xe20f('0x47')];_0x1f7f14['order']=qs[_0xe20f('0x51')](_0x16f9fb[_0xe20f('0x48')][_0xe20f('0x51')]);_0x1f7f14[_0xe20f('0x52')]=qs[_0xe20f('0x4a')](_[_0xe20f('0x70')](_0x16f9fb[_0xe20f('0x48')],_0x502935[_0xe20f('0x4a')]));if(_0x16f9fb[_0xe20f('0x48')][_0xe20f('0x53')]){_0x1f7f14[_0xe20f('0x52')]=_[_0xe20f('0x54')](_0x1f7f14[_0xe20f('0x52')],{'$or':_[_0xe20f('0x44')](_0x1f7f14[_0xe20f('0x4d')],function(_0x5b7361){var _0x524988={};_0x524988[_0x5b7361]={'$like':'%'+_0x16f9fb[_0xe20f('0x48')][_0xe20f('0x53')]+'%'};return _0x524988;})});}_0x1f7f14=_[_0xe20f('0x54')]({},_0x1f7f14,_0x16f9fb[_0xe20f('0x56')]);return _0x10bf93[_0xe20f('0x7e')](_0x1f7f14);}})[_0xe20f('0x24')](function(_0x537834){if(_0x537834){_0x2d3ad6=_0x537834['length'];if(!_0x16f9fb[_0xe20f('0x48')][_0xe20f('0x4f')]('nolimit')){_0x1f7f14[_0xe20f('0x34')]=qs['limit'](_0x16f9fb[_0xe20f('0x48')][_0xe20f('0x34')]);_0x1f7f14[_0xe20f('0x32')]=qs[_0xe20f('0x32')](_0x16f9fb[_0xe20f('0x48')][_0xe20f('0x32')]);}return _0x10bf93[_0xe20f('0x7e')](_0x1f7f14);}})['then'](function(_0x12419d){if(_0x12419d){return _0x12419d?{'count':_0x2d3ad6,'rows':_0x12419d}:null;}})[_0xe20f('0x24')](respondWithResult(_0x29a402,null))['catch'](handleError(_0x29a402,null));};exports[_0xe20f('0x80')]=function(_0x2f4da5,_0x571adf,_0x131e3d){return db['WhatsappAccount']['findOne']({'where':{'id':_0x2f4da5[_0xe20f('0x5e')]['id']}})[_0xe20f('0x24')](handleEntityNotFound(_0x571adf,null))[_0xe20f('0x24')](function(_0x30c2a7){if(_0x30c2a7){return db[_0xe20f('0x81')]['transaction'](function(_0xc0e163){return db[_0xe20f('0x82')]['destroy']({'where':{'WhatsappAccountId':_0x2f4da5[_0xe20f('0x5e')]['id']},'transaction':_0xc0e163})['then'](function(_0x2cec43){var _0x4332a5=_[_0xe20f('0x44')](_0x2f4da5[_0xe20f('0x67')],function(_0xbbfc81){_0xbbfc81['WhatsappAccountId']=_0x2f4da5[_0xe20f('0x5e')]['id'];return _0xbbfc81;});return db[_0xe20f('0x82')][_0xe20f('0x83')](_0x4332a5,{'transaction':_0xc0e163});});})[_0xe20f('0x24')](function(){return db['WhatsappApplication'][_0xe20f('0x84')]({'where':{'WhatsappAccountId':_0x2f4da5[_0xe20f('0x5e')]['id']},'order':_0xe20f('0x85')});});}})[_0xe20f('0x24')](respondWithResult(_0x571adf,null))[_0xe20f('0x2f')](handleError(_0x571adf,null));};exports[_0xe20f('0x86')]=function(_0x1d098c,_0x551217,_0x491143){var _0x11d3b8={};var _0xf32c4f={};var _0x196f61;var _0x151f12;return db['WhatsappAccount'][_0xe20f('0x6d')]({'where':{'id':_0x1d098c['params']['id']}})[_0xe20f('0x24')](handleEntityNotFound(_0x551217,null))[_0xe20f('0x24')](function(_0x18a6cc){if(_0x18a6cc){_0x196f61=_0x18a6cc;_0xf32c4f[_0xe20f('0x47')]=_['keys'](db[_0xe20f('0x82')][_0xe20f('0x45')]);_0xf32c4f[_0xe20f('0x48')]=_['keys'](_0x1d098c[_0xe20f('0x48')]);_0xf32c4f['filters']=_['intersection'](_0xf32c4f[_0xe20f('0x47')],_0xf32c4f[_0xe20f('0x48')]);_0x11d3b8['attributes']=_[_0xe20f('0x4b')](_0xf32c4f['model'],qs[_0xe20f('0x4c')](_0x1d098c[_0xe20f('0x48')][_0xe20f('0x4c')]));_0x11d3b8[_0xe20f('0x4d')]=_0x11d3b8[_0xe20f('0x4d')][_0xe20f('0x4e')]?_0x11d3b8[_0xe20f('0x4d')]:_0xf32c4f[_0xe20f('0x47')];_0x11d3b8['order']=qs[_0xe20f('0x51')](_0x1d098c['query'][_0xe20f('0x51')]);_0x11d3b8[_0xe20f('0x52')]=qs['filters'](_[_0xe20f('0x70')](_0x1d098c['query'],_0xf32c4f[_0xe20f('0x4a')]));if(_0x1d098c['query'][_0xe20f('0x53')]){_0x11d3b8[_0xe20f('0x52')]=_[_0xe20f('0x54')](_0x11d3b8['where'],{'$or':_[_0xe20f('0x44')](_0x11d3b8[_0xe20f('0x4d')],function(_0x5d461b){var _0x153d4e={};_0x153d4e[_0x5d461b]={'$like':'%'+_0x1d098c[_0xe20f('0x48')][_0xe20f('0x53')]+'%'};return _0x153d4e;})});}_0x11d3b8=_[_0xe20f('0x54')]({},_0x11d3b8,_0x1d098c[_0xe20f('0x56')]);return _0x196f61[_0xe20f('0x86')](_0x11d3b8);}})[_0xe20f('0x24')](function(_0x48a58c){if(_0x48a58c){_0x151f12=_0x48a58c[_0xe20f('0x4e')];if(!_0x1d098c[_0xe20f('0x48')][_0xe20f('0x4f')](_0xe20f('0x6f'))){_0x11d3b8[_0xe20f('0x34')]=qs[_0xe20f('0x34')](_0x1d098c[_0xe20f('0x48')][_0xe20f('0x34')]);_0x11d3b8[_0xe20f('0x32')]=qs[_0xe20f('0x32')](_0x1d098c[_0xe20f('0x48')][_0xe20f('0x32')]);}return _0x196f61[_0xe20f('0x86')](_0x11d3b8);}})[_0xe20f('0x24')](function(_0x53f2ee){if(_0x53f2ee){return _0x53f2ee?{'count':_0x151f12,'rows':_0x53f2ee}:null;}})[_0xe20f('0x24')](respondWithResult(_0x551217,null))['catch'](handleError(_0x551217,null));};exports['notify']=function(_0x6110e1,_0x43b16b,_0x3e36a4){var _0x1e9536={'channel':'whatsapp'};var _0x2ff167=[];var _0x3469c7=[];var _0x18e92d={};return db[_0xe20f('0x57')][_0xe20f('0x5f')]({'where':{'id':_0x6110e1['params']['id']},'include':[{'model':db[_0xe20f('0x82')],'as':_0xe20f('0x87')}]})[_0xe20f('0x24')](handleEntityNotFound(_0x43b16b,null))[_0xe20f('0x24')](function(_0x16f52c){_0x1e9536['account']=_0x16f52c;_0x1e9536[_0xe20f('0x88')]=_[_0xe20f('0x89')](_0x16f52c[_0xe20f('0x87')],[_0xe20f('0x85')],['asc']);if(_0x1e9536[_0xe20f('0x8a')][_0xe20f('0x87')]){delete _0x1e9536[_0xe20f('0x8a')][_0xe20f('0x87')];}return db['CmContact'][_0xe20f('0x69')]();})[_0xe20f('0x24')](function(_0x1f5483){if(!_0x1f5483){throw new db[(_0xe20f('0x8b'))][(_0xe20f('0x8c'))](_0xe20f('0x8d'));}_0x2ff167=_[_0xe20f('0x8e')](_['keys'](_0x1f5483),[_0xe20f('0x8f'),_0xe20f('0x90')]);_0x3469c7=_['difference'](_['keys'](_0x1f5483),['createdAt',_0xe20f('0x90'),_0xe20f('0x91'),'ListId']);_0x1e9536[_0xe20f('0x67')]={'mapKey':_0xe20f('0x92')};if(_0x1e9536[_0xe20f('0x8a')][_0xe20f('0x46')]&&_0x1e9536[_0xe20f('0x8a')][_0xe20f('0x46')]===_0xe20f('0x93')){_0x1e9536[_0xe20f('0x67')][_0xe20f('0x94')]=_0x6110e1[_0xe20f('0x67')]['From'][_0xe20f('0x95')]('whatsapp:','');_0x1e9536['body'][_0xe20f('0x67')]=_0x6110e1[_0xe20f('0x67')][_0xe20f('0x96')];_0x1e9536['body'][_0xe20f('0x97')]=_0x6110e1['body'][_0xe20f('0x98')];}if(_0x1e9536[_0xe20f('0x67')]['id']){delete _0x1e9536[_0xe20f('0x67')]['id'];}if(_['isNil'](_0x1e9536[_0xe20f('0x67')]['from'])){throw new db['Sequelize'][(_0xe20f('0x8c'))]('from\x20is\x20mandatory');}if(_[_0xe20f('0x99')](_0x1e9536[_0xe20f('0x67')][_0xe20f('0x67')])||_0x1e9536[_0xe20f('0x67')][_0xe20f('0x67')]===''){throw new db['Sequelize'][(_0xe20f('0x8c'))](_0xe20f('0x9a'));}if(_[_0xe20f('0x99')](_0x1e9536['body'][_0xe20f('0x9b')])){throw new db['Sequelize'][(_0xe20f('0x8c'))](_0xe20f('0x9c')+_0x3469c7);}if(!_['includes'](_0x3469c7,_0x1e9536[_0xe20f('0x67')][_0xe20f('0x9b')])){throw new db[(_0xe20f('0x8b'))][(_0xe20f('0x8c'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x3469c7);}_0x18e92d[_0x1e9536['body'][_0xe20f('0x9b')]]=_0x1e9536[_0xe20f('0x67')][_0xe20f('0x94')];return db[_0xe20f('0x9d')][_0xe20f('0x5f')]({'where':{'id':_0x1e9536['account'][_0xe20f('0x9e')]},'include':[{'model':db[_0xe20f('0x9f')],'as':'Contacts','where':_0x18e92d,'limit':0x1,'order':[[_0xe20f('0x90'),_0xe20f('0xa0')]]}]});})[_0xe20f('0x24')](handleEntityNotFound(_0x43b16b,null))['then'](function(_0x1829d4){if(_0x1829d4){_0x1e9536['list']=_[_0xe20f('0x77')](_0x1829d4,[_0xe20f('0xa1')]);if(_0x1829d4[_0xe20f('0xa1')][_0xe20f('0x4e')]){return _0x1829d4[_0xe20f('0xa1')][0x0];}var _0x2066ee=_['defaults'](_0x1e9536['body'],{'firstName':_0x1e9536[_0xe20f('0x67')][_0xe20f('0x94')],'ListId':_0x1829d4['id']});_0x2066ee[_0x1e9536[_0xe20f('0x67')]['mapKey']]=_0x1e9536[_0xe20f('0x67')][_0xe20f('0x94')];return db['CmContact'][_0xe20f('0x60')](_0x2066ee,{'fields':_0x2ff167,'raw':!![]});}})['then'](handleEntityNotFound(_0x43b16b,null))[_0xe20f('0x24')](function(_0x2b5d0f){if(_0x2b5d0f){_0x1e9536[_0xe20f('0xa2')]=_0x2b5d0f;var _0x44c59c={'ContactId':_0x2b5d0f['id'],'phone':_0x1e9536[_0xe20f('0x67')][_0xe20f('0x94')],'WhatsappAccountId':_0x6110e1[_0xe20f('0x5e')]['id']};var _0x5235e4={'ContactId':_0x2b5d0f['id'],'WhatsappAccountId':_0x6110e1['params']['id'],'closed':![]};return db['WhatsappInteraction']['find']({'where':_0x5235e4})[_0xe20f('0x24')](function(_0x5a234f){if(_0x5a234f){return[_0x5a234f,![]];}return db['WhatsappInteraction'][_0xe20f('0x60')](_0x44c59c)[_0xe20f('0x24')](function(_0x2d582e){return[_0x2d582e,!![]];});});}})[_0xe20f('0x78')](function(_0x31b909,_0x12e7fc){_0x1e9536['interaction']=_0x31b909[_0xe20f('0x3a')]({'plain':!![]});_0x1e9536[_0xe20f('0xa3')][_0xe20f('0xa4')]=![];if(_0x12e7fc){if(_0x1e9536[_0xe20f('0x8a')][_0xe20f('0xa5')]){_0x1e9536[_0xe20f('0x88')][_0xe20f('0xa6')]({'id':0x0,'priority':_0x1e9536[_0xe20f('0x88')]['length']+0x1,'app':_0xe20f('0xa7'),'appdata':_0xe20f('0xa8'),'interval':_0xe20f('0xa9')});}_0x1e9536[_0xe20f('0xa3')][_0xe20f('0xa4')]=!![];}return db[_0xe20f('0xaa')][_0xe20f('0x60')]({'phone':_0x1e9536[_0xe20f('0x67')][_0xe20f('0x94')],'messageId':_0x1e9536[_0xe20f('0x67')][_0xe20f('0x97')],'body':_0x1e9536[_0xe20f('0x67')][_0xe20f('0x67')],'WhatsappAccountId':_0x6110e1[_0xe20f('0x5e')]['id'],'WhatsappInteractionId':_0x31b909['id'],'direction':'in','ContactId':_0x31b909[_0xe20f('0xab')],'AttachmentId':_0x1e9536['body'][_0xe20f('0xac')]});})[_0xe20f('0x24')](function(_0x86a57b){_0x1e9536[_0xe20f('0x2d')]=_0x86a57b;if(_0x1e9536[_0xe20f('0xa3')]['UserId']){return db[_0xe20f('0x7f')][_0xe20f('0x5f')]({'attributes':['id',_0xe20f('0x40')],'where':{'id':_0x1e9536[_0xe20f('0xa3')]['UserId']}})[_0xe20f('0x24')](function(_0x216a8c){if(_0x216a8c){_0x1e9536[_0xe20f('0x88')][_0xe20f('0xad')]({'id':0x0,'priority':0x0,'app':_0xe20f('0xae'),'appdata':_0x216a8c[_0xe20f('0x40')]+','+(_0x1e9536[_0xe20f('0x8a')][_0xe20f('0xaf')]||0xa),'interval':_0xe20f('0xa9')});}return respondWithRpcPromise(_0xe20f('0xb0'),_0xe20f('0xb1'),_0x1e9536);});}return respondWithRpcPromise(_0xe20f('0xb0'),_0xe20f('0xb1'),_0x1e9536);})[_0xe20f('0x24')](function(_0x2a862e){if(_0x2a862e){var _0x19f28e=0xc8;var _0x44151d='receiveMessage';logger[_0xe20f('0x25')](_0xe20f('0x29'),_0x44151d,_0x19f28e,_0xe20f('0xb2'));logger[_0xe20f('0x28')](_0xe20f('0xb3'),_0x44151d,_0x19f28e,_0xe20f('0xb2'),JSON['stringify'](_0x2a862e));if(_0x1e9536[_0xe20f('0x8a')][_0xe20f('0x46')]===_0xe20f('0x93')){return _0x43b16b['status'](_0x19f28e)['set'](_0xe20f('0xb4'),_0xe20f('0xb5'))[_0xe20f('0xb6')](_0xe20f('0xb7'));}else{return _0x43b16b[_0xe20f('0x3d')](_0x19f28e)[_0xe20f('0x31')](_0x2a862e);}}})[_0xe20f('0x2f')](handleError(_0x43b16b,null));};exports[_0xe20f('0xb6')]=function(_0x10780e,_0x43eae8,_0x37675f){var _0x2eabac,_0x527ed7,_0x1e9006;if(_[_0xe20f('0x99')](_0x10780e[_0xe20f('0x67')][_0xe20f('0x67')])||_0x10780e[_0xe20f('0x67')]['body']===''){throw new db[(_0xe20f('0x8b'))][(_0xe20f('0x8c'))](_0xe20f('0x9a'));}if(_[_0xe20f('0x99')](_0x10780e['body']['to'])){throw new db[(_0xe20f('0x8b'))]['ValidationError']('to\x20is\x20mandatory');}_0x2eabac=_0x10780e[_0xe20f('0x67')]['to'];return db['WhatsappAccount']['find']({'where':{'id':_0x10780e[_0xe20f('0x5e')]['id']},'include':[{'model':db[_0xe20f('0x9d')],'as':_0xe20f('0xb8'),'include':[{'model':db[_0xe20f('0x9f')],'as':'Contacts','where':{'mobile':_0x2eabac},'limit':0x1,'order':[[_0xe20f('0x90'),_0xe20f('0xa0')]]}]}]})[_0xe20f('0x24')](handleEntityNotFound(_0x43eae8,null))[_0xe20f('0x24')](function(_0x2f3145){if(_0x2f3145&&_0x2f3145[_0xe20f('0xb8')]){_0x527ed7=_0x2f3145[_0xe20f('0x3a')]({'plain':!![]});if(_0x527ed7['List']&&_0x527ed7[_0xe20f('0xb8')]['Contacts'][_0xe20f('0x4e')]){return _0x527ed7[_0xe20f('0xb8')][_0xe20f('0xa1')][0x0];}return db[_0xe20f('0x9f')][_0xe20f('0x60')](_[_0xe20f('0x1d')](_0x10780e[_0xe20f('0x67')],{'firstName':_0x2eabac,'mobile':_0x2eabac,'phone':_0x2eabac,'ListId':_0x527ed7[_0xe20f('0x9e')]}));}})[_0xe20f('0x24')](handleEntityNotFound(_0x43eae8,null))[_0xe20f('0x24')](function(_0x1abdd3){if(_0x1abdd3){_0x1e9006=_0x1abdd3;return db['WhatsappInteraction'][_0xe20f('0x5f')]({'where':{'ContactId':_0x1e9006['id'],'closed':![],'WhatsappAccountId':_0x527ed7['id']}})['then'](function(_0x3b30d5){if(_0x3b30d5){return[_0x3b30d5,![]];}return db['WhatsappInteraction']['create']({'UserId':_0x10780e[_0xe20f('0x63')]['id'],'ContactId':_0x1e9006['id'],'WhatsappAccountId':_0x527ed7['id'],'phone':_0x2eabac,'firstMsgDirection':_0xe20f('0xb9'),'Messages':[_[_0xe20f('0x54')](_0x10780e[_0xe20f('0x67')],{'read':![],'body':_0x10780e[_0xe20f('0x67')]['body'],'phone':_0x2eabac,'WhatsappAccountId':_0x527ed7['id'],'UserId':_0x10780e[_0xe20f('0x63')]['id'],'ContactId':_0x1e9006['id']})]},{'include':[{'model':db[_0xe20f('0xaa')],'as':_0xe20f('0xba')}]})[_0xe20f('0x24')](function(_0x52a0bd){return[_0x52a0bd,!![]];});});}})['spread'](function(_0x1a1492,_0x4b10ab){if(_0x4b10ab){return _0x1a1492;}return db[_0xe20f('0xaa')][_0xe20f('0x60')](_['merge'](_0x10780e[_0xe20f('0x67')],{'read':![],'body':_0x10780e[_0xe20f('0x67')][_0xe20f('0x67')],'phone':_0x2eabac,'WhatsappAccountId':_0x527ed7['id'],'WhatsappInteractionId':_0x1a1492['id'],'UserId':_0x10780e[_0xe20f('0x63')]['id'],'ContactId':_0x1e9006['id']}))[_0xe20f('0x24')](function(_0x56d899){_0x1a1492['dataValues'][_0xe20f('0xba')]=[];_0x1a1492[_0xe20f('0xbb')][_0xe20f('0xba')][_0xe20f('0xa6')](_0x56d899[_0xe20f('0xbb')]);return _0x1a1492;});})['then'](respondWithResult(_0x43eae8,null))['catch'](handleError(_0x43eae8,null));};
\ No newline at end of file
+var _0xa2dc=['../../mysqldb','redis','defaults','localhost','socket.io-emitter','./whatsappAccount.socket','jayson/promise','http','request','then','info','WhatsappAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','destroy','get','WhatsappAccounts','UserProfileResource','stack','name','send','index','Pause','mandatoryDispositionPause','map','WhatsappAccount','fieldName','model','keys','filters','intersection','attributes','fields','query','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','options','include','findAll','rows','catch','show','params','rawAttributes','length','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','WhatsappAccountId','getDispositions','findOne','Disposition','removeDispositions','ids','addAnswer','getAnswers','CannedAnswer','removeAnswers','addAgents','spread','emit','userWhatsappAccount:save','removeAgents','userWhatsappAccount:remove','getAgents','User','addApplications','sequelize','transaction','WhatsappApplication','bulkCreate','priority','getApplications','notify','whatsapp','Applications','account','applications','orderBy','ValidationError','no\x20available\x20attributes','createdAt','updatedAt','difference','CompanyId','ListId','mobile','twilio','from','replace','whatsapp:','messageId','Sequelize','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','isNil','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmContact','Contacts','DESC','list','omit','contact','WhatsappInteraction','interaction','created','autoclose','close','unmanaged','*,*,*,*','WhatsappMessage','ContactId','UserId','unshift','waitForTheAssignedAgent','Start','WhatsappAccount,\x20%s,\x20%s,\x20%s','entity\x20found','WhatsappAccount,\x20%s,\x20%s,\x20%s,\x20%s','Content-Type','text/xml','to\x20is\x20mandatory','CmList','List','out','Messages','dataValues','push','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment'];(function(_0x18bc72,_0x1b2062){var _0x3db2c0=function(_0x2c6256){while(--_0x2c6256){_0x18bc72['push'](_0x18bc72['shift']());}};_0x3db2c0(++_0x1b2062);}(_0xa2dc,0x159));var _0xca2d=function(_0x1a8ff0,_0x20788d){_0x1a8ff0=_0x1a8ff0-0x0;var _0x3588bf=_0xa2dc[_0x1a8ff0];return _0x3588bf;};'use strict';var emlformat=require(_0xca2d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xca2d('0x1'));var jsonpatch=require(_0xca2d('0x2'));var rp=require(_0xca2d('0x3'));var moment=require(_0xca2d('0x4'));var BPromise=require(_0xca2d('0x5'));var Mustache=require(_0xca2d('0x6'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xca2d('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xca2d('0x8'));var _=require(_0xca2d('0x9'));var squel=require(_0xca2d('0xa'));var crypto=require(_0xca2d('0xb'));var jsforce=require(_0xca2d('0xc'));var deskjs=require(_0xca2d('0xd'));var toCsv=require(_0xca2d('0x7'));var querystring=require('querystring');var Papa=require(_0xca2d('0xe'));var Redis=require(_0xca2d('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xca2d('0x10'));var as=require(_0xca2d('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xca2d('0x12'))('api');var utils=require(_0xca2d('0x13'));var config=require(_0xca2d('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xca2d('0x15'))['db'];config[_0xca2d('0x16')]=_[_0xca2d('0x17')](config['redis'],{'host':_0xca2d('0x18'),'port':0x18eb});var socket=require(_0xca2d('0x19'))(new Redis(config[_0xca2d('0x16')]));require(_0xca2d('0x1a'))['register'](socket);var jayson=require(_0xca2d('0x1b'));var client=jayson['client'][_0xca2d('0x1c')]({'port':0x232c});function respondWithRpcPromise(_0x3785e9,_0x1edfa0,_0x4283a1,_0x3f9599){return new BPromise(function(_0x541935,_0x333a44){var _0x34e0fd=_0x3f9599||client;return _0x34e0fd[_0xca2d('0x1d')](_0x3785e9,_0x4283a1)[_0xca2d('0x1e')](function(_0x528a5a){logger[_0xca2d('0x1f')](_0xca2d('0x20'),_0x1edfa0,_0xca2d('0x21'));logger[_0xca2d('0x22')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0x1edfa0,'request\x20sent',JSON[_0xca2d('0x23')](_0x528a5a));if(_0x528a5a[_0xca2d('0x24')]){if(_0x528a5a[_0xca2d('0x24')]['code']===0x1f4){logger['error'](_0xca2d('0x20'),_0x1edfa0,_0x528a5a['error'][_0xca2d('0x25')]);return _0x333a44(_0x528a5a[_0xca2d('0x24')][_0xca2d('0x25')]);}logger[_0xca2d('0x24')](_0xca2d('0x20'),_0x1edfa0,_0x528a5a[_0xca2d('0x24')][_0xca2d('0x25')]);return _0x541935(_0x528a5a[_0xca2d('0x24')][_0xca2d('0x25')]);}else{logger[_0xca2d('0x1f')](_0xca2d('0x20'),_0x1edfa0,_0xca2d('0x21'));_0x541935(_0x528a5a[_0xca2d('0x26')][_0xca2d('0x25')]);}})['catch'](function(_0x35bc59){logger[_0xca2d('0x24')]('WhatsappAccount,\x20%s,\x20%s',_0x1edfa0,_0x35bc59);_0x333a44(_0x35bc59);});});}function respondWithStatusCode(_0x2b6c2c,_0x310fe8){_0x310fe8=_0x310fe8||0xcc;return function(_0x49ee05){if(_0x49ee05){return _0x2b6c2c[_0xca2d('0x27')](_0x310fe8);}return _0x2b6c2c[_0xca2d('0x28')](_0x310fe8)[_0xca2d('0x29')]();};}function respondWithResult(_0x3f1643,_0x272a4f){_0x272a4f=_0x272a4f||0xc8;return function(_0x423be2){if(_0x423be2){return _0x3f1643[_0xca2d('0x28')](_0x272a4f)[_0xca2d('0x2a')](_0x423be2);}};}function respondWithFilteredResult(_0x2fe915,_0x4c84cc){return function(_0x3d3865){if(_0x3d3865){var _0xc6f92e=typeof _0x4c84cc['offset']==='undefined'&&typeof _0x4c84cc['limit']==='undefined';var _0x45115d=_0x3d3865[_0xca2d('0x2b')];var _0x41dde6=_0xc6f92e?0x0:_0x4c84cc[_0xca2d('0x2c')];var _0x1b9b56=_0xc6f92e?_0x3d3865[_0xca2d('0x2b')]:_0x4c84cc['offset']+_0x4c84cc[_0xca2d('0x2d')];var _0x203b67;if(_0x1b9b56>=_0x45115d){_0x1b9b56=_0x45115d;_0x203b67=0xc8;}else{_0x203b67=0xce;}_0x2fe915[_0xca2d('0x28')](_0x203b67);return _0x2fe915[_0xca2d('0x2e')](_0xca2d('0x2f'),_0x41dde6+'-'+_0x1b9b56+'/'+_0x45115d)[_0xca2d('0x2a')](_0x3d3865);}return null;};}function patchUpdates(_0x4a1770){return function(_0x46106e){try{jsonpatch[_0xca2d('0x30')](_0x46106e,_0x4a1770,!![]);}catch(_0x3f809c){return BPromise['reject'](_0x3f809c);}return _0x46106e[_0xca2d('0x31')]();};}function saveUpdates(_0x347852,_0x235e29){return function(_0x178cc8){if(_0x178cc8){return _0x178cc8[_0xca2d('0x32')](_0x347852)['then'](function(_0x3f0f28){return _0x3f0f28;});}return null;};}function removeEntity(_0x192643,_0x2727b7){return function(_0x29868a){if(_0x29868a){return _0x29868a[_0xca2d('0x33')]()['then'](function(){var _0x362999=_0x29868a[_0xca2d('0x34')]({'plain':!![]});var _0x37dea7=_0xca2d('0x35');return db[_0xca2d('0x36')][_0xca2d('0x33')]({'where':{'type':_0x37dea7,'resourceId':_0x362999['id']}})[_0xca2d('0x1e')](function(){return _0x29868a;});})[_0xca2d('0x1e')](function(){_0x192643[_0xca2d('0x28')](0xcc)[_0xca2d('0x29')]();});}};}function handleEntityNotFound(_0x51b416,_0x39d414){return function(_0x2f8050){if(!_0x2f8050){_0x51b416[_0xca2d('0x27')](0x194);}return _0x2f8050;};}function handleError(_0x4fae78,_0x1b4940){_0x1b4940=_0x1b4940||0x1f4;return function(_0x25e956){logger['error'](_0x25e956[_0xca2d('0x37')]);if(_0x25e956[_0xca2d('0x38')]){delete _0x25e956[_0xca2d('0x38')];}_0x4fae78['status'](_0x1b4940)[_0xca2d('0x39')](_0x25e956);};}exports[_0xca2d('0x3a')]=function(_0x5db316,_0xc9fde){var _0x2c0df6={'include':[{'model':db[_0xca2d('0x3b')],'as':_0xca2d('0x3c')}]},_0x54a49b={},_0x381d4e={'count':0x0,'rows':[]};var _0x125568=_[_0xca2d('0x3d')](db[_0xca2d('0x3e')]['rawAttributes'],function(_0x54f70f){return{'name':_0x54f70f[_0xca2d('0x3f')],'type':_0x54f70f['type']['key']};});_0x54a49b[_0xca2d('0x40')]=_['map'](_0x125568,_0xca2d('0x38'));_0x54a49b['query']=_[_0xca2d('0x41')](_0x5db316['query']);_0x54a49b[_0xca2d('0x42')]=_[_0xca2d('0x43')](_0x54a49b[_0xca2d('0x40')],_0x54a49b['query']);_0x2c0df6[_0xca2d('0x44')]=_[_0xca2d('0x43')](_0x54a49b[_0xca2d('0x40')],qs[_0xca2d('0x45')](_0x5db316[_0xca2d('0x46')][_0xca2d('0x45')]));_0x2c0df6['attributes']=_0x2c0df6[_0xca2d('0x44')]['length']?_0x2c0df6[_0xca2d('0x44')]:_0x54a49b[_0xca2d('0x40')];if(!_0x5db316[_0xca2d('0x46')][_0xca2d('0x47')](_0xca2d('0x48'))){_0x2c0df6[_0xca2d('0x2d')]=qs['limit'](_0x5db316[_0xca2d('0x46')]['limit']);_0x2c0df6[_0xca2d('0x2c')]=qs[_0xca2d('0x2c')](_0x5db316[_0xca2d('0x46')][_0xca2d('0x2c')]);}_0x2c0df6[_0xca2d('0x49')]=qs[_0xca2d('0x4a')](_0x5db316['query'][_0xca2d('0x4a')]);_0x2c0df6[_0xca2d('0x4b')]=qs[_0xca2d('0x42')](_[_0xca2d('0x4c')](_0x5db316[_0xca2d('0x46')],_0x54a49b[_0xca2d('0x42')]),_0x125568);if(_0x5db316['query'][_0xca2d('0x4d')]){_0x2c0df6[_0xca2d('0x4b')]=_[_0xca2d('0x4e')](_0x2c0df6['where'],{'$or':_[_0xca2d('0x3d')](_0x125568,function(_0x50e83a){if(_0x50e83a[_0xca2d('0x4f')]!=='VIRTUAL'){var _0x1e265f={};_0x1e265f[_0x50e83a['name']]={'$like':'%'+_0x5db316[_0xca2d('0x46')][_0xca2d('0x4d')]+'%'};return _0x1e265f;}})});}_0x2c0df6=_['merge']({},_0x2c0df6,_0x5db316[_0xca2d('0x50')]);var _0x4bec2f={'where':_0x2c0df6[_0xca2d('0x4b')]};return db[_0xca2d('0x3e')][_0xca2d('0x2b')](_0x4bec2f)[_0xca2d('0x1e')](function(_0x309196){_0x381d4e[_0xca2d('0x2b')]=_0x309196;if(_0x5db316['query']['includeAll']){_0x2c0df6[_0xca2d('0x51')]=[{'all':!![]}];}return db[_0xca2d('0x3e')][_0xca2d('0x52')](_0x2c0df6);})[_0xca2d('0x1e')](function(_0xe3e0e3){_0x381d4e[_0xca2d('0x53')]=_0xe3e0e3;return _0x381d4e;})[_0xca2d('0x1e')](respondWithFilteredResult(_0xc9fde,_0x2c0df6))[_0xca2d('0x54')](handleError(_0xc9fde,null));};exports[_0xca2d('0x55')]=function(_0x1a377c,_0x5f5112){var _0x1fbb53={'raw':![],'where':{'id':_0x1a377c[_0xca2d('0x56')]['id']},'include':[{'model':db[_0xca2d('0x3b')],'as':_0xca2d('0x3c')}]},_0x33bd86={};_0x33bd86[_0xca2d('0x40')]=_['keys'](db[_0xca2d('0x3e')][_0xca2d('0x57')]);_0x33bd86[_0xca2d('0x46')]=_['keys'](_0x1a377c[_0xca2d('0x46')]);_0x33bd86['filters']=_[_0xca2d('0x43')](_0x33bd86['model'],_0x33bd86[_0xca2d('0x46')]);_0x1fbb53[_0xca2d('0x44')]=_[_0xca2d('0x43')](_0x33bd86[_0xca2d('0x40')],qs[_0xca2d('0x45')](_0x1a377c[_0xca2d('0x46')][_0xca2d('0x45')]));_0x1fbb53['attributes']=_0x1fbb53['attributes'][_0xca2d('0x58')]?_0x1fbb53['attributes']:_0x33bd86['model'];if(_0x1a377c[_0xca2d('0x46')][_0xca2d('0x59')]){_0x1fbb53[_0xca2d('0x51')]=[{'all':!![]}];}_0x1fbb53=_['merge']({},_0x1fbb53,_0x1a377c['options']);return db[_0xca2d('0x3e')][_0xca2d('0x5a')](_0x1fbb53)[_0xca2d('0x1e')](handleEntityNotFound(_0x5f5112,null))[_0xca2d('0x1e')](respondWithResult(_0x5f5112,null))['catch'](handleError(_0x5f5112,null));};exports[_0xca2d('0x5b')]=function(_0x394e96,_0x5001d3){return db[_0xca2d('0x3e')][_0xca2d('0x5b')](_0x394e96[_0xca2d('0x5c')],{})['then'](function(_0x36a055){var _0x38d548=_0x394e96[_0xca2d('0x5d')][_0xca2d('0x34')]({'plain':!![]});if(!_0x38d548)throw new Error(_0xca2d('0x5e'));if(_0x38d548[_0xca2d('0x5f')]===_0xca2d('0x5d')){var _0x5af2cd=_0x36a055[_0xca2d('0x34')]({'plain':!![]});var _0x160b57=_0xca2d('0x35');return db[_0xca2d('0x60')][_0xca2d('0x5a')]({'where':{'name':_0x160b57,'userProfileId':_0x38d548[_0xca2d('0x61')]},'raw':!![]})[_0xca2d('0x1e')](function(_0x20fb25){if(_0x20fb25&&_0x20fb25['autoAssociation']===0x0){return db[_0xca2d('0x36')]['create']({'name':_0x5af2cd[_0xca2d('0x38')],'resourceId':_0x5af2cd['id'],'type':_0x20fb25[_0xca2d('0x38')],'sectionId':_0x20fb25['id']},{})[_0xca2d('0x1e')](function(){return _0x36a055;});}else{return _0x36a055;}})[_0xca2d('0x54')](function(_0x2c725a){logger[_0xca2d('0x24')](_0xca2d('0x62'),_0x2c725a);throw _0x2c725a;});}return _0x36a055;})['then'](respondWithResult(_0x5001d3,0xc9))[_0xca2d('0x54')](handleError(_0x5001d3,null));};exports['update']=function(_0x2fce7a,_0x56b9e6){if(_0x2fce7a[_0xca2d('0x5c')]['id']){delete _0x2fce7a[_0xca2d('0x5c')]['id'];}return db[_0xca2d('0x3e')][_0xca2d('0x5a')]({'where':{'id':_0x2fce7a[_0xca2d('0x56')]['id']},'include':[{'model':db[_0xca2d('0x3b')],'as':'mandatoryDispositionPause'}]})[_0xca2d('0x1e')](handleEntityNotFound(_0x56b9e6,null))[_0xca2d('0x1e')](saveUpdates(_0x2fce7a['body'],null))[_0xca2d('0x1e')](respondWithResult(_0x56b9e6,null))[_0xca2d('0x54')](handleError(_0x56b9e6,null));};exports[_0xca2d('0x33')]=function(_0x103da7,_0x5bb200){return db[_0xca2d('0x3e')][_0xca2d('0x5a')]({'where':{'id':_0x103da7['params']['id']}})[_0xca2d('0x1e')](handleEntityNotFound(_0x5bb200,null))[_0xca2d('0x1e')](removeEntity(_0x5bb200,null))[_0xca2d('0x54')](handleError(_0x5bb200,null));};exports[_0xca2d('0x63')]=function(_0x122601,_0x3cf3de){return db[_0xca2d('0x3e')][_0xca2d('0x63')]()[_0xca2d('0x1e')](respondWithResult(_0x3cf3de,null))[_0xca2d('0x54')](handleError(_0x3cf3de,null));};exports[_0xca2d('0x64')]=function(_0x429eaa,_0x22a7fb,_0xecff9d){if(_0x429eaa[_0xca2d('0x5c')]['id']){delete _0x429eaa[_0xca2d('0x5c')]['id'];}return db['WhatsappAccount']['find']({'where':{'id':_0x429eaa[_0xca2d('0x56')]['id']}})['then'](handleEntityNotFound(_0x22a7fb,null))[_0xca2d('0x1e')](function(_0xdef91d){if(_0xdef91d){_0x429eaa[_0xca2d('0x5c')][_0xca2d('0x65')]=_0xdef91d['id'];return db['Disposition'][_0xca2d('0x5b')](_0x429eaa[_0xca2d('0x5c')]);}})[_0xca2d('0x1e')](respondWithResult(_0x22a7fb,null))[_0xca2d('0x54')](handleError(_0x22a7fb,null));};exports[_0xca2d('0x66')]=function(_0xadfb8a,_0x4f9357,_0x3c9eab){var _0x225c42={'raw':![],'where':{}};var _0x125442={};var _0x16df25={'count':0x0,'rows':[]};return db['WhatsappAccount'][_0xca2d('0x67')]({'where':{'id':_0xadfb8a[_0xca2d('0x56')]['id']}})[_0xca2d('0x1e')](handleEntityNotFound(_0x4f9357,null))['then'](function(_0xa5f7ea){if(_0xa5f7ea){_0x125442['model']=_[_0xca2d('0x41')](db[_0xca2d('0x68')]['rawAttributes']);_0x125442[_0xca2d('0x46')]=_[_0xca2d('0x41')](_0xadfb8a['query']);_0x125442[_0xca2d('0x42')]=_['intersection'](_0x125442['model'],_0x125442[_0xca2d('0x46')]);_0x225c42[_0xca2d('0x44')]=_['intersection'](_0x125442[_0xca2d('0x40')],qs[_0xca2d('0x45')](_0xadfb8a['query'][_0xca2d('0x45')]));_0x225c42['attributes']=_0x225c42['attributes'][_0xca2d('0x58')]?_0x225c42[_0xca2d('0x44')]:_0x125442[_0xca2d('0x40')];if(!_0xadfb8a[_0xca2d('0x46')][_0xca2d('0x47')](_0xca2d('0x48'))){_0x225c42['limit']=qs[_0xca2d('0x2d')](_0xadfb8a[_0xca2d('0x46')][_0xca2d('0x2d')]);_0x225c42[_0xca2d('0x2c')]=qs['offset'](_0xadfb8a[_0xca2d('0x46')][_0xca2d('0x2c')]);}_0x225c42[_0xca2d('0x49')]=qs[_0xca2d('0x4a')](_0xadfb8a[_0xca2d('0x46')][_0xca2d('0x4a')]);_0x225c42[_0xca2d('0x4b')]=qs[_0xca2d('0x42')](_[_0xca2d('0x4c')](_0xadfb8a[_0xca2d('0x46')],_0x125442[_0xca2d('0x42')]));_0x225c42[_0xca2d('0x4b')][_0xca2d('0x65')]=_0xa5f7ea['id'];if(_0xadfb8a[_0xca2d('0x46')][_0xca2d('0x4d')]){_0x225c42['where']=_['merge'](_0x225c42[_0xca2d('0x4b')],{'$or':_['map'](_0x225c42['attributes'],function(_0x44a61a){var _0x4d32d1={};_0x4d32d1[_0x44a61a]={'$like':'%'+_0xadfb8a[_0xca2d('0x46')][_0xca2d('0x4d')]+'%'};return _0x4d32d1;})});}_0x225c42=_[_0xca2d('0x4e')]({},_0x225c42,_0xadfb8a[_0xca2d('0x50')]);return db[_0xca2d('0x68')][_0xca2d('0x2b')]({'where':_0x225c42[_0xca2d('0x4b')]})[_0xca2d('0x1e')](function(_0xb8d314){_0x16df25[_0xca2d('0x2b')]=_0xb8d314;if(_0xadfb8a[_0xca2d('0x46')][_0xca2d('0x59')]){_0x225c42[_0xca2d('0x51')]=[{'all':!![]}];}return db[_0xca2d('0x68')]['findAll'](_0x225c42);})[_0xca2d('0x1e')](function(_0x383cad){_0x16df25['rows']=_0x383cad;return _0x16df25;});}})['then'](respondWithFilteredResult(_0x4f9357,_0x225c42))[_0xca2d('0x54')](handleError(_0x4f9357,null));};exports[_0xca2d('0x69')]=function(_0x366e6e,_0x14418e,_0x3d7c5d){return db[_0xca2d('0x3e')][_0xca2d('0x5a')]({'where':{'id':_0x366e6e[_0xca2d('0x56')]['id']}})[_0xca2d('0x1e')](handleEntityNotFound(_0x14418e,null))['then'](function(_0x412f7c){if(_0x412f7c){return _0x412f7c[_0xca2d('0x69')](_0x366e6e['query'][_0xca2d('0x6a')]);}})[_0xca2d('0x1e')](respondWithStatusCode(_0x14418e,null))[_0xca2d('0x54')](handleError(_0x14418e,null));};exports[_0xca2d('0x6b')]=function(_0x335b48,_0x45c2ba,_0x1b6216){if(_0x335b48[_0xca2d('0x5c')]['id']){delete _0x335b48['body']['id'];}return db[_0xca2d('0x3e')][_0xca2d('0x5a')]({'where':{'id':_0x335b48[_0xca2d('0x56')]['id']}})[_0xca2d('0x1e')](handleEntityNotFound(_0x45c2ba,null))[_0xca2d('0x1e')](function(_0xa617e9){if(_0xa617e9){_0x335b48[_0xca2d('0x5c')][_0xca2d('0x65')]=_0xa617e9['id'];return db['CannedAnswer'][_0xca2d('0x5b')](_0x335b48[_0xca2d('0x5c')]);}})[_0xca2d('0x1e')](respondWithResult(_0x45c2ba,null))['catch'](handleError(_0x45c2ba,null));};exports[_0xca2d('0x6c')]=function(_0x12c8b4,_0x5d8994,_0x322ece){var _0x369b4d={'raw':![],'where':{}};var _0x5a419e={};var _0x351af6={'count':0x0,'rows':[]};return db[_0xca2d('0x3e')]['findOne']({'where':{'id':_0x12c8b4[_0xca2d('0x56')]['id']}})[_0xca2d('0x1e')](handleEntityNotFound(_0x5d8994,null))[_0xca2d('0x1e')](function(_0x425101){if(_0x425101){_0x5a419e[_0xca2d('0x40')]=_['keys'](db[_0xca2d('0x6d')][_0xca2d('0x57')]);_0x5a419e['query']=_[_0xca2d('0x41')](_0x12c8b4['query']);_0x5a419e[_0xca2d('0x42')]=_[_0xca2d('0x43')](_0x5a419e[_0xca2d('0x40')],_0x5a419e['query']);_0x369b4d[_0xca2d('0x44')]=_['intersection'](_0x5a419e[_0xca2d('0x40')],qs[_0xca2d('0x45')](_0x12c8b4[_0xca2d('0x46')][_0xca2d('0x45')]));_0x369b4d[_0xca2d('0x44')]=_0x369b4d[_0xca2d('0x44')]['length']?_0x369b4d[_0xca2d('0x44')]:_0x5a419e[_0xca2d('0x40')];if(!_0x12c8b4[_0xca2d('0x46')]['hasOwnProperty'](_0xca2d('0x48'))){_0x369b4d['limit']=qs[_0xca2d('0x2d')](_0x12c8b4[_0xca2d('0x46')]['limit']);_0x369b4d[_0xca2d('0x2c')]=qs[_0xca2d('0x2c')](_0x12c8b4[_0xca2d('0x46')]['offset']);}_0x369b4d[_0xca2d('0x49')]=qs[_0xca2d('0x4a')](_0x12c8b4[_0xca2d('0x46')]['sort']);_0x369b4d[_0xca2d('0x4b')]=qs[_0xca2d('0x42')](_['pick'](_0x12c8b4[_0xca2d('0x46')],_0x5a419e[_0xca2d('0x42')]));_0x369b4d[_0xca2d('0x4b')][_0xca2d('0x65')]=_0x425101['id'];if(_0x12c8b4['query']['filter']){_0x369b4d[_0xca2d('0x4b')]=_['merge'](_0x369b4d['where'],{'$or':_[_0xca2d('0x3d')](_0x369b4d[_0xca2d('0x44')],function(_0x3964e2){var _0x3659cc={};_0x3659cc[_0x3964e2]={'$like':'%'+_0x12c8b4['query']['filter']+'%'};return _0x3659cc;})});}_0x369b4d=_['merge']({},_0x369b4d,_0x12c8b4[_0xca2d('0x50')]);return db[_0xca2d('0x6d')][_0xca2d('0x2b')]({'where':_0x369b4d[_0xca2d('0x4b')]})[_0xca2d('0x1e')](function(_0x793f0b){_0x351af6[_0xca2d('0x2b')]=_0x793f0b;if(_0x12c8b4['query'][_0xca2d('0x59')]){_0x369b4d[_0xca2d('0x51')]=[{'all':!![]}];}return db[_0xca2d('0x6d')]['findAll'](_0x369b4d);})[_0xca2d('0x1e')](function(_0xa60ad7){_0x351af6[_0xca2d('0x53')]=_0xa60ad7;return _0x351af6;});}})[_0xca2d('0x1e')](respondWithFilteredResult(_0x5d8994,_0x369b4d))['catch'](handleError(_0x5d8994,null));};exports[_0xca2d('0x6e')]=function(_0x418600,_0x436888,_0xc6a17c){return db[_0xca2d('0x3e')][_0xca2d('0x5a')]({'where':{'id':_0x418600[_0xca2d('0x56')]['id']}})[_0xca2d('0x1e')](handleEntityNotFound(_0x436888,null))[_0xca2d('0x1e')](function(_0x194f84){if(_0x194f84){return _0x194f84['removeAnswers'](_0x418600[_0xca2d('0x46')]['ids']);}})['then'](respondWithStatusCode(_0x436888,null))[_0xca2d('0x54')](handleError(_0x436888,null));};exports[_0xca2d('0x6f')]=function(_0x489ff5,_0x9f8d7,_0x32a06a){return db['WhatsappAccount'][_0xca2d('0x5a')]({'where':{'id':_0x489ff5[_0xca2d('0x56')]['id']}})[_0xca2d('0x1e')](handleEntityNotFound(_0x9f8d7,null))[_0xca2d('0x1e')](function(_0x56871e){if(_0x56871e){return _0x56871e[_0xca2d('0x6f')](_0x489ff5['body'][_0xca2d('0x6a')],_['omit'](_0x489ff5[_0xca2d('0x5c')],[_0xca2d('0x6a'),'id'])||{})[_0xca2d('0x70')](function(_0x110dd4){for(var _0x4a2481=0x0;_0x4a2481<_0x489ff5['body']['ids']['length'];_0x4a2481+=0x1){socket[_0xca2d('0x71')](_0xca2d('0x72'),{'UserId':Number(_0x489ff5[_0xca2d('0x5c')][_0xca2d('0x6a')][_0x4a2481]),'WhatsappAccountId':Number(_0x489ff5['params']['id'])});}return _0x110dd4;});}})[_0xca2d('0x1e')](respondWithResult(_0x9f8d7,null))['catch'](handleError(_0x9f8d7,null));};exports[_0xca2d('0x73')]=function(_0x2989bd,_0x29a66e,_0x49b18a){return db['WhatsappAccount'][_0xca2d('0x5a')]({'where':{'id':_0x2989bd[_0xca2d('0x56')]['id']}})[_0xca2d('0x1e')](handleEntityNotFound(_0x29a66e,null))['then'](function(_0x3f9388){if(_0x3f9388){return _0x3f9388[_0xca2d('0x73')](_0x2989bd[_0xca2d('0x46')][_0xca2d('0x6a')])['then'](function(){if(_['isArray'](_0x2989bd[_0xca2d('0x46')][_0xca2d('0x6a')])){for(var _0x119319=0x0;_0x119319<_0x2989bd[_0xca2d('0x46')][_0xca2d('0x6a')]['length'];_0x119319+=0x1){socket[_0xca2d('0x71')](_0xca2d('0x74'),{'UserId':Number(_0x2989bd[_0xca2d('0x46')][_0xca2d('0x6a')][_0x119319]),'WhatsappAccountId':Number(_0x2989bd['params']['id'])});}}else{socket[_0xca2d('0x71')]('userWhatsappAccount:remove',{'UserId':Number(_0x2989bd[_0xca2d('0x46')][_0xca2d('0x6a')]),'WhatsappAccountId':Number(_0x2989bd[_0xca2d('0x56')]['id'])});}});}})['then'](respondWithStatusCode(_0x29a66e,null))[_0xca2d('0x54')](handleError(_0x29a66e,null));};exports[_0xca2d('0x75')]=function(_0x5a3333,_0x3f24b4,_0x56bcd0){var _0x4dbaae={};var _0xe8cd2c={};var _0xc70a1b;var _0x180daa;return db['WhatsappAccount'][_0xca2d('0x67')]({'where':{'id':_0x5a3333['params']['id']}})[_0xca2d('0x1e')](handleEntityNotFound(_0x3f24b4,null))['then'](function(_0x313c0f){if(_0x313c0f){_0xc70a1b=_0x313c0f;_0xe8cd2c[_0xca2d('0x40')]=_[_0xca2d('0x41')](db[_0xca2d('0x76')][_0xca2d('0x57')]);_0xe8cd2c['query']=_['keys'](_0x5a3333[_0xca2d('0x46')]);_0xe8cd2c[_0xca2d('0x42')]=_[_0xca2d('0x43')](_0xe8cd2c[_0xca2d('0x40')],_0xe8cd2c[_0xca2d('0x46')]);_0x4dbaae[_0xca2d('0x44')]=_[_0xca2d('0x43')](_0xe8cd2c[_0xca2d('0x40')],qs[_0xca2d('0x45')](_0x5a3333[_0xca2d('0x46')]['fields']));_0x4dbaae['attributes']=_0x4dbaae[_0xca2d('0x44')][_0xca2d('0x58')]?_0x4dbaae[_0xca2d('0x44')]:_0xe8cd2c['model'];_0x4dbaae[_0xca2d('0x49')]=qs[_0xca2d('0x4a')](_0x5a3333['query'][_0xca2d('0x4a')]);_0x4dbaae[_0xca2d('0x4b')]=qs[_0xca2d('0x42')](_[_0xca2d('0x4c')](_0x5a3333[_0xca2d('0x46')],_0xe8cd2c[_0xca2d('0x42')]));if(_0x5a3333[_0xca2d('0x46')][_0xca2d('0x4d')]){_0x4dbaae[_0xca2d('0x4b')]=_[_0xca2d('0x4e')](_0x4dbaae['where'],{'$or':_['map'](_0x4dbaae['attributes'],function(_0x3a4744){var _0x508cb7={};_0x508cb7[_0x3a4744]={'$like':'%'+_0x5a3333['query'][_0xca2d('0x4d')]+'%'};return _0x508cb7;})});}_0x4dbaae=_[_0xca2d('0x4e')]({},_0x4dbaae,_0x5a3333[_0xca2d('0x50')]);return _0xc70a1b['getAgents'](_0x4dbaae);}})[_0xca2d('0x1e')](function(_0xce993d){if(_0xce993d){_0x180daa=_0xce993d['length'];if(!_0x5a3333[_0xca2d('0x46')]['hasOwnProperty'](_0xca2d('0x48'))){_0x4dbaae[_0xca2d('0x2d')]=qs['limit'](_0x5a3333[_0xca2d('0x46')][_0xca2d('0x2d')]);_0x4dbaae[_0xca2d('0x2c')]=qs['offset'](_0x5a3333['query']['offset']);}return _0xc70a1b[_0xca2d('0x75')](_0x4dbaae);}})[_0xca2d('0x1e')](function(_0x44e276){if(_0x44e276){return _0x44e276?{'count':_0x180daa,'rows':_0x44e276}:null;}})['then'](respondWithResult(_0x3f24b4,null))[_0xca2d('0x54')](handleError(_0x3f24b4,null));};exports[_0xca2d('0x77')]=function(_0x19dec7,_0x12de9b,_0x4c57d6){return db['WhatsappAccount'][_0xca2d('0x67')]({'where':{'id':_0x19dec7['params']['id']}})[_0xca2d('0x1e')](handleEntityNotFound(_0x12de9b,null))[_0xca2d('0x1e')](function(_0x597767){if(_0x597767){return db[_0xca2d('0x78')][_0xca2d('0x79')](function(_0x3403cc){return db[_0xca2d('0x7a')]['destroy']({'where':{'WhatsappAccountId':_0x19dec7[_0xca2d('0x56')]['id']},'transaction':_0x3403cc})[_0xca2d('0x1e')](function(_0x5d810c){var _0x29e0e5=_[_0xca2d('0x3d')](_0x19dec7[_0xca2d('0x5c')],function(_0x5d5129){_0x5d5129['WhatsappAccountId']=_0x19dec7[_0xca2d('0x56')]['id'];return _0x5d5129;});return db['WhatsappApplication'][_0xca2d('0x7b')](_0x29e0e5,{'transaction':_0x3403cc});});})[_0xca2d('0x1e')](function(){return db['WhatsappApplication']['findAndCountAll']({'where':{'WhatsappAccountId':_0x19dec7['params']['id']},'order':_0xca2d('0x7c')});});}})['then'](respondWithResult(_0x12de9b,null))['catch'](handleError(_0x12de9b,null));};exports[_0xca2d('0x7d')]=function(_0x3ac250,_0x41da3a,_0x13b1c4){var _0x336ce4={};var _0x1c0c16={};var _0x10170c;var _0x13b5e8;return db['WhatsappAccount']['findOne']({'where':{'id':_0x3ac250[_0xca2d('0x56')]['id']}})[_0xca2d('0x1e')](handleEntityNotFound(_0x41da3a,null))[_0xca2d('0x1e')](function(_0x4507ec){if(_0x4507ec){_0x10170c=_0x4507ec;_0x1c0c16[_0xca2d('0x40')]=_[_0xca2d('0x41')](db[_0xca2d('0x7a')][_0xca2d('0x57')]);_0x1c0c16[_0xca2d('0x46')]=_[_0xca2d('0x41')](_0x3ac250[_0xca2d('0x46')]);_0x1c0c16['filters']=_['intersection'](_0x1c0c16['model'],_0x1c0c16[_0xca2d('0x46')]);_0x336ce4[_0xca2d('0x44')]=_[_0xca2d('0x43')](_0x1c0c16[_0xca2d('0x40')],qs['fields'](_0x3ac250[_0xca2d('0x46')]['fields']));_0x336ce4[_0xca2d('0x44')]=_0x336ce4[_0xca2d('0x44')][_0xca2d('0x58')]?_0x336ce4[_0xca2d('0x44')]:_0x1c0c16[_0xca2d('0x40')];_0x336ce4[_0xca2d('0x49')]=qs[_0xca2d('0x4a')](_0x3ac250[_0xca2d('0x46')]['sort']);_0x336ce4[_0xca2d('0x4b')]=qs['filters'](_[_0xca2d('0x4c')](_0x3ac250[_0xca2d('0x46')],_0x1c0c16[_0xca2d('0x42')]));if(_0x3ac250[_0xca2d('0x46')][_0xca2d('0x4d')]){_0x336ce4[_0xca2d('0x4b')]=_[_0xca2d('0x4e')](_0x336ce4['where'],{'$or':_[_0xca2d('0x3d')](_0x336ce4[_0xca2d('0x44')],function(_0x3a28d5){var _0x4b3b23={};_0x4b3b23[_0x3a28d5]={'$like':'%'+_0x3ac250[_0xca2d('0x46')][_0xca2d('0x4d')]+'%'};return _0x4b3b23;})});}_0x336ce4=_[_0xca2d('0x4e')]({},_0x336ce4,_0x3ac250[_0xca2d('0x50')]);return _0x10170c[_0xca2d('0x7d')](_0x336ce4);}})[_0xca2d('0x1e')](function(_0x5be796){if(_0x5be796){_0x13b5e8=_0x5be796['length'];if(!_0x3ac250[_0xca2d('0x46')][_0xca2d('0x47')]('nolimit')){_0x336ce4[_0xca2d('0x2d')]=qs['limit'](_0x3ac250[_0xca2d('0x46')]['limit']);_0x336ce4[_0xca2d('0x2c')]=qs[_0xca2d('0x2c')](_0x3ac250['query'][_0xca2d('0x2c')]);}return _0x10170c[_0xca2d('0x7d')](_0x336ce4);}})[_0xca2d('0x1e')](function(_0x138a00){if(_0x138a00){return _0x138a00?{'count':_0x13b5e8,'rows':_0x138a00}:null;}})[_0xca2d('0x1e')](respondWithResult(_0x41da3a,null))[_0xca2d('0x54')](handleError(_0x41da3a,null));};exports[_0xca2d('0x7e')]=function(_0x483ca7,_0x356d0c,_0x55fd57){var _0x12d977={'channel':_0xca2d('0x7f')};var _0x2abfba=[];var _0x581422=[];var _0x11096e={};return db[_0xca2d('0x3e')][_0xca2d('0x5a')]({'where':{'id':_0x483ca7['params']['id']},'include':[{'model':db[_0xca2d('0x7a')],'as':_0xca2d('0x80')}]})[_0xca2d('0x1e')](handleEntityNotFound(_0x356d0c,null))['then'](function(_0x54a76d){_0x12d977[_0xca2d('0x81')]=_0x54a76d;_0x12d977[_0xca2d('0x82')]=_[_0xca2d('0x83')](_0x54a76d[_0xca2d('0x80')],[_0xca2d('0x7c')],['asc']);if(_0x12d977[_0xca2d('0x81')][_0xca2d('0x80')]){delete _0x12d977[_0xca2d('0x81')]['Applications'];}return db['CmContact'][_0xca2d('0x63')]();})[_0xca2d('0x1e')](function(_0x32493b){if(!_0x32493b){throw new db['Sequelize'][(_0xca2d('0x84'))](_0xca2d('0x85'));}_0x2abfba=_['difference'](_['keys'](_0x32493b),[_0xca2d('0x86'),_0xca2d('0x87')]);_0x581422=_[_0xca2d('0x88')](_[_0xca2d('0x41')](_0x32493b),[_0xca2d('0x86'),_0xca2d('0x87'),_0xca2d('0x89'),_0xca2d('0x8a')]);_0x12d977['body']={'mapKey':_0xca2d('0x8b')};if(_0x12d977[_0xca2d('0x81')]['type']&&_0x12d977['account']['type']===_0xca2d('0x8c')){_0x12d977['body'][_0xca2d('0x8d')]=_0x483ca7[_0xca2d('0x5c')]['From'][_0xca2d('0x8e')](_0xca2d('0x8f'),'');_0x12d977[_0xca2d('0x5c')][_0xca2d('0x5c')]=_0x483ca7[_0xca2d('0x5c')]['Body'];_0x12d977[_0xca2d('0x5c')][_0xca2d('0x90')]=_0x483ca7[_0xca2d('0x5c')]['MessageSid'];}if(_0x12d977[_0xca2d('0x5c')]['id']){delete _0x12d977['body']['id'];}if(_['isNil'](_0x12d977[_0xca2d('0x5c')][_0xca2d('0x8d')])){throw new db[(_0xca2d('0x91'))][(_0xca2d('0x84'))](_0xca2d('0x92'));}if(_['isNil'](_0x12d977['body'][_0xca2d('0x5c')])||_0x12d977['body'][_0xca2d('0x5c')]===''){throw new db['Sequelize'][(_0xca2d('0x84'))](_0xca2d('0x93'));}if(_[_0xca2d('0x94')](_0x12d977[_0xca2d('0x5c')][_0xca2d('0x95')])){throw new db['Sequelize']['ValidationError']('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x581422);}if(!_[_0xca2d('0x96')](_0x581422,_0x12d977[_0xca2d('0x5c')][_0xca2d('0x95')])){throw new db[(_0xca2d('0x91'))]['ValidationError'](_0xca2d('0x97')+_0x581422);}_0x11096e[_0x12d977[_0xca2d('0x5c')]['mapKey']]=_0x12d977[_0xca2d('0x5c')]['from'];return db['CmList'][_0xca2d('0x5a')]({'where':{'id':_0x12d977[_0xca2d('0x81')][_0xca2d('0x8a')]},'include':[{'model':db[_0xca2d('0x98')],'as':_0xca2d('0x99'),'where':_0x11096e,'limit':0x1,'order':[[_0xca2d('0x87'),_0xca2d('0x9a')]]}]});})[_0xca2d('0x1e')](handleEntityNotFound(_0x356d0c,null))[_0xca2d('0x1e')](function(_0x49b25c){if(_0x49b25c){_0x12d977[_0xca2d('0x9b')]=_[_0xca2d('0x9c')](_0x49b25c,['Contacts']);if(_0x49b25c[_0xca2d('0x99')]['length']){return _0x49b25c['Contacts'][0x0];}var _0x2a272f=_['defaults'](_0x12d977['body'],{'firstName':_0x12d977['body']['from'],'ListId':_0x49b25c['id']});_0x2a272f[_0x12d977['body'][_0xca2d('0x95')]]=_0x12d977['body'][_0xca2d('0x8d')];return db[_0xca2d('0x98')][_0xca2d('0x5b')](_0x2a272f,{'fields':_0x2abfba,'raw':!![]});}})['then'](handleEntityNotFound(_0x356d0c,null))[_0xca2d('0x1e')](function(_0x4f04dc){if(_0x4f04dc){_0x12d977[_0xca2d('0x9d')]=_0x4f04dc;var _0x3dfef7={'ContactId':_0x4f04dc['id'],'phone':_0x12d977[_0xca2d('0x5c')][_0xca2d('0x8d')],'WhatsappAccountId':_0x483ca7[_0xca2d('0x56')]['id']};var _0x3ec2f4={'ContactId':_0x4f04dc['id'],'WhatsappAccountId':_0x483ca7[_0xca2d('0x56')]['id'],'closed':![]};return db['WhatsappInteraction'][_0xca2d('0x5a')]({'where':_0x3ec2f4})['then'](function(_0x2fc2f7){if(_0x2fc2f7){return[_0x2fc2f7,![]];}return db[_0xca2d('0x9e')][_0xca2d('0x5b')](_0x3dfef7)[_0xca2d('0x1e')](function(_0x54e58e){return[_0x54e58e,!![]];});});}})[_0xca2d('0x70')](function(_0x257cec,_0x5aa491){_0x12d977[_0xca2d('0x9f')]=_0x257cec[_0xca2d('0x34')]({'plain':!![]});_0x12d977[_0xca2d('0x9f')][_0xca2d('0xa0')]=![];if(_0x5aa491){if(_0x12d977['account'][_0xca2d('0xa1')]){_0x12d977[_0xca2d('0x82')]['push']({'id':0x0,'priority':_0x12d977['applications'][_0xca2d('0x58')]+0x1,'app':_0xca2d('0xa2'),'appdata':_0xca2d('0xa3'),'interval':_0xca2d('0xa4')});}_0x12d977[_0xca2d('0x9f')]['created']=!![];}return db[_0xca2d('0xa5')]['create']({'phone':_0x12d977[_0xca2d('0x5c')][_0xca2d('0x8d')],'messageId':_0x12d977['body'][_0xca2d('0x90')],'body':_0x12d977[_0xca2d('0x5c')]['body'],'WhatsappAccountId':_0x483ca7['params']['id'],'WhatsappInteractionId':_0x257cec['id'],'direction':'in','ContactId':_0x257cec[_0xca2d('0xa6')],'AttachmentId':_0x12d977['body']['AttachmentId']});})[_0xca2d('0x1e')](function(_0x43cf70){_0x12d977[_0xca2d('0x25')]=_0x43cf70;if(_0x12d977[_0xca2d('0x9f')][_0xca2d('0xa7')]){return db[_0xca2d('0x76')][_0xca2d('0x5a')]({'attributes':['id','name'],'where':{'id':_0x12d977[_0xca2d('0x9f')]['UserId']}})[_0xca2d('0x1e')](function(_0x4afda5){if(_0x4afda5){_0x12d977[_0xca2d('0x82')][_0xca2d('0xa8')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x4afda5[_0xca2d('0x38')]+','+(_0x12d977[_0xca2d('0x81')][_0xca2d('0xa9')]||0xa),'interval':_0xca2d('0xa4')});}return respondWithRpcPromise(_0xca2d('0xaa'),'startRouting',_0x12d977);});}return respondWithRpcPromise(_0xca2d('0xaa'),'startRouting',_0x12d977);})[_0xca2d('0x1e')](function(_0x1bd9d9){if(_0x1bd9d9){var _0x4a1f2a=0xc8;var _0x3adb7f='receiveMessage';logger['info'](_0xca2d('0xab'),_0x3adb7f,_0x4a1f2a,_0xca2d('0xac'));logger[_0xca2d('0x22')](_0xca2d('0xad'),_0x3adb7f,_0x4a1f2a,_0xca2d('0xac'),JSON[_0xca2d('0x23')](_0x1bd9d9));if(_0x12d977['account'][_0xca2d('0x4f')]==='twilio'){return _0x356d0c[_0xca2d('0x28')](_0x4a1f2a)[_0xca2d('0x2e')](_0xca2d('0xae'),_0xca2d('0xaf'))['send']('<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>');}else{return _0x356d0c[_0xca2d('0x28')](_0x4a1f2a)[_0xca2d('0x2a')](_0x1bd9d9);}}})[_0xca2d('0x54')](handleError(_0x356d0c,null));};exports[_0xca2d('0x39')]=function(_0x435e50,_0x25fe55,_0x20446a){var _0x277f5c,_0x4be97a,_0x34eb60;if(_[_0xca2d('0x94')](_0x435e50[_0xca2d('0x5c')][_0xca2d('0x5c')])||_0x435e50[_0xca2d('0x5c')][_0xca2d('0x5c')]===''){throw new db[(_0xca2d('0x91'))][(_0xca2d('0x84'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0x435e50['body']['to'])){throw new db['Sequelize'][(_0xca2d('0x84'))](_0xca2d('0xb0'));}_0x277f5c=_0x435e50[_0xca2d('0x5c')]['to'];return db[_0xca2d('0x3e')]['find']({'where':{'id':_0x435e50[_0xca2d('0x56')]['id']},'include':[{'model':db[_0xca2d('0xb1')],'as':_0xca2d('0xb2'),'include':[{'model':db[_0xca2d('0x98')],'as':'Contacts','where':{'mobile':_0x277f5c},'limit':0x1,'order':[[_0xca2d('0x87'),_0xca2d('0x9a')]]}]}]})['then'](handleEntityNotFound(_0x25fe55,null))['then'](function(_0x4c153d){if(_0x4c153d&&_0x4c153d[_0xca2d('0xb2')]){_0x4be97a=_0x4c153d[_0xca2d('0x34')]({'plain':!![]});if(_0x4be97a[_0xca2d('0xb2')]&&_0x4be97a[_0xca2d('0xb2')][_0xca2d('0x99')]['length']){return _0x4be97a['List'][_0xca2d('0x99')][0x0];}return db['CmContact'][_0xca2d('0x5b')](_[_0xca2d('0x17')](_0x435e50['body'],{'firstName':_0x277f5c,'mobile':_0x277f5c,'phone':_0x277f5c,'ListId':_0x4be97a[_0xca2d('0x8a')]}));}})[_0xca2d('0x1e')](handleEntityNotFound(_0x25fe55,null))[_0xca2d('0x1e')](function(_0x2b4a69){if(_0x2b4a69){_0x34eb60=_0x2b4a69;return db['WhatsappInteraction'][_0xca2d('0x5a')]({'where':{'ContactId':_0x34eb60['id'],'closed':![],'WhatsappAccountId':_0x4be97a['id']}})[_0xca2d('0x1e')](function(_0x32e4e4){if(_0x32e4e4){return[_0x32e4e4,![]];}return db[_0xca2d('0x9e')]['create']({'UserId':_0x435e50['user']['id'],'ContactId':_0x34eb60['id'],'WhatsappAccountId':_0x4be97a['id'],'phone':_0x277f5c,'firstMsgDirection':_0xca2d('0xb3'),'Messages':[_[_0xca2d('0x4e')](_0x435e50[_0xca2d('0x5c')],{'read':![],'body':_0x435e50[_0xca2d('0x5c')][_0xca2d('0x5c')],'phone':_0x277f5c,'WhatsappAccountId':_0x4be97a['id'],'UserId':_0x435e50[_0xca2d('0x5d')]['id'],'ContactId':_0x34eb60['id']})]},{'include':[{'model':db[_0xca2d('0xa5')],'as':_0xca2d('0xb4')}]})[_0xca2d('0x1e')](function(_0x267818){return[_0x267818,!![]];});});}})[_0xca2d('0x70')](function(_0x32ae98,_0x7448b0){if(_0x7448b0){return _0x32ae98;}return db[_0xca2d('0xa5')][_0xca2d('0x5b')](_[_0xca2d('0x4e')](_0x435e50[_0xca2d('0x5c')],{'read':![],'body':_0x435e50[_0xca2d('0x5c')][_0xca2d('0x5c')],'phone':_0x277f5c,'WhatsappAccountId':_0x4be97a['id'],'WhatsappInteractionId':_0x32ae98['id'],'UserId':_0x435e50[_0xca2d('0x5d')]['id'],'ContactId':_0x34eb60['id']}))[_0xca2d('0x1e')](function(_0x4ebcfe){_0x32ae98[_0xca2d('0xb5')][_0xca2d('0xb4')]=[];_0x32ae98[_0xca2d('0xb5')][_0xca2d('0xb4')][_0xca2d('0xb6')](_0x4ebcfe[_0xca2d('0xb5')]);return _0x32ae98;});})['then'](respondWithResult(_0x25fe55,null))[_0xca2d('0x54')](handleError(_0x25fe55,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeabf=['exports','events','../../mysqldb','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0x3b0e9c,_0x2854f9){var _0x3819fb=function(_0x3b18da){while(--_0x3b18da){_0x3b0e9c['push'](_0x3b0e9c['shift']());}};_0x3819fb(++_0x2854f9);}(_0xeabf,0x17b));var _0xfeab=function(_0x3586df,_0x42571a){_0x3586df=_0x3586df-0x0;var _0x138a0a=_0xeabf[_0x3586df];return _0x138a0a;};'use strict';var EventEmitter=require(_0xfeab('0x0'));var WhatsappAccount=require(_0xfeab('0x1'))['db']['WhatsappAccount'];var WhatsappAccountEvents=new EventEmitter();WhatsappAccountEvents[_0xfeab('0x2')](0x0);var events={'afterCreate':_0xfeab('0x3'),'afterUpdate':_0xfeab('0x4'),'afterDestroy':_0xfeab('0x5')};function emitEvent(_0x4d4c73){return function(_0x4cc48d,_0x7049c7,_0x17d9f2){WhatsappAccountEvents[_0xfeab('0x6')](_0x4d4c73+':'+_0x4cc48d['id'],_0x4cc48d);WhatsappAccountEvents[_0xfeab('0x6')](_0x4d4c73,_0x4cc48d);_0x17d9f2(null);};}for(var e in events){if(events[_0xfeab('0x7')](e)){var event=events[e];WhatsappAccount['hook'](e,emitEvent(event));}}module[_0xfeab('0x8')]=WhatsappAccountEvents;
\ No newline at end of file
+var _0xc7d5=['hook','exports','events','WhatsappAccount','setMaxListeners','update','emit'];(function(_0x216e3e,_0x239c4e){var _0x2a3c6b=function(_0x48d6a3){while(--_0x48d6a3){_0x216e3e['push'](_0x216e3e['shift']());}};_0x2a3c6b(++_0x239c4e);}(_0xc7d5,0x18a));var _0x5c7d=function(_0x1319c4,_0x3f7dcc){_0x1319c4=_0x1319c4-0x0;var _0x2fcb3b=_0xc7d5[_0x1319c4];return _0x2fcb3b;};'use strict';var EventEmitter=require(_0x5c7d('0x0'));var WhatsappAccount=require('../../mysqldb')['db'][_0x5c7d('0x1')];var WhatsappAccountEvents=new EventEmitter();WhatsappAccountEvents[_0x5c7d('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x5c7d('0x3'),'afterDestroy':'remove'};function emitEvent(_0x5d8682){return function(_0x5cbc36,_0x17c032,_0x967057){WhatsappAccountEvents[_0x5c7d('0x4')](_0x5d8682+':'+_0x5cbc36['id'],_0x5cbc36);WhatsappAccountEvents[_0x5c7d('0x4')](_0x5d8682,_0x5cbc36);_0x967057(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappAccount[_0x5c7d('0x5')](e,emitEvent(event));}}module[_0x5c7d('0x6')]=WhatsappAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x47f0=['../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./whatsappAccount.attributes','exports','define','WhatsappAccount','whatsapp_accounts','lodash'];(function(_0x1f36bb,_0x8af718){var _0xaf97fa=function(_0xeca489){while(--_0xeca489){_0x1f36bb['push'](_0x1f36bb['shift']());}};_0xaf97fa(++_0x8af718);}(_0x47f0,0x81));var _0x047f=function(_0x5a015b,_0x3aa47a){_0x5a015b=_0x5a015b-0x0;var _0x12db7c=_0x47f0[_0x5a015b];return _0x12db7c;};'use strict';var _=require(_0x047f('0x0'));var util=require('util');var logger=require(_0x047f('0x1'))(_0x047f('0x2'));var moment=require(_0x047f('0x3'));var BPromise=require(_0x047f('0x4'));var rp=require(_0x047f('0x5'));var fs=require('fs');var path=require(_0x047f('0x6'));var rimraf=require('rimraf');var config=require(_0x047f('0x7'));var attributes=require(_0x047f('0x8'));module[_0x047f('0x9')]=function(_0x1f7334,_0x4579ac){return _0x1f7334[_0x047f('0xa')](_0x047f('0xb'),attributes,{'tableName':_0x047f('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd89d=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./whatsappAccount.attributes','exports','define','whatsapp_accounts','util','../../config/logger'];(function(_0xc8c383,_0x157056){var _0x385be7=function(_0x136feb){while(--_0x136feb){_0xc8c383['push'](_0xc8c383['shift']());}};_0x385be7(++_0x157056);}(_0xd89d,0x1d2));var _0xdd89=function(_0x3a6767,_0x577a49){_0x3a6767=_0x3a6767-0x0;var _0xf3e575=_0xd89d[_0x3a6767];return _0xf3e575;};'use strict';var _=require('lodash');var util=require(_0xdd89('0x0'));var logger=require(_0xdd89('0x1'))(_0xdd89('0x2'));var moment=require(_0xdd89('0x3'));var BPromise=require(_0xdd89('0x4'));var rp=require(_0xdd89('0x5'));var fs=require('fs');var path=require(_0xdd89('0x6'));var rimraf=require(_0xdd89('0x7'));var config=require(_0xdd89('0x8'));var attributes=require(_0xdd89('0x9'));module[_0xdd89('0xa')]=function(_0xd00e43,_0x4ec673){return _0xd00e43[_0xdd89('0xb')]('WhatsappAccount',attributes,{'tableName':_0xdd89('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1646=['ShowWhatsappAccount','lodash','util','moment','bluebird','ioredis','../../config/utils','rpc','jayson/promise','client','redis','localhost','socket.io-emitter','./whatsappAccount.socket','register','request','then','info','request\x20sent','debug','WhatsappAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','WhatsappAccount,\x20%s,\x20%s','result','catch','WhatsappAccount','find','options','raw','where','include','map','model','attributes'];(function(_0x3e205c,_0x580fde){var _0x2e7463=function(_0x16f7bc){while(--_0x16f7bc){_0x3e205c['push'](_0x3e205c['shift']());}};_0x2e7463(++_0x580fde);}(_0x1646,0x1bd));var _0x6164=function(_0xbc2974,_0xec3342){_0xbc2974=_0xbc2974-0x0;var _0x3a5b4f=_0x1646[_0xbc2974];return _0x3a5b4f;};'use strict';var _=require(_0x6164('0x0'));var util=require(_0x6164('0x1'));var moment=require(_0x6164('0x2'));var BPromise=require(_0x6164('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6164('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x6164('0x5'));var logger=require('../../config/logger')(_0x6164('0x6'));var config=require('../../config/environment');var jayson=require(_0x6164('0x7'));var client=jayson[_0x6164('0x8')]['http']({'port':0x232a});config[_0x6164('0x9')]=_['defaults'](config[_0x6164('0x9')],{'host':_0x6164('0xa'),'port':0x18eb});var socket=require(_0x6164('0xb'))(new Redis(config[_0x6164('0x9')]));require(_0x6164('0xc'))[_0x6164('0xd')](socket);function respondWithRpcPromise(_0x123495,_0x54346d,_0x2b0f6f){return new BPromise(function(_0x14d2f8,_0x53baa8){return client[_0x6164('0xe')](_0x123495,_0x2b0f6f)[_0x6164('0xf')](function(_0x3784f5){logger[_0x6164('0x10')]('WhatsappAccount,\x20%s,\x20%s',_0x54346d,_0x6164('0x11'));logger[_0x6164('0x12')](_0x6164('0x13'),_0x54346d,'request\x20sent',JSON[_0x6164('0x14')](_0x3784f5));if(_0x3784f5[_0x6164('0x15')]){if(_0x3784f5['error'][_0x6164('0x16')]===0x1f4){logger[_0x6164('0x15')]('WhatsappAccount,\x20%s,\x20%s',_0x54346d,_0x3784f5[_0x6164('0x15')]['message']);return _0x53baa8(_0x3784f5[_0x6164('0x15')][_0x6164('0x17')]);}logger[_0x6164('0x15')](_0x6164('0x18'),_0x54346d,_0x3784f5[_0x6164('0x15')]['message']);return _0x14d2f8(_0x3784f5[_0x6164('0x15')][_0x6164('0x17')]);}else{logger[_0x6164('0x10')]('WhatsappAccount,\x20%s,\x20%s',_0x54346d,_0x6164('0x11'));_0x14d2f8(_0x3784f5[_0x6164('0x19')][_0x6164('0x17')]);}})[_0x6164('0x1a')](function(_0x98adbc){logger[_0x6164('0x15')](_0x6164('0x18'),_0x54346d,_0x98adbc);_0x53baa8(_0x98adbc);});});}exports['ShowWhatsappAccount']=function(_0x1263fd){var _0x284c68=this;return new Promise(function(_0x558932,_0x1a5638){return db[_0x6164('0x1b')][_0x6164('0x1c')]({'raw':_0x1263fd[_0x6164('0x1d')]?_0x1263fd[_0x6164('0x1d')][_0x6164('0x1e')]===undefined?!![]:![]:!![],'where':_0x1263fd['options']?_0x1263fd['options'][_0x6164('0x1f')]||null:null,'attributes':_0x1263fd['options']?_0x1263fd[_0x6164('0x1d')]['attributes']||null:null,'include':_0x1263fd[_0x6164('0x1d')]?_0x1263fd[_0x6164('0x1d')][_0x6164('0x20')]?_[_0x6164('0x21')](_0x1263fd[_0x6164('0x1d')][_0x6164('0x20')],function(_0x21e295){return{'model':db[_0x21e295[_0x6164('0x22')]],'as':_0x21e295['as'],'attributes':_0x21e295[_0x6164('0x23')],'include':_0x21e295[_0x6164('0x20')]?_['map'](_0x21e295[_0x6164('0x20')],function(_0x46ee13){return{'model':db[_0x46ee13[_0x6164('0x22')]],'as':_0x46ee13['as'],'attributes':_0x46ee13['attributes'],'include':_0x46ee13['include']?_[_0x6164('0x21')](_0x46ee13[_0x6164('0x20')],function(_0x1b7324){return{'model':db[_0x1b7324['model']],'as':_0x1b7324['as'],'attributes':_0x1b7324[_0x6164('0x23')]};}):[]};}):[]};}):[]:[]})[_0x6164('0xf')](function(_0x3fac5e){logger['info'](_0x6164('0x24'),_0x1263fd);logger['debug'](_0x6164('0x24'),_0x1263fd,JSON[_0x6164('0x14')](_0x3fac5e));_0x558932(_0x3fac5e);})[_0x6164('0x1a')](function(_0x295c5b){logger[_0x6164('0x15')](_0x6164('0x24'),_0x295c5b[_0x6164('0x17')],_0x1263fd);_0x1a5638(_0x284c68[_0x6164('0x15')](0x1f4,_0x295c5b[_0x6164('0x17')]));});});};
\ No newline at end of file
+var _0xef51=['catch','ShowWhatsappAccount','WhatsappAccount','options','raw','where','attributes','include','model','map','lodash','util','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./whatsappAccount.socket','register','then','info','WhatsappAccount,\x20%s,\x20%s','request\x20sent','debug','WhatsappAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x64df72,_0x406b97){var _0x47ea96=function(_0x2ce6ac){while(--_0x2ce6ac){_0x64df72['push'](_0x64df72['shift']());}};_0x47ea96(++_0x406b97);}(_0xef51,0x1a1));var _0x1ef5=function(_0x279368,_0x41c002){_0x279368=_0x279368-0x0;var _0x40b6d0=_0xef51[_0x279368];return _0x40b6d0;};'use strict';var _=require(_0x1ef5('0x0'));var util=require(_0x1ef5('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x1ef5('0x2'));var fs=require('fs');var Redis=require(_0x1ef5('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x1ef5('0x4'));var logger=require(_0x1ef5('0x5'))(_0x1ef5('0x6'));var config=require(_0x1ef5('0x7'));var jayson=require(_0x1ef5('0x8'));var client=jayson[_0x1ef5('0x9')][_0x1ef5('0xa')]({'port':0x232a});config[_0x1ef5('0xb')]=_[_0x1ef5('0xc')](config[_0x1ef5('0xb')],{'host':_0x1ef5('0xd'),'port':0x18eb});var socket=require(_0x1ef5('0xe'))(new Redis(config[_0x1ef5('0xb')]));require(_0x1ef5('0xf'))[_0x1ef5('0x10')](socket);function respondWithRpcPromise(_0x11b470,_0x42f64b,_0x3c17a5){return new BPromise(function(_0x13f9f6,_0x19097d){return client['request'](_0x11b470,_0x3c17a5)[_0x1ef5('0x11')](function(_0x1aedeb){logger[_0x1ef5('0x12')](_0x1ef5('0x13'),_0x42f64b,_0x1ef5('0x14'));logger[_0x1ef5('0x15')](_0x1ef5('0x16'),_0x42f64b,_0x1ef5('0x14'),JSON[_0x1ef5('0x17')](_0x1aedeb));if(_0x1aedeb[_0x1ef5('0x18')]){if(_0x1aedeb['error'][_0x1ef5('0x19')]===0x1f4){logger[_0x1ef5('0x18')](_0x1ef5('0x13'),_0x42f64b,_0x1aedeb['error'][_0x1ef5('0x1a')]);return _0x19097d(_0x1aedeb[_0x1ef5('0x18')][_0x1ef5('0x1a')]);}logger['error'](_0x1ef5('0x13'),_0x42f64b,_0x1aedeb[_0x1ef5('0x18')][_0x1ef5('0x1a')]);return _0x13f9f6(_0x1aedeb[_0x1ef5('0x18')][_0x1ef5('0x1a')]);}else{logger[_0x1ef5('0x12')](_0x1ef5('0x13'),_0x42f64b,_0x1ef5('0x14'));_0x13f9f6(_0x1aedeb['result'][_0x1ef5('0x1a')]);}})[_0x1ef5('0x1b')](function(_0x2cf40d){logger[_0x1ef5('0x18')]('WhatsappAccount,\x20%s,\x20%s',_0x42f64b,_0x2cf40d);_0x19097d(_0x2cf40d);});});}exports[_0x1ef5('0x1c')]=function(_0x14f087){var _0x3cb3a9=this;return new Promise(function(_0x1ca987,_0x3e5a57){return db[_0x1ef5('0x1d')]['find']({'raw':_0x14f087[_0x1ef5('0x1e')]?_0x14f087['options'][_0x1ef5('0x1f')]===undefined?!![]:![]:!![],'where':_0x14f087[_0x1ef5('0x1e')]?_0x14f087[_0x1ef5('0x1e')][_0x1ef5('0x20')]||null:null,'attributes':_0x14f087[_0x1ef5('0x1e')]?_0x14f087[_0x1ef5('0x1e')][_0x1ef5('0x21')]||null:null,'include':_0x14f087['options']?_0x14f087[_0x1ef5('0x1e')][_0x1ef5('0x22')]?_['map'](_0x14f087[_0x1ef5('0x1e')][_0x1ef5('0x22')],function(_0x43bff3){return{'model':db[_0x43bff3[_0x1ef5('0x23')]],'as':_0x43bff3['as'],'attributes':_0x43bff3['attributes'],'include':_0x43bff3[_0x1ef5('0x22')]?_[_0x1ef5('0x24')](_0x43bff3['include'],function(_0x4c461e){return{'model':db[_0x4c461e[_0x1ef5('0x23')]],'as':_0x4c461e['as'],'attributes':_0x4c461e[_0x1ef5('0x21')],'include':_0x4c461e[_0x1ef5('0x22')]?_[_0x1ef5('0x24')](_0x4c461e[_0x1ef5('0x22')],function(_0x1b70a0){return{'model':db[_0x1b70a0[_0x1ef5('0x23')]],'as':_0x1b70a0['as'],'attributes':_0x1b70a0[_0x1ef5('0x21')]};}):[]};}):[]};}):[]:[]})[_0x1ef5('0x11')](function(_0x5a6caa){logger[_0x1ef5('0x12')]('ShowWhatsappAccount',_0x14f087);logger[_0x1ef5('0x15')]('ShowWhatsappAccount',_0x14f087,JSON['stringify'](_0x5a6caa));_0x1ca987(_0x5a6caa);})['catch'](function(_0x4d962c){logger[_0x1ef5('0x18')]('ShowWhatsappAccount',_0x4d962c['message'],_0x14f087);_0x3e5a57(_0x3cb3a9['error'](0x1f4,_0x4d962c[_0x1ef5('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd55b=['./whatsappAccount.events','save','remove','update','removeListener','register','length','whatsappAccount:'];(function(_0xda464c,_0x26e47d){var _0x19e222=function(_0x1ec605){while(--_0x1ec605){_0xda464c['push'](_0xda464c['shift']());}};_0x19e222(++_0x26e47d);}(_0xd55b,0x180));var _0xbd55=function(_0x4b4b0d,_0x831196){_0x4b4b0d=_0x4b4b0d-0x0;var _0x66a3b8=_0xd55b[_0x4b4b0d];return _0x66a3b8;};'use strict';var WhatsappAccountEvents=require(_0xbd55('0x0'));var events=[_0xbd55('0x1'),_0xbd55('0x2'),_0xbd55('0x3')];function createListener(_0x2c1501,_0x2cdc0d){return function(_0x176e01){_0x2cdc0d['emit'](_0x2c1501,_0x176e01);};}function removeListener(_0x379123,_0x1d0939){return function(){WhatsappAccountEvents[_0xbd55('0x4')](_0x379123,_0x1d0939);};}exports[_0xbd55('0x5')]=function(_0x5cdc0f){for(var _0xdb748e=0x0,_0xca3f7f=events[_0xbd55('0x6')];_0xdb748e<_0xca3f7f;_0xdb748e++){var _0x21f74c=events[_0xdb748e];var _0x137ce7=createListener(_0xbd55('0x7')+_0x21f74c,_0x5cdc0f);WhatsappAccountEvents['on'](_0x21f74c,_0x137ce7);}};
\ No newline at end of file
+var _0xf342=['whatsappAccount:','./whatsappAccount.events','emit','removeListener','register','length'];(function(_0x9969d5,_0x1ac8ba){var _0x1145aa=function(_0x4d8e42){while(--_0x4d8e42){_0x9969d5['push'](_0x9969d5['shift']());}};_0x1145aa(++_0x1ac8ba);}(_0xf342,0xd9));var _0x2f34=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xf342[_0x3dd15e];return _0x231fd0;};'use strict';var WhatsappAccountEvents=require(_0x2f34('0x0'));var events=['save','remove','update'];function createListener(_0x4a2661,_0x1d2ebb){return function(_0x57430a){_0x1d2ebb[_0x2f34('0x1')](_0x4a2661,_0x57430a);};}function removeListener(_0x506e66,_0x32b38c){return function(){WhatsappAccountEvents[_0x2f34('0x2')](_0x506e66,_0x32b38c);};}exports[_0x2f34('0x3')]=function(_0xf83abe){for(var _0xf326c5=0x0,_0x127585=events[_0x2f34('0x4')];_0xf326c5<_0x127585;_0xf326c5++){var _0x5ea55d=events[_0xf326c5];var _0x260f51=createListener(_0x2f34('0x5')+_0x5ea55d,_0xf83abe);WhatsappAccountEvents['on'](_0x5ea55d,_0x260f51);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x67d3=['multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','./whatsappApplication.controller','get','index','isAuthenticated','show','create','put','update','delete','destroy','exports'];(function(_0x870b62,_0x2143f9){var _0x2dcb39=function(_0x2fb63d){while(--_0x2fb63d){_0x870b62['push'](_0x870b62['shift']());}};_0x2dcb39(++_0x2143f9);}(_0x67d3,0x143));var _0x367d=function(_0x426989,_0x109d5a){_0x426989=_0x426989-0x0;var _0x31a4e6=_0x67d3[_0x426989];return _0x31a4e6;};'use strict';var multer=require(_0x367d('0x0'));var util=require(_0x367d('0x1'));var path=require(_0x367d('0x2'));var timeout=require(_0x367d('0x3'));var express=require('express');var router=express[_0x367d('0x4')]();var fs_extra=require(_0x367d('0x5'));var auth=require(_0x367d('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x367d('0x7'));var controller=require(_0x367d('0x8'));router[_0x367d('0x9')]('/',auth['isAuthenticated'](),controller[_0x367d('0xa')]);router[_0x367d('0x9')]('/:id',auth[_0x367d('0xb')](),controller[_0x367d('0xc')]);router['post']('/',auth[_0x367d('0xb')](),controller[_0x367d('0xd')]);router[_0x367d('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x367d('0xf')]);router[_0x367d('0x10')]('/:id',auth[_0x367d('0xb')](),controller[_0x367d('0x11')]);module[_0x367d('0x12')]=router;
\ No newline at end of file
+var _0x381a=['../../components/auth/service','../../config/environment','./whatsappApplication.controller','get','/:id','isAuthenticated','show','post','create','put','update','delete','exports','util','path','connect-timeout','Router','fs-extra'];(function(_0x43aea3,_0xc8b030){var _0x3f438d=function(_0x2f50b5){while(--_0x2f50b5){_0x43aea3['push'](_0x43aea3['shift']());}};_0x3f438d(++_0xc8b030);}(_0x381a,0x8b));var _0xa381=function(_0x380ca0,_0x111bab){_0x380ca0=_0x380ca0-0x0;var _0x575f0=_0x381a[_0x380ca0];return _0x575f0;};'use strict';var multer=require('multer');var util=require(_0xa381('0x0'));var path=require(_0xa381('0x1'));var timeout=require(_0xa381('0x2'));var express=require('express');var router=express[_0xa381('0x3')]();var fs_extra=require(_0xa381('0x4'));var auth=require(_0xa381('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xa381('0x6'));var controller=require(_0xa381('0x7'));router[_0xa381('0x8')]('/',auth['isAuthenticated'](),controller['index']);router[_0xa381('0x8')](_0xa381('0x9'),auth[_0xa381('0xa')](),controller[_0xa381('0xb')]);router[_0xa381('0xc')]('/',auth[_0xa381('0xa')](),controller[_0xa381('0xd')]);router[_0xa381('0xe')](_0xa381('0x9'),auth[_0xa381('0xa')](),controller[_0xa381('0xf')]);router[_0xa381('0x10')](_0xa381('0x9'),auth[_0xa381('0xa')](),controller['destroy']);module[_0xa381('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a93=['exports','INTEGER','STRING','noop','TEXT','sequelize'];(function(_0x273cc2,_0x496db3){var _0x39d458=function(_0x49d9c3){while(--_0x49d9c3){_0x273cc2['push'](_0x273cc2['shift']());}};_0x39d458(++_0x496db3);}(_0x6a93,0x12b));var _0x36a9=function(_0x30c2d0,_0x4f5cef){_0x30c2d0=_0x30c2d0-0x0;var _0x46b82c=_0x6a93[_0x30c2d0];return _0x46b82c;};'use strict';var Sequelize=require(_0x36a9('0x0'));module[_0x36a9('0x1')]={'priority':{'type':Sequelize[_0x36a9('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x36a9('0x3')],'allowNull':![],'defaultValue':_0x36a9('0x4')},'appdata':{'type':Sequelize[_0x36a9('0x5')]()},'description':{'type':Sequelize[_0x36a9('0x3')]},'interval':{'type':Sequelize[_0x36a9('0x3')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
+var _0xaabe=['noop','*,*,*,*','sequelize','exports','INTEGER','STRING'];(function(_0x28c939,_0x110e29){var _0x527fe9=function(_0x1df2a6){while(--_0x1df2a6){_0x28c939['push'](_0x28c939['shift']());}};_0x527fe9(++_0x110e29);}(_0xaabe,0x1b8));var _0xeaab=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0xaabe[_0x2c91e9];return _0x13f0ff;};'use strict';var Sequelize=require(_0xeaab('0x0'));module[_0xeaab('0x1')]={'priority':{'type':Sequelize[_0xeaab('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0xeaab('0x3')],'allowNull':![],'defaultValue':_0xeaab('0x4')},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0xeaab('0x3')],'defaultValue':_0xeaab('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c03=['WhatsappApplication','includeAll','include','findAll','rows','catch','params','options','find','body','eml-format','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','reject','save','update','then','destroy','error','stack','send','index','map','rawAttributes','fieldName','type','model','name','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where'];(function(_0x499dc3,_0x11395f){var _0x2dc3af=function(_0x5391a1){while(--_0x5391a1){_0x499dc3['push'](_0x499dc3['shift']());}};_0x2dc3af(++_0x11395f);}(_0x3c03,0x16d));var _0x33c0=function(_0x5c9307,_0x5b97e4){_0x5c9307=_0x5c9307-0x0;var _0x373e29=_0x3c03[_0x5c9307];return _0x373e29;};'use strict';var emlformat=require(_0x33c0('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x33c0('0x1'));var moment=require(_0x33c0('0x2'));var BPromise=require(_0x33c0('0x3'));var Mustache=require(_0x33c0('0x4'));var util=require('util');var path=require(_0x33c0('0x5'));var sox=require(_0x33c0('0x6'));var csv=require(_0x33c0('0x7'));var ejs=require(_0x33c0('0x8'));var fs=require('fs');var fs_extra=require(_0x33c0('0x9'));var _=require(_0x33c0('0xa'));var squel=require(_0x33c0('0xb'));var crypto=require('crypto');var jsforce=require(_0x33c0('0xc'));var deskjs=require(_0x33c0('0xd'));var toCsv=require('to-csv');var querystring=require(_0x33c0('0xe'));var Papa=require(_0x33c0('0xf'));var Redis=require('ioredis');var authService=require(_0x33c0('0x10'));var qs=require(_0x33c0('0x11'));var as=require(_0x33c0('0x12'));var hardwareService=require(_0x33c0('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0x33c0('0x14'));var config=require(_0x33c0('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5063bb,_0x381ada){_0x381ada=_0x381ada||0xcc;return function(_0x2064de){if(_0x2064de){return _0x5063bb[_0x33c0('0x16')](_0x381ada);}return _0x5063bb[_0x33c0('0x17')](_0x381ada)[_0x33c0('0x18')]();};}function respondWithResult(_0x3e632e,_0x5879db){_0x5879db=_0x5879db||0xc8;return function(_0x2f2e52){if(_0x2f2e52){return _0x3e632e[_0x33c0('0x17')](_0x5879db)[_0x33c0('0x19')](_0x2f2e52);}};}function respondWithFilteredResult(_0x5dd9fb,_0x3ae3a8){return function(_0x58c21e){if(_0x58c21e){var _0x1e4134=typeof _0x3ae3a8['offset']===_0x33c0('0x1a')&&typeof _0x3ae3a8[_0x33c0('0x1b')]===_0x33c0('0x1a');var _0x1729b9=_0x58c21e[_0x33c0('0x1c')];var _0x192dc0=_0x1e4134?0x0:_0x3ae3a8['offset'];var _0x39193d=_0x1e4134?_0x58c21e[_0x33c0('0x1c')]:_0x3ae3a8[_0x33c0('0x1d')]+_0x3ae3a8[_0x33c0('0x1b')];var _0x1090f1;if(_0x39193d>=_0x1729b9){_0x39193d=_0x1729b9;_0x1090f1=0xc8;}else{_0x1090f1=0xce;}_0x5dd9fb[_0x33c0('0x17')](_0x1090f1);return _0x5dd9fb['set'](_0x33c0('0x1e'),_0x192dc0+'-'+_0x39193d+'/'+_0x1729b9)[_0x33c0('0x19')](_0x58c21e);}return null;};}function patchUpdates(_0x3b2f68){return function(_0x25e2c4){try{jsonpatch['apply'](_0x25e2c4,_0x3b2f68,!![]);}catch(_0x2e0b2c){return BPromise[_0x33c0('0x1f')](_0x2e0b2c);}return _0x25e2c4[_0x33c0('0x20')]();};}function saveUpdates(_0x1d1d3d,_0x51d76c){return function(_0x302758){if(_0x302758){return _0x302758[_0x33c0('0x21')](_0x1d1d3d)[_0x33c0('0x22')](function(_0x1f8a7e){return _0x1f8a7e;});}return null;};}function removeEntity(_0x330dc7,_0x394d5c){return function(_0x3a55e4){if(_0x3a55e4){return _0x3a55e4[_0x33c0('0x23')]()[_0x33c0('0x22')](function(){_0x330dc7['status'](0xcc)[_0x33c0('0x18')]();});}};}function handleEntityNotFound(_0x2b1af2,_0x27cafa){return function(_0x3eda05){if(!_0x3eda05){_0x2b1af2['sendStatus'](0x194);}return _0x3eda05;};}function handleError(_0x2505db,_0x2e603f){_0x2e603f=_0x2e603f||0x1f4;return function(_0x41dd88){logger[_0x33c0('0x24')](_0x41dd88[_0x33c0('0x25')]);if(_0x41dd88['name']){delete _0x41dd88['name'];}_0x2505db['status'](_0x2e603f)[_0x33c0('0x26')](_0x41dd88);};}exports[_0x33c0('0x27')]=function(_0x254830,_0x1358c9){var _0x6e93f9={},_0x4059dc={},_0x584e1d={'count':0x0,'rows':[]};var _0x4fb704=_[_0x33c0('0x28')](db['WhatsappApplication'][_0x33c0('0x29')],function(_0x301d82){return{'name':_0x301d82[_0x33c0('0x2a')],'type':_0x301d82[_0x33c0('0x2b')]['key']};});_0x4059dc[_0x33c0('0x2c')]=_[_0x33c0('0x28')](_0x4fb704,_0x33c0('0x2d'));_0x4059dc[_0x33c0('0x2e')]=_[_0x33c0('0x2f')](_0x254830['query']);_0x4059dc[_0x33c0('0x30')]=_[_0x33c0('0x31')](_0x4059dc[_0x33c0('0x2c')],_0x4059dc[_0x33c0('0x2e')]);_0x6e93f9[_0x33c0('0x32')]=_[_0x33c0('0x31')](_0x4059dc[_0x33c0('0x2c')],qs[_0x33c0('0x33')](_0x254830[_0x33c0('0x2e')][_0x33c0('0x33')]));_0x6e93f9[_0x33c0('0x32')]=_0x6e93f9[_0x33c0('0x32')][_0x33c0('0x34')]?_0x6e93f9[_0x33c0('0x32')]:_0x4059dc[_0x33c0('0x2c')];if(!_0x254830[_0x33c0('0x2e')][_0x33c0('0x35')](_0x33c0('0x36'))){_0x6e93f9[_0x33c0('0x1b')]=qs['limit'](_0x254830[_0x33c0('0x2e')][_0x33c0('0x1b')]);_0x6e93f9['offset']=qs['offset'](_0x254830[_0x33c0('0x2e')][_0x33c0('0x1d')]);}_0x6e93f9[_0x33c0('0x37')]=qs[_0x33c0('0x38')](_0x254830[_0x33c0('0x2e')][_0x33c0('0x38')]);_0x6e93f9['where']=qs[_0x33c0('0x30')](_[_0x33c0('0x39')](_0x254830['query'],_0x4059dc[_0x33c0('0x30')]),_0x4fb704);if(_0x254830[_0x33c0('0x2e')][_0x33c0('0x3a')]){_0x6e93f9['where']=_[_0x33c0('0x3b')](_0x6e93f9[_0x33c0('0x3c')],{'$or':_[_0x33c0('0x28')](_0x4fb704,function(_0x46b2f8){if(_0x46b2f8[_0x33c0('0x2b')]!=='VIRTUAL'){var _0x134004={};_0x134004[_0x46b2f8[_0x33c0('0x2d')]]={'$like':'%'+_0x254830[_0x33c0('0x2e')][_0x33c0('0x3a')]+'%'};return _0x134004;}})});}_0x6e93f9=_[_0x33c0('0x3b')]({},_0x6e93f9,_0x254830['options']);var _0x45e295={'where':_0x6e93f9[_0x33c0('0x3c')]};return db[_0x33c0('0x3d')][_0x33c0('0x1c')](_0x45e295)[_0x33c0('0x22')](function(_0x4c7505){_0x584e1d[_0x33c0('0x1c')]=_0x4c7505;if(_0x254830['query'][_0x33c0('0x3e')]){_0x6e93f9[_0x33c0('0x3f')]=[{'all':!![]}];}return db[_0x33c0('0x3d')][_0x33c0('0x40')](_0x6e93f9);})[_0x33c0('0x22')](function(_0x1dd2a3){_0x584e1d[_0x33c0('0x41')]=_0x1dd2a3;return _0x584e1d;})[_0x33c0('0x22')](respondWithFilteredResult(_0x1358c9,_0x6e93f9))[_0x33c0('0x42')](handleError(_0x1358c9,null));};exports['show']=function(_0x47d5c2,_0x4cec97){var _0x3ba0e7={'raw':!![],'where':{'id':_0x47d5c2[_0x33c0('0x43')]['id']}},_0x2d3f21={};_0x2d3f21['model']=_[_0x33c0('0x2f')](db[_0x33c0('0x3d')]['rawAttributes']);_0x2d3f21['query']=_[_0x33c0('0x2f')](_0x47d5c2[_0x33c0('0x2e')]);_0x2d3f21['filters']=_[_0x33c0('0x31')](_0x2d3f21[_0x33c0('0x2c')],_0x2d3f21[_0x33c0('0x2e')]);_0x3ba0e7[_0x33c0('0x32')]=_[_0x33c0('0x31')](_0x2d3f21[_0x33c0('0x2c')],qs[_0x33c0('0x33')](_0x47d5c2['query'][_0x33c0('0x33')]));_0x3ba0e7[_0x33c0('0x32')]=_0x3ba0e7[_0x33c0('0x32')][_0x33c0('0x34')]?_0x3ba0e7[_0x33c0('0x32')]:_0x2d3f21[_0x33c0('0x2c')];if(_0x47d5c2[_0x33c0('0x2e')]['includeAll']){_0x3ba0e7[_0x33c0('0x3f')]=[{'all':!![]}];}_0x3ba0e7=_[_0x33c0('0x3b')]({},_0x3ba0e7,_0x47d5c2[_0x33c0('0x44')]);return db[_0x33c0('0x3d')][_0x33c0('0x45')](_0x3ba0e7)[_0x33c0('0x22')](handleEntityNotFound(_0x4cec97,null))['then'](respondWithResult(_0x4cec97,null))[_0x33c0('0x42')](handleError(_0x4cec97,null));};exports['create']=function(_0xd01a22,_0x5b1f3a){return db[_0x33c0('0x3d')]['create'](_0xd01a22[_0x33c0('0x46')],{})[_0x33c0('0x22')](respondWithResult(_0x5b1f3a,0xc9))[_0x33c0('0x42')](handleError(_0x5b1f3a,null));};exports[_0x33c0('0x21')]=function(_0x17a831,_0x20a166){if(_0x17a831[_0x33c0('0x46')]['id']){delete _0x17a831['body']['id'];}return db[_0x33c0('0x3d')][_0x33c0('0x45')]({'where':{'id':_0x17a831[_0x33c0('0x43')]['id']}})[_0x33c0('0x22')](handleEntityNotFound(_0x20a166,null))['then'](saveUpdates(_0x17a831[_0x33c0('0x46')],null))['then'](respondWithResult(_0x20a166,null))[_0x33c0('0x42')](handleError(_0x20a166,null));};exports[_0x33c0('0x23')]=function(_0x1deb98,_0x1086c2){return db[_0x33c0('0x3d')][_0x33c0('0x45')]({'where':{'id':_0x1deb98[_0x33c0('0x43')]['id']}})['then'](handleEntityNotFound(_0x1086c2,null))[_0x33c0('0x22')](removeEntity(_0x1086c2,null))['catch'](handleError(_0x1086c2,null));};
\ No newline at end of file
+var _0xe451=['end','offset','undefined','limit','count','update','then','destroy','sendStatus','error','name','send','map','fieldName','type','key','query','keys','intersection','model','fields','attributes','length','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','WhatsappApplication','includeAll','include','findAll','rows','catch','show','params','rawAttributes','create','body','find','zip-dir','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','status'];(function(_0x40576b,_0x280b79){var _0x39d545=function(_0x3d6c28){while(--_0x3d6c28){_0x40576b['push'](_0x40576b['shift']());}};_0x39d545(++_0x280b79);}(_0xe451,0xec));var _0x1e45=function(_0x57bcc0,_0x281040){_0x57bcc0=_0x57bcc0-0x0;var _0x4e361f=_0xe451[_0x57bcc0];return _0x4e361f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1e45('0x0'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x1e45('0x1'));var Mustache=require(_0x1e45('0x2'));var util=require(_0x1e45('0x3'));var path=require(_0x1e45('0x4'));var sox=require('sox');var csv=require(_0x1e45('0x5'));var ejs=require(_0x1e45('0x6'));var fs=require('fs');var fs_extra=require(_0x1e45('0x7'));var _=require('lodash');var squel=require(_0x1e45('0x8'));var crypto=require(_0x1e45('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x1e45('0x5'));var querystring=require(_0x1e45('0xa'));var Papa=require(_0x1e45('0xb'));var Redis=require('ioredis');var authService=require(_0x1e45('0xc'));var qs=require(_0x1e45('0xd'));var as=require(_0x1e45('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x1e45('0xf'));var utils=require(_0x1e45('0x10'));var config=require(_0x1e45('0x11'));var licenseUtil=require(_0x1e45('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x16cafc,_0x2ec564){_0x2ec564=_0x2ec564||0xcc;return function(_0x3d25a8){if(_0x3d25a8){return _0x16cafc['sendStatus'](_0x2ec564);}return _0x16cafc[_0x1e45('0x13')](_0x2ec564)[_0x1e45('0x14')]();};}function respondWithResult(_0x31215a,_0x21f68d){_0x21f68d=_0x21f68d||0xc8;return function(_0x5b3ee1){if(_0x5b3ee1){return _0x31215a[_0x1e45('0x13')](_0x21f68d)['json'](_0x5b3ee1);}};}function respondWithFilteredResult(_0xf66042,_0x2c7ace){return function(_0x4e1400){if(_0x4e1400){var _0xfdeae3=typeof _0x2c7ace[_0x1e45('0x15')]===_0x1e45('0x16')&&typeof _0x2c7ace[_0x1e45('0x17')]===_0x1e45('0x16');var _0x308c29=_0x4e1400[_0x1e45('0x18')];var _0x2a6f47=_0xfdeae3?0x0:_0x2c7ace[_0x1e45('0x15')];var _0x5d24a7=_0xfdeae3?_0x4e1400[_0x1e45('0x18')]:_0x2c7ace['offset']+_0x2c7ace['limit'];var _0x17c63a;if(_0x5d24a7>=_0x308c29){_0x5d24a7=_0x308c29;_0x17c63a=0xc8;}else{_0x17c63a=0xce;}_0xf66042['status'](_0x17c63a);return _0xf66042['set']('Content-Range',_0x2a6f47+'-'+_0x5d24a7+'/'+_0x308c29)['json'](_0x4e1400);}return null;};}function patchUpdates(_0x207335){return function(_0x4476eb){try{jsonpatch['apply'](_0x4476eb,_0x207335,!![]);}catch(_0xc0deec){return BPromise['reject'](_0xc0deec);}return _0x4476eb['save']();};}function saveUpdates(_0x41cfae,_0x59aaa7){return function(_0x4ffe97){if(_0x4ffe97){return _0x4ffe97[_0x1e45('0x19')](_0x41cfae)[_0x1e45('0x1a')](function(_0x4ce4c5){return _0x4ce4c5;});}return null;};}function removeEntity(_0x48209a,_0x2fb478){return function(_0x40c216){if(_0x40c216){return _0x40c216[_0x1e45('0x1b')]()[_0x1e45('0x1a')](function(){_0x48209a[_0x1e45('0x13')](0xcc)[_0x1e45('0x14')]();});}};}function handleEntityNotFound(_0x55e968,_0x3f6771){return function(_0x394f7e){if(!_0x394f7e){_0x55e968[_0x1e45('0x1c')](0x194);}return _0x394f7e;};}function handleError(_0x25b131,_0x1a8355){_0x1a8355=_0x1a8355||0x1f4;return function(_0xfd7633){logger[_0x1e45('0x1d')](_0xfd7633['stack']);if(_0xfd7633[_0x1e45('0x1e')]){delete _0xfd7633[_0x1e45('0x1e')];}_0x25b131[_0x1e45('0x13')](_0x1a8355)[_0x1e45('0x1f')](_0xfd7633);};}exports['index']=function(_0xe7cdcf,_0x34046e){var _0x3dd6c3={},_0x5229e7={},_0x3def67={'count':0x0,'rows':[]};var _0x4a04aa=_[_0x1e45('0x20')](db['WhatsappApplication']['rawAttributes'],function(_0x34d75e){return{'name':_0x34d75e[_0x1e45('0x21')],'type':_0x34d75e[_0x1e45('0x22')][_0x1e45('0x23')]};});_0x5229e7['model']=_[_0x1e45('0x20')](_0x4a04aa,'name');_0x5229e7[_0x1e45('0x24')]=_[_0x1e45('0x25')](_0xe7cdcf[_0x1e45('0x24')]);_0x5229e7['filters']=_[_0x1e45('0x26')](_0x5229e7[_0x1e45('0x27')],_0x5229e7[_0x1e45('0x24')]);_0x3dd6c3['attributes']=_[_0x1e45('0x26')](_0x5229e7[_0x1e45('0x27')],qs[_0x1e45('0x28')](_0xe7cdcf[_0x1e45('0x24')]['fields']));_0x3dd6c3[_0x1e45('0x29')]=_0x3dd6c3[_0x1e45('0x29')][_0x1e45('0x2a')]?_0x3dd6c3[_0x1e45('0x29')]:_0x5229e7[_0x1e45('0x27')];if(!_0xe7cdcf['query']['hasOwnProperty']('nolimit')){_0x3dd6c3['limit']=qs[_0x1e45('0x17')](_0xe7cdcf['query'][_0x1e45('0x17')]);_0x3dd6c3[_0x1e45('0x15')]=qs['offset'](_0xe7cdcf['query'][_0x1e45('0x15')]);}_0x3dd6c3[_0x1e45('0x2b')]=qs[_0x1e45('0x2c')](_0xe7cdcf[_0x1e45('0x24')]['sort']);_0x3dd6c3[_0x1e45('0x2d')]=qs[_0x1e45('0x2e')](_[_0x1e45('0x2f')](_0xe7cdcf[_0x1e45('0x24')],_0x5229e7['filters']),_0x4a04aa);if(_0xe7cdcf[_0x1e45('0x24')][_0x1e45('0x30')]){_0x3dd6c3[_0x1e45('0x2d')]=_['merge'](_0x3dd6c3['where'],{'$or':_[_0x1e45('0x20')](_0x4a04aa,function(_0x47c200){if(_0x47c200['type']!==_0x1e45('0x31')){var _0x587a0a={};_0x587a0a[_0x47c200['name']]={'$like':'%'+_0xe7cdcf[_0x1e45('0x24')][_0x1e45('0x30')]+'%'};return _0x587a0a;}})});}_0x3dd6c3=_[_0x1e45('0x32')]({},_0x3dd6c3,_0xe7cdcf[_0x1e45('0x33')]);var _0x11a327={'where':_0x3dd6c3[_0x1e45('0x2d')]};return db[_0x1e45('0x34')][_0x1e45('0x18')](_0x11a327)[_0x1e45('0x1a')](function(_0x53713a){_0x3def67[_0x1e45('0x18')]=_0x53713a;if(_0xe7cdcf[_0x1e45('0x24')][_0x1e45('0x35')]){_0x3dd6c3[_0x1e45('0x36')]=[{'all':!![]}];}return db['WhatsappApplication'][_0x1e45('0x37')](_0x3dd6c3);})[_0x1e45('0x1a')](function(_0x2984ae){_0x3def67[_0x1e45('0x38')]=_0x2984ae;return _0x3def67;})['then'](respondWithFilteredResult(_0x34046e,_0x3dd6c3))[_0x1e45('0x39')](handleError(_0x34046e,null));};exports[_0x1e45('0x3a')]=function(_0x32a42a,_0x393a50){var _0x522b40={'raw':!![],'where':{'id':_0x32a42a[_0x1e45('0x3b')]['id']}},_0x460d38={};_0x460d38[_0x1e45('0x27')]=_[_0x1e45('0x25')](db[_0x1e45('0x34')][_0x1e45('0x3c')]);_0x460d38['query']=_[_0x1e45('0x25')](_0x32a42a['query']);_0x460d38[_0x1e45('0x2e')]=_[_0x1e45('0x26')](_0x460d38[_0x1e45('0x27')],_0x460d38[_0x1e45('0x24')]);_0x522b40[_0x1e45('0x29')]=_[_0x1e45('0x26')](_0x460d38['model'],qs[_0x1e45('0x28')](_0x32a42a[_0x1e45('0x24')][_0x1e45('0x28')]));_0x522b40['attributes']=_0x522b40[_0x1e45('0x29')][_0x1e45('0x2a')]?_0x522b40[_0x1e45('0x29')]:_0x460d38['model'];if(_0x32a42a['query']['includeAll']){_0x522b40[_0x1e45('0x36')]=[{'all':!![]}];}_0x522b40=_[_0x1e45('0x32')]({},_0x522b40,_0x32a42a[_0x1e45('0x33')]);return db[_0x1e45('0x34')]['find'](_0x522b40)[_0x1e45('0x1a')](handleEntityNotFound(_0x393a50,null))[_0x1e45('0x1a')](respondWithResult(_0x393a50,null))[_0x1e45('0x39')](handleError(_0x393a50,null));};exports[_0x1e45('0x3d')]=function(_0x3994d8,_0x53e41b){return db[_0x1e45('0x34')][_0x1e45('0x3d')](_0x3994d8[_0x1e45('0x3e')],{})[_0x1e45('0x1a')](respondWithResult(_0x53e41b,0xc9))[_0x1e45('0x39')](handleError(_0x53e41b,null));};exports['update']=function(_0x374c32,_0x14b06f){if(_0x374c32[_0x1e45('0x3e')]['id']){delete _0x374c32[_0x1e45('0x3e')]['id'];}return db[_0x1e45('0x34')][_0x1e45('0x3f')]({'where':{'id':_0x374c32['params']['id']}})[_0x1e45('0x1a')](handleEntityNotFound(_0x14b06f,null))[_0x1e45('0x1a')](saveUpdates(_0x374c32['body'],null))[_0x1e45('0x1a')](respondWithResult(_0x14b06f,null))['catch'](handleError(_0x14b06f,null));};exports[_0x1e45('0x1b')]=function(_0x3e6845,_0x5bafc7){return db[_0x1e45('0x34')][_0x1e45('0x3f')]({'where':{'id':_0x3e6845[_0x1e45('0x3b')]['id']}})[_0x1e45('0x1a')](handleEntityNotFound(_0x5bafc7,null))[_0x1e45('0x1a')](removeEntity(_0x5bafc7,null))[_0x1e45('0x39')](handleError(_0x5bafc7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf8b2=['define','WhatsappApplication','whatsapp_applications','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','./whatsappApplication.attributes','exports'];(function(_0x38622b,_0x3cfdf7){var _0x2c1a7a=function(_0x5de9cc){while(--_0x5de9cc){_0x38622b['push'](_0x38622b['shift']());}};_0x2c1a7a(++_0x3cfdf7);}(_0xf8b2,0x15e));var _0x2f8b=function(_0x58ad97,_0x5c0ac3){_0x58ad97=_0x58ad97-0x0;var _0x30e92d=_0xf8b2[_0x58ad97];return _0x30e92d;};'use strict';var _=require(_0x2f8b('0x0'));var util=require(_0x2f8b('0x1'));var logger=require(_0x2f8b('0x2'))(_0x2f8b('0x3'));var moment=require(_0x2f8b('0x4'));var BPromise=require(_0x2f8b('0x5'));var rp=require(_0x2f8b('0x6'));var fs=require('fs');var path=require(_0x2f8b('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x2f8b('0x8'));module[_0x2f8b('0x9')]=function(_0x3c6838,_0x1d133a){return _0x3c6838[_0x2f8b('0xa')](_0x2f8b('0xb'),attributes,{'tableName':_0x2f8b('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x2f8b('0xd'),'collate':_0x2f8b('0xe')});};
\ No newline at end of file
+var _0xa1a5=['./whatsappApplication.attributes','exports','define','whatsapp_applications','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x277456,_0x46f400){var _0x30d434=function(_0x2b8843){while(--_0x2b8843){_0x277456['push'](_0x277456['shift']());}};_0x30d434(++_0x46f400);}(_0xa1a5,0x1b8));var _0x5a1a=function(_0x46dffb,_0x213923){_0x46dffb=_0x46dffb-0x0;var _0x11c792=_0xa1a5[_0x46dffb];return _0x11c792;};'use strict';var _=require(_0x5a1a('0x0'));var util=require('util');var logger=require(_0x5a1a('0x1'))(_0x5a1a('0x2'));var moment=require(_0x5a1a('0x3'));var BPromise=require(_0x5a1a('0x4'));var rp=require(_0x5a1a('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x5a1a('0x6'));var config=require(_0x5a1a('0x7'));var attributes=require(_0x5a1a('0x8'));module[_0x5a1a('0x9')]=function(_0x1b718f,_0x27f71f){return _0x1b718f[_0x5a1a('0xa')]('WhatsappApplication',attributes,{'tableName':_0x5a1a('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x5a1a('0xc'),'collate':_0x5a1a('0xd')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd0bb=['debug','stringify','error','code','WhatsappApplication,\x20%s,\x20%s','message','result','catch','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','request','then','request\x20sent'];(function(_0x536952,_0x579dd8){var _0x1d97a9=function(_0x3aa221){while(--_0x3aa221){_0x536952['push'](_0x536952['shift']());}};_0x1d97a9(++_0x579dd8);}(_0xd0bb,0x1eb));var _0xbd0b=function(_0x200276,_0x3a39b5){_0x200276=_0x200276-0x0;var _0x496325=_0xd0bb[_0x200276];return _0x496325;};'use strict';var _=require(_0xbd0b('0x0'));var util=require(_0xbd0b('0x1'));var moment=require(_0xbd0b('0x2'));var BPromise=require('bluebird');var rs=require(_0xbd0b('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbd0b('0x4'))['db'];var utils=require(_0xbd0b('0x5'));var logger=require('../../config/logger')(_0xbd0b('0x6'));var config=require('../../config/environment');var jayson=require(_0xbd0b('0x7'));var client=jayson[_0xbd0b('0x8')][_0xbd0b('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x37c205,_0x809599,_0x5eb975){return new BPromise(function(_0x2a4075,_0x4533ff){return client[_0xbd0b('0xa')](_0x37c205,_0x5eb975)[_0xbd0b('0xb')](function(_0x16e185){logger['info']('WhatsappApplication,\x20%s,\x20%s',_0x809599,_0xbd0b('0xc'));logger[_0xbd0b('0xd')]('WhatsappApplication,\x20%s,\x20%s,\x20%s',_0x809599,_0xbd0b('0xc'),JSON[_0xbd0b('0xe')](_0x16e185));if(_0x16e185['error']){if(_0x16e185[_0xbd0b('0xf')][_0xbd0b('0x10')]===0x1f4){logger[_0xbd0b('0xf')](_0xbd0b('0x11'),_0x809599,_0x16e185[_0xbd0b('0xf')][_0xbd0b('0x12')]);return _0x4533ff(_0x16e185[_0xbd0b('0xf')][_0xbd0b('0x12')]);}logger[_0xbd0b('0xf')](_0xbd0b('0x11'),_0x809599,_0x16e185[_0xbd0b('0xf')]['message']);return _0x2a4075(_0x16e185[_0xbd0b('0xf')]['message']);}else{logger['info'](_0xbd0b('0x11'),_0x809599,_0xbd0b('0xc'));_0x2a4075(_0x16e185[_0xbd0b('0x13')][_0xbd0b('0x12')]);}})[_0xbd0b('0x14')](function(_0x546db3){logger['error'](_0xbd0b('0x11'),_0x809599,_0x546db3);_0x4533ff(_0x546db3);});});}
\ No newline at end of file
+var _0xda55=['util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','request','then','WhatsappApplication,\x20%s,\x20%s','request\x20sent','debug','WhatsappApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash'];(function(_0x1880f5,_0x18418a){var _0x3f0957=function(_0x22b58b){while(--_0x22b58b){_0x1880f5['push'](_0x1880f5['shift']());}};_0x3f0957(++_0x18418a);}(_0xda55,0x6d));var _0x5da5=function(_0x433422,_0x2fb833){_0x433422=_0x433422-0x0;var _0xd9daaf=_0xda55[_0x433422];return _0xd9daaf;};'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')]('WhatsappApplication,\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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x723e=['../../config/environment','./whatsappInteraction.controller','isAuthenticated','index','get','/describe','describe','/:id','show','/:id/messages','getMessages','/:id/download','download','post','create','tracked','whatsapp','whatsappinteraction:addtags','addTags','put','whatsappinteraction:update','update','delete','whatsappinteraction:destroy','destroy','/:id/tags','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x3ca66a,_0xf18e8d){var _0x1736fa=function(_0x2c34ad){while(--_0x2c34ad){_0x3ca66a['push'](_0x3ca66a['shift']());}};_0x1736fa(++_0xf18e8d);}(_0x723e,0x179));var _0xe723=function(_0x4fa166,_0x58b7fb){_0x4fa166=_0x4fa166-0x0;var _0x5dd974=_0x723e[_0x4fa166];return _0x5dd974;};'use strict';var multer=require('multer');var util=require(_0xe723('0x0'));var path=require(_0xe723('0x1'));var timeout=require(_0xe723('0x2'));var express=require(_0xe723('0x3'));var router=express[_0xe723('0x4')]();var fs_extra=require(_0xe723('0x5'));var auth=require(_0xe723('0x6'));var interaction=require(_0xe723('0x7'));var config=require(_0xe723('0x8'));var controller=require(_0xe723('0x9'));router['get']('/',auth[_0xe723('0xa')](),controller[_0xe723('0xb')]);router[_0xe723('0xc')](_0xe723('0xd'),auth[_0xe723('0xa')](),controller[_0xe723('0xe')]);router[_0xe723('0xc')](_0xe723('0xf'),auth['isAuthenticated'](),controller[_0xe723('0x10')]);router[_0xe723('0xc')](_0xe723('0x11'),auth['isAuthenticated'](),controller[_0xe723('0x12')]);router[_0xe723('0xc')](_0xe723('0x13'),auth['isAuthenticated'](),controller[_0xe723('0x14')]);router[_0xe723('0x15')]('/',auth[_0xe723('0xa')](),controller[_0xe723('0x16')]);router[_0xe723('0x15')]('/:id/messages',auth[_0xe723('0xa')](),controller['addMessage']);router['post']('/:id/tags',auth['isAuthenticated'](),interaction[_0xe723('0x17')](_0xe723('0x18'),_0xe723('0x19')),controller[_0xe723('0x1a')]);router[_0xe723('0x1b')]('/:id',auth[_0xe723('0xa')](),interaction[_0xe723('0x17')](_0xe723('0x18'),_0xe723('0x1c')),controller[_0xe723('0x1d')]);router[_0xe723('0x1e')](_0xe723('0xf'),auth[_0xe723('0xa')](),interaction[_0xe723('0x17')](_0xe723('0x18'),_0xe723('0x1f')),controller[_0xe723('0x20')]);router[_0xe723('0x1e')](_0xe723('0x21'),auth['isAuthenticated'](),controller['removeTags']);module[_0xe723('0x22')]=router;
\ No newline at end of file
+var _0xef17=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./whatsappInteraction.controller','isAuthenticated','get','describe','show','/:id/messages','getMessages','download','post','addMessage','/:id/tags','tracked','whatsapp','whatsappinteraction:addtags','/:id','delete','removeTags','multer','util'];(function(_0x149083,_0x4047b6){var _0x4dc74e=function(_0x1211f9){while(--_0x1211f9){_0x149083['push'](_0x149083['shift']());}};_0x4dc74e(++_0x4047b6);}(_0xef17,0x136));var _0x7ef1=function(_0x5ec769,_0x2739b2){_0x5ec769=_0x5ec769-0x0;var _0x726a95=_0xef17[_0x5ec769];return _0x726a95;};'use strict';var multer=require(_0x7ef1('0x0'));var util=require(_0x7ef1('0x1'));var path=require(_0x7ef1('0x2'));var timeout=require(_0x7ef1('0x3'));var express=require(_0x7ef1('0x4'));var router=express[_0x7ef1('0x5')]();var fs_extra=require(_0x7ef1('0x6'));var auth=require(_0x7ef1('0x7'));var interaction=require(_0x7ef1('0x8'));var config=require('../../config/environment');var controller=require(_0x7ef1('0x9'));router['get']('/',auth[_0x7ef1('0xa')](),controller['index']);router[_0x7ef1('0xb')]('/describe',auth['isAuthenticated'](),controller[_0x7ef1('0xc')]);router[_0x7ef1('0xb')]('/:id',auth[_0x7ef1('0xa')](),controller[_0x7ef1('0xd')]);router[_0x7ef1('0xb')](_0x7ef1('0xe'),auth[_0x7ef1('0xa')](),controller[_0x7ef1('0xf')]);router[_0x7ef1('0xb')]('/:id/download',auth['isAuthenticated'](),controller[_0x7ef1('0x10')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x7ef1('0x11')]('/:id/messages',auth[_0x7ef1('0xa')](),controller[_0x7ef1('0x12')]);router[_0x7ef1('0x11')](_0x7ef1('0x13'),auth[_0x7ef1('0xa')](),interaction[_0x7ef1('0x14')](_0x7ef1('0x15'),_0x7ef1('0x16')),controller['addTags']);router['put'](_0x7ef1('0x17'),auth['isAuthenticated'](),interaction[_0x7ef1('0x14')](_0x7ef1('0x15'),'whatsappinteraction:update'),controller['update']);router['delete'](_0x7ef1('0x17'),auth['isAuthenticated'](),interaction[_0x7ef1('0x14')]('whatsapp','whatsappinteraction:destroy'),controller['destroy']);router[_0x7ef1('0x18')]('/:id/tags',auth[_0x7ef1('0xa')](),controller[_0x7ef1('0x19')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x49c4=['out','sequelize','exports','BOOLEAN','DATE','STRING','ENUM'];(function(_0x1928c9,_0x13a6d1){var _0x51b5fb=function(_0x24cf70){while(--_0x24cf70){_0x1928c9['push'](_0x1928c9['shift']());}};_0x51b5fb(++_0x13a6d1);}(_0x49c4,0x9b));var _0x449c=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0x49c4[_0x53ccf2];return _0x5a2964;};'use strict';var Sequelize=require(_0x449c('0x0'));var moment=require('moment');module[_0x449c('0x1')]={'closed':{'type':Sequelize[_0x449c('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x449c('0x3')]},'disposition':{'type':Sequelize[_0x449c('0x4')]},'secondDisposition':{'type':Sequelize[_0x449c('0x4')]},'thirdDisposition':{'type':Sequelize[_0x449c('0x4')]},'note':{'type':Sequelize[_0x449c('0x4')]},'phone':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0x449c('0x5')]('in',_0x449c('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x449c('0x3')]},'lastMsgDirection':{'type':Sequelize[_0x449c('0x5')]('in',_0x449c('0x6')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x449c('0x2')],'defaultValue':![]}};
\ No newline at end of file
+var _0x326f=['BOOLEAN','DATE','STRING','ENUM','out','sequelize'];(function(_0x55679c,_0x129027){var _0x3b099e=function(_0x55aa52){while(--_0x55aa52){_0x55679c['push'](_0x55679c['shift']());}};_0x3b099e(++_0x129027);}(_0x326f,0xd1));var _0xf326=function(_0x207ff8,_0x1281ec){_0x207ff8=_0x207ff8-0x0;var _0x56e835=_0x326f[_0x207ff8];return _0x56e835;};'use strict';var Sequelize=require(_0xf326('0x0'));var moment=require('moment');module['exports']={'closed':{'type':Sequelize[_0xf326('0x1')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xf326('0x2')]},'disposition':{'type':Sequelize[_0xf326('0x3')]},'secondDisposition':{'type':Sequelize[_0xf326('0x3')]},'thirdDisposition':{'type':Sequelize[_0xf326('0x3')]},'note':{'type':Sequelize[_0xf326('0x3')]},'phone':{'type':Sequelize[_0xf326('0x3')]},'read1stAt':{'type':Sequelize[_0xf326('0x2')]},'firstMsgDirection':{'type':Sequelize[_0xf326('0x4')]('in',_0xf326('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0xf326('0x4')]('in',_0xf326('0x5')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0xf326('0x1')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3cb7=['then','error','stack','name','send','Users','map','fullname','split','forEach','push','TagIds','catch','index','WhatsappInteraction','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','select','field','color','from','u.id','u.fullname','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','whatsapp_messages','me.WhatsappInteractionId\x20=\x20i.id','it.WhatsappInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','value','`\x20=\x200','having','`\x20>\x200','Contact','operator','$substring','length','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','find','ContactId','buildExpression','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','body','some','compact','isEmpty','i.WhatsappAccountId\x20IN\x20?','concat','createdAt','$gte','parse','$lte','null','\x20IS\x20NULL','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','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)','unreadMessages','contactName','DESC','WhatsappAccountId','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','user','agent','i.WhatsappAccountId\x20IS\x20NULL','sequelize','toString','keyBy','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','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','Contact.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.WhatsappInteractionId\x20IN\x20?','groupBy','WhatsappInteractionId','all','rows','show','params','includeAll','include','options','destroy','describe','addMessage','WhatsappMessage','ids','omit','getMessages','findOne','pick','format','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','setTags','emit','removeTags','download','unix','join','root','files','tmp','server','transcript-%d-%s.zip','User','CmContact','firstName','lastName','attachments','Attachment','Messages','direction','WhatsappAccount','Owner','get','Whatsapp','disposition','existsSync','createReadStream','pipe','createWriteStream','basename','System','secret','renderFile','views','transcript-','.pdf','createPdfFromHTML','log','unlinkSync','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./whatsappInteraction.socket','sendStatus','end','status','offset','undefined','limit','count','apply','reject','update'];(function(_0x46698a,_0x8de1e4){var _0x356db0=function(_0x19e83c){while(--_0x19e83c){_0x46698a['push'](_0x46698a['shift']());}};_0x356db0(++_0x8de1e4);}(_0x3cb7,0x1a8));var _0x73cb=function(_0x46e523,_0xe6fccb){_0x46e523=_0x46e523-0x0;var _0x5da0ee=_0x3cb7[_0x46e523];return _0x5da0ee;};'use strict';var emlformat=require(_0x73cb('0x0'));var rimraf=require(_0x73cb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x73cb('0x2'));var rp=require(_0x73cb('0x3'));var moment=require(_0x73cb('0x4'));var BPromise=require(_0x73cb('0x5'));var Mustache=require(_0x73cb('0x6'));var util=require('util');var path=require(_0x73cb('0x7'));var sox=require('sox');var csv=require(_0x73cb('0x8'));var ejs=require(_0x73cb('0x9'));var fs=require('fs');var fs_extra=require(_0x73cb('0xa'));var _=require(_0x73cb('0xb'));var squel=require(_0x73cb('0xc'));var crypto=require(_0x73cb('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x73cb('0xe'));var toCsv=require(_0x73cb('0x8'));var querystring=require(_0x73cb('0xf'));var Papa=require(_0x73cb('0x10'));var Redis=require(_0x73cb('0x11'));var authService=require(_0x73cb('0x12'));var qs=require(_0x73cb('0x13'));var as=require(_0x73cb('0x14'));var pdf=require(_0x73cb('0x15'));var hardwareService=require(_0x73cb('0x16'));var logger=require(_0x73cb('0x17'))(_0x73cb('0x18'));var utils=require(_0x73cb('0x19'));var config=require(_0x73cb('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x73cb('0x1b'))['db'];config[_0x73cb('0x1c')]=_[_0x73cb('0x1d')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x73cb('0x1e'))(new Redis(config[_0x73cb('0x1c')]));require(_0x73cb('0x1f'))['register'](socket);function respondWithStatusCode(_0xec7664,_0x2fa647){_0x2fa647=_0x2fa647||0xcc;return function(_0x53f53e){if(_0x53f53e){return _0xec7664[_0x73cb('0x20')](_0x2fa647);}return _0xec7664['status'](_0x2fa647)[_0x73cb('0x21')]();};}function respondWithResult(_0x3f7b57,_0x41b0aa){_0x41b0aa=_0x41b0aa||0xc8;return function(_0x4caaab){if(_0x4caaab){return _0x3f7b57[_0x73cb('0x22')](_0x41b0aa)['json'](_0x4caaab);}};}function respondWithFilteredResult(_0xc52f4a,_0x1b2a83){return function(_0x3077c9){if(_0x3077c9){var _0x5d5df4=typeof _0x1b2a83[_0x73cb('0x23')]===_0x73cb('0x24')&&typeof _0x1b2a83[_0x73cb('0x25')]===_0x73cb('0x24');var _0x4bb7bf=_0x3077c9[_0x73cb('0x26')];var _0x42fc08=_0x5d5df4?0x0:_0x1b2a83[_0x73cb('0x23')];var _0xebd7f8=_0x5d5df4?_0x3077c9[_0x73cb('0x26')]:_0x1b2a83[_0x73cb('0x23')]+_0x1b2a83['limit'];var _0xde117e;if(_0xebd7f8>=_0x4bb7bf){_0xebd7f8=_0x4bb7bf;_0xde117e=0xc8;}else{_0xde117e=0xce;}_0xc52f4a[_0x73cb('0x22')](_0xde117e);return _0xc52f4a['set']('Content-Range',_0x42fc08+'-'+_0xebd7f8+'/'+_0x4bb7bf)['json'](_0x3077c9);}return null;};}function patchUpdates(_0x5550b0){return function(_0x4d09df){try{jsonpatch[_0x73cb('0x27')](_0x4d09df,_0x5550b0,!![]);}catch(_0x3bc73a){return BPromise[_0x73cb('0x28')](_0x3bc73a);}return _0x4d09df['save']();};}function saveUpdates(_0x2574e1,_0x757511){return function(_0x2924b1){if(_0x2924b1){return _0x2924b1[_0x73cb('0x29')](_0x2574e1)[_0x73cb('0x2a')](function(_0x28cac5){return _0x28cac5;});}return null;};}function removeEntity(_0x58eb8a,_0x1afa3e){return function(_0xd7aa1a){if(_0xd7aa1a){return _0xd7aa1a['destroy']()[_0x73cb('0x2a')](function(){_0x58eb8a[_0x73cb('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4e3d8c,_0x4852cc){return function(_0x252c0f){if(!_0x252c0f){_0x4e3d8c[_0x73cb('0x20')](0x194);}return _0x252c0f;};}function handleError(_0x540d9c,_0x1834db){_0x1834db=_0x1834db||0x1f4;return function(_0x4dca3d){logger[_0x73cb('0x2b')](_0x4dca3d[_0x73cb('0x2c')]);if(_0x4dca3d[_0x73cb('0x2d')]){delete _0x4dca3d[_0x73cb('0x2d')];}_0x540d9c[_0x73cb('0x22')](_0x1834db)[_0x73cb('0x2e')](_0x4dca3d);};}function getInteractionUsers(_0x4552e1,_0x3126d3){return new BPromise(function(_0x3199cd,_0x227027){try{if(_0x3126d3[_0x4552e1['id']]){_0x4552e1[_0x73cb('0x2f')]=_[_0x73cb('0x30')](_0x3126d3[_0x4552e1['id']],function(_0x10127a){return{'id':_0x10127a['id'],'fullname':_0x10127a[_0x73cb('0x31')]};});}}catch(_0x5be308){_0x227027(_0x5be308);}_0x3199cd(_0x4552e1);});}function getInteractionTags(_0x5f0f19,_0x27e019){return new BPromise(function(_0x1e3a46,_0x411839){try{if(_0x5f0f19['TagIds']){_0x5f0f19['Tags']=[];_0x5f0f19['TagIds'][_0x73cb('0x32')](',')[_0x73cb('0x33')](function(_0x1ec035){_0x5f0f19['Tags'][_0x73cb('0x34')](_0x27e019[_0x1ec035]);});}delete _0x5f0f19[_0x73cb('0x35')];}catch(_0x402991){_0x411839(_0x402991);}_0x1e3a46(_0x5f0f19);});}function updateWhatsappInteraction(_0x4f75f1,_0x291fb8,_0x5e9485){return new BPromise(function(_0x1b32cf,_0x516aa0){return getInteractionUsers(_0x4f75f1,_0x5e9485)['then'](function(_0x1c7926){return getInteractionTags(_0x1c7926,_0x291fb8);})['then'](function(_0x1c056c){_0x1b32cf(_0x1c056c);})[_0x73cb('0x36')](function(_0x125c0b){_0x516aa0(_0x125c0b);});});}exports[_0x73cb('0x37')]=function(_0x5d5014,_0x4f863b){var _0x37d2f0={},_0x323b6e={},_0x304b7d={'count':0x0,'rows':[]};var _0x3e1336=_[_0x73cb('0x30')](db[_0x73cb('0x38')][_0x73cb('0x39')],function(_0x2d5443){return{'name':_0x2d5443['fieldName'],'type':_0x2d5443[_0x73cb('0x3a')][_0x73cb('0x3b')]};});_0x323b6e[_0x73cb('0x3c')]=_[_0x73cb('0x30')](_0x3e1336,_0x73cb('0x2d'));_0x323b6e[_0x73cb('0x3d')]=_[_0x73cb('0x3e')](_0x5d5014['query']);_0x323b6e[_0x73cb('0x3f')]=_[_0x73cb('0x40')](_0x323b6e[_0x73cb('0x3c')],_0x323b6e['query']);_0x37d2f0['attributes']=_[_0x73cb('0x40')](_0x323b6e['model'],qs[_0x73cb('0x41')](_0x5d5014[_0x73cb('0x3d')][_0x73cb('0x41')]));_0x37d2f0['attributes']=_0x37d2f0[_0x73cb('0x42')]['length']?_0x37d2f0[_0x73cb('0x42')]:_0x323b6e[_0x73cb('0x3c')];if(!_0x5d5014[_0x73cb('0x3d')][_0x73cb('0x43')](_0x73cb('0x44'))){_0x37d2f0[_0x73cb('0x25')]=qs[_0x73cb('0x25')](_0x5d5014[_0x73cb('0x3d')][_0x73cb('0x25')]);_0x37d2f0[_0x73cb('0x23')]=qs[_0x73cb('0x23')](_0x5d5014[_0x73cb('0x3d')][_0x73cb('0x23')]);}_0x37d2f0[_0x73cb('0x45')]=qs[_0x73cb('0x46')](_0x5d5014[_0x73cb('0x3d')][_0x73cb('0x46')]);_0x37d2f0[_0x73cb('0x47')]=qs['filters'](_['pick'](_0x5d5014[_0x73cb('0x3d')],_0x323b6e[_0x73cb('0x3f')]),_0x3e1336);var _0x40df5a=[];var _0x159519=squel[_0x73cb('0x48')]()[_0x73cb('0x49')]('id')[_0x73cb('0x49')](_0x73cb('0x2d'))[_0x73cb('0x49')](_0x73cb('0x4a'))[_0x73cb('0x4b')]('tools_tags');var _0x207604=squel[_0x73cb('0x48')]()[_0x73cb('0x49')](_0x73cb('0x4c'))[_0x73cb('0x49')](_0x73cb('0x4d'))[_0x73cb('0x49')](_0x73cb('0x4e'))[_0x73cb('0x4b')](_0x73cb('0x4f'),'ui')[_0x73cb('0x50')](_0x73cb('0x51'),'u',_0x73cb('0x52'));var _0x1e7bc4=squel[_0x73cb('0x48')]()[_0x73cb('0x4b')](_0x73cb('0x53'),'i')[_0x73cb('0x50')](_0x73cb('0x54'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x73cb('0x50')](_0x73cb('0x51'),'o',_0x73cb('0x55'))['left_join'](_0x73cb('0x56'),'a','a.id\x20=\x20i.WhatsappAccountId')['left_join'](_0x73cb('0x57'),'me',_0x73cb('0x58'))[_0x73cb('0x50')]('whatsapp_interaction_has_tags','it',_0x73cb('0x59'))['left_join'](_0x73cb('0x5a'),'t',_0x73cb('0x5b'));var _0x4c47b1=squel[_0x73cb('0x5c')]();var _0x22ed91=[];var _0x6cdf7=squel[_0x73cb('0x5c')]();var _0x33d847;if(_0x5d5014[_0x73cb('0x3d')][_0x73cb('0x5d')]){_0x33d847=as['parseSearch'](_0x5d5014[_0x73cb('0x3d')][_0x73cb('0x5d')]);var _0x6542bb=_0x33d847[_0x73cb('0x5e')];for(var _0x50c852=0x0;_0x50c852<_0x33d847[_0x73cb('0x5f')]['length'];_0x50c852++){var _0x370374=_0x33d847['conditions'][_0x50c852];var _0x27f4c2='i';var _0x259996=_['find'](_0x3e1336,['name',_0x370374[_0x73cb('0x49')]]);if(!_0x259996){switch(_0x370374['field']){case'unreadMessages':if(_0x370374[_0x73cb('0x60')]==0x1){_0x1e7bc4['having']('`'+_0x370374[_0x73cb('0x49')]+_0x73cb('0x61'));}else{_0x1e7bc4[_0x73cb('0x62')]('`'+_0x370374['field']+_0x73cb('0x63'));}break;case _0x73cb('0x64'):if(_0x370374[_0x73cb('0x65')]===_0x73cb('0x66')){if(_0x370374[_0x73cb('0x60')]['split']('\x20')[_0x73cb('0x67')]>0x1){_0x4c47b1[_0x6542bb](_0x73cb('0x68'),qs[_0x73cb('0x69')](_0x370374[_0x73cb('0x60')]),null);}else{var _0x3cfdae='%'+_0x370374['value']+'%';_0x4c47b1[_0x6542bb]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x3cfdae,_0x3cfdae,_0x3cfdae);}}else{_0x259996=_[_0x73cb('0x6a')](_0x3e1336,[_0x73cb('0x2d'),'ContactId']);_0x370374[_0x73cb('0x49')]=_0x73cb('0x6b');_0x547f2d=as[_0x73cb('0x6c')](_0x27f4c2,_0x259996[_0x73cb('0x3a')],_0x370374);_0x4c47b1[_0x6542bb](_0x547f2d[_0x73cb('0x6d')],_0x547f2d[_0x73cb('0x60')][_0x73cb('0x6e')],_0x547f2d['value']['end']);}break;case _0x73cb('0x6f'):var _0x5a0b0b=_0x370374[_0x73cb('0x60')][_0x73cb('0x32')](',')[_0x73cb('0x30')](function(_0xcdd204){return Number(_0xcdd204);});_0x5a0b0b[_0x73cb('0x33')](function(_0x530880){_0x6cdf7['or'](_0x73cb('0x70'),'%,'+_0x530880+',%');});_0x22ed91=_['union'](_0x22ed91,_0x5a0b0b);break;case'User':if(_0x370374[_0x73cb('0x65')]===_0x73cb('0x66')){_0x4c47b1[_0x6542bb]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x370374['value']+'%',null);}else{_0x259996=_[_0x73cb('0x6a')](_0x3e1336,[_0x73cb('0x2d'),'UserId']);_0x370374[_0x73cb('0x49')]='UserId';_0x547f2d=as['buildExpression'](_0x27f4c2,_0x259996[_0x73cb('0x3a')],_0x370374);_0x4c47b1[_0x6542bb](_0x547f2d[_0x73cb('0x6d')],_0x547f2d[_0x73cb('0x60')]['start'],_0x547f2d['value'][_0x73cb('0x21')]);}break;case _0x73cb('0x71'):_0x547f2d=as[_0x73cb('0x6c')]('me',null,_0x370374);_0x4c47b1[_0x6542bb](_0x547f2d[_0x73cb('0x6d')],_0x547f2d[_0x73cb('0x60')][_0x73cb('0x6e')],_0x547f2d[_0x73cb('0x60')][_0x73cb('0x21')]);break;}}else{var _0x547f2d=as[_0x73cb('0x6c')](_0x27f4c2,_0x259996[_0x73cb('0x3a')],_0x370374);_0x4c47b1[_0x6542bb](_0x547f2d['text'],_0x547f2d[_0x73cb('0x60')][_0x73cb('0x6e')],_0x547f2d[_0x73cb('0x60')][_0x73cb('0x21')]);}}}else{var _0x42562a=_(_0x5d5014['query'])[_0x73cb('0x3e')]()[_0x73cb('0x30')](function(_0x13f4ea){return _[_0x73cb('0x72')](_0x3e1336,[_0x73cb('0x2d'),_0x13f4ea])?_0x13f4ea:undefined;})[_0x73cb('0x73')]()[_0x73cb('0x60')]();if(!_[_0x73cb('0x74')](_0x42562a)){_0x42562a[_0x73cb('0x33')](function(_0x342af2){if(_0x342af2==='WhatsappAccountId'){_0x1e7bc4[_0x73cb('0x47')](_0x73cb('0x75'),[][_0x73cb('0x76')](_0x5d5014[_0x73cb('0x3d')][_0x342af2]));}else if(_0x342af2===_0x73cb('0x77')){var _0x11af0d=JSON['parse'](_0x5d5014[_0x73cb('0x3d')][_0x342af2])[_0x73cb('0x78')];var _0x52d96c=JSON[_0x73cb('0x79')](_0x5d5014[_0x73cb('0x3d')][_0x342af2])[_0x73cb('0x7a')];_0x1e7bc4[_0x73cb('0x47')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x11af0d,_0x52d96c);}else{if(_0x5d5014[_0x73cb('0x3d')][_0x342af2]===_0x73cb('0x7b')){_0x1e7bc4[_0x73cb('0x47')]('i.'+_0x342af2+_0x73cb('0x7c'));}else{_0x1e7bc4[_0x73cb('0x47')]('i.'+_0x342af2+'\x20=\x20?',_0x5d5014[_0x73cb('0x3d')][_0x342af2]);}}});}if(_0x5d5014['query'][_0x73cb('0x7d')]){if(_0x5d5014[_0x73cb('0x3d')][_0x73cb('0x7d')]==0x1){_0x1e7bc4[_0x73cb('0x62')](_0x73cb('0x7e'));}else{_0x1e7bc4[_0x73cb('0x62')](_0x73cb('0x7f'));}}if(_0x5d5014[_0x73cb('0x3d')][_0x73cb('0x80')]){_0x22ed91=_[_0x73cb('0x81')](_0x5d5014['query'][_0x73cb('0x80')])?_0x5d5014[_0x73cb('0x3d')]['tag']:new Array(_0x5d5014[_0x73cb('0x3d')]['tag']);_0x22ed91[_0x73cb('0x33')](function(_0x41a1dc){_0x6cdf7['or'](_0x73cb('0x70'),'%,'+_0x41a1dc+',%');});}if(_0x5d5014[_0x73cb('0x3d')][_0x73cb('0x82')]){var _0x2e1c7c=_0x5d5014[_0x73cb('0x3d')][_0x73cb('0x82')][_0x73cb('0x83')]('\x5c','\x5c\x5c')[_0x73cb('0x83')](/'/g,'\x27\x27');if(qs[_0x73cb('0x84')](_0x2e1c7c)){_0x4c47b1['or']('i.id\x20LIKE\x20?',_0x2e1c7c+'%')['or'](_0x73cb('0x85'),_0x2e1c7c+'%');}else{_0x4c47b1['or'](_0x73cb('0x86'),qs[_0x73cb('0x69')](_0x2e1c7c))['or'](_0x73cb('0x87'),_0x2e1c7c+'%');}}}_0x1e7bc4['where'](_0x4c47b1);_0x1e7bc4[_0x73cb('0x88')](_0x73cb('0x89'));var _0x4897c5={'type':db[_0x73cb('0x8a')][_0x73cb('0x8b')]['SELECT'],'raw':!![]};var _0x2dca01=_0x1e7bc4[_0x73cb('0x8c')]();_0x2dca01[_0x73cb('0x49')](_0x73cb('0x89'));_0x2dca01[_0x73cb('0x49')](_0x73cb('0x8d'),_0x73cb('0x8e'));if(_0x37d2f0[_0x73cb('0x45')]){_0x37d2f0[_0x73cb('0x45')]['forEach'](function(_0xe199cb){var _0x2734e0=_0xe199cb[0x0]===_0x73cb('0x8f')?_0xe199cb[0x0]:'i.'+_0xe199cb[0x0];_0x1e7bc4[_0x73cb('0x45')](_0x2734e0,_0xe199cb[0x1]===_0x73cb('0x90')?![]:!![]);});}if(!_[_0x73cb('0x74')](_0x22ed91)){_0x1e7bc4[_0x73cb('0x62')](_0x6cdf7);_0x2dca01[_0x73cb('0x47')]('t.id\x20IN\x20?',_0x22ed91);}BPromise['resolve']()[_0x73cb('0x2a')](function(){if(!_0x33d847){if(_0x5d5014['query'][_0x73cb('0x91')])return;_0x2dca01[_0x73cb('0x47')](_0x73cb('0x92'));_0x1e7bc4[_0x73cb('0x47')](_0x73cb('0x92'));return;}if(_0x5d5014[_0x73cb('0x93')]['role']!==_0x73cb('0x94'))return;return _0x5d5014[_0x73cb('0x93')]['getWhatsappAccounts']({'attributes':['id'],'raw':!![]})[_0x73cb('0x2a')](function(_0x4246d9){if(_[_0x73cb('0x74')](_0x4246d9)){_0x2dca01[_0x73cb('0x47')](_0x73cb('0x95'));_0x1e7bc4[_0x73cb('0x47')](_0x73cb('0x95'));}else{_0x2dca01[_0x73cb('0x47')]('i.WhatsappAccountId\x20IN\x20?',_[_0x73cb('0x30')](_0x4246d9,'id'));_0x1e7bc4['where'](_0x73cb('0x75'),_[_0x73cb('0x30')](_0x4246d9,'id'));}});})[_0x73cb('0x2a')](function(){if(_0x5d5014[_0x73cb('0x93')]['role']===_0x73cb('0x94')&&!_0x33d847&&!_0x5d5014[_0x73cb('0x3d')][_0x73cb('0x91')])return[];return db[_0x73cb('0x96')][_0x73cb('0x3d')](_0x2dca01[_0x73cb('0x97')](),_0x4897c5);})[_0x73cb('0x2a')](function(_0x20bd25){_0x304b7d[_0x73cb('0x26')]=_0x20bd25[_0x73cb('0x67')];if(_0x304b7d[_0x73cb('0x26')]===0x0)return[];return db['sequelize'][_0x73cb('0x3d')](_0x159519[_0x73cb('0x97')](),_0x4897c5)['then'](function(_0x3b2a6b){_0x40df5a=_[_0x73cb('0x98')](_0x3b2a6b,'id');_0x4897c5=_[_0x73cb('0x99')](_0x4897c5,{'model':db[_0x73cb('0x38')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5d5014[_0x73cb('0x3d')]['fields']){_0x37d2f0[_0x73cb('0x42')][_0x73cb('0x33')](function(_0x5b07ec){_0x1e7bc4['field']('i.'+_0x5b07ec);});}else{_0x1e7bc4[_0x73cb('0x49')](_0x73cb('0x8d'),_0x73cb('0x8e'));_0x1e7bc4[_0x73cb('0x49')](_0x73cb('0x9a'),_0x73cb('0x9b'));_0x1e7bc4[_0x73cb('0x49')](_0x73cb('0x9c'),_0x73cb('0x9d'));_0x1e7bc4[_0x73cb('0x49')](_0x73cb('0x9e'),_0x73cb('0x8f'));_0x1e7bc4['field']('i.*');_0x1e7bc4[_0x73cb('0x49')]('c.firstName','Contact.firstName');_0x1e7bc4['field'](_0x73cb('0x9f'),_0x73cb('0xa0'));_0x1e7bc4[_0x73cb('0x49')](_0x73cb('0xa1'),_0x73cb('0xa2'));_0x1e7bc4[_0x73cb('0x49')](_0x73cb('0xa3'),_0x73cb('0xa4'));_0x1e7bc4[_0x73cb('0x49')](_0x73cb('0xa5'),_0x73cb('0xa6'));_0x1e7bc4[_0x73cb('0x49')]('c.fax',_0x73cb('0xa7'));_0x1e7bc4[_0x73cb('0x49')](_0x73cb('0xa8'),'Owner.fullname');_0x1e7bc4['field'](_0x73cb('0xa9'),_0x73cb('0xaa'));_0x1e7bc4[_0x73cb('0x49')](_0x73cb('0xab'),_0x73cb('0x35'));}if(_0x37d2f0['limit'])_0x1e7bc4[_0x73cb('0x25')](_0x37d2f0['limit']);if(_0x37d2f0[_0x73cb('0x23')])_0x1e7bc4[_0x73cb('0x23')](_0x37d2f0[_0x73cb('0x23')]);return db['sequelize'][_0x73cb('0x3d')](_0x1e7bc4[_0x73cb('0x97')](),_0x4897c5);})['then'](function(_0x4c8f48){if(_0x4c8f48[_0x73cb('0x67')]>0x0)_0x207604[_0x73cb('0x47')](_0x73cb('0xac'),_[_0x73cb('0x30')](_0x4c8f48,'id'));return db[_0x73cb('0x96')][_0x73cb('0x3d')](_0x207604[_0x73cb('0x97')](),_0x4897c5)[_0x73cb('0x2a')](function(_0x8d17b4){var _0xce549c=_[_0x73cb('0xad')](_0x8d17b4,_0x73cb('0xae'));var _0x4459df=[];_0x4c8f48['forEach'](function(_0x5b81ce){_0x4459df[_0x73cb('0x34')](updateWhatsappInteraction(_0x5b81ce,_0x40df5a,_0xce549c));});return BPromise[_0x73cb('0xaf')](_0x4459df);});});})['then'](function(_0x2eeee5){_0x304b7d[_0x73cb('0xb0')]=_0x2eeee5;return _0x304b7d;})[_0x73cb('0x2a')](respondWithFilteredResult(_0x4f863b,_0x37d2f0))[_0x73cb('0x36')](handleError(_0x4f863b,null));};exports[_0x73cb('0xb1')]=function(_0x3446a0,_0x4988ad){var _0x247405={'raw':![],'where':{'id':_0x3446a0[_0x73cb('0xb2')]['id']}},_0x5dd27e={};_0x5dd27e['model']=_[_0x73cb('0x3e')](db[_0x73cb('0x38')]['rawAttributes']);_0x5dd27e[_0x73cb('0x3d')]=_[_0x73cb('0x3e')](_0x3446a0[_0x73cb('0x3d')]);_0x5dd27e[_0x73cb('0x3f')]=_[_0x73cb('0x40')](_0x5dd27e[_0x73cb('0x3c')],_0x5dd27e[_0x73cb('0x3d')]);_0x247405[_0x73cb('0x42')]=_[_0x73cb('0x40')](_0x5dd27e[_0x73cb('0x3c')],qs['fields'](_0x3446a0[_0x73cb('0x3d')]['fields']));_0x247405[_0x73cb('0x42')]=_0x247405['attributes']['length']?_0x247405[_0x73cb('0x42')]:_0x5dd27e[_0x73cb('0x3c')];if(_0x3446a0[_0x73cb('0x3d')][_0x73cb('0xb3')]){_0x247405[_0x73cb('0xb4')]=[{'all':!![]}];}_0x247405=_[_0x73cb('0x99')]({},_0x247405,_0x3446a0[_0x73cb('0xb5')]);return db[_0x73cb('0x38')][_0x73cb('0x6a')](_0x247405)[_0x73cb('0x2a')](handleEntityNotFound(_0x4988ad,null))['then'](respondWithResult(_0x4988ad,null))[_0x73cb('0x36')](handleError(_0x4988ad,null));};exports['create']=function(_0x1aed3f,_0x3a32ba){return db['WhatsappInteraction']['create'](_0x1aed3f['body'],{})['then'](respondWithResult(_0x3a32ba,0xc9))[_0x73cb('0x36')](handleError(_0x3a32ba,null));};exports[_0x73cb('0x29')]=function(_0x3dd4de,_0x16dbfb){if(_0x3dd4de[_0x73cb('0x71')]['id']){delete _0x3dd4de[_0x73cb('0x71')]['id'];}return db['WhatsappInteraction'][_0x73cb('0x6a')]({'where':{'id':_0x3dd4de[_0x73cb('0xb2')]['id']}})[_0x73cb('0x2a')](handleEntityNotFound(_0x16dbfb,null))['then'](saveUpdates(_0x3dd4de[_0x73cb('0x71')],null))[_0x73cb('0x2a')](respondWithResult(_0x16dbfb,null))[_0x73cb('0x36')](handleError(_0x16dbfb,null));};exports[_0x73cb('0xb6')]=function(_0x373e85,_0x44d57c){return db['WhatsappInteraction'][_0x73cb('0x6a')]({'where':{'id':_0x373e85[_0x73cb('0xb2')]['id']}})[_0x73cb('0x2a')](handleEntityNotFound(_0x44d57c,null))[_0x73cb('0x2a')](removeEntity(_0x44d57c,null))[_0x73cb('0x36')](handleError(_0x44d57c,null));};exports[_0x73cb('0xb7')]=function(_0x28380a,_0x1c27f5){return db[_0x73cb('0x38')]['describe']()['then'](respondWithResult(_0x1c27f5,null))[_0x73cb('0x36')](handleError(_0x1c27f5,null));};exports[_0x73cb('0xb8')]=function(_0x556b19,_0x39c0db,_0x3184f3){return db[_0x73cb('0xb9')][_0x73cb('0x6a')]({'where':{'id':_0x556b19[_0x73cb('0xb2')]['id']}})[_0x73cb('0x2a')](handleEntityNotFound(_0x39c0db,null))[_0x73cb('0x2a')](function(_0x28b0be){if(_0x28b0be){return _0x28b0be[_0x73cb('0xb8')](_0x556b19['body'][_0x73cb('0xba')],_[_0x73cb('0xbb')](_0x556b19[_0x73cb('0x71')],[_0x73cb('0xba'),'id'])||{});}})[_0x73cb('0x2a')](respondWithResult(_0x39c0db,null))[_0x73cb('0x36')](handleError(_0x39c0db,null));};exports[_0x73cb('0xbc')]=function(_0x1d3981,_0x2cd21b,_0x4e1d4c){var _0x4d9a53={'raw':![],'where':{}};var _0x120974={};var _0x26d3dc={'count':0x0,'rows':[]};return db[_0x73cb('0x38')][_0x73cb('0xbd')]({'where':{'id':_0x1d3981[_0x73cb('0xb2')]['id']}})[_0x73cb('0x2a')](handleEntityNotFound(_0x2cd21b,null))[_0x73cb('0x2a')](function(_0x52d696){if(_0x52d696){_0x120974[_0x73cb('0x3c')]=_['keys'](db[_0x73cb('0xb9')][_0x73cb('0x39')]);_0x120974[_0x73cb('0x3d')]=_[_0x73cb('0x3e')](_0x1d3981[_0x73cb('0x3d')]);_0x120974[_0x73cb('0x3f')]=_['intersection'](_0x120974['model'],_0x120974[_0x73cb('0x3d')]);_0x4d9a53[_0x73cb('0x42')]=_[_0x73cb('0x40')](_0x120974[_0x73cb('0x3c')],qs[_0x73cb('0x41')](_0x1d3981[_0x73cb('0x3d')][_0x73cb('0x41')]));_0x4d9a53[_0x73cb('0x42')]=_0x4d9a53[_0x73cb('0x42')][_0x73cb('0x67')]?_0x4d9a53['attributes']:_0x120974[_0x73cb('0x3c')];if(!_0x1d3981[_0x73cb('0x3d')]['hasOwnProperty'](_0x73cb('0x44'))){_0x4d9a53[_0x73cb('0x25')]=qs[_0x73cb('0x25')](_0x1d3981[_0x73cb('0x3d')][_0x73cb('0x25')]);_0x4d9a53[_0x73cb('0x23')]=qs[_0x73cb('0x23')](_0x1d3981[_0x73cb('0x3d')][_0x73cb('0x23')]);}_0x4d9a53[_0x73cb('0x45')]=qs[_0x73cb('0x46')](_0x1d3981['query'][_0x73cb('0x46')]);_0x4d9a53[_0x73cb('0x47')]=qs['filters'](_[_0x73cb('0xbe')](_0x1d3981[_0x73cb('0x3d')],_0x120974[_0x73cb('0x3f')]));_0x4d9a53[_0x73cb('0x47')][_0x73cb('0xae')]=_0x52d696['id'];if(_0x1d3981[_0x73cb('0x3d')]['filter']){_0x4d9a53['where']=_[_0x73cb('0x99')](_0x4d9a53['where'],{'$or':_['map'](_0x4d9a53[_0x73cb('0x42')],function(_0x1ef61e){var _0xe73c97={};_0xe73c97[_0x1ef61e]={'$like':'%'+_0x1d3981[_0x73cb('0x3d')][_0x73cb('0x82')]+'%'};return _0xe73c97;})});}if(_0x1d3981['query'][_0x73cb('0x78')]){var _0x44872a=_0x1d3981[_0x73cb('0x3d')][_0x73cb('0x78')]['split'](',');var _0x5f0079={};_0x5f0079[_0x44872a[0x0]]={'$gte':moment(_0x44872a[0x1])[_0x73cb('0xbf')](_0x73cb('0xc0'))};_0x4d9a53['where']=_['merge'](_0x4d9a53[_0x73cb('0x47')],_0x5f0079);}_0x4d9a53=_[_0x73cb('0x99')]({},_0x4d9a53,_0x1d3981[_0x73cb('0xb5')]);return db['WhatsappMessage'][_0x73cb('0x26')]({'where':_0x4d9a53['where']})[_0x73cb('0x2a')](function(_0x595ada){_0x26d3dc[_0x73cb('0x26')]=_0x595ada;if(_0x1d3981[_0x73cb('0x3d')][_0x73cb('0xb3')]){_0x4d9a53[_0x73cb('0xb4')]=[{'all':!![]}];}return db[_0x73cb('0xb9')][_0x73cb('0xc1')](_0x4d9a53);})[_0x73cb('0x2a')](function(_0xeb1aba){_0x26d3dc[_0x73cb('0xb0')]=_0xeb1aba;return _0x26d3dc;});}})[_0x73cb('0x2a')](respondWithFilteredResult(_0x2cd21b,_0x4d9a53))[_0x73cb('0x36')](handleError(_0x2cd21b,null));};exports[_0x73cb('0xc2')]=function(_0xa42ce8,_0xdc393d,_0x298c9d){return db[_0x73cb('0x38')]['find']({'where':{'id':_0xa42ce8[_0x73cb('0xb2')]['id']}})[_0x73cb('0x2a')](handleEntityNotFound(_0xdc393d,null))[_0x73cb('0x2a')](function(_0x5ad5d1){if(_0x5ad5d1){return _0x5ad5d1[_0x73cb('0xc3')](_0xa42ce8[_0x73cb('0x71')]['ids'],_[_0x73cb('0xbb')](_0xa42ce8[_0x73cb('0x71')],['ids','id'])||{})['spread'](function(){return db['Tag']['findAll']({'attributes':['id',_0x73cb('0x2d'),_0x73cb('0x4a')],'where':{'id':_0xa42ce8[_0x73cb('0x71')]['ids']}});})[_0x73cb('0x2a')](function(_0x59a28a){socket[_0x73cb('0xc4')]('whatsappInteractionTags:save',{'id':Number(_0xa42ce8[_0x73cb('0xb2')]['id']),'tags':_0x59a28a||[]});return{'id':Number(_0xa42ce8[_0x73cb('0xb2')]['id']),'tags':_0x59a28a||[]};});}})[_0x73cb('0x2a')](respondWithResult(_0xdc393d,null))['catch'](handleError(_0xdc393d,null));};exports[_0x73cb('0xc5')]=function(_0x1f302f,_0x216811,_0x3da512){return db[_0x73cb('0x38')][_0x73cb('0x6a')]({'where':{'id':_0x1f302f[_0x73cb('0xb2')]['id']}})['then'](handleEntityNotFound(_0x216811,null))[_0x73cb('0x2a')](function(_0x2c549f){if(_0x2c549f){return _0x2c549f[_0x73cb('0xc5')](_0x1f302f[_0x73cb('0x3d')][_0x73cb('0xba')]);}})[_0x73cb('0x2a')](respondWithStatusCode(_0x216811,null))[_0x73cb('0x36')](handleError(_0x216811,null));};exports[_0x73cb('0xc6')]=function(_0x6d9c69,_0x240ab0){var _0x2b1f05=moment()[_0x73cb('0xc7')]()[_0x73cb('0x97')]();var _0x249d13=path[_0x73cb('0xc8')](config[_0x73cb('0xc9')],'server',_0x73cb('0xca'),_0x73cb('0xcb'));var _0x423deb=path[_0x73cb('0xc8')](config[_0x73cb('0xc9')],_0x73cb('0xcc'),'files','attachments');var _0x3013fd=path['join'](_0x249d13,_0x2b1f05);var _0x25e5e0=util[_0x73cb('0xbf')](_0x73cb('0xcd'),_0x6d9c69[_0x73cb('0xb2')]['id'],_0x2b1f05);var _0xea6cac=path[_0x73cb('0xc8')](_0x249d13,_0x25e5e0);var _0x3908c7=[];_0x3908c7[_0x73cb('0x34')]({'model':db[_0x73cb('0xce')],'as':_0x73cb('0xce'),'attributes':['id',_0x73cb('0x31')],'raw':!![]});_0x3908c7['push']({'model':db[_0x73cb('0xcf')],'as':'Contact','attributes':['id',_0x73cb('0xd0'),_0x73cb('0xd1')],'raw':!![]});if(_0x6d9c69[_0x73cb('0x3d')][_0x73cb('0xd2')]){_0x3908c7[_0x73cb('0x34')]({'model':db[_0x73cb('0xd3')],'as':'Attachment','raw':!![]});}var _0x25ef24=[{'model':db[_0x73cb('0xb9')],'as':_0x73cb('0xd4'),'attributes':['id',_0x73cb('0x71'),_0x73cb('0x77'),_0x73cb('0xd5'),'secret','read'],'include':_0x3908c7}];_0x25ef24[_0x73cb('0x34')]({'model':db[_0x73cb('0xd6')],'as':'Account','attributes':['id',_0x73cb('0x2d')]});_0x25ef24['push']({'model':db[_0x73cb('0xce')],'as':_0x73cb('0xd7'),'attributes':['id',_0x73cb('0x31')]});return db[_0x73cb('0x38')][_0x73cb('0x6a')]({'where':{'id':_0x6d9c69['params']['id']},'include':_0x25ef24})['then'](handleEntityNotFound(_0x240ab0,null))[_0x73cb('0x2a')](function(_0x3b670b){if(_0x3b670b){var _0xf5304=_0x3b670b[_0x73cb('0xd8')]({'plain':!![]});fs['mkdirSync'](_0x3013fd);var _0x413323={'channel':_0x73cb('0xd9'),'account':_0xf5304['Account'][_0x73cb('0x2d')],'agent':_0xf5304[_0x73cb('0xd7')]?_0xf5304[_0x73cb('0xd7')][_0x73cb('0x31')]:'N.A.','createdAt':moment(_0xf5304['createdAt'])[_0x73cb('0xbf')](_0x73cb('0xc0'))[_0x73cb('0x97')](),'closedAt':_0xf5304['closed']?moment(_0xf5304['closedAt'])['format'](_0x73cb('0xc0'))[_0x73cb('0x97')]():'','disposition':_0xf5304[_0x73cb('0xda')],'messages':_(_0xf5304['Messages'])[_0x73cb('0x82')]({'secret':![]})['map'](function(_0x30c0fd){if(_0x30c0fd[_0x73cb('0xd3')]){var _0x2f55bb=path['join'](_0x423deb,_0x30c0fd[_0x73cb('0xd3')]['basename']);if(fs[_0x73cb('0xdb')](_0x2f55bb)){fs[_0x73cb('0xdc')](_0x2f55bb)[_0x73cb('0xdd')](fs[_0x73cb('0xde')](path['join'](_0x3013fd,_0x30c0fd['Attachment'][_0x73cb('0xdf')])));}}return{'date':moment(_0x30c0fd[_0x73cb('0x77')])[_0x73cb('0xbf')]('YYYY-MM-DD\x20HH:mm:ss')[_0x73cb('0x97')](),'sender':_0x30c0fd[_0x73cb('0xd5')]==='out'?_0x30c0fd[_0x73cb('0xce')]?_0x30c0fd['User']['fullname']:_0x73cb('0xe0'):_0x30c0fd[_0x73cb('0x64')][_0x73cb('0xd0')]+(_0x30c0fd['Contact'][_0x73cb('0xd1')]?'\x20'+_0x30c0fd[_0x73cb('0x64')][_0x73cb('0xd1')]:''),'body':_0x30c0fd['Attachment']?_0x30c0fd[_0x73cb('0xd3')]['basename']:_0x30c0fd[_0x73cb('0x71')],'direction':_0x30c0fd[_0x73cb('0xd5')]==='out'?'A':'C','secret':_0x30c0fd[_0x73cb('0xe1')],'read':_0x30c0fd[_0x73cb('0x7d')],'attachment':_0x30c0fd['Attachment']};})[_0x73cb('0x60')]()};return ejs[_0x73cb('0xe2')](path['join'](config[_0x73cb('0xc9')],_0x73cb('0xcc'),_0x73cb('0xe3'),'downloadInteraction.ejs'),{'interaction':_0x413323})[_0x73cb('0x2a')](function(_0x35937a){var _0x28ad86=path[_0x73cb('0xc8')](_0x3013fd,_0x73cb('0xe4')+_0xf5304['id']+'-'+_0x2b1f05+_0x73cb('0xe5'));var _0x55305d={'path':_0x28ad86,'channel':_0x73cb('0xd9'),'interactionId':_0xf5304['id']};return pdf[_0x73cb('0xe6')](_0x35937a,_0x55305d);})[_0x73cb('0x2a')](function(){return new BPromise(function(_0x3d23ea,_0x1bc157){zipdir(_0x3013fd,{'saveTo':_0xea6cac},function(_0x59a6b6,_0x91a723){if(_0x59a6b6)return _0x1bc157(_0x59a6b6);return _0x3d23ea(_0x91a723);});})['then'](function(){return new BPromise(function(_0x59f548,_0x109c95){rimraf(_0x3013fd,function(_0x5ef944){if(_0x5ef944)_0x109c95(_0x5ef944);return _0x59f548();});});})['then'](function(){return _0x240ab0['download'](_0xea6cac,_0x25e5e0,function(_0x46e467){if(_0x46e467){console[_0x73cb('0xe7')]('err',_0x46e467);}else{fs[_0x73cb('0xe8')](_0xea6cac);}});});});}else{return _0x240ab0[_0x73cb('0x20')](0xc8);}})[_0x73cb('0x36')](handleError(_0x240ab0,null));};
\ No newline at end of file
+var _0x8b7c=['addTags','spread','Tag','emit','whatsappInteractionTags:save','removeTags','unix','join','root','server','files','tmp','transcript-%d-%s.zip','CmContact','lastName','attachments','Attachment','direction','secret','WhatsappAccount','Owner','get','mkdirSync','Whatsapp','Account','N.A.','closed','closedAt','disposition','Messages','basename','existsSync','createReadStream','createWriteStream','out','firstName','views','downloadInteraction.ejs','transcript-','createPdfFromHTML','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','localhost','socket.io-emitter','redis','register','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','error','stack','name','Users','map','fullname','TagIds','Tags','split','forEach','push','catch','index','WhatsappInteraction','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','select','field','color','from','tools_tags','u.fullname','ui.WhatsappInteractionId','user_has_whatsapp_interactions','left_join','u.id\x20=\x20ui.UserId','whatsapp_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','users','o.id\x20=\x20i.UserId','whatsapp_accounts','a.id\x20=\x20i.WhatsappAccountId','whatsapp_messages','me.WhatsappInteractionId\x20=\x20i.id','whatsapp_interaction_has_tags','it.WhatsappInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','parseSearch','sqlOperator','find','unreadMessages','value','having','`\x20=\x200','Contact','operator','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','text','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','$substring','UserId','some','isEmpty','i.WhatsappAccountId\x20IN\x20?','concat','createdAt','parse','$lte','where','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','filter','isNumeric','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','i.id','Sequelize','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','DESC','resolve','WhatsappAccountId','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getWhatsappAccounts','i.WhatsappAccountId\x20IS\x20NULL','sequelize','toString','keyBy','a.key','a.mandatoryDisposition','Account.mandatoryDisposition','contactName','i.*','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','Owner.fullname','o.internal','ui.WhatsappInteractionId\x20IN\x20?','rows','show','params','include','merge','options','create','body','destroy','describe','addMessage','WhatsappMessage','omit','ids','getMessages','findOne','WhatsappInteractionId','$gte','format','YYYY-MM-DD\x20HH:mm:ss','includeAll'];(function(_0x45198a,_0x45b398){var _0x407199=function(_0x4f4f66){while(--_0x4f4f66){_0x45198a['push'](_0x45198a['shift']());}};_0x407199(++_0x45b398);}(_0x8b7c,0x119));var _0xc8b7=function(_0x47b0d9,_0x41b561){_0x47b0d9=_0x47b0d9-0x0;var _0x599df3=_0x8b7c[_0x47b0d9];return _0x599df3;};'use strict';var emlformat=require(_0xc8b7('0x0'));var rimraf=require(_0xc8b7('0x1'));var zipdir=require(_0xc8b7('0x2'));var jsonpatch=require(_0xc8b7('0x3'));var rp=require(_0xc8b7('0x4'));var moment=require(_0xc8b7('0x5'));var BPromise=require(_0xc8b7('0x6'));var Mustache=require(_0xc8b7('0x7'));var util=require('util');var path=require(_0xc8b7('0x8'));var sox=require(_0xc8b7('0x9'));var csv=require(_0xc8b7('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc8b7('0xb'));var _=require(_0xc8b7('0xc'));var squel=require(_0xc8b7('0xd'));var crypto=require(_0xc8b7('0xe'));var jsforce=require(_0xc8b7('0xf'));var deskjs=require(_0xc8b7('0x10'));var toCsv=require('to-csv');var querystring=require(_0xc8b7('0x11'));var Papa=require('papaparse');var Redis=require(_0xc8b7('0x12'));var authService=require(_0xc8b7('0x13'));var qs=require(_0xc8b7('0x14'));var as=require(_0xc8b7('0x15'));var pdf=require(_0xc8b7('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xc8b7('0x17'));var config=require(_0xc8b7('0x18'));var licenseUtil=require(_0xc8b7('0x19'));var db=require(_0xc8b7('0x1a'))['db'];config['redis']=_['defaults'](config['redis'],{'host':_0xc8b7('0x1b'),'port':0x18eb});var socket=require(_0xc8b7('0x1c'))(new Redis(config[_0xc8b7('0x1d')]));require('./whatsappInteraction.socket')[_0xc8b7('0x1e')](socket);function respondWithStatusCode(_0x1f121e,_0x337fbc){_0x337fbc=_0x337fbc||0xcc;return function(_0x1b7dc0){if(_0x1b7dc0){return _0x1f121e[_0xc8b7('0x1f')](_0x337fbc);}return _0x1f121e['status'](_0x337fbc)[_0xc8b7('0x20')]();};}function respondWithResult(_0x26d70a,_0x2ee1b5){_0x2ee1b5=_0x2ee1b5||0xc8;return function(_0x3323de){if(_0x3323de){return _0x26d70a[_0xc8b7('0x21')](_0x2ee1b5)[_0xc8b7('0x22')](_0x3323de);}};}function respondWithFilteredResult(_0x1b2b93,_0x485415){return function(_0x5ae36a){if(_0x5ae36a){var _0x1cf47c=typeof _0x485415[_0xc8b7('0x23')]===_0xc8b7('0x24')&&typeof _0x485415['limit']==='undefined';var _0x12f7e5=_0x5ae36a['count'];var _0xd0f941=_0x1cf47c?0x0:_0x485415['offset'];var _0x462cce=_0x1cf47c?_0x5ae36a[_0xc8b7('0x25')]:_0x485415['offset']+_0x485415[_0xc8b7('0x26')];var _0x4f0829;if(_0x462cce>=_0x12f7e5){_0x462cce=_0x12f7e5;_0x4f0829=0xc8;}else{_0x4f0829=0xce;}_0x1b2b93[_0xc8b7('0x21')](_0x4f0829);return _0x1b2b93[_0xc8b7('0x27')](_0xc8b7('0x28'),_0xd0f941+'-'+_0x462cce+'/'+_0x12f7e5)['json'](_0x5ae36a);}return null;};}function patchUpdates(_0x11f10d){return function(_0x2cdce8){try{jsonpatch[_0xc8b7('0x29')](_0x2cdce8,_0x11f10d,!![]);}catch(_0x5b28ad){return BPromise[_0xc8b7('0x2a')](_0x5b28ad);}return _0x2cdce8[_0xc8b7('0x2b')]();};}function saveUpdates(_0x908acb,_0x210fec){return function(_0x2335cc){if(_0x2335cc){return _0x2335cc[_0xc8b7('0x2c')](_0x908acb)[_0xc8b7('0x2d')](function(_0x1c119f){return _0x1c119f;});}return null;};}function removeEntity(_0x11f863,_0x5d5db8){return function(_0x1439ee){if(_0x1439ee){return _0x1439ee['destroy']()[_0xc8b7('0x2d')](function(){_0x11f863[_0xc8b7('0x21')](0xcc)[_0xc8b7('0x20')]();});}};}function handleEntityNotFound(_0x3f92bd,_0x2046f5){return function(_0x311047){if(!_0x311047){_0x3f92bd['sendStatus'](0x194);}return _0x311047;};}function handleError(_0x48682b,_0x16cc83){_0x16cc83=_0x16cc83||0x1f4;return function(_0x13ac30){logger[_0xc8b7('0x2e')](_0x13ac30[_0xc8b7('0x2f')]);if(_0x13ac30[_0xc8b7('0x30')]){delete _0x13ac30[_0xc8b7('0x30')];}_0x48682b[_0xc8b7('0x21')](_0x16cc83)['send'](_0x13ac30);};}function getInteractionUsers(_0x3a9658,_0x3d6f00){return new BPromise(function(_0x13000d,_0x118574){try{if(_0x3d6f00[_0x3a9658['id']]){_0x3a9658[_0xc8b7('0x31')]=_[_0xc8b7('0x32')](_0x3d6f00[_0x3a9658['id']],function(_0x36f421){return{'id':_0x36f421['id'],'fullname':_0x36f421[_0xc8b7('0x33')]};});}}catch(_0x4fe3e4){_0x118574(_0x4fe3e4);}_0x13000d(_0x3a9658);});}function getInteractionTags(_0x247388,_0x3c5db5){return new BPromise(function(_0x982b0b,_0x2971fc){try{if(_0x247388[_0xc8b7('0x34')]){_0x247388[_0xc8b7('0x35')]=[];_0x247388[_0xc8b7('0x34')][_0xc8b7('0x36')](',')[_0xc8b7('0x37')](function(_0x37b57f){_0x247388[_0xc8b7('0x35')][_0xc8b7('0x38')](_0x3c5db5[_0x37b57f]);});}delete _0x247388[_0xc8b7('0x34')];}catch(_0x4a327d){_0x2971fc(_0x4a327d);}_0x982b0b(_0x247388);});}function updateWhatsappInteraction(_0x4b0c30,_0x174c3a,_0x500da8){return new BPromise(function(_0x68eb40,_0x13b56e){return getInteractionUsers(_0x4b0c30,_0x500da8)[_0xc8b7('0x2d')](function(_0x129e78){return getInteractionTags(_0x129e78,_0x174c3a);})[_0xc8b7('0x2d')](function(_0x59b131){_0x68eb40(_0x59b131);})[_0xc8b7('0x39')](function(_0x5c45ca){_0x13b56e(_0x5c45ca);});});}exports[_0xc8b7('0x3a')]=function(_0x45691c,_0x8e18e3){var _0x28b134={},_0x3706db={},_0x11cb85={'count':0x0,'rows':[]};var _0x18e3d8=_[_0xc8b7('0x32')](db[_0xc8b7('0x3b')][_0xc8b7('0x3c')],function(_0xf3cb9f){return{'name':_0xf3cb9f[_0xc8b7('0x3d')],'type':_0xf3cb9f[_0xc8b7('0x3e')][_0xc8b7('0x3f')]};});_0x3706db[_0xc8b7('0x40')]=_[_0xc8b7('0x32')](_0x18e3d8,'name');_0x3706db[_0xc8b7('0x41')]=_[_0xc8b7('0x42')](_0x45691c[_0xc8b7('0x41')]);_0x3706db[_0xc8b7('0x43')]=_[_0xc8b7('0x44')](_0x3706db[_0xc8b7('0x40')],_0x3706db['query']);_0x28b134[_0xc8b7('0x45')]=_[_0xc8b7('0x44')](_0x3706db[_0xc8b7('0x40')],qs[_0xc8b7('0x46')](_0x45691c['query']['fields']));_0x28b134[_0xc8b7('0x45')]=_0x28b134[_0xc8b7('0x45')][_0xc8b7('0x47')]?_0x28b134['attributes']:_0x3706db['model'];if(!_0x45691c[_0xc8b7('0x41')][_0xc8b7('0x48')](_0xc8b7('0x49'))){_0x28b134[_0xc8b7('0x26')]=qs[_0xc8b7('0x26')](_0x45691c[_0xc8b7('0x41')][_0xc8b7('0x26')]);_0x28b134[_0xc8b7('0x23')]=qs[_0xc8b7('0x23')](_0x45691c[_0xc8b7('0x41')][_0xc8b7('0x23')]);}_0x28b134['order']=qs[_0xc8b7('0x4a')](_0x45691c[_0xc8b7('0x41')]['sort']);_0x28b134['where']=qs[_0xc8b7('0x43')](_[_0xc8b7('0x4b')](_0x45691c['query'],_0x3706db[_0xc8b7('0x43')]),_0x18e3d8);var _0x10a4ff=[];var _0x768ade=squel[_0xc8b7('0x4c')]()[_0xc8b7('0x4d')]('id')[_0xc8b7('0x4d')](_0xc8b7('0x30'))[_0xc8b7('0x4d')](_0xc8b7('0x4e'))[_0xc8b7('0x4f')](_0xc8b7('0x50'));var _0x58b2bc=squel['select']()[_0xc8b7('0x4d')]('u.id')[_0xc8b7('0x4d')](_0xc8b7('0x51'))[_0xc8b7('0x4d')](_0xc8b7('0x52'))[_0xc8b7('0x4f')](_0xc8b7('0x53'),'ui')[_0xc8b7('0x54')]('users','u',_0xc8b7('0x55'));var _0x228e8d=squel[_0xc8b7('0x4c')]()[_0xc8b7('0x4f')](_0xc8b7('0x56'),'i')[_0xc8b7('0x54')](_0xc8b7('0x57'),'c',_0xc8b7('0x58'))[_0xc8b7('0x54')](_0xc8b7('0x59'),'o',_0xc8b7('0x5a'))[_0xc8b7('0x54')](_0xc8b7('0x5b'),'a',_0xc8b7('0x5c'))['left_join'](_0xc8b7('0x5d'),'me',_0xc8b7('0x5e'))[_0xc8b7('0x54')](_0xc8b7('0x5f'),'it',_0xc8b7('0x60'))['left_join'](_0xc8b7('0x50'),'t',_0xc8b7('0x61'));var _0x49e353=squel[_0xc8b7('0x62')]();var _0x32b5e0=[];var _0x1ec314=squel[_0xc8b7('0x62')]();var _0xc72a6;if(_0x45691c[_0xc8b7('0x41')]['search']){_0xc72a6=as[_0xc8b7('0x63')](_0x45691c[_0xc8b7('0x41')]['search']);var _0x163046=_0xc72a6[_0xc8b7('0x64')];for(var _0x538958=0x0;_0x538958<_0xc72a6['conditions'][_0xc8b7('0x47')];_0x538958++){var _0x55b4ca=_0xc72a6['conditions'][_0x538958];var _0x3f73e7='i';var _0x46e5f0=_[_0xc8b7('0x65')](_0x18e3d8,[_0xc8b7('0x30'),_0x55b4ca['field']]);if(!_0x46e5f0){switch(_0x55b4ca[_0xc8b7('0x4d')]){case _0xc8b7('0x66'):if(_0x55b4ca[_0xc8b7('0x67')]==0x1){_0x228e8d[_0xc8b7('0x68')]('`'+_0x55b4ca['field']+_0xc8b7('0x69'));}else{_0x228e8d[_0xc8b7('0x68')]('`'+_0x55b4ca[_0xc8b7('0x4d')]+'`\x20>\x200');}break;case _0xc8b7('0x6a'):if(_0x55b4ca[_0xc8b7('0x6b')]==='$substring'){if(_0x55b4ca[_0xc8b7('0x67')][_0xc8b7('0x36')]('\x20')['length']>0x1){_0x49e353[_0x163046](_0xc8b7('0x6c'),qs[_0xc8b7('0x6d')](_0x55b4ca[_0xc8b7('0x67')]),null);}else{var _0x16ef02='%'+_0x55b4ca['value']+'%';_0x49e353[_0x163046]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x16ef02,_0x16ef02,_0x16ef02);}}else{_0x46e5f0=_[_0xc8b7('0x65')](_0x18e3d8,[_0xc8b7('0x30'),_0xc8b7('0x6e')]);_0x55b4ca[_0xc8b7('0x4d')]=_0xc8b7('0x6e');_0x9f5b46=as[_0xc8b7('0x6f')](_0x3f73e7,_0x46e5f0[_0xc8b7('0x3e')],_0x55b4ca);_0x49e353[_0x163046](_0x9f5b46[_0xc8b7('0x70')],_0x9f5b46[_0xc8b7('0x67')][_0xc8b7('0x71')],_0x9f5b46[_0xc8b7('0x67')][_0xc8b7('0x20')]);}break;case'Tag':var _0x5e1a2d=_0x55b4ca[_0xc8b7('0x67')][_0xc8b7('0x36')](',')[_0xc8b7('0x32')](function(_0x262051){return Number(_0x262051);});_0x5e1a2d['forEach'](function(_0x5422d6){_0x1ec314['or'](_0xc8b7('0x72'),'%,'+_0x5422d6+',%');});_0x32b5e0=_[_0xc8b7('0x73')](_0x32b5e0,_0x5e1a2d);break;case _0xc8b7('0x74'):if(_0x55b4ca[_0xc8b7('0x6b')]===_0xc8b7('0x75')){_0x49e353[_0x163046]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x55b4ca[_0xc8b7('0x67')]+'%',null);}else{_0x46e5f0=_[_0xc8b7('0x65')](_0x18e3d8,[_0xc8b7('0x30'),_0xc8b7('0x76')]);_0x55b4ca[_0xc8b7('0x4d')]='UserId';_0x9f5b46=as['buildExpression'](_0x3f73e7,_0x46e5f0['type'],_0x55b4ca);_0x49e353[_0x163046](_0x9f5b46['text'],_0x9f5b46[_0xc8b7('0x67')]['start'],_0x9f5b46['value'][_0xc8b7('0x20')]);}break;case'body':_0x9f5b46=as['buildExpression']('me',null,_0x55b4ca);_0x49e353[_0x163046](_0x9f5b46[_0xc8b7('0x70')],_0x9f5b46[_0xc8b7('0x67')][_0xc8b7('0x71')],_0x9f5b46[_0xc8b7('0x67')][_0xc8b7('0x20')]);break;}}else{var _0x9f5b46=as['buildExpression'](_0x3f73e7,_0x46e5f0[_0xc8b7('0x3e')],_0x55b4ca);_0x49e353[_0x163046](_0x9f5b46['text'],_0x9f5b46['value'][_0xc8b7('0x71')],_0x9f5b46[_0xc8b7('0x67')]['end']);}}}else{var _0x5f24e5=_(_0x45691c[_0xc8b7('0x41')])['keys']()[_0xc8b7('0x32')](function(_0x348f50){return _[_0xc8b7('0x77')](_0x18e3d8,[_0xc8b7('0x30'),_0x348f50])?_0x348f50:undefined;})['compact']()['value']();if(!_[_0xc8b7('0x78')](_0x5f24e5)){_0x5f24e5['forEach'](function(_0x3cd9a4){if(_0x3cd9a4==='WhatsappAccountId'){_0x228e8d['where'](_0xc8b7('0x79'),[][_0xc8b7('0x7a')](_0x45691c[_0xc8b7('0x41')][_0x3cd9a4]));}else if(_0x3cd9a4===_0xc8b7('0x7b')){var _0x35b512=JSON[_0xc8b7('0x7c')](_0x45691c[_0xc8b7('0x41')][_0x3cd9a4])['$gte'];var _0x2b5490=JSON[_0xc8b7('0x7c')](_0x45691c[_0xc8b7('0x41')][_0x3cd9a4])[_0xc8b7('0x7d')];_0x228e8d[_0xc8b7('0x7e')](_0xc8b7('0x7f'),_0x35b512,_0x2b5490);}else{if(_0x45691c['query'][_0x3cd9a4]===_0xc8b7('0x80')){_0x228e8d[_0xc8b7('0x7e')]('i.'+_0x3cd9a4+_0xc8b7('0x81'));}else{_0x228e8d['where']('i.'+_0x3cd9a4+_0xc8b7('0x82'),_0x45691c[_0xc8b7('0x41')][_0x3cd9a4]);}}});}if(_0x45691c['query'][_0xc8b7('0x83')]){if(_0x45691c[_0xc8b7('0x41')][_0xc8b7('0x83')]==0x1){_0x228e8d[_0xc8b7('0x68')]('`unreadMessages`\x20=\x200');}else{_0x228e8d[_0xc8b7('0x68')](_0xc8b7('0x84'));}}if(_0x45691c[_0xc8b7('0x41')][_0xc8b7('0x85')]){_0x32b5e0=_[_0xc8b7('0x86')](_0x45691c[_0xc8b7('0x41')][_0xc8b7('0x85')])?_0x45691c[_0xc8b7('0x41')][_0xc8b7('0x85')]:new Array(_0x45691c[_0xc8b7('0x41')][_0xc8b7('0x85')]);_0x32b5e0[_0xc8b7('0x37')](function(_0x80643d){_0x1ec314['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x80643d+',%');});}if(_0x45691c[_0xc8b7('0x41')][_0xc8b7('0x87')]){var _0x143366=_0x45691c[_0xc8b7('0x41')][_0xc8b7('0x87')]['replace']('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0xc8b7('0x88')](_0x143366)){_0x49e353['or'](_0xc8b7('0x89'),_0x143366+'%')['or'](_0xc8b7('0x8a'),_0x143366+'%');}else{_0x49e353['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xc8b7('0x6d')](_0x143366))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x143366+'%');}}}_0x228e8d[_0xc8b7('0x7e')](_0x49e353);_0x228e8d['group'](_0xc8b7('0x8b'));var _0x1d9fc6={'type':db[_0xc8b7('0x8c')]['QueryTypes'][_0xc8b7('0x8d')],'raw':!![]};var _0x98f890=_0x228e8d[_0xc8b7('0x8e')]();_0x98f890[_0xc8b7('0x4d')](_0xc8b7('0x8b'));_0x98f890[_0xc8b7('0x4d')](_0xc8b7('0x8f'),'unreadMessages');if(_0x28b134[_0xc8b7('0x90')]){_0x28b134[_0xc8b7('0x90')][_0xc8b7('0x37')](function(_0x5b2605){var _0x4acac3=_0x5b2605[0x0]==='contactName'?_0x5b2605[0x0]:'i.'+_0x5b2605[0x0];_0x228e8d[_0xc8b7('0x90')](_0x4acac3,_0x5b2605[0x1]===_0xc8b7('0x91')?![]:!![]);});}if(!_[_0xc8b7('0x78')](_0x32b5e0)){_0x228e8d['having'](_0x1ec314);_0x98f890[_0xc8b7('0x7e')]('t.id\x20IN\x20?',_0x32b5e0);}BPromise[_0xc8b7('0x92')]()[_0xc8b7('0x2d')](function(){if(!_0xc72a6){if(_0x45691c[_0xc8b7('0x41')][_0xc8b7('0x93')])return;_0x98f890[_0xc8b7('0x7e')](_0xc8b7('0x94'));_0x228e8d[_0xc8b7('0x7e')]('i.WhatsappAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x45691c[_0xc8b7('0x95')][_0xc8b7('0x96')]!==_0xc8b7('0x97'))return;return _0x45691c['user'][_0xc8b7('0x98')]({'attributes':['id'],'raw':!![]})[_0xc8b7('0x2d')](function(_0x3964ef){if(_['isEmpty'](_0x3964ef)){_0x98f890[_0xc8b7('0x7e')](_0xc8b7('0x99'));_0x228e8d['where'](_0xc8b7('0x99'));}else{_0x98f890['where'](_0xc8b7('0x79'),_['map'](_0x3964ef,'id'));_0x228e8d[_0xc8b7('0x7e')]('i.WhatsappAccountId\x20IN\x20?',_['map'](_0x3964ef,'id'));}});})[_0xc8b7('0x2d')](function(){if(_0x45691c[_0xc8b7('0x95')][_0xc8b7('0x96')]===_0xc8b7('0x97')&&!_0xc72a6&&!_0x45691c['query'][_0xc8b7('0x93')])return[];return db[_0xc8b7('0x9a')][_0xc8b7('0x41')](_0x98f890[_0xc8b7('0x9b')](),_0x1d9fc6);})[_0xc8b7('0x2d')](function(_0x4c9eaf){_0x11cb85[_0xc8b7('0x25')]=_0x4c9eaf[_0xc8b7('0x47')];if(_0x11cb85['count']===0x0)return[];return db[_0xc8b7('0x9a')]['query'](_0x768ade[_0xc8b7('0x9b')](),_0x1d9fc6)[_0xc8b7('0x2d')](function(_0x5f4f10){_0x10a4ff=_[_0xc8b7('0x9c')](_0x5f4f10,'id');_0x1d9fc6=_['merge'](_0x1d9fc6,{'model':db['WhatsappInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x45691c[_0xc8b7('0x41')][_0xc8b7('0x46')]){_0x28b134[_0xc8b7('0x45')][_0xc8b7('0x37')](function(_0x4a5627){_0x228e8d[_0xc8b7('0x4d')]('i.'+_0x4a5627);});}else{_0x228e8d[_0xc8b7('0x4d')](_0xc8b7('0x8f'),'unreadMessages');_0x228e8d[_0xc8b7('0x4d')](_0xc8b7('0x9d'),'Account.key');_0x228e8d[_0xc8b7('0x4d')](_0xc8b7('0x9e'),_0xc8b7('0x9f'));_0x228e8d['field']('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',_0xc8b7('0xa0'));_0x228e8d[_0xc8b7('0x4d')](_0xc8b7('0xa1'));_0x228e8d[_0xc8b7('0x4d')]('c.firstName',_0xc8b7('0xa2'));_0x228e8d['field'](_0xc8b7('0xa3'),_0xc8b7('0xa4'));_0x228e8d['field'](_0xc8b7('0xa5'),_0xc8b7('0xa6'));_0x228e8d[_0xc8b7('0x4d')](_0xc8b7('0xa7'),_0xc8b7('0xa8'));_0x228e8d[_0xc8b7('0x4d')](_0xc8b7('0xa9'),_0xc8b7('0xaa'));_0x228e8d[_0xc8b7('0x4d')](_0xc8b7('0xab'),_0xc8b7('0xac'));_0x228e8d[_0xc8b7('0x4d')]('o.fullname',_0xc8b7('0xad'));_0x228e8d[_0xc8b7('0x4d')](_0xc8b7('0xae'),'Owner.internal');_0x228e8d[_0xc8b7('0x4d')]('GROUP_CONCAT(DISTINCT\x20t.id)','TagIds');}if(_0x28b134[_0xc8b7('0x26')])_0x228e8d[_0xc8b7('0x26')](_0x28b134['limit']);if(_0x28b134[_0xc8b7('0x23')])_0x228e8d['offset'](_0x28b134[_0xc8b7('0x23')]);return db['sequelize'][_0xc8b7('0x41')](_0x228e8d[_0xc8b7('0x9b')](),_0x1d9fc6);})[_0xc8b7('0x2d')](function(_0x44d89f){if(_0x44d89f['length']>0x0)_0x58b2bc[_0xc8b7('0x7e')](_0xc8b7('0xaf'),_[_0xc8b7('0x32')](_0x44d89f,'id'));return db[_0xc8b7('0x9a')][_0xc8b7('0x41')](_0x58b2bc[_0xc8b7('0x9b')](),_0x1d9fc6)['then'](function(_0x3cf9d8){var _0x2e338b=_['groupBy'](_0x3cf9d8,'WhatsappInteractionId');var _0x194ddf=[];_0x44d89f[_0xc8b7('0x37')](function(_0x3ed827){_0x194ddf[_0xc8b7('0x38')](updateWhatsappInteraction(_0x3ed827,_0x10a4ff,_0x2e338b));});return BPromise['all'](_0x194ddf);});});})['then'](function(_0x38a9f8){_0x11cb85[_0xc8b7('0xb0')]=_0x38a9f8;return _0x11cb85;})['then'](respondWithFilteredResult(_0x8e18e3,_0x28b134))[_0xc8b7('0x39')](handleError(_0x8e18e3,null));};exports[_0xc8b7('0xb1')]=function(_0x4b1f05,_0x4398a6){var _0x53e8ab={'raw':![],'where':{'id':_0x4b1f05[_0xc8b7('0xb2')]['id']}},_0xcda978={};_0xcda978[_0xc8b7('0x40')]=_[_0xc8b7('0x42')](db[_0xc8b7('0x3b')][_0xc8b7('0x3c')]);_0xcda978[_0xc8b7('0x41')]=_[_0xc8b7('0x42')](_0x4b1f05[_0xc8b7('0x41')]);_0xcda978['filters']=_[_0xc8b7('0x44')](_0xcda978[_0xc8b7('0x40')],_0xcda978[_0xc8b7('0x41')]);_0x53e8ab['attributes']=_[_0xc8b7('0x44')](_0xcda978['model'],qs['fields'](_0x4b1f05[_0xc8b7('0x41')]['fields']));_0x53e8ab[_0xc8b7('0x45')]=_0x53e8ab[_0xc8b7('0x45')][_0xc8b7('0x47')]?_0x53e8ab[_0xc8b7('0x45')]:_0xcda978[_0xc8b7('0x40')];if(_0x4b1f05[_0xc8b7('0x41')]['includeAll']){_0x53e8ab[_0xc8b7('0xb3')]=[{'all':!![]}];}_0x53e8ab=_[_0xc8b7('0xb4')]({},_0x53e8ab,_0x4b1f05[_0xc8b7('0xb5')]);return db[_0xc8b7('0x3b')][_0xc8b7('0x65')](_0x53e8ab)['then'](handleEntityNotFound(_0x4398a6,null))[_0xc8b7('0x2d')](respondWithResult(_0x4398a6,null))[_0xc8b7('0x39')](handleError(_0x4398a6,null));};exports[_0xc8b7('0xb6')]=function(_0x1b8cb0,_0x49fc0a){return db[_0xc8b7('0x3b')][_0xc8b7('0xb6')](_0x1b8cb0[_0xc8b7('0xb7')],{})[_0xc8b7('0x2d')](respondWithResult(_0x49fc0a,0xc9))['catch'](handleError(_0x49fc0a,null));};exports['update']=function(_0x42e385,_0x48b3ea){if(_0x42e385[_0xc8b7('0xb7')]['id']){delete _0x42e385[_0xc8b7('0xb7')]['id'];}return db['WhatsappInteraction'][_0xc8b7('0x65')]({'where':{'id':_0x42e385[_0xc8b7('0xb2')]['id']}})['then'](handleEntityNotFound(_0x48b3ea,null))['then'](saveUpdates(_0x42e385[_0xc8b7('0xb7')],null))['then'](respondWithResult(_0x48b3ea,null))[_0xc8b7('0x39')](handleError(_0x48b3ea,null));};exports[_0xc8b7('0xb8')]=function(_0x4954a4,_0x4e2d7b){return db[_0xc8b7('0x3b')][_0xc8b7('0x65')]({'where':{'id':_0x4954a4['params']['id']}})[_0xc8b7('0x2d')](handleEntityNotFound(_0x4e2d7b,null))[_0xc8b7('0x2d')](removeEntity(_0x4e2d7b,null))[_0xc8b7('0x39')](handleError(_0x4e2d7b,null));};exports['describe']=function(_0x168e57,_0x879a90){return db[_0xc8b7('0x3b')][_0xc8b7('0xb9')]()[_0xc8b7('0x2d')](respondWithResult(_0x879a90,null))[_0xc8b7('0x39')](handleError(_0x879a90,null));};exports[_0xc8b7('0xba')]=function(_0x53a3a1,_0x4528d7,_0x58b462){return db[_0xc8b7('0xbb')][_0xc8b7('0x65')]({'where':{'id':_0x53a3a1[_0xc8b7('0xb2')]['id']}})['then'](handleEntityNotFound(_0x4528d7,null))[_0xc8b7('0x2d')](function(_0x1d1734){if(_0x1d1734){return _0x1d1734[_0xc8b7('0xba')](_0x53a3a1[_0xc8b7('0xb7')]['ids'],_[_0xc8b7('0xbc')](_0x53a3a1[_0xc8b7('0xb7')],[_0xc8b7('0xbd'),'id'])||{});}})[_0xc8b7('0x2d')](respondWithResult(_0x4528d7,null))[_0xc8b7('0x39')](handleError(_0x4528d7,null));};exports[_0xc8b7('0xbe')]=function(_0x4af048,_0x3c6359,_0x5f3fb6){var _0x3a6491={'raw':![],'where':{}};var _0x563fa0={};var _0x177b5d={'count':0x0,'rows':[]};return db[_0xc8b7('0x3b')][_0xc8b7('0xbf')]({'where':{'id':_0x4af048['params']['id']}})[_0xc8b7('0x2d')](handleEntityNotFound(_0x3c6359,null))['then'](function(_0xe21759){if(_0xe21759){_0x563fa0[_0xc8b7('0x40')]=_['keys'](db[_0xc8b7('0xbb')][_0xc8b7('0x3c')]);_0x563fa0[_0xc8b7('0x41')]=_[_0xc8b7('0x42')](_0x4af048[_0xc8b7('0x41')]);_0x563fa0['filters']=_[_0xc8b7('0x44')](_0x563fa0['model'],_0x563fa0[_0xc8b7('0x41')]);_0x3a6491[_0xc8b7('0x45')]=_[_0xc8b7('0x44')](_0x563fa0['model'],qs[_0xc8b7('0x46')](_0x4af048['query'][_0xc8b7('0x46')]));_0x3a6491[_0xc8b7('0x45')]=_0x3a6491['attributes'][_0xc8b7('0x47')]?_0x3a6491[_0xc8b7('0x45')]:_0x563fa0[_0xc8b7('0x40')];if(!_0x4af048[_0xc8b7('0x41')][_0xc8b7('0x48')](_0xc8b7('0x49'))){_0x3a6491[_0xc8b7('0x26')]=qs['limit'](_0x4af048['query'][_0xc8b7('0x26')]);_0x3a6491[_0xc8b7('0x23')]=qs[_0xc8b7('0x23')](_0x4af048[_0xc8b7('0x41')][_0xc8b7('0x23')]);}_0x3a6491[_0xc8b7('0x90')]=qs[_0xc8b7('0x4a')](_0x4af048[_0xc8b7('0x41')][_0xc8b7('0x4a')]);_0x3a6491[_0xc8b7('0x7e')]=qs[_0xc8b7('0x43')](_[_0xc8b7('0x4b')](_0x4af048['query'],_0x563fa0[_0xc8b7('0x43')]));_0x3a6491[_0xc8b7('0x7e')][_0xc8b7('0xc0')]=_0xe21759['id'];if(_0x4af048[_0xc8b7('0x41')][_0xc8b7('0x87')]){_0x3a6491['where']=_[_0xc8b7('0xb4')](_0x3a6491[_0xc8b7('0x7e')],{'$or':_[_0xc8b7('0x32')](_0x3a6491['attributes'],function(_0x13a606){var _0x960834={};_0x960834[_0x13a606]={'$like':'%'+_0x4af048['query'][_0xc8b7('0x87')]+'%'};return _0x960834;})});}if(_0x4af048[_0xc8b7('0x41')][_0xc8b7('0xc1')]){var _0x3ce2dd=_0x4af048[_0xc8b7('0x41')][_0xc8b7('0xc1')][_0xc8b7('0x36')](',');var _0xd7ad04={};_0xd7ad04[_0x3ce2dd[0x0]]={'$gte':moment(_0x3ce2dd[0x1])[_0xc8b7('0xc2')](_0xc8b7('0xc3'))};_0x3a6491[_0xc8b7('0x7e')]=_[_0xc8b7('0xb4')](_0x3a6491[_0xc8b7('0x7e')],_0xd7ad04);}_0x3a6491=_[_0xc8b7('0xb4')]({},_0x3a6491,_0x4af048['options']);return db[_0xc8b7('0xbb')]['count']({'where':_0x3a6491['where']})[_0xc8b7('0x2d')](function(_0xdfeb52){_0x177b5d['count']=_0xdfeb52;if(_0x4af048[_0xc8b7('0x41')][_0xc8b7('0xc4')]){_0x3a6491['include']=[{'all':!![]}];}return db[_0xc8b7('0xbb')]['findAll'](_0x3a6491);})[_0xc8b7('0x2d')](function(_0x1f3000){_0x177b5d['rows']=_0x1f3000;return _0x177b5d;});}})[_0xc8b7('0x2d')](respondWithFilteredResult(_0x3c6359,_0x3a6491))[_0xc8b7('0x39')](handleError(_0x3c6359,null));};exports[_0xc8b7('0xc5')]=function(_0x1df793,_0x2cd373,_0x5e82cc){return db[_0xc8b7('0x3b')][_0xc8b7('0x65')]({'where':{'id':_0x1df793[_0xc8b7('0xb2')]['id']}})[_0xc8b7('0x2d')](handleEntityNotFound(_0x2cd373,null))[_0xc8b7('0x2d')](function(_0x3bdd9c){if(_0x3bdd9c){return _0x3bdd9c['setTags'](_0x1df793[_0xc8b7('0xb7')]['ids'],_[_0xc8b7('0xbc')](_0x1df793[_0xc8b7('0xb7')],[_0xc8b7('0xbd'),'id'])||{})[_0xc8b7('0xc6')](function(){return db[_0xc8b7('0xc7')]['findAll']({'attributes':['id','name',_0xc8b7('0x4e')],'where':{'id':_0x1df793['body']['ids']}});})['then'](function(_0x53387d){socket[_0xc8b7('0xc8')](_0xc8b7('0xc9'),{'id':Number(_0x1df793['params']['id']),'tags':_0x53387d||[]});return{'id':Number(_0x1df793[_0xc8b7('0xb2')]['id']),'tags':_0x53387d||[]};});}})[_0xc8b7('0x2d')](respondWithResult(_0x2cd373,null))[_0xc8b7('0x39')](handleError(_0x2cd373,null));};exports[_0xc8b7('0xca')]=function(_0x36ca2c,_0x483cb5,_0x42d8f6){return db[_0xc8b7('0x3b')]['find']({'where':{'id':_0x36ca2c[_0xc8b7('0xb2')]['id']}})['then'](handleEntityNotFound(_0x483cb5,null))[_0xc8b7('0x2d')](function(_0x31087c){if(_0x31087c){return _0x31087c[_0xc8b7('0xca')](_0x36ca2c[_0xc8b7('0x41')][_0xc8b7('0xbd')]);}})['then'](respondWithStatusCode(_0x483cb5,null))[_0xc8b7('0x39')](handleError(_0x483cb5,null));};exports['download']=function(_0x46d20e,_0x40bc1e){var _0x4cf5c8=moment()[_0xc8b7('0xcb')]()[_0xc8b7('0x9b')]();var _0xee21d0=path[_0xc8b7('0xcc')](config[_0xc8b7('0xcd')],_0xc8b7('0xce'),_0xc8b7('0xcf'),_0xc8b7('0xd0'));var _0x3135b1=path[_0xc8b7('0xcc')](config['root'],_0xc8b7('0xce'),_0xc8b7('0xcf'),'attachments');var _0x202216=path[_0xc8b7('0xcc')](_0xee21d0,_0x4cf5c8);var _0x10dffc=util[_0xc8b7('0xc2')](_0xc8b7('0xd1'),_0x46d20e[_0xc8b7('0xb2')]['id'],_0x4cf5c8);var _0x36366b=path['join'](_0xee21d0,_0x10dffc);var _0x3e81d8=[];_0x3e81d8[_0xc8b7('0x38')]({'model':db[_0xc8b7('0x74')],'as':'User','attributes':['id','fullname'],'raw':!![]});_0x3e81d8[_0xc8b7('0x38')]({'model':db[_0xc8b7('0xd2')],'as':_0xc8b7('0x6a'),'attributes':['id','firstName',_0xc8b7('0xd3')],'raw':!![]});if(_0x46d20e[_0xc8b7('0x41')][_0xc8b7('0xd4')]){_0x3e81d8[_0xc8b7('0x38')]({'model':db[_0xc8b7('0xd5')],'as':'Attachment','raw':!![]});}var _0x2d2fd0=[{'model':db['WhatsappMessage'],'as':'Messages','attributes':['id','body',_0xc8b7('0x7b'),_0xc8b7('0xd6'),_0xc8b7('0xd7'),_0xc8b7('0x83')],'include':_0x3e81d8}];_0x2d2fd0[_0xc8b7('0x38')]({'model':db[_0xc8b7('0xd8')],'as':'Account','attributes':['id',_0xc8b7('0x30')]});_0x2d2fd0[_0xc8b7('0x38')]({'model':db['User'],'as':_0xc8b7('0xd9'),'attributes':['id',_0xc8b7('0x33')]});return db[_0xc8b7('0x3b')][_0xc8b7('0x65')]({'where':{'id':_0x46d20e[_0xc8b7('0xb2')]['id']},'include':_0x2d2fd0})[_0xc8b7('0x2d')](handleEntityNotFound(_0x40bc1e,null))[_0xc8b7('0x2d')](function(_0x366fec){if(_0x366fec){var _0x2cd7c5=_0x366fec[_0xc8b7('0xda')]({'plain':!![]});fs[_0xc8b7('0xdb')](_0x202216);var _0x2a6d66={'channel':_0xc8b7('0xdc'),'account':_0x2cd7c5[_0xc8b7('0xdd')][_0xc8b7('0x30')],'agent':_0x2cd7c5['Owner']?_0x2cd7c5['Owner'][_0xc8b7('0x33')]:_0xc8b7('0xde'),'createdAt':moment(_0x2cd7c5['createdAt'])[_0xc8b7('0xc2')](_0xc8b7('0xc3'))[_0xc8b7('0x9b')](),'closedAt':_0x2cd7c5[_0xc8b7('0xdf')]?moment(_0x2cd7c5[_0xc8b7('0xe0')])[_0xc8b7('0xc2')]('YYYY-MM-DD\x20HH:mm:ss')[_0xc8b7('0x9b')]():'','disposition':_0x2cd7c5[_0xc8b7('0xe1')],'messages':_(_0x2cd7c5[_0xc8b7('0xe2')])[_0xc8b7('0x87')]({'secret':![]})[_0xc8b7('0x32')](function(_0x1cfb8d){if(_0x1cfb8d[_0xc8b7('0xd5')]){var _0xcf1cbe=path[_0xc8b7('0xcc')](_0x3135b1,_0x1cfb8d['Attachment'][_0xc8b7('0xe3')]);if(fs[_0xc8b7('0xe4')](_0xcf1cbe)){fs[_0xc8b7('0xe5')](_0xcf1cbe)['pipe'](fs[_0xc8b7('0xe6')](path[_0xc8b7('0xcc')](_0x202216,_0x1cfb8d[_0xc8b7('0xd5')][_0xc8b7('0xe3')])));}}return{'date':moment(_0x1cfb8d['createdAt'])[_0xc8b7('0xc2')]('YYYY-MM-DD\x20HH:mm:ss')['toString'](),'sender':_0x1cfb8d[_0xc8b7('0xd6')]===_0xc8b7('0xe7')?_0x1cfb8d['User']?_0x1cfb8d[_0xc8b7('0x74')][_0xc8b7('0x33')]:'System':_0x1cfb8d['Contact'][_0xc8b7('0xe8')]+(_0x1cfb8d[_0xc8b7('0x6a')][_0xc8b7('0xd3')]?'\x20'+_0x1cfb8d[_0xc8b7('0x6a')][_0xc8b7('0xd3')]:''),'body':_0x1cfb8d[_0xc8b7('0xd5')]?_0x1cfb8d[_0xc8b7('0xd5')]['basename']:_0x1cfb8d['body'],'direction':_0x1cfb8d['direction']===_0xc8b7('0xe7')?'A':'C','secret':_0x1cfb8d[_0xc8b7('0xd7')],'read':_0x1cfb8d[_0xc8b7('0x83')],'attachment':_0x1cfb8d[_0xc8b7('0xd5')]};})[_0xc8b7('0x67')]()};return ejs['renderFile'](path['join'](config[_0xc8b7('0xcd')],_0xc8b7('0xce'),_0xc8b7('0xe9'),_0xc8b7('0xea')),{'interaction':_0x2a6d66})[_0xc8b7('0x2d')](function(_0x57aaa7){var _0x536fe1=path['join'](_0x202216,_0xc8b7('0xeb')+_0x2cd7c5['id']+'-'+_0x4cf5c8+'.pdf');var _0x54f347={'path':_0x536fe1,'channel':_0xc8b7('0xdc'),'interactionId':_0x2cd7c5['id']};return pdf[_0xc8b7('0xec')](_0x57aaa7,_0x54f347);})[_0xc8b7('0x2d')](function(){return new BPromise(function(_0x202904,_0x4c56cb){zipdir(_0x202216,{'saveTo':_0x36366b},function(_0x31e112,_0x392610){if(_0x31e112)return _0x4c56cb(_0x31e112);return _0x202904(_0x392610);});})['then'](function(){return new BPromise(function(_0x4fd10b,_0x343c5b){rimraf(_0x202216,function(_0x3a9d3c){if(_0x3a9d3c)_0x343c5b(_0x3a9d3c);return _0x4fd10b();});});})[_0xc8b7('0x2d')](function(){return _0x40bc1e['download'](_0x36366b,_0x10dffc,function(_0x33b596){if(_0x33b596){console['log'](_0xc8b7('0xed'),_0x33b596);}else{fs[_0xc8b7('0xee')](_0x36366b);}});});});}else{return _0x40bc1e[_0xc8b7('0x1f')](0xc8);}})['catch'](handleError(_0x40bc1e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b24=['map','findAll','then','emit','catch','hook','exports','../../mysqldb','WhatsappInteraction','WhatsappMessage','remove','setDataValue','Users'];(function(_0x4697fa,_0x21c841){var _0x390950=function(_0x3deb8a){while(--_0x3deb8a){_0x4697fa['push'](_0x4697fa['shift']());}};_0x390950(++_0x21c841);}(_0x6b24,0x1ce));var _0x46b2=function(_0x4389d6,_0x58768d){_0x4389d6=_0x4389d6-0x0;var _0x3f279b=_0x6b24[_0x4389d6];return _0x3f279b;};'use strict';var EventEmitter=require('events');var WhatsappInteraction=require(_0x46b2('0x0'))['db'][_0x46b2('0x1')];var WhatsappMessage=require(_0x46b2('0x0'))['db'][_0x46b2('0x2')];var WhatsappInteractionEvents=new EventEmitter();WhatsappInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x46b2('0x3')};function emitEvent(_0x53ee5c){return function(_0x186cda,_0x49d2b5,_0x2e5227){_0x186cda['getUsers']({'attributes':['id'],'raw':!![]})['then'](function(_0x326eb7){_0x186cda[_0x46b2('0x4')](_0x46b2('0x5'),_0x326eb7[_0x46b2('0x6')](function(_0x294294){return{'id':_0x294294['id']};}));return WhatsappMessage[_0x46b2('0x7')]({'where':{'WhatsappInteractionId':_0x186cda['id'],'direction':'in','read':![]},'raw':!![]});})[_0x46b2('0x8')](function(_0xde459c){_0x186cda[_0x46b2('0x4')]('unreadMessages',_0xde459c['length']);WhatsappInteractionEvents[_0x46b2('0x9')](_0x53ee5c+':'+_0x186cda['id'],_0x186cda);WhatsappInteractionEvents[_0x46b2('0x9')](_0x53ee5c,_0x186cda);_0x2e5227(null);})[_0x46b2('0xa')](_0x2e5227(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappInteraction[_0x46b2('0xb')](e,emitEvent(event));}}module[_0x46b2('0xc')]=WhatsappInteractionEvents;
\ No newline at end of file
+var _0xd9dc=['WhatsappMessage','setMaxListeners','save','remove','then','setDataValue','Users','map','findAll','unreadMessages','length','emit','hasOwnProperty','exports','../../mysqldb','WhatsappInteraction'];(function(_0x4b2b03,_0xbf34ee){var _0x1bf0ed=function(_0x562785){while(--_0x562785){_0x4b2b03['push'](_0x4b2b03['shift']());}};_0x1bf0ed(++_0xbf34ee);}(_0xd9dc,0x1be));var _0xcd9d=function(_0x22eb18,_0x3f3f86){_0x22eb18=_0x22eb18-0x0;var _0x2edd39=_0xd9dc[_0x22eb18];return _0x2edd39;};'use strict';var EventEmitter=require('events');var WhatsappInteraction=require(_0xcd9d('0x0'))['db'][_0xcd9d('0x1')];var WhatsappMessage=require('../../mysqldb')['db'][_0xcd9d('0x2')];var WhatsappInteractionEvents=new EventEmitter();WhatsappInteractionEvents[_0xcd9d('0x3')](0x0);var events={'afterCreate':_0xcd9d('0x4'),'afterUpdate':'update','afterDestroy':_0xcd9d('0x5')};function emitEvent(_0x12aae1){return function(_0x2c0be0,_0x15c0e2,_0x8cc2e4){_0x2c0be0['getUsers']({'attributes':['id'],'raw':!![]})[_0xcd9d('0x6')](function(_0x425858){_0x2c0be0[_0xcd9d('0x7')](_0xcd9d('0x8'),_0x425858[_0xcd9d('0x9')](function(_0x549558){return{'id':_0x549558['id']};}));return WhatsappMessage[_0xcd9d('0xa')]({'where':{'WhatsappInteractionId':_0x2c0be0['id'],'direction':'in','read':![]},'raw':!![]});})[_0xcd9d('0x6')](function(_0x32dce7){_0x2c0be0[_0xcd9d('0x7')](_0xcd9d('0xb'),_0x32dce7[_0xcd9d('0xc')]);WhatsappInteractionEvents[_0xcd9d('0xd')](_0x12aae1+':'+_0x2c0be0['id'],_0x2c0be0);WhatsappInteractionEvents[_0xcd9d('0xd')](_0x12aae1,_0x2c0be0);_0x8cc2e4(null);})['catch'](_0x8cc2e4(null));};}for(var e in events){if(events[_0xcd9d('0xe')](e)){var event=events[e];WhatsappInteraction['hook'](e,emitEvent(event));}}module[_0xcd9d('0xf')]=WhatsappInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb3b7=['closed','closedAt','format','util','../../config/logger','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','WhatsappInteraction','whatsapp_interactions','changed'];(function(_0x14e6d6,_0x25b8fc){var _0x39962f=function(_0x3e26de){while(--_0x3e26de){_0x14e6d6['push'](_0x14e6d6['shift']());}};_0x39962f(++_0x25b8fc);}(_0xb3b7,0x6c));var _0x7b3b=function(_0x1ca89e,_0x427fdd){_0x1ca89e=_0x1ca89e-0x0;var _0x42994b=_0xb3b7[_0x1ca89e];return _0x42994b;};'use strict';var _=require('lodash');var util=require(_0x7b3b('0x0'));var logger=require(_0x7b3b('0x1'))('api');var moment=require('moment');var BPromise=require(_0x7b3b('0x2'));var rp=require(_0x7b3b('0x3'));var fs=require('fs');var path=require(_0x7b3b('0x4'));var rimraf=require(_0x7b3b('0x5'));var config=require(_0x7b3b('0x6'));var attributes=require('./whatsappInteraction.attributes');module[_0x7b3b('0x7')]=function(_0x2c0efe,_0x1f7e17){return _0x2c0efe[_0x7b3b('0x8')](_0x7b3b('0x9'),attributes,{'tableName':_0x7b3b('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x409853,_0x46bc74,_0x40e886){if(_0x409853[_0x7b3b('0xb')](_0x7b3b('0xc'))){_0x409853[_0x7b3b('0xd')]=moment()[_0x7b3b('0xe')]('YYYY-MM-DD\x20HH:mm:ss');}_0x40e886(null,_0x409853);}}});};
\ No newline at end of file
+var _0x1b67=['lodash','util','api','moment','rimraf','./whatsappInteraction.attributes','define','WhatsappInteraction','changed','closed','format','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x2b8f4c,_0x2fea87){var _0x9cd058=function(_0x253a92){while(--_0x253a92){_0x2b8f4c['push'](_0x2b8f4c['shift']());}};_0x9cd058(++_0x2fea87);}(_0x1b67,0xcc));var _0x71b6=function(_0x26e4f2,_0x3bc08c){_0x26e4f2=_0x26e4f2-0x0;var _0x4319e2=_0x1b67[_0x26e4f2];return _0x4319e2;};'use strict';var _=require(_0x71b6('0x0'));var util=require(_0x71b6('0x1'));var logger=require('../../config/logger')(_0x71b6('0x2'));var moment=require(_0x71b6('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x71b6('0x4'));var config=require('../../config/environment');var attributes=require(_0x71b6('0x5'));module['exports']=function(_0x543919,_0x7ab915){return _0x543919[_0x71b6('0x6')](_0x71b6('0x7'),attributes,{'tableName':'whatsapp_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x195cea,_0x173dc0,_0x53e12f){if(_0x195cea[_0x71b6('0x8')](_0x71b6('0x9'))){_0x195cea['closedAt']=moment()[_0x71b6('0xa')](_0x71b6('0xb'));}_0x53e12f(null,_0x195cea);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0646=['../../config/environment','jayson/promise','client','localhost','socket.io-emitter','redis','./whatsappInteraction.socket','register','request','info','WhatsappInteraction,\x20%s,\x20%s','request\x20sent','WhatsappInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','WhatsappInteraction','update','body','options','raw','where','attributes','UpdateWhatsappInteraction','debug','then','ids','omit','AddTags','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x5e946b,_0x1957de){var _0x42d8d9=function(_0x2908eb){while(--_0x2908eb){_0x5e946b['push'](_0x5e946b['shift']());}};_0x42d8d9(++_0x1957de);}(_0x0646,0x188));var _0x6064=function(_0x479742,_0x2db33f){_0x479742=_0x479742-0x0;var _0x2637e2=_0x0646[_0x479742];return _0x2637e2;};'use strict';var _=require(_0x6064('0x0'));var util=require(_0x6064('0x1'));var moment=require(_0x6064('0x2'));var BPromise=require('bluebird');var rs=require(_0x6064('0x3'));var fs=require('fs');var Redis=require(_0x6064('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x6064('0x5'));var logger=require(_0x6064('0x6'))(_0x6064('0x7'));var config=require(_0x6064('0x8'));var jayson=require(_0x6064('0x9'));var client=jayson[_0x6064('0xa')]['http']({'port':0x232a});config['redis']=_['defaults'](config['redis'],{'host':_0x6064('0xb'),'port':0x18eb});var socket=require(_0x6064('0xc'))(new Redis(config[_0x6064('0xd')]));require(_0x6064('0xe'))[_0x6064('0xf')](socket);function respondWithRpcPromise(_0x24933b,_0x120935,_0x4f5e02){return new BPromise(function(_0x2aca71,_0x61557b){return client[_0x6064('0x10')](_0x24933b,_0x4f5e02)['then'](function(_0x2d0584){logger[_0x6064('0x11')](_0x6064('0x12'),_0x120935,_0x6064('0x13'));logger['debug'](_0x6064('0x14'),_0x120935,_0x6064('0x13'),JSON[_0x6064('0x15')](_0x2d0584));if(_0x2d0584[_0x6064('0x16')]){if(_0x2d0584['error'][_0x6064('0x17')]===0x1f4){logger[_0x6064('0x16')](_0x6064('0x12'),_0x120935,_0x2d0584[_0x6064('0x16')][_0x6064('0x18')]);return _0x61557b(_0x2d0584[_0x6064('0x16')][_0x6064('0x18')]);}logger[_0x6064('0x16')](_0x6064('0x12'),_0x120935,_0x2d0584[_0x6064('0x16')][_0x6064('0x18')]);return _0x2aca71(_0x2d0584[_0x6064('0x16')][_0x6064('0x18')]);}else{logger[_0x6064('0x11')](_0x6064('0x12'),_0x120935,'request\x20sent');_0x2aca71(_0x2d0584[_0x6064('0x19')][_0x6064('0x18')]);}})[_0x6064('0x1a')](function(_0x462b4c){logger[_0x6064('0x16')](_0x6064('0x12'),_0x120935,_0x462b4c);_0x61557b(_0x462b4c);});});}exports['UpdateWhatsappInteraction']=function(_0x47dc19){var _0xe836e3=this;return new Promise(function(_0x650709,_0x3d193d){return db[_0x6064('0x1b')][_0x6064('0x1c')](_0x47dc19[_0x6064('0x1d')],{'raw':_0x47dc19[_0x6064('0x1e')]?_0x47dc19[_0x6064('0x1e')][_0x6064('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x47dc19[_0x6064('0x1e')]?_0x47dc19['options'][_0x6064('0x20')]||null:null,'attributes':_0x47dc19[_0x6064('0x1e')]?_0x47dc19[_0x6064('0x1e')][_0x6064('0x21')]||null:null,'limit':_0x47dc19['options']?_0x47dc19[_0x6064('0x1e')]['limit']||null:null})['then'](function(_0x216f79){logger[_0x6064('0x11')](_0x6064('0x22'),_0x47dc19);logger[_0x6064('0x23')](_0x6064('0x22'),_0x47dc19,JSON[_0x6064('0x15')](_0x216f79));_0x650709(_0x216f79);})[_0x6064('0x1a')](function(_0x4674b1){logger[_0x6064('0x16')](_0x6064('0x22'),_0x4674b1['message'],_0x47dc19);_0x3d193d(_0xe836e3[_0x6064('0x16')](0x1f4,_0x4674b1[_0x6064('0x18')]));});});};exports['AddTagsToWhatsappInteraction']=function(_0x505c63){return new Promise(function(_0x2638db,_0x47b402){return db[_0x6064('0x1b')]['find']({'where':_0x505c63[_0x6064('0x1e')]?_0x505c63['options'][_0x6064('0x20')]||null:null})[_0x6064('0x24')](function(_0x1c78d5){if(_0x1c78d5){return _0x1c78d5['addTags'](_0x505c63[_0x6064('0x1d')][_0x6064('0x25')],_[_0x6064('0x26')](_0x505c63[_0x6064('0x1d')],[_0x6064('0x25'),'id'])||{});}})['spread'](function(_0x50ceb6){logger['info'](_0x6064('0x27'),_0x505c63);logger[_0x6064('0x23')]('AddTags',_0x505c63,JSON[_0x6064('0x15')](_0x50ceb6));_0x2638db(_0x50ceb6);})[_0x6064('0x1a')](function(_0x30f264){logger[_0x6064('0x16')](_0x6064('0x27'),_0x30f264['message'],_0x505c63);_0x47b402(_this['error'](0x1f4,_0x30f264[_0x6064('0x18')]));});});};
\ No newline at end of file
+var _0xa3fb=['AddTags','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','defaults','redis','localhost','socket.io-emitter','./whatsappInteraction.socket','register','request','then','request\x20sent','debug','WhatsappInteraction,\x20%s,\x20%s,\x20%s','error','code','message','WhatsappInteraction,\x20%s,\x20%s','result','catch','WhatsappInteraction','body','options','attributes','limit','info','UpdateWhatsappInteraction','stringify','AddTagsToWhatsappInteraction','find','where','addTags','omit','spread'];(function(_0x3055bd,_0x33d1e0){var _0x1e1554=function(_0x427265){while(--_0x427265){_0x3055bd['push'](_0x3055bd['shift']());}};_0x1e1554(++_0x33d1e0);}(_0xa3fb,0x18d));var _0xba3f=function(_0x5eb65f,_0x2b90bf){_0x5eb65f=_0x5eb65f-0x0;var _0x305552=_0xa3fb[_0x5eb65f];return _0x305552;};'use strict';var _=require(_0xba3f('0x0'));var util=require(_0xba3f('0x1'));var moment=require(_0xba3f('0x2'));var BPromise=require('bluebird');var rs=require(_0xba3f('0x3'));var fs=require('fs');var Redis=require(_0xba3f('0x4'));var db=require(_0xba3f('0x5'))['db'];var utils=require(_0xba3f('0x6'));var logger=require(_0xba3f('0x7'))(_0xba3f('0x8'));var config=require(_0xba3f('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xba3f('0xa')][_0xba3f('0xb')]({'port':0x232a});config['redis']=_[_0xba3f('0xc')](config[_0xba3f('0xd')],{'host':_0xba3f('0xe'),'port':0x18eb});var socket=require(_0xba3f('0xf'))(new Redis(config[_0xba3f('0xd')]));require(_0xba3f('0x10'))[_0xba3f('0x11')](socket);function respondWithRpcPromise(_0x56cd37,_0x832407,_0x514054){return new BPromise(function(_0x2ffc5c,_0x58ab16){return client[_0xba3f('0x12')](_0x56cd37,_0x514054)[_0xba3f('0x13')](function(_0x1228c2){logger['info']('WhatsappInteraction,\x20%s,\x20%s',_0x832407,_0xba3f('0x14'));logger[_0xba3f('0x15')](_0xba3f('0x16'),_0x832407,_0xba3f('0x14'),JSON['stringify'](_0x1228c2));if(_0x1228c2[_0xba3f('0x17')]){if(_0x1228c2[_0xba3f('0x17')][_0xba3f('0x18')]===0x1f4){logger[_0xba3f('0x17')]('WhatsappInteraction,\x20%s,\x20%s',_0x832407,_0x1228c2['error'][_0xba3f('0x19')]);return _0x58ab16(_0x1228c2[_0xba3f('0x17')][_0xba3f('0x19')]);}logger['error'](_0xba3f('0x1a'),_0x832407,_0x1228c2[_0xba3f('0x17')][_0xba3f('0x19')]);return _0x2ffc5c(_0x1228c2[_0xba3f('0x17')][_0xba3f('0x19')]);}else{logger['info'](_0xba3f('0x1a'),_0x832407,'request\x20sent');_0x2ffc5c(_0x1228c2[_0xba3f('0x1b')]['message']);}})[_0xba3f('0x1c')](function(_0x5984e6){logger[_0xba3f('0x17')]('WhatsappInteraction,\x20%s,\x20%s',_0x832407,_0x5984e6);_0x58ab16(_0x5984e6);});});}exports['UpdateWhatsappInteraction']=function(_0x1920cc){var _0x169e9d=this;return new Promise(function(_0x174b12,_0xcc5bb9){return db[_0xba3f('0x1d')]['update'](_0x1920cc[_0xba3f('0x1e')],{'raw':_0x1920cc[_0xba3f('0x1f')]?_0x1920cc['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1920cc['options']?_0x1920cc['options']['where']||null:null,'attributes':_0x1920cc['options']?_0x1920cc[_0xba3f('0x1f')][_0xba3f('0x20')]||null:null,'limit':_0x1920cc[_0xba3f('0x1f')]?_0x1920cc[_0xba3f('0x1f')][_0xba3f('0x21')]||null:null})[_0xba3f('0x13')](function(_0x2ced2f){logger[_0xba3f('0x22')](_0xba3f('0x23'),_0x1920cc);logger[_0xba3f('0x15')](_0xba3f('0x23'),_0x1920cc,JSON[_0xba3f('0x24')](_0x2ced2f));_0x174b12(_0x2ced2f);})[_0xba3f('0x1c')](function(_0x2d8a95){logger['error']('UpdateWhatsappInteraction',_0x2d8a95[_0xba3f('0x19')],_0x1920cc);_0xcc5bb9(_0x169e9d[_0xba3f('0x17')](0x1f4,_0x2d8a95[_0xba3f('0x19')]));});});};exports[_0xba3f('0x25')]=function(_0x3e657e){return new Promise(function(_0x35f5ce,_0x58fb3d){return db[_0xba3f('0x1d')][_0xba3f('0x26')]({'where':_0x3e657e['options']?_0x3e657e[_0xba3f('0x1f')][_0xba3f('0x27')]||null:null})[_0xba3f('0x13')](function(_0x4be5e9){if(_0x4be5e9){return _0x4be5e9[_0xba3f('0x28')](_0x3e657e['body']['ids'],_[_0xba3f('0x29')](_0x3e657e['body'],['ids','id'])||{});}})[_0xba3f('0x2a')](function(_0x853210){logger[_0xba3f('0x22')](_0xba3f('0x2b'),_0x3e657e);logger['debug'](_0xba3f('0x2b'),_0x3e657e,JSON[_0xba3f('0x24')](_0x853210));_0x35f5ce(_0x853210);})[_0xba3f('0x1c')](function(_0x4a596a){logger['error'](_0xba3f('0x2b'),_0x4a596a[_0xba3f('0x19')],_0x3e657e);_0x58fb3d(_this[_0xba3f('0x17')](0x1f4,_0x4a596a[_0xba3f('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0825=['update','register','length','whatsappInteraction:','./whatsappInteraction.events','save','remove'];(function(_0x278679,_0x1eb219){var _0x4874aa=function(_0x2806b8){while(--_0x2806b8){_0x278679['push'](_0x278679['shift']());}};_0x4874aa(++_0x1eb219);}(_0x0825,0x1a1));var _0x5082=function(_0x3bedd2,_0x41d736){_0x3bedd2=_0x3bedd2-0x0;var _0x3966d0=_0x0825[_0x3bedd2];return _0x3966d0;};'use strict';var WhatsappInteractionEvents=require(_0x5082('0x0'));var events=[_0x5082('0x1'),_0x5082('0x2'),_0x5082('0x3')];function createListener(_0x44ed41,_0x35a0b5){return function(_0x8d3414){_0x35a0b5['emit'](_0x44ed41,_0x8d3414);};}function removeListener(_0x5daa12,_0x30dbd1){return function(){WhatsappInteractionEvents['removeListener'](_0x5daa12,_0x30dbd1);};}exports[_0x5082('0x4')]=function(_0x2972b7){for(var _0x5ec596=0x0,_0x44fe31=events[_0x5082('0x5')];_0x5ec596<_0x44fe31;_0x5ec596++){var _0x273a5e=events[_0x5ec596];var _0x55693e=createListener(_0x5082('0x6')+_0x273a5e,_0x2972b7);WhatsappInteractionEvents['on'](_0x273a5e,_0x55693e);}};
\ No newline at end of file
+var _0xaf3e=['update','removeListener','register','length','whatsappInteraction:','./whatsappInteraction.events','save','remove'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xaf3e,0x155));var _0xeaf3=function(_0x3a73bc,_0x550aef){_0x3a73bc=_0x3a73bc-0x0;var _0x32891b=_0xaf3e[_0x3a73bc];return _0x32891b;};'use strict';var WhatsappInteractionEvents=require(_0xeaf3('0x0'));var events=[_0xeaf3('0x1'),_0xeaf3('0x2'),_0xeaf3('0x3')];function createListener(_0x33ad33,_0x2cc7ee){return function(_0x52d41a){_0x2cc7ee['emit'](_0x33ad33,_0x52d41a);};}function removeListener(_0x4c0b12,_0x599a4b){return function(){WhatsappInteractionEvents[_0xeaf3('0x4')](_0x4c0b12,_0x599a4b);};}exports[_0xeaf3('0x5')]=function(_0x52f303){for(var _0x46dbe9=0x0,_0x52f70c=events[_0xeaf3('0x6')];_0x46dbe9<_0x52f70c;_0x46dbe9++){var _0x5890ec=events[_0x46dbe9];var _0x2f7757=createListener(_0xeaf3('0x7')+_0x5890ec,_0x52f303);WhatsappInteractionEvents['on'](_0x5890ec,_0x2f7757);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x79de=['path','express','Router','../../components/auth/service','./whatsappMessage.controller','get','isAuthenticated','/describe','describe','show','tracked','whatsapp','whatsappmessage:create','create','post','/:id/status','status','/:id','update','/:id/accept','accept','put','/:id/reject','exports','util'];(function(_0x231d9d,_0x424e07){var _0x1cd531=function(_0x46a580){while(--_0x46a580){_0x231d9d['push'](_0x231d9d['shift']());}};_0x1cd531(++_0x424e07);}(_0x79de,0x1f3));var _0xe79d=function(_0x418fad,_0x3a67ea){_0x418fad=_0x418fad-0x0;var _0x226da0=_0x79de[_0x418fad];return _0x226da0;};'use strict';var multer=require('multer');var util=require(_0xe79d('0x0'));var path=require(_0xe79d('0x1'));var timeout=require('connect-timeout');var express=require(_0xe79d('0x2'));var router=express[_0xe79d('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xe79d('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xe79d('0x5'));router[_0xe79d('0x6')]('/',auth[_0xe79d('0x7')](),controller['index']);router[_0xe79d('0x6')](_0xe79d('0x8'),auth[_0xe79d('0x7')](),controller[_0xe79d('0x9')]);router['get']('/:id',auth[_0xe79d('0x7')](),controller[_0xe79d('0xa')]);router['post']('/',auth[_0xe79d('0x7')](),interaction[_0xe79d('0xb')](_0xe79d('0xc'),_0xe79d('0xd')),controller[_0xe79d('0xe')]);router[_0xe79d('0xf')](_0xe79d('0x10'),controller[_0xe79d('0x11')]);router['put'](_0xe79d('0x12'),auth[_0xe79d('0x7')](),controller[_0xe79d('0x13')]);router['put'](_0xe79d('0x14'),auth['isAuthenticated'](),controller[_0xe79d('0x15')]);router[_0xe79d('0x16')](_0xe79d('0x17'),auth[_0xe79d('0x7')](),controller['reject']);router['delete'](_0xe79d('0x12'),auth['isAuthenticated'](),controller['destroy']);module[_0xe79d('0x18')]=router;
\ No newline at end of file
+var _0x7c45=['whatsappmessage:create','create','put','update','/:id/accept','accept','/:id/reject','reject','destroy','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','/describe','describe','/:id','post','whatsapp'];(function(_0x2ea716,_0x247e9e){var _0x5dd3b2=function(_0x254b42){while(--_0x254b42){_0x2ea716['push'](_0x2ea716['shift']());}};_0x5dd3b2(++_0x247e9e);}(_0x7c45,0x1ea));var _0x57c4=function(_0x19b3f9,_0xade753){_0x19b3f9=_0x19b3f9-0x0;var _0x18c3f6=_0x7c45[_0x19b3f9];return _0x18c3f6;};'use strict';var multer=require(_0x57c4('0x0'));var util=require('util');var path=require(_0x57c4('0x1'));var timeout=require('connect-timeout');var express=require(_0x57c4('0x2'));var router=express[_0x57c4('0x3')]();var fs_extra=require(_0x57c4('0x4'));var auth=require(_0x57c4('0x5'));var interaction=require(_0x57c4('0x6'));var config=require('../../config/environment');var controller=require('./whatsappMessage.controller');router[_0x57c4('0x7')]('/',auth[_0x57c4('0x8')](),controller['index']);router['get'](_0x57c4('0x9'),auth['isAuthenticated'](),controller[_0x57c4('0xa')]);router[_0x57c4('0x7')](_0x57c4('0xb'),auth[_0x57c4('0x8')](),controller['show']);router[_0x57c4('0xc')]('/',auth['isAuthenticated'](),interaction['tracked'](_0x57c4('0xd'),_0x57c4('0xe')),controller[_0x57c4('0xf')]);router['post']('/:id/status',controller['status']);router[_0x57c4('0x10')]('/:id',auth[_0x57c4('0x8')](),controller[_0x57c4('0x11')]);router[_0x57c4('0x10')](_0x57c4('0x12'),auth[_0x57c4('0x8')](),controller[_0x57c4('0x13')]);router[_0x57c4('0x10')](_0x57c4('0x14'),auth[_0x57c4('0x8')](),controller[_0x57c4('0x15')]);router['delete'](_0x57c4('0xb'),auth['isAuthenticated'](),controller[_0x57c4('0x16')]);module[_0x57c4('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9055=['TEXT','sequelize','ENUM','out','STRING','DATE','BOOLEAN'];(function(_0x456e40,_0x2a6a69){var _0x3cb239=function(_0x2158fc){while(--_0x2158fc){_0x456e40['push'](_0x456e40['shift']());}};_0x3cb239(++_0x2a6a69);}(_0x9055,0x1eb));var _0x5905=function(_0x1530bf,_0x14bd16){_0x1530bf=_0x1530bf-0x0;var _0x1da684=_0x9055[_0x1530bf];return _0x1da684;};'use strict';var Sequelize=require(_0x5905('0x0'));module['exports']={'body':{'type':Sequelize['TEXT']('medium'),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x5905('0x1')]('in',_0x5905('0x2')),'defaultValue':'out','allowNull':![]},'messageId':{'type':Sequelize[_0x5905('0x3')](0xbe)},'phone':{'type':Sequelize[_0x5905('0x3')]},'readAt':{'type':Sequelize[_0x5905('0x4')]},'secret':{'type':Sequelize[_0x5905('0x5')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x5905('0x3')]},'providerResponse':{'type':Sequelize[_0x5905('0x6')]}};
\ No newline at end of file
+var _0x2fbc=['DATE','sequelize','exports','TEXT','medium','BOOLEAN','ENUM','out','STRING'];(function(_0x362c5c,_0x189ea8){var _0x3a951e=function(_0x3296e4){while(--_0x3296e4){_0x362c5c['push'](_0x362c5c['shift']());}};_0x3a951e(++_0x189ea8);}(_0x2fbc,0x106));var _0xc2fb=function(_0xd7d92b,_0x162a88){_0xd7d92b=_0xd7d92b-0x0;var _0x42856d=_0x2fbc[_0xd7d92b];return _0x42856d;};'use strict';var Sequelize=require(_0xc2fb('0x0'));module[_0xc2fb('0x1')]={'body':{'type':Sequelize[_0xc2fb('0x2')](_0xc2fb('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0xc2fb('0x4')],'defaultValue':![]},'direction':{'type':Sequelize[_0xc2fb('0x5')]('in',_0xc2fb('0x6')),'defaultValue':'out','allowNull':![]},'messageId':{'type':Sequelize['STRING'](0xbe)},'phone':{'type':Sequelize[_0xc2fb('0x7')]},'readAt':{'type':Sequelize[_0xc2fb('0x8')]},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'providerName':{'type':Sequelize[_0xc2fb('0x7')]},'providerResponse':{'type':Sequelize[_0xc2fb('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b89=['stack','name','send','index','map','WhatsappMessage','rawAttributes','fieldName','type','key','query','keys','filters','model','fields','attributes','hasOwnProperty','nolimit','limit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','intersection','length','find','body','destroy','describe','../../config/logger','whatsapp-interactions','accept','whatsapp','readAt','format','UserId','agent','WhatsappInteraction','WhatsappInteractionId','isNil','read1stAt','YYYY-MM-DD\x20HH:mm:ss','interaction','get','[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','email','internal','manual','motionChannel','channel','event','EventManager','acceptmessage','reject','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','interface','SIP/%s','WhatsappAccount','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','inspect','MessageSid','MessageStatus','WhatsappAccount,\x20%s,\x20%s,\x20%s','eml-format','rimraf','fast-json-patch','path','sox','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./whatsappMessage.socket','jayson/promise','client','http','then','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','sendStatus','status','end','json','offset','undefined','count','set','save','update'];(function(_0x4a2cdf,_0x3226a6){var _0x10c114=function(_0x5d9846){while(--_0x5d9846){_0x4a2cdf['push'](_0x4a2cdf['shift']());}};_0x10c114(++_0x3226a6);}(_0x5b89,0xdd));var _0x95b8=function(_0x55821d,_0x27a22e){_0x55821d=_0x55821d-0x0;var _0x58ea8a=_0x5b89[_0x55821d];return _0x58ea8a;};'use strict';var emlformat=require(_0x95b8('0x0'));var rimraf=require(_0x95b8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x95b8('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x95b8('0x3'));var sox=require(_0x95b8('0x4'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x95b8('0x5'));var squel=require(_0x95b8('0x6'));var crypto=require('crypto');var jsforce=require(_0x95b8('0x7'));var deskjs=require(_0x95b8('0x8'));var toCsv=require(_0x95b8('0x9'));var querystring=require(_0x95b8('0xa'));var Papa=require(_0x95b8('0xb'));var Redis=require(_0x95b8('0xc'));var authService=require(_0x95b8('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x95b8('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x95b8('0xf'));var utils=require(_0x95b8('0x10'));var config=require(_0x95b8('0x11'));var licenseUtil=require(_0x95b8('0x12'));var db=require(_0x95b8('0x13'))['db'];config[_0x95b8('0x14')]=_['defaults'](config[_0x95b8('0x14')],{'host':_0x95b8('0x15'),'port':0x18eb});var socket=require(_0x95b8('0x16'))(new Redis(config['redis']));require(_0x95b8('0x17'))['register'](socket);var jayson=require(_0x95b8('0x18'));var client=jayson[_0x95b8('0x19')][_0x95b8('0x1a')]({'port':0x232c});var client9002=jayson[_0x95b8('0x19')][_0x95b8('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x1a6841,_0x272151,_0x33c414,_0x456f37){return new BPromise(function(_0x3cfb99,_0x53cea8){var _0x361baf=_0x456f37||client;return _0x361baf['request'](_0x1a6841,_0x33c414)[_0x95b8('0x1b')](function(_0x1f7839){logger['info'](_0x95b8('0x1c'),_0x272151,_0x95b8('0x1d'));logger[_0x95b8('0x1e')](_0x95b8('0x1f'),_0x272151,_0x95b8('0x1d'),JSON[_0x95b8('0x20')](_0x1f7839));if(_0x1f7839[_0x95b8('0x21')]){if(_0x1f7839[_0x95b8('0x21')]['code']===0x1f4){logger[_0x95b8('0x21')](_0x95b8('0x1c'),_0x272151,_0x1f7839[_0x95b8('0x21')]['message']);return _0x53cea8(_0x1f7839[_0x95b8('0x21')][_0x95b8('0x22')]);}logger[_0x95b8('0x21')]('WhatsappMessage,\x20%s,\x20%s',_0x272151,_0x1f7839[_0x95b8('0x21')][_0x95b8('0x22')]);return _0x3cfb99(_0x1f7839[_0x95b8('0x21')][_0x95b8('0x22')]);}else{logger[_0x95b8('0x23')](_0x95b8('0x1c'),_0x272151,_0x95b8('0x1d'));_0x3cfb99(_0x1f7839[_0x95b8('0x24')][_0x95b8('0x22')]);}})['catch'](function(_0x251dfa){logger[_0x95b8('0x21')]('WhatsappMessage,\x20%s,\x20%s',_0x272151,_0x251dfa);_0x53cea8(_0x251dfa);});});}function respondWithStatusCode(_0x4a6c50,_0x3c33bf){_0x3c33bf=_0x3c33bf||0xcc;return function(_0x2f3f4f){if(_0x2f3f4f){return _0x4a6c50[_0x95b8('0x25')](_0x3c33bf);}return _0x4a6c50[_0x95b8('0x26')](_0x3c33bf)[_0x95b8('0x27')]();};}function respondWithResult(_0x2180f2,_0x11774e){_0x11774e=_0x11774e||0xc8;return function(_0x4d67a7){if(_0x4d67a7){return _0x2180f2[_0x95b8('0x26')](_0x11774e)[_0x95b8('0x28')](_0x4d67a7);}};}function respondWithFilteredResult(_0x32a6d5,_0x197c36){return function(_0x4b8374){if(_0x4b8374){var _0x4aaea7=typeof _0x197c36[_0x95b8('0x29')]===_0x95b8('0x2a')&&typeof _0x197c36['limit']==='undefined';var _0x1ac12e=_0x4b8374[_0x95b8('0x2b')];var _0x18b641=_0x4aaea7?0x0:_0x197c36[_0x95b8('0x29')];var _0x25026d=_0x4aaea7?_0x4b8374[_0x95b8('0x2b')]:_0x197c36[_0x95b8('0x29')]+_0x197c36['limit'];var _0x585d72;if(_0x25026d>=_0x1ac12e){_0x25026d=_0x1ac12e;_0x585d72=0xc8;}else{_0x585d72=0xce;}_0x32a6d5[_0x95b8('0x26')](_0x585d72);return _0x32a6d5[_0x95b8('0x2c')]('Content-Range',_0x18b641+'-'+_0x25026d+'/'+_0x1ac12e)[_0x95b8('0x28')](_0x4b8374);}return null;};}function patchUpdates(_0x4a152a){return function(_0x37ea4c){try{jsonpatch['apply'](_0x37ea4c,_0x4a152a,!![]);}catch(_0x20dc3f){return BPromise['reject'](_0x20dc3f);}return _0x37ea4c[_0x95b8('0x2d')]();};}function saveUpdates(_0x2d731b,_0x393519){return function(_0x3dab24){if(_0x3dab24){return _0x3dab24[_0x95b8('0x2e')](_0x2d731b)['then'](function(_0x16fd49){return _0x16fd49;});}return null;};}function removeEntity(_0x2b2a56,_0x349816){return function(_0x549cee){if(_0x549cee){return _0x549cee['destroy']()[_0x95b8('0x1b')](function(){_0x2b2a56[_0x95b8('0x26')](0xcc)[_0x95b8('0x27')]();});}};}function handleEntityNotFound(_0x57862c,_0x2e0eb8){return function(_0x188fec){if(!_0x188fec){_0x57862c[_0x95b8('0x25')](0x194);}return _0x188fec;};}function handleError(_0x47fc46,_0x41d270){_0x41d270=_0x41d270||0x1f4;return function(_0x9799e2){logger['error'](_0x9799e2[_0x95b8('0x2f')]);if(_0x9799e2[_0x95b8('0x30')]){delete _0x9799e2[_0x95b8('0x30')];}_0x47fc46[_0x95b8('0x26')](_0x41d270)[_0x95b8('0x31')](_0x9799e2);};}exports[_0x95b8('0x32')]=function(_0x37799e,_0x17dc48){var _0x479cd0={},_0x48625c={},_0x43e170={'count':0x0,'rows':[]};var _0x4df9bc=_[_0x95b8('0x33')](db[_0x95b8('0x34')][_0x95b8('0x35')],function(_0x2442a6){return{'name':_0x2442a6[_0x95b8('0x36')],'type':_0x2442a6[_0x95b8('0x37')][_0x95b8('0x38')]};});_0x48625c['model']=_['map'](_0x4df9bc,_0x95b8('0x30'));_0x48625c[_0x95b8('0x39')]=_[_0x95b8('0x3a')](_0x37799e[_0x95b8('0x39')]);_0x48625c[_0x95b8('0x3b')]=_['intersection'](_0x48625c[_0x95b8('0x3c')],_0x48625c['query']);_0x479cd0['attributes']=_['intersection'](_0x48625c[_0x95b8('0x3c')],qs[_0x95b8('0x3d')](_0x37799e[_0x95b8('0x39')][_0x95b8('0x3d')]));_0x479cd0['attributes']=_0x479cd0[_0x95b8('0x3e')]['length']?_0x479cd0[_0x95b8('0x3e')]:_0x48625c['model'];if(!_0x37799e[_0x95b8('0x39')][_0x95b8('0x3f')](_0x95b8('0x40'))){_0x479cd0[_0x95b8('0x41')]=qs[_0x95b8('0x41')](_0x37799e[_0x95b8('0x39')][_0x95b8('0x41')]);_0x479cd0[_0x95b8('0x29')]=qs[_0x95b8('0x29')](_0x37799e['query'][_0x95b8('0x29')]);}_0x479cd0['order']=qs[_0x95b8('0x42')](_0x37799e[_0x95b8('0x39')][_0x95b8('0x42')]);_0x479cd0[_0x95b8('0x43')]=qs['filters'](_[_0x95b8('0x44')](_0x37799e['query'],_0x48625c[_0x95b8('0x3b')]),_0x4df9bc);if(_0x37799e[_0x95b8('0x39')][_0x95b8('0x45')]){_0x479cd0['where']=_[_0x95b8('0x46')](_0x479cd0[_0x95b8('0x43')],{'$or':_[_0x95b8('0x33')](_0x4df9bc,function(_0x250720){if(_0x250720['type']!==_0x95b8('0x47')){var _0x4cb1d5={};_0x4cb1d5[_0x250720[_0x95b8('0x30')]]={'$like':'%'+_0x37799e[_0x95b8('0x39')][_0x95b8('0x45')]+'%'};return _0x4cb1d5;}})});}_0x479cd0=_[_0x95b8('0x46')]({},_0x479cd0,_0x37799e[_0x95b8('0x48')]);var _0x4fd614={'where':_0x479cd0[_0x95b8('0x43')]};return db[_0x95b8('0x34')][_0x95b8('0x2b')](_0x4fd614)[_0x95b8('0x1b')](function(_0x30bc1a){_0x43e170[_0x95b8('0x2b')]=_0x30bc1a;if(_0x37799e[_0x95b8('0x39')][_0x95b8('0x49')]){_0x479cd0[_0x95b8('0x4a')]=[{'all':!![]}];}return db['WhatsappMessage'][_0x95b8('0x4b')](_0x479cd0);})[_0x95b8('0x1b')](function(_0x389bae){_0x43e170[_0x95b8('0x4c')]=_0x389bae;return _0x43e170;})[_0x95b8('0x1b')](respondWithFilteredResult(_0x17dc48,_0x479cd0))[_0x95b8('0x4d')](handleError(_0x17dc48,null));};exports[_0x95b8('0x4e')]=function(_0x55cf29,_0x302d6c){var _0x33660e={'raw':!![],'where':{'id':_0x55cf29[_0x95b8('0x4f')]['id']}},_0x5e0261={};_0x5e0261[_0x95b8('0x3c')]=_[_0x95b8('0x3a')](db[_0x95b8('0x34')][_0x95b8('0x35')]);_0x5e0261['query']=_[_0x95b8('0x3a')](_0x55cf29[_0x95b8('0x39')]);_0x5e0261[_0x95b8('0x3b')]=_[_0x95b8('0x50')](_0x5e0261['model'],_0x5e0261['query']);_0x33660e[_0x95b8('0x3e')]=_['intersection'](_0x5e0261[_0x95b8('0x3c')],qs[_0x95b8('0x3d')](_0x55cf29[_0x95b8('0x39')]['fields']));_0x33660e[_0x95b8('0x3e')]=_0x33660e['attributes'][_0x95b8('0x51')]?_0x33660e[_0x95b8('0x3e')]:_0x5e0261[_0x95b8('0x3c')];if(_0x55cf29[_0x95b8('0x39')][_0x95b8('0x49')]){_0x33660e['include']=[{'all':!![]}];}_0x33660e=_[_0x95b8('0x46')]({},_0x33660e,_0x55cf29[_0x95b8('0x48')]);return db[_0x95b8('0x34')][_0x95b8('0x52')](_0x33660e)[_0x95b8('0x1b')](handleEntityNotFound(_0x302d6c,null))[_0x95b8('0x1b')](respondWithResult(_0x302d6c,null))[_0x95b8('0x4d')](handleError(_0x302d6c,null));};exports['create']=function(_0x137581,_0x2f7b57){return db['WhatsappMessage']['create'](_0x137581[_0x95b8('0x53')],{})[_0x95b8('0x1b')](respondWithResult(_0x2f7b57,0xc9))[_0x95b8('0x4d')](handleError(_0x2f7b57,null));};exports[_0x95b8('0x2e')]=function(_0x3e1eda,_0xa30295){if(_0x3e1eda[_0x95b8('0x53')]['id']){delete _0x3e1eda[_0x95b8('0x53')]['id'];}return db[_0x95b8('0x34')][_0x95b8('0x52')]({'where':{'id':_0x3e1eda[_0x95b8('0x4f')]['id']}})[_0x95b8('0x1b')](handleEntityNotFound(_0xa30295,null))[_0x95b8('0x1b')](saveUpdates(_0x3e1eda[_0x95b8('0x53')],null))[_0x95b8('0x1b')](respondWithResult(_0xa30295,null))[_0x95b8('0x4d')](handleError(_0xa30295,null));};exports[_0x95b8('0x54')]=function(_0xf4b4c,_0x487de4){return db[_0x95b8('0x34')][_0x95b8('0x52')]({'where':{'id':_0xf4b4c[_0x95b8('0x4f')]['id']}})[_0x95b8('0x1b')](handleEntityNotFound(_0x487de4,null))[_0x95b8('0x1b')](removeEntity(_0x487de4,null))['catch'](handleError(_0x487de4,null));};exports['describe']=function(_0x17e18b,_0x12a385){return db[_0x95b8('0x34')][_0x95b8('0x55')]()['then'](respondWithResult(_0x12a385,null))[_0x95b8('0x4d')](handleError(_0x12a385,null));};var interaction_log=require(_0x95b8('0x56'))(_0x95b8('0x57'));exports[_0x95b8('0x58')]=function(_0x4aaeb7,_0x1dddaa,_0x5be326){var _0x544eb6={'agent':{},'channel':_0x95b8('0x59')};if(_0x4aaeb7[_0x95b8('0x53')]['id']){delete _0x4aaeb7['body']['id'];}_0x4aaeb7[_0x95b8('0x53')]['read']=!![];_0x4aaeb7[_0x95b8('0x53')][_0x95b8('0x5a')]=moment()[_0x95b8('0x5b')]('YYYY-MM-DD\x20HH:mm:ss');_0x4aaeb7[_0x95b8('0x53')][_0x95b8('0x5c')]=_0x4aaeb7[_0x95b8('0x53')][_0x95b8('0x5c')]||_0x4aaeb7['user']['id'];_0x544eb6[_0x95b8('0x5d')]['id']=_0x4aaeb7['body']['UserId'];return db[_0x95b8('0x34')][_0x95b8('0x52')]({'where':{'id':_0x4aaeb7[_0x95b8('0x4f')]['id'],'UserId':null}})[_0x95b8('0x1b')](handleEntityNotFound(_0x1dddaa,null))[_0x95b8('0x1b')](saveUpdates(_0x4aaeb7[_0x95b8('0x53')],null))['then'](function(_0x23ca7e){if(_0x23ca7e){_0x544eb6[_0x95b8('0x22')]=_0x23ca7e['get']({'plain':!![]});return db[_0x95b8('0x5e')][_0x95b8('0x52')]({'where':{'id':_0x23ca7e[_0x95b8('0x5f')]}});}return null;})[_0x95b8('0x1b')](handleEntityNotFound(_0x1dddaa,null))[_0x95b8('0x1b')](function(_0x36766d){if(_0x36766d){return _0x36766d[_0x95b8('0x2e')]({'UserId':_0x4aaeb7['body'][_0x95b8('0x5c')],'read1stAt':_[_0x95b8('0x60')](_0x36766d[_0x95b8('0x61')])?moment()['format'](_0x95b8('0x62')):undefined});}return null;})[_0x95b8('0x1b')](function(_0x375f0a){if(_0x375f0a){_0x544eb6[_0x95b8('0x63')]=_0x375f0a[_0x95b8('0x64')]({'plain':!![]});interaction_log[_0x95b8('0x23')](_0x95b8('0x65'),_0x4aaeb7[_0x95b8('0x66')]['id'],_0x4aaeb7[_0x95b8('0x66')][_0x95b8('0x30')],_0x4aaeb7[_0x95b8('0x66')][_0x95b8('0x67')],_0x544eb6[_0x95b8('0x63')]['id'],_0x4aaeb7[_0x95b8('0x53')]?JSON['stringify'](_0x4aaeb7[_0x95b8('0x53')]):'null');return respondWithRpcPromise('AcceptMessage','acceptMessage',_0x544eb6);}return null;})['then'](function(_0x71a903){var _0x57b143='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x71a903[_0x95b8('0x22')][_0x95b8('0x68')];return db[_0x95b8('0x69')]['query'](_0x57b143,{'type':db[_0x95b8('0x6a')][_0x95b8('0x6b')][_0x95b8('0x6c')],'raw':!![]})['then'](function(_0x5337c8){return _0x5337c8;});})['then'](function(_0x1c8661){if(_0x1c8661){_0x544eb6[_0x95b8('0x22')][_0x95b8('0x6d')]=_0x1c8661[0x0];if(!_0x4aaeb7['body'][_0x95b8('0x5c')])return;return db[_0x95b8('0x6e')][_0x95b8('0x52')]({'where':{'id':_0x4aaeb7['body'][_0x95b8('0x5c')],'role':_0x95b8('0x5d')},'attributes':['id',_0x95b8('0x30'),_0x95b8('0x6f'),_0x95b8('0x70'),_0x95b8('0x71')],'raw':!![]});}return null;})[_0x95b8('0x1b')](function(_0x10eccd){if(!_0x10eccd)return null;_0x544eb6['message'][_0x95b8('0x5d')]=_0x10eccd;return _0x544eb6;})['then'](function(_0x1ee123){if(_0x1ee123){if(_0x4aaeb7[_0x95b8('0x53')][_0x95b8('0x72')]){_0x544eb6[_0x95b8('0x22')]['interface']=util[_0x95b8('0x5b')]('SIP/%s',_0x4aaeb7[_0x95b8('0x66')][_0x95b8('0x30')]);_0x544eb6[_0x95b8('0x22')]['channel']=_0x544eb6['channel'];_0x544eb6['message'][_0x95b8('0x73')]=_0x544eb6[_0x95b8('0x74')];_0x544eb6[_0x95b8('0x22')][_0x95b8('0x75')]=_0x95b8('0x58');return respondWithRpcPromise('EventManager',_0x95b8('0x76'),{'event':_0x95b8('0x77'),'message':_0x544eb6['message']},client9002)[_0x95b8('0x1b')](function(){return _0x544eb6;});}return _0x544eb6;}return null;})[_0x95b8('0x1b')](respondWithResult(_0x1dddaa,null))['catch'](handleError(_0x1dddaa,null));};var interaction_log=require(_0x95b8('0x56'))(_0x95b8('0x57'));exports[_0x95b8('0x78')]=function(_0x1af6da,_0x205c2b,_0x56bf17){var _0x50a788={'agent':{},'channel':_0x95b8('0x59')};if(_0x1af6da[_0x95b8('0x53')]['id']){delete _0x1af6da['body']['id'];}_0x1af6da[_0x95b8('0x53')][_0x95b8('0x5c')]=_0x1af6da[_0x95b8('0x53')][_0x95b8('0x5c')]||_0x1af6da['user']['id'];_0x50a788['agent']['id']=_0x1af6da[_0x95b8('0x53')][_0x95b8('0x5c')];return db[_0x95b8('0x34')][_0x95b8('0x52')]({'where':{'id':_0x1af6da[_0x95b8('0x4f')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x205c2b,null))[_0x95b8('0x1b')](function(_0x52d9a5){if(_0x52d9a5){_0x50a788[_0x95b8('0x22')]=_0x52d9a5[_0x95b8('0x64')]({'plain':!![]});return db[_0x95b8('0x5e')][_0x95b8('0x52')]({'where':{'id':_0x52d9a5['WhatsappInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x205c2b,null))[_0x95b8('0x1b')](function(_0x27a324){if(_0x27a324){_0x50a788['interaction']=_0x27a324['get']({'plain':!![]});interaction_log['info'](_0x95b8('0x79'),_0x1af6da['user']['id'],_0x1af6da[_0x95b8('0x66')][_0x95b8('0x30')],_0x1af6da[_0x95b8('0x66')][_0x95b8('0x67')],_0x50a788[_0x95b8('0x63')]['id'],_0x1af6da[_0x95b8('0x53')]?JSON['stringify'](_0x1af6da[_0x95b8('0x53')]):_0x95b8('0x7a'));return respondWithRpcPromise(_0x95b8('0x7b'),'rejectMessage',_0x50a788);}return null;})[_0x95b8('0x1b')](function(_0x111e05){var _0x5e3738='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x111e05[_0x95b8('0x22')][_0x95b8('0x68')];return db['sequelize']['query'](_0x5e3738,{'type':db['Sequelize'][_0x95b8('0x6b')]['SELECT'],'raw':!![]})['then'](function(_0x2b068c){return _0x2b068c;});})[_0x95b8('0x1b')](function(_0x2f6a01){if(_0x2f6a01){_0x50a788[_0x95b8('0x22')][_0x95b8('0x6d')]=_0x2f6a01[0x0];if(!_0x1af6da[_0x95b8('0x53')][_0x95b8('0x5c')])return;return db[_0x95b8('0x6e')][_0x95b8('0x52')]({'where':{'id':_0x1af6da[_0x95b8('0x53')][_0x95b8('0x5c')],'role':_0x95b8('0x5d')},'attributes':['id',_0x95b8('0x30'),'fullname','email',_0x95b8('0x71')],'raw':!![]});}return null;})[_0x95b8('0x1b')](function(_0x4e8138){if(!_0x4e8138)return null;_0x50a788['message'][_0x95b8('0x5d')]=_0x4e8138;return _0x50a788;})[_0x95b8('0x1b')](function(_0x50e62d){if(_0x50e62d){_0x50e62d[_0x95b8('0x22')][_0x95b8('0x7c')]=util[_0x95b8('0x5b')](_0x95b8('0x7d'),_0x1af6da['user'][_0x95b8('0x30')]);_0x50e62d[_0x95b8('0x22')]['channel']=_0x50a788[_0x95b8('0x74')];_0x50e62d[_0x95b8('0x22')][_0x95b8('0x73')]=_0x50a788[_0x95b8('0x74')];_0x50e62d[_0x95b8('0x22')][_0x95b8('0x75')]=_0x95b8('0x78');respondWithRpcPromise(_0x95b8('0x76'),'EventManager',{'event':'rejectmessage','message':_0x50e62d[_0x95b8('0x22')]},client9002);return _0x50a788;}return null;})[_0x95b8('0x1b')](respondWithResult(_0x205c2b,null))[_0x95b8('0x4d')](handleError(_0x205c2b,null));};exports['status']=function(_0x56cfc6,_0x59f252,_0x4a8e65){if(_0x56cfc6['body']['id']){delete _0x56cfc6[_0x95b8('0x53')]['id'];}var _0x11cb8a;return db[_0x95b8('0x34')][_0x95b8('0x52')]({'where':{'id':_0x56cfc6[_0x95b8('0x4f')]['id']}})['then'](handleEntityNotFound(_0x59f252,null))['then'](function(_0x5c7eb1){if(_0x5c7eb1){_0x11cb8a=_0x5c7eb1;return db[_0x95b8('0x7e')]['find']({'where':{'id':_0x5c7eb1[_0x95b8('0x7f')]}});}})[_0x95b8('0x1b')](handleEntityNotFound(_0x59f252,null))[_0x95b8('0x1b')](function(_0x34ed5c){if(_0x34ed5c){logger[_0x95b8('0x1e')](_0x95b8('0x80'),_0x95b8('0x26'),_0x95b8('0x81'),_0x34ed5c[_0x95b8('0x37')],util[_0x95b8('0x82')](_0x56cfc6[_0x95b8('0x53')],{'showHidden':![],'depth':null}));switch(_0x34ed5c[_0x95b8('0x37')]){case'twilio':if(_0x56cfc6[_0x95b8('0x53')]['MessageSid']&&_0x56cfc6[_0x95b8('0x53')][_0x95b8('0x83')]===_0x11cb8a['messageId']&&_0x56cfc6['body'][_0x95b8('0x84')]&&_0x56cfc6[_0x95b8('0x53')][_0x95b8('0x84')]==='read'){return _0x11cb8a[_0x95b8('0x2e')]({'read':!![]});}else{logger[_0x95b8('0x21')](_0x95b8('0x85'),'status','twilio',util[_0x95b8('0x82')](_0x56cfc6[_0x95b8('0x53')],{'showHidden':![],'depth':null}));}break;}return _0x11cb8a;}})[_0x95b8('0x1b')](respondWithResult(_0x59f252,null))['catch'](handleError(_0x59f252,null));};
\ No newline at end of file
+var _0x1805=['Sequelize','QueryTypes','SELECT','contact','fullname','interface','SIP/%s','channel','event','EventManager','acceptmessage','whatsapp-interactions','whatsapp','WhatsappInteractionId','RejectMessage','rejectMessage','ContactId','email','WhatsappAccount','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','inspect','MessageSid','messageId','MessageStatus','twilio','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./whatsappMessage.socket','client','http','request','then','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','status','end','json','offset','limit','undefined','count','set','apply','reject','save','destroy','sendStatus','stack','name','send','index','map','WhatsappMessage','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','include','find','create','body','update','params','describe','accept','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','get','WhatsappInteraction','isNil','read1stAt','format','interaction','info','[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'];(function(_0x12e073,_0x4d43db){var _0x267748=function(_0x381284){while(--_0x381284){_0x12e073['push'](_0x12e073['shift']());}};_0x267748(++_0x4d43db);}(_0x1805,0x1bf));var _0x5180=function(_0x479bf2,_0x443252){_0x479bf2=_0x479bf2-0x0;var _0x21fec8=_0x1805[_0x479bf2];return _0x21fec8;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5180('0x0'));var zipdir=require(_0x5180('0x1'));var jsonpatch=require(_0x5180('0x2'));var rp=require('request-promise');var moment=require(_0x5180('0x3'));var BPromise=require(_0x5180('0x4'));var Mustache=require(_0x5180('0x5'));var util=require(_0x5180('0x6'));var path=require(_0x5180('0x7'));var sox=require(_0x5180('0x8'));var csv=require(_0x5180('0x9'));var ejs=require(_0x5180('0xa'));var fs=require('fs');var fs_extra=require(_0x5180('0xb'));var _=require(_0x5180('0xc'));var squel=require(_0x5180('0xd'));var crypto=require(_0x5180('0xe'));var jsforce=require(_0x5180('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x5180('0x9'));var querystring=require(_0x5180('0x10'));var Papa=require(_0x5180('0x11'));var Redis=require(_0x5180('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x5180('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5180('0x14'));var logger=require(_0x5180('0x15'))(_0x5180('0x16'));var utils=require('../../config/utils');var config=require(_0x5180('0x17'));var licenseUtil=require(_0x5180('0x18'));var db=require(_0x5180('0x19'))['db'];config[_0x5180('0x1a')]=_[_0x5180('0x1b')](config[_0x5180('0x1a')],{'host':_0x5180('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x5180('0x1a')]));require(_0x5180('0x1d'))['register'](socket);var jayson=require('jayson/promise');var client=jayson[_0x5180('0x1e')][_0x5180('0x1f')]({'port':0x232c});var client9002=jayson[_0x5180('0x1e')][_0x5180('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x3476e3,_0x48e509,_0x3a3980,_0x54df19){return new BPromise(function(_0x5a911c,_0x31a5f8){var _0x57aecb=_0x54df19||client;return _0x57aecb[_0x5180('0x20')](_0x3476e3,_0x3a3980)[_0x5180('0x21')](function(_0x188c5f){logger['info'](_0x5180('0x22'),_0x48e509,_0x5180('0x23'));logger[_0x5180('0x24')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x48e509,'request\x20sent',JSON[_0x5180('0x25')](_0x188c5f));if(_0x188c5f[_0x5180('0x26')]){if(_0x188c5f['error'][_0x5180('0x27')]===0x1f4){logger['error'](_0x5180('0x22'),_0x48e509,_0x188c5f[_0x5180('0x26')][_0x5180('0x28')]);return _0x31a5f8(_0x188c5f[_0x5180('0x26')][_0x5180('0x28')]);}logger[_0x5180('0x26')](_0x5180('0x22'),_0x48e509,_0x188c5f['error']['message']);return _0x5a911c(_0x188c5f[_0x5180('0x26')][_0x5180('0x28')]);}else{logger['info'](_0x5180('0x22'),_0x48e509,_0x5180('0x23'));_0x5a911c(_0x188c5f[_0x5180('0x29')][_0x5180('0x28')]);}})[_0x5180('0x2a')](function(_0x462717){logger['error']('WhatsappMessage,\x20%s,\x20%s',_0x48e509,_0x462717);_0x31a5f8(_0x462717);});});}function respondWithStatusCode(_0x531e65,_0x5a875e){_0x5a875e=_0x5a875e||0xcc;return function(_0x1442dd){if(_0x1442dd){return _0x531e65['sendStatus'](_0x5a875e);}return _0x531e65[_0x5180('0x2b')](_0x5a875e)[_0x5180('0x2c')]();};}function respondWithResult(_0x373416,_0x3401b1){_0x3401b1=_0x3401b1||0xc8;return function(_0x291e06){if(_0x291e06){return _0x373416['status'](_0x3401b1)[_0x5180('0x2d')](_0x291e06);}};}function respondWithFilteredResult(_0x1b2c48,_0x568d4d){return function(_0x4aa3f5){if(_0x4aa3f5){var _0x34c011=typeof _0x568d4d[_0x5180('0x2e')]==='undefined'&&typeof _0x568d4d[_0x5180('0x2f')]===_0x5180('0x30');var _0xd37a69=_0x4aa3f5[_0x5180('0x31')];var _0x4daa21=_0x34c011?0x0:_0x568d4d[_0x5180('0x2e')];var _0x4d8ec4=_0x34c011?_0x4aa3f5['count']:_0x568d4d[_0x5180('0x2e')]+_0x568d4d[_0x5180('0x2f')];var _0x5eb532;if(_0x4d8ec4>=_0xd37a69){_0x4d8ec4=_0xd37a69;_0x5eb532=0xc8;}else{_0x5eb532=0xce;}_0x1b2c48['status'](_0x5eb532);return _0x1b2c48[_0x5180('0x32')]('Content-Range',_0x4daa21+'-'+_0x4d8ec4+'/'+_0xd37a69)[_0x5180('0x2d')](_0x4aa3f5);}return null;};}function patchUpdates(_0x7341be){return function(_0x4771b2){try{jsonpatch[_0x5180('0x33')](_0x4771b2,_0x7341be,!![]);}catch(_0x2ffe7b){return BPromise[_0x5180('0x34')](_0x2ffe7b);}return _0x4771b2[_0x5180('0x35')]();};}function saveUpdates(_0x350748,_0x46628b){return function(_0x4c36b8){if(_0x4c36b8){return _0x4c36b8['update'](_0x350748)[_0x5180('0x21')](function(_0x428954){return _0x428954;});}return null;};}function removeEntity(_0x2f581a,_0x285dad){return function(_0x2e908b){if(_0x2e908b){return _0x2e908b[_0x5180('0x36')]()[_0x5180('0x21')](function(){_0x2f581a[_0x5180('0x2b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x471859,_0x42bb4e){return function(_0x4666c5){if(!_0x4666c5){_0x471859[_0x5180('0x37')](0x194);}return _0x4666c5;};}function handleError(_0x4fc1cf,_0x471780){_0x471780=_0x471780||0x1f4;return function(_0xb73f1f){logger[_0x5180('0x26')](_0xb73f1f[_0x5180('0x38')]);if(_0xb73f1f[_0x5180('0x39')]){delete _0xb73f1f[_0x5180('0x39')];}_0x4fc1cf[_0x5180('0x2b')](_0x471780)[_0x5180('0x3a')](_0xb73f1f);};}exports[_0x5180('0x3b')]=function(_0x1f9f6b,_0x3218e9){var _0x1c229f={},_0xede3e0={},_0x5cc742={'count':0x0,'rows':[]};var _0xc4687=_[_0x5180('0x3c')](db[_0x5180('0x3d')][_0x5180('0x3e')],function(_0x564ab3){return{'name':_0x564ab3[_0x5180('0x3f')],'type':_0x564ab3[_0x5180('0x40')][_0x5180('0x41')]};});_0xede3e0[_0x5180('0x42')]=_[_0x5180('0x3c')](_0xc4687,_0x5180('0x39'));_0xede3e0[_0x5180('0x43')]=_['keys'](_0x1f9f6b[_0x5180('0x43')]);_0xede3e0[_0x5180('0x44')]=_[_0x5180('0x45')](_0xede3e0[_0x5180('0x42')],_0xede3e0['query']);_0x1c229f[_0x5180('0x46')]=_['intersection'](_0xede3e0[_0x5180('0x42')],qs[_0x5180('0x47')](_0x1f9f6b['query'][_0x5180('0x47')]));_0x1c229f[_0x5180('0x46')]=_0x1c229f[_0x5180('0x46')][_0x5180('0x48')]?_0x1c229f[_0x5180('0x46')]:_0xede3e0[_0x5180('0x42')];if(!_0x1f9f6b[_0x5180('0x43')][_0x5180('0x49')]('nolimit')){_0x1c229f[_0x5180('0x2f')]=qs['limit'](_0x1f9f6b[_0x5180('0x43')][_0x5180('0x2f')]);_0x1c229f[_0x5180('0x2e')]=qs[_0x5180('0x2e')](_0x1f9f6b[_0x5180('0x43')][_0x5180('0x2e')]);}_0x1c229f[_0x5180('0x4a')]=qs[_0x5180('0x4b')](_0x1f9f6b[_0x5180('0x43')][_0x5180('0x4b')]);_0x1c229f[_0x5180('0x4c')]=qs[_0x5180('0x44')](_[_0x5180('0x4d')](_0x1f9f6b[_0x5180('0x43')],_0xede3e0[_0x5180('0x44')]),_0xc4687);if(_0x1f9f6b['query'][_0x5180('0x4e')]){_0x1c229f['where']=_[_0x5180('0x4f')](_0x1c229f[_0x5180('0x4c')],{'$or':_[_0x5180('0x3c')](_0xc4687,function(_0x24912a){if(_0x24912a[_0x5180('0x40')]!==_0x5180('0x50')){var _0xa9aaf9={};_0xa9aaf9[_0x24912a['name']]={'$like':'%'+_0x1f9f6b[_0x5180('0x43')][_0x5180('0x4e')]+'%'};return _0xa9aaf9;}})});}_0x1c229f=_[_0x5180('0x4f')]({},_0x1c229f,_0x1f9f6b[_0x5180('0x51')]);var _0xdc067e={'where':_0x1c229f[_0x5180('0x4c')]};return db[_0x5180('0x3d')]['count'](_0xdc067e)[_0x5180('0x21')](function(_0x120515){_0x5cc742[_0x5180('0x31')]=_0x120515;if(_0x1f9f6b['query'][_0x5180('0x52')]){_0x1c229f['include']=[{'all':!![]}];}return db[_0x5180('0x3d')][_0x5180('0x53')](_0x1c229f);})['then'](function(_0x4071d7){_0x5cc742[_0x5180('0x54')]=_0x4071d7;return _0x5cc742;})[_0x5180('0x21')](respondWithFilteredResult(_0x3218e9,_0x1c229f))[_0x5180('0x2a')](handleError(_0x3218e9,null));};exports[_0x5180('0x55')]=function(_0x368d23,_0x5ab43f){var _0x3e10aa={'raw':!![],'where':{'id':_0x368d23['params']['id']}},_0x538495={};_0x538495['model']=_['keys'](db[_0x5180('0x3d')][_0x5180('0x3e')]);_0x538495['query']=_['keys'](_0x368d23[_0x5180('0x43')]);_0x538495[_0x5180('0x44')]=_[_0x5180('0x45')](_0x538495[_0x5180('0x42')],_0x538495[_0x5180('0x43')]);_0x3e10aa['attributes']=_[_0x5180('0x45')](_0x538495[_0x5180('0x42')],qs[_0x5180('0x47')](_0x368d23['query'][_0x5180('0x47')]));_0x3e10aa[_0x5180('0x46')]=_0x3e10aa['attributes']['length']?_0x3e10aa[_0x5180('0x46')]:_0x538495[_0x5180('0x42')];if(_0x368d23[_0x5180('0x43')][_0x5180('0x52')]){_0x3e10aa[_0x5180('0x56')]=[{'all':!![]}];}_0x3e10aa=_[_0x5180('0x4f')]({},_0x3e10aa,_0x368d23['options']);return db['WhatsappMessage'][_0x5180('0x57')](_0x3e10aa)[_0x5180('0x21')](handleEntityNotFound(_0x5ab43f,null))[_0x5180('0x21')](respondWithResult(_0x5ab43f,null))[_0x5180('0x2a')](handleError(_0x5ab43f,null));};exports[_0x5180('0x58')]=function(_0x55b796,_0x31c0e6){return db[_0x5180('0x3d')][_0x5180('0x58')](_0x55b796[_0x5180('0x59')],{})[_0x5180('0x21')](respondWithResult(_0x31c0e6,0xc9))[_0x5180('0x2a')](handleError(_0x31c0e6,null));};exports[_0x5180('0x5a')]=function(_0x3cfd5a,_0x80dd15){if(_0x3cfd5a[_0x5180('0x59')]['id']){delete _0x3cfd5a['body']['id'];}return db['WhatsappMessage'][_0x5180('0x57')]({'where':{'id':_0x3cfd5a[_0x5180('0x5b')]['id']}})['then'](handleEntityNotFound(_0x80dd15,null))[_0x5180('0x21')](saveUpdates(_0x3cfd5a[_0x5180('0x59')],null))[_0x5180('0x21')](respondWithResult(_0x80dd15,null))[_0x5180('0x2a')](handleError(_0x80dd15,null));};exports[_0x5180('0x36')]=function(_0xe573c1,_0x53759e){return db[_0x5180('0x3d')][_0x5180('0x57')]({'where':{'id':_0xe573c1[_0x5180('0x5b')]['id']}})[_0x5180('0x21')](handleEntityNotFound(_0x53759e,null))[_0x5180('0x21')](removeEntity(_0x53759e,null))[_0x5180('0x2a')](handleError(_0x53759e,null));};exports[_0x5180('0x5c')]=function(_0x4ca7b8,_0x95e80){return db[_0x5180('0x3d')][_0x5180('0x5c')]()[_0x5180('0x21')](respondWithResult(_0x95e80,null))[_0x5180('0x2a')](handleError(_0x95e80,null));};var interaction_log=require(_0x5180('0x15'))('whatsapp-interactions');exports[_0x5180('0x5d')]=function(_0x441e7a,_0x533414,_0x10d954){var _0x45cf9d={'agent':{},'channel':'whatsapp'};if(_0x441e7a[_0x5180('0x59')]['id']){delete _0x441e7a[_0x5180('0x59')]['id'];}_0x441e7a[_0x5180('0x59')][_0x5180('0x5e')]=!![];_0x441e7a[_0x5180('0x59')][_0x5180('0x5f')]=moment()['format'](_0x5180('0x60'));_0x441e7a[_0x5180('0x59')][_0x5180('0x61')]=_0x441e7a[_0x5180('0x59')][_0x5180('0x61')]||_0x441e7a[_0x5180('0x62')]['id'];_0x45cf9d[_0x5180('0x63')]['id']=_0x441e7a[_0x5180('0x59')][_0x5180('0x61')];return db[_0x5180('0x3d')][_0x5180('0x57')]({'where':{'id':_0x441e7a[_0x5180('0x5b')]['id'],'UserId':null}})[_0x5180('0x21')](handleEntityNotFound(_0x533414,null))[_0x5180('0x21')](saveUpdates(_0x441e7a[_0x5180('0x59')],null))[_0x5180('0x21')](function(_0x181649){if(_0x181649){_0x45cf9d[_0x5180('0x28')]=_0x181649[_0x5180('0x64')]({'plain':!![]});return db[_0x5180('0x65')][_0x5180('0x57')]({'where':{'id':_0x181649['WhatsappInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x533414,null))[_0x5180('0x21')](function(_0x5ca77b){if(_0x5ca77b){return _0x5ca77b[_0x5180('0x5a')]({'UserId':_0x441e7a[_0x5180('0x59')][_0x5180('0x61')],'read1stAt':_[_0x5180('0x66')](_0x5ca77b[_0x5180('0x67')])?moment()[_0x5180('0x68')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})['then'](function(_0x25d3c1){if(_0x25d3c1){_0x45cf9d[_0x5180('0x69')]=_0x25d3c1[_0x5180('0x64')]({'plain':!![]});interaction_log[_0x5180('0x6a')](_0x5180('0x6b'),_0x441e7a[_0x5180('0x62')]['id'],_0x441e7a[_0x5180('0x62')]['name'],_0x441e7a[_0x5180('0x62')][_0x5180('0x6c')],_0x45cf9d[_0x5180('0x69')]['id'],_0x441e7a[_0x5180('0x59')]?JSON[_0x5180('0x25')](_0x441e7a[_0x5180('0x59')]):_0x5180('0x6d'));return respondWithRpcPromise(_0x5180('0x6e'),_0x5180('0x6f'),_0x45cf9d);}return null;})[_0x5180('0x21')](function(_0x449aae){var _0x1e29b5=_0x5180('0x70')+_0x449aae[_0x5180('0x28')]['ContactId'];return db['sequelize'][_0x5180('0x43')](_0x1e29b5,{'type':db[_0x5180('0x71')][_0x5180('0x72')][_0x5180('0x73')],'raw':!![]})[_0x5180('0x21')](function(_0x42fa77){return _0x42fa77;});})['then'](function(_0x30a022){if(_0x30a022){_0x45cf9d['message'][_0x5180('0x74')]=_0x30a022[0x0];if(!_0x441e7a[_0x5180('0x59')][_0x5180('0x61')])return;return db['User'][_0x5180('0x57')]({'where':{'id':_0x441e7a[_0x5180('0x59')][_0x5180('0x61')],'role':'agent'},'attributes':['id',_0x5180('0x39'),_0x5180('0x75'),'email','internal'],'raw':!![]});}return null;})[_0x5180('0x21')](function(_0x1f8072){if(!_0x1f8072)return null;_0x45cf9d['message'][_0x5180('0x63')]=_0x1f8072;return _0x45cf9d;})[_0x5180('0x21')](function(_0x4edc48){if(_0x4edc48){if(_0x441e7a[_0x5180('0x59')]['manual']){_0x45cf9d['message'][_0x5180('0x76')]=util[_0x5180('0x68')](_0x5180('0x77'),_0x441e7a[_0x5180('0x62')]['name']);_0x45cf9d['message'][_0x5180('0x78')]=_0x45cf9d[_0x5180('0x78')];_0x45cf9d[_0x5180('0x28')][_0x5180('0x79')]='accept';return respondWithRpcPromise(_0x5180('0x7a'),'EventManager',{'event':_0x5180('0x7b'),'message':_0x45cf9d['message']},client9002)[_0x5180('0x21')](function(){return _0x45cf9d;});}return _0x45cf9d;}return null;})[_0x5180('0x21')](respondWithResult(_0x533414,null))[_0x5180('0x2a')](handleError(_0x533414,null));};var interaction_log=require('../../config/logger')(_0x5180('0x7c'));exports[_0x5180('0x34')]=function(_0x31b5af,_0x257a97,_0x1af601){var _0x1c37dc={'agent':{},'channel':_0x5180('0x7d')};if(_0x31b5af[_0x5180('0x59')]['id']){delete _0x31b5af[_0x5180('0x59')]['id'];}_0x31b5af[_0x5180('0x59')][_0x5180('0x61')]=_0x31b5af[_0x5180('0x59')][_0x5180('0x61')]||_0x31b5af[_0x5180('0x62')]['id'];_0x1c37dc[_0x5180('0x63')]['id']=_0x31b5af[_0x5180('0x59')][_0x5180('0x61')];return db[_0x5180('0x3d')][_0x5180('0x57')]({'where':{'id':_0x31b5af[_0x5180('0x5b')]['id'],'UserId':null}})[_0x5180('0x21')](handleEntityNotFound(_0x257a97,null))[_0x5180('0x21')](function(_0x108f49){if(_0x108f49){_0x1c37dc['message']=_0x108f49[_0x5180('0x64')]({'plain':!![]});return db['WhatsappInteraction'][_0x5180('0x57')]({'where':{'id':_0x108f49[_0x5180('0x7e')]}});}return null;})[_0x5180('0x21')](handleEntityNotFound(_0x257a97,null))[_0x5180('0x21')](function(_0x4cf06b){if(_0x4cf06b){_0x1c37dc[_0x5180('0x69')]=_0x4cf06b[_0x5180('0x64')]({'plain':!![]});interaction_log[_0x5180('0x6a')]('[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x31b5af['user']['id'],_0x31b5af[_0x5180('0x62')][_0x5180('0x39')],_0x31b5af[_0x5180('0x62')]['role'],_0x1c37dc[_0x5180('0x69')]['id'],_0x31b5af[_0x5180('0x59')]?JSON[_0x5180('0x25')](_0x31b5af[_0x5180('0x59')]):_0x5180('0x6d'));return respondWithRpcPromise(_0x5180('0x7f'),_0x5180('0x80'),_0x1c37dc);}return null;})[_0x5180('0x21')](function(_0x5424d9){var _0x30ed74=_0x5180('0x70')+_0x5424d9[_0x5180('0x28')][_0x5180('0x81')];return db['sequelize'][_0x5180('0x43')](_0x30ed74,{'type':db[_0x5180('0x71')][_0x5180('0x72')][_0x5180('0x73')],'raw':!![]})['then'](function(_0x4f4906){return _0x4f4906;});})[_0x5180('0x21')](function(_0x16a0c3){if(_0x16a0c3){_0x1c37dc['message'][_0x5180('0x74')]=_0x16a0c3[0x0];if(!_0x31b5af[_0x5180('0x59')][_0x5180('0x61')])return;return db['User'][_0x5180('0x57')]({'where':{'id':_0x31b5af[_0x5180('0x59')][_0x5180('0x61')],'role':'agent'},'attributes':['id',_0x5180('0x39'),_0x5180('0x75'),_0x5180('0x82'),'internal'],'raw':!![]});}return null;})['then'](function(_0xe64c49){if(!_0xe64c49)return null;_0x1c37dc[_0x5180('0x28')]['agent']=_0xe64c49;return _0x1c37dc;})['then'](function(_0xf873b7){if(_0xf873b7){_0xf873b7[_0x5180('0x28')]['interface']=util[_0x5180('0x68')](_0x5180('0x77'),_0x31b5af['user'][_0x5180('0x39')]);_0xf873b7['message']['channel']=_0x1c37dc['channel'];_0xf873b7[_0x5180('0x28')][_0x5180('0x79')]=_0x5180('0x34');respondWithRpcPromise(_0x5180('0x7a'),'EventManager',{'event':'rejectmessage','message':_0xf873b7[_0x5180('0x28')]},client9002);return _0x1c37dc;}return null;})[_0x5180('0x21')](respondWithResult(_0x257a97,null))[_0x5180('0x2a')](handleError(_0x257a97,null));};exports[_0x5180('0x2b')]=function(_0x3085a1,_0xcc899d,_0x1860a5){if(_0x3085a1[_0x5180('0x59')]['id']){delete _0x3085a1[_0x5180('0x59')]['id'];}var _0x344847;return db[_0x5180('0x3d')][_0x5180('0x57')]({'where':{'id':_0x3085a1[_0x5180('0x5b')]['id']}})[_0x5180('0x21')](handleEntityNotFound(_0xcc899d,null))[_0x5180('0x21')](function(_0x59d05a){if(_0x59d05a){_0x344847=_0x59d05a;return db[_0x5180('0x83')][_0x5180('0x57')]({'where':{'id':_0x59d05a[_0x5180('0x84')]}});}})[_0x5180('0x21')](handleEntityNotFound(_0xcc899d,null))[_0x5180('0x21')](function(_0x3cd38b){if(_0x3cd38b){logger['debug'](_0x5180('0x85'),_0x5180('0x2b'),_0x5180('0x86'),_0x3cd38b[_0x5180('0x40')],util[_0x5180('0x87')](_0x3085a1[_0x5180('0x59')],{'showHidden':![],'depth':null}));switch(_0x3cd38b[_0x5180('0x40')]){case'twilio':if(_0x3085a1[_0x5180('0x59')][_0x5180('0x88')]&&_0x3085a1['body']['MessageSid']===_0x344847[_0x5180('0x89')]&&_0x3085a1[_0x5180('0x59')][_0x5180('0x8a')]&&_0x3085a1['body'][_0x5180('0x8a')]===_0x5180('0x5e')){return _0x344847[_0x5180('0x5a')]({'read':!![]});}else{logger[_0x5180('0x26')]('WhatsappAccount,\x20%s,\x20%s,\x20%s','status',_0x5180('0x8b'),util[_0x5180('0x87')](_0x3085a1[_0x5180('0x59')],{'showHidden':![],'depth':null}));}break;}return _0x344847;}})[_0x5180('0x21')](respondWithResult(_0xcc899d,null))['catch'](handleError(_0xcc899d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa699=['setMaxListeners','save','update','remove','emit','hook','exports','events','../../mysqldb','WhatsappMessage'];(function(_0x465147,_0x240ccd){var _0x5449b5=function(_0x3d7dce){while(--_0x3d7dce){_0x465147['push'](_0x465147['shift']());}};_0x5449b5(++_0x240ccd);}(_0xa699,0x6b));var _0x9a69=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0xa699[_0x6131cd];return _0x47e916;};'use strict';var EventEmitter=require(_0x9a69('0x0'));var WhatsappMessage=require(_0x9a69('0x1'))['db'][_0x9a69('0x2')];var WhatsappMessageEvents=new EventEmitter();WhatsappMessageEvents[_0x9a69('0x3')](0x0);var events={'afterCreate':_0x9a69('0x4'),'afterUpdate':_0x9a69('0x5'),'afterDestroy':_0x9a69('0x6')};function emitEvent(_0x2d3e1f){return function(_0xadacc9,_0x3edccc,_0x143c4f){WhatsappMessageEvents[_0x9a69('0x7')](_0x2d3e1f+':'+_0xadacc9['id'],_0xadacc9);WhatsappMessageEvents[_0x9a69('0x7')](_0x2d3e1f,_0xadacc9);_0x143c4f(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappMessage[_0x9a69('0x8')](e,emitEvent(event));}}module[_0x9a69('0x9')]=WhatsappMessageEvents;
\ No newline at end of file
+var _0xbee3=['emit','hook','exports','../../mysqldb','save','update'];(function(_0x4da1f5,_0x288df6){var _0x332f4a=function(_0x3fff92){while(--_0x3fff92){_0x4da1f5['push'](_0x4da1f5['shift']());}};_0x332f4a(++_0x288df6);}(_0xbee3,0xd5));var _0x3bee=function(_0x589c4d,_0xd4a381){_0x589c4d=_0x589c4d-0x0;var _0xb1860=_0xbee3[_0x589c4d];return _0xb1860;};'use strict';var EventEmitter=require('events');var WhatsappMessage=require(_0x3bee('0x0'))['db']['WhatsappMessage'];var WhatsappMessageEvents=new EventEmitter();WhatsappMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x3bee('0x1'),'afterUpdate':_0x3bee('0x2'),'afterDestroy':'remove'};function emitEvent(_0x4b354b){return function(_0x1956c1,_0x1cf379,_0x507c6a){WhatsappMessageEvents[_0x3bee('0x3')](_0x4b354b+':'+_0x1956c1['id'],_0x1956c1);WhatsappMessageEvents[_0x3bee('0x3')](_0x4b354b,_0x1956c1);_0x507c6a(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappMessage[_0x3bee('0x4')](e,emitEvent(event));}}module[_0x3bee('0x5')]=WhatsappMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff6e=['messageId','fti_whatsapp_messages','FULLTEXT','models','toLowerCase','direction','out','secret','isNil','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','then','update','createdAt','catch','WhatsappAccount','WhatsappAccountId','type','twilio','accountSid','authToken','phone','messages','create','body','whatsapp:','remote','/api/whatsapp/messages/','/status?token=','token','sid','error','afterCreate','inspect','WhatsappMessage,\x20%s,\x20%s,\x20%s','finally','utf8mb4','utf8mb4_unicode_ci','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./whatsappMessage.attributes','exports','define','WhatsappMessage','whatsapp_messages'];(function(_0x3070dc,_0x40cf11){var _0x431489=function(_0x49bc2a){while(--_0x49bc2a){_0x3070dc['push'](_0x3070dc['shift']());}};_0x431489(++_0x40cf11);}(_0xff6e,0x131));var _0xeff6=function(_0x56e0e8,_0x16ef91){_0x56e0e8=_0x56e0e8-0x0;var _0x2dab50=_0xff6e[_0x56e0e8];return _0x2dab50;};'use strict';var _=require('lodash');var util=require(_0xeff6('0x0'));var logger=require(_0xeff6('0x1'))('api');var moment=require(_0xeff6('0x2'));var BPromise=require(_0xeff6('0x3'));var rp=require(_0xeff6('0x4'));var fs=require('fs');var path=require(_0xeff6('0x5'));var rimraf=require(_0xeff6('0x6'));var config=require(_0xeff6('0x7'));var attributes=require(_0xeff6('0x8'));module[_0xeff6('0x9')]=function(_0x5f5de1,_0x5aa5c5){return _0x5f5de1[_0xeff6('0xa')](_0xeff6('0xb'),attributes,{'tableName':_0xeff6('0xc'),'paranoid':![],'indexes':[{'name':_0xeff6('0xd'),'fields':[_0xeff6('0xd')]},{'name':_0xeff6('0xe'),'fields':['body'],'type':_0xeff6('0xf')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x1b7ac3,_0x3e6a50,_0x591548){var _0x2f3753=_0x5f5de1[_0xeff6('0x10')];var _0x189826=_0x1b7ac3['get']({'plain':!![]});if(_0x189826['direction'][_0xeff6('0x11')]()==='in'||_0x189826[_0xeff6('0x12')]['toLowerCase']()===_0xeff6('0x13')&&!_0x189826[_0xeff6('0x14')]&&!_[_0xeff6('0x15')](_0x189826[_0xeff6('0x16')])){_0x2f3753[_0xeff6('0x17')][_0xeff6('0x18')]({'where':{'id':_0x189826[_0xeff6('0x19')]}})[_0xeff6('0x1a')](function(_0xe6b127){if(_0xe6b127){_0xe6b127[_0xeff6('0x1b')]({'lastMsgAt':_0x189826[_0xeff6('0x1c')],'lastMsgDirection':_0x189826[_0xeff6('0x12')][_0xeff6('0x11')]()});}})[_0xeff6('0x1d')](function(_0x7848c2){console['error'](_0x7848c2);});}if(_0x189826['direction']===_0xeff6('0x13')&&!_0x189826[_0xeff6('0x14')]){var _0x279908;_0x2f3753[_0xeff6('0x1e')]['find']({'where':{'id':_0x189826[_0xeff6('0x1f')]},'raw':!![]})[_0xeff6('0x1a')](function(_0x1ab0ad){_0x279908=_0x1ab0ad;if(_0x279908&&_0x279908[_0xeff6('0x20')]){switch(_0x279908['type']){case _0xeff6('0x21'):var _0xcfff0a=require(_0xeff6('0x21'));if(_0x279908[_0xeff6('0x22')]&&_0x279908[_0xeff6('0x23')]&&_0x279908[_0xeff6('0x24')]){var _0x15a31a=new _0xcfff0a(_0x279908[_0xeff6('0x22')],_0x279908[_0xeff6('0x23')]);_0x15a31a[_0xeff6('0x25')][_0xeff6('0x26')]({'body':_0x189826[_0xeff6('0x27')],'to':_0xeff6('0x28')+_0x189826[_0xeff6('0x24')],'from':_0xeff6('0x28')+_0x279908[_0xeff6('0x24')],'statusCallback':_0x279908[_0xeff6('0x29')]+_0xeff6('0x2a')+_0x189826['id']+_0xeff6('0x2b')+_0x279908[_0xeff6('0x2c')]})[_0xeff6('0x1a')](function(_0x3b9554){if(_0x3b9554[_0xeff6('0x2d')]){return _0x1b7ac3[_0xeff6('0x1b')]({'messageId':_0x3b9554[_0xeff6('0x2d')]});}})[_0xeff6('0x1d')](function(_0x319bc6){logger[_0xeff6('0x2e')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0xeff6('0x2f'),_0xeff6('0x21'),util[_0xeff6('0x30')](_0x319bc6,{'showHidden':![],'depth':null}));});}else{logger[_0xeff6('0x2e')](_0xeff6('0x31'),_0xeff6('0x2f'),_0xeff6('0x21'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;}}})[_0xeff6('0x32')](function(){_0x591548();});}else{_0x591548();}}},'charset':_0xeff6('0x33'),'collate':_0xeff6('0x34')});};
\ No newline at end of file
+var _0x684c=['body','FULLTEXT','get','direction','toLowerCase','secret','isNil','findOne','WhatsappInteractionId','then','update','createdAt','catch','WhatsappAccount','find','WhatsappAccountId','type','twilio','accountSid','phone','authToken','messages','whatsapp:','/api/whatsapp/messages/','/status?token=','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','inspect','error','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','api','moment','bluebird','request-promise','path','../../config/environment','./whatsappMessage.attributes','exports','define','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages'];(function(_0x1944b7,_0x1724e7){var _0x2c16c7=function(_0x4f088f){while(--_0x4f088f){_0x1944b7['push'](_0x1944b7['shift']());}};_0x2c16c7(++_0x1724e7);}(_0x684c,0x1b3));var _0xc684=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x684c[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xc684('0x0'));var util=require(_0xc684('0x1'));var logger=require('../../config/logger')(_0xc684('0x2'));var moment=require(_0xc684('0x3'));var BPromise=require(_0xc684('0x4'));var rp=require(_0xc684('0x5'));var fs=require('fs');var path=require(_0xc684('0x6'));var rimraf=require('rimraf');var config=require(_0xc684('0x7'));var attributes=require(_0xc684('0x8'));module[_0xc684('0x9')]=function(_0x4487f6,_0x46cb0e){return _0x4487f6[_0xc684('0xa')](_0xc684('0xb'),attributes,{'tableName':_0xc684('0xc'),'paranoid':![],'indexes':[{'name':_0xc684('0xd'),'fields':[_0xc684('0xd')]},{'name':_0xc684('0xe'),'fields':[_0xc684('0xf')],'type':_0xc684('0x10')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x31cd11,_0x11e848,_0x180381){var _0x1736ac=_0x4487f6['models'];var _0x38a9cd=_0x31cd11[_0xc684('0x11')]({'plain':!![]});if(_0x38a9cd[_0xc684('0x12')][_0xc684('0x13')]()==='in'||_0x38a9cd[_0xc684('0x12')][_0xc684('0x13')]()==='out'&&!_0x38a9cd[_0xc684('0x14')]&&!_[_0xc684('0x15')](_0x38a9cd['UserId'])){_0x1736ac['WhatsappInteraction'][_0xc684('0x16')]({'where':{'id':_0x38a9cd[_0xc684('0x17')]}})[_0xc684('0x18')](function(_0x2ad4f1){if(_0x2ad4f1){_0x2ad4f1[_0xc684('0x19')]({'lastMsgAt':_0x38a9cd[_0xc684('0x1a')],'lastMsgDirection':_0x38a9cd['direction']['toLowerCase']()});}})[_0xc684('0x1b')](function(_0x599c93){console['error'](_0x599c93);});}if(_0x38a9cd['direction']==='out'&&!_0x38a9cd['secret']){var _0x264cb5;_0x1736ac[_0xc684('0x1c')][_0xc684('0x1d')]({'where':{'id':_0x38a9cd[_0xc684('0x1e')]},'raw':!![]})[_0xc684('0x18')](function(_0x4a14a2){_0x264cb5=_0x4a14a2;if(_0x264cb5&&_0x264cb5[_0xc684('0x1f')]){switch(_0x264cb5[_0xc684('0x1f')]){case'twilio':var _0x21273b=require(_0xc684('0x20'));if(_0x264cb5[_0xc684('0x21')]&&_0x264cb5['authToken']&&_0x264cb5[_0xc684('0x22')]){var _0x11a159=new _0x21273b(_0x264cb5[_0xc684('0x21')],_0x264cb5[_0xc684('0x23')]);_0x11a159[_0xc684('0x24')]['create']({'body':_0x38a9cd[_0xc684('0xf')],'to':_0xc684('0x25')+_0x38a9cd[_0xc684('0x22')],'from':'whatsapp:'+_0x264cb5['phone'],'statusCallback':_0x264cb5['remote']+_0xc684('0x26')+_0x38a9cd['id']+_0xc684('0x27')+_0x264cb5[_0xc684('0x28')]})['then'](function(_0x491b6a){if(_0x491b6a['sid']){return _0x31cd11['update']({'messageId':_0x491b6a[_0xc684('0x29')]});}})[_0xc684('0x1b')](function(_0x236f02){logger['error'](_0xc684('0x2a'),'afterCreate',_0xc684('0x20'),util[_0xc684('0x2b')](_0x236f02,{'showHidden':![],'depth':null}));});}else{logger[_0xc684('0x2c')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0xc684('0x2d'),'twilio',_0xc684('0x2e'));}break;}}})[_0xc684('0x2f')](function(){_0x180381();});}else{_0x180381();}}},'charset':_0xc684('0x30'),'collate':_0xc684('0x31')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x63fd=['../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','defaults','redis','socket.io-emitter','register','request','then','info','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','WhatsappMessage,\x20%s,\x20%s','message','result','catch','CreateWhatsappMessage','WhatsappMessage','create','body','options','raw','lodash','util','moment','bluebird','randomstring'];(function(_0x16724b,_0x55e010){var _0x55f533=function(_0x5b5f4b){while(--_0x5b5f4b){_0x16724b['push'](_0x16724b['shift']());}};_0x55f533(++_0x55e010);}(_0x63fd,0x12d));var _0xd63f=function(_0x1a7e70,_0xa4d140){_0x1a7e70=_0x1a7e70-0x0;var _0x22dd6b=_0x63fd[_0x1a7e70];return _0x22dd6b;};'use strict';var _=require(_0xd63f('0x0'));var util=require(_0xd63f('0x1'));var moment=require(_0xd63f('0x2'));var BPromise=require(_0xd63f('0x3'));var rs=require(_0xd63f('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd63f('0x5'))['db'];var utils=require(_0xd63f('0x6'));var logger=require(_0xd63f('0x7'))(_0xd63f('0x8'));var config=require('../../config/environment');var jayson=require(_0xd63f('0x9'));var client=jayson[_0xd63f('0xa')]['http']({'port':0x232a});config['redis']=_[_0xd63f('0xb')](config[_0xd63f('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0xd63f('0xd'))(new Redis(config[_0xd63f('0xc')]));require('./whatsappMessage.socket')[_0xd63f('0xe')](socket);function respondWithRpcPromise(_0x3685c1,_0x1da5b1,_0x1d1f05){return new BPromise(function(_0x1cf49c,_0x51aab3){return client[_0xd63f('0xf')](_0x3685c1,_0x1d1f05)[_0xd63f('0x10')](function(_0x38629d){logger[_0xd63f('0x11')]('WhatsappMessage,\x20%s,\x20%s',_0x1da5b1,'request\x20sent');logger[_0xd63f('0x12')](_0xd63f('0x13'),_0x1da5b1,_0xd63f('0x14'),JSON[_0xd63f('0x15')](_0x38629d));if(_0x38629d[_0xd63f('0x16')]){if(_0x38629d['error'][_0xd63f('0x17')]===0x1f4){logger[_0xd63f('0x16')](_0xd63f('0x18'),_0x1da5b1,_0x38629d['error'][_0xd63f('0x19')]);return _0x51aab3(_0x38629d[_0xd63f('0x16')]['message']);}logger[_0xd63f('0x16')](_0xd63f('0x18'),_0x1da5b1,_0x38629d['error'][_0xd63f('0x19')]);return _0x1cf49c(_0x38629d[_0xd63f('0x16')][_0xd63f('0x19')]);}else{logger[_0xd63f('0x11')](_0xd63f('0x18'),_0x1da5b1,_0xd63f('0x14'));_0x1cf49c(_0x38629d[_0xd63f('0x1a')]['message']);}})[_0xd63f('0x1b')](function(_0x17f32a){logger[_0xd63f('0x16')](_0xd63f('0x18'),_0x1da5b1,_0x17f32a);_0x51aab3(_0x17f32a);});});}exports[_0xd63f('0x1c')]=function(_0x26ca2e){var _0x26d00c=this;return new Promise(function(_0x5ef097,_0x45783f){return db[_0xd63f('0x1d')][_0xd63f('0x1e')](_0x26ca2e[_0xd63f('0x1f')],{'raw':_0x26ca2e[_0xd63f('0x20')]?_0x26ca2e[_0xd63f('0x20')][_0xd63f('0x21')]===undefined?!![]:![]:!![]})['then'](function(_0x4b46b2){logger[_0xd63f('0x11')]('CreateWhatsappMessage',_0x26ca2e);logger['debug'](_0xd63f('0x1c'),_0x26ca2e,JSON[_0xd63f('0x15')](_0x4b46b2));_0x5ef097(_0x4b46b2);})[_0xd63f('0x1b')](function(_0x40e79f){logger[_0xd63f('0x16')](_0xd63f('0x1c'),_0x40e79f[_0xd63f('0x19')],_0x26ca2e);_0x45783f(_0x26d00c[_0xd63f('0x16')](0x1f4,_0x40e79f[_0xd63f('0x19')]));});});};
\ No newline at end of file
+var _0x0f99=['../../config/logger','rpc','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./whatsappMessage.socket','register','request','then','info','WhatsappMessage,\x20%s,\x20%s','WhatsappMessage,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','CreateWhatsappMessage','WhatsappMessage','create','options','raw','debug','stringify','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils'];(function(_0x1694f5,_0x49b7c3){var _0x5b4321=function(_0x58c183){while(--_0x58c183){_0x1694f5['push'](_0x1694f5['shift']());}};_0x5b4321(++_0x49b7c3);}(_0x0f99,0x157));var _0x90f9=function(_0x2f754f,_0x107173){_0x2f754f=_0x2f754f-0x0;var _0x5314bc=_0x0f99[_0x2f754f];return _0x5314bc;};'use strict';var _=require(_0x90f9('0x0'));var util=require(_0x90f9('0x1'));var moment=require(_0x90f9('0x2'));var BPromise=require(_0x90f9('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x90f9('0x4'));var db=require(_0x90f9('0x5'))['db'];var utils=require(_0x90f9('0x6'));var logger=require(_0x90f9('0x7'))(_0x90f9('0x8'));var config=require('../../config/environment');var jayson=require(_0x90f9('0x9'));var client=jayson[_0x90f9('0xa')]['http']({'port':0x232a});config[_0x90f9('0xb')]=_[_0x90f9('0xc')](config['redis'],{'host':_0x90f9('0xd'),'port':0x18eb});var socket=require(_0x90f9('0xe'))(new Redis(config['redis']));require(_0x90f9('0xf'))[_0x90f9('0x10')](socket);function respondWithRpcPromise(_0x1d5b4e,_0x4e98e0,_0x1df9d3){return new BPromise(function(_0x48fd5b,_0x220979){return client[_0x90f9('0x11')](_0x1d5b4e,_0x1df9d3)[_0x90f9('0x12')](function(_0x419d96){logger[_0x90f9('0x13')](_0x90f9('0x14'),_0x4e98e0,'request\x20sent');logger['debug'](_0x90f9('0x15'),_0x4e98e0,_0x90f9('0x16'),JSON['stringify'](_0x419d96));if(_0x419d96[_0x90f9('0x17')]){if(_0x419d96[_0x90f9('0x17')][_0x90f9('0x18')]===0x1f4){logger['error'](_0x90f9('0x14'),_0x4e98e0,_0x419d96[_0x90f9('0x17')][_0x90f9('0x19')]);return _0x220979(_0x419d96[_0x90f9('0x17')][_0x90f9('0x19')]);}logger['error']('WhatsappMessage,\x20%s,\x20%s',_0x4e98e0,_0x419d96['error'][_0x90f9('0x19')]);return _0x48fd5b(_0x419d96[_0x90f9('0x17')][_0x90f9('0x19')]);}else{logger[_0x90f9('0x13')](_0x90f9('0x14'),_0x4e98e0,_0x90f9('0x16'));_0x48fd5b(_0x419d96[_0x90f9('0x1a')][_0x90f9('0x19')]);}})[_0x90f9('0x1b')](function(_0x40ed52){logger[_0x90f9('0x17')](_0x90f9('0x14'),_0x4e98e0,_0x40ed52);_0x220979(_0x40ed52);});});}exports[_0x90f9('0x1c')]=function(_0x583042){var _0x4bad4a=this;return new Promise(function(_0x2090b6,_0x225c4e){return db[_0x90f9('0x1d')][_0x90f9('0x1e')](_0x583042['body'],{'raw':_0x583042['options']?_0x583042[_0x90f9('0x1f')][_0x90f9('0x20')]===undefined?!![]:![]:!![]})[_0x90f9('0x12')](function(_0x2a3b57){logger['info'](_0x90f9('0x1c'),_0x583042);logger[_0x90f9('0x21')](_0x90f9('0x1c'),_0x583042,JSON[_0x90f9('0x22')](_0x2a3b57));_0x2090b6(_0x2a3b57);})[_0x90f9('0x1b')](function(_0x1bad34){logger[_0x90f9('0x17')](_0x90f9('0x1c'),_0x1bad34[_0x90f9('0x19')],_0x583042);_0x225c4e(_0x4bad4a[_0x90f9('0x17')](0x1f4,_0x1bad34[_0x90f9('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9779=['whatsappMessage:','./whatsappMessage.events','save','update','emit','removeListener','register'];(function(_0x237f37,_0x4802c5){var _0xaf3f=function(_0x507ffd){while(--_0x507ffd){_0x237f37['push'](_0x237f37['shift']());}};_0xaf3f(++_0x4802c5);}(_0x9779,0xc5));var _0x9977=function(_0x399f13,_0x45e88d){_0x399f13=_0x399f13-0x0;var _0x132ba1=_0x9779[_0x399f13];return _0x132ba1;};'use strict';var WhatsappMessageEvents=require(_0x9977('0x0'));var events=[_0x9977('0x1'),'remove',_0x9977('0x2')];function createListener(_0x42b0a2,_0x45d96f){return function(_0x49cb5e){_0x45d96f[_0x9977('0x3')](_0x42b0a2,_0x49cb5e);};}function removeListener(_0x2da135,_0x57edf0){return function(){WhatsappMessageEvents[_0x9977('0x4')](_0x2da135,_0x57edf0);};}exports[_0x9977('0x5')]=function(_0x20a683){for(var _0x538965=0x0,_0x538485=events['length'];_0x538965<_0x538485;_0x538965++){var _0x2c53dd=events[_0x538965];var _0x179a99=createListener(_0x9977('0x6')+_0x2c53dd,_0x20a683);WhatsappMessageEvents['on'](_0x2c53dd,_0x179a99);}};
\ No newline at end of file
+var _0xb80b=['./whatsappMessage.events','register'];(function(_0xf1eda0,_0x4084e8){var _0xc6b93c=function(_0x1da9af){while(--_0x1da9af){_0xf1eda0['push'](_0xf1eda0['shift']());}};_0xc6b93c(++_0x4084e8);}(_0xb80b,0x1e0));var _0xbb80=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xb80b[_0x122ef9];return _0x42fba0;};'use strict';var WhatsappMessageEvents=require(_0xbb80('0x0'));var events=['save','remove','update'];function createListener(_0x7d7ad0,_0x1f9bfc){return function(_0x5217fc){_0x1f9bfc['emit'](_0x7d7ad0,_0x5217fc);};}function removeListener(_0x37df78,_0x5dc02c){return function(){WhatsappMessageEvents['removeListener'](_0x37df78,_0x5dc02c);};}exports[_0xbb80('0x1')]=function(_0x44302b){for(var _0x84293e=0x0,_0x1d42f7=events['length'];_0x84293e<_0x1d42f7;_0x84293e++){var _0x22e7ab=events[_0x84293e];var _0x3343e9=createListener('whatsappMessage:'+_0x22e7ab,_0x44302b);WhatsappMessageEvents['on'](_0x22e7ab,_0x3343e9);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf35a=['create','addTeams','addAgents','put','update','delete','/:id','destroy','removeTeams','removeAgents','exports','multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappQueue.controller','get','isAuthenticated','index','describe','show','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post'];(function(_0x4adcbb,_0xc4ab2d){var _0x545dd5=function(_0x4f7456){while(--_0x4f7456){_0x4adcbb['push'](_0x4adcbb['shift']());}};_0x545dd5(++_0xc4ab2d);}(_0xf35a,0x10b));var _0xaf35=function(_0x2262f5,_0x5a409f){_0x2262f5=_0x2262f5-0x0;var _0x25fc8c=_0xf35a[_0x2262f5];return _0x25fc8c;};'use strict';var multer=require(_0xaf35('0x0'));var util=require('util');var path=require(_0xaf35('0x1'));var timeout=require(_0xaf35('0x2'));var express=require('express');var router=express[_0xaf35('0x3')]();var fs_extra=require(_0xaf35('0x4'));var auth=require(_0xaf35('0x5'));var interaction=require(_0xaf35('0x6'));var config=require(_0xaf35('0x7'));var controller=require(_0xaf35('0x8'));router[_0xaf35('0x9')]('/',auth[_0xaf35('0xa')](),controller[_0xaf35('0xb')]);router['get']('/describe',auth['isAuthenticated'](),controller[_0xaf35('0xc')]);router[_0xaf35('0x9')]('/:id',auth[_0xaf35('0xa')](),controller[_0xaf35('0xd')]);router[_0xaf35('0x9')](_0xaf35('0xe'),auth['isAuthenticated'](),controller[_0xaf35('0xf')]);router['get'](_0xaf35('0x10'),auth[_0xaf35('0xa')](),controller[_0xaf35('0x11')]);router['get'](_0xaf35('0x12'),auth[_0xaf35('0xa')](),controller[_0xaf35('0x13')]);router[_0xaf35('0x14')]('/',auth[_0xaf35('0xa')](),controller[_0xaf35('0x15')]);router[_0xaf35('0x14')](_0xaf35('0x10'),auth[_0xaf35('0xa')](),controller[_0xaf35('0x16')]);router[_0xaf35('0x14')](_0xaf35('0x12'),auth[_0xaf35('0xa')](),controller[_0xaf35('0x17')]);router[_0xaf35('0x18')]('/:id',auth[_0xaf35('0xa')](),controller[_0xaf35('0x19')]);router[_0xaf35('0x1a')](_0xaf35('0x1b'),auth[_0xaf35('0xa')](),controller[_0xaf35('0x1c')]);router[_0xaf35('0x1a')](_0xaf35('0x10'),auth['isAuthenticated'](),controller[_0xaf35('0x1d')]);router['delete'](_0xaf35('0x12'),auth[_0xaf35('0xa')](),controller[_0xaf35('0x1e')]);module[_0xaf35('0x1f')]=router;
\ No newline at end of file
+var _0x6fc2=['util','path','express','Router','../../config/environment','./whatsappQueue.controller','isAuthenticated','index','get','/describe','describe','show','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post','create','addAgents','put','/:id','update','delete','removeTeams','removeAgents','exports','multer'];(function(_0x16a637,_0x5eb627){var _0x25126d=function(_0x54e016){while(--_0x54e016){_0x16a637['push'](_0x16a637['shift']());}};_0x25126d(++_0x5eb627);}(_0x6fc2,0x117));var _0x26fc=function(_0x12fc8d,_0x19ee33){_0x12fc8d=_0x12fc8d-0x0;var _0x3f9d04=_0x6fc2[_0x12fc8d];return _0x3f9d04;};'use strict';var multer=require(_0x26fc('0x0'));var util=require(_0x26fc('0x1'));var path=require(_0x26fc('0x2'));var timeout=require('connect-timeout');var express=require(_0x26fc('0x3'));var router=express[_0x26fc('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x26fc('0x5'));var controller=require(_0x26fc('0x6'));router['get']('/',auth[_0x26fc('0x7')](),controller[_0x26fc('0x8')]);router[_0x26fc('0x9')](_0x26fc('0xa'),auth['isAuthenticated'](),controller[_0x26fc('0xb')]);router['get']('/:id',auth[_0x26fc('0x7')](),controller[_0x26fc('0xc')]);router[_0x26fc('0x9')]('/:id/members',auth[_0x26fc('0x7')](),controller[_0x26fc('0xd')]);router[_0x26fc('0x9')](_0x26fc('0xe'),auth[_0x26fc('0x7')](),controller[_0x26fc('0xf')]);router[_0x26fc('0x9')](_0x26fc('0x10'),auth[_0x26fc('0x7')](),controller[_0x26fc('0x11')]);router[_0x26fc('0x12')]('/',auth[_0x26fc('0x7')](),controller[_0x26fc('0x13')]);router[_0x26fc('0x12')](_0x26fc('0xe'),auth[_0x26fc('0x7')](),controller['addTeams']);router[_0x26fc('0x12')](_0x26fc('0x10'),auth[_0x26fc('0x7')](),controller[_0x26fc('0x14')]);router[_0x26fc('0x15')](_0x26fc('0x16'),auth[_0x26fc('0x7')](),controller[_0x26fc('0x17')]);router[_0x26fc('0x18')]('/:id',auth[_0x26fc('0x7')](),controller['destroy']);router[_0x26fc('0x18')](_0x26fc('0xe'),auth[_0x26fc('0x7')](),controller[_0x26fc('0x19')]);router['delete'](_0x26fc('0x10'),auth[_0x26fc('0x7')](),controller[_0x26fc('0x1a')]);module[_0x26fc('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x833b=['name','ENUM','beepall','roundrobin','STRING','exports'];(function(_0x52cae2,_0x3e71b0){var _0x3053b7=function(_0x470514){while(--_0x470514){_0x52cae2['push'](_0x52cae2['shift']());}};_0x3053b7(++_0x3e71b0);}(_0x833b,0x131));var _0xb833=function(_0x12f688,_0x585c25){_0x12f688=_0x12f688-0x0;var _0x59c3de=_0x833b[_0x12f688];return _0x59c3de;};'use strict';var Sequelize=require('sequelize');module[_0xb833('0x0')]={'name':{'type':Sequelize['STRING'],'unique':_0xb833('0x1'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xb833('0x2')]('rrmemory',_0xb833('0x3'),_0xb833('0x4'))},'description':{'type':Sequelize[_0xb833('0x5')]}};
\ No newline at end of file
+var _0x7b05=['STRING','name','ENUM','beepall','roundrobin','sequelize','exports'];(function(_0x1ecb98,_0x1c24d3){var _0x7c44ea=function(_0x33b486){while(--_0x33b486){_0x1ecb98['push'](_0x1ecb98['shift']());}};_0x7c44ea(++_0x1c24d3);}(_0x7b05,0x91));var _0x57b0=function(_0x2eac4f,_0x5173f9){_0x2eac4f=_0x2eac4f-0x0;var _0x58f73b=_0x7b05[_0x2eac4f];return _0x58f73b;};'use strict';var Sequelize=require(_0x57b0('0x0'));module[_0x57b0('0x1')]={'name':{'type':Sequelize[_0x57b0('0x2')],'unique':_0x57b0('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x57b0('0x4')]('rrmemory',_0x57b0('0x5'),_0x57b0('0x6'))},'description':{'type':Sequelize[_0x57b0('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ede=['%s/%s','SIP','getTeams','Team','addTeams','ids','online','voicePause','interface','flatMap','Agents','each','findOrCreate','forEach','emit','userWhatsappQueue:save','removeTeams','select','field','tq.TeamId','team_has_whatsapp_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','WhatsappQueueId\x20=\x20?','clone','sequelize','toString','QueryTypes','every','includes','all','value','transaction','removeAgents','addAgents','omit','spread','isArray','userWhatsappQueue:remove','getAgents','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./whatsappQueue.socket','register','status','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','get','WhatsappQueues','UserProfileResource','name','send','index','rawAttributes','fieldName','type','key','map','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','show','WhatsappQueue','find','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','getMembers','findOne','UserWhatsappQueue','hasOwnProperty','User','findAndCountAll','agent','updatedAt','createdAt','format'];(function(_0x25f27f,_0x19bc94){var _0xdd792a=function(_0xe08ccb){while(--_0xe08ccb){_0x25f27f['push'](_0x25f27f['shift']());}};_0xdd792a(++_0x19bc94);}(_0x2ede,0x13b));var _0xe2ed=function(_0x5e6b1c,_0x154f40){_0x5e6b1c=_0x5e6b1c-0x0;var _0x179fc3=_0x2ede[_0x5e6b1c];return _0x179fc3;};'use strict';var emlformat=require(_0xe2ed('0x0'));var rimraf=require(_0xe2ed('0x1'));var zipdir=require(_0xe2ed('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xe2ed('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xe2ed('0x4'));var util=require(_0xe2ed('0x5'));var path=require(_0xe2ed('0x6'));var sox=require(_0xe2ed('0x7'));var csv=require('to-csv');var ejs=require(_0xe2ed('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe2ed('0x9'));var squel=require(_0xe2ed('0xa'));var crypto=require(_0xe2ed('0xb'));var jsforce=require(_0xe2ed('0xc'));var deskjs=require(_0xe2ed('0xd'));var toCsv=require(_0xe2ed('0xe'));var querystring=require(_0xe2ed('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xe2ed('0x10'));var qs=require(_0xe2ed('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe2ed('0x12'));var logger=require(_0xe2ed('0x13'))(_0xe2ed('0x14'));var utils=require(_0xe2ed('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xe2ed('0x16'));var db=require(_0xe2ed('0x17'))['db'];config[_0xe2ed('0x18')]=_[_0xe2ed('0x19')](config[_0xe2ed('0x18')],{'host':_0xe2ed('0x1a'),'port':0x18eb});var socket=require(_0xe2ed('0x1b'))(new Redis(config[_0xe2ed('0x18')]));require(_0xe2ed('0x1c'))[_0xe2ed('0x1d')](socket);function respondWithStatusCode(_0x51b1e4,_0x1455c7){_0x1455c7=_0x1455c7||0xcc;return function(_0x31e5be){if(_0x31e5be){return _0x51b1e4['sendStatus'](_0x1455c7);}return _0x51b1e4[_0xe2ed('0x1e')](_0x1455c7)['end']();};}function respondWithResult(_0x1bf91a,_0x17a962){_0x17a962=_0x17a962||0xc8;return function(_0x4caf53){if(_0x4caf53){return _0x1bf91a[_0xe2ed('0x1e')](_0x17a962)[_0xe2ed('0x1f')](_0x4caf53);}};}function respondWithFilteredResult(_0x4100ca,_0x32a134){return function(_0x509202){if(_0x509202){var _0x11c9c0=typeof _0x32a134[_0xe2ed('0x20')]===_0xe2ed('0x21')&&typeof _0x32a134[_0xe2ed('0x22')]===_0xe2ed('0x21');var _0x181728=_0x509202[_0xe2ed('0x23')];var _0xce3206=_0x11c9c0?0x0:_0x32a134[_0xe2ed('0x20')];var _0x179d63=_0x11c9c0?_0x509202[_0xe2ed('0x23')]:_0x32a134[_0xe2ed('0x20')]+_0x32a134[_0xe2ed('0x22')];var _0x469819;if(_0x179d63>=_0x181728){_0x179d63=_0x181728;_0x469819=0xc8;}else{_0x469819=0xce;}_0x4100ca['status'](_0x469819);return _0x4100ca[_0xe2ed('0x24')](_0xe2ed('0x25'),_0xce3206+'-'+_0x179d63+'/'+_0x181728)[_0xe2ed('0x1f')](_0x509202);}return null;};}function patchUpdates(_0x4f06c7){return function(_0x194c75){try{jsonpatch[_0xe2ed('0x26')](_0x194c75,_0x4f06c7,!![]);}catch(_0x42881f){return BPromise['reject'](_0x42881f);}return _0x194c75['save']();};}function saveUpdates(_0x425f16,_0x22de6a){return function(_0x215224){if(_0x215224){return _0x215224[_0xe2ed('0x27')](_0x425f16)[_0xe2ed('0x28')](function(_0x6d253c){return _0x6d253c;});}return null;};}function removeEntity(_0x2412f4,_0x14c6c9){return function(_0x5ec3ef){if(_0x5ec3ef){return _0x5ec3ef[_0xe2ed('0x29')]()[_0xe2ed('0x28')](function(){var _0x130d62=_0x5ec3ef[_0xe2ed('0x2a')]({'plain':!![]});var _0x509530=_0xe2ed('0x2b');return db[_0xe2ed('0x2c')][_0xe2ed('0x29')]({'where':{'type':_0x509530,'resourceId':_0x130d62['id']}})[_0xe2ed('0x28')](function(){return _0x5ec3ef;});})['then'](function(){_0x2412f4[_0xe2ed('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2aff1f,_0x1d9a2a){return function(_0x149179){if(!_0x149179){_0x2aff1f['sendStatus'](0x194);}return _0x149179;};}function handleError(_0x224c84,_0x5aa9fc){_0x5aa9fc=_0x5aa9fc||0x1f4;return function(_0x423c78){logger['error'](_0x423c78['stack']);if(_0x423c78[_0xe2ed('0x2d')]){delete _0x423c78['name'];}_0x224c84['status'](_0x5aa9fc)[_0xe2ed('0x2e')](_0x423c78);};}exports[_0xe2ed('0x2f')]=function(_0x26a678,_0x2c7809){var _0x4d7dda={},_0x4be560={},_0x4cba55={'count':0x0,'rows':[]};var _0x47c2ae=_['map'](db['WhatsappQueue'][_0xe2ed('0x30')],function(_0x1145b){return{'name':_0x1145b[_0xe2ed('0x31')],'type':_0x1145b[_0xe2ed('0x32')][_0xe2ed('0x33')]};});_0x4be560['model']=_[_0xe2ed('0x34')](_0x47c2ae,_0xe2ed('0x2d'));_0x4be560[_0xe2ed('0x35')]=_[_0xe2ed('0x36')](_0x26a678[_0xe2ed('0x35')]);_0x4be560[_0xe2ed('0x37')]=_[_0xe2ed('0x38')](_0x4be560[_0xe2ed('0x39')],_0x4be560[_0xe2ed('0x35')]);_0x4d7dda[_0xe2ed('0x3a')]=_[_0xe2ed('0x38')](_0x4be560['model'],qs['fields'](_0x26a678[_0xe2ed('0x35')][_0xe2ed('0x3b')]));_0x4d7dda[_0xe2ed('0x3a')]=_0x4d7dda[_0xe2ed('0x3a')][_0xe2ed('0x3c')]?_0x4d7dda[_0xe2ed('0x3a')]:_0x4be560['model'];if(!_0x26a678['query']['hasOwnProperty'](_0xe2ed('0x3d'))){_0x4d7dda[_0xe2ed('0x22')]=qs[_0xe2ed('0x22')](_0x26a678[_0xe2ed('0x35')][_0xe2ed('0x22')]);_0x4d7dda[_0xe2ed('0x20')]=qs[_0xe2ed('0x20')](_0x26a678[_0xe2ed('0x35')][_0xe2ed('0x20')]);}_0x4d7dda[_0xe2ed('0x3e')]=qs[_0xe2ed('0x3f')](_0x26a678[_0xe2ed('0x35')][_0xe2ed('0x3f')]);_0x4d7dda[_0xe2ed('0x40')]=qs[_0xe2ed('0x37')](_[_0xe2ed('0x41')](_0x26a678[_0xe2ed('0x35')],_0x4be560[_0xe2ed('0x37')]),_0x47c2ae);if(_0x26a678['query'][_0xe2ed('0x42')]){_0x4d7dda[_0xe2ed('0x40')]=_[_0xe2ed('0x43')](_0x4d7dda[_0xe2ed('0x40')],{'$or':_[_0xe2ed('0x34')](_0x47c2ae,function(_0x1da8fa){if(_0x1da8fa[_0xe2ed('0x32')]!==_0xe2ed('0x44')){var _0xa2c536={};_0xa2c536[_0x1da8fa[_0xe2ed('0x2d')]]={'$like':'%'+_0x26a678[_0xe2ed('0x35')]['filter']+'%'};return _0xa2c536;}})});}_0x4d7dda=_[_0xe2ed('0x43')]({},_0x4d7dda,_0x26a678[_0xe2ed('0x45')]);var _0x150279={'where':_0x4d7dda[_0xe2ed('0x40')]};return db['WhatsappQueue'][_0xe2ed('0x23')](_0x150279)[_0xe2ed('0x28')](function(_0x50696c){_0x4cba55[_0xe2ed('0x23')]=_0x50696c;if(_0x26a678['query'][_0xe2ed('0x46')]){_0x4d7dda[_0xe2ed('0x47')]=[{'all':!![]}];}return db['WhatsappQueue'][_0xe2ed('0x48')](_0x4d7dda);})['then'](function(_0x5ae8fa){_0x4cba55['rows']=_0x5ae8fa;return _0x4cba55;})[_0xe2ed('0x28')](respondWithFilteredResult(_0x2c7809,_0x4d7dda))['catch'](handleError(_0x2c7809,null));};exports[_0xe2ed('0x49')]=function(_0x35d54c,_0x481c1a){var _0x14337b={'raw':!![],'where':{'id':_0x35d54c['params']['id']}},_0x1a7316={};_0x1a7316[_0xe2ed('0x39')]=_[_0xe2ed('0x36')](db[_0xe2ed('0x4a')]['rawAttributes']);_0x1a7316['query']=_['keys'](_0x35d54c[_0xe2ed('0x35')]);_0x1a7316[_0xe2ed('0x37')]=_[_0xe2ed('0x38')](_0x1a7316['model'],_0x1a7316[_0xe2ed('0x35')]);_0x14337b[_0xe2ed('0x3a')]=_[_0xe2ed('0x38')](_0x1a7316['model'],qs[_0xe2ed('0x3b')](_0x35d54c[_0xe2ed('0x35')][_0xe2ed('0x3b')]));_0x14337b[_0xe2ed('0x3a')]=_0x14337b[_0xe2ed('0x3a')][_0xe2ed('0x3c')]?_0x14337b['attributes']:_0x1a7316[_0xe2ed('0x39')];if(_0x35d54c[_0xe2ed('0x35')][_0xe2ed('0x46')]){_0x14337b[_0xe2ed('0x47')]=[{'all':!![]}];}_0x14337b=_[_0xe2ed('0x43')]({},_0x14337b,_0x35d54c[_0xe2ed('0x45')]);return db[_0xe2ed('0x4a')][_0xe2ed('0x4b')](_0x14337b)[_0xe2ed('0x28')](handleEntityNotFound(_0x481c1a,null))['then'](respondWithResult(_0x481c1a,null))[_0xe2ed('0x4c')](handleError(_0x481c1a,null));};exports[_0xe2ed('0x4d')]=function(_0x36aa5c,_0x53a6f1){return db[_0xe2ed('0x4a')][_0xe2ed('0x4d')](_0x36aa5c[_0xe2ed('0x4e')],{})['then'](function(_0x172406){var _0x18bb3a=_0x36aa5c['user']['get']({'plain':!![]});if(!_0x18bb3a)throw new Error(_0xe2ed('0x4f'));if(_0x18bb3a[_0xe2ed('0x50')]==='user'){var _0x12fbe6=_0x172406[_0xe2ed('0x2a')]({'plain':!![]});var _0x30b4d9=_0xe2ed('0x2b');return db['UserProfileSection'][_0xe2ed('0x4b')]({'where':{'name':_0x30b4d9,'userProfileId':_0x18bb3a['userProfileId']},'raw':!![]})['then'](function(_0x1e55d5){if(_0x1e55d5&&_0x1e55d5[_0xe2ed('0x51')]===0x0){return db[_0xe2ed('0x2c')][_0xe2ed('0x4d')]({'name':_0x12fbe6[_0xe2ed('0x2d')],'resourceId':_0x12fbe6['id'],'type':_0x1e55d5[_0xe2ed('0x2d')],'sectionId':_0x1e55d5['id']},{})['then'](function(){return _0x172406;});}else{return _0x172406;}})['catch'](function(_0x2c8bc7){logger[_0xe2ed('0x52')](_0xe2ed('0x53'),_0x2c8bc7);throw _0x2c8bc7;});}return _0x172406;})['then'](respondWithResult(_0x53a6f1,0xc9))['catch'](handleError(_0x53a6f1,null));};exports['update']=function(_0x27f1fe,_0x283974){if(_0x27f1fe[_0xe2ed('0x4e')]['id']){delete _0x27f1fe['body']['id'];}return db['WhatsappQueue'][_0xe2ed('0x4b')]({'where':{'id':_0x27f1fe[_0xe2ed('0x54')]['id']}})[_0xe2ed('0x28')](handleEntityNotFound(_0x283974,null))[_0xe2ed('0x28')](saveUpdates(_0x27f1fe[_0xe2ed('0x4e')],null))[_0xe2ed('0x28')](respondWithResult(_0x283974,null))[_0xe2ed('0x4c')](handleError(_0x283974,null));};exports[_0xe2ed('0x29')]=function(_0x23a234,_0x4778ff){return db[_0xe2ed('0x4a')]['find']({'where':{'id':_0x23a234[_0xe2ed('0x54')]['id']}})[_0xe2ed('0x28')](handleEntityNotFound(_0x4778ff,null))['then'](removeEntity(_0x4778ff,null))['catch'](handleError(_0x4778ff,null));};exports['describe']=function(_0x21bb6d,_0xd208f7){return db['WhatsappQueue'][_0xe2ed('0x55')]()[_0xe2ed('0x28')](respondWithResult(_0xd208f7,null))['catch'](handleError(_0xd208f7,null));};exports[_0xe2ed('0x56')]=function(_0x2cff13,_0x312f85,_0xd4db25){var _0x6960ed={'raw':!![],'where':{}},_0x1b1343={},_0x3cc2ab;return db[_0xe2ed('0x4a')][_0xe2ed('0x57')]({'where':{'id':_0x2cff13[_0xe2ed('0x54')]['id']}})[_0xe2ed('0x28')](handleEntityNotFound(_0x312f85,null))[_0xe2ed('0x28')](function(_0x200217){if(_0x200217){_0x3cc2ab=_0x200217[_0xe2ed('0x2a')]({'plain':!![]});_0x1b1343[_0xe2ed('0x39')]=_[_0xe2ed('0x36')](db[_0xe2ed('0x58')]['rawAttributes']);_0x1b1343[_0xe2ed('0x35')]=_[_0xe2ed('0x36')](_0x2cff13[_0xe2ed('0x35')]);_0x1b1343['filters']=_[_0xe2ed('0x38')](_0x1b1343[_0xe2ed('0x39')],_0x1b1343['query']);_0x6960ed[_0xe2ed('0x3a')]=_['intersection'](_0x1b1343['model'],qs[_0xe2ed('0x3b')](_0x2cff13[_0xe2ed('0x35')][_0xe2ed('0x3b')]));_0x6960ed['attributes']=_0x6960ed['attributes'][_0xe2ed('0x3c')]?_0x6960ed[_0xe2ed('0x3a')]:_0x1b1343[_0xe2ed('0x39')];if(!_0x2cff13[_0xe2ed('0x35')][_0xe2ed('0x59')](_0xe2ed('0x3d'))){_0x6960ed[_0xe2ed('0x22')]=qs[_0xe2ed('0x22')](_0x2cff13[_0xe2ed('0x35')]['limit']);_0x6960ed[_0xe2ed('0x20')]=qs[_0xe2ed('0x20')](_0x2cff13[_0xe2ed('0x35')]['offset']);}_0x6960ed[_0xe2ed('0x3e')]=qs[_0xe2ed('0x3f')](_0x2cff13[_0xe2ed('0x35')][_0xe2ed('0x3f')]);_0x6960ed[_0xe2ed('0x40')]=qs[_0xe2ed('0x37')](_[_0xe2ed('0x41')](_0x2cff13['query'],_0x1b1343[_0xe2ed('0x37')]));_0x6960ed['where']['WhatsappQueueId']=_0x200217['id'];if(_0x2cff13[_0xe2ed('0x35')][_0xe2ed('0x42')]){_0x6960ed[_0xe2ed('0x40')]=_['merge'](_0x6960ed[_0xe2ed('0x40')],{'$or':_[_0xe2ed('0x34')](_0x6960ed[_0xe2ed('0x3a')],function(_0x4c22c5){var _0x2597b7={};_0x2597b7[_0x4c22c5]={'$like':'%'+_0x2cff13[_0xe2ed('0x35')][_0xe2ed('0x42')]+'%'};return _0x2597b7;})});}_0x6960ed=_[_0xe2ed('0x43')]({},_0x6960ed,_0x2cff13['options']);return db[_0xe2ed('0x58')][_0xe2ed('0x48')](_0x6960ed);}})[_0xe2ed('0x28')](function(_0x1719fd){if(_0x1719fd){return db[_0xe2ed('0x5a')][_0xe2ed('0x5b')]({'where':{'id':_[_0xe2ed('0x34')](_0x1719fd,'UserId'),'role':_0xe2ed('0x5c')},'attributes':['id','name','whatsappPause',_0xe2ed('0x5d'),_0xe2ed('0x5e')]});}})[_0xe2ed('0x28')](function(_0x3e5b17){if(_0x3e5b17){return{'count':_0x3e5b17[_0xe2ed('0x23')],'rows':_['map'](_0x3e5b17['rows'],function(_0x43194d){return{'membername':_0x43194d[_0xe2ed('0x2d')],'UserId':_0x43194d['id'],'queue_name':_0x3cc2ab[_0xe2ed('0x2d')],'WhatsappQueueId':_0x3cc2ab['id'],'interface':util[_0xe2ed('0x5f')](_0xe2ed('0x60'),_0xe2ed('0x61'),_0x43194d[_0xe2ed('0x2d')]),'penalty':0x0,'paused':_0x43194d['whatsappPause'],'createdAt':_0x43194d[_0xe2ed('0x5e')],'updatedAt':_0x43194d['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0xe2ed('0x28')](respondWithFilteredResult(_0x312f85,_0x6960ed))[_0xe2ed('0x4c')](handleError(_0x312f85,null));};exports[_0xe2ed('0x62')]=function(_0x2f15c9,_0x3060a6,_0x27d7e9){var _0x594f9b={};var _0x5f0405={};var _0x5d2544;var _0x12dc20;return db[_0xe2ed('0x4a')][_0xe2ed('0x57')]({'where':{'id':_0x2f15c9[_0xe2ed('0x54')]['id']}})[_0xe2ed('0x28')](handleEntityNotFound(_0x3060a6,null))[_0xe2ed('0x28')](function(_0x42e17e){if(_0x42e17e){_0x5d2544=_0x42e17e;_0x5f0405[_0xe2ed('0x39')]=_[_0xe2ed('0x36')](db[_0xe2ed('0x63')][_0xe2ed('0x30')]);_0x5f0405[_0xe2ed('0x35')]=_[_0xe2ed('0x36')](_0x2f15c9[_0xe2ed('0x35')]);_0x5f0405[_0xe2ed('0x37')]=_[_0xe2ed('0x38')](_0x5f0405[_0xe2ed('0x39')],_0x5f0405['query']);_0x594f9b[_0xe2ed('0x3a')]=_['intersection'](_0x5f0405['model'],qs[_0xe2ed('0x3b')](_0x2f15c9[_0xe2ed('0x35')]['fields']));_0x594f9b[_0xe2ed('0x3a')]=_0x594f9b[_0xe2ed('0x3a')][_0xe2ed('0x3c')]?_0x594f9b[_0xe2ed('0x3a')]:_0x5f0405['model'];_0x594f9b[_0xe2ed('0x3e')]=qs[_0xe2ed('0x3f')](_0x2f15c9[_0xe2ed('0x35')][_0xe2ed('0x3f')]);_0x594f9b[_0xe2ed('0x40')]=qs[_0xe2ed('0x37')](_[_0xe2ed('0x41')](_0x2f15c9[_0xe2ed('0x35')],_0x5f0405[_0xe2ed('0x37')]));if(_0x2f15c9[_0xe2ed('0x35')][_0xe2ed('0x42')]){_0x594f9b[_0xe2ed('0x40')]=_['merge'](_0x594f9b['where'],{'$or':_[_0xe2ed('0x34')](_0x594f9b[_0xe2ed('0x3a')],function(_0x4e592){var _0x2c40be={};_0x2c40be[_0x4e592]={'$like':'%'+_0x2f15c9[_0xe2ed('0x35')][_0xe2ed('0x42')]+'%'};return _0x2c40be;})});}_0x594f9b=_[_0xe2ed('0x43')]({},_0x594f9b,_0x2f15c9['options']);return _0x5d2544[_0xe2ed('0x62')](_0x594f9b);}})['then'](function(_0x5e820b){if(_0x5e820b){_0x12dc20=_0x5e820b[_0xe2ed('0x3c')];if(!_0x2f15c9[_0xe2ed('0x35')][_0xe2ed('0x59')]('nolimit')){_0x594f9b[_0xe2ed('0x22')]=qs[_0xe2ed('0x22')](_0x2f15c9[_0xe2ed('0x35')][_0xe2ed('0x22')]);_0x594f9b[_0xe2ed('0x20')]=qs[_0xe2ed('0x20')](_0x2f15c9[_0xe2ed('0x35')][_0xe2ed('0x20')]);}return _0x5d2544[_0xe2ed('0x62')](_0x594f9b);}})[_0xe2ed('0x28')](function(_0x3e077f){if(_0x3e077f){return _0x3e077f?{'count':_0x12dc20,'rows':_0x3e077f}:null;}})[_0xe2ed('0x28')](respondWithResult(_0x3060a6,null))[_0xe2ed('0x4c')](handleError(_0x3060a6,null));};exports[_0xe2ed('0x64')]=function(_0x24d7d6,_0x2a62a3,_0x4da05a){var _0x2dccce=_0x24d7d6[_0xe2ed('0x4e')][_0xe2ed('0x65')];return db['Team']['findAll']({'where':{'id':_0x2dccce},'attributes':['id'],'include':[{'model':db[_0xe2ed('0x5a')],'as':'Agents','attributes':['id',_0xe2ed('0x2d'),_0xe2ed('0x66'),_0xe2ed('0x67'),_0xe2ed('0x68')],'raw':!![]}]})[_0xe2ed('0x28')](function(_0x4602f5){if(_0x4602f5){var _0x51844a=_[_0xe2ed('0x69')](_0x4602f5,function(_0x1c69a8){var _0x1ccd40=_0x1c69a8[_0xe2ed('0x2a')]({'plain':!![]});return _0x1ccd40[_0xe2ed('0x6a')];});return db['WhatsappQueue'][_0xe2ed('0x4b')]({'where':{'id':_0x24d7d6[_0xe2ed('0x54')]['id']}})[_0xe2ed('0x28')](function(_0x37983a){return db['sequelize']['transaction'](function(_0x4acd17){return _0x37983a[_0xe2ed('0x64')](_0x2dccce,{'transaction':_0x4acd17})[_0xe2ed('0x28')](function(){return BPromise[_0xe2ed('0x6b')](_0x51844a,function(_0x1ddf05){return db[_0xe2ed('0x58')][_0xe2ed('0x6c')]({'where':{'UserId':_0x1ddf05['id'],'WhatsappQueueId':_0x24d7d6[_0xe2ed('0x54')]['id']},'transaction':_0x4acd17});});})['then'](function(){_0x51844a[_0xe2ed('0x6d')](function(_0x5db2b6){socket[_0xe2ed('0x6e')](_0xe2ed('0x6f'),{'UserId':_0x5db2b6['id'],'WhatsappQueueId':_0x37983a['id']});});});});});}})[_0xe2ed('0x28')](respondWithStatusCode(_0x2a62a3,null))[_0xe2ed('0x4c')](handleError(_0x2a62a3,null));};exports[_0xe2ed('0x70')]=function(_0xcb76d,_0x4f3783,_0x438f5a){return db[_0xe2ed('0x63')][_0xe2ed('0x48')]({'where':{'id':_0xcb76d['query'][_0xe2ed('0x65')]},'attributes':['id'],'include':[{'model':db[_0xe2ed('0x5a')],'as':_0xe2ed('0x6a'),'attributes':['id'],'raw':!![]}]})[_0xe2ed('0x28')](handleEntityNotFound(_0x4f3783,null))[_0xe2ed('0x28')](function(_0x28491f){var _0x3d16bd=_[_0xe2ed('0x34')](_0x28491f,'id');var _0xab9841=[];var _0x2b03f2=[];var _0x2088f4=squel[_0xe2ed('0x71')]();_0x2088f4[_0xe2ed('0x72')](_0xe2ed('0x73'))['from'](_0xe2ed('0x74'),'tq')[_0xe2ed('0x75')](_0xe2ed('0x76'),'ut',_0xe2ed('0x77'))[_0xe2ed('0x40')](_0xe2ed('0x78'),_0xcb76d[_0xe2ed('0x54')]['id']);for(var _0x5caf5f=0x0;_0x5caf5f<_0x28491f[_0xe2ed('0x3c')];_0x5caf5f+=0x1){let _0x1d0045=_0x28491f[_0x5caf5f];for(var _0x2b933b=0x0;_0x2b933b<_0x1d0045[_0xe2ed('0x6a')][_0xe2ed('0x3c')];_0x2b933b+=0x1){let _0x87b0cc=_0x1d0045[_0xe2ed('0x6a')][_0x2b933b];var _0x5238c6=_0x2088f4[_0xe2ed('0x79')]();_0x5238c6[_0xe2ed('0x40')]('ut.UserId\x20=\x20?',_0x87b0cc['id']);_0x2b03f2['push'](db[_0xe2ed('0x7a')][_0xe2ed('0x35')](_0x5238c6[_0xe2ed('0x7b')](),{'type':db['sequelize'][_0xe2ed('0x7c')]['SELECT']})[_0xe2ed('0x28')](function(_0x364082){if(_0x364082[_0xe2ed('0x3c')]===0x1){return _0x87b0cc['id'];}else{var _0x595176=_[_0xe2ed('0x7d')](_[_0xe2ed('0x34')](_0x364082,'TeamId'),function(_0xfdaf77){return _[_0xe2ed('0x7e')](_0x3d16bd,_0xfdaf77);});if(_0x595176){return _0x87b0cc['id'];}}}));}}return BPromise[_0xe2ed('0x7f')](_0x2b03f2)[_0xe2ed('0x28')](function(_0x6de71e){_0xab9841=_(_0xab9841)['union'](_0x6de71e)['compact']()[_0xe2ed('0x80')]();return db[_0xe2ed('0x4a')][_0xe2ed('0x4b')]({'where':{'id':_0xcb76d['params']['id']}})[_0xe2ed('0x28')](function(_0x509c76){return db['sequelize'][_0xe2ed('0x81')](function(_0x31dc0f){return _0x509c76[_0xe2ed('0x70')](_0xcb76d['query'][_0xe2ed('0x65')],{'transaction':_0x31dc0f})[_0xe2ed('0x28')](function(){if(!_['isEmpty'](_0xab9841)){return _0x509c76[_0xe2ed('0x82')](_0xab9841,{'transaction':_0x31dc0f});}})[_0xe2ed('0x28')](function(){_0xab9841[_0xe2ed('0x6d')](function(_0x5151e8){socket[_0xe2ed('0x6e')]('userWhatsappQueue:remove',{'UserId':_0x5151e8,'WhatsappQueueId':_0x509c76['id']});});});});});});})[_0xe2ed('0x28')](respondWithStatusCode(_0x4f3783,null))['catch'](handleError(_0x4f3783,null));};exports[_0xe2ed('0x83')]=function(_0x6357f3,_0x549752,_0x546aaa){return db[_0xe2ed('0x4a')][_0xe2ed('0x4b')]({'where':{'id':_0x6357f3[_0xe2ed('0x54')]['id']}})[_0xe2ed('0x28')](handleEntityNotFound(_0x549752,null))[_0xe2ed('0x28')](function(_0x465532){if(_0x465532){return _0x465532['addAgents'](_0x6357f3[_0xe2ed('0x4e')][_0xe2ed('0x65')],_[_0xe2ed('0x84')](_0x6357f3[_0xe2ed('0x4e')],[_0xe2ed('0x65'),'id'])||{})[_0xe2ed('0x85')](function(_0xc5a78d){for(var _0x180c47=0x0;_0x180c47<_0x6357f3[_0xe2ed('0x4e')]['ids'][_0xe2ed('0x3c')];_0x180c47+=0x1){socket[_0xe2ed('0x6e')]('userWhatsappQueue:save',{'UserId':Number(_0x6357f3[_0xe2ed('0x4e')][_0xe2ed('0x65')][_0x180c47]),'WhatsappQueueId':Number(_0x6357f3[_0xe2ed('0x54')]['id'])});}return _0xc5a78d;});}})[_0xe2ed('0x28')](respondWithResult(_0x549752,null))[_0xe2ed('0x4c')](handleError(_0x549752,null));};exports[_0xe2ed('0x82')]=function(_0x47de68,_0x2261ee,_0x91cd41){return db[_0xe2ed('0x4a')][_0xe2ed('0x4b')]({'where':{'id':_0x47de68[_0xe2ed('0x54')]['id']}})[_0xe2ed('0x28')](handleEntityNotFound(_0x2261ee,null))[_0xe2ed('0x28')](function(_0x42836f){if(_0x42836f){return _0x42836f[_0xe2ed('0x82')](_0x47de68[_0xe2ed('0x35')][_0xe2ed('0x65')])['then'](function(){if(_[_0xe2ed('0x86')](_0x47de68[_0xe2ed('0x35')][_0xe2ed('0x65')])){for(var _0x123167=0x0;_0x123167<_0x47de68[_0xe2ed('0x35')][_0xe2ed('0x65')]['length'];_0x123167+=0x1){socket[_0xe2ed('0x6e')](_0xe2ed('0x87'),{'UserId':Number(_0x47de68['query'][_0xe2ed('0x65')][_0x123167]),'WhatsappQueueId':Number(_0x47de68[_0xe2ed('0x54')]['id'])});}}else{socket[_0xe2ed('0x6e')]('userWhatsappQueue:remove',{'UserId':Number(_0x47de68['query'][_0xe2ed('0x65')]),'WhatsappQueueId':Number(_0x47de68[_0xe2ed('0x54')]['id'])});}});}})[_0xe2ed('0x28')](respondWithStatusCode(_0x2261ee,null))[_0xe2ed('0x4c')](handleError(_0x2261ee,null));};exports[_0xe2ed('0x88')]=function(_0x4e437f,_0x175792,_0x2c97d7){var _0xba9d1b={};var _0xd1c9c6={};var _0x98ea46;var _0xd3076c;return db[_0xe2ed('0x4a')][_0xe2ed('0x57')]({'where':{'id':_0x4e437f['params']['id']}})['then'](handleEntityNotFound(_0x175792,null))[_0xe2ed('0x28')](function(_0x3bbaf6){if(_0x3bbaf6){_0x98ea46=_0x3bbaf6;_0xd1c9c6[_0xe2ed('0x39')]=_[_0xe2ed('0x36')](db[_0xe2ed('0x5a')]['rawAttributes']);_0xd1c9c6[_0xe2ed('0x35')]=_['keys'](_0x4e437f['query']);_0xd1c9c6[_0xe2ed('0x37')]=_[_0xe2ed('0x38')](_0xd1c9c6[_0xe2ed('0x39')],_0xd1c9c6[_0xe2ed('0x35')]);_0xba9d1b['attributes']=_[_0xe2ed('0x38')](_0xd1c9c6[_0xe2ed('0x39')],qs[_0xe2ed('0x3b')](_0x4e437f[_0xe2ed('0x35')][_0xe2ed('0x3b')]));_0xba9d1b[_0xe2ed('0x3a')]=_0xba9d1b[_0xe2ed('0x3a')][_0xe2ed('0x3c')]?_0xba9d1b[_0xe2ed('0x3a')]:_0xd1c9c6[_0xe2ed('0x39')];_0xba9d1b[_0xe2ed('0x3e')]=qs[_0xe2ed('0x3f')](_0x4e437f[_0xe2ed('0x35')][_0xe2ed('0x3f')]);_0xba9d1b[_0xe2ed('0x40')]=qs[_0xe2ed('0x37')](_[_0xe2ed('0x41')](_0x4e437f['query'],_0xd1c9c6[_0xe2ed('0x37')]));if(_0x4e437f[_0xe2ed('0x35')][_0xe2ed('0x42')]){_0xba9d1b[_0xe2ed('0x40')]=_[_0xe2ed('0x43')](_0xba9d1b[_0xe2ed('0x40')],{'$or':_[_0xe2ed('0x34')](_0xba9d1b[_0xe2ed('0x3a')],function(_0x102947){var _0x52b7c7={};_0x52b7c7[_0x102947]={'$like':'%'+_0x4e437f[_0xe2ed('0x35')][_0xe2ed('0x42')]+'%'};return _0x52b7c7;})});}_0xba9d1b=_[_0xe2ed('0x43')]({},_0xba9d1b,_0x4e437f[_0xe2ed('0x45')]);return _0x98ea46[_0xe2ed('0x88')](_0xba9d1b);}})[_0xe2ed('0x28')](function(_0x38ad50){if(_0x38ad50){_0xd3076c=_0x38ad50[_0xe2ed('0x3c')];if(!_0x4e437f[_0xe2ed('0x35')][_0xe2ed('0x59')](_0xe2ed('0x3d'))){_0xba9d1b[_0xe2ed('0x22')]=qs[_0xe2ed('0x22')](_0x4e437f[_0xe2ed('0x35')][_0xe2ed('0x22')]);_0xba9d1b['offset']=qs[_0xe2ed('0x20')](_0x4e437f[_0xe2ed('0x35')][_0xe2ed('0x20')]);}return _0x98ea46[_0xe2ed('0x88')](_0xba9d1b);}})[_0xe2ed('0x28')](function(_0x1ff15f){if(_0x1ff15f){return _0x1ff15f?{'count':_0xd3076c,'rows':_0x1ff15f}:null;}})[_0xe2ed('0x28')](respondWithResult(_0x175792,null))[_0xe2ed('0x4c')](handleError(_0x175792,null));};
\ No newline at end of file
+var _0xbe56=['count','offset','limit','set','Content-Range','apply','update','destroy','then','get','WhatsappQueues','UserProfileResource','sendStatus','error','stack','name','send','map','WhatsappQueue','rawAttributes','fieldName','type','key','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','body','describe','getMembers','UserWhatsappQueue','User','agent','whatsappPause','format','SIP','createdAt','updatedAt','Team','getTeams','addTeams','ids','online','voicePause','interface','Agents','sequelize','transaction','each','emit','removeTeams','select','field','team_has_whatsapp_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ut.UserId\x20=\x20?','push','toString','QueryTypes','TeamId','includes','all','union','isEmpty','removeAgents','forEach','userWhatsappQueue:remove','addAgents','omit','spread','isArray','getAgents','findOne','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./whatsappQueue.socket','register','status','json','undefined'];(function(_0x4f8c2d,_0x569a6c){var _0x402f81=function(_0x32f891){while(--_0x32f891){_0x4f8c2d['push'](_0x4f8c2d['shift']());}};_0x402f81(++_0x569a6c);}(_0xbe56,0x1ea));var _0x6be5=function(_0x51a682,_0x47c32a){_0x51a682=_0x51a682-0x0;var _0x5a7a00=_0xbe56[_0x51a682];return _0x5a7a00;};'use strict';var emlformat=require(_0x6be5('0x0'));var rimraf=require(_0x6be5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6be5('0x2'));var rp=require(_0x6be5('0x3'));var moment=require('moment');var BPromise=require(_0x6be5('0x4'));var Mustache=require(_0x6be5('0x5'));var util=require(_0x6be5('0x6'));var path=require('path');var sox=require(_0x6be5('0x7'));var csv=require(_0x6be5('0x8'));var ejs=require(_0x6be5('0x9'));var fs=require('fs');var fs_extra=require(_0x6be5('0xa'));var _=require(_0x6be5('0xb'));var squel=require(_0x6be5('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x6be5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x6be5('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x6be5('0xf'));var hardwareService=require(_0x6be5('0x10'));var logger=require(_0x6be5('0x11'))(_0x6be5('0x12'));var utils=require('../../config/utils');var config=require(_0x6be5('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x6be5('0x14'))['db'];config['redis']=_[_0x6be5('0x15')](config[_0x6be5('0x16')],{'host':_0x6be5('0x17'),'port':0x18eb});var socket=require(_0x6be5('0x18'))(new Redis(config['redis']));require(_0x6be5('0x19'))[_0x6be5('0x1a')](socket);function respondWithStatusCode(_0x20832b,_0x227a67){_0x227a67=_0x227a67||0xcc;return function(_0x10deee){if(_0x10deee){return _0x20832b['sendStatus'](_0x227a67);}return _0x20832b[_0x6be5('0x1b')](_0x227a67)['end']();};}function respondWithResult(_0x4221b5,_0x27b55a){_0x27b55a=_0x27b55a||0xc8;return function(_0x1130bd){if(_0x1130bd){return _0x4221b5[_0x6be5('0x1b')](_0x27b55a)[_0x6be5('0x1c')](_0x1130bd);}};}function respondWithFilteredResult(_0x41e525,_0xca67e){return function(_0x2d4b38){if(_0x2d4b38){var _0x5952b1=typeof _0xca67e['offset']===_0x6be5('0x1d')&&typeof _0xca67e['limit']===_0x6be5('0x1d');var _0x24583f=_0x2d4b38[_0x6be5('0x1e')];var _0x207700=_0x5952b1?0x0:_0xca67e[_0x6be5('0x1f')];var _0x346c06=_0x5952b1?_0x2d4b38[_0x6be5('0x1e')]:_0xca67e[_0x6be5('0x1f')]+_0xca67e[_0x6be5('0x20')];var _0x5aa1a6;if(_0x346c06>=_0x24583f){_0x346c06=_0x24583f;_0x5aa1a6=0xc8;}else{_0x5aa1a6=0xce;}_0x41e525['status'](_0x5aa1a6);return _0x41e525[_0x6be5('0x21')](_0x6be5('0x22'),_0x207700+'-'+_0x346c06+'/'+_0x24583f)[_0x6be5('0x1c')](_0x2d4b38);}return null;};}function patchUpdates(_0x34c29d){return function(_0x349561){try{jsonpatch[_0x6be5('0x23')](_0x349561,_0x34c29d,!![]);}catch(_0x438010){return BPromise['reject'](_0x438010);}return _0x349561['save']();};}function saveUpdates(_0x495a0,_0x3f2252){return function(_0x46390d){if(_0x46390d){return _0x46390d[_0x6be5('0x24')](_0x495a0)['then'](function(_0x1d5e0d){return _0x1d5e0d;});}return null;};}function removeEntity(_0x3c0bfb,_0xadc375){return function(_0x308116){if(_0x308116){return _0x308116[_0x6be5('0x25')]()[_0x6be5('0x26')](function(){var _0x5b418b=_0x308116[_0x6be5('0x27')]({'plain':!![]});var _0x19aef6=_0x6be5('0x28');return db[_0x6be5('0x29')][_0x6be5('0x25')]({'where':{'type':_0x19aef6,'resourceId':_0x5b418b['id']}})['then'](function(){return _0x308116;});})[_0x6be5('0x26')](function(){_0x3c0bfb[_0x6be5('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x174f50,_0x3f7264){return function(_0x1efae9){if(!_0x1efae9){_0x174f50[_0x6be5('0x2a')](0x194);}return _0x1efae9;};}function handleError(_0x27aa1c,_0xc6d28f){_0xc6d28f=_0xc6d28f||0x1f4;return function(_0x182789){logger[_0x6be5('0x2b')](_0x182789[_0x6be5('0x2c')]);if(_0x182789['name']){delete _0x182789[_0x6be5('0x2d')];}_0x27aa1c['status'](_0xc6d28f)[_0x6be5('0x2e')](_0x182789);};}exports['index']=function(_0x1d6671,_0x3bce62){var _0x5acd6a={},_0x52b620={},_0x468dfe={'count':0x0,'rows':[]};var _0x20057d=_[_0x6be5('0x2f')](db[_0x6be5('0x30')][_0x6be5('0x31')],function(_0x2fa41f){return{'name':_0x2fa41f[_0x6be5('0x32')],'type':_0x2fa41f[_0x6be5('0x33')][_0x6be5('0x34')]};});_0x52b620['model']=_['map'](_0x20057d,_0x6be5('0x2d'));_0x52b620[_0x6be5('0x35')]=_[_0x6be5('0x36')](_0x1d6671['query']);_0x52b620['filters']=_[_0x6be5('0x37')](_0x52b620[_0x6be5('0x38')],_0x52b620['query']);_0x5acd6a['attributes']=_[_0x6be5('0x37')](_0x52b620[_0x6be5('0x38')],qs['fields'](_0x1d6671[_0x6be5('0x35')][_0x6be5('0x39')]));_0x5acd6a['attributes']=_0x5acd6a[_0x6be5('0x3a')][_0x6be5('0x3b')]?_0x5acd6a['attributes']:_0x52b620[_0x6be5('0x38')];if(!_0x1d6671[_0x6be5('0x35')][_0x6be5('0x3c')](_0x6be5('0x3d'))){_0x5acd6a['limit']=qs[_0x6be5('0x20')](_0x1d6671[_0x6be5('0x35')][_0x6be5('0x20')]);_0x5acd6a[_0x6be5('0x1f')]=qs[_0x6be5('0x1f')](_0x1d6671[_0x6be5('0x35')]['offset']);}_0x5acd6a[_0x6be5('0x3e')]=qs[_0x6be5('0x3f')](_0x1d6671[_0x6be5('0x35')]['sort']);_0x5acd6a[_0x6be5('0x40')]=qs[_0x6be5('0x41')](_[_0x6be5('0x42')](_0x1d6671['query'],_0x52b620['filters']),_0x20057d);if(_0x1d6671[_0x6be5('0x35')][_0x6be5('0x43')]){_0x5acd6a[_0x6be5('0x40')]=_[_0x6be5('0x44')](_0x5acd6a['where'],{'$or':_[_0x6be5('0x2f')](_0x20057d,function(_0x1b05d5){if(_0x1b05d5[_0x6be5('0x33')]!=='VIRTUAL'){var _0x38230b={};_0x38230b[_0x1b05d5[_0x6be5('0x2d')]]={'$like':'%'+_0x1d6671[_0x6be5('0x35')][_0x6be5('0x43')]+'%'};return _0x38230b;}})});}_0x5acd6a=_[_0x6be5('0x44')]({},_0x5acd6a,_0x1d6671[_0x6be5('0x45')]);var _0x426d4b={'where':_0x5acd6a[_0x6be5('0x40')]};return db[_0x6be5('0x30')][_0x6be5('0x1e')](_0x426d4b)['then'](function(_0xe6ce14){_0x468dfe['count']=_0xe6ce14;if(_0x1d6671[_0x6be5('0x35')][_0x6be5('0x46')]){_0x5acd6a[_0x6be5('0x47')]=[{'all':!![]}];}return db[_0x6be5('0x30')][_0x6be5('0x48')](_0x5acd6a);})[_0x6be5('0x26')](function(_0x313ea7){_0x468dfe[_0x6be5('0x49')]=_0x313ea7;return _0x468dfe;})['then'](respondWithFilteredResult(_0x3bce62,_0x5acd6a))[_0x6be5('0x4a')](handleError(_0x3bce62,null));};exports[_0x6be5('0x4b')]=function(_0x2b84e5,_0x4e2dd8){var _0x5b2c7f={'raw':!![],'where':{'id':_0x2b84e5[_0x6be5('0x4c')]['id']}},_0x38d1f3={};_0x38d1f3[_0x6be5('0x38')]=_[_0x6be5('0x36')](db[_0x6be5('0x30')][_0x6be5('0x31')]);_0x38d1f3[_0x6be5('0x35')]=_[_0x6be5('0x36')](_0x2b84e5[_0x6be5('0x35')]);_0x38d1f3[_0x6be5('0x41')]=_[_0x6be5('0x37')](_0x38d1f3[_0x6be5('0x38')],_0x38d1f3[_0x6be5('0x35')]);_0x5b2c7f['attributes']=_[_0x6be5('0x37')](_0x38d1f3['model'],qs[_0x6be5('0x39')](_0x2b84e5[_0x6be5('0x35')][_0x6be5('0x39')]));_0x5b2c7f[_0x6be5('0x3a')]=_0x5b2c7f[_0x6be5('0x3a')][_0x6be5('0x3b')]?_0x5b2c7f['attributes']:_0x38d1f3[_0x6be5('0x38')];if(_0x2b84e5[_0x6be5('0x35')]['includeAll']){_0x5b2c7f['include']=[{'all':!![]}];}_0x5b2c7f=_[_0x6be5('0x44')]({},_0x5b2c7f,_0x2b84e5[_0x6be5('0x45')]);return db['WhatsappQueue'][_0x6be5('0x4d')](_0x5b2c7f)[_0x6be5('0x26')](handleEntityNotFound(_0x4e2dd8,null))[_0x6be5('0x26')](respondWithResult(_0x4e2dd8,null))['catch'](handleError(_0x4e2dd8,null));};exports[_0x6be5('0x4e')]=function(_0x19d41e,_0xc95430){return db['WhatsappQueue'][_0x6be5('0x4e')](_0x19d41e['body'],{})[_0x6be5('0x26')](function(_0x1bb816){var _0x6cb967=_0x19d41e[_0x6be5('0x4f')][_0x6be5('0x27')]({'plain':!![]});if(!_0x6cb967)throw new Error(_0x6be5('0x50'));if(_0x6cb967['role']===_0x6be5('0x4f')){var _0x294be2=_0x1bb816[_0x6be5('0x27')]({'plain':!![]});var _0x266304=_0x6be5('0x28');return db[_0x6be5('0x51')][_0x6be5('0x4d')]({'where':{'name':_0x266304,'userProfileId':_0x6cb967[_0x6be5('0x52')]},'raw':!![]})[_0x6be5('0x26')](function(_0x4a133a){if(_0x4a133a&&_0x4a133a['autoAssociation']===0x0){return db[_0x6be5('0x29')]['create']({'name':_0x294be2['name'],'resourceId':_0x294be2['id'],'type':_0x4a133a[_0x6be5('0x2d')],'sectionId':_0x4a133a['id']},{})[_0x6be5('0x26')](function(){return _0x1bb816;});}else{return _0x1bb816;}})[_0x6be5('0x4a')](function(_0x37ccc7){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x37ccc7);throw _0x37ccc7;});}return _0x1bb816;})[_0x6be5('0x26')](respondWithResult(_0xc95430,0xc9))[_0x6be5('0x4a')](handleError(_0xc95430,null));};exports[_0x6be5('0x24')]=function(_0x22cd83,_0x3901d0){if(_0x22cd83['body']['id']){delete _0x22cd83[_0x6be5('0x53')]['id'];}return db[_0x6be5('0x30')][_0x6be5('0x4d')]({'where':{'id':_0x22cd83[_0x6be5('0x4c')]['id']}})['then'](handleEntityNotFound(_0x3901d0,null))[_0x6be5('0x26')](saveUpdates(_0x22cd83[_0x6be5('0x53')],null))[_0x6be5('0x26')](respondWithResult(_0x3901d0,null))['catch'](handleError(_0x3901d0,null));};exports[_0x6be5('0x25')]=function(_0x4dcd9f,_0x28d9fe){return db[_0x6be5('0x30')][_0x6be5('0x4d')]({'where':{'id':_0x4dcd9f['params']['id']}})[_0x6be5('0x26')](handleEntityNotFound(_0x28d9fe,null))[_0x6be5('0x26')](removeEntity(_0x28d9fe,null))[_0x6be5('0x4a')](handleError(_0x28d9fe,null));};exports[_0x6be5('0x54')]=function(_0x32dfde,_0x3e368e){return db[_0x6be5('0x30')][_0x6be5('0x54')]()[_0x6be5('0x26')](respondWithResult(_0x3e368e,null))[_0x6be5('0x4a')](handleError(_0x3e368e,null));};exports[_0x6be5('0x55')]=function(_0x392b74,_0x1379ae,_0x532567){var _0x4dcb6c={'raw':!![],'where':{}},_0x4c80c5={},_0x51b15f;return db[_0x6be5('0x30')]['findOne']({'where':{'id':_0x392b74[_0x6be5('0x4c')]['id']}})['then'](handleEntityNotFound(_0x1379ae,null))[_0x6be5('0x26')](function(_0x42c2bb){if(_0x42c2bb){_0x51b15f=_0x42c2bb[_0x6be5('0x27')]({'plain':!![]});_0x4c80c5['model']=_[_0x6be5('0x36')](db[_0x6be5('0x56')]['rawAttributes']);_0x4c80c5[_0x6be5('0x35')]=_['keys'](_0x392b74[_0x6be5('0x35')]);_0x4c80c5[_0x6be5('0x41')]=_[_0x6be5('0x37')](_0x4c80c5[_0x6be5('0x38')],_0x4c80c5[_0x6be5('0x35')]);_0x4dcb6c[_0x6be5('0x3a')]=_[_0x6be5('0x37')](_0x4c80c5[_0x6be5('0x38')],qs[_0x6be5('0x39')](_0x392b74['query'][_0x6be5('0x39')]));_0x4dcb6c[_0x6be5('0x3a')]=_0x4dcb6c[_0x6be5('0x3a')][_0x6be5('0x3b')]?_0x4dcb6c[_0x6be5('0x3a')]:_0x4c80c5[_0x6be5('0x38')];if(!_0x392b74['query'][_0x6be5('0x3c')](_0x6be5('0x3d'))){_0x4dcb6c[_0x6be5('0x20')]=qs[_0x6be5('0x20')](_0x392b74['query'][_0x6be5('0x20')]);_0x4dcb6c[_0x6be5('0x1f')]=qs[_0x6be5('0x1f')](_0x392b74[_0x6be5('0x35')][_0x6be5('0x1f')]);}_0x4dcb6c['order']=qs[_0x6be5('0x3f')](_0x392b74[_0x6be5('0x35')][_0x6be5('0x3f')]);_0x4dcb6c[_0x6be5('0x40')]=qs[_0x6be5('0x41')](_[_0x6be5('0x42')](_0x392b74[_0x6be5('0x35')],_0x4c80c5[_0x6be5('0x41')]));_0x4dcb6c[_0x6be5('0x40')]['WhatsappQueueId']=_0x42c2bb['id'];if(_0x392b74[_0x6be5('0x35')][_0x6be5('0x43')]){_0x4dcb6c[_0x6be5('0x40')]=_[_0x6be5('0x44')](_0x4dcb6c[_0x6be5('0x40')],{'$or':_[_0x6be5('0x2f')](_0x4dcb6c[_0x6be5('0x3a')],function(_0x1a6139){var _0x46ba6f={};_0x46ba6f[_0x1a6139]={'$like':'%'+_0x392b74[_0x6be5('0x35')][_0x6be5('0x43')]+'%'};return _0x46ba6f;})});}_0x4dcb6c=_[_0x6be5('0x44')]({},_0x4dcb6c,_0x392b74[_0x6be5('0x45')]);return db[_0x6be5('0x56')][_0x6be5('0x48')](_0x4dcb6c);}})[_0x6be5('0x26')](function(_0x355ae4){if(_0x355ae4){return db[_0x6be5('0x57')]['findAndCountAll']({'where':{'id':_[_0x6be5('0x2f')](_0x355ae4,'UserId'),'role':_0x6be5('0x58')},'attributes':['id',_0x6be5('0x2d'),_0x6be5('0x59'),'updatedAt','createdAt']});}})[_0x6be5('0x26')](function(_0xe46626){if(_0xe46626){return{'count':_0xe46626[_0x6be5('0x1e')],'rows':_[_0x6be5('0x2f')](_0xe46626[_0x6be5('0x49')],function(_0x1bb6b4){return{'membername':_0x1bb6b4['name'],'UserId':_0x1bb6b4['id'],'queue_name':_0x51b15f[_0x6be5('0x2d')],'WhatsappQueueId':_0x51b15f['id'],'interface':util[_0x6be5('0x5a')]('%s/%s',_0x6be5('0x5b'),_0x1bb6b4['name']),'penalty':0x0,'paused':_0x1bb6b4[_0x6be5('0x59')],'createdAt':_0x1bb6b4[_0x6be5('0x5c')],'updatedAt':_0x1bb6b4[_0x6be5('0x5d')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x1379ae,_0x4dcb6c))['catch'](handleError(_0x1379ae,null));};exports['getTeams']=function(_0x5989b3,_0x4be11d,_0xdf1ccf){var _0x2d7f2c={};var _0x2b105a={};var _0x5795a9;var _0x1b93b1;return db['WhatsappQueue']['findOne']({'where':{'id':_0x5989b3[_0x6be5('0x4c')]['id']}})[_0x6be5('0x26')](handleEntityNotFound(_0x4be11d,null))[_0x6be5('0x26')](function(_0x1d208f){if(_0x1d208f){_0x5795a9=_0x1d208f;_0x2b105a['model']=_['keys'](db[_0x6be5('0x5e')][_0x6be5('0x31')]);_0x2b105a[_0x6be5('0x35')]=_[_0x6be5('0x36')](_0x5989b3[_0x6be5('0x35')]);_0x2b105a[_0x6be5('0x41')]=_[_0x6be5('0x37')](_0x2b105a['model'],_0x2b105a[_0x6be5('0x35')]);_0x2d7f2c[_0x6be5('0x3a')]=_['intersection'](_0x2b105a[_0x6be5('0x38')],qs[_0x6be5('0x39')](_0x5989b3[_0x6be5('0x35')][_0x6be5('0x39')]));_0x2d7f2c['attributes']=_0x2d7f2c[_0x6be5('0x3a')][_0x6be5('0x3b')]?_0x2d7f2c[_0x6be5('0x3a')]:_0x2b105a[_0x6be5('0x38')];_0x2d7f2c[_0x6be5('0x3e')]=qs[_0x6be5('0x3f')](_0x5989b3['query']['sort']);_0x2d7f2c[_0x6be5('0x40')]=qs[_0x6be5('0x41')](_[_0x6be5('0x42')](_0x5989b3[_0x6be5('0x35')],_0x2b105a['filters']));if(_0x5989b3[_0x6be5('0x35')]['filter']){_0x2d7f2c[_0x6be5('0x40')]=_['merge'](_0x2d7f2c[_0x6be5('0x40')],{'$or':_[_0x6be5('0x2f')](_0x2d7f2c['attributes'],function(_0x48e855){var _0x3dca7c={};_0x3dca7c[_0x48e855]={'$like':'%'+_0x5989b3[_0x6be5('0x35')][_0x6be5('0x43')]+'%'};return _0x3dca7c;})});}_0x2d7f2c=_[_0x6be5('0x44')]({},_0x2d7f2c,_0x5989b3['options']);return _0x5795a9[_0x6be5('0x5f')](_0x2d7f2c);}})['then'](function(_0x4000f8){if(_0x4000f8){_0x1b93b1=_0x4000f8[_0x6be5('0x3b')];if(!_0x5989b3[_0x6be5('0x35')]['hasOwnProperty'](_0x6be5('0x3d'))){_0x2d7f2c[_0x6be5('0x20')]=qs['limit'](_0x5989b3[_0x6be5('0x35')][_0x6be5('0x20')]);_0x2d7f2c[_0x6be5('0x1f')]=qs['offset'](_0x5989b3[_0x6be5('0x35')][_0x6be5('0x1f')]);}return _0x5795a9[_0x6be5('0x5f')](_0x2d7f2c);}})[_0x6be5('0x26')](function(_0x4179d6){if(_0x4179d6){return _0x4179d6?{'count':_0x1b93b1,'rows':_0x4179d6}:null;}})[_0x6be5('0x26')](respondWithResult(_0x4be11d,null))[_0x6be5('0x4a')](handleError(_0x4be11d,null));};exports[_0x6be5('0x60')]=function(_0x1a50cd,_0x303f31,_0x1a82d6){var _0x4626dc=_0x1a50cd[_0x6be5('0x53')][_0x6be5('0x61')];return db[_0x6be5('0x5e')]['findAll']({'where':{'id':_0x4626dc},'attributes':['id'],'include':[{'model':db[_0x6be5('0x57')],'as':'Agents','attributes':['id','name',_0x6be5('0x62'),_0x6be5('0x63'),_0x6be5('0x64')],'raw':!![]}]})[_0x6be5('0x26')](function(_0x2c61d9){if(_0x2c61d9){var _0x324454=_['flatMap'](_0x2c61d9,function(_0x12e756){var _0x89f26b=_0x12e756['get']({'plain':!![]});return _0x89f26b[_0x6be5('0x65')];});return db[_0x6be5('0x30')][_0x6be5('0x4d')]({'where':{'id':_0x1a50cd[_0x6be5('0x4c')]['id']}})[_0x6be5('0x26')](function(_0x580064){return db[_0x6be5('0x66')][_0x6be5('0x67')](function(_0x1ce34b){return _0x580064[_0x6be5('0x60')](_0x4626dc,{'transaction':_0x1ce34b})[_0x6be5('0x26')](function(){return BPromise[_0x6be5('0x68')](_0x324454,function(_0x4fc1d9){return db['UserWhatsappQueue']['findOrCreate']({'where':{'UserId':_0x4fc1d9['id'],'WhatsappQueueId':_0x1a50cd['params']['id']},'transaction':_0x1ce34b});});})[_0x6be5('0x26')](function(){_0x324454['forEach'](function(_0x140522){socket[_0x6be5('0x69')]('userWhatsappQueue:save',{'UserId':_0x140522['id'],'WhatsappQueueId':_0x580064['id']});});});});});}})[_0x6be5('0x26')](respondWithStatusCode(_0x303f31,null))[_0x6be5('0x4a')](handleError(_0x303f31,null));};exports[_0x6be5('0x6a')]=function(_0x2bd4bb,_0x2f4dca,_0x2d16f2){return db[_0x6be5('0x5e')][_0x6be5('0x48')]({'where':{'id':_0x2bd4bb['query'][_0x6be5('0x61')]},'attributes':['id'],'include':[{'model':db[_0x6be5('0x57')],'as':_0x6be5('0x65'),'attributes':['id'],'raw':!![]}]})[_0x6be5('0x26')](handleEntityNotFound(_0x2f4dca,null))[_0x6be5('0x26')](function(_0x391af6){var _0x535338=_[_0x6be5('0x2f')](_0x391af6,'id');var _0x27ea02=[];var _0x3cbde9=[];var _0x205321=squel[_0x6be5('0x6b')]();_0x205321[_0x6be5('0x6c')]('tq.TeamId')['from'](_0x6be5('0x6d'),'tq')['join'](_0x6be5('0x6e'),'ut',_0x6be5('0x6f'))[_0x6be5('0x40')]('WhatsappQueueId\x20=\x20?',_0x2bd4bb[_0x6be5('0x4c')]['id']);for(var _0x1c7c88=0x0;_0x1c7c88<_0x391af6[_0x6be5('0x3b')];_0x1c7c88+=0x1){let _0x18410f=_0x391af6[_0x1c7c88];for(var _0x31a61d=0x0;_0x31a61d<_0x18410f['Agents'][_0x6be5('0x3b')];_0x31a61d+=0x1){let _0x5687d4=_0x18410f[_0x6be5('0x65')][_0x31a61d];var _0x3de976=_0x205321['clone']();_0x3de976['where'](_0x6be5('0x70'),_0x5687d4['id']);_0x3cbde9[_0x6be5('0x71')](db[_0x6be5('0x66')][_0x6be5('0x35')](_0x3de976[_0x6be5('0x72')](),{'type':db[_0x6be5('0x66')][_0x6be5('0x73')]['SELECT']})[_0x6be5('0x26')](function(_0x483128){if(_0x483128[_0x6be5('0x3b')]===0x1){return _0x5687d4['id'];}else{var _0x101d94=_['every'](_[_0x6be5('0x2f')](_0x483128,_0x6be5('0x74')),function(_0x1c5534){return _[_0x6be5('0x75')](_0x535338,_0x1c5534);});if(_0x101d94){return _0x5687d4['id'];}}}));}}return BPromise[_0x6be5('0x76')](_0x3cbde9)['then'](function(_0x4b5139){_0x27ea02=_(_0x27ea02)[_0x6be5('0x77')](_0x4b5139)['compact']()['value']();return db[_0x6be5('0x30')][_0x6be5('0x4d')]({'where':{'id':_0x2bd4bb['params']['id']}})[_0x6be5('0x26')](function(_0x3c948b){return db[_0x6be5('0x66')][_0x6be5('0x67')](function(_0x3a5d8b){return _0x3c948b['removeTeams'](_0x2bd4bb[_0x6be5('0x35')][_0x6be5('0x61')],{'transaction':_0x3a5d8b})[_0x6be5('0x26')](function(){if(!_[_0x6be5('0x78')](_0x27ea02)){return _0x3c948b[_0x6be5('0x79')](_0x27ea02,{'transaction':_0x3a5d8b});}})['then'](function(){_0x27ea02[_0x6be5('0x7a')](function(_0x461473){socket['emit'](_0x6be5('0x7b'),{'UserId':_0x461473,'WhatsappQueueId':_0x3c948b['id']});});});});});});})[_0x6be5('0x26')](respondWithStatusCode(_0x2f4dca,null))[_0x6be5('0x4a')](handleError(_0x2f4dca,null));};exports[_0x6be5('0x7c')]=function(_0x4035c8,_0x2cf42d,_0x44cdc3){return db[_0x6be5('0x30')]['find']({'where':{'id':_0x4035c8[_0x6be5('0x4c')]['id']}})['then'](handleEntityNotFound(_0x2cf42d,null))[_0x6be5('0x26')](function(_0x58e633){if(_0x58e633){return _0x58e633[_0x6be5('0x7c')](_0x4035c8[_0x6be5('0x53')][_0x6be5('0x61')],_[_0x6be5('0x7d')](_0x4035c8['body'],['ids','id'])||{})[_0x6be5('0x7e')](function(_0x4a5c7d){for(var _0x12873d=0x0;_0x12873d<_0x4035c8[_0x6be5('0x53')][_0x6be5('0x61')][_0x6be5('0x3b')];_0x12873d+=0x1){socket[_0x6be5('0x69')]('userWhatsappQueue:save',{'UserId':Number(_0x4035c8[_0x6be5('0x53')][_0x6be5('0x61')][_0x12873d]),'WhatsappQueueId':Number(_0x4035c8[_0x6be5('0x4c')]['id'])});}return _0x4a5c7d;});}})[_0x6be5('0x26')](respondWithResult(_0x2cf42d,null))[_0x6be5('0x4a')](handleError(_0x2cf42d,null));};exports[_0x6be5('0x79')]=function(_0x260768,_0x38f6e1,_0x8269b6){return db[_0x6be5('0x30')][_0x6be5('0x4d')]({'where':{'id':_0x260768[_0x6be5('0x4c')]['id']}})[_0x6be5('0x26')](handleEntityNotFound(_0x38f6e1,null))['then'](function(_0x3dde9c){if(_0x3dde9c){return _0x3dde9c['removeAgents'](_0x260768[_0x6be5('0x35')][_0x6be5('0x61')])[_0x6be5('0x26')](function(){if(_[_0x6be5('0x7f')](_0x260768[_0x6be5('0x35')][_0x6be5('0x61')])){for(var _0x23a59a=0x0;_0x23a59a<_0x260768[_0x6be5('0x35')]['ids'][_0x6be5('0x3b')];_0x23a59a+=0x1){socket[_0x6be5('0x69')](_0x6be5('0x7b'),{'UserId':Number(_0x260768[_0x6be5('0x35')][_0x6be5('0x61')][_0x23a59a]),'WhatsappQueueId':Number(_0x260768[_0x6be5('0x4c')]['id'])});}}else{socket[_0x6be5('0x69')](_0x6be5('0x7b'),{'UserId':Number(_0x260768['query'][_0x6be5('0x61')]),'WhatsappQueueId':Number(_0x260768[_0x6be5('0x4c')]['id'])});}});}})['then'](respondWithStatusCode(_0x38f6e1,null))[_0x6be5('0x4a')](handleError(_0x38f6e1,null));};exports[_0x6be5('0x80')]=function(_0x2d9461,_0x3e4855,_0x53d242){var _0x358ce0={};var _0x3f87f4={};var _0x262ec1;var _0x21691d;return db[_0x6be5('0x30')][_0x6be5('0x81')]({'where':{'id':_0x2d9461['params']['id']}})[_0x6be5('0x26')](handleEntityNotFound(_0x3e4855,null))[_0x6be5('0x26')](function(_0x250801){if(_0x250801){_0x262ec1=_0x250801;_0x3f87f4['model']=_['keys'](db['User'][_0x6be5('0x31')]);_0x3f87f4[_0x6be5('0x35')]=_['keys'](_0x2d9461['query']);_0x3f87f4[_0x6be5('0x41')]=_[_0x6be5('0x37')](_0x3f87f4['model'],_0x3f87f4[_0x6be5('0x35')]);_0x358ce0[_0x6be5('0x3a')]=_[_0x6be5('0x37')](_0x3f87f4[_0x6be5('0x38')],qs['fields'](_0x2d9461['query']['fields']));_0x358ce0[_0x6be5('0x3a')]=_0x358ce0[_0x6be5('0x3a')]['length']?_0x358ce0[_0x6be5('0x3a')]:_0x3f87f4[_0x6be5('0x38')];_0x358ce0['order']=qs[_0x6be5('0x3f')](_0x2d9461[_0x6be5('0x35')]['sort']);_0x358ce0[_0x6be5('0x40')]=qs['filters'](_[_0x6be5('0x42')](_0x2d9461[_0x6be5('0x35')],_0x3f87f4['filters']));if(_0x2d9461[_0x6be5('0x35')][_0x6be5('0x43')]){_0x358ce0[_0x6be5('0x40')]=_[_0x6be5('0x44')](_0x358ce0['where'],{'$or':_[_0x6be5('0x2f')](_0x358ce0[_0x6be5('0x3a')],function(_0x345c4c){var _0xd35118={};_0xd35118[_0x345c4c]={'$like':'%'+_0x2d9461[_0x6be5('0x35')]['filter']+'%'};return _0xd35118;})});}_0x358ce0=_[_0x6be5('0x44')]({},_0x358ce0,_0x2d9461[_0x6be5('0x45')]);return _0x262ec1[_0x6be5('0x80')](_0x358ce0);}})['then'](function(_0x2dad5a){if(_0x2dad5a){_0x21691d=_0x2dad5a[_0x6be5('0x3b')];if(!_0x2d9461[_0x6be5('0x35')][_0x6be5('0x3c')]('nolimit')){_0x358ce0[_0x6be5('0x20')]=qs['limit'](_0x2d9461[_0x6be5('0x35')][_0x6be5('0x20')]);_0x358ce0[_0x6be5('0x1f')]=qs['offset'](_0x2d9461[_0x6be5('0x35')][_0x6be5('0x1f')]);}return _0x262ec1[_0x6be5('0x80')](_0x358ce0);}})['then'](function(_0x342bfe){if(_0x342bfe){return _0x342bfe?{'count':_0x21691d,'rows':_0x342bfe}:null;}})['then'](respondWithResult(_0x3e4855,null))[_0x6be5('0x4a')](handleError(_0x3e4855,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xebf2=['WhatsappQueue','setMaxListeners','update','remove','emit','exports','events','../../mysqldb'];(function(_0x41bdd4,_0x3d5c76){var _0x5c03a6=function(_0x59634a){while(--_0x59634a){_0x41bdd4['push'](_0x41bdd4['shift']());}};_0x5c03a6(++_0x3d5c76);}(_0xebf2,0x1ee));var _0x2ebf=function(_0x51002c,_0x50f211){_0x51002c=_0x51002c-0x0;var _0x22c8e4=_0xebf2[_0x51002c];return _0x22c8e4;};'use strict';var EventEmitter=require(_0x2ebf('0x0'));var WhatsappQueue=require(_0x2ebf('0x1'))['db'][_0x2ebf('0x2')];var WhatsappQueueEvents=new EventEmitter();WhatsappQueueEvents[_0x2ebf('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x2ebf('0x4'),'afterDestroy':_0x2ebf('0x5')};function emitEvent(_0x934fb){return function(_0x53d3fd,_0x34570b,_0xc881d5){WhatsappQueueEvents['emit'](_0x934fb+':'+_0x53d3fd['id'],_0x53d3fd);WhatsappQueueEvents[_0x2ebf('0x6')](_0x934fb,_0x53d3fd);_0xc881d5(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappQueue['hook'](e,emitEvent(event));}}module[_0x2ebf('0x7')]=WhatsappQueueEvents;
\ No newline at end of file
+var _0x1b34=['hook','exports','../../mysqldb','WhatsappQueue','setMaxListeners','remove','emit','hasOwnProperty'];(function(_0xe0dee2,_0x35d2a8){var _0x568ed0=function(_0x3b1644){while(--_0x3b1644){_0xe0dee2['push'](_0xe0dee2['shift']());}};_0x568ed0(++_0x35d2a8);}(_0x1b34,0xa2));var _0x41b3=function(_0x5688db,_0x234bb9){_0x5688db=_0x5688db-0x0;var _0x1be3ef=_0x1b34[_0x5688db];return _0x1be3ef;};'use strict';var EventEmitter=require('events');var WhatsappQueue=require(_0x41b3('0x0'))['db'][_0x41b3('0x1')];var WhatsappQueueEvents=new EventEmitter();WhatsappQueueEvents[_0x41b3('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x41b3('0x3')};function emitEvent(_0x3e43f1){return function(_0x4446a8,_0x2bd1fb,_0x4c7e29){WhatsappQueueEvents['emit'](_0x3e43f1+':'+_0x4446a8['id'],_0x4446a8);WhatsappQueueEvents[_0x41b3('0x4')](_0x3e43f1,_0x4446a8);_0x4c7e29(null);};}for(var e in events){if(events[_0x41b3('0x5')](e)){var event=events[e];WhatsappQueue[_0x41b3('0x6')](e,emitEvent(event));}}module[_0x41b3('0x7')]=WhatsappQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c1a=['bluebird','path','rimraf','../../config/environment','./whatsappQueue.attributes','exports','WhatsappQueue','whatsapp_queues','util','api'];(function(_0x16b9ed,_0x56517a){var _0x66b1f8=function(_0x1c883){while(--_0x1c883){_0x16b9ed['push'](_0x16b9ed['shift']());}};_0x66b1f8(++_0x56517a);}(_0x9c1a,0x166));var _0xa9c1=function(_0xed9dd,_0x184eb5){_0xed9dd=_0xed9dd-0x0;var _0x2b0faf=_0x9c1a[_0xed9dd];return _0x2b0faf;};'use strict';var _=require('lodash');var util=require(_0xa9c1('0x0'));var logger=require('../../config/logger')(_0xa9c1('0x1'));var moment=require('moment');var BPromise=require(_0xa9c1('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xa9c1('0x3'));var rimraf=require(_0xa9c1('0x4'));var config=require(_0xa9c1('0x5'));var attributes=require(_0xa9c1('0x6'));module[_0xa9c1('0x7')]=function(_0xf77b97,_0x1b9554){return _0xf77b97['define'](_0xa9c1('0x8'),attributes,{'tableName':_0xa9c1('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9be5=['whatsapp_queues','lodash','util','../../config/logger','api','bluebird','path','rimraf','../../config/environment','./whatsappQueue.attributes','exports','define','WhatsappQueue'];(function(_0x471448,_0x1c0e9e){var _0x38190b=function(_0x41dd2f){while(--_0x41dd2f){_0x471448['push'](_0x471448['shift']());}};_0x38190b(++_0x1c0e9e);}(_0x9be5,0x194));var _0x59be=function(_0x122096,_0x60c295){_0x122096=_0x122096-0x0;var _0x3d1966=_0x9be5[_0x122096];return _0x3d1966;};'use strict';var _=require(_0x59be('0x0'));var util=require(_0x59be('0x1'));var logger=require(_0x59be('0x2'))(_0x59be('0x3'));var moment=require('moment');var BPromise=require(_0x59be('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x59be('0x5'));var rimraf=require(_0x59be('0x6'));var config=require(_0x59be('0x7'));var attributes=require(_0x59be('0x8'));module[_0x59be('0x9')]=function(_0x17bf32,_0x214dbf){return _0x17bf32[_0x59be('0xa')](_0x59be('0xb'),attributes,{'tableName':_0x59be('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d19=['GetWhatsappQueue','find','ShowWhatsappQueue','stringify','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','./whatsappQueue.socket','register','request','then','info','debug','WhatsappQueue,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','WhatsappQueue,\x20%s,\x20%s','result','catch','WhatsappQueue','findAll','options','raw','attributes','include','map','model'];(function(_0x185f8d,_0x40c1f3){var _0x2133c5=function(_0x216db5){while(--_0x216db5){_0x185f8d['push'](_0x185f8d['shift']());}};_0x2133c5(++_0x40c1f3);}(_0x1d19,0x7c));var _0x91d1=function(_0x36a025,_0x356aea){_0x36a025=_0x36a025-0x0;var _0xfcbacf=_0x1d19[_0x36a025];return _0xfcbacf;};'use strict';var _=require(_0x91d1('0x0'));var util=require('util');var moment=require(_0x91d1('0x1'));var BPromise=require(_0x91d1('0x2'));var rs=require(_0x91d1('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x91d1('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x91d1('0x5'))('rpc');var config=require(_0x91d1('0x6'));var jayson=require(_0x91d1('0x7'));var client=jayson[_0x91d1('0x8')][_0x91d1('0x9')]({'port':0x232a});config['redis']=_[_0x91d1('0xa')](config[_0x91d1('0xb')],{'host':_0x91d1('0xc'),'port':0x18eb});var socket=require(_0x91d1('0xd'))(new Redis(config[_0x91d1('0xb')]));require(_0x91d1('0xe'))[_0x91d1('0xf')](socket);function respondWithRpcPromise(_0x57ffb3,_0x4e74de,_0x1d4d1e){return new BPromise(function(_0x34e42b,_0x55c3f3){return client[_0x91d1('0x10')](_0x57ffb3,_0x1d4d1e)[_0x91d1('0x11')](function(_0x20bad4){logger[_0x91d1('0x12')]('WhatsappQueue,\x20%s,\x20%s',_0x4e74de,'request\x20sent');logger[_0x91d1('0x13')](_0x91d1('0x14'),_0x4e74de,_0x91d1('0x15'),JSON['stringify'](_0x20bad4));if(_0x20bad4[_0x91d1('0x16')]){if(_0x20bad4[_0x91d1('0x16')][_0x91d1('0x17')]===0x1f4){logger['error']('WhatsappQueue,\x20%s,\x20%s',_0x4e74de,_0x20bad4['error'][_0x91d1('0x18')]);return _0x55c3f3(_0x20bad4[_0x91d1('0x16')][_0x91d1('0x18')]);}logger[_0x91d1('0x16')](_0x91d1('0x19'),_0x4e74de,_0x20bad4['error'][_0x91d1('0x18')]);return _0x34e42b(_0x20bad4[_0x91d1('0x16')][_0x91d1('0x18')]);}else{logger[_0x91d1('0x12')](_0x91d1('0x19'),_0x4e74de,_0x91d1('0x15'));_0x34e42b(_0x20bad4[_0x91d1('0x1a')][_0x91d1('0x18')]);}})[_0x91d1('0x1b')](function(_0x2ea4fc){logger['error'](_0x91d1('0x19'),_0x4e74de,_0x2ea4fc);_0x55c3f3(_0x2ea4fc);});});}exports['GetWhatsappQueue']=function(_0x5a4372){var _0x370889=this;return new Promise(function(_0x26690f,_0x412108){return db[_0x91d1('0x1c')][_0x91d1('0x1d')]({'raw':_0x5a4372[_0x91d1('0x1e')]?_0x5a4372[_0x91d1('0x1e')][_0x91d1('0x1f')]===undefined?!![]:![]:!![],'where':_0x5a4372[_0x91d1('0x1e')]?_0x5a4372[_0x91d1('0x1e')]['where']||null:null,'attributes':_0x5a4372[_0x91d1('0x1e')]?_0x5a4372['options'][_0x91d1('0x20')]||null:null,'limit':_0x5a4372[_0x91d1('0x1e')]?_0x5a4372[_0x91d1('0x1e')]['limit']||null:null,'include':_0x5a4372[_0x91d1('0x1e')]?_0x5a4372['options'][_0x91d1('0x21')]?_[_0x91d1('0x22')](_0x5a4372['options'][_0x91d1('0x21')],function(_0x5f5cfb){return{'model':db[_0x5f5cfb[_0x91d1('0x23')]],'as':_0x5f5cfb['as'],'attributes':_0x5f5cfb[_0x91d1('0x20')],'include':_0x5f5cfb[_0x91d1('0x21')]?_['map'](_0x5f5cfb[_0x91d1('0x21')],function(_0x5c75d8){return{'model':db[_0x5c75d8['model']],'as':_0x5c75d8['as'],'attributes':_0x5c75d8[_0x91d1('0x20')],'include':_0x5c75d8[_0x91d1('0x21')]?_[_0x91d1('0x22')](_0x5c75d8[_0x91d1('0x21')],function(_0x57113b){return{'model':db[_0x57113b['model']],'as':_0x57113b['as'],'attributes':_0x57113b[_0x91d1('0x20')]};}):[]};}):[]};}):[]:[]})[_0x91d1('0x11')](function(_0x2f9fc4){logger[_0x91d1('0x12')](_0x91d1('0x24'),_0x5a4372);logger[_0x91d1('0x13')](_0x91d1('0x24'),_0x5a4372,JSON['stringify'](_0x2f9fc4));_0x26690f(_0x2f9fc4);})[_0x91d1('0x1b')](function(_0x3b32eb){logger[_0x91d1('0x16')](_0x91d1('0x24'),_0x3b32eb['message'],_0x5a4372);_0x412108(_0x370889[_0x91d1('0x16')](0x1f4,_0x3b32eb['message']));});});};exports['ShowWhatsappQueue']=function(_0x393913){var _0x361c67=this;return new Promise(function(_0x2a600a,_0x161699){return db[_0x91d1('0x1c')][_0x91d1('0x25')]({'raw':_0x393913['options']?_0x393913[_0x91d1('0x1e')][_0x91d1('0x1f')]===undefined?!![]:![]:!![],'where':_0x393913[_0x91d1('0x1e')]?_0x393913[_0x91d1('0x1e')]['where']||null:null,'attributes':_0x393913['options']?_0x393913[_0x91d1('0x1e')]['attributes']||null:null,'include':_0x393913[_0x91d1('0x1e')]?_0x393913[_0x91d1('0x1e')]['include']?_[_0x91d1('0x22')](_0x393913[_0x91d1('0x1e')][_0x91d1('0x21')],function(_0x1995d9){return{'model':db[_0x1995d9[_0x91d1('0x23')]],'as':_0x1995d9['as'],'attributes':_0x1995d9[_0x91d1('0x20')],'include':_0x1995d9['include']?_['map'](_0x1995d9[_0x91d1('0x21')],function(_0x5e5948){return{'model':db[_0x5e5948[_0x91d1('0x23')]],'as':_0x5e5948['as'],'attributes':_0x5e5948[_0x91d1('0x20')],'include':_0x5e5948['include']?_[_0x91d1('0x22')](_0x5e5948[_0x91d1('0x21')],function(_0x317893){return{'model':db[_0x317893[_0x91d1('0x23')]],'as':_0x317893['as'],'attributes':_0x317893['attributes']};}):[]};}):[]};}):[]:[]})[_0x91d1('0x11')](function(_0x7434e6){logger[_0x91d1('0x12')](_0x91d1('0x26'),_0x393913);logger[_0x91d1('0x13')](_0x91d1('0x26'),_0x393913,JSON[_0x91d1('0x27')](_0x7434e6));_0x2a600a(_0x7434e6);})['catch'](function(_0x157fd){logger[_0x91d1('0x16')](_0x91d1('0x26'),_0x157fd[_0x91d1('0x18')],_0x393913);_0x161699(_0x361c67[_0x91d1('0x16')](0x1f4,_0x157fd[_0x91d1('0x18')]));});});};
\ No newline at end of file
+var _0x52e1=['raw','where','attributes','limit','include','map','model','stringify','ShowWhatsappQueue','find','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','register','request','then','request\x20sent','debug','WhatsappQueue,\x20%s,\x20%s,\x20%s','error','WhatsappQueue,\x20%s,\x20%s','message','info','result','catch','GetWhatsappQueue','WhatsappQueue','options'];(function(_0x25d66f,_0x17ad4c){var _0x4feb17=function(_0x2b32a7){while(--_0x2b32a7){_0x25d66f['push'](_0x25d66f['shift']());}};_0x4feb17(++_0x17ad4c);}(_0x52e1,0x122));var _0x152e=function(_0x305fc8,_0x16e31e){_0x305fc8=_0x305fc8-0x0;var _0x427cea=_0x52e1[_0x305fc8];return _0x427cea;};'use strict';var _=require(_0x152e('0x0'));var util=require('util');var moment=require(_0x152e('0x1'));var BPromise=require(_0x152e('0x2'));var rs=require(_0x152e('0x3'));var fs=require('fs');var Redis=require(_0x152e('0x4'));var db=require(_0x152e('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x152e('0x6'))(_0x152e('0x7'));var config=require(_0x152e('0x8'));var jayson=require(_0x152e('0x9'));var client=jayson[_0x152e('0xa')]['http']({'port':0x232a});config[_0x152e('0xb')]=_[_0x152e('0xc')](config[_0x152e('0xb')],{'host':_0x152e('0xd'),'port':0x18eb});var socket=require(_0x152e('0xe'))(new Redis(config[_0x152e('0xb')]));require('./whatsappQueue.socket')[_0x152e('0xf')](socket);function respondWithRpcPromise(_0x40c763,_0x1354af,_0x39b366){return new BPromise(function(_0x1b572d,_0x23fd40){return client[_0x152e('0x10')](_0x40c763,_0x39b366)[_0x152e('0x11')](function(_0x5bafd7){logger['info']('WhatsappQueue,\x20%s,\x20%s',_0x1354af,_0x152e('0x12'));logger[_0x152e('0x13')](_0x152e('0x14'),_0x1354af,'request\x20sent',JSON['stringify'](_0x5bafd7));if(_0x5bafd7[_0x152e('0x15')]){if(_0x5bafd7[_0x152e('0x15')]['code']===0x1f4){logger[_0x152e('0x15')](_0x152e('0x16'),_0x1354af,_0x5bafd7[_0x152e('0x15')][_0x152e('0x17')]);return _0x23fd40(_0x5bafd7[_0x152e('0x15')][_0x152e('0x17')]);}logger[_0x152e('0x15')](_0x152e('0x16'),_0x1354af,_0x5bafd7[_0x152e('0x15')][_0x152e('0x17')]);return _0x1b572d(_0x5bafd7['error']['message']);}else{logger[_0x152e('0x18')](_0x152e('0x16'),_0x1354af,_0x152e('0x12'));_0x1b572d(_0x5bafd7[_0x152e('0x19')][_0x152e('0x17')]);}})[_0x152e('0x1a')](function(_0x592ee4){logger[_0x152e('0x15')](_0x152e('0x16'),_0x1354af,_0x592ee4);_0x23fd40(_0x592ee4);});});}exports[_0x152e('0x1b')]=function(_0x188b5e){var _0x1177bf=this;return new Promise(function(_0x2fee6c,_0x4e2ba7){return db[_0x152e('0x1c')]['findAll']({'raw':_0x188b5e[_0x152e('0x1d')]?_0x188b5e[_0x152e('0x1d')][_0x152e('0x1e')]===undefined?!![]:![]:!![],'where':_0x188b5e[_0x152e('0x1d')]?_0x188b5e[_0x152e('0x1d')][_0x152e('0x1f')]||null:null,'attributes':_0x188b5e[_0x152e('0x1d')]?_0x188b5e[_0x152e('0x1d')][_0x152e('0x20')]||null:null,'limit':_0x188b5e[_0x152e('0x1d')]?_0x188b5e[_0x152e('0x1d')][_0x152e('0x21')]||null:null,'include':_0x188b5e[_0x152e('0x1d')]?_0x188b5e['options'][_0x152e('0x22')]?_[_0x152e('0x23')](_0x188b5e[_0x152e('0x1d')]['include'],function(_0x2c2512){return{'model':db[_0x2c2512['model']],'as':_0x2c2512['as'],'attributes':_0x2c2512[_0x152e('0x20')],'include':_0x2c2512[_0x152e('0x22')]?_[_0x152e('0x23')](_0x2c2512['include'],function(_0x2a4200){return{'model':db[_0x2a4200[_0x152e('0x24')]],'as':_0x2a4200['as'],'attributes':_0x2a4200[_0x152e('0x20')],'include':_0x2a4200['include']?_[_0x152e('0x23')](_0x2a4200[_0x152e('0x22')],function(_0x500990){return{'model':db[_0x500990[_0x152e('0x24')]],'as':_0x500990['as'],'attributes':_0x500990[_0x152e('0x20')]};}):[]};}):[]};}):[]:[]})[_0x152e('0x11')](function(_0xf2e238){logger[_0x152e('0x18')](_0x152e('0x1b'),_0x188b5e);logger[_0x152e('0x13')](_0x152e('0x1b'),_0x188b5e,JSON[_0x152e('0x25')](_0xf2e238));_0x2fee6c(_0xf2e238);})[_0x152e('0x1a')](function(_0x2ebf12){logger[_0x152e('0x15')]('GetWhatsappQueue',_0x2ebf12[_0x152e('0x17')],_0x188b5e);_0x4e2ba7(_0x1177bf[_0x152e('0x15')](0x1f4,_0x2ebf12['message']));});});};exports[_0x152e('0x26')]=function(_0x25c057){var _0x5b5a01=this;return new Promise(function(_0x2b5558,_0x350a2b){return db[_0x152e('0x1c')][_0x152e('0x27')]({'raw':_0x25c057[_0x152e('0x1d')]?_0x25c057[_0x152e('0x1d')][_0x152e('0x1e')]===undefined?!![]:![]:!![],'where':_0x25c057[_0x152e('0x1d')]?_0x25c057[_0x152e('0x1d')][_0x152e('0x1f')]||null:null,'attributes':_0x25c057[_0x152e('0x1d')]?_0x25c057['options'][_0x152e('0x20')]||null:null,'include':_0x25c057[_0x152e('0x1d')]?_0x25c057[_0x152e('0x1d')][_0x152e('0x22')]?_[_0x152e('0x23')](_0x25c057[_0x152e('0x1d')][_0x152e('0x22')],function(_0x2127a0){return{'model':db[_0x2127a0[_0x152e('0x24')]],'as':_0x2127a0['as'],'attributes':_0x2127a0['attributes'],'include':_0x2127a0[_0x152e('0x22')]?_[_0x152e('0x23')](_0x2127a0[_0x152e('0x22')],function(_0x3a6fea){return{'model':db[_0x3a6fea[_0x152e('0x24')]],'as':_0x3a6fea['as'],'attributes':_0x3a6fea[_0x152e('0x20')],'include':_0x3a6fea[_0x152e('0x22')]?_[_0x152e('0x23')](_0x3a6fea[_0x152e('0x22')],function(_0x24d3de){return{'model':db[_0x24d3de[_0x152e('0x24')]],'as':_0x24d3de['as'],'attributes':_0x24d3de[_0x152e('0x20')]};}):[]};}):[]};}):[]:[]})[_0x152e('0x11')](function(_0x7fd15d){logger[_0x152e('0x18')](_0x152e('0x26'),_0x25c057);logger[_0x152e('0x13')](_0x152e('0x26'),_0x25c057,JSON[_0x152e('0x25')](_0x7fd15d));_0x2b5558(_0x7fd15d);})[_0x152e('0x1a')](function(_0x1042ee){logger[_0x152e('0x15')](_0x152e('0x26'),_0x1042ee[_0x152e('0x17')],_0x25c057);_0x350a2b(_0x5b5a01[_0x152e('0x15')](0x1f4,_0x1042ee[_0x152e('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0293=['removeListener','register','length','whatsappQueue:','./whatsappQueue.events','save','update','emit'];(function(_0x1558ab,_0x39d1de){var _0x53b64a=function(_0x4771ed){while(--_0x4771ed){_0x1558ab['push'](_0x1558ab['shift']());}};_0x53b64a(++_0x39d1de);}(_0x0293,0x1ac));var _0x3029=function(_0x16e3b7,_0x43a3bc){_0x16e3b7=_0x16e3b7-0x0;var _0x2e6477=_0x0293[_0x16e3b7];return _0x2e6477;};'use strict';var WhatsappQueueEvents=require(_0x3029('0x0'));var events=[_0x3029('0x1'),'remove',_0x3029('0x2')];function createListener(_0x5888e9,_0x2d025c){return function(_0x116a1e){_0x2d025c[_0x3029('0x3')](_0x5888e9,_0x116a1e);};}function removeListener(_0x303040,_0x335aa7){return function(){WhatsappQueueEvents[_0x3029('0x4')](_0x303040,_0x335aa7);};}exports[_0x3029('0x5')]=function(_0x8335ab){for(var _0x4cca56=0x0,_0x47b44c=events[_0x3029('0x6')];_0x4cca56<_0x47b44c;_0x4cca56++){var _0x3c2075=events[_0x4cca56];var _0x2dc885=createListener(_0x3029('0x7')+_0x3c2075,_0x8335ab);WhatsappQueueEvents['on'](_0x3c2075,_0x2dc885);}};
\ No newline at end of file
+var _0xc965=['./whatsappQueue.events','save','remove','update','emit','removeListener','register','length','whatsappQueue:'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xc965,0x18c));var _0x5c96=function(_0xb4ec3a,_0x2bace0){_0xb4ec3a=_0xb4ec3a-0x0;var _0x1b83db=_0xc965[_0xb4ec3a];return _0x1b83db;};'use strict';var WhatsappQueueEvents=require(_0x5c96('0x0'));var events=[_0x5c96('0x1'),_0x5c96('0x2'),_0x5c96('0x3')];function createListener(_0x40fb4b,_0x1c24e9){return function(_0x4cf65f){_0x1c24e9[_0x5c96('0x4')](_0x40fb4b,_0x4cf65f);};}function removeListener(_0x48ad9b,_0x583364){return function(){WhatsappQueueEvents[_0x5c96('0x5')](_0x48ad9b,_0x583364);};}exports[_0x5c96('0x6')]=function(_0x5734d7){for(var _0x18db45=0x0,_0x62dbe=events[_0x5c96('0x7')];_0x18db45<_0x62dbe;_0x18db45++){var _0x285aa4=events[_0x18db45];var _0x47bf73=createListener(_0x5c96('0x8')+_0x285aa4,_0x5734d7);WhatsappQueueEvents['on'](_0x285aa4,_0x47bf73);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1e62=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/describe','describe','/:id','show','post','create','update','delete','destroy','multer'];(function(_0x2cd619,_0x1f94e2){var _0x4095db=function(_0x2b5406){while(--_0x2b5406){_0x2cd619['push'](_0x2cd619['shift']());}};_0x4095db(++_0x1f94e2);}(_0x1e62,0xc5));var _0x21e6=function(_0x125367,_0xbb4ded){_0x125367=_0x125367-0x0;var _0x4e04f7=_0x1e62[_0x125367];return _0x4e04f7;};'use strict';var multer=require(_0x21e6('0x0'));var util=require(_0x21e6('0x1'));var path=require(_0x21e6('0x2'));var timeout=require(_0x21e6('0x3'));var express=require(_0x21e6('0x4'));var router=express[_0x21e6('0x5')]();var fs_extra=require(_0x21e6('0x6'));var auth=require(_0x21e6('0x7'));var interaction=require(_0x21e6('0x8'));var config=require(_0x21e6('0x9'));var controller=require('./whatsappQueueReport.controller');router['get']('/',auth[_0x21e6('0xa')](),controller[_0x21e6('0xb')]);router[_0x21e6('0xc')](_0x21e6('0xd'),auth[_0x21e6('0xa')](),controller[_0x21e6('0xe')]);router[_0x21e6('0xc')](_0x21e6('0xf'),auth[_0x21e6('0xa')](),controller[_0x21e6('0x10')]);router[_0x21e6('0x11')]('/',auth[_0x21e6('0xa')](),controller[_0x21e6('0x12')]);router['put'](_0x21e6('0xf'),auth[_0x21e6('0xa')](),controller[_0x21e6('0x13')]);router[_0x21e6('0x14')](_0x21e6('0xf'),auth['isAuthenticated'](),controller[_0x21e6('0x15')]);module['exports']=router;
\ No newline at end of file
+var _0x07f7=['index','/describe','isAuthenticated','describe','/:id','show','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','get'];(function(_0x8c184d,_0x43e7cb){var _0xf38b4f=function(_0x2c76e0){while(--_0x2c76e0){_0x8c184d['push'](_0x8c184d['shift']());}};_0xf38b4f(++_0x43e7cb);}(_0x07f7,0x1f1));var _0x707f=function(_0x2e476a,_0x1c655d){_0x2e476a=_0x2e476a-0x0;var _0x188142=_0x07f7[_0x2e476a];return _0x188142;};'use strict';var multer=require(_0x707f('0x0'));var util=require(_0x707f('0x1'));var path=require(_0x707f('0x2'));var timeout=require(_0x707f('0x3'));var express=require(_0x707f('0x4'));var router=express[_0x707f('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x707f('0x6'));var interaction=require(_0x707f('0x7'));var config=require('../../config/environment');var controller=require('./whatsappQueueReport.controller');router[_0x707f('0x8')]('/',auth['isAuthenticated'](),controller[_0x707f('0x9')]);router['get'](_0x707f('0xa'),auth[_0x707f('0xb')](),controller[_0x707f('0xc')]);router[_0x707f('0x8')](_0x707f('0xd'),auth[_0x707f('0xb')](),controller[_0x707f('0xe')]);router[_0x707f('0xf')]('/',auth[_0x707f('0xb')](),controller[_0x707f('0x10')]);router[_0x707f('0x11')](_0x707f('0xd'),auth[_0x707f('0xb')](),controller[_0x707f('0x12')]);router[_0x707f('0x13')](_0x707f('0xd'),auth[_0x707f('0xb')](),controller[_0x707f('0x14')]);module[_0x707f('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['exports','STRING','DATE','sequelize'];(function(_0x33751a,_0x805bc1){var _0x4eaffa=function(_0x2a1d75){while(--_0x2a1d75){_0x33751a['push'](_0x33751a['shift']());}};_0x4eaffa(++_0x805bc1);}(_0x9957,0x93));var _0x7995=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x9957[_0x501510];return _0x1e6ee5;};'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
+var _0x9957=['exports','STRING','DATE','sequelize'];(function(_0x3ecc57,_0x41d254){var _0xa22649=function(_0x4ee537){while(--_0x4ee537){_0x3ecc57['push'](_0x3ecc57['shift']());}};_0xa22649(++_0x41d254);}(_0x9957,0x93));var _0x7995=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x9957[_0x4cf98e];return _0x1623ac;};'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 _0x6324=['options','WhatsappQueueReport','includeAll','rows','show','keys','intersection','include','find','catch','create','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../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','Content-Range','apply','reject','save','update','then','destroy','error','stack','send','index','map','rawAttributes','fieldName','model','name','query','filters','attributes','fields','length','hasOwnProperty','order','sort','pick','merge','where','type','VIRTUAL','filter'];(function(_0x43fb5a,_0x13dba6){var _0x47d3b0=function(_0x639f36){while(--_0x639f36){_0x43fb5a['push'](_0x43fb5a['shift']());}};_0x47d3b0(++_0x13dba6);}(_0x6324,0x142));var _0x4632=function(_0x105e01,_0x199717){_0x105e01=_0x105e01-0x0;var _0x421f22=_0x6324[_0x105e01];return _0x421f22;};'use strict';var emlformat=require(_0x4632('0x0'));var rimraf=require(_0x4632('0x1'));var zipdir=require(_0x4632('0x2'));var jsonpatch=require(_0x4632('0x3'));var rp=require('request-promise');var moment=require(_0x4632('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x4632('0x5'));var util=require('util');var path=require(_0x4632('0x6'));var sox=require('sox');var csv=require(_0x4632('0x7'));var ejs=require(_0x4632('0x8'));var fs=require('fs');var fs_extra=require(_0x4632('0x9'));var _=require(_0x4632('0xa'));var squel=require('squel');var crypto=require(_0x4632('0xb'));var jsforce=require(_0x4632('0xc'));var deskjs=require(_0x4632('0xd'));var toCsv=require('to-csv');var querystring=require(_0x4632('0xe'));var Papa=require(_0x4632('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x4632('0x10'));var as=require(_0x4632('0x11'));var hardwareService=require(_0x4632('0x12'));var logger=require(_0x4632('0x13'))(_0x4632('0x14'));var utils=require(_0x4632('0x15'));var config=require(_0x4632('0x16'));var licenseUtil=require(_0x4632('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2b3f0f,_0x499d88){_0x499d88=_0x499d88||0xcc;return function(_0x4719f7){if(_0x4719f7){return _0x2b3f0f[_0x4632('0x18')](_0x499d88);}return _0x2b3f0f[_0x4632('0x19')](_0x499d88)[_0x4632('0x1a')]();};}function respondWithResult(_0x51ee37,_0x3ba361){_0x3ba361=_0x3ba361||0xc8;return function(_0x255882){if(_0x255882){return _0x51ee37[_0x4632('0x19')](_0x3ba361)[_0x4632('0x1b')](_0x255882);}};}function respondWithFilteredResult(_0x1c1be0,_0x5438ab){return function(_0x47b349){if(_0x47b349){var _0x2fd7ae=typeof _0x5438ab[_0x4632('0x1c')]===_0x4632('0x1d')&&typeof _0x5438ab[_0x4632('0x1e')]==='undefined';var _0x158831=_0x47b349[_0x4632('0x1f')];var _0x1a94c0=_0x2fd7ae?0x0:_0x5438ab['offset'];var _0x3cddfa=_0x2fd7ae?_0x47b349[_0x4632('0x1f')]:_0x5438ab['offset']+_0x5438ab['limit'];var _0x1c0523;if(_0x3cddfa>=_0x158831){_0x3cddfa=_0x158831;_0x1c0523=0xc8;}else{_0x1c0523=0xce;}_0x1c1be0[_0x4632('0x19')](_0x1c0523);return _0x1c1be0[_0x4632('0x20')](_0x4632('0x21'),_0x1a94c0+'-'+_0x3cddfa+'/'+_0x158831)[_0x4632('0x1b')](_0x47b349);}return null;};}function patchUpdates(_0x3d2d23){return function(_0x9ab826){try{jsonpatch[_0x4632('0x22')](_0x9ab826,_0x3d2d23,!![]);}catch(_0x29f875){return BPromise[_0x4632('0x23')](_0x29f875);}return _0x9ab826[_0x4632('0x24')]();};}function saveUpdates(_0x2d656a,_0x2ca6a5){return function(_0x263907){if(_0x263907){return _0x263907[_0x4632('0x25')](_0x2d656a)[_0x4632('0x26')](function(_0x4264d5){return _0x4264d5;});}return null;};}function removeEntity(_0x3537ed,_0x380a9f){return function(_0x1e1b86){if(_0x1e1b86){return _0x1e1b86[_0x4632('0x27')]()[_0x4632('0x26')](function(){_0x3537ed[_0x4632('0x19')](0xcc)[_0x4632('0x1a')]();});}};}function handleEntityNotFound(_0xb074d,_0x1b8de0){return function(_0x4af026){if(!_0x4af026){_0xb074d[_0x4632('0x18')](0x194);}return _0x4af026;};}function handleError(_0x21118c,_0x372679){_0x372679=_0x372679||0x1f4;return function(_0x22d0f5){logger[_0x4632('0x28')](_0x22d0f5[_0x4632('0x29')]);if(_0x22d0f5['name']){delete _0x22d0f5['name'];}_0x21118c[_0x4632('0x19')](_0x372679)[_0x4632('0x2a')](_0x22d0f5);};}exports[_0x4632('0x2b')]=function(_0x35a533,_0x34079f){var _0x119d1b={},_0x3570b2={},_0x5e2ee4={'count':0x0,'rows':[]};var _0x42d505=_[_0x4632('0x2c')](db['WhatsappQueueReport'][_0x4632('0x2d')],function(_0x5316f7){return{'name':_0x5316f7[_0x4632('0x2e')],'type':_0x5316f7['type']['key']};});_0x3570b2[_0x4632('0x2f')]=_[_0x4632('0x2c')](_0x42d505,_0x4632('0x30'));_0x3570b2['query']=_['keys'](_0x35a533[_0x4632('0x31')]);_0x3570b2[_0x4632('0x32')]=_['intersection'](_0x3570b2['model'],_0x3570b2[_0x4632('0x31')]);_0x119d1b[_0x4632('0x33')]=_['intersection'](_0x3570b2[_0x4632('0x2f')],qs[_0x4632('0x34')](_0x35a533[_0x4632('0x31')][_0x4632('0x34')]));_0x119d1b[_0x4632('0x33')]=_0x119d1b['attributes'][_0x4632('0x35')]?_0x119d1b[_0x4632('0x33')]:_0x3570b2['model'];if(!_0x35a533['query'][_0x4632('0x36')]('nolimit')){_0x119d1b['limit']=qs[_0x4632('0x1e')](_0x35a533['query'][_0x4632('0x1e')]);_0x119d1b[_0x4632('0x1c')]=qs[_0x4632('0x1c')](_0x35a533['query'][_0x4632('0x1c')]);}_0x119d1b[_0x4632('0x37')]=qs[_0x4632('0x38')](_0x35a533[_0x4632('0x31')][_0x4632('0x38')]);_0x119d1b['where']=qs['filters'](_[_0x4632('0x39')](_0x35a533[_0x4632('0x31')],_0x3570b2[_0x4632('0x32')]),_0x42d505);if(_0x35a533['query']['filter']){_0x119d1b['where']=_[_0x4632('0x3a')](_0x119d1b[_0x4632('0x3b')],{'$or':_['map'](_0x42d505,function(_0x3809aa){if(_0x3809aa[_0x4632('0x3c')]!==_0x4632('0x3d')){var _0x3adf41={};_0x3adf41[_0x3809aa[_0x4632('0x30')]]={'$like':'%'+_0x35a533[_0x4632('0x31')][_0x4632('0x3e')]+'%'};return _0x3adf41;}})});}_0x119d1b=_[_0x4632('0x3a')]({},_0x119d1b,_0x35a533[_0x4632('0x3f')]);var _0x2c04a8={'where':_0x119d1b[_0x4632('0x3b')]};return db[_0x4632('0x40')]['count'](_0x2c04a8)[_0x4632('0x26')](function(_0x45bff6){_0x5e2ee4['count']=_0x45bff6;if(_0x35a533[_0x4632('0x31')][_0x4632('0x41')]){_0x119d1b['include']=[{'all':!![]}];}return db[_0x4632('0x40')]['findAll'](_0x119d1b);})[_0x4632('0x26')](function(_0x28df3b){_0x5e2ee4[_0x4632('0x42')]=_0x28df3b;return _0x5e2ee4;})[_0x4632('0x26')](respondWithFilteredResult(_0x34079f,_0x119d1b))['catch'](handleError(_0x34079f,null));};exports[_0x4632('0x43')]=function(_0x29381a,_0x23ef38){var _0x279298={'raw':!![],'where':{'id':_0x29381a['params']['id']}},_0x5cc716={};_0x5cc716[_0x4632('0x2f')]=_[_0x4632('0x44')](db[_0x4632('0x40')]['rawAttributes']);_0x5cc716[_0x4632('0x31')]=_[_0x4632('0x44')](_0x29381a[_0x4632('0x31')]);_0x5cc716[_0x4632('0x32')]=_[_0x4632('0x45')](_0x5cc716[_0x4632('0x2f')],_0x5cc716[_0x4632('0x31')]);_0x279298['attributes']=_[_0x4632('0x45')](_0x5cc716[_0x4632('0x2f')],qs[_0x4632('0x34')](_0x29381a[_0x4632('0x31')][_0x4632('0x34')]));_0x279298['attributes']=_0x279298['attributes'][_0x4632('0x35')]?_0x279298[_0x4632('0x33')]:_0x5cc716[_0x4632('0x2f')];if(_0x29381a[_0x4632('0x31')]['includeAll']){_0x279298[_0x4632('0x46')]=[{'all':!![]}];}_0x279298=_[_0x4632('0x3a')]({},_0x279298,_0x29381a[_0x4632('0x3f')]);return db[_0x4632('0x40')][_0x4632('0x47')](_0x279298)['then'](handleEntityNotFound(_0x23ef38,null))[_0x4632('0x26')](respondWithResult(_0x23ef38,null))[_0x4632('0x48')](handleError(_0x23ef38,null));};exports[_0x4632('0x49')]=function(_0xcce5db,_0x3676fa){return db[_0x4632('0x40')][_0x4632('0x49')](_0xcce5db[_0x4632('0x4a')],{})[_0x4632('0x26')](respondWithResult(_0x3676fa,0xc9))[_0x4632('0x48')](handleError(_0x3676fa,null));};exports[_0x4632('0x25')]=function(_0x517584,_0xc3ffd0){if(_0x517584[_0x4632('0x4a')]['id']){delete _0x517584[_0x4632('0x4a')]['id'];}return db['WhatsappQueueReport'][_0x4632('0x47')]({'where':{'id':_0x517584[_0x4632('0x4b')]['id']}})[_0x4632('0x26')](handleEntityNotFound(_0xc3ffd0,null))[_0x4632('0x26')](saveUpdates(_0x517584[_0x4632('0x4a')],null))[_0x4632('0x26')](respondWithResult(_0xc3ffd0,null))[_0x4632('0x48')](handleError(_0xc3ffd0,null));};exports[_0x4632('0x27')]=function(_0x1f43b6,_0x1aa831){return db['WhatsappQueueReport'][_0x4632('0x47')]({'where':{'id':_0x1f43b6[_0x4632('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1aa831,null))[_0x4632('0x26')](removeEntity(_0x1aa831,null))[_0x4632('0x48')](handleError(_0x1aa831,null));};exports[_0x4632('0x4c')]=function(_0x28e7fb,_0x2c59f5){return db[_0x4632('0x40')][_0x4632('0x4c')]()[_0x4632('0x26')](respondWithResult(_0x2c59f5,null))[_0x4632('0x48')](handleError(_0x2c59f5,null));};
\ No newline at end of file
+var _0xbee3=['desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','send','map','WhatsappQueueReport','rawAttributes','type','key','model','keys','query','attributes','intersection','fields','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','length','body','find','describe','rimraf','request-promise','moment','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce'];(function(_0x616290,_0x280b7f){var _0x453879=function(_0x27bda7){while(--_0x27bda7){_0x616290['push'](_0x616290['shift']());}};_0x453879(++_0x280b7f);}(_0xbee3,0xd5));var _0x3bee=function(_0x4c684b,_0x39cce3){_0x4c684b=_0x4c684b-0x0;var _0x51b9d9=_0xbee3[_0x4c684b];return _0x51b9d9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3bee('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x3bee('0x1'));var moment=require(_0x3bee('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x3bee('0x3'));var util=require(_0x3bee('0x4'));var path=require(_0x3bee('0x5'));var sox=require('sox');var csv=require(_0x3bee('0x6'));var ejs=require(_0x3bee('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3bee('0x8'));var squel=require(_0x3bee('0x9'));var crypto=require(_0x3bee('0xa'));var jsforce=require(_0x3bee('0xb'));var deskjs=require(_0x3bee('0xc'));var toCsv=require(_0x3bee('0x6'));var querystring=require(_0x3bee('0xd'));var Papa=require('papaparse');var Redis=require(_0x3bee('0xe'));var authService=require(_0x3bee('0xf'));var qs=require(_0x3bee('0x10'));var as=require(_0x3bee('0x11'));var hardwareService=require(_0x3bee('0x12'));var logger=require(_0x3bee('0x13'))('api');var utils=require(_0x3bee('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x3bee('0x15'));var db=require(_0x3bee('0x16'))['db'];function respondWithStatusCode(_0x407526,_0x6950d0){_0x6950d0=_0x6950d0||0xcc;return function(_0x410124){if(_0x410124){return _0x407526[_0x3bee('0x17')](_0x6950d0);}return _0x407526[_0x3bee('0x18')](_0x6950d0)['end']();};}function respondWithResult(_0xad01f9,_0x33504d){_0x33504d=_0x33504d||0xc8;return function(_0x31ac52){if(_0x31ac52){return _0xad01f9[_0x3bee('0x18')](_0x33504d)[_0x3bee('0x19')](_0x31ac52);}};}function respondWithFilteredResult(_0x5b9473,_0x558436){return function(_0x346767){if(_0x346767){var _0x515397=typeof _0x558436[_0x3bee('0x1a')]===_0x3bee('0x1b')&&typeof _0x558436['limit']==='undefined';var _0x1582a4=_0x346767[_0x3bee('0x1c')];var _0xfdba3b=_0x515397?0x0:_0x558436[_0x3bee('0x1a')];var _0x49095a=_0x515397?_0x346767[_0x3bee('0x1c')]:_0x558436[_0x3bee('0x1a')]+_0x558436[_0x3bee('0x1d')];var _0x49b32d;if(_0x49095a>=_0x1582a4){_0x49095a=_0x1582a4;_0x49b32d=0xc8;}else{_0x49b32d=0xce;}_0x5b9473[_0x3bee('0x18')](_0x49b32d);return _0x5b9473[_0x3bee('0x1e')](_0x3bee('0x1f'),_0xfdba3b+'-'+_0x49095a+'/'+_0x1582a4)['json'](_0x346767);}return null;};}function patchUpdates(_0x4f36af){return function(_0x1afd0f){try{jsonpatch[_0x3bee('0x20')](_0x1afd0f,_0x4f36af,!![]);}catch(_0x57aba4){return BPromise[_0x3bee('0x21')](_0x57aba4);}return _0x1afd0f[_0x3bee('0x22')]();};}function saveUpdates(_0x2eea75,_0x179e62){return function(_0x28c248){if(_0x28c248){return _0x28c248[_0x3bee('0x23')](_0x2eea75)[_0x3bee('0x24')](function(_0x582fa9){return _0x582fa9;});}return null;};}function removeEntity(_0x8ae4ca,_0x1ed0c1){return function(_0x1fed5a){if(_0x1fed5a){return _0x1fed5a[_0x3bee('0x25')]()['then'](function(){_0x8ae4ca[_0x3bee('0x18')](0xcc)[_0x3bee('0x26')]();});}};}function handleEntityNotFound(_0x1e0111,_0x4b4cd4){return function(_0x5ed022){if(!_0x5ed022){_0x1e0111[_0x3bee('0x17')](0x194);}return _0x5ed022;};}function handleError(_0x479f45,_0x5341e2){_0x5341e2=_0x5341e2||0x1f4;return function(_0x2c0e50){logger[_0x3bee('0x27')](_0x2c0e50[_0x3bee('0x28')]);if(_0x2c0e50['name']){delete _0x2c0e50[_0x3bee('0x29')];}_0x479f45[_0x3bee('0x18')](_0x5341e2)[_0x3bee('0x2a')](_0x2c0e50);};}exports['index']=function(_0x239fa4,_0xf08fb3){var _0x3a3d92={},_0x496abd={},_0x1115ed={'count':0x0,'rows':[]};var _0x24d523=_[_0x3bee('0x2b')](db[_0x3bee('0x2c')][_0x3bee('0x2d')],function(_0x559c2b){return{'name':_0x559c2b['fieldName'],'type':_0x559c2b[_0x3bee('0x2e')][_0x3bee('0x2f')]};});_0x496abd[_0x3bee('0x30')]=_[_0x3bee('0x2b')](_0x24d523,'name');_0x496abd['query']=_[_0x3bee('0x31')](_0x239fa4[_0x3bee('0x32')]);_0x496abd['filters']=_['intersection'](_0x496abd[_0x3bee('0x30')],_0x496abd[_0x3bee('0x32')]);_0x3a3d92[_0x3bee('0x33')]=_[_0x3bee('0x34')](_0x496abd[_0x3bee('0x30')],qs[_0x3bee('0x35')](_0x239fa4[_0x3bee('0x32')][_0x3bee('0x35')]));_0x3a3d92[_0x3bee('0x33')]=_0x3a3d92[_0x3bee('0x33')]['length']?_0x3a3d92['attributes']:_0x496abd[_0x3bee('0x30')];if(!_0x239fa4['query']['hasOwnProperty'](_0x3bee('0x36'))){_0x3a3d92[_0x3bee('0x1d')]=qs[_0x3bee('0x1d')](_0x239fa4[_0x3bee('0x32')][_0x3bee('0x1d')]);_0x3a3d92[_0x3bee('0x1a')]=qs[_0x3bee('0x1a')](_0x239fa4[_0x3bee('0x32')]['offset']);}_0x3a3d92[_0x3bee('0x37')]=qs[_0x3bee('0x38')](_0x239fa4['query'][_0x3bee('0x38')]);_0x3a3d92[_0x3bee('0x39')]=qs[_0x3bee('0x3a')](_[_0x3bee('0x3b')](_0x239fa4[_0x3bee('0x32')],_0x496abd['filters']),_0x24d523);if(_0x239fa4['query'][_0x3bee('0x3c')]){_0x3a3d92[_0x3bee('0x39')]=_[_0x3bee('0x3d')](_0x3a3d92[_0x3bee('0x39')],{'$or':_[_0x3bee('0x2b')](_0x24d523,function(_0x3d9656){if(_0x3d9656[_0x3bee('0x2e')]!==_0x3bee('0x3e')){var _0x2fb349={};_0x2fb349[_0x3d9656[_0x3bee('0x29')]]={'$like':'%'+_0x239fa4[_0x3bee('0x32')][_0x3bee('0x3c')]+'%'};return _0x2fb349;}})});}_0x3a3d92=_['merge']({},_0x3a3d92,_0x239fa4[_0x3bee('0x3f')]);var _0x1b5eca={'where':_0x3a3d92[_0x3bee('0x39')]};return db[_0x3bee('0x2c')][_0x3bee('0x1c')](_0x1b5eca)[_0x3bee('0x24')](function(_0x1622b9){_0x1115ed[_0x3bee('0x1c')]=_0x1622b9;if(_0x239fa4[_0x3bee('0x32')][_0x3bee('0x40')]){_0x3a3d92[_0x3bee('0x41')]=[{'all':!![]}];}return db[_0x3bee('0x2c')][_0x3bee('0x42')](_0x3a3d92);})['then'](function(_0x2b773d){_0x1115ed[_0x3bee('0x43')]=_0x2b773d;return _0x1115ed;})[_0x3bee('0x24')](respondWithFilteredResult(_0xf08fb3,_0x3a3d92))[_0x3bee('0x44')](handleError(_0xf08fb3,null));};exports[_0x3bee('0x45')]=function(_0x44489f,_0x13dd72){var _0xd1140d={'raw':!![],'where':{'id':_0x44489f[_0x3bee('0x46')]['id']}},_0x5d9e1b={};_0x5d9e1b[_0x3bee('0x30')]=_[_0x3bee('0x31')](db['WhatsappQueueReport'][_0x3bee('0x2d')]);_0x5d9e1b['query']=_[_0x3bee('0x31')](_0x44489f['query']);_0x5d9e1b['filters']=_[_0x3bee('0x34')](_0x5d9e1b[_0x3bee('0x30')],_0x5d9e1b[_0x3bee('0x32')]);_0xd1140d[_0x3bee('0x33')]=_[_0x3bee('0x34')](_0x5d9e1b['model'],qs['fields'](_0x44489f[_0x3bee('0x32')]['fields']));_0xd1140d[_0x3bee('0x33')]=_0xd1140d['attributes'][_0x3bee('0x47')]?_0xd1140d['attributes']:_0x5d9e1b[_0x3bee('0x30')];if(_0x44489f[_0x3bee('0x32')][_0x3bee('0x40')]){_0xd1140d[_0x3bee('0x41')]=[{'all':!![]}];}_0xd1140d=_['merge']({},_0xd1140d,_0x44489f['options']);return db[_0x3bee('0x2c')]['find'](_0xd1140d)['then'](handleEntityNotFound(_0x13dd72,null))['then'](respondWithResult(_0x13dd72,null))[_0x3bee('0x44')](handleError(_0x13dd72,null));};exports['create']=function(_0x125fa5,_0x33d615){return db[_0x3bee('0x2c')]['create'](_0x125fa5[_0x3bee('0x48')],{})['then'](respondWithResult(_0x33d615,0xc9))[_0x3bee('0x44')](handleError(_0x33d615,null));};exports['update']=function(_0x26ccd7,_0x16b096){if(_0x26ccd7[_0x3bee('0x48')]['id']){delete _0x26ccd7['body']['id'];}return db[_0x3bee('0x2c')][_0x3bee('0x49')]({'where':{'id':_0x26ccd7[_0x3bee('0x46')]['id']}})['then'](handleEntityNotFound(_0x16b096,null))['then'](saveUpdates(_0x26ccd7[_0x3bee('0x48')],null))[_0x3bee('0x24')](respondWithResult(_0x16b096,null))[_0x3bee('0x44')](handleError(_0x16b096,null));};exports[_0x3bee('0x25')]=function(_0x3b5d7a,_0x21ab40){return db[_0x3bee('0x2c')]['find']({'where':{'id':_0x3b5d7a[_0x3bee('0x46')]['id']}})[_0x3bee('0x24')](handleEntityNotFound(_0x21ab40,null))['then'](removeEntity(_0x21ab40,null))['catch'](handleError(_0x21ab40,null));};exports[_0x3bee('0x4a')]=function(_0x5d4755,_0x1cb54e){return db[_0x3bee('0x2c')][_0x3bee('0x4a')]()['then'](respondWithResult(_0x1cb54e,null))[_0x3bee('0x44')](handleError(_0x1cb54e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8993=['rimraf','./whatsappQueueReport.attributes','define','WhatsappQueueReport','report_whatsapp_queue','uniqueid','lodash','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x3a809c,_0x21102d){var _0x3f26ae=function(_0x1a83d0){while(--_0x1a83d0){_0x3a809c['push'](_0x3a809c['shift']());}};_0x3f26ae(++_0x21102d);}(_0x8993,0x10a));var _0x3899=function(_0x2567a2,_0x5aed50){_0x2567a2=_0x2567a2-0x0;var _0x3c5a13=_0x8993[_0x2567a2];return _0x3c5a13;};'use strict';var _=require(_0x3899('0x0'));var util=require('util');var logger=require(_0x3899('0x1'))(_0x3899('0x2'));var moment=require(_0x3899('0x3'));var BPromise=require(_0x3899('0x4'));var rp=require(_0x3899('0x5'));var fs=require('fs');var path=require(_0x3899('0x6'));var rimraf=require(_0x3899('0x7'));var config=require('../../config/environment');var attributes=require(_0x3899('0x8'));module['exports']=function(_0x5dc593,_0x5e2f92){return _0x5dc593[_0x3899('0x9')](_0x3899('0xa'),attributes,{'tableName':_0x3899('0xb'),'paranoid':![],'indexes':[{'name':_0x3899('0xc'),'fields':[_0x3899('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xc72b=['lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./whatsappQueueReport.attributes','define','WhatsappQueueReport','report_whatsapp_queue','uniqueid'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc72b,0x70));var _0xbc72=function(_0x1b8050,_0x4d12c6){_0x1b8050=_0x1b8050-0x0;var _0x1ec2b1=_0xc72b[_0x1b8050];return _0x1ec2b1;};'use strict';var _=require(_0xbc72('0x0'));var util=require(_0xbc72('0x1'));var logger=require(_0xbc72('0x2'))(_0xbc72('0x3'));var moment=require(_0xbc72('0x4'));var BPromise=require('bluebird');var rp=require(_0xbc72('0x5'));var fs=require('fs');var path=require(_0xbc72('0x6'));var rimraf=require(_0xbc72('0x7'));var config=require(_0xbc72('0x8'));var attributes=require(_0xbc72('0x9'));module['exports']=function(_0x3414e8,_0x2b4d55){return _0x3414e8[_0xbc72('0xa')](_0xbc72('0xb'),attributes,{'tableName':_0xbc72('0xc'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0xbc72('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd857=['client','http','request','WhatsappQueueReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','info','result','catch','body','options','raw','then','CreateWhatsappQueueReport','UpdateWhatsappQueueReport','update','where','limit','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise'];(function(_0x618414,_0x1a7a60){var _0x21c19a=function(_0x507b17){while(--_0x507b17){_0x618414['push'](_0x618414['shift']());}};_0x21c19a(++_0x1a7a60);}(_0xd857,0xe7));var _0x7d85=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0xd857[_0x4b369d];return _0x571a98;};'use strict';var _=require(_0x7d85('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x7d85('0x1'));var rs=require(_0x7d85('0x2'));var fs=require('fs');var Redis=require(_0x7d85('0x3'));var db=require(_0x7d85('0x4'))['db'];var utils=require(_0x7d85('0x5'));var logger=require(_0x7d85('0x6'))(_0x7d85('0x7'));var config=require('../../config/environment');var jayson=require(_0x7d85('0x8'));var client=jayson[_0x7d85('0x9')][_0x7d85('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x20fcdc,_0x5409ca,_0x371d4b){return new BPromise(function(_0x5b483f,_0x377398){return client[_0x7d85('0xb')](_0x20fcdc,_0x371d4b)['then'](function(_0x4d7840){logger['info'](_0x7d85('0xc'),_0x5409ca,_0x7d85('0xd'));logger[_0x7d85('0xe')]('WhatsappQueueReport,\x20%s,\x20%s,\x20%s',_0x5409ca,_0x7d85('0xd'),JSON[_0x7d85('0xf')](_0x4d7840));if(_0x4d7840['error']){if(_0x4d7840[_0x7d85('0x10')]['code']===0x1f4){logger[_0x7d85('0x10')](_0x7d85('0xc'),_0x5409ca,_0x4d7840['error'][_0x7d85('0x11')]);return _0x377398(_0x4d7840[_0x7d85('0x10')][_0x7d85('0x11')]);}logger[_0x7d85('0x10')](_0x7d85('0xc'),_0x5409ca,_0x4d7840['error'][_0x7d85('0x11')]);return _0x5b483f(_0x4d7840[_0x7d85('0x10')]['message']);}else{logger[_0x7d85('0x12')]('WhatsappQueueReport,\x20%s,\x20%s',_0x5409ca,_0x7d85('0xd'));_0x5b483f(_0x4d7840[_0x7d85('0x13')][_0x7d85('0x11')]);}})[_0x7d85('0x14')](function(_0x2c4e2f){logger['error']('WhatsappQueueReport,\x20%s,\x20%s',_0x5409ca,_0x2c4e2f);_0x377398(_0x2c4e2f);});});}exports['CreateWhatsappQueueReport']=function(_0x4a34ed){var _0x12522d=this;return new Promise(function(_0x2405fc,_0x44a557){return db['WhatsappQueueReport']['create'](_0x4a34ed[_0x7d85('0x15')],{'raw':_0x4a34ed[_0x7d85('0x16')]?_0x4a34ed['options'][_0x7d85('0x17')]===undefined?!![]:![]:!![]})[_0x7d85('0x18')](function(_0x55d677){logger[_0x7d85('0x12')](_0x7d85('0x19'),_0x4a34ed);logger[_0x7d85('0xe')]('CreateWhatsappQueueReport',_0x4a34ed,JSON[_0x7d85('0xf')](_0x55d677));_0x2405fc(_0x55d677);})['catch'](function(_0x201435){logger['error']('CreateWhatsappQueueReport',_0x201435[_0x7d85('0x11')],_0x4a34ed);_0x44a557(_0x12522d[_0x7d85('0x10')](0x1f4,_0x201435[_0x7d85('0x11')]));});});};exports[_0x7d85('0x1a')]=function(_0x2d8d50){var _0x32f194=this;return new Promise(function(_0x3517a2,_0x1e3b04){return db['WhatsappQueueReport'][_0x7d85('0x1b')](_0x2d8d50[_0x7d85('0x15')],{'raw':_0x2d8d50['options']?_0x2d8d50['options'][_0x7d85('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2d8d50[_0x7d85('0x16')]?_0x2d8d50[_0x7d85('0x16')][_0x7d85('0x1c')]||null:null,'attributes':_0x2d8d50[_0x7d85('0x16')]?_0x2d8d50[_0x7d85('0x16')]['attributes']||null:null,'limit':_0x2d8d50['options']?_0x2d8d50['options'][_0x7d85('0x1d')]||null:null})['then'](function(_0x5dfda5){logger['info'](_0x7d85('0x1a'),_0x2d8d50);logger[_0x7d85('0xe')](_0x7d85('0x1a'),_0x2d8d50,JSON['stringify'](_0x5dfda5));_0x3517a2(_0x5dfda5);})[_0x7d85('0x14')](function(_0x286114){logger[_0x7d85('0x10')](_0x7d85('0x1a'),_0x286114[_0x7d85('0x11')],_0x2d8d50);_0x1e3b04(_0x32f194[_0x7d85('0x10')](0x1f4,_0x286114[_0x7d85('0x11')]));});});};
\ No newline at end of file
+var _0x3b7b=['create','options','raw','UpdateWhatsappQueueReport','WhatsappQueueReport','update','body','where','attributes','limit','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','then','info','request\x20sent','debug','WhatsappQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','WhatsappQueueReport,\x20%s,\x20%s','message','catch','CreateWhatsappQueueReport'];(function(_0x3aca22,_0x5e0345){var _0x6334c5=function(_0x30437d){while(--_0x30437d){_0x3aca22['push'](_0x3aca22['shift']());}};_0x6334c5(++_0x5e0345);}(_0x3b7b,0x196));var _0xb3b7=function(_0x3790ef,_0xb5670b){_0x3790ef=_0x3790ef-0x0;var _0x2c1f59=_0x3b7b[_0x3790ef];return _0x2c1f59;};'use strict';var _=require(_0xb3b7('0x0'));var util=require(_0xb3b7('0x1'));var moment=require(_0xb3b7('0x2'));var BPromise=require(_0xb3b7('0x3'));var rs=require(_0xb3b7('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb3b7('0x5'))['db'];var utils=require(_0xb3b7('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0xb3b7('0x7'));var jayson=require(_0xb3b7('0x8'));var client=jayson[_0xb3b7('0x9')][_0xb3b7('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x333d87,_0x30182f,_0x52f3ca){return new BPromise(function(_0xbadb00,_0x222bd9){return client['request'](_0x333d87,_0x52f3ca)[_0xb3b7('0xb')](function(_0x51cfa4){logger[_0xb3b7('0xc')]('WhatsappQueueReport,\x20%s,\x20%s',_0x30182f,_0xb3b7('0xd'));logger[_0xb3b7('0xe')](_0xb3b7('0xf'),_0x30182f,_0xb3b7('0xd'),JSON[_0xb3b7('0x10')](_0x51cfa4));if(_0x51cfa4[_0xb3b7('0x11')]){if(_0x51cfa4[_0xb3b7('0x11')][_0xb3b7('0x12')]===0x1f4){logger[_0xb3b7('0x11')](_0xb3b7('0x13'),_0x30182f,_0x51cfa4[_0xb3b7('0x11')][_0xb3b7('0x14')]);return _0x222bd9(_0x51cfa4[_0xb3b7('0x11')][_0xb3b7('0x14')]);}logger[_0xb3b7('0x11')](_0xb3b7('0x13'),_0x30182f,_0x51cfa4['error'][_0xb3b7('0x14')]);return _0xbadb00(_0x51cfa4[_0xb3b7('0x11')][_0xb3b7('0x14')]);}else{logger[_0xb3b7('0xc')]('WhatsappQueueReport,\x20%s,\x20%s',_0x30182f,_0xb3b7('0xd'));_0xbadb00(_0x51cfa4['result'][_0xb3b7('0x14')]);}})[_0xb3b7('0x15')](function(_0x378af4){logger['error'](_0xb3b7('0x13'),_0x30182f,_0x378af4);_0x222bd9(_0x378af4);});});}exports[_0xb3b7('0x16')]=function(_0x3d32bb){var _0x1c341c=this;return new Promise(function(_0x37c67b,_0x237518){return db['WhatsappQueueReport'][_0xb3b7('0x17')](_0x3d32bb['body'],{'raw':_0x3d32bb[_0xb3b7('0x18')]?_0x3d32bb[_0xb3b7('0x18')][_0xb3b7('0x19')]===undefined?!![]:![]:!![]})[_0xb3b7('0xb')](function(_0x5ef608){logger['info'](_0xb3b7('0x16'),_0x3d32bb);logger['debug'](_0xb3b7('0x16'),_0x3d32bb,JSON[_0xb3b7('0x10')](_0x5ef608));_0x37c67b(_0x5ef608);})['catch'](function(_0x143673){logger[_0xb3b7('0x11')](_0xb3b7('0x16'),_0x143673[_0xb3b7('0x14')],_0x3d32bb);_0x237518(_0x1c341c[_0xb3b7('0x11')](0x1f4,_0x143673[_0xb3b7('0x14')]));});});};exports[_0xb3b7('0x1a')]=function(_0x32ce6c){var _0x502e24=this;return new Promise(function(_0x3157cc,_0x465fac){return db[_0xb3b7('0x1b')][_0xb3b7('0x1c')](_0x32ce6c[_0xb3b7('0x1d')],{'raw':_0x32ce6c[_0xb3b7('0x18')]?_0x32ce6c[_0xb3b7('0x18')][_0xb3b7('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x32ce6c[_0xb3b7('0x18')]?_0x32ce6c[_0xb3b7('0x18')][_0xb3b7('0x1e')]||null:null,'attributes':_0x32ce6c[_0xb3b7('0x18')]?_0x32ce6c[_0xb3b7('0x18')][_0xb3b7('0x1f')]||null:null,'limit':_0x32ce6c['options']?_0x32ce6c[_0xb3b7('0x18')][_0xb3b7('0x20')]||null:null})[_0xb3b7('0xb')](function(_0x2826dd){logger[_0xb3b7('0xc')](_0xb3b7('0x1a'),_0x32ce6c);logger['debug']('UpdateWhatsappQueueReport',_0x32ce6c,JSON[_0xb3b7('0x10')](_0x2826dd));_0x3157cc(_0x2826dd);})[_0xb3b7('0x15')](function(_0x270578){logger[_0xb3b7('0x11')](_0xb3b7('0x1a'),_0x270578['message'],_0x32ce6c);_0x465fac(_0x502e24[_0xb3b7('0x11')](0x1f4,_0x270578['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13cf=['update','delete','destroy','exports','multer','util','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappTransferReport.controller','isAuthenticated','index','get','/describe','describe','post','create','put','/:id'];(function(_0x281f38,_0x5bf598){var _0x34c89f=function(_0x55d246){while(--_0x55d246){_0x281f38['push'](_0x281f38['shift']());}};_0x34c89f(++_0x5bf598);}(_0x13cf,0x1f2));var _0xf13c=function(_0x13e741,_0x5d3c24){_0x13e741=_0x13e741-0x0;var _0x3f8bb3=_0x13cf[_0x13e741];return _0x3f8bb3;};'use strict';var multer=require(_0xf13c('0x0'));var util=require(_0xf13c('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xf13c('0x2'));var interaction=require(_0xf13c('0x3'));var config=require(_0xf13c('0x4'));var controller=require(_0xf13c('0x5'));router['get']('/',auth[_0xf13c('0x6')](),controller[_0xf13c('0x7')]);router[_0xf13c('0x8')](_0xf13c('0x9'),auth[_0xf13c('0x6')](),controller[_0xf13c('0xa')]);router[_0xf13c('0x8')]('/:id',auth[_0xf13c('0x6')](),controller['show']);router[_0xf13c('0xb')]('/',auth[_0xf13c('0x6')](),controller[_0xf13c('0xc')]);router[_0xf13c('0xd')](_0xf13c('0xe'),auth[_0xf13c('0x6')](),controller[_0xf13c('0xf')]);router[_0xf13c('0x10')](_0xf13c('0xe'),auth['isAuthenticated'](),controller[_0xf13c('0x11')]);module[_0xf13c('0x12')]=router;
\ No newline at end of file
+var _0xa045=['path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappTransferReport.controller','index','get','/describe','isAuthenticated','describe','/:id','show','post','create','put','update','delete','destroy','exports','multer','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa045,0x17e));var _0x5a04=function(_0x4eb088,_0x169913){_0x4eb088=_0x4eb088-0x0;var _0x205cdb=_0xa045[_0x4eb088];return _0x205cdb;};'use strict';var multer=require(_0x5a04('0x0'));var util=require(_0x5a04('0x1'));var path=require(_0x5a04('0x2'));var timeout=require(_0x5a04('0x3'));var express=require(_0x5a04('0x4'));var router=express[_0x5a04('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x5a04('0x6'));var interaction=require(_0x5a04('0x7'));var config=require(_0x5a04('0x8'));var controller=require(_0x5a04('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0x5a04('0xa')]);router[_0x5a04('0xb')](_0x5a04('0xc'),auth[_0x5a04('0xd')](),controller[_0x5a04('0xe')]);router[_0x5a04('0xb')](_0x5a04('0xf'),auth[_0x5a04('0xd')](),controller[_0x5a04('0x10')]);router[_0x5a04('0x11')]('/',auth[_0x5a04('0xd')](),controller[_0x5a04('0x12')]);router[_0x5a04('0x13')]('/:id',auth['isAuthenticated'](),controller[_0x5a04('0x14')]);router[_0x5a04('0x15')](_0x5a04('0xf'),auth[_0x5a04('0xd')](),controller[_0x5a04('0x16')]);module[_0x5a04('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x215d=['STRING','ENUM','account','agent','queue','DATE','sequelize'];(function(_0xe22cb9,_0x3fef70){var _0x1da73c=function(_0x5f33a4){while(--_0x5f33a4){_0xe22cb9['push'](_0xe22cb9['shift']());}};_0x1da73c(++_0x3fef70);}(_0x215d,0x187));var _0xd215=function(_0x321c7a,_0x585e5f){_0x321c7a=_0x321c7a-0x0;var _0x17c21e=_0x215d[_0x321c7a];return _0x17c21e;};'use strict';var Sequelize=require(_0xd215('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0xd215('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0xd215('0x2')](_0xd215('0x3'),_0xd215('0x4'),_0xd215('0x5')),'allowNull':![]},'transferredAt':{'type':Sequelize[_0xd215('0x6')]}};
\ No newline at end of file
+var _0x866a=['exports','STRING','ENUM','account','agent','DATE'];(function(_0x46568a,_0x4f3299){var _0x2ab011=function(_0xe1f297){while(--_0xe1f297){_0x46568a['push'](_0x46568a['shift']());}};_0x2ab011(++_0x4f3299);}(_0x866a,0x156));var _0xa866=function(_0x68359d,_0x51477f){_0x68359d=_0x68359d-0x0;var _0x15d875=_0x866a[_0x68359d];return _0x15d875;};'use strict';var Sequelize=require('sequelize');module[_0xa866('0x0')]={'uniqueid':{'type':Sequelize[_0xa866('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0xa866('0x2')](_0xa866('0x3'),_0xa866('0x4'),'queue'),'allowNull':![]},'transferredAt':{'type':Sequelize[_0xa866('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x09ef=['apply','reject','update','then','destroy','end','stack','name','send','index','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','pick','filter','where','map','VIRTUAL','merge','includeAll','include','findAll','catch','show','params','WhatsappTransferReport','rawAttributes','options','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range'];(function(_0x592ed8,_0x2959c9){var _0x983ca6=function(_0x38273b){while(--_0x38273b){_0x592ed8['push'](_0x592ed8['shift']());}};_0x983ca6(++_0x2959c9);}(_0x09ef,0x15e));var _0xf09e=function(_0xe66025,_0x3fa836){_0xe66025=_0xe66025-0x0;var _0x51694a=_0x09ef[_0xe66025];return _0x51694a;};'use strict';var emlformat=require(_0xf09e('0x0'));var rimraf=require(_0xf09e('0x1'));var zipdir=require(_0xf09e('0x2'));var jsonpatch=require(_0xf09e('0x3'));var rp=require(_0xf09e('0x4'));var moment=require(_0xf09e('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xf09e('0x6'));var util=require('util');var path=require(_0xf09e('0x7'));var sox=require(_0xf09e('0x8'));var csv=require(_0xf09e('0x9'));var ejs=require(_0xf09e('0xa'));var fs=require('fs');var fs_extra=require(_0xf09e('0xb'));var _=require(_0xf09e('0xc'));var squel=require(_0xf09e('0xd'));var crypto=require(_0xf09e('0xe'));var jsforce=require(_0xf09e('0xf'));var deskjs=require(_0xf09e('0x10'));var toCsv=require('to-csv');var querystring=require(_0xf09e('0x11'));var Papa=require(_0xf09e('0x12'));var Redis=require(_0xf09e('0x13'));var authService=require(_0xf09e('0x14'));var qs=require(_0xf09e('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xf09e('0x16'))(_0xf09e('0x17'));var utils=require('../../config/utils');var config=require(_0xf09e('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xf09e('0x19'))['db'];function respondWithStatusCode(_0xcea7b1,_0x2d974f){_0x2d974f=_0x2d974f||0xcc;return function(_0x12ecc3){if(_0x12ecc3){return _0xcea7b1[_0xf09e('0x1a')](_0x2d974f);}return _0xcea7b1[_0xf09e('0x1b')](_0x2d974f)['end']();};}function respondWithResult(_0x43e7e9,_0x505b6d){_0x505b6d=_0x505b6d||0xc8;return function(_0x38f7de){if(_0x38f7de){return _0x43e7e9[_0xf09e('0x1b')](_0x505b6d)[_0xf09e('0x1c')](_0x38f7de);}};}function respondWithFilteredResult(_0x4a3c58,_0x17b604){return function(_0x3a6bd0){if(_0x3a6bd0){var _0x4f88f1=typeof _0x17b604[_0xf09e('0x1d')]===_0xf09e('0x1e')&&typeof _0x17b604[_0xf09e('0x1f')]===_0xf09e('0x1e');var _0x3abeae=_0x3a6bd0['count'];var _0x21d713=_0x4f88f1?0x0:_0x17b604[_0xf09e('0x1d')];var _0x435bb8=_0x4f88f1?_0x3a6bd0[_0xf09e('0x20')]:_0x17b604[_0xf09e('0x1d')]+_0x17b604[_0xf09e('0x1f')];var _0x105934;if(_0x435bb8>=_0x3abeae){_0x435bb8=_0x3abeae;_0x105934=0xc8;}else{_0x105934=0xce;}_0x4a3c58[_0xf09e('0x1b')](_0x105934);return _0x4a3c58[_0xf09e('0x21')](_0xf09e('0x22'),_0x21d713+'-'+_0x435bb8+'/'+_0x3abeae)[_0xf09e('0x1c')](_0x3a6bd0);}return null;};}function patchUpdates(_0x4c5a1f){return function(_0x19c044){try{jsonpatch[_0xf09e('0x23')](_0x19c044,_0x4c5a1f,!![]);}catch(_0x3a24ba){return BPromise[_0xf09e('0x24')](_0x3a24ba);}return _0x19c044['save']();};}function saveUpdates(_0x454133,_0x5e95cb){return function(_0x4533c5){if(_0x4533c5){return _0x4533c5[_0xf09e('0x25')](_0x454133)[_0xf09e('0x26')](function(_0x1dea86){return _0x1dea86;});}return null;};}function removeEntity(_0x18bd4f,_0xb9f4c3){return function(_0x5bb343){if(_0x5bb343){return _0x5bb343[_0xf09e('0x27')]()[_0xf09e('0x26')](function(){_0x18bd4f[_0xf09e('0x1b')](0xcc)[_0xf09e('0x28')]();});}};}function handleEntityNotFound(_0x5d6d27,_0x4dec1f){return function(_0x28d887){if(!_0x28d887){_0x5d6d27[_0xf09e('0x1a')](0x194);}return _0x28d887;};}function handleError(_0x520cb5,_0x45589e){_0x45589e=_0x45589e||0x1f4;return function(_0x454a3b){logger['error'](_0x454a3b[_0xf09e('0x29')]);if(_0x454a3b[_0xf09e('0x2a')]){delete _0x454a3b[_0xf09e('0x2a')];}_0x520cb5['status'](_0x45589e)[_0xf09e('0x2b')](_0x454a3b);};}exports[_0xf09e('0x2c')]=function(_0x2fc707,_0x1c03df){var _0x2e56fd={},_0x4b982d={},_0x332aa5={'count':0x0,'rows':[]};var _0x361c51=_['map'](db['WhatsappTransferReport']['rawAttributes'],function(_0x3e3da0){return{'name':_0x3e3da0[_0xf09e('0x2d')],'type':_0x3e3da0[_0xf09e('0x2e')][_0xf09e('0x2f')]};});_0x4b982d[_0xf09e('0x30')]=_['map'](_0x361c51,_0xf09e('0x2a'));_0x4b982d[_0xf09e('0x31')]=_[_0xf09e('0x32')](_0x2fc707[_0xf09e('0x31')]);_0x4b982d[_0xf09e('0x33')]=_[_0xf09e('0x34')](_0x4b982d[_0xf09e('0x30')],_0x4b982d[_0xf09e('0x31')]);_0x2e56fd[_0xf09e('0x35')]=_[_0xf09e('0x34')](_0x4b982d[_0xf09e('0x30')],qs[_0xf09e('0x36')](_0x2fc707['query'][_0xf09e('0x36')]));_0x2e56fd[_0xf09e('0x35')]=_0x2e56fd[_0xf09e('0x35')][_0xf09e('0x37')]?_0x2e56fd[_0xf09e('0x35')]:_0x4b982d[_0xf09e('0x30')];if(!_0x2fc707['query'][_0xf09e('0x38')]('nolimit')){_0x2e56fd['limit']=qs[_0xf09e('0x1f')](_0x2fc707['query'][_0xf09e('0x1f')]);_0x2e56fd[_0xf09e('0x1d')]=qs[_0xf09e('0x1d')](_0x2fc707[_0xf09e('0x31')][_0xf09e('0x1d')]);}_0x2e56fd['order']=qs[_0xf09e('0x39')](_0x2fc707['query']['sort']);_0x2e56fd['where']=qs[_0xf09e('0x33')](_[_0xf09e('0x3a')](_0x2fc707['query'],_0x4b982d[_0xf09e('0x33')]),_0x361c51);if(_0x2fc707[_0xf09e('0x31')][_0xf09e('0x3b')]){_0x2e56fd['where']=_['merge'](_0x2e56fd[_0xf09e('0x3c')],{'$or':_[_0xf09e('0x3d')](_0x361c51,function(_0x5d2250){if(_0x5d2250[_0xf09e('0x2e')]!==_0xf09e('0x3e')){var _0x39f561={};_0x39f561[_0x5d2250[_0xf09e('0x2a')]]={'$like':'%'+_0x2fc707[_0xf09e('0x31')][_0xf09e('0x3b')]+'%'};return _0x39f561;}})});}_0x2e56fd=_[_0xf09e('0x3f')]({},_0x2e56fd,_0x2fc707['options']);var _0x3d2d05={'where':_0x2e56fd[_0xf09e('0x3c')]};return db['WhatsappTransferReport'][_0xf09e('0x20')](_0x3d2d05)[_0xf09e('0x26')](function(_0x7be6a3){_0x332aa5[_0xf09e('0x20')]=_0x7be6a3;if(_0x2fc707[_0xf09e('0x31')][_0xf09e('0x40')]){_0x2e56fd[_0xf09e('0x41')]=[{'all':!![]}];}return db['WhatsappTransferReport'][_0xf09e('0x42')](_0x2e56fd);})['then'](function(_0x34cc5f){_0x332aa5['rows']=_0x34cc5f;return _0x332aa5;})[_0xf09e('0x26')](respondWithFilteredResult(_0x1c03df,_0x2e56fd))[_0xf09e('0x43')](handleError(_0x1c03df,null));};exports[_0xf09e('0x44')]=function(_0x5067f6,_0x530897){var _0x3c71a0={'raw':!![],'where':{'id':_0x5067f6[_0xf09e('0x45')]['id']}},_0x3a5cf4={};_0x3a5cf4[_0xf09e('0x30')]=_[_0xf09e('0x32')](db[_0xf09e('0x46')][_0xf09e('0x47')]);_0x3a5cf4['query']=_[_0xf09e('0x32')](_0x5067f6[_0xf09e('0x31')]);_0x3a5cf4[_0xf09e('0x33')]=_['intersection'](_0x3a5cf4[_0xf09e('0x30')],_0x3a5cf4[_0xf09e('0x31')]);_0x3c71a0[_0xf09e('0x35')]=_[_0xf09e('0x34')](_0x3a5cf4[_0xf09e('0x30')],qs[_0xf09e('0x36')](_0x5067f6[_0xf09e('0x31')]['fields']));_0x3c71a0['attributes']=_0x3c71a0[_0xf09e('0x35')][_0xf09e('0x37')]?_0x3c71a0['attributes']:_0x3a5cf4['model'];if(_0x5067f6[_0xf09e('0x31')]['includeAll']){_0x3c71a0[_0xf09e('0x41')]=[{'all':!![]}];}_0x3c71a0=_[_0xf09e('0x3f')]({},_0x3c71a0,_0x5067f6[_0xf09e('0x48')]);return db[_0xf09e('0x46')][_0xf09e('0x49')](_0x3c71a0)[_0xf09e('0x26')](handleEntityNotFound(_0x530897,null))[_0xf09e('0x26')](respondWithResult(_0x530897,null))[_0xf09e('0x43')](handleError(_0x530897,null));};exports[_0xf09e('0x4a')]=function(_0x28bc27,_0x163d07){return db['WhatsappTransferReport'][_0xf09e('0x4a')](_0x28bc27['body'],{})[_0xf09e('0x26')](respondWithResult(_0x163d07,0xc9))[_0xf09e('0x43')](handleError(_0x163d07,null));};exports[_0xf09e('0x25')]=function(_0x5a27a5,_0x3150e5){if(_0x5a27a5[_0xf09e('0x4b')]['id']){delete _0x5a27a5[_0xf09e('0x4b')]['id'];}return db[_0xf09e('0x46')]['find']({'where':{'id':_0x5a27a5['params']['id']}})[_0xf09e('0x26')](handleEntityNotFound(_0x3150e5,null))['then'](saveUpdates(_0x5a27a5[_0xf09e('0x4b')],null))['then'](respondWithResult(_0x3150e5,null))['catch'](handleError(_0x3150e5,null));};exports[_0xf09e('0x27')]=function(_0x5c1e65,_0x492283){return db[_0xf09e('0x46')][_0xf09e('0x49')]({'where':{'id':_0x5c1e65[_0xf09e('0x45')]['id']}})[_0xf09e('0x26')](handleEntityNotFound(_0x492283,null))['then'](removeEntity(_0x492283,null))[_0xf09e('0x43')](handleError(_0x492283,null));};exports[_0xf09e('0x4c')]=function(_0x134aec,_0x452a1d){return db[_0xf09e('0x46')][_0xf09e('0x4c')]()[_0xf09e('0x26')](respondWithResult(_0x452a1d,null))[_0xf09e('0x43')](handleError(_0x452a1d,null));};
\ No newline at end of file
+var _0x37c8=['filters','intersection','attributes','fields','hasOwnProperty','nolimit','offset','sort','where','filter','VIRTUAL','merge','options','WhatsappTransferReport','includeAll','include','findAll','show','params','keys','length','find','catch','body','destroy','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','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','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','rawAttributes','type','key','model','map','query'];(function(_0x3c8e08,_0x27aab8){var _0x4856a3=function(_0x5e4374){while(--_0x5e4374){_0x3c8e08['push'](_0x3c8e08['shift']());}};_0x4856a3(++_0x27aab8);}(_0x37c8,0x69));var _0x837c=function(_0x205e5a,_0x5c19fb){_0x205e5a=_0x205e5a-0x0;var _0x10da58=_0x37c8[_0x205e5a];return _0x10da58;};'use strict';var emlformat=require(_0x837c('0x0'));var rimraf=require(_0x837c('0x1'));var zipdir=require(_0x837c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x837c('0x3'));var moment=require(_0x837c('0x4'));var BPromise=require(_0x837c('0x5'));var Mustache=require(_0x837c('0x6'));var util=require(_0x837c('0x7'));var path=require('path');var sox=require(_0x837c('0x8'));var csv=require('to-csv');var ejs=require(_0x837c('0x9'));var fs=require('fs');var fs_extra=require(_0x837c('0xa'));var _=require(_0x837c('0xb'));var squel=require(_0x837c('0xc'));var crypto=require(_0x837c('0xd'));var jsforce=require(_0x837c('0xe'));var deskjs=require(_0x837c('0xf'));var toCsv=require(_0x837c('0x10'));var querystring=require(_0x837c('0x11'));var Papa=require(_0x837c('0x12'));var Redis=require(_0x837c('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x837c('0x14'));var as=require(_0x837c('0x15'));var hardwareService=require(_0x837c('0x16'));var logger=require('../../config/logger')(_0x837c('0x17'));var utils=require(_0x837c('0x18'));var config=require(_0x837c('0x19'));var licenseUtil=require(_0x837c('0x1a'));var db=require(_0x837c('0x1b'))['db'];function respondWithStatusCode(_0x59ef62,_0x40f063){_0x40f063=_0x40f063||0xcc;return function(_0x30352d){if(_0x30352d){return _0x59ef62[_0x837c('0x1c')](_0x40f063);}return _0x59ef62['status'](_0x40f063)[_0x837c('0x1d')]();};}function respondWithResult(_0x4a51e7,_0x2ffbab){_0x2ffbab=_0x2ffbab||0xc8;return function(_0x36a6b4){if(_0x36a6b4){return _0x4a51e7[_0x837c('0x1e')](_0x2ffbab)[_0x837c('0x1f')](_0x36a6b4);}};}function respondWithFilteredResult(_0x24e4d0,_0x4f5669){return function(_0x22dc4a){if(_0x22dc4a){var _0x36cd47=typeof _0x4f5669['offset']==='undefined'&&typeof _0x4f5669[_0x837c('0x20')]===_0x837c('0x21');var _0x7f510a=_0x22dc4a[_0x837c('0x22')];var _0x5e5a29=_0x36cd47?0x0:_0x4f5669['offset'];var _0x2e183e=_0x36cd47?_0x22dc4a[_0x837c('0x22')]:_0x4f5669['offset']+_0x4f5669[_0x837c('0x20')];var _0x2a57fc;if(_0x2e183e>=_0x7f510a){_0x2e183e=_0x7f510a;_0x2a57fc=0xc8;}else{_0x2a57fc=0xce;}_0x24e4d0['status'](_0x2a57fc);return _0x24e4d0[_0x837c('0x23')](_0x837c('0x24'),_0x5e5a29+'-'+_0x2e183e+'/'+_0x7f510a)['json'](_0x22dc4a);}return null;};}function patchUpdates(_0x1fc6da){return function(_0x134ecc){try{jsonpatch[_0x837c('0x25')](_0x134ecc,_0x1fc6da,!![]);}catch(_0x4ace68){return BPromise[_0x837c('0x26')](_0x4ace68);}return _0x134ecc[_0x837c('0x27')]();};}function saveUpdates(_0x3025d4,_0x205afe){return function(_0x575d8b){if(_0x575d8b){return _0x575d8b[_0x837c('0x28')](_0x3025d4)[_0x837c('0x29')](function(_0x2b6a5f){return _0x2b6a5f;});}return null;};}function removeEntity(_0x9d637a,_0x44b60b){return function(_0x378c40){if(_0x378c40){return _0x378c40['destroy']()[_0x837c('0x29')](function(){_0x9d637a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2db596,_0x446652){return function(_0x41b10a){if(!_0x41b10a){_0x2db596[_0x837c('0x1c')](0x194);}return _0x41b10a;};}function handleError(_0x4abd55,_0xebffab){_0xebffab=_0xebffab||0x1f4;return function(_0x5b4292){logger[_0x837c('0x2a')](_0x5b4292[_0x837c('0x2b')]);if(_0x5b4292[_0x837c('0x2c')]){delete _0x5b4292[_0x837c('0x2c')];}_0x4abd55[_0x837c('0x1e')](_0xebffab)[_0x837c('0x2d')](_0x5b4292);};}exports[_0x837c('0x2e')]=function(_0xf7a6e4,_0x599bae){var _0x2d8bd4={},_0x44a75a={},_0x2ca3f1={'count':0x0,'rows':[]};var _0x112a65=_['map'](db['WhatsappTransferReport'][_0x837c('0x2f')],function(_0x2079f1){return{'name':_0x2079f1['fieldName'],'type':_0x2079f1[_0x837c('0x30')][_0x837c('0x31')]};});_0x44a75a[_0x837c('0x32')]=_[_0x837c('0x33')](_0x112a65,_0x837c('0x2c'));_0x44a75a['query']=_['keys'](_0xf7a6e4[_0x837c('0x34')]);_0x44a75a[_0x837c('0x35')]=_[_0x837c('0x36')](_0x44a75a[_0x837c('0x32')],_0x44a75a['query']);_0x2d8bd4[_0x837c('0x37')]=_[_0x837c('0x36')](_0x44a75a['model'],qs[_0x837c('0x38')](_0xf7a6e4['query'][_0x837c('0x38')]));_0x2d8bd4['attributes']=_0x2d8bd4[_0x837c('0x37')]['length']?_0x2d8bd4[_0x837c('0x37')]:_0x44a75a[_0x837c('0x32')];if(!_0xf7a6e4[_0x837c('0x34')][_0x837c('0x39')](_0x837c('0x3a'))){_0x2d8bd4['limit']=qs[_0x837c('0x20')](_0xf7a6e4[_0x837c('0x34')][_0x837c('0x20')]);_0x2d8bd4[_0x837c('0x3b')]=qs[_0x837c('0x3b')](_0xf7a6e4[_0x837c('0x34')][_0x837c('0x3b')]);}_0x2d8bd4['order']=qs[_0x837c('0x3c')](_0xf7a6e4['query'][_0x837c('0x3c')]);_0x2d8bd4[_0x837c('0x3d')]=qs['filters'](_['pick'](_0xf7a6e4['query'],_0x44a75a[_0x837c('0x35')]),_0x112a65);if(_0xf7a6e4['query'][_0x837c('0x3e')]){_0x2d8bd4['where']=_['merge'](_0x2d8bd4['where'],{'$or':_[_0x837c('0x33')](_0x112a65,function(_0x194630){if(_0x194630[_0x837c('0x30')]!==_0x837c('0x3f')){var _0x2a92bb={};_0x2a92bb[_0x194630[_0x837c('0x2c')]]={'$like':'%'+_0xf7a6e4['query']['filter']+'%'};return _0x2a92bb;}})});}_0x2d8bd4=_[_0x837c('0x40')]({},_0x2d8bd4,_0xf7a6e4[_0x837c('0x41')]);var _0x238500={'where':_0x2d8bd4[_0x837c('0x3d')]};return db[_0x837c('0x42')]['count'](_0x238500)['then'](function(_0x1970fc){_0x2ca3f1[_0x837c('0x22')]=_0x1970fc;if(_0xf7a6e4[_0x837c('0x34')][_0x837c('0x43')]){_0x2d8bd4[_0x837c('0x44')]=[{'all':!![]}];}return db[_0x837c('0x42')][_0x837c('0x45')](_0x2d8bd4);})['then'](function(_0x5546fe){_0x2ca3f1['rows']=_0x5546fe;return _0x2ca3f1;})[_0x837c('0x29')](respondWithFilteredResult(_0x599bae,_0x2d8bd4))['catch'](handleError(_0x599bae,null));};exports[_0x837c('0x46')]=function(_0x86f8e0,_0x32ddb6){var _0x13326d={'raw':!![],'where':{'id':_0x86f8e0[_0x837c('0x47')]['id']}},_0x142d86={};_0x142d86[_0x837c('0x32')]=_[_0x837c('0x48')](db['WhatsappTransferReport']['rawAttributes']);_0x142d86[_0x837c('0x34')]=_[_0x837c('0x48')](_0x86f8e0[_0x837c('0x34')]);_0x142d86['filters']=_[_0x837c('0x36')](_0x142d86[_0x837c('0x32')],_0x142d86[_0x837c('0x34')]);_0x13326d[_0x837c('0x37')]=_['intersection'](_0x142d86[_0x837c('0x32')],qs[_0x837c('0x38')](_0x86f8e0['query'][_0x837c('0x38')]));_0x13326d[_0x837c('0x37')]=_0x13326d[_0x837c('0x37')][_0x837c('0x49')]?_0x13326d[_0x837c('0x37')]:_0x142d86[_0x837c('0x32')];if(_0x86f8e0[_0x837c('0x34')][_0x837c('0x43')]){_0x13326d['include']=[{'all':!![]}];}_0x13326d=_['merge']({},_0x13326d,_0x86f8e0[_0x837c('0x41')]);return db[_0x837c('0x42')][_0x837c('0x4a')](_0x13326d)[_0x837c('0x29')](handleEntityNotFound(_0x32ddb6,null))[_0x837c('0x29')](respondWithResult(_0x32ddb6,null))[_0x837c('0x4b')](handleError(_0x32ddb6,null));};exports['create']=function(_0x4107b9,_0x4efeb3){return db[_0x837c('0x42')]['create'](_0x4107b9[_0x837c('0x4c')],{})[_0x837c('0x29')](respondWithResult(_0x4efeb3,0xc9))['catch'](handleError(_0x4efeb3,null));};exports[_0x837c('0x28')]=function(_0xf9f16c,_0x4b635b){if(_0xf9f16c['body']['id']){delete _0xf9f16c['body']['id'];}return db[_0x837c('0x42')][_0x837c('0x4a')]({'where':{'id':_0xf9f16c[_0x837c('0x47')]['id']}})['then'](handleEntityNotFound(_0x4b635b,null))[_0x837c('0x29')](saveUpdates(_0xf9f16c[_0x837c('0x4c')],null))['then'](respondWithResult(_0x4b635b,null))[_0x837c('0x4b')](handleError(_0x4b635b,null));};exports[_0x837c('0x4d')]=function(_0x535e40,_0x5cdb40){return db['WhatsappTransferReport'][_0x837c('0x4a')]({'where':{'id':_0x535e40[_0x837c('0x47')]['id']}})[_0x837c('0x29')](handleEntityNotFound(_0x5cdb40,null))[_0x837c('0x29')](removeEntity(_0x5cdb40,null))[_0x837c('0x4b')](handleError(_0x5cdb40,null));};exports[_0x837c('0x4e')]=function(_0x2937b3,_0x4a034d){return db[_0x837c('0x42')][_0x837c('0x4e')]()['then'](respondWithResult(_0x4a034d,null))[_0x837c('0x4b')](handleError(_0x4a034d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4525=['report_whatsapp_transfer','uniqueid','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./whatsappTransferReport.attributes','exports','define','WhatsappTransferReport'];(function(_0x39f68d,_0x4c06a0){var _0x20ae2e=function(_0x23d916){while(--_0x23d916){_0x39f68d['push'](_0x39f68d['shift']());}};_0x20ae2e(++_0x4c06a0);}(_0x4525,0x1f1));var _0x5452=function(_0x11c119,_0x41fabf){_0x11c119=_0x11c119-0x0;var _0x3338db=_0x4525[_0x11c119];return _0x3338db;};'use strict';var _=require(_0x5452('0x0'));var util=require(_0x5452('0x1'));var logger=require(_0x5452('0x2'))(_0x5452('0x3'));var moment=require(_0x5452('0x4'));var BPromise=require(_0x5452('0x5'));var rp=require(_0x5452('0x6'));var fs=require('fs');var path=require(_0x5452('0x7'));var rimraf=require(_0x5452('0x8'));var config=require('../../config/environment');var attributes=require(_0x5452('0x9'));module[_0x5452('0xa')]=function(_0x4f2898,_0x1e7478){return _0x4f2898[_0x5452('0xb')](_0x5452('0xc'),attributes,{'tableName':_0x5452('0xd'),'paranoid':![],'indexes':[{'name':_0x5452('0xe'),'fields':[_0x5452('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xc33d=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./whatsappTransferReport.attributes','exports','WhatsappTransferReport','report_whatsapp_transfer','uniqueid','util','../../config/logger','api'];(function(_0x1da527,_0x2dc953){var _0x40fc7c=function(_0x9949f5){while(--_0x9949f5){_0x1da527['push'](_0x1da527['shift']());}};_0x40fc7c(++_0x2dc953);}(_0xc33d,0x1d9));var _0xdc33=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc33d[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0xdc33('0x0'));var logger=require(_0xdc33('0x1'))(_0xdc33('0x2'));var moment=require(_0xdc33('0x3'));var BPromise=require(_0xdc33('0x4'));var rp=require(_0xdc33('0x5'));var fs=require('fs');var path=require(_0xdc33('0x6'));var rimraf=require(_0xdc33('0x7'));var config=require(_0xdc33('0x8'));var attributes=require(_0xdc33('0x9'));module[_0xdc33('0xa')]=function(_0x89f1bb,_0x3a0bb8){return _0x89f1bb['define'](_0xdc33('0xb'),attributes,{'tableName':_0xdc33('0xc'),'paranoid':![],'indexes':[{'name':_0xdc33('0xd'),'fields':[_0xdc33('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc5f5=['lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/environment','jayson/promise','client','http','request','then','info','debug','WhatsappTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','WhatsappTransferReport,\x20%s,\x20%s','message','result','catch'];(function(_0x5a5414,_0x5b6498){var _0x168fe1=function(_0x2402a9){while(--_0x2402a9){_0x5a5414['push'](_0x5a5414['shift']());}};_0x168fe1(++_0x5b6498);}(_0xc5f5,0xa8));var _0x5c5f=function(_0x57306c,_0xdeff85){_0x57306c=_0x57306c-0x0;var _0x413cfb=_0xc5f5[_0x57306c];return _0x413cfb;};'use strict';var _=require(_0x5c5f('0x0'));var util=require(_0x5c5f('0x1'));var moment=require(_0x5c5f('0x2'));var BPromise=require(_0x5c5f('0x3'));var rs=require(_0x5c5f('0x4'));var fs=require('fs');var Redis=require(_0x5c5f('0x5'));var db=require(_0x5c5f('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x5c5f('0x7'));var jayson=require(_0x5c5f('0x8'));var client=jayson[_0x5c5f('0x9')][_0x5c5f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5a746d,_0x1deed4,_0x3ce111){return new BPromise(function(_0x30ed39,_0x5ed418){return client[_0x5c5f('0xb')](_0x5a746d,_0x3ce111)[_0x5c5f('0xc')](function(_0x46fcca){logger[_0x5c5f('0xd')]('WhatsappTransferReport,\x20%s,\x20%s',_0x1deed4,'request\x20sent');logger[_0x5c5f('0xe')](_0x5c5f('0xf'),_0x1deed4,_0x5c5f('0x10'),JSON[_0x5c5f('0x11')](_0x46fcca));if(_0x46fcca[_0x5c5f('0x12')]){if(_0x46fcca['error'][_0x5c5f('0x13')]===0x1f4){logger[_0x5c5f('0x12')](_0x5c5f('0x14'),_0x1deed4,_0x46fcca[_0x5c5f('0x12')][_0x5c5f('0x15')]);return _0x5ed418(_0x46fcca[_0x5c5f('0x12')][_0x5c5f('0x15')]);}logger['error'](_0x5c5f('0x14'),_0x1deed4,_0x46fcca[_0x5c5f('0x12')][_0x5c5f('0x15')]);return _0x30ed39(_0x46fcca[_0x5c5f('0x12')]['message']);}else{logger[_0x5c5f('0xd')]('WhatsappTransferReport,\x20%s,\x20%s',_0x1deed4,_0x5c5f('0x10'));_0x30ed39(_0x46fcca[_0x5c5f('0x16')]['message']);}})[_0x5c5f('0x17')](function(_0x202318){logger[_0x5c5f('0x12')](_0x5c5f('0x14'),_0x1deed4,_0x202318);_0x5ed418(_0x202318);});});}
\ No newline at end of file
+var _0x7e69=['moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','then','WhatsappTransferReport,\x20%s,\x20%s','request\x20sent','debug','WhatsappTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash'];(function(_0x9ca21f,_0x437553){var _0x9ef54b=function(_0x1aafff){while(--_0x1aafff){_0x9ca21f['push'](_0x9ca21f['shift']());}};_0x9ef54b(++_0x437553);}(_0x7e69,0x1b8));var _0x97e6=function(_0x3add10,_0x457d16){_0x3add10=_0x3add10-0x0;var _0x2da348=_0x7e69[_0x3add10];return _0x2da348;};'use strict';var _=require(_0x97e6('0x0'));var util=require('util');var moment=require(_0x97e6('0x1'));var BPromise=require(_0x97e6('0x2'));var rs=require(_0x97e6('0x3'));var fs=require('fs');var Redis=require(_0x97e6('0x4'));var db=require(_0x97e6('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x97e6('0x6'))(_0x97e6('0x7'));var config=require(_0x97e6('0x8'));var jayson=require(_0x97e6('0x9'));var client=jayson['client'][_0x97e6('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2f3c73,_0x520f12,_0x56b13b){return new BPromise(function(_0x48ce1f,_0x443238){return client['request'](_0x2f3c73,_0x56b13b)[_0x97e6('0xb')](function(_0x55a41f){logger['info'](_0x97e6('0xc'),_0x520f12,_0x97e6('0xd'));logger[_0x97e6('0xe')](_0x97e6('0xf'),_0x520f12,'request\x20sent',JSON[_0x97e6('0x10')](_0x55a41f));if(_0x55a41f['error']){if(_0x55a41f[_0x97e6('0x11')]['code']===0x1f4){logger[_0x97e6('0x11')](_0x97e6('0xc'),_0x520f12,_0x55a41f[_0x97e6('0x11')][_0x97e6('0x12')]);return _0x443238(_0x55a41f[_0x97e6('0x11')]['message']);}logger[_0x97e6('0x11')](_0x97e6('0xc'),_0x520f12,_0x55a41f['error'][_0x97e6('0x12')]);return _0x48ce1f(_0x55a41f[_0x97e6('0x11')][_0x97e6('0x12')]);}else{logger['info'](_0x97e6('0xc'),_0x520f12,_0x97e6('0xd'));_0x48ce1f(_0x55a41f[_0x97e6('0x13')][_0x97e6('0x12')]);}})[_0x97e6('0x14')](function(_0x18635d){logger[_0x97e6('0x11')](_0x97e6('0xc'),_0x520f12,_0x18635d);_0x443238(_0x18635d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf9c4=['./config/environment','./config/logger','app','./config/pm2','./config/pm2/config','./config/schedule','./config/schedule/chat','./config/schedule/transcribe','sequelize','sync','then','listen','info','start','map','filter','online','name','join','Offline\x20apps:','status','None','seedDB','./config/seedDB','default','Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s','exit','lodash','./mysqldb','./rpc'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xf9c4,0x75));var _0x4f9c=function(_0x4a1b3c,_0x20aa97){_0x4a1b3c=_0x4a1b3c-0x0;var _0xe314d7=_0xf9c4[_0x4a1b3c];return _0xe314d7;};'use strict';var _=require(_0x4f9c('0x0'));var mysqldb=require(_0x4f9c('0x1'));var rpc=require(_0x4f9c('0x2'));var config=require(_0x4f9c('0x3'));var logger=require(_0x4f9c('0x4'))(_0x4f9c('0x5'));var pm2=require(_0x4f9c('0x6'));var pm2Config=require(_0x4f9c('0x7'));var schedule=require(_0x4f9c('0x8'));var chat=require(_0x4f9c('0x9'));var whatsapp=require('./config/schedule/whatsapp');var transcribe=require(_0x4f9c('0xa'));function main(){return mysqldb['db'][_0x4f9c('0xb')][_0x4f9c('0xc')]()[_0x4f9c('0xd')](function(){return rpc[_0x4f9c('0xe')]();})[_0x4f9c('0xd')](function(_0x2502ed){logger[_0x4f9c('0xf')](_0x2502ed);return chat[_0x4f9c('0x10')]();})[_0x4f9c('0xd')](function(){return whatsapp[_0x4f9c('0x10')]();})['then'](function(){return schedule[_0x4f9c('0x10')]();})[_0x4f9c('0xd')](function(){return transcribe[_0x4f9c('0x10')]();})[_0x4f9c('0xd')](function(_0x555532){logger[_0x4f9c('0xf')](_0x555532);return pm2['start'](pm2Config);})['then'](function(_0xf727b5){logger[_0x4f9c('0xf')]('Online\x20apps:',_[_0x4f9c('0x11')](_[_0x4f9c('0x12')](_0xf727b5,{'status':_0x4f9c('0x13')}),_0x4f9c('0x14'))[_0x4f9c('0x15')]());logger[_0x4f9c('0xf')](_0x4f9c('0x16'),_[_0x4f9c('0x11')](_[_0x4f9c('0x12')](_0xf727b5,function(_0x396fd6){return _0x396fd6[_0x4f9c('0x17')]!=='online';}),_0x4f9c('0x14'))[_0x4f9c('0x15')]()||_0x4f9c('0x18'));config[_0x4f9c('0x19')]&&require(_0x4f9c('0x1a'))['default']();require('./config/license')[_0x4f9c('0x1b')]();})['catch'](function(_0x1d7aa6){logger['error'](_0x4f9c('0x1c'),_0x1d7aa6);process[_0x4f9c('0x1d')](0x1);});}main();
\ No newline at end of file
+var _0xc33f=['online','name','join','status','seedDB','./config/seedDB','./config/license','default','catch','error','Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s','lodash','./mysqldb','./rpc','./config/environment','./config/logger','app','./config/pm2','./config/schedule/chat','./config/schedule/whatsapp','./config/schedule/transcribe','sequelize','sync','then','listen','info','start','Online\x20apps:','map'];(function(_0x20419d,_0xbcdedb){var _0x377ab2=function(_0x1be0f7){while(--_0x1be0f7){_0x20419d['push'](_0x20419d['shift']());}};_0x377ab2(++_0xbcdedb);}(_0xc33f,0x184));var _0xfc33=function(_0x49ad91,_0x151789){_0x49ad91=_0x49ad91-0x0;var _0x409654=_0xc33f[_0x49ad91];return _0x409654;};'use strict';var _=require(_0xfc33('0x0'));var mysqldb=require(_0xfc33('0x1'));var rpc=require(_0xfc33('0x2'));var config=require(_0xfc33('0x3'));var logger=require(_0xfc33('0x4'))(_0xfc33('0x5'));var pm2=require(_0xfc33('0x6'));var pm2Config=require('./config/pm2/config');var schedule=require('./config/schedule');var chat=require(_0xfc33('0x7'));var whatsapp=require(_0xfc33('0x8'));var transcribe=require(_0xfc33('0x9'));function main(){return mysqldb['db'][_0xfc33('0xa')][_0xfc33('0xb')]()[_0xfc33('0xc')](function(){return rpc[_0xfc33('0xd')]();})[_0xfc33('0xc')](function(_0x14aa56){logger[_0xfc33('0xe')](_0x14aa56);return chat[_0xfc33('0xf')]();})[_0xfc33('0xc')](function(){return whatsapp[_0xfc33('0xf')]();})[_0xfc33('0xc')](function(){return schedule[_0xfc33('0xf')]();})[_0xfc33('0xc')](function(){return transcribe[_0xfc33('0xf')]();})[_0xfc33('0xc')](function(_0x1ebf69){logger['info'](_0x1ebf69);return pm2[_0xfc33('0xf')](pm2Config);})['then'](function(_0x25b203){logger[_0xfc33('0xe')](_0xfc33('0x10'),_[_0xfc33('0x11')](_['filter'](_0x25b203,{'status':_0xfc33('0x12')}),_0xfc33('0x13'))[_0xfc33('0x14')]());logger[_0xfc33('0xe')]('Offline\x20apps:',_[_0xfc33('0x11')](_['filter'](_0x25b203,function(_0x31b986){return _0x31b986[_0xfc33('0x15')]!==_0xfc33('0x12');}),_0xfc33('0x13'))[_0xfc33('0x14')]()||'None');config[_0xfc33('0x16')]&&require(_0xfc33('0x17'))['default']();require(_0xfc33('0x18'))[_0xfc33('0x19')]();})[_0xfc33('0x1a')](function(_0x3d8730){logger[_0xfc33('0x1b')](_0xfc33('0x1c'),_0x3d8730);process['exit'](0x1);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa005=['Invalid\x20API\x20access\x20key','blocked','add','minutes','User\x20not\x20found.','getLicense','Forbidden','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','redirect','/dashboards/general','send','retrieveApiKey','isNil','generateApiKey','apiKeyNonce','apiKeyIat','regenerateApiKey','test','ValidationError','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','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.','updatePasswordsHistory','unshift','join','promisify','sign','secret','secrets','session','payload','verify','floor','now','toString','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','express-jwt','composable-middleware','bluebird','role','fullname','internal','email','userpic','permissions','md5secret','voicePause','chatPause','mailPause','faxPause','openchannelPause','pauseType','showWebBar','lastLoginAt','lastPauseAt','allowmessenger','alias','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarRemoteControlPort','hotdesk','interface','userProfileId','privacyEnabled','settingsEnabled','downloadVoiceRecordings','downloadOmnichannelInteractions','selectRecallMeCampaign','isChatInteractionAuthorized','isAuthenticated','user','ChatInteraction','findOne','params','closed','disposition','status','json','Unmanaged.','Forbidden.','catch','use','authorization','headers','Basic','find','name','pass','Wrong\x20credentials.','startsWith','Unknown\x20authorization\x20format','query','apikey','getUuid','then','User','sub','Setting','allowedLoginAttempts','blockDuration','isEqual','disabled'];(function(_0x459d83,_0x1631d1){var _0x3c1b53=function(_0xa9fa79){while(--_0xa9fa79){_0x459d83['push'](_0x459d83['shift']());}};_0x3c1b53(++_0x1631d1);}(_0xa005,0x118));var _0x5a00=function(_0x2b55b5,_0x78505e){_0x2b55b5=_0x2b55b5-0x0;var _0x103d28=_0xa005[_0x2b55b5];return _0x103d28;};'use strict';var db=require(_0x5a00('0x0'))['db'];var config=require(_0x5a00('0x1'));var hardwareConf=require(_0x5a00('0x2'));var licenseUtil=require(_0x5a00('0x3'));var encryptor=require('../encryptor');var _=require('lodash');var jwt=require('jsonwebtoken');var expressJwt=require(_0x5a00('0x4'));var compose=require(_0x5a00('0x5'));var basicAuth=require('basic-auth');var crypto=require('crypto');var BPromise=require(_0x5a00('0x6'));var util=require('util');var moment=require('moment');var validateJwt=expressJwt({'secret':config['secrets']['session']});var userAttributes=['id',_0x5a00('0x7'),_0x5a00('0x8'),'name',_0x5a00('0x9'),_0x5a00('0xa'),_0x5a00('0xb'),_0x5a00('0xc'),_0x5a00('0xd'),_0x5a00('0xe'),_0x5a00('0xf'),_0x5a00('0x10'),_0x5a00('0x11'),'smsPause',_0x5a00('0x12'),_0x5a00('0x13'),_0x5a00('0x14'),_0x5a00('0x15'),_0x5a00('0x16'),'crudPermissions',_0x5a00('0x17'),'passwordResetAt',_0x5a00('0x18'),'phoneBarAutoAnswer',_0x5a00('0x19'),_0x5a00('0x1a'),_0x5a00('0x1b'),_0x5a00('0x1c'),_0x5a00('0x1d'),_0x5a00('0x1e'),'phoneBarPrefixRequired','phoneBarRemoteControl',_0x5a00('0x1f'),_0x5a00('0x20'),_0x5a00('0x21'),_0x5a00('0x22'),_0x5a00('0x23'),_0x5a00('0x24'),'wssPort',_0x5a00('0x25'),_0x5a00('0x26'),'downloadAttachments','ignorePauseForPreviewCalls',_0x5a00('0x27')];exports[_0x5a00('0x28')]=function(){return this[_0x5a00('0x29')](!![])['use'](function(_0x3d6566,_0x28fe9f,_0x326d6c){if(_0x3d6566[_0x5a00('0x2a')]){_0x326d6c();}else{return db[_0x5a00('0x2b')][_0x5a00('0x2c')]({'where':{'id':_0x3d6566[_0x5a00('0x2d')]['id']},'attributes':['id',_0x5a00('0x2e'),_0x5a00('0x2f')],'raw':!![]})['then'](function(_0x24930f){if(_0x24930f&&_0x24930f[_0x5a00('0x2e')]){return _0x28fe9f[_0x5a00('0x30')](_0x24930f[_0x5a00('0x2f')]==='unmanaged'?0x195:0x193)[_0x5a00('0x31')]({'message':_0x24930f[_0x5a00('0x2f')]==='unmanaged'?_0x5a00('0x32'):_0x5a00('0x33')});}else{_0x326d6c();}})[_0x5a00('0x34')](function(_0x21c7dd){_0x326d6c(_0x21c7dd);});}});};exports[_0x5a00('0x29')]=function isAuthenticated(_0x615528){return compose()[_0x5a00('0x35')](function(_0x3dc3b7,_0xcb57f5,_0x58285d){var _0x34f87f;if(_0x3dc3b7['headers'][_0x5a00('0x36')]){if(_['startsWith'](_0x3dc3b7[_0x5a00('0x37')][_0x5a00('0x36')],_0x5a00('0x38'))){var _0x3ee221=basicAuth(_0x3dc3b7);db['User'][_0x5a00('0x39')]({'where':{'name':_0x3ee221[_0x5a00('0x3a')]}})['then'](function(_0x4af3ad){if(!_0x4af3ad||!_0x4af3ad['authenticate'](_0x3ee221[_0x5a00('0x3b')])){return _0xcb57f5[_0x5a00('0x30')](0x191)[_0x5a00('0x31')]({'message':_0x5a00('0x3c')});}_0x3dc3b7[_0x5a00('0x2a')]={'id':_0x4af3ad['id']};_0x58285d();})[_0x5a00('0x34')](function(_0x41ba43){_0x58285d(_0x41ba43);});}else if(_[_0x5a00('0x3d')](_0x3dc3b7[_0x5a00('0x37')]['authorization'],'Bearer')){validateJwt(_0x3dc3b7,_0xcb57f5,_0x58285d);}else{if(_0x615528){_0x58285d();}else{return _0xcb57f5[_0x5a00('0x30')](0x193)[_0x5a00('0x31')]({'message':_0x5a00('0x3e')});}}}else if(_0x3dc3b7[_0x5a00('0x3f')][_0x5a00('0x40')]){try{var _0x10554a={'audience':hardwareConf[_0x5a00('0x41')](),'issuer':hardwareConf[_0x5a00('0x41')]()};verifyJwt(_0x3dc3b7[_0x5a00('0x3f')][_0x5a00('0x40')],_0x10554a)[_0x5a00('0x42')](function(_0x3c379f){return db[_0x5a00('0x43')][_0x5a00('0x39')]({'where':{'id':_0x3c379f[_0x5a00('0x44')]}})[_0x5a00('0x42')](function(_0x58197b){_0x34f87f=_0x58197b;return db[_0x5a00('0x45')][_0x5a00('0x2c')]({'where':{'id':0x1},'attributes':[_0x5a00('0x46'),_0x5a00('0x47')],'raw':!![]});})['then'](function(_0x1761ed){if(!_0x34f87f||!_[_0x5a00('0x48')](_0x34f87f['apiKeyNonce'],_0x3c379f['nonce'])){return _0xcb57f5[_0x5a00('0x30')](0x191)[_0x5a00('0x31')]({'message':'API\x20access\x20key\x20is\x20not\x20valid\x20anymore'});}if(_0x34f87f[_0x5a00('0x49')]){return _0xcb57f5[_0x5a00('0x30')](0x191)[_0x5a00('0x31')]({'message':_0x5a00('0x4a')});}if(_0x34f87f[_0x5a00('0x4b')]){if(_0x1761ed[_0x5a00('0x47')]>0x0){if(moment(_0x34f87f['blockedAt'])[_0x5a00('0x4c')](_0x1761ed[_0x5a00('0x47')],_0x5a00('0x4d'))>moment()){return _0xcb57f5[_0x5a00('0x30')](0x191)[_0x5a00('0x31')]({'message':_0x5a00('0x4a')});}}else{return _0xcb57f5[_0x5a00('0x30')](0x191)[_0x5a00('0x31')]({'message':_0x5a00('0x4a')});}}_0x3dc3b7[_0x5a00('0x2a')]={'id':_0x34f87f['id']};_0x58285d();});})['catch'](function(){return _0xcb57f5[_0x5a00('0x30')](0x191)[_0x5a00('0x31')]({'message':_0x5a00('0x4a')});});}catch(_0x3dec95){_0x58285d(_0x3dec95);}}else if(_0x615528){_0x58285d();}else{return _0xcb57f5['status'](0x193)['json']({'message':_0x5a00('0x3e')});}})[_0x5a00('0x35')](function(_0x380f00,_0x19a889,_0x523e54){if(_0x380f00[_0x5a00('0x2a')]){db[_0x5a00('0x43')]['find']({'where':{'id':_0x380f00['user']['id']},'attributes':userAttributes})[_0x5a00('0x42')](function(_0x335fbe){if(!_0x335fbe){return _0x19a889[_0x5a00('0x30')](0x194)[_0x5a00('0x31')]({'message':_0x5a00('0x4e')});}_0x380f00[_0x5a00('0x2a')]=_0x335fbe;_0x523e54();})['catch'](function(_0x2de741){_0x523e54(_0x2de741);});}else if(_0x615528){_0x523e54();}else{return _0x19a889[_0x5a00('0x30')](0x194)['json']({'message':'User\x20object\x20not\x20found.'});}});};exports['canUpdate']=function canUpdate(){return compose()[_0x5a00('0x35')](function(_0x5c1cb8,_0x4e2e49,_0x348782){return licenseUtil[_0x5a00('0x4f')]()['then'](function(_0x18c462){if(_0x18c462['update']){_0x348782();}else{return _0x4e2e49[_0x5a00('0x30')](0x193)[_0x5a00('0x31')]({'message':_0x5a00('0x50')});}})[_0x5a00('0x34')](function(_0x28aacf){_0x348782(_0x28aacf);});});};exports[_0x5a00('0x51')]=function(_0x133d32,_0x7ebdb9,_0x586122){_0x133d32[_0x5a00('0x51')]=!![];return _0x586122();};exports[_0x5a00('0x52')]=function signToken(_0x1967e8){return signJwt(_0x1967e8);};exports[_0x5a00('0x53')]=function(_0x248ee4,_0x386647){if(!_0x248ee4[_0x5a00('0x2a')]){return _0x386647['status'](0x194)[_0x5a00('0x31')]({'message':_0x5a00('0x54')});}var _0x19cbd2={'payload':{'id':_0x248ee4['user']['id'],'role':_0x248ee4[_0x5a00('0x2a')]['role']},'options':{'expiresIn':0x15180}};return signJwt(_0x19cbd2)['then'](function(_0x133cdc){_0x386647[_0x5a00('0x55')]('motion.token',_0x133cdc);_0x386647[_0x5a00('0x56')](_0x5a00('0x57'));})['catch'](function(_0x4648c3){return _0x386647[_0x5a00('0x30')](0x1f4)[_0x5a00('0x58')](_0x4648c3);});};exports[_0x5a00('0x59')]=function(_0x3c08a2){if(_[_0x5a00('0x5a')](_0x3c08a2['apiKeyNonce'])||_[_0x5a00('0x5a')](_0x3c08a2['apiKeyIat'])){return null;}else{return createJwt(_0x3c08a2);}};exports[_0x5a00('0x5b')]=function(_0x10ccbe){_0x10ccbe[_0x5a00('0x5c')]=generateNonce();_0x10ccbe[_0x5a00('0x5d')]=generateIssuedAt();return createJwt(_0x10ccbe);};exports[_0x5a00('0x5e')]=function(_0x1d3d99,_0x2a7bd3){var _0x48d6f4=_0x1d3d99['query'][_0x5a00('0x40')];if(_0x48d6f4){var _0x382866={'nonce':_0x2a7bd3[_0x5a00('0x5c')],'iat':_0x2a7bd3[_0x5a00('0x5d')],'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0x5a00('0x41')]()};return verifyJwt(_0x48d6f4,_0x382866)[_0x5a00('0x42')](function(){return generateApiKey(_0x2a7bd3);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports['validatePasswordPattern']=function(_0x328b3f){var _0x625ec7=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x625ec7[_0x5a00('0x5f')](_0x328b3f))throw new db['Sequelize'][(_0x5a00('0x60'))](_0x5a00('0x61'));return;};exports[_0x5a00('0x62')]=function(_0xa38ae1,_0x2bd019,_0x152c5a){var _0x52f557=encryptor[_0x5a00('0x63')](_0x2bd019)[_0x5a00('0x64')](',');for(var _0x430aed=0x0;_0x430aed<_0x152c5a;_0x430aed++){if(!_0x52f557[_0x430aed])break;if(_0xa38ae1[_0x5a00('0x65')]()===_0x52f557[_0x430aed][_0x5a00('0x65')]()){var _0x3beb03=util[_0x5a00('0x66')](_0x5a00('0x67'),_0x152c5a);if(_0x152c5a===0x1){_0x3beb03=_0x5a00('0x68');}throw new db['Sequelize'][(_0x5a00('0x60'))](_0x3beb03);}}return;};exports[_0x5a00('0x69')]=function(_0x1584cc,_0x33e503){var _0x17d49b=_0x33e503?encryptor[_0x5a00('0x63')](_0x33e503)[_0x5a00('0x64')](','):[];if(_0x17d49b['length']===0x5){_0x17d49b['splice'](-0x1,0x1);}_0x17d49b[_0x5a00('0x6a')](_0x1584cc);return encryptor['encryptString'](_0x17d49b[_0x5a00('0x6b')](','));};function signJwt(_0x4f23fa){var _0x447014=BPromise[_0x5a00('0x6c')](jwt[_0x5a00('0x6d')],{'context':jwt});var _0x136f18=_0x4f23fa[_0x5a00('0x6e')]||config[_0x5a00('0x6f')][_0x5a00('0x70')];return new BPromise(function(_0x24a92e,_0x2840f4){_0x447014(_0x4f23fa[_0x5a00('0x71')],_0x136f18,_0x4f23fa['options'])['then'](function(_0xc0dd67){_0x24a92e(_0xc0dd67);})['catch'](function(_0x277f8a){_0x2840f4(_0x277f8a);});});}function verifyJwt(_0x2409eb,_0x371439,_0x39b69e){var _0x31ba5e=BPromise[_0x5a00('0x6c')](jwt[_0x5a00('0x72')],{'context':jwt});var _0x23c4b9=_0x39b69e||config[_0x5a00('0x6f')][_0x5a00('0x70')];return new BPromise(function(_0x47bb6e,_0x4e5d8d){_0x31ba5e(_0x2409eb,_0x23c4b9,_0x371439)[_0x5a00('0x42')](function(_0xe009b7){_0x47bb6e(_0xe009b7);})[_0x5a00('0x34')](function(_0x4a2d3f){_0x4e5d8d(_0x4a2d3f);});});}function generateNonce(){return crypto['randomBytes'](0x10)['toString']('hex');}function generateIssuedAt(){return Math[_0x5a00('0x73')](Date[_0x5a00('0x74')]()/0x3e8)[_0x5a00('0x75')]();}function createJwt(_0x2ebfeb){var _0x5c048c={'payload':{'iat':_0x2ebfeb[_0x5a00('0x5d')],'nonce':_0x2ebfeb[_0x5a00('0x5c')]},'options':{'algorithm':'HS512','subject':_0x2ebfeb['id']['toString'](),'issuer':hardwareConf[_0x5a00('0x41')](),'audience':hardwareConf[_0x5a00('0x41')]()}};return signJwt(_0x5c048c)['then'](function(_0x2b13a3){return{'iat':_0x2ebfeb['apiKeyIat'],'nonce':_0x2ebfeb[_0x5a00('0x5c')],'token':_0x2b13a3};});}
\ No newline at end of file
+var _0x2352=['decryptString','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.','Sequelize','updatePasswordsHistory','length','unshift','sign','options','promisify','verify','randomBytes','toString','hex','floor','now','HS512','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','../encryptor','lodash','jsonwebtoken','composable-middleware','basic-auth','util','moment','secrets','session','role','fullname','name','internal','email','userpic','permissions','md5secret','voicePause','chatPause','mailPause','faxPause','smsPause','pauseType','lastLoginAt','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarRemoteControl','phoneBarRemoteControlPort','userProfileId','privacyEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','isChatInteractionAuthorized','isAuthenticated','use','user','findOne','closed','disposition','status','unmanaged','json','Forbidden.','catch','startsWith','headers','authorization','Basic','find','then','authenticate','pass','Wrong\x20credentials.','Bearer','Unknown\x20authorization\x20format','apikey','getUuid','User','Setting','allowedLoginAttempts','blockDuration','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blockedAt','add','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','getLicense','update','Forbidden','isMiddleware','signToken','setTokenCookie','redirect','send','isNil','apiKeyIat','generateApiKey','regenerateApiKey','query','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','test','ValidationError','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'];(function(_0x466cff,_0x293196){var _0x129488=function(_0x30832c){while(--_0x30832c){_0x466cff['push'](_0x466cff['shift']());}};_0x129488(++_0x293196);}(_0x2352,0x104));var _0x2235=function(_0xbf122f,_0x5ac4de){_0xbf122f=_0xbf122f-0x0;var _0x3f5059=_0x2352[_0xbf122f];return _0x3f5059;};'use strict';var db=require(_0x2235('0x0'))['db'];var config=require(_0x2235('0x1'));var hardwareConf=require(_0x2235('0x2'));var licenseUtil=require(_0x2235('0x3'));var encryptor=require(_0x2235('0x4'));var _=require(_0x2235('0x5'));var jwt=require(_0x2235('0x6'));var expressJwt=require('express-jwt');var compose=require(_0x2235('0x7'));var basicAuth=require(_0x2235('0x8'));var crypto=require('crypto');var BPromise=require('bluebird');var util=require(_0x2235('0x9'));var moment=require(_0x2235('0xa'));var validateJwt=expressJwt({'secret':config[_0x2235('0xb')][_0x2235('0xc')]});var userAttributes=['id',_0x2235('0xd'),_0x2235('0xe'),_0x2235('0xf'),_0x2235('0x10'),_0x2235('0x11'),_0x2235('0x12'),_0x2235('0x13'),_0x2235('0x14'),_0x2235('0x15'),_0x2235('0x16'),_0x2235('0x17'),_0x2235('0x18'),_0x2235('0x19'),'openchannelPause',_0x2235('0x1a'),'showWebBar',_0x2235('0x1b'),'lastPauseAt','crudPermissions','allowmessenger',_0x2235('0x1c'),_0x2235('0x1d'),_0x2235('0x1e'),'phoneBarAutoAnswerDelay',_0x2235('0x1f'),_0x2235('0x20'),_0x2235('0x21'),'phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired',_0x2235('0x22'),_0x2235('0x23'),'hotdesk','interface',_0x2235('0x24'),_0x2235('0x25'),'settingsEnabled',_0x2235('0x26'),_0x2235('0x27'),_0x2235('0x28'),_0x2235('0x29')];exports[_0x2235('0x2a')]=function(){return this[_0x2235('0x2b')](!![])[_0x2235('0x2c')](function(_0x51d074,_0x379c2a,_0x22836b){if(_0x51d074[_0x2235('0x2d')]){_0x22836b();}else{return db['ChatInteraction'][_0x2235('0x2e')]({'where':{'id':_0x51d074['params']['id']},'attributes':['id',_0x2235('0x2f'),_0x2235('0x30')],'raw':!![]})['then'](function(_0x51b829){if(_0x51b829&&_0x51b829[_0x2235('0x2f')]){return _0x379c2a[_0x2235('0x31')](_0x51b829[_0x2235('0x30')]===_0x2235('0x32')?0x195:0x193)[_0x2235('0x33')]({'message':_0x51b829[_0x2235('0x30')]===_0x2235('0x32')?'Unmanaged.':_0x2235('0x34')});}else{_0x22836b();}})[_0x2235('0x35')](function(_0x2f9c87){_0x22836b(_0x2f9c87);});}});};exports[_0x2235('0x2b')]=function isAuthenticated(_0x171980){return compose()[_0x2235('0x2c')](function(_0x354385,_0x125567,_0x3c195f){var _0x1e0379;if(_0x354385['headers']['authorization']){if(_[_0x2235('0x36')](_0x354385[_0x2235('0x37')][_0x2235('0x38')],_0x2235('0x39'))){var _0x3f0f6d=basicAuth(_0x354385);db['User'][_0x2235('0x3a')]({'where':{'name':_0x3f0f6d[_0x2235('0xf')]}})[_0x2235('0x3b')](function(_0x1a5be2){if(!_0x1a5be2||!_0x1a5be2[_0x2235('0x3c')](_0x3f0f6d[_0x2235('0x3d')])){return _0x125567[_0x2235('0x31')](0x191)[_0x2235('0x33')]({'message':_0x2235('0x3e')});}_0x354385[_0x2235('0x2d')]={'id':_0x1a5be2['id']};_0x3c195f();})[_0x2235('0x35')](function(_0xa642aa){_0x3c195f(_0xa642aa);});}else if(_['startsWith'](_0x354385['headers'][_0x2235('0x38')],_0x2235('0x3f'))){validateJwt(_0x354385,_0x125567,_0x3c195f);}else{if(_0x171980){_0x3c195f();}else{return _0x125567[_0x2235('0x31')](0x193)['json']({'message':_0x2235('0x40')});}}}else if(_0x354385['query'][_0x2235('0x41')]){try{var _0x1979b1={'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0x2235('0x42')]()};verifyJwt(_0x354385['query'][_0x2235('0x41')],_0x1979b1)[_0x2235('0x3b')](function(_0x4ff32d){return db[_0x2235('0x43')][_0x2235('0x3a')]({'where':{'id':_0x4ff32d['sub']}})['then'](function(_0x16d6ee){_0x1e0379=_0x16d6ee;return db[_0x2235('0x44')]['findOne']({'where':{'id':0x1},'attributes':[_0x2235('0x45'),_0x2235('0x46')],'raw':!![]});})[_0x2235('0x3b')](function(_0x5cb9e7){if(!_0x1e0379||!_['isEqual'](_0x1e0379[_0x2235('0x47')],_0x4ff32d[_0x2235('0x48')])){return _0x125567[_0x2235('0x31')](0x191)[_0x2235('0x33')]({'message':_0x2235('0x49')});}if(_0x1e0379[_0x2235('0x4a')]){return _0x125567[_0x2235('0x31')](0x191)[_0x2235('0x33')]({'message':_0x2235('0x4b')});}if(_0x1e0379['blocked']){if(_0x5cb9e7[_0x2235('0x46')]>0x0){if(moment(_0x1e0379[_0x2235('0x4c')])[_0x2235('0x4d')](_0x5cb9e7[_0x2235('0x46')],'minutes')>moment()){return _0x125567[_0x2235('0x31')](0x191)[_0x2235('0x33')]({'message':'Invalid\x20API\x20access\x20key'});}}else{return _0x125567[_0x2235('0x31')](0x191)[_0x2235('0x33')]({'message':_0x2235('0x4b')});}}_0x354385[_0x2235('0x2d')]={'id':_0x1e0379['id']};_0x3c195f();});})[_0x2235('0x35')](function(){return _0x125567[_0x2235('0x31')](0x191)[_0x2235('0x33')]({'message':_0x2235('0x4b')});});}catch(_0x5657e2){_0x3c195f(_0x5657e2);}}else if(_0x171980){_0x3c195f();}else{return _0x125567[_0x2235('0x31')](0x193)['json']({'message':_0x2235('0x40')});}})['use'](function(_0x17e3b5,_0x55038c,_0x45981b){if(_0x17e3b5[_0x2235('0x2d')]){db[_0x2235('0x43')][_0x2235('0x3a')]({'where':{'id':_0x17e3b5[_0x2235('0x2d')]['id']},'attributes':userAttributes})[_0x2235('0x3b')](function(_0x326031){if(!_0x326031){return _0x55038c[_0x2235('0x31')](0x194)[_0x2235('0x33')]({'message':_0x2235('0x4e')});}_0x17e3b5[_0x2235('0x2d')]=_0x326031;_0x45981b();})[_0x2235('0x35')](function(_0x16a195){_0x45981b(_0x16a195);});}else if(_0x171980){_0x45981b();}else{return _0x55038c[_0x2235('0x31')](0x194)['json']({'message':_0x2235('0x4f')});}});};exports[_0x2235('0x50')]=function canUpdate(){return compose()['use'](function(_0x20992f,_0x4b18a6,_0x1983e5){return licenseUtil[_0x2235('0x51')]()[_0x2235('0x3b')](function(_0x344d91){if(_0x344d91[_0x2235('0x52')]){_0x1983e5();}else{return _0x4b18a6[_0x2235('0x31')](0x193)[_0x2235('0x33')]({'message':_0x2235('0x53')});}})[_0x2235('0x35')](function(_0x40b6d5){_0x1983e5(_0x40b6d5);});});};exports[_0x2235('0x54')]=function(_0x494a8e,_0x145e5d,_0xc24e47){_0x494a8e['isMiddleware']=!![];return _0xc24e47();};exports[_0x2235('0x55')]=function signToken(_0x2a2a81){return signJwt(_0x2a2a81);};exports[_0x2235('0x56')]=function(_0x2989e2,_0x4e952e){if(!_0x2989e2[_0x2235('0x2d')]){return _0x4e952e[_0x2235('0x31')](0x194)[_0x2235('0x33')]({'message':'It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.'});}var _0x47326d={'payload':{'id':_0x2989e2['user']['id'],'role':_0x2989e2['user'][_0x2235('0xd')]},'options':{'expiresIn':0x15180}};return signJwt(_0x47326d)[_0x2235('0x3b')](function(_0x2098a7){_0x4e952e['cookie']('motion.token',_0x2098a7);_0x4e952e[_0x2235('0x57')]('/dashboards/general');})[_0x2235('0x35')](function(_0x3155ef){return _0x4e952e[_0x2235('0x31')](0x1f4)[_0x2235('0x58')](_0x3155ef);});};exports['retrieveApiKey']=function(_0xd07dca){if(_[_0x2235('0x59')](_0xd07dca[_0x2235('0x47')])||_[_0x2235('0x59')](_0xd07dca[_0x2235('0x5a')])){return null;}else{return createJwt(_0xd07dca);}};exports[_0x2235('0x5b')]=function(_0x1a1c18){_0x1a1c18[_0x2235('0x47')]=generateNonce();_0x1a1c18['apiKeyIat']=generateIssuedAt();return createJwt(_0x1a1c18);};exports[_0x2235('0x5c')]=function(_0x2ea15d,_0x4a7d6a){var _0x59aad6=_0x2ea15d[_0x2235('0x5d')][_0x2235('0x41')];if(_0x59aad6){var _0xade154={'nonce':_0x4a7d6a[_0x2235('0x47')],'iat':_0x4a7d6a[_0x2235('0x5a')],'audience':hardwareConf[_0x2235('0x42')](),'issuer':hardwareConf['getUuid']()};return verifyJwt(_0x59aad6,_0xade154)[_0x2235('0x3b')](function(){return generateApiKey(_0x4a7d6a);});}else{throw{'message':_0x2235('0x5e')};}};exports[_0x2235('0x5f')]=function(_0x6c77de){var _0x2bcf07=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x2bcf07[_0x2235('0x60')](_0x6c77de))throw new db['Sequelize'][(_0x2235('0x61'))](_0x2235('0x62'));return;};exports[_0x2235('0x63')]=function(_0x1ed55f,_0x175cb9,_0x43e648){var _0x48c396=encryptor[_0x2235('0x64')](_0x175cb9)[_0x2235('0x65')](',');for(var _0x4afc64=0x0;_0x4afc64<_0x43e648;_0x4afc64++){if(!_0x48c396[_0x4afc64])break;if(_0x1ed55f[_0x2235('0x66')]()===_0x48c396[_0x4afc64][_0x2235('0x66')]()){var _0x474dea=util[_0x2235('0x67')](_0x2235('0x68'),_0x43e648);if(_0x43e648===0x1){_0x474dea=_0x2235('0x69');}throw new db[(_0x2235('0x6a'))][(_0x2235('0x61'))](_0x474dea);}}return;};exports[_0x2235('0x6b')]=function(_0x3862d2,_0x279d9b){var _0x40ce64=_0x279d9b?encryptor['decryptString'](_0x279d9b)[_0x2235('0x65')](','):[];if(_0x40ce64[_0x2235('0x6c')]===0x5){_0x40ce64['splice'](-0x1,0x1);}_0x40ce64[_0x2235('0x6d')](_0x3862d2);return encryptor['encryptString'](_0x40ce64['join'](','));};function signJwt(_0x8db04f){var _0x45ad21=BPromise['promisify'](jwt[_0x2235('0x6e')],{'context':jwt});var _0x1b742d=_0x8db04f['secret']||config['secrets'][_0x2235('0xc')];return new BPromise(function(_0x69cf4d,_0xbae949){_0x45ad21(_0x8db04f['payload'],_0x1b742d,_0x8db04f[_0x2235('0x6f')])[_0x2235('0x3b')](function(_0x292c2e){_0x69cf4d(_0x292c2e);})[_0x2235('0x35')](function(_0x46c67b){_0xbae949(_0x46c67b);});});}function verifyJwt(_0x3d274d,_0x228044,_0x5b8c75){var _0x18bd7f=BPromise[_0x2235('0x70')](jwt[_0x2235('0x71')],{'context':jwt});var _0x568a80=_0x5b8c75||config['secrets'][_0x2235('0xc')];return new BPromise(function(_0x44be19,_0x22bbcb){_0x18bd7f(_0x3d274d,_0x568a80,_0x228044)[_0x2235('0x3b')](function(_0x5c7691){_0x44be19(_0x5c7691);})['catch'](function(_0x2306c5){_0x22bbcb(_0x2306c5);});});}function generateNonce(){return crypto[_0x2235('0x72')](0x10)[_0x2235('0x73')](_0x2235('0x74'));}function generateIssuedAt(){return Math[_0x2235('0x75')](Date[_0x2235('0x76')]()/0x3e8)[_0x2235('0x73')]();}function createJwt(_0x396462){var _0x119dbd={'payload':{'iat':_0x396462[_0x2235('0x5a')],'nonce':_0x396462[_0x2235('0x47')]},'options':{'algorithm':_0x2235('0x77'),'subject':_0x396462['id'][_0x2235('0x73')](),'issuer':hardwareConf['getUuid'](),'audience':hardwareConf[_0x2235('0x42')]()}};return signJwt(_0x119dbd)[_0x2235('0x3b')](function(_0x43380f){return{'iat':_0x396462[_0x2235('0x5a')],'nonce':_0x396462[_0x2235('0x47')],'token':_0x43380f};});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9941=['crypto','bluebird','../../config/environment','../../config/logger','app','secrets','session','aes192','encrypt','algorithm','join','error','test','getCiphers','filter','indexOf','hasOwnProperty','encryptFile','createWriteStream','createCipher','binary','end','final','write','close','unlink','createDecipher','data','update','encryptString','secret','utf8','base64'];(function(_0x12de61,_0x4b56a4){var _0xb3684f=function(_0x27fa50){while(--_0x27fa50){_0x12de61['push'](_0x12de61['shift']());}};_0xb3684f(++_0x4b56a4);}(_0x9941,0x1ef));var _0x1994=function(_0x378752,_0x158b32){_0x378752=_0x378752-0x0;var _0xd5a262=_0x9941[_0x378752];return _0xd5a262;};'use strict';var crypto=require(_0x1994('0x0'));var fs=require('fs');var BPromise=require(_0x1994('0x1'));var _=require('lodash');var config=require(_0x1994('0x2'));var logger=require(_0x1994('0x3'))(_0x1994('0x4'));const AES_SUPPORTED_RX=/^aes(-)?\d{3}(-(cbc|cfb|ctr)(1|8)?){0,1}$/;const stringOptions={'secret':config[_0x1994('0x5')][_0x1994('0x6')],'algorithm':'aes-256-ctr'};const fileOptions={'algorithm':_0x1994('0x7')};if(config['encrypt']&&config[_0x1994('0x8')][_0x1994('0x9')]){var isSupported=isAlgorithmSupported(config[_0x1994('0x8')][_0x1994('0x9')]);if(isSupported){fileOptions['algorithm']=config[_0x1994('0x8')][_0x1994('0x9')];}else{var supportedAlgorithms=getSupportedCiphers()[_0x1994('0xa')](',\x20');logger[_0x1994('0xb')](config[_0x1994('0x8')]['algorithm'],'is\x20not\x20a\x20supported\x20algorithm.\x20Your\x20system\x20supports\x20the\x20following\x20algorithms:',supportedAlgorithms);}}function isASupportedCipher(_0x1c267b){return AES_SUPPORTED_RX[_0x1994('0xc')](_0x1c267b);}function getSupportedCiphers(){return crypto[_0x1994('0xd')]()[_0x1994('0xe')](isASupportedCipher);}function isAlgorithmSupported(_0xc484a){return getSupportedCiphers()[_0x1994('0xf')](_0xc484a)>-0x1;}function combineOptions(_0x48904e){var _0x15ade2={};for(var _0x208055 in fileOptions){if(fileOptions[_0x1994('0x10')](_0x208055)){_0x15ade2[_0x208055]=fileOptions[_0x208055];}}if(_0x48904e){for(var _0x4c16ad in _0x48904e){if(_0x48904e[_0x1994('0x10')](_0x4c16ad)){_0x15ade2[_0x4c16ad]=_0x48904e[_0x4c16ad];}}}return _0x15ade2;}exports[_0x1994('0x11')]=function(_0x2e7faf,_0x53077f,_0x14571a,_0x40cb13){return new BPromise(function(_0x5ab75f,_0x236970){_0x40cb13=combineOptions(_0x40cb13);var _0x5eacf1=new Buffer(_0x14571a);var _0x2337c6=fs['createReadStream'](_0x2e7faf);var _0x21af33=fs[_0x1994('0x12')](_0x53077f);var _0x59a8fe=crypto[_0x1994('0x13')](_0x40cb13['algorithm'],_0x5eacf1);_0x2337c6['on']('data',function(_0xaf9a70){var _0x155d06=new Buffer(_0x59a8fe['update'](_0xaf9a70),_0x1994('0x14'));_0x21af33['write'](_0x155d06);});_0x2337c6['on'](_0x1994('0x15'),function(){try{var _0xef83d6=new Buffer(_0x59a8fe[_0x1994('0x16')](_0x1994('0x14')),_0x1994('0x14'));_0x21af33[_0x1994('0x17')](_0xef83d6);_0x21af33['end']();_0x21af33['on'](_0x1994('0x18'),function(){return _0x5ab75f(_0x53077f);});}catch(_0x517466){fs[_0x1994('0x19')](_0x53077f);return _0x236970(_0x517466);}});});};exports['decryptFile']=function(_0x34c0fa,_0x514ab2,_0x527b4,_0x1920fc){return new BPromise(function(_0x113ae7,_0x48500f){_0x1920fc=combineOptions(_0x1920fc);var _0x9880cb=new Buffer(_0x527b4);var _0x49effb=fs['createReadStream'](_0x34c0fa);var _0x2bc0da=fs[_0x1994('0x12')](_0x514ab2);var _0x567d02=crypto[_0x1994('0x1a')](_0x1920fc[_0x1994('0x9')],_0x9880cb);_0x49effb['on'](_0x1994('0x1b'),function(_0x235664){var _0x2f84f6=new Buffer(_0x567d02[_0x1994('0x1c')](_0x235664),_0x1994('0x14'));_0x2bc0da[_0x1994('0x17')](_0x2f84f6);});_0x49effb['on']('end',function(){try{var _0x494dd0=new Buffer(_0x567d02[_0x1994('0x16')](_0x1994('0x14')),'binary');_0x2bc0da['write'](_0x494dd0);_0x2bc0da['end']();_0x2bc0da['on']('close',function(){return _0x113ae7(_0x514ab2);});}catch(_0x21e988){fs[_0x1994('0x19')](_0x514ab2);return _0x48500f(_0x21e988);}});});};exports[_0x1994('0x1d')]=function(_0x291cbc,_0x18f160,_0x1fb264){var _0x115115=_0x1fb264||stringOptions[_0x1994('0x9')];var _0x42cc6a=_0x18f160||stringOptions[_0x1994('0x1e')];var _0x24863f=crypto['createCipher'](_0x115115,_0x42cc6a);var _0x55c6c1=_0x24863f[_0x1994('0x1c')](_0x291cbc,_0x1994('0x1f'),_0x1994('0x20'));_0x55c6c1+=_0x24863f['final'](_0x1994('0x20'));return _0x55c6c1;};exports['decryptString']=function(_0xc61eff,_0x3be840,_0x337084){var _0x4ecdb7=_0x337084||stringOptions['algorithm'];var _0x1ee547=_0x3be840||stringOptions[_0x1994('0x1e')];var _0x44d22b=crypto[_0x1994('0x1a')](_0x4ecdb7,_0x1ee547);var _0xbb516=_0x44d22b[_0x1994('0x1c')](_0xc61eff,_0x1994('0x20'),_0x1994('0x1f'));_0xbb516+=_0x44d22b[_0x1994('0x16')]('utf8');return _0xbb516;};
\ No newline at end of file
+var _0x05b2=['secret','base64','utf8','crypto','bluebird','lodash','../../config/environment','../../config/logger','app','secrets','session','aes-256-ctr','aes192','encrypt','algorithm','join','error','is\x20not\x20a\x20supported\x20algorithm.\x20Your\x20system\x20supports\x20the\x20following\x20algorithms:','test','filter','hasOwnProperty','encryptFile','createWriteStream','createCipher','update','binary','write','final','end','close','unlink','decryptFile','createReadStream','createDecipher','data','encryptString'];(function(_0x3bff80,_0x14a7c1){var _0x344d6f=function(_0x14116e){while(--_0x14116e){_0x3bff80['push'](_0x3bff80['shift']());}};_0x344d6f(++_0x14a7c1);}(_0x05b2,0x1b3));var _0x205b=function(_0x139749,_0x211b0f){_0x139749=_0x139749-0x0;var _0x24fb98=_0x05b2[_0x139749];return _0x24fb98;};'use strict';var crypto=require(_0x205b('0x0'));var fs=require('fs');var BPromise=require(_0x205b('0x1'));var _=require(_0x205b('0x2'));var config=require(_0x205b('0x3'));var logger=require(_0x205b('0x4'))(_0x205b('0x5'));const AES_SUPPORTED_RX=/^aes(-)?\d{3}(-(cbc|cfb|ctr)(1|8)?){0,1}$/;const stringOptions={'secret':config[_0x205b('0x6')][_0x205b('0x7')],'algorithm':_0x205b('0x8')};const fileOptions={'algorithm':_0x205b('0x9')};if(config[_0x205b('0xa')]&&config[_0x205b('0xa')][_0x205b('0xb')]){var isSupported=isAlgorithmSupported(config[_0x205b('0xa')][_0x205b('0xb')]);if(isSupported){fileOptions[_0x205b('0xb')]=config[_0x205b('0xa')]['algorithm'];}else{var supportedAlgorithms=getSupportedCiphers()[_0x205b('0xc')](',\x20');logger[_0x205b('0xd')](config[_0x205b('0xa')][_0x205b('0xb')],_0x205b('0xe'),supportedAlgorithms);}}function isASupportedCipher(_0x3c46b7){return AES_SUPPORTED_RX[_0x205b('0xf')](_0x3c46b7);}function getSupportedCiphers(){return crypto['getCiphers']()[_0x205b('0x10')](isASupportedCipher);}function isAlgorithmSupported(_0x2ff466){return getSupportedCiphers()['indexOf'](_0x2ff466)>-0x1;}function combineOptions(_0x21b52f){var _0x16141a={};for(var _0x553a24 in fileOptions){if(fileOptions[_0x205b('0x11')](_0x553a24)){_0x16141a[_0x553a24]=fileOptions[_0x553a24];}}if(_0x21b52f){for(var _0x5bfa3d in _0x21b52f){if(_0x21b52f[_0x205b('0x11')](_0x5bfa3d)){_0x16141a[_0x5bfa3d]=_0x21b52f[_0x5bfa3d];}}}return _0x16141a;}exports[_0x205b('0x12')]=function(_0x1b9b5d,_0x540430,_0x55c53b,_0x48ca06){return new BPromise(function(_0x135b41,_0x1d014c){_0x48ca06=combineOptions(_0x48ca06);var _0x458845=new Buffer(_0x55c53b);var _0x5a2e35=fs['createReadStream'](_0x1b9b5d);var _0x4d0b19=fs[_0x205b('0x13')](_0x540430);var _0x1ad3e6=crypto[_0x205b('0x14')](_0x48ca06[_0x205b('0xb')],_0x458845);_0x5a2e35['on']('data',function(_0xe3d384){var _0x19b91c=new Buffer(_0x1ad3e6[_0x205b('0x15')](_0xe3d384),_0x205b('0x16'));_0x4d0b19[_0x205b('0x17')](_0x19b91c);});_0x5a2e35['on']('end',function(){try{var _0x33f263=new Buffer(_0x1ad3e6[_0x205b('0x18')](_0x205b('0x16')),_0x205b('0x16'));_0x4d0b19[_0x205b('0x17')](_0x33f263);_0x4d0b19[_0x205b('0x19')]();_0x4d0b19['on'](_0x205b('0x1a'),function(){return _0x135b41(_0x540430);});}catch(_0x594d67){fs[_0x205b('0x1b')](_0x540430);return _0x1d014c(_0x594d67);}});});};exports[_0x205b('0x1c')]=function(_0x33cd76,_0x372d9b,_0x3c60e2,_0x4e8dc1){return new BPromise(function(_0x3f7dad,_0x306006){_0x4e8dc1=combineOptions(_0x4e8dc1);var _0x349e86=new Buffer(_0x3c60e2);var _0x4c30bb=fs[_0x205b('0x1d')](_0x33cd76);var _0x27ef21=fs['createWriteStream'](_0x372d9b);var _0x16e6e6=crypto[_0x205b('0x1e')](_0x4e8dc1[_0x205b('0xb')],_0x349e86);_0x4c30bb['on'](_0x205b('0x1f'),function(_0x40c070){var _0x593e7e=new Buffer(_0x16e6e6[_0x205b('0x15')](_0x40c070),_0x205b('0x16'));_0x27ef21[_0x205b('0x17')](_0x593e7e);});_0x4c30bb['on'](_0x205b('0x19'),function(){try{var _0x15cccf=new Buffer(_0x16e6e6['final'](_0x205b('0x16')),_0x205b('0x16'));_0x27ef21[_0x205b('0x17')](_0x15cccf);_0x27ef21[_0x205b('0x19')]();_0x27ef21['on']('close',function(){return _0x3f7dad(_0x372d9b);});}catch(_0x5dd493){fs['unlink'](_0x372d9b);return _0x306006(_0x5dd493);}});});};exports[_0x205b('0x20')]=function(_0x35462e,_0x2fb855,_0x21ab98){var _0x9bd6f8=_0x21ab98||stringOptions['algorithm'];var _0x3f8a54=_0x2fb855||stringOptions[_0x205b('0x21')];var _0x4685c1=crypto[_0x205b('0x14')](_0x9bd6f8,_0x3f8a54);var _0x59c0ec=_0x4685c1['update'](_0x35462e,'utf8','base64');_0x59c0ec+=_0x4685c1[_0x205b('0x18')](_0x205b('0x22'));return _0x59c0ec;};exports['decryptString']=function(_0x243f1f,_0x5c2429,_0x37c9e5){var _0x2ff637=_0x37c9e5||stringOptions[_0x205b('0xb')];var _0x18440c=_0x5c2429||stringOptions[_0x205b('0x21')];var _0x448d0c=crypto['createDecipher'](_0x2ff637,_0x18440c);var _0x43954b=_0x448d0c[_0x205b('0x15')](_0x243f1f,_0x205b('0x22'),_0x205b('0x23'));_0x43954b+=_0x448d0c[_0x205b('0x18')](_0x205b('0x23'));return _0x43954b;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccb1=['query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','length','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.csv','existsSync','join','mkdirSync','each','csv','%s.%s','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','zip','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','exit','util','path','lodash','to-csv','bluebird','zip-dir','rimraf','../../mysqldb','dbH','analytics','argv','savename','AnalyticExtractedReport','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','split','then','splitSizeCsv','sequelize'];(function(_0x187c18,_0x436a27){var _0x505df0=function(_0x39db85){while(--_0x39db85){_0x187c18['push'](_0x187c18['shift']());}};_0x505df0(++_0x436a27);}(_0xccb1,0x1a4));var _0x1ccb=function(_0x513aa5,_0x1fba79){_0x513aa5=_0x513aa5-0x0;var _0x1a1a7c=_0xccb1[_0x513aa5];return _0x1a1a7c;};'use strict';var util=require(_0x1ccb('0x0'));var path=require(_0x1ccb('0x1'));var _=require(_0x1ccb('0x2'));var csv=require(_0x1ccb('0x3'));var fs=require('fs');var BPromise=require(_0x1ccb('0x4'));var zipdir=require(_0x1ccb('0x5'));var rimraf=require(_0x1ccb('0x6'));var db=require('../../mysqldb')['db'];var dbH=require(_0x1ccb('0x7'))[_0x1ccb('0x8')];var logger=require('../../config/logger')(_0x1ccb('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0x1ccb('0xa')][0x2]);var QUERY=process[_0x1ccb('0xa')][0x3];var PATH=process[_0x1ccb('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x4660f9,_0x56341b){var _0x289067={'status':_0x4660f9};var _0x43e94e={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x56341b){_0x289067[_0x1ccb('0xb')]=_0x56341b;}return db[_0x1ccb('0xc')]['update'](_0x289067,_0x43e94e);}function main(){var _0x4086a8=0x1388;var _0x172dd6;logger['info'](util[_0x1ccb('0xd')](_0x1ccb('0xe'),EXTRACTED_REPORT_ID,_0x1ccb('0xf')));return db[_0x1ccb('0x10')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x1ccb('0x11'),'splitSizeCsv']})[_0x1ccb('0x12')](function(_0x5e6db7){if(_0x5e6db7){_0x172dd6=_0x5e6db7;_0x4086a8=_0x172dd6[_0x1ccb('0x13')]||0x1388;}})[_0x1ccb('0x12')](function(){return dbH[_0x1ccb('0x14')][_0x1ccb('0x15')](util[_0x1ccb('0xd')](_0x1ccb('0x16'),QUERY),{'type':dbH[_0x1ccb('0x14')][_0x1ccb('0x17')][_0x1ccb('0x18')]});})['then'](function(_0x307dba){if(!_0x307dba[0x0][_0x1ccb('0x19')]){return analyticExtractedReport(_0x1ccb('0x1a'));}var _0x1f6334=[];var _0x30d1f2=0x0;if(_0x172dd6['split']){if(_0x307dba&&_0x307dba[_0x1ccb('0x1b')]){var _0xf5423b=_['range'](_0x307dba[0x0][_0x1ccb('0x19')]/_0x4086a8);var _0x31d594=Number[_0x1ccb('0x1c')](_0x307dba[0x0][_0x1ccb('0x19')]/_0x4086a8)?_0x307dba[0x0][_0x1ccb('0x19')]%_0x4086a8:0x0;_0xf5423b[_0x1ccb('0x1d')](function(_0x40632f){if(_0x40632f>0x0){_0x30d1f2+=_0x4086a8;}_0x1f6334[_0x1ccb('0x1e')](dbH[_0x1ccb('0x14')][_0x1ccb('0x15')](util[_0x1ccb('0xd')](_0x1ccb('0x1f'),QUERY,_0x4086a8,_0x30d1f2),{'type':dbH[_0x1ccb('0x14')][_0x1ccb('0x17')][_0x1ccb('0x18')]}));});if(_0x31d594>0x0){_0x30d1f2+=_0x4086a8;_0x1f6334[_0x1ccb('0x1e')](dbH[_0x1ccb('0x14')][_0x1ccb('0x15')](util[_0x1ccb('0xd')](_0x1ccb('0x1f'),QUERY,_0x31d594,_0x30d1f2),{'type':dbH[_0x1ccb('0x14')][_0x1ccb('0x17')][_0x1ccb('0x18')]}));}}}else{_0x1f6334[_0x1ccb('0x1e')](dbH[_0x1ccb('0x14')]['query'](QUERY,{'type':dbH[_0x1ccb('0x14')][_0x1ccb('0x17')][_0x1ccb('0x18')]}));}var _0x1577ae=path[_0x1ccb('0x20')](PATH);var _0x457737=path[_0x1ccb('0x21')](PATH,_0x1ccb('0x22'));var _0x1e01a2=_0x172dd6[_0x1ccb('0x11')]&&_0x1f6334[_0x1ccb('0x1b')]>0x1;var _0x12fc06=[];if(!fs[_0x1ccb('0x23')](path[_0x1ccb('0x24')](_0x1577ae,_0x457737))&&_0x1e01a2){fs[_0x1ccb('0x25')](path[_0x1ccb('0x24')](_0x1577ae,_0x457737));}return BPromise[_0x1ccb('0x26')](_0x1f6334,function(_0x13e64b){_0x12fc06[_0x1ccb('0x1e')](_0x13e64b);})['then'](function(){for(var _0x5b80ed=0x0;_0x5b80ed<_0x12fc06[_0x1ccb('0x1b')];_0x5b80ed+=0x1){var _0x22ab3e;var _0x31d8f6=_0x12fc06[_0x5b80ed];if(_0x1e01a2){_0x22ab3e=path[_0x1ccb('0x24')](_0x1577ae,_0x457737,util[_0x1ccb('0xd')]('%s%d.%s',_0x457737,_0x5b80ed,_0x1ccb('0x27')));}else{_0x22ab3e=path['join'](_0x1577ae,util[_0x1ccb('0xd')](_0x1ccb('0x28'),_0x457737,'csv'));}fs['writeFileSync'](_0x22ab3e,csv(_0x31d8f6));}})['then'](function(){if(_0x1e01a2){return new Promise(function(_0x44eda5){zipdir(path[_0x1ccb('0x24')](_0x1577ae,_0x457737),{'saveTo':path['join'](_0x1577ae,util[_0x1ccb('0xd')](_0x1ccb('0x28'),_0x457737,'zip'))},function(_0x32af2f,_0x118f20){rimraf(path[_0x1ccb('0x24')](_0x1577ae,_0x457737),function(){});_0x44eda5(_0x1ccb('0x29'));});});}})[_0x1ccb('0x12')](function(){logger[_0x1ccb('0x2a')](util[_0x1ccb('0xd')](_0x1ccb('0x2b'),EXTRACTED_REPORT_ID,_0x1ccb('0xf')));return analyticExtractedReport('Completed',_0x1e01a2?util['format'](_0x1ccb('0x28'),_0x457737,_0x1e01a2?_0x1ccb('0x2c'):_0x1ccb('0x27')):null);});})['catch'](function(_0x55b717){logger['info'](util['format'](_0x1ccb('0x2d'),EXTRACTED_REPORT_ID,_0x1ccb('0xf')),util[_0x1ccb('0x2e')](_0x55b717,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x1ccb('0x2f'));})['finally'](function(){process[_0x1ccb('0x30')](EXIT_CODE);});}main();
\ No newline at end of file
+var _0x0c5d=['dirname','.csv','length','existsSync','join','each','%s%d.%s','csv','%s.%s','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','path','to-csv','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','AnalyticExtractedReport','update','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','push','format','%s\x20limit\x20%d\x20OFFSET\x20%d'];(function(_0x31e1ac,_0x500c7c){var _0x5f3ad6=function(_0x4478ee){while(--_0x4478ee){_0x31e1ac['push'](_0x31e1ac['shift']());}};_0x5f3ad6(++_0x500c7c);}(_0x0c5d,0x6c));var _0xd0c5=function(_0xa57c71,_0x4146dc){_0xa57c71=_0xa57c71-0x0;var _0x1c5ed2=_0x0c5d[_0xa57c71];return _0x1c5ed2;};'use strict';var util=require(_0xd0c5('0x0'));var path=require(_0xd0c5('0x1'));var _=require('lodash');var csv=require(_0xd0c5('0x2'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0xd0c5('0x3'));var rimraf=require(_0xd0c5('0x4'));var db=require(_0xd0c5('0x5'))['db'];var dbH=require(_0xd0c5('0x5'))[_0xd0c5('0x6')];var logger=require(_0xd0c5('0x7'))(_0xd0c5('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0xd0c5('0x9')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0xd0c5('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x518801,_0x47f0f4){var _0x365e04={'status':_0x518801};var _0x4be307={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x47f0f4){_0x365e04['savename']=_0x47f0f4;}return db[_0xd0c5('0xa')][_0xd0c5('0xb')](_0x365e04,_0x4be307);}function main(){var _0x50ed33=0x1388;var _0x33a77b;logger[_0xd0c5('0xc')](util['format'](_0xd0c5('0xd'),EXTRACTED_REPORT_ID,_0xd0c5('0xe')));return db[_0xd0c5('0xf')][_0xd0c5('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xd0c5('0x11'),_0xd0c5('0x12')]})[_0xd0c5('0x13')](function(_0x46db00){if(_0x46db00){_0x33a77b=_0x46db00;_0x50ed33=_0x33a77b[_0xd0c5('0x12')]||0x1388;}})[_0xd0c5('0x13')](function(){return dbH[_0xd0c5('0x14')][_0xd0c5('0x15')](util['format'](_0xd0c5('0x16'),QUERY),{'type':dbH[_0xd0c5('0x14')][_0xd0c5('0x17')][_0xd0c5('0x18')]});})['then'](function(_0x280e22){if(!_0x280e22[0x0][_0xd0c5('0x19')]){return analyticExtractedReport(_0xd0c5('0x1a'));}var _0x639e72=[];var _0x556487=0x0;var _0x2be13d=!![];if(_0x280e22&&_0x280e22['length']){var _0x1b58cd=_0x280e22[0x0]['num']%(_0x556487+_0x50ed33);if(_0x33a77b[_0xd0c5('0x11')]){for(;_0x2be13d;_0x556487+=_0x50ed33,_0x1b58cd=_0x280e22[0x0][_0xd0c5('0x19')]%(_0x556487+_0x50ed33)){if(_0x1b58cd==0x0||_0x1b58cd==_0x280e22[0x0][_0xd0c5('0x19')]){_0x2be13d=![];}_0x639e72[_0xd0c5('0x1b')](dbH[_0xd0c5('0x14')][_0xd0c5('0x15')](util[_0xd0c5('0x1c')](_0xd0c5('0x1d'),QUERY,_0x50ed33,_0x556487),{'type':dbH['sequelize'][_0xd0c5('0x17')][_0xd0c5('0x18')]}));}}else{_0x639e72['push'](dbH[_0xd0c5('0x14')][_0xd0c5('0x15')](QUERY,{'type':dbH[_0xd0c5('0x14')][_0xd0c5('0x17')][_0xd0c5('0x18')]}));}}var _0x3f0b74=path[_0xd0c5('0x1e')](PATH);var _0x49db81=path['basename'](PATH,_0xd0c5('0x1f'));var _0x2b756a=_0x33a77b[_0xd0c5('0x11')]&&_0x639e72[_0xd0c5('0x20')]>0x1;var _0x5eb093=[];if(!fs[_0xd0c5('0x21')](path['join'](_0x3f0b74,_0x49db81))&&_0x2b756a){fs['mkdirSync'](path[_0xd0c5('0x22')](_0x3f0b74,_0x49db81));}return BPromise[_0xd0c5('0x23')](_0x639e72,function(_0x364963){_0x5eb093[_0xd0c5('0x1b')](_0x364963);})[_0xd0c5('0x13')](function(){for(var _0x96a5b8=0x0;_0x96a5b8<_0x5eb093[_0xd0c5('0x20')];_0x96a5b8+=0x1){var _0x17443b;var _0x19b9ec=_0x5eb093[_0x96a5b8];if(_0x2b756a){_0x17443b=path[_0xd0c5('0x22')](_0x3f0b74,_0x49db81,util[_0xd0c5('0x1c')](_0xd0c5('0x24'),_0x49db81,_0x96a5b8,_0xd0c5('0x25')));}else{_0x17443b=path[_0xd0c5('0x22')](_0x3f0b74,util[_0xd0c5('0x1c')](_0xd0c5('0x26'),_0x49db81,_0xd0c5('0x25')));}fs['writeFileSync'](_0x17443b,csv(_0x19b9ec));}})[_0xd0c5('0x13')](function(){if(_0x2b756a){zipdir(path[_0xd0c5('0x22')](_0x3f0b74,_0x49db81),{'saveTo':path[_0xd0c5('0x22')](_0x3f0b74,util[_0xd0c5('0x1c')](_0xd0c5('0x26'),_0x49db81,_0xd0c5('0x27')))},function(_0x135e2,_0x571410){});rimraf(path[_0xd0c5('0x22')](_0x3f0b74,_0x49db81),function(){});}})['then'](function(){logger[_0xd0c5('0xc')](util[_0xd0c5('0x1c')](_0xd0c5('0x28'),EXTRACTED_REPORT_ID,_0xd0c5('0xe')));return analyticExtractedReport(_0xd0c5('0x29'),_0x2b756a?util[_0xd0c5('0x1c')](_0xd0c5('0x26'),_0x49db81,_0x2b756a?'zip':'csv'):null);});})[_0xd0c5('0x2a')](function(_0x5c0dbf){logger[_0xd0c5('0xc')](util[_0xd0c5('0x1c')](_0xd0c5('0x2b'),EXTRACTED_REPORT_ID,_0xd0c5('0xe')),util['inspect'](_0x5c0dbf,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xd0c5('0x2c'));})[_0xd0c5('0x2d')](function(){process['exit'](EXIT_CODE);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x75e9=['JSDOM','window','bluebird','../../mysqldb','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','update','map','tableHeader','pick','toString','value','auto','body','push','chunk','keys','format','name','endDate','length','header','pageBreak','before','margin','landscape','\x20/\x20','footer','Arial','right','num','Empty','Setting','find','split','splitSizePdf','then','range','forEach','sequelize','query','SELECT','QueryTypes','dirname','.pdf','existsSync','mkdirSync','each','flatten','createPdfKitDocument','join','%s%d.%s','pdf','%s.%s','zip','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','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','end','createPdfFromHTML','lodash','path','moment','pdfmake/src/printer','rimraf','jsdom'];(function(_0x65b9e2,_0x51b75c){var _0x1e4353=function(_0x42ff9a){while(--_0x42ff9a){_0x65b9e2['push'](_0x65b9e2['shift']());}};_0x1e4353(++_0x51b75c);}(_0x75e9,0x10b));var _0x975e=function(_0x38eef7,_0x19a284){_0x38eef7=_0x38eef7-0x0;var _0x805c9a=_0x75e9[_0x38eef7];return _0x805c9a;};'use strict';var _=require(_0x975e('0x0'));var fs=require('fs');var util=require('util');var path=require(_0x975e('0x1'));var moment=require(_0x975e('0x2'));var htmlToPdfmake=require('html-to-pdfmake');var PdfPrinter=require(_0x975e('0x3'));var zipdir=require('zip-dir');var rimraf=require(_0x975e('0x4'));var JSDOM=require(_0x975e('0x5'))[_0x975e('0x6')];var window=new JSDOM('')[_0x975e('0x7')];var BPromise=require(_0x975e('0x8'));var db=require(_0x975e('0x9'))['db'];var dbH=require(_0x975e('0x9'))[_0x975e('0xa')];var logger=require(_0x975e('0xb'))(_0x975e('0xc'));var EXTRACTED_REPORT_ID=Number(process[_0x975e('0xd')][0x2]);var QUERY=process[_0x975e('0xd')][0x3];var PATH=process[_0x975e('0xd')][0x4];var NAME=process[_0x975e('0xd')][0x5];var FORMAT=_0x975e('0xe');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x11a24c,_0x2d547d){var _0xaff2f2={'status':_0x11a24c};var _0x44cf62={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x2d547d){_0xaff2f2[_0x975e('0xf')]=_0x2d547d;}return db[_0x975e('0x10')][_0x975e('0x11')](_0xaff2f2,_0x44cf62);}function getHeaders(_0x3f7ca6){return _[_0x975e('0x12')](_0x3f7ca6,function(_0x358f83){return{'text':_0x358f83,'style':_0x975e('0x13')};});}function getRows(_0x3705b2,_0x4c0bc6){return _[_0x975e('0x12')](_0x4c0bc6,function(_0x39f6d9){return _(_0x39f6d9)[_0x975e('0x14')](_0x3705b2)['map'](function(_0x2f9cdc){return _0x2f9cdc?_[_0x975e('0x15')](_0x2f9cdc):'';})[_0x975e('0x16')]();});}function createTable(_0x464e0d,_0x5dc018){var _0x2db57a={'widths':_['fill'](Array(_0x464e0d['length']),0x91),'heights':function(_0x2630ef){return _0x2630ef===0x0?_0x975e('0x17'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x399b13=getHeaders(_0x464e0d);_0x2db57a[_0x975e('0x18')][_0x975e('0x19')](_0x399b13);var _0x51d1d8=getRows(_0x464e0d,_0x5dc018);_0x2db57a[_0x975e('0x18')]=_0x2db57a[_0x975e('0x18')]['concat'](_0x51d1d8);return _0x2db57a;}function createTables(_0x53b295){var _0x67126c=[];var _0x16b8c9=_[_0x975e('0x1a')](Object[_0x975e('0x1b')](_0x53b295[0x0]),0x5);_0x16b8c9['forEach'](function(_0x103dab){_0x67126c[_0x975e('0x19')](createTable(_0x103dab,_0x53b295));});return _0x67126c;}function getPDFDocDefinition(_0x44e955){var _0x3be2ce=util[_0x975e('0x1c')]('Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s',NAME,EXTRACTED_REPORT[_0x975e('0x1d')],moment(EXTRACTED_REPORT['startDate'])[_0x975e('0x1c')](FORMAT),moment(EXTRACTED_REPORT[_0x975e('0x1e')])[_0x975e('0x1c')](FORMAT));var _0x35886f=[];for(var _0x400571=0x0;_0x400571<_0x44e955[_0x975e('0x1f')];_0x400571++){var _0x50d402=[];if(_0x400571===0x0){_0x50d402[_0x975e('0x19')]({'text':_0x3be2ce,'style':_0x975e('0x20')});}var _0x54b711={'table':_0x44e955[_0x400571]};if(_0x400571>0x0){_0x54b711[_0x975e('0x21')]=_0x975e('0x22');_0x54b711[_0x975e('0x23')]=[0x0,0x46,0x0,0x0];}_0x50d402[_0x975e('0x19')](_0x54b711);_0x35886f['push'](_0x50d402);}return{'pageSize':'A4','pageOrientation':_0x975e('0x24'),'content':_0x35886f,'footer':function(_0xf3aafc,_0x2ddc36){return{'text':_0xf3aafc[_0x975e('0x15')]()+_0x975e('0x25')+_0x2ddc36,'style':_0x975e('0x26')};},'defaultStyle':{'font':_0x975e('0x27')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':_0x975e('0x28'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x4026cd){var _0x4d716e=0x1388;var _0x36bcc7;if(!_0x4026cd[0x0][_0x975e('0x29')]){return analyticExtractedReport(_0x975e('0x2a'));}return db[_0x975e('0x2b')][_0x975e('0x2c')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x975e('0x2d'),_0x975e('0x2e')]})[_0x975e('0x2f')](function(_0x167d75){if(_0x167d75){_0x36bcc7=_0x167d75;_0x4d716e=_0x36bcc7[_0x975e('0x2e')]||0x3e8;}})[_0x975e('0x2f')](function(){var _0x520520=[];var _0x336053=0x0;if(_0x36bcc7['split']){if(_0x4026cd&&_0x4026cd['length']){var _0x25a489=_[_0x975e('0x30')](_0x4026cd[0x0]['num']/_0x4d716e);var _0x5efba0=Number['isInteger'](_0x4026cd[0x0][_0x975e('0x29')]/_0x4d716e)?_0x4026cd[0x0][_0x975e('0x29')]%_0x4d716e:0x0;_0x25a489[_0x975e('0x31')](function(_0x504187){if(_0x504187>0x0){_0x336053+=_0x4d716e;}_0x520520[_0x975e('0x19')](dbH[_0x975e('0x32')]['query'](util[_0x975e('0x1c')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x4d716e,_0x336053),{'type':dbH[_0x975e('0x32')]['QueryTypes']['SELECT']}));});if(_0x5efba0>0x0){_0x336053+=_0x4d716e;_0x520520[_0x975e('0x19')](dbH[_0x975e('0x32')][_0x975e('0x33')](util[_0x975e('0x1c')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x5efba0,_0x336053),{'type':dbH[_0x975e('0x32')]['QueryTypes'][_0x975e('0x34')]}));}}}else{_0x520520[_0x975e('0x19')](dbH[_0x975e('0x32')][_0x975e('0x33')](QUERY,{'type':dbH[_0x975e('0x32')][_0x975e('0x35')][_0x975e('0x34')]}));}var _0x3f1f5b=path[_0x975e('0x36')](PATH);var _0x4bc4e0=path['basename'](PATH,_0x975e('0x37'));var _0x5ad58d=_0x36bcc7[_0x975e('0x2d')]&&_0x520520[_0x975e('0x1f')]>0x1;var _0x40a8cc=[];if(!fs[_0x975e('0x38')](path['join'](_0x3f1f5b,_0x4bc4e0))&&_0x5ad58d){fs[_0x975e('0x39')](path['join'](_0x3f1f5b,_0x4bc4e0));}return BPromise[_0x975e('0x3a')](_0x520520,function(_0x5d1395){_0x40a8cc['push'](_0x5d1395);})['then'](function(){var _0x25a349=[];for(var _0x1f2881=0x0;_0x1f2881<_0x40a8cc[_0x975e('0x1f')];_0x1f2881+=0x1){var _0x6ad23=_0x40a8cc[_0x1f2881];var _0x515b6c=createTables(_[_0x975e('0x3b')](_0x6ad23));var _0x7af4d9;var _0x477eda=getPDFDocDefinition(_0x515b6c);var _0x51446a=getPDFPrinter();var _0x88afd2=_0x51446a[_0x975e('0x3c')](_0x477eda);if(_0x5ad58d){_0x7af4d9=path[_0x975e('0x3d')](_0x3f1f5b,_0x4bc4e0,util[_0x975e('0x1c')](_0x975e('0x3e'),_0x4bc4e0,_0x1f2881,_0x975e('0x3f')));}else{_0x7af4d9=path[_0x975e('0x3d')](_0x3f1f5b,util[_0x975e('0x1c')](_0x975e('0x40'),_0x4bc4e0,_0x975e('0x3f')));}_0x25a349['push'](writePDFDocument(_0x88afd2,_0x7af4d9));}return Promise['all'](_0x25a349);})['then'](function(){if(_0x5ad58d){return new Promise(function(_0x16620b){zipdir(path['join'](_0x3f1f5b,_0x4bc4e0),{'saveTo':path[_0x975e('0x3d')](_0x3f1f5b,util[_0x975e('0x1c')]('%s.%s',_0x4bc4e0,_0x975e('0x41')))},function(){rimraf(path[_0x975e('0x3d')](_0x3f1f5b,_0x4bc4e0),function(){});_0x16620b(_0x975e('0x42'));});});}})['then'](function(){if(!_0x5ad58d)return;rimraf(path['join'](_0x3f1f5b,_0x4bc4e0),function(){});})[_0x975e('0x2f')](function(){logger[_0x975e('0x43')](util[_0x975e('0x1c')](_0x975e('0x44'),EXTRACTED_REPORT_ID,_0x975e('0x45')));return analyticExtractedReport('Completed',_0x5ad58d?util[_0x975e('0x1c')]('%s.%s',_0x4bc4e0,_0x5ad58d?'zip':_0x975e('0x3f')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x975e('0x43')](util[_0x975e('0x1c')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x975e('0x45')));return db['AnalyticExtractedReport']['findOne']({'where':{'id':EXTRACTED_REPORT_ID}})[_0x975e('0x2f')](function(_0x46633a){EXTRACTED_REPORT=_0x46633a;return dbH[_0x975e('0x32')][_0x975e('0x33')](util[_0x975e('0x1c')](_0x975e('0x46'),QUERY),{'type':dbH[_0x975e('0x32')]['QueryTypes']['SELECT']});})[_0x975e('0x2f')](extractReport)[_0x975e('0x47')](function(_0x338dd9){logger[_0x975e('0x43')](util[_0x975e('0x1c')](_0x975e('0x48'),EXTRACTED_REPORT_ID,_0x975e('0x45')),util[_0x975e('0x49')](_0x338dd9,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x975e('0x4a'));})['finally'](function(){process[_0x975e('0x4b')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x369b59=new PdfPrinter({'Arial':{'normal':__dirname+_0x975e('0x4c'),'bold':__dirname+_0x975e('0x4d'),'italics':__dirname+'/fonts/arial-italic.ttf','bolditalics':__dirname+_0x975e('0x4e')}});return _0x369b59;}function getPDFDocDefinitionFromHTML(_0x3d4c15,_0x1ba791){var _0x53b51a=util['format'](_0x975e('0x4f'),_0x1ba791[_0x975e('0x50')],_0x1ba791[_0x975e('0x51')]);var _0x81072b=moment()[_0x975e('0x1c')](_0x975e('0x52'))[_0x975e('0x15')]();var _0x2db966=htmlToPdfmake(_0x3d4c15,{'window':window,'tableAutoSize':!![]});return{'content':[_0x2db966],'defaultStyle':{'font':_0x975e('0x27')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x975e('0x53'),'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':_0x975e('0x53')}},'header':function(){return[{'text':_0x975e('0x54'),'style':_0x975e('0x20')}];},'footer':function(_0x418402,_0x97de22){return[{'text':util[_0x975e('0x1c')](_0x975e('0x55'),_0x53b51a,_0x418402,_0x97de22,_0x81072b),'style':'footer'}];}};}function writePDFDocument(_0xfed531,_0x3509e9){return new Promise(function(_0x1803d2,_0x1f5081){var _0x53561f=_0xfed531[_0x975e('0x56')](fs[_0x975e('0x57')](_0x3509e9));_0x53561f['on'](_0x975e('0x58'),function(){_0x1803d2('finish');});_0x53561f['on']('error',function(_0x82ca0e){_0x1f5081(_0x82ca0e);});_0xfed531[_0x975e('0x59')]();});}exports[_0x975e('0x5a')]=function(_0x42b8b3,_0x3be6ea){var _0x622e01=getPDFPrinter();var _0x48a087=getPDFDocDefinitionFromHTML(_0x42b8b3,_0x3be6ea);var _0x1a5028=_0x622e01[_0x975e('0x3c')](_0x48a087);return writePDFDocument(_0x1a5028,_0x3be6ea['path'])['catch'](function(_0x224e59){throw _0x224e59;});};
\ No newline at end of file
+var _0x8849=['Completed','zip','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','PDF','findOne','sequelize','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','SELECT','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','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','createWriteStream','finish','error','end','createPdfFromHTML','lodash','util','path','zip-dir','rimraf','JSDOM','window','../../mysqldb','dbH','../../config/logger','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','tableHeader','map','pick','value','fill','body','push','concat','chunk','keys','forEach','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','endDate','header','pageBreak','margin','toString','footer','black','right','num','dirname','basename','.pdf','join','pdf','Setting','find','split','splitSizePdf','then','length','query','QueryTypes','existsSync','mkdirSync','createPdfKitDocument','%s%d.%s','%s.%s','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','CSV'];(function(_0x39f1ae,_0x4a77ce){var _0x1d52b8=function(_0xc262fa){while(--_0xc262fa){_0x39f1ae['push'](_0x39f1ae['shift']());}};_0x1d52b8(++_0x4a77ce);}(_0x8849,0x73));var _0x9884=function(_0x11be76,_0x88926){_0x11be76=_0x11be76-0x0;var _0x2c8516=_0x8849[_0x11be76];return _0x2c8516;};'use strict';var _=require(_0x9884('0x0'));var fs=require('fs');var util=require(_0x9884('0x1'));var path=require(_0x9884('0x2'));var moment=require('moment');var htmlToPdfmake=require('html-to-pdfmake');var PdfPrinter=require('pdfmake/src/printer');var zipdir=require(_0x9884('0x3'));var rimraf=require(_0x9884('0x4'));var JSDOM=require('jsdom')[_0x9884('0x5')];var window=new JSDOM('')[_0x9884('0x6')];var db=require(_0x9884('0x7'))['db'];var dbH=require('../../mysqldb')[_0x9884('0x8')];var logger=require(_0x9884('0x9'))('analytics');var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x9884('0xa')][0x3];var PATH=process['argv'][0x4];var NAME=process[_0x9884('0xa')][0x5];var FORMAT=_0x9884('0xb');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x461240,_0x329374){var _0x3624a3={'status':_0x461240};var _0x4ff2db={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x329374){_0x3624a3[_0x9884('0xc')]=_0x329374;}return db[_0x9884('0xd')]['update'](_0x3624a3,_0x4ff2db);}function getHeaders(_0x26bca7){return _['map'](_0x26bca7,function(_0x8883a3){return{'text':_0x8883a3,'style':_0x9884('0xe')};});}function getRows(_0x56108c,_0x57b8d5){return _[_0x9884('0xf')](_0x57b8d5,function(_0x202fc4){return _(_0x202fc4)[_0x9884('0x10')](_0x56108c)[_0x9884('0xf')](function(_0x4befcc){return _0x4befcc?_['toString'](_0x4befcc):'';})[_0x9884('0x11')]();});}function createTable(_0x1081aa,_0x2eff59){var _0x9eb8c4={'widths':_[_0x9884('0x12')](Array(_0x1081aa['length']),0x91),'heights':function(_0x71515c){return _0x71515c===0x0?'auto':0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x42a601=getHeaders(_0x1081aa);_0x9eb8c4[_0x9884('0x13')][_0x9884('0x14')](_0x42a601);var _0x25ee52=getRows(_0x1081aa,_0x2eff59);_0x9eb8c4[_0x9884('0x13')]=_0x9eb8c4[_0x9884('0x13')][_0x9884('0x15')](_0x25ee52);return _0x9eb8c4;}function createTables(_0x18609b){var _0x3abdd6=[];var _0x4fa119=_[_0x9884('0x16')](Object[_0x9884('0x17')](_0x18609b[0x0]),0x5);_0x4fa119[_0x9884('0x18')](function(_0xf3bc71){_0x3abdd6[_0x9884('0x14')](createTable(_0xf3bc71,_0x18609b));});return _0x3abdd6;}function getPDFDocDefinition(_0x177c60){var _0x224bd0=util[_0x9884('0x19')](_0x9884('0x1a'),NAME,EXTRACTED_REPORT[_0x9884('0x1b')],moment(EXTRACTED_REPORT[_0x9884('0x1c')])['format'](FORMAT),moment(EXTRACTED_REPORT[_0x9884('0x1d')])[_0x9884('0x19')](FORMAT));var _0x30660f=[];for(var _0x28b6b0=0x0;_0x28b6b0<_0x177c60['length'];_0x28b6b0++){var _0x36045b=[];if(_0x28b6b0===0x0){_0x36045b['push']({'text':_0x224bd0,'style':_0x9884('0x1e')});}var _0x59a8c2={'table':_0x177c60[_0x28b6b0]};if(_0x28b6b0>0x0){_0x59a8c2[_0x9884('0x1f')]='before';_0x59a8c2[_0x9884('0x20')]=[0x0,0x46,0x0,0x0];}_0x36045b[_0x9884('0x14')](_0x59a8c2);_0x30660f[_0x9884('0x14')](_0x36045b);}return{'pageSize':'A4','pageOrientation':'landscape','content':_0x30660f,'footer':function(_0x18ff88,_0x17d42d){return{'text':_0x18ff88[_0x9884('0x21')]()+'\x20/\x20'+_0x17d42d,'style':_0x9884('0x22')};},'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x9884('0x23')},'footer':{'alignment':_0x9884('0x24'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x172927){var _0x30e4bc=0x1388;var _0x33b3b0;if(!_0x172927[0x0][_0x9884('0x25')]){return analyticExtractedReport('Empty');}var _0x3be63b=[];var _0x19ead6=0x0;var _0x15209b=!![];var _0x223e0c=path[_0x9884('0x26')](PATH);var _0x2a9cb1=path[_0x9884('0x27')](PATH,_0x9884('0x28'));var _0x465003=path[_0x9884('0x29')](_0x223e0c,util[_0x9884('0x19')]('%s.%s',_0x2a9cb1,_0x9884('0x2a')));var _0x389190=![];return db[_0x9884('0x2b')][_0x9884('0x2c')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x9884('0x2d'),_0x9884('0x2e')]})[_0x9884('0x2f')](function(_0x7b68c5){if(_0x7b68c5){_0x33b3b0=_0x7b68c5;_0x30e4bc=_0x33b3b0[_0x9884('0x2e')]||0x3e8;}})[_0x9884('0x2f')](function(){if(_0x172927&&_0x172927[_0x9884('0x30')]){var _0x4345e3=_0x172927[0x0][_0x9884('0x25')]%(_0x19ead6+_0x30e4bc);if(_0x33b3b0[_0x9884('0x2d')]){for(;_0x15209b;_0x19ead6+=_0x30e4bc,_0x4345e3=_0x172927[0x0]['num']%(_0x19ead6+_0x30e4bc)){if(_0x4345e3==0x0||_0x4345e3==_0x172927[0x0][_0x9884('0x25')]){_0x15209b=![];}_0x3be63b[_0x9884('0x14')](dbH['sequelize'][_0x9884('0x31')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x30e4bc,_0x19ead6),{'type':dbH['sequelize'][_0x9884('0x32')]['SELECT']}));}}else{_0x3be63b[_0x9884('0x14')](dbH['sequelize'][_0x9884('0x31')](QUERY,{'type':dbH['sequelize'][_0x9884('0x32')]['SELECT']}));}}_0x389190=_0x33b3b0[_0x9884('0x2d')]&&_0x3be63b[_0x9884('0x30')]>0x1;if(!fs[_0x9884('0x33')](path[_0x9884('0x29')](_0x223e0c,_0x2a9cb1))&&_0x389190){fs[_0x9884('0x34')](path['join'](_0x223e0c,_0x2a9cb1));}return Promise['all'](_0x3be63b);})[_0x9884('0x2f')](function(_0x4bfca6){return createTables(_['flatten'](_0x4bfca6));})[_0x9884('0x2f')](function(_0xfb8332){var _0x430423=getPDFDocDefinition(_0xfb8332);var _0x30c83b=getPDFPrinter();var _0x18a6b4=_0x30c83b[_0x9884('0x35')](_0x430423);if(_0x389190)_0x465003=path['join'](_0x223e0c,_0x2a9cb1,util['format'](_0x9884('0x36'),_0x2a9cb1,index,_0x9884('0x2a')));return writePDFDocument(_0x18a6b4,_0x465003);})['then'](function(){if(!_0x389190)return;zipdir(path[_0x9884('0x29')](_0x223e0c,_0x2a9cb1),{'saveTo':path[_0x9884('0x29')](_0x223e0c,util[_0x9884('0x19')](_0x9884('0x37'),_0x2a9cb1,'zip'))},function(_0x1e2f9d){if(_0x1e2f9d)throw _0x1e2f9d;return;});})[_0x9884('0x2f')](function(){if(!_0x389190)return;rimraf(path[_0x9884('0x29')](_0x223e0c,_0x2a9cb1),function(){});})['then'](function(){logger[_0x9884('0x38')](util[_0x9884('0x19')](_0x9884('0x39'),EXTRACTED_REPORT_ID,_0x9884('0x3a')));return analyticExtractedReport(_0x9884('0x3b'),_0x389190?util[_0x9884('0x19')](_0x9884('0x37'),_0x2a9cb1,_0x389190?_0x9884('0x3c'):_0x9884('0x2a')):null);});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x9884('0x38')](util[_0x9884('0x19')](_0x9884('0x3d'),EXTRACTED_REPORT_ID,_0x9884('0x3e')));return db['AnalyticExtractedReport'][_0x9884('0x3f')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0x9884('0x2f')](function(_0xb00153){EXTRACTED_REPORT=_0xb00153;return dbH[_0x9884('0x40')][_0x9884('0x31')](util[_0x9884('0x19')](_0x9884('0x41'),QUERY),{'type':dbH[_0x9884('0x40')][_0x9884('0x32')][_0x9884('0x42')]});})[_0x9884('0x2f')](extractReport)[_0x9884('0x43')](function(_0x4389db){logger['info'](util[_0x9884('0x19')](_0x9884('0x44'),EXTRACTED_REPORT_ID,_0x9884('0x3e')),util[_0x9884('0x45')](_0x4389db,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x9884('0x46'));})[_0x9884('0x47')](function(){process['exit'](EXIT_CODE);});}main();function getPDFPrinter(){var _0x394089=new PdfPrinter({'Arial':{'normal':__dirname+'/fonts/arial-regular.ttf','bold':__dirname+_0x9884('0x48'),'italics':__dirname+_0x9884('0x49'),'bolditalics':__dirname+_0x9884('0x4a')}});return _0x394089;}function getPDFDocDefinitionFromHTML(_0x32e5d3,_0x441a7c){var _0x4e6a03=util[_0x9884('0x19')](_0x9884('0x4b'),_0x441a7c[_0x9884('0x4c')],_0x441a7c[_0x9884('0x4d')]);var _0x1f7ebd=moment()['format'](_0x9884('0x4e'))[_0x9884('0x21')]();var _0x2ed125=htmlToPdfmake(_0x32e5d3,{'window':window,'tableAutoSize':!![]});return{'content':[_0x2ed125],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':'center','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':_0x9884('0x4f')}},'header':function(){return[{'text':_0x9884('0x50'),'style':_0x9884('0x1e')}];},'footer':function(_0x4aa492,_0x45d207){return[{'text':util[_0x9884('0x19')](_0x9884('0x51'),_0x4e6a03,_0x4aa492,_0x45d207,_0x1f7ebd),'style':_0x9884('0x22')}];}};}function writePDFDocument(_0x4773dc,_0x4e0b7e){return new Promise(function(_0x242ad9,_0x3d5a2e){var _0x48661a=_0x4773dc['pipe'](fs[_0x9884('0x52')](_0x4e0b7e));_0x48661a['on'](_0x9884('0x53'),function(){_0x242ad9('finish');});_0x48661a['on'](_0x9884('0x54'),function(_0x13ea0b){_0x3d5a2e(_0x13ea0b);});_0x4773dc[_0x9884('0x55')]();});}exports[_0x9884('0x56')]=function(_0x182afc,_0x3c5117){var _0x3b38c3=getPDFPrinter();var _0x2f7047=getPDFDocDefinitionFromHTML(_0x182afc,_0x3c5117);var _0x31043d=_0x3b38c3[_0x9884('0x35')](_0x2f7047);return writePDFDocument(_0x31043d,_0x3c5117[_0x9884('0x2')])['catch'](function(_0x17caa1){throw _0x17caa1;});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59a5=['%s.%s','xlsx','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','exit','util','path','lodash','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','dbH','argv','AnalyticExtractedReport','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','find','split','then','splitSizeXlsx','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','range','isInteger','%s\x20limit\x20%d\x20OFFSET\x20%d','push','dirname','basename','existsSync','join','mkdirSync','each','length','%s%d.%s','binary','zip','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','XLSX'];(function(_0x5bfb00,_0x52ffc4){var _0x24885f=function(_0x422009){while(--_0x422009){_0x5bfb00['push'](_0x5bfb00['shift']());}};_0x24885f(++_0x52ffc4);}(_0x59a5,0x157));var _0x559a=function(_0x6d63b8,_0x576222){_0x6d63b8=_0x6d63b8-0x0;var _0xe9ef=_0x59a5[_0x6d63b8];return _0xe9ef;};'use strict';var util=require(_0x559a('0x0'));var path=require(_0x559a('0x1'));var _=require(_0x559a('0x2'));var fs=require('fs');var json2xls=require(_0x559a('0x3'));var BPromise=require(_0x559a('0x4'));var zipdir=require(_0x559a('0x5'));var rimraf=require(_0x559a('0x6'));var db=require(_0x559a('0x7'))['db'];var dbH=require('../../mysqldb')[_0x559a('0x8')];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x559a('0x9')][0x2]);var QUERY=process[_0x559a('0x9')][0x3];var PATH=process[_0x559a('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x36ca51,_0x3740ea){var _0x51aa6e={'status':_0x36ca51};var _0x3b5c14={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3740ea){_0x51aa6e['savename']=_0x3740ea;}return db[_0x559a('0xa')]['update'](_0x51aa6e,_0x3b5c14);}function main(){var _0x25baab=0x1388;var _0x120aee;logger['info'](util[_0x559a('0xb')](_0x559a('0xc'),EXTRACTED_REPORT_ID,'XLSX'));return db['Setting'][_0x559a('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x559a('0xe'),'splitSizeXlsx']})[_0x559a('0xf')](function(_0x1291af){if(_0x1291af){_0x120aee=_0x1291af;_0x25baab=_0x120aee[_0x559a('0x10')]||0x1388;}})[_0x559a('0xf')](function(){return dbH[_0x559a('0x11')][_0x559a('0x12')](util[_0x559a('0xb')](_0x559a('0x13'),QUERY),{'type':dbH[_0x559a('0x11')][_0x559a('0x14')][_0x559a('0x15')]});})[_0x559a('0xf')](function(_0x52fe04){if(!_0x52fe04[0x0][_0x559a('0x16')]){return analyticExtractedReport(_0x559a('0x17'));}var _0x5c2056=[];var _0x309f7c=0x0;if(_0x120aee[_0x559a('0xe')]){if(_0x52fe04&&_0x52fe04['length']){var _0x554325=_[_0x559a('0x18')](_0x52fe04[0x0][_0x559a('0x16')]/_0x25baab);var _0x3fd8d4=Number[_0x559a('0x19')](_0x52fe04[0x0][_0x559a('0x16')]/_0x25baab)?_0x52fe04[0x0][_0x559a('0x16')]%_0x25baab:0x0;_0x554325['forEach'](function(_0x111065){if(_0x111065>0x0){_0x309f7c+=_0x25baab;}_0x5c2056['push'](dbH[_0x559a('0x11')][_0x559a('0x12')](util['format'](_0x559a('0x1a'),QUERY,_0x25baab,_0x309f7c),{'type':dbH[_0x559a('0x11')][_0x559a('0x14')][_0x559a('0x15')]}));});if(_0x3fd8d4>0x0){_0x309f7c+=_0x25baab;_0x5c2056[_0x559a('0x1b')](dbH[_0x559a('0x11')][_0x559a('0x12')](util[_0x559a('0xb')](_0x559a('0x1a'),QUERY,_0x3fd8d4,_0x309f7c),{'type':dbH[_0x559a('0x11')][_0x559a('0x14')][_0x559a('0x15')]}));}}}else{_0x5c2056[_0x559a('0x1b')](dbH['sequelize'][_0x559a('0x12')](QUERY,{'type':dbH[_0x559a('0x11')][_0x559a('0x14')][_0x559a('0x15')]}));}var _0x2bab6a=path[_0x559a('0x1c')](PATH);var _0x3f86e0=path[_0x559a('0x1d')](PATH,'.xlsx');var _0x1087f7=_0x120aee[_0x559a('0xe')]&&_0x5c2056['length']>0x1;var _0x2ea01e=[];if(!fs[_0x559a('0x1e')](path[_0x559a('0x1f')](_0x2bab6a,_0x3f86e0))&&_0x1087f7){fs[_0x559a('0x20')](path[_0x559a('0x1f')](_0x2bab6a,_0x3f86e0));}return BPromise[_0x559a('0x21')](_0x5c2056,function(_0x2fea19){_0x2ea01e[_0x559a('0x1b')](_0x2fea19);})[_0x559a('0xf')](function(){for(var _0x4fd456=0x0;_0x4fd456<_0x2ea01e[_0x559a('0x22')];_0x4fd456+=0x1){var _0x490f4f;var _0x1932b7=_0x2ea01e[_0x4fd456];if(_0x1087f7){_0x490f4f=path[_0x559a('0x1f')](_0x2bab6a,_0x3f86e0,util[_0x559a('0xb')](_0x559a('0x23'),_0x3f86e0,_0x4fd456,'xlsx'));}else{_0x490f4f=path['join'](_0x2bab6a,util[_0x559a('0xb')]('%s.%s',_0x3f86e0,'xlsx'));}fs['writeFileSync'](_0x490f4f,json2xls(_0x1932b7),_0x559a('0x24'));}})['then'](function(){if(_0x1087f7){return new Promise(function(_0x4931d7){zipdir(path[_0x559a('0x1f')](_0x2bab6a,_0x3f86e0),{'saveTo':path['join'](_0x2bab6a,util[_0x559a('0xb')]('%s.%s',_0x3f86e0,_0x559a('0x25')))},function(_0xe22cbd,_0x1e4649){rimraf(path[_0x559a('0x1f')](_0x2bab6a,_0x3f86e0),function(){});_0x4931d7('zip\x20finished');});});}})[_0x559a('0xf')](function(){logger[_0x559a('0x26')](util['format'](_0x559a('0x27'),EXTRACTED_REPORT_ID,_0x559a('0x28')));return analyticExtractedReport('Completed',_0x1087f7?util[_0x559a('0xb')](_0x559a('0x29'),_0x3f86e0,_0x1087f7?_0x559a('0x25'):_0x559a('0x2a')):null);});})[_0x559a('0x2b')](function(_0x2f2d55){logger[_0x559a('0x26')](util[_0x559a('0xb')](_0x559a('0x2c'),EXTRACTED_REPORT_ID,_0x559a('0x28')),util[_0x559a('0x2d')](_0x2f2d55,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x559a('0x2e'));})['finally'](function(){process[_0x559a('0x2f')](EXIT_CODE);});}main();
\ No newline at end of file
+var _0x3cdb=['SELECT','num','push','%s\x20limit\x20%d\x20OFFSET\x20%d','basename','.xlsx','length','existsSync','join','mkdirSync','%s.%s','xlsx','writeFileSync','XLSX','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','util','path','lodash','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','find','split','splitSizeXlsx','then','sequelize','query','QueryTypes'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x3cdb,0x90));var _0xb3cd=function(_0x3a9661,_0x530b12){_0x3a9661=_0x3a9661-0x0;var _0x5bb119=_0x3cdb[_0x3a9661];return _0x5bb119;};'use strict';var util=require(_0xb3cd('0x0'));var path=require(_0xb3cd('0x1'));var _=require(_0xb3cd('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require('bluebird');var zipdir=require('zip-dir');var rimraf=require(_0xb3cd('0x3'));var db=require(_0xb3cd('0x4'))['db'];var dbH=require(_0xb3cd('0x4'))[_0xb3cd('0x5')];var logger=require(_0xb3cd('0x6'))(_0xb3cd('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0xb3cd('0x8')][0x2]);var QUERY=process['argv'][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xe2ab53,_0x3e8e52){var _0x2e2e9c={'status':_0xe2ab53};var _0x454072={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3e8e52){_0x2e2e9c['savename']=_0x3e8e52;}return db[_0xb3cd('0x9')]['update'](_0x2e2e9c,_0x454072);}function main(){var _0x3b3786=0x1388;var _0x4ca97e;logger[_0xb3cd('0xa')](util[_0xb3cd('0xb')](_0xb3cd('0xc'),EXTRACTED_REPORT_ID,'XLSX'));return db['Setting'][_0xb3cd('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xb3cd('0xe'),_0xb3cd('0xf')]})[_0xb3cd('0x10')](function(_0x3c87de){if(_0x3c87de){_0x4ca97e=_0x3c87de;_0x3b3786=_0x4ca97e[_0xb3cd('0xf')]||0x1388;}})['then'](function(){return dbH[_0xb3cd('0x11')][_0xb3cd('0x12')](util[_0xb3cd('0xb')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0xb3cd('0x11')][_0xb3cd('0x13')][_0xb3cd('0x14')]});})[_0xb3cd('0x10')](function(_0x382480){if(!_0x382480[0x0][_0xb3cd('0x15')]){return analyticExtractedReport('Empty');}var _0x22ec2d=[];var _0x3bebc0=0x0;var _0x1c3bd1=!![];if(_0x4ca97e[_0xb3cd('0xe')]){if(_0x382480&&_0x382480['length']){var _0x581ada=_0x382480[0x0][_0xb3cd('0x15')]%(_0x3bebc0+_0x3b3786);for(;_0x1c3bd1;_0x3bebc0+=_0x3b3786,_0x581ada=_0x382480[0x0][_0xb3cd('0x15')]%(_0x3bebc0+_0x3b3786)){if(_0x581ada==0x0||_0x581ada==_0x382480[0x0][_0xb3cd('0x15')]){_0x1c3bd1=![];}_0x22ec2d[_0xb3cd('0x16')](dbH[_0xb3cd('0x11')][_0xb3cd('0x12')](util[_0xb3cd('0xb')](_0xb3cd('0x17'),QUERY,_0x3b3786,_0x3bebc0),{'type':dbH[_0xb3cd('0x11')][_0xb3cd('0x13')][_0xb3cd('0x14')]}));}}}else{_0x22ec2d[_0xb3cd('0x16')](dbH[_0xb3cd('0x11')][_0xb3cd('0x12')](QUERY,{'type':dbH[_0xb3cd('0x11')][_0xb3cd('0x13')][_0xb3cd('0x14')]}));}var _0x1b2c45=path['dirname'](PATH);var _0x1cc4f1=path[_0xb3cd('0x18')](PATH,_0xb3cd('0x19'));var _0x115727=_0x4ca97e['split']&&_0x22ec2d[_0xb3cd('0x1a')]>0x1;var _0x7b3376=[];if(!fs[_0xb3cd('0x1b')](path[_0xb3cd('0x1c')](_0x1b2c45,_0x1cc4f1))&&_0x115727){fs[_0xb3cd('0x1d')](path[_0xb3cd('0x1c')](_0x1b2c45,_0x1cc4f1));}return BPromise['each'](_0x22ec2d,function(_0x2366e8){_0x7b3376['push'](_0x2366e8);})[_0xb3cd('0x10')](function(){for(var _0xd96061=0x0;_0xd96061<_0x7b3376[_0xb3cd('0x1a')];_0xd96061+=0x1){var _0x39965b;var _0x203295=_0x7b3376[_0xd96061];if(_0x115727){_0x39965b=path[_0xb3cd('0x1c')](_0x1b2c45,_0x1cc4f1,util[_0xb3cd('0xb')]('%s%d.%s',_0x1cc4f1,_0xd96061,'xlsx'));}else{_0x39965b=path[_0xb3cd('0x1c')](_0x1b2c45,util[_0xb3cd('0xb')](_0xb3cd('0x1e'),_0x1cc4f1,_0xb3cd('0x1f')));}fs[_0xb3cd('0x20')](_0x39965b,json2xls(_0x203295),'binary');}})[_0xb3cd('0x10')](function(){if(_0x115727){zipdir(path[_0xb3cd('0x1c')](_0x1b2c45,_0x1cc4f1),{'saveTo':path[_0xb3cd('0x1c')](_0x1b2c45,util[_0xb3cd('0xb')](_0xb3cd('0x1e'),_0x1cc4f1,'zip'))},function(_0x221e3c,_0x3019e9){});rimraf(path['join'](_0x1b2c45,_0x1cc4f1),function(){});}})['then'](function(){logger['info'](util[_0xb3cd('0xb')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0xb3cd('0x21')));return analyticExtractedReport('Completed',_0x115727?util[_0xb3cd('0xb')](_0xb3cd('0x1e'),_0x1cc4f1,_0x115727?_0xb3cd('0x22'):_0xb3cd('0x1f')):null);});})[_0xb3cd('0x23')](function(_0x1ee502){logger[_0xb3cd('0xa')](util['format'](_0xb3cd('0x24'),EXTRACTED_REPORT_ID,_0xb3cd('0x21')),util[_0xb3cd('0x25')](_0x1ee502,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xb3cd('0x26'));})[_0xb3cd('0x27')](function(){process[_0xb3cd('0x28')](EXIT_CODE);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008e=['sortBy','catch','error','rewrite','lodash','util','models','Interval','findAll','then','intervals','VoiceExtension','CAST(priority\x20AS\x20UNSIGNED)','filter','exten','playback','priority','extension','find','extensions','push','type','Set','CDR(type)=%s','context','VoiceExtensionId','CDR(routeid)=','outbound','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','MONITOR_OPTIONS=ab','length','createdAt','updatedAt','interval','*,*,*,*','IntervalId','map','tag','CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','Hangup','concat','destroy','bulkCreate'];(function(_0x3470c2,_0x2006a3){var _0x1e2a5f=function(_0x367441){while(--_0x367441){_0x3470c2['push'](_0x3470c2['shift']());}};_0x1e2a5f(++_0x2006a3);}(_0x008e,0xd6));var _0xe008=function(_0x10666b,_0x219e36){_0x10666b=_0x10666b-0x0;var _0x5d0f77=_0x008e[_0x10666b];return _0x5d0f77;};'use strict';var _=require(_0xe008('0x0'));var util=require(_0xe008('0x1'));function rewrite(_0x396401,_0x2bb73c){var _0x20661e=this;return _0x396401[_0xe008('0x2')][_0xe008('0x3')][_0xe008('0x4')]({'raw':!![]})[_0xe008('0x5')](function(_0x13dde8){_0x20661e[_0xe008('0x6')]=_0x13dde8;return _0x396401['models'][_0xe008('0x7')][_0xe008('0x4')]({'where':{'IntervalId':_0x2bb73c['IntervalId']},'raw':!![]});})[_0xe008('0x5')](function(_0x2458d5){return _0x396401[_0xe008('0x2')]['VoiceExtension']['findAll']({'where':{'exten':{'$in':_['uniq'](_['map'](_0x2458d5,'exten'))}},'order':[{'raw':_0xe008('0x8')}],'raw':!![]});})[_0xe008('0x5')](function(_0x1547dd){var _0x351e13=_[_0xe008('0x9')](_0x1547dd,{'priority':'1'});var _0x5dadda=_['filter'](_0x1547dd,{'isApp':0x1});var _0x5269b9=_['groupBy'](_0x5dadda,_0xe008('0xa'));var _0x1feb8d=['queue',_0xe008('0xb')];var _0x51bb21=[];var _0xa28913=[];for(var _0x2e5675 in _0x5269b9){if(_0x5269b9['hasOwnProperty'](_0x2e5675)){_0x20661e[_0xe008('0xc')]=0x2;_0x20661e['extensions']=[];_0x20661e[_0xe008('0xd')]=_[_0xe008('0xe')](_0x351e13,{'exten':_0x5269b9[_0x2e5675][0x0][_0xe008('0xa')]});_0x20661e[_0xe008('0xf')][_0xe008('0x10')]({'type':_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')],'app':_0xe008('0x12'),'appdata':util['format'](_0xe008('0x13'),_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')]),'context':_0x5269b9[_0x2e5675][0x0][_0xe008('0x14')],'exten':_0x5269b9[_0x2e5675][0x0][_0xe008('0xa')],'priority':_0x20661e[_0xe008('0xc')]++,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')]});if(_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')]==='inbound'){_0x20661e[_0xe008('0xf')][_0xe008('0x10')]({'type':_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')],'app':_0xe008('0x12'),'appdata':_0xe008('0x16')+_0x5269b9[_0x2e5675][0x0]['VoiceExtensionId'],'context':_0x5269b9[_0x2e5675][0x0]['context'],'exten':_0x5269b9[_0x2e5675][0x0]['exten'],'priority':_0x20661e['priority']++,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')]});}else if(_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')]===_0xe008('0x17')){if(_0x20661e[_0xe008('0xd')]){_0x20661e[_0xe008('0xf')][_0xe008('0x10')]({'type':_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')],'app':_0xe008('0x12'),'appdata':'CDR(destination)='+(_0x20661e['extension'][_0xe008('0x18')]?_0xe008('0x19')+_0x20661e['extension'][_0xe008('0x18')]+'}':_0xe008('0x1a')),'context':_0x5269b9[_0x2e5675][0x0]['context'],'exten':_0x5269b9[_0x2e5675][0x0][_0xe008('0xa')],'priority':_0x20661e[_0xe008('0xc')]++,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')]});}_0x20661e[_0xe008('0xf')][_0xe008('0x10')]({'type':_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')],'app':_0xe008('0x12'),'appdata':'CDR(routeid)='+_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')],'context':_0x5269b9[_0x2e5675][0x0]['context'],'exten':_0x5269b9[_0x2e5675][0x0][_0xe008('0xa')],'priority':_0x20661e[_0xe008('0xc')]++,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')]});var _0x47ed4e=_0x20661e[_0xe008('0xc')]++;_0x20661e[_0xe008('0xf')][_0xe008('0x10')]({'type':_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')],'app':_0xe008('0x1b'),'appdata':_0xe008('0x1c')+(_0x47ed4e+0x2)+_0xe008('0x1d')+(_0x47ed4e+0x1)+')','context':_0x5269b9[_0x2e5675][0x0][_0xe008('0x14')],'exten':_0x5269b9[_0x2e5675][0x0]['exten'],'priority':_0x47ed4e,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')]});if(_0x20661e[_0xe008('0xd')]){_0x20661e[_0xe008('0xf')][_0xe008('0x10')]({'type':_0x5269b9[_0x2e5675][0x0]['type'],'app':'Set','appdata':_0x20661e['extension'][_0xe008('0x18')]?_0xe008('0x1e')+_0x20661e[_0xe008('0xd')][_0xe008('0x18')]+'}':_0xe008('0x1f'),'context':_0x5269b9[_0x2e5675][0x0][_0xe008('0x14')],'exten':_0x5269b9[_0x2e5675][0x0][_0xe008('0xa')],'priority':_0x20661e[_0xe008('0xc')]++,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')]});}_0x20661e[_0xe008('0xf')][_0xe008('0x10')]({'type':_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')],'app':_0xe008('0x12'),'appdata':_0xe008('0x20')+_0x5269b9[_0x2e5675][0x0]['VoiceExtensionId'],'context':_0x5269b9[_0x2e5675][0x0][_0xe008('0x14')],'exten':_0x5269b9[_0x2e5675][0x0][_0xe008('0xa')],'priority':_0x20661e[_0xe008('0xc')]++,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0]['VoiceExtensionId']});if(_0x20661e[_0xe008('0xd')]&&_0x20661e[_0xe008('0xd')][_0xe008('0x21')](_0xe008('0x22'))&&_0x20661e[_0xe008('0xd')][_0xe008('0x22')]!==_0xe008('0x23')){_0x20661e[_0xe008('0xf')][_0xe008('0x10')]({'type':_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')],'app':_0xe008('0x12'),'appdata':_0xe008('0x24'),'context':_0x5269b9[_0x2e5675][0x0][_0xe008('0x14')],'exten':_0x5269b9[_0x2e5675][0x0]['exten'],'priority':_0x20661e['priority']++,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')]});_0x20661e['extensions'][_0xe008('0x10')]({'type':_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')],'app':'Set','appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x20661e[_0xe008('0xd')][_0xe008('0x22')]||_0xe008('0x25'),'context':_0x5269b9[_0x2e5675][0x0][_0xe008('0x14')],'exten':_0x5269b9[_0x2e5675][0x0][_0xe008('0xa')],'priority':_0x20661e[_0xe008('0xc')]++,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0]['VoiceExtensionId']});}}_0x20661e[_0xe008('0xf')]['push']({'type':_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')],'app':_0xe008('0x12'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x5269b9[_0x2e5675][0x0][_0xe008('0x14')],'exten':_0x5269b9[_0x2e5675][0x0][_0xe008('0xa')],'priority':_0x20661e['priority']++,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')]});_0x20661e['extensions']['push']({'type':_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x5269b9[_0x2e5675][0x0]['context'],'exten':_0x5269b9[_0x2e5675][0x0][_0xe008('0xa')],'priority':_0x20661e[_0xe008('0xc')]++,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')]});_0x20661e[_0xe008('0xf')][_0xe008('0x10')]({'type':_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')],'app':_0xe008('0x12'),'appdata':_0xe008('0x26'),'context':_0x5269b9[_0x2e5675][0x0][_0xe008('0x14')],'exten':_0x5269b9[_0x2e5675][0x0][_0xe008('0xa')],'priority':_0x20661e['priority']++,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')]});for(var _0x243a7b=0x0,_0x28c519=0x0;_0x243a7b<_0x5269b9[_0x2e5675][_0xe008('0x27')];_0x243a7b+=0x1,_0x28c519=0x0){var _0x2babbe=_0x5269b9[_0x2e5675][_0x243a7b];if(_0x2babbe['type']){_0x2babbe[_0xe008('0x11')]=_0x2babbe[_0xe008('0x11')]['toLowerCase']();}var _0x2068b1=[];var _0x5b5b1a=[];delete _0x2babbe['id'];delete _0x2babbe[_0xe008('0x28')];delete _0x2babbe[_0xe008('0x29')];var _0x335477=_0x2babbe[_0xe008('0x2a')]!==_0xe008('0x2b')?[_0x2babbe['interval']]:_0x2babbe[_0xe008('0x2c')]?_[_0xe008('0x2d')](_[_0xe008('0x9')](_0x20661e[_0xe008('0x6')],{'IntervalId':_0x2babbe['IntervalId']}),_0xe008('0x2a')):[];if(_0x2babbe[_0xe008('0x21')]('tag')){if(_0x2babbe[_0xe008('0x2e')]&&_0x2babbe[_0xe008('0x2e')]!=='--'){_0x2068b1[_0xe008('0x10')]({'type':_0x2babbe[_0xe008('0x11')],'app':_0xe008('0x12'),'appdata':_0xe008('0x2f')+_0x2babbe[_0xe008('0x2e')],'context':_0x2babbe[_0xe008('0x14')],'exten':_0x2babbe['exten'],'priority':_0x335477[_0xe008('0x27')]+_0x20661e[_0xe008('0xc')]+_0x28c519++,'VoiceExtensionId':_0x2babbe[_0xe008('0x15')]});}}if(_0x2babbe['type']===_0xe008('0x17')&&_0x2babbe[_0xe008('0x21')]('callerID')){if(_0x2babbe[_0xe008('0x30')]){_0x2068b1[_0xe008('0x10')]({'type':_0x2babbe[_0xe008('0x11')],'app':'ExecIf','appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x2babbe[_0xe008('0x30')]+')','context':_0x2babbe[_0xe008('0x14')],'exten':_0x2babbe['exten'],'priority':_0x335477[_0xe008('0x27')]+_0x20661e[_0xe008('0xc')]+_0x28c519++,'VoiceExtensionId':_0x2babbe['VoiceExtensionId']});}else{_0x2068b1[_0xe008('0x10')]({'type':_0x2babbe['type'],'app':_0xe008('0x1b'),'appdata':_0xe008('0x31'),'context':_0x2babbe['context'],'exten':_0x2babbe['exten'],'priority':_0x335477['length']+_0x20661e[_0xe008('0xc')]+_0x28c519++,'VoiceExtensionId':_0x2babbe[_0xe008('0x15')]});}}if(_0x2babbe['hasOwnProperty'](_0xe008('0x32'))){if(_0x1feb8d[_0xe008('0x33')](_0x2babbe[_0xe008('0x34')]['toLowerCase']())>=0x0&&_0x2babbe[_0xe008('0x35')]!==_0xe008('0x36')){if(_0x2babbe[_0xe008('0x32')]){_0x2068b1[_0xe008('0x10')]({'type':_0x2babbe[_0xe008('0x11')],'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x2babbe[_0xe008('0x14')],'exten':_0x2babbe[_0xe008('0xa')],'priority':_0x335477[_0xe008('0x27')]+_0x20661e[_0xe008('0xc')]+_0x28c519++,'VoiceExtensionId':_0x2babbe['VoiceExtensionId']});_0x2068b1[_0xe008('0x10')]({'type':_0x2babbe[_0xe008('0x11')],'app':_0xe008('0x12'),'appdata':_0xe008('0x37'),'context':_0x2babbe[_0xe008('0x14')],'exten':_0x2babbe[_0xe008('0xa')],'priority':_0x335477[_0xe008('0x27')]+_0x20661e[_0xe008('0xc')]+_0x28c519++,'VoiceExtensionId':_0x2babbe[_0xe008('0x15')]});}else{_0x2068b1['push']({'type':_0x2babbe[_0xe008('0x11')],'app':_0xe008('0x1b'),'appdata':_0xe008('0x38'),'context':_0x2babbe[_0xe008('0x14')],'exten':_0x2babbe['exten'],'priority':_0x335477[_0xe008('0x27')]+_0x20661e[_0xe008('0xc')]+_0x28c519++,'VoiceExtensionId':_0x2babbe[_0xe008('0x15')]});_0x2068b1['push']({'type':_0x2babbe[_0xe008('0x11')],'app':_0xe008('0x12'),'appdata':_0xe008('0x39'),'context':_0x2babbe[_0xe008('0x14')],'exten':_0x2babbe[_0xe008('0xa')],'priority':_0x335477[_0xe008('0x27')]+_0x20661e['priority']+_0x28c519++,'VoiceExtensionId':_0x2babbe[_0xe008('0x15')]});}}}for(var _0x13ddad=0x0;_0x13ddad<_0x335477[_0xe008('0x27')];_0x13ddad+=0x1){var _0xefcd5f=_0x20661e[_0xe008('0xc')]+_0x335477[_0xe008('0x27')];var _0x536807=_0x13ddad===_0x335477['length']-0x1?_0x20661e['priority']+_0x2068b1[_0xe008('0x27')]+_0x5b5b1a[_0xe008('0x27')]+0x2:_0x20661e[_0xe008('0xc')]+_0x13ddad+0x1;_0x2068b1[_0xe008('0x3a')](_0x13ddad,0x0,{'type':_0x2babbe[_0xe008('0x11')],'app':_0xe008('0x3b'),'appdata':_0x335477[_0x13ddad]+'?'+_0x2babbe[_0xe008('0x14')]+_0xe008('0x3c')+_0xefcd5f+':'+_0x2babbe[_0xe008('0x14')]+_0xe008('0x3c')+_0x536807,'exten':_0x2babbe['exten'],'context':_0x2babbe[_0xe008('0x14')],'priority':_0x20661e[_0xe008('0xc')]+_0x13ddad,'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')]});}_0x2babbe['priority']=_0x2068b1[_0xe008('0x27')]?_['last'](_0x2068b1)[_0xe008('0xc')]+0x1:_0x20661e[_0xe008('0xc')];_0x20661e[_0xe008('0xc')]=(_0x5b5b1a['length']?_[_0xe008('0x3d')](_0x5b5b1a)[_0xe008('0xc')]:_0x2babbe[_0xe008('0xc')])+0x1;_0x20661e[_0xe008('0xf')]=_['concat'](_0x20661e['extensions'],_0x2068b1,[_0x2babbe],_0x5b5b1a);}_0x20661e['extensions']['push']({'type':_0x5269b9[_0x2e5675][0x0][_0xe008('0x11')],'app':_0xe008('0x3e'),'exten':_0x5269b9[_0x2e5675][0x0]['exten'],'context':_0x5269b9[_0x2e5675][0x0]['context'],'priority':_0x20661e[_0xe008('0xc')],'VoiceExtensionId':_0x5269b9[_0x2e5675][0x0]['VoiceExtensionId']});_0x51bb21[_0xe008('0x10')](_0x5269b9[_0x2e5675][0x0][_0xe008('0x15')]);_0xa28913=_[_0xe008('0x3f')](_0xa28913,_0x20661e['extensions']);}}return _0x396401['transaction'](function(_0x31ac11){return _0x396401['models']['VoiceExtension'][_0xe008('0x40')]({'where':{'VoiceExtensionId':{'$in':_0x51bb21}},'transaction':_0x31ac11})['then'](function(_0xf10570){return _0x396401[_0xe008('0x2')]['VoiceExtension'][_0xe008('0x41')](_[_0xe008('0x42')](_0xa28913,_0xe008('0xc')),{'transaction':_0x31ac11});});});})[_0xe008('0x43')](function(_0x242111){console[_0xe008('0x44')](_0x242111);});}exports[_0xe008('0x45')]=rewrite;
\ No newline at end of file
+var _0x186a=['*,*,*,*','map','tag','CDR(tag)=','callerID','$[${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)','answer','indexOf','toLowerCase','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime','last','concat','Hangup','VoiceExtension','destroy','bulkCreate','catch','rewrite','lodash','util','Interval','then','intervals','models','findAll','IntervalId','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','hasOwnProperty','extensions','find','push','type','Set','format','CDR(type)=%s','context','priority','inbound','CDR(routeid)=','VoiceExtensionId','outbound','extension','CDR(destination)=','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','createdAt','updatedAt','interval'];(function(_0x4a79fd,_0x429333){var _0xef2f88=function(_0x44178c){while(--_0x44178c){_0x4a79fd['push'](_0x4a79fd['shift']());}};_0xef2f88(++_0x429333);}(_0x186a,0xa7));var _0xa186=function(_0x5f41a9,_0x5347a8){_0x5f41a9=_0x5f41a9-0x0;var _0x4f68fb=_0x186a[_0x5f41a9];return _0x4f68fb;};'use strict';var _=require(_0xa186('0x0'));var util=require(_0xa186('0x1'));function rewrite(_0x159623,_0x4d6404){var _0x286821=this;return _0x159623['models'][_0xa186('0x2')]['findAll']({'raw':!![]})[_0xa186('0x3')](function(_0x5509ef){_0x286821[_0xa186('0x4')]=_0x5509ef;return _0x159623[_0xa186('0x5')]['VoiceExtension'][_0xa186('0x6')]({'where':{'IntervalId':_0x4d6404[_0xa186('0x7')]},'raw':!![]});})[_0xa186('0x3')](function(_0x135f45){return _0x159623[_0xa186('0x5')]['VoiceExtension'][_0xa186('0x6')]({'where':{'exten':{'$in':_['uniq'](_['map'](_0x135f45,_0xa186('0x8')))}},'order':[{'raw':_0xa186('0x9')}],'raw':!![]});})[_0xa186('0x3')](function(_0x27ad15){var _0xf738=_['filter'](_0x27ad15,{'priority':'1'});var _0x1269b4=_[_0xa186('0xa')](_0x27ad15,{'isApp':0x1});var _0x15507f=_[_0xa186('0xb')](_0x1269b4,'exten');var _0x49f25a=[_0xa186('0xc'),'playback'];var _0x54f7cc=[];var _0x125610=[];for(var _0x10a460 in _0x15507f){if(_0x15507f[_0xa186('0xd')](_0x10a460)){_0x286821['priority']=0x2;_0x286821[_0xa186('0xe')]=[];_0x286821['extension']=_[_0xa186('0xf')](_0xf738,{'exten':_0x15507f[_0x10a460][0x0][_0xa186('0x8')]});_0x286821['extensions'][_0xa186('0x10')]({'type':_0x15507f[_0x10a460][0x0][_0xa186('0x11')],'app':_0xa186('0x12'),'appdata':util[_0xa186('0x13')](_0xa186('0x14'),_0x15507f[_0x10a460][0x0][_0xa186('0x11')]),'context':_0x15507f[_0x10a460][0x0][_0xa186('0x15')],'exten':_0x15507f[_0x10a460][0x0][_0xa186('0x8')],'priority':_0x286821[_0xa186('0x16')]++,'VoiceExtensionId':_0x15507f[_0x10a460][0x0]['VoiceExtensionId']});if(_0x15507f[_0x10a460][0x0][_0xa186('0x11')]===_0xa186('0x17')){_0x286821[_0xa186('0xe')][_0xa186('0x10')]({'type':_0x15507f[_0x10a460][0x0][_0xa186('0x11')],'app':_0xa186('0x12'),'appdata':_0xa186('0x18')+_0x15507f[_0x10a460][0x0][_0xa186('0x19')],'context':_0x15507f[_0x10a460][0x0][_0xa186('0x15')],'exten':_0x15507f[_0x10a460][0x0][_0xa186('0x8')],'priority':_0x286821[_0xa186('0x16')]++,'VoiceExtensionId':_0x15507f[_0x10a460][0x0][_0xa186('0x19')]});}else if(_0x15507f[_0x10a460][0x0][_0xa186('0x11')]===_0xa186('0x1a')){if(_0x286821[_0xa186('0x1b')]){_0x286821['extensions'][_0xa186('0x10')]({'type':_0x15507f[_0x10a460][0x0][_0xa186('0x11')],'app':'Set','appdata':_0xa186('0x1c')+(_0x286821[_0xa186('0x1b')][_0xa186('0x1d')]?'${EXTEN:'+_0x286821['extension'][_0xa186('0x1d')]+'}':_0xa186('0x1e')),'context':_0x15507f[_0x10a460][0x0][_0xa186('0x15')],'exten':_0x15507f[_0x10a460][0x0][_0xa186('0x8')],'priority':_0x286821[_0xa186('0x16')]++,'VoiceExtensionId':_0x15507f[_0x10a460][0x0]['VoiceExtensionId']});}_0x286821[_0xa186('0xe')]['push']({'type':_0x15507f[_0x10a460][0x0][_0xa186('0x11')],'app':_0xa186('0x12'),'appdata':'CDR(routeid)='+_0x15507f[_0x10a460][0x0][_0xa186('0x19')],'context':_0x15507f[_0x10a460][0x0][_0xa186('0x15')],'exten':_0x15507f[_0x10a460][0x0]['exten'],'priority':_0x286821[_0xa186('0x16')]++,'VoiceExtensionId':_0x15507f[_0x10a460][0x0][_0xa186('0x19')]});var _0x1b8857=_0x286821[_0xa186('0x16')]++;_0x286821['extensions'][_0xa186('0x10')]({'type':_0x15507f[_0x10a460][0x0][_0xa186('0x11')],'app':_0xa186('0x1f'),'appdata':_0xa186('0x20')+(_0x1b8857+0x2)+'):Goto('+(_0x1b8857+0x1)+')','context':_0x15507f[_0x10a460][0x0][_0xa186('0x15')],'exten':_0x15507f[_0x10a460][0x0][_0xa186('0x8')],'priority':_0x1b8857,'VoiceExtensionId':_0x15507f[_0x10a460][0x0]['VoiceExtensionId']});if(_0x286821['extension']){_0x286821[_0xa186('0xe')][_0xa186('0x10')]({'type':_0x15507f[_0x10a460][0x0][_0xa186('0x11')],'app':_0xa186('0x12'),'appdata':_0x286821[_0xa186('0x1b')]['cutdigits']?_0xa186('0x21')+_0x286821['extension'][_0xa186('0x1d')]+'}':_0xa186('0x22'),'context':_0x15507f[_0x10a460][0x0][_0xa186('0x15')],'exten':_0x15507f[_0x10a460][0x0][_0xa186('0x8')],'priority':_0x286821['priority']++,'VoiceExtensionId':_0x15507f[_0x10a460][0x0][_0xa186('0x19')]});}_0x286821[_0xa186('0xe')][_0xa186('0x10')]({'type':_0x15507f[_0x10a460][0x0]['type'],'app':'Set','appdata':_0xa186('0x23')+_0x15507f[_0x10a460][0x0][_0xa186('0x19')],'context':_0x15507f[_0x10a460][0x0][_0xa186('0x15')],'exten':_0x15507f[_0x10a460][0x0][_0xa186('0x8')],'priority':_0x286821[_0xa186('0x16')]++,'VoiceExtensionId':_0x15507f[_0x10a460][0x0][_0xa186('0x19')]});if(_0x286821[_0xa186('0x1b')]&&_0x286821[_0xa186('0x1b')]['hasOwnProperty'](_0xa186('0x24'))&&_0x286821['extension'][_0xa186('0x24')]!=='none'){_0x286821[_0xa186('0xe')][_0xa186('0x10')]({'type':_0x15507f[_0x10a460][0x0][_0xa186('0x11')],'app':_0xa186('0x12'),'appdata':_0xa186('0x25'),'context':_0x15507f[_0x10a460][0x0]['context'],'exten':_0x15507f[_0x10a460][0x0]['exten'],'priority':_0x286821[_0xa186('0x16')]++,'VoiceExtensionId':_0x15507f[_0x10a460][0x0]['VoiceExtensionId']});_0x286821[_0xa186('0xe')][_0xa186('0x10')]({'type':_0x15507f[_0x10a460][0x0][_0xa186('0x11')],'app':'Set','appdata':_0xa186('0x26')+_0x286821['extension'][_0xa186('0x24')]||'wav','context':_0x15507f[_0x10a460][0x0][_0xa186('0x15')],'exten':_0x15507f[_0x10a460][0x0][_0xa186('0x8')],'priority':_0x286821[_0xa186('0x16')]++,'VoiceExtensionId':_0x15507f[_0x10a460][0x0]['VoiceExtensionId']});}}_0x286821[_0xa186('0xe')]['push']({'type':_0x15507f[_0x10a460][0x0][_0xa186('0x11')],'app':_0xa186('0x12'),'appdata':_0xa186('0x27'),'context':_0x15507f[_0x10a460][0x0][_0xa186('0x15')],'exten':_0x15507f[_0x10a460][0x0][_0xa186('0x8')],'priority':_0x286821[_0xa186('0x16')]++,'VoiceExtensionId':_0x15507f[_0x10a460][0x0]['VoiceExtensionId']});_0x286821[_0xa186('0xe')][_0xa186('0x10')]({'type':_0x15507f[_0x10a460][0x0]['type'],'app':_0xa186('0x12'),'appdata':_0xa186('0x28'),'context':_0x15507f[_0x10a460][0x0][_0xa186('0x15')],'exten':_0x15507f[_0x10a460][0x0]['exten'],'priority':_0x286821[_0xa186('0x16')]++,'VoiceExtensionId':_0x15507f[_0x10a460][0x0][_0xa186('0x19')]});_0x286821['extensions']['push']({'type':_0x15507f[_0x10a460][0x0][_0xa186('0x11')],'app':'Set','appdata':_0xa186('0x29'),'context':_0x15507f[_0x10a460][0x0][_0xa186('0x15')],'exten':_0x15507f[_0x10a460][0x0]['exten'],'priority':_0x286821[_0xa186('0x16')]++,'VoiceExtensionId':_0x15507f[_0x10a460][0x0][_0xa186('0x19')]});for(var _0x540880=0x0,_0x390087=0x0;_0x540880<_0x15507f[_0x10a460][_0xa186('0x2a')];_0x540880+=0x1,_0x390087=0x0){var _0x386ac9=_0x15507f[_0x10a460][_0x540880];if(_0x386ac9[_0xa186('0x11')]){_0x386ac9[_0xa186('0x11')]=_0x386ac9[_0xa186('0x11')]['toLowerCase']();}var _0x3b672b=[];var _0xeeaaa5=[];delete _0x386ac9['id'];delete _0x386ac9[_0xa186('0x2b')];delete _0x386ac9[_0xa186('0x2c')];var _0x5ec404=_0x386ac9[_0xa186('0x2d')]!==_0xa186('0x2e')?[_0x386ac9['interval']]:_0x386ac9[_0xa186('0x7')]?_[_0xa186('0x2f')](_['filter'](_0x286821[_0xa186('0x4')],{'IntervalId':_0x386ac9[_0xa186('0x7')]}),'interval'):[];if(_0x386ac9[_0xa186('0xd')](_0xa186('0x30'))){if(_0x386ac9[_0xa186('0x30')]&&_0x386ac9[_0xa186('0x30')]!=='--'){_0x3b672b[_0xa186('0x10')]({'type':_0x386ac9[_0xa186('0x11')],'app':_0xa186('0x12'),'appdata':_0xa186('0x31')+_0x386ac9[_0xa186('0x30')],'context':_0x386ac9[_0xa186('0x15')],'exten':_0x386ac9[_0xa186('0x8')],'priority':_0x5ec404[_0xa186('0x2a')]+_0x286821[_0xa186('0x16')]+_0x390087++,'VoiceExtensionId':_0x386ac9[_0xa186('0x19')]});}}if(_0x386ac9[_0xa186('0x11')]===_0xa186('0x1a')&&_0x386ac9[_0xa186('0xd')](_0xa186('0x32'))){if(_0x386ac9[_0xa186('0x32')]){_0x3b672b[_0xa186('0x10')]({'type':_0x386ac9[_0xa186('0x11')],'app':_0xa186('0x1f'),'appdata':_0xa186('0x33')+_0x386ac9['callerID']+')','context':_0x386ac9[_0xa186('0x15')],'exten':_0x386ac9[_0xa186('0x8')],'priority':_0x5ec404[_0xa186('0x2a')]+_0x286821[_0xa186('0x16')]+_0x390087++,'VoiceExtensionId':_0x386ac9[_0xa186('0x19')]});}else{_0x3b672b[_0xa186('0x10')]({'type':_0x386ac9['type'],'app':'ExecIf','appdata':_0xa186('0x34'),'context':_0x386ac9[_0xa186('0x15')],'exten':_0x386ac9[_0xa186('0x8')],'priority':_0x5ec404[_0xa186('0x2a')]+_0x286821[_0xa186('0x16')]+_0x390087++,'VoiceExtensionId':_0x386ac9['VoiceExtensionId']});}}if(_0x386ac9[_0xa186('0xd')](_0xa186('0x35'))){if(_0x49f25a[_0xa186('0x36')](_0x386ac9['app'][_0xa186('0x37')]())>=0x0&&_0x386ac9[_0xa186('0x38')]!==_0xa186('0x39')){if(_0x386ac9[_0xa186('0x35')]){_0x3b672b[_0xa186('0x10')]({'type':_0x386ac9[_0xa186('0x11')],'app':_0xa186('0x1f'),'appdata':_0xa186('0x3a'),'context':_0x386ac9[_0xa186('0x15')],'exten':_0x386ac9[_0xa186('0x8')],'priority':_0x5ec404[_0xa186('0x2a')]+_0x286821[_0xa186('0x16')]+_0x390087++,'VoiceExtensionId':_0x386ac9['VoiceExtensionId']});_0x3b672b[_0xa186('0x10')]({'type':_0x386ac9[_0xa186('0x11')],'app':_0xa186('0x12'),'appdata':_0xa186('0x3b'),'context':_0x386ac9[_0xa186('0x15')],'exten':_0x386ac9[_0xa186('0x8')],'priority':_0x5ec404[_0xa186('0x2a')]+_0x286821[_0xa186('0x16')]+_0x390087++,'VoiceExtensionId':_0x386ac9[_0xa186('0x19')]});}else{_0x3b672b['push']({'type':_0x386ac9[_0xa186('0x11')],'app':_0xa186('0x1f'),'appdata':_0xa186('0x3c'),'context':_0x386ac9['context'],'exten':_0x386ac9[_0xa186('0x8')],'priority':_0x5ec404[_0xa186('0x2a')]+_0x286821[_0xa186('0x16')]+_0x390087++,'VoiceExtensionId':_0x386ac9[_0xa186('0x19')]});_0x3b672b['push']({'type':_0x386ac9['type'],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x386ac9['context'],'exten':_0x386ac9[_0xa186('0x8')],'priority':_0x5ec404[_0xa186('0x2a')]+_0x286821[_0xa186('0x16')]+_0x390087++,'VoiceExtensionId':_0x386ac9[_0xa186('0x19')]});}}}for(var _0x7d113b=0x0;_0x7d113b<_0x5ec404[_0xa186('0x2a')];_0x7d113b+=0x1){var _0x1c7e9a=_0x286821[_0xa186('0x16')]+_0x5ec404[_0xa186('0x2a')];var _0x54d5a3=_0x7d113b===_0x5ec404['length']-0x1?_0x286821['priority']+_0x3b672b[_0xa186('0x2a')]+_0xeeaaa5[_0xa186('0x2a')]+0x2:_0x286821[_0xa186('0x16')]+_0x7d113b+0x1;_0x3b672b[_0xa186('0x3d')](_0x7d113b,0x0,{'type':_0x386ac9['type'],'app':_0xa186('0x3e'),'appdata':_0x5ec404[_0x7d113b]+'?'+_0x386ac9[_0xa186('0x15')]+',${EXTEN},'+_0x1c7e9a+':'+_0x386ac9[_0xa186('0x15')]+',${EXTEN},'+_0x54d5a3,'exten':_0x386ac9['exten'],'context':_0x386ac9['context'],'priority':_0x286821[_0xa186('0x16')]+_0x7d113b,'VoiceExtensionId':_0x15507f[_0x10a460][0x0][_0xa186('0x19')]});}_0x386ac9[_0xa186('0x16')]=_0x3b672b['length']?_['last'](_0x3b672b)[_0xa186('0x16')]+0x1:_0x286821[_0xa186('0x16')];_0x286821[_0xa186('0x16')]=(_0xeeaaa5[_0xa186('0x2a')]?_[_0xa186('0x3f')](_0xeeaaa5)[_0xa186('0x16')]:_0x386ac9['priority'])+0x1;_0x286821[_0xa186('0xe')]=_[_0xa186('0x40')](_0x286821[_0xa186('0xe')],_0x3b672b,[_0x386ac9],_0xeeaaa5);}_0x286821[_0xa186('0xe')]['push']({'type':_0x15507f[_0x10a460][0x0][_0xa186('0x11')],'app':_0xa186('0x41'),'exten':_0x15507f[_0x10a460][0x0][_0xa186('0x8')],'context':_0x15507f[_0x10a460][0x0][_0xa186('0x15')],'priority':_0x286821[_0xa186('0x16')],'VoiceExtensionId':_0x15507f[_0x10a460][0x0][_0xa186('0x19')]});_0x54f7cc[_0xa186('0x10')](_0x15507f[_0x10a460][0x0]['VoiceExtensionId']);_0x125610=_[_0xa186('0x40')](_0x125610,_0x286821[_0xa186('0xe')]);}}return _0x159623['transaction'](function(_0x1e2834){return _0x159623['models'][_0xa186('0x42')][_0xa186('0x43')]({'where':{'VoiceExtensionId':{'$in':_0x54f7cc}},'transaction':_0x1e2834})[_0xa186('0x3')](function(_0x521b5d){return _0x159623[_0xa186('0x5')][_0xa186('0x42')][_0xa186('0x44')](_['sortBy'](_0x125610,_0xa186('0x16')),{'transaction':_0x1e2834});});});})[_0xa186('0x45')](function(_0x2c59f2){console['error'](_0x2c59f2);});}exports[_0xa186('0x46')]=rewrite;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd1dd=['push','pick','catch','Error\x20while\x20creating\x20contact:\x20','cmContact','checkHopper','inspect','insert','into','cm_hopper','fromQuery','scheduledAt','ListId','updatedAt','field','NOW()','toString','createdAt','from','cm_contacts','where','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','select','ContactId','calleridnum','cm_hopper_final','\x20=\x20?','id\x20IN\x20?','str','cm_hopper_black','deletedAt\x20IS\x20NULL','VoiceQueue','findAll','outbound','dialCheckDuplicateType','Lists','get','sequelize','query','VoiceQueueId','onlyIfOpen','all','CmList','Campaign','always','CampaignId','BlackLists','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','emit','resume','resolve','contact:csv_','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','stringify','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','createReadStream','parse','duplicate','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash','squel','papaparse','ioredis','../../../config/environment','../../../config/logger','api','defaults','redis','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','null','undefined','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','contact','index','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','map','message','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','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!','find','Duplicate\x20Contact','CmContact','create','keys','then'];(function(_0xdfbfdf,_0x18da13){var _0x1b814d=function(_0x19b434){while(--_0x19b434){_0xdfbfdf['push'](_0xdfbfdf['shift']());}};_0x1b814d(++_0x18da13);}(_0xd1dd,0xb8));var _0xdd1d=function(_0x318c14,_0x26c796){_0x318c14=_0x318c14-0x0;var _0x38e489=_0xd1dd[_0x318c14];return _0x38e489;};'use strict';var BPromise=require(_0xdd1d('0x0'));var util=require(_0xdd1d('0x1'));var _=require(_0xdd1d('0x2'));var fs=require('fs');var squel=require(_0xdd1d('0x3'));var Papa=require(_0xdd1d('0x4'));var Redis=require(_0xdd1d('0x5'));var db=require('../../../mysqldb')['db'];var config=require(_0xdd1d('0x6'));var logger=require(_0xdd1d('0x7'))(_0xdd1d('0x8'));config['redis']=_[_0xdd1d('0x9')](config[_0xdd1d('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0xdd1d('0xb'))(new Redis(config[_0xdd1d('0xa')]));require(_0xdd1d('0xc'))[_0xdd1d('0xd')](socket);try{if(!process['argv'][0x2]||process[_0xdd1d('0xe')][0x2]==='undefined'||process['argv'][0x2]===_0xdd1d('0xf')){throw new Error('Missing\x20filepath\x20parameter!');}var FILEPATH=process[_0xdd1d('0xe')][0x2];if(!process[_0xdd1d('0xe')][0x3]||process[_0xdd1d('0xe')][0x3]===_0xdd1d('0x10')||process[_0xdd1d('0xe')][0x3]===_0xdd1d('0xf')||!process['argv'][0x4]||process[_0xdd1d('0xe')][0x4]===_0xdd1d('0x10')||process[_0xdd1d('0xe')][0x4]===_0xdd1d('0xf')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0xdd1d('0x11')](process[_0xdd1d('0xe')][0x3]['split'](','),process[_0xdd1d('0xe')][0x4][_0xdd1d('0x12')](','));if(!process[_0xdd1d('0xe')][0x5]||process['argv'][0x5]===_0xdd1d('0x10')||process[_0xdd1d('0xe')][0x5]===_0xdd1d('0xf')){throw new Error(_0xdd1d('0x13'));}var LISTID=process[_0xdd1d('0xe')][0x5];var COMPANYID=process[_0xdd1d('0xe')][0x6]&&process[_0xdd1d('0xe')][0x6]!==_0xdd1d('0x10')&&process['argv'][0x6]!==_0xdd1d('0xf')?process[_0xdd1d('0xe')][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process['argv'][0x7]!==_0xdd1d('0x10')&&process['argv'][0x7]!=='null'?process['argv'][0x7]:null;if(!process[_0xdd1d('0xe')][0x8]||process[_0xdd1d('0xe')][0x8]===_0xdd1d('0x10')||process[_0xdd1d('0xe')][0x8]==='null'){throw new Error(_0xdd1d('0x14'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0xb3d4ba){logger[_0xdd1d('0x15')](_0xb3d4ba);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(_0x45701b,_0x18c4e8,_0x541934,_0x57be1e){var _0x2089a3={'message':_0x18c4e8};_0x2089a3[_0x45701b]=!![];if(_0x541934){_0x2089a3[_0xdd1d('0x16')]=_0x541934;}if(_0x57be1e){_0x2089a3[_0xdd1d('0x17')]=_0x57be1e;}return _0x2089a3;}function isEmail(_0x3ccf97){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'](_0x3ccf97);}function checkRow(_0x39bae1,_0x5638c8,_0x32d2b7){return new BPromise(function(_0x34b8f7,_0x533dbf){if(_[_0xdd1d('0x18')](_0x39bae1)){return _0x533dbf(handleCheckRowError(_0xdd1d('0x15'),_0xdd1d('0x19'),null,_0x32d2b7));}if(_0x39bae1[_0xdd1d('0x1a')]&&_0x39bae1[_0xdd1d('0x1a')][_0xdd1d('0x1b')]){var _0x4a2f12=_[_0xdd1d('0x1c')](_0x39bae1[_0xdd1d('0x1a')],_0xdd1d('0x1d'))['join'](';');return _0x533dbf(handleCheckRowError(_0xdd1d('0x15'),_0x4a2f12,null,_0x32d2b7));}var _0x1576b4={};for(var _0xc3c10b in FIELDS){if(FIELDS[_0xdd1d('0x1e')](_0xc3c10b)&&FIELDS[_0xc3c10b]){_0x1576b4[_0xc3c10b]=_0x39bae1['data'][0x0][FIELDS[_0xc3c10b]]||_0x39bae1[_0xdd1d('0x1f')][0x0]['\ufeff'+FIELDS[_0xc3c10b]];}}if(!_0x1576b4[_0xdd1d('0x20')]){return _0x533dbf(handleCheckRowError(_0xdd1d('0x15'),_0xdd1d('0x21'),null,_0x32d2b7));}if(!_0x1576b4[_0xdd1d('0x22')]){return _0x533dbf(handleCheckRowError(_0xdd1d('0x15'),_0xdd1d('0x23'),null,_0x32d2b7));}if(_0x1576b4[_0xdd1d('0x24')]){var _0x1ac293=moment(_0x1576b4['birthDate'],_0xdd1d('0x25'));if(!_0x1ac293[_0xdd1d('0x26')]()){return _0x533dbf(handleCheckRowError('error',_0xdd1d('0x27'),null,_0x32d2b7));}}if(_0x1576b4['email']){if(!isEmail(_0x1576b4[_0xdd1d('0x28')])){return _0x533dbf(handleCheckRowError(_0xdd1d('0x15'),_0xdd1d('0x29'),null,_0x32d2b7));}}_0x1576b4['ListId']=LISTID;_0x1576b4['CompanyId']=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES['length']&&_0x5638c8){var _0x3836b7={};for(var _0x3d8c4b=0x0,_0x6736e8=DUPLICATES['length'];_0x3d8c4b<_0x6736e8;_0x3d8c4b+=0x1){_0x3836b7[DUPLICATES[_0x3d8c4b]]=_0x1576b4[DUPLICATES[_0x3d8c4b]];}var _0x27c0e0=_[_0xdd1d('0x2a')](_0x5638c8,_0x3836b7);if(_0x27c0e0){return _0x533dbf(handleCheckRowError('duplicate',_0xdd1d('0x2b'),_0x27c0e0,_0x32d2b7));}}return db[_0xdd1d('0x2c')][_0xdd1d('0x2d')](_0x1576b4,{'raw':!![],'hooks':![],'fields':_[_0xdd1d('0x2e')](_0x1576b4)})[_0xdd1d('0x2f')](function(_0x260a04){if(DUPLICATES&&DUPLICATES[_0xdd1d('0x1b')]&&_0x5638c8){_0x5638c8[_0xdd1d('0x30')](_[_0xdd1d('0x31')](_0x1576b4,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x260a04['id'];return _0x34b8f7();})[_0xdd1d('0x32')](function(_0x4be2b1){return _0x533dbf(handleCheckRowError(_0xdd1d('0x15'),_0xdd1d('0x33')+(_0x4be2b1[_0xdd1d('0x1d')]||JSON['stringify'](_0x4be2b1)),null,_0x32d2b7));});});}function checkHopper(){function _0x1d74ce(){return function(_0xa00c1f){logger['error'](_0xdd1d('0x34'),_0xdd1d('0x35'),util[_0xdd1d('0x36')](_0xa00c1f,{'showHidden':![],'depth':null}));};}var _0x6eb269=function(_0x2ea892,_0x38273d){var _0x2e57a0=squel[_0xdd1d('0x37')]()[_0xdd1d('0x38')](_0xdd1d('0x39'))[_0xdd1d('0x3a')]([_0xdd1d('0x22'),_0xdd1d('0x3b'),'ContactId',_0xdd1d('0x3c'),_0x38273d,'createdAt',_0xdd1d('0x3d')],squel['select']()[_0xdd1d('0x3e')](_0xdd1d('0x22'),_0xdd1d('0x22'))[_0xdd1d('0x3e')](_0xdd1d('0x3f'),_0xdd1d('0x3b'))[_0xdd1d('0x3e')]('id','ContactId')[_0xdd1d('0x3e')](LISTID[_0xdd1d('0x40')](),_0xdd1d('0x3c'))[_0xdd1d('0x3e')](_0x2ea892['id'][_0xdd1d('0x40')](),_0x38273d)[_0xdd1d('0x3e')](_0xdd1d('0x3f'),_0xdd1d('0x41'))['field'](_0xdd1d('0x3f'),'updatedAt')[_0xdd1d('0x42')](_0xdd1d('0x43'))[_0xdd1d('0x44')]('deletedAt\x20IS\x20NULL')[_0xdd1d('0x44')](_0xdd1d('0x45'),LISTID[_0xdd1d('0x40')]())['where'](_0xdd1d('0x46'))['where'](_0xdd1d('0x47'),squel[_0xdd1d('0x48')]()[_0xdd1d('0x3e')](_0xdd1d('0x22'))[_0xdd1d('0x42')]('cm_hopper')[_0xdd1d('0x44')](_0x38273d+'\x20=\x20?',_0x2ea892['id'][_0xdd1d('0x40')]())))[_0xdd1d('0x40')]();return _0x2e57a0;};var _0x3b4120=function(_0x88c4fd,_0x3a3927){var _0x42e44c=squel[_0xdd1d('0x37')]()['into'](_0xdd1d('0x39'))[_0xdd1d('0x3a')]([_0xdd1d('0x22'),'scheduledAt',_0xdd1d('0x49'),_0xdd1d('0x3c'),_0x3a3927,'createdAt',_0xdd1d('0x3d')],squel[_0xdd1d('0x48')]()['field'](_0xdd1d('0x22'),_0xdd1d('0x22'))[_0xdd1d('0x3e')](_0xdd1d('0x3f'),_0xdd1d('0x3b'))[_0xdd1d('0x3e')]('id',_0xdd1d('0x49'))['field'](LISTID[_0xdd1d('0x40')](),_0xdd1d('0x3c'))[_0xdd1d('0x3e')](_0x88c4fd['id']['toString'](),_0x3a3927)[_0xdd1d('0x3e')](_0xdd1d('0x3f'),'createdAt')[_0xdd1d('0x3e')](_0xdd1d('0x3f'),_0xdd1d('0x3d'))[_0xdd1d('0x42')](_0xdd1d('0x43'))[_0xdd1d('0x44')]('deletedAt\x20IS\x20NULL')[_0xdd1d('0x44')]('ListId\x20=\x20?',LISTID[_0xdd1d('0x40')]())[_0xdd1d('0x44')]('id\x20IN\x20?',squel['str'](hopperContacts))['where'](_0xdd1d('0x46'))['where'](_0xdd1d('0x47'),squel[_0xdd1d('0x48')]()[_0xdd1d('0x3e')](_0xdd1d('0x4a'))[_0xdd1d('0x42')](_0xdd1d('0x4b'))[_0xdd1d('0x44')](_0x3a3927+_0xdd1d('0x4c'),_0x88c4fd['id'][_0xdd1d('0x40')]()))['where']('phone\x20NOT\x20IN\x20(?)',squel[_0xdd1d('0x48')]()[_0xdd1d('0x3e')]('phone')[_0xdd1d('0x42')](_0xdd1d('0x39'))[_0xdd1d('0x44')](_0x3a3927+_0xdd1d('0x4c'),_0x88c4fd['id'][_0xdd1d('0x40')]())))[_0xdd1d('0x40')]();return _0x42e44c;};function _0x2cfef6(_0xc4a23d,_0x4b0adb){var _0x4ec9f5=squel[_0xdd1d('0x37')]()['into'](_0xdd1d('0x39'))['fromQuery']([_0xdd1d('0x22'),_0xdd1d('0x3b'),'ContactId',_0xdd1d('0x3c'),_0x4b0adb,'createdAt',_0xdd1d('0x3d')],squel[_0xdd1d('0x48')]()[_0xdd1d('0x3e')](_0xdd1d('0x22'),_0xdd1d('0x22'))[_0xdd1d('0x3e')]('NOW()',_0xdd1d('0x3b'))[_0xdd1d('0x3e')]('id',_0xdd1d('0x49'))[_0xdd1d('0x3e')](LISTID[_0xdd1d('0x40')](),_0xdd1d('0x3c'))[_0xdd1d('0x3e')](_0xc4a23d['id'][_0xdd1d('0x40')](),_0x4b0adb)[_0xdd1d('0x3e')](_0xdd1d('0x3f'),_0xdd1d('0x41'))['field'](_0xdd1d('0x3f'),_0xdd1d('0x3d'))[_0xdd1d('0x42')]('cm_contacts')[_0xdd1d('0x44')]('deletedAt\x20IS\x20NULL')[_0xdd1d('0x44')](_0xdd1d('0x45'),LISTID[_0xdd1d('0x40')]())[_0xdd1d('0x44')](_0xdd1d('0x4d'),squel[_0xdd1d('0x4e')](hopperContacts))[_0xdd1d('0x44')](_0xdd1d('0x46')))[_0xdd1d('0x40')]();return _0x4ec9f5;}function _0x549968(_0x2f605d,_0x5970d9){var _0x53838b=squel[_0xdd1d('0x37')]()[_0xdd1d('0x38')](_0xdd1d('0x4f'))[_0xdd1d('0x3a')]([_0xdd1d('0x22'),_0xdd1d('0x49'),_0xdd1d('0x3c'),_0x5970d9,_0xdd1d('0x41'),_0xdd1d('0x3d')],squel[_0xdd1d('0x48')]()[_0xdd1d('0x3e')](_0xdd1d('0x22'),_0xdd1d('0x22'))['field']('id',_0xdd1d('0x49'))[_0xdd1d('0x3e')](LISTID[_0xdd1d('0x40')](),_0xdd1d('0x3c'))[_0xdd1d('0x3e')](_0x2f605d['id']['toString'](),_0x5970d9)[_0xdd1d('0x3e')](_0xdd1d('0x3f'),_0xdd1d('0x41'))['field'](_0xdd1d('0x3f'),_0xdd1d('0x3d'))['from'](_0xdd1d('0x43'))[_0xdd1d('0x44')](_0xdd1d('0x50'))[_0xdd1d('0x44')](_0xdd1d('0x45'),LISTID[_0xdd1d('0x40')]())[_0xdd1d('0x44')](_0xdd1d('0x4d'),squel[_0xdd1d('0x4e')](hopperContacts))[_0xdd1d('0x44')](_0xdd1d('0x46')))[_0xdd1d('0x40')]();return _0x53838b;}return db[_0xdd1d('0x51')][_0xdd1d('0x52')]({'where':{'type':_0xdd1d('0x53')},'attributes':['id',_0xdd1d('0x54')],'include':[{'model':db['CmList'],'as':_0xdd1d('0x55'),'where':{'id':LISTID}}]})[_0xdd1d('0x2f')](function(_0x34f5b3){var _0x231836=[];if(_0x34f5b3){var _0x51417e;for(var _0x4bee93=0x0,_0x54b678;_0x4bee93<_0x34f5b3['length'];_0x4bee93+=0x1){_0x54b678=_0x34f5b3[_0x4bee93][_0xdd1d('0x56')]({'plain':!![]});switch(_0x54b678['dialCheckDuplicateType']){case'always':_0x231836[_0xdd1d('0x30')](db[_0xdd1d('0x57')][_0xdd1d('0x58')](_0x3b4120(_0x54b678,_0xdd1d('0x59')))['then'](function(){})['catch'](_0x1d74ce()));break;case _0xdd1d('0x5a'):_0x231836[_0xdd1d('0x30')](db[_0xdd1d('0x57')][_0xdd1d('0x58')](_0x6eb269(_0x54b678,_0xdd1d('0x59')))['then'](function(){})[_0xdd1d('0x32')](_0x1d74ce()));break;default:_0x231836['push'](db[_0xdd1d('0x57')][_0xdd1d('0x58')](_0x2cfef6(_0x54b678,_0xdd1d('0x59')))[_0xdd1d('0x2f')](function(){})[_0xdd1d('0x32')](_0x1d74ce()));}}}return _0x231836;})[_0xdd1d('0x5b')]()[_0xdd1d('0x2f')](function(){return db[_0xdd1d('0x51')][_0xdd1d('0x52')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':db[_0xdd1d('0x5c')],'as':'BlackLists','where':{'id':LISTID}}]})[_0xdd1d('0x2f')](function(_0x3912d4){var _0x3cd512=[];if(_0x3912d4){var _0x55bb5f;for(var _0x269b9d=0x0,_0x487caf;_0x269b9d<_0x3912d4['length'];_0x269b9d+=0x1){_0x487caf=_0x3912d4[_0x269b9d][_0xdd1d('0x56')]({'plain':!![]});_0x3cd512[_0xdd1d('0x30')](db[_0xdd1d('0x57')][_0xdd1d('0x58')](_0x549968(_0x487caf,_0xdd1d('0x59')))[_0xdd1d('0x2f')](function(){})[_0xdd1d('0x32')](_0x1d74ce()));}}return _0x3cd512;})['all']();})[_0xdd1d('0x2f')](function(){return db[_0xdd1d('0x5d')][_0xdd1d('0x52')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0xdd1d('0x5c')],'as':_0xdd1d('0x55'),'where':{'id':LISTID}}]})[_0xdd1d('0x2f')](function(_0x52be04){var _0xdf23e=[];if(_0x52be04){for(var _0x3aa872=0x0,_0x508ed7;_0x3aa872<_0x52be04['length'];_0x3aa872+=0x1){_0x508ed7=_0x52be04[_0x3aa872][_0xdd1d('0x56')]({'plain':!![]});switch(_0x508ed7[_0xdd1d('0x54')]){case _0xdd1d('0x5e'):_0xdf23e['push'](db[_0xdd1d('0x57')]['query'](_0x3b4120(_0x508ed7,'CampaignId'))['then'](function(){})[_0xdd1d('0x32')](_0x1d74ce()));break;case'onlyIfOpen':_0xdf23e['push'](db[_0xdd1d('0x57')][_0xdd1d('0x58')](_0x6eb269(_0x508ed7,_0xdd1d('0x5f')))['then'](function(){})[_0xdd1d('0x32')](_0x1d74ce()));break;default:_0xdf23e[_0xdd1d('0x30')](db[_0xdd1d('0x57')][_0xdd1d('0x58')](_0x2cfef6(_0x508ed7,_0xdd1d('0x5f')))['then'](function(){})['catch'](_0x1d74ce()));}}}return _0xdf23e;})[_0xdd1d('0x5b')]();})['then'](function(){return db[_0xdd1d('0x5d')]['findAll']({'attributes':['id'],'include':[{'model':db[_0xdd1d('0x5c')],'as':_0xdd1d('0x60'),'where':{'id':LISTID}}]})[_0xdd1d('0x2f')](function(_0x4db99b){var _0x409306=[];if(_0x4db99b){for(var _0x3ba130=0x0,_0x4d45d0;_0x3ba130<_0x4db99b[_0xdd1d('0x1b')];_0x3ba130+=0x1){_0x4d45d0=_0x4db99b[_0x3ba130][_0xdd1d('0x56')]({'plain':!![]});_0x409306[_0xdd1d('0x30')](db[_0xdd1d('0x57')][_0xdd1d('0x58')](_0x549968(_0x4d45d0,_0xdd1d('0x5f')))[_0xdd1d('0x2f')](function(){})[_0xdd1d('0x32')](_0x1d74ce()));}}return _0x409306;})[_0xdd1d('0x5b')]();})[_0xdd1d('0x32')](function(_0x2a21e0){logger['error'](_0xdd1d('0x61'),_0xdd1d('0x62'),_0x2a21e0[_0xdd1d('0x1d')]);});}var processPromises=function(_0x48c0fe){return BPromise['all'](promises)['then'](function(_0x4cea99){})[_0xdd1d('0x32')](function(_0x1c7cde){logger[_0xdd1d('0x15')](_0xdd1d('0x63'),JSON['stringify'](_0x1c7cde));})['finally'](function(){socket[_0xdd1d('0x64')]('contact:csv_'+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x48c0fe){return _0x48c0fe[_0xdd1d('0x65')]();}});};var endCsv=function(){return BPromise[_0xdd1d('0x66')]()['then'](function(){if(hopperContacts){return checkHopper();}})[_0xdd1d('0x2f')](function(){socket[_0xdd1d('0x64')](_0xdd1d('0x67')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0xdd1d('0x68')](FILEPATH);}catch(_0x1671f5){logger[_0xdd1d('0x15')](_0xdd1d('0x69'),JSON[_0xdd1d('0x6a')](_0x1671f5));}finally{process[_0xdd1d('0x6b')](0x0);}});};process['on'](_0xdd1d('0x6c'),function(){logger[_0xdd1d('0x6d')](_0xdd1d('0x6e'));endCsv();});function main(){return BPromise[_0xdd1d('0x66')]()['then'](function(){if(DUPLICATES){DUPLICATES=DUPLICATES['split'](',');return db[_0xdd1d('0x2c')][_0xdd1d('0x52')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0x101f43){var _0x2ef3ba=fs[_0xdd1d('0x6f')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xdd1d('0x70')](_0x2ef3ba,{'header':!![],'skipEmptyLines':!![],'step':function(_0x5a21cf,_0x187dbe){total+=0x1;var _0x3510fd=total;promises[_0xdd1d('0x30')](checkRow(_0x5a21cf,_0x101f43,_0x3510fd)[_0xdd1d('0x2f')](function(){success+=0x1;})['catch'](function(_0x3eaca8){if(_0x3eaca8['error']){errors+=0x1;delete _0x3eaca8[_0xdd1d('0x15')];}else if(_0x3eaca8[_0xdd1d('0x71')]){duplicates+=0x1;delete _0x3eaca8[_0xdd1d('0x71')];}rows[_0xdd1d('0x30')](_0x3eaca8);}));if(total%0xc8===0x0){_0x187dbe['pause']();return processPromises(_0x187dbe);}},'complete':function(){return processPromises()['then'](function(){logger['info']('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x27a2d6,_0x114fa9){logger[_0xdd1d('0x6d')](_0xdd1d('0x72'),JSON[_0xdd1d('0x6a')](_0x27a2d6));endCsv();}});})[_0xdd1d('0x32')](function(_0x23af69){logger[_0xdd1d('0x15')](_0xdd1d('0x73'),JSON[_0xdd1d('0x6a')](_0x23af69));});}main();
\ No newline at end of file
+var _0xa5cd=['birthDate','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','length','duplicate','Duplicate\x20Contact','CmContact','create','keys','then','push','Error\x20while\x20creating\x20contact:\x20','cmContact','inspect','insert','into','fromQuery','scheduledAt','ContactId','createdAt','field','NOW()','toString','from','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','where','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','cm_hopper','\x20=\x20?','phone','updatedAt','select','id\x20IN\x20?','calleridnum','cm_hopper_final','str','cm_hopper_black','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','always','sequelize','VoiceQueueId','catch','query','all','BlackLists','get','Campaign','Lists','CampaignId','onlyIfOpen','cmContact,\x20%s,\x20%s','Error\x20processing\x20rows\x20block:','emit','contact:csv_','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','stringify','SIGINT','info','resolve','parse','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','util','lodash','squel','papaparse','ioredis','../../../config/environment','../../../config/logger','api','defaults','redis','localhost','../../../api/cmContact/cmContact.socket','register','argv','null','undefined','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','contact','index','test','isNil','error','errors','map','message','join','firstName\x20not\x20specified!','phone\x20not\x20specified!'];(function(_0x5c59b7,_0x6371bf){var _0x12f72a=function(_0x2c3f73){while(--_0x2c3f73){_0x5c59b7['push'](_0x5c59b7['shift']());}};_0x12f72a(++_0x6371bf);}(_0xa5cd,0x18c));var _0xda5c=function(_0x36eaaa,_0x326732){_0x36eaaa=_0x36eaaa-0x0;var _0x461349=_0xa5cd[_0x36eaaa];return _0x461349;};'use strict';var BPromise=require('bluebird');var util=require(_0xda5c('0x0'));var _=require(_0xda5c('0x1'));var fs=require('fs');var squel=require(_0xda5c('0x2'));var Papa=require(_0xda5c('0x3'));var Redis=require(_0xda5c('0x4'));var db=require('../../../mysqldb')['db'];var config=require(_0xda5c('0x5'));var logger=require(_0xda5c('0x6'))(_0xda5c('0x7'));config['redis']=_[_0xda5c('0x8')](config[_0xda5c('0x9')],{'host':_0xda5c('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xda5c('0xb'))[_0xda5c('0xc')](socket);try{if(!process[_0xda5c('0xd')][0x2]||process['argv'][0x2]==='undefined'||process[_0xda5c('0xd')][0x2]===_0xda5c('0xe')){throw new Error('Missing\x20filepath\x20parameter!');}var FILEPATH=process[_0xda5c('0xd')][0x2];if(!process[_0xda5c('0xd')][0x3]||process[_0xda5c('0xd')][0x3]===_0xda5c('0xf')||process[_0xda5c('0xd')][0x3]===_0xda5c('0xe')||!process[_0xda5c('0xd')][0x4]||process['argv'][0x4]===_0xda5c('0xf')||process['argv'][0x4]===_0xda5c('0xe')){throw new Error(_0xda5c('0x10'));}var FIELDS=_[_0xda5c('0x11')](process[_0xda5c('0xd')][0x3][_0xda5c('0x12')](','),process['argv'][0x4]['split'](','));if(!process['argv'][0x5]||process[_0xda5c('0xd')][0x5]===_0xda5c('0xf')||process[_0xda5c('0xd')][0x5]==='null'){throw new Error(_0xda5c('0x13'));}var LISTID=process[_0xda5c('0xd')][0x5];var COMPANYID=process[_0xda5c('0xd')][0x6]&&process[_0xda5c('0xd')][0x6]!=='undefined'&&process[_0xda5c('0xd')][0x6]!==_0xda5c('0xe')?process[_0xda5c('0xd')][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process['argv'][0x7]!==_0xda5c('0xf')&&process['argv'][0x7]!=='null'?process[_0xda5c('0xd')][0x7]:null;if(!process[_0xda5c('0xd')][0x8]||process[_0xda5c('0xd')][0x8]===_0xda5c('0xf')||process[_0xda5c('0xd')][0x8]===_0xda5c('0xe')){throw new Error(_0xda5c('0x14'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x4899b6){logger['error'](_0x4899b6);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(_0x4af0ed,_0x412a16,_0x31c005,_0xb6cab1){var _0x20ba95={'message':_0x412a16};_0x20ba95[_0x4af0ed]=!![];if(_0x31c005){_0x20ba95[_0xda5c('0x15')]=_0x31c005;}if(_0xb6cab1){_0x20ba95[_0xda5c('0x16')]=_0xb6cab1;}return _0x20ba95;}function isEmail(_0x3dab6f){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))*$/[_0xda5c('0x17')](_0x3dab6f);}function checkRow(_0xb892dc,_0x456448,_0x1a44c4){return new BPromise(function(_0x57ccbf,_0x535ac4){if(_[_0xda5c('0x18')](_0xb892dc)){return _0x535ac4(handleCheckRowError(_0xda5c('0x19'),'The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!',null,_0x1a44c4));}if(_0xb892dc[_0xda5c('0x1a')]&&_0xb892dc['errors']['length']){var _0x458e76=_[_0xda5c('0x1b')](_0xb892dc['errors'],_0xda5c('0x1c'))[_0xda5c('0x1d')](';');return _0x535ac4(handleCheckRowError('error',_0x458e76,null,_0x1a44c4));}var _0xde683c={};for(var _0x10ca21 in FIELDS){if(FIELDS['hasOwnProperty'](_0x10ca21)&&FIELDS[_0x10ca21]){_0xde683c[_0x10ca21]=_0xb892dc['data'][0x0][FIELDS[_0x10ca21]]||_0xb892dc['data'][0x0]['\ufeff'+FIELDS[_0x10ca21]];}}if(!_0xde683c['firstName']){return _0x535ac4(handleCheckRowError(_0xda5c('0x19'),_0xda5c('0x1e'),null,_0x1a44c4));}if(!_0xde683c['phone']){return _0x535ac4(handleCheckRowError(_0xda5c('0x19'),_0xda5c('0x1f'),null,_0x1a44c4));}if(_0xde683c[_0xda5c('0x20')]){var _0x959349=moment(_0xde683c[_0xda5c('0x20')],'YYYY-MM-DD');if(!_0x959349[_0xda5c('0x21')]()){return _0x535ac4(handleCheckRowError(_0xda5c('0x19'),_0xda5c('0x22'),null,_0x1a44c4));}}if(_0xde683c[_0xda5c('0x23')]){if(!isEmail(_0xde683c['email'])){return _0x535ac4(handleCheckRowError(_0xda5c('0x19'),_0xda5c('0x24'),null,_0x1a44c4));}}_0xde683c[_0xda5c('0x25')]=LISTID;_0xde683c[_0xda5c('0x26')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0xda5c('0x27')]&&_0x456448){var _0x426fe0={};for(var _0x1ee523=0x0,_0x2f7f3a=DUPLICATES[_0xda5c('0x27')];_0x1ee523<_0x2f7f3a;_0x1ee523+=0x1){_0x426fe0[DUPLICATES[_0x1ee523]]=_0xde683c[DUPLICATES[_0x1ee523]];}var _0x222a37=_['find'](_0x456448,_0x426fe0);if(_0x222a37){return _0x535ac4(handleCheckRowError(_0xda5c('0x28'),_0xda5c('0x29'),_0x222a37,_0x1a44c4));}}return db[_0xda5c('0x2a')][_0xda5c('0x2b')](_0xde683c,{'raw':!![],'hooks':![],'fields':_[_0xda5c('0x2c')](_0xde683c)})[_0xda5c('0x2d')](function(_0x97d069){if(DUPLICATES&&DUPLICATES['length']&&_0x456448){_0x456448[_0xda5c('0x2e')](_['pick'](_0xde683c,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x97d069['id'];return _0x57ccbf();})['catch'](function(_0x4e05cb){return _0x535ac4(handleCheckRowError(_0xda5c('0x19'),_0xda5c('0x2f')+(_0x4e05cb[_0xda5c('0x1c')]||JSON['stringify'](_0x4e05cb)),null,_0x1a44c4));});});}function checkHopper(){function _0x45c936(){return function(_0x3ba979){logger[_0xda5c('0x19')](_0xda5c('0x30'),'checkHopper',util[_0xda5c('0x31')](_0x3ba979,{'showHidden':![],'depth':null}));};}var _0xe73792=function(_0x2f679c,_0x8b653){var _0x1ad0aa=squel[_0xda5c('0x32')]()[_0xda5c('0x33')]('cm_hopper')[_0xda5c('0x34')](['phone',_0xda5c('0x35'),_0xda5c('0x36'),_0xda5c('0x25'),_0x8b653,_0xda5c('0x37'),'updatedAt'],squel['select']()['field']('phone','phone')[_0xda5c('0x38')](_0xda5c('0x39'),'scheduledAt')[_0xda5c('0x38')]('id',_0xda5c('0x36'))[_0xda5c('0x38')](LISTID[_0xda5c('0x3a')](),_0xda5c('0x25'))[_0xda5c('0x38')](_0x2f679c['id'][_0xda5c('0x3a')](),_0x8b653)[_0xda5c('0x38')](_0xda5c('0x39'),_0xda5c('0x37'))['field'](_0xda5c('0x39'),'updatedAt')[_0xda5c('0x3b')](_0xda5c('0x3c'))['where'](_0xda5c('0x3d'))['where'](_0xda5c('0x3e'),LISTID[_0xda5c('0x3a')]())[_0xda5c('0x3f')](_0xda5c('0x40'))[_0xda5c('0x3f')](_0xda5c('0x41'),squel['select']()['field']('phone')['from'](_0xda5c('0x42'))[_0xda5c('0x3f')](_0x8b653+_0xda5c('0x43'),_0x2f679c['id'][_0xda5c('0x3a')]())))[_0xda5c('0x3a')]();return _0x1ad0aa;};var _0x36913a=function(_0x4648ba,_0x40f948){var _0x285d1c=squel['insert']()[_0xda5c('0x33')](_0xda5c('0x42'))[_0xda5c('0x34')]([_0xda5c('0x44'),_0xda5c('0x35'),'ContactId',_0xda5c('0x25'),_0x40f948,_0xda5c('0x37'),_0xda5c('0x45')],squel[_0xda5c('0x46')]()[_0xda5c('0x38')](_0xda5c('0x44'),_0xda5c('0x44'))[_0xda5c('0x38')](_0xda5c('0x39'),_0xda5c('0x35'))[_0xda5c('0x38')]('id',_0xda5c('0x36'))[_0xda5c('0x38')](LISTID[_0xda5c('0x3a')](),_0xda5c('0x25'))[_0xda5c('0x38')](_0x4648ba['id'][_0xda5c('0x3a')](),_0x40f948)[_0xda5c('0x38')](_0xda5c('0x39'),'createdAt')[_0xda5c('0x38')]('NOW()',_0xda5c('0x45'))[_0xda5c('0x3b')](_0xda5c('0x3c'))['where'](_0xda5c('0x3d'))[_0xda5c('0x3f')](_0xda5c('0x3e'),LISTID[_0xda5c('0x3a')]())['where'](_0xda5c('0x47'),squel['str'](hopperContacts))[_0xda5c('0x3f')](_0xda5c('0x40'))[_0xda5c('0x3f')]('phone\x20NOT\x20IN\x20(?)',squel[_0xda5c('0x46')]()[_0xda5c('0x38')](_0xda5c('0x48'))[_0xda5c('0x3b')](_0xda5c('0x49'))[_0xda5c('0x3f')](_0x40f948+_0xda5c('0x43'),_0x4648ba['id']['toString']()))[_0xda5c('0x3f')](_0xda5c('0x41'),squel[_0xda5c('0x46')]()[_0xda5c('0x38')](_0xda5c('0x44'))[_0xda5c('0x3b')](_0xda5c('0x42'))['where'](_0x40f948+_0xda5c('0x43'),_0x4648ba['id']['toString']())))[_0xda5c('0x3a')]();return _0x285d1c;};function _0x56c301(_0x261c97,_0x4d8585){var _0x9f622=squel['insert']()[_0xda5c('0x33')]('cm_hopper')[_0xda5c('0x34')](['phone',_0xda5c('0x35'),_0xda5c('0x36'),_0xda5c('0x25'),_0x4d8585,'createdAt',_0xda5c('0x45')],squel['select']()['field']('phone',_0xda5c('0x44'))[_0xda5c('0x38')]('NOW()',_0xda5c('0x35'))[_0xda5c('0x38')]('id',_0xda5c('0x36'))[_0xda5c('0x38')](LISTID[_0xda5c('0x3a')](),'ListId')[_0xda5c('0x38')](_0x261c97['id'][_0xda5c('0x3a')](),_0x4d8585)[_0xda5c('0x38')](_0xda5c('0x39'),_0xda5c('0x37'))[_0xda5c('0x38')](_0xda5c('0x39'),'updatedAt')[_0xda5c('0x3b')](_0xda5c('0x3c'))[_0xda5c('0x3f')]('deletedAt\x20IS\x20NULL')[_0xda5c('0x3f')](_0xda5c('0x3e'),LISTID[_0xda5c('0x3a')]())[_0xda5c('0x3f')]('id\x20IN\x20?',squel[_0xda5c('0x4a')](hopperContacts))[_0xda5c('0x3f')]('phone\x20IS\x20NOT\x20NULL'))[_0xda5c('0x3a')]();return _0x9f622;}function _0x59031b(_0x1e2de9,_0x1f9fc3){var _0x531d87=squel['insert']()[_0xda5c('0x33')](_0xda5c('0x4b'))['fromQuery'](['phone',_0xda5c('0x36'),_0xda5c('0x25'),_0x1f9fc3,_0xda5c('0x37'),_0xda5c('0x45')],squel[_0xda5c('0x46')]()['field']('phone','phone')['field']('id','ContactId')[_0xda5c('0x38')](LISTID[_0xda5c('0x3a')](),_0xda5c('0x25'))[_0xda5c('0x38')](_0x1e2de9['id'][_0xda5c('0x3a')](),_0x1f9fc3)['field'](_0xda5c('0x39'),_0xda5c('0x37'))[_0xda5c('0x38')](_0xda5c('0x39'),'updatedAt')[_0xda5c('0x3b')](_0xda5c('0x3c'))[_0xda5c('0x3f')](_0xda5c('0x3d'))[_0xda5c('0x3f')](_0xda5c('0x3e'),LISTID[_0xda5c('0x3a')]())[_0xda5c('0x3f')]('id\x20IN\x20?',squel['str'](hopperContacts))[_0xda5c('0x3f')](_0xda5c('0x40')))[_0xda5c('0x3a')]();return _0x531d87;}return db[_0xda5c('0x4c')][_0xda5c('0x4d')]({'where':{'type':_0xda5c('0x4e')},'attributes':['id',_0xda5c('0x4f')],'include':[{'model':db[_0xda5c('0x50')],'as':'Lists','where':{'id':LISTID}}]})['then'](function(_0x440064){var _0x2c4682=[];if(_0x440064){var _0x1206eb;for(var _0x13d22c=0x0,_0x2295fc;_0x13d22c<_0x440064[_0xda5c('0x27')];_0x13d22c+=0x1){_0x2295fc=_0x440064[_0x13d22c]['get']({'plain':!![]});switch(_0x2295fc[_0xda5c('0x4f')]){case _0xda5c('0x51'):_0x2c4682['push'](db[_0xda5c('0x52')]['query'](_0x36913a(_0x2295fc,_0xda5c('0x53')))[_0xda5c('0x2d')](function(){})[_0xda5c('0x54')](_0x45c936()));break;case'onlyIfOpen':_0x2c4682[_0xda5c('0x2e')](db[_0xda5c('0x52')]['query'](_0xe73792(_0x2295fc,'VoiceQueueId'))['then'](function(){})[_0xda5c('0x54')](_0x45c936()));break;default:_0x2c4682[_0xda5c('0x2e')](db[_0xda5c('0x52')][_0xda5c('0x55')](_0x56c301(_0x2295fc,_0xda5c('0x53')))[_0xda5c('0x2d')](function(){})[_0xda5c('0x54')](_0x45c936()));}}}return _0x2c4682;})[_0xda5c('0x56')]()['then'](function(){return db[_0xda5c('0x4c')]['findAll']({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':db[_0xda5c('0x50')],'as':_0xda5c('0x57'),'where':{'id':LISTID}}]})[_0xda5c('0x2d')](function(_0x3dde36){var _0xacd61=[];if(_0x3dde36){var _0x9b5102;for(var _0x36ed89=0x0,_0x268b89;_0x36ed89<_0x3dde36[_0xda5c('0x27')];_0x36ed89+=0x1){_0x268b89=_0x3dde36[_0x36ed89][_0xda5c('0x58')]({'plain':!![]});_0xacd61['push'](db['sequelize'][_0xda5c('0x55')](_0x59031b(_0x268b89,'VoiceQueueId'))['then'](function(){})[_0xda5c('0x54')](_0x45c936()));}}return _0xacd61;})['all']();})['then'](function(){return db[_0xda5c('0x59')][_0xda5c('0x4d')]({'attributes':['id',_0xda5c('0x4f')],'include':[{'model':db['CmList'],'as':_0xda5c('0x5a'),'where':{'id':LISTID}}]})['then'](function(_0x5bef9f){var _0x7d9030=[];if(_0x5bef9f){for(var _0x1075f7=0x0,_0x33d5cb;_0x1075f7<_0x5bef9f['length'];_0x1075f7+=0x1){_0x33d5cb=_0x5bef9f[_0x1075f7][_0xda5c('0x58')]({'plain':!![]});switch(_0x33d5cb['dialCheckDuplicateType']){case _0xda5c('0x51'):_0x7d9030[_0xda5c('0x2e')](db[_0xda5c('0x52')][_0xda5c('0x55')](_0x36913a(_0x33d5cb,_0xda5c('0x5b')))[_0xda5c('0x2d')](function(){})[_0xda5c('0x54')](_0x45c936()));break;case _0xda5c('0x5c'):_0x7d9030[_0xda5c('0x2e')](db[_0xda5c('0x52')][_0xda5c('0x55')](_0xe73792(_0x33d5cb,'CampaignId'))[_0xda5c('0x2d')](function(){})[_0xda5c('0x54')](_0x45c936()));break;default:_0x7d9030[_0xda5c('0x2e')](db[_0xda5c('0x52')][_0xda5c('0x55')](_0x56c301(_0x33d5cb,'CampaignId'))['then'](function(){})[_0xda5c('0x54')](_0x45c936()));}}}return _0x7d9030;})[_0xda5c('0x56')]();})[_0xda5c('0x2d')](function(){return db[_0xda5c('0x59')][_0xda5c('0x4d')]({'attributes':['id'],'include':[{'model':db[_0xda5c('0x50')],'as':_0xda5c('0x57'),'where':{'id':LISTID}}]})[_0xda5c('0x2d')](function(_0x58da0b){var _0x3b5a43=[];if(_0x58da0b){for(var _0x32d32b=0x0,_0x4c4480;_0x32d32b<_0x58da0b[_0xda5c('0x27')];_0x32d32b+=0x1){_0x4c4480=_0x58da0b[_0x32d32b][_0xda5c('0x58')]({'plain':!![]});_0x3b5a43['push'](db[_0xda5c('0x52')][_0xda5c('0x55')](_0x59031b(_0x4c4480,_0xda5c('0x5b')))['then'](function(){})[_0xda5c('0x54')](_0x45c936()));}}return _0x3b5a43;})[_0xda5c('0x56')]();})[_0xda5c('0x54')](function(_0x4a5d44){logger[_0xda5c('0x19')](_0xda5c('0x5d'),'generalCheckHopper',_0x4a5d44[_0xda5c('0x1c')]);});}var processPromises=function(_0x2666bf){return BPromise['all'](promises)[_0xda5c('0x2d')](function(_0x220408){})['catch'](function(_0x4f4ef4){logger[_0xda5c('0x19')](_0xda5c('0x5e'),JSON['stringify'](_0x4f4ef4));})['finally'](function(){socket[_0xda5c('0x5f')](_0xda5c('0x60')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x2666bf){return _0x2666bf['resume']();}});};var endCsv=function(){return BPromise['resolve']()['then'](function(){if(hopperContacts){return checkHopper();}})[_0xda5c('0x2d')](function(){socket[_0xda5c('0x5f')](_0xda5c('0x60')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0xda5c('0x61')](FILEPATH);}catch(_0x23a2e8){logger[_0xda5c('0x19')](_0xda5c('0x62'),JSON[_0xda5c('0x63')](_0x23a2e8));}finally{process['exit'](0x0);}});};process['on'](_0xda5c('0x64'),function(){logger[_0xda5c('0x65')]('CSV\x20import\x20process\x20stopped!');endCsv();});function main(){return BPromise[_0xda5c('0x66')]()[_0xda5c('0x2d')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES['split'](',');return db[_0xda5c('0x2a')][_0xda5c('0x4d')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0x4bdf46){var _0x5a5c31=fs['createReadStream'](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xda5c('0x67')](_0x5a5c31,{'header':!![],'skipEmptyLines':!![],'step':function(_0x2a7e0a,_0x44ab33){total+=0x1;var _0x415a87=total;promises['push'](checkRow(_0x2a7e0a,_0x4bdf46,_0x415a87)[_0xda5c('0x2d')](function(){success+=0x1;})[_0xda5c('0x54')](function(_0x37328a){if(_0x37328a[_0xda5c('0x19')]){errors+=0x1;delete _0x37328a['error'];}else if(_0x37328a[_0xda5c('0x28')]){duplicates+=0x1;delete _0x37328a['duplicate'];}rows[_0xda5c('0x2e')](_0x37328a);}));if(total%0xc8===0x0){_0x44ab33['pause']();return processPromises(_0x44ab33);}},'complete':function(){return processPromises()[_0xda5c('0x2d')](function(){logger[_0xda5c('0x65')](_0xda5c('0x68'));endCsv();});},'error':function(_0x4de255,_0x331dad){logger[_0xda5c('0x65')](_0xda5c('0x69'),JSON['stringify'](_0x4de255));endCsv();}});})['catch'](function(_0x23ae05){logger['error'](_0xda5c('0x6a'),JSON[_0xda5c('0x63')](_0x23ae05));});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0349=['stringify','send','start','socket_timestamp','root','server/files/tmp','.csv','writeFileSync','parse','createReadStream','rows','data','hasOwnProperty','trim','replace','YYYY-MM-DD\x20HH:mm:ss','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','isNumber','includes','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','\x20not\x20specified','length','SystemRow','emit','contact:import:','Abort\x20parser','abort','SystemError','step','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','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','isNil',',\x20scheduledAt\x20=\x20NOW()','DROP\x20TABLE\x20','voice_queues_has_cm_lists','voice_queues','voice_queues_has_cm_blacklists','VoiceQueueId','campaigns','CampaignId','campaigns_has_cm_blacklists','each','then','affectedRows','unlink','catch','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','file\x20doesn\x27t\x20exists','binding','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','body\x20id\x20mandatory','map','No\x20agent\x20available','uncaughtException','path','lodash','papaparse','bluebird','moment','squel','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','defaults','redis','localhost','socket.io-emitter','format','test','select','field','phone','from','join','.id\x20=\x20','where','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','cm_hopper','fromQuery','scheduledat','createdAt','updatedAt','UserId','recallme','fields','cm_contacts','.CmListId','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','\x22onlyIfOpen\x22','toString','cm_contacts.id','into','cm_hopper_black','ListId','cm_contacts.ListId\x20=\x20','ListId\x20=\x20?','\x20=\x20?','concat','keys','CompanyId',')\x20NOT\x20IN\x20?','MIN(id)','min_id','group','info','Received\x20SIGINT','error','message','exit','errors','push','code','sequelize','query','spread','main'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x0349,0x161));var _0x9034=function(_0xbd08b4,_0x4790ed){_0xbd08b4=_0xbd08b4-0x0;var _0x314f1e=_0x0349[_0xbd08b4];return _0x314f1e;};'use strict';var fs=require('fs');var path=require(_0x9034('0x0'));var _=require(_0x9034('0x1'));var Papa=require(_0x9034('0x2'));var util=require('util');var BPromise=require(_0x9034('0x3'));var moment=require(_0x9034('0x4'));var squel=require(_0x9034('0x5'));var Redis=require(_0x9034('0x6'));var db=require(_0x9034('0x7'))['db'];var config=require(_0x9034('0x8'));var logger=require(_0x9034('0x9'))('import');config['redis']=_[_0x9034('0xa')](config[_0x9034('0xb')],{'host':_0x9034('0xc'),'port':0x18eb});var socket=require(_0x9034('0xd'))(new Redis(config[_0x9034('0xb')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()[_0x9034('0xe')]('YYYY-MM-DD\x20HH:mm:ss');function isEmail(_0x4601c7){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))*$/[_0x9034('0xf')](_0x4601c7);}function selectNotIn(_0x2b4179,_0x56b9c1,_0xe80715,_0x102720,_0x455a2d){return squel[_0x9034('0x10')]()[_0x9034('0x11')](_0x9034('0x12'))[_0x9034('0x13')](_0x102720)[_0x9034('0x14')](_0x56b9c1,null,_0x56b9c1+_0x9034('0x15')+_0x102720+'.'+_0xe80715)[_0x9034('0x16')](_0x102720+'.'+_0xe80715+'\x20=\x20'+_0x2b4179+'.'+_0xe80715)[_0x9034('0x16')](_0x56b9c1+'.dialCheckDuplicateType\x20IN\x20('+_0x455a2d[_0x9034('0x14')]()+')');}function insertCmHopper(_0xb7bc52,_0x265f49,_0x2d2a75,_0x4211ef,_0x191fd4){var _0x5c18e0=[_0x9034('0x17'),_0x9034('0x18'),'cm_contacts.id',_0x9034('0x19'),_0x265f49+'.'+_0x4211ef,_0x9034('0x1a'),_0x9034('0x1b'),_0x9034('0x1c'),_0x9034('0x1d'),'\x22'+_0x191fd4+'\x22'];return squel[_0x9034('0x1e')]()['into'](_0x9034('0x1f'))[_0x9034('0x20')]([_0x9034('0x12'),_0x9034('0x21'),'ContactId','ListId',_0x4211ef,_0x9034('0x22'),_0x9034('0x23'),'priority',_0x9034('0x24'),_0x9034('0x25')],squel[_0x9034('0x10')]()[_0x9034('0x26')](_0x5c18e0)[_0x9034('0x13')](_0x265f49)[_0x9034('0x14')](_0x9034('0x27'),null,'cm_contacts.ListId\x20=\x20'+_0x265f49+_0x9034('0x28'))[_0x9034('0x14')](_0x2d2a75,null,_0x2d2a75+_0x9034('0x15')+_0x265f49+'.'+_0x4211ef)[_0x9034('0x16')](_0x265f49+_0x9034('0x29'),_0xb7bc52)[_0x9034('0x16')](_0x9034('0x2a'),NOW)[_0x9034('0x16')](_0x9034('0x2b'),selectNotIn(_0x265f49,_0x2d2a75,_0x4211ef,'cm_hopper',[_0x9034('0x2c'),_0x9034('0x2d')]))['where']('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x265f49,_0x2d2a75,_0x4211ef,'cm_hopper',[_0x9034('0x2c')])))[_0x9034('0x2e')]();}function insertCmHopperBlack(_0x555a34,_0x3e843a,_0x32d151,_0x1d8527){var _0x5c4990=[_0x9034('0x17'),_0x9034('0x2f'),_0x9034('0x19'),_0x3e843a+'.'+_0x1d8527,_0x9034('0x1a'),_0x9034('0x1b')];return squel[_0x9034('0x1e')]()[_0x9034('0x30')](_0x9034('0x31'))[_0x9034('0x20')]([_0x9034('0x12'),'ContactId',_0x9034('0x32'),_0x1d8527,_0x9034('0x22'),_0x9034('0x23')],squel[_0x9034('0x10')]()[_0x9034('0x26')](_0x5c4990)['from'](_0x3e843a)['join'](_0x9034('0x27'),null,_0x9034('0x33')+_0x3e843a+_0x9034('0x28'))['join'](_0x32d151,null,_0x32d151+_0x9034('0x15')+_0x3e843a+'.'+_0x1d8527)[_0x9034('0x16')](_0x3e843a+_0x9034('0x29'),_0x555a34)[_0x9034('0x16')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0x9034('0x16')](_0x9034('0x2b'),squel[_0x9034('0x10')]()['field'](_0x9034('0x12'))[_0x9034('0x13')](_0x9034('0x31'))[_0x9034('0x16')](_0x9034('0x34'),_0x555a34)[_0x9034('0x16')](_0x1d8527+_0x9034('0x35'),_0x3e843a+'.'+_0x1d8527)))[_0x9034('0x2e')]();}function insertCmContact(_0x23efe8,_0xf93054,_0x907d50,_0x3282c7){var _0x5c5759=_[_0x9034('0x36')](_[_0x9034('0x37')](_0x3282c7),[_0x9034('0x32'),_0x9034('0x38'),_0x9034('0x22'),_0x9034('0x23')]);return squel[_0x9034('0x1e')]()[_0x9034('0x30')](_0x9034('0x27'))[_0x9034('0x20')](_0x5c5759,squel[_0x9034('0x10')]()[_0x9034('0x26')](_0x5c5759)[_0x9034('0x13')](_0xf93054)['where']('('+_0x907d50[_0x9034('0x14')](',')+_0x9034('0x39'),squel[_0x9034('0x10')]()['fields'](_0x907d50)[_0x9034('0x13')](_0x9034('0x27'))[_0x9034('0x16')](_0x9034('0x34'),_0x23efe8)[_0x9034('0x16')]('deletedAt\x20IS\x20NULL'))['where']('id\x20IN\x20?',squel[_0x9034('0x10')]()[_0x9034('0x11')](_0x9034('0x3a'),_0x9034('0x3b'))[_0x9034('0x13')](_0xf93054)[_0x9034('0x3c')](_0x907d50[_0x9034('0x14')](','))))[_0x9034('0x2e')]();}function handleStop(){logger[_0x9034('0x3d')](_0x9034('0x3e'));stopped=!![];}function handleUncaughtException(_0x1082cf){logger[_0x9034('0x3f')](_0x1082cf[_0x9034('0x40')]);process[_0x9034('0x41')](0x1);}function handleError(_0xf3826,_0x2bb2bb){stats[_0x9034('0x42')][_0x9034('0x43')]({'name':_0x2bb2bb[_0x9034('0x44')],'message':_0x2bb2bb[_0x9034('0x40')],'row':_0xf3826});}function handleQuery(_0x2273cb){logger[_0x9034('0x3d')](_0x2273cb);return db[_0x9034('0x45')][_0x9034('0x46')](_0x2273cb)[_0x9034('0x47')](function(_0x3cb711){results[_0x9034('0x43')](_0x3cb711);})['catch'](function(_0x1a2127){logger[_0x9034('0x3f')](_0x1a2127[_0x9034('0x40')]);});}function main(_0x54eb3d,_0x3f86bd,_0x24b97b,_0x36e6e5){logger[_0x9034('0x3d')](_0x9034('0x48'),_0x54eb3d,JSON[_0x9034('0x49')](_0x3f86bd));process[_0x9034('0x4a')](_0x9034('0x4b'));var _0x482e8e=_0x3f86bd['binding'];var _0x21dd0d=_0x3f86bd[_0x9034('0x4c')];var _0x30518c=path['join'](config[_0x9034('0x4d')],_0x9034('0x4e'),_0x21dd0d+_0x9034('0x4f'));var _0x4fe846=_[_0x9034('0x37')](_0x482e8e)[_0x9034('0x14')]();logger[_0x9034('0x3d')]('header',_0x4fe846);fs[_0x9034('0x50')](_0x30518c,_0x4fe846+'\x0a');Papa[_0x9034('0x51')](fs[_0x9034('0x52')](_0x54eb3d),{'header':!![],'skipEmptyLines':!![],'step':function(_0x4f293b,_0xc3ae49){try{for(var _0x44934b=0x0,_0x4847c2=[];_0x44934b<_0x4f293b['data']['length'];_0x44934b++){stats[_0x9034('0x53')]+=0x1;if(_0x4f293b[_0x9034('0x42')][_0x44934b]){handleError(_0x4f293b[_0x9034('0x54')][_0x44934b],_0x4f293b[_0x9034('0x42')][_0x44934b]);}else{var _0x28d161=[];for(var _0x523f1f in _0x482e8e){if(_0x482e8e[_0x9034('0x55')](_0x523f1f)){if(_0x4f293b['data'][_0x44934b][_0x482e8e[_0x523f1f]]){var _0x2dc8ac=_[_0x9034('0x56')](_0x4f293b[_0x9034('0x54')][_0x44934b][_0x482e8e[_0x523f1f]][_0x9034('0x57')](/"/g,'\x27'));switch(_0x523f1f){case _0x9034('0x21'):var _0x6ae9c4=moment(_0x2dc8ac,_0x9034('0x58'),!![]);if(_0x6ae9c4[_0x9034('0x59')]()){_0x4847c2[_0x9034('0x43')]('\x22'+_0x2dc8ac+'\x22');}else{_0x28d161[_0x9034('0x43')](_0x9034('0x5a'));}break;case'priority':var _0x1a1bc6=parseInt(_0x2dc8ac);_0x2dc8ac=_[_0x9034('0x5b')](_0x1a1bc6)||_0x1a1bc6<0x0||_0x1a1bc6>0x4?_0x36e6e5?0x3:0x2:_0x1a1bc6;_0x4847c2['push']('\x22'+_0x2dc8ac+'\x22');break;case _0x9034('0x24'):var _0x5227f6=parseInt(_0x2dc8ac);if(_[_0x9034('0x5c')](_0x5227f6)&&_[_0x9034('0x5d')](_0x24b97b,_0x5227f6)){_0x4847c2[_0x9034('0x43')]('\x22'+_0x5227f6+'\x22');}else{_0x28d161[_0x9034('0x43')](_0x9034('0x5e'));}break;case _0x9034('0x5f'):if(isEmail(_0x2dc8ac)){_0x4847c2[_0x9034('0x43')]('\x22'+_0x2dc8ac+'\x22');}else{_0x28d161[_0x9034('0x43')](_0x9034('0x60'));}break;case _0x9034('0x61'):var _0x5728b3=moment(_0x2dc8ac,_0x9034('0x62'),!![]);if(_0x5728b3['isValid']()){_0x4847c2[_0x9034('0x43')]('\x22'+_0x2dc8ac+'\x22');}else{_0x28d161[_0x9034('0x43')](_0x9034('0x63'));}break;default:_0x4847c2[_0x9034('0x43')]('\x22'+_0x2dc8ac+'\x22');}}else{switch(_0x523f1f){case _0x9034('0x64'):case _0x9034('0x12'):_0x28d161['push'](_0x523f1f+_0x9034('0x65'));break;default:_0x4847c2['push']('\x22\x22');}}}}if(_0x28d161[_0x9034('0x66')]){handleError(_0x4f293b[_0x9034('0x54')][_0x44934b],{'code':_0x9034('0x67'),'message':_0x28d161['join']()});}else{fs['appendFileSync'](_0x30518c,_0x4847c2[_0x9034('0x14')]()+'\x0a');}_0x4847c2=[];}if(!(stats[_0x9034('0x53')]%0xc8)){socket[_0x9034('0x68')](_0x9034('0x69')+_0x21dd0d,stats);stats[_0x9034('0x42')]=[];}}if(stopped){logger[_0x9034('0x3d')](_0x9034('0x6a'));_0xc3ae49[_0x9034('0x6b')]();}}catch(_0x55ee96){handleError(_0x4f293b[_0x9034('0x54')][_0x44934b],{'code':_0x9034('0x6c'),'message':_0x55ee96[_0x9034('0x40')]});logger[_0x9034('0x3f')](_0x9034('0x6d'),_0x55ee96[_0x9034('0x40')]);}},'complete':function(){try{var _0x1e4510=[];var _0x16ba11='cm_contacts';if(_0x3f86bd[_0x9034('0x6e')]&&_0x3f86bd['duplicates'][_0x9034('0x66')]){_0x16ba11=_0x9034('0x6f')+_0x21dd0d;_0x1e4510['push'](_0x9034('0x70')+_0x16ba11+_0x9034('0x71'));}var _0x2453c=util[_0x9034('0xe')](_0x9034('0x72'),_0x30518c,_0x16ba11,_0x4fe846,_0x3f86bd['ListId'],_0x3f86bd[_0x9034('0x38')]||null,NOW,NOW);if(_[_0x9034('0x73')](_0x482e8e[_0x9034('0x21')])){_0x2453c+=_0x9034('0x74');}_0x1e4510[_0x9034('0x43')](_0x2453c);if(_0x3f86bd[_0x9034('0x6e')]&&_0x3f86bd[_0x9034('0x6e')][_0x9034('0x66')]){_0x1e4510[_0x9034('0x43')](insertCmContact(_0x3f86bd['ListId'],_0x16ba11,_0x3f86bd['duplicates'],_0x482e8e));_0x1e4510[_0x9034('0x43')](_0x9034('0x75')+_0x16ba11+';');}_0x1e4510['push'](insertCmHopper(_0x3f86bd[_0x9034('0x32')],_0x9034('0x76'),_0x9034('0x77'),'VoiceQueueId',_0x36e6e5));_0x1e4510['push'](insertCmHopperBlack(_0x3f86bd[_0x9034('0x32')],_0x9034('0x78'),'voice_queues',_0x9034('0x79')));_0x1e4510[_0x9034('0x43')](insertCmHopper(_0x3f86bd[_0x9034('0x32')],'campaigns_has_cm_lists',_0x9034('0x7a'),_0x9034('0x7b'),_0x36e6e5));_0x1e4510[_0x9034('0x43')](insertCmHopperBlack(_0x3f86bd[_0x9034('0x32')],_0x9034('0x7c'),'campaigns',_0x9034('0x7b')));BPromise[_0x9034('0x7d')](_0x1e4510,handleQuery)[_0x9034('0x7e')](function(_0x4da5e9){stats['finish']=!![];stats[_0x9034('0x7f')]=_0x3f86bd[_0x9034('0x6e')]&&_0x3f86bd[_0x9034('0x6e')][_0x9034('0x66')]?results[0x2][_0x9034('0x7f')]:results[0x0][_0x9034('0x7f')];socket['emit'](_0x9034('0x69')+_0x21dd0d,stats);fs[_0x9034('0x80')](_0x54eb3d);fs[_0x9034('0x80')](_0x30518c);process[_0x9034('0x41')](0x0);})[_0x9034('0x81')](function(_0x367068){logger[_0x9034('0x3f')](_0x367068[_0x9034('0x40')]);process[_0x9034('0x41')](0x1);});}catch(_0x4eee3f){logger[_0x9034('0x3f')](_0x9034('0x82'),_0x4eee3f[_0x9034('0x40')]);process['exit'](0x1);}},'error':function(_0x305ee6,_0x40daf5,_0x5875a7,_0x216556){throw new Error(_0x216556);}});}function validate(){if(process['argv']&&process[_0x9034('0x83')][_0x9034('0x66')]<0x4){throw new Error(_0x9034('0x84'));}var _0x392909=path[_0x9034('0x14')](config[_0x9034('0x4d')],_0x9034('0x4e'),process[_0x9034('0x83')][0x2]);if(!fs['existsSync'](_0x392909)){throw new Error(_0x9034('0x85'));}var _0x50a336={};try{_0x50a336=JSON[_0x9034('0x51')](process['argv'][0x3]);if(!_0x50a336[_0x9034('0x86')]){throw new Error(_0x9034('0x87'));}if(!_0x50a336['binding'][_0x9034('0x12')]){throw new Error(_0x9034('0x88'));}if(!_0x50a336['binding'][_0x9034('0x64')]){throw new Error(_0x9034('0x89'));}var _0x516415=0x0;if(_0x50a336['binding'][_0x9034('0x24')]){_0x516415=0x1;}if(!_0x50a336[_0x9034('0x32')]){throw new Error('ListId\x20is\x20mandatory');}}catch(_0x25d2af){throw new Error(_0x9034('0x8a'));}var _0x434e88=[];try{_0x434e88=_[_0x9034('0x8b')](JSON[_0x9034('0x51')](process[_0x9034('0x83')][0x4]),'id');}catch(_0x289ebf){logger[_0x9034('0x3d')](_0x9034('0x8c'));}main(_0x392909,_0x50a336,_0x434e88,_0x516415);}validate();process['on']('SIGINT',handleStop);process['on'](_0x9034('0x8d'),handleUncaughtException);
\ No newline at end of file
+var _0x86db=['phone','from','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','join','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.priority','cm_contacts.UserId','insert','cm_hopper','fromQuery','scheduledat','createdAt','priority','UserId','recallme','select','fields','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','toString','cm_contacts.updatedAt','into','cm_hopper_black','ContactId','ListId','updatedAt','ListId\x20=\x20?','concat','keys',')\x20NOT\x20IN\x20?','id\x20IN\x20?','MIN(id)','min_id','info','Received\x20SIGINT','exit','errors','push','code','spread','catch','error','message','main','stringify','send','binding','root','server/files/tmp','.csv','header','parse','createReadStream','data','rows','hasOwnProperty','trim','replace','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','isNumber','includes','agent\x20not\x20exists','email','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','\x20not\x20specified','SystemRow','appendFileSync','emit','contact:import:','Abort\x20parser','abort','step','duplicates','length','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','CompanyId','isNil',',\x20scheduledAt\x20=\x20NOW()','voice_queues_has_cm_lists','voice_queues','VoiceQueueId','voice_queues_has_cm_blacklists','campaigns_has_cm_lists','campaigns_has_cm_blacklists','campaigns','CampaignId','each','then','finish','affectedRows','unlink','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','existsSync','file\x20doesn\x27t\x20exists','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','body\x20id\x20mandatory','No\x20agent\x20available','uncaughtException','path','lodash','util','bluebird','squel','ioredis','../../../mysqldb','../../../config/environment','import','redis','defaults','localhost','socket.io-emitter','format','test','field'];(function(_0x11f541,_0x38754e){var _0x52ec5b=function(_0x298a0f){while(--_0x298a0f){_0x11f541['push'](_0x11f541['shift']());}};_0x52ec5b(++_0x38754e);}(_0x86db,0xfc));var _0xb86d=function(_0x1d7827,_0x42b0db){_0x1d7827=_0x1d7827-0x0;var _0xb449f1=_0x86db[_0x1d7827];return _0xb449f1;};'use strict';var fs=require('fs');var path=require(_0xb86d('0x0'));var _=require(_0xb86d('0x1'));var Papa=require('papaparse');var util=require(_0xb86d('0x2'));var BPromise=require(_0xb86d('0x3'));var moment=require('moment');var squel=require(_0xb86d('0x4'));var Redis=require(_0xb86d('0x5'));var db=require(_0xb86d('0x6'))['db'];var config=require(_0xb86d('0x7'));var logger=require('../../../config/logger')(_0xb86d('0x8'));config[_0xb86d('0x9')]=_[_0xb86d('0xa')](config[_0xb86d('0x9')],{'host':_0xb86d('0xb'),'port':0x18eb});var socket=require(_0xb86d('0xc'))(new Redis(config[_0xb86d('0x9')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()[_0xb86d('0xd')]('YYYY-MM-DD\x20HH:mm:ss');function isEmail(_0x76cc8c){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))*$/[_0xb86d('0xe')](_0x76cc8c);}function selectNotIn(_0x135ecf,_0x9ecf77,_0x46135a,_0x1c756c,_0x3573c0){return squel['select']()[_0xb86d('0xf')](_0xb86d('0x10'))[_0xb86d('0x11')](_0x1c756c)['join'](_0x9ecf77,null,_0x9ecf77+_0xb86d('0x12')+_0x1c756c+'.'+_0x46135a)[_0xb86d('0x13')](_0x1c756c+'.'+_0x46135a+_0xb86d('0x14')+_0x135ecf+'.'+_0x46135a)['where'](_0x9ecf77+_0xb86d('0x15')+_0x3573c0[_0xb86d('0x16')]()+')');}function insertCmHopper(_0x1a5696,_0x199e7e,_0x6efc27,_0x4a0def,_0x56cea0){var _0x4936b6=[_0xb86d('0x17'),_0xb86d('0x18'),'cm_contacts.id',_0xb86d('0x19'),_0x199e7e+'.'+_0x4a0def,_0xb86d('0x1a'),'cm_contacts.updatedAt',_0xb86d('0x1b'),_0xb86d('0x1c'),'\x22'+_0x56cea0+'\x22'];return squel[_0xb86d('0x1d')]()['into'](_0xb86d('0x1e'))[_0xb86d('0x1f')]([_0xb86d('0x10'),_0xb86d('0x20'),'ContactId','ListId',_0x4a0def,_0xb86d('0x21'),'updatedAt',_0xb86d('0x22'),_0xb86d('0x23'),_0xb86d('0x24')],squel[_0xb86d('0x25')]()[_0xb86d('0x26')](_0x4936b6)['from'](_0x199e7e)[_0xb86d('0x16')](_0xb86d('0x27'),null,_0xb86d('0x28')+_0x199e7e+_0xb86d('0x29'))[_0xb86d('0x16')](_0x6efc27,null,_0x6efc27+_0xb86d('0x12')+_0x199e7e+'.'+_0x4a0def)[_0xb86d('0x13')](_0x199e7e+_0xb86d('0x2a'),_0x1a5696)[_0xb86d('0x13')](_0xb86d('0x2b'),NOW)['where'](_0xb86d('0x2c'),selectNotIn(_0x199e7e,_0x6efc27,_0x4a0def,'cm_hopper',['\x22always\x22','\x22onlyIfOpen\x22']))[_0xb86d('0x13')](_0xb86d('0x2c'),selectNotIn(_0x199e7e,_0x6efc27,_0x4a0def,_0xb86d('0x1e'),['\x22always\x22'])))[_0xb86d('0x2d')]();}function insertCmHopperBlack(_0x438e0d,_0x534d1d,_0x57ca23,_0x5961ff){var _0x52f189=[_0xb86d('0x17'),'cm_contacts.id','cm_contacts.ListId',_0x534d1d+'.'+_0x5961ff,_0xb86d('0x1a'),_0xb86d('0x2e')];return squel[_0xb86d('0x1d')]()[_0xb86d('0x2f')](_0xb86d('0x30'))['fromQuery']([_0xb86d('0x10'),_0xb86d('0x31'),_0xb86d('0x32'),_0x5961ff,'createdAt',_0xb86d('0x33')],squel[_0xb86d('0x25')]()[_0xb86d('0x26')](_0x52f189)[_0xb86d('0x11')](_0x534d1d)[_0xb86d('0x16')](_0xb86d('0x27'),null,'cm_contacts.ListId\x20=\x20'+_0x534d1d+'.CmListId')['join'](_0x57ca23,null,_0x57ca23+'.id\x20=\x20'+_0x534d1d+'.'+_0x5961ff)[_0xb86d('0x13')](_0x534d1d+'.CmListId\x20=\x20?',_0x438e0d)[_0xb86d('0x13')](_0xb86d('0x2b'),NOW)[_0xb86d('0x13')](_0xb86d('0x2c'),squel[_0xb86d('0x25')]()[_0xb86d('0xf')](_0xb86d('0x10'))[_0xb86d('0x11')](_0xb86d('0x30'))[_0xb86d('0x13')](_0xb86d('0x34'),_0x438e0d)[_0xb86d('0x13')](_0x5961ff+'\x20=\x20?',_0x534d1d+'.'+_0x5961ff)))[_0xb86d('0x2d')]();}function insertCmContact(_0x243f55,_0x4dc0f3,_0x262ecc,_0x5317c5){var _0x8c2875=_[_0xb86d('0x35')](_[_0xb86d('0x36')](_0x5317c5),[_0xb86d('0x32'),'CompanyId',_0xb86d('0x21'),'updatedAt']);return squel[_0xb86d('0x1d')]()[_0xb86d('0x2f')]('cm_contacts')[_0xb86d('0x1f')](_0x8c2875,squel[_0xb86d('0x25')]()[_0xb86d('0x26')](_0x8c2875)[_0xb86d('0x11')](_0x4dc0f3)[_0xb86d('0x13')]('('+_0x262ecc[_0xb86d('0x16')](',')+_0xb86d('0x37'),squel['select']()[_0xb86d('0x26')](_0x262ecc)[_0xb86d('0x11')]('cm_contacts')['where'](_0xb86d('0x34'),_0x243f55)['where']('deletedAt\x20IS\x20NULL'))[_0xb86d('0x13')](_0xb86d('0x38'),squel[_0xb86d('0x25')]()[_0xb86d('0xf')](_0xb86d('0x39'),_0xb86d('0x3a'))[_0xb86d('0x11')](_0x4dc0f3)['group'](_0x262ecc['join'](','))))['toString']();}function handleStop(){logger[_0xb86d('0x3b')](_0xb86d('0x3c'));stopped=!![];}function handleUncaughtException(_0x1e94fc){logger['error'](_0x1e94fc['message']);process[_0xb86d('0x3d')](0x1);}function handleError(_0x2007ef,_0x11086c){stats[_0xb86d('0x3e')][_0xb86d('0x3f')]({'name':_0x11086c[_0xb86d('0x40')],'message':_0x11086c['message'],'row':_0x2007ef});}function handleQuery(_0x4a356e){logger[_0xb86d('0x3b')](_0x4a356e);return db['sequelize']['query'](_0x4a356e)[_0xb86d('0x41')](function(_0x211cf1){results['push'](_0x211cf1);})[_0xb86d('0x42')](function(_0x3f191a){logger[_0xb86d('0x43')](_0x3f191a[_0xb86d('0x44')]);});}function main(_0x49a40f,_0x423f24,_0x445377,_0x5a07ae){logger[_0xb86d('0x3b')](_0xb86d('0x45'),_0x49a40f,JSON[_0xb86d('0x46')](_0x423f24));process[_0xb86d('0x47')]('start');var _0x3fbfae=_0x423f24[_0xb86d('0x48')];var _0x1ccb59=_0x423f24['socket_timestamp'];var _0x261428=path[_0xb86d('0x16')](config[_0xb86d('0x49')],_0xb86d('0x4a'),_0x1ccb59+_0xb86d('0x4b'));var _0x3fccdc=_[_0xb86d('0x36')](_0x3fbfae)[_0xb86d('0x16')]();logger[_0xb86d('0x3b')](_0xb86d('0x4c'),_0x3fccdc);fs['writeFileSync'](_0x261428,_0x3fccdc+'\x0a');Papa[_0xb86d('0x4d')](fs[_0xb86d('0x4e')](_0x49a40f),{'header':!![],'skipEmptyLines':!![],'step':function(_0x551b5b,_0xf6c8ca){try{for(var _0x508777=0x0,_0x475bf4=[];_0x508777<_0x551b5b[_0xb86d('0x4f')]['length'];_0x508777++){stats[_0xb86d('0x50')]+=0x1;if(_0x551b5b['errors'][_0x508777]){handleError(_0x551b5b[_0xb86d('0x4f')][_0x508777],_0x551b5b[_0xb86d('0x3e')][_0x508777]);}else{var _0x109b9f=[];for(var _0x51ef16 in _0x3fbfae){if(_0x3fbfae[_0xb86d('0x51')](_0x51ef16)){if(_0x551b5b[_0xb86d('0x4f')][_0x508777][_0x3fbfae[_0x51ef16]]){var _0xad6542=_[_0xb86d('0x52')](_0x551b5b[_0xb86d('0x4f')][_0x508777][_0x3fbfae[_0x51ef16]][_0xb86d('0x53')](/"/g,'\x27'));switch(_0x51ef16){case _0xb86d('0x20'):var _0x314e58=moment(_0xad6542,'YYYY-MM-DD\x20HH:mm:ss',!![]);if(_0x314e58[_0xb86d('0x54')]()){_0x475bf4[_0xb86d('0x3f')]('\x22'+_0xad6542+'\x22');}else{_0x109b9f[_0xb86d('0x3f')](_0xb86d('0x55'));}break;case _0xb86d('0x22'):var _0x5c294f=parseInt(_0xad6542);_0xad6542=_[_0xb86d('0x56')](_0x5c294f)||_0x5c294f<0x0||_0x5c294f>0x4?_0x5a07ae?0x3:0x2:_0x5c294f;_0x475bf4[_0xb86d('0x3f')]('\x22'+_0xad6542+'\x22');break;case'UserId':var _0x2a8037=parseInt(_0xad6542);if(_[_0xb86d('0x57')](_0x2a8037)&&_[_0xb86d('0x58')](_0x445377,_0x2a8037)){_0x475bf4[_0xb86d('0x3f')]('\x22'+_0x2a8037+'\x22');}else{_0x109b9f[_0xb86d('0x3f')](_0xb86d('0x59'));}break;case _0xb86d('0x5a'):if(isEmail(_0xad6542)){_0x475bf4['push']('\x22'+_0xad6542+'\x22');}else{_0x109b9f['push']('email\x20wrong\x20format');}break;case'dateOfBirth':var _0x479e2d=moment(_0xad6542,_0xb86d('0x5b'),!![]);if(_0x479e2d[_0xb86d('0x54')]()){_0x475bf4[_0xb86d('0x3f')]('\x22'+_0xad6542+'\x22');}else{_0x109b9f[_0xb86d('0x3f')](_0xb86d('0x5c'));}break;default:_0x475bf4[_0xb86d('0x3f')]('\x22'+_0xad6542+'\x22');}}else{switch(_0x51ef16){case'firstName':case _0xb86d('0x10'):_0x109b9f['push'](_0x51ef16+_0xb86d('0x5d'));break;default:_0x475bf4[_0xb86d('0x3f')]('\x22\x22');}}}}if(_0x109b9f['length']){handleError(_0x551b5b[_0xb86d('0x4f')][_0x508777],{'code':_0xb86d('0x5e'),'message':_0x109b9f[_0xb86d('0x16')]()});}else{fs[_0xb86d('0x5f')](_0x261428,_0x475bf4[_0xb86d('0x16')]()+'\x0a');}_0x475bf4=[];}if(!(stats[_0xb86d('0x50')]%0xc8)){socket[_0xb86d('0x60')](_0xb86d('0x61')+_0x1ccb59,stats);stats[_0xb86d('0x3e')]=[];}}if(stopped){logger[_0xb86d('0x3b')](_0xb86d('0x62'));_0xf6c8ca[_0xb86d('0x63')]();}}catch(_0x49c933){handleError(_0x551b5b[_0xb86d('0x4f')][_0x508777],{'code':'SystemError','message':_0x49c933[_0xb86d('0x44')]});logger[_0xb86d('0x43')](_0xb86d('0x64'),_0x49c933['message']);}},'complete':function(){try{var _0x2f97a3=[];var _0x2b6944='cm_contacts';if(_0x423f24[_0xb86d('0x65')]&&_0x423f24[_0xb86d('0x65')][_0xb86d('0x66')]){_0x2b6944=_0xb86d('0x67')+_0x1ccb59;_0x2f97a3[_0xb86d('0x3f')](_0xb86d('0x68')+_0x2b6944+_0xb86d('0x69'));}var _0x4b6cfa=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',_0x261428,_0x2b6944,_0x3fccdc,_0x423f24[_0xb86d('0x32')],_0x423f24[_0xb86d('0x6a')]||null,NOW,NOW);if(_[_0xb86d('0x6b')](_0x3fbfae['scheduledat'])){_0x4b6cfa+=_0xb86d('0x6c');}_0x2f97a3['push'](_0x4b6cfa);if(_0x423f24[_0xb86d('0x65')]&&_0x423f24[_0xb86d('0x65')][_0xb86d('0x66')]){_0x2f97a3[_0xb86d('0x3f')](insertCmContact(_0x423f24['ListId'],_0x2b6944,_0x423f24[_0xb86d('0x65')],_0x3fbfae));_0x2f97a3[_0xb86d('0x3f')]('DROP\x20TABLE\x20'+_0x2b6944+';');}_0x2f97a3['push'](insertCmHopper(_0x423f24[_0xb86d('0x32')],_0xb86d('0x6d'),_0xb86d('0x6e'),_0xb86d('0x6f'),_0x5a07ae));_0x2f97a3[_0xb86d('0x3f')](insertCmHopperBlack(_0x423f24[_0xb86d('0x32')],_0xb86d('0x70'),_0xb86d('0x6e'),_0xb86d('0x6f')));_0x2f97a3[_0xb86d('0x3f')](insertCmHopper(_0x423f24[_0xb86d('0x32')],_0xb86d('0x71'),'campaigns','CampaignId',_0x5a07ae));_0x2f97a3[_0xb86d('0x3f')](insertCmHopperBlack(_0x423f24['ListId'],_0xb86d('0x72'),_0xb86d('0x73'),_0xb86d('0x74')));BPromise[_0xb86d('0x75')](_0x2f97a3,handleQuery)[_0xb86d('0x76')](function(_0x352c6c){stats[_0xb86d('0x77')]=!![];stats[_0xb86d('0x78')]=_0x423f24[_0xb86d('0x65')]&&_0x423f24[_0xb86d('0x65')][_0xb86d('0x66')]?results[0x2][_0xb86d('0x78')]:results[0x0][_0xb86d('0x78')];socket[_0xb86d('0x60')](_0xb86d('0x61')+_0x1ccb59,stats);fs[_0xb86d('0x79')](_0x49a40f);fs[_0xb86d('0x79')](_0x261428);process['exit'](0x0);})[_0xb86d('0x42')](function(_0xab3586){logger[_0xb86d('0x43')](_0xab3586[_0xb86d('0x44')]);process[_0xb86d('0x3d')](0x1);});}catch(_0x49065b){logger[_0xb86d('0x43')](_0xb86d('0x7a'),_0x49065b[_0xb86d('0x44')]);process[_0xb86d('0x3d')](0x1);}},'error':function(_0x9e2f30,_0x243c4b,_0x38d4ca,_0xb47190){throw new Error(_0xb47190);}});}function validate(){if(process[_0xb86d('0x7b')]&&process[_0xb86d('0x7b')][_0xb86d('0x66')]<0x4){throw new Error(_0xb86d('0x7c'));}var _0x36f097=path[_0xb86d('0x16')](config['root'],'server/files/tmp',process['argv'][0x2]);if(!fs[_0xb86d('0x7d')](_0x36f097)){throw new Error(_0xb86d('0x7e'));}var _0x2b600a={};try{_0x2b600a=JSON[_0xb86d('0x4d')](process[_0xb86d('0x7b')][0x3]);if(!_0x2b600a[_0xb86d('0x48')]){throw new Error(_0xb86d('0x7f'));}if(!_0x2b600a['binding'][_0xb86d('0x10')]){throw new Error(_0xb86d('0x80'));}if(!_0x2b600a['binding']['firstName']){throw new Error(_0xb86d('0x81'));}var _0x289af9=0x0;if(_0x2b600a[_0xb86d('0x48')][_0xb86d('0x23')]){_0x289af9=0x1;}if(!_0x2b600a['ListId']){throw new Error(_0xb86d('0x82'));}}catch(_0x54c7e8){throw new Error(_0xb86d('0x83'));}var _0x257687=[];try{_0x257687=_['map'](JSON[_0xb86d('0x4d')](process['argv'][0x4]),'id');}catch(_0x109a41){logger[_0xb86d('0x3b')](_0xb86d('0x84'));}main(_0x36f097,_0x2b600a,_0x257687,_0x289af9);}validate();process['on']('SIGINT',handleStop);process['on'](_0xb86d('0x85'),handleUncaughtException);
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f48=['destcalleridname','Agent\x20Number','***\x20Time\x20Info\x20***','Agent\x20Ring','Agent\x20Connect','agentcompleteAt','Hold\x20Time','holdtime','Member\x20Name','membername','Date','starttime','Answer\x20Time','answertime','Duration','duration','billableseconds','string','[xCALLY\x20Ticket]','toLowerCase','voice','inbound','push','calleridnum','outbound','variable','destcalleridnum','getDescriptions','***\x20Call\x20Info\x20***','keyValue','Caller\x20Number','Caller\x20Name','calleridname','Call\x20To','destexten','Queue','queue','UniqueId','uniqueid','agentcalledAt','***\x20Agent\x20Info\x20***','Agent\x20Name'];(function(_0x56358b,_0x30f1ab){var _0xc95842=function(_0x630438){while(--_0x630438){_0x56358b['push'](_0x56358b['shift']());}};_0xc95842(++_0x30f1ab);}(_0x6f48,0x161));var _0x86f4=function(_0x5998cc,_0x577645){_0x5998cc=_0x5998cc-0x0;var _0x112a84=_0x6f48[_0x5998cc];return _0x112a84;};'use strict';exports['getSubjects']=function(_0x126924,_0x5c634a){var _0x52f4c8=[{'type':_0x86f4('0x0'),'content':_0x86f4('0x1'),'variableName':null}];switch(_0x126924[_0x86f4('0x2')]()){case _0x86f4('0x3'):switch(_0x5c634a['toLowerCase']()){case _0x86f4('0x4'):_0x52f4c8['push']({'type':'variable','content':'','variableName':'queue'});_0x52f4c8[_0x86f4('0x5')]({'type':'variable','content':'','variableName':_0x86f4('0x6')});break;case _0x86f4('0x7'):_0x52f4c8[_0x86f4('0x5')]({'type':'string','content':'Outbound\x20Call','variableName':null});_0x52f4c8[_0x86f4('0x5')]({'type':_0x86f4('0x8'),'content':'','variableName':_0x86f4('0x9')});break;}}return _0x52f4c8;};exports[_0x86f4('0xa')]=function(_0xfebdf8,_0x5e8ac4){var _0x521a0a=[];switch(_0xfebdf8['toLowerCase']()){case _0x86f4('0x3'):switch(_0x5e8ac4['toLowerCase']()){case _0x86f4('0x4'):_0x521a0a=[{'type':_0x86f4('0x0'),'content':_0x86f4('0xb'),'key':null,'keyType':null,'variableName':null},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0xd'),'keyType':_0x86f4('0x8'),'variableName':_0x86f4('0x6')},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0xe'),'keyType':_0x86f4('0x8'),'variableName':_0x86f4('0xf')},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0x10'),'keyType':_0x86f4('0x8'),'variableName':_0x86f4('0x11')},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0x12'),'keyType':_0x86f4('0x8'),'variableName':_0x86f4('0x13')},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0x14'),'keyType':_0x86f4('0x8'),'variableName':_0x86f4('0x15')},{'type':_0x86f4('0xc'),'content':'','key':'Date','keyType':'variable','variableName':_0x86f4('0x16')},{'type':_0x86f4('0x0'),'content':_0x86f4('0x17'),'key':null,'keyType':null,'variableName':null},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0x18'),'keyType':_0x86f4('0x8'),'variableName':_0x86f4('0x19')},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0x1a'),'keyType':'variable','variableName':_0x86f4('0x9')},{'type':_0x86f4('0x0'),'content':_0x86f4('0x1b'),'key':null,'keyType':null,'variableName':null},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0x1c'),'keyType':_0x86f4('0x8'),'variableName':_0x86f4('0x16')},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0x1d'),'keyType':'variable','variableName':'agentconnectAt'},{'type':_0x86f4('0xc'),'content':'','key':'Agent\x20Complete','keyType':_0x86f4('0x8'),'variableName':_0x86f4('0x1e')},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0x1f'),'keyType':'variable','variableName':_0x86f4('0x20')},{'type':_0x86f4('0xc'),'content':'','key':'Talk\x20Time','keyType':_0x86f4('0x8'),'variableName':'talktime'}];break;case _0x86f4('0x7'):_0x521a0a=[{'type':_0x86f4('0x0'),'content':'***\x20Call\x20Info\x20***','variableName':null},{'type':'keyValue','content':'','key':'Called\x20Number','keyType':'variable','keyContent':'','variableName':_0x86f4('0x9')},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0x21'),'keyType':_0x86f4('0x8'),'keyContent':'','variableName':_0x86f4('0x22')},{'type':'keyValue','content':'','key':_0x86f4('0x14'),'keyType':_0x86f4('0x8'),'keyContent':'','variableName':_0x86f4('0x15')},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0x23'),'keyType':_0x86f4('0x8'),'keyContent':'','variableName':_0x86f4('0x24')},{'type':_0x86f4('0x0'),'content':_0x86f4('0x1b')},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0x25'),'keyType':_0x86f4('0x8'),'keyContent':'','variableName':_0x86f4('0x26')},{'type':_0x86f4('0xc'),'content':'','key':'Complete\x20Time','keyType':'variable','keyContent':'','variableName':'endtime'},{'type':_0x86f4('0xc'),'content':'','key':_0x86f4('0x27'),'keyType':'variable','keyContent':'','variableName':_0x86f4('0x28')},{'type':_0x86f4('0xc'),'content':'','key':'Billable\x20Time','keyType':_0x86f4('0x8'),'keyContent':'','variableName':_0x86f4('0x29')}];break;}}return _0x521a0a;};
\ No newline at end of file
+var _0x848d=['Called\x20Number','Member\x20Name','membername','answertime','Complete\x20Time','endtime','Billable\x20Time','billableseconds','getSubjects','string','[xCALLY\x20Ticket]','toLowerCase','voice','push','queue','variable','outbound','Outbound\x20Call','destcalleridnum','***\x20Call\x20Info\x20***','Caller\x20Number','calleridnum','keyValue','Caller\x20Name','calleridname','Call\x20To','Queue','UniqueId','uniqueid','Date','***\x20Agent\x20Info\x20***','Agent\x20Name','destcalleridname','***\x20Time\x20Info\x20***','Agent\x20Ring','agentcalledAt','Agent\x20Connect','Agent\x20Complete','agentcompleteAt','Hold\x20Time','holdtime','Talk\x20Time','talktime'];(function(_0x1a047c,_0xe9b8de){var _0x4a8cbd=function(_0x48dab7){while(--_0x48dab7){_0x1a047c['push'](_0x1a047c['shift']());}};_0x4a8cbd(++_0xe9b8de);}(_0x848d,0x160));var _0xd848=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x848d[_0x3dd15e];return _0x231fd0;};'use strict';exports[_0xd848('0x0')]=function(_0x16d437,_0x370447){var _0x35a51f=[{'type':_0xd848('0x1'),'content':_0xd848('0x2'),'variableName':null}];switch(_0x16d437[_0xd848('0x3')]()){case _0xd848('0x4'):switch(_0x370447['toLowerCase']()){case'inbound':_0x35a51f[_0xd848('0x5')]({'type':'variable','content':'','variableName':_0xd848('0x6')});_0x35a51f['push']({'type':_0xd848('0x7'),'content':'','variableName':'calleridnum'});break;case _0xd848('0x8'):_0x35a51f[_0xd848('0x5')]({'type':_0xd848('0x1'),'content':_0xd848('0x9'),'variableName':null});_0x35a51f[_0xd848('0x5')]({'type':_0xd848('0x7'),'content':'','variableName':_0xd848('0xa')});break;}}return _0x35a51f;};exports['getDescriptions']=function(_0x3f5d0a,_0xa3a626){var _0x30f844=[];switch(_0x3f5d0a[_0xd848('0x3')]()){case _0xd848('0x4'):switch(_0xa3a626[_0xd848('0x3')]()){case'inbound':_0x30f844=[{'type':_0xd848('0x1'),'content':_0xd848('0xb'),'key':null,'keyType':null,'variableName':null},{'type':'keyValue','content':'','key':_0xd848('0xc'),'keyType':_0xd848('0x7'),'variableName':_0xd848('0xd')},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0xf'),'keyType':'variable','variableName':_0xd848('0x10')},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x11'),'keyType':'variable','variableName':'destexten'},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x12'),'keyType':_0xd848('0x7'),'variableName':_0xd848('0x6')},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x13'),'keyType':_0xd848('0x7'),'variableName':_0xd848('0x14')},{'type':'keyValue','content':'','key':_0xd848('0x15'),'keyType':'variable','variableName':'agentcalledAt'},{'type':_0xd848('0x1'),'content':_0xd848('0x16'),'key':null,'keyType':null,'variableName':null},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x17'),'keyType':'variable','variableName':_0xd848('0x18')},{'type':_0xd848('0xe'),'content':'','key':'Agent\x20Number','keyType':_0xd848('0x7'),'variableName':_0xd848('0xa')},{'type':_0xd848('0x1'),'content':_0xd848('0x19'),'key':null,'keyType':null,'variableName':null},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x1a'),'keyType':'variable','variableName':_0xd848('0x1b')},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x1c'),'keyType':_0xd848('0x7'),'variableName':'agentconnectAt'},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x1d'),'keyType':_0xd848('0x7'),'variableName':_0xd848('0x1e')},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x1f'),'keyType':'variable','variableName':_0xd848('0x20')},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x21'),'keyType':_0xd848('0x7'),'variableName':_0xd848('0x22')}];break;case _0xd848('0x8'):_0x30f844=[{'type':'string','content':_0xd848('0xb'),'variableName':null},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x23'),'keyType':_0xd848('0x7'),'keyContent':'','variableName':_0xd848('0xa')},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x24'),'keyType':_0xd848('0x7'),'keyContent':'','variableName':_0xd848('0x25')},{'type':'keyValue','content':'','key':_0xd848('0x13'),'keyType':_0xd848('0x7'),'keyContent':'','variableName':'uniqueid'},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x15'),'keyType':_0xd848('0x7'),'keyContent':'','variableName':'starttime'},{'type':_0xd848('0x1'),'content':'***\x20Time\x20Info\x20***'},{'type':'keyValue','content':'','key':'Answer\x20Time','keyType':_0xd848('0x7'),'keyContent':'','variableName':_0xd848('0x26')},{'type':_0xd848('0xe'),'content':'','key':_0xd848('0x27'),'keyType':_0xd848('0x7'),'keyContent':'','variableName':_0xd848('0x28')},{'type':_0xd848('0xe'),'content':'','key':'Duration','keyType':_0xd848('0x7'),'keyContent':'','variableName':'duration'},{'type':'keyValue','content':'','key':_0xd848('0x29'),'keyType':_0xd848('0x7'),'keyContent':'','variableName':_0xd848('0x2a')}];break;}}return _0x30f844;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab3c=['role','stringify','null','Interaction','findOne','update','then','info','error','tracked','user','omit','body','mobile','lodash','../../mysqldb','openchannel-interactions','../../config/logger','mail-interactions','fax-interactions','sms-interactions','upperFirst','InteractionId','toLowerCase','[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','toUpperCase','name'];(function(_0x48e12c,_0x124657){var _0x24ab6c=function(_0x19b6a7){while(--_0x19b6a7){_0x48e12c['push'](_0x48e12c['shift']());}};_0x24ab6c(++_0x124657);}(_0xab3c,0x152));var _0xcab3=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xab3c[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0xcab3('0x0'));var db=require(_0xcab3('0x1'))['db'];var loggers={'openchannel':require('../../config/logger')(_0xcab3('0x2')),'mail':require(_0xcab3('0x3'))(_0xcab3('0x4')),'fax':require(_0xcab3('0x3'))(_0xcab3('0x5')),'sms':require(_0xcab3('0x3'))(_0xcab3('0x6')),'chat':require('../../config/logger')('chat-interactions'),'whatsapp':require(_0xcab3('0x3'))('whatsapp-interactions')};function getInteractionId(_0x12adb1,_0x172f17,_0x22544f){if(_0x12adb1&&_0x12adb1[_[_0xcab3('0x7')](_0x22544f)+_0xcab3('0x8')]){return _0x12adb1[_[_0xcab3('0x7')](_0x22544f)+_0xcab3('0x8')];}else if(_0x12adb1&&_0x12adb1['id']){return _0x12adb1['id'];}else if(_0x172f17&&_0x172f17['id']){return _0x172f17['id'];}else{return'unknown';}}function log(_0x116d00,_0x3f1ec0,_0x2902d2,_0x378a50,_0x31491f,_0x424a33){loggers[_0x31491f[_0xcab3('0x9')]()][_0x116d00](_0xcab3('0xa'),_0x424a33[_0xcab3('0xb')](),_0x3f1ec0?_0x3f1ec0['id']:null,_0x3f1ec0?_0x3f1ec0[_0xcab3('0xc')]:null,_0x3f1ec0?_0x3f1ec0[_0xcab3('0xd')]:null,getInteractionId(_0x2902d2,_0x378a50,_0x31491f),_0x2902d2?JSON[_0xcab3('0xe')](_0x2902d2):_0xcab3('0xf'));}function updateUser(_0x4f4939,_0x1905b2,_0xd8ea2,_0xf720d6,_0x347428){db[_[_0xcab3('0x7')](_0xf720d6)+_0xcab3('0x10')][_0xcab3('0x11')]({'where':{'id':getInteractionId(_0x1905b2,_0xd8ea2,_0xf720d6)}})['then'](function(_0x33f4e0){if(_0x33f4e0){return _0x33f4e0[_0xcab3('0x12')]({'UserId':_0x4f4939?_0x4f4939['id']:null});}})[_0xcab3('0x13')](function(_0xe6c0c){if(_0xe6c0c){log(_0xcab3('0x14'),_0x4f4939,_0x1905b2,_0xd8ea2,_0xf720d6,_0x347428);}})['catch'](function(){log(_0xcab3('0x15'),_0x4f4939,_0x1905b2,_0xd8ea2,_0xf720d6,_0x347428);});}exports[_0xcab3('0x16')]=function(_0x1cbdd3,_0x5e3bb6){return function(_0x3b56da,_0x14414d,_0x5c3eb3){var _0x4c8457=_0x3b56da[_0xcab3('0x17')];var _0x3828bb={};var _0x4c0a6b=_0x3b56da['query'];if(_0x3828bb){_0x3828bb=_['clone'](_0x3b56da['body']);_0x3828bb=_[_0xcab3('0x18')](_0x3828bb,[_0xcab3('0x19'),'html','phone','fax',_0xcab3('0x1a')]);}updateUser(_0x4c8457,_0x3828bb,_0x4c0a6b,_0x1cbdd3,_0x5e3bb6);_0x5c3eb3(null);};};
\ No newline at end of file
+var _0x1023=['update','info','error','tracked','query','clone','phone','fax','lodash','../../mysqldb','../../config/logger','openchannel-interactions','mail-interactions','fax-interactions','sms-interactions','chat-interactions','upperFirst','InteractionId','unknown','toLowerCase','[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','toUpperCase','name','stringify','Interaction','findOne','then'];(function(_0x263613,_0xe5ed7f){var _0x35d9ae=function(_0x493cc1){while(--_0x493cc1){_0x263613['push'](_0x263613['shift']());}};_0x35d9ae(++_0xe5ed7f);}(_0x1023,0xc5));var _0x3102=function(_0x548936,_0xc9c1fd){_0x548936=_0x548936-0x0;var _0x2149f5=_0x1023[_0x548936];return _0x2149f5;};'use strict';var _=require(_0x3102('0x0'));var db=require(_0x3102('0x1'))['db'];var loggers={'openchannel':require(_0x3102('0x2'))(_0x3102('0x3')),'mail':require(_0x3102('0x2'))(_0x3102('0x4')),'fax':require(_0x3102('0x2'))(_0x3102('0x5')),'sms':require(_0x3102('0x2'))(_0x3102('0x6')),'chat':require('../../config/logger')(_0x3102('0x7')),'whatsapp':require(_0x3102('0x2'))('whatsapp-interactions')};function getInteractionId(_0x54d1cc,_0x256dc0,_0xc21569){if(_0x54d1cc&&_0x54d1cc[_[_0x3102('0x8')](_0xc21569)+'InteractionId']){return _0x54d1cc[_[_0x3102('0x8')](_0xc21569)+_0x3102('0x9')];}else if(_0x54d1cc&&_0x54d1cc['id']){return _0x54d1cc['id'];}else if(_0x256dc0&&_0x256dc0['id']){return _0x256dc0['id'];}else{return _0x3102('0xa');}}function log(_0x27c332,_0x5a741c,_0x2a84e5,_0x29bba6,_0x223160,_0x343d21){loggers[_0x223160[_0x3102('0xb')]()][_0x27c332](_0x3102('0xc'),_0x343d21[_0x3102('0xd')](),_0x5a741c?_0x5a741c['id']:null,_0x5a741c?_0x5a741c[_0x3102('0xe')]:null,_0x5a741c?_0x5a741c['role']:null,getInteractionId(_0x2a84e5,_0x29bba6,_0x223160),_0x2a84e5?JSON[_0x3102('0xf')](_0x2a84e5):'null');}function updateUser(_0x1370c1,_0x2ad284,_0x34a7ba,_0x10b1e0,_0x35e4b2){db[_['upperFirst'](_0x10b1e0)+_0x3102('0x10')][_0x3102('0x11')]({'where':{'id':getInteractionId(_0x2ad284,_0x34a7ba,_0x10b1e0)}})[_0x3102('0x12')](function(_0x513db9){if(_0x513db9){return _0x513db9[_0x3102('0x13')]({'UserId':_0x1370c1?_0x1370c1['id']:null});}})['then'](function(_0x65ae73){if(_0x65ae73){log(_0x3102('0x14'),_0x1370c1,_0x2ad284,_0x34a7ba,_0x10b1e0,_0x35e4b2);}})['catch'](function(){log(_0x3102('0x15'),_0x1370c1,_0x2ad284,_0x34a7ba,_0x10b1e0,_0x35e4b2);});}exports[_0x3102('0x16')]=function(_0x1c0985,_0x36b93a){return function(_0x43d2ea,_0x2fbd69,_0xf924f2){var _0x972a37=_0x43d2ea['user'];var _0x3c6779={};var _0x3d7de5=_0x43d2ea[_0x3102('0x17')];if(_0x3c6779){_0x3c6779=_[_0x3102('0x18')](_0x43d2ea['body']);_0x3c6779=_['omit'](_0x3c6779,['body','html',_0x3102('0x19'),_0x3102('0x1a'),'mobile']);}updateUser(_0x972a37,_0x3c6779,_0x3d7de5,_0x1c0985,_0x36b93a);_0xf924f2(null);};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x93ce=['composable-middleware','../../mysqldb','../../config/environment','data1','license','split','aes-256-ctr','format','%s:%s:%s','update','base64','utf8','final','hasOwnProperty','License','then','count','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','users','User','admin','user'];(function(_0x3b75a1,_0x586698){var _0x282d6b=function(_0x3b40d4){while(--_0x3b40d4){_0x3b75a1['push'](_0x3b75a1['shift']());}};_0x282d6b(++_0x586698);}(_0x93ce,0x120));var _0xe93c=function(_0x54ad98,_0x55411f){_0x54ad98=_0x54ad98-0x0;var _0x12b86d=_0x93ce[_0x54ad98];return _0x12b86d;};'use strict';var crypto=require('crypto');var util=require('util');var compose=require(_0xe93c('0x0'));var db=require(_0xe93c('0x1'))['db'];var config=require(_0xe93c('0x2'));function getValueFromLicense(_0x55ecdd,_0x4d3b43){if(_0x55ecdd&&_0x4d3b43){if(_0x4d3b43[_0xe93c('0x3')]&&_0x4d3b43['license']){var _0x49ac0d=_0x4d3b43[_0xe93c('0x3')];var _0x497ac4=_0x4d3b43[_0xe93c('0x4')];var _0x54d3f7=_0x49ac0d[_0xe93c('0x5')]('-')[0x4];var _0x2e94bc=_0x49ac0d[_0xe93c('0x5')]('-')[0x0];var _0x45d026=crypto['createDecipher'](_0xe93c('0x6'),util[_0xe93c('0x7')](_0xe93c('0x8'),_0x54d3f7,_0x49ac0d,_0x2e94bc));var _0xb161c=_0x45d026[_0xe93c('0x9')](_0x497ac4,_0xe93c('0xa'),_0xe93c('0xb'));_0xb161c+=_0x45d026[_0xe93c('0xc')](_0xe93c('0xb'));var _0x384ece=JSON['parse'](_0xb161c);return _0x384ece[_0xe93c('0xd')](_0x55ecdd)?_0x384ece[_0x55ecdd]:null;}}return null;}function isLimit(_0x12be52,_0x13b6c1,_0xcc2db8,_0xe24884){var _0x362eb0=_0x13b6c1;return compose()['use'](function(_0x41532e,_0x16ac7e,_0x15fc38){return db[_0xe93c('0xe')]['findOne']({'where':{'id':0x1},'raw':!![]})[_0xe93c('0xf')](function(_0x457b77){var _0x182889=getValueFromLicense(_0x12be52,_0x457b77);return _0x182889?_0x182889:_0x362eb0;})[_0xe93c('0xf')](function(_0x12a3a5){_0x362eb0=_0x12a3a5;return _0xcc2db8[_0xe93c('0x10')](_0xe24884);})[_0xe93c('0xf')](function(_0x2c342e){if(_0x2c342e>=_0x362eb0){return _0x16ac7e['status'](0x193)[_0xe93c('0x11')]({'message':util['format'](_0xe93c('0x12'),_0x12be52)});}_0x15fc38();})[_0xe93c('0x13')](function(_0xedfb1a){_0x15fc38(_0xedfb1a);});});}function isUserLimit(){return isLimit(_0xe93c('0x14'),0x1,db[_0xe93c('0x15')],{'where':{'$or':[{'role':_0xe93c('0x16')},{'role':_0xe93c('0x17')}]}});}exports['isUserLimit']=isUserLimit;
\ No newline at end of file
+var _0xe8f5=['crypto','../../mysqldb','../../config/environment','license','split','createDecipher','format','update','utf8','final','parse','hasOwnProperty','use','License','findOne','then','count','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','users','User','admin','user'];(function(_0x45c15a,_0x92f366){var _0x28cc0e=function(_0x21903b){while(--_0x21903b){_0x45c15a['push'](_0x45c15a['shift']());}};_0x28cc0e(++_0x92f366);}(_0xe8f5,0x159));var _0x5e8f=function(_0x2af4f0,_0x37ad3a){_0x2af4f0=_0x2af4f0-0x0;var _0x1e70c0=_0xe8f5[_0x2af4f0];return _0x1e70c0;};'use strict';var crypto=require(_0x5e8f('0x0'));var util=require('util');var compose=require('composable-middleware');var db=require(_0x5e8f('0x1'))['db'];var config=require(_0x5e8f('0x2'));function getValueFromLicense(_0x5aef8d,_0x55d7bc){if(_0x5aef8d&&_0x55d7bc){if(_0x55d7bc['data1']&&_0x55d7bc[_0x5e8f('0x3')]){var _0x3a2cf6=_0x55d7bc['data1'];var _0x536aee=_0x55d7bc[_0x5e8f('0x3')];var _0x24323b=_0x3a2cf6['split']('-')[0x4];var _0x17e15e=_0x3a2cf6[_0x5e8f('0x4')]('-')[0x0];var _0x227af5=crypto[_0x5e8f('0x5')]('aes-256-ctr',util[_0x5e8f('0x6')]('%s:%s:%s',_0x24323b,_0x3a2cf6,_0x17e15e));var _0x48fc3f=_0x227af5[_0x5e8f('0x7')](_0x536aee,'base64',_0x5e8f('0x8'));_0x48fc3f+=_0x227af5[_0x5e8f('0x9')](_0x5e8f('0x8'));var _0x123b92=JSON[_0x5e8f('0xa')](_0x48fc3f);return _0x123b92[_0x5e8f('0xb')](_0x5aef8d)?_0x123b92[_0x5aef8d]:null;}}return null;}function isLimit(_0x4d9895,_0x38d228,_0x1df274,_0x1fe743){var _0x25eee3=_0x38d228;return compose()[_0x5e8f('0xc')](function(_0x22b4b6,_0xf97529,_0x2aada8){return db[_0x5e8f('0xd')][_0x5e8f('0xe')]({'where':{'id':0x1},'raw':!![]})['then'](function(_0x48fde0){var _0x47b721=getValueFromLicense(_0x4d9895,_0x48fde0);return _0x47b721?_0x47b721:_0x25eee3;})[_0x5e8f('0xf')](function(_0x183389){_0x25eee3=_0x183389;return _0x1df274[_0x5e8f('0x10')](_0x1fe743);})[_0x5e8f('0xf')](function(_0x4c3f5b){if(_0x4c3f5b>=_0x25eee3){return _0xf97529['status'](0x193)['json']({'message':util['format'](_0x5e8f('0x11'),_0x4d9895)});}_0x2aada8();})[_0x5e8f('0x12')](function(_0x4f2e15){_0x2aada8(_0x4f2e15);});});}function isUserLimit(){return isLimit(_0x5e8f('0x13'),0x1,db[_0x5e8f('0x14')],{'where':{'$or':[{'role':_0x5e8f('0x15')},{'role':_0x5e8f('0x16')}]}});}exports['isUserLimit']=isUserLimit;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x75b2=['CAST(','field','\x20AS\x20','$ne','$notIn','\x20OR\x20','\x20IS\x20NULL)','$in','IN\x20?','NOT\x20IN\x20?','$startsWith','$endsWith','LIKE\x20?','$lt','<\x20?','>\x20?','$lte','<=\x20?','$gte','>=\x20?','$between','start','$substring','pop','utcOffset','hours','add','minutes','seconds','lodash','moment','parseSearch','sqlOperator','startsWith','[$or]','replace','[$and]','split','length','slice','forEach','shift','match','filter','indexOf','map','push','buildExpression','DATE','operator','$eq','value','includes','$gt','days','format','YYYY-MM-DD','castTo','text'];(function(_0x204f66,_0x2355e2){var _0x74f723=function(_0x3fc6b0){while(--_0x3fc6b0){_0x204f66['push'](_0x204f66['shift']());}};_0x74f723(++_0x2355e2);}(_0x75b2,0x1ba));var _0x275b=function(_0x5d590c,_0x37d9c4){_0x5d590c=_0x5d590c-0x0;var _0x37ac07=_0x75b2[_0x5d590c];return _0x37ac07;};'use strict';var _=require(_0x275b('0x0'));var moment=require(_0x275b('0x1'));exports[_0x275b('0x2')]=function(_0x3f251a){var _0x5b8868={'conditions':[]};_0x5b8868[_0x275b('0x3')]=_[_0x275b('0x4')](_0x3f251a,_0x275b('0x5'))?'or':'and';var _0x141fb8=_0x3f251a[_0x275b('0x6')](_0x275b('0x7'),'')[_0x275b('0x6')](_0x275b('0x5'),'')[_0x275b('0x8')]('||');for(var _0x2e2be1=0x0;_0x2e2be1<_0x141fb8[_0x275b('0x9')];_0x2e2be1++){var _0x2b0507=_0x141fb8[_0x2e2be1][_0x275b('0x8')](':=');var _0x2f1232=_0x2b0507[0x0];var _0x271de3=_0x2b0507[_0x275b('0xa')](0x1);_0x271de3[_0x275b('0xb')](function(_0x5e6d7d){var _0x122735=_0x5e6d7d[_0x275b('0x8')]('[')[_0x275b('0xc')]();var _0x6a9e04=_0x5e6d7d[_0x275b('0xd')](/\[(.*?)\]/g);_0x6a9e04[_0x275b('0xb')](function(_0x63c5e9){var _0xf23bed=_0x63c5e9[_0x275b('0x8')]('[')[_0x275b('0xe')](function(_0x27dc26){return _0x27dc26[_0x275b('0xf')](']')>-0x1;})[_0x275b('0x10')](function(_0x12b2b0){return _0x12b2b0[_0x275b('0x8')](']')[0x0];})[0x0];_0x5b8868['conditions'][_0x275b('0x11')]({'field':_0x2f1232,'operator':_0x122735,'value':_0xf23bed});});});}return _0x5b8868;};exports[_0x275b('0x12')]=function(_0x25fa6d,_0x5142b4,_0x3d83fd){var _0x417c={};if(_0x5142b4===_0x275b('0x13')){if(_0x3d83fd[_0x275b('0x14')]===_0x275b('0x15')){_0x3d83fd[_0x275b('0x14')]='$between';_0x3d83fd[_0x275b('0x16')]+=','+_0x3d83fd[_0x275b('0x16')];}else if(_[_0x275b('0x17')]([_0x275b('0x18'),'$lte'],_0x3d83fd['operator'])){_0x3d83fd[_0x275b('0x16')]=moment(_0x3d83fd['value'])['add'](0x1,_0x275b('0x19'))[_0x275b('0x1a')](_0x275b('0x1b'));}}if(_0x3d83fd[_0x275b('0x1c')]){_0x5142b4=_0x3d83fd[_0x275b('0x1c')];_0x417c[_0x275b('0x1d')]=_0x275b('0x1e')+_0x25fa6d+'.'+_0x3d83fd[_0x275b('0x1f')]+_0x275b('0x20')+_0x3d83fd['castTo']+')\x20'+parseOperator(_0x3d83fd[_0x275b('0x14')]);}else{_0x417c[_0x275b('0x1d')]=_0x25fa6d+'.'+_0x3d83fd[_0x275b('0x1f')]+'\x20'+parseOperator(_0x3d83fd[_0x275b('0x14')]);}if(_[_0x275b('0x17')]([_0x275b('0x21'),_0x275b('0x22')],_0x3d83fd[_0x275b('0x14')]))_0x417c[_0x275b('0x1d')]='('+_0x417c['text']+_0x275b('0x23')+_0x25fa6d+'.'+_0x3d83fd[_0x275b('0x1f')]+_0x275b('0x24');_0x417c[_0x275b('0x16')]=parseValue(_0x5142b4,_0x3d83fd['operator'],_0x3d83fd['value']);return _0x417c;};function parseOperator(_0x1c8711){var _0x72b0a6;switch(_0x1c8711){case _0x275b('0x25'):_0x72b0a6=_0x275b('0x26');break;case _0x275b('0x22'):_0x72b0a6=_0x275b('0x27');break;case _0x275b('0x15'):_0x72b0a6='=\x20?';break;case _0x275b('0x21'):_0x72b0a6='<>\x20?';break;case'$substring':case _0x275b('0x28'):case _0x275b('0x29'):_0x72b0a6=_0x275b('0x2a');break;case _0x275b('0x2b'):_0x72b0a6=_0x275b('0x2c');break;case _0x275b('0x18'):_0x72b0a6=_0x275b('0x2d');break;case _0x275b('0x2e'):_0x72b0a6=_0x275b('0x2f');break;case _0x275b('0x30'):_0x72b0a6=_0x275b('0x31');break;case _0x275b('0x32'):_0x72b0a6='BETWEEN\x20?\x20AND\x20?';break;}return _0x72b0a6;}function parseValue(_0x1da66b,_0x2c85a6,_0x3099d8){var _0x26fec6={'start':undefined,'end':undefined};switch(_0x2c85a6){case _0x275b('0x25'):case'$notIn':_0x26fec6[_0x275b('0x33')]=_0x3099d8[_0x275b('0x8')](',');break;case _0x275b('0x34'):_0x26fec6[_0x275b('0x33')]='%'+_0x3099d8+'%';break;case _0x275b('0x28'):_0x26fec6['start']=_0x3099d8+'%';break;case _0x275b('0x29'):_0x26fec6[_0x275b('0x33')]='%'+_0x3099d8;break;case _0x275b('0x32'):var _0x3dc50f=_0x3099d8[_0x275b('0x8')](',');var _0x3099d8=_0x3dc50f[_0x275b('0xc')]();var _0x3244b1=_0x3dc50f[_0x275b('0x35')]();if(_0x1da66b==='DATE'){_0x3099d8=moment(_0x3099d8)[_0x275b('0x36')](0x0,!![])[_0x275b('0x1a')]();_0x3244b1=moment(_0x3244b1)['utcOffset'](0x0,!![])['add'](0x17,_0x275b('0x37'))[_0x275b('0x38')](0x3b,_0x275b('0x39'))[_0x275b('0x38')](0x3b,_0x275b('0x3a'))['format']();}_0x26fec6={'start':_0x3099d8,'end':_0x3244b1};break;default:_0x26fec6['start']=_0x3099d8;break;}return _0x26fec6;}
\ No newline at end of file
+var _0xd09a=['minutes','seconds','lodash','moment','parseSearch','sqlOperator','startsWith','[$or]','and','replace','length','split','match','forEach','filter','indexOf','conditions','push','DATE','operator','$between','value','includes','$gt','add','days','format','castTo','text','CAST(','field','\x20AS\x20','$ne','$notIn','\x20OR\x20','$in','IN\x20?','$eq','=\x20?','<>\x20?','$substring','$lt','>\x20?','$lte','<=\x20?','>=\x20?','BETWEEN\x20?\x20AND\x20?','start','$startsWith','$endsWith','shift','pop','utcOffset'];(function(_0x270adf,_0x1daaa3){var _0x29eda9=function(_0x40afec){while(--_0x40afec){_0x270adf['push'](_0x270adf['shift']());}};_0x29eda9(++_0x1daaa3);}(_0xd09a,0x1aa));var _0xad09=function(_0x5cc21d,_0xb1168f){_0x5cc21d=_0x5cc21d-0x0;var _0x1d2ab9=_0xd09a[_0x5cc21d];return _0x1d2ab9;};'use strict';var _=require(_0xad09('0x0'));var moment=require(_0xad09('0x1'));exports[_0xad09('0x2')]=function(_0x16ca66){var _0x30d877={'conditions':[]};_0x30d877[_0xad09('0x3')]=_[_0xad09('0x4')](_0x16ca66,_0xad09('0x5'))?'or':_0xad09('0x6');var _0x504984=_0x16ca66[_0xad09('0x7')]('[$and]','')[_0xad09('0x7')](_0xad09('0x5'),'')['split']('||');for(var _0x2b6c58=0x0;_0x2b6c58<_0x504984[_0xad09('0x8')];_0x2b6c58++){var _0x45d0a9=_0x504984[_0x2b6c58][_0xad09('0x9')](':=');var _0x388052=_0x45d0a9[0x0];var _0x175aac=_0x45d0a9['slice'](0x1);_0x175aac['forEach'](function(_0x55d443){var _0x3464c3=_0x55d443[_0xad09('0x9')]('[')['shift']();var _0x5eb3a8=_0x55d443[_0xad09('0xa')](/\[(.*?)\]/g);_0x5eb3a8[_0xad09('0xb')](function(_0x4957a3){var _0x2439f1=_0x4957a3[_0xad09('0x9')]('[')[_0xad09('0xc')](function(_0x42ac71){return _0x42ac71[_0xad09('0xd')](']')>-0x1;})['map'](function(_0x22bcf9){return _0x22bcf9[_0xad09('0x9')](']')[0x0];})[0x0];_0x30d877[_0xad09('0xe')][_0xad09('0xf')]({'field':_0x388052,'operator':_0x3464c3,'value':_0x2439f1});});});}return _0x30d877;};exports['buildExpression']=function(_0x1279b9,_0x406878,_0x5492d6){var _0x2031d8={};if(_0x406878===_0xad09('0x10')){if(_0x5492d6[_0xad09('0x11')]==='$eq'){_0x5492d6['operator']=_0xad09('0x12');_0x5492d6['value']+=','+_0x5492d6[_0xad09('0x13')];}else if(_[_0xad09('0x14')]([_0xad09('0x15'),'$lte'],_0x5492d6[_0xad09('0x11')])){_0x5492d6['value']=moment(_0x5492d6['value'])[_0xad09('0x16')](0x1,_0xad09('0x17'))[_0xad09('0x18')]('YYYY-MM-DD');}}if(_0x5492d6[_0xad09('0x19')]){_0x406878=_0x5492d6[_0xad09('0x19')];_0x2031d8[_0xad09('0x1a')]=_0xad09('0x1b')+_0x1279b9+'.'+_0x5492d6[_0xad09('0x1c')]+_0xad09('0x1d')+_0x5492d6[_0xad09('0x19')]+')\x20'+parseOperator(_0x5492d6[_0xad09('0x11')]);}else{_0x2031d8['text']=_0x1279b9+'.'+_0x5492d6['field']+'\x20'+parseOperator(_0x5492d6[_0xad09('0x11')]);}if(_['includes']([_0xad09('0x1e'),_0xad09('0x1f')],_0x5492d6[_0xad09('0x11')]))_0x2031d8[_0xad09('0x1a')]='('+_0x2031d8[_0xad09('0x1a')]+_0xad09('0x20')+_0x1279b9+'.'+_0x5492d6[_0xad09('0x1c')]+'\x20IS\x20NULL)';_0x2031d8[_0xad09('0x13')]=parseValue(_0x406878,_0x5492d6[_0xad09('0x11')],_0x5492d6[_0xad09('0x13')]);return _0x2031d8;};function parseOperator(_0x2a7688){var _0x407d44;switch(_0x2a7688){case _0xad09('0x21'):_0x407d44=_0xad09('0x22');break;case _0xad09('0x1f'):_0x407d44='NOT\x20IN\x20?';break;case _0xad09('0x23'):_0x407d44=_0xad09('0x24');break;case'$ne':_0x407d44=_0xad09('0x25');break;case _0xad09('0x26'):case'$startsWith':case'$endsWith':_0x407d44='LIKE\x20?';break;case _0xad09('0x27'):_0x407d44='<\x20?';break;case'$gt':_0x407d44=_0xad09('0x28');break;case _0xad09('0x29'):_0x407d44=_0xad09('0x2a');break;case'$gte':_0x407d44=_0xad09('0x2b');break;case _0xad09('0x12'):_0x407d44=_0xad09('0x2c');break;}return _0x407d44;}function parseValue(_0x321e82,_0x23af1a,_0x3c5900){var _0xf01cdb={'start':undefined,'end':undefined};switch(_0x23af1a){case _0xad09('0x21'):case'$notIn':_0xf01cdb[_0xad09('0x2d')]=_0x3c5900[_0xad09('0x9')](',');break;case _0xad09('0x26'):_0xf01cdb[_0xad09('0x2d')]='%'+_0x3c5900+'%';break;case _0xad09('0x2e'):_0xf01cdb[_0xad09('0x2d')]=_0x3c5900+'%';break;case _0xad09('0x2f'):_0xf01cdb['start']='%'+_0x3c5900;break;case _0xad09('0x12'):var _0x27221e=_0x3c5900[_0xad09('0x9')](',');var _0x3c5900=_0x27221e[_0xad09('0x30')]();var _0x32134f=_0x27221e[_0xad09('0x31')]();if(_0x321e82==='DATE'){_0x3c5900=moment(_0x3c5900)[_0xad09('0x32')](0x0,!![])[_0xad09('0x18')]();_0x32134f=moment(_0x32134f)[_0xad09('0x32')](0x0,!![])['add'](0x17,'hours')['add'](0x3b,_0xad09('0x33'))[_0xad09('0x16')](0x3b,_0xad09('0x34'))['format']();}_0xf01cdb={'start':_0x3c5900,'end':_0x32134f};break;default:_0xf01cdb[_0xad09('0x2d')]=_0x3c5900;break;}return _0xf01cdb;}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd1b6=['priority','cast','substr','col','ASC','omit','isObject','isString','length','unset','hasOwnProperty','isNumeric','match','forEach','replace','includes','getOptions','query','$id','model','map','intersection','fields','attributes','order','where','pick','filter','merge','options','moment','keys','split','filters','isEmpty','forOwn','type','isPlainObject','parse','format','YYYY-MM-DD','utc','$lte','subtract','name','uniqueid','isArray','limit','offset','sort','indexOf'];(function(_0x5d225a,_0x2debe9){var _0x1e7761=function(_0x491dc2){while(--_0x491dc2){_0x5d225a['push'](_0x5d225a['shift']());}};_0x1e7761(++_0x2debe9);}(_0xd1b6,0x1b6));var _0x6d1b=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xd1b6[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var sequelize=require('sequelize');var moment=require(_0x6d1b('0x0'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x52901e){var _0x468289=['ne'];try{var _0x3f621f=JSON['parse'](_0x52901e);var _0x398b0f=Object[_0x6d1b('0x1')](_0x3f621f)[0x0];return _0x468289['includes'](_0x398b0f);}catch(_0xf18085){return![];}}function getOperatorValue(_0x41f474){var _0x2b9f06=JSON['parse'](_0x41f474);var _0x28c210=Object[_0x6d1b('0x1')](_0x2b9f06)[0x0];var _0x7f40a4=_0x2b9f06[_0x28c210];return{['$'+_0x28c210]:_0x7f40a4};}exports['fields']=function(_0x9a7c31){var _0x1fab2b=null;if(_0x9a7c31){_0x1fab2b=_0x9a7c31[_0x6d1b('0x2')](',');}return _0x1fab2b;};exports[_0x6d1b('0x3')]=function(_0x1e5b41,_0xf4a03c){var _0x19d314={};if(!_[_0x6d1b('0x4')](_0x1e5b41)){_[_0x6d1b('0x5')](_0x1e5b41,function(_0x48c51f,_0x113ea4){try{if(_0xf4a03c){var _0x29cfdb=_['find'](_0xf4a03c,{'name':_0x113ea4})||{};if(hasSequelizeOperator(_0x48c51f)){_0x19d314[_0x113ea4]=getOperatorValue(_0x48c51f);}else if(_0x29cfdb[_0x6d1b('0x6')]==='DATE'&&_[_0x6d1b('0x7')](_0x48c51f)){var _0x23251a=JSON[_0x6d1b('0x8')](_0x48c51f);var _0x5e0807={'$gte':moment(moment(_0x23251a['$gte'])[_0x6d1b('0x9')](_0x6d1b('0xa')))[_0x6d1b('0xb')]()['format'](),'$lte':moment(moment(_0x23251a[_0x6d1b('0xc')])[_0x6d1b('0x9')](_0x6d1b('0xa')))['utc']()[_0x6d1b('0xd')](0x1,'s')[_0x6d1b('0x9')]()};_0x19d314[_0x113ea4]=_0x5e0807;}else if(_0x29cfdb[_0x6d1b('0xe')]===_0x6d1b('0xf')){_0x19d314[_0x113ea4]=_0x48c51f;}else{_0x19d314[_0x113ea4]=_[_0x6d1b('0x10')](_0x48c51f)?_0x48c51f:JSON[_0x6d1b('0x8')](_0x48c51f);}}else{_0x19d314[_0x113ea4]=_[_0x6d1b('0x10')](_0x48c51f)?_0x48c51f:JSON[_0x6d1b('0x8')](_0x48c51f);}}catch(_0x481762){_0x19d314[_0x113ea4]=_0x48c51f[_0x6d1b('0x2')](',');}});}return _0x19d314;};exports[_0x6d1b('0x11')]=function(_0x5ced88){_0x5ced88=parseInt(_0x5ced88,0xa);if(!_0x5ced88||_0x5ced88<0x0){_0x5ced88=LIMIT_VALUE;}return _0x5ced88;};exports[_0x6d1b('0x12')]=function(_0x1857a6){_0x1857a6=parseInt(_0x1857a6,0xa);if(!_0x1857a6||_0x1857a6<0x0){_0x1857a6=0x0;}return _0x1857a6;};exports[_0x6d1b('0x13')]=function(_0x932fb3){var _0xb35d1,_0x1af342=null;if(_0x932fb3){_0xb35d1=_0x932fb3['split'](',');_0x1af342=_['map'](_0xb35d1,function(_0x3ea4ba){if(_0x3ea4ba[_0x6d1b('0x14')]('-')===0x0){return[_0x3ea4ba===_0x6d1b('0x15')?sequelize[_0x6d1b('0x16')](sequelize['col'](_0x6d1b('0x15')),'unsigned'):_0x3ea4ba[_0x6d1b('0x17')](0x1),'DESC'];}else{return[_0x3ea4ba==='priority'?sequelize[_0x6d1b('0x16')](sequelize[_0x6d1b('0x18')](_0x6d1b('0x15')),'unsigned'):_0x3ea4ba,_0x6d1b('0x19')];}});}return _0x1af342;};exports[_0x6d1b('0x1a')]=function(_0x57ab1f,_0x5d6e45){if(_[_0x6d1b('0x4')](_0x57ab1f)){return _0x57ab1f;}if(_[_0x6d1b('0x10')](_0x57ab1f)){for(var _0x5ec190=0x0;_0x5ec190<_0x57ab1f['length'];_0x5ec190+=0x1){_0x57ab1f[_0x5ec190]=this[_0x6d1b('0x1a')](_0x57ab1f[_0x5ec190],_0x5d6e45);}return _0x57ab1f;}if(!_[_0x6d1b('0x1b')](_0x57ab1f)){return _0x57ab1f;}if(_[_0x6d1b('0x1c')](_0x5d6e45)){_0x5d6e45=[_0x5d6e45];}if(!_[_0x6d1b('0x10')](_0x5d6e45)){return _0x57ab1f;}for(var _0xedd7fa=0x0;_0xedd7fa<_0x5d6e45[_0x6d1b('0x1d')];_0xedd7fa+=0x1){_[_0x6d1b('0x1e')](_0x57ab1f,_0x5d6e45[_0xedd7fa]);}for(var _0x201dcb in _0x57ab1f){if(_0x57ab1f[_0x6d1b('0x1f')](_0x201dcb)){_0x57ab1f[_0x201dcb]=this[_0x6d1b('0x1a')](_0x57ab1f[_0x201dcb],_0x5d6e45);}}return _0x57ab1f;};exports[_0x6d1b('0x20')]=function(_0x1d830a){return _0x1d830a[_0x6d1b('0x21')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports['isEmail']=function(_0x3aa5d5){return _0x3aa5d5['match'](/^\S+@\S+$/)?!![]:![];};exports['getFullTextValue']=function(_0xba6830){var _0x3f4e2a=[];_0xba6830[_0x6d1b('0x2')](/[ ,]+/)[_0x6d1b('0x22')](function(_0x370045){_0x370045=_0x370045[_0x6d1b('0x23')](/([^:]")"+/g,'$1');_0x370045='+'+_0x370045+'*';if(_0x370045[_0x6d1b('0x24')]('@'))_0x370045='\x22'+_0x370045+'\x22';_0x3f4e2a['push'](_0x370045);});return _0x3f4e2a['join']('\x20');};exports[_0x6d1b('0x25')]=function(_0x5b0aab,_0xdf10b4,_0x39e3c2){var _0x57d8d9={},_0x13721f={};if(_0xdf10b4[_0x6d1b('0x26')][_0x6d1b('0x27')]){_0xdf10b4[_0x6d1b('0x26')]['id']=_0xdf10b4[_0x6d1b('0x26')][_0x6d1b('0x27')];delete _0xdf10b4[_0x6d1b('0x26')]['$id'];}_0x57d8d9[_0x6d1b('0x28')]=_[_0x6d1b('0x29')](_0x5b0aab,_0x6d1b('0xe'));_0x57d8d9[_0x6d1b('0x26')]=_['keys'](_0xdf10b4[_0x6d1b('0x26')]);_0x57d8d9['filters']=_[_0x6d1b('0x2a')](_0x57d8d9['model'],_0x57d8d9[_0x6d1b('0x26')]);_0x13721f['attributes']=_['intersection'](_0x57d8d9[_0x6d1b('0x28')],this[_0x6d1b('0x2b')](_0xdf10b4[_0x6d1b('0x26')][_0x6d1b('0x2b')]));_0x13721f['attributes']=_0x13721f['attributes'][_0x6d1b('0x1d')]?_0x13721f[_0x6d1b('0x2c')]:_0x57d8d9[_0x6d1b('0x28')];if(!_0xdf10b4[_0x6d1b('0x26')]['hasOwnProperty']('nolimit')){_0x13721f['limit']=this[_0x6d1b('0x11')](_0xdf10b4[_0x6d1b('0x26')][_0x6d1b('0x11')]);_0x13721f[_0x6d1b('0x12')]=this[_0x6d1b('0x12')](_0xdf10b4['query'][_0x6d1b('0x12')]);}_0x13721f[_0x6d1b('0x2d')]=this[_0x6d1b('0x13')](_0xdf10b4[_0x6d1b('0x26')][_0x6d1b('0x13')]);_0x13721f[_0x6d1b('0x2e')]=this['filters'](_[_0x6d1b('0x2f')](_0xdf10b4['query'],_0x57d8d9[_0x6d1b('0x3')]),_0x5b0aab);if(_0xdf10b4[_0x6d1b('0x26')][_0x6d1b('0x30')]){_0x13721f[_0x6d1b('0x2e')]=_[_0x6d1b('0x31')](_0x13721f['where'],{'$or':_[_0x6d1b('0x29')](_0x5b0aab,function(_0x18d3ff){if(_0x18d3ff[_0x6d1b('0x6')]!=='VIRTUAL'){if(_0x39e3c2){return sequelize[_0x6d1b('0x2e')](sequelize['fn']('lower',sequelize['col'](_0x18d3ff['name'])),{'$like':sequelize['fn']('lower','%'+_0xdf10b4['query'][_0x6d1b('0x30')]+'%')});}else{var _0x4a7f6f={};_0x4a7f6f[_0x18d3ff[_0x6d1b('0xe')]]={'$like':'%'+_0xdf10b4[_0x6d1b('0x26')][_0x6d1b('0x30')]+'%'};return _0x4a7f6f;}}})});}_0x13721f=_[_0x6d1b('0x31')]({},_0x13721f,_0xdf10b4[_0x6d1b('0x32')]);return _0x13721f;};
\ No newline at end of file
+var _0x39f7=['match','^[+]?[0-9]*$','isEmail','replace','includes','push','join','query','$id','model','intersection','attributes','nolimit','limit','order','where','pick','filter','merge','VIRTUAL','lower','options','lodash','moment','parse','keys','fields','split','filters','forOwn','type','DATE','isPlainObject','$gte','format','YYYY-MM-DD','utc','subtract','name','uniqueid','isArray','offset','sort','map','indexOf','priority','cast','col','unsigned','substr','DESC','ASC','omit','isEmpty','length','isString'];(function(_0x3e21f4,_0x43d310){var _0x40fc49=function(_0x54a8f6){while(--_0x54a8f6){_0x3e21f4['push'](_0x3e21f4['shift']());}};_0x40fc49(++_0x43d310);}(_0x39f7,0x1d6));var _0x739f=function(_0x1034ca,_0x14ecd6){_0x1034ca=_0x1034ca-0x0;var _0x1a023a=_0x39f7[_0x1034ca];return _0x1a023a;};'use strict';var _=require(_0x739f('0x0'));var sequelize=require('sequelize');var moment=require(_0x739f('0x1'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x2592a4){var _0x1a76cc=['ne'];try{var _0x4c98d9=JSON[_0x739f('0x2')](_0x2592a4);var _0x59139e=Object['keys'](_0x4c98d9)[0x0];return _0x1a76cc['includes'](_0x59139e);}catch(_0x58d10e){return![];}}function getOperatorValue(_0x18b534){var _0x4754a4=JSON[_0x739f('0x2')](_0x18b534);var _0x3c6de0=Object[_0x739f('0x3')](_0x4754a4)[0x0];var _0x3a8897=_0x4754a4[_0x3c6de0];return{['$'+_0x3c6de0]:_0x3a8897};}exports[_0x739f('0x4')]=function(_0x5948c2){var _0x20f9d5=null;if(_0x5948c2){_0x20f9d5=_0x5948c2[_0x739f('0x5')](',');}return _0x20f9d5;};exports[_0x739f('0x6')]=function(_0x130d50,_0xcd660b){var _0x596486={};if(!_['isEmpty'](_0x130d50)){_[_0x739f('0x7')](_0x130d50,function(_0x59fff0,_0x128d72){try{if(_0xcd660b){var _0x2e353d=_['find'](_0xcd660b,{'name':_0x128d72})||{};if(hasSequelizeOperator(_0x59fff0)){_0x596486[_0x128d72]=getOperatorValue(_0x59fff0);}else if(_0x2e353d[_0x739f('0x8')]===_0x739f('0x9')&&_[_0x739f('0xa')](_0x59fff0)){var _0x53e107=JSON[_0x739f('0x2')](_0x59fff0);var _0x2de465={'$gte':moment(moment(_0x53e107[_0x739f('0xb')])[_0x739f('0xc')](_0x739f('0xd')))[_0x739f('0xe')]()[_0x739f('0xc')](),'$lte':moment(moment(_0x53e107['$lte'])[_0x739f('0xc')](_0x739f('0xd')))[_0x739f('0xe')]()[_0x739f('0xf')](0x1,'s')[_0x739f('0xc')]()};_0x596486[_0x128d72]=_0x2de465;}else if(_0x2e353d[_0x739f('0x10')]===_0x739f('0x11')){_0x596486[_0x128d72]=_0x59fff0;}else{_0x596486[_0x128d72]=_[_0x739f('0x12')](_0x59fff0)?_0x59fff0:JSON[_0x739f('0x2')](_0x59fff0);}}else{_0x596486[_0x128d72]=_[_0x739f('0x12')](_0x59fff0)?_0x59fff0:JSON[_0x739f('0x2')](_0x59fff0);}}catch(_0x106258){_0x596486[_0x128d72]=_0x59fff0[_0x739f('0x5')](',');}});}return _0x596486;};exports['limit']=function(_0x4943a8){_0x4943a8=parseInt(_0x4943a8,0xa);if(!_0x4943a8||_0x4943a8<0x0){_0x4943a8=LIMIT_VALUE;}return _0x4943a8;};exports[_0x739f('0x13')]=function(_0x372b92){_0x372b92=parseInt(_0x372b92,0xa);if(!_0x372b92||_0x372b92<0x0){_0x372b92=0x0;}return _0x372b92;};exports[_0x739f('0x14')]=function(_0x9f61bb){var _0x474bde,_0x4b60bb=null;if(_0x9f61bb){_0x474bde=_0x9f61bb[_0x739f('0x5')](',');_0x4b60bb=_[_0x739f('0x15')](_0x474bde,function(_0x39cb05){if(_0x39cb05[_0x739f('0x16')]('-')===0x0){return[_0x39cb05===_0x739f('0x17')?sequelize[_0x739f('0x18')](sequelize[_0x739f('0x19')]('priority'),_0x739f('0x1a')):_0x39cb05[_0x739f('0x1b')](0x1),_0x739f('0x1c')];}else{return[_0x39cb05==='priority'?sequelize[_0x739f('0x18')](sequelize['col'](_0x739f('0x17')),_0x739f('0x1a')):_0x39cb05,_0x739f('0x1d')];}});}return _0x4b60bb;};exports[_0x739f('0x1e')]=function(_0x1ef64c,_0x3f2fdb){if(_[_0x739f('0x1f')](_0x1ef64c)){return _0x1ef64c;}if(_[_0x739f('0x12')](_0x1ef64c)){for(var _0x16292f=0x0;_0x16292f<_0x1ef64c[_0x739f('0x20')];_0x16292f+=0x1){_0x1ef64c[_0x16292f]=this[_0x739f('0x1e')](_0x1ef64c[_0x16292f],_0x3f2fdb);}return _0x1ef64c;}if(!_['isObject'](_0x1ef64c)){return _0x1ef64c;}if(_[_0x739f('0x21')](_0x3f2fdb)){_0x3f2fdb=[_0x3f2fdb];}if(!_[_0x739f('0x12')](_0x3f2fdb)){return _0x1ef64c;}for(var _0x185fc3=0x0;_0x185fc3<_0x3f2fdb[_0x739f('0x20')];_0x185fc3+=0x1){_['unset'](_0x1ef64c,_0x3f2fdb[_0x185fc3]);}for(var _0xd882e2 in _0x1ef64c){if(_0x1ef64c['hasOwnProperty'](_0xd882e2)){_0x1ef64c[_0xd882e2]=this[_0x739f('0x1e')](_0x1ef64c[_0xd882e2],_0x3f2fdb);}}return _0x1ef64c;};exports['isNumeric']=function(_0x96673b){return _0x96673b[_0x739f('0x22')](RegExp(_0x739f('0x23')))?!![]:![];};exports[_0x739f('0x24')]=function(_0x34a657){return _0x34a657[_0x739f('0x22')](/^\S+@\S+$/)?!![]:![];};exports['getFullTextValue']=function(_0x2e9ced){var _0x5df382=[];_0x2e9ced[_0x739f('0x5')](/[ ,]+/)['forEach'](function(_0x10910b){_0x10910b=_0x10910b[_0x739f('0x25')](/([^:]")"+/g,'$1');_0x10910b='+'+_0x10910b+'*';if(_0x10910b[_0x739f('0x26')]('@'))_0x10910b='\x22'+_0x10910b+'\x22';_0x5df382[_0x739f('0x27')](_0x10910b);});return _0x5df382[_0x739f('0x28')]('\x20');};exports['getOptions']=function(_0x56a1ec,_0x446b40,_0x42a0c5){var _0x299ea3={},_0x2387fb={};if(_0x446b40[_0x739f('0x29')]['$id']){_0x446b40[_0x739f('0x29')]['id']=_0x446b40[_0x739f('0x29')][_0x739f('0x2a')];delete _0x446b40[_0x739f('0x29')][_0x739f('0x2a')];}_0x299ea3[_0x739f('0x2b')]=_[_0x739f('0x15')](_0x56a1ec,_0x739f('0x10'));_0x299ea3['query']=_[_0x739f('0x3')](_0x446b40[_0x739f('0x29')]);_0x299ea3[_0x739f('0x6')]=_[_0x739f('0x2c')](_0x299ea3[_0x739f('0x2b')],_0x299ea3[_0x739f('0x29')]);_0x2387fb[_0x739f('0x2d')]=_[_0x739f('0x2c')](_0x299ea3[_0x739f('0x2b')],this[_0x739f('0x4')](_0x446b40[_0x739f('0x29')][_0x739f('0x4')]));_0x2387fb[_0x739f('0x2d')]=_0x2387fb[_0x739f('0x2d')][_0x739f('0x20')]?_0x2387fb[_0x739f('0x2d')]:_0x299ea3[_0x739f('0x2b')];if(!_0x446b40[_0x739f('0x29')]['hasOwnProperty'](_0x739f('0x2e'))){_0x2387fb['limit']=this[_0x739f('0x2f')](_0x446b40[_0x739f('0x29')][_0x739f('0x2f')]);_0x2387fb[_0x739f('0x13')]=this[_0x739f('0x13')](_0x446b40[_0x739f('0x29')][_0x739f('0x13')]);}_0x2387fb[_0x739f('0x30')]=this[_0x739f('0x14')](_0x446b40[_0x739f('0x29')][_0x739f('0x14')]);_0x2387fb[_0x739f('0x31')]=this[_0x739f('0x6')](_[_0x739f('0x32')](_0x446b40[_0x739f('0x29')],_0x299ea3[_0x739f('0x6')]),_0x56a1ec);if(_0x446b40[_0x739f('0x29')][_0x739f('0x33')]){_0x2387fb[_0x739f('0x31')]=_[_0x739f('0x34')](_0x2387fb[_0x739f('0x31')],{'$or':_[_0x739f('0x15')](_0x56a1ec,function(_0x3c803f){if(_0x3c803f[_0x739f('0x8')]!==_0x739f('0x35')){if(_0x42a0c5){return sequelize[_0x739f('0x31')](sequelize['fn'](_0x739f('0x36'),sequelize[_0x739f('0x19')](_0x3c803f[_0x739f('0x10')])),{'$like':sequelize['fn'](_0x739f('0x36'),'%'+_0x446b40['query'][_0x739f('0x33')]+'%')});}else{var _0x3a273b={};_0x3a273b[_0x3c803f[_0x739f('0x10')]]={'$like':'%'+_0x446b40[_0x739f('0x29')][_0x739f('0x33')]+'%'};return _0x3a273b;}}})});}_0x2387fb=_['merge']({},_0x2387fb,_0x446b40[_0x739f('0x37')]);return _0x2387fb;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x16d1=['toISOString','split','static','views','/server/views','engine','ejs','renderFile','view\x20engine','50mb','json','initialize','serve-favicon','method-override','errorhandler','passport','./environment','../mysqldb','default','get','env','production','set','appPath','root','development','test','client','use','json\x20replacer'];(function(_0x5e14f0,_0x5f0b37){var _0x5b406b=function(_0xfbe200){while(--_0xfbe200){_0x5e14f0['push'](_0x5e14f0['shift']());}};_0x5b406b(++_0x5f0b37);}(_0x16d1,0xc0));var _0x116d=function(_0x5d6454,_0x1eaf45){_0x5d6454=_0x5d6454-0x0;var _0x50cce8=_0x16d1[_0x5d6454];return _0x50cce8;};'use strict';var express=require('express');var favicon=require(_0x116d('0x0'));var bodyParser=require('body-parser');var methodOverride=require(_0x116d('0x1'));var cookieParser=require('cookie-parser');var errorHandler=require(_0x116d('0x2'));var path=require('path');var passport=require(_0x116d('0x3'));var cors=require('cors');var moment=require('moment');var config=require(_0x116d('0x4'));var db=require(_0x116d('0x5'))['db'];exports[_0x116d('0x6')]=function(_0x254dfd){var _0x24fa4b=_0x254dfd[_0x116d('0x7')](_0x116d('0x8'));if(_0x24fa4b===_0x116d('0x9')){_0x254dfd[_0x116d('0xa')](_0x116d('0xb'),path['join'](config[_0x116d('0xc')],'public'));}if(_0x24fa4b===_0x116d('0xd')||_0x24fa4b===_0x116d('0xe')){_0x254dfd[_0x116d('0xa')](_0x116d('0xb'),path['join'](config[_0x116d('0xc')],_0x116d('0xf')));_0x254dfd[_0x116d('0x10')](errorHandler());}_0x254dfd[_0x116d('0xa')](_0x116d('0x11'),function(_0x1595d2,_0x39b247){if(this[_0x1595d2]instanceof Date){_0x39b247=this[_0x1595d2][_0x116d('0x12')]()[_0x116d('0x13')]('.')[0x0]+'Z';}return _0x39b247;});_0x254dfd[_0x116d('0x10')](express[_0x116d('0x14')](_0x254dfd[_0x116d('0x7')]('appPath')));_0x254dfd[_0x116d('0xa')](_0x116d('0x15'),config[_0x116d('0xc')]+_0x116d('0x16'));_0x254dfd[_0x116d('0x17')]('html',require(_0x116d('0x18'))[_0x116d('0x19')]);_0x254dfd[_0x116d('0xa')](_0x116d('0x1a'),'html');_0x254dfd[_0x116d('0x10')](bodyParser['urlencoded']({'limit':_0x116d('0x1b'),'extended':!![]}));_0x254dfd['use'](bodyParser[_0x116d('0x1c')]({'limit':'50mb'}));_0x254dfd['use'](cors());_0x254dfd[_0x116d('0x10')](methodOverride());_0x254dfd[_0x116d('0x10')](cookieParser());_0x254dfd[_0x116d('0x10')](passport[_0x116d('0x1d')]());};
\ No newline at end of file
+var _0xfdf5=['express','serve-favicon','method-override','errorhandler','passport','moment','./environment','../mysqldb','default','get','env','production','set','appPath','join','public','development','test','root','client','use','json\x20replacer','toISOString','split','static','/server/views','engine','ejs','view\x20engine','html','50mb','json'];(function(_0x4cba56,_0x5b2c44){var _0x3cc9f3=function(_0x5bb80a){while(--_0x5bb80a){_0x4cba56['push'](_0x4cba56['shift']());}};_0x3cc9f3(++_0x5b2c44);}(_0xfdf5,0x1e0));var _0x5fdf=function(_0x1ce631,_0x36a3ec){_0x1ce631=_0x1ce631-0x0;var _0x5120a8=_0xfdf5[_0x1ce631];return _0x5120a8;};'use strict';var express=require(_0x5fdf('0x0'));var favicon=require(_0x5fdf('0x1'));var bodyParser=require('body-parser');var methodOverride=require(_0x5fdf('0x2'));var cookieParser=require('cookie-parser');var errorHandler=require(_0x5fdf('0x3'));var path=require('path');var passport=require(_0x5fdf('0x4'));var cors=require('cors');var moment=require(_0x5fdf('0x5'));var config=require(_0x5fdf('0x6'));var db=require(_0x5fdf('0x7'))['db'];exports[_0x5fdf('0x8')]=function(_0x57c4bb){var _0x656814=_0x57c4bb[_0x5fdf('0x9')](_0x5fdf('0xa'));if(_0x656814===_0x5fdf('0xb')){_0x57c4bb[_0x5fdf('0xc')](_0x5fdf('0xd'),path[_0x5fdf('0xe')](config['root'],_0x5fdf('0xf')));}if(_0x656814===_0x5fdf('0x10')||_0x656814===_0x5fdf('0x11')){_0x57c4bb['set'](_0x5fdf('0xd'),path[_0x5fdf('0xe')](config[_0x5fdf('0x12')],_0x5fdf('0x13')));_0x57c4bb[_0x5fdf('0x14')](errorHandler());}_0x57c4bb[_0x5fdf('0xc')](_0x5fdf('0x15'),function(_0x183dd2,_0x209059){if(this[_0x183dd2]instanceof Date){_0x209059=this[_0x183dd2][_0x5fdf('0x16')]()[_0x5fdf('0x17')]('.')[0x0]+'Z';}return _0x209059;});_0x57c4bb[_0x5fdf('0x14')](express[_0x5fdf('0x18')](_0x57c4bb[_0x5fdf('0x9')](_0x5fdf('0xd'))));_0x57c4bb[_0x5fdf('0xc')]('views',config[_0x5fdf('0x12')]+_0x5fdf('0x19'));_0x57c4bb[_0x5fdf('0x1a')]('html',require(_0x5fdf('0x1b'))['renderFile']);_0x57c4bb[_0x5fdf('0xc')](_0x5fdf('0x1c'),_0x5fdf('0x1d'));_0x57c4bb[_0x5fdf('0x14')](bodyParser['urlencoded']({'limit':_0x5fdf('0x1e'),'extended':!![]}));_0x57c4bb['use'](bodyParser[_0x5fdf('0x1f')]({'limit':_0x5fdf('0x1e')}));_0x57c4bb[_0x5fdf('0x14')](cors());_0x57c4bb[_0x5fdf('0x14')](methodOverride());_0x57c4bb['use'](cookieParser());_0x57c4bb[_0x5fdf('0x14')](passport['initialize']());};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2dbb=['family','IPv4','concat','head','mac','address','cpus','map','model','createHash','md5','update','digest','hex','platform','licenseToken','test','dmidecode\x20--string\x20system-uuid','utf8','replace','hostname','macAddress','substring','lodash','crypto','bimedia-machine-uuid','child_process','execSync','../environment','networkInterfaces','orderBy','keys','length','filter'];(function(_0x598f6d,_0x5653ca){var _0x2e0417=function(_0x3ef093){while(--_0x3ef093){_0x598f6d['push'](_0x598f6d['shift']());}};_0x2e0417(++_0x5653ca);}(_0x2dbb,0x1f3));var _0xb2db=function(_0x5061aa,_0x46adca){_0x5061aa=_0x5061aa-0x0;var _0x449ff6=_0x2dbb[_0x5061aa];return _0x449ff6;};'use strict';var _=require(_0xb2db('0x0'));var os=require('os');var crypto=require(_0xb2db('0x1'));var machine=require(_0xb2db('0x2'));var exec=require(_0xb2db('0x3'))[_0xb2db('0x4')];var config=require(_0xb2db('0x5'));function getInterfaces(){var _0xe5d60b=[];var _0x3e486d=os[_0xb2db('0x6')]();var _0x20ed5a=_[_0xb2db('0x7')](_[_0xb2db('0x8')](_0x3e486d));for(var _0x3679e1=0x0;_0x3679e1<_0x20ed5a[_0xb2db('0x9')];_0x3679e1++){var _0x3e0d10=_0x3e486d[_0x20ed5a[_0x3679e1]][_0xb2db('0xa')](function(_0x3bef59){return _0x3bef59[_0xb2db('0xb')]===_0xb2db('0xc')&&_0x3bef59['internal']===![];});_0xe5d60b=_0xe5d60b[_0xb2db('0xd')](_0x3e0d10);}return _0xe5d60b;}function getFirstInterface(){var _0x4aedd7=_[_0xb2db('0xe')](getInterfaces());return{'macAddress':_0x4aedd7&&_0x4aedd7[_0xb2db('0xf')]?_0x4aedd7[_0xb2db('0xf')]:'00:00:00:00:00:00','ipAddress':_0x4aedd7&&_0x4aedd7[_0xb2db('0x10')]?_0x4aedd7[_0xb2db('0x10')]:'127.0.0.1'};}exports['getFirstInterface']=getFirstInterface;function getCPUhash(){var _0x4f4bbd=_[_0xb2db('0x7')](os[_0xb2db('0x11')]()[_0xb2db('0x12')](function(_0x8954f2){return _0x8954f2[_0xb2db('0x13')];}))['join'](':');return crypto[_0xb2db('0x14')](_0xb2db('0x15'))[_0xb2db('0x16')](_0x4f4bbd)[_0xb2db('0x17')](_0xb2db('0x18'));}exports['getUuid']=function(){var _0x19afb1=os[_0xb2db('0x19')]();var _0x34b29a=/[0-9a-f-]{36}/;if(config[_0xb2db('0x1a')]&&_0x34b29a[_0xb2db('0x1b')](config[_0xb2db('0x1a')])){return config['licenseToken'];}else if(_0x19afb1==='win32'){return exec(_0xb2db('0x1c'),{'encoding':_0xb2db('0x1d')})[_0xb2db('0x1e')]('\x0d\x0a','');}else{var _0x30953a=getFirstInterface();var _0xc8c637=getCPUhash();var _0x49998a=_0xc8c637+'|'+os[_0xb2db('0x1f')]()+'|'+_0x30953a[_0xb2db('0x20')]+'|'+_0x30953a['ipAddress'];var _0x5064f8=crypto[_0xb2db('0x14')](_0xb2db('0x15'))[_0xb2db('0x16')](_0x49998a)[_0xb2db('0x17')](_0xb2db('0x18'));return _0x5064f8[_0xb2db('0x21')](0x0,0x8)+'-'+_0x5064f8[_0xb2db('0x21')](0x8,0xc)+'-'+_0x5064f8[_0xb2db('0x21')](0xc,0x10)+'-'+_0x5064f8[_0xb2db('0x21')](0x10,0x14)+'-'+_0x5064f8[_0xb2db('0x21')](0x14);}};
\ No newline at end of file
+var _0xfc58=['platform','licenseToken','test','win32','dmidecode\x20--string\x20system-uuid','replace','hostname','ipAddress','substring','lodash','bimedia-machine-uuid','child_process','orderBy','keys','filter','internal','concat','head','mac','00:00:00:00:00:00','address','getFirstInterface','cpus','map','model','join','digest','hex','getUuid'];(function(_0x542fde,_0x3fc4c7){var _0x3301b2=function(_0x5b87c3){while(--_0x5b87c3){_0x542fde['push'](_0x542fde['shift']());}};_0x3301b2(++_0x3fc4c7);}(_0xfc58,0x1bc));var _0x8fc5=function(_0x5c113a,_0x2b2da1){_0x5c113a=_0x5c113a-0x0;var _0x143b8e=_0xfc58[_0x5c113a];return _0x143b8e;};'use strict';var _=require(_0x8fc5('0x0'));var os=require('os');var crypto=require('crypto');var machine=require(_0x8fc5('0x1'));var exec=require(_0x8fc5('0x2'))['execSync'];var config=require('../environment');function getInterfaces(){var _0x5eb699=[];var _0x2d4342=os['networkInterfaces']();var _0x56ca51=_[_0x8fc5('0x3')](_[_0x8fc5('0x4')](_0x2d4342));for(var _0x41326e=0x0;_0x41326e<_0x56ca51['length'];_0x41326e++){var _0x3362c0=_0x2d4342[_0x56ca51[_0x41326e]][_0x8fc5('0x5')](function(_0x1d1473){return _0x1d1473['family']==='IPv4'&&_0x1d1473[_0x8fc5('0x6')]===![];});_0x5eb699=_0x5eb699[_0x8fc5('0x7')](_0x3362c0);}return _0x5eb699;}function getFirstInterface(){var _0x52f1f0=_[_0x8fc5('0x8')](getInterfaces());return{'macAddress':_0x52f1f0&&_0x52f1f0[_0x8fc5('0x9')]?_0x52f1f0[_0x8fc5('0x9')]:_0x8fc5('0xa'),'ipAddress':_0x52f1f0&&_0x52f1f0[_0x8fc5('0xb')]?_0x52f1f0['address']:'127.0.0.1'};}exports[_0x8fc5('0xc')]=getFirstInterface;function getCPUhash(){var _0x5732b3=_[_0x8fc5('0x3')](os[_0x8fc5('0xd')]()[_0x8fc5('0xe')](function(_0xb650b1){return _0xb650b1[_0x8fc5('0xf')];}))[_0x8fc5('0x10')](':');return crypto['createHash']('md5')['update'](_0x5732b3)[_0x8fc5('0x11')](_0x8fc5('0x12'));}exports[_0x8fc5('0x13')]=function(){var _0x14a698=os[_0x8fc5('0x14')]();var _0x429050=/[0-9a-f-]{36}/;if(config[_0x8fc5('0x15')]&&_0x429050[_0x8fc5('0x16')](config[_0x8fc5('0x15')])){return config[_0x8fc5('0x15')];}else if(_0x14a698===_0x8fc5('0x17')){return exec(_0x8fc5('0x18'),{'encoding':'utf8'})[_0x8fc5('0x19')]('\x0d\x0a','');}else{var _0x3dc6cb=getFirstInterface();var _0x3b45a6=getCPUhash();var _0x4f0773=_0x3b45a6+'|'+os[_0x8fc5('0x1a')]()+'|'+_0x3dc6cb['macAddress']+'|'+_0x3dc6cb[_0x8fc5('0x1b')];var _0x56507a=crypto['createHash']('md5')['update'](_0x4f0773)[_0x8fc5('0x11')](_0x8fc5('0x12'));return _0x56507a[_0x8fc5('0x1c')](0x0,0x8)+'-'+_0x56507a['substring'](0x8,0xc)+'-'+_0x56507a[_0x8fc5('0x1c')](0xc,0x10)+'-'+_0x56507a['substring'](0x10,0x14)+'-'+_0x56507a[_0x8fc5('0x1c')](0x14);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x509b=['toUpperCase','format','YYYY-MM-DD\x20HH:mm','encryptString','diff','decryptString','days','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','error','message','finally','getUuid','License','spread','SERVICE\x20LICENSE\x20STARTED\x20%s','default','util','moment','request-promise','bluebird','version','./hardware','../logger','license','https://www.xcallymotion.com','%s/api/servers/%s/check?version=%s','exports','%s/api/servers/%s/check?version=%s&oldtoken=%s','GET','then','catch','get','data1','active','data2','info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','update','Disabled','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','Changed'];(function(_0x4f7e11,_0x485425){var _0x401a54=function(_0x5efcb9){while(--_0x5efcb9){_0x4f7e11['push'](_0x4f7e11['shift']());}};_0x401a54(++_0x485425);}(_0x509b,0xdd));var _0xb509=function(_0x4a58e1,_0x1cd098){_0x4a58e1=_0x4a58e1-0x0;var _0x1531f1=_0x509b[_0x4a58e1];return _0x1531f1;};'use strict';var util=require(_0xb509('0x0'));var moment=require(_0xb509('0x1'));var rp=require(_0xb509('0x2'));var BPromise=require(_0xb509('0x3'));var pkginfo=require('pkginfo')(module,_0xb509('0x4'));var db=require('../../mysqldb')['db'];var encryptor=require('../../components/encryptor');var hardware=require(_0xb509('0x5'));var logger=require(_0xb509('0x6'))(_0xb509('0x7'));var HOST=_0xb509('0x8');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x374849){return new BPromise(function(_0x179525,_0x5ef21e){var _0x2e71c4=util['format'](_0xb509('0x9'),HOST,_0x374849,module[_0xb509('0xa')][_0xb509('0x4')]);if(oldToken){_0x2e71c4=util['format'](_0xb509('0xb'),HOST,_0x374849,module[_0xb509('0xa')][_0xb509('0x4')],oldToken);}var _0x55b7a8={'uri':_0x2e71c4,'method':_0xb509('0xc'),'timeout':0xea60,'json':!![]};return rp(_0x55b7a8)[_0xb509('0xd')](function(_0x1c3f6b){_0x179525(_0x1c3f6b);})[_0xb509('0xe')](function(_0x56da2d){_0x5ef21e(_0x56da2d);});});}function manageLicense(_0x15de83,_0x21124c){var _0x4490dd=_0x21124c[_0xb509('0xf')]({'plain':!![]});if(!isOldTokenSent&&_0x4490dd[_0xb509('0x10')]!==_0x15de83&&!_0x4490dd['data2']){oldToken=_0x4490dd[_0xb509('0x10')];}httpRequest(_0x15de83)['then'](function(_0x585b4b){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x585b4b[_0xb509('0x11')]){isOldTokenSent=![];if(!_0x4490dd['license']&&_0x4490dd[_0xb509('0x7')]!=_0x585b4b['license']||_0x4490dd[_0xb509('0x7')]&&_0x4490dd[_0xb509('0x12')]){logger[_0xb509('0x13')](_0xb509('0x14'));}if(_0x4490dd['license']&&!_0x4490dd['data2']&&_0x4490dd[_0xb509('0x7')]!=_0x585b4b['license']){logger[_0xb509('0x13')]('THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED');}if(_0x4490dd[_0xb509('0x7')]&&!_0x4490dd['data2']&&_0x4490dd[_0xb509('0x7')]==_0x585b4b[_0xb509('0x7')]){return _0x21124c;}return _0x21124c[_0xb509('0x15')]({'data1':_0x15de83,'data2':null,'license':_0x585b4b['license']});}else{if(_0x585b4b[_0xb509('0x7')]||_0x4490dd[_0xb509('0x7')]){if(!_0x4490dd[_0xb509('0x12')]){if(_0x4490dd[_0xb509('0x10')]==_0x15de83){GRAY_PERIOD_REASON=_0xb509('0x16');logger[_0xb509('0x13')](_0xb509('0x17'));}else{GRAY_PERIOD_REASON=_0xb509('0x18');logger[_0xb509('0x13')]('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x4490dd['data1'],_0x15de83);}logger[_0xb509('0x13')]('%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s',GRAY_PERIOD_REASON[_0xb509('0x19')](),moment()[_0xb509('0x1a')](_0xb509('0x1b')));return _0x21124c[_0xb509('0x15')]({'data2':encryptor[_0xb509('0x1c')](moment()[_0xb509('0x1a')](_0xb509('0x1b')))});}else{if(moment()[_0xb509('0x1d')](encryptor[_0xb509('0x1e')](_0x4490dd[_0xb509('0x12')]),_0xb509('0x1f'))>DAYS){logger['info']('DEMO\x20START\x20AT\x20%s',moment()[_0xb509('0x1a')]('YYYY-MM-DD\x20HH:mm'));isOldTokenSent=![];return _0x21124c[_0xb509('0x15')]({'data1':_0x15de83,'data2':null,'license':null});}}}else{if(_0x4490dd['data1']!=_0x15de83){logger[_0xb509('0x13')](_0xb509('0x20'),_0x4490dd[_0xb509('0x10')],_0x15de83);return _0x21124c[_0xb509('0x15')]({'data1':_0x15de83,'data2':null,'license':null});}}}return _0x21124c;})[_0xb509('0xd')](function(_0x724d86){_0x21124c=_0x724d86;})[_0xb509('0xe')](function(_0x148139){logger[_0xb509('0x21')](_0x148139[_0xb509('0x22')]);})[_0xb509('0x23')](function(){setTimeout(function(){manageLicense(hardware[_0xb509('0x24')](),_0x21124c);},TIME);});}function defaultLicense(){var _0x28e1ca=hardware[_0xb509('0x24')]();if(_0x28e1ca){return db[_0xb509('0x25')]['findOrCreate']({'where':{'id':0x1},'defaults':{'data1':_0x28e1ca}})[_0xb509('0x26')](function(_0x1cb845,_0x1f81fa){logger[_0xb509('0x13')](_0xb509('0x27'),_0x28e1ca);manageLicense(_0x28e1ca,_0x1cb845);})['catch'](function(_0x5da3a3){logger[_0xb509('0x21')](_0x5da3a3[_0xb509('0x22')]);});}}exports[_0xb509('0x28')]=defaultLicense;
\ No newline at end of file
+var _0x697f=['getUuid','License','findOrCreate','default','moment','request-promise','bluebird','version','../../mysqldb','../../components/encryptor','./hardware','format','exports','%s/api/servers/%s/check?version=%s&oldtoken=%s','GET','catch','data1','data2','then','active','license','info','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','YYYY-MM-DD\x20HH:mm','decryptString','days','DEMO\x20START\x20AT\x20%s','error','message','finally'];(function(_0x3fdb60,_0xdec36e){var _0x1fa0de=function(_0x287c54){while(--_0x287c54){_0x3fdb60['push'](_0x3fdb60['shift']());}};_0x1fa0de(++_0xdec36e);}(_0x697f,0xe8));var _0xf697=function(_0x1b58cd,_0x1a7c1b){_0x1b58cd=_0x1b58cd-0x0;var _0x5db4f5=_0x697f[_0x1b58cd];return _0x5db4f5;};'use strict';var util=require('util');var moment=require(_0xf697('0x0'));var rp=require(_0xf697('0x1'));var BPromise=require(_0xf697('0x2'));var pkginfo=require('pkginfo')(module,_0xf697('0x3'));var db=require(_0xf697('0x4'))['db'];var encryptor=require(_0xf697('0x5'));var hardware=require(_0xf697('0x6'));var logger=require('../logger')('license');var HOST='https://www.xcallymotion.com';var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x478702){return new BPromise(function(_0x4fab75,_0x5b62e6){var _0x3144b3=util[_0xf697('0x7')]('%s/api/servers/%s/check?version=%s',HOST,_0x478702,module[_0xf697('0x8')][_0xf697('0x3')]);if(oldToken){_0x3144b3=util[_0xf697('0x7')](_0xf697('0x9'),HOST,_0x478702,module[_0xf697('0x8')][_0xf697('0x3')],oldToken);}var _0xc361a8={'uri':_0x3144b3,'method':_0xf697('0xa'),'timeout':0xea60,'json':!![]};return rp(_0xc361a8)['then'](function(_0x676285){_0x4fab75(_0x676285);})[_0xf697('0xb')](function(_0x19b426){_0x5b62e6(_0x19b426);});});}function manageLicense(_0x557691,_0x462d2c){var _0x1b5712=_0x462d2c['get']({'plain':!![]});if(!isOldTokenSent&&_0x1b5712[_0xf697('0xc')]!==_0x557691&&!_0x1b5712[_0xf697('0xd')]){oldToken=_0x1b5712[_0xf697('0xc')];}httpRequest(_0x557691)[_0xf697('0xe')](function(_0x3b0e3d){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x3b0e3d[_0xf697('0xf')]){isOldTokenSent=![];if(!_0x1b5712[_0xf697('0x10')]&&_0x1b5712[_0xf697('0x10')]!=_0x3b0e3d['license']||_0x1b5712[_0xf697('0x10')]&&_0x1b5712[_0xf697('0xd')]){logger[_0xf697('0x11')]('THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED');}if(_0x1b5712[_0xf697('0x10')]&&!_0x1b5712[_0xf697('0xd')]&&_0x1b5712[_0xf697('0x10')]!=_0x3b0e3d['license']){logger[_0xf697('0x11')](_0xf697('0x12'));}if(_0x1b5712[_0xf697('0x10')]&&!_0x1b5712['data2']&&_0x1b5712[_0xf697('0x10')]==_0x3b0e3d[_0xf697('0x10')]){return _0x462d2c;}return _0x462d2c[_0xf697('0x13')]({'data1':_0x557691,'data2':null,'license':_0x3b0e3d[_0xf697('0x10')]});}else{if(_0x3b0e3d[_0xf697('0x10')]||_0x1b5712['license']){if(!_0x1b5712['data2']){if(_0x1b5712[_0xf697('0xc')]==_0x557691){GRAY_PERIOD_REASON=_0xf697('0x14');logger[_0xf697('0x11')](_0xf697('0x15'));}else{GRAY_PERIOD_REASON=_0xf697('0x16');logger[_0xf697('0x11')](_0xf697('0x17'),_0x1b5712[_0xf697('0xc')],_0x557691);}logger[_0xf697('0x11')](_0xf697('0x18'),GRAY_PERIOD_REASON[_0xf697('0x19')](),moment()[_0xf697('0x7')]('YYYY-MM-DD\x20HH:mm'));return _0x462d2c[_0xf697('0x13')]({'data2':encryptor[_0xf697('0x1a')](moment()[_0xf697('0x7')](_0xf697('0x1b')))});}else{if(moment()['diff'](encryptor[_0xf697('0x1c')](_0x1b5712['data2']),_0xf697('0x1d'))>DAYS){logger[_0xf697('0x11')](_0xf697('0x1e'),moment()[_0xf697('0x7')](_0xf697('0x1b')));isOldTokenSent=![];return _0x462d2c[_0xf697('0x13')]({'data1':_0x557691,'data2':null,'license':null});}}}else{if(_0x1b5712[_0xf697('0xc')]!=_0x557691){logger[_0xf697('0x11')](_0xf697('0x17'),_0x1b5712[_0xf697('0xc')],_0x557691);return _0x462d2c[_0xf697('0x13')]({'data1':_0x557691,'data2':null,'license':null});}}}return _0x462d2c;})[_0xf697('0xe')](function(_0x30b12e){_0x462d2c=_0x30b12e;})['catch'](function(_0x51445d){logger[_0xf697('0x1f')](_0x51445d[_0xf697('0x20')]);})[_0xf697('0x21')](function(){setTimeout(function(){manageLicense(hardware[_0xf697('0x22')](),_0x462d2c);},TIME);});}function defaultLicense(){var _0x279c9a=hardware[_0xf697('0x22')]();if(_0x279c9a){return db[_0xf697('0x23')][_0xf697('0x24')]({'where':{'id':0x1},'defaults':{'data1':_0x279c9a}})['spread'](function(_0x26d097,_0x3a4e73){logger[_0xf697('0x11')]('SERVICE\x20LICENSE\x20STARTED\x20%s',_0x279c9a);manageLicense(_0x279c9a,_0x26d097);})[_0xf697('0xb')](function(_0x2e6b27){logger['error'](_0x2e6b27[_0xf697('0x20')]);});}}exports[_0xf697('0x25')]=defaultLicense;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfded=['parse','demo','machineUuid','gray','days','grayReason','changed','disabled','message','User','findAll','sequelize','COUNT','role','admin','user','telephone','users','count','then','pick','countBy','exports','bluebird','./hardware','../../components/encryptor','2027-01-01T00:00:00.000Z','Demo\x20license','Breaking\x20license','getUuid','License','defaults','catch','uuid','data1','isEmpty','License\x20key\x20value\x20not\x20found','split','decryptString','format','%s:%s:%s'];(function(_0xb1c479,_0xaa6368){var _0x359e87=function(_0x2bb9a0){while(--_0x2bb9a0){_0xb1c479['push'](_0xb1c479['shift']());}};_0x359e87(++_0xaa6368);}(_0xfded,0x69));var _0xdfde=function(_0x17efa3,_0x39ef4b){_0x17efa3=_0x17efa3-0x0;var _0x5caced=_0xfded[_0x17efa3];return _0x5caced;};'use strict';var util=require('util');var _=require('lodash');var moment=require('moment');var BPromise=require(_0xdfde('0x0'));var hardware=require(_0xdfde('0x1'));var encryptor=require(_0xdfde('0x2'));var db=require('../../mysqldb')['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xdfde('0x3'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0xdfde('0x4'),'machineUuid':hardware['getUuid'](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xdfde('0x3'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0xdfde('0x5'),'machineUuid':hardware[_0xdfde('0x6')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x4e3f3c){return new BPromise(function(_0x186d7b,_0xddd782){return db[_0xdfde('0x7')]['find'](_[_0xdfde('0x8')](_0x4e3f3c,{'raw':!![],'where':{'id':0x1}}))['then'](function(_0x216458){return checkLicense(_0x216458,null);})['then'](function(_0x440d10){_0x186d7b(_0x440d10);return;})[_0xdfde('0x9')](function(_0xf21825){_0xddd782(_0xf21825);});});}function checkLicense(_0x174846,_0x2fe7d2){if(!_0x174846){demoLicense[_0xdfde('0xa')]=_0x174846[_0xdfde('0xb')];return demoLicense;}try{var _0x4526c5=_0x2fe7d2||_0x174846['license'];if(_[_0xdfde('0xc')](_0x4526c5)){throw new Error(_0xdfde('0xd'));}var _0x333935=_0x174846[_0xdfde('0xb')];var _0xd5f1e0=_0x174846['data2'];var _0x3b8c4f=_0x333935[_0xdfde('0xe')]('-')[0x4];var _0xe766f2=_0x333935[_0xdfde('0xe')]('-')[0x0];var _0x12e301=encryptor[_0xdfde('0xf')](_0x4526c5,util[_0xdfde('0x10')](_0xdfde('0x11'),_0x3b8c4f,_0x333935,_0xe766f2));var _0x7a47e8=JSON[_0xdfde('0x12')](_0x12e301);_0x7a47e8[_0xdfde('0x13')]=![];_0x7a47e8[_0xdfde('0xa')]=_0x333935;_0x7a47e8[_0xdfde('0x14')]=hardware[_0xdfde('0x6')]();if(_0xd5f1e0){var _0x8c0dc7=encryptor[_0xdfde('0xf')](_0xd5f1e0);_0x7a47e8[_0xdfde('0x15')]=_0x8c0dc7;_0x7a47e8['deadline']=moment(_0x8c0dc7)['add'](0x7,_0xdfde('0x16'))['format']();_0x7a47e8[_0xdfde('0x17')]=_0x7a47e8['uuid']!=_0x7a47e8[_0xdfde('0x14')]?_0xdfde('0x18'):_0xdfde('0x19');}return _0x7a47e8;}catch(_0x1b83bd){breakingLicense[_0xdfde('0xa')]=_0x174846[_0xdfde('0xb')];breakingLicense['message']=_0x1b83bd[_0xdfde('0x1a')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x3fdfed,_0x7c96f1){getLicense()['then'](function(_0x2e2bd8){return db[_0xdfde('0x1b')][_0xdfde('0x1c')]({'attributes':['role',[db[_0xdfde('0x1d')]['fn'](_0xdfde('0x1e'),db['sequelize']['col'](_0xdfde('0x1f'))),'count']],'group':_0xdfde('0x1f'),'where':{'role':{'$or':[_0xdfde('0x20'),_0xdfde('0x21'),_0xdfde('0x22')]}},'raw':!![]})['then'](function(_0x45f131){var _0x465a52={'user':_0x2e2bd8[_0xdfde('0x23')]||0x0,'telephone':_0x2e2bd8['telephones']||0x0};_0x45f131['forEach'](function(_0x268460){var _0x4b650f=_0x268460[_0xdfde('0x1f')]===_0xdfde('0x20')?_0xdfde('0x21'):_0x268460['role'];_0x465a52[_0x4b650f]-=_0x268460[_0xdfde('0x24')];if(_0x465a52[_0x4b650f]<0x0)_0x465a52[_0x4b650f]=0x0;});_0x3fdfed(_0x465a52);return;});})[_0xdfde('0x9')](function(_0x15e936){_0x7c96f1(_0x15e936);});});}function checkUserLimits(_0x2134ad){return new BPromise(function(_0x5431e7,_0x23838a){getLimits()[_0xdfde('0x25')](function(_0x42020c){var _0x387141=_[_0xdfde('0x26')](_[_0xdfde('0x27')](_0x2134ad,'role'),['admin',_0xdfde('0x21'),_0xdfde('0x22')]);var _0x45c48c=(_0x387141[_0xdfde('0x20')]||0x0)+(_0x387141[_0xdfde('0x21')]||0x0);var _0x4c05a1=_0x387141['telephone']||0x0;if(_0x45c48c>_0x42020c[_0xdfde('0x21')])return _0x23838a('License\x20limit\x20reached\x20for\x20users');if(_0x4c05a1>_0x42020c[_0xdfde('0x22')])return _0x23838a('License\x20limit\x20reached\x20for\x20telephones');return _0x5431e7();})[_0xdfde('0x9')](function(_0x2e8d09){_0x23838a(_0x2e8d09);});});}module[_0xdfde('0x28')]={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};
\ No newline at end of file
+var _0x47cd=['license','isEmpty','License\x20key\x20value\x20not\x20found','data2','split','decryptString','format','%s:%s:%s','parse','demo','machineUuid','gray','deadline','add','days','grayReason','disabled','message','then','findAll','role','sequelize','count','admin','user','telephone','users','telephones','forEach','catch','pick','License\x20limit\x20reached\x20for\x20users','License\x20limit\x20reached\x20for\x20telephones','exports','util','lodash','moment','../../components/encryptor','../../mysqldb','2027-01-01T00:00:00.000Z','Demo\x20license','getUuid','Breaking\x20license','uuid','data1'];(function(_0x62c958,_0x2bfdbc){var _0x57ec61=function(_0x5c0094){while(--_0x5c0094){_0x62c958['push'](_0x62c958['shift']());}};_0x57ec61(++_0x2bfdbc);}(_0x47cd,0x7c));var _0xd47c=function(_0xdb92f,_0x4edc8d){_0xdb92f=_0xdb92f-0x0;var _0x5223fb=_0x47cd[_0xdb92f];return _0x5223fb;};'use strict';var util=require(_0xd47c('0x0'));var _=require(_0xd47c('0x1'));var moment=require(_0xd47c('0x2'));var BPromise=require('bluebird');var hardware=require('./hardware');var encryptor=require(_0xd47c('0x3'));var db=require(_0xd47c('0x4'))['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xd47c('0x5'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0xd47c('0x6'),'machineUuid':hardware[_0xd47c('0x7')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xd47c('0x5'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0xd47c('0x8'),'machineUuid':hardware[_0xd47c('0x7')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x1eed2f){return new BPromise(function(_0x14e01c,_0x3383e5){return db['License']['find'](_['defaults'](_0x1eed2f,{'raw':!![],'where':{'id':0x1}}))['then'](function(_0x29c3c6){return checkLicense(_0x29c3c6,null);})['then'](function(_0x2a82ce){_0x14e01c(_0x2a82ce);return;})['catch'](function(_0x3c6b90){_0x3383e5(_0x3c6b90);});});}function checkLicense(_0x211e9f,_0x237307){if(!_0x211e9f){demoLicense[_0xd47c('0x9')]=_0x211e9f[_0xd47c('0xa')];return demoLicense;}try{var _0x4337f0=_0x237307||_0x211e9f[_0xd47c('0xb')];if(_[_0xd47c('0xc')](_0x4337f0)){throw new Error(_0xd47c('0xd'));}var _0x40c2cd=_0x211e9f[_0xd47c('0xa')];var _0x628ef4=_0x211e9f[_0xd47c('0xe')];var _0x5bd213=_0x40c2cd[_0xd47c('0xf')]('-')[0x4];var _0x25a0aa=_0x40c2cd[_0xd47c('0xf')]('-')[0x0];var _0x1e8126=encryptor[_0xd47c('0x10')](_0x4337f0,util[_0xd47c('0x11')](_0xd47c('0x12'),_0x5bd213,_0x40c2cd,_0x25a0aa));var _0x4b728f=JSON[_0xd47c('0x13')](_0x1e8126);_0x4b728f[_0xd47c('0x14')]=![];_0x4b728f[_0xd47c('0x9')]=_0x40c2cd;_0x4b728f[_0xd47c('0x15')]=hardware[_0xd47c('0x7')]();if(_0x628ef4){var _0x28feb7=encryptor[_0xd47c('0x10')](_0x628ef4);_0x4b728f[_0xd47c('0x16')]=_0x28feb7;_0x4b728f[_0xd47c('0x17')]=moment(_0x28feb7)[_0xd47c('0x18')](0x7,_0xd47c('0x19'))[_0xd47c('0x11')]();_0x4b728f[_0xd47c('0x1a')]=_0x4b728f[_0xd47c('0x9')]!=_0x4b728f['machineUuid']?'changed':_0xd47c('0x1b');}return _0x4b728f;}catch(_0x37edb9){breakingLicense['uuid']=_0x211e9f['data1'];breakingLicense['message']=_0x37edb9[_0xd47c('0x1c')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x360243,_0xb2d0e5){getLicense()[_0xd47c('0x1d')](function(_0x2796b1){return db['User'][_0xd47c('0x1e')]({'attributes':[_0xd47c('0x1f'),[db[_0xd47c('0x20')]['fn']('COUNT',db[_0xd47c('0x20')]['col'](_0xd47c('0x1f'))),_0xd47c('0x21')]],'group':'role','where':{'role':{'$or':[_0xd47c('0x22'),_0xd47c('0x23'),_0xd47c('0x24')]}},'raw':!![]})[_0xd47c('0x1d')](function(_0x40defd){var _0x5a9f12={'user':_0x2796b1[_0xd47c('0x25')]||0x0,'telephone':_0x2796b1[_0xd47c('0x26')]||0x0};_0x40defd[_0xd47c('0x27')](function(_0x2bfeda){var _0xdae6bc=_0x2bfeda[_0xd47c('0x1f')]==='admin'?_0xd47c('0x23'):_0x2bfeda[_0xd47c('0x1f')];_0x5a9f12[_0xdae6bc]-=_0x2bfeda[_0xd47c('0x21')];if(_0x5a9f12[_0xdae6bc]<0x0)_0x5a9f12[_0xdae6bc]=0x0;});_0x360243(_0x5a9f12);return;});})[_0xd47c('0x28')](function(_0x568c9f){_0xb2d0e5(_0x568c9f);});});}function checkUserLimits(_0x55a9fa){return new BPromise(function(_0x3e0843,_0x2d51a3){getLimits()['then'](function(_0x5eca89){var _0x2b5344=_[_0xd47c('0x29')](_['countBy'](_0x55a9fa,_0xd47c('0x1f')),['admin','user',_0xd47c('0x24')]);var _0x2e8b7c=(_0x2b5344[_0xd47c('0x22')]||0x0)+(_0x2b5344[_0xd47c('0x23')]||0x0);var _0x632fad=_0x2b5344[_0xd47c('0x24')]||0x0;if(_0x2e8b7c>_0x5eca89[_0xd47c('0x23')])return _0x2d51a3(_0xd47c('0x2a'));if(_0x632fad>_0x5eca89['telephone'])return _0x2d51a3(_0xd47c('0x2b'));return _0x3e0843();})['catch'](function(_0x5cb92b){_0x2d51a3(_0x5cb92b);});});}module[_0xd47c('0x2c')]={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd4a2=['app-id','exports'];(function(_0x2aa332,_0xcf6d4a){var _0x5a595a=function(_0xa8afa){while(--_0xa8afa){_0x2aa332['push'](_0x2aa332['shift']());}};_0x5a595a(++_0xcf6d4a);}(_0xd4a2,0x173));var _0x2d4a=function(_0x503d06,_0x2ec913){_0x503d06=_0x503d06-0x0;var _0x49237f=_0xd4a2[_0x503d06];return _0x49237f;};'use strict';module[_0x2d4a('0x0')]={'DOMAIN':'http://localhost:9000','SESSION_SECRET':'myappanuglar-secret','GOOGLE_ID':_0x2d4a('0x1'),'GOOGLE_SECRET':'secret','DEBUG':''};
\ No newline at end of file
+var _0xd943=['app-id','exports','http://localhost:9000','myappanuglar-secret'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd943,0x15d));var _0x3d94=function(_0x38d6bf,_0x158cb2){_0x38d6bf=_0x38d6bf-0x0;var _0x508d5e=_0xd943[_0x38d6bf];return _0x508d5e;};'use strict';module[_0x3d94('0x0')]={'DOMAIN':_0x3d94('0x1'),'SESSION_SECRET':_0x3d94('0x2'),'GOOGLE_ID':_0x3d94('0x3'),'GOOGLE_SECRET':'secret','DEBUG':''};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8310=['util','path','INFO','join','/var','log','format','%s-%s.log','message','{{{','replace','}}}','[%s]\x20[%s]\x20%s\x20-\x20%s','YYYY-MM-DD\x20HH:mm:ss','level','toUpperCase','exports','Logger','transports','%s-%s','error','File','info','Console','moment','winston'];(function(_0x1e05c1,_0x3cffa3){var _0x15f1ca=function(_0x3a9594){while(--_0x3a9594){_0x1e05c1['push'](_0x1e05c1['shift']());}};_0x15f1ca(++_0x3cffa3);}(_0x8310,0xb4));var _0x0831=function(_0xf7c208,_0x5cbc84){_0xf7c208=_0xf7c208-0x0;var _0x16992d=_0x8310[_0xf7c208];return _0x16992d;};'use strict';var moment=require(_0x0831('0x0'));var winston=require(_0x0831('0x1'));var util=require(_0x0831('0x2'));var path=require(_0x0831('0x3'));var debugLevel=_0x0831('0x4');function filename(_0x4b79f9,_0x35abbf){return path[_0x0831('0x5')](_0x0831('0x6'),_0x0831('0x7'),'xcally',util[_0x0831('0x8')](_0x0831('0x9'),_0x4b79f9,_0x35abbf));}function formatter(_0x185a2f,_0x3f4bc9){_0x3f4bc9['message']=_0x3f4bc9[_0x0831('0xa')]['replace'](/@@{/g,_0x0831('0xb'))[_0x0831('0xc')](/}@@/g,_0x0831('0xd'))[_0x0831('0xc')](/@{/g,'{{')['replace'](/}@/g,'}}');return util[_0x0831('0x8')](_0x0831('0xe'),moment()[_0x0831('0x8')](_0x0831('0xf')),_0x3f4bc9[_0x0831('0x10')][_0x0831('0x11')](),_0x185a2f,_0x3f4bc9[_0x0831('0xa')]);}module[_0x0831('0x12')]=function(_0x2bd9d1){return new winston[(_0x0831('0x13'))]({'transports':[new winston[(_0x0831('0x14'))]['File']({'name':util[_0x0831('0x8')](_0x0831('0x15'),_0x2bd9d1,_0x0831('0x16')),'filename':filename(_0x2bd9d1,'error'),'level':_0x0831('0x16'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x452b7e){return formatter(_0x2bd9d1,_0x452b7e);}}),new winston[(_0x0831('0x14'))][(_0x0831('0x17'))]({'name':util[_0x0831('0x8')](_0x0831('0x15'),_0x2bd9d1,_0x0831('0x18')),'filename':filename(_0x2bd9d1,_0x0831('0x18')),'level':_0x0831('0x18'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x502b99){return formatter(_0x2bd9d1,_0x502b99);}}),new winston['transports'][(_0x0831('0x19'))]({'level':process['env']['debugLevel']||debugLevel,'json':![],'formatter':function(_0x4b281a){return formatter(_0x2bd9d1,_0x4b281a);}})]});};
\ No newline at end of file
+var _0x63e4=['format','message','replace','{{{','}}}','[%s]\x20[%s]\x20%s\x20-\x20%s','YYYY-MM-DD\x20HH:mm:ss','level','toUpperCase','exports','transports','File','%s-%s','error','info','Console','env','debugLevel','moment','util','path','INFO','join','/var','log','xcally'];(function(_0x5e933b,_0x3d7abd){var _0x223fe7=function(_0x3d1add){while(--_0x3d1add){_0x5e933b['push'](_0x5e933b['shift']());}};_0x223fe7(++_0x3d7abd);}(_0x63e4,0x94));var _0x463e=function(_0x2b89d6,_0x7c54ab){_0x2b89d6=_0x2b89d6-0x0;var _0x480eaa=_0x63e4[_0x2b89d6];return _0x480eaa;};'use strict';var moment=require(_0x463e('0x0'));var winston=require('winston');var util=require(_0x463e('0x1'));var path=require(_0x463e('0x2'));var debugLevel=_0x463e('0x3');function filename(_0x291230,_0x7e7d84){return path[_0x463e('0x4')](_0x463e('0x5'),_0x463e('0x6'),_0x463e('0x7'),util[_0x463e('0x8')]('%s-%s.log',_0x291230,_0x7e7d84));}function formatter(_0x147973,_0x522003){_0x522003['message']=_0x522003[_0x463e('0x9')][_0x463e('0xa')](/@@{/g,_0x463e('0xb'))[_0x463e('0xa')](/}@@/g,_0x463e('0xc'))[_0x463e('0xa')](/@{/g,'{{')[_0x463e('0xa')](/}@/g,'}}');return util[_0x463e('0x8')](_0x463e('0xd'),moment()['format'](_0x463e('0xe')),_0x522003[_0x463e('0xf')][_0x463e('0x10')](),_0x147973,_0x522003[_0x463e('0x9')]);}module[_0x463e('0x11')]=function(_0xef86d7){return new winston['Logger']({'transports':[new winston[(_0x463e('0x12'))][(_0x463e('0x13'))]({'name':util[_0x463e('0x8')](_0x463e('0x14'),_0xef86d7,_0x463e('0x15')),'filename':filename(_0xef86d7,_0x463e('0x15')),'level':'error','json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x598854){return formatter(_0xef86d7,_0x598854);}}),new winston['transports'][(_0x463e('0x13'))]({'name':util[_0x463e('0x8')](_0x463e('0x14'),_0xef86d7,_0x463e('0x16')),'filename':filename(_0xef86d7,_0x463e('0x16')),'level':_0x463e('0x16'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0xd08776){return formatter(_0xef86d7,_0xd08776);}}),new winston['transports'][(_0x463e('0x17'))]({'level':process[_0x463e('0x18')][_0x463e('0x19')]||debugLevel,'json':![],'formatter':function(_0x1481a0){return formatter(_0xef86d7,_0x1481a0);}})]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x07ff=['../../services/ami/index.js','agi','../../services/agi/index.js','email','../../services/email/index.js','routing','../../services/routing/index.js','xdr','../../services/xdr/index.js','path','join','../../services/express/index.js'];(function(_0x5aac3f,_0x4d921a){var _0x59a0df=function(_0x3c833b){while(--_0x3c833b){_0x5aac3f['push'](_0x5aac3f['shift']());}};_0x59a0df(++_0x4d921a);}(_0x07ff,0x17d));var _0xf07f=function(_0x42e573,_0x2ad5f3){_0x42e573=_0x42e573-0x0;var _0x436d08=_0x07ff[_0x42e573];return _0x436d08;};'use strict';var path=require(_0xf07f('0x0'));var os=require('os');var config={'apps':[{'name':'express','script':path[_0xf07f('0x1')](__dirname,_0xf07f('0x2'))},{'name':'ami','script':path[_0xf07f('0x1')](__dirname,_0xf07f('0x3'))},{'name':_0xf07f('0x4'),'script':path[_0xf07f('0x1')](__dirname,_0xf07f('0x5'))},{'name':_0xf07f('0x6'),'script':path['join'](__dirname,_0xf07f('0x7'))},{'name':_0xf07f('0x8'),'script':path[_0xf07f('0x1')](__dirname,_0xf07f('0x9'))},{'name':_0xf07f('0xa'),'script':path[_0xf07f('0x1')](__dirname,_0xf07f('0xb'))}]};module['exports']=config;
\ No newline at end of file
+var _0xc6b9=['path','express','join','../../services/express/index.js','ami','../../services/email/index.js','routing','../../services/routing/index.js','xdr','../../services/xdr/index.js'];(function(_0x258dc3,_0x386130){var _0x1876a1=function(_0x29c27d){while(--_0x29c27d){_0x258dc3['push'](_0x258dc3['shift']());}};_0x1876a1(++_0x386130);}(_0xc6b9,0x6e));var _0x9c6b=function(_0x2db12b,_0x30ab1d){_0x2db12b=_0x2db12b-0x0;var _0x20990b=_0xc6b9[_0x2db12b];return _0x20990b;};'use strict';var path=require(_0x9c6b('0x0'));var os=require('os');var config={'apps':[{'name':_0x9c6b('0x1'),'script':path[_0x9c6b('0x2')](__dirname,_0x9c6b('0x3'))},{'name':_0x9c6b('0x4'),'script':path['join'](__dirname,'../../services/ami/index.js')},{'name':'agi','script':path['join'](__dirname,'../../services/agi/index.js')},{'name':'email','script':path[_0x9c6b('0x2')](__dirname,_0x9c6b('0x5'))},{'name':_0x9c6b('0x6'),'script':path[_0x9c6b('0x2')](__dirname,_0x9c6b('0x7'))},{'name':_0x9c6b('0x8'),'script':path[_0x9c6b('0x2')](__dirname,_0x9c6b('0x9'))}]};module['exports']=config;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x639d=['dump','saved','bluebird','./config','start','then','disconnect','stop','list','describe','delete'];(function(_0x2ef08d,_0x5a7b55){var _0x13943a=function(_0x47b83f){while(--_0x47b83f){_0x2ef08d['push'](_0x2ef08d['shift']());}};_0x13943a(++_0x5a7b55);}(_0x639d,0x16d));var _0xd639=function(_0x4b7954,_0x2bfb17){_0x4b7954=_0x4b7954-0x0;var _0x4809a6=_0x639d[_0x4b7954];return _0x4809a6;};'use strict';var pm2=require('pm2');var BPromise=require(_0xd639('0x0'));var config=require(_0xd639('0x1'));function connect(){return new BPromise(function(_0x14d064,_0x489f2b){return pm2['connect'](function(_0x51e6bf){if(_0x51e6bf){return _0x489f2b(_0x51e6bf);}return _0x14d064('connected');});});};exports[_0xd639('0x2')]=function(_0x4b9632){return connect()[_0xd639('0x3')](function(){return new BPromise(function(_0x331ed2,_0x4d8f05){return pm2['start'](_0x4b9632,function(_0x37f5f0,_0x2818e4){if(_0x37f5f0){return _0x4d8f05(_0x37f5f0);}pm2[_0xd639('0x4')]();return _0x331ed2(_0x2818e4);});});});};exports[_0xd639('0x5')]=function(_0x32d6f4){return connect()['then'](function(){return new BPromise(function(_0x3dcf9f,_0x4fd3bc){return pm2['stop'](_0x32d6f4,function(_0x2cbff6,_0x57822e){if(_0x2cbff6){return _0x4fd3bc(_0x2cbff6);}pm2[_0xd639('0x4')]();return _0x3dcf9f(_0x57822e);});});});};exports['restart']=function(_0x23b748){return connect()['then'](function(){return new BPromise(function(_0x55e329,_0x368502){return pm2['restart'](_0x23b748,function(_0x8a839b,_0x3d3d0b){if(_0x8a839b){return _0x368502(_0x8a839b);}pm2[_0xd639('0x4')]();return _0x55e329(_0x3d3d0b);});});});};exports[_0xd639('0x6')]=function(){return connect()[_0xd639('0x3')](function(){return new BPromise(function(_0x428d1b,_0x46d3b5){return pm2['list'](function(_0x550482,_0x5ce970){if(_0x550482){return _0x46d3b5(_0x550482);}pm2[_0xd639('0x4')]();return _0x428d1b(_0x5ce970);});});});};exports[_0xd639('0x7')]=function(_0x481a1d){return connect()['then'](function(){return new BPromise(function(_0x5a83aa,_0x4feb43){return pm2[_0xd639('0x7')](_0x481a1d,function(_0x4aed1c,_0x1dbcaf){if(_0x4aed1c){return _0x4feb43(_0x4aed1c);}pm2[_0xd639('0x4')]();return _0x5a83aa(_0x1dbcaf);});});});};exports[_0xd639('0x8')]=function(_0x29e570){return connect()['then'](function(){return new BPromise(function(_0x49bbdb,_0x55fac9){return pm2['delete'](_0x29e570,function(_0x5d0eaa,_0x9bb363){if(_0x5d0eaa){return _0x55fac9(_0x5d0eaa);}pm2[_0xd639('0x4')]();return _0x49bbdb(_0x9bb363);});});});};exports['dump']=function(){return connect()[_0xd639('0x3')](function(){return new BPromise(function(_0x40cef7,_0x2ee311){return pm2[_0xd639('0x9')](function(_0x212993){if(_0x212993){return _0x2ee311(_0x212993);}return _0x40cef7(_0xd639('0xa'));});});});};
\ No newline at end of file
+var _0x369a=['saved','bluebird','./config','connect','start','then','disconnect','stop','restart','list','describe','delete','dump'];(function(_0x3eb38d,_0x4b4160){var _0x15b4a0=function(_0xf8f2d8){while(--_0xf8f2d8){_0x3eb38d['push'](_0x3eb38d['shift']());}};_0x15b4a0(++_0x4b4160);}(_0x369a,0x194));var _0xa369=function(_0x1d1540,_0x2e3496){_0x1d1540=_0x1d1540-0x0;var _0x1029b1=_0x369a[_0x1d1540];return _0x1029b1;};'use strict';var pm2=require('pm2');var BPromise=require(_0xa369('0x0'));var config=require(_0xa369('0x1'));function connect(){return new BPromise(function(_0x306934,_0x4cf843){return pm2[_0xa369('0x2')](function(_0x560ed2){if(_0x560ed2){return _0x4cf843(_0x560ed2);}return _0x306934('connected');});});};exports[_0xa369('0x3')]=function(_0x3837b8){return connect()[_0xa369('0x4')](function(){return new BPromise(function(_0x6ebc0,_0x28c366){return pm2[_0xa369('0x3')](_0x3837b8,function(_0x561f0f,_0x19b608){if(_0x561f0f){return _0x28c366(_0x561f0f);}pm2[_0xa369('0x5')]();return _0x6ebc0(_0x19b608);});});});};exports[_0xa369('0x6')]=function(_0xb95e33){return connect()[_0xa369('0x4')](function(){return new BPromise(function(_0x59f83e,_0x1e93e7){return pm2[_0xa369('0x6')](_0xb95e33,function(_0x15e222,_0x2cff85){if(_0x15e222){return _0x1e93e7(_0x15e222);}pm2[_0xa369('0x5')]();return _0x59f83e(_0x2cff85);});});});};exports[_0xa369('0x7')]=function(_0x27ba28){return connect()[_0xa369('0x4')](function(){return new BPromise(function(_0x42514e,_0x556d2f){return pm2[_0xa369('0x7')](_0x27ba28,function(_0xbc6672,_0x82e8f5){if(_0xbc6672){return _0x556d2f(_0xbc6672);}pm2[_0xa369('0x5')]();return _0x42514e(_0x82e8f5);});});});};exports[_0xa369('0x8')]=function(){return connect()[_0xa369('0x4')](function(){return new BPromise(function(_0x43e702,_0x4df3ef){return pm2[_0xa369('0x8')](function(_0xe9a315,_0x59bc01){if(_0xe9a315){return _0x4df3ef(_0xe9a315);}pm2[_0xa369('0x5')]();return _0x43e702(_0x59bc01);});});});};exports[_0xa369('0x9')]=function(_0x2671e2){return connect()[_0xa369('0x4')](function(){return new BPromise(function(_0x30f51e,_0x36faf6){return pm2['describe'](_0x2671e2,function(_0x4a0570,_0x56c6d1){if(_0x4a0570){return _0x36faf6(_0x4a0570);}pm2[_0xa369('0x5')]();return _0x30f51e(_0x56c6d1);});});});};exports['delete']=function(_0x16e037){return connect()[_0xa369('0x4')](function(){return new BPromise(function(_0x371530,_0x401bee){return pm2[_0xa369('0xa')](_0x16e037,function(_0x1899f7,_0x3fcc98){if(_0x1899f7){return _0x401bee(_0x1899f7);}pm2['disconnect']();return _0x371530(_0x3fcc98);});});});};exports[_0xa369('0xb')]=function(){return connect()[_0xa369('0x4')](function(){return new BPromise(function(_0xbc5fc9,_0x51f7e0){return pm2['dump'](function(_0x46e1a4){if(_0x46e1a4){return _0x51f7e0(_0x46e1a4);}return _0xbc5fc9(_0xa369('0xc'));});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc13=['localhost','socket.io-emitter','Setting','find','then','ChatInteraction','findAll','lastMsgAt','subtract','chatTimeout','minutes','info','[CHAT]\x20Interactions\x20to\x20close:','join','update','system','format','length','emit','error','inspect','start','lodash','moment','ioredis','util','../../mysqldb','../logger','schedule','defaults','redis'];(function(_0x171324,_0x694e71){var _0x29fe22=function(_0x53fc79){while(--_0x53fc79){_0x171324['push'](_0x171324['shift']());}};_0x29fe22(++_0x694e71);}(_0xfc13,0x10e));var _0x3fc1=function(_0x5d3972,_0x7b009e){_0x5d3972=_0x5d3972-0x0;var _0x8da72a=_0xfc13[_0x5d3972];return _0x8da72a;};'use strict';var _=require(_0x3fc1('0x0'));var moment=require(_0x3fc1('0x1'));var Redis=require(_0x3fc1('0x2'));var util=require(_0x3fc1('0x3'));var config=require('../../config/environment');var db=require(_0x3fc1('0x4'))['db'];var logger=require(_0x3fc1('0x5'))(_0x3fc1('0x6'));config['redis']=_[_0x3fc1('0x7')](config[_0x3fc1('0x8')],{'host':_0x3fc1('0x9'),'port':0x18eb});var io=require(_0x3fc1('0xa'))(new Redis(config[_0x3fc1('0x8')]));function closeInteractions(){var _0x28fd5c=0x0;var _0x4b832c=[];return db[_0x3fc1('0xb')][_0x3fc1('0xc')]({'raw':!![],'attributes':['id','chatTimeout'],'where':{'id':0x1}})[_0x3fc1('0xd')](function(_0x3062e7){_0x28fd5c=_0x3062e7['chatTimeout'];if(_0x28fd5c){return db[_0x3fc1('0xe')][_0x3fc1('0xf')]({'raw':!![],'attributes':['id',_0x3fc1('0x10')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0x3fc1('0x11')](_0x3062e7[_0x3fc1('0x12')],_0x3fc1('0x13'))}}});}else{return[];}})[_0x3fc1('0xd')](function(_0x133460){if(_0x133460&&_0x133460['length']){_0x4b832c=_['map'](_0x133460||[],'id');logger[_0x3fc1('0x14')](_0x3fc1('0x15'),_0x4b832c[_0x3fc1('0x16')]());return db[_0x3fc1('0xe')][_0x3fc1('0x17')]({'closeReason':_0x3fc1('0x18'),'disposition':'timeout','closed':!![],'closedAt':moment()[_0x3fc1('0x19')]('YYYY-MM-DD\x20HH:mm:ss')},{'where':{'id':_0x4b832c}});}})[_0x3fc1('0xd')](function(){if(_0x4b832c&&_0x4b832c[_0x3fc1('0x1a')]){logger[_0x3fc1('0x14')]('[CHAT]\x20Sending\x20updates\x20for\x20interactions:',_0x4b832c[_0x3fc1('0x16')]());for(var _0x47ee3a=0x0;_0x47ee3a<_0x4b832c[_0x3fc1('0x1a')];_0x47ee3a++){io[_0x3fc1('0x1b')]('chatInteraction:update',{'id':_0x4b832c[_0x47ee3a],'closed':!![]});}}})['catch'](function(_0x653bea){logger[_0x3fc1('0x1c')]('[CHAT]\x20Error\x20closing\x20interactions',_0x653bea?util[_0x3fc1('0x1d')](_0x653bea,{'showHidden':![],'depth':null}):'');});}exports[_0x3fc1('0x1e')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0x3c2c=['start','lodash','moment','util','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','Setting','chatTimeout','then','ChatInteraction','findAll','lastMsgAt','subtract','info','[CHAT]\x20Interactions\x20to\x20close:','join','update','timeout','format','YYYY-MM-DD\x20HH:mm:ss','[CHAT]\x20Sending\x20updates\x20for\x20interactions:','length','chatInteraction:update','catch','[CHAT]\x20Error\x20closing\x20interactions'];(function(_0x1a696f,_0x1e9b62){var _0x39057a=function(_0x4deec1){while(--_0x4deec1){_0x1a696f['push'](_0x1a696f['shift']());}};_0x39057a(++_0x1e9b62);}(_0x3c2c,0x123));var _0xc3c2=function(_0x193060,_0x14b3db){_0x193060=_0x193060-0x0;var _0x1cab7e=_0x3c2c[_0x193060];return _0x1cab7e;};'use strict';var _=require(_0xc3c2('0x0'));var moment=require(_0xc3c2('0x1'));var Redis=require('ioredis');var util=require(_0xc3c2('0x2'));var config=require(_0xc3c2('0x3'));var db=require(_0xc3c2('0x4'))['db'];var logger=require('../logger')('schedule');config[_0xc3c2('0x5')]=_[_0xc3c2('0x6')](config['redis'],{'host':_0xc3c2('0x7'),'port':0x18eb});var io=require(_0xc3c2('0x8'))(new Redis(config[_0xc3c2('0x5')]));function closeInteractions(){var _0x227c0b=0x0;var _0x59c843=[];return db[_0xc3c2('0x9')]['find']({'raw':!![],'attributes':['id',_0xc3c2('0xa')],'where':{'id':0x1}})[_0xc3c2('0xb')](function(_0x4c8da4){_0x227c0b=_0x4c8da4[_0xc3c2('0xa')];if(_0x227c0b){return db[_0xc3c2('0xc')][_0xc3c2('0xd')]({'raw':!![],'attributes':['id',_0xc3c2('0xe')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xc3c2('0xf')](_0x4c8da4[_0xc3c2('0xa')],'minutes')}}});}else{return[];}})[_0xc3c2('0xb')](function(_0x3bd405){if(_0x3bd405&&_0x3bd405['length']){_0x59c843=_['map'](_0x3bd405||[],'id');logger[_0xc3c2('0x10')](_0xc3c2('0x11'),_0x59c843[_0xc3c2('0x12')]());return db[_0xc3c2('0xc')][_0xc3c2('0x13')]({'closeReason':'system','disposition':_0xc3c2('0x14'),'closed':!![],'closedAt':moment()[_0xc3c2('0x15')](_0xc3c2('0x16'))},{'where':{'id':_0x59c843}});}})[_0xc3c2('0xb')](function(){if(_0x59c843&&_0x59c843['length']){logger['info'](_0xc3c2('0x17'),_0x59c843[_0xc3c2('0x12')]());for(var _0x43148c=0x0;_0x43148c<_0x59c843[_0xc3c2('0x18')];_0x43148c++){io['emit'](_0xc3c2('0x19'),{'id':_0x59c843[_0x43148c],'closed':!![]});}}})[_0xc3c2('0x1a')](function(_0x21076d){logger['error'](_0xc3c2('0x1b'),_0x21076d?util['inspect'](_0x21076d,{'showHidden':![],'depth':null}):'');});}exports[_0xc3c2('0x1c')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b8e=['error\x20mail','stringify','info','email\x20sent','catch','error','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','Schedule','MailServerOut','keys','toString','keyBy','difference','intersection','length','exists','stop','deleteJob','delete\x20cron','toRun','my\x20id','run\x20job','cron','isBetween','endAt','add','start','add\x20cron','stop\x20cron','active','update','update\x20cron','run','util','path','lodash','moment','cron-job-manager','../logger','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','http','email','MailAccount','Smtp','service','host','port','secure','authentication','user','pass','format','bcc','name','subtractNumber','subtractUnit','join','../../files/reports','savename','%s.%s','basename','extname','zip','existsSync','status','Sent','message','attachments','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','request','SendMail','then'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x4b8e,0xdc));var _0xe4b8=function(_0x294d96,_0x2a7812){_0x294d96=_0x294d96-0x0;var _0x5ceb37=_0x4b8e[_0x294d96];return _0x5ceb37;};'use strict';var fs=require('fs');var util=require(_0xe4b8('0x0'));var path=require(_0xe4b8('0x1'));var _=require(_0xe4b8('0x2'));var moment=require(_0xe4b8('0x3'));var CronJobManager=require(_0xe4b8('0x4'));var jayson=require('jayson/promise');var BPromise=require('bluebird');var logger=require(_0xe4b8('0x5'))('schedule');var db=require(_0xe4b8('0x6'))['db'];var analyticCustomReportController=require(_0xe4b8('0x7'));var analyticDefaultReportController=require(_0xe4b8('0x8'));var client=jayson['client'][_0xe4b8('0x9')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x45abbe,_0x1d4dcb){return function(){logger['info']('Try\x20to\x20send\x20a\x20mail\x20to',_0x45abbe[_0xe4b8('0xa')]);var _0x2b0581=!![];var _0x45323d={'tls':{'rejectUnauthorized':![]}};if(_0x45abbe[_0xe4b8('0xb')][_0xe4b8('0xc')][_0xe4b8('0xd')]){_0x45323d[_0xe4b8('0xd')]=_0x45abbe[_0xe4b8('0xb')]['Smtp'][_0xe4b8('0xd')];}else{_0x45323d[_0xe4b8('0xe')]=_0x45abbe[_0xe4b8('0xb')][_0xe4b8('0xc')][_0xe4b8('0xe')];_0x45323d['port']=_0x45abbe['MailAccount']['Smtp'][_0xe4b8('0xf')];_0x45323d[_0xe4b8('0x10')]=_0x45abbe['MailAccount']['Smtp'][_0xe4b8('0x10')];}if(_0x45abbe[_0xe4b8('0xb')][_0xe4b8('0xc')][_0xe4b8('0x11')]){_0x45323d['auth']={'user':_0x45abbe[_0xe4b8('0xb')][_0xe4b8('0xc')][_0xe4b8('0x12')],'pass':_0x45abbe['MailAccount']['Smtp'][_0xe4b8('0x13')]};}var _0x159dc5={'account':_0x45323d,'message':{'from':util[_0xe4b8('0x14')]('\x22%s\x22\x20<%s>',_0x45abbe[_0xe4b8('0xb')]['name'],_0x45abbe[_0xe4b8('0xb')][_0xe4b8('0xa')]||_0x45abbe[_0xe4b8('0xb')][_0xe4b8('0xc')][_0xe4b8('0x12')]),'to':_0x45abbe[_0xe4b8('0xa')],'cc':_0x45abbe['cc'],'bcc':_0x45abbe[_0xe4b8('0x15')],'subject':util[_0xe4b8('0x14')]('Report\x20%s\x20last\x20%s\x20%s',_0x1d4dcb[_0xe4b8('0x16')],_0x45abbe[_0xe4b8('0x17')],_0x45abbe[_0xe4b8('0x18')])}};var _0x1cde05=path[_0xe4b8('0x19')](__dirname,_0xe4b8('0x1a'));var _0xdb3646=_0x1d4dcb[_0xe4b8('0x1b')];var _0x467558=util['format'](_0xe4b8('0x1c'),path[_0xe4b8('0x1d')](_0x1d4dcb['savename'],path[_0xe4b8('0x1e')](_0x1d4dcb['savename'])),_0xe4b8('0x1f'));var _0x388c78=path[_0xe4b8('0x19')](_0x1cde05,_0xdb3646);var _0x541535=path[_0xe4b8('0x19')](_0x1cde05,_0x467558);if(fs[_0xe4b8('0x20')](_0x388c78)){_0x1d4dcb[_0xe4b8('0x21')]=_0xe4b8('0x22');_0x159dc5[_0xe4b8('0x23')][_0xe4b8('0x24')]=[{'filename':_0xdb3646,'path':_0x388c78}];_0x159dc5['message'][_0xe4b8('0x25')]=util[_0xe4b8('0x14')](_0xe4b8('0x26'),JSON['stringify'](_0x1d4dcb,null,0x2));}else if(fs[_0xe4b8('0x20')](_0x541535)){_0x1d4dcb['status']=_0xe4b8('0x22');_0x159dc5['message'][_0xe4b8('0x24')]=[{'filename':_0x467558,'path':_0x541535}];}else{_0x159dc5['message']['text']='Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a';if(!_0x45abbe[_0xe4b8('0x27')]){_0x2b0581=![];logger['info'](_0xe4b8('0x28'));}}if(_0x2b0581){return client[_0xe4b8('0x29')](_0xe4b8('0x2a'),_0x159dc5)[_0xe4b8('0x2b')](function(_0x556bba){if(_0x556bba['error']){return logger['error'](_0xe4b8('0x2c'),JSON[_0xe4b8('0x2d')](_0x556bba));}return logger[_0xe4b8('0x2e')](_0xe4b8('0x2f'));})[_0xe4b8('0x30')](function(_0x4e5424){return logger['error'](_0xe4b8('0x2c'),JSON[_0xe4b8('0x2d')](_0x4e5424));});}};}function handleError(){return function(_0x52c74c){return logger[_0xe4b8('0x31')](JSON[_0xe4b8('0x2d')](_0x52c74c));};}function handleResult(_0xb210dc){return function(_0x4d7d4a){logger['info'](_0xe4b8('0x32'),JSON[_0xe4b8('0x2d')](_0x4d7d4a));if(_0xb210dc['MailAccount']&&_0xb210dc[_0xe4b8('0xb')][_0xe4b8('0xc')]&&!_[_0xe4b8('0x33')](_0xb210dc[_0xe4b8('0xa')])){setTimeout(handleSendEmail(_0xb210dc,_0x4d7d4a),0x3c*0x3e8);}};}function handleJob(_0x36f1af){return function(){try{if(_[_0xe4b8('0x33')](_0x36f1af[_0xe4b8('0x17')])){return logger[_0xe4b8('0x2e')](_0xe4b8('0x34'));}if(_[_0xe4b8('0x33')](_0x36f1af[_0xe4b8('0x18')])){return logger[_0xe4b8('0x2e')]('subtractUnit\x20null\x20or\x20undefined');}var _0x2b21d2={'startDate':moment()[_0xe4b8('0x35')](_0x36f1af[_0xe4b8('0x17')],_0x36f1af[_0xe4b8('0x18')])[_0xe4b8('0x14')](_0xe4b8('0x36')),'endDate':moment()[_0xe4b8('0x14')](_0xe4b8('0x36')),'type':'scheduled','output':_0x36f1af[_0xe4b8('0x37')],'name':_0x36f1af['name']};if(!_[_0xe4b8('0x33')](_0x36f1af[_0xe4b8('0x38')])){logger[_0xe4b8('0x2e')](_0xe4b8('0x39'),_0x36f1af[_0xe4b8('0x38')]);return analyticDefaultReportController[_0xe4b8('0x3a')]({'id':_0x36f1af[_0xe4b8('0x38')]},_0x2b21d2)[_0xe4b8('0x2b')](handleResult(_0x36f1af))['catch'](handleError());}if(!_[_0xe4b8('0x33')](_0x36f1af[_0xe4b8('0x3b')])){logger[_0xe4b8('0x2e')](_0xe4b8('0x3c'),_0x36f1af['CustomReportId']);return analyticCustomReportController[_0xe4b8('0x3a')]({'id':_0x36f1af[_0xe4b8('0x3b')]},_0x2b21d2)[_0xe4b8('0x2b')](handleResult(_0x36f1af))[_0xe4b8('0x30')](handleError());}}catch(_0x5956a2){logger['error'](JSON[_0xe4b8('0x2d')](_0x5956a2));}return logger['info'](_0xe4b8('0x3d'));};}function getJobs(_0x2e3420){var _0x3e915d={};if(_0x2e3420){_0x3e915d['id']=_0x2e3420;}return db[_0xe4b8('0x3e')]['findAll']({'where':_0x3e915d,'include':[{'model':db[_0xe4b8('0xb')],'attributes':['id',_0xe4b8('0x16'),'email'],'include':[{'model':db[_0xe4b8('0x3f')],'as':'Smtp'}]}]})[_0xe4b8('0x2b')](function(_0x49db31){var _0x48b3a5=_[_0xe4b8('0x40')](manager['jobs']);var _0x119e37=_['map'](_0x49db31,function(_0x2766e5){return _0x2766e5['id'][_0xe4b8('0x41')]();});var _0x521c4f=_[_0xe4b8('0x42')](_0x49db31,function(_0x30da48){return _0x30da48['id'][_0xe4b8('0x41')]();});var _0x2c9708=_0x2e3420?_0x119e37:_[_0xe4b8('0x43')](_0x119e37,_0x48b3a5);var _0x15b97e=_[_0xe4b8('0x44')](_0x119e37,_0x48b3a5);var _0x14dd35=_[_0xe4b8('0x43')](_0x48b3a5,_0x119e37);var _0x5b9df5;var _0x535c1f;for(_0x5b9df5=0x0;_0x5b9df5<_0x14dd35[_0xe4b8('0x45')]&&!_0x2e3420;_0x5b9df5+=0x1){_0x535c1f=_0x14dd35[_0x5b9df5][_0xe4b8('0x41')]();if(manager[_0xe4b8('0x46')](_0x535c1f)){manager[_0xe4b8('0x47')](_0x535c1f);manager[_0xe4b8('0x48')](_0x535c1f);logger[_0xe4b8('0x2e')](_0xe4b8('0x49'),_0x535c1f);}}logger[_0xe4b8('0x2e')](_0xe4b8('0x4a'),JSON[_0xe4b8('0x2d')](_0x2c9708));for(_0x5b9df5=0x0;_0x5b9df5<_0x2c9708[_0xe4b8('0x45')];_0x5b9df5+=0x1){_0x535c1f=_0x2c9708[_0x5b9df5]['toString']();logger[_0xe4b8('0x2e')]('index',_0x535c1f);if(_0x2e3420){logger[_0xe4b8('0x2e')](_0xe4b8('0x4b'),_0x2e3420);logger[_0xe4b8('0x2e')](JSON[_0xe4b8('0x2d')](_0x521c4f[_0x535c1f]));BPromise['resolve']()['then'](handleJob(_0x521c4f[_0x535c1f]));logger['info'](_0xe4b8('0x4c'),_0x521c4f[_0x535c1f][_0xe4b8('0x16')],_0x521c4f[_0x535c1f][_0xe4b8('0x4d')]);}else if(_0x521c4f[_0x535c1f][_0xe4b8('0x4d')]&&_0x521c4f[_0x535c1f]['active']&&moment()[_0xe4b8('0x4e')](_0x521c4f[_0x535c1f]['startAt'],_0x521c4f[_0x535c1f][_0xe4b8('0x4f')])){manager[_0xe4b8('0x50')](_0x535c1f,_0x521c4f[_0x535c1f][_0xe4b8('0x4d')],handleJob(_0x521c4f[_0x535c1f]));manager[_0xe4b8('0x51')](_0x535c1f);logger['info'](_0xe4b8('0x52'),_0x521c4f[_0x535c1f][_0xe4b8('0x16')],_0x521c4f[_0x535c1f][_0xe4b8('0x4d')]);}else if(manager[_0xe4b8('0x46')](_0x535c1f)){manager[_0xe4b8('0x47')](_0x535c1f);manager[_0xe4b8('0x48')](_0x535c1f);logger[_0xe4b8('0x2e')](_0xe4b8('0x53'),_0x521c4f[_0x535c1f][_0xe4b8('0x16')],_0x521c4f[_0x535c1f][_0xe4b8('0x4d')]);}}for(_0x5b9df5=0x0,_0x535c1f;_0x5b9df5<_0x15b97e[_0xe4b8('0x45')]&&!_0x2e3420;_0x5b9df5+=0x1){_0x535c1f=_0x15b97e[_0x5b9df5]['toString']();if(manager[_0xe4b8('0x46')](_0x535c1f)){if(_0x521c4f[_0x535c1f][_0xe4b8('0x4d')]&&_0x521c4f[_0x535c1f][_0xe4b8('0x54')]&&moment()['isBetween'](_0x521c4f[_0x535c1f]['startAt'],_0x521c4f[_0x535c1f][_0xe4b8('0x4f')])){manager[_0xe4b8('0x55')](_0x535c1f,_0x521c4f[_0x535c1f]['cron'],handleJob(_0x521c4f[_0x535c1f]));logger[_0xe4b8('0x2e')](_0xe4b8('0x56'),_0x521c4f[_0x535c1f][_0xe4b8('0x16')],_0x521c4f[_0x535c1f][_0xe4b8('0x4d')]);}else{manager['stop'](_0x535c1f);manager[_0xe4b8('0x48')](_0x535c1f);logger[_0xe4b8('0x2e')](_0xe4b8('0x53'),_0x521c4f[_0x535c1f]['name'],_0x521c4f[_0x535c1f][_0xe4b8('0x4d')]);}}}})[_0xe4b8('0x30')](function(_0x1fcb9d){logger[_0xe4b8('0x31')](JSON[_0xe4b8('0x2d')](_0x1fcb9d));});}exports[_0xe4b8('0x57')]=function(_0x523deb){return getJobs(_0x523deb);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
+var _0xd7b3=['Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','request','SendMail','then','error','email\x20sent','catch','stringify','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','exec\x20defaul\x20report\x20id:%s','runReport','CustomReportId','no\x20report\x20id','Schedule','MailServerOut','keys','jobs','map','toString','keyBy','intersection','difference','length','exists','stop','index','my\x20id','run\x20job','cron','active','isBetween','startAt','endAt','start','add\x20cron','deleteJob','stop\x20cron','update','run','util','lodash','moment','cron-job-manager','jayson/promise','bluebird','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','service','Smtp','host','port','secure','auth','pass','format','\x22%s\x22\x20<%s>','name','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','%s.%s','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','attachments'];(function(_0x3f239d,_0x1e4675){var _0x46f035=function(_0x4d80a3){while(--_0x4d80a3){_0x3f239d['push'](_0x3f239d['shift']());}};_0x46f035(++_0x1e4675);}(_0xd7b3,0xe3));var _0x3d7b=function(_0x17dd1d,_0x31f1b5){_0x17dd1d=_0x17dd1d-0x0;var _0x5e9d0c=_0xd7b3[_0x17dd1d];return _0x5e9d0c;};'use strict';var fs=require('fs');var util=require(_0x3d7b('0x0'));var path=require('path');var _=require(_0x3d7b('0x1'));var moment=require(_0x3d7b('0x2'));var CronJobManager=require(_0x3d7b('0x3'));var jayson=require(_0x3d7b('0x4'));var BPromise=require(_0x3d7b('0x5'));var logger=require('../logger')(_0x3d7b('0x6'));var db=require(_0x3d7b('0x7'))['db'];var analyticCustomReportController=require(_0x3d7b('0x8'));var analyticDefaultReportController=require(_0x3d7b('0x9'));var client=jayson[_0x3d7b('0xa')][_0x3d7b('0xb')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x2c4908,_0xd50609){return function(){logger[_0x3d7b('0xc')](_0x3d7b('0xd'),_0x2c4908[_0x3d7b('0xe')]);var _0x2ef75a=!![];var _0x526ec0={'tls':{'rejectUnauthorized':![]}};if(_0x2c4908[_0x3d7b('0xf')]['Smtp'][_0x3d7b('0x10')]){_0x526ec0[_0x3d7b('0x10')]=_0x2c4908['MailAccount'][_0x3d7b('0x11')]['service'];}else{_0x526ec0[_0x3d7b('0x12')]=_0x2c4908[_0x3d7b('0xf')]['Smtp']['host'];_0x526ec0[_0x3d7b('0x13')]=_0x2c4908[_0x3d7b('0xf')][_0x3d7b('0x11')][_0x3d7b('0x13')];_0x526ec0['secure']=_0x2c4908[_0x3d7b('0xf')][_0x3d7b('0x11')][_0x3d7b('0x14')];}if(_0x2c4908[_0x3d7b('0xf')]['Smtp']['authentication']){_0x526ec0[_0x3d7b('0x15')]={'user':_0x2c4908[_0x3d7b('0xf')][_0x3d7b('0x11')]['user'],'pass':_0x2c4908[_0x3d7b('0xf')][_0x3d7b('0x11')][_0x3d7b('0x16')]};}var _0x399df1={'account':_0x526ec0,'message':{'from':util[_0x3d7b('0x17')](_0x3d7b('0x18'),_0x2c4908[_0x3d7b('0xf')][_0x3d7b('0x19')],_0x2c4908[_0x3d7b('0xf')][_0x3d7b('0xe')]||_0x2c4908[_0x3d7b('0xf')][_0x3d7b('0x11')]['user']),'to':_0x2c4908[_0x3d7b('0xe')],'cc':_0x2c4908['cc'],'bcc':_0x2c4908[_0x3d7b('0x1a')],'subject':util['format'](_0x3d7b('0x1b'),_0xd50609[_0x3d7b('0x19')],_0x2c4908[_0x3d7b('0x1c')],_0x2c4908[_0x3d7b('0x1d')])}};var _0x4b586e=path[_0x3d7b('0x1e')](__dirname,'../../files/reports');var _0x5c258a=_0xd50609['savename'];var _0xffdac9=util[_0x3d7b('0x17')](_0x3d7b('0x1f'),path[_0x3d7b('0x20')](_0xd50609[_0x3d7b('0x21')],path[_0x3d7b('0x22')](_0xd50609[_0x3d7b('0x21')])),_0x3d7b('0x23'));var _0x5f1364=path[_0x3d7b('0x1e')](_0x4b586e,_0x5c258a);var _0x149fd9=path[_0x3d7b('0x1e')](_0x4b586e,_0xffdac9);if(fs[_0x3d7b('0x24')](_0x5f1364)){_0xd50609[_0x3d7b('0x25')]=_0x3d7b('0x26');_0x399df1[_0x3d7b('0x27')]['attachments']=[{'filename':_0x5c258a,'path':_0x5f1364}];_0x399df1[_0x3d7b('0x27')][_0x3d7b('0x28')]=util[_0x3d7b('0x17')](_0x3d7b('0x29'),JSON['stringify'](_0xd50609,null,0x2));}else if(fs[_0x3d7b('0x24')](_0x149fd9)){_0xd50609[_0x3d7b('0x25')]='Sent';_0x399df1['message'][_0x3d7b('0x2a')]=[{'filename':_0xffdac9,'path':_0x149fd9}];}else{_0x399df1['message']['text']=_0x3d7b('0x2b');if(!_0x2c4908[_0x3d7b('0x2c')]){_0x2ef75a=![];logger['info']('empty\x20file,\x20email\x20not\x20sent');}}if(_0x2ef75a){return client[_0x3d7b('0x2d')](_0x3d7b('0x2e'),_0x399df1)[_0x3d7b('0x2f')](function(_0x25b0cd){if(_0x25b0cd[_0x3d7b('0x30')]){return logger[_0x3d7b('0x30')]('error\x20mail',JSON['stringify'](_0x25b0cd));}return logger[_0x3d7b('0xc')](_0x3d7b('0x31'));})[_0x3d7b('0x32')](function(_0x5272f4){return logger[_0x3d7b('0x30')]('error\x20mail',JSON[_0x3d7b('0x33')](_0x5272f4));});}};}function handleError(){return function(_0xdaeea5){return logger['error'](JSON[_0x3d7b('0x33')](_0xdaeea5));};}function handleResult(_0x321a0f){return function(_0x531b3b){logger[_0x3d7b('0xc')](_0x3d7b('0x34'),JSON[_0x3d7b('0x33')](_0x531b3b));if(_0x321a0f['MailAccount']&&_0x321a0f[_0x3d7b('0xf')][_0x3d7b('0x11')]&&!_[_0x3d7b('0x35')](_0x321a0f[_0x3d7b('0xe')])){setTimeout(handleSendEmail(_0x321a0f,_0x531b3b),0x3c*0x3e8);}};}function handleJob(_0x33e889){return function(){try{if(_[_0x3d7b('0x35')](_0x33e889[_0x3d7b('0x1c')])){return logger['info'](_0x3d7b('0x36'));}if(_['isNil'](_0x33e889['subtractUnit'])){return logger[_0x3d7b('0xc')](_0x3d7b('0x37'));}var _0x3f0992={'startDate':moment()[_0x3d7b('0x38')](_0x33e889[_0x3d7b('0x1c')],_0x33e889['subtractUnit'])[_0x3d7b('0x17')](_0x3d7b('0x39')),'endDate':moment()[_0x3d7b('0x17')](_0x3d7b('0x39')),'type':_0x3d7b('0x3a'),'output':_0x33e889[_0x3d7b('0x3b')],'name':_0x33e889[_0x3d7b('0x19')]};if(!_[_0x3d7b('0x35')](_0x33e889['DefaultReportId'])){logger['info'](_0x3d7b('0x3c'),_0x33e889['DefaultReportId']);return analyticDefaultReportController[_0x3d7b('0x3d')]({'id':_0x33e889['DefaultReportId']},_0x3f0992)[_0x3d7b('0x2f')](handleResult(_0x33e889))[_0x3d7b('0x32')](handleError());}if(!_[_0x3d7b('0x35')](_0x33e889[_0x3d7b('0x3e')])){logger[_0x3d7b('0xc')]('exec\x20custom\x20report\x20id:%s',_0x33e889[_0x3d7b('0x3e')]);return analyticCustomReportController['runReport']({'id':_0x33e889[_0x3d7b('0x3e')]},_0x3f0992)['then'](handleResult(_0x33e889))[_0x3d7b('0x32')](handleError());}}catch(_0x1264ca){logger[_0x3d7b('0x30')](JSON[_0x3d7b('0x33')](_0x1264ca));}return logger[_0x3d7b('0xc')](_0x3d7b('0x3f'));};}function getJobs(_0x3f7a0a){var _0x455b83={};if(_0x3f7a0a){_0x455b83['id']=_0x3f7a0a;}return db[_0x3d7b('0x40')]['findAll']({'where':_0x455b83,'include':[{'model':db[_0x3d7b('0xf')],'attributes':['id','name',_0x3d7b('0xe')],'include':[{'model':db[_0x3d7b('0x41')],'as':_0x3d7b('0x11')}]}]})['then'](function(_0x5eb322){var _0x3af703=_[_0x3d7b('0x42')](manager[_0x3d7b('0x43')]);var _0x379615=_[_0x3d7b('0x44')](_0x5eb322,function(_0x12ff75){return _0x12ff75['id'][_0x3d7b('0x45')]();});var _0x56e0eb=_[_0x3d7b('0x46')](_0x5eb322,function(_0x33aa7b){return _0x33aa7b['id'][_0x3d7b('0x45')]();});var _0x4fcec8=_0x3f7a0a?_0x379615:_['difference'](_0x379615,_0x3af703);var _0x63e71f=_[_0x3d7b('0x47')](_0x379615,_0x3af703);var _0x39e3ea=_[_0x3d7b('0x48')](_0x3af703,_0x379615);var _0x50ac34;var _0x3a7e97;for(_0x50ac34=0x0;_0x50ac34<_0x39e3ea[_0x3d7b('0x49')]&&!_0x3f7a0a;_0x50ac34+=0x1){_0x3a7e97=_0x39e3ea[_0x50ac34][_0x3d7b('0x45')]();if(manager[_0x3d7b('0x4a')](_0x3a7e97)){manager[_0x3d7b('0x4b')](_0x3a7e97);manager['deleteJob'](_0x3a7e97);logger[_0x3d7b('0xc')]('delete\x20cron',_0x3a7e97);}}logger[_0x3d7b('0xc')]('toRun',JSON[_0x3d7b('0x33')](_0x4fcec8));for(_0x50ac34=0x0;_0x50ac34<_0x4fcec8[_0x3d7b('0x49')];_0x50ac34+=0x1){_0x3a7e97=_0x4fcec8[_0x50ac34][_0x3d7b('0x45')]();logger[_0x3d7b('0xc')](_0x3d7b('0x4c'),_0x3a7e97);if(_0x3f7a0a){logger[_0x3d7b('0xc')](_0x3d7b('0x4d'),_0x3f7a0a);logger[_0x3d7b('0xc')](JSON['stringify'](_0x56e0eb[_0x3a7e97]));BPromise['resolve']()[_0x3d7b('0x2f')](handleJob(_0x56e0eb[_0x3a7e97]));logger[_0x3d7b('0xc')](_0x3d7b('0x4e'),_0x56e0eb[_0x3a7e97][_0x3d7b('0x19')],_0x56e0eb[_0x3a7e97][_0x3d7b('0x4f')]);}else if(_0x56e0eb[_0x3a7e97][_0x3d7b('0x4f')]&&_0x56e0eb[_0x3a7e97][_0x3d7b('0x50')]&&moment()[_0x3d7b('0x51')](_0x56e0eb[_0x3a7e97][_0x3d7b('0x52')],_0x56e0eb[_0x3a7e97][_0x3d7b('0x53')])){manager['add'](_0x3a7e97,_0x56e0eb[_0x3a7e97][_0x3d7b('0x4f')],handleJob(_0x56e0eb[_0x3a7e97]));manager[_0x3d7b('0x54')](_0x3a7e97);logger[_0x3d7b('0xc')](_0x3d7b('0x55'),_0x56e0eb[_0x3a7e97][_0x3d7b('0x19')],_0x56e0eb[_0x3a7e97][_0x3d7b('0x4f')]);}else if(manager[_0x3d7b('0x4a')](_0x3a7e97)){manager[_0x3d7b('0x4b')](_0x3a7e97);manager[_0x3d7b('0x56')](_0x3a7e97);logger['info'](_0x3d7b('0x57'),_0x56e0eb[_0x3a7e97]['name'],_0x56e0eb[_0x3a7e97][_0x3d7b('0x4f')]);}}for(_0x50ac34=0x0,_0x3a7e97;_0x50ac34<_0x63e71f[_0x3d7b('0x49')]&&!_0x3f7a0a;_0x50ac34+=0x1){_0x3a7e97=_0x63e71f[_0x50ac34][_0x3d7b('0x45')]();if(manager['exists'](_0x3a7e97)){if(_0x56e0eb[_0x3a7e97][_0x3d7b('0x4f')]&&_0x56e0eb[_0x3a7e97][_0x3d7b('0x50')]&&moment()[_0x3d7b('0x51')](_0x56e0eb[_0x3a7e97]['startAt'],_0x56e0eb[_0x3a7e97]['endAt'])){manager[_0x3d7b('0x58')](_0x3a7e97,_0x56e0eb[_0x3a7e97][_0x3d7b('0x4f')],handleJob(_0x56e0eb[_0x3a7e97]));logger[_0x3d7b('0xc')]('update\x20cron',_0x56e0eb[_0x3a7e97]['name'],_0x56e0eb[_0x3a7e97][_0x3d7b('0x4f')]);}else{manager[_0x3d7b('0x4b')](_0x3a7e97);manager[_0x3d7b('0x56')](_0x3a7e97);logger[_0x3d7b('0xc')](_0x3d7b('0x57'),_0x56e0eb[_0x3a7e97]['name'],_0x56e0eb[_0x3a7e97]['cron']);}}}})[_0x3d7b('0x32')](function(_0x18f851){logger[_0x3d7b('0x30')](JSON[_0x3d7b('0x33')](_0x18f851));});}exports[_0x3d7b('0x59')]=function(_0xe3977a){return getJobs(_0xe3977a);};exports[_0x3d7b('0x54')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98e5=['TranscribeService','getTranscriptionJob','Comprehend','substring','format','[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)','data1','data2','transcribeRegion','transcribeName','then','info','[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s','TranscriptionJob','TranscriptionJobStatus','COMPLETED','Transcript','TranscriptFileUri','[RECORDING:%d]\x20Get\x20transcript','[RECORDING:%d]\x20Transcript\x20downloaded','results','transcripts','length','fileText','transcript','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','tempSentiment','ValidationError','Sentiment\x20Analysis\x20not\x20requested','sentiment','sentimentAccountId','sentimentRegion','Sentiment\x20Analysis\x20not\x20configured','Transcript\x20not\x20available','CloudProvider','Sequelize','Cloud\x20Provider\x20not\x20configured','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','language','Sentiment','Positive','SentimentScore','Mixed','Neutral','FAILED','[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed','resolve','bucket','update','Negative','catch','name','SequelizeValidationError','error','[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis','inspect','findAll','IN_PROGRESS','Setting','findOne','Settings\x20not\x20available','transcribeAccountId','Transcribe\x20not\x20configured','forEach','push','all','start','util','bluebird','../../config/logger','transcribe'];(function(_0x460152,_0x1f82c5){var _0x3e9d81=function(_0x31bef0){while(--_0x31bef0){_0x460152['push'](_0x460152['shift']());}};_0x3e9d81(++_0x1f82c5);}(_0x98e5,0x8a));var _0x598e=function(_0x35d862,_0x49931e){_0x35d862=_0x35d862-0x0;var _0x1b8c4b=_0x98e5[_0x35d862];return _0x1b8c4b;};var _=require('lodash');var AWS=require('aws-sdk');var rp=require('request-promise');var util=require(_0x598e('0x0'));var BPromise=require(_0x598e('0x1'));var db=require('../../mysqldb')['db'];var logger=require(_0x598e('0x2'))(_0x598e('0x3'));function getTranscriptionJob(_0x5cc274,_0x3af01f,_0x5a876c,_0x55025c){return new Promise(function(_0x154755,_0x568749){var _0x4292c3=new AWS[(_0x598e('0x4'))]({'accessKeyId':_0x3af01f,'secretAccessKey':_0x5cc274,'region':_0x5a876c});_0x4292c3[_0x598e('0x5')]({'TranscriptionJobName':_0x55025c},function(_0x3e0212,_0x9dc046){if(_0x3e0212){return _0x568749(_0x3e0212);}else{return _0x154755(_0x9dc046);}});});}function sentiment(_0x3e6e86,_0x1d394c,_0x2550b9,_0x2e8f07,_0x12a9f4){return new Promise(function(_0x28dee7,_0x4883b1){var _0x44e441=new AWS[(_0x598e('0x6'))]({'accessKeyId':_0x1d394c,'secretAccessKey':_0x3e6e86,'region':_0x2550b9});_0x44e441['detectSentiment']({'Text':_0x2e8f07,'LanguageCode':_0x12a9f4[_0x598e('0x7')](0x0,0x2)},function(_0x547579,_0x3bcd08){if(_0x547579){return _0x4883b1(_0x547579);}else{return _0x28dee7(_0x3bcd08);}});});}function checkTranscribeJob(_0x445d1d,_0x2e3614,_0xd29d12){var _0x3811b2;return new BPromise(function(_0x49ac43,_0x1497c9){logger['info'](util[_0x598e('0x8')](_0x598e('0x9'),_0x445d1d['id'],_0x445d1d['transcribeName']));return getTranscriptionJob(_0xd29d12[_0x598e('0xa')],_0xd29d12[_0x598e('0xb')],_0x2e3614[_0x598e('0xc')],_0x445d1d[_0x598e('0xd')])[_0x598e('0xe')](function(_0x93ba6c){logger[_0x598e('0xf')](util['format'](_0x598e('0x10'),_0x445d1d['id'],_0x445d1d[_0x598e('0xd')],_0x93ba6c[_0x598e('0x11')][_0x598e('0x12')]));if(!_0x445d1d['fileText']){switch(_0x93ba6c[_0x598e('0x11')][_0x598e('0x12')]){case _0x598e('0x13'):var _0x31846e={'transcribeStatus':_0x93ba6c[_0x598e('0x11')][_0x598e('0x12')],'fileUri':_0x93ba6c[_0x598e('0x11')][_0x598e('0x14')][_0x598e('0x15')]};logger[_0x598e('0xf')](util[_0x598e('0x8')](_0x598e('0x16'),_0x445d1d['id']));return rp({'uri':_0x93ba6c[_0x598e('0x11')][_0x598e('0x14')][_0x598e('0x15')],'json':!![]})[_0x598e('0xe')](function(_0x233f16){logger[_0x598e('0xf')](util['format'](_0x598e('0x17'),_0x445d1d['id']));if(_0x233f16&&_0x233f16['results']&&_0x233f16[_0x598e('0x18')][_0x598e('0x19')]&&_0x233f16['results'][_0x598e('0x19')][_0x598e('0x1a')]){_0x31846e[_0x598e('0x1b')]='';for(var _0xc83fcf=0x0;_0xc83fcf<_0x233f16[_0x598e('0x18')][_0x598e('0x19')][_0x598e('0x1a')];_0xc83fcf++){_0x31846e[_0x598e('0x1b')]+=_0x233f16[_0x598e('0x18')][_0x598e('0x19')][_0xc83fcf][_0x598e('0x1c')]+'';}}return _0x445d1d['update'](_0x31846e);})[_0x598e('0xe')](function(){logger['info'](util[_0x598e('0x8')](_0x598e('0x1d'),_0x445d1d['id']));if(!_0x445d1d[_0x598e('0x1e')]){throw new db['Sequelize'][(_0x598e('0x1f'))](_0x598e('0x20'));}if(!_0x2e3614[_0x598e('0x21')]||!_0x2e3614[_0x598e('0x22')]||!_0x2e3614[_0x598e('0x23')]||!_0x2e3614['language']||!_0x2e3614['bucket']){throw new db['Sequelize'][(_0x598e('0x1f'))](_0x598e('0x24'));}if(!_0x31846e[_0x598e('0x1b')]){throw new Error(_0x598e('0x25'));}if(_0x2e3614[_0x598e('0x22')]===_0xd29d12['id']){return _0xd29d12;}else{return db[_0x598e('0x26')]['findOne']({'where':{'id':_settings[_0x598e('0x22')]}});}})[_0x598e('0xe')](function(_0x9922ca){if(!_0x9922ca){throw new db[(_0x598e('0x27'))][(_0x598e('0x1f'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x9922ca[_0x598e('0xa')]||!_0x9922ca[_0x598e('0xb')]){throw new db[(_0x598e('0x27'))]['ValidationError'](_0x598e('0x28'));}_0x3811b2=_0x9922ca;logger[_0x598e('0xf')](util['format'](_0x598e('0x29'),_0x445d1d['id']));return sentiment(_0x3811b2[_0x598e('0xa')],_0x3811b2[_0x598e('0xb')],_0x2e3614[_0x598e('0x23')],_0x31846e[_0x598e('0x1b')],_0x2e3614[_0x598e('0x2a')]);})['then'](function(_0x16de0a){logger[_0x598e('0xf')](util[_0x598e('0x8')]('[RECORDING:%d]\x20Sentiment\x20Analysis\x20available',_0x445d1d['id']));return _0x445d1d['update']({'sentiment':_0x16de0a[_0x598e('0x2b')],'sPositive':_0x16de0a['SentimentScore'][_0x598e('0x2c')],'sNegative':_0x16de0a[_0x598e('0x2d')]['Negative'],'sMixed':_0x16de0a['SentimentScore'][_0x598e('0x2e')],'sNeutral':_0x16de0a['SentimentScore'][_0x598e('0x2f')]});})[_0x598e('0xe')](function(){logger[_0x598e('0xf')](util['format'](_0x598e('0x1d'),_0x445d1d['id']));_0x49ac43();});case'FAILED':return _0x445d1d['update']({'transcribeStatus':_0x598e('0x30'),'failureReason':_0x93ba6c[_0x598e('0x11')]['FailureReason']})['then'](function(){logger[_0x598e('0xf')](util[_0x598e('0x8')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0x445d1d['id']));_0x49ac43();});default:logger[_0x598e('0xf')](util[_0x598e('0x8')](_0x598e('0x31'),_0x445d1d['id']));break;}}else{return BPromise[_0x598e('0x32')]()[_0x598e('0xe')](function(){if(!_0x445d1d[_0x598e('0x1e')]){throw new db[(_0x598e('0x27'))]['ValidationError'](_0x598e('0x20'));}if(!_0x2e3614[_0x598e('0x21')]||!_0x2e3614[_0x598e('0x22')]||!_0x2e3614[_0x598e('0x23')]||!_0x2e3614[_0x598e('0x2a')]||!_0x2e3614[_0x598e('0x33')]){throw new db[(_0x598e('0x27'))][(_0x598e('0x1f'))](_0x598e('0x24'));}if(!_0x445d1d[_0x598e('0x1b')]){throw new Error(_0x598e('0x25'));}if(_0x2e3614[_0x598e('0x22')]===_0xd29d12['id']){return _0xd29d12;}else{return db[_0x598e('0x26')]['findOne']({'where':{'id':_settings['sentimentAccountId']}});}})[_0x598e('0xe')](function(_0x10218f){if(!_0x10218f){throw new db[(_0x598e('0x27'))][(_0x598e('0x1f'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x10218f[_0x598e('0xa')]||!_0x10218f[_0x598e('0xb')]){throw new db[(_0x598e('0x27'))]['ValidationError'](_0x598e('0x28'));}_0x3811b2=_0x10218f;logger[_0x598e('0xf')](util[_0x598e('0x8')](_0x598e('0x29'),_0x445d1d['id']));return sentiment(_0x3811b2[_0x598e('0xa')],_0x3811b2[_0x598e('0xb')],_0x2e3614[_0x598e('0x23')],_0x445d1d[_0x598e('0x1b')],_0x2e3614[_0x598e('0x2a')]);})[_0x598e('0xe')](function(_0x1cacb6){logger['info'](util['format']('[RECORDING:%d]\x20Sentiment\x20Analysis\x20available',_0x445d1d['id']));return _0x445d1d[_0x598e('0x34')]({'sentiment':_0x1cacb6[_0x598e('0x2b')],'sPositive':_0x1cacb6[_0x598e('0x2d')]['Positive'],'sNegative':_0x1cacb6[_0x598e('0x2d')][_0x598e('0x35')],'sMixed':_0x1cacb6[_0x598e('0x2d')]['Mixed'],'sNeutral':_0x1cacb6[_0x598e('0x2d')][_0x598e('0x2f')],'transcribeStatus':_0x598e('0x13')});})['then'](function(){logger[_0x598e('0xf')](util[_0x598e('0x8')](_0x598e('0x1d'),_0x445d1d['id']));_0x49ac43();});}})[_0x598e('0x36')](function(_0x20723d){if(_0x20723d){if(!_0x20723d[_0x598e('0x37')]||_0x20723d['name']!==_0x598e('0x38')){logger[_0x598e('0x39')](util['format'](_0x598e('0x3a'),_0x445d1d['id']),util[_0x598e('0x3b')](_0x20723d,{'showHidden':![],'depth':null}));}}_0x49ac43();});});}function checkTranscribe(){var _0x2a55a7;var _0x584f24;var _0x59e67b;return db['VoiceRecording'][_0x598e('0x3c')]({'where':{'transcribeStatus':_0x598e('0x3d')}})['then'](function(_0x4b4fcb){if(!_0x4b4fcb||!_0x4b4fcb[_0x598e('0x1a')]){throw new db[(_0x598e('0x27'))]['ValidationError']('No\x20transcribe\x20job\x20to\x20check');}_0x2a55a7=_0x4b4fcb;return db[_0x598e('0x3e')][_0x598e('0x3f')]({'where':{'id':0x1}});})[_0x598e('0xe')](function(_0x34a43d){if(!_0x34a43d){throw new db['Sequelize']['ValidationError'](_0x598e('0x40'));}_0x584f24=_0x34a43d;if(!_0x584f24['transcribe']||!_0x584f24[_0x598e('0x41')]||!_0x584f24['transcribeRegion']||!_0x584f24[_0x598e('0x2a')]||!_0x584f24[_0x598e('0x33')]){throw new db[(_0x598e('0x27'))][(_0x598e('0x1f'))](_0x598e('0x42'));}return db[_0x598e('0x26')][_0x598e('0x3f')]({'where':{'id':_0x584f24['transcribeAccountId']}});})[_0x598e('0xe')](function(_0x170ee8){if(!_0x170ee8){throw new db[(_0x598e('0x27'))][(_0x598e('0x1f'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x170ee8[_0x598e('0xa')]||!_0x170ee8[_0x598e('0xb')]){throw new db[(_0x598e('0x27'))][(_0x598e('0x1f'))](_0x598e('0x28'));}_0x59e67b=_0x170ee8;var _0x3b37fa=[];_0x2a55a7[_0x598e('0x43')](function(_0x58b6b3){_0x3b37fa[_0x598e('0x44')](checkTranscribeJob(_0x58b6b3,_0x584f24,_0x59e67b));});return BPromise[_0x598e('0x45')](_0x3b37fa);})[_0x598e('0x36')](function(_0x32d5fe){if(_0x32d5fe){if(!_0x32d5fe['name']||_0x32d5fe[_0x598e('0x37')]!=='SequelizeValidationError'){logger['error'](util[_0x598e('0x3b')](_0x32d5fe,{'showHidden':![],'depth':null}));}}});}exports[_0x598e('0x46')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};
\ No newline at end of file
+var _0xde6f=['TranscriptionJob','Transcript','TranscriptFileUri','[RECORDING:%d]\x20Get\x20transcript','[RECORDING:%d]\x20Transcript\x20downloaded','results','transcripts','length','transcript','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','Sequelize','ValidationError','sentiment','sentimentAccountId','language','bucket','findOne','Cloud\x20Provider\x20not\x20configured','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','update','Sentiment','SentimentScore','Positive','Negative','Mixed','FAILED','FailureReason','[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed','resolve','tempSentiment','Sentiment\x20Analysis\x20not\x20requested','Sentiment\x20Analysis\x20not\x20configured','Transcript\x20not\x20available','CloudProvider','Cloud\x20Provider\x20not\x20available','sentimentRegion','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','Neutral','COMPLETED','catch','name','error','[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis','inspect','VoiceRecording','findAll','IN_PROGRESS','No\x20transcribe\x20job\x20to\x20check','Setting','Settings\x20not\x20available','transcribeAccountId','transcribeRegion','Transcribe\x20not\x20configured','forEach','push','all','SequelizeValidationError','request-promise','util','bluebird','../../config/logger','transcribe','TranscribeService','getTranscriptionJob','Comprehend','detectSentiment','substring','info','format','transcribeName','data1','data2','then','TranscriptionJobStatus','fileText'];(function(_0x1b7c66,_0x1528af){var _0x464060=function(_0xf1164d){while(--_0xf1164d){_0x1b7c66['push'](_0x1b7c66['shift']());}};_0x464060(++_0x1528af);}(_0xde6f,0x84));var _0xfde6=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xde6f[_0x20a584];return _0x4b41a8;};var _=require('lodash');var AWS=require('aws-sdk');var rp=require(_0xfde6('0x0'));var util=require(_0xfde6('0x1'));var BPromise=require(_0xfde6('0x2'));var db=require('../../mysqldb')['db'];var logger=require(_0xfde6('0x3'))(_0xfde6('0x4'));function getTranscriptionJob(_0x3d10be,_0x17d254,_0x44c8f3,_0x347a67){return new Promise(function(_0x50d21a,_0x5628ea){var _0x20ec09=new AWS[(_0xfde6('0x5'))]({'accessKeyId':_0x17d254,'secretAccessKey':_0x3d10be,'region':_0x44c8f3});_0x20ec09[_0xfde6('0x6')]({'TranscriptionJobName':_0x347a67},function(_0x135b39,_0x5e6fb0){if(_0x135b39){return _0x5628ea(_0x135b39);}else{return _0x50d21a(_0x5e6fb0);}});});}function sentiment(_0x333746,_0x3fe159,_0x136937,_0x5d890c,_0x27e896){return new Promise(function(_0x470b8a,_0x48dd4c){var _0x5167e2=new AWS[(_0xfde6('0x7'))]({'accessKeyId':_0x3fe159,'secretAccessKey':_0x333746,'region':_0x136937});_0x5167e2[_0xfde6('0x8')]({'Text':_0x5d890c,'LanguageCode':_0x27e896[_0xfde6('0x9')](0x0,0x2)},function(_0x1a540f,_0x485d23){if(_0x1a540f){return _0x48dd4c(_0x1a540f);}else{return _0x470b8a(_0x485d23);}});});}function checkTranscribeJob(_0xdb1266,_0x9a96cf,_0x3a3776){var _0x1c5ade;return new BPromise(function(_0x13da60,_0x5bf8fb){logger[_0xfde6('0xa')](util[_0xfde6('0xb')]('[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)',_0xdb1266['id'],_0xdb1266[_0xfde6('0xc')]));return getTranscriptionJob(_0x3a3776[_0xfde6('0xd')],_0x3a3776[_0xfde6('0xe')],_0x9a96cf['transcribeRegion'],_0xdb1266[_0xfde6('0xc')])[_0xfde6('0xf')](function(_0x101ea8){logger[_0xfde6('0xa')](util['format']('[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s',_0xdb1266['id'],_0xdb1266[_0xfde6('0xc')],_0x101ea8['TranscriptionJob'][_0xfde6('0x10')]));if(!_0xdb1266[_0xfde6('0x11')]){switch(_0x101ea8['TranscriptionJob'][_0xfde6('0x10')]){case'COMPLETED':var _0x122e45={'transcribeStatus':_0x101ea8[_0xfde6('0x12')][_0xfde6('0x10')],'fileUri':_0x101ea8[_0xfde6('0x12')][_0xfde6('0x13')][_0xfde6('0x14')]};logger[_0xfde6('0xa')](util[_0xfde6('0xb')](_0xfde6('0x15'),_0xdb1266['id']));return rp({'uri':_0x101ea8['TranscriptionJob'][_0xfde6('0x13')][_0xfde6('0x14')],'json':!![]})['then'](function(_0x2577a1){logger[_0xfde6('0xa')](util['format'](_0xfde6('0x16'),_0xdb1266['id']));if(_0x2577a1&&_0x2577a1[_0xfde6('0x17')]&&_0x2577a1['results']['transcripts']&&_0x2577a1[_0xfde6('0x17')][_0xfde6('0x18')]['length']){_0x122e45[_0xfde6('0x11')]='';for(var _0x492219=0x0;_0x492219<_0x2577a1['results'][_0xfde6('0x18')][_0xfde6('0x19')];_0x492219++){_0x122e45[_0xfde6('0x11')]+=_0x2577a1[_0xfde6('0x17')][_0xfde6('0x18')][_0x492219][_0xfde6('0x1a')]+'';}}return _0xdb1266['update'](_0x122e45);})[_0xfde6('0xf')](function(){logger[_0xfde6('0xa')](util['format'](_0xfde6('0x1b'),_0xdb1266['id']));if(!_0xdb1266['tempSentiment']){throw new db[(_0xfde6('0x1c'))][(_0xfde6('0x1d'))]('Sentiment\x20Analysis\x20not\x20requested');}if(!_0x9a96cf[_0xfde6('0x1e')]||!_0x9a96cf[_0xfde6('0x1f')]||!_0x9a96cf['sentimentRegion']||!_0x9a96cf[_0xfde6('0x20')]||!_0x9a96cf[_0xfde6('0x21')]){throw new db['Sequelize'][(_0xfde6('0x1d'))]('Sentiment\x20Analysis\x20not\x20configured');}if(!_0x122e45[_0xfde6('0x11')]){throw new Error('Transcript\x20not\x20available');}if(_0x9a96cf['sentimentAccountId']===_0x3a3776['id']){return _0x3a3776;}else{return db['CloudProvider'][_0xfde6('0x22')]({'where':{'id':_settings[_0xfde6('0x1f')]}});}})[_0xfde6('0xf')](function(_0x140296){if(!_0x140296){throw new db[(_0xfde6('0x1c'))]['ValidationError']('Cloud\x20Provider\x20not\x20available');}if(!_0x140296['data1']||!_0x140296[_0xfde6('0xe')]){throw new db[(_0xfde6('0x1c'))][(_0xfde6('0x1d'))](_0xfde6('0x23'));}_0x1c5ade=_0x140296;logger[_0xfde6('0xa')](util[_0xfde6('0xb')](_0xfde6('0x24'),_0xdb1266['id']));return sentiment(_0x1c5ade[_0xfde6('0xd')],_0x1c5ade[_0xfde6('0xe')],_0x9a96cf['sentimentRegion'],_0x122e45[_0xfde6('0x11')],_0x9a96cf[_0xfde6('0x20')]);})[_0xfde6('0xf')](function(_0x180ece){logger['info'](util[_0xfde6('0xb')]('[RECORDING:%d]\x20Sentiment\x20Analysis\x20available',_0xdb1266['id']));return _0xdb1266[_0xfde6('0x25')]({'sentiment':_0x180ece[_0xfde6('0x26')],'sPositive':_0x180ece[_0xfde6('0x27')][_0xfde6('0x28')],'sNegative':_0x180ece['SentimentScore'][_0xfde6('0x29')],'sMixed':_0x180ece['SentimentScore'][_0xfde6('0x2a')],'sNeutral':_0x180ece[_0xfde6('0x27')]['Neutral']});})[_0xfde6('0xf')](function(){logger[_0xfde6('0xa')](util[_0xfde6('0xb')](_0xfde6('0x1b'),_0xdb1266['id']));_0x13da60();});case'FAILED':return _0xdb1266[_0xfde6('0x25')]({'transcribeStatus':_0xfde6('0x2b'),'failureReason':_0x101ea8[_0xfde6('0x12')][_0xfde6('0x2c')]})[_0xfde6('0xf')](function(){logger[_0xfde6('0xa')](util[_0xfde6('0xb')](_0xfde6('0x1b'),_0xdb1266['id']));_0x13da60();});default:logger[_0xfde6('0xa')](util[_0xfde6('0xb')](_0xfde6('0x2d'),_0xdb1266['id']));break;}}else{return BPromise[_0xfde6('0x2e')]()[_0xfde6('0xf')](function(){if(!_0xdb1266[_0xfde6('0x2f')]){throw new db[(_0xfde6('0x1c'))][(_0xfde6('0x1d'))](_0xfde6('0x30'));}if(!_0x9a96cf['sentiment']||!_0x9a96cf['sentimentAccountId']||!_0x9a96cf['sentimentRegion']||!_0x9a96cf[_0xfde6('0x20')]||!_0x9a96cf[_0xfde6('0x21')]){throw new db['Sequelize'][(_0xfde6('0x1d'))](_0xfde6('0x31'));}if(!_0xdb1266[_0xfde6('0x11')]){throw new Error(_0xfde6('0x32'));}if(_0x9a96cf[_0xfde6('0x1f')]===_0x3a3776['id']){return _0x3a3776;}else{return db[_0xfde6('0x33')][_0xfde6('0x22')]({'where':{'id':_settings[_0xfde6('0x1f')]}});}})[_0xfde6('0xf')](function(_0x245894){if(!_0x245894){throw new db[(_0xfde6('0x1c'))][(_0xfde6('0x1d'))](_0xfde6('0x34'));}if(!_0x245894['data1']||!_0x245894[_0xfde6('0xe')]){throw new db[(_0xfde6('0x1c'))]['ValidationError'](_0xfde6('0x23'));}_0x1c5ade=_0x245894;logger[_0xfde6('0xa')](util[_0xfde6('0xb')](_0xfde6('0x24'),_0xdb1266['id']));return sentiment(_0x1c5ade[_0xfde6('0xd')],_0x1c5ade[_0xfde6('0xe')],_0x9a96cf[_0xfde6('0x35')],_0xdb1266[_0xfde6('0x11')],_0x9a96cf[_0xfde6('0x20')]);})[_0xfde6('0xf')](function(_0x387581){logger[_0xfde6('0xa')](util[_0xfde6('0xb')](_0xfde6('0x36'),_0xdb1266['id']));return _0xdb1266[_0xfde6('0x25')]({'sentiment':_0x387581[_0xfde6('0x26')],'sPositive':_0x387581['SentimentScore'][_0xfde6('0x28')],'sNegative':_0x387581[_0xfde6('0x27')][_0xfde6('0x29')],'sMixed':_0x387581[_0xfde6('0x27')][_0xfde6('0x2a')],'sNeutral':_0x387581['SentimentScore'][_0xfde6('0x37')],'transcribeStatus':_0xfde6('0x38')});})[_0xfde6('0xf')](function(){logger['info'](util['format'](_0xfde6('0x1b'),_0xdb1266['id']));_0x13da60();});}})[_0xfde6('0x39')](function(_0x1eb912){if(_0x1eb912){if(!_0x1eb912[_0xfde6('0x3a')]||_0x1eb912[_0xfde6('0x3a')]!=='SequelizeValidationError'){logger[_0xfde6('0x3b')](util[_0xfde6('0xb')](_0xfde6('0x3c'),_0xdb1266['id']),util[_0xfde6('0x3d')](_0x1eb912,{'showHidden':![],'depth':null}));}}_0x13da60();});});}function checkTranscribe(){var _0x545f35;var _0x1419be;var _0x5ccefb;return db[_0xfde6('0x3e')][_0xfde6('0x3f')]({'where':{'transcribeStatus':_0xfde6('0x40')}})[_0xfde6('0xf')](function(_0x3830ea){if(!_0x3830ea||!_0x3830ea[_0xfde6('0x19')]){throw new db[(_0xfde6('0x1c'))][(_0xfde6('0x1d'))](_0xfde6('0x41'));}_0x545f35=_0x3830ea;return db[_0xfde6('0x42')]['findOne']({'where':{'id':0x1}});})[_0xfde6('0xf')](function(_0x43677d){if(!_0x43677d){throw new db['Sequelize'][(_0xfde6('0x1d'))](_0xfde6('0x43'));}_0x1419be=_0x43677d;if(!_0x1419be['transcribe']||!_0x1419be[_0xfde6('0x44')]||!_0x1419be[_0xfde6('0x45')]||!_0x1419be[_0xfde6('0x20')]||!_0x1419be[_0xfde6('0x21')]){throw new db[(_0xfde6('0x1c'))][(_0xfde6('0x1d'))](_0xfde6('0x46'));}return db[_0xfde6('0x33')][_0xfde6('0x22')]({'where':{'id':_0x1419be[_0xfde6('0x44')]}});})[_0xfde6('0xf')](function(_0x507d55){if(!_0x507d55){throw new db['Sequelize'][(_0xfde6('0x1d'))](_0xfde6('0x34'));}if(!_0x507d55[_0xfde6('0xd')]||!_0x507d55[_0xfde6('0xe')]){throw new db[(_0xfde6('0x1c'))][(_0xfde6('0x1d'))](_0xfde6('0x23'));}_0x5ccefb=_0x507d55;var _0x2a25d6=[];_0x545f35[_0xfde6('0x47')](function(_0x13ab70){_0x2a25d6[_0xfde6('0x48')](checkTranscribeJob(_0x13ab70,_0x1419be,_0x5ccefb));});return BPromise[_0xfde6('0x49')](_0x2a25d6);})[_0xfde6('0x39')](function(_0x19915d){if(_0x19915d){if(!_0x19915d[_0xfde6('0x3a')]||_0x19915d[_0xfde6('0x3a')]!==_0xfde6('0x4a')){logger['error'](util['inspect'](_0x19915d,{'showHidden':![],'depth':null}));}}});}exports['start']=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a27=['lodash','ioredis','../../config/environment','../logger','schedule','redis','defaults','socket.io-emitter','WhatsappInteraction','findAll','subtract','hours','then','length','map','[WHATSAPP]\x20Interactions\x20to\x20close:','join','update','timeout','format','YYYY-MM-DD\x20HH:mm:ss','info','[WHATSAPP]\x20Sending\x20updates\x20for\x20interactions:','emit','error','[WHATSAPP]\x20Error\x20closing\x20interactions','inspect','start'];(function(_0x46460e,_0x4a6c5e){var _0x4c36a3=function(_0x676dfe){while(--_0x676dfe){_0x46460e['push'](_0x46460e['shift']());}};_0x4c36a3(++_0x4a6c5e);}(_0x5a27,0x8c));var _0x75a2=function(_0xbaf726,_0x53b95d){_0xbaf726=_0xbaf726-0x0;var _0x46cd8f=_0x5a27[_0xbaf726];return _0x46cd8f;};'use strict';var _=require(_0x75a2('0x0'));var moment=require('moment');var Redis=require(_0x75a2('0x1'));var util=require('util');var config=require(_0x75a2('0x2'));var db=require('../../mysqldb')['db'];var logger=require(_0x75a2('0x3'))(_0x75a2('0x4'));config[_0x75a2('0x5')]=_[_0x75a2('0x6')](config[_0x75a2('0x5')],{'host':'localhost','port':0x18eb});var io=require(_0x75a2('0x7'))(new Redis(config['redis']));function closeInteractions(){var _0x42015d=[];return db[_0x75a2('0x8')][_0x75a2('0x9')]({'raw':!![],'attributes':['id','lastMsgAt'],'where':{'closed':![],'lastMsgDirection':'in','lastMsgAt':{'$lt':moment()[_0x75a2('0xa')](0x18,_0x75a2('0xb'))}}})[_0x75a2('0xc')](function(_0x3ad955){if(_0x3ad955&&_0x3ad955[_0x75a2('0xd')]){_0x42015d=_[_0x75a2('0xe')](_0x3ad955||[],'id');logger['info'](_0x75a2('0xf'),_0x42015d[_0x75a2('0x10')]());return db[_0x75a2('0x8')][_0x75a2('0x11')]({'closeReason':'system','disposition':_0x75a2('0x12'),'closed':!![],'closedAt':moment()[_0x75a2('0x13')](_0x75a2('0x14'))},{'where':{'id':_0x42015d}});}})[_0x75a2('0xc')](function(){if(_0x42015d&&_0x42015d['length']){logger[_0x75a2('0x15')](_0x75a2('0x16'),_0x42015d[_0x75a2('0x10')]());for(var _0x46e6b2=0x0;_0x46e6b2<_0x42015d[_0x75a2('0xd')];_0x46e6b2++){io[_0x75a2('0x17')]('whatsappInteraction:update',{'id':_0x42015d[_0x46e6b2],'closed':!![]});}}})['catch'](function(_0x239c53){logger[_0x75a2('0x18')](_0x75a2('0x19'),_0x239c53?util[_0x75a2('0x1a')](_0x239c53,{'showHidden':![],'depth':null}):'');});}exports[_0x75a2('0x1b')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0x868c=['schedule','defaults','redis','localhost','WhatsappInteraction','findAll','lastMsgAt','subtract','hours','length','info','[WHATSAPP]\x20Interactions\x20to\x20close:','join','update','system','timeout','format','then','[WHATSAPP]\x20Sending\x20updates\x20for\x20interactions:','catch','[WHATSAPP]\x20Error\x20closing\x20interactions','inspect','lodash','moment','util','../../config/environment','../logger'];(function(_0x217aec,_0x374e80){var _0x52ced5=function(_0x1be65b){while(--_0x1be65b){_0x217aec['push'](_0x217aec['shift']());}};_0x52ced5(++_0x374e80);}(_0x868c,0x1e1));var _0xc868=function(_0x2b81be,_0x544bdf){_0x2b81be=_0x2b81be-0x0;var _0x8ed4a7=_0x868c[_0x2b81be];return _0x8ed4a7;};'use strict';var _=require(_0xc868('0x0'));var moment=require(_0xc868('0x1'));var Redis=require('ioredis');var util=require(_0xc868('0x2'));var config=require(_0xc868('0x3'));var db=require('../../mysqldb')['db'];var logger=require(_0xc868('0x4'))(_0xc868('0x5'));config['redis']=_[_0xc868('0x6')](config[_0xc868('0x7')],{'host':_0xc868('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xc868('0x7')]));function closeInteractions(){var _0xbf4b13=[];return db[_0xc868('0x9')][_0xc868('0xa')]({'raw':!![],'attributes':['id',_0xc868('0xb')],'where':{'closed':![],'lastMsgDirection':'in','lastMsgAt':{'$lt':moment()[_0xc868('0xc')](0x18,_0xc868('0xd'))}}})['then'](function(_0x1831ff){if(_0x1831ff&&_0x1831ff[_0xc868('0xe')]){_0xbf4b13=_['map'](_0x1831ff||[],'id');logger[_0xc868('0xf')](_0xc868('0x10'),_0xbf4b13[_0xc868('0x11')]());return db[_0xc868('0x9')][_0xc868('0x12')]({'closeReason':_0xc868('0x13'),'disposition':_0xc868('0x14'),'closed':!![],'closedAt':moment()[_0xc868('0x15')]('YYYY-MM-DD\x20HH:mm:ss')},{'where':{'id':_0xbf4b13}});}})[_0xc868('0x16')](function(){if(_0xbf4b13&&_0xbf4b13[_0xc868('0xe')]){logger['info'](_0xc868('0x17'),_0xbf4b13['join']());for(var _0x2fa613=0x0;_0x2fa613<_0xbf4b13[_0xc868('0xe')];_0x2fa613++){io['emit']('whatsappInteraction:update',{'id':_0xbf4b13[_0x2fa613],'closed':!![]});}}})[_0xc868('0x18')](function(_0x76aaf9){logger['error'](_0xc868('0x19'),_0x76aaf9?util[_0xc868('0x1a')](_0x76aaf9,{'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 _0xe82c=['finished\x20populating','contacts1','CmHopper','destroy','hopper2','catch','util','../mysqldb','push','Innocenzo','Biondo','innocenzo.biondo','@xcally.com','now','CmContact','then','bulkCreate','log'];(function(_0x27beea,_0x3bc9f4){var _0x122645=function(_0x2c848){while(--_0x2c848){_0x27beea['push'](_0x27beea['shift']());}};_0x122645(++_0x3bc9f4);}(_0xe82c,0xf0));var _0xce82=function(_0x8483cf,_0x94b42d){_0x8483cf=_0x8483cf-0x0;var _0x45cb45=_0xe82c[_0x8483cf];return _0x45cb45;};'use strict';var util=require(_0xce82('0x0'));var db=require(_0xce82('0x1'))['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0xce82('0x2')]({'id':i,'firstName':_0xce82('0x3')+i,'lastName':_0xce82('0x4')+i,'phone':0xf879fb460+i,'email':_0xce82('0x5')+i+_0xce82('0x6')});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper[_0xce82('0x2')]({'id':i,'active':![],'scheduledat':Date[_0xce82('0x7')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0xce82('0x7')](),'updatedAt':Date[_0xce82('0x7')]()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2['push']({'id':i,'firstName':_0xce82('0x3')+i,'lastName':'Biondo'+i,'phone':0xf879fb460+i,'email':'innocenzo.biondo'+i+_0xce82('0x6')});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2[_0xce82('0x2')]({'id':i,'active':![],'scheduledat':Date['now'](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0xce82('0x7')](),'updatedAt':Date[_0xce82('0x7')]()});}db[_0xce82('0x8')]['destroy']({'where':{}})[_0xce82('0x9')](function(){return db['CmContact'][_0xce82('0xa')](contacts);})[_0xce82('0x9')](function(){console[_0xce82('0xb')](_0xce82('0xc'),_0xce82('0xd'));return db[_0xce82('0xe')][_0xce82('0xf')]({'where':{}});})[_0xce82('0x9')](function(){return db[_0xce82('0xe')]['bulkCreate'](hopper);})[_0xce82('0x9')](function(){console[_0xce82('0xb')](_0xce82('0xc'),'hopper1');return db['CmContact'][_0xce82('0xa')](contacts2);})[_0xce82('0x9')](function(){console['log'](_0xce82('0xc'),'contacts2');return db[_0xce82('0xe')][_0xce82('0xa')](hopper2);})[_0xce82('0x9')](function(){console[_0xce82('0xb')](_0xce82('0xc'),_0xce82('0x10'));})[_0xce82('0x11')](function(_0x285e0e){console['log'](_0x285e0e);});
\ No newline at end of file
+var _0x8d27=['push','innocenzo.biondo','@xcally.com','now','Innocenzo','CmContact','destroy','then','bulkCreate','log','finished\x20populating','contacts1','CmHopper','hopper1','contacts2','hopper2','catch','util','../mysqldb'];(function(_0xb9ff80,_0xc71502){var _0x130361=function(_0xac32a3){while(--_0xac32a3){_0xb9ff80['push'](_0xb9ff80['shift']());}};_0x130361(++_0xc71502);}(_0x8d27,0x108));var _0x78d2=function(_0x147d2e,_0xd58fb8){_0x147d2e=_0x147d2e-0x0;var _0x55a923=_0x8d27[_0x147d2e];return _0x55a923;};'use strict';var util=require(_0x78d2('0x0'));var db=require(_0x78d2('0x1'))['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0x78d2('0x2')]({'id':i,'firstName':'Innocenzo'+i,'lastName':'Biondo'+i,'phone':0xf879fb460+i,'email':_0x78d2('0x3')+i+_0x78d2('0x4')});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper[_0x78d2('0x2')]({'id':i,'active':![],'scheduledat':Date[_0x78d2('0x5')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0x78d2('0x5')](),'updatedAt':Date[_0x78d2('0x5')]()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2[_0x78d2('0x2')]({'id':i,'firstName':_0x78d2('0x6')+i,'lastName':'Biondo'+i,'phone':0xf879fb460+i,'email':'innocenzo.biondo'+i+_0x78d2('0x4')});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2[_0x78d2('0x2')]({'id':i,'active':![],'scheduledat':Date[_0x78d2('0x5')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0x78d2('0x5')](),'updatedAt':Date[_0x78d2('0x5')]()});}db[_0x78d2('0x7')][_0x78d2('0x8')]({'where':{}})[_0x78d2('0x9')](function(){return db[_0x78d2('0x7')][_0x78d2('0xa')](contacts);})[_0x78d2('0x9')](function(){console[_0x78d2('0xb')](_0x78d2('0xc'),_0x78d2('0xd'));return db[_0x78d2('0xe')][_0x78d2('0x8')]({'where':{}});})[_0x78d2('0x9')](function(){return db[_0x78d2('0xe')][_0x78d2('0xa')](hopper);})[_0x78d2('0x9')](function(){console[_0x78d2('0xb')](_0x78d2('0xc'),_0x78d2('0xf'));return db[_0x78d2('0x7')]['bulkCreate'](contacts2);})[_0x78d2('0x9')](function(){console[_0x78d2('0xb')](_0x78d2('0xc'),_0x78d2('0x10'));return db[_0x78d2('0xe')]['bulkCreate'](hopper2);})[_0x78d2('0x9')](function(){console[_0x78d2('0xb')](_0x78d2('0xc'),_0x78d2('0x11'));})[_0x78d2('0x12')](function(_0x3f968b){console[_0x78d2('0xb')](_0x3f968b);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9fa5=['udp','wss','all','yes','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','actpass','\x22%s\x22\x20<%s>','bulkCreate','then','log','add\x20user','catch','util','push','agent','%s%s','format','%s%s@xcally.com','password','friend'];(function(_0x41eecc,_0x53039c){var _0x10ca7e=function(_0x59b97c){while(--_0x59b97c){_0x41eecc['push'](_0x41eecc['shift']());}};_0x10ca7e(++_0x53039c);}(_0x9fa5,0x148));var _0x59fa=function(_0xf50820,_0x56f041){_0xf50820=_0xf50820-0x0;var _0x2a9b10=_0x9fa5[_0xf50820];return _0x2a9b10;};'use strict';var util=require(_0x59fa('0x0'));var db=require('../mysqldb')['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users[_0x59fa('0x1')]({'name':util['format']('%s%s',_0x59fa('0x2'),i),'fullname':util['format'](_0x59fa('0x3'),_0x59fa('0x2'),i),'email':util[_0x59fa('0x4')](_0x59fa('0x5'),'agent',i),'role':'agent','password':_0x59fa('0x6'),'internal':0xfa0+i,'type':_0x59fa('0x7'),'transport':[_0x59fa('0x8'),'ws',_0x59fa('0x9')],'disallow':[_0x59fa('0xa')],'allow':['ulaw'],'defaultuser':util[_0x59fa('0x4')](_0x59fa('0x3'),'agent',i),'encryption':_0x59fa('0xb'),'avpf':'yes','force_avp':'yes','icesupport':'yes','dtlsenable':_0x59fa('0xb'),'dtlsverify':'no','dtlscertfile':_0x59fa('0xc'),'dtlsprivatekey':_0x59fa('0xd'),'dtlssetup':_0x59fa('0xe'),'callerid':util[_0x59fa('0x4')](_0x59fa('0xf'),util[_0x59fa('0x4')]('%s%s','agent',i),0xfa0+i)});}db['User'][_0x59fa('0x10')](users)[_0x59fa('0x11')](function(){console[_0x59fa('0x12')](_0x59fa('0x13'));})[_0x59fa('0x14')](function(_0x31b906){console[_0x59fa('0x12')](_0x31b906);});
\ No newline at end of file
+var _0xf86d=['/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','actpass','\x22%s\x22\x20<%s>','bulkCreate','add\x20user','catch','push','format','agent','friend','udp','wss','all','ulaw','%s%s','yes'];(function(_0xbcd8d9,_0x16451e){var _0x4e7d8f=function(_0x1f198a){while(--_0x1f198a){_0xbcd8d9['push'](_0xbcd8d9['shift']());}};_0x4e7d8f(++_0x16451e);}(_0xf86d,0xa0));var _0xdf86=function(_0x531d15,_0x599af5){_0x531d15=_0x531d15-0x0;var _0x271a18=_0xf86d[_0x531d15];return _0x271a18;};'use strict';var util=require('util');var db=require('../mysqldb')['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users[_0xdf86('0x0')]({'name':util[_0xdf86('0x1')]('%s%s',_0xdf86('0x2'),i),'fullname':util[_0xdf86('0x1')]('%s%s',_0xdf86('0x2'),i),'email':util['format']('%s%s@xcally.com',_0xdf86('0x2'),i),'role':_0xdf86('0x2'),'password':'password','internal':0xfa0+i,'type':_0xdf86('0x3'),'transport':[_0xdf86('0x4'),'ws',_0xdf86('0x5')],'disallow':[_0xdf86('0x6')],'allow':[_0xdf86('0x7')],'defaultuser':util[_0xdf86('0x1')](_0xdf86('0x8'),_0xdf86('0x2'),i),'encryption':_0xdf86('0x9'),'avpf':_0xdf86('0x9'),'force_avp':_0xdf86('0x9'),'icesupport':'yes','dtlsenable':_0xdf86('0x9'),'dtlsverify':'no','dtlscertfile':_0xdf86('0xa'),'dtlsprivatekey':_0xdf86('0xb'),'dtlssetup':_0xdf86('0xc'),'callerid':util['format'](_0xdf86('0xd'),util[_0xdf86('0x1')](_0xdf86('0x8'),_0xdf86('0x2'),i),0xfa0+i)});}db['User'][_0xdf86('0xe')](users)['then'](function(){console['log'](_0xdf86('0xf'));})[_0xdf86('0x10')](function(_0x300406){console['log'](_0x300406);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd7ac=['FaxInteraction','SmsInteraction','SmsInteractions','OpenchannelInteraction','OpenchannelInteractions','voice:inbound','voice:outbound','hasOwnProperty','include','push','ChatQueue','FaxQueue','MailQueue','OpenchannelQueue','WhatsappQueue','Trunk','Campaign','VoiceQueue','ChatQueues','SmsQueue','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues','all','length','voice','chat','fax','sms','mail','openchannel','whatsapp','trunk:%s','campaign:%s:%s','removeChatInteractions','emit','user_has_chat_interactions:remove','leave','removeMailInteractions','user_has_mail_interactions:remove','removeFaxInteractions','user_has_fax_interactions:remove','user_has_sms_interactions:remove','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','WhatsappInteractions','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','log','join','default','setMaxListeners','address','connection','remoteAddress','request','remotePort','connectedAt','SocketIO\x20','disconnect','CONNECTED','lodash','../mysqldb','./environment','Agents','User','agent','name','telephone','type','UserProfileSection','findOne','then','autoAssociation','VoiceQueues','FaxQueues','SmsQueues','OpenchannelQueues','WhatsappQueues','Telephones','Trunks','findAll','IvrCampaigns','UserProfileResource','map','where','role','ivr','format','%s:queue:%s','user:%s','handshake','find','userProfileId','query','ChatInteraction','MailInteraction','MailInteractions'];(function(_0x339129,_0x86dcc6){var _0x1570df=function(_0x3b537e){while(--_0x3b537e){_0x339129['push'](_0x339129['shift']());}};_0x1570df(++_0x86dcc6);}(_0xd7ac,0x167));var _0xcd7a=function(_0x138adb,_0x193fee){_0x138adb=_0x138adb-0x0;var _0x1b27f2=_0xd7ac[_0x138adb];return _0x1b27f2;};'use strict';var _=require(_0xcd7a('0x0'));var util=require('util');var BPromise=require('bluebird');var db=require(_0xcd7a('0x1'))['db'];var config=require(_0xcd7a('0x2'));var queryQueues={'attributes':['id','name'],'include':[{'as':_0xcd7a('0x3'),'model':db[_0xcd7a('0x4')],'attributes':['id','name','role'],'raw':!![],'where':{'role':_0xcd7a('0x5')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0xcd7a('0x6')],'where':{'role':_0xcd7a('0x7')}};var queryTrunks={'raw':!![],'attributes':['id','name']};var queryAgents={'raw':!![],'attributes':['id',_0xcd7a('0x6')],'where':{'role':_0xcd7a('0x5')}};var queryCampaigns={'raw':!![],'attributes':['id',_0xcd7a('0x6'),_0xcd7a('0x8')],'where':{'type':'ivr'}};function getAssociatedResources(_0x104bb6,_0x4326ae,_0x591dc7){return db[_0xcd7a('0x9')][_0xcd7a('0xa')]({'where':{'name':_0x104bb6,'userProfileId':_0x4326ae},'raw':!![]})[_0xcd7a('0xb')](function(_0x2c6a7b){if(_0x2c6a7b){if(_0x2c6a7b[_0xcd7a('0xc')]){switch(_0x104bb6){case _0xcd7a('0xd'):case'ChatQueues':case _0xcd7a('0xe'):case _0xcd7a('0xf'):case'MailQueues':case _0xcd7a('0x10'):case _0xcd7a('0x11'):return db[_0x591dc7]['findAll'](queryQueues);case _0xcd7a('0x12'):return db[_0x591dc7]['findAll'](queryTelephones);case _0xcd7a('0x13'):return db[_0x591dc7][_0xcd7a('0x14')](queryTrunks);case _0xcd7a('0x15'):return db[_0x591dc7][_0xcd7a('0x14')](queryCampaigns);}}else{return db[_0xcd7a('0x16')][_0xcd7a('0x14')]({'attributes':['resourceId'],'where':{'sectionId':_0x2c6a7b['id']},'raw':!![]})[_0xcd7a('0xb')](function(_0x1b366f){if(_0x1b366f){var _0x194059={'where':{'id':_[_0xcd7a('0x17')](_0x1b366f,'resourceId')},'raw':!![]};switch(_0x591dc7){case _0xcd7a('0x4'):_0x194059[_0xcd7a('0x18')][_0xcd7a('0x19')]='telephone';break;case'Campaign':_0x194059[_0xcd7a('0x18')][_0xcd7a('0x8')]=_0xcd7a('0x1a');break;}return db[_0x591dc7][_0xcd7a('0x14')](_0x194059);}else{return[];}});}}else{return[];}})[_0xcd7a('0xb')](function(_0xcbf1d5){return _0xcbf1d5;});}function joinOrLeaveQueues(_0x2023dd,_0x26b188,_0x3dd367,_0x4a9265){_0x2023dd[_0x26b188](util[_0xcd7a('0x1b')](_0xcd7a('0x1c'),_0x3dd367,_0x4a9265[_0xcd7a('0x6')]));if(_0x4a9265[_0xcd7a('0x3')]){for(var _0xfd7de6=0x0;_0xfd7de6<_0x4a9265[_0xcd7a('0x3')]['length'];_0xfd7de6+=0x1){_0x2023dd[_0x26b188](util['format'](_0xcd7a('0x1d'),_0x4a9265[_0xcd7a('0x3')][_0xfd7de6][_0xcd7a('0x6')]));}}}function joinOrLeave(_0x316959,_0x2c294f,_0x570e0e){var _0x5945c8;if(_0x316959[_0xcd7a('0x1e')]['query']['id']){db['User'][_0xcd7a('0x1f')]({'attributes':['id',_0xcd7a('0x6'),'role',_0xcd7a('0x20')],'where':{'id':_0x316959[_0xcd7a('0x1e')][_0xcd7a('0x21')]['id']},'include':[{'model':db[_0xcd7a('0x22')],'as':'ChatInteractions','attributes':['id'],'raw':!![]},{'model':db[_0xcd7a('0x23')],'as':_0xcd7a('0x24'),'attributes':['id'],'raw':!![]},{'model':db[_0xcd7a('0x25')],'as':'FaxInteractions','attributes':['id'],'raw':!![]},{'model':db[_0xcd7a('0x26')],'as':_0xcd7a('0x27'),'attributes':['id'],'raw':!![]},{'model':db[_0xcd7a('0x28')],'as':_0xcd7a('0x29'),'attributes':['id'],'raw':!![]},{'model':db['WhatsappInteraction'],'as':'WhatsappInteractions','attributes':['id'],'raw':!![]}]})[_0xcd7a('0xb')](function(_0x643d53){if(_0x643d53){_0x5945c8=_0x643d53;_0x316959[_0x2c294f](util['format'](_0xcd7a('0x1d'),_0x643d53[_0xcd7a('0x6')]));var _0x5bca29=[];switch(_0x643d53[_0xcd7a('0x19')]){case'admin':_0x316959[_0x2c294f](_0xcd7a('0x2a'));_0x316959[_0x2c294f](_0xcd7a('0x2b'));if(queryQueues[_0xcd7a('0x2c')](_0xcd7a('0x2d'))){delete queryQueues[_0xcd7a('0x2d')];}_0x5bca29[_0xcd7a('0x2e')](db['VoiceQueue']['findAll'](queryQueues));_0x5bca29[_0xcd7a('0x2e')](db[_0xcd7a('0x2f')]['findAll'](queryQueues));_0x5bca29[_0xcd7a('0x2e')](db[_0xcd7a('0x30')][_0xcd7a('0x14')](queryQueues));_0x5bca29[_0xcd7a('0x2e')](db['SmsQueue'][_0xcd7a('0x14')](queryQueues));_0x5bca29[_0xcd7a('0x2e')](db[_0xcd7a('0x31')][_0xcd7a('0x14')](queryQueues));_0x5bca29['push'](db[_0xcd7a('0x32')][_0xcd7a('0x14')](queryQueues));_0x5bca29['push'](db[_0xcd7a('0x33')][_0xcd7a('0x14')](queryQueues));_0x5bca29[_0xcd7a('0x2e')](db[_0xcd7a('0x4')][_0xcd7a('0x14')](queryTelephones));_0x5bca29[_0xcd7a('0x2e')](db[_0xcd7a('0x34')][_0xcd7a('0x14')](queryTrunks));_0x5bca29['push'](db[_0xcd7a('0x35')]['findAll'](queryCampaigns));_0x5bca29[_0xcd7a('0x2e')](db[_0xcd7a('0x4')][_0xcd7a('0x14')](queryAgents));break;case'user':_0x316959[_0x2c294f](_0xcd7a('0x2a'));_0x316959[_0x2c294f]('voice:outbound');_0x5bca29[_0xcd7a('0x2e')](getAssociatedResources('VoiceQueues',_0x643d53[_0xcd7a('0x20')],_0xcd7a('0x36')));_0x5bca29[_0xcd7a('0x2e')](getAssociatedResources(_0xcd7a('0x37'),_0x643d53[_0xcd7a('0x20')],'ChatQueue'));_0x5bca29[_0xcd7a('0x2e')](getAssociatedResources(_0xcd7a('0xe'),_0x643d53[_0xcd7a('0x20')],_0xcd7a('0x30')));_0x5bca29[_0xcd7a('0x2e')](getAssociatedResources(_0xcd7a('0xf'),_0x643d53[_0xcd7a('0x20')],_0xcd7a('0x38')));_0x5bca29[_0xcd7a('0x2e')](getAssociatedResources('MailQueues',_0x643d53[_0xcd7a('0x20')],_0xcd7a('0x31')));_0x5bca29[_0xcd7a('0x2e')](getAssociatedResources('OpenchannelQueues',_0x643d53[_0xcd7a('0x20')],_0xcd7a('0x32')));_0x5bca29[_0xcd7a('0x2e')](getAssociatedResources('WhatsappQueues',_0x643d53[_0xcd7a('0x20')],_0xcd7a('0x33')));_0x5bca29[_0xcd7a('0x2e')](getAssociatedResources(_0xcd7a('0x12'),_0x643d53[_0xcd7a('0x20')],_0xcd7a('0x4')));_0x5bca29[_0xcd7a('0x2e')](getAssociatedResources(_0xcd7a('0x13'),_0x643d53[_0xcd7a('0x20')],_0xcd7a('0x34')));_0x5bca29[_0xcd7a('0x2e')](getAssociatedResources('IvrCampaigns',_0x643d53['userProfileId'],_0xcd7a('0x35')));_0x5bca29[_0xcd7a('0x2e')](db[_0xcd7a('0x4')][_0xcd7a('0x14')](queryAgents));break;case'agent':_0x316959[_0x2c294f](_0xcd7a('0x2a'));_0x316959[_0x2c294f](_0xcd7a('0x2b'));_0x5bca29['push'](_0x643d53['getVoiceQueues']({'attributes':['id',_0xcd7a('0x6')]}));_0x5bca29['push'](_0x643d53[_0xcd7a('0x39')]({'attributes':['id',_0xcd7a('0x6')]}));_0x5bca29['push'](_0x643d53[_0xcd7a('0x3a')]({'attributes':['id',_0xcd7a('0x6')]}));_0x5bca29[_0xcd7a('0x2e')](_0x643d53[_0xcd7a('0x3b')]({'attributes':['id','name']}));_0x5bca29['push'](_0x643d53[_0xcd7a('0x3c')]({'attributes':['id',_0xcd7a('0x6')]}));_0x5bca29[_0xcd7a('0x2e')](_0x643d53['getOpenchannelQueues']({'attributes':['id',_0xcd7a('0x6')]}));_0x5bca29['push'](_0x643d53['getWhatsappQueues']({'attributes':['id',_0xcd7a('0x6')]}));break;}return BPromise[_0xcd7a('0x3d')](_0x5bca29);}})['then'](function(_0xe4a3ff){if(_0xe4a3ff&&_0xe4a3ff[_0xcd7a('0x3e')]){for(var _0x242ee8=0x0;_0x242ee8<_0xe4a3ff[_0xcd7a('0x3e')];_0x242ee8+=0x1){for(var _0x2e023a=0x0;_0x2e023a<_0xe4a3ff[_0x242ee8][_0xcd7a('0x3e')];_0x2e023a+=0x1){switch(_0x242ee8){case 0x0:joinOrLeaveQueues(_0x316959,_0x2c294f,_0xcd7a('0x3f'),_0xe4a3ff[_0x242ee8][_0x2e023a]);break;case 0x1:joinOrLeaveQueues(_0x316959,_0x2c294f,_0xcd7a('0x40'),_0xe4a3ff[_0x242ee8][_0x2e023a]);break;case 0x2:joinOrLeaveQueues(_0x316959,_0x2c294f,_0xcd7a('0x41'),_0xe4a3ff[_0x242ee8][_0x2e023a]);break;case 0x3:joinOrLeaveQueues(_0x316959,_0x2c294f,_0xcd7a('0x42'),_0xe4a3ff[_0x242ee8][_0x2e023a]);break;case 0x4:joinOrLeaveQueues(_0x316959,_0x2c294f,_0xcd7a('0x43'),_0xe4a3ff[_0x242ee8][_0x2e023a]);break;case 0x5:joinOrLeaveQueues(_0x316959,_0x2c294f,_0xcd7a('0x44'),_0xe4a3ff[_0x242ee8][_0x2e023a]);break;case 0x6:joinOrLeaveQueues(_0x316959,_0x2c294f,_0xcd7a('0x45'),_0xe4a3ff[_0x242ee8][_0x2e023a]);break;case 0x7:if(_0x5945c8[_0xcd7a('0x19')]!=='agent')_0x316959[_0x2c294f](util[_0xcd7a('0x1b')]('telephone:%s',_0xe4a3ff[_0x242ee8][_0x2e023a][_0xcd7a('0x6')]));break;case 0x8:if(_0x5945c8['role']!==_0xcd7a('0x5'))_0x316959[_0x2c294f](util[_0xcd7a('0x1b')](_0xcd7a('0x46'),_0xe4a3ff[_0x242ee8][_0x2e023a][_0xcd7a('0x6')]));break;case 0x9:if(_0x5945c8['role']!=='agent')_0x316959[_0x2c294f](util[_0xcd7a('0x1b')](_0xcd7a('0x47'),_0xe4a3ff[_0x242ee8][_0x2e023a][_0xcd7a('0x8')],_0xe4a3ff[_0x242ee8][_0x2e023a][_0xcd7a('0x6')]));break;case 0xa:_0x316959[_0x2c294f](util[_0xcd7a('0x1b')]('user:%s',_0xe4a3ff[_0x242ee8][_0x2e023a][_0xcd7a('0x6')]));break;}}}}})[_0xcd7a('0xb')](function(){if(_0x2c294f==='leave'){var _0x1f8264=_[_0xcd7a('0x17')](_0x5945c8['ChatInteractions'],'id');return _0x5945c8[_0xcd7a('0x48')](_0x1f8264)[_0xcd7a('0xb')](function(){for(var _0x30b3e5=0x0;_0x30b3e5<_0x1f8264[_0xcd7a('0x3e')];_0x30b3e5+=0x1){_0x570e0e[_0xcd7a('0x49')](_0xcd7a('0x4a'),{'ChatInteractionId':Number(_0x1f8264[_0x30b3e5]),'UserId':Number(_0x5945c8['id'])});}});}})[_0xcd7a('0xb')](function(){if(_0x2c294f===_0xcd7a('0x4b')){var _0x4de258=_[_0xcd7a('0x17')](_0x5945c8[_0xcd7a('0x24')],'id');return _0x5945c8[_0xcd7a('0x4c')](_0x4de258)[_0xcd7a('0xb')](function(){for(var _0x581222=0x0;_0x581222<_0x4de258['length'];_0x581222+=0x1){_0x570e0e['emit'](_0xcd7a('0x4d'),{'MailInteractionId':Number(_0x4de258[_0x581222]),'UserId':Number(_0x5945c8['id'])});}});}})['then'](function(){if(_0x2c294f==='leave'){var _0x9e68ab=_[_0xcd7a('0x17')](_0x5945c8['FaxInteractions'],'id');return _0x5945c8[_0xcd7a('0x4e')](_0x9e68ab)[_0xcd7a('0xb')](function(){for(var _0x318990=0x0;_0x318990<_0x9e68ab[_0xcd7a('0x3e')];_0x318990+=0x1){_0x570e0e['emit'](_0xcd7a('0x4f'),{'FaxInteractionId':Number(_0x9e68ab[_0x318990]),'UserId':Number(_0x5945c8['id'])});}});}})[_0xcd7a('0xb')](function(){if(_0x2c294f===_0xcd7a('0x4b')){var _0x42fee5=_[_0xcd7a('0x17')](_0x5945c8[_0xcd7a('0x27')],'id');return _0x5945c8['removeSmsInteractions'](_0x42fee5)[_0xcd7a('0xb')](function(){for(var _0x3cf90f=0x0;_0x3cf90f<_0x42fee5[_0xcd7a('0x3e')];_0x3cf90f+=0x1){_0x570e0e['emit'](_0xcd7a('0x50'),{'SmsInteractionId':Number(_0x42fee5[_0x3cf90f]),'UserId':Number(_0x5945c8['id'])});}});}})[_0xcd7a('0xb')](function(){if(_0x2c294f===_0xcd7a('0x4b')){var _0x5c46cd=_[_0xcd7a('0x17')](_0x5945c8[_0xcd7a('0x29')],'id');return _0x5945c8[_0xcd7a('0x51')](_0x5c46cd)[_0xcd7a('0xb')](function(){for(var _0x2f3d5e=0x0;_0x2f3d5e<_0x5c46cd['length'];_0x2f3d5e+=0x1){_0x570e0e['emit'](_0xcd7a('0x52'),{'OpenchannelInteractionId':Number(_0x5c46cd[_0x2f3d5e]),'UserId':Number(_0x5945c8['id'])});}});}})['then'](function(){if(_0x2c294f===_0xcd7a('0x4b')){var _0x567337=_[_0xcd7a('0x17')](_0x5945c8[_0xcd7a('0x53')],'id');return _0x5945c8[_0xcd7a('0x54')](_0x567337)['then'](function(){for(var _0x568173=0x0;_0x568173<_0x567337['length'];_0x568173+=0x1){_0x570e0e[_0xcd7a('0x49')](_0xcd7a('0x55'),{'WhatsappInteractionId':Number(_0x567337[_0x568173]),'UserId':Number(_0x5945c8['id'])});}});}})['catch'](function(_0x406cd4){_0x316959[_0xcd7a('0x56')](_0x406cd4);});}}function onDisconnect(_0x14e18f,_0x14c79f){joinOrLeave(_0x14e18f,_0xcd7a('0x4b'),_0x14c79f);}function onConnect(_0x1ab9f7){joinOrLeave(_0x1ab9f7,_0xcd7a('0x57'));}exports[_0xcd7a('0x58')]=function(_0x2ba50c){_0x2ba50c['on']('connection',function(_0x5a7ee0){_0x5a7ee0[_0xcd7a('0x59')](0x0);_0x5a7ee0[_0xcd7a('0x5a')]=_0x5a7ee0['request'][_0xcd7a('0x5b')][_0xcd7a('0x5c')]+':'+_0x5a7ee0[_0xcd7a('0x5d')]['connection'][_0xcd7a('0x5e')];_0x5a7ee0[_0xcd7a('0x5f')]=new Date();_0x5a7ee0[_0xcd7a('0x56')]=function(_0xfee304){console[_0xcd7a('0x56')](_0xcd7a('0x60')+_0x5a7ee0['nsp']['name']+'['+_0x5a7ee0[_0xcd7a('0x5a')]+']',_0xfee304);};_0x5a7ee0['on'](_0xcd7a('0x61'),function(){onDisconnect(_0x5a7ee0,_0x2ba50c);_0x5a7ee0['log']('DISCONNECTED');});onConnect(_0x5a7ee0);_0x5a7ee0[_0xcd7a('0x56')](_0xcd7a('0x62'));});};
\ No newline at end of file
+var _0x6659=['then','autoAssociation','VoiceQueues','FaxQueues','MailQueues','OpenchannelQueues','WhatsappQueues','findAll','Trunks','IvrCampaigns','UserProfileResource','Campaign','format','length','handshake','find','userProfileId','ChatInteractions','MailInteraction','MailInteractions','FaxInteraction','SmsInteraction','SmsInteractions','OpenchannelInteractions','WhatsappInteraction','WhatsappInteractions','user:%s','voice:inbound','voice:outbound','hasOwnProperty','include','push','VoiceQueue','ChatQueue','FaxQueue','SmsQueue','OpenchannelQueue','WhatsappQueue','Trunk','user','ChatQueues','MailQueue','getChatQueues','getSmsQueues','getWhatsappQueues','all','fax','openchannel','whatsapp','telephone:%s','trunk:%s','map','removeChatInteractions','emit','user_has_chat_interactions:remove','removeMailInteractions','user_has_mail_interactions:remove','FaxInteractions','removeFaxInteractions','user_has_fax_interactions:remove','leave','removeSmsInteractions','user_has_sms_interactions:remove','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','join','default','connection','address','request','remoteAddress','remotePort','connectedAt','log','SocketIO\x20','nsp','DISCONNECTED','CONNECTED','lodash','util','bluebird','../mysqldb','./environment','name','Agents','User','role','agent','telephone','type','ivr','UserProfileSection','findOne'];(function(_0x15f429,_0x42df31){var _0x367132=function(_0x9381e2){while(--_0x9381e2){_0x15f429['push'](_0x15f429['shift']());}};_0x367132(++_0x42df31);}(_0x6659,0x169));var _0x9665=function(_0x92549d,_0x3f6af8){_0x92549d=_0x92549d-0x0;var _0x9d93=_0x6659[_0x92549d];return _0x9d93;};'use strict';var _=require(_0x9665('0x0'));var util=require(_0x9665('0x1'));var BPromise=require(_0x9665('0x2'));var db=require(_0x9665('0x3'))['db'];var config=require(_0x9665('0x4'));var queryQueues={'attributes':['id',_0x9665('0x5')],'include':[{'as':_0x9665('0x6'),'model':db[_0x9665('0x7')],'attributes':['id','name',_0x9665('0x8')],'raw':!![],'where':{'role':_0x9665('0x9')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x9665('0x5')],'where':{'role':_0x9665('0xa')}};var queryTrunks={'raw':!![],'attributes':['id',_0x9665('0x5')]};var queryAgents={'raw':!![],'attributes':['id',_0x9665('0x5')],'where':{'role':'agent'}};var queryCampaigns={'raw':!![],'attributes':['id',_0x9665('0x5'),_0x9665('0xb')],'where':{'type':_0x9665('0xc')}};function getAssociatedResources(_0x432ad9,_0x2a3374,_0x439736){return db[_0x9665('0xd')][_0x9665('0xe')]({'where':{'name':_0x432ad9,'userProfileId':_0x2a3374},'raw':!![]})[_0x9665('0xf')](function(_0x1fc5b8){if(_0x1fc5b8){if(_0x1fc5b8[_0x9665('0x10')]){switch(_0x432ad9){case _0x9665('0x11'):case'ChatQueues':case _0x9665('0x12'):case'SmsQueues':case _0x9665('0x13'):case _0x9665('0x14'):case _0x9665('0x15'):return db[_0x439736][_0x9665('0x16')](queryQueues);case'Telephones':return db[_0x439736][_0x9665('0x16')](queryTelephones);case _0x9665('0x17'):return db[_0x439736][_0x9665('0x16')](queryTrunks);case _0x9665('0x18'):return db[_0x439736][_0x9665('0x16')](queryCampaigns);}}else{return db[_0x9665('0x19')][_0x9665('0x16')]({'attributes':['resourceId'],'where':{'sectionId':_0x1fc5b8['id']},'raw':!![]})[_0x9665('0xf')](function(_0x511cfb){if(_0x511cfb){var _0x3bdcd9={'where':{'id':_['map'](_0x511cfb,'resourceId')},'raw':!![]};switch(_0x439736){case _0x9665('0x7'):_0x3bdcd9['where']['role']=_0x9665('0xa');break;case _0x9665('0x1a'):_0x3bdcd9['where']['type']=_0x9665('0xc');break;}return db[_0x439736][_0x9665('0x16')](_0x3bdcd9);}else{return[];}});}}else{return[];}})[_0x9665('0xf')](function(_0x33fed9){return _0x33fed9;});}function joinOrLeaveQueues(_0x273ad3,_0xd45d66,_0xbd028,_0x349200){_0x273ad3[_0xd45d66](util[_0x9665('0x1b')]('%s:queue:%s',_0xbd028,_0x349200[_0x9665('0x5')]));if(_0x349200[_0x9665('0x6')]){for(var _0x117090=0x0;_0x117090<_0x349200[_0x9665('0x6')][_0x9665('0x1c')];_0x117090+=0x1){_0x273ad3[_0xd45d66](util[_0x9665('0x1b')]('user:%s',_0x349200[_0x9665('0x6')][_0x117090][_0x9665('0x5')]));}}}function joinOrLeave(_0x224b50,_0x3b987b,_0x3bff19){var _0x1d11c9;if(_0x224b50[_0x9665('0x1d')]['query']['id']){db[_0x9665('0x7')][_0x9665('0x1e')]({'attributes':['id',_0x9665('0x5'),'role',_0x9665('0x1f')],'where':{'id':_0x224b50[_0x9665('0x1d')]['query']['id']},'include':[{'model':db['ChatInteraction'],'as':_0x9665('0x20'),'attributes':['id'],'raw':!![]},{'model':db[_0x9665('0x21')],'as':_0x9665('0x22'),'attributes':['id'],'raw':!![]},{'model':db[_0x9665('0x23')],'as':'FaxInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x9665('0x24')],'as':_0x9665('0x25'),'attributes':['id'],'raw':!![]},{'model':db['OpenchannelInteraction'],'as':_0x9665('0x26'),'attributes':['id'],'raw':!![]},{'model':db[_0x9665('0x27')],'as':_0x9665('0x28'),'attributes':['id'],'raw':!![]}]})[_0x9665('0xf')](function(_0x1e09d6){if(_0x1e09d6){_0x1d11c9=_0x1e09d6;_0x224b50[_0x3b987b](util[_0x9665('0x1b')](_0x9665('0x29'),_0x1e09d6['name']));var _0x37161e=[];switch(_0x1e09d6[_0x9665('0x8')]){case'admin':_0x224b50[_0x3b987b](_0x9665('0x2a'));_0x224b50[_0x3b987b](_0x9665('0x2b'));if(queryQueues[_0x9665('0x2c')](_0x9665('0x2d'))){delete queryQueues[_0x9665('0x2d')];}_0x37161e[_0x9665('0x2e')](db[_0x9665('0x2f')][_0x9665('0x16')](queryQueues));_0x37161e[_0x9665('0x2e')](db[_0x9665('0x30')][_0x9665('0x16')](queryQueues));_0x37161e[_0x9665('0x2e')](db[_0x9665('0x31')][_0x9665('0x16')](queryQueues));_0x37161e[_0x9665('0x2e')](db[_0x9665('0x32')][_0x9665('0x16')](queryQueues));_0x37161e[_0x9665('0x2e')](db['MailQueue'][_0x9665('0x16')](queryQueues));_0x37161e['push'](db[_0x9665('0x33')][_0x9665('0x16')](queryQueues));_0x37161e[_0x9665('0x2e')](db[_0x9665('0x34')][_0x9665('0x16')](queryQueues));_0x37161e[_0x9665('0x2e')](db['User'][_0x9665('0x16')](queryTelephones));_0x37161e[_0x9665('0x2e')](db[_0x9665('0x35')][_0x9665('0x16')](queryTrunks));_0x37161e[_0x9665('0x2e')](db['Campaign'][_0x9665('0x16')](queryCampaigns));_0x37161e['push'](db[_0x9665('0x7')][_0x9665('0x16')](queryAgents));break;case _0x9665('0x36'):_0x224b50[_0x3b987b](_0x9665('0x2a'));_0x224b50[_0x3b987b](_0x9665('0x2b'));_0x37161e[_0x9665('0x2e')](getAssociatedResources(_0x9665('0x11'),_0x1e09d6[_0x9665('0x1f')],_0x9665('0x2f')));_0x37161e[_0x9665('0x2e')](getAssociatedResources(_0x9665('0x37'),_0x1e09d6['userProfileId'],_0x9665('0x30')));_0x37161e[_0x9665('0x2e')](getAssociatedResources(_0x9665('0x12'),_0x1e09d6[_0x9665('0x1f')],_0x9665('0x31')));_0x37161e[_0x9665('0x2e')](getAssociatedResources('SmsQueues',_0x1e09d6[_0x9665('0x1f')],_0x9665('0x32')));_0x37161e[_0x9665('0x2e')](getAssociatedResources(_0x9665('0x13'),_0x1e09d6['userProfileId'],_0x9665('0x38')));_0x37161e[_0x9665('0x2e')](getAssociatedResources('OpenchannelQueues',_0x1e09d6['userProfileId'],'OpenchannelQueue'));_0x37161e['push'](getAssociatedResources(_0x9665('0x15'),_0x1e09d6[_0x9665('0x1f')],_0x9665('0x34')));_0x37161e[_0x9665('0x2e')](getAssociatedResources('Telephones',_0x1e09d6[_0x9665('0x1f')],'User'));_0x37161e[_0x9665('0x2e')](getAssociatedResources(_0x9665('0x17'),_0x1e09d6[_0x9665('0x1f')],_0x9665('0x35')));_0x37161e[_0x9665('0x2e')](getAssociatedResources(_0x9665('0x18'),_0x1e09d6['userProfileId'],_0x9665('0x1a')));_0x37161e['push'](db[_0x9665('0x7')][_0x9665('0x16')](queryAgents));break;case _0x9665('0x9'):_0x224b50[_0x3b987b](_0x9665('0x2a'));_0x224b50[_0x3b987b](_0x9665('0x2b'));_0x37161e[_0x9665('0x2e')](_0x1e09d6['getVoiceQueues']({'attributes':['id',_0x9665('0x5')]}));_0x37161e[_0x9665('0x2e')](_0x1e09d6[_0x9665('0x39')]({'attributes':['id','name']}));_0x37161e[_0x9665('0x2e')](_0x1e09d6['getFaxQueues']({'attributes':['id',_0x9665('0x5')]}));_0x37161e[_0x9665('0x2e')](_0x1e09d6[_0x9665('0x3a')]({'attributes':['id','name']}));_0x37161e[_0x9665('0x2e')](_0x1e09d6['getMailQueues']({'attributes':['id',_0x9665('0x5')]}));_0x37161e['push'](_0x1e09d6['getOpenchannelQueues']({'attributes':['id','name']}));_0x37161e[_0x9665('0x2e')](_0x1e09d6[_0x9665('0x3b')]({'attributes':['id',_0x9665('0x5')]}));break;}return BPromise[_0x9665('0x3c')](_0x37161e);}})[_0x9665('0xf')](function(_0x2f87e6){if(_0x2f87e6&&_0x2f87e6[_0x9665('0x1c')]){for(var _0x4d37fb=0x0;_0x4d37fb<_0x2f87e6[_0x9665('0x1c')];_0x4d37fb+=0x1){for(var _0x4c1e98=0x0;_0x4c1e98<_0x2f87e6[_0x4d37fb]['length'];_0x4c1e98+=0x1){switch(_0x4d37fb){case 0x0:joinOrLeaveQueues(_0x224b50,_0x3b987b,'voice',_0x2f87e6[_0x4d37fb][_0x4c1e98]);break;case 0x1:joinOrLeaveQueues(_0x224b50,_0x3b987b,'chat',_0x2f87e6[_0x4d37fb][_0x4c1e98]);break;case 0x2:joinOrLeaveQueues(_0x224b50,_0x3b987b,_0x9665('0x3d'),_0x2f87e6[_0x4d37fb][_0x4c1e98]);break;case 0x3:joinOrLeaveQueues(_0x224b50,_0x3b987b,'sms',_0x2f87e6[_0x4d37fb][_0x4c1e98]);break;case 0x4:joinOrLeaveQueues(_0x224b50,_0x3b987b,'mail',_0x2f87e6[_0x4d37fb][_0x4c1e98]);break;case 0x5:joinOrLeaveQueues(_0x224b50,_0x3b987b,_0x9665('0x3e'),_0x2f87e6[_0x4d37fb][_0x4c1e98]);break;case 0x6:joinOrLeaveQueues(_0x224b50,_0x3b987b,_0x9665('0x3f'),_0x2f87e6[_0x4d37fb][_0x4c1e98]);break;case 0x7:if(_0x1d11c9['role']!==_0x9665('0x9'))_0x224b50[_0x3b987b](util[_0x9665('0x1b')](_0x9665('0x40'),_0x2f87e6[_0x4d37fb][_0x4c1e98][_0x9665('0x5')]));break;case 0x8:if(_0x1d11c9[_0x9665('0x8')]!=='agent')_0x224b50[_0x3b987b](util['format'](_0x9665('0x41'),_0x2f87e6[_0x4d37fb][_0x4c1e98][_0x9665('0x5')]));break;case 0x9:if(_0x1d11c9[_0x9665('0x8')]!==_0x9665('0x9'))_0x224b50[_0x3b987b](util[_0x9665('0x1b')]('campaign:%s:%s',_0x2f87e6[_0x4d37fb][_0x4c1e98]['type'],_0x2f87e6[_0x4d37fb][_0x4c1e98]['name']));break;case 0xa:_0x224b50[_0x3b987b](util[_0x9665('0x1b')](_0x9665('0x29'),_0x2f87e6[_0x4d37fb][_0x4c1e98][_0x9665('0x5')]));break;}}}}})[_0x9665('0xf')](function(){if(_0x3b987b==='leave'){var _0x390923=_[_0x9665('0x42')](_0x1d11c9[_0x9665('0x20')],'id');return _0x1d11c9[_0x9665('0x43')](_0x390923)[_0x9665('0xf')](function(){for(var _0x4b01b4=0x0;_0x4b01b4<_0x390923[_0x9665('0x1c')];_0x4b01b4+=0x1){_0x3bff19[_0x9665('0x44')](_0x9665('0x45'),{'ChatInteractionId':Number(_0x390923[_0x4b01b4]),'UserId':Number(_0x1d11c9['id'])});}});}})[_0x9665('0xf')](function(){if(_0x3b987b==='leave'){var _0x49d147=_[_0x9665('0x42')](_0x1d11c9['MailInteractions'],'id');return _0x1d11c9[_0x9665('0x46')](_0x49d147)[_0x9665('0xf')](function(){for(var _0x423fb9=0x0;_0x423fb9<_0x49d147[_0x9665('0x1c')];_0x423fb9+=0x1){_0x3bff19[_0x9665('0x44')](_0x9665('0x47'),{'MailInteractionId':Number(_0x49d147[_0x423fb9]),'UserId':Number(_0x1d11c9['id'])});}});}})[_0x9665('0xf')](function(){if(_0x3b987b==='leave'){var _0xfd654f=_[_0x9665('0x42')](_0x1d11c9[_0x9665('0x48')],'id');return _0x1d11c9[_0x9665('0x49')](_0xfd654f)['then'](function(){for(var _0x54c7da=0x0;_0x54c7da<_0xfd654f[_0x9665('0x1c')];_0x54c7da+=0x1){_0x3bff19['emit'](_0x9665('0x4a'),{'FaxInteractionId':Number(_0xfd654f[_0x54c7da]),'UserId':Number(_0x1d11c9['id'])});}});}})['then'](function(){if(_0x3b987b===_0x9665('0x4b')){var _0x825f0=_[_0x9665('0x42')](_0x1d11c9['SmsInteractions'],'id');return _0x1d11c9[_0x9665('0x4c')](_0x825f0)['then'](function(){for(var _0x1d8736=0x0;_0x1d8736<_0x825f0[_0x9665('0x1c')];_0x1d8736+=0x1){_0x3bff19[_0x9665('0x44')](_0x9665('0x4d'),{'SmsInteractionId':Number(_0x825f0[_0x1d8736]),'UserId':Number(_0x1d11c9['id'])});}});}})[_0x9665('0xf')](function(){if(_0x3b987b==='leave'){var _0x5c6848=_[_0x9665('0x42')](_0x1d11c9[_0x9665('0x26')],'id');return _0x1d11c9['removeOpenchannelInteractions'](_0x5c6848)['then'](function(){for(var _0x30b0dc=0x0;_0x30b0dc<_0x5c6848['length'];_0x30b0dc+=0x1){_0x3bff19[_0x9665('0x44')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x5c6848[_0x30b0dc]),'UserId':Number(_0x1d11c9['id'])});}});}})['then'](function(){if(_0x3b987b===_0x9665('0x4b')){var _0x5194c2=_['map'](_0x1d11c9['WhatsappInteractions'],'id');return _0x1d11c9[_0x9665('0x4e')](_0x5194c2)[_0x9665('0xf')](function(){for(var _0x9bd252=0x0;_0x9bd252<_0x5194c2[_0x9665('0x1c')];_0x9bd252+=0x1){_0x3bff19[_0x9665('0x44')](_0x9665('0x4f'),{'WhatsappInteractionId':Number(_0x5194c2[_0x9bd252]),'UserId':Number(_0x1d11c9['id'])});}});}})[_0x9665('0x50')](function(_0x40bffb){_0x224b50['log'](_0x40bffb);});}}function onDisconnect(_0x249d4a,_0x5298a6){joinOrLeave(_0x249d4a,_0x9665('0x4b'),_0x5298a6);}function onConnect(_0x5e64eb){joinOrLeave(_0x5e64eb,_0x9665('0x51'));}exports[_0x9665('0x52')]=function(_0x590178){_0x590178['on'](_0x9665('0x53'),function(_0x1e5b8b){_0x1e5b8b['setMaxListeners'](0x0);_0x1e5b8b[_0x9665('0x54')]=_0x1e5b8b[_0x9665('0x55')][_0x9665('0x53')][_0x9665('0x56')]+':'+_0x1e5b8b['request'][_0x9665('0x53')][_0x9665('0x57')];_0x1e5b8b[_0x9665('0x58')]=new Date();_0x1e5b8b[_0x9665('0x59')]=function(_0x4607d2){console[_0x9665('0x59')](_0x9665('0x5a')+_0x1e5b8b[_0x9665('0x5b')][_0x9665('0x5')]+'['+_0x1e5b8b[_0x9665('0x54')]+']',_0x4607d2);};_0x1e5b8b['on']('disconnect',function(){onDisconnect(_0x1e5b8b,_0x590178);_0x1e5b8b[_0x9665('0x59')](_0x9665('0x5c'));});onConnect(_0x1e5b8b);_0x1e5b8b['log'](_0x9665('0x5d'));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0523=['outgoingmessage','AfterCreateMessage','opened','resolve','AfterCreate','changed','closed','substatus','get','format','User','find','email','internal','default','length','hasOwnProperty','model','hook','callback','toLowerCase','condition','util','../../mysqldb','../logger','triggers','client','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','newmessage','Sms','SmsInteraction','SmsMessage','WhatsappInteraction','Whatsapp','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','EventManager','then','info','error','catch','Trigger,\x20%s','channel','motionChannel','event','direction','ContactId','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','QueryTypes','SELECT','contact','UserId','undefined','interface','SIP/%s','name','agent','incomingmessage'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x0523,0x136));var _0x3052=function(_0x302f95,_0x3c5105){_0x302f95=_0x302f95-0x0;var _0xb3b949=_0x0523[_0x302f95];return _0xb3b949;};'use strict';var util=require(_0x3052('0x0'));var db=require(_0x3052('0x1'))['db'];var jayson=require('jayson/promise');var logger=require(_0x3052('0x2'))(_0x3052('0x3'));var client=jayson[_0x3052('0x4')]['http']({'port':0x232a});var triggers=[{'channel':_0x3052('0x5'),'model':_0x3052('0x6'),'event':_0x3052('0x7'),'condition':_0x3052('0x8'),'callback':afterCreate},{'channel':_0x3052('0x5'),'model':'ChatInteraction','event':_0x3052('0x9'),'condition':_0x3052('0xa'),'callback':afterUpdate},{'channel':_0x3052('0x5'),'model':'ChatMessage','event':_0x3052('0x7'),'condition':_0x3052('0xb'),'callback':afterCreateMessage},{'channel':_0x3052('0xc'),'model':_0x3052('0xd'),'event':'afterCreate','condition':_0x3052('0x8'),'callback':afterCreate},{'channel':_0x3052('0xc'),'model':'SmsInteraction','event':'afterUpdate','condition':_0x3052('0xa'),'callback':afterUpdate},{'channel':_0x3052('0xc'),'model':_0x3052('0xe'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':'Whatsapp','model':_0x3052('0xf'),'event':_0x3052('0x7'),'condition':_0x3052('0x8'),'callback':afterCreate},{'channel':'Whatsapp','model':'WhatsappInteraction','event':_0x3052('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x3052('0x10'),'model':'WhatsappMessage','event':_0x3052('0x7'),'condition':_0x3052('0xb'),'callback':afterCreateMessage},{'channel':_0x3052('0x11'),'model':_0x3052('0x12'),'event':_0x3052('0x7'),'condition':_0x3052('0x8'),'callback':afterCreate},{'channel':_0x3052('0x11'),'model':'FaxInteraction','event':_0x3052('0x9'),'condition':_0x3052('0xa'),'callback':afterUpdate},{'channel':_0x3052('0x11'),'model':_0x3052('0x13'),'event':'afterCreate','condition':_0x3052('0xb'),'callback':afterCreateMessage},{'channel':_0x3052('0x14'),'model':'MailInteraction','event':'afterCreate','condition':_0x3052('0x8'),'callback':afterCreate},{'channel':'Mail','model':_0x3052('0x15'),'event':_0x3052('0x9'),'condition':_0x3052('0xa'),'callback':afterUpdate},{'channel':'Mail','model':_0x3052('0x16'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0x3052('0x17'),'model':_0x3052('0x18'),'event':_0x3052('0x7'),'condition':_0x3052('0x8'),'callback':afterCreate},{'channel':'Openchannel','model':_0x3052('0x18'),'event':_0x3052('0x9'),'condition':_0x3052('0xa'),'callback':afterUpdate},{'channel':_0x3052('0x17'),'model':'OpenchannelMessage','event':'afterCreate','condition':_0x3052('0xb'),'callback':afterCreateMessage}];function request(_0x52e639){return client['request'](_0x3052('0x19'),_0x52e639)[_0x3052('0x1a')](function(_0x155a73){logger[_0x3052('0x1b')]('Trigger,\x20%s','EventManager',_0x155a73);if(_0x155a73['error']){if(_0x155a73[_0x3052('0x1c')]['code']===0x1f4){logger[_0x3052('0x1c')]('Trigger,\x20%s',_0x3052('0x19'),_0x155a73['error']);}}})[_0x3052('0x1d')](function(_0x1529bb){logger[_0x3052('0x1c')](_0x3052('0x1e'),'EventManager',_0x1529bb);});}function afterCreateMessage(_0x63f1d5){return function(_0x7350a){_0x7350a=_0x7350a['get']({'plain':!![]});_0x7350a[_0x3052('0x1f')]=_0x63f1d5;_0x7350a[_0x3052('0x20')]=_0x63f1d5;_0x7350a[_0x3052('0x21')]=_0x7350a[_0x3052('0x22')];Promise['resolve']()['then'](function(){if(typeof _0x7350a[_0x3052('0x23')]==='undefined')return null;var _0x55c9c7=_0x3052('0x24')+_0x7350a[_0x3052('0x23')];return db[_0x3052('0x25')][_0x3052('0x26')](_0x55c9c7,{'type':db[_0x3052('0x27')][_0x3052('0x28')][_0x3052('0x29')],'raw':!![]});})['then'](function(_0xac0895){if(_0xac0895){_0x7350a[_0x3052('0x2a')]=_0xac0895[0x0];}if(typeof _0x7350a[_0x3052('0x2b')]===_0x3052('0x2c'))return;return getAgent(_0x7350a[_0x3052('0x2b')]);})['then'](function(_0x377bb0){if(_0x377bb0){_0x7350a[_0x3052('0x2d')]=util['format'](_0x3052('0x2e'),_0x377bb0[_0x3052('0x2f')]);_0x7350a[_0x3052('0x30')]=_0x377bb0;_0x7350a['channel']=_0x63f1d5;return request({'event':_0x3052('0x31'),'message':_0x7350a});}else{return request({'event':_0x3052('0x32'),'message':_0x7350a});}})[_0x3052('0x1d')](function(_0x9b3e8a){logger['error'](_0x3052('0x1e'),_0x3052('0x33'),_0x9b3e8a);});};}function afterCreate(_0x350dd5,_0xe831cc){return function(_0x5c0fb5){_0x5c0fb5=_0x5c0fb5['get']({'plain':!![]});_0x5c0fb5[_0x3052('0x1f')]=_0x350dd5;_0x5c0fb5[_0x3052('0x20')]=_0x350dd5;_0x5c0fb5[_0x3052('0x21')]=_0x3052('0x34');Promise[_0x3052('0x35')]()[_0x3052('0x1a')](function(){var _0x5d7c1e=_0x3052('0x24')+_0x5c0fb5['ContactId'];return db['sequelize'][_0x3052('0x26')](_0x5d7c1e,{'type':db[_0x3052('0x27')][_0x3052('0x28')][_0x3052('0x29')],'raw':!![]});})[_0x3052('0x1a')](function(_0xf56903){if(_0xf56903){_0x5c0fb5[_0x3052('0x2a')]=_0xf56903[0x0];}if(typeof _0x5c0fb5['UserId']===_0x3052('0x2c'))return;return getAgent(_0x5c0fb5[_0x3052('0x2b')]);})[_0x3052('0x1a')](function(_0x476cba){if(_0x476cba){_0x5c0fb5[_0x3052('0x2d')]=util['format'](_0x3052('0x2e'),_0x476cba['name']);_0x5c0fb5[_0x3052('0x30')]=_0x476cba;}return request({'event':_0xe831cc,'message':_0x5c0fb5});})[_0x3052('0x1d')](function(_0x5daeff){logger[_0x3052('0x1c')](_0x3052('0x1e'),_0x3052('0x36'),_0x5daeff);});};}function afterUpdate(_0x436a4d){return function(_0x414e91){var _0x394020=_0x414e91[_0x3052('0x37')](_0x3052('0x38'))&&_0x414e91['closed'];var _0x52badb=_0x414e91['changed'](_0x3052('0x39'));if(_0x394020||_0x52badb){var _0x2af42e=_0x394020?_0x3052('0xa'):'substatus';var _0x410349=_0x414e91[_0x3052('0x3a')]({'plain':!![]});_0x410349[_0x3052('0x1f')]=_0x436a4d;_0x410349[_0x3052('0x20')]=_0x436a4d;_0x410349[_0x3052('0x21')]=_0x394020?_0x3052('0x38'):_0x3052('0x39');var _0x204d01=_0x3052('0x24')+_0x410349[_0x3052('0x23')];return db['sequelize'][_0x3052('0x26')](_0x204d01,{'type':db[_0x3052('0x27')][_0x3052('0x28')][_0x3052('0x29')],'raw':!![]})['then'](function(_0x2ae230){if(_0x2ae230){_0x410349[_0x3052('0x2a')]=_0x2ae230[0x0];}if(typeof _0x410349[_0x3052('0x2b')]===_0x3052('0x2c'))return;return getAgent(_0x410349[_0x3052('0x2b')]);})['then'](function(_0x49baa5){if(_0x49baa5){_0x410349[_0x3052('0x2d')]=util[_0x3052('0x3b')](_0x3052('0x2e'),_0x49baa5[_0x3052('0x2f')]);_0x410349[_0x3052('0x30')]=_0x49baa5;}return request({'event':_0x2af42e,'message':_0x410349});})[_0x3052('0x1d')](function(_0x129f09){logger[_0x3052('0x1c')](_0x3052('0x1e'),'AfterUpdate',_0x129f09);});}};}function getAgent(_0x492460){return db[_0x3052('0x3c')][_0x3052('0x3d')]({'where':{'id':_0x492460},'attributes':['id','name','fullname',_0x3052('0x3e'),_0x3052('0x3f')],'raw':!![]})[_0x3052('0x1a')](function(_0x1a1fa1){return _0x1a1fa1;});}exports[_0x3052('0x40')]=function(){for(var _0xf92da1=0x0;_0xf92da1<triggers[_0x3052('0x41')];_0xf92da1+=0x1){if(db[_0x3052('0x42')](triggers[_0xf92da1][_0x3052('0x43')])){db[triggers[_0xf92da1][_0x3052('0x43')]][_0x3052('0x44')](triggers[_0xf92da1][_0x3052('0x21')],triggers[_0xf92da1][_0x3052('0x45')](triggers[_0xf92da1][_0x3052('0x1f')][_0x3052('0x46')](),triggers[_0xf92da1][_0x3052('0x47')]));}}};
\ No newline at end of file
+var _0xb6f7=['afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','OpenchannelInteraction','Openchannel','OpenchannelMessage','request','EventManager','then','info','Trigger,\x20%s','code','error','catch','get','channel','event','direction','ContactId','sequelize','query','Sequelize','QueryTypes','SELECT','contact','UserId','find','name','fullname','email','internal','format','SIP/%s','agent','opened','changed','closed','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','User','interface','default','length','hasOwnProperty','model','hook','callback','toLowerCase','util','../../mysqldb','jayson/promise','../logger','triggers','lodash','client','http','Chat','ChatInteraction'];(function(_0x2eea1c,_0x555aae){var _0x55f270=function(_0x156ab7){while(--_0x156ab7){_0x2eea1c['push'](_0x2eea1c['shift']());}};_0x55f270(++_0x555aae);}(_0xb6f7,0x1ee));var _0x7b6f=function(_0xcb83d,_0x5cbe62){_0xcb83d=_0xcb83d-0x0;var _0x80d1fd=_0xb6f7[_0xcb83d];return _0x80d1fd;};'use strict';var util=require(_0x7b6f('0x0'));var db=require(_0x7b6f('0x1'))['db'];var jayson=require(_0x7b6f('0x2'));var logger=require(_0x7b6f('0x3'))(_0x7b6f('0x4'));var _=require(_0x7b6f('0x5'));var client=jayson[_0x7b6f('0x6')][_0x7b6f('0x7')]({'port':0x232a});var triggers=[{'channel':_0x7b6f('0x8'),'model':_0x7b6f('0x9'),'event':_0x7b6f('0xa'),'condition':_0x7b6f('0xb'),'callback':afterCreate},{'channel':_0x7b6f('0x8'),'model':_0x7b6f('0x9'),'event':_0x7b6f('0xc'),'condition':_0x7b6f('0xd'),'callback':afterUpdate},{'channel':_0x7b6f('0x8'),'model':_0x7b6f('0xe'),'event':_0x7b6f('0xa'),'condition':_0x7b6f('0xf'),'callback':afterCreateMessage},{'channel':_0x7b6f('0x10'),'model':_0x7b6f('0x11'),'event':_0x7b6f('0xa'),'condition':_0x7b6f('0xb'),'callback':afterCreate},{'channel':_0x7b6f('0x10'),'model':_0x7b6f('0x11'),'event':_0x7b6f('0xc'),'condition':_0x7b6f('0xd'),'callback':afterUpdate},{'channel':'Sms','model':_0x7b6f('0x12'),'event':_0x7b6f('0xa'),'condition':_0x7b6f('0xf'),'callback':afterCreateMessage},{'channel':_0x7b6f('0x13'),'model':_0x7b6f('0x14'),'event':_0x7b6f('0xa'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x7b6f('0x13'),'model':_0x7b6f('0x14'),'event':_0x7b6f('0xc'),'condition':_0x7b6f('0xd'),'callback':afterUpdate},{'channel':'Whatsapp','model':_0x7b6f('0x15'),'event':'afterCreate','condition':_0x7b6f('0xf'),'callback':afterCreateMessage},{'channel':_0x7b6f('0x16'),'model':_0x7b6f('0x17'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x7b6f('0x16'),'model':_0x7b6f('0x17'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x7b6f('0x16'),'model':_0x7b6f('0x18'),'event':_0x7b6f('0xa'),'condition':_0x7b6f('0xf'),'callback':afterCreateMessage},{'channel':_0x7b6f('0x19'),'model':_0x7b6f('0x1a'),'event':_0x7b6f('0xa'),'condition':_0x7b6f('0xb'),'callback':afterCreate},{'channel':'Mail','model':_0x7b6f('0x1a'),'event':'afterUpdate','condition':_0x7b6f('0xd'),'callback':afterUpdate},{'channel':_0x7b6f('0x19'),'model':_0x7b6f('0x1b'),'event':_0x7b6f('0xa'),'condition':_0x7b6f('0xf'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0x7b6f('0x1c'),'event':_0x7b6f('0xa'),'condition':_0x7b6f('0xb'),'callback':afterCreate},{'channel':_0x7b6f('0x1d'),'model':'OpenchannelInteraction','event':_0x7b6f('0xc'),'condition':_0x7b6f('0xd'),'callback':afterUpdate},{'channel':'Openchannel','model':_0x7b6f('0x1e'),'event':_0x7b6f('0xa'),'condition':_0x7b6f('0xf'),'callback':afterCreateMessage}];function request(_0x197bac){return client[_0x7b6f('0x1f')](_0x7b6f('0x20'),_0x197bac)[_0x7b6f('0x21')](function(_0x45c61b){logger[_0x7b6f('0x22')](_0x7b6f('0x23'),'EventManager',_0x45c61b);if(_0x45c61b['error']){if(_0x45c61b['error'][_0x7b6f('0x24')]===0x1f4){logger[_0x7b6f('0x25')](_0x7b6f('0x23'),_0x7b6f('0x20'),_0x45c61b[_0x7b6f('0x25')]);}}})[_0x7b6f('0x26')](function(_0x230f06){logger[_0x7b6f('0x25')](_0x7b6f('0x23'),_0x7b6f('0x20'),_0x230f06);});}function afterCreateMessage(_0x51507a,_0x3f6280){return function(_0x4ffaf4,_0x3195cd){_0x4ffaf4=_0x4ffaf4[_0x7b6f('0x27')]({'plain':!![]});_0x4ffaf4[_0x7b6f('0x28')]=_0x51507a;_0x4ffaf4[_0x7b6f('0x29')]=_0x4ffaf4[_0x7b6f('0x2a')];var _0x3ecac1='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4ffaf4[_0x7b6f('0x2b')];return db[_0x7b6f('0x2c')][_0x7b6f('0x2d')](_0x3ecac1,{'type':db[_0x7b6f('0x2e')][_0x7b6f('0x2f')][_0x7b6f('0x30')],'raw':!![]})['then'](function(_0x259d99){return _0x259d99;})[_0x7b6f('0x21')](function(_0x498729){if(_0x498729){_0x4ffaf4[_0x7b6f('0x31')]=_0x498729[0x0];}if(_0x4ffaf4[_0x7b6f('0x32')]){return db['User'][_0x7b6f('0x33')]({'where':{'id':_0x4ffaf4[_0x7b6f('0x32')]},'attributes':['id',_0x7b6f('0x34'),_0x7b6f('0x35'),_0x7b6f('0x36'),_0x7b6f('0x37')],'raw':!![]})[_0x7b6f('0x21')](function(_0xf53902){_0x4ffaf4['interface']=util[_0x7b6f('0x38')](_0x7b6f('0x39'),_0xf53902['name']);_0x4ffaf4['channel']=_0x51507a;_0x4ffaf4[_0x7b6f('0x3a')]=_0xf53902;return request({'event':'incomingmessage','message':_0x4ffaf4});})[_0x7b6f('0x26')](function(_0x217634){console[_0x7b6f('0x25')](_0x217634);});}else{return request({'event':'outgoingmessage','message':_0x4ffaf4});}});};}function afterCreate(_0x1088db,_0x709c2a){return function(_0x360e07,_0x28a8b2){_0x360e07=_0x360e07[_0x7b6f('0x27')]({'plain':!![]});_0x360e07[_0x7b6f('0x28')]=_0x1088db;_0x360e07['event']=_0x7b6f('0x3b');var _0x333021='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x360e07['ContactId'];return db[_0x7b6f('0x2c')][_0x7b6f('0x2d')](_0x333021,{'type':db[_0x7b6f('0x2e')]['QueryTypes'][_0x7b6f('0x30')],'raw':!![]})[_0x7b6f('0x21')](function(_0x112d68){return _0x112d68;})[_0x7b6f('0x21')](function(_0xa16b68){if(_0xa16b68){_0x360e07['contact']=_0xa16b68[0x0];}return request({'event':_0x709c2a,'message':_0x360e07});});};}function afterUpdate(_0x123fb2,_0x16801e){return function(_0x3d343a,_0x57172f){if(_0x3d343a[_0x7b6f('0x3c')](_0x7b6f('0x3d'))&&_0x3d343a[_0x7b6f('0x3d')]){_0x3d343a=_0x3d343a[_0x7b6f('0x27')]({'plain':!![]});_0x3d343a[_0x7b6f('0x28')]=_0x123fb2;_0x3d343a[_0x7b6f('0x29')]=_0x7b6f('0x3d');var _0x13d510=_0x7b6f('0x3e')+_0x3d343a[_0x7b6f('0x2b')];return db[_0x7b6f('0x2c')][_0x7b6f('0x2d')](_0x13d510,{'type':db[_0x7b6f('0x2e')][_0x7b6f('0x2f')]['SELECT'],'raw':!![]})[_0x7b6f('0x21')](function(_0xe2a090){return _0xe2a090;})['then'](function(_0x3f8b1c){if(_0x3f8b1c){_0x3d343a['contact']=_0x3f8b1c[0x0];}if(_0x3d343a['UserId']){return db[_0x7b6f('0x3f')][_0x7b6f('0x33')]({'where':{'id':_0x3d343a['UserId']},'attributes':['id',_0x7b6f('0x34'),_0x7b6f('0x35'),'email',_0x7b6f('0x37')],'raw':!![]})[_0x7b6f('0x21')](function(_0x5cb60a){_0x3d343a[_0x7b6f('0x40')]=util['format']('SIP/%s',_0x5cb60a[_0x7b6f('0x34')]);_0x3d343a[_0x7b6f('0x3a')]=_0x5cb60a;return request({'event':_0x16801e,'message':_0x3d343a});})['catch'](function(_0x1d9990){console[_0x7b6f('0x25')](_0x1d9990);});}else{return request({'event':_0x16801e,'message':_0x3d343a});}});}};}exports[_0x7b6f('0x41')]=function(){for(var _0x5ef939=0x0;_0x5ef939<triggers[_0x7b6f('0x42')];_0x5ef939+=0x1){if(db[_0x7b6f('0x43')](triggers[_0x5ef939][_0x7b6f('0x44')])){db[triggers[_0x5ef939][_0x7b6f('0x44')]][_0x7b6f('0x45')](triggers[_0x5ef939][_0x7b6f('0x29')],triggers[_0x5ef939][_0x7b6f('0x46')](triggers[_0x5ef939][_0x7b6f('0x28')][_0x7b6f('0x47')](),triggers[_0x5ef939]['condition']));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6867=['fax','sms','whatsapp','openchannel','getChannels','isValidChannel','toLowerCase','includes','clearBlockUser','blockedAt','updateAttributes','getLicense','role','agent','count','then','agents','Maximum\x20login\x20has\x20been\x20reached','bluebird','../mysqldb','./license/util','voice','mail','chat'];(function(_0x3a1a42,_0x1933fe){var _0x18c511=function(_0x4c9253){while(--_0x4c9253){_0x3a1a42['push'](_0x3a1a42['shift']());}};_0x18c511(++_0x1933fe);}(_0x6867,0x1f2));var _0x7686=function(_0x486559,_0x3ddc65){_0x486559=_0x486559-0x0;var _0x538efb=_0x6867[_0x486559];return _0x538efb;};'use strict';var _=require('lodash');var BPromise=require(_0x7686('0x0'));var db=require(_0x7686('0x1'))['db'];var util=require(_0x7686('0x2'));var channels=[_0x7686('0x3'),_0x7686('0x4'),_0x7686('0x5'),_0x7686('0x6'),_0x7686('0x7'),_0x7686('0x8'),_0x7686('0x9')];exports[_0x7686('0xa')]=function(){return channels;};exports[_0x7686('0xb')]=function(_0x367aa4){_0x367aa4=_0x367aa4[_0x7686('0xc')]();return _[_0x7686('0xd')](channels,_0x367aa4);};exports[_0x7686('0xe')]=function(_0x51f0b1,_0x5e841c,_0x3b9668,_0x4deb5b){var _0x547df3={'loginAttempts':_0x5e841c,'blocked':_0x3b9668};if(!_['isUndefined'](_0x4deb5b)){_0x547df3[_0x7686('0xf')]=_0x4deb5b;}return _0x51f0b1[_0x7686('0x10')](_0x547df3);};exports[_0x7686('0x11')]=function(_0x7a3e59){return new BPromise(function(_0x338ad4,_0x16c196){var _0x44d88c=0x0;if(_0x7a3e59[_0x7686('0x12')]!==_0x7686('0x13')){_0x338ad4(_0x7a3e59);}db['User'][_0x7686('0x14')]({'where':{'role':_0x7686('0x13'),'online':!![],'id':{'$ne':_0x7a3e59['id']}}})[_0x7686('0x15')](function(_0x4a566d){_0x44d88c=_0x4a566d;return util['getLicense']();})[_0x7686('0x15')](function(_0x17f071){if(_0x17f071&&_0x17f071[_0x7686('0x16')]&&_0x44d88c>=_0x17f071[_0x7686('0x16')]){throw Error(_0x7686('0x17'));}_0x338ad4(_0x7a3e59);})['catch'](function(_0x15a959){_0x16c196(_0x15a959);});});};
\ No newline at end of file
+var _0x5914=['clearBlockUser','isUndefined','blockedAt','updateAttributes','getLicense','role','User','count','agent','then','Maximum\x20login\x20has\x20been\x20reached','catch','lodash','bluebird','../mysqldb','./license/util','mail','chat','fax','sms','whatsapp','getChannels','isValidChannel','toLowerCase'];(function(_0x409fb8,_0x5ab3d3){var _0x278270=function(_0x58849c){while(--_0x58849c){_0x409fb8['push'](_0x409fb8['shift']());}};_0x278270(++_0x5ab3d3);}(_0x5914,0x1bc));var _0x4591=function(_0x2235f2,_0x3b9028){_0x2235f2=_0x2235f2-0x0;var _0x3cab17=_0x5914[_0x2235f2];return _0x3cab17;};'use strict';var _=require(_0x4591('0x0'));var BPromise=require(_0x4591('0x1'));var db=require(_0x4591('0x2'))['db'];var util=require(_0x4591('0x3'));var channels=['voice',_0x4591('0x4'),_0x4591('0x5'),_0x4591('0x6'),_0x4591('0x7'),_0x4591('0x8'),'openchannel'];exports[_0x4591('0x9')]=function(){return channels;};exports[_0x4591('0xa')]=function(_0x1676a1){_0x1676a1=_0x1676a1[_0x4591('0xb')]();return _['includes'](channels,_0x1676a1);};exports[_0x4591('0xc')]=function(_0x23693f,_0x3268f1,_0x41dece,_0x3d73a2){var _0x4b81fa={'loginAttempts':_0x3268f1,'blocked':_0x41dece};if(!_[_0x4591('0xd')](_0x3d73a2)){_0x4b81fa[_0x4591('0xe')]=_0x3d73a2;}return _0x23693f[_0x4591('0xf')](_0x4b81fa);};exports[_0x4591('0x10')]=function(_0x43295e){return new BPromise(function(_0xb7106a,_0x39a1a2){var _0x470377=0x0;if(_0x43295e[_0x4591('0x11')]!=='agent'){_0xb7106a(_0x43295e);}db[_0x4591('0x12')][_0x4591('0x13')]({'where':{'role':_0x4591('0x14'),'online':!![],'id':{'$ne':_0x43295e['id']}}})[_0x4591('0x15')](function(_0x5d284f){_0x470377=_0x5d284f;return util[_0x4591('0x10')]();})[_0x4591('0x15')](function(_0x4d4f66){if(_0x4d4f66&&_0x4d4f66['agents']&&_0x470377>=_0x4d4f66['agents']){throw Error(_0x4591('0x16'));}_0xb7106a(_0x43295e);})[_0x4591('0x17')](function(_0x12e8c1){_0x39a1a2(_0x12e8c1);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1394=['404','status','render','exports'];(function(_0x3ab9ee,_0x4a74b8){var _0x82ee88=function(_0x6ccc7e){while(--_0x6ccc7e){_0x3ab9ee['push'](_0x3ab9ee['shift']());}};_0x82ee88(++_0x4a74b8);}(_0x1394,0xb3));var _0x4139=function(_0x3167a4,_0x5ee5b3){_0x3167a4=_0x3167a4-0x0;var _0x3cfc01=_0x1394[_0x3167a4];return _0x3cfc01;};'use strict';module[_0x4139('0x0')][0x194]=function pageNotFound(_0x21184c,_0x2c6530){var _0x5ea305=_0x4139('0x1');var _0x50a7fd=0x194;var _0x35aed2={'status':_0x50a7fd};_0x2c6530[_0x4139('0x2')](_0x35aed2['status']);_0x2c6530[_0x4139('0x3')](_0x5ea305,{},function(_0x4c0306,_0x1962f2){if(_0x4c0306){return _0x2c6530[_0x4139('0x2')](_0x35aed2[_0x4139('0x2')])['json'](_0x35aed2);}_0x2c6530['send'](_0x1962f2);});};
\ No newline at end of file
+var _0x305b=['render','json','send','exports','404','status'];(function(_0x49e4c6,_0x233b1a){var _0x11ea68=function(_0x4ffaa5){while(--_0x4ffaa5){_0x49e4c6['push'](_0x49e4c6['shift']());}};_0x11ea68(++_0x233b1a);}(_0x305b,0x81));var _0xb305=function(_0x205e5a,_0x5c19fb){_0x205e5a=_0x205e5a-0x0;var _0x10da58=_0x305b[_0x205e5a];return _0x10da58;};'use strict';module[_0xb305('0x0')][0x194]=function pageNotFound(_0xff5877,_0x1c7872){var _0x590471=_0xb305('0x1');var _0x654fcd=0x194;var _0x3377de={'status':_0x654fcd};_0x1c7872[_0xb305('0x2')](_0x3377de[_0xb305('0x2')]);_0x1c7872[_0xb305('0x3')](_0x590471,{},function(_0x2ac785,_0x2deaee){if(_0x2ac785){return _0x1c7872[_0xb305('0x2')](_0x3377de[_0xb305('0x2')])[_0xb305('0x4')](_0x3377de);}_0x1c7872[_0xb305('0x5')](_0x2deaee);});};
\ 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';\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 users\r
- migration.addColumn('users', 'ignorePauseForPreviewCalls', {\r
- type: Sequelize.BOOLEAN,\r
- defaultValue: false\r
- });\r
-\r
- migration.addColumn('users', 'selectRecallMeCampaign', {\r
- type: Sequelize.BOOLEAN,\r
- defaultValue: false\r
- });\r
- // END users\r
-\r
- // START voice_queues\r
- migration.addColumn('voice_queues', 'dialPreviewAutoRecallMe', {\r
- type: Sequelize.BOOLEAN,\r
- defaultValue: true\r
- });\r
- // END voice_queues\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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c81=['MailTransferReport','../api/mailTransferReport/mailTransferReport.model','ChatTransferReport','../api/chatTransferReport/chatTransferReport.model','../api/faxTransferReport/faxTransferReport.model','OpenchannelTransferReport','../api/openchannelTransferReport/openchannelTransferReport.model','../api/smsTransferReport/smsTransferReport.model','CmList','../api/cmList/cmList.model','../api/voicePrefix/voicePrefix.model','UserProfile','../api/userProfile/userProfile.model','UserProfileSection','UserProfileResource','../api/userProfileResource/userProfileResource.model','UserNotification','../api/userNotification/userNotification.model','WhatsappAccount','../api/whatsappAccount/whatsappAccount.model','WhatsappApplication','../api/whatsappApplication/whatsappApplication.model','WhatsappQueueReport','../api/whatsappQueueReport/whatsappQueueReport.model','../api/whatsappQueue/whatsappQueue.model','TeamVoiceQueue','../api/teamVoiceQueue/teamVoiceQueue.model','TeamVoicePrefix','../api/teamVoicePrefix/teamVoicePrefix.model','UserVoicePrefix','cascade','UserId','hasMany','UserVoiceQueueRt','VoiceQueuesRt','HopperFinals','HopperHistory','OpenchannelInteractions','ChatInteraction','ChatInteractions','SmsInteraction','SmsInteractions','MailInteractions','belongsTo','userProfileId','Groups','chat_group_has_users','belongsToMany','Contacts','cm_user_has_contacts','cm_user_has_lists','user_has_teams','user_has_mail_interactions','user_has_chat_interactions','user_has_fax_interactions','user_has_sms_interactions','user_has_openchannel_interactions','WhatsappInteraction','WhatsappInteractions','user_has_whatsapp_interactions','VoiceQueues','VoicePrefix','MailQueues','UserMailQueue','ChatQueues','FaxQueue','FaxQueues','UserFaxQueue','SmsQueues','UserSmsQueue','OpenchannelQueues','WhatsappQueue','UserWhatsappQueue','user_has_chat_websites','FaxAccounts','user_has_fax_accounts','user_has_openchannel_accounts','user_has_sms_accounts','user_has_whatsapp_accounts','SquareProjects','user_has_square_projects','VoiceChanSpy','SpiedAgents','ChanSpyId','Applications','VoiceMusicOnHold','Sounds','VoiceQueueId','Hoppers','JscriptySessions','TrunkId','TrunkBackup','TrunkBackupId','IntervalId','mandatoryDispositionPause','Agents','voice_queues_has_cm_blacklists','ScreenRecording','VoiceMailMessage','mailboxuser','mailbox','VoiceCallReport','VoiceQueueReport','QueueCalls','uniqueid','AgentReports','ContactId','MailAccountId','MailServerOut','hasOne','Smtp','Dispositions','Messages','List','ListId','mandatoryDispositionPauseId','Teams','MailInteractionId','Contact','Owner','mail_interaction_has_tags','Tags','ThroughTags','Interaction','ChatWebsiteId','ChatOfflineMessageId','restrict','TagId','FaxAccountId','CannedAnswer','Answers','Interactions','FaxMessage','FaxInteractionId','Account','Users','AttachmentId','team_has_fax_queues','FaxQueueReport','SmsAccountId','SmsInteractionId','sms_interaction_has_tags','SmsQueueId','team_has_sms_queues','OpenchannelAccount','OpenchannelAccountId','OpenchannelMessage','OpenchannelQueueId','OpenchannelInteractionId','openchannel_interaction_has_tags','team_has_openchannel_queues','ChatProactiveAction','ProactiveActions','ChatMessage','OpenchannelQueueReport','Queue','ChatQueueId','chat_interaction_has_tags','ChatInteractionId','Attachments','team_has_chat_queues','ChatGroupId','Website','CompanyId','HopperHistories','FaxInteractions','Company','cm_contact_has_tags','CampaignId','OwnerId','All','AutomationAllId','Actions','AutomationId','Intervals','Extensions','MailApplications','FaxApplications','SmsApplications','AnalyticDefaultReport','DefaultReportId','Mohs','fax_interaction_has_tags','whatsapp_interaction_has_tags','AllConditions','TriggerAllId','AnyCondition','TriggerAnyId','TriggerId','Fields','MetricId','AccountId','Subjects','SubjectId','DescriptionId','FieldId','Subject','Description','Field','VariableId','Descriptions','DeskConfiguration','Configurations','int_desk_configuration_has_tags','ZohoField','ZohoAccount','ZendeskField','int_freshdesk_configuration_has_tags','FreshsalesConfiguration','ToId','SessionId','SmsQueueReport','JscriptyProject','ProjectId','team_has_mail_queues','WhatsappQueues','HopperBlacks','Lists','BlackLists','campaigns_has_cm_blacklists','FromMailAccountId','FromAccount','FromUserId','FromAgent','ToUserId','ToAgent','ToMailQueueId','ToQueue','ToMailAccountId','ToAccount','FromChatWebsiteId','ToChatQueueId','ToChatWebsiteId','FaxTransferReport','ToFaxQueueId','ToFaxAccountId','ToOpenchannelQueueId','ToOpenchannelAccountId','SmsTransferReport','FromSmsAccountId','ToSmsQueueId','ToSmsAccountId','CustomFields','Queues','voice_queues_has_cm_lists','UserProfileSections','Resources','sectionId','WhatsappAccountId','WhatsappInteractionId','WhatsappMessage','WhatsappTransferReport','FromWhatsappAccountId','ToWhatsappAccountId','ToQueueId','WhatsappQueueId','team_has_whatsapp_queues','exports','../config/environment','sequelize','jstz','determine','xcall','xC@LL1234','127.0.0.1','mysql','utf8mb4','name','utf8','sequelizeHistory','motion2','utf8_general_ci','database','username','password','options','User','import','../api/user/user.model','../api/voiceChanSpy/voiceChanSpy.model','VoiceContext','../api/voiceContext/voiceContext.model','VoiceExtension','../api/voiceExtension/voiceExtension.model','../api/voiceMusicOnHold/voiceMusicOnHold.model','VoiceQueue','../api/voiceQueue/voiceQueue.model','VoiceRecording','../api/voiceRecording/voiceRecording.model','../api/screenRecording/screenRecording.model','VoiceMail','../api/voiceMail/voiceMail.model','../api/voiceMailMessage/voiceMailMessage.model','../api/voiceCallReport/voiceCallReport.model','../api/voiceAgentReport/voiceAgentReport.model','../api/voiceQueueReport/voiceQueueReport.model','MemberReport','../api/memberReport/memberReport.model','Trunk','../api/trunk/trunk.model','../api/voiceTransferReport/voiceTransferReport.model','UserVoiceQueue','../api/userVoiceQueue/userVoiceQueue.model','UserChatQueue','../api/userChatQueue/userChatQueue.model','../api/userMailQueue/userMailQueue.model','../api/userFaxQueue/userFaxQueue.model','../api/userSmsQueue/userSmsQueue.model','UserOpenchannelQueue','../api/userOpenchannelQueue/userOpenchannelQueue.model','MailServerIn','../api/mailServerOut/mailServerOut.model','MailAccount','../api/mailAccount/mailAccount.model','MailQueue','../api/mailSubstatus/mailSubstatus.model','MailInteraction','MailMessage','../api/mailMessage/mailMessage.model','MailApplication','../api/mailApplication/mailApplication.model','MailQueueReport','../api/mailQueueReport/mailQueueReport.model','Dashboard','../api/dashboard/dashboard.model','DashboardItem','../api/dashboardItem/dashboardItem.model','FaxAccount','../api/faxAccount/faxAccount.model','FaxApplication','../api/faxApplication/faxApplication.model','FaxInteraction','../api/faxMessage/faxMessage.model','../api/faxQueue/faxQueue.model','../api/faxQueueReport/faxQueueReport.model','SmsAccount','../api/smsAccount/smsAccount.model','SmsApplication','../api/smsApplication/smsApplication.model','../api/smsInteraction/smsInteraction.model','SmsMessage','../api/smsMessage/smsMessage.model','SmsQueue','../api/smsQueue/smsQueue.model','../api/openchannelAccount/openchannelAccount.model','OpenchannelApplication','../api/openchannelApplication/openchannelApplication.model','OpenchannelInteraction','../api/openchannelInteraction/openchannelInteraction.model','../api/openchannelMessage/openchannelMessage.model','OpenchannelQueue','ChatWebsite','ChatApplication','../api/chatApplication/chatApplication.model','../api/chatInteraction/chatInteraction.model','ChatOfflineMessage','../api/chatOfflineMessage/chatOfflineMessage.model','ChatQueue','ChatGroup','../api/chatProactiveAction/chatProactiveAction.model','CmCompany','../api/cmCompany/cmCompany.model','CmContact','../api/cmContact/cmContact.model','CmHopper','../api/cmHopper/cmHopper.model','CmHopperBlack','CmHopperFinal','../api/cmHopperFinal/cmHopperFinal.model','CmHopperHistory','../api/cmHopperHistory/cmHopperHistory.model','ReportAgentPreview','../api/reportAgentPreview/reportAgentPreview.model','CmCustomField','../api/cmCustomField/cmCustomField.model','Action','Automation','../api/automation/automation.model','Disposition','../api/disposition/disposition.model','Condition','../api/condition/condition.model','Interval','Pause','../api/pause/pause.model','Cdr','../api/cdr/cdr.model','VoiceQueuesLog','../api/voiceQueuesLog/voiceQueuesLog.model','Schedule','../api/schedule/schedule.model','Sound','../api/sound/sound.model','Tag','../api/tag/tag.model','Template','../api/template/template.model','Trigger','../api/trigger/trigger.model','Variable','../api/variable/variable.model','Integration','../api/integration/integration.model','../api/integrationReport/integrationReport.model','AnalyticCustomReport','../api/analyticCustomReport/analyticCustomReport.model','AnalyticExtractedReport','../api/analyticExtractedReport/analyticExtractedReport.model','AnalyticMetric','../api/analyticMetric/analyticMetric.model','AnalyticFieldReport','../api/analyticFieldReport/analyticFieldReport.model','AnalyticTreeReport','../api/analyticTreeReport/analyticTreeReport.model','SalesforceAccount','../api/intSalesforceAccount/intSalesforceAccount.model','SalesforceConfiguration','../api/intSalesforceConfiguration/intSalesforceConfiguration.model','SalesforceField','SugarcrmAccount','../api/intSugarcrmAccount/intSugarcrmAccount.model','SugarcrmConfiguration','SugarcrmField','../api/intSugarcrmField/intSugarcrmField.model','DeskAccount','../api/intDeskConfiguration/intDeskConfiguration.model','DeskField','../api/intDeskField/intDeskField.model','../api/intZohoAccount/intZohoAccount.model','ZohoConfiguration','../api/intZohoConfiguration/intZohoConfiguration.model','../api/intZohoField/intZohoField.model','ZendeskAccount','ZendeskConfiguration','../api/intZendeskField/intZendeskField.model','FreshdeskAccount','../api/intFreshdeskAccount/intFreshdeskAccount.model','FreshdeskConfiguration','FreshdeskField','../api/intFreshdeskField/intFreshdeskField.model','VtigerAccount','../api/intVtigerAccount/intVtigerAccount.model','VtigerConfiguration','../api/intVtigerConfiguration/intVtigerConfiguration.model','VtigerField','../api/intVtigerField/intVtigerField.model','ServicenowAccount','../api/intServicenowAccount/intServicenowAccount.model','ServicenowConfiguration','../api/intServicenowConfiguration/intServicenowConfiguration.model','ServicenowField','../api/intServicenowField/intServicenowField.model','Dynamics365Account','../api/intDynamics365Account/intDynamics365Account.model','Dynamics365Configuration','../api/intDynamics365Configuration/intDynamics365Configuration.model','Dynamics365Field','../api/intDynamics365Field/intDynamics365Field.model','FreshsalesAccount','../api/intFreshsalesConfiguration/intFreshsalesConfiguration.model','FreshsalesField','../api/intFreshsalesField/intFreshsalesField.model','../api/network/network.model','ChatQueueReport','../api/chatQueueReport/chatQueueReport.model','ChatInternalMessage','../api/jscriptyAnswerReport/jscriptyAnswerReport.model','JscriptyQuestionReport','../api/jscriptyQuestionReport/jscriptyQuestionReport.model','JscriptySessionReport','../api/smsQueueReport/smsQueueReport.model','SquareReport','SquareDetailsReport','../api/squareReportDetail/squareReportDetail.model','../api/jscriptyProject/jscriptyProject.model','Setting','SquareOdbc','../api/squareOdbc/squareOdbc.model','SquareProject','../api/squareProject/squareProject.model','../api/squareRecording/squareRecording.model','SquareMessage','../api/squareMessage/squareMessage.model','Team','../api/license/license.model','Campaign','../api/campaign/campaign.model','Migration','Attachment','../api/attachment/attachment.model','../api/plugin/plugin.model'];(function(_0x2859c7,_0x591b16){var _0x41fdc5=function(_0x29f714){while(--_0x29f714){_0x2859c7['push'](_0x2859c7['shift']());}};_0x41fdc5(++_0x591b16);}(_0x3c81,0x102));var _0x13c8=function(_0x2b6a89,_0x5529e4){_0x2b6a89=_0x2b6a89-0x0;var _0x594753=_0x3c81[_0x2b6a89];return _0x594753;};'use strict';var config=require(_0x13c8('0x0'));var Sequelize=require(_0x13c8('0x1'));var _=require('lodash');var jstz=require(_0x13c8('0x2'));var timezone=jstz[_0x13c8('0x3')]();config['sequelize']=_['defaultsDeep'](config['sequelize'],{'database':'motion2','username':_0x13c8('0x4'),'password':_0x13c8('0x5'),'options':{'host':_0x13c8('0x6'),'port':0xcea,'dialect':_0x13c8('0x7'),'dialectOptions':{'charset':_0x13c8('0x8')},'logging':![],'timezone':timezone[_0x13c8('0x9')](),'define':{'charset':_0x13c8('0xa'),'collate':'utf8_general_ci'}}});config[_0x13c8('0xb')]=_['defaultsDeep'](config[_0x13c8('0xb')],{'database':_0x13c8('0xc'),'username':_0x13c8('0x4'),'password':_0x13c8('0x5'),'options':{'host':_0x13c8('0x6'),'port':0xcea,'dialect':_0x13c8('0x7'),'dialectOptions':{'charset':_0x13c8('0x8')},'logging':![],'timezone':timezone[_0x13c8('0x9')](),'define':{'charset':_0x13c8('0xa'),'collate':_0x13c8('0xd')}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x13c8('0x1')][_0x13c8('0xe')],config[_0x13c8('0x1')][_0x13c8('0xf')],config['sequelize'][_0x13c8('0x10')],config[_0x13c8('0x1')][_0x13c8('0x11')])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x13c8('0xb')]['database'],config[_0x13c8('0xb')]['username'],config['sequelizeHistory']['password'],config[_0x13c8('0xb')]['options'])};db[_0x13c8('0x12')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x14'));db['VoiceChanSpy']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x15'));db[_0x13c8('0x16')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x17'));db[_0x13c8('0x18')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x19'));db['VoiceMusicOnHold']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x1a'));db[_0x13c8('0x1b')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x1c'));db[_0x13c8('0x1d')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x1e'));db['ScreenRecording']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x1f'));db[_0x13c8('0x20')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x21'));db['VoiceMailMessage']=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x22'));db['VoiceCallReport']=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x23'));db['VoiceDialReport']=db['sequelize'][_0x13c8('0x13')]('../api/voiceDialReport/voiceDialReport.model');db['VoiceAgentReport']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x24'));db['VoiceQueueReport']=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x25'));db[_0x13c8('0x26')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x27'));db[_0x13c8('0x28')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x29'));db['VoiceTransferReport']=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x2a'));db['UserVoiceQueueRt']=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/userVoiceQueueRt/userVoiceQueueRt.model');db[_0x13c8('0x2b')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x2c'));db[_0x13c8('0x2d')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x2e'));db['UserMailQueue']=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x2f'));db['UserFaxQueue']=db[_0x13c8('0x1')]['import'](_0x13c8('0x30'));db['UserSmsQueue']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x31'));db[_0x13c8('0x32')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x33'));db['UserWhatsappQueue']=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/userWhatsappQueue/userWhatsappQueue.model');db[_0x13c8('0x34')]=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/mailServerIn/mailServerIn.model');db['MailServerOut']=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x35'));db[_0x13c8('0x36')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x37'));db[_0x13c8('0x38')]=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/mailQueue/mailQueue.model');db['MailSubstatus']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x39'));db[_0x13c8('0x3a')]=db['sequelize'][_0x13c8('0x13')]('../api/mailInteraction/mailInteraction.model');db[_0x13c8('0x3b')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x3c'));db[_0x13c8('0x3d')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x3e'));db[_0x13c8('0x3f')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x40'));db[_0x13c8('0x41')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x42'));db[_0x13c8('0x43')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x44'));db[_0x13c8('0x45')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x46'));db[_0x13c8('0x47')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x48'));db[_0x13c8('0x49')]=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/faxInteraction/faxInteraction.model');db['FaxMessage']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x4a'));db['FaxQueue']=db['sequelize']['import'](_0x13c8('0x4b'));db['FaxQueueReport']=db[_0x13c8('0x1')]['import'](_0x13c8('0x4c'));db[_0x13c8('0x4d')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x4e'));db[_0x13c8('0x4f')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x50'));db['SmsInteraction']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x51'));db[_0x13c8('0x52')]=db[_0x13c8('0x1')]['import'](_0x13c8('0x53'));db[_0x13c8('0x54')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x55'));db['OpenchannelAccount']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x56'));db[_0x13c8('0x57')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x58'));db[_0x13c8('0x59')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x5a'));db['OpenchannelMessage']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x5b'));db[_0x13c8('0x5c')]=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/openchannelQueue/openchannelQueue.model');db[_0x13c8('0x5d')]=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/chatWebsite/chatWebsite.model');db['OpenchannelQueueReport']=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/openchannelQueueReport/openchannelQueueReport.model');db[_0x13c8('0x5e')]=db[_0x13c8('0x1')]['import'](_0x13c8('0x5f'));db['ChatInteraction']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x60'));db['ChatMessage']=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/chatMessage/chatMessage.model');db[_0x13c8('0x61')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x62'));db[_0x13c8('0x63')]=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/chatQueue/chatQueue.model');db[_0x13c8('0x64')]=db['sequelize']['import']('../api/chatGroup/chatGroup.model');db['ChatProactiveAction']=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x65'));db[_0x13c8('0x66')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x67'));db[_0x13c8('0x68')]=db['sequelize']['import'](_0x13c8('0x69'));db[_0x13c8('0x6a')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x6b'));db[_0x13c8('0x6c')]=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/cmHopperBlack/cmHopperBlack.model');db[_0x13c8('0x6d')]=db[_0x13c8('0x1')]['import'](_0x13c8('0x6e'));db[_0x13c8('0x6f')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x70'));db[_0x13c8('0x71')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x72'));db[_0x13c8('0x73')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x74'));db[_0x13c8('0x75')]=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/action/action.model');db[_0x13c8('0x76')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x77'));db['CannedAnswer']=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/cannedAnswer/cannedAnswer.model');db[_0x13c8('0x78')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x79'));db[_0x13c8('0x7a')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x7b'));db[_0x13c8('0x7c')]=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/interval/interval.model');db[_0x13c8('0x7d')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x7e'));db[_0x13c8('0x7f')]=db[_0x13c8('0x1')]['import'](_0x13c8('0x80'));db[_0x13c8('0x81')]=db[_0x13c8('0x1')]['import'](_0x13c8('0x82'));db[_0x13c8('0x83')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x84'));db[_0x13c8('0x85')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x86'));db[_0x13c8('0x87')]=db[_0x13c8('0x1')]['import'](_0x13c8('0x88'));db[_0x13c8('0x89')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x8a'));db[_0x13c8('0x8b')]=db[_0x13c8('0x1')]['import'](_0x13c8('0x8c'));db[_0x13c8('0x8d')]=db[_0x13c8('0x1')]['import'](_0x13c8('0x8e'));db[_0x13c8('0x8f')]=db['sequelize']['import'](_0x13c8('0x90'));db['IntegrationReport']=db[_0x13c8('0x1')]['import'](_0x13c8('0x91'));db[_0x13c8('0x92')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x93'));db['AnalyticDefaultReport']=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/analyticDefaultReport/analyticDefaultReport.model');db[_0x13c8('0x94')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x95'));db[_0x13c8('0x96')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x97'));db[_0x13c8('0x98')]=db[_0x13c8('0x1')]['import'](_0x13c8('0x99'));db[_0x13c8('0x9a')]=db['sequelize']['import'](_0x13c8('0x9b'));db[_0x13c8('0x9c')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x9d'));db[_0x13c8('0x9e')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0x9f'));db[_0x13c8('0xa0')]=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/intSalesforceField/intSalesforceField.model');db[_0x13c8('0xa1')]=db[_0x13c8('0x1')]['import'](_0x13c8('0xa2'));db[_0x13c8('0xa3')]=db['sequelize'][_0x13c8('0x13')]('../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model');db[_0x13c8('0xa4')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xa5'));db[_0x13c8('0xa6')]=db['sequelize'][_0x13c8('0x13')]('../api/intDeskAccount/intDeskAccount.model');db['DeskConfiguration']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xa7'));db[_0x13c8('0xa8')]=db['sequelize']['import'](_0x13c8('0xa9'));db['ZohoAccount']=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xaa'));db[_0x13c8('0xab')]=db[_0x13c8('0x1')]['import'](_0x13c8('0xac'));db['ZohoField']=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xad'));db[_0x13c8('0xae')]=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/intZendeskAccount/intZendeskAccount.model');db[_0x13c8('0xaf')]=db['sequelize'][_0x13c8('0x13')]('../api/intZendeskConfiguration/intZendeskConfiguration.model');db['ZendeskField']=db[_0x13c8('0x1')]['import'](_0x13c8('0xb0'));db[_0x13c8('0xb1')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xb2'));db[_0x13c8('0xb3')]=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model');db[_0x13c8('0xb4')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xb5'));db[_0x13c8('0xb6')]=db['sequelize']['import'](_0x13c8('0xb7'));db[_0x13c8('0xb8')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xb9'));db[_0x13c8('0xba')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xbb'));db[_0x13c8('0xbc')]=db['sequelize']['import'](_0x13c8('0xbd'));db[_0x13c8('0xbe')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xbf'));db[_0x13c8('0xc0')]=db[_0x13c8('0x1')]['import'](_0x13c8('0xc1'));db[_0x13c8('0xc2')]=db[_0x13c8('0x1')]['import'](_0x13c8('0xc3'));db[_0x13c8('0xc4')]=db[_0x13c8('0x1')]['import'](_0x13c8('0xc5'));db[_0x13c8('0xc6')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xc7'));db[_0x13c8('0xc8')]=db['sequelize']['import']('../api/intFreshsalesAccount/intFreshsalesAccount.model');db['FreshsalesConfiguration']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xc9'));db[_0x13c8('0xca')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xcb'));db[_0x13c8('0x8f')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x90'));db['Network']=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xcc'));db[_0x13c8('0xcd')]=db[_0x13c8('0x1')]['import'](_0x13c8('0xce'));db[_0x13c8('0xcf')]=db[_0x13c8('0x1')]['import']('../api/chatInternalMessage/chatInternalMessage.model');db['JscriptyAnswerReport']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xd0'));db[_0x13c8('0xd1')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xd2'));db[_0x13c8('0xd3')]=db['sequelize'][_0x13c8('0x13')]('../api/jscriptySessionReport/jscriptySessionReport.model');db['SmsQueueReport']=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xd4'));db[_0x13c8('0xd5')]=db['sequelize'][_0x13c8('0x13')]('../api/squareReport/squareReport.model');db[_0x13c8('0xd6')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xd7'));db['JscriptyProject']=db[_0x13c8('0x1')]['import'](_0x13c8('0xd8'));db[_0x13c8('0xd9')]=db['sequelize']['import']('../api/setting/setting.model');db[_0x13c8('0xda')]=db[_0x13c8('0x1')]['import'](_0x13c8('0xdb'));db[_0x13c8('0xdc')]=db[_0x13c8('0x1')]['import'](_0x13c8('0xdd'));db['SquareRecording']=db['sequelize']['import'](_0x13c8('0xde'));db[_0x13c8('0xdf')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xe0'));db[_0x13c8('0xe1')]=db['sequelize'][_0x13c8('0x13')]('../api/team/team.model');db['License']=db[_0x13c8('0x1')]['import'](_0x13c8('0xe2'));db[_0x13c8('0xe3')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xe4'));db[_0x13c8('0xe5')]=db['sequelize'][_0x13c8('0x13')]('../api/migration/migration.model');db[_0x13c8('0xe6')]=db[_0x13c8('0x1')]['import'](_0x13c8('0xe7'));db['Plugin']=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xe8'));db[_0x13c8('0xe9')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xea'));db[_0x13c8('0xeb')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xec'));db['FaxTransferReport']=db[_0x13c8('0x1')]['import'](_0x13c8('0xed'));db[_0x13c8('0xee')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xef'));db['SmsTransferReport']=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xf0'));db[_0x13c8('0xf1')]=db['sequelize']['import'](_0x13c8('0xf2'));db['VoicePrefix']=db['sequelize']['import'](_0x13c8('0xf3'));db[_0x13c8('0xf4')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xf5'));db[_0x13c8('0xf6')]=db[_0x13c8('0x1')]['import']('../api/userProfileSection/userProfileSection.model');db[_0x13c8('0xf7')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xf8'));db[_0x13c8('0xf9')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0xfa'));db[_0x13c8('0xfb')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xfc'));db[_0x13c8('0xfd')]=db['sequelize'][_0x13c8('0x13')](_0x13c8('0xfe'));db['WhatsappInteraction']=db[_0x13c8('0x1')]['import']('../api/whatsappInteraction/whatsappInteraction.model');db['WhatsappMessage']=db['sequelize'][_0x13c8('0x13')]('../api/whatsappMessage/whatsappMessage.model');db[_0x13c8('0xff')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x100'));db['WhatsappTransferReport']=db[_0x13c8('0x1')]['import']('../api/whatsappTransferReport/whatsappTransferReport.model');db['WhatsappQueue']=db[_0x13c8('0x1')]['import'](_0x13c8('0x101'));db['CloudProvider']=db[_0x13c8('0x1')][_0x13c8('0x13')]('../api/cloudProvider/cloudProvider.model');db[_0x13c8('0x102')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x103'));db[_0x13c8('0x104')]=db[_0x13c8('0x1')][_0x13c8('0x13')](_0x13c8('0x105'));db[_0x13c8('0x106')]=db['sequelize'][_0x13c8('0x13')]('../api/userVoicePrefix/userVoicePrefix.model');db['User']['hasOne'](db[_0x13c8('0x20')],{'as':'VoiceMail','onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x108')});db['User'][_0x13c8('0x109')](db[_0x13c8('0x1d')],{'as':'Recordings','foreignKey':_0x13c8('0x108')});db[_0x13c8('0x12')]['hasMany'](db[_0x13c8('0x10a')],{'as':_0x13c8('0x10b'),'foreignKey':'UserId'});db[_0x13c8('0x12')][_0x13c8('0x109')](db[_0x13c8('0x18')],{'as':'Extensions','onDelete':'cascade','hooks':!![]});db['User'][_0x13c8('0x109')](db[_0x13c8('0x6d')],{'as':_0x13c8('0x10c'),'foreignKey':_0x13c8('0x108')});db[_0x13c8('0x12')][_0x13c8('0x109')](db[_0x13c8('0x6f')],{'as':_0x13c8('0x10d'),'foreignKey':_0x13c8('0x108')});db[_0x13c8('0x12')][_0x13c8('0x109')](db[_0x13c8('0x71')],{'as':_0x13c8('0x71'),'foreignKey':_0x13c8('0x108')});db['User']['hasMany'](db[_0x13c8('0x59')],{'as':_0x13c8('0x10e'),'foreignKey':_0x13c8('0x108')});db[_0x13c8('0x12')][_0x13c8('0x109')](db[_0x13c8('0x10f')],{'as':_0x13c8('0x110'),'foreignKey':'UserId'});db[_0x13c8('0x12')][_0x13c8('0x109')](db[_0x13c8('0x111')],{'as':_0x13c8('0x112'),'foreignKey':_0x13c8('0x108')});db[_0x13c8('0x12')][_0x13c8('0x109')](db[_0x13c8('0x49')],{'as':'FaxInteractions','foreignKey':_0x13c8('0x108')});db[_0x13c8('0x12')][_0x13c8('0x109')](db[_0x13c8('0x3a')],{'as':_0x13c8('0x113'),'foreignKey':_0x13c8('0x108')});db[_0x13c8('0x12')]['hasMany'](db['WhatsappInteraction'],{'as':'WhatsappInteractions','foreignKey':'UserId'});db[_0x13c8('0x12')][_0x13c8('0x109')](db[_0x13c8('0xf9')],{'as':'UserNotifications','foreignKey':'SenderId'});db['User'][_0x13c8('0x114')](db['UserProfile'],{'as':'UserProfile','foreignKey':_0x13c8('0x115')});db['User']['belongsToMany'](db['ChatGroup'],{'as':_0x13c8('0x116'),'through':_0x13c8('0x117')});db['User'][_0x13c8('0x118')](db[_0x13c8('0x68')],{'as':_0x13c8('0x119'),'through':_0x13c8('0x11a')});db[_0x13c8('0x12')][_0x13c8('0x118')](db[_0x13c8('0xf1')],{'as':'Lists','through':_0x13c8('0x11b')});db[_0x13c8('0x12')][_0x13c8('0x118')](db[_0x13c8('0xe1')],{'through':_0x13c8('0x11c')});db[_0x13c8('0x12')][_0x13c8('0x118')](db[_0x13c8('0x3a')],{'as':_0x13c8('0x113'),'through':_0x13c8('0x11d')});db[_0x13c8('0x12')][_0x13c8('0x118')](db[_0x13c8('0x10f')],{'as':'ChatInteractions','through':_0x13c8('0x11e')});db[_0x13c8('0x12')][_0x13c8('0x118')](db['FaxInteraction'],{'as':'FaxInteractions','through':_0x13c8('0x11f')});db['User'][_0x13c8('0x118')](db[_0x13c8('0x111')],{'as':_0x13c8('0x112'),'through':_0x13c8('0x120')});db['User'][_0x13c8('0x118')](db[_0x13c8('0x59')],{'as':_0x13c8('0x10e'),'through':_0x13c8('0x121')});db['User'][_0x13c8('0x118')](db[_0x13c8('0x122')],{'as':_0x13c8('0x123'),'through':_0x13c8('0x124')});db[_0x13c8('0x12')][_0x13c8('0x118')](db['VoiceQueue'],{'as':_0x13c8('0x125'),'through':'UserVoiceQueue','required':![]});db[_0x13c8('0x12')]['belongsToMany'](db[_0x13c8('0x126')],{'as':'VoicePrefixes','through':_0x13c8('0x106'),'required':![]});db[_0x13c8('0x12')][_0x13c8('0x118')](db['MailQueue'],{'as':_0x13c8('0x127'),'through':_0x13c8('0x128'),'required':![]});db[_0x13c8('0x12')]['belongsToMany'](db[_0x13c8('0x63')],{'as':_0x13c8('0x129'),'through':'UserChatQueue','required':![],'hooks':!![]});db[_0x13c8('0x12')][_0x13c8('0x118')](db[_0x13c8('0x12a')],{'as':_0x13c8('0x12b'),'through':_0x13c8('0x12c'),'required':![]});db[_0x13c8('0x12')][_0x13c8('0x118')](db[_0x13c8('0x54')],{'as':_0x13c8('0x12d'),'through':_0x13c8('0x12e'),'required':![]});db[_0x13c8('0x12')][_0x13c8('0x118')](db[_0x13c8('0x5c')],{'as':_0x13c8('0x12f'),'through':'UserOpenchannelQueue','required':![]});db[_0x13c8('0x12')][_0x13c8('0x118')](db[_0x13c8('0x130')],{'as':'WhatsappQueues','through':_0x13c8('0x131'),'required':![]});db[_0x13c8('0x12')]['belongsToMany'](db[_0x13c8('0xf1')],{'through':_0x13c8('0x11b')});db[_0x13c8('0x12')]['belongsToMany'](db[_0x13c8('0x5d')],{'as':'ChatWebsites','through':_0x13c8('0x132')});db[_0x13c8('0x12')]['belongsToMany'](db[_0x13c8('0x45')],{'as':_0x13c8('0x133'),'through':_0x13c8('0x134')});db['User'][_0x13c8('0x118')](db[_0x13c8('0x36')],{'as':'MailAccounts','through':'user_has_mail_accounts'});db[_0x13c8('0x12')][_0x13c8('0x118')](db['OpenchannelAccount'],{'as':'OpenchannelAccounts','through':_0x13c8('0x135')});db[_0x13c8('0x12')][_0x13c8('0x118')](db[_0x13c8('0x4d')],{'as':'SmsAccounts','through':_0x13c8('0x136')});db[_0x13c8('0x12')][_0x13c8('0x118')](db[_0x13c8('0xfb')],{'as':'WhatsappAccounts','through':_0x13c8('0x137')});db[_0x13c8('0x12')][_0x13c8('0x118')](db[_0x13c8('0xdc')],{'as':_0x13c8('0x138'),'through':_0x13c8('0x139')});db[_0x13c8('0x13a')][_0x13c8('0x109')](db[_0x13c8('0x18')],{'as':_0x13c8('0x13b'),'onDelete':'cascade','foreignKey':_0x13c8('0x13c')});db['VoiceContext'][_0x13c8('0x109')](db[_0x13c8('0x18')],{'onDelete':_0x13c8('0x107')});db[_0x13c8('0x18')][_0x13c8('0x109')](db['VoiceExtension'],{'as':_0x13c8('0x13d'),'onDelete':_0x13c8('0x107')});db[_0x13c8('0x13e')]['belongsToMany'](db[_0x13c8('0x85')],{'as':_0x13c8('0x13f'),'through':'moh_has_sounds'});db[_0x13c8('0x1b')]['hasMany'](db['UserVoiceQueueRt'],{'as':'Members','foreignKey':_0x13c8('0x140')});db[_0x13c8('0x1b')]['hasMany'](db[_0x13c8('0x6a')],{'as':_0x13c8('0x141'),'foreignKey':_0x13c8('0x140')});db[_0x13c8('0x1b')][_0x13c8('0x109')](db['CmHopperFinal'],{'as':_0x13c8('0x10c'),'foreignKey':_0x13c8('0x140')});db['VoiceQueue']['hasMany'](db['CmHopperHistory'],{'as':'HopperHistories','foreignKey':_0x13c8('0x140')});db[_0x13c8('0x1b')][_0x13c8('0x109')](db['ReportAgentPreview'],{'as':_0x13c8('0x71'),'foreignKey':'VoiceQueueId'});db[_0x13c8('0x1b')][_0x13c8('0x109')](db[_0x13c8('0x6c')],{'as':'HopperBlacks','foreignKey':_0x13c8('0x140')});db['VoiceQueue'][_0x13c8('0x109')](db['JscriptySessionReport'],{'as':_0x13c8('0x142'),'foreignKey':_0x13c8('0x140')});db['VoiceQueue'][_0x13c8('0x114')](db['Trunk'],{'as':_0x13c8('0x28'),'foreignKey':_0x13c8('0x143')});db[_0x13c8('0x1b')][_0x13c8('0x114')](db[_0x13c8('0x28')],{'as':_0x13c8('0x144'),'foreignKey':_0x13c8('0x145')});db[_0x13c8('0x1b')][_0x13c8('0x114')](db['Interval'],{'as':_0x13c8('0x7c'),'foreignKey':_0x13c8('0x146')});db[_0x13c8('0x1b')][_0x13c8('0x114')](db[_0x13c8('0x7d')],{'as':_0x13c8('0x147'),'foreignKey':'mandatoryDispositionPauseId'});db[_0x13c8('0x1b')]['belongsToMany'](db['CmList'],{'as':'Lists','through':'voice_queues_has_cm_lists'});db[_0x13c8('0x1b')][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':_0x13c8('0x148'),'through':_0x13c8('0x2b')});db[_0x13c8('0x1b')]['belongsToMany'](db[_0x13c8('0xe1')],{'as':'Teams','through':'TeamVoiceQueue'});db[_0x13c8('0x1b')][_0x13c8('0x118')](db[_0x13c8('0xf1')],{'as':'BlackLists','through':_0x13c8('0x149')});db[_0x13c8('0x1d')]['belongsTo'](db[_0x13c8('0x12')],{'as':_0x13c8('0x12'),'foreignKey':_0x13c8('0x108')});db[_0x13c8('0x14a')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'as':_0x13c8('0x12'),'foreignKey':_0x13c8('0x108')});db['VoiceMail'][_0x13c8('0x109')](db[_0x13c8('0x14b')],{'as':'Messages','onDelete':_0x13c8('0x107'),'foreignKey':'mailboxuser','sourceKey':'mailbox'});db[_0x13c8('0x14b')][_0x13c8('0x114')](db[_0x13c8('0x20')],{'foreignKey':_0x13c8('0x14c'),'targetKey':_0x13c8('0x14d')});db[_0x13c8('0x14e')][_0x13c8('0x109')](db[_0x13c8('0x14f')],{'as':_0x13c8('0x150'),'foreignKey':_0x13c8('0x151'),'constraints':![]});db[_0x13c8('0x14e')][_0x13c8('0x109')](db['VoiceAgentReport'],{'as':_0x13c8('0x152'),'foreignKey':'uniqueid','constraints':![]});db[_0x13c8('0x14e')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'as':'User','foreignKey':_0x13c8('0x108')});db[_0x13c8('0x14e')]['belongsTo'](db[_0x13c8('0x68')],{'as':'Contact','foreignKey':_0x13c8('0x153')});db[_0x13c8('0x34')][_0x13c8('0x114')](db[_0x13c8('0x36')],{'as':_0x13c8('0x36'),'foreignKey':_0x13c8('0x154')});db[_0x13c8('0x155')][_0x13c8('0x114')](db[_0x13c8('0x36')],{'as':_0x13c8('0x36'),'foreignKey':_0x13c8('0x154')});db[_0x13c8('0x36')][_0x13c8('0x156')](db[_0x13c8('0x34')],{'as':'Imap','onDelete':_0x13c8('0x107')});db[_0x13c8('0x36')][_0x13c8('0x156')](db[_0x13c8('0x155')],{'as':_0x13c8('0x157'),'onDelete':'cascade'});db['MailAccount']['hasMany'](db[_0x13c8('0x78')],{'as':_0x13c8('0x158'),'foreignKey':_0x13c8('0x154'),'onDelete':_0x13c8('0x107')});db[_0x13c8('0x36')]['hasMany'](db['CannedAnswer'],{'as':'Answers','foreignKey':_0x13c8('0x154')});db['MailAccount'][_0x13c8('0x109')](db['MailMessage'],{'as':_0x13c8('0x159'),'foreignKey':'MailAccountId'});db['MailAccount'][_0x13c8('0x109')](db[_0x13c8('0x3a')],{'as':'Interactions'});db[_0x13c8('0x36')][_0x13c8('0x109')](db[_0x13c8('0x3d')],{'as':_0x13c8('0x13d')});db[_0x13c8('0x36')]['belongsTo'](db[_0x13c8('0xf1')],{'as':_0x13c8('0x15a'),'foreignKey':_0x13c8('0x15b')});db[_0x13c8('0x36')][_0x13c8('0x114')](db['Template'],{'as':_0x13c8('0x89'),'foreignKey':'TemplateId'});db[_0x13c8('0x36')][_0x13c8('0x114')](db[_0x13c8('0x7d')],{'as':'mandatoryDispositionPause','foreignKey':_0x13c8('0x15c')});db[_0x13c8('0x36')][_0x13c8('0x118')](db['User'],{'as':'Agents','through':'user_has_mail_accounts'});db[_0x13c8('0x38')]['belongsToMany'](db[_0x13c8('0x12')],{'as':_0x13c8('0x148'),'through':_0x13c8('0x128')});db[_0x13c8('0x38')][_0x13c8('0x118')](db[_0x13c8('0xe1')],{'through':'team_has_mail_queues','as':_0x13c8('0x15d')});db[_0x13c8('0x3a')][_0x13c8('0x109')](db[_0x13c8('0x3b')],{'as':_0x13c8('0x159'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x15e')});db[_0x13c8('0x3a')][_0x13c8('0x114')](db[_0x13c8('0x36')],{'as':'Account','foreignKey':'MailAccountId'});db['MailInteraction']['belongsTo'](db['CmContact'],{'as':_0x13c8('0x15f'),'foreignKey':_0x13c8('0x153')});db[_0x13c8('0x3a')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'as':_0x13c8('0x160'),'foreignKey':_0x13c8('0x108')});db[_0x13c8('0x3a')]['belongsToMany'](db[_0x13c8('0x87')],{'through':_0x13c8('0x161'),'as':_0x13c8('0x162')});db['MailInteraction']['belongsToMany'](db[_0x13c8('0x87')],{'through':_0x13c8('0x161'),'as':_0x13c8('0x163')});db[_0x13c8('0x3a')][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':'Users','through':_0x13c8('0x11d'),'foreignKey':'MailInteractionId'});db[_0x13c8('0x3b')][_0x13c8('0x109')](db[_0x13c8('0xe6')],{'as':'Attachments','onDelete':_0x13c8('0x107')});db['MailMessage']['belongsTo'](db[_0x13c8('0x12')],{'as':_0x13c8('0x12')});db[_0x13c8('0x3b')][_0x13c8('0x114')](db[_0x13c8('0x68')],{'onDelete':_0x13c8('0x107'),'as':_0x13c8('0x15f')});db['MailMessage'][_0x13c8('0x114')](db[_0x13c8('0x3a')],{'as':_0x13c8('0x164'),'foreignKey':_0x13c8('0x15e')});db[_0x13c8('0x3b')][_0x13c8('0x114')](db[_0x13c8('0x36')],{'as':'Account','foreignKey':_0x13c8('0x154')});db[_0x13c8('0x3b')]['belongsTo'](db['ChatWebsite'],{'as':_0x13c8('0x5d'),'foreignKey':_0x13c8('0x165')});db[_0x13c8('0x3b')][_0x13c8('0x114')](db[_0x13c8('0x61')],{'as':_0x13c8('0x61'),'foreignKey':_0x13c8('0x166')});db[_0x13c8('0x3d')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'onDelete':_0x13c8('0x167')});db[_0x13c8('0x3d')][_0x13c8('0x114')](db[_0x13c8('0x38')],{'onDelete':_0x13c8('0x167')});db[_0x13c8('0x3d')][_0x13c8('0x114')](db[_0x13c8('0x36')],{'onDelete':_0x13c8('0x167')});db[_0x13c8('0x3d')]['belongsTo'](db[_0x13c8('0x7c')],{'onDelete':_0x13c8('0x167'),'foreignKey':_0x13c8('0x146')});db[_0x13c8('0x3d')]['belongsTo'](db[_0x13c8('0x87')],{'onDelete':'restrict','foreignKey':_0x13c8('0x168')});db[_0x13c8('0x3f')][_0x13c8('0x114')](db[_0x13c8('0x36')],{});db['MailQueueReport'][_0x13c8('0x114')](db[_0x13c8('0xf1')],{'as':'List','foreignKey':_0x13c8('0x15b')});db[_0x13c8('0x3f')][_0x13c8('0x114')](db[_0x13c8('0x68')],{'as':'Contact','foreignKey':_0x13c8('0x153')});db[_0x13c8('0x3f')][_0x13c8('0x114')](db[_0x13c8('0x3a')],{});db[_0x13c8('0x3f')][_0x13c8('0x114')](db['MailMessage'],{});db[_0x13c8('0x3f')]['belongsTo'](db[_0x13c8('0x12')],{});db['MailQueueReport'][_0x13c8('0x114')](db[_0x13c8('0x38')],{});db['Dashboard'][_0x13c8('0x109')](db[_0x13c8('0x43')],{'as':'Items','onDelete':_0x13c8('0x107')});db[_0x13c8('0x45')][_0x13c8('0x109')](db['Disposition'],{'as':_0x13c8('0x158'),'foreignKey':_0x13c8('0x169'),'onDelete':_0x13c8('0x107')});db[_0x13c8('0x45')]['hasMany'](db[_0x13c8('0x16a')],{'as':_0x13c8('0x16b'),'foreignKey':_0x13c8('0x169')});db['FaxAccount'][_0x13c8('0x109')](db[_0x13c8('0x49')],{'as':_0x13c8('0x16c')});db['FaxAccount'][_0x13c8('0x109')](db[_0x13c8('0x47')],{'as':'Applications'});db['FaxAccount']['hasMany'](db[_0x13c8('0x18')],{'as':'Exntensions','onDelete':'cascade'});db[_0x13c8('0x45')][_0x13c8('0x109')](db['FaxMessage'],{'as':_0x13c8('0x159')});db[_0x13c8('0x45')]['belongsTo'](db[_0x13c8('0x28')],{'as':_0x13c8('0x28')});db[_0x13c8('0x45')][_0x13c8('0x114')](db[_0x13c8('0xf1')],{'as':_0x13c8('0x15a'),'foreignKey':_0x13c8('0x15b')});db['FaxAccount'][_0x13c8('0x114')](db[_0x13c8('0x7d')],{'as':_0x13c8('0x147'),'foreignKey':'mandatoryDispositionPauseId'});db['FaxAccount'][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':_0x13c8('0x148'),'through':_0x13c8('0x134')});db[_0x13c8('0x47')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'onDelete':_0x13c8('0x167')});db[_0x13c8('0x47')][_0x13c8('0x114')](db[_0x13c8('0x12a')],{'onDelete':_0x13c8('0x167')});db[_0x13c8('0x47')][_0x13c8('0x114')](db[_0x13c8('0x45')],{'onDelete':_0x13c8('0x167')});db[_0x13c8('0x47')][_0x13c8('0x114')](db[_0x13c8('0x87')],{'onDelete':_0x13c8('0x167'),'foreignKey':_0x13c8('0x168')});db[_0x13c8('0x49')]['hasMany'](db[_0x13c8('0x16d')],{'as':_0x13c8('0x159'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x16e')});db[_0x13c8('0x49')][_0x13c8('0x114')](db['FaxAccount'],{'as':_0x13c8('0x16f'),'foreignKey':_0x13c8('0x169')});db[_0x13c8('0x49')]['belongsTo'](db[_0x13c8('0x68')],{'as':_0x13c8('0x15f'),'foreignKey':_0x13c8('0x153')});db[_0x13c8('0x49')][_0x13c8('0x114')](db['User'],{'as':_0x13c8('0x160'),'foreignKey':_0x13c8('0x108')});db[_0x13c8('0x49')][_0x13c8('0x118')](db[_0x13c8('0x87')],{'through':'fax_interaction_has_tags','as':_0x13c8('0x162')});db[_0x13c8('0x49')][_0x13c8('0x118')](db[_0x13c8('0x87')],{'through':'fax_interaction_has_tags','as':_0x13c8('0x163')});db[_0x13c8('0x49')]['belongsToMany'](db['User'],{'as':_0x13c8('0x170'),'through':'user_has_fax_interactions','foreignKey':_0x13c8('0x16e')});db[_0x13c8('0x16d')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'onDelete':_0x13c8('0x107'),'as':_0x13c8('0x12')});db[_0x13c8('0x16d')][_0x13c8('0x114')](db[_0x13c8('0x49')],{'as':_0x13c8('0x164'),'foreignKey':_0x13c8('0x16e')});db[_0x13c8('0x16d')][_0x13c8('0x114')](db[_0x13c8('0x68')],{'onDelete':'cascade','as':_0x13c8('0x15f')});db[_0x13c8('0x16d')][_0x13c8('0x114')](db[_0x13c8('0xe6')],{'as':_0x13c8('0xe6'),'foreignKey':_0x13c8('0x171')});db[_0x13c8('0x16d')][_0x13c8('0x114')](db[_0x13c8('0x45')],{'as':_0x13c8('0x16f'),'foreignKey':_0x13c8('0x169')});db[_0x13c8('0x12a')]['belongsToMany'](db[_0x13c8('0x12')],{'as':_0x13c8('0x148'),'through':_0x13c8('0x12c')});db[_0x13c8('0x12a')][_0x13c8('0x118')](db['Team'],{'through':_0x13c8('0x172'),'as':'Teams'});db['FaxQueueReport'][_0x13c8('0x114')](db[_0x13c8('0x45')],{});db[_0x13c8('0x173')][_0x13c8('0x114')](db[_0x13c8('0xf1')],{'as':_0x13c8('0x15a'),'foreignKey':_0x13c8('0x15b')});db[_0x13c8('0x173')][_0x13c8('0x114')](db[_0x13c8('0x68')],{'as':_0x13c8('0x15f'),'foreignKey':'ContactId'});db[_0x13c8('0x173')][_0x13c8('0x114')](db[_0x13c8('0x49')],{});db[_0x13c8('0x173')]['belongsTo'](db[_0x13c8('0x16d')],{});db[_0x13c8('0x173')][_0x13c8('0x114')](db[_0x13c8('0x12')],{});db['FaxQueueReport']['belongsTo'](db[_0x13c8('0x12a')],{});db[_0x13c8('0x4d')]['hasMany'](db[_0x13c8('0x78')],{'as':'Dispositions','foreignKey':'SmsAccountId','onDelete':'cascade'});db[_0x13c8('0x4d')]['hasMany'](db[_0x13c8('0x16a')],{'as':_0x13c8('0x16b'),'foreignKey':_0x13c8('0x174')});db['SmsAccount'][_0x13c8('0x109')](db[_0x13c8('0x52')],{'as':_0x13c8('0x159'),'foreignKey':'SmsAccountId'});db[_0x13c8('0x4d')][_0x13c8('0x109')](db[_0x13c8('0x111')],{'as':_0x13c8('0x16c')});db['SmsAccount']['hasMany'](db['SmsApplication'],{'as':'Applications'});db[_0x13c8('0x4d')][_0x13c8('0x114')](db[_0x13c8('0xf1')],{'as':'List','foreignKey':_0x13c8('0x15b')});db[_0x13c8('0x4d')]['belongsTo'](db[_0x13c8('0x7d')],{'as':_0x13c8('0x147'),'foreignKey':'mandatoryDispositionPauseId'});db[_0x13c8('0x4d')][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':_0x13c8('0x148'),'through':_0x13c8('0x136')});db[_0x13c8('0x4f')][_0x13c8('0x114')](db['User'],{'onDelete':_0x13c8('0x167')});db[_0x13c8('0x4f')][_0x13c8('0x114')](db['SmsQueue'],{'onDelete':'restrict'});db['SmsApplication']['belongsTo'](db['SmsAccount'],{'onDelete':_0x13c8('0x167')});db[_0x13c8('0x4f')][_0x13c8('0x114')](db[_0x13c8('0x7c')],{'onDelete':_0x13c8('0x167'),'foreignKey':_0x13c8('0x146')});db['SmsApplication'][_0x13c8('0x114')](db['Tag'],{'onDelete':_0x13c8('0x167'),'foreignKey':_0x13c8('0x168')});db[_0x13c8('0x111')][_0x13c8('0x109')](db['SmsMessage'],{'as':_0x13c8('0x159'),'onDelete':'cascade','foreignKey':_0x13c8('0x175')});db[_0x13c8('0x111')]['belongsTo'](db[_0x13c8('0x4d')],{'as':_0x13c8('0x16f'),'foreignKey':'SmsAccountId'});db[_0x13c8('0x111')][_0x13c8('0x114')](db[_0x13c8('0x68')],{'as':_0x13c8('0x15f'),'foreignKey':'ContactId'});db[_0x13c8('0x111')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'as':'Owner','foreignKey':_0x13c8('0x108')});db[_0x13c8('0x111')][_0x13c8('0x118')](db[_0x13c8('0x87')],{'through':_0x13c8('0x176'),'as':_0x13c8('0x162')});db['SmsInteraction'][_0x13c8('0x118')](db[_0x13c8('0x87')],{'through':_0x13c8('0x176'),'as':_0x13c8('0x163')});db['SmsInteraction']['belongsToMany'](db[_0x13c8('0x12')],{'as':'Users','through':_0x13c8('0x120'),'foreignKey':_0x13c8('0x175')});db['SmsMessage']['belongsTo'](db['User'],{'as':_0x13c8('0x12')});db['SmsMessage'][_0x13c8('0x114')](db[_0x13c8('0x68')],{'onDelete':_0x13c8('0x107'),'as':_0x13c8('0x15f')});db[_0x13c8('0x52')][_0x13c8('0x114')](db[_0x13c8('0x111')],{'onDelete':_0x13c8('0x107'),'as':_0x13c8('0x164'),'foreignKey':'SmsInteractionId'});db['SmsMessage'][_0x13c8('0x114')](db[_0x13c8('0x4d')],{'as':'Account','foreignKey':_0x13c8('0x174')});db[_0x13c8('0x54')][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':_0x13c8('0x148'),'through':_0x13c8('0x12e'),'foreignKey':_0x13c8('0x177')});db[_0x13c8('0x54')][_0x13c8('0x118')](db['Team'],{'through':_0x13c8('0x178'),'as':_0x13c8('0x15d')});db[_0x13c8('0x179')][_0x13c8('0x109')](db['Disposition'],{'as':_0x13c8('0x158'),'foreignKey':'OpenchannelAccountId','onDelete':_0x13c8('0x107')});db[_0x13c8('0x179')][_0x13c8('0x109')](db[_0x13c8('0x16a')],{'as':_0x13c8('0x16b'),'foreignKey':_0x13c8('0x17a')});db[_0x13c8('0x179')][_0x13c8('0x109')](db[_0x13c8('0x59')],{'as':_0x13c8('0x16c'),'foreignKey':_0x13c8('0x17a')});db[_0x13c8('0x179')]['hasMany'](db[_0x13c8('0x17b')],{'as':_0x13c8('0x159'),'foreignKey':_0x13c8('0x17a')});db['OpenchannelAccount'][_0x13c8('0x109')](db[_0x13c8('0x57')],{'as':'Applications','foreignKey':_0x13c8('0x17a')});db[_0x13c8('0x179')]['belongsTo'](db[_0x13c8('0xf1')],{'as':_0x13c8('0x15a'),'foreignKey':_0x13c8('0x15b')});db[_0x13c8('0x179')][_0x13c8('0x114')](db[_0x13c8('0x7d')],{'as':_0x13c8('0x147'),'foreignKey':_0x13c8('0x15c')});db[_0x13c8('0x179')][_0x13c8('0x118')](db['User'],{'as':_0x13c8('0x148'),'through':_0x13c8('0x135')});db[_0x13c8('0x57')]['belongsTo'](db[_0x13c8('0x12')],{'onDelete':_0x13c8('0x167')});db[_0x13c8('0x57')][_0x13c8('0x114')](db[_0x13c8('0x5c')],{'onDelete':_0x13c8('0x167'),'foreignKey':_0x13c8('0x17c')});db['OpenchannelApplication']['belongsTo'](db['OpenchannelAccount'],{'onDelete':_0x13c8('0x167'),'foreignKey':_0x13c8('0x17a')});db['OpenchannelApplication'][_0x13c8('0x114')](db[_0x13c8('0x7c')],{'onDelete':_0x13c8('0x167'),'foreignKey':_0x13c8('0x146')});db['OpenchannelApplication'][_0x13c8('0x114')](db[_0x13c8('0x87')],{'onDelete':_0x13c8('0x167'),'foreignKey':'TagId'});db[_0x13c8('0x59')]['hasMany'](db[_0x13c8('0x17b')],{'as':'Messages','onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x17d')});db[_0x13c8('0x59')][_0x13c8('0x114')](db[_0x13c8('0x179')],{'as':'Account','foreignKey':_0x13c8('0x17a')});db['OpenchannelInteraction'][_0x13c8('0x114')](db[_0x13c8('0x68')],{'as':'Contact','foreignKey':'ContactId'});db[_0x13c8('0x59')]['belongsTo'](db[_0x13c8('0x12')],{'as':_0x13c8('0x160'),'foreignKey':_0x13c8('0x108')});db['OpenchannelInteraction'][_0x13c8('0x118')](db[_0x13c8('0x87')],{'through':_0x13c8('0x17e'),'as':'Tags'});db[_0x13c8('0x59')][_0x13c8('0x118')](db[_0x13c8('0x87')],{'through':_0x13c8('0x17e'),'as':'ThroughTags'});db[_0x13c8('0x59')]['belongsToMany'](db[_0x13c8('0x12')],{'as':_0x13c8('0x170'),'through':'user_has_openchannel_interactions','foreignKey':'OpenchannelInteractionId'});db[_0x13c8('0x17b')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'onDelete':'cascade','as':'User'});db['OpenchannelMessage'][_0x13c8('0x114')](db[_0x13c8('0x68')],{'onDelete':_0x13c8('0x107'),'as':_0x13c8('0x15f')});db[_0x13c8('0x17b')][_0x13c8('0x114')](db[_0x13c8('0x59')],{'onDelete':_0x13c8('0x107'),'as':'Interaction','foreignKey':_0x13c8('0x17d')});db[_0x13c8('0x17b')][_0x13c8('0x114')](db['Attachment'],{'as':_0x13c8('0xe6'),'foreignKey':'AttachmentId'});db[_0x13c8('0x17b')]['belongsTo'](db[_0x13c8('0x179')],{'as':'Account','foreignKey':_0x13c8('0x17a')});db[_0x13c8('0x5c')][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':_0x13c8('0x148'),'through':_0x13c8('0x32'),'foreignKey':_0x13c8('0x17c')});db['OpenchannelQueue'][_0x13c8('0x118')](db[_0x13c8('0xe1')],{'through':_0x13c8('0x17f'),'as':_0x13c8('0x15d')});db[_0x13c8('0x5d')][_0x13c8('0x109')](db[_0x13c8('0x78')],{'as':_0x13c8('0x158'),'foreignKey':_0x13c8('0x165'),'onDelete':'cascade'});db[_0x13c8('0x5d')]['hasMany'](db[_0x13c8('0x16a')],{'as':_0x13c8('0x16b'),'foreignKey':_0x13c8('0x165')});db['ChatWebsite'][_0x13c8('0x109')](db[_0x13c8('0x180')],{'as':_0x13c8('0x181')});db[_0x13c8('0x5d')]['hasMany'](db['ChatInteraction'],{'as':_0x13c8('0x16c')});db['ChatWebsite'][_0x13c8('0x109')](db[_0x13c8('0x5e')],{'as':'Applications'});db['ChatWebsite']['hasMany'](db[_0x13c8('0x182')],{'as':_0x13c8('0x159')});db[_0x13c8('0x5d')]['belongsTo'](db['CmList'],{'as':_0x13c8('0x15a'),'foreignKey':_0x13c8('0x15b')});db[_0x13c8('0x5d')][_0x13c8('0x114')](db[_0x13c8('0x7c')],{'as':'Interval','foreignKey':_0x13c8('0x146')});db[_0x13c8('0x5d')][_0x13c8('0x114')](db[_0x13c8('0x36')],{'as':_0x13c8('0x36'),'foreignKey':_0x13c8('0x154')});db['ChatWebsite'][_0x13c8('0x114')](db['Pause'],{'as':_0x13c8('0x147'),'foreignKey':'mandatoryDispositionPauseId'});db['ChatWebsite'][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':'Agents','through':'user_has_chat_websites'});db[_0x13c8('0x183')][_0x13c8('0x114')](db['OpenchannelAccount'],{});db[_0x13c8('0x183')][_0x13c8('0x114')](db[_0x13c8('0xf1')],{'as':_0x13c8('0x15a'),'foreignKey':'ListId'});db[_0x13c8('0x183')][_0x13c8('0x114')](db['CmContact'],{'as':_0x13c8('0x15f'),'foreignKey':_0x13c8('0x153')});db['OpenchannelQueueReport'][_0x13c8('0x114')](db[_0x13c8('0x59')],{});db[_0x13c8('0x183')][_0x13c8('0x114')](db['OpenchannelMessage'],{});db[_0x13c8('0x183')]['belongsTo'](db[_0x13c8('0x12')],{});db[_0x13c8('0x183')][_0x13c8('0x114')](db[_0x13c8('0x5c')],{});db['ChatApplication'][_0x13c8('0x114')](db[_0x13c8('0x12')],{'as':'Agent','foreignKey':'UserId','onDelete':'restrict'});db[_0x13c8('0x5e')][_0x13c8('0x114')](db[_0x13c8('0x63')],{'as':_0x13c8('0x184'),'foreignKey':_0x13c8('0x185'),'onDelete':_0x13c8('0x167')});db[_0x13c8('0x5e')][_0x13c8('0x114')](db[_0x13c8('0x5d')],{'as':'Website','foreignKey':'ChatWebsiteId','onDelete':_0x13c8('0x167')});db[_0x13c8('0x5e')][_0x13c8('0x114')](db[_0x13c8('0x87')],{'onDelete':_0x13c8('0x167'),'foreignKey':_0x13c8('0x168')});db['ChatInteraction'][_0x13c8('0x109')](db['ChatMessage'],{'as':_0x13c8('0x159'),'onDelete':_0x13c8('0x107'),'foreignKey':'ChatInteractionId'});db['ChatInteraction'][_0x13c8('0x114')](db[_0x13c8('0x5d')],{'as':_0x13c8('0x16f'),'foreignKey':_0x13c8('0x165')});db[_0x13c8('0x10f')][_0x13c8('0x114')](db[_0x13c8('0x68')],{'as':'Contact','foreignKey':_0x13c8('0x153')});db[_0x13c8('0x10f')]['belongsTo'](db['User'],{'as':_0x13c8('0x160'),'foreignKey':'UserId'});db['ChatInteraction'][_0x13c8('0x118')](db[_0x13c8('0x87')],{'through':'chat_interaction_has_tags','as':_0x13c8('0x162')});db[_0x13c8('0x10f')]['belongsToMany'](db[_0x13c8('0x87')],{'through':_0x13c8('0x186'),'as':'ThroughTags'});db['ChatInteraction'][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':'Users','through':_0x13c8('0x11e'),'foreignKey':_0x13c8('0x187')});db[_0x13c8('0x182')]['belongsTo'](db[_0x13c8('0x12')],{'onDelete':_0x13c8('0x107'),'as':_0x13c8('0x12')});db['ChatMessage'][_0x13c8('0x114')](db[_0x13c8('0x68')],{'onDelete':_0x13c8('0x107'),'as':'Contact','foreignKey':_0x13c8('0x153')});db[_0x13c8('0x182')][_0x13c8('0x114')](db['ChatInteraction'],{'onDelete':_0x13c8('0x107'),'as':_0x13c8('0x164'),'foreignKey':_0x13c8('0x187')});db[_0x13c8('0x182')][_0x13c8('0x114')](db[_0x13c8('0xe6')],{'as':'Attachment','foreignKey':_0x13c8('0x171')});db[_0x13c8('0x182')][_0x13c8('0x114')](db['ChatWebsite'],{'as':_0x13c8('0x16f'),'foreignKey':'ChatWebsiteId'});db[_0x13c8('0x61')][_0x13c8('0x109')](db['Attachment'],{'as':_0x13c8('0x188'),'foreignKey':_0x13c8('0x166'),'onDelete':_0x13c8('0x107'),'hooks':!![]});db[_0x13c8('0x61')][_0x13c8('0x114')](db['CmContact'],{'onDelete':'cascade','as':_0x13c8('0x15f'),'foreignKey':_0x13c8('0x153')});db[_0x13c8('0x61')][_0x13c8('0x114')](db['ChatWebsite'],{'as':_0x13c8('0x16f'),'foreignKey':_0x13c8('0x165')});db[_0x13c8('0x63')][_0x13c8('0x118')](db['User'],{'as':_0x13c8('0x148'),'through':_0x13c8('0x2d'),'hooks':!![]});db[_0x13c8('0x63')][_0x13c8('0x118')](db[_0x13c8('0xe1')],{'through':_0x13c8('0x189'),'as':_0x13c8('0x15d')});db[_0x13c8('0x64')]['hasMany'](db[_0x13c8('0xcf')],{'as':'Messages','foreignKey':_0x13c8('0x18a'),'onDelete':_0x13c8('0x107')});db[_0x13c8('0x64')][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':'Members','through':'chat_group_has_users'});db[_0x13c8('0x180')]['belongsTo'](db[_0x13c8('0x5d')],{'as':_0x13c8('0x18b'),'foreignKey':'ChatWebsiteId'});db[_0x13c8('0x66')]['hasMany'](db[_0x13c8('0x68')],{'as':'Contacts','foreignKey':_0x13c8('0x18c')});db['CmContact']['hasMany'](db[_0x13c8('0x6a')],{'as':_0x13c8('0x141'),'foreignKey':_0x13c8('0x153')});db[_0x13c8('0x68')][_0x13c8('0x109')](db[_0x13c8('0x6d')],{'as':'HopperFinals','foreignKey':_0x13c8('0x153')});db['CmContact'][_0x13c8('0x109')](db[_0x13c8('0x6f')],{'as':_0x13c8('0x18d'),'foreignKey':_0x13c8('0x153')});db['CmContact'][_0x13c8('0x109')](db[_0x13c8('0x71')],{'as':'ReportAgentPreview','foreignKey':_0x13c8('0x153')});db[_0x13c8('0x68')]['hasMany'](db['JscriptySessionReport'],{'as':_0x13c8('0x142'),'foreignKey':_0x13c8('0x153')});db[_0x13c8('0x68')][_0x13c8('0x109')](db[_0x13c8('0x59')],{'as':_0x13c8('0x10e'),'foreignKey':_0x13c8('0x153'),'onDelete':'restrict'});db[_0x13c8('0x68')][_0x13c8('0x109')](db['ChatInteraction'],{'as':'ChatInteractions','foreignKey':'ContactId','onDelete':_0x13c8('0x167')});db['CmContact'][_0x13c8('0x109')](db[_0x13c8('0x111')],{'as':_0x13c8('0x112'),'foreignKey':_0x13c8('0x153'),'onDelete':_0x13c8('0x167')});db[_0x13c8('0x68')][_0x13c8('0x109')](db[_0x13c8('0x49')],{'as':_0x13c8('0x18e'),'foreignKey':_0x13c8('0x153'),'onDelete':'restrict'});db[_0x13c8('0x68')][_0x13c8('0x109')](db['MailInteraction'],{'as':'MailInteractions','foreignKey':_0x13c8('0x153'),'onDelete':_0x13c8('0x167')});db['CmContact'][_0x13c8('0x114')](db['CmCompany'],{'as':_0x13c8('0x18f'),'foreignKey':_0x13c8('0x18c')});db['CmContact']['belongsTo'](db['CmList'],{'as':'List','foreignKey':_0x13c8('0x15b'),'onDelete':'cascade'});db[_0x13c8('0x68')][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':'Users','through':_0x13c8('0x11a')});db[_0x13c8('0x68')][_0x13c8('0x118')](db[_0x13c8('0x87')],{'as':_0x13c8('0x162'),'through':_0x13c8('0x190')});db['CmContact'][_0x13c8('0x118')](db[_0x13c8('0x87')],{'through':_0x13c8('0x190'),'as':_0x13c8('0x163')});db[_0x13c8('0x6a')]['belongsTo'](db[_0x13c8('0x68')],{'as':_0x13c8('0x15f'),'foreignKey':'ContactId','onDelete':'cascade'});db['CmHopper'][_0x13c8('0x114')](db[_0x13c8('0xf1')],{'as':_0x13c8('0x15a'),'foreignKey':_0x13c8('0x15b'),'onDelete':_0x13c8('0x107')});db[_0x13c8('0x6a')]['belongsTo'](db[_0x13c8('0x12')],{'as':'Agent','foreignKey':_0x13c8('0x108')});db[_0x13c8('0x6a')][_0x13c8('0x114')](db[_0x13c8('0x1b')],{'as':_0x13c8('0x184'),'foreignKey':_0x13c8('0x140'),'onDelete':_0x13c8('0x107')});db[_0x13c8('0x6a')][_0x13c8('0x114')](db['Campaign'],{'as':_0x13c8('0xe3'),'foreignKey':_0x13c8('0x191'),'onDelete':'cascade'});db[_0x13c8('0x6a')][_0x13c8('0x114')](db['User'],{'as':_0x13c8('0x160'),'foreignKey':_0x13c8('0x192')});db['CmHopperBlack'][_0x13c8('0x114')](db[_0x13c8('0x68')],{'as':'Contact','foreignKey':'ContactId','onDelete':_0x13c8('0x107')});db[_0x13c8('0x6c')][_0x13c8('0x114')](db[_0x13c8('0xf1')],{'as':_0x13c8('0x15a'),'foreignKey':_0x13c8('0x15b'),'onDelete':_0x13c8('0x107')});db['CmHopperBlack'][_0x13c8('0x114')](db[_0x13c8('0x1b')],{'as':_0x13c8('0x184'),'foreignKey':_0x13c8('0x140'),'onDelete':'cascade'});db['CmHopperBlack'][_0x13c8('0x114')](db[_0x13c8('0xe3')],{'as':_0x13c8('0xe3'),'foreignKey':_0x13c8('0x191'),'onDelete':'cascade'});db[_0x13c8('0x76')][_0x13c8('0x109')](db[_0x13c8('0x7a')],{'as':{'plural':_0x13c8('0x193'),'singular':'OneAll'},'foreignKey':_0x13c8('0x194'),'onDelete':_0x13c8('0x107'),'hooks':!![]});db[_0x13c8('0x76')][_0x13c8('0x109')](db['Condition'],{'as':{'plural':'Any','singular':'OneAny'},'foreignKey':'AutomationAnyId','onDelete':_0x13c8('0x107'),'hooks':!![]});db[_0x13c8('0x76')][_0x13c8('0x109')](db['Action'],{'as':_0x13c8('0x195'),'foreignKey':_0x13c8('0x196'),'onDelete':_0x13c8('0x107'),'hooks':!![]});db[_0x13c8('0x78')]['hasMany'](db[_0x13c8('0x78')],{'as':_0x13c8('0x158'),'foreignKey':'ParentId','onDelete':_0x13c8('0x107')});db[_0x13c8('0x7c')][_0x13c8('0x109')](db[_0x13c8('0x7c')],{'as':_0x13c8('0x197'),'foreignKey':_0x13c8('0x146'),'onDelete':_0x13c8('0x107'),'hooks':!![],'required':![]});db[_0x13c8('0x7c')][_0x13c8('0x109')](db[_0x13c8('0x18')],{'as':_0x13c8('0x198'),'foreignKey':_0x13c8('0x146'),'onDelete':_0x13c8('0x167')});db['Interval'][_0x13c8('0x109')](db[_0x13c8('0x3d')],{'as':_0x13c8('0x199'),'foreignKey':_0x13c8('0x146')});db[_0x13c8('0x7c')][_0x13c8('0x109')](db[_0x13c8('0x5e')],{'as':'ChatApplications','foreignKey':_0x13c8('0x146')});db[_0x13c8('0x7c')][_0x13c8('0x109')](db[_0x13c8('0x47')],{'as':_0x13c8('0x19a'),'foreignKey':'IntervalId'});db[_0x13c8('0x7c')]['hasMany'](db[_0x13c8('0x4f')],{'as':_0x13c8('0x19b'),'foreignKey':'IntervalId'});db[_0x13c8('0x83')][_0x13c8('0x114')](db[_0x13c8('0x36')],{});db[_0x13c8('0x83')][_0x13c8('0x114')](db[_0x13c8('0x19c')],{'foreignKey':_0x13c8('0x19d')});db[_0x13c8('0x83')]['belongsTo'](db[_0x13c8('0x92')],{'foreignKey':'CustomReportId'});db[_0x13c8('0x85')]['belongsToMany'](db['VoiceMusicOnHold'],{'as':_0x13c8('0x19e'),'through':'moh_has_sounds','onDelete':'restrict'});db[_0x13c8('0x87')][_0x13c8('0x118')](db[_0x13c8('0x68')],{'through':_0x13c8('0x190')});db[_0x13c8('0x87')]['belongsToMany'](db[_0x13c8('0x10f')],{'through':_0x13c8('0x186')});db[_0x13c8('0x87')]['belongsToMany'](db['MailInteraction'],{'through':_0x13c8('0x161')});db[_0x13c8('0x87')]['belongsToMany'](db[_0x13c8('0x111')],{'through':'sms_interaction_has_tags'});db[_0x13c8('0x87')][_0x13c8('0x118')](db[_0x13c8('0x49')],{'through':_0x13c8('0x19f')});db[_0x13c8('0x87')][_0x13c8('0x118')](db[_0x13c8('0x59')],{'through':_0x13c8('0x17e')});db[_0x13c8('0x87')][_0x13c8('0x118')](db['WhatsappInteraction'],{'through':_0x13c8('0x1a0')});db['Trigger'][_0x13c8('0x109')](db[_0x13c8('0x7a')],{'as':{'plural':_0x13c8('0x1a1'),'singular':'AllCondition'},'foreignKey':_0x13c8('0x1a2'),'onDelete':_0x13c8('0x107'),'hooks':!![]});db['Trigger'][_0x13c8('0x109')](db[_0x13c8('0x7a')],{'as':{'plural':'AnyConditions','singular':_0x13c8('0x1a3')},'foreignKey':_0x13c8('0x1a4'),'onDelete':_0x13c8('0x107'),'hooks':!![]});db[_0x13c8('0x8b')][_0x13c8('0x109')](db[_0x13c8('0x75')],{'as':_0x13c8('0x195'),'foreignKey':_0x13c8('0x1a5'),'onDelete':'cascade','hooks':!![]});db[_0x13c8('0x92')]['hasMany'](db[_0x13c8('0x98')],{'as':_0x13c8('0x1a6'),'onDelete':_0x13c8('0x107'),'foreignKey':'CustomReportId','hooks':!![]});db[_0x13c8('0x19c')][_0x13c8('0x109')](db[_0x13c8('0x98')],{'as':_0x13c8('0x1a6'),'onDelete':_0x13c8('0x107'),'foreignKey':'DefaultReportId'});db[_0x13c8('0x96')][_0x13c8('0x109')](db[_0x13c8('0x98')],{'as':_0x13c8('0x1a6'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1a7')});db[_0x13c8('0x98')]['belongsTo'](db['AnalyticMetric'],{'foreignKey':'MetricId'});db[_0x13c8('0x9c')][_0x13c8('0x109')](db['SalesforceConfiguration'],{'as':'Configurations','onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1a8')});db[_0x13c8('0x9e')][_0x13c8('0x109')](db[_0x13c8('0xa0')],{'as':_0x13c8('0x1a9'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1aa')});db[_0x13c8('0x9e')][_0x13c8('0x109')](db[_0x13c8('0xa0')],{'as':'Descriptions','onDelete':'cascade','foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0x9e')]['hasMany'](db['SalesforceField'],{'as':_0x13c8('0x1a6'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1ac')});db['SalesforceConfiguration'][_0x13c8('0x114')](db[_0x13c8('0x9c')],{'as':_0x13c8('0x16f'),'foreignKey':_0x13c8('0x1a8')});db[_0x13c8('0xa0')][_0x13c8('0x109')](db[_0x13c8('0xa0')],{'as':_0x13c8('0x1ad'),'foreignKey':_0x13c8('0x1aa')});db[_0x13c8('0xa0')][_0x13c8('0x109')](db['SalesforceField'],{'as':_0x13c8('0x1ae'),'foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0xa0')]['hasMany'](db['SalesforceField'],{'as':_0x13c8('0x1af'),'foreignKey':_0x13c8('0x1ac')});db['SalesforceField']['belongsTo'](db[_0x13c8('0x8d')],{'as':_0x13c8('0x8d'),'foreignKey':_0x13c8('0x1b0')});db[_0x13c8('0xa1')][_0x13c8('0x109')](db[_0x13c8('0xa3')],{'as':'Configurations','onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1a8')});db[_0x13c8('0xa3')][_0x13c8('0x109')](db[_0x13c8('0xa4')],{'as':_0x13c8('0x1a9'),'onDelete':'cascade','foreignKey':_0x13c8('0x1aa')});db[_0x13c8('0xa3')][_0x13c8('0x109')](db[_0x13c8('0xa4')],{'as':_0x13c8('0x1b1'),'onDelete':_0x13c8('0x107'),'foreignKey':'DescriptionId'});db[_0x13c8('0xa3')][_0x13c8('0x109')](db['SugarcrmField'],{'as':_0x13c8('0x1a6'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0xa3')][_0x13c8('0x114')](db[_0x13c8('0xa1')],{'as':_0x13c8('0x16f'),'foreignKey':'AccountId'});db[_0x13c8('0xa4')][_0x13c8('0x109')](db[_0x13c8('0xa4')],{'as':_0x13c8('0x1ad'),'foreignKey':_0x13c8('0x1aa')});db['SugarcrmField'][_0x13c8('0x109')](db[_0x13c8('0xa4')],{'as':'Description','foreignKey':'DescriptionId'});db['SugarcrmField']['hasMany'](db[_0x13c8('0xa4')],{'as':_0x13c8('0x1af'),'foreignKey':_0x13c8('0x1ac')});db['SugarcrmField'][_0x13c8('0x114')](db[_0x13c8('0x8d')],{'as':_0x13c8('0x8d'),'foreignKey':_0x13c8('0x1b0')});db[_0x13c8('0xa6')]['hasMany'](db[_0x13c8('0x1b2')],{'as':_0x13c8('0x1b3'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1a8')});db[_0x13c8('0x1b2')]['hasMany'](db[_0x13c8('0xa8')],{'as':_0x13c8('0x1a9'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1aa')});db[_0x13c8('0x1b2')][_0x13c8('0x109')](db[_0x13c8('0xa8')],{'as':'Descriptions','onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0x1b2')][_0x13c8('0x109')](db[_0x13c8('0xa8')],{'as':_0x13c8('0x1a6'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0x1b2')]['belongsTo'](db[_0x13c8('0xa6')],{'as':_0x13c8('0x16f'),'foreignKey':'AccountId'});db[_0x13c8('0x1b2')][_0x13c8('0x118')](db['Tag'],{'through':_0x13c8('0x1b4')});db[_0x13c8('0xa8')][_0x13c8('0x109')](db[_0x13c8('0xa8')],{'as':'Subject','foreignKey':'SubjectId'});db[_0x13c8('0xa8')][_0x13c8('0x109')](db['DeskField'],{'as':'Description','foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0xa8')]['hasMany'](db[_0x13c8('0xa8')],{'as':_0x13c8('0x1af'),'foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0xa8')][_0x13c8('0x114')](db['Variable'],{'as':_0x13c8('0x8d'),'foreignKey':_0x13c8('0x1b0')});db['ZohoAccount'][_0x13c8('0x109')](db[_0x13c8('0xab')],{'as':_0x13c8('0x1b3'),'onDelete':_0x13c8('0x107'),'foreignKey':'AccountId'});db[_0x13c8('0xab')][_0x13c8('0x109')](db[_0x13c8('0x1b5')],{'as':_0x13c8('0x1a9'),'onDelete':_0x13c8('0x107'),'foreignKey':'SubjectId'});db['ZohoConfiguration'][_0x13c8('0x109')](db[_0x13c8('0x1b5')],{'as':_0x13c8('0x1b1'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0xab')][_0x13c8('0x109')](db[_0x13c8('0x1b5')],{'as':_0x13c8('0x1a6'),'onDelete':'cascade','foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0xab')][_0x13c8('0x114')](db[_0x13c8('0x1b6')],{'as':'Account','foreignKey':_0x13c8('0x1a8')});db['ZohoField'][_0x13c8('0x109')](db[_0x13c8('0x1b5')],{'as':_0x13c8('0x1ad'),'foreignKey':'SubjectId'});db[_0x13c8('0x1b5')]['hasMany'](db[_0x13c8('0x1b5')],{'as':_0x13c8('0x1ae'),'foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0x1b5')]['hasMany'](db[_0x13c8('0x1b5')],{'as':_0x13c8('0x1af'),'foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0x1b5')][_0x13c8('0x114')](db[_0x13c8('0x8d')],{'as':'Variable','foreignKey':_0x13c8('0x1b0')});db['ZendeskAccount'][_0x13c8('0x109')](db[_0x13c8('0xaf')],{'as':_0x13c8('0x1b3'),'onDelete':'cascade','foreignKey':'AccountId'});db[_0x13c8('0xaf')][_0x13c8('0x109')](db[_0x13c8('0x1b7')],{'as':_0x13c8('0x1a9'),'foreignKey':_0x13c8('0x1aa')});db[_0x13c8('0xaf')][_0x13c8('0x109')](db[_0x13c8('0x1b7')],{'as':'Descriptions','foreignKey':'DescriptionId'});db[_0x13c8('0xaf')][_0x13c8('0x109')](db[_0x13c8('0x1b7')],{'as':'Fields','foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0xaf')]['belongsTo'](db['ZendeskAccount'],{'as':_0x13c8('0x16f'),'foreignKey':_0x13c8('0x1a8')});db['ZendeskConfiguration']['belongsToMany'](db['Tag'],{'through':'int_zendesk_configuration_has_tags'});db['ZendeskField'][_0x13c8('0x109')](db['ZendeskField'],{'as':_0x13c8('0x1ad'),'foreignKey':'SubjectId'});db['ZendeskField'][_0x13c8('0x109')](db[_0x13c8('0x1b7')],{'as':_0x13c8('0x1ae'),'foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0x1b7')][_0x13c8('0x109')](db[_0x13c8('0x1b7')],{'as':_0x13c8('0x1af'),'foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0x1b7')][_0x13c8('0x114')](db[_0x13c8('0x8d')],{'as':_0x13c8('0x8d'),'foreignKey':_0x13c8('0x1b0')});db['FreshdeskAccount'][_0x13c8('0x109')](db[_0x13c8('0xb3')],{'as':_0x13c8('0x1b3'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1a8')});db[_0x13c8('0xb3')][_0x13c8('0x109')](db['FreshdeskField'],{'as':_0x13c8('0x1a9'),'onDelete':'cascade','foreignKey':_0x13c8('0x1aa')});db[_0x13c8('0xb3')]['hasMany'](db['FreshdeskField'],{'as':'Descriptions','onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0xb3')][_0x13c8('0x109')](db[_0x13c8('0xb4')],{'as':_0x13c8('0x1a6'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1ac')});db['FreshdeskConfiguration'][_0x13c8('0x114')](db[_0x13c8('0xb1')],{'as':_0x13c8('0x16f'),'foreignKey':_0x13c8('0x1a8')});db[_0x13c8('0xb3')][_0x13c8('0x118')](db[_0x13c8('0x87')],{'through':_0x13c8('0x1b8')});db['FreshdeskField'][_0x13c8('0x109')](db[_0x13c8('0xb4')],{'as':_0x13c8('0x1ad'),'foreignKey':_0x13c8('0x1aa')});db['FreshdeskField'][_0x13c8('0x109')](db[_0x13c8('0xb4')],{'as':_0x13c8('0x1ae'),'foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0xb4')][_0x13c8('0x109')](db[_0x13c8('0xb4')],{'as':_0x13c8('0x1af'),'foreignKey':_0x13c8('0x1ac')});db['FreshdeskField']['belongsTo'](db['Variable'],{'as':_0x13c8('0x8d'),'foreignKey':_0x13c8('0x1b0')});db[_0x13c8('0xb6')]['hasMany'](db[_0x13c8('0xb8')],{'as':_0x13c8('0x1b3'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1a8')});db[_0x13c8('0xb8')]['hasMany'](db['VtigerField'],{'as':_0x13c8('0x1a9'),'foreignKey':_0x13c8('0x1aa')});db[_0x13c8('0xb8')][_0x13c8('0x109')](db[_0x13c8('0xba')],{'as':'Descriptions','foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0xb8')][_0x13c8('0x109')](db[_0x13c8('0xba')],{'as':_0x13c8('0x1a6'),'foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0xb8')][_0x13c8('0x114')](db[_0x13c8('0xb6')],{'as':_0x13c8('0x16f'),'foreignKey':_0x13c8('0x1a8')});db[_0x13c8('0xba')][_0x13c8('0x109')](db[_0x13c8('0xba')],{'as':_0x13c8('0x1ad'),'foreignKey':_0x13c8('0x1aa')});db[_0x13c8('0xba')][_0x13c8('0x109')](db[_0x13c8('0xba')],{'as':_0x13c8('0x1ae'),'foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0xba')]['hasMany'](db['VtigerField'],{'as':_0x13c8('0x1af'),'foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0xba')][_0x13c8('0x114')](db[_0x13c8('0x8d')],{'as':'Variable','foreignKey':_0x13c8('0x1b0')});db['ServicenowAccount'][_0x13c8('0x109')](db[_0x13c8('0xbe')],{'as':_0x13c8('0x1b3'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1a8')});db[_0x13c8('0xbe')]['hasMany'](db['ServicenowField'],{'as':_0x13c8('0x1a9'),'foreignKey':_0x13c8('0x1aa')});db['ServicenowConfiguration'][_0x13c8('0x109')](db[_0x13c8('0xc0')],{'as':_0x13c8('0x1b1'),'foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0xbe')]['hasMany'](db[_0x13c8('0xc0')],{'as':_0x13c8('0x1a6'),'foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0xbe')][_0x13c8('0x114')](db[_0x13c8('0xbc')],{'as':'Account','foreignKey':_0x13c8('0x1a8')});db['ServicenowField'][_0x13c8('0x109')](db[_0x13c8('0xc0')],{'as':_0x13c8('0x1ad'),'foreignKey':_0x13c8('0x1aa')});db[_0x13c8('0xc0')][_0x13c8('0x109')](db[_0x13c8('0xc0')],{'as':_0x13c8('0x1ae'),'foreignKey':'DescriptionId'});db[_0x13c8('0xc0')][_0x13c8('0x109')](db[_0x13c8('0xc0')],{'as':_0x13c8('0x1af'),'foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0xc0')][_0x13c8('0x114')](db[_0x13c8('0x8d')],{'as':_0x13c8('0x8d'),'foreignKey':_0x13c8('0x1b0')});db[_0x13c8('0xc2')]['hasMany'](db['Dynamics365Configuration'],{'as':_0x13c8('0x1b3'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1a8')});db[_0x13c8('0xc4')][_0x13c8('0x109')](db['Dynamics365Field'],{'as':_0x13c8('0x1a9'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x1aa')});db[_0x13c8('0xc4')]['hasMany'](db[_0x13c8('0xc6')],{'as':_0x13c8('0x1b1'),'onDelete':'cascade','foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0xc4')][_0x13c8('0x109')](db[_0x13c8('0xc6')],{'as':'Fields','onDelete':'cascade','foreignKey':'FieldId'});db[_0x13c8('0xc4')]['belongsTo'](db[_0x13c8('0xc2')],{'as':_0x13c8('0x16f'),'foreignKey':_0x13c8('0x1a8')});db[_0x13c8('0xc6')][_0x13c8('0x109')](db['Dynamics365Field'],{'as':_0x13c8('0x1ad'),'foreignKey':_0x13c8('0x1aa')});db['Dynamics365Field'][_0x13c8('0x109')](db[_0x13c8('0xc6')],{'as':_0x13c8('0x1ae'),'foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0xc6')][_0x13c8('0x109')](db[_0x13c8('0xc6')],{'as':_0x13c8('0x1af'),'foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0xc6')][_0x13c8('0x114')](db[_0x13c8('0x8d')],{'as':_0x13c8('0x8d'),'foreignKey':'VariableId'});db[_0x13c8('0xc8')][_0x13c8('0x109')](db[_0x13c8('0x1b9')],{'as':_0x13c8('0x1b3'),'onDelete':'cascade','foreignKey':_0x13c8('0x1a8')});db['FreshsalesConfiguration'][_0x13c8('0x109')](db[_0x13c8('0xca')],{'as':_0x13c8('0x1a9'),'foreignKey':'SubjectId'});db['FreshsalesConfiguration']['hasMany'](db[_0x13c8('0xca')],{'as':_0x13c8('0x1b1'),'foreignKey':_0x13c8('0x1ab')});db[_0x13c8('0x1b9')]['hasMany'](db[_0x13c8('0xca')],{'as':_0x13c8('0x1a6'),'foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0x1b9')][_0x13c8('0x114')](db['FreshsalesAccount'],{'as':'Account','foreignKey':'AccountId'});db[_0x13c8('0xca')][_0x13c8('0x109')](db['FreshsalesField'],{'as':_0x13c8('0x1ad'),'foreignKey':_0x13c8('0x1aa')});db[_0x13c8('0xca')][_0x13c8('0x109')](db['FreshsalesField'],{'as':_0x13c8('0x1ae'),'foreignKey':'DescriptionId'});db[_0x13c8('0xca')][_0x13c8('0x109')](db[_0x13c8('0xca')],{'as':_0x13c8('0x1af'),'foreignKey':_0x13c8('0x1ac')});db[_0x13c8('0xca')]['belongsTo'](db[_0x13c8('0x8d')],{'as':'Variable','foreignKey':_0x13c8('0x1b0')});db['ChatQueueReport']['belongsTo'](db['ChatWebsite'],{});db[_0x13c8('0xcd')][_0x13c8('0x114')](db[_0x13c8('0xf1')],{'as':_0x13c8('0x15a'),'foreignKey':'ListId'});db['ChatQueueReport']['belongsTo'](db[_0x13c8('0x68')],{'as':_0x13c8('0x15f'),'foreignKey':'ContactId'});db[_0x13c8('0xcd')][_0x13c8('0x114')](db['ChatInteraction'],{});db[_0x13c8('0xcd')][_0x13c8('0x114')](db[_0x13c8('0x182')],{});db[_0x13c8('0xcd')]['belongsTo'](db['User'],{});db[_0x13c8('0xcd')]['belongsTo'](db[_0x13c8('0x63')],{});db[_0x13c8('0xcf')]['belongsTo'](db[_0x13c8('0x12')],{'onDelete':_0x13c8('0x107'),'foreignKey':'FromId'});db[_0x13c8('0xcf')][_0x13c8('0x114')](db['User'],{'onDelete':'cascade','foreignKey':_0x13c8('0x1ba')});db['JscriptySessionReport']['hasMany'](db[_0x13c8('0xd1')],{'foreignKey':_0x13c8('0x1bb'),'onDelete':'cascade'});db[_0x13c8('0xd3')][_0x13c8('0x109')](db['JscriptyAnswerReport'],{'foreignKey':_0x13c8('0x1bb'),'onDelete':_0x13c8('0x107')});db[_0x13c8('0x1bc')][_0x13c8('0x114')](db[_0x13c8('0x4d')],{});db[_0x13c8('0x1bc')][_0x13c8('0x114')](db[_0x13c8('0xf1')],{'as':_0x13c8('0x15a'),'foreignKey':'ListId'});db[_0x13c8('0x1bc')][_0x13c8('0x114')](db['CmContact'],{'as':'Contact','foreignKey':_0x13c8('0x153')});db[_0x13c8('0x1bc')][_0x13c8('0x114')](db[_0x13c8('0x111')],{});db['SmsQueueReport']['belongsTo'](db[_0x13c8('0x52')],{});db[_0x13c8('0x1bc')][_0x13c8('0x114')](db[_0x13c8('0x12')],{});db['SmsQueueReport'][_0x13c8('0x114')](db[_0x13c8('0x54')],{});db[_0x13c8('0x1bd')][_0x13c8('0x109')](db[_0x13c8('0xd3')],{'foreignKey':_0x13c8('0x1be')});db[_0x13c8('0x1bd')][_0x13c8('0x109')](db[_0x13c8('0xd1')],{'foreignKey':'ProjectId'});db[_0x13c8('0x1bd')][_0x13c8('0x109')](db['JscriptyAnswerReport'],{'foreignKey':_0x13c8('0x1be')});db[_0x13c8('0xdc')][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':_0x13c8('0x170'),'through':_0x13c8('0x139')});db['Team'][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':_0x13c8('0x148'),'through':_0x13c8('0x11c')});db[_0x13c8('0xe1')][_0x13c8('0x118')](db['VoiceQueue'],{'through':'TeamVoiceQueue','as':_0x13c8('0x125')});db[_0x13c8('0xe1')]['belongsToMany'](db['MailQueue'],{'through':_0x13c8('0x1bf'),'as':_0x13c8('0x127')});db[_0x13c8('0xe1')][_0x13c8('0x118')](db[_0x13c8('0x63')],{'through':'team_has_chat_queues','as':'ChatQueues'});db[_0x13c8('0xe1')][_0x13c8('0x118')](db['FaxQueue'],{'through':_0x13c8('0x172'),'as':'FaxQueues'});db['Team'][_0x13c8('0x118')](db[_0x13c8('0x54')],{'through':_0x13c8('0x178'),'as':_0x13c8('0x12d')});db[_0x13c8('0xe1')][_0x13c8('0x118')](db[_0x13c8('0x5c')],{'through':_0x13c8('0x17f'),'as':'OpenchannelQueues'});db[_0x13c8('0xe1')][_0x13c8('0x118')](db['WhatsappQueue'],{'through':'team_has_whatsapp_queues','as':_0x13c8('0x1c0')});db[_0x13c8('0xe1')][_0x13c8('0x118')](db[_0x13c8('0x126')],{'through':_0x13c8('0x104'),'as':'VoicePrefixes'});db[_0x13c8('0xe3')][_0x13c8('0x109')](db[_0x13c8('0x6a')],{'as':_0x13c8('0x141'),'foreignKey':_0x13c8('0x191')});db[_0x13c8('0xe3')]['hasMany'](db[_0x13c8('0x6d')],{'as':'HopperFinals','foreignKey':_0x13c8('0x191')});db[_0x13c8('0xe3')]['hasMany'](db[_0x13c8('0x6f')],{'as':_0x13c8('0x18d'),'foreignKey':'CampaignId'});db[_0x13c8('0xe3')][_0x13c8('0x109')](db[_0x13c8('0x6c')],{'as':_0x13c8('0x1c1'),'foreignKey':_0x13c8('0x191')});db['Campaign'][_0x13c8('0x114')](db['Trunk'],{'as':_0x13c8('0x28'),'foreignKey':'TrunkId'});db[_0x13c8('0xe3')][_0x13c8('0x114')](db[_0x13c8('0x28')],{'as':_0x13c8('0x144'),'foreignKey':_0x13c8('0x145')});db[_0x13c8('0xe3')][_0x13c8('0x114')](db[_0x13c8('0x7c')],{'as':'Interval','foreignKey':'IntervalId'});db['Campaign'][_0x13c8('0x114')](db[_0x13c8('0xdc')],{'as':_0x13c8('0xdc'),'foreignKey':'SquareProjectId'});db[_0x13c8('0xe3')][_0x13c8('0x118')](db[_0x13c8('0xf1')],{'as':_0x13c8('0x1c2'),'through':'campaigns_has_cm_lists'});db[_0x13c8('0xe3')]['belongsToMany'](db[_0x13c8('0xf1')],{'as':_0x13c8('0x1c3'),'through':_0x13c8('0x1c4')});db[_0x13c8('0xe6')][_0x13c8('0x114')](db[_0x13c8('0x61')],{'as':'ChatOfflineMessage','foreignKey':_0x13c8('0x166')});db[_0x13c8('0xe9')][_0x13c8('0x114')](db['MailMessage'],{});db[_0x13c8('0xe9')][_0x13c8('0x114')](db[_0x13c8('0x3a')],{});db['MailTransferReport'][_0x13c8('0x114')](db[_0x13c8('0x36')],{'foreignKey':_0x13c8('0x1c5'),'as':_0x13c8('0x1c6')});db[_0x13c8('0xe9')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'foreignKey':_0x13c8('0x1c7'),'as':_0x13c8('0x1c8')});db[_0x13c8('0xe9')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'foreignKey':_0x13c8('0x1c9'),'as':_0x13c8('0x1ca')});db['MailTransferReport'][_0x13c8('0x114')](db[_0x13c8('0x38')],{'foreignKey':_0x13c8('0x1cb'),'as':_0x13c8('0x1cc')});db['MailTransferReport']['belongsTo'](db[_0x13c8('0x36')],{'foreignKey':_0x13c8('0x1cd'),'as':_0x13c8('0x1ce')});db[_0x13c8('0xeb')][_0x13c8('0x114')](db[_0x13c8('0x182')],{});db[_0x13c8('0xeb')][_0x13c8('0x114')](db[_0x13c8('0x10f')],{});db[_0x13c8('0xeb')]['belongsTo'](db['ChatWebsite'],{'foreignKey':_0x13c8('0x1cf'),'as':_0x13c8('0x1c6')});db['ChatTransferReport'][_0x13c8('0x114')](db[_0x13c8('0x12')],{'foreignKey':_0x13c8('0x1c7'),'as':_0x13c8('0x1c8')});db[_0x13c8('0xeb')]['belongsTo'](db[_0x13c8('0x12')],{'foreignKey':_0x13c8('0x1c9'),'as':'ToAgent'});db[_0x13c8('0xeb')][_0x13c8('0x114')](db['ChatQueue'],{'foreignKey':_0x13c8('0x1d0'),'as':'ToQueue'});db[_0x13c8('0xeb')][_0x13c8('0x114')](db['ChatWebsite'],{'foreignKey':_0x13c8('0x1d1'),'as':_0x13c8('0x1ce')});db[_0x13c8('0x1d2')][_0x13c8('0x114')](db[_0x13c8('0x16d')],{});db[_0x13c8('0x1d2')][_0x13c8('0x114')](db[_0x13c8('0x49')],{});db[_0x13c8('0x1d2')][_0x13c8('0x114')](db['FaxAccount'],{'foreignKey':'FromFaxAccountId','as':_0x13c8('0x1c6')});db[_0x13c8('0x1d2')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'foreignKey':_0x13c8('0x1c7'),'as':'FromAgent'});db[_0x13c8('0x1d2')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'foreignKey':_0x13c8('0x1c9'),'as':_0x13c8('0x1ca')});db[_0x13c8('0x1d2')][_0x13c8('0x114')](db['FaxQueue'],{'foreignKey':_0x13c8('0x1d3'),'as':_0x13c8('0x1cc')});db[_0x13c8('0x1d2')][_0x13c8('0x114')](db['FaxAccount'],{'foreignKey':_0x13c8('0x1d4'),'as':_0x13c8('0x1ce')});db[_0x13c8('0xee')][_0x13c8('0x114')](db[_0x13c8('0x17b')],{});db[_0x13c8('0xee')][_0x13c8('0x114')](db[_0x13c8('0x59')],{});db[_0x13c8('0xee')][_0x13c8('0x114')](db[_0x13c8('0x179')],{'foreignKey':'FromOpenchannelAccountId','as':_0x13c8('0x1c6')});db[_0x13c8('0xee')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'foreignKey':_0x13c8('0x1c7'),'as':_0x13c8('0x1c8')});db['OpenchannelTransferReport'][_0x13c8('0x114')](db[_0x13c8('0x12')],{'foreignKey':_0x13c8('0x1c9'),'as':'ToAgent'});db[_0x13c8('0xee')][_0x13c8('0x114')](db['OpenchannelQueue'],{'foreignKey':_0x13c8('0x1d5'),'as':_0x13c8('0x1cc')});db[_0x13c8('0xee')][_0x13c8('0x114')](db[_0x13c8('0x179')],{'foreignKey':_0x13c8('0x1d6'),'as':_0x13c8('0x1ce')});db[_0x13c8('0x1d7')]['belongsTo'](db[_0x13c8('0x52')],{});db[_0x13c8('0x1d7')][_0x13c8('0x114')](db['SmsInteraction'],{});db[_0x13c8('0x1d7')][_0x13c8('0x114')](db[_0x13c8('0x4d')],{'foreignKey':_0x13c8('0x1d8'),'as':_0x13c8('0x1c6')});db[_0x13c8('0x1d7')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'foreignKey':_0x13c8('0x1c7'),'as':_0x13c8('0x1c8')});db[_0x13c8('0x1d7')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'foreignKey':'ToUserId','as':_0x13c8('0x1ca')});db['SmsTransferReport']['belongsTo'](db['SmsQueue'],{'foreignKey':_0x13c8('0x1d9'),'as':_0x13c8('0x1cc')});db[_0x13c8('0x1d7')]['belongsTo'](db['SmsAccount'],{'foreignKey':_0x13c8('0x1da'),'as':_0x13c8('0x1ce')});db[_0x13c8('0xf1')]['hasMany'](db[_0x13c8('0x78')],{'as':'Dispositions','foreignKey':_0x13c8('0x15b'),'onDelete':_0x13c8('0x107')});db[_0x13c8('0xf1')][_0x13c8('0x109')](db[_0x13c8('0x73')],{'as':_0x13c8('0x1db'),'foreignKey':_0x13c8('0x15b')});db[_0x13c8('0xf1')][_0x13c8('0x109')](db['CmContact'],{'as':_0x13c8('0x119'),'onDelete':_0x13c8('0x107'),'foreignKey':_0x13c8('0x15b')});db[_0x13c8('0xf1')][_0x13c8('0x109')](db['CmHopperFinal'],{'as':_0x13c8('0x10c'),'foreignKey':_0x13c8('0x15b')});db['CmList']['hasMany'](db['CmHopperHistory'],{'as':_0x13c8('0x10d'),'foreignKey':_0x13c8('0x15b')});db[_0x13c8('0xf1')][_0x13c8('0x109')](db['ReportAgentPreview'],{'as':_0x13c8('0x71'),'foreignKey':'ListId'});db[_0x13c8('0xf1')][_0x13c8('0x118')](db[_0x13c8('0x1b')],{'as':_0x13c8('0x1dc'),'through':_0x13c8('0x1dd')});db[_0x13c8('0xf1')]['belongsToMany'](db[_0x13c8('0x12')],{'as':_0x13c8('0x148'),'through':_0x13c8('0x11b')});db[_0x13c8('0x126')][_0x13c8('0x109')](db[_0x13c8('0x18')],{'as':'Extensions','onDelete':_0x13c8('0x107')});db[_0x13c8('0x126')][_0x13c8('0x118')](db['User'],{'as':_0x13c8('0x148'),'through':'UserVoicePrefix'});db[_0x13c8('0x126')]['belongsToMany'](db[_0x13c8('0xe1')],{'through':_0x13c8('0x104'),'as':_0x13c8('0x15d')});db[_0x13c8('0xf4')][_0x13c8('0x109')](db['User'],{'as':_0x13c8('0x170'),'foreignKey':_0x13c8('0x115')});db['UserProfile'][_0x13c8('0x109')](db['UserProfileSection'],{'as':_0x13c8('0x1de'),'foreignKey':_0x13c8('0x115'),'onDelete':_0x13c8('0x107')});db['UserProfileSection'][_0x13c8('0x109')](db[_0x13c8('0xf7')],{'as':_0x13c8('0x1df'),'foreignKey':_0x13c8('0x1e0'),'onDelete':_0x13c8('0x107')});db[_0x13c8('0xfb')][_0x13c8('0x109')](db[_0x13c8('0x78')],{'as':'Dispositions','foreignKey':_0x13c8('0x1e1'),'onDelete':_0x13c8('0x107')});db[_0x13c8('0xfb')][_0x13c8('0x109')](db[_0x13c8('0x16a')],{'as':'Answers','foreignKey':_0x13c8('0x1e1')});db['WhatsappAccount'][_0x13c8('0x109')](db['WhatsappMessage'],{'as':_0x13c8('0x159'),'foreignKey':_0x13c8('0x1e1')});db[_0x13c8('0xfb')]['hasMany'](db[_0x13c8('0x122')],{'as':_0x13c8('0x16c')});db[_0x13c8('0xfb')][_0x13c8('0x109')](db['WhatsappApplication'],{'as':_0x13c8('0x13d')});db[_0x13c8('0xfb')][_0x13c8('0x114')](db[_0x13c8('0xf1')],{'as':_0x13c8('0x15a'),'foreignKey':_0x13c8('0x15b')});db[_0x13c8('0xfb')][_0x13c8('0x114')](db[_0x13c8('0x7d')],{'as':_0x13c8('0x147'),'foreignKey':'mandatoryDispositionPauseId'});db[_0x13c8('0xfb')][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':'Agents','through':_0x13c8('0x137')});db['WhatsappApplication']['belongsTo'](db[_0x13c8('0x12')],{'onDelete':_0x13c8('0x167')});db[_0x13c8('0xfd')][_0x13c8('0x114')](db[_0x13c8('0x130')],{'onDelete':'restrict'});db[_0x13c8('0xfd')]['belongsTo'](db[_0x13c8('0xfb')],{'onDelete':_0x13c8('0x167')});db['WhatsappApplication'][_0x13c8('0x114')](db[_0x13c8('0x7c')],{'onDelete':_0x13c8('0x167'),'foreignKey':_0x13c8('0x146')});db[_0x13c8('0xfd')][_0x13c8('0x114')](db[_0x13c8('0x87')],{'onDelete':_0x13c8('0x167'),'foreignKey':'TagId'});db[_0x13c8('0x122')][_0x13c8('0x109')](db['WhatsappMessage'],{'as':_0x13c8('0x159'),'onDelete':'cascade','foreignKey':_0x13c8('0x1e2')});db['WhatsappInteraction']['belongsTo'](db[_0x13c8('0xfb')],{'as':_0x13c8('0x16f'),'foreignKey':'WhatsappAccountId'});db[_0x13c8('0x122')][_0x13c8('0x114')](db[_0x13c8('0x68')],{'as':_0x13c8('0x15f'),'foreignKey':_0x13c8('0x153')});db[_0x13c8('0x122')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'as':_0x13c8('0x160'),'foreignKey':'UserId'});db[_0x13c8('0x122')][_0x13c8('0x118')](db[_0x13c8('0x87')],{'through':_0x13c8('0x1a0'),'as':_0x13c8('0x162')});db['WhatsappInteraction'][_0x13c8('0x118')](db['Tag'],{'through':_0x13c8('0x1a0'),'as':_0x13c8('0x163')});db[_0x13c8('0x122')]['belongsToMany'](db['User'],{'as':_0x13c8('0x170'),'through':_0x13c8('0x124'),'foreignKey':_0x13c8('0x1e2')});db[_0x13c8('0x1e3')][_0x13c8('0x114')](db['User'],{'as':_0x13c8('0x12')});db[_0x13c8('0x1e3')][_0x13c8('0x114')](db[_0x13c8('0x68')],{'onDelete':'cascade','as':'Contact'});db[_0x13c8('0x1e3')][_0x13c8('0x114')](db['WhatsappInteraction'],{'onDelete':'cascade','as':'Interaction','foreignKey':_0x13c8('0x1e2')});db[_0x13c8('0x1e3')][_0x13c8('0x114')](db[_0x13c8('0xfb')],{'as':'Account','foreignKey':_0x13c8('0x1e1')});db[_0x13c8('0xff')][_0x13c8('0x114')](db[_0x13c8('0xfb')],{});db[_0x13c8('0xff')][_0x13c8('0x114')](db[_0x13c8('0xf1')],{'as':'List','foreignKey':_0x13c8('0x15b')});db[_0x13c8('0xff')]['belongsTo'](db[_0x13c8('0x68')],{'as':_0x13c8('0x15f'),'foreignKey':_0x13c8('0x153')});db[_0x13c8('0xff')][_0x13c8('0x114')](db[_0x13c8('0x122')],{});db[_0x13c8('0xff')][_0x13c8('0x114')](db[_0x13c8('0x130')],{});db[_0x13c8('0xff')][_0x13c8('0x114')](db['WhatsappMessage'],{});db[_0x13c8('0xff')][_0x13c8('0x114')](db[_0x13c8('0x12')],{});db['WhatsappTransferReport']['belongsTo'](db[_0x13c8('0x1e3')],{});db[_0x13c8('0x1e4')][_0x13c8('0x114')](db[_0x13c8('0x122')],{});db[_0x13c8('0x1e4')]['belongsTo'](db['WhatsappAccount'],{'foreignKey':_0x13c8('0x1e5'),'as':_0x13c8('0x1c6')});db[_0x13c8('0x1e4')][_0x13c8('0x114')](db['WhatsappAccount'],{'foreignKey':_0x13c8('0x1e6'),'as':'ToAccount'});db[_0x13c8('0x1e4')][_0x13c8('0x114')](db[_0x13c8('0x130')],{'foreignKey':_0x13c8('0x1e7'),'as':'ToQueue'});db['WhatsappTransferReport']['belongsTo'](db['User'],{'foreignKey':_0x13c8('0x1c7'),'as':'FromAgent'});db[_0x13c8('0x1e4')][_0x13c8('0x114')](db[_0x13c8('0x12')],{'foreignKey':_0x13c8('0x1c9'),'as':'ToAgent'});db[_0x13c8('0x130')][_0x13c8('0x118')](db[_0x13c8('0x12')],{'as':_0x13c8('0x148'),'through':_0x13c8('0x131'),'foreignKey':_0x13c8('0x1e8')});db[_0x13c8('0x130')][_0x13c8('0x118')](db[_0x13c8('0xe1')],{'through':_0x13c8('0x1e9'),'as':'Teams'});module[_0x13c8('0x1ea')]={'db':db,'dbH':dbH};
\ No newline at end of file
+var _0x4a9a=['ChatOfflineMessage','../api/chatOfflineMessage/chatOfflineMessage.model','ChatQueue','ChatGroup','../api/chatGroup/chatGroup.model','ChatProactiveAction','../api/chatProactiveAction/chatProactiveAction.model','CmCompany','../api/cmCompany/cmCompany.model','CmContact','../api/cmContact/cmContact.model','CmHopper','../api/cmHopper/cmHopper.model','../api/cmHopperBlack/cmHopperBlack.model','CmHopperFinal','../api/cmHopperFinal/cmHopperFinal.model','CmHopperHistory','../api/cmHopperHistory/cmHopperHistory.model','CmCustomField','../api/cmCustomField/cmCustomField.model','../api/action/action.model','Automation','../api/automation/automation.model','CannedAnswer','../api/cannedAnswer/cannedAnswer.model','Disposition','Condition','../api/condition/condition.model','Pause','../api/pause/pause.model','../api/voiceQueuesLog/voiceQueuesLog.model','Schedule','../api/schedule/schedule.model','../api/sound/sound.model','Tag','../api/tag/tag.model','Template','../api/template/template.model','Trigger','../api/variable/variable.model','Integration','IntegrationReport','../api/integrationReport/integrationReport.model','AnalyticCustomReport','../api/analyticCustomReport/analyticCustomReport.model','AnalyticDefaultReport','../api/analyticDefaultReport/analyticDefaultReport.model','AnalyticExtractedReport','../api/analyticExtractedReport/analyticExtractedReport.model','AnalyticMetric','../api/analyticMetric/analyticMetric.model','AnalyticFieldReport','../api/analyticFieldReport/analyticFieldReport.model','SalesforceAccount','../api/intSalesforceAccount/intSalesforceAccount.model','SalesforceField','SugarcrmAccount','../api/intSugarcrmAccount/intSugarcrmAccount.model','../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model','SugarcrmField','../api/intSugarcrmField/intSugarcrmField.model','DeskAccount','../api/intDeskAccount/intDeskAccount.model','../api/intDeskConfiguration/intDeskConfiguration.model','DeskField','../api/intDeskField/intDeskField.model','ZohoAccount','../api/intZohoAccount/intZohoAccount.model','../api/intZohoConfiguration/intZohoConfiguration.model','ZohoField','../api/intZohoField/intZohoField.model','ZendeskAccount','../api/intZendeskAccount/intZendeskAccount.model','ZendeskConfiguration','../api/intZendeskConfiguration/intZendeskConfiguration.model','../api/intZendeskField/intZendeskField.model','../api/intFreshdeskAccount/intFreshdeskAccount.model','FreshdeskConfiguration','../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model','FreshdeskField','VtigerAccount','../api/intVtigerAccount/intVtigerAccount.model','VtigerConfiguration','VtigerField','../api/intVtigerField/intVtigerField.model','../api/intServicenowAccount/intServicenowAccount.model','ServicenowConfiguration','../api/intServicenowConfiguration/intServicenowConfiguration.model','ServicenowField','../api/intServicenowField/intServicenowField.model','../api/intDynamics365Account/intDynamics365Account.model','Dynamics365Configuration','../api/intDynamics365Configuration/intDynamics365Configuration.model','FreshsalesAccount','../api/intFreshsalesAccount/intFreshsalesAccount.model','FreshsalesField','../api/intFreshsalesField/intFreshsalesField.model','../api/integration/integration.model','Network','../api/network/network.model','JscriptyAnswerReport','JscriptyQuestionReport','../api/jscriptyQuestionReport/jscriptyQuestionReport.model','JscriptySessionReport','SmsQueueReport','../api/smsQueueReport/smsQueueReport.model','SquareReport','../api/squareReport/squareReport.model','SquareDetailsReport','../api/squareReportDetail/squareReportDetail.model','../api/jscriptyProject/jscriptyProject.model','Setting','../api/setting/setting.model','../api/squareOdbc/squareOdbc.model','../api/squareProject/squareProject.model','SquareRecording','../api/squareRecording/squareRecording.model','Team','License','../api/license/license.model','Campaign','../api/campaign/campaign.model','Migration','../api/migration/migration.model','Attachment','../api/attachment/attachment.model','Plugin','../api/plugin/plugin.model','MailTransferReport','../api/mailTransferReport/mailTransferReport.model','ChatTransferReport','../api/chatTransferReport/chatTransferReport.model','OpenchannelTransferReport','../api/openchannelTransferReport/openchannelTransferReport.model','SmsTransferReport','CmList','../api/cmList/cmList.model','VoicePrefix','../api/voicePrefix/voicePrefix.model','UserProfile','../api/userProfile/userProfile.model','UserProfileSection','../api/userProfileResource/userProfileResource.model','UserNotification','../api/whatsappAccount/whatsappAccount.model','WhatsappApplication','../api/whatsappApplication/whatsappApplication.model','WhatsappInteraction','../api/whatsappInteraction/whatsappInteraction.model','WhatsappMessage','../api/whatsappMessage/whatsappMessage.model','WhatsappQueueReport','../api/whatsappQueueReport/whatsappQueueReport.model','WhatsappTransferReport','../api/whatsappTransferReport/whatsappTransferReport.model','../api/whatsappQueue/whatsappQueue.model','CloudProvider','TeamVoiceQueue','User','cascade','UserId','hasMany','VoiceRecording','Recordings','VoiceQueuesRt','VoiceExtension','ReportAgentPreview','OpenchannelInteraction','ChatInteractions','SmsInteraction','SmsInteractions','FaxInteractions','MailInteractions','WhatsappInteractions','UserNotifications','belongsTo','userProfileId','belongsToMany','chat_group_has_users','Contacts','cm_user_has_contacts','Lists','cm_user_has_lists','user_has_teams','user_has_mail_interactions','OpenchannelInteractions','user_has_openchannel_interactions','user_has_whatsapp_interactions','VoiceQueue','VoiceQueues','UserChatQueue','FaxQueues','UserFaxQueue','SmsQueues','OpenchannelQueues','WhatsappQueue','VoicePrefixes','ChatWebsites','user_has_chat_websites','MailAccounts','user_has_mail_accounts','OpenchannelAccounts','user_has_openchannel_accounts','user_has_sms_accounts','WhatsappAccount','WhatsappAccounts','user_has_whatsapp_accounts','SquareProjects','user_has_square_projects','ChanSpyId','Sounds','moh_has_sounds','Members','VoiceQueueId','Hoppers','HopperFinals','HopperHistories','CmHopperBlack','HopperBlacks','TrunkBackup','IntervalId','mandatoryDispositionPauseId','voice_queues_has_cm_lists','Agents','Teams','BlackLists','voice_queues_has_cm_blacklists','ScreenRecording','Messages','mailbox','VoiceMailMessage','mailboxuser','QueueCalls','uniqueid','VoiceAgentReport','AgentReports','ContactId','MailAccountId','hasOne','Imap','Dispositions','MailMessage','Applications','List','ListId','TemplateId','Contact','mail_interaction_has_tags','Tags','Users','MailInteractionId','Attachments','Interaction','Account','ChatWebsiteId','ChatOfflineMessageId','restrict','Interval','Dashboard','DashboardItem','Items','FaxAccountId','Interactions','Exntensions','user_has_fax_accounts','TagId','FaxInteractionId','fax_interaction_has_tags','ThroughTags','AttachmentId','SmsAccountId','Answers','SmsApplication','mandatoryDispositionPause','SmsInteractionId','Owner','sms_interaction_has_tags','user_has_sms_interactions','SmsQueueId','team_has_sms_queues','OpenchannelAccountId','OpenchannelQueueId','OpenchannelInteractionId','openchannel_interaction_has_tags','UserOpenchannelQueue','team_has_openchannel_queues','ProactiveActions','Agent','ChatInteractionId','chat_interaction_has_tags','user_has_chat_interactions','ChatInternalMessage','ChatGroupId','JscriptySessions','Company','CompanyId','cm_contact_has_tags','Queue','CampaignId','OwnerId','All','OneAll','AutomationAllId','Any','OneAny','Action','Actions','AutomationId','ParentId','Intervals','Extensions','MailApplications','ChatApplications','FaxApplications','SmsApplications','DefaultReportId','CustomReportId','Mohs','whatsapp_interaction_has_tags','AllConditions','AllCondition','AnyConditions','AnyCondition','TriggerAnyId','TriggerId','Fields','SalesforceConfiguration','Configurations','AccountId','Subjects','SubjectId','DescriptionId','FieldId','Subject','Description','Field','Variable','VariableId','SugarcrmConfiguration','DeskConfiguration','int_desk_configuration_has_tags','ZohoConfiguration','Descriptions','ZendeskField','FreshdeskAccount','int_freshdesk_configuration_has_tags','ServicenowAccount','Dynamics365Account','Dynamics365Field','FreshsalesConfiguration','ChatQueueReport','FromId','ToId','SessionId','JscriptyProject','ProjectId','MailQueues','team_has_chat_queues','ChatQueues','team_has_fax_queues','team_has_whatsapp_queues','WhatsappQueues','TrunkId','TrunkBackupId','SquareProject','SquareProjectId','campaigns_has_cm_lists','campaigns_has_cm_blacklists','FromMailAccountId','FromAccount','FromUserId','FromAgent','ToAgent','ToQueue','ToMailAccountId','ToAccount','FromChatWebsiteId','ToUserId','ToChatQueueId','ToChatWebsiteId','FaxTransferReport','FromOpenchannelAccountId','ToOpenchannelQueueId','ToOpenchannelAccountId','FromSmsAccountId','ToSmsQueueId','HopperHistory','Queues','user_has_voice_prefixes','UserProfileSections','UserProfileResource','Resources','sectionId','WhatsappAccountId','WhatsappInteractionId','FromWhatsappAccountId','ToWhatsappAccountId','ToQueueId','WhatsappQueueId','exports','sequelize','lodash','jstz','motion2','xcall','xC@LL1234','mysql','name','utf8','sequelizeHistory','127.0.0.1','utf8mb4','utf8_general_ci','database','password','options','username','../api/user/user.model','VoiceChanSpy','import','../api/voiceChanSpy/voiceChanSpy.model','VoiceContext','../api/voiceContext/voiceContext.model','VoiceMusicOnHold','../api/voiceMusicOnHold/voiceMusicOnHold.model','../api/voiceRecording/voiceRecording.model','../api/screenRecording/screenRecording.model','VoiceMail','../api/voiceMail/voiceMail.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','UserVoiceQueueRt','../api/userVoiceQueueRt/userVoiceQueueRt.model','UserVoiceQueue','../api/userVoiceQueue/userVoiceQueue.model','../api/userChatQueue/userChatQueue.model','UserMailQueue','../api/userMailQueue/userMailQueue.model','UserSmsQueue','../api/userOpenchannelQueue/userOpenchannelQueue.model','UserWhatsappQueue','MailServerIn','../api/mailServerIn/mailServerIn.model','MailServerOut','../api/mailServerOut/mailServerOut.model','MailAccount','../api/mailAccount/mailAccount.model','MailQueue','../api/mailSubstatus/mailSubstatus.model','MailInteraction','../api/mailInteraction/mailInteraction.model','../api/mailMessage/mailMessage.model','MailApplication','../api/mailApplication/mailApplication.model','MailQueueReport','../api/mailQueueReport/mailQueueReport.model','../api/dashboard/dashboard.model','FaxAccount','../api/faxAccount/faxAccount.model','FaxApplication','../api/faxApplication/faxApplication.model','FaxInteraction','../api/faxInteraction/faxInteraction.model','FaxMessage','../api/faxMessage/faxMessage.model','FaxQueue','FaxQueueReport','SmsAccount','../api/smsAccount/smsAccount.model','../api/smsApplication/smsApplication.model','../api/smsInteraction/smsInteraction.model','SmsMessage','../api/smsMessage/smsMessage.model','SmsQueue','OpenchannelAccount','../api/openchannelAccount/openchannelAccount.model','OpenchannelApplication','../api/openchannelApplication/openchannelApplication.model','../api/openchannelInteraction/openchannelInteraction.model','OpenchannelMessage','../api/openchannelMessage/openchannelMessage.model','OpenchannelQueue','../api/openchannelQueue/openchannelQueue.model','ChatWebsite','OpenchannelQueueReport','../api/openchannelQueueReport/openchannelQueueReport.model','ChatApplication','../api/chatApplication/chatApplication.model','ChatInteraction','../api/chatInteraction/chatInteraction.model','ChatMessage','../api/chatMessage/chatMessage.model'];(function(_0xe36fb,_0x561176){var _0x50a044=function(_0x291b08){while(--_0x291b08){_0xe36fb['push'](_0xe36fb['shift']());}};_0x50a044(++_0x561176);}(_0x4a9a,0x190));var _0xa4a9=function(_0x305b74,_0x2ceebf){_0x305b74=_0x305b74-0x0;var _0x4a12ec=_0x4a9a[_0x305b74];return _0x4a12ec;};'use strict';var config=require('../config/environment');var Sequelize=require(_0xa4a9('0x0'));var _=require(_0xa4a9('0x1'));var jstz=require(_0xa4a9('0x2'));var timezone=jstz['determine']();config[_0xa4a9('0x0')]=_['defaultsDeep'](config[_0xa4a9('0x0')],{'database':_0xa4a9('0x3'),'username':_0xa4a9('0x4'),'password':_0xa4a9('0x5'),'options':{'host':'127.0.0.1','port':0xcea,'dialect':_0xa4a9('0x6'),'dialectOptions':{'charset':'utf8mb4'},'logging':![],'timezone':timezone[_0xa4a9('0x7')](),'define':{'charset':_0xa4a9('0x8'),'collate':'utf8_general_ci'}}});config[_0xa4a9('0x9')]=_['defaultsDeep'](config[_0xa4a9('0x9')],{'database':_0xa4a9('0x3'),'username':_0xa4a9('0x4'),'password':'xC@LL1234','options':{'host':_0xa4a9('0xa'),'port':0xcea,'dialect':_0xa4a9('0x6'),'dialectOptions':{'charset':_0xa4a9('0xb')},'logging':![],'timezone':timezone[_0xa4a9('0x7')](),'define':{'charset':_0xa4a9('0x8'),'collate':_0xa4a9('0xc')}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0xa4a9('0x0')][_0xa4a9('0xd')],config[_0xa4a9('0x0')]['username'],config[_0xa4a9('0x0')][_0xa4a9('0xe')],config[_0xa4a9('0x0')][_0xa4a9('0xf')])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0xa4a9('0x9')]['database'],config['sequelizeHistory'][_0xa4a9('0x10')],config[_0xa4a9('0x9')][_0xa4a9('0xe')],config[_0xa4a9('0x9')][_0xa4a9('0xf')])};db['User']=db['sequelize']['import'](_0xa4a9('0x11'));db[_0xa4a9('0x12')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x14'));db[_0xa4a9('0x15')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x16'));db['VoiceExtension']=db[_0xa4a9('0x0')]['import']('../api/voiceExtension/voiceExtension.model');db[_0xa4a9('0x17')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x18'));db['VoiceQueue']=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/voiceQueue/voiceQueue.model');db['VoiceRecording']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x19'));db['ScreenRecording']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x1a'));db[_0xa4a9('0x1b')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x1c'));db['VoiceMailMessage']=db['sequelize']['import']('../api/voiceMailMessage/voiceMailMessage.model');db[_0xa4a9('0x1d')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x1e'));db[_0xa4a9('0x1f')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x20'));db['VoiceAgentReport']=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/voiceAgentReport/voiceAgentReport.model');db[_0xa4a9('0x21')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x22'));db[_0xa4a9('0x23')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x24'));db[_0xa4a9('0x25')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x26'));db[_0xa4a9('0x27')]=db['sequelize']['import']('../api/voiceTransferReport/voiceTransferReport.model');db[_0xa4a9('0x28')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x29'));db[_0xa4a9('0x2a')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x2b'));db['UserChatQueue']=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x2c'));db[_0xa4a9('0x2d')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x2e'));db['UserFaxQueue']=db['sequelize'][_0xa4a9('0x13')]('../api/userFaxQueue/userFaxQueue.model');db[_0xa4a9('0x2f')]=db['sequelize'][_0xa4a9('0x13')]('../api/userSmsQueue/userSmsQueue.model');db['UserOpenchannelQueue']=db['sequelize']['import'](_0xa4a9('0x30'));db[_0xa4a9('0x31')]=db['sequelize'][_0xa4a9('0x13')]('../api/userWhatsappQueue/userWhatsappQueue.model');db[_0xa4a9('0x32')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x33'));db[_0xa4a9('0x34')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x35'));db[_0xa4a9('0x36')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x37'));db[_0xa4a9('0x38')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/mailQueue/mailQueue.model');db['MailSubstatus']=db['sequelize']['import'](_0xa4a9('0x39'));db[_0xa4a9('0x3a')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x3b'));db['MailMessage']=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x3c'));db[_0xa4a9('0x3d')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x3e'));db[_0xa4a9('0x3f')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x40'));db['Dashboard']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x41'));db['DashboardItem']=db['sequelize'][_0xa4a9('0x13')]('../api/dashboardItem/dashboardItem.model');db[_0xa4a9('0x42')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x43'));db[_0xa4a9('0x44')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x45'));db[_0xa4a9('0x46')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x47'));db[_0xa4a9('0x48')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x49'));db[_0xa4a9('0x4a')]=db[_0xa4a9('0x0')]['import']('../api/faxQueue/faxQueue.model');db[_0xa4a9('0x4b')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/faxQueueReport/faxQueueReport.model');db[_0xa4a9('0x4c')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x4d'));db['SmsApplication']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x4e'));db['SmsInteraction']=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x4f'));db[_0xa4a9('0x50')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x51'));db[_0xa4a9('0x52')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/smsQueue/smsQueue.model');db[_0xa4a9('0x53')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x54'));db[_0xa4a9('0x55')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x56'));db['OpenchannelInteraction']=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x57'));db[_0xa4a9('0x58')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x59'));db[_0xa4a9('0x5a')]=db['sequelize']['import'](_0xa4a9('0x5b'));db[_0xa4a9('0x5c')]=db[_0xa4a9('0x0')]['import']('../api/chatWebsite/chatWebsite.model');db[_0xa4a9('0x5d')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x5e'));db[_0xa4a9('0x5f')]=db['sequelize']['import'](_0xa4a9('0x60'));db[_0xa4a9('0x61')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x62'));db[_0xa4a9('0x63')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x64'));db[_0xa4a9('0x65')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x66'));db[_0xa4a9('0x67')]=db[_0xa4a9('0x0')]['import']('../api/chatQueue/chatQueue.model');db[_0xa4a9('0x68')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x69'));db[_0xa4a9('0x6a')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x6b'));db[_0xa4a9('0x6c')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x6d'));db[_0xa4a9('0x6e')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x6f'));db[_0xa4a9('0x70')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x71'));db['CmHopperBlack']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x72'));db[_0xa4a9('0x73')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x74'));db[_0xa4a9('0x75')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x76'));db['ReportAgentPreview']=db['sequelize']['import']('../api/reportAgentPreview/reportAgentPreview.model');db[_0xa4a9('0x77')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x78'));db['Action']=db['sequelize']['import'](_0xa4a9('0x79'));db[_0xa4a9('0x7a')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x7b'));db[_0xa4a9('0x7c')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x7d'));db[_0xa4a9('0x7e')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/disposition/disposition.model');db[_0xa4a9('0x7f')]=db['sequelize']['import'](_0xa4a9('0x80'));db['Interval']=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/interval/interval.model');db[_0xa4a9('0x81')]=db['sequelize']['import'](_0xa4a9('0x82'));db['Cdr']=db[_0xa4a9('0x0')]['import']('../api/cdr/cdr.model');db['VoiceQueuesLog']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x83'));db[_0xa4a9('0x84')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x85'));db['Sound']=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x86'));db[_0xa4a9('0x87')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x88'));db[_0xa4a9('0x89')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x8a'));db[_0xa4a9('0x8b')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/trigger/trigger.model');db['Variable']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x8c'));db[_0xa4a9('0x8d')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/integration/integration.model');db[_0xa4a9('0x8e')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x8f'));db[_0xa4a9('0x90')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0x91'));db[_0xa4a9('0x92')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x93'));db[_0xa4a9('0x94')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x95'));db[_0xa4a9('0x96')]=db['sequelize']['import'](_0xa4a9('0x97'));db[_0xa4a9('0x98')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x99'));db['AnalyticTreeReport']=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/analyticTreeReport/analyticTreeReport.model');db[_0xa4a9('0x9a')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x9b'));db['SalesforceConfiguration']=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/intSalesforceConfiguration/intSalesforceConfiguration.model');db[_0xa4a9('0x9c')]=db[_0xa4a9('0x0')]['import']('../api/intSalesforceField/intSalesforceField.model');db[_0xa4a9('0x9d')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x9e'));db['SugarcrmConfiguration']=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0x9f'));db[_0xa4a9('0xa0')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xa1'));db[_0xa4a9('0xa2')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xa3'));db['DeskConfiguration']=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0xa4'));db[_0xa4a9('0xa5')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0xa6'));db[_0xa4a9('0xa7')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xa8'));db['ZohoConfiguration']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xa9'));db[_0xa4a9('0xaa')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xab'));db[_0xa4a9('0xac')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xad'));db[_0xa4a9('0xae')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0xaf'));db['ZendeskField']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xb0'));db['FreshdeskAccount']=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0xb1'));db[_0xa4a9('0xb2')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xb3'));db[_0xa4a9('0xb4')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/intFreshdeskField/intFreshdeskField.model');db[_0xa4a9('0xb5')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xb6'));db[_0xa4a9('0xb7')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/intVtigerConfiguration/intVtigerConfiguration.model');db[_0xa4a9('0xb8')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0xb9'));db['ServicenowAccount']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xba'));db[_0xa4a9('0xbb')]=db['sequelize']['import'](_0xa4a9('0xbc'));db[_0xa4a9('0xbd')]=db['sequelize']['import'](_0xa4a9('0xbe'));db['Dynamics365Account']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xbf'));db[_0xa4a9('0xc0')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0xc1'));db['Dynamics365Field']=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/intDynamics365Field/intDynamics365Field.model');db[_0xa4a9('0xc2')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xc3'));db['FreshsalesConfiguration']=db[_0xa4a9('0x0')]['import']('../api/intFreshsalesConfiguration/intFreshsalesConfiguration.model');db[_0xa4a9('0xc4')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xc5'));db[_0xa4a9('0x8d')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0xc6'));db[_0xa4a9('0xc7')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xc8'));db['ChatQueueReport']=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/chatQueueReport/chatQueueReport.model');db['ChatInternalMessage']=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/chatInternalMessage/chatInternalMessage.model');db[_0xa4a9('0xc9')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/jscriptyAnswerReport/jscriptyAnswerReport.model');db[_0xa4a9('0xca')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0xcb'));db[_0xa4a9('0xcc')]=db['sequelize'][_0xa4a9('0x13')]('../api/jscriptySessionReport/jscriptySessionReport.model');db[_0xa4a9('0xcd')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xce'));db[_0xa4a9('0xcf')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xd0'));db[_0xa4a9('0xd1')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xd2'));db['JscriptyProject']=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0xd3'));db[_0xa4a9('0xd4')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0xd5'));db['SquareOdbc']=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0xd6'));db['SquareProject']=db['sequelize']['import'](_0xa4a9('0xd7'));db[_0xa4a9('0xd8')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xd9'));db['SquareMessage']=db[_0xa4a9('0x0')]['import']('../api/squareMessage/squareMessage.model');db[_0xa4a9('0xda')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/team/team.model');db[_0xa4a9('0xdb')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0xdc'));db[_0xa4a9('0xdd')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xde'));db[_0xa4a9('0xdf')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0xe0'));db[_0xa4a9('0xe1')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0xe2'));db[_0xa4a9('0xe3')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0xe4'));db[_0xa4a9('0xe5')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xe6'));db[_0xa4a9('0xe7')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0xe8'));db['FaxTransferReport']=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/faxTransferReport/faxTransferReport.model');db[_0xa4a9('0xe9')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xea'));db[_0xa4a9('0xeb')]=db['sequelize']['import']('../api/smsTransferReport/smsTransferReport.model');db[_0xa4a9('0xec')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xed'));db[_0xa4a9('0xee')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0xef'));db[_0xa4a9('0xf0')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0xf1'));db[_0xa4a9('0xf2')]=db[_0xa4a9('0x0')]['import']('../api/userProfileSection/userProfileSection.model');db['UserProfileResource']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xf3'));db[_0xa4a9('0xf4')]=db[_0xa4a9('0x0')]['import']('../api/userNotification/userNotification.model');db['WhatsappAccount']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xf5'));db[_0xa4a9('0xf6')]=db['sequelize']['import'](_0xa4a9('0xf7'));db[_0xa4a9('0xf8')]=db[_0xa4a9('0x0')]['import'](_0xa4a9('0xf9'));db[_0xa4a9('0xfa')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xfb'));db[_0xa4a9('0xfc')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0xfd'));db[_0xa4a9('0xfe')]=db['sequelize'][_0xa4a9('0x13')](_0xa4a9('0xff'));db['WhatsappQueue']=db[_0xa4a9('0x0')][_0xa4a9('0x13')](_0xa4a9('0x100'));db[_0xa4a9('0x101')]=db[_0xa4a9('0x0')][_0xa4a9('0x13')]('../api/cloudProvider/cloudProvider.model');db[_0xa4a9('0x102')]=db['sequelize'][_0xa4a9('0x13')]('../api/teamVoiceQueue/teamVoiceQueue.model');db[_0xa4a9('0x103')]['hasOne'](db[_0xa4a9('0x1b')],{'as':_0xa4a9('0x1b'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0x103')][_0xa4a9('0x106')](db[_0xa4a9('0x107')],{'as':_0xa4a9('0x108'),'foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0x103')][_0xa4a9('0x106')](db[_0xa4a9('0x28')],{'as':_0xa4a9('0x109'),'foreignKey':_0xa4a9('0x105')});db['User'][_0xa4a9('0x106')](db[_0xa4a9('0x10a')],{'as':'Extensions','onDelete':_0xa4a9('0x104'),'hooks':!![]});db['User'][_0xa4a9('0x106')](db[_0xa4a9('0x73')],{'as':'HopperFinals','foreignKey':'UserId'});db['User'][_0xa4a9('0x106')](db[_0xa4a9('0x75')],{'as':'HopperHistory','foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0x103')]['hasMany'](db[_0xa4a9('0x10b')],{'as':_0xa4a9('0x10b'),'foreignKey':'UserId'});db[_0xa4a9('0x103')][_0xa4a9('0x106')](db[_0xa4a9('0x10c')],{'as':'OpenchannelInteractions','foreignKey':_0xa4a9('0x105')});db['User'][_0xa4a9('0x106')](db['ChatInteraction'],{'as':_0xa4a9('0x10d'),'foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0x103')][_0xa4a9('0x106')](db[_0xa4a9('0x10e')],{'as':_0xa4a9('0x10f'),'foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0x103')][_0xa4a9('0x106')](db[_0xa4a9('0x46')],{'as':_0xa4a9('0x110'),'foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0x103')][_0xa4a9('0x106')](db['MailInteraction'],{'as':_0xa4a9('0x111'),'foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0x103')]['hasMany'](db[_0xa4a9('0xf8')],{'as':_0xa4a9('0x112'),'foreignKey':'UserId'});db[_0xa4a9('0x103')][_0xa4a9('0x106')](db['UserNotification'],{'as':_0xa4a9('0x113'),'foreignKey':'SenderId'});db['User'][_0xa4a9('0x114')](db['UserProfile'],{'as':_0xa4a9('0xf0'),'foreignKey':_0xa4a9('0x115')});db['User'][_0xa4a9('0x116')](db[_0xa4a9('0x68')],{'as':'Groups','through':_0xa4a9('0x117')});db[_0xa4a9('0x103')]['belongsToMany'](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x118'),'through':_0xa4a9('0x119')});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db[_0xa4a9('0xec')],{'as':_0xa4a9('0x11a'),'through':_0xa4a9('0x11b')});db['User']['belongsToMany'](db['Team'],{'through':_0xa4a9('0x11c')});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db['MailInteraction'],{'as':_0xa4a9('0x111'),'through':_0xa4a9('0x11d')});db['User'][_0xa4a9('0x116')](db['ChatInteraction'],{'as':'ChatInteractions','through':'user_has_chat_interactions'});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db['FaxInteraction'],{'as':_0xa4a9('0x110'),'through':'user_has_fax_interactions'});db[_0xa4a9('0x103')]['belongsToMany'](db[_0xa4a9('0x10e')],{'as':_0xa4a9('0x10f'),'through':'user_has_sms_interactions'});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db['OpenchannelInteraction'],{'as':_0xa4a9('0x11e'),'through':_0xa4a9('0x11f')});db[_0xa4a9('0x103')]['belongsToMany'](db[_0xa4a9('0xf8')],{'as':_0xa4a9('0x112'),'through':_0xa4a9('0x120')});db[_0xa4a9('0x103')]['belongsToMany'](db[_0xa4a9('0x121')],{'as':_0xa4a9('0x122'),'through':_0xa4a9('0x2a'),'required':![]});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db[_0xa4a9('0x38')],{'as':'MailQueues','through':_0xa4a9('0x2d'),'required':![]});db[_0xa4a9('0x103')]['belongsToMany'](db[_0xa4a9('0x67')],{'as':'ChatQueues','through':_0xa4a9('0x123'),'required':![],'hooks':!![]});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db[_0xa4a9('0x4a')],{'as':_0xa4a9('0x124'),'through':_0xa4a9('0x125'),'required':![]});db['User'][_0xa4a9('0x116')](db['SmsQueue'],{'as':_0xa4a9('0x126'),'through':_0xa4a9('0x2f'),'required':![]});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db[_0xa4a9('0x5a')],{'as':_0xa4a9('0x127'),'through':'UserOpenchannelQueue','required':![]});db[_0xa4a9('0x103')]['belongsToMany'](db[_0xa4a9('0x128')],{'as':'WhatsappQueues','through':_0xa4a9('0x31'),'required':![]});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db[_0xa4a9('0xec')],{'through':_0xa4a9('0x11b')});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db[_0xa4a9('0xee')],{'as':_0xa4a9('0x129'),'through':'user_has_voice_prefixes','required':![]});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db[_0xa4a9('0x5c')],{'as':_0xa4a9('0x12a'),'through':_0xa4a9('0x12b')});db[_0xa4a9('0x103')]['belongsToMany'](db['FaxAccount'],{'as':'FaxAccounts','through':'user_has_fax_accounts'});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db[_0xa4a9('0x36')],{'as':_0xa4a9('0x12c'),'through':_0xa4a9('0x12d')});db['User'][_0xa4a9('0x116')](db['OpenchannelAccount'],{'as':_0xa4a9('0x12e'),'through':_0xa4a9('0x12f')});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db[_0xa4a9('0x4c')],{'as':'SmsAccounts','through':_0xa4a9('0x130')});db['User'][_0xa4a9('0x116')](db[_0xa4a9('0x131')],{'as':_0xa4a9('0x132'),'through':_0xa4a9('0x133')});db[_0xa4a9('0x103')][_0xa4a9('0x116')](db['SquareProject'],{'as':_0xa4a9('0x134'),'through':_0xa4a9('0x135')});db[_0xa4a9('0x12')][_0xa4a9('0x106')](db['VoiceExtension'],{'as':'SpiedAgents','onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x136')});db[_0xa4a9('0x15')]['hasMany'](db['VoiceExtension'],{'onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x10a')][_0xa4a9('0x106')](db[_0xa4a9('0x10a')],{'as':'Applications','onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x17')]['belongsToMany'](db['Sound'],{'as':_0xa4a9('0x137'),'through':_0xa4a9('0x138')});db[_0xa4a9('0x121')][_0xa4a9('0x106')](db[_0xa4a9('0x28')],{'as':_0xa4a9('0x139'),'foreignKey':_0xa4a9('0x13a')});db[_0xa4a9('0x121')][_0xa4a9('0x106')](db[_0xa4a9('0x70')],{'as':_0xa4a9('0x13b'),'foreignKey':'VoiceQueueId'});db[_0xa4a9('0x121')][_0xa4a9('0x106')](db['CmHopperFinal'],{'as':_0xa4a9('0x13c'),'foreignKey':_0xa4a9('0x13a')});db[_0xa4a9('0x121')][_0xa4a9('0x106')](db[_0xa4a9('0x75')],{'as':_0xa4a9('0x13d'),'foreignKey':_0xa4a9('0x13a')});db['VoiceQueue'][_0xa4a9('0x106')](db['ReportAgentPreview'],{'as':_0xa4a9('0x10b'),'foreignKey':_0xa4a9('0x13a')});db[_0xa4a9('0x121')][_0xa4a9('0x106')](db[_0xa4a9('0x13e')],{'as':_0xa4a9('0x13f'),'foreignKey':'VoiceQueueId'});db[_0xa4a9('0x121')][_0xa4a9('0x106')](db[_0xa4a9('0xcc')],{'as':'JscriptySessions','foreignKey':'VoiceQueueId'});db['VoiceQueue'][_0xa4a9('0x114')](db[_0xa4a9('0x25')],{'as':_0xa4a9('0x25'),'foreignKey':'TrunkId'});db['VoiceQueue'][_0xa4a9('0x114')](db[_0xa4a9('0x25')],{'as':_0xa4a9('0x140'),'foreignKey':'TrunkBackupId'});db[_0xa4a9('0x121')][_0xa4a9('0x114')](db['Interval'],{'as':'Interval','foreignKey':_0xa4a9('0x141')});db[_0xa4a9('0x121')][_0xa4a9('0x114')](db[_0xa4a9('0x81')],{'as':'mandatoryDispositionPause','foreignKey':_0xa4a9('0x142')});db[_0xa4a9('0x121')][_0xa4a9('0x116')](db['CmList'],{'as':_0xa4a9('0x11a'),'through':_0xa4a9('0x143')});db[_0xa4a9('0x121')][_0xa4a9('0x116')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x144'),'through':_0xa4a9('0x2a')});db['VoiceQueue'][_0xa4a9('0x116')](db['Team'],{'as':_0xa4a9('0x145'),'through':_0xa4a9('0x102')});db[_0xa4a9('0x121')][_0xa4a9('0x116')](db[_0xa4a9('0xec')],{'as':_0xa4a9('0x146'),'through':_0xa4a9('0x147')});db[_0xa4a9('0x107')][_0xa4a9('0x114')](db['User'],{'as':_0xa4a9('0x103'),'foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0x148')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'as':'User','foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0x1b')]['hasMany'](db['VoiceMailMessage'],{'as':_0xa4a9('0x149'),'onDelete':'cascade','foreignKey':'mailboxuser','sourceKey':_0xa4a9('0x14a')});db[_0xa4a9('0x14b')][_0xa4a9('0x114')](db[_0xa4a9('0x1b')],{'foreignKey':_0xa4a9('0x14c'),'targetKey':_0xa4a9('0x14a')});db['VoiceCallReport'][_0xa4a9('0x106')](db['VoiceQueueReport'],{'as':_0xa4a9('0x14d'),'foreignKey':_0xa4a9('0x14e'),'constraints':![]});db[_0xa4a9('0x1d')][_0xa4a9('0x106')](db[_0xa4a9('0x14f')],{'as':_0xa4a9('0x150'),'foreignKey':'uniqueid','constraints':![]});db['VoiceCallReport']['belongsTo'](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x103'),'foreignKey':'UserId'});db['VoiceCallReport'][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'as':'Contact','foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0x32')][_0xa4a9('0x114')](db['MailAccount'],{'as':_0xa4a9('0x36'),'foreignKey':_0xa4a9('0x152')});db['MailServerOut'][_0xa4a9('0x114')](db[_0xa4a9('0x36')],{'as':_0xa4a9('0x36'),'foreignKey':_0xa4a9('0x152')});db[_0xa4a9('0x36')][_0xa4a9('0x153')](db[_0xa4a9('0x32')],{'as':_0xa4a9('0x154'),'onDelete':'cascade'});db[_0xa4a9('0x36')][_0xa4a9('0x153')](db[_0xa4a9('0x34')],{'as':'Smtp','onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x36')]['hasMany'](db['Disposition'],{'as':_0xa4a9('0x155'),'foreignKey':'MailAccountId','onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x36')][_0xa4a9('0x106')](db[_0xa4a9('0x7c')],{'as':'Answers','foreignKey':'MailAccountId'});db['MailAccount'][_0xa4a9('0x106')](db[_0xa4a9('0x156')],{'as':_0xa4a9('0x149'),'foreignKey':_0xa4a9('0x152')});db[_0xa4a9('0x36')][_0xa4a9('0x106')](db[_0xa4a9('0x3a')],{'as':'Interactions'});db[_0xa4a9('0x36')][_0xa4a9('0x106')](db[_0xa4a9('0x3d')],{'as':_0xa4a9('0x157')});db['MailAccount'][_0xa4a9('0x114')](db[_0xa4a9('0xec')],{'as':_0xa4a9('0x158'),'foreignKey':_0xa4a9('0x159')});db[_0xa4a9('0x36')][_0xa4a9('0x114')](db[_0xa4a9('0x89')],{'as':_0xa4a9('0x89'),'foreignKey':_0xa4a9('0x15a')});db[_0xa4a9('0x36')][_0xa4a9('0x114')](db[_0xa4a9('0x81')],{'as':'mandatoryDispositionPause','foreignKey':_0xa4a9('0x142')});db['MailAccount']['belongsToMany'](db['User'],{'as':_0xa4a9('0x144'),'through':'user_has_mail_accounts'});db[_0xa4a9('0x38')][_0xa4a9('0x116')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x144'),'through':_0xa4a9('0x2d')});db[_0xa4a9('0x38')]['belongsToMany'](db[_0xa4a9('0xda')],{'through':'team_has_mail_queues','as':_0xa4a9('0x145')});db[_0xa4a9('0x3a')]['hasMany'](db['MailMessage'],{'as':'Messages','onDelete':_0xa4a9('0x104'),'foreignKey':'MailInteractionId'});db[_0xa4a9('0x3a')][_0xa4a9('0x114')](db[_0xa4a9('0x36')],{'as':'Account','foreignKey':'MailAccountId'});db[_0xa4a9('0x3a')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x15b'),'foreignKey':_0xa4a9('0x151')});db['MailInteraction']['belongsTo'](db[_0xa4a9('0x103')],{'as':'Owner','foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0x3a')][_0xa4a9('0x116')](db[_0xa4a9('0x87')],{'through':_0xa4a9('0x15c'),'as':_0xa4a9('0x15d')});db['MailInteraction'][_0xa4a9('0x116')](db[_0xa4a9('0x87')],{'through':_0xa4a9('0x15c'),'as':'ThroughTags'});db[_0xa4a9('0x3a')][_0xa4a9('0x116')](db['User'],{'as':_0xa4a9('0x15e'),'through':_0xa4a9('0x11d'),'foreignKey':_0xa4a9('0x15f')});db['MailMessage'][_0xa4a9('0x106')](db['Attachment'],{'as':_0xa4a9('0x160'),'onDelete':_0xa4a9('0x104')});db['MailMessage'][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x103')});db[_0xa4a9('0x156')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'onDelete':'cascade','as':_0xa4a9('0x15b')});db[_0xa4a9('0x156')][_0xa4a9('0x114')](db[_0xa4a9('0x3a')],{'as':_0xa4a9('0x161'),'foreignKey':_0xa4a9('0x15f')});db['MailMessage'][_0xa4a9('0x114')](db[_0xa4a9('0x36')],{'as':_0xa4a9('0x162'),'foreignKey':_0xa4a9('0x152')});db[_0xa4a9('0x156')][_0xa4a9('0x114')](db[_0xa4a9('0x5c')],{'as':_0xa4a9('0x5c'),'foreignKey':_0xa4a9('0x163')});db[_0xa4a9('0x156')][_0xa4a9('0x114')](db[_0xa4a9('0x65')],{'as':_0xa4a9('0x65'),'foreignKey':_0xa4a9('0x164')});db[_0xa4a9('0x3d')]['belongsTo'](db['User'],{'onDelete':'restrict'});db[_0xa4a9('0x3d')][_0xa4a9('0x114')](db[_0xa4a9('0x38')],{'onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x3d')]['belongsTo'](db[_0xa4a9('0x36')],{'onDelete':_0xa4a9('0x165')});db['MailApplication'][_0xa4a9('0x114')](db[_0xa4a9('0x166')],{'onDelete':'restrict','foreignKey':_0xa4a9('0x141')});db[_0xa4a9('0x3d')][_0xa4a9('0x114')](db[_0xa4a9('0x87')],{'onDelete':_0xa4a9('0x165'),'foreignKey':'TagId'});db[_0xa4a9('0x3f')][_0xa4a9('0x114')](db['MailAccount'],{});db['MailQueueReport'][_0xa4a9('0x114')](db[_0xa4a9('0xec')],{'as':_0xa4a9('0x158'),'foreignKey':_0xa4a9('0x159')});db[_0xa4a9('0x3f')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x15b'),'foreignKey':'ContactId'});db[_0xa4a9('0x3f')][_0xa4a9('0x114')](db['MailInteraction'],{});db[_0xa4a9('0x3f')][_0xa4a9('0x114')](db[_0xa4a9('0x156')],{});db[_0xa4a9('0x3f')]['belongsTo'](db[_0xa4a9('0x103')],{});db['MailQueueReport']['belongsTo'](db[_0xa4a9('0x38')],{});db[_0xa4a9('0x167')][_0xa4a9('0x106')](db[_0xa4a9('0x168')],{'as':_0xa4a9('0x169'),'onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x42')][_0xa4a9('0x106')](db[_0xa4a9('0x7e')],{'as':'Dispositions','foreignKey':_0xa4a9('0x16a'),'onDelete':'cascade'});db[_0xa4a9('0x42')]['hasMany'](db['CannedAnswer'],{'as':'Answers','foreignKey':_0xa4a9('0x16a')});db[_0xa4a9('0x42')]['hasMany'](db['FaxInteraction'],{'as':_0xa4a9('0x16b')});db[_0xa4a9('0x42')]['hasMany'](db[_0xa4a9('0x44')],{'as':'Applications'});db['FaxAccount'][_0xa4a9('0x106')](db[_0xa4a9('0x10a')],{'as':_0xa4a9('0x16c'),'onDelete':'cascade'});db[_0xa4a9('0x42')][_0xa4a9('0x106')](db['FaxMessage'],{'as':'Messages'});db[_0xa4a9('0x42')][_0xa4a9('0x114')](db[_0xa4a9('0x25')],{'as':_0xa4a9('0x25')});db[_0xa4a9('0x42')]['belongsTo'](db[_0xa4a9('0xec')],{'as':'List','foreignKey':_0xa4a9('0x159')});db[_0xa4a9('0x42')][_0xa4a9('0x114')](db[_0xa4a9('0x81')],{'as':'mandatoryDispositionPause','foreignKey':_0xa4a9('0x142')});db[_0xa4a9('0x42')][_0xa4a9('0x116')](db['User'],{'as':_0xa4a9('0x144'),'through':_0xa4a9('0x16d')});db[_0xa4a9('0x44')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x44')][_0xa4a9('0x114')](db[_0xa4a9('0x4a')],{'onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x44')][_0xa4a9('0x114')](db[_0xa4a9('0x42')],{'onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x44')][_0xa4a9('0x114')](db[_0xa4a9('0x87')],{'onDelete':_0xa4a9('0x165'),'foreignKey':_0xa4a9('0x16e')});db[_0xa4a9('0x46')][_0xa4a9('0x106')](db['FaxMessage'],{'as':'Messages','onDelete':'cascade','foreignKey':_0xa4a9('0x16f')});db[_0xa4a9('0x46')][_0xa4a9('0x114')](db[_0xa4a9('0x42')],{'as':_0xa4a9('0x162'),'foreignKey':'FaxAccountId'});db[_0xa4a9('0x46')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x15b'),'foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0x46')]['belongsTo'](db[_0xa4a9('0x103')],{'as':'Owner','foreignKey':'UserId'});db[_0xa4a9('0x46')][_0xa4a9('0x116')](db[_0xa4a9('0x87')],{'through':_0xa4a9('0x170'),'as':'Tags'});db['FaxInteraction'][_0xa4a9('0x116')](db['Tag'],{'through':_0xa4a9('0x170'),'as':_0xa4a9('0x171')});db[_0xa4a9('0x46')][_0xa4a9('0x116')](db['User'],{'as':_0xa4a9('0x15e'),'through':'user_has_fax_interactions','foreignKey':'FaxInteractionId'});db[_0xa4a9('0x48')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'onDelete':_0xa4a9('0x104'),'as':_0xa4a9('0x103')});db[_0xa4a9('0x48')][_0xa4a9('0x114')](db['FaxInteraction'],{'as':_0xa4a9('0x161'),'foreignKey':'FaxInteractionId'});db[_0xa4a9('0x48')]['belongsTo'](db[_0xa4a9('0x6e')],{'onDelete':_0xa4a9('0x104'),'as':_0xa4a9('0x15b')});db[_0xa4a9('0x48')][_0xa4a9('0x114')](db[_0xa4a9('0xe1')],{'as':'Attachment','foreignKey':_0xa4a9('0x172')});db[_0xa4a9('0x48')][_0xa4a9('0x114')](db[_0xa4a9('0x42')],{'as':_0xa4a9('0x162'),'foreignKey':_0xa4a9('0x16a')});db[_0xa4a9('0x4a')][_0xa4a9('0x116')](db[_0xa4a9('0x103')],{'as':'Agents','through':'UserFaxQueue'});db['FaxQueue']['belongsToMany'](db['Team'],{'through':'team_has_fax_queues','as':_0xa4a9('0x145')});db[_0xa4a9('0x4b')]['belongsTo'](db[_0xa4a9('0x42')],{});db[_0xa4a9('0x4b')][_0xa4a9('0x114')](db[_0xa4a9('0xec')],{'as':'List','foreignKey':_0xa4a9('0x159')});db['FaxQueueReport'][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x15b'),'foreignKey':'ContactId'});db['FaxQueueReport']['belongsTo'](db[_0xa4a9('0x46')],{});db[_0xa4a9('0x4b')][_0xa4a9('0x114')](db[_0xa4a9('0x48')],{});db[_0xa4a9('0x4b')]['belongsTo'](db[_0xa4a9('0x103')],{});db[_0xa4a9('0x4b')][_0xa4a9('0x114')](db['FaxQueue'],{});db[_0xa4a9('0x4c')][_0xa4a9('0x106')](db[_0xa4a9('0x7e')],{'as':_0xa4a9('0x155'),'foreignKey':_0xa4a9('0x173'),'onDelete':'cascade'});db[_0xa4a9('0x4c')][_0xa4a9('0x106')](db[_0xa4a9('0x7c')],{'as':_0xa4a9('0x174'),'foreignKey':_0xa4a9('0x173')});db[_0xa4a9('0x4c')][_0xa4a9('0x106')](db[_0xa4a9('0x50')],{'as':_0xa4a9('0x149'),'foreignKey':_0xa4a9('0x173')});db['SmsAccount'][_0xa4a9('0x106')](db[_0xa4a9('0x10e')],{'as':'Interactions'});db['SmsAccount']['hasMany'](db[_0xa4a9('0x175')],{'as':_0xa4a9('0x157')});db[_0xa4a9('0x4c')]['belongsTo'](db[_0xa4a9('0xec')],{'as':'List','foreignKey':_0xa4a9('0x159')});db['SmsAccount'][_0xa4a9('0x114')](db[_0xa4a9('0x81')],{'as':_0xa4a9('0x176'),'foreignKey':_0xa4a9('0x142')});db['SmsAccount']['belongsToMany'](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x144'),'through':'user_has_sms_accounts'});db[_0xa4a9('0x175')][_0xa4a9('0x114')](db['User'],{'onDelete':'restrict'});db[_0xa4a9('0x175')]['belongsTo'](db[_0xa4a9('0x52')],{'onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x175')][_0xa4a9('0x114')](db[_0xa4a9('0x4c')],{'onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x175')]['belongsTo'](db[_0xa4a9('0x166')],{'onDelete':_0xa4a9('0x165'),'foreignKey':_0xa4a9('0x141')});db[_0xa4a9('0x175')]['belongsTo'](db[_0xa4a9('0x87')],{'onDelete':_0xa4a9('0x165'),'foreignKey':'TagId'});db[_0xa4a9('0x10e')][_0xa4a9('0x106')](db['SmsMessage'],{'as':_0xa4a9('0x149'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x177')});db[_0xa4a9('0x10e')][_0xa4a9('0x114')](db[_0xa4a9('0x4c')],{'as':'Account','foreignKey':'SmsAccountId'});db[_0xa4a9('0x10e')]['belongsTo'](db[_0xa4a9('0x6e')],{'as':'Contact','foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0x10e')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x178'),'foreignKey':'UserId'});db[_0xa4a9('0x10e')][_0xa4a9('0x116')](db[_0xa4a9('0x87')],{'through':_0xa4a9('0x179'),'as':'Tags'});db[_0xa4a9('0x10e')]['belongsToMany'](db['Tag'],{'through':_0xa4a9('0x179'),'as':'ThroughTags'});db[_0xa4a9('0x10e')][_0xa4a9('0x116')](db[_0xa4a9('0x103')],{'as':'Users','through':_0xa4a9('0x17a'),'foreignKey':'SmsInteractionId'});db['SmsMessage']['belongsTo'](db[_0xa4a9('0x103')],{'as':'User'});db[_0xa4a9('0x50')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'onDelete':_0xa4a9('0x104'),'as':_0xa4a9('0x15b')});db['SmsMessage'][_0xa4a9('0x114')](db[_0xa4a9('0x10e')],{'onDelete':'cascade','as':'Interaction','foreignKey':_0xa4a9('0x177')});db['SmsMessage'][_0xa4a9('0x114')](db[_0xa4a9('0x4c')],{'as':_0xa4a9('0x162'),'foreignKey':_0xa4a9('0x173')});db['SmsQueue'][_0xa4a9('0x116')](db['User'],{'as':_0xa4a9('0x144'),'through':'UserSmsQueue','foreignKey':_0xa4a9('0x17b')});db[_0xa4a9('0x52')]['belongsToMany'](db[_0xa4a9('0xda')],{'through':_0xa4a9('0x17c'),'as':_0xa4a9('0x145')});db[_0xa4a9('0x53')][_0xa4a9('0x106')](db[_0xa4a9('0x7e')],{'as':_0xa4a9('0x155'),'foreignKey':_0xa4a9('0x17d'),'onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x53')][_0xa4a9('0x106')](db[_0xa4a9('0x7c')],{'as':_0xa4a9('0x174'),'foreignKey':_0xa4a9('0x17d')});db[_0xa4a9('0x53')]['hasMany'](db['OpenchannelInteraction'],{'as':_0xa4a9('0x16b'),'foreignKey':_0xa4a9('0x17d')});db[_0xa4a9('0x53')][_0xa4a9('0x106')](db[_0xa4a9('0x58')],{'as':_0xa4a9('0x149'),'foreignKey':_0xa4a9('0x17d')});db[_0xa4a9('0x53')][_0xa4a9('0x106')](db[_0xa4a9('0x55')],{'as':_0xa4a9('0x157'),'foreignKey':_0xa4a9('0x17d')});db[_0xa4a9('0x53')][_0xa4a9('0x114')](db[_0xa4a9('0xec')],{'as':'List','foreignKey':'ListId'});db[_0xa4a9('0x53')][_0xa4a9('0x114')](db[_0xa4a9('0x81')],{'as':_0xa4a9('0x176'),'foreignKey':_0xa4a9('0x142')});db[_0xa4a9('0x53')][_0xa4a9('0x116')](db[_0xa4a9('0x103')],{'as':'Agents','through':_0xa4a9('0x12f')});db['OpenchannelApplication']['belongsTo'](db['User'],{'onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x55')][_0xa4a9('0x114')](db[_0xa4a9('0x5a')],{'onDelete':_0xa4a9('0x165'),'foreignKey':_0xa4a9('0x17e')});db['OpenchannelApplication'][_0xa4a9('0x114')](db[_0xa4a9('0x53')],{'onDelete':_0xa4a9('0x165'),'foreignKey':_0xa4a9('0x17d')});db['OpenchannelApplication']['belongsTo'](db['Interval'],{'onDelete':_0xa4a9('0x165'),'foreignKey':_0xa4a9('0x141')});db['OpenchannelApplication'][_0xa4a9('0x114')](db['Tag'],{'onDelete':_0xa4a9('0x165'),'foreignKey':_0xa4a9('0x16e')});db[_0xa4a9('0x10c')]['hasMany'](db[_0xa4a9('0x58')],{'as':_0xa4a9('0x149'),'onDelete':'cascade','foreignKey':_0xa4a9('0x17f')});db[_0xa4a9('0x10c')][_0xa4a9('0x114')](db[_0xa4a9('0x53')],{'as':_0xa4a9('0x162'),'foreignKey':'OpenchannelAccountId'});db[_0xa4a9('0x10c')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x15b'),'foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0x10c')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x178'),'foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0x10c')][_0xa4a9('0x116')](db[_0xa4a9('0x87')],{'through':_0xa4a9('0x180'),'as':_0xa4a9('0x15d')});db[_0xa4a9('0x10c')][_0xa4a9('0x116')](db[_0xa4a9('0x87')],{'through':_0xa4a9('0x180'),'as':_0xa4a9('0x171')});db[_0xa4a9('0x10c')][_0xa4a9('0x116')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x15e'),'through':_0xa4a9('0x11f'),'foreignKey':_0xa4a9('0x17f')});db[_0xa4a9('0x58')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'onDelete':'cascade','as':_0xa4a9('0x103')});db[_0xa4a9('0x58')][_0xa4a9('0x114')](db['CmContact'],{'onDelete':_0xa4a9('0x104'),'as':_0xa4a9('0x15b')});db[_0xa4a9('0x58')]['belongsTo'](db[_0xa4a9('0x10c')],{'onDelete':_0xa4a9('0x104'),'as':_0xa4a9('0x161'),'foreignKey':_0xa4a9('0x17f')});db[_0xa4a9('0x58')]['belongsTo'](db[_0xa4a9('0xe1')],{'as':_0xa4a9('0xe1'),'foreignKey':'AttachmentId'});db[_0xa4a9('0x58')][_0xa4a9('0x114')](db['OpenchannelAccount'],{'as':_0xa4a9('0x162'),'foreignKey':_0xa4a9('0x17d')});db[_0xa4a9('0x5a')][_0xa4a9('0x116')](db['User'],{'as':'Agents','through':_0xa4a9('0x181'),'foreignKey':'OpenchannelQueueId'});db[_0xa4a9('0x5a')][_0xa4a9('0x116')](db['Team'],{'through':_0xa4a9('0x182'),'as':_0xa4a9('0x145')});db[_0xa4a9('0x5c')][_0xa4a9('0x106')](db[_0xa4a9('0x7e')],{'as':_0xa4a9('0x155'),'foreignKey':_0xa4a9('0x163'),'onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x5c')][_0xa4a9('0x106')](db['CannedAnswer'],{'as':'Answers','foreignKey':_0xa4a9('0x163')});db['ChatWebsite'][_0xa4a9('0x106')](db['ChatProactiveAction'],{'as':_0xa4a9('0x183')});db[_0xa4a9('0x5c')]['hasMany'](db[_0xa4a9('0x61')],{'as':_0xa4a9('0x16b')});db[_0xa4a9('0x5c')][_0xa4a9('0x106')](db[_0xa4a9('0x5f')],{'as':_0xa4a9('0x157')});db[_0xa4a9('0x5c')][_0xa4a9('0x106')](db['ChatMessage'],{'as':_0xa4a9('0x149')});db[_0xa4a9('0x5c')][_0xa4a9('0x114')](db[_0xa4a9('0xec')],{'as':'List','foreignKey':'ListId'});db[_0xa4a9('0x5c')][_0xa4a9('0x114')](db[_0xa4a9('0x166')],{'as':_0xa4a9('0x166'),'foreignKey':_0xa4a9('0x141')});db[_0xa4a9('0x5c')][_0xa4a9('0x114')](db[_0xa4a9('0x36')],{'as':_0xa4a9('0x36'),'foreignKey':'MailAccountId'});db[_0xa4a9('0x5c')][_0xa4a9('0x114')](db['Pause'],{'as':_0xa4a9('0x176'),'foreignKey':'mandatoryDispositionPauseId'});db[_0xa4a9('0x5c')][_0xa4a9('0x116')](db['User'],{'as':_0xa4a9('0x144'),'through':'user_has_chat_websites'});db[_0xa4a9('0x5d')][_0xa4a9('0x114')](db[_0xa4a9('0x53')],{});db['OpenchannelQueueReport']['belongsTo'](db[_0xa4a9('0xec')],{'as':'List','foreignKey':_0xa4a9('0x159')});db['OpenchannelQueueReport'][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x15b'),'foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0x5d')][_0xa4a9('0x114')](db[_0xa4a9('0x10c')],{});db['OpenchannelQueueReport'][_0xa4a9('0x114')](db[_0xa4a9('0x58')],{});db[_0xa4a9('0x5d')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{});db[_0xa4a9('0x5d')]['belongsTo'](db[_0xa4a9('0x5a')],{});db[_0xa4a9('0x5f')][_0xa4a9('0x114')](db['User'],{'as':_0xa4a9('0x184'),'foreignKey':_0xa4a9('0x105'),'onDelete':_0xa4a9('0x165')});db['ChatApplication'][_0xa4a9('0x114')](db[_0xa4a9('0x67')],{'as':'Queue','foreignKey':'ChatQueueId','onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x5f')]['belongsTo'](db[_0xa4a9('0x5c')],{'as':'Website','foreignKey':_0xa4a9('0x163'),'onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x5f')][_0xa4a9('0x114')](db['Tag'],{'onDelete':'restrict','foreignKey':'TagId'});db['ChatInteraction'][_0xa4a9('0x106')](db[_0xa4a9('0x63')],{'as':_0xa4a9('0x149'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x185')});db['ChatInteraction'][_0xa4a9('0x114')](db[_0xa4a9('0x5c')],{'as':_0xa4a9('0x162'),'foreignKey':_0xa4a9('0x163')});db[_0xa4a9('0x61')][_0xa4a9('0x114')](db['CmContact'],{'as':_0xa4a9('0x15b'),'foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0x61')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x178'),'foreignKey':'UserId'});db[_0xa4a9('0x61')]['belongsToMany'](db[_0xa4a9('0x87')],{'through':_0xa4a9('0x186'),'as':_0xa4a9('0x15d')});db[_0xa4a9('0x61')][_0xa4a9('0x116')](db[_0xa4a9('0x87')],{'through':_0xa4a9('0x186'),'as':_0xa4a9('0x171')});db[_0xa4a9('0x61')][_0xa4a9('0x116')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x15e'),'through':_0xa4a9('0x187'),'foreignKey':_0xa4a9('0x185')});db[_0xa4a9('0x63')][_0xa4a9('0x114')](db['User'],{'onDelete':_0xa4a9('0x104'),'as':'User'});db[_0xa4a9('0x63')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'onDelete':_0xa4a9('0x104'),'as':_0xa4a9('0x15b'),'foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0x63')][_0xa4a9('0x114')](db[_0xa4a9('0x61')],{'onDelete':_0xa4a9('0x104'),'as':_0xa4a9('0x161'),'foreignKey':_0xa4a9('0x185')});db[_0xa4a9('0x63')][_0xa4a9('0x114')](db[_0xa4a9('0xe1')],{'as':_0xa4a9('0xe1'),'foreignKey':_0xa4a9('0x172')});db[_0xa4a9('0x63')][_0xa4a9('0x114')](db['ChatWebsite'],{'as':_0xa4a9('0x162'),'foreignKey':'ChatWebsiteId'});db[_0xa4a9('0x65')][_0xa4a9('0x106')](db[_0xa4a9('0xe1')],{'as':_0xa4a9('0x160'),'foreignKey':'ChatOfflineMessageId','onDelete':_0xa4a9('0x104'),'hooks':!![]});db[_0xa4a9('0x65')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'onDelete':_0xa4a9('0x104'),'as':_0xa4a9('0x15b'),'foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0x65')][_0xa4a9('0x114')](db[_0xa4a9('0x5c')],{'as':_0xa4a9('0x162'),'foreignKey':_0xa4a9('0x163')});db[_0xa4a9('0x67')][_0xa4a9('0x116')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x144'),'through':'UserChatQueue','hooks':!![]});db[_0xa4a9('0x67')][_0xa4a9('0x116')](db['Team'],{'through':'team_has_chat_queues','as':_0xa4a9('0x145')});db[_0xa4a9('0x68')][_0xa4a9('0x106')](db[_0xa4a9('0x188')],{'as':_0xa4a9('0x149'),'foreignKey':_0xa4a9('0x189'),'onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x68')][_0xa4a9('0x116')](db['User'],{'as':_0xa4a9('0x139'),'through':_0xa4a9('0x117')});db['ChatProactiveAction']['belongsTo'](db['ChatWebsite'],{'as':'Website','foreignKey':'ChatWebsiteId'});db['CmCompany'][_0xa4a9('0x106')](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x118'),'foreignKey':'CompanyId'});db['CmContact'][_0xa4a9('0x106')](db[_0xa4a9('0x70')],{'as':_0xa4a9('0x13b'),'foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0x6e')]['hasMany'](db[_0xa4a9('0x73')],{'as':_0xa4a9('0x13c'),'foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0x6e')][_0xa4a9('0x106')](db[_0xa4a9('0x75')],{'as':_0xa4a9('0x13d'),'foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0x6e')][_0xa4a9('0x106')](db['ReportAgentPreview'],{'as':_0xa4a9('0x10b'),'foreignKey':'ContactId'});db[_0xa4a9('0x6e')][_0xa4a9('0x106')](db[_0xa4a9('0xcc')],{'as':_0xa4a9('0x18a'),'foreignKey':'ContactId'});db[_0xa4a9('0x6e')]['hasMany'](db['OpenchannelInteraction'],{'as':'OpenchannelInteractions','foreignKey':_0xa4a9('0x151'),'onDelete':'restrict'});db['CmContact'][_0xa4a9('0x106')](db[_0xa4a9('0x61')],{'as':'ChatInteractions','foreignKey':'ContactId','onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x6e')][_0xa4a9('0x106')](db[_0xa4a9('0x10e')],{'as':_0xa4a9('0x10f'),'foreignKey':_0xa4a9('0x151'),'onDelete':_0xa4a9('0x165')});db['CmContact']['hasMany'](db[_0xa4a9('0x46')],{'as':_0xa4a9('0x110'),'foreignKey':_0xa4a9('0x151'),'onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x6e')]['hasMany'](db[_0xa4a9('0x3a')],{'as':'MailInteractions','foreignKey':_0xa4a9('0x151'),'onDelete':'restrict'});db[_0xa4a9('0x6e')]['belongsTo'](db[_0xa4a9('0x6c')],{'as':_0xa4a9('0x18b'),'foreignKey':_0xa4a9('0x18c')});db[_0xa4a9('0x6e')][_0xa4a9('0x114')](db[_0xa4a9('0xec')],{'as':_0xa4a9('0x158'),'foreignKey':_0xa4a9('0x159'),'onDelete':_0xa4a9('0x104')});db['CmContact'][_0xa4a9('0x116')](db['User'],{'as':'Users','through':'cm_user_has_contacts'});db[_0xa4a9('0x6e')][_0xa4a9('0x116')](db[_0xa4a9('0x87')],{'as':_0xa4a9('0x15d'),'through':_0xa4a9('0x18d')});db['CmContact'][_0xa4a9('0x116')](db[_0xa4a9('0x87')],{'through':_0xa4a9('0x18d'),'as':_0xa4a9('0x171')});db[_0xa4a9('0x70')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x15b'),'foreignKey':_0xa4a9('0x151'),'onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x70')]['belongsTo'](db[_0xa4a9('0xec')],{'as':_0xa4a9('0x158'),'foreignKey':_0xa4a9('0x159'),'onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x70')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'as':'Agent','foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0x70')]['belongsTo'](db[_0xa4a9('0x121')],{'as':_0xa4a9('0x18e'),'foreignKey':'VoiceQueueId','onDelete':_0xa4a9('0x104')});db['CmHopper'][_0xa4a9('0x114')](db[_0xa4a9('0xdd')],{'as':_0xa4a9('0xdd'),'foreignKey':_0xa4a9('0x18f'),'onDelete':_0xa4a9('0x104')});db['CmHopper'][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x178'),'foreignKey':_0xa4a9('0x190')});db[_0xa4a9('0x13e')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x15b'),'foreignKey':'ContactId','onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x13e')][_0xa4a9('0x114')](db[_0xa4a9('0xec')],{'as':'List','foreignKey':_0xa4a9('0x159'),'onDelete':'cascade'});db[_0xa4a9('0x13e')][_0xa4a9('0x114')](db[_0xa4a9('0x121')],{'as':_0xa4a9('0x18e'),'foreignKey':'VoiceQueueId','onDelete':'cascade'});db[_0xa4a9('0x13e')]['belongsTo'](db[_0xa4a9('0xdd')],{'as':_0xa4a9('0xdd'),'foreignKey':_0xa4a9('0x18f'),'onDelete':_0xa4a9('0x104')});db['Automation'][_0xa4a9('0x106')](db[_0xa4a9('0x7f')],{'as':{'plural':_0xa4a9('0x191'),'singular':_0xa4a9('0x192')},'foreignKey':_0xa4a9('0x193'),'onDelete':_0xa4a9('0x104'),'hooks':!![]});db['Automation'][_0xa4a9('0x106')](db[_0xa4a9('0x7f')],{'as':{'plural':_0xa4a9('0x194'),'singular':_0xa4a9('0x195')},'foreignKey':'AutomationAnyId','onDelete':_0xa4a9('0x104'),'hooks':!![]});db[_0xa4a9('0x7a')][_0xa4a9('0x106')](db[_0xa4a9('0x196')],{'as':_0xa4a9('0x197'),'foreignKey':_0xa4a9('0x198'),'onDelete':_0xa4a9('0x104'),'hooks':!![]});db['Disposition'][_0xa4a9('0x106')](db[_0xa4a9('0x7e')],{'as':_0xa4a9('0x155'),'foreignKey':_0xa4a9('0x199'),'onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x166')][_0xa4a9('0x106')](db[_0xa4a9('0x166')],{'as':_0xa4a9('0x19a'),'foreignKey':_0xa4a9('0x141'),'onDelete':_0xa4a9('0x104'),'hooks':!![],'required':![]});db[_0xa4a9('0x166')][_0xa4a9('0x106')](db[_0xa4a9('0x10a')],{'as':_0xa4a9('0x19b'),'foreignKey':_0xa4a9('0x141'),'onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x166')][_0xa4a9('0x106')](db[_0xa4a9('0x3d')],{'as':_0xa4a9('0x19c'),'foreignKey':_0xa4a9('0x141')});db[_0xa4a9('0x166')][_0xa4a9('0x106')](db[_0xa4a9('0x5f')],{'as':_0xa4a9('0x19d'),'foreignKey':_0xa4a9('0x141')});db[_0xa4a9('0x166')]['hasMany'](db[_0xa4a9('0x44')],{'as':_0xa4a9('0x19e'),'foreignKey':_0xa4a9('0x141')});db['Interval']['hasMany'](db[_0xa4a9('0x175')],{'as':_0xa4a9('0x19f'),'foreignKey':_0xa4a9('0x141')});db['Schedule']['belongsTo'](db[_0xa4a9('0x36')],{});db[_0xa4a9('0x84')][_0xa4a9('0x114')](db[_0xa4a9('0x92')],{'foreignKey':_0xa4a9('0x1a0')});db['Schedule'][_0xa4a9('0x114')](db[_0xa4a9('0x90')],{'foreignKey':_0xa4a9('0x1a1')});db['Sound'][_0xa4a9('0x116')](db[_0xa4a9('0x17')],{'as':_0xa4a9('0x1a2'),'through':'moh_has_sounds','onDelete':_0xa4a9('0x165')});db[_0xa4a9('0x87')][_0xa4a9('0x116')](db[_0xa4a9('0x6e')],{'through':'cm_contact_has_tags'});db[_0xa4a9('0x87')][_0xa4a9('0x116')](db[_0xa4a9('0x61')],{'through':'chat_interaction_has_tags'});db[_0xa4a9('0x87')]['belongsToMany'](db[_0xa4a9('0x3a')],{'through':_0xa4a9('0x15c')});db[_0xa4a9('0x87')][_0xa4a9('0x116')](db['SmsInteraction'],{'through':'sms_interaction_has_tags'});db[_0xa4a9('0x87')][_0xa4a9('0x116')](db[_0xa4a9('0x46')],{'through':_0xa4a9('0x170')});db[_0xa4a9('0x87')][_0xa4a9('0x116')](db[_0xa4a9('0x10c')],{'through':_0xa4a9('0x180')});db['Tag'][_0xa4a9('0x116')](db['WhatsappInteraction'],{'through':_0xa4a9('0x1a3')});db[_0xa4a9('0x8b')][_0xa4a9('0x106')](db['Condition'],{'as':{'plural':_0xa4a9('0x1a4'),'singular':_0xa4a9('0x1a5')},'foreignKey':'TriggerAllId','onDelete':_0xa4a9('0x104'),'hooks':!![]});db[_0xa4a9('0x8b')]['hasMany'](db['Condition'],{'as':{'plural':_0xa4a9('0x1a6'),'singular':_0xa4a9('0x1a7')},'foreignKey':_0xa4a9('0x1a8'),'onDelete':_0xa4a9('0x104'),'hooks':!![]});db[_0xa4a9('0x8b')][_0xa4a9('0x106')](db[_0xa4a9('0x196')],{'as':_0xa4a9('0x197'),'foreignKey':_0xa4a9('0x1a9'),'onDelete':_0xa4a9('0x104'),'hooks':!![]});db['AnalyticCustomReport'][_0xa4a9('0x106')](db['AnalyticFieldReport'],{'as':_0xa4a9('0x1aa'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1a1'),'hooks':!![]});db[_0xa4a9('0x92')][_0xa4a9('0x106')](db[_0xa4a9('0x98')],{'as':'Fields','onDelete':_0xa4a9('0x104'),'foreignKey':'DefaultReportId'});db[_0xa4a9('0x96')]['hasMany'](db[_0xa4a9('0x98')],{'as':_0xa4a9('0x1aa'),'onDelete':_0xa4a9('0x104'),'foreignKey':'MetricId'});db[_0xa4a9('0x98')][_0xa4a9('0x114')](db[_0xa4a9('0x96')],{'foreignKey':'MetricId'});db[_0xa4a9('0x9a')]['hasMany'](db[_0xa4a9('0x1ab')],{'as':_0xa4a9('0x1ac'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1ad')});db[_0xa4a9('0x1ab')][_0xa4a9('0x106')](db[_0xa4a9('0x9c')],{'as':_0xa4a9('0x1ae'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1af')});db[_0xa4a9('0x1ab')][_0xa4a9('0x106')](db['SalesforceField'],{'as':'Descriptions','onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1b0')});db['SalesforceConfiguration'][_0xa4a9('0x106')](db['SalesforceField'],{'as':_0xa4a9('0x1aa'),'onDelete':'cascade','foreignKey':_0xa4a9('0x1b1')});db[_0xa4a9('0x1ab')]['belongsTo'](db[_0xa4a9('0x9a')],{'as':'Account','foreignKey':'AccountId'});db['SalesforceField'][_0xa4a9('0x106')](db[_0xa4a9('0x9c')],{'as':_0xa4a9('0x1b2'),'foreignKey':_0xa4a9('0x1af')});db['SalesforceField'][_0xa4a9('0x106')](db[_0xa4a9('0x9c')],{'as':_0xa4a9('0x1b3'),'foreignKey':'DescriptionId'});db[_0xa4a9('0x9c')][_0xa4a9('0x106')](db[_0xa4a9('0x9c')],{'as':_0xa4a9('0x1b4'),'foreignKey':'FieldId'});db['SalesforceField']['belongsTo'](db[_0xa4a9('0x1b5')],{'as':_0xa4a9('0x1b5'),'foreignKey':_0xa4a9('0x1b6')});db['SugarcrmAccount'][_0xa4a9('0x106')](db[_0xa4a9('0x1b7')],{'as':'Configurations','onDelete':'cascade','foreignKey':'AccountId'});db[_0xa4a9('0x1b7')]['hasMany'](db['SugarcrmField'],{'as':_0xa4a9('0x1ae'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1af')});db['SugarcrmConfiguration'][_0xa4a9('0x106')](db[_0xa4a9('0xa0')],{'as':'Descriptions','onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1b0')});db[_0xa4a9('0x1b7')][_0xa4a9('0x106')](db[_0xa4a9('0xa0')],{'as':_0xa4a9('0x1aa'),'onDelete':'cascade','foreignKey':_0xa4a9('0x1b1')});db[_0xa4a9('0x1b7')][_0xa4a9('0x114')](db['SugarcrmAccount'],{'as':'Account','foreignKey':_0xa4a9('0x1ad')});db['SugarcrmField'][_0xa4a9('0x106')](db[_0xa4a9('0xa0')],{'as':_0xa4a9('0x1b2'),'foreignKey':_0xa4a9('0x1af')});db['SugarcrmField'][_0xa4a9('0x106')](db[_0xa4a9('0xa0')],{'as':_0xa4a9('0x1b3'),'foreignKey':_0xa4a9('0x1b0')});db['SugarcrmField']['hasMany'](db[_0xa4a9('0xa0')],{'as':'Field','foreignKey':_0xa4a9('0x1b1')});db[_0xa4a9('0xa0')][_0xa4a9('0x114')](db[_0xa4a9('0x1b5')],{'as':'Variable','foreignKey':_0xa4a9('0x1b6')});db['DeskAccount'][_0xa4a9('0x106')](db[_0xa4a9('0x1b8')],{'as':_0xa4a9('0x1ac'),'onDelete':'cascade','foreignKey':'AccountId'});db[_0xa4a9('0x1b8')][_0xa4a9('0x106')](db[_0xa4a9('0xa5')],{'as':'Subjects','onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1af')});db[_0xa4a9('0x1b8')][_0xa4a9('0x106')](db[_0xa4a9('0xa5')],{'as':'Descriptions','onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1b0')});db[_0xa4a9('0x1b8')]['hasMany'](db[_0xa4a9('0xa5')],{'as':_0xa4a9('0x1aa'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1b1')});db[_0xa4a9('0x1b8')][_0xa4a9('0x114')](db[_0xa4a9('0xa2')],{'as':_0xa4a9('0x162'),'foreignKey':_0xa4a9('0x1ad')});db['DeskConfiguration'][_0xa4a9('0x116')](db['Tag'],{'through':_0xa4a9('0x1b9')});db[_0xa4a9('0xa5')][_0xa4a9('0x106')](db[_0xa4a9('0xa5')],{'as':_0xa4a9('0x1b2'),'foreignKey':'SubjectId'});db[_0xa4a9('0xa5')][_0xa4a9('0x106')](db[_0xa4a9('0xa5')],{'as':_0xa4a9('0x1b3'),'foreignKey':_0xa4a9('0x1b0')});db[_0xa4a9('0xa5')][_0xa4a9('0x106')](db[_0xa4a9('0xa5')],{'as':_0xa4a9('0x1b4'),'foreignKey':_0xa4a9('0x1b1')});db[_0xa4a9('0xa5')][_0xa4a9('0x114')](db['Variable'],{'as':'Variable','foreignKey':_0xa4a9('0x1b6')});db[_0xa4a9('0xa7')]['hasMany'](db['ZohoConfiguration'],{'as':_0xa4a9('0x1ac'),'onDelete':'cascade','foreignKey':'AccountId'});db['ZohoConfiguration'][_0xa4a9('0x106')](db[_0xa4a9('0xaa')],{'as':_0xa4a9('0x1ae'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1af')});db[_0xa4a9('0x1ba')][_0xa4a9('0x106')](db[_0xa4a9('0xaa')],{'as':_0xa4a9('0x1bb'),'onDelete':_0xa4a9('0x104'),'foreignKey':'DescriptionId'});db[_0xa4a9('0x1ba')]['hasMany'](db[_0xa4a9('0xaa')],{'as':_0xa4a9('0x1aa'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1b1')});db['ZohoConfiguration'][_0xa4a9('0x114')](db[_0xa4a9('0xa7')],{'as':_0xa4a9('0x162'),'foreignKey':'AccountId'});db[_0xa4a9('0xaa')][_0xa4a9('0x106')](db[_0xa4a9('0xaa')],{'as':'Subject','foreignKey':_0xa4a9('0x1af')});db['ZohoField'][_0xa4a9('0x106')](db[_0xa4a9('0xaa')],{'as':_0xa4a9('0x1b3'),'foreignKey':_0xa4a9('0x1b0')});db['ZohoField']['hasMany'](db['ZohoField'],{'as':_0xa4a9('0x1b4'),'foreignKey':_0xa4a9('0x1b1')});db[_0xa4a9('0xaa')][_0xa4a9('0x114')](db[_0xa4a9('0x1b5')],{'as':_0xa4a9('0x1b5'),'foreignKey':_0xa4a9('0x1b6')});db[_0xa4a9('0xac')]['hasMany'](db[_0xa4a9('0xae')],{'as':_0xa4a9('0x1ac'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1ad')});db[_0xa4a9('0xae')]['hasMany'](db['ZendeskField'],{'as':_0xa4a9('0x1ae'),'foreignKey':_0xa4a9('0x1af')});db[_0xa4a9('0xae')]['hasMany'](db[_0xa4a9('0x1bc')],{'as':_0xa4a9('0x1bb'),'foreignKey':_0xa4a9('0x1b0')});db[_0xa4a9('0xae')][_0xa4a9('0x106')](db[_0xa4a9('0x1bc')],{'as':_0xa4a9('0x1aa'),'foreignKey':_0xa4a9('0x1b1')});db[_0xa4a9('0xae')]['belongsTo'](db[_0xa4a9('0xac')],{'as':_0xa4a9('0x162'),'foreignKey':'AccountId'});db[_0xa4a9('0xae')][_0xa4a9('0x116')](db[_0xa4a9('0x87')],{'through':'int_zendesk_configuration_has_tags'});db['ZendeskField']['hasMany'](db['ZendeskField'],{'as':_0xa4a9('0x1b2'),'foreignKey':'SubjectId'});db[_0xa4a9('0x1bc')]['hasMany'](db[_0xa4a9('0x1bc')],{'as':_0xa4a9('0x1b3'),'foreignKey':_0xa4a9('0x1b0')});db[_0xa4a9('0x1bc')]['hasMany'](db[_0xa4a9('0x1bc')],{'as':_0xa4a9('0x1b4'),'foreignKey':_0xa4a9('0x1b1')});db[_0xa4a9('0x1bc')][_0xa4a9('0x114')](db[_0xa4a9('0x1b5')],{'as':_0xa4a9('0x1b5'),'foreignKey':_0xa4a9('0x1b6')});db[_0xa4a9('0x1bd')][_0xa4a9('0x106')](db[_0xa4a9('0xb2')],{'as':_0xa4a9('0x1ac'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1ad')});db[_0xa4a9('0xb2')]['hasMany'](db['FreshdeskField'],{'as':_0xa4a9('0x1ae'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1af')});db[_0xa4a9('0xb2')][_0xa4a9('0x106')](db[_0xa4a9('0xb4')],{'as':'Descriptions','onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1b0')});db[_0xa4a9('0xb2')]['hasMany'](db[_0xa4a9('0xb4')],{'as':'Fields','onDelete':_0xa4a9('0x104'),'foreignKey':'FieldId'});db[_0xa4a9('0xb2')][_0xa4a9('0x114')](db[_0xa4a9('0x1bd')],{'as':_0xa4a9('0x162'),'foreignKey':_0xa4a9('0x1ad')});db['FreshdeskConfiguration']['belongsToMany'](db[_0xa4a9('0x87')],{'through':_0xa4a9('0x1be')});db[_0xa4a9('0xb4')][_0xa4a9('0x106')](db['FreshdeskField'],{'as':_0xa4a9('0x1b2'),'foreignKey':_0xa4a9('0x1af')});db[_0xa4a9('0xb4')][_0xa4a9('0x106')](db['FreshdeskField'],{'as':_0xa4a9('0x1b3'),'foreignKey':'DescriptionId'});db[_0xa4a9('0xb4')][_0xa4a9('0x106')](db['FreshdeskField'],{'as':'Field','foreignKey':'FieldId'});db[_0xa4a9('0xb4')][_0xa4a9('0x114')](db[_0xa4a9('0x1b5')],{'as':_0xa4a9('0x1b5'),'foreignKey':_0xa4a9('0x1b6')});db[_0xa4a9('0xb5')][_0xa4a9('0x106')](db[_0xa4a9('0xb7')],{'as':_0xa4a9('0x1ac'),'onDelete':_0xa4a9('0x104'),'foreignKey':'AccountId'});db[_0xa4a9('0xb7')][_0xa4a9('0x106')](db['VtigerField'],{'as':_0xa4a9('0x1ae'),'foreignKey':_0xa4a9('0x1af')});db[_0xa4a9('0xb7')]['hasMany'](db[_0xa4a9('0xb8')],{'as':_0xa4a9('0x1bb'),'foreignKey':_0xa4a9('0x1b0')});db['VtigerConfiguration'][_0xa4a9('0x106')](db[_0xa4a9('0xb8')],{'as':_0xa4a9('0x1aa'),'foreignKey':'FieldId'});db[_0xa4a9('0xb7')][_0xa4a9('0x114')](db['VtigerAccount'],{'as':_0xa4a9('0x162'),'foreignKey':_0xa4a9('0x1ad')});db['VtigerField'][_0xa4a9('0x106')](db[_0xa4a9('0xb8')],{'as':_0xa4a9('0x1b2'),'foreignKey':_0xa4a9('0x1af')});db[_0xa4a9('0xb8')][_0xa4a9('0x106')](db[_0xa4a9('0xb8')],{'as':'Description','foreignKey':_0xa4a9('0x1b0')});db['VtigerField']['hasMany'](db[_0xa4a9('0xb8')],{'as':'Field','foreignKey':_0xa4a9('0x1b1')});db[_0xa4a9('0xb8')][_0xa4a9('0x114')](db['Variable'],{'as':'Variable','foreignKey':_0xa4a9('0x1b6')});db['ServicenowAccount'][_0xa4a9('0x106')](db[_0xa4a9('0xbb')],{'as':_0xa4a9('0x1ac'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1ad')});db[_0xa4a9('0xbb')][_0xa4a9('0x106')](db[_0xa4a9('0xbd')],{'as':_0xa4a9('0x1ae'),'foreignKey':_0xa4a9('0x1af')});db[_0xa4a9('0xbb')][_0xa4a9('0x106')](db[_0xa4a9('0xbd')],{'as':'Descriptions','foreignKey':_0xa4a9('0x1b0')});db[_0xa4a9('0xbb')][_0xa4a9('0x106')](db[_0xa4a9('0xbd')],{'as':_0xa4a9('0x1aa'),'foreignKey':_0xa4a9('0x1b1')});db[_0xa4a9('0xbb')][_0xa4a9('0x114')](db[_0xa4a9('0x1bf')],{'as':_0xa4a9('0x162'),'foreignKey':'AccountId'});db[_0xa4a9('0xbd')][_0xa4a9('0x106')](db['ServicenowField'],{'as':_0xa4a9('0x1b2'),'foreignKey':_0xa4a9('0x1af')});db[_0xa4a9('0xbd')]['hasMany'](db[_0xa4a9('0xbd')],{'as':'Description','foreignKey':_0xa4a9('0x1b0')});db[_0xa4a9('0xbd')][_0xa4a9('0x106')](db[_0xa4a9('0xbd')],{'as':_0xa4a9('0x1b4'),'foreignKey':'FieldId'});db[_0xa4a9('0xbd')][_0xa4a9('0x114')](db['Variable'],{'as':_0xa4a9('0x1b5'),'foreignKey':_0xa4a9('0x1b6')});db[_0xa4a9('0x1c0')][_0xa4a9('0x106')](db[_0xa4a9('0xc0')],{'as':'Configurations','onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1ad')});db[_0xa4a9('0xc0')][_0xa4a9('0x106')](db[_0xa4a9('0x1c1')],{'as':_0xa4a9('0x1ae'),'onDelete':'cascade','foreignKey':'SubjectId'});db[_0xa4a9('0xc0')][_0xa4a9('0x106')](db[_0xa4a9('0x1c1')],{'as':_0xa4a9('0x1bb'),'onDelete':_0xa4a9('0x104'),'foreignKey':'DescriptionId'});db[_0xa4a9('0xc0')]['hasMany'](db['Dynamics365Field'],{'as':_0xa4a9('0x1aa'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1b1')});db[_0xa4a9('0xc0')][_0xa4a9('0x114')](db[_0xa4a9('0x1c0')],{'as':_0xa4a9('0x162'),'foreignKey':_0xa4a9('0x1ad')});db[_0xa4a9('0x1c1')]['hasMany'](db[_0xa4a9('0x1c1')],{'as':_0xa4a9('0x1b2'),'foreignKey':_0xa4a9('0x1af')});db[_0xa4a9('0x1c1')][_0xa4a9('0x106')](db[_0xa4a9('0x1c1')],{'as':_0xa4a9('0x1b3'),'foreignKey':_0xa4a9('0x1b0')});db[_0xa4a9('0x1c1')][_0xa4a9('0x106')](db[_0xa4a9('0x1c1')],{'as':'Field','foreignKey':'FieldId'});db[_0xa4a9('0x1c1')][_0xa4a9('0x114')](db[_0xa4a9('0x1b5')],{'as':_0xa4a9('0x1b5'),'foreignKey':_0xa4a9('0x1b6')});db[_0xa4a9('0xc2')]['hasMany'](db[_0xa4a9('0x1c2')],{'as':_0xa4a9('0x1ac'),'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1ad')});db[_0xa4a9('0x1c2')][_0xa4a9('0x106')](db[_0xa4a9('0xc4')],{'as':_0xa4a9('0x1ae'),'foreignKey':_0xa4a9('0x1af')});db['FreshsalesConfiguration'][_0xa4a9('0x106')](db[_0xa4a9('0xc4')],{'as':_0xa4a9('0x1bb'),'foreignKey':'DescriptionId'});db[_0xa4a9('0x1c2')]['hasMany'](db[_0xa4a9('0xc4')],{'as':_0xa4a9('0x1aa'),'foreignKey':_0xa4a9('0x1b1')});db['FreshsalesConfiguration'][_0xa4a9('0x114')](db[_0xa4a9('0xc2')],{'as':'Account','foreignKey':_0xa4a9('0x1ad')});db['FreshsalesField'][_0xa4a9('0x106')](db[_0xa4a9('0xc4')],{'as':'Subject','foreignKey':_0xa4a9('0x1af')});db[_0xa4a9('0xc4')][_0xa4a9('0x106')](db[_0xa4a9('0xc4')],{'as':_0xa4a9('0x1b3'),'foreignKey':'DescriptionId'});db['FreshsalesField'][_0xa4a9('0x106')](db[_0xa4a9('0xc4')],{'as':'Field','foreignKey':_0xa4a9('0x1b1')});db[_0xa4a9('0xc4')][_0xa4a9('0x114')](db['Variable'],{'as':_0xa4a9('0x1b5'),'foreignKey':_0xa4a9('0x1b6')});db[_0xa4a9('0x1c3')]['belongsTo'](db['ChatWebsite'],{});db[_0xa4a9('0x1c3')][_0xa4a9('0x114')](db[_0xa4a9('0xec')],{'as':_0xa4a9('0x158'),'foreignKey':_0xa4a9('0x159')});db[_0xa4a9('0x1c3')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'as':'Contact','foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0x1c3')][_0xa4a9('0x114')](db[_0xa4a9('0x61')],{});db['ChatQueueReport'][_0xa4a9('0x114')](db[_0xa4a9('0x63')],{});db[_0xa4a9('0x1c3')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{});db[_0xa4a9('0x1c3')][_0xa4a9('0x114')](db[_0xa4a9('0x67')],{});db[_0xa4a9('0x188')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1c4')});db[_0xa4a9('0x188')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1c5')});db[_0xa4a9('0xcc')][_0xa4a9('0x106')](db[_0xa4a9('0xca')],{'foreignKey':'SessionId','onDelete':_0xa4a9('0x104')});db[_0xa4a9('0xcc')]['hasMany'](db[_0xa4a9('0xc9')],{'foreignKey':_0xa4a9('0x1c6'),'onDelete':_0xa4a9('0x104')});db[_0xa4a9('0xcd')][_0xa4a9('0x114')](db[_0xa4a9('0x4c')],{});db[_0xa4a9('0xcd')][_0xa4a9('0x114')](db[_0xa4a9('0xec')],{'as':_0xa4a9('0x158'),'foreignKey':_0xa4a9('0x159')});db[_0xa4a9('0xcd')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x15b'),'foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0xcd')][_0xa4a9('0x114')](db[_0xa4a9('0x10e')],{});db['SmsQueueReport']['belongsTo'](db['SmsMessage'],{});db[_0xa4a9('0xcd')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{});db[_0xa4a9('0xcd')][_0xa4a9('0x114')](db[_0xa4a9('0x52')],{});db[_0xa4a9('0x1c7')][_0xa4a9('0x106')](db[_0xa4a9('0xcc')],{'foreignKey':_0xa4a9('0x1c8')});db[_0xa4a9('0x1c7')]['hasMany'](db[_0xa4a9('0xca')],{'foreignKey':_0xa4a9('0x1c8')});db[_0xa4a9('0x1c7')][_0xa4a9('0x106')](db[_0xa4a9('0xc9')],{'foreignKey':_0xa4a9('0x1c8')});db['SquareProject'][_0xa4a9('0x116')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x15e'),'through':_0xa4a9('0x135')});db['Team'][_0xa4a9('0x116')](db[_0xa4a9('0x103')],{'as':'Agents','through':'user_has_teams'});db[_0xa4a9('0xda')]['belongsToMany'](db[_0xa4a9('0x121')],{'through':'TeamVoiceQueue','as':'VoiceQueues'});db[_0xa4a9('0xda')][_0xa4a9('0x116')](db[_0xa4a9('0x38')],{'through':'team_has_mail_queues','as':_0xa4a9('0x1c9')});db[_0xa4a9('0xda')]['belongsToMany'](db[_0xa4a9('0x67')],{'through':_0xa4a9('0x1ca'),'as':_0xa4a9('0x1cb')});db[_0xa4a9('0xda')][_0xa4a9('0x116')](db['FaxQueue'],{'through':_0xa4a9('0x1cc'),'as':_0xa4a9('0x124')});db[_0xa4a9('0xda')][_0xa4a9('0x116')](db[_0xa4a9('0x52')],{'through':'team_has_sms_queues','as':_0xa4a9('0x126')});db[_0xa4a9('0xda')]['belongsToMany'](db['OpenchannelQueue'],{'through':'team_has_openchannel_queues','as':_0xa4a9('0x127')});db[_0xa4a9('0xda')]['belongsToMany'](db[_0xa4a9('0x128')],{'through':_0xa4a9('0x1cd'),'as':_0xa4a9('0x1ce')});db['Campaign'][_0xa4a9('0x106')](db[_0xa4a9('0x70')],{'as':_0xa4a9('0x13b'),'foreignKey':'CampaignId'});db['Campaign'][_0xa4a9('0x106')](db[_0xa4a9('0x73')],{'as':_0xa4a9('0x13c'),'foreignKey':_0xa4a9('0x18f')});db[_0xa4a9('0xdd')][_0xa4a9('0x106')](db['CmHopperHistory'],{'as':_0xa4a9('0x13d'),'foreignKey':_0xa4a9('0x18f')});db[_0xa4a9('0xdd')]['hasMany'](db[_0xa4a9('0x13e')],{'as':_0xa4a9('0x13f'),'foreignKey':_0xa4a9('0x18f')});db[_0xa4a9('0xdd')][_0xa4a9('0x114')](db['Trunk'],{'as':'Trunk','foreignKey':_0xa4a9('0x1cf')});db['Campaign'][_0xa4a9('0x114')](db[_0xa4a9('0x25')],{'as':'TrunkBackup','foreignKey':_0xa4a9('0x1d0')});db[_0xa4a9('0xdd')][_0xa4a9('0x114')](db[_0xa4a9('0x166')],{'as':'Interval','foreignKey':_0xa4a9('0x141')});db[_0xa4a9('0xdd')][_0xa4a9('0x114')](db[_0xa4a9('0x1d1')],{'as':_0xa4a9('0x1d1'),'foreignKey':_0xa4a9('0x1d2')});db[_0xa4a9('0xdd')][_0xa4a9('0x116')](db[_0xa4a9('0xec')],{'as':_0xa4a9('0x11a'),'through':_0xa4a9('0x1d3')});db[_0xa4a9('0xdd')][_0xa4a9('0x116')](db[_0xa4a9('0xec')],{'as':_0xa4a9('0x146'),'through':_0xa4a9('0x1d4')});db['Attachment']['belongsTo'](db[_0xa4a9('0x65')],{'as':_0xa4a9('0x65'),'foreignKey':'ChatOfflineMessageId'});db[_0xa4a9('0xe5')][_0xa4a9('0x114')](db[_0xa4a9('0x156')],{});db[_0xa4a9('0xe5')]['belongsTo'](db[_0xa4a9('0x3a')],{});db[_0xa4a9('0xe5')][_0xa4a9('0x114')](db[_0xa4a9('0x36')],{'foreignKey':_0xa4a9('0x1d5'),'as':_0xa4a9('0x1d6')});db['MailTransferReport'][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'foreignKey':_0xa4a9('0x1d7'),'as':_0xa4a9('0x1d8')});db['MailTransferReport']['belongsTo'](db[_0xa4a9('0x103')],{'foreignKey':'ToUserId','as':_0xa4a9('0x1d9')});db[_0xa4a9('0xe5')][_0xa4a9('0x114')](db[_0xa4a9('0x38')],{'foreignKey':'ToMailQueueId','as':_0xa4a9('0x1da')});db[_0xa4a9('0xe5')][_0xa4a9('0x114')](db[_0xa4a9('0x36')],{'foreignKey':_0xa4a9('0x1db'),'as':_0xa4a9('0x1dc')});db[_0xa4a9('0xe7')][_0xa4a9('0x114')](db[_0xa4a9('0x63')],{});db['ChatTransferReport']['belongsTo'](db[_0xa4a9('0x61')],{});db[_0xa4a9('0xe7')][_0xa4a9('0x114')](db[_0xa4a9('0x5c')],{'foreignKey':_0xa4a9('0x1dd'),'as':'FromAccount'});db[_0xa4a9('0xe7')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'foreignKey':_0xa4a9('0x1d7'),'as':_0xa4a9('0x1d8')});db[_0xa4a9('0xe7')]['belongsTo'](db[_0xa4a9('0x103')],{'foreignKey':_0xa4a9('0x1de'),'as':_0xa4a9('0x1d9')});db[_0xa4a9('0xe7')][_0xa4a9('0x114')](db[_0xa4a9('0x67')],{'foreignKey':_0xa4a9('0x1df'),'as':_0xa4a9('0x1da')});db['ChatTransferReport'][_0xa4a9('0x114')](db[_0xa4a9('0x5c')],{'foreignKey':_0xa4a9('0x1e0'),'as':_0xa4a9('0x1dc')});db[_0xa4a9('0x1e1')]['belongsTo'](db[_0xa4a9('0x48')],{});db[_0xa4a9('0x1e1')]['belongsTo'](db['FaxInteraction'],{});db[_0xa4a9('0x1e1')]['belongsTo'](db[_0xa4a9('0x42')],{'foreignKey':'FromFaxAccountId','as':_0xa4a9('0x1d6')});db[_0xa4a9('0x1e1')]['belongsTo'](db[_0xa4a9('0x103')],{'foreignKey':_0xa4a9('0x1d7'),'as':_0xa4a9('0x1d8')});db[_0xa4a9('0x1e1')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'foreignKey':_0xa4a9('0x1de'),'as':'ToAgent'});db[_0xa4a9('0x1e1')][_0xa4a9('0x114')](db[_0xa4a9('0x4a')],{'foreignKey':'ToFaxQueueId','as':_0xa4a9('0x1da')});db['FaxTransferReport'][_0xa4a9('0x114')](db[_0xa4a9('0x42')],{'foreignKey':'ToFaxAccountId','as':_0xa4a9('0x1dc')});db[_0xa4a9('0xe9')][_0xa4a9('0x114')](db[_0xa4a9('0x58')],{});db[_0xa4a9('0xe9')][_0xa4a9('0x114')](db[_0xa4a9('0x10c')],{});db[_0xa4a9('0xe9')][_0xa4a9('0x114')](db[_0xa4a9('0x53')],{'foreignKey':_0xa4a9('0x1e2'),'as':_0xa4a9('0x1d6')});db['OpenchannelTransferReport']['belongsTo'](db['User'],{'foreignKey':'FromUserId','as':_0xa4a9('0x1d8')});db['OpenchannelTransferReport']['belongsTo'](db[_0xa4a9('0x103')],{'foreignKey':'ToUserId','as':'ToAgent'});db['OpenchannelTransferReport'][_0xa4a9('0x114')](db[_0xa4a9('0x5a')],{'foreignKey':_0xa4a9('0x1e3'),'as':_0xa4a9('0x1da')});db[_0xa4a9('0xe9')]['belongsTo'](db[_0xa4a9('0x53')],{'foreignKey':_0xa4a9('0x1e4'),'as':_0xa4a9('0x1dc')});db[_0xa4a9('0xeb')]['belongsTo'](db['SmsMessage'],{});db[_0xa4a9('0xeb')]['belongsTo'](db[_0xa4a9('0x10e')],{});db['SmsTransferReport'][_0xa4a9('0x114')](db[_0xa4a9('0x4c')],{'foreignKey':_0xa4a9('0x1e5'),'as':_0xa4a9('0x1d6')});db['SmsTransferReport'][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'foreignKey':'FromUserId','as':_0xa4a9('0x1d8')});db[_0xa4a9('0xeb')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'foreignKey':_0xa4a9('0x1de'),'as':_0xa4a9('0x1d9')});db[_0xa4a9('0xeb')]['belongsTo'](db[_0xa4a9('0x52')],{'foreignKey':_0xa4a9('0x1e6'),'as':'ToQueue'});db[_0xa4a9('0xeb')][_0xa4a9('0x114')](db[_0xa4a9('0x4c')],{'foreignKey':'ToSmsAccountId','as':_0xa4a9('0x1dc')});db['CmList'][_0xa4a9('0x106')](db['Disposition'],{'as':_0xa4a9('0x155'),'foreignKey':_0xa4a9('0x159'),'onDelete':_0xa4a9('0x104')});db['CmList'][_0xa4a9('0x106')](db[_0xa4a9('0x77')],{'as':'CustomFields','foreignKey':'ListId'});db[_0xa4a9('0xec')]['hasMany'](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x118'),'onDelete':'cascade','foreignKey':_0xa4a9('0x159')});db[_0xa4a9('0xec')]['hasMany'](db[_0xa4a9('0x73')],{'as':'HopperFinals','foreignKey':_0xa4a9('0x159')});db[_0xa4a9('0xec')][_0xa4a9('0x106')](db['CmHopperHistory'],{'as':_0xa4a9('0x1e7'),'foreignKey':_0xa4a9('0x159')});db['CmList'][_0xa4a9('0x106')](db[_0xa4a9('0x10b')],{'as':_0xa4a9('0x10b'),'foreignKey':'ListId'});db[_0xa4a9('0xec')][_0xa4a9('0x116')](db['VoiceQueue'],{'as':_0xa4a9('0x1e8'),'through':_0xa4a9('0x143')});db[_0xa4a9('0xec')][_0xa4a9('0x116')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x144'),'through':'cm_user_has_lists'});db[_0xa4a9('0xee')][_0xa4a9('0x106')](db[_0xa4a9('0x10a')],{'as':_0xa4a9('0x19b'),'onDelete':_0xa4a9('0x104')});db['VoicePrefix']['belongsToMany'](db['User'],{'as':'Agents','through':_0xa4a9('0x1e9')});db['UserProfile'][_0xa4a9('0x106')](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x15e'),'foreignKey':'userProfileId'});db[_0xa4a9('0xf0')][_0xa4a9('0x106')](db['UserProfileSection'],{'as':_0xa4a9('0x1ea'),'foreignKey':_0xa4a9('0x115'),'onDelete':'cascade'});db[_0xa4a9('0xf2')][_0xa4a9('0x106')](db[_0xa4a9('0x1eb')],{'as':_0xa4a9('0x1ec'),'foreignKey':_0xa4a9('0x1ed'),'onDelete':_0xa4a9('0x104')});db[_0xa4a9('0x131')][_0xa4a9('0x106')](db[_0xa4a9('0x7e')],{'as':_0xa4a9('0x155'),'foreignKey':_0xa4a9('0x1ee'),'onDelete':_0xa4a9('0x104')});db['WhatsappAccount']['hasMany'](db[_0xa4a9('0x7c')],{'as':_0xa4a9('0x174'),'foreignKey':_0xa4a9('0x1ee')});db[_0xa4a9('0x131')][_0xa4a9('0x106')](db[_0xa4a9('0xfa')],{'as':_0xa4a9('0x149'),'foreignKey':_0xa4a9('0x1ee')});db[_0xa4a9('0x131')]['hasMany'](db[_0xa4a9('0xf8')],{'as':'Interactions'});db['WhatsappAccount'][_0xa4a9('0x106')](db[_0xa4a9('0xf6')],{'as':_0xa4a9('0x157')});db['WhatsappAccount']['belongsTo'](db['CmList'],{'as':_0xa4a9('0x158'),'foreignKey':_0xa4a9('0x159')});db[_0xa4a9('0x131')][_0xa4a9('0x114')](db[_0xa4a9('0x81')],{'as':'mandatoryDispositionPause','foreignKey':_0xa4a9('0x142')});db[_0xa4a9('0x131')][_0xa4a9('0x116')](db[_0xa4a9('0x103')],{'as':'Agents','through':_0xa4a9('0x133')});db[_0xa4a9('0xf6')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'onDelete':'restrict'});db[_0xa4a9('0xf6')][_0xa4a9('0x114')](db[_0xa4a9('0x128')],{'onDelete':'restrict'});db['WhatsappApplication'][_0xa4a9('0x114')](db['WhatsappAccount'],{'onDelete':'restrict'});db[_0xa4a9('0xf6')][_0xa4a9('0x114')](db[_0xa4a9('0x166')],{'onDelete':'restrict','foreignKey':_0xa4a9('0x141')});db[_0xa4a9('0xf6')][_0xa4a9('0x114')](db[_0xa4a9('0x87')],{'onDelete':'restrict','foreignKey':'TagId'});db[_0xa4a9('0xf8')][_0xa4a9('0x106')](db['WhatsappMessage'],{'as':'Messages','onDelete':_0xa4a9('0x104'),'foreignKey':_0xa4a9('0x1ef')});db[_0xa4a9('0xf8')][_0xa4a9('0x114')](db[_0xa4a9('0x131')],{'as':_0xa4a9('0x162'),'foreignKey':_0xa4a9('0x1ee')});db[_0xa4a9('0xf8')]['belongsTo'](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x15b'),'foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0xf8')]['belongsTo'](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x178'),'foreignKey':_0xa4a9('0x105')});db[_0xa4a9('0xf8')][_0xa4a9('0x116')](db[_0xa4a9('0x87')],{'through':_0xa4a9('0x1a3'),'as':_0xa4a9('0x15d')});db[_0xa4a9('0xf8')][_0xa4a9('0x116')](db[_0xa4a9('0x87')],{'through':_0xa4a9('0x1a3'),'as':_0xa4a9('0x171')});db[_0xa4a9('0xf8')][_0xa4a9('0x116')](db['User'],{'as':'Users','through':_0xa4a9('0x120'),'foreignKey':'WhatsappInteractionId'});db[_0xa4a9('0xfa')][_0xa4a9('0x114')](db['User'],{'as':_0xa4a9('0x103')});db[_0xa4a9('0xfa')][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'onDelete':'cascade','as':'Contact'});db['WhatsappMessage'][_0xa4a9('0x114')](db['WhatsappInteraction'],{'onDelete':'cascade','as':_0xa4a9('0x161'),'foreignKey':_0xa4a9('0x1ef')});db[_0xa4a9('0xfa')][_0xa4a9('0x114')](db[_0xa4a9('0x131')],{'as':'Account','foreignKey':_0xa4a9('0x1ee')});db[_0xa4a9('0xfc')][_0xa4a9('0x114')](db[_0xa4a9('0x131')],{});db[_0xa4a9('0xfc')][_0xa4a9('0x114')](db['CmList'],{'as':_0xa4a9('0x158'),'foreignKey':_0xa4a9('0x159')});db['WhatsappQueueReport'][_0xa4a9('0x114')](db[_0xa4a9('0x6e')],{'as':_0xa4a9('0x15b'),'foreignKey':_0xa4a9('0x151')});db[_0xa4a9('0xfc')][_0xa4a9('0x114')](db[_0xa4a9('0xf8')],{});db['WhatsappQueueReport'][_0xa4a9('0x114')](db['WhatsappQueue'],{});db[_0xa4a9('0xfc')][_0xa4a9('0x114')](db[_0xa4a9('0xfa')],{});db[_0xa4a9('0xfc')][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{});db['WhatsappTransferReport'][_0xa4a9('0x114')](db[_0xa4a9('0xfa')],{});db['WhatsappTransferReport'][_0xa4a9('0x114')](db[_0xa4a9('0xf8')],{});db['WhatsappTransferReport'][_0xa4a9('0x114')](db[_0xa4a9('0x131')],{'foreignKey':_0xa4a9('0x1f0'),'as':'FromAccount'});db['WhatsappTransferReport'][_0xa4a9('0x114')](db[_0xa4a9('0x131')],{'foreignKey':_0xa4a9('0x1f1'),'as':'ToAccount'});db[_0xa4a9('0xfe')][_0xa4a9('0x114')](db[_0xa4a9('0x128')],{'foreignKey':_0xa4a9('0x1f2'),'as':_0xa4a9('0x1da')});db['WhatsappTransferReport'][_0xa4a9('0x114')](db[_0xa4a9('0x103')],{'foreignKey':_0xa4a9('0x1d7'),'as':'FromAgent'});db['WhatsappTransferReport']['belongsTo'](db['User'],{'foreignKey':_0xa4a9('0x1de'),'as':'ToAgent'});db[_0xa4a9('0x128')]['belongsToMany'](db[_0xa4a9('0x103')],{'as':_0xa4a9('0x144'),'through':_0xa4a9('0x31'),'foreignKey':_0xa4a9('0x1f3')});db['WhatsappQueue'][_0xa4a9('0x116')](db[_0xa4a9('0xda')],{'through':'team_has_whatsapp_queues','as':'Teams'});module[_0xa4a9('0x1f4')]={'db':db,'dbH':dbH};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea31=['./api/smsQueueReport','/api/square/details/reports','./api/squareReportDetail','/api/jscripty/projects','./api/jscriptyProject','/api/settings','/api/square/odbc','./api/squareOdbc','/api/square/projects','./api/squareProject','/api/square/recordings','./api/squareRecording','./api/squareMessage','./api/team','./api/license','/api/campaigns','./api/campaign','./api/migration','./api/attachment','/api/plugins','/api/mail/reports/transfer','/api/chat/reports/transfer','./api/chatTransferReport','./api/faxTransferReport','./api/openchannelTransferReport','/api/sms/reports/transfer','/api/cm/lists','./api/cmList','/api/voice/prefixes','/api/userProfiles','/api/userProfile/sections','./api/userProfileSection','/api/userNotifications','./api/userNotification','./api/whatsappAccount','/api/whatsapp/applications','./api/whatsappApplication','/api/whatsapp/messages','./api/whatsappMessage','./api/whatsappTransferReport','/api/whatsapp/queues','./api/whatsappQueue','/api/cloudProviders','/api/realtime','./api/realtime','./api/authLocal','/api/auth/google','./api/authGoogle','/api/jira','./api/jira','/api/rpc','/api/version','./api/version','/api/system','./api/system','/api/pm2','./api/pm2','./api/webbar','/apidoc','static','/www','join','root','/demo','/snippet','snippet','3.0.0','/plugins','/server/files/plugins','get','route','sendFile','resolve','appPath','/index.html','username','password','apiKey','lastName','phone','mobile','email','clientId','code','accessKey','tenantId','token','channelSecret','accessToken','consumerKey','membername','exten','privateKey','accesskeyid','secretaccesskey','key','accountSid','dsn','secret','registry','isPlainObject','length','isString','replace','@@{','}@@','includes','lodash','express','express-winston','util','./errors','./config/environment','./config/logger','api','auth','./safe-template','safeTemplate','default','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','\x20body=%s','body','format','method','headers','x-forwarded-for','remoteAddress','url','statusCode','user','name','role','inspect','use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','agent_id','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','responseTime','other','agent_name','test','/api/users','./api/user','/api/voice/chanspy','./api/voiceChanSpy','/api/voice/contexts','/api/voice/extensions','./api/voiceExtension','/api/voice/mohs','/api/voice/queues','./api/voiceQueue','/api/voice/recordings','./api/voiceRecording','./api/screenRecording','/api/voice/mails','./api/voiceMail','/api/voice/mails/messages','./api/voiceMailMessage','/api/voice/calls/reports','/api/voice/dials/reports','./api/voiceDialReport','/api/voice/agents/reports','./api/voiceAgentReport','/api/voice/queues/reports','./api/voiceQueueReport','./api/memberReport','/api/trunks','/api/voice/transfers/reports','./api/mailServerOut','/api/mail/accounts','./api/mailAccount','./api/mailQueue','/api/mail/substatuses','./api/mailSubstatus','/api/mail/interactions','./api/mailInteraction','/api/mail/messages','./api/mailMessage','/api/mail/applications','/api/mail/reports/queue','./api/mailQueueReport','/api/dashboards','./api/dashboard','/api/dashboards/items','/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/faxQueueReport','/api/sms/accounts','/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/openchannelInteraction','/api/openchannel/messages','./api/openchannelMessage','/api/openchannel/queues','./api/openchannelQueue','/api/openchannel/reports/queue','./api/openchannelQueueReport','/api/chat/applications','./api/chatInteraction','/api/chat/offline_messages','./api/chatOfflineMessage','./api/chatQueue','./api/chatProactiveAction','/api/cm/companies','./api/cmCompany','/api/cm/contacts','./api/cmContact','/api/cm/hopper','./api/cmHopper','/api/cm/hopper_black','./api/cmHopperFinal','./api/cmHopperHistory','/api/cm/custom_fields','/api/automations','./api/automation','/api/canned_answers','/api/dispositions','./api/disposition','/api/conditions','./api/condition','/api/intervals','./api/interval','./api/pause','/api/cdr','/api/voiceQueuesLog','./api/voiceQueuesLog','./api/schedule','./api/sound','/api/tags','./api/tag','/api/templates','./api/template','./api/trigger','/api/variables','./api/variable','/api/integrations','./api/integration','/api/integrations/reports','./api/analyticCustomReport','/api/analytics/default_reports','./api/analyticDefaultReport','/api/analytics/extracted_reports','/api/analytics/metrics','./api/analyticMetric','/api/analytics/field_reports','./api/analyticFieldReport','/api/analytics/tree_reports','./api/analyticTreeReport','/api/integrations/salesforce/accounts','./api/intSalesforceAccount','/api/integrations/salesforce/configurations','./api/intSalesforceConfiguration','/api/integrations/salesforce/fields','./api/intSalesforceField','/api/integrations/sugarcrm/accounts','./api/intSugarcrmAccount','/api/integrations/sugarcrm/configurations','./api/intSugarcrmConfiguration','/api/integrations/sugarcrm/fields','./api/intSugarcrmField','/api/integrations/desk/accounts','/api/integrations/desk/configurations','./api/intDeskConfiguration','./api/intDeskField','/api/integrations/zoho/accounts','./api/intZohoAccount','/api/integrations/zoho/configurations','./api/intZohoConfiguration','/api/integrations/zoho/fields','./api/intZohoField','/api/integrations/zendesk/accounts','./api/intZendeskAccount','./api/intZendeskConfiguration','/api/integrations/freshdesk/accounts','./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/intVtigerField','/api/integrations/servicenow/accounts','./api/intServicenowAccount','/api/integrations/servicenow/configurations','/api/integrations/servicenow/fields','./api/intServicenowField','/api/integrations/dynamics365/accounts','./api/intDynamics365Account','/api/integrations/dynamics365/fields','./api/intDynamics365Field','/api/integrations/freshsales/accounts','./api/intFreshsalesAccount','./api/intFreshsalesConfiguration','/api/integrations/freshsales/fields','./api/network','/api/chat/reports/queue','./api/chatQueueReport','/api/chat/internal/messages','./api/jscriptyAnswerReport','./api/jscriptyQuestionReport','/api/jscripty/sessions/reports','./api/jscriptySessionReport','/api/sms/reports/queue'];(function(_0x106ba1,_0x2f2f03){var _0xc05c68=function(_0x851c86){while(--_0x851c86){_0x106ba1['push'](_0x106ba1['shift']());}};_0xc05c68(++_0x2f2f03);}(_0xea31,0x6b));var _0x1ea3=function(_0x554953,_0x51760f){_0x554953=_0x554953-0x0;var _0x7f2b0=_0xea31[_0x554953];return _0x7f2b0;};'use strict';var _=require(_0x1ea3('0x0'));var path=require('path');var express=require(_0x1ea3('0x1'));var ewinston=require(_0x1ea3('0x2'));var util=require(_0x1ea3('0x3'));var errors=require(_0x1ea3('0x4'));var config=require(_0x1ea3('0x5'));var logger=require(_0x1ea3('0x6'))(_0x1ea3('0x7'));var authLogger=require('./config/logger')(_0x1ea3('0x8'));var safeTemplate=require(_0x1ea3('0x9'))[_0x1ea3('0xa')];exports[_0x1ea3('0xb')]=function(_0x13e6fb){_0x13e6fb['use'](ewinston[_0x1ea3('0xc')]({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x1b578e,_0x30a6db){var _0x38af81=_0x1ea3('0xd');if(!_[_0x1ea3('0xe')](_0x1b578e['body'])){_0x38af81+=_0x1ea3('0xf');var _0x3cad5b=_0x1b578e[_0x1ea3('0x10')];maskSensitiveData(_0x3cad5b);}return safeTemplate(util[_0x1ea3('0x11')](_0x38af81,_0x1b578e[_0x1ea3('0x12')],_0x1b578e[_0x1ea3('0x13')][_0x1ea3('0x14')]?_0x1b578e['headers'][_0x1ea3('0x14')]:_0x1b578e['connection'][_0x1ea3('0x15')]||_0x1b578e['ip'],_0x1b578e[_0x1ea3('0x16')],_0x30a6db[_0x1ea3('0x17')],_0x30a6db['responseTime'],_0x1b578e[_0x1ea3('0x18')]?_0x1b578e[_0x1ea3('0x18')]['id']:null,_0x1b578e[_0x1ea3('0x18')]?_0x1b578e['user'][_0x1ea3('0x19')]:null,_0x1b578e[_0x1ea3('0x18')]?_0x1b578e[_0x1ea3('0x18')][_0x1ea3('0x1a')]:null,_0x3cad5b?util[_0x1ea3('0x1b')](_0x3cad5b,![],null):''));}}));_0x13e6fb[_0x1ea3('0x1c')](ewinston[_0x1ea3('0xc')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0x48f9a4,_0x2514f4){var _0x199728=_0x1ea3('0x1d');if(_0x48f9a4[_0x1ea3('0x10')]&&_0x48f9a4[_0x1ea3('0x10')]['device']&&_0x48f9a4[_0x1ea3('0x10')][_0x1ea3('0x1e')]){_0x199728=_0x1ea3('0x1f');}return util['format'](_0x199728,_0x48f9a4[_0x1ea3('0x12')],_0x48f9a4[_0x1ea3('0x13')][_0x1ea3('0x14')]?_0x48f9a4['headers'][_0x1ea3('0x14')]:_0x48f9a4['connection'][_0x1ea3('0x15')]||_0x48f9a4['ip'],_0x48f9a4[_0x1ea3('0x16')],_0x2514f4[_0x1ea3('0x17')],_0x2514f4[_0x1ea3('0x20')],_0x48f9a4[_0x1ea3('0x18')]?_0x48f9a4['user']['id']:null,_0x48f9a4[_0x1ea3('0x18')]?_0x48f9a4['user'][_0x1ea3('0x19')]:null,_0x48f9a4['user']?_0x48f9a4[_0x1ea3('0x18')][_0x1ea3('0x1a')]:null,_0x48f9a4[_0x1ea3('0x10')]&&_0x48f9a4['body']['device']?_0x48f9a4[_0x1ea3('0x10')]['device']:_0x1ea3('0x21'),_0x48f9a4[_0x1ea3('0x10')]&&_0x48f9a4[_0x1ea3('0x10')][_0x1ea3('0x1e')]?_0x48f9a4[_0x1ea3('0x10')]['agent_id']:'',_0x48f9a4['body']&&_0x48f9a4[_0x1ea3('0x10')][_0x1ea3('0x22')]?_0x48f9a4[_0x1ea3('0x10')][_0x1ea3('0x22')]:'');},'ignoreRoute':function(_0x3ff4b2){var _0x12283d=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x12283d[_0x1ea3('0x23')](_0x3ff4b2[_0x1ea3('0x16')]);}}));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x24'),require(_0x1ea3('0x25')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x26'),require(_0x1ea3('0x27')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x28'),require('./api/voiceContext'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x29'),require(_0x1ea3('0x2a')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x2b'),require('./api/voiceMusicOnHold'));_0x13e6fb['use'](_0x1ea3('0x2c'),require(_0x1ea3('0x2d')));_0x13e6fb['use'](_0x1ea3('0x2e'),require(_0x1ea3('0x2f')));_0x13e6fb['use']('/api/screen/recordings',require(_0x1ea3('0x30')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x31'),require(_0x1ea3('0x32')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x33'),require(_0x1ea3('0x34')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x35'),require('./api/voiceCallReport'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x36'),require(_0x1ea3('0x37')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x38'),require(_0x1ea3('0x39')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x3a'),require(_0x1ea3('0x3b')));_0x13e6fb[_0x1ea3('0x1c')]('/api/members/reports',require(_0x1ea3('0x3c')));_0x13e6fb['use'](_0x1ea3('0x3d'),require('./api/trunk'));_0x13e6fb['use'](_0x1ea3('0x3e'),require('./api/voiceTransferReport'));_0x13e6fb['use']('/api/mail/out_servers',require(_0x1ea3('0x3f')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x40'),require(_0x1ea3('0x41')));_0x13e6fb[_0x1ea3('0x1c')]('/api/mail/queues',require(_0x1ea3('0x42')));_0x13e6fb['use'](_0x1ea3('0x43'),require(_0x1ea3('0x44')));_0x13e6fb['use'](_0x1ea3('0x45'),require(_0x1ea3('0x46')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x47'),require(_0x1ea3('0x48')));_0x13e6fb['use'](_0x1ea3('0x49'),require('./api/mailApplication'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x4a'),require(_0x1ea3('0x4b')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x4c'),require(_0x1ea3('0x4d')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x4e'),require('./api/dashboardItem'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x4f'),require(_0x1ea3('0x50')));_0x13e6fb['use'](_0x1ea3('0x51'),require(_0x1ea3('0x52')));_0x13e6fb['use'](_0x1ea3('0x53'),require(_0x1ea3('0x54')));_0x13e6fb['use'](_0x1ea3('0x55'),require(_0x1ea3('0x56')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x57'),require(_0x1ea3('0x58')));_0x13e6fb[_0x1ea3('0x1c')]('/api/fax/reports/queue',require(_0x1ea3('0x59')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x5a'),require('./api/smsAccount'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x5b'),require(_0x1ea3('0x5c')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x5d'),require(_0x1ea3('0x5e')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x5f'),require(_0x1ea3('0x60')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x61'),require('./api/smsQueue'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x62'),require(_0x1ea3('0x63')));_0x13e6fb[_0x1ea3('0x1c')]('/api/openchannel/applications',require(_0x1ea3('0x64')));_0x13e6fb[_0x1ea3('0x1c')]('/api/openchannel/interactions',require(_0x1ea3('0x65')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x66'),require(_0x1ea3('0x67')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x68'),require(_0x1ea3('0x69')));_0x13e6fb['use']('/api/chat/websites',require('./api/chatWebsite'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x6a'),require(_0x1ea3('0x6b')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x6c'),require('./api/chatApplication'));_0x13e6fb[_0x1ea3('0x1c')]('/api/chat/interactions',require(_0x1ea3('0x6d')));_0x13e6fb[_0x1ea3('0x1c')]('/api/chat/messages',require('./api/chatMessage'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x6e'),require(_0x1ea3('0x6f')));_0x13e6fb[_0x1ea3('0x1c')]('/api/chat/queues',require(_0x1ea3('0x70')));_0x13e6fb[_0x1ea3('0x1c')]('/api/chat/groups',require('./api/chatGroup'));_0x13e6fb[_0x1ea3('0x1c')]('/api/chat/proactive_actions',require(_0x1ea3('0x71')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x72'),require(_0x1ea3('0x73')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x74'),require(_0x1ea3('0x75')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x76'),require(_0x1ea3('0x77')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x78'),require('./api/cmHopperBlack'));_0x13e6fb[_0x1ea3('0x1c')]('/api/cm/hopper_final',require(_0x1ea3('0x79')));_0x13e6fb[_0x1ea3('0x1c')]('/api/cm/hopper_history',require(_0x1ea3('0x7a')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x7b'),require('./api/cmCustomField'));_0x13e6fb['use']('/api/actions',require('./api/action'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x7c'),require(_0x1ea3('0x7d')));_0x13e6fb['use'](_0x1ea3('0x7e'),require('./api/cannedAnswer'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x7f'),require(_0x1ea3('0x80')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x81'),require(_0x1ea3('0x82')));_0x13e6fb['use'](_0x1ea3('0x83'),require(_0x1ea3('0x84')));_0x13e6fb['use']('/api/pauses',require(_0x1ea3('0x85')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x86'),require('./api/cdr'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x87'),require(_0x1ea3('0x88')));_0x13e6fb[_0x1ea3('0x1c')]('/api/schedules',require(_0x1ea3('0x89')));_0x13e6fb['use']('/api/sounds',require(_0x1ea3('0x8a')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x8b'),require(_0x1ea3('0x8c')));_0x13e6fb['use'](_0x1ea3('0x8d'),require(_0x1ea3('0x8e')));_0x13e6fb[_0x1ea3('0x1c')]('/api/triggers',require(_0x1ea3('0x8f')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x90'),require(_0x1ea3('0x91')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x92'),require(_0x1ea3('0x93')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x94'),require('./api/integrationReport'));_0x13e6fb['use']('/api/analytics/custom_reports',require(_0x1ea3('0x95')));_0x13e6fb['use'](_0x1ea3('0x96'),require(_0x1ea3('0x97')));_0x13e6fb['use'](_0x1ea3('0x98'),require('./api/analyticExtractedReport'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x99'),require(_0x1ea3('0x9a')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x9b'),require(_0x1ea3('0x9c')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x9d'),require(_0x1ea3('0x9e')));_0x13e6fb['use'](_0x1ea3('0x9f'),require(_0x1ea3('0xa0')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xa1'),require(_0x1ea3('0xa2')));_0x13e6fb['use'](_0x1ea3('0xa3'),require(_0x1ea3('0xa4')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xa5'),require(_0x1ea3('0xa6')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xa7'),require(_0x1ea3('0xa8')));_0x13e6fb['use'](_0x1ea3('0xa9'),require(_0x1ea3('0xaa')));_0x13e6fb['use'](_0x1ea3('0xab'),require('./api/intDeskAccount'));_0x13e6fb['use'](_0x1ea3('0xac'),require(_0x1ea3('0xad')));_0x13e6fb[_0x1ea3('0x1c')]('/api/integrations/desk/fields',require(_0x1ea3('0xae')));_0x13e6fb['use'](_0x1ea3('0xaf'),require(_0x1ea3('0xb0')));_0x13e6fb['use'](_0x1ea3('0xb1'),require(_0x1ea3('0xb2')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xb3'),require(_0x1ea3('0xb4')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xb5'),require(_0x1ea3('0xb6')));_0x13e6fb['use']('/api/integrations/zendesk/configurations',require(_0x1ea3('0xb7')));_0x13e6fb[_0x1ea3('0x1c')]('/api/integrations/zendesk/fields',require('./api/intZendeskField'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xb8'),require(_0x1ea3('0xb9')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xba'),require(_0x1ea3('0xbb')));_0x13e6fb['use'](_0x1ea3('0xbc'),require('./api/intFreshdeskField'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xbd'),require(_0x1ea3('0xbe')));_0x13e6fb['use'](_0x1ea3('0xbf'),require(_0x1ea3('0xc0')));_0x13e6fb['use']('/api/integrations/vtiger/fields',require(_0x1ea3('0xc1')));_0x13e6fb['use'](_0x1ea3('0xc2'),require(_0x1ea3('0xc3')));_0x13e6fb['use'](_0x1ea3('0xc4'),require('./api/intServicenowConfiguration'));_0x13e6fb['use'](_0x1ea3('0xc5'),require(_0x1ea3('0xc6')));_0x13e6fb['use'](_0x1ea3('0xc7'),require(_0x1ea3('0xc8')));_0x13e6fb[_0x1ea3('0x1c')]('/api/integrations/dynamics365/configurations',require('./api/intDynamics365Configuration'));_0x13e6fb['use'](_0x1ea3('0xc9'),require(_0x1ea3('0xca')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xcb'),require(_0x1ea3('0xcc')));_0x13e6fb[_0x1ea3('0x1c')]('/api/integrations/freshsales/configurations',require(_0x1ea3('0xcd')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xce'),require('./api/intFreshsalesField'));_0x13e6fb[_0x1ea3('0x1c')]('/api/networks',require(_0x1ea3('0xcf')));_0x13e6fb['use'](_0x1ea3('0xd0'),require(_0x1ea3('0xd1')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xd2'),require('./api/chatInternalMessage'));_0x13e6fb['use']('/api/jscripty/answers/reports',require(_0x1ea3('0xd3')));_0x13e6fb[_0x1ea3('0x1c')]('/api/jscripty/questions/reports',require(_0x1ea3('0xd4')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xd5'),require(_0x1ea3('0xd6')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xd7'),require(_0x1ea3('0xd8')));_0x13e6fb[_0x1ea3('0x1c')]('/api/square/reports',require('./api/squareReport'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xd9'),require(_0x1ea3('0xda')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xdb'),require(_0x1ea3('0xdc')));_0x13e6fb['use'](_0x1ea3('0xdd'),require('./api/setting'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xde'),require(_0x1ea3('0xdf')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xe0'),require(_0x1ea3('0xe1')));_0x13e6fb['use'](_0x1ea3('0xe2'),require(_0x1ea3('0xe3')));_0x13e6fb[_0x1ea3('0x1c')]('/api/square/messages',require(_0x1ea3('0xe4')));_0x13e6fb[_0x1ea3('0x1c')]('/api/teams',require(_0x1ea3('0xe5')));_0x13e6fb['use']('/api/license',require(_0x1ea3('0xe6')));_0x13e6fb['use'](_0x1ea3('0xe7'),require(_0x1ea3('0xe8')));_0x13e6fb[_0x1ea3('0x1c')]('/api/migrations',require(_0x1ea3('0xe9')));_0x13e6fb['use']('/api/attachments',require(_0x1ea3('0xea')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xeb'),require('./api/plugin'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xec'),require('./api/mailTransferReport'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xed'),require(_0x1ea3('0xee')));_0x13e6fb[_0x1ea3('0x1c')]('/api/fax/reports/transfer',require(_0x1ea3('0xef')));_0x13e6fb[_0x1ea3('0x1c')]('/api/openchannel/reports/transfer',require(_0x1ea3('0xf0')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xf1'),require('./api/smsTransferReport'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xf2'),require(_0x1ea3('0xf3')));_0x13e6fb['use'](_0x1ea3('0xf4'),require('./api/voicePrefix'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xf5'),require('./api/userProfile'));_0x13e6fb['use'](_0x1ea3('0xf6'),require(_0x1ea3('0xf7')));_0x13e6fb['use']('/api/userProfile/resources',require('./api/userProfileResource'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xf8'),require(_0x1ea3('0xf9')));_0x13e6fb['use']('/api/whatsapp/accounts',require(_0x1ea3('0xfa')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xfb'),require(_0x1ea3('0xfc')));_0x13e6fb[_0x1ea3('0x1c')]('/api/whatsapp/interactions',require('./api/whatsappInteraction'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0xfd'),require(_0x1ea3('0xfe')));_0x13e6fb[_0x1ea3('0x1c')]('/api/whatsapp/reports/queue',require('./api/whatsappQueueReport'));_0x13e6fb[_0x1ea3('0x1c')]('/api/whatsapp/reports/transfer',require(_0x1ea3('0xff')));_0x13e6fb['use'](_0x1ea3('0x100'),require(_0x1ea3('0x101')));_0x13e6fb['use'](_0x1ea3('0x102'),require('./api/cloudProvider'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x103'),require(_0x1ea3('0x104')));_0x13e6fb['use']('/api/auth/local',require(_0x1ea3('0x105')));_0x13e6fb['use'](_0x1ea3('0x106'),require(_0x1ea3('0x107')));_0x13e6fb['use'](_0x1ea3('0x108'),require(_0x1ea3('0x109')));_0x13e6fb['use'](_0x1ea3('0x10a'),require('./api/rpc'));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x10b'),require(_0x1ea3('0x10c')));_0x13e6fb['use'](_0x1ea3('0x10d'),require(_0x1ea3('0x10e')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x10f'),require(_0x1ea3('0x110')));_0x13e6fb[_0x1ea3('0x1c')]('/api/webbar',require(_0x1ea3('0x111')));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x112'),express[_0x1ea3('0x113')](path['join'](config['root'],_0x1ea3('0x112'))));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x114'),express[_0x1ea3('0x113')](path[_0x1ea3('0x115')](config[_0x1ea3('0x116')],'/www')));_0x13e6fb[_0x1ea3('0x1c')]('/demo',express[_0x1ea3('0x113')](path[_0x1ea3('0x115')](config['root'],_0x1ea3('0x117'))));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x118'),express[_0x1ea3('0x113')](path[_0x1ea3('0x115')](config[_0x1ea3('0x116')],_0x1ea3('0x119'),_0x1ea3('0x11a'))));_0x13e6fb[_0x1ea3('0x1c')](_0x1ea3('0x11b'),express[_0x1ea3('0x113')](path[_0x1ea3('0x115')](config[_0x1ea3('0x116')],_0x1ea3('0x11c'))));_0x13e6fb['route']('/:url(api|auth|components|app|bower_components|assets)/*')[_0x1ea3('0x11d')](errors[0x194]);_0x13e6fb[_0x1ea3('0x11e')]('/*')[_0x1ea3('0x11d')](function(_0x2f5095,_0x14a823){_0x14a823[_0x1ea3('0x11f')](path[_0x1ea3('0x120')](_0x13e6fb['get'](_0x1ea3('0x121'))+_0x1ea3('0x122')));});};var sensitiveFields=[_0x1ea3('0x123'),_0x1ea3('0x124'),'newPassword',_0x1ea3('0x125'),'firstName',_0x1ea3('0x126'),'street',_0x1ea3('0x127'),_0x1ea3('0x128'),'fax',_0x1ea3('0x129'),_0x1ea3('0x12a'),'clientSecret','securityToken',_0x1ea3('0x12b'),_0x1ea3('0x12c'),_0x1ea3('0x12d'),_0x1ea3('0x12e'),_0x1ea3('0x12f'),_0x1ea3('0x130'),'accessTokenSecret','authToken',_0x1ea3('0x131'),'consumerSecret',_0x1ea3('0x132'),'calleridname','calleridnum',_0x1ea3('0x133'),'vidaooApiKey','clientEmail',_0x1ea3('0x134'),_0x1ea3('0x135'),_0x1ea3('0x136'),_0x1ea3('0x137'),'user','pass',_0x1ea3('0x138'),'localstationid',_0x1ea3('0x139'),_0x1ea3('0x13a'),_0x1ea3('0x13b'),'oldPassword'];function maskSensitiveData(_0x2af4df){var _0x166396=/(?!^)[\s\S](?!$)/g;if(!_[_0x1ea3('0x13c')](_0x2af4df))return;for(var _0x3b5091 in _0x2af4df){if(_['isArray'](_0x2af4df[_0x3b5091])){for(var _0x5294e7=0x0;_0x5294e7<_0x2af4df[_0x3b5091][_0x1ea3('0x13d')];_0x5294e7++){maskSensitiveData(_0x2af4df[_0x3b5091][_0x5294e7]);}}else if(_[_0x1ea3('0x13c')](_0x2af4df[_0x3b5091])){maskSensitiveData(_0x2af4df[_0x3b5091]);}else if(_[_0x1ea3('0x13e')](_0x2af4df[_0x3b5091])){_0x2af4df[_0x3b5091]=_0x2af4df[_0x3b5091][_0x1ea3('0x13f')](/{{{/g,_0x1ea3('0x140'))[_0x1ea3('0x13f')](/}}}/g,_0x1ea3('0x141'))['replace'](/{{/g,'@{')[_0x1ea3('0x13f')](/}}/g,'}@');if(_[_0x1ea3('0x142')](sensitiveFields,_0x3b5091)){_0x2af4df[_0x3b5091]=_0x2af4df[_0x3b5091]['replace'](_0x166396,'*');}}}}
\ No newline at end of file
+var _0xb48f=['exten','clientEmail','privateKey','accesskeyid','secretaccesskey','key','pass','accountSid','localstationid','secret','oldPassword','isArray','length','isPlainObject','isString','replace','@@{','}@@','includes','path','express-winston','util','./errors','./config/environment','./config/logger','api','auth','default','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','body','\x20body=%s','headers','x-forwarded-for','connection','remoteAddress','url','statusCode','responseTime','user','role','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)','other','agent_name','test','/api/users','./api/user','/api/voice/chanspy','/api/voice/contexts','./api/voiceContext','/api/voice/extensions','/api/voice/mohs','/api/voice/queues','./api/voiceQueue','/api/voice/recordings','./api/voiceRecording','/api/screen/recordings','./api/screenRecording','./api/voiceMail','/api/voice/mails/messages','./api/voiceMailMessage','/api/voice/calls/reports','./api/voiceCallReport','/api/voice/dials/reports','./api/voiceDialReport','/api/voice/agents/reports','./api/voiceAgentReport','/api/voice/queues/reports','/api/members/reports','./api/trunk','/api/voice/transfers/reports','./api/voiceTransferReport','./api/mailServerOut','/api/mail/accounts','/api/mail/queues','./api/mailQueue','/api/mail/substatuses','./api/mailSubstatus','/api/mail/messages','./api/mailMessage','/api/mail/applications','./api/mailApplication','/api/mail/reports/queue','./api/mailQueueReport','/api/dashboards','./api/dashboard','/api/dashboards/items','./api/dashboardItem','/api/fax/accounts','./api/faxAccount','/api/fax/applications','/api/fax/interactions','./api/faxInteraction','/api/fax/messages','./api/faxQueue','/api/fax/reports/queue','./api/faxQueueReport','/api/sms/accounts','/api/sms/applications','./api/smsApplication','/api/sms/interactions','./api/smsInteraction','/api/sms/messages','/api/openchannel/accounts','/api/openchannel/applications','./api/openchannelApplication','/api/openchannel/interactions','./api/openchannelInteraction','/api/openchannel/queues','./api/openchannelQueue','/api/chat/websites','/api/openchannel/reports/queue','./api/openchannelQueueReport','/api/chat/applications','./api/chatApplication','/api/chat/interactions','./api/chatInteraction','/api/chat/messages','/api/chat/queues','./api/chatQueue','./api/chatGroup','/api/chat/proactive_actions','/api/cm/companies','/api/cm/contacts','./api/cmContact','./api/cmHopper','./api/cmHopperBlack','./api/cmHopperFinal','/api/cm/hopper_history','/api/cm/custom_fields','./api/cmCustomField','./api/action','/api/automations','./api/automation','/api/canned_answers','./api/cannedAnswer','./api/disposition','/api/conditions','./api/condition','/api/intervals','./api/interval','/api/pauses','/api/cdr','./api/cdr','/api/voiceQueuesLog','./api/voiceQueuesLog','/api/schedules','./api/schedule','/api/sounds','./api/sound','/api/tags','./api/tag','/api/templates','/api/triggers','./api/trigger','/api/variables','/api/integrations/reports','./api/integrationReport','/api/analytics/custom_reports','/api/analytics/default_reports','./api/analyticDefaultReport','/api/analytics/extracted_reports','./api/analyticMetric','/api/analytics/field_reports','./api/analyticFieldReport','/api/analytics/tree_reports','./api/analyticTreeReport','/api/integrations/salesforce/accounts','./api/intSalesforceAccount','/api/integrations/salesforce/configurations','/api/integrations/salesforce/fields','./api/intSugarcrmConfiguration','/api/integrations/sugarcrm/fields','/api/integrations/desk/accounts','./api/intDeskAccount','/api/integrations/desk/configurations','./api/intDeskConfiguration','/api/integrations/desk/fields','./api/intDeskField','/api/integrations/zoho/configurations','./api/intZohoConfiguration','./api/intZendeskAccount','/api/integrations/zendesk/configurations','./api/intZendeskConfiguration','/api/integrations/zendesk/fields','./api/intZendeskField','./api/intFreshdeskConfiguration','/api/integrations/freshdesk/fields','./api/intFreshdeskField','/api/integrations/vtiger/accounts','./api/intVtigerAccount','/api/integrations/vtiger/configurations','/api/integrations/vtiger/fields','/api/integrations/servicenow/accounts','./api/intServicenowAccount','/api/integrations/servicenow/configurations','/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/networks','/api/chat/reports/queue','/api/chat/internal/messages','./api/chatInternalMessage','/api/jscripty/answers/reports','/api/jscripty/questions/reports','/api/jscripty/sessions/reports','./api/smsQueueReport','/api/square/reports','./api/squareReportDetail','/api/jscripty/projects','./api/jscriptyProject','./api/setting','/api/square/odbc','./api/squareOdbc','/api/square/projects','./api/squareProject','/api/square/recordings','./api/squareMessage','/api/teams','./api/team','/api/license','./api/license','/api/campaigns','./api/campaign','./api/migration','./api/plugin','/api/mail/reports/transfer','./api/mailTransferReport','./api/chatTransferReport','/api/fax/reports/transfer','./api/faxTransferReport','/api/openchannel/reports/transfer','./api/openchannelTransferReport','/api/sms/reports/transfer','./api/smsTransferReport','/api/cm/lists','./api/cmList','/api/voice/prefixes','./api/voicePrefix','/api/userProfiles','./api/userProfile','/api/userProfile/sections','./api/userProfileSection','/api/userProfile/resources','./api/userProfileResource','/api/userNotifications','./api/userNotification','/api/whatsapp/accounts','./api/whatsappAccount','/api/whatsapp/applications','/api/whatsapp/interactions','./api/whatsappInteraction','/api/whatsapp/messages','./api/whatsappMessage','./api/whatsappQueueReport','/api/whatsapp/reports/transfer','./api/whatsappTransferReport','/api/whatsapp/queues','./api/cloudProvider','/api/realtime','/api/auth/local','./api/authLocal','/api/auth/google','./api/authGoogle','/api/jira','./api/jira','/api/rpc','./api/rpc','/api/system','./api/system','/api/pm2','./api/pm2','/api/webbar','./api/webbar','/apidoc','static','join','root','/www','/demo','3.0.0','/plugins','/server/files/plugins','route','/:url(api|auth|components|app|bower_components|assets)/*','get','sendFile','resolve','appPath','/index.html','newPassword','apiKey','firstName','lastName','street','mobile','fax','email','clientId','securityToken','code','accessKey','tenantId','token','accessToken','accessTokenSecret','consumerKey','consumerSecret','calleridname','calleridnum'];(function(_0x558db5,_0x4e6dba){var _0x8b42d5=function(_0x2ea910){while(--_0x2ea910){_0x558db5['push'](_0x558db5['shift']());}};_0x8b42d5(++_0x4e6dba);}(_0xb48f,0x155));var _0xfb48=function(_0x1effc9,_0x4496d1){_0x1effc9=_0x1effc9-0x0;var _0x1cb7e5=_0xb48f[_0x1effc9];return _0x1cb7e5;};'use strict';var _=require('lodash');var path=require(_0xfb48('0x0'));var express=require('express');var ewinston=require(_0xfb48('0x1'));var util=require(_0xfb48('0x2'));var errors=require(_0xfb48('0x3'));var config=require(_0xfb48('0x4'));var logger=require(_0xfb48('0x5'))(_0xfb48('0x6'));var authLogger=require(_0xfb48('0x5'))(_0xfb48('0x7'));exports[_0xfb48('0x8')]=function(_0x4617cb){_0x4617cb['use'](ewinston['logger']({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x46ab61,_0x58ed2b){var _0x1d864f=_0xfb48('0x9');if(!_[_0xfb48('0xa')](_0x46ab61[_0xfb48('0xb')])){_0x1d864f+=_0xfb48('0xc');var _0x1dfaf5=_0x46ab61['body'];maskSensitiveData(_0x1dfaf5);}return util['format'](_0x1d864f,_0x46ab61['method'],_0x46ab61[_0xfb48('0xd')][_0xfb48('0xe')]?_0x46ab61['headers'][_0xfb48('0xe')]:_0x46ab61[_0xfb48('0xf')][_0xfb48('0x10')]||_0x46ab61['ip'],_0x46ab61[_0xfb48('0x11')],_0x58ed2b[_0xfb48('0x12')],_0x58ed2b[_0xfb48('0x13')],_0x46ab61[_0xfb48('0x14')]?_0x46ab61[_0xfb48('0x14')]['id']:null,_0x46ab61[_0xfb48('0x14')]?_0x46ab61['user']['name']:null,_0x46ab61['user']?_0x46ab61[_0xfb48('0x14')][_0xfb48('0x15')]:null,_0x1dfaf5?util[_0xfb48('0x16')](_0x1dfaf5,![],null):'');}}));_0x4617cb[_0xfb48('0x17')](ewinston[_0xfb48('0x18')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0x94da53,_0x132f8e){var _0xa77aef=_0xfb48('0x19');if(_0x94da53[_0xfb48('0xb')]&&_0x94da53['body'][_0xfb48('0x1a')]&&_0x94da53['body'][_0xfb48('0x1b')]){_0xa77aef=_0xfb48('0x1c');}return util['format'](_0xa77aef,_0x94da53['method'],_0x94da53['headers'][_0xfb48('0xe')]?_0x94da53[_0xfb48('0xd')][_0xfb48('0xe')]:_0x94da53[_0xfb48('0xf')]['remoteAddress']||_0x94da53['ip'],_0x94da53[_0xfb48('0x11')],_0x132f8e['statusCode'],_0x132f8e[_0xfb48('0x13')],_0x94da53[_0xfb48('0x14')]?_0x94da53[_0xfb48('0x14')]['id']:null,_0x94da53['user']?_0x94da53[_0xfb48('0x14')]['name']:null,_0x94da53['user']?_0x94da53[_0xfb48('0x14')][_0xfb48('0x15')]:null,_0x94da53[_0xfb48('0xb')]&&_0x94da53[_0xfb48('0xb')]['device']?_0x94da53[_0xfb48('0xb')][_0xfb48('0x1a')]:_0xfb48('0x1d'),_0x94da53['body']&&_0x94da53[_0xfb48('0xb')][_0xfb48('0x1b')]?_0x94da53[_0xfb48('0xb')][_0xfb48('0x1b')]:'',_0x94da53['body']&&_0x94da53[_0xfb48('0xb')][_0xfb48('0x1e')]?_0x94da53[_0xfb48('0xb')][_0xfb48('0x1e')]:'');},'ignoreRoute':function(_0x297381){var _0xa78331=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0xa78331[_0xfb48('0x1f')](_0x297381[_0xfb48('0x11')]);}}));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x20'),require(_0xfb48('0x21')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x22'),require('./api/voiceChanSpy'));_0x4617cb['use'](_0xfb48('0x23'),require(_0xfb48('0x24')));_0x4617cb['use'](_0xfb48('0x25'),require('./api/voiceExtension'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x26'),require('./api/voiceMusicOnHold'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x27'),require(_0xfb48('0x28')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x29'),require(_0xfb48('0x2a')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x2b'),require(_0xfb48('0x2c')));_0x4617cb['use']('/api/voice/mails',require(_0xfb48('0x2d')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x2e'),require(_0xfb48('0x2f')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x30'),require(_0xfb48('0x31')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x32'),require(_0xfb48('0x33')));_0x4617cb['use'](_0xfb48('0x34'),require(_0xfb48('0x35')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x36'),require('./api/voiceQueueReport'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x37'),require('./api/memberReport'));_0x4617cb[_0xfb48('0x17')]('/api/trunks',require(_0xfb48('0x38')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x39'),require(_0xfb48('0x3a')));_0x4617cb['use']('/api/mail/out_servers',require(_0xfb48('0x3b')));_0x4617cb['use'](_0xfb48('0x3c'),require('./api/mailAccount'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x3d'),require(_0xfb48('0x3e')));_0x4617cb['use'](_0xfb48('0x3f'),require(_0xfb48('0x40')));_0x4617cb[_0xfb48('0x17')]('/api/mail/interactions',require('./api/mailInteraction'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x41'),require(_0xfb48('0x42')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x43'),require(_0xfb48('0x44')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x45'),require(_0xfb48('0x46')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x47'),require(_0xfb48('0x48')));_0x4617cb['use'](_0xfb48('0x49'),require(_0xfb48('0x4a')));_0x4617cb['use'](_0xfb48('0x4b'),require(_0xfb48('0x4c')));_0x4617cb['use'](_0xfb48('0x4d'),require('./api/faxApplication'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x4e'),require(_0xfb48('0x4f')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x50'),require('./api/faxMessage'));_0x4617cb[_0xfb48('0x17')]('/api/fax/queues',require(_0xfb48('0x51')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x52'),require(_0xfb48('0x53')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x54'),require('./api/smsAccount'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x55'),require(_0xfb48('0x56')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x57'),require(_0xfb48('0x58')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x59'),require('./api/smsMessage'));_0x4617cb[_0xfb48('0x17')]('/api/sms/queues',require('./api/smsQueue'));_0x4617cb['use'](_0xfb48('0x5a'),require('./api/openchannelAccount'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x5b'),require(_0xfb48('0x5c')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x5d'),require(_0xfb48('0x5e')));_0x4617cb[_0xfb48('0x17')]('/api/openchannel/messages',require('./api/openchannelMessage'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x5f'),require(_0xfb48('0x60')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x61'),require('./api/chatWebsite'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x62'),require(_0xfb48('0x63')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x64'),require(_0xfb48('0x65')));_0x4617cb['use'](_0xfb48('0x66'),require(_0xfb48('0x67')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x68'),require('./api/chatMessage'));_0x4617cb[_0xfb48('0x17')]('/api/chat/offline_messages',require('./api/chatOfflineMessage'));_0x4617cb['use'](_0xfb48('0x69'),require(_0xfb48('0x6a')));_0x4617cb[_0xfb48('0x17')]('/api/chat/groups',require(_0xfb48('0x6b')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x6c'),require('./api/chatProactiveAction'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x6d'),require('./api/cmCompany'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x6e'),require(_0xfb48('0x6f')));_0x4617cb['use']('/api/cm/hopper',require(_0xfb48('0x70')));_0x4617cb[_0xfb48('0x17')]('/api/cm/hopper_black',require(_0xfb48('0x71')));_0x4617cb[_0xfb48('0x17')]('/api/cm/hopper_final',require(_0xfb48('0x72')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x73'),require('./api/cmHopperHistory'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x74'),require(_0xfb48('0x75')));_0x4617cb[_0xfb48('0x17')]('/api/actions',require(_0xfb48('0x76')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x77'),require(_0xfb48('0x78')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x79'),require(_0xfb48('0x7a')));_0x4617cb[_0xfb48('0x17')]('/api/dispositions',require(_0xfb48('0x7b')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x7c'),require(_0xfb48('0x7d')));_0x4617cb['use'](_0xfb48('0x7e'),require(_0xfb48('0x7f')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x80'),require('./api/pause'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x81'),require(_0xfb48('0x82')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x83'),require(_0xfb48('0x84')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x85'),require(_0xfb48('0x86')));_0x4617cb['use'](_0xfb48('0x87'),require(_0xfb48('0x88')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x89'),require(_0xfb48('0x8a')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x8b'),require('./api/template'));_0x4617cb['use'](_0xfb48('0x8c'),require(_0xfb48('0x8d')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x8e'),require('./api/variable'));_0x4617cb[_0xfb48('0x17')]('/api/integrations',require('./api/integration'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x8f'),require(_0xfb48('0x90')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x91'),require('./api/analyticCustomReport'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x92'),require(_0xfb48('0x93')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x94'),require('./api/analyticExtractedReport'));_0x4617cb['use']('/api/analytics/metrics',require(_0xfb48('0x95')));_0x4617cb['use'](_0xfb48('0x96'),require(_0xfb48('0x97')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x98'),require(_0xfb48('0x99')));_0x4617cb['use'](_0xfb48('0x9a'),require(_0xfb48('0x9b')));_0x4617cb['use'](_0xfb48('0x9c'),require('./api/intSalesforceConfiguration'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x9d'),require('./api/intSalesforceField'));_0x4617cb[_0xfb48('0x17')]('/api/integrations/sugarcrm/accounts',require('./api/intSugarcrmAccount'));_0x4617cb[_0xfb48('0x17')]('/api/integrations/sugarcrm/configurations',require(_0xfb48('0x9e')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x9f'),require('./api/intSugarcrmField'));_0x4617cb['use'](_0xfb48('0xa0'),require(_0xfb48('0xa1')));_0x4617cb['use'](_0xfb48('0xa2'),require(_0xfb48('0xa3')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xa4'),require(_0xfb48('0xa5')));_0x4617cb[_0xfb48('0x17')]('/api/integrations/zoho/accounts',require('./api/intZohoAccount'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xa6'),require(_0xfb48('0xa7')));_0x4617cb[_0xfb48('0x17')]('/api/integrations/zoho/fields',require('./api/intZohoField'));_0x4617cb['use']('/api/integrations/zendesk/accounts',require(_0xfb48('0xa8')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xa9'),require(_0xfb48('0xaa')));_0x4617cb['use'](_0xfb48('0xab'),require(_0xfb48('0xac')));_0x4617cb['use']('/api/integrations/freshdesk/accounts',require('./api/intFreshdeskAccount'));_0x4617cb['use']('/api/integrations/freshdesk/configurations',require(_0xfb48('0xad')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xae'),require(_0xfb48('0xaf')));_0x4617cb['use'](_0xfb48('0xb0'),require(_0xfb48('0xb1')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xb2'),require('./api/intVtigerConfiguration'));_0x4617cb['use'](_0xfb48('0xb3'),require('./api/intVtigerField'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xb4'),require(_0xfb48('0xb5')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xb6'),require('./api/intServicenowConfiguration'));_0x4617cb[_0xfb48('0x17')]('/api/integrations/servicenow/fields',require('./api/intServicenowField'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xb7'),require(_0xfb48('0xb8')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xb9'),require('./api/intDynamics365Configuration'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xba'),require(_0xfb48('0xbb')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xbc'),require(_0xfb48('0xbd')));_0x4617cb['use'](_0xfb48('0xbe'),require('./api/intFreshsalesConfiguration'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xbf'),require('./api/intFreshsalesField'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xc0'),require('./api/network'));_0x4617cb['use'](_0xfb48('0xc1'),require('./api/chatQueueReport'));_0x4617cb['use'](_0xfb48('0xc2'),require(_0xfb48('0xc3')));_0x4617cb['use'](_0xfb48('0xc4'),require('./api/jscriptyAnswerReport'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xc5'),require('./api/jscriptyQuestionReport'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xc6'),require('./api/jscriptySessionReport'));_0x4617cb[_0xfb48('0x17')]('/api/sms/reports/queue',require(_0xfb48('0xc7')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xc8'),require('./api/squareReport'));_0x4617cb[_0xfb48('0x17')]('/api/square/details/reports',require(_0xfb48('0xc9')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xca'),require(_0xfb48('0xcb')));_0x4617cb[_0xfb48('0x17')]('/api/settings',require(_0xfb48('0xcc')));_0x4617cb['use'](_0xfb48('0xcd'),require(_0xfb48('0xce')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xcf'),require(_0xfb48('0xd0')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xd1'),require('./api/squareRecording'));_0x4617cb[_0xfb48('0x17')]('/api/square/messages',require(_0xfb48('0xd2')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xd3'),require(_0xfb48('0xd4')));_0x4617cb['use'](_0xfb48('0xd5'),require(_0xfb48('0xd6')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xd7'),require(_0xfb48('0xd8')));_0x4617cb[_0xfb48('0x17')]('/api/migrations',require(_0xfb48('0xd9')));_0x4617cb[_0xfb48('0x17')]('/api/attachments',require('./api/attachment'));_0x4617cb[_0xfb48('0x17')]('/api/plugins',require(_0xfb48('0xda')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xdb'),require(_0xfb48('0xdc')));_0x4617cb[_0xfb48('0x17')]('/api/chat/reports/transfer',require(_0xfb48('0xdd')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xde'),require(_0xfb48('0xdf')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xe0'),require(_0xfb48('0xe1')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xe2'),require(_0xfb48('0xe3')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xe4'),require(_0xfb48('0xe5')));_0x4617cb['use'](_0xfb48('0xe6'),require(_0xfb48('0xe7')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xe8'),require(_0xfb48('0xe9')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xea'),require(_0xfb48('0xeb')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xec'),require(_0xfb48('0xed')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xee'),require(_0xfb48('0xef')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xf0'),require(_0xfb48('0xf1')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xf2'),require('./api/whatsappApplication'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xf3'),require(_0xfb48('0xf4')));_0x4617cb['use'](_0xfb48('0xf5'),require(_0xfb48('0xf6')));_0x4617cb[_0xfb48('0x17')]('/api/whatsapp/reports/queue',require(_0xfb48('0xf7')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xf8'),require(_0xfb48('0xf9')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xfa'),require('./api/whatsappQueue'));_0x4617cb[_0xfb48('0x17')]('/api/cloudProviders',require(_0xfb48('0xfb')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xfc'),require('./api/realtime'));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xfd'),require(_0xfb48('0xfe')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0xff'),require(_0xfb48('0x100')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x101'),require(_0xfb48('0x102')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x103'),require(_0xfb48('0x104')));_0x4617cb[_0xfb48('0x17')]('/api/version',require('./api/version'));_0x4617cb['use'](_0xfb48('0x105'),require(_0xfb48('0x106')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x107'),require(_0xfb48('0x108')));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x109'),require(_0xfb48('0x10a')));_0x4617cb['use'](_0xfb48('0x10b'),express[_0xfb48('0x10c')](path[_0xfb48('0x10d')](config[_0xfb48('0x10e')],_0xfb48('0x10b'))));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x10f'),express[_0xfb48('0x10c')](path[_0xfb48('0x10d')](config['root'],_0xfb48('0x10f'))));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x110'),express[_0xfb48('0x10c')](path['join'](config[_0xfb48('0x10e')],'/demo')));_0x4617cb[_0xfb48('0x17')]('/snippet',express[_0xfb48('0x10c')](path[_0xfb48('0x10d')](config['root'],'snippet',_0xfb48('0x111'))));_0x4617cb[_0xfb48('0x17')](_0xfb48('0x112'),express[_0xfb48('0x10c')](path[_0xfb48('0x10d')](config['root'],_0xfb48('0x113'))));_0x4617cb[_0xfb48('0x114')](_0xfb48('0x115'))[_0xfb48('0x116')](errors[0x194]);_0x4617cb[_0xfb48('0x114')]('/*')['get'](function(_0x58e122,_0x2b44ca){_0x2b44ca[_0xfb48('0x117')](path[_0xfb48('0x118')](_0x4617cb[_0xfb48('0x116')](_0xfb48('0x119'))+_0xfb48('0x11a')));});};var sensitiveFields=['username','password',_0xfb48('0x11b'),_0xfb48('0x11c'),_0xfb48('0x11d'),_0xfb48('0x11e'),_0xfb48('0x11f'),'phone',_0xfb48('0x120'),_0xfb48('0x121'),_0xfb48('0x122'),_0xfb48('0x123'),'clientSecret',_0xfb48('0x124'),_0xfb48('0x125'),_0xfb48('0x126'),_0xfb48('0x127'),_0xfb48('0x128'),'channelSecret',_0xfb48('0x129'),_0xfb48('0x12a'),'authToken',_0xfb48('0x12b'),_0xfb48('0x12c'),'membername',_0xfb48('0x12d'),_0xfb48('0x12e'),_0xfb48('0x12f'),'vidaooApiKey',_0xfb48('0x130'),_0xfb48('0x131'),_0xfb48('0x132'),_0xfb48('0x133'),_0xfb48('0x134'),_0xfb48('0x14'),_0xfb48('0x135'),_0xfb48('0x136'),_0xfb48('0x137'),'dsn',_0xfb48('0x138'),'registry',_0xfb48('0x139')];function maskSensitiveData(_0x514a24){var _0x255c5e=/(?!^)[\s\S](?!$)/g;if(!_['isPlainObject'](_0x514a24))return;for(var _0x42d41c in _0x514a24){if(_[_0xfb48('0x13a')](_0x514a24[_0x42d41c])){for(var _0x556fcc=0x0;_0x556fcc<_0x514a24[_0x42d41c][_0xfb48('0x13b')];_0x556fcc++){maskSensitiveData(_0x514a24[_0x42d41c][_0x556fcc]);}}else if(_[_0xfb48('0x13c')](_0x514a24[_0x42d41c])){maskSensitiveData(_0x514a24[_0x42d41c]);}else if(_[_0xfb48('0x13d')](_0x514a24[_0x42d41c])){_0x514a24[_0x42d41c]=_0x514a24[_0x42d41c][_0xfb48('0x13e')](/{{{/g,_0xfb48('0x13f'))['replace'](/}}}/g,_0xfb48('0x140'))[_0xfb48('0x13e')](/{{/g,'@{')[_0xfb48('0x13e')](/}}/g,'}@');if(_[_0xfb48('0x141')](sensitiveFields,_0x42d41c)){_0x514a24[_0x42d41c]=_0x514a24[_0x42d41c][_0xfb48('0x13e')](_0x255c5e,'*');}}}}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0f4=['../api/whatsappMessage/whatsappMessage.rpc','../api/whatsappQueueReport/whatsappQueueReport.rpc','../api/whatsappQueue/whatsappQueue.rpc','server','rpc','port','localhost','log','Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!','../config/triggers','RPC\x20listening\x20on\x20','jayson/promise','bluebird','lodash','../config/environment','listen','merge','../api/user/user.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceCallReport/voiceCallReport.rpc','../api/voiceAgentReport/voiceAgentReport.rpc','../api/memberReport/memberReport.rpc','../api/trunk/trunk.rpc','../api/voiceTransferReport/voiceTransferReport.rpc','../api/mailServerIn/mailServerIn.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/faxMessage/faxMessage.rpc','../api/faxQueue/faxQueue.rpc','../api/faxQueueReport/faxQueueReport.rpc','../api/smsAccount/smsAccount.rpc','../api/smsInteraction/smsInteraction.rpc','../api/smsQueue/smsQueue.rpc','../api/openchannelInteraction/openchannelInteraction.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/cmHopper/cmHopper.rpc','../api/cmHopperBlack/cmHopperBlack.rpc','../api/cmHopperFinal/cmHopperFinal.rpc','../api/cmHopperHistory/cmHopperHistory.rpc','../api/reportAgentPreview/reportAgentPreview.rpc','../api/interval/interval.rpc','../api/pause/pause.rpc','../api/sound/sound.rpc','../api/trigger/trigger.rpc','../api/intSalesforceAccount/intSalesforceAccount.rpc','../api/intSugarcrmAccount/intSugarcrmAccount.rpc','../api/intDeskAccount/intDeskAccount.rpc','../api/intZohoAccount/intZohoAccount.rpc','../api/intFreshdeskAccount/intFreshdeskAccount.rpc','../api/intVtigerAccount/intVtigerAccount.rpc','../api/intServicenowAccount/intServicenowAccount.rpc','../api/intFreshsalesAccount/intFreshsalesAccount.rpc','../api/chatQueueReport/chatQueueReport.rpc','../api/smsQueueReport/smsQueueReport.rpc','../api/squareReport/squareReport.rpc','../api/squareReportDetail/squareReportDetail.rpc','../api/squareOdbc/squareOdbc.rpc','../api/squareProject/squareProject.rpc','../api/squareRecording/squareRecording.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'];(function(_0x503c57,_0x5965a0){var _0xa46eb6=function(_0x53e0b1){while(--_0x53e0b1){_0x503c57['push'](_0x503c57['shift']());}};_0xa46eb6(++_0x5965a0);}(_0xf0f4,0xa7));var _0x4f0f=function(_0x340198,_0x43b56e){_0x340198=_0x340198-0x0;var _0x1380f6=_0xf0f4[_0x340198];return _0x1380f6;};'use strict';var jayson=require(_0x4f0f('0x0'));var BPromise=require(_0x4f0f('0x1'));var _=require(_0x4f0f('0x2'));var config=require(_0x4f0f('0x3'));exports[_0x4f0f('0x4')]=function(){return new BPromise(function(_0x236db9,_0x208060){var _0x161983={};_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x6')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require('../api/voiceExtension/voiceExtension.rpc'));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x7')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x8')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x9')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require('../api/voiceDialReport/voiceDialReport.rpc'));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0xa')));_0x161983=_['merge'](_0x161983,require('../api/voiceQueueReport/voiceQueueReport.rpc'));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0xb')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0xc')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0xd')));_0x161983=_['merge'](_0x161983,require('../api/userVoiceQueueRt/userVoiceQueueRt.rpc'));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0xe')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0xf')));_0x161983=_['merge'](_0x161983,require('../api/mailQueue/mailQueue.rpc'));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x10')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x11')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x12')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x13')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x14')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x15')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x16')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x17')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x18')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x19')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x1a')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x1b')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require('../api/smsMessage/smsMessage.rpc'));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x1c')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require('../api/openchannelApplication/openchannelApplication.rpc'));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x1d')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x1e')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x1f')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x20')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x21')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x22')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x23')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x24')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x25')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x26')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x27')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x28')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x29')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x2a')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x2b')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x2c')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require('../api/template/template.rpc'));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x2d')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require('../api/variable/variable.rpc'));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x2e')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x2f')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x30')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x31')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require('../api/intZendeskAccount/intZendeskAccount.rpc'));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x32')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x33')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x34')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require('../api/intDynamics365Account/intDynamics365Account.rpc'));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x35')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x36')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x37')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x38')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x39')));_0x161983=_['merge'](_0x161983,require('../api/setting/setting.rpc'));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x3a')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x3b')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x3c')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x3d')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x3e')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x3f')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x40')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x41')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x42')));_0x161983=_['merge'](_0x161983,require(_0x4f0f('0x43')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x44')));_0x161983=_[_0x4f0f('0x5')](_0x161983,require(_0x4f0f('0x45')));var _0x472778=jayson[_0x4f0f('0x46')](_0x161983)['http']();var _0x213dce=config[_0x4f0f('0x47')][_0x4f0f('0x48')]||config[_0x4f0f('0x48')]+0x1;var _0x3068a9=config[_0x4f0f('0x47')]['ip']||_0x4f0f('0x49');_0x472778['on']('error',function(_0x663de0){return _0x208060(_0x663de0);});_0x472778['listen'](_0x213dce,_0x3068a9,function(){console[_0x4f0f('0x4a')](_0x4f0f('0x4b'),_0x3068a9,_0x213dce);require(_0x4f0f('0x4c'))['default']();return _0x236db9(_0x4f0f('0x4d')+_0x3068a9+':'+_0x213dce);});});};
\ No newline at end of file
+var _0xb361=['../api/reportAgentPreview/reportAgentPreview.rpc','../api/interval/interval.rpc','../api/pause/pause.rpc','../api/intSalesforceAccount/intSalesforceAccount.rpc','../api/intSugarcrmAccount/intSugarcrmAccount.rpc','../api/intZohoAccount/intZohoAccount.rpc','../api/intFreshdeskAccount/intFreshdeskAccount.rpc','../api/intVtigerAccount/intVtigerAccount.rpc','../api/intServicenowAccount/intServicenowAccount.rpc','../api/intDynamics365Account/intDynamics365Account.rpc','../api/intFreshsalesAccount/intFreshsalesAccount.rpc','../api/chatQueueReport/chatQueueReport.rpc','../api/squareReport/squareReport.rpc','../api/squareReportDetail/squareReportDetail.rpc','../api/setting/setting.rpc','../api/squareOdbc/squareOdbc.rpc','../api/squareRecording/squareRecording.rpc','../api/squareMessage/squareMessage.rpc','../api/attachment/attachment.rpc','../api/plugin/plugin.rpc','../api/whatsappAccount/whatsappAccount.rpc','../api/whatsappInteraction/whatsappInteraction.rpc','../api/whatsappMessage/whatsappMessage.rpc','../api/whatsappQueueReport/whatsappQueueReport.rpc','../api/whatsappQueue/whatsappQueue.rpc','http','rpc','port','localhost','error','listen','Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!','../config/triggers','jayson/promise','bluebird','../config/environment','../api/user/user.rpc','merge','../api/voiceExtension/voiceExtension.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceDialReport/voiceDialReport.rpc','../api/voiceAgentReport/voiceAgentReport.rpc','../api/voiceQueueReport/voiceQueueReport.rpc','../api/memberReport/memberReport.rpc','../api/trunk/trunk.rpc','../api/userVoiceQueueRt/userVoiceQueueRt.rpc','../api/mailAccount/mailAccount.rpc','../api/mailQueue/mailQueue.rpc','../api/mailInteraction/mailInteraction.rpc','../api/mailMessage/mailMessage.rpc','../api/mailApplication/mailApplication.rpc','../api/faxAccount/faxAccount.rpc','../api/faxApplication/faxApplication.rpc','../api/faxMessage/faxMessage.rpc','../api/faxQueueReport/faxQueueReport.rpc','../api/smsInteraction/smsInteraction.rpc','../api/smsMessage/smsMessage.rpc','../api/smsQueue/smsQueue.rpc','../api/openchannelApplication/openchannelApplication.rpc','../api/openchannelInteraction/openchannelInteraction.rpc','../api/openchannelMessage/openchannelMessage.rpc','../api/openchannelQueue/openchannelQueue.rpc','../api/chatInteraction/chatInteraction.rpc','../api/chatMessage/chatMessage.rpc','../api/chatQueue/chatQueue.rpc','../api/cmContact/cmContact.rpc','../api/cmHopperHistory/cmHopperHistory.rpc'];(function(_0x5d2803,_0xf375bd){var _0xdcad2c=function(_0x3c3a98){while(--_0x3c3a98){_0x5d2803['push'](_0x5d2803['shift']());}};_0xdcad2c(++_0xf375bd);}(_0xb361,0x175));var _0x1b36=function(_0x4daedb,_0x5cfd60){_0x4daedb=_0x4daedb-0x0;var _0x38341d=_0xb361[_0x4daedb];return _0x38341d;};'use strict';var jayson=require(_0x1b36('0x0'));var BPromise=require(_0x1b36('0x1'));var _=require('lodash');var config=require(_0x1b36('0x2'));exports['listen']=function(){return new BPromise(function(_0x44347f,_0x1415cf){var _0x2a61e6={};_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x3')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x5')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x6')));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x7')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/voiceCallReport/voiceCallReport.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x8')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x9')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0xa')));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0xb')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0xc')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/voiceTransferReport/voiceTransferReport.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0xd')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/mailServerIn/mailServerIn.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0xe')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0xf')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x10')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x11')));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x12')));_0x2a61e6=_['merge'](_0x2a61e6,require('../api/mailQueueReport/mailQueueReport.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x13')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x14')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/faxInteraction/faxInteraction.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x15')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/faxQueue/faxQueue.rpc'));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x16')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/smsAccount/smsAccount.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x17')));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x18')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x19')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x1a')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x1b')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x1c')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x1d')));_0x2a61e6=_['merge'](_0x2a61e6,require('../api/openchannelQueueReport/openchannelQueueReport.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x1e')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x1f')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x20')));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x21')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/cmHopper/cmHopper.rpc'));_0x2a61e6=_['merge'](_0x2a61e6,require('../api/cmHopperBlack/cmHopperBlack.rpc'));_0x2a61e6=_['merge'](_0x2a61e6,require('../api/cmHopperFinal/cmHopperFinal.rpc'));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x22')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x23')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x24')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x25')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/sound/sound.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/template/template.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/trigger/trigger.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/variable/variable.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x26')));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x27')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/intDeskAccount/intDeskAccount.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x28')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/intZendeskAccount/intZendeskAccount.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x29')));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x2a')));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x2b')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x2c')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x2d')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x2e')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/smsQueueReport/smsQueueReport.rpc'));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x2f')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x30')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x31')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x32')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/squareProject/squareProject.rpc'));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x33')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x34')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require('../api/campaign/campaign.rpc'));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x35')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x36')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x37')));_0x2a61e6=_['merge'](_0x2a61e6,require(_0x1b36('0x38')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x39')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x3a')));_0x2a61e6=_[_0x1b36('0x4')](_0x2a61e6,require(_0x1b36('0x3b')));var _0x42ca84=jayson['server'](_0x2a61e6)[_0x1b36('0x3c')]();var _0x4e3b9c=config[_0x1b36('0x3d')][_0x1b36('0x3e')]||config[_0x1b36('0x3e')]+0x1;var _0x64d864=config[_0x1b36('0x3d')]['ip']||_0x1b36('0x3f');_0x42ca84['on'](_0x1b36('0x40'),function(_0x518d64){return _0x1415cf(_0x518d64);});_0x42ca84[_0x1b36('0x41')](_0x4e3b9c,_0x64d864,function(){console['log'](_0x1b36('0x42'),_0x64d864,_0x4e3b9c);require(_0x1b36('0x43'))['default']();return _0x44347f('RPC\x20listening\x20on\x20'+_0x64d864+':'+_0x4e3b9c);});});};
\ 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 _0x1a85=['{\x20{\x20','\x20}\x20}','replace','isArray','map','isPlainObject','reduce','exports'];(function(_0x5c284d,_0x456ddc){var _0x330a84=function(_0x12d11b){while(--_0x12d11b){_0x5c284d['push'](_0x5c284d['shift']());}};_0x330a84(++_0x456ddc);}(_0x1a85,0x178));var _0x51a8=function(_0x35f748,_0x2cd546){_0x35f748=_0x35f748-0x0;var _0x17ae2b=_0x1a85[_0x35f748];return _0x17ae2b;};var _=require('lodash');var mustacheLikeBracketsRx=/(\{|\}){2}/gm;function bracketsReplacer(_0x54a0db){return _0x54a0db==='{{'?_0x51a8('0x0'):_0x51a8('0x1');}function safeTemplate(_0x43e22a){var _0x498466=_0x43e22a;if(typeof _0x43e22a==='string'){_0x498466=_0x43e22a[_0x51a8('0x2')](mustacheLikeBracketsRx,bracketsReplacer);}else if(Array[_0x51a8('0x3')](_0x43e22a)){_0x498466=_0x43e22a[_0x51a8('0x4')](function(_0x48a21b){return safeTemplate(_0x48a21b);});}else if(_[_0x51a8('0x5')](_0x43e22a)){_0x498466=Object['keys'](_0x43e22a)[_0x51a8('0x6')](function(_0x5cf430,_0x331117){_0x5cf430[_0x331117]=safeTemplate(_0x43e22a[_0x331117]);return _0x5cf430;},{});}return _0x498466;}module[_0x51a8('0x7')]['safeTemplate']=safeTemplate;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba18=['utf8','setTimeout','headers','ready','line','toLowerCase','hangup','emit','substring','search','520\x20End\x20of\x20proper','function','no\x20code','replace','result=','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','pipe','command','write','destroy','inherits','prototype','sendRequest','sync','ANSWER','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','exec','isArray','EXEC\x20%s\x20%s','join','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','HANGUP','setVariable','isBoolean','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','continueAt','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','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','lodash','events','EventEmitter','./reply','./error','call','setEncoding'];(function(_0x35a7cb,_0x59f16e){var _0x3fb5b3=function(_0x42e984){while(--_0x42e984){_0x35a7cb['push'](_0x35a7cb['shift']());}};_0x3fb5b3(++_0x59f16e);}(_0xba18,0x1ea));var _0x8ba1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xba18[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0x8ba1('0x0'));var _=require(_0x8ba1('0x1'));var EventEmitter=require(_0x8ba1('0x2'))[_0x8ba1('0x3')];var AGIReply=require(_0x8ba1('0x4'));var AGIError=require(_0x8ba1('0x5'));function AGIChannel(_0x25144d){var _0x3b5254=this,_0x59c54c=new AGIReply(),_0xe3bc16=![],_0x3136d7={};EventEmitter[_0x8ba1('0x6')](_0x3b5254);_0x25144d[_0x8ba1('0x7')](_0x8ba1('0x8'));_0x25144d[_0x8ba1('0x9')](0x8*0x3c*0x3c*0x3e8);_0x59c54c['setEncoding'](_0x8ba1('0x8'));_0x59c54c['on'](_0x8ba1('0xa'),function(_0x4dc6c4){for(var _0x49709e in _0x4dc6c4){_0x3b5254[_0x49709e]=_0x4dc6c4[_0x49709e];}_0x3b5254['emit'](_0x8ba1('0xb'));});_0x59c54c['on'](_0x8ba1('0xc'),function(_0x4d9f8b){if(_0x4d9f8b[_0x8ba1('0xd')]()==_0x8ba1('0xe')){_0x3b5254[_0x8ba1('0xf')](_0x8ba1('0xe'));return;}if(_0x4d9f8b[_0x8ba1('0x10')](0x0,0xb)=='520-Invalid'){_0xe3bc16=!![];}if(_0xe3bc16){_0x3136d7['rx']+=_0x4d9f8b+'\x0a';if(_0x4d9f8b[_0x8ba1('0x11')](_0x8ba1('0x12'))!=-0x1){_0xe3bc16=![];}}else{_0x3136d7['rx']=_0x4d9f8b;}if(_0xe3bc16){return;}if(typeof _0x3136d7['cb']==_0x8ba1('0x13')){var _0x1fcfd7=_0x3136d7['rx']['substring'](0x0,0x3),_0x29adbb=null,_0x229748=null;_0x1fcfd7=parseInt(_0x1fcfd7);if(isNaN(_0x1fcfd7)){_0x3136d7['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x8ba1('0x14')});return;}if(_0x1fcfd7!=0xc8){_0x3136d7['cb'](null,{'code':_0x1fcfd7,'result':-0x1,'extra':'KO'});return;}_0x29adbb=_0x3136d7['rx'][_0x8ba1('0x10')](0x4)[_0x8ba1('0x15')](_0x8ba1('0x16'),'');if(_0x29adbb['indexOf']('\x20')!=-0x1){_0x29adbb=_0x29adbb['substr'](0x0,_0x29adbb['indexOf']('\x20'));}if(_[_0x8ba1('0x17')](_0x29adbb,'-1')){_0x29adbb=parseInt(_0x29adbb);}_0x229748=_0x3136d7['rx'][_0x8ba1('0x18')]('\x20');if(_0x229748[_0x8ba1('0x19')]==0x3){_0x229748=_0x229748[0x2][_0x8ba1('0x10')](0x1,_0x229748[0x2][_0x8ba1('0x19')]-0x1);}else if(_0x229748[_0x8ba1('0x19')]>0x3){var _0x107846=/\((.+)\)/;var _0x14d73b=_0x3136d7['rx'][_0x8ba1('0x1a')](_0x107846);if(_0x14d73b){_0x229748=_0x14d73b[0x1];}else{_0x229748=null;}}else{_0x229748=null;}_0x3136d7['cb'](null,{'code':_0x1fcfd7,'result':_0x29adbb,'extra':_0x229748});}});_0x25144d['on'](_0x8ba1('0x1b'),function(_0x4d75fa){_0x3b5254['emit'](_0x8ba1('0x1b'),new AGIError(_0x8ba1('0x1c'),_0x4d75fa['code']));});_0x25144d['on'](_0x8ba1('0x1d'),function(){_0x3b5254[_0x8ba1('0xf')](_0x8ba1('0x1d'),new AGIError(_0x8ba1('0x1e')));});_0x25144d['on'](_0x8ba1('0x1f'),function(){_0x3b5254[_0x8ba1('0xf')]('timeout',new AGIError(_0x8ba1('0x20')));_0x25144d['destroy']();});_0x25144d[_0x8ba1('0x21')](_0x59c54c);this[_0x8ba1('0x22')]=function(_0x121cc4,_0x3dd1d8){var _0x121cc4=_0x121cc4||'',_0x3dd1d8=typeof _0x3dd1d8==_0x8ba1('0x13')?_0x3dd1d8:new Function();_0x3136d7={'tx':_0x121cc4,'rx':'','cb':_0x3dd1d8};_0x25144d[_0x8ba1('0x23')](_0x121cc4+'\x0a');},this[_0x8ba1('0x1d')]=function(){_0x25144d[_0x8ba1('0x24')]();};}util[_0x8ba1('0x25')](AGIChannel,EventEmitter);AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x27')]=function(_0x273e67){return this[_0x8ba1('0x22')][_0x8ba1('0x28')](this,_0x273e67);};AGIChannel['prototype']['answer']=function(){return this[_0x8ba1('0x27')](_0x8ba1('0x29'));};AGIChannel['prototype'][_0x8ba1('0x2a')]=function(_0xef508d,_0x2b1f46,_0x326460){_0xef508d=_0xef508d===undefined?_0x8ba1('0x2b'):_0xef508d;_0x2b1f46=_0x2b1f46===undefined?'5':_0x2b1f46;_0x326460=_0x326460===undefined?'1':_0x326460;return this[_0x8ba1('0x27')](util[_0x8ba1('0x2c')](_0x8ba1('0x2d'),_0xef508d,_0x2b1f46*0x3e8,_0x326460));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x2e')]=function(_0x3e8e6d){_0x3e8e6d=_0x3e8e6d||_0x8ba1('0x2f');return this[_0x8ba1('0x27')](util[_0x8ba1('0x2c')]('VERBOSE\x20\x22%s\x22',_0x3e8e6d));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x30')]=function(_0x22059f,_0x3c37fd){if(_[_0x8ba1('0x31')](_0x3c37fd)){return this[_0x8ba1('0x27')](util['format'](_0x8ba1('0x32'),_0x22059f,_0x3c37fd[_0x8ba1('0x33')](',')));}return this['sendRequest'](util[_0x8ba1('0x2c')]('EXEC\x20%s\x20%s',_0x22059f,_0x3c37fd));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x34')]=function(_0x53e668){return this[_0x8ba1('0x27')](util[_0x8ba1('0x2c')](_0x8ba1('0x35'),_0x53e668));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x36')]=function(_0x58d923){return this[_0x8ba1('0x27')](util[_0x8ba1('0x2c')](_0x8ba1('0x37'),_0x58d923));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x38')]=function(_0x2abd37){return this[_0x8ba1('0x27')](util[_0x8ba1('0x2c')]('SET\x20PRIORITY\x20%s',_0x2abd37));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0xe')]=function(){return this[_0x8ba1('0x27')](_0x8ba1('0x39'));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x3a')]=function(_0x215656,_0x36c8c3){var _0x6117aa=_[_0x8ba1('0x3b')](_0x36c8c3)||_['isNumber'](_0x36c8c3)?_0x36c8c3[_0x8ba1('0x3c')]():_0x36c8c3;return this[_0x8ba1('0x27')](util[_0x8ba1('0x2c')](_0x8ba1('0x3d'),_0x215656,_0x6117aa?_0x6117aa[_0x8ba1('0x3c')]()[_0x8ba1('0x15')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x3e')]=function(_0x136318,_0x3db733){return this['sendRequest'](util['format'](_0x8ba1('0x3f'),_0x136318,_0x3db733));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x40')]=function(_0x58e6fb,_0x467a82){return this[_0x8ba1('0x27')](util[_0x8ba1('0x2c')](_0x8ba1('0x41'),_0x58e6fb,_0x467a82));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x42')]=function(_0x2f4ac4,_0xb653bf){return this[_0x8ba1('0x27')](util[_0x8ba1('0x2c')]('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0x2f4ac4,_0xb653bf));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x43')]=function(_0x849fbe,_0x1fc16a,_0x5d4821){_0x1fc16a=_0x1fc16a||this['extension'];_0x5d4821=_0x5d4821||0x1;this[_0x8ba1('0x34')](_0x849fbe);this[_0x8ba1('0x36')](_0x1fc16a);this[_0x8ba1('0x38')](_0x5d4821);return this[_0x8ba1('0x2e')](util[_0x8ba1('0x2c')]('GOTO\x20%s\x20%s\x20%s',_0x849fbe,_0x1fc16a,_0x5d4821));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x44')]=function(_0x16bdb1){return this['sendRequest'](util[_0x8ba1('0x2c')](_0x8ba1('0x45'),_0x16bdb1));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x46')]=function(_0x34b0c3,_0x3bb4dc,_0x523c1b,_0xae1d70,_0x4d1ba2,_0x35bf6c){_0x3bb4dc=_0x3bb4dc||_0x8ba1('0x47');_0x523c1b=_0x523c1b||'';_0xae1d70=_0xae1d70===undefined?-0x1:_0xae1d70==='-1'?-0x1:_0xae1d70*0x3e8;_0x4d1ba2=_0x4d1ba2===undefined?'':'s='+_0x4d1ba2;_0x35bf6c=_0x35bf6c?_0x8ba1('0x48'):'';return this[_0x8ba1('0x27')](util[_0x8ba1('0x2c')](_0x8ba1('0x49'),_0x34b0c3,_0x3bb4dc,_0x523c1b,_0xae1d70,_0x35bf6c,_0x4d1ba2));};AGIChannel['prototype'][_0x8ba1('0x4a')]=function(_0x3cedf4,_0x499fd0){_0x499fd0=_0x499fd0||'';return this['sendRequest'](util[_0x8ba1('0x2c')](_0x8ba1('0x4b'),_0x3cedf4,_0x499fd0));};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x4c')]=function(_0x120b36){return this[_0x8ba1('0x30')](_0x8ba1('0x4d'),_0x120b36);};AGIChannel[_0x8ba1('0x26')][_0x8ba1('0x4e')]=function(_0x195b8e){return this[_0x8ba1('0x30')](_0x8ba1('0x4f'),_0x195b8e);};AGIChannel[_0x8ba1('0x26')]['error']=function(_0x2d37c3,_0x3bb667){this[_0x8ba1('0x2e')](util[_0x8ba1('0x2c')](_0x8ba1('0x50'),_0x2d37c3['id'],_0x2d37c3[_0x8ba1('0x51')],_0x3bb667));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x8ba1('0x52')]=AGIChannel;
\ No newline at end of file
+var _0xe90c=['setExtension','SET\x20EXTENSION\x20%s','HANGUP','setVariable','isBoolean','isNumber','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','continueAt','setContext','setPriority','GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','wav','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','wait','WAIT','noop','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','exports','util','lodash','events','./reply','./error','call','setEncoding','utf8','ready','line','toLowerCase','hangup','emit','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','replace','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','sync','prototype','answer','ANSWER','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','NO\x20MESSAGE','sendRequest','VERBOSE\x20\x22%s\x22','exec','EXEC\x20%s\x20%s','SET\x20CONTEXT\x20%s'];(function(_0x4ed2f1,_0x3623d1){var _0x2b45c1=function(_0x329031){while(--_0x329031){_0x4ed2f1['push'](_0x4ed2f1['shift']());}};_0x2b45c1(++_0x3623d1);}(_0xe90c,0x153));var _0xce90=function(_0x5d5d7b,_0x53d3a0){_0x5d5d7b=_0x5d5d7b-0x0;var _0x319b2e=_0xe90c[_0x5d5d7b];return _0x319b2e;};'use strict';var util=require(_0xce90('0x0'));var _=require(_0xce90('0x1'));var EventEmitter=require(_0xce90('0x2'))['EventEmitter'];var AGIReply=require(_0xce90('0x3'));var AGIError=require(_0xce90('0x4'));function AGIChannel(_0x56f0c3){var _0x4c7a9e=this,_0x1276c9=new AGIReply(),_0x166fb3=![],_0xf7a716={};EventEmitter[_0xce90('0x5')](_0x4c7a9e);_0x56f0c3[_0xce90('0x6')](_0xce90('0x7'));_0x56f0c3['setTimeout'](0x8*0x3c*0x3c*0x3e8);_0x1276c9[_0xce90('0x6')](_0xce90('0x7'));_0x1276c9['on']('headers',function(_0x270456){for(var _0x5af4ef in _0x270456){_0x4c7a9e[_0x5af4ef]=_0x270456[_0x5af4ef];}_0x4c7a9e['emit'](_0xce90('0x8'));});_0x1276c9['on'](_0xce90('0x9'),function(_0x213131){if(_0x213131[_0xce90('0xa')]()==_0xce90('0xb')){_0x4c7a9e[_0xce90('0xc')](_0xce90('0xb'));return;}if(_0x213131[_0xce90('0xd')](0x0,0xb)==_0xce90('0xe')){_0x166fb3=!![];}if(_0x166fb3){_0xf7a716['rx']+=_0x213131+'\x0a';if(_0x213131[_0xce90('0xf')](_0xce90('0x10'))!=-0x1){_0x166fb3=![];}}else{_0xf7a716['rx']=_0x213131;}if(_0x166fb3){return;}if(typeof _0xf7a716['cb']==_0xce90('0x11')){var _0x106f4e=_0xf7a716['rx'][_0xce90('0xd')](0x0,0x3),_0x30952b=null,_0x2b8ef2=null;_0x106f4e=parseInt(_0x106f4e);if(isNaN(_0x106f4e)){_0xf7a716['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xce90('0x12')});return;}if(_0x106f4e!=0xc8){_0xf7a716['cb'](null,{'code':_0x106f4e,'result':-0x1,'extra':'KO'});return;}_0x30952b=_0xf7a716['rx']['substring'](0x4)[_0xce90('0x13')]('result=','');if(_0x30952b['indexOf']('\x20')!=-0x1){_0x30952b=_0x30952b['substr'](0x0,_0x30952b['indexOf']('\x20'));}if(_[_0xce90('0x14')](_0x30952b,'-1')){_0x30952b=parseInt(_0x30952b);}_0x2b8ef2=_0xf7a716['rx'][_0xce90('0x15')]('\x20');if(_0x2b8ef2['length']==0x3){_0x2b8ef2=_0x2b8ef2[0x2][_0xce90('0xd')](0x1,_0x2b8ef2[0x2][_0xce90('0x16')]-0x1);}else if(_0x2b8ef2[_0xce90('0x16')]>0x3){var _0x4686b3=/\((.+)\)/;var _0x4332be=_0xf7a716['rx'][_0xce90('0x17')](_0x4686b3);if(_0x4332be){_0x2b8ef2=_0x4332be[0x1];}else{_0x2b8ef2=null;}}else{_0x2b8ef2=null;}_0xf7a716['cb'](null,{'code':_0x106f4e,'result':_0x30952b,'extra':_0x2b8ef2});}});_0x56f0c3['on'](_0xce90('0x18'),function(_0x5c0fba){_0x4c7a9e[_0xce90('0xc')](_0xce90('0x18'),new AGIError(_0xce90('0x19'),_0x5c0fba['code']));});_0x56f0c3['on'](_0xce90('0x1a'),function(){_0x4c7a9e[_0xce90('0xc')]('close',new AGIError(_0xce90('0x1b')));});_0x56f0c3['on'](_0xce90('0x1c'),function(){_0x4c7a9e[_0xce90('0xc')]('timeout',new AGIError(_0xce90('0x1d')));_0x56f0c3[_0xce90('0x1e')]();});_0x56f0c3[_0xce90('0x1f')](_0x1276c9);this['command']=function(_0x3d3446,_0x5045e7){var _0x3d3446=_0x3d3446||'',_0x5045e7=typeof _0x5045e7==_0xce90('0x11')?_0x5045e7:new Function();_0xf7a716={'tx':_0x3d3446,'rx':'','cb':_0x5045e7};_0x56f0c3['write'](_0x3d3446+'\x0a');},this['close']=function(){_0x56f0c3[_0xce90('0x1e')]();};}util['inherits'](AGIChannel,EventEmitter);AGIChannel['prototype']['sendRequest']=function(_0x3bdb0b){return this['command'][_0xce90('0x20')](this,_0x3bdb0b);};AGIChannel[_0xce90('0x21')][_0xce90('0x22')]=function(){return this['sendRequest'](_0xce90('0x23'));};AGIChannel[_0xce90('0x21')][_0xce90('0x24')]=function(_0x42c5eb,_0x4f6031,_0xc390c6){_0x42c5eb=_0x42c5eb===undefined?_0xce90('0x25'):_0x42c5eb;_0x4f6031=_0x4f6031===undefined?'5':_0x4f6031;_0xc390c6=_0xc390c6===undefined?'1':_0xc390c6;return this['sendRequest'](util[_0xce90('0x26')](_0xce90('0x27'),_0x42c5eb,_0x4f6031*0x3e8,_0xc390c6));};AGIChannel[_0xce90('0x21')]['noop']=function(_0x113cd8){_0x113cd8=_0x113cd8||_0xce90('0x28');return this[_0xce90('0x29')](util[_0xce90('0x26')](_0xce90('0x2a'),_0x113cd8));};AGIChannel[_0xce90('0x21')][_0xce90('0x2b')]=function(_0x54a5b7,_0x594878){if(_['isArray'](_0x594878)){return this[_0xce90('0x29')](util[_0xce90('0x26')](_0xce90('0x2c'),_0x54a5b7,_0x594878['join'](',')));}return this[_0xce90('0x29')](util[_0xce90('0x26')](_0xce90('0x2c'),_0x54a5b7,_0x594878));};AGIChannel[_0xce90('0x21')]['setContext']=function(_0x204a23){return this[_0xce90('0x29')](util[_0xce90('0x26')](_0xce90('0x2d'),_0x204a23));};AGIChannel[_0xce90('0x21')][_0xce90('0x2e')]=function(_0x768603){return this[_0xce90('0x29')](util[_0xce90('0x26')](_0xce90('0x2f'),_0x768603));};AGIChannel[_0xce90('0x21')]['setPriority']=function(_0x2830a6){return this[_0xce90('0x29')](util[_0xce90('0x26')]('SET\x20PRIORITY\x20%s',_0x2830a6));};AGIChannel[_0xce90('0x21')][_0xce90('0xb')]=function(){return this[_0xce90('0x29')](_0xce90('0x30'));};AGIChannel[_0xce90('0x21')][_0xce90('0x31')]=function(_0x5e9ba7,_0x3dfe0e){var _0x98f3aa=_[_0xce90('0x32')](_0x3dfe0e)||_[_0xce90('0x33')](_0x3dfe0e)?_0x3dfe0e['toString']():_0x3dfe0e;return this[_0xce90('0x29')](util['format'](_0xce90('0x34'),_0x5e9ba7,_0x98f3aa?_0x98f3aa['toString']()[_0xce90('0x13')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype'][_0xce90('0x35')]=function(_0x482ca4,_0x5cdb1a){return this[_0xce90('0x29')](util[_0xce90('0x26')](_0xce90('0x36'),_0x482ca4,_0x5cdb1a));};AGIChannel[_0xce90('0x21')][_0xce90('0x37')]=function(_0x277360,_0xac195a){return this['sendRequest'](util[_0xce90('0x26')](_0xce90('0x38'),_0x277360,_0xac195a));};AGIChannel['prototype'][_0xce90('0x39')]=function(_0x488d5e,_0x2c0f0f){return this[_0xce90('0x29')](util[_0xce90('0x26')](_0xce90('0x3a'),_0x488d5e,_0x2c0f0f));};AGIChannel['prototype'][_0xce90('0x3b')]=function(_0x476699,_0x24558c,_0x492c55){_0x24558c=_0x24558c||this['extension'];_0x492c55=_0x492c55||0x1;this[_0xce90('0x3c')](_0x476699);this[_0xce90('0x2e')](_0x24558c);this[_0xce90('0x3d')](_0x492c55);return this['noop'](util['format'](_0xce90('0x3e'),_0x476699,_0x24558c,_0x492c55));};AGIChannel['prototype'][_0xce90('0x3f')]=function(_0x5207ae){return this['sendRequest'](util[_0xce90('0x26')](_0xce90('0x40'),_0x5207ae));};AGIChannel[_0xce90('0x21')][_0xce90('0x41')]=function(_0x22c649,_0x24153c,_0x195763,_0x4c2245,_0x4bbb38,_0x30dc23){_0x24153c=_0x24153c||_0xce90('0x42');_0x195763=_0x195763||'';_0x4c2245=_0x4c2245===undefined?-0x1:_0x4c2245==='-1'?-0x1:_0x4c2245*0x3e8;_0x4bbb38=_0x4bbb38===undefined?'':'s='+_0x4bbb38;_0x30dc23=_0x30dc23?'BEEP':'';return this[_0xce90('0x29')](util[_0xce90('0x26')](_0xce90('0x43'),_0x22c649,_0x24153c,_0x195763,_0x4c2245,_0x30dc23,_0x4bbb38));};AGIChannel[_0xce90('0x21')][_0xce90('0x44')]=function(_0x56f9ef,_0x3fba95){_0x3fba95=_0x3fba95||'';return this[_0xce90('0x29')](util[_0xce90('0x26')](_0xce90('0x45'),_0x56f9ef,_0x3fba95));};AGIChannel[_0xce90('0x21')][_0xce90('0x46')]=function(_0x1db7b8){return this[_0xce90('0x2b')](_0xce90('0x47'),_0x1db7b8);};AGIChannel['prototype'][_0xce90('0x48')]=function(_0x3176c6){return this[_0xce90('0x2b')](_0xce90('0x49'),_0x3176c6);};AGIChannel[_0xce90('0x21')][_0xce90('0x18')]=function(_0xdc3ede,_0x13f795){this[_0xce90('0x4a')](util[_0xce90('0x26')](_0xce90('0x4b'),_0xdc3ede['id'],_0xdc3ede['label'],_0x13f795));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xce90('0x4c')]=AGIChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ce5=['Socket\x20closed.','Socket\x20timeout.','Empty\x20command.','Missing\x20\x27ivr.agi_network_script\x27.','E_AGI_UNDEFINED','push','apply','message','util','Undefined\x20error.','Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','Server\x20closed.','[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','Socket\x20error.\x20Code:\x20%s.'];(function(_0x50210f,_0x163919){var _0x58fe98=function(_0x2e587d){while(--_0x2e587d){_0x50210f['push'](_0x50210f['shift']());}};_0x58fe98(++_0x163919);}(_0x5ce5,0xe8));var _0x55ce=function(_0x15555f,_0x2ab03b){_0x15555f=_0x15555f-0x0;var _0x23a329=_0x5ce5[_0x15555f];return _0x23a329;};'use strict';var util=require(_0x55ce('0x0'));var error={'E_AGI_UNDEFINED':_0x55ce('0x1'),'E_AGI_ARGUMENT_PORT':_0x55ce('0x2'),'E_AGI_SERVER_ERROR':'Server\x20error.\x20Code:\x20%s.','E_AGI_SERVER_CLOSE':_0x55ce('0x3'),'E_AGI_SERVER_MAXCONNECTION':_0x55ce('0x4'),'E_AGI_SERVER_VOICE_DISABLED':'[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','E_AGI_SOCKET_ERROR':_0x55ce('0x5'),'E_AGI_SOCKET_CLOSE':_0x55ce('0x6'),'E_AGI_SOCKET_TIMEOUT':_0x55ce('0x7'),'E_AGI_COMMAND_EMPTY':_0x55ce('0x8'),'E_AGI_IVR_AGI_NETWORK_SCRIPT':_0x55ce('0x9'),'E_AGI_IVR_ENTRY':'Missing\x20\x27ivr.entry\x27\x20menu.'};function AGIError(_0x44fda2){var _0x44fda2=_0x44fda2||null,_0x58120a=_0x58120a||[],_0x2c6c67=0x1,_0x28ada6='';if(!error[_0x44fda2]){_0x44fda2=_0x55ce('0xa');}_0x58120a[_0x55ce('0xb')](error[_0x44fda2]);while(arguments[_0x2c6c67]){_0x58120a[_0x55ce('0xb')](arguments[_0x2c6c67]);_0x2c6c67++;}_0x28ada6=util['format'][_0x55ce('0xc')](util,_0x58120a);this[_0x55ce('0xd')]=_0x28ada6;this['name']=_0x44fda2;}module['exports']=AGIError;
\ No newline at end of file
+var _0xf428=['Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','Server\x20error.\x20Code:\x20%s.','Server\x20closed.','[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','Socket\x20closed.','Socket\x20timeout.','Empty\x20command.','E_AGI_UNDEFINED','push','apply','message','name','exports'];(function(_0x1d30fc,_0x3ab679){var _0x3c27e3=function(_0x50c609){while(--_0x50c609){_0x1d30fc['push'](_0x1d30fc['shift']());}};_0x3c27e3(++_0x3ab679);}(_0xf428,0x104));var _0x8f42=function(_0x1819df,_0x18d901){_0x1819df=_0x1819df-0x0;var _0x50cd92=_0xf428[_0x1819df];return _0x50cd92;};'use strict';var util=require('util');var error={'E_AGI_UNDEFINED':'Undefined\x20error.','E_AGI_ARGUMENT_PORT':_0x8f42('0x0'),'E_AGI_SERVER_ERROR':_0x8f42('0x1'),'E_AGI_SERVER_CLOSE':_0x8f42('0x2'),'E_AGI_SERVER_MAXCONNECTION':_0x8f42('0x3'),'E_AGI_SERVER_VOICE_DISABLED':'[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','E_AGI_SOCKET_ERROR':'Socket\x20error.\x20Code:\x20%s.','E_AGI_SOCKET_CLOSE':_0x8f42('0x4'),'E_AGI_SOCKET_TIMEOUT':_0x8f42('0x5'),'E_AGI_COMMAND_EMPTY':_0x8f42('0x6'),'E_AGI_IVR_AGI_NETWORK_SCRIPT':'Missing\x20\x27ivr.agi_network_script\x27.','E_AGI_IVR_ENTRY':'Missing\x20\x27ivr.entry\x27\x20menu.'};function AGIError(_0x516700){var _0x516700=_0x516700||null,_0x5bad8b=_0x5bad8b||[],_0x1b4b6c=0x1,_0x33329e='';if(!error[_0x516700]){_0x516700=_0x8f42('0x7');}_0x5bad8b[_0x8f42('0x8')](error[_0x516700]);while(arguments[_0x1b4b6c]){_0x5bad8b[_0x8f42('0x8')](arguments[_0x1b4b6c]);_0x1b4b6c++;}_0x33329e=util['format'][_0x8f42('0x9')](util,_0x5bad8b);this[_0x8f42('0xa')]=_0x33329e;this[_0x8f42('0xb')]=_0x516700;}module[_0x8f42('0xc')]=AGIError;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a14=['relations','getVertex','traverseBFS','info','no\x20vertex\x20found','stop\x20traverse','length','condition','agicommand','vswitch','target','invalid','default\x20on\x20switch\x20not\x20found','max\x20retry\x20reach','condition\x20not\x20found','exports','lodash','../../../config/logger','agi','menu','getdigits','getsecretdigits','edges','numberOfEdges','prototype','vertices','addEdge','push','size'];(function(_0x4754ac,_0x270712){var _0x4431d4=function(_0x3df8b4){while(--_0x3df8b4){_0x4754ac['push'](_0x4754ac['shift']());}};_0x4431d4(++_0x270712);}(_0x4a14,0x115));var _0x44a1=function(_0x64a438,_0x4332fe){_0x64a438=_0x64a438-0x0;var _0x454dc8=_0x4a14[_0x64a438];return _0x454dc8;};'use strict';var _=require(_0x44a1('0x0'));var logger=require(_0x44a1('0x1'))(_0x44a1('0x2'));var verticesWithRetry=[_0x44a1('0x3'),_0x44a1('0x4'),_0x44a1('0x5')];var Graph=function(){this['vertices']={};this[_0x44a1('0x6')]={};this[_0x44a1('0x7')]=0x0;};Graph[_0x44a1('0x8')]['addVertex']=function(_0x1385a7){this[_0x44a1('0x9')][_0x1385a7['id']]=_0x1385a7;this[_0x44a1('0x6')][_0x1385a7['id']]=[];};Graph[_0x44a1('0x8')][_0x44a1('0xa')]=function(_0x9ddbfc,_0x450785,_0x66f17b){this['edges'][_0x9ddbfc][_0x44a1('0xb')]({'target':_0x450785,'condition':_0x66f17b});this[_0x44a1('0x7')]+=0x1;};Graph[_0x44a1('0x8')][_0x44a1('0xc')]=function(){return _[_0x44a1('0xc')](this[_0x44a1('0x9')]);};Graph[_0x44a1('0x8')][_0x44a1('0xd')]=function(){return this[_0x44a1('0x7')];};Graph[_0x44a1('0x8')][_0x44a1('0xe')]=function(_0x4b7d15){return this[_0x44a1('0x9')][_0x4b7d15];};Graph[_0x44a1('0x8')][_0x44a1('0xf')]=function(_0x2e2fa9,_0x1a1147){if(!this[_0x44a1('0x9')][_0x2e2fa9]){return logger[_0x44a1('0x10')](_0x44a1('0x11'));}var _0x43c266=_0x1a1147(this[_0x44a1('0x9')][_0x2e2fa9]);if(!_0x43c266){return logger[_0x44a1('0x10')](_0x44a1('0x12'));}if(this[_0x44a1('0x6')][_0x2e2fa9][_0x44a1('0x13')]===0x0){return logger[_0x44a1('0x10')]('no\x20edge/s\x20available');}for(var _0x2512ac=0x0,_0x5e20af=[],_0x59bdc5=![];_0x2512ac<this['edges'][_0x2e2fa9][_0x44a1('0x13')];_0x2512ac+=0x1){if(this['edges'][_0x2e2fa9][_0x2512ac][_0x44a1('0x14')]){_0x5e20af=this[_0x44a1('0x6')][_0x2e2fa9][_0x2512ac][_0x44a1('0x14')]['split'](',');for(var _0x282e3c=0x0;_0x282e3c<_0x5e20af[_0x44a1('0x13')];_0x282e3c+=0x1){if(this[_0x44a1('0x9')][_0x2e2fa9][_0x44a1('0x15')]===_0x44a1('0x16')&&_0x5e20af[_0x282e3c]==='-'){_0x59bdc5=this[_0x44a1('0x6')][_0x2e2fa9][_0x2512ac][_0x44a1('0x17')];logger['info']('default',_0x5e20af[_0x282e3c],this['edges'][_0x2e2fa9][_0x2512ac][_0x44a1('0x17')]);}else if(this[_0x44a1('0x9')][_0x2e2fa9][_0x44a1('0x15')]===_0x44a1('0x3')&&_0x5e20af[_0x282e3c]==='i'){_0x59bdc5=this[_0x44a1('0x6')][_0x2e2fa9][_0x2512ac][_0x44a1('0x17')];logger['info'](_0x44a1('0x18'),_0x5e20af[_0x282e3c],this['edges'][_0x2e2fa9][_0x2512ac][_0x44a1('0x17')]);}if(_0x5e20af[_0x282e3c]===_0x43c266){return this[_0x44a1('0xf')](this[_0x44a1('0x6')][_0x2e2fa9][_0x2512ac][_0x44a1('0x17')],_0x1a1147);}}}else{return this[_0x44a1('0xf')](this[_0x44a1('0x6')][_0x2e2fa9][_0x2512ac][_0x44a1('0x17')],_0x1a1147);}}if(_0x5e20af[_0x44a1('0x13')]){if(this['vertices'][_0x2e2fa9]['agicommand']==='vswitch'){if(_0x59bdc5){return this[_0x44a1('0xf')](_0x59bdc5,_0x1a1147);}return logger['info'](_0x44a1('0x19'));}else if(_['includes'](verticesWithRetry,this[_0x44a1('0x9')][_0x2e2fa9][_0x44a1('0x15')])){if(_0x43c266==='-'){return logger[_0x44a1('0x10')](_0x44a1('0x1a'));}if(_0x59bdc5&&_0x43c266!=='t'){return this[_0x44a1('0xf')](_0x59bdc5,_0x1a1147);}return this[_0x44a1('0xf')](_0x2e2fa9,_0x1a1147);}return logger[_0x44a1('0x10')](_0x44a1('0x1b'));}};module[_0x44a1('0x1c')]=Graph;
\ No newline at end of file
+var _0xabbf=['menu','getsecretdigits','vertices','edges','numberOfEdges','prototype','addVertex','addEdge','push','size','relations','getVertex','traverseBFS','no\x20vertex\x20found','info','length','no\x20edge/s\x20available','condition','split','agicommand','vswitch','target','invalid','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','condition\x20not\x20found','lodash','../../../config/logger','agi'];(function(_0x1036e7,_0x32fc34){var _0x156760=function(_0x432a19){while(--_0x432a19){_0x1036e7['push'](_0x1036e7['shift']());}};_0x156760(++_0x32fc34);}(_0xabbf,0x1a1));var _0xfabb=function(_0x29632e,_0x5ecba4){_0x29632e=_0x29632e-0x0;var _0x426e04=_0xabbf[_0x29632e];return _0x426e04;};'use strict';var _=require(_0xfabb('0x0'));var logger=require(_0xfabb('0x1'))(_0xfabb('0x2'));var verticesWithRetry=[_0xfabb('0x3'),'getdigits',_0xfabb('0x4')];var Graph=function(){this[_0xfabb('0x5')]={};this[_0xfabb('0x6')]={};this[_0xfabb('0x7')]=0x0;};Graph[_0xfabb('0x8')][_0xfabb('0x9')]=function(_0x2359e5){this[_0xfabb('0x5')][_0x2359e5['id']]=_0x2359e5;this[_0xfabb('0x6')][_0x2359e5['id']]=[];};Graph[_0xfabb('0x8')][_0xfabb('0xa')]=function(_0x505cdb,_0x454d33,_0x498827){this[_0xfabb('0x6')][_0x505cdb][_0xfabb('0xb')]({'target':_0x454d33,'condition':_0x498827});this['numberOfEdges']+=0x1;};Graph[_0xfabb('0x8')][_0xfabb('0xc')]=function(){return _['size'](this['vertices']);};Graph[_0xfabb('0x8')][_0xfabb('0xd')]=function(){return this[_0xfabb('0x7')];};Graph[_0xfabb('0x8')][_0xfabb('0xe')]=function(_0x11cc7e){return this[_0xfabb('0x5')][_0x11cc7e];};Graph[_0xfabb('0x8')][_0xfabb('0xf')]=function(_0x48fadf,_0x145225){if(!this['vertices'][_0x48fadf]){return logger['info'](_0xfabb('0x10'));}var _0x5dcc9a=_0x145225(this['vertices'][_0x48fadf]);if(!_0x5dcc9a){return logger[_0xfabb('0x11')]('stop\x20traverse');}if(this[_0xfabb('0x6')][_0x48fadf][_0xfabb('0x12')]===0x0){return logger[_0xfabb('0x11')](_0xfabb('0x13'));}for(var _0x228eb0=0x0,_0x4ce64e=[],_0x35f5f1=![];_0x228eb0<this[_0xfabb('0x6')][_0x48fadf][_0xfabb('0x12')];_0x228eb0+=0x1){if(this[_0xfabb('0x6')][_0x48fadf][_0x228eb0][_0xfabb('0x14')]){_0x4ce64e=this['edges'][_0x48fadf][_0x228eb0][_0xfabb('0x14')][_0xfabb('0x15')](',');for(var _0x508e29=0x0;_0x508e29<_0x4ce64e[_0xfabb('0x12')];_0x508e29+=0x1){if(this['vertices'][_0x48fadf][_0xfabb('0x16')]===_0xfabb('0x17')&&_0x4ce64e[_0x508e29]==='-'){_0x35f5f1=this[_0xfabb('0x6')][_0x48fadf][_0x228eb0][_0xfabb('0x18')];logger['info']('default',_0x4ce64e[_0x508e29],this['edges'][_0x48fadf][_0x228eb0][_0xfabb('0x18')]);}else if(this['vertices'][_0x48fadf][_0xfabb('0x16')]===_0xfabb('0x3')&&_0x4ce64e[_0x508e29]==='i'){_0x35f5f1=this[_0xfabb('0x6')][_0x48fadf][_0x228eb0][_0xfabb('0x18')];logger[_0xfabb('0x11')](_0xfabb('0x19'),_0x4ce64e[_0x508e29],this['edges'][_0x48fadf][_0x228eb0][_0xfabb('0x18')]);}if(_0x4ce64e[_0x508e29]===_0x5dcc9a){return this[_0xfabb('0xf')](this['edges'][_0x48fadf][_0x228eb0][_0xfabb('0x18')],_0x145225);}}}else{return this[_0xfabb('0xf')](this[_0xfabb('0x6')][_0x48fadf][_0x228eb0][_0xfabb('0x18')],_0x145225);}}if(_0x4ce64e[_0xfabb('0x12')]){if(this['vertices'][_0x48fadf][_0xfabb('0x16')]===_0xfabb('0x17')){if(_0x35f5f1){return this[_0xfabb('0xf')](_0x35f5f1,_0x145225);}return logger[_0xfabb('0x11')](_0xfabb('0x1a'));}else if(_[_0xfabb('0x1b')](verticesWithRetry,this[_0xfabb('0x5')][_0x48fadf][_0xfabb('0x16')])){if(_0x5dcc9a==='-'){return logger['info'](_0xfabb('0x1c'));}if(_0x35f5f1&&_0x5dcc9a!=='t'){return this['traverseBFS'](_0x35f5f1,_0x145225);}return this[_0xfabb('0xf')](_0x48fadf,_0x145225);}return logger[_0xfabb('0x11')](_0xfabb('0x1d'));}};module['exports']=Graph;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c09=['[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]\x20VOICE\x20IS\x20DISABLED','[LICENSE]','./server','listening','connection','lodash','util','../../config/environment','agi','../../config/license/util','./rpc','./mailRpc','./graph','./vertices','defaults','error','stack','log','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','port','info','format','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','name','message','[%s]\x20%s','[ERROR]\x20%s','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','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','evtHangup','mxGraphModel','root','hasOwnProperty','retry','maxRetry','addVertex','omit','mxCell','isArray','length','target','addEdge','source','getSquareProject','then','createSquareReport','catch','indexOf','substring','debug','variables','stringify','production','start','joinAt','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','clear','vertex','agicommand','context','extension','priority','response','code','result','isUndefined','toString','agicommand\x20not\x20found','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','continueAt','Project\x20%s\x20not\x20found','getLicense','voice','callysquare'];(function(_0x3cc3c5,_0x51b8cf){var _0x430dc2=function(_0x2091d8){while(--_0x2091d8){_0x3cc3c5['push'](_0x3cc3c5['shift']());}};_0x430dc2(++_0x51b8cf);}(_0x0c09,0x1a5));var _0x90c0=function(_0x4d6d3e,_0x4527ca){_0x4d6d3e=_0x4d6d3e-0x0;var _0x1c5e00=_0x0c09[_0x4d6d3e];return _0x1c5e00;};'use strict';var parser=require('xml2json');var _=require(_0x90c0('0x0'));var syncho=require('syncho');var util=require(_0x90c0('0x1'));var moment=require('moment');var config=require(_0x90c0('0x2'));var logger=require('../../config/logger')(_0x90c0('0x3'));var utilLicense=require(_0x90c0('0x4'));var rpc=require(_0x90c0('0x5'));var mailRpc=require(_0x90c0('0x6'));var Graph=require(_0x90c0('0x7'));var Vertices=require(_0x90c0('0x8'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config[_0x90c0('0x3')]=_[_0x90c0('0x9')](config[_0x90c0('0x3')],{'ip':'127.0.0.1','port':0x11dd});function connectionHandler(_0x360d58){process['nextTick'](function(){syncho(function(){try{setChannelVariables(_0x360d58);agiHandler(_0x360d58);}catch(_0x4cf2dd){logger[_0x90c0('0xa')](_0x4cf2dd[_0x90c0('0xb')]);}});});}function listeningHandler(){console[_0x90c0('0xc')](_0x90c0('0xd'),config['agi'][_0x90c0('0xe')]);logger[_0x90c0('0xf')](util[_0x90c0('0x10')](_0x90c0('0x11'),config[_0x90c0('0x3')]['ip'],config[_0x90c0('0x3')]['port']));}function errorHandler(_0x15df72){if(_0x15df72&&_0x15df72[_0x90c0('0x12')]&&_0x15df72[_0x90c0('0x13')]){logger[_0x90c0('0xa')](util[_0x90c0('0x10')](_0x90c0('0x14'),_0x15df72[_0x90c0('0x12')],_0x15df72[_0x90c0('0x13')]));}else{logger[_0x90c0('0xa')](util[_0x90c0('0x10')](_0x90c0('0x15'),_0x15df72['stack']));}}function closeHandler(){logger[_0x90c0('0xf')](util[_0x90c0('0x10')](_0x90c0('0x16'),this[_0x90c0('0x17')],this[_0x90c0('0x18')],this[_0x90c0('0x19')],this[_0x90c0('0x1a')],this[_0x90c0('0x1b')]));try{createSquareReport(this);}catch(_0x583173){logger[_0x90c0('0xa')](_0x583173['stack']);}}function timeoutHandler(){logger['info'](util[_0x90c0('0x10')](_0x90c0('0x1c'),this['arg_1'],this['calleridname'],this[_0x90c0('0x19')],this['dnid'],this[_0x90c0('0x1b')]));}function hangupHandler(){logger[_0x90c0('0xf')](util[_0x90c0('0x10')](_0x90c0('0x1d'),this['arg_1'],this[_0x90c0('0x18')],this[_0x90c0('0x19')],this[_0x90c0('0x1a')],this['uniqueid']));this[_0x90c0('0x1e')]=!![];}function getRoot(_0x21b9a8){return parser['toJson'](_0x21b9a8,{'object':!![]})[_0x90c0('0x1f')][_0x90c0('0x20')];}function addVertex(_0x18fb2d,_0x273a25,_0x20a1a1){_0x273a25['agicommand']=_0x20a1a1;if(_0x273a25[_0x90c0('0x21')](_0x90c0('0x22'))){_0x273a25[_0x90c0('0x23')]=parseInt(_0x273a25['retry'],0xa);}_0x18fb2d[_0x90c0('0x24')](_[_0x90c0('0x25')](_0x273a25,_0x90c0('0x26')));}function initGraph(_0x28a54f,_0x4ee61c){var _0x2086f3=new Graph();for(var _0x413981 in _0x28a54f){if(_0x28a54f[_0x90c0('0x21')](_0x413981)){if(_[_0x90c0('0x27')](_0x28a54f[_0x413981])){for(var _0x1e75af=0x0;_0x1e75af<_0x28a54f[_0x413981]['length'];_0x1e75af+=0x1){addVertex(_0x2086f3,_0x28a54f[_0x413981][_0x1e75af],_0x413981);}}else{addVertex(_0x2086f3,_0x28a54f[_0x413981],_0x413981);}}}for(var _0x30c182=0x0;_0x30c182<_0x4ee61c[_0x90c0('0x28')];_0x30c182+=0x1){if(_0x4ee61c[_0x30c182]['source']&&_0x4ee61c[_0x30c182][_0x90c0('0x29')]){_0x2086f3[_0x90c0('0x2a')](_0x4ee61c[_0x30c182][_0x90c0('0x2b')],_0x4ee61c[_0x30c182]['target'],_0x4ee61c[_0x30c182]['value']);}}return _0x2086f3;}function getSquareProject(_0x25a344,_0x45be6a){rpc[_0x90c0('0x2c')](_0x25a344)[_0x90c0('0x2d')](function(_0x4cf8ca){_0x45be6a(null,_0x4cf8ca);})['catch'](function(_0x2408fb){_0x45be6a(null,_0x2408fb);});}function createSquareReport(_0x37164b,_0x7726ab){rpc[_0x90c0('0x2e')](_0x37164b)[_0x90c0('0x2d')](function(_0x47d8f0){if(_0x7726ab){_0x7726ab(null,_0x47d8f0);}})[_0x90c0('0x2f')](function(_0x58a7f9){if(_0x7726ab){_0x7726ab(null,_0x58a7f9);}});}function setChannelVariables(_0x252553){for(var _0x113e08 in _0x252553){if(_0x252553[_0x90c0('0x21')](_0x113e08)){if(_0x113e08[_0x90c0('0x30')]('agi_')===0x0){_0x252553[_0x113e08[_0x90c0('0x31')](0x4)]=_0x252553[_0x113e08];delete _0x252553[_0x113e08];}}}}function getLogFromObject(_0x3681d1){return util['inspect'](_0x3681d1,{'showHidden':![],'depth':null});}function agiHandler(_0x50b647){var _0x312683,_0x55fdd3,_0x5a8962,_0x95252e,_0x928c1b;logger[_0x90c0('0x32')](_0x90c0('0x33'),JSON[_0x90c0('0x34')](_0x50b647,null,0x2));logger['info'](util[_0x90c0('0x10')]('[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x50b647[_0x90c0('0x17')],_0x50b647[_0x90c0('0x18')],_0x50b647[_0x90c0('0x19')],_0x50b647[_0x90c0('0x1a')],_0x50b647[_0x90c0('0x1b')]));_0x50b647['on'](_0x90c0('0xa'),errorHandler);_0x50b647['on']('close',closeHandler);_0x50b647['on']('timeout',timeoutHandler);_0x50b647[_0x90c0('0x1e')]=![];_0x50b647['on']('hangup',hangupHandler);var _0x47a074=getSquareProject['sync'](null,_0x50b647[_0x90c0('0x17')]);if(_0x47a074){if(_0x47a074[_0x90c0('0x35')]){_0x312683=getRoot(_0x47a074[_0x90c0('0x35')]);if(_0x312683&&_0x312683[_0x90c0('0x36')]){logger['debug']('root',JSON['stringify'](_0x312683,null,0x2));_0x50b647[_0x90c0('0x37')]=moment()[_0x90c0('0x10')]('YYYY-MM-DD\x20HH:mm:ss');_0x55fdd3=initGraph(_['omit'](_0x312683,_0x90c0('0x26')),_0x312683[_0x90c0('0x26')]);_0x5a8962=new Vertices(_0x50b647,rpc,mailRpc);logger['info'](util['format'](_0x90c0('0x38'),_0x50b647[_0x90c0('0x17')],_0x50b647[_0x90c0('0x18')],_0x50b647[_0x90c0('0x19')],_0x50b647['dnid'],_0x50b647['uniqueid']));_0x55fdd3['traverseBFS'](_0x312683['start']['id'],function(_0x32de03){try{_0x32de03=_0x5a8962[_0x90c0('0x39')](_0x32de03);logger[_0x90c0('0x32')](_0x90c0('0x3a'),JSON['stringify'](_0x32de03,null,0x2));if(_0x32de03[_0x90c0('0x3b')]==='gotoc'){logger[_0x90c0('0xf')]('gotoc\x20block\x20stop\x20traverse\x20BFS');_0x50b647[_0x90c0('0x3c')]=_0x32de03['context']||_0x50b647['context'];_0x50b647[_0x90c0('0x3d')]=_0x32de03[_0x90c0('0x3d')];_0x50b647[_0x90c0('0x3e')]=_0x32de03[_0x90c0('0x3e')]?_0x32de03[_0x90c0('0x3e')]-0x1:0x1;return null;}else if(_0x32de03&&_0x5a8962[_0x32de03[_0x90c0('0x3b')]]){_0x928c1b=_0x5a8962[_0x32de03['agicommand']](_0x32de03);logger[_0x90c0('0xf')](_0x90c0('0x3f'),JSON[_0x90c0('0x34')](_0x928c1b,null,0x2));if(_0x928c1b&&_0x928c1b[_0x90c0('0x40')]===AGI_CODE_SUCCESS&&_0x928c1b[_0x90c0('0x41')]!==AGI_RESULT_ERROR&&!_0x50b647[_0x90c0('0x1e')]){logger[_0x90c0('0x32')]('response',getLogFromObject(_0x928c1b));return _[_0x90c0('0x42')](_0x928c1b[_0x90c0('0x41')])?null:_0x928c1b['result'][_0x90c0('0x43')]();}else{logger['error'](_0x90c0('0x3f'),getLogFromObject(_0x928c1b));return null;}}else{logger[_0x90c0('0xa')](_0x90c0('0x44'));return null;}}catch(_0x5007ea){logger[_0x90c0('0xa')](_0x5007ea[_0x90c0('0xb')]);return null;}});if(_0x312683[_0x90c0('0x45')]){logger[_0x90c0('0xf')](util[_0x90c0('0x10')](_0x90c0('0x46'),_0x50b647[_0x90c0('0x17')],_0x50b647[_0x90c0('0x18')],_0x50b647[_0x90c0('0x19')],_0x50b647[_0x90c0('0x1a')],_0x50b647['uniqueid']));_0x55fdd3['traverseBFS'](_0x312683[_0x90c0('0x45')]['id'],function(_0x104c73){try{_0x104c73=_0x5a8962[_0x90c0('0x39')](_0x104c73);logger[_0x90c0('0x32')](_0x90c0('0x3a'),JSON[_0x90c0('0x34')](_0x104c73,null,0x2));if(_0x104c73&&_0x5a8962[_0x104c73[_0x90c0('0x3b')]]){_0x928c1b=_0x5a8962[_0x104c73['agicommand']](_0x104c73);if(_0x928c1b){logger[_0x90c0('0x32')]('response',getLogFromObject(_0x928c1b));return _[_0x90c0('0x42')](_0x928c1b[_0x90c0('0x41')])?null:_0x928c1b[_0x90c0('0x41')][_0x90c0('0x43')]();}else{logger[_0x90c0('0xa')](_0x90c0('0x3f'),getLogFromObject(_0x928c1b));return null;}}else{logger['error'](_0x90c0('0x44'));return null;}}catch(_0x57e718){logger[_0x90c0('0xa')](_0x57e718['stack']);return null;}});}logger[_0x90c0('0xf')](util['format']('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x50b647[_0x90c0('0x17')],_0x50b647[_0x90c0('0x18')],_0x50b647['callerid'],_0x50b647[_0x90c0('0x1a')],_0x50b647[_0x90c0('0x1b')]));logger[_0x90c0('0xf')](util['format']('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x50b647[_0x90c0('0x3c')],_0x50b647[_0x90c0('0x3d')],parseInt(_0x50b647[_0x90c0('0x3e')],0xa)+0x1));_0x50b647['continueAt'](_0x50b647[_0x90c0('0x3c')],_0x50b647[_0x90c0('0x3d')],parseInt(_0x50b647[_0x90c0('0x3e')],0xa)+0x1);_0x50b647[_0x90c0('0x47')]();}}else{logger[_0x90c0('0xa')](util[_0x90c0('0x10')]('Project\x20%s\x20not\x20published',_0x50b647[_0x90c0('0x17')]));_0x50b647[_0x90c0('0x48')](_0x50b647[_0x90c0('0x3c')],_0x50b647['extension'],parseInt(_0x50b647['priority'],0xa)+0x1);_0x50b647[_0x90c0('0x47')]();}}else{logger['error'](util[_0x90c0('0x10')](_0x90c0('0x49'),_0x50b647['arg_1']));_0x50b647[_0x90c0('0x48')](_0x50b647['context'],_0x50b647[_0x90c0('0x3d')],parseInt(_0x50b647[_0x90c0('0x3e')],0xa)+0x1);_0x50b647[_0x90c0('0x47')]();}}function main(){var _0x2b4469;return utilLicense[_0x90c0('0x4a')]()[_0x90c0('0x2d')](function(_0x422541){if(_0x422541){if(_0x422541[_0x90c0('0x4b')]){if(_0x422541['callysquare']&&_0x422541[_0x90c0('0x4c')]>0x0){logger[_0x90c0('0xf')](util[_0x90c0('0x10')]('[LICENSE]\x20CHANNELS:\x20%s',_0x422541[_0x90c0('0x4c')]));_0x2b4469=_0x422541[_0x90c0('0x4c')];}else{logger[_0x90c0('0xf')](_0x90c0('0x4d'));}}else{logger[_0x90c0('0xf')](_0x90c0('0x4e'));_0x2b4469=-0x1;}}})['catch'](function(_0x21158c){logger['error'](_0x90c0('0x4f'),_0x21158c[_0x90c0('0xb')]);})[_0x90c0('0x45')](function(){var _0x3a5d7a=require(_0x90c0('0x50'))(config[_0x90c0('0x3')][_0x90c0('0xe')],config['agi']['ip'],_0x2b4469);_0x3a5d7a['on'](_0x90c0('0xa'),errorHandler);_0x3a5d7a['on'](_0x90c0('0x51'),listeningHandler);_0x3a5d7a['on'](_0x90c0('0x52'),connectionHandler);_0x3a5d7a['on']('close',closeHandler);});}main();
\ No newline at end of file
+var _0xcdc5=['context','priority','response','code','result','toString','agicommand\x20not\x20found','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[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','extension','Project\x20%s\x20not\x20published','continueAt','Project\x20%s\x20not\x20found','getLicense','voice','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]\x20VOICE\x20IS\x20DISABLED','[LICENSE]','./server','listening','util','../../config/logger','../../config/license/util','./rpc','./mailRpc','./graph','agi','127.0.0.1','stack','log','info','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','port','name','message','error','format','[ERROR]\x20%s','[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','arg_1','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','toJson','root','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','mxCell','length','addEdge','source','target','value','getSquareProject','then','catch','indexOf','agi_','substring','variables','stringify','close','timeout','hangup','sync','production','start','debug','joinAt','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','traverseBFS','clear','vertex'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0xcdc5,0x6d));var _0x5cdc=function(_0x585133,_0x2412a1){_0x585133=_0x585133-0x0;var _0x18254a=_0xcdc5[_0x585133];return _0x18254a;};'use strict';var parser=require('xml2json');var _=require('lodash');var syncho=require('syncho');var util=require(_0x5cdc('0x0'));var moment=require('moment');var config=require('../../config/environment');var logger=require(_0x5cdc('0x1'))('agi');var utilLicense=require(_0x5cdc('0x2'));var rpc=require(_0x5cdc('0x3'));var mailRpc=require(_0x5cdc('0x4'));var Graph=require(_0x5cdc('0x5'));var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config[_0x5cdc('0x6')]=_['defaults'](config[_0x5cdc('0x6')],{'ip':_0x5cdc('0x7'),'port':0x11dd});function connectionHandler(_0x4f3df2){process['nextTick'](function(){syncho(function(){try{setChannelVariables(_0x4f3df2);agiHandler(_0x4f3df2);}catch(_0x3fe988){logger['error'](_0x3fe988[_0x5cdc('0x8')]);}});});}function listeningHandler(){console[_0x5cdc('0x9')]('Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!',config[_0x5cdc('0x6')]['port']);logger[_0x5cdc('0xa')](util['format'](_0x5cdc('0xb'),config[_0x5cdc('0x6')]['ip'],config[_0x5cdc('0x6')][_0x5cdc('0xc')]));}function errorHandler(_0x5a49a3){if(_0x5a49a3&&_0x5a49a3[_0x5cdc('0xd')]&&_0x5a49a3[_0x5cdc('0xe')]){logger[_0x5cdc('0xf')](util[_0x5cdc('0x10')]('[%s]\x20%s',_0x5a49a3[_0x5cdc('0xd')],_0x5a49a3[_0x5cdc('0xe')]));}else{logger[_0x5cdc('0xf')](util['format'](_0x5cdc('0x11'),_0x5a49a3[_0x5cdc('0x8')]));}}function closeHandler(){logger['info'](util[_0x5cdc('0x10')](_0x5cdc('0x12'),this['arg_1'],this[_0x5cdc('0x13')],this[_0x5cdc('0x14')],this[_0x5cdc('0x15')],this[_0x5cdc('0x16')]));try{createSquareReport(this);}catch(_0x44a8da){logger[_0x5cdc('0xf')](_0x44a8da['stack']);}}function timeoutHandler(){logger[_0x5cdc('0xa')](util[_0x5cdc('0x10')](_0x5cdc('0x17'),this[_0x5cdc('0x18')],this[_0x5cdc('0x13')],this[_0x5cdc('0x14')],this[_0x5cdc('0x15')],this[_0x5cdc('0x16')]));}function hangupHandler(){logger[_0x5cdc('0xa')](util[_0x5cdc('0x10')](_0x5cdc('0x19'),this['arg_1'],this[_0x5cdc('0x13')],this['callerid'],this['dnid'],this[_0x5cdc('0x16')]));this[_0x5cdc('0x1a')]=!![];}function getRoot(_0x51cea2){return parser[_0x5cdc('0x1b')](_0x51cea2,{'object':!![]})['mxGraphModel'][_0x5cdc('0x1c')];}function addVertex(_0x5d4b08,_0xe483c9,_0x21aee){_0xe483c9[_0x5cdc('0x1d')]=_0x21aee;if(_0xe483c9[_0x5cdc('0x1e')](_0x5cdc('0x1f'))){_0xe483c9[_0x5cdc('0x20')]=parseInt(_0xe483c9['retry'],0xa);}_0x5d4b08[_0x5cdc('0x21')](_[_0x5cdc('0x22')](_0xe483c9,_0x5cdc('0x23')));}function initGraph(_0x5c1227,_0x4be205){var _0x10a1b7=new Graph();for(var _0x1b6d66 in _0x5c1227){if(_0x5c1227['hasOwnProperty'](_0x1b6d66)){if(_['isArray'](_0x5c1227[_0x1b6d66])){for(var _0x525c15=0x0;_0x525c15<_0x5c1227[_0x1b6d66][_0x5cdc('0x24')];_0x525c15+=0x1){addVertex(_0x10a1b7,_0x5c1227[_0x1b6d66][_0x525c15],_0x1b6d66);}}else{addVertex(_0x10a1b7,_0x5c1227[_0x1b6d66],_0x1b6d66);}}}for(var _0x20e7fc=0x0;_0x20e7fc<_0x4be205['length'];_0x20e7fc+=0x1){if(_0x4be205[_0x20e7fc]['source']&&_0x4be205[_0x20e7fc]['target']){_0x10a1b7[_0x5cdc('0x25')](_0x4be205[_0x20e7fc][_0x5cdc('0x26')],_0x4be205[_0x20e7fc][_0x5cdc('0x27')],_0x4be205[_0x20e7fc][_0x5cdc('0x28')]);}}return _0x10a1b7;}function getSquareProject(_0x36c106,_0xfe5ef9){rpc[_0x5cdc('0x29')](_0x36c106)[_0x5cdc('0x2a')](function(_0x5b310a){_0xfe5ef9(null,_0x5b310a);})[_0x5cdc('0x2b')](function(_0x3c5a6d){_0xfe5ef9(null,_0x3c5a6d);});}function createSquareReport(_0x57f879,_0x57218a){rpc['createSquareReport'](_0x57f879)[_0x5cdc('0x2a')](function(_0x34053d){if(_0x57218a){_0x57218a(null,_0x34053d);}})[_0x5cdc('0x2b')](function(_0x250d0b){if(_0x57218a){_0x57218a(null,_0x250d0b);}});}function setChannelVariables(_0x5a254a){for(var _0x5b430d in _0x5a254a){if(_0x5a254a[_0x5cdc('0x1e')](_0x5b430d)){if(_0x5b430d[_0x5cdc('0x2c')](_0x5cdc('0x2d'))===0x0){_0x5a254a[_0x5b430d[_0x5cdc('0x2e')](0x4)]=_0x5a254a[_0x5b430d];delete _0x5a254a[_0x5b430d];}}}}function getLogFromObject(_0x5c0d79){return util['inspect'](_0x5c0d79,{'showHidden':![],'depth':null});}function agiHandler(_0x1fe5c1){var _0x4736f1,_0x3c0ca3,_0x235110,_0xb8e06f,_0x10b146;logger['debug'](_0x5cdc('0x2f'),JSON[_0x5cdc('0x30')](_0x1fe5c1,null,0x2));logger[_0x5cdc('0xa')](util['format']('[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x1fe5c1[_0x5cdc('0x18')],_0x1fe5c1[_0x5cdc('0x13')],_0x1fe5c1[_0x5cdc('0x14')],_0x1fe5c1['dnid'],_0x1fe5c1[_0x5cdc('0x16')]));_0x1fe5c1['on'](_0x5cdc('0xf'),errorHandler);_0x1fe5c1['on'](_0x5cdc('0x31'),closeHandler);_0x1fe5c1['on'](_0x5cdc('0x32'),timeoutHandler);_0x1fe5c1[_0x5cdc('0x1a')]=![];_0x1fe5c1['on'](_0x5cdc('0x33'),hangupHandler);var _0x25ba85=getSquareProject[_0x5cdc('0x34')](null,_0x1fe5c1[_0x5cdc('0x18')]);if(_0x25ba85){if(_0x25ba85[_0x5cdc('0x35')]){_0x4736f1=getRoot(_0x25ba85['production']);if(_0x4736f1&&_0x4736f1[_0x5cdc('0x36')]){logger[_0x5cdc('0x37')](_0x5cdc('0x1c'),JSON[_0x5cdc('0x30')](_0x4736f1,null,0x2));_0x1fe5c1[_0x5cdc('0x38')]=moment()[_0x5cdc('0x10')]('YYYY-MM-DD\x20HH:mm:ss');_0x3c0ca3=initGraph(_[_0x5cdc('0x22')](_0x4736f1,_0x5cdc('0x23')),_0x4736f1[_0x5cdc('0x23')]);_0x235110=new Vertices(_0x1fe5c1,rpc,mailRpc);logger[_0x5cdc('0xa')](util['format'](_0x5cdc('0x39'),_0x1fe5c1['arg_1'],_0x1fe5c1[_0x5cdc('0x13')],_0x1fe5c1['callerid'],_0x1fe5c1[_0x5cdc('0x15')],_0x1fe5c1['uniqueid']));_0x3c0ca3[_0x5cdc('0x3a')](_0x4736f1[_0x5cdc('0x36')]['id'],function(_0x4426e1){try{_0x4426e1=_0x235110[_0x5cdc('0x3b')](_0x4426e1);logger[_0x5cdc('0x37')](_0x5cdc('0x3c'),JSON[_0x5cdc('0x30')](_0x4426e1,null,0x2));if(_0x4426e1[_0x5cdc('0x1d')]==='gotoc'){logger[_0x5cdc('0xa')]('gotoc\x20block\x20stop\x20traverse\x20BFS');_0x1fe5c1['context']=_0x4426e1[_0x5cdc('0x3d')]||_0x1fe5c1[_0x5cdc('0x3d')];_0x1fe5c1['extension']=_0x4426e1['extension'];_0x1fe5c1[_0x5cdc('0x3e')]=_0x4426e1[_0x5cdc('0x3e')]?_0x4426e1[_0x5cdc('0x3e')]-0x1:0x1;return null;}else if(_0x4426e1&&_0x235110[_0x4426e1[_0x5cdc('0x1d')]]){_0x10b146=_0x235110[_0x4426e1[_0x5cdc('0x1d')]](_0x4426e1);logger[_0x5cdc('0xa')](_0x5cdc('0x3f'),JSON[_0x5cdc('0x30')](_0x10b146,null,0x2));if(_0x10b146&&_0x10b146[_0x5cdc('0x40')]===AGI_CODE_SUCCESS&&_0x10b146[_0x5cdc('0x41')]!==AGI_RESULT_ERROR&&!_0x1fe5c1['evtHangup']){logger[_0x5cdc('0x37')](_0x5cdc('0x3f'),getLogFromObject(_0x10b146));return _['isUndefined'](_0x10b146['result'])?null:_0x10b146[_0x5cdc('0x41')][_0x5cdc('0x42')]();}else{logger['error'](_0x5cdc('0x3f'),getLogFromObject(_0x10b146));return null;}}else{logger[_0x5cdc('0xf')](_0x5cdc('0x43'));return null;}}catch(_0x402a1d){logger[_0x5cdc('0xf')](_0x402a1d[_0x5cdc('0x8')]);return null;}});if(_0x4736f1[_0x5cdc('0x44')]){logger[_0x5cdc('0xa')](util[_0x5cdc('0x10')](_0x5cdc('0x45'),_0x1fe5c1['arg_1'],_0x1fe5c1[_0x5cdc('0x13')],_0x1fe5c1['callerid'],_0x1fe5c1['dnid'],_0x1fe5c1[_0x5cdc('0x16')]));_0x3c0ca3['traverseBFS'](_0x4736f1[_0x5cdc('0x44')]['id'],function(_0x1874e6){try{_0x1874e6=_0x235110[_0x5cdc('0x3b')](_0x1874e6);logger[_0x5cdc('0x37')]('vertex',JSON[_0x5cdc('0x30')](_0x1874e6,null,0x2));if(_0x1874e6&&_0x235110[_0x1874e6[_0x5cdc('0x1d')]]){_0x10b146=_0x235110[_0x1874e6[_0x5cdc('0x1d')]](_0x1874e6);if(_0x10b146){logger[_0x5cdc('0x37')]('response',getLogFromObject(_0x10b146));return _['isUndefined'](_0x10b146['result'])?null:_0x10b146[_0x5cdc('0x41')][_0x5cdc('0x42')]();}else{logger['error'](_0x5cdc('0x3f'),getLogFromObject(_0x10b146));return null;}}else{logger['error']('agicommand\x20not\x20found');return null;}}catch(_0x31f107){logger['error'](_0x31f107[_0x5cdc('0x8')]);return null;}});}logger['info'](util[_0x5cdc('0x10')](_0x5cdc('0x46'),_0x1fe5c1[_0x5cdc('0x18')],_0x1fe5c1[_0x5cdc('0x13')],_0x1fe5c1['callerid'],_0x1fe5c1[_0x5cdc('0x15')],_0x1fe5c1[_0x5cdc('0x16')]));logger[_0x5cdc('0xa')](util[_0x5cdc('0x10')](_0x5cdc('0x47'),_0x1fe5c1[_0x5cdc('0x3d')],_0x1fe5c1[_0x5cdc('0x48')],parseInt(_0x1fe5c1['priority'],0xa)+0x1));_0x1fe5c1['continueAt'](_0x1fe5c1['context'],_0x1fe5c1[_0x5cdc('0x48')],parseInt(_0x1fe5c1[_0x5cdc('0x3e')],0xa)+0x1);_0x1fe5c1[_0x5cdc('0x31')]();}}else{logger[_0x5cdc('0xf')](util[_0x5cdc('0x10')](_0x5cdc('0x49'),_0x1fe5c1['arg_1']));_0x1fe5c1[_0x5cdc('0x4a')](_0x1fe5c1[_0x5cdc('0x3d')],_0x1fe5c1[_0x5cdc('0x48')],parseInt(_0x1fe5c1[_0x5cdc('0x3e')],0xa)+0x1);_0x1fe5c1[_0x5cdc('0x31')]();}}else{logger['error'](util[_0x5cdc('0x10')](_0x5cdc('0x4b'),_0x1fe5c1['arg_1']));_0x1fe5c1[_0x5cdc('0x4a')](_0x1fe5c1[_0x5cdc('0x3d')],_0x1fe5c1['extension'],parseInt(_0x1fe5c1[_0x5cdc('0x3e')],0xa)+0x1);_0x1fe5c1['close']();}}function main(){var _0x5dc54d;return utilLicense[_0x5cdc('0x4c')]()[_0x5cdc('0x2a')](function(_0x1ef89d){if(_0x1ef89d){if(_0x1ef89d[_0x5cdc('0x4d')]){if(_0x1ef89d[_0x5cdc('0x4e')]&&_0x1ef89d[_0x5cdc('0x4e')]>0x0){logger['info'](util[_0x5cdc('0x10')](_0x5cdc('0x4f'),_0x1ef89d[_0x5cdc('0x4e')]));_0x5dc54d=_0x1ef89d['callysquare'];}else{logger['info'](_0x5cdc('0x50'));}}else{logger[_0x5cdc('0xa')](_0x5cdc('0x51'));_0x5dc54d=-0x1;}}})[_0x5cdc('0x2b')](function(_0x5450d9){logger[_0x5cdc('0xf')](_0x5cdc('0x52'),_0x5450d9[_0x5cdc('0x8')]);})[_0x5cdc('0x44')](function(){var _0x363b0f=require(_0x5cdc('0x53'))(config[_0x5cdc('0x6')][_0x5cdc('0xc')],config[_0x5cdc('0x6')]['ip'],_0x5dc54d);_0x363b0f['on'](_0x5cdc('0xf'),errorHandler);_0x363b0f['on'](_0x5cdc('0x54'),listeningHandler);_0x363b0f['on']('connection',connectionHandler);_0x363b0f['on'](_0x5cdc('0x31'),closeHandler);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x978d=['catch','sendMailMessage','bluebird','jayson/promise','client','http','request','then','error','message','result'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x978d,0x115));var _0xd978=function(_0x2f9a97,_0x1cec38){_0x2f9a97=_0x2f9a97-0x0;var _0x430043=_0x978d[_0x2f9a97];return _0x430043;};'use strict';var BPromise=require(_0xd978('0x0'));var jayson=require(_0xd978('0x1'));var client=jayson[_0xd978('0x2')][_0xd978('0x3')]({'port':0x232b});function request(_0x4abc54,_0x45d831){return new BPromise(function(_0x522e4b,_0xda2e94){return client[_0xd978('0x4')](_0x4abc54,_0x45d831)[_0xd978('0x5')](function(_0x2eb7e2){if(_0x2eb7e2['error']){return _0xda2e94(_0x2eb7e2[_0xd978('0x6')][_0xd978('0x7')]);}else{return _0x522e4b(_0x2eb7e2[_0xd978('0x8')]);}})[_0xd978('0x9')](function(_0x4fdbf8){return _0xda2e94(_0x4fdbf8);});});}exports[_0xd978('0xa')]=function(_0x1cda94,_0x28471c){return request('SendMail',{'account':_0x1cda94,'message':_0x28471c});};
\ No newline at end of file
+var _0x699c=['http','request','result','catch','SendMail','bluebird','jayson/promise','client'];(function(_0x4f24e3,_0x59b204){var _0x1c66d7=function(_0x242849){while(--_0x242849){_0x4f24e3['push'](_0x4f24e3['shift']());}};_0x1c66d7(++_0x59b204);}(_0x699c,0xb5));var _0xc699=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x699c[_0x3dd15e];return _0x231fd0;};'use strict';var BPromise=require(_0xc699('0x0'));var jayson=require(_0xc699('0x1'));var client=jayson[_0xc699('0x2')][_0xc699('0x3')]({'port':0x232b});function request(_0x35dfe6,_0x17313e){return new BPromise(function(_0x56f044,_0x48387e){return client[_0xc699('0x4')](_0x35dfe6,_0x17313e)['then'](function(_0x3fe949){if(_0x3fe949['error']){return _0x48387e(_0x3fe949['error']['message']);}else{return _0x56f044(_0x3fe949[_0xc699('0x5')]);}})[_0xc699('0x6')](function(_0x38570a){return _0x48387e(_0x38570a);});});}exports['sendMailMessage']=function(_0x589b73,_0x2ea138){return request(_0xc699('0x7'),{'account':_0x589b73,'message':_0x2ea138});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x871b=['toString','indexOf','substring','length','slice','trim','emit','headers','line','exports','stream','Transform','_localBuffer','_inBody','inherits','prototype','_transform','\x0d\x0a\x0d\x0a'];(function(_0x368fb9,_0x1a9895){var _0x4892fb=function(_0x28d735){while(--_0x28d735){_0x368fb9['push'](_0x368fb9['shift']());}};_0x4892fb(++_0x1a9895);}(_0x871b,0xe2));var _0xb871=function(_0x2c9552,_0x2d9694){_0x2c9552=_0x2c9552-0x0;var _0x33b44e=_0x871b[_0x2c9552];return _0x33b44e;};'use strict';var util=require('util');var Transform=require(_0xb871('0x0'))[_0xb871('0x1')];function AGIReply(_0x397460){Transform['call'](this,_0x397460);this[_0xb871('0x2')]='';this[_0xb871('0x3')]=![];}util[_0xb871('0x4')](AGIReply,Transform);AGIReply[_0xb871('0x5')][_0xb871('0x6')]=function(_0x262f39,_0x4ca55e,_0x1b427f){var _0x4cf73b='\x0a',_0xd0b5ef=['\x0a\x0a',_0xb871('0x7')],_0xa559a=-0x1,_0x1560ff=-0x1,_0xe80f40='',_0x14aaa1=0x0,_0xf2eece='',_0x1b0fa4='';this['_localBuffer']+=_0x262f39[_0xb871('0x8')]();_0xf2eece=this[_0xb871('0x2')];if(!this[_0xb871('0x3')]){_0x14aaa1=0x0;while(_0xd0b5ef[_0x14aaa1]){while((_0x1560ff=_0xf2eece[_0xb871('0x9')](_0xd0b5ef[_0x14aaa1]))!=-0x1){_0xe80f40=_0xd0b5ef[_0x14aaa1];_0x1b0fa4=_0xf2eece['substring'](0x0,_0x1560ff);_0xf2eece=_0xf2eece[_0xb871('0xa')](_0x1560ff+_0xe80f40[_0xb871('0xb')]);var _0xc5a2f6=_0x1b0fa4['split'](_0x4cf73b),_0x4b38fa=0x0,_0x4b5ff1={},_0x3d0639='',_0x4444bf='',_0x22b222=-0x1;while(_0xc5a2f6[_0x4b38fa]){_0x22b222=_0xc5a2f6[_0x4b38fa]['indexOf'](':');if(_0x22b222!=-0x1){_0x3d0639=_0xc5a2f6[_0x4b38fa][_0xb871('0xc')](0x0,_0x22b222)[_0xb871('0xd')]();_0x4444bf=_0xc5a2f6[_0x4b38fa]['slice'](_0x22b222+0x1)[_0xb871('0xd')]();if(_0x3d0639[_0xb871('0xb')]>0x0){_0x4b5ff1[_0x3d0639]=_0x4444bf;}}else{}_0x4b38fa++;}this[_0xb871('0xe')](_0xb871('0xf'),_0x4b5ff1);this[_0xb871('0x3')]=!![];}_0x14aaa1++;}this[_0xb871('0x2')]=_0xf2eece;}else{while((_0xa559a=_0xf2eece[_0xb871('0x9')](_0x4cf73b))!=-0x1){_0x1b0fa4=_0xf2eece[_0xb871('0xa')](0x0,_0xa559a);this[_0xb871('0xe')](_0xb871('0x10'),_0x1b0fa4);_0xf2eece=_0xf2eece[_0xb871('0xa')](_0xa559a+_0x4cf73b[_0xb871('0xb')]);}this[_0xb871('0x2')]=_0xf2eece;}_0x1b427f();};module[_0xb871('0x11')]=AGIReply;
\ No newline at end of file
+var _0x2794=['substring','line','exports','stream','call','_inBody','inherits','prototype','_transform','\x0d\x0a\x0d\x0a','_localBuffer','toString','indexOf','split','slice','length','emit','headers'];(function(_0x2c1144,_0x5264a8){var _0x147bd2=function(_0xaee5c7){while(--_0xaee5c7){_0x2c1144['push'](_0x2c1144['shift']());}};_0x147bd2(++_0x5264a8);}(_0x2794,0x111));var _0x4279=function(_0x2a1079,_0x5979be){_0x2a1079=_0x2a1079-0x0;var _0x513940=_0x2794[_0x2a1079];return _0x513940;};'use strict';var util=require('util');var Transform=require(_0x4279('0x0'))['Transform'];function AGIReply(_0x3b5bf0){Transform[_0x4279('0x1')](this,_0x3b5bf0);this['_localBuffer']='';this[_0x4279('0x2')]=![];}util[_0x4279('0x3')](AGIReply,Transform);AGIReply[_0x4279('0x4')][_0x4279('0x5')]=function(_0x3f2ade,_0x1e31b2,_0x44cf69){var _0x369301='\x0a',_0x167e5=['\x0a\x0a',_0x4279('0x6')],_0x234f61=-0x1,_0x219adf=-0x1,_0x5493f6='',_0x317bec=0x0,_0x42d848='',_0x19b9b4='';this[_0x4279('0x7')]+=_0x3f2ade[_0x4279('0x8')]();_0x42d848=this[_0x4279('0x7')];if(!this[_0x4279('0x2')]){_0x317bec=0x0;while(_0x167e5[_0x317bec]){while((_0x219adf=_0x42d848[_0x4279('0x9')](_0x167e5[_0x317bec]))!=-0x1){_0x5493f6=_0x167e5[_0x317bec];_0x19b9b4=_0x42d848['substring'](0x0,_0x219adf);_0x42d848=_0x42d848['substring'](_0x219adf+_0x5493f6['length']);var _0x15274f=_0x19b9b4[_0x4279('0xa')](_0x369301),_0x101b84=0x0,_0x593aee={},_0x52b4a8='',_0x5e3cac='',_0x30c18c=-0x1;while(_0x15274f[_0x101b84]){_0x30c18c=_0x15274f[_0x101b84][_0x4279('0x9')](':');if(_0x30c18c!=-0x1){_0x52b4a8=_0x15274f[_0x101b84][_0x4279('0xb')](0x0,_0x30c18c)['trim']();_0x5e3cac=_0x15274f[_0x101b84][_0x4279('0xb')](_0x30c18c+0x1)['trim']();if(_0x52b4a8[_0x4279('0xc')]>0x0){_0x593aee[_0x52b4a8]=_0x5e3cac;}}else{}_0x101b84++;}this[_0x4279('0xd')](_0x4279('0xe'),_0x593aee);this['_inBody']=!![];}_0x317bec++;}this['_localBuffer']=_0x42d848;}else{while((_0x234f61=_0x42d848[_0x4279('0x9')](_0x369301))!=-0x1){_0x19b9b4=_0x42d848[_0x4279('0xf')](0x0,_0x234f61);this[_0x4279('0xd')](_0x4279('0x10'),_0x19b9b4);_0x42d848=_0x42d848[_0x4279('0xf')](_0x234f61+_0x369301['length']);}this[_0x4279('0x7')]=_0x42d848;}_0x44cf69();};module[_0x4279('0x11')]=AGIReply;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe194=['agentLogout','LogoutUser','bluebird','moment','util','client','http','request','then','error','message','catch','production','getMailAccountById','ShowMailAccount','MailServerOut','name','getSquareProjectById','getVoiceQueueById','ShowVoiceQueue','getVariableById','ShowVariable','ShowSquareOdbc','dsn','getUserById','ShowUser','getTrunkById','ShowTrunk','getSoundById','save_name','getIntervalById','ShowInterval','Interval','Intervals','getSmsAccountById','ShowSmsAccount','createSmsMessage','createSquareDetailsReport','CreateSquareDetailsReport','createSquareReport','CreateSquareReport','merge','arg_1','arg_2','format','YYYY-MM-DD\x20HH:mm:ss','createSquareRecording','CreateSquareRecording','createSquareMessage','CreateSquareMessage','createCmContact','ShowCmHopper','ListId','getPauseById','ShowPause','agentLogin','PauseUser','agentUnpause','UnpauseUser'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xe194,0x19f));var _0x4e19=function(_0x148879,_0x5b4c11){_0x148879=_0x148879-0x0;var _0x4f7027=_0xe194[_0x148879];return _0x4f7027;};'use strict';var BPromise=require(_0x4e19('0x0'));var moment=require(_0x4e19('0x1'));var _=require('lodash');var util=require(_0x4e19('0x2'));var jayson=require('jayson/promise');var client=jayson[_0x4e19('0x3')][_0x4e19('0x4')]({'port':0x2329});function request(_0x20ad56,_0x295a5b){return new BPromise(function(_0x27cd81,_0x488070){return client[_0x4e19('0x5')](_0x20ad56,_0x295a5b)[_0x4e19('0x6')](function(_0x431020){if(_0x431020[_0x4e19('0x7')]){return _0x488070(_0x431020[_0x4e19('0x7')][_0x4e19('0x8')]);}else{return _0x27cd81(_0x431020['result']);}})[_0x4e19('0x9')](function(_0x4d4fa9){return _0x488070(_0x4d4fa9);});});}exports['getSquareProject']=function(_0x275fdb){return request('ShowSquareProject',{'options':{'raw':![],'where':{'name':_0x275fdb},'attributes':[_0x4e19('0xa')]}});};exports[_0x4e19('0xb')]=function(_0x1187d3){return request(_0x4e19('0xc'),{'options':{'raw':![],'where':{'id':_0x1187d3},'include':[{'model':_0x4e19('0xd'),'as':'Smtp'}],'attributes':['id',_0x4e19('0xe'),'email']}});};exports[_0x4e19('0xf')]=function(_0x4395e1){return request('ShowSquareProject',{'options':{'where':{'id':_0x4395e1},'attributes':['name']}});};exports[_0x4e19('0x10')]=function(_0x2e0e28){return request(_0x4e19('0x11'),{'options':{'where':{'id':_0x2e0e28},'attributes':[_0x4e19('0xe')]}});};exports[_0x4e19('0x12')]=function(_0x5ac862){return request(_0x4e19('0x13'),{'options':{'where':{'id':_0x5ac862},'attributes':[_0x4e19('0xe')]}});};exports['getSquareOdbcById']=function(_0x5687ea){return request(_0x4e19('0x14'),{'options':{'where':{'id':_0x5687ea},'attributes':[_0x4e19('0x15')]}});};exports[_0x4e19('0x16')]=function(_0x45f416){return request(_0x4e19('0x17'),{'options':{'where':{'id':_0x45f416},'attributes':[_0x4e19('0xe')]}});};exports[_0x4e19('0x18')]=function(_0x5b8aac){return request(_0x4e19('0x19'),{'options':{'where':{'id':_0x5b8aac},'attributes':[_0x4e19('0xe')]}});};exports[_0x4e19('0x1a')]=function(_0x108c2b){return request('ShowSound',{'options':{'where':{'id':_0x108c2b},'attributes':[_0x4e19('0x1b')]}});};exports[_0x4e19('0x1c')]=function(_0xf9db56){return request(_0x4e19('0x1d'),{'options':{'raw':![],'where':{'id':_0xf9db56},'include':[{'model':_0x4e19('0x1e'),'as':_0x4e19('0x1f')}]}});};exports[_0x4e19('0x20')]=function(_0x4676a5){return request(_0x4e19('0x21'),{'options':{'where':{'id':_0x4676a5},'attributes':['id','name']}});};exports[_0x4e19('0x22')]=function(_0x5a68ba){return request('CreateSmsMessage',{'body':_0x5a68ba});};exports[_0x4e19('0x23')]=function(_0xfc1eb5){return request(_0x4e19('0x24'),{'body':_0xfc1eb5});};exports[_0x4e19('0x25')]=function(_0x30d600){return request(_0x4e19('0x26'),{'body':_[_0x4e19('0x27')](_0x30d600,{'project_name':_0x30d600[_0x4e19('0x28')],'prev_project_name':_0x30d600[_0x4e19('0x29')]||'','is_subproject':_0x30d600[_0x4e19('0x29')]?!![]:![],'leaveAt':moment()[_0x4e19('0x2a')](_0x4e19('0x2b'))})});};exports[_0x4e19('0x2c')]=function(_0x5e1132){return request(_0x4e19('0x2d'),{'body':_0x5e1132});};exports[_0x4e19('0x2e')]=function(_0x3b48e3){return request(_0x4e19('0x2f'),{'body':_0x3b48e3});};exports[_0x4e19('0x30')]=function(_0x553037){return request(_0x4e19('0x31'),{'options':{'raw':![],'where':{'phone':_0x553037['phone'],'ListId':_0x553037[_0x4e19('0x32')]}}})[_0x4e19('0x6')](function(_0x1824c0){if(_0x1824c0){return _0x1824c0;}return request('CreateCmContact',{'body':_0x553037});});};exports[_0x4e19('0x33')]=function(_0x22ded6){return request(_0x4e19('0x34'),{'options':{'where':{'id':_0x22ded6},'attributes':[_0x4e19('0xe')]}});};exports[_0x4e19('0x35')]=function(_0x4324aa,_0x27d68d){return request('LoginUser',{'body':{'interface':_0x27d68d},'options':{'where':_0x4324aa}});};exports['agentPause']=function(_0x270c33,_0x23fe51,_0xd7066b){return request(_0x4e19('0x36'),{'body':{'type':_0x23fe51,'uniqueid':_0xd7066b},'options':{'where':_0x270c33}});};exports[_0x4e19('0x37')]=function(_0x6a11db){return request(_0x4e19('0x38'),{'body':{},'options':{'where':_0x6a11db}});};exports[_0x4e19('0x39')]=function(_0x41e4c6){return request(_0x4e19('0x3a'),{'body':{},'options':{'where':_0x41e4c6}});};
\ No newline at end of file
+var _0xcbc7=['then','error','result','catch','getSquareProject','ShowSquareProject','production','getMailAccountById','ShowMailAccount','MailServerOut','Smtp','name','getSquareProjectById','getVoiceQueueById','ShowVoiceQueue','getVariableById','ShowVariable','getSquareOdbcById','ShowSquareOdbc','dsn','getUserById','getTrunkById','ShowInterval','Interval','Intervals','getSmsAccountById','createSmsMessage','CreateSmsMessage','createSquareDetailsReport','CreateSquareDetailsReport','CreateSquareReport','merge','arg_1','arg_2','YYYY-MM-DD\x20HH:mm:ss','CreateSquareRecording','createSquareMessage','createCmContact','ShowCmHopper','phone','CreateCmContact','getPauseById','ShowPause','LoginUser','agentPause','agentLogout','LogoutUser','bluebird','moment','lodash','util','jayson/promise','client','http'];(function(_0xc6d35,_0x445827){var _0x41a7cb=function(_0x2b2039){while(--_0x2b2039){_0xc6d35['push'](_0xc6d35['shift']());}};_0x41a7cb(++_0x445827);}(_0xcbc7,0x107));var _0x7cbc=function(_0x163e4e,_0x44cc89){_0x163e4e=_0x163e4e-0x0;var _0x4d825c=_0xcbc7[_0x163e4e];return _0x4d825c;};'use strict';var BPromise=require(_0x7cbc('0x0'));var moment=require(_0x7cbc('0x1'));var _=require(_0x7cbc('0x2'));var util=require(_0x7cbc('0x3'));var jayson=require(_0x7cbc('0x4'));var client=jayson[_0x7cbc('0x5')][_0x7cbc('0x6')]({'port':0x2329});function request(_0xd2d9af,_0x42d650){return new BPromise(function(_0x13f68c,_0x4f61e3){return client['request'](_0xd2d9af,_0x42d650)[_0x7cbc('0x7')](function(_0x41c52d){if(_0x41c52d[_0x7cbc('0x8')]){return _0x4f61e3(_0x41c52d[_0x7cbc('0x8')]['message']);}else{return _0x13f68c(_0x41c52d[_0x7cbc('0x9')]);}})[_0x7cbc('0xa')](function(_0x2d5a42){return _0x4f61e3(_0x2d5a42);});});}exports[_0x7cbc('0xb')]=function(_0x4b399b){return request(_0x7cbc('0xc'),{'options':{'raw':![],'where':{'name':_0x4b399b},'attributes':[_0x7cbc('0xd')]}});};exports[_0x7cbc('0xe')]=function(_0x4e1c85){return request(_0x7cbc('0xf'),{'options':{'raw':![],'where':{'id':_0x4e1c85},'include':[{'model':_0x7cbc('0x10'),'as':_0x7cbc('0x11')}],'attributes':['id',_0x7cbc('0x12'),'email']}});};exports[_0x7cbc('0x13')]=function(_0x21e879){return request('ShowSquareProject',{'options':{'where':{'id':_0x21e879},'attributes':[_0x7cbc('0x12')]}});};exports[_0x7cbc('0x14')]=function(_0x4344f2){return request(_0x7cbc('0x15'),{'options':{'where':{'id':_0x4344f2},'attributes':[_0x7cbc('0x12')]}});};exports[_0x7cbc('0x16')]=function(_0x439309){return request(_0x7cbc('0x17'),{'options':{'where':{'id':_0x439309},'attributes':[_0x7cbc('0x12')]}});};exports[_0x7cbc('0x18')]=function(_0x5f2d73){return request(_0x7cbc('0x19'),{'options':{'where':{'id':_0x5f2d73},'attributes':[_0x7cbc('0x1a')]}});};exports[_0x7cbc('0x1b')]=function(_0x267715){return request('ShowUser',{'options':{'where':{'id':_0x267715},'attributes':[_0x7cbc('0x12')]}});};exports[_0x7cbc('0x1c')]=function(_0x5a9fe1){return request('ShowTrunk',{'options':{'where':{'id':_0x5a9fe1},'attributes':[_0x7cbc('0x12')]}});};exports['getSoundById']=function(_0x5cf078){return request('ShowSound',{'options':{'where':{'id':_0x5cf078},'attributes':['save_name']}});};exports['getIntervalById']=function(_0x464e67){return request(_0x7cbc('0x1d'),{'options':{'raw':![],'where':{'id':_0x464e67},'include':[{'model':_0x7cbc('0x1e'),'as':_0x7cbc('0x1f')}]}});};exports[_0x7cbc('0x20')]=function(_0xb6d5f2){return request('ShowSmsAccount',{'options':{'where':{'id':_0xb6d5f2},'attributes':['id',_0x7cbc('0x12')]}});};exports[_0x7cbc('0x21')]=function(_0x53ab58){return request(_0x7cbc('0x22'),{'body':_0x53ab58});};exports[_0x7cbc('0x23')]=function(_0x177f4f){return request(_0x7cbc('0x24'),{'body':_0x177f4f});};exports['createSquareReport']=function(_0x1448eb){return request(_0x7cbc('0x25'),{'body':_[_0x7cbc('0x26')](_0x1448eb,{'project_name':_0x1448eb[_0x7cbc('0x27')],'prev_project_name':_0x1448eb[_0x7cbc('0x28')]||'','is_subproject':_0x1448eb[_0x7cbc('0x28')]?!![]:![],'leaveAt':moment()['format'](_0x7cbc('0x29'))})});};exports['createSquareRecording']=function(_0x4dcac3){return request(_0x7cbc('0x2a'),{'body':_0x4dcac3});};exports[_0x7cbc('0x2b')]=function(_0xbdc5ce){return request('CreateSquareMessage',{'body':_0xbdc5ce});};exports[_0x7cbc('0x2c')]=function(_0xc0ad21){return request(_0x7cbc('0x2d'),{'options':{'raw':![],'where':{'phone':_0xc0ad21[_0x7cbc('0x2e')],'ListId':_0xc0ad21['ListId']}}})[_0x7cbc('0x7')](function(_0x13b70a){if(_0x13b70a){return _0x13b70a;}return request(_0x7cbc('0x2f'),{'body':_0xc0ad21});});};exports[_0x7cbc('0x30')]=function(_0x3fda69){return request(_0x7cbc('0x31'),{'options':{'where':{'id':_0x3fda69},'attributes':[_0x7cbc('0x12')]}});};exports['agentLogin']=function(_0x411577,_0x2055e2){return request(_0x7cbc('0x32'),{'body':{'interface':_0x2055e2},'options':{'where':_0x411577}});};exports[_0x7cbc('0x33')]=function(_0x46f94e,_0x31bca8,_0x54a57f){return request('PauseUser',{'body':{'type':_0x31bca8,'uniqueid':_0x54a57f},'options':{'where':_0x46f94e}});};exports['agentUnpause']=function(_0x334d68){return request('UnpauseUser',{'body':{},'options':{'where':_0x334d68}});};exports[_0x7cbc('0x34')]=function(_0x331337){return request(_0x7cbc('0x35'),{'body':{},'options':{'where':_0x331337}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var polly=require('./polly');var lex=require('./lex');module['exports']={'polly':polly,'lex':lex};
\ No newline at end of file
+var _0xed08=['exports','./lex'];(function(_0x4867a8,_0xc2057c){var _0x5e5eec=function(_0x49144e){while(--_0x49144e){_0x4867a8['push'](_0x4867a8['shift']());}};_0x5e5eec(++_0xc2057c);}(_0xed08,0x67));var _0x8ed0=function(_0x17b7d7,_0x551056){_0x17b7d7=_0x17b7d7-0x0;var _0x1b62dd=_0xed08[_0x17b7d7];return _0x1b62dd;};var polly=require('./polly');var lex=require(_0x8ed0('0x0'));module[_0x8ed0('0x1')]={'polly':polly,'lex':lex};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x668b=['./lib/api','exports'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x668b,0x140));var _0xb668=function(_0x3c6ae2,_0x5c52d8){_0x3c6ae2=_0x3c6ae2-0x0;var _0x4edda=_0x668b[_0x3c6ae2];return _0x4edda;};'use strict';var lex=require(_0xb668('0x0'));module[_0xb668('0x1')]=function(_0x51555f,_0x15fbea,_0x2c30c1,_0x49a53b,_0x336ba4,_0x5e2e83){return lex(_0x51555f,_0x15fbea,_0x2c30c1,_0x49a53b,_0x336ba4,_0x5e2e83);};
\ No newline at end of file
+'use strict';var lex=require('./lib/api');module['exports']=function(_0x46400f,_0xa5f6b7,_0x4a08d4,_0x5080f5,_0x229028,_0x1fdf5b){return lex(_0x46400f,_0xa5f6b7,_0x4a08d4,_0x5080f5,_0x229028,_0x1fdf5b);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['LexRuntime','bluebird','aws-sdk','slots','hasOwnProperty'];(function(_0xc8e348,_0x23f07e){var _0x27af20=function(_0x5eed0e){while(--_0x5eed0e){_0xc8e348['push'](_0xc8e348['shift']());}};_0x27af20(++_0x23f07e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x521929,_0x479be5){_0x521929=_0x521929-0x0;var _0x632436=_0xa9e0[_0x521929];return _0x632436;};'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(_0x5d67c2,_0x2c1309){var _0x27a5bb=function(_0x29ac03){while(--_0x29ac03){_0x5d67c2['push'](_0x5d67c2['shift']());}};_0x27a5bb(++_0x2c1309);}(_0xa9e0,0x123));var _0x0a9e=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xa9e0[_0x173d7e];return _0x2220d6;};'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 _0x3b34=['./lib/api','exports'];(function(_0x51070b,_0x39c85d){var _0x153240=function(_0x7c02f2){while(--_0x7c02f2){_0x51070b['push'](_0x51070b['shift']());}};_0x153240(++_0x39c85d);}(_0x3b34,0xd8));var _0x43b3=function(_0x1322b1,_0x237be1){_0x1322b1=_0x1322b1-0x0;var _0x5ca30a=_0x3b34[_0x1322b1];return _0x5ca30a;};'use strict';var polly=require(_0x43b3('0x0'));module[_0x43b3('0x1')]=function(_0x3cf543,_0x4788bb,_0x5a97de,_0x555f2b,_0x4622d5,_0x5acf04,_0x239325){return polly(_0x3cf543,_0x4788bb,_0x5a97de,_0x555f2b,_0x4622d5,_0x5acf04,_0x239325);};
\ No newline at end of file
+var _0xa91b=['./lib/api'];(function(_0x488ceb,_0x38c965){var _0x93d517=function(_0x3c9d14){while(--_0x3c9d14){_0x488ceb['push'](_0x488ceb['shift']());}};_0x93d517(++_0x38c965);}(_0xa91b,0x91));var _0xba91=function(_0x117b72,_0xf70554){_0x117b72=_0x117b72-0x0;var _0x15ebad=_0xa91b[_0x117b72];return _0x15ebad;};'use strict';var polly=require(_0xba91('0x0'));module['exports']=function(_0x377f09,_0xc026bd,_0x40e368,_0x58e416,_0x6f9d0e,_0x2eeb52,_0x3c3204){return polly(_0x377f09,_0xc026bd,_0x40e368,_0x58e416,_0x6f9d0e,_0x2eeb52,_0x3c3204);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f59=['Polly','text','mp3','path','bluebird','randomstring','synthesizeSpeech','writeFile','AudioStream','Invalid\x20data\x20response\x20from\x20aws\x20Polly!','No\x20data\x20response\x20from\x20aws\x20Polly!'];(function(_0x54b723,_0xeb0f22){var _0x3c88ee=function(_0x3c9dec){while(--_0x3c9dec){_0x54b723['push'](_0x54b723['shift']());}};_0x3c88ee(++_0xeb0f22);}(_0x7f59,0xc9));var _0x97f5=function(_0x5741c0,_0x41905e){_0x5741c0=_0x5741c0-0x0;var _0xfeb6a5=_0x7f59[_0x5741c0];return _0xfeb6a5;};'use strict';var fs=require('fs');var path=require(_0x97f5('0x0'));var BPromise=require(_0x97f5('0x1'));var rs=require(_0x97f5('0x2'));var AWS=require('aws-sdk');function pollyResult(_0x3c7763,_0x537a78,_0x25ff16){return new BPromise(function(_0x59e889,_0x472cdb){_0x3c7763[_0x97f5('0x3')](_0x537a78,function(_0xf58c8,_0x379de5){if(_0xf58c8){_0x472cdb(_0xf58c8);}else if(_0x379de5){if(_0x379de5['AudioStream']instanceof Buffer){fs[_0x97f5('0x4')](_0x25ff16,_0x379de5[_0x97f5('0x5')],function(_0x4c8daf){if(_0x4c8daf){_0x472cdb(_0x4c8daf);}else{_0x59e889();}});}else{_0x472cdb(new Error(_0x97f5('0x6')));}}else{_0x472cdb(new Error(_0x97f5('0x7')));}});});}module['exports']=function(_0x117d8e,_0xd44fa0,_0x1880ec,_0x3119a8,_0x1909ad,_0x16ae81,_0x3c418b){var _0x233b64=new AWS[(_0x97f5('0x8'))]({'accessKeyId':_0x117d8e,'secretAccessKey':_0xd44fa0,'region':_0x1880ec});var _0x5a3443={'Text':_0x1909ad,'TextType':_0x16ae81||_0x97f5('0x9'),'OutputFormat':_0x97f5('0xa'),'VoiceId':_0x3119a8};return pollyResult(_0x233b64,_0x5a3443,_0x3c418b);};
\ No newline at end of file
+var _0x9a7c=['No\x20data\x20response\x20from\x20aws\x20Polly!','Polly','text','mp3','path','bluebird','randomstring','aws-sdk','synthesizeSpeech','AudioStream','writeFile'];(function(_0x1510c5,_0xde9022){var _0x433a86=function(_0x114896){while(--_0x114896){_0x1510c5['push'](_0x1510c5['shift']());}};_0x433a86(++_0xde9022);}(_0x9a7c,0xca));var _0xc9a7=function(_0x3218cc,_0x482fec){_0x3218cc=_0x3218cc-0x0;var _0x28e718=_0x9a7c[_0x3218cc];return _0x28e718;};'use strict';var fs=require('fs');var path=require(_0xc9a7('0x0'));var BPromise=require(_0xc9a7('0x1'));var rs=require(_0xc9a7('0x2'));var AWS=require(_0xc9a7('0x3'));function pollyResult(_0xd0f1de,_0x56db04,_0x53152b){return new BPromise(function(_0x58b087,_0x5128a0){_0xd0f1de[_0xc9a7('0x4')](_0x56db04,function(_0x29ce33,_0x16feda){if(_0x29ce33){_0x5128a0(_0x29ce33);}else if(_0x16feda){if(_0x16feda[_0xc9a7('0x5')]instanceof Buffer){fs[_0xc9a7('0x6')](_0x53152b,_0x16feda[_0xc9a7('0x5')],function(_0x7ed111){if(_0x7ed111){_0x5128a0(_0x7ed111);}else{_0x58b087();}});}else{_0x5128a0(new Error('Invalid\x20data\x20response\x20from\x20aws\x20Polly!'));}}else{_0x5128a0(new Error(_0xc9a7('0x7')));}});});}module['exports']=function(_0x563216,_0x5525e9,_0x2fd96e,_0x5bb721,_0x308bed,_0x3c04e2,_0x42266a){var _0x4671ea=new AWS[(_0xc9a7('0x8'))]({'accessKeyId':_0x563216,'secretAccessKey':_0x5525e9,'region':_0x2fd96e});var _0x4fc466={'Text':_0x308bed,'TextType':_0x3c04e2||_0xc9a7('0x9'),'OutputFormat':_0xc9a7('0xa'),'VoiceId':_0x5bb721};return pollyResult(_0x4671ea,_0x4fc466,_0x42266a);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa213=['exports'];(function(_0x3899eb,_0x1f7ee2){var _0x36729d=function(_0x425ed3){while(--_0x425ed3){_0x3899eb['push'](_0x3899eb['shift']());}};_0x36729d(++_0x1f7ee2);}(_0xa213,0x180));var _0x3a21=function(_0xc0be57,_0x2d1e96){_0xc0be57=_0xc0be57-0x0;var _0x2d786d=_0xa213[_0xc0be57];return _0x2d786d;};'use strict';var asr=require('./lib/api');module[_0x3a21('0x0')]=function(_0x2bd22d,_0x5c3acb,_0x2ed115,_0x5bbe03){return asr(_0x2bd22d,_0x5c3acb,_0x2ed115);};
\ No newline at end of file
+var _0x0c02=['exports','./lib/api'];(function(_0x431e6e,_0x3d2d42){var _0x1b5197=function(_0x245b7e){while(--_0x245b7e){_0x431e6e['push'](_0x431e6e['shift']());}};_0x1b5197(++_0x3d2d42);}(_0x0c02,0x193));var _0x20c0=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0c02[_0x3dd15e];return _0x231fd0;};'use strict';var asr=require(_0x20c0('0x0'));module[_0x20c0('0x1')]=function(_0x1c87d2,_0x5187b5,_0x5145a4,_0x5689c3){return asr(_0x1c87d2,_0x5187b5,_0x5145a4);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2821=['url','bluebird','https://speech.googleapis.com','exports','string','filepath\x20should\x20be\x20a\x20string','length','key\x20should\x20be\x20a\x20string','undefined','lang\x20should\x20be\x20a\x20string','toString','base64','POST','/v1/speech:recognize?key=','8000'];(function(_0x4fd522,_0x599930){var _0x2a6473=function(_0xeead){while(--_0xeead){_0x4fd522['push'](_0x4fd522['shift']());}};_0x2a6473(++_0x599930);}(_0x2821,0x87));var _0x1282=function(_0x32e5ea,_0x24118e){_0x32e5ea=_0x32e5ea-0x0;var _0x477ab0=_0x2821[_0x32e5ea];return _0x477ab0;};'use strict';var url=require(_0x1282('0x0'));var BPromise=require(_0x1282('0x1'));var fs=require('fs');var host=_0x1282('0x2');module[_0x1282('0x3')]=function(_0x27c0ae,_0x1bebaa,_0x279fa6){return new BPromise(function(_0x1e303b,_0x3f5e68){var _0x7c8e0f;if(typeof _0x27c0ae!==_0x1282('0x4')||_0x27c0ae['length']===0x0){return _0x3f5e68(_0x1282('0x5'));}if(typeof _0x1bebaa!==_0x1282('0x4')||_0x1bebaa[_0x1282('0x6')]===0x0){return _0x3f5e68(_0x1282('0x7'));}if(typeof _0x279fa6!==_0x1282('0x8')&&(typeof _0x279fa6!==_0x1282('0x4')||_0x279fa6[_0x1282('0x6')]===0x0)){return _0x3f5e68(_0x1282('0x9'));}try{_0x7c8e0f=fs['readFileSync'](_0x27c0ae)[_0x1282('0xa')](_0x1282('0xb'));}catch(_0x3bda99){return _0x3f5e68(_0x3bda99);}return _0x1e303b({'method':_0x1282('0xc'),'uri':host+_0x1282('0xd')+_0x1bebaa,'body':{'config':{'encoding':'LINEAR16','sampleRateHertz':_0x1282('0xe'),'languageCode':_0x279fa6},'audio':{'content':_0x7c8e0f}},'json':!![]});});};
\ No newline at end of file
+var _0xfa2f=['length','filepath\x20should\x20be\x20a\x20string','lang\x20should\x20be\x20a\x20string','readFileSync','toString','base64','/v1/speech:recognize?key=','https://speech.googleapis.com','string'];(function(_0x364ec2,_0x3d2b0e){var _0xc6451c=function(_0x671f){while(--_0x671f){_0x364ec2['push'](_0x364ec2['shift']());}};_0xc6451c(++_0x3d2b0e);}(_0xfa2f,0xe8));var _0xffa2=function(_0x9728fc,_0x5aa479){_0x9728fc=_0x9728fc-0x0;var _0x201f31=_0xfa2f[_0x9728fc];return _0x201f31;};'use strict';var url=require('url');var BPromise=require('bluebird');var fs=require('fs');var host=_0xffa2('0x0');module['exports']=function(_0x2411c2,_0x34de1d,_0x4d6507){return new BPromise(function(_0x54d423,_0x3fcced){var _0x12b74e;if(typeof _0x2411c2!==_0xffa2('0x1')||_0x2411c2[_0xffa2('0x2')]===0x0){return _0x3fcced(_0xffa2('0x3'));}if(typeof _0x34de1d!==_0xffa2('0x1')||_0x34de1d[_0xffa2('0x2')]===0x0){return _0x3fcced('key\x20should\x20be\x20a\x20string');}if(typeof _0x4d6507!=='undefined'&&(typeof _0x4d6507!==_0xffa2('0x1')||_0x4d6507[_0xffa2('0x2')]===0x0)){return _0x3fcced(_0xffa2('0x4'));}try{_0x12b74e=fs[_0xffa2('0x5')](_0x2411c2)[_0xffa2('0x6')](_0xffa2('0x7'));}catch(_0x1fa2eb){return _0x3fcced(_0x1fa2eb);}return _0x54d423({'method':'POST','uri':host+_0xffa2('0x8')+_0x34de1d,'body':{'config':{'encoding':'LINEAR16','sampleRateHertz':'8000','languageCode':_0x4d6507},'audio':{'content':_0x12b74e}},'json':!![]});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbcf0=['exports','./asr'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0xbcf0,0x1a5));var _0x0bcf=function(_0x19b84f,_0x48765e){_0x19b84f=_0x19b84f-0x0;var _0x18067b=_0xbcf0[_0x19b84f];return _0x18067b;};var asr=require(_0x0bcf('0x0'));module[_0x0bcf('0x1')]={'asr':asr};
\ No newline at end of file
+var _0x5788=['exports','./asr'];(function(_0x290b97,_0xf028a4){var _0x53a9c7=function(_0x5216c8){while(--_0x5216c8){_0x290b97['push'](_0x290b97['shift']());}};_0x53a9c7(++_0xf028a4);}(_0x5788,0x15b));var _0x8578=function(_0x2f5f02,_0x33e14f){_0x2f5f02=_0x2f5f02-0x0;var _0x17e17c=_0x5788[_0x2f5f02];return _0x17e17c;};var asr=require(_0x8578('0x0'));module[_0x8578('0x1')]={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe67a=['SessionsClient','sessionPath','detectIntent','queryResult','allRequiredParamsPresent','diagnosticInfo','fields','boolValue','fulfillmentText','intent','name','displayName','languageCode','queryText','responseId','tildeASR','asr','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','polly','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','freeform=3','parse','sestekNDA','nda','channelData','CustomAction','CustomActionData','AudioFromTts','Data','audiofile','dirName','apiai-promise','bluebird','dialogflow','http','md5','querystring','request-promise','randomstring','sox','google-tts-api','util','./google','./sestek','./tilde','../../../config/logger','protocol','host','path','WHAT_EVER','get','statusCode','error','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','finish','info','finish\x20download\x20file','unlink','download\x20error','pipe','end','https:','transcode','error\x20convert','finish\x20to\x20convert','start','resolve','tmp','generate','.wav','writeFileSync','base64','then','chmodSync','777','split','readFileSync','toString','googleCloudTTS','https://texttospeech.googleapis.com/v1/','?key=','ssml','input','voice','audioConfig','text:synthesize','POST','from','audioContent','googleCloudTTS\x20path','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','application/x-www-form-urlencoded','f.req=','jQ1olc','stringify','generic','slice','parse\x20response\x20failed:\x0a','data','length','text\x20length\x20limit\x20reached','lang\x20\x22','.mp3','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','message','googleDialogflow','textRequest','result','source','resolvedQuery','action','speech','score','status','endConversation','metadata','googleDialogflowV2','replace'];(function(_0x236c89,_0xd76ba9){var _0x3b2a15=function(_0x89e4f9){while(--_0x89e4f9){_0x236c89['push'](_0x236c89['shift']());}};_0x3b2a15(++_0xd76ba9);}(_0xe67a,0x13a));var _0xae67=function(_0x28dfae,_0x2cbc89){_0x28dfae=_0x28dfae-0x0;var _0xf590ec=_0xe67a[_0x28dfae];return _0xf590ec;};'use strict';var apiai=require(_0xae67('0x0'));var BPromise=require(_0xae67('0x1'));var dialogflow=require(_0xae67('0x2'));var fs=require('fs');var http=require(_0xae67('0x3'));var https=require('https');var md5=require(_0xae67('0x4'));var path=require('path');var querystring=require(_0xae67('0x5'));var rp=require(_0xae67('0x6'));var rs=require(_0xae67('0x7'));var sox=require(_0xae67('0x8'));var tts=require(_0xae67('0x9'));var urlParse=require('url')['parse'];var util=require(_0xae67('0xa'));var aws=require('./aws');var google=require(_0xae67('0xb'));var sestek=require(_0xae67('0xc'));var tilde=require(_0xae67('0xd'));var logger=require(_0xae67('0xe'))('agi');var ISPEECH_API='https://api.ispeech.org/api/rest';function downloadFile(_0x3f6c37,_0x45485f){return new BPromise(function(_0x1681a5,_0xe9c0aa){var _0x3ea7ef=urlParse(_0x3f6c37);var _0x384245=_0x3ea7ef[_0xae67('0xf')]==='https:'?https:http;var _0x69989f={'host':_0x3ea7ef[_0xae67('0x10')],'path':_0x3ea7ef[_0xae67('0x11')],'headers':{'user-agent':_0xae67('0x12')}};_0x384245[_0xae67('0x13')](_0x69989f,function(_0x29a607){if(_0x29a607[_0xae67('0x14')]!==0xc8){logger[_0xae67('0x15')](_0xae67('0x16')+_0x3f6c37+_0xae67('0x17')+_0x29a607['statusCode']+'\x20('+_0x29a607[_0xae67('0x18')]+')');_0xe9c0aa(new Error(_0xae67('0x16')+_0x3f6c37+_0xae67('0x17')+_0x29a607[_0xae67('0x14')]+'\x20('+_0x29a607[_0xae67('0x18')]+')'));return;}var _0x1c8d80=fs[_0xae67('0x19')](_0x45485f);_0x1c8d80['on'](_0xae67('0x1a'),function(){logger[_0xae67('0x1b')](_0xae67('0x1c'));_0x1c8d80['close'](_0x1681a5);});_0x1c8d80['on']('error',function(_0x4aff2b){fs[_0xae67('0x1d')](_0x45485f);logger[_0xae67('0x15')](_0xae67('0x1e'),_0x4aff2b);_0xe9c0aa(_0x4aff2b);});_0x29a607[_0xae67('0x1f')](_0x1c8d80);})['on'](_0xae67('0x15'),function(_0x24d6c8){logger[_0xae67('0x15')](_0x24d6c8);_0xe9c0aa(_0x24d6c8);})[_0xae67('0x20')]();});}function uploadFile(_0x372a46){return new BPromise(function(_0x488ca7,_0x58003d){var _0x3e6212=urlParse(_0x372a46);var _0x2e9cec=_0x3e6212['protocol']===_0xae67('0x21')?https:http;var _0x50f539={'host':_0x3e6212['host'],'path':_0x3e6212[_0xae67('0x11')],'headers':{'user-agent':'WHAT_EVER'}};_0x2e9cec[_0xae67('0x13')](_0x50f539,function(_0x15cd13){if(_0x15cd13[_0xae67('0x14')]!==0xc8){_0x58003d(new Error(_0xae67('0x16')+_0x372a46+_0xae67('0x17')+_0x15cd13['statusCode']+'\x20('+_0x15cd13['statusMessage']+')'));return;}var _0x2137d7='';_0x15cd13['on']('data',function(_0x49120b){_0x2137d7+=_0x49120b;});_0x15cd13['on']('end',function(){_0x488ca7(_0x2137d7);});})['on'](_0xae67('0x15'),function(_0x4e053b){_0x58003d(_0x4e053b);})['end']();});}function convertFile(_0x41f99f,_0x23c8af){return new BPromise(function(_0x1b913e,_0x8d7c7){var _0x505df9=sox[_0xae67('0x22')](_0x41f99f,_0x23c8af,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x505df9['on'](_0xae67('0x15'),function(_0x3dd154){logger['error'](_0xae67('0x23'),_0x3dd154);_0x8d7c7(_0x3dd154);});_0x505df9['on'](_0xae67('0x20'),function(){logger[_0xae67('0x1b')](_0xae67('0x24'));_0x1b913e();});_0x505df9[_0xae67('0x25')]();});}function base64Decode(_0x25f41f,_0x3bf8c6){var _0x40e8e6=path[_0xae67('0x26')](__dirname,_0xae67('0x27'),rs[_0xae67('0x28')](0x4)+_0xae67('0x29'));fs[_0xae67('0x2a')](_0x40e8e6,_0x25f41f,_0xae67('0x2b'));return convertFile(_0x40e8e6,_0x3bf8c6)[_0xae67('0x2c')](function(){try{fs[_0xae67('0x1d')](_0x40e8e6);fs[_0xae67('0x2d')](_0x3bf8c6,_0xae67('0x2e'));}catch(_0x24a914){logger[_0xae67('0x15')](_0x24a914);}return _0x3bf8c6[_0xae67('0x2f')]('.')[0x0];});}function base64Encode(_0x45e01f){var _0x2771d3=fs[_0xae67('0x30')](_0x45e01f);return new Buffer(_0x2771d3)[_0xae67('0x31')](_0xae67('0x2b'));}exports[_0xae67('0x32')]=function(_0xe3a180,_0x4496ff,_0x402696,_0x18caa9,_0x28d682,_0x3aec47){var _0x3ad76d,_0x56d946;var _0x5bc661=_0xae67('0x33');var _0x61b7e2=_0xae67('0x34')+_0xe3a180;var _0x59400f={};if(_0x4496ff===_0xae67('0x35')){_0x59400f[_0xae67('0x36')]={'ssml':_0x402696};}else{_0x59400f[_0xae67('0x36')]={'text':_0x402696};};_0x59400f[_0xae67('0x37')]={'languageCode':_0x18caa9,'ssmlGender':_0x28d682};_0x59400f[_0xae67('0x38')]={'audioEncoding':'MP3','sampleRateHertz':0x1f40};var _0x5028c7={'url':_0x5bc661+_0xae67('0x39')+_0x61b7e2,'method':_0xae67('0x3a'),'json':!![],'body':_0x59400f};return rp(_0x5028c7)['then'](function(_0x54505b){return new BPromise(function(_0x105366,_0x383426){_0x3ad76d=path[_0xae67('0x26')](__dirname,'tmp',rs[_0xae67('0x28')](0x4)+'.mp3');var _0x16eca1=Buffer[_0xae67('0x3b')](_0x54505b[_0xae67('0x3c')],'base64');return fs['writeFile'](_0x3ad76d,_0x16eca1,function(_0x135f2f){_0x383426(_0x135f2f);},function(_0x292b7b){fs[_0xae67('0x2d')](_0x3ad76d,'777');_0x105366(_0x292b7b);});});})[_0xae67('0x2c')](function(_0x1931ca){_0x56d946=path['resolve'](__dirname,_0xae67('0x27'),rs[_0xae67('0x28')](0x4)+_0xae67('0x29'));return convertFile(_0x3ad76d,_0x56d946);})[_0xae67('0x2c')](function(){try{fs[_0xae67('0x1d')](_0x3ad76d);fs[_0xae67('0x2d')](_0x56d946,_0xae67('0x2e'));}catch(_0x3febe8){logger['error'](_0x3febe8);}logger[_0xae67('0x1b')](_0xae67('0x3d'),_0x56d946[_0xae67('0x2f')]('.')[0x0]);return _0x56d946[_0xae67('0x2f')]('.')[0x0];});};exports[_0xae67('0x3e')]=function(_0x557e6f,_0x25189b){var _0x529c4c=_0xae67('0x3f');var _0x57880a,_0x4c6567;var _0x3ebdec;var _0x3b8211={'encoding':'utf8','method':_0xae67('0x3a'),'timeout':0x2710,'url':_0x529c4c,'headers':{'Content-Type':_0xae67('0x40')},'body':_0xae67('0x41')+encodeURIComponent(JSON['stringify']([[[_0xae67('0x42'),JSON[_0xae67('0x43')]([_0x557e6f,_0x25189b||'en',![],'null']),null,_0xae67('0x44')]]]))};return rp(_0x3b8211)[_0xae67('0x2c')](function(_0x4e1e14){try{_0x3ebdec=eval(_0x4e1e14[_0xae67('0x45')](0x5))[0x0][0x2];}catch(_0xd91e95){throw new Error(_0xae67('0x46')+_0x4e1e14[_0xae67('0x47')]);}if(!_0x3ebdec){if(_0x557e6f[_0xae67('0x48')]>0xc8){throw new Error(_0xae67('0x49'));}else{throw new Error(_0xae67('0x4a')+_0x25189b+'\x22\x20might\x20not\x20exist');}}try{_0x3ebdec=eval(_0x3ebdec)[0x0];}catch(_0x43050e){throw new Error(_0xae67('0x46')+res[_0xae67('0x47')]);}const _0x5d54fc=_0x3ebdec;_0x57880a=path[_0xae67('0x26')](__dirname,_0xae67('0x27'),rs[_0xae67('0x28')](0x4)+_0xae67('0x4b'));fs[_0xae67('0x2a')](_0x57880a,_0x3ebdec,{'encoding':_0xae67('0x2b')});_0x4c6567=path[_0xae67('0x26')](__dirname,'tmp',rs['generate'](0x4)+_0xae67('0x29'));return convertFile(_0x57880a,_0x4c6567);})['then'](function(){try{fs['unlink'](_0x57880a);fs[_0xae67('0x2d')](_0x4c6567,'777');}catch(_0x9f2b28){logger[_0xae67('0x15')](_0x9f2b28);}logger['info']('goggleTTS\x20path',_0x4c6567[_0xae67('0x2f')]('.')[0x0]);return _0x4c6567[_0xae67('0x2f')]('.')[0x0];});};exports['googleASR']=function(_0xf6a7da,_0x50c0cf,_0x531dc7){return google['asr'](_0xf6a7da,_0x50c0cf,_0x531dc7)[_0xae67('0x2c')](function(_0x1af5fa){logger[_0xae67('0x1b')](_0x1af5fa['uri']);return rp(_0x1af5fa);})[_0xae67('0x2c')](function(_0x38fe85){var _0x4c7574='';var _0x2291f6=0x0;try{fs['unlink'](_0xf6a7da);}catch(_0x37c883){logger[_0xae67('0x15')](_0x37c883);}if(_0x38fe85&&_0x38fe85[_0xae67('0x4c')]){_0x4c7574=_0x38fe85['results'][_0xae67('0x4d')](function(_0x333406){return _0x333406&&_0x333406[_0xae67('0x4e')][0x0]&&_0x333406[_0xae67('0x4e')][0x0]['transcript']?_0x333406['alternatives'][0x0][_0xae67('0x4f')]:'';})[_0xae67('0x50')]('\x0a');_0x2291f6=_0x38fe85[_0xae67('0x4c')][_0xae67('0x4d')](function(_0x292534){return _0x292534&&_0x292534[_0xae67('0x4e')][0x0]&&_0x292534[_0xae67('0x4e')][0x0][_0xae67('0x51')]?_0x292534[_0xae67('0x4e')][0x0]['confidence']:0x0;})['join']('\x0a');}logger[_0xae67('0x1b')](_0xae67('0x52'),_0x4c7574);logger[_0xae67('0x1b')](_0xae67('0x53'),_0x2291f6);return{'transcript':_0x4c7574,'confidence':_0x2291f6};})[_0xae67('0x54')](function(_0x291654){logger['error'](_0xae67('0x55'),_0x291654[_0xae67('0x14')],_0x291654['name'],_0x291654[_0xae67('0x56')]);});};exports[_0xae67('0x57')]=function(_0xb6ead1,_0x45495,_0x33afff,_0x29190f){var _0x10ec0a=apiai(_0x45495,{'language':_0x29190f||'en'});return _0x10ec0a[_0xae67('0x58')](_0x33afff,{'sessionId':md5(_0xb6ead1)})[_0xae67('0x2c')](function(_0x2426b1){logger[_0xae67('0x1b')](JSON[_0xae67('0x43')](_0x2426b1));return{'source':_0x2426b1[_0xae67('0x59')][_0xae67('0x5a')],'resolvedQuery':_0x2426b1['result'][_0xae67('0x5b')],'action':_0x2426b1[_0xae67('0x59')][_0xae67('0x5c')],'actionIncomplete':_0x2426b1[_0xae67('0x59')]['actionIncomplete'],'speech':_0x2426b1['result']['fulfillment'][_0xae67('0x5d')],'score':_0x2426b1[_0xae67('0x59')][_0xae67('0x5e')],'statusCode':_0x2426b1[_0xae67('0x5f')]['code'],'endConversation':_0x2426b1[_0xae67('0x59')]['metadata'][_0xae67('0x60')]||![],'isFallbackIntent':_0x2426b1[_0xae67('0x59')][_0xae67('0x61')]['isFallbackIntent']};});};exports[_0xae67('0x62')]=function(_0xa8d35b,_0x5b18bb,_0x52ec0f,_0x2c2293,_0x2cb5e2,_0x1af938){var _0x2330c8=_0x2c2293[_0xae67('0x63')](/\\n/g,'\x0a');var _0x318be5={'credentials':{'private_key':_0x2330c8,'client_email':_0x52ec0f}};var _0x13e81b=new dialogflow[(_0xae67('0x64'))](_0x318be5);var _0x52dca5=_0x13e81b[_0xae67('0x65')](_0x5b18bb,md5(_0xa8d35b));var _0x5ccf35={'session':_0x52dca5,'queryInput':{'text':{'text':_0x2cb5e2,'languageCode':_0x1af938}}};return _0x13e81b[_0xae67('0x66')](_0x5ccf35)[_0xae67('0x2c')](function(_0x4a0e67){if(_0x4a0e67&&_0x4a0e67[_0xae67('0x48')]){logger[_0xae67('0x1b')]('Dialogflow\x20V2\x20response:',JSON[_0xae67('0x43')](_0x4a0e67));var _0x1ede76=_0x4a0e67[0x0];if(_0x1ede76){var _0x5cc012={'action':_0x1ede76[_0xae67('0x67')][_0xae67('0x5c')],'allRequiredParamsPresent':_0x1ede76['queryResult'][_0xae67('0x68')],'endConversation':_0x1ede76[_0xae67('0x67')][_0xae67('0x69')]&&_0x1ede76[_0xae67('0x67')][_0xae67('0x69')][_0xae67('0x6a')]?_0x1ede76[_0xae67('0x67')]['diagnosticInfo'][_0xae67('0x6a')]['end_conversation'][_0xae67('0x6b')]:![],'fulfillmentText':_0x1ede76[_0xae67('0x67')][_0xae67('0x6c')],'intentName':_0x1ede76[_0xae67('0x67')][_0xae67('0x6d')][_0xae67('0x6e')],'intentDisplayName':_0x1ede76[_0xae67('0x67')][_0xae67('0x6d')][_0xae67('0x6f')],'isFallbackIntent':_0x1ede76['queryResult']['intent']['isFallback'],'languageCode':_0x1ede76['queryResult'][_0xae67('0x70')],'queryText':_0x1ede76['queryResult'][_0xae67('0x71')],'responseId':_0x1ede76[_0xae67('0x72')],'score':_0x1ede76['queryResult']['intentDetectionConfidence'],'speech':_0x1ede76[_0xae67('0x67')][_0xae67('0x6c')],'providerResponse':JSON[_0xae67('0x43')](_0x4a0e67)};return _0x5cc012;}}});};exports[_0xae67('0x73')]=function(_0x23f68f,_0xd65bce,_0x3d2fed,_0x5c94bb){return tilde[_0xae67('0x74')](_0x23f68f,_0xd65bce,_0x3d2fed,_0x5c94bb)['then'](function(_0x224d27){try{fs[_0xae67('0x1d')](_0x23f68f);}catch(_0x56b4dd){logger[_0xae67('0x15')](_0x56b4dd);}logger[_0xae67('0x1b')](_0xae67('0x75'),_0x224d27[_0xae67('0x4f')]);logger[_0xae67('0x1b')](_0xae67('0x76'),_0x224d27[_0xae67('0x51')]);return _0x224d27;});};exports['awsPolly']=function(_0x399de8,_0x55f3f0,_0x3f8222,_0x550ee5,_0x1d4994,_0xaf5934){var _0x24a6cc=path['resolve'](__dirname,_0xae67('0x27'),rs['generate'](0x4)+_0xae67('0x4b'));var _0x4dedc4;return aws[_0xae67('0x77')](_0x399de8,_0x55f3f0,_0x3f8222,_0x550ee5,_0x1d4994,_0xaf5934,_0x24a6cc)['then'](function(){_0x4dedc4=path[_0xae67('0x26')](__dirname,_0xae67('0x27'),rs[_0xae67('0x28')](0x4)+_0xae67('0x29'));return convertFile(_0x24a6cc,_0x4dedc4);})['then'](function(){try{fs[_0xae67('0x1d')](_0x24a6cc);fs[_0xae67('0x2d')](_0x4dedc4,'777');}catch(_0x1cce38){logger[_0xae67('0x15')](_0x1cce38);}return _0x4dedc4['split']('.')[0x0];});};exports['awsLex']=function(_0x4e5506,_0x44cbbc,_0x4377cd,_0x503e97,_0x45daaa,_0x87f159){return aws[_0xae67('0x78')](_0x4e5506,_0x44cbbc,_0x4377cd,_0x503e97,_0x45daaa,_0x87f159)[_0xae67('0x2c')](function(_0x224869){logger['info'](JSON[_0xae67('0x43')](_0x224869));return _0x224869;});};exports[_0xae67('0x79')]=function(_0x37662a,_0x50b90c,_0x303f40,_0x1cd350){var _0x2103fa=util[_0xae67('0x7a')](_0xae67('0x7b'),ISPEECH_API,_0x37662a,encodeURIComponent(_0x50b90c),_0x303f40,_0x1cd350);var _0x27f2ec=path[_0xae67('0x26')](__dirname,_0xae67('0x27'),rs['generate'](0x4)+_0xae67('0x4b'));var _0x41f911;return downloadFile(_0x2103fa,_0x27f2ec)[_0xae67('0x2c')](function(){_0x41f911=path[_0xae67('0x26')](__dirname,_0xae67('0x27'),rs[_0xae67('0x28')](0x4)+_0xae67('0x29'));return convertFile(_0x27f2ec,_0x41f911);})['then'](function(){try{fs[_0xae67('0x1d')](_0x27f2ec);fs[_0xae67('0x2d')](_0x41f911,_0xae67('0x2e'));}catch(_0x4ddea1){logger[_0xae67('0x15')](_0x4ddea1);}return _0x41f911[_0xae67('0x2f')]('.')[0x0];});};exports[_0xae67('0x7c')]=function(_0x47bade,_0x28d838,_0x1442b9,_0x4717ff){var _0x48e60a=util['format'](_0xae67('0x7d'),ISPEECH_API,_0x28d838,_0x1442b9,base64Encode(_0x47bade),_0x4717ff?util['format'](_0xae67('0x7e'),encodeURIComponent(_0x4717ff)):_0xae67('0x7f'));return uploadFile(_0x48e60a)['then'](function(_0x41d46b){return querystring[_0xae67('0x80')](_0x41d46b);});};exports[_0xae67('0x81')]=function(_0x2b0700,_0xdc70f7){return sestek[_0xae67('0x82')](_0x2b0700,_0xdc70f7)[_0xae67('0x2c')](function(_0x5701a1){logger['info'](JSON[_0xae67('0x43')](_0x5701a1));var _0x7a540b={'speech':_0x5701a1['text'],'action':_0x5701a1[_0xae67('0x83')]?_0x5701a1['channelData'][_0xae67('0x84')]:undefined,'actiondata':_0x5701a1[_0xae67('0x83')]?_0x5701a1[_0xae67('0x83')][_0xae67('0x85')]:undefined};if(_0x5701a1[_0xae67('0x83')]&&_0x5701a1[_0xae67('0x83')][_0xae67('0x86')]){return base64Decode(_0x5701a1[_0xae67('0x83')]['AudioFromTts'][_0xae67('0x87')],path[_0xae67('0x26')](__dirname,_0xae67('0x27'),rs['generate'](0x4)+'.wav'))['then'](function(_0x25bf00){_0x7a540b[_0xae67('0x88')]=_0x25bf00;return _0x7a540b;});}return _0x7a540b;});};exports[_0xae67('0x89')]=function(){return __dirname;};
\ No newline at end of file
+var _0x64b3=['fulfillmentText','intent','displayName','isFallback','languageCode','queryText','intentDetectionConfidence','tildeASR','asr','awsPolly','polly','awsLex','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','freeform=3','sestekNDA','nda','text','CustomAction','channelData','CustomActionData','AudioFromTts','Data','audiofile','dirName','apiai-promise','bluebird','http','https','md5','querystring','request-promise','randomstring','sox','url','parse','util','./aws','./google','./tilde','../../../config/logger','protocol','https:','path','WHAT_EVER','error','\x20failed,\x20status\x20code\x20=\x20','statusCode','statusMessage','request\x20to\x20','info','close','pipe','end','host','data','wav','error\x20convert','finish\x20to\x20convert','start','.wav','writeFileSync','base64','then','unlink','chmodSync','777','split','readFileSync','toString','googleCloudTTS','https://texttospeech.googleapis.com/v1/','?key=','ssml','input','audioConfig','MP3','text:synthesize','POST','generate','.mp3','tmp','googleCloudTTS\x20path','googleTTS','application/x-www-form-urlencoded','stringify','null','generic','parse\x20response\x20failed:\x0a','text\x20length\x20limit\x20reached','resolve','goggleTTS\x20path','uri','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','[%s]\x20%s:%s','name','googleDialogflow','textRequest','result','source','resolvedQuery','action','actionIncomplete','speech','score','code','metadata','endConversation','isFallbackIntent','googleDialogflowV2','replace','SessionsClient','sessionPath','detectIntent','queryResult','allRequiredParamsPresent','diagnosticInfo','fields','end_conversation'];(function(_0x4b1852,_0x50ee99){var _0x22544e=function(_0x127666){while(--_0x127666){_0x4b1852['push'](_0x4b1852['shift']());}};_0x22544e(++_0x50ee99);}(_0x64b3,0x9c));var _0x364b=function(_0x470e3a,_0x581524){_0x470e3a=_0x470e3a-0x0;var _0x21b65b=_0x64b3[_0x470e3a];return _0x21b65b;};'use strict';var apiai=require(_0x364b('0x0'));var BPromise=require(_0x364b('0x1'));var dialogflow=require('dialogflow');var fs=require('fs');var http=require(_0x364b('0x2'));var https=require(_0x364b('0x3'));var md5=require(_0x364b('0x4'));var path=require('path');var querystring=require(_0x364b('0x5'));var rp=require(_0x364b('0x6'));var rs=require(_0x364b('0x7'));var sox=require(_0x364b('0x8'));var tts=require('google-tts-api');var urlParse=require(_0x364b('0x9'))[_0x364b('0xa')];var util=require(_0x364b('0xb'));var aws=require(_0x364b('0xc'));var google=require(_0x364b('0xd'));var sestek=require('./sestek');var tilde=require(_0x364b('0xe'));var logger=require(_0x364b('0xf'))('agi');var ISPEECH_API='https://api.ispeech.org/api/rest';function downloadFile(_0x3ee5b4,_0x1d7607){return new BPromise(function(_0x4cba81,_0x3b5d79){var _0x3390ee=urlParse(_0x3ee5b4);var _0x5a76e0=_0x3390ee[_0x364b('0x10')]===_0x364b('0x11')?https:http;var _0x491901={'host':_0x3390ee['host'],'path':_0x3390ee[_0x364b('0x12')],'headers':{'user-agent':_0x364b('0x13')}};_0x5a76e0['get'](_0x491901,function(_0x1d5018){if(_0x1d5018['statusCode']!==0xc8){logger[_0x364b('0x14')]('request\x20to\x20'+_0x3ee5b4+_0x364b('0x15')+_0x1d5018[_0x364b('0x16')]+'\x20('+_0x1d5018[_0x364b('0x17')]+')');_0x3b5d79(new Error(_0x364b('0x18')+_0x3ee5b4+_0x364b('0x15')+_0x1d5018[_0x364b('0x16')]+'\x20('+_0x1d5018[_0x364b('0x17')]+')'));return;}var _0x2126aa=fs['createWriteStream'](_0x1d7607);_0x2126aa['on']('finish',function(){logger[_0x364b('0x19')]('finish\x20download\x20file');_0x2126aa[_0x364b('0x1a')](_0x4cba81);});_0x2126aa['on'](_0x364b('0x14'),function(_0x43c578){fs['unlink'](_0x1d7607);logger[_0x364b('0x14')]('download\x20error',_0x43c578);_0x3b5d79(_0x43c578);});_0x1d5018[_0x364b('0x1b')](_0x2126aa);})['on']('error',function(_0xb6ef7c){logger[_0x364b('0x14')](_0xb6ef7c);_0x3b5d79(_0xb6ef7c);})[_0x364b('0x1c')]();});}function uploadFile(_0x1e1d52){return new BPromise(function(_0x5499f6,_0x100b2f){var _0x50046e=urlParse(_0x1e1d52);var _0xda9261=_0x50046e[_0x364b('0x10')]==='https:'?https:http;var _0x2e910f={'host':_0x50046e[_0x364b('0x1d')],'path':_0x50046e[_0x364b('0x12')],'headers':{'user-agent':_0x364b('0x13')}};_0xda9261['get'](_0x2e910f,function(_0x1d37d6){if(_0x1d37d6[_0x364b('0x16')]!==0xc8){_0x100b2f(new Error(_0x364b('0x18')+_0x1e1d52+_0x364b('0x15')+_0x1d37d6[_0x364b('0x16')]+'\x20('+_0x1d37d6[_0x364b('0x17')]+')'));return;}var _0x3ddafc='';_0x1d37d6['on'](_0x364b('0x1e'),function(_0x58116b){_0x3ddafc+=_0x58116b;});_0x1d37d6['on']('end',function(){_0x5499f6(_0x3ddafc);});})['on'](_0x364b('0x14'),function(_0x1b362a){_0x100b2f(_0x1b362a);})[_0x364b('0x1c')]();});}function convertFile(_0x3dc08d,_0x8946b8){return new BPromise(function(_0x3ffb02,_0x38fc82){var _0x39e5c4=sox['transcode'](_0x3dc08d,_0x8946b8,{'sampleRate':0x1f40,'format':_0x364b('0x1f'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x39e5c4['on']('error',function(_0x252f63){logger[_0x364b('0x14')](_0x364b('0x20'),_0x252f63);_0x38fc82(_0x252f63);});_0x39e5c4['on'](_0x364b('0x1c'),function(){logger[_0x364b('0x19')](_0x364b('0x21'));_0x3ffb02();});_0x39e5c4[_0x364b('0x22')]();});}function base64Decode(_0x2d7460,_0x51e09e){var _0x36e877=path['resolve'](__dirname,'tmp',rs['generate'](0x4)+_0x364b('0x23'));fs[_0x364b('0x24')](_0x36e877,_0x2d7460,_0x364b('0x25'));return convertFile(_0x36e877,_0x51e09e)[_0x364b('0x26')](function(){try{fs[_0x364b('0x27')](_0x36e877);fs[_0x364b('0x28')](_0x51e09e,_0x364b('0x29'));}catch(_0x35cee0){logger[_0x364b('0x14')](_0x35cee0);}return _0x51e09e[_0x364b('0x2a')]('.')[0x0];});}function base64Encode(_0x62d8ef){var _0x27e610=fs[_0x364b('0x2b')](_0x62d8ef);return new Buffer(_0x27e610)[_0x364b('0x2c')](_0x364b('0x25'));}exports[_0x364b('0x2d')]=function(_0x5047e1,_0x331d36,_0x124628,_0x21314d,_0x3de699,_0x5b9f14){var _0x448e16,_0x5046d1;var _0x1c180f=_0x364b('0x2e');var _0x4464ca=_0x364b('0x2f')+_0x5047e1;var _0x1c720a={};if(_0x331d36===_0x364b('0x30')){_0x1c720a[_0x364b('0x31')]={'ssml':_0x124628};}else{_0x1c720a[_0x364b('0x31')]={'text':_0x124628};};_0x1c720a['voice']={'languageCode':_0x21314d,'ssmlGender':_0x3de699};_0x1c720a[_0x364b('0x32')]={'audioEncoding':_0x364b('0x33'),'sampleRateHertz':0x1f40};var _0x347790={'url':_0x1c180f+_0x364b('0x34')+_0x4464ca,'method':_0x364b('0x35'),'json':!![],'body':_0x1c720a};return rp(_0x347790)[_0x364b('0x26')](function(_0x2b0555){return new BPromise(function(_0x13ad42,_0x25aeb9){_0x448e16=path['resolve'](__dirname,'tmp',rs[_0x364b('0x36')](0x4)+_0x364b('0x37'));var _0x354611=Buffer['from'](_0x2b0555['audioContent'],_0x364b('0x25'));return fs['writeFile'](_0x448e16,_0x354611,function(_0x1d27d9){_0x25aeb9(_0x1d27d9);},function(_0x10f873){fs['chmodSync'](_0x448e16,_0x364b('0x29'));_0x13ad42(_0x10f873);});});})[_0x364b('0x26')](function(_0x56ab46){_0x5046d1=path['resolve'](__dirname,_0x364b('0x38'),rs[_0x364b('0x36')](0x4)+'.wav');return convertFile(_0x448e16,_0x5046d1);})['then'](function(){try{fs['unlink'](_0x448e16);fs[_0x364b('0x28')](_0x5046d1,'777');}catch(_0x66bd50){logger[_0x364b('0x14')](_0x66bd50);}logger[_0x364b('0x19')](_0x364b('0x39'),_0x5046d1['split']('.')[0x0]);return _0x5046d1['split']('.')[0x0];});};exports[_0x364b('0x3a')]=function(_0x1af632,_0x349145){var _0x5b651a='https://translate.google.com/_/TranslateWebserverUi/data/batchexecute';var _0x5c4caf,_0x1a8990;var _0x2508e1;var _0x2481bb={'encoding':'utf8','method':'POST','timeout':0x2710,'url':_0x5b651a,'headers':{'Content-Type':_0x364b('0x3b')},'body':'f.req='+encodeURIComponent(JSON[_0x364b('0x3c')]([[['jQ1olc',JSON['stringify']([_0x1af632,_0x349145||'en',![],_0x364b('0x3d')]),null,_0x364b('0x3e')]]]))};return rp(_0x2481bb)[_0x364b('0x26')](function(_0xa0f94){try{_0x2508e1=eval(_0xa0f94['slice'](0x5))[0x0][0x2];}catch(_0x275d4a){throw new Error(_0x364b('0x3f')+_0xa0f94[_0x364b('0x1e')]);}if(!_0x2508e1){if(_0x1af632['length']>0xc8){throw new Error(_0x364b('0x40'));}else{throw new Error('lang\x20\x22'+_0x349145+'\x22\x20might\x20not\x20exist');}}try{_0x2508e1=eval(_0x2508e1)[0x0];}catch(_0x26eb82){throw new Error(_0x364b('0x3f')+res[_0x364b('0x1e')]);}const _0x13ed53=_0x2508e1;_0x5c4caf=path['resolve'](__dirname,_0x364b('0x38'),rs[_0x364b('0x36')](0x4)+_0x364b('0x37'));fs[_0x364b('0x24')](_0x5c4caf,_0x2508e1,{'encoding':_0x364b('0x25')});_0x1a8990=path[_0x364b('0x41')](__dirname,_0x364b('0x38'),rs['generate'](0x4)+_0x364b('0x23'));return convertFile(_0x5c4caf,_0x1a8990);})[_0x364b('0x26')](function(){try{fs[_0x364b('0x27')](_0x5c4caf);fs['chmodSync'](_0x1a8990,_0x364b('0x29'));}catch(_0xeb558b){logger[_0x364b('0x14')](_0xeb558b);}logger[_0x364b('0x19')](_0x364b('0x42'),_0x1a8990[_0x364b('0x2a')]('.')[0x0]);return _0x1a8990[_0x364b('0x2a')]('.')[0x0];});};exports['googleASR']=function(_0xc55521,_0x2bcbfe,_0x1447f7){return google['asr'](_0xc55521,_0x2bcbfe,_0x1447f7)['then'](function(_0xbea7fb){logger[_0x364b('0x19')](_0xbea7fb[_0x364b('0x43')]);return rp(_0xbea7fb);})[_0x364b('0x26')](function(_0x5558d9){var _0x4063c2='';var _0x13d26b=0x0;try{fs['unlink'](_0xc55521);}catch(_0xe52ae2){logger[_0x364b('0x14')](_0xe52ae2);}if(_0x5558d9&&_0x5558d9['results']){_0x4063c2=_0x5558d9[_0x364b('0x44')][_0x364b('0x45')](function(_0x21c86d){return _0x21c86d&&_0x21c86d['alternatives'][0x0]&&_0x21c86d[_0x364b('0x46')][0x0]['transcript']?_0x21c86d[_0x364b('0x46')][0x0][_0x364b('0x47')]:'';})[_0x364b('0x48')]('\x0a');_0x13d26b=_0x5558d9[_0x364b('0x44')]['map'](function(_0x3e5604){return _0x3e5604&&_0x3e5604[_0x364b('0x46')][0x0]&&_0x3e5604[_0x364b('0x46')][0x0][_0x364b('0x49')]?_0x3e5604[_0x364b('0x46')][0x0][_0x364b('0x49')]:0x0;})[_0x364b('0x48')]('\x0a');}logger[_0x364b('0x19')](_0x364b('0x4a'),_0x4063c2);logger['info']('googleASR\x20confidence',_0x13d26b);return{'transcript':_0x4063c2,'confidence':_0x13d26b};})['catch'](function(_0x1ae019){logger[_0x364b('0x14')](_0x364b('0x4b'),_0x1ae019[_0x364b('0x16')],_0x1ae019[_0x364b('0x4c')],_0x1ae019['message']);});};exports[_0x364b('0x4d')]=function(_0xd1ecdf,_0x366822,_0xada991,_0x1341a0){var _0x199b96=apiai(_0x366822,{'language':_0x1341a0||'en'});return _0x199b96[_0x364b('0x4e')](_0xada991,{'sessionId':md5(_0xd1ecdf)})['then'](function(_0x2b4206){logger[_0x364b('0x19')](JSON[_0x364b('0x3c')](_0x2b4206));return{'source':_0x2b4206[_0x364b('0x4f')][_0x364b('0x50')],'resolvedQuery':_0x2b4206[_0x364b('0x4f')][_0x364b('0x51')],'action':_0x2b4206['result'][_0x364b('0x52')],'actionIncomplete':_0x2b4206[_0x364b('0x4f')][_0x364b('0x53')],'speech':_0x2b4206[_0x364b('0x4f')]['fulfillment'][_0x364b('0x54')],'score':_0x2b4206[_0x364b('0x4f')][_0x364b('0x55')],'statusCode':_0x2b4206['status'][_0x364b('0x56')],'endConversation':_0x2b4206[_0x364b('0x4f')][_0x364b('0x57')][_0x364b('0x58')]||![],'isFallbackIntent':_0x2b4206[_0x364b('0x4f')]['metadata'][_0x364b('0x59')]};});};exports[_0x364b('0x5a')]=function(_0x40ea34,_0x3ddedf,_0x215c30,_0x29f9a4,_0x3d567d,_0x5d0707){var _0x14253e=_0x29f9a4[_0x364b('0x5b')](/\\n/g,'\x0a');var _0x2638d8={'credentials':{'private_key':_0x14253e,'client_email':_0x215c30}};var _0x5462b0=new dialogflow[(_0x364b('0x5c'))](_0x2638d8);var _0xa824de=_0x5462b0[_0x364b('0x5d')](_0x3ddedf,md5(_0x40ea34));var _0x22ee0a={'session':_0xa824de,'queryInput':{'text':{'text':_0x3d567d,'languageCode':_0x5d0707}}};return _0x5462b0[_0x364b('0x5e')](_0x22ee0a)[_0x364b('0x26')](function(_0x2cb258){if(_0x2cb258&&_0x2cb258['length']){logger['info']('Dialogflow\x20V2\x20response:',JSON[_0x364b('0x3c')](_0x2cb258));var _0x1ba35b=_0x2cb258[0x0];if(_0x1ba35b){var _0x1a91cb={'action':_0x1ba35b[_0x364b('0x5f')][_0x364b('0x52')],'allRequiredParamsPresent':_0x1ba35b['queryResult'][_0x364b('0x60')],'endConversation':_0x1ba35b['queryResult'][_0x364b('0x61')]&&_0x1ba35b[_0x364b('0x5f')][_0x364b('0x61')][_0x364b('0x62')]?_0x1ba35b[_0x364b('0x5f')]['diagnosticInfo'][_0x364b('0x62')][_0x364b('0x63')]['boolValue']:![],'fulfillmentText':_0x1ba35b[_0x364b('0x5f')][_0x364b('0x64')],'intentName':_0x1ba35b['queryResult'][_0x364b('0x65')][_0x364b('0x4c')],'intentDisplayName':_0x1ba35b[_0x364b('0x5f')][_0x364b('0x65')][_0x364b('0x66')],'isFallbackIntent':_0x1ba35b[_0x364b('0x5f')][_0x364b('0x65')][_0x364b('0x67')],'languageCode':_0x1ba35b[_0x364b('0x5f')][_0x364b('0x68')],'queryText':_0x1ba35b['queryResult'][_0x364b('0x69')],'responseId':_0x1ba35b['responseId'],'score':_0x1ba35b[_0x364b('0x5f')][_0x364b('0x6a')],'speech':_0x1ba35b[_0x364b('0x5f')][_0x364b('0x64')],'providerResponse':JSON['stringify'](_0x2cb258)};return _0x1a91cb;}}});};exports[_0x364b('0x6b')]=function(_0x228524,_0x3dca23,_0x54434d,_0x1de1cf){return tilde[_0x364b('0x6c')](_0x228524,_0x3dca23,_0x54434d,_0x1de1cf)['then'](function(_0xd476b4){try{fs[_0x364b('0x27')](_0x228524);}catch(_0x26ff69){logger[_0x364b('0x14')](_0x26ff69);}logger['info']('Tilde\x20ASR\x20transcription',_0xd476b4['transcript']);logger['info']('Tilde\x20ASR\x20confidence',_0xd476b4[_0x364b('0x49')]);return _0xd476b4;});};exports[_0x364b('0x6d')]=function(_0x4474aa,_0x1bc214,_0x5097af,_0x45fb8c,_0x30611a,_0x569694){var _0x8dce12=path[_0x364b('0x41')](__dirname,_0x364b('0x38'),rs[_0x364b('0x36')](0x4)+_0x364b('0x37'));var _0x24c1aa;return aws[_0x364b('0x6e')](_0x4474aa,_0x1bc214,_0x5097af,_0x45fb8c,_0x30611a,_0x569694,_0x8dce12)[_0x364b('0x26')](function(){_0x24c1aa=path[_0x364b('0x41')](__dirname,_0x364b('0x38'),rs[_0x364b('0x36')](0x4)+_0x364b('0x23'));return convertFile(_0x8dce12,_0x24c1aa);})[_0x364b('0x26')](function(){try{fs[_0x364b('0x27')](_0x8dce12);fs[_0x364b('0x28')](_0x24c1aa,_0x364b('0x29'));}catch(_0x1431ca){logger[_0x364b('0x14')](_0x1431ca);}return _0x24c1aa[_0x364b('0x2a')]('.')[0x0];});};exports[_0x364b('0x6f')]=function(_0x5b7bcd,_0x198b88,_0x1f33bf,_0x3decd1,_0x3a8785,_0x239d52){return aws[_0x364b('0x70')](_0x5b7bcd,_0x198b88,_0x1f33bf,_0x3decd1,_0x3a8785,_0x239d52)[_0x364b('0x26')](function(_0xf02547){logger['info'](JSON[_0x364b('0x3c')](_0xf02547));return _0xf02547;});};exports[_0x364b('0x71')]=function(_0x536d9e,_0x45f5ee,_0x5d905b,_0x36d3e9){var _0x1d23fd=util[_0x364b('0x72')](_0x364b('0x73'),ISPEECH_API,_0x536d9e,encodeURIComponent(_0x45f5ee),_0x5d905b,_0x36d3e9);var _0x3d4514=path['resolve'](__dirname,_0x364b('0x38'),rs['generate'](0x4)+_0x364b('0x37'));var _0x5390b6;return downloadFile(_0x1d23fd,_0x3d4514)[_0x364b('0x26')](function(){_0x5390b6=path['resolve'](__dirname,'tmp',rs[_0x364b('0x36')](0x4)+_0x364b('0x23'));return convertFile(_0x3d4514,_0x5390b6);})[_0x364b('0x26')](function(){try{fs['unlink'](_0x3d4514);fs['chmodSync'](_0x5390b6,_0x364b('0x29'));}catch(_0x1eb71b){logger[_0x364b('0x14')](_0x1eb71b);}return _0x5390b6[_0x364b('0x2a')]('.')[0x0];});};exports[_0x364b('0x74')]=function(_0x319e38,_0x312383,_0x3bef44,_0x5b0844){var _0x5e35ff=util[_0x364b('0x72')]('%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s',ISPEECH_API,_0x312383,_0x3bef44,base64Encode(_0x319e38),_0x5b0844?util[_0x364b('0x72')]('model=%s',encodeURIComponent(_0x5b0844)):_0x364b('0x75'));return uploadFile(_0x5e35ff)[_0x364b('0x26')](function(_0x4c32a2){return querystring[_0x364b('0xa')](_0x4c32a2);});};exports[_0x364b('0x76')]=function(_0x566d30,_0x3edea2){return sestek[_0x364b('0x77')](_0x566d30,_0x3edea2)[_0x364b('0x26')](function(_0x3fa966){logger[_0x364b('0x19')](JSON[_0x364b('0x3c')](_0x3fa966));var _0x396f63={'speech':_0x3fa966[_0x364b('0x78')],'action':_0x3fa966['channelData']?_0x3fa966['channelData'][_0x364b('0x79')]:undefined,'actiondata':_0x3fa966['channelData']?_0x3fa966[_0x364b('0x7a')][_0x364b('0x7b')]:undefined};if(_0x3fa966[_0x364b('0x7a')]&&_0x3fa966['channelData'][_0x364b('0x7c')]){return base64Decode(_0x3fa966[_0x364b('0x7a')][_0x364b('0x7c')][_0x364b('0x7d')],path[_0x364b('0x41')](__dirname,'tmp',rs[_0x364b('0x36')](0x4)+_0x364b('0x23')))[_0x364b('0x26')](function(_0x1ad468){_0x396f63[_0x364b('0x7e')]=_0x1ad468;return _0x396f63;});}return _0x396f63;});};exports[_0x364b('0x7f')]=function(){return __dirname;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb288=['exports','./nda'];(function(_0x174fe9,_0xb622a9){var _0x23c489=function(_0x256f8f){while(--_0x256f8f){_0x174fe9['push'](_0x174fe9['shift']());}};_0x23c489(++_0xb622a9);}(_0xb288,0x6d));var _0x8b28=function(_0x1229fd,_0xf485f0){_0x1229fd=_0x1229fd-0x0;var _0x840e2=_0xb288[_0x1229fd];return _0x840e2;};var nda=require(_0x8b28('0x0'));module[_0x8b28('0x1')]={'nda':nda};
\ No newline at end of file
+var _0xd761=['./nda','exports'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xd761,0x88));var _0x1d76=function(_0x2459fd,_0x575d9b){_0x2459fd=_0x2459fd-0x0;var _0x364cd2=_0xd761[_0x2459fd];return _0x364cd2;};var nda=require(_0x1d76('0x0'));module[_0x1d76('0x1')]={'nda':nda};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2621=['message','uniqueid','callerid','extension','text','Bearer\x20','access_token','project','body','ProjectName','ndagenerate_audio','channelData','AudioOutputSettings','custom_action','CustomActionData','custom_action_data','info','stringify','request-promise','url','../../../../../config/logger','agi','exports','POST','resolve','ndauth_url','/token','password','username','then','ndassistant_url','/api/NaturalDialogAssistant/v1/Run'];(function(_0x218ff6,_0xf64f63){var _0xcbcbc1=function(_0x4da00d){while(--_0x4da00d){_0x218ff6['push'](_0x218ff6['shift']());}};_0xcbcbc1(++_0xf64f63);}(_0x2621,0x1d2));var _0x1262=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2621[_0x3dd15e];return _0x231fd0;};'use strict';var rp=require(_0x1262('0x0'));var url=require(_0x1262('0x1'));var logger=require(_0x1262('0x2'))(_0x1262('0x3'));module[_0x1262('0x4')]=function(_0x44878a,_0x2dfe65){var _0xbabce3={'method':_0x1262('0x5'),'uri':url[_0x1262('0x6')](_0x2dfe65[_0x1262('0x7')],_0x1262('0x8')),'form':{'grant_type':_0x1262('0x9'),'username':_0x2dfe65[_0x1262('0xa')],'password':_0x2dfe65['password']},'json':!![]};return rp(_0xbabce3)[_0x1262('0xb')](function(_0x52af34){var _0xaa3c86={'method':'POST','uri':url[_0x1262('0x6')](_0x2dfe65[_0x1262('0xc')],_0x1262('0xd')),'body':{'type':_0x2dfe65['ndaactivity_type']||_0x1262('0xe'),'channelId':'Nda','conversation':{'id':_0x44878a[_0x1262('0xf')]},'from':{'id':_0x44878a[_0x1262('0x10')],'name':_0x44878a['calleridname']},'recipient':{'id':_0x44878a['dnid'],'name':_0x44878a[_0x1262('0x11')]},'text':_0x2dfe65[_0x1262('0x12')],'channelData':{}},'headers':{'Authorization':_0x1262('0x13')+_0x52af34[_0x1262('0x14')]},'json':!![]};if(_0x2dfe65[_0x1262('0x15')]){_0xaa3c86[_0x1262('0x16')]['channelData'][_0x1262('0x17')]=_0x2dfe65[_0x1262('0x15')];}if(_0x2dfe65[_0x1262('0x18')]=='1'){_0xaa3c86['body'][_0x1262('0x19')][_0x1262('0x1a')]={'Generate':!![],'PutInStructuredPart':![],'ExpectedFormat':'audio/wav'};}if(_0x2dfe65['custom_action']){_0xaa3c86[_0x1262('0x16')][_0x1262('0x19')]['CustomAction']=_0x2dfe65[_0x1262('0x1b')];if(_0x2dfe65['custom_action_data']){_0xaa3c86[_0x1262('0x16')][_0x1262('0x19')][_0x1262('0x1c')]=_0x2dfe65[_0x1262('0x1d')];}}logger[_0x1262('0x1e')](JSON[_0x1262('0x1f')](_0xaa3c86));return rp(_0xaa3c86);});};
\ No newline at end of file
+var _0x9bb4=['project','body','channelData','ProjectName','ndagenerate_audio','AudioOutputSettings','custom_action','CustomAction','custom_action_data','info','request-promise','url','../../../../../config/logger','agi','exports','POST','ndauth_url','/token','password','username','then','resolve','/api/NaturalDialogAssistant/v1/Run','message','Nda','callerid','extension','Bearer\x20','access_token'];(function(_0x1b567c,_0x26f0f8){var _0x44a063=function(_0x62b2f7){while(--_0x62b2f7){_0x1b567c['push'](_0x1b567c['shift']());}};_0x44a063(++_0x26f0f8);}(_0x9bb4,0xd5));var _0x49bb=function(_0x280249,_0x10bee4){_0x280249=_0x280249-0x0;var _0x54f672=_0x9bb4[_0x280249];return _0x54f672;};'use strict';var rp=require(_0x49bb('0x0'));var url=require(_0x49bb('0x1'));var logger=require(_0x49bb('0x2'))(_0x49bb('0x3'));module[_0x49bb('0x4')]=function(_0x2d4298,_0x26cbff){var _0xa01a73={'method':_0x49bb('0x5'),'uri':url['resolve'](_0x26cbff[_0x49bb('0x6')],_0x49bb('0x7')),'form':{'grant_type':_0x49bb('0x8'),'username':_0x26cbff[_0x49bb('0x9')],'password':_0x26cbff['password']},'json':!![]};return rp(_0xa01a73)[_0x49bb('0xa')](function(_0x353853){var _0x1a4094={'method':_0x49bb('0x5'),'uri':url[_0x49bb('0xb')](_0x26cbff['ndassistant_url'],_0x49bb('0xc')),'body':{'type':_0x26cbff['ndaactivity_type']||_0x49bb('0xd'),'channelId':_0x49bb('0xe'),'conversation':{'id':_0x2d4298['uniqueid']},'from':{'id':_0x2d4298[_0x49bb('0xf')],'name':_0x2d4298['calleridname']},'recipient':{'id':_0x2d4298['dnid'],'name':_0x2d4298[_0x49bb('0x10')]},'text':_0x26cbff['text'],'channelData':{}},'headers':{'Authorization':_0x49bb('0x11')+_0x353853[_0x49bb('0x12')]},'json':!![]};if(_0x26cbff[_0x49bb('0x13')]){_0x1a4094[_0x49bb('0x14')][_0x49bb('0x15')][_0x49bb('0x16')]=_0x26cbff[_0x49bb('0x13')];}if(_0x26cbff[_0x49bb('0x17')]=='1'){_0x1a4094[_0x49bb('0x14')]['channelData'][_0x49bb('0x18')]={'Generate':!![],'PutInStructuredPart':![],'ExpectedFormat':'audio/wav'};}if(_0x26cbff[_0x49bb('0x19')]){_0x1a4094[_0x49bb('0x14')][_0x49bb('0x15')][_0x49bb('0x1a')]=_0x26cbff[_0x49bb('0x19')];if(_0x26cbff[_0x49bb('0x1b')]){_0x1a4094[_0x49bb('0x14')][_0x49bb('0x15')]['CustomActionData']=_0x26cbff[_0x49bb('0x1b')];}}logger[_0x49bb('0x1c')](JSON['stringify'](_0x1a4094));return rp(_0x1a4094);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x17ae=['./lib/api','exports'];(function(_0x4327f5,_0x503147){var _0x247ebb=function(_0x5df914){while(--_0x5df914){_0x4327f5['push'](_0x4327f5['shift']());}};_0x247ebb(++_0x503147);}(_0x17ae,0x94));var _0xe17a=function(_0x194c1d,_0x277856){_0x194c1d=_0x194c1d-0x0;var _0x2a5771=_0x17ae[_0x194c1d];return _0x2a5771;};'use strict';var asr=require(_0xe17a('0x0'));module[_0xe17a('0x1')]=function(_0x32b083,_0x3517f0,_0x303749,_0x5c2bec){return asr(_0x32b083,_0x3517f0,_0x303749,_0x5c2bec);};
\ No newline at end of file
+var _0xea0d=['exports','./lib/api'];(function(_0x4237b9,_0x2ea135){var _0x416349=function(_0x24c1c1){while(--_0x24c1c1){_0x4237b9['push'](_0x4237b9['shift']());}};_0x416349(++_0x2ea135);}(_0xea0d,0xa7));var _0xdea0=function(_0x4d7df6,_0x3f6139){_0x4d7df6=_0x4d7df6-0x0;var _0x4c0d29=_0xea0d[_0x4d7df6];return _0x4c0d29;};'use strict';var asr=require(_0xdea0('0x0'));module[_0xdea0('0x1')]=function(_0x346757,_0x2591c8,_0x125a69,_0x1879a6){return asr(_0x346757,_0x2591c8,_0x125a69,_0x1879a6);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6139=['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.','error','Tilde\x20ASR\x20parse\x20error','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','open','message','lodash','moment','../../../../../../config/logger','agi','exports','Tilde\x20URI','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','createHash','sha1','update','digest','hex','info','Open\x20Tilde\x20ASR\x20socket','unix','stringify','createReadStream','data','send','close','EOS','Tilde\x20ASR\x20send\x20error','terminate','parse','status','result','hypotheses','likelihood','Success.'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x6139,0x154));var _0x9613=function(_0x167f36,_0x24cf2e){_0x167f36=_0x167f36-0x0;var _0x18a5e3=_0x6139[_0x167f36];return _0x18a5e3;};'use strict';var BPromise=require('bluebird');var _=require(_0x9613('0x0'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x9613('0x1'));var crypto=require('crypto');var logger=require(_0x9613('0x2'))(_0x9613('0x3'));module[_0x9613('0x4')]=function(_0x24ad7c,_0x6b3da2,_0x52a1a0,_0x5965c3){return new BPromise(function(_0x24296c,_0x5e209c){logger['info'](_0x9613('0x5'),_0x5965c3||_0x9613('0x6'));var _0x5dee51=new WebSocket(_0x5965c3||_0x9613('0x6'),{'perMessageDeflate':![]});var _0x5b9fe1='';var _0x1848ea='0';var _0x30e47c='1';var _0x393007='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0x4dedba(_0x2c8b4e){var _0x5e05f2=crypto[_0x9613('0x7')](_0x9613('0x8'));_0x5e05f2[_0x9613('0x9')](_0x2c8b4e);return _0x5e05f2[_0x9613('0xa')](_0x9613('0xb'));}function _0x54f1d1(){try{logger[_0x9613('0xc')](_0x9613('0xd'));var _0x4d5fea=moment()[_0x9613('0xe')]();var _0x4cc01e=_0x4dedba(_0x4d5fea+_0x6b3da2+_0x52a1a0);_0x5dee51['send'](JSON[_0x9613('0xf')]({'appID':_0x6b3da2,'timestamp':_0x4d5fea,'appKey':_0x4cc01e}));var _0x4d5a1b=fs[_0x9613('0x10')](_0x24ad7c);_0x4d5a1b['on'](_0x9613('0x11'),function(_0x2e9487){_0x5dee51[_0x9613('0x12')](_0x2e9487);});_0x4d5a1b['on'](_0x9613('0x13'),function(){_0x5dee51['send'](_0x9613('0x14'));});}catch(_0x3ade13){logger['error'](_0x9613('0x15'),JSON[_0x9613('0xf')](_0x3ade13));_0x5dee51[_0x9613('0x16')]();}}function _0x363781(_0x3da58d){try{if(_0x3da58d){var _0xe2c218=JSON[_0x9613('0x17')](_0x3da58d);switch(_0xe2c218[_0x9613('0x18')]){case 0x0:if(_0xe2c218[_0x9613('0x19')]){if(_0xe2c218[_0x9613('0x19')]['final']){logger['info']('Tilde\x20ASR\x20hypoteses',JSON[_0x9613('0xf')](_0xe2c218['result'][_0x9613('0x1a')]));_0x5b9fe1=_0xe2c218[_0x9613('0x19')][_0x9613('0x1a')][0x0]['transcript'];_0x1848ea=_0xe2c218['result']['hypotheses'][0x0][_0x9613('0x1b')];_0x30e47c='0';_0x393007=_0x9613('0x1c');_0x5dee51[_0x9613('0x16')]();}}break;case 0x1:logger['info']('No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech');_0x30e47c='1';_0x393007=_0x9613('0x1d');break;case 0x2:logger[_0x9613('0xc')](_0x9613('0x1e'));_0x30e47c='2';_0x393007=_0x9613('0x1e');break;case 0x9:logger[_0x9613('0xc')]('Not\x20available.\x20Max\x20load\x20limit\x20reached.');_0x30e47c='9';_0x393007=_0x9613('0x1f');break;case 0xa:logger[_0x9613('0xc')]('Authentication\x20failed.');_0x30e47c='10';_0x393007='Authentication\x20failed.';break;case 0xb:logger[_0x9613('0xc')](_0x9613('0x20'));_0x30e47c='11';_0x393007='All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.';}}}catch(_0x5ce4b7){logger[_0x9613('0x21')](_0x9613('0x22'),JSON[_0x9613('0xf')](_0x5ce4b7));_0x5dee51[_0x9613('0x16')]();}}function _0x379ca7(){logger[_0x9613('0xc')](_0x9613('0x23'));_0x24296c({'transcript':_0x5b9fe1,'confidence':_0x1848ea,'status':_0x30e47c,'status_message':_0x393007});}function _0x279a61(_0x36680d){logger[_0x9613('0x21')](_0x9613('0x24'));if(!_[_0x9613('0x25')](_0x36680d)){logger[_0x9613('0x21')](_[_0x9613('0x26')](_0x36680d)?JSON[_0x9613('0xf')](_0x36680d):_0x36680d);}}_0x5dee51['on'](_0x9613('0x27'),_0x54f1d1);_0x5dee51['on'](_0x9613('0x28'),_0x363781);_0x5dee51['on'](_0x9613('0x13'),_0x379ca7);_0x5dee51['on'](_0x9613('0x21'),_0x279a61);});};
\ No newline at end of file
+var _0x2132=['message','bluebird','lodash','moment','crypto','../../../../../../config/logger','exports','Tilde\x20URI','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','createHash','sha1','update','digest','hex','info','Open\x20Tilde\x20ASR\x20socket','unix','send','stringify','createReadStream','data','close','EOS','error','Tilde\x20ASR\x20send\x20error','terminate','parse','status','result','final','Tilde\x20ASR\x20hypoteses','hypotheses','transcript','likelihood','Success.','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.','Authentication\x20failed.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','Tilde\x20ASR\x20parse\x20error','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','open'];(function(_0x292291,_0x3b8da5){var _0x1576d6=function(_0x1079db){while(--_0x1079db){_0x292291['push'](_0x292291['shift']());}};_0x1576d6(++_0x3b8da5);}(_0x2132,0x169));var _0x2213=function(_0x53d1f9,_0x507162){_0x53d1f9=_0x53d1f9-0x0;var _0x45ec63=_0x2132[_0x53d1f9];return _0x45ec63;};'use strict';var BPromise=require(_0x2213('0x0'));var _=require(_0x2213('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x2213('0x2'));var crypto=require(_0x2213('0x3'));var logger=require(_0x2213('0x4'))('agi');module[_0x2213('0x5')]=function(_0x415116,_0x279447,_0x502453,_0x4f72b8){return new BPromise(function(_0x5ef4af,_0x1c992a){logger['info'](_0x2213('0x6'),_0x4f72b8||_0x2213('0x7'));var _0x51e616=new WebSocket(_0x4f72b8||_0x2213('0x7'),{'perMessageDeflate':![]});var _0x1c6c25='';var _0xec439e='0';var _0x1b415f='1';var _0x2186d5='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0x379b45(_0x29870b){var _0x55f9ff=crypto[_0x2213('0x8')](_0x2213('0x9'));_0x55f9ff[_0x2213('0xa')](_0x29870b);return _0x55f9ff[_0x2213('0xb')](_0x2213('0xc'));}function _0x56d163(){try{logger[_0x2213('0xd')](_0x2213('0xe'));var _0x56e6fa=moment()[_0x2213('0xf')]();var _0x6b2ec0=_0x379b45(_0x56e6fa+_0x279447+_0x502453);_0x51e616[_0x2213('0x10')](JSON[_0x2213('0x11')]({'appID':_0x279447,'timestamp':_0x56e6fa,'appKey':_0x6b2ec0}));var _0x526042=fs[_0x2213('0x12')](_0x415116);_0x526042['on'](_0x2213('0x13'),function(_0x2d562c){_0x51e616[_0x2213('0x10')](_0x2d562c);});_0x526042['on'](_0x2213('0x14'),function(){_0x51e616[_0x2213('0x10')](_0x2213('0x15'));});}catch(_0x4ceb69){logger[_0x2213('0x16')](_0x2213('0x17'),JSON['stringify'](_0x4ceb69));_0x51e616[_0x2213('0x18')]();}}function _0x303784(_0x5729f5){try{if(_0x5729f5){var _0x4b855b=JSON[_0x2213('0x19')](_0x5729f5);switch(_0x4b855b[_0x2213('0x1a')]){case 0x0:if(_0x4b855b[_0x2213('0x1b')]){if(_0x4b855b[_0x2213('0x1b')][_0x2213('0x1c')]){logger['info'](_0x2213('0x1d'),JSON['stringify'](_0x4b855b[_0x2213('0x1b')][_0x2213('0x1e')]));_0x1c6c25=_0x4b855b[_0x2213('0x1b')][_0x2213('0x1e')][0x0][_0x2213('0x1f')];_0xec439e=_0x4b855b[_0x2213('0x1b')]['hypotheses'][0x0][_0x2213('0x20')];_0x1b415f='0';_0x2186d5=_0x2213('0x21');_0x51e616[_0x2213('0x18')]();}}break;case 0x1:logger[_0x2213('0xd')](_0x2213('0x22'));_0x1b415f='1';_0x2186d5='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';break;case 0x2:logger[_0x2213('0xd')](_0x2213('0x23'));_0x1b415f='2';_0x2186d5='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger[_0x2213('0xd')](_0x2213('0x24'));_0x1b415f='9';_0x2186d5=_0x2213('0x24');break;case 0xa:logger['info'](_0x2213('0x25'));_0x1b415f='10';_0x2186d5=_0x2213('0x25');break;case 0xb:logger['info'](_0x2213('0x26'));_0x1b415f='11';_0x2186d5=_0x2213('0x26');}}}catch(_0x702560){logger[_0x2213('0x16')](_0x2213('0x27'),JSON[_0x2213('0x11')](_0x702560));_0x51e616[_0x2213('0x18')]();}}function _0x22687f(){logger[_0x2213('0xd')]('Close\x20Tilde\x20ASR\x20socket');_0x5ef4af({'transcript':_0x1c6c25,'confidence':_0xec439e,'status':_0x1b415f,'status_message':_0x2186d5});}function _0x1388e5(_0x49bb0f){logger[_0x2213('0x16')](_0x2213('0x28'));if(!_[_0x2213('0x29')](_0x49bb0f)){logger['error'](_[_0x2213('0x2a')](_0x49bb0f)?JSON[_0x2213('0x11')](_0x49bb0f):_0x49bb0f);}}_0x51e616['on'](_0x2213('0x2b'),_0x56d163);_0x51e616['on'](_0x2213('0x2c'),_0x303784);_0x51e616['on'](_0x2213('0x14'),_0x22687f);_0x51e616['on'](_0x2213('0x16'),_0x1388e5);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c9c=['./asr'];(function(_0x3305de,_0x16582f){var _0x3b5a84=function(_0x57d7e1){while(--_0x57d7e1){_0x3305de['push'](_0x3305de['shift']());}};_0x3b5a84(++_0x16582f);}(_0x2c9c,0x189));var _0xc2c9=function(_0xb1473e,_0x3ed6d7){_0xb1473e=_0xb1473e-0x0;var _0x9760f4=_0x2c9c[_0xb1473e];return _0x9760f4;};var asr=require(_0xc2c9('0x0'));module['exports']={'asr':asr};
\ No newline at end of file
+var _0x9643=['exports','./asr'];(function(_0x28044b,_0x7cd962){var _0x183289=function(_0x49d5){while(--_0x49d5){_0x28044b['push'](_0x28044b['shift']());}};_0x183289(++_0x7cd962);}(_0x9643,0xc1));var _0x3964=function(_0x3c8560,_0x5d220b){_0x3c8560=_0x3c8560-0x0;var _0x3ffd96=_0x9643[_0x3c8560];return _0x3ffd96;};var asr=require(_0x3964('0x0'));module[_0x3964('0x1')]={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc321=['getConnections','emit','error','E_AGI_SERVER_ERROR','E_AGI_SERVER_VOICE_DISABLED','destroy','E_AGI_SERVER_MAXCONNECTION','ready','code','close','E_AGI_SERVER_CLOSE','inherits','exports','util','events','EventEmitter','./error','./channel','127.0.0.1','E_AGI_ARGUMENT_PORT','createServer','listen','listening','connection'];(function(_0x1dceb2,_0xe2441d){var _0x2739fa=function(_0x121c0a){while(--_0x121c0a){_0x1dceb2['push'](_0x1dceb2['shift']());}};_0x2739fa(++_0xe2441d);}(_0xc321,0xe5));var _0x1c32=function(_0x13dfd7,_0x3223d2){_0x13dfd7=_0x13dfd7-0x0;var _0x38868c=_0xc321[_0x13dfd7];return _0x38868c;};'use strict';var util=require(_0x1c32('0x0'));var net=require('net');var EventEmitter=require(_0x1c32('0x1'))[_0x1c32('0x2')];var AGIError=require(_0x1c32('0x3'));var AGIChannel=require(_0x1c32('0x4'));var AGIServer=function(_0x4de339,_0x426ae9,_0x5c8910){var _0x3f1dad=this,_0x4de339=_0x4de339||0x11dd,_0x426ae9=_0x426ae9||_0x1c32('0x5'),_0x47cda9=null,_0x52cfe3=0x0;EventEmitter['call'](_0x3f1dad);function _0x2fd8eb(){if(!_0x4de339){_0x3f1dad['emit']('error',new AGIError(_0x1c32('0x6')));return![];}_0x47cda9=net[_0x1c32('0x7')]();_0x47cda9[_0x1c32('0x8')](_0x4de339,_0x426ae9);_0x47cda9['on'](_0x1c32('0x9'),function(){_0x3f1dad['emit'](_0x1c32('0x9'));});_0x47cda9['on'](_0x1c32('0xa'),function(_0x4927b7){_0x47cda9[_0x1c32('0xb')](function(_0x584e4a,_0x528c29){if(_0x584e4a){_0x3f1dad[_0x1c32('0xc')](_0x1c32('0xd'),new AGIError(_0x1c32('0xe'),_0x584e4a));}else if(_0x5c8910&&_0x5c8910<0x0){_0x3f1dad[_0x1c32('0xc')](_0x1c32('0xd'),new AGIError(_0x1c32('0xf')));_0x4927b7[_0x1c32('0x10')]();}else if(_0x5c8910&&_0x5c8910>0x0&&_0x5c8910<_0x528c29){_0x52cfe3+=0x1;_0x3f1dad[_0x1c32('0xc')]('error',new AGIError(_0x1c32('0x11'),_0x52cfe3));_0x4927b7[_0x1c32('0x10')]();}else{var _0x597e6e=new AGIChannel(_0x4927b7);_0x597e6e['on'](_0x1c32('0x12'),function(){_0x3f1dad['emit'](_0x1c32('0xa'),_0x597e6e);});}});});_0x47cda9['on'](_0x1c32('0xd'),function(_0xd083){_0x3f1dad[_0x1c32('0xc')]('error',new AGIError('E_AGI_SERVER_ERROR',_0xd083[_0x1c32('0x13')]));});_0x47cda9['on'](_0x1c32('0x14'),function(){_0x3f1dad['emit'](_0x1c32('0x14'),new AGIError(_0x1c32('0x15')));});}process['nextTick'](function(){_0x2fd8eb();});};util[_0x1c32('0x16')](AGIServer,EventEmitter);module[_0x1c32('0x17')]=function(_0x12317c,_0x1f9628,_0x543701){return new AGIServer(_0x12317c,_0x1f9628,_0x543701);};
\ No newline at end of file
+var _0xbf4c=['code','close','E_AGI_SERVER_CLOSE','nextTick','inherits','exports','util','net','events','EventEmitter','./error','./channel','127.0.0.1','emit','error','E_AGI_ARGUMENT_PORT','listen','listening','connection','getConnections','E_AGI_SERVER_ERROR','E_AGI_SERVER_VOICE_DISABLED','E_AGI_SERVER_MAXCONNECTION','destroy','ready'];(function(_0x4bc5ed,_0x409944){var _0x23371b=function(_0xf4fcf2){while(--_0xf4fcf2){_0x4bc5ed['push'](_0x4bc5ed['shift']());}};_0x23371b(++_0x409944);}(_0xbf4c,0x1e1));var _0xcbf4=function(_0x1c3851,_0x3d5cd4){_0x1c3851=_0x1c3851-0x0;var _0x5865b8=_0xbf4c[_0x1c3851];return _0x5865b8;};'use strict';var util=require(_0xcbf4('0x0'));var net=require(_0xcbf4('0x1'));var EventEmitter=require(_0xcbf4('0x2'))[_0xcbf4('0x3')];var AGIError=require(_0xcbf4('0x4'));var AGIChannel=require(_0xcbf4('0x5'));var AGIServer=function(_0x3e7014,_0x1b8a32,_0x3c2bad){var _0x35b20e=this,_0x3e7014=_0x3e7014||0x11dd,_0x1b8a32=_0x1b8a32||_0xcbf4('0x6'),_0x2461c6=null,_0x4c6470=0x0;EventEmitter['call'](_0x35b20e);function _0x19a7f3(){if(!_0x3e7014){_0x35b20e[_0xcbf4('0x7')](_0xcbf4('0x8'),new AGIError(_0xcbf4('0x9')));return![];}_0x2461c6=net['createServer']();_0x2461c6[_0xcbf4('0xa')](_0x3e7014,_0x1b8a32);_0x2461c6['on'](_0xcbf4('0xb'),function(){_0x35b20e[_0xcbf4('0x7')](_0xcbf4('0xb'));});_0x2461c6['on'](_0xcbf4('0xc'),function(_0x2a3d55){_0x2461c6[_0xcbf4('0xd')](function(_0x31de86,_0x5ce17e){if(_0x31de86){_0x35b20e['emit'](_0xcbf4('0x8'),new AGIError(_0xcbf4('0xe'),_0x31de86));}else if(_0x3c2bad&&_0x3c2bad<0x0){_0x35b20e[_0xcbf4('0x7')](_0xcbf4('0x8'),new AGIError(_0xcbf4('0xf')));_0x2a3d55['destroy']();}else if(_0x3c2bad&&_0x3c2bad>0x0&&_0x3c2bad<_0x5ce17e){_0x4c6470+=0x1;_0x35b20e[_0xcbf4('0x7')](_0xcbf4('0x8'),new AGIError(_0xcbf4('0x10'),_0x4c6470));_0x2a3d55[_0xcbf4('0x11')]();}else{var _0x897fc5=new AGIChannel(_0x2a3d55);_0x897fc5['on'](_0xcbf4('0x12'),function(){_0x35b20e[_0xcbf4('0x7')](_0xcbf4('0xc'),_0x897fc5);});}});});_0x2461c6['on'](_0xcbf4('0x8'),function(_0x28ea49){_0x35b20e[_0xcbf4('0x7')](_0xcbf4('0x8'),new AGIError('E_AGI_SERVER_ERROR',_0x28ea49[_0xcbf4('0x13')]));});_0x2461c6['on']('close',function(){_0x35b20e[_0xcbf4('0x7')](_0xcbf4('0x14'),new AGIError(_0xcbf4('0x15')));});}process[_0xcbf4('0x16')](function(){_0x19a7f3();});};util[_0xcbf4('0x17')](AGIServer,EventEmitter);module[_0xcbf4('0x18')]=function(_0x592d20,_0xdb0985,_0x57a8d9){return new AGIServer(_0x592d20,_0xdb0985,_0x57a8d9);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc87=['rpc','mailRpc','prototype','getVariable','getVariableById','then','name','catch','getVoiceQueue','getVoiceQueueById','getSquareProject','getSquareProjectById','getSquareOdbc','getSquareOdbcById','dsn','getUser','getUserById','getTrunk','getTrunkById','getSound','getSoundById','getSoundPath','getMailAccount','getMailAccountById','sendMailMessage','getIntervals','getIntervalById','IntervalId','interval','map','Intervals','format','%s/sounds/converted/%s','open','error','Error\x20getting\x20ODBC\x20connection\x20%s','info','ODBC\x20connection\x20successfully','query','Error\x20executing\x20query\x20%s','Query\x20executed\x20correctly\x20%s','Error\x20closing\x20connection\x20to\x20odbc\x20%s','getSmsAccount','getSmsAccountById','createSmsMessage','createSquareDetailsReport','uniqueid','label','agicommand','channel','arg_1','callerid','createSquareRecording','calleridname','context','extension','accountcode','file','createSquareMessage','createCmContact','isEmpty','callback_','random','lastName','isNil','phone','list_id','scheduledAt','callback','callback_priority','getPause','getPauseById','agentPause','agent','agentUnpause','agentLogout','agentLogin','internal','LOCAL','shellCommand','trim','replace','googleCloudTTS','google_cloud_tts_text_type','text','languageCode','en-US','ssmlGender','MALE','audioEncoding','googleTTS','google_tts_language','url','method','timeout','number','includes','POST','PUT','toUpperCase','parse','An\x20incorrect\x20formatted\x20json\x20body\x20has\x20been\x20passed\x20to\x20the\x20function','headers','rawHeaders','An\x20incorrect\x20formatted\x20json\x20headers\x20has\x20been\x20passed\x20to\x20the\x20function','computedVariables','uri','render','stringify','body','statusCode','statusMessage','500\x20-\x20Internal\x20Server\x20Error','options','googleDialogflow','key','dialogflow_language','dialogflowV2_project_id','client_email','private_key','dialogflowV2_language','sestekNDA','ispeechTTS','ispeech_tts_language','ispeechASR','ispeech_asr_language','isConfigured','model','awsPolly','aws_secret_access_key','aws_polly_region','aws_polly_voice','Amy','aws_text_type','awsLex','aws_lex_region','aws_bot_name','googleASR','google_asr_language','tildeASR','appid','clear','clone','isString','replaceObjectAllVariables','recursiveNodeIndex','hasOwnProperty','isPlainObject','replaceAllVariables','saveRestApiResult','%s.%s','length','setVariable','split','extra','getAndSetVariable','result','The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s','maxRetry','sync','retry','Enter\x20in\x20MRCPSynth\x20(%s)\x20block','no\x20text\x20configured','MRCPSynth','noop','Executed\x20command\x20MRCPSynth\x20%s','grammar','no\x20grammar\x20configured','MRCPRecog','MRCP_RECOG_CONFIDENCE','RECOG_INPUT()','RECOG_INSTANCE()','MRCP_RECOG_INSTANCE','Executed\x20command\x20MRCPRecog\x20%s','Enter\x20in\x20AGI\x20(%s)\x20block','command','args','answer','Enter\x20in\x20ANSWER\x20(%s)\x20block','Wait\x20%s\x20seconds\x20before\x20answer','no\x20list\x20selected','minutes','custom_app','Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block','application','lumenvoxtts','Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block','exec','sestektts','Enter\x20in\x20SESTEKTTS\x20(%s)\x20block','lumenvoxasr','RECOG_CONFIDENCE()','LUMENVOX_ASR_TRANSCRIPT','LUMENVOX_ASR_INSTANCE','sestekasr','Enter\x20in\x20SESTEKASR\x20(%s)\x20block','SESTEK_ASR_CONFIDENCE','SESTEK_ASR_TRANSCRIPT','SESTEK_ASR_INSTANCE','database','Enter\x20in\x20DATABASE\x20(%s)\x20block','no\x20database\x20selected','odbc_id','no\x20odbc\x20database\x20found','no\x20query\x20configured','query:\x20%s','no\x20variable\x20selected\x20for\x20the\x20result','variable_id','forEach','keys','%s[%s][%s]','%s_ROWS_COUNT','variable\x20%s\x20set','dial','debug','Enter\x20in\x20DIAL\x20(%s)\x20block','sip_id','no\x20user\x20selected','no\x20user\x20found','SIP/%s','opts','Executed\x20command\x20%s','DIAL','dialogflow','Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block','no\x20key\x20configured','bot','DIALOGFLOW_%s','Dialogflow\x20Result\x20%s','speech','Dialogflow\x20is\x20unreachable','dialogflowV2','no\x20private_key\x20configured','no\x20anguage\x20configured','Trying\x20DialogflowV2:\x20%s','googleDialogflowV2','providerResponse','out','DialogflowV2\x20Result\x20%s','DialogflowV2\x20is\x20unreachable','sesteknda','ndauth_url','username','no\x20username\x20configured','password','ndassistant_url','Trying\x20SestekNDA:\x20%s','SESTEK_NDA_%s','Sestek\x20NDA\x20%s\x20file\x20created','audiofile','streamFile','.wav','SestekNDA\x20Result\x20%s','end','Enter\x20in\x20END\x20(%s)\x20block','ext_dial','Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block','trunk_id','no\x20trunk\x20found','trunk_name','no\x20trunk\x20selected','finally','Enter\x20in\x20FINALLY\x20(%s)\x20block','getdigits','Enter\x20in\x20GETDIGITS\x20(%s)\x20block','file_id','no\x20file\x20audio\x20selected','no\x20file\x20audio\x20found','getData','maxdigit','toString','test','mindigit','no\x20variable\x20found','hiddendigitsnum','generate','hiddendigitspos','first','substr','Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block','goal','goalname','awspolly','[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block','aws_access_key_id','Trying\x20aws\x20Polly\x20%s','aws\x20Polly\x20%s\x20file\x20created','unlink','awslex','Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block','no\x20bot\x20name\x20configured','Trying\x20Amazon\x20Lex:\x20%s','AWS_LEX_%s','Amazon\x20Lex\x20ready\x20for\x20fulfillment','message','amazonlex','Amazon\x20Lex\x20Result\x20%s','Amazon\x20Lex\x20is\x20unreachable','googleasr','Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s','wav','%s/recordings/%s','beep','recordFile','intKey','google\x20%s\x20file\x20created','GOOGLE_ASR_%s','tildeasr','Enter\x20in\x20TILDEASR\x20(%s)\x20block','no\x20appid\x20configured','no\x20appsecret\x20configured','NOBEEP','tilde\x20%s\x20file\x20created','TILDE_ASR_%s','TildeASR\x20Result\x20%s','gotoc','Enter\x20in\x20GOTO\x20(%s)\x20block','continueAt','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','no\x20condition\x20configured','true','false','gotoiftime','Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block','no\x20interval\x20configured','no\x20intervals\x20found','IFTIME(%s?true:false)','IFTIME\x20%s\x20%s','hangup','ispeechasr','Enter\x20in\x20ISPEECHASR\x20(%s)\x20block','ispeech\x20%s\x20file\x20created','IspeechASR\x20Result\x20%s','ispeechtts','Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block','Trying\x20ispeech\x20TTS\x20%s','ispeech\x20TTS\x20is\x20unreachable','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','logout','math','Enter\x20in\x20MATH\x20(%s)\x20block','operation','no\x20operation\x20configured','math\x20%s','%s[%s]','variable\x20%s[key]\x20set','Enter\x20in\x20MENU\x20(%s)\x20block','response','digit','Enter\x20in\x20NOOP\x20(%s)\x20block','output','pause','Enter\x20in\x20PAUSE\x20(%s)\x20block','failure','playback','Enter\x20in\x20PLAYBACK\x20(%s)\x20block','PLAYBACK','queue','Enter\x20in\x20QUEUE\x20(%s)\x20block','queue_id','no\x20queue\x20found','indexOf','toLowerCase','QUEUE','position','Executed\x20command\x20%s\x20%s','Enter\x20in\x20RECORD\x20(%s)\x20block','recordingFormat','%s_%s','%s/recordings/%s.%s','RECORDING_SAVENAME','Recording\x20%s\x20%s\x20%s\x20%s','escape_digits','restAPI','Response:','inspect','no\x20variable\x20selected\x20for\x20the\x20response','%s_STATUS_CODE','200','Unable\x20to\x20set\x20result\x20in\x20variable\x20%s','saydigits','sayDigits','digits','saynumber','Enter\x20in\x20SAYNUMBER\x20(%s)\x20block','sayNumber','sayphonetic','Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block','sayPhonetic','sendMail','Enter\x20in\x20SENDMAIL\x20(%s)\x20block','account_id','no\x20mail\x20account\x20configured','Smtp','no\x20mail\x20account\x20found','email','user','subject','service','host','port','secure','authentication','auth','pass','template_id','Trying\x20SendMail\x20with\x20account\x20%s','Mail\x20message\x20added\x20to\x20outgoing\x20process','sendFax','Enter\x20in\x20SENDFAX\x20(%s)\x20block','SENDFAX\x20block\x20not\x20implemented','sendSMS','Enter\x20in\x20SENDSMS\x20(%s)\x20block','sms_account_id','no\x20sms\x20account\x20configured','no\x20sms\x20account\x20found','sms_text','Trying\x20SendSMS\x20with\x20account\x20%s','Sms\x20message\x20added\x20to\x20outgoing\x20process','set','Enter\x20in\x20SET\x20(%s)\x20block','no\x20variable\x20selected','Enter\x20in\x20START\x20(%s)\x20block','START\x20CALLY\x20SQUARE','yes','Answer','Skipped\x20Answer','subproject','Enter\x20in\x20SUBPROJECT\x20(%s)\x20block','project_id','no\x20subproject\x20found\x20with\x20id\x20%d','project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project','AGI','Enter\x20in\x20SYSTEM\x20(%s)\x20block','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','Google\x20TTS\x20is\x20unreachable','unpause','Enter\x20in\x20UNPAUSE\x20(%s)\x20block','voicemail','Enter\x20in\x20VOICEMAIL\x20(%s)\x20block','VOICEMAIL','mailbox','vswitch','Enter\x20in\x20SWITCH\x20(%s)\x20block','replaceAll','join','path','util','shelljs','odbc','randomstring','moment','request-promise','../../config/logger','agi','../../config/environment','./scripts','rawBody','menu','getsecretdigits'];(function(_0x576895,_0x28a632){var _0x3a2c9e=function(_0xb07396){while(--_0xb07396){_0x576895['push'](_0x576895['shift']());}};_0x3a2c9e(++_0x28a632);}(_0xbc87,0x1cd));var _0x7bc8=function(_0x2f120f,_0x144f4a){_0x2f120f=_0x2f120f-0x0;var _0x21391e=_0xbc87[_0x2f120f];return _0x21391e;};'use strict';var fs=require('fs');var path=require(_0x7bc8('0x0'));var util=require(_0x7bc8('0x1'));var _=require('lodash');var sh=require(_0x7bc8('0x2'));var odbc=require(_0x7bc8('0x3'))();var rs=require(_0x7bc8('0x4'));var moment=require(_0x7bc8('0x5'));var Mustache=require('mustache');var rp=require(_0x7bc8('0x6'));var logger=require(_0x7bc8('0x7'))(_0x7bc8('0x8'));var config=require(_0x7bc8('0x9'));var scripts=require(_0x7bc8('0xa'));var FILES_PATH='/var/opt/motion2/server/files';var recursiveMapAttributes=['rawHeaders',_0x7bc8('0xb')];var verticesWithRetry=[_0x7bc8('0xc'),'getdigits',_0x7bc8('0xd')];var AGIVertices=function(_0x51554e,_0x36cdd7,_0x32e2b0){this['channel']=_0x51554e;this[_0x7bc8('0xe')]=_0x36cdd7;this[_0x7bc8('0xf')]=_0x32e2b0;};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x11')]=function(_0x3c1ee7,_0x57b44b){this[_0x7bc8('0xe')][_0x7bc8('0x12')](_0x3c1ee7)[_0x7bc8('0x13')](function(_0x44a743){_0x57b44b(null,_0x44a743?_0x44a743[_0x7bc8('0x14')]:![]);})[_0x7bc8('0x15')](function(_0x1a1d46){_0x57b44b(_0x1a1d46);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x16')]=function(_0x30d314,_0x7a74b4){this['rpc'][_0x7bc8('0x17')](_0x30d314)[_0x7bc8('0x13')](function(_0x22696c){_0x7a74b4(null,_0x22696c?_0x22696c[_0x7bc8('0x14')]:![]);})['catch'](function(_0x3db956){_0x7a74b4(_0x3db956);});};AGIVertices['prototype'][_0x7bc8('0x18')]=function(_0x56a3f3,_0x400e47){this[_0x7bc8('0xe')][_0x7bc8('0x19')](_0x56a3f3)['then'](function(_0xcfb543){_0x400e47(null,_0xcfb543?_0xcfb543[_0x7bc8('0x14')]:![]);})[_0x7bc8('0x15')](function(_0x1e398f){_0x400e47(_0x1e398f);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x1a')]=function(_0x7c2bdb,_0x4553dc){this['rpc'][_0x7bc8('0x1b')](_0x7c2bdb)['then'](function(_0x3a3e51){_0x4553dc(null,_0x3a3e51?_0x3a3e51[_0x7bc8('0x1c')]:![]);})[_0x7bc8('0x15')](function(_0x42a251){_0x4553dc(_0x42a251);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x1d')]=function(_0x5b26fe,_0x83c345){this[_0x7bc8('0xe')][_0x7bc8('0x1e')](_0x5b26fe)[_0x7bc8('0x13')](function(_0x2fd38b){_0x83c345(null,_0x2fd38b?_0x2fd38b[_0x7bc8('0x14')]:![]);})[_0x7bc8('0x15')](function(_0x305e52){_0x83c345(_0x305e52);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x1f')]=function(_0x1a2835,_0x5e55fd){this[_0x7bc8('0xe')][_0x7bc8('0x20')](_0x1a2835)[_0x7bc8('0x13')](function(_0x369550){_0x5e55fd(null,_0x369550?_0x369550['name']:![]);})['catch'](function(_0x4c8a74){_0x5e55fd(_0x4c8a74);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x21')]=function(_0x157b66,_0x2f519c){var _0x4954b5=this;this[_0x7bc8('0xe')][_0x7bc8('0x22')](_0x157b66)[_0x7bc8('0x13')](function(_0x4efeec){_0x2f519c(null,_0x4efeec?_0x4954b5[_0x7bc8('0x23')](_0x4efeec['save_name']):![]);})[_0x7bc8('0x15')](function(_0x1ff4a3){_0x2f519c(_0x1ff4a3);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x24')]=function(_0xe8418c,_0x235ab8){this[_0x7bc8('0xe')][_0x7bc8('0x25')](_0xe8418c)[_0x7bc8('0x13')](function(_0x44afe0){_0x235ab8(null,_0x44afe0?_0x44afe0:![]);})[_0x7bc8('0x15')](function(_0x3987a7){_0x235ab8(_0x3987a7);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x26')]=function(_0x56496d,_0x27cd9f,_0xca3acd){this[_0x7bc8('0xf')]['sendMailMessage'](_0x56496d,_0x27cd9f)[_0x7bc8('0x13')](function(){_0xca3acd(null);})['catch'](function(_0x332d91){_0xca3acd(_0x332d91);});};AGIVertices['prototype'][_0x7bc8('0x27')]=function(_0x189440,_0x362c76){this[_0x7bc8('0xe')][_0x7bc8('0x28')](_0x189440)['then'](function(_0x981f0d){if(_0x981f0d){if(_0x981f0d[_0x7bc8('0x29')]){_0x362c76(null,[_0x981f0d[_0x7bc8('0x2a')]]);}else{_0x362c76(null,_[_0x7bc8('0x2b')](_0x981f0d[_0x7bc8('0x2c')],_0x7bc8('0x2a')));}}else{_0x362c76(null,![]);}})[_0x7bc8('0x15')](function(_0x3c8196){_0x362c76(_0x3c8196);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x23')]=function(_0x12141b){return util[_0x7bc8('0x2d')](_0x7bc8('0x2e'),FILES_PATH,_0x12141b);};AGIVertices[_0x7bc8('0x10')]['getQueryOdbc']=function(_0xe25c8,_0xcd3d46,_0x66cdbe){odbc[_0x7bc8('0x2f')](_0xe25c8,function(_0x2f56d7){if(_0x2f56d7){logger[_0x7bc8('0x30')](_0x7bc8('0x31'),_0x2f56d7);_0x66cdbe(_0x2f56d7);}else{logger[_0x7bc8('0x32')](_0x7bc8('0x33'));odbc[_0x7bc8('0x34')](_0xcd3d46,function(_0x115a25,_0x22aea0){if(_0x115a25){logger[_0x7bc8('0x32')](_0x7bc8('0x35'),_0xcd3d46);_0x66cdbe(_0x115a25);}else{logger[_0x7bc8('0x32')](_0x7bc8('0x36'),_0xcd3d46);odbc['close'](function(_0x499edd){if(_0x499edd){logger[_0x7bc8('0x30')](_0x7bc8('0x37'),_0x499edd);}_0x66cdbe(null,_0x22aea0);});}});}});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x38')]=function(_0x72343a,_0x5185c5){this[_0x7bc8('0xe')][_0x7bc8('0x39')](_0x72343a)[_0x7bc8('0x13')](function(_0x1fb5b5){_0x5185c5(null,_0x1fb5b5?_0x1fb5b5:![]);})[_0x7bc8('0x15')](function(_0x21172d){_0x5185c5(_0x21172d);});};AGIVertices[_0x7bc8('0x10')]['createSmsMessage']=function(_0x5a3c09,_0x1b03ef){this[_0x7bc8('0xe')][_0x7bc8('0x3a')](_0x5a3c09)['then'](function(_0xd71088){_0x1b03ef(null,_0xd71088);})[_0x7bc8('0x15')](function(_0x59b954){_0x1b03ef(_0x59b954);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x3b')]=function(_0x22f361,_0x44c01a,_0x2e5aeb){this[_0x7bc8('0xe')][_0x7bc8('0x3b')]({'uniqueid':this['channel'][_0x7bc8('0x3c')],'node':_0x22f361[_0x7bc8('0x3d')],'application':_0x22f361[_0x7bc8('0x3e')],'data':_0x44c01a||null,'project_name':this[_0x7bc8('0x3f')][_0x7bc8('0x40')],'callerid':this[_0x7bc8('0x3f')][_0x7bc8('0x41')]})[_0x7bc8('0x13')](function(_0x320911){if(_0x2e5aeb){_0x2e5aeb(null,_0x320911);}})[_0x7bc8('0x15')](function(_0x37d852){if(_0x2e5aeb){_0x2e5aeb(_0x37d852);}});};AGIVertices[_0x7bc8('0x10')]['createSquareRecording']=function(_0x2b8bd5,_0x30489c,_0x5c3903,_0x57834a){this[_0x7bc8('0xe')][_0x7bc8('0x42')]({'uniqueid':this[_0x7bc8('0x3f')][_0x7bc8('0x3c')],'callerid':this[_0x7bc8('0x3f')][_0x7bc8('0x41')],'calleridname':this[_0x7bc8('0x3f')][_0x7bc8('0x43')],'context':this[_0x7bc8('0x3f')][_0x7bc8('0x44')],'extension':this['channel'][_0x7bc8('0x45')],'priority':this[_0x7bc8('0x3f')]['priority'],'accountcode':this[_0x7bc8('0x3f')][_0x7bc8('0x46')],'dnid':this[_0x7bc8('0x3f')]['dnid'],'projectName':this[_0x7bc8('0x3f')][_0x7bc8('0x40')],'saveName':_0x30489c,'filename':_0x2b8bd5[_0x7bc8('0x47')]||_0x30489c,'savePath':_0x5c3903})[_0x7bc8('0x13')](function(_0x1d9a06){_0x57834a(null,_0x1d9a06);})['catch'](function(_0xdcd2f2){_0x57834a(_0xdcd2f2);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x48')]=function(_0x4d0d49,_0x52d093,_0x8fbe67,_0x314af0,_0x356789){this[_0x7bc8('0xe')][_0x7bc8('0x48')]({'uniqueid':this['channel'][_0x7bc8('0x3c')],'body':_0x4d0d49,'direction':_0x52d093,'providerName':_0x8fbe67,'providerResponse':_0x314af0})[_0x7bc8('0x13')](function(_0x614188){if(_0x356789){_0x356789(null,_0x614188);}})[_0x7bc8('0x15')](function(_0x22a37f){if(_0x356789){_0x356789(_0x22a37f);}});};AGIVertices[_0x7bc8('0x10')]['createCmContact']=function(_0x4d0dd6,_0x4aae42){this[_0x7bc8('0xe')][_0x7bc8('0x49')]({'firstName':_[_0x7bc8('0x4a')](_0x4d0dd6[_0x7bc8('0x14')])||_['isNil'](_0x4d0dd6[_0x7bc8('0x14')])?_0x7bc8('0x4b')+Math[_0x7bc8('0x4c')]():_0x4d0dd6[_0x7bc8('0x14')],'lastName':_[_0x7bc8('0x4a')](_0x4d0dd6[_0x7bc8('0x4d')])||_[_0x7bc8('0x4e')](_0x4d0dd6[_0x7bc8('0x4d')])?null:_0x4d0dd6[_0x7bc8('0x4d')],'phone':_0x4d0dd6[_0x7bc8('0x4f')],'ListId':_0x4d0dd6[_0x7bc8('0x50')],'scheduledat':_0x4d0dd6[_0x7bc8('0x51')],'callbackUniqueid':this['channel'][_0x7bc8('0x3c')],'tags':_0x7bc8('0x52'),'description':'Callback\x20scheduled\x20at\x20'+_0x4d0dd6['scheduledAt']['toString'](),'priority':_0x4d0dd6[_0x7bc8('0x53')]})[_0x7bc8('0x13')](function(_0x40d466){_0x4aae42(null,_0x40d466);})[_0x7bc8('0x15')](function(_0x197388){_0x4aae42(_0x197388);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x54')]=function(_0x3a63a3,_0x1bbff3){this[_0x7bc8('0xe')][_0x7bc8('0x55')](_0x3a63a3)['then'](function(_0x41fd1d){_0x1bbff3(null,_0x41fd1d?_0x41fd1d[_0x7bc8('0x14')]:![]);})['catch'](function(_0x171889){_0x1bbff3(_0x171889);});};AGIVertices['prototype'][_0x7bc8('0x56')]=function(_0x42ae87,_0x27cde0,_0x54511c){var _0x3ddb75={'role':_0x7bc8('0x57')};_0x3ddb75[_0x42ae87]=this[_0x7bc8('0x3f')][_0x7bc8('0x41')];this[_0x7bc8('0xe')]['agentPause'](_0x3ddb75,_0x27cde0,this[_0x7bc8('0x3f')][_0x7bc8('0x3c')])['then'](function(_0x1fb856){_0x54511c(null,_[_0x7bc8('0x4e')](_0x1fb856)?![]:!![]);})[_0x7bc8('0x15')](function(_0x516b4b){logger['error'](_0x516b4b);_0x54511c(null,![]);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x58')]=function(_0x239420,_0x18c1ff){var _0x5f51ef={'role':_0x7bc8('0x57')};_0x5f51ef[_0x239420]=this[_0x7bc8('0x3f')][_0x7bc8('0x41')];this[_0x7bc8('0xe')][_0x7bc8('0x58')](_0x5f51ef)['then'](function(_0x127ecb){_0x18c1ff(null,_[_0x7bc8('0x4e')](_0x127ecb)?![]:!![]);})[_0x7bc8('0x15')](function(_0x5156b2){logger[_0x7bc8('0x30')](_0x5156b2);_0x18c1ff(null,![]);});};AGIVertices[_0x7bc8('0x10')]['agentLogout']=function(_0x1ea27a,_0x231fd8){var _0x51aefc={'role':'agent'};_0x51aefc[_0x1ea27a]=this[_0x7bc8('0x3f')]['callerid'];this['rpc'][_0x7bc8('0x59')](_0x51aefc)[_0x7bc8('0x13')](function(_0x76914a){_0x231fd8(null,_[_0x7bc8('0x4e')](_0x76914a)?![]:!![]);})['catch'](function(_0x43f7a5){logger[_0x7bc8('0x30')](_0x43f7a5);_0x231fd8(null,![]);});};AGIVertices['prototype'][_0x7bc8('0x5a')]=function(_0x128b3c,_0x532943){var _0x49514a={'role':_0x7bc8('0x57')};_0x49514a[_0x128b3c]=this[_0x7bc8('0x3f')]['callerid'];var _0x3a342b=_0x128b3c!=_0x7bc8('0x5b')?util['format']('%s/%s@from-sip/n',_0x7bc8('0x5c'),this[_0x7bc8('0x3f')][_0x7bc8('0x41')]):undefined;this[_0x7bc8('0xe')][_0x7bc8('0x5a')](_0x49514a,_0x3a342b)[_0x7bc8('0x13')](function(_0x51a991){_0x532943(null,_[_0x7bc8('0x4e')](_0x51a991)?![]:!![]);})[_0x7bc8('0x15')](function(_0x583ac8){logger['error'](_0x583ac8);_0x532943(null,![]);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x5d')]=function(_0x1f898c,_0x20bf3d){sh['exec'](_[_0x7bc8('0x5e')](_0x1f898c),function(_0x2dfffd,_0x30ac02){var _0x51b816=_0x30ac02[_0x7bc8('0x5f')](/(\r\n|\n|\r)/gm,'');_0x20bf3d(null,_0x51b816);});};AGIVertices[_0x7bc8('0x10')]['googleCloudTTS']=function(_0x5a3ad0,_0x5809b7){scripts[_0x7bc8('0x60')](_0x5a3ad0['apiKey'],_0x5a3ad0[_0x7bc8('0x61')]||'text',_0x5a3ad0[_0x7bc8('0x62')],_0x5a3ad0[_0x7bc8('0x63')]||_0x7bc8('0x64'),_0x5a3ad0[_0x7bc8('0x65')]||_0x7bc8('0x66'),_0x5a3ad0[_0x7bc8('0x67')]||'MP3')[_0x7bc8('0x13')](function(_0x69bc78){_0x5809b7(null,_0x69bc78);})[_0x7bc8('0x15')](function(_0x4acb56){_0x5809b7(_0x4acb56);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x68')]=function(_0x10daf5,_0x37235a){scripts[_0x7bc8('0x68')](_0x10daf5[_0x7bc8('0x62')],_0x10daf5[_0x7bc8('0x69')]||'en',0x1)[_0x7bc8('0x13')](function(_0x1b9f0c){_0x37235a(null,_0x1b9f0c);})['catch'](function(_0x55a36e){_0x37235a(_0x55a36e);});};AGIVertices[_0x7bc8('0x10')]['restAPI']=function(_0x3f0b46,_0x1c290f){var _0xdeaae1={'uri':_0x3f0b46[_0x7bc8('0x6a')],'method':_0x3f0b46[_0x7bc8('0x6b')],'json':!![],'resolveWithFullResponse':!![],'strictSSL':![],'timeout':typeof parseInt(_0x3f0b46[_0x7bc8('0x6c')])===_0x7bc8('0x6d')&&parseInt(_0x3f0b46['timeout'])>=0x1?parseInt(_0x3f0b46[_0x7bc8('0x6c')])*0x3e8:0x5*0x3e8};if(_[_0x7bc8('0x6e')]([_0x7bc8('0x6f'),_0x7bc8('0x70')],_0xdeaae1[_0x7bc8('0x6b')][_0x7bc8('0x71')]())){try{_0xdeaae1['body']=_0x3f0b46[_0x7bc8('0xb')]?JSON[_0x7bc8('0x72')](_0x3f0b46[_0x7bc8('0xb')]):{};}catch(_0x486021){logger[_0x7bc8('0x30')](_0x7bc8('0x73'),_0x486021);}}try{_0xdeaae1[_0x7bc8('0x74')]=_0x3f0b46[_0x7bc8('0x75')]?JSON[_0x7bc8('0x72')](_0x3f0b46[_0x7bc8('0x75')]):{};}catch(_0x5049bc){logger[_0x7bc8('0x30')](_0x7bc8('0x76'),_0x5049bc);}if(_0x3f0b46[_0x7bc8('0x77')]){try{var _0x455011=require(_0x3f0b46[_0x7bc8('0x77')])['sync'](this,_0xdeaae1);_0xdeaae1[_0x7bc8('0x78')]=Mustache[_0x7bc8('0x79')](_0x3f0b46[_0x7bc8('0x6a')],_0x455011,{},['$$','$$']);if(_0xdeaae1[_0x7bc8('0x74')]){_0xdeaae1[_0x7bc8('0x74')]=JSON[_0x7bc8('0x72')](Mustache[_0x7bc8('0x79')](JSON[_0x7bc8('0x7a')](_0xdeaae1['headers']),_0x455011,{},['$$','$$']));}if(_0xdeaae1['body']){_0xdeaae1[_0x7bc8('0x7b')]=JSON[_0x7bc8('0x72')](Mustache[_0x7bc8('0x79')](JSON[_0x7bc8('0x7a')](_0xdeaae1['body']),_0x455011,{},['$$','$$']));}}catch(_0x38dda8){logger[_0x7bc8('0x30')]('An\x20incorrect\x20formatted\x20json\x20has\x20been\x20passed\x20to\x20the\x20function',_0x38dda8);}}rp(_0xdeaae1)[_0x7bc8('0x13')](function(_0x250a6e){var _0x26fa9d={'statusCode':_0x250a6e[_0x7bc8('0x7c')]||0xc8,'statusMessage':_0x250a6e[_0x7bc8('0x7d')]||'OK','headers':_0x250a6e['headers']||{},'body':_0x250a6e[_0x7bc8('0x7b')]||{}};_0x1c290f(null,_0x26fa9d);})[_0x7bc8('0x15')](function(_0x408477){var _0x2b1301={'statusCode':_0x408477[_0x7bc8('0x7c')]||0x1f4,'statusMessage':_0x408477['message']||_0x7bc8('0x7e'),'headers':_0x408477[_0x7bc8('0x7f')][_0x7bc8('0x74')]||{},'body':_0x408477[_0x7bc8('0x7f')][_0x7bc8('0x7b')]||{}};_0x1c290f(null,_0x2b1301);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x80')]=function(_0x4db17f,_0x136e4c){scripts[_0x7bc8('0x80')](this['channel'][_0x7bc8('0x3c')],_0x4db17f[_0x7bc8('0x81')],_0x4db17f[_0x7bc8('0x62')],_0x4db17f[_0x7bc8('0x82')]||'en')[_0x7bc8('0x13')](function(_0x1bed16){_0x136e4c(null,_0x1bed16);})['catch'](function(_0x1033d1){_0x136e4c(_0x1033d1);});};AGIVertices['prototype']['googleDialogflowV2']=function(_0x5c1916,_0x2709e0){scripts['googleDialogflowV2'](this[_0x7bc8('0x3f')]['uniqueid'],_0x5c1916[_0x7bc8('0x83')],_0x5c1916[_0x7bc8('0x84')],_0x5c1916[_0x7bc8('0x85')],_0x5c1916[_0x7bc8('0x62')],_0x5c1916[_0x7bc8('0x86')]||'en')['then'](function(_0x379e77){_0x2709e0(null,_0x379e77);})['catch'](function(_0x1a35ad){_0x2709e0(_0x1a35ad);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x87')]=function(_0x34c694,_0x21701a){scripts[_0x7bc8('0x87')](this[_0x7bc8('0x3f')],_0x34c694)[_0x7bc8('0x13')](function(_0x3c0ad3){_0x21701a(null,_0x3c0ad3);})[_0x7bc8('0x15')](function(_0x32255a){_0x21701a(_0x32255a);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x88')]=function(_0x2997be,_0x42bb37){scripts[_0x7bc8('0x88')](_0x2997be[_0x7bc8('0x81')],_0x2997be[_0x7bc8('0x62')],_0x2997be[_0x7bc8('0x89')]||_0x7bc8('0x64'),_0x2997be['speed'])[_0x7bc8('0x13')](function(_0x39a2cb){_0x42bb37(null,_0x39a2cb);})[_0x7bc8('0x15')](function(_0x1ca85b){_0x42bb37(_0x1ca85b);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x8a')]=function(_0x2098cd,_0x3a055f,_0x5c973b){scripts[_0x7bc8('0x8a')](_0x3a055f,_0x2098cd[_0x7bc8('0x81')],_0x2098cd[_0x7bc8('0x8b')]||'en-US',this[_0x7bc8('0x8c')](_0x2098cd['model'])?_0x2098cd[_0x7bc8('0x8d')]:undefined)[_0x7bc8('0x13')](function(_0x599224){_0x5c973b(null,_0x599224);})[_0x7bc8('0x15')](function(_0x2e6e19){_0x5c973b(_0x2e6e19);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x8e')]=function(_0xc9ecbf,_0x5ba78c){scripts['awsPolly'](_0xc9ecbf['aws_access_key_id'],_0xc9ecbf[_0x7bc8('0x8f')],_0xc9ecbf[_0x7bc8('0x90')],_0xc9ecbf[_0x7bc8('0x91')]||_0x7bc8('0x92'),_0xc9ecbf[_0x7bc8('0x62')],_0xc9ecbf[_0x7bc8('0x93')]||'text')[_0x7bc8('0x13')](function(_0x26a784){_0x5ba78c(null,_0x26a784);})[_0x7bc8('0x15')](function(_0x1bdb7a){_0x5ba78c(_0x1bdb7a);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x94')]=function(_0x37ff6d,_0x3ee403){scripts[_0x7bc8('0x94')](this[_0x7bc8('0x3f')][_0x7bc8('0x3c')],_0x37ff6d['aws_access_key_id'],_0x37ff6d[_0x7bc8('0x8f')],_0x37ff6d[_0x7bc8('0x95')],_0x37ff6d[_0x7bc8('0x62')],_0x37ff6d[_0x7bc8('0x96')])[_0x7bc8('0x13')](function(_0xfeee7a){_0x3ee403(null,_0xfeee7a);})[_0x7bc8('0x15')](function(_0x51a629){_0x3ee403(_0x51a629);});};AGIVertices[_0x7bc8('0x10')]['googleASR']=function(_0x4eeee0,_0x1ef90b,_0x559699){scripts[_0x7bc8('0x97')](_0x1ef90b,_0x4eeee0[_0x7bc8('0x81')],_0x4eeee0[_0x7bc8('0x98')]||_0x7bc8('0x64'))[_0x7bc8('0x13')](function(_0x2d042f){_0x559699(null,_0x2d042f);})[_0x7bc8('0x15')](function(_0x1e60d8){_0x559699(_0x1e60d8);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x99')]=function(_0x190322,_0x3b4775,_0x5623bc){scripts[_0x7bc8('0x99')](_0x3b4775,_0x190322[_0x7bc8('0x9a')],_0x190322['appsecret'],_0x190322[_0x7bc8('0x78')])[_0x7bc8('0x13')](function(_0x3f41cd){_0x5623bc(null,_0x3f41cd);})[_0x7bc8('0x15')](function(_0x20bcdc){_0x5623bc(_0x20bcdc);});};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x9b')]=function(_0x954f30){var _0x37d0c2=_[_0x7bc8('0x6e')](verticesWithRetry,_0x954f30[_0x7bc8('0x3e')])?_0x954f30:_[_0x7bc8('0x9c')](_0x954f30);for(var _0x3d0561 in _0x37d0c2){if(_0x37d0c2['hasOwnProperty'](_0x3d0561)){if(_0x37d0c2[_0x3d0561]&&_[_0x7bc8('0x9d')](_0x37d0c2[_0x3d0561])){if(_[_0x7bc8('0x6e')](recursiveMapAttributes,_0x3d0561)){_0x37d0c2[_0x3d0561]=this[_0x7bc8('0x9e')](_0x37d0c2[_0x3d0561]);}else{_0x37d0c2[_0x3d0561]=this['replaceAllVariables'](_0x37d0c2[_0x3d0561]);}}}}return _0x37d0c2;};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x9f')]=function(_0x1874eb){for(var _0x42bbcb in _0x1874eb){if(_0x1874eb[_0x7bc8('0xa0')](_0x42bbcb)){if(_[_0x7bc8('0xa1')](_0x1874eb[_0x42bbcb])){this['recursiveNodeIndex'](_0x1874eb[_0x42bbcb]);}else if(_['isArray'](_0x1874eb[_0x42bbcb])){for(var _0x54a74d=0x0;_0x54a74d<_0x1874eb[_0x42bbcb]['length'];_0x54a74d++){this[_0x7bc8('0x9f')](_0x1874eb[_0x42bbcb][_0x54a74d]);}}else if(_['isString'](_0x1874eb[_0x42bbcb])){_0x1874eb[_0x42bbcb]=this[_0x7bc8('0xa2')](_0x1874eb[_0x42bbcb]);}}}};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0xa3')]=function(_0x4bc2ae,_0x45d9d5){for(var _0xfd9a32 in _0x4bc2ae){if(_0x4bc2ae[_0x7bc8('0xa0')](_0xfd9a32)){if(_[_0x7bc8('0xa1')](_0x4bc2ae[_0xfd9a32])){if(!_[_0x7bc8('0x4a')](_0x4bc2ae[_0xfd9a32])){this['saveRestApiResult'](_0x4bc2ae[_0xfd9a32],util[_0x7bc8('0x2d')](_0x7bc8('0xa4'),_0x45d9d5,_0xfd9a32));}}else if(_['isArray'](_0x4bc2ae[_0xfd9a32])){for(var _0x1eba80=0x0;_0x1eba80<_0x4bc2ae[_0xfd9a32][_0x7bc8('0xa5')];_0x1eba80++){this[_0x7bc8('0xa3')](_0x4bc2ae[_0xfd9a32][_0x1eba80],util[_0x7bc8('0x2d')]('%s.%s',_0x45d9d5,_0xfd9a32+'['+_0x1eba80+']'));}}else{if(!_[_0x7bc8('0x4e')](_0x4bc2ae[_0xfd9a32])){this['channel'][_0x7bc8('0xa6')](util[_0x7bc8('0x2d')]('%s.%s',_0x45d9d5,_0xfd9a32),_0x4bc2ae[_0xfd9a32]);}}}}};AGIVertices[_0x7bc8('0x10')]['replaceObjectAllVariables']=function(_0x3703a4){try{var _0x221a70=JSON[_0x7bc8('0x72')](_0x3703a4);this[_0x7bc8('0x9f')](_0x221a70);return JSON[_0x7bc8('0x7a')](_0x221a70);}catch(_0x45bb80){return this[_0x7bc8('0xa2')](_0x3703a4);}};AGIVertices[_0x7bc8('0x10')]['replaceAllVariables']=function(_0x484524){var _0x1405d3=_0x484524[_0x7bc8('0xa7')]('{');for(var _0x3a6734=0x1;_0x3a6734<_0x1405d3[_0x7bc8('0xa5')];_0x3a6734+=0x1){var _0x53d4b3=_0x1405d3[_0x3a6734][_0x7bc8('0xa7')]('}');if(_0x53d4b3['length']>0x1){_0x484524=_0x484524['replaceAll']('{'+_0x53d4b3[0x0]+'}',this[_0x7bc8('0x3f')]['getVariable'](_0x53d4b3[0x0])[_0x7bc8('0xa8')]||_0x53d4b3[0x0]);}}if(_0x1405d3['length']===0x1){return _0x484524['toString']();}return this[_0x7bc8('0xa2')](_0x484524);};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0xa9')]=function(_0x5e3fe0,_0x30c964){var _0x1a00aa=this['channel'][_0x7bc8('0x11')](_0x5e3fe0);if(_0x1a00aa[_0x7bc8('0xaa')]===-0x1){return _0x1a00aa;}logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0xab'),_0x30c964,_0x1a00aa['extra']));return this['channel'][_0x7bc8('0xa6')](_0x30c964,_0x1a00aa[_0x7bc8('0xa8')]);};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x8c')]=function(_0xdd7c8c){return _0xdd7c8c&&_0xdd7c8c!=='0'&&_0xdd7c8c!=='-1'&&_0xdd7c8c!=='';};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0xac')]=function(_0x3487fb){this[_0x7bc8('0x3b')][_0x7bc8('0xad')](this,_0x3487fb,'-');_0x3487fb[_0x7bc8('0xae')]=_0x3487fb[_0x7bc8('0xac')];return{'code':0xc8,'result':'-'};};AGIVertices[_0x7bc8('0x10')]['mrcpsynth']=function(_0x21cf8f){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0xaf'),_0x21cf8f[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x21cf8f['text'])){return this[_0x7bc8('0x3f')]['noop'](_0x7bc8('0xb0'));}var _0x5ea369='\x22'+_0x21cf8f['text']+'\x22';if(this[_0x7bc8('0x8c')](_0x21cf8f[_0x7bc8('0x7f')])){_0x5ea369+=','+_0x21cf8f[_0x7bc8('0x7f')];}var _0x3b39ef=this[_0x7bc8('0x3f')]['exec'](_0x7bc8('0xb1'),_0x5ea369);if(_0x3b39ef[_0x7bc8('0xaa')]===-0x1){return _0x3b39ef;}return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0xb3'),_0x5ea369));};AGIVertices['prototype']['mrcprecog']=function(_0x20de80){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')]('Enter\x20in\x20MRCPRecog\x20(%s)\x20block',_0x20de80[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x20de80[_0x7bc8('0xb4')])){return this['channel'][_0x7bc8('0xb2')](_0x7bc8('0xb5'));}var _0x41a194=_0x20de80[_0x7bc8('0xb4')];if(this[_0x7bc8('0x8c')](_0x20de80['options'])){_0x41a194+=','+_0x20de80['options'];}var _0x35fa76=this[_0x7bc8('0x3f')]['exec'](_0x7bc8('0xb6'),_0x41a194);if(_0x35fa76[_0x7bc8('0xaa')]===-0x1){return _0x35fa76;}var _0x222261=this['getAndSetVariable']('RECOG_CONFIDENCE()',_0x7bc8('0xb7'));if(_0x222261[_0x7bc8('0xaa')]===-0x1){return _0x222261;}var _0x4423fe=this[_0x7bc8('0xa9')](_0x7bc8('0xb8'),'MRCP_RECOG_TRANSCRIPT');if(_0x4423fe[_0x7bc8('0xaa')]===-0x1){return _0x4423fe;}var _0x381f47=this['getAndSetVariable'](_0x7bc8('0xb9'),_0x7bc8('0xba'));if(_0x381f47[_0x7bc8('0xaa')]===-0x1){return _0x381f47;}return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util['format'](_0x7bc8('0xbb'),_0x41a194));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x8')]=function(_0x490cfd){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0xbc'),_0x490cfd[_0x7bc8('0x3d')]));return this[_0x7bc8('0x3f')][_0x7bc8('0x8')]([_0x490cfd[_0x7bc8('0xbd')],_0x490cfd[_0x7bc8('0xbe')]]);};AGIVertices['prototype'][_0x7bc8('0xbf')]=function(_0x57e232){logger[_0x7bc8('0x32')](util['format'](_0x7bc8('0xc0'),_0x57e232[_0x7bc8('0x3d')]));if(this[_0x7bc8('0x8c')](_0x57e232[_0x7bc8('0x6c')])){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0xc1'),_0x57e232[_0x7bc8('0x6c')]));var _0x2aaec3=this[_0x7bc8('0x3f')]['wait'](_0x57e232[_0x7bc8('0x6c')]);if(_0x2aaec3['result']===-0x1){return _0x2aaec3;}}return this[_0x7bc8('0x3f')][_0x7bc8('0xbf')]();};AGIVertices[_0x7bc8('0x10')]['callback']=function(_0x2b05de){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')]('Enter\x20in\x20CALLBACK\x20(%s)\x20block',_0x2b05de['label']));if(!this[_0x7bc8('0x8c')](_0x2b05de[_0x7bc8('0x50')])){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x2b05de,_0x7bc8('0xc2'));}_0x2b05de[_0x7bc8('0x51')]=moment();if(this[_0x7bc8('0x8c')](_0x2b05de['delay'])){_0x2b05de[_0x7bc8('0x51')]=moment()['add'](_0x2b05de['delay'],_0x7bc8('0xc3'));}if(!this[_0x7bc8('0x8c')](_0x2b05de['callback_priority'])){_0x2b05de[_0x7bc8('0x53')]=0x2;}this[_0x7bc8('0x49')][_0x7bc8('0xad')](this,_0x2b05de);return this['channel'][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')]('CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s',_0x2b05de[_0x7bc8('0x4f')],_0x2b05de[_0x7bc8('0x50')],_0x2b05de['scheduledAt']));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0xc4')]=function(_0x32f23f){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0xc5'),_0x32f23f['label']));var _0x2cb17d=this['channel']['exec'](_0x32f23f[_0x7bc8('0xc6')],_0x32f23f['options']);if(_0x2cb17d[_0x7bc8('0xaa')]===-0x1){return _0x2cb17d;}return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')]('Executed\x20command\x20%s\x20%s',_0x32f23f[_0x7bc8('0xc6')],_0x32f23f['options']));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0xc7')]=function(_0x483a0b){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0xc8'),_0x483a0b['label']));if(!this[_0x7bc8('0x8c')](_0x483a0b[_0x7bc8('0x62')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0xb0'));}var _0x23dcc2='\x22'+_0x483a0b[_0x7bc8('0x62')]+'\x22';if(this[_0x7bc8('0x8c')](_0x483a0b[_0x7bc8('0x7f')])){_0x23dcc2+=','+_0x483a0b[_0x7bc8('0x7f')];}var _0x59f0e7=this[_0x7bc8('0x3f')][_0x7bc8('0xc9')](_0x7bc8('0xb1'),_0x23dcc2);if(_0x59f0e7[_0x7bc8('0xaa')]===-0x1){return _0x59f0e7;}return this['channel'][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0xb3'),_0x23dcc2));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0xca')]=function(_0x7f01bc){logger['info'](util[_0x7bc8('0x2d')](_0x7bc8('0xcb'),_0x7f01bc[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x7f01bc['text'])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0xb0'));}var _0x3002e4='\x22'+_0x7f01bc['text']+'\x22';if(this[_0x7bc8('0x8c')](_0x7f01bc['options'])){_0x3002e4+=','+_0x7f01bc[_0x7bc8('0x7f')];}var _0xbaae59=this['channel'][_0x7bc8('0xc9')](_0x7bc8('0xb1'),_0x3002e4);if(_0xbaae59['result']===-0x1){return _0xbaae59;}return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0xb3'),_0x3002e4));};AGIVertices['prototype'][_0x7bc8('0xcc')]=function(_0x3c4296){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')]('Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block',_0x3c4296[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x3c4296['grammar'])){return this[_0x7bc8('0x3f')]['noop'](_0x7bc8('0xb5'));}var _0x56ff44=_0x3c4296[_0x7bc8('0xb4')];if(this[_0x7bc8('0x8c')](_0x3c4296[_0x7bc8('0x7f')])){_0x56ff44+=','+_0x3c4296[_0x7bc8('0x7f')];}var _0x10908a=this[_0x7bc8('0x3f')][_0x7bc8('0xc9')](_0x7bc8('0xb6'),_0x56ff44);if(_0x10908a['result']===-0x1){return _0x10908a;}var _0x3d0189=this['getAndSetVariable'](_0x7bc8('0xcd'),'LUMENVOX_ASR_CONFIDENCE');if(_0x3d0189[_0x7bc8('0xaa')]===-0x1){return _0x3d0189;}var _0x12741e=this[_0x7bc8('0xa9')](_0x7bc8('0xb8'),_0x7bc8('0xce'));if(_0x12741e[_0x7bc8('0xaa')]===-0x1){return _0x12741e;}var _0x4e323e=this[_0x7bc8('0xa9')](_0x7bc8('0xb9'),_0x7bc8('0xcf'));if(_0x4e323e['result']===-0x1){return _0x4e323e;}return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0xbb'),_0x56ff44));};AGIVertices['prototype'][_0x7bc8('0xd0')]=function(_0x1e3149){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0xd1'),_0x1e3149[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x1e3149[_0x7bc8('0xb4')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')]('no\x20grammar\x20configured');}var _0x1a904a=_0x1e3149[_0x7bc8('0xb4')];if(this['isConfigured'](_0x1e3149[_0x7bc8('0x7f')])){_0x1a904a+=','+_0x1e3149[_0x7bc8('0x7f')];}var _0x19ff95=this[_0x7bc8('0x3f')][_0x7bc8('0xc9')](_0x7bc8('0xb6'),_0x1a904a);if(_0x19ff95[_0x7bc8('0xaa')]===-0x1){return _0x19ff95;}var _0x8a3087=this[_0x7bc8('0xa9')]('RECOG_CONFIDENCE()',_0x7bc8('0xd2'));if(_0x8a3087[_0x7bc8('0xaa')]===-0x1){return _0x8a3087;}var _0x546526=this['getAndSetVariable'](_0x7bc8('0xb8'),_0x7bc8('0xd3'));if(_0x546526[_0x7bc8('0xaa')]===-0x1){return _0x546526;}var _0x5d339d=this[_0x7bc8('0xa9')](_0x7bc8('0xb9'),_0x7bc8('0xd4'));if(_0x5d339d[_0x7bc8('0xaa')]===-0x1){return _0x5d339d;}return this[_0x7bc8('0x3f')]['noop'](util['format'](_0x7bc8('0xbb'),_0x1a904a));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0xd5')]=function(_0x1cb8ea){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0xd6'),_0x1cb8ea[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x1cb8ea['odbc_id'])){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x1cb8ea,_0x7bc8('0xd7'));}var _0x342704=this['getSquareOdbc'][_0x7bc8('0xad')](this,_0x1cb8ea[_0x7bc8('0xd8')]);if(!_0x342704){return this['channel']['error'](_0x1cb8ea,_0x7bc8('0xd9'));}if(!this[_0x7bc8('0x8c')](_0x1cb8ea[_0x7bc8('0x34')])){return this['channel'][_0x7bc8('0x30')](_0x1cb8ea,_0x7bc8('0xda'));}var _0x294c2f=_0x1cb8ea[_0x7bc8('0x34')][_0x7bc8('0x5f')](/(\r\n|\n|\r)/gm,'\x20');this['channel'][_0x7bc8('0xb2')](util['format'](_0x7bc8('0xdb'),_0x294c2f));var _0x29ed2b=this['getQueryOdbc'][_0x7bc8('0xad')](this,_0x342704,_0x294c2f);this[_0x7bc8('0x3b')]['sync'](this,_0x1cb8ea,_0x294c2f);if(!this[_0x7bc8('0x8c')](_0x1cb8ea['variable_id'])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0xdc'));}var _0x6bd133=this['getVariable'][_0x7bc8('0xad')](this,_0x1cb8ea[_0x7bc8('0xdd')]);if(!_0x6bd133){return this['channel']['error'](_0x1cb8ea,'no\x20variable\x20found');}var _0x39dae0=this;_0x29ed2b[_0x7bc8('0xde')](function(_0x5cc188,_0x88733a){Object[_0x7bc8('0xdf')](_0x5cc188)[_0x7bc8('0xde')](function(_0x37c2cc){_0x39dae0[_0x7bc8('0x3f')][_0x7bc8('0xa6')](util[_0x7bc8('0x2d')](_0x7bc8('0xe0'),_0x6bd133,_0x88733a,_0x37c2cc),_0x5cc188[_0x37c2cc]);});});this[_0x7bc8('0x3f')]['setVariable'](util[_0x7bc8('0x2d')](_0x7bc8('0xe1'),_0x6bd133),_0x29ed2b[_0x7bc8('0xa5')]);return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0xe2'),_0x6bd133));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0xe3')]=function(_0x4c700f){logger[_0x7bc8('0xe4')](util[_0x7bc8('0x2d')](_0x7bc8('0xe5'),_0x4c700f[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x4c700f[_0x7bc8('0xe6')])){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x4c700f,_0x7bc8('0xe7'));}var _0x3b9628=this[_0x7bc8('0x1d')][_0x7bc8('0xad')](this,_0x4c700f[_0x7bc8('0xe6')]);if(!_0x3b9628){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x4c700f,_0x7bc8('0xe8'));}var _0x24d92c=this[_0x7bc8('0x3f')][_0x7bc8('0xc9')]('DIAL',[util[_0x7bc8('0x2d')](_0x7bc8('0xe9'),_0x3b9628),_0x4c700f[_0x7bc8('0x6c')],_0x4c700f[_0x7bc8('0xea')],_0x4c700f[_0x7bc8('0x6a')]]);if(_0x24d92c['result']===-0x1){return _0x24d92c;}return this['channel'][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0xeb'),_0x7bc8('0xec')));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0xed')]=function(_0xa705d9){logger['info'](util[_0x7bc8('0x2d')](_0x7bc8('0xee'),_0xa705d9[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0xa705d9[_0x7bc8('0x81')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0xef'));}if(!this[_0x7bc8('0x8c')](_0xa705d9[_0x7bc8('0x62')])){return this[_0x7bc8('0x3f')]['noop'](_0x7bc8('0xb0'));}this[_0x7bc8('0x3f')][_0x7bc8('0xf0')]=!![];this['createSquareDetailsReport'](_0xa705d9);this['createSquareMessage'](_0xa705d9[_0x7bc8('0x62')],'in','','');this['channel']['noop'](util[_0x7bc8('0x2d')]('Trying\x20Dialogflow:\x20%s',_0xa705d9['text']));var _0x59cf30=this[_0x7bc8('0x80')][_0x7bc8('0xad')](this,_0xa705d9);if(_0x59cf30){for(var _0x53c56d in _0x59cf30){if(_0x59cf30[_0x7bc8('0xa0')](_0x53c56d)){this[_0x7bc8('0x3f')][_0x7bc8('0xa6')](util[_0x7bc8('0x2d')](_0x7bc8('0xf1'),_0x53c56d[_0x7bc8('0x71')]()),_0x59cf30[_0x53c56d]);}}this[_0x7bc8('0x48')](_0x59cf30['speech'],'out','dialogflow','');return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0xf2'),_0x59cf30[_0x7bc8('0xf3')]));}return this[_0x7bc8('0x3f')]['error'](_0xa705d9,_0x7bc8('0xf4'));};AGIVertices['prototype'][_0x7bc8('0xf5')]=function(_0x11a3c7){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')]('Enter\x20in\x20DIALOGFLOW\x20V2\x20(%s)\x20block',_0x11a3c7[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x11a3c7['dialogflowV2_project_id'])){return this['channel'][_0x7bc8('0xb2')]('no\x20project_id\x20configured');}if(!this[_0x7bc8('0x8c')](_0x11a3c7[_0x7bc8('0x84')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')]('no\x20client_email\x20configured');}if(!this[_0x7bc8('0x8c')](_0x11a3c7[_0x7bc8('0x85')])){return this['channel'][_0x7bc8('0xb2')](_0x7bc8('0xf6'));}if(!this[_0x7bc8('0x8c')](_0x11a3c7[_0x7bc8('0x86')])){return this['channel'][_0x7bc8('0xb2')](_0x7bc8('0xf7'));}if(!this[_0x7bc8('0x8c')](_0x11a3c7[_0x7bc8('0x62')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0xb0'));}this[_0x7bc8('0x3f')][_0x7bc8('0xf0')]=!![];this[_0x7bc8('0x3b')](_0x11a3c7);this[_0x7bc8('0x48')](_0x11a3c7[_0x7bc8('0x62')],'in','','');this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0xf8'),_0x11a3c7[_0x7bc8('0x62')]));var _0x798db1=this[_0x7bc8('0xf9')][_0x7bc8('0xad')](this,_0x11a3c7);if(_0x798db1){for(var _0x57e2dd in _0x798db1){if(_0x798db1['hasOwnProperty'](_0x57e2dd)){if(_0x57e2dd!==_0x7bc8('0xfa')){this[_0x7bc8('0x3f')][_0x7bc8('0xa6')](util[_0x7bc8('0x2d')](_0x7bc8('0xf1'),_0x57e2dd[_0x7bc8('0x71')]()),_0x798db1[_0x57e2dd]);}}}this[_0x7bc8('0x48')](_0x798db1[_0x7bc8('0xf3')],_0x7bc8('0xfb'),'dialogflowV2',_0x798db1[_0x7bc8('0xfa')]);return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0xfc'),_0x798db1[_0x7bc8('0xf3')]));}return this['channel'][_0x7bc8('0x30')](_0x11a3c7,_0x7bc8('0xfd'));};AGIVertices['prototype'][_0x7bc8('0xfe')]=function(_0x5c98a3){logger['info'](util['format']('Enter\x20in\x20SESTEKNDA\x20(%s)\x20block',_0x5c98a3[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x5c98a3[_0x7bc8('0xff')])){return this[_0x7bc8('0x3f')]['noop']('no\x20ndauth\x20url\x20configured');}if(!this[_0x7bc8('0x8c')](_0x5c98a3[_0x7bc8('0x100')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0x101'));}if(!this[_0x7bc8('0x8c')](_0x5c98a3[_0x7bc8('0x102')])){return this['channel']['noop']('no\x20password\x20configured');}if(!this['isConfigured'](_0x5c98a3[_0x7bc8('0x103')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')]('no\x20text\x20configured');}this['channel'][_0x7bc8('0xf0')]=!![];this['createSquareDetailsReport'](_0x5c98a3);this['createSquareMessage'](_0x5c98a3[_0x7bc8('0x62')],'in','','');this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x104'),_0x5c98a3[_0x7bc8('0x62')]));var _0xfc4d83=this[_0x7bc8('0x87')][_0x7bc8('0xad')](this,_0x5c98a3);if(_0xfc4d83){for(var _0x4f9ab8 in _0xfc4d83){if(_0xfc4d83['hasOwnProperty'](_0x4f9ab8)){this['channel'][_0x7bc8('0xa6')](util[_0x7bc8('0x2d')](_0x7bc8('0x105'),_0x4f9ab8[_0x7bc8('0x71')]()),_0xfc4d83[_0x4f9ab8]);}}this[_0x7bc8('0x48')](_0xfc4d83[_0x7bc8('0xf3')],'out','sesteknda','');if(_0xfc4d83['audiofile']){this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x106'),_0xfc4d83[_0x7bc8('0x107')]));var _0x4f04c6=this[_0x7bc8('0x3f')][_0x7bc8('0x108')](_0xfc4d83['audiofile']);try{fs['unlink'](_0xfc4d83[_0x7bc8('0x107')]+_0x7bc8('0x109'));}catch(_0x3ae676){logger[_0x7bc8('0x30')](_0x3ae676);}return _0x4f04c6;}else{return this[_0x7bc8('0x3f')]['noop'](util[_0x7bc8('0x2d')](_0x7bc8('0x10a'),_0xfc4d83[_0x7bc8('0xf3')]));}}return this['channel'][_0x7bc8('0x30')](_0x5c98a3,'SestekNDA\x20is\x20unreachable');};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x10b')]=function(_0xef5077){logger[_0x7bc8('0x32')](util['format'](_0x7bc8('0x10c'),_0xef5077['label']));return this[_0x7bc8('0x3f')]['noop'](_0x7bc8('0x10b'));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x10d')]=function(_0x1a7ee9){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x10e'),_0x1a7ee9[_0x7bc8('0x3d')]));var _0x493e6f='';if(_0x1a7ee9[_0x7bc8('0x10f')]){if(!this[_0x7bc8('0x8c')](_0x1a7ee9['trunk_id'])){return this['channel'][_0x7bc8('0x30')](_0x1a7ee9,'no\x20trunk\x20selected');}else{var _0x15ede9=parseInt(_0x1a7ee9[_0x7bc8('0x10f')],0xa);if(isNaN(_0x15ede9)){_0x493e6f=_0x1a7ee9[_0x7bc8('0x10f')];}else{_0x493e6f=this[_0x7bc8('0x1f')]['sync'](this,_0x1a7ee9['trunk_id']);if(!_0x493e6f){return this['channel'][_0x7bc8('0x30')](_0x1a7ee9,_0x7bc8('0x110'));}}}}else if(_0x1a7ee9['trunk_name']){_0x493e6f=_0x1a7ee9[_0x7bc8('0x111')];}else{return this['channel'][_0x7bc8('0x30')](_0x1a7ee9,_0x7bc8('0x112'));}var _0x1092ef=this[_0x7bc8('0x3f')][_0x7bc8('0xc9')](_0x7bc8('0xec'),[util[_0x7bc8('0x2d')]('SIP/%s/%s',_0x493e6f,_0x1a7ee9[_0x7bc8('0x4f')]),_0x1a7ee9[_0x7bc8('0x6c')],_0x1a7ee9[_0x7bc8('0xea')],_0x1a7ee9[_0x7bc8('0x6a')]]);if(_0x1092ef[_0x7bc8('0xaa')]===-0x1){return _0x1092ef;}return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0xeb'),_0x7bc8('0xec')));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x113')]=function(_0x351566){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x114'),_0x351566[_0x7bc8('0x3d')]));return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0x113'));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x115')]=function(_0x256a64){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x116'),_0x256a64['label']));if(_0x256a64[_0x7bc8('0xae')]===0x0){return this[_0x7bc8('0xac')](_0x256a64);}_0x256a64[_0x7bc8('0xae')]-=0x1;if(!this[_0x7bc8('0x8c')](_0x256a64[_0x7bc8('0x117')])){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x256a64,_0x7bc8('0x118'));}var _0x4f80d6=this['getSound']['sync'](this,_0x256a64[_0x7bc8('0x117')]);if(!_0x4f80d6){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x256a64,_0x7bc8('0x119'));}if(!this['isConfigured'](_0x256a64[_0x7bc8('0xdd')])){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x7bc8('0xdc'));}var _0x103ea2=this['channel'][_0x7bc8('0x11a')](_0x4f80d6,_0x256a64['response'],_0x256a64[_0x7bc8('0x11b')]);var _0x1cebb8=_0x103ea2[_0x7bc8('0xaa')]?_0x103ea2['result'][_0x7bc8('0x11c')]():'';logger[_0x7bc8('0x32')](_0x7bc8('0x11d'),JSON[_0x7bc8('0x7a')](_0x103ea2));if(_0x103ea2[_0x7bc8('0xaa')]===-0x1){this[_0x7bc8('0x3b')][_0x7bc8('0xad')](this,_0x256a64,_0x1cebb8);return _0x103ea2;}else if(_0x103ea2[_0x7bc8('0xa8')]===_0x7bc8('0x6c')){_0x103ea2[_0x7bc8('0xaa')]=_0x1cebb8[_0x7bc8('0xa5')]>=parseInt(_0x256a64[_0x7bc8('0x11e')])?'x':'i';}else{_0x103ea2[_0x7bc8('0xaa')]=_0x1cebb8[_0x7bc8('0xa5')]>=parseInt(_0x256a64['mindigit'])&&_0x1cebb8['length']<=parseInt(_0x256a64[_0x7bc8('0x11b')])?'x':'i';}var _0x3a99ab=this[_0x7bc8('0x11')]['sync'](this,_0x256a64[_0x7bc8('0xdd')]);if(!_0x3a99ab){return this[_0x7bc8('0x3f')]['error'](_0x256a64,_0x7bc8('0x11f'));}this[_0x7bc8('0x3f')][_0x7bc8('0xa6')](_0x3a99ab,_0x1cebb8);if(this[_0x7bc8('0x8c')](_0x256a64[_0x7bc8('0x120')])){var _0x26a66a=parseInt(_0x256a64[_0x7bc8('0x120')],0xa);var _0x4aa2d2=rs[_0x7bc8('0x121')]({'charset':'*','length':_0x26a66a});var _0x2516bc=_0x1cebb8['length'];if(_0x2516bc>0x0){if(_0x2516bc>_0x26a66a){this[_0x7bc8('0x3b')][_0x7bc8('0xad')](this,_0x256a64,_0x256a64[_0x7bc8('0x122')]===_0x7bc8('0x123')?_0x4aa2d2+_0x1cebb8[_0x7bc8('0x124')](_0x26a66a):_0x1cebb8[_0x7bc8('0x124')](0x0,_0x2516bc-_0x26a66a)+_0x4aa2d2);}else{this['createSquareDetailsReport'][_0x7bc8('0xad')](this,_0x256a64,rs[_0x7bc8('0x121')]({'charset':'*','length':_0x2516bc}));}}else{this[_0x7bc8('0x3b')][_0x7bc8('0xad')](this,_0x256a64,'');}}else{this[_0x7bc8('0x3b')]['sync'](this,_0x256a64,_0x1cebb8);}return _0x103ea2;};AGIVertices['prototype'][_0x7bc8('0xd')]=function(_0x18d7ab){logger[_0x7bc8('0x32')](util['format'](_0x7bc8('0x125'),_0x18d7ab[_0x7bc8('0x3d')]));return this['getdigits'](_0x18d7ab);};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x126')]=function(_0x1f366e){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')]('Enter\x20in\x20GOAL\x20(%s)\x20block',_0x1f366e[_0x7bc8('0x3d')]));this[_0x7bc8('0x3b')][_0x7bc8('0xad')](this,_0x1f366e,_0x1f366e[_0x7bc8('0x127')]);return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util['format']('GOAL\x20%s',_0x1f366e[_0x7bc8('0x127')]));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x128')]=function(_0x4dd2a3){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x129'),_0x4dd2a3['label']));if(!this[_0x7bc8('0x8c')](_0x4dd2a3[_0x7bc8('0x12a')])||!this[_0x7bc8('0x8c')](_0x4dd2a3[_0x7bc8('0x8f')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')]('no\x20valid\x20credentials\x20configured');}if(!this[_0x7bc8('0x8c')](_0x4dd2a3[_0x7bc8('0x62')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0xb0'));}this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x12b'),_0x4dd2a3[_0x7bc8('0x62')]));var _0x2a6f97=this[_0x7bc8('0x8e')]['sync'](this,_0x4dd2a3);if(_0x2a6f97){this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util['format'](_0x7bc8('0x12c'),_0x2a6f97));var _0x1062dc=this[_0x7bc8('0x3f')][_0x7bc8('0x108')](_0x2a6f97);try{fs[_0x7bc8('0x12d')](_0x2a6f97+_0x7bc8('0x109'));}catch(_0xad9345){logger[_0x7bc8('0x30')](_0xad9345);}return _0x1062dc;}return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x4dd2a3,'aws\x20Polly\x20is\x20unreachable');};AGIVertices['prototype'][_0x7bc8('0x12e')]=function(_0x51cea4){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x12f'),_0x51cea4['label']));if(!this[_0x7bc8('0x8c')](_0x51cea4[_0x7bc8('0x12a')])||!this[_0x7bc8('0x8c')](_0x51cea4[_0x7bc8('0x8f')])){return this['channel']['noop']('no\x20valid\x20credentials\x20configured');}if(!this['isConfigured'](_0x51cea4[_0x7bc8('0x96')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0x130'));}if(!this['isConfigured'](_0x51cea4[_0x7bc8('0x62')])){return this['channel'][_0x7bc8('0xb2')](_0x7bc8('0xb0'));}this[_0x7bc8('0x3f')][_0x7bc8('0xf0')]=!![];this['createSquareDetailsReport'](_0x51cea4);this['createSquareMessage'](_0x51cea4[_0x7bc8('0x62')],'in','','');this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x131'),_0x51cea4[_0x7bc8('0x62')]));var _0xaee541=this[_0x7bc8('0x94')][_0x7bc8('0xad')](this,_0x51cea4);if(_0xaee541){for(var _0x501778 in _0xaee541){if(_0xaee541[_0x7bc8('0xa0')](_0x501778)&&_[_0x7bc8('0x9d')](_0xaee541[_0x501778])){this['channel'][_0x7bc8('0xa6')](util[_0x7bc8('0x2d')](_0x7bc8('0x132'),_0x501778['toUpperCase']()),_0xaee541[_0x501778]);}}if(_[_0x7bc8('0x4e')](_0xaee541['message'])){return this['channel']['noop'](_0x7bc8('0x133'));}else{this[_0x7bc8('0x48')](_0xaee541[_0x7bc8('0x134')],'out',_0x7bc8('0x135'),'');return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x136'),_0xaee541['message']));}}return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x51cea4,_0x7bc8('0x137'));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x138')]=function(_0xf7be44){logger['info'](util[_0x7bc8('0x2d')](_0x7bc8('0x139'),_0xf7be44[_0x7bc8('0x3d')],_0xf7be44[_0x7bc8('0x6c')]));if(!this['isConfigured'](_0xf7be44[_0x7bc8('0x81')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0xef'));}var _0x550e52=_0x7bc8('0x13a');var _0xe5f0af=util[_0x7bc8('0x2d')](_0x7bc8('0x13b'),FILES_PATH,rs[_0x7bc8('0x121')](0x4));var _0xb7a92b=util['format'](_0x7bc8('0xa4'),_0xe5f0af,_0x550e52);var _0x44d678=!![];if(_0xf7be44[_0x7bc8('0x13c')]==='NOBEEP'){_0x44d678=![];}var _0x37cb39=this['channel'][_0x7bc8('0x13d')](_0xe5f0af,_0x550e52,_0xf7be44[_0x7bc8('0x13e')],_0xf7be44[_0x7bc8('0x6c')],undefined,_0x44d678);if(_0x37cb39['result']!==-0x1){this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x13f'),_0xb7a92b));var _0xd69c88=this[_0x7bc8('0x97')][_0x7bc8('0xad')](this,_0xf7be44,_0xb7a92b);if(_0xd69c88){for(var _0x4d92c2 in _0xd69c88){if(_0xd69c88[_0x7bc8('0xa0')](_0x4d92c2)){this[_0x7bc8('0x3f')]['setVariable'](util[_0x7bc8('0x2d')](_0x7bc8('0x140'),_0x4d92c2[_0x7bc8('0x71')]()),_0xd69c88[_0x4d92c2]);}}return this['channel'][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')]('GoogleASR\x20Result\x20%s',JSON[_0x7bc8('0x7a')](_0xd69c88)));}}return _0x37cb39;};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x141')]=function(_0x23fb94){logger['info'](util[_0x7bc8('0x2d')](_0x7bc8('0x142'),_0x23fb94[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x23fb94[_0x7bc8('0x9a')])){return this[_0x7bc8('0x3f')]['noop'](_0x7bc8('0x143'));}if(!this[_0x7bc8('0x8c')](_0x23fb94['appsecret'])){return this[_0x7bc8('0x3f')]['noop'](_0x7bc8('0x144'));}var _0x1b2226='wav';var _0x12e28d=util[_0x7bc8('0x2d')](_0x7bc8('0x13b'),FILES_PATH,rs[_0x7bc8('0x121')](0x4));var _0x35947b=util['format']('%s.%s',_0x12e28d,_0x1b2226);var _0x2f4e61=!![];if(_0x23fb94['beep']===_0x7bc8('0x145')){_0x2f4e61=![];}var _0x3f6e3d=this[_0x7bc8('0x3f')][_0x7bc8('0x13d')](_0x12e28d,_0x1b2226,_0x23fb94[_0x7bc8('0x13e')],_0x23fb94['timeout'],undefined,_0x2f4e61);if(_0x3f6e3d['result']!==-0x1){this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x146'),_0x35947b));var _0x25b777=this['tildeASR']['sync'](this,_0x23fb94,_0x35947b);if(_0x25b777){for(var _0x5cd4d4 in _0x25b777){if(_0x25b777['hasOwnProperty'](_0x5cd4d4)){this[_0x7bc8('0x3f')][_0x7bc8('0xa6')](util['format'](_0x7bc8('0x147'),_0x5cd4d4[_0x7bc8('0x71')]()),_0x25b777[_0x5cd4d4]);}}return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x148'),JSON[_0x7bc8('0x7a')](_0x25b777)));}}return _0x3f6e3d;};AGIVertices['prototype'][_0x7bc8('0x149')]=function(_0x4dd1ae){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x14a'),_0x4dd1ae[_0x7bc8('0x3d')]));return this[_0x7bc8('0x3f')][_0x7bc8('0x14b')](_0x4dd1ae[_0x7bc8('0x44')],_0x4dd1ae['extension'],_0x4dd1ae['priority']);};AGIVertices[_0x7bc8('0x10')]['gotoif']=function(_0x8d3786){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x14c'),_0x8d3786[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x8d3786[_0x7bc8('0x14d')])){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x8d3786,_0x7bc8('0x14e'));}try{var _0x1b82e2=eval(_0x8d3786[_0x7bc8('0x14d')])?_0x7bc8('0x14f'):_0x7bc8('0x150');this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')]('EVAL\x20CONDITION\x20%s\x20%s',_0x8d3786[_0x7bc8('0x14d')],_0x1b82e2));return{'code':0xc8,'result':_0x1b82e2};}catch(_0x49ab92){return{'code':0xc8,'result':_0x7bc8('0x150')};}};AGIVertices['prototype'][_0x7bc8('0x151')]=function(_0x27b01b){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x152'),_0x27b01b['label']));if(!this['isConfigured'](_0x27b01b['interval_id'])){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x27b01b,_0x7bc8('0x153'));}var _0x312cef=this[_0x7bc8('0x27')][_0x7bc8('0xad')](this,_0x27b01b['interval_id']);if(!_0x312cef){return this['channel'][_0x7bc8('0x30')](_0x27b01b,_0x7bc8('0x154'));}for(var _0x472ab3=0x0;_0x472ab3<_0x312cef[_0x7bc8('0xa5')];_0x472ab3+=0x1){var _0x4081b3=this[_0x7bc8('0x3f')][_0x7bc8('0x11')](util[_0x7bc8('0x2d')](_0x7bc8('0x155'),_0x312cef[_0x472ab3]));if(_0x4081b3[_0x7bc8('0xaa')]===-0x1){return _0x4081b3;}logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x156'),_0x312cef[_0x472ab3],_0x4081b3[_0x7bc8('0xa8')]));if(_0x4081b3[_0x7bc8('0xa8')]===_0x7bc8('0x14f')){logger[_0x7bc8('0x32')](util['format'](_0x7bc8('0x156'),_0x312cef[_0x472ab3],_0x7bc8('0x14f')));this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x156'),_0x312cef[_0x472ab3],_0x7bc8('0x14f')));return{'code':0xc8,'result':_0x7bc8('0x14f')};}else{logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x156'),_0x312cef[_0x472ab3],'false'));this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x156'),_0x312cef[_0x472ab3],'false'));}}return{'code':0xc8,'result':_0x7bc8('0x150')};};AGIVertices[_0x7bc8('0x10')]['hangup']=function(_0x27931e){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')]('Enter\x20in\x20HANGUP\x20(%s)\x20block',_0x27931e[_0x7bc8('0x3d')]));return this[_0x7bc8('0x3f')][_0x7bc8('0x157')]();};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x158')]=function(_0x492b6a){logger[_0x7bc8('0x32')](util['format'](_0x7bc8('0x159'),_0x492b6a['label']));if(!this['isConfigured'](_0x492b6a[_0x7bc8('0x81')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0xef'));}var _0x2bf158=_0x7bc8('0x13a');var _0x111d50=util[_0x7bc8('0x2d')]('%s/recordings/%s',FILES_PATH,rs[_0x7bc8('0x121')](0x4));var _0xfaa5cd=util[_0x7bc8('0x2d')]('%s.%s',_0x111d50,_0x2bf158);var _0x5ecf7d=!![];if(_0x492b6a[_0x7bc8('0x13c')]==='NOBEEP'){_0x5ecf7d=![];}var _0x3413c4=this[_0x7bc8('0x3f')]['recordFile'](_0x111d50,_0x2bf158,_0x492b6a['intKey'],_0x492b6a[_0x7bc8('0x6c')],undefined,_0x5ecf7d);if(_0x3413c4[_0x7bc8('0xaa')]!==-0x1){this[_0x7bc8('0x3f')]['noop'](util[_0x7bc8('0x2d')](_0x7bc8('0x15a'),_0xfaa5cd));var _0x1fdf6c=this[_0x7bc8('0x8a')]['sync'](this,_0x492b6a,_0xfaa5cd);if(_0x1fdf6c){for(var _0x500c08 in _0x1fdf6c){if(_0x1fdf6c[_0x7bc8('0xa0')](_0x500c08)){this[_0x7bc8('0x3f')][_0x7bc8('0xa6')](util[_0x7bc8('0x2d')]('ISPEECH_ASR_%s',_0x500c08[_0x7bc8('0x71')]()),_0x1fdf6c[_0x500c08]);}}return this['channel'][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x15b'),JSON[_0x7bc8('0x7a')](_0x1fdf6c)));}}return _0x3413c4;};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x15c')]=function(_0x1390e0){logger['info'](util['format'](_0x7bc8('0x15d'),_0x1390e0['label']));if(!this[_0x7bc8('0x8c')](_0x1390e0[_0x7bc8('0x81')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0xef'));}if(!this[_0x7bc8('0x8c')](_0x1390e0['text'])){return this[_0x7bc8('0x3f')]['noop'](_0x7bc8('0xb0'));}this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x15e'),_0x1390e0[_0x7bc8('0x62')]));var _0x96d7b6=this[_0x7bc8('0x88')][_0x7bc8('0xad')](this,_0x1390e0);if(_0x96d7b6){this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x15a'),_0x96d7b6));var _0x13fa38=this[_0x7bc8('0x3f')][_0x7bc8('0x108')](_0x96d7b6,_0x1390e0['intKey']);try{fs['unlink'](_0x96d7b6+_0x7bc8('0x109'));}catch(_0x2c7634){logger['error'](_0x2c7634);}return _0x13fa38;}return this['channel']['error'](_0x1390e0,_0x7bc8('0x15f'));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x160')]=function(_0x333596){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')]('Enter\x20in\x20LOGIN\x20(%s)\x20block',_0x333596[_0x7bc8('0x3d')]));if(!this['isConfigured'](_0x333596[_0x7bc8('0x161')])){return this[_0x7bc8('0x3f')]['error'](_0x333596,_0x7bc8('0x162'));}logger[_0x7bc8('0x32')](util['format'](_0x7bc8('0x163'),this[_0x7bc8('0x3f')][_0x7bc8('0x41')],_0x333596[_0x7bc8('0x161')]));var _0x22152c=this[_0x7bc8('0x5a')][_0x7bc8('0xad')](this,_0x333596[_0x7bc8('0x161')]);if(_0x22152c){logger[_0x7bc8('0x32')](util['format'](_0x7bc8('0x164'),this[_0x7bc8('0x3f')][_0x7bc8('0x41')],_0x333596['findBy']));this['channel'][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x164'),this[_0x7bc8('0x3f')][_0x7bc8('0x41')],_0x333596['findBy']));return{'code':0xc8,'result':_0x7bc8('0x165')};}else{logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x166'),this['channel'][_0x7bc8('0x41')],_0x333596[_0x7bc8('0x161')]));this[_0x7bc8('0x3f')]['noop'](util[_0x7bc8('0x2d')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0x7bc8('0x3f')]['callerid'],_0x333596[_0x7bc8('0x161')]));return{'code':0xc8,'result':'failure'};}};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x167')]=function(_0x51b868){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')]('Enter\x20in\x20LOGOUT\x20(%s)\x20block',_0x51b868[_0x7bc8('0x3d')]));if(!this['isConfigured'](_0x51b868[_0x7bc8('0x161')])){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x51b868,_0x7bc8('0x162'));}logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x163'),this['channel'][_0x7bc8('0x41')],_0x51b868[_0x7bc8('0x161')]));var _0x573759=this[_0x7bc8('0x59')][_0x7bc8('0xad')](this,_0x51b868['findBy']);if(_0x573759){logger['info'](util[_0x7bc8('0x2d')](_0x7bc8('0x164'),this[_0x7bc8('0x3f')][_0x7bc8('0x41')],_0x51b868[_0x7bc8('0x161')]));this[_0x7bc8('0x3f')]['noop'](util[_0x7bc8('0x2d')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x7bc8('0x3f')]['callerid'],_0x51b868[_0x7bc8('0x161')]));return{'code':0xc8,'result':_0x7bc8('0x165')};}else{logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x166'),this[_0x7bc8('0x3f')][_0x7bc8('0x41')],_0x51b868[_0x7bc8('0x161')]));this['channel']['noop'](util[_0x7bc8('0x2d')](_0x7bc8('0x166'),this[_0x7bc8('0x3f')][_0x7bc8('0x41')],_0x51b868[_0x7bc8('0x161')]));return{'code':0xc8,'result':'failure'};}};AGIVertices['prototype'][_0x7bc8('0x168')]=function(_0x42f55e){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x169'),_0x42f55e[_0x7bc8('0x3d')]));if(!this['isConfigured'](_0x42f55e[_0x7bc8('0x16a')])){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x42f55e,_0x7bc8('0x16b'));}this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x16c'),_0x42f55e[_0x7bc8('0x16a')]));var _0x230493=eval(_0x42f55e[_0x7bc8('0x16a')]);if(!this[_0x7bc8('0x8c')](_0x42f55e['variable_id'])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0xdc'));}var _0x567f29=this['getVariable'][_0x7bc8('0xad')](this,_0x42f55e['variable_id']);if(!_0x567f29){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x42f55e,_0x7bc8('0x11f'));}if(_['isArray'](_0x230493)){var _0xd902cb=this;_0x230493[_0x7bc8('0xde')](function(_0x47d48b,_0x18f0a8){_0xd902cb[_0x7bc8('0x3f')][_0x7bc8('0xa6')](util[_0x7bc8('0x2d')](_0x7bc8('0x16d'),_0x567f29,_0x18f0a8),_0x47d48b);});return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x16e'),_0x567f29));}else{return this['channel'][_0x7bc8('0xa6')](_0x567f29,_0x230493);}};AGIVertices[_0x7bc8('0x10')]['menu']=function(_0x26c494){logger[_0x7bc8('0x32')](util['format'](_0x7bc8('0x16f'),_0x26c494[_0x7bc8('0x3d')]));if(_0x26c494['retry']===0x0){return this[_0x7bc8('0xac')](_0x26c494);}_0x26c494['retry']-=0x1;if(!this[_0x7bc8('0x8c')](_0x26c494[_0x7bc8('0x117')])){return this[_0x7bc8('0x3f')]['error'](_0x26c494,_0x7bc8('0x118'));}var _0x2aa3ac=this['getSound'][_0x7bc8('0xad')](this,_0x26c494[_0x7bc8('0x117')]);if(!_0x2aa3ac){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x26c494,_0x7bc8('0x119'));}var _0x47a33f=this[_0x7bc8('0x3f')]['getData'](_0x2aa3ac,_0x26c494[_0x7bc8('0x170')],_0x26c494[_0x7bc8('0x171')]);var _0x59965e=_0x47a33f[_0x7bc8('0xaa')];if(_0x47a33f[_0x7bc8('0xaa')]===-0x1){this[_0x7bc8('0x3b')]['sync'](this,_0x26c494,'-1');return _0x47a33f;}else if(_0x47a33f[_0x7bc8('0xa8')]===_0x7bc8('0x6c')){_0x47a33f['result']=_0x47a33f['result'][_0x7bc8('0xa5')]>0x0?_0x47a33f[_0x7bc8('0xaa')]:'t';}else if(_['isEmpty'](_0x47a33f['result'])){_0x47a33f[_0x7bc8('0xaa')]='#';_0x59965e='#';}if(!this[_0x7bc8('0x8c')](_0x26c494[_0x7bc8('0xdd')])){this['channel'][_0x7bc8('0xb2')](_0x7bc8('0xdc'));}else{var _0x28bcf9=this[_0x7bc8('0x11')][_0x7bc8('0xad')](this,_0x26c494[_0x7bc8('0xdd')]);if(!_0x28bcf9){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x26c494,_0x7bc8('0x11f'));}this[_0x7bc8('0x3f')][_0x7bc8('0xa6')](_0x28bcf9,_0x59965e);}this['createSquareDetailsReport'][_0x7bc8('0xad')](this,_0x26c494,_0x59965e);return _0x47a33f;};AGIVertices[_0x7bc8('0x10')]['noop']=function(_0x4be3bd){logger[_0x7bc8('0x32')](util['format'](_0x7bc8('0x172'),_0x4be3bd['label']));return this['channel']['noop'](_0x4be3bd[_0x7bc8('0x173')]||_0x4be3bd['label']);};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x174')]=function(_0x13b4f1){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x175'),_0x13b4f1['label']));if(!this[_0x7bc8('0x8c')](_0x13b4f1[_0x7bc8('0x161')])){return this['channel']['error'](_0x13b4f1,_0x7bc8('0x162'));}logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')]('FIND\x20AGENT\x20%s\x20BY\x20%s',this['channel'][_0x7bc8('0x41')],_0x13b4f1[_0x7bc8('0x161')]));var _0x5839a3=this[_0x7bc8('0x54')][_0x7bc8('0xad')](this,_0x13b4f1['pause_id']);var _0x21b7fe=this[_0x7bc8('0x56')][_0x7bc8('0xad')](this,_0x13b4f1['findBy'],_0x5839a3);if(_0x21b7fe){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x7bc8('0x3f')][_0x7bc8('0x41')],_0x13b4f1[_0x7bc8('0x161')]));this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x164'),this[_0x7bc8('0x3f')]['callerid'],_0x13b4f1[_0x7bc8('0x161')]));return{'code':0xc8,'result':'success'};}else{logger[_0x7bc8('0x32')](util['format']('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0x7bc8('0x3f')][_0x7bc8('0x41')],_0x13b4f1['findBy']));this[_0x7bc8('0x3f')]['noop'](util['format']('AGENT\x20%s\x20FOUND\x20BY',this['channel'][_0x7bc8('0x41')],_0x13b4f1[_0x7bc8('0x161')]));return{'code':0xc8,'result':_0x7bc8('0x176')};}};AGIVertices['prototype'][_0x7bc8('0x177')]=function(_0x3b25aa){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x178'),_0x3b25aa[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x3b25aa[_0x7bc8('0x117')])){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x3b25aa,'no\x20file\x20audio\x20selected');}var _0x3f8b02=this['getSound'][_0x7bc8('0xad')](this,_0x3b25aa[_0x7bc8('0x117')]);if(!_0x3f8b02){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x3b25aa,_0x7bc8('0x119'));}var _0x5764a4=this[_0x7bc8('0x3f')][_0x7bc8('0xc9')](_0x7bc8('0x179'),[_0x3f8b02,_0x3b25aa['opts']]);if(_0x5764a4[_0x7bc8('0xaa')]===-0x1){return _0x5764a4;}return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')]('Executed\x20command\x20%s\x20%s',_0x7bc8('0x179'),_0x3f8b02));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x17a')]=function(_0x58d218){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x17b'),_0x58d218[_0x7bc8('0x3d')]));if(!this['isConfigured'](_0x58d218[_0x7bc8('0x17c')])){return this[_0x7bc8('0x3f')]['error'](_0x58d218,'no\x20queue\x20selected');}var _0x12eafe='';var _0x3994fa=parseInt(_0x58d218[_0x7bc8('0x17c')],0xa);if(isNaN(_0x3994fa)){_0x12eafe=_0x58d218[_0x7bc8('0x17c')];}else{_0x12eafe=this[_0x7bc8('0x16')]['sync'](this,_0x58d218[_0x7bc8('0x17c')]);if(!_0x12eafe){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x58d218,_0x7bc8('0x17d'));}}var _0x39489f='';if(this[_0x7bc8('0x8c')](_0x58d218[_0x7bc8('0x117')])){var _0x457c76=this[_0x7bc8('0x21')][_0x7bc8('0xad')](this,_0x58d218[_0x7bc8('0x117')]);if(_0x457c76){_0x39489f=_0x457c76;}}this[_0x7bc8('0x3b')][_0x7bc8('0xad')](this,_0x58d218,_0x12eafe);if(_0x58d218[_0x7bc8('0xea')][_0x7bc8('0x17e')]('x')<0x0){_0x58d218['opts']+='x';}if(_0x58d218[_0x7bc8('0xea')][_0x7bc8('0x17e')]('X')<0x0){_0x58d218['opts']+='X';}this[_0x7bc8('0x3f')][_0x7bc8('0xa6')]('XMCS-QUEUE',_0x12eafe?_0x12eafe[_0x7bc8('0x17f')]():'');var _0x33aa7a=this[_0x7bc8('0x3f')]['exec'](_0x7bc8('0x180'),[_0x12eafe,_0x58d218[_0x7bc8('0xea')],_0x58d218[_0x7bc8('0x6a')],_0x39489f,_0x58d218[_0x7bc8('0x6c')],_0x58d218[_0x7bc8('0x8')],_0x58d218['macro'],_0x58d218['gosub'],'',_0x58d218[_0x7bc8('0x181')]]);if(_0x33aa7a[_0x7bc8('0xaa')]===-0x1){return _0x33aa7a;}return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util['format'](_0x7bc8('0x182'),'QUEUE',_0x12eafe));};AGIVertices[_0x7bc8('0x10')]['record']=function(_0x2d8826){logger['info'](util[_0x7bc8('0x2d')](_0x7bc8('0x183'),_0x2d8826[_0x7bc8('0x3d')]));var _0x15233b=_0x2d8826[_0x7bc8('0x184')]||'wav';var _0x5e62ab=util[_0x7bc8('0x2d')](_0x7bc8('0x185'),this[_0x7bc8('0x3f')][_0x7bc8('0x3c')],rs[_0x7bc8('0x121')](0x5));var _0x188a14=util[_0x7bc8('0x2d')](_0x7bc8('0x186'),FILES_PATH,_0x5e62ab,_0x15233b);var _0x1041d0=util['format'](_0x7bc8('0x13b'),FILES_PATH,_0x5e62ab);this[_0x7bc8('0x42')]['sync'](this,_0x2d8826,_0x5e62ab,_0x188a14);this[_0x7bc8('0x3f')][_0x7bc8('0xa6')](_0x7bc8('0x187'),_0x5e62ab);logger['info'](_0x7bc8('0x188'),_0x1041d0,_0x15233b,_0x2d8826[_0x7bc8('0x189')],_0x2d8826[_0x7bc8('0x6c')]);return this['channel'][_0x7bc8('0x13d')](_0x1041d0,_0x15233b,_0x2d8826[_0x7bc8('0x189')],_0x2d8826[_0x7bc8('0x6c')],undefined,!![]);};AGIVertices[_0x7bc8('0x10')]['restapi']=function(_0xf27a4d){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')]('Enter\x20in\x20RESTAPI\x20(%s)\x20block',_0xf27a4d[_0x7bc8('0x3d')]));if(!this['isConfigured'](_0xf27a4d[_0x7bc8('0x6a')])){return this['channel'][_0x7bc8('0xb2')]('no\x20url\x20configured');}var _0x50d0e3=this[_0x7bc8('0x18a')][_0x7bc8('0xad')](this,_0xf27a4d);logger['info'](util[_0x7bc8('0x2d')](_0x7bc8('0x18b'),util[_0x7bc8('0x18c')](_0x50d0e3,{'showHidden':![],'depth':null})));if(!this[_0x7bc8('0x8c')](_0xf27a4d['variable_id'])){return this['channel'][_0x7bc8('0xb2')](_0x7bc8('0x18d'));}var _0x2ca8eb=this[_0x7bc8('0x11')][_0x7bc8('0xad')](this,_0xf27a4d['variable_id']);if(!_0x2ca8eb){return this[_0x7bc8('0x3f')]['error'](_0xf27a4d,_0x7bc8('0x11f'));}this[_0x7bc8('0x3f')]['setVariable'](util[_0x7bc8('0x2d')](_0x7bc8('0x18e'),_0x2ca8eb),_0x50d0e3[_0x7bc8('0x7c')]?_0x50d0e3[_0x7bc8('0x7c')]:_0x7bc8('0x18f'));this[_0x7bc8('0x3f')][_0x7bc8('0xa6')](util[_0x7bc8('0x2d')]('%s_STATUS_MESSAGE',_0x2ca8eb),_0x50d0e3[_0x7bc8('0x7d')]?_0x50d0e3[_0x7bc8('0x7d')]:'OK');if(_0x50d0e3[_0x7bc8('0x7b')]){try{this[_0x7bc8('0xa3')](_0x50d0e3['body'],_0x2ca8eb);}catch(_0x19f9c4){logger[_0x7bc8('0x30')](util['format'](_0x7bc8('0x190'),_0x2ca8eb));}}return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0xe2'),_0x2ca8eb));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x191')]=function(_0x2b5972){logger['info'](util[_0x7bc8('0x2d')]('Enter\x20in\x20SAYDIGITS\x20(%s)\x20block',_0x2b5972['label']));return this[_0x7bc8('0x3f')][_0x7bc8('0x192')](_0x2b5972[_0x7bc8('0x193')][_0x7bc8('0x5f')](/\s+/g,''),_0x2b5972[_0x7bc8('0x189')]);};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x194')]=function(_0x44ae88){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x195'),_0x44ae88[_0x7bc8('0x3d')]));return this[_0x7bc8('0x3f')][_0x7bc8('0x196')](_0x44ae88[_0x7bc8('0x6d')][_0x7bc8('0x5f')](/\s+/g,''),_0x44ae88['escape_digits']);};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x197')]=function(_0x7cb5a3){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x198'),_0x7cb5a3[_0x7bc8('0x3d')]));return this[_0x7bc8('0x3f')][_0x7bc8('0x199')](_0x7cb5a3[_0x7bc8('0x62')],_0x7cb5a3['escape_digits']);};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x19a')]=function(_0x2d4f77){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x19b'),_0x2d4f77[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x2d4f77[_0x7bc8('0x19c')])){return this['channel']['noop'](_0x7bc8('0x19d'));}var _0x6d498c=this[_0x7bc8('0x24')]['sync'](this,_0x2d4f77[_0x7bc8('0x19c')]);if(!_0x6d498c||!_0x6d498c[_0x7bc8('0x19e')]){return this[_0x7bc8('0x3f')]['error'](_0x2d4f77,_0x7bc8('0x19f'));}var _0x12215c={'from':util[_0x7bc8('0x2d')]('\x22%s\x22\x20<%s>',_0x6d498c['name'],_0x6d498c[_0x7bc8('0x1a0')]||_0x6d498c[_0x7bc8('0x19e')][_0x7bc8('0x1a1')]),'to':_0x2d4f77['to']||'','cc':_0x2d4f77['cc']||'','bcc':_0x2d4f77['bcc']||'','subject':_0x2d4f77[_0x7bc8('0x1a2')],'html':_0x2d4f77[_0x7bc8('0x62')],'text':_0x2d4f77[_0x7bc8('0x62')]};var _0x1055b1={'tls':{'rejectUnauthorized':![]}};if(_0x6d498c['Smtp']['service']){_0x1055b1['service']=_0x6d498c[_0x7bc8('0x19e')][_0x7bc8('0x1a3')];}else{_0x1055b1['host']=_0x6d498c[_0x7bc8('0x19e')][_0x7bc8('0x1a4')];_0x1055b1['port']=_0x6d498c['Smtp'][_0x7bc8('0x1a5')];_0x1055b1[_0x7bc8('0x1a6')]=_0x6d498c[_0x7bc8('0x19e')][_0x7bc8('0x1a6')];}if(_0x6d498c[_0x7bc8('0x19e')][_0x7bc8('0x1a7')]){_0x1055b1[_0x7bc8('0x1a8')]={'user':_0x6d498c['Smtp'][_0x7bc8('0x1a1')],'pass':_0x6d498c[_0x7bc8('0x19e')][_0x7bc8('0x1a9')]};}if(this[_0x7bc8('0x8c')](_0x2d4f77[_0x7bc8('0x1aa')])){}logger[_0x7bc8('0xe4')]('sendMail\x20message',JSON[_0x7bc8('0x7a')](_0x12215c));this[_0x7bc8('0x3b')][_0x7bc8('0xad')](this,_0x2d4f77,_0x2d4f77[_0x7bc8('0x19c')]);this['channel'][_0x7bc8('0xb2')](util['format'](_0x7bc8('0x1ab'),_0x6d498c['name']));this[_0x7bc8('0x26')][_0x7bc8('0xad')](this,_0x1055b1,_0x12215c);return this[_0x7bc8('0x3f')]['noop'](_0x7bc8('0x1ac'));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x1ad')]=function(_0x25f4dd){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x1ae'),_0x25f4dd[_0x7bc8('0x3d')]));return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0x1af'));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x1b0')]=function(_0x4b8379){logger['info'](util[_0x7bc8('0x2d')](_0x7bc8('0x1b1'),_0x4b8379[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x4b8379[_0x7bc8('0x1b2')])){return this['channel'][_0x7bc8('0xb2')](_0x7bc8('0x1b3'));}var _0x46fa85=this[_0x7bc8('0x38')][_0x7bc8('0xad')](this,_0x4b8379[_0x7bc8('0x1b2')]);if(!_0x46fa85){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x4b8379,_0x7bc8('0x1b4'));}var _0x2ba751={'body':_0x4b8379[_0x7bc8('0x1b5')],'phone':_0x4b8379['to']||'','SmsAccountId':_0x46fa85['id']};logger['debug']('sendSMS\x20message',JSON[_0x7bc8('0x7a')](_0x2ba751));this[_0x7bc8('0x3b')][_0x7bc8('0xad')](this,_0x4b8379,_0x4b8379[_0x7bc8('0x1b2')]);this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x1b6'),_0x46fa85['name']));this[_0x7bc8('0x3a')][_0x7bc8('0xad')](this,_0x2ba751);return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0x1b7'));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x1b8')]=function(_0x1e135a){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x1b9'),_0x1e135a[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x1e135a['variable_id'])){return this['channel'][_0x7bc8('0x30')](_0x1e135a,_0x7bc8('0x1ba'));}var _0x3727b1=this[_0x7bc8('0x11')][_0x7bc8('0xad')](this,_0x1e135a[_0x7bc8('0xdd')]);if(!_0x3727b1){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x1e135a,_0x7bc8('0x11f'));}return this[_0x7bc8('0x3f')][_0x7bc8('0xa6')](_0x3727b1,_0x1e135a['variable_value']);};AGIVertices['prototype']['start']=function(_0x47fd5b){logger[_0x7bc8('0x32')](util['format'](_0x7bc8('0x1bb'),_0x47fd5b[_0x7bc8('0x3d')]));this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0x1bc'));if(_0x47fd5b['answer']===_0x7bc8('0x1bd')){this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0x1be'));return this[_0x7bc8('0x3f')][_0x7bc8('0xbf')]();}return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0x1bf'));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x1c0')]=function(_0x38ffb8){logger[_0x7bc8('0x32')](util['format'](_0x7bc8('0x1c1'),_0x38ffb8[_0x7bc8('0x3d')]));if(!this['isConfigured'](_0x38ffb8[_0x7bc8('0x1c2')])){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x38ffb8,'no\x20subproject\x20selected');}var _0x2dfb63=this[_0x7bc8('0x18')][_0x7bc8('0xad')](this,_0x38ffb8[_0x7bc8('0x1c2')]);if(!this[_0x7bc8('0x8c')](_0x2dfb63)){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x38ffb8,util[_0x7bc8('0x2d')](_0x7bc8('0x1c3'),_0x38ffb8[_0x7bc8('0x1c2')]));}if(_0x2dfb63===this[_0x7bc8('0x3f')][_0x7bc8('0x40')]){return this['channel']['error'](_0x38ffb8,_0x7bc8('0x1c4'));}this[_0x7bc8('0x3b')][_0x7bc8('0xad')](this,_0x38ffb8,_0x2dfb63);var _0xfb9b6a=this['channel'][_0x7bc8('0xc9')](_0x7bc8('0x1c5'),util[_0x7bc8('0x2d')]('agi://%s/square,\x22%s\x22,\x22%s\x22',config[_0x7bc8('0x8')]['host']||'127.0.0.1',_0x2dfb63,this['channel'][_0x7bc8('0x40')]));if(_0xfb9b6a[_0x7bc8('0xaa')]===-0x1){return _0xfb9b6a;}return this[_0x7bc8('0x3f')]['noop'](util[_0x7bc8('0x2d')](_0x7bc8('0x182'),_0x7bc8('0x1c5'),_0x2dfb63));};AGIVertices[_0x7bc8('0x10')]['system']=function(_0x1e7ab6){logger['info'](util[_0x7bc8('0x2d')](_0x7bc8('0x1c6'),_0x1e7ab6[_0x7bc8('0x3d')]));var _0x3137d1=this[_0x7bc8('0x5d')]['sync'](this,_0x1e7ab6[_0x7bc8('0xbd')]);this[_0x7bc8('0x3b')][_0x7bc8('0xad')](this,_0x1e7ab6,_0x1e7ab6['command']);if(this[_0x7bc8('0x8c')](_0x1e7ab6[_0x7bc8('0xdd')])){var _0x25fb68=this['getVariable'][_0x7bc8('0xad')](this,_0x1e7ab6[_0x7bc8('0xdd')]);if(_0x25fb68){this[_0x7bc8('0x3f')][_0x7bc8('0xa6')](_0x25fb68,_0x3137d1);return this['channel'][_0x7bc8('0xb2')](util['format'](_0x7bc8('0x1c7'),_0x1e7ab6[_0x7bc8('0xbd')],_0x25fb68));}}return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x1c8'),_0x1e7ab6[_0x7bc8('0xbd')]));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x1c9')]=function(_0xe227ad){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x1ca'),_0xe227ad[_0x7bc8('0x3d')]));_0xe227ad[_0x7bc8('0x62')]=_0xe227ad['text'][_0x7bc8('0x5f')](/(\r\n|\n|\r)/gm,'\x20');if(!this['isConfigured'](_0xe227ad['apiKey'])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0x1cb'));}if(!this[_0x7bc8('0x8c')](_0xe227ad['text'])){return this[_0x7bc8('0x3f')]['noop'](_0x7bc8('0xb0'));}this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x1cc'),_0xe227ad[_0x7bc8('0x62')]));var _0x4930c3=this[_0x7bc8('0x60')][_0x7bc8('0xad')](this,_0xe227ad);if(_0x4930c3){this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x1cd'),_0x4930c3));var _0x539bc5=this['channel']['streamFile'](_0x4930c3);try{fs[_0x7bc8('0x12d')](_0x4930c3+_0x7bc8('0x109'));}catch(_0x2a2691){logger[_0x7bc8('0x30')](_0x2a2691);}return _0x539bc5;}return this[_0x7bc8('0x3f')]['error'](_0xe227ad,_0x7bc8('0x1ce'));};AGIVertices['prototype'][_0x7bc8('0x1cf')]=function(_0x46812d){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')]('Enter\x20in\x20GOOGLETTS\x20(%s)\x20block',_0x46812d[_0x7bc8('0x3d')]));_0x46812d[_0x7bc8('0x62')]=_0x46812d[_0x7bc8('0x62')]['replace'](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0x7bc8('0x8c')](_0x46812d[_0x7bc8('0x62')])){return this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](_0x7bc8('0xb0'));}this['channel'][_0x7bc8('0xb2')](util['format']('Trying\x20Google\x20TTS\x20%s',_0x46812d[_0x7bc8('0x62')]));var _0x68e422=this[_0x7bc8('0x68')][_0x7bc8('0xad')](this,_0x46812d);if(_0x68e422){this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')]('Google\x20TTS\x20%s\x20file\x20created',_0x68e422));var _0x3f4997=this[_0x7bc8('0x3f')]['streamFile'](_0x68e422);try{fs[_0x7bc8('0x12d')](_0x68e422+_0x7bc8('0x109'));}catch(_0x5731e8){logger[_0x7bc8('0x30')](_0x5731e8);}return _0x3f4997;}return this['channel'][_0x7bc8('0x30')](_0x46812d,_0x7bc8('0x1d0'));};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x1d1')]=function(_0x2a96a1){logger['info'](util[_0x7bc8('0x2d')](_0x7bc8('0x1d2'),_0x2a96a1[_0x7bc8('0x3d')]));if(!this['isConfigured'](_0x2a96a1['findBy'])){return this['channel']['error'](_0x2a96a1,'no\x20find\x20by\x20configured');}logger['info'](util[_0x7bc8('0x2d')](_0x7bc8('0x163'),this[_0x7bc8('0x3f')]['callerid'],_0x2a96a1['findBy']));var _0xf39648=this[_0x7bc8('0x58')][_0x7bc8('0xad')](this,_0x2a96a1['findBy']);if(_0xf39648){logger['info'](util['format'](_0x7bc8('0x164'),this['channel']['callerid'],_0x2a96a1[_0x7bc8('0x161')]));this['channel']['noop'](util[_0x7bc8('0x2d')](_0x7bc8('0x164'),this[_0x7bc8('0x3f')][_0x7bc8('0x41')],_0x2a96a1[_0x7bc8('0x161')]));return{'code':0xc8,'result':'success'};}else{logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x166'),this[_0x7bc8('0x3f')][_0x7bc8('0x41')],_0x2a96a1[_0x7bc8('0x161')]));this[_0x7bc8('0x3f')][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x166'),this[_0x7bc8('0x3f')][_0x7bc8('0x41')],_0x2a96a1[_0x7bc8('0x161')]));return{'code':0xc8,'result':_0x7bc8('0x176')};}};AGIVertices[_0x7bc8('0x10')][_0x7bc8('0x1d3')]=function(_0xed55df){logger['info'](util[_0x7bc8('0x2d')](_0x7bc8('0x1d4'),_0xed55df['label']));var _0x2499c1=this[_0x7bc8('0x3f')][_0x7bc8('0xc9')](_0x7bc8('0x1d5'),[_0xed55df[_0x7bc8('0x1d6')],_0xed55df[_0x7bc8('0x7f')]]);if(_0x2499c1['result']===-0x1){return _0x2499c1;}return this['channel'][_0x7bc8('0xb2')](util[_0x7bc8('0x2d')](_0x7bc8('0x182'),'VOICEMAIL',_0xed55df['mailbox']));};AGIVertices['prototype'][_0x7bc8('0x1d7')]=function(_0x51b8e1){logger[_0x7bc8('0x32')](util[_0x7bc8('0x2d')](_0x7bc8('0x1d8'),_0x51b8e1[_0x7bc8('0x3d')]));if(!this[_0x7bc8('0x8c')](_0x51b8e1[_0x7bc8('0xdd')])){return this[_0x7bc8('0x3f')]['error'](_0x51b8e1,_0x7bc8('0x1ba'));}var _0x2de0b8=this[_0x7bc8('0x11')][_0x7bc8('0xad')](this,_0x51b8e1[_0x7bc8('0xdd')]);if(!_0x2de0b8){return this[_0x7bc8('0x3f')][_0x7bc8('0x30')](_0x51b8e1,_0x7bc8('0x11f'));}var _0x3d4476=this[_0x7bc8('0x3f')][_0x7bc8('0x11')](_0x2de0b8);return{'code':0xc8,'result':_0x3d4476['extra']?_0x3d4476[_0x7bc8('0xa8')]:'-'};};String[_0x7bc8('0x10')][_0x7bc8('0x1d9')]=function(_0x38ccea,_0x2d1748){return this[_0x7bc8('0xa7')](_0x38ccea)[_0x7bc8('0x1da')](_0x2d1748);};module['exports']=AGIVertices;
\ No newline at end of file
+var _0xac76=['delay','minutes','custom_app','Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block','Executed\x20command\x20%s\x20%s','application','lumenvoxtts','Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block','Enter\x20in\x20SESTEKTTS\x20(%s)\x20block','lumenvoxasr','Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block','RECOG_CONFIDENCE()','LUMENVOX_ASR_CONFIDENCE','RECOG_INPUT()','RECOG_INSTANCE()','LUMENVOX_ASR_INSTANCE','sestekasr','SESTEK_ASR_CONFIDENCE','SESTEK_ASR_TRANSCRIPT','Enter\x20in\x20DATABASE\x20(%s)\x20block','odbc_id','getSquareOdbc','no\x20odbc\x20database\x20found','variable_id','keys','forEach','%s[%s][%s]','variable\x20%s\x20set','Enter\x20in\x20DIAL\x20(%s)\x20block','sip_id','no\x20user\x20selected','no\x20user\x20found','DIAL','SIP/%s','opts','Executed\x20command\x20%s','dialogflow','Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block','no\x20key\x20configured','bot','Trying\x20Dialogflow:\x20%s','DIALOGFLOW_%s','speech','out','Dialogflow\x20Result\x20%s','Dialogflow\x20is\x20unreachable','dialogflowV2','Enter\x20in\x20DIALOGFLOW\x20V2\x20(%s)\x20block','no\x20project_id\x20configured','no\x20client_email\x20configured','no\x20private_key\x20configured','DialogflowV2\x20Result\x20%s','DialogflowV2\x20is\x20unreachable','sesteknda','Enter\x20in\x20SESTEKNDA\x20(%s)\x20block','ndauth_url','username','no\x20username\x20configured','password','no\x20password\x20configured','Trying\x20SestekNDA:\x20%s','SESTEK_NDA_%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','Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block','trunk_id','no\x20trunk\x20selected','trunk_name','SIP/%s/%s','finally','Enter\x20in\x20FINALLY\x20(%s)\x20block','Enter\x20in\x20GETDIGITS\x20(%s)\x20block','file_id','no\x20file\x20audio\x20selected','no\x20file\x20audio\x20found','no\x20variable\x20selected\x20for\x20the\x20result','getData','response','maxdigit','test','mindigit','hiddendigitsnum','generate','hiddendigitspos','first','substr','Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block','goal','Enter\x20in\x20GOAL\x20(%s)\x20block','GOAL\x20%s','goalname','[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block','aws_secret_access_key','no\x20valid\x20credentials\x20configured','aws\x20Polly\x20%s\x20file\x20created','aws\x20Polly\x20is\x20unreachable','awslex','Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block','aws_bot_name','no\x20bot\x20name\x20configured','Trying\x20Amazon\x20Lex:\x20%s','AWS_LEX_%s','Amazon\x20Lex\x20ready\x20for\x20fulfillment','amazonlex','Amazon\x20Lex\x20Result\x20%s','Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s','wav','beep','NOBEEP','recordFile','google\x20%s\x20file\x20created','GOOGLE_ASR_%s','GoogleASR\x20Result\x20%s','tildeasr','Enter\x20in\x20TILDEASR\x20(%s)\x20block','appid','no\x20appid\x20configured','no\x20appsecret\x20configured','tilde\x20%s\x20file\x20created','TILDE_ASR_%s','TildeASR\x20Result\x20%s','gotoc','Enter\x20in\x20GOTO\x20(%s)\x20block','continueAt','context','gotoif','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','no\x20condition\x20configured','true','EVAL\x20CONDITION\x20%s\x20%s','false','gotoiftime','Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block','interval_id','no\x20intervals\x20found','IFTIME\x20%s\x20%s','hangup','Enter\x20in\x20HANGUP\x20(%s)\x20block','ispeechasr','%s/recordings/%s','ispeech\x20%s\x20file\x20created','ISPEECH_ASR_%s','IspeechASR\x20Result\x20%s','Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block','Trying\x20ispeech\x20TTS\x20%s','intKey','ispeech\x20TTS\x20is\x20unreachable','Enter\x20in\x20LOGIN\x20(%s)\x20block','no\x20find\x20by\x20configured','FIND\x20AGENT\x20%s\x20BY\x20%s','findBy','AGENT\x20%s\x20FOUND\x20BY','success','AGENT\x20%s\x20NOT\x20FOUND\x20BY','logout','Enter\x20in\x20LOGOUT\x20(%s)\x20block','failure','no\x20operation\x20configured','math\x20%s','no\x20variable\x20found','%s[%s]','menu','Enter\x20in\x20MENU\x20(%s)\x20block','getSound','Enter\x20in\x20NOOP\x20(%s)\x20block','pause','Enter\x20in\x20PAUSE\x20(%s)\x20block','pause_id','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','gosub','position','QUEUE','Enter\x20in\x20RECORD\x20(%s)\x20block','%s_%s','%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','restAPI','no\x20variable\x20selected\x20for\x20the\x20response','200','%s_STATUS_MESSAGE','Unable\x20to\x20set\x20result\x20in\x20variable\x20%s','sayDigits','digits','sayphonetic','Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block','sayPhonetic','sendMail','Enter\x20in\x20SENDMAIL\x20(%s)\x20block','no\x20mail\x20account\x20configured','account_id','Smtp','\x22%s\x22\x20<%s>','email','user','bcc','service','host','port','secure','auth','pass','sendMail\x20message','Trying\x20SendMail\x20with\x20account\x20%s','Mail\x20message\x20added\x20to\x20outgoing\x20process','sendFax','SENDFAX\x20block\x20not\x20implemented','sendSMS','Enter\x20in\x20SENDSMS\x20(%s)\x20block','no\x20sms\x20account\x20configured','sms_account_id','no\x20sms\x20account\x20found','sms_text','debug','sendSMS\x20message','Trying\x20SendSMS\x20with\x20account\x20%s','createSmsMessage','Sms\x20message\x20added\x20to\x20outgoing\x20process','set','Enter\x20in\x20SET\x20(%s)\x20block','variable_value','start','START\x20CALLY\x20SQUARE','yes','Answer','Enter\x20in\x20SUBPROJECT\x20(%s)\x20block','project_id','no\x20subproject\x20selected','getSquareProject','project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project','AGI','agi://%s/square,\x22%s\x22,\x22%s\x22','127.0.0.1','Enter\x20in\x20SYSTEM\x20(%s)\x20block','sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s','Trying\x20Google\x20Cloud\x20TTS\x20%s','Google\x20Cloud\x20TTS\x20%s\x20file\x20created','tts','Trying\x20Google\x20TTS\x20%s','Google\x20TTS\x20%s\x20file\x20created','unpause','Enter\x20in\x20UNPAUSE\x20(%s)\x20block','voicemail','VOICEMAIL','mailbox','vswitch','Enter\x20in\x20SWITCH\x20(%s)\x20block','no\x20variable\x20selected','exports','path','lodash','odbc','randomstring','moment','mustache','../../config/environment','./scripts','/var/opt/motion2/server/files','getdigits','getsecretdigits','channel','mailRpc','prototype','getVariable','rpc','getVariableById','catch','getVoiceQueue','then','name','getSquareProjectById','getSquareOdbcById','dsn','getUser','getUserById','getTrunk','getTrunkById','getSoundPath','getMailAccount','sendMailMessage','getIntervals','getIntervalById','IntervalId','interval','map','Intervals','%s/sounds/converted/%s','getQueryOdbc','open','error','Error\x20getting\x20ODBC\x20connection\x20%s','info','ODBC\x20connection\x20successfully','query','close','Error\x20closing\x20connection\x20to\x20odbc\x20%s','getSmsAccount','getSmsAccountById','createSquareDetailsReport','uniqueid','label','arg_1','callerid','createSquareRecording','calleridname','extension','priority','accountcode','dnid','createSquareMessage','createCmContact','isEmpty','isNil','callback_','lastName','phone','list_id','scheduledAt','callback','toString','callback_priority','getPause','getPauseById','agentPause','agent','agentUnpause','agentLogout','agentLogin','format','%s/%s@from-sip/n','LOCAL','shellCommand','exec','trim','replace','googleCloudTTS','apiKey','text','ssmlGender','MALE','MP3','googleTTS','google_tts_language','method','timeout','number','includes','POST','PUT','toUpperCase','body','rawBody','An\x20incorrect\x20formatted\x20json\x20body\x20has\x20been\x20passed\x20to\x20the\x20function','headers','rawHeaders','parse','An\x20incorrect\x20formatted\x20json\x20headers\x20has\x20been\x20passed\x20to\x20the\x20function','computedVariables','sync','uri','render','url','stringify','An\x20incorrect\x20formatted\x20json\x20has\x20been\x20passed\x20to\x20the\x20function','statusMessage','statusCode','message','500\x20-\x20Internal\x20Server\x20Error','googleDialogflow','key','dialogflow_language','googleDialogflowV2','dialogflowV2_project_id','private_key','dialogflowV2_language','sestekNDA','ispeechTTS','ispeech_tts_language','en-US','speed','ispeechASR','model','awsPolly','aws_access_key_id','Amy','aws_lex_region','googleASR','tildeASR','appsecret','agicommand','clone','isString','replaceAllVariables','recursiveNodeIndex','isPlainObject','isArray','length','saveRestApiResult','hasOwnProperty','setVariable','%s.%s','replaceObjectAllVariables','split','replaceAll','extra','getAndSetVariable','The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s','isConfigured','maxRetry','retry','mrcpsynth','noop','no\x20text\x20configured','options','MRCPSynth','result','Executed\x20command\x20MRCPSynth\x20%s','mrcprecog','Enter\x20in\x20MRCPRecog\x20(%s)\x20block','no\x20grammar\x20configured','grammar','MRCPRecog','MRCP_RECOG_CONFIDENCE','MRCP_RECOG_TRANSCRIPT','MRCP_RECOG_INSTANCE','Executed\x20command\x20MRCPRecog\x20%s','Enter\x20in\x20AGI\x20(%s)\x20block','agi','command','args','answer','Enter\x20in\x20ANSWER\x20(%s)\x20block','Wait\x20%s\x20seconds\x20before\x20answer','wait','Enter\x20in\x20CALLBACK\x20(%s)\x20block','no\x20list\x20selected'];(function(_0x5793d5,_0x311565){var _0x4f9549=function(_0x1cecce){while(--_0x1cecce){_0x5793d5['push'](_0x5793d5['shift']());}};_0x4f9549(++_0x311565);}(_0xac76,0x10e));var _0x6ac7=function(_0x576c1e,_0x49c1d6){_0x576c1e=_0x576c1e-0x0;var _0x33a3c3=_0xac76[_0x576c1e];return _0x33a3c3;};'use strict';var fs=require('fs');var path=require(_0x6ac7('0x0'));var util=require('util');var _=require(_0x6ac7('0x1'));var sh=require('shelljs');var odbc=require(_0x6ac7('0x2'))();var rs=require(_0x6ac7('0x3'));var moment=require(_0x6ac7('0x4'));var Mustache=require(_0x6ac7('0x5'));var rp=require('request-promise');var logger=require('../../config/logger')('agi');var config=require(_0x6ac7('0x6'));var scripts=require(_0x6ac7('0x7'));var FILES_PATH=_0x6ac7('0x8');var recursiveMapAttributes=['rawHeaders','rawBody'];var verticesWithRetry=['menu',_0x6ac7('0x9'),_0x6ac7('0xa')];var AGIVertices=function(_0x1f0ac5,_0x215f30,_0x18a49d){this[_0x6ac7('0xb')]=_0x1f0ac5;this['rpc']=_0x215f30;this[_0x6ac7('0xc')]=_0x18a49d;};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0xe')]=function(_0x1cea8c,_0x1f5589){this[_0x6ac7('0xf')][_0x6ac7('0x10')](_0x1cea8c)['then'](function(_0x2793bf){_0x1f5589(null,_0x2793bf?_0x2793bf['name']:![]);})[_0x6ac7('0x11')](function(_0x2b7fca){_0x1f5589(_0x2b7fca);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x12')]=function(_0xc87a8e,_0x30421e){this[_0x6ac7('0xf')]['getVoiceQueueById'](_0xc87a8e)[_0x6ac7('0x13')](function(_0x2eb614){_0x30421e(null,_0x2eb614?_0x2eb614[_0x6ac7('0x14')]:![]);})[_0x6ac7('0x11')](function(_0x4a49c9){_0x30421e(_0x4a49c9);});};AGIVertices[_0x6ac7('0xd')]['getSquareProject']=function(_0x32e7fd,_0x56bd60){this[_0x6ac7('0xf')][_0x6ac7('0x15')](_0x32e7fd)['then'](function(_0x2c8695){_0x56bd60(null,_0x2c8695?_0x2c8695[_0x6ac7('0x14')]:![]);})[_0x6ac7('0x11')](function(_0x50714a){_0x56bd60(_0x50714a);});};AGIVertices[_0x6ac7('0xd')]['getSquareOdbc']=function(_0x2756e7,_0x59f84f){this[_0x6ac7('0xf')][_0x6ac7('0x16')](_0x2756e7)[_0x6ac7('0x13')](function(_0x1118c7){_0x59f84f(null,_0x1118c7?_0x1118c7[_0x6ac7('0x17')]:![]);})[_0x6ac7('0x11')](function(_0x5e7712){_0x59f84f(_0x5e7712);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x18')]=function(_0x4856d1,_0x2072be){this[_0x6ac7('0xf')][_0x6ac7('0x19')](_0x4856d1)[_0x6ac7('0x13')](function(_0x3362e9){_0x2072be(null,_0x3362e9?_0x3362e9[_0x6ac7('0x14')]:![]);})[_0x6ac7('0x11')](function(_0x4a8cb2){_0x2072be(_0x4a8cb2);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x1a')]=function(_0x238a3c,_0xe37921){this['rpc'][_0x6ac7('0x1b')](_0x238a3c)['then'](function(_0x124773){_0xe37921(null,_0x124773?_0x124773[_0x6ac7('0x14')]:![]);})[_0x6ac7('0x11')](function(_0xd80f6){_0xe37921(_0xd80f6);});};AGIVertices[_0x6ac7('0xd')]['getSound']=function(_0xef925e,_0x24e9d2){var _0x415079=this;this[_0x6ac7('0xf')]['getSoundById'](_0xef925e)[_0x6ac7('0x13')](function(_0x148206){_0x24e9d2(null,_0x148206?_0x415079[_0x6ac7('0x1c')](_0x148206['save_name']):![]);})[_0x6ac7('0x11')](function(_0x4fa576){_0x24e9d2(_0x4fa576);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x1d')]=function(_0x150871,_0x21418a){this[_0x6ac7('0xf')]['getMailAccountById'](_0x150871)[_0x6ac7('0x13')](function(_0xedefe){_0x21418a(null,_0xedefe?_0xedefe:![]);})[_0x6ac7('0x11')](function(_0x2a89cf){_0x21418a(_0x2a89cf);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x1e')]=function(_0x2141db,_0x3a9498,_0x4dd4dc){this[_0x6ac7('0xc')][_0x6ac7('0x1e')](_0x2141db,_0x3a9498)[_0x6ac7('0x13')](function(){_0x4dd4dc(null);})[_0x6ac7('0x11')](function(_0x2d01dd){_0x4dd4dc(_0x2d01dd);});};AGIVertices['prototype'][_0x6ac7('0x1f')]=function(_0x24c739,_0xf540ab){this['rpc'][_0x6ac7('0x20')](_0x24c739)['then'](function(_0x4137db){if(_0x4137db){if(_0x4137db[_0x6ac7('0x21')]){_0xf540ab(null,[_0x4137db[_0x6ac7('0x22')]]);}else{_0xf540ab(null,_[_0x6ac7('0x23')](_0x4137db[_0x6ac7('0x24')],_0x6ac7('0x22')));}}else{_0xf540ab(null,![]);}})[_0x6ac7('0x11')](function(_0x450e47){_0xf540ab(_0x450e47);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x1c')]=function(_0x7ba6e5){return util['format'](_0x6ac7('0x25'),FILES_PATH,_0x7ba6e5);};AGIVertices['prototype'][_0x6ac7('0x26')]=function(_0x19f0ff,_0x5917dd,_0x1ff655){odbc[_0x6ac7('0x27')](_0x19f0ff,function(_0x54a4df){if(_0x54a4df){logger[_0x6ac7('0x28')](_0x6ac7('0x29'),_0x54a4df);_0x1ff655(_0x54a4df);}else{logger[_0x6ac7('0x2a')](_0x6ac7('0x2b'));odbc[_0x6ac7('0x2c')](_0x5917dd,function(_0x9846,_0x25bfe0){if(_0x9846){logger[_0x6ac7('0x2a')]('Error\x20executing\x20query\x20%s',_0x5917dd);_0x1ff655(_0x9846);}else{logger['info']('Query\x20executed\x20correctly\x20%s',_0x5917dd);odbc[_0x6ac7('0x2d')](function(_0x85380b){if(_0x85380b){logger['error'](_0x6ac7('0x2e'),_0x85380b);}_0x1ff655(null,_0x25bfe0);});}});}});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x2f')]=function(_0x4d8928,_0x2ccbc0){this[_0x6ac7('0xf')][_0x6ac7('0x30')](_0x4d8928)[_0x6ac7('0x13')](function(_0x1d940c){_0x2ccbc0(null,_0x1d940c?_0x1d940c:![]);})['catch'](function(_0x3bf9b2){_0x2ccbc0(_0x3bf9b2);});};AGIVertices[_0x6ac7('0xd')]['createSmsMessage']=function(_0x28a537,_0x49491f){this['rpc']['createSmsMessage'](_0x28a537)[_0x6ac7('0x13')](function(_0x1240df){_0x49491f(null,_0x1240df);})[_0x6ac7('0x11')](function(_0x3f8b1d){_0x49491f(_0x3f8b1d);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x31')]=function(_0x1ff107,_0x2a6af1,_0x3aa3bf){this['rpc'][_0x6ac7('0x31')]({'uniqueid':this['channel'][_0x6ac7('0x32')],'node':_0x1ff107[_0x6ac7('0x33')],'application':_0x1ff107['agicommand'],'data':_0x2a6af1||null,'project_name':this[_0x6ac7('0xb')][_0x6ac7('0x34')],'callerid':this[_0x6ac7('0xb')][_0x6ac7('0x35')]})[_0x6ac7('0x13')](function(_0x47ac94){if(_0x3aa3bf){_0x3aa3bf(null,_0x47ac94);}})[_0x6ac7('0x11')](function(_0x35567a){if(_0x3aa3bf){_0x3aa3bf(_0x35567a);}});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x36')]=function(_0x25be1a,_0x4f5215,_0x45714a,_0x3fa80d){this[_0x6ac7('0xf')][_0x6ac7('0x36')]({'uniqueid':this[_0x6ac7('0xb')][_0x6ac7('0x32')],'callerid':this[_0x6ac7('0xb')][_0x6ac7('0x35')],'calleridname':this[_0x6ac7('0xb')][_0x6ac7('0x37')],'context':this[_0x6ac7('0xb')]['context'],'extension':this[_0x6ac7('0xb')][_0x6ac7('0x38')],'priority':this['channel'][_0x6ac7('0x39')],'accountcode':this['channel'][_0x6ac7('0x3a')],'dnid':this[_0x6ac7('0xb')][_0x6ac7('0x3b')],'projectName':this[_0x6ac7('0xb')]['arg_1'],'saveName':_0x4f5215,'filename':_0x25be1a['file']||_0x4f5215,'savePath':_0x45714a})[_0x6ac7('0x13')](function(_0x19a71){_0x3fa80d(null,_0x19a71);})['catch'](function(_0x2ea8f1){_0x3fa80d(_0x2ea8f1);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x3c')]=function(_0x3f3a66,_0x174f4d,_0x573c44,_0x2483db,_0x58c8ac){this['rpc'][_0x6ac7('0x3c')]({'uniqueid':this[_0x6ac7('0xb')][_0x6ac7('0x32')],'body':_0x3f3a66,'direction':_0x174f4d,'providerName':_0x573c44,'providerResponse':_0x2483db})[_0x6ac7('0x13')](function(_0x1d6dbe){if(_0x58c8ac){_0x58c8ac(null,_0x1d6dbe);}})[_0x6ac7('0x11')](function(_0x30cfd2){if(_0x58c8ac){_0x58c8ac(_0x30cfd2);}});};AGIVertices['prototype'][_0x6ac7('0x3d')]=function(_0x48c5b5,_0x1679a7){this[_0x6ac7('0xf')][_0x6ac7('0x3d')]({'firstName':_[_0x6ac7('0x3e')](_0x48c5b5[_0x6ac7('0x14')])||_[_0x6ac7('0x3f')](_0x48c5b5[_0x6ac7('0x14')])?_0x6ac7('0x40')+Math['random']():_0x48c5b5[_0x6ac7('0x14')],'lastName':_[_0x6ac7('0x3e')](_0x48c5b5[_0x6ac7('0x41')])||_[_0x6ac7('0x3f')](_0x48c5b5['lastName'])?null:_0x48c5b5[_0x6ac7('0x41')],'phone':_0x48c5b5[_0x6ac7('0x42')],'ListId':_0x48c5b5[_0x6ac7('0x43')],'scheduledat':_0x48c5b5[_0x6ac7('0x44')],'callbackUniqueid':this['channel']['uniqueid'],'tags':_0x6ac7('0x45'),'description':'Callback\x20scheduled\x20at\x20'+_0x48c5b5[_0x6ac7('0x44')][_0x6ac7('0x46')](),'priority':_0x48c5b5[_0x6ac7('0x47')]})[_0x6ac7('0x13')](function(_0x5836b6){_0x1679a7(null,_0x5836b6);})[_0x6ac7('0x11')](function(_0x220921){_0x1679a7(_0x220921);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x48')]=function(_0x4b8c46,_0x14b0ce){this['rpc'][_0x6ac7('0x49')](_0x4b8c46)[_0x6ac7('0x13')](function(_0xe9c601){_0x14b0ce(null,_0xe9c601?_0xe9c601['name']:![]);})['catch'](function(_0x266522){_0x14b0ce(_0x266522);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x4a')]=function(_0x2250d6,_0x76d6d4,_0x40861f){var _0x15e6e7={'role':_0x6ac7('0x4b')};_0x15e6e7[_0x2250d6]=this[_0x6ac7('0xb')][_0x6ac7('0x35')];this[_0x6ac7('0xf')][_0x6ac7('0x4a')](_0x15e6e7,_0x76d6d4,this[_0x6ac7('0xb')][_0x6ac7('0x32')])[_0x6ac7('0x13')](function(_0x154d88){_0x40861f(null,_[_0x6ac7('0x3f')](_0x154d88)?![]:!![]);})['catch'](function(_0x4f28c3){logger['error'](_0x4f28c3);_0x40861f(null,![]);});};AGIVertices[_0x6ac7('0xd')]['agentUnpause']=function(_0x53f04b,_0x3bf413){var _0x29f784={'role':'agent'};_0x29f784[_0x53f04b]=this[_0x6ac7('0xb')][_0x6ac7('0x35')];this['rpc'][_0x6ac7('0x4c')](_0x29f784)[_0x6ac7('0x13')](function(_0x1c9ac4){_0x3bf413(null,_[_0x6ac7('0x3f')](_0x1c9ac4)?![]:!![]);})[_0x6ac7('0x11')](function(_0x2fa639){logger[_0x6ac7('0x28')](_0x2fa639);_0x3bf413(null,![]);});};AGIVertices[_0x6ac7('0xd')]['agentLogout']=function(_0x23df07,_0x2612f7){var _0xad2fc8={'role':_0x6ac7('0x4b')};_0xad2fc8[_0x23df07]=this[_0x6ac7('0xb')][_0x6ac7('0x35')];this[_0x6ac7('0xf')][_0x6ac7('0x4d')](_0xad2fc8)['then'](function(_0x13c693){_0x2612f7(null,_[_0x6ac7('0x3f')](_0x13c693)?![]:!![]);})[_0x6ac7('0x11')](function(_0x150484){logger[_0x6ac7('0x28')](_0x150484);_0x2612f7(null,![]);});};AGIVertices['prototype'][_0x6ac7('0x4e')]=function(_0xeb7892,_0x33084d){var _0x250316={'role':'agent'};_0x250316[_0xeb7892]=this[_0x6ac7('0xb')][_0x6ac7('0x35')];var _0x37235b=_0xeb7892!='internal'?util[_0x6ac7('0x4f')](_0x6ac7('0x50'),_0x6ac7('0x51'),this[_0x6ac7('0xb')][_0x6ac7('0x35')]):undefined;this[_0x6ac7('0xf')]['agentLogin'](_0x250316,_0x37235b)[_0x6ac7('0x13')](function(_0x21d69f){_0x33084d(null,_[_0x6ac7('0x3f')](_0x21d69f)?![]:!![]);})['catch'](function(_0x4bbba8){logger[_0x6ac7('0x28')](_0x4bbba8);_0x33084d(null,![]);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x52')]=function(_0x14c67d,_0x41955a){sh[_0x6ac7('0x53')](_[_0x6ac7('0x54')](_0x14c67d),function(_0x4173dc,_0x3ec6bc){var _0x1c7086=_0x3ec6bc[_0x6ac7('0x55')](/(\r\n|\n|\r)/gm,'');_0x41955a(null,_0x1c7086);});};AGIVertices[_0x6ac7('0xd')]['googleCloudTTS']=function(_0x599b11,_0x286cbd){scripts[_0x6ac7('0x56')](_0x599b11[_0x6ac7('0x57')],_0x599b11['google_cloud_tts_text_type']||_0x6ac7('0x58'),_0x599b11[_0x6ac7('0x58')],_0x599b11['languageCode']||'en-US',_0x599b11[_0x6ac7('0x59')]||_0x6ac7('0x5a'),_0x599b11['audioEncoding']||_0x6ac7('0x5b'))['then'](function(_0x1c03b0){_0x286cbd(null,_0x1c03b0);})['catch'](function(_0x323b75){_0x286cbd(_0x323b75);});};AGIVertices['prototype'][_0x6ac7('0x5c')]=function(_0x1d3114,_0x4eb071){scripts['googleTTS'](_0x1d3114[_0x6ac7('0x58')],_0x1d3114[_0x6ac7('0x5d')]||'en',0x1)[_0x6ac7('0x13')](function(_0xc0fe90){_0x4eb071(null,_0xc0fe90);})[_0x6ac7('0x11')](function(_0xfc05d0){_0x4eb071(_0xfc05d0);});};AGIVertices[_0x6ac7('0xd')]['restAPI']=function(_0x22891c,_0x4594c4){var _0x12c443={'uri':_0x22891c['url'],'method':_0x22891c[_0x6ac7('0x5e')],'json':!![],'resolveWithFullResponse':!![],'strictSSL':![],'timeout':typeof parseInt(_0x22891c[_0x6ac7('0x5f')])===_0x6ac7('0x60')&&parseInt(_0x22891c[_0x6ac7('0x5f')])>=0x1?parseInt(_0x22891c[_0x6ac7('0x5f')])*0x3e8:0x5*0x3e8};if(_[_0x6ac7('0x61')]([_0x6ac7('0x62'),_0x6ac7('0x63')],_0x12c443[_0x6ac7('0x5e')][_0x6ac7('0x64')]())){try{_0x12c443[_0x6ac7('0x65')]=_0x22891c['rawBody']?JSON['parse'](_0x22891c[_0x6ac7('0x66')]):{};}catch(_0x5eb7ab){logger['error'](_0x6ac7('0x67'),_0x5eb7ab);}}try{_0x12c443[_0x6ac7('0x68')]=_0x22891c[_0x6ac7('0x69')]?JSON[_0x6ac7('0x6a')](_0x22891c[_0x6ac7('0x69')]):{};}catch(_0x3e59e2){logger[_0x6ac7('0x28')](_0x6ac7('0x6b'),_0x3e59e2);}if(_0x22891c[_0x6ac7('0x6c')]){try{var _0x1f7baa=require(_0x22891c[_0x6ac7('0x6c')])[_0x6ac7('0x6d')](this,_0x12c443);_0x12c443[_0x6ac7('0x6e')]=Mustache[_0x6ac7('0x6f')](_0x22891c[_0x6ac7('0x70')],_0x1f7baa,{},['$$','$$']);if(_0x12c443[_0x6ac7('0x68')]){_0x12c443['headers']=JSON[_0x6ac7('0x6a')](Mustache[_0x6ac7('0x6f')](JSON['stringify'](_0x12c443[_0x6ac7('0x68')]),_0x1f7baa,{},['$$','$$']));}if(_0x12c443[_0x6ac7('0x65')]){_0x12c443[_0x6ac7('0x65')]=JSON[_0x6ac7('0x6a')](Mustache['render'](JSON[_0x6ac7('0x71')](_0x12c443[_0x6ac7('0x65')]),_0x1f7baa,{},['$$','$$']));}}catch(_0x3beeff){logger[_0x6ac7('0x28')](_0x6ac7('0x72'),_0x3beeff);}}rp(_0x12c443)[_0x6ac7('0x13')](function(_0x2cd1a0){var _0x15b920={'statusCode':_0x2cd1a0['statusCode']||0xc8,'statusMessage':_0x2cd1a0[_0x6ac7('0x73')]||'OK','headers':_0x2cd1a0[_0x6ac7('0x68')]||{},'body':_0x2cd1a0['body']||{}};_0x4594c4(null,_0x15b920);})[_0x6ac7('0x11')](function(_0x1a4aa3){var _0x55975d={'statusCode':_0x1a4aa3[_0x6ac7('0x74')]||0x1f4,'statusMessage':_0x1a4aa3[_0x6ac7('0x75')]||_0x6ac7('0x76'),'headers':_0x1a4aa3['options'][_0x6ac7('0x68')]||{},'body':_0x1a4aa3['options'][_0x6ac7('0x65')]||{}};_0x4594c4(null,_0x55975d);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x77')]=function(_0x3f83be,_0x45e331){scripts[_0x6ac7('0x77')](this[_0x6ac7('0xb')]['uniqueid'],_0x3f83be[_0x6ac7('0x78')],_0x3f83be[_0x6ac7('0x58')],_0x3f83be[_0x6ac7('0x79')]||'en')[_0x6ac7('0x13')](function(_0x2541f1){_0x45e331(null,_0x2541f1);})[_0x6ac7('0x11')](function(_0xf4e717){_0x45e331(_0xf4e717);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x7a')]=function(_0x5e413a,_0x7b802d){scripts[_0x6ac7('0x7a')](this[_0x6ac7('0xb')]['uniqueid'],_0x5e413a[_0x6ac7('0x7b')],_0x5e413a['client_email'],_0x5e413a[_0x6ac7('0x7c')],_0x5e413a[_0x6ac7('0x58')],_0x5e413a[_0x6ac7('0x7d')]||'en')['then'](function(_0x130bfe){_0x7b802d(null,_0x130bfe);})[_0x6ac7('0x11')](function(_0x2c6b39){_0x7b802d(_0x2c6b39);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x7e')]=function(_0x5f2462,_0x2554ad){scripts[_0x6ac7('0x7e')](this[_0x6ac7('0xb')],_0x5f2462)[_0x6ac7('0x13')](function(_0x43e3ef){_0x2554ad(null,_0x43e3ef);})[_0x6ac7('0x11')](function(_0x39cd40){_0x2554ad(_0x39cd40);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x7f')]=function(_0x269b7e,_0x38322c){scripts[_0x6ac7('0x7f')](_0x269b7e[_0x6ac7('0x78')],_0x269b7e[_0x6ac7('0x58')],_0x269b7e[_0x6ac7('0x80')]||_0x6ac7('0x81'),_0x269b7e[_0x6ac7('0x82')])[_0x6ac7('0x13')](function(_0x545f55){_0x38322c(null,_0x545f55);})[_0x6ac7('0x11')](function(_0x43a701){_0x38322c(_0x43a701);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x83')]=function(_0x3f8863,_0x4f6614,_0x1e5427){scripts[_0x6ac7('0x83')](_0x4f6614,_0x3f8863[_0x6ac7('0x78')],_0x3f8863['ispeech_asr_language']||_0x6ac7('0x81'),this['isConfigured'](_0x3f8863[_0x6ac7('0x84')])?_0x3f8863[_0x6ac7('0x84')]:undefined)[_0x6ac7('0x13')](function(_0x3716f6){_0x1e5427(null,_0x3716f6);})[_0x6ac7('0x11')](function(_0x1b999f){_0x1e5427(_0x1b999f);});};AGIVertices['prototype']['awsPolly']=function(_0x448def,_0x3d9b86){scripts[_0x6ac7('0x85')](_0x448def[_0x6ac7('0x86')],_0x448def['aws_secret_access_key'],_0x448def['aws_polly_region'],_0x448def['aws_polly_voice']||_0x6ac7('0x87'),_0x448def['text'],_0x448def['aws_text_type']||'text')[_0x6ac7('0x13')](function(_0x8dac05){_0x3d9b86(null,_0x8dac05);})[_0x6ac7('0x11')](function(_0x4d02ac){_0x3d9b86(_0x4d02ac);});};AGIVertices[_0x6ac7('0xd')]['awsLex']=function(_0x155d7c,_0x4bb25b){scripts['awsLex'](this[_0x6ac7('0xb')][_0x6ac7('0x32')],_0x155d7c[_0x6ac7('0x86')],_0x155d7c['aws_secret_access_key'],_0x155d7c[_0x6ac7('0x88')],_0x155d7c[_0x6ac7('0x58')],_0x155d7c['aws_bot_name'])[_0x6ac7('0x13')](function(_0x488a7b){_0x4bb25b(null,_0x488a7b);})['catch'](function(_0x59509e){_0x4bb25b(_0x59509e);});};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x89')]=function(_0x18c105,_0x4c4ebc,_0x38735f){scripts[_0x6ac7('0x89')](_0x4c4ebc,_0x18c105[_0x6ac7('0x78')],_0x18c105['google_asr_language']||_0x6ac7('0x81'))[_0x6ac7('0x13')](function(_0x17d611){_0x38735f(null,_0x17d611);})[_0x6ac7('0x11')](function(_0x5d1af6){_0x38735f(_0x5d1af6);});};AGIVertices[_0x6ac7('0xd')]['tildeASR']=function(_0x2a88b2,_0x10be9a,_0x245ca1){scripts[_0x6ac7('0x8a')](_0x10be9a,_0x2a88b2['appid'],_0x2a88b2[_0x6ac7('0x8b')],_0x2a88b2['uri'])[_0x6ac7('0x13')](function(_0x3f151a){_0x245ca1(null,_0x3f151a);})[_0x6ac7('0x11')](function(_0x302f1c){_0x245ca1(_0x302f1c);});};AGIVertices['prototype']['clear']=function(_0x31ef28){var _0x3ed7de=_[_0x6ac7('0x61')](verticesWithRetry,_0x31ef28[_0x6ac7('0x8c')])?_0x31ef28:_[_0x6ac7('0x8d')](_0x31ef28);for(var _0x1d4910 in _0x3ed7de){if(_0x3ed7de['hasOwnProperty'](_0x1d4910)){if(_0x3ed7de[_0x1d4910]&&_[_0x6ac7('0x8e')](_0x3ed7de[_0x1d4910])){if(_[_0x6ac7('0x61')](recursiveMapAttributes,_0x1d4910)){_0x3ed7de[_0x1d4910]=this['replaceObjectAllVariables'](_0x3ed7de[_0x1d4910]);}else{_0x3ed7de[_0x1d4910]=this[_0x6ac7('0x8f')](_0x3ed7de[_0x1d4910]);}}}}return _0x3ed7de;};AGIVertices['prototype'][_0x6ac7('0x90')]=function(_0xc24e14){for(var _0x6d8b2 in _0xc24e14){if(_0xc24e14['hasOwnProperty'](_0x6d8b2)){if(_[_0x6ac7('0x91')](_0xc24e14[_0x6d8b2])){this[_0x6ac7('0x90')](_0xc24e14[_0x6d8b2]);}else if(_[_0x6ac7('0x92')](_0xc24e14[_0x6d8b2])){for(var _0x164ae8=0x0;_0x164ae8<_0xc24e14[_0x6d8b2][_0x6ac7('0x93')];_0x164ae8++){this['recursiveNodeIndex'](_0xc24e14[_0x6d8b2][_0x164ae8]);}}else if(_['isString'](_0xc24e14[_0x6d8b2])){_0xc24e14[_0x6d8b2]=this['replaceAllVariables'](_0xc24e14[_0x6d8b2]);}}}};AGIVertices['prototype'][_0x6ac7('0x94')]=function(_0x3eace2,_0x45c3db){for(var _0x66d82 in _0x3eace2){if(_0x3eace2[_0x6ac7('0x95')](_0x66d82)){if(_[_0x6ac7('0x91')](_0x3eace2[_0x66d82])){if(!_[_0x6ac7('0x3e')](_0x3eace2[_0x66d82])){this[_0x6ac7('0x94')](_0x3eace2[_0x66d82],util[_0x6ac7('0x4f')]('%s.%s',_0x45c3db,_0x66d82));}}else if(_[_0x6ac7('0x92')](_0x3eace2[_0x66d82])){for(var _0x5873f8=0x0;_0x5873f8<_0x3eace2[_0x66d82][_0x6ac7('0x93')];_0x5873f8++){this[_0x6ac7('0x94')](_0x3eace2[_0x66d82][_0x5873f8],util[_0x6ac7('0x4f')]('%s.%s',_0x45c3db,_0x66d82+'['+_0x5873f8+']'));}}else{if(!_[_0x6ac7('0x3f')](_0x3eace2[_0x66d82])){this[_0x6ac7('0xb')][_0x6ac7('0x96')](util['format'](_0x6ac7('0x97'),_0x45c3db,_0x66d82),_0x3eace2[_0x66d82]);}}}}};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x98')]=function(_0x45e7f3){try{var _0x351479=JSON[_0x6ac7('0x6a')](_0x45e7f3);this[_0x6ac7('0x90')](_0x351479);return JSON[_0x6ac7('0x71')](_0x351479);}catch(_0x1af6dd){return this[_0x6ac7('0x8f')](_0x45e7f3);}};AGIVertices['prototype'][_0x6ac7('0x8f')]=function(_0x10af7d){var _0x44f269=_0x10af7d[_0x6ac7('0x99')]('{');for(var _0x545000=0x1;_0x545000<_0x44f269[_0x6ac7('0x93')];_0x545000+=0x1){var _0x25d0de=_0x44f269[_0x545000][_0x6ac7('0x99')]('}');if(_0x25d0de[_0x6ac7('0x93')]>0x1){_0x10af7d=_0x10af7d[_0x6ac7('0x9a')]('{'+_0x25d0de[0x0]+'}',this[_0x6ac7('0xb')][_0x6ac7('0xe')](_0x25d0de[0x0])[_0x6ac7('0x9b')]||_0x25d0de[0x0]);}}if(_0x44f269['length']===0x1){return _0x10af7d[_0x6ac7('0x46')]();}return this['replaceAllVariables'](_0x10af7d);};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x9c')]=function(_0x4caa3a,_0x4cb02c){var _0x197b76=this['channel'][_0x6ac7('0xe')](_0x4caa3a);if(_0x197b76['result']===-0x1){return _0x197b76;}logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x9d'),_0x4cb02c,_0x197b76[_0x6ac7('0x9b')]));return this[_0x6ac7('0xb')][_0x6ac7('0x96')](_0x4cb02c,_0x197b76[_0x6ac7('0x9b')]);};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x9e')]=function(_0x589b43){return _0x589b43&&_0x589b43!=='0'&&_0x589b43!=='-1'&&_0x589b43!=='';};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x9f')]=function(_0x182027){this[_0x6ac7('0x31')][_0x6ac7('0x6d')](this,_0x182027,'-');_0x182027[_0x6ac7('0xa0')]=_0x182027[_0x6ac7('0x9f')];return{'code':0xc8,'result':'-'};};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0xa1')]=function(_0x4e30dc){logger[_0x6ac7('0x2a')](util['format']('Enter\x20in\x20MRCPSynth\x20(%s)\x20block',_0x4e30dc['label']));if(!this[_0x6ac7('0x9e')](_0x4e30dc[_0x6ac7('0x58')])){return this['channel'][_0x6ac7('0xa2')](_0x6ac7('0xa3'));}var _0x41d07b='\x22'+_0x4e30dc[_0x6ac7('0x58')]+'\x22';if(this[_0x6ac7('0x9e')](_0x4e30dc[_0x6ac7('0xa4')])){_0x41d07b+=','+_0x4e30dc[_0x6ac7('0xa4')];}var _0x5ab9c1=this[_0x6ac7('0xb')][_0x6ac7('0x53')](_0x6ac7('0xa5'),_0x41d07b);if(_0x5ab9c1[_0x6ac7('0xa6')]===-0x1){return _0x5ab9c1;}return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util['format'](_0x6ac7('0xa7'),_0x41d07b));};AGIVertices['prototype'][_0x6ac7('0xa8')]=function(_0x5deda0){logger['info'](util[_0x6ac7('0x4f')](_0x6ac7('0xa9'),_0x5deda0[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x5deda0['grammar'])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xaa'));}var _0x452fc5=_0x5deda0[_0x6ac7('0xab')];if(this[_0x6ac7('0x9e')](_0x5deda0['options'])){_0x452fc5+=','+_0x5deda0['options'];}var _0x30e521=this['channel'][_0x6ac7('0x53')](_0x6ac7('0xac'),_0x452fc5);if(_0x30e521['result']===-0x1){return _0x30e521;}var _0x1a31f1=this[_0x6ac7('0x9c')]('RECOG_CONFIDENCE()',_0x6ac7('0xad'));if(_0x1a31f1[_0x6ac7('0xa6')]===-0x1){return _0x1a31f1;}var _0x4d6265=this[_0x6ac7('0x9c')]('RECOG_INPUT()',_0x6ac7('0xae'));if(_0x4d6265[_0x6ac7('0xa6')]===-0x1){return _0x4d6265;}var _0x47ddcf=this[_0x6ac7('0x9c')]('RECOG_INSTANCE()',_0x6ac7('0xaf'));if(_0x47ddcf[_0x6ac7('0xa6')]===-0x1){return _0x47ddcf;}return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util['format'](_0x6ac7('0xb0'),_0x452fc5));};AGIVertices['prototype']['agi']=function(_0x5caec4){logger[_0x6ac7('0x2a')](util['format'](_0x6ac7('0xb1'),_0x5caec4[_0x6ac7('0x33')]));return this['channel'][_0x6ac7('0xb2')]([_0x5caec4[_0x6ac7('0xb3')],_0x5caec4[_0x6ac7('0xb4')]]);};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0xb5')]=function(_0x11b668){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0xb6'),_0x11b668['label']));if(this[_0x6ac7('0x9e')](_0x11b668['timeout'])){logger[_0x6ac7('0x2a')](util['format'](_0x6ac7('0xb7'),_0x11b668[_0x6ac7('0x5f')]));var _0x17e710=this[_0x6ac7('0xb')][_0x6ac7('0xb8')](_0x11b668[_0x6ac7('0x5f')]);if(_0x17e710[_0x6ac7('0xa6')]===-0x1){return _0x17e710;}}return this[_0x6ac7('0xb')][_0x6ac7('0xb5')]();};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x45')]=function(_0x28f73a){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0xb9'),_0x28f73a[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x28f73a['list_id'])){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x28f73a,_0x6ac7('0xba'));}_0x28f73a[_0x6ac7('0x44')]=moment();if(this[_0x6ac7('0x9e')](_0x28f73a[_0x6ac7('0xbb')])){_0x28f73a['scheduledAt']=moment()['add'](_0x28f73a[_0x6ac7('0xbb')],_0x6ac7('0xbc'));}if(!this[_0x6ac7('0x9e')](_0x28f73a[_0x6ac7('0x47')])){_0x28f73a['callback_priority']=0x2;}this[_0x6ac7('0x3d')][_0x6ac7('0x6d')](this,_0x28f73a);return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')]('CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s',_0x28f73a['phone'],_0x28f73a[_0x6ac7('0x43')],_0x28f73a[_0x6ac7('0x44')]));};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0xbd')]=function(_0x2de8d7){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0xbe'),_0x2de8d7['label']));var _0x262474=this['channel']['exec'](_0x2de8d7['application'],_0x2de8d7[_0x6ac7('0xa4')]);if(_0x262474['result']===-0x1){return _0x262474;}return this[_0x6ac7('0xb')]['noop'](util[_0x6ac7('0x4f')](_0x6ac7('0xbf'),_0x2de8d7[_0x6ac7('0xc0')],_0x2de8d7['options']));};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0xc1')]=function(_0x77da4e){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0xc2'),_0x77da4e[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x77da4e[_0x6ac7('0x58')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xa3'));}var _0x24a012='\x22'+_0x77da4e['text']+'\x22';if(this[_0x6ac7('0x9e')](_0x77da4e[_0x6ac7('0xa4')])){_0x24a012+=','+_0x77da4e['options'];}var _0x13ed17=this[_0x6ac7('0xb')][_0x6ac7('0x53')](_0x6ac7('0xa5'),_0x24a012);if(_0x13ed17['result']===-0x1){return _0x13ed17;}return this['channel'][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')]('Executed\x20command\x20MRCPSynth\x20%s',_0x24a012));};AGIVertices[_0x6ac7('0xd')]['sestektts']=function(_0x6d03a6){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0xc3'),_0x6d03a6['label']));if(!this[_0x6ac7('0x9e')](_0x6d03a6[_0x6ac7('0x58')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')]('no\x20text\x20configured');}var _0x4ae85f='\x22'+_0x6d03a6[_0x6ac7('0x58')]+'\x22';if(this[_0x6ac7('0x9e')](_0x6d03a6[_0x6ac7('0xa4')])){_0x4ae85f+=','+_0x6d03a6['options'];}var _0x3b8113=this[_0x6ac7('0xb')][_0x6ac7('0x53')]('MRCPSynth',_0x4ae85f);if(_0x3b8113['result']===-0x1){return _0x3b8113;}return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')]('Executed\x20command\x20MRCPSynth\x20%s',_0x4ae85f));};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0xc4')]=function(_0x26f748){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0xc5'),_0x26f748[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x26f748[_0x6ac7('0xab')])){return this['channel'][_0x6ac7('0xa2')](_0x6ac7('0xaa'));}var _0x5d5d71=_0x26f748[_0x6ac7('0xab')];if(this[_0x6ac7('0x9e')](_0x26f748[_0x6ac7('0xa4')])){_0x5d5d71+=','+_0x26f748[_0x6ac7('0xa4')];}var _0x2a92d1=this[_0x6ac7('0xb')][_0x6ac7('0x53')](_0x6ac7('0xac'),_0x5d5d71);if(_0x2a92d1[_0x6ac7('0xa6')]===-0x1){return _0x2a92d1;}var _0x1e0c15=this[_0x6ac7('0x9c')](_0x6ac7('0xc6'),_0x6ac7('0xc7'));if(_0x1e0c15[_0x6ac7('0xa6')]===-0x1){return _0x1e0c15;}var _0x5d9754=this[_0x6ac7('0x9c')](_0x6ac7('0xc8'),'LUMENVOX_ASR_TRANSCRIPT');if(_0x5d9754[_0x6ac7('0xa6')]===-0x1){return _0x5d9754;}var _0xc152df=this[_0x6ac7('0x9c')](_0x6ac7('0xc9'),_0x6ac7('0xca'));if(_0xc152df[_0x6ac7('0xa6')]===-0x1){return _0xc152df;}return this['channel']['noop'](util[_0x6ac7('0x4f')]('Executed\x20command\x20MRCPRecog\x20%s',_0x5d5d71));};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0xcb')]=function(_0x308497){logger[_0x6ac7('0x2a')](util['format']('Enter\x20in\x20SESTEKASR\x20(%s)\x20block',_0x308497[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x308497[_0x6ac7('0xab')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')]('no\x20grammar\x20configured');}var _0x2e4927=_0x308497[_0x6ac7('0xab')];if(this[_0x6ac7('0x9e')](_0x308497[_0x6ac7('0xa4')])){_0x2e4927+=','+_0x308497[_0x6ac7('0xa4')];}var _0x3c0a35=this[_0x6ac7('0xb')]['exec'](_0x6ac7('0xac'),_0x2e4927);if(_0x3c0a35[_0x6ac7('0xa6')]===-0x1){return _0x3c0a35;}var _0x461d9f=this[_0x6ac7('0x9c')](_0x6ac7('0xc6'),_0x6ac7('0xcc'));if(_0x461d9f[_0x6ac7('0xa6')]===-0x1){return _0x461d9f;}var _0x3b67f4=this[_0x6ac7('0x9c')](_0x6ac7('0xc8'),_0x6ac7('0xcd'));if(_0x3b67f4[_0x6ac7('0xa6')]===-0x1){return _0x3b67f4;}var _0x1cee3d=this[_0x6ac7('0x9c')](_0x6ac7('0xc9'),'SESTEK_ASR_INSTANCE');if(_0x1cee3d[_0x6ac7('0xa6')]===-0x1){return _0x1cee3d;}return this[_0x6ac7('0xb')]['noop'](util['format']('Executed\x20command\x20MRCPRecog\x20%s',_0x2e4927));};AGIVertices[_0x6ac7('0xd')]['database']=function(_0x468242){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0xce'),_0x468242[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x468242[_0x6ac7('0xcf')])){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x468242,'no\x20database\x20selected');}var _0x234cd8=this[_0x6ac7('0xd0')][_0x6ac7('0x6d')](this,_0x468242[_0x6ac7('0xcf')]);if(!_0x234cd8){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x468242,_0x6ac7('0xd1'));}if(!this[_0x6ac7('0x9e')](_0x468242[_0x6ac7('0x2c')])){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x468242,'no\x20query\x20configured');}var _0x30b207=_0x468242['query'][_0x6ac7('0x55')](/(\r\n|\n|\r)/gm,'\x20');this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')]('query:\x20%s',_0x30b207));var _0x3bd3a4=this[_0x6ac7('0x26')][_0x6ac7('0x6d')](this,_0x234cd8,_0x30b207);this['createSquareDetailsReport'][_0x6ac7('0x6d')](this,_0x468242,_0x30b207);if(!this[_0x6ac7('0x9e')](_0x468242[_0x6ac7('0xd2')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')]('no\x20variable\x20selected\x20for\x20the\x20result');}var _0x27c4a2=this[_0x6ac7('0xe')][_0x6ac7('0x6d')](this,_0x468242[_0x6ac7('0xd2')]);if(!_0x27c4a2){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x468242,'no\x20variable\x20found');}var _0x54cc4d=this;_0x3bd3a4['forEach'](function(_0x471604,_0x2b201){Object[_0x6ac7('0xd3')](_0x471604)[_0x6ac7('0xd4')](function(_0x22682e){_0x54cc4d['channel'][_0x6ac7('0x96')](util[_0x6ac7('0x4f')](_0x6ac7('0xd5'),_0x27c4a2,_0x2b201,_0x22682e),_0x471604[_0x22682e]);});});this['channel']['setVariable'](util[_0x6ac7('0x4f')]('%s_ROWS_COUNT',_0x27c4a2),_0x3bd3a4[_0x6ac7('0x93')]);return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util['format'](_0x6ac7('0xd6'),_0x27c4a2));};AGIVertices['prototype']['dial']=function(_0x38b3d2){logger['debug'](util[_0x6ac7('0x4f')](_0x6ac7('0xd7'),_0x38b3d2['label']));if(!this[_0x6ac7('0x9e')](_0x38b3d2[_0x6ac7('0xd8')])){return this[_0x6ac7('0xb')]['error'](_0x38b3d2,_0x6ac7('0xd9'));}var _0x4d48b8=this['getUser'][_0x6ac7('0x6d')](this,_0x38b3d2[_0x6ac7('0xd8')]);if(!_0x4d48b8){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x38b3d2,_0x6ac7('0xda'));}var _0x1cfe7d=this[_0x6ac7('0xb')][_0x6ac7('0x53')](_0x6ac7('0xdb'),[util[_0x6ac7('0x4f')](_0x6ac7('0xdc'),_0x4d48b8),_0x38b3d2['timeout'],_0x38b3d2[_0x6ac7('0xdd')],_0x38b3d2[_0x6ac7('0x70')]]);if(_0x1cfe7d[_0x6ac7('0xa6')]===-0x1){return _0x1cfe7d;}return this['channel'][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0xde'),_0x6ac7('0xdb')));};AGIVertices['prototype'][_0x6ac7('0xdf')]=function(_0x3838df){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0xe0'),_0x3838df['label']));if(!this['isConfigured'](_0x3838df[_0x6ac7('0x78')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xe1'));}if(!this['isConfigured'](_0x3838df['text'])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xa3'));}this[_0x6ac7('0xb')][_0x6ac7('0xe2')]=!![];this[_0x6ac7('0x31')](_0x3838df);this[_0x6ac7('0x3c')](_0x3838df[_0x6ac7('0x58')],'in','','');this[_0x6ac7('0xb')]['noop'](util['format'](_0x6ac7('0xe3'),_0x3838df[_0x6ac7('0x58')]));var _0x4f3cf8=this[_0x6ac7('0x77')][_0x6ac7('0x6d')](this,_0x3838df);if(_0x4f3cf8){for(var _0x47cb40 in _0x4f3cf8){if(_0x4f3cf8[_0x6ac7('0x95')](_0x47cb40)){this[_0x6ac7('0xb')][_0x6ac7('0x96')](util[_0x6ac7('0x4f')](_0x6ac7('0xe4'),_0x47cb40[_0x6ac7('0x64')]()),_0x4f3cf8[_0x47cb40]);}}this[_0x6ac7('0x3c')](_0x4f3cf8[_0x6ac7('0xe5')],_0x6ac7('0xe6'),_0x6ac7('0xdf'),'');return this[_0x6ac7('0xb')]['noop'](util[_0x6ac7('0x4f')](_0x6ac7('0xe7'),_0x4f3cf8['speech']));}return this['channel'][_0x6ac7('0x28')](_0x3838df,_0x6ac7('0xe8'));};AGIVertices['prototype'][_0x6ac7('0xe9')]=function(_0x3009ec){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0xea'),_0x3009ec['label']));if(!this[_0x6ac7('0x9e')](_0x3009ec[_0x6ac7('0x7b')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xeb'));}if(!this[_0x6ac7('0x9e')](_0x3009ec['client_email'])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xec'));}if(!this['isConfigured'](_0x3009ec[_0x6ac7('0x7c')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xed'));}if(!this[_0x6ac7('0x9e')](_0x3009ec[_0x6ac7('0x7d')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')]('no\x20anguage\x20configured');}if(!this[_0x6ac7('0x9e')](_0x3009ec[_0x6ac7('0x58')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xa3'));}this[_0x6ac7('0xb')][_0x6ac7('0xe2')]=!![];this[_0x6ac7('0x31')](_0x3009ec);this[_0x6ac7('0x3c')](_0x3009ec[_0x6ac7('0x58')],'in','','');this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')]('Trying\x20DialogflowV2:\x20%s',_0x3009ec[_0x6ac7('0x58')]));var _0x34f08a=this[_0x6ac7('0x7a')][_0x6ac7('0x6d')](this,_0x3009ec);if(_0x34f08a){for(var _0x19bdc8 in _0x34f08a){if(_0x34f08a[_0x6ac7('0x95')](_0x19bdc8)){if(_0x19bdc8!=='providerResponse'){this[_0x6ac7('0xb')][_0x6ac7('0x96')](util[_0x6ac7('0x4f')]('DIALOGFLOW_%s',_0x19bdc8[_0x6ac7('0x64')]()),_0x34f08a[_0x19bdc8]);}}}this['createSquareMessage'](_0x34f08a['speech'],_0x6ac7('0xe6'),_0x6ac7('0xe9'),_0x34f08a['providerResponse']);return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0xee'),_0x34f08a[_0x6ac7('0xe5')]));}return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x3009ec,_0x6ac7('0xef'));};AGIVertices['prototype'][_0x6ac7('0xf0')]=function(_0x32bf5d){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0xf1'),_0x32bf5d['label']));if(!this[_0x6ac7('0x9e')](_0x32bf5d[_0x6ac7('0xf2')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')]('no\x20ndauth\x20url\x20configured');}if(!this[_0x6ac7('0x9e')](_0x32bf5d[_0x6ac7('0xf3')])){return this['channel']['noop'](_0x6ac7('0xf4'));}if(!this[_0x6ac7('0x9e')](_0x32bf5d[_0x6ac7('0xf5')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xf6'));}if(!this[_0x6ac7('0x9e')](_0x32bf5d['ndassistant_url'])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xa3'));}this['channel'][_0x6ac7('0xe2')]=!![];this[_0x6ac7('0x31')](_0x32bf5d);this[_0x6ac7('0x3c')](_0x32bf5d[_0x6ac7('0x58')],'in','','');this[_0x6ac7('0xb')]['noop'](util[_0x6ac7('0x4f')](_0x6ac7('0xf7'),_0x32bf5d[_0x6ac7('0x58')]));var _0x56ff83=this[_0x6ac7('0x7e')][_0x6ac7('0x6d')](this,_0x32bf5d);if(_0x56ff83){for(var _0x377296 in _0x56ff83){if(_0x56ff83[_0x6ac7('0x95')](_0x377296)){this[_0x6ac7('0xb')][_0x6ac7('0x96')](util[_0x6ac7('0x4f')](_0x6ac7('0xf8'),_0x377296[_0x6ac7('0x64')]()),_0x56ff83[_0x377296]);}}this[_0x6ac7('0x3c')](_0x56ff83['speech'],_0x6ac7('0xe6'),_0x6ac7('0xf0'),'');if(_0x56ff83[_0x6ac7('0xf9')]){this['channel'][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0xfa'),_0x56ff83[_0x6ac7('0xf9')]));var _0x358a9d=this[_0x6ac7('0xb')][_0x6ac7('0xfb')](_0x56ff83[_0x6ac7('0xf9')]);try{fs[_0x6ac7('0xfc')](_0x56ff83[_0x6ac7('0xf9')]+_0x6ac7('0xfd'));}catch(_0x51dddd){logger[_0x6ac7('0x28')](_0x51dddd);}return _0x358a9d;}else{return this['channel'][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0xfe'),_0x56ff83[_0x6ac7('0xe5')]));}}return this[_0x6ac7('0xb')]['error'](_0x32bf5d,_0x6ac7('0xff'));};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x100')]=function(_0x4b2ca6){logger['info'](util[_0x6ac7('0x4f')](_0x6ac7('0x101'),_0x4b2ca6[_0x6ac7('0x33')]));return this['channel'][_0x6ac7('0xa2')](_0x6ac7('0x100'));};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x102')]=function(_0x46445c){logger['info'](util[_0x6ac7('0x4f')](_0x6ac7('0x103'),_0x46445c['label']));var _0x3c5961='';if(_0x46445c[_0x6ac7('0x104')]){if(!this[_0x6ac7('0x9e')](_0x46445c[_0x6ac7('0x104')])){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x46445c,_0x6ac7('0x105'));}else{var _0x55bbb0=parseInt(_0x46445c['trunk_id'],0xa);if(isNaN(_0x55bbb0)){_0x3c5961=_0x46445c['trunk_id'];}else{_0x3c5961=this['getTrunk'][_0x6ac7('0x6d')](this,_0x46445c[_0x6ac7('0x104')]);if(!_0x3c5961){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x46445c,'no\x20trunk\x20found');}}}}else if(_0x46445c['trunk_name']){_0x3c5961=_0x46445c[_0x6ac7('0x106')];}else{return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x46445c,'no\x20trunk\x20selected');}var _0x42f390=this['channel'][_0x6ac7('0x53')](_0x6ac7('0xdb'),[util[_0x6ac7('0x4f')](_0x6ac7('0x107'),_0x3c5961,_0x46445c[_0x6ac7('0x42')]),_0x46445c[_0x6ac7('0x5f')],_0x46445c[_0x6ac7('0xdd')],_0x46445c[_0x6ac7('0x70')]]);if(_0x42f390[_0x6ac7('0xa6')]===-0x1){return _0x42f390;}return this['channel'][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')]('Executed\x20command\x20%s',_0x6ac7('0xdb')));};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x108')]=function(_0x46007d){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x109'),_0x46007d['label']));return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0x108'));};AGIVertices['prototype'][_0x6ac7('0x9')]=function(_0x3be5b4){logger['info'](util['format'](_0x6ac7('0x10a'),_0x3be5b4[_0x6ac7('0x33')]));if(_0x3be5b4[_0x6ac7('0xa0')]===0x0){return this['maxRetry'](_0x3be5b4);}_0x3be5b4[_0x6ac7('0xa0')]-=0x1;if(!this[_0x6ac7('0x9e')](_0x3be5b4[_0x6ac7('0x10b')])){return this[_0x6ac7('0xb')]['error'](_0x3be5b4,_0x6ac7('0x10c'));}var _0x54ca48=this['getSound']['sync'](this,_0x3be5b4[_0x6ac7('0x10b')]);if(!_0x54ca48){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x3be5b4,_0x6ac7('0x10d'));}if(!this[_0x6ac7('0x9e')](_0x3be5b4['variable_id'])){return this['channel'][_0x6ac7('0x28')](_0x6ac7('0x10e'));}var _0x59fd61=this['channel'][_0x6ac7('0x10f')](_0x54ca48,_0x3be5b4[_0x6ac7('0x110')],_0x3be5b4[_0x6ac7('0x111')]);var _0x8afaea=_0x59fd61[_0x6ac7('0xa6')]?_0x59fd61[_0x6ac7('0xa6')][_0x6ac7('0x46')]():'';logger[_0x6ac7('0x2a')](_0x6ac7('0x112'),JSON[_0x6ac7('0x71')](_0x59fd61));if(_0x59fd61['result']===-0x1){this[_0x6ac7('0x31')][_0x6ac7('0x6d')](this,_0x3be5b4,_0x8afaea);return _0x59fd61;}else if(_0x59fd61[_0x6ac7('0x9b')]===_0x6ac7('0x5f')){_0x59fd61[_0x6ac7('0xa6')]=_0x8afaea['length']>=parseInt(_0x3be5b4[_0x6ac7('0x113')])?'x':'i';}else{_0x59fd61[_0x6ac7('0xa6')]=_0x8afaea[_0x6ac7('0x93')]>=parseInt(_0x3be5b4[_0x6ac7('0x113')])&&_0x8afaea[_0x6ac7('0x93')]<=parseInt(_0x3be5b4[_0x6ac7('0x111')])?'x':'i';}var _0x282cf3=this[_0x6ac7('0xe')][_0x6ac7('0x6d')](this,_0x3be5b4['variable_id']);if(!_0x282cf3){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x3be5b4,'no\x20variable\x20found');}this[_0x6ac7('0xb')][_0x6ac7('0x96')](_0x282cf3,_0x8afaea);if(this[_0x6ac7('0x9e')](_0x3be5b4[_0x6ac7('0x114')])){var _0x260904=parseInt(_0x3be5b4[_0x6ac7('0x114')],0xa);var _0x3e7824=rs[_0x6ac7('0x115')]({'charset':'*','length':_0x260904});var _0x185836=_0x8afaea['length'];if(_0x185836>0x0){if(_0x185836>_0x260904){this[_0x6ac7('0x31')]['sync'](this,_0x3be5b4,_0x3be5b4[_0x6ac7('0x116')]===_0x6ac7('0x117')?_0x3e7824+_0x8afaea[_0x6ac7('0x118')](_0x260904):_0x8afaea[_0x6ac7('0x118')](0x0,_0x185836-_0x260904)+_0x3e7824);}else{this[_0x6ac7('0x31')][_0x6ac7('0x6d')](this,_0x3be5b4,rs[_0x6ac7('0x115')]({'charset':'*','length':_0x185836}));}}else{this[_0x6ac7('0x31')][_0x6ac7('0x6d')](this,_0x3be5b4,'');}}else{this[_0x6ac7('0x31')][_0x6ac7('0x6d')](this,_0x3be5b4,_0x8afaea);}return _0x59fd61;};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0xa')]=function(_0x2dda2e){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x119'),_0x2dda2e['label']));return this['getdigits'](_0x2dda2e);};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x11a')]=function(_0x128f50){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x11b'),_0x128f50[_0x6ac7('0x33')]));this[_0x6ac7('0x31')]['sync'](this,_0x128f50,_0x128f50['goalname']);return this[_0x6ac7('0xb')]['noop'](util[_0x6ac7('0x4f')](_0x6ac7('0x11c'),_0x128f50[_0x6ac7('0x11d')]));};AGIVertices[_0x6ac7('0xd')]['awspolly']=function(_0x5b11f1){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x11e'),_0x5b11f1[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x5b11f1['aws_access_key_id'])||!this[_0x6ac7('0x9e')](_0x5b11f1[_0x6ac7('0x11f')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0x120'));}if(!this['isConfigured'](_0x5b11f1['text'])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')]('no\x20text\x20configured');}this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')]('Trying\x20aws\x20Polly\x20%s',_0x5b11f1['text']));var _0x5939e5=this['awsPolly'][_0x6ac7('0x6d')](this,_0x5b11f1);if(_0x5939e5){this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x121'),_0x5939e5));var _0x5e0654=this[_0x6ac7('0xb')][_0x6ac7('0xfb')](_0x5939e5);try{fs[_0x6ac7('0xfc')](_0x5939e5+_0x6ac7('0xfd'));}catch(_0x23db59){logger[_0x6ac7('0x28')](_0x23db59);}return _0x5e0654;}return this[_0x6ac7('0xb')]['error'](_0x5b11f1,_0x6ac7('0x122'));};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x123')]=function(_0x9c440a){logger[_0x6ac7('0x2a')](util['format'](_0x6ac7('0x124'),_0x9c440a['label']));if(!this['isConfigured'](_0x9c440a[_0x6ac7('0x86')])||!this[_0x6ac7('0x9e')](_0x9c440a['aws_secret_access_key'])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0x120'));}if(!this[_0x6ac7('0x9e')](_0x9c440a[_0x6ac7('0x125')])){return this[_0x6ac7('0xb')]['noop'](_0x6ac7('0x126'));}if(!this['isConfigured'](_0x9c440a['text'])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xa3'));}this[_0x6ac7('0xb')][_0x6ac7('0xe2')]=!![];this[_0x6ac7('0x31')](_0x9c440a);this[_0x6ac7('0x3c')](_0x9c440a[_0x6ac7('0x58')],'in','','');this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x127'),_0x9c440a['text']));var _0xabe04c=this['awsLex']['sync'](this,_0x9c440a);if(_0xabe04c){for(var _0x12c48a in _0xabe04c){if(_0xabe04c[_0x6ac7('0x95')](_0x12c48a)&&_[_0x6ac7('0x8e')](_0xabe04c[_0x12c48a])){this['channel'][_0x6ac7('0x96')](util['format'](_0x6ac7('0x128'),_0x12c48a[_0x6ac7('0x64')]()),_0xabe04c[_0x12c48a]);}}if(_['isNil'](_0xabe04c[_0x6ac7('0x75')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0x129'));}else{this[_0x6ac7('0x3c')](_0xabe04c[_0x6ac7('0x75')],_0x6ac7('0xe6'),_0x6ac7('0x12a'),'');return this[_0x6ac7('0xb')]['noop'](util[_0x6ac7('0x4f')](_0x6ac7('0x12b'),_0xabe04c['message']));}}return this['channel']['error'](_0x9c440a,'Amazon\x20Lex\x20is\x20unreachable');};AGIVertices[_0x6ac7('0xd')]['googleasr']=function(_0x399708){logger[_0x6ac7('0x2a')](util['format'](_0x6ac7('0x12c'),_0x399708['label'],_0x399708[_0x6ac7('0x5f')]));if(!this[_0x6ac7('0x9e')](_0x399708['key'])){return this['channel'][_0x6ac7('0xa2')](_0x6ac7('0xe1'));}var _0x465b22=_0x6ac7('0x12d');var _0x41c427=util[_0x6ac7('0x4f')]('%s/recordings/%s',FILES_PATH,rs[_0x6ac7('0x115')](0x4));var _0x52b10e=util['format'](_0x6ac7('0x97'),_0x41c427,_0x465b22);var _0x136b53=!![];if(_0x399708[_0x6ac7('0x12e')]===_0x6ac7('0x12f')){_0x136b53=![];}var _0x4a5292=this[_0x6ac7('0xb')][_0x6ac7('0x130')](_0x41c427,_0x465b22,_0x399708['intKey'],_0x399708['timeout'],undefined,_0x136b53);if(_0x4a5292[_0x6ac7('0xa6')]!==-0x1){this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x131'),_0x52b10e));var _0x317521=this[_0x6ac7('0x89')][_0x6ac7('0x6d')](this,_0x399708,_0x52b10e);if(_0x317521){for(var _0x3a4215 in _0x317521){if(_0x317521[_0x6ac7('0x95')](_0x3a4215)){this[_0x6ac7('0xb')][_0x6ac7('0x96')](util[_0x6ac7('0x4f')](_0x6ac7('0x132'),_0x3a4215[_0x6ac7('0x64')]()),_0x317521[_0x3a4215]);}}return this[_0x6ac7('0xb')]['noop'](util['format'](_0x6ac7('0x133'),JSON[_0x6ac7('0x71')](_0x317521)));}}return _0x4a5292;};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x134')]=function(_0x3ce9c8){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x135'),_0x3ce9c8[_0x6ac7('0x33')]));if(!this['isConfigured'](_0x3ce9c8[_0x6ac7('0x136')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0x137'));}if(!this[_0x6ac7('0x9e')](_0x3ce9c8[_0x6ac7('0x8b')])){return this[_0x6ac7('0xb')]['noop'](_0x6ac7('0x138'));}var _0x452c8b='wav';var _0x208d1e=util['format']('%s/recordings/%s',FILES_PATH,rs[_0x6ac7('0x115')](0x4));var _0x185395=util[_0x6ac7('0x4f')](_0x6ac7('0x97'),_0x208d1e,_0x452c8b);var _0x5f2102=!![];if(_0x3ce9c8[_0x6ac7('0x12e')]===_0x6ac7('0x12f')){_0x5f2102=![];}var _0x51983e=this[_0x6ac7('0xb')][_0x6ac7('0x130')](_0x208d1e,_0x452c8b,_0x3ce9c8['intKey'],_0x3ce9c8[_0x6ac7('0x5f')],undefined,_0x5f2102);if(_0x51983e[_0x6ac7('0xa6')]!==-0x1){this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x139'),_0x185395));var _0x108a1c=this[_0x6ac7('0x8a')][_0x6ac7('0x6d')](this,_0x3ce9c8,_0x185395);if(_0x108a1c){for(var _0x2f57c1 in _0x108a1c){if(_0x108a1c[_0x6ac7('0x95')](_0x2f57c1)){this[_0x6ac7('0xb')][_0x6ac7('0x96')](util['format'](_0x6ac7('0x13a'),_0x2f57c1[_0x6ac7('0x64')]()),_0x108a1c[_0x2f57c1]);}}return this['channel'][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x13b'),JSON[_0x6ac7('0x71')](_0x108a1c)));}}return _0x51983e;};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x13c')]=function(_0x51bdda){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x13d'),_0x51bdda[_0x6ac7('0x33')]));return this[_0x6ac7('0xb')][_0x6ac7('0x13e')](_0x51bdda[_0x6ac7('0x13f')],_0x51bdda[_0x6ac7('0x38')],_0x51bdda[_0x6ac7('0x39')]);};AGIVertices['prototype'][_0x6ac7('0x140')]=function(_0x557b8d){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x141'),_0x557b8d[_0x6ac7('0x33')]));if(!this['isConfigured'](_0x557b8d[_0x6ac7('0x142')])){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x557b8d,_0x6ac7('0x143'));}try{var _0x5d18e5=eval(_0x557b8d[_0x6ac7('0x142')])?_0x6ac7('0x144'):'false';this[_0x6ac7('0xb')]['noop'](util[_0x6ac7('0x4f')](_0x6ac7('0x145'),_0x557b8d['condition'],_0x5d18e5));return{'code':0xc8,'result':_0x5d18e5};}catch(_0x1c11f6){return{'code':0xc8,'result':_0x6ac7('0x146')};}};AGIVertices['prototype'][_0x6ac7('0x147')]=function(_0x1e57eb){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x148'),_0x1e57eb[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x1e57eb['interval_id'])){return this[_0x6ac7('0xb')]['error'](_0x1e57eb,'no\x20interval\x20configured');}var _0x260903=this[_0x6ac7('0x1f')][_0x6ac7('0x6d')](this,_0x1e57eb[_0x6ac7('0x149')]);if(!_0x260903){return this['channel'][_0x6ac7('0x28')](_0x1e57eb,_0x6ac7('0x14a'));}for(var _0x84ee5f=0x0;_0x84ee5f<_0x260903[_0x6ac7('0x93')];_0x84ee5f+=0x1){var _0x2a1eb2=this[_0x6ac7('0xb')][_0x6ac7('0xe')](util[_0x6ac7('0x4f')]('IFTIME(%s?true:false)',_0x260903[_0x84ee5f]));if(_0x2a1eb2[_0x6ac7('0xa6')]===-0x1){return _0x2a1eb2;}logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x14b'),_0x260903[_0x84ee5f],_0x2a1eb2[_0x6ac7('0x9b')]));if(_0x2a1eb2[_0x6ac7('0x9b')]===_0x6ac7('0x144')){logger[_0x6ac7('0x2a')](util['format']('IFTIME\x20%s\x20%s',_0x260903[_0x84ee5f],_0x6ac7('0x144')));this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x14b'),_0x260903[_0x84ee5f],'true'));return{'code':0xc8,'result':_0x6ac7('0x144')};}else{logger['info'](util[_0x6ac7('0x4f')](_0x6ac7('0x14b'),_0x260903[_0x84ee5f],_0x6ac7('0x146')));this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util['format'](_0x6ac7('0x14b'),_0x260903[_0x84ee5f],_0x6ac7('0x146')));}}return{'code':0xc8,'result':_0x6ac7('0x146')};};AGIVertices['prototype'][_0x6ac7('0x14c')]=function(_0x1f96e4){logger['info'](util['format'](_0x6ac7('0x14d'),_0x1f96e4[_0x6ac7('0x33')]));return this['channel'][_0x6ac7('0x14c')]();};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x14e')]=function(_0x28a430){logger['info'](util[_0x6ac7('0x4f')]('Enter\x20in\x20ISPEECHASR\x20(%s)\x20block',_0x28a430[_0x6ac7('0x33')]));if(!this['isConfigured'](_0x28a430[_0x6ac7('0x78')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xe1'));}var _0x5f1978='wav';var _0x2e5067=util[_0x6ac7('0x4f')](_0x6ac7('0x14f'),FILES_PATH,rs['generate'](0x4));var _0x414534=util[_0x6ac7('0x4f')]('%s.%s',_0x2e5067,_0x5f1978);var _0x5081f5=!![];if(_0x28a430[_0x6ac7('0x12e')]===_0x6ac7('0x12f')){_0x5081f5=![];}var _0xa86daf=this[_0x6ac7('0xb')][_0x6ac7('0x130')](_0x2e5067,_0x5f1978,_0x28a430['intKey'],_0x28a430[_0x6ac7('0x5f')],undefined,_0x5081f5);if(_0xa86daf[_0x6ac7('0xa6')]!==-0x1){this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x150'),_0x414534));var _0x11e4fc=this[_0x6ac7('0x83')][_0x6ac7('0x6d')](this,_0x28a430,_0x414534);if(_0x11e4fc){for(var _0xf39dd7 in _0x11e4fc){if(_0x11e4fc['hasOwnProperty'](_0xf39dd7)){this[_0x6ac7('0xb')][_0x6ac7('0x96')](util[_0x6ac7('0x4f')](_0x6ac7('0x151'),_0xf39dd7[_0x6ac7('0x64')]()),_0x11e4fc[_0xf39dd7]);}}return this[_0x6ac7('0xb')]['noop'](util[_0x6ac7('0x4f')](_0x6ac7('0x152'),JSON[_0x6ac7('0x71')](_0x11e4fc)));}}return _0xa86daf;};AGIVertices['prototype']['ispeechtts']=function(_0x80f8c9){logger['info'](util[_0x6ac7('0x4f')](_0x6ac7('0x153'),_0x80f8c9[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x80f8c9[_0x6ac7('0x78')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0xe1'));}if(!this[_0x6ac7('0x9e')](_0x80f8c9[_0x6ac7('0x58')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')]('no\x20text\x20configured');}this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x154'),_0x80f8c9[_0x6ac7('0x58')]));var _0x4aa0b8=this[_0x6ac7('0x7f')][_0x6ac7('0x6d')](this,_0x80f8c9);if(_0x4aa0b8){this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util['format'](_0x6ac7('0x150'),_0x4aa0b8));var _0x2eefcb=this[_0x6ac7('0xb')][_0x6ac7('0xfb')](_0x4aa0b8,_0x80f8c9[_0x6ac7('0x155')]);try{fs[_0x6ac7('0xfc')](_0x4aa0b8+_0x6ac7('0xfd'));}catch(_0x3612c7){logger[_0x6ac7('0x28')](_0x3612c7);}return _0x2eefcb;}return this['channel'][_0x6ac7('0x28')](_0x80f8c9,_0x6ac7('0x156'));};AGIVertices['prototype']['login']=function(_0x2013c0){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x157'),_0x2013c0['label']));if(!this['isConfigured'](_0x2013c0['findBy'])){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x2013c0,_0x6ac7('0x158'));}logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x159'),this['channel'][_0x6ac7('0x35')],_0x2013c0[_0x6ac7('0x15a')]));var _0x7d3125=this[_0x6ac7('0x4e')][_0x6ac7('0x6d')](this,_0x2013c0['findBy']);if(_0x7d3125){logger['info'](util[_0x6ac7('0x4f')](_0x6ac7('0x15b'),this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2013c0[_0x6ac7('0x15a')]));this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2013c0[_0x6ac7('0x15a')]));return{'code':0xc8,'result':_0x6ac7('0x15c')};}else{logger[_0x6ac7('0x2a')](util['format'](_0x6ac7('0x15d'),this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2013c0[_0x6ac7('0x15a')]));this[_0x6ac7('0xb')]['noop'](util['format'](_0x6ac7('0x15d'),this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2013c0[_0x6ac7('0x15a')]));return{'code':0xc8,'result':'failure'};}};AGIVertices['prototype'][_0x6ac7('0x15e')]=function(_0x2fbe1f){logger['info'](util[_0x6ac7('0x4f')](_0x6ac7('0x15f'),_0x2fbe1f[_0x6ac7('0x33')]));if(!this['isConfigured'](_0x2fbe1f[_0x6ac7('0x15a')])){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x2fbe1f,_0x6ac7('0x158'));}logger[_0x6ac7('0x2a')](util['format'](_0x6ac7('0x159'),this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2fbe1f[_0x6ac7('0x15a')]));var _0x519f4d=this['agentLogout']['sync'](this,_0x2fbe1f[_0x6ac7('0x15a')]);if(_0x519f4d){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x15b'),this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2fbe1f['findBy']));this[_0x6ac7('0xb')]['noop'](util[_0x6ac7('0x4f')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2fbe1f[_0x6ac7('0x15a')]));return{'code':0xc8,'result':'success'};}else{logger['info'](util[_0x6ac7('0x4f')](_0x6ac7('0x15d'),this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2fbe1f['findBy']));this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util['format']('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2fbe1f[_0x6ac7('0x15a')]));return{'code':0xc8,'result':_0x6ac7('0x160')};}};AGIVertices[_0x6ac7('0xd')]['math']=function(_0x7f40cf){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')]('Enter\x20in\x20MATH\x20(%s)\x20block',_0x7f40cf['label']));if(!this[_0x6ac7('0x9e')](_0x7f40cf['operation'])){return this['channel'][_0x6ac7('0x28')](_0x7f40cf,_0x6ac7('0x161'));}this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x162'),_0x7f40cf['operation']));var _0x57892a=eval(_0x7f40cf['operation']);if(!this[_0x6ac7('0x9e')](_0x7f40cf['variable_id'])){return this[_0x6ac7('0xb')]['noop'](_0x6ac7('0x10e'));}var _0x558c38=this['getVariable'][_0x6ac7('0x6d')](this,_0x7f40cf[_0x6ac7('0xd2')]);if(!_0x558c38){return this[_0x6ac7('0xb')]['error'](_0x7f40cf,_0x6ac7('0x163'));}if(_[_0x6ac7('0x92')](_0x57892a)){var _0x5132cc=this;_0x57892a[_0x6ac7('0xd4')](function(_0x45fc6b,_0x1e45fa){_0x5132cc['channel'][_0x6ac7('0x96')](util[_0x6ac7('0x4f')](_0x6ac7('0x164'),_0x558c38,_0x1e45fa),_0x45fc6b);});return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util['format']('variable\x20%s[key]\x20set',_0x558c38));}else{return this['channel'][_0x6ac7('0x96')](_0x558c38,_0x57892a);}};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x165')]=function(_0x308056){logger['info'](util['format'](_0x6ac7('0x166'),_0x308056['label']));if(_0x308056['retry']===0x0){return this[_0x6ac7('0x9f')](_0x308056);}_0x308056[_0x6ac7('0xa0')]-=0x1;if(!this[_0x6ac7('0x9e')](_0x308056[_0x6ac7('0x10b')])){return this['channel'][_0x6ac7('0x28')](_0x308056,_0x6ac7('0x10c'));}var _0x5d0b43=this[_0x6ac7('0x167')][_0x6ac7('0x6d')](this,_0x308056[_0x6ac7('0x10b')]);if(!_0x5d0b43){return this[_0x6ac7('0xb')]['error'](_0x308056,'no\x20file\x20audio\x20found');}var _0x3ef6e8=this['channel'][_0x6ac7('0x10f')](_0x5d0b43,_0x308056[_0x6ac7('0x110')],_0x308056['digit']);var _0x4fc476=_0x3ef6e8[_0x6ac7('0xa6')];if(_0x3ef6e8[_0x6ac7('0xa6')]===-0x1){this[_0x6ac7('0x31')][_0x6ac7('0x6d')](this,_0x308056,'-1');return _0x3ef6e8;}else if(_0x3ef6e8[_0x6ac7('0x9b')]==='timeout'){_0x3ef6e8[_0x6ac7('0xa6')]=_0x3ef6e8[_0x6ac7('0xa6')][_0x6ac7('0x93')]>0x0?_0x3ef6e8[_0x6ac7('0xa6')]:'t';}else if(_[_0x6ac7('0x3e')](_0x3ef6e8[_0x6ac7('0xa6')])){_0x3ef6e8[_0x6ac7('0xa6')]='#';_0x4fc476='#';}if(!this[_0x6ac7('0x9e')](_0x308056['variable_id'])){this['channel'][_0x6ac7('0xa2')]('no\x20variable\x20selected\x20for\x20the\x20result');}else{var _0x481a7b=this[_0x6ac7('0xe')][_0x6ac7('0x6d')](this,_0x308056[_0x6ac7('0xd2')]);if(!_0x481a7b){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x308056,_0x6ac7('0x163'));}this['channel'][_0x6ac7('0x96')](_0x481a7b,_0x4fc476);}this['createSquareDetailsReport'][_0x6ac7('0x6d')](this,_0x308056,_0x4fc476);return _0x3ef6e8;};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0xa2')]=function(_0x3b0f45){logger[_0x6ac7('0x2a')](util['format'](_0x6ac7('0x168'),_0x3b0f45[_0x6ac7('0x33')]));return this[_0x6ac7('0xb')]['noop'](_0x3b0f45['output']||_0x3b0f45[_0x6ac7('0x33')]);};AGIVertices['prototype'][_0x6ac7('0x169')]=function(_0x2b7747){logger[_0x6ac7('0x2a')](util['format'](_0x6ac7('0x16a'),_0x2b7747[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x2b7747[_0x6ac7('0x15a')])){return this['channel'][_0x6ac7('0x28')](_0x2b7747,_0x6ac7('0x158'));}logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')]('FIND\x20AGENT\x20%s\x20BY\x20%s',this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2b7747[_0x6ac7('0x15a')]));var _0x448951=this[_0x6ac7('0x48')]['sync'](this,_0x2b7747[_0x6ac7('0x16b')]);var _0x583d63=this[_0x6ac7('0x4a')]['sync'](this,_0x2b7747[_0x6ac7('0x15a')],_0x448951);if(_0x583d63){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x15b'),this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2b7747[_0x6ac7('0x15a')]));this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2b7747['findBy']));return{'code':0xc8,'result':'success'};}else{logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x15d'),this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2b7747['findBy']));this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x15b'),this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x2b7747[_0x6ac7('0x15a')]));return{'code':0xc8,'result':_0x6ac7('0x160')};}};AGIVertices[_0x6ac7('0xd')]['playback']=function(_0x1c4317){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x16c'),_0x1c4317[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x1c4317[_0x6ac7('0x10b')])){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x1c4317,_0x6ac7('0x10c'));}var _0x515f6a=this[_0x6ac7('0x167')][_0x6ac7('0x6d')](this,_0x1c4317['file_id']);if(!_0x515f6a){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x1c4317,_0x6ac7('0x10d'));}var _0x56d501=this[_0x6ac7('0xb')][_0x6ac7('0x53')](_0x6ac7('0x16d'),[_0x515f6a,_0x1c4317[_0x6ac7('0xdd')]]);if(_0x56d501[_0x6ac7('0xa6')]===-0x1){return _0x56d501;}return this['channel'][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')]('Executed\x20command\x20%s\x20%s','PLAYBACK',_0x515f6a));};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x16e')]=function(_0x4285c0){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x16f'),_0x4285c0[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x4285c0[_0x6ac7('0x170')])){return this['channel'][_0x6ac7('0x28')](_0x4285c0,_0x6ac7('0x171'));}var _0x3be39c='';var _0xa42327=parseInt(_0x4285c0[_0x6ac7('0x170')],0xa);if(isNaN(_0xa42327)){_0x3be39c=_0x4285c0['queue_id'];}else{_0x3be39c=this[_0x6ac7('0x12')]['sync'](this,_0x4285c0[_0x6ac7('0x170')]);if(!_0x3be39c){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x4285c0,_0x6ac7('0x172'));}}var _0x1471eb='';if(this['isConfigured'](_0x4285c0['file_id'])){var _0xef4d54=this[_0x6ac7('0x167')][_0x6ac7('0x6d')](this,_0x4285c0[_0x6ac7('0x10b')]);if(_0xef4d54){_0x1471eb=_0xef4d54;}}this[_0x6ac7('0x31')][_0x6ac7('0x6d')](this,_0x4285c0,_0x3be39c);if(_0x4285c0['opts'][_0x6ac7('0x173')]('x')<0x0){_0x4285c0[_0x6ac7('0xdd')]+='x';}if(_0x4285c0[_0x6ac7('0xdd')][_0x6ac7('0x173')]('X')<0x0){_0x4285c0[_0x6ac7('0xdd')]+='X';}this[_0x6ac7('0xb')][_0x6ac7('0x96')](_0x6ac7('0x174'),_0x3be39c?_0x3be39c['toLowerCase']():'');var _0x40f9d6=this[_0x6ac7('0xb')][_0x6ac7('0x53')]('QUEUE',[_0x3be39c,_0x4285c0[_0x6ac7('0xdd')],_0x4285c0[_0x6ac7('0x70')],_0x1471eb,_0x4285c0[_0x6ac7('0x5f')],_0x4285c0['agi'],_0x4285c0['macro'],_0x4285c0[_0x6ac7('0x175')],'',_0x4285c0[_0x6ac7('0x176')]]);if(_0x40f9d6[_0x6ac7('0xa6')]===-0x1){return _0x40f9d6;}return this['channel']['noop'](util[_0x6ac7('0x4f')]('Executed\x20command\x20%s\x20%s',_0x6ac7('0x177'),_0x3be39c));};AGIVertices['prototype']['record']=function(_0x4a9b50){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x178'),_0x4a9b50[_0x6ac7('0x33')]));var _0x512132=_0x4a9b50['recordingFormat']||_0x6ac7('0x12d');var _0x274d46=util['format'](_0x6ac7('0x179'),this[_0x6ac7('0xb')][_0x6ac7('0x32')],rs['generate'](0x5));var _0x57e23a=util[_0x6ac7('0x4f')](_0x6ac7('0x17a'),FILES_PATH,_0x274d46,_0x512132);var _0xf937db=util[_0x6ac7('0x4f')](_0x6ac7('0x14f'),FILES_PATH,_0x274d46);this['createSquareRecording'][_0x6ac7('0x6d')](this,_0x4a9b50,_0x274d46,_0x57e23a);this[_0x6ac7('0xb')][_0x6ac7('0x96')](_0x6ac7('0x17b'),_0x274d46);logger[_0x6ac7('0x2a')](_0x6ac7('0x17c'),_0xf937db,_0x512132,_0x4a9b50['escape_digits'],_0x4a9b50[_0x6ac7('0x5f')]);return this[_0x6ac7('0xb')][_0x6ac7('0x130')](_0xf937db,_0x512132,_0x4a9b50[_0x6ac7('0x17d')],_0x4a9b50[_0x6ac7('0x5f')],undefined,!![]);};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x17e')]=function(_0x28be46){logger[_0x6ac7('0x2a')](util['format'](_0x6ac7('0x17f'),_0x28be46[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x28be46['url'])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0x180'));}var _0x19ec7f=this[_0x6ac7('0x181')]['sync'](this,_0x28be46);logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')]('Response:',util['inspect'](_0x19ec7f,{'showHidden':![],'depth':null})));if(!this[_0x6ac7('0x9e')](_0x28be46[_0x6ac7('0xd2')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0x182'));}var _0x221057=this[_0x6ac7('0xe')]['sync'](this,_0x28be46[_0x6ac7('0xd2')]);if(!_0x221057){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x28be46,_0x6ac7('0x163'));}this[_0x6ac7('0xb')]['setVariable'](util[_0x6ac7('0x4f')]('%s_STATUS_CODE',_0x221057),_0x19ec7f[_0x6ac7('0x74')]?_0x19ec7f['statusCode']:_0x6ac7('0x183'));this[_0x6ac7('0xb')]['setVariable'](util['format'](_0x6ac7('0x184'),_0x221057),_0x19ec7f[_0x6ac7('0x73')]?_0x19ec7f[_0x6ac7('0x73')]:'OK');if(_0x19ec7f['body']){try{this[_0x6ac7('0x94')](_0x19ec7f[_0x6ac7('0x65')],_0x221057);}catch(_0x5b9064){logger[_0x6ac7('0x28')](util[_0x6ac7('0x4f')](_0x6ac7('0x185'),_0x221057));}}return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util['format'](_0x6ac7('0xd6'),_0x221057));};AGIVertices['prototype']['saydigits']=function(_0x33f081){logger['info'](util['format']('Enter\x20in\x20SAYDIGITS\x20(%s)\x20block',_0x33f081[_0x6ac7('0x33')]));return this[_0x6ac7('0xb')][_0x6ac7('0x186')](_0x33f081[_0x6ac7('0x187')][_0x6ac7('0x55')](/\s+/g,''),_0x33f081[_0x6ac7('0x17d')]);};AGIVertices['prototype']['saynumber']=function(_0x3f59bf){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')]('Enter\x20in\x20SAYNUMBER\x20(%s)\x20block',_0x3f59bf[_0x6ac7('0x33')]));return this['channel']['sayNumber'](_0x3f59bf[_0x6ac7('0x60')][_0x6ac7('0x55')](/\s+/g,''),_0x3f59bf[_0x6ac7('0x17d')]);};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x188')]=function(_0x59eb74){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x189'),_0x59eb74[_0x6ac7('0x33')]));return this['channel'][_0x6ac7('0x18a')](_0x59eb74[_0x6ac7('0x58')],_0x59eb74['escape_digits']);};AGIVertices['prototype'][_0x6ac7('0x18b')]=function(_0x2dd91a){logger[_0x6ac7('0x2a')](util['format'](_0x6ac7('0x18c'),_0x2dd91a[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x2dd91a['account_id'])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0x18d'));}var _0x16769b=this[_0x6ac7('0x1d')]['sync'](this,_0x2dd91a[_0x6ac7('0x18e')]);if(!_0x16769b||!_0x16769b[_0x6ac7('0x18f')]){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x2dd91a,'no\x20mail\x20account\x20found');}var _0x2b77f2={'from':util['format'](_0x6ac7('0x190'),_0x16769b['name'],_0x16769b[_0x6ac7('0x191')]||_0x16769b[_0x6ac7('0x18f')][_0x6ac7('0x192')]),'to':_0x2dd91a['to']||'','cc':_0x2dd91a['cc']||'','bcc':_0x2dd91a[_0x6ac7('0x193')]||'','subject':_0x2dd91a['subject'],'html':_0x2dd91a[_0x6ac7('0x58')],'text':_0x2dd91a[_0x6ac7('0x58')]};var _0x3835a8={'tls':{'rejectUnauthorized':![]}};if(_0x16769b[_0x6ac7('0x18f')][_0x6ac7('0x194')]){_0x3835a8[_0x6ac7('0x194')]=_0x16769b['Smtp'][_0x6ac7('0x194')];}else{_0x3835a8[_0x6ac7('0x195')]=_0x16769b['Smtp'][_0x6ac7('0x195')];_0x3835a8[_0x6ac7('0x196')]=_0x16769b['Smtp'][_0x6ac7('0x196')];_0x3835a8[_0x6ac7('0x197')]=_0x16769b['Smtp'][_0x6ac7('0x197')];}if(_0x16769b[_0x6ac7('0x18f')]['authentication']){_0x3835a8[_0x6ac7('0x198')]={'user':_0x16769b[_0x6ac7('0x18f')][_0x6ac7('0x192')],'pass':_0x16769b['Smtp'][_0x6ac7('0x199')]};}if(this[_0x6ac7('0x9e')](_0x2dd91a['template_id'])){}logger['debug'](_0x6ac7('0x19a'),JSON[_0x6ac7('0x71')](_0x2b77f2));this[_0x6ac7('0x31')][_0x6ac7('0x6d')](this,_0x2dd91a,_0x2dd91a[_0x6ac7('0x18e')]);this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util['format'](_0x6ac7('0x19b'),_0x16769b[_0x6ac7('0x14')]));this['sendMailMessage']['sync'](this,_0x3835a8,_0x2b77f2);return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0x19c'));};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x19d')]=function(_0x1bfb7c){logger['info'](util[_0x6ac7('0x4f')]('Enter\x20in\x20SENDFAX\x20(%s)\x20block',_0x1bfb7c[_0x6ac7('0x33')]));return this[_0x6ac7('0xb')][_0x6ac7('0xa2')](_0x6ac7('0x19e'));};AGIVertices['prototype'][_0x6ac7('0x19f')]=function(_0x6c922b){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x1a0'),_0x6c922b['label']));if(!this[_0x6ac7('0x9e')](_0x6c922b['sms_account_id'])){return this['channel'][_0x6ac7('0xa2')](_0x6ac7('0x1a1'));}var _0x5de5d5=this[_0x6ac7('0x2f')]['sync'](this,_0x6c922b[_0x6ac7('0x1a2')]);if(!_0x5de5d5){return this['channel']['error'](_0x6c922b,_0x6ac7('0x1a3'));}var _0x1d98d6={'body':_0x6c922b[_0x6ac7('0x1a4')],'phone':_0x6c922b['to']||'','SmsAccountId':_0x5de5d5['id']};logger[_0x6ac7('0x1a5')](_0x6ac7('0x1a6'),JSON['stringify'](_0x1d98d6));this[_0x6ac7('0x31')][_0x6ac7('0x6d')](this,_0x6c922b,_0x6c922b['sms_account_id']);this['channel'][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x1a7'),_0x5de5d5['name']));this[_0x6ac7('0x1a8')][_0x6ac7('0x6d')](this,_0x1d98d6);return this['channel']['noop'](_0x6ac7('0x1a9'));};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x1aa')]=function(_0x2bf876){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x1ab'),_0x2bf876['label']));if(!this[_0x6ac7('0x9e')](_0x2bf876[_0x6ac7('0xd2')])){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x2bf876,'no\x20variable\x20selected');}var _0x35457c=this[_0x6ac7('0xe')]['sync'](this,_0x2bf876[_0x6ac7('0xd2')]);if(!_0x35457c){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x2bf876,_0x6ac7('0x163'));}return this[_0x6ac7('0xb')][_0x6ac7('0x96')](_0x35457c,_0x2bf876[_0x6ac7('0x1ac')]);};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x1ad')]=function(_0x43b4bb){logger['info'](util['format']('Enter\x20in\x20START\x20(%s)\x20block',_0x43b4bb[_0x6ac7('0x33')]));this['channel'][_0x6ac7('0xa2')](_0x6ac7('0x1ae'));if(_0x43b4bb[_0x6ac7('0xb5')]===_0x6ac7('0x1af')){this['channel'][_0x6ac7('0xa2')](_0x6ac7('0x1b0'));return this['channel'][_0x6ac7('0xb5')]();}return this[_0x6ac7('0xb')][_0x6ac7('0xa2')]('Skipped\x20Answer');};AGIVertices['prototype']['subproject']=function(_0x598d77){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x1b1'),_0x598d77['label']));if(!this[_0x6ac7('0x9e')](_0x598d77[_0x6ac7('0x1b2')])){return this['channel']['error'](_0x598d77,_0x6ac7('0x1b3'));}var _0x3025b4=this[_0x6ac7('0x1b4')]['sync'](this,_0x598d77[_0x6ac7('0x1b2')]);if(!this['isConfigured'](_0x3025b4)){return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x598d77,util[_0x6ac7('0x4f')]('no\x20subproject\x20found\x20with\x20id\x20%d',_0x598d77[_0x6ac7('0x1b2')]));}if(_0x3025b4===this[_0x6ac7('0xb')][_0x6ac7('0x34')]){return this[_0x6ac7('0xb')]['error'](_0x598d77,_0x6ac7('0x1b5'));}this[_0x6ac7('0x31')]['sync'](this,_0x598d77,_0x3025b4);var _0x512c0f=this[_0x6ac7('0xb')][_0x6ac7('0x53')](_0x6ac7('0x1b6'),util[_0x6ac7('0x4f')](_0x6ac7('0x1b7'),config['agi'][_0x6ac7('0x195')]||_0x6ac7('0x1b8'),_0x3025b4,this[_0x6ac7('0xb')]['arg_1']));if(_0x512c0f[_0x6ac7('0xa6')]===-0x1){return _0x512c0f;}return this['channel'][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0xbf'),'AGI',_0x3025b4));};AGIVertices['prototype']['system']=function(_0xeb675a){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x1b9'),_0xeb675a[_0x6ac7('0x33')]));var _0x338f5a=this[_0x6ac7('0x52')][_0x6ac7('0x6d')](this,_0xeb675a[_0x6ac7('0xb3')]);this['createSquareDetailsReport'][_0x6ac7('0x6d')](this,_0xeb675a,_0xeb675a['command']);if(this[_0x6ac7('0x9e')](_0xeb675a['variable_id'])){var _0x598c44=this[_0x6ac7('0xe')][_0x6ac7('0x6d')](this,_0xeb675a[_0x6ac7('0xd2')]);if(_0x598c44){this[_0x6ac7('0xb')]['setVariable'](_0x598c44,_0x338f5a);return this['channel'][_0x6ac7('0xa2')](util['format'](_0x6ac7('0x1ba'),_0xeb675a[_0x6ac7('0xb3')],_0x598c44));}}return this['channel'][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')]('sh\x20command:\x20%s\x20result\x20no\x20stored',_0xeb675a[_0x6ac7('0xb3')]));};AGIVertices[_0x6ac7('0xd')]['google_cloud_tts']=function(_0x129235){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')]('Enter\x20in\x20Google\x20Cloud\x20TTS\x20(%s)\x20block',_0x129235[_0x6ac7('0x33')]));_0x129235[_0x6ac7('0x58')]=_0x129235[_0x6ac7('0x58')][_0x6ac7('0x55')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0x6ac7('0x9e')](_0x129235[_0x6ac7('0x57')])){return this[_0x6ac7('0xb')][_0x6ac7('0xa2')]('no\x20apiKey\x20configured');}if(!this[_0x6ac7('0x9e')](_0x129235[_0x6ac7('0x58')])){return this['channel'][_0x6ac7('0xa2')](_0x6ac7('0xa3'));}this[_0x6ac7('0xb')]['noop'](util['format'](_0x6ac7('0x1bb'),_0x129235[_0x6ac7('0x58')]));var _0x160975=this['googleCloudTTS'][_0x6ac7('0x6d')](this,_0x129235);if(_0x160975){this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x1bc'),_0x160975));var _0x20f30d=this[_0x6ac7('0xb')][_0x6ac7('0xfb')](_0x160975);try{fs[_0x6ac7('0xfc')](_0x160975+_0x6ac7('0xfd'));}catch(_0x2b73b6){logger[_0x6ac7('0x28')](_0x2b73b6);}return _0x20f30d;}return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x129235,'Google\x20Cloud\x20TTS\x20is\x20unreachable');};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x1bd')]=function(_0x2f644f){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')]('Enter\x20in\x20GOOGLETTS\x20(%s)\x20block',_0x2f644f['label']));_0x2f644f[_0x6ac7('0x58')]=_0x2f644f[_0x6ac7('0x58')][_0x6ac7('0x55')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0x6ac7('0x9e')](_0x2f644f['text'])){return this['channel'][_0x6ac7('0xa2')]('no\x20text\x20configured');}this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util['format'](_0x6ac7('0x1be'),_0x2f644f[_0x6ac7('0x58')]));var _0x5eed60=this[_0x6ac7('0x5c')][_0x6ac7('0x6d')](this,_0x2f644f);if(_0x5eed60){this['channel'][_0x6ac7('0xa2')](util[_0x6ac7('0x4f')](_0x6ac7('0x1bf'),_0x5eed60));var _0x502b60=this[_0x6ac7('0xb')][_0x6ac7('0xfb')](_0x5eed60);try{fs[_0x6ac7('0xfc')](_0x5eed60+'.wav');}catch(_0x16b600){logger['error'](_0x16b600);}return _0x502b60;}return this[_0x6ac7('0xb')][_0x6ac7('0x28')](_0x2f644f,'Google\x20TTS\x20is\x20unreachable');};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x1c0')]=function(_0x93dd6a){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x1c1'),_0x93dd6a[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x93dd6a['findBy'])){return this[_0x6ac7('0xb')]['error'](_0x93dd6a,_0x6ac7('0x158'));}logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x159'),this['channel'][_0x6ac7('0x35')],_0x93dd6a[_0x6ac7('0x15a')]));var _0x126a46=this['agentUnpause'][_0x6ac7('0x6d')](this,_0x93dd6a[_0x6ac7('0x15a')]);if(_0x126a46){logger[_0x6ac7('0x2a')](util[_0x6ac7('0x4f')](_0x6ac7('0x15b'),this[_0x6ac7('0xb')]['callerid'],_0x93dd6a[_0x6ac7('0x15a')]));this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util['format'](_0x6ac7('0x15b'),this['channel'][_0x6ac7('0x35')],_0x93dd6a[_0x6ac7('0x15a')]));return{'code':0xc8,'result':'success'};}else{logger[_0x6ac7('0x2a')](util['format'](_0x6ac7('0x15d'),this['channel'][_0x6ac7('0x35')],_0x93dd6a['findBy']));this[_0x6ac7('0xb')][_0x6ac7('0xa2')](util['format'](_0x6ac7('0x15d'),this[_0x6ac7('0xb')][_0x6ac7('0x35')],_0x93dd6a['findBy']));return{'code':0xc8,'result':_0x6ac7('0x160')};}};AGIVertices['prototype'][_0x6ac7('0x1c2')]=function(_0x4df508){logger[_0x6ac7('0x2a')](util['format']('Enter\x20in\x20VOICEMAIL\x20(%s)\x20block',_0x4df508[_0x6ac7('0x33')]));var _0x14fe34=this['channel'][_0x6ac7('0x53')]('VOICEMAIL',[_0x4df508['mailbox'],_0x4df508[_0x6ac7('0xa4')]]);if(_0x14fe34[_0x6ac7('0xa6')]===-0x1){return _0x14fe34;}return this['channel']['noop'](util['format'](_0x6ac7('0xbf'),_0x6ac7('0x1c3'),_0x4df508[_0x6ac7('0x1c4')]));};AGIVertices[_0x6ac7('0xd')][_0x6ac7('0x1c5')]=function(_0x4a8840){logger[_0x6ac7('0x2a')](util['format'](_0x6ac7('0x1c6'),_0x4a8840[_0x6ac7('0x33')]));if(!this[_0x6ac7('0x9e')](_0x4a8840[_0x6ac7('0xd2')])){return this['channel'][_0x6ac7('0x28')](_0x4a8840,_0x6ac7('0x1c7'));}var _0x51e55c=this[_0x6ac7('0xe')][_0x6ac7('0x6d')](this,_0x4a8840[_0x6ac7('0xd2')]);if(!_0x51e55c){return this['channel']['error'](_0x4a8840,'no\x20variable\x20found');}var _0x2d3e22=this[_0x6ac7('0xb')][_0x6ac7('0xe')](_0x51e55c);return{'code':0xc8,'result':_0x2d3e22[_0x6ac7('0x9b')]?_0x2d3e22['extra']:'-'};};String[_0x6ac7('0xd')][_0x6ac7('0x9a')]=function(_0x24578d,_0x41d82e){return this['split'](_0x24578d)['join'](_0x41d82e);};module[_0x6ac7('0x1c8')]=AGIVertices;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78a5=['syncHangup','agentringnoanswer','syncAgentRingNoAnswer','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','syncAgentConnectPreview','milliseconds','diff','prototype','startAcw','interface','queue','mandatoryDisposition','mandatoryDispositionPause','name','Action','QueuePause','getAgent','then','[%s][START][AGENT:%s][QUEUE:%s]','attended','destlinkedid','savePause','info','acwTimeout','timer','stopAcw','lastPauseAt','format','YYYY-MM-DD\x20HH:mm:ss','uniqueid','updateAcw','update','[%s][UPDATE][ACWTIME:%s]','[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','catch','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','finally','error','[ACW][START]\x20%s','message','[%s][TIMER][STOP][AGENT:%s]','saveUnpause','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','stringify','[ACW][STOP]\x20%s','syncAgentConnect','[ACW][syncAgentConnect]\x20%s','isUndefined','[%s][HANGUP:UNIQUEID]','[%s][HANGUP:LINKEDID]','linkedid','[ACW][syncHangupRequest]\x20%s','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','[%s][BLINDTRANSFER:UNIQUEID]','transfererlinkedid','[%s][BLINDTRANSFER:LINKEDID]','[ACW][syncBlindTransfer]\x20%s','autopause','all','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','Auto-Pause','exports','util','lodash','moment','../ami','../../../config/logger','acw','../rpc/voiceAgentReport','voiceQueues','agents','timers','channels','agentconnect','hanguprequest','syncHangupRequest','bind'];(function(_0x2fc2f4,_0x28737d){var _0x10819e=function(_0x20f261){while(--_0x20f261){_0x2fc2f4['push'](_0x2fc2f4['shift']());}};_0x10819e(++_0x28737d);}(_0x78a5,0x1b3));var _0x578a=function(_0x3c22e0,_0x1dc6ea){_0x3c22e0=_0x3c22e0-0x0;var _0x215811=_0x78a5[_0x3c22e0];return _0x215811;};'use strict';var util=require(_0x578a('0x0'));var _=require(_0x578a('0x1'));var moment=require(_0x578a('0x2'));var ami=require(_0x578a('0x3'));var logger=require(_0x578a('0x4'))(_0x578a('0x5'));var RpcUser=require('../rpc/user');var RpcVoiceAgentReport=require(_0x578a('0x6'));function Acw(_0x4113da){this[_0x578a('0x7')]=_0x4113da[_0x578a('0x7')];this[_0x578a('0x8')]=_0x4113da['agents'];this['timers']=_0x4113da[_0x578a('0x9')];this[_0x578a('0xa')]={};ami['on'](_0x578a('0xb'),this['syncAgentConnect']['bind'](this));ami['on'](_0x578a('0xc'),this[_0x578a('0xd')][_0x578a('0xe')](this));ami['on']('hangup',this[_0x578a('0xf')][_0x578a('0xe')](this));ami['on'](_0x578a('0x10'),this[_0x578a('0x11')][_0x578a('0xe')](this));ami['on'](_0x578a('0x12'),this[_0x578a('0x13')][_0x578a('0xe')](this));ami['on'](_0x578a('0x14'),this[_0x578a('0x15')][_0x578a('0xe')](this));ami['on'](_0x578a('0x16'),this[_0x578a('0x17')][_0x578a('0xe')](this));}function getDiff(_0x17e415){var _0x57c9f2=moment()[_0x578a('0x18')](0x0);var _0x2c2109=moment(_0x17e415)[_0x578a('0x18')](0x0);return _0x57c9f2[_0x578a('0x19')](_0x2c2109,'seconds');}Acw[_0x578a('0x1a')][_0x578a('0x1b')]=function(_0x31c387){try{var _0x314e06=this;var _0x55dbfa=this['channels'][_0x31c387][_0x578a('0x1c')];var _0x47b8b3=this[_0x578a('0xa')][_0x31c387][_0x578a('0x1d')];var _0x1764e1=this[_0x578a('0x7')][_0x47b8b3];var _0x177095=![];var _0x28e809='ACW';if(_0x1764e1[_0x578a('0x1e')]){if(_0x1764e1[_0x578a('0x1f')][_0x578a('0x20')]){_0x177095=!![];_0x28e809=_0x1764e1['mandatoryDispositionPause']['name'];}}ami[_0x578a('0x21')]({'action':_0x578a('0x22'),'interface':_0x55dbfa,'paused':!![],'reason':_0x28e809})['then'](function(_0x22d909){if(_0x314e06['agents'][_0x55dbfa]){return RpcUser[_0x578a('0x23')](_0x314e06[_0x578a('0x8')][_0x55dbfa]['id'])[_0x578a('0x24')](function(_0x3351e7){if(_0x3351e7&&!_0x3351e7['voicePause']){logger['info'](_0x578a('0x25'),_0x31c387,_0x55dbfa,_0x47b8b3);var _0x54096d=_0x314e06[_0x578a('0xa')][_0x31c387][_0x578a('0x26')]&&_0x314e06[_0x578a('0xa')][_0x31c387][_0x578a('0x27')]?_0x314e06['channels'][_0x31c387][_0x578a('0x27')]:_0x31c387;return RpcUser[_0x578a('0x28')](_0x314e06[_0x578a('0x8')][_0x55dbfa],_0x28e809,_0x54096d)[_0x578a('0x24')](function(_0x3fa0b2){if(!_0x177095){_0x314e06[_0x578a('0x9')][_0x55dbfa]={};logger[_0x578a('0x29')]('[%s][TIMER:%s][AGENT:%s][QUEUE:%s]',_0x31c387,_0x314e06[_0x578a('0x7')][_0x47b8b3][_0x578a('0x2a')],_0x55dbfa,_0x47b8b3);_0x314e06[_0x578a('0x9')][_0x55dbfa][_0x578a('0x2b')]=setTimeout(_0x314e06[_0x578a('0x2c')][_0x578a('0xe')](_0x314e06,_0x55dbfa),_0x314e06[_0x578a('0x7')][_0x47b8b3][_0x578a('0x2a')]*0x3e8);_0x314e06[_0x578a('0x9')][_0x55dbfa][_0x578a('0x2d')]=moment()[_0x578a('0x2e')](_0x578a('0x2f'));_0x314e06[_0x578a('0x9')][_0x55dbfa][_0x578a('0x30')]=_0x31c387;_0x314e06[_0x578a('0x9')][_0x55dbfa]['queue']=_0x47b8b3;_0x314e06[_0x578a('0x9')][_0x55dbfa][_0x578a('0x31')]=function(){var _0x5baaf6=getDiff(_0x314e06[_0x578a('0x9')][_0x55dbfa][_0x578a('0x2d')]);clearTimeout(_0x314e06[_0x578a('0x9')][_0x55dbfa][_0x578a('0x2b')]);_0x314e06[_0x578a('0x9')][_0x55dbfa][_0x578a('0x2b')]=![];RpcVoiceAgentReport[_0x578a('0x32')]({'acwtime':_0x5baaf6},_0x314e06['timers'][_0x55dbfa][_0x578a('0x30')],_0x55dbfa)[_0x578a('0x24')](function(_0x55070d){logger[_0x578a('0x29')](_0x578a('0x33'),_0x31c387,_0x5baaf6,_0x55070d);})['catch'](function(_0x271837){logger['error'](_0x578a('0x34'),_0x31c387,_0x271837);});delete _0x314e06[_0x578a('0x9')][_0x55dbfa];};}});}else{logger[_0x578a('0x29')](_0x578a('0x35'),_0x31c387,_0x55dbfa,_0x47b8b3);}});}})[_0x578a('0x36')](function(_0x57c72d){logger['error'](_0x578a('0x37'),_0x31c387,_0x314e06['voiceQueues'][_0x47b8b3][_0x578a('0x2a')],_0x55dbfa,_0x47b8b3);})[_0x578a('0x38')](function(){delete _0x314e06[_0x578a('0xa')][_0x31c387];});}catch(_0x2135f4){logger[_0x578a('0x39')](_0x578a('0x3a'),_0x2135f4[_0x578a('0x3b')]);}};Acw['prototype']['stopAcw']=function(_0x3da3c9){try{var _0x4c9d2b=this;if(_0x4c9d2b[_0x578a('0x9')][_0x3da3c9]){_0x4c9d2b[_0x578a('0x9')][_0x3da3c9]['timer']=![];var _0x126faf=_0x4c9d2b['timers'][_0x3da3c9][_0x578a('0x30')];var _0x11081=_0x4c9d2b[_0x578a('0x9')][_0x3da3c9][_0x578a('0x1d')];var _0x1125da=_0x4c9d2b[_0x578a('0x7')][_0x11081][_0x578a('0x2a')];logger[_0x578a('0x29')](_0x578a('0x3c'),_0x126faf,_0x3da3c9);RpcUser[_0x578a('0x3d')](this[_0x578a('0x8')][_0x3da3c9]);RpcVoiceAgentReport[_0x578a('0x32')]({'acwtime':_0x1125da,'agentacw':!![]},_0x126faf,_0x3da3c9)['then'](function(_0x291917){logger['info'](_0x578a('0x33'),_0x126faf,_0x1125da,_0x291917);})[_0x578a('0x36')](function(_0x331dd6){logger[_0x578a('0x39')]('[%s][UPDATE][ERRORS:%s]',_0x126faf,_0x331dd6);});}else{logger[_0x578a('0x39')](_0x578a('0x3e'),_0x3da3c9);if(_0x4c9d2b[_0x578a('0x9')]){logger['info']('[ACW][TIMERS]',JSON[_0x578a('0x3f')](_0x4c9d2b[_0x578a('0x9')]));}}}catch(_0x21944d){logger[_0x578a('0x39')](_0x578a('0x40'),_0x21944d[_0x578a('0x3b')]);}};Acw[_0x578a('0x1a')][_0x578a('0x41')]=function(_0x2d2e8b){try{if(this[_0x578a('0x7')][_0x2d2e8b[_0x578a('0x1d')]]&&(this[_0x578a('0x7')][_0x2d2e8b[_0x578a('0x1d')]][_0x578a('0x5')]||this[_0x578a('0x7')][_0x2d2e8b['queue']][_0x578a('0x1e')])){if(this[_0x578a('0x8')][_0x2d2e8b[_0x578a('0x1c')]]){this[_0x578a('0xa')][_0x2d2e8b['uniqueid']]={'queue':_0x2d2e8b[_0x578a('0x1d')],'interface':_0x2d2e8b[_0x578a('0x1c')],'destlinkedid':_0x2d2e8b[_0x578a('0x27')]};}}}catch(_0x117ed0){logger['error'](_0x578a('0x42'),_0x117ed0[_0x578a('0x3b')]);}};Acw['prototype'][_0x578a('0x17')]=function(_0x416a72){try{if(this[_0x578a('0x7')][_0x416a72[_0x578a('0x1d')]]&&(this['voiceQueues'][_0x416a72[_0x578a('0x1d')]]['acw']||this[_0x578a('0x7')][_0x416a72['queue']][_0x578a('0x1e')])){if(this[_0x578a('0x8')][_0x416a72['interface']]){this['channels'][_0x416a72[_0x578a('0x30')]]={'queue':_0x416a72['queue'],'interface':_0x416a72[_0x578a('0x1c')]};}}}catch(_0x415889){logger[_0x578a('0x39')]('[ACW][syncAgentConnectPreview]\x20%s',_0x415889[_0x578a('0x3b')]);}};Acw[_0x578a('0x1a')]['syncHangupRequest']=function(_0xaadbd6){try{if(this[_0x578a('0xa')][_0xaadbd6[_0x578a('0x30')]]&&_[_0x578a('0x43')](this[_0x578a('0xa')][_0xaadbd6[_0x578a('0x30')]][_0x578a('0x26')])){logger[_0x578a('0x29')](_0x578a('0x44'),_0xaadbd6[_0x578a('0x30')]);this['startAcw'](_0xaadbd6[_0x578a('0x30')]);}else if(this[_0x578a('0xa')][_0xaadbd6['linkedid']]&&_[_0x578a('0x43')](this['channels'][_0xaadbd6['linkedid']][_0x578a('0x26')])){logger[_0x578a('0x29')](_0x578a('0x45'),_0xaadbd6[_0x578a('0x46')]);this[_0x578a('0x1b')](_0xaadbd6[_0x578a('0x46')]);}}catch(_0x4c1ac0){logger['error'](_0x578a('0x47'),_0x4c1ac0['message']);}};Acw[_0x578a('0x1a')][_0x578a('0xf')]=function(_0x10a640){try{if(this['channels'][_0x10a640[_0x578a('0x30')]]&&this[_0x578a('0xa')][_0x10a640[_0x578a('0x30')]][_0x578a('0x26')]){logger[_0x578a('0x29')](_0x578a('0x48'),_0x10a640[_0x578a('0x30')]);this[_0x578a('0x1b')](_0x10a640[_0x578a('0x30')]);}else if(this['channels'][_0x10a640['linkedid']]&&this[_0x578a('0xa')][_0x10a640[_0x578a('0x46')]][_0x578a('0x26')]){logger[_0x578a('0x29')](_0x578a('0x49'),_0x10a640[_0x578a('0x46')]);this['startAcw'](_0x10a640[_0x578a('0x46')]);}}catch(_0x437e0a){logger['error']('[ACW][syncHangup]\x20%s',_0x437e0a[_0x578a('0x3b')]);}};Acw['prototype'][_0x578a('0x13')]=function(_0xde5f09){try{if(!_[_0x578a('0x4a')](this[_0x578a('0xa')][_0xde5f09[_0x578a('0x4b')]])){this[_0x578a('0x1b')](_0xde5f09[_0x578a('0x4b')]);if(this[_0x578a('0xa')][_0xde5f09[_0x578a('0x4c')]]){this[_0x578a('0xa')][_0xde5f09[_0x578a('0x4c')]][_0x578a('0x26')]=!![];this['channels'][_0xde5f09[_0x578a('0x4d')]]=this[_0x578a('0xa')][_0xde5f09[_0x578a('0x4c')]];delete this['channels'][_0xde5f09[_0x578a('0x4c')]];}}else if(!_[_0x578a('0x4a')](this[_0x578a('0xa')][_0xde5f09['transfertargetuniqueid']])){this['startAcw'](_0xde5f09['transfertargetuniqueid']);if(this[_0x578a('0xa')][_0xde5f09['origtransfereruniqueid']]){this[_0x578a('0xa')][_0xde5f09[_0x578a('0x4e')]][_0x578a('0x26')]=!![];this['channels'][_0xde5f09['transfereeuniqueid']]=this[_0x578a('0xa')][_0xde5f09[_0x578a('0x4e')]];delete this[_0x578a('0xa')][_0xde5f09[_0x578a('0x4e')]];}}}catch(_0x594d39){logger[_0x578a('0x39')](_0x578a('0x4f'),_0x594d39[_0x578a('0x3b')]);}};Acw[_0x578a('0x1a')][_0x578a('0x15')]=function(_0x52dbf5){try{if(this[_0x578a('0xa')][_0x52dbf5[_0x578a('0x50')]]){logger[_0x578a('0x29')](_0x578a('0x51'),JSON[_0x578a('0x3f')](_0x52dbf5['transfereruniqueid']));this[_0x578a('0x1b')](_0x52dbf5[_0x578a('0x50')]);}else if(this[_0x578a('0xa')][_0x52dbf5[_0x578a('0x52')]]){logger[_0x578a('0x29')](_0x578a('0x53'),JSON['stringify'](_0x52dbf5[_0x578a('0x52')]));this['startAcw'](_0x52dbf5[_0x578a('0x52')]);}}catch(_0x37d5c7){logger[_0x578a('0x39')](_0x578a('0x54'),_0x37d5c7[_0x578a('0x3b')]);}};Acw['prototype'][_0x578a('0x11')]=function(_0x27c72e){try{if(this[_0x578a('0x7')][_0x27c72e[_0x578a('0x1d')]]&&this[_0x578a('0x7')][_0x27c72e[_0x578a('0x1d')]][_0x578a('0x55')]===_0x578a('0x56')){if(this[_0x578a('0x8')][_0x27c72e['interface']]){logger[_0x578a('0x29')](_0x578a('0x57'),_0x27c72e[_0x578a('0x30')],_0x27c72e[_0x578a('0x1c')],_0x27c72e[_0x578a('0x1d')]);return RpcUser['savePause'](this[_0x578a('0x8')][_0x27c72e['interface']],_0x578a('0x58'),_0x27c72e[_0x578a('0x30')]);}}}catch(_0x1262ed){logger[_0x578a('0x39')]('[ACW][syncAgentRingNoAnswer]\x20%s',_0x1262ed['message']);}};module[_0x578a('0x59')]=Acw;
\ No newline at end of file
+var _0x28b2=['voicePause','info','attended','destlinkedid','savePause','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','stopAcw','format','YYYY-MM-DD\x20HH:mm:ss','uniqueid','lastPauseAt','timer','update','catch','error','[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','[ACW][START]\x20%s','message','[%s][TIMER][STOP][AGENT:%s]','[%s][UPDATE][ACWTIME:%s]','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','[ACW][TIMERS]','stringify','[ACW][STOP]\x20%s','[ACW][syncAgentConnect]\x20%s','[ACW][syncAgentConnectPreview]\x20%s','isUndefined','[%s][HANGUP:UNIQUEID]','linkedid','startAcw','[ACW][syncHangupRequest]\x20%s','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','[ACW][syncHangup]\x20%s','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','[%s][BLINDTRANSFER:UNIQUEID]','transfererlinkedid','[%s][BLINDTRANSFER:LINKEDID]','[ACW][syncBlindTransfer]\x20%s','all','Auto-Pause','util','moment','../ami','../../../config/logger','acw','../rpc/user','voiceQueues','agents','timers','channels','agentconnect','syncAgentConnect','bind','hanguprequest','syncHangupRequest','hangup','agentringnoanswer','syncAgentRingNoAnswer','syncAttendedTransfer','syncBlindTransfer','custom:agentConnectPreview','syncAgentConnectPreview','milliseconds','diff','prototype','interface','queue','ACW','mandatoryDisposition','mandatoryDispositionPause','then','getAgent'];(function(_0x2707fb,_0x4eb208){var _0x19b3db=function(_0x33b894){while(--_0x33b894){_0x2707fb['push'](_0x2707fb['shift']());}};_0x19b3db(++_0x4eb208);}(_0x28b2,0xd3));var _0x228b=function(_0x556bb1,_0x34830d){_0x556bb1=_0x556bb1-0x0;var _0x45455f=_0x28b2[_0x556bb1];return _0x45455f;};'use strict';var util=require(_0x228b('0x0'));var _=require('lodash');var moment=require(_0x228b('0x1'));var ami=require(_0x228b('0x2'));var logger=require(_0x228b('0x3'))(_0x228b('0x4'));var RpcUser=require(_0x228b('0x5'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');function Acw(_0x109b0d){this[_0x228b('0x6')]=_0x109b0d[_0x228b('0x6')];this[_0x228b('0x7')]=_0x109b0d[_0x228b('0x7')];this[_0x228b('0x8')]=_0x109b0d[_0x228b('0x8')];this[_0x228b('0x9')]={};ami['on'](_0x228b('0xa'),this[_0x228b('0xb')][_0x228b('0xc')](this));ami['on'](_0x228b('0xd'),this[_0x228b('0xe')][_0x228b('0xc')](this));ami['on'](_0x228b('0xf'),this['syncHangup'][_0x228b('0xc')](this));ami['on'](_0x228b('0x10'),this[_0x228b('0x11')][_0x228b('0xc')](this));ami['on']('attendedtransfer',this[_0x228b('0x12')][_0x228b('0xc')](this));ami['on']('blindtransfer',this[_0x228b('0x13')][_0x228b('0xc')](this));ami['on'](_0x228b('0x14'),this[_0x228b('0x15')][_0x228b('0xc')](this));}function getDiff(_0x5107aa){var _0x3c02a9=moment()[_0x228b('0x16')](0x0);var _0x3b875c=moment(_0x5107aa)[_0x228b('0x16')](0x0);return _0x3c02a9[_0x228b('0x17')](_0x3b875c,'seconds');}Acw[_0x228b('0x18')]['startAcw']=function(_0x287327){try{var _0x211006=this;var _0x135eed=this[_0x228b('0x9')][_0x287327][_0x228b('0x19')];var _0x219577=this[_0x228b('0x9')][_0x287327][_0x228b('0x1a')];var _0x425e27=this[_0x228b('0x6')][_0x219577];var _0x340362=![];var _0x4834e2=_0x228b('0x1b');if(_0x425e27[_0x228b('0x1c')]){if(_0x425e27[_0x228b('0x1d')]['name']){_0x340362=!![];_0x4834e2=_0x425e27[_0x228b('0x1d')]['name'];}}ami['Action']({'action':'QueuePause','interface':_0x135eed,'paused':!![],'reason':_0x4834e2})[_0x228b('0x1e')](function(_0x5a766e){if(_0x211006[_0x228b('0x7')][_0x135eed]){return RpcUser[_0x228b('0x1f')](_0x211006[_0x228b('0x7')][_0x135eed]['id'])[_0x228b('0x1e')](function(_0xb6d201){if(_0xb6d201&&!_0xb6d201[_0x228b('0x20')]){logger[_0x228b('0x21')]('[%s][START][AGENT:%s][QUEUE:%s]',_0x287327,_0x135eed,_0x219577);var _0xf2bc37=_0x211006[_0x228b('0x9')][_0x287327][_0x228b('0x22')]&&_0x211006[_0x228b('0x9')][_0x287327]['destlinkedid']?_0x211006['channels'][_0x287327][_0x228b('0x23')]:_0x287327;return RpcUser[_0x228b('0x24')](_0x211006[_0x228b('0x7')][_0x135eed],_0x4834e2,_0xf2bc37)[_0x228b('0x1e')](function(_0x1fa33a){if(!_0x340362){_0x211006['timers'][_0x135eed]={};logger[_0x228b('0x21')](_0x228b('0x25'),_0x287327,_0x211006[_0x228b('0x6')][_0x219577][_0x228b('0x26')],_0x135eed,_0x219577);_0x211006['timers'][_0x135eed]['timer']=setTimeout(_0x211006[_0x228b('0x27')][_0x228b('0xc')](_0x211006,_0x135eed),_0x211006[_0x228b('0x6')][_0x219577][_0x228b('0x26')]*0x3e8);_0x211006[_0x228b('0x8')][_0x135eed]['lastPauseAt']=moment()[_0x228b('0x28')](_0x228b('0x29'));_0x211006['timers'][_0x135eed][_0x228b('0x2a')]=_0x287327;_0x211006[_0x228b('0x8')][_0x135eed][_0x228b('0x1a')]=_0x219577;_0x211006[_0x228b('0x8')][_0x135eed]['updateAcw']=function(){var _0x48d9d6=getDiff(_0x211006[_0x228b('0x8')][_0x135eed][_0x228b('0x2b')]);clearTimeout(_0x211006[_0x228b('0x8')][_0x135eed]['timer']);_0x211006['timers'][_0x135eed][_0x228b('0x2c')]=![];RpcVoiceAgentReport[_0x228b('0x2d')]({'acwtime':_0x48d9d6},_0x211006[_0x228b('0x8')][_0x135eed][_0x228b('0x2a')],_0x135eed)[_0x228b('0x1e')](function(_0x5c2fc1){logger[_0x228b('0x21')]('[%s][UPDATE][ACWTIME:%s]',_0x287327,_0x48d9d6,_0x5c2fc1);})[_0x228b('0x2e')](function(_0x5ce284){logger[_0x228b('0x2f')](_0x228b('0x30'),_0x287327,_0x5ce284);});delete _0x211006['timers'][_0x135eed];};}});}else{logger['info'](_0x228b('0x31'),_0x287327,_0x135eed,_0x219577);}});}})[_0x228b('0x2e')](function(_0xbebd6c){logger[_0x228b('0x2f')](_0x228b('0x25'),_0x287327,_0x211006[_0x228b('0x6')][_0x219577][_0x228b('0x26')],_0x135eed,_0x219577);})[_0x228b('0x32')](function(){delete _0x211006[_0x228b('0x9')][_0x287327];});}catch(_0x5bb88e){logger['error'](_0x228b('0x33'),_0x5bb88e[_0x228b('0x34')]);}};Acw[_0x228b('0x18')][_0x228b('0x27')]=function(_0x436ca3){try{var _0x1658ee=this;if(_0x1658ee[_0x228b('0x8')][_0x436ca3]){_0x1658ee['timers'][_0x436ca3]['timer']=![];var _0x170b72=_0x1658ee[_0x228b('0x8')][_0x436ca3]['uniqueid'];var _0x394798=_0x1658ee[_0x228b('0x8')][_0x436ca3][_0x228b('0x1a')];var _0x4a4d61=_0x1658ee['voiceQueues'][_0x394798][_0x228b('0x26')];logger[_0x228b('0x21')](_0x228b('0x35'),_0x170b72,_0x436ca3);RpcUser['saveUnpause'](this[_0x228b('0x7')][_0x436ca3]);RpcVoiceAgentReport[_0x228b('0x2d')]({'acwtime':_0x4a4d61,'agentacw':!![]},_0x170b72,_0x436ca3)[_0x228b('0x1e')](function(_0x3eba33){logger[_0x228b('0x21')](_0x228b('0x36'),_0x170b72,_0x4a4d61,_0x3eba33);})['catch'](function(_0x3edae){logger[_0x228b('0x2f')](_0x228b('0x30'),_0x170b72,_0x3edae);});}else{logger[_0x228b('0x2f')](_0x228b('0x37'),_0x436ca3);if(_0x1658ee[_0x228b('0x8')]){logger[_0x228b('0x21')](_0x228b('0x38'),JSON[_0x228b('0x39')](_0x1658ee[_0x228b('0x8')]));}}}catch(_0x305084){logger['error'](_0x228b('0x3a'),_0x305084['message']);}};Acw['prototype'][_0x228b('0xb')]=function(_0x446625){try{if(this[_0x228b('0x6')][_0x446625['queue']]&&(this[_0x228b('0x6')][_0x446625[_0x228b('0x1a')]][_0x228b('0x4')]||this[_0x228b('0x6')][_0x446625[_0x228b('0x1a')]]['mandatoryDisposition'])){if(this[_0x228b('0x7')][_0x446625[_0x228b('0x19')]]){this[_0x228b('0x9')][_0x446625[_0x228b('0x2a')]]={'queue':_0x446625['queue'],'interface':_0x446625[_0x228b('0x19')],'destlinkedid':_0x446625['destlinkedid']};}}}catch(_0x2c355d){logger[_0x228b('0x2f')](_0x228b('0x3b'),_0x2c355d[_0x228b('0x34')]);}};Acw[_0x228b('0x18')]['syncAgentConnectPreview']=function(_0x2af282){try{if(this[_0x228b('0x6')][_0x2af282[_0x228b('0x1a')]]&&(this[_0x228b('0x6')][_0x2af282['queue']][_0x228b('0x4')]||this['voiceQueues'][_0x2af282['queue']][_0x228b('0x1c')])){if(this[_0x228b('0x7')][_0x2af282[_0x228b('0x19')]]){this[_0x228b('0x9')][_0x2af282['uniqueid']]={'queue':_0x2af282[_0x228b('0x1a')],'interface':_0x2af282['interface']};}}}catch(_0x5051cd){logger[_0x228b('0x2f')](_0x228b('0x3c'),_0x5051cd[_0x228b('0x34')]);}};Acw[_0x228b('0x18')]['syncHangupRequest']=function(_0x50cc66){try{if(this['channels'][_0x50cc66[_0x228b('0x2a')]]&&_[_0x228b('0x3d')](this['channels'][_0x50cc66['uniqueid']][_0x228b('0x22')])){logger[_0x228b('0x21')](_0x228b('0x3e'),_0x50cc66[_0x228b('0x2a')]);this['startAcw'](_0x50cc66[_0x228b('0x2a')]);}else if(this[_0x228b('0x9')][_0x50cc66[_0x228b('0x3f')]]&&_[_0x228b('0x3d')](this['channels'][_0x50cc66['linkedid']]['attended'])){logger[_0x228b('0x21')]('[%s][HANGUP:LINKEDID]',_0x50cc66[_0x228b('0x3f')]);this[_0x228b('0x40')](_0x50cc66['linkedid']);}}catch(_0x4da009){logger['error'](_0x228b('0x41'),_0x4da009[_0x228b('0x34')]);}};Acw['prototype']['syncHangup']=function(_0x4be931){try{if(this['channels'][_0x4be931[_0x228b('0x2a')]]&&this['channels'][_0x4be931[_0x228b('0x2a')]][_0x228b('0x22')]){logger[_0x228b('0x21')]('[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]',_0x4be931[_0x228b('0x2a')]);this[_0x228b('0x40')](_0x4be931['uniqueid']);}else if(this['channels'][_0x4be931[_0x228b('0x3f')]]&&this[_0x228b('0x9')][_0x4be931[_0x228b('0x3f')]][_0x228b('0x22')]){logger[_0x228b('0x21')](_0x228b('0x42'),_0x4be931['linkedid']);this[_0x228b('0x40')](_0x4be931[_0x228b('0x3f')]);}}catch(_0x369369){logger[_0x228b('0x2f')](_0x228b('0x43'),_0x369369[_0x228b('0x34')]);}};Acw['prototype'][_0x228b('0x12')]=function(_0x34663a){try{if(!_[_0x228b('0x44')](this[_0x228b('0x9')][_0x34663a[_0x228b('0x45')]])){this[_0x228b('0x40')](_0x34663a[_0x228b('0x45')]);if(this[_0x228b('0x9')][_0x34663a[_0x228b('0x46')]]){this[_0x228b('0x9')][_0x34663a[_0x228b('0x46')]][_0x228b('0x22')]=!![];this['channels'][_0x34663a[_0x228b('0x47')]]=this[_0x228b('0x9')][_0x34663a[_0x228b('0x46')]];delete this[_0x228b('0x9')][_0x34663a[_0x228b('0x46')]];}}else if(!_[_0x228b('0x44')](this[_0x228b('0x9')][_0x34663a[_0x228b('0x47')]])){this[_0x228b('0x40')](_0x34663a[_0x228b('0x47')]);if(this[_0x228b('0x9')][_0x34663a[_0x228b('0x48')]]){this[_0x228b('0x9')][_0x34663a[_0x228b('0x48')]][_0x228b('0x22')]=!![];this[_0x228b('0x9')][_0x34663a[_0x228b('0x45')]]=this[_0x228b('0x9')][_0x34663a[_0x228b('0x48')]];delete this[_0x228b('0x9')][_0x34663a[_0x228b('0x48')]];}}}catch(_0x3f01c7){logger['error'](_0x228b('0x49'),_0x3f01c7[_0x228b('0x34')]);}};Acw['prototype'][_0x228b('0x13')]=function(_0xe97544){try{if(this[_0x228b('0x9')][_0xe97544[_0x228b('0x4a')]]){logger['info'](_0x228b('0x4b'),JSON[_0x228b('0x39')](_0xe97544['transfereruniqueid']));this[_0x228b('0x40')](_0xe97544[_0x228b('0x4a')]);}else if(this[_0x228b('0x9')][_0xe97544[_0x228b('0x4c')]]){logger[_0x228b('0x21')](_0x228b('0x4d'),JSON[_0x228b('0x39')](_0xe97544[_0x228b('0x4c')]));this[_0x228b('0x40')](_0xe97544[_0x228b('0x4c')]);}}catch(_0x19d105){logger[_0x228b('0x2f')](_0x228b('0x4e'),_0x19d105[_0x228b('0x34')]);}};Acw[_0x228b('0x18')][_0x228b('0x11')]=function(_0x40c700){try{if(this[_0x228b('0x6')][_0x40c700[_0x228b('0x1a')]]&&this['voiceQueues'][_0x40c700[_0x228b('0x1a')]]['autopause']===_0x228b('0x4f')){if(this['agents'][_0x40c700[_0x228b('0x19')]]){logger[_0x228b('0x21')]('[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]',_0x40c700['uniqueid'],_0x40c700[_0x228b('0x19')],_0x40c700[_0x228b('0x1a')]);return RpcUser['savePause'](this[_0x228b('0x7')][_0x40c700[_0x228b('0x19')]],_0x228b('0x50'),_0x40c700[_0x228b('0x2a')]);}}}catch(_0x533afe){logger[_0x228b('0x2f')]('[ACW][syncAgentRingNoAnswer]\x20%s',_0x533afe['message']);}};module['exports']=Acw;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['asterisk','port','password','Action','promisify','action','error','format','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','inspect','username','actionSipShowRegistry','sipshowregistry','actionDeviceStateList','devicestatelist','actionSipPeerStatus','sippeerstatus','actionQueueSummary','queuesummary','coreshowchannels','info','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','once','close','connect','shutdown','fullybooted','Fullybooted\x20\x22%s\x22\x20to\x20%s:%s','resolve','then','actionCoreShowChannels','[ami.js][fullybooted]','asterisk-manager','moment','util','lodash','ami','../../config/environment'];(function(_0xaadafb,_0x19380d){var _0x48026d=function(_0x37ffd5){while(--_0x37ffd5){_0xaadafb['push'](_0xaadafb['shift']());}};_0x48026d(++_0x19380d);}(_0xb10b,0x12a));var _0xbb10=function(_0x1496c1,_0x23cf40){_0x1496c1=_0x1496c1-0x0;var _0x48abc0=_0xb10b[_0x1496c1];return _0x48abc0;};'use strict';var Manager=require(_0xbb10('0x0'));var BPromise=require('bluebird');var moment=require(_0xbb10('0x1'));var util=require(_0xbb10('0x2'));var _=require(_0xbb10('0x3'));var logger=require('../../config/logger')(_0xbb10('0x4'));var config=require(_0xbb10('0x5'));var ami=new Manager(config[_0xbb10('0x6')][_0xbb10('0x7')],config[_0xbb10('0x6')]['ip'],config[_0xbb10('0x6')]['username'],config[_0xbb10('0x6')][_0xbb10('0x8')],!![]);ami['keepConnected']();ami[_0xbb10('0x9')]=BPromise[_0xbb10('0xa')](ami[_0xbb10('0xb')]);function error(_0x1c3ee5){logger[_0xbb10('0xc')](util[_0xbb10('0xd')](_0xbb10('0xe'),config[_0xbb10('0x6')]['username'],config['asterisk']['ip'],config[_0xbb10('0x6')][_0xbb10('0x7')],util[_0xbb10('0xf')](_0x1c3ee5,![],null)));}function close(){logger['error'](util[_0xbb10('0xd')]('Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s',config[_0xbb10('0x6')][_0xbb10('0x10')],config[_0xbb10('0x6')]['ip'],config[_0xbb10('0x6')][_0xbb10('0x7')]));}ami[_0xbb10('0x11')]=function(){return function(){return ami['Action']({'action':_0xbb10('0x12')});};};ami[_0xbb10('0x13')]=function(){return function(){return ami[_0xbb10('0x9')]({'action':_0xbb10('0x14')});};};ami[_0xbb10('0x15')]=function(){return function(){return ami[_0xbb10('0x9')]({'action':_0xbb10('0x16')});};};ami[_0xbb10('0x17')]=function(){return function(){return ami[_0xbb10('0x9')]({'action':_0xbb10('0x18')});};};ami['actionCoreShowChannels']=function(){return function(){return ami[_0xbb10('0x9')]({'action':_0xbb10('0x19')});};};function connect(_0x133ac2){logger[_0xbb10('0x1a')](util[_0xbb10('0xd')](_0xbb10('0x1b'),config[_0xbb10('0x6')][_0xbb10('0x10')],config[_0xbb10('0x6')]['ip'],config[_0xbb10('0x6')]['port']));ami[_0xbb10('0x1c')](_0xbb10('0xc'),error);ami[_0xbb10('0x1c')](_0xbb10('0x1d'),close);}ami['on'](_0xbb10('0x1e'),connect);ami['on'](_0xbb10('0x1f'),function(_0x4deb49){logger[_0xbb10('0x1a')](util[_0xbb10('0xd')]('Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s',config['asterisk'][_0xbb10('0x10')],config[_0xbb10('0x6')]['ip'],config[_0xbb10('0x6')][_0xbb10('0x7')],util[_0xbb10('0xf')](_0x4deb49,![],null)));});ami['on'](_0xbb10('0x20'),function(_0x407cb4){logger[_0xbb10('0x1a')](util[_0xbb10('0xd')](_0xbb10('0x21'),config[_0xbb10('0x6')][_0xbb10('0x10')],config['asterisk']['ip'],config['asterisk']['port']));return BPromise[_0xbb10('0x22')]()[_0xbb10('0x23')](ami[_0xbb10('0x11')]())['then'](ami[_0xbb10('0x13')]())[_0xbb10('0x23')](ami[_0xbb10('0x15')]())[_0xbb10('0x23')](ami[_0xbb10('0x17')]())[_0xbb10('0x23')](ami[_0xbb10('0x24')]())['catch'](function(_0x3796c7){logger[_0xbb10('0xc')](_0xbb10('0x25'),util[_0xbb10('0xf')](_0x3796c7,{'showHidden':![],'depth':null}));});});ami[_0xbb10('0x1c')](_0xbb10('0xc'),error);ami['once'](_0xbb10('0x1d'),close);module['exports']=ami;
\ No newline at end of file
+var _0x584e=['keepConnected','Action','promisify','action','inspect','error','format','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s','sipshowregistry','actionDeviceStateList','actionSipPeerStatus','actionQueueSummary','queuesummary','actionCoreShowChannels','coreshowchannels','info','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','once','close','connect','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','fullybooted','Fullybooted\x20\x22%s\x22\x20to\x20%s:%s','resolve','then','log','exports','asterisk-manager','bluebird','moment','util','../../config/logger','../../config/environment','port','asterisk','username','password'];(function(_0x187629,_0x44ff6f){var _0x4d1e84=function(_0x91db7d){while(--_0x91db7d){_0x187629['push'](_0x187629['shift']());}};_0x4d1e84(++_0x44ff6f);}(_0x584e,0xf9));var _0xe584=function(_0x588011,_0x5e9d11){_0x588011=_0x588011-0x0;var _0x3b3773=_0x584e[_0x588011];return _0x3b3773;};'use strict';var Manager=require(_0xe584('0x0'));var BPromise=require(_0xe584('0x1'));var moment=require(_0xe584('0x2'));var util=require(_0xe584('0x3'));var _=require('lodash');var logger=require(_0xe584('0x4'))('ami');var config=require(_0xe584('0x5'));var ami=new Manager(config['asterisk'][_0xe584('0x6')],config[_0xe584('0x7')]['ip'],config[_0xe584('0x7')][_0xe584('0x8')],config['asterisk'][_0xe584('0x9')],!![]);ami[_0xe584('0xa')]();ami[_0xe584('0xb')]=BPromise[_0xe584('0xc')](ami[_0xe584('0xd')]);function error(_0xb14e29){logger['error'](util['format']('Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s',config['asterisk'][_0xe584('0x8')],config[_0xe584('0x7')]['ip'],config[_0xe584('0x7')][_0xe584('0x6')],util[_0xe584('0xe')](_0xb14e29,![],null)));}function close(){logger[_0xe584('0xf')](util[_0xe584('0x10')](_0xe584('0x11'),config['asterisk'][_0xe584('0x8')],config[_0xe584('0x7')]['ip'],config[_0xe584('0x7')][_0xe584('0x6')]));}ami['actionSipShowRegistry']=function(){return function(){return ami[_0xe584('0xb')]({'action':_0xe584('0x12')});};};ami[_0xe584('0x13')]=function(){return function(){return ami[_0xe584('0xb')]({'action':'devicestatelist'});};};ami[_0xe584('0x14')]=function(){return function(){return ami[_0xe584('0xb')]({'action':'sippeerstatus'});};};ami[_0xe584('0x15')]=function(){return function(){return ami[_0xe584('0xb')]({'action':_0xe584('0x16')});};};ami[_0xe584('0x17')]=function(){return function(){return ami[_0xe584('0xb')]({'action':_0xe584('0x18')});};};function connect(_0x422399){logger[_0xe584('0x19')](util[_0xe584('0x10')](_0xe584('0x1a'),config[_0xe584('0x7')][_0xe584('0x8')],config[_0xe584('0x7')]['ip'],config[_0xe584('0x7')][_0xe584('0x6')]));ami[_0xe584('0x1b')](_0xe584('0xf'),error);ami[_0xe584('0x1b')](_0xe584('0x1c'),close);}ami['on'](_0xe584('0x1d'),connect);ami['on']('shutdown',function(_0x275f81){logger[_0xe584('0x19')](util['format'](_0xe584('0x1e'),config['asterisk'][_0xe584('0x8')],config[_0xe584('0x7')]['ip'],config[_0xe584('0x7')]['port'],util[_0xe584('0xe')](_0x275f81,![],null)));});ami['on'](_0xe584('0x1f'),function(_0x5f1f30){logger[_0xe584('0x19')](util[_0xe584('0x10')](_0xe584('0x20'),config[_0xe584('0x7')][_0xe584('0x8')],config[_0xe584('0x7')]['ip'],config[_0xe584('0x7')][_0xe584('0x6')]));return BPromise[_0xe584('0x21')]()['then'](ami['actionSipShowRegistry']())[_0xe584('0x22')](ami[_0xe584('0x13')]())['then'](ami[_0xe584('0x14')]())[_0xe584('0x22')](ami[_0xe584('0x15')]())['then'](ami['actionCoreShowChannels']())['catch'](function(_0x26bb15){console[_0xe584('0x23')](_0x26bb15);});});ami[_0xe584('0x1b')](_0xe584('0xf'),error);ami[_0xe584('0x1b')](_0xe584('0x1c'),close);module[_0xe584('0x24')]=ami;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9bde=['message','result','catch','exports','bluebird','ami','http','Request','request','debug','rpc','memberReport','error'];(function(_0x23b85e,_0x39b209){var _0x329756=function(_0x3418e1){while(--_0x3418e1){_0x23b85e['push'](_0x23b85e['shift']());}};_0x329756(++_0x39b209);}(_0x9bde,0xe1));var _0xe9bd=function(_0x37f1e9,_0x4a7def){_0x37f1e9=_0x37f1e9-0x0;var _0x50f40d=_0x9bde[_0x37f1e9];return _0x50f40d;};'use strict';var jayson=require('jayson/promise');var BPromise=require(_0xe9bd('0x0'));var logger=require('../../config/logger')(_0xe9bd('0x1'));var client=jayson['client'][_0xe9bd('0x2')]({'port':0x2329});client[_0xe9bd('0x3')]=function(_0x131f6a,_0x1c1b34){return new BPromise(function(_0x10822d,_0x1a4d14){return client[_0xe9bd('0x4')](_0x131f6a,_0x1c1b34)['then'](function(_0x4763e9){logger[_0xe9bd('0x5')](_0xe9bd('0x6'),_0xe9bd('0x7'),_0x131f6a,_0x1c1b34,_0x4763e9);if(_0x4763e9[_0xe9bd('0x8')]){logger[_0xe9bd('0x8')](_0xe9bd('0x6'),_0xe9bd('0x7'),_0x131f6a,_0x4763e9[_0xe9bd('0x8')][_0xe9bd('0x9')],_0x1c1b34);return _0x1a4d14(_0x4763e9['error']['message']);}else{return _0x10822d(_0x4763e9[_0xe9bd('0xa')]);}})[_0xe9bd('0xb')](function(_0x2601ac){logger['error'](_0xe9bd('0x6'),_0xe9bd('0x7'),_0x131f6a,_0x2601ac,_0x1c1b34);return _0x1a4d14(_0x2601ac);});});};module[_0xe9bd('0xc')]=client;
\ No newline at end of file
+var _0x9bde=['message','result','catch','exports','bluebird','ami','http','Request','request','debug','rpc','memberReport','error'];(function(_0x3c51d4,_0x36ba53){var _0x53c45f=function(_0x3d6683){while(--_0x3d6683){_0x3c51d4['push'](_0x3c51d4['shift']());}};_0x53c45f(++_0x36ba53);}(_0x9bde,0xe1));var _0xe9bd=function(_0x40a1f2,_0x25b8da){_0x40a1f2=_0x40a1f2-0x0;var _0x4688e9=_0x9bde[_0x40a1f2];return _0x4688e9;};'use strict';var jayson=require('jayson/promise');var BPromise=require(_0xe9bd('0x0'));var logger=require('../../config/logger')(_0xe9bd('0x1'));var client=jayson['client'][_0xe9bd('0x2')]({'port':0x2329});client[_0xe9bd('0x3')]=function(_0x131f6a,_0x1c1b34){return new BPromise(function(_0x10822d,_0x1a4d14){return client[_0xe9bd('0x4')](_0x131f6a,_0x1c1b34)['then'](function(_0x4763e9){logger[_0xe9bd('0x5')](_0xe9bd('0x6'),_0xe9bd('0x7'),_0x131f6a,_0x1c1b34,_0x4763e9);if(_0x4763e9[_0xe9bd('0x8')]){logger[_0xe9bd('0x8')](_0xe9bd('0x6'),_0xe9bd('0x7'),_0x131f6a,_0x4763e9[_0xe9bd('0x8')][_0xe9bd('0x9')],_0x1c1b34);return _0x1a4d14(_0x4763e9['error']['message']);}else{return _0x10822d(_0x4763e9[_0xe9bd('0xa')]);}})[_0xe9bd('0xb')](function(_0x2601ac){logger['error'](_0xe9bd('0x6'),_0xe9bd('0x7'),_0x131f6a,_0x2601ac,_0x1c1b34);return _0x1a4d14(_0x2601ac);});});};module[_0xe9bd('0xc')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3875=['type','dialQueueTimeout','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','ContactId','UserId','VoiceQueueId','CampaignId','idHopper','ContactFirstName','starttime','format','YYYY-MM-DD\x20HH:mm:ss','callback','callbackuniqueid','callbackat','originatecalleridnum','originatecalleridname','prototype','dialCutDigit','substring','getQueue','queue','exports','lodash','moment','string','isNil','voiceQueue','uniqueid','name','phone','firstName','lastName','number','Contact','active'];(function(_0x3ae218,_0x4d8313){var _0x5776aa=function(_0x8bbc8c){while(--_0x8bbc8c){_0x3ae218['push'](_0x3ae218['shift']());}};_0x5776aa(++_0x4d8313);}(_0x3875,0xa3));var _0x5387=function(_0x2029f7,_0x53b3f1){_0x2029f7=_0x2029f7-0x0;var _0x5c6c6f=_0x3875[_0x2029f7];return _0x5c6c6f;};'use strict';var util=require('util');var _=require(_0x5387('0x0'));var moment=require(_0x5387('0x1'));function checkNameSurname(_0x5e02cc,_0x5cb361,_0x4f71e0){var _0x22646e='';if(!_['isNil'](_0x5cb361)&&_0x5387('0x2')===typeof _0x5cb361){_0x22646e+=_0x5cb361;}if(!_[_0x5387('0x3')](_0x4f71e0)&&_0x5387('0x2')===typeof _0x4f71e0){_0x22646e+='\x20'+_0x4f71e0;}if(_0x22646e!==''){return _0x22646e;}return _0x5e02cc;}function Action(_0x2edd44,_0x3eb727,_0x44fed2){this[_0x5387('0x4')]=_0x2edd44;this[_0x5387('0x5')]=_0x44fed2||undefined;this[_0x5387('0x6')]=checkNameSurname(_0x3eb727['Contact'][_0x5387('0x7')],_0x3eb727['Contact'][_0x5387('0x8')],_0x3eb727['Contact'][_0x5387('0x9')]);this[_0x5387('0xa')]=_0x3eb727[_0x5387('0xb')]['phone'];this['queue']=_0x2edd44[_0x5387('0x6')];this[_0x5387('0xc')]=_0x3eb727[_0x5387('0xc')]||![];this[_0x5387('0xd')]=_0x2edd44[_0x5387('0xd')];this[_0x5387('0xe')]=_0x2edd44['dialQueueTimeout']||0x3;this[_0x5387('0xf')]=_0x3eb727['scheduledat'];this['countbusyretry']=_0x3eb727[_0x5387('0x10')];this[_0x5387('0x11')]=_0x3eb727[_0x5387('0x11')];this['countnoanswerretry']=_0x3eb727[_0x5387('0x12')];this[_0x5387('0x13')]=_0x3eb727[_0x5387('0x13')];this[_0x5387('0x14')]=_0x3eb727[_0x5387('0x14')];this[_0x5387('0x15')]=_0x3eb727[_0x5387('0x15')];this[_0x5387('0x16')]=_0x3eb727['countmachineretry'];this[_0x5387('0x17')]=_0x3eb727[_0x5387('0x17')];this[_0x5387('0x18')]=_0x3eb727[_0x5387('0x18')];this['ListId']=_0x3eb727['ListId'];this['UserId']=_0x3eb727[_0x5387('0x19')];this[_0x5387('0x1a')]=_0x3eb727[_0x5387('0x1a')];this[_0x5387('0x1b')]=_0x3eb727[_0x5387('0x1b')];this[_0x5387('0x1c')]=_0x3eb727['id'];this[_0x5387('0x1d')]=_0x3eb727[_0x5387('0xb')][_0x5387('0x8')]||'';this[_0x5387('0x1e')]=moment()[_0x5387('0x1f')](_0x5387('0x20'));this[_0x5387('0x21')]=_0x3eb727[_0x5387('0x21')];this[_0x5387('0x22')]=_0x3eb727['callbackuniqueid'];this[_0x5387('0x23')]=_0x3eb727['callbackat'];this['recallme']=_0x3eb727['recallme'];this[_0x5387('0x24')]='';this[_0x5387('0x25')]='';}Action[_0x5387('0x26')]['getCaller']=function(){return util[_0x5387('0x1f')]('\x22%s\x22\x20<%s>',this[_0x5387('0x6')],this[_0x5387('0x4')][_0x5387('0x27')]>0x0?this[_0x5387('0xa')][_0x5387('0x28')](this['voiceQueue'][_0x5387('0x27')]):this[_0x5387('0xa')]);};Action[_0x5387('0x26')][_0x5387('0x29')]=function(){return this[_0x5387('0x2a')];};module[_0x5387('0x2b')]=Action;
\ No newline at end of file
+var _0x6d9e=['ContactId','ListId','UserId','VoiceQueueId','CampaignId','starttime','format','YYYY-MM-DD\x20HH:mm:ss','callback','callbackuniqueid','callbackat','recallme','originatecalleridnum','prototype','getCaller','\x22%s\x22\x20<%s>','number','substring','dialCutDigit','exports','lodash','isNil','voiceQueue','uniqueid','name','Contact','phone','firstName','lastName','queue','active','type','dialQueueTimeout','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry'];(function(_0x453de5,_0x51ca8c){var _0x48d9a0=function(_0x1a416a){while(--_0x1a416a){_0x453de5['push'](_0x453de5['shift']());}};_0x48d9a0(++_0x51ca8c);}(_0x6d9e,0x110));var _0xe6d9=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x6d9e[_0x2dafbe];return _0x58a45a;};'use strict';var util=require('util');var _=require(_0xe6d9('0x0'));var moment=require('moment');function checkNameSurname(_0x56b537,_0xa6e168,_0x22982c){var _0x3ce037='';if(!_['isNil'](_0xa6e168)&&'string'===typeof _0xa6e168){_0x3ce037+=_0xa6e168;}if(!_[_0xe6d9('0x1')](_0x22982c)&&'string'===typeof _0x22982c){_0x3ce037+='\x20'+_0x22982c;}if(_0x3ce037!==''){return _0x3ce037;}return _0x56b537;}function Action(_0x390f3e,_0x198d8f,_0x42b946){this[_0xe6d9('0x2')]=_0x390f3e;this[_0xe6d9('0x3')]=_0x42b946||undefined;this[_0xe6d9('0x4')]=checkNameSurname(_0x198d8f[_0xe6d9('0x5')][_0xe6d9('0x6')],_0x198d8f['Contact'][_0xe6d9('0x7')],_0x198d8f['Contact'][_0xe6d9('0x8')]);this['number']=_0x198d8f[_0xe6d9('0x5')]['phone'];this[_0xe6d9('0x9')]=_0x390f3e[_0xe6d9('0x4')];this[_0xe6d9('0xa')]=_0x198d8f[_0xe6d9('0xa')]||![];this['type']=_0x390f3e[_0xe6d9('0xb')];this[_0xe6d9('0xc')]=_0x390f3e[_0xe6d9('0xc')]||0x3;this[_0xe6d9('0xd')]=_0x198d8f[_0xe6d9('0xd')];this[_0xe6d9('0xe')]=_0x198d8f[_0xe6d9('0xe')];this['countcongestionretry']=_0x198d8f[_0xe6d9('0xf')];this[_0xe6d9('0x10')]=_0x198d8f['countnoanswerretry'];this['countnosuchnumberretry']=_0x198d8f[_0xe6d9('0x11')];this[_0xe6d9('0x12')]=_0x198d8f[_0xe6d9('0x12')];this[_0xe6d9('0x13')]=_0x198d8f['countabandonedretry'];this['countmachineretry']=_0x198d8f[_0xe6d9('0x14')];this[_0xe6d9('0x15')]=_0x198d8f['countagentrejectretry'];this[_0xe6d9('0x16')]=_0x198d8f[_0xe6d9('0x16')];this[_0xe6d9('0x17')]=_0x198d8f['ListId'];this[_0xe6d9('0x18')]=_0x198d8f[_0xe6d9('0x18')];this[_0xe6d9('0x19')]=_0x198d8f['VoiceQueueId'];this[_0xe6d9('0x1a')]=_0x198d8f[_0xe6d9('0x1a')];this['idHopper']=_0x198d8f['id'];this['ContactFirstName']=_0x198d8f['Contact'][_0xe6d9('0x7')]||'';this[_0xe6d9('0x1b')]=moment()[_0xe6d9('0x1c')](_0xe6d9('0x1d'));this[_0xe6d9('0x1e')]=_0x198d8f[_0xe6d9('0x1e')];this[_0xe6d9('0x1f')]=_0x198d8f[_0xe6d9('0x1f')];this[_0xe6d9('0x20')]=_0x198d8f[_0xe6d9('0x20')];this[_0xe6d9('0x21')]=_0x198d8f['recallme'];this[_0xe6d9('0x22')]='';this['originatecalleridname']='';}Action[_0xe6d9('0x23')][_0xe6d9('0x24')]=function(){return util[_0xe6d9('0x1c')](_0xe6d9('0x25'),this['name'],this[_0xe6d9('0x2')]['dialCutDigit']>0x0?this[_0xe6d9('0x26')][_0xe6d9('0x27')](this[_0xe6d9('0x2')][_0xe6d9('0x28')]):this[_0xe6d9('0x26')]);};Action['prototype']['getQueue']=function(){return this[_0xe6d9('0x9')];};module[_0xe6d9('0x29')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2e2c=['countdropretry','countagentrejectretry','uniqueid','name','number','starttime','responsetime','answertime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','talktime','queue','membername','reason','callback','callbackuniqueid','callbackat','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','moment','milliseconds','seconds','state','statedesc','Answer','scheduledat','type','outbound','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countabandonedretry','countmachineretry','countnosuchnumberretry'];(function(_0x12ad1b,_0x106d01){var _0x22efbb=function(_0x468f70){while(--_0x468f70){_0x12ad1b['push'](_0x12ad1b['shift']());}};_0x22efbb(++_0x106d01);}(_0x2e2c,0xf2));var _0xc2e2=function(_0x2d5805,_0x21954e){_0x2d5805=_0x2d5805-0x0;var _0x1cae4f=_0x2e2c[_0x2d5805];return _0x1cae4f;};'use strict';var util=require('util');var _=require('lodash');var moment=require(_0xc2e2('0x0'));function getSeconds(_0x316175,_0x4f64ad){var _0x1f7ac8=moment(_0x316175)[_0xc2e2('0x1')](0x0);var _0x43862c=moment(_0x4f64ad)[_0xc2e2('0x1')](0x0);return _0x1f7ac8['diff'](_0x43862c,_0xc2e2('0x2'));}function AgentComplete(_0x2e0fe3,_0x3dc7b1){this[_0xc2e2('0x3')]=0x4;this[_0xc2e2('0x4')]=_0xc2e2('0x5');this[_0xc2e2('0x6')]=_0x2e0fe3[_0xc2e2('0x6')];this[_0xc2e2('0x7')]=_0x2e0fe3[_0xc2e2('0x7')];this['campaigntype']=_0x2e0fe3['type']===_0xc2e2('0x8')?'queue':_0x2e0fe3[_0xc2e2('0x7')];this[_0xc2e2('0x9')]=_0x2e0fe3[_0xc2e2('0x9')];this[_0xc2e2('0xa')]=_0x2e0fe3[_0xc2e2('0xa')];this[_0xc2e2('0xb')]=_0x2e0fe3['countnoanswerretry'];this[_0xc2e2('0xc')]=_0x2e0fe3[_0xc2e2('0x9')]+_0x2e0fe3[_0xc2e2('0xa')]+_0x2e0fe3[_0xc2e2('0xb')]+_0x2e0fe3['countnosuchnumberretry']+_0x2e0fe3['countdropretry']+_0x2e0fe3[_0xc2e2('0xd')]+_0x2e0fe3[_0xc2e2('0xe')]+_0x2e0fe3['countagentrejectretry'];this[_0xc2e2('0xf')]=_0x2e0fe3[_0xc2e2('0xf')];this['countdropretry']=_0x2e0fe3[_0xc2e2('0x10')];this['countabandonedretry']=_0x2e0fe3[_0xc2e2('0xd')];this['countmachineretry']=_0x2e0fe3[_0xc2e2('0xe')];this[_0xc2e2('0x11')]=_0x2e0fe3['countagentrejectretry'];this[_0xc2e2('0x12')]=_0x3dc7b1[_0xc2e2('0x12')];this['calleridname']=_0x2e0fe3[_0xc2e2('0x13')];this['calleridnum']=_0x2e0fe3[_0xc2e2('0x14')];this['starttime']=_0x2e0fe3[_0xc2e2('0x15')];this[_0xc2e2('0x16')]=_0x2e0fe3[_0xc2e2('0x16')];this[_0xc2e2('0x17')]=_0x2e0fe3[_0xc2e2('0x17')];this[_0xc2e2('0x18')]=moment()[_0xc2e2('0x19')](_0xc2e2('0x1a'));this[_0xc2e2('0x1b')]=getSeconds(_0x2e0fe3[_0xc2e2('0x16')],_0x2e0fe3[_0xc2e2('0x15')]);this[_0xc2e2('0x1c')]=getSeconds(_0x2e0fe3[_0xc2e2('0x17')],_0x2e0fe3['responsetime']);this[_0xc2e2('0x1d')]=getSeconds(this[_0xc2e2('0x18')],_0x2e0fe3['answertime']);this[_0xc2e2('0x1e')]=_0x3dc7b1['queue'];this[_0xc2e2('0x1f')]=_0x3dc7b1[_0xc2e2('0x1f')];this[_0xc2e2('0x20')]=_0x3dc7b1[_0xc2e2('0x20')];this[_0xc2e2('0x21')]=_0x2e0fe3[_0xc2e2('0x21')];this[_0xc2e2('0x22')]=_0x2e0fe3['callbackuniqueid'];this[_0xc2e2('0x23')]=_0x2e0fe3[_0xc2e2('0x23')];this['recallme']=_0x2e0fe3['recallme'];this['ContactId']=_0x2e0fe3[_0xc2e2('0x24')];this[_0xc2e2('0x25')]=_0x2e0fe3[_0xc2e2('0x25')];this['UserId']=_0x2e0fe3[_0xc2e2('0x26')];this[_0xc2e2('0x27')]=_0x2e0fe3['VoiceQueueId'];this[_0xc2e2('0x28')]=_0x2e0fe3[_0xc2e2('0x28')];this[_0xc2e2('0x29')]=_0x2e0fe3[_0xc2e2('0x29')]||'';this[_0xc2e2('0x2a')]=_0x2e0fe3['originatecalleridname']||'';}module['exports']=AgentComplete;
\ No newline at end of file
+var _0x1d4f=['responsetime','holdtime','talktime','queue','membername','reason','callback','callbackuniqueid','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util','lodash','moment','milliseconds','seconds','state','statedesc','Answer','scheduledat','type','campaigntype','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countmachineretry','countabandonedretry','countagentrejectretry','uniqueid','calleridname','name','calleridnum','number','starttime','answertime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','ringtime'];(function(_0x3b0552,_0x5a8df5){var _0x613f23=function(_0x181990){while(--_0x181990){_0x3b0552['push'](_0x3b0552['shift']());}};_0x613f23(++_0x5a8df5);}(_0x1d4f,0x6c));var _0xf1d4=function(_0x2407a4,_0x296918){_0x2407a4=_0x2407a4-0x0;var _0x56d17e=_0x1d4f[_0x2407a4];return _0x56d17e;};'use strict';var util=require(_0xf1d4('0x0'));var _=require(_0xf1d4('0x1'));var moment=require(_0xf1d4('0x2'));function getSeconds(_0x4b06d9,_0xa2aaac){var _0x5e69c1=moment(_0x4b06d9)[_0xf1d4('0x3')](0x0);var _0x9a12e6=moment(_0xa2aaac)['milliseconds'](0x0);return _0x5e69c1['diff'](_0x9a12e6,_0xf1d4('0x4'));}function AgentComplete(_0xcaaac5,_0x54661f){this[_0xf1d4('0x5')]=0x4;this[_0xf1d4('0x6')]=_0xf1d4('0x7');this[_0xf1d4('0x8')]=_0xcaaac5[_0xf1d4('0x8')];this[_0xf1d4('0x9')]=_0xcaaac5['type'];this[_0xf1d4('0xa')]=_0xcaaac5[_0xf1d4('0x9')]==='outbound'?'queue':_0xcaaac5[_0xf1d4('0x9')];this[_0xf1d4('0xb')]=_0xcaaac5[_0xf1d4('0xb')];this[_0xf1d4('0xc')]=_0xcaaac5[_0xf1d4('0xc')];this['countnoanswerretry']=_0xcaaac5[_0xf1d4('0xd')];this['countglobal']=_0xcaaac5[_0xf1d4('0xb')]+_0xcaaac5['countcongestionretry']+_0xcaaac5[_0xf1d4('0xd')]+_0xcaaac5[_0xf1d4('0xe')]+_0xcaaac5[_0xf1d4('0xf')]+_0xcaaac5['countabandonedretry']+_0xcaaac5[_0xf1d4('0x10')]+_0xcaaac5['countagentrejectretry'];this['countnosuchnumberretry']=_0xcaaac5['countnosuchnumberretry'];this[_0xf1d4('0xf')]=_0xcaaac5[_0xf1d4('0xf')];this['countabandonedretry']=_0xcaaac5[_0xf1d4('0x11')];this[_0xf1d4('0x10')]=_0xcaaac5['countmachineretry'];this['countagentrejectretry']=_0xcaaac5[_0xf1d4('0x12')];this['uniqueid']=_0x54661f[_0xf1d4('0x13')];this[_0xf1d4('0x14')]=_0xcaaac5[_0xf1d4('0x15')];this[_0xf1d4('0x16')]=_0xcaaac5[_0xf1d4('0x17')];this['starttime']=_0xcaaac5[_0xf1d4('0x18')];this['responsetime']=_0xcaaac5['responsetime'];this['answertime']=_0xcaaac5[_0xf1d4('0x19')];this[_0xf1d4('0x1a')]=moment()[_0xf1d4('0x1b')](_0xf1d4('0x1c'));this[_0xf1d4('0x1d')]=getSeconds(_0xcaaac5[_0xf1d4('0x1e')],_0xcaaac5[_0xf1d4('0x18')]);this[_0xf1d4('0x1f')]=getSeconds(_0xcaaac5[_0xf1d4('0x19')],_0xcaaac5[_0xf1d4('0x1e')]);this[_0xf1d4('0x20')]=getSeconds(this[_0xf1d4('0x1a')],_0xcaaac5['answertime']);this[_0xf1d4('0x21')]=_0x54661f[_0xf1d4('0x21')];this[_0xf1d4('0x22')]=_0x54661f[_0xf1d4('0x22')];this[_0xf1d4('0x23')]=_0x54661f[_0xf1d4('0x23')];this['callback']=_0xcaaac5[_0xf1d4('0x24')];this[_0xf1d4('0x25')]=_0xcaaac5[_0xf1d4('0x25')];this['callbackat']=_0xcaaac5['callbackat'];this[_0xf1d4('0x26')]=_0xcaaac5[_0xf1d4('0x26')];this[_0xf1d4('0x27')]=_0xcaaac5[_0xf1d4('0x27')];this[_0xf1d4('0x28')]=_0xcaaac5[_0xf1d4('0x28')];this[_0xf1d4('0x29')]=_0xcaaac5[_0xf1d4('0x29')];this[_0xf1d4('0x2a')]=_0xcaaac5['VoiceQueueId'];this[_0xf1d4('0x2b')]=_0xcaaac5[_0xf1d4('0x2b')];this[_0xf1d4('0x2c')]=_0xcaaac5['originatecalleridnum']||'';this[_0xf1d4('0x2d')]=_0xcaaac5[_0xf1d4('0x2d')]||'';}module['exports']=AgentComplete;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fbe=['talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','UserId','CampaignId','originatecalleridnum','originatecalleridname','exports','moment','milliseconds','diff','seconds','uniqueid','scheduledat','type','campaigntype','outbound','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','queue','calleridname','calleridnum','starttime','responsetime','endtime','ringtime','holdtime'];(function(_0x251bae,_0x1cc50d){var _0xcfe58=function(_0x2aa22a){while(--_0x2aa22a){_0x251bae['push'](_0x251bae['shift']());}};_0xcfe58(++_0x1cc50d);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x347ea8,_0x2ac098){_0x347ea8=_0x347ea8-0x0;var _0x2e83f4=_0x7fbe[_0x347ea8];return _0x2e83f4;};'use strict';var util=require('util');var _=require('lodash');var moment=require(_0xe7fb('0x0'));function getSeconds(_0x183779,_0x294c21){var _0x1703d5=moment(_0x183779)[_0xe7fb('0x1')](0x0);var _0x47625b=moment(_0x294c21)[_0xe7fb('0x1')](0x0);return _0x1703d5[_0xe7fb('0x2')](_0x47625b,_0xe7fb('0x3'));}function Final(_0x5dbf04){this[_0xe7fb('0x4')]=_0x5dbf04[_0xe7fb('0x4')];this[_0xe7fb('0x5')]=_0x5dbf04[_0xe7fb('0x5')];this['type']=_0x5dbf04[_0xe7fb('0x6')];this[_0xe7fb('0x7')]=_0x5dbf04[_0xe7fb('0x6')]===_0xe7fb('0x8')?'queue':_0x5dbf04['type'];this[_0xe7fb('0x9')]=_0x5dbf04[_0xe7fb('0x9')];this[_0xe7fb('0xa')]=_0x5dbf04[_0xe7fb('0xa')];this[_0xe7fb('0xb')]=_0x5dbf04[_0xe7fb('0xb')];this[_0xe7fb('0xc')]=_0x5dbf04[_0xe7fb('0x9')]+_0x5dbf04[_0xe7fb('0xa')]+_0x5dbf04[_0xe7fb('0xb')]+_0x5dbf04[_0xe7fb('0xd')]+_0x5dbf04[_0xe7fb('0xe')]+_0x5dbf04[_0xe7fb('0xf')]+_0x5dbf04[_0xe7fb('0x10')]+_0x5dbf04[_0xe7fb('0x11')];this['countnosuchnumberretry']=_0x5dbf04[_0xe7fb('0xd')];this[_0xe7fb('0xe')]=_0x5dbf04['countdropretry'];this[_0xe7fb('0xf')]=_0x5dbf04[_0xe7fb('0xf')];this['countmachineretry']=_0x5dbf04[_0xe7fb('0x10')];this['countagentrejectretry']=_0x5dbf04[_0xe7fb('0x11')];this[_0xe7fb('0x12')]=_0x5dbf04[_0xe7fb('0x12')];this[_0xe7fb('0x13')]=_0x5dbf04['calleridname'];this[_0xe7fb('0x14')]=_0x5dbf04['calleridnum'];this[_0xe7fb('0x15')]=_0x5dbf04['starttime'];this[_0xe7fb('0x16')]=_0x5dbf04[_0xe7fb('0x16')];this[_0xe7fb('0x17')]=_0x5dbf04[_0xe7fb('0x16')];this['ringtime']=_0x5dbf04[_0xe7fb('0x18')]||0x0;this['holdtime']=_0x5dbf04[_0xe7fb('0x19')]||0x0;this['talktime']=_0x5dbf04[_0xe7fb('0x1a')]||0x0;this['callback']=_0x5dbf04[_0xe7fb('0x1b')];this[_0xe7fb('0x1c')]=_0x5dbf04['callbackuniqueid'];this[_0xe7fb('0x1d')]=_0x5dbf04[_0xe7fb('0x1d')];this[_0xe7fb('0x1e')]=_0x5dbf04['recallme'];this[_0xe7fb('0x1f')]=_0x5dbf04[_0xe7fb('0x1f')];this['ListId']=_0x5dbf04['ListId'];this['UserId']=_0x5dbf04[_0xe7fb('0x20')];this['VoiceQueueId']=_0x5dbf04['VoiceQueueId'];this[_0xe7fb('0x21')]=_0x5dbf04[_0xe7fb('0x21')];this[_0xe7fb('0x22')]=_0x5dbf04['originatecalleridnum']||'';this[_0xe7fb('0x23')]=_0x5dbf04[_0xe7fb('0x23')]||'';}module[_0xe7fb('0x24')]=Final;
\ No newline at end of file
+var _0x5075=['seconds','uniqueid','scheduledat','type','campaigntype','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','calleridname','calleridnum','starttime','responsetime','endtime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds','diff'];(function(_0x230c04,_0x4fac1a){var _0x36a05e=function(_0x3ac198){while(--_0x3ac198){_0x230c04['push'](_0x230c04['shift']());}};_0x36a05e(++_0x4fac1a);}(_0x5075,0x73));var _0x5507=function(_0xeb7891,_0x4771f7){_0xeb7891=_0xeb7891-0x0;var _0x11cc19=_0x5075[_0xeb7891];return _0x11cc19;};'use strict';var util=require(_0x5507('0x0'));var _=require(_0x5507('0x1'));var moment=require(_0x5507('0x2'));function getSeconds(_0x1a552a,_0x3ec62f){var _0x2b444e=moment(_0x1a552a)[_0x5507('0x3')](0x0);var _0x518ca7=moment(_0x3ec62f)[_0x5507('0x3')](0x0);return _0x2b444e[_0x5507('0x4')](_0x518ca7,_0x5507('0x5'));}function Final(_0x54267f){this['uniqueid']=_0x54267f[_0x5507('0x6')];this[_0x5507('0x7')]=_0x54267f['scheduledat'];this[_0x5507('0x8')]=_0x54267f[_0x5507('0x8')];this[_0x5507('0x9')]=_0x54267f['type']==='outbound'?_0x5507('0xa'):_0x54267f[_0x5507('0x8')];this[_0x5507('0xb')]=_0x54267f[_0x5507('0xb')];this['countcongestionretry']=_0x54267f[_0x5507('0xc')];this[_0x5507('0xd')]=_0x54267f['countnoanswerretry'];this[_0x5507('0xe')]=_0x54267f[_0x5507('0xb')]+_0x54267f['countcongestionretry']+_0x54267f[_0x5507('0xd')]+_0x54267f[_0x5507('0xf')]+_0x54267f[_0x5507('0x10')]+_0x54267f[_0x5507('0x11')]+_0x54267f[_0x5507('0x12')]+_0x54267f[_0x5507('0x13')];this['countnosuchnumberretry']=_0x54267f[_0x5507('0xf')];this[_0x5507('0x10')]=_0x54267f[_0x5507('0x10')];this[_0x5507('0x11')]=_0x54267f['countabandonedretry'];this[_0x5507('0x12')]=_0x54267f[_0x5507('0x12')];this[_0x5507('0x13')]=_0x54267f[_0x5507('0x13')];this[_0x5507('0xa')]=_0x54267f[_0x5507('0xa')];this[_0x5507('0x14')]=_0x54267f[_0x5507('0x14')];this[_0x5507('0x15')]=_0x54267f[_0x5507('0x15')];this[_0x5507('0x16')]=_0x54267f[_0x5507('0x16')];this[_0x5507('0x17')]=_0x54267f['responsetime'];this[_0x5507('0x18')]=_0x54267f[_0x5507('0x17')];this[_0x5507('0x19')]=_0x54267f[_0x5507('0x19')]||0x0;this['holdtime']=_0x54267f[_0x5507('0x1a')]||0x0;this[_0x5507('0x1b')]=_0x54267f[_0x5507('0x1b')]||0x0;this[_0x5507('0x1c')]=_0x54267f[_0x5507('0x1c')];this[_0x5507('0x1d')]=_0x54267f['callbackuniqueid'];this[_0x5507('0x1e')]=_0x54267f[_0x5507('0x1e')];this[_0x5507('0x1f')]=_0x54267f[_0x5507('0x1f')];this[_0x5507('0x20')]=_0x54267f[_0x5507('0x20')];this[_0x5507('0x21')]=_0x54267f[_0x5507('0x21')];this[_0x5507('0x22')]=_0x54267f[_0x5507('0x22')];this[_0x5507('0x23')]=_0x54267f[_0x5507('0x23')];this[_0x5507('0x24')]=_0x54267f[_0x5507('0x24')];this[_0x5507('0x25')]=_0x54267f['originatecalleridnum']||'';this[_0x5507('0x26')]=_0x54267f['originatecalleridname']||'';}module[_0x5507('0x27')]=Final;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d06=['countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','uniqueid','number','starttime','responsetime','format','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','talktime','membername','IVR','reason','cause-txt','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','exports','util','lodash','moment','milliseconds','diff','seconds','state','statedesc','Answer','scheduledat','type','campaigntype','outbound','queue','countbusyretry'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0x4d06,0x186));var _0x64d0=function(_0x1098db,_0x39ba6b){_0x1098db=_0x1098db-0x0;var _0x14f090=_0x4d06[_0x1098db];return _0x14f090;};'use strict';var util=require(_0x64d0('0x0'));var _=require(_0x64d0('0x1'));var moment=require(_0x64d0('0x2'));function getSeconds(_0x5411,_0xa934c4){var _0x15f204=moment(_0x5411)[_0x64d0('0x3')](0x0);var _0x188994=moment(_0xa934c4)['milliseconds'](0x0);return _0x15f204[_0x64d0('0x4')](_0x188994,_0x64d0('0x5'));}function Hangup(_0x329f2d,_0x4ceee9){this[_0x64d0('0x6')]=0x4;this[_0x64d0('0x7')]=_0x64d0('0x8');this[_0x64d0('0x9')]=_0x329f2d['scheduledat'];this[_0x64d0('0xa')]=_0x329f2d['type'];this[_0x64d0('0xb')]=_0x329f2d[_0x64d0('0xa')]===_0x64d0('0xc')?_0x64d0('0xd'):_0x329f2d['type'];this[_0x64d0('0xe')]=_0x329f2d[_0x64d0('0xe')];this[_0x64d0('0xf')]=_0x329f2d[_0x64d0('0xf')];this['countnoanswerretry']=_0x329f2d[_0x64d0('0x10')];this[_0x64d0('0x11')]=_0x329f2d[_0x64d0('0xe')]+_0x329f2d[_0x64d0('0xf')]+_0x329f2d['countnoanswerretry']+_0x329f2d[_0x64d0('0x12')]+_0x329f2d[_0x64d0('0x13')]+_0x329f2d[_0x64d0('0x14')]+_0x329f2d[_0x64d0('0x15')]+_0x329f2d[_0x64d0('0x16')];this[_0x64d0('0x12')]=_0x329f2d[_0x64d0('0x12')];this[_0x64d0('0x13')]=_0x329f2d[_0x64d0('0x13')];this[_0x64d0('0x14')]=_0x329f2d[_0x64d0('0x14')];this[_0x64d0('0x15')]=_0x329f2d[_0x64d0('0x15')];this[_0x64d0('0x16')]=_0x329f2d[_0x64d0('0x16')];this[_0x64d0('0x17')]=_0x4ceee9[_0x64d0('0x17')];this['calleridname']=_0x329f2d['name'];this['calleridnum']=_0x329f2d[_0x64d0('0x18')];this[_0x64d0('0x19')]=_0x329f2d[_0x64d0('0x19')];this[_0x64d0('0x1a')]=_0x329f2d[_0x64d0('0x1a')];this['endtime']=moment()[_0x64d0('0x1b')](_0x64d0('0x1c'));this[_0x64d0('0x1d')]=getSeconds(_0x329f2d[_0x64d0('0x1a')],_0x329f2d[_0x64d0('0x19')]);this[_0x64d0('0x1e')]=0x0;this[_0x64d0('0x1f')]=getSeconds(this['endtime'],_0x329f2d[_0x64d0('0x1a')]);this['queue']=_0x329f2d[_0x64d0('0xd')];this[_0x64d0('0x20')]=_0x64d0('0x21');this[_0x64d0('0x22')]=_0x4ceee9[_0x64d0('0x23')];this['callback']=_0x329f2d[_0x64d0('0x24')];this[_0x64d0('0x25')]=_0x329f2d[_0x64d0('0x25')];this[_0x64d0('0x26')]=_0x329f2d[_0x64d0('0x26')];this[_0x64d0('0x27')]=_0x329f2d[_0x64d0('0x27')];this[_0x64d0('0x28')]=_0x329f2d[_0x64d0('0x28')];this[_0x64d0('0x29')]=_0x329f2d[_0x64d0('0x29')];this[_0x64d0('0x2a')]=_0x329f2d[_0x64d0('0x2a')];this['VoiceQueueId']=_0x329f2d[_0x64d0('0x2b')];this['CampaignId']=_0x329f2d['CampaignId'];}module[_0x64d0('0x2c')]=Hangup;
\ No newline at end of file
+var _0x1932=['exports','util','lodash','moment','milliseconds','state','Answer','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countmachineretry','countagentrejectretry','countdropretry','uniqueid','name','number','starttime','responsetime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','membername','cause-txt','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId'];(function(_0x1b3ed9,_0x23c04){var _0x5a8e35=function(_0x3247d8){while(--_0x3247d8){_0x1b3ed9['push'](_0x1b3ed9['shift']());}};_0x5a8e35(++_0x23c04);}(_0x1932,0x191));var _0x2193=function(_0x15bc81,_0x4d4f77){_0x15bc81=_0x15bc81-0x0;var _0x59440e=_0x1932[_0x15bc81];return _0x59440e;};'use strict';var util=require(_0x2193('0x0'));var _=require(_0x2193('0x1'));var moment=require(_0x2193('0x2'));function getSeconds(_0x50744d,_0x25d7e1){var _0x68957d=moment(_0x50744d)[_0x2193('0x3')](0x0);var _0x4c5ef6=moment(_0x25d7e1)[_0x2193('0x3')](0x0);return _0x68957d['diff'](_0x4c5ef6,'seconds');}function Hangup(_0x5bf07f,_0x2030c9){this[_0x2193('0x4')]=0x4;this['statedesc']=_0x2193('0x5');this[_0x2193('0x6')]=_0x5bf07f['scheduledat'];this[_0x2193('0x7')]=_0x5bf07f[_0x2193('0x7')];this[_0x2193('0x8')]=_0x5bf07f[_0x2193('0x7')]===_0x2193('0x9')?_0x2193('0xa'):_0x5bf07f['type'];this[_0x2193('0xb')]=_0x5bf07f['countbusyretry'];this[_0x2193('0xc')]=_0x5bf07f[_0x2193('0xc')];this[_0x2193('0xd')]=_0x5bf07f[_0x2193('0xd')];this[_0x2193('0xe')]=_0x5bf07f[_0x2193('0xb')]+_0x5bf07f[_0x2193('0xc')]+_0x5bf07f[_0x2193('0xd')]+_0x5bf07f[_0x2193('0xf')]+_0x5bf07f['countdropretry']+_0x5bf07f['countabandonedretry']+_0x5bf07f[_0x2193('0x10')]+_0x5bf07f[_0x2193('0x11')];this[_0x2193('0xf')]=_0x5bf07f[_0x2193('0xf')];this['countdropretry']=_0x5bf07f[_0x2193('0x12')];this['countabandonedretry']=_0x5bf07f['countabandonedretry'];this['countmachineretry']=_0x5bf07f[_0x2193('0x10')];this[_0x2193('0x11')]=_0x5bf07f[_0x2193('0x11')];this[_0x2193('0x13')]=_0x2030c9[_0x2193('0x13')];this['calleridname']=_0x5bf07f[_0x2193('0x14')];this['calleridnum']=_0x5bf07f[_0x2193('0x15')];this[_0x2193('0x16')]=_0x5bf07f['starttime'];this[_0x2193('0x17')]=_0x5bf07f[_0x2193('0x17')];this[_0x2193('0x18')]=moment()[_0x2193('0x19')](_0x2193('0x1a'));this[_0x2193('0x1b')]=getSeconds(_0x5bf07f[_0x2193('0x17')],_0x5bf07f[_0x2193('0x16')]);this[_0x2193('0x1c')]=0x0;this['talktime']=getSeconds(this['endtime'],_0x5bf07f[_0x2193('0x17')]);this['queue']=_0x5bf07f[_0x2193('0xa')];this[_0x2193('0x1d')]='IVR';this['reason']=_0x2030c9[_0x2193('0x1e')];this['callback']=_0x5bf07f['callback'];this[_0x2193('0x1f')]=_0x5bf07f['callbackuniqueid'];this[_0x2193('0x20')]=_0x5bf07f[_0x2193('0x20')];this[_0x2193('0x21')]=_0x5bf07f['recallme'];this[_0x2193('0x22')]=_0x5bf07f[_0x2193('0x22')];this[_0x2193('0x23')]=_0x5bf07f[_0x2193('0x23')];this[_0x2193('0x24')]=_0x5bf07f[_0x2193('0x24')];this[_0x2193('0x25')]=_0x5bf07f['VoiceQueueId'];this['CampaignId']=_0x5bf07f[_0x2193('0x26')];}module[_0x2193('0x27')]=Hangup;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x30e9=['countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countagentrejectretry','countabandonedretry','countmachineretry','calleridname','calleridnum','number','starttime','responsetime','ringtime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','CampaignId','originatecalleridnum','originatecalleridname','util','lodash','moment','milliseconds','seconds','uniqueid','scheduledat','type','outbound','queue'];(function(_0x936f1f,_0x2eaf2f){var _0xb36ff7=function(_0x4877ac){while(--_0x4877ac){_0x936f1f['push'](_0x936f1f['shift']());}};_0xb36ff7(++_0x2eaf2f);}(_0x30e9,0x9b));var _0x930e=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x30e9[_0x501510];return _0x1e6ee5;};'use strict';var util=require(_0x930e('0x0'));var _=require(_0x930e('0x1'));var moment=require(_0x930e('0x2'));function getSeconds(_0x475f95,_0x5eb632){var _0x30cc67=moment(_0x475f95)[_0x930e('0x3')](0x0);var _0x4f159b=moment(_0x5eb632)[_0x930e('0x3')](0x0);return _0x30cc67['diff'](_0x4f159b,_0x930e('0x4'));}function History(_0x48aa4e){this[_0x930e('0x5')]=_0x48aa4e['uniqueid'];this['scheduledat']=_0x48aa4e[_0x930e('0x6')]||undefined;this[_0x930e('0x7')]=_0x48aa4e[_0x930e('0x7')];this['campaigntype']=_0x48aa4e[_0x930e('0x7')]===_0x930e('0x8')?_0x930e('0x9'):_0x48aa4e['type'];this[_0x930e('0xa')]=_0x48aa4e['countbusyretry'];this[_0x930e('0xb')]=_0x48aa4e[_0x930e('0xb')];this[_0x930e('0xc')]=_0x48aa4e['countnoanswerretry'];this['countglobal']=_0x48aa4e['countbusyretry']+_0x48aa4e[_0x930e('0xb')]+_0x48aa4e[_0x930e('0xc')]+_0x48aa4e[_0x930e('0xd')]+_0x48aa4e[_0x930e('0xe')]+_0x48aa4e['countabandonedretry']+_0x48aa4e['countmachineretry']+_0x48aa4e[_0x930e('0xf')];this[_0x930e('0xd')]=_0x48aa4e[_0x930e('0xd')];this['countdropretry']=_0x48aa4e[_0x930e('0xe')];this['countabandonedretry']=_0x48aa4e[_0x930e('0x10')];this[_0x930e('0x11')]=_0x48aa4e[_0x930e('0x11')];this[_0x930e('0xf')]=_0x48aa4e[_0x930e('0xf')];this['queue']=_0x48aa4e[_0x930e('0x9')];this[_0x930e('0x12')]=_0x48aa4e['name'];this[_0x930e('0x13')]=_0x48aa4e[_0x930e('0x14')];this[_0x930e('0x15')]=_0x48aa4e[_0x930e('0x15')];this[_0x930e('0x16')]=_0x48aa4e[_0x930e('0x16')];this['endtime']=_0x48aa4e[_0x930e('0x16')];this[_0x930e('0x17')]=getSeconds(_0x48aa4e[_0x930e('0x16')],_0x48aa4e[_0x930e('0x15')]);this['holdtime']=0x0;this['talktime']=0x0;this[_0x930e('0x18')]=_0x48aa4e[_0x930e('0x18')];this[_0x930e('0x19')]=_0x48aa4e['callbackuniqueid'];this['callbackat']=_0x48aa4e[_0x930e('0x1a')];this[_0x930e('0x1b')]=_0x48aa4e[_0x930e('0x1b')];this[_0x930e('0x1c')]=_0x48aa4e[_0x930e('0x1c')];this[_0x930e('0x1d')]=_0x48aa4e['ListId'];this['UserId']=_0x48aa4e['UserId'];this['VoiceQueueId']=_0x48aa4e['VoiceQueueId'];this[_0x930e('0x1e')]=_0x48aa4e['CampaignId'];this[_0x930e('0x1f')]=_0x48aa4e['originatecalleridnum']||'';this[_0x930e('0x20')]=_0x48aa4e[_0x930e('0x20')]||'';}module['exports']=History;
\ No newline at end of file
+var _0xfb41=['campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','name','calleridnum','starttime','responsetime','endtime','ringtime','talktime','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util','lodash','moment','milliseconds','uniqueid','scheduledat','type'];(function(_0x31a9cc,_0x243908){var _0x1e0710=function(_0x399f8b){while(--_0x399f8b){_0x31a9cc['push'](_0x31a9cc['shift']());}};_0x1e0710(++_0x243908);}(_0xfb41,0x1a9));var _0x1fb4=function(_0x45f0ab,_0x166cd2){_0x45f0ab=_0x45f0ab-0x0;var _0x53e0ee=_0xfb41[_0x45f0ab];return _0x53e0ee;};'use strict';var util=require(_0x1fb4('0x0'));var _=require(_0x1fb4('0x1'));var moment=require(_0x1fb4('0x2'));function getSeconds(_0x599323,_0x24a112){var _0x13de7f=moment(_0x599323)[_0x1fb4('0x3')](0x0);var _0x29f0b0=moment(_0x24a112)[_0x1fb4('0x3')](0x0);return _0x13de7f['diff'](_0x29f0b0,'seconds');}function History(_0x30f246){this[_0x1fb4('0x4')]=_0x30f246['uniqueid'];this['scheduledat']=_0x30f246[_0x1fb4('0x5')]||undefined;this[_0x1fb4('0x6')]=_0x30f246[_0x1fb4('0x6')];this[_0x1fb4('0x7')]=_0x30f246[_0x1fb4('0x6')]===_0x1fb4('0x8')?_0x1fb4('0x9'):_0x30f246[_0x1fb4('0x6')];this[_0x1fb4('0xa')]=_0x30f246[_0x1fb4('0xa')];this[_0x1fb4('0xb')]=_0x30f246[_0x1fb4('0xb')];this[_0x1fb4('0xc')]=_0x30f246[_0x1fb4('0xc')];this[_0x1fb4('0xd')]=_0x30f246[_0x1fb4('0xa')]+_0x30f246['countcongestionretry']+_0x30f246['countnoanswerretry']+_0x30f246[_0x1fb4('0xe')]+_0x30f246[_0x1fb4('0xf')]+_0x30f246[_0x1fb4('0x10')]+_0x30f246[_0x1fb4('0x11')]+_0x30f246[_0x1fb4('0x12')];this['countnosuchnumberretry']=_0x30f246[_0x1fb4('0xe')];this[_0x1fb4('0xf')]=_0x30f246[_0x1fb4('0xf')];this[_0x1fb4('0x10')]=_0x30f246[_0x1fb4('0x10')];this[_0x1fb4('0x11')]=_0x30f246[_0x1fb4('0x11')];this[_0x1fb4('0x12')]=_0x30f246[_0x1fb4('0x12')];this[_0x1fb4('0x9')]=_0x30f246[_0x1fb4('0x9')];this['calleridname']=_0x30f246[_0x1fb4('0x13')];this[_0x1fb4('0x14')]=_0x30f246['number'];this[_0x1fb4('0x15')]=_0x30f246[_0x1fb4('0x15')];this[_0x1fb4('0x16')]=_0x30f246[_0x1fb4('0x16')];this[_0x1fb4('0x17')]=_0x30f246[_0x1fb4('0x16')];this[_0x1fb4('0x18')]=getSeconds(_0x30f246[_0x1fb4('0x16')],_0x30f246['starttime']);this['holdtime']=0x0;this[_0x1fb4('0x19')]=0x0;this['callback']=_0x30f246['callback'];this[_0x1fb4('0x1a')]=_0x30f246['callbackuniqueid'];this[_0x1fb4('0x1b')]=_0x30f246[_0x1fb4('0x1b')];this[_0x1fb4('0x1c')]=_0x30f246[_0x1fb4('0x1c')];this['ContactId']=_0x30f246[_0x1fb4('0x1d')];this[_0x1fb4('0x1e')]=_0x30f246[_0x1fb4('0x1e')];this['UserId']=_0x30f246[_0x1fb4('0x1f')];this[_0x1fb4('0x20')]=_0x30f246['VoiceQueueId'];this[_0x1fb4('0x21')]=_0x30f246[_0x1fb4('0x21')];this['originatecalleridnum']=_0x30f246[_0x1fb4('0x22')]||'';this[_0x1fb4('0x23')]=_0x30f246['originatecalleridname']||'';}module['exports']=History;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e63=['dialCongestionMaxRetry','[rescheduleContact]\x20[Congestion]','dialNoSuchNumberMaxRetry','[rescheduleContact][NoSuchNumber]','[rescheduleContact][Drop]','[rescheduleContact][Abandoned]','[rescheduleContact][Machine]','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','object','entity\x20is\x20undefine','[callProgressDetecting]','evt\x20is\x20undefine','custom:agentnosuchnumber','nosuchnumber','reason\x200\x20no\x20such\x20number....','outboundNoAnswerCallsDay','NoAnswer','custom:agentnoanswer','noanswer','[syncAgentComplete][createHistory][3]','dialNoAnswerMaxRetry','reason\x203\x20ringing\x20no\x20answer','custom:agentbusy','[syncAgentComplete][createHistory][5]','reason\x205\x20busy','outboundCongestionCallsDay','custom:agentcongestion','congestion','reason\x208\x20congestion','reason\x2011\x20abandoned','AgentReject','custom:agentreject','agentreject','[syncAgentComplete][createHistory][20]','reason\x2020\x20agentreject','Global','[moveContactManagedDialer][0]','dialPredictiveOptimizationPercentage','predictiveIntervalMinThreshold','floor','predictiveIntervalMultiplicativeFactor','check\x20predictive\x20is\x20not\x20undefine','[startMethodPredictive][StartProgressive]','check\x20handlePredictive\x20is\x20not\x20undefine','collection\x20data\x20in\x20progressive\x20at','[startMethodPredictive][StartProgressive][Loop]','dialPredictiveOptimization','[stopMethodPredictive][ReStartProgressive][ExceededDropDay]','dropRate','Max\x20Drop\x20','started\x20in\x20predictive\x20at','dialPredictiveInterval','getDataPredictive','startMethodPredictive','Predictive\x20after\x20first\x20interval','recalculate\x20predictive\x20at','Predictive\x20for\x20every\x20interval',')\x20are\x20less\x20than\x20threshold\x20(','switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',')\x20are\x20more\x20than\x20threshold\x20(','abandonmentRate','agentBusyFactor','busyFactor','[getDataPredictive]','Unknown\x20Predictive','check\x20failure','getDataPredictiveOld','outboundQueuePauses','[CatchErlangB]','erlangCallToSecond','one\x20call\x20every:','fail\x20to\x20scheduled\x20calls','checkContactBlack','UserId','[booked][checkContactBlack]','queueStatusComplete:\x20','queuestatus','[unlockOriginate][syncQueueStatusComplete]','[booked][checkContactBlack][else]','Queue:\x20','actionOriginate','dialRecallMeTimeout','Agent','voicePause','outboundReCallsDay','[rescheduleContact][dialRecallInQueue]','RECALLINQUEUE','[Originate][HistoryDialRecallInQueue][historyCatch]','RECALLFAILEDTIMEOUT','RecallFailedTimeout','[Originate][HistoryRecallClose][historyCatch]','[Originate][HistoryRecallClose]','BLACKLIST','[Originate][historyBlacklist]','[Originate][MoveBlacklist]','inBlackList','handleIvr','limitCalls','RUNNING','[actionOriginate]\x20','Contact.phone','[actionOriginateIvr]\x20','dialLimitQueue','not_inuse','reachable','dialOrderByScheduledAt','[getContactDialer2]','tryOriginatePredictive','[handlePredictive][limitChannel]','[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','m\x20=\x20','Ts\x20=\x20','[abandonmentRate]','interval\x20=\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','lodash','moment','md5','ioredis','../../../config/logger','dialer','predictive','predictiveCalls','../ami','redis','defaults','localhost','../rpc/cmHopper','../rpc/cmHopperBlack','./action','./history','./final','./agentComplete','./queueCallerAbandon','env','XCALLY_IP_AGI','rrmemory','roundrobin','prototype','enqueue','tail','finally','sequence','voiceQueues','campaigns','agents','trunks','maxNumberOriginate','channels','actions','contactsId','uniqueId','optionPredictive','queueBooked','syncAgentConnect','bind','queuecallerabandon','syncQueueCallerAbandon','originateresponse','syncOriginateResponse','syncAgentComplete','custom:queuesummary','syncQueueSummary','hangup','syncHangup','syncNewExten','varset','syncVarSet','queuemember','syncQueueMember','queuestatuscomplete','loopCampaigns','loopClearZombieChannels','isUndefined','message','AGENTS_NOT_LOGGED','name','\x20AGENTS\x20NOT\x20LOGGED','NOT_ACTIVE','\x20NOT\x20Active','Interval','\x20INTERVAL_IS_NULL','Intervals','INTERVAL_IS_NULL','isEmpty','Error','stringify','milliseconds','diff','seconds','emit','strategy','answered','available','loggedIn','pTalking','sumBillable','sumDuration','sumHoldTime','total','type','unmanaged','abandoned','waiting','dialActive','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalPauses','predictiveIntervalAvailable','originated','erlangCalls','erlangAbandonmentRate','erlangBusyFactor','startPredictive','Trunk','active','callerid','voice:queue:%s','format','campaign:ivr:%s','campaign:save','info','-----\x20Stats\x20Predictive\x20---','Total\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','predictiveIntervalTotalCalls','Answered\x20Calls:\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','One\x20call\x20every:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Agent\x20Busy\x20Factor:\x20\x20\x20\x20\x20\x20\x20\x20\x20','merge','startProgressive','clearing\x20variable\x20start\x20progressive','clearing\x20variable\x20start\x20predictive','handlePredictive','clearing\x20variable\x20handle\x20predictive','outbound','preview','ivr','string','\x22%s\x22\x20<%s>','\x22\x22\x20<>','error','inspect','stack','undefined','[decremetOriginate]\x20object\x20originated\x20is\x20negative','RESCHEDULED_CONTACTS','[getContactDialer2][ReScheduled]','contactsRescheduled','contacts','AVAILABLE_CONTACTS_FINISHED','[getContactDialer2][Empty]','talking','sendMessageOneNotActive','is\x20not\x20active','IS_DISACTIVED','[syncQueueSummary]\x20Campaign\x20Queue:\x20','is\x20disactive','[syncQueueSummary]\x20Campaign\x20Ivr:\x20','statedesc','endtime','starttime','clearZombieChannels','[actions]','isNil','Action','status','channel','updateOriginated','queue','[Dialer][checkChannel]','[Dialer][checkChannel][ivr]','resolve','countReScheduled','catch','[countReScheduled]\x20','checkIsBlackList','then','checkIsBlackListIvr','[checkIsBlackListIvr]\x20','averageHandleTime','avgHandleTime','[averageHandleTime]\x20','rescheduleContact','unlockContact','[unlockContact]\x20','getContactDialer','temp','[getContactDialer]\x20','getContactDialerIvr','getVoiceQueueRtPauses','[getVoiceQueueRtPauses]\x20','moveContactManagedDialer','[moveContactManagedDialer]\x20','createHistory','[createHistory]\x20','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','loggerHandler','emptyContact','notFound','pick','ContactId','ListId','VoiceQueueId','CampaignId','Success','isTrunkReachable','SIP/%s','unmonitored','variable','amdstatus','exten','xcally-motion-dialer','value','uniqueid','outboundAnswerCallsDay','HangupInAMD','membername','AMD','custom:amd','buildObj','amd','saveInDb','[syncHangupInAMD][createHistory]','[syncHangupInAMD]','dialAMDActive','MACHINE','state','Machine','countglobal','[syncAgentComplete][createHistory][0]','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','dialGlobalMaxRetry','stateGlobal','dialMachineMaxRetry','createStateFinal','reason\x2019\x20machine....','add','dialMachineRetryFrequency','minutes','YYYY-MM-DD\x20HH:mm:ss','HANGUP','[syncHangupInAMDIvr]','reason19\x20machine....','ivrAnswerCallsDay','[syncHangupIvr]','dialQueueProject','AnswerAGI','AGI','[syncHangupIvr][createHistory]','cause-txt','Unknow','reason','agent','agiafterat','dialAgiAfterHangupAgent','[syncAgentComplete][createHistory]','answertime','queueCallerAbandonCreateState','droptime','responsetime','dropreason','TIMEOUT','dialQueueProject2','dialDropMaxRetry','dialDropRetryFrequency','calleridname','calleridnum','[syncAgentComplete][createHistory][10]','Abandoned','CALLEREXIT','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','[syncAgentComplete][createHistory][11]','actionid','stateinterface','locked','push','paused','queueStatusComplete','[unlockQueueStatus][undefined]','[booked][unlockQueueStatus]','syncQueueStatusComplete','run','idHopper','queueBookedRR','_rr','length','unlockRR','[booked][RR]','Agent:\x20','contactAgent-idHopper:\x20','[Catch][Preview][syncQueueStatusComplete]','[booked][unlock]','[unlock][syncQueueStatusComplete]','[booked][unlock2]','[booked][unlock3]','[unlock3][syncQueueStatusComplete]','TRUNK_IS_NOT_REACHABLE','ifTime','Failure','\x20Intervals\x20is\x20null\x20','INTERVAL_IS_EMPTY','\x20Intervals\x20is\x20empty\x20','timezones','TIMEZONE_UNKNOW','\x20Timezone\x20unknow\x20','isArray','command','iftime\x20%s,%s','interval','content','indexOf','true','some','GLOBAL_INTERVAL_IS_OVERTIME','[ifTime][promiseAll]','Global:\x20','\x20Interval\x20is\x20overtime:\x20','Timezone:\x20','checkDialMethod','progressive','handlePower','dialPowerLevel','booked','Queue','method\x20not\x20recognized','launchHandleIvr','dialMethod','checkIfTime','dialGlobalInterval','checkIfTimeIntervals','[syncQueueSummary]','checkIsTrunkReachable','dialTimezone','\x5cw{0,','pow','match','originate','voiceQueue\x20is\x20undefine','Contact','phone','contact\x20is\x20undefine','getCaller','\x22agi://%s/square,%s\x22','NONE','\x22%s,%s%s,,,%s\x22','dialQueueTimeout','ACTIVE','XMD-AMDINITIALSILENCE','dialAMDInitialSilence','XMD-AMDGREETING','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','XMD-AMDMINWORDLENGTH','XMD-AMDBETWEENWORDSSILENCE','dialAMDBetweenWordsSilence','XMD-AMDMAXIMUMNUMBEROFWORDS','dialAMDMaximumNumberOfWords','XMD-AMDSILENCETHRESHOLD','dialAMDSilenceThreshold','XMD-AMDMAXIMUMWORDLENGTH','dialAMDMaximumWordLength','XMD-VOICEQUEUEID','tags','createdAt','%s%s','XMD-','toUpper','dialRandomLastDigitCallerIdNumber','TrunkBackup','originatecalleridname','XMD-ORIGINATECALLERIDNUM','originatecalleridnum','SIP/%s/%s%s','trim','substring','dialCutDigit','from-sip','originate\x20action\x20Error','isSuccess','response','callProgressDetecting','[callProgressDetecting]\x20','checkRetriveMax','dialNoAnswerRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','[rescheduleContact]\x20[Busy]'];(function(_0x3b33b8,_0x285a75){var _0x2c8674=function(_0x22e6f8){while(--_0x22e6f8){_0x3b33b8['push'](_0x3b33b8['shift']());}};_0x2c8674(++_0x285a75);}(_0x8e63,0x7c));var _0x38e6=function(_0x515e32,_0x1296d8){_0x515e32=_0x515e32-0x0;var _0x50f6fc=_0x8e63[_0x515e32];return _0x50f6fc;};'use strict';var util=require('util');var _=require(_0x38e6('0x0'));var BPromise=require('bluebird');var uuid=require('uuid');var moment=require(_0x38e6('0x1'));var rr=require('rr');var md5=require(_0x38e6('0x2'));var Redis=require(_0x38e6('0x3'));var ut=require('../preview/util/util');var config=require('../../../config/environment/');var logger=require(_0x38e6('0x4'))(_0x38e6('0x5'));var loggerBooked=require(_0x38e6('0x4'))('booked');var loggerPredictive=require(_0x38e6('0x4'))(_0x38e6('0x6'));var loggerPredictiveCalls=require(_0x38e6('0x4'))(_0x38e6('0x7'));var loggerSyncQueueSummary=require('../../../config/logger')('syncQueueSummary');var ami=require(_0x38e6('0x8'));config[_0x38e6('0x9')]=_[_0x38e6('0xa')](config[_0x38e6('0x9')],{'host':_0x38e6('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));var cmHopper=require(_0x38e6('0xc'));var cmHopperHistory=require('../rpc/cmHopperHistory');var cmHopperBlack=require(_0x38e6('0xd'));var voiceQueueRt=require('../rpc/voiceQueueRt');var Action=require(_0x38e6('0xe'));var History=require(_0x38e6('0xf'));var Final=require(_0x38e6('0x10'));var AgentComplete=require(_0x38e6('0x11'));var QueueCallerAbandon=require(_0x38e6('0x12'));var Hangup=require('./hangup');var ipAgi=process[_0x38e6('0x13')][_0x38e6('0x14')]||'127.0.0.1';var strategy={'rrmemory':_0x38e6('0x15'),'roundrobin':_0x38e6('0x16')};var Sequence=function(){};Sequence[_0x38e6('0x17')][_0x38e6('0x18')]=function(_0x220871){this[_0x38e6('0x19')]=this['tail']?this[_0x38e6('0x19')][_0x38e6('0x1a')](_0x220871):_0x220871();};function Dialer(_0x3299c9,_0x223169){this[_0x38e6('0x1b')]=new Sequence();this['preview']=_0x223169;this[_0x38e6('0x1c')]=_0x3299c9['voiceQueues'];this[_0x38e6('0x1d')]=_0x3299c9[_0x38e6('0x1d')];this[_0x38e6('0x1e')]=_0x3299c9[_0x38e6('0x1e')];this['trunks']=_0x3299c9[_0x38e6('0x1f')];this['maxNumberOriginate']=config[_0x38e6('0x20')]||0x2;this[_0x38e6('0x21')]={};this[_0x38e6('0x22')]={};this[_0x38e6('0x23')]={};this[_0x38e6('0x24')]={};this[_0x38e6('0x25')]={};this['startPredictive']={};this['startProgressive']={};this['ivrOriginated']={};this[_0x38e6('0x26')]={};this['queueBookedRR']={};ami['on']('agentconnect',this[_0x38e6('0x27')][_0x38e6('0x28')](this));ami['on'](_0x38e6('0x29'),this[_0x38e6('0x2a')]['bind'](this));ami['on'](_0x38e6('0x2b'),this[_0x38e6('0x2c')][_0x38e6('0x28')](this));ami['on']('agentcomplete',this[_0x38e6('0x2d')][_0x38e6('0x28')](this));ami['on'](_0x38e6('0x2e'),this[_0x38e6('0x2f')][_0x38e6('0x28')](this));ami['on'](_0x38e6('0x30'),this[_0x38e6('0x31')][_0x38e6('0x28')](this));ami['on']('newexten',this[_0x38e6('0x32')]['bind'](this));ami['on'](_0x38e6('0x33'),this[_0x38e6('0x34')][_0x38e6('0x28')](this));ami['on'](_0x38e6('0x35'),this[_0x38e6('0x36')][_0x38e6('0x28')](this));ami['on'](_0x38e6('0x37'),this['syncQueueStatusComplete'][_0x38e6('0x28')](this));this[_0x38e6('0x38')]();this[_0x38e6('0x39')]();}function isNotNull(_0x1aa78b){return _0x1aa78b!==null&&!_[_0x38e6('0x3a')](_0x1aa78b);}function checkIsLoggedIn(_0x526569,_0x468310){return function(){if(_0x468310<=0x0){_0x526569[_0x38e6('0x3b')]=_0x38e6('0x3c');throw _0x526569[_0x38e6('0x3d')]+_0x38e6('0x3e');}};}function isActive(_0x38d484){return _0x38d484;}function checkIsActive(_0x1fe0e7,_0x5a5979){return function(){if(!isActive(_0x5a5979)){_0x1fe0e7[_0x38e6('0x3b')]=_0x38e6('0x3f');throw _0x1fe0e7[_0x38e6('0x3d')]+_0x38e6('0x40');}};}function checkInterval(_0x15232f){return function(){if(!isNotNull(_0x15232f[_0x38e6('0x41')])){_0x15232f[_0x38e6('0x3b')]='INTERVAL_IS_NULL';throw _0x15232f[_0x38e6('0x3d')]+_0x38e6('0x42');}if(!isNotNull(_0x15232f[_0x38e6('0x41')][_0x38e6('0x43')])){_0x15232f[_0x38e6('0x3b')]=_0x38e6('0x44');throw _0x15232f[_0x38e6('0x3d')]+'\x20INTERVAL_IS_NULL';}if(!isNotNull(_[_0x38e6('0x45')](_0x15232f[_0x38e6('0x41')][_0x38e6('0x43')]))){_0x15232f[_0x38e6('0x3b')]='INTERVAL_IS_NULL';throw _0x15232f[_0x38e6('0x3d')]+_0x38e6('0x42');}};}function msgResponse(_0x4e415a,_0x769dcb,_0x3ffe8b){return{'action':_0x4e415a,'response':_0x769dcb,'message':_0x3ffe8b,'stack':_0x3ffe8b};}function myreject(_0x35bb87){return function(_0x14f5e9){return _0x35bb87(msgResponse('[ifTime][Action]',_0x38e6('0x46'),JSON[_0x38e6('0x47')](_0x14f5e9)));};}function getSeconds(_0x22ff9e,_0x22c275){var _0x54f627=moment(_0x22ff9e)[_0x38e6('0x48')](0x0);var _0x1f06a6=moment(_0x22c275)[_0x38e6('0x48')](0x0);return _0x54f627[_0x38e6('0x49')](_0x1f06a6,_0x38e6('0x4a'));}function emit(_0xe1d8ab,_0xf9677d,_0x5d1386){io['to'](_0xe1d8ab)[_0x38e6('0x4b')](_0xf9677d,_0x5d1386);}function emitVoiceQueueSummary(_0x3ac91f){if(_0x3ac91f['type']==='outbound'){var _0x3b1eb9={'id':_0x3ac91f['id'],'name':_0x3ac91f[_0x38e6('0x3d')],'strategy':_0x3ac91f[_0x38e6('0x4c')],'answered':_0x3ac91f[_0x38e6('0x4d')],'available':_0x3ac91f[_0x38e6('0x4e')],'loggedIn':_0x3ac91f[_0x38e6('0x4f')],'pTalking':_0x3ac91f[_0x38e6('0x50')],'sumBillable':_0x3ac91f[_0x38e6('0x51')],'sumDuration':_0x3ac91f[_0x38e6('0x52')],'sumHoldTime':_0x3ac91f[_0x38e6('0x53')]||0x0,'talking':_0x3ac91f['talking'],'total':_0x3ac91f[_0x38e6('0x54')],'type':_0x3ac91f[_0x38e6('0x55')],'unmanaged':_0x3ac91f[_0x38e6('0x56')],'abandoned':_0x3ac91f[_0x38e6('0x57')],'waiting':_0x3ac91f[_0x38e6('0x58')],'loggedInDb':_0x3ac91f['loggedInDb'],'dialActive':_0x3ac91f[_0x38e6('0x59')],'dialMethod':_0x3ac91f['dialMethod'],'dialOriginateCallerIdName':_0x3ac91f[_0x38e6('0x5a')],'dialOriginateCallerIdNumber':_0x3ac91f[_0x38e6('0x5b')],'dialOriginateTimeout':_0x3ac91f[_0x38e6('0x5c')],'dialPrefix':_0x3ac91f[_0x38e6('0x5d')],'outboundAnswerAgiCallsDay':_0x3ac91f[_0x38e6('0x5e')],'outboundAnswerCallsDay':_0x3ac91f['outboundAnswerCallsDay'],'outboundBlacklistCallsDay':_0x3ac91f[_0x38e6('0x5f')],'outboundBusyCallsDay':_0x3ac91f[_0x38e6('0x60')],'outboundCongestionCallsDay':_0x3ac91f['outboundCongestionCallsDay'],'outboundDropCallsDayACS':_0x3ac91f[_0x38e6('0x61')],'outboundDropCallsDayCallersExit':_0x3ac91f[_0x38e6('0x62')],'outboundDropCallsDayTimeout':_0x3ac91f[_0x38e6('0x63')],'outboundNoAnswerCallsDay':_0x3ac91f['outboundNoAnswerCallsDay'],'outboundNoSuchCallsDay':_0x3ac91f[_0x38e6('0x64')],'outboundOriginateFailureCallsDay':_0x3ac91f[_0x38e6('0x65')],'outboundReCallsDay':_0x3ac91f['outboundReCallsDay'],'outboundRejectCallsDay':_0x3ac91f[_0x38e6('0x66')],'outboundUnknownCallsDay':_0x3ac91f[_0x38e6('0x67')],'predictiveIntervalAnsweredCalls':_0x3ac91f[_0x38e6('0x68')],'predictiveIntervalAvgHoldtime':_0x3ac91f[_0x38e6('0x69')],'predictiveIntervalAvgTalktime':_0x3ac91f[_0x38e6('0x6a')],'predictiveIntervalDroppedCallsCallersExit':_0x3ac91f['predictiveIntervalDroppedCallsCallersExit'],'predictiveIntervalDroppedCallsTimeout':_0x3ac91f[_0x38e6('0x6b')],'predictiveIntervalErlangCalls':_0x3ac91f['predictiveIntervalErlangCalls'],'predictiveIntervalErlangCallsDroppedCalls':_0x3ac91f[_0x38e6('0x6c')],'predictiveIntervalHitRate':_0x3ac91f[_0x38e6('0x6d')],'predictiveIntervalMultiplicativeFactor':_0x3ac91f['predictiveIntervalMultiplicativeFactor'],'predictiveIntervalPauses':_0x3ac91f[_0x38e6('0x6e')],'predictiveIntervalAvailable':_0x3ac91f[_0x38e6('0x6f')],'predictiveIntervalTotalCalls':_0x3ac91f['predictiveIntervalTotalCalls'],'message':_0x3ac91f[_0x38e6('0x3b')],'originated':_0x3ac91f[_0x38e6('0x70')],'erlangCalls':_0x3ac91f[_0x38e6('0x71')],'erlangCallToSecond':_0x3ac91f['erlangCallToSecond'],'erlangAbandonmentRate':_0x3ac91f[_0x38e6('0x72')],'erlangBusyFactor':_0x3ac91f[_0x38e6('0x73')],'startPredictive':_0x3ac91f[_0x38e6('0x74')],'startProgressive':_0x3ac91f['startProgressive']};if(_0x3ac91f['Trunk']){_0x3b1eb9[_0x38e6('0x75')]={'id':_0x3ac91f[_0x38e6('0x75')]['id'],'name':_0x3ac91f['Trunk'][_0x38e6('0x3d')],'active':_0x3ac91f[_0x38e6('0x75')][_0x38e6('0x76')],'callerid':_0x3ac91f[_0x38e6('0x75')][_0x38e6('0x77')]};}if(_0x3ac91f[_0x38e6('0x41')]){_0x3b1eb9[_0x38e6('0x41')]={'id':_0x3ac91f['Interval']['id'],'name':_0x3ac91f['Interval'][_0x38e6('0x3d')]};}var _0x5d1e7b=md5(JSON[_0x38e6('0x47')](_0x3b1eb9));if(_0x3ac91f[_0x38e6('0x2')]!==_0x5d1e7b){_0x3ac91f['md5']=_0x5d1e7b;emit(util['format'](_0x38e6('0x78'),_0x3b1eb9[_0x38e6('0x3d')]),'voice_queue:save',_0x3b1eb9);}}}function emitCampaignSummary(_0x175dfa){if(_0x175dfa['type']==='ivr'){emit(util[_0x38e6('0x79')](_0x38e6('0x7a'),_0x175dfa[_0x38e6('0x3d')]),_0x38e6('0x7b'),_0x175dfa);}}function checkGetDataPredictive(_0x911aa2){if(isNotNull(_0x911aa2)&&!_['isEmpty'](_0x911aa2)){loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x7d'));loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x7e'),_0x911aa2[_0x38e6('0x7f')]);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x80'),_0x911aa2['predictiveIntervalAnsweredCalls']);loggerPredictive['info']('Dropped\x20Timeout:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x911aa2[_0x38e6('0x6b')]);loggerPredictive[_0x38e6('0x7c')]('Dropped\x20Exit:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x911aa2[_0x38e6('0x81')]);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x82'),_0x911aa2[_0x38e6('0x69')]);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x83'),_0x911aa2[_0x38e6('0x6a')]);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x84'));if(_0x911aa2[_0x38e6('0x7f')]>0x0){if(!_['isUndefined'](_0x911aa2[_0x38e6('0x6a')])&&_0x911aa2[_0x38e6('0x6a')]>0x0){return!![];}loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x85'));if(!_[_0x38e6('0x3a')](_0x911aa2[_0x38e6('0x69')])&&_0x911aa2[_0x38e6('0x69')]>0x0){return!![];}loggerPredictive['info'](_0x38e6('0x86'));}else{loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x87'));}}else{loggerPredictive[_0x38e6('0x7c')]('History\x20information\x20are\x20empty');}return![];}function mergeDataErlangB(_0x52f596){return function(_0x5d5410){loggerPredictive['info'](_0x38e6('0x88'));loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x89'),_0x5d5410['erlangCalls']);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x8a'),_0x5d5410['erlangCallToSecond']);loggerPredictive[_0x38e6('0x7c')]('Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x5d5410[_0x38e6('0x72')]);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x8b'),_0x5d5410['erlangBusyFactor']);loggerPredictive[_0x38e6('0x7c')]('Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x5d5410[_0x38e6('0x72')]);loggerPredictive['info'](_0x38e6('0x84'));_[_0x38e6('0x8c')](_0x52f596,_0x5d5410);};}function getDiff(_0x47fd58){var _0x40a292=moment()[_0x38e6('0x48')](0x0);var _0x57b971=moment(_0x47fd58)['milliseconds'](0x0);return _0x40a292[_0x38e6('0x49')](_0x57b971,_0x38e6('0x4a'));}function ifInterval(_0x7fefe1,_0x1719ce){if(_[_0x38e6('0x3a')](_0x1719ce)){return![];}return getDiff(_0x1719ce)<_0x7fefe1*0x3c;}function freeVariablesPredictive(_0x24ea3c){if(isNotNull(_0x24ea3c)){if(!_[_0x38e6('0x3a')](_0x24ea3c['startProgressive'])){_0x24ea3c[_0x38e6('0x8d')]=undefined;loggerPredictive[_0x38e6('0x7c')](_0x24ea3c[_0x38e6('0x3d')],_0x38e6('0x8e'));}if(!_['isUndefined'](_0x24ea3c[_0x38e6('0x74')])){_0x24ea3c[_0x38e6('0x74')]=undefined;loggerPredictive[_0x38e6('0x7c')](_0x24ea3c[_0x38e6('0x3d')],_0x38e6('0x8f'));}if(!_[_0x38e6('0x3a')](_0x24ea3c[_0x38e6('0x90')])){clearInterval(_0x24ea3c['handlePredictive']);_0x24ea3c[_0x38e6('0x90')]=undefined;loggerPredictive[_0x38e6('0x7c')](_0x24ea3c['name'],_0x38e6('0x91'));}}}function erlangb(_0x26d3e5,_0x5297e0){if(_0x5297e0===0x0){return 0x0;}var _0x1a791b=0x1;for(var _0x4f9236=0x1;_0x4f9236<=_0x5297e0;_0x4f9236+=0x1){_0x1a791b=0x1+_0x1a791b*_0x4f9236/_0x26d3e5;}return 0x1/_0x1a791b;}function isVoiceQueueOutbound(_0x21c25b){return _0x21c25b===_0x38e6('0x92');}function isNotPreview(_0x5ae980){return _0x5ae980!==_0x38e6('0x93');}function isCampaignIvr(_0x48fde3){return _0x48fde3===_0x38e6('0x94');}function getCallerId(_0x3cfbfc,_0x1eac84,_0x5aa9a1){if(!_['isUndefined'](_0x5aa9a1)&&typeof _0x5aa9a1===_0x38e6('0x95')&&!_[_0x38e6('0x45')](_0x5aa9a1)){if(!_[_0x38e6('0x3a')](_0x1eac84)&&typeof _0x1eac84===_0x38e6('0x95')&&!_[_0x38e6('0x45')](_0x1eac84)){return util[_0x38e6('0x79')]('\x22%s\x22\x20<%s>',_0x1eac84,_0x5aa9a1);}return util['format'](_0x38e6('0x96'),_0x5aa9a1,_0x5aa9a1);}if(!_[_0x38e6('0x3a')](_0x3cfbfc)&&typeof _0x3cfbfc===_0x38e6('0x95')&&!_[_0x38e6('0x45')](_0x3cfbfc)){return _0x3cfbfc;}return _0x38e6('0x97');}function loggerCatchQueueSummary(_0x117639,_0x287e63){return function(_0x1c2be5){freeVariablesPredictive(_0x287e63);emitVoiceQueueSummary(_0x287e63);emitCampaignSummary(_0x287e63);loggerSyncQueueSummary[_0x38e6('0x98')](_0x117639,util[_0x38e6('0x99')](_0x1c2be5,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x1ef1dd,_0x45da45){return function(_0x5c965b){loggerPredictive[_0x38e6('0x98')](_0x45da45[_0x38e6('0x3d')],_0x1ef1dd);loggerPredictive[_0x38e6('0x98')](_0x5c965b[_0x38e6('0x9a')]);freeVariablesPredictive(_0x45da45);};}function loggerCatch(_0x59fbf7){return function(_0x3e712c){logger[_0x38e6('0x98')](_0x59fbf7,util[_0x38e6('0x99')](_0x3e712c,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x15ca57){return _0x15ca57&&!_[_0x38e6('0x3a')](_0x15ca57)&&_0x15ca57['length']>0x0;}function decremetOriginate(_0x332315){if(!_[_0x38e6('0x3a')](_0x332315)&&_0x332315!==null){if(typeof _0x332315[_0x38e6('0x70')]!==_0x38e6('0x9b')){if(_0x332315[_0x38e6('0x70')]>0x0){_0x332315['originated']-=0x1;}else{logger[_0x38e6('0x98')](_0x38e6('0x9c'));}}}else{logger['error']('[decremetOriginate]\x20is\x20null\x20or\x20undefined');}}function checkContactLowerLimitOriginate(_0x40d33a,_0x1a66a3,_0x170733){if(_0x1a66a3>_0x170733){for(var _0x38845c=0x0;_0x38845c<_0x1a66a3-_0x170733;_0x38845c+=0x1){decremetOriginate(_0x40d33a);}}}function loggerGetContactDialer(_0x59c637,_0x24c170,_0x5d02bf){return function(_0xd6a303){checkContactLowerLimitOriginate(_0x24c170,_0x5d02bf,0x0);logger[_0x38e6('0x98')](_0x59c637,util[_0x38e6('0x99')](_0xd6a303,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x392fca){return function(_0x16c617){if(isNotNull(_0x16c617)&&isNotNull(_0x16c617[0x0])){if(_0x16c617[0x0]['contactsRescheduled']>0x0){_0x392fca[_0x38e6('0x3b')]=_0x38e6('0x9d');logger[_0x38e6('0x7c')](_0x38e6('0x9e')+_0x392fca[_0x38e6('0x3d')],_0x16c617[0x0][_0x38e6('0x9f')],_0x38e6('0xa0'));}else{_0x392fca[_0x38e6('0x3b')]=_0x38e6('0xa1');logger[_0x38e6('0x7c')](_0x38e6('0xa2')+_0x392fca[_0x38e6('0x3d')]);}}};}function notSendMessagesQueue(_0x4195dd){if(_0x4195dd['sendMessageOneNotActive']){freeVariablesPredictive(_0x4195dd);if(_0x4195dd[_0x38e6('0x70')]===0x0&&_0x4195dd[_0x38e6('0xa3')]===0x0&&_0x4195dd[_0x38e6('0x58')]===0x0&&(_0x4195dd['pTalking']||0x0)===0x0){_0x4195dd[_0x38e6('0xa4')]=![];_0x4195dd['available']=0x0;_0x4195dd['message']=_0x38e6('0x3f');loggerSyncQueueSummary[_0x38e6('0x98')]('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x4195dd[_0x38e6('0x3d')],_0x38e6('0xa5'));}else{_0x4195dd[_0x38e6('0x3b')]=_0x38e6('0xa6');loggerSyncQueueSummary[_0x38e6('0x98')](_0x38e6('0xa7'),_0x4195dd[_0x38e6('0x3d')],_0x38e6('0xa8'));}emitVoiceQueueSummary(_0x4195dd);}}function notSendMessagesCampaign(_0x547172){if(_0x547172[_0x38e6('0xa4')]){if(_0x547172[_0x38e6('0x70')]===0x0){_0x547172[_0x38e6('0xa4')]=![];_0x547172['message']='NOT_ACTIVE';loggerSyncQueueSummary[_0x38e6('0x98')](_0x38e6('0xa9'),_0x547172[_0x38e6('0x3d')],_0x38e6('0xa5'));}else{_0x547172[_0x38e6('0x3b')]=_0x38e6('0xa6');loggerSyncQueueSummary[_0x38e6('0x98')](_0x38e6('0xa9'),_0x547172[_0x38e6('0x3d')],_0x38e6('0xa8'));}emitCampaignSummary(_0x547172);}}function createObjHistory(_0x56efb5,_0x234bde,_0x3707f0,_0x43711c,_0x499480){_0x56efb5[_0x38e6('0x3b')]=_0x3707f0;var _0x11430f=new Action(_0x56efb5,_0x234bde);var _0x125b59=new History(_0x11430f);_0x125b59['state']=_0x43711c;_0x125b59[_0x38e6('0xaa')]=_0x499480;_0x125b59[_0x38e6('0xab')]=_0x11430f[_0x38e6('0xac')];return _0x125b59;}Dialer[_0x38e6('0x17')]['loopClearZombieChannels']=function(){var _0x343b85=this;setInterval(function(){_0x343b85[_0x38e6('0xad')](_0x343b85[_0x38e6('0x24')],'[uniqueid]');_0x343b85[_0x38e6('0xad')](_0x343b85['actions'],_0x38e6('0xae'));},0x32c8);};Dialer[_0x38e6('0x17')][_0x38e6('0xad')]=function(_0xbe5bb3,_0x20e00b){var _0x3c2c4b=this;for(var _0x1ef496 in _0xbe5bb3){if(typeof _0xbe5bb3[_0x1ef496]!==_0x38e6('0x9b')){this[_0x38e6('0x1b')]['enqueue'](function(){if(!_[_0x38e6('0xaf')](_0xbe5bb3[_0x1ef496])){return ami[_0x38e6('0xb0')]({'action':_0x38e6('0xb1'),'channel':_0xbe5bb3[_0x1ef496][_0x38e6('0xb2')]})['catch'](function(_0x550751){if(_0x550751[_0x38e6('0x3b')]==='No\x20such\x20channel'){setTimeout(function(){if(_0xbe5bb3[_0x1ef496]&&_0xbe5bb3[_0x1ef496][_0x38e6('0x55')]!=='ivr'){_0x3c2c4b[_0x38e6('0xb3')](_0x3c2c4b[_0x38e6('0x1c')][_0xbe5bb3[_0x1ef496][_0x38e6('0xb4')]]);logger[_0x38e6('0x98')](_0x38e6('0xb5'),_0x20e00b,_0x1ef496,_0xbe5bb3[_0x1ef496][_0x38e6('0xb4')]);delete _0xbe5bb3[_0x1ef496];}if(_0xbe5bb3[_0x1ef496]&&_0xbe5bb3[_0x1ef496][_0x38e6('0x55')]===_0x38e6('0x94')){_0x3c2c4b[_0x38e6('0xb3')](_0x3c2c4b[_0x38e6('0x1d')][_0xbe5bb3[_0x1ef496][_0x38e6('0xb4')]]);logger[_0x38e6('0x98')](_0x38e6('0xb6'),_0x20e00b,_0x1ef496,_0xbe5bb3[_0x1ef496]['queue']);delete _0xbe5bb3[_0x1ef496];}},0x2328);}});}});}}};Dialer[_0x38e6('0x17')]['countReScheduled']=function(_0x1981cf){return BPromise[_0x38e6('0xb7')]()['then'](cmHopper[_0x38e6('0xb8')](_0x1981cf))[_0x38e6('0xb9')](loggerCatch(_0x38e6('0xba')));};Dialer['prototype'][_0x38e6('0xbb')]=function(_0x447467){return BPromise[_0x38e6('0xb7')]()[_0x38e6('0xbc')](cmHopperBlack[_0x38e6('0xbb')](_0x447467))[_0x38e6('0xb9')](loggerCatch('[checkIsBlackList]\x20'));};Dialer['prototype']['checkIsBlackListIvr']=function(_0x40a47e){return BPromise[_0x38e6('0xb7')]()[_0x38e6('0xbc')](cmHopperBlack[_0x38e6('0xbd')](_0x40a47e))[_0x38e6('0xb9')](loggerCatch(_0x38e6('0xbe')));};Dialer['prototype'][_0x38e6('0xbf')]=function(_0x406a11){return BPromise[_0x38e6('0xb7')]()[_0x38e6('0xbc')](cmHopperHistory[_0x38e6('0xc0')](_0x406a11))['catch'](loggerCatch(_0x38e6('0xc1')));};Dialer[_0x38e6('0x17')][_0x38e6('0xc2')]=function(_0x2f886a){return BPromise[_0x38e6('0xb7')]()['then'](cmHopper['rescheduleContact'](_0x2f886a))[_0x38e6('0xb9')](loggerCatch('[rescheduleContact]\x20'));};Dialer[_0x38e6('0x17')]['unlockContact']=function(_0x487aaa,_0x596e28,_0x1bb7ad){return BPromise[_0x38e6('0xb7')]()[_0x38e6('0xbc')](cmHopper[_0x38e6('0xc3')](_0x487aaa,_0x596e28,_0x1bb7ad))[_0x38e6('0xb9')](loggerCatch(_0x38e6('0xc4')));};Dialer['prototype']['getContactDialer']=function(_0x17ca5f,_0x3f3d3b,_0x39b2e0,_0x53406b,_0x48bd58){return BPromise[_0x38e6('0xb7')]()[_0x38e6('0xbc')](cmHopper[_0x38e6('0xc5')](_0x17ca5f,_0x3f3d3b,_0x39b2e0,_0x53406b))[_0x38e6('0xb9')](function(_0x55281b){_0x48bd58[_0x38e6('0xc6')]-=_0x39b2e0;_0x48bd58[_0x38e6('0xc6')]=_0x48bd58['temp']>0x0?_0x48bd58['temp']:0x0;loggerCatch(_0x38e6('0xc7'))(_0x55281b);});};Dialer[_0x38e6('0x17')][_0x38e6('0xc8')]=function(_0x31ebeb,_0x585b78,_0x4239e0,_0x44b376){return BPromise['resolve']()['then'](cmHopper['getContactDialerIvr'](_0x31ebeb,_0x585b78,_0x4239e0))[_0x38e6('0xb9')](function(_0x143883){_0x44b376['temp']-=_0x585b78;_0x44b376['temp']=_0x44b376[_0x38e6('0xc6')]>0x0?_0x44b376['temp']:0x0;loggerCatch('[getContactDialerIvr]\x20')(_0x143883);});};Dialer[_0x38e6('0x17')][_0x38e6('0xc9')]=function(_0x568e3e){return BPromise[_0x38e6('0xb7')]()[_0x38e6('0xbc')](voiceQueueRt[_0x38e6('0xc9')](_0x568e3e))[_0x38e6('0xb9')](loggerCatch(_0x38e6('0xca')));};Dialer[_0x38e6('0x17')][_0x38e6('0xcb')]=function(_0x93aeeb){return BPromise['resolve']()['then'](cmHopper['moveContactManagedDialer'](_0x93aeeb))[_0x38e6('0xb9')](loggerCatch(_0x38e6('0xcc')));};Dialer[_0x38e6('0x17')][_0x38e6('0xcd')]=function(_0x2dc7fc){return BPromise['resolve']()[_0x38e6('0xbc')](cmHopperHistory['createHistory'](_0x2dc7fc))[_0x38e6('0xb9')](loggerCatch(_0x38e6('0xce')));};Dialer['prototype']['updateOriginated']=function(_0x2b5618){if(!_[_0x38e6('0x3a')](_0x2b5618)&&_0x2b5618!==null){if(typeof _0x2b5618[_0x38e6('0x70')]!==_0x38e6('0x9b')){if(_0x2b5618[_0x38e6('0x70')]>0x0){_0x2b5618['originated']-=0x1;}else{logger[_0x38e6('0x98')](_0x38e6('0xcf'));}}}else{logger[_0x38e6('0x98')](_0x38e6('0xd0'));}};Dialer[_0x38e6('0x17')][_0x38e6('0xd1')]=function(_0x4adae5,_0x5d39d3){var _0x49975a=this;return function(_0x1b2db3){_0x49975a[_0x38e6('0xb3')](_0x5d39d3);logger['error'](_0x4adae5,util[_0x38e6('0x99')](_0x1b2db3,{'showHidden':![],'depth':null}));};};Dialer[_0x38e6('0x17')][_0x38e6('0xd2')]=function(_0x3fdb09,_0x5f011d,_0x2b1be7){var _0x31d884={'state':0x19,'statedesc':_0x38e6('0xd3')};this['updateOriginated'](_0x5f011d);this['saveInDb'](_['merge'](_0x31d884,_[_0x38e6('0xd4')](_0x2b1be7,[_0x38e6('0xd5'),_0x38e6('0xd6'),'UserId',_0x38e6('0xd7'),_0x38e6('0xd8')])),'[emptyContact][createHistory]','[emptyContact]');logger['error'](_0x3fdb09);};Dialer['prototype']['isSuccess']=function(_0xcfd635){return _0xcfd635===_0x38e6('0xd9');};Dialer['prototype'][_0x38e6('0xda')]=function(_0x2111c7){return!_['isUndefined'](_0x2111c7)&&_0x2111c7&&!_['isUndefined'](_0x2111c7['name'])&&!_[_0x38e6('0x3a')](_0x2111c7[_0x38e6('0x76')])&&_0x2111c7['active']&&(this['trunks'][util['format'](_0x38e6('0xdb'),_0x2111c7['name'])][_0x38e6('0xb1')]==='reachable'||this[_0x38e6('0x1f')][util[_0x38e6('0x79')](_0x38e6('0xdb'),_0x2111c7[_0x38e6('0x3d')])][_0x38e6('0xb1')]===_0x38e6('0xdc'));};Dialer[_0x38e6('0x17')]['saveInDb']=function(_0x161af5,_0x3c9faa,_0x24f478){this['createHistory'](_0x161af5)['catch'](loggerCatch(_0x3c9faa));this[_0x38e6('0xcb')](_0x161af5)['catch'](loggerCatch(_0x24f478));};Dialer[_0x38e6('0x17')]['syncVarSet']=function(_0x598d5a){var _0x2c637f=this[_0x38e6('0x24')][_0x598d5a['uniqueid']];var _0xae66f4;if(!_[_0x38e6('0xaf')](_0x598d5a)&&!_['isNil'](_0x598d5a['variable'])&&!_[_0x38e6('0xaf')](_0x598d5a[_0x38e6('0xdd')][_0x38e6('0xde')])&&_0x598d5a[_0x38e6('0xdf')]===_0x38e6('0xe0')&&_0x2c637f){if(_0x2c637f[_0x38e6('0x55')]!==_0x38e6('0x94')&&this['voiceQueues'][_0x2c637f[_0x38e6('0xb4')]]['dialAMDActive']&&_0x598d5a[_0x38e6('0xe1')]==='HANGUP'){delete this[_0x38e6('0x24')][_0x598d5a[_0x38e6('0xe2')]];this[_0x38e6('0xb3')](this[_0x38e6('0x1c')][_0x2c637f['queue']]);this[_0x38e6('0x1c')][_0x2c637f[_0x38e6('0xb4')]][_0x38e6('0xe3')]+=0x1;this[_0x38e6('0x1c')][_0x2c637f[_0x38e6('0xb4')]][_0x38e6('0x5e')]+=0x1;_0xae66f4=new Hangup(_0x2c637f,_0x598d5a);_0xae66f4['state']=0x12;_0xae66f4[_0x38e6('0xaa')]=_0x38e6('0xe4');_0xae66f4[_0x38e6('0xe5')]=_0x38e6('0xe6');ami[_0x38e6('0x4b')](_0x38e6('0xe7'),ut[_0x38e6('0xe8')](_0xae66f4,_0x38e6('0xe9')));this[_0x38e6('0xea')](_0xae66f4,_0x38e6('0xeb'),_0x38e6('0xec'));}if(_0x2c637f[_0x38e6('0x55')]!=='ivr'&&this[_0x38e6('0x1c')][_0x2c637f['queue']][_0x38e6('0xed')]&&_0x598d5a['value']===_0x38e6('0xee')){var _0x2238a8=this;return new BPromise(function(_0x449371,_0x427236){delete _0x2238a8['uniqueId'][_0x598d5a[_0x38e6('0xe2')]];_0x2238a8[_0x38e6('0xb3')](_0x2238a8[_0x38e6('0x1c')][_0x2c637f[_0x38e6('0xb4')]]);_0x2238a8[_0x38e6('0x1c')][_0x2c637f['queue']][_0x38e6('0xe3')]+=0x1;_0x2238a8['voiceQueues'][_0x2c637f[_0x38e6('0xb4')]]['outboundAnswerAgiCallsDay']+=0x1;var _0x120c43=_0x2238a8[_0x38e6('0x1c')][_0x2c637f[_0x38e6('0xb4')]];var _0x34182b=new Hangup(_0x2c637f,_0x598d5a);_0x34182b[_0x38e6('0xef')]=0x13;_0x34182b[_0x38e6('0xaa')]=_0x38e6('0xf0');_0x34182b[_0x38e6('0xe5')]=_0x38e6('0xe6');_0x34182b['countmachineretry']+=0x1;_0x34182b[_0x38e6('0xf1')]+=0x1;_0x34182b[_0x38e6('0xe9')]=!![];ami[_0x38e6('0x4b')](_0x38e6('0xe7'),ut[_0x38e6('0xe8')](_0x34182b,_0x38e6('0xe9')));_0x2238a8[_0x38e6('0xcd')](_0x34182b)[_0x38e6('0xb9')](loggerCatch(_0x38e6('0xf2')));if(_0x34182b[_0x38e6('0xf3')]+_0x34182b[_0x38e6('0xf4')]+_0x34182b[_0x38e6('0xf5')]+_0x34182b[_0x38e6('0xf6')]+_0x34182b[_0x38e6('0xf7')]+_0x34182b[_0x38e6('0xf8')]+_0x34182b[_0x38e6('0xf9')]+_0x34182b[_0x38e6('0xfa')]>=_0x120c43[_0x38e6('0xfb')]){_0x2238a8[_0x38e6('0xfc')](_0x34182b,_0x449371,_0x427236,'reason19\x20machine....');}else{if(_0x34182b[_0x38e6('0xf9')]>=_0x120c43[_0x38e6('0xfd')]){_0x2238a8[_0x38e6('0xfe')](_0x34182b,_0x449371,_0x427236,_0x38e6('0xff'));}else{_0x2238a8['rescheduleContact']({'active':![],'countmachineretry':_0x34182b['countmachineretry'],'scheduledat':moment()[_0x38e6('0x100')](_0x120c43[_0x38e6('0x101')],_0x38e6('0x102'))[_0x38e6('0x79')](_0x38e6('0x103')),'ContactId':_0x34182b['ContactId'],'ListId':_0x34182b[_0x38e6('0xd6')],'VoiceQueueId':_0x34182b['VoiceQueueId']||undefined,'CampaignId':_0x34182b[_0x38e6('0xd8')]||undefined})[_0x38e6('0xb9')](loggerCatch('[rescheduleContact][Machine]'));_0x449371({'reschedule':0x1});}}});}if(_0x2c637f[_0x38e6('0x55')]===_0x38e6('0x94')&&this[_0x38e6('0x1d')][_0x2c637f[_0x38e6('0xb4')]][_0x38e6('0xed')]&&_0x598d5a[_0x38e6('0xe1')]===_0x38e6('0x104')){delete this[_0x38e6('0x24')][_0x598d5a[_0x38e6('0xe2')]];this[_0x38e6('0xb3')](this[_0x38e6('0x1d')][_0x2c637f[_0x38e6('0xb4')]]);_0xae66f4=new Hangup(_0x2c637f,_0x598d5a);_0xae66f4[_0x38e6('0xef')]=0x12;_0xae66f4[_0x38e6('0xaa')]=_0x38e6('0xe4');_0xae66f4[_0x38e6('0xe5')]='AMD';ami[_0x38e6('0x4b')]('custom:amd',ut['buildObj'](_0xae66f4,'amd'));this[_0x38e6('0xea')](_0xae66f4,'[syncHangupInAMDIvr][createHistory]',_0x38e6('0x105'));}if(_0x2c637f[_0x38e6('0x55')]===_0x38e6('0x94')&&this[_0x38e6('0x1d')][_0x2c637f[_0x38e6('0xb4')]][_0x38e6('0xed')]&&_0x598d5a[_0x38e6('0xe1')]===_0x38e6('0xee')){var _0x2238a8=this;return new BPromise(function(_0x51a888,_0x46ce00){delete _0x2238a8['uniqueId'][_0x598d5a[_0x38e6('0xe2')]];_0x2238a8[_0x38e6('0xb3')](_0x2238a8[_0x38e6('0x1d')][_0x2c637f[_0x38e6('0xb4')]]);_0x2238a8[_0x38e6('0x1d')][_0x2c637f['queue']]['outboundAnswerCallsDay']+=0x1;_0x2238a8[_0x38e6('0x1d')][_0x2c637f['queue']]['outboundAnswerAgiCallsDay']+=0x1;var _0x160438=_0x2238a8['campaigns'][_0x2c637f['queue']];var _0x1bf90d=new Hangup(_0x2c637f,_0x598d5a);_0x1bf90d[_0x38e6('0xef')]=0x13;_0x1bf90d[_0x38e6('0xaa')]='Machine';_0x1bf90d[_0x38e6('0xe5')]='AMD';_0x1bf90d['countmachineretry']+=0x1;_0x1bf90d[_0x38e6('0xf1')]+=0x1;_0x1bf90d['amd']=!![];ami[_0x38e6('0x4b')](_0x38e6('0xe7'),ut['buildObj'](_0x1bf90d,_0x38e6('0xe9')));_0x2238a8[_0x38e6('0xcd')](_0x1bf90d)[_0x38e6('0xb9')](loggerCatch(_0x38e6('0xf2')));if(_0x1bf90d['countbusyretry']+_0x1bf90d[_0x38e6('0xf4')]+_0x1bf90d[_0x38e6('0xf5')]+_0x1bf90d[_0x38e6('0xf6')]+_0x1bf90d[_0x38e6('0xf7')]+_0x1bf90d[_0x38e6('0xf8')]+_0x1bf90d[_0x38e6('0xf9')]+_0x1bf90d[_0x38e6('0xfa')]>=_0x160438[_0x38e6('0xfb')]){_0x2238a8[_0x38e6('0xfc')](_0x1bf90d,_0x51a888,_0x46ce00,_0x38e6('0x106'));}else{if(_0x1bf90d[_0x38e6('0xf9')]>=_0x160438['dialMachineMaxRetry']){_0x2238a8[_0x38e6('0xfe')](_0x1bf90d,_0x51a888,_0x46ce00,_0x38e6('0xff'));}else{_0x2238a8[_0x38e6('0xc2')]({'active':![],'countmachineretry':_0x1bf90d['countmachineretry'],'scheduledat':moment()[_0x38e6('0x100')](_0x160438[_0x38e6('0x101')],_0x38e6('0x102'))['format']('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x1bf90d[_0x38e6('0xd5')],'ListId':_0x1bf90d[_0x38e6('0xd6')],'VoiceQueueId':_0x1bf90d[_0x38e6('0xd7')]||undefined,'CampaignId':_0x1bf90d[_0x38e6('0xd8')]||undefined})[_0x38e6('0xb9')](loggerCatch('[rescheduleContact][Machine]'));_0x51a888({'reschedule':0x1});}}});}}};Dialer[_0x38e6('0x17')][_0x38e6('0x31')]=function(_0x4622d8){var _0x3e57c8=this['uniqueId'][_0x4622d8[_0x38e6('0xe2')]];var _0x562e5f=this;var _0x3424a6;if(_0x3e57c8&&_0x3e57c8[_0x38e6('0x55')]===_0x38e6('0x94')){delete this[_0x38e6('0x24')][_0x4622d8[_0x38e6('0xe2')]];this[_0x38e6('0xb3')](this[_0x38e6('0x1d')][_0x3e57c8[_0x38e6('0xb4')]]);this[_0x38e6('0x1d')][_0x3e57c8[_0x38e6('0xb4')]][_0x38e6('0x107')]+=0x1;_0x3424a6=new Hangup(_0x3e57c8,_0x4622d8);this[_0x38e6('0xcd')](_0x3424a6)[_0x38e6('0xb9')](loggerCatch('[syncHangupIvr][createHistory]'));this[_0x38e6('0xcb')](_0x3424a6)['catch'](loggerCatch(_0x38e6('0x108')));}if(_0x3e57c8&&_0x3e57c8[_0x38e6('0x55')]!=='ivr'&&isNotNull(this[_0x38e6('0x1c')][_0x3e57c8['queue']][_0x38e6('0x109')])){delete this[_0x38e6('0x24')][_0x4622d8[_0x38e6('0xe2')]];this[_0x38e6('0xb3')](this[_0x38e6('0x1c')][_0x3e57c8[_0x38e6('0xb4')]]);this[_0x38e6('0x1c')][_0x3e57c8[_0x38e6('0xb4')]]['outboundAnswerCallsDay']+=0x1;this[_0x38e6('0x1c')][_0x3e57c8[_0x38e6('0xb4')]][_0x38e6('0x5e')]+=0x1;_0x3424a6=new Hangup(_0x3e57c8,_0x4622d8);_0x3424a6[_0x38e6('0xef')]=0x10;_0x3424a6[_0x38e6('0xaa')]=_0x38e6('0x10a');_0x3424a6[_0x38e6('0xe5')]=_0x38e6('0x10b');this['createHistory'](_0x3424a6)['catch'](loggerCatch(_0x38e6('0x10c')));this[_0x38e6('0xcb')](_0x3424a6)[_0x38e6('0xb9')](loggerCatch('[syncHangupIvr]'));}if(_0x3e57c8&&_0x3e57c8[_0x38e6('0x55')]!=='ivr'&&!isNotNull(this[_0x38e6('0x1c')][_0x3e57c8[_0x38e6('0xb4')]][_0x38e6('0x109')])){delete this['uniqueId'][_0x4622d8[_0x38e6('0xe2')]];this['updateOriginated'](this[_0x38e6('0x1c')][_0x3e57c8[_0x38e6('0xb4')]]);this['voiceQueues'][_0x3e57c8[_0x38e6('0xb4')]][_0x38e6('0x67')]+=0x1;_0x3424a6=new Hangup(_0x3e57c8,_0x4622d8);_0x3424a6['state']=0xc;_0x3424a6[_0x38e6('0xaa')]=_0x4622d8[_0x38e6('0x10d')];_0x3424a6[_0x38e6('0xe5')]=_0x38e6('0x10e');this[_0x38e6('0xcd')](_0x3424a6)['catch'](loggerCatch(_0x38e6('0x10c')));this[_0x38e6('0xcb')](_0x3424a6)[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x108')));}};Dialer[_0x38e6('0x17')][_0x38e6('0x2d')]=function(_0xd168a){var _0x4ae598=this[_0x38e6('0x24')][_0xd168a[_0x38e6('0xe2')]];var _0x398804=this;if(this[_0x38e6('0x1c')][_0xd168a[_0x38e6('0xb4')]]){if(_0x4ae598&&_0x4ae598[_0x38e6('0x55')]!=='ivr'){delete this['uniqueId'][_0xd168a[_0x38e6('0xe2')]];this[_0x38e6('0x1c')][_0xd168a[_0x38e6('0xb4')]][_0x38e6('0xe3')]+=0x1;var _0x1d1803=new AgentComplete(_0x4ae598,_0xd168a);if(_0xd168a[_0x38e6('0x10f')]===_0x38e6('0x110')){_0x1d1803[_0x38e6('0x111')]=this[_0x38e6('0x1c')][_0xd168a[_0x38e6('0xb4')]]['dialQueueProject2']&&this[_0x38e6('0x1c')][_0xd168a['queue']][_0x38e6('0x112')]?moment()['format'](_0x38e6('0x103')):undefined;}this[_0x38e6('0xcd')](_0x1d1803)['catch'](loggerCatch(_0x38e6('0x113')));this[_0x38e6('0xcb')](_0x1d1803)['catch'](loggerCatch('[syncAgentComplete]'));}}};Dialer[_0x38e6('0x17')][_0x38e6('0x27')]=function(_0x35db93){if(this['voiceQueues'][_0x35db93['queue']]){if(this['uniqueId'][_0x35db93[_0x38e6('0xe2')]]&&this[_0x38e6('0x24')][_0x35db93[_0x38e6('0xe2')]][_0x38e6('0x55')]!==_0x38e6('0x94')){this[_0x38e6('0xb3')](this[_0x38e6('0x1c')][_0x35db93[_0x38e6('0xb4')]]);this[_0x38e6('0x24')][_0x35db93['uniqueid']][_0x38e6('0x114')]=moment()[_0x38e6('0x79')](_0x38e6('0x103'));}}};Dialer['prototype'][_0x38e6('0x115')]=function(_0x3bff07){this[_0x38e6('0xcd')](_0x3bff07)[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x113')));this[_0x38e6('0xcb')](_0x3bff07)[_0x38e6('0xb9')](loggerCatch('[syncQueueCallerAbandon]\x20[Drop]'));};Dialer[_0x38e6('0x17')][_0x38e6('0x2a')]=function(_0xfc2a0a){var _0x51017b=this['uniqueId'][_0xfc2a0a[_0x38e6('0xe2')]];var _0x46b04d=this;if(this[_0x38e6('0x1c')][_0xfc2a0a[_0x38e6('0xb4')]]){if(_0x51017b&&_0x51017b[_0x38e6('0x55')]!==_0x38e6('0x94')){delete this[_0x38e6('0x24')][_0xfc2a0a['uniqueid']];this['updateOriginated'](this[_0x38e6('0x1c')][_0xfc2a0a[_0x38e6('0xb4')]]);_0x51017b['droptime']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');var _0x1a8d24=new QueueCallerAbandon(_0x51017b,_0xfc2a0a);if(getSeconds(_0x51017b[_0x38e6('0x116')],_0x51017b[_0x38e6('0x117')])>=_0x51017b['dialQueueTimeout']){this['voiceQueues'][_0xfc2a0a[_0x38e6('0xb4')]]['predictiveIntervalDroppedCallsTimeout']+=0x1;this[_0x38e6('0x1c')][_0xfc2a0a[_0x38e6('0xb4')]][_0x38e6('0x63')]+=0x1;this[_0x38e6('0x1c')][_0xfc2a0a[_0x38e6('0xb4')]][_0x38e6('0x6c')]+=0x1;_0x1a8d24['state']=0xa;_0x1a8d24[_0x38e6('0xaa')]='Drop';_0x1a8d24[_0x38e6('0x118')]=_0x38e6('0x119');_0x1a8d24['agiafterat']=this[_0x38e6('0x1c')][_0xfc2a0a[_0x38e6('0xb4')]][_0x38e6('0x11a')]?moment()['format'](_0x38e6('0x103')):undefined;_0x1a8d24['countdropretry']+=0x1;_0x1a8d24[_0x38e6('0xf1')]+=0x1;if(_0x1a8d24[_0x38e6('0xf7')]>=this['voiceQueues'][_0xfc2a0a[_0x38e6('0xb4')]][_0x38e6('0x11b')]){this[_0x38e6('0x115')](_0x1a8d24);}else{this[_0x38e6('0xc2')]({'active':![],'countdropretry':_0x1a8d24['countdropretry'],'scheduledat':moment()[_0x38e6('0x100')](this[_0x38e6('0x1c')][_0xfc2a0a['queue']][_0x38e6('0x11c')],'minutes')['format']('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x51017b[_0x38e6('0xd5')],'ListId':_0x51017b[_0x38e6('0xd6')],'VoiceQueueId':_0x51017b[_0x38e6('0xd7')]||undefined,'CampaignId':_0x51017b['CampaignId']||undefined})[_0x38e6('0xb9')](loggerCatch('[rescheduleContact][Drop]'));var _0xf07124=new History(_0x1a8d24);_0xf07124[_0x38e6('0xef')]=0xa;_0xf07124[_0x38e6('0xaa')]='Drop';_0xf07124[_0x38e6('0xac')]=moment()[_0x38e6('0x79')](_0x38e6('0x103'));_0xf07124[_0x38e6('0xab')]=_0xf07124[_0x38e6('0xac')];_0xf07124['calleridname']=_0x1a8d24[_0x38e6('0x11d')];_0xf07124[_0x38e6('0x11e')]=_0x1a8d24['calleridnum'];this[_0x38e6('0xcd')](_0xf07124)[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x11f')));}}else{this[_0x38e6('0x1c')][_0xfc2a0a['queue']]['predictiveIntervalDroppedCallsCallersExit']+=0x1;this[_0x38e6('0x1c')][_0xfc2a0a[_0x38e6('0xb4')]][_0x38e6('0x62')]+=0x1;_0x1a8d24[_0x38e6('0xef')]=0xb;_0x1a8d24[_0x38e6('0xaa')]=_0x38e6('0x120');_0x1a8d24['dropreason']=_0x38e6('0x121');_0x1a8d24[_0x38e6('0xf8')]+=0x1;_0x1a8d24[_0x38e6('0xf1')]+=0x1;if(_0x1a8d24[_0x38e6('0xf8')]>=this[_0x38e6('0x1c')][_0xfc2a0a[_0x38e6('0xb4')]][_0x38e6('0x122')]){this[_0x38e6('0x115')](_0x1a8d24);}else{this[_0x38e6('0xc2')]({'active':![],'countabandonedretry':_0x1a8d24[_0x38e6('0xf8')],'scheduledat':moment()[_0x38e6('0x100')](this[_0x38e6('0x1c')][_0xfc2a0a['queue']][_0x38e6('0x123')],'minutes')['format'](_0x38e6('0x103')),'ContactId':_0x51017b[_0x38e6('0xd5')],'ListId':_0x51017b['ListId'],'VoiceQueueId':_0x51017b[_0x38e6('0xd7')]||undefined,'CampaignId':_0x51017b[_0x38e6('0xd8')]||undefined})[_0x38e6('0xb9')](loggerCatch('[rescheduleContact][Abandoned]'));var _0xf07124=new History(_0x1a8d24);_0xf07124[_0x38e6('0xef')]=0xb;_0xf07124[_0x38e6('0xaa')]=_0x38e6('0x120');_0xf07124[_0x38e6('0xac')]=moment()[_0x38e6('0x79')](_0x38e6('0x103'));_0xf07124[_0x38e6('0xab')]=_0xf07124[_0x38e6('0xac')];_0xf07124[_0x38e6('0x11d')]=_0x1a8d24[_0x38e6('0x11d')];_0xf07124['calleridnum']=_0x1a8d24[_0x38e6('0x11e')];this[_0x38e6('0xcd')](_0xf07124)[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x124')));}}}}};Dialer[_0x38e6('0x17')][_0x38e6('0x32')]=function(_0x369e57){if(this[_0x38e6('0x22')][_0x369e57['uniqueid']]){this[_0x38e6('0x22')][_0x369e57[_0x38e6('0xe2')]][_0x38e6('0xb2')]=_0x369e57[_0x38e6('0xb2')];}if(this[_0x38e6('0x24')][_0x369e57[_0x38e6('0xe2')]]){this[_0x38e6('0x24')][_0x369e57[_0x38e6('0xe2')]]['channel']=_0x369e57[_0x38e6('0xb2')];}};Dialer[_0x38e6('0x17')][_0x38e6('0x36')]=function(_0x117428){if(strategy[this[_0x38e6('0x1c')][this['actions'][_0x117428[_0x38e6('0x125')]][_0x38e6('0xb4')]][_0x38e6('0x4c')]]===_0x38e6('0x16')){if(this['actions'][_0x117428[_0x38e6('0x125')]]&&_[_0x38e6('0xaf')](this[_0x38e6('0x22')][_0x117428['actionid']]['locked'])&&_0x117428[_0x38e6('0xb1')]==='1'&&_0x117428['paused']==='0'){if(this[_0x38e6('0x1e')][_0x117428['stateinterface']]){if(!this[_0x38e6('0x1e')][_0x117428[_0x38e6('0x126')]][_0x38e6('0x127')]){this[_0x38e6('0x1e')][_0x117428[_0x38e6('0x126')]][_0x38e6('0x127')]=!![];this[_0x38e6('0x22')][_0x117428['actionid']][_0x38e6('0x127')]=!![];this[_0x38e6('0x22')][_0x117428[_0x38e6('0x125')]]['stateinterface']=_0x117428['stateinterface'];}}}}else if((strategy[this[_0x38e6('0x1c')][this['actions'][_0x117428['actionid']][_0x38e6('0xb4')]][_0x38e6('0x4c')]]||_0x38e6('0x15'))===_0x38e6('0x15')){if(this[_0x38e6('0x22')][_0x117428[_0x38e6('0x125')]]){if(this[_0x38e6('0x1e')][_0x117428[_0x38e6('0x126')]]){this[_0x38e6('0x22')][_0x117428[_0x38e6('0x125')]][_0x38e6('0x126')]=_0x117428[_0x38e6('0x126')];if(_['isNil'](this[_0x38e6('0x26')][this['actions'][_0x117428['actionid']][_0x38e6('0xb4')]])){this[_0x38e6('0x26')][this['actions'][_0x117428['actionid']][_0x38e6('0xb4')]]=[];}this['queueBooked'][this[_0x38e6('0x22')][_0x117428[_0x38e6('0x125')]][_0x38e6('0xb4')]][_0x38e6('0x128')](_[_0x38e6('0x8c')](_[_0x38e6('0xd4')](this[_0x38e6('0x22')][_0x117428[_0x38e6('0x125')]],['idHopper',_0x38e6('0x126')]),{'status':_0x117428[_0x38e6('0xb1')],'paused':_0x117428[_0x38e6('0x129')]}));}}}};function unlockQueueStatus(_0x4fe855,_0x163301){setTimeout(function(){if(_[_0x38e6('0x3a')](_0x4fe855[_0x38e6('0x12a')])){loggerBooked['error'](_0x38e6('0x12b'),_0x163301);}_0x4fe855[_0x38e6('0x12a')]=!![];loggerBooked['info'](_0x38e6('0x12c'),_0x163301,JSON[_0x38e6('0x47')](_[_0x38e6('0xd4')](_0x4fe855,[_0x38e6('0x3d'),_0x38e6('0x12a')])));},0x1f3);}Dialer[_0x38e6('0x17')][_0x38e6('0x12d')]=function(_0x44668d){var _0x3a16d0=this;var _0x50613d=_0x3a16d0[_0x38e6('0x1c')][_0x3a16d0[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]];if(strategy[this[_0x38e6('0x1c')][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]][_0x38e6('0x4c')]]==='roundrobin'){if(this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]]&&this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0x126')]){this[_0x38e6('0x93')][_0x38e6('0x12e')](this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0x12f')],this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0x126')])['catch'](function(_0x19d888){logger[_0x38e6('0x98')]('[Catch][Preview][syncQueueStatusComplete]',util[_0x38e6('0x99')](_0x19d888,{'showHidden':![],'depth':null}));})[_0x38e6('0x1a')](function(){_0x3a16d0[_0x38e6('0xb3')](_0x3a16d0[_0x38e6('0x1c')][_0x3a16d0[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]]['queue']]);_0x3a16d0[_0x38e6('0x1e')][_0x3a16d0['actions'][_0x44668d[_0x38e6('0x125')]][_0x38e6('0x126')]][_0x38e6('0x127')]=![];delete _0x3a16d0[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]];unlockQueueStatus(_0x50613d);});}else{this[_0x38e6('0xb3')](this[_0x38e6('0x1c')][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]]['queue']]);this[_0x38e6('0xc2')]({'active':![],'ContactId':this['actions'][_0x44668d[_0x38e6('0x125')]]['ContactId'],'ListId':this[_0x38e6('0x22')][_0x44668d['actionid']][_0x38e6('0xd6')],'VoiceQueueId':this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xd7')]||undefined,'CampaignId':this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]]['CampaignId']||undefined})['catch'](loggerCatch('[unlock][syncQueueStatusComplete]'));delete this['actions'][_0x44668d[_0x38e6('0x125')]];unlockQueueStatus(_0x50613d);}}else if((strategy[this[_0x38e6('0x1c')][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]]['queue']][_0x38e6('0x4c')]]||_0x38e6('0x15'))===_0x38e6('0x15')){var _0x56c3ae;if(this[_0x38e6('0x22')][_0x44668d['actionid']]&&!_[_0x38e6('0x45')](this[_0x38e6('0x26')][this['actions'][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]])){if(this['queueBookedRR'][_0x3a16d0[_0x38e6('0x22')][_0x44668d['actionid']][_0x38e6('0xb4')]]){this[_0x38e6('0x130')][_0x3a16d0[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]]=this[_0x38e6('0x130')][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]]['queue']]?this[_0x38e6('0x130')][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]]:this['queueBooked'][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]]?this[_0x38e6('0x26')][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]][_0x38e6('0x131')]||0x0:0x0;}this['queueBooked'][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]]['queue']][_0x38e6('0x131')]=this[_0x38e6('0x130')][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]];for(var _0x5d8001=0x0;_0x5d8001<this[_0x38e6('0x26')][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]][_0x38e6('0x132')];_0x5d8001+=0x1){_0x56c3ae=rr(this[_0x38e6('0x26')][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]]);this[_0x38e6('0x130')][_0x3a16d0['actions'][_0x44668d['actionid']][_0x38e6('0xb4')]]=this[_0x38e6('0x26')][this[_0x38e6('0x22')][_0x44668d['actionid']][_0x38e6('0xb4')]][_0x38e6('0x131')];if(_0x56c3ae[_0x38e6('0xb1')]==='1'&&_0x56c3ae[_0x38e6('0x129')]==='0'){break;}}if(!_[_0x38e6('0xaf')](_0x56c3ae)){this[_0x38e6('0x1e')][_0x56c3ae['stateinterface']][_0x38e6('0x133')]=_['isUndefined'](this[_0x38e6('0x1e')][_0x56c3ae[_0x38e6('0x126')]]['unlockRR'])?!![]:this['agents'][_0x56c3ae[_0x38e6('0x126')]]['unlockRR'];}loggerBooked['info'](_0x38e6('0x134'),_0x44668d[_0x38e6('0x125')],_0x38e6('0x135'),JSON[_0x38e6('0x47')](_[_0x38e6('0xd4')](this['agents'][_0x56c3ae[_0x38e6('0x126')]],[_0x38e6('0x3d'),_0x38e6('0x133')])),_0x38e6('0x136'),JSON[_0x38e6('0x47')](_0x56c3ae[_0x38e6('0x12f')]));if(!_[_0x38e6('0xaf')](_0x56c3ae)&&_0x56c3ae[_0x38e6('0xb1')]==='1'&&_0x56c3ae[_0x38e6('0x129')]==='0'&&this[_0x38e6('0x1e')][_0x56c3ae[_0x38e6('0x126')]]['unlockRR']){this[_0x38e6('0x1e')][_0x56c3ae[_0x38e6('0x126')]][_0x38e6('0x133')]=![];this[_0x38e6('0x26')][_0x3a16d0[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]]=[];this[_0x38e6('0x93')]['run'](_0x56c3ae[_0x38e6('0x12f')],_0x56c3ae[_0x38e6('0x126')])['catch'](function(_0x3122e8){logger[_0x38e6('0x98')](_0x38e6('0x137'),util[_0x38e6('0x99')](_0x3122e8,{'showHidden':![],'depth':null}));})['finally'](function(){_0x3a16d0['updateOriginated'](_0x3a16d0[_0x38e6('0x1c')][_0x3a16d0['actions'][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]]);setTimeout(function(){_0x3a16d0[_0x38e6('0x1e')][_0x56c3ae[_0x38e6('0x126')]][_0x38e6('0x133')]=!![];loggerBooked[_0x38e6('0x7c')]('[booked][RR][finaly]',_0x44668d['actionid'],_0x38e6('0x135'),JSON[_0x38e6('0x47')](_[_0x38e6('0xd4')](_0x3a16d0[_0x38e6('0x1e')][_0x56c3ae['stateinterface']],['name',_0x38e6('0x133')])),_0x38e6('0x136'),JSON[_0x38e6('0x47')](_0x56c3ae[_0x38e6('0x12f')]));},0xc7);delete _0x3a16d0[_0x38e6('0x22')][_0x44668d['actionid']];unlockQueueStatus(_0x50613d,_0x44668d[_0x38e6('0x125')]);});}else{loggerBooked[_0x38e6('0x7c')](_0x38e6('0x138'));this[_0x38e6('0xb3')](this['voiceQueues'][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]]);this[_0x38e6('0xc2')]({'active':![],'ContactId':this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]]['ContactId'],'ListId':this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xd6')],'VoiceQueueId':this[_0x38e6('0x22')][_0x44668d['actionid']][_0x38e6('0xd7')]||undefined,'CampaignId':this[_0x38e6('0x22')][_0x44668d['actionid']][_0x38e6('0xd8')]||undefined})[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x139')));delete this[_0x38e6('0x22')][_0x44668d['actionid']];unlockQueueStatus(_0x50613d);}}else{loggerBooked['info'](_0x38e6('0x13a'));this[_0x38e6('0xb3')](this[_0x38e6('0x1c')][this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xb4')]]);this['rescheduleContact']({'active':![],'ContactId':this['actions'][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xd5')],'ListId':this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xd6')],'VoiceQueueId':this['actions'][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xd7')]||undefined,'CampaignId':this[_0x38e6('0x22')][_0x44668d['actionid']][_0x38e6('0xd8')]||undefined})['catch'](loggerCatch('[unlock2][syncQueueStatusComplete]'));delete this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]];unlockQueueStatus(_0x50613d);}}else{loggerBooked[_0x38e6('0x7c')](_0x38e6('0x13b'));this['updateOriginated'](this[_0x38e6('0x1c')][this[_0x38e6('0x22')][_0x44668d['actionid']][_0x38e6('0xb4')]]);this[_0x38e6('0xc2')]({'active':![],'ContactId':this[_0x38e6('0x22')][_0x44668d['actionid']][_0x38e6('0xd5')],'ListId':this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xd6')],'VoiceQueueId':this[_0x38e6('0x22')][_0x44668d['actionid']][_0x38e6('0xd7')]||undefined,'CampaignId':this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]][_0x38e6('0xd8')]||undefined})[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x13c')));delete this[_0x38e6('0x22')][_0x44668d[_0x38e6('0x125')]];unlockQueueStatus(_0x50613d);}};Dialer[_0x38e6('0x17')][_0x38e6('0x38')]=function(){var _0x9dc608=this;setInterval(function(){_0x9dc608['syncCampaigns']();},0x3e8);};Dialer[_0x38e6('0x17')]['checkIsTrunkReachable']=function(_0x384c9b){var _0x59405e=this;return function(){if(!_0x59405e[_0x38e6('0xda')](_0x384c9b['Trunk'])){if(!_0x59405e[_0x38e6('0xda')](_0x384c9b['TrunkBackup'])){_0x384c9b[_0x38e6('0x3b')]=_0x38e6('0x13d');throw _0x384c9b[_0x38e6('0x3d')]+'\x20trunk\x20is\x20not\x20reachable';}}};};Dialer[_0x38e6('0x17')]['checkIfTime']=function(_0x53af0c,_0x3035bc,_0x54b45e,_0xf421ce){var _0x51364c=this;return function(){var _0x1eb301=!![];return _0x51364c[_0x38e6('0x13e')](_0x53af0c,_0x3035bc,_0x54b45e,_0xf421ce,_0x1eb301);};};Dialer[_0x38e6('0x17')]['checkIfTimeIntervals']=function(_0x354cd0,_0x3563f0,_0xe42a95,_0x3110d4){var _0x592671=this;return function(){var _0x33b40c=![];return _0x592671[_0x38e6('0x13e')](_0x354cd0[_0x38e6('0x43')],_0x3563f0,_0xe42a95,_0x3110d4,_0x33b40c);};};Dialer['prototype']['ifTime']=function(_0x1e670b,_0x3fb2a2,_0x3e755b,_0x570a52,_0x50c84e){var _0x4e3d00=[];return new BPromise(function(_0x5cfe1,_0x4fb5ea){if(!isNotNull(_0x1e670b)){_0x570a52[_0x38e6('0x3b')]=_0x38e6('0x44');return _0x4fb5ea(msgResponse(_0x38e6('0x13e'),_0x38e6('0x13f'),_0x3e755b+_0x38e6('0x140')));}if(_['isEmpty'](_0x1e670b)){_0x570a52[_0x38e6('0x3b')]=_0x38e6('0x141');return _0x4fb5ea(msgResponse(_0x38e6('0x13e'),_0x38e6('0x13f'),_0x3e755b+_0x38e6('0x142')));}if(_0x3fb2a2&&_['isUndefined'](config[_0x38e6('0x143')][_0x3fb2a2])){_0x570a52[_0x38e6('0x3b')]=_0x38e6('0x144');return _0x4fb5ea(msgResponse(_0x38e6('0x13e'),_0x38e6('0x13f'),_0x3e755b+_0x38e6('0x145')+_0x3fb2a2));}if(_[_0x38e6('0x146')](_0x1e670b)){for(var _0x2cb964=0x0;_0x2cb964<_0x1e670b['length'];_0x2cb964+=0x1){_0x4e3d00[_0x38e6('0x128')](ami[_0x38e6('0xb0')]({'action':_0x38e6('0x147'),'command':util[_0x38e6('0x79')](_0x38e6('0x148'),_0x1e670b[_0x2cb964][_0x38e6('0x149')],!_[_0x38e6('0x3a')](config[_0x38e6('0x143')][_0x3fb2a2])?_0x3fb2a2:'')})['then'](function(_0x25137c){return _0x25137c[_0x38e6('0x14a')][_0x38e6('0x14b')]('true')>=0x0;})['catch'](myreject(_0x4fb5ea)));}}else{_0x4e3d00['push'](ami['Action']({'action':_0x38e6('0x147'),'command':util[_0x38e6('0x79')](_0x38e6('0x148'),_0x1e670b,!_[_0x38e6('0x3a')](config[_0x38e6('0x143')][_0x3fb2a2])?_0x3fb2a2:'')})['then'](function(_0x211b75){return _0x211b75['content'][_0x38e6('0x14b')](_0x38e6('0x14c'))>=0x0;})[_0x38e6('0xb9')](myreject(_0x4fb5ea)));}BPromise['all'](_0x4e3d00)[_0x38e6('0xbc')](function(_0x2d7346){var _0x47f674=_[_0x38e6('0x14d')](_0x2d7346);if(_0x47f674){return _0x5cfe1(_0x47f674);}else{_0x570a52[_0x38e6('0x3b')]=_0x50c84e?_0x38e6('0x14e'):'INTERVAL_IS_OVERTIME';return _0x4fb5ea(msgResponse(_0x38e6('0x14f'),_0x38e6('0x13f'),_0x38e6('0x150')+_0x50c84e+'\x20'+_0x3e755b+_0x38e6('0x151')+util['inspect'](_0x1e670b,{'showHidden':![],'depth':null})+_0x38e6('0x152')+_0x3fb2a2));}})[_0x38e6('0xb9')](function(_0x17602c){return _0x4fb5ea(msgResponse(_0x38e6('0x13e'),_0x38e6('0x13f'),JSON['stringify'](_0x17602c)));});});};Dialer[_0x38e6('0x17')][_0x38e6('0x153')]=function(_0x3cb4cd){var _0xb4031c=this;return function(){switch(_0x3cb4cd['dialMethod']){case _0x38e6('0x154'):freeVariablesPredictive(_0x3cb4cd);_0xb4031c[_0x38e6('0x155')](_0x3cb4cd,0x1);break;case'power':freeVariablesPredictive(_0x3cb4cd);_0xb4031c['handlePower'](_0x3cb4cd,_0x3cb4cd[_0x38e6('0x156')]);break;case'predictive':_0xb4031c[_0x38e6('0x6')](_0x3cb4cd);break;case _0x38e6('0x157'):freeVariablesPredictive(_0x3cb4cd);_0xb4031c['handlePower'](_0x3cb4cd,0x1);break;default:freeVariablesPredictive(_0x3cb4cd);logger[_0x38e6('0x98')](_0x38e6('0x158'),_0x3cb4cd['name'],_0x38e6('0x159'));}};};Dialer[_0x38e6('0x17')][_0x38e6('0x15a')]=function(_0x3824ff){var _0x124df8=this;return function(){_0x124df8['handleIvr'](_0x3824ff);};};Dialer[_0x38e6('0x17')][_0x38e6('0x2f')]=function(_0x33f41b){var _0x200f9a=this;if(isNotPreview(_0x33f41b[_0x38e6('0x15b')])){if(isVoiceQueueOutbound(_0x33f41b[_0x38e6('0x55')])&&isActive(_0x33f41b[_0x38e6('0x59')])){_0x33f41b[_0x38e6('0xa4')]=!![];BPromise['resolve']()[_0x38e6('0xbc')](checkIsLoggedIn(_0x33f41b,_0x33f41b[_0x38e6('0x4f')]))[_0x38e6('0xbc')](checkIsActive(_0x33f41b,_0x33f41b[_0x38e6('0x59')]))['then'](checkInterval(_0x33f41b))['then'](_0x200f9a['checkIsTrunkReachable'](_0x33f41b))[_0x38e6('0xbc')](_0x200f9a[_0x38e6('0x15c')](_0x33f41b[_0x38e6('0x15d')],_0x33f41b['dialTimezone'],_0x33f41b[_0x38e6('0x3d')],_0x33f41b))[_0x38e6('0xbc')](_0x200f9a[_0x38e6('0x15e')](_0x33f41b[_0x38e6('0x41')],_0x33f41b['dialTimezone'],_0x33f41b[_0x38e6('0x3d')],_0x33f41b))[_0x38e6('0xbc')](_0x200f9a[_0x38e6('0x153')](_0x33f41b))[_0x38e6('0xb9')](loggerCatchQueueSummary(_0x38e6('0x15f'),_0x33f41b));}else{notSendMessagesQueue(_0x33f41b);}}else{freeVariablesPredictive(_0x33f41b);}};Dialer[_0x38e6('0x17')]['syncCampaigns']=function(){var _0x32220e=this;var _0x4cd3e1;for(var _0x1bbb37 in this[_0x38e6('0x1d')]){if(typeof this[_0x38e6('0x1d')][_0x1bbb37]!==_0x38e6('0x9b')){_0x4cd3e1=this[_0x38e6('0x1d')][_0x1bbb37];if(isCampaignIvr(_0x4cd3e1[_0x38e6('0x55')])&&isActive(_0x4cd3e1[_0x38e6('0x76')])){_0x4cd3e1[_0x38e6('0xa4')]=!![];BPromise[_0x38e6('0xb7')]()['then'](checkIsActive(_0x4cd3e1,_0x4cd3e1[_0x38e6('0x76')]))[_0x38e6('0xbc')](checkInterval(_0x4cd3e1))[_0x38e6('0xbc')](_0x32220e[_0x38e6('0x160')](_0x4cd3e1))[_0x38e6('0xbc')](_0x32220e['checkIfTime'](_0x4cd3e1[_0x38e6('0x15d')],_0x4cd3e1['dialTimezone'],_0x4cd3e1[_0x38e6('0x3d')],_0x4cd3e1))['then'](_0x32220e[_0x38e6('0x15e')](_0x4cd3e1[_0x38e6('0x41')],_0x4cd3e1[_0x38e6('0x161')],_0x4cd3e1[_0x38e6('0x3d')],_0x4cd3e1))['then'](_0x32220e[_0x38e6('0x15a')](_0x4cd3e1))['catch'](loggerCatchQueueSummary('[syncCampaigns]',_0x4cd3e1));}else{notSendMessagesCampaign(_0x4cd3e1);}}}};function getCallerIdRandom(_0x143c1a,_0x14623b){var _0x437c13;var _0x4f083b;var _0x5655de;if(_0x14623b<=0x0){_0x14623b=0x1;}_0x437c13=new RegExp(_0x38e6('0x162')+_0x14623b+'}$');_0x4f083b=Math[_0x38e6('0x163')](0xa,_0x14623b-0x1);_0x5655de=Math['pow'](0xa,_0x14623b)-0x1;return util[_0x38e6('0x79')]('%s',_['replace'](_0x143c1a,_0x437c13,_['random'](_0x4f083b,_0x5655de)));}function extractCalleridName(_0x30abab){var _0x18364b=_0x30abab[_0x38e6('0x164')](/"(.*?)"/);return _0x18364b?_0x18364b[0x1]:_0x30abab;}function extractCalleridNumber(_0xe91234){var _0x16506a=_0xe91234[_0x38e6('0x164')](/<(.*?)>/);return _0x16506a?_0x16506a[0x1]:_0xe91234;}Dialer[_0x38e6('0x17')]['actionOriginate']=function(_0x44d352,_0x51358d){var _0x5ba7ac=this;var _0x38ac06=uuid['v4']();this[_0x38e6('0x22')][_0x38ac06]=new Action(_0x44d352,_0x51358d,_0x38ac06);return new BPromise(function(_0x4449d9,_0x4b4887){if(_[_0x38e6('0x3a')](_0x44d352)&&typeof _0x44d352!=='object'){return _0x4b4887(msgResponse(_0x38e6('0x165'),_0x38e6('0x13f'),_0x38e6('0x166')));}if(_['isUndefined'](_0x51358d[_0x38e6('0x167')][_0x38e6('0x168')])||_0x51358d['Contact'][_0x38e6('0x168')]===null){return _0x4b4887(msgResponse(_0x38e6('0x165'),_0x38e6('0x13f'),_0x38e6('0x169')));}var _0x4f4d2e={'XMD-CALLERID':_0x5ba7ac[_0x38e6('0x22')][_0x38ac06][_0x38e6('0x16a')](),'XMD-AGI':_0x44d352[_0x38e6('0x109')]?util[_0x38e6('0x79')](_0x38e6('0x16b'),ipAgi,_0x44d352[_0x38e6('0x109')]):_0x38e6('0x16c'),'XMD-AGIAFTER':_0x44d352[_0x38e6('0x11a')]?util[_0x38e6('0x79')]('\x22agi://%s/square,%s\x22',ipAgi,_0x44d352[_0x38e6('0x11a')]):_0x38e6('0x16c'),'XMD-QUEUE':_0x44d352[_0x38e6('0x55')]===_0x38e6('0x92')?util[_0x38e6('0x79')](_0x38e6('0x16d'),_0x44d352['name'],_0x44d352['dialQueueOptions']||'',_0x44d352['dialAgiAfterHangupAgent']?'c':'',_0x44d352[_0x38e6('0x16e')]||0x3):_0x38e6('0x16c'),'XMD-CONTACTID':_0x51358d[_0x38e6('0xd5')],'XMD-CDRTYPE':_0x38e6('0x5'),'CALLERID(all)':_0x5ba7ac[_0x38e6('0x22')][_0x38ac06][_0x38e6('0x16a')](),'XMD-AMD':_0x44d352[_0x38e6('0xed')]?_0x38e6('0x16f'):_0x38e6('0x16c'),'XMD-DESTINATION':'xcally-motion-dialer'};if(_0x44d352['dialAMDActive']){_0x4f4d2e[_0x38e6('0x170')]=_0x44d352[_0x38e6('0x171')]||0x9c4;_0x4f4d2e[_0x38e6('0x172')]=_0x44d352[_0x38e6('0x173')]||0x5dc;_0x4f4d2e['XMD-AMDAFTERGREETINGSILENCE']=_0x44d352[_0x38e6('0x174')]||0x320;_0x4f4d2e['XMD-AMDTOTALANALYSISTIME']=_0x44d352[_0x38e6('0x175')]||0x1388;_0x4f4d2e[_0x38e6('0x176')]=_0x44d352['dialAMDMinWordLength']||0x64;_0x4f4d2e[_0x38e6('0x177')]=_0x44d352[_0x38e6('0x178')]||0x32;_0x4f4d2e[_0x38e6('0x179')]=_0x44d352[_0x38e6('0x17a')]||0x3;_0x4f4d2e[_0x38e6('0x17b')]=_0x44d352[_0x38e6('0x17c')]||0x100;_0x4f4d2e[_0x38e6('0x17d')]=_0x44d352[_0x38e6('0x17e')]||0x1388;}if(_0x44d352[_0x38e6('0x55')]==='outbound'){_0x4f4d2e[_0x38e6('0x17f')]=_0x51358d[_0x38e6('0xd7')];}else{_0x4f4d2e['XMD-CAMPAIGNID']=_0x51358d['CampaignId'];}for(var _0x3c66ea in _0x51358d[_0x38e6('0x167')]){if(typeof _0x51358d['Contact'][_0x3c66ea]!==_0x38e6('0x9b')){if(isNotNull(_0x51358d[_0x38e6('0x167')][_0x3c66ea])&&_0x3c66ea!=='id'&&_0x3c66ea!==_0x38e6('0x180')&&_0x3c66ea!==_0x38e6('0x181')&&_0x3c66ea!=='updatedAt'){_0x4f4d2e[util[_0x38e6('0x79')](_0x38e6('0x182'),_0x38e6('0x183'),_[_0x38e6('0x184')](_0x3c66ea))]=_0x51358d[_0x38e6('0x167')][_0x3c66ea];}}}var _0x11fef5=_0x5ba7ac[_0x38e6('0xda')](_0x44d352[_0x38e6('0x75')])?getCallerId(_0x44d352[_0x38e6('0x75')][_0x38e6('0x77')],_0x44d352[_0x38e6('0x5a')],_0x44d352[_0x38e6('0x185')]>0x0?getCallerIdRandom(_0x44d352[_0x38e6('0x5b')],_0x44d352[_0x38e6('0x185')]):_0x44d352[_0x38e6('0x5b')]):getCallerId(_['isNil'](_0x44d352[_0x38e6('0x186')])?_0x44d352[_0x38e6('0x75')]['callerid']:_0x44d352[_0x38e6('0x186')]['callerid'],_0x44d352[_0x38e6('0x5a')],_0x44d352[_0x38e6('0x185')]>0x0?getCallerIdRandom(_0x44d352[_0x38e6('0x5b')],_0x44d352[_0x38e6('0x185')]):_0x44d352[_0x38e6('0x5b')]);if(_0x11fef5){_0x4f4d2e['XMD-ORIGINATECALLERIDNAME']=_0x5ba7ac[_0x38e6('0x22')][_0x38ac06][_0x38e6('0x187')]=extractCalleridName(_0x11fef5);_0x4f4d2e[_0x38e6('0x188')]=_0x5ba7ac[_0x38e6('0x22')][_0x38ac06][_0x38e6('0x189')]=extractCalleridNumber(_0x11fef5);}return ami[_0x38e6('0xb0')]({'actionid':_0x38ac06,'action':_0x38e6('0x165'),'channel':_0x5ba7ac[_0x38e6('0xda')](_0x44d352[_0x38e6('0x75')])?util[_0x38e6('0x79')](_0x38e6('0x18a'),_0x44d352[_0x38e6('0x75')][_0x38e6('0x3d')],isNotNull(_0x44d352[_0x38e6('0x5d')])?_0x44d352[_0x38e6('0x5d')][_0x38e6('0x18b')]()||'':'',_0x44d352['dialCutDigit']>0x0?_0x51358d['Contact'][_0x38e6('0x168')][_0x38e6('0x18c')](_0x44d352['dialCutDigit']):_0x51358d['Contact'][_0x38e6('0x168')]):util[_0x38e6('0x79')](_0x38e6('0x18a'),_[_0x38e6('0xaf')](_0x44d352['TrunkBackup'])?_0x44d352[_0x38e6('0x75')][_0x38e6('0x3d')]:_0x44d352[_0x38e6('0x186')]['name'],isNotNull(_0x44d352[_0x38e6('0x5d')])?_0x44d352['dialPrefix'][_0x38e6('0x18b')]()||'':'',_0x44d352[_0x38e6('0x18d')]>0x0?_0x51358d[_0x38e6('0x167')][_0x38e6('0x168')][_0x38e6('0x18c')](_0x44d352[_0x38e6('0x18d')]):_0x51358d[_0x38e6('0x167')]['phone']),'callerid':_0x11fef5,'Exten':_0x38e6('0xe0'),'Context':_0x38e6('0x18e'),'Priority':'1','variable':_0x4f4d2e,'timeout':(_0x44d352['dialOriginateTimeout']||0x1e)*0x3e8,'async':!![],'channelid':_0x38ac06})['then'](function(_0x27a6e6){return _0x4449d9(_0x27a6e6);})['catch'](function(_0x4adfed){_0x44d352['outboundOriginateFailureCallsDay']+=0x1;var _0x58d850=new History(_0x5ba7ac[_0x38e6('0x22')][_0x38ac06]);logger[_0x38e6('0x98')](util[_0x38e6('0x79')]('[originateError]:\x20%s',JSON[_0x38e6('0x47')](_0x4adfed)));_0x58d850['state']=0xe;_0x58d850[_0x38e6('0xaa')]='OriginateError';_0x58d850['starttime']=moment()['format'](_0x38e6('0x103'));_0x58d850[_0x38e6('0xab')]=_0x58d850[_0x38e6('0xac')];_0x5ba7ac['createHistory'](_0x58d850)['catch'](loggerCatch('[originate][error]'));_0x5ba7ac[_0x38e6('0xcb')](_0x58d850)[_0x38e6('0xb9')](loggerCatch('[originate][error]'))['finally'](function(){delete _0x5ba7ac[_0x38e6('0x22')][_0x38ac06];return _0x4b4887(msgResponse(_0x38e6('0x165'),_0x38e6('0x46'),_0x38e6('0x18f')));});});});};Dialer['prototype']['syncOriginateResponse']=function(_0x5ccd03){var _0x34fcc7=this['actions'][_0x5ccd03['actionid']];if(_0x34fcc7){delete this[_0x38e6('0x22')][_0x5ccd03[_0x38e6('0x125')]];_0x34fcc7[_0x38e6('0x117')]=moment()[_0x38e6('0x79')](_0x38e6('0x103'));var _0x5b556e=_0x34fcc7[_0x38e6('0x55')]===_0x38e6('0x94')?this[_0x38e6('0x1d')][_0x34fcc7[_0x38e6('0xb4')]]:this[_0x38e6('0x1c')][_0x34fcc7['getQueue']()];if(!this[_0x38e6('0x190')](_0x5ccd03[_0x38e6('0x191')])){this[_0x38e6('0xb3')](_0x5b556e);return this[_0x38e6('0x192')](_0x34fcc7,_0x5b556e,_0x5ccd03)['catch'](loggerCatch(_0x38e6('0x193')));}this[_0x38e6('0x24')][_0x5ccd03[_0x38e6('0xe2')]]=_0x34fcc7;}};Dialer['prototype'][_0x38e6('0x194')]=function(_0x272527,_0x3d3e96,_0x6e6354){var _0x129097=new History(_0x3d3e96);if(_0x129097[_0x38e6('0xf3')]+_0x129097[_0x38e6('0xf4')]+_0x129097[_0x38e6('0xf5')]+_0x129097['countnosuchnumberretry']+_0x129097['countdropretry']+_0x129097[_0x38e6('0xf8')]+_0x129097[_0x38e6('0xf9')]+_0x129097['countagentrejectretry']>=_0x6e6354[_0x38e6('0xfb')]-0x1){return!![];}switch(_0x272527){case 0x3:if(_0x129097['countnoanswerretry']>=_0x6e6354['dialNoAnswerMaxRetry']-0x1){return!![];}this[_0x38e6('0xc2')]({'active':![],'countnoanswerretry':_0x129097['countnoanswerretry']+=0x1,'scheduledat':moment()['add'](_0x6e6354[_0x38e6('0x195')],_0x38e6('0x102'))[_0x38e6('0x79')](_0x38e6('0x103')),'ContactId':_0x129097[_0x38e6('0xd5')],'ListId':_0x129097[_0x38e6('0xd6')],'VoiceQueueId':_0x129097[_0x38e6('0xd7')]||undefined,'CampaignId':_0x129097[_0x38e6('0xd8')]||undefined})[_0x38e6('0xb9')](loggerCatch('[rescheduleContact][NoAnswer]'));break;case 0x5:if(_0x129097[_0x38e6('0xf3')]>=_0x6e6354[_0x38e6('0x196')]-0x1){return!![];}this[_0x38e6('0xc2')]({'active':![],'countbusyretry':_0x129097['countbusyretry']+=0x1,'scheduledat':moment()[_0x38e6('0x100')](_0x6e6354[_0x38e6('0x197')],_0x38e6('0x102'))[_0x38e6('0x79')](_0x38e6('0x103')),'ContactId':_0x129097[_0x38e6('0xd5')],'ListId':_0x129097[_0x38e6('0xd6')],'VoiceQueueId':_0x129097[_0x38e6('0xd7')]||undefined,'CampaignId':_0x129097[_0x38e6('0xd8')]||undefined})['catch'](loggerCatch(_0x38e6('0x198')));break;case 0x8:if(_0x129097[_0x38e6('0xf4')]>=_0x6e6354[_0x38e6('0x199')]-0x1){return!![];}this[_0x38e6('0xc2')]({'active':![],'countcongestionretry':_0x129097['countcongestionretry']+=0x1,'scheduledat':moment()['add'](_0x6e6354['dialCongestionRetryFrequency'],'minutes')[_0x38e6('0x79')](_0x38e6('0x103')),'ContactId':_0x129097['ContactId'],'ListId':_0x129097[_0x38e6('0xd6')],'VoiceQueueId':_0x129097[_0x38e6('0xd7')]||undefined,'CampaignId':_0x129097['CampaignId']||undefined})[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x19a')));break;case 0x0:if(_0x129097[_0x38e6('0xf6')]>=_0x6e6354[_0x38e6('0x19b')]-0x1){return!![];}else{this['rescheduleContact']({'active':![],'countnosuchnumberretry':_0x129097[_0x38e6('0xf6')]+=0x1,'scheduledat':moment()['add'](_0x6e6354['dialNoSuchNumberRetryFrequency'],'minutes')[_0x38e6('0x79')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x129097['ContactId'],'ListId':_0x129097[_0x38e6('0xd6')],'VoiceQueueId':_0x129097[_0x38e6('0xd7')]||undefined,'CampaignId':_0x129097[_0x38e6('0xd8')]||undefined})[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x19c')));}break;case 0xa:if(_0x129097['countdropretry']>=_0x6e6354['dialDropMaxRetry']-0x1){return!![];}this[_0x38e6('0xc2')]({'active':![],'countdropretry':_0x129097[_0x38e6('0xf7')]+=0x1,'scheduledat':moment()['add'](_0x6e6354[_0x38e6('0x11c')],_0x38e6('0x102'))['format']('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x129097[_0x38e6('0xd5')],'ListId':_0x129097[_0x38e6('0xd6')],'VoiceQueueId':_0x129097['VoiceQueueId']||undefined,'CampaignId':_0x129097[_0x38e6('0xd8')]||undefined})[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x19d')));break;case 0xb:if(_0x129097[_0x38e6('0xf8')]>=_0x6e6354['dialAbandonedMaxRetry']-0x1){return!![];}this['rescheduleContact']({'active':![],'countabandonedretry':_0x129097[_0x38e6('0xf8')]+=0x1,'scheduledat':moment()[_0x38e6('0x100')](_0x6e6354[_0x38e6('0x123')],_0x38e6('0x102'))[_0x38e6('0x79')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x129097[_0x38e6('0xd5')],'ListId':_0x129097['ListId'],'VoiceQueueId':_0x129097[_0x38e6('0xd7')]||undefined,'CampaignId':_0x129097[_0x38e6('0xd8')]||undefined})[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x19e')));break;case 0x13:if(_0x129097[_0x38e6('0xf9')]>=_0x6e6354['dialMachineMaxRetry']-0x1){return!![];}this['rescheduleContact']({'active':![],'countmachineretry':_0x129097['countmachineretry']+=0x1,'scheduledat':moment()[_0x38e6('0x100')](_0x6e6354[_0x38e6('0x101')],_0x38e6('0x102'))[_0x38e6('0x79')](_0x38e6('0x103')),'ContactId':_0x129097[_0x38e6('0xd5')],'ListId':_0x129097[_0x38e6('0xd6')],'VoiceQueueId':_0x129097['VoiceQueueId']||undefined,'CampaignId':_0x129097[_0x38e6('0xd8')]||undefined})[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x19f')));break;case 0x14:if(_0x129097[_0x38e6('0xfa')]>=_0x6e6354[_0x38e6('0x1a0')]-0x1){return!![];}this[_0x38e6('0xc2')]({'active':![],'countagentrejectretry':_0x129097[_0x38e6('0xfa')]+=0x1,'scheduledat':moment()['add'](_0x6e6354[_0x38e6('0x1a1')],_0x38e6('0x102'))[_0x38e6('0x79')](_0x38e6('0x103')),'ContactId':_0x129097[_0x38e6('0xd5')],'ListId':_0x129097['ListId'],'VoiceQueueId':_0x129097['VoiceQueueId']||undefined,'CampaignId':_0x129097[_0x38e6('0xd8')]||undefined})[_0x38e6('0xb9')](loggerCatch('[rescheduleContact][AgentReject]'));break;default:return!![];}};Dialer[_0x38e6('0x17')][_0x38e6('0x192')]=function(_0x3e163a,_0x503205,_0x33bce8){var _0x406d37=this;var _0x5dd75b=new History(_0x3e163a);return new BPromise(function(_0x3ef753,_0x2a8d2f){if(_[_0x38e6('0x3a')](_0x503205)&&typeof _0x503205!==_0x38e6('0x1a2')){return _0x2a8d2f(msgResponse('[callProgressDetecting]','Failure',_0x38e6('0x1a3')));}if(_[_0x38e6('0x3a')](_0x33bce8)&&typeof _0x33bce8!==_0x38e6('0x1a2')){return _0x2a8d2f(msgResponse(_0x38e6('0x1a4'),_0x38e6('0x13f'),_0x38e6('0x1a5')));}switch(_0x33bce8[_0x38e6('0x10f')]){case'0':_0x503205[_0x38e6('0x64')]+=0x1;_0x5dd75b[_0x38e6('0xef')]=0x0;_0x5dd75b[_0x38e6('0xaa')]='NoSuchNumber';_0x5dd75b[_0x38e6('0xf6')]+=0x1;_0x5dd75b[_0x38e6('0xf1')]+=0x1;ami[_0x38e6('0x4b')](_0x38e6('0x1a6'),ut[_0x38e6('0xe8')](_0x3e163a,_0x38e6('0x1a7')));_0x406d37[_0x38e6('0xcd')](_0x5dd75b)[_0x38e6('0xb9')](loggerCatch(_0x38e6('0xf2')));if(_0x406d37[_0x38e6('0x194')](0x0,_0x3e163a,_0x503205)){if(_0x5dd75b[_0x38e6('0xf6')]>=_0x503205[_0x38e6('0x19b')]){_0x406d37['createStateFinal'](_0x5dd75b,_0x3ef753,_0x2a8d2f,_0x38e6('0x1a8'));}else{_0x406d37[_0x38e6('0xfc')](_0x5dd75b,_0x3ef753,_0x2a8d2f,_0x38e6('0x1a8'));}}break;case'3':_0x503205[_0x38e6('0x1a9')]+=0x1;_0x5dd75b[_0x38e6('0xef')]=0x3;_0x5dd75b[_0x38e6('0xaa')]=_0x38e6('0x1aa');_0x5dd75b[_0x38e6('0xf5')]+=0x1;_0x5dd75b[_0x38e6('0xf1')]+=0x1;ami[_0x38e6('0x4b')](_0x38e6('0x1ab'),ut[_0x38e6('0xe8')](_0x3e163a,_0x38e6('0x1ac')));_0x406d37[_0x38e6('0xcd')](_0x5dd75b)[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x1ad')));if(_0x406d37[_0x38e6('0x194')](0x3,_0x3e163a,_0x503205)){if(_0x5dd75b[_0x38e6('0xf5')]>=_0x503205[_0x38e6('0x1ae')]){_0x406d37['createStateFinal'](_0x5dd75b,_0x3ef753,_0x2a8d2f,'reason\x203\x20ringing\x20no\x20answer');}else{_0x406d37['stateGlobal'](_0x5dd75b,_0x3ef753,_0x2a8d2f,_0x38e6('0x1af'));}}break;case'5':_0x503205[_0x38e6('0x60')]+=0x1;_0x5dd75b[_0x38e6('0xef')]=0x5;_0x5dd75b[_0x38e6('0xaa')]='Busy';_0x5dd75b[_0x38e6('0xf3')]+=0x1;_0x5dd75b['countglobal']+=0x1;ami[_0x38e6('0x4b')](_0x38e6('0x1b0'),ut[_0x38e6('0xe8')](_0x3e163a,'busy'));_0x406d37[_0x38e6('0xcd')](_0x5dd75b)[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x1b1')));if(_0x406d37['checkRetriveMax'](0x5,_0x3e163a,_0x503205)){if(_0x5dd75b[_0x38e6('0xf3')]>=_0x503205['dialBusyMaxRetry']){_0x406d37['createStateFinal'](_0x5dd75b,_0x3ef753,_0x2a8d2f,_0x38e6('0x1b2'));}else{_0x406d37['stateGlobal'](_0x5dd75b,_0x3ef753,_0x2a8d2f,'reason\x205\x20busy');}}break;case'8':_0x503205[_0x38e6('0x1b3')]+=0x1;_0x5dd75b[_0x38e6('0xef')]=0x8;_0x5dd75b[_0x38e6('0xaa')]='Congestion';_0x5dd75b[_0x38e6('0xf4')]+=0x1;_0x5dd75b[_0x38e6('0xf1')]+=0x1;ami[_0x38e6('0x4b')](_0x38e6('0x1b4'),ut[_0x38e6('0xe8')](_0x3e163a,_0x38e6('0x1b5')));_0x406d37['createHistory'](_0x5dd75b)[_0x38e6('0xb9')](loggerCatch('[syncAgentComplete][createHistory][8]'));if(_0x406d37[_0x38e6('0x194')](0x8,_0x3e163a,_0x503205)){if(_0x5dd75b[_0x38e6('0xf4')]>=_0x503205[_0x38e6('0x199')]){_0x406d37[_0x38e6('0xfe')](_0x5dd75b,_0x3ef753,_0x2a8d2f,_0x38e6('0x1b6'));}else{_0x406d37[_0x38e6('0xfc')](_0x5dd75b,_0x3ef753,_0x2a8d2f,_0x38e6('0x1b6'));}}break;case'11':_0x503205['outboundAbandonedCallsDay']+=0x1;_0x5dd75b['state']=0xb;_0x5dd75b[_0x38e6('0xaa')]=_0x38e6('0x120');_0x5dd75b['countabandonedretry']+=0x1;_0x5dd75b[_0x38e6('0xf1')]+=0x1;_0x406d37['createHistory'](_0x5dd75b)[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x124')));if(_0x406d37[_0x38e6('0x194')](0xb,_0x3e163a,_0x503205)){if(_0x5dd75b[_0x38e6('0xf8')]>=_0x503205[_0x38e6('0x122')]){_0x406d37[_0x38e6('0xfe')](_0x5dd75b,_0x3ef753,_0x2a8d2f,_0x38e6('0x1b7'));}else{_0x406d37['stateGlobal'](_0x5dd75b,_0x3ef753,_0x2a8d2f,_0x38e6('0x1b7'));}}break;case'20':_0x503205[_0x38e6('0x66')]+=0x1;_0x5dd75b['state']=0x14;_0x5dd75b[_0x38e6('0xaa')]=_0x38e6('0x1b8');_0x5dd75b[_0x38e6('0xfa')]+=0x1;_0x5dd75b[_0x38e6('0xf1')]+=0x1;ami[_0x38e6('0x4b')](_0x38e6('0x1b9'),ut[_0x38e6('0xe8')](_0x3e163a,_0x38e6('0x1ba')));_0x406d37[_0x38e6('0xcd')](_0x5dd75b)[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x1bb')));if(_0x406d37[_0x38e6('0x194')](0x14,_0x3e163a,_0x503205)){if(_0x5dd75b[_0x38e6('0xfa')]>=_0x503205['dialAgentRejectMaxRetry']){_0x406d37[_0x38e6('0xfe')](_0x5dd75b,_0x3ef753,_0x2a8d2f,_0x38e6('0x1bc'));}else{_0x406d37[_0x38e6('0xfc')](_0x5dd75b,_0x3ef753,_0x2a8d2f,_0x38e6('0x1bc'));}}break;default:_0x503205[_0x38e6('0x67')]+=0x1;_0x5dd75b[_0x38e6('0xef')]=0xc;_0x5dd75b[_0x38e6('0xaa')]=_0x33bce8['reason'];_0x406d37[_0x38e6('0xcd')](_0x5dd75b)[_0x38e6('0xb9')](loggerCatch('[syncAgentComplete][createHistory][?]'));if(_0x406d37[_0x38e6('0x194')](_0x33bce8[_0x38e6('0x10f')],_0x3e163a,_0x503205)){if(_0x5dd75b[_0x38e6('0xf3')]+_0x5dd75b[_0x38e6('0xf4')]+_0x5dd75b[_0x38e6('0xf5')]+_0x5dd75b['countnosuchnumberretry']+_0x5dd75b[_0x38e6('0xf7')]+_0x5dd75b[_0x38e6('0xf8')]+_0x5dd75b[_0x38e6('0xf9')]+_0x5dd75b['countagentrejectretry']>=_0x503205['dialGlobalMaxRetry']){_0x406d37[_0x38e6('0xfc')](_0x5dd75b,_0x3ef753,_0x2a8d2f,_0x33bce8['reason']);}else{_0x406d37[_0x38e6('0xfe')](_0x5dd75b,_0x3ef753,_0x2a8d2f,_0x33bce8['reason']);}}}});};Dialer[_0x38e6('0x17')][_0x38e6('0xfc')]=function(_0x261522,_0x2b55a8,_0x42f4b5,_0x2a25c3){var _0x382860=new Final(_0x261522);_0x382860[_0x38e6('0xef')]=0xf;_0x382860['statedesc']=_0x38e6('0x1bd');this[_0x38e6('0xfe')](_0x382860,_0x2b55a8,_0x42f4b5,_0x2a25c3);};Dialer[_0x38e6('0x17')][_0x38e6('0xfe')]=function(_0x4e695c,_0x30c2bd,_0x52a351,_0x59ee1e){this[_0x38e6('0xcb')](_0x4e695c)[_0x38e6('0xbc')](function(){return _0x30c2bd(msgResponse(_0x38e6('0x1a4'),_0x38e6('0xd9'),_0x59ee1e));})[_0x38e6('0xb9')](function(){return _0x52a351(msgResponse(_0x38e6('0x1be'),_0x38e6('0x13f'),'contact\x20not\x20moved'));});};Dialer['prototype'][_0x38e6('0x6')]=function(_0x3a94b0){var _0x20b07b=_0x3a94b0[_0x38e6('0x1bf')]/0x64;var _0x3dc150=_0x3a94b0[_0x38e6('0x63')]/(_0x3a94b0[_0x38e6('0x63')]+_0x3a94b0[_0x38e6('0xe3')]);var _0x550347=Math['round'](_0x3a94b0[_0x38e6('0x6f')]*(_0x3a94b0['predictiveIntervalMaxThreshold']/0x64));var _0x23c121=Math['round'](_0x3a94b0['predictiveIntervalAvailable']*(_0x3a94b0[_0x38e6('0x1c0')]/0x64));var _0x49f3dd=_0x3a94b0[_0x38e6('0x4e')]+_0x3a94b0[_0x38e6('0xa3')];var _0x4a572f=Math[_0x38e6('0x1c1')](_0x3a94b0[_0x38e6('0x71')]*_0x3a94b0['erlangAbandonmentRate']*_0x3a94b0['predictiveIntervalHitRate']*_0x3a94b0[_0x38e6('0x1c2')]);if(_[_0x38e6('0x3a')](_0x3a94b0[_0x38e6('0x8d')])){if(!_[_0x38e6('0x3a')](_0x3a94b0[_0x38e6('0x74')])){_0x3a94b0[_0x38e6('0x74')]=undefined;loggerPredictive[_0x38e6('0x98')]('[startMethodPredictive][StartProgressive]',_0x38e6('0x1c3'));}if(!_[_0x38e6('0x3a')](_0x3a94b0[_0x38e6('0x90')])){loggerPredictive[_0x38e6('0x98')](_0x38e6('0x1c4'),_0x38e6('0x1c5'));clearInterval(_0x3a94b0[_0x38e6('0x90')]);_0x3a94b0[_0x38e6('0x90')]=undefined;}_0x3a94b0[_0x38e6('0x8d')]=moment()[_0x38e6('0x79')]('YYYY-MM-DD\x20HH:mm:ss');loggerPredictive[_0x38e6('0x7c')](_0x3a94b0['name'],_0x38e6('0x1c6'),_0x3a94b0[_0x38e6('0x8d')]);this['handlePower'](_0x3a94b0,0x1);}else if(ifInterval(_0x3a94b0['dialPredictiveInterval'],_0x3a94b0['startProgressive'])){this[_0x38e6('0x155')](_0x3a94b0,0x1);loggerPredictiveCalls[_0x38e6('0x7c')](_0x38e6('0x1c7'),_0x3a94b0['startProgressive'],_0x3a94b0[_0x38e6('0x3d')]);_0x3a94b0[_0x38e6('0x71')]=0x0;_0x3a94b0['predictiveIntervalErlangCallsDroppedCalls']=0x0;}else if(_0x20b07b<_0x3dc150&&_0x3a94b0[_0x38e6('0x1c8')]==='dropRate'){freeVariablesPredictive(_0x3a94b0);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x1c9'),'Dropped\x20calls\x20day',_0x3dc150,_0x38e6('0x8d'),_0x3a94b0[_0x38e6('0x3d')]);}else if(_0x4a572f<_0x3a94b0[_0x38e6('0x6c')]&&_0x3a94b0[_0x38e6('0x1c8')]===_0x38e6('0x1ca')){freeVariablesPredictive(_0x3a94b0);loggerPredictive['info']('[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]',_0x38e6('0x1cb'),_0x4a572f,'Drop\x20in\x20this\x20interval',_0x3a94b0[_0x38e6('0x6c')],'startProgressive',_0x3a94b0['name']);}else if(!ifInterval(_0x3a94b0['dialPredictiveInterval'],_0x3a94b0[_0x38e6('0x8d')])&&_[_0x38e6('0x3a')](_0x3a94b0[_0x38e6('0x74')])&&!_[_0x38e6('0x3a')](_0x3a94b0[_0x38e6('0x8d')])){_0x3a94b0['startPredictive']=moment()[_0x38e6('0x79')](_0x38e6('0x103'));loggerPredictive[_0x38e6('0x7c')](_0x3a94b0['name'],_0x38e6('0x1cc'),_0x3a94b0[_0x38e6('0x74')]);this['averageHandleTime'](_0x3a94b0[_0x38e6('0x1cd')])[_0x38e6('0xbc')](this[_0x38e6('0x1ce')](_0x3a94b0))['then'](mergeDataErlangB(_0x3a94b0))['then'](this[_0x38e6('0x1cf')](_0x3a94b0))['catch'](loggerCatchPredictive(_0x38e6('0x1d0'),_0x3a94b0));}else if(!ifInterval(_0x3a94b0[_0x38e6('0x1cd')],_0x3a94b0[_0x38e6('0x74')])){_0x3a94b0[_0x38e6('0x6c')]=0x0;_0x3a94b0[_0x38e6('0x74')]=moment()[_0x38e6('0x79')](_0x38e6('0x103'));loggerPredictive['info'](_0x3a94b0[_0x38e6('0x3d')],_0x38e6('0x1d1'),_0x3a94b0['startPredictive']);clearInterval(_0x3a94b0[_0x38e6('0x90')]);_0x3a94b0[_0x38e6('0x90')]=undefined;this[_0x38e6('0xbf')](_0x3a94b0[_0x38e6('0x1cd')])[_0x38e6('0xbc')](this[_0x38e6('0x1ce')](_0x3a94b0))[_0x38e6('0xbc')](mergeDataErlangB(_0x3a94b0))[_0x38e6('0xbc')](this[_0x38e6('0x1cf')](_0x3a94b0))['catch'](loggerCatchPredictive(_0x38e6('0x1d2'),_0x3a94b0));}else if(_0x3a94b0[_0x38e6('0x6f')]&&_0x49f3dd<_0x3a94b0[_0x38e6('0x6f')]-_0x23c121){freeVariablesPredictive(_0x3a94b0);loggerPredictive['info'](_0x3a94b0[_0x38e6('0x3d')],'switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',_0x49f3dd,_0x38e6('0x1d3'),_0x3a94b0[_0x38e6('0x6f')],'-',_0x23c121,'=',_0x3a94b0[_0x38e6('0x6f')]-_0x23c121,')');}else if(_0x3a94b0[_0x38e6('0x6f')]&&_0x49f3dd>_0x3a94b0[_0x38e6('0x6f')]+_0x550347){freeVariablesPredictive(_0x3a94b0);loggerPredictive[_0x38e6('0x7c')](_0x3a94b0[_0x38e6('0x3d')],_0x38e6('0x1d4'),_0x49f3dd,_0x38e6('0x1d5'),_0x3a94b0[_0x38e6('0x6f')],'+',_0x550347,'=',_0x3a94b0[_0x38e6('0x6f')]+_0x550347,')');}};Dialer[_0x38e6('0x17')][_0x38e6('0x1ce')]=function(_0x23a495){var _0xb56caf=this;return function(_0x4d6a7a){return new BPromise(function(_0x183080,_0x16008e){_[_0x38e6('0x8c')](_0x23a495,_0x4d6a7a[0x0]);if(checkGetDataPredictive(_0x4d6a7a[0x0])){var _0x52ab7b=_0x23a495['predictiveIntervalAvailable']=_0x23a495[_0x38e6('0xa3')]+_0x23a495['available'];var _0x3be4e0=_0x23a495[_0x38e6('0x1cd')]*0x3c;var _0x32bd33=_0x4d6a7a[0x0][_0x38e6('0x6a')]+_0x4d6a7a[0x0][_0x38e6('0x69')];var _0x1be6ff=(_0x4d6a7a[0x0][_0x38e6('0x68')]+_0x4d6a7a[0x0][_0x38e6('0x6b')]+_0x4d6a7a[0x0]['predictiveIntervalDroppedCallsCallersExit'])/_0x4d6a7a[0x0][_0x38e6('0x7f')];_0x23a495['predictiveIntervalHitRate']=_0x1be6ff>0x0?_0x1be6ff:0x1;switch(_0x23a495['dialPredictiveOptimization']){case _0x38e6('0x1ca'):var _0x1fddbc=_0x23a495[_0x38e6('0x1bf')]/0x64;return _0xb56caf[_0x38e6('0x1d6')](_0x52ab7b,_0x3be4e0,_0x32bd33,_0x1be6ff,_0x1fddbc)[_0x38e6('0xbc')](function(_0x3dfb23){return _0x183080(_0x3dfb23);});case _0x38e6('0x1d7'):var _0x5f3871=_0x23a495[_0x38e6('0x1bf')]/0x64;return _0xb56caf[_0x38e6('0x1d8')](_0x52ab7b,_0x3be4e0,_0x32bd33,_0x1be6ff,_0x5f3871)['then'](function(_0x4e4355){return _0x183080(_0x4e4355);});default:return _0x16008e(msgResponse(_0x38e6('0x1d9'),_0x38e6('0x13f'),_0x38e6('0x1da')));}}else{return _0x16008e(msgResponse('[getDataPredictive]',_0x38e6('0x13f'),_0x38e6('0x1db')));}});};};Dialer[_0x38e6('0x17')][_0x38e6('0x1dc')]=function(_0x12ba05){var _0x4e4762=this;return function(_0x56dd3f){return new BPromise(function(_0x2f1b1d,_0x2a8a90){_[_0x38e6('0x8c')](_0x12ba05,_0x56dd3f[0x0]);if(checkGetDataPredictive(_0x56dd3f[0x0])){loggerPredictive['info'](JSON[_0x38e6('0x47')](_0x56dd3f[0x0]));if(_0x12ba05[_0x38e6('0x1c8')]===_0x38e6('0x1ca')){return _0x4e4762['getVoiceQueueRtPauses'](_0x12ba05['id'])[_0x38e6('0xbc')](function(_0x5c6fab){var _0x15ef23=_0x12ba05[_0x38e6('0x4f')]-_0x5c6fab[0x0][_0x38e6('0x1dd')];var _0x4c1083=_0x12ba05[_0x38e6('0x1cd')]*0x3c;var _0x1c66d4=_0x56dd3f[0x0][_0x38e6('0x6a')]+_0x56dd3f[0x0]['predictiveIntervalAvgHoldtime'];var _0x419638=(_0x56dd3f[0x0][_0x38e6('0x68')]+_0x56dd3f[0x0][_0x38e6('0x6b')]+_0x56dd3f[0x0][_0x38e6('0x81')])/_0x56dd3f[0x0]['predictiveIntervalTotalCalls'];var _0x40b952=_0x12ba05[_0x38e6('0x1bf')]/0x64;_0x12ba05[_0x38e6('0x6e')]=_0x5c6fab[0x0]['outboundQueuePauses']||0x0;_0x12ba05['predictiveIntervalHitRate']=_0x419638>0x0?_0x419638:0x1;return _0x4e4762[_0x38e6('0x1d6')](_0x15ef23,_0x4c1083,_0x1c66d4,_0x419638,_0x40b952);})[_0x38e6('0xbc')](function(_0x29cac2){return _0x2f1b1d(_0x29cac2);})[_0x38e6('0xb9')](function(_0x59a753){return _0x2a8a90(msgResponse(_0x38e6('0x1de'),_0x38e6('0x13f'),JSON[_0x38e6('0x47')](_0x59a753)));});}if(_0x12ba05[_0x38e6('0x1c8')]===_0x38e6('0x1d7')){return _0x4e4762[_0x38e6('0xc9')](_0x12ba05['id'])[_0x38e6('0xbc')](function(_0xf9e6ed){var _0x2da561=_0x12ba05[_0x38e6('0x4f')]-_0xf9e6ed[0x0][_0x38e6('0x1dd')];var _0x4e8c05=_0x12ba05[_0x38e6('0x1cd')]*0x3c;var _0x371fec=_0x56dd3f[0x0][_0x38e6('0x6a')]+_0x56dd3f[0x0][_0x38e6('0x69')];var _0x115043=(_0x56dd3f[0x0][_0x38e6('0x68')]+_0x56dd3f[0x0][_0x38e6('0x6b')]+_0x56dd3f[0x0][_0x38e6('0x81')])/_0x56dd3f[0x0]['predictiveIntervalTotalCalls'];var _0x37aee8=_0x12ba05['dialPredictiveOptimizationPercentage']/0x64;_0x12ba05['predictiveIntervalPauses']=_0xf9e6ed[0x0][_0x38e6('0x1dd')]||0x0;_0x12ba05['predictiveIntervalHitRate']=_0x115043>0x0?_0x115043:0x1;return _0x4e4762[_0x38e6('0x1d8')](_0x2da561,_0x4e8c05,_0x371fec,_0x115043,_0x37aee8);})[_0x38e6('0xbc')](function(_0x464f7e){return _0x2f1b1d(_0x464f7e);})[_0x38e6('0xb9')](function(_0x543787){return _0x2a8a90(msgResponse(_0x38e6('0x1de'),'Failure',JSON['stringify'](_0x543787)));});}}else{return _0x2a8a90(msgResponse(_0x38e6('0x1d9'),'Failure','check\x20failure'));}});};};Dialer['prototype'][_0x38e6('0x1cf')]=function(_0x1c4d5f){var _0x187059=this;return function(){var _0x246d64=0x0;var _0x37319c=Math[_0x38e6('0x1c1')](_0x1c4d5f[_0x38e6('0x1df')]*0x3e8);if(_0x37319c>0x0){_0x37319c=_0x37319c<0x64?0x64:_0x37319c;loggerPredictive[_0x38e6('0x7c')](_0x1c4d5f['name'],_0x38e6('0x1e0'),_0x37319c,_0x38e6('0x48'));_0x1c4d5f['handlePredictive']=setInterval(function(){_0x187059[_0x38e6('0x90')](_0x1c4d5f);loggerPredictiveCalls[_0x38e6('0x7c')]('[handlePredictive]',_0x246d64+=0x1);},_0x37319c);}else{loggerPredictive[_0x38e6('0x7c')](_0x1c4d5f[_0x38e6('0x3d')],_0x38e6('0x1e1'));}};};Dialer[_0x38e6('0x17')][_0x38e6('0x1e2')]=function(_0x41e375,_0x3f936c){var _0x5422d8=this;return function(_0x551c44){if(_[_0x38e6('0x45')](_0x551c44)){if(_[_0x38e6('0xaf')](_0x3f936c[_0x38e6('0x1e3')])||!_0x3f936c['recallme']){if(_0x41e375['dialMethod']==='booked'){_0x41e375['queueStatusComplete']=_[_0x38e6('0x3a')](_0x41e375[_0x38e6('0x12a')])?!![]:_0x41e375['queueStatusComplete'];var _0xcebbdc=uuid['v4']();_0x5422d8[_0x38e6('0x22')][_0xcebbdc]=new Action(_0x41e375,_0x3f936c,_0xcebbdc);loggerBooked['info'](_0x38e6('0x1e4'),_0xcebbdc,_0x38e6('0x1e5'),JSON[_0x38e6('0x47')](_0x41e375[_0x38e6('0x12a')]),'Queue:\x20',_0x41e375['name']);if(_0x41e375[_0x38e6('0x12a')]){_0x41e375[_0x38e6('0x12a')]=![];_0x5422d8[_0x38e6('0x26')][_0x5422d8['actions'][_0xcebbdc]['queue']]=[];ami[_0x38e6('0xb0')]({'actionid':_0xcebbdc,'action':_0x38e6('0x1e6'),'queue':_0x41e375[_0x38e6('0x3d')]})['catch'](function(){_0x5422d8[_0x38e6('0xb3')](_0x41e375);_0x5422d8[_0x38e6('0xc2')]({'active':![],'ContactId':_0x5422d8[_0x38e6('0x22')][_0xcebbdc]['ContactId'],'ListId':_0x5422d8['actions'][_0xcebbdc][_0x38e6('0xd6')],'VoiceQueueId':_0x5422d8['actions'][_0xcebbdc][_0x38e6('0xd7')]||undefined,'CampaignId':_0x5422d8[_0x38e6('0x22')][_0xcebbdc][_0x38e6('0xd8')]||undefined})[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x1e7')));delete _0x5422d8[_0x38e6('0x22')][_0xcebbdc];});}else{loggerBooked[_0x38e6('0x7c')](_0x38e6('0x1e8'),JSON[_0x38e6('0x47')](_0x41e375['queueStatusComplete']),_0x38e6('0x1e9'),_0x41e375[_0x38e6('0x3d')]);_0x5422d8[_0x38e6('0xb3')](_0x41e375);_0x5422d8[_0x38e6('0xc2')]({'active':![],'ContactId':_0x5422d8['actions'][_0xcebbdc][_0x38e6('0xd5')],'ListId':_0x5422d8[_0x38e6('0x22')][_0xcebbdc]['ListId'],'VoiceQueueId':_0x5422d8[_0x38e6('0x22')][_0xcebbdc][_0x38e6('0xd7')]||undefined,'CampaignId':_0x5422d8[_0x38e6('0x22')][_0xcebbdc][_0x38e6('0xd8')]||undefined})['catch'](loggerCatch(_0x38e6('0x1e7')));delete _0x5422d8[_0x38e6('0x22')][_0xcebbdc];}}else{return _0x5422d8[_0x38e6('0x1ea')](_0x41e375,_0x3f936c);}}else{if(getDiff(_0x3f936c['scheduledat'])<_0x41e375[_0x38e6('0x1eb')]*0x3c){if(_0x3f936c['Agent']&&!_0x3f936c[_0x38e6('0x1ec')][_0x38e6('0x1ed')]){_0x5422d8[_0x38e6('0x93')][_0x38e6('0x12e')](_0x3f936c['id'])[_0x38e6('0x1a')](function(){_0x5422d8['updateOriginated'](_0x41e375);});}else{_0x5422d8['unlockContact']({'active':![]},_0x3f936c['id'],0x1)[_0x38e6('0x1a')](function(){_0x5422d8[_0x38e6('0xb3')](_0x41e375);});}}else{_0x41e375[_0x38e6('0x1ee')]+=0x1;_0x5422d8[_0x38e6('0xb3')](_0x41e375);if(_0x41e375['dialRecallInQueue']){_0x5422d8[_0x38e6('0xc2')]({'active':![],'recallme':![],'UserId':null,'ContactId':_0x3f936c[_0x38e6('0xd5')],'ListId':_0x3f936c['ListId'],'VoiceQueueId':_0x3f936c[_0x38e6('0xd7')]||undefined,'CampaignId':_0x3f936c[_0x38e6('0xd8')]||undefined})['catch'](loggerCatch(_0x38e6('0x1ef')));_0x5422d8[_0x38e6('0xcd')](createObjHistory(_0x41e375,_0x3f936c,_0x38e6('0x1f0'),0x17,'RecallInQueue'))[_0x38e6('0xb9')](loggerCatch(_0x38e6('0x1f1')));}else{_0x5422d8[_0x38e6('0xea')](createObjHistory(_0x41e375,_0x3f936c,_0x38e6('0x1f2'),0x16,_0x38e6('0x1f3')),_0x38e6('0x1f4'),_0x38e6('0x1f5'));}}}}else{_0x41e375[_0x38e6('0x5f')]+=0x1;_0x5422d8[_0x38e6('0xea')](createObjHistory(_0x41e375,_0x3f936c,_0x38e6('0x1f6'),0xd,'Blacklist'),_0x38e6('0x1f7'),_0x38e6('0x1f8'));throw _0x38e6('0x1f9');}};};Dialer[_0x38e6('0x17')][_0x38e6('0x1fa')]=function(_0x5007cc){var _0x4cf107=this;var _0x4e385b=_0x5007cc[_0x38e6('0x1fb')]-_0x5007cc[_0x38e6('0x70')]-_0x5007cc[_0x38e6('0xc6')];emitCampaignSummary(_0x5007cc);if(_0x4e385b>0x0){if(_0x4e385b>this[_0x38e6('0x20')]){_0x4e385b=this['maxNumberOriginate'];}_0x5007cc[_0x38e6('0xc6')]+=_0x4e385b;this['getContactDialerIvr'](_0x5007cc['id'],_0x4e385b,_0x5007cc['dialOrderByScheduledAt'],_0x5007cc)[_0x38e6('0xbc')](function(_0x1dad68){_0x5007cc[_0x38e6('0xc6')]-=_0x4e385b;_0x5007cc[_0x38e6('0xc6')]=_0x5007cc[_0x38e6('0xc6')]>0x0?_0x5007cc['temp']:0x0;if(!checkContactEmpty(_0x1dad68)){_0x5007cc['message']='AVAILABLE_CONTACTS_FINISHED';logger['info']('[getContactCampaign2][Empty]'+_0x5007cc[_0x38e6('0x3d')]);}else{_0x5007cc['originated']+=_0x1dad68[_0x38e6('0x132')];_0x5007cc[_0x38e6('0x3b')]=_0x38e6('0x1fc');for(var _0x560016=0x0;_0x560016<_0x1dad68[_0x38e6('0x132')];_0x560016+=0x1){_0x5007cc['ivrTotalCallsDays']+=0x1;if(_[_0x38e6('0xaf')](_0x1dad68[_0x560016])||_[_0x38e6('0xaf')](_0x1dad68[_0x560016]['Contact'])||_[_0x38e6('0xaf')](_0x1dad68[_0x560016][_0x38e6('0x167')][_0x38e6('0x168')])){_0x4cf107['emptyContact'](_0x38e6('0x1fd'),_0x5007cc,_0x1dad68[_0x560016]);}else{_0x4cf107[_0x38e6('0xbd')](_[_0x38e6('0xd4')](_0x1dad68[_0x560016],[_0x38e6('0xd8'),_0x38e6('0x1fe')]))[_0x38e6('0xbc')](_0x4cf107[_0x38e6('0x1e2')](_0x5007cc,_0x1dad68[_0x560016]))[_0x38e6('0xb9')](_0x4cf107[_0x38e6('0xd1')](_0x38e6('0x1ff'),_0x5007cc));}}}})['catch'](loggerGetContactDialer('[getContactCampaign2]',_0x5007cc,_0x4e385b));}};Dialer[_0x38e6('0x17')]['handlePower']=function(_0xb5e369,_0x2d5885){var _0x19f80b=this;var _0x4b1870=[];var _0x1f81a3=_0x2d5885>=0x1?_0x2d5885:0x1;if(_0xb5e369['dialMethod']==='booked'){_0x1f81a3=0x1;}var _0xbe0fc4=Math[_0x38e6('0x1c1')](_0xb5e369[_0x38e6('0x4e')]*_0x1f81a3)-_0xb5e369['originated']-_0xb5e369[_0x38e6('0xc6')];emitVoiceQueueSummary(_0xb5e369);if(_0xb5e369[_0x38e6('0x200')]>0x0){var _0x12ec3c=_0xb5e369[_0x38e6('0x200')]-_0xb5e369[_0x38e6('0x70')]-_0xb5e369[_0x38e6('0xa3')]-_0xb5e369[_0x38e6('0xc6')]-_0xb5e369[_0x38e6('0x50')];if(_0xbe0fc4>_0x12ec3c){_0xbe0fc4=_0x12ec3c;}}if(_0xbe0fc4>0x0){if(_0xb5e369[_0x38e6('0x15b')]===_0x38e6('0x157')){_0xbe0fc4=0x1;}if(_0xbe0fc4>this['maxNumberOriginate']){_0xbe0fc4=this['maxNumberOriginate'];}_0xb5e369['temp']+=_0xbe0fc4;for(var _0xd31463 in this[_0x38e6('0x1e')]){if(typeof this[_0x38e6('0x1e')][_0xd31463]!==_0x38e6('0x9b')){if(this['agents'][_0xd31463]['state']===_0x38e6('0x201')&&this[_0x38e6('0x1e')][_0xd31463][_0x38e6('0xb1')]===_0x38e6('0x202')){_0x4b1870[_0x38e6('0x128')](this[_0x38e6('0x1e')][_0xd31463]['id']);}}}this['getContactDialer'](_0xb5e369['id'],_0x4b1870,_0xbe0fc4,_0xb5e369[_0x38e6('0x203')],_0xb5e369)[_0x38e6('0xbc')](function(_0x10d19d){_0xb5e369[_0x38e6('0xc6')]-=_0xbe0fc4;_0xb5e369[_0x38e6('0xc6')]=_0xb5e369[_0x38e6('0xc6')]>0x0?_0xb5e369[_0x38e6('0xc6')]:0x0;if(!checkContactEmpty(_0x10d19d)){_0x19f80b[_0x38e6('0xb8')](_0xb5e369)[_0x38e6('0xbc')](sendMessageReschedule(_0xb5e369))['catch'](loggerCatch(_0x38e6('0xba')));}else{_0xb5e369[_0x38e6('0x70')]+=_0x10d19d[_0x38e6('0x132')];_0xb5e369[_0x38e6('0x3b')]=_0xb5e369[_0x38e6('0x15b')]===_0x38e6('0x157')?'ACTIVE':_0x38e6('0x1fc');for(var _0x2a6b49=0x0;_0x2a6b49<_0x10d19d[_0x38e6('0x132')];_0x2a6b49+=0x1){if(_['isNil'](_0x10d19d[_0x2a6b49])||_[_0x38e6('0xaf')](_0x10d19d[_0x2a6b49][_0x38e6('0x167')])||_[_0x38e6('0xaf')](_0x10d19d[_0x2a6b49][_0x38e6('0x167')][_0x38e6('0x168')])){_0x19f80b[_0x38e6('0xd2')](_0x38e6('0x1fd'),_0xb5e369,_0x10d19d[_0x2a6b49]);}else{_0x19f80b[_0x38e6('0xbb')](_[_0x38e6('0xd4')](_0x10d19d[_0x2a6b49],[_0x38e6('0xd7'),_0x38e6('0x1fe')]))[_0x38e6('0xbc')](_0x19f80b[_0x38e6('0x1e2')](_0xb5e369,_0x10d19d[_0x2a6b49]))[_0x38e6('0xb9')](_0x19f80b[_0x38e6('0xd1')](_0x38e6('0x1fd'),_0xb5e369));}}}})[_0x38e6('0xb9')](loggerGetContactDialer(_0x38e6('0x204'),_0xb5e369,_0xbe0fc4));}};Dialer[_0x38e6('0x17')][_0x38e6('0x90')]=function(_0x20f9a7){if(_0x20f9a7[_0x38e6('0x200')]>0x0){var _0x5e4fc7=_0x20f9a7[_0x38e6('0x200')]-_0x20f9a7['originated']-_0x20f9a7['talking'];if(_0x5e4fc7>0x0){this[_0x38e6('0x205')](_0x20f9a7);}else{loggerPredictiveCalls[_0x38e6('0x7c')](_0x38e6('0x206'));}}else{this['tryOriginatePredictive'](_0x20f9a7);}};Dialer[_0x38e6('0x17')][_0x38e6('0x205')]=function(_0x103dcd){var _0x478b5f=this;var _0x398c95=[];_0x103dcd[_0x38e6('0x70')]+=0x1;for(var _0x28a3a4 in this[_0x38e6('0x1e')]){if(typeof this[_0x38e6('0x1e')][_0x28a3a4]!==_0x38e6('0x9b')){if(this[_0x38e6('0x1e')][_0x28a3a4]['state']===_0x38e6('0x201')&&this[_0x38e6('0x1e')][_0x28a3a4][_0x38e6('0xb1')]===_0x38e6('0x202')){_0x398c95[_0x38e6('0x128')](this[_0x38e6('0x1e')][_0x28a3a4]['id']);}}}this[_0x38e6('0xc5')](_0x103dcd['id'],_0x398c95,0x1,_0x103dcd[_0x38e6('0x203')],_0x103dcd)[_0x38e6('0xbc')](function(_0x21b45e){if(!checkContactEmpty(_0x21b45e)){checkContactLowerLimitOriginate(_0x103dcd,0x1,0x0);_0x478b5f[_0x38e6('0xb8')](_0x103dcd)['then'](sendMessageReschedule(_0x103dcd))[_0x38e6('0xb9')](loggerCatch(_0x38e6('0xba')));}else{_0x103dcd[_0x38e6('0x3b')]=_0x38e6('0x1fc');if(_[_0x38e6('0xaf')](_0x21b45e[0x0])||_['isNil'](_0x21b45e[0x0][_0x38e6('0x167')])||_[_0x38e6('0xaf')](_0x21b45e[0x0]['Contact'][_0x38e6('0x168')])){_0x478b5f[_0x38e6('0xd2')](_0x38e6('0x1fd'),_0x103dcd,_0x21b45e[0x0]);}else{_0x478b5f[_0x38e6('0xbb')](_['pick'](_0x21b45e[0x0],[_0x38e6('0xd7'),_0x38e6('0x1fe')]))['then'](_0x478b5f[_0x38e6('0x1e2')](_0x103dcd,_0x21b45e[0x0]))[_0x38e6('0xb9')](_0x478b5f['loggerHandler']('[actionOriginatePredictive]\x20',_0x103dcd));}}})[_0x38e6('0xb9')](loggerGetContactDialer(_0x38e6('0x207'),_0x103dcd,0x1));emitVoiceQueueSummary(_0x103dcd);};Dialer[_0x38e6('0x17')][_0x38e6('0x1d6')]=function(_0xa55720,_0xebb2ba,_0x20c2f5,_0x2ba291,_0x15b5e4,_0xb0a5c1){loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x208'));loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x209'),_0xa55720);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x20a'),_0xebb2ba);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x20b'),_0x20c2f5);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x20c'),_0x2ba291);loggerPredictive['info'](_0x38e6('0x20d'),_0x15b5e4);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x84'));return new BPromise(function(_0x3ba44a,_0x24e1c2){if(_0xa55720<=0x0||isNaN(_0xa55720)){return _0x24e1c2(msgResponse('[abandonmentRate]',_0x38e6('0x46'),_0x38e6('0x20e')+_0xa55720));}if(_0x20c2f5<=0x0||isNaN(_0x20c2f5)){return _0x24e1c2(msgResponse('[abandonmentRate]',_0x38e6('0x46'),_0x38e6('0x20f')+_0x20c2f5));}if(_0x2ba291<=0x0||isNaN(_0x2ba291)){return _0x24e1c2(msgResponse(_0x38e6('0x210'),'Error','p\x20=\x20'+_0x2ba291));}if(_0xebb2ba<=0x0||isNaN(_0xebb2ba)){return _0x24e1c2(msgResponse('[abandonmentRate]',_0x38e6('0x46'),_0x38e6('0x211')+_0xebb2ba));}if(_0x15b5e4<=0x0||isNaN(_0x15b5e4)){return _0x24e1c2(msgResponse(_0x38e6('0x210'),_0x38e6('0x46'),'Amax\x20=\x20'+_0x15b5e4));}_0xb0a5c1=_0xb0a5c1||0x0;var _0x30b947=0x1/_0x20c2f5;var _0x2f7509=0x0;var _0x13a763=0x0;var _0x14633a=0x0;var _0x1d1d21=0x0;for(var _0x50239e=0x0;_0x14633a<_0x15b5e4;_0x50239e+=0x1){_0x13a763=_0x50239e/_0xebb2ba;_0x2f7509=(_0x2ba291*_0x13a763+_0xb0a5c1)/_0x30b947;_0x14633a=erlangb(_0x2f7509,_0xa55720);_0x1d1d21=_0x2f7509/_0xa55720*(0x1-erlangb(_0x2f7509,_0xa55720));}return _0x3ba44a({'erlangCalls':_0x50239e,'erlangCallToSecond':_0xebb2ba/_0x50239e,'erlangAbandonmentRate':_0x14633a,'erlangBusyFactor':_0x1d1d21});});};Dialer[_0x38e6('0x17')][_0x38e6('0x1d8')]=function(_0x58da97,_0x485d71,_0x1655eb,_0x5befd3,_0x47447d,_0x41b0f2){loggerPredictive[_0x38e6('0x7c')]('----\x20Agent\x20Busy\x20Factor\x20----');loggerPredictive[_0x38e6('0x7c')]('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',_0x58da97);loggerPredictive['info'](_0x38e6('0x20a'),_0x485d71);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x20b'),_0x1655eb);loggerPredictive[_0x38e6('0x7c')]('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',_0x5befd3);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x212'),_0x47447d);loggerPredictive[_0x38e6('0x7c')](_0x38e6('0x84'));return new BPromise(function(_0xfee851,_0x20ac57){if(_0x58da97<=0x0||isNaN(_0x58da97)){return _0x20ac57(msgResponse('[busyFactor]',_0x38e6('0x46'),'m\x20=\x20'+_0x58da97));}if(_0x1655eb<=0x0||isNaN(_0x1655eb)){return _0x20ac57(msgResponse(_0x38e6('0x213'),'Error',_0x38e6('0x20f')+_0x1655eb));}if(_0x5befd3<=0x0||isNaN(_0x5befd3)){return _0x20ac57(msgResponse(_0x38e6('0x213'),_0x38e6('0x46'),_0x38e6('0x214')+_0x5befd3));}if(_0x485d71<=0x0||isNaN(_0x485d71)){return _0x20ac57(msgResponse(_0x38e6('0x213'),_0x38e6('0x46'),_0x38e6('0x211')+_0x485d71));}if(_0x47447d<=0x0||isNaN(_0x47447d)){return _0x20ac57(msgResponse(_0x38e6('0x213'),'Error','Umin\x20=\x20'+_0x47447d));}_0x41b0f2=_0x41b0f2||0x0;var _0x1829df=0x1/_0x1655eb;var _0x232d2f=0x0;var _0x20bc2e=0x0;var _0x572bd1=0x0;var _0x5d2c43=0x0;for(var _0x4b775e=0x0;_0x5d2c43<_0x47447d;_0x4b775e+=0x1){_0x20bc2e=_0x4b775e/_0x485d71;_0x232d2f=(_0x5befd3*_0x20bc2e+_0x41b0f2)/_0x1829df;_0x572bd1=erlangb(_0x232d2f,_0x58da97);_0x5d2c43=_0x232d2f/_0x58da97*(0x1-erlangb(_0x232d2f,_0x58da97));}return _0xfee851({'erlangCalls':_0x4b775e,'erlangCallToSecond':_0x485d71/_0x4b775e,'erlangAbandonmentRate':_0x572bd1,'erlangBusyFactor':_0x5d2c43});});};module['exports']=Dialer;
\ No newline at end of file
+var _0x8cc8=['RESCHEDULED_CONTACTS','[getContactDialer2][ReScheduled]','AVAILABLE_CONTACTS_FINISHED','[getContactDialer2][Empty]','sendMessageOneNotActive','available','[syncQueueSummary]\x20Campaign\x20Queue:\x20','is\x20not\x20active','IS_DISACTIVED','is\x20disactive','state','statedesc','endtime','starttime','clearZombieChannels','uniqueId','[uniqueid]','isNil','Action','status','channel','No\x20such\x20channel','updateOriginated','queue','[Dialer][checkChannel]','resolve','countReScheduled','catch','[countReScheduled]\x20','checkIsBlackList','then','checkIsBlackListIvr','[checkIsBlackListIvr]\x20','averageHandleTime','rescheduleContact','unlockContact','getContactDialer','temp','[getContactDialer]\x20','getContactDialerIvr','[getContactDialerIvr]\x20','getVoiceQueueRtPauses','[getVoiceQueueRtPauses]\x20','moveContactManagedDialer','createHistory','loggerHandler','saveInDb','ContactId','ListId','UserId','VoiceQueueId','CampaignId','[emptyContact][createHistory]','[emptyContact]','isSuccess','Success','isTrunkReachable','SIP/%s','reachable','unmonitored','variable','dialAMDActive','value','HANGUP','membername','AMD','custom:amd','amd','[syncHangupInAMD]','MACHINE','Machine','countmachineretry','buildObj','[syncAgentComplete][createHistory][0]','countbusyretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countagentrejectretry','dialGlobalMaxRetry','stateGlobal','reason19\x20machine....','dialMachineMaxRetry','createStateFinal','reason\x2019\x20machine....','add','dialMachineRetryFrequency','minutes','YYYY-MM-DD\x20HH:mm:ss','uniqueid','HangupInAMD','[syncHangupInAMDIvr][createHistory]','[syncHangupInAMDIvr]','countcongestionretry','countabandonedretry','[rescheduleContact][Machine]','ivrAnswerCallsDay','[syncHangupIvr][createHistory]','dialQueueProject','AnswerAGI','AGI','cause-txt','Unknow','reason','agent','agiafterat','dialAgiAfterHangupAgent','[syncAgentComplete][createHistory]','[syncAgentComplete]','queueCallerAbandonCreateState','[syncQueueCallerAbandon]\x20[Drop]','droptime','responsetime','dialQueueTimeout','predictiveIntervalDroppedCallsTimeout','Drop','TIMEOUT','dialQueueProject2','countglobal','dialDropMaxRetry','[rescheduleContact][Drop]','calleridname','calleridnum','[syncAgentComplete][createHistory][10]','outboundDropCallsDayCallersExit','Abandoned','dropreason','CALLEREXIT','dialAbandonedMaxRetry','[rescheduleContact][Abandoned]','[syncAgentComplete][createHistory][11]','actionid','strategy','locked','paused','stateinterface','push','pick','idHopper','[unlockQueueStatus][undefined]','queueStatusComplete','[booked][unlockQueueStatus]','syncQueueStatusComplete','[unlock][syncQueueStatusComplete]','_rr','unlockRR','[booked][RR]','contactAgent-idHopper:\x20','run','[Catch][Preview][syncQueueStatusComplete]','[booked][RR][finaly]','Agent:\x20','[booked][unlock]','[unlock2][syncQueueStatusComplete]','[booked][unlock3]','[unlock3][syncQueueStatusComplete]','syncCampaigns','TrunkBackup','TRUNK_IS_NOT_REACHABLE','\x20trunk\x20is\x20not\x20reachable','checkIfTime','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','interval','indexOf','true','content','all','INTERVAL_IS_OVERTIME','[ifTime][promiseAll]','Global:\x20','\x20Interval\x20is\x20overtime:\x20','checkDialMethod','handlePower','dialPowerLevel','predictive','Queue','launchHandleIvr','handleIvr','checkIsTrunkReachable','dialGlobalInterval','dialTimezone','[syncCampaigns]','\x5cw{0,','pow','replace','random','match','actionOriginate','object','originate','voiceQueue\x20is\x20undefine','Contact','phone','getCaller','\x22agi://%s/square,%s\x22','NONE','dialQueueOptions','ACTIVE','xcally-motion-dialer','XMD-AMDINITIALSILENCE','dialAMDInitialSilence','XMD-AMDGREETING','dialAMDGreeting','XMD-AMDAFTERGREETINGSILENCE','dialAMDAfterGreetingSilence','XMD-AMDTOTALANALYSISTIME','dialAMDTotalAnalysisTime','XMD-AMDMINWORDLENGTH','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','XMD-AMDSILENCETHRESHOLD','dialAMDSilenceThreshold','XMD-AMDMAXIMUMWORDLENGTH','tags','%s%s','XMD-','toUpper','callerid','dialRandomLastDigitCallerIdNumber','XMD-ORIGINATECALLERIDNAME','originatecalleridname','XMD-ORIGINATECALLERIDNUM','SIP/%s/%s%s','trim','dialCutDigit','substring','from-sip','dialOriginateTimeout','[originateError]:\x20%s','OriginateError','[originate][error]','originate\x20action\x20Error','getQueue','callProgressDetecting','dialNoAnswerRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','[rescheduleContact]\x20[Busy]','dialCongestionMaxRetry','dialCongestionRetryFrequency','[rescheduleContact]\x20[Congestion]','dialNoSuchNumberRetryFrequency','[rescheduleContact][NoSuchNumber]','dialDropRetryFrequency','dialAbandonedRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','[rescheduleContact][AgentReject]','[callProgressDetecting]','entity\x20is\x20undefine','evt\x20is\x20undefine','NoSuchNumber','nosuchnumber','checkRetriveMax','dialNoSuchNumberMaxRetry','reason\x200\x20no\x20such\x20number....','NoAnswer','custom:agentnoanswer','noanswer','[syncAgentComplete][createHistory][3]','Busy','busy','[syncAgentComplete][createHistory][5]','reason\x205\x20busy','Congestion','reason\x208\x20congestion','outboundAbandonedCallsDay','reason\x2011\x20abandoned','outboundRejectCallsDay','AgentReject','custom:agentreject','agentreject','[syncAgentComplete][createHistory][20]','reason\x2020\x20agentreject','[syncAgentComplete][createHistory][?]','Global','[moveContactManagedDialer][0]','contact\x20not\x20moved','dialPredictiveOptimizationPercentage','round','predictiveIntervalAvailable','predictiveIntervalMaxThreshold','floor','predictiveIntervalHitRate','[startMethodPredictive][StartProgressive]','check\x20predictive\x20is\x20not\x20undefine','[stopMethodPredictive][ReStartProgressive][ExceededDropDay]','Dropped\x20calls\x20day','predictiveIntervalErlangCallsDroppedCalls','dropRate','[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]','Max\x20Drop\x20','Drop\x20in\x20this\x20interval','started\x20in\x20predictive\x20at','getDataPredictive','startMethodPredictive','Predictive\x20after\x20first\x20interval','dialPredictiveInterval','recalculate\x20predictive\x20at','Predictive\x20for\x20every\x20interval','switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',')\x20are\x20less\x20than\x20threshold\x20(',')\x20are\x20more\x20than\x20threshold\x20(','dialPredictiveOptimization','abandonmentRate','agentBusyFactor','busyFactor','[getDataPredictive]','Unknown\x20Predictive','check\x20failure','getDataPredictiveOld','outboundQueuePauses','[CatchErlangB]','one\x20call\x20every:','[handlePredictive]','fail\x20to\x20scheduled\x20calls','checkContactBlack','[booked][checkContactBlack]','Queue:\x20','queuestatus','[unlockOriginate][syncQueueStatusComplete]','[booked][checkContactBlack][else]','Agent','voicePause','dialRecallInQueue','[rescheduleContact][dialRecallInQueue]','RECALLINQUEUE','RecallInQueue','[Originate][HistoryDialRecallInQueue][historyCatch]','RECALLFAILEDTIMEOUT','[Originate][HistoryRecallClose][historyCatch]','[Originate][historyBlacklist]','[Originate][MoveBlacklist]','inBlackList','[getContactCampaign2][Empty]','RUNNING','ivrTotalCallsDays','emptyContact','[actionOriginate]\x20','Contact.phone','[actionOriginateIvr]\x20','dialLimitQueue','not_inuse','tryOriginatePredictive','dialOrderByScheduledAt','[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','Amax:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[abandonmentRate]','Ts\x20=\x20','p\x20=\x20','Amax\x20=\x20','----\x20Agent\x20Busy\x20Factor\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','[busyFactor]','m\x20=\x20','interval\x20=\x20','Umin\x20=\x20','exports','util','lodash','bluebird','uuid','moment','md5','ioredis','../preview/util/util','../../../config/environment/','../../../config/logger','dialer','booked','predictiveCalls','syncQueueSummary','redis','defaults','localhost','../rpc/cmHopper','../rpc/cmHopperHistory','../rpc/cmHopperBlack','./action','./history','./final','./agentComplete','./queueCallerAbandon','./hangup','env','XCALLY_IP_AGI','rrmemory','roundrobin','prototype','enqueue','tail','finally','sequence','voiceQueues','campaigns','agents','trunks','maxNumberOriginate','actions','contactsId','optionPredictive','startPredictive','startProgressive','ivrOriginated','queueBooked','queueBookedRR','syncAgentConnect','bind','queuecallerabandon','syncQueueCallerAbandon','originateresponse','syncOriginateResponse','agentcomplete','syncAgentComplete','custom:queuesummary','hangup','syncHangup','newexten','syncNewExten','varset','syncVarSet','syncQueueMember','queuestatuscomplete','loopCampaigns','loopClearZombieChannels','isUndefined','AGENTS_NOT_LOGGED','name','\x20AGENTS\x20NOT\x20LOGGED','message','NOT_ACTIVE','\x20NOT\x20Active','Interval','INTERVAL_IS_NULL','\x20INTERVAL_IS_NULL','Intervals','isEmpty','[ifTime][Action]','Error','stringify','milliseconds','emit','outbound','answered','loggedIn','pTalking','sumBillable','sumDuration','talking','type','unmanaged','abandoned','waiting','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialPrefix','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalErlangCalls','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','originated','erlangCalls','erlangCallToSecond','erlangBusyFactor','Trunk','active','format','voice:queue:%s','voice_queue:save','ivr','campaign:ivr:%s','campaign:save','info','-----\x20Stats\x20Predictive\x20---','Total\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','predictiveIntervalTotalCalls','Answered\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','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','AVG\x20Hold\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','erlangAbandonmentRate','Agent\x20Busy\x20Factor:\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','merge','seconds','clearing\x20variable\x20start\x20progressive','handlePredictive','clearing\x20variable\x20handle\x20predictive','preview','string','\x22%s\x22\x20<%s>','\x22\x22\x20<>','error','inspect','stack','length','undefined','[decremetOriginate]\x20is\x20null\x20or\x20undefined','contactsRescheduled'];(function(_0x214f8b,_0xde2ef6){var _0x6bb2a3=function(_0x4623ae){while(--_0x4623ae){_0x214f8b['push'](_0x214f8b['shift']());}};_0x6bb2a3(++_0xde2ef6);}(_0x8cc8,0x177));var _0x88cc=function(_0x33f367,_0x31e422){_0x33f367=_0x33f367-0x0;var _0xc7970d=_0x8cc8[_0x33f367];return _0xc7970d;};'use strict';var util=require(_0x88cc('0x0'));var _=require(_0x88cc('0x1'));var BPromise=require(_0x88cc('0x2'));var uuid=require(_0x88cc('0x3'));var moment=require(_0x88cc('0x4'));var rr=require('rr');var md5=require(_0x88cc('0x5'));var Redis=require(_0x88cc('0x6'));var ut=require(_0x88cc('0x7'));var config=require(_0x88cc('0x8'));var logger=require(_0x88cc('0x9'))(_0x88cc('0xa'));var loggerBooked=require(_0x88cc('0x9'))(_0x88cc('0xb'));var loggerPredictive=require('../../../config/logger')('predictive');var loggerPredictiveCalls=require(_0x88cc('0x9'))(_0x88cc('0xc'));var loggerSyncQueueSummary=require(_0x88cc('0x9'))(_0x88cc('0xd'));var ami=require('../ami');config[_0x88cc('0xe')]=_[_0x88cc('0xf')](config['redis'],{'host':_0x88cc('0x10'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x88cc('0xe')]));var cmHopper=require(_0x88cc('0x11'));var cmHopperHistory=require(_0x88cc('0x12'));var cmHopperBlack=require(_0x88cc('0x13'));var voiceQueueRt=require('../rpc/voiceQueueRt');var Action=require(_0x88cc('0x14'));var History=require(_0x88cc('0x15'));var Final=require(_0x88cc('0x16'));var AgentComplete=require(_0x88cc('0x17'));var QueueCallerAbandon=require(_0x88cc('0x18'));var Hangup=require(_0x88cc('0x19'));var ipAgi=process[_0x88cc('0x1a')][_0x88cc('0x1b')]||'127.0.0.1';var strategy={'rrmemory':_0x88cc('0x1c'),'roundrobin':_0x88cc('0x1d')};var Sequence=function(){};Sequence[_0x88cc('0x1e')][_0x88cc('0x1f')]=function(_0x1291a6){this[_0x88cc('0x20')]=this['tail']?this[_0x88cc('0x20')][_0x88cc('0x21')](_0x1291a6):_0x1291a6();};function Dialer(_0x1a42ab,_0x2625db){this[_0x88cc('0x22')]=new Sequence();this['preview']=_0x2625db;this[_0x88cc('0x23')]=_0x1a42ab[_0x88cc('0x23')];this[_0x88cc('0x24')]=_0x1a42ab[_0x88cc('0x24')];this[_0x88cc('0x25')]=_0x1a42ab['agents'];this[_0x88cc('0x26')]=_0x1a42ab[_0x88cc('0x26')];this['maxNumberOriginate']=config[_0x88cc('0x27')]||0x2;this['channels']={};this[_0x88cc('0x28')]={};this[_0x88cc('0x29')]={};this['uniqueId']={};this[_0x88cc('0x2a')]={};this[_0x88cc('0x2b')]={};this[_0x88cc('0x2c')]={};this[_0x88cc('0x2d')]={};this[_0x88cc('0x2e')]={};this[_0x88cc('0x2f')]={};ami['on']('agentconnect',this[_0x88cc('0x30')][_0x88cc('0x31')](this));ami['on'](_0x88cc('0x32'),this[_0x88cc('0x33')][_0x88cc('0x31')](this));ami['on'](_0x88cc('0x34'),this[_0x88cc('0x35')][_0x88cc('0x31')](this));ami['on'](_0x88cc('0x36'),this[_0x88cc('0x37')][_0x88cc('0x31')](this));ami['on'](_0x88cc('0x38'),this[_0x88cc('0xd')]['bind'](this));ami['on'](_0x88cc('0x39'),this[_0x88cc('0x3a')][_0x88cc('0x31')](this));ami['on'](_0x88cc('0x3b'),this[_0x88cc('0x3c')][_0x88cc('0x31')](this));ami['on'](_0x88cc('0x3d'),this[_0x88cc('0x3e')]['bind'](this));ami['on']('queuemember',this[_0x88cc('0x3f')][_0x88cc('0x31')](this));ami['on'](_0x88cc('0x40'),this['syncQueueStatusComplete']['bind'](this));this[_0x88cc('0x41')]();this[_0x88cc('0x42')]();}function isNotNull(_0x5511b9){return _0x5511b9!==null&&!_[_0x88cc('0x43')](_0x5511b9);}function checkIsLoggedIn(_0x17d432,_0x10248e){return function(){if(_0x10248e<=0x0){_0x17d432['message']=_0x88cc('0x44');throw _0x17d432[_0x88cc('0x45')]+_0x88cc('0x46');}};}function isActive(_0x59b4c5){return _0x59b4c5;}function checkIsActive(_0x2a9de4,_0x1ffc13){return function(){if(!isActive(_0x1ffc13)){_0x2a9de4[_0x88cc('0x47')]=_0x88cc('0x48');throw _0x2a9de4[_0x88cc('0x45')]+_0x88cc('0x49');}};}function checkInterval(_0x5628d9){return function(){if(!isNotNull(_0x5628d9[_0x88cc('0x4a')])){_0x5628d9[_0x88cc('0x47')]=_0x88cc('0x4b');throw _0x5628d9[_0x88cc('0x45')]+_0x88cc('0x4c');}if(!isNotNull(_0x5628d9[_0x88cc('0x4a')][_0x88cc('0x4d')])){_0x5628d9['message']='INTERVAL_IS_NULL';throw _0x5628d9[_0x88cc('0x45')]+_0x88cc('0x4c');}if(!isNotNull(_[_0x88cc('0x4e')](_0x5628d9[_0x88cc('0x4a')][_0x88cc('0x4d')]))){_0x5628d9['message']=_0x88cc('0x4b');throw _0x5628d9[_0x88cc('0x45')]+_0x88cc('0x4c');}};}function msgResponse(_0x3baf9f,_0x2bb05b,_0x43bac6){return{'action':_0x3baf9f,'response':_0x2bb05b,'message':_0x43bac6,'stack':_0x43bac6};}function myreject(_0x263ca2){return function(_0x46fb4b){return _0x263ca2(msgResponse(_0x88cc('0x4f'),_0x88cc('0x50'),JSON[_0x88cc('0x51')](_0x46fb4b)));};}function getSeconds(_0x36dc7e,_0x526193){var _0x199cde=moment(_0x36dc7e)[_0x88cc('0x52')](0x0);var _0x52e231=moment(_0x526193)[_0x88cc('0x52')](0x0);return _0x199cde['diff'](_0x52e231,'seconds');}function emit(_0x5278f2,_0x2beb74,_0x4b2b85){io['to'](_0x5278f2)[_0x88cc('0x53')](_0x2beb74,_0x4b2b85);}function emitVoiceQueueSummary(_0x1fb2ca){if(_0x1fb2ca['type']===_0x88cc('0x54')){var _0x57ecf7={'id':_0x1fb2ca['id'],'name':_0x1fb2ca[_0x88cc('0x45')],'strategy':_0x1fb2ca['strategy'],'answered':_0x1fb2ca[_0x88cc('0x55')],'available':_0x1fb2ca['available'],'loggedIn':_0x1fb2ca[_0x88cc('0x56')],'pTalking':_0x1fb2ca[_0x88cc('0x57')],'sumBillable':_0x1fb2ca[_0x88cc('0x58')],'sumDuration':_0x1fb2ca[_0x88cc('0x59')],'sumHoldTime':_0x1fb2ca['sumHoldTime']||0x0,'talking':_0x1fb2ca[_0x88cc('0x5a')],'total':_0x1fb2ca['total'],'type':_0x1fb2ca[_0x88cc('0x5b')],'unmanaged':_0x1fb2ca[_0x88cc('0x5c')],'abandoned':_0x1fb2ca[_0x88cc('0x5d')],'waiting':_0x1fb2ca[_0x88cc('0x5e')],'loggedInDb':_0x1fb2ca[_0x88cc('0x5f')],'dialActive':_0x1fb2ca[_0x88cc('0x60')],'dialMethod':_0x1fb2ca[_0x88cc('0x61')],'dialOriginateCallerIdName':_0x1fb2ca[_0x88cc('0x62')],'dialOriginateCallerIdNumber':_0x1fb2ca[_0x88cc('0x63')],'dialOriginateTimeout':_0x1fb2ca['dialOriginateTimeout'],'dialPrefix':_0x1fb2ca[_0x88cc('0x64')],'outboundAnswerAgiCallsDay':_0x1fb2ca[_0x88cc('0x65')],'outboundAnswerCallsDay':_0x1fb2ca[_0x88cc('0x66')],'outboundBlacklistCallsDay':_0x1fb2ca['outboundBlacklistCallsDay'],'outboundBusyCallsDay':_0x1fb2ca[_0x88cc('0x67')],'outboundCongestionCallsDay':_0x1fb2ca[_0x88cc('0x68')],'outboundDropCallsDayACS':_0x1fb2ca[_0x88cc('0x69')],'outboundDropCallsDayCallersExit':_0x1fb2ca['outboundDropCallsDayCallersExit'],'outboundDropCallsDayTimeout':_0x1fb2ca[_0x88cc('0x6a')],'outboundNoAnswerCallsDay':_0x1fb2ca[_0x88cc('0x6b')],'outboundNoSuchCallsDay':_0x1fb2ca[_0x88cc('0x6c')],'outboundOriginateFailureCallsDay':_0x1fb2ca[_0x88cc('0x6d')],'outboundReCallsDay':_0x1fb2ca[_0x88cc('0x6e')],'outboundRejectCallsDay':_0x1fb2ca['outboundRejectCallsDay'],'outboundUnknownCallsDay':_0x1fb2ca[_0x88cc('0x6f')],'predictiveIntervalAnsweredCalls':_0x1fb2ca[_0x88cc('0x70')],'predictiveIntervalAvgHoldtime':_0x1fb2ca[_0x88cc('0x71')],'predictiveIntervalAvgTalktime':_0x1fb2ca[_0x88cc('0x72')],'predictiveIntervalDroppedCallsCallersExit':_0x1fb2ca[_0x88cc('0x73')],'predictiveIntervalDroppedCallsTimeout':_0x1fb2ca['predictiveIntervalDroppedCallsTimeout'],'predictiveIntervalErlangCalls':_0x1fb2ca[_0x88cc('0x74')],'predictiveIntervalErlangCallsDroppedCalls':_0x1fb2ca['predictiveIntervalErlangCallsDroppedCalls'],'predictiveIntervalHitRate':_0x1fb2ca['predictiveIntervalHitRate'],'predictiveIntervalMultiplicativeFactor':_0x1fb2ca[_0x88cc('0x75')],'predictiveIntervalPauses':_0x1fb2ca[_0x88cc('0x76')],'predictiveIntervalAvailable':_0x1fb2ca['predictiveIntervalAvailable'],'predictiveIntervalTotalCalls':_0x1fb2ca['predictiveIntervalTotalCalls'],'message':_0x1fb2ca[_0x88cc('0x47')],'originated':_0x1fb2ca[_0x88cc('0x77')],'erlangCalls':_0x1fb2ca[_0x88cc('0x78')],'erlangCallToSecond':_0x1fb2ca[_0x88cc('0x79')],'erlangAbandonmentRate':_0x1fb2ca['erlangAbandonmentRate'],'erlangBusyFactor':_0x1fb2ca[_0x88cc('0x7a')],'startPredictive':_0x1fb2ca[_0x88cc('0x2b')],'startProgressive':_0x1fb2ca[_0x88cc('0x2c')]};if(_0x1fb2ca[_0x88cc('0x7b')]){_0x57ecf7[_0x88cc('0x7b')]={'id':_0x1fb2ca[_0x88cc('0x7b')]['id'],'name':_0x1fb2ca[_0x88cc('0x7b')][_0x88cc('0x45')],'active':_0x1fb2ca[_0x88cc('0x7b')][_0x88cc('0x7c')],'callerid':_0x1fb2ca[_0x88cc('0x7b')]['callerid']};}if(_0x1fb2ca[_0x88cc('0x4a')]){_0x57ecf7[_0x88cc('0x4a')]={'id':_0x1fb2ca[_0x88cc('0x4a')]['id'],'name':_0x1fb2ca['Interval'][_0x88cc('0x45')]};}var _0xdc32cb=md5(JSON['stringify'](_0x57ecf7));if(_0x1fb2ca[_0x88cc('0x5')]!==_0xdc32cb){_0x1fb2ca[_0x88cc('0x5')]=_0xdc32cb;emit(util[_0x88cc('0x7d')](_0x88cc('0x7e'),_0x57ecf7['name']),_0x88cc('0x7f'),_0x57ecf7);}}}function emitCampaignSummary(_0x437584){if(_0x437584['type']===_0x88cc('0x80')){emit(util[_0x88cc('0x7d')](_0x88cc('0x81'),_0x437584[_0x88cc('0x45')]),_0x88cc('0x82'),_0x437584);}}function checkGetDataPredictive(_0x151057){if(isNotNull(_0x151057)&&!_[_0x88cc('0x4e')](_0x151057)){loggerPredictive[_0x88cc('0x83')](_0x88cc('0x84'));loggerPredictive[_0x88cc('0x83')](_0x88cc('0x85'),_0x151057[_0x88cc('0x86')]);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x87'),_0x151057[_0x88cc('0x70')]);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x88'),_0x151057['predictiveIntervalDroppedCallsTimeout']);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x89'),_0x151057['predictiveIntervalDroppedCallsCallersExit']);loggerPredictive['info'](_0x88cc('0x8a'),_0x151057[_0x88cc('0x71')]);loggerPredictive[_0x88cc('0x83')]('AVG\x20Talk\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x151057['predictiveIntervalAvgTalktime']);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x8b'));if(_0x151057[_0x88cc('0x86')]>0x0){if(!_[_0x88cc('0x43')](_0x151057[_0x88cc('0x72')])&&_0x151057[_0x88cc('0x72')]>0x0){return!![];}loggerPredictive['info'](_0x88cc('0x8c'));if(!_[_0x88cc('0x43')](_0x151057[_0x88cc('0x71')])&&_0x151057[_0x88cc('0x71')]>0x0){return!![];}loggerPredictive[_0x88cc('0x83')](_0x88cc('0x8d'));}else{loggerPredictive[_0x88cc('0x83')](_0x88cc('0x8e'));}}else{loggerPredictive['info'](_0x88cc('0x8f'));}return![];}function mergeDataErlangB(_0x16e3dd){return function(_0x4b5676){loggerPredictive[_0x88cc('0x83')](_0x88cc('0x90'));loggerPredictive[_0x88cc('0x83')](_0x88cc('0x91'),_0x4b5676[_0x88cc('0x78')]);loggerPredictive[_0x88cc('0x83')]('One\x20call\x20every:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x4b5676['erlangCallToSecond']);loggerPredictive[_0x88cc('0x83')]('Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x4b5676[_0x88cc('0x92')]);loggerPredictive['info'](_0x88cc('0x93'),_0x4b5676[_0x88cc('0x7a')]);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x94'),_0x4b5676[_0x88cc('0x92')]);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x8b'));_[_0x88cc('0x95')](_0x16e3dd,_0x4b5676);};}function getDiff(_0x5e2b8f){var _0x4d065e=moment()[_0x88cc('0x52')](0x0);var _0x12c704=moment(_0x5e2b8f)[_0x88cc('0x52')](0x0);return _0x4d065e['diff'](_0x12c704,_0x88cc('0x96'));}function ifInterval(_0x28d577,_0xbbc66){if(_['isUndefined'](_0xbbc66)){return![];}return getDiff(_0xbbc66)<_0x28d577*0x3c;}function freeVariablesPredictive(_0x1d9c8d){if(isNotNull(_0x1d9c8d)){if(!_[_0x88cc('0x43')](_0x1d9c8d[_0x88cc('0x2c')])){_0x1d9c8d['startProgressive']=undefined;loggerPredictive[_0x88cc('0x83')](_0x1d9c8d[_0x88cc('0x45')],_0x88cc('0x97'));}if(!_[_0x88cc('0x43')](_0x1d9c8d[_0x88cc('0x2b')])){_0x1d9c8d[_0x88cc('0x2b')]=undefined;loggerPredictive[_0x88cc('0x83')](_0x1d9c8d[_0x88cc('0x45')],'clearing\x20variable\x20start\x20predictive');}if(!_[_0x88cc('0x43')](_0x1d9c8d['handlePredictive'])){clearInterval(_0x1d9c8d[_0x88cc('0x98')]);_0x1d9c8d[_0x88cc('0x98')]=undefined;loggerPredictive[_0x88cc('0x83')](_0x1d9c8d[_0x88cc('0x45')],_0x88cc('0x99'));}}}function erlangb(_0x38411f,_0x2b3727){if(_0x2b3727===0x0){return 0x0;}var _0x5a781d=0x1;for(var _0x26ba6d=0x1;_0x26ba6d<=_0x2b3727;_0x26ba6d+=0x1){_0x5a781d=0x1+_0x5a781d*_0x26ba6d/_0x38411f;}return 0x1/_0x5a781d;}function isVoiceQueueOutbound(_0x4aaaf2){return _0x4aaaf2===_0x88cc('0x54');}function isNotPreview(_0x351c94){return _0x351c94!==_0x88cc('0x9a');}function isCampaignIvr(_0x4eac9f){return _0x4eac9f===_0x88cc('0x80');}function getCallerId(_0x4d0876,_0x556525,_0x39f69d){if(!_['isUndefined'](_0x39f69d)&&typeof _0x39f69d==='string'&&!_[_0x88cc('0x4e')](_0x39f69d)){if(!_[_0x88cc('0x43')](_0x556525)&&typeof _0x556525===_0x88cc('0x9b')&&!_[_0x88cc('0x4e')](_0x556525)){return util[_0x88cc('0x7d')](_0x88cc('0x9c'),_0x556525,_0x39f69d);}return util[_0x88cc('0x7d')](_0x88cc('0x9c'),_0x39f69d,_0x39f69d);}if(!_['isUndefined'](_0x4d0876)&&typeof _0x4d0876===_0x88cc('0x9b')&&!_[_0x88cc('0x4e')](_0x4d0876)){return _0x4d0876;}return _0x88cc('0x9d');}function loggerCatchQueueSummary(_0x2195ef,_0x2a8ec3){return function(_0x57d5ed){freeVariablesPredictive(_0x2a8ec3);emitVoiceQueueSummary(_0x2a8ec3);emitCampaignSummary(_0x2a8ec3);loggerSyncQueueSummary[_0x88cc('0x9e')](_0x2195ef,util[_0x88cc('0x9f')](_0x57d5ed,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x3857ad,_0x180534){return function(_0x1cba60){loggerPredictive[_0x88cc('0x9e')](_0x180534[_0x88cc('0x45')],_0x3857ad);loggerPredictive['error'](_0x1cba60[_0x88cc('0xa0')]);freeVariablesPredictive(_0x180534);};}function loggerCatch(_0x17312d){return function(_0x15ca84){logger[_0x88cc('0x9e')](_0x17312d,util[_0x88cc('0x9f')](_0x15ca84,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x440ec2){return _0x440ec2&&!_[_0x88cc('0x43')](_0x440ec2)&&_0x440ec2[_0x88cc('0xa1')]>0x0;}function decremetOriginate(_0x58ca5c){if(!_[_0x88cc('0x43')](_0x58ca5c)&&_0x58ca5c!==null){if(typeof _0x58ca5c[_0x88cc('0x77')]!==_0x88cc('0xa2')){if(_0x58ca5c[_0x88cc('0x77')]>0x0){_0x58ca5c['originated']-=0x1;}else{logger[_0x88cc('0x9e')]('[decremetOriginate]\x20object\x20originated\x20is\x20negative');}}}else{logger[_0x88cc('0x9e')](_0x88cc('0xa3'));}}function checkContactLowerLimitOriginate(_0x39f837,_0x249a78,_0x250f7f){if(_0x249a78>_0x250f7f){for(var _0x1370e6=0x0;_0x1370e6<_0x249a78-_0x250f7f;_0x1370e6+=0x1){decremetOriginate(_0x39f837);}}}function loggerGetContactDialer(_0xc8ab27,_0x37db75,_0x5b889e){return function(_0x4e6000){checkContactLowerLimitOriginate(_0x37db75,_0x5b889e,0x0);logger['error'](_0xc8ab27,util[_0x88cc('0x9f')](_0x4e6000,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x235c0a){return function(_0x5a4511){if(isNotNull(_0x5a4511)&&isNotNull(_0x5a4511[0x0])){if(_0x5a4511[0x0][_0x88cc('0xa4')]>0x0){_0x235c0a[_0x88cc('0x47')]=_0x88cc('0xa5');logger[_0x88cc('0x83')](_0x88cc('0xa6')+_0x235c0a['name'],_0x5a4511[0x0][_0x88cc('0xa4')],'contacts');}else{_0x235c0a[_0x88cc('0x47')]=_0x88cc('0xa7');logger['info'](_0x88cc('0xa8')+_0x235c0a[_0x88cc('0x45')]);}}};}function notSendMessagesQueue(_0x11532e){if(_0x11532e[_0x88cc('0xa9')]){freeVariablesPredictive(_0x11532e);if(_0x11532e[_0x88cc('0x77')]===0x0&&_0x11532e[_0x88cc('0x5a')]===0x0&&_0x11532e[_0x88cc('0x5e')]===0x0&&(_0x11532e[_0x88cc('0x57')]||0x0)===0x0){_0x11532e[_0x88cc('0xa9')]=![];_0x11532e[_0x88cc('0xaa')]=0x0;_0x11532e['message']='NOT_ACTIVE';loggerSyncQueueSummary[_0x88cc('0x9e')](_0x88cc('0xab'),_0x11532e[_0x88cc('0x45')],_0x88cc('0xac'));}else{_0x11532e[_0x88cc('0x47')]=_0x88cc('0xad');loggerSyncQueueSummary[_0x88cc('0x9e')](_0x88cc('0xab'),_0x11532e[_0x88cc('0x45')],_0x88cc('0xae'));}emitVoiceQueueSummary(_0x11532e);}}function notSendMessagesCampaign(_0x1d57ab){if(_0x1d57ab['sendMessageOneNotActive']){if(_0x1d57ab[_0x88cc('0x77')]===0x0){_0x1d57ab['sendMessageOneNotActive']=![];_0x1d57ab['message']=_0x88cc('0x48');loggerSyncQueueSummary[_0x88cc('0x9e')]('[syncQueueSummary]\x20Campaign\x20Ivr:\x20',_0x1d57ab['name'],_0x88cc('0xac'));}else{_0x1d57ab['message']=_0x88cc('0xad');loggerSyncQueueSummary[_0x88cc('0x9e')]('[syncQueueSummary]\x20Campaign\x20Ivr:\x20',_0x1d57ab[_0x88cc('0x45')],'is\x20disactive');}emitCampaignSummary(_0x1d57ab);}}function createObjHistory(_0x162045,_0x594296,_0x203801,_0xd5e338,_0x1a4758){_0x162045['message']=_0x203801;var _0xb251cb=new Action(_0x162045,_0x594296);var _0x1ae515=new History(_0xb251cb);_0x1ae515[_0x88cc('0xaf')]=_0xd5e338;_0x1ae515[_0x88cc('0xb0')]=_0x1a4758;_0x1ae515[_0x88cc('0xb1')]=_0xb251cb[_0x88cc('0xb2')];return _0x1ae515;}Dialer['prototype'][_0x88cc('0x42')]=function(){var _0x92602c=this;setInterval(function(){_0x92602c[_0x88cc('0xb3')](_0x92602c[_0x88cc('0xb4')],_0x88cc('0xb5'));_0x92602c['clearZombieChannels'](_0x92602c[_0x88cc('0x28')],'[actions]');},0x32c8);};Dialer[_0x88cc('0x1e')][_0x88cc('0xb3')]=function(_0x2db749,_0x3d7b36){var _0x42d58d=this;for(var _0x1d6429 in _0x2db749){if(typeof _0x2db749[_0x1d6429]!=='undefined'){this[_0x88cc('0x22')][_0x88cc('0x1f')](function(){if(!_[_0x88cc('0xb6')](_0x2db749[_0x1d6429])){return ami[_0x88cc('0xb7')]({'action':_0x88cc('0xb8'),'channel':_0x2db749[_0x1d6429][_0x88cc('0xb9')]})['catch'](function(_0x259610){if(_0x259610[_0x88cc('0x47')]===_0x88cc('0xba')){setTimeout(function(){if(_0x2db749[_0x1d6429]&&_0x2db749[_0x1d6429]['type']!==_0x88cc('0x80')){_0x42d58d[_0x88cc('0xbb')](_0x42d58d['voiceQueues'][_0x2db749[_0x1d6429][_0x88cc('0xbc')]]);logger[_0x88cc('0x9e')](_0x88cc('0xbd'),_0x3d7b36,_0x1d6429,_0x2db749[_0x1d6429][_0x88cc('0xbc')]);delete _0x2db749[_0x1d6429];}if(_0x2db749[_0x1d6429]&&_0x2db749[_0x1d6429][_0x88cc('0x5b')]==='ivr'){_0x42d58d[_0x88cc('0xbb')](_0x42d58d[_0x88cc('0x24')][_0x2db749[_0x1d6429][_0x88cc('0xbc')]]);logger[_0x88cc('0x9e')]('[Dialer][checkChannel][ivr]',_0x3d7b36,_0x1d6429,_0x2db749[_0x1d6429][_0x88cc('0xbc')]);delete _0x2db749[_0x1d6429];}},0x2328);}});}});}}};Dialer[_0x88cc('0x1e')]['countReScheduled']=function(_0x2577ca){return BPromise[_0x88cc('0xbe')]()['then'](cmHopper[_0x88cc('0xbf')](_0x2577ca))[_0x88cc('0xc0')](loggerCatch(_0x88cc('0xc1')));};Dialer[_0x88cc('0x1e')][_0x88cc('0xc2')]=function(_0x31d222){return BPromise[_0x88cc('0xbe')]()[_0x88cc('0xc3')](cmHopperBlack[_0x88cc('0xc2')](_0x31d222))[_0x88cc('0xc0')](loggerCatch('[checkIsBlackList]\x20'));};Dialer['prototype'][_0x88cc('0xc4')]=function(_0x58b4ed){return BPromise['resolve']()['then'](cmHopperBlack[_0x88cc('0xc4')](_0x58b4ed))[_0x88cc('0xc0')](loggerCatch(_0x88cc('0xc5')));};Dialer[_0x88cc('0x1e')][_0x88cc('0xc6')]=function(_0x366c70){return BPromise[_0x88cc('0xbe')]()[_0x88cc('0xc3')](cmHopperHistory['avgHandleTime'](_0x366c70))['catch'](loggerCatch('[averageHandleTime]\x20'));};Dialer[_0x88cc('0x1e')][_0x88cc('0xc7')]=function(_0xfd11b7){return BPromise[_0x88cc('0xbe')]()['then'](cmHopper['rescheduleContact'](_0xfd11b7))[_0x88cc('0xc0')](loggerCatch('[rescheduleContact]\x20'));};Dialer['prototype'][_0x88cc('0xc8')]=function(_0x4b9b47,_0x4b87fe,_0x2eb918){return BPromise[_0x88cc('0xbe')]()[_0x88cc('0xc3')](cmHopper[_0x88cc('0xc8')](_0x4b9b47,_0x4b87fe,_0x2eb918))[_0x88cc('0xc0')](loggerCatch('[unlockContact]\x20'));};Dialer['prototype'][_0x88cc('0xc9')]=function(_0x4f63e6,_0x5a9818,_0x45d02e,_0x5c7b55,_0x183c63){return BPromise['resolve']()[_0x88cc('0xc3')](cmHopper['getContactDialer'](_0x4f63e6,_0x5a9818,_0x45d02e,_0x5c7b55))[_0x88cc('0xc0')](function(_0x3f175f){_0x183c63[_0x88cc('0xca')]-=_0x45d02e;_0x183c63[_0x88cc('0xca')]=_0x183c63['temp']>0x0?_0x183c63[_0x88cc('0xca')]:0x0;loggerCatch(_0x88cc('0xcb'))(_0x3f175f);});};Dialer['prototype']['getContactDialerIvr']=function(_0x5170e7,_0x4dae6a,_0x53058d,_0x51352b){return BPromise[_0x88cc('0xbe')]()[_0x88cc('0xc3')](cmHopper[_0x88cc('0xcc')](_0x5170e7,_0x4dae6a,_0x53058d))['catch'](function(_0x20cfed){_0x51352b[_0x88cc('0xca')]-=_0x4dae6a;_0x51352b[_0x88cc('0xca')]=_0x51352b['temp']>0x0?_0x51352b[_0x88cc('0xca')]:0x0;loggerCatch(_0x88cc('0xcd'))(_0x20cfed);});};Dialer[_0x88cc('0x1e')]['getVoiceQueueRtPauses']=function(_0x35da6f){return BPromise[_0x88cc('0xbe')]()[_0x88cc('0xc3')](voiceQueueRt[_0x88cc('0xce')](_0x35da6f))['catch'](loggerCatch(_0x88cc('0xcf')));};Dialer[_0x88cc('0x1e')][_0x88cc('0xd0')]=function(_0x9dd2df){return BPromise[_0x88cc('0xbe')]()['then'](cmHopper[_0x88cc('0xd0')](_0x9dd2df))['catch'](loggerCatch('[moveContactManagedDialer]\x20'));};Dialer[_0x88cc('0x1e')][_0x88cc('0xd1')]=function(_0x5b40f8){return BPromise[_0x88cc('0xbe')]()['then'](cmHopperHistory[_0x88cc('0xd1')](_0x5b40f8))[_0x88cc('0xc0')](loggerCatch('[createHistory]\x20'));};Dialer[_0x88cc('0x1e')]['updateOriginated']=function(_0x5e875f){if(!_[_0x88cc('0x43')](_0x5e875f)&&_0x5e875f!==null){if(typeof _0x5e875f[_0x88cc('0x77')]!==_0x88cc('0xa2')){if(_0x5e875f[_0x88cc('0x77')]>0x0){_0x5e875f[_0x88cc('0x77')]-=0x1;}else{logger[_0x88cc('0x9e')]('[updateOriginated]\x20object\x20originated\x20is\x20negative');}}}else{logger[_0x88cc('0x9e')]('[updateOriginated]\x20is\x20null\x20or\x20undefined');}};Dialer[_0x88cc('0x1e')][_0x88cc('0xd2')]=function(_0x902574,_0x26491b){var _0x3a73c2=this;return function(_0x493434){_0x3a73c2[_0x88cc('0xbb')](_0x26491b);logger[_0x88cc('0x9e')](_0x902574,util[_0x88cc('0x9f')](_0x493434,{'showHidden':![],'depth':null}));};};Dialer['prototype']['emptyContact']=function(_0x5810fe,_0x7dc9dd,_0x534454){var _0x313403={'state':0x19,'statedesc':'notFound'};this[_0x88cc('0xbb')](_0x7dc9dd);this[_0x88cc('0xd3')](_[_0x88cc('0x95')](_0x313403,_['pick'](_0x534454,[_0x88cc('0xd4'),_0x88cc('0xd5'),_0x88cc('0xd6'),_0x88cc('0xd7'),_0x88cc('0xd8')])),_0x88cc('0xd9'),_0x88cc('0xda'));logger[_0x88cc('0x9e')](_0x5810fe);};Dialer[_0x88cc('0x1e')][_0x88cc('0xdb')]=function(_0x37e0f0){return _0x37e0f0===_0x88cc('0xdc');};Dialer[_0x88cc('0x1e')][_0x88cc('0xdd')]=function(_0x5c5ee0){return!_[_0x88cc('0x43')](_0x5c5ee0)&&_0x5c5ee0&&!_[_0x88cc('0x43')](_0x5c5ee0[_0x88cc('0x45')])&&!_[_0x88cc('0x43')](_0x5c5ee0['active'])&&_0x5c5ee0[_0x88cc('0x7c')]&&(this[_0x88cc('0x26')][util[_0x88cc('0x7d')](_0x88cc('0xde'),_0x5c5ee0[_0x88cc('0x45')])][_0x88cc('0xb8')]===_0x88cc('0xdf')||this[_0x88cc('0x26')][util[_0x88cc('0x7d')](_0x88cc('0xde'),_0x5c5ee0['name'])][_0x88cc('0xb8')]===_0x88cc('0xe0'));};Dialer['prototype'][_0x88cc('0xd3')]=function(_0x5150cf,_0x49d0f4,_0x2d69e2){this[_0x88cc('0xd1')](_0x5150cf)['catch'](loggerCatch(_0x49d0f4));this[_0x88cc('0xd0')](_0x5150cf)[_0x88cc('0xc0')](loggerCatch(_0x2d69e2));};Dialer[_0x88cc('0x1e')][_0x88cc('0x3e')]=function(_0x4dd455){var _0x5538e3=this[_0x88cc('0xb4')][_0x4dd455['uniqueid']];var _0x49f402;if(!_[_0x88cc('0xb6')](_0x4dd455)&&!_[_0x88cc('0xb6')](_0x4dd455[_0x88cc('0xe1')])&&!_[_0x88cc('0xb6')](_0x4dd455[_0x88cc('0xe1')]['amdstatus'])&&_0x4dd455['exten']==='xcally-motion-dialer'&&_0x5538e3){if(_0x5538e3[_0x88cc('0x5b')]!==_0x88cc('0x80')&&this[_0x88cc('0x23')][_0x5538e3[_0x88cc('0xbc')]][_0x88cc('0xe2')]&&_0x4dd455[_0x88cc('0xe3')]===_0x88cc('0xe4')){delete this['uniqueId'][_0x4dd455['uniqueid']];this[_0x88cc('0xbb')](this[_0x88cc('0x23')][_0x5538e3['queue']]);this[_0x88cc('0x23')][_0x5538e3[_0x88cc('0xbc')]][_0x88cc('0x66')]+=0x1;this[_0x88cc('0x23')][_0x5538e3[_0x88cc('0xbc')]][_0x88cc('0x65')]+=0x1;_0x49f402=new Hangup(_0x5538e3,_0x4dd455);_0x49f402[_0x88cc('0xaf')]=0x12;_0x49f402[_0x88cc('0xb0')]='HangupInAMD';_0x49f402[_0x88cc('0xe5')]=_0x88cc('0xe6');ami[_0x88cc('0x53')](_0x88cc('0xe7'),ut['buildObj'](_0x49f402,_0x88cc('0xe8')));this['saveInDb'](_0x49f402,'[syncHangupInAMD][createHistory]',_0x88cc('0xe9'));}if(_0x5538e3[_0x88cc('0x5b')]!==_0x88cc('0x80')&&this['voiceQueues'][_0x5538e3[_0x88cc('0xbc')]][_0x88cc('0xe2')]&&_0x4dd455[_0x88cc('0xe3')]===_0x88cc('0xea')){var _0x401cb4=this;return new BPromise(function(_0x14afcd,_0x1b5528){delete _0x401cb4[_0x88cc('0xb4')][_0x4dd455['uniqueid']];_0x401cb4[_0x88cc('0xbb')](_0x401cb4[_0x88cc('0x23')][_0x5538e3[_0x88cc('0xbc')]]);_0x401cb4[_0x88cc('0x23')][_0x5538e3['queue']][_0x88cc('0x66')]+=0x1;_0x401cb4[_0x88cc('0x23')][_0x5538e3[_0x88cc('0xbc')]]['outboundAnswerAgiCallsDay']+=0x1;var _0x180348=_0x401cb4['voiceQueues'][_0x5538e3[_0x88cc('0xbc')]];var _0x1fa789=new Hangup(_0x5538e3,_0x4dd455);_0x1fa789[_0x88cc('0xaf')]=0x13;_0x1fa789[_0x88cc('0xb0')]=_0x88cc('0xeb');_0x1fa789[_0x88cc('0xe5')]=_0x88cc('0xe6');_0x1fa789[_0x88cc('0xec')]+=0x1;_0x1fa789['countglobal']+=0x1;_0x1fa789[_0x88cc('0xe8')]=!![];ami[_0x88cc('0x53')](_0x88cc('0xe7'),ut[_0x88cc('0xed')](_0x1fa789,_0x88cc('0xe8')));_0x401cb4[_0x88cc('0xd1')](_0x1fa789)[_0x88cc('0xc0')](loggerCatch(_0x88cc('0xee')));if(_0x1fa789[_0x88cc('0xef')]+_0x1fa789['countcongestionretry']+_0x1fa789[_0x88cc('0xf0')]+_0x1fa789[_0x88cc('0xf1')]+_0x1fa789[_0x88cc('0xf2')]+_0x1fa789['countabandonedretry']+_0x1fa789[_0x88cc('0xec')]+_0x1fa789[_0x88cc('0xf3')]>=_0x180348[_0x88cc('0xf4')]){_0x401cb4[_0x88cc('0xf5')](_0x1fa789,_0x14afcd,_0x1b5528,_0x88cc('0xf6'));}else{if(_0x1fa789[_0x88cc('0xec')]>=_0x180348[_0x88cc('0xf7')]){_0x401cb4[_0x88cc('0xf8')](_0x1fa789,_0x14afcd,_0x1b5528,_0x88cc('0xf9'));}else{_0x401cb4['rescheduleContact']({'active':![],'countmachineretry':_0x1fa789[_0x88cc('0xec')],'scheduledat':moment()[_0x88cc('0xfa')](_0x180348[_0x88cc('0xfb')],_0x88cc('0xfc'))[_0x88cc('0x7d')](_0x88cc('0xfd')),'ContactId':_0x1fa789[_0x88cc('0xd4')],'ListId':_0x1fa789[_0x88cc('0xd5')],'VoiceQueueId':_0x1fa789['VoiceQueueId']||undefined,'CampaignId':_0x1fa789[_0x88cc('0xd8')]||undefined})[_0x88cc('0xc0')](loggerCatch('[rescheduleContact][Machine]'));_0x14afcd({'reschedule':0x1});}}});}if(_0x5538e3[_0x88cc('0x5b')]==='ivr'&&this[_0x88cc('0x24')][_0x5538e3[_0x88cc('0xbc')]][_0x88cc('0xe2')]&&_0x4dd455[_0x88cc('0xe3')]===_0x88cc('0xe4')){delete this[_0x88cc('0xb4')][_0x4dd455[_0x88cc('0xfe')]];this['updateOriginated'](this[_0x88cc('0x24')][_0x5538e3['queue']]);_0x49f402=new Hangup(_0x5538e3,_0x4dd455);_0x49f402[_0x88cc('0xaf')]=0x12;_0x49f402[_0x88cc('0xb0')]=_0x88cc('0xff');_0x49f402[_0x88cc('0xe5')]=_0x88cc('0xe6');ami[_0x88cc('0x53')](_0x88cc('0xe7'),ut[_0x88cc('0xed')](_0x49f402,_0x88cc('0xe8')));this[_0x88cc('0xd3')](_0x49f402,_0x88cc('0x100'),_0x88cc('0x101'));}if(_0x5538e3[_0x88cc('0x5b')]===_0x88cc('0x80')&&this[_0x88cc('0x24')][_0x5538e3['queue']][_0x88cc('0xe2')]&&_0x4dd455['value']==='MACHINE'){var _0x401cb4=this;return new BPromise(function(_0x3a50c4,_0x59d13a){delete _0x401cb4['uniqueId'][_0x4dd455['uniqueid']];_0x401cb4[_0x88cc('0xbb')](_0x401cb4['campaigns'][_0x5538e3['queue']]);_0x401cb4['campaigns'][_0x5538e3[_0x88cc('0xbc')]]['outboundAnswerCallsDay']+=0x1;_0x401cb4[_0x88cc('0x24')][_0x5538e3[_0x88cc('0xbc')]][_0x88cc('0x65')]+=0x1;var _0x5e3c87=_0x401cb4[_0x88cc('0x24')][_0x5538e3[_0x88cc('0xbc')]];var _0x55425e=new Hangup(_0x5538e3,_0x4dd455);_0x55425e[_0x88cc('0xaf')]=0x13;_0x55425e['statedesc']='Machine';_0x55425e[_0x88cc('0xe5')]=_0x88cc('0xe6');_0x55425e[_0x88cc('0xec')]+=0x1;_0x55425e['countglobal']+=0x1;_0x55425e['amd']=!![];ami[_0x88cc('0x53')](_0x88cc('0xe7'),ut[_0x88cc('0xed')](_0x55425e,_0x88cc('0xe8')));_0x401cb4['createHistory'](_0x55425e)[_0x88cc('0xc0')](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x55425e[_0x88cc('0xef')]+_0x55425e[_0x88cc('0x102')]+_0x55425e[_0x88cc('0xf0')]+_0x55425e[_0x88cc('0xf1')]+_0x55425e['countdropretry']+_0x55425e[_0x88cc('0x103')]+_0x55425e[_0x88cc('0xec')]+_0x55425e[_0x88cc('0xf3')]>=_0x5e3c87[_0x88cc('0xf4')]){_0x401cb4[_0x88cc('0xf5')](_0x55425e,_0x3a50c4,_0x59d13a,_0x88cc('0xf6'));}else{if(_0x55425e['countmachineretry']>=_0x5e3c87[_0x88cc('0xf7')]){_0x401cb4['createStateFinal'](_0x55425e,_0x3a50c4,_0x59d13a,_0x88cc('0xf9'));}else{_0x401cb4['rescheduleContact']({'active':![],'countmachineretry':_0x55425e[_0x88cc('0xec')],'scheduledat':moment()[_0x88cc('0xfa')](_0x5e3c87[_0x88cc('0xfb')],_0x88cc('0xfc'))[_0x88cc('0x7d')](_0x88cc('0xfd')),'ContactId':_0x55425e[_0x88cc('0xd4')],'ListId':_0x55425e[_0x88cc('0xd5')],'VoiceQueueId':_0x55425e[_0x88cc('0xd7')]||undefined,'CampaignId':_0x55425e[_0x88cc('0xd8')]||undefined})['catch'](loggerCatch(_0x88cc('0x104')));_0x3a50c4({'reschedule':0x1});}}});}}};Dialer[_0x88cc('0x1e')][_0x88cc('0x3a')]=function(_0x51ea19){var _0x31de2e=this[_0x88cc('0xb4')][_0x51ea19[_0x88cc('0xfe')]];var _0x751b55=this;var _0x24b554;if(_0x31de2e&&_0x31de2e[_0x88cc('0x5b')]===_0x88cc('0x80')){delete this[_0x88cc('0xb4')][_0x51ea19[_0x88cc('0xfe')]];this[_0x88cc('0xbb')](this['campaigns'][_0x31de2e[_0x88cc('0xbc')]]);this[_0x88cc('0x24')][_0x31de2e[_0x88cc('0xbc')]][_0x88cc('0x105')]+=0x1;_0x24b554=new Hangup(_0x31de2e,_0x51ea19);this['createHistory'](_0x24b554)[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x106')));this[_0x88cc('0xd0')](_0x24b554)[_0x88cc('0xc0')](loggerCatch('[syncHangupIvr]'));}if(_0x31de2e&&_0x31de2e[_0x88cc('0x5b')]!==_0x88cc('0x80')&&isNotNull(this[_0x88cc('0x23')][_0x31de2e['queue']][_0x88cc('0x107')])){delete this[_0x88cc('0xb4')][_0x51ea19[_0x88cc('0xfe')]];this['updateOriginated'](this['voiceQueues'][_0x31de2e[_0x88cc('0xbc')]]);this[_0x88cc('0x23')][_0x31de2e[_0x88cc('0xbc')]][_0x88cc('0x66')]+=0x1;this[_0x88cc('0x23')][_0x31de2e['queue']]['outboundAnswerAgiCallsDay']+=0x1;_0x24b554=new Hangup(_0x31de2e,_0x51ea19);_0x24b554[_0x88cc('0xaf')]=0x10;_0x24b554[_0x88cc('0xb0')]=_0x88cc('0x108');_0x24b554[_0x88cc('0xe5')]=_0x88cc('0x109');this[_0x88cc('0xd1')](_0x24b554)['catch'](loggerCatch('[syncHangupIvr][createHistory]'));this[_0x88cc('0xd0')](_0x24b554)[_0x88cc('0xc0')](loggerCatch('[syncHangupIvr]'));}if(_0x31de2e&&_0x31de2e[_0x88cc('0x5b')]!==_0x88cc('0x80')&&!isNotNull(this[_0x88cc('0x23')][_0x31de2e[_0x88cc('0xbc')]]['dialQueueProject'])){delete this[_0x88cc('0xb4')][_0x51ea19[_0x88cc('0xfe')]];this[_0x88cc('0xbb')](this[_0x88cc('0x23')][_0x31de2e[_0x88cc('0xbc')]]);this[_0x88cc('0x23')][_0x31de2e[_0x88cc('0xbc')]]['outboundUnknownCallsDay']+=0x1;_0x24b554=new Hangup(_0x31de2e,_0x51ea19);_0x24b554[_0x88cc('0xaf')]=0xc;_0x24b554['statedesc']=_0x51ea19[_0x88cc('0x10a')];_0x24b554[_0x88cc('0xe5')]=_0x88cc('0x10b');this[_0x88cc('0xd1')](_0x24b554)[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x106')));this[_0x88cc('0xd0')](_0x24b554)[_0x88cc('0xc0')](loggerCatch('[syncHangupIvr]'));}};Dialer[_0x88cc('0x1e')][_0x88cc('0x37')]=function(_0x2f343f){var _0x1c2623=this['uniqueId'][_0x2f343f[_0x88cc('0xfe')]];var _0x56c122=this;if(this[_0x88cc('0x23')][_0x2f343f[_0x88cc('0xbc')]]){if(_0x1c2623&&_0x1c2623['type']!==_0x88cc('0x80')){delete this[_0x88cc('0xb4')][_0x2f343f[_0x88cc('0xfe')]];this['voiceQueues'][_0x2f343f[_0x88cc('0xbc')]][_0x88cc('0x66')]+=0x1;var _0x1bfff3=new AgentComplete(_0x1c2623,_0x2f343f);if(_0x2f343f[_0x88cc('0x10c')]===_0x88cc('0x10d')){_0x1bfff3[_0x88cc('0x10e')]=this[_0x88cc('0x23')][_0x2f343f['queue']]['dialQueueProject2']&&this[_0x88cc('0x23')][_0x2f343f[_0x88cc('0xbc')]][_0x88cc('0x10f')]?moment()[_0x88cc('0x7d')](_0x88cc('0xfd')):undefined;}this['createHistory'](_0x1bfff3)['catch'](loggerCatch(_0x88cc('0x110')));this[_0x88cc('0xd0')](_0x1bfff3)[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x111')));}}};Dialer[_0x88cc('0x1e')]['syncAgentConnect']=function(_0x5e4f1f){if(this['voiceQueues'][_0x5e4f1f[_0x88cc('0xbc')]]){if(this[_0x88cc('0xb4')][_0x5e4f1f[_0x88cc('0xfe')]]&&this[_0x88cc('0xb4')][_0x5e4f1f[_0x88cc('0xfe')]][_0x88cc('0x5b')]!==_0x88cc('0x80')){this[_0x88cc('0xbb')](this[_0x88cc('0x23')][_0x5e4f1f[_0x88cc('0xbc')]]);this[_0x88cc('0xb4')][_0x5e4f1f['uniqueid']]['answertime']=moment()['format'](_0x88cc('0xfd'));}}};Dialer[_0x88cc('0x1e')][_0x88cc('0x112')]=function(_0x30d9c2){this[_0x88cc('0xd1')](_0x30d9c2)[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x110')));this[_0x88cc('0xd0')](_0x30d9c2)[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x113')));};Dialer[_0x88cc('0x1e')]['syncQueueCallerAbandon']=function(_0x4f2d3a){var _0x204366=this[_0x88cc('0xb4')][_0x4f2d3a['uniqueid']];var _0x1cf21e=this;if(this[_0x88cc('0x23')][_0x4f2d3a[_0x88cc('0xbc')]]){if(_0x204366&&_0x204366[_0x88cc('0x5b')]!==_0x88cc('0x80')){delete this[_0x88cc('0xb4')][_0x4f2d3a[_0x88cc('0xfe')]];this[_0x88cc('0xbb')](this['voiceQueues'][_0x4f2d3a[_0x88cc('0xbc')]]);_0x204366[_0x88cc('0x114')]=moment()['format'](_0x88cc('0xfd'));var _0x3d9b70=new QueueCallerAbandon(_0x204366,_0x4f2d3a);if(getSeconds(_0x204366[_0x88cc('0x114')],_0x204366[_0x88cc('0x115')])>=_0x204366[_0x88cc('0x116')]){this[_0x88cc('0x23')][_0x4f2d3a['queue']][_0x88cc('0x117')]+=0x1;this[_0x88cc('0x23')][_0x4f2d3a[_0x88cc('0xbc')]][_0x88cc('0x6a')]+=0x1;this[_0x88cc('0x23')][_0x4f2d3a[_0x88cc('0xbc')]]['predictiveIntervalErlangCallsDroppedCalls']+=0x1;_0x3d9b70[_0x88cc('0xaf')]=0xa;_0x3d9b70['statedesc']=_0x88cc('0x118');_0x3d9b70['dropreason']=_0x88cc('0x119');_0x3d9b70[_0x88cc('0x10e')]=this[_0x88cc('0x23')][_0x4f2d3a['queue']][_0x88cc('0x11a')]?moment()[_0x88cc('0x7d')]('YYYY-MM-DD\x20HH:mm:ss'):undefined;_0x3d9b70[_0x88cc('0xf2')]+=0x1;_0x3d9b70[_0x88cc('0x11b')]+=0x1;if(_0x3d9b70['countdropretry']>=this['voiceQueues'][_0x4f2d3a[_0x88cc('0xbc')]][_0x88cc('0x11c')]){this[_0x88cc('0x112')](_0x3d9b70);}else{this[_0x88cc('0xc7')]({'active':![],'countdropretry':_0x3d9b70[_0x88cc('0xf2')],'scheduledat':moment()[_0x88cc('0xfa')](this[_0x88cc('0x23')][_0x4f2d3a[_0x88cc('0xbc')]]['dialDropRetryFrequency'],'minutes')[_0x88cc('0x7d')](_0x88cc('0xfd')),'ContactId':_0x204366[_0x88cc('0xd4')],'ListId':_0x204366[_0x88cc('0xd5')],'VoiceQueueId':_0x204366[_0x88cc('0xd7')]||undefined,'CampaignId':_0x204366[_0x88cc('0xd8')]||undefined})[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x11d')));var _0x3dda3a=new History(_0x3d9b70);_0x3dda3a[_0x88cc('0xaf')]=0xa;_0x3dda3a[_0x88cc('0xb0')]=_0x88cc('0x118');_0x3dda3a[_0x88cc('0xb2')]=moment()[_0x88cc('0x7d')](_0x88cc('0xfd'));_0x3dda3a[_0x88cc('0xb1')]=_0x3dda3a['starttime'];_0x3dda3a[_0x88cc('0x11e')]=_0x3d9b70[_0x88cc('0x11e')];_0x3dda3a[_0x88cc('0x11f')]=_0x3d9b70[_0x88cc('0x11f')];this[_0x88cc('0xd1')](_0x3dda3a)['catch'](loggerCatch(_0x88cc('0x120')));}}else{this[_0x88cc('0x23')][_0x4f2d3a['queue']][_0x88cc('0x73')]+=0x1;this['voiceQueues'][_0x4f2d3a['queue']][_0x88cc('0x121')]+=0x1;_0x3d9b70[_0x88cc('0xaf')]=0xb;_0x3d9b70[_0x88cc('0xb0')]=_0x88cc('0x122');_0x3d9b70[_0x88cc('0x123')]=_0x88cc('0x124');_0x3d9b70['countabandonedretry']+=0x1;_0x3d9b70[_0x88cc('0x11b')]+=0x1;if(_0x3d9b70[_0x88cc('0x103')]>=this['voiceQueues'][_0x4f2d3a[_0x88cc('0xbc')]][_0x88cc('0x125')]){this[_0x88cc('0x112')](_0x3d9b70);}else{this[_0x88cc('0xc7')]({'active':![],'countabandonedretry':_0x3d9b70[_0x88cc('0x103')],'scheduledat':moment()['add'](this[_0x88cc('0x23')][_0x4f2d3a['queue']]['dialAbandonedRetryFrequency'],_0x88cc('0xfc'))['format'](_0x88cc('0xfd')),'ContactId':_0x204366['ContactId'],'ListId':_0x204366[_0x88cc('0xd5')],'VoiceQueueId':_0x204366[_0x88cc('0xd7')]||undefined,'CampaignId':_0x204366[_0x88cc('0xd8')]||undefined})[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x126')));var _0x3dda3a=new History(_0x3d9b70);_0x3dda3a[_0x88cc('0xaf')]=0xb;_0x3dda3a['statedesc']=_0x88cc('0x122');_0x3dda3a['starttime']=moment()[_0x88cc('0x7d')](_0x88cc('0xfd'));_0x3dda3a['endtime']=_0x3dda3a[_0x88cc('0xb2')];_0x3dda3a['calleridname']=_0x3d9b70[_0x88cc('0x11e')];_0x3dda3a[_0x88cc('0x11f')]=_0x3d9b70[_0x88cc('0x11f')];this['createHistory'](_0x3dda3a)[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x127')));}}}}};Dialer[_0x88cc('0x1e')][_0x88cc('0x3c')]=function(_0x11b79d){if(this['actions'][_0x11b79d['uniqueid']]){this['actions'][_0x11b79d[_0x88cc('0xfe')]]['channel']=_0x11b79d[_0x88cc('0xb9')];}if(this[_0x88cc('0xb4')][_0x11b79d[_0x88cc('0xfe')]]){this['uniqueId'][_0x11b79d[_0x88cc('0xfe')]][_0x88cc('0xb9')]=_0x11b79d['channel'];}};Dialer['prototype'][_0x88cc('0x3f')]=function(_0x3a0782){if(strategy[this[_0x88cc('0x23')][this[_0x88cc('0x28')][_0x3a0782[_0x88cc('0x128')]][_0x88cc('0xbc')]][_0x88cc('0x129')]]===_0x88cc('0x1d')){if(this[_0x88cc('0x28')][_0x3a0782[_0x88cc('0x128')]]&&_[_0x88cc('0xb6')](this[_0x88cc('0x28')][_0x3a0782[_0x88cc('0x128')]][_0x88cc('0x12a')])&&_0x3a0782[_0x88cc('0xb8')]==='1'&&_0x3a0782[_0x88cc('0x12b')]==='0'){if(this['agents'][_0x3a0782[_0x88cc('0x12c')]]){if(!this[_0x88cc('0x25')][_0x3a0782[_0x88cc('0x12c')]][_0x88cc('0x12a')]){this[_0x88cc('0x25')][_0x3a0782[_0x88cc('0x12c')]][_0x88cc('0x12a')]=!![];this[_0x88cc('0x28')][_0x3a0782[_0x88cc('0x128')]][_0x88cc('0x12a')]=!![];this[_0x88cc('0x28')][_0x3a0782[_0x88cc('0x128')]][_0x88cc('0x12c')]=_0x3a0782[_0x88cc('0x12c')];}}}}else if((strategy[this[_0x88cc('0x23')][this[_0x88cc('0x28')][_0x3a0782['actionid']][_0x88cc('0xbc')]][_0x88cc('0x129')]]||_0x88cc('0x1c'))==='rrmemory'){if(this[_0x88cc('0x28')][_0x3a0782[_0x88cc('0x128')]]){if(this[_0x88cc('0x25')][_0x3a0782[_0x88cc('0x12c')]]){this[_0x88cc('0x28')][_0x3a0782[_0x88cc('0x128')]][_0x88cc('0x12c')]=_0x3a0782[_0x88cc('0x12c')];if(_['isNil'](this['queueBooked'][this['actions'][_0x3a0782[_0x88cc('0x128')]]['queue']])){this[_0x88cc('0x2e')][this['actions'][_0x3a0782[_0x88cc('0x128')]][_0x88cc('0xbc')]]=[];}this[_0x88cc('0x2e')][this[_0x88cc('0x28')][_0x3a0782[_0x88cc('0x128')]][_0x88cc('0xbc')]][_0x88cc('0x12d')](_['merge'](_[_0x88cc('0x12e')](this['actions'][_0x3a0782[_0x88cc('0x128')]],[_0x88cc('0x12f'),'stateinterface']),{'status':_0x3a0782[_0x88cc('0xb8')],'paused':_0x3a0782[_0x88cc('0x12b')]}));}}}};function unlockQueueStatus(_0x3d0220,_0x51902a){setTimeout(function(){if(_[_0x88cc('0x43')](_0x3d0220['queueStatusComplete'])){loggerBooked[_0x88cc('0x9e')](_0x88cc('0x130'),_0x51902a);}_0x3d0220[_0x88cc('0x131')]=!![];loggerBooked[_0x88cc('0x83')](_0x88cc('0x132'),_0x51902a,JSON[_0x88cc('0x51')](_['pick'](_0x3d0220,[_0x88cc('0x45'),'queueStatusComplete'])));},0x1f3);}Dialer[_0x88cc('0x1e')][_0x88cc('0x133')]=function(_0x1f39e0){var _0xc798b4=this;var _0x139557=_0xc798b4['voiceQueues'][_0xc798b4[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]];if(strategy[this[_0x88cc('0x23')][this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]][_0x88cc('0x129')]]===_0x88cc('0x1d')){if(this[_0x88cc('0x28')][_0x1f39e0['actionid']]&&this[_0x88cc('0x28')][_0x1f39e0['actionid']][_0x88cc('0x12c')]){this[_0x88cc('0x9a')]['run'](this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0x12f')],this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0x12c')])['catch'](function(_0xb6a5a){logger[_0x88cc('0x9e')]('[Catch][Preview][syncQueueStatusComplete]',util['inspect'](_0xb6a5a,{'showHidden':![],'depth':null}));})[_0x88cc('0x21')](function(){_0xc798b4[_0x88cc('0xbb')](_0xc798b4[_0x88cc('0x23')][_0xc798b4[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]]);_0xc798b4[_0x88cc('0x25')][_0xc798b4[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]]['stateinterface']][_0x88cc('0x12a')]=![];delete _0xc798b4['actions'][_0x1f39e0[_0x88cc('0x128')]];unlockQueueStatus(_0x139557);});}else{this[_0x88cc('0xbb')](this[_0x88cc('0x23')][this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]]);this[_0x88cc('0xc7')]({'active':![],'ContactId':this['actions'][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xd4')],'ListId':this[_0x88cc('0x28')][_0x1f39e0['actionid']][_0x88cc('0xd5')],'VoiceQueueId':this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xd7')]||undefined,'CampaignId':this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xd8')]||undefined})[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x134')));delete this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]];unlockQueueStatus(_0x139557);}}else if((strategy[this[_0x88cc('0x23')][this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]][_0x88cc('0x129')]]||_0x88cc('0x1c'))===_0x88cc('0x1c')){var _0x2df98e;if(this[_0x88cc('0x28')][_0x1f39e0['actionid']]&&!_['isEmpty'](this[_0x88cc('0x2e')][this[_0x88cc('0x28')][_0x1f39e0['actionid']][_0x88cc('0xbc')]])){if(this[_0x88cc('0x2f')][_0xc798b4['actions'][_0x1f39e0['actionid']][_0x88cc('0xbc')]]){this[_0x88cc('0x2f')][_0xc798b4[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]]=this[_0x88cc('0x2f')][this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]]?this[_0x88cc('0x2f')][this[_0x88cc('0x28')][_0x1f39e0['actionid']]['queue']]:this[_0x88cc('0x2e')][this[_0x88cc('0x28')][_0x1f39e0['actionid']]['queue']]?this[_0x88cc('0x2e')][this['actions'][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]][_0x88cc('0x135')]||0x0:0x0;}this[_0x88cc('0x2e')][this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]]['queue']][_0x88cc('0x135')]=this[_0x88cc('0x2f')][this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]]['queue']];for(var _0x4ca720=0x0;_0x4ca720<this[_0x88cc('0x2e')][this[_0x88cc('0x28')][_0x1f39e0['actionid']][_0x88cc('0xbc')]][_0x88cc('0xa1')];_0x4ca720+=0x1){_0x2df98e=rr(this['queueBooked'][this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]]);this[_0x88cc('0x2f')][_0xc798b4[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]]=this[_0x88cc('0x2e')][this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]][_0x88cc('0x135')];if(_0x2df98e[_0x88cc('0xb8')]==='1'&&_0x2df98e[_0x88cc('0x12b')]==='0'){break;}}if(!_[_0x88cc('0xb6')](_0x2df98e)){this[_0x88cc('0x25')][_0x2df98e[_0x88cc('0x12c')]][_0x88cc('0x136')]=_[_0x88cc('0x43')](this['agents'][_0x2df98e[_0x88cc('0x12c')]][_0x88cc('0x136')])?!![]:this[_0x88cc('0x25')][_0x2df98e[_0x88cc('0x12c')]][_0x88cc('0x136')];}loggerBooked['info'](_0x88cc('0x137'),_0x1f39e0['actionid'],'Agent:\x20',JSON['stringify'](_['pick'](this[_0x88cc('0x25')][_0x2df98e['stateinterface']],[_0x88cc('0x45'),_0x88cc('0x136')])),_0x88cc('0x138'),JSON[_0x88cc('0x51')](_0x2df98e[_0x88cc('0x12f')]));if(!_[_0x88cc('0xb6')](_0x2df98e)&&_0x2df98e[_0x88cc('0xb8')]==='1'&&_0x2df98e['paused']==='0'&&this[_0x88cc('0x25')][_0x2df98e['stateinterface']][_0x88cc('0x136')]){this[_0x88cc('0x25')][_0x2df98e['stateinterface']][_0x88cc('0x136')]=![];this[_0x88cc('0x2e')][_0xc798b4[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]]=[];this[_0x88cc('0x9a')][_0x88cc('0x139')](_0x2df98e[_0x88cc('0x12f')],_0x2df98e[_0x88cc('0x12c')])['catch'](function(_0x1fee5){logger['error'](_0x88cc('0x13a'),util[_0x88cc('0x9f')](_0x1fee5,{'showHidden':![],'depth':null}));})[_0x88cc('0x21')](function(){_0xc798b4[_0x88cc('0xbb')](_0xc798b4[_0x88cc('0x23')][_0xc798b4['actions'][_0x1f39e0['actionid']][_0x88cc('0xbc')]]);setTimeout(function(){_0xc798b4[_0x88cc('0x25')][_0x2df98e[_0x88cc('0x12c')]]['unlockRR']=!![];loggerBooked['info'](_0x88cc('0x13b'),_0x1f39e0[_0x88cc('0x128')],_0x88cc('0x13c'),JSON[_0x88cc('0x51')](_[_0x88cc('0x12e')](_0xc798b4[_0x88cc('0x25')][_0x2df98e['stateinterface']],[_0x88cc('0x45'),_0x88cc('0x136')])),_0x88cc('0x138'),JSON['stringify'](_0x2df98e[_0x88cc('0x12f')]));},0xc7);delete _0xc798b4[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]];unlockQueueStatus(_0x139557,_0x1f39e0[_0x88cc('0x128')]);});}else{loggerBooked[_0x88cc('0x83')](_0x88cc('0x13d'));this[_0x88cc('0xbb')](this[_0x88cc('0x23')][this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]]);this[_0x88cc('0xc7')]({'active':![],'ContactId':this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xd4')],'ListId':this['actions'][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xd5')],'VoiceQueueId':this['actions'][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xd7')]||undefined,'CampaignId':this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xd8')]||undefined})[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x134')));delete this['actions'][_0x1f39e0[_0x88cc('0x128')]];unlockQueueStatus(_0x139557);}}else{loggerBooked[_0x88cc('0x83')]('[booked][unlock2]');this[_0x88cc('0xbb')](this[_0x88cc('0x23')][this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]]);this[_0x88cc('0xc7')]({'active':![],'ContactId':this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]]['ContactId'],'ListId':this['actions'][_0x1f39e0[_0x88cc('0x128')]]['ListId'],'VoiceQueueId':this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xd7')]||undefined,'CampaignId':this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]]['CampaignId']||undefined})[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x13e')));delete this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]];unlockQueueStatus(_0x139557);}}else{loggerBooked[_0x88cc('0x83')](_0x88cc('0x13f'));this[_0x88cc('0xbb')](this[_0x88cc('0x23')][this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xbc')]]);this[_0x88cc('0xc7')]({'active':![],'ContactId':this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]][_0x88cc('0xd4')],'ListId':this[_0x88cc('0x28')][_0x1f39e0['actionid']][_0x88cc('0xd5')],'VoiceQueueId':this[_0x88cc('0x28')][_0x1f39e0['actionid']][_0x88cc('0xd7')]||undefined,'CampaignId':this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]]['CampaignId']||undefined})[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x140')));delete this[_0x88cc('0x28')][_0x1f39e0[_0x88cc('0x128')]];unlockQueueStatus(_0x139557);}};Dialer[_0x88cc('0x1e')][_0x88cc('0x41')]=function(){var _0x32d301=this;setInterval(function(){_0x32d301[_0x88cc('0x141')]();},0x3e8);};Dialer[_0x88cc('0x1e')]['checkIsTrunkReachable']=function(_0x3bdfd7){var _0x3b17e8=this;return function(){if(!_0x3b17e8['isTrunkReachable'](_0x3bdfd7['Trunk'])){if(!_0x3b17e8[_0x88cc('0xdd')](_0x3bdfd7[_0x88cc('0x142')])){_0x3bdfd7[_0x88cc('0x47')]=_0x88cc('0x143');throw _0x3bdfd7['name']+_0x88cc('0x144');}}};};Dialer['prototype'][_0x88cc('0x145')]=function(_0x1bb6c2,_0x3e2411,_0x499310,_0x313362){var _0x26686b=this;return function(){var _0x117f5d=!![];return _0x26686b[_0x88cc('0x146')](_0x1bb6c2,_0x3e2411,_0x499310,_0x313362,_0x117f5d);};};Dialer[_0x88cc('0x1e')][_0x88cc('0x147')]=function(_0xdb9b90,_0x45a6ac,_0x37f103,_0x5f258b){var _0x29c4da=this;return function(){var _0x257a3d=![];return _0x29c4da['ifTime'](_0xdb9b90[_0x88cc('0x4d')],_0x45a6ac,_0x37f103,_0x5f258b,_0x257a3d);};};Dialer['prototype'][_0x88cc('0x146')]=function(_0x2bcfcb,_0x99bcc4,_0x3d72ff,_0x294d5f,_0x1f200c){var _0x567d84=[];return new BPromise(function(_0x705ab1,_0x5aca6e){if(!isNotNull(_0x2bcfcb)){_0x294d5f['message']=_0x88cc('0x4b');return _0x5aca6e(msgResponse(_0x88cc('0x146'),'Failure',_0x3d72ff+_0x88cc('0x148')));}if(_[_0x88cc('0x4e')](_0x2bcfcb)){_0x294d5f[_0x88cc('0x47')]=_0x88cc('0x149');return _0x5aca6e(msgResponse(_0x88cc('0x146'),_0x88cc('0x14a'),_0x3d72ff+_0x88cc('0x14b')));}if(_0x99bcc4&&_[_0x88cc('0x43')](config[_0x88cc('0x14c')][_0x99bcc4])){_0x294d5f['message']=_0x88cc('0x14d');return _0x5aca6e(msgResponse(_0x88cc('0x146'),_0x88cc('0x14a'),_0x3d72ff+_0x88cc('0x14e')+_0x99bcc4));}if(_[_0x88cc('0x14f')](_0x2bcfcb)){for(var _0x45259d=0x0;_0x45259d<_0x2bcfcb['length'];_0x45259d+=0x1){_0x567d84['push'](ami[_0x88cc('0xb7')]({'action':_0x88cc('0x150'),'command':util[_0x88cc('0x7d')](_0x88cc('0x151'),_0x2bcfcb[_0x45259d][_0x88cc('0x152')],!_[_0x88cc('0x43')](config[_0x88cc('0x14c')][_0x99bcc4])?_0x99bcc4:'')})[_0x88cc('0xc3')](function(_0xd610cf){return _0xd610cf['content'][_0x88cc('0x153')](_0x88cc('0x154'))>=0x0;})[_0x88cc('0xc0')](myreject(_0x5aca6e)));}}else{_0x567d84['push'](ami[_0x88cc('0xb7')]({'action':'command','command':util[_0x88cc('0x7d')](_0x88cc('0x151'),_0x2bcfcb,!_[_0x88cc('0x43')](config['timezones'][_0x99bcc4])?_0x99bcc4:'')})[_0x88cc('0xc3')](function(_0x35d3d6){return _0x35d3d6[_0x88cc('0x155')][_0x88cc('0x153')]('true')>=0x0;})['catch'](myreject(_0x5aca6e)));}BPromise[_0x88cc('0x156')](_0x567d84)['then'](function(_0x34328d){var _0x25f598=_['some'](_0x34328d);if(_0x25f598){return _0x705ab1(_0x25f598);}else{_0x294d5f['message']=_0x1f200c?'GLOBAL_INTERVAL_IS_OVERTIME':_0x88cc('0x157');return _0x5aca6e(msgResponse(_0x88cc('0x158'),_0x88cc('0x14a'),_0x88cc('0x159')+_0x1f200c+'\x20'+_0x3d72ff+_0x88cc('0x15a')+util[_0x88cc('0x9f')](_0x2bcfcb,{'showHidden':![],'depth':null})+'Timezone:\x20'+_0x99bcc4));}})['catch'](function(_0x2bae38){return _0x5aca6e(msgResponse('ifTime',_0x88cc('0x14a'),JSON[_0x88cc('0x51')](_0x2bae38)));});});};Dialer[_0x88cc('0x1e')][_0x88cc('0x15b')]=function(_0x58e6e4){var _0x4c8991=this;return function(){switch(_0x58e6e4[_0x88cc('0x61')]){case'progressive':freeVariablesPredictive(_0x58e6e4);_0x4c8991[_0x88cc('0x15c')](_0x58e6e4,0x1);break;case'power':freeVariablesPredictive(_0x58e6e4);_0x4c8991[_0x88cc('0x15c')](_0x58e6e4,_0x58e6e4[_0x88cc('0x15d')]);break;case _0x88cc('0x15e'):_0x4c8991[_0x88cc('0x15e')](_0x58e6e4);break;case'booked':freeVariablesPredictive(_0x58e6e4);_0x4c8991[_0x88cc('0x15c')](_0x58e6e4,0x1);break;default:freeVariablesPredictive(_0x58e6e4);logger['error'](_0x88cc('0x15f'),_0x58e6e4[_0x88cc('0x45')],'method\x20not\x20recognized');}};};Dialer[_0x88cc('0x1e')][_0x88cc('0x160')]=function(_0x2a8fba){var _0x19e9d8=this;return function(){_0x19e9d8[_0x88cc('0x161')](_0x2a8fba);};};Dialer[_0x88cc('0x1e')][_0x88cc('0xd')]=function(_0x16a388){var _0x17fc1b=this;if(isNotPreview(_0x16a388[_0x88cc('0x61')])){if(isVoiceQueueOutbound(_0x16a388[_0x88cc('0x5b')])&&isActive(_0x16a388['dialActive'])){_0x16a388['sendMessageOneNotActive']=!![];BPromise['resolve']()[_0x88cc('0xc3')](checkIsLoggedIn(_0x16a388,_0x16a388[_0x88cc('0x56')]))['then'](checkIsActive(_0x16a388,_0x16a388['dialActive']))['then'](checkInterval(_0x16a388))[_0x88cc('0xc3')](_0x17fc1b[_0x88cc('0x162')](_0x16a388))[_0x88cc('0xc3')](_0x17fc1b['checkIfTime'](_0x16a388[_0x88cc('0x163')],_0x16a388[_0x88cc('0x164')],_0x16a388[_0x88cc('0x45')],_0x16a388))[_0x88cc('0xc3')](_0x17fc1b['checkIfTimeIntervals'](_0x16a388['Interval'],_0x16a388[_0x88cc('0x164')],_0x16a388[_0x88cc('0x45')],_0x16a388))[_0x88cc('0xc3')](_0x17fc1b[_0x88cc('0x15b')](_0x16a388))[_0x88cc('0xc0')](loggerCatchQueueSummary('[syncQueueSummary]',_0x16a388));}else{notSendMessagesQueue(_0x16a388);}}else{freeVariablesPredictive(_0x16a388);}};Dialer['prototype']['syncCampaigns']=function(){var _0x30f7f9=this;var _0x12b36c;for(var _0x5d017a in this[_0x88cc('0x24')]){if(typeof this['campaigns'][_0x5d017a]!=='undefined'){_0x12b36c=this[_0x88cc('0x24')][_0x5d017a];if(isCampaignIvr(_0x12b36c[_0x88cc('0x5b')])&&isActive(_0x12b36c[_0x88cc('0x7c')])){_0x12b36c[_0x88cc('0xa9')]=!![];BPromise[_0x88cc('0xbe')]()[_0x88cc('0xc3')](checkIsActive(_0x12b36c,_0x12b36c[_0x88cc('0x7c')]))[_0x88cc('0xc3')](checkInterval(_0x12b36c))['then'](_0x30f7f9[_0x88cc('0x162')](_0x12b36c))[_0x88cc('0xc3')](_0x30f7f9['checkIfTime'](_0x12b36c[_0x88cc('0x163')],_0x12b36c[_0x88cc('0x164')],_0x12b36c[_0x88cc('0x45')],_0x12b36c))['then'](_0x30f7f9[_0x88cc('0x147')](_0x12b36c[_0x88cc('0x4a')],_0x12b36c[_0x88cc('0x164')],_0x12b36c['name'],_0x12b36c))['then'](_0x30f7f9[_0x88cc('0x160')](_0x12b36c))[_0x88cc('0xc0')](loggerCatchQueueSummary(_0x88cc('0x165'),_0x12b36c));}else{notSendMessagesCampaign(_0x12b36c);}}}};function getCallerIdRandom(_0x4f1a05,_0x4320e0){var _0xb06e38;var _0x3576e4;var _0x4c3993;if(_0x4320e0<=0x0){_0x4320e0=0x1;}_0xb06e38=new RegExp(_0x88cc('0x166')+_0x4320e0+'}$');_0x3576e4=Math[_0x88cc('0x167')](0xa,_0x4320e0-0x1);_0x4c3993=Math[_0x88cc('0x167')](0xa,_0x4320e0)-0x1;return util[_0x88cc('0x7d')]('%s',_[_0x88cc('0x168')](_0x4f1a05,_0xb06e38,_[_0x88cc('0x169')](_0x3576e4,_0x4c3993)));}function extractCalleridName(_0x80f4dd){var _0x2fb794=_0x80f4dd[_0x88cc('0x16a')](/"(.*?)"/);return _0x2fb794?_0x2fb794[0x1]:_0x80f4dd;}function extractCalleridNumber(_0x2c9ed9){var _0x4c67ad=_0x2c9ed9[_0x88cc('0x16a')](/<(.*?)>/);return _0x4c67ad?_0x4c67ad[0x1]:_0x2c9ed9;}Dialer[_0x88cc('0x1e')][_0x88cc('0x16b')]=function(_0x48d3df,_0x156e70){var _0xb73be6=this;var _0x531b13=uuid['v4']();this['actions'][_0x531b13]=new Action(_0x48d3df,_0x156e70,_0x531b13);return new BPromise(function(_0x205db3,_0x26061b){if(_[_0x88cc('0x43')](_0x48d3df)&&typeof _0x48d3df!==_0x88cc('0x16c')){return _0x26061b(msgResponse(_0x88cc('0x16d'),'Failure',_0x88cc('0x16e')));}if(_['isUndefined'](_0x156e70[_0x88cc('0x16f')][_0x88cc('0x170')])||_0x156e70[_0x88cc('0x16f')][_0x88cc('0x170')]===null){return _0x26061b(msgResponse(_0x88cc('0x16d'),'Failure','contact\x20is\x20undefine'));}var _0x1aa65e={'XMD-CALLERID':_0xb73be6[_0x88cc('0x28')][_0x531b13][_0x88cc('0x171')](),'XMD-AGI':_0x48d3df[_0x88cc('0x107')]?util[_0x88cc('0x7d')](_0x88cc('0x172'),ipAgi,_0x48d3df[_0x88cc('0x107')]):_0x88cc('0x173'),'XMD-AGIAFTER':_0x48d3df[_0x88cc('0x11a')]?util[_0x88cc('0x7d')]('\x22agi://%s/square,%s\x22',ipAgi,_0x48d3df[_0x88cc('0x11a')]):'NONE','XMD-QUEUE':_0x48d3df[_0x88cc('0x5b')]===_0x88cc('0x54')?util[_0x88cc('0x7d')]('\x22%s,%s%s,,,%s\x22',_0x48d3df[_0x88cc('0x45')],_0x48d3df[_0x88cc('0x174')]||'',_0x48d3df[_0x88cc('0x10f')]?'c':'',_0x48d3df[_0x88cc('0x116')]||0x3):'NONE','XMD-CONTACTID':_0x156e70[_0x88cc('0xd4')],'XMD-CDRTYPE':_0x88cc('0xa'),'CALLERID(all)':_0xb73be6[_0x88cc('0x28')][_0x531b13][_0x88cc('0x171')](),'XMD-AMD':_0x48d3df[_0x88cc('0xe2')]?_0x88cc('0x175'):_0x88cc('0x173'),'XMD-DESTINATION':_0x88cc('0x176')};if(_0x48d3df[_0x88cc('0xe2')]){_0x1aa65e[_0x88cc('0x177')]=_0x48d3df[_0x88cc('0x178')]||0x9c4;_0x1aa65e[_0x88cc('0x179')]=_0x48d3df[_0x88cc('0x17a')]||0x5dc;_0x1aa65e[_0x88cc('0x17b')]=_0x48d3df[_0x88cc('0x17c')]||0x320;_0x1aa65e[_0x88cc('0x17d')]=_0x48d3df[_0x88cc('0x17e')]||0x1388;_0x1aa65e[_0x88cc('0x17f')]=_0x48d3df[_0x88cc('0x180')]||0x64;_0x1aa65e['XMD-AMDBETWEENWORDSSILENCE']=_0x48d3df[_0x88cc('0x181')]||0x32;_0x1aa65e['XMD-AMDMAXIMUMNUMBEROFWORDS']=_0x48d3df[_0x88cc('0x182')]||0x3;_0x1aa65e[_0x88cc('0x183')]=_0x48d3df[_0x88cc('0x184')]||0x100;_0x1aa65e[_0x88cc('0x185')]=_0x48d3df['dialAMDMaximumWordLength']||0x1388;}if(_0x48d3df[_0x88cc('0x5b')]==='outbound'){_0x1aa65e['XMD-VOICEQUEUEID']=_0x156e70[_0x88cc('0xd7')];}else{_0x1aa65e['XMD-CAMPAIGNID']=_0x156e70[_0x88cc('0xd8')];}for(var _0xce2546 in _0x156e70['Contact']){if(typeof _0x156e70['Contact'][_0xce2546]!==_0x88cc('0xa2')){if(isNotNull(_0x156e70[_0x88cc('0x16f')][_0xce2546])&&_0xce2546!=='id'&&_0xce2546!==_0x88cc('0x186')&&_0xce2546!=='createdAt'&&_0xce2546!=='updatedAt'){_0x1aa65e[util['format'](_0x88cc('0x187'),_0x88cc('0x188'),_[_0x88cc('0x189')](_0xce2546))]=_0x156e70[_0x88cc('0x16f')][_0xce2546];}}}var _0x2014f7=_0xb73be6[_0x88cc('0xdd')](_0x48d3df[_0x88cc('0x7b')])?getCallerId(_0x48d3df['Trunk'][_0x88cc('0x18a')],_0x48d3df[_0x88cc('0x62')],_0x48d3df['dialRandomLastDigitCallerIdNumber']>0x0?getCallerIdRandom(_0x48d3df[_0x88cc('0x63')],_0x48d3df[_0x88cc('0x18b')]):_0x48d3df[_0x88cc('0x63')]):getCallerId(_[_0x88cc('0xb6')](_0x48d3df[_0x88cc('0x142')])?_0x48d3df['Trunk'][_0x88cc('0x18a')]:_0x48d3df[_0x88cc('0x142')][_0x88cc('0x18a')],_0x48d3df[_0x88cc('0x62')],_0x48d3df[_0x88cc('0x18b')]>0x0?getCallerIdRandom(_0x48d3df[_0x88cc('0x63')],_0x48d3df[_0x88cc('0x18b')]):_0x48d3df[_0x88cc('0x63')]);if(_0x2014f7){_0x1aa65e[_0x88cc('0x18c')]=_0xb73be6[_0x88cc('0x28')][_0x531b13][_0x88cc('0x18d')]=extractCalleridName(_0x2014f7);_0x1aa65e[_0x88cc('0x18e')]=_0xb73be6[_0x88cc('0x28')][_0x531b13]['originatecalleridnum']=extractCalleridNumber(_0x2014f7);}return ami[_0x88cc('0xb7')]({'actionid':_0x531b13,'action':_0x88cc('0x16d'),'channel':_0xb73be6[_0x88cc('0xdd')](_0x48d3df['Trunk'])?util['format'](_0x88cc('0x18f'),_0x48d3df[_0x88cc('0x7b')][_0x88cc('0x45')],isNotNull(_0x48d3df[_0x88cc('0x64')])?_0x48d3df['dialPrefix'][_0x88cc('0x190')]()||'':'',_0x48d3df[_0x88cc('0x191')]>0x0?_0x156e70[_0x88cc('0x16f')][_0x88cc('0x170')]['substring'](_0x48d3df[_0x88cc('0x191')]):_0x156e70[_0x88cc('0x16f')][_0x88cc('0x170')]):util[_0x88cc('0x7d')](_0x88cc('0x18f'),_['isNil'](_0x48d3df[_0x88cc('0x142')])?_0x48d3df[_0x88cc('0x7b')][_0x88cc('0x45')]:_0x48d3df['TrunkBackup'][_0x88cc('0x45')],isNotNull(_0x48d3df[_0x88cc('0x64')])?_0x48d3df[_0x88cc('0x64')]['trim']()||'':'',_0x48d3df['dialCutDigit']>0x0?_0x156e70[_0x88cc('0x16f')]['phone'][_0x88cc('0x192')](_0x48d3df[_0x88cc('0x191')]):_0x156e70[_0x88cc('0x16f')]['phone']),'callerid':_0x2014f7,'Exten':'xcally-motion-dialer','Context':_0x88cc('0x193'),'Priority':'1','variable':_0x1aa65e,'timeout':(_0x48d3df[_0x88cc('0x194')]||0x1e)*0x3e8,'async':!![],'channelid':_0x531b13})['then'](function(_0x25e4e5){return _0x205db3(_0x25e4e5);})['catch'](function(_0x1fe8c9){_0x48d3df[_0x88cc('0x6d')]+=0x1;var _0x2626ba=new History(_0xb73be6['actions'][_0x531b13]);logger['error'](util[_0x88cc('0x7d')](_0x88cc('0x195'),JSON['stringify'](_0x1fe8c9)));_0x2626ba[_0x88cc('0xaf')]=0xe;_0x2626ba[_0x88cc('0xb0')]=_0x88cc('0x196');_0x2626ba[_0x88cc('0xb2')]=moment()[_0x88cc('0x7d')](_0x88cc('0xfd'));_0x2626ba[_0x88cc('0xb1')]=_0x2626ba['starttime'];_0xb73be6['createHistory'](_0x2626ba)[_0x88cc('0xc0')](loggerCatch('[originate][error]'));_0xb73be6[_0x88cc('0xd0')](_0x2626ba)[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x197')))[_0x88cc('0x21')](function(){delete _0xb73be6[_0x88cc('0x28')][_0x531b13];return _0x26061b(msgResponse(_0x88cc('0x16d'),'Error',_0x88cc('0x198')));});});});};Dialer[_0x88cc('0x1e')][_0x88cc('0x35')]=function(_0x265de8){var _0x4df0ee=this[_0x88cc('0x28')][_0x265de8[_0x88cc('0x128')]];if(_0x4df0ee){delete this[_0x88cc('0x28')][_0x265de8[_0x88cc('0x128')]];_0x4df0ee[_0x88cc('0x115')]=moment()[_0x88cc('0x7d')]('YYYY-MM-DD\x20HH:mm:ss');var _0x3aa998=_0x4df0ee[_0x88cc('0x5b')]===_0x88cc('0x80')?this[_0x88cc('0x24')][_0x4df0ee['queue']]:this['voiceQueues'][_0x4df0ee[_0x88cc('0x199')]()];if(!this['isSuccess'](_0x265de8['response'])){this[_0x88cc('0xbb')](_0x3aa998);return this[_0x88cc('0x19a')](_0x4df0ee,_0x3aa998,_0x265de8)[_0x88cc('0xc0')](loggerCatch('[callProgressDetecting]\x20'));}this[_0x88cc('0xb4')][_0x265de8[_0x88cc('0xfe')]]=_0x4df0ee;}};Dialer[_0x88cc('0x1e')]['checkRetriveMax']=function(_0x19366d,_0xdbae42,_0x57d712){var _0x43dd5=new History(_0xdbae42);if(_0x43dd5[_0x88cc('0xef')]+_0x43dd5['countcongestionretry']+_0x43dd5[_0x88cc('0xf0')]+_0x43dd5[_0x88cc('0xf1')]+_0x43dd5[_0x88cc('0xf2')]+_0x43dd5[_0x88cc('0x103')]+_0x43dd5[_0x88cc('0xec')]+_0x43dd5[_0x88cc('0xf3')]>=_0x57d712[_0x88cc('0xf4')]-0x1){return!![];}switch(_0x19366d){case 0x3:if(_0x43dd5[_0x88cc('0xf0')]>=_0x57d712['dialNoAnswerMaxRetry']-0x1){return!![];}this[_0x88cc('0xc7')]({'active':![],'countnoanswerretry':_0x43dd5[_0x88cc('0xf0')]+=0x1,'scheduledat':moment()[_0x88cc('0xfa')](_0x57d712[_0x88cc('0x19b')],_0x88cc('0xfc'))['format']('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x43dd5[_0x88cc('0xd4')],'ListId':_0x43dd5['ListId'],'VoiceQueueId':_0x43dd5['VoiceQueueId']||undefined,'CampaignId':_0x43dd5['CampaignId']||undefined})['catch'](loggerCatch('[rescheduleContact][NoAnswer]'));break;case 0x5:if(_0x43dd5[_0x88cc('0xef')]>=_0x57d712[_0x88cc('0x19c')]-0x1){return!![];}this[_0x88cc('0xc7')]({'active':![],'countbusyretry':_0x43dd5[_0x88cc('0xef')]+=0x1,'scheduledat':moment()[_0x88cc('0xfa')](_0x57d712[_0x88cc('0x19d')],_0x88cc('0xfc'))[_0x88cc('0x7d')](_0x88cc('0xfd')),'ContactId':_0x43dd5[_0x88cc('0xd4')],'ListId':_0x43dd5[_0x88cc('0xd5')],'VoiceQueueId':_0x43dd5[_0x88cc('0xd7')]||undefined,'CampaignId':_0x43dd5['CampaignId']||undefined})['catch'](loggerCatch(_0x88cc('0x19e')));break;case 0x8:if(_0x43dd5[_0x88cc('0x102')]>=_0x57d712[_0x88cc('0x19f')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countcongestionretry':_0x43dd5['countcongestionretry']+=0x1,'scheduledat':moment()[_0x88cc('0xfa')](_0x57d712[_0x88cc('0x1a0')],_0x88cc('0xfc'))[_0x88cc('0x7d')](_0x88cc('0xfd')),'ContactId':_0x43dd5[_0x88cc('0xd4')],'ListId':_0x43dd5[_0x88cc('0xd5')],'VoiceQueueId':_0x43dd5[_0x88cc('0xd7')]||undefined,'CampaignId':_0x43dd5[_0x88cc('0xd8')]||undefined})[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x1a1')));break;case 0x0:if(_0x43dd5[_0x88cc('0xf1')]>=_0x57d712['dialNoSuchNumberMaxRetry']-0x1){return!![];}else{this['rescheduleContact']({'active':![],'countnosuchnumberretry':_0x43dd5[_0x88cc('0xf1')]+=0x1,'scheduledat':moment()[_0x88cc('0xfa')](_0x57d712[_0x88cc('0x1a2')],_0x88cc('0xfc'))[_0x88cc('0x7d')](_0x88cc('0xfd')),'ContactId':_0x43dd5[_0x88cc('0xd4')],'ListId':_0x43dd5['ListId'],'VoiceQueueId':_0x43dd5[_0x88cc('0xd7')]||undefined,'CampaignId':_0x43dd5[_0x88cc('0xd8')]||undefined})['catch'](loggerCatch(_0x88cc('0x1a3')));}break;case 0xa:if(_0x43dd5[_0x88cc('0xf2')]>=_0x57d712[_0x88cc('0x11c')]-0x1){return!![];}this[_0x88cc('0xc7')]({'active':![],'countdropretry':_0x43dd5[_0x88cc('0xf2')]+=0x1,'scheduledat':moment()[_0x88cc('0xfa')](_0x57d712[_0x88cc('0x1a4')],'minutes')['format'](_0x88cc('0xfd')),'ContactId':_0x43dd5[_0x88cc('0xd4')],'ListId':_0x43dd5[_0x88cc('0xd5')],'VoiceQueueId':_0x43dd5[_0x88cc('0xd7')]||undefined,'CampaignId':_0x43dd5[_0x88cc('0xd8')]||undefined})[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x11d')));break;case 0xb:if(_0x43dd5['countabandonedretry']>=_0x57d712[_0x88cc('0x125')]-0x1){return!![];}this[_0x88cc('0xc7')]({'active':![],'countabandonedretry':_0x43dd5[_0x88cc('0x103')]+=0x1,'scheduledat':moment()['add'](_0x57d712[_0x88cc('0x1a5')],'minutes')[_0x88cc('0x7d')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x43dd5['ContactId'],'ListId':_0x43dd5[_0x88cc('0xd5')],'VoiceQueueId':_0x43dd5[_0x88cc('0xd7')]||undefined,'CampaignId':_0x43dd5['CampaignId']||undefined})[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x126')));break;case 0x13:if(_0x43dd5['countmachineretry']>=_0x57d712[_0x88cc('0xf7')]-0x1){return!![];}this[_0x88cc('0xc7')]({'active':![],'countmachineretry':_0x43dd5['countmachineretry']+=0x1,'scheduledat':moment()[_0x88cc('0xfa')](_0x57d712[_0x88cc('0xfb')],_0x88cc('0xfc'))[_0x88cc('0x7d')](_0x88cc('0xfd')),'ContactId':_0x43dd5[_0x88cc('0xd4')],'ListId':_0x43dd5['ListId'],'VoiceQueueId':_0x43dd5[_0x88cc('0xd7')]||undefined,'CampaignId':_0x43dd5[_0x88cc('0xd8')]||undefined})[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x104')));break;case 0x14:if(_0x43dd5[_0x88cc('0xf3')]>=_0x57d712[_0x88cc('0x1a6')]-0x1){return!![];}this[_0x88cc('0xc7')]({'active':![],'countagentrejectretry':_0x43dd5['countagentrejectretry']+=0x1,'scheduledat':moment()[_0x88cc('0xfa')](_0x57d712[_0x88cc('0x1a7')],'minutes')['format'](_0x88cc('0xfd')),'ContactId':_0x43dd5[_0x88cc('0xd4')],'ListId':_0x43dd5[_0x88cc('0xd5')],'VoiceQueueId':_0x43dd5[_0x88cc('0xd7')]||undefined,'CampaignId':_0x43dd5[_0x88cc('0xd8')]||undefined})[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x1a8')));break;default:return!![];}};Dialer[_0x88cc('0x1e')][_0x88cc('0x19a')]=function(_0x31680d,_0x23212a,_0x4a2670){var _0x210923=this;var _0x34c4d3=new History(_0x31680d);return new BPromise(function(_0x322535,_0x5f3129){if(_[_0x88cc('0x43')](_0x23212a)&&typeof _0x23212a!==_0x88cc('0x16c')){return _0x5f3129(msgResponse(_0x88cc('0x1a9'),_0x88cc('0x14a'),_0x88cc('0x1aa')));}if(_[_0x88cc('0x43')](_0x4a2670)&&typeof _0x4a2670!==_0x88cc('0x16c')){return _0x5f3129(msgResponse(_0x88cc('0x1a9'),'Failure',_0x88cc('0x1ab')));}switch(_0x4a2670[_0x88cc('0x10c')]){case'0':_0x23212a[_0x88cc('0x6c')]+=0x1;_0x34c4d3['state']=0x0;_0x34c4d3[_0x88cc('0xb0')]=_0x88cc('0x1ac');_0x34c4d3[_0x88cc('0xf1')]+=0x1;_0x34c4d3[_0x88cc('0x11b')]+=0x1;ami[_0x88cc('0x53')]('custom:agentnosuchnumber',ut[_0x88cc('0xed')](_0x31680d,_0x88cc('0x1ad')));_0x210923['createHistory'](_0x34c4d3)['catch'](loggerCatch(_0x88cc('0xee')));if(_0x210923[_0x88cc('0x1ae')](0x0,_0x31680d,_0x23212a)){if(_0x34c4d3[_0x88cc('0xf1')]>=_0x23212a[_0x88cc('0x1af')]){_0x210923[_0x88cc('0xf8')](_0x34c4d3,_0x322535,_0x5f3129,_0x88cc('0x1b0'));}else{_0x210923[_0x88cc('0xf5')](_0x34c4d3,_0x322535,_0x5f3129,_0x88cc('0x1b0'));}}break;case'3':_0x23212a[_0x88cc('0x6b')]+=0x1;_0x34c4d3['state']=0x3;_0x34c4d3[_0x88cc('0xb0')]=_0x88cc('0x1b1');_0x34c4d3[_0x88cc('0xf0')]+=0x1;_0x34c4d3['countglobal']+=0x1;ami[_0x88cc('0x53')](_0x88cc('0x1b2'),ut['buildObj'](_0x31680d,_0x88cc('0x1b3')));_0x210923[_0x88cc('0xd1')](_0x34c4d3)[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x1b4')));if(_0x210923['checkRetriveMax'](0x3,_0x31680d,_0x23212a)){if(_0x34c4d3[_0x88cc('0xf0')]>=_0x23212a['dialNoAnswerMaxRetry']){_0x210923[_0x88cc('0xf8')](_0x34c4d3,_0x322535,_0x5f3129,'reason\x203\x20ringing\x20no\x20answer');}else{_0x210923['stateGlobal'](_0x34c4d3,_0x322535,_0x5f3129,'reason\x203\x20ringing\x20no\x20answer');}}break;case'5':_0x23212a[_0x88cc('0x67')]+=0x1;_0x34c4d3[_0x88cc('0xaf')]=0x5;_0x34c4d3[_0x88cc('0xb0')]=_0x88cc('0x1b5');_0x34c4d3[_0x88cc('0xef')]+=0x1;_0x34c4d3[_0x88cc('0x11b')]+=0x1;ami[_0x88cc('0x53')]('custom:agentbusy',ut[_0x88cc('0xed')](_0x31680d,_0x88cc('0x1b6')));_0x210923['createHistory'](_0x34c4d3)['catch'](loggerCatch(_0x88cc('0x1b7')));if(_0x210923['checkRetriveMax'](0x5,_0x31680d,_0x23212a)){if(_0x34c4d3[_0x88cc('0xef')]>=_0x23212a[_0x88cc('0x19c')]){_0x210923['createStateFinal'](_0x34c4d3,_0x322535,_0x5f3129,_0x88cc('0x1b8'));}else{_0x210923[_0x88cc('0xf5')](_0x34c4d3,_0x322535,_0x5f3129,_0x88cc('0x1b8'));}}break;case'8':_0x23212a['outboundCongestionCallsDay']+=0x1;_0x34c4d3['state']=0x8;_0x34c4d3['statedesc']=_0x88cc('0x1b9');_0x34c4d3[_0x88cc('0x102')]+=0x1;_0x34c4d3['countglobal']+=0x1;ami['emit']('custom:agentcongestion',ut[_0x88cc('0xed')](_0x31680d,'congestion'));_0x210923[_0x88cc('0xd1')](_0x34c4d3)[_0x88cc('0xc0')](loggerCatch('[syncAgentComplete][createHistory][8]'));if(_0x210923[_0x88cc('0x1ae')](0x8,_0x31680d,_0x23212a)){if(_0x34c4d3[_0x88cc('0x102')]>=_0x23212a['dialCongestionMaxRetry']){_0x210923[_0x88cc('0xf8')](_0x34c4d3,_0x322535,_0x5f3129,_0x88cc('0x1ba'));}else{_0x210923[_0x88cc('0xf5')](_0x34c4d3,_0x322535,_0x5f3129,_0x88cc('0x1ba'));}}break;case'11':_0x23212a[_0x88cc('0x1bb')]+=0x1;_0x34c4d3[_0x88cc('0xaf')]=0xb;_0x34c4d3['statedesc']=_0x88cc('0x122');_0x34c4d3['countabandonedretry']+=0x1;_0x34c4d3[_0x88cc('0x11b')]+=0x1;_0x210923['createHistory'](_0x34c4d3)[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x127')));if(_0x210923[_0x88cc('0x1ae')](0xb,_0x31680d,_0x23212a)){if(_0x34c4d3['countabandonedretry']>=_0x23212a[_0x88cc('0x125')]){_0x210923[_0x88cc('0xf8')](_0x34c4d3,_0x322535,_0x5f3129,_0x88cc('0x1bc'));}else{_0x210923[_0x88cc('0xf5')](_0x34c4d3,_0x322535,_0x5f3129,_0x88cc('0x1bc'));}}break;case'20':_0x23212a[_0x88cc('0x1bd')]+=0x1;_0x34c4d3[_0x88cc('0xaf')]=0x14;_0x34c4d3[_0x88cc('0xb0')]=_0x88cc('0x1be');_0x34c4d3[_0x88cc('0xf3')]+=0x1;_0x34c4d3['countglobal']+=0x1;ami['emit'](_0x88cc('0x1bf'),ut['buildObj'](_0x31680d,_0x88cc('0x1c0')));_0x210923[_0x88cc('0xd1')](_0x34c4d3)[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x1c1')));if(_0x210923[_0x88cc('0x1ae')](0x14,_0x31680d,_0x23212a)){if(_0x34c4d3['countagentrejectretry']>=_0x23212a[_0x88cc('0x1a6')]){_0x210923[_0x88cc('0xf8')](_0x34c4d3,_0x322535,_0x5f3129,'reason\x2020\x20agentreject');}else{_0x210923['stateGlobal'](_0x34c4d3,_0x322535,_0x5f3129,_0x88cc('0x1c2'));}}break;default:_0x23212a[_0x88cc('0x6f')]+=0x1;_0x34c4d3['state']=0xc;_0x34c4d3[_0x88cc('0xb0')]=_0x4a2670[_0x88cc('0x10c')];_0x210923['createHistory'](_0x34c4d3)[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x1c3')));if(_0x210923[_0x88cc('0x1ae')](_0x4a2670[_0x88cc('0x10c')],_0x31680d,_0x23212a)){if(_0x34c4d3[_0x88cc('0xef')]+_0x34c4d3[_0x88cc('0x102')]+_0x34c4d3[_0x88cc('0xf0')]+_0x34c4d3[_0x88cc('0xf1')]+_0x34c4d3['countdropretry']+_0x34c4d3[_0x88cc('0x103')]+_0x34c4d3[_0x88cc('0xec')]+_0x34c4d3[_0x88cc('0xf3')]>=_0x23212a['dialGlobalMaxRetry']){_0x210923[_0x88cc('0xf5')](_0x34c4d3,_0x322535,_0x5f3129,_0x4a2670[_0x88cc('0x10c')]);}else{_0x210923['createStateFinal'](_0x34c4d3,_0x322535,_0x5f3129,_0x4a2670[_0x88cc('0x10c')]);}}}});};Dialer['prototype'][_0x88cc('0xf5')]=function(_0x5ca1f0,_0x485fcf,_0x105575,_0x21051d){var _0x196f2a=new Final(_0x5ca1f0);_0x196f2a[_0x88cc('0xaf')]=0xf;_0x196f2a['statedesc']=_0x88cc('0x1c4');this[_0x88cc('0xf8')](_0x196f2a,_0x485fcf,_0x105575,_0x21051d);};Dialer[_0x88cc('0x1e')][_0x88cc('0xf8')]=function(_0x5bca7d,_0x56010c,_0x162823,_0x20d609){this['moveContactManagedDialer'](_0x5bca7d)[_0x88cc('0xc3')](function(){return _0x56010c(msgResponse(_0x88cc('0x1a9'),_0x88cc('0xdc'),_0x20d609));})[_0x88cc('0xc0')](function(){return _0x162823(msgResponse(_0x88cc('0x1c5'),_0x88cc('0x14a'),_0x88cc('0x1c6')));});};Dialer[_0x88cc('0x1e')][_0x88cc('0x15e')]=function(_0x3c414d){var _0x2262d9=_0x3c414d[_0x88cc('0x1c7')]/0x64;var _0x460078=_0x3c414d[_0x88cc('0x6a')]/(_0x3c414d[_0x88cc('0x6a')]+_0x3c414d['outboundAnswerCallsDay']);var _0x13627e=Math[_0x88cc('0x1c8')](_0x3c414d[_0x88cc('0x1c9')]*(_0x3c414d[_0x88cc('0x1ca')]/0x64));var _0x431c28=Math['round'](_0x3c414d['predictiveIntervalAvailable']*(_0x3c414d['predictiveIntervalMinThreshold']/0x64));var _0x3135fa=_0x3c414d[_0x88cc('0xaa')]+_0x3c414d[_0x88cc('0x5a')];var _0x3f88bb=Math[_0x88cc('0x1cb')](_0x3c414d[_0x88cc('0x78')]*_0x3c414d[_0x88cc('0x92')]*_0x3c414d[_0x88cc('0x1cc')]*_0x3c414d[_0x88cc('0x75')]);if(_[_0x88cc('0x43')](_0x3c414d['startProgressive'])){if(!_[_0x88cc('0x43')](_0x3c414d[_0x88cc('0x2b')])){_0x3c414d[_0x88cc('0x2b')]=undefined;loggerPredictive['error'](_0x88cc('0x1cd'),_0x88cc('0x1ce'));}if(!_['isUndefined'](_0x3c414d[_0x88cc('0x98')])){loggerPredictive['error']('[startMethodPredictive][StartProgressive]','check\x20handlePredictive\x20is\x20not\x20undefine');clearInterval(_0x3c414d['handlePredictive']);_0x3c414d['handlePredictive']=undefined;}_0x3c414d[_0x88cc('0x2c')]=moment()[_0x88cc('0x7d')](_0x88cc('0xfd'));loggerPredictive[_0x88cc('0x83')](_0x3c414d[_0x88cc('0x45')],'collection\x20data\x20in\x20progressive\x20at',_0x3c414d[_0x88cc('0x2c')]);this[_0x88cc('0x15c')](_0x3c414d,0x1);}else if(ifInterval(_0x3c414d['dialPredictiveInterval'],_0x3c414d[_0x88cc('0x2c')])){this[_0x88cc('0x15c')](_0x3c414d,0x1);loggerPredictiveCalls[_0x88cc('0x83')]('[startMethodPredictive][StartProgressive][Loop]',_0x3c414d[_0x88cc('0x2c')],_0x3c414d[_0x88cc('0x45')]);_0x3c414d[_0x88cc('0x78')]=0x0;_0x3c414d['predictiveIntervalErlangCallsDroppedCalls']=0x0;}else if(_0x2262d9<_0x460078&&_0x3c414d['dialPredictiveOptimization']==='dropRate'){freeVariablesPredictive(_0x3c414d);loggerPredictive['info'](_0x88cc('0x1cf'),_0x88cc('0x1d0'),_0x460078,_0x88cc('0x2c'),_0x3c414d['name']);}else if(_0x3f88bb<_0x3c414d[_0x88cc('0x1d1')]&&_0x3c414d['dialPredictiveOptimization']===_0x88cc('0x1d2')){freeVariablesPredictive(_0x3c414d);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x1d3'),_0x88cc('0x1d4'),_0x3f88bb,_0x88cc('0x1d5'),_0x3c414d[_0x88cc('0x1d1')],_0x88cc('0x2c'),_0x3c414d[_0x88cc('0x45')]);}else if(!ifInterval(_0x3c414d['dialPredictiveInterval'],_0x3c414d['startProgressive'])&&_[_0x88cc('0x43')](_0x3c414d[_0x88cc('0x2b')])&&!_[_0x88cc('0x43')](_0x3c414d[_0x88cc('0x2c')])){_0x3c414d[_0x88cc('0x2b')]=moment()['format'](_0x88cc('0xfd'));loggerPredictive['info'](_0x3c414d[_0x88cc('0x45')],_0x88cc('0x1d6'),_0x3c414d[_0x88cc('0x2b')]);this[_0x88cc('0xc6')](_0x3c414d['dialPredictiveInterval'])['then'](this[_0x88cc('0x1d7')](_0x3c414d))[_0x88cc('0xc3')](mergeDataErlangB(_0x3c414d))[_0x88cc('0xc3')](this[_0x88cc('0x1d8')](_0x3c414d))[_0x88cc('0xc0')](loggerCatchPredictive(_0x88cc('0x1d9'),_0x3c414d));}else if(!ifInterval(_0x3c414d[_0x88cc('0x1da')],_0x3c414d['startPredictive'])){_0x3c414d[_0x88cc('0x1d1')]=0x0;_0x3c414d[_0x88cc('0x2b')]=moment()[_0x88cc('0x7d')](_0x88cc('0xfd'));loggerPredictive['info'](_0x3c414d['name'],_0x88cc('0x1db'),_0x3c414d['startPredictive']);clearInterval(_0x3c414d[_0x88cc('0x98')]);_0x3c414d['handlePredictive']=undefined;this[_0x88cc('0xc6')](_0x3c414d[_0x88cc('0x1da')])[_0x88cc('0xc3')](this[_0x88cc('0x1d7')](_0x3c414d))[_0x88cc('0xc3')](mergeDataErlangB(_0x3c414d))[_0x88cc('0xc3')](this[_0x88cc('0x1d8')](_0x3c414d))[_0x88cc('0xc0')](loggerCatchPredictive(_0x88cc('0x1dc'),_0x3c414d));}else if(_0x3c414d[_0x88cc('0x1c9')]&&_0x3135fa<_0x3c414d[_0x88cc('0x1c9')]-_0x431c28){freeVariablesPredictive(_0x3c414d);loggerPredictive[_0x88cc('0x83')](_0x3c414d[_0x88cc('0x45')],_0x88cc('0x1dd'),_0x3135fa,_0x88cc('0x1de'),_0x3c414d[_0x88cc('0x1c9')],'-',_0x431c28,'=',_0x3c414d[_0x88cc('0x1c9')]-_0x431c28,')');}else if(_0x3c414d[_0x88cc('0x1c9')]&&_0x3135fa>_0x3c414d['predictiveIntervalAvailable']+_0x13627e){freeVariablesPredictive(_0x3c414d);loggerPredictive[_0x88cc('0x83')](_0x3c414d[_0x88cc('0x45')],_0x88cc('0x1dd'),_0x3135fa,_0x88cc('0x1df'),_0x3c414d[_0x88cc('0x1c9')],'+',_0x13627e,'=',_0x3c414d[_0x88cc('0x1c9')]+_0x13627e,')');}};Dialer[_0x88cc('0x1e')][_0x88cc('0x1d7')]=function(_0x214e2b){var _0x57069a=this;return function(_0x4440a4){return new BPromise(function(_0xff0ac0,_0x39547b){_['merge'](_0x214e2b,_0x4440a4[0x0]);if(checkGetDataPredictive(_0x4440a4[0x0])){var _0xd1bdb4=_0x214e2b[_0x88cc('0x1c9')]=_0x214e2b[_0x88cc('0x5a')]+_0x214e2b['available'];var _0x3a4244=_0x214e2b['dialPredictiveInterval']*0x3c;var _0x1c9e7c=_0x4440a4[0x0][_0x88cc('0x72')]+_0x4440a4[0x0][_0x88cc('0x71')];var _0x1c7510=(_0x4440a4[0x0][_0x88cc('0x70')]+_0x4440a4[0x0][_0x88cc('0x117')]+_0x4440a4[0x0][_0x88cc('0x73')])/_0x4440a4[0x0][_0x88cc('0x86')];_0x214e2b['predictiveIntervalHitRate']=_0x1c7510>0x0?_0x1c7510:0x1;switch(_0x214e2b[_0x88cc('0x1e0')]){case'dropRate':var _0x2a9653=_0x214e2b[_0x88cc('0x1c7')]/0x64;return _0x57069a[_0x88cc('0x1e1')](_0xd1bdb4,_0x3a4244,_0x1c9e7c,_0x1c7510,_0x2a9653)['then'](function(_0x597a34){return _0xff0ac0(_0x597a34);});case _0x88cc('0x1e2'):var _0x3e3693=_0x214e2b[_0x88cc('0x1c7')]/0x64;return _0x57069a[_0x88cc('0x1e3')](_0xd1bdb4,_0x3a4244,_0x1c9e7c,_0x1c7510,_0x3e3693)['then'](function(_0x3ca1da){return _0xff0ac0(_0x3ca1da);});default:return _0x39547b(msgResponse(_0x88cc('0x1e4'),_0x88cc('0x14a'),_0x88cc('0x1e5')));}}else{return _0x39547b(msgResponse(_0x88cc('0x1e4'),_0x88cc('0x14a'),_0x88cc('0x1e6')));}});};};Dialer[_0x88cc('0x1e')][_0x88cc('0x1e7')]=function(_0x5845a6){var _0x1cd638=this;return function(_0x5013f7){return new BPromise(function(_0x593476,_0x4cad14){_[_0x88cc('0x95')](_0x5845a6,_0x5013f7[0x0]);if(checkGetDataPredictive(_0x5013f7[0x0])){loggerPredictive[_0x88cc('0x83')](JSON[_0x88cc('0x51')](_0x5013f7[0x0]));if(_0x5845a6[_0x88cc('0x1e0')]===_0x88cc('0x1d2')){return _0x1cd638[_0x88cc('0xce')](_0x5845a6['id'])[_0x88cc('0xc3')](function(_0x3e23fb){var _0x1fc143=_0x5845a6[_0x88cc('0x56')]-_0x3e23fb[0x0]['outboundQueuePauses'];var _0xc5ce7f=_0x5845a6[_0x88cc('0x1da')]*0x3c;var _0x30b65c=_0x5013f7[0x0][_0x88cc('0x72')]+_0x5013f7[0x0][_0x88cc('0x71')];var _0x45f71a=(_0x5013f7[0x0]['predictiveIntervalAnsweredCalls']+_0x5013f7[0x0][_0x88cc('0x117')]+_0x5013f7[0x0]['predictiveIntervalDroppedCallsCallersExit'])/_0x5013f7[0x0]['predictiveIntervalTotalCalls'];var _0x2a469c=_0x5845a6[_0x88cc('0x1c7')]/0x64;_0x5845a6[_0x88cc('0x76')]=_0x3e23fb[0x0][_0x88cc('0x1e8')]||0x0;_0x5845a6[_0x88cc('0x1cc')]=_0x45f71a>0x0?_0x45f71a:0x1;return _0x1cd638[_0x88cc('0x1e1')](_0x1fc143,_0xc5ce7f,_0x30b65c,_0x45f71a,_0x2a469c);})[_0x88cc('0xc3')](function(_0x39bd9b){return _0x593476(_0x39bd9b);})[_0x88cc('0xc0')](function(_0x47b2db){return _0x4cad14(msgResponse(_0x88cc('0x1e9'),_0x88cc('0x14a'),JSON[_0x88cc('0x51')](_0x47b2db)));});}if(_0x5845a6[_0x88cc('0x1e0')]===_0x88cc('0x1e2')){return _0x1cd638['getVoiceQueueRtPauses'](_0x5845a6['id'])[_0x88cc('0xc3')](function(_0x64ba29){var _0x53a101=_0x5845a6['loggedIn']-_0x64ba29[0x0][_0x88cc('0x1e8')];var _0x33066b=_0x5845a6['dialPredictiveInterval']*0x3c;var _0x219c70=_0x5013f7[0x0][_0x88cc('0x72')]+_0x5013f7[0x0][_0x88cc('0x71')];var _0x243395=(_0x5013f7[0x0]['predictiveIntervalAnsweredCalls']+_0x5013f7[0x0][_0x88cc('0x117')]+_0x5013f7[0x0][_0x88cc('0x73')])/_0x5013f7[0x0]['predictiveIntervalTotalCalls'];var _0x59e74e=_0x5845a6[_0x88cc('0x1c7')]/0x64;_0x5845a6[_0x88cc('0x76')]=_0x64ba29[0x0]['outboundQueuePauses']||0x0;_0x5845a6['predictiveIntervalHitRate']=_0x243395>0x0?_0x243395:0x1;return _0x1cd638[_0x88cc('0x1e3')](_0x53a101,_0x33066b,_0x219c70,_0x243395,_0x59e74e);})[_0x88cc('0xc3')](function(_0x847860){return _0x593476(_0x847860);})[_0x88cc('0xc0')](function(_0x1e296b){return _0x4cad14(msgResponse(_0x88cc('0x1e9'),'Failure',JSON[_0x88cc('0x51')](_0x1e296b)));});}}else{return _0x4cad14(msgResponse(_0x88cc('0x1e4'),_0x88cc('0x14a'),_0x88cc('0x1e6')));}});};};Dialer[_0x88cc('0x1e')][_0x88cc('0x1d8')]=function(_0x5ca011){var _0x549093=this;return function(){var _0x1db0f3=0x0;var _0x250c20=Math['floor'](_0x5ca011[_0x88cc('0x79')]*0x3e8);if(_0x250c20>0x0){_0x250c20=_0x250c20<0x64?0x64:_0x250c20;loggerPredictive[_0x88cc('0x83')](_0x5ca011[_0x88cc('0x45')],_0x88cc('0x1ea'),_0x250c20,'milliseconds');_0x5ca011[_0x88cc('0x98')]=setInterval(function(){_0x549093[_0x88cc('0x98')](_0x5ca011);loggerPredictiveCalls[_0x88cc('0x83')](_0x88cc('0x1eb'),_0x1db0f3+=0x1);},_0x250c20);}else{loggerPredictive[_0x88cc('0x83')](_0x5ca011[_0x88cc('0x45')],_0x88cc('0x1ec'));}};};Dialer[_0x88cc('0x1e')][_0x88cc('0x1ed')]=function(_0x1dad5e,_0xf5862e){var _0x51c30e=this;return function(_0x459c93){if(_[_0x88cc('0x4e')](_0x459c93)){if(_['isNil'](_0xf5862e[_0x88cc('0xd6')])||!_0xf5862e['recallme']){if(_0x1dad5e['dialMethod']==='booked'){_0x1dad5e[_0x88cc('0x131')]=_[_0x88cc('0x43')](_0x1dad5e[_0x88cc('0x131')])?!![]:_0x1dad5e[_0x88cc('0x131')];var _0x5d5e63=uuid['v4']();_0x51c30e[_0x88cc('0x28')][_0x5d5e63]=new Action(_0x1dad5e,_0xf5862e,_0x5d5e63);loggerBooked[_0x88cc('0x83')](_0x88cc('0x1ee'),_0x5d5e63,'queueStatusComplete:\x20',JSON['stringify'](_0x1dad5e[_0x88cc('0x131')]),_0x88cc('0x1ef'),_0x1dad5e[_0x88cc('0x45')]);if(_0x1dad5e[_0x88cc('0x131')]){_0x1dad5e['queueStatusComplete']=![];_0x51c30e['queueBooked'][_0x51c30e[_0x88cc('0x28')][_0x5d5e63][_0x88cc('0xbc')]]=[];ami[_0x88cc('0xb7')]({'actionid':_0x5d5e63,'action':_0x88cc('0x1f0'),'queue':_0x1dad5e[_0x88cc('0x45')]})[_0x88cc('0xc0')](function(){_0x51c30e[_0x88cc('0xbb')](_0x1dad5e);_0x51c30e[_0x88cc('0xc7')]({'active':![],'ContactId':_0x51c30e[_0x88cc('0x28')][_0x5d5e63]['ContactId'],'ListId':_0x51c30e[_0x88cc('0x28')][_0x5d5e63][_0x88cc('0xd5')],'VoiceQueueId':_0x51c30e[_0x88cc('0x28')][_0x5d5e63]['VoiceQueueId']||undefined,'CampaignId':_0x51c30e['actions'][_0x5d5e63][_0x88cc('0xd8')]||undefined})[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x1f1')));delete _0x51c30e[_0x88cc('0x28')][_0x5d5e63];});}else{loggerBooked[_0x88cc('0x83')](_0x88cc('0x1f2'),JSON['stringify'](_0x1dad5e[_0x88cc('0x131')]),'Queue:\x20',_0x1dad5e['name']);_0x51c30e['updateOriginated'](_0x1dad5e);_0x51c30e[_0x88cc('0xc7')]({'active':![],'ContactId':_0x51c30e[_0x88cc('0x28')][_0x5d5e63][_0x88cc('0xd4')],'ListId':_0x51c30e[_0x88cc('0x28')][_0x5d5e63][_0x88cc('0xd5')],'VoiceQueueId':_0x51c30e[_0x88cc('0x28')][_0x5d5e63][_0x88cc('0xd7')]||undefined,'CampaignId':_0x51c30e[_0x88cc('0x28')][_0x5d5e63][_0x88cc('0xd8')]||undefined})[_0x88cc('0xc0')](loggerCatch('[unlockOriginate][syncQueueStatusComplete]'));delete _0x51c30e[_0x88cc('0x28')][_0x5d5e63];}}else{return _0x51c30e[_0x88cc('0x16b')](_0x1dad5e,_0xf5862e);}}else{if(getDiff(_0xf5862e['scheduledat'])<_0x1dad5e['dialRecallMeTimeout']*0x3c){if(_0xf5862e['Agent']&&!_0xf5862e[_0x88cc('0x1f3')][_0x88cc('0x1f4')]){_0x51c30e['preview'][_0x88cc('0x139')](_0xf5862e['id'])[_0x88cc('0x21')](function(){_0x51c30e[_0x88cc('0xbb')](_0x1dad5e);});}else{_0x51c30e['unlockContact']({'active':![]},_0xf5862e['id'],0x1)[_0x88cc('0x21')](function(){_0x51c30e[_0x88cc('0xbb')](_0x1dad5e);});}}else{_0x1dad5e['outboundReCallsDay']+=0x1;_0x51c30e[_0x88cc('0xbb')](_0x1dad5e);if(_0x1dad5e[_0x88cc('0x1f5')]){_0x51c30e['rescheduleContact']({'active':![],'recallme':![],'UserId':null,'ContactId':_0xf5862e['ContactId'],'ListId':_0xf5862e[_0x88cc('0xd5')],'VoiceQueueId':_0xf5862e[_0x88cc('0xd7')]||undefined,'CampaignId':_0xf5862e[_0x88cc('0xd8')]||undefined})['catch'](loggerCatch(_0x88cc('0x1f6')));_0x51c30e[_0x88cc('0xd1')](createObjHistory(_0x1dad5e,_0xf5862e,_0x88cc('0x1f7'),0x17,_0x88cc('0x1f8')))[_0x88cc('0xc0')](loggerCatch(_0x88cc('0x1f9')));}else{_0x51c30e[_0x88cc('0xd3')](createObjHistory(_0x1dad5e,_0xf5862e,_0x88cc('0x1fa'),0x16,'RecallFailedTimeout'),_0x88cc('0x1fb'),'[Originate][HistoryRecallClose]');}}}}else{_0x1dad5e['outboundBlacklistCallsDay']+=0x1;_0x51c30e['saveInDb'](createObjHistory(_0x1dad5e,_0xf5862e,'BLACKLIST',0xd,'Blacklist'),_0x88cc('0x1fc'),_0x88cc('0x1fd'));throw _0x88cc('0x1fe');}};};Dialer[_0x88cc('0x1e')]['handleIvr']=function(_0x489975){var _0x1086a3=this;var _0x1c5969=_0x489975['limitCalls']-_0x489975[_0x88cc('0x77')]-_0x489975[_0x88cc('0xca')];emitCampaignSummary(_0x489975);if(_0x1c5969>0x0){if(_0x1c5969>this[_0x88cc('0x27')]){_0x1c5969=this[_0x88cc('0x27')];}_0x489975[_0x88cc('0xca')]+=_0x1c5969;this[_0x88cc('0xcc')](_0x489975['id'],_0x1c5969,_0x489975['dialOrderByScheduledAt'],_0x489975)[_0x88cc('0xc3')](function(_0x42bb26){_0x489975['temp']-=_0x1c5969;_0x489975[_0x88cc('0xca')]=_0x489975[_0x88cc('0xca')]>0x0?_0x489975[_0x88cc('0xca')]:0x0;if(!checkContactEmpty(_0x42bb26)){_0x489975[_0x88cc('0x47')]='AVAILABLE_CONTACTS_FINISHED';logger[_0x88cc('0x83')](_0x88cc('0x1ff')+_0x489975['name']);}else{_0x489975[_0x88cc('0x77')]+=_0x42bb26[_0x88cc('0xa1')];_0x489975[_0x88cc('0x47')]=_0x88cc('0x200');for(var _0x10ed9e=0x0;_0x10ed9e<_0x42bb26['length'];_0x10ed9e+=0x1){_0x489975[_0x88cc('0x201')]+=0x1;if(_[_0x88cc('0xb6')](_0x42bb26[_0x10ed9e])||_[_0x88cc('0xb6')](_0x42bb26[_0x10ed9e][_0x88cc('0x16f')])||_['isNil'](_0x42bb26[_0x10ed9e][_0x88cc('0x16f')][_0x88cc('0x170')])){_0x1086a3[_0x88cc('0x202')](_0x88cc('0x203'),_0x489975,_0x42bb26[_0x10ed9e]);}else{_0x1086a3[_0x88cc('0xc4')](_[_0x88cc('0x12e')](_0x42bb26[_0x10ed9e],['CampaignId',_0x88cc('0x204')]))[_0x88cc('0xc3')](_0x1086a3[_0x88cc('0x1ed')](_0x489975,_0x42bb26[_0x10ed9e]))[_0x88cc('0xc0')](_0x1086a3['loggerHandler'](_0x88cc('0x205'),_0x489975));}}}})[_0x88cc('0xc0')](loggerGetContactDialer('[getContactCampaign2]',_0x489975,_0x1c5969));}};Dialer[_0x88cc('0x1e')][_0x88cc('0x15c')]=function(_0x859e04,_0x13dbec){var _0x2c5869=this;var _0x1dc0ec=[];var _0x43e4ba=_0x13dbec>=0x1?_0x13dbec:0x1;if(_0x859e04[_0x88cc('0x61')]===_0x88cc('0xb')){_0x43e4ba=0x1;}var _0x407160=Math[_0x88cc('0x1cb')](_0x859e04[_0x88cc('0xaa')]*_0x43e4ba)-_0x859e04[_0x88cc('0x77')]-_0x859e04[_0x88cc('0xca')];emitVoiceQueueSummary(_0x859e04);if(_0x859e04[_0x88cc('0x206')]>0x0){var _0x433b1c=_0x859e04[_0x88cc('0x206')]-_0x859e04[_0x88cc('0x77')]-_0x859e04[_0x88cc('0x5a')]-_0x859e04[_0x88cc('0xca')]-_0x859e04[_0x88cc('0x57')];if(_0x407160>_0x433b1c){_0x407160=_0x433b1c;}}if(_0x407160>0x0){if(_0x859e04[_0x88cc('0x61')]==='booked'){_0x407160=0x1;}if(_0x407160>this['maxNumberOriginate']){_0x407160=this['maxNumberOriginate'];}_0x859e04['temp']+=_0x407160;for(var _0x35688e in this[_0x88cc('0x25')]){if(typeof this[_0x88cc('0x25')][_0x35688e]!==_0x88cc('0xa2')){if(this['agents'][_0x35688e][_0x88cc('0xaf')]===_0x88cc('0x207')&&this[_0x88cc('0x25')][_0x35688e][_0x88cc('0xb8')]==='reachable'){_0x1dc0ec[_0x88cc('0x12d')](this[_0x88cc('0x25')][_0x35688e]['id']);}}}this[_0x88cc('0xc9')](_0x859e04['id'],_0x1dc0ec,_0x407160,_0x859e04['dialOrderByScheduledAt'],_0x859e04)[_0x88cc('0xc3')](function(_0x37c2cf){_0x859e04[_0x88cc('0xca')]-=_0x407160;_0x859e04[_0x88cc('0xca')]=_0x859e04[_0x88cc('0xca')]>0x0?_0x859e04[_0x88cc('0xca')]:0x0;if(!checkContactEmpty(_0x37c2cf)){_0x2c5869[_0x88cc('0xbf')](_0x859e04)[_0x88cc('0xc3')](sendMessageReschedule(_0x859e04))['catch'](loggerCatch('[countReScheduled]\x20'));}else{_0x859e04['originated']+=_0x37c2cf[_0x88cc('0xa1')];_0x859e04['message']=_0x859e04[_0x88cc('0x61')]===_0x88cc('0xb')?_0x88cc('0x175'):_0x88cc('0x200');for(var _0x573ce9=0x0;_0x573ce9<_0x37c2cf[_0x88cc('0xa1')];_0x573ce9+=0x1){if(_[_0x88cc('0xb6')](_0x37c2cf[_0x573ce9])||_[_0x88cc('0xb6')](_0x37c2cf[_0x573ce9][_0x88cc('0x16f')])||_[_0x88cc('0xb6')](_0x37c2cf[_0x573ce9][_0x88cc('0x16f')][_0x88cc('0x170')])){_0x2c5869['emptyContact'](_0x88cc('0x203'),_0x859e04,_0x37c2cf[_0x573ce9]);}else{_0x2c5869['checkIsBlackList'](_[_0x88cc('0x12e')](_0x37c2cf[_0x573ce9],[_0x88cc('0xd7'),_0x88cc('0x204')]))[_0x88cc('0xc3')](_0x2c5869[_0x88cc('0x1ed')](_0x859e04,_0x37c2cf[_0x573ce9]))['catch'](_0x2c5869[_0x88cc('0xd2')](_0x88cc('0x203'),_0x859e04));}}}})[_0x88cc('0xc0')](loggerGetContactDialer('[getContactDialer2]',_0x859e04,_0x407160));}};Dialer[_0x88cc('0x1e')][_0x88cc('0x98')]=function(_0x52d468){if(_0x52d468[_0x88cc('0x206')]>0x0){var _0x2c034f=_0x52d468[_0x88cc('0x206')]-_0x52d468[_0x88cc('0x77')]-_0x52d468[_0x88cc('0x5a')];if(_0x2c034f>0x0){this['tryOriginatePredictive'](_0x52d468);}else{loggerPredictiveCalls['info']('[handlePredictive][limitChannel]');}}else{this[_0x88cc('0x208')](_0x52d468);}};Dialer[_0x88cc('0x1e')][_0x88cc('0x208')]=function(_0x1e2504){var _0x532854=this;var _0x9de31c=[];_0x1e2504['originated']+=0x1;for(var _0x4f91e5 in this[_0x88cc('0x25')]){if(typeof this[_0x88cc('0x25')][_0x4f91e5]!==_0x88cc('0xa2')){if(this['agents'][_0x4f91e5][_0x88cc('0xaf')]===_0x88cc('0x207')&&this[_0x88cc('0x25')][_0x4f91e5]['status']==='reachable'){_0x9de31c['push'](this[_0x88cc('0x25')][_0x4f91e5]['id']);}}}this[_0x88cc('0xc9')](_0x1e2504['id'],_0x9de31c,0x1,_0x1e2504[_0x88cc('0x209')],_0x1e2504)['then'](function(_0xaaf183){if(!checkContactEmpty(_0xaaf183)){checkContactLowerLimitOriginate(_0x1e2504,0x1,0x0);_0x532854[_0x88cc('0xbf')](_0x1e2504)['then'](sendMessageReschedule(_0x1e2504))[_0x88cc('0xc0')](loggerCatch('[countReScheduled]\x20'));}else{_0x1e2504['message']=_0x88cc('0x200');if(_[_0x88cc('0xb6')](_0xaaf183[0x0])||_[_0x88cc('0xb6')](_0xaaf183[0x0][_0x88cc('0x16f')])||_['isNil'](_0xaaf183[0x0][_0x88cc('0x16f')][_0x88cc('0x170')])){_0x532854[_0x88cc('0x202')](_0x88cc('0x203'),_0x1e2504,_0xaaf183[0x0]);}else{_0x532854[_0x88cc('0xc2')](_[_0x88cc('0x12e')](_0xaaf183[0x0],['VoiceQueueId',_0x88cc('0x204')]))['then'](_0x532854['checkContactBlack'](_0x1e2504,_0xaaf183[0x0]))['catch'](_0x532854[_0x88cc('0xd2')](_0x88cc('0x20a'),_0x1e2504));}}})['catch'](loggerGetContactDialer(_0x88cc('0x20b'),_0x1e2504,0x1));emitVoiceQueueSummary(_0x1e2504);};Dialer[_0x88cc('0x1e')]['abandonmentRate']=function(_0x2b0595,_0x571b83,_0x367e10,_0xfd4392,_0x480709,_0x1dda1e){loggerPredictive['info'](_0x88cc('0x20c'));loggerPredictive[_0x88cc('0x83')](_0x88cc('0x20d'),_0x2b0595);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x20e'),_0x571b83);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x20f'),_0x367e10);loggerPredictive['info']('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',_0xfd4392);loggerPredictive['info'](_0x88cc('0x210'),_0x480709);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x8b'));return new BPromise(function(_0x3b53f2,_0x529915){if(_0x2b0595<=0x0||isNaN(_0x2b0595)){return _0x529915(msgResponse(_0x88cc('0x211'),_0x88cc('0x50'),'m\x20=\x20'+_0x2b0595));}if(_0x367e10<=0x0||isNaN(_0x367e10)){return _0x529915(msgResponse('[abandonmentRate]','Error',_0x88cc('0x212')+_0x367e10));}if(_0xfd4392<=0x0||isNaN(_0xfd4392)){return _0x529915(msgResponse('[abandonmentRate]',_0x88cc('0x50'),_0x88cc('0x213')+_0xfd4392));}if(_0x571b83<=0x0||isNaN(_0x571b83)){return _0x529915(msgResponse(_0x88cc('0x211'),'Error','interval\x20=\x20'+_0x571b83));}if(_0x480709<=0x0||isNaN(_0x480709)){return _0x529915(msgResponse(_0x88cc('0x211'),'Error',_0x88cc('0x214')+_0x480709));}_0x1dda1e=_0x1dda1e||0x0;var _0x5db8ad=0x1/_0x367e10;var _0x469cbc=0x0;var _0x5551de=0x0;var _0x3fa2f7=0x0;var _0x20ca30=0x0;for(var _0x25a0ca=0x0;_0x3fa2f7<_0x480709;_0x25a0ca+=0x1){_0x5551de=_0x25a0ca/_0x571b83;_0x469cbc=(_0xfd4392*_0x5551de+_0x1dda1e)/_0x5db8ad;_0x3fa2f7=erlangb(_0x469cbc,_0x2b0595);_0x20ca30=_0x469cbc/_0x2b0595*(0x1-erlangb(_0x469cbc,_0x2b0595));}return _0x3b53f2({'erlangCalls':_0x25a0ca,'erlangCallToSecond':_0x571b83/_0x25a0ca,'erlangAbandonmentRate':_0x3fa2f7,'erlangBusyFactor':_0x20ca30});});};Dialer[_0x88cc('0x1e')][_0x88cc('0x1e3')]=function(_0x3bb443,_0x421954,_0x1f7175,_0x1dab51,_0x2e303c,_0x4ed2a9){loggerPredictive[_0x88cc('0x83')](_0x88cc('0x215'));loggerPredictive['info'](_0x88cc('0x20d'),_0x3bb443);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x20e'),_0x421954);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x20f'),_0x1f7175);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x216'),_0x1dab51);loggerPredictive['info']('Umin:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x2e303c);loggerPredictive[_0x88cc('0x83')](_0x88cc('0x8b'));return new BPromise(function(_0x37476d,_0x57764f){if(_0x3bb443<=0x0||isNaN(_0x3bb443)){return _0x57764f(msgResponse(_0x88cc('0x217'),'Error',_0x88cc('0x218')+_0x3bb443));}if(_0x1f7175<=0x0||isNaN(_0x1f7175)){return _0x57764f(msgResponse('[busyFactor]',_0x88cc('0x50'),'Ts\x20=\x20'+_0x1f7175));}if(_0x1dab51<=0x0||isNaN(_0x1dab51)){return _0x57764f(msgResponse(_0x88cc('0x217'),_0x88cc('0x50'),_0x88cc('0x213')+_0x1dab51));}if(_0x421954<=0x0||isNaN(_0x421954)){return _0x57764f(msgResponse(_0x88cc('0x217'),_0x88cc('0x50'),_0x88cc('0x219')+_0x421954));}if(_0x2e303c<=0x0||isNaN(_0x2e303c)){return _0x57764f(msgResponse(_0x88cc('0x217'),_0x88cc('0x50'),_0x88cc('0x21a')+_0x2e303c));}_0x4ed2a9=_0x4ed2a9||0x0;var _0x23863d=0x1/_0x1f7175;var _0x2a9154=0x0;var _0x3a8edd=0x0;var _0x55f5c0=0x0;var _0x296e47=0x0;for(var _0x5cfb89=0x0;_0x296e47<_0x2e303c;_0x5cfb89+=0x1){_0x3a8edd=_0x5cfb89/_0x421954;_0x2a9154=(_0x1dab51*_0x3a8edd+_0x4ed2a9)/_0x23863d;_0x55f5c0=erlangb(_0x2a9154,_0x3bb443);_0x296e47=_0x2a9154/_0x3bb443*(0x1-erlangb(_0x2a9154,_0x3bb443));}return _0x37476d({'erlangCalls':_0x5cfb89,'erlangCallToSecond':_0x421954/_0x5cfb89,'erlangAbandonmentRate':_0x55f5c0,'erlangBusyFactor':_0x296e47});});};module[_0x88cc('0x21b')]=Dialer;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6af6=['number','starttime','responsetime','droptime','ringtime','holdtime','talktime','connectedlinename','reason','callback','callbackat','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','exports','lodash','moment','milliseconds','diff','scheduledat','type','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','uniqueid','calleridname','name','calleridnum'];(function(_0x5bd538,_0x12cdb9){var _0x3402d4=function(_0xc9f20e){while(--_0xc9f20e){_0x5bd538['push'](_0x5bd538['shift']());}};_0x3402d4(++_0x12cdb9);}(_0x6af6,0x83));var _0x66af=function(_0xff08f2,_0x5dd578){_0xff08f2=_0xff08f2-0x0;var _0x443cef=_0x6af6[_0xff08f2];return _0x443cef;};'use strict';var util=require('util');var _=require(_0x66af('0x0'));var moment=require(_0x66af('0x1'));function getSeconds(_0x40430d,_0x21b2f7){var _0xe4f016=moment(_0x40430d)[_0x66af('0x2')](0x0);var _0x2b5686=moment(_0x21b2f7)[_0x66af('0x2')](0x0);return _0xe4f016[_0x66af('0x3')](_0x2b5686,'seconds');}function QueueCallerAbandon(_0x20ba8a,_0x216551){this[_0x66af('0x4')]=_0x20ba8a[_0x66af('0x4')];this[_0x66af('0x5')]=_0x20ba8a['type'];this['campaigntype']=_0x20ba8a[_0x66af('0x5')]===_0x66af('0x6')?_0x66af('0x7'):_0x20ba8a[_0x66af('0x5')];this[_0x66af('0x8')]=_0x20ba8a[_0x66af('0x8')];this[_0x66af('0x9')]=_0x20ba8a['countcongestionretry'];this[_0x66af('0xa')]=_0x20ba8a[_0x66af('0xa')];this[_0x66af('0xb')]=_0x20ba8a[_0x66af('0x8')]+_0x20ba8a[_0x66af('0x9')]+_0x20ba8a['countnoanswerretry']+_0x20ba8a[_0x66af('0xc')]+_0x20ba8a[_0x66af('0xd')]+_0x20ba8a[_0x66af('0xe')]+_0x20ba8a[_0x66af('0xf')]+_0x20ba8a[_0x66af('0x10')];this[_0x66af('0xc')]=_0x20ba8a[_0x66af('0xc')];this[_0x66af('0xd')]=_0x20ba8a['countdropretry'];this[_0x66af('0xe')]=_0x20ba8a['countabandonedretry'];this[_0x66af('0xf')]=_0x20ba8a['countmachineretry'];this[_0x66af('0x10')]=_0x20ba8a['countagentrejectretry'];this['uniqueid']=_0x216551[_0x66af('0x11')];this[_0x66af('0x12')]=_0x20ba8a[_0x66af('0x13')];this[_0x66af('0x14')]=_0x20ba8a[_0x66af('0x15')];this[_0x66af('0x16')]=_0x20ba8a[_0x66af('0x16')];this['responsetime']=_0x20ba8a[_0x66af('0x17')];this[_0x66af('0x18')]=_0x20ba8a['droptime'];this['endtime']=this[_0x66af('0x18')];this[_0x66af('0x19')]=getSeconds(_0x20ba8a[_0x66af('0x17')],_0x20ba8a[_0x66af('0x16')]);this[_0x66af('0x1a')]=getSeconds(this[_0x66af('0x18')],_0x20ba8a[_0x66af('0x17')]);this[_0x66af('0x1b')]=0x0;this[_0x66af('0x7')]=_0x216551[_0x66af('0x7')];this['membername']=_0x216551[_0x66af('0x1c')];this['reason']=_0x216551[_0x66af('0x1d')];this[_0x66af('0x1e')]=_0x20ba8a[_0x66af('0x1e')];this['callbackuniqueid']=_0x20ba8a['callbackuniqueid'];this[_0x66af('0x1f')]=_0x20ba8a[_0x66af('0x1f')];this['recallme']=_0x20ba8a['recallme'];this['ContactId']=_0x20ba8a['ContactId'];this[_0x66af('0x20')]=_0x20ba8a[_0x66af('0x20')];this[_0x66af('0x21')]=_0x20ba8a[_0x66af('0x21')];this[_0x66af('0x22')]=_0x20ba8a['VoiceQueueId'];this[_0x66af('0x23')]=_0x20ba8a[_0x66af('0x23')];this[_0x66af('0x24')]=_0x20ba8a[_0x66af('0x24')]||'';this['originatecalleridname']=_0x20ba8a['originatecalleridname']||'';}module[_0x66af('0x25')]=QueueCallerAbandon;
\ No newline at end of file
+var _0xad94=['queue','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','uniqueid','calleridname','name','calleridnum','number','starttime','responsetime','droptime','endtime','ringtime','holdtime','talktime','membername','connectedlinename','reason','callback','callbackuniqueid','recallme','ContactId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','moment','milliseconds','seconds','scheduledat','type','campaigntype','outbound'];(function(_0x2bfd54,_0x50ab56){var _0x711287=function(_0xed54a6){while(--_0xed54a6){_0x2bfd54['push'](_0x2bfd54['shift']());}};_0x711287(++_0x50ab56);}(_0xad94,0x99));var _0x4ad9=function(_0x35bf8e,_0x1930fd){_0x35bf8e=_0x35bf8e-0x0;var _0x1b137c=_0xad94[_0x35bf8e];return _0x1b137c;};'use strict';var util=require('util');var _=require('lodash');var moment=require(_0x4ad9('0x0'));function getSeconds(_0x5dd7f6,_0x133841){var _0x25fa89=moment(_0x5dd7f6)['milliseconds'](0x0);var _0x58c4f5=moment(_0x133841)[_0x4ad9('0x1')](0x0);return _0x25fa89['diff'](_0x58c4f5,_0x4ad9('0x2'));}function QueueCallerAbandon(_0x530be9,_0x450c29){this[_0x4ad9('0x3')]=_0x530be9[_0x4ad9('0x3')];this[_0x4ad9('0x4')]=_0x530be9[_0x4ad9('0x4')];this[_0x4ad9('0x5')]=_0x530be9['type']===_0x4ad9('0x6')?_0x4ad9('0x7'):_0x530be9[_0x4ad9('0x4')];this[_0x4ad9('0x8')]=_0x530be9[_0x4ad9('0x8')];this['countcongestionretry']=_0x530be9[_0x4ad9('0x9')];this[_0x4ad9('0xa')]=_0x530be9[_0x4ad9('0xa')];this['countglobal']=_0x530be9[_0x4ad9('0x8')]+_0x530be9[_0x4ad9('0x9')]+_0x530be9[_0x4ad9('0xa')]+_0x530be9[_0x4ad9('0xb')]+_0x530be9[_0x4ad9('0xc')]+_0x530be9[_0x4ad9('0xd')]+_0x530be9[_0x4ad9('0xe')]+_0x530be9[_0x4ad9('0xf')];this[_0x4ad9('0xb')]=_0x530be9[_0x4ad9('0xb')];this[_0x4ad9('0xc')]=_0x530be9[_0x4ad9('0xc')];this['countabandonedretry']=_0x530be9[_0x4ad9('0xd')];this['countmachineretry']=_0x530be9[_0x4ad9('0xe')];this['countagentrejectretry']=_0x530be9[_0x4ad9('0xf')];this[_0x4ad9('0x10')]=_0x450c29[_0x4ad9('0x10')];this[_0x4ad9('0x11')]=_0x530be9[_0x4ad9('0x12')];this[_0x4ad9('0x13')]=_0x530be9[_0x4ad9('0x14')];this[_0x4ad9('0x15')]=_0x530be9[_0x4ad9('0x15')];this[_0x4ad9('0x16')]=_0x530be9['responsetime'];this[_0x4ad9('0x17')]=_0x530be9['droptime'];this[_0x4ad9('0x18')]=this[_0x4ad9('0x17')];this[_0x4ad9('0x19')]=getSeconds(_0x530be9[_0x4ad9('0x16')],_0x530be9['starttime']);this[_0x4ad9('0x1a')]=getSeconds(this['droptime'],_0x530be9[_0x4ad9('0x16')]);this[_0x4ad9('0x1b')]=0x0;this['queue']=_0x450c29['queue'];this[_0x4ad9('0x1c')]=_0x450c29[_0x4ad9('0x1d')];this[_0x4ad9('0x1e')]=_0x450c29[_0x4ad9('0x1e')];this[_0x4ad9('0x1f')]=_0x530be9['callback'];this[_0x4ad9('0x20')]=_0x530be9[_0x4ad9('0x20')];this['callbackat']=_0x530be9['callbackat'];this['recallme']=_0x530be9[_0x4ad9('0x21')];this[_0x4ad9('0x22')]=_0x530be9[_0x4ad9('0x22')];this['ListId']=_0x530be9['ListId'];this[_0x4ad9('0x23')]=_0x530be9['UserId'];this[_0x4ad9('0x24')]=_0x530be9[_0x4ad9('0x24')];this['CampaignId']=_0x530be9[_0x4ad9('0x25')];this[_0x4ad9('0x26')]=_0x530be9[_0x4ad9('0x26')]||'';this[_0x4ad9('0x27')]=_0x530be9[_0x4ad9('0x27')]||'';}module['exports']=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(_0x55c787,_0x5c9e8e){var _0x31f3c6=function(_0x131c1f){while(--_0x131c1f){_0x55c787['push'](_0x55c787['shift']());}};_0x31f3c6(++_0x5c9e8e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x433a86,_0x175b5c){_0x433a86=_0x433a86-0x0;var _0x23000c=_0xa9e0[_0x433a86];return _0x23000c;};'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(_0x10ef29,_0x246697){var _0x329848=function(_0x2f387b){while(--_0x2f387b){_0x10ef29['push'](_0x10ef29['shift']());}};_0x329848(++_0x246697);}(_0xa9e0,0x123));var _0x0a9e=function(_0xc6be3a,_0x540e05){_0xc6be3a=_0xc6be3a-0x0;var _0x56a310=_0xa9e0[_0xc6be3a];return _0x56a310;};'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 _0x1d2d=['Trunk\x20not\x20working','[Fax][checkTrunk][Empty\x20Fax]','Empty\x20Fax','Empty\x20path','Is\x20Valid','exports','util','lodash','bluebird','uuid','moment','tiff2pdf','fax','../ami','./rpcDb','./channel','./util/util','./action','../rpc/attachment','../rpc/faxMessage','channels','faxAccounts','trunks','actions','newchannel','syncNewchannel','bind','varset','newstate','syncNewState','newexten','syncNewExten','faxstatus','syncFaxStatus','syncReceiveFax','hangup','originateresponse','syncOriginateResponse','prototype','hasOwnProperty','exten','uniqueid','channel','name','info','\x20syncNewchannel\x20','syncVarSet','variable','value','channelstate','channelstatedesc','operation','status','localstationid','filename','\x20syncFaxStatus\x20','remotestationid','pagestransferred','resolution','transferrate','calleridnum','message','create','parse','.pdf','then','notify','error','\x20notify\x20','stringify','catch','\x20receiveFax\x20','merge','pick','update','AttachmentId','logger','[Fax][Message][Error][NoUpdate1]','[Fax][Message][Error][NoUpdate2]','updateStatus','[Fax][Message][Updated]','[Fax][Message][NoUpdate1]','[Fax][Message][NoUpdate2]','syncHangup','\x20hangup\x20sendFile\x20','\x20hangup\x20faxRiceive\x20','faxpages','SUCCESS','SENDING\x20FAILED:\x20','faxstatusstring','SENDING\x20FAILED','execOriginate','Fax\x20received','[Fax][execOriginate][failure]','Fax\x20failed','FaxAccountId','Trunk','isValid','Trunk\x20Reachable','format','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','dir','path','XMF-PATH','Convert\x20pdf\x20to\x20tif','Action','variablesAction','addVariables','ext','isTrunkReachable','isNil','active','SIP/%s','reachable','unmonitored','[Fax][checkTrunk][Trunk\x20not\x20work]','\x20Trunk\x20is\x20not\x20active'];(function(_0x54fe6d,_0x410a4f){var _0x1b95d3=function(_0x2c4b4a){while(--_0x2c4b4a){_0x54fe6d['push'](_0x54fe6d['shift']());}};_0x1b95d3(++_0x410a4f);}(_0x1d2d,0xf0));var _0xd1d2=function(_0x27714d,_0x467356){_0x27714d=_0x27714d-0x0;var _0x2b6b1b=_0x1d2d[_0x27714d];return _0x2b6b1b;};'use strict';var util=require(_0xd1d2('0x0'));var _=require(_0xd1d2('0x1'));var BPromise=require(_0xd1d2('0x2'));var uuid=require(_0xd1d2('0x3'));var moment=require(_0xd1d2('0x4'));var path=require('path');var tiff2pdf=require(_0xd1d2('0x5'));var gs=require('./util/gs');var logger=require('../../../config/logger')(_0xd1d2('0x6'));var ami=require(_0xd1d2('0x7'));var rpcDb=require(_0xd1d2('0x8'));var Channel=require(_0xd1d2('0x9'));var ut=require(_0xd1d2('0xa'));var Action=require(_0xd1d2('0xb'));var faxAccount=require('../rpc/faxAccount');var attachment=require(_0xd1d2('0xc'));var faxMessage=require(_0xd1d2('0xd'));function Fax(_0x35735f){this[_0xd1d2('0xe')]={};this[_0xd1d2('0xf')]=_0x35735f[_0xd1d2('0xf')];this[_0xd1d2('0x10')]=_0x35735f[_0xd1d2('0x10')];this[_0xd1d2('0x11')]={};ami['on'](_0xd1d2('0x12'),this[_0xd1d2('0x13')][_0xd1d2('0x14')](this));ami['on'](_0xd1d2('0x15'),this['syncVarSet'][_0xd1d2('0x14')](this));ami['on'](_0xd1d2('0x16'),this[_0xd1d2('0x17')][_0xd1d2('0x14')](this));ami['on'](_0xd1d2('0x18'),this[_0xd1d2('0x19')][_0xd1d2('0x14')](this));ami['on'](_0xd1d2('0x1a'),this[_0xd1d2('0x1b')][_0xd1d2('0x14')](this));ami['on']('receivefax',this[_0xd1d2('0x1c')][_0xd1d2('0x14')](this));ami['on'](_0xd1d2('0x1d'),this['syncHangup'][_0xd1d2('0x14')](this));ami['on'](_0xd1d2('0x1e'),this[_0xd1d2('0x1f')][_0xd1d2('0x14')](this));}Fax[_0xd1d2('0x20')][_0xd1d2('0x13')]=function(_0x275996){if(_0x275996['context']==='from-voip-provider'){for(var _0x3be186 in this['faxAccounts']){if(this[_0xd1d2('0xf')][_0xd1d2('0x21')](_0x3be186)){if(_0x275996[_0xd1d2('0x22')]===this[_0xd1d2('0xf')][_0x3be186]['localstationid']){this['channels'][_0x275996[_0xd1d2('0x23')]]={};this['channels'][_0x275996['uniqueid']][_0xd1d2('0x24')]=_0x275996[_0xd1d2('0x24')];this[_0xd1d2('0xe')][_0x275996[_0xd1d2('0x23')]]['id']=this['faxAccounts'][_0x3be186]['id'];this[_0xd1d2('0xe')][_0x275996[_0xd1d2('0x23')]][_0xd1d2('0x25')]=this['faxAccounts'][_0x3be186]['name'];logger[_0xd1d2('0x26')](_0x275996[_0xd1d2('0x23')],_0xd1d2('0x27'));}}}}if(this[_0xd1d2('0x11')][_0x275996[_0xd1d2('0x23')]]){this[_0xd1d2('0xe')][_0x275996[_0xd1d2('0x23')]]={};this['channels'][_0x275996[_0xd1d2('0x23')]][_0xd1d2('0x24')]=_0x275996[_0xd1d2('0x24')];logger[_0xd1d2('0x26')](_0x275996[_0xd1d2('0x23')],_0xd1d2('0x27'));}};Fax[_0xd1d2('0x20')][_0xd1d2('0x28')]=function(_0xe6ef3c){if(this[_0xd1d2('0xe')][_0xe6ef3c[_0xd1d2('0x23')]]){for(var _0x4e1bc2 in _0xe6ef3c['variable']){if(_0xe6ef3c[_0xd1d2('0x29')][_0xd1d2('0x21')](_0x4e1bc2)){this[_0xd1d2('0xe')][_0xe6ef3c[_0xd1d2('0x23')]][_0x4e1bc2]=_0xe6ef3c[_0xd1d2('0x2a')];}}}};Fax['prototype'][_0xd1d2('0x17')]=function(_0x41171c){if(this[_0xd1d2('0xe')][_0x41171c['uniqueid']]){this[_0xd1d2('0xe')][_0x41171c[_0xd1d2('0x23')]][_0xd1d2('0x2b')]=_0x41171c['channelstate'];this[_0xd1d2('0xe')][_0x41171c[_0xd1d2('0x23')]][_0xd1d2('0x2c')]=_0x41171c[_0xd1d2('0x2c')];}};Fax[_0xd1d2('0x20')][_0xd1d2('0x19')]=function(_0x42e89d){if(this[_0xd1d2('0xe')][_0x42e89d[_0xd1d2('0x23')]]){for(var _0x4501b6 in _0x42e89d[_0xd1d2('0x29')]){if(_0x42e89d[_0xd1d2('0x29')][_0xd1d2('0x21')](_0x4501b6)){this[_0xd1d2('0xe')][_0x42e89d[_0xd1d2('0x23')]][_0x4501b6]=_0x42e89d[_0xd1d2('0x2a')];}}}};Fax[_0xd1d2('0x20')][_0xd1d2('0x1b')]=function(_0x5c7efd){if(this[_0xd1d2('0xe')][_0x5c7efd[_0xd1d2('0x23')]]){this[_0xd1d2('0xe')][_0x5c7efd['uniqueid']][_0xd1d2('0x2d')]=_0x5c7efd['operation'];this['channels'][_0x5c7efd[_0xd1d2('0x23')]][_0xd1d2('0x2e')]=_0x5c7efd[_0xd1d2('0x2e')];this[_0xd1d2('0xe')][_0x5c7efd[_0xd1d2('0x23')]][_0xd1d2('0x2f')]=_0x5c7efd['localstationid'];this[_0xd1d2('0xe')][_0x5c7efd[_0xd1d2('0x23')]]['filename']=_0x5c7efd[_0xd1d2('0x30')];logger[_0xd1d2('0x26')](_0x5c7efd[_0xd1d2('0x23')],_0xd1d2('0x31'));}};Fax['prototype']['syncReceiveFax']=function(_0x2fd2c5){var _0x54fbbb=this;if(this['channels'][_0x2fd2c5['uniqueid']]){var _0x43e70f=this['channels'][_0x2fd2c5[_0xd1d2('0x23')]]['id'];this['channels'][_0x2fd2c5['uniqueid']]['remotestationid']=_0x2fd2c5[_0xd1d2('0x32')];this[_0xd1d2('0xe')][_0x2fd2c5[_0xd1d2('0x23')]][_0xd1d2('0x33')]=_0x2fd2c5[_0xd1d2('0x33')];this[_0xd1d2('0xe')][_0x2fd2c5[_0xd1d2('0x23')]][_0xd1d2('0x2f')]=_0x2fd2c5[_0xd1d2('0x2f')];this[_0xd1d2('0xe')][_0x2fd2c5[_0xd1d2('0x23')]][_0xd1d2('0x34')]=_0x2fd2c5[_0xd1d2('0x34')];this[_0xd1d2('0xe')][_0x2fd2c5['uniqueid']]['transferrate']=_0x2fd2c5[_0xd1d2('0x35')];this[_0xd1d2('0xe')][_0x2fd2c5[_0xd1d2('0x23')]]['filename']=_0x2fd2c5['filename'];this[_0xd1d2('0xe')][_0x2fd2c5[_0xd1d2('0x23')]]['calleridnum']=_0x2fd2c5[_0xd1d2('0x36')];if(this['channels'][_0x2fd2c5['uniqueid']][_0xd1d2('0x33')]>0x0){tiff2pdf(_0x2fd2c5['filename'],'/var/opt/motion2/server/files/attachments/',function(_0x1825f2){logger[_0xd1d2('0x26')](_0x2fd2c5[_0xd1d2('0x23')],'\x20result\x20conversion\x20file\x20',_0x1825f2[_0xd1d2('0x37')]);attachment[_0xd1d2('0x38')]({'name':path[_0xd1d2('0x39')](_0x2fd2c5[_0xd1d2('0x30')])['name'],'basename':path[_0xd1d2('0x39')](_0x2fd2c5[_0xd1d2('0x30')])['name']+_0xd1d2('0x3a'),'type':'application/pdf'})[_0xd1d2('0x3b')](function(_0xd56adb){faxAccount[_0xd1d2('0x3c')](_0x43e70f,{'from':_0x2fd2c5[_0xd1d2('0x36')],'mapKey':_0xd1d2('0x6'),'body':path['parse'](_0x2fd2c5['filename'])[_0xd1d2('0x25')]+_0xd1d2('0x3a'),'AttachmentId':_0xd56adb['id']})['catch'](function(_0xa4c11d){logger[_0xd1d2('0x3d')](_0x2fd2c5[_0xd1d2('0x23')],_0xd1d2('0x3e'),JSON[_0xd1d2('0x3f')](_0xa4c11d));});})[_0xd1d2('0x40')](function(_0x112d67){logger['error'](_0x2fd2c5[_0xd1d2('0x23')],_0xd1d2('0x41'),JSON['stringify'](_0x112d67));});});}logger[_0xd1d2('0x26')](_0x2fd2c5[_0xd1d2('0x23')],'\x20receiveFax\x20');}};Fax['prototype'][_0xd1d2('0x1f')]=function(_0x182ea8){if(this['actions'][_0x182ea8[_0xd1d2('0x23')]]){_[_0xd1d2('0x42')](this[_0xd1d2('0xe')][_0x182ea8[_0xd1d2('0x23')]],_[_0xd1d2('0x43')](_0x182ea8,['response','reason']));}};function updateStatus(_0x314af3){if(_0x314af3['AttachmentId']){faxMessage[_0xd1d2('0x44')](_0x314af3[_0xd1d2('0x45')],{'failMessage':'SENDING\x20FAILED\x20'})[_0xd1d2('0x3b')](function(_0x35d724){ut['logger']('[Fax][Message][Error][Updated]',_0x35d724);})[_0xd1d2('0x40')](function(_0x20ab8b){ut[_0xd1d2('0x46')](_0xd1d2('0x47'),_0x20ab8b);});}else{ut[_0xd1d2('0x46')](_0xd1d2('0x48'));}}Fax[_0xd1d2('0x20')][_0xd1d2('0x49')]=function(_0x33e332,_0x5e15cb,_0x1958f3){var _0x530db0=this;var _0x55c44f={};if(_0x5e15cb){_0x55c44f={'read':_0x5e15cb};}else{_0x55c44f={'failMessage':_0x1958f3};}if(this[_0xd1d2('0x11')][_0x33e332][_0xd1d2('0x45')]){faxMessage[_0xd1d2('0x44')](this[_0xd1d2('0x11')][_0x33e332][_0xd1d2('0x45')],_0x55c44f)[_0xd1d2('0x3b')](function(_0x35a51b){ut[_0xd1d2('0x46')](_0xd1d2('0x4a'),_0x35a51b);})[_0xd1d2('0x40')](function(_0x28173a){ut[_0xd1d2('0x46')](_0xd1d2('0x4b'),_0x28173a);})['finally'](function(){delete _0x530db0['channels'][_0x33e332];delete _0x530db0[_0xd1d2('0x11')][_0x33e332];});}else{ut[_0xd1d2('0x46')](_0xd1d2('0x4c'));delete this[_0xd1d2('0xe')][_0x33e332];delete this[_0xd1d2('0x11')][_0x33e332];}};Fax[_0xd1d2('0x20')][_0xd1d2('0x4d')]=function(_0x278a2a){var _0x3e22d2=this;if(this[_0xd1d2('0xe')][_0x278a2a[_0xd1d2('0x23')]]){if(this['actions'][_0x278a2a['uniqueid']]){this[_0xd1d2('0xe')][_0x278a2a[_0xd1d2('0x23')]]['id']=this[_0xd1d2('0x11')][_0x278a2a[_0xd1d2('0x23')]]['id'];this['channels'][_0x278a2a[_0xd1d2('0x23')]][_0xd1d2('0x25')]=this[_0xd1d2('0x11')][_0x278a2a[_0xd1d2('0x23')]][_0xd1d2('0x25')];}logger[_0xd1d2('0x26')](_0x278a2a[_0xd1d2('0x23')],this['actions'][_0x278a2a[_0xd1d2('0x23')]]?_0xd1d2('0x4e'):_0xd1d2('0x4f'),JSON['stringify'](this['channels'][_0x278a2a[_0xd1d2('0x23')]]));if(this[_0xd1d2('0x11')][_0x278a2a[_0xd1d2('0x23')]]){if(this[_0xd1d2('0xe')][_0x278a2a['uniqueid']][_0xd1d2('0x50')]>0x0&&this[_0xd1d2('0xe')][_0x278a2a[_0xd1d2('0x23')]]['faxstatus']===_0xd1d2('0x51')){this[_0xd1d2('0x49')](_0x278a2a['uniqueid'],!![]);}else{this[_0xd1d2('0x49')](_0x278a2a[_0xd1d2('0x23')],![],this[_0xd1d2('0xe')][_0x278a2a[_0xd1d2('0x23')]]['faxstatusstring']?_0xd1d2('0x52')+this[_0xd1d2('0xe')][_0x278a2a[_0xd1d2('0x23')]][_0xd1d2('0x53')]:_0xd1d2('0x54'));}}}};Fax['prototype']['send']=function(_0x500465){var _0x541676=this;return new BPromise(function(_0x59ca94,_0x105850){_0x541676[_0xd1d2('0x55')](_0x500465,_0x541676[_0xd1d2('0xf')][_0x500465['FaxAccountId']])[_0xd1d2('0x3b')](function(_0x17c4eb){ut[_0xd1d2('0x46')]('[Fax][execOriginate][success]',_0x17c4eb);_0x59ca94(ut[_0xd1d2('0x37')](_0xd1d2('0x56')));})[_0xd1d2('0x40')](function(_0x4a42d9){ut[_0xd1d2('0x46')](_0xd1d2('0x57'),_0x4a42d9);updateStatus(_0x500465);_0x105850(ut['message'](_0xd1d2('0x58')));});});};Fax[_0xd1d2('0x20')]['checkAfterSend']=function(_0x530335){var _0x21bfd4=this;return new BPromise(function(_0x1ea57a,_0x34877f){var _0x14cd07=_0x21bfd4['checkTrunk'](_0x21bfd4[_0xd1d2('0xf')][_0x530335[_0xd1d2('0x59')]][_0xd1d2('0x5a')],_0x530335);if(_0x14cd07[_0xd1d2('0x5b')]){_0x1ea57a(ut['message'](_0xd1d2('0x5c')));}else{_0x34877f(ut[_0xd1d2('0x37')](_0x14cd07[_0xd1d2('0x37')]));}});};function originate(_0x572b55,_0x46ff4d,_0x1ae9af){return new BPromise(function(_0x4c35cb,_0x2175ab){if(_0x1ae9af){var _0x32ae30=util[_0xd1d2('0x5d')](_0xd1d2('0x5e'),path[_0xd1d2('0x39')](_0x572b55['path'])[_0xd1d2('0x25')],_0x572b55['path']);gs['execute'](_0x32ae30)['then'](function(){_0x572b55['path']=util[_0xd1d2('0x5d')]('%s/%s.tif',path[_0xd1d2('0x39')](_0x572b55['path'])[_0xd1d2('0x5f')],path[_0xd1d2('0x39')](_0x572b55[_0xd1d2('0x60')])[_0xd1d2('0x25')]);_0x46ff4d[_0xd1d2('0x61')]=_0x572b55[_0xd1d2('0x60')];ut['logger'](_0xd1d2('0x62'),'');ami[_0xd1d2('0x63')](ut[_0xd1d2('0x64')](_0x572b55,_0x46ff4d))[_0xd1d2('0x3b')](function(_0x448134){_0x4c35cb(_0x448134);})[_0xd1d2('0x40')](function(_0x2b6bd6){_0x2175ab(_0x2b6bd6);});})[_0xd1d2('0x40')](function(_0x3614dc){_0x2175ab(_0x3614dc);});}else{ami[_0xd1d2('0x63')](ut['variablesAction'](_0x572b55,_0x46ff4d))[_0xd1d2('0x3b')](function(_0x428200){_0x4c35cb(_0x428200);})[_0xd1d2('0x40')](function(_0x2eaf42){_0x2175ab(_0x2eaf42);});}});}Fax['prototype'][_0xd1d2('0x55')]=function(_0x28958d,_0xb7bf6a){var _0x56c005=this;return new BPromise(function(_0x2fffe5,_0x17af73){var _0x53b36d=uuid['v4']();var _0x566435=ut[_0xd1d2('0x65')](_0x28958d,_0xb7bf6a);_0x56c005[_0xd1d2('0x11')][_0x53b36d]=new Action(_0x53b36d,_0xb7bf6a,_0x28958d);var _0x3fbd87=_0x56c005[_0xd1d2('0x11')][_0x53b36d];if(path[_0xd1d2('0x39')](_0x28958d[_0xd1d2('0x60')])[_0xd1d2('0x66')]==='.pdf'){originate(_0x3fbd87,_0x566435,!![])[_0xd1d2('0x3b')](function(_0x9a98d4){_0x2fffe5(_0x9a98d4);})[_0xd1d2('0x40')](function(_0x24b8d1){_0x17af73(_0x24b8d1);});}else{originate(_0x3fbd87,_0x566435,![])[_0xd1d2('0x3b')](function(_0x123006){_0x2fffe5(_0x123006);})[_0xd1d2('0x40')](function(_0x3dbc87){_0x17af73(_0x3dbc87);});}});};Fax[_0xd1d2('0x20')][_0xd1d2('0x67')]=function(_0x2c3650){return!_[_0xd1d2('0x68')](_0x2c3650)&&!_[_0xd1d2('0x68')](_0x2c3650[_0xd1d2('0x25')])&&!_['isNil'](_0x2c3650[_0xd1d2('0x69')])&&_0x2c3650[_0xd1d2('0x69')]&&!_[_0xd1d2('0x68')](this[_0xd1d2('0x10')][util[_0xd1d2('0x5d')](_0xd1d2('0x6a'),_0x2c3650[_0xd1d2('0x25')])])&&!_[_0xd1d2('0x68')](this[_0xd1d2('0x10')][util[_0xd1d2('0x5d')](_0xd1d2('0x6a'),_0x2c3650[_0xd1d2('0x25')])][_0xd1d2('0x2e')])&&(this['trunks'][util[_0xd1d2('0x5d')](_0xd1d2('0x6a'),_0x2c3650[_0xd1d2('0x25')])][_0xd1d2('0x2e')]===_0xd1d2('0x6b')||this[_0xd1d2('0x10')][util[_0xd1d2('0x5d')](_0xd1d2('0x6a'),_0x2c3650[_0xd1d2('0x25')])][_0xd1d2('0x2e')]===_0xd1d2('0x6c'));};Fax[_0xd1d2('0x20')]['checkTrunk']=function(_0x46375e,_0x234262){if(!this[_0xd1d2('0x67')](_0x46375e)){ut[_0xd1d2('0x46')](_0xd1d2('0x6d'),_['isNil'](_0x46375e)?'':_0x46375e[_0xd1d2('0x25')]+_0xd1d2('0x6e'));return{'isValid':![],'message':_0xd1d2('0x6f')};}if(_[_0xd1d2('0x68')](_0x234262['fax'])){ut[_0xd1d2('0x46')](_0xd1d2('0x70'),JSON[_0xd1d2('0x3f')](_0x234262));return{'isValid':![],'message':_0xd1d2('0x71')};}if(_[_0xd1d2('0x68')](_0x234262[_0xd1d2('0x60')])){ut[_0xd1d2('0x46')]('[Fax][checkTrunk][Empty\x20path]',JSON[_0xd1d2('0x3f')](_0x234262));return{'isValid':![],'message':_0xd1d2('0x72')};}return{'isValid':!![],'message':_0xd1d2('0x73')};};module[_0xd1d2('0x74')]=Fax;
\ No newline at end of file
+var _0xb840=['transferrate','calleridnum','/var/opt/motion2/server/files/attachments/','\x20result\x20conversion\x20file\x20','message','create','.pdf','then','parse','catch','error','\x20notify\x20','stringify','\x20receiveFax\x20','merge','pick','response','reason','update','AttachmentId','SENDING\x20FAILED\x20','logger','updateStatus','[Fax][Message][NoUpdate1]','finally','\x20hangup\x20sendFile\x20','\x20hangup\x20faxRiceive\x20','faxpages','SUCCESS','faxstatusstring','SENDING\x20FAILED','send','execOriginate','Fax\x20received','[Fax][execOriginate][failure]','Fax\x20failed','checkTrunk','isValid','Trunk\x20Reachable','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','execute','format','%s/%s.tif','dir','Action','variablesAction','addVariables','ext','isTrunkReachable','isNil','active','SIP/%s','reachable','[Fax][checkTrunk][Trunk\x20not\x20work]','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working','[Fax][checkTrunk][Empty\x20Fax]','Empty\x20Fax','[Fax][checkTrunk][Empty\x20path]','Empty\x20path','Is\x20Valid','exports','util','lodash','uuid','moment','tiff2pdf','./util/gs','../../../config/logger','fax','../ami','./channel','./util/util','../rpc/faxAccount','../rpc/attachment','../rpc/faxMessage','channels','faxAccounts','trunks','actions','newchannel','syncNewchannel','bind','syncVarSet','newstate','syncNewState','newexten','syncNewExten','faxstatus','syncFaxStatus','receivefax','syncReceiveFax','hangup','syncHangup','originateresponse','syncOriginateResponse','prototype','context','exten','uniqueid','name','info','\x20syncNewchannel\x20','channel','variable','hasOwnProperty','channelstate','channelstatedesc','value','operation','status','localstationid','filename','\x20syncFaxStatus\x20','remotestationid','pagestransferred','resolution'];(function(_0x2e4bcf,_0x133124){var _0x35f8dd=function(_0x4f49a4){while(--_0x4f49a4){_0x2e4bcf['push'](_0x2e4bcf['shift']());}};_0x35f8dd(++_0x133124);}(_0xb840,0x12b));var _0x0b84=function(_0x18f6ee,_0x241f93){_0x18f6ee=_0x18f6ee-0x0;var _0x42ac3f=_0xb840[_0x18f6ee];return _0x42ac3f;};'use strict';var util=require(_0x0b84('0x0'));var _=require(_0x0b84('0x1'));var BPromise=require('bluebird');var uuid=require(_0x0b84('0x2'));var moment=require(_0x0b84('0x3'));var path=require('path');var tiff2pdf=require(_0x0b84('0x4'));var gs=require(_0x0b84('0x5'));var logger=require(_0x0b84('0x6'))(_0x0b84('0x7'));var ami=require(_0x0b84('0x8'));var rpcDb=require('./rpcDb');var Channel=require(_0x0b84('0x9'));var ut=require(_0x0b84('0xa'));var Action=require('./action');var faxAccount=require(_0x0b84('0xb'));var attachment=require(_0x0b84('0xc'));var faxMessage=require(_0x0b84('0xd'));function Fax(_0x2e5dd3){this[_0x0b84('0xe')]={};this[_0x0b84('0xf')]=_0x2e5dd3[_0x0b84('0xf')];this[_0x0b84('0x10')]=_0x2e5dd3['trunks'];this[_0x0b84('0x11')]={};ami['on'](_0x0b84('0x12'),this[_0x0b84('0x13')][_0x0b84('0x14')](this));ami['on']('varset',this[_0x0b84('0x15')]['bind'](this));ami['on'](_0x0b84('0x16'),this[_0x0b84('0x17')][_0x0b84('0x14')](this));ami['on'](_0x0b84('0x18'),this[_0x0b84('0x19')][_0x0b84('0x14')](this));ami['on'](_0x0b84('0x1a'),this[_0x0b84('0x1b')][_0x0b84('0x14')](this));ami['on'](_0x0b84('0x1c'),this[_0x0b84('0x1d')][_0x0b84('0x14')](this));ami['on'](_0x0b84('0x1e'),this[_0x0b84('0x1f')]['bind'](this));ami['on'](_0x0b84('0x20'),this[_0x0b84('0x21')][_0x0b84('0x14')](this));}Fax[_0x0b84('0x22')]['syncNewchannel']=function(_0x2ed8ce){if(_0x2ed8ce[_0x0b84('0x23')]==='from-voip-provider'){for(var _0x4354f1 in this[_0x0b84('0xf')]){if(this[_0x0b84('0xf')]['hasOwnProperty'](_0x4354f1)){if(_0x2ed8ce[_0x0b84('0x24')]===this[_0x0b84('0xf')][_0x4354f1]['localstationid']){this[_0x0b84('0xe')][_0x2ed8ce[_0x0b84('0x25')]]={};this[_0x0b84('0xe')][_0x2ed8ce['uniqueid']]['channel']=_0x2ed8ce['channel'];this[_0x0b84('0xe')][_0x2ed8ce['uniqueid']]['id']=this[_0x0b84('0xf')][_0x4354f1]['id'];this[_0x0b84('0xe')][_0x2ed8ce['uniqueid']][_0x0b84('0x26')]=this[_0x0b84('0xf')][_0x4354f1][_0x0b84('0x26')];logger[_0x0b84('0x27')](_0x2ed8ce[_0x0b84('0x25')],_0x0b84('0x28'));}}}}if(this[_0x0b84('0x11')][_0x2ed8ce[_0x0b84('0x25')]]){this['channels'][_0x2ed8ce[_0x0b84('0x25')]]={};this[_0x0b84('0xe')][_0x2ed8ce[_0x0b84('0x25')]]['channel']=_0x2ed8ce[_0x0b84('0x29')];logger[_0x0b84('0x27')](_0x2ed8ce['uniqueid'],_0x0b84('0x28'));}};Fax['prototype'][_0x0b84('0x15')]=function(_0x1216f4){if(this[_0x0b84('0xe')][_0x1216f4['uniqueid']]){for(var _0x3dda91 in _0x1216f4[_0x0b84('0x2a')]){if(_0x1216f4[_0x0b84('0x2a')][_0x0b84('0x2b')](_0x3dda91)){this[_0x0b84('0xe')][_0x1216f4['uniqueid']][_0x3dda91]=_0x1216f4['value'];}}}};Fax[_0x0b84('0x22')][_0x0b84('0x17')]=function(_0x638b9d){if(this[_0x0b84('0xe')][_0x638b9d[_0x0b84('0x25')]]){this[_0x0b84('0xe')][_0x638b9d['uniqueid']][_0x0b84('0x2c')]=_0x638b9d[_0x0b84('0x2c')];this[_0x0b84('0xe')][_0x638b9d[_0x0b84('0x25')]][_0x0b84('0x2d')]=_0x638b9d['channelstatedesc'];}};Fax['prototype'][_0x0b84('0x19')]=function(_0x36c14b){if(this[_0x0b84('0xe')][_0x36c14b['uniqueid']]){for(var _0x4a168f in _0x36c14b[_0x0b84('0x2a')]){if(_0x36c14b[_0x0b84('0x2a')][_0x0b84('0x2b')](_0x4a168f)){this[_0x0b84('0xe')][_0x36c14b['uniqueid']][_0x4a168f]=_0x36c14b[_0x0b84('0x2e')];}}}};Fax['prototype'][_0x0b84('0x1b')]=function(_0x31a46d){if(this[_0x0b84('0xe')][_0x31a46d[_0x0b84('0x25')]]){this[_0x0b84('0xe')][_0x31a46d[_0x0b84('0x25')]][_0x0b84('0x2f')]=_0x31a46d['operation'];this[_0x0b84('0xe')][_0x31a46d[_0x0b84('0x25')]]['status']=_0x31a46d[_0x0b84('0x30')];this['channels'][_0x31a46d[_0x0b84('0x25')]][_0x0b84('0x31')]=_0x31a46d['localstationid'];this[_0x0b84('0xe')][_0x31a46d[_0x0b84('0x25')]][_0x0b84('0x32')]=_0x31a46d[_0x0b84('0x32')];logger[_0x0b84('0x27')](_0x31a46d[_0x0b84('0x25')],_0x0b84('0x33'));}};Fax[_0x0b84('0x22')][_0x0b84('0x1d')]=function(_0x1fc5c8){var _0xc7a138=this;if(this[_0x0b84('0xe')][_0x1fc5c8['uniqueid']]){var _0x21f9e5=this[_0x0b84('0xe')][_0x1fc5c8[_0x0b84('0x25')]]['id'];this[_0x0b84('0xe')][_0x1fc5c8[_0x0b84('0x25')]][_0x0b84('0x34')]=_0x1fc5c8['remotestationid'];this[_0x0b84('0xe')][_0x1fc5c8[_0x0b84('0x25')]][_0x0b84('0x35')]=_0x1fc5c8[_0x0b84('0x35')];this[_0x0b84('0xe')][_0x1fc5c8['uniqueid']][_0x0b84('0x31')]=_0x1fc5c8[_0x0b84('0x31')];this[_0x0b84('0xe')][_0x1fc5c8[_0x0b84('0x25')]][_0x0b84('0x36')]=_0x1fc5c8[_0x0b84('0x36')];this[_0x0b84('0xe')][_0x1fc5c8[_0x0b84('0x25')]]['transferrate']=_0x1fc5c8[_0x0b84('0x37')];this[_0x0b84('0xe')][_0x1fc5c8['uniqueid']][_0x0b84('0x32')]=_0x1fc5c8['filename'];this['channels'][_0x1fc5c8[_0x0b84('0x25')]][_0x0b84('0x38')]=_0x1fc5c8['calleridnum'];if(this['channels'][_0x1fc5c8[_0x0b84('0x25')]][_0x0b84('0x35')]>0x0){tiff2pdf(_0x1fc5c8[_0x0b84('0x32')],_0x0b84('0x39'),function(_0xd6ae90){logger[_0x0b84('0x27')](_0x1fc5c8[_0x0b84('0x25')],_0x0b84('0x3a'),_0xd6ae90[_0x0b84('0x3b')]);attachment[_0x0b84('0x3c')]({'name':path['parse'](_0x1fc5c8[_0x0b84('0x32')])[_0x0b84('0x26')],'basename':path['parse'](_0x1fc5c8['filename'])['name']+_0x0b84('0x3d'),'type':'application/pdf'})[_0x0b84('0x3e')](function(_0x344def){faxAccount['notify'](_0x21f9e5,{'from':_0x1fc5c8[_0x0b84('0x38')],'mapKey':_0x0b84('0x7'),'body':path[_0x0b84('0x3f')](_0x1fc5c8[_0x0b84('0x32')])[_0x0b84('0x26')]+_0x0b84('0x3d'),'AttachmentId':_0x344def['id']})[_0x0b84('0x40')](function(_0x351919){logger[_0x0b84('0x41')](_0x1fc5c8[_0x0b84('0x25')],_0x0b84('0x42'),JSON[_0x0b84('0x43')](_0x351919));});})[_0x0b84('0x40')](function(_0x128e19){logger['error'](_0x1fc5c8['uniqueid'],_0x0b84('0x44'),JSON['stringify'](_0x128e19));});});}logger[_0x0b84('0x27')](_0x1fc5c8[_0x0b84('0x25')],_0x0b84('0x44'));}};Fax['prototype'][_0x0b84('0x21')]=function(_0x42603f){if(this[_0x0b84('0x11')][_0x42603f['uniqueid']]){_[_0x0b84('0x45')](this[_0x0b84('0xe')][_0x42603f[_0x0b84('0x25')]],_[_0x0b84('0x46')](_0x42603f,[_0x0b84('0x47'),_0x0b84('0x48')]));}};function updateStatus(_0x37008b){if(_0x37008b['AttachmentId']){faxMessage[_0x0b84('0x49')](_0x37008b[_0x0b84('0x4a')],{'failMessage':_0x0b84('0x4b')})['then'](function(_0x307908){ut[_0x0b84('0x4c')]('[Fax][Message][Error][Updated]',_0x307908);})[_0x0b84('0x40')](function(_0x11f90a){ut[_0x0b84('0x4c')]('[Fax][Message][Error][NoUpdate1]',_0x11f90a);});}else{ut['logger']('[Fax][Message][Error][NoUpdate2]');}}Fax[_0x0b84('0x22')][_0x0b84('0x4d')]=function(_0x58662c,_0x4fa724,_0x28cb2c){var _0x1c718e=this;var _0x7955f9={};if(_0x4fa724){_0x7955f9={'read':_0x4fa724};}else{_0x7955f9={'failMessage':_0x28cb2c};}if(this[_0x0b84('0x11')][_0x58662c][_0x0b84('0x4a')]){faxMessage[_0x0b84('0x49')](this[_0x0b84('0x11')][_0x58662c]['AttachmentId'],_0x7955f9)['then'](function(_0x422cd8){ut[_0x0b84('0x4c')]('[Fax][Message][Updated]',_0x422cd8);})[_0x0b84('0x40')](function(_0x4b1da2){ut[_0x0b84('0x4c')](_0x0b84('0x4e'),_0x4b1da2);})[_0x0b84('0x4f')](function(){delete _0x1c718e['channels'][_0x58662c];delete _0x1c718e[_0x0b84('0x11')][_0x58662c];});}else{ut[_0x0b84('0x4c')]('[Fax][Message][NoUpdate2]');delete this['channels'][_0x58662c];delete this[_0x0b84('0x11')][_0x58662c];}};Fax[_0x0b84('0x22')]['syncHangup']=function(_0x1099d5){var _0x56d692=this;if(this['channels'][_0x1099d5['uniqueid']]){if(this['actions'][_0x1099d5[_0x0b84('0x25')]]){this[_0x0b84('0xe')][_0x1099d5['uniqueid']]['id']=this[_0x0b84('0x11')][_0x1099d5[_0x0b84('0x25')]]['id'];this[_0x0b84('0xe')][_0x1099d5[_0x0b84('0x25')]][_0x0b84('0x26')]=this[_0x0b84('0x11')][_0x1099d5[_0x0b84('0x25')]][_0x0b84('0x26')];}logger['info'](_0x1099d5[_0x0b84('0x25')],this[_0x0b84('0x11')][_0x1099d5[_0x0b84('0x25')]]?_0x0b84('0x50'):_0x0b84('0x51'),JSON[_0x0b84('0x43')](this[_0x0b84('0xe')][_0x1099d5['uniqueid']]));if(this[_0x0b84('0x11')][_0x1099d5['uniqueid']]){if(this[_0x0b84('0xe')][_0x1099d5[_0x0b84('0x25')]][_0x0b84('0x52')]>0x0&&this[_0x0b84('0xe')][_0x1099d5[_0x0b84('0x25')]]['faxstatus']===_0x0b84('0x53')){this[_0x0b84('0x4d')](_0x1099d5[_0x0b84('0x25')],!![]);}else{this[_0x0b84('0x4d')](_0x1099d5[_0x0b84('0x25')],![],this[_0x0b84('0xe')][_0x1099d5[_0x0b84('0x25')]][_0x0b84('0x54')]?'SENDING\x20FAILED:\x20'+this[_0x0b84('0xe')][_0x1099d5['uniqueid']][_0x0b84('0x54')]:_0x0b84('0x55'));}}}};Fax[_0x0b84('0x22')][_0x0b84('0x56')]=function(_0x5814cb){var _0x147c60=this;return new BPromise(function(_0x38bba5,_0x1a55d3){_0x147c60[_0x0b84('0x57')](_0x5814cb,_0x147c60[_0x0b84('0xf')][_0x5814cb['FaxAccountId']])['then'](function(_0x389c54){ut[_0x0b84('0x4c')]('[Fax][execOriginate][success]',_0x389c54);_0x38bba5(ut[_0x0b84('0x3b')](_0x0b84('0x58')));})[_0x0b84('0x40')](function(_0x363663){ut[_0x0b84('0x4c')](_0x0b84('0x59'),_0x363663);updateStatus(_0x5814cb);_0x1a55d3(ut[_0x0b84('0x3b')](_0x0b84('0x5a')));});});};Fax[_0x0b84('0x22')]['checkAfterSend']=function(_0x3650d4){var _0x3d04ad=this;return new BPromise(function(_0x1d21e9,_0x102c33){var _0x132ad6=_0x3d04ad[_0x0b84('0x5b')](_0x3d04ad[_0x0b84('0xf')][_0x3650d4['FaxAccountId']]['Trunk'],_0x3650d4);if(_0x132ad6[_0x0b84('0x5c')]){_0x1d21e9(ut['message'](_0x0b84('0x5d')));}else{_0x102c33(ut[_0x0b84('0x3b')](_0x132ad6[_0x0b84('0x3b')]));}});};function originate(_0x56e701,_0x2ba3e2,_0x1b78d2){return new BPromise(function(_0x1f5d72,_0x1168f9){if(_0x1b78d2){var _0x1214d3=util['format'](_0x0b84('0x5e'),path[_0x0b84('0x3f')](_0x56e701[_0x0b84('0x5f')])[_0x0b84('0x26')],_0x56e701[_0x0b84('0x5f')]);gs[_0x0b84('0x60')](_0x1214d3)[_0x0b84('0x3e')](function(){_0x56e701[_0x0b84('0x5f')]=util[_0x0b84('0x61')](_0x0b84('0x62'),path[_0x0b84('0x3f')](_0x56e701[_0x0b84('0x5f')])[_0x0b84('0x63')],path[_0x0b84('0x3f')](_0x56e701[_0x0b84('0x5f')])[_0x0b84('0x26')]);_0x2ba3e2['XMF-PATH']=_0x56e701[_0x0b84('0x5f')];ut[_0x0b84('0x4c')]('Convert\x20pdf\x20to\x20tif','');ami[_0x0b84('0x64')](ut[_0x0b84('0x65')](_0x56e701,_0x2ba3e2))[_0x0b84('0x3e')](function(_0x25b4da){_0x1f5d72(_0x25b4da);})['catch'](function(_0x544105){_0x1168f9(_0x544105);});})['catch'](function(_0x1bb170){_0x1168f9(_0x1bb170);});}else{ami[_0x0b84('0x64')](ut[_0x0b84('0x65')](_0x56e701,_0x2ba3e2))[_0x0b84('0x3e')](function(_0x177f1a){_0x1f5d72(_0x177f1a);})[_0x0b84('0x40')](function(_0x36429f){_0x1168f9(_0x36429f);});}});}Fax[_0x0b84('0x22')][_0x0b84('0x57')]=function(_0x4eb6cf,_0x34ef55){var _0x247539=this;return new BPromise(function(_0x560d6e,_0x1a01b0){var _0x40de50=uuid['v4']();var _0x2448f8=ut[_0x0b84('0x66')](_0x4eb6cf,_0x34ef55);_0x247539[_0x0b84('0x11')][_0x40de50]=new Action(_0x40de50,_0x34ef55,_0x4eb6cf);var _0x432d37=_0x247539[_0x0b84('0x11')][_0x40de50];if(path['parse'](_0x4eb6cf[_0x0b84('0x5f')])[_0x0b84('0x67')]===_0x0b84('0x3d')){originate(_0x432d37,_0x2448f8,!![])['then'](function(_0x352893){_0x560d6e(_0x352893);})[_0x0b84('0x40')](function(_0x894da3){_0x1a01b0(_0x894da3);});}else{originate(_0x432d37,_0x2448f8,![])['then'](function(_0x38833f){_0x560d6e(_0x38833f);})[_0x0b84('0x40')](function(_0x4c0087){_0x1a01b0(_0x4c0087);});}});};Fax[_0x0b84('0x22')][_0x0b84('0x68')]=function(_0x3b3c7c){return!_[_0x0b84('0x69')](_0x3b3c7c)&&!_[_0x0b84('0x69')](_0x3b3c7c[_0x0b84('0x26')])&&!_['isNil'](_0x3b3c7c[_0x0b84('0x6a')])&&_0x3b3c7c[_0x0b84('0x6a')]&&!_[_0x0b84('0x69')](this[_0x0b84('0x10')][util[_0x0b84('0x61')](_0x0b84('0x6b'),_0x3b3c7c[_0x0b84('0x26')])])&&!_[_0x0b84('0x69')](this['trunks'][util[_0x0b84('0x61')]('SIP/%s',_0x3b3c7c[_0x0b84('0x26')])][_0x0b84('0x30')])&&(this['trunks'][util[_0x0b84('0x61')](_0x0b84('0x6b'),_0x3b3c7c[_0x0b84('0x26')])]['status']===_0x0b84('0x6c')||this[_0x0b84('0x10')][util[_0x0b84('0x61')](_0x0b84('0x6b'),_0x3b3c7c[_0x0b84('0x26')])]['status']==='unmonitored');};Fax[_0x0b84('0x22')][_0x0b84('0x5b')]=function(_0x250d87,_0x630a66){if(!this[_0x0b84('0x68')](_0x250d87)){ut[_0x0b84('0x4c')](_0x0b84('0x6d'),_[_0x0b84('0x69')](_0x250d87)?'':_0x250d87['name']+_0x0b84('0x6e'));return{'isValid':![],'message':_0x0b84('0x6f')};}if(_[_0x0b84('0x69')](_0x630a66[_0x0b84('0x7')])){ut[_0x0b84('0x4c')](_0x0b84('0x70'),JSON[_0x0b84('0x43')](_0x630a66));return{'isValid':![],'message':_0x0b84('0x71')};}if(_[_0x0b84('0x69')](_0x630a66['path'])){ut[_0x0b84('0x4c')](_0x0b84('0x72'),JSON['stringify'](_0x630a66));return{'isValid':![],'message':_0x0b84('0x73')};}return{'isValid':!![],'message':_0x0b84('0x74')};};module[_0x0b84('0x75')]=Fax;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x619b=['inspect','notify','resolve','then','catch','util','bluebird','../../../config/logger','preview','../rpc/faxAccount'];(function(_0x500d58,_0x45d249){var _0xbdbae5=function(_0x4de5a0){while(--_0x4de5a0){_0x500d58['push'](_0x500d58['shift']());}};_0xbdbae5(++_0x45d249);}(_0x619b,0x18b));var _0xb619=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x619b[_0xbca1b1];return _0x4e1686;};'use strict';var util=require(_0xb619('0x0'));var BPromise=require(_0xb619('0x1'));var logger=require(_0xb619('0x2'))(_0xb619('0x3'));var _=require('lodash');var faxAccount=require(_0xb619('0x4'));function loggerCatch(_0x2cfba1){return function(_0x201122){logger['error'](_0x2cfba1,util[_0xb619('0x5')](_0x201122,{'showHidden':![],'depth':null}));};}exports[_0xb619('0x6')]=function(_0x13636e,_0x45ff74){return BPromise[_0xb619('0x7')]()[_0xb619('0x8')](faxAccount['notify'](_0x13636e,_0x45ff74))[_0xb619('0x9')](loggerCatch('[Notify]\x20'));};
\ No newline at end of file
+var _0xb38c=['notify','resolve','catch','[Notify]\x20','util','bluebird','preview','lodash','../rpc/faxAccount','error'];(function(_0x4f7a17,_0x237ece){var _0x459fae=function(_0x4de820){while(--_0x4de820){_0x4f7a17['push'](_0x4f7a17['shift']());}};_0x459fae(++_0x237ece);}(_0xb38c,0x1d0));var _0xcb38=function(_0x3ee55a,_0x19aeea){_0x3ee55a=_0x3ee55a-0x0;var _0x581800=_0xb38c[_0x3ee55a];return _0x581800;};'use strict';var util=require(_0xcb38('0x0'));var BPromise=require(_0xcb38('0x1'));var logger=require('../../../config/logger')(_0xcb38('0x2'));var _=require(_0xcb38('0x3'));var faxAccount=require(_0xcb38('0x4'));function loggerCatch(_0x542cfb){return function(_0x431e3e){logger[_0xcb38('0x5')](_0x542cfb,util['inspect'](_0x431e3e,{'showHidden':![],'depth':null}));};}exports[_0xcb38('0x6')]=function(_0x2d539b,_0x4e02e1){return BPromise[_0xcb38('0x7')]()['then'](faxAccount[_0xcb38('0x6')](_0x2d539b,_0x4e02e1))[_0xcb38('0x8')](loggerCatch(_0xcb38('0x9')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x35e1=['fax','bluebird','child_process','exec','info','Exec\x20gs','\x20Error\x20:','inspect','../../../../config/logger'];(function(_0x4ce02e,_0x4486a9){var _0x4aab50=function(_0xe75522){while(--_0xe75522){_0x4ce02e['push'](_0x4ce02e['shift']());}};_0x4aab50(++_0x4486a9);}(_0x35e1,0x1c1));var _0x135e=function(_0x2254f3,_0x36ed5c){_0x2254f3=_0x2254f3-0x0;var _0x2e3ec5=_0x35e1[_0x2254f3];return _0x2e3ec5;};'use strict';var util=require('util');var logger=require(_0x135e('0x0'))(_0x135e('0x1'));var BPromise=require(_0x135e('0x2'));var exec=require(_0x135e('0x3'))[_0x135e('0x4')];exports['execute']=function(_0x1448db){return new BPromise(function(_0x4f0af1,_0x153e37){exec(_0x1448db,function(_0x4f2a94,_0x2c3b35,_0x30d835){logger[_0x135e('0x5')]('Exec\x20gs',_0x2c3b35);if(_0x4f2a94){logger[_0x135e('0x5')](_0x135e('0x6'),_0x135e('0x7'),util[_0x135e('0x8')](_0x4f2a94,{'showHidden':![],'depth':null}),_0x2c3b35,_0x30d835);_0x153e37(_0x4f2a94);}_0x4f0af1(_0x2c3b35);});});};
\ No newline at end of file
+var _0x832a=['fax','bluebird','child_process','exec','execute','info','Exec\x20gs','\x20Error\x20:','util','../../../../config/logger'];(function(_0x437ac6,_0x25ec3f){var _0x46f227=function(_0x100ef5){while(--_0x100ef5){_0x437ac6['push'](_0x437ac6['shift']());}};_0x46f227(++_0x25ec3f);}(_0x832a,0x80));var _0xa832=function(_0x1c4c1a,_0x1e4d6b){_0x1c4c1a=_0x1c4c1a-0x0;var _0x434002=_0x832a[_0x1c4c1a];return _0x434002;};'use strict';var util=require(_0xa832('0x0'));var logger=require(_0xa832('0x1'))(_0xa832('0x2'));var BPromise=require(_0xa832('0x3'));var exec=require(_0xa832('0x4'))[_0xa832('0x5')];exports[_0xa832('0x6')]=function(_0x40dd57){return new BPromise(function(_0x3a7cd3,_0x4b0e47){exec(_0x40dd57,function(_0xaeb937,_0x14296d,_0x42be52){logger[_0xa832('0x7')](_0xa832('0x8'),_0x14296d);if(_0xaeb937){logger[_0xa832('0x7')]('Exec\x20gs',_0xa832('0x9'),util['inspect'](_0xaeb937,{'showHidden':![],'depth':null}),_0x14296d,_0x42be52);_0x4b0e47(_0xaeb937);}_0x3a7cd3(_0x14296d);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4067=['logger','info','inspect','addVariables','ecm','headerinfo','minrate','maxrate','format','\x22%s\x22','modem','gateway','t38timeout','localstationid','variablesAction','uniqueid','originate','channel','\x22%s\x22\x20<%s>','util','../../../../config/logger','fax'];(function(_0x301b03,_0xa2a46f){var _0x411635=function(_0x3c88b2){while(--_0x3c88b2){_0x301b03['push'](_0x301b03['shift']());}};_0x411635(++_0xa2a46f);}(_0x4067,0x19f));var _0x7406=function(_0x57e6a1,_0x4d540b){_0x57e6a1=_0x57e6a1-0x0;var _0x419517=_0x4067[_0x57e6a1];return _0x419517;};'use strict';var util=require(_0x7406('0x0'));var _=require('lodash');var moment=require('moment');var logger=require(_0x7406('0x1'))(_0x7406('0x2'));exports['message']=function(_0x15a0f0){return{'message':_0x15a0f0};};exports[_0x7406('0x3')]=function(_0x1a082f,_0x281e34){logger[_0x7406('0x4')](_0x1a082f,util[_0x7406('0x5')](_0x281e34,{'showHidden':![],'depth':null}));};exports[_0x7406('0x6')]=function(_0x5c0cc9,_0x5988cf){var _0x3398ad={'XMF-ECM':_0x5988cf[_0x7406('0x7')],'XMF-HEADERINFO':_0x5988cf[_0x7406('0x8')],'XMF-MINRATE':_0x5988cf[_0x7406('0x9')],'XMF-MAXRATE':_0x5988cf[_0x7406('0xa')],'XMF-MODEM':util[_0x7406('0xb')](_0x7406('0xc'),_0x5988cf[_0x7406('0xd')]),'XMF-GATEWAY':_0x5988cf[_0x7406('0xe')],'XMF-FAXDETECT':_0x5988cf['faxdetect'],'XMF-T38TIMEOUT':_0x5988cf[_0x7406('0xf')],'XMF-LOCALSTATIONID':_0x5988cf[_0x7406('0x10')],'XMF-PATH':_0x5c0cc9['path']};return _0x3398ad;};exports[_0x7406('0x11')]=function(_0x4982ca,_0x658cb6){return{'actionid':_0x4982ca[_0x7406('0x12')],'action':_0x7406('0x13'),'channel':_0x4982ca[_0x7406('0x14')],'Exten':'xcally-motion-fax','Context':'from-sip','Priority':'1','callerid':util[_0x7406('0xb')](_0x7406('0x15'),_0x4982ca[_0x7406('0x8')]?_0x4982ca[_0x7406('0x8')]:'',_0x4982ca[_0x7406('0x10')]),'variable':_0x658cb6,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0x4982ca[_0x7406('0x12')]};};
\ No newline at end of file
+var _0xc40a=['headerinfo','minrate','maxrate','format','modem','faxdetect','localstationid','path','originate','channel','xcally-motion-fax','from-sip','util','lodash','moment','../../../../config/logger','fax','message','logger','inspect','addVariables'];(function(_0x46ae5a,_0x2a38d0){var _0x434986=function(_0x22735d){while(--_0x22735d){_0x46ae5a['push'](_0x46ae5a['shift']());}};_0x434986(++_0x2a38d0);}(_0xc40a,0x186));var _0xac40=function(_0xefc924,_0x4d1e0a){_0xefc924=_0xefc924-0x0;var _0x1a8844=_0xc40a[_0xefc924];return _0x1a8844;};'use strict';var util=require(_0xac40('0x0'));var _=require(_0xac40('0x1'));var moment=require(_0xac40('0x2'));var logger=require(_0xac40('0x3'))(_0xac40('0x4'));exports[_0xac40('0x5')]=function(_0x3ea8d2){return{'message':_0x3ea8d2};};exports[_0xac40('0x6')]=function(_0x26cd43,_0x577c0e){logger['info'](_0x26cd43,util[_0xac40('0x7')](_0x577c0e,{'showHidden':![],'depth':null}));};exports[_0xac40('0x8')]=function(_0x17baea,_0x408466){var _0x3462e8={'XMF-ECM':_0x408466['ecm'],'XMF-HEADERINFO':_0x408466[_0xac40('0x9')],'XMF-MINRATE':_0x408466[_0xac40('0xa')],'XMF-MAXRATE':_0x408466[_0xac40('0xb')],'XMF-MODEM':util[_0xac40('0xc')]('\x22%s\x22',_0x408466[_0xac40('0xd')]),'XMF-GATEWAY':_0x408466['gateway'],'XMF-FAXDETECT':_0x408466[_0xac40('0xe')],'XMF-T38TIMEOUT':_0x408466['t38timeout'],'XMF-LOCALSTATIONID':_0x408466[_0xac40('0xf')],'XMF-PATH':_0x17baea[_0xac40('0x10')]};return _0x3462e8;};exports['variablesAction']=function(_0x3ff512,_0x5ea9fb){return{'actionid':_0x3ff512['uniqueid'],'action':_0xac40('0x11'),'channel':_0x3ff512[_0xac40('0x12')],'Exten':_0xac40('0x13'),'Context':_0xac40('0x14'),'Priority':'1','callerid':util['format']('\x22%s\x22\x20<%s>',_0x3ff512[_0xac40('0x9')]?_0x3ff512[_0xac40('0x9')]:'',_0x3ff512[_0xac40('0xf')]),'variable':_0x5ea9fb,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0x3ff512['uniqueid']};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc862=['./rpc/trunk','./rpc/trigger','./rpc/template','./rpc/cmHopperHistory','./rpc/campaign','./rpc/faxAccount','./rpc/integrations/zendesk','./rpc/integrations/salesforce','./rpc/integrations/freshdesk','./rpc/integrations/zoho','./rpc/integrations/vtiger','./rpc/integrations/freshsales','./rpc/integrations/servicenow','./rpc/integrations/dynamics365','hour','then','getAgents','initAgents','getVoiceQueues','initVoiceQueues','getTriggers','getTemplates','initTemplates','getZendeskAccounts','initZendeskAccounts','getSalesforceAccounts','initSalesforceAccounts','getSugarcrmAccounts','initSugarcrmAccounts','getDeskAccounts','initDeskAccounts','getZohoAccounts','getVtigerAccounts','initVtigerAccounts','getFreshsalesAccounts','getServicenowAccounts','initServicenowAccounts','initDynamics365Accounts','initCampaigns','getVoiceExtensions','initVoiceExtensions','getFaxAccounts','initFaxAccounts','resolve','getVoiceQueueReports','getVoiceQueueHopperHistory','initVoiceQueueHopperHistory','initCampaignHopperHistory','getVoiceCallReports','initVoiceCallReports','error','[index.js][initParams]','inspect','sync','catch','[index.js][main]','bluebird','util','moment','./realtime','./report','./acw','./trigger','./dialer','./preview','./rpc/voiceQueue','./rpc/voiceQueueReport'];(function(_0x56825b,_0x172b8d){var _0x69ce77=function(_0x348a1c){while(--_0x348a1c){_0x56825b['push'](_0x56825b['shift']());}};_0x69ce77(++_0x172b8d);}(_0xc862,0x7b));var _0x2c86=function(_0x44fd41,_0x179178){_0x44fd41=_0x44fd41-0x0;var _0x28bf97=_0xc862[_0x44fd41];return _0x28bf97;};'use strict';var BPromise=require(_0x2c86('0x0'));var util=require(_0x2c86('0x1'));var moment=require(_0x2c86('0x2'));var server=require('./server');var Realtime=require(_0x2c86('0x3'));var Report=require(_0x2c86('0x4'));var Acw=require(_0x2c86('0x5'));var Trigger=require(_0x2c86('0x6'));var Dialer=require(_0x2c86('0x7'));var Preview=require(_0x2c86('0x8'));var Fax=require('./fax');var user=require('./rpc/user');var voiceQueue=require(_0x2c86('0x9'));var voiceQueueReport=require(_0x2c86('0xa'));var voiceCallReport=require('./rpc/voiceCallReport');var trunk=require(_0x2c86('0xb'));var trigger=require(_0x2c86('0xc'));var template=require(_0x2c86('0xd'));var cmHopperHistory=require(_0x2c86('0xe'));var campaign=require(_0x2c86('0xf'));var voiceExtension=require('./rpc/voiceExtension');var faxAccount=require(_0x2c86('0x10'));var zendesk=require(_0x2c86('0x11'));var salesforce=require(_0x2c86('0x12'));var sugarcrm=require('./rpc/integrations/sugarcrm');var freshdesk=require(_0x2c86('0x13'));var desk=require('./rpc/integrations/desk');var zoho=require(_0x2c86('0x14'));var vtiger=require(_0x2c86('0x15'));var freshsales=require(_0x2c86('0x16'));var servicenow=require(_0x2c86('0x17'));var dynamics365=require(_0x2c86('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 logger=require('../../config/logger')('ami');var isTrue=!![];var initP=!![];function ifMidnight(){if(moment()['get'](_0x2c86('0x19'))===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()['get'](_0x2c86('0x19'))===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise['resolve']()[_0x2c86('0x1a')](user[_0x2c86('0x1b')]())[_0x2c86('0x1a')](realtime[_0x2c86('0x1c')]())[_0x2c86('0x1a')](user['getTelephones']())['then'](realtime['initTelephones']())[_0x2c86('0x1a')](trunk['getTrunks']())[_0x2c86('0x1a')](realtime['initTrunks']())[_0x2c86('0x1a')](voiceQueue[_0x2c86('0x1d')]())[_0x2c86('0x1a')](realtime[_0x2c86('0x1e')]())[_0x2c86('0x1a')](trigger[_0x2c86('0x1f')]())[_0x2c86('0x1a')](realtime['initTriggers']())[_0x2c86('0x1a')](template[_0x2c86('0x20')]())['then'](realtime[_0x2c86('0x21')]())['then'](zendesk[_0x2c86('0x22')]())[_0x2c86('0x1a')](realtime[_0x2c86('0x23')]())[_0x2c86('0x1a')](salesforce[_0x2c86('0x24')]())[_0x2c86('0x1a')](realtime[_0x2c86('0x25')]())[_0x2c86('0x1a')](sugarcrm[_0x2c86('0x26')]())[_0x2c86('0x1a')](realtime[_0x2c86('0x27')]())[_0x2c86('0x1a')](freshdesk['getFreshdeskAccounts']())[_0x2c86('0x1a')](realtime['initFreshdeskAccounts']())[_0x2c86('0x1a')](desk[_0x2c86('0x28')]())[_0x2c86('0x1a')](realtime[_0x2c86('0x29')]())[_0x2c86('0x1a')](zoho[_0x2c86('0x2a')]())[_0x2c86('0x1a')](realtime['initZohoAccounts']())['then'](vtiger[_0x2c86('0x2b')]())['then'](realtime[_0x2c86('0x2c')]())['then'](freshsales[_0x2c86('0x2d')]())[_0x2c86('0x1a')](realtime['initFreshsalesAccounts']())[_0x2c86('0x1a')](servicenow[_0x2c86('0x2e')]())[_0x2c86('0x1a')](realtime[_0x2c86('0x2f')]())['then'](dynamics365['getDynamics365Accounts']())[_0x2c86('0x1a')](realtime[_0x2c86('0x30')]())['then'](campaign['getCampaigns']())[_0x2c86('0x1a')](realtime[_0x2c86('0x31')]())[_0x2c86('0x1a')](voiceExtension[_0x2c86('0x32')]())[_0x2c86('0x1a')](realtime[_0x2c86('0x33')]())['then'](faxAccount[_0x2c86('0x34')]())[_0x2c86('0x1a')](realtime[_0x2c86('0x35')]())[_0x2c86('0x1a')](function(){return realtime;});}function initParams(){return BPromise[_0x2c86('0x36')]()[_0x2c86('0x1a')](voiceQueueReport[_0x2c86('0x37')]())[_0x2c86('0x1a')](realtime['initVoiceQueueReports']())[_0x2c86('0x1a')](cmHopperHistory[_0x2c86('0x38')]())[_0x2c86('0x1a')](realtime[_0x2c86('0x39')]())['then'](cmHopperHistory['getCampaignHopperHistory']())['then'](realtime[_0x2c86('0x3a')]())[_0x2c86('0x1a')](voiceCallReport[_0x2c86('0x3b')]())['then'](realtime[_0x2c86('0x3c')]())['catch'](function(_0x5a73fb){logger[_0x2c86('0x3d')](_0x2c86('0x3e'),util[_0x2c86('0x3f')](_0x5a73fb,{'showHidden':![],'depth':null}));});}function main(){return server['listen'](realtime,preview,fax)[_0x2c86('0x1a')](function(_0x1ef6d8){return initRealtime();})[_0x2c86('0x1a')](function(){return initParams();})[_0x2c86('0x1a')](function(){report[_0x2c86('0x40')]();setInterval(initRealtime,0x1388);})[_0x2c86('0x41')](function(_0x5abe46){logger['error'](_0x2c86('0x42'),util[_0x2c86('0x3f')](_0x5abe46,{'showHidden':![],'depth':null}));});}main();
\ No newline at end of file
+var _0xe633=['getServicenowAccounts','getDynamics365Accounts','initDynamics365Accounts','getCampaigns','initCampaigns','getVoiceExtensions','initVoiceExtensions','getFaxAccounts','initFaxAccounts','getVoiceQueueReports','initVoiceQueueReports','getVoiceQueueHopperHistory','initVoiceQueueHopperHistory','getCampaignHopperHistory','getVoiceCallReports','initVoiceCallReports','catch','log','listen','sync','moment','./server','./report','./acw','./trigger','./preview','./rpc/voiceQueue','./rpc/voiceQueueReport','./rpc/template','./rpc/cmHopperHistory','./rpc/campaign','./rpc/voiceExtension','./rpc/integrations/salesforce','./rpc/integrations/sugarcrm','./rpc/integrations/desk','./rpc/integrations/zoho','./rpc/integrations/vtiger','./rpc/integrations/freshsales','./rpc/integrations/servicenow','./rpc/integrations/dynamics365','get','hour','then','getAgents','initAgents','initTelephones','getVoiceQueues','initVoiceQueues','getTriggers','initTriggers','getTemplates','getZendeskAccounts','initSugarcrmAccounts','getFreshdeskAccounts','initFreshdeskAccounts','getDeskAccounts','initDeskAccounts','getZohoAccounts','initZohoAccounts','initVtigerAccounts','getFreshsalesAccounts','initFreshsalesAccounts'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xe633,0x10c));var _0x3e63=function(_0x4bb0b2,_0x52d352){_0x4bb0b2=_0x4bb0b2-0x0;var _0x45aed0=_0xe633[_0x4bb0b2];return _0x45aed0;};'use strict';var BPromise=require('bluebird');var util=require('util');var moment=require(_0x3e63('0x0'));var server=require(_0x3e63('0x1'));var Realtime=require('./realtime');var Report=require(_0x3e63('0x2'));var Acw=require(_0x3e63('0x3'));var Trigger=require(_0x3e63('0x4'));var Dialer=require('./dialer');var Preview=require(_0x3e63('0x5'));var Fax=require('./fax');var user=require('./rpc/user');var voiceQueue=require(_0x3e63('0x6'));var voiceQueueReport=require(_0x3e63('0x7'));var voiceCallReport=require('./rpc/voiceCallReport');var trunk=require('./rpc/trunk');var trigger=require('./rpc/trigger');var template=require(_0x3e63('0x8'));var cmHopperHistory=require(_0x3e63('0x9'));var campaign=require(_0x3e63('0xa'));var voiceExtension=require(_0x3e63('0xb'));var faxAccount=require('./rpc/faxAccount');var zendesk=require('./rpc/integrations/zendesk');var salesforce=require(_0x3e63('0xc'));var sugarcrm=require(_0x3e63('0xd'));var freshdesk=require('./rpc/integrations/freshdesk');var desk=require(_0x3e63('0xe'));var zoho=require(_0x3e63('0xf'));var vtiger=require(_0x3e63('0x10'));var freshsales=require(_0x3e63('0x11'));var servicenow=require(_0x3e63('0x12'));var dynamics365=require(_0x3e63('0x13'));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()[_0x3e63('0x14')](_0x3e63('0x15'))===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()[_0x3e63('0x14')]('hour')===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise['resolve']()[_0x3e63('0x16')](user[_0x3e63('0x17')]())[_0x3e63('0x16')](realtime[_0x3e63('0x18')]())['then'](user['getTelephones']())[_0x3e63('0x16')](realtime[_0x3e63('0x19')]())[_0x3e63('0x16')](trunk['getTrunks']())[_0x3e63('0x16')](realtime['initTrunks']())[_0x3e63('0x16')](voiceQueue[_0x3e63('0x1a')]())[_0x3e63('0x16')](realtime[_0x3e63('0x1b')]())[_0x3e63('0x16')](trigger[_0x3e63('0x1c')]())[_0x3e63('0x16')](realtime[_0x3e63('0x1d')]())[_0x3e63('0x16')](template[_0x3e63('0x1e')]())[_0x3e63('0x16')](realtime['initTemplates']())[_0x3e63('0x16')](zendesk[_0x3e63('0x1f')]())[_0x3e63('0x16')](realtime['initZendeskAccounts']())[_0x3e63('0x16')](salesforce['getSalesforceAccounts']())['then'](realtime['initSalesforceAccounts']())[_0x3e63('0x16')](sugarcrm['getSugarcrmAccounts']())['then'](realtime[_0x3e63('0x20')]())[_0x3e63('0x16')](freshdesk[_0x3e63('0x21')]())['then'](realtime[_0x3e63('0x22')]())['then'](desk[_0x3e63('0x23')]())[_0x3e63('0x16')](realtime[_0x3e63('0x24')]())['then'](zoho[_0x3e63('0x25')]())['then'](realtime[_0x3e63('0x26')]())['then'](vtiger['getVtigerAccounts']())['then'](realtime[_0x3e63('0x27')]())['then'](freshsales[_0x3e63('0x28')]())['then'](realtime[_0x3e63('0x29')]())[_0x3e63('0x16')](servicenow[_0x3e63('0x2a')]())['then'](realtime['initServicenowAccounts']())['then'](dynamics365[_0x3e63('0x2b')]())[_0x3e63('0x16')](realtime[_0x3e63('0x2c')]())['then'](campaign[_0x3e63('0x2d')]())['then'](realtime[_0x3e63('0x2e')]())[_0x3e63('0x16')](voiceExtension[_0x3e63('0x2f')]())[_0x3e63('0x16')](realtime[_0x3e63('0x30')]())['then'](faxAccount[_0x3e63('0x31')]())[_0x3e63('0x16')](realtime[_0x3e63('0x32')]())['then'](function(){return realtime;});}function initParams(){return BPromise['resolve']()[_0x3e63('0x16')](voiceQueueReport[_0x3e63('0x33')]())[_0x3e63('0x16')](realtime[_0x3e63('0x34')]())[_0x3e63('0x16')](cmHopperHistory[_0x3e63('0x35')]())['then'](realtime[_0x3e63('0x36')]())[_0x3e63('0x16')](cmHopperHistory[_0x3e63('0x37')]())[_0x3e63('0x16')](realtime['initCampaignHopperHistory']())[_0x3e63('0x16')](voiceCallReport[_0x3e63('0x38')]())[_0x3e63('0x16')](realtime[_0x3e63('0x39')]())[_0x3e63('0x16')](function(_0x568e4a){})[_0x3e63('0x3a')](function(_0x26421e){console[_0x3e63('0x3b')](_0x26421e);});}function main(){return server[_0x3e63('0x3c')](realtime,preview,fax)[_0x3e63('0x16')](function(_0x42b6c7){return initRealtime();})[_0x3e63('0x16')](function(){return initParams();})[_0x3e63('0x16')](function(){report[_0x3e63('0x3d')]();setInterval(initRealtime,0x1388);})[_0x3e63('0x3a')](function(_0x4fb88a){console['log'](_0x4fb88a);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['interface','online','voiceStatusTime','voiceStatusQueue','onhold','local','updateStatusRealtime','toLowerCase','not_inuse','inuse','talking','voiceStatus','toNumber','format','voiceStatusCallerIdNumber','stringify','user:%s','emit','user:save','exports','lodash','util','moment','md5','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','email','accountcode','fullname','state','unknown','stateTime','status','address','phone','mobile'];(function(_0x1bcc37,_0x337975){var _0x58b528=function(_0x4ed6b4){while(--_0x4ed6b4){_0x1bcc37['push'](_0x1bcc37['shift']());}};_0x58b528(++_0x337975);}(_0x34e8,0x12c));var _0x834e=function(_0x758877,_0xa86573){_0x758877=_0x758877-0x0;var _0x55b0c4=_0x34e8[_0x758877];return _0x55b0c4;};'use strict';var _=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var moment=require(_0x834e('0x2'));var md5=require(_0x834e('0x3'));var Redis=require('ioredis');var config=require(_0x834e('0x4'));config[_0x834e('0x5')]=_[_0x834e('0x6')](config[_0x834e('0x5')],{'host':_0x834e('0x7'),'port':0x18eb});var io=require(_0x834e('0x8'))(new Redis(config[_0x834e('0x5')]));function Agent(_0x4a2018){this['id']=_0x4a2018['id']||0x0;this[_0x834e('0x9')]=_0x4a2018['name']||'';this[_0x834e('0xa')]=_0x4a2018[_0x834e('0xa')]||'';this[_0x834e('0xb')]=_0x4a2018[_0x834e('0xb')]||'';this[_0x834e('0xc')]=_0x4a2018[_0x834e('0xc')]||'';this[_0x834e('0xd')]=_0x834e('0xe');this[_0x834e('0xf')]=0x0;this[_0x834e('0x10')]=_0x834e('0xe');this[_0x834e('0x11')]='';this[_0x834e('0x12')]='';this[_0x834e('0x13')]='';this[_0x834e('0x14')]='';this[_0x834e('0x15')]=_0x4a2018[_0x834e('0x15')]||![];this['voiceStatus']=_0x834e('0xe');this[_0x834e('0x16')]=0x0;this['voiceStatusCallerIdNumber']='';this[_0x834e('0x17')]='';this[_0x834e('0x18')]=![];this[_0x834e('0x19')]=![];this[_0x834e('0x3')]='';}Agent['prototype'][_0x834e('0x1a')]=function(_0x302cbd){var _0x57274a;if(_0x302cbd&&_0x302cbd[_0x834e('0xd')]){_0x57274a=_0x302cbd['state'][_0x834e('0x1b')]();switch(_0x57274a){case _0x834e('0x1c'):_0x57274a='idle';break;case _0x834e('0x1d'):_0x57274a=_0x834e('0x1e');break;}}if(_0x57274a&&this[_0x834e('0x1f')]!==_0x57274a||_0x302cbd['statePause']){this[_0x834e('0x16')]=_[_0x834e('0x20')](moment()[_0x834e('0x21')]('x'));}if(_0x57274a){this[_0x834e('0x1f')]=_0x57274a;}var _0x237947={'id':this['id'],'name':this[_0x834e('0x9')],'email':this[_0x834e('0xa')],'accountcode':this['accountcode'],'fullname':this[_0x834e('0xc')],'state':this[_0x834e('0xd')],'stateTime':this[_0x834e('0xf')],'status':this[_0x834e('0x10')],'address':this['address'],'online':this[_0x834e('0x15')],'voiceStatus':this[_0x834e('0x1f')],'voiceStatusTime':this['voiceStatusTime'],'voiceStatusCallerIdNumber':this[_0x834e('0x22')],'voiceStatusQueue':this[_0x834e('0x17')],'interface':this[_0x834e('0x14')],'onhold':this['onhold']};var _0x4e3f48=md5(JSON[_0x834e('0x23')](_0x237947));if(this[_0x834e('0x3')]!==_0x4e3f48){this['md5']=_0x4e3f48;io['to'](util[_0x834e('0x21')](_0x834e('0x24'),_0x237947['name']))[_0x834e('0x25')](_0x834e('0x26'),_0x237947);io[_0x834e('0x25')]('user:presence',_0x237947);}};module[_0x834e('0x27')]=Agent;
\ No newline at end of file
+var _0xedd9=['phone','mobile','online','voiceStatus','voiceStatusTime','voiceStatusCallerIdNumber','voiceStatusQueue','onhold','prototype','updateStatusRealtime','state','toLowerCase','idle','inuse','talking','statePause','toNumber','interface','format','user:%s','user:save','emit','user:presence','exports','util','moment','md5','ioredis','../../../config/environment','redis','defaults','socket.io-emitter','name','email','accountcode','fullname','unknown','status'];(function(_0x2763f2,_0x416af8){var _0x3ef471=function(_0x288aa2){while(--_0x288aa2){_0x2763f2['push'](_0x2763f2['shift']());}};_0x3ef471(++_0x416af8);}(_0xedd9,0xfc));var _0x9edd=function(_0x28205e,_0x2f88f4){_0x28205e=_0x28205e-0x0;var _0x499f1b=_0xedd9[_0x28205e];return _0x499f1b;};'use strict';var _=require('lodash');var util=require(_0x9edd('0x0'));var moment=require(_0x9edd('0x1'));var md5=require(_0x9edd('0x2'));var Redis=require(_0x9edd('0x3'));var config=require(_0x9edd('0x4'));config[_0x9edd('0x5')]=_[_0x9edd('0x6')](config[_0x9edd('0x5')],{'host':'localhost','port':0x18eb});var io=require(_0x9edd('0x7'))(new Redis(config[_0x9edd('0x5')]));function Agent(_0x268f9e){this['id']=_0x268f9e['id']||0x0;this[_0x9edd('0x8')]=_0x268f9e['name']||'';this[_0x9edd('0x9')]=_0x268f9e['email']||'';this[_0x9edd('0xa')]=_0x268f9e[_0x9edd('0xa')]||'';this[_0x9edd('0xb')]=_0x268f9e[_0x9edd('0xb')]||'';this['state']=_0x9edd('0xc');this['stateTime']=0x0;this[_0x9edd('0xd')]=_0x9edd('0xc');this['address']='';this[_0x9edd('0xe')]='';this[_0x9edd('0xf')]='';this['interface']='';this[_0x9edd('0x10')]=_0x268f9e[_0x9edd('0x10')]||![];this[_0x9edd('0x11')]=_0x9edd('0xc');this[_0x9edd('0x12')]=0x0;this[_0x9edd('0x13')]='';this[_0x9edd('0x14')]='';this[_0x9edd('0x15')]=![];this['local']=![];this[_0x9edd('0x2')]='';}Agent[_0x9edd('0x16')][_0x9edd('0x17')]=function(_0x4d9a7){var _0x13b6b6;if(_0x4d9a7&&_0x4d9a7[_0x9edd('0x18')]){_0x13b6b6=_0x4d9a7[_0x9edd('0x18')][_0x9edd('0x19')]();switch(_0x13b6b6){case'not_inuse':_0x13b6b6=_0x9edd('0x1a');break;case _0x9edd('0x1b'):_0x13b6b6=_0x9edd('0x1c');break;}}if(_0x13b6b6&&this['voiceStatus']!==_0x13b6b6||_0x4d9a7[_0x9edd('0x1d')]){this[_0x9edd('0x12')]=_[_0x9edd('0x1e')](moment()['format']('x'));}if(_0x13b6b6){this[_0x9edd('0x11')]=_0x13b6b6;}var _0x5d879c={'id':this['id'],'name':this[_0x9edd('0x8')],'email':this[_0x9edd('0x9')],'accountcode':this['accountcode'],'fullname':this['fullname'],'state':this[_0x9edd('0x18')],'stateTime':this['stateTime'],'status':this[_0x9edd('0xd')],'address':this['address'],'online':this['online'],'voiceStatus':this[_0x9edd('0x11')],'voiceStatusTime':this[_0x9edd('0x12')],'voiceStatusCallerIdNumber':this['voiceStatusCallerIdNumber'],'voiceStatusQueue':this['voiceStatusQueue'],'interface':this[_0x9edd('0x1f')],'onhold':this[_0x9edd('0x15')]};var _0x477878=md5(JSON['stringify'](_0x5d879c));if(this[_0x9edd('0x2')]!==_0x477878){this[_0x9edd('0x2')]=_0x477878;io['to'](util[_0x9edd('0x20')](_0x9edd('0x21'),_0x5d879c[_0x9edd('0x8')]))['emit'](_0x9edd('0x22'),_0x5d879c);io[_0x9edd('0x23')](_0x9edd('0x24'),_0x5d879c);}};module[_0x9edd('0x25')]=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e9c=['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','dialOrderByScheduledAt','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','TrunkBackup','Trunk','Interval','SquareProject','dialQueueProject','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','exports','name','type','campaign','originated','temp','ivrAnswerCallsDay','message'];(function(_0x4fce10,_0x596096){var _0x180848=function(_0x26c514){while(--_0x26c514){_0x4fce10['push'](_0x4fce10['shift']());}};_0x180848(++_0x596096);}(_0x6e9c,0x131));var _0xc6e9=function(_0x4d518a,_0x2bb30e){_0x4d518a=_0x4d518a-0x0;var _0x235cf=_0x6e9c[_0x4d518a];return _0x235cf;};'use strict';function Campaign(_0x2c71d3){this['id']=_0x2c71d3['id']||0x0;this[_0xc6e9('0x0')]=_0x2c71d3['name']||'';this[_0xc6e9('0x1')]=_0x2c71d3[_0xc6e9('0x1')]||_0xc6e9('0x2');this[_0xc6e9('0x3')]=0x0;this[_0xc6e9('0x4')]=0x0;this[_0xc6e9('0x5')]=0x0;this['ivrTotalCallsDays']=0x0;this[_0xc6e9('0x6')]='';this[_0xc6e9('0x7')]=!![];this[_0xc6e9('0x8')]=_0x2c71d3[_0xc6e9('0x8')];this[_0xc6e9('0x9')]=_0x2c71d3[_0xc6e9('0x9')];this[_0xc6e9('0xa')]=_0x2c71d3['dialTimezone']||null;this[_0xc6e9('0xb')]=_0x2c71d3[_0xc6e9('0xb')]?_0x2c71d3[_0xc6e9('0xb')]:null;this[_0xc6e9('0xc')]=_0x2c71d3[_0xc6e9('0xc')];this[_0xc6e9('0xd')]=_0x2c71d3[_0xc6e9('0xd')];this['dialOriginateTimeout']=_0x2c71d3[_0xc6e9('0xe')]||0x1e;this[_0xc6e9('0xf')]=_0x2c71d3[_0xc6e9('0xf')];this[_0xc6e9('0x10')]=_0x2c71d3[_0xc6e9('0x10')];this[_0xc6e9('0x11')]=_0x2c71d3[_0xc6e9('0x11')];this['dialBusyRetryFrequency']=_0x2c71d3[_0xc6e9('0x12')];this[_0xc6e9('0x13')]=_0x2c71d3['dialNoAnswerMaxRetry'];this[_0xc6e9('0x14')]=_0x2c71d3[_0xc6e9('0x14')];this[_0xc6e9('0x15')]=_0x2c71d3[_0xc6e9('0x15')];this['dialNoSuchNumberMaxRetry']=_0x2c71d3[_0xc6e9('0x16')]||0x3;this[_0xc6e9('0x17')]=_0x2c71d3[_0xc6e9('0x17')]||0x96;this[_0xc6e9('0x18')]=_0x2c71d3[_0xc6e9('0x18')]||0x3;this['dialDropRetryFrequency']=_0x2c71d3[_0xc6e9('0x19')]||0x96;this['dialAbandonedMaxRetry']=_0x2c71d3[_0xc6e9('0x1a')]||0x3;this['dialAbandonedRetryFrequency']=_0x2c71d3[_0xc6e9('0x1b')]||0x96;this[_0xc6e9('0x1c')]=_0x2c71d3[_0xc6e9('0x1c')]||0x3;this[_0xc6e9('0x1d')]=_0x2c71d3[_0xc6e9('0x1d')]||0x96;this[_0xc6e9('0x1e')]=_0x2c71d3['dialAgentRejectMaxRetry']||0x3;this[_0xc6e9('0x1f')]=_0x2c71d3[_0xc6e9('0x1f')]||0x96;this[_0xc6e9('0x20')]=_0x2c71d3[_0xc6e9('0x20')]||'DESC';this[_0xc6e9('0x21')]=_0x2c71d3[_0xc6e9('0x21')]||undefined;this[_0xc6e9('0x22')]=_0x2c71d3[_0xc6e9('0x22')]||undefined;this['dialCutDigit']=_0x2c71d3[_0xc6e9('0x23')]||undefined;this[_0xc6e9('0x24')]=_0x2c71d3[_0xc6e9('0x24')]?_0x2c71d3['TrunkBackup']:undefined;this[_0xc6e9('0x25')]=_0x2c71d3[_0xc6e9('0x25')]?_0x2c71d3[_0xc6e9('0x25')]:undefined;this[_0xc6e9('0x26')]=_0x2c71d3[_0xc6e9('0x26')]?_0x2c71d3['Interval']:undefined;this['SquareProject']=_0x2c71d3[_0xc6e9('0x27')]?_0x2c71d3[_0xc6e9('0x27')]:undefined;this[_0xc6e9('0x28')]=_0x2c71d3[_0xc6e9('0x27')]?_0x2c71d3[_0xc6e9('0x27')][_0xc6e9('0x0')]:undefined;this['dialAMDActive']=_0x2c71d3[_0xc6e9('0x29')]||![];this[_0xc6e9('0x2a')]=_0x2c71d3[_0xc6e9('0x2a')];this[_0xc6e9('0x2b')]=_0x2c71d3[_0xc6e9('0x2b')];this[_0xc6e9('0x2c')]=_0x2c71d3['dialAMDAfterGreetingSilence'];this[_0xc6e9('0x2d')]=_0x2c71d3[_0xc6e9('0x2d')];this['dialAMDMinWordLength']=_0x2c71d3[_0xc6e9('0x2e')];this[_0xc6e9('0x2f')]=_0x2c71d3[_0xc6e9('0x2f')];this[_0xc6e9('0x30')]=_0x2c71d3[_0xc6e9('0x30')];this[_0xc6e9('0x31')]=_0x2c71d3[_0xc6e9('0x31')];this[_0xc6e9('0x32')]=_0x2c71d3[_0xc6e9('0x32')];}module[_0xc6e9('0x33')]=Campaign;
\ No newline at end of file
+var _0x069d=['dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialPrefix','dialCutDigit','TrunkBackup','Trunk','Interval','SquareProject','dialQueueProject','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','exports','name','type','campaign','originated','temp','ivrTotalCallsDays','sendMessageOneNotActive','active','dialTimezone','dialGlobalInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber'];(function(_0xc457ef,_0x356d6d){var _0x2141c9=function(_0x5e2007){while(--_0x5e2007){_0xc457ef['push'](_0xc457ef['shift']());}};_0x2141c9(++_0x356d6d);}(_0x069d,0x13d));var _0xd069=function(_0x352644,_0x33db92){_0x352644=_0x352644-0x0;var _0x2ec642=_0x069d[_0x352644];return _0x2ec642;};'use strict';function Campaign(_0x3930e9){this['id']=_0x3930e9['id']||0x0;this[_0xd069('0x0')]=_0x3930e9[_0xd069('0x0')]||'';this[_0xd069('0x1')]=_0x3930e9['type']||_0xd069('0x2');this[_0xd069('0x3')]=0x0;this[_0xd069('0x4')]=0x0;this['ivrAnswerCallsDay']=0x0;this[_0xd069('0x5')]=0x0;this['message']='';this[_0xd069('0x6')]=!![];this[_0xd069('0x7')]=_0x3930e9[_0xd069('0x7')];this['limitCalls']=_0x3930e9['limitCalls'];this[_0xd069('0x8')]=_0x3930e9['dialTimezone']||null;this[_0xd069('0x9')]=_0x3930e9['dialGlobalInterval']?_0x3930e9['dialGlobalInterval']:null;this[_0xd069('0xa')]=_0x3930e9[_0xd069('0xa')];this[_0xd069('0xb')]=_0x3930e9[_0xd069('0xb')];this['dialOriginateTimeout']=_0x3930e9[_0xd069('0xc')]||0x1e;this[_0xd069('0xd')]=_0x3930e9['dialCongestionMaxRetry'];this['dialCongestionRetryFrequency']=_0x3930e9[_0xd069('0xe')];this[_0xd069('0xf')]=_0x3930e9[_0xd069('0xf')];this['dialBusyRetryFrequency']=_0x3930e9[_0xd069('0x10')];this[_0xd069('0x11')]=_0x3930e9[_0xd069('0x11')];this['dialNoAnswerRetryFrequency']=_0x3930e9['dialNoAnswerRetryFrequency'];this[_0xd069('0x12')]=_0x3930e9[_0xd069('0x12')];this['dialNoSuchNumberMaxRetry']=_0x3930e9[_0xd069('0x13')]||0x3;this[_0xd069('0x14')]=_0x3930e9[_0xd069('0x14')]||0x96;this['dialDropMaxRetry']=_0x3930e9[_0xd069('0x15')]||0x3;this[_0xd069('0x16')]=_0x3930e9['dialDropRetryFrequency']||0x96;this[_0xd069('0x17')]=_0x3930e9[_0xd069('0x17')]||0x3;this[_0xd069('0x18')]=_0x3930e9[_0xd069('0x18')]||0x96;this['dialMachineMaxRetry']=_0x3930e9[_0xd069('0x19')]||0x3;this[_0xd069('0x1a')]=_0x3930e9[_0xd069('0x1a')]||0x96;this[_0xd069('0x1b')]=_0x3930e9[_0xd069('0x1b')]||0x3;this[_0xd069('0x1c')]=_0x3930e9['dialAgentRejectRetryFrequency']||0x96;this['dialOrderByScheduledAt']=_0x3930e9['dialOrderByScheduledAt']||'DESC';this[_0xd069('0x1d')]=_0x3930e9['dialPrefix']||undefined;this['dialRandomLastDigitCallerIdNumber']=_0x3930e9['dialRandomLastDigitCallerIdNumber']||undefined;this[_0xd069('0x1e')]=_0x3930e9[_0xd069('0x1e')]||undefined;this[_0xd069('0x1f')]=_0x3930e9['TrunkBackup']?_0x3930e9[_0xd069('0x1f')]:undefined;this[_0xd069('0x20')]=_0x3930e9[_0xd069('0x20')]?_0x3930e9[_0xd069('0x20')]:undefined;this[_0xd069('0x21')]=_0x3930e9[_0xd069('0x21')]?_0x3930e9[_0xd069('0x21')]:undefined;this[_0xd069('0x22')]=_0x3930e9[_0xd069('0x22')]?_0x3930e9[_0xd069('0x22')]:undefined;this[_0xd069('0x23')]=_0x3930e9[_0xd069('0x22')]?_0x3930e9[_0xd069('0x22')][_0xd069('0x0')]:undefined;this[_0xd069('0x24')]=_0x3930e9[_0xd069('0x24')]||![];this[_0xd069('0x25')]=_0x3930e9[_0xd069('0x25')];this[_0xd069('0x26')]=_0x3930e9[_0xd069('0x26')];this[_0xd069('0x27')]=_0x3930e9['dialAMDAfterGreetingSilence'];this[_0xd069('0x28')]=_0x3930e9['dialAMDTotalAnalysisTime'];this[_0xd069('0x29')]=_0x3930e9[_0xd069('0x29')];this[_0xd069('0x2a')]=_0x3930e9['dialAMDBetweenWordsSilence'];this['dialAMDMaximumNumberOfWords']=_0x3930e9[_0xd069('0x2b')];this[_0xd069('0x2c')]=_0x3930e9['dialAMDSilenceThreshold'];this[_0xd069('0x2d')]=_0x3930e9[_0xd069('0x2d')];}module[_0xd069('0x2e')]=Campaign;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa94=['holdtime','type','tag','monitor','queue','monitors','transferconnectedlinenum','transferType','mohtime','starttime','destinationchannel','calleridname','connectedlinenum','accountcode','context','uniqueid','linkedid','exten','answered','answertime','unmanaged','abandoned','duration'];(function(_0x178e48,_0x3c9509){var _0x440d7e=function(_0xc2f8a0){while(--_0xc2f8a0){_0x178e48['push'](_0x178e48['shift']());}};_0x440d7e(++_0x3c9509);}(_0xfa94,0xef));var _0x4fa9=function(_0x68c4d9,_0x419b3c){_0x68c4d9=_0x68c4d9-0x0;var _0x62da93=_0xfa94[_0x68c4d9];return _0x62da93;};'use strict';function Channel(){this[_0x4fa9('0x0')]=null;this['channel']='';this[_0x4fa9('0x1')]='';this['calleridnum']=0x0;this[_0x4fa9('0x2')]='';this[_0x4fa9('0x3')]=undefined;this['connectedlinename']=undefined;this[_0x4fa9('0x4')]=0x0;this[_0x4fa9('0x5')]='';this[_0x4fa9('0x6')]=0x0;this[_0x4fa9('0x7')]=0x0;this[_0x4fa9('0x8')]=0x0;this[_0x4fa9('0x9')]=![];this[_0x4fa9('0xa')]=null;this['endtime']=null;this[_0x4fa9('0xb')]=![];this[_0x4fa9('0xc')]=![];this['lastapplication']='';this['lastdata']='';this[_0x4fa9('0xd')]=0x0;this['billableseconds']=0x0;this[_0x4fa9('0xe')]=0x0;this[_0x4fa9('0xf')]=null;this[_0x4fa9('0x10')]=null;this['disposition']=null;this[_0x4fa9('0x11')]=![];this['monitorFilename']=null;this[_0x4fa9('0x12')]=null;this[_0x4fa9('0x13')]=[];this['transfercalleridnum']=undefined;this[_0x4fa9('0x14')]=undefined;this[_0x4fa9('0x15')]=undefined;this[_0x4fa9('0x16')]=0x0;}module['exports']=Channel;
\ No newline at end of file
+var _0xebc0=['transferconnectedlinenum','transferType','mohtime','exports','starttime','channel','destinationchannel','calleridname','connectedlinenum','connectedlinename','accountcode','context','uniqueid','linkedid','answertime','abandoned','lastapplication','holdtime','type','tag','disposition','monitorFilename','queue','monitors','transfercalleridnum'];(function(_0x3733ec,_0x267eba){var _0x219310=function(_0x25dd54){while(--_0x25dd54){_0x3733ec['push'](_0x3733ec['shift']());}};_0x219310(++_0x267eba);}(_0xebc0,0xe5));var _0x0ebc=function(_0x59f8cb,_0x50567c){_0x59f8cb=_0x59f8cb-0x0;var _0x58dd01=_0xebc0[_0x59f8cb];return _0x58dd01;};'use strict';function Channel(){this[_0x0ebc('0x0')]=null;this[_0x0ebc('0x1')]='';this[_0x0ebc('0x2')]='';this['calleridnum']=0x0;this[_0x0ebc('0x3')]='';this[_0x0ebc('0x4')]=undefined;this[_0x0ebc('0x5')]=undefined;this[_0x0ebc('0x6')]=0x0;this[_0x0ebc('0x7')]='';this[_0x0ebc('0x8')]=0x0;this[_0x0ebc('0x9')]=0x0;this['exten']=0x0;this['answered']=![];this[_0x0ebc('0xa')]=null;this['endtime']=null;this['unmanaged']=![];this[_0x0ebc('0xb')]=![];this[_0x0ebc('0xc')]='';this['lastdata']='';this['duration']=0x0;this['billableseconds']=0x0;this[_0x0ebc('0xd')]=0x0;this[_0x0ebc('0xe')]=null;this[_0x0ebc('0xf')]=null;this[_0x0ebc('0x10')]=null;this['monitor']=![];this[_0x0ebc('0x11')]=null;this[_0x0ebc('0x12')]=null;this[_0x0ebc('0x13')]=[];this[_0x0ebc('0x14')]=undefined;this[_0x0ebc('0x15')]=undefined;this[_0x0ebc('0x16')]=undefined;this[_0x0ebc('0x17')]=0x0;}module[_0x0ebc('0x18')]=Channel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b32=['type','serverUrl','Configurations','exports','name','username','remoteUri','authType','password','consumerKey','token','tokenSecret'];(function(_0x38bf8a,_0x923ab1){var _0x7cf40a=function(_0x1e0081){while(--_0x1e0081){_0x38bf8a['push'](_0x38bf8a['shift']());}};_0x7cf40a(++_0x923ab1);}(_0x8b32,0xa0));var _0x28b3=function(_0x3fc31d,_0x2059d8){_0x3fc31d=_0x3fc31d-0x0;var _0x493b51=_0x8b32[_0x3fc31d];return _0x493b51;};'use strict';function DeskAccount(_0xdf04f7){this['id']=_0xdf04f7['id']||0x0;this['name']=_0xdf04f7[_0x28b3('0x0')]||'';this['username']=_0xdf04f7[_0x28b3('0x1')]||'';this[_0x28b3('0x2')]=_0xdf04f7[_0x28b3('0x2')]||'';this[_0x28b3('0x3')]=_0xdf04f7['authType']||'';this[_0x28b3('0x4')]=_0xdf04f7['password']||'';this[_0x28b3('0x5')]=_0xdf04f7[_0x28b3('0x5')]||'';this['consumerSecret']=_0xdf04f7['consumerSecret']||'';this['token']=_0xdf04f7[_0x28b3('0x6')]||'';this[_0x28b3('0x7')]=_0xdf04f7[_0x28b3('0x7')]||'';this[_0x28b3('0x8')]=_0xdf04f7[_0x28b3('0x8')]||'';this[_0x28b3('0x9')]=_0xdf04f7[_0x28b3('0x9')]||'';this[_0x28b3('0xa')]=_0xdf04f7[_0x28b3('0xa')]||{};}module[_0x28b3('0xb')]=DeskAccount;
\ No newline at end of file
+var _0x9751=['remoteUri','authType','consumerKey','consumerSecret','token','tokenSecret','type','serverUrl','Configurations','name','username'];(function(_0x1a0daa,_0x2a4634){var _0x1dbe15=function(_0xa8ab22){while(--_0xa8ab22){_0x1a0daa['push'](_0x1a0daa['shift']());}};_0x1dbe15(++_0x2a4634);}(_0x9751,0x13d));var _0x1975=function(_0x567a9e,_0x1b593e){_0x567a9e=_0x567a9e-0x0;var _0xcf211a=_0x9751[_0x567a9e];return _0xcf211a;};'use strict';function DeskAccount(_0x18d76d){this['id']=_0x18d76d['id']||0x0;this['name']=_0x18d76d[_0x1975('0x0')]||'';this['username']=_0x18d76d[_0x1975('0x1')]||'';this[_0x1975('0x2')]=_0x18d76d[_0x1975('0x2')]||'';this[_0x1975('0x3')]=_0x18d76d[_0x1975('0x3')]||'';this['password']=_0x18d76d['password']||'';this[_0x1975('0x4')]=_0x18d76d[_0x1975('0x4')]||'';this[_0x1975('0x5')]=_0x18d76d[_0x1975('0x5')]||'';this[_0x1975('0x6')]=_0x18d76d['token']||'';this['tokenSecret']=_0x18d76d[_0x1975('0x7')]||'';this[_0x1975('0x8')]=_0x18d76d[_0x1975('0x8')]||'';this[_0x1975('0x9')]=_0x18d76d[_0x1975('0x9')]||'';this['Configurations']=_0x18d76d[_0x1975('0xa')]||{};}module['exports']=DeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b02=['username','password','remoteUri','tenantId','clientId','clientSecret','serverUrl','Configurations','name'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5b02,0xe9));var _0x25b0=function(_0x99a6c6,_0x5408a7){_0x99a6c6=_0x99a6c6-0x0;var _0x50bb43=_0x5b02[_0x99a6c6];return _0x50bb43;};'use strict';function Dynamics365Account(_0x5d3c24){this['id']=_0x5d3c24['id']||0x0;this[_0x25b0('0x0')]=_0x5d3c24[_0x25b0('0x0')]||'';this[_0x25b0('0x1')]=_0x5d3c24['username']||'';this['password']=_0x5d3c24[_0x25b0('0x2')]||'';this['remoteUri']=_0x5d3c24[_0x25b0('0x3')]||'';this[_0x25b0('0x4')]=_0x5d3c24[_0x25b0('0x4')]||'';this[_0x25b0('0x5')]=_0x5d3c24[_0x25b0('0x5')]||'';this['clientSecret']=_0x5d3c24[_0x25b0('0x6')]||{};this[_0x25b0('0x7')]=_0x5d3c24['serverUrl']||'';this[_0x25b0('0x8')]=_0x5d3c24['Configurations']||{};}module['exports']=Dynamics365Account;
\ No newline at end of file
+var _0x6c76=['exports','name','username','password','remoteUri','tenantId','clientId','clientSecret','Configurations'];(function(_0x1b27ff,_0x34070b){var _0x1ff114=function(_0xb5b137){while(--_0xb5b137){_0x1b27ff['push'](_0x1b27ff['shift']());}};_0x1ff114(++_0x34070b);}(_0x6c76,0x184));var _0x66c7=function(_0x29195e,_0x132406){_0x29195e=_0x29195e-0x0;var _0x515001=_0x6c76[_0x29195e];return _0x515001;};'use strict';function Dynamics365Account(_0x4d4f77){this['id']=_0x4d4f77['id']||0x0;this[_0x66c7('0x0')]=_0x4d4f77[_0x66c7('0x0')]||'';this['username']=_0x4d4f77[_0x66c7('0x1')]||'';this[_0x66c7('0x2')]=_0x4d4f77['password']||'';this['remoteUri']=_0x4d4f77[_0x66c7('0x3')]||'';this[_0x66c7('0x4')]=_0x4d4f77['tenantId']||'';this[_0x66c7('0x5')]=_0x4d4f77[_0x66c7('0x5')]||'';this['clientSecret']=_0x4d4f77[_0x66c7('0x6')]||{};this['serverUrl']=_0x4d4f77['serverUrl']||'';this[_0x66c7('0x7')]=_0x4d4f77[_0x66c7('0x7')]||{};}module[_0x66c7('0x8')]=Dynamics365Account;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd790=['t38timeout','tech','SIP','Trunk','ListId','key','exports','name','description','headerinfo','localstationid','minrate','maxrate','modem','v17,v27,v29','gateway','faxdetect'];(function(_0x1ef865,_0x3a46cb){var _0x22c8b4=function(_0x4e35f3){while(--_0x4e35f3){_0x1ef865['push'](_0x1ef865['shift']());}};_0x22c8b4(++_0x3a46cb);}(_0xd790,0xb1));var _0x0d79=function(_0x168c41,_0x4d5871){_0x168c41=_0x168c41-0x0;var _0xed0f90=_0xd790[_0x168c41];return _0xed0f90;};'use strict';function FaxAccount(_0x4a96f3){this['id']=_0x4a96f3['id']||0x0;this[_0x0d79('0x0')]=_0x4a96f3['name']||'';this[_0x0d79('0x1')]=_0x4a96f3['description'];this['ecm']=_0x4a96f3['ecm'];this[_0x0d79('0x2')]=_0x4a96f3[_0x0d79('0x2')];this['localstationid']=_0x4a96f3[_0x0d79('0x3')];this[_0x0d79('0x4')]=_0x4a96f3[_0x0d79('0x4')]||0x960;this[_0x0d79('0x5')]=_0x4a96f3[_0x0d79('0x5')]||0x3840;this['modem']=_0x4a96f3[_0x0d79('0x6')]||_0x0d79('0x7');this[_0x0d79('0x8')]=_0x4a96f3[_0x0d79('0x8')]||'no';this['faxdetect']=_0x4a96f3[_0x0d79('0x9')]||'no';this['t38timeout']=_0x4a96f3[_0x0d79('0xa')]||0x1388;this['tech']=_0x4a96f3[_0x0d79('0xb')]||_0x0d79('0xc');this[_0x0d79('0xd')]=_0x4a96f3[_0x0d79('0xd')]?_0x4a96f3[_0x0d79('0xd')]:undefined;this[_0x0d79('0xe')]=_0x4a96f3[_0x0d79('0xe')];this[_0x0d79('0xf')]=_0x4a96f3[_0x0d79('0xf')];}module[_0x0d79('0x10')]=FaxAccount;
\ No newline at end of file
+var _0xf7a1=['headerinfo','localstationid','maxrate','modem','gateway','faxdetect','tech','SIP','Trunk','ListId','key','exports','name','description','ecm'];(function(_0x170855,_0xde543a){var _0x372e42=function(_0x3140ee){while(--_0x3140ee){_0x170855['push'](_0x170855['shift']());}};_0x372e42(++_0xde543a);}(_0xf7a1,0xed));var _0x1f7a=function(_0x45efce,_0x4677f1){_0x45efce=_0x45efce-0x0;var _0x53d66f=_0xf7a1[_0x45efce];return _0x53d66f;};'use strict';function FaxAccount(_0x136aee){this['id']=_0x136aee['id']||0x0;this[_0x1f7a('0x0')]=_0x136aee[_0x1f7a('0x0')]||'';this[_0x1f7a('0x1')]=_0x136aee[_0x1f7a('0x1')];this[_0x1f7a('0x2')]=_0x136aee[_0x1f7a('0x2')];this['headerinfo']=_0x136aee[_0x1f7a('0x3')];this['localstationid']=_0x136aee[_0x1f7a('0x4')];this['minrate']=_0x136aee['minrate']||0x960;this[_0x1f7a('0x5')]=_0x136aee[_0x1f7a('0x5')]||0x3840;this[_0x1f7a('0x6')]=_0x136aee[_0x1f7a('0x6')]||'v17,v27,v29';this[_0x1f7a('0x7')]=_0x136aee[_0x1f7a('0x7')]||'no';this[_0x1f7a('0x8')]=_0x136aee[_0x1f7a('0x8')]||'no';this['t38timeout']=_0x136aee['t38timeout']||0x1388;this['tech']=_0x136aee[_0x1f7a('0x9')]||_0x1f7a('0xa');this['Trunk']=_0x136aee[_0x1f7a('0xb')]?_0x136aee['Trunk']:undefined;this[_0x1f7a('0xc')]=_0x136aee[_0x1f7a('0xc')];this[_0x1f7a('0xd')]=_0x136aee[_0x1f7a('0xd')];}module[_0x1f7a('0xe')]=FaxAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf960=['apiKey','token','serverUrl','exports','name','username'];(function(_0x3f9190,_0x515965){var _0xbc924a=function(_0x37ca2a){while(--_0x37ca2a){_0x3f9190['push'](_0x3f9190['shift']());}};_0xbc924a(++_0x515965);}(_0xf960,0x18a));var _0x0f96=function(_0x506172,_0xbc3a3){_0x506172=_0x506172-0x0;var _0x2723c0=_0xf960[_0x506172];return _0x2723c0;};'use strict';function FreshdeskAccount(_0x482ec1){this['id']=_0x482ec1['id']||0x0;this[_0x0f96('0x0')]=_0x482ec1[_0x0f96('0x0')]||'';this['username']=_0x482ec1[_0x0f96('0x1')]||'';this[_0x0f96('0x2')]=_0x482ec1[_0x0f96('0x3')]||'';this['remoteUri']=_0x482ec1['remoteUri']||'';this[_0x0f96('0x4')]=_0x482ec1[_0x0f96('0x4')]||'';this['Configurations']=_0x482ec1['Configurations']||{};}module[_0x0f96('0x5')]=FreshdeskAccount;
\ No newline at end of file
+var _0xeea1=['name','username','apiKey','serverUrl','Configurations','exports'];(function(_0x128188,_0x418a16){var _0x4bc209=function(_0x58c891){while(--_0x58c891){_0x128188['push'](_0x128188['shift']());}};_0x4bc209(++_0x418a16);}(_0xeea1,0x16e));var _0x1eea=function(_0x98353e,_0x502998){_0x98353e=_0x98353e-0x0;var _0x3569c3=_0xeea1[_0x98353e];return _0x3569c3;};'use strict';function FreshdeskAccount(_0x139482){this['id']=_0x139482['id']||0x0;this[_0x1eea('0x0')]=_0x139482[_0x1eea('0x0')]||'';this[_0x1eea('0x1')]=_0x139482[_0x1eea('0x1')]||'';this[_0x1eea('0x2')]=_0x139482['token']||'';this['remoteUri']=_0x139482['remoteUri']||'';this[_0x1eea('0x3')]=_0x139482['serverUrl']||'';this[_0x1eea('0x4')]=_0x139482[_0x1eea('0x4')]||{};}module[_0x1eea('0x5')]=FreshdeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb4c7=['name','username','token','remoteUri','serverUrl','Configurations','exports'];(function(_0x47b928,_0x13ac85){var _0x52dec1=function(_0x36675a){while(--_0x36675a){_0x47b928['push'](_0x47b928['shift']());}};_0x52dec1(++_0x13ac85);}(_0xb4c7,0x1ea));var _0x7b4c=function(_0x50861e,_0x416563){_0x50861e=_0x50861e-0x0;var _0x5cfbb6=_0xb4c7[_0x50861e];return _0x5cfbb6;};'use strict';function FreshsalesAccount(_0x54a040){this['id']=_0x54a040['id']||0x0;this[_0x7b4c('0x0')]=_0x54a040[_0x7b4c('0x0')]||'';this[_0x7b4c('0x1')]=_0x54a040[_0x7b4c('0x1')]||'';this['apiKey']=_0x54a040[_0x7b4c('0x2')]||'';this[_0x7b4c('0x3')]=_0x54a040[_0x7b4c('0x3')]||'';this[_0x7b4c('0x4')]=_0x54a040[_0x7b4c('0x4')]||'';this['Configurations']=_0x54a040[_0x7b4c('0x5')]||{};}module[_0x7b4c('0x6')]=FreshsalesAccount;
\ No newline at end of file
+var _0x29af=['serverUrl','exports','name','username','apiKey','remoteUri'];(function(_0x34021d,_0x753aa6){var _0x16597b=function(_0x2d040a){while(--_0x2d040a){_0x34021d['push'](_0x34021d['shift']());}};_0x16597b(++_0x753aa6);}(_0x29af,0x134));var _0xf29a=function(_0x4f4ddf,_0x509cf8){_0x4f4ddf=_0x4f4ddf-0x0;var _0x2b04ec=_0x29af[_0x4f4ddf];return _0x2b04ec;};'use strict';function FreshsalesAccount(_0x1e95c8){this['id']=_0x1e95c8['id']||0x0;this[_0xf29a('0x0')]=_0x1e95c8[_0xf29a('0x0')]||'';this['username']=_0x1e95c8[_0xf29a('0x1')]||'';this[_0xf29a('0x2')]=_0x1e95c8['token']||'';this[_0xf29a('0x3')]=_0x1e95c8['remoteUri']||'';this[_0xf29a('0x4')]=_0x1e95c8[_0xf29a('0x4')]||'';this['Configurations']=_0x1e95c8['Configurations']||{};}module[_0xf29a('0x5')]=FreshsalesAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ace=['uniqueid','calleridnum','queue','queuecallerleaveAt','count','queuecallerabandon','queuecallerabandonAt','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','originalposition','channel','connectedlinenum','connectedlinename','accountcode','context','exten','priority','holdtime','assigned','lastAssignedTo','motionChannel','voice','mohtime','variables','exports','type','inbound'];(function(_0x375d1a,_0x17af65){var _0x1141d8=function(_0x2a7a34){while(--_0x2a7a34){_0x375d1a['push'](_0x375d1a['shift']());}};_0x1141d8(++_0x17af65);}(_0x0ace,0xac));var _0xe0ac=function(_0x138676,_0x27a8d5){_0x138676=_0x138676-0x0;var _0xf72f74=_0x0ace[_0x138676];return _0xf72f74;};'use strict';function QueueReport(){this[_0xe0ac('0x0')]=_0xe0ac('0x1');this[_0xe0ac('0x2')]='';this[_0xe0ac('0x3')]='';this['calleridname']='';this[_0xe0ac('0x4')]='';this['queuecallerjoinAt']=null;this[_0xe0ac('0x5')]=null;this['position']=0x1;this[_0xe0ac('0x6')]=0x1;this[_0xe0ac('0x7')]=![];this[_0xe0ac('0x8')]=null;this[_0xe0ac('0x9')]=![];this[_0xe0ac('0xa')]=null;this[_0xe0ac('0xb')]=![];this[_0xe0ac('0xc')]=null;this[_0xe0ac('0xd')]=0x1;this[_0xe0ac('0xe')]='';this[_0xe0ac('0xf')]='';this[_0xe0ac('0x10')]='';this[_0xe0ac('0x11')]='';this[_0xe0ac('0x12')]='';this[_0xe0ac('0x13')]='';this[_0xe0ac('0x14')]='';this[_0xe0ac('0x15')]=0x0;this[_0xe0ac('0x16')]=![];this[_0xe0ac('0x17')]='';this[_0xe0ac('0x18')]=_0xe0ac('0x19');this[_0xe0ac('0x1a')]=0x0;this[_0xe0ac('0x1b')]={};}module[_0xe0ac('0x1c')]=QueueReport;
\ No newline at end of file
+var _0x0387=['accountcode','exten','priority','holdtime','assigned','variables','exports','type','inbound','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','count','queuecallerabandon','queuecallerabandonAt','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','channel','connectedlinename'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x0387,0xa8));var _0x7038=function(_0x25634c,_0x3086df){_0x25634c=_0x25634c-0x0;var _0x30757e=_0x0387[_0x25634c];return _0x30757e;};'use strict';function QueueReport(){this[_0x7038('0x0')]=_0x7038('0x1');this[_0x7038('0x2')]='';this[_0x7038('0x3')]='';this[_0x7038('0x4')]='';this[_0x7038('0x5')]='';this[_0x7038('0x6')]=null;this['queuecallerleaveAt']=null;this['position']=0x1;this[_0x7038('0x7')]=0x1;this[_0x7038('0x8')]=![];this[_0x7038('0x9')]=null;this[_0x7038('0xa')]=![];this[_0x7038('0xb')]=null;this[_0x7038('0xc')]=![];this[_0x7038('0xd')]=null;this['originalposition']=0x1;this[_0x7038('0xe')]='';this['connectedlinenum']='';this[_0x7038('0xf')]='';this[_0x7038('0x10')]='';this['context']='';this[_0x7038('0x11')]='';this[_0x7038('0x12')]='';this[_0x7038('0x13')]=0x0;this[_0x7038('0x14')]=![];this['lastAssignedTo']='';this['mohtime']=0x0;this[_0x7038('0x15')]={};}module[_0x7038('0x16')]=QueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ebd=['username','remoteUri','password','clientSecret','securityToken','type','integrationTab','serverUrl','Configurations','name'];(function(_0x33501f,_0x2cae5){var _0x3e3713=function(_0x3278e3){while(--_0x3278e3){_0x33501f['push'](_0x33501f['shift']());}};_0x3e3713(++_0x2cae5);}(_0x0ebd,0xa9));var _0xd0eb=function(_0x185606,_0x143904){_0x185606=_0x185606-0x0;var _0x3f3400=_0x0ebd[_0x185606];return _0x3f3400;};'use strict';function SalesforceAccount(_0x5cb40c){this['id']=_0x5cb40c['id']||0x0;this[_0xd0eb('0x0')]=_0x5cb40c[_0xd0eb('0x0')]||'';this[_0xd0eb('0x1')]=_0x5cb40c[_0xd0eb('0x1')]||'';this[_0xd0eb('0x2')]=_0x5cb40c[_0xd0eb('0x2')]||'';this[_0xd0eb('0x3')]=_0x5cb40c[_0xd0eb('0x3')]||'';this['clientId']=_0x5cb40c['clientId']||'';this[_0xd0eb('0x4')]=_0x5cb40c[_0xd0eb('0x4')]||'';this[_0xd0eb('0x5')]=_0x5cb40c[_0xd0eb('0x5')]||'';this[_0xd0eb('0x6')]=_0x5cb40c['type']||_0xd0eb('0x7');this[_0xd0eb('0x8')]=_0x5cb40c['serverUrl']||'';this[_0xd0eb('0x9')]=_0x5cb40c[_0xd0eb('0x9')]||{};}module['exports']=SalesforceAccount;
\ No newline at end of file
+var _0xaac4=['name','username','remoteUri','password','clientId','clientSecret','securityToken','type','integrationTab','serverUrl','Configurations','exports'];(function(_0x5d1fec,_0x3a0c62){var _0x5db43f=function(_0x58afa1){while(--_0x58afa1){_0x5d1fec['push'](_0x5d1fec['shift']());}};_0x5db43f(++_0x3a0c62);}(_0xaac4,0x6c));var _0x4aac=function(_0x26ed29,_0x2288f1){_0x26ed29=_0x26ed29-0x0;var _0x26182c=_0xaac4[_0x26ed29];return _0x26182c;};'use strict';function SalesforceAccount(_0x4b964b){this['id']=_0x4b964b['id']||0x0;this[_0x4aac('0x0')]=_0x4b964b['name']||'';this[_0x4aac('0x1')]=_0x4b964b[_0x4aac('0x1')]||'';this[_0x4aac('0x2')]=_0x4b964b['remoteUri']||'';this[_0x4aac('0x3')]=_0x4b964b[_0x4aac('0x3')]||'';this[_0x4aac('0x4')]=_0x4b964b[_0x4aac('0x4')]||'';this[_0x4aac('0x5')]=_0x4b964b['clientSecret']||'';this[_0x4aac('0x6')]=_0x4b964b[_0x4aac('0x6')]||'';this[_0x4aac('0x7')]=_0x4b964b['type']||_0x4aac('0x8');this['serverUrl']=_0x4b964b[_0x4aac('0x9')]||'';this[_0x4aac('0xa')]=_0x4b964b[_0x4aac('0xa')]||{};}module[_0x4aac('0xb')]=SalesforceAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ee2=['username','password','remoteUri','serverUrl','Configurations','exports','name'];(function(_0x5192de,_0x4e91cd){var _0x4e287e=function(_0x3639bc){while(--_0x3639bc){_0x5192de['push'](_0x5192de['shift']());}};_0x4e287e(++_0x4e91cd);}(_0x0ee2,0xa7));var _0x20ee=function(_0x43d619,_0x28264e){_0x43d619=_0x43d619-0x0;var _0x2aa5a4=_0x0ee2[_0x43d619];return _0x2aa5a4;};'use strict';function ServicenowAccount(_0x50bed4){this['id']=_0x50bed4['id']||0x0;this[_0x20ee('0x0')]=_0x50bed4[_0x20ee('0x0')]||'';this[_0x20ee('0x1')]=_0x50bed4[_0x20ee('0x1')]||'';this[_0x20ee('0x2')]=_0x50bed4[_0x20ee('0x2')]||'';this[_0x20ee('0x3')]=_0x50bed4[_0x20ee('0x3')]||'';this[_0x20ee('0x4')]=_0x50bed4[_0x20ee('0x4')]||'';this[_0x20ee('0x5')]=_0x50bed4[_0x20ee('0x5')]||{};}module[_0x20ee('0x6')]=ServicenowAccount;
\ No newline at end of file
+var _0xf4a0=['remoteUri','serverUrl','Configurations','name','username','password'];(function(_0x1e9116,_0x508de1){var _0xeed3f8=function(_0x5b79b1){while(--_0x5b79b1){_0x1e9116['push'](_0x1e9116['shift']());}};_0xeed3f8(++_0x508de1);}(_0xf4a0,0x12f));var _0x0f4a=function(_0x2d17fb,_0x5196ea){_0x2d17fb=_0x2d17fb-0x0;var _0x32d345=_0xf4a0[_0x2d17fb];return _0x32d345;};'use strict';function ServicenowAccount(_0x4029ae){this['id']=_0x4029ae['id']||0x0;this['name']=_0x4029ae[_0x0f4a('0x0')]||'';this[_0x0f4a('0x1')]=_0x4029ae['username']||'';this[_0x0f4a('0x2')]=_0x4029ae[_0x0f4a('0x2')]||'';this[_0x0f4a('0x3')]=_0x4029ae['remoteUri']||'';this[_0x0f4a('0x4')]=_0x4029ae[_0x0f4a('0x4')]||'';this[_0x0f4a('0x5')]=_0x4029ae['Configurations']||{};}module['exports']=ServicenowAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f82=['name','username','password','remoteUri','serverUrl','Configurations','exports'];(function(_0x31b638,_0x1feca4){var _0x3bd569=function(_0x55b163){while(--_0x55b163){_0x31b638['push'](_0x31b638['shift']());}};_0x3bd569(++_0x1feca4);}(_0x8f82,0x77));var _0x28f8=function(_0x5aa25d,_0xe97624){_0x5aa25d=_0x5aa25d-0x0;var _0x2e745f=_0x8f82[_0x5aa25d];return _0x2e745f;};'use strict';function SugarcrmAccount(_0x3f561a){this['id']=_0x3f561a['id']||0x0;this[_0x28f8('0x0')]=_0x3f561a[_0x28f8('0x0')]||'';this[_0x28f8('0x1')]=_0x3f561a[_0x28f8('0x1')]||'';this['password']=_0x3f561a[_0x28f8('0x2')]||'';this[_0x28f8('0x3')]=_0x3f561a[_0x28f8('0x3')]||'';this[_0x28f8('0x4')]=_0x3f561a[_0x28f8('0x4')]||'';this[_0x28f8('0x5')]=_0x3f561a[_0x28f8('0x5')]||{};}module[_0x28f8('0x6')]=SugarcrmAccount;
\ No newline at end of file
+var _0x93a0=['exports','name','username','password','remoteUri','serverUrl','Configurations'];(function(_0x43887c,_0x1733d9){var _0x627512=function(_0x3a390f){while(--_0x3a390f){_0x43887c['push'](_0x43887c['shift']());}};_0x627512(++_0x1733d9);}(_0x93a0,0x1f2));var _0x093a=function(_0x5c1120,_0x405cb4){_0x5c1120=_0x5c1120-0x0;var _0x1e9039=_0x93a0[_0x5c1120];return _0x1e9039;};'use strict';function SugarcrmAccount(_0x4a1b81){this['id']=_0x4a1b81['id']||0x0;this[_0x093a('0x0')]=_0x4a1b81['name']||'';this['username']=_0x4a1b81[_0x093a('0x1')]||'';this['password']=_0x4a1b81[_0x093a('0x2')]||'';this['remoteUri']=_0x4a1b81[_0x093a('0x3')]||'';this['serverUrl']=_0x4a1b81[_0x093a('0x4')]||'';this[_0x093a('0x5')]=_0x4a1b81[_0x093a('0x5')]||{};}module[_0x093a('0x6')]=SugarcrmAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf1b=['status','exports','name','accountcode'];(function(_0xf6caf1,_0x162164){var _0x4329e3=function(_0x552232){while(--_0x552232){_0xf6caf1['push'](_0xf6caf1['shift']());}};_0x4329e3(++_0x162164);}(_0xaf1b,0x182));var _0xbaf1=function(_0x168e22,_0x4396d5){_0x168e22=_0x168e22-0x0;var _0x1af941=_0xaf1b[_0x168e22];return _0x1af941;};'use strict';function Telephone(_0xba08ec){this['id']=_0xba08ec['id']||0x0;this['name']=_0xba08ec[_0xbaf1('0x0')]||'';this[_0xbaf1('0x1')]=_0xba08ec[_0xbaf1('0x1')]||'';this['state']='unknown';this['stateTime']=0x0;this[_0xbaf1('0x2')]='unknown';this['address']='';}module[_0xbaf1('0x3')]=Telephone;
\ No newline at end of file
+var _0x1b08=['unknown','stateTime','status','address','exports','name','accountcode','state'];(function(_0xefb4e,_0xe56689){var _0x36c78c=function(_0x158fe3){while(--_0x158fe3){_0xefb4e['push'](_0xefb4e['shift']());}};_0x36c78c(++_0xe56689);}(_0x1b08,0x1c5));var _0x81b0=function(_0x271e26,_0xeaa798){_0x271e26=_0x271e26-0x0;var _0x4c3771=_0x1b08[_0x271e26];return _0x4c3771;};'use strict';function Telephone(_0x1eed49){this['id']=_0x1eed49['id']||0x0;this[_0x81b0('0x0')]=_0x1eed49['name']||'';this[_0x81b0('0x1')]=_0x1eed49[_0x81b0('0x1')]||'';this[_0x81b0('0x2')]=_0x81b0('0x3');this[_0x81b0('0x4')]=0x0;this[_0x81b0('0x5')]='unknown';this[_0x81b0('0x6')]='';}module[_0x81b0('0x7')]=Telephone;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['name','html'];(function(_0x473a34,_0x2890b2){var _0xb47d71=function(_0x14373e){while(--_0x14373e){_0x473a34['push'](_0x473a34['shift']());}};_0xb47d71(++_0x2890b2);}(_0xb10b,0x12a));var _0xbb10=function(_0x20e5c3,_0x41470c){_0x20e5c3=_0x20e5c3-0x0;var _0x401520=_0xb10b[_0x20e5c3];return _0x401520;};'use strict';function template(_0x13ce8d){this['id']=_0x13ce8d['id']||0x0;this['name']=_0x13ce8d[_0xbb10('0x0')]||'';this[_0xbb10('0x1')]=_0x13ce8d[_0xbb10('0x1')]||'';}module['exports']=template;
\ No newline at end of file
+var _0xb10b=['name','html'];(function(_0x214e28,_0x323724){var _0x78ada9=function(_0xc7daf6){while(--_0xc7daf6){_0x214e28['push'](_0x214e28['shift']());}};_0x78ada9(++_0x323724);}(_0xb10b,0x12a));var _0xbb10=function(_0x1a3243,_0x201872){_0x1a3243=_0x1a3243-0x0;var _0x33f2ca=_0xb10b[_0x1a3243];return _0x33f2ca;};'use strict';function template(_0x13ce8d){this['id']=_0x13ce8d['id']||0x0;this['name']=_0x13ce8d[_0xbb10('0x0')]||'';this[_0xbb10('0x1')]=_0x13ce8d[_0xbb10('0x1')]||'';}module['exports']=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(_0x3c22e0,_0x1dc6ea){var _0x215811=function(_0x1b453c){while(--_0x1b453c){_0x3c22e0['push'](_0x3c22e0['shift']());}};_0x215811(++_0x1dc6ea);}(_0x5f66,0x1a0));var _0x65f6=function(_0x31e29a,_0x349c9b){_0x31e29a=_0x31e29a-0x0;var _0x32d892=_0x5f66[_0x31e29a];return _0x32d892;};'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 _0xda3f=['Actions','name','status','AllConditions','AnyConditions'];(function(_0x5ad56a,_0x3355e6){var _0x32a28d=function(_0x883884){while(--_0x883884){_0x5ad56a['push'](_0x5ad56a['shift']());}};_0x32a28d(++_0x3355e6);}(_0xda3f,0xec));var _0xfda3=function(_0x5798fc,_0x5366ab){_0x5798fc=_0x5798fc-0x0;var _0x49168f=_0xda3f[_0x5798fc];return _0x49168f;};'use strict';function Trigger(_0x33f0ce){this['id']=_0x33f0ce['id']||0x0;this[_0xfda3('0x0')]=_0x33f0ce[_0xfda3('0x0')]||'';this['channel']=_0x33f0ce['channel']||'voice';this[_0xfda3('0x1')]=_0x33f0ce['status']||![];this[_0xfda3('0x2')]=_0x33f0ce[_0xfda3('0x2')]||[];this['AnyConditions']=_0x33f0ce[_0xfda3('0x3')]||[];this[_0xfda3('0x4')]=_0x33f0ce['Actions']||[];}module['exports']=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5335=['port','domain','domainport','refresh','stateRegistry','address','defaultuser','exports','active','name','state','unknown','status','registry','indexOf','split'];(function(_0x25c90b,_0x2b0d32){var _0x47d319=function(_0x184f03){while(--_0x184f03){_0x25c90b['push'](_0x25c90b['shift']());}};_0x47d319(++_0x2b0d32);}(_0x5335,0x138));var _0x5533=function(_0x7f6fed,_0x2ecb10){_0x7f6fed=_0x7f6fed-0x0;var _0x3e0cbe=_0x5335[_0x7f6fed];return _0x3e0cbe;};'use strict';function Trunk(_0x4596c9){this['id']=_0x4596c9['id']||0x0;this[_0x5533('0x0')]=_0x4596c9[_0x5533('0x0')]||![];this[_0x5533('0x1')]=_0x4596c9[_0x5533('0x1')]||'';this[_0x5533('0x2')]=_0x5533('0x3');this['stateTime']=0x0;this[_0x5533('0x4')]=_0x5533('0x3');this[_0x5533('0x5')]=_0x4596c9[_0x5533('0x5')]&&_0x4596c9[_0x5533('0x5')][_0x5533('0x6')](':')?_0x4596c9[_0x5533('0x5')][_0x5533('0x7')](':')[0x0]:'';this['host']='';this[_0x5533('0x8')]='';this[_0x5533('0x9')]='';this[_0x5533('0xa')]='';this[_0x5533('0xb')]='';this[_0x5533('0xc')]=_0x5533('0x3');this['registrationtime']='';this[_0x5533('0xd')]='';this[_0x5533('0xe')]=_0x4596c9['defaultuser']||'';}module[_0x5533('0xf')]=Trunk;
\ No newline at end of file
+var _0xcc64=['domainport','refresh','stateRegistry','registrationtime','address','defaultuser','active','name','state','unknown','stateTime','status','registry','indexOf','split','host','port','domain'];(function(_0x125625,_0x33a537){var _0x979a5e=function(_0x463339){while(--_0x463339){_0x125625['push'](_0x125625['shift']());}};_0x979a5e(++_0x33a537);}(_0xcc64,0x126));var _0x4cc6=function(_0x20d94c,_0x4c5a5a){_0x20d94c=_0x20d94c-0x0;var _0x5ebf3f=_0xcc64[_0x20d94c];return _0x5ebf3f;};'use strict';function Trunk(_0x5854a7){this['id']=_0x5854a7['id']||0x0;this[_0x4cc6('0x0')]=_0x5854a7[_0x4cc6('0x0')]||![];this[_0x4cc6('0x1')]=_0x5854a7[_0x4cc6('0x1')]||'';this[_0x4cc6('0x2')]=_0x4cc6('0x3');this[_0x4cc6('0x4')]=0x0;this[_0x4cc6('0x5')]=_0x4cc6('0x3');this['registry']=_0x5854a7[_0x4cc6('0x6')]&&_0x5854a7[_0x4cc6('0x6')][_0x4cc6('0x7')](':')?_0x5854a7[_0x4cc6('0x6')][_0x4cc6('0x8')](':')[0x0]:'';this[_0x4cc6('0x9')]='';this[_0x4cc6('0xa')]='';this[_0x4cc6('0xb')]='';this[_0x4cc6('0xc')]='';this[_0x4cc6('0xd')]='';this[_0x4cc6('0xe')]=_0x4cc6('0x3');this[_0x4cc6('0xf')]='';this[_0x4cc6('0x10')]='';this['defaultuser']=_0x5854a7[_0x4cc6('0x11')]||'';}module['exports']=Trunk;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa02f=['none','mandatoryDisposition','exports','exten','recordingFormat'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa02f,0x148));var _0xfa02=function(_0x42781f,_0x32030d){_0x42781f=_0x42781f-0x0;var _0x12e66c=_0xa02f[_0x42781f];return _0x12e66c;};'use strict';function voiceExtension(_0x4f8847){this['id']=_0x4f8847['id']||0x0;this[_0xfa02('0x0')]=_0x4f8847['exten']||'';this[_0xfa02('0x1')]=_0x4f8847['recordingFormat']||_0xfa02('0x2');this[_0xfa02('0x3')]=_0x4f8847[_0xfa02('0x3')]||![];}module[_0xfa02('0x4')]=voiceExtension;
\ No newline at end of file
+var _0x662a=['recordingFormat','none','mandatoryDisposition','exten'];(function(_0x1c030b,_0x57236c){var _0x47bb85=function(_0x350a7e){while(--_0x350a7e){_0x1c030b['push'](_0x1c030b['shift']());}};_0x47bb85(++_0x57236c);}(_0x662a,0x1ef));var _0xa662=function(_0x545827,_0x51baa6){_0x545827=_0x545827-0x0;var _0x42f69c=_0x662a[_0x545827];return _0x42f69c;};'use strict';function voiceExtension(_0x2e289a){this['id']=_0x2e289a['id']||0x0;this[_0xa662('0x0')]=_0x2e289a['exten']||'';this['recordingFormat']=_0x2e289a[_0xa662('0x1')]||_0xa662('0x2');this[_0xa662('0x3')]=_0x2e289a[_0xa662('0x3')]||![];}module['exports']=voiceExtension;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0801=['outboundReCallsDay','outboundAbandonedDay','startProgressive','handlePredictive','predictiveIntervalTotalCalls','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalPauses','dialPredictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','dialRecallMeTimeout','dialRecallInQueue','dialPreviewAutoRecallMe','dialQueueProject2','dialAgiAfterHangupClient','dialAgiAfterHangupAgent','mandatoryDisposition','mandatoryDispositionPause','exports','unknown','not_inuse','inuse','busy','ringing','ringinuse','onhold','wav','wav49','gsm','name','monitor_format','type','inbound','waiting','talking','answered','sumBillable','loggedIn','available','acw','acwTimeout','autopause','sendMessageOneNotActive','originated','temp','dialTimezone','dialGlobalInterval','dialActive','dialMethod','progressive','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','anonymous','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','tTxX','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','Trunk','TrunkBackup','dialPrefix','Interval','dialOrderByScheduledAt','DESC','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','queueStatusComplete','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','outboundRejectCallsDay','pTalking','timeout','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundBlacklistCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundDropCallsDayACS'];(function(_0x25c46f,_0x110094){var _0x3c9c2a=function(_0x35fa6f){while(--_0x35fa6f){_0x25c46f['push'](_0x25c46f['shift']());}};_0x3c9c2a(++_0x110094);}(_0x0801,0x17c));var _0x1080=function(_0x209941,_0x5c9988){_0x209941=_0x209941-0x0;var _0x1e8729=_0x0801[_0x209941];return _0x1e8729;};'use strict';var statusDesc=[_0x1080('0x0'),_0x1080('0x1'),_0x1080('0x2'),_0x1080('0x3'),'invalid','unavailable',_0x1080('0x4'),_0x1080('0x5'),_0x1080('0x6')];var monitorFormat={'wav':_0x1080('0x7'),'wav49':_0x1080('0x8'),'gsm':_0x1080('0x9')};var strategy={'rrmemory':'rrmemory','roundrobin':'roundrobin'};function VoiceQueue(_0x15bdb9){this['id']=_0x15bdb9['id']||0x0;this[_0x1080('0xa')]=_0x15bdb9[_0x1080('0xa')]||'';this[_0x1080('0xb')]=_0x15bdb9[_0x1080('0xb')]||'';this['type']=_0x15bdb9[_0x1080('0xc')]||_0x1080('0xd');this[_0x1080('0xe')]=0x0;this[_0x1080('0xf')]=0x0;this['total']=0x0;this[_0x1080('0x10')]=0x0;this['sumDuration']=0x0;this['sumHoldTime']=0x0;this[_0x1080('0x11')]=0x0;this['unmanaged']=0x0;this['abandoned']=0x0;this[_0x1080('0x12')]=0x0;this[_0x1080('0x13')]=0x0;this[_0x1080('0x14')]=_0x15bdb9[_0x1080('0x14')]||![];this[_0x1080('0x15')]=_0x15bdb9[_0x1080('0x15')]||0xa;this[_0x1080('0x16')]=_0x15bdb9['autopause']||'no';this[_0x1080('0x17')]=!![];this['message']='';this[_0x1080('0x18')]=0x0;this[_0x1080('0x19')]=0x0;this[_0x1080('0x1a')]=_0x15bdb9['dialTimezone']||null;this[_0x1080('0x1b')]=_0x15bdb9['dialGlobalInterval']?_0x15bdb9[_0x1080('0x1b')]:null;this['dialActive']=_0x15bdb9[_0x1080('0x1c')];this[_0x1080('0x1d')]=_0x15bdb9[_0x1080('0x1d')]||_0x1080('0x1e');this[_0x1080('0x1f')]=_0x15bdb9[_0x1080('0x1f')]||0x0;this[_0x1080('0x20')]=_0x15bdb9[_0x1080('0x20')]||0x0;this[_0x1080('0x21')]=_0x15bdb9['dialPowerLevel']||0x1;this[_0x1080('0x22')]=_0x15bdb9[_0x1080('0x22')]||'dropRate';this[_0x1080('0x23')]=_0x15bdb9[_0x1080('0x23')]||0.03;this['dialPredictiveInterval']=_0x15bdb9[_0x1080('0x24')]||0x258;this[_0x1080('0x25')]=_0x15bdb9[_0x1080('0x25')]||_0x1080('0x26');this[_0x1080('0x27')]=_0x15bdb9['dialOriginateCallerIdNumber']||_0x1080('0x26');this[_0x1080('0x28')]=_0x15bdb9['dialOriginateTimeout']||0x1e;this[_0x1080('0x29')]=_0x15bdb9[_0x1080('0x29')]||_0x1080('0x2a');this[_0x1080('0x2b')]=_0x15bdb9[_0x1080('0x2b')]||0x3;this[_0x1080('0x2c')]=_0x15bdb9['dialQueueProject']||undefined;this[_0x1080('0x2d')]=_0x15bdb9[_0x1080('0x2d')]||0x3;this['dialCongestionRetryFrequency']=_0x15bdb9['dialCongestionRetryFrequency']||0x96;this[_0x1080('0x2e')]=_0x15bdb9[_0x1080('0x2e')]||0x3;this[_0x1080('0x2f')]=_0x15bdb9[_0x1080('0x2f')]||0x96;this[_0x1080('0x30')]=_0x15bdb9[_0x1080('0x30')]||0x3;this[_0x1080('0x31')]=_0x15bdb9['dialNoAnswerRetryFrequency']||0x96;this[_0x1080('0x32')]=_0x15bdb9[_0x1080('0x32')]||0x3;this[_0x1080('0x33')]=_0x15bdb9[_0x1080('0x33')]||0x96;this[_0x1080('0x34')]=_0x15bdb9[_0x1080('0x34')]||0x3;this['dialDropRetryFrequency']=_0x15bdb9[_0x1080('0x35')]||0x96;this[_0x1080('0x36')]=_0x15bdb9[_0x1080('0x36')]||0x3;this[_0x1080('0x37')]=_0x15bdb9[_0x1080('0x37')]||0x96;this[_0x1080('0x38')]=_0x15bdb9[_0x1080('0x38')]||0x3;this[_0x1080('0x39')]=_0x15bdb9[_0x1080('0x39')]||0x96;this[_0x1080('0x3a')]=_0x15bdb9[_0x1080('0x3a')]||0x3;this[_0x1080('0x3b')]=_0x15bdb9[_0x1080('0x3b')]||0x96;this['dialGlobalMaxRetry']=_0x15bdb9['dialGlobalMaxRetry']||0x4;this[_0x1080('0x3c')]=_0x15bdb9[_0x1080('0x3c')]?_0x15bdb9[_0x1080('0x3c')]:undefined;this[_0x1080('0x3d')]=_0x15bdb9[_0x1080('0x3d')]?_0x15bdb9[_0x1080('0x3d')]:undefined;this[_0x1080('0x3e')]=_0x15bdb9[_0x1080('0x3e')]||undefined;this['Interval']=_0x15bdb9[_0x1080('0x3f')]?_0x15bdb9[_0x1080('0x3f')]:undefined;this['dialOrderByScheduledAt']=_0x15bdb9[_0x1080('0x40')]||_0x1080('0x41');this[_0x1080('0x42')]=_0x15bdb9[_0x1080('0x42')]||undefined;this[_0x1080('0x43')]=_0x15bdb9[_0x1080('0x43')]||undefined;this[_0x1080('0x44')]=strategy[_0x15bdb9['strategy']]||'rrmemory';this[_0x1080('0x45')]=!![];this[_0x1080('0x46')]=_0x15bdb9[_0x1080('0x46')]||![];this[_0x1080('0x47')]=_0x15bdb9[_0x1080('0x47')];this[_0x1080('0x48')]=_0x15bdb9[_0x1080('0x48')];this[_0x1080('0x49')]=_0x15bdb9[_0x1080('0x49')];this[_0x1080('0x4a')]=_0x15bdb9[_0x1080('0x4a')];this[_0x1080('0x4b')]=_0x15bdb9[_0x1080('0x4b')];this[_0x1080('0x4c')]=_0x15bdb9[_0x1080('0x4c')];this[_0x1080('0x4d')]=_0x15bdb9[_0x1080('0x4d')];this[_0x1080('0x4e')]=_0x15bdb9[_0x1080('0x4e')];this[_0x1080('0x4f')]=_0x15bdb9[_0x1080('0x4f')];this[_0x1080('0x50')]=0x0;this[_0x1080('0x51')]=0x0;this[_0x1080('0x52')]=_0x15bdb9[_0x1080('0x52')];this['outboundAnswerCallsDay']=0x0;this['outboundAnswerAgiCallsDay']=0x0;this[_0x1080('0x53')]=0x0;this[_0x1080('0x54')]=0x0;this[_0x1080('0x55')]=0x0;this[_0x1080('0x56')]=0x0;this[_0x1080('0x57')]=0x0;this[_0x1080('0x58')]=0x0;this['outboundOriginateFailureCallsDay']=0x0;this[_0x1080('0x59')]=0x0;this[_0x1080('0x5a')]=0x0;this[_0x1080('0x5b')]=0x0;this[_0x1080('0x5c')]=0x0;this[_0x1080('0x5d')]=0x0;this[_0x1080('0x5e')]=undefined;this['startPredictive']=undefined;this[_0x1080('0x5f')]=undefined;this['predictiveIntervalMultiplicativeFactor']=1.05;this[_0x1080('0x60')]=0x0;this['predictiveIntervalAnsweredCalls']=0x0;this[_0x1080('0x61')]=0x0;this['predictiveIntervalDroppedCallsTimeout']=0x0;this[_0x1080('0x62')]=0x0;this[_0x1080('0x63')]=0x0;this[_0x1080('0x64')]=0x0;this['predictiveIntervalAvailable']=0x0;this['predictiveIntervalMaxThreshold']=_0x15bdb9[_0x1080('0x65')]||0x14;this[_0x1080('0x66')]=_0x15bdb9[_0x1080('0x65')]||0xa;this[_0x1080('0x67')]=0x0;this[_0x1080('0x68')]=0x0;this[_0x1080('0x69')]=0x1;this[_0x1080('0x6a')]=0x0;this[_0x1080('0x6b')]=0x0;this[_0x1080('0x6c')]=0x0;this['erlangBusyFactor']=0x0;this[_0x1080('0x6d')]=_0x15bdb9[_0x1080('0x6d')]||0x1e;this[_0x1080('0x6e')]=_0x15bdb9[_0x1080('0x6e')]||![];this[_0x1080('0x6f')]=!!_0x15bdb9[_0x1080('0x6f')]||![];this[_0x1080('0x70')]=_0x15bdb9['dialQueueProject2']||undefined;this[_0x1080('0x71')]=_0x15bdb9[_0x1080('0x71')]||![];this[_0x1080('0x72')]=_0x15bdb9[_0x1080('0x72')]||![];this[_0x1080('0xb')]=monitorFormat[_0x15bdb9[_0x1080('0xb')]]?monitorFormat[_0x15bdb9['monitor_format']]:undefined;this[_0x1080('0x73')]=_0x15bdb9[_0x1080('0x73')]||![];this[_0x1080('0x74')]=_0x15bdb9[_0x1080('0x74')]?_0x15bdb9[_0x1080('0x74')]:undefined;}module[_0x1080('0x75')]=VoiceQueue;
\ No newline at end of file
+var _0x52ad=['dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','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','dialAgentRejectRetryFrequency','dialGlobalMaxRetry','Trunk','TrunkBackup','dialPrefix','Interval','dialOrderByScheduledAt','DESC','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','rrmemory','queueStatusComplete','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','outboundRejectCallsDay','pTalking','timeout','outboundAnswerCallsDay','outboundAnswerAgiCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundBlacklistCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayACS','outboundReCallsDay','outboundAbandonedDay','startProgressive','startPredictive','predictiveIntervalMultiplicativeFactor','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgTalktime','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalMaxThreshold','dialPredictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','predictiveIntervalErlangCalls','predictiveIntervalHitRate','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialRecallMeTimeout','dialRecallInQueue','dialQueueProject2','dialAgiAfterHangupClient','dialAgiAfterHangupAgent','mandatoryDisposition','mandatoryDispositionPause','exports','inuse','invalid','unavailable','ringing','onhold','wav49','gsm','roundrobin','name','monitor_format','type','inbound','waiting','talking','total','answered','sumDuration','sumHoldTime','sumBillable','loggedIn','available','acw','acwTimeout','autopause','sendMessageOneNotActive','message','originated','dialTimezone','dialGlobalInterval','dialActive','dialMethod','dialLimitChannel'];(function(_0x44b33b,_0x5df28b){var _0x31731e=function(_0x4d9368){while(--_0x4d9368){_0x44b33b['push'](_0x44b33b['shift']());}};_0x31731e(++_0x5df28b);}(_0x52ad,0xd4));var _0xd52a=function(_0x2a08cb,_0x5ab94d){_0x2a08cb=_0x2a08cb-0x0;var _0x390f36=_0x52ad[_0x2a08cb];return _0x390f36;};'use strict';var statusDesc=['unknown','not_inuse',_0xd52a('0x0'),'busy',_0xd52a('0x1'),_0xd52a('0x2'),_0xd52a('0x3'),'ringinuse',_0xd52a('0x4')];var monitorFormat={'wav':'wav','wav49':_0xd52a('0x5'),'gsm':_0xd52a('0x6')};var strategy={'rrmemory':'rrmemory','roundrobin':_0xd52a('0x7')};function VoiceQueue(_0x2a6aad){this['id']=_0x2a6aad['id']||0x0;this[_0xd52a('0x8')]=_0x2a6aad[_0xd52a('0x8')]||'';this[_0xd52a('0x9')]=_0x2a6aad[_0xd52a('0x9')]||'';this[_0xd52a('0xa')]=_0x2a6aad[_0xd52a('0xa')]||_0xd52a('0xb');this[_0xd52a('0xc')]=0x0;this[_0xd52a('0xd')]=0x0;this[_0xd52a('0xe')]=0x0;this[_0xd52a('0xf')]=0x0;this[_0xd52a('0x10')]=0x0;this[_0xd52a('0x11')]=0x0;this[_0xd52a('0x12')]=0x0;this['unmanaged']=0x0;this['abandoned']=0x0;this[_0xd52a('0x13')]=0x0;this[_0xd52a('0x14')]=0x0;this[_0xd52a('0x15')]=_0x2a6aad['acw']||![];this[_0xd52a('0x16')]=_0x2a6aad['acwTimeout']||0xa;this[_0xd52a('0x17')]=_0x2a6aad[_0xd52a('0x17')]||'no';this[_0xd52a('0x18')]=!![];this[_0xd52a('0x19')]='';this[_0xd52a('0x1a')]=0x0;this['temp']=0x0;this['dialTimezone']=_0x2a6aad[_0xd52a('0x1b')]||null;this[_0xd52a('0x1c')]=_0x2a6aad[_0xd52a('0x1c')]?_0x2a6aad[_0xd52a('0x1c')]:null;this[_0xd52a('0x1d')]=_0x2a6aad[_0xd52a('0x1d')];this['dialMethod']=_0x2a6aad[_0xd52a('0x1e')]||'progressive';this[_0xd52a('0x1f')]=_0x2a6aad['dialLimitChannel']||0x0;this[_0xd52a('0x20')]=_0x2a6aad[_0xd52a('0x20')]||0x0;this[_0xd52a('0x21')]=_0x2a6aad[_0xd52a('0x21')]||0x1;this[_0xd52a('0x22')]=_0x2a6aad['dialPredictiveOptimization']||'dropRate';this[_0xd52a('0x23')]=_0x2a6aad['dialPredictiveOptimizationPercentage']||0.03;this[_0xd52a('0x24')]=_0x2a6aad['dialPredictiveInterval']||0x258;this[_0xd52a('0x25')]=_0x2a6aad['dialOriginateCallerIdName']||_0xd52a('0x26');this[_0xd52a('0x27')]=_0x2a6aad[_0xd52a('0x27')]||'anonymous';this[_0xd52a('0x28')]=_0x2a6aad[_0xd52a('0x28')]||0x1e;this['dialQueueOptions']=_0x2a6aad[_0xd52a('0x29')]||_0xd52a('0x2a');this[_0xd52a('0x2b')]=_0x2a6aad[_0xd52a('0x2b')]||0x3;this[_0xd52a('0x2c')]=_0x2a6aad[_0xd52a('0x2c')]||undefined;this[_0xd52a('0x2d')]=_0x2a6aad[_0xd52a('0x2d')]||0x3;this[_0xd52a('0x2e')]=_0x2a6aad[_0xd52a('0x2e')]||0x96;this['dialBusyMaxRetry']=_0x2a6aad[_0xd52a('0x2f')]||0x3;this[_0xd52a('0x30')]=_0x2a6aad[_0xd52a('0x30')]||0x96;this[_0xd52a('0x31')]=_0x2a6aad[_0xd52a('0x31')]||0x3;this[_0xd52a('0x32')]=_0x2a6aad[_0xd52a('0x32')]||0x96;this[_0xd52a('0x33')]=_0x2a6aad[_0xd52a('0x33')]||0x3;this[_0xd52a('0x34')]=_0x2a6aad['dialNoSuchNumberRetryFrequency']||0x96;this[_0xd52a('0x35')]=_0x2a6aad['dialDropMaxRetry']||0x3;this[_0xd52a('0x36')]=_0x2a6aad[_0xd52a('0x36')]||0x96;this[_0xd52a('0x37')]=_0x2a6aad[_0xd52a('0x37')]||0x3;this['dialAbandonedRetryFrequency']=_0x2a6aad[_0xd52a('0x38')]||0x96;this[_0xd52a('0x39')]=_0x2a6aad[_0xd52a('0x39')]||0x3;this[_0xd52a('0x3a')]=_0x2a6aad[_0xd52a('0x3a')]||0x96;this[_0xd52a('0x3b')]=_0x2a6aad[_0xd52a('0x3b')]||0x3;this[_0xd52a('0x3c')]=_0x2a6aad[_0xd52a('0x3c')]||0x96;this['dialGlobalMaxRetry']=_0x2a6aad[_0xd52a('0x3d')]||0x4;this['Trunk']=_0x2a6aad[_0xd52a('0x3e')]?_0x2a6aad[_0xd52a('0x3e')]:undefined;this[_0xd52a('0x3f')]=_0x2a6aad['TrunkBackup']?_0x2a6aad[_0xd52a('0x3f')]:undefined;this[_0xd52a('0x40')]=_0x2a6aad[_0xd52a('0x40')]||undefined;this['Interval']=_0x2a6aad[_0xd52a('0x41')]?_0x2a6aad[_0xd52a('0x41')]:undefined;this[_0xd52a('0x42')]=_0x2a6aad['dialOrderByScheduledAt']||_0xd52a('0x43');this[_0xd52a('0x44')]=_0x2a6aad[_0xd52a('0x44')]||undefined;this[_0xd52a('0x45')]=_0x2a6aad[_0xd52a('0x45')]||undefined;this[_0xd52a('0x46')]=strategy[_0x2a6aad[_0xd52a('0x46')]]||_0xd52a('0x47');this[_0xd52a('0x48')]=!![];this[_0xd52a('0x49')]=_0x2a6aad[_0xd52a('0x49')]||![];this[_0xd52a('0x4a')]=_0x2a6aad[_0xd52a('0x4a')];this[_0xd52a('0x4b')]=_0x2a6aad['dialAMDGreeting'];this[_0xd52a('0x4c')]=_0x2a6aad[_0xd52a('0x4c')];this['dialAMDTotalAnalysisTime']=_0x2a6aad['dialAMDTotalAnalysisTime'];this['dialAMDMinWordLength']=_0x2a6aad[_0xd52a('0x4d')];this[_0xd52a('0x4e')]=_0x2a6aad[_0xd52a('0x4e')];this[_0xd52a('0x4f')]=_0x2a6aad[_0xd52a('0x4f')];this['dialAMDSilenceThreshold']=_0x2a6aad[_0xd52a('0x50')];this[_0xd52a('0x51')]=_0x2a6aad[_0xd52a('0x51')];this[_0xd52a('0x52')]=0x0;this[_0xd52a('0x53')]=0x0;this[_0xd52a('0x54')]=_0x2a6aad[_0xd52a('0x54')];this[_0xd52a('0x55')]=0x0;this[_0xd52a('0x56')]=0x0;this['outboundNoAnswerCallsDay']=0x0;this[_0xd52a('0x57')]=0x0;this[_0xd52a('0x58')]=0x0;this[_0xd52a('0x59')]=0x0;this[_0xd52a('0x5a')]=0x0;this[_0xd52a('0x5b')]=0x0;this['outboundOriginateFailureCallsDay']=0x0;this['outboundDropCallsDayCallersExit']=0x0;this[_0xd52a('0x5c')]=0x0;this[_0xd52a('0x5d')]=0x0;this[_0xd52a('0x5e')]=0x0;this[_0xd52a('0x5f')]=0x0;this[_0xd52a('0x60')]=undefined;this[_0xd52a('0x61')]=undefined;this['handlePredictive']=undefined;this[_0xd52a('0x62')]=1.05;this[_0xd52a('0x63')]=0x0;this[_0xd52a('0x64')]=0x0;this[_0xd52a('0x65')]=0x0;this['predictiveIntervalDroppedCallsTimeout']=0x0;this['predictiveIntervalAvgHoldtime']=0x0;this[_0xd52a('0x66')]=0x0;this[_0xd52a('0x67')]=0x0;this[_0xd52a('0x68')]=0x0;this[_0xd52a('0x69')]=_0x2a6aad[_0xd52a('0x6a')]||0x14;this[_0xd52a('0x6b')]=_0x2a6aad[_0xd52a('0x6a')]||0xa;this[_0xd52a('0x6c')]=0x0;this['predictiveIntervalErlangCallsDroppedCalls']=0x0;this[_0xd52a('0x6d')]=0x1;this[_0xd52a('0x6e')]=0x0;this[_0xd52a('0x6f')]=0x0;this[_0xd52a('0x70')]=0x0;this[_0xd52a('0x71')]=0x0;this[_0xd52a('0x72')]=_0x2a6aad[_0xd52a('0x72')]||0x1e;this[_0xd52a('0x73')]=_0x2a6aad[_0xd52a('0x73')]||![];this[_0xd52a('0x74')]=_0x2a6aad[_0xd52a('0x74')]||undefined;this[_0xd52a('0x75')]=_0x2a6aad['dialAgiAfterHangupClient']||![];this[_0xd52a('0x76')]=_0x2a6aad[_0xd52a('0x76')]||![];this[_0xd52a('0x9')]=monitorFormat[_0x2a6aad[_0xd52a('0x9')]]?monitorFormat[_0x2a6aad[_0xd52a('0x9')]]:undefined;this['mandatoryDisposition']=_0x2a6aad[_0xd52a('0x77')]||![];this[_0xd52a('0x78')]=_0x2a6aad['mandatoryDispositionPause']?_0x2a6aad[_0xd52a('0x78')]:undefined;}module[_0xd52a('0x79')]=VoiceQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb6f9=['exports','name','username','remoteUri','serverUrl','Configurations'];(function(_0x5590c6,_0x56b795){var _0x207c79=function(_0x41be40){while(--_0x41be40){_0x5590c6['push'](_0x5590c6['shift']());}};_0x207c79(++_0x56b795);}(_0xb6f9,0x145));var _0x9b6f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb6f9[_0x3dd15e];return _0x231fd0;};'use strict';function VtigerAccount(_0x46c002){this['id']=_0x46c002['id']||0x0;this[_0x9b6f('0x0')]=_0x46c002[_0x9b6f('0x0')]||'';this[_0x9b6f('0x1')]=_0x46c002[_0x9b6f('0x1')]||'';this['accessKey']=_0x46c002['accessKey']||'';this['remoteUri']=_0x46c002[_0x9b6f('0x2')]||'';this[_0x9b6f('0x3')]=_0x46c002[_0x9b6f('0x3')]||'';this[_0x9b6f('0x4')]=_0x46c002[_0x9b6f('0x4')]||{};}module[_0x9b6f('0x5')]=VtigerAccount;
\ No newline at end of file
+var _0x118e=['serverUrl','Configurations','name','username','accessKey','remoteUri'];(function(_0x2e0afe,_0x47850d){var _0x3c4006=function(_0x3989c9){while(--_0x3989c9){_0x2e0afe['push'](_0x2e0afe['shift']());}};_0x3c4006(++_0x47850d);}(_0x118e,0x74));var _0xe118=function(_0x54cd98,_0x3029e6){_0x54cd98=_0x54cd98-0x0;var _0x4abd09=_0x118e[_0x54cd98];return _0x4abd09;};'use strict';function VtigerAccount(_0x2c02c4){this['id']=_0x2c02c4['id']||0x0;this[_0xe118('0x0')]=_0x2c02c4['name']||'';this[_0xe118('0x1')]=_0x2c02c4[_0xe118('0x1')]||'';this[_0xe118('0x2')]=_0x2c02c4['accessKey']||'';this[_0xe118('0x3')]=_0x2c02c4['remoteUri']||'';this[_0xe118('0x4')]=_0x2c02c4[_0xe118('0x4')]||'';this['Configurations']=_0x2c02c4[_0xe118('0x5')]||{};}module['exports']=VtigerAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x917c=['token','remoteUri','authType','type','integrationTab','serverUrl','Configurations','exports','name','username','password'];(function(_0x3665b9,_0x3b5d4f){var _0x524099=function(_0x876977){while(--_0x876977){_0x3665b9['push'](_0x3665b9['shift']());}};_0x524099(++_0x3b5d4f);}(_0x917c,0x1cb));var _0xc917=function(_0x454f49,_0x23350e){_0x454f49=_0x454f49-0x0;var _0x468ef4=_0x917c[_0x454f49];return _0x468ef4;};'use strict';function ZendeskAccount(_0x4b33c9){this['id']=_0x4b33c9['id']||0x0;this['name']=_0x4b33c9[_0xc917('0x0')]||'';this[_0xc917('0x1')]=_0x4b33c9[_0xc917('0x1')]||'';this['password']=_0x4b33c9[_0xc917('0x2')]||'';this[_0xc917('0x3')]=_0x4b33c9[_0xc917('0x3')]||'';this[_0xc917('0x4')]=_0x4b33c9[_0xc917('0x4')]||'';this[_0xc917('0x5')]=_0x4b33c9['authType']||'';this[_0xc917('0x6')]=_0x4b33c9[_0xc917('0x6')]||_0xc917('0x7');this[_0xc917('0x8')]=_0x4b33c9[_0xc917('0x8')]||'';this[_0xc917('0x9')]=_0x4b33c9['Configurations']||{};}module[_0xc917('0xa')]=ZendeskAccount;
\ No newline at end of file
+var _0xc693=['Configurations','exports','name','username','password','token','authType','type','integrationTab','serverUrl'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xc693,0x8e));var _0x3c69=function(_0x23c418,_0x33da88){_0x23c418=_0x23c418-0x0;var _0x12b7bb=_0xc693[_0x23c418];return _0x12b7bb;};'use strict';function ZendeskAccount(_0x43adc9){this['id']=_0x43adc9['id']||0x0;this[_0x3c69('0x0')]=_0x43adc9[_0x3c69('0x0')]||'';this['username']=_0x43adc9[_0x3c69('0x1')]||'';this[_0x3c69('0x2')]=_0x43adc9[_0x3c69('0x2')]||'';this[_0x3c69('0x3')]=_0x43adc9[_0x3c69('0x3')]||'';this['remoteUri']=_0x43adc9['remoteUri']||'';this[_0x3c69('0x4')]=_0x43adc9[_0x3c69('0x4')]||'';this[_0x3c69('0x5')]=_0x43adc9[_0x3c69('0x5')]||_0x3c69('0x6');this[_0x3c69('0x7')]=_0x43adc9[_0x3c69('0x7')]||'';this['Configurations']=_0x43adc9[_0x3c69('0x8')]||{};}module[_0x3c69('0x9')]=ZendeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x30c7=['exports','name','description','host','clientId','clientSecret','code','refreshToken','Configurations'];(function(_0x5d7151,_0x4a36eb){var _0xe8ae91=function(_0x1e064f){while(--_0x1e064f){_0x5d7151['push'](_0x5d7151['shift']());}};_0xe8ae91(++_0x4a36eb);}(_0x30c7,0xeb));var _0x730c=function(_0x15da6e,_0x3bd05e){_0x15da6e=_0x15da6e-0x0;var _0x2dd920=_0x30c7[_0x15da6e];return _0x2dd920;};'use strict';function ZohoAccount(_0x60fa5e){this['id']=_0x60fa5e['id']||0x0;this[_0x730c('0x0')]=_0x60fa5e[_0x730c('0x0')]||'';this[_0x730c('0x1')]=_0x60fa5e[_0x730c('0x1')]||'';this[_0x730c('0x2')]=_0x60fa5e[_0x730c('0x2')]||'';this['zone']=_0x60fa5e['zone']||'';this[_0x730c('0x3')]=_0x60fa5e['clientId']||'';this['clientSecret']=_0x60fa5e[_0x730c('0x4')]||'';this['serverUrl']=_0x60fa5e['serverUrl']||'';this[_0x730c('0x5')]=_0x60fa5e[_0x730c('0x5')]||'';this['refreshToken']=_0x60fa5e[_0x730c('0x6')]||'';this[_0x730c('0x7')]=_0x60fa5e[_0x730c('0x7')]||{};}module[_0x730c('0x8')]=ZohoAccount;
\ No newline at end of file
+var _0xcadc=['host','zone','clientId','clientSecret','serverUrl','code','refreshToken','exports','name','description'];(function(_0x1efd60,_0x2115c4){var _0x5a45dd=function(_0x1cc658){while(--_0x1cc658){_0x1efd60['push'](_0x1efd60['shift']());}};_0x5a45dd(++_0x2115c4);}(_0xcadc,0x1f2));var _0xccad=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0xcadc[_0x4565bf];return _0x5610ba;};'use strict';function ZohoAccount(_0xdf3d50){this['id']=_0xdf3d50['id']||0x0;this[_0xccad('0x0')]=_0xdf3d50[_0xccad('0x0')]||'';this[_0xccad('0x1')]=_0xdf3d50[_0xccad('0x1')]||'';this[_0xccad('0x2')]=_0xdf3d50[_0xccad('0x2')]||'';this[_0xccad('0x3')]=_0xdf3d50[_0xccad('0x3')]||'';this['clientId']=_0xdf3d50[_0xccad('0x4')]||'';this[_0xccad('0x5')]=_0xdf3d50[_0xccad('0x5')]||'';this['serverUrl']=_0xdf3d50[_0xccad('0x6')]||'';this[_0xccad('0x7')]=_0xdf3d50[_0xccad('0x7')]||'';this['refreshToken']=_0xdf3d50[_0xccad('0x8')]||'';this['Configurations']=_0xdf3d50['Configurations']||{};}module[_0xccad('0x9')]=ZohoAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c8c=['ContactId','ListId','UserId','originatecalleridnum','originatecalleridname','prototype','getCaller','\x22%s\x22\x20<%s>','exports','util','lodash','moment','isNil','string','uniqueid','idContact','queue','type','campaigntype','dialAnswer','membername','Agent','name','format','SIP/%s','Contact','firstName','lastName','active','phone','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','callback','callbackuniqueid','callbackat','recallme'];(function(_0x25d6e0,_0x3c7d44){var _0x3c0757=function(_0x4b7dc0){while(--_0x4b7dc0){_0x25d6e0['push'](_0x25d6e0['shift']());}};_0x3c0757(++_0x3c7d44);}(_0x1c8c,0x13d));var _0xc1c8=function(_0x1cc66c,_0x11162c){_0x1cc66c=_0x1cc66c-0x0;var _0x19b537=_0x1c8c[_0x1cc66c];return _0x19b537;};'use strict';var util=require(_0xc1c8('0x0'));var _=require(_0xc1c8('0x1'));var moment=require(_0xc1c8('0x2'));function checkNameSurname(_0x570643,_0x41e55f,_0x36476c){var _0x9e00e4='';if(!_[_0xc1c8('0x3')](_0x41e55f)&&_0xc1c8('0x4')===typeof _0x41e55f){_0x9e00e4+=_0x41e55f;}if(!_[_0xc1c8('0x3')](_0x36476c)&&_0xc1c8('0x4')===typeof _0x36476c){_0x9e00e4+='\x20'+_0x36476c;}if(_0x9e00e4!==''){return _0x9e00e4;}return _0x570643;}function Action(_0x10e3ff,_0x57bc09,_0x161ea9,_0x107f7c,_0x28e47b){this[_0xc1c8('0x5')]=_0x161ea9||undefined;this[_0xc1c8('0x6')]=_0x10e3ff['id'];this[_0xc1c8('0x7')]=_0x57bc09['name'];this[_0xc1c8('0x8')]=_0x57bc09[_0xc1c8('0x8')];this[_0xc1c8('0x9')]=_0xc1c8('0x7');this[_0xc1c8('0xa')]=![];this[_0xc1c8('0xb')]=_[_0xc1c8('0x3')](_0x10e3ff[_0xc1c8('0xc')])?undefined:_0x10e3ff[_0xc1c8('0xc')][_0xc1c8('0xd')];this['channelAgent']=this[_0xc1c8('0xb')]?util[_0xc1c8('0xe')](_0xc1c8('0xf'),this[_0xc1c8('0xb')]):_0x107f7c||undefined;this['calleridname']=checkNameSurname(_0x10e3ff['Contact']['phone'],_0x10e3ff[_0xc1c8('0x10')][_0xc1c8('0x11')],_0x10e3ff[_0xc1c8('0x10')][_0xc1c8('0x12')]);this[_0xc1c8('0x13')]=_0x10e3ff[_0xc1c8('0x13')]||![];this['calleridnum']=_0x10e3ff[_0xc1c8('0x10')][_0xc1c8('0x14')];this[_0xc1c8('0x15')]=_0x10e3ff[_0xc1c8('0x15')];this[_0xc1c8('0x16')]=_0x10e3ff[_0xc1c8('0x16')]||0x0;this['countcongestionretry']=_0x10e3ff[_0xc1c8('0x17')]||0x0;this[_0xc1c8('0x18')]=_0x10e3ff['countnoanswerretry']||0x0;this[_0xc1c8('0x19')]=(_0x10e3ff[_0xc1c8('0x16')]||0x0)+(_0x10e3ff[_0xc1c8('0x17')]||0x0)+(_0x10e3ff[_0xc1c8('0x18')]||0x0)+(_0x10e3ff['countnosuchnumberretry']||0x0)+(_0x10e3ff[_0xc1c8('0x1a')]||0x0)+(_0x10e3ff[_0xc1c8('0x1b')]||0x0)+(_0x10e3ff[_0xc1c8('0x1c')]||0x0)+(_0x10e3ff[_0xc1c8('0x1d')]||0x0);this[_0xc1c8('0x1e')]=_0x10e3ff['countnosuchnumberretry']||0x0;this[_0xc1c8('0x1a')]=_0x10e3ff[_0xc1c8('0x1a')]||0x0;this['countabandonedretry']=_0x10e3ff[_0xc1c8('0x1b')]||0x0;this[_0xc1c8('0x1c')]=_0x10e3ff[_0xc1c8('0x1c')]||0x0;this[_0xc1c8('0x1d')]=_0x10e3ff[_0xc1c8('0x1d')]||0x0;this[_0xc1c8('0x1f')]=_0x10e3ff[_0xc1c8('0x1f')];this[_0xc1c8('0x20')]=_0x10e3ff[_0xc1c8('0x20')];this['callbackat']=_0x10e3ff[_0xc1c8('0x21')];this[_0xc1c8('0x22')]=_0x10e3ff[_0xc1c8('0x22')];this['ContactId']=_0x10e3ff[_0xc1c8('0x23')];this[_0xc1c8('0x24')]=_0x10e3ff[_0xc1c8('0x24')];this['UserId']=_[_0xc1c8('0x3')](_0x10e3ff[_0xc1c8('0xc')])?_0x10e3ff[_0xc1c8('0x25')]:_0x10e3ff['Agent']['id'];this['VoiceQueueId']=_0x10e3ff['VoiceQueueId'];this[_0xc1c8('0x26')]='';this[_0xc1c8('0x27')]='';}Action[_0xc1c8('0x28')][_0xc1c8('0x29')]=function(){return util['format'](_0xc1c8('0x2a'),this['calleridname'],this['number']);};module[_0xc1c8('0x2b')]=Action;
\ No newline at end of file
+var _0x7e8f=['countcongestionretry','countnoanswerretry','countglobal','countdropretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','countabandonedretry','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','originatecalleridnum','prototype','getCaller','\x22%s\x22\x20<%s>','number','util','lodash','isNil','uniqueid','queue','type','dialAnswer','membername','Agent','name','channelAgent','format','SIP/%s','calleridname','Contact','phone','lastName','active','calleridnum','scheduledat','countbusyretry'];(function(_0x41cfd4,_0x1ed2cc){var _0x190f48=function(_0x4b5b1a){while(--_0x4b5b1a){_0x41cfd4['push'](_0x41cfd4['shift']());}};_0x190f48(++_0x1ed2cc);}(_0x7e8f,0x69));var _0xf7e8=function(_0x33ff15,_0x2cbb0e){_0x33ff15=_0x33ff15-0x0;var _0x2866ff=_0x7e8f[_0x33ff15];return _0x2866ff;};'use strict';var util=require(_0xf7e8('0x0'));var _=require(_0xf7e8('0x1'));var moment=require('moment');function checkNameSurname(_0x210788,_0x391285,_0x5159e3){var _0x56ad1a='';if(!_['isNil'](_0x391285)&&'string'===typeof _0x391285){_0x56ad1a+=_0x391285;}if(!_[_0xf7e8('0x2')](_0x5159e3)&&'string'===typeof _0x5159e3){_0x56ad1a+='\x20'+_0x5159e3;}if(_0x56ad1a!==''){return _0x56ad1a;}return _0x210788;}function Action(_0x1704e2,_0x2d0505,_0x50bb2e,_0x599b4b,_0x444790){this[_0xf7e8('0x3')]=_0x50bb2e||undefined;this['idContact']=_0x1704e2['id'];this[_0xf7e8('0x4')]=_0x2d0505['name'];this[_0xf7e8('0x5')]=_0x2d0505[_0xf7e8('0x5')];this['campaigntype']=_0xf7e8('0x4');this[_0xf7e8('0x6')]=![];this[_0xf7e8('0x7')]=_['isNil'](_0x1704e2[_0xf7e8('0x8')])?undefined:_0x1704e2[_0xf7e8('0x8')][_0xf7e8('0x9')];this[_0xf7e8('0xa')]=this[_0xf7e8('0x7')]?util[_0xf7e8('0xb')](_0xf7e8('0xc'),this[_0xf7e8('0x7')]):_0x599b4b||undefined;this[_0xf7e8('0xd')]=checkNameSurname(_0x1704e2[_0xf7e8('0xe')][_0xf7e8('0xf')],_0x1704e2['Contact']['firstName'],_0x1704e2[_0xf7e8('0xe')][_0xf7e8('0x10')]);this[_0xf7e8('0x11')]=_0x1704e2[_0xf7e8('0x11')]||![];this[_0xf7e8('0x12')]=_0x1704e2['Contact'][_0xf7e8('0xf')];this[_0xf7e8('0x13')]=_0x1704e2[_0xf7e8('0x13')];this[_0xf7e8('0x14')]=_0x1704e2['countbusyretry']||0x0;this[_0xf7e8('0x15')]=_0x1704e2[_0xf7e8('0x15')]||0x0;this[_0xf7e8('0x16')]=_0x1704e2[_0xf7e8('0x16')]||0x0;this[_0xf7e8('0x17')]=(_0x1704e2[_0xf7e8('0x14')]||0x0)+(_0x1704e2[_0xf7e8('0x15')]||0x0)+(_0x1704e2[_0xf7e8('0x16')]||0x0)+(_0x1704e2['countnosuchnumberretry']||0x0)+(_0x1704e2[_0xf7e8('0x18')]||0x0)+(_0x1704e2['countabandonedretry']||0x0)+(_0x1704e2[_0xf7e8('0x19')]||0x0)+(_0x1704e2[_0xf7e8('0x1a')]||0x0);this[_0xf7e8('0x1b')]=_0x1704e2[_0xf7e8('0x1b')]||0x0;this[_0xf7e8('0x18')]=_0x1704e2['countdropretry']||0x0;this[_0xf7e8('0x1c')]=_0x1704e2['countabandonedretry']||0x0;this[_0xf7e8('0x19')]=_0x1704e2[_0xf7e8('0x19')]||0x0;this[_0xf7e8('0x1a')]=_0x1704e2[_0xf7e8('0x1a')]||0x0;this['callback']=_0x1704e2[_0xf7e8('0x1d')];this[_0xf7e8('0x1e')]=_0x1704e2['callbackuniqueid'];this[_0xf7e8('0x1f')]=_0x1704e2[_0xf7e8('0x1f')];this['recallme']=_0x1704e2[_0xf7e8('0x20')];this[_0xf7e8('0x21')]=_0x1704e2[_0xf7e8('0x21')];this[_0xf7e8('0x22')]=_0x1704e2['ListId'];this['UserId']=_[_0xf7e8('0x2')](_0x1704e2[_0xf7e8('0x8')])?_0x1704e2[_0xf7e8('0x23')]:_0x1704e2['Agent']['id'];this[_0xf7e8('0x24')]=_0x1704e2[_0xf7e8('0x24')];this[_0xf7e8('0x25')]='';this['originatecalleridname']='';}Action[_0xf7e8('0x26')][_0xf7e8('0x27')]=function(){return util[_0xf7e8('0xb')](_0xf7e8('0x28'),this['calleridname'],this[_0xf7e8('0x29')]);};module['exports']=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc3b5=['countmachineretry','cause-txt','dialstatus','amd','[callProgressDetectingCustomer][hangupInAMD]','[callProgressDetectingCustomer][machine]','[callProgressDetectingCustomer][logUnknownGlobal]','updateOriginated','[callProgressDetectingCustomer]','[originated][decrement][callProgressDetectingCustomer]','ANSWER','destlinkedid','callProgressDetectingAgent','isUndefined','object','reason','logAgent','createAgentHistory','[callProgressDetectingAgent][logNoSuch]','Busy','[callProgressDetectingAgent][logBusy]','[callProgressDetectingAgent][logCongestion]','[callProgressDetectingAgent][logAnswerAGI]','[callProgressDetectingAgent]','checkInBlack','Contact','execCall','Queue:\x20','\x20IdHopper:\x20','custom:agentcalled','Calling','catch','[Preview][execCall][failure]','Call\x20failed','logBlacklist','createHistory','[Blacklist][error]','Contact\x20in\x20black\x20List','SIP/%s','unmonitored','execRun','unlock','getContactPreview','recallme','validateContact','checkIsBlackList','Contact.phone','[Preview][checkIsBlackList]','Call\x20unsuccessful','[Preview][getContactPreview]','isEmpty','[Preview][validateContact][Empty\x20Contact]','[Preview][validateContact][Empty\x20Campaign]','Empty\x20Campaign','\x20Trunk\x20is\x20not\x20active','[Preview][validateContact][Trunk\x20not\x20work]','\x20Trunk\x20Backup\x20is\x20not\x20active','Trunk\x20not\x20work','isActive','[Preview][validateContact][Campaign\x20Active]','\x20Not\x20Active','campaign\x20Name:\x20','Is\x20Valid','SIP/%s/%s%s','dialPrefix','trim','dialCutDigit','phone','TrunkBackup','substring','getCallerId','callerid','dialRandomLastDigitCallerIdNumber','getCallerIdRandom','originatecalleridname','originatecalleridnum','extractCalleridNumber','addVariables','starttime','[originated][increment]','OriginateError','[originateFailure][logOriginateFailure]','actionid','lookAgent','logLookAgent','clone','responsetime','unlockContact','idContact','rejected','syncHangup','[syncHangup][talking]','cause','[syncHangup][talking][cause]','statedesc','dialQueueProject','channelstate','transfer','destuniqueid','syncHangupRequest','addVariable','variables','keys','variable','value','error','[syncVarSet][Preview]','inspect','transfertargetlinkedid','transfererlinkedid','exports','bluebird','uuid','moment','md5','ioredis','../../../config/environment','../../../config/logger','preview','actionPreview','../ami','./action','./util/util','redis','defaults','localhost','socket.io-emitter','prototype','tail','finally','sequence','campaignsPreview','trunks','agents','clockClearZombieChannels','originateresponse','syncOriginateResponse','bind','hangup','dialend','syncDialEnd','newexten','syncNewExten','syncVarSet','syncAttendedTransfer','blindtransfer','syncBlindTransfer','loopCampaigns','type','outbound','name','answered','available','loggedIn','pTalking','sumDuration','sumHoldTime','total','unmanaged','abandoned','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','outboundAbandonedCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','message','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','startProgressive','Trunk','active','Interval','stringify','voice:queue:%s','info','[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event','format','voice_queue_channel:remove','sendMessageOneNotActive','NOT_ACTIVE','logger','[CampaignPreview]\x20Campaign\x20Queue:\x20','\x20is\x20not\x20active','IS_DISACTIVED','\x20is\x20disactive','syncCampaigns','hasOwnProperty','booked','clearZombieChannels','dialPreviewAutoRecallMe','recallMe','clearZombieChannel','enqueue','actions','[clearZombieChannels][talking]','Queue','queue','originated:\x20','pTalking:\x20','pick','contactId','UserId','VoiceQueueId','ListId','Action','status','channel','No\x20such\x20channel','[clearZombieChannel]','dialAnswer','decrementTalkink','loggerError','[Dialer][checkChannel][pTalking][Preview]','[Dialer][checkChannel][Preview]','[action]','size','agentReadyId','then','isNil','length','getDiff','scheduledat','dialRecallMeTimeout','Agent','voicePause','run','logger2','[RecallMe]','disableContact','YYYY-MM-DD\x20HH:mm:ss','RecallInQueue','dialRecallInQueue','rescheduleContactInQueue','createBody','createCustomerHistory','[HistoryDialRecallInQueue][historyCatch]','logCustomer','RecallFailedTimeout','[HistoryRecallClose]','createCustomerFinal','setMessage','IsNotLoggedIn','AGENTS_NOT_LOGGED','isTrunkReachable','TRUNK_IS_NOT_REACHABLE','callProgressDetectingCustomer','countnosuchnumberretry','countglobal','totalGlobal','NoSuchNumber','emit','custom:agentnosuchnumber','buildObj','nosuchnumber','[callProgressDetectingCustomer][logNoSuch]','cloneAction','Global','[callProgressDetectingCustomer][logNoSuchGlobal]','dialNoSuchNumberMaxRetry','rescheduleContact','scheduledAt','dialNoSuchNumberRetryFrequency','answertime','[syncHangup][talking][increment]','uniqueid','\x20Queue','custom:agentconnect','connect','acw','custom:agentConnectPreview','buildAcw','complete','outboundAnswerCallsDay','[16]','Answer','[callProgressDetectingCustomer][logAnswer]','[callProgressDetectingCustomer][logAnswerGlobal]','crateCustomerReportQueue','talktime','sumBillable','[syncHangup][talking][decrement]','linkedid','countbusyretry','custom:agentbusy','busy','[callProgressDetectingCustomer][logBusy]','dialGlobalMaxRetry','[callProgressDetectingCustomer][logBusyGlobal]','dialBusyMaxRetry','dialBusyRetryFrequency','unlockAgent','countnoanswerretry','custom:agentnoanswer','noanswer','[callProgressDetectingCustomer][logNoAnswer]','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','activeContact','CONGESTION','outboundCongestionCallsDay','custom:agentcongestion','congestion','[callProgressDetectingCustomer][logCongestion]','[callProgressDetectingCustomer][logCongestionGlobal]','countcongestionretry','dialCongestionMaxRetry','custom:agentreject','agentreject','AgentReject','[callProgressDetectingCustomer][logAgentReject]','countagentrejectretry','dialAgentRejectMaxRetry','countabandonedretry','[callProgressDetectingCustomer][logAbandoned]','countabandonedetry','dialAbandonedMaxRety','dialAbandonedRetryFrequency'];(function(_0x504a30,_0x237404){var _0x217c40=function(_0x101cd4){while(--_0x101cd4){_0x504a30['push'](_0x504a30['shift']());}};_0x217c40(++_0x237404);}(_0xc3b5,0x6f));var _0x5c3b=function(_0x1d29fd,_0xcb3a56){_0x1d29fd=_0x1d29fd-0x0;var _0x33fe25=_0xc3b5[_0x1d29fd];return _0x33fe25;};'use strict';var util=require('util');var _=require('lodash');var BPromise=require(_0x5c3b('0x0'));var uuid=require(_0x5c3b('0x1'));var moment=require(_0x5c3b('0x2'));var md5=require(_0x5c3b('0x3'));var Redis=require(_0x5c3b('0x4'));var config=require(_0x5c3b('0x5'));var logger=require(_0x5c3b('0x6'))(_0x5c3b('0x7'));var loggerAction=require('../../../config/logger')(_0x5c3b('0x8'));var ami=require(_0x5c3b('0x9'));var rpcDb=require('./rpcDb');var Action=require(_0x5c3b('0xa'));var ut=require(_0x5c3b('0xb'));config[_0x5c3b('0xc')]=_[_0x5c3b('0xd')](config['redis'],{'host':_0x5c3b('0xe'),'port':0x18eb});var io=require(_0x5c3b('0xf'))(new Redis(config[_0x5c3b('0xc')]));var Sequence=function(){};Sequence[_0x5c3b('0x10')]['enqueue']=function(_0x20dd86){this[_0x5c3b('0x11')]=this[_0x5c3b('0x11')]?this[_0x5c3b('0x11')][_0x5c3b('0x12')](_0x20dd86):_0x20dd86();};function Preview(_0x5b9f7e){this[_0x5c3b('0x13')]=new Sequence();this[_0x5c3b('0x14')]=_0x5b9f7e['voiceQueues'];this[_0x5c3b('0x15')]=_0x5b9f7e[_0x5c3b('0x15')];this['actions']={};this[_0x5c3b('0x16')]=_0x5b9f7e[_0x5c3b('0x16')];this[_0x5c3b('0x17')]=0x0;ami['on'](_0x5c3b('0x18'),this[_0x5c3b('0x19')][_0x5c3b('0x1a')](this));ami['on'](_0x5c3b('0x1b'),this['syncHangup'][_0x5c3b('0x1a')](this));ami['on']('hanguprequest',this['syncHangupRequest'][_0x5c3b('0x1a')](this));ami['on'](_0x5c3b('0x1c'),this[_0x5c3b('0x1d')]['bind'](this));ami['on'](_0x5c3b('0x1e'),this[_0x5c3b('0x1f')][_0x5c3b('0x1a')](this));ami['on']('varset',this[_0x5c3b('0x20')][_0x5c3b('0x1a')](this));ami['on']('attendedtransfer',this[_0x5c3b('0x21')][_0x5c3b('0x1a')](this));ami['on'](_0x5c3b('0x22'),this[_0x5c3b('0x23')][_0x5c3b('0x1a')](this));this[_0x5c3b('0x24')](this[_0x5c3b('0x14')]);}function emit(_0x1af39c,_0xc63307,_0x1138b0){io['to'](_0x1af39c)['emit'](_0xc63307,_0x1138b0);}function emitCampaignPreview(_0x555495){if(_0x555495[_0x5c3b('0x25')]===_0x5c3b('0x26')){var _0x5942f1={'id':_0x555495['id'],'name':_0x555495[_0x5c3b('0x27')],'strategy':_0x555495['strategy'],'answered':_0x555495[_0x5c3b('0x28')],'available':_0x555495[_0x5c3b('0x29')],'loggedIn':_0x555495[_0x5c3b('0x2a')],'pTalking':_0x555495[_0x5c3b('0x2b')],'sumBillable':_0x555495['sumBillable'],'sumDuration':_0x555495[_0x5c3b('0x2c')],'sumHoldTime':_0x555495[_0x5c3b('0x2d')]||0x0,'talking':_0x555495['talking'],'total':_0x555495[_0x5c3b('0x2e')],'type':_0x555495[_0x5c3b('0x25')],'unmanaged':_0x555495[_0x5c3b('0x2f')],'abandoned':_0x555495[_0x5c3b('0x30')],'waiting':_0x555495['waiting'],'loggedInDb':_0x555495[_0x5c3b('0x31')],'dialActive':_0x555495[_0x5c3b('0x32')],'dialMethod':_0x555495[_0x5c3b('0x33')],'dialOriginateCallerIdName':_0x555495[_0x5c3b('0x34')],'dialOriginateCallerIdNumber':_0x555495[_0x5c3b('0x35')],'dialOriginateTimeout':_0x555495[_0x5c3b('0x36')],'dialPrefix':_0x555495['dialPrefix'],'outboundAnswerAgiCallsDay':_0x555495['outboundAnswerAgiCallsDay'],'outboundAnswerCallsDay':_0x555495['outboundAnswerCallsDay'],'outboundBlacklistCallsDay':_0x555495[_0x5c3b('0x37')],'outboundBusyCallsDay':_0x555495[_0x5c3b('0x38')],'outboundCongestionCallsDay':_0x555495['outboundCongestionCallsDay'],'outboundDropCallsDayACS':_0x555495[_0x5c3b('0x39')],'outboundDropCallsDayCallersExit':_0x555495[_0x5c3b('0x3a')],'outboundDropCallsDayTimeout':_0x555495[_0x5c3b('0x3b')],'outboundNoAnswerCallsDay':_0x555495[_0x5c3b('0x3c')],'outboundNoSuchCallsDay':_0x555495[_0x5c3b('0x3d')],'outboundOriginateFailureCallsDay':_0x555495[_0x5c3b('0x3e')],'outboundReCallsDay':_0x555495[_0x5c3b('0x3f')],'outboundRejectCallsDay':_0x555495[_0x5c3b('0x40')],'outboundUnknownCallsDay':_0x555495[_0x5c3b('0x41')],'outboundAbandonedCallsDay':_0x555495[_0x5c3b('0x42')],'predictiveIntervalAnsweredCalls':_0x555495[_0x5c3b('0x43')],'predictiveIntervalAvgHoldtime':_0x555495[_0x5c3b('0x44')],'predictiveIntervalAvgTalktime':_0x555495['predictiveIntervalAvgTalktime'],'predictiveIntervalDroppedCallsCallersExit':_0x555495[_0x5c3b('0x45')],'predictiveIntervalDroppedCallsTimeout':_0x555495[_0x5c3b('0x46')],'predictiveIntervalErlangCalls':_0x555495[_0x5c3b('0x47')],'predictiveIntervalErlangCallsDroppedCalls':_0x555495[_0x5c3b('0x48')],'predictiveIntervalHitRate':_0x555495[_0x5c3b('0x49')],'predictiveIntervalMultiplicativeFactor':_0x555495[_0x5c3b('0x4a')],'predictiveIntervalPauses':_0x555495[_0x5c3b('0x4b')],'predictiveIntervalAvailable':_0x555495[_0x5c3b('0x4c')],'predictiveIntervalTotalCalls':_0x555495[_0x5c3b('0x4d')],'message':_0x555495[_0x5c3b('0x4e')],'originated':_0x555495[_0x5c3b('0x4f')],'erlangCalls':_0x555495[_0x5c3b('0x50')],'erlangCallToSecond':_0x555495[_0x5c3b('0x51')],'erlangAbandonmentRate':_0x555495[_0x5c3b('0x52')],'erlangBusyFactor':_0x555495[_0x5c3b('0x53')],'startPredictive':_0x555495[_0x5c3b('0x54')],'startProgressive':_0x555495[_0x5c3b('0x55')]};if(_0x555495['Trunk']){_0x5942f1[_0x5c3b('0x56')]={'id':_0x555495[_0x5c3b('0x56')]['id'],'name':_0x555495[_0x5c3b('0x56')][_0x5c3b('0x27')],'active':_0x555495['Trunk'][_0x5c3b('0x57')],'callerid':_0x555495[_0x5c3b('0x56')]['callerid']};}if(_0x555495[_0x5c3b('0x58')]){_0x5942f1[_0x5c3b('0x58')]={'id':_0x555495[_0x5c3b('0x58')]['id'],'name':_0x555495[_0x5c3b('0x58')][_0x5c3b('0x27')]};}var _0x27e7f7=md5(JSON[_0x5c3b('0x59')](_0x5942f1));if(_0x555495[_0x5c3b('0x3')]!==_0x27e7f7){_0x555495[_0x5c3b('0x3')]=_0x27e7f7;emit(util['format'](_0x5c3b('0x5a'),_0x5942f1[_0x5c3b('0x27')]),'voice_queue:save',_0x5942f1);}}}function emitVoiceQueueChannelRemove(_0x59e079){logger[_0x5c3b('0x5b')](_0x5c3b('0x5c'),JSON[_0x5c3b('0x59')](_0x59e079));emit(util[_0x5c3b('0x5d')](_0x5c3b('0x5a'),_0x59e079[_0x5c3b('0x27')]),_0x5c3b('0x5e'),_0x59e079);io['emit']('voice_queue_presence:remove',_0x59e079);}function notSendMessagesQueue(_0x3a641e){if(_0x3a641e[_0x5c3b('0x5f')]){if(_0x3a641e[_0x5c3b('0x4f')]===0x0&&_0x3a641e[_0x5c3b('0x2b')]===0x0){_0x3a641e['sendMessageOneNotActive']=![];_0x3a641e[_0x5c3b('0x29')]=0x0;_0x3a641e['paused']=0x0;_0x3a641e[_0x5c3b('0x4e')]=_0x5c3b('0x60');ut[_0x5c3b('0x61')](_0x5c3b('0x62'),_0x3a641e[_0x5c3b('0x27')]+_0x5c3b('0x63'));}else{_0x3a641e[_0x5c3b('0x4e')]=_0x5c3b('0x64');ut[_0x5c3b('0x61')]('[CampaignPreview]\x20Campaign\x20Queue:\x20',_0x3a641e['name']+_0x5c3b('0x65'));}emitCampaignPreview(_0x3a641e);}}Preview[_0x5c3b('0x10')][_0x5c3b('0x24')]=function(){var _0x2d9e7b=this;setInterval(function(){_0x2d9e7b[_0x5c3b('0x66')]();},0x7cf);};Preview[_0x5c3b('0x10')][_0x5c3b('0x66')]=function(){var _0x1d9427=this[_0x5c3b('0x14')];this['clockClearZombieChannels']+=0x1;for(var _0x37f9ac in _0x1d9427){if(_0x1d9427[_0x5c3b('0x67')](_0x37f9ac)&&(_0x1d9427[_0x37f9ac][_0x5c3b('0x33')]==='preview'||_0x1d9427[_0x37f9ac][_0x5c3b('0x33')]===_0x5c3b('0x68'))&&_0x1d9427[_0x37f9ac][_0x5c3b('0x25')]===_0x5c3b('0x26')){if(this[_0x5c3b('0x17')]>0x7){this[_0x5c3b('0x17')]=0x0;this[_0x5c3b('0x69')]();}}if(_0x1d9427[_0x5c3b('0x67')](_0x37f9ac)&&_0x1d9427[_0x37f9ac][_0x5c3b('0x33')]===_0x5c3b('0x7')&&_0x1d9427[_0x37f9ac][_0x5c3b('0x25')]==='outbound'){if(_0x1d9427[_0x37f9ac][_0x5c3b('0x32')]){this['setMessage'](_0x1d9427[_0x37f9ac]);if(_0x1d9427[_0x37f9ac][_0x5c3b('0x6a')])this[_0x5c3b('0x6b')](_0x1d9427[_0x37f9ac]);}else{notSendMessagesQueue(_0x1d9427[_0x37f9ac]);}}}};Preview['prototype'][_0x5c3b('0x6c')]=function(_0x285346){var _0x37325e=this;this['sequence'][_0x5c3b('0x6d')](function(){if(!_['isNil'](_0x37325e[_0x5c3b('0x6e')][_0x285346])){loggerAction[_0x5c3b('0x5b')](_0x5c3b('0x6f'),_0x285346,_0x5c3b('0x70'),_0x37325e[_0x5c3b('0x6e')][_0x285346][_0x5c3b('0x71')],_0x5c3b('0x72'),JSON[_0x5c3b('0x59')](_0x37325e[_0x5c3b('0x14')][_0x37325e[_0x5c3b('0x6e')][_0x285346][_0x5c3b('0x71')]]['originated']),_0x5c3b('0x73'),JSON['stringify'](_0x37325e[_0x5c3b('0x14')][_0x37325e[_0x5c3b('0x6e')][_0x285346][_0x5c3b('0x71')]]['pTalking']),JSON[_0x5c3b('0x59')](_0x37325e[_0x5c3b('0x6e')][_0x285346]['dialAnswer']),JSON[_0x5c3b('0x59')](_[_0x5c3b('0x74')](_0x37325e[_0x5c3b('0x6e')][_0x285346],[_0x5c3b('0x75'),_0x5c3b('0x76'),_0x5c3b('0x77'),_0x5c3b('0x78')])));return ami[_0x5c3b('0x79')]({'action':_0x5c3b('0x7a'),'channel':_0x37325e[_0x5c3b('0x6e')][_0x285346][_0x5c3b('0x7b')]})['catch'](function(_0x525bc6){if(_0x525bc6['message']===_0x5c3b('0x7c')){setTimeout(function(){if(_0x37325e[_0x5c3b('0x6e')][_0x285346]){ut['updateOriginated'](_0x37325e[_0x5c3b('0x14')][_0x37325e[_0x5c3b('0x6e')][_0x285346][_0x5c3b('0x71')]],_0x5c3b('0x7d'));if(_0x37325e['actions'][_0x285346][_0x5c3b('0x7e')]===!![]){ut[_0x5c3b('0x7f')](_0x37325e['campaignsPreview'][_0x37325e[_0x5c3b('0x6e')][_0x285346][_0x5c3b('0x71')]],_0x5c3b('0x7d'));ut[_0x5c3b('0x80')](_0x5c3b('0x81')+_0x285346,_0x37325e[_0x5c3b('0x6e')][_0x285346][_0x5c3b('0x71')]);}ut[_0x5c3b('0x80')](_0x5c3b('0x82')+_0x285346,_0x37325e[_0x5c3b('0x6e')][_0x285346][_0x5c3b('0x71')]);delete _0x37325e[_0x5c3b('0x6e')][_0x285346];}},0x2328);}});}});};Preview[_0x5c3b('0x10')]['clearZombieChannels']=function(){var _0x5191b5=this;loggerAction[_0x5c3b('0x5b')](_0x5c3b('0x83'),_[_0x5c3b('0x84')](this['actions']));for(var _0x51f6b3 in this['actions']){if(_0x5191b5[_0x5c3b('0x6e')]['hasOwnProperty'](_0x51f6b3)){_0x5191b5[_0x5c3b('0x6c')](_0x51f6b3);}}};Preview[_0x5c3b('0x10')][_0x5c3b('0x6b')]=function(_0x3d5218){var _0x3976c0=this;rpcDb['getContactRecallMe'](_0x3d5218['id'],ut[_0x5c3b('0x85')](this['agents']))[_0x5c3b('0x86')](function(_0x5e55e4){if(!_[_0x5c3b('0x87')](_0x5e55e4)){for(var _0x87f956=0x0;_0x87f956<_0x5e55e4[_0x5c3b('0x88')];_0x87f956+=0x1){if(ut[_0x5c3b('0x89')](_0x5e55e4[_0x87f956][_0x5c3b('0x8a')])<_0x3d5218[_0x5c3b('0x8b')]*0x3c){if(_0x5e55e4[_0x87f956][_0x5c3b('0x8c')]&&!_0x5e55e4[_0x87f956][_0x5c3b('0x8c')][_0x5c3b('0x8d')]){_0x3976c0[_0x5c3b('0x8e')](_0x5e55e4[_0x87f956]['id'])[_0x5c3b('0x86')](ut['logger2']('[RecallMe]'))['catch'](ut[_0x5c3b('0x8f')](_0x5c3b('0x90')));}else{rpcDb[_0x5c3b('0x91')](_0x5e55e4[_0x87f956]['id']);}}else{var _0x150868=new Action(_0x5e55e4[_0x87f956],_0x3d5218);_0x150868['starttime']=moment()['format'](_0x5c3b('0x92'));_0x3d5218['outboundReCallsDay']+=0x1;ut['logCustomer'](_0x150868,0x17,_0x5c3b('0x93'));if(_0x3d5218[_0x5c3b('0x94')]){rpcDb[_0x5c3b('0x95')](ut[_0x5c3b('0x96')](_0x5e55e4[_0x87f956]));rpcDb[_0x5c3b('0x97')](_0x150868,_0x5c3b('0x98'));}else{ut[_0x5c3b('0x99')](_0x150868,0x16,_0x5c3b('0x9a'));rpcDb[_0x5c3b('0x97')](_0x150868,_0x5c3b('0x9b'));rpcDb[_0x5c3b('0x9c')](_0x150868,_0x5c3b('0x9b'));}}}}})['catch'](ut[_0x5c3b('0x8f')]('[getContactRecallMe]'));};Preview[_0x5c3b('0x10')][_0x5c3b('0x9d')]=function(_0x2e0907){_0x2e0907[_0x5c3b('0x5f')]=!![];if(ut[_0x5c3b('0x9e')](_0x2e0907[_0x5c3b('0x2a')])){_0x2e0907[_0x5c3b('0x4e')]=_0x5c3b('0x9f');}else if(!ut['isActive'](_0x2e0907[_0x5c3b('0x32')])){_0x2e0907['message']='NOT_ACTIVE';}else if(!this[_0x5c3b('0xa0')](_0x2e0907[_0x5c3b('0x56')])){if(!this[_0x5c3b('0xa0')](_0x2e0907['TrunkBackup'])){_0x2e0907[_0x5c3b('0x4e')]=_0x5c3b('0xa1');}else{_0x2e0907[_0x5c3b('0x4e')]='ACTIVE';}}else{_0x2e0907[_0x5c3b('0x4e')]='ACTIVE';}emitCampaignPreview(_0x2e0907);};Preview[_0x5c3b('0x10')][_0x5c3b('0xa2')]=function(_0x1a7ccd,_0x5a2e94,_0x44a8b9){var _0x5f17c1=this;var _0x22ba96=this[_0x5c3b('0x6e')][_0x5a2e94];var _0x19647a=this['campaignsPreview'][_0x22ba96[_0x5c3b('0x71')]];var _0x5dd15b;if(_0x19647a){switch(_0x44a8b9){case'1':_0x19647a[_0x5c3b('0x3d')]+=0x1;_0x22ba96[_0x5c3b('0xa3')]+=0x1;_0x22ba96[_0x5c3b('0xa4')]=ut[_0x5c3b('0xa5')](_0x22ba96);ut[_0x5c3b('0x99')](_0x22ba96,0x0,_0x5c3b('0xa6'));ami[_0x5c3b('0xa7')](_0x5c3b('0xa8'),ut[_0x5c3b('0xa9')](_0x22ba96,_0x5c3b('0xaa')));rpcDb[_0x5c3b('0x97')](_0x22ba96,_0x5c3b('0xab'));if(ut[_0x5c3b('0xa5')](_0x22ba96)>=_0x19647a['dialGlobalMaxRetry']){_0x5dd15b=ut[_0x5c3b('0xac')](_0x22ba96,0xf,_0x5c3b('0xad'));rpcDb['createCustomerFinal'](_0x5dd15b,_0x5c3b('0xae'));}else{if(_0x22ba96[_0x5c3b('0xa3')]>=_0x19647a[_0x5c3b('0xaf')]){rpcDb[_0x5c3b('0x9c')](_0x22ba96,_0x5c3b('0xae'));}else{rpcDb[_0x5c3b('0xb0')](ut[_0x5c3b('0xb1')](_0x22ba96,_0x5c3b('0xa3'),_0x19647a[_0x5c3b('0xb2')]),_0x22ba96['unlockAgent'],_0x22ba96['activeContact']);}}delete this['actions'][_0x1a7ccd['linkedid']];break;case'ANSWER':var _0x274b66=moment()[_0x5c3b('0x5d')](_0x5c3b('0x92'));_0x22ba96['responsetime']=_0x274b66;_0x22ba96[_0x5c3b('0xb3')]=_0x274b66;_0x22ba96['dialAnswer']=!![];_0x19647a[_0x5c3b('0x2b')]+=0x1;logger[_0x5c3b('0x5b')](_0x5c3b('0xb4'),_0x22ba96[_0x5c3b('0xb5')],_0x5c3b('0xb6'),_0x19647a[_0x5c3b('0x27')],_0x5c3b('0x73'),_0x19647a[_0x5c3b('0x2b')]);ami[_0x5c3b('0xa7')](_0x5c3b('0xb7'),ut[_0x5c3b('0xa9')](_0x22ba96,_0x5c3b('0xb8'),this['campaignsPreview'][_0x22ba96[_0x5c3b('0x71')]]));if(_0x19647a[_0x5c3b('0xb9')]){ami[_0x5c3b('0xa7')](_0x5c3b('0xba'),ut[_0x5c3b('0xbb')](_0x22ba96));}break;case'16':ami[_0x5c3b('0xa7')]('custom:agentcomplete',ut['buildObj'](_0x22ba96,_0x5c3b('0xbc'),this[_0x5c3b('0x14')][_0x22ba96['queue']]));emitVoiceQueueChannelRemove(ut[_0x5c3b('0xa9')](_0x22ba96,_0x5c3b('0xbc')));_0x19647a[_0x5c3b('0xbd')]+=0x1;_0x19647a['total']+=0x1;_0x19647a[_0x5c3b('0x28')]+=0x1;ut[_0x5c3b('0x7f')](_0x19647a,_0x5c3b('0xbe'));_0x22ba96[_0x5c3b('0xa4')]=ut['totalGlobal'](_0x22ba96);ut['logCustomer'](_0x22ba96,0x4,_0x5c3b('0xbf'));rpcDb[_0x5c3b('0x97')](_0x22ba96,_0x5c3b('0xc0'));rpcDb[_0x5c3b('0x9c')](_0x22ba96,_0x5c3b('0xc1'));rpcDb[_0x5c3b('0xc2')](_0x22ba96);_0x19647a[_0x5c3b('0x2c')]+=_0x22ba96[_0x5c3b('0xc3')];_0x19647a[_0x5c3b('0xc4')]+=_0x22ba96['talktime'];logger[_0x5c3b('0x5b')](_0x5c3b('0xc5'),_0x22ba96[_0x5c3b('0xb5')],_0x5c3b('0xb6'),_0x19647a[_0x5c3b('0x27')],_0x5c3b('0x73'),_0x19647a[_0x5c3b('0x2b')]);delete this[_0x5c3b('0x6e')][_0x1a7ccd[_0x5c3b('0xc6')]];break;case'BUSY':_0x19647a[_0x5c3b('0x38')]+=0x1;_0x22ba96[_0x5c3b('0xc7')]+=0x1;_0x22ba96[_0x5c3b('0xa4')]=ut[_0x5c3b('0xa5')](_0x22ba96);ut['logCustomer'](_0x22ba96,0x5,'Busy');ami['emit'](_0x5c3b('0xc8'),ut[_0x5c3b('0xa9')](_0x22ba96,_0x5c3b('0xc9')));rpcDb['createCustomerHistory'](_0x22ba96,_0x5c3b('0xca'));if(ut[_0x5c3b('0xa5')](_0x22ba96)>=_0x19647a[_0x5c3b('0xcb')]){_0x5dd15b=ut['cloneAction'](_0x22ba96,0xf,_0x5c3b('0xad'));rpcDb[_0x5c3b('0x9c')](_0x5dd15b,_0x5c3b('0xcc'));}else{if(_0x22ba96['countbusyretry']>=_0x19647a[_0x5c3b('0xcd')]){rpcDb[_0x5c3b('0x9c')](_0x22ba96,_0x5c3b('0xca'));}else{rpcDb[_0x5c3b('0xb0')](ut[_0x5c3b('0xb1')](_0x22ba96,'countbusyretry',_0x19647a[_0x5c3b('0xce')]),_0x22ba96[_0x5c3b('0xcf')],_0x22ba96['activeContact']);}}break;case'NOANSWER':_0x19647a['outboundNoAnswerCallsDay']+=0x1;_0x22ba96[_0x5c3b('0xd0')]+=0x1;_0x22ba96[_0x5c3b('0xa4')]=ut[_0x5c3b('0xa5')](_0x22ba96);ut[_0x5c3b('0x99')](_0x22ba96,0x3,'NoAnswer');ami[_0x5c3b('0xa7')](_0x5c3b('0xd1'),ut[_0x5c3b('0xa9')](_0x22ba96,_0x5c3b('0xd2')));rpcDb[_0x5c3b('0x97')](_0x22ba96,_0x5c3b('0xd3'));if(ut[_0x5c3b('0xa5')](_0x22ba96)>=_0x19647a[_0x5c3b('0xcb')]){_0x5dd15b=ut[_0x5c3b('0xac')](_0x22ba96,0xf,_0x5c3b('0xad'));rpcDb['createCustomerFinal'](_0x5dd15b,'[callProgressDetectingCustomer][logNoAnswerGlobal]');}else{if(_0x22ba96[_0x5c3b('0xd0')]>=_0x19647a[_0x5c3b('0xd4')]){rpcDb[_0x5c3b('0x9c')](_0x22ba96,_0x5c3b('0xd3'));}else{rpcDb[_0x5c3b('0xb0')](ut['scheduledAt'](_0x22ba96,_0x5c3b('0xd0'),_0x19647a[_0x5c3b('0xd5')]),_0x22ba96[_0x5c3b('0xcf')],_0x22ba96[_0x5c3b('0xd6')]);}}break;case _0x5c3b('0xd7'):_0x19647a[_0x5c3b('0xd8')]+=0x1;_0x22ba96['countcongestionretry']+=0x1;_0x22ba96['countglobal']=ut[_0x5c3b('0xa5')](_0x22ba96);ut[_0x5c3b('0x99')](_0x22ba96,0x8,'Congestion');ami[_0x5c3b('0xa7')](_0x5c3b('0xd9'),ut['buildObj'](_0x22ba96,_0x5c3b('0xda')));rpcDb[_0x5c3b('0x97')](_0x22ba96,_0x5c3b('0xdb'));if(ut[_0x5c3b('0xa5')](_0x22ba96)>=_0x19647a[_0x5c3b('0xcb')]){_0x5dd15b=ut[_0x5c3b('0xac')](_0x22ba96,0xf,'Global');rpcDb[_0x5c3b('0x9c')](_0x5dd15b,_0x5c3b('0xdc'));}else{if(_0x22ba96[_0x5c3b('0xdd')]>=_0x19647a[_0x5c3b('0xde')]){rpcDb[_0x5c3b('0x9c')](_0x22ba96,'[callProgressDetectingCustomer][logCongestion]');}else{rpcDb[_0x5c3b('0xb0')](ut[_0x5c3b('0xb1')](_0x22ba96,_0x5c3b('0xdd'),_0x19647a[_0x5c3b('0xce')]),_0x22ba96['unlockAgent'],_0x22ba96[_0x5c3b('0xd6')]);}}break;case'CANCEL':_0x19647a[_0x5c3b('0x40')]+=0x1;_0x22ba96['countagentrejectretry']+=0x1;_0x22ba96[_0x5c3b('0xa4')]=ut[_0x5c3b('0xa5')](_0x22ba96);ut[_0x5c3b('0x99')](_0x22ba96,0x14,'AgentReject');ami['emit'](_0x5c3b('0xdf'),ut['buildObj'](_0x22ba96,_0x5c3b('0xe0')));rpcDb[_0x5c3b('0x97')](_0x22ba96,'[syncHangupRequest][logAgentReject]');if(ut[_0x5c3b('0xa5')](_0x22ba96)>=_0x19647a['dialGlobalMaxRetry']){_0x5dd15b=ut[_0x5c3b('0xac')](_0x22ba96,0x14,_0x5c3b('0xe1'));rpcDb[_0x5c3b('0x9c')](_0x5dd15b,_0x5c3b('0xe2'));}else{if(_0x22ba96[_0x5c3b('0xe3')]>=_0x19647a[_0x5c3b('0xe4')]){rpcDb[_0x5c3b('0x9c')](_0x22ba96,_0x5c3b('0xe2'));}else{rpcDb[_0x5c3b('0xb0')](ut['scheduledAt'](_0x22ba96,'countagentrejectretry',_0x19647a['dialAgentRejectRetryFrequency']),_0x22ba96['unlockAgent'],_0x22ba96[_0x5c3b('0xd6')]);}}break;case'ABANDONED':_0x19647a[_0x5c3b('0x42')]+=0x1;_0x22ba96[_0x5c3b('0xe5')]+=0x1;_0x22ba96[_0x5c3b('0xa4')]=ut[_0x5c3b('0xa5')](_0x22ba96);ut['logCustomer'](_0x22ba96,0xb,'Abandoned');rpcDb['createCustomerHistory'](_0x22ba96,_0x5c3b('0xe6'));if(ut[_0x5c3b('0xa5')](_0x22ba96)>=_0x19647a[_0x5c3b('0xcb')]){_0x5dd15b=ut['cloneAction'](_0x22ba96,0xf,_0x5c3b('0xad'));rpcDb[_0x5c3b('0x9c')](_0x5dd15b,_0x5c3b('0xe6'));}else{if(_0x22ba96[_0x5c3b('0xe7')]>=_0x19647a[_0x5c3b('0xe8')]){rpcDb[_0x5c3b('0x9c')](_0x22ba96,'[callProgressDetectingCustomer][logAbandoned]');}else{rpcDb[_0x5c3b('0xb0')](ut[_0x5c3b('0xb1')](_0x22ba96,_0x5c3b('0xe5'),_0x19647a[_0x5c3b('0xe9')]),_0x22ba96['unlockAgent'],_0x22ba96['activeContact']);}}break;case'18':_0x19647a[_0x5c3b('0x41')]+=0x1;_0x22ba96[_0x5c3b('0xea')]+=0x1;_0x22ba96['countglobal']=ut[_0x5c3b('0xa5')](_0x22ba96);ut[_0x5c3b('0x99')](_0x22ba96,0x12,_0x1a7ccd[_0x5c3b('0xeb')]||_0x1a7ccd[_0x5c3b('0xec')]);ami[_0x5c3b('0xa7')]('custom:amd',ut[_0x5c3b('0xa9')](_0x22ba96,_0x5c3b('0xed')));rpcDb[_0x5c3b('0x97')](_0x22ba96,_0x5c3b('0xee'));if(ut[_0x5c3b('0xa5')](_0x22ba96)>=_0x19647a[_0x5c3b('0xcb')]){_0x5dd15b=ut[_0x5c3b('0xac')](_0x22ba96,0xf,'Global');rpcDb[_0x5c3b('0x9c')](_0x5dd15b,_0x5c3b('0xee'));}else{rpcDb[_0x5c3b('0x9c')](_0x22ba96,_0x5c3b('0xee'));}delete this[_0x5c3b('0x6e')][_0x1a7ccd[_0x5c3b('0xc6')]];break;case'19':_0x19647a['outboundUnknownCallsDay']+=0x1;_0x22ba96['countglobal']=ut[_0x5c3b('0xa5')](_0x22ba96);ut[_0x5c3b('0x99')](_0x22ba96,0x13,_0x1a7ccd[_0x5c3b('0xeb')]||_0x1a7ccd[_0x5c3b('0xec')]);ami[_0x5c3b('0xa7')]('custom:amd',ut[_0x5c3b('0xa9')](_0x22ba96,_0x5c3b('0xed')));rpcDb[_0x5c3b('0x97')](_0x22ba96,_0x5c3b('0xef'));if(ut[_0x5c3b('0xa5')](_0x22ba96)>=_0x19647a[_0x5c3b('0xcb')]){_0x5dd15b=ut[_0x5c3b('0xac')](_0x22ba96,0xf,'Global');rpcDb[_0x5c3b('0x9c')](_0x5dd15b,_0x5c3b('0xef'));}else{rpcDb[_0x5c3b('0x9c')](_0x22ba96,_0x5c3b('0xef'));}delete this[_0x5c3b('0x6e')][_0x1a7ccd[_0x5c3b('0xc6')]];break;default:if(_0x22ba96[_0x5c3b('0x7e')]){ut[_0x5c3b('0x7f')](_0x19647a,'[default]');ut[_0x5c3b('0x80')]('[Dialer][decrementTalkink][no\x20Hangup][Preview]'+_0x19647a[_0x5c3b('0x27')],_0x1a7ccd);}_0x19647a[_0x5c3b('0x41')]+=0x1;_0x22ba96['countglobal']=ut[_0x5c3b('0xa5')](_0x22ba96);ut[_0x5c3b('0x99')](_0x22ba96,0xc,_0x1a7ccd[_0x5c3b('0xeb')]||_0x1a7ccd[_0x5c3b('0xec')]);rpcDb['createCustomerHistory'](_0x22ba96,'[callProgressDetectingCustomer][logUnknown]');if(ut[_0x5c3b('0xa5')](_0x22ba96)>=_0x19647a['dialGlobalMaxRetry']){_0x5dd15b=ut['cloneAction'](_0x22ba96,0xf,'Global');rpcDb[_0x5c3b('0x9c')](_0x5dd15b,_0x5c3b('0xf0'));}else{rpcDb[_0x5c3b('0x9c')](_0x22ba96,_0x5c3b('0xf0'));}delete this[_0x5c3b('0x6e')][_0x1a7ccd[_0x5c3b('0xc6')]];}if(!(_0x22ba96[_0x5c3b('0x7e')]&&_0x44a8b9==='16')){ut[_0x5c3b('0xf1')](_0x19647a,_0x5c3b('0xf2'));logger[_0x5c3b('0x5b')](_0x5c3b('0xf3'),_0x22ba96[_0x5c3b('0xb5')],_0x5c3b('0xb6'),_0x19647a['name'],_0x5c3b('0x72'),_0x19647a['originated']);}if(_0x44a8b9!==_0x5c3b('0xf4')){delete this[_0x5c3b('0x6e')][_0x1a7ccd[_0x5c3b('0xc6')]];delete this[_0x5c3b('0x6e')][_0x1a7ccd[_0x5c3b('0xf5')]];}}};Preview[_0x5c3b('0x10')][_0x5c3b('0xf6')]=function(_0x4b3915,_0x32311c,_0x108355){if(_[_0x5c3b('0xf7')](_0x32311c)&&_0x5c3b('0xf8')!==typeof _0x32311c){return;}if(_[_0x5c3b('0xf7')](_0x108355)&&_0x5c3b('0xf8')!==typeof _0x108355){return;}switch(_0x108355[_0x5c3b('0xf9')]){case'0':ut[_0x5c3b('0xfa')](_0x4b3915,0x0,_0x5c3b('0xa6'));rpcDb[_0x5c3b('0xfb')](_0x4b3915,_0x5c3b('0xfc'));break;case'3':ut[_0x5c3b('0xfa')](_0x4b3915,0x3,'NoAnswer');rpcDb[_0x5c3b('0xfb')](_0x4b3915,'[callProgressDetectingAgent][logNoAnswer]');break;case'5':ut[_0x5c3b('0xfa')](_0x4b3915,0x5,_0x5c3b('0xfd'));rpcDb[_0x5c3b('0xfb')](_0x4b3915,_0x5c3b('0xfe'));break;case'8':ut[_0x5c3b('0xfa')](_0x4b3915,0x8,'Congestion');rpcDb[_0x5c3b('0xfb')](_0x4b3915,_0x5c3b('0xff'));break;case'22':ut[_0x5c3b('0xfa')](_0x4b3915,0x16,'AnswerAGI');rpcDb['createAgentHistory'](_0x4b3915,_0x5c3b('0x100'));break;default:ut[_0x5c3b('0xfa')](_0x4b3915,0xc,_0x108355[_0x5c3b('0xf9')]);rpcDb['createAgentHistory'](_0x4b3915,_0x5c3b('0xff'));}ut[_0x5c3b('0xf1')](_0x32311c,_0x5c3b('0x101'));logger[_0x5c3b('0x5b')]('[originated][decrement][callProgressDetectingAgent]',_0x4b3915[_0x5c3b('0xb5')],_0x5c3b('0xb6'),_0x32311c['name'],_0x5c3b('0x72'),_0x32311c[_0x5c3b('0x4f')]);delete this[_0x5c3b('0x6e')][_0x4b3915[_0x5c3b('0xb5')]];};Preview['prototype'][_0x5c3b('0x102')]=function(_0x2eca92,_0x2273e7,_0xafb31b,_0x58a95d,_0x2ac67d){var _0x755f8c=this;return new BPromise(function(_0x115f66,_0x1f7eb1){if(_[_0x5c3b('0x87')](_0x2273e7)||_[_0x5c3b('0x87')](_0x2273e7[_0x5c3b('0x103')])||_[_0x5c3b('0x87')](_0x2273e7[_0x5c3b('0x103')]['phone'])||_[_0x5c3b('0x87')](_0x2273e7[_0x5c3b('0x77')])){_0x1f7eb1(ut[_0x5c3b('0x4e')]('Contact\x20is\x20undefined',_0x58a95d,_0x2ac67d));return;}var _0x4a20a0=uuid['v4']();var _0x40d1e2=_0x755f8c['campaignsPreview'][_0x2273e7['Queue'][_0x5c3b('0x27')]];var _0x555054=_0xafb31b?_0x755f8c[_0x5c3b('0x16')][_0xafb31b]['id']:undefined;_0x755f8c[_0x5c3b('0x6e')][_0x4a20a0]=new Action(_0x2273e7,_0x40d1e2,_0x4a20a0,_0xafb31b,_0x555054);var _0x270810=_0x755f8c[_0x5c3b('0x6e')][_0x4a20a0];_0x270810[_0x5c3b('0xcf')]=_0x58a95d;_0x270810[_0x5c3b('0xd6')]=_0x2ac67d;_0x270810['lookAgent']=_0xafb31b;if(_['isEmpty'](_0x2eca92)){_0x755f8c[_0x5c3b('0x104')](_0x270810,_0x40d1e2,_0x2273e7,_0xafb31b)[_0x5c3b('0x86')](function(_0x3ac720){logger['info']('[Preview][execCall][success]',_0x5c3b('0x105')+_0x270810[_0x5c3b('0x71')]+_0x5c3b('0x106')+_0x270810['idContact'],JSON[_0x5c3b('0x59')](_0x3ac720));ami[_0x5c3b('0xa7')](_0x5c3b('0x107'),ut[_0x5c3b('0xa9')](_0x270810,'called',_0x755f8c[_0x5c3b('0x14')][_0x270810['queue']]));_0x115f66(ut[_0x5c3b('0x4e')](_0x5c3b('0x108')));})[_0x5c3b('0x109')](function(_0x1d7667){ut[_0x5c3b('0x61')](_0x5c3b('0x10a'),_0x1d7667);_0x1f7eb1(ut[_0x5c3b('0x4e')](_0x5c3b('0x10b'),_0x58a95d,_0x2ac67d));});}else{_0x40d1e2['outboundBlacklistCallsDay']+=0x1;ut[_0x5c3b('0x10c')](_0x270810);rpcDb[_0x5c3b('0x10d')](_0x270810,_0x5c3b('0x10e'));delete _0x755f8c['actions'][_0x4a20a0];_0x1f7eb1(ut[_0x5c3b('0x4e')](_0x5c3b('0x10f'),_0x58a95d,_0x2ac67d));}});};Preview['prototype'][_0x5c3b('0xa0')]=function(_0x2e2b23){return!_[_0x5c3b('0x87')](_0x2e2b23)&&!_[_0x5c3b('0x87')](_0x2e2b23[_0x5c3b('0x27')])&&!_[_0x5c3b('0x87')](_0x2e2b23[_0x5c3b('0x57')])&&_0x2e2b23[_0x5c3b('0x57')]&&!_['isNil'](this['trunks'][util[_0x5c3b('0x5d')](_0x5c3b('0x110'),_0x2e2b23[_0x5c3b('0x27')])])&&!_[_0x5c3b('0x87')](this['trunks'][util[_0x5c3b('0x5d')](_0x5c3b('0x110'),_0x2e2b23[_0x5c3b('0x27')])][_0x5c3b('0x7a')])&&(this[_0x5c3b('0x15')][util[_0x5c3b('0x5d')](_0x5c3b('0x110'),_0x2e2b23[_0x5c3b('0x27')])][_0x5c3b('0x7a')]==='reachable'||this['trunks'][util[_0x5c3b('0x5d')](_0x5c3b('0x110'),_0x2e2b23[_0x5c3b('0x27')])][_0x5c3b('0x7a')]===_0x5c3b('0x111'));};Preview['prototype'][_0x5c3b('0x8e')]=function(_0x4be050,_0x561c34){var _0x3d0594=this;return new BPromise(function(_0x39dffe,_0x40afd5){_0x3d0594[_0x5c3b('0x112')](_0x4be050,_0x561c34)[_0x5c3b('0x86')](function(_0x3da184){_0x39dffe(_[_0x5c3b('0x74')](_0x3da184,['message']));})[_0x5c3b('0x109')](function(_0x5e47eb){if(_0x5e47eb[_0x5c3b('0x113')]){rpcDb['unlockContact'](_0x4be050);}if(_0x5e47eb[_0x5c3b('0x57')]){rpcDb['disableContact'](_0x4be050);}_0x40afd5(_['pick'](_0x5e47eb,[_0x5c3b('0x4e')]));});});};Preview[_0x5c3b('0x10')][_0x5c3b('0x112')]=function(_0x2f7425,_0xc72105){var _0x5b6415=this;return new BPromise(function(_0x5bc39c,_0xa94ed9){var _0x53e729,_0x46a3ab;rpcDb[_0x5c3b('0x114')](_0x2f7425)['then'](function(_0x29bff8){if(!_[_0x5c3b('0x87')](_0x29bff8[0x0])){_0x46a3ab=_0x29bff8[0x0][_0x5c3b('0x115')]?![]:!![];_0x53e729=_0x29bff8[0x0][_0x5c3b('0x115')]?!![]:![];_0x53e729=_0xc72105?!![]:_0x53e729;}var _0x3d6446=_0x5b6415[_0x5c3b('0x116')](_0x29bff8);if(_0x3d6446['isValid']){rpcDb[_0x5c3b('0x117')](_[_0x5c3b('0x74')](_0x29bff8[0x0],[_0x5c3b('0x77'),_0x5c3b('0x118')]))[_0x5c3b('0x86')](function(_0x34d361){_0x5b6415['checkInBlack'](_0x34d361,_0x29bff8[0x0],_0xc72105,_0x46a3ab,_0x53e729)[_0x5c3b('0x86')](function(_0xe29d8e){_0x5bc39c(_0xe29d8e);})[_0x5c3b('0x109')](function(_0x1c2504){_0xa94ed9(_0x1c2504);});})[_0x5c3b('0x109')](function(_0x370e18){ut['logger'](_0x5c3b('0x119'),_0x370e18);_0xa94ed9(ut[_0x5c3b('0x4e')](_0x5c3b('0x11a'),_0x46a3ab,_0x53e729));});}else{_0xa94ed9(ut[_0x5c3b('0x4e')](_0x3d6446[_0x5c3b('0x4e')],_0x46a3ab,_0x53e729));}})[_0x5c3b('0x109')](function(_0x1b0dc4){ut[_0x5c3b('0x61')](_0x5c3b('0x11b'),_0x1b0dc4);_0xa94ed9(ut[_0x5c3b('0x4e')](_0x5c3b('0x11a'),![],!![]));});});};Preview[_0x5c3b('0x10')]['validateContact']=function(_0x48c0ef){if(_['isNil'](_0x48c0ef)||_[_0x5c3b('0x11c')](_0x48c0ef)||!_['isNil'](_0x48c0ef[0x0][_0x5c3b('0x8c')])&&_[_0x5c3b('0x87')](_0x48c0ef[0x0][_0x5c3b('0x8c')]['name'])){ut[_0x5c3b('0x61')](_0x5c3b('0x11d'),_0x48c0ef);return{'isValid':![],'message':'Empty\x20Contact'};}var _0x5078db=this[_0x5c3b('0x14')][_0x48c0ef[0x0]['Queue'][_0x5c3b('0x27')]];_0x5078db[_0x5c3b('0x4e')]='ACTIVE';if(_['isNil'](_0x5078db)){ut[_0x5c3b('0x61')](_0x5c3b('0x11e'),_0x5078db);return{'isValid':![],'message':_0x5c3b('0x11f')};}if(!this[_0x5c3b('0xa0')](_0x5078db['Trunk'])){ut[_0x5c3b('0x61')]('[Preview][validateContact][Trunk\x20not\x20work]','campaign\x20Name:\x20'+_0x5078db[_0x5c3b('0x27')]+_0x5c3b('0x120'));if(!this['isTrunkReachable'](_0x5078db['TrunkBackup'])){ut[_0x5c3b('0x61')](_0x5c3b('0x121'),_0x5078db[_0x5c3b('0x27')]+_0x5c3b('0x122'));return{'isValid':![],'message':_0x5c3b('0x123')};}}if(!ut[_0x5c3b('0x124')](_0x5078db[_0x5c3b('0x32')])){ut[_0x5c3b('0x61')](_0x5c3b('0x125'),_0x5078db[_0x5c3b('0x27')]+_0x5c3b('0x126'));return{'isValid':![],'message':_0x5c3b('0x127')+_0x5078db[_0x5c3b('0x27')]+_0x5c3b('0x126')};}return{'isValid':!![],'message':_0x5c3b('0x128')};};Preview[_0x5c3b('0x10')][_0x5c3b('0x104')]=function(_0x48e8f1,_0x14ce5d,_0x42c86d,_0x8d361){var _0x3e9c76=this;return new BPromise(function(_0x3d85c5,_0x20daf8){var _0x5a68f4=_0x48e8f1['uniqueid'];var _0x43d6e7=_0x3e9c76[_0x5c3b('0xa0')](_0x14ce5d[_0x5c3b('0x56')])?util['format'](_0x5c3b('0x129'),_0x14ce5d['Trunk'][_0x5c3b('0x27')],_[_0x5c3b('0x87')](_0x14ce5d[_0x5c3b('0x12a')])?'':_0x14ce5d[_0x5c3b('0x12a')][_0x5c3b('0x12b')]()||'',_0x14ce5d[_0x5c3b('0x12c')]>0x0?_0x42c86d[_0x5c3b('0x103')][_0x5c3b('0x12d')]['substring'](_0x14ce5d[_0x5c3b('0x12c')]):_0x42c86d['Contact'][_0x5c3b('0x12d')]):util[_0x5c3b('0x5d')](_0x5c3b('0x129'),_[_0x5c3b('0x87')](_0x14ce5d[_0x5c3b('0x12e')])?_0x14ce5d['Trunk'][_0x5c3b('0x27')]:_0x14ce5d[_0x5c3b('0x12e')][_0x5c3b('0x27')],_[_0x5c3b('0x87')](_0x14ce5d['dialPrefix'])?'':_0x14ce5d[_0x5c3b('0x12a')][_0x5c3b('0x12b')]()||'',_0x14ce5d[_0x5c3b('0x12c')]>0x0?_0x42c86d[_0x5c3b('0x103')][_0x5c3b('0x12d')][_0x5c3b('0x12f')](_0x14ce5d[_0x5c3b('0x12c')]):_0x42c86d[_0x5c3b('0x103')][_0x5c3b('0x12d')]);var _0x32e482=_0x3e9c76[_0x5c3b('0xa0')](_0x14ce5d[_0x5c3b('0x56')])?ut[_0x5c3b('0x130')](_0x14ce5d[_0x5c3b('0x56')][_0x5c3b('0x131')],_0x14ce5d[_0x5c3b('0x34')],_0x14ce5d[_0x5c3b('0x132')]>0x0?ut['getCallerIdRandom'](_0x14ce5d[_0x5c3b('0x35')],_0x14ce5d[_0x5c3b('0x132')]):_0x14ce5d['dialOriginateCallerIdNumber']):ut[_0x5c3b('0x130')](_[_0x5c3b('0x87')](_0x14ce5d[_0x5c3b('0x12e')])?_0x14ce5d[_0x5c3b('0x56')][_0x5c3b('0x131')]:_0x14ce5d[_0x5c3b('0x12e')]['callerid'],_0x14ce5d['dialOriginateCallerIdName'],_0x14ce5d[_0x5c3b('0x132')]>0x0?ut[_0x5c3b('0x133')](_0x14ce5d[_0x5c3b('0x35')],_0x14ce5d['dialRandomLastDigitCallerIdNumber']):_0x14ce5d[_0x5c3b('0x35')]);if(_0x32e482){_0x48e8f1[_0x5c3b('0x134')]=ut['extractCalleridName'](_0x32e482);_0x48e8f1[_0x5c3b('0x135')]=ut[_0x5c3b('0x136')](_0x32e482);}var _0x26344d=ut[_0x5c3b('0x137')](_0x14ce5d,_0x42c86d,_0x43d6e7,_0x32e482,_0x5a68f4,_0x48e8f1);_['merge'](_0x48e8f1,ut['toLowerVariables'](_0x26344d));_0x48e8f1[_0x5c3b('0x138')]=moment()[_0x5c3b('0x5d')]('YYYY-MM-DD\x20HH:mm:ss');ami[_0x5c3b('0x79')](ut['variablesAction'](_0x48e8f1,_0x14ce5d,_0x26344d,_0x48e8f1[_0x5c3b('0xd6')],_0x8d361))['then'](function(_0x13ad02){_0x14ce5d['originated']+=0x1;logger[_0x5c3b('0x5b')](_0x5c3b('0x139'),_0x5a68f4,_0x5c3b('0xb6'),_0x14ce5d[_0x5c3b('0x27')],_0x5c3b('0x72'),_0x14ce5d['originated']);_0x3d85c5(_0x13ad02);})['catch'](function(_0x2b2833){ut['logAgent'](_0x48e8f1,0xe,_0x5c3b('0x13a'));rpcDb[_0x5c3b('0xfb')](_0x48e8f1,_0x5c3b('0x13b'));_0x20daf8(_0x2b2833);});});};Preview[_0x5c3b('0x10')][_0x5c3b('0x1f')]=function(_0x168396){if(this[_0x5c3b('0x6e')][_0x168396['linkedid']]){this[_0x5c3b('0x6e')][_0x168396[_0x5c3b('0xc6')]]['channel']=_0x168396[_0x5c3b('0x7b')];}};Preview[_0x5c3b('0x10')][_0x5c3b('0x19')]=function(_0x5029d7){var _0x4d8885=this;var _0x225072=this[_0x5c3b('0x6e')][_0x5029d7[_0x5c3b('0x13c')]];if(_0x225072){if(_0x225072[_0x5c3b('0x13d')]&&this[_0x5c3b('0x16')][_0x225072[_0x5c3b('0x13d')]]){ut[_0x5c3b('0x13e')](_0x225072,this[_0x5c3b('0x16')][_0x225072['lookAgent']]['name'],this[_0x5c3b('0x16')][_0x225072[_0x5c3b('0x13d')]]['id']);}var _0x3dc516=_[_0x5c3b('0x13f')](_0x225072);_0x3dc516[_0x5c3b('0x140')]=moment()['format'](_0x5c3b('0x92'));var _0x4ff854=_0x4d8885[_0x5c3b('0x14')][_0x225072[_0x5c3b('0x71')]];if(ut['isFailure'](_0x5029d7['response'])){if(_0x225072[_0x5c3b('0xcf')]){rpcDb[_0x5c3b('0x141')](_0x225072['idContact']);}if(_0x225072[_0x5c3b('0xd6')]){rpcDb[_0x5c3b('0x91')](_0x225072[_0x5c3b('0x142')]);}ami['emit']('custom:agentringnoanswer',ut['buildObj'](_0x225072,_0x5c3b('0x143'),this[_0x5c3b('0x14')][_0x225072[_0x5c3b('0x71')]]));this[_0x5c3b('0xf6')](_0x3dc516,_0x4ff854,_0x5029d7);}else{_0x225072[_0x5c3b('0x138')]=moment()[_0x5c3b('0x5d')]('YYYY-MM-DD\x20HH:mm:ss');ut['logAgent'](_0x3dc516,0x4,_0x5c3b('0xbf'));rpcDb[_0x5c3b('0xfb')](_0x3dc516,'[callProgressDetectingAgent][logAnswer]');}}};Preview[_0x5c3b('0x10')][_0x5c3b('0x144')]=function(_0x167c7c){var _0x494470=this;var _0x12de90=this[_0x5c3b('0x6e')][_0x167c7c[_0x5c3b('0xc6')]];var _0x1ff861;if(_0x12de90){_0x1ff861=this[_0x5c3b('0x14')][_0x12de90[_0x5c3b('0x71')]];logger[_0x5c3b('0x5b')](_0x5c3b('0x145'),_0x167c7c['linkedid'],_0x5c3b('0xb6'),_0x1ff861[_0x5c3b('0x27')],_0x5c3b('0x73'),_0x1ff861[_0x5c3b('0x2b')]);}if(this[_0x5c3b('0x6e')][_0x167c7c['linkedid']]&&_0x167c7c[_0x5c3b('0xc6')]!==_0x167c7c[_0x5c3b('0xb5')]){if(_0x167c7c[_0x5c3b('0x146')]==='16'&&this[_0x5c3b('0x6e')][_0x167c7c[_0x5c3b('0xc6')]][_0x5c3b('0x7e')]){this[_0x5c3b('0xa2')](_0x167c7c,_0x167c7c[_0x5c3b('0xc6')],_0x167c7c[_0x5c3b('0x146')]);}else if(this['actions'][_0x167c7c[_0x5c3b('0xc6')]]['dialAnswer']){logger[_0x5c3b('0x5b')](_0x5c3b('0x147'),_0x167c7c['linkedid'],_0x167c7c[_0x5c3b('0x146')],_0x5c3b('0xb6'),_0x1ff861[_0x5c3b('0x27')],'pTalking:\x20',_0x1ff861['pTalking']);this['callProgressDetectingCustomer'](_0x167c7c,_0x167c7c[_0x5c3b('0xc6')],_0x167c7c[_0x5c3b('0x146')]);}}else if(_0x12de90&&_['isNil'](_0x12de90[_0x5c3b('0x148')])&&_0x1ff861[_0x5c3b('0x149')]&&_0x167c7c[_0x5c3b('0xc6')]===_0x167c7c[_0x5c3b('0xb5')]&&_[_0x5c3b('0x87')](_0x167c7c[_0x5c3b('0xf9')])&&_0x167c7c[_0x5c3b('0x146')]==='16'&&_0x167c7c[_0x5c3b('0x14a')]==='6'&&_['isUndefined'](_0x12de90[_0x5c3b('0x14b')])){if(_0x12de90['unlockAgent']){rpcDb[_0x5c3b('0x141')](_0x12de90[_0x5c3b('0x142')]);}if(_0x12de90['activeContact']){rpcDb[_0x5c3b('0x91')](_0x12de90[_0x5c3b('0x142')]);}_0x167c7c[_0x5c3b('0xf9')]='22';this[_0x5c3b('0xf6')](_0x12de90,_0x1ff861,_0x167c7c);}else if(_0x12de90&&_0x12de90[_0x5c3b('0x14b')]){if(_0x167c7c[_0x5c3b('0x146')]==='16'&&this[_0x5c3b('0x6e')][_0x167c7c[_0x5c3b('0xc6')]][_0x5c3b('0x7e')]){logger[_0x5c3b('0x5b')]('[syncHangup][talking][transfer]',_0x167c7c['linkedid'],_0x167c7c[_0x5c3b('0x146')],_0x5c3b('0xb6'),_0x1ff861['name'],_0x5c3b('0x73'),_0x1ff861[_0x5c3b('0x2b')]);this[_0x5c3b('0xa2')](_0x167c7c,_0x167c7c[_0x5c3b('0xc6')],_0x167c7c[_0x5c3b('0x146')]);}else if(this[_0x5c3b('0x6e')][_0x167c7c[_0x5c3b('0xc6')]][_0x5c3b('0x7e')]){logger[_0x5c3b('0x5b')](_0x5c3b('0x147'),_0x167c7c['linkedid'],_0x167c7c[_0x5c3b('0x146')],_0x5c3b('0xb6'),_0x1ff861[_0x5c3b('0x27')],_0x5c3b('0x73'),_0x1ff861[_0x5c3b('0x2b')]);this['callProgressDetectingCustomer'](_0x167c7c,_0x167c7c[_0x5c3b('0xc6')],_0x167c7c[_0x5c3b('0x146')]);}}};Preview[_0x5c3b('0x10')][_0x5c3b('0x1d')]=function(_0x44ab8e){if(this[_0x5c3b('0x6e')][_0x44ab8e[_0x5c3b('0xf5')]]&&_0x44ab8e[_0x5c3b('0xf5')]!==_0x44ab8e[_0x5c3b('0x14c')]){this[_0x5c3b('0xa2')](_0x44ab8e,_0x44ab8e['destlinkedid'],_0x44ab8e[_0x5c3b('0xec')]);}};Preview['prototype'][_0x5c3b('0x14d')]=function(_0x42b916){if(this[_0x5c3b('0x6e')][_0x42b916[_0x5c3b('0xc6')]]&&_0x42b916['linkedid']!==_0x42b916[_0x5c3b('0xb5')]&&!this[_0x5c3b('0x6e')][_0x42b916[_0x5c3b('0xc6')]][_0x5c3b('0x7e')]){if(_0x42b916[_0x5c3b('0x146')]==='1'){this[_0x5c3b('0xa2')](_0x42b916,_0x42b916[_0x5c3b('0xc6')],_0x42b916[_0x5c3b('0x146')]);}}};Preview[_0x5c3b('0x10')][_0x5c3b('0x14e')]=function(_0x394456,_0x4a9107,_0x1ee8b6){if(this['actions'][_0x394456]){if(_[_0x5c3b('0x87')](this[_0x5c3b('0x6e')][_0x394456][_0x5c3b('0x14f')])){this[_0x5c3b('0x6e')][_0x394456]['variables']={};}this['actions'][_0x394456][_0x5c3b('0x14f')][_0x4a9107]=_0x1ee8b6;}};Preview['prototype'][_0x5c3b('0x20')]=function(_0x1c3413){try{if(!_[_0x5c3b('0x87')](_0x1c3413)){if(ut['filterKey'](_[_0x5c3b('0x150')](_0x1c3413[_0x5c3b('0x151')])[0x0])){this['addVariable'](_0x1c3413[_0x5c3b('0xb5')],_[_0x5c3b('0x150')](_0x1c3413[_0x5c3b('0x151')])[0x0],_0x1c3413[_0x5c3b('0x152')]);}}}catch(_0x4d091d){logger[_0x5c3b('0x153')](_0x5c3b('0x154'),util[_0x5c3b('0x155')](_0x4d091d,{'showHidden':![],'depth':null}));}};Preview[_0x5c3b('0x10')][_0x5c3b('0x21')]=function(_0x51b642){if(_0x51b642){if(this[_0x5c3b('0x6e')][_0x51b642[_0x5c3b('0x156')]]){this['actions'][_0x51b642[_0x5c3b('0x156')]][_0x5c3b('0x14b')]=!![];}}};Preview['prototype'][_0x5c3b('0x23')]=function(_0x17ba18){if(_0x17ba18){if(this[_0x5c3b('0x6e')][_0x17ba18[_0x5c3b('0x157')]]){this[_0x5c3b('0x6e')][_0x17ba18[_0x5c3b('0x157')]]['transfer']=!![];}}};module[_0x5c3b('0x158')]=Preview;
\ No newline at end of file
+var _0xc80b=['buildObj','complete','outboundAnswerCallsDay','total','[16]','[callProgressDetectingCustomer][logAnswer]','[callProgressDetectingCustomer][logAnswerGlobal]','talktime','[syncHangup][talking][decrement]','BUSY','outboundBusyCallsDay','countbusyretry','Busy','custom:agentbusy','busy','[callProgressDetectingCustomer][logBusy]','[callProgressDetectingCustomer][logBusyGlobal]','dialBusyRetryFrequency','NOANSWER','countnoanswerretry','NoAnswer','custom:agentnoanswer','noanswer','[callProgressDetectingCustomer][logNoAnswer]','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','CONGESTION','countcongestionretry','Congestion','custom:agentcongestion','[callProgressDetectingCustomer][logCongestion]','[callProgressDetectingCustomer][logCongestionGlobal]','dialCongestionMaxRetry','CANCEL','AgentReject','custom:agentreject','agentreject','[callProgressDetectingCustomer][logAgentReject]','countagentrejectretry','dialAgentRejectRetryFrequency','ABANDONED','outboundAbandonedCallsDay','[callProgressDetectingCustomer][logAbandoned]','countabandonedetry','dialAbandonedMaxRety','countabandonedretry','dialAbandonedRetryFrequency','countmachineretry','cause-txt','[callProgressDetectingCustomer][hangupInAMD]','custom:amd','amd','[callProgressDetectingCustomer][machine]','[Dialer][decrementTalkink][no\x20Hangup][Preview]','dialstatus','[callProgressDetectingCustomer][logUnknown]','[callProgressDetectingCustomer][logUnknownGlobal]','[callProgressDetectingCustomer]','[originated][decrement][callProgressDetectingCustomer]','originated:\x20','callProgressDetectingAgent','isUndefined','object','reason','logAgent','createAgentHistory','[callProgressDetectingAgent][logNoSuch]','[callProgressDetectingAgent][logNoAnswer]','[callProgressDetectingAgent][logCongestion]','[callProgressDetectingAgent]','checkInBlack','Contact','phone','VoiceQueueId','lookAgent','isEmpty','\x20IdHopper:\x20','idContact','custom:agentcalled','called','logBlacklist','SIP/%s','reachable','execRun','unlock','getContactPreview','recallme','validateContact','isValid','checkIsBlackList','Contact.phone','Call\x20unsuccessful','[Preview][getContactPreview]','[Preview][validateContact][Empty\x20Contact]','[Preview][validateContact][Empty\x20Campaign]','[Preview][validateContact][Trunk\x20not\x20work]','\x20Trunk\x20is\x20not\x20active','\x20Trunk\x20Backup\x20is\x20not\x20active','Trunk\x20not\x20work','[Preview][validateContact][Campaign\x20Active]','\x20Not\x20Active','campaign\x20Name:\x20','Is\x20Valid','execCall','SIP/%s/%s%s','substring','trim','dialCutDigit','getCallerId','callerid','dialRandomLastDigitCallerIdNumber','getCallerIdRandom','originatecalleridname','extractCalleridName','addVariables','toLowerVariables','variablesAction','channelAgent','destconnectedlinenum','user:%s','user:agentconnect','accountcode','calleridnum','[originated][increment]','OriginateError','actionid','isFailure','response','unlockContact','rejected','Answer','[callProgressDetectingAgent][logAnswer]','syncHangup','[syncHangup][talking]','cause','callProgressDetectingCustomer','channelstate','transfer','[syncHangup][talking][cause]','destlinkedid','destuniqueid','addVariable','variables','filterKey','keys','variable','value','error','[syncVarSet][Preview]','transfertargetlinkedid','transfererlinkedid','util','lodash','bluebird','uuid','md5','ioredis','../../../config/environment','../../../config/logger','actionPreview','./rpcDb','./util/util','redis','defaults','socket.io-emitter','prototype','enqueue','tail','finally','sequence','campaignsPreview','voiceQueues','trunks','actions','agents','clockClearZombieChannels','originateresponse','syncOriginateResponse','bind','hangup','hanguprequest','syncHangupRequest','syncDialEnd','newexten','syncNewExten','syncVarSet','attendedtransfer','syncAttendedTransfer','syncBlindTransfer','loopCampaigns','strategy','answered','loggedIn','pTalking','sumBillable','sumDuration','type','abandoned','waiting','loggedInDb','dialActive','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundBlacklistCallsDay','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','message','originated','erlangCalls','erlangCallToSecond','erlangBusyFactor','startPredictive','startProgressive','Trunk','name','active','Interval','stringify','format','voice:queue:%s','info','[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event','voice_queue_channel:remove','emit','voice_queue_presence:remove','sendMessageOneNotActive','available','paused','NOT_ACTIVE','logger','[CampaignPreview]\x20Campaign\x20Queue:\x20','\x20is\x20not\x20active','\x20is\x20disactive','syncCampaigns','hasOwnProperty','dialMethod','booked','outbound','clearZombieChannels','preview','setMessage','isNil','[clearZombieChannels][talking]','Queue','queue','pTalking:\x20','dialAnswer','pick','Action','status','channel','catch','No\x20such\x20channel','updateOriginated','[clearZombieChannel]','decrementTalkink','loggerError','[Dialer][checkChannel][pTalking][Preview]','[Dialer][checkChannel][Preview]','[action]','size','recallMe','then','getDiff','dialRecallMeTimeout','Agent','voicePause','run','logger2','[RecallMe]','disableContact','starttime','YYYY-MM-DD\x20HH:mm:ss','logCustomer','RecallInQueue','rescheduleContactInQueue','createBody','createCustomerHistory','[HistoryDialRecallInQueue][historyCatch]','RecallFailedTimeout','[HistoryRecallClose]','createCustomerFinal','[getContactRecallMe]','IsNotLoggedIn','AGENTS_NOT_LOGGED','isActive','isTrunkReachable','TrunkBackup','TRUNK_IS_NOT_REACHABLE','ACTIVE','countglobal','totalGlobal','NoSuchNumber','custom:agentnosuchnumber','nosuchnumber','[callProgressDetectingCustomer][logNoSuch]','dialGlobalMaxRetry','cloneAction','Global','[callProgressDetectingCustomer][logNoSuchGlobal]','countnosuchnumberretry','dialNoSuchNumberMaxRetry','rescheduleContact','scheduledAt','unlockAgent','activeContact','linkedid','ANSWER','responsetime','[syncHangup][talking][increment]','uniqueid','\x20Queue','acw','custom:agentConnectPreview','buildAcw','custom:agentcomplete'];(function(_0x4aba66,_0x1d803d){var _0x3d7ebe=function(_0x37e689){while(--_0x37e689){_0x4aba66['push'](_0x4aba66['shift']());}};_0x3d7ebe(++_0x1d803d);}(_0xc80b,0x97));var _0xbc80=function(_0x33719e,_0x3c7537){_0x33719e=_0x33719e-0x0;var _0x5472b1=_0xc80b[_0x33719e];return _0x5472b1;};'use strict';var util=require(_0xbc80('0x0'));var _=require(_0xbc80('0x1'));var BPromise=require(_0xbc80('0x2'));var uuid=require(_0xbc80('0x3'));var moment=require('moment');var md5=require(_0xbc80('0x4'));var Redis=require(_0xbc80('0x5'));var config=require(_0xbc80('0x6'));var logger=require(_0xbc80('0x7'))('preview');var loggerAction=require(_0xbc80('0x7'))(_0xbc80('0x8'));var ami=require('../ami');var rpcDb=require(_0xbc80('0x9'));var Action=require('./action');var ut=require(_0xbc80('0xa'));config[_0xbc80('0xb')]=_[_0xbc80('0xc')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xbc80('0xd'))(new Redis(config[_0xbc80('0xb')]));var Sequence=function(){};Sequence[_0xbc80('0xe')][_0xbc80('0xf')]=function(_0x2c9da9){this['tail']=this[_0xbc80('0x10')]?this['tail'][_0xbc80('0x11')](_0x2c9da9):_0x2c9da9();};function Preview(_0x58a66d){this[_0xbc80('0x12')]=new Sequence();this[_0xbc80('0x13')]=_0x58a66d[_0xbc80('0x14')];this[_0xbc80('0x15')]=_0x58a66d[_0xbc80('0x15')];this[_0xbc80('0x16')]={};this[_0xbc80('0x17')]=_0x58a66d[_0xbc80('0x17')];this[_0xbc80('0x18')]=0x0;ami['on'](_0xbc80('0x19'),this[_0xbc80('0x1a')][_0xbc80('0x1b')](this));ami['on'](_0xbc80('0x1c'),this['syncHangup'][_0xbc80('0x1b')](this));ami['on'](_0xbc80('0x1d'),this[_0xbc80('0x1e')][_0xbc80('0x1b')](this));ami['on']('dialend',this[_0xbc80('0x1f')][_0xbc80('0x1b')](this));ami['on'](_0xbc80('0x20'),this[_0xbc80('0x21')][_0xbc80('0x1b')](this));ami['on']('varset',this[_0xbc80('0x22')][_0xbc80('0x1b')](this));ami['on'](_0xbc80('0x23'),this[_0xbc80('0x24')]['bind'](this));ami['on']('blindtransfer',this[_0xbc80('0x25')][_0xbc80('0x1b')](this));this[_0xbc80('0x26')](this[_0xbc80('0x13')]);}function emit(_0x411db0,_0x44b252,_0x462a7c){io['to'](_0x411db0)['emit'](_0x44b252,_0x462a7c);}function emitCampaignPreview(_0x2f8a81){if(_0x2f8a81['type']==='outbound'){var _0x589135={'id':_0x2f8a81['id'],'name':_0x2f8a81['name'],'strategy':_0x2f8a81[_0xbc80('0x27')],'answered':_0x2f8a81[_0xbc80('0x28')],'available':_0x2f8a81['available'],'loggedIn':_0x2f8a81[_0xbc80('0x29')],'pTalking':_0x2f8a81[_0xbc80('0x2a')],'sumBillable':_0x2f8a81[_0xbc80('0x2b')],'sumDuration':_0x2f8a81[_0xbc80('0x2c')],'sumHoldTime':_0x2f8a81['sumHoldTime']||0x0,'talking':_0x2f8a81['talking'],'total':_0x2f8a81['total'],'type':_0x2f8a81[_0xbc80('0x2d')],'unmanaged':_0x2f8a81['unmanaged'],'abandoned':_0x2f8a81[_0xbc80('0x2e')],'waiting':_0x2f8a81[_0xbc80('0x2f')],'loggedInDb':_0x2f8a81[_0xbc80('0x30')],'dialActive':_0x2f8a81[_0xbc80('0x31')],'dialMethod':_0x2f8a81['dialMethod'],'dialOriginateCallerIdName':_0x2f8a81[_0xbc80('0x32')],'dialOriginateCallerIdNumber':_0x2f8a81[_0xbc80('0x33')],'dialOriginateTimeout':_0x2f8a81[_0xbc80('0x34')],'dialPrefix':_0x2f8a81[_0xbc80('0x35')],'outboundAnswerAgiCallsDay':_0x2f8a81['outboundAnswerAgiCallsDay'],'outboundAnswerCallsDay':_0x2f8a81['outboundAnswerCallsDay'],'outboundBlacklistCallsDay':_0x2f8a81[_0xbc80('0x36')],'outboundBusyCallsDay':_0x2f8a81['outboundBusyCallsDay'],'outboundCongestionCallsDay':_0x2f8a81['outboundCongestionCallsDay'],'outboundDropCallsDayACS':_0x2f8a81['outboundDropCallsDayACS'],'outboundDropCallsDayCallersExit':_0x2f8a81['outboundDropCallsDayCallersExit'],'outboundDropCallsDayTimeout':_0x2f8a81[_0xbc80('0x37')],'outboundNoAnswerCallsDay':_0x2f8a81[_0xbc80('0x38')],'outboundNoSuchCallsDay':_0x2f8a81[_0xbc80('0x39')],'outboundOriginateFailureCallsDay':_0x2f8a81[_0xbc80('0x3a')],'outboundReCallsDay':_0x2f8a81[_0xbc80('0x3b')],'outboundRejectCallsDay':_0x2f8a81[_0xbc80('0x3c')],'outboundUnknownCallsDay':_0x2f8a81[_0xbc80('0x3d')],'outboundAbandonedCallsDay':_0x2f8a81['outboundAbandonedCallsDay'],'predictiveIntervalAnsweredCalls':_0x2f8a81[_0xbc80('0x3e')],'predictiveIntervalAvgHoldtime':_0x2f8a81[_0xbc80('0x3f')],'predictiveIntervalAvgTalktime':_0x2f8a81[_0xbc80('0x40')],'predictiveIntervalDroppedCallsCallersExit':_0x2f8a81[_0xbc80('0x41')],'predictiveIntervalDroppedCallsTimeout':_0x2f8a81[_0xbc80('0x42')],'predictiveIntervalErlangCalls':_0x2f8a81[_0xbc80('0x43')],'predictiveIntervalErlangCallsDroppedCalls':_0x2f8a81[_0xbc80('0x44')],'predictiveIntervalHitRate':_0x2f8a81['predictiveIntervalHitRate'],'predictiveIntervalMultiplicativeFactor':_0x2f8a81['predictiveIntervalMultiplicativeFactor'],'predictiveIntervalPauses':_0x2f8a81[_0xbc80('0x45')],'predictiveIntervalAvailable':_0x2f8a81[_0xbc80('0x46')],'predictiveIntervalTotalCalls':_0x2f8a81[_0xbc80('0x47')],'message':_0x2f8a81[_0xbc80('0x48')],'originated':_0x2f8a81[_0xbc80('0x49')],'erlangCalls':_0x2f8a81[_0xbc80('0x4a')],'erlangCallToSecond':_0x2f8a81[_0xbc80('0x4b')],'erlangAbandonmentRate':_0x2f8a81['erlangAbandonmentRate'],'erlangBusyFactor':_0x2f8a81[_0xbc80('0x4c')],'startPredictive':_0x2f8a81[_0xbc80('0x4d')],'startProgressive':_0x2f8a81[_0xbc80('0x4e')]};if(_0x2f8a81[_0xbc80('0x4f')]){_0x589135[_0xbc80('0x4f')]={'id':_0x2f8a81[_0xbc80('0x4f')]['id'],'name':_0x2f8a81[_0xbc80('0x4f')][_0xbc80('0x50')],'active':_0x2f8a81[_0xbc80('0x4f')][_0xbc80('0x51')],'callerid':_0x2f8a81['Trunk']['callerid']};}if(_0x2f8a81[_0xbc80('0x52')]){_0x589135[_0xbc80('0x52')]={'id':_0x2f8a81[_0xbc80('0x52')]['id'],'name':_0x2f8a81[_0xbc80('0x52')][_0xbc80('0x50')]};}var _0x43d599=md5(JSON[_0xbc80('0x53')](_0x589135));if(_0x2f8a81[_0xbc80('0x4')]!==_0x43d599){_0x2f8a81['md5']=_0x43d599;emit(util[_0xbc80('0x54')](_0xbc80('0x55'),_0x589135['name']),'voice_queue:save',_0x589135);}}}function emitVoiceQueueChannelRemove(_0xf02b91){logger[_0xbc80('0x56')](_0xbc80('0x57'),JSON[_0xbc80('0x53')](_0xf02b91));emit(util[_0xbc80('0x54')](_0xbc80('0x55'),_0xf02b91[_0xbc80('0x50')]),_0xbc80('0x58'),_0xf02b91);io[_0xbc80('0x59')](_0xbc80('0x5a'),_0xf02b91);}function notSendMessagesQueue(_0x5535f9){if(_0x5535f9['sendMessageOneNotActive']){if(_0x5535f9[_0xbc80('0x49')]===0x0&&_0x5535f9[_0xbc80('0x2a')]===0x0){_0x5535f9[_0xbc80('0x5b')]=![];_0x5535f9[_0xbc80('0x5c')]=0x0;_0x5535f9[_0xbc80('0x5d')]=0x0;_0x5535f9[_0xbc80('0x48')]=_0xbc80('0x5e');ut[_0xbc80('0x5f')](_0xbc80('0x60'),_0x5535f9[_0xbc80('0x50')]+_0xbc80('0x61'));}else{_0x5535f9[_0xbc80('0x48')]='IS_DISACTIVED';ut[_0xbc80('0x5f')](_0xbc80('0x60'),_0x5535f9[_0xbc80('0x50')]+_0xbc80('0x62'));}emitCampaignPreview(_0x5535f9);}}Preview['prototype'][_0xbc80('0x26')]=function(){var _0x30eeec=this;setInterval(function(){_0x30eeec[_0xbc80('0x63')]();},0x7cf);};Preview[_0xbc80('0xe')]['syncCampaigns']=function(){var _0x2a8fed=this[_0xbc80('0x13')];this[_0xbc80('0x18')]+=0x1;for(var _0x49b6c3 in _0x2a8fed){if(_0x2a8fed[_0xbc80('0x64')](_0x49b6c3)&&(_0x2a8fed[_0x49b6c3][_0xbc80('0x65')]==='preview'||_0x2a8fed[_0x49b6c3][_0xbc80('0x65')]===_0xbc80('0x66'))&&_0x2a8fed[_0x49b6c3]['type']===_0xbc80('0x67')){if(this[_0xbc80('0x18')]>0x7){this[_0xbc80('0x18')]=0x0;this[_0xbc80('0x68')]();}}if(_0x2a8fed[_0xbc80('0x64')](_0x49b6c3)&&_0x2a8fed[_0x49b6c3][_0xbc80('0x65')]===_0xbc80('0x69')&&_0x2a8fed[_0x49b6c3][_0xbc80('0x2d')]===_0xbc80('0x67')){if(_0x2a8fed[_0x49b6c3]['dialActive']){this[_0xbc80('0x6a')](_0x2a8fed[_0x49b6c3]);this['recallMe'](_0x2a8fed[_0x49b6c3]);}else{notSendMessagesQueue(_0x2a8fed[_0x49b6c3]);}}}};Preview['prototype']['clearZombieChannel']=function(_0x86a73){var _0x46876c=this;this[_0xbc80('0x12')][_0xbc80('0xf')](function(){if(!_[_0xbc80('0x6b')](_0x46876c[_0xbc80('0x16')][_0x86a73])){loggerAction[_0xbc80('0x56')](_0xbc80('0x6c'),_0x86a73,_0xbc80('0x6d'),_0x46876c[_0xbc80('0x16')][_0x86a73][_0xbc80('0x6e')],'originated:\x20',JSON[_0xbc80('0x53')](_0x46876c[_0xbc80('0x13')][_0x46876c[_0xbc80('0x16')][_0x86a73][_0xbc80('0x6e')]]['originated']),_0xbc80('0x6f'),JSON[_0xbc80('0x53')](_0x46876c['campaignsPreview'][_0x46876c[_0xbc80('0x16')][_0x86a73]['queue']][_0xbc80('0x2a')]),JSON[_0xbc80('0x53')](_0x46876c['actions'][_0x86a73][_0xbc80('0x70')]),JSON[_0xbc80('0x53')](_[_0xbc80('0x71')](_0x46876c[_0xbc80('0x16')][_0x86a73],['contactId','UserId','VoiceQueueId','ListId'])));return ami[_0xbc80('0x72')]({'action':_0xbc80('0x73'),'channel':_0x46876c['actions'][_0x86a73][_0xbc80('0x74')]})[_0xbc80('0x75')](function(_0x18b3d6){if(_0x18b3d6['message']===_0xbc80('0x76')){setTimeout(function(){if(_0x46876c[_0xbc80('0x16')][_0x86a73]){ut[_0xbc80('0x77')](_0x46876c[_0xbc80('0x13')][_0x46876c[_0xbc80('0x16')][_0x86a73][_0xbc80('0x6e')]],_0xbc80('0x78'));if(_0x46876c[_0xbc80('0x16')][_0x86a73]['dialAnswer']===!![]){ut[_0xbc80('0x79')](_0x46876c[_0xbc80('0x13')][_0x46876c[_0xbc80('0x16')][_0x86a73][_0xbc80('0x6e')]],'[clearZombieChannel]');ut[_0xbc80('0x7a')](_0xbc80('0x7b')+_0x86a73,_0x46876c[_0xbc80('0x16')][_0x86a73][_0xbc80('0x6e')]);}ut['loggerError'](_0xbc80('0x7c')+_0x86a73,_0x46876c[_0xbc80('0x16')][_0x86a73]['queue']);delete _0x46876c[_0xbc80('0x16')][_0x86a73];}},0x2328);}});}});};Preview['prototype'][_0xbc80('0x68')]=function(){var _0x2a5862=this;loggerAction[_0xbc80('0x56')](_0xbc80('0x7d'),_[_0xbc80('0x7e')](this[_0xbc80('0x16')]));for(var _0x16dac5 in this[_0xbc80('0x16')]){if(_0x2a5862['actions']['hasOwnProperty'](_0x16dac5)){_0x2a5862['clearZombieChannel'](_0x16dac5);}}};Preview[_0xbc80('0xe')][_0xbc80('0x7f')]=function(_0x27863c){var _0x5197c2=this;rpcDb['getContactRecallMe'](_0x27863c['id'],ut['agentReadyId'](this[_0xbc80('0x17')]))[_0xbc80('0x80')](function(_0x5c1a21){if(!_[_0xbc80('0x6b')](_0x5c1a21)){for(var _0x3f6922=0x0;_0x3f6922<_0x5c1a21['length'];_0x3f6922+=0x1){if(ut[_0xbc80('0x81')](_0x5c1a21[_0x3f6922]['scheduledat'])<_0x27863c[_0xbc80('0x82')]*0x3c){if(_0x5c1a21[_0x3f6922][_0xbc80('0x83')]&&!_0x5c1a21[_0x3f6922][_0xbc80('0x83')][_0xbc80('0x84')]){_0x5197c2[_0xbc80('0x85')](_0x5c1a21[_0x3f6922]['id'])['then'](ut[_0xbc80('0x86')]('[RecallMe]'))[_0xbc80('0x75')](ut[_0xbc80('0x86')](_0xbc80('0x87')));}else{rpcDb[_0xbc80('0x88')](_0x5c1a21[_0x3f6922]['id']);}}else{var _0x5cde19=new Action(_0x5c1a21[_0x3f6922],_0x27863c);_0x5cde19[_0xbc80('0x89')]=moment()[_0xbc80('0x54')](_0xbc80('0x8a'));_0x27863c[_0xbc80('0x3b')]+=0x1;ut[_0xbc80('0x8b')](_0x5cde19,0x17,_0xbc80('0x8c'));if(_0x27863c['dialRecallInQueue']){rpcDb[_0xbc80('0x8d')](ut[_0xbc80('0x8e')](_0x5c1a21[_0x3f6922]));rpcDb[_0xbc80('0x8f')](_0x5cde19,_0xbc80('0x90'));}else{ut['logCustomer'](_0x5cde19,0x16,_0xbc80('0x91'));rpcDb['createCustomerHistory'](_0x5cde19,_0xbc80('0x92'));rpcDb[_0xbc80('0x93')](_0x5cde19,_0xbc80('0x92'));}}}}})[_0xbc80('0x75')](ut[_0xbc80('0x86')](_0xbc80('0x94')));};Preview[_0xbc80('0xe')][_0xbc80('0x6a')]=function(_0x56bdd4){_0x56bdd4[_0xbc80('0x5b')]=!![];if(ut[_0xbc80('0x95')](_0x56bdd4[_0xbc80('0x29')])){_0x56bdd4[_0xbc80('0x48')]=_0xbc80('0x96');}else if(!ut[_0xbc80('0x97')](_0x56bdd4[_0xbc80('0x31')])){_0x56bdd4['message']=_0xbc80('0x5e');}else if(!this[_0xbc80('0x98')](_0x56bdd4[_0xbc80('0x4f')])){if(!this[_0xbc80('0x98')](_0x56bdd4[_0xbc80('0x99')])){_0x56bdd4['message']=_0xbc80('0x9a');}else{_0x56bdd4['message']=_0xbc80('0x9b');}}else{_0x56bdd4['message']=_0xbc80('0x9b');}emitCampaignPreview(_0x56bdd4);};Preview[_0xbc80('0xe')]['callProgressDetectingCustomer']=function(_0x4b2867,_0x54be74,_0x25614b){var _0x4ec78a=this;var _0x3aab1f=this[_0xbc80('0x16')][_0x54be74];var _0x3339fe=this['campaignsPreview'][_0x3aab1f[_0xbc80('0x6e')]];var _0x43824a;if(_0x3339fe){switch(_0x25614b){case'1':_0x3339fe[_0xbc80('0x39')]+=0x1;_0x3aab1f['countnosuchnumberretry']+=0x1;_0x3aab1f[_0xbc80('0x9c')]=ut[_0xbc80('0x9d')](_0x3aab1f);ut[_0xbc80('0x8b')](_0x3aab1f,0x0,_0xbc80('0x9e'));ami[_0xbc80('0x59')](_0xbc80('0x9f'),ut['buildObj'](_0x3aab1f,_0xbc80('0xa0')));rpcDb[_0xbc80('0x8f')](_0x3aab1f,_0xbc80('0xa1'));if(ut[_0xbc80('0x9d')](_0x3aab1f)>=_0x3339fe[_0xbc80('0xa2')]){_0x43824a=ut[_0xbc80('0xa3')](_0x3aab1f,0xf,_0xbc80('0xa4'));rpcDb[_0xbc80('0x93')](_0x43824a,_0xbc80('0xa5'));}else{if(_0x3aab1f[_0xbc80('0xa6')]>=_0x3339fe[_0xbc80('0xa7')]){rpcDb[_0xbc80('0x93')](_0x3aab1f,'[callProgressDetectingCustomer][logNoSuchGlobal]');}else{rpcDb[_0xbc80('0xa8')](ut[_0xbc80('0xa9')](_0x3aab1f,'countnosuchnumberretry',_0x3339fe['dialNoSuchNumberRetryFrequency']),_0x3aab1f[_0xbc80('0xaa')],_0x3aab1f[_0xbc80('0xab')]);}}delete this[_0xbc80('0x16')][_0x4b2867[_0xbc80('0xac')]];break;case _0xbc80('0xad'):var _0x1b1f41=moment()[_0xbc80('0x54')](_0xbc80('0x8a'));_0x3aab1f[_0xbc80('0xae')]=_0x1b1f41;_0x3aab1f['answertime']=_0x1b1f41;_0x3aab1f[_0xbc80('0x70')]=!![];_0x3339fe[_0xbc80('0x2a')]+=0x1;logger[_0xbc80('0x56')](_0xbc80('0xaf'),_0x3aab1f[_0xbc80('0xb0')],_0xbc80('0xb1'),_0x3339fe['name'],_0xbc80('0x6f'),_0x3339fe[_0xbc80('0x2a')]);ami[_0xbc80('0x59')]('custom:agentconnect',ut['buildObj'](_0x3aab1f,'connect',this[_0xbc80('0x13')][_0x3aab1f[_0xbc80('0x6e')]]));if(_0x3339fe[_0xbc80('0xb2')]){ami[_0xbc80('0x59')](_0xbc80('0xb3'),ut[_0xbc80('0xb4')](_0x3aab1f));}break;case'16':ami[_0xbc80('0x59')](_0xbc80('0xb5'),ut[_0xbc80('0xb6')](_0x3aab1f,_0xbc80('0xb7'),this[_0xbc80('0x13')][_0x3aab1f[_0xbc80('0x6e')]]));emitVoiceQueueChannelRemove(ut['buildObj'](_0x3aab1f,'complete'));_0x3339fe[_0xbc80('0xb8')]+=0x1;_0x3339fe[_0xbc80('0xb9')]+=0x1;_0x3339fe[_0xbc80('0x28')]+=0x1;ut[_0xbc80('0x79')](_0x3339fe,_0xbc80('0xba'));_0x3aab1f[_0xbc80('0x9c')]=ut[_0xbc80('0x9d')](_0x3aab1f);ut['logCustomer'](_0x3aab1f,0x4,'Answer');rpcDb[_0xbc80('0x8f')](_0x3aab1f,_0xbc80('0xbb'));rpcDb[_0xbc80('0x93')](_0x3aab1f,_0xbc80('0xbc'));rpcDb['crateCustomerReportQueue'](_0x3aab1f);_0x3339fe['sumDuration']+=_0x3aab1f[_0xbc80('0xbd')];_0x3339fe[_0xbc80('0x2b')]+=_0x3aab1f[_0xbc80('0xbd')];logger[_0xbc80('0x56')](_0xbc80('0xbe'),_0x3aab1f[_0xbc80('0xb0')],'\x20Queue',_0x3339fe[_0xbc80('0x50')],_0xbc80('0x6f'),_0x3339fe['pTalking']);delete this[_0xbc80('0x16')][_0x4b2867[_0xbc80('0xac')]];break;case _0xbc80('0xbf'):_0x3339fe[_0xbc80('0xc0')]+=0x1;_0x3aab1f[_0xbc80('0xc1')]+=0x1;_0x3aab1f[_0xbc80('0x9c')]=ut[_0xbc80('0x9d')](_0x3aab1f);ut['logCustomer'](_0x3aab1f,0x5,_0xbc80('0xc2'));ami['emit'](_0xbc80('0xc3'),ut['buildObj'](_0x3aab1f,_0xbc80('0xc4')));rpcDb['createCustomerHistory'](_0x3aab1f,_0xbc80('0xc5'));if(ut['totalGlobal'](_0x3aab1f)>=_0x3339fe['dialGlobalMaxRetry']){_0x43824a=ut[_0xbc80('0xa3')](_0x3aab1f,0xf,_0xbc80('0xa4'));rpcDb['createCustomerFinal'](_0x43824a,_0xbc80('0xc6'));}else{if(_0x3aab1f[_0xbc80('0xc1')]>=_0x3339fe['dialBusyMaxRetry']){rpcDb['createCustomerFinal'](_0x3aab1f,_0xbc80('0xc5'));}else{rpcDb[_0xbc80('0xa8')](ut[_0xbc80('0xa9')](_0x3aab1f,_0xbc80('0xc1'),_0x3339fe[_0xbc80('0xc7')]),_0x3aab1f[_0xbc80('0xaa')],_0x3aab1f['activeContact']);}}break;case _0xbc80('0xc8'):_0x3339fe[_0xbc80('0x38')]+=0x1;_0x3aab1f[_0xbc80('0xc9')]+=0x1;_0x3aab1f[_0xbc80('0x9c')]=ut[_0xbc80('0x9d')](_0x3aab1f);ut[_0xbc80('0x8b')](_0x3aab1f,0x3,_0xbc80('0xca'));ami[_0xbc80('0x59')](_0xbc80('0xcb'),ut[_0xbc80('0xb6')](_0x3aab1f,_0xbc80('0xcc')));rpcDb[_0xbc80('0x8f')](_0x3aab1f,_0xbc80('0xcd'));if(ut[_0xbc80('0x9d')](_0x3aab1f)>=_0x3339fe[_0xbc80('0xa2')]){_0x43824a=ut[_0xbc80('0xa3')](_0x3aab1f,0xf,_0xbc80('0xa4'));rpcDb[_0xbc80('0x93')](_0x43824a,'[callProgressDetectingCustomer][logNoAnswerGlobal]');}else{if(_0x3aab1f[_0xbc80('0xc9')]>=_0x3339fe[_0xbc80('0xce')]){rpcDb[_0xbc80('0x93')](_0x3aab1f,_0xbc80('0xcd'));}else{rpcDb['rescheduleContact'](ut[_0xbc80('0xa9')](_0x3aab1f,_0xbc80('0xc9'),_0x3339fe[_0xbc80('0xcf')]),_0x3aab1f[_0xbc80('0xaa')],_0x3aab1f[_0xbc80('0xab')]);}}break;case _0xbc80('0xd0'):_0x3339fe['outboundCongestionCallsDay']+=0x1;_0x3aab1f[_0xbc80('0xd1')]+=0x1;_0x3aab1f['countglobal']=ut['totalGlobal'](_0x3aab1f);ut[_0xbc80('0x8b')](_0x3aab1f,0x8,_0xbc80('0xd2'));ami['emit'](_0xbc80('0xd3'),ut[_0xbc80('0xb6')](_0x3aab1f,'congestion'));rpcDb[_0xbc80('0x8f')](_0x3aab1f,_0xbc80('0xd4'));if(ut[_0xbc80('0x9d')](_0x3aab1f)>=_0x3339fe[_0xbc80('0xa2')]){_0x43824a=ut[_0xbc80('0xa3')](_0x3aab1f,0xf,_0xbc80('0xa4'));rpcDb['createCustomerFinal'](_0x43824a,_0xbc80('0xd5'));}else{if(_0x3aab1f[_0xbc80('0xd1')]>=_0x3339fe[_0xbc80('0xd6')]){rpcDb['createCustomerFinal'](_0x3aab1f,_0xbc80('0xd4'));}else{rpcDb['rescheduleContact'](ut[_0xbc80('0xa9')](_0x3aab1f,_0xbc80('0xd1'),_0x3339fe[_0xbc80('0xc7')]),_0x3aab1f['unlockAgent'],_0x3aab1f['activeContact']);}}break;case _0xbc80('0xd7'):_0x3339fe[_0xbc80('0x3c')]+=0x1;_0x3aab1f['countagentrejectretry']+=0x1;_0x3aab1f['countglobal']=ut['totalGlobal'](_0x3aab1f);ut[_0xbc80('0x8b')](_0x3aab1f,0x14,_0xbc80('0xd8'));ami[_0xbc80('0x59')](_0xbc80('0xd9'),ut[_0xbc80('0xb6')](_0x3aab1f,_0xbc80('0xda')));rpcDb[_0xbc80('0x8f')](_0x3aab1f,'[syncHangupRequest][logAgentReject]');if(ut[_0xbc80('0x9d')](_0x3aab1f)>=_0x3339fe[_0xbc80('0xa2')]){_0x43824a=ut['cloneAction'](_0x3aab1f,0x14,_0xbc80('0xd8'));rpcDb[_0xbc80('0x93')](_0x43824a,_0xbc80('0xdb'));}else{if(_0x3aab1f[_0xbc80('0xdc')]>=_0x3339fe['dialAgentRejectMaxRetry']){rpcDb[_0xbc80('0x93')](_0x3aab1f,_0xbc80('0xdb'));}else{rpcDb[_0xbc80('0xa8')](ut[_0xbc80('0xa9')](_0x3aab1f,_0xbc80('0xdc'),_0x3339fe[_0xbc80('0xdd')]),_0x3aab1f[_0xbc80('0xaa')],_0x3aab1f[_0xbc80('0xab')]);}}break;case _0xbc80('0xde'):_0x3339fe[_0xbc80('0xdf')]+=0x1;_0x3aab1f['countabandonedretry']+=0x1;_0x3aab1f[_0xbc80('0x9c')]=ut[_0xbc80('0x9d')](_0x3aab1f);ut[_0xbc80('0x8b')](_0x3aab1f,0xb,'Abandoned');rpcDb[_0xbc80('0x8f')](_0x3aab1f,_0xbc80('0xe0'));if(ut[_0xbc80('0x9d')](_0x3aab1f)>=_0x3339fe[_0xbc80('0xa2')]){_0x43824a=ut[_0xbc80('0xa3')](_0x3aab1f,0xf,'Global');rpcDb['createCustomerFinal'](_0x43824a,_0xbc80('0xe0'));}else{if(_0x3aab1f[_0xbc80('0xe1')]>=_0x3339fe[_0xbc80('0xe2')]){rpcDb[_0xbc80('0x93')](_0x3aab1f,_0xbc80('0xe0'));}else{rpcDb[_0xbc80('0xa8')](ut[_0xbc80('0xa9')](_0x3aab1f,_0xbc80('0xe3'),_0x3339fe[_0xbc80('0xe4')]),_0x3aab1f['unlockAgent'],_0x3aab1f[_0xbc80('0xab')]);}}break;case'18':_0x3339fe[_0xbc80('0x3d')]+=0x1;_0x3aab1f[_0xbc80('0xe5')]+=0x1;_0x3aab1f[_0xbc80('0x9c')]=ut['totalGlobal'](_0x3aab1f);ut['logCustomer'](_0x3aab1f,0x12,_0x4b2867[_0xbc80('0xe6')]||_0x4b2867['dialstatus']);ami[_0xbc80('0x59')]('custom:amd',ut[_0xbc80('0xb6')](_0x3aab1f,'amd'));rpcDb[_0xbc80('0x8f')](_0x3aab1f,'[callProgressDetectingCustomer][hangupInAMD]');if(ut[_0xbc80('0x9d')](_0x3aab1f)>=_0x3339fe['dialGlobalMaxRetry']){_0x43824a=ut['cloneAction'](_0x3aab1f,0xf,_0xbc80('0xa4'));rpcDb[_0xbc80('0x93')](_0x43824a,_0xbc80('0xe7'));}else{rpcDb[_0xbc80('0x93')](_0x3aab1f,_0xbc80('0xe7'));}delete this[_0xbc80('0x16')][_0x4b2867[_0xbc80('0xac')]];break;case'19':_0x3339fe[_0xbc80('0x3d')]+=0x1;_0x3aab1f[_0xbc80('0x9c')]=ut[_0xbc80('0x9d')](_0x3aab1f);ut[_0xbc80('0x8b')](_0x3aab1f,0x13,_0x4b2867[_0xbc80('0xe6')]||_0x4b2867['dialstatus']);ami[_0xbc80('0x59')](_0xbc80('0xe8'),ut['buildObj'](_0x3aab1f,_0xbc80('0xe9')));rpcDb[_0xbc80('0x8f')](_0x3aab1f,_0xbc80('0xea'));if(ut[_0xbc80('0x9d')](_0x3aab1f)>=_0x3339fe['dialGlobalMaxRetry']){_0x43824a=ut[_0xbc80('0xa3')](_0x3aab1f,0xf,_0xbc80('0xa4'));rpcDb[_0xbc80('0x93')](_0x43824a,_0xbc80('0xea'));}else{rpcDb[_0xbc80('0x93')](_0x3aab1f,_0xbc80('0xea'));}delete this[_0xbc80('0x16')][_0x4b2867['linkedid']];break;default:if(_0x3aab1f[_0xbc80('0x70')]){ut['decrementTalkink'](_0x3339fe,'[default]');ut[_0xbc80('0x7a')](_0xbc80('0xeb')+_0x3339fe['name'],_0x4b2867);}_0x3339fe['outboundUnknownCallsDay']+=0x1;_0x3aab1f[_0xbc80('0x9c')]=ut[_0xbc80('0x9d')](_0x3aab1f);ut[_0xbc80('0x8b')](_0x3aab1f,0xc,_0x4b2867[_0xbc80('0xe6')]||_0x4b2867[_0xbc80('0xec')]);rpcDb[_0xbc80('0x8f')](_0x3aab1f,_0xbc80('0xed'));if(ut[_0xbc80('0x9d')](_0x3aab1f)>=_0x3339fe[_0xbc80('0xa2')]){_0x43824a=ut[_0xbc80('0xa3')](_0x3aab1f,0xf,_0xbc80('0xa4'));rpcDb[_0xbc80('0x93')](_0x43824a,_0xbc80('0xee'));}else{rpcDb[_0xbc80('0x93')](_0x3aab1f,_0xbc80('0xee'));}delete this[_0xbc80('0x16')][_0x4b2867[_0xbc80('0xac')]];}if(!(_0x3aab1f['dialAnswer']&&_0x25614b==='16')){ut[_0xbc80('0x77')](_0x3339fe,_0xbc80('0xef'));logger['info'](_0xbc80('0xf0'),_0x3aab1f[_0xbc80('0xb0')],_0xbc80('0xb1'),_0x3339fe[_0xbc80('0x50')],_0xbc80('0xf1'),_0x3339fe[_0xbc80('0x49')]);}if(_0x25614b!=='ANSWER'){delete this['actions'][_0x4b2867[_0xbc80('0xac')]];delete this['actions'][_0x4b2867['destlinkedid']];}}};Preview[_0xbc80('0xe')][_0xbc80('0xf2')]=function(_0x15fcaa,_0x5e48fe,_0x1356a9){if(_[_0xbc80('0xf3')](_0x5e48fe)&&_0xbc80('0xf4')!==typeof _0x5e48fe){return;}if(_['isUndefined'](_0x1356a9)&&_0xbc80('0xf4')!==typeof _0x1356a9){return;}switch(_0x1356a9[_0xbc80('0xf5')]){case'0':ut[_0xbc80('0xf6')](_0x15fcaa,0x0,_0xbc80('0x9e'));rpcDb[_0xbc80('0xf7')](_0x15fcaa,_0xbc80('0xf8'));break;case'3':ut[_0xbc80('0xf6')](_0x15fcaa,0x3,'NoAnswer');rpcDb['createAgentHistory'](_0x15fcaa,_0xbc80('0xf9'));break;case'5':ut['logAgent'](_0x15fcaa,0x5,_0xbc80('0xc2'));rpcDb[_0xbc80('0xf7')](_0x15fcaa,'[callProgressDetectingAgent][logBusy]');break;case'8':ut[_0xbc80('0xf6')](_0x15fcaa,0x8,_0xbc80('0xd2'));rpcDb['createAgentHistory'](_0x15fcaa,_0xbc80('0xfa'));break;case'22':ut[_0xbc80('0xf6')](_0x15fcaa,0x16,'AnswerAGI');rpcDb['createAgentHistory'](_0x15fcaa,'[callProgressDetectingAgent][logAnswerAGI]');break;default:ut['logAgent'](_0x15fcaa,0xc,_0x1356a9[_0xbc80('0xf5')]);rpcDb[_0xbc80('0xf7')](_0x15fcaa,_0xbc80('0xfa'));}ut[_0xbc80('0x77')](_0x5e48fe,_0xbc80('0xfb'));logger['info']('[originated][decrement][callProgressDetectingAgent]',_0x15fcaa[_0xbc80('0xb0')],_0xbc80('0xb1'),_0x5e48fe['name'],_0xbc80('0xf1'),_0x5e48fe[_0xbc80('0x49')]);delete this[_0xbc80('0x16')][_0x15fcaa[_0xbc80('0xb0')]];};Preview['prototype'][_0xbc80('0xfc')]=function(_0xf3b26,_0x502e57,_0x16b8a3,_0x18f419,_0x840a0){var _0x1fc9d2=this;return new BPromise(function(_0x448500,_0x24fba7){if(_['isNil'](_0x502e57)||_[_0xbc80('0x6b')](_0x502e57[_0xbc80('0xfd')])||_[_0xbc80('0x6b')](_0x502e57[_0xbc80('0xfd')][_0xbc80('0xfe')])||_['isNil'](_0x502e57[_0xbc80('0xff')])){_0x24fba7(ut[_0xbc80('0x48')]('Contact\x20is\x20undefined',_0x18f419,_0x840a0));return;}var _0x265fec=uuid['v4']();var _0x37acb7=_0x1fc9d2[_0xbc80('0x13')][_0x502e57[_0xbc80('0x6d')][_0xbc80('0x50')]];var _0x25b927=_0x16b8a3?_0x1fc9d2[_0xbc80('0x17')][_0x16b8a3]['id']:undefined;_0x1fc9d2[_0xbc80('0x16')][_0x265fec]=new Action(_0x502e57,_0x37acb7,_0x265fec,_0x16b8a3,_0x25b927);var _0x33a416=_0x1fc9d2[_0xbc80('0x16')][_0x265fec];_0x33a416[_0xbc80('0xaa')]=_0x18f419;_0x33a416['activeContact']=_0x840a0;_0x33a416[_0xbc80('0x100')]=_0x16b8a3;if(_[_0xbc80('0x101')](_0xf3b26)){_0x1fc9d2['execCall'](_0x33a416,_0x37acb7,_0x502e57,_0x16b8a3)['then'](function(_0x1b2881){logger[_0xbc80('0x56')]('[Preview][execCall][success]','Queue:\x20'+_0x33a416[_0xbc80('0x6e')]+_0xbc80('0x102')+_0x33a416[_0xbc80('0x103')],JSON[_0xbc80('0x53')](_0x1b2881));ami[_0xbc80('0x59')](_0xbc80('0x104'),ut[_0xbc80('0xb6')](_0x33a416,_0xbc80('0x105'),_0x1fc9d2['campaignsPreview'][_0x33a416['queue']]));_0x448500(ut[_0xbc80('0x48')]('Calling'));})[_0xbc80('0x75')](function(_0x337d32){ut[_0xbc80('0x5f')]('[Preview][execCall][failure]',_0x337d32);_0x24fba7(ut[_0xbc80('0x48')]('Call\x20failed',_0x18f419,_0x840a0));});}else{_0x37acb7[_0xbc80('0x36')]+=0x1;ut[_0xbc80('0x106')](_0x33a416);rpcDb['createHistory'](_0x33a416,'[Blacklist][error]');delete _0x1fc9d2[_0xbc80('0x16')][_0x265fec];_0x24fba7(ut[_0xbc80('0x48')]('Contact\x20in\x20black\x20List',_0x18f419,_0x840a0));}});};Preview[_0xbc80('0xe')][_0xbc80('0x98')]=function(_0x4fd3a0){return!_['isNil'](_0x4fd3a0)&&!_[_0xbc80('0x6b')](_0x4fd3a0[_0xbc80('0x50')])&&!_['isNil'](_0x4fd3a0[_0xbc80('0x51')])&&_0x4fd3a0[_0xbc80('0x51')]&&!_[_0xbc80('0x6b')](this[_0xbc80('0x15')][util[_0xbc80('0x54')]('SIP/%s',_0x4fd3a0[_0xbc80('0x50')])])&&!_[_0xbc80('0x6b')](this[_0xbc80('0x15')][util['format']('SIP/%s',_0x4fd3a0[_0xbc80('0x50')])][_0xbc80('0x73')])&&(this['trunks'][util[_0xbc80('0x54')](_0xbc80('0x107'),_0x4fd3a0[_0xbc80('0x50')])][_0xbc80('0x73')]===_0xbc80('0x108')||this[_0xbc80('0x15')][util['format'](_0xbc80('0x107'),_0x4fd3a0[_0xbc80('0x50')])]['status']==='unmonitored');};Preview['prototype'][_0xbc80('0x85')]=function(_0x106b44,_0x4dc6ee){var _0x195ee6=this;return new BPromise(function(_0x1d60c4,_0x1344a3){_0x195ee6[_0xbc80('0x109')](_0x106b44,_0x4dc6ee)[_0xbc80('0x80')](function(_0x58f8a0){_0x1d60c4(_[_0xbc80('0x71')](_0x58f8a0,[_0xbc80('0x48')]));})[_0xbc80('0x75')](function(_0x47a9f1){if(_0x47a9f1[_0xbc80('0x10a')]){rpcDb['unlockContact'](_0x106b44);}if(_0x47a9f1['active']){rpcDb[_0xbc80('0x88')](_0x106b44);}_0x1344a3(_['pick'](_0x47a9f1,[_0xbc80('0x48')]));});});};Preview[_0xbc80('0xe')][_0xbc80('0x109')]=function(_0x52ccb4,_0x219741){var _0x3b12c5=this;return new BPromise(function(_0x4da303,_0x296497){var _0x30b4ee,_0x2deda9;rpcDb[_0xbc80('0x10b')](_0x52ccb4)['then'](function(_0xaee27a){if(!_[_0xbc80('0x6b')](_0xaee27a[0x0])){_0x2deda9=_0xaee27a[0x0][_0xbc80('0x10c')]?![]:!![];_0x30b4ee=_0xaee27a[0x0]['recallme']?!![]:![];_0x30b4ee=_0x219741?!![]:_0x30b4ee;}var _0x17d9ad=_0x3b12c5[_0xbc80('0x10d')](_0xaee27a);if(_0x17d9ad[_0xbc80('0x10e')]){rpcDb[_0xbc80('0x10f')](_[_0xbc80('0x71')](_0xaee27a[0x0],[_0xbc80('0xff'),_0xbc80('0x110')]))[_0xbc80('0x80')](function(_0x12fc7b){_0x3b12c5[_0xbc80('0xfc')](_0x12fc7b,_0xaee27a[0x0],_0x219741,_0x2deda9,_0x30b4ee)[_0xbc80('0x80')](function(_0x44d6b2){_0x4da303(_0x44d6b2);})[_0xbc80('0x75')](function(_0x1e4d9e){_0x296497(_0x1e4d9e);});})[_0xbc80('0x75')](function(_0x4f89e0){ut['logger']('[Preview][checkIsBlackList]',_0x4f89e0);_0x296497(ut[_0xbc80('0x48')](_0xbc80('0x111'),_0x2deda9,_0x30b4ee));});}else{_0x296497(ut[_0xbc80('0x48')](_0x17d9ad[_0xbc80('0x48')],_0x2deda9,_0x30b4ee));}})['catch'](function(_0x4c60de){ut[_0xbc80('0x5f')](_0xbc80('0x112'),_0x4c60de);_0x296497(ut[_0xbc80('0x48')](_0xbc80('0x111'),![],!![]));});});};Preview[_0xbc80('0xe')]['validateContact']=function(_0x7cd0b3){if(_[_0xbc80('0x6b')](_0x7cd0b3)||_[_0xbc80('0x101')](_0x7cd0b3)||!_[_0xbc80('0x6b')](_0x7cd0b3[0x0][_0xbc80('0x83')])&&_[_0xbc80('0x6b')](_0x7cd0b3[0x0][_0xbc80('0x83')]['name'])){ut['logger'](_0xbc80('0x113'),_0x7cd0b3);return{'isValid':![],'message':'Empty\x20Contact'};}var _0x5b7e12=this[_0xbc80('0x13')][_0x7cd0b3[0x0][_0xbc80('0x6d')][_0xbc80('0x50')]];_0x5b7e12[_0xbc80('0x48')]=_0xbc80('0x9b');if(_[_0xbc80('0x6b')](_0x5b7e12)){ut['logger'](_0xbc80('0x114'),_0x5b7e12);return{'isValid':![],'message':'Empty\x20Campaign'};}if(!this[_0xbc80('0x98')](_0x5b7e12[_0xbc80('0x4f')])){ut[_0xbc80('0x5f')](_0xbc80('0x115'),'campaign\x20Name:\x20'+_0x5b7e12[_0xbc80('0x50')]+_0xbc80('0x116'));if(!this[_0xbc80('0x98')](_0x5b7e12[_0xbc80('0x99')])){ut[_0xbc80('0x5f')](_0xbc80('0x115'),_0x5b7e12[_0xbc80('0x50')]+_0xbc80('0x117'));return{'isValid':![],'message':_0xbc80('0x118')};}}if(!ut[_0xbc80('0x97')](_0x5b7e12[_0xbc80('0x31')])){ut[_0xbc80('0x5f')](_0xbc80('0x119'),_0x5b7e12[_0xbc80('0x50')]+_0xbc80('0x11a'));return{'isValid':![],'message':_0xbc80('0x11b')+_0x5b7e12[_0xbc80('0x50')]+_0xbc80('0x11a')};}return{'isValid':!![],'message':_0xbc80('0x11c')};};Preview[_0xbc80('0xe')][_0xbc80('0x11d')]=function(_0x31315d,_0x318beb,_0x28c686,_0x226558){var _0x1df8be=this;return new BPromise(function(_0x4bd9f9,_0x24d4d4){var _0x11bb03=_0x31315d['uniqueid'];var _0x504a7b=_0x1df8be[_0xbc80('0x98')](_0x318beb['Trunk'])?util[_0xbc80('0x54')](_0xbc80('0x11e'),_0x318beb[_0xbc80('0x4f')][_0xbc80('0x50')],_[_0xbc80('0x6b')](_0x318beb[_0xbc80('0x35')])?'':_0x318beb['dialPrefix']['trim']()||'',_0x318beb['dialCutDigit']>0x0?_0x28c686['Contact']['phone'][_0xbc80('0x11f')](_0x318beb['dialCutDigit']):_0x28c686['Contact'][_0xbc80('0xfe')]):util[_0xbc80('0x54')](_0xbc80('0x11e'),_[_0xbc80('0x6b')](_0x318beb[_0xbc80('0x99')])?_0x318beb['Trunk']['name']:_0x318beb[_0xbc80('0x99')][_0xbc80('0x50')],_[_0xbc80('0x6b')](_0x318beb['dialPrefix'])?'':_0x318beb[_0xbc80('0x35')][_0xbc80('0x120')]()||'',_0x318beb[_0xbc80('0x121')]>0x0?_0x28c686['Contact']['phone'][_0xbc80('0x11f')](_0x318beb[_0xbc80('0x121')]):_0x28c686[_0xbc80('0xfd')][_0xbc80('0xfe')]);var _0x4c9dda=_0x1df8be[_0xbc80('0x98')](_0x318beb[_0xbc80('0x4f')])?ut[_0xbc80('0x122')](_0x318beb['Trunk'][_0xbc80('0x123')],_0x318beb['dialOriginateCallerIdName'],_0x318beb[_0xbc80('0x124')]>0x0?ut['getCallerIdRandom'](_0x318beb[_0xbc80('0x33')],_0x318beb[_0xbc80('0x124')]):_0x318beb[_0xbc80('0x33')]):ut[_0xbc80('0x122')](_[_0xbc80('0x6b')](_0x318beb[_0xbc80('0x99')])?_0x318beb[_0xbc80('0x4f')][_0xbc80('0x123')]:_0x318beb[_0xbc80('0x99')]['callerid'],_0x318beb[_0xbc80('0x32')],_0x318beb[_0xbc80('0x124')]>0x0?ut[_0xbc80('0x125')](_0x318beb['dialOriginateCallerIdNumber'],_0x318beb[_0xbc80('0x124')]):_0x318beb[_0xbc80('0x33')]);if(_0x4c9dda){_0x31315d[_0xbc80('0x126')]=ut[_0xbc80('0x127')](_0x4c9dda);_0x31315d['originatecalleridnum']=ut['extractCalleridNumber'](_0x4c9dda);}var _0x112272=ut[_0xbc80('0x128')](_0x318beb,_0x28c686,_0x504a7b,_0x4c9dda,_0x11bb03,_0x31315d);_['merge'](_0x31315d,ut[_0xbc80('0x129')](_0x112272));_0x31315d['starttime']=moment()['format'](_0xbc80('0x8a'));ami[_0xbc80('0x72')](ut[_0xbc80('0x12a')](_0x31315d,_0x318beb,_0x112272,_0x31315d[_0xbc80('0xab')],_0x226558))[_0xbc80('0x80')](function(_0x58c71d){var _0x339af9=_0x31315d[_0xbc80('0x12b')];if(!_[_0xbc80('0x6b')](_0x339af9)){if(!_['isNil'](_0x1df8be['agents'][_0x339af9])){_0x1df8be['agents'][_0x339af9][_0xbc80('0x12c')]=_0x31315d['calleridnum'];emit(util[_0xbc80('0x54')](_0xbc80('0x12d'),_0x1df8be[_0xbc80('0x17')][_0x339af9]['name']),_0xbc80('0x12e'),{'destaccountcode':_0x1df8be[_0xbc80('0x17')][_0x339af9][_0xbc80('0x12f')],'destconnectedlinenum':_0x31315d[_0xbc80('0x130')]});}}_0x318beb[_0xbc80('0x49')]+=0x1;logger[_0xbc80('0x56')](_0xbc80('0x131'),_0x11bb03,'\x20Queue',_0x318beb[_0xbc80('0x50')],'originated:\x20',_0x318beb[_0xbc80('0x49')]);_0x4bd9f9(_0x58c71d);})['catch'](function(_0x34b21e){ut[_0xbc80('0xf6')](_0x31315d,0xe,_0xbc80('0x132'));rpcDb[_0xbc80('0xf7')](_0x31315d,'[originateFailure][logOriginateFailure]');_0x24d4d4(_0x34b21e);});});};Preview[_0xbc80('0xe')]['syncNewExten']=function(_0x4f445c){if(this[_0xbc80('0x16')][_0x4f445c[_0xbc80('0xac')]]){this['actions'][_0x4f445c[_0xbc80('0xac')]][_0xbc80('0x74')]=_0x4f445c['channel'];}};Preview[_0xbc80('0xe')][_0xbc80('0x1a')]=function(_0x59b4ec){var _0x27ac69=this;var _0x135568=this[_0xbc80('0x16')][_0x59b4ec[_0xbc80('0x133')]];if(_0x135568){if(_0x135568['lookAgent']&&this[_0xbc80('0x17')][_0x135568[_0xbc80('0x100')]]){ut['logLookAgent'](_0x135568,this[_0xbc80('0x17')][_0x135568[_0xbc80('0x100')]]['name'],this['agents'][_0x135568['lookAgent']]['id']);}var _0x4e1146=_['clone'](_0x135568);_0x4e1146['responsetime']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');var _0x73ecc4=_0x27ac69[_0xbc80('0x13')][_0x135568[_0xbc80('0x6e')]];if(ut[_0xbc80('0x134')](_0x59b4ec[_0xbc80('0x135')])){if(_0x135568[_0xbc80('0xaa')]){rpcDb[_0xbc80('0x136')](_0x135568['idContact']);}if(_0x135568[_0xbc80('0xab')]){rpcDb['disableContact'](_0x135568[_0xbc80('0x103')]);}ami[_0xbc80('0x59')]('custom:agentringnoanswer',ut[_0xbc80('0xb6')](_0x135568,_0xbc80('0x137'),this[_0xbc80('0x13')][_0x135568[_0xbc80('0x6e')]]));this[_0xbc80('0xf2')](_0x4e1146,_0x73ecc4,_0x59b4ec);}else{_0x135568[_0xbc80('0x89')]=moment()[_0xbc80('0x54')](_0xbc80('0x8a'));ut[_0xbc80('0xf6')](_0x4e1146,0x4,_0xbc80('0x138'));rpcDb[_0xbc80('0xf7')](_0x4e1146,_0xbc80('0x139'));}}};Preview['prototype'][_0xbc80('0x13a')]=function(_0x527269){var _0x33e206=this;var _0x3142cc=this[_0xbc80('0x16')][_0x527269[_0xbc80('0xac')]];var _0x339fdd;if(_0x3142cc){_0x339fdd=this[_0xbc80('0x13')][_0x3142cc[_0xbc80('0x6e')]];logger[_0xbc80('0x56')](_0xbc80('0x13b'),_0x527269[_0xbc80('0xac')],_0xbc80('0xb1'),_0x339fdd[_0xbc80('0x50')],'pTalking:\x20',_0x339fdd['pTalking']);}if(this[_0xbc80('0x16')][_0x527269['linkedid']]&&_0x527269[_0xbc80('0xac')]!==_0x527269['uniqueid']){if(_0x527269[_0xbc80('0x13c')]==='16'&&this[_0xbc80('0x16')][_0x527269[_0xbc80('0xac')]]['dialAnswer']){this[_0xbc80('0x13d')](_0x527269,_0x527269[_0xbc80('0xac')],_0x527269[_0xbc80('0x13c')]);}else if(this[_0xbc80('0x16')][_0x527269[_0xbc80('0xac')]][_0xbc80('0x70')]){logger[_0xbc80('0x56')]('[syncHangup][talking][cause]',_0x527269[_0xbc80('0xac')],_0x527269['cause'],_0xbc80('0xb1'),_0x339fdd['name'],_0xbc80('0x6f'),_0x339fdd['pTalking']);this[_0xbc80('0x13d')](_0x527269,_0x527269[_0xbc80('0xac')],_0x527269[_0xbc80('0x13c')]);}}else if(_0x3142cc&&_[_0xbc80('0x6b')](_0x3142cc['statedesc'])&&_0x339fdd['dialQueueProject']&&_0x527269['linkedid']===_0x527269[_0xbc80('0xb0')]&&_[_0xbc80('0x6b')](_0x527269[_0xbc80('0xf5')])&&_0x527269[_0xbc80('0x13c')]==='16'&&_0x527269[_0xbc80('0x13e')]==='6'&&_[_0xbc80('0xf3')](_0x3142cc[_0xbc80('0x13f')])){if(_0x3142cc[_0xbc80('0xaa')]){rpcDb[_0xbc80('0x136')](_0x3142cc[_0xbc80('0x103')]);}if(_0x3142cc['activeContact']){rpcDb[_0xbc80('0x88')](_0x3142cc['idContact']);}_0x527269[_0xbc80('0xf5')]='22';this[_0xbc80('0xf2')](_0x3142cc,_0x339fdd,_0x527269);}else if(_0x3142cc&&_0x3142cc[_0xbc80('0x13f')]){if(_0x527269[_0xbc80('0x13c')]==='16'&&this['actions'][_0x527269[_0xbc80('0xac')]][_0xbc80('0x70')]){logger[_0xbc80('0x56')]('[syncHangup][talking][transfer]',_0x527269[_0xbc80('0xac')],_0x527269[_0xbc80('0x13c')],_0xbc80('0xb1'),_0x339fdd[_0xbc80('0x50')],_0xbc80('0x6f'),_0x339fdd[_0xbc80('0x2a')]);this[_0xbc80('0x13d')](_0x527269,_0x527269[_0xbc80('0xac')],_0x527269[_0xbc80('0x13c')]);}else if(this[_0xbc80('0x16')][_0x527269['linkedid']]['dialAnswer']){logger[_0xbc80('0x56')](_0xbc80('0x140'),_0x527269[_0xbc80('0xac')],_0x527269[_0xbc80('0x13c')],_0xbc80('0xb1'),_0x339fdd['name'],_0xbc80('0x6f'),_0x339fdd[_0xbc80('0x2a')]);this[_0xbc80('0x13d')](_0x527269,_0x527269[_0xbc80('0xac')],_0x527269['cause']);}}};Preview[_0xbc80('0xe')][_0xbc80('0x1f')]=function(_0x2c5247){if(this['actions'][_0x2c5247['destlinkedid']]&&_0x2c5247[_0xbc80('0x141')]!==_0x2c5247[_0xbc80('0x142')]){this[_0xbc80('0x13d')](_0x2c5247,_0x2c5247[_0xbc80('0x141')],_0x2c5247[_0xbc80('0xec')]);}};Preview[_0xbc80('0xe')][_0xbc80('0x1e')]=function(_0x4e1cea){if(this['actions'][_0x4e1cea[_0xbc80('0xac')]]&&_0x4e1cea[_0xbc80('0xac')]!==_0x4e1cea['uniqueid']&&!this[_0xbc80('0x16')][_0x4e1cea[_0xbc80('0xac')]]['dialAnswer']){if(_0x4e1cea[_0xbc80('0x13c')]==='1'){this[_0xbc80('0x13d')](_0x4e1cea,_0x4e1cea[_0xbc80('0xac')],_0x4e1cea[_0xbc80('0x13c')]);}}};Preview[_0xbc80('0xe')][_0xbc80('0x143')]=function(_0x1b2908,_0x27d28a,_0x3ed915){if(this[_0xbc80('0x16')][_0x1b2908]){if(_['isNil'](this['actions'][_0x1b2908][_0xbc80('0x144')])){this[_0xbc80('0x16')][_0x1b2908]['variables']={};}this['actions'][_0x1b2908][_0xbc80('0x144')][_0x27d28a]=_0x3ed915;}};Preview[_0xbc80('0xe')][_0xbc80('0x22')]=function(_0x1ea24e){try{if(!_['isNil'](_0x1ea24e)){if(ut[_0xbc80('0x145')](_[_0xbc80('0x146')](_0x1ea24e['variable'])[0x0])){this['addVariable'](_0x1ea24e['uniqueid'],_['keys'](_0x1ea24e[_0xbc80('0x147')])[0x0],_0x1ea24e[_0xbc80('0x148')]);}}}catch(_0x30dc91){logger[_0xbc80('0x149')](_0xbc80('0x14a'),util['inspect'](_0x30dc91,{'showHidden':![],'depth':null}));}};Preview[_0xbc80('0xe')][_0xbc80('0x24')]=function(_0x3f9617){if(_0x3f9617){if(this[_0xbc80('0x16')][_0x3f9617[_0xbc80('0x14b')]]){this[_0xbc80('0x16')][_0x3f9617[_0xbc80('0x14b')]]['transfer']=!![];}}};Preview[_0xbc80('0xe')][_0xbc80('0x25')]=function(_0x8127ed){if(_0x8127ed){if(this[_0xbc80('0x16')][_0x8127ed[_0xbc80('0x14c')]]){this[_0xbc80('0x16')][_0x8127ed[_0xbc80('0x14c')]][_0xbc80('0x13f')]=!![];}}};module['exports']=Preview;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x420e=['lastAssignedTo','COMPLETED','[voiceQueueReport]\x20','getContactRecallMe','[GetContactRecallMe]\x20','rescheduleContactInQueue','[rescheduleContactInQueue]\x20','util','../../../config/logger','preview','lodash','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueRt','../rpc/agentReportPreview','../rpc/voiceQueueReport','error','inspect','resolve','then','catch','createHistory','[createHistory]\x20','moveContactManagedDialer','checkIsBlackList','[checkIsBlackList]\x20','createCustomerFinal','UserId','active','rescheduleContact','[rescheduleContact]\x20','countReScheduled','[countReScheduled]\x20','unlockContact','[unlockContact]\x20','disableContact','[activeContact]\x20','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','answertime','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt','endtime','membername','context','from-sip','xcally-motion-preview','holdtime'];(function(_0x1051ad,_0x123df4){var _0x56da86=function(_0x38fc35){while(--_0x38fc35){_0x1051ad['push'](_0x1051ad['shift']());}};_0x56da86(++_0x123df4);}(_0x420e,0x157));var _0xe420=function(_0x4b509c,_0xbb3054){_0x4b509c=_0x4b509c-0x0;var _0x36f801=_0x420e[_0x4b509c];return _0x36f801;};'use strict';var util=require(_0xe420('0x0'));var BPromise=require('bluebird');var logger=require(_0xe420('0x1'))(_0xe420('0x2'));var _=require(_0xe420('0x3'));var cmHopper=require(_0xe420('0x4'));var cmHopperFinal=require(_0xe420('0x5'));var cmHopperHistory=require(_0xe420('0x6'));var cmHopperBlack=require(_0xe420('0x7'));var voiceQueueRt=require(_0xe420('0x8'));var agentReportPreview=require(_0xe420('0x9'));var voiceQueueReport=require(_0xe420('0xa'));function loggerCatch(_0x2a303f){return function(_0x4cbc06){logger[_0xe420('0xb')](_0x2a303f,util[_0xe420('0xc')](_0x4cbc06,{'showHidden':![],'depth':null}));};}function create(_0x5b328b){return BPromise[_0xe420('0xd')]()[_0xe420('0xe')](cmHopperHistory['createHistory'](_0x5b328b))[_0xe420('0xf')](loggerCatch('[createHistory]\x20'));}function createAgent(_0x44eb36){return BPromise[_0xe420('0xd')]()['then'](agentReportPreview[_0xe420('0x10')](_0x44eb36))[_0xe420('0xf')](loggerCatch(_0xe420('0x11')));}function moveContact(_0xa1e493){return BPromise[_0xe420('0xd')]()[_0xe420('0xe')](cmHopper[_0xe420('0x12')](_0xa1e493,!![]))[_0xe420('0xf')](loggerCatch('[moveContactManagedDialer]\x20'));}exports[_0xe420('0x13')]=function(_0x25541f){return BPromise[_0xe420('0xd')]()[_0xe420('0xe')](cmHopperBlack[_0xe420('0x13')](_0x25541f))[_0xe420('0xf')](loggerCatch(_0xe420('0x14')));};exports['getContactPreview']=function(_0x4218c7){return BPromise[_0xe420('0xd')]()[_0xe420('0xe')](cmHopper['getContactPreview'](_0x4218c7))[_0xe420('0xf')](loggerCatch('[getContactPreview]\x20'));};exports[_0xe420('0x10')]=function(_0x2c0b97,_0x1219af){create(_0x2c0b97)[_0xe420('0xf')](loggerCatch(_0x1219af));moveContact(_0x2c0b97)[_0xe420('0xf')](loggerCatch(_0x1219af));};exports['createAgentHistory']=function(_0x54b8cb,_0x321f7c){createAgent(_0x54b8cb)[_0xe420('0xf')](loggerCatch(_0x321f7c));};exports['createCustomerHistory']=function(_0x5df304,_0xf5185a){create(_0x5df304)['catch'](loggerCatch(_0xf5185a));};exports[_0xe420('0x15')]=function(_0x1e73dd,_0x235d0d){moveContact(_0x1e73dd)[_0xe420('0xf')](loggerCatch(_0x235d0d));};exports['rescheduleContact']=function(_0x552747,_0x567078,_0x543f90){if(_0x567078){_0x552747[_0xe420('0x16')]=null;}if(_0x543f90){_0x552747[_0xe420('0x17')]=![];}return BPromise[_0xe420('0xd')]()[_0xe420('0xe')](cmHopper[_0xe420('0x18')](_0x552747))[_0xe420('0xf')](loggerCatch(_0xe420('0x19')));};exports[_0xe420('0x1a')]=function(_0x20e8f4){return BPromise[_0xe420('0xd')]()[_0xe420('0xe')](cmHopper[_0xe420('0x1a')](_0x20e8f4))[_0xe420('0xf')](loggerCatch(_0xe420('0x1b')));};exports['unlockContact']=function(_0x51dcfd){return BPromise[_0xe420('0xd')]()[_0xe420('0xe')](cmHopper[_0xe420('0x1c')]({'UserId':null},_0x51dcfd,0x1))[_0xe420('0xf')](loggerCatch(_0xe420('0x1d')));};exports[_0xe420('0x1e')]=function(_0x6efed9){return BPromise['resolve']()[_0xe420('0xe')](cmHopper['unlockContact']({'active':![]},_0x6efed9,0x1))[_0xe420('0xf')](loggerCatch(_0xe420('0x1f')));};exports[_0xe420('0x20')]=function(_0x4845f5){var _0x340a8d={};_0x340a8d[_0xe420('0x21')]=_0x4845f5['type'];_0x340a8d[_0xe420('0x22')]=_0x4845f5[_0xe420('0x22')];_0x340a8d[_0xe420('0x23')]=_0x4845f5[_0xe420('0x23')];_0x340a8d[_0xe420('0x24')]=_0x4845f5['calleridname'];_0x340a8d[_0xe420('0x25')]=_0x4845f5['queue'];_0x340a8d[_0xe420('0x26')]=_0x4845f5[_0xe420('0x27')];_0x340a8d[_0xe420('0x28')]=_0x4845f5[_0xe420('0x27')];_0x340a8d[_0xe420('0x29')]=0x1;_0x340a8d[_0xe420('0x2a')]=_0x4845f5[_0xe420('0x2b')];_0x340a8d['connectedlinename']=_0x4845f5[_0xe420('0x2c')];_0x340a8d[_0xe420('0x2d')]=_0xe420('0x2e');_0x340a8d['exten']=_0xe420('0x2f');_0x340a8d[_0xe420('0x30')]=0x0;_0x340a8d['assigned']=0x1;_0x340a8d[_0xe420('0x31')]=_0x4845f5[_0xe420('0x2c')];_0x340a8d['queuecallerexitreason']=_0xe420('0x32');return BPromise[_0xe420('0xd')]()[_0xe420('0xe')](voiceQueueReport['create'](_0x340a8d))[_0xe420('0xf')](loggerCatch(_0xe420('0x33')));};exports[_0xe420('0x34')]=function(_0x2997e0,_0x44f377){return BPromise[_0xe420('0xd')]()[_0xe420('0xe')](cmHopper[_0xe420('0x34')](_0x2997e0,_0x44f377))[_0xe420('0xf')](loggerCatch(_0xe420('0x35')));};exports[_0xe420('0x36')]=function(_0x434d9a){return BPromise[_0xe420('0xd')]()[_0xe420('0xe')](cmHopper['rescheduleContact'](_0x434d9a,!![],!![]))[_0xe420('0xf')](loggerCatch(_0xe420('0x37')));};
\ No newline at end of file
+var _0x92e1=['bluebird','../../../config/logger','preview','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperBlack','../rpc/voiceQueueRt','error','inspect','resolve','then','createHistory','[createHistory]\x20','catch','[moveContactManagedDialer]\x20','checkIsBlackList','getContactPreview','createAgentHistory','createCustomerFinal','rescheduleContact','UserId','active','countReScheduled','[countReScheduled]\x20','unlockContact','[unlockContact]\x20','disableContact','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','answertime','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt','endtime','connectedlinename','context','xcally-motion-preview','holdtime','assigned','membername','queuecallerexitreason','COMPLETED','create','[voiceQueueReport]\x20','getContactRecallMe','rescheduleContactInQueue','[rescheduleContactInQueue]\x20','util'];(function(_0x554663,_0x56821a){var _0x3b111e=function(_0x3740bf){while(--_0x3740bf){_0x554663['push'](_0x554663['shift']());}};_0x3b111e(++_0x56821a);}(_0x92e1,0x9e));var _0x192e=function(_0x2faddb,_0xc18b78){_0x2faddb=_0x2faddb-0x0;var _0x273c05=_0x92e1[_0x2faddb];return _0x273c05;};'use strict';var util=require(_0x192e('0x0'));var BPromise=require(_0x192e('0x1'));var logger=require(_0x192e('0x2'))(_0x192e('0x3'));var _=require('lodash');var cmHopper=require(_0x192e('0x4'));var cmHopperFinal=require(_0x192e('0x5'));var cmHopperHistory=require('../rpc/cmHopperHistory');var cmHopperBlack=require(_0x192e('0x6'));var voiceQueueRt=require(_0x192e('0x7'));var agentReportPreview=require('../rpc/agentReportPreview');var voiceQueueReport=require('../rpc/voiceQueueReport');function loggerCatch(_0xd4e12f){return function(_0x2c0090){logger[_0x192e('0x8')](_0xd4e12f,util[_0x192e('0x9')](_0x2c0090,{'showHidden':![],'depth':null}));};}function create(_0x5a72be){return BPromise[_0x192e('0xa')]()[_0x192e('0xb')](cmHopperHistory[_0x192e('0xc')](_0x5a72be))['catch'](loggerCatch(_0x192e('0xd')));}function createAgent(_0x2acdeb){return BPromise['resolve']()['then'](agentReportPreview['createHistory'](_0x2acdeb))['catch'](loggerCatch(_0x192e('0xd')));}function moveContact(_0x3b6592){return BPromise['resolve']()[_0x192e('0xb')](cmHopper['moveContactManagedDialer'](_0x3b6592,!![]))[_0x192e('0xe')](loggerCatch(_0x192e('0xf')));}exports['checkIsBlackList']=function(_0x256531){return BPromise[_0x192e('0xa')]()['then'](cmHopperBlack[_0x192e('0x10')](_0x256531))[_0x192e('0xe')](loggerCatch('[checkIsBlackList]\x20'));};exports[_0x192e('0x11')]=function(_0x2d8b9f){return BPromise[_0x192e('0xa')]()['then'](cmHopper[_0x192e('0x11')](_0x2d8b9f))[_0x192e('0xe')](loggerCatch('[getContactPreview]\x20'));};exports[_0x192e('0xc')]=function(_0x18222e,_0x3a3db7){create(_0x18222e)[_0x192e('0xe')](loggerCatch(_0x3a3db7));moveContact(_0x18222e)[_0x192e('0xe')](loggerCatch(_0x3a3db7));};exports[_0x192e('0x12')]=function(_0x36f0bc,_0x8fd3de){createAgent(_0x36f0bc)[_0x192e('0xe')](loggerCatch(_0x8fd3de));};exports['createCustomerHistory']=function(_0x23ce3b,_0xd984f3){create(_0x23ce3b)[_0x192e('0xe')](loggerCatch(_0xd984f3));};exports[_0x192e('0x13')]=function(_0x29e313,_0x5c08ce){moveContact(_0x29e313)[_0x192e('0xe')](loggerCatch(_0x5c08ce));};exports[_0x192e('0x14')]=function(_0xd6a4a6,_0x30f92d,_0x1cf9bf){if(_0x30f92d){_0xd6a4a6[_0x192e('0x15')]=null;}if(_0x1cf9bf){_0xd6a4a6[_0x192e('0x16')]=![];}return BPromise[_0x192e('0xa')]()[_0x192e('0xb')](cmHopper[_0x192e('0x14')](_0xd6a4a6))['catch'](loggerCatch('[rescheduleContact]\x20'));};exports[_0x192e('0x17')]=function(_0x33b30e){return BPromise[_0x192e('0xa')]()[_0x192e('0xb')](cmHopper['countReScheduled'](_0x33b30e))[_0x192e('0xe')](loggerCatch(_0x192e('0x18')));};exports[_0x192e('0x19')]=function(_0xd12c4d){return BPromise[_0x192e('0xa')]()[_0x192e('0xb')](cmHopper[_0x192e('0x19')]({'UserId':null},_0xd12c4d,0x1))[_0x192e('0xe')](loggerCatch(_0x192e('0x1a')));};exports[_0x192e('0x1b')]=function(_0xb1891a){return BPromise[_0x192e('0xa')]()[_0x192e('0xb')](cmHopper['unlockContact']({'active':![]},_0xb1891a,0x1))[_0x192e('0xe')](loggerCatch('[activeContact]\x20'));};exports[_0x192e('0x1c')]=function(_0xcf066f){var _0x232e0a={};_0x232e0a['type']=_0xcf066f[_0x192e('0x1d')];_0x232e0a[_0x192e('0x1e')]=_0xcf066f[_0x192e('0x1e')];_0x232e0a[_0x192e('0x1f')]=_0xcf066f['calleridnum'];_0x232e0a[_0x192e('0x20')]=_0xcf066f[_0x192e('0x20')];_0x232e0a[_0x192e('0x21')]=_0xcf066f['queue'];_0x232e0a[_0x192e('0x22')]=_0xcf066f[_0x192e('0x23')];_0x232e0a[_0x192e('0x24')]=_0xcf066f[_0x192e('0x23')];_0x232e0a[_0x192e('0x25')]=0x1;_0x232e0a[_0x192e('0x26')]=_0xcf066f[_0x192e('0x27')];_0x232e0a[_0x192e('0x28')]=_0xcf066f['membername'];_0x232e0a[_0x192e('0x29')]='from-sip';_0x232e0a['exten']=_0x192e('0x2a');_0x232e0a[_0x192e('0x2b')]=0x0;_0x232e0a[_0x192e('0x2c')]=0x1;_0x232e0a['lastAssignedTo']=_0xcf066f[_0x192e('0x2d')];_0x232e0a[_0x192e('0x2e')]=_0x192e('0x2f');return BPromise['resolve']()[_0x192e('0xb')](voiceQueueReport[_0x192e('0x30')](_0x232e0a))[_0x192e('0xe')](loggerCatch(_0x192e('0x31')));};exports['getContactRecallMe']=function(_0x2f14f6,_0x572085){return BPromise['resolve']()['then'](cmHopper[_0x192e('0x32')](_0x2f14f6,_0x572085))[_0x192e('0xe')](loggerCatch('[GetContactRecallMe]\x20'));};exports[_0x192e('0x33')]=function(_0x6206b3){return BPromise[_0x192e('0xa')]()[_0x192e('0xb')](cmHopper['rescheduleContact'](_0x6206b3,!![],!![]))[_0x192e('0xe')](loggerCatch(_0x192e('0x34')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6431=['updateOriginated','originated','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','statedesc','Blacklist','endtime','logAgent','state','responsetime','ringtime','starttime','logLookAgent','membername','UserId','logCustomer','answertime','variablesAction','RECALL','originate','channelAgent','from-sip','uniqueid','totalGlobal','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','cloneAction','clone','Global','scheduledat','add','minutes','ListId','VoiceQueueId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','IsNotLoggedIn','buildObj','lastevent','interface','motionChannel','mandatoryDisposition','buildAcw','queue','agentReadyId','not_inuse','status','reachable','createBody','filterKey','idContact','type','campaigntype','dialAnswer','active','callback','callbackuniqueid','callbackat','sipcallid','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-listid','xmd-dialurl','xmd-dialtimeout','xmd-dialid','xmd-contactid','xmd-cdrtype','xmd-agiafter','xmd-agi','rtpaudioqos','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','bridgepvtcallid','getCallerIdRandom','\x5cw{0,','pow','replace','match','extractCalleridNumber','moment','../../../../config/logger','preview','XCALLY_IP_AGI','127.0.0.1','milliseconds','diff','seconds','error','inspect','logger','loggerError','logger2','info','message','getCallerId','string','isEmpty','format','\x22%s\x22\x20<%s>','isUndefined','\x22\x22\x20<>','isActive','isNil','addVariables','Queue','name','calleridname','calleridnum','ContactId','dialOriginateTimeout','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','Call-Type:\x20PREVIEW','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','%s%s','XMD-','toUpper','toLower'];(function(_0x56f604,_0x31e0fc){var _0x5c3f23=function(_0x507065){while(--_0x507065){_0x56f604['push'](_0x56f604['shift']());}};_0x5c3f23(++_0x31e0fc);}(_0x6431,0x1f4));var _0x1643=function(_0x48a81d,_0x2b3d9e){_0x48a81d=_0x48a81d-0x0;var _0x19699a=_0x6431[_0x48a81d];return _0x19699a;};'use strict';var util=require('util');var _=require('lodash');var moment=require(_0x1643('0x0'));var logger=require(_0x1643('0x1'))(_0x1643('0x2'));var ipAgi=process['env'][_0x1643('0x3')]||_0x1643('0x4');function getSeconds(_0xfc592c,_0x214efe){var _0x24909b=moment(_0xfc592c)[_0x1643('0x5')](0x0);var _0x20cefe=moment(_0x214efe)['milliseconds'](0x0);return _0x24909b[_0x1643('0x6')](_0x20cefe,_0x1643('0x7'));}exports['loggerCatch']=function(_0x3579f1){return function(_0x3037e1){logger[_0x1643('0x8')](_0x3579f1,util[_0x1643('0x9')](_0x3037e1,{'showHidden':![],'depth':null}));};};exports[_0x1643('0xa')]=function(_0x31818d,_0x31305b){logger['info'](_0x31818d,util[_0x1643('0x9')](_0x31305b,{'showHidden':![],'depth':null}));};exports[_0x1643('0xb')]=function(_0x42b432,_0x80f553){logger[_0x1643('0x8')](_0x42b432,util['inspect'](_0x80f553,{'showHidden':![],'depth':null}));};exports[_0x1643('0xc')]=function(_0x2e6f20){return function(_0x3eaa87){logger[_0x1643('0xd')](_0x2e6f20,util[_0x1643('0x9')](_0x3eaa87,{'showHidden':![],'depth':null}));};};exports[_0x1643('0xe')]=function(_0x337e6c,_0x3c80db,_0x46bff6){return{'message':_0x337e6c,'unlock':_0x3c80db,'active':_0x46bff6};};exports[_0x1643('0xf')]=function(_0x677114,_0x3eded7,_0x55b1dc){if(!_['isUndefined'](_0x55b1dc)&&_0x1643('0x10')===typeof _0x55b1dc&&!_['isEmpty'](_0x55b1dc)){if(!_['isUndefined'](_0x3eded7)&&_0x1643('0x10')===typeof _0x3eded7&&!_[_0x1643('0x11')](_0x3eded7)){return util[_0x1643('0x12')]('\x22%s\x22\x20<%s>',_0x3eded7,_0x55b1dc);}return util['format'](_0x1643('0x13'),_0x55b1dc,_0x55b1dc);}if(!_[_0x1643('0x14')](_0x677114)&&_0x1643('0x10')===typeof _0x677114&&!_['isEmpty'](_0x677114)){return _0x677114;}return _0x1643('0x15');};exports[_0x1643('0x16')]=function(_0x21d337){if(_[_0x1643('0x17')](_0x21d337)){return![];}return _0x21d337;};exports[_0x1643('0x18')]=function(_0x1d970b,_0xc5a2c4,_0xdf1947,_0x3cf9e2,_0x49792d,_0x233081){var _0x9b9816={'XMD-QUEUE':_0xc5a2c4[_0x1643('0x19')]?_0xc5a2c4['Queue'][_0x1643('0x1a')]:'','XMD-CALLERID':_0x3cf9e2,'XMD-CALLERID-PREVIEW':_0x233081?util[_0x1643('0x12')](_0x1643('0x13'),_0x233081[_0x1643('0x1b')],_0x233081[_0x1643('0x1c')]):_0x3cf9e2,'XMD-DIALID':_0x49792d,'XMD-CONTACTID':_0xc5a2c4[_0x1643('0x1d')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x3cf9e2,'XMD-VOICEQUEUEID':_0xc5a2c4['VoiceQueueId'],'XMD-DIALCHANNEL':_0xdf1947,'XMD-DIALTIMEOUT':_0x1d970b[_0x1643('0x1e')]||0x1e,'XMD-DIALOPTIONS':util[_0x1643('0x12')]('\x22rtTxX%s%s\x22',_0x1d970b[_0x1643('0x1f')]?'g':'',_[_0x1643('0x11')](_0x1d970b[_0x1643('0x20')])?'':_0x1643('0x21')),'XMD-DIALURL':_0x1d970b[_0x1643('0x22')]||'','XMD-AGI':_0x1d970b[_0x1643('0x23')]?util[_0x1643('0x12')](_0x1643('0x24'),ipAgi,_0x1d970b[_0x1643('0x23')]):_0x1643('0x25'),'XMD-AGIAFTER':_0x1d970b[_0x1643('0x1f')]?util['format'](_0x1643('0x24'),ipAgi,_0x1d970b[_0x1643('0x1f')]):_0x1643('0x25'),'XMD-ORIGINATECALLERIDNUM':_0x233081?_0x233081[_0x1643('0x26')]:'','XMD-ORIGINATECALLERIDNAME':_0x233081?_0x233081['originatecalleridname']:'','XMD-DESTINATION':'xcally-motion-preview','SIPADDHEADER':_0x1643('0x27')};if(!_['isEmpty'](_0x1d970b[_0x1643('0x20')])){_0x9b9816[util['format']('%s',_0x1643('0x28'))]=_0x1d970b[_0x1643('0x20')];_0x9b9816[util[_0x1643('0x12')]('%s',_0x1643('0x29'))]=_0x49792d;}if(_0xc5a2c4&&_0xc5a2c4[_0x1643('0x2a')]){for(var _0x11a372 in _0xc5a2c4[_0x1643('0x2a')]){if(_0xc5a2c4[_0x1643('0x2a')][_0x1643('0x2b')](_0x11a372)){if(!_[_0x1643('0x17')](_0xc5a2c4[_0x1643('0x2a')][_0x11a372])&&_0x11a372!=='id'&&_0x11a372!=='tags'&&_0x11a372!=='createdAt'&&_0x11a372!=='updatedAt'){_0x9b9816[util['format'](_0x1643('0x2c'),_0x1643('0x2d'),_[_0x1643('0x2e')](_0x11a372))]=_0xc5a2c4[_0x1643('0x2a')][_0x11a372];}}}}return _0x9b9816;};exports['toLowerVariables']=function(_0x18c0bf){var _0x5bc3a4={};for(var _0x371fd4 in _0x18c0bf){if(_0x18c0bf['hasOwnProperty'](_0x371fd4)){_0x5bc3a4[util[_0x1643('0x12')]('%s',_[_0x1643('0x2f')](_0x371fd4))]=_0x18c0bf[_0x371fd4];}}return{'variables':_0x5bc3a4};};exports[_0x1643('0x30')]=function(_0x517cd5,_0x352887){if(!_[_0x1643('0x17')](_0x517cd5)){if(_0x517cd5[_0x1643('0x2b')](_0x1643('0x31'))){if(_0x517cd5['originated']>0x0){_0x517cd5[_0x1643('0x31')]-=0x1;}else{logger[_0x1643('0x8')]('[updateOriginated]\x20object\x20originated\x20is\x20negative',_0x352887);}}}else{logger[_0x1643('0x8')](_0x1643('0x32'),_0x352887);}};exports[_0x1643('0x33')]=function(_0x1a19e4){var _0x55a7b7=moment()['format'](_0x1643('0x34'));_0x1a19e4['state']=0xd;_0x1a19e4[_0x1643('0x35')]=_0x1643('0x36');_0x1a19e4['starttime']=_0x55a7b7;_0x1a19e4['responsetime']=_0x55a7b7;_0x1a19e4[_0x1643('0x37')]=_0x55a7b7;};exports[_0x1643('0x38')]=function(_0x42796b,_0x16b6eb,_0x88f6e3){var _0x3e0aca=moment()[_0x1643('0x12')](_0x1643('0x34'));_0x42796b[_0x1643('0x39')]=_0x16b6eb;_0x42796b['statedesc']=_0x88f6e3;_0x42796b[_0x1643('0x3a')]=_0x3e0aca;_0x42796b[_0x1643('0x3b')]=getSeconds(_0x42796b['responsetime'],_0x42796b[_0x1643('0x3c')]);};exports[_0x1643('0x3d')]=function(_0x2e9c03,_0x39f819,_0x3ea3d0){_0x2e9c03[_0x1643('0x3e')]=_0x39f819;_0x2e9c03[_0x1643('0x3f')]=_0x3ea3d0;};exports[_0x1643('0x40')]=function(_0x2afb9a,_0x2348e7,_0x41488a){var _0x532b33=moment()[_0x1643('0x12')]('YYYY-MM-DD\x20HH:mm:ss');_0x2afb9a[_0x1643('0x39')]=_0x2348e7;_0x2afb9a[_0x1643('0x35')]=_0x41488a;_0x2afb9a[_0x1643('0x3a')]=_0x2afb9a['responsetime']?_0x2afb9a[_0x1643('0x3a')]:_0x532b33;_0x2afb9a[_0x1643('0x37')]=_0x2afb9a[_0x1643('0x37')]?_0x2afb9a[_0x1643('0x37')]:_0x532b33;_0x2afb9a['ringtime']=getSeconds(_0x2afb9a['responsetime']||0x0,_0x2afb9a[_0x1643('0x3c')]||0x0);_0x2afb9a['talktime']=_0x2afb9a[_0x1643('0x41')]?getSeconds(_0x2afb9a[_0x1643('0x37')],_0x2afb9a[_0x1643('0x41')]):0x0;};exports['isFailure']=function(_0x313c7f){return _0x313c7f==='Failure';};exports[_0x1643('0x42')]=function(_0x99c3a1,_0x5b9bfc,_0x3773f1,_0x34056a,_0x4c3800){var _0x4789b4=_0x34056a?_0x1643('0x43'):_0x99c3a1[_0x1643('0x1b')];_0x4789b4=_0x4c3800?'BOOKED':_0x4789b4;return{'actionid':_0x99c3a1['uniqueid'],'action':_0x1643('0x44'),'channel':_0x99c3a1[_0x1643('0x45')],'callerid':util['format'](_0x1643('0x13'),_0x4789b4,_0x99c3a1[_0x1643('0x1c')]),'Exten':'xcally-motion-preview','Context':_0x1643('0x46'),'Priority':'1','variable':_0x3773f1,'timeout':(_0x5b9bfc['timeout']||0x1e)*0x3e8,'async':!![],'channelid':_0x99c3a1[_0x1643('0x47')]};};exports[_0x1643('0x48')]=function(_0x3c52e3){return _0x3c52e3[_0x1643('0x49')]+_0x3c52e3[_0x1643('0x4a')]+_0x3c52e3[_0x1643('0x4b')]+_0x3c52e3['countagentrejectretry']+_0x3c52e3[_0x1643('0x4c')];};exports[_0x1643('0x4d')]=function(_0x3d1b9b){var _0x28d5a0=_[_0x1643('0x4e')](_0x3d1b9b);_0x28d5a0[_0x1643('0x39')]=0xf;_0x28d5a0[_0x1643('0x35')]=_0x1643('0x4f');return _0x28d5a0;};exports['scheduledAt']=function(_0x527218,_0x222d38,_0x24906f){var _0x48d9b={};_0x48d9b[_0x222d38]=_0x527218[_0x222d38];_0x48d9b['active']=![];_0x48d9b[_0x1643('0x50')]=moment()[_0x1643('0x51')](_0x24906f,_0x1643('0x52'))[_0x1643('0x12')](_0x1643('0x34'));_0x48d9b['ContactId']=_0x527218[_0x1643('0x1d')];_0x48d9b[_0x1643('0x53')]=_0x527218[_0x1643('0x53')];_0x48d9b[_0x1643('0x54')]=_0x527218[_0x1643('0x54')]||undefined;return _0x48d9b;};exports[_0x1643('0x55')]=function(_0x22c758,_0x518758){if(!_[_0x1643('0x17')](_0x22c758)){if(_0x22c758[_0x1643('0x56')]>0x0){_0x22c758[_0x1643('0x56')]-=0x1;}else{logger[_0x1643('0x8')](_0x518758,_0x1643('0x57'));}}else{logger[_0x1643('0x8')](_0x518758,'[decrementTalkink]\x20is\x20null\x20or\x20undefined');}};exports[_0x1643('0x58')]=function(_0x34b6f8){if(_0x34b6f8<=0x0){return!![];}return![];};exports[_0x1643('0x59')]=function(_0x443750,_0x447cc5,_0x3a93b5){_0x443750[_0x1643('0x5a')]=_0x447cc5;_0x443750[_0x1643('0x1a')]=_0x443750['queue'];_0x443750[_0x1643('0x5b')]=_0x443750['channelAgent'];_0x443750[_0x1643('0x5c')]='voice';if(_0x3a93b5){_0x443750[_0x1643('0x5d')]=_0x3a93b5[_0x1643('0x5d')];}return _0x443750;};exports[_0x1643('0x5e')]=function(_0x5a5147){var _0x2683af={};_0x2683af['queue']=_0x5a5147[_0x1643('0x5f')];_0x2683af['interface']=_0x5a5147['channelAgent'];_0x2683af[_0x1643('0x47')]=_0x5a5147[_0x1643('0x47')];return _0x2683af;};exports[_0x1643('0x60')]=function(_0x582f2d){var _0x2a7520=[];for(var _0x5ab2a5 in _0x582f2d){if(_0x582f2d[_0x1643('0x2b')](_0x5ab2a5)){if(!_['isNil'](_0x582f2d[_0x5ab2a5])&&_0x582f2d[_0x5ab2a5][_0x1643('0x39')]===_0x1643('0x61')&&_0x582f2d[_0x5ab2a5][_0x1643('0x62')]===_0x1643('0x63')){_0x2a7520['push'](_0x582f2d[_0x5ab2a5]['id']);}}}return _0x2a7520;};exports['getDiff']=function(_0x52bcef){var _0x24e80b=moment()['milliseconds'](0x0);var _0x10dae8=moment(_0x52bcef)[_0x1643('0x5')](0x0);return _0x24e80b['diff'](_0x10dae8,_0x1643('0x7'));};exports[_0x1643('0x64')]=function(_0x55f53a){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x55f53a['ContactId'],'ListId':_0x55f53a['ListId'],'VoiceQueueId':_0x55f53a[_0x1643('0x54')]||undefined,'CampaignId':_0x55f53a['CampaignId']||undefined};};exports[_0x1643('0x65')]=function(_0x5412f2){if(_0x5412f2===_0x1643('0x47')||_0x5412f2===_0x1643('0x66')||_0x5412f2===_0x1643('0x5f')||_0x5412f2===_0x1643('0x67')||_0x5412f2===_0x1643('0x68')||_0x5412f2===_0x1643('0x69')||_0x5412f2===_0x1643('0x3e')||_0x5412f2===_0x1643('0x45')||_0x5412f2==='calleridname'||_0x5412f2===_0x1643('0x6a')||_0x5412f2===_0x1643('0x1c')||_0x5412f2===_0x1643('0x50')||_0x5412f2==='countbusyretry'||_0x5412f2===_0x1643('0x4a')||_0x5412f2===_0x1643('0x4b')||_0x5412f2==='countglobal'||_0x5412f2===_0x1643('0x6b')||_0x5412f2===_0x1643('0x6c')||_0x5412f2===_0x1643('0x6d')||_0x5412f2==='recallme'||_0x5412f2===_0x1643('0x1d')||_0x5412f2===_0x1643('0x53')||_0x5412f2===_0x1643('0x3f')||_0x5412f2===_0x1643('0x54')||_0x5412f2===_0x1643('0x6e')||_0x5412f2===_0x1643('0x6f')||_0x5412f2===_0x1643('0x70')||_0x5412f2===_0x1643('0x71')||_0x5412f2===_0x1643('0x72')||_0x5412f2===_0x1643('0x73')||_0x5412f2===_0x1643('0x74')||_0x5412f2==='xmd-dialoptions'||_0x5412f2===_0x1643('0x75')||_0x5412f2==='xmd-dialchannel'||_0x5412f2===_0x1643('0x76')||_0x5412f2===_0x1643('0x77')||_0x5412f2==='xmd-callerid'||_0x5412f2===_0x1643('0x78')||_0x5412f2===_0x1643('0x79')||_0x5412f2===_0x1643('0x7a')||_0x5412f2==='rtpaudioqosbridged'||_0x5412f2==='rtpaudioqosjitter'||_0x5412f2==='rtpaudioqosjitterbridged'||_0x5412f2===_0x1643('0x7b')||_0x5412f2===_0x1643('0x7c')||_0x5412f2===_0x1643('0x7d')||_0x5412f2===_0x1643('0x7e')||_0x5412f2===_0x1643('0x7a')||_0x5412f2===_0x1643('0x7f')||_0x5412f2===_0x1643('0x80')||_0x5412f2===_0x1643('0x81')||_0x5412f2===_0x1643('0x7b')||_0x5412f2===_0x1643('0x7c')||_0x5412f2===_0x1643('0x7d')||_0x5412f2==='rtpaudioqosrttbridged'||_0x5412f2==='bridgepeer'||_0x5412f2===_0x1643('0x82')||_0x5412f2==='state'||_0x5412f2===_0x1643('0x35')){return![];}return!![];};exports[_0x1643('0x83')]=function(_0xcac888,_0x21e9d8){var _0x44e1f4,_0x331b13,_0x1334a2;if(_0x21e9d8<=0x0){_0x21e9d8=0x1;}_0x44e1f4=new RegExp(_0x1643('0x84')+_0x21e9d8+'}$');_0x331b13=Math['pow'](0xa,_0x21e9d8-0x1);_0x1334a2=Math[_0x1643('0x85')](0xa,_0x21e9d8)-0x1;return util[_0x1643('0x12')]('%s',_[_0x1643('0x86')](_0xcac888,_0x44e1f4,_['random'](_0x331b13,_0x1334a2)));};exports['extractCalleridName']=function(_0x199c44){var _0x370343=_0x199c44[_0x1643('0x87')](/"(.*?)"/);return _0x370343?_0x370343[0x1]:_0x199c44;};exports[_0x1643('0x88')]=function(_0x3a25a1){var _0x27500e=_0x3a25a1[_0x1643('0x87')](/<(.*?)>/);return _0x27500e?_0x27500e[0x1]:_0x3a25a1;};
\ No newline at end of file
+var _0x81f2=['U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','originatecalleridname','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','hasOwnProperty','Contact','tags','createdAt','%s%s','XMD-','toLowerVariables','toLower','updateOriginated','originated','[updateOriginated]\x20is\x20null\x20or\x20undefined','YYYY-MM-DD\x20HH:mm:ss','state','Blacklist','starttime','responsetime','statedesc','ringtime','logLookAgent','UserId','logCustomer','endtime','talktime','answertime','isFailure','Failure','variablesAction','RECALL','BOOKED','uniqueid','originate','xcally-motion-preview','totalGlobal','countcongestionretry','countnoanswerretry','clone','Global','active','scheduledat','add','minutes','ListId','VoiceQueueId','decrementTalkink','pTalking','[decrementTalkink]\x20is\x20null\x20or\x20undefined','buildObj','interface','channelAgent','mandatoryDisposition','buildAcw','queue','agentReadyId','status','reachable','push','createBody','CampaignId','filterKey','idContact','type','campaigntype','membername','countbusyretry','countglobal','callback','callbackat','recallme','sipcallid','xmd-voicequeueid','xmd-phone','xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-callerid','xmd-agiafter','xmd-agi','rtpaudioqosjitter','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','bridgepeer','bridgepvtcallid','\x5cw{0,','pow','replace','random','extractCalleridName','extractCalleridNumber','match','util','lodash','moment','../../../../config/logger','env','XCALLY_IP_AGI','127.0.0.1','milliseconds','seconds','loggerCatch','error','inspect','logger','info','loggerError','logger2','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','isNil','addVariables','Queue','name','calleridname','calleridnum','ContactId','dialer','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format'];(function(_0x38fed9,_0x38a9ff){var _0x1453ec=function(_0x426fad){while(--_0x426fad){_0x38fed9['push'](_0x38fed9['shift']());}};_0x1453ec(++_0x38a9ff);}(_0x81f2,0x186));var _0x281f=function(_0x77cb50,_0x5af067){_0x77cb50=_0x77cb50-0x0;var _0x1124fb=_0x81f2[_0x77cb50];return _0x1124fb;};'use strict';var util=require(_0x281f('0x0'));var _=require(_0x281f('0x1'));var moment=require(_0x281f('0x2'));var logger=require(_0x281f('0x3'))('preview');var ipAgi=process[_0x281f('0x4')][_0x281f('0x5')]||_0x281f('0x6');function getSeconds(_0x1ef345,_0x211027){var _0x64f511=moment(_0x1ef345)['milliseconds'](0x0);var _0xbde17f=moment(_0x211027)[_0x281f('0x7')](0x0);return _0x64f511['diff'](_0xbde17f,_0x281f('0x8'));}exports[_0x281f('0x9')]=function(_0x2a31e1){return function(_0x5bc4e1){logger[_0x281f('0xa')](_0x2a31e1,util[_0x281f('0xb')](_0x5bc4e1,{'showHidden':![],'depth':null}));};};exports[_0x281f('0xc')]=function(_0x5e134b,_0x1dda19){logger[_0x281f('0xd')](_0x5e134b,util[_0x281f('0xb')](_0x1dda19,{'showHidden':![],'depth':null}));};exports[_0x281f('0xe')]=function(_0x21fee8,_0x33fec8){logger[_0x281f('0xa')](_0x21fee8,util[_0x281f('0xb')](_0x33fec8,{'showHidden':![],'depth':null}));};exports[_0x281f('0xf')]=function(_0x314b6f){return function(_0xeb1e6f){logger['info'](_0x314b6f,util['inspect'](_0xeb1e6f,{'showHidden':![],'depth':null}));};};exports['message']=function(_0x1d1d88,_0xe5e67f,_0x5bc099){return{'message':_0x1d1d88,'unlock':_0xe5e67f,'active':_0x5bc099};};exports[_0x281f('0x10')]=function(_0x1359ac,_0x435715,_0x26cc8a){if(!_[_0x281f('0x11')](_0x26cc8a)&&_0x281f('0x12')===typeof _0x26cc8a&&!_[_0x281f('0x13')](_0x26cc8a)){if(!_[_0x281f('0x11')](_0x435715)&&_0x281f('0x12')===typeof _0x435715&&!_[_0x281f('0x13')](_0x435715)){return util[_0x281f('0x14')](_0x281f('0x15'),_0x435715,_0x26cc8a);}return util[_0x281f('0x14')](_0x281f('0x15'),_0x26cc8a,_0x26cc8a);}if(!_[_0x281f('0x11')](_0x1359ac)&&_0x281f('0x12')===typeof _0x1359ac&&!_[_0x281f('0x13')](_0x1359ac)){return _0x1359ac;}return _0x281f('0x16');};exports[_0x281f('0x17')]=function(_0x30a3f5){if(_[_0x281f('0x18')](_0x30a3f5)){return![];}return _0x30a3f5;};exports[_0x281f('0x19')]=function(_0x5e2ec7,_0x504f98,_0x333cfa,_0x3338ee,_0x4bd6cd,_0x25a2d2){var _0x17e78d={'XMD-QUEUE':_0x504f98[_0x281f('0x1a')]?_0x504f98[_0x281f('0x1a')][_0x281f('0x1b')]:'','XMD-CALLERID':_0x3338ee,'XMD-CALLERID-PREVIEW':_0x25a2d2?util[_0x281f('0x14')]('\x22%s\x22\x20<%s>',_0x25a2d2[_0x281f('0x1c')],_0x25a2d2[_0x281f('0x1d')]):_0x3338ee,'XMD-DIALID':_0x4bd6cd,'XMD-CONTACTID':_0x504f98[_0x281f('0x1e')],'XMD-CDRTYPE':_0x281f('0x1f'),'CALLERID(all)':_0x3338ee,'XMD-VOICEQUEUEID':_0x504f98['VoiceQueueId'],'XMD-DIALCHANNEL':_0x333cfa,'XMD-DIALTIMEOUT':_0x5e2ec7[_0x281f('0x20')]||0x1e,'XMD-DIALOPTIONS':util[_0x281f('0x14')](_0x281f('0x21'),_0x5e2ec7[_0x281f('0x22')]?'g':'',_['isEmpty'](_0x5e2ec7[_0x281f('0x23')])?'':_0x281f('0x24')),'XMD-DIALURL':_0x5e2ec7[_0x281f('0x25')]||'','XMD-AGI':_0x5e2ec7[_0x281f('0x26')]?util[_0x281f('0x14')]('\x22agi://%s/square,%s\x22',ipAgi,_0x5e2ec7['dialQueueProject']):'NONE','XMD-AGIAFTER':_0x5e2ec7[_0x281f('0x22')]?util['format'](_0x281f('0x27'),ipAgi,_0x5e2ec7['dialQueueProject2']):_0x281f('0x28'),'XMD-ORIGINATECALLERIDNUM':_0x25a2d2?_0x25a2d2[_0x281f('0x29')]:'','XMD-ORIGINATECALLERIDNAME':_0x25a2d2?_0x25a2d2[_0x281f('0x2a')]:'','XMD-DESTINATION':'xcally-motion-preview'};if(!_[_0x281f('0x13')](_0x5e2ec7[_0x281f('0x23')])){_0x17e78d[util[_0x281f('0x14')]('%s',_0x281f('0x2b'))]=_0x5e2ec7[_0x281f('0x23')];_0x17e78d[util[_0x281f('0x14')]('%s',_0x281f('0x2c'))]=_0x4bd6cd;}if(_0x504f98&&_0x504f98['Contact']){for(var _0x27a520 in _0x504f98['Contact']){if(_0x504f98['Contact'][_0x281f('0x2d')](_0x27a520)){if(!_[_0x281f('0x18')](_0x504f98[_0x281f('0x2e')][_0x27a520])&&_0x27a520!=='id'&&_0x27a520!==_0x281f('0x2f')&&_0x27a520!==_0x281f('0x30')&&_0x27a520!=='updatedAt'){_0x17e78d[util[_0x281f('0x14')](_0x281f('0x31'),_0x281f('0x32'),_['toUpper'](_0x27a520))]=_0x504f98[_0x281f('0x2e')][_0x27a520];}}}}return _0x17e78d;};exports[_0x281f('0x33')]=function(_0x436be1){var _0x374c62={};for(var _0x39c49b in _0x436be1){if(_0x436be1[_0x281f('0x2d')](_0x39c49b)){_0x374c62[util['format']('%s',_[_0x281f('0x34')](_0x39c49b))]=_0x436be1[_0x39c49b];}}return{'variables':_0x374c62};};exports[_0x281f('0x35')]=function(_0x458bf9,_0x5ce209){if(!_[_0x281f('0x18')](_0x458bf9)){if(_0x458bf9[_0x281f('0x2d')](_0x281f('0x36'))){if(_0x458bf9['originated']>0x0){_0x458bf9[_0x281f('0x36')]-=0x1;}else{logger[_0x281f('0xa')]('[updateOriginated]\x20object\x20originated\x20is\x20negative',_0x5ce209);}}}else{logger[_0x281f('0xa')](_0x281f('0x37'),_0x5ce209);}};exports['logBlacklist']=function(_0x2c28ab){var _0x7f60cb=moment()[_0x281f('0x14')](_0x281f('0x38'));_0x2c28ab[_0x281f('0x39')]=0xd;_0x2c28ab['statedesc']=_0x281f('0x3a');_0x2c28ab[_0x281f('0x3b')]=_0x7f60cb;_0x2c28ab[_0x281f('0x3c')]=_0x7f60cb;_0x2c28ab['endtime']=_0x7f60cb;};exports['logAgent']=function(_0xc5789b,_0x5a76a9,_0x1e584b){var _0x3208b3=moment()[_0x281f('0x14')](_0x281f('0x38'));_0xc5789b['state']=_0x5a76a9;_0xc5789b[_0x281f('0x3d')]=_0x1e584b;_0xc5789b[_0x281f('0x3c')]=_0x3208b3;_0xc5789b[_0x281f('0x3e')]=getSeconds(_0xc5789b[_0x281f('0x3c')],_0xc5789b[_0x281f('0x3b')]);};exports[_0x281f('0x3f')]=function(_0x4b5ac7,_0x110999,_0x3daee3){_0x4b5ac7['membername']=_0x110999;_0x4b5ac7[_0x281f('0x40')]=_0x3daee3;};exports[_0x281f('0x41')]=function(_0x2c6979,_0xb5ee68,_0x2aab25){var _0x2c4726=moment()[_0x281f('0x14')]('YYYY-MM-DD\x20HH:mm:ss');_0x2c6979[_0x281f('0x39')]=_0xb5ee68;_0x2c6979[_0x281f('0x3d')]=_0x2aab25;_0x2c6979['responsetime']=_0x2c6979[_0x281f('0x3c')]?_0x2c6979['responsetime']:_0x2c4726;_0x2c6979['endtime']=_0x2c6979[_0x281f('0x42')]?_0x2c6979[_0x281f('0x42')]:_0x2c4726;_0x2c6979[_0x281f('0x3e')]=getSeconds(_0x2c6979[_0x281f('0x3c')]||0x0,_0x2c6979[_0x281f('0x3b')]||0x0);_0x2c6979[_0x281f('0x43')]=_0x2c6979[_0x281f('0x44')]?getSeconds(_0x2c6979[_0x281f('0x42')],_0x2c6979[_0x281f('0x44')]):0x0;};exports[_0x281f('0x45')]=function(_0x341d8f){return _0x341d8f===_0x281f('0x46');};exports[_0x281f('0x47')]=function(_0x569b84,_0x1430a0,_0x285538,_0x4d56ed,_0x405843){var _0x214e7a=_0x4d56ed?_0x281f('0x48'):_0x569b84[_0x281f('0x1c')];_0x214e7a=_0x405843?_0x281f('0x49'):_0x214e7a;return{'actionid':_0x569b84[_0x281f('0x4a')],'action':_0x281f('0x4b'),'channel':_0x569b84['channelAgent'],'callerid':util['format']('\x22%s\x22\x20<%s>',_0x214e7a,_0x569b84['calleridnum']),'Exten':_0x281f('0x4c'),'Context':'from-sip','Priority':'1','variable':_0x285538,'timeout':(_0x1430a0['timeout']||0x1e)*0x3e8,'async':!![],'channelid':_0x569b84[_0x281f('0x4a')]};};exports[_0x281f('0x4d')]=function(_0x1c0693){return _0x1c0693['countbusyretry']+_0x1c0693[_0x281f('0x4e')]+_0x1c0693[_0x281f('0x4f')]+_0x1c0693['countagentrejectretry']+_0x1c0693['countnosuchnumberretry'];};exports['cloneAction']=function(_0xb981cc){var _0x44dc4d=_[_0x281f('0x50')](_0xb981cc);_0x44dc4d[_0x281f('0x39')]=0xf;_0x44dc4d[_0x281f('0x3d')]=_0x281f('0x51');return _0x44dc4d;};exports['scheduledAt']=function(_0x4b7f6b,_0x392e67,_0x419023){var _0x320084={};_0x320084[_0x392e67]=_0x4b7f6b[_0x392e67];_0x320084[_0x281f('0x52')]=![];_0x320084[_0x281f('0x53')]=moment()[_0x281f('0x54')](_0x419023,_0x281f('0x55'))[_0x281f('0x14')]('YYYY-MM-DD\x20HH:mm:ss');_0x320084['ContactId']=_0x4b7f6b[_0x281f('0x1e')];_0x320084[_0x281f('0x56')]=_0x4b7f6b['ListId'];_0x320084['VoiceQueueId']=_0x4b7f6b[_0x281f('0x57')]||undefined;return _0x320084;};exports[_0x281f('0x58')]=function(_0xdebc39,_0x3d8c7d){if(!_[_0x281f('0x18')](_0xdebc39)){if(_0xdebc39[_0x281f('0x59')]>0x0){_0xdebc39[_0x281f('0x59')]-=0x1;}else{logger[_0x281f('0xa')](_0x3d8c7d,'[decrementTalkink]\x20object\x20talking\x20is\x20negative');}}else{logger['error'](_0x3d8c7d,_0x281f('0x5a'));}};exports['IsNotLoggedIn']=function(_0x11f179){if(_0x11f179<=0x0){return!![];}return![];};exports[_0x281f('0x5b')]=function(_0x450977,_0x3de5c2,_0x161fdf){_0x450977['lastevent']=_0x3de5c2;_0x450977['name']=_0x450977['queue'];_0x450977[_0x281f('0x5c')]=_0x450977[_0x281f('0x5d')];if(_0x161fdf){_0x450977[_0x281f('0x5e')]=_0x161fdf['mandatoryDisposition'];}return _0x450977;};exports[_0x281f('0x5f')]=function(_0x5327b3){var _0x48b901={};_0x48b901[_0x281f('0x60')]=_0x5327b3[_0x281f('0x60')];_0x48b901['interface']=_0x5327b3[_0x281f('0x5d')];_0x48b901[_0x281f('0x4a')]=_0x5327b3[_0x281f('0x4a')];return _0x48b901;};exports[_0x281f('0x61')]=function(_0x54ce88){var _0x9b15f9=[];for(var _0x56bff3 in _0x54ce88){if(_0x54ce88['hasOwnProperty'](_0x56bff3)){if(!_[_0x281f('0x18')](_0x54ce88[_0x56bff3])&&_0x54ce88[_0x56bff3]['state']==='not_inuse'&&_0x54ce88[_0x56bff3][_0x281f('0x62')]===_0x281f('0x63')){_0x9b15f9[_0x281f('0x64')](_0x54ce88[_0x56bff3]['id']);}}}return _0x9b15f9;};exports['getDiff']=function(_0x37fbd){var _0x83e46d=moment()[_0x281f('0x7')](0x0);var _0x39dfbd=moment(_0x37fbd)[_0x281f('0x7')](0x0);return _0x83e46d['diff'](_0x39dfbd,_0x281f('0x8'));};exports[_0x281f('0x65')]=function(_0x53f07b){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x53f07b['ContactId'],'ListId':_0x53f07b['ListId'],'VoiceQueueId':_0x53f07b['VoiceQueueId']||undefined,'CampaignId':_0x53f07b[_0x281f('0x66')]||undefined};};exports[_0x281f('0x67')]=function(_0x5d8934){if(_0x5d8934==='uniqueid'||_0x5d8934===_0x281f('0x68')||_0x5d8934===_0x281f('0x60')||_0x5d8934===_0x281f('0x69')||_0x5d8934===_0x281f('0x6a')||_0x5d8934==='dialAnswer'||_0x5d8934===_0x281f('0x6b')||_0x5d8934===_0x281f('0x5d')||_0x5d8934===_0x281f('0x1c')||_0x5d8934===_0x281f('0x52')||_0x5d8934===_0x281f('0x1d')||_0x5d8934===_0x281f('0x53')||_0x5d8934===_0x281f('0x6c')||_0x5d8934===_0x281f('0x4e')||_0x5d8934===_0x281f('0x4f')||_0x5d8934===_0x281f('0x6d')||_0x5d8934===_0x281f('0x6e')||_0x5d8934==='callbackuniqueid'||_0x5d8934===_0x281f('0x6f')||_0x5d8934===_0x281f('0x70')||_0x5d8934===_0x281f('0x1e')||_0x5d8934==='ListId'||_0x5d8934===_0x281f('0x40')||_0x5d8934===_0x281f('0x57')||_0x5d8934===_0x281f('0x71')||_0x5d8934===_0x281f('0x72')||_0x5d8934==='xmd-queue'||_0x5d8934===_0x281f('0x73')||_0x5d8934==='xmd-listid'||_0x5d8934==='xmd-dialurl'||_0x5d8934===_0x281f('0x74')||_0x5d8934===_0x281f('0x75')||_0x5d8934===_0x281f('0x76')||_0x5d8934===_0x281f('0x77')||_0x5d8934===_0x281f('0x78')||_0x5d8934===_0x281f('0x79')||_0x5d8934===_0x281f('0x7a')||_0x5d8934===_0x281f('0x7b')||_0x5d8934===_0x281f('0x7c')||_0x5d8934==='rtpaudioqos'||_0x5d8934==='rtpaudioqosbridged'||_0x5d8934===_0x281f('0x7d')||_0x5d8934==='rtpaudioqosjitterbridged'||_0x5d8934==='rtpaudioqosloss'||_0x5d8934===_0x281f('0x7e')||_0x5d8934===_0x281f('0x7f')||_0x5d8934===_0x281f('0x80')||_0x5d8934===_0x281f('0x81')||_0x5d8934===_0x281f('0x82')||_0x5d8934==='rtpaudioqosjitter'||_0x5d8934===_0x281f('0x83')||_0x5d8934===_0x281f('0x84')||_0x5d8934===_0x281f('0x7e')||_0x5d8934===_0x281f('0x7f')||_0x5d8934===_0x281f('0x80')||_0x5d8934===_0x281f('0x85')||_0x5d8934===_0x281f('0x86')||_0x5d8934===_0x281f('0x39')||_0x5d8934===_0x281f('0x3d')){return![];}return!![];};exports['getCallerIdRandom']=function(_0x4c3747,_0x29da89){var _0x2d343b,_0x495d03,_0x17ebd2;if(_0x29da89<=0x0){_0x29da89=0x1;}_0x2d343b=new RegExp(_0x281f('0x87')+_0x29da89+'}$');_0x495d03=Math[_0x281f('0x88')](0xa,_0x29da89-0x1);_0x17ebd2=Math[_0x281f('0x88')](0xa,_0x29da89)-0x1;return util[_0x281f('0x14')]('%s',_[_0x281f('0x89')](_0x4c3747,_0x2d343b,_[_0x281f('0x8a')](_0x495d03,_0x17ebd2)));};exports[_0x281f('0x8b')]=function(_0x3a9dd8){var _0xd7823e=_0x3a9dd8['match'](/"(.*?)"/);return _0xd7823e?_0xd7823e[0x1]:_0x3a9dd8;};exports[_0x281f('0x8c')]=function(_0x2e8e3d){var _0x3917fd=_0x2e8e3d[_0x281f('0x8d')](/<(.*?)>/);return _0x3917fd?_0x3917fd[0x1]:_0x2e8e3d;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0856=['boolean','voicequeuechannelhangup','queueadd','string','number','queueremove','queuepause'];(function(_0x5cd9b6,_0x2ddf94){var _0x20e316=function(_0x210067){while(--_0x210067){_0x5cd9b6['push'](_0x5cd9b6['shift']());}};_0x20e316(++_0x2ddf94);}(_0x0856,0x1a6));var _0x6085=function(_0x17a2ba,_0x7e2135){_0x17a2ba=_0x17a2ba-0x0;var _0x4d0bc6=_0x0856[_0x17a2ba];return _0x4d0bc6;};'use strict';exports[_0x6085('0x0')]={'queue':{'type':'string','required':!![]},'interface':{'type':_0x6085('0x1'),'required':!![]},'membername':{'type':_0x6085('0x1'),'required':!![]},'penalty':{'type':_0x6085('0x2'),'required':![]},'paused':{'type':'boolean','required':![]}};exports[_0x6085('0x3')]={'queue':{'type':_0x6085('0x1'),'required':!![]},'interface':{'type':'string','required':!![]}};exports[_0x6085('0x4')]={'interface':{'type':_0x6085('0x1'),'required':!![]},'paused':{'type':_0x6085('0x5')},'reason':{'type':_0x6085('0x1'),'required':![]}};exports['reload']={'module':{'type':_0x6085('0x1'),'required':![]}};exports['voicequeuechannel']={'uniqueid':{'type':_0x6085('0x1'),'required':!![]}};exports['voicechannel']={'uniqueid':{'type':_0x6085('0x1'),'required':!![]},'filename':{'type':_0x6085('0x1')},'format':{'type':'string'},'mixmonitorid':{'type':'string'}};exports[_0x6085('0x6')]={'uniqueid':{'type':'string','required':!![]}};exports['voicequeuechannelredirect']={'uniqueid':{'type':_0x6085('0x1'),'required':!![]},'exten':{'type':'string','required':!![]},'context':{'type':'string'}};
\ No newline at end of file
+var _0xbe09=['queueremove','queuepause','voicequeuechannel','voicequeuechannelhangup','string','boolean'];(function(_0x59049f,_0x30de6f){var _0x587f93=function(_0x37d437){while(--_0x37d437){_0x59049f['push'](_0x59049f['shift']());}};_0x587f93(++_0x30de6f);}(_0xbe09,0x1ea));var _0x9be0=function(_0x4173f3,_0x41904c){_0x4173f3=_0x4173f3-0x0;var _0x2431a0=_0xbe09[_0x4173f3];return _0x2431a0;};'use strict';exports['queueadd']={'queue':{'type':_0x9be0('0x0'),'required':!![]},'interface':{'type':_0x9be0('0x0'),'required':!![]},'membername':{'type':'string','required':!![]},'penalty':{'type':'number','required':![]},'paused':{'type':_0x9be0('0x1'),'required':![]}};exports[_0x9be0('0x2')]={'queue':{'type':_0x9be0('0x0'),'required':!![]},'interface':{'type':_0x9be0('0x0'),'required':!![]}};exports[_0x9be0('0x3')]={'interface':{'type':'string','required':!![]},'paused':{'type':_0x9be0('0x1')},'reason':{'type':_0x9be0('0x0'),'required':![]}};exports['reload']={'module':{'type':_0x9be0('0x0'),'required':![]}};exports[_0x9be0('0x4')]={'uniqueid':{'type':_0x9be0('0x0'),'required':!![]}};exports['voicechannel']={'uniqueid':{'type':'string','required':!![]},'filename':{'type':'string'},'format':{'type':_0x9be0('0x0')},'mixmonitorid':{'type':_0x9be0('0x0')}};exports[_0x9be0('0x5')]={'uniqueid':{'type':_0x9be0('0x0'),'required':!![]}};exports['voicequeuechannelredirect']={'uniqueid':{'type':'string','required':!![]},'exten':{'type':_0x9be0('0x0'),'required':!![]},'context':{'type':_0x9be0('0x0')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x535e=['freshsalesAccounts','faxAccounts','mapKeys','format','SIP/%s','name','hasOwnProperty','isNil','interface','total','answered','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','abandoned','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','mergeFromDatabase','initAgents','length','initTelephones','trunks','isUndefined','triggers','initTemplates','templates','initZendeskAccounts','initSalesforceAccounts','salesforceAccounts','initFreshdeskAccounts','initZohoAccounts','initDeskAccounts','initSugarcrmAccounts','sugarcrmAccounts','initVtigerAccounts','initFreshsalesAccounts','merge','initVoiceQueueReports','groupBy','queue','queuecallerexit','unmanaged','queuecallerabandon','queuecallerleaveAt','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerexitAt','diff','queuecallercomplete','initVoiceCallReports','duration','disposition','ANSWERED','billableseconds','dialQueueProject','SquareProject','initFaxAccounts','exports','bluebird','util','lodash','moment','../model/agent','../model/telephone','../model/trunk','../model/voiceQueue','../model/trigger','../model/template','../model/campaign','../model/voiceExtension','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','agents','telephones','voiceQueues','campaigns','outbound','voiceExtensions','channels','queueChannels','settings','zendeskAccounts','freshdeskAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts'];(function(_0x1fafa5,_0x1aa281){var _0xcf08c9=function(_0x3af1b4){while(--_0x3af1b4){_0x1fafa5['push'](_0x1fafa5['shift']());}};_0xcf08c9(++_0x1aa281);}(_0x535e,0xb1));var _0xe535=function(_0x5609a2,_0x42e391){_0x5609a2=_0x5609a2-0x0;var _0x5c38e1=_0x535e[_0x5609a2];return _0x5c38e1;};'use strict';var BPromise=require(_0xe535('0x0'));var util=require(_0xe535('0x1'));var _=require(_0xe535('0x2'));var moment=require(_0xe535('0x3'));var Agent=require(_0xe535('0x4'));var Telephone=require(_0xe535('0x5'));var Trunk=require(_0xe535('0x6'));var VoiceQueue=require(_0xe535('0x7'));var Trigger=require(_0xe535('0x8'));var Template=require(_0xe535('0x9'));var Campaign=require(_0xe535('0xa'));var VoiceExtension=require(_0xe535('0xb'));var ZendeskAccount=require('../model/zendeskAccount');var SalesforceAccount=require(_0xe535('0xc'));var FreshdeskAccount=require(_0xe535('0xd'));var SugarcrmAccount=require(_0xe535('0xe'));var ZohoAccount=require(_0xe535('0xf'));var DeskAccount=require(_0xe535('0x10'));var VtigerAccount=require('../model/vtigerAccount');var ServicenowAccount=require(_0xe535('0x11'));var Dynamics365Account=require(_0xe535('0x12'));var FreshsalesAccount=require(_0xe535('0x13'));var FaxAccount=require(_0xe535('0x14'));var Realtime=function(){this[_0xe535('0x15')]={};this[_0xe535('0x16')]={};this['trunks']={};this[_0xe535('0x17')]={};this['triggers']={};this[_0xe535('0x18')]={};this['templates']={};this[_0xe535('0x19')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0xe535('0x1a')]={};this[_0xe535('0x1b')]={};this[_0xe535('0x1c')]={};this['outboundChannels']={};this['timers']={};this[_0xe535('0x1d')]={};this[_0xe535('0x1e')]={};this['salesforceAccounts']={};this['sugarcrmAccounts']={};this[_0xe535('0x1f')]={};this[_0xe535('0x20')]={};this[_0xe535('0x21')]={};this[_0xe535('0x22')]={};this[_0xe535('0x23')]={};this[_0xe535('0x24')]={};this[_0xe535('0x25')]={};this[_0xe535('0x26')]={};};function freeIsNotKey(_0x1b1c21,_0x4e0d2e,_0x1f7a22){var _0x2ae35d=_[_0xe535('0x27')](_0x1b1c21,function(_0x1f1a0,_0x56961d){return _0x1f1a0[_0x1f7a22];});for(var _0x5841b9 in _0x4e0d2e){if(_0x4e0d2e['hasOwnProperty'](_0x5841b9)){if(!_0x2ae35d[_0x5841b9]){delete _0x4e0d2e[_0x5841b9];}}}}function freeIsNotKeySip(_0x407273,_0x20bead){var _0x3dea14=_[_0xe535('0x27')](_0x407273,function(_0x8456fb,_0x25e627){return util[_0xe535('0x28')](_0xe535('0x29'),_0x8456fb[_0xe535('0x2a')]);});for(var _0xbfbfe3 in _0x20bead){if(_0x20bead[_0xe535('0x2b')](_0xbfbfe3)){if(!_0x3dea14[_0xbfbfe3]){delete _0x20bead[_0xbfbfe3];}}}}function freeIsNotKeyAgent(_0x1acd4f,_0x5995ee){var _0x321404=_[_0xe535('0x27')](_0x1acd4f,function(_0x3af3a2,_0x26fe5e){var _0x1eee9b=_[_0xe535('0x2c')](_0x3af3a2[_0xe535('0x2d')])?util['format'](_0xe535('0x29'),_0x3af3a2['name']):_0x3af3a2[_0xe535('0x2d')];return _0x1eee9b;});for(var _0x32ddbe in _0x5995ee){if(_0x5995ee['hasOwnProperty'](_0x32ddbe)){if(!_0x321404[_0x32ddbe]){delete _0x5995ee[_0x32ddbe];}}}}function clearVoiceCallReports(_0x1f9e44){_0x1f9e44[_0xe535('0x2e')]=0x0;_0x1f9e44[_0xe535('0x2f')]=0x0;_0x1f9e44[_0xe535('0x30')]=0x0;_0x1f9e44[_0xe535('0x31')]=0x0;_0x1f9e44[_0xe535('0x32')]=0x0;}function clearCampaigns(_0x1deac0){if(!_[_0xe535('0x33')](_0x1deac0)){for(var _0x571a88 in _0x1deac0){if(_0x1deac0['hasOwnProperty'](_0x571a88)){_0x1deac0[_0x571a88][_0xe535('0x34')]=0x0;_0x1deac0[_0x571a88][_0xe535('0x35')]=0x0;}}}}function clearVoiceQueues(_0x4b43e4){if(!_['isEmpty'](_0x4b43e4)){for(var _0x4ed27f in _0x4b43e4){if(_0x4b43e4[_0xe535('0x2b')](_0x4ed27f)){_0x4b43e4[_0x4ed27f][_0xe535('0x2e')]=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x2f')]=0x0;_0x4b43e4[_0x4ed27f]['unmanaged']=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x36')]=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x30')]=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x31')]=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x32')]=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x37')]=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x38')]=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x39')]=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x3a')]=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x3b')]=0x0;_0x4b43e4[_0x4ed27f]['outboundUnknownCallsDay']=0x0;_0x4b43e4[_0x4ed27f]['outboundDropCallsDayTimeout']=0x0;_0x4b43e4[_0x4ed27f]['outboundDropCallsDayCallersExit']=0x0;_0x4b43e4[_0x4ed27f]['outboundBlacklistCallsDay']=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x3c')]=0x0;_0x4b43e4[_0x4ed27f]['outboundRejectCallsDay']=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x3d')]=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x37')]=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x3e')]=0x0;_0x4b43e4[_0x4ed27f][_0xe535('0x3f')]=!![];}}}}Realtime[_0xe535('0x40')][_0xe535('0x41')]=function(_0x443b15,_0x4aa1f1){for(var _0x3ffe1c in _0x4aa1f1){if(_0x443b15[_0xe535('0x2b')](_0x3ffe1c)){_0x443b15[_0x3ffe1c]=_0x4aa1f1[_0x3ffe1c];}}};Realtime['prototype'][_0xe535('0x42')]=function(){var _0x1e6253=this;return function(_0x57c5d8){if(_0x57c5d8){freeIsNotKeyAgent(_0x57c5d8,_0x1e6253[_0xe535('0x15')]);for(var _0x3764a8=0x0,_0x16a174={},_0x3173d4={};_0x3764a8<_0x57c5d8[_0xe535('0x43')];_0x3764a8+=0x1){_0x16a174=_0x57c5d8[_0x3764a8];var _0x266545=_['isNil'](_0x16a174['interface'])?util[_0xe535('0x28')](_0xe535('0x29'),_0x16a174[_0xe535('0x2a')]):_0x16a174[_0xe535('0x2d')];if(_['isUndefined'](_0x1e6253['agents'][_0x266545])){_0x1e6253[_0xe535('0x15')][_0x266545]=new Agent(_0x16a174);}else{_0x1e6253['mergeFromDatabase'](_0x1e6253[_0xe535('0x15')][_0x266545],_0x16a174);}}}return _0x1e6253['agents'];};};Realtime[_0xe535('0x40')][_0xe535('0x44')]=function(){var _0x5500dd=this;return function(_0x38204f){if(_0x38204f){freeIsNotKeySip(_0x38204f,_0x5500dd[_0xe535('0x16')]);for(var _0x51ab47=0x0,_0x2656e5={},_0x2fd791={};_0x51ab47<_0x38204f[_0xe535('0x43')];_0x51ab47+=0x1){_0x2656e5=_0x38204f[_0x51ab47];if(_['isUndefined'](_0x5500dd[_0xe535('0x16')][util[_0xe535('0x28')]('SIP/%s',_0x2656e5[_0xe535('0x2a')])])){_0x5500dd['telephones'][util[_0xe535('0x28')](_0xe535('0x29'),_0x2656e5[_0xe535('0x2a')])]=new Telephone(_0x2656e5);}else{_0x5500dd['mergeFromDatabase'](_0x5500dd[_0xe535('0x16')][util[_0xe535('0x28')](_0xe535('0x29'),_0x2656e5[_0xe535('0x2a')])],_0x2656e5);}}}return _0x5500dd[_0xe535('0x16')];};};Realtime[_0xe535('0x40')]['initTrunks']=function(){var _0x57dfc0=this;return function(_0x1fe901){if(_0x1fe901){freeIsNotKeySip(_0x1fe901,_0x57dfc0[_0xe535('0x45')]);for(var _0x48a559=0x0,_0x4488a4={},_0x3ea6fa={};_0x48a559<_0x1fe901[_0xe535('0x43')];_0x48a559+=0x1){_0x4488a4=_0x1fe901[_0x48a559];if(_[_0xe535('0x46')](_0x57dfc0[_0xe535('0x45')][util['format'](_0xe535('0x29'),_0x4488a4[_0xe535('0x2a')])])){_0x57dfc0[_0xe535('0x45')][util[_0xe535('0x28')](_0xe535('0x29'),_0x4488a4[_0xe535('0x2a')])]=new Trunk(_0x4488a4);}else{_0x57dfc0[_0xe535('0x41')](_0x57dfc0[_0xe535('0x45')][util[_0xe535('0x28')](_0xe535('0x29'),_0x4488a4[_0xe535('0x2a')])],_0x4488a4);}}}return _0x57dfc0[_0xe535('0x45')];};};Realtime[_0xe535('0x40')]['initVoiceQueues']=function(){var _0x4830b8=this;return function(_0x68b001){if(_0x68b001){freeIsNotKey(_0x68b001,_0x4830b8[_0xe535('0x17')],_0xe535('0x2a'));for(var _0x507166=0x0,_0x34524c={},_0x4904a0={};_0x507166<_0x68b001[_0xe535('0x43')];_0x507166+=0x1){_0x34524c=_0x68b001[_0x507166];if(_[_0xe535('0x46')](_0x4830b8['voiceQueues'][_0x34524c['name']])){_0x4830b8[_0xe535('0x17')][_0x34524c[_0xe535('0x2a')]]=new VoiceQueue(_0x34524c);}else{_0x4830b8[_0xe535('0x41')](_0x4830b8['voiceQueues'][_0x34524c['name']],_0x34524c);}}}return _0x4830b8[_0xe535('0x17')];};};Realtime['prototype']['initTriggers']=function(){var _0x426e51=this;return function(_0x29880a){if(_0x29880a){freeIsNotKey(_0x29880a,_0x426e51['triggers'],'id');for(var _0x492484=0x0,_0x5801eb={},_0x337191={};_0x492484<_0x29880a[_0xe535('0x43')];_0x492484+=0x1){_0x5801eb=_0x29880a[_0x492484];if(_['isUndefined'](_0x426e51['triggers'][_0x5801eb['id']])){_0x426e51[_0xe535('0x47')][_0x5801eb['id']]=new Trigger(_0x5801eb);}else{_0x426e51[_0xe535('0x41')](_0x426e51['triggers'][_0x5801eb['id']],_0x5801eb);}}}return _0x426e51[_0xe535('0x47')];};};Realtime[_0xe535('0x40')][_0xe535('0x48')]=function(){var _0x259523=this;return function(_0x58a4e0){if(_0x58a4e0){freeIsNotKey(_0x58a4e0,_0x259523['templates'],'id');for(var _0x5c12f5=0x0,_0x3afd15={},_0x43d38d={};_0x5c12f5<_0x58a4e0[_0xe535('0x43')];_0x5c12f5+=0x1){_0x3afd15=_0x58a4e0[_0x5c12f5];if(_[_0xe535('0x46')](_0x259523[_0xe535('0x49')][_0x3afd15['id']])){_0x259523[_0xe535('0x49')][_0x3afd15['id']]=new Template(_0x3afd15);}else{_0x259523[_0xe535('0x41')](_0x259523[_0xe535('0x49')][_0x3afd15['id']],_0x3afd15);}}}return _0x259523[_0xe535('0x49')];};};Realtime[_0xe535('0x40')][_0xe535('0x4a')]=function(){var _0x4cac18=this;return function(_0x2be740){if(_0x2be740){freeIsNotKey(_0x2be740,_0x4cac18[_0xe535('0x1e')],'id');for(var _0x261b60=0x0,_0x81fc82={},_0x1e282a={};_0x261b60<_0x2be740[_0xe535('0x43')];_0x261b60+=0x1){_0x81fc82=_0x2be740[_0x261b60];if(_[_0xe535('0x46')](_0x4cac18['zendeskAccounts'][_0x81fc82['id']])){_0x4cac18[_0xe535('0x1e')][_0x81fc82['id']]=new ZendeskAccount(_0x81fc82);}else{_0x4cac18[_0xe535('0x41')](_0x4cac18[_0xe535('0x1e')][_0x81fc82['id']],_0x81fc82);}}}return _0x4cac18[_0xe535('0x1e')];};};Realtime[_0xe535('0x40')][_0xe535('0x4b')]=function(){var _0x20fe95=this;return function(_0x5cc4e6){if(_0x5cc4e6){freeIsNotKey(_0x5cc4e6,_0x20fe95[_0xe535('0x4c')],'id');for(var _0xa10909=0x0,_0x14fabc={},_0x116e54={};_0xa10909<_0x5cc4e6['length'];_0xa10909+=0x1){_0x14fabc=_0x5cc4e6[_0xa10909];if(_[_0xe535('0x46')](_0x20fe95[_0xe535('0x4c')][_0x14fabc['id']])){_0x20fe95['salesforceAccounts'][_0x14fabc['id']]=new SalesforceAccount(_0x14fabc);}else{_0x20fe95[_0xe535('0x41')](_0x20fe95[_0xe535('0x4c')][_0x14fabc['id']],_0x14fabc);}}}return _0x20fe95[_0xe535('0x4c')];};};Realtime[_0xe535('0x40')][_0xe535('0x4d')]=function(){var _0x2e4a6a=this;return function(_0x55527a){if(_0x55527a){freeIsNotKey(_0x55527a,_0x2e4a6a[_0xe535('0x1f')],'id');for(var _0x2756e3=0x0,_0x23c76f={},_0x2e68c6={};_0x2756e3<_0x55527a[_0xe535('0x43')];_0x2756e3+=0x1){_0x23c76f=_0x55527a[_0x2756e3];if(_[_0xe535('0x46')](_0x2e4a6a[_0xe535('0x1f')][_0x23c76f['id']])){_0x2e4a6a[_0xe535('0x1f')][_0x23c76f['id']]=new FreshdeskAccount(_0x23c76f);}else{_0x2e4a6a[_0xe535('0x41')](_0x2e4a6a[_0xe535('0x1f')][_0x23c76f['id']],_0x23c76f);}}}return _0x2e4a6a[_0xe535('0x1f')];};};Realtime['prototype'][_0xe535('0x4e')]=function(){var _0x3b867d=this;return function(_0x1d81cc){if(_0x1d81cc){freeIsNotKey(_0x1d81cc,_0x3b867d[_0xe535('0x20')],'id');for(var _0x38f27c=0x0,_0x2777e5={},_0x59ea7b={};_0x38f27c<_0x1d81cc[_0xe535('0x43')];_0x38f27c+=0x1){_0x2777e5=_0x1d81cc[_0x38f27c];if(_['isUndefined'](_0x3b867d[_0xe535('0x20')][_0x2777e5['id']])){_0x3b867d[_0xe535('0x20')][_0x2777e5['id']]=new ZohoAccount(_0x2777e5);}else{_0x3b867d[_0xe535('0x41')](_0x3b867d[_0xe535('0x20')][_0x2777e5['id']],_0x2777e5);}}}return _0x3b867d['zohoAccounts'];};};Realtime[_0xe535('0x40')][_0xe535('0x4f')]=function(){var _0x2756e1=this;return function(_0x4c6b7d){if(_0x4c6b7d){freeIsNotKey(_0x4c6b7d,_0x2756e1[_0xe535('0x21')],'id');for(var _0x3e966f=0x0,_0x8b4c1={},_0x269a76={};_0x3e966f<_0x4c6b7d[_0xe535('0x43')];_0x3e966f+=0x1){_0x8b4c1=_0x4c6b7d[_0x3e966f];if(_[_0xe535('0x46')](_0x2756e1[_0xe535('0x21')][_0x8b4c1['id']])){_0x2756e1['deskAccounts'][_0x8b4c1['id']]=new DeskAccount(_0x8b4c1);}else{_0x2756e1[_0xe535('0x41')](_0x2756e1[_0xe535('0x21')][_0x8b4c1['id']],_0x8b4c1);}}}return _0x2756e1[_0xe535('0x21')];};};Realtime[_0xe535('0x40')][_0xe535('0x50')]=function(){var _0x43a72f=this;return function(_0x32e353){if(_0x32e353){freeIsNotKey(_0x32e353,_0x43a72f[_0xe535('0x51')],'id');for(var _0x354d4a=0x0,_0x4daeb4={},_0x54e0a6={};_0x354d4a<_0x32e353[_0xe535('0x43')];_0x354d4a+=0x1){_0x4daeb4=_0x32e353[_0x354d4a];if(_['isUndefined'](_0x43a72f[_0xe535('0x51')][_0x4daeb4['id']])){_0x43a72f[_0xe535('0x51')][_0x4daeb4['id']]=new SugarcrmAccount(_0x4daeb4);}else{_0x43a72f[_0xe535('0x41')](_0x43a72f['sugarcrmAccounts'][_0x4daeb4['id']],_0x4daeb4);}}}return _0x43a72f[_0xe535('0x51')];};};Realtime[_0xe535('0x40')][_0xe535('0x52')]=function(){var _0x408d01=this;return function(_0x190a68){if(_0x190a68){freeIsNotKey(_0x190a68,_0x408d01['vtigerAccounts'],'id');for(var _0x2aaabd=0x0,_0xb69ab2={},_0x25f1b2={};_0x2aaabd<_0x190a68[_0xe535('0x43')];_0x2aaabd+=0x1){_0xb69ab2=_0x190a68[_0x2aaabd];if(_['isUndefined'](_0x408d01[_0xe535('0x22')][_0xb69ab2['id']])){_0x408d01[_0xe535('0x22')][_0xb69ab2['id']]=new VtigerAccount(_0xb69ab2);}else{_0x408d01[_0xe535('0x41')](_0x408d01['vtigerAccounts'][_0xb69ab2['id']],_0xb69ab2);}}}return _0x408d01['vtigerAccounts'];};};Realtime[_0xe535('0x40')]['initServicenowAccounts']=function(){var _0x227b1b=this;return function(_0x40ae19){if(_0x40ae19){freeIsNotKey(_0x40ae19,_0x227b1b[_0xe535('0x23')],'id');for(var _0x44b1bb=0x0,_0x4e987f={},_0x297035={};_0x44b1bb<_0x40ae19[_0xe535('0x43')];_0x44b1bb+=0x1){_0x4e987f=_0x40ae19[_0x44b1bb];if(_['isUndefined'](_0x227b1b['servicenowAccounts'][_0x4e987f['id']])){_0x227b1b['servicenowAccounts'][_0x4e987f['id']]=new ServicenowAccount(_0x4e987f);}else{_0x227b1b[_0xe535('0x41')](_0x227b1b[_0xe535('0x23')][_0x4e987f['id']],_0x4e987f);}}}return _0x227b1b[_0xe535('0x23')];};};Realtime['prototype']['initDynamics365Accounts']=function(){var _0x226666=this;return function(_0x2e8f27){if(_0x2e8f27){freeIsNotKey(_0x2e8f27,_0x226666[_0xe535('0x24')],'id');for(var _0x15af87=0x0,_0x159130={},_0x23e5ad={};_0x15af87<_0x2e8f27[_0xe535('0x43')];_0x15af87+=0x1){_0x159130=_0x2e8f27[_0x15af87];if(_[_0xe535('0x46')](_0x226666[_0xe535('0x24')][_0x159130['id']])){_0x226666[_0xe535('0x24')][_0x159130['id']]=new Dynamics365Account(_0x159130);}else{_0x226666['mergeFromDatabase'](_0x226666['dynamics365Accounts'][_0x159130['id']],_0x159130);}}}return _0x226666[_0xe535('0x24')];};};Realtime[_0xe535('0x40')][_0xe535('0x53')]=function(){var _0x32683d=this;return function(_0x32057c){if(_0x32057c){freeIsNotKey(_0x32057c,_0x32683d[_0xe535('0x25')],'id');for(var _0x18c4e7=0x0,_0xba6274={},_0x411af3={};_0x18c4e7<_0x32057c['length'];_0x18c4e7+=0x1){_0xba6274=_0x32057c[_0x18c4e7];if(_['isUndefined'](_0x32683d[_0xe535('0x25')][_0xba6274['id']])){_0x32683d[_0xe535('0x25')][_0xba6274['id']]=new FreshsalesAccount(_0xba6274);}else{_0x32683d[_0xe535('0x41')](_0x32683d[_0xe535('0x25')][_0xba6274['id']],_0xba6274);}}}return _0x32683d[_0xe535('0x25')];};};Realtime[_0xe535('0x40')]['initVoiceQueueHopperHistory']=function(){var _0x131f70=this;return function(_0x313ad9){for(var _0x57b292=0x0;_0x57b292<_0x313ad9[_0xe535('0x43')];_0x57b292+=0x1){_[_0xe535('0x54')](_0x131f70[_0xe535('0x17')][_0x313ad9[_0x57b292]['name']],_0x313ad9[_0x57b292]);}return _0x131f70[_0xe535('0x17')];};};Realtime['prototype'][_0xe535('0x55')]=function(){var _0x363a3e=this;return function(_0x312a39){clearVoiceQueues(_0x363a3e['voiceQueues']);if(_0x312a39){_0x312a39=_[_0xe535('0x56')](_0x312a39,'uniqueid');for(var _0x1ebb59 in _0x312a39){if(_0x312a39[_0xe535('0x2b')](_0x1ebb59)){var _0x1af1f5={};for(var _0x3cf038=0x0;_0x3cf038<_0x312a39[_0x1ebb59][_0xe535('0x43')];_0x3cf038+=0x1){var _0x21ac9c=_0x312a39[_0x1ebb59][_0x3cf038][_0xe535('0x57')];if(_0x363a3e[_0xe535('0x17')][_0x21ac9c]){if(_0x312a39[_0x1ebb59][_0x3cf038][_0xe535('0x58')]){_0x363a3e[_0xe535('0x17')][_0x21ac9c][_0xe535('0x59')]+=0x1;}if(_0x312a39[_0x1ebb59][_0x3cf038][_0xe535('0x5a')]){_0x363a3e['voiceQueues'][_0x21ac9c]['abandoned']+=0x1;}_0x363a3e[_0xe535('0x17')][_0x21ac9c][_0xe535('0x30')]+=moment(_0x312a39[_0x1ebb59][_0x3cf038][_0xe535('0x5b')])['diff'](moment(_0x312a39[_0x1ebb59][_0x3cf038][_0xe535('0x5c')]),_0xe535('0x5d'))||0x0;if(_0x3cf038===_0x312a39[_0x1ebb59][_0xe535('0x43')]-0x1){_0x363a3e[_0xe535('0x17')][_0x21ac9c][_0xe535('0x31')]+=moment(_0x312a39[_0x1ebb59][_0x3cf038][_0xe535('0x5e')]||_0x312a39[_0x1ebb59][_0x3cf038]['queuecallerabandonAt']||_0x312a39[_0x1ebb59][_0x3cf038][_0xe535('0x5f')])[_0xe535('0x60')](moment(_0x312a39[_0x1ebb59][_0x3cf038]['queuecallerjoinAt']),'seconds')||0x0;_0x363a3e['voiceQueues'][_0x21ac9c][_0xe535('0x2e')]+=0x1;if(_0x312a39[_0x1ebb59][_0x3cf038][_0xe535('0x61')]){_0x363a3e[_0xe535('0x17')][_0x21ac9c][_0xe535('0x2f')]+=0x1;_0x363a3e[_0xe535('0x17')][_0x21ac9c][_0xe535('0x32')]+=moment(_0x312a39[_0x1ebb59][_0x3cf038]['queuecallercompleteAt'])[_0xe535('0x60')](moment(_0x312a39[_0x1ebb59][_0x3cf038]['queuecallerleaveAt']),_0xe535('0x5d'))||0x0;}}else{_0x363a3e[_0xe535('0x17')][_0x21ac9c][_0xe535('0x31')]+=_0x363a3e['voiceQueues'][_0x21ac9c][_0xe535('0x30')]||0x0;}}}}}}return _0x363a3e[_0xe535('0x17')];};};Realtime['prototype'][_0xe535('0x62')]=function(){var _0x37d41a=this;return function(_0xca3e18){clearVoiceCallReports(_0x37d41a[_0xe535('0x19')]);if(_0xca3e18){for(var _0x10a730=0x0;_0x10a730<_0xca3e18[_0xe535('0x43')];_0x10a730+=0x1){_0x37d41a[_0xe535('0x19')]['total']+=0x1;_0x37d41a[_0xe535('0x19')][_0xe535('0x31')]+=_0xca3e18[_0x10a730][_0xe535('0x63')];if(_0xca3e18[_0x10a730][_0xe535('0x64')]===_0xe535('0x65')){_0x37d41a[_0xe535('0x19')]['answered']+=0x1;_0x37d41a[_0xe535('0x19')]['sumHoldTime']+=_0xca3e18[_0x10a730][_0xe535('0x63')]-_0xca3e18[_0x10a730][_0xe535('0x66')]||0x0;_0x37d41a[_0xe535('0x19')][_0xe535('0x32')]+=_0xca3e18[_0x10a730][_0xe535('0x66')];}}}return _0x37d41a['outbound'];};};Realtime[_0xe535('0x40')]['initCampaigns']=function(){var _0x3e9bf3=this;return function(_0x2c6b7d){if(_0x2c6b7d){freeIsNotKey(_0x2c6b7d,_0x3e9bf3[_0xe535('0x18')],_0xe535('0x2a'));for(var _0x4bac0b=0x0,_0x55b2c3={};_0x4bac0b<_0x2c6b7d['length'];_0x4bac0b+=0x1){_0x55b2c3=_0x2c6b7d[_0x4bac0b];if(_[_0xe535('0x46')](_0x3e9bf3['campaigns'][_0x55b2c3[_0xe535('0x2a')]])){_0x3e9bf3[_0xe535('0x18')][_0x55b2c3['name']]=new Campaign(_0x55b2c3);}else{_0x3e9bf3[_0xe535('0x41')](_0x3e9bf3[_0xe535('0x18')][_0x55b2c3[_0xe535('0x2a')]],_0x55b2c3);_0x3e9bf3['campaigns'][_0x55b2c3['name']][_0xe535('0x67')]=_0x55b2c3[_0xe535('0x68')]?_0x55b2c3[_0xe535('0x68')]['name']:undefined;}}}return _0x3e9bf3['campaigns'];};};Realtime['prototype']['initVoiceExtensions']=function(){var _0x3410e4=this;return function(_0x2d1bef){if(_0x2d1bef){freeIsNotKey(_0x2d1bef,_0x3410e4['voiceExtensions'],'id');for(var _0x3f66ce=0x0,_0x232f41={};_0x3f66ce<_0x2d1bef['length'];_0x3f66ce+=0x1){_0x232f41=_0x2d1bef[_0x3f66ce];if(_[_0xe535('0x46')](_0x3410e4[_0xe535('0x1a')][_0x232f41['id']])){_0x3410e4[_0xe535('0x1a')][_0x232f41['id']]=new VoiceExtension(_0x232f41);}else{_0x3410e4['mergeFromDatabase'](_0x3410e4['voiceExtensions'][_0x232f41['id']],_0x232f41);}}}return _0x3410e4['voiceExtensions'];};};Realtime[_0xe535('0x40')]['initCampaignHopperHistory']=function(){var _0x124596=this;return function(_0x3807e5){clearCampaigns(_0x124596[_0xe535('0x18')]);for(var _0x1ff015=0x0;_0x1ff015<_0x3807e5[_0xe535('0x43')];_0x1ff015+=0x1){_[_0xe535('0x54')](_0x124596['campaigns'][_0x3807e5[_0x1ff015][_0xe535('0x2a')]],_0x3807e5[_0x1ff015]);}return _0x124596[_0xe535('0x18')];};};Realtime[_0xe535('0x40')][_0xe535('0x69')]=function(){var _0x569f70=this;return function(_0x31b7b4){if(_0x31b7b4){freeIsNotKey(_0x31b7b4,_0x569f70['faxAccounts'],'id');for(var _0x42ea9d=0x0,_0x1df3e7={},_0x2fbb29={};_0x42ea9d<_0x31b7b4[_0xe535('0x43')];_0x42ea9d+=0x1){_0x1df3e7=_0x31b7b4[_0x42ea9d];if(_['isUndefined'](_0x569f70[_0xe535('0x26')][_0x1df3e7['id']])){_0x569f70[_0xe535('0x26')][_0x1df3e7['id']]=new FaxAccount(_0x1df3e7);}else{_0x569f70[_0xe535('0x41')](_0x569f70['faxAccounts'][_0x1df3e7['id']],_0x1df3e7);}}}return _0x569f70[_0xe535('0x26')];};};module[_0xe535('0x6a')]=Realtime;
\ No newline at end of file
+var _0x7b13=['zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','faxAccounts','mapKeys','hasOwnProperty','SIP/%s','name','isNil','interface','format','total','answered','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','unmanaged','abandoned','outboundBusyCallsDay','outboundCongestionCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundBlacklistCallsDay','outboundRejectCallsDay','outboundReCallsDay','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','mergeFromDatabase','initAgents','length','isUndefined','initVoiceQueues','voiceQueues','initTriggers','initTemplates','initZendeskAccounts','zendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','initZohoAccounts','initSugarcrmAccounts','initVtigerAccounts','initServicenowAccounts','initDynamics365Accounts','initFreshsalesAccounts','freshsalesAccounts','initVoiceQueueHopperHistory','merge','initVoiceQueueReports','groupBy','uniqueid','queue','queuecallerexit','queuecallerabandon','sumHoldTime','queuecallerleaveAt','diff','queuecallerjoinAt','queuecallercompleteAt','queuecallerexitAt','seconds','queuecallercomplete','initVoiceCallReports','duration','billableseconds','initCampaigns','dialQueueProject','SquareProject','initVoiceExtensions','initCampaignHopperHistory','initFaxAccounts','exports','bluebird','lodash','moment','../model/agent','../model/trunk','../model/voiceQueue','../model/trigger','../model/template','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','agents','telephones','trunks','triggers','campaigns','templates','outbound','voiceExtensions','channels','queueChannels','outboundChannels','settings','salesforceAccounts','sugarcrmAccounts','freshdeskAccounts'];(function(_0x1f0231,_0x3bb286){var _0x3c9964=function(_0x1a48e3){while(--_0x1a48e3){_0x1f0231['push'](_0x1f0231['shift']());}};_0x3c9964(++_0x3bb286);}(_0x7b13,0x12e));var _0x37b1=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0x7b13[_0x4b369d];return _0x571a98;};'use strict';var BPromise=require(_0x37b1('0x0'));var util=require('util');var _=require(_0x37b1('0x1'));var moment=require(_0x37b1('0x2'));var Agent=require(_0x37b1('0x3'));var Telephone=require('../model/telephone');var Trunk=require(_0x37b1('0x4'));var VoiceQueue=require(_0x37b1('0x5'));var Trigger=require(_0x37b1('0x6'));var Template=require(_0x37b1('0x7'));var Campaign=require(_0x37b1('0x8'));var VoiceExtension=require(_0x37b1('0x9'));var ZendeskAccount=require(_0x37b1('0xa'));var SalesforceAccount=require(_0x37b1('0xb'));var FreshdeskAccount=require('../model/freshdeskAccount');var SugarcrmAccount=require(_0x37b1('0xc'));var ZohoAccount=require(_0x37b1('0xd'));var DeskAccount=require(_0x37b1('0xe'));var VtigerAccount=require(_0x37b1('0xf'));var ServicenowAccount=require(_0x37b1('0x10'));var Dynamics365Account=require(_0x37b1('0x11'));var FreshsalesAccount=require(_0x37b1('0x12'));var FaxAccount=require('../model/faxAccount');var Realtime=function(){this[_0x37b1('0x13')]={};this[_0x37b1('0x14')]={};this[_0x37b1('0x15')]={};this['voiceQueues']={};this[_0x37b1('0x16')]={};this[_0x37b1('0x17')]={};this[_0x37b1('0x18')]={};this[_0x37b1('0x19')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x37b1('0x1a')]={};this[_0x37b1('0x1b')]={};this[_0x37b1('0x1c')]={};this[_0x37b1('0x1d')]={};this['timers']={};this[_0x37b1('0x1e')]={};this['zendeskAccounts']={};this[_0x37b1('0x1f')]={};this[_0x37b1('0x20')]={};this[_0x37b1('0x21')]={};this[_0x37b1('0x22')]={};this[_0x37b1('0x23')]={};this[_0x37b1('0x24')]={};this[_0x37b1('0x25')]={};this[_0x37b1('0x26')]={};this['freshsalesAccounts']={};this[_0x37b1('0x27')]={};};function freeIsNotKey(_0xe90e4d,_0x3bc83a,_0x14b46d){var _0x4b5ab1=_[_0x37b1('0x28')](_0xe90e4d,function(_0x52895d,_0x141eec){return _0x52895d[_0x14b46d];});for(var _0x402272 in _0x3bc83a){if(_0x3bc83a[_0x37b1('0x29')](_0x402272)){if(!_0x4b5ab1[_0x402272]){delete _0x3bc83a[_0x402272];}}}}function freeIsNotKeySip(_0x1fcbe0,_0x23852b){var _0x5b8b0a=_[_0x37b1('0x28')](_0x1fcbe0,function(_0x338b9b,_0x1da2a7){return util['format'](_0x37b1('0x2a'),_0x338b9b[_0x37b1('0x2b')]);});for(var _0x248e53 in _0x23852b){if(_0x23852b[_0x37b1('0x29')](_0x248e53)){if(!_0x5b8b0a[_0x248e53]){delete _0x23852b[_0x248e53];}}}}function freeIsNotKeyAgent(_0x431a41,_0x3c9260){var _0x4af5ae=_[_0x37b1('0x28')](_0x431a41,function(_0x13765f,_0x369446){var _0x1164ac=_[_0x37b1('0x2c')](_0x13765f[_0x37b1('0x2d')])?util[_0x37b1('0x2e')](_0x37b1('0x2a'),_0x13765f['name']):_0x13765f[_0x37b1('0x2d')];return _0x1164ac;});for(var _0x50937f in _0x3c9260){if(_0x3c9260[_0x37b1('0x29')](_0x50937f)){if(!_0x4af5ae[_0x50937f]){delete _0x3c9260[_0x50937f];}}}}function clearVoiceCallReports(_0x492797){_0x492797[_0x37b1('0x2f')]=0x0;_0x492797[_0x37b1('0x30')]=0x0;_0x492797['sumHoldTime']=0x0;_0x492797[_0x37b1('0x31')]=0x0;_0x492797[_0x37b1('0x32')]=0x0;}function clearCampaigns(_0x393b00){if(!_[_0x37b1('0x33')](_0x393b00)){for(var _0x3c5672 in _0x393b00){if(_0x393b00[_0x37b1('0x29')](_0x3c5672)){_0x393b00[_0x3c5672][_0x37b1('0x34')]=0x0;_0x393b00[_0x3c5672][_0x37b1('0x35')]=0x0;}}}}function clearVoiceQueues(_0x463520){if(!_[_0x37b1('0x33')](_0x463520)){for(var _0xc9df2e in _0x463520){if(_0x463520[_0x37b1('0x29')](_0xc9df2e)){_0x463520[_0xc9df2e]['total']=0x0;_0x463520[_0xc9df2e]['answered']=0x0;_0x463520[_0xc9df2e][_0x37b1('0x36')]=0x0;_0x463520[_0xc9df2e][_0x37b1('0x37')]=0x0;_0x463520[_0xc9df2e]['sumHoldTime']=0x0;_0x463520[_0xc9df2e][_0x37b1('0x31')]=0x0;_0x463520[_0xc9df2e][_0x37b1('0x32')]=0x0;_0x463520[_0xc9df2e]['outboundAnswerAgiCallsDay']=0x0;_0x463520[_0xc9df2e]['outboundNoAnswerCallsDay']=0x0;_0x463520[_0xc9df2e][_0x37b1('0x38')]=0x0;_0x463520[_0xc9df2e][_0x37b1('0x39')]=0x0;_0x463520[_0xc9df2e]['outboundNoSuchCallsDay']=0x0;_0x463520[_0xc9df2e][_0x37b1('0x3a')]=0x0;_0x463520[_0xc9df2e][_0x37b1('0x3b')]=0x0;_0x463520[_0xc9df2e]['outboundDropCallsDayCallersExit']=0x0;_0x463520[_0xc9df2e][_0x37b1('0x3c')]=0x0;_0x463520[_0xc9df2e]['outboundOriginateFailureCallsDay']=0x0;_0x463520[_0xc9df2e][_0x37b1('0x3d')]=0x0;_0x463520[_0xc9df2e][_0x37b1('0x3e')]=0x0;_0x463520[_0xc9df2e][_0x37b1('0x3f')]=0x0;_0x463520[_0xc9df2e][_0x37b1('0x40')]=0x0;_0x463520[_0xc9df2e][_0x37b1('0x41')]=!![];}}}}Realtime[_0x37b1('0x42')][_0x37b1('0x43')]=function(_0x3d58db,_0x58dc02){for(var _0x3d7fc7 in _0x58dc02){if(_0x3d58db[_0x37b1('0x29')](_0x3d7fc7)){_0x3d58db[_0x3d7fc7]=_0x58dc02[_0x3d7fc7];}}};Realtime['prototype'][_0x37b1('0x44')]=function(){var _0x2b86bc=this;return function(_0x4e3175){if(_0x4e3175){freeIsNotKeyAgent(_0x4e3175,_0x2b86bc[_0x37b1('0x13')]);for(var _0x511d9b=0x0,_0x4367a0={},_0x37a6ca={};_0x511d9b<_0x4e3175[_0x37b1('0x45')];_0x511d9b+=0x1){_0x4367a0=_0x4e3175[_0x511d9b];var _0x21ae1a=_[_0x37b1('0x2c')](_0x4367a0[_0x37b1('0x2d')])?util[_0x37b1('0x2e')](_0x37b1('0x2a'),_0x4367a0[_0x37b1('0x2b')]):_0x4367a0['interface'];if(_[_0x37b1('0x46')](_0x2b86bc[_0x37b1('0x13')][_0x21ae1a])){_0x2b86bc[_0x37b1('0x13')][_0x21ae1a]=new Agent(_0x4367a0);}else{_0x2b86bc[_0x37b1('0x43')](_0x2b86bc[_0x37b1('0x13')][_0x21ae1a],_0x4367a0);}}}return _0x2b86bc[_0x37b1('0x13')];};};Realtime[_0x37b1('0x42')]['initTelephones']=function(){var _0x12178f=this;return function(_0x28cf8e){if(_0x28cf8e){freeIsNotKeySip(_0x28cf8e,_0x12178f[_0x37b1('0x14')]);for(var _0x1579c8=0x0,_0x67b816={},_0x58c5f4={};_0x1579c8<_0x28cf8e[_0x37b1('0x45')];_0x1579c8+=0x1){_0x67b816=_0x28cf8e[_0x1579c8];if(_['isUndefined'](_0x12178f[_0x37b1('0x14')][util[_0x37b1('0x2e')](_0x37b1('0x2a'),_0x67b816[_0x37b1('0x2b')])])){_0x12178f[_0x37b1('0x14')][util[_0x37b1('0x2e')](_0x37b1('0x2a'),_0x67b816[_0x37b1('0x2b')])]=new Telephone(_0x67b816);}else{_0x12178f[_0x37b1('0x43')](_0x12178f[_0x37b1('0x14')][util[_0x37b1('0x2e')](_0x37b1('0x2a'),_0x67b816[_0x37b1('0x2b')])],_0x67b816);}}}return _0x12178f[_0x37b1('0x14')];};};Realtime[_0x37b1('0x42')]['initTrunks']=function(){var _0x3fa24b=this;return function(_0x308310){if(_0x308310){freeIsNotKeySip(_0x308310,_0x3fa24b[_0x37b1('0x15')]);for(var _0x75e707=0x0,_0x1cadfc={},_0x4c883f={};_0x75e707<_0x308310[_0x37b1('0x45')];_0x75e707+=0x1){_0x1cadfc=_0x308310[_0x75e707];if(_[_0x37b1('0x46')](_0x3fa24b[_0x37b1('0x15')][util[_0x37b1('0x2e')](_0x37b1('0x2a'),_0x1cadfc[_0x37b1('0x2b')])])){_0x3fa24b[_0x37b1('0x15')][util[_0x37b1('0x2e')](_0x37b1('0x2a'),_0x1cadfc[_0x37b1('0x2b')])]=new Trunk(_0x1cadfc);}else{_0x3fa24b[_0x37b1('0x43')](_0x3fa24b[_0x37b1('0x15')][util[_0x37b1('0x2e')](_0x37b1('0x2a'),_0x1cadfc[_0x37b1('0x2b')])],_0x1cadfc);}}}return _0x3fa24b['trunks'];};};Realtime['prototype'][_0x37b1('0x47')]=function(){var _0x1f642c=this;return function(_0x5a5700){if(_0x5a5700){freeIsNotKey(_0x5a5700,_0x1f642c[_0x37b1('0x48')],_0x37b1('0x2b'));for(var _0x42e7f7=0x0,_0x3600bc={},_0x326ac4={};_0x42e7f7<_0x5a5700[_0x37b1('0x45')];_0x42e7f7+=0x1){_0x3600bc=_0x5a5700[_0x42e7f7];if(_[_0x37b1('0x46')](_0x1f642c[_0x37b1('0x48')][_0x3600bc[_0x37b1('0x2b')]])){_0x1f642c['voiceQueues'][_0x3600bc[_0x37b1('0x2b')]]=new VoiceQueue(_0x3600bc);}else{_0x1f642c[_0x37b1('0x43')](_0x1f642c[_0x37b1('0x48')][_0x3600bc[_0x37b1('0x2b')]],_0x3600bc);}}}return _0x1f642c[_0x37b1('0x48')];};};Realtime['prototype'][_0x37b1('0x49')]=function(){var _0xf571dc=this;return function(_0x1ca061){if(_0x1ca061){freeIsNotKey(_0x1ca061,_0xf571dc[_0x37b1('0x16')],'id');for(var _0x2b720d=0x0,_0x4194b0={},_0x14f7ee={};_0x2b720d<_0x1ca061[_0x37b1('0x45')];_0x2b720d+=0x1){_0x4194b0=_0x1ca061[_0x2b720d];if(_[_0x37b1('0x46')](_0xf571dc[_0x37b1('0x16')][_0x4194b0['id']])){_0xf571dc[_0x37b1('0x16')][_0x4194b0['id']]=new Trigger(_0x4194b0);}else{_0xf571dc[_0x37b1('0x43')](_0xf571dc[_0x37b1('0x16')][_0x4194b0['id']],_0x4194b0);}}}return _0xf571dc[_0x37b1('0x16')];};};Realtime[_0x37b1('0x42')][_0x37b1('0x4a')]=function(){var _0x36d9b0=this;return function(_0x224459){if(_0x224459){freeIsNotKey(_0x224459,_0x36d9b0[_0x37b1('0x18')],'id');for(var _0x35f70e=0x0,_0x410f1f={},_0x480230={};_0x35f70e<_0x224459[_0x37b1('0x45')];_0x35f70e+=0x1){_0x410f1f=_0x224459[_0x35f70e];if(_[_0x37b1('0x46')](_0x36d9b0[_0x37b1('0x18')][_0x410f1f['id']])){_0x36d9b0[_0x37b1('0x18')][_0x410f1f['id']]=new Template(_0x410f1f);}else{_0x36d9b0[_0x37b1('0x43')](_0x36d9b0['templates'][_0x410f1f['id']],_0x410f1f);}}}return _0x36d9b0[_0x37b1('0x18')];};};Realtime[_0x37b1('0x42')][_0x37b1('0x4b')]=function(){var _0x272285=this;return function(_0x573457){if(_0x573457){freeIsNotKey(_0x573457,_0x272285[_0x37b1('0x4c')],'id');for(var _0x4b4f32=0x0,_0x40f754={},_0x2ec9ec={};_0x4b4f32<_0x573457[_0x37b1('0x45')];_0x4b4f32+=0x1){_0x40f754=_0x573457[_0x4b4f32];if(_[_0x37b1('0x46')](_0x272285[_0x37b1('0x4c')][_0x40f754['id']])){_0x272285[_0x37b1('0x4c')][_0x40f754['id']]=new ZendeskAccount(_0x40f754);}else{_0x272285[_0x37b1('0x43')](_0x272285['zendeskAccounts'][_0x40f754['id']],_0x40f754);}}}return _0x272285[_0x37b1('0x4c')];};};Realtime[_0x37b1('0x42')][_0x37b1('0x4d')]=function(){var _0x5bb7af=this;return function(_0x4535bc){if(_0x4535bc){freeIsNotKey(_0x4535bc,_0x5bb7af[_0x37b1('0x1f')],'id');for(var _0x11cff6=0x0,_0x5d755d={},_0x5f1d57={};_0x11cff6<_0x4535bc[_0x37b1('0x45')];_0x11cff6+=0x1){_0x5d755d=_0x4535bc[_0x11cff6];if(_['isUndefined'](_0x5bb7af['salesforceAccounts'][_0x5d755d['id']])){_0x5bb7af['salesforceAccounts'][_0x5d755d['id']]=new SalesforceAccount(_0x5d755d);}else{_0x5bb7af[_0x37b1('0x43')](_0x5bb7af['salesforceAccounts'][_0x5d755d['id']],_0x5d755d);}}}return _0x5bb7af[_0x37b1('0x1f')];};};Realtime[_0x37b1('0x42')][_0x37b1('0x4e')]=function(){var _0x174593=this;return function(_0x1cc10a){if(_0x1cc10a){freeIsNotKey(_0x1cc10a,_0x174593[_0x37b1('0x21')],'id');for(var _0x1234ff=0x0,_0x345959={},_0x3f0b25={};_0x1234ff<_0x1cc10a[_0x37b1('0x45')];_0x1234ff+=0x1){_0x345959=_0x1cc10a[_0x1234ff];if(_['isUndefined'](_0x174593[_0x37b1('0x21')][_0x345959['id']])){_0x174593['freshdeskAccounts'][_0x345959['id']]=new FreshdeskAccount(_0x345959);}else{_0x174593[_0x37b1('0x43')](_0x174593['freshdeskAccounts'][_0x345959['id']],_0x345959);}}}return _0x174593['freshdeskAccounts'];};};Realtime[_0x37b1('0x42')][_0x37b1('0x4f')]=function(){var _0x31a54b=this;return function(_0x38dc9b){if(_0x38dc9b){freeIsNotKey(_0x38dc9b,_0x31a54b['zohoAccounts'],'id');for(var _0xb6c45b=0x0,_0x2ea0f0={},_0x2d5afb={};_0xb6c45b<_0x38dc9b[_0x37b1('0x45')];_0xb6c45b+=0x1){_0x2ea0f0=_0x38dc9b[_0xb6c45b];if(_['isUndefined'](_0x31a54b[_0x37b1('0x22')][_0x2ea0f0['id']])){_0x31a54b['zohoAccounts'][_0x2ea0f0['id']]=new ZohoAccount(_0x2ea0f0);}else{_0x31a54b[_0x37b1('0x43')](_0x31a54b[_0x37b1('0x22')][_0x2ea0f0['id']],_0x2ea0f0);}}}return _0x31a54b[_0x37b1('0x22')];};};Realtime['prototype']['initDeskAccounts']=function(){var _0x4b2a65=this;return function(_0x419678){if(_0x419678){freeIsNotKey(_0x419678,_0x4b2a65[_0x37b1('0x23')],'id');for(var _0x12abbe=0x0,_0x3c0b43={},_0x4d7b18={};_0x12abbe<_0x419678[_0x37b1('0x45')];_0x12abbe+=0x1){_0x3c0b43=_0x419678[_0x12abbe];if(_['isUndefined'](_0x4b2a65[_0x37b1('0x23')][_0x3c0b43['id']])){_0x4b2a65[_0x37b1('0x23')][_0x3c0b43['id']]=new DeskAccount(_0x3c0b43);}else{_0x4b2a65[_0x37b1('0x43')](_0x4b2a65['deskAccounts'][_0x3c0b43['id']],_0x3c0b43);}}}return _0x4b2a65[_0x37b1('0x23')];};};Realtime[_0x37b1('0x42')][_0x37b1('0x50')]=function(){var _0x434158=this;return function(_0x305040){if(_0x305040){freeIsNotKey(_0x305040,_0x434158[_0x37b1('0x20')],'id');for(var _0x3586e4=0x0,_0xe0fbb3={},_0xde250e={};_0x3586e4<_0x305040['length'];_0x3586e4+=0x1){_0xe0fbb3=_0x305040[_0x3586e4];if(_[_0x37b1('0x46')](_0x434158['sugarcrmAccounts'][_0xe0fbb3['id']])){_0x434158['sugarcrmAccounts'][_0xe0fbb3['id']]=new SugarcrmAccount(_0xe0fbb3);}else{_0x434158[_0x37b1('0x43')](_0x434158[_0x37b1('0x20')][_0xe0fbb3['id']],_0xe0fbb3);}}}return _0x434158['sugarcrmAccounts'];};};Realtime[_0x37b1('0x42')][_0x37b1('0x51')]=function(){var _0x5c683e=this;return function(_0x39bc57){if(_0x39bc57){freeIsNotKey(_0x39bc57,_0x5c683e[_0x37b1('0x24')],'id');for(var _0x1f20d9=0x0,_0x196718={},_0x418d87={};_0x1f20d9<_0x39bc57['length'];_0x1f20d9+=0x1){_0x196718=_0x39bc57[_0x1f20d9];if(_[_0x37b1('0x46')](_0x5c683e[_0x37b1('0x24')][_0x196718['id']])){_0x5c683e[_0x37b1('0x24')][_0x196718['id']]=new VtigerAccount(_0x196718);}else{_0x5c683e['mergeFromDatabase'](_0x5c683e['vtigerAccounts'][_0x196718['id']],_0x196718);}}}return _0x5c683e['vtigerAccounts'];};};Realtime[_0x37b1('0x42')][_0x37b1('0x52')]=function(){var _0xdfc55a=this;return function(_0x34a9a8){if(_0x34a9a8){freeIsNotKey(_0x34a9a8,_0xdfc55a[_0x37b1('0x25')],'id');for(var _0x1ffdbd=0x0,_0x3064f8={},_0x2a3030={};_0x1ffdbd<_0x34a9a8['length'];_0x1ffdbd+=0x1){_0x3064f8=_0x34a9a8[_0x1ffdbd];if(_[_0x37b1('0x46')](_0xdfc55a[_0x37b1('0x25')][_0x3064f8['id']])){_0xdfc55a[_0x37b1('0x25')][_0x3064f8['id']]=new ServicenowAccount(_0x3064f8);}else{_0xdfc55a[_0x37b1('0x43')](_0xdfc55a[_0x37b1('0x25')][_0x3064f8['id']],_0x3064f8);}}}return _0xdfc55a[_0x37b1('0x25')];};};Realtime[_0x37b1('0x42')][_0x37b1('0x53')]=function(){var _0x25400b=this;return function(_0x1ed688){if(_0x1ed688){freeIsNotKey(_0x1ed688,_0x25400b[_0x37b1('0x26')],'id');for(var _0x42a154=0x0,_0x11dc79={},_0x415b33={};_0x42a154<_0x1ed688[_0x37b1('0x45')];_0x42a154+=0x1){_0x11dc79=_0x1ed688[_0x42a154];if(_[_0x37b1('0x46')](_0x25400b[_0x37b1('0x26')][_0x11dc79['id']])){_0x25400b[_0x37b1('0x26')][_0x11dc79['id']]=new Dynamics365Account(_0x11dc79);}else{_0x25400b['mergeFromDatabase'](_0x25400b[_0x37b1('0x26')][_0x11dc79['id']],_0x11dc79);}}}return _0x25400b[_0x37b1('0x26')];};};Realtime[_0x37b1('0x42')][_0x37b1('0x54')]=function(){var _0x5ccd07=this;return function(_0x11338b){if(_0x11338b){freeIsNotKey(_0x11338b,_0x5ccd07['freshsalesAccounts'],'id');for(var _0x454c44=0x0,_0x333edf={},_0x111af1={};_0x454c44<_0x11338b[_0x37b1('0x45')];_0x454c44+=0x1){_0x333edf=_0x11338b[_0x454c44];if(_['isUndefined'](_0x5ccd07[_0x37b1('0x55')][_0x333edf['id']])){_0x5ccd07[_0x37b1('0x55')][_0x333edf['id']]=new FreshsalesAccount(_0x333edf);}else{_0x5ccd07[_0x37b1('0x43')](_0x5ccd07[_0x37b1('0x55')][_0x333edf['id']],_0x333edf);}}}return _0x5ccd07['freshsalesAccounts'];};};Realtime[_0x37b1('0x42')][_0x37b1('0x56')]=function(){var _0x2a3908=this;return function(_0x3f5045){for(var _0x4cae1e=0x0;_0x4cae1e<_0x3f5045[_0x37b1('0x45')];_0x4cae1e+=0x1){_[_0x37b1('0x57')](_0x2a3908[_0x37b1('0x48')][_0x3f5045[_0x4cae1e][_0x37b1('0x2b')]],_0x3f5045[_0x4cae1e]);}return _0x2a3908['voiceQueues'];};};Realtime[_0x37b1('0x42')][_0x37b1('0x58')]=function(){var _0x19b3c0=this;return function(_0x592f04){clearVoiceQueues(_0x19b3c0[_0x37b1('0x48')]);if(_0x592f04){_0x592f04=_[_0x37b1('0x59')](_0x592f04,_0x37b1('0x5a'));for(var _0x45f725 in _0x592f04){if(_0x592f04[_0x37b1('0x29')](_0x45f725)){var _0x1582cb={};for(var _0x326a30=0x0;_0x326a30<_0x592f04[_0x45f725][_0x37b1('0x45')];_0x326a30+=0x1){var _0x4a9e33=_0x592f04[_0x45f725][_0x326a30][_0x37b1('0x5b')];if(_0x19b3c0[_0x37b1('0x48')][_0x4a9e33]){if(_0x592f04[_0x45f725][_0x326a30][_0x37b1('0x5c')]){_0x19b3c0[_0x37b1('0x48')][_0x4a9e33][_0x37b1('0x36')]+=0x1;}if(_0x592f04[_0x45f725][_0x326a30][_0x37b1('0x5d')]){_0x19b3c0[_0x37b1('0x48')][_0x4a9e33][_0x37b1('0x37')]+=0x1;}_0x19b3c0[_0x37b1('0x48')][_0x4a9e33][_0x37b1('0x5e')]+=moment(_0x592f04[_0x45f725][_0x326a30][_0x37b1('0x5f')])[_0x37b1('0x60')](moment(_0x592f04[_0x45f725][_0x326a30][_0x37b1('0x61')]),'seconds')||0x0;if(_0x326a30===_0x592f04[_0x45f725]['length']-0x1){_0x19b3c0['voiceQueues'][_0x4a9e33][_0x37b1('0x31')]+=moment(_0x592f04[_0x45f725][_0x326a30][_0x37b1('0x62')]||_0x592f04[_0x45f725][_0x326a30]['queuecallerabandonAt']||_0x592f04[_0x45f725][_0x326a30][_0x37b1('0x63')])[_0x37b1('0x60')](moment(_0x592f04[_0x45f725][_0x326a30]['queuecallerjoinAt']),_0x37b1('0x64'))||0x0;_0x19b3c0['voiceQueues'][_0x4a9e33][_0x37b1('0x2f')]+=0x1;if(_0x592f04[_0x45f725][_0x326a30][_0x37b1('0x65')]){_0x19b3c0[_0x37b1('0x48')][_0x4a9e33][_0x37b1('0x30')]+=0x1;_0x19b3c0[_0x37b1('0x48')][_0x4a9e33][_0x37b1('0x32')]+=moment(_0x592f04[_0x45f725][_0x326a30][_0x37b1('0x62')])[_0x37b1('0x60')](moment(_0x592f04[_0x45f725][_0x326a30][_0x37b1('0x5f')]),_0x37b1('0x64'))||0x0;}}else{_0x19b3c0[_0x37b1('0x48')][_0x4a9e33][_0x37b1('0x31')]+=_0x19b3c0['voiceQueues'][_0x4a9e33]['sumHoldTime']||0x0;}}}}}}return _0x19b3c0['voiceQueues'];};};Realtime[_0x37b1('0x42')][_0x37b1('0x66')]=function(){var _0x13a917=this;return function(_0x13f263){clearVoiceCallReports(_0x13a917[_0x37b1('0x19')]);if(_0x13f263){for(var _0x4b6a86=0x0;_0x4b6a86<_0x13f263['length'];_0x4b6a86+=0x1){_0x13a917[_0x37b1('0x19')][_0x37b1('0x2f')]+=0x1;_0x13a917[_0x37b1('0x19')][_0x37b1('0x31')]+=_0x13f263[_0x4b6a86][_0x37b1('0x67')];if(_0x13f263[_0x4b6a86]['disposition']==='ANSWERED'){_0x13a917[_0x37b1('0x19')][_0x37b1('0x30')]+=0x1;_0x13a917['outbound'][_0x37b1('0x5e')]+=_0x13f263[_0x4b6a86][_0x37b1('0x67')]-_0x13f263[_0x4b6a86][_0x37b1('0x68')]||0x0;_0x13a917['outbound']['sumBillable']+=_0x13f263[_0x4b6a86][_0x37b1('0x68')];}}}return _0x13a917[_0x37b1('0x19')];};};Realtime['prototype'][_0x37b1('0x69')]=function(){var _0x4cc578=this;return function(_0x1c239f){if(_0x1c239f){freeIsNotKey(_0x1c239f,_0x4cc578[_0x37b1('0x17')],_0x37b1('0x2b'));for(var _0x5550fa=0x0,_0xc10d00={};_0x5550fa<_0x1c239f[_0x37b1('0x45')];_0x5550fa+=0x1){_0xc10d00=_0x1c239f[_0x5550fa];if(_[_0x37b1('0x46')](_0x4cc578[_0x37b1('0x17')][_0xc10d00[_0x37b1('0x2b')]])){_0x4cc578[_0x37b1('0x17')][_0xc10d00['name']]=new Campaign(_0xc10d00);}else{_0x4cc578[_0x37b1('0x43')](_0x4cc578['campaigns'][_0xc10d00[_0x37b1('0x2b')]],_0xc10d00);_0x4cc578[_0x37b1('0x17')][_0xc10d00[_0x37b1('0x2b')]][_0x37b1('0x6a')]=_0xc10d00[_0x37b1('0x6b')]?_0xc10d00[_0x37b1('0x6b')][_0x37b1('0x2b')]:undefined;}}}return _0x4cc578[_0x37b1('0x17')];};};Realtime[_0x37b1('0x42')][_0x37b1('0x6c')]=function(){var _0x455281=this;return function(_0x71b763){if(_0x71b763){freeIsNotKey(_0x71b763,_0x455281[_0x37b1('0x1a')],'id');for(var _0x380792=0x0,_0x23ddf9={};_0x380792<_0x71b763['length'];_0x380792+=0x1){_0x23ddf9=_0x71b763[_0x380792];if(_[_0x37b1('0x46')](_0x455281['voiceExtensions'][_0x23ddf9['id']])){_0x455281[_0x37b1('0x1a')][_0x23ddf9['id']]=new VoiceExtension(_0x23ddf9);}else{_0x455281[_0x37b1('0x43')](_0x455281[_0x37b1('0x1a')][_0x23ddf9['id']],_0x23ddf9);}}}return _0x455281[_0x37b1('0x1a')];};};Realtime['prototype'][_0x37b1('0x6d')]=function(){var _0x3bacf6=this;return function(_0xb9cc0d){clearCampaigns(_0x3bacf6['campaigns']);for(var _0x499fd9=0x0;_0x499fd9<_0xb9cc0d['length'];_0x499fd9+=0x1){_['merge'](_0x3bacf6[_0x37b1('0x17')][_0xb9cc0d[_0x499fd9]['name']],_0xb9cc0d[_0x499fd9]);}return _0x3bacf6['campaigns'];};};Realtime[_0x37b1('0x42')][_0x37b1('0x6e')]=function(){var _0x2be04f=this;return function(_0x505a66){if(_0x505a66){freeIsNotKey(_0x505a66,_0x2be04f['faxAccounts'],'id');for(var _0x30af60=0x0,_0x358550={},_0x84bef0={};_0x30af60<_0x505a66[_0x37b1('0x45')];_0x30af60+=0x1){_0x358550=_0x505a66[_0x30af60];if(_[_0x37b1('0x46')](_0x2be04f[_0x37b1('0x27')][_0x358550['id']])){_0x2be04f[_0x37b1('0x27')][_0x358550['id']]=new FaxAccount(_0x358550);}else{_0x2be04f[_0x37b1('0x43')](_0x2be04f[_0x37b1('0x27')][_0x358550['id']],_0x358550);}}}return _0x2be04f['faxAccounts'];};};module[_0x37b1('0x6f')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5603=['ANSWERED','calleridname','transfers','linkedid','monitor','monitors','monitorFilename','filename','createdAt','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','channel','startsWith','Local','substring','indexOf','mobile','transfererlinkedid','attendedTransfer','exports','lodash','moment','../../../config/environment','../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','./voiceCallReport','./voiceAgentReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','bind','custom:voiceCallReport','voiceAgentReport','voiceDialReport','blindTransfer','attendedtransfer','accountcode','name','find','interface','format','voiceQueueReport','findAgent','connectedlinenum','assigned','isNil','SIP/%s','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','create','match','voiceCallReport','destination','exten','type','dialer','lastapplication','lastdata','queue','context','from-voip-provider','callerid','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','disposition'];(function(_0x52cd93,_0x4945e3){var _0x257b63=function(_0x5c8c6a){while(--_0x5c8c6a){_0x52cd93['push'](_0x52cd93['shift']());}};_0x257b63(++_0x4945e3);}(_0x5603,0x10a));var _0x3560=function(_0x6c4bae,_0x89346a){_0x6c4bae=_0x6c4bae-0x0;var _0x2f7995=_0x5603[_0x6c4bae];return _0x2f7995;};'use strict';var _=require(_0x3560('0x0'));var moment=require(_0x3560('0x1'));var util=require('util');var config=require(_0x3560('0x2'));var ami=require(_0x3560('0x3'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0x3560('0x4'));var RpcVoiceDialReport=require(_0x3560('0x5'));var RpcMemberReport=require(_0x3560('0x6'));var RpcVoiceQueueReport=require(_0x3560('0x7'));var RpcVoiceRecording=require(_0x3560('0x8'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0x3560('0x9'));var VoiceAgentReport=require(_0x3560('0xa'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0x3560('0xb'));function Report(_0x3e9f63){this[_0x3560('0xc')]=_0x3e9f63;this[_0x3560('0xd')]=_0x3e9f63[_0x3560('0xd')];this[_0x3560('0xe')]=_0x3e9f63['telephones'];}Report[_0x3560('0xf')][_0x3560('0x10')]=function(_0x4f1c39){var _0x1cf060=new VoiceQueueReport(this[_0x3560('0xc')]);var _0x5121af=new VoiceAgentReport(this['realtime']);var _0x198777=new VoiceDialReport(this['realtime']);var _0x731fab=new VoiceCallReport(this[_0x3560('0xc')]);var _0x4a3c32=new UserReport(this['realtime']);if(config[_0x3560('0x11')]&&config['xdr'][_0x3560('0x12')]){ami['on']('custom:voiceQueueReport',this['voiceQueueReport'][_0x3560('0x13')](this));ami['on'](_0x3560('0x14'),this['voiceCallReport'][_0x3560('0x13')](this));ami['on']('custom:voiceAgentReport',this[_0x3560('0x15')][_0x3560('0x13')](this));ami['on']('custom:voiceDialReport',this[_0x3560('0x16')][_0x3560('0x13')](this));ami['on']('blindtransfer',this[_0x3560('0x17')][_0x3560('0x13')](this));ami['on'](_0x3560('0x18'),this['attendedTransfer'][_0x3560('0x13')](this));}};Report['prototype']['findAgent']=function(_0x415dac){var _0x58b54e;_0x58b54e=_['find'](this['agents'],function(_0x2a5c90){return _0x2a5c90[_0x3560('0x19')]==_0x415dac||_0x2a5c90[_0x3560('0x1a')]==_0x415dac;});if(_['isNil'](_0x58b54e)){var _0x3a980b=_[_0x3560('0x1b')](this['telephones'],function(_0x25d88f){return _0x25d88f[_0x3560('0x19')]==_0x415dac||_0x25d88f[_0x3560('0x1a')]==_0x415dac;});if(_0x3a980b){_0x58b54e=_[_0x3560('0x1b')](this[_0x3560('0xd')],function(_0x7465af){return _0x7465af[_0x3560('0x1c')]==util[_0x3560('0x1d')]('SIP/%s',_0x3a980b[_0x3560('0x1a')]);});}}return _0x58b54e;};Report[_0x3560('0xf')][_0x3560('0x1e')]=function(_0x56d603){for(var _0x5b7cf1=0x0;_0x5b7cf1<_0x56d603['length'];_0x5b7cf1+=0x1){var _0x2465eb=this[_0x3560('0x1f')](_0x56d603[_0x5b7cf1][_0x3560('0x20')]);if(_0x2465eb){_0x56d603[_0x5b7cf1][_0x3560('0x19')]=_0x2465eb[_0x3560('0x19')];_0x56d603[_0x5b7cf1][_0x3560('0x21')]=!![];_0x56d603[_0x5b7cf1]['lastAssignedTo']=_0x2465eb['name'];_0x56d603[_0x5b7cf1][_0x3560('0x1c')]=_[_0x3560('0x22')](_0x2465eb[_0x3560('0x1c')])?util[_0x3560('0x1d')](_0x3560('0x23'),_0x2465eb['name']):_0x2465eb['interface'];if(_0x56d603[_0x5b7cf1]['queuecallercomplete']){_0x56d603[_0x5b7cf1][_0x3560('0x24')]=moment()[_0x3560('0x1d')](_0x3560('0x25'));}if(_0x56d603[_0x5b7cf1][_0x3560('0x26')]){_0x56d603[_0x5b7cf1]['queuecallerexitAt']=moment()[_0x3560('0x1d')](_0x3560('0x25'));}RpcMemberReport[_0x3560('0x1e')](_0x56d603[_0x5b7cf1]);}RpcVoiceQueueReport[_0x3560('0x27')](_0x56d603[_0x5b7cf1]);}};function extractCalleridNumber(_0x1ee57b){var _0x3b86e1=_0x1ee57b[_0x3560('0x28')](/<(.*?)>/);return _0x3b86e1?_0x3b86e1[0x1]:_0x1ee57b;}Report['prototype'][_0x3560('0x29')]=function(_0x215a37){_0x215a37[_0x3560('0x2a')]=_0x215a37[_0x3560('0x2a')]||_0x215a37[_0x3560('0x2b')];if(_0x215a37[_0x3560('0x2c')]==_0x3560('0x2d')){_0x215a37[_0x3560('0x2e')]='queue';_0x215a37[_0x3560('0x2f')]=_0x215a37[_0x3560('0x30')];if(_0x215a37[_0x3560('0x31')]==_0x3560('0x32')){_0x215a37[_0x3560('0x19')]='';_0x215a37['destination']=extractCalleridNumber(_0x215a37[_0x3560('0x33')]);}else if(_0x215a37['context']=='from-sip'){if(_0x215a37[_0x3560('0x2a')]==_0x3560('0x34')){_0x215a37[_0x3560('0x2a')]=extractCalleridNumber(_0x215a37[_0x3560('0x35')]);_0x215a37[_0x3560('0x36')]=_0x215a37[_0x3560('0x37')];_0x215a37['destinationchannel']=[_0x215a37['channel'],_0x215a37['channel']=_0x215a37[_0x3560('0x38')]][0x0];_0x215a37[_0x3560('0x33')]=_0x215a37[_0x3560('0x35')];}else{_0x215a37[_0x3560('0x2a')]=_0x215a37['calleridnum'];_0x215a37['calleridnum']=_0x215a37[_0x3560('0x37')];if(_0x215a37[_0x3560('0x39')]==_0x3560('0x3a')){_0x215a37[_0x3560('0x19')]=_0x215a37[_0x3560('0x20')];}else{_0x215a37[_0x3560('0x19')]='';}}}}else{_0x215a37[_0x3560('0x33')]=util['format']('\x22%s\x22\x20<%s>',_0x215a37[_0x3560('0x3b')],_0x215a37[_0x3560('0x36')]);}if(RpcVoiceTransferReport[_0x3560('0x3c')][_0x215a37['linkedid']]){var _0x364aac=RpcVoiceTransferReport[_0x3560('0x3c')][_0x215a37[_0x3560('0x3d')]];_0x364aac['transfereelinkedid']=_0x215a37['uniqueid'];RpcVoiceTransferReport[_0x3560('0x17')](_0x364aac);delete RpcVoiceTransferReport[_0x3560('0x3c')][_0x215a37[_0x3560('0x3d')]];}RpcVoiceCallReport['create'](_0x215a37);if(_0x215a37[_0x3560('0x3e')]){for(var _0x261752=0x0;_0x261752<_0x215a37[_0x3560('0x3f')]['length'];_0x261752+=0x1){_0x215a37[_0x3560('0x40')]=_0x215a37[_0x3560('0x3f')][_0x261752][_0x3560('0x41')];_0x215a37[_0x3560('0x42')]=_0x215a37[_0x3560('0x3f')][_0x261752]['createdAt'];if(_0x215a37[_0x3560('0x2b')]==_0x3560('0x34')){_0x215a37[_0x3560('0x36')]=_0x215a37[_0x3560('0x20')];_0x215a37['calleridname']=_0x215a37[_0x3560('0x43')];_0x215a37[_0x3560('0x20')]=_0x215a37[_0x3560('0x19')];_0x215a37['connectedlinename']=_0x215a37[_0x3560('0x44')];_0x215a37['exten']=_0x215a37[_0x3560('0x37')];}else if(_0x215a37[_0x3560('0x2b')]==_0x3560('0x45')){_0x215a37[_0x3560('0x36')]=_0x215a37[_0x3560('0x2a')];_0x215a37[_0x3560('0x2b')]=_0x215a37[_0x3560('0x37')];}RpcVoiceRecording['create'](_0x215a37);}}};Report[_0x3560('0xf')][_0x3560('0x15')]=function(_0x8f9a27){if(_[_0x3560('0x46')](_0x8f9a27)){_0x8f9a27[_0x3560('0x47')](function(_0x22ee7b){RpcVoiceAgentReport['create'](_0x22ee7b);});}else{RpcVoiceAgentReport['create'](_0x8f9a27);}};Report['prototype'][_0x3560('0x16')]=function(_0x1030c3){RpcVoiceDialReport[_0x3560('0x27')](_0x1030c3);var _0x30cf43;var _0x4796b4;var _0x2ae710=_0x1030c3[_0x3560('0x48')];if(_[_0x3560('0x49')](_0x2ae710,_0x3560('0x4a'))){_0x4796b4=_0x2ae710[_0x3560('0x4b')](_0x2ae710['indexOf']('/')+0x1,_0x2ae710[_0x3560('0x4c')]('@'));_0x30cf43=_[_0x3560('0x1b')](this[_0x3560('0xd')],function(_0x347080){return _0x347080[_0x3560('0x4d')]==_0x4796b4||_0x347080['phone']==_0x4796b4||_0x347080[_0x3560('0x19')]==_0x4796b4;});}else{_0x4796b4=_0x2ae710[_0x3560('0x4b')](_0x2ae710['indexOf']('/')+0x1,_0x2ae710['lastIndexOf']('-'));_0x30cf43=this[_0x3560('0x1f')](_0x4796b4);}if(_0x30cf43){_0x1030c3[_0x3560('0x1c')]=_[_0x3560('0x22')](_0x30cf43[_0x3560('0x1c')])?util[_0x3560('0x1d')](_0x3560('0x23'),_0x30cf43[_0x3560('0x1a')]):_0x30cf43[_0x3560('0x1c')];_0x1030c3[_0x3560('0x44')]=_0x30cf43[_0x3560('0x1a')];_0x1030c3[_0x3560('0x19')]=_0x30cf43[_0x3560('0x19')];RpcMemberReport['voiceDialReport'](_0x1030c3);}};Report[_0x3560('0xf')]['blindTransfer']=function(_0xc4ecf3){RpcVoiceTransferReport[_0x3560('0x3c')][_0xc4ecf3[_0x3560('0x4e')]]=_0xc4ecf3;};Report[_0x3560('0xf')][_0x3560('0x4f')]=function(_0xa6ee97){RpcVoiceTransferReport[_0x3560('0x4f')](_0xa6ee97);};module[_0x3560('0x50')]=Report;
\ No newline at end of file
+var _0xb9cc=['../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','prototype','sync','xdr','disabled','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedTransfer','findAgent','find','name','isNil','telephones','accountcode','interface','format','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','match','destination','type','dialer','queue','lastdata','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','channel','destinationchannel','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','monitor','monitors','filename','createdAt','exten','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','startsWith','Local','substring','indexOf','mobile','phone','transfererlinkedid','exports','lodash','util','../ami','../rpc/voiceAgentReport'];(function(_0x3ac67f,_0x33b9c9){var _0x18588f=function(_0x2bc50b){while(--_0x2bc50b){_0x3ac67f['push'](_0x3ac67f['shift']());}};_0x18588f(++_0x33b9c9);}(_0xb9cc,0xb2));var _0xcb9c=function(_0x192c7c,_0x43a61f){_0x192c7c=_0x192c7c-0x0;var _0x329d8b=_0xb9cc[_0x192c7c];return _0x329d8b;};'use strict';var _=require(_0xcb9c('0x0'));var moment=require('moment');var util=require(_0xcb9c('0x1'));var config=require('../../../config/environment');var ami=require(_0xcb9c('0x2'));var RpcVoiceAgentReport=require(_0xcb9c('0x3'));var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0xcb9c('0x4'));var RpcMemberReport=require(_0xcb9c('0x5'));var RpcVoiceQueueReport=require(_0xcb9c('0x6'));var RpcVoiceRecording=require(_0xcb9c('0x7'));var RpcVoiceTransferReport=require(_0xcb9c('0x8'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0xcb9c('0x9'));var VoiceAgentReport=require(_0xcb9c('0xa'));var VoiceDialReport=require(_0xcb9c('0xb'));var UserReport=require(_0xcb9c('0xc'));function Report(_0x55f2e3){this[_0xcb9c('0xd')]=_0x55f2e3;this[_0xcb9c('0xe')]=_0x55f2e3['agents'];this['telephones']=_0x55f2e3['telephones'];}Report[_0xcb9c('0xf')][_0xcb9c('0x10')]=function(_0x72034a){var _0x226671=new VoiceQueueReport(this[_0xcb9c('0xd')]);var _0x223ace=new VoiceAgentReport(this['realtime']);var _0xe13117=new VoiceDialReport(this[_0xcb9c('0xd')]);var _0x458499=new VoiceCallReport(this[_0xcb9c('0xd')]);var _0x38f52f=new UserReport(this[_0xcb9c('0xd')]);if(config[_0xcb9c('0x11')]&&config[_0xcb9c('0x11')][_0xcb9c('0x12')]){ami['on']('custom:voiceQueueReport',this[_0xcb9c('0x13')][_0xcb9c('0x14')](this));ami['on'](_0xcb9c('0x15'),this[_0xcb9c('0x16')][_0xcb9c('0x14')](this));ami['on'](_0xcb9c('0x17'),this[_0xcb9c('0x18')][_0xcb9c('0x14')](this));ami['on'](_0xcb9c('0x19'),this[_0xcb9c('0x1a')][_0xcb9c('0x14')](this));ami['on'](_0xcb9c('0x1b'),this[_0xcb9c('0x1c')][_0xcb9c('0x14')](this));ami['on']('attendedtransfer',this[_0xcb9c('0x1d')][_0xcb9c('0x14')](this));}};Report[_0xcb9c('0xf')][_0xcb9c('0x1e')]=function(_0x44e2ba){var _0x150faa;_0x150faa=_[_0xcb9c('0x1f')](this[_0xcb9c('0xe')],function(_0x15d129){return _0x15d129['accountcode']==_0x44e2ba||_0x15d129[_0xcb9c('0x20')]==_0x44e2ba;});if(_[_0xcb9c('0x21')](_0x150faa)){var _0x135cd4=_[_0xcb9c('0x1f')](this[_0xcb9c('0x22')],function(_0x527413){return _0x527413[_0xcb9c('0x23')]==_0x44e2ba||_0x527413[_0xcb9c('0x20')]==_0x44e2ba;});if(_0x135cd4){_0x150faa=_[_0xcb9c('0x1f')](this[_0xcb9c('0xe')],function(_0x43cf3d){return _0x43cf3d[_0xcb9c('0x24')]==util[_0xcb9c('0x25')](_0xcb9c('0x26'),_0x135cd4[_0xcb9c('0x20')]);});}}return _0x150faa;};Report['prototype'][_0xcb9c('0x13')]=function(_0x1ec92d){for(var _0x3ec4c0=0x0;_0x3ec4c0<_0x1ec92d[_0xcb9c('0x27')];_0x3ec4c0+=0x1){var _0xf83084=this['findAgent'](_0x1ec92d[_0x3ec4c0][_0xcb9c('0x28')]);if(_0xf83084){_0x1ec92d[_0x3ec4c0]['accountcode']=_0xf83084['accountcode'];_0x1ec92d[_0x3ec4c0][_0xcb9c('0x29')]=!![];_0x1ec92d[_0x3ec4c0][_0xcb9c('0x2a')]=_0xf83084[_0xcb9c('0x20')];_0x1ec92d[_0x3ec4c0][_0xcb9c('0x24')]=_[_0xcb9c('0x21')](_0xf83084[_0xcb9c('0x24')])?util['format']('SIP/%s',_0xf83084[_0xcb9c('0x20')]):_0xf83084[_0xcb9c('0x24')];if(_0x1ec92d[_0x3ec4c0][_0xcb9c('0x2b')]){_0x1ec92d[_0x3ec4c0][_0xcb9c('0x2c')]=moment()['format'](_0xcb9c('0x2d'));}if(_0x1ec92d[_0x3ec4c0][_0xcb9c('0x2e')]){_0x1ec92d[_0x3ec4c0][_0xcb9c('0x2f')]=moment()[_0xcb9c('0x25')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport['voiceQueueReport'](_0x1ec92d[_0x3ec4c0]);}RpcVoiceQueueReport[_0xcb9c('0x30')](_0x1ec92d[_0x3ec4c0]);}};function extractCalleridNumber(_0x39c3ca){var _0x59da01=_0x39c3ca[_0xcb9c('0x31')](/<(.*?)>/);return _0x59da01?_0x59da01[0x1]:_0x39c3ca;}Report[_0xcb9c('0xf')]['voiceCallReport']=function(_0xded0b2){_0xded0b2['destination']=_0xded0b2[_0xcb9c('0x32')]||_0xded0b2['exten'];if(_0xded0b2[_0xcb9c('0x33')]==_0xcb9c('0x34')){_0xded0b2['lastapplication']=_0xcb9c('0x35');_0xded0b2[_0xcb9c('0x36')]=_0xded0b2[_0xcb9c('0x35')];if(_0xded0b2[_0xcb9c('0x37')]==_0xcb9c('0x38')){_0xded0b2['accountcode']='';_0xded0b2['destination']=extractCalleridNumber(_0xded0b2[_0xcb9c('0x39')]);}else if(_0xded0b2[_0xcb9c('0x37')]==_0xcb9c('0x3a')){if(_0xded0b2[_0xcb9c('0x32')]==_0xcb9c('0x3b')){_0xded0b2[_0xcb9c('0x32')]=extractCalleridNumber(_0xded0b2[_0xcb9c('0x3c')]);_0xded0b2[_0xcb9c('0x3d')]=_0xded0b2[_0xcb9c('0x3e')];_0xded0b2['destinationchannel']=[_0xded0b2[_0xcb9c('0x3f')],_0xded0b2['channel']=_0xded0b2[_0xcb9c('0x40')]][0x0];_0xded0b2['callerid']=_0xded0b2[_0xcb9c('0x3c')];}else{_0xded0b2['destination']=_0xded0b2['calleridnum'];_0xded0b2[_0xcb9c('0x3d')]=_0xded0b2[_0xcb9c('0x3e')];if(_0xded0b2[_0xcb9c('0x41')]==_0xcb9c('0x42')){_0xded0b2[_0xcb9c('0x23')]=_0xded0b2[_0xcb9c('0x28')];}else{_0xded0b2['accountcode']='';}}}}else{_0xded0b2[_0xcb9c('0x39')]=util['format'](_0xcb9c('0x43'),_0xded0b2[_0xcb9c('0x44')],_0xded0b2['calleridnum']);}if(RpcVoiceTransferReport[_0xcb9c('0x45')][_0xded0b2[_0xcb9c('0x46')]]){var _0x482bb0=RpcVoiceTransferReport[_0xcb9c('0x45')][_0xded0b2[_0xcb9c('0x46')]];_0x482bb0[_0xcb9c('0x47')]=_0xded0b2[_0xcb9c('0x48')];RpcVoiceTransferReport['blindTransfer'](_0x482bb0);delete RpcVoiceTransferReport[_0xcb9c('0x45')][_0xded0b2[_0xcb9c('0x46')]];}RpcVoiceCallReport[_0xcb9c('0x30')](_0xded0b2);if(_0xded0b2[_0xcb9c('0x49')]){for(var _0x11800b=0x0;_0x11800b<_0xded0b2[_0xcb9c('0x4a')][_0xcb9c('0x27')];_0x11800b+=0x1){_0xded0b2['monitorFilename']=_0xded0b2[_0xcb9c('0x4a')][_0x11800b][_0xcb9c('0x4b')];_0xded0b2[_0xcb9c('0x4c')]=_0xded0b2[_0xcb9c('0x4a')][_0x11800b]['createdAt'];if(_0xded0b2[_0xcb9c('0x4d')]==_0xcb9c('0x3b')){_0xded0b2[_0xcb9c('0x3d')]=_0xded0b2['connectedlinenum'];_0xded0b2[_0xcb9c('0x44')]=_0xded0b2[_0xcb9c('0x4e')];_0xded0b2[_0xcb9c('0x28')]=_0xded0b2['accountcode'];_0xded0b2[_0xcb9c('0x4e')]=_0xded0b2[_0xcb9c('0x4f')];_0xded0b2[_0xcb9c('0x4d')]=_0xded0b2['originatecalleridnum'];}else if(_0xded0b2[_0xcb9c('0x4d')]==_0xcb9c('0x50')){_0xded0b2[_0xcb9c('0x3d')]=_0xded0b2['destination'];_0xded0b2[_0xcb9c('0x4d')]=_0xded0b2[_0xcb9c('0x3e')];}RpcVoiceRecording[_0xcb9c('0x30')](_0xded0b2);}}};Report['prototype']['voiceAgentReport']=function(_0x3f6dac){if(_[_0xcb9c('0x51')](_0x3f6dac)){_0x3f6dac[_0xcb9c('0x52')](function(_0x13f30d){RpcVoiceAgentReport[_0xcb9c('0x30')](_0x13f30d);});}else{RpcVoiceAgentReport[_0xcb9c('0x30')](_0x3f6dac);}};Report[_0xcb9c('0xf')]['voiceDialReport']=function(_0x3313e1){RpcVoiceDialReport[_0xcb9c('0x30')](_0x3313e1);var _0x4ae642;var _0x579a8a;var _0x35540b=_0x3313e1[_0xcb9c('0x3f')];if(_[_0xcb9c('0x53')](_0x35540b,_0xcb9c('0x54'))){_0x579a8a=_0x35540b[_0xcb9c('0x55')](_0x35540b[_0xcb9c('0x56')]('/')+0x1,_0x35540b['indexOf']('@'));_0x4ae642=_[_0xcb9c('0x1f')](this[_0xcb9c('0xe')],function(_0x2398d4){return _0x2398d4[_0xcb9c('0x57')]==_0x579a8a||_0x2398d4[_0xcb9c('0x58')]==_0x579a8a||_0x2398d4[_0xcb9c('0x23')]==_0x579a8a;});}else{_0x579a8a=_0x35540b['substring'](_0x35540b[_0xcb9c('0x56')]('/')+0x1,_0x35540b['lastIndexOf']('-'));_0x4ae642=this[_0xcb9c('0x1e')](_0x579a8a);}if(_0x4ae642){_0x3313e1[_0xcb9c('0x24')]=_['isNil'](_0x4ae642[_0xcb9c('0x24')])?util['format'](_0xcb9c('0x26'),_0x4ae642[_0xcb9c('0x20')]):_0x4ae642[_0xcb9c('0x24')];_0x3313e1[_0xcb9c('0x4f')]=_0x4ae642[_0xcb9c('0x20')];_0x3313e1[_0xcb9c('0x23')]=_0x4ae642['accountcode'];RpcMemberReport['voiceDialReport'](_0x3313e1);}};Report[_0xcb9c('0xf')][_0xcb9c('0x1c')]=function(_0x739c30){RpcVoiceTransferReport[_0xcb9c('0x45')][_0x739c30[_0xcb9c('0x59')]]=_0x739c30;};Report['prototype'][_0xcb9c('0x1d')]=function(_0x4d2ca9){RpcVoiceTransferReport['attendedTransfer'](_0x4d2ca9);};module[_0xcb9c('0x5a')]=Report;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb971=['agents','telephones','registryentry','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','syncRealtimeShow','resolve','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','then','[userReport][devicestatelist]','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','merge','omit','event','actionid','[userReport][registry]\x20sending\x20trunk:save\x20event:','trunk:%s','name','trunk:save','info','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','stateTime','toNumber','format','updateStatusRealtime','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','indexOf','mobile','accountcode','syncPeerStatus','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','[userReport][peerstatus]','registered','status','address','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','moment','util','ioredis','../../../config/environment','../../../config/logger','ami','../ami','defaults','redis','localhost','socket.io-emitter','trunks'];(function(_0x42a2fb,_0x5a7b0f){var _0x5ac8ba=function(_0x32e6fb){while(--_0x32e6fb){_0x42a2fb['push'](_0x42a2fb['shift']());}};_0x5ac8ba(++_0x5a7b0f);}(_0xb971,0x17a));var _0x1b97=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb971[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var moment=require(_0x1b97('0x0'));var util=require(_0x1b97('0x1'));var Redis=require(_0x1b97('0x2'));var BPromise=require('bluebird');var config=require(_0x1b97('0x3'));var logger=require(_0x1b97('0x4'))(_0x1b97('0x5'));var ami=require(_0x1b97('0x6'));config['redis']=_[_0x1b97('0x7')](config[_0x1b97('0x8')],{'host':_0x1b97('0x9'),'port':0x18eb});var io=require(_0x1b97('0xa'))(new Redis(config[_0x1b97('0x8')]));function UserReport(_0x51408d){this['trunks']=_0x51408d[_0x1b97('0xb')];this[_0x1b97('0xc')]=_0x51408d[_0x1b97('0xc')];this['telephones']=_0x51408d[_0x1b97('0xd')];ami['on'](_0x1b97('0xe'),this[_0x1b97('0xf')][_0x1b97('0x10')](this));ami['on'](_0x1b97('0x11'),this[_0x1b97('0xf')][_0x1b97('0x10')](this));ami['on'](_0x1b97('0x12'),this[_0x1b97('0x13')][_0x1b97('0x10')](this));ami['on'](_0x1b97('0x14'),this['syncPeerStatus'][_0x1b97('0x10')](this));return this[_0x1b97('0x15')]();}function showSipRegistrations(){Promise[_0x1b97('0x16')]()['then'](ami[_0x1b97('0x17')]())[_0x1b97('0x18')](function(_0x5f005a){logger[_0x1b97('0x19')](_0x1b97('0x1a'),util[_0x1b97('0x1b')](_0x5f005a,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise['resolve']()[_0x1b97('0x1c')](ami['actionDeviceStateList']())[_0x1b97('0x18')](function(_0x333cd4){logger[_0x1b97('0x19')](_0x1b97('0x1d'),util['inspect'](_0x333cd4,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x1b97('0x16')]()['then'](ami[_0x1b97('0x1e')]())[_0x1b97('0x18')](function(_0xa38b02){logger[_0x1b97('0x19')](_0x1b97('0x1f'),util['inspect'](_0xa38b02,{'showHidden':![],'depth':null}));});}UserReport[_0x1b97('0x20')][_0x1b97('0x15')]=function(){setInterval(function(){BPromise[_0x1b97('0x16')]()[_0x1b97('0x1c')](showSipRegistrations())[_0x1b97('0x1c')](listDeviceStates())['then'](showPeersStatus());},0x32c8);};UserReport[_0x1b97('0x20')][_0x1b97('0x21')]=function(_0x5d4e33){return _0x5d4e33!==null&&!_[_0x1b97('0x22')](_0x5d4e33);};UserReport[_0x1b97('0x20')][_0x1b97('0x23')]=function(_0x1bec7d,_0xae57a7,_0x3aa396){io['to'](_0x1bec7d)[_0x1b97('0x23')](_0xae57a7,_0x3aa396);};UserReport[_0x1b97('0x20')]['syncRegistry']=function(_0x36c7ec){try{if(this[_0x1b97('0x21')](_0x36c7ec)){logger['info'](_0x1b97('0x24'),_0x36c7ec[_0x1b97('0x25')],_0x36c7ec[_0x1b97('0x26')]);logger[_0x1b97('0x27')](_0x1b97('0x28'),util[_0x1b97('0x1b')](_0x36c7ec,{'showHidden':![],'depth':null}));var _0x5f211d=_[_0x1b97('0x29')](this[_0x1b97('0xb')],{'defaultuser':_0x36c7ec[_0x1b97('0x25')]});if(_0x5f211d){_0x36c7ec['stateRegistry']=_0x36c7ec[_0x1b97('0x26')];_[_0x1b97('0x2a')](_0x5f211d,_[_0x1b97('0x2b')](_0x36c7ec,[_0x1b97('0x2c'),_0x1b97('0x2d'),_0x1b97('0x25'),_0x1b97('0x26')]));logger[_0x1b97('0x27')](_0x1b97('0x2e'),util['inspect'](_0x5f211d,{'showHidden':![],'depth':null}));this[_0x1b97('0x23')](util['format'](_0x1b97('0x2f'),_0x5f211d[_0x1b97('0x30')]),_0x1b97('0x31'),_0x5f211d);}}}catch(_0x371891){logger['error'](_0x1b97('0x28'),util[_0x1b97('0x1b')](_0x371891,{'showHidden':![],'depth':null}));}};UserReport[_0x1b97('0x20')]['syncDeviceState']=function(_0x389846){try{if(this[_0x1b97('0x21')](_0x389846)){logger[_0x1b97('0x32')](_0x1b97('0x33'),_0x389846[_0x1b97('0x34')],_0x389846['state']);logger['debug'](_0x1b97('0x35'),util['inspect'](_0x389846,{'showHidden':![],'depth':null}));if(this[_0x1b97('0xc')][_0x389846[_0x1b97('0x34')]]){if(!this[_0x1b97('0xc')][_0x389846[_0x1b97('0x34')]][_0x1b97('0x36')]||_0x389846[_0x1b97('0x26')][_0x1b97('0x37')]()=='inuse'){this[_0x1b97('0xc')][_0x389846[_0x1b97('0x34')]]['local']=![];if(this[_0x1b97('0xc')][_0x389846[_0x1b97('0x34')]][_0x1b97('0x26')]!==_0x389846[_0x1b97('0x26')][_0x1b97('0x37')]()){this[_0x1b97('0xc')][_0x389846[_0x1b97('0x34')]][_0x1b97('0x38')]=_[_0x1b97('0x39')](moment()[_0x1b97('0x3a')]('x'));}this[_0x1b97('0xc')][_0x389846['device']][_0x1b97('0x26')]=_0x389846['state']['toLowerCase']();this[_0x1b97('0xc')][_0x389846[_0x1b97('0x34')]][_0x1b97('0x3b')](_0x389846);}}else if(this[_0x1b97('0xd')][_0x389846[_0x1b97('0x34')]]){if(this[_0x1b97('0xd')][_0x389846['device']]['state']!==_0x389846[_0x1b97('0x26')]['toLowerCase']()){this[_0x1b97('0xd')][_0x389846[_0x1b97('0x34')]][_0x1b97('0x38')]=_[_0x1b97('0x39')](moment()[_0x1b97('0x3a')]('x'));}this['telephones'][_0x389846[_0x1b97('0x34')]][_0x1b97('0x26')]=_0x389846[_0x1b97('0x26')]['toLowerCase']();logger[_0x1b97('0x27')]('[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:',util[_0x1b97('0x1b')](this[_0x1b97('0xd')][_0x389846[_0x1b97('0x34')]],{'showHidden':![],'depth':null}));this[_0x1b97('0x23')](util[_0x1b97('0x3a')](_0x1b97('0x3c'),this['telephones'][_0x389846[_0x1b97('0x34')]]['name']),_0x1b97('0x3d'),this[_0x1b97('0xd')][_0x389846[_0x1b97('0x34')]]);}else if(this[_0x1b97('0xb')][_0x389846[_0x1b97('0x34')]]){if(this[_0x1b97('0xb')][_0x389846[_0x1b97('0x34')]][_0x1b97('0x26')]!==_0x389846[_0x1b97('0x26')][_0x1b97('0x37')]()){this[_0x1b97('0xb')][_0x389846[_0x1b97('0x34')]]['stateTime']=_[_0x1b97('0x39')](moment()[_0x1b97('0x3a')]('x'));}this[_0x1b97('0xb')][_0x389846[_0x1b97('0x34')]][_0x1b97('0x26')]=_0x389846[_0x1b97('0x26')][_0x1b97('0x37')]();logger['debug'](_0x1b97('0x3e'),util[_0x1b97('0x1b')](this['trunks'][_0x389846['device']],{'showHidden':![],'depth':null}));this[_0x1b97('0x23')](util[_0x1b97('0x3a')]('trunk:%s',this['trunks'][_0x389846[_0x1b97('0x34')]][_0x1b97('0x30')]),'trunk:save',this[_0x1b97('0xb')][_0x389846[_0x1b97('0x34')]]);}else if(_[_0x1b97('0x3f')](_0x389846['device'],_0x1b97('0x40'))){var _0x5e0acb=_0x389846[_0x1b97('0x34')];var _0x5bc4b7=_0x5e0acb['substring'](_0x5e0acb[_0x1b97('0x41')]('/')+0x1,_0x5e0acb[_0x1b97('0x41')]('@'));var _0x4b112a=_[_0x1b97('0x29')](this[_0x1b97('0xc')],function(_0x2fc1da){return _0x2fc1da[_0x1b97('0x42')]==_0x5bc4b7||_0x2fc1da['phone']==_0x5bc4b7||_0x2fc1da[_0x1b97('0x43')]==_0x5bc4b7;});if(_0x4b112a){if(_0x4b112a[_0x1b97('0x26')]!==_0x389846[_0x1b97('0x26')]['toLowerCase']()){_0x4b112a[_0x1b97('0x38')]=_[_0x1b97('0x39')](moment()[_0x1b97('0x3a')]('x'));}_0x4b112a['state']=_0x389846[_0x1b97('0x26')][_0x1b97('0x37')]();_0x4b112a[_0x1b97('0x36')]=!![];_0x4b112a[_0x1b97('0x3b')](_0x389846);}}}}catch(_0x1dc860){logger[_0x1b97('0x19')](_0x1b97('0x35'),util[_0x1b97('0x1b')](_0x1dc860,{'showHidden':![],'depth':null}));}};UserReport[_0x1b97('0x20')][_0x1b97('0x44')]=function(_0x499ab7){try{if(this[_0x1b97('0x21')](_0x499ab7)&&this['isNotNull'](_0x499ab7['peerstatus'])){logger[_0x1b97('0x32')](_0x1b97('0x45'),_0x499ab7[_0x1b97('0x46')],_0x499ab7['address'],_0x499ab7['peerstatus']);logger[_0x1b97('0x27')](_0x1b97('0x47'),util['inspect'](_0x499ab7,{'showHidden':![],'depth':null}));if(this[_0x1b97('0xc')][_0x499ab7[_0x1b97('0x46')]]){if(!this[_0x1b97('0xc')][_0x499ab7[_0x1b97('0x46')]][_0x1b97('0x36')]||_0x499ab7[_0x1b97('0x14')][_0x1b97('0x37')]()==_0x1b97('0x48')){this[_0x1b97('0xc')][_0x499ab7[_0x1b97('0x46')]][_0x1b97('0x36')]=![];this['agents'][_0x499ab7['peer']][_0x1b97('0x49')]=_0x499ab7[_0x1b97('0x14')][_0x1b97('0x37')]();this['agents'][_0x499ab7[_0x1b97('0x46')]][_0x1b97('0x4a')]=_0x499ab7['address'];this[_0x1b97('0xc')][_0x499ab7[_0x1b97('0x46')]][_0x1b97('0x3b')](_0x499ab7);}}else if(this['telephones'][_0x499ab7[_0x1b97('0x46')]]){this[_0x1b97('0xd')][_0x499ab7[_0x1b97('0x46')]]['status']=_0x499ab7[_0x1b97('0x14')][_0x1b97('0x37')]();this['telephones'][_0x499ab7[_0x1b97('0x46')]][_0x1b97('0x4a')]=_0x499ab7[_0x1b97('0x4a')];logger[_0x1b97('0x27')](_0x1b97('0x4b'),util[_0x1b97('0x1b')](this['telephones'][_0x499ab7[_0x1b97('0x46')]],{'showHidden':![],'depth':null}));this[_0x1b97('0x23')](util[_0x1b97('0x3a')](_0x1b97('0x3c'),this[_0x1b97('0xd')][_0x499ab7[_0x1b97('0x46')]][_0x1b97('0x30')]),_0x1b97('0x3d'),this[_0x1b97('0xd')][_0x499ab7['peer']]);}else if(this[_0x1b97('0xb')][_0x499ab7[_0x1b97('0x46')]]){this['trunks'][_0x499ab7[_0x1b97('0x46')]][_0x1b97('0x49')]=_0x499ab7[_0x1b97('0x14')][_0x1b97('0x37')]();this['trunks'][_0x499ab7['peer']][_0x1b97('0x4a')]=_0x499ab7[_0x1b97('0x4a')];logger['debug'](_0x1b97('0x4c'),util[_0x1b97('0x1b')](this[_0x1b97('0xb')][_0x499ab7[_0x1b97('0x46')]],{'showHidden':![],'depth':null}));this[_0x1b97('0x23')](util['format'](_0x1b97('0x2f'),this['trunks'][_0x499ab7[_0x1b97('0x46')]][_0x1b97('0x30')]),_0x1b97('0x31'),this[_0x1b97('0xb')][_0x499ab7[_0x1b97('0x46')]]);}}}catch(_0x3f26b2){logger[_0x1b97('0x19')](_0x1b97('0x47'),util['inspect'](_0x3f26b2,{'showHidden':![],'depth':null}));}};module[_0x1b97('0x4d')]=UserReport;
\ No newline at end of file
+var _0xe28a=['[userReport][devicestatelist]','inspect','actionSipPeerStatus','syncRealtimeShow','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','debug','[userReport][registry]','username','stateRegistry','state','merge','omit','event','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','name','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','inuse','stateTime','toNumber','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','trunk:save','substring','indexOf','find','phone','accountcode','updateStatusRealtime','syncPeerStatus','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','registered','status','address','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','moment','util','bluebird','../../../config/logger','ami','redis','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','then','actionSipShowRegistry','[userReport][sipshowregistry]','resolve','catch','error'];(function(_0x81480d,_0x44cb9a){var _0x26d57f=function(_0x158e6b){while(--_0x158e6b){_0x81480d['push'](_0x81480d['shift']());}};_0x26d57f(++_0x44cb9a);}(_0xe28a,0x19e));var _0xae28=function(_0x4cd210,_0x1accbb){_0x4cd210=_0x4cd210-0x0;var _0x36fc26=_0xe28a[_0x4cd210];return _0x36fc26;};'use strict';var _=require('lodash');var moment=require(_0xae28('0x0'));var util=require(_0xae28('0x1'));var Redis=require('ioredis');var BPromise=require(_0xae28('0x2'));var config=require('../../../config/environment');var logger=require(_0xae28('0x3'))(_0xae28('0x4'));var ami=require('../ami');config[_0xae28('0x5')]=_['defaults'](config[_0xae28('0x5')],{'host':_0xae28('0x6'),'port':0x18eb});var io=require(_0xae28('0x7'))(new Redis(config['redis']));function UserReport(_0x55b856){this[_0xae28('0x8')]=_0x55b856[_0xae28('0x8')];this[_0xae28('0x9')]=_0x55b856[_0xae28('0x9')];this[_0xae28('0xa')]=_0x55b856[_0xae28('0xa')];ami['on'](_0xae28('0xb'),this[_0xae28('0xc')][_0xae28('0xd')](this));ami['on'](_0xae28('0xe'),this[_0xae28('0xc')]['bind'](this));ami['on'](_0xae28('0xf'),this[_0xae28('0x10')]['bind'](this));ami['on'](_0xae28('0x11'),this['syncPeerStatus']['bind'](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise['resolve']()[_0xae28('0x12')](ami[_0xae28('0x13')]())['catch'](function(_0x27402b){logger['error'](_0xae28('0x14'),util['inspect'](_0x27402b,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0xae28('0x15')]()[_0xae28('0x12')](ami['actionDeviceStateList']())[_0xae28('0x16')](function(_0x447c3b){logger[_0xae28('0x17')](_0xae28('0x18'),util[_0xae28('0x19')](_0x447c3b,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xae28('0x15')]()[_0xae28('0x12')](ami[_0xae28('0x1a')]())[_0xae28('0x16')](function(_0x9582d8){logger['error']('[userReport][sippeerstatus]',util['inspect'](_0x9582d8,{'showHidden':![],'depth':null}));});}UserReport['prototype'][_0xae28('0x1b')]=function(){setInterval(function(){BPromise[_0xae28('0x15')]()[_0xae28('0x12')](showSipRegistrations())['then'](listDeviceStates())['then'](showPeersStatus());},0x32c8);};UserReport[_0xae28('0x1c')][_0xae28('0x1d')]=function(_0x55b275){return _0x55b275!==null&&!_[_0xae28('0x1e')](_0x55b275);};UserReport[_0xae28('0x1c')]['emit']=function(_0x5a5c11,_0xff88f0,_0x2efc65){io['to'](_0x5a5c11)[_0xae28('0x1f')](_0xff88f0,_0x2efc65);};UserReport['prototype'][_0xae28('0xc')]=function(_0x465e3c){try{if(this[_0xae28('0x1d')](_0x465e3c)){logger[_0xae28('0x20')](_0xae28('0x21'),_0x465e3c['username'],_0x465e3c['state']);logger[_0xae28('0x22')](_0xae28('0x23'),util[_0xae28('0x19')](_0x465e3c,{'showHidden':![],'depth':null}));var _0x5ced1b=_['find'](this['trunks'],{'defaultuser':_0x465e3c[_0xae28('0x24')]});if(_0x5ced1b){_0x465e3c[_0xae28('0x25')]=_0x465e3c[_0xae28('0x26')];_[_0xae28('0x27')](_0x5ced1b,_[_0xae28('0x28')](_0x465e3c,[_0xae28('0x29'),'actionid','username',_0xae28('0x26')]));logger[_0xae28('0x22')](_0xae28('0x2a'),util[_0xae28('0x19')](_0x5ced1b,{'showHidden':![],'depth':null}));this[_0xae28('0x1f')](util[_0xae28('0x2b')](_0xae28('0x2c'),_0x5ced1b[_0xae28('0x2d')]),'trunk:save',_0x5ced1b);}}}catch(_0x138d60){logger[_0xae28('0x17')]('[userReport][registry]',util[_0xae28('0x19')](_0x138d60,{'showHidden':![],'depth':null}));}};UserReport[_0xae28('0x1c')][_0xae28('0x10')]=function(_0x25bab4){try{if(this[_0xae28('0x1d')](_0x25bab4)){logger['info'](_0xae28('0x2e'),_0x25bab4[_0xae28('0x2f')],_0x25bab4[_0xae28('0x26')]);logger[_0xae28('0x22')](_0xae28('0x30'),util[_0xae28('0x19')](_0x25bab4,{'showHidden':![],'depth':null}));if(this[_0xae28('0x9')][_0x25bab4[_0xae28('0x2f')]]){if(!this[_0xae28('0x9')][_0x25bab4[_0xae28('0x2f')]][_0xae28('0x31')]||_0x25bab4['state'][_0xae28('0x32')]()==_0xae28('0x33')){this['agents'][_0x25bab4[_0xae28('0x2f')]]['local']=![];if(this[_0xae28('0x9')][_0x25bab4['device']]['state']!==_0x25bab4[_0xae28('0x26')]['toLowerCase']()){this[_0xae28('0x9')][_0x25bab4[_0xae28('0x2f')]][_0xae28('0x34')]=_[_0xae28('0x35')](moment()[_0xae28('0x2b')]('x'));}this[_0xae28('0x9')][_0x25bab4['device']][_0xae28('0x26')]=_0x25bab4[_0xae28('0x26')][_0xae28('0x32')]();this[_0xae28('0x9')][_0x25bab4['device']]['updateStatusRealtime'](_0x25bab4);}}else if(this[_0xae28('0xa')][_0x25bab4[_0xae28('0x2f')]]){if(this[_0xae28('0xa')][_0x25bab4[_0xae28('0x2f')]][_0xae28('0x26')]!==_0x25bab4[_0xae28('0x26')][_0xae28('0x32')]()){this['telephones'][_0x25bab4[_0xae28('0x2f')]]['stateTime']=_['toNumber'](moment()[_0xae28('0x2b')]('x'));}this['telephones'][_0x25bab4[_0xae28('0x2f')]][_0xae28('0x26')]=_0x25bab4[_0xae28('0x26')][_0xae28('0x32')]();logger[_0xae28('0x22')]('[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:',util[_0xae28('0x19')](this[_0xae28('0xa')][_0x25bab4[_0xae28('0x2f')]],{'showHidden':![],'depth':null}));this[_0xae28('0x1f')](util['format'](_0xae28('0x36'),this[_0xae28('0xa')][_0x25bab4[_0xae28('0x2f')]]['name']),_0xae28('0x37'),this[_0xae28('0xa')][_0x25bab4['device']]);}else if(this[_0xae28('0x8')][_0x25bab4[_0xae28('0x2f')]]){if(this[_0xae28('0x8')][_0x25bab4[_0xae28('0x2f')]][_0xae28('0x26')]!==_0x25bab4[_0xae28('0x26')][_0xae28('0x32')]()){this[_0xae28('0x8')][_0x25bab4['device']][_0xae28('0x34')]=_['toNumber'](moment()[_0xae28('0x2b')]('x'));}this[_0xae28('0x8')][_0x25bab4[_0xae28('0x2f')]][_0xae28('0x26')]=_0x25bab4[_0xae28('0x26')][_0xae28('0x32')]();logger['debug'](_0xae28('0x38'),util[_0xae28('0x19')](this[_0xae28('0x8')][_0x25bab4[_0xae28('0x2f')]],{'showHidden':![],'depth':null}));this[_0xae28('0x1f')](util[_0xae28('0x2b')]('trunk:%s',this[_0xae28('0x8')][_0x25bab4['device']][_0xae28('0x2d')]),_0xae28('0x39'),this[_0xae28('0x8')][_0x25bab4[_0xae28('0x2f')]]);}else if(_['startsWith'](_0x25bab4[_0xae28('0x2f')],'Local')){var _0x37e399=_0x25bab4['device'];var _0x1ef52e=_0x37e399[_0xae28('0x3a')](_0x37e399['indexOf']('/')+0x1,_0x37e399[_0xae28('0x3b')]('@'));var _0x1f7748=_[_0xae28('0x3c')](this['agents'],function(_0x520ea7){return _0x520ea7['mobile']==_0x1ef52e||_0x520ea7[_0xae28('0x3d')]==_0x1ef52e||_0x520ea7[_0xae28('0x3e')]==_0x1ef52e;});if(_0x1f7748){if(_0x1f7748['state']!==_0x25bab4[_0xae28('0x26')][_0xae28('0x32')]()){_0x1f7748[_0xae28('0x34')]=_[_0xae28('0x35')](moment()[_0xae28('0x2b')]('x'));}_0x1f7748[_0xae28('0x26')]=_0x25bab4[_0xae28('0x26')]['toLowerCase']();_0x1f7748['local']=!![];_0x1f7748[_0xae28('0x3f')](_0x25bab4);}}}}catch(_0x822c48){logger['error'](_0xae28('0x30'),util['inspect'](_0x822c48,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0xae28('0x40')]=function(_0x4eb0f8){try{if(this[_0xae28('0x1d')](_0x4eb0f8)&&this[_0xae28('0x1d')](_0x4eb0f8[_0xae28('0x11')])){logger['info'](_0xae28('0x41'),_0x4eb0f8['peer'],_0x4eb0f8['address'],_0x4eb0f8[_0xae28('0x11')]);logger['debug']('[userReport][peerstatus]',util[_0xae28('0x19')](_0x4eb0f8,{'showHidden':![],'depth':null}));if(this['agents'][_0x4eb0f8[_0xae28('0x42')]]){if(!this[_0xae28('0x9')][_0x4eb0f8[_0xae28('0x42')]][_0xae28('0x31')]||_0x4eb0f8[_0xae28('0x11')][_0xae28('0x32')]()==_0xae28('0x43')){this['agents'][_0x4eb0f8[_0xae28('0x42')]][_0xae28('0x31')]=![];this[_0xae28('0x9')][_0x4eb0f8[_0xae28('0x42')]][_0xae28('0x44')]=_0x4eb0f8[_0xae28('0x11')]['toLowerCase']();this[_0xae28('0x9')][_0x4eb0f8[_0xae28('0x42')]]['address']=_0x4eb0f8[_0xae28('0x45')];this['agents'][_0x4eb0f8[_0xae28('0x42')]][_0xae28('0x3f')](_0x4eb0f8);}}else if(this[_0xae28('0xa')][_0x4eb0f8[_0xae28('0x42')]]){this[_0xae28('0xa')][_0x4eb0f8[_0xae28('0x42')]]['status']=_0x4eb0f8[_0xae28('0x11')][_0xae28('0x32')]();this['telephones'][_0x4eb0f8[_0xae28('0x42')]][_0xae28('0x45')]=_0x4eb0f8['address'];logger[_0xae28('0x22')](_0xae28('0x46'),util[_0xae28('0x19')](this['telephones'][_0x4eb0f8[_0xae28('0x42')]],{'showHidden':![],'depth':null}));this['emit'](util[_0xae28('0x2b')]('telephone:%s',this['telephones'][_0x4eb0f8[_0xae28('0x42')]][_0xae28('0x2d')]),'telephone:save',this[_0xae28('0xa')][_0x4eb0f8['peer']]);}else if(this[_0xae28('0x8')][_0x4eb0f8[_0xae28('0x42')]]){this[_0xae28('0x8')][_0x4eb0f8['peer']][_0xae28('0x44')]=_0x4eb0f8['peerstatus']['toLowerCase']();this[_0xae28('0x8')][_0x4eb0f8[_0xae28('0x42')]][_0xae28('0x45')]=_0x4eb0f8[_0xae28('0x45')];logger['debug'](_0xae28('0x47'),util['inspect'](this['trunks'][_0x4eb0f8[_0xae28('0x42')]],{'showHidden':![],'depth':null}));this[_0xae28('0x1f')](util[_0xae28('0x2b')](_0xae28('0x2c'),this[_0xae28('0x8')][_0x4eb0f8['peer']][_0xae28('0x2d')]),_0xae28('0x39'),this[_0xae28('0x8')][_0x4eb0f8[_0xae28('0x42')]]);}}}catch(_0x301e98){logger[_0xae28('0x17')]('[userReport][peerstatus]',util['inspect'](_0x301e98,{'showHidden':![],'depth':null}));}};module[_0xae28('0x48')]=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(_0x48eef4,_0x54ca8f){var _0xbcb029=function(_0x19da4c){while(--_0x19da4c){_0x48eef4['push'](_0x48eef4['shift']());}};_0xbcb029(++_0x54ca8f);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0xa9e0[_0x4cf98e];return _0x1623ac;};'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(_0xcb25d9,_0x3aef0d){var _0x4c8003=function(_0x11488b){while(--_0x11488b){_0xcb25d9['push'](_0xcb25d9['shift']());}};_0x4c8003(++_0x3aef0d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x31e29a,_0x349c9b){_0x31e29a=_0x31e29a-0x0;var _0x32d892=_0xa9e0[_0x31e29a];return _0x32d892;};'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 _0xca3d=['[%s][voiceCallReport][newexten]','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','[%s][voiceCallReport][newstate]\x20event:','answered','answertime','diff','destinationchannel','UserId','membername','routealias','[%s][voiceCallReport][newstate]\x20sending\x20user:agentconnect\x20event:','[%s][voiceCallReport][newstate]','syncMixMonitorFilename','[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s','monitor','endsWith','.wav49','replace','find','monitors','isNil','push','rec','[%s][voiceCallReport][mixMonitorFilename]','[%s][voiceCallReport][varset]\x20event:','variable','value','xmd-phone','[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s','xmd-callerid','callerid','xmd-cdrtype','[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s','xmd-queue','originatecalleridnum','[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s','xmd-callerid-preview','[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s','xmcs-queue','[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s','sipcallid','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','mixmonitor_filename','parse','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','[%s][voiceCallReport][varset]','syncHangup','cause-txt','endtime','billableseconds','omit','user:agentcomplete','length','then','undefined','isEmpty','getSettings','stopRecordingOnTransfer','resolve','Action','StopMixMonitor','catch','finally','webbar:stopmonitors','event','BlindTransfer','blindTransfers','[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:','custom:voiceCallReport','[%s][voiceCallReport][hangup]','[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','origtransferercalleridnum','transfertargetcalleridnum','[%s][voiceCallReport][attendedtransfer]\x20event:','transfereeuniqueid','transfercalleridnum','transferconnectedlinenum','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','origtransfererlinkedid','type','outbound','routeid','transferType','ATTENDED','[%s][voiceCallReport][attendedtransfer]','[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','[%s][voiceCallReport][blindtransfer]\x20event:','transfereecalleridnum','extension','BLIND','transfererchannel','transfereruniqueid','[%s][voiceCallReport][musiconholdstart]\x20event:','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','mohstarttime','[%s][voiceCallReport][musiconholdstart]','syncMusicOnHoldStop','[%s][voiceCallReport][musiconholdstop]\x20event:','mohtime','milliseconds','[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s','[%s][voiceCallReport][musiconholdstop]','lodash','moment','util','path','ioredis','../../../config/environment','../../../config/logger','ami','../ami','../model/channel','../rpc/setting','set','queue','agi','dial','NO\x20ANSWER','FAILED','ANSWERED','BUSY','redis','defaults','localhost','socket.io-emitter','channels','agents','coreshowchannel','syncNewExten','bind','newexten','newchannel','syncNewChannel','syncNewState','varset','syncVarSet','hangup','newcallerid','syncNewCallerId','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','syncMusicOnHoldStart','musiconholdstop','[voiceCallReport][coreshowchannels]\x20started','[voiceCallReport][coreshowchannels]','inspect','prototype','isNotNull','isUndefined','emit','info','[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s','calleridname','calleridnum','debug','[%s][voiceCallReport][newcallerid]\x20event:','uniqueid','linkedid','merge','pick','context','from-sip','channel','split','exten','xcally-motion-preview','destconnectedlinenum','connectedlinenum','format','user:%s','name','user:agentconnect','accountcode','error','OutgoingSpoolFailed','[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s','starttime','YYYY-MM-DD\x20HH:mm:ss','disposition','toNumber','channelstate','keys','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','[%s][voiceCallReport][newchannel]','[%s][voiceCallReport][newexten]\x20event:','application','toLowerCase','applicationdata','appdata','CDR(routeAlias)','[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s','duration','subtract','seconds','lastapplication','lastdata','match'];(function(_0x2b49bc,_0x47b636){var _0x43cc65=function(_0x236ec3){while(--_0x236ec3){_0x2b49bc['push'](_0x2b49bc['shift']());}};_0x43cc65(++_0x47b636);}(_0xca3d,0x68));var _0xdca3=function(_0x13c625,_0xc65b8e){_0x13c625=_0x13c625-0x0;var _0x1f2506=_0xca3d[_0x13c625];return _0x1f2506;};'use strict';var _=require(_0xdca3('0x0'));var moment=require(_0xdca3('0x1'));var util=require(_0xdca3('0x2'));var path=require(_0xdca3('0x3'));var Redis=require(_0xdca3('0x4'));var config=require(_0xdca3('0x5'));var logger=require(_0xdca3('0x6'))(_0xdca3('0x7'));var ami=require(_0xdca3('0x8'));var Channel=require(_0xdca3('0x9'));var RpcSetting=require(_0xdca3('0xa'));var applications=[_0xdca3('0xb'),_0xdca3('0xc'),_0xdca3('0xd'),_0xdca3('0xe'),'playback','voicemail'];var dispositions=[_0xdca3('0xf'),'FAILED',_0xdca3('0x10'),_0xdca3('0xf'),'NO\x20ANSWER',_0xdca3('0xf'),_0xdca3('0x11'),_0xdca3('0x12'),_0xdca3('0x10'),_0xdca3('0x10'),'FAILED'];config[_0xdca3('0x13')]=_[_0xdca3('0x14')](config[_0xdca3('0x13')],{'host':_0xdca3('0x15'),'port':0x18eb});var io=require(_0xdca3('0x16'))(new Redis(config[_0xdca3('0x13')]));function VoiceCallReport(_0x3485b4){this[_0xdca3('0x17')]=_0x3485b4[_0xdca3('0x17')];this[_0xdca3('0x18')]=_0x3485b4['agents'];this['blindTransfers']={};ami['on'](_0xdca3('0x19'),this[_0xdca3('0x1a')][_0xdca3('0x1b')](this));ami['on'](_0xdca3('0x1c'),this[_0xdca3('0x1a')][_0xdca3('0x1b')](this));ami['on'](_0xdca3('0x1d'),this[_0xdca3('0x1e')][_0xdca3('0x1b')](this));ami['on']('newstate',this[_0xdca3('0x1f')][_0xdca3('0x1b')](this));ami['on'](_0xdca3('0x20'),this[_0xdca3('0x21')]['bind'](this));ami['on'](_0xdca3('0x22'),this['syncHangup']['bind'](this));ami['on'](_0xdca3('0x23'),this[_0xdca3('0x24')][_0xdca3('0x1b')](this));ami['on'](_0xdca3('0x25'),this[_0xdca3('0x26')][_0xdca3('0x1b')](this));ami['on'](_0xdca3('0x27'),this[_0xdca3('0x28')][_0xdca3('0x1b')](this));ami['on']('musiconholdstart',this[_0xdca3('0x29')][_0xdca3('0x1b')](this));ami['on'](_0xdca3('0x2a'),this['syncMusicOnHoldStop'][_0xdca3('0x1b')](this));try{logger['info'](_0xdca3('0x2b'));ami['actionCoreShowChannels']();}catch(_0x4b3ba8){logger['error'](_0xdca3('0x2c'),util[_0xdca3('0x2d')](_0x4b3ba8,{'showHidden':![],'depth':null}));}}VoiceCallReport[_0xdca3('0x2e')][_0xdca3('0x2f')]=function(_0x54708b){return _0x54708b!==null&&!_[_0xdca3('0x30')](_0x54708b);};VoiceCallReport[_0xdca3('0x2e')]['emit']=function(_0xfbbfff,_0x4aa4,_0x507623){io['to'](_0xfbbfff)[_0xdca3('0x31')](_0x4aa4,_0x507623);};VoiceCallReport['prototype'][_0xdca3('0x24')]=function(_0x36e734){try{if(this[_0xdca3('0x2f')](_0x36e734)){logger[_0xdca3('0x32')](_0xdca3('0x33'),_0x36e734['uniqueid'],_0x36e734[_0xdca3('0x34')],_0x36e734[_0xdca3('0x35')]);logger[_0xdca3('0x36')](_0xdca3('0x37'),_0x36e734[_0xdca3('0x38')],util[_0xdca3('0x2d')](_0x36e734,{'showHidden':![],'depth':null}));if(_0x36e734['uniqueid']===_0x36e734[_0xdca3('0x39')]){if(!_[_0xdca3('0x30')](this[_0xdca3('0x17')][_0x36e734[_0xdca3('0x38')]])){_[_0xdca3('0x3a')](this[_0xdca3('0x17')][_0x36e734[_0xdca3('0x38')]],_[_0xdca3('0x3b')](_0x36e734,_['keys'](this[_0xdca3('0x17')][_0x36e734[_0xdca3('0x38')]])));}}if(_0x36e734[_0xdca3('0x3c')]===_0xdca3('0x3d')){if(this[_0xdca3('0x18')][_0x36e734[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]]){if(_0x36e734[_0xdca3('0x40')]==_0xdca3('0x41')){this[_0xdca3('0x18')][_0x36e734[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]][_0xdca3('0x42')]=_0x36e734[_0xdca3('0x43')];this[_0xdca3('0x31')](util[_0xdca3('0x44')](_0xdca3('0x45'),this['agents'][_0x36e734[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]][_0xdca3('0x46')]),_0xdca3('0x47'),{'destaccountcode':this[_0xdca3('0x18')][_0x36e734[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]][_0xdca3('0x48')],'destconnectedlinenum':_0x36e734['connectedlinenum']});}}}}}catch(_0xa73224){logger[_0xdca3('0x49')]('[%s][voiceCallReport][newcallerid]',_0x36e734[_0xdca3('0x38')],util['inspect'](_0xa73224,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xdca3('0x2e')][_0xdca3('0x1e')]=function(_0x39e691){try{if(this[_0xdca3('0x2f')](_0x39e691)){logger[_0xdca3('0x36')]('[%s][voiceCallReport][newchannel]\x20event:',_0x39e691[_0xdca3('0x38')],util['inspect'](_0x39e691,{'showHidden':![],'depth':null}));if(_0x39e691['uniqueid']===_0x39e691['linkedid']&&_0x39e691[_0xdca3('0x3e')]!=_0xdca3('0x4a')){if(_[_0xdca3('0x30')](this['channels'][_0x39e691[_0xdca3('0x38')]])){logger[_0xdca3('0x32')](_0xdca3('0x4b'),_0x39e691[_0xdca3('0x38')],_0x39e691[_0xdca3('0x3c')],_0x39e691[_0xdca3('0x40')]);this[_0xdca3('0x17')][_0x39e691[_0xdca3('0x38')]]=new Channel();this[_0xdca3('0x17')][_0x39e691['uniqueid']][_0xdca3('0x4c')]=moment()[_0xdca3('0x44')](_0xdca3('0x4d'));this[_0xdca3('0x17')][_0x39e691['uniqueid']][_0xdca3('0x4e')]=dispositions[_[_0xdca3('0x4f')](_0x39e691[_0xdca3('0x50')])];_[_0xdca3('0x3a')](this[_0xdca3('0x17')][_0x39e691[_0xdca3('0x38')]],_[_0xdca3('0x3b')](_0x39e691,_[_0xdca3('0x51')](this['channels'][_0x39e691[_0xdca3('0x38')]])));if(_0x39e691['context']===_0xdca3('0x3d')){if(this[_0xdca3('0x18')][_0x39e691[_0xdca3('0x3e')]['split']('-')[0x0]]){if(_['isUndefined'](this[_0xdca3('0x18')][_0x39e691['channel'][_0xdca3('0x3f')]('-')[0x0]][_0xdca3('0x42')])){this[_0xdca3('0x18')][_0x39e691[_0xdca3('0x3e')]['split']('-')[0x0]][_0xdca3('0x42')]=_0x39e691[_0xdca3('0x40')];logger[_0xdca3('0x36')](_0xdca3('0x52'),_0x39e691[_0xdca3('0x38')],util[_0xdca3('0x2d')]({'id':this['agents'][_0x39e691['channel'][_0xdca3('0x3f')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0x39e691['channel'][_0xdca3('0x3f')]('-')[0x0]][_0xdca3('0x48')],'destconnectedlinenum':_0x39e691[_0xdca3('0x40')]},{'showHidden':![],'depth':null}));this['emit'](util[_0xdca3('0x44')]('user:%s',this[_0xdca3('0x18')][_0x39e691[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]][_0xdca3('0x46')]),_0xdca3('0x47'),{'id':this[_0xdca3('0x18')][_0x39e691[_0xdca3('0x3e')]['split']('-')[0x0]]['id'],'destaccountcode':this[_0xdca3('0x18')][_0x39e691[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x39e691['exten']});}}}}}}}catch(_0x1fdb9c){logger[_0xdca3('0x49')](_0xdca3('0x53'),_0x39e691[_0xdca3('0x38')],util['inspect'](_0x1fdb9c,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xdca3('0x2e')][_0xdca3('0x1a')]=function(_0xf20139){try{if(this['isNotNull'](_0xf20139)){logger[_0xdca3('0x36')](_0xdca3('0x54'),_0xf20139['uniqueid'],util[_0xdca3('0x2d')](_0xf20139,{'showHidden':![],'depth':null}));if(_0xf20139[_0xdca3('0x38')]===_0xf20139[_0xdca3('0x39')]&&_0xf20139['exten']!='h'&&_0xf20139[_0xdca3('0x3e')]!=_0xdca3('0x4a')){_0xf20139[_0xdca3('0x55')]=_0xf20139[_0xdca3('0x55')][_0xdca3('0x56')]();_0xf20139[_0xdca3('0x57')]=_0xf20139[_0xdca3('0x58')]&&_0xf20139[_0xdca3('0x58')]['startsWith'](_0xdca3('0x59'))?_0xf20139[_0xdca3('0x58')]:(_0xf20139[_0xdca3('0x58')]||_0xf20139[_0xdca3('0x57')])[_0xdca3('0x56')]();logger[_0xdca3('0x32')](_0xdca3('0x5a'),_0xf20139[_0xdca3('0x38')],_0xf20139[_0xdca3('0x55')],_0xf20139[_0xdca3('0x57')]);if(_[_0xdca3('0x30')](this[_0xdca3('0x17')][_0xf20139[_0xdca3('0x38')]])){this[_0xdca3('0x17')][_0xf20139[_0xdca3('0x38')]]=new Channel();this[_0xdca3('0x17')][_0xf20139[_0xdca3('0x38')]][_0xdca3('0x4c')]=_0xf20139[_0xdca3('0x5b')]?moment()[_0xdca3('0x5c')](moment[_0xdca3('0x5b')](_0xf20139[_0xdca3('0x5b')])[_0xdca3('0x5d')](),_0xdca3('0x5d'))[_0xdca3('0x44')](_0xdca3('0x4d')):moment()[_0xdca3('0x44')](_0xdca3('0x4d'));this[_0xdca3('0x17')][_0xf20139[_0xdca3('0x38')]][_0xdca3('0x4e')]='NO\x20ANSWER';}_[_0xdca3('0x3a')](this[_0xdca3('0x17')][_0xf20139[_0xdca3('0x38')]],_[_0xdca3('0x3b')](_0xf20139,_[_0xdca3('0x51')](this['channels'][_0xf20139[_0xdca3('0x38')]])));if(_['includes'](applications,_0xf20139[_0xdca3('0x55')])){this['channels'][_0xf20139['uniqueid']][_0xdca3('0x5e')]=_0xf20139[_0xdca3('0x55')];this['channels'][_0xf20139[_0xdca3('0x38')]][_0xdca3('0x5f')]=_0xf20139[_0xdca3('0x57')];if(_0xf20139['application']===_0xdca3('0xb')&&_['startsWith'](_0xf20139['applicationdata'][_0xdca3('0x56')](),'cdr(')){var _0x375df8=_0xf20139['applicationdata'][_0xdca3('0x3f')]('=');var _0x189c10=_0x375df8[0x0][_0xdca3('0x56')]()[_0xdca3('0x60')](/cdr\((.*)\)/);if(_0x189c10){this['channels'][_0xf20139[_0xdca3('0x38')]][_0x189c10[0x1]]=_0x375df8[0x1];}}else if(_0xf20139[_0xdca3('0x55')]===_0xdca3('0xc')){this['channels'][_0xf20139[_0xdca3('0x38')]]['queue']=_0xf20139[_0xdca3('0x57')][_0xdca3('0x3f')](',')[0x0];}}}}}catch(_0x16869e){logger[_0xdca3('0x49')](_0xdca3('0x61'),_0xf20139[_0xdca3('0x38')],util[_0xdca3('0x2d')](_0x16869e,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xdca3('0x2e')][_0xdca3('0x1f')]=function(_0x2ebebb){try{if(this['isNotNull'](_0x2ebebb)){logger[_0xdca3('0x32')](_0xdca3('0x62'),_0x2ebebb['uniqueid'],_0x2ebebb[_0xdca3('0x39')],_0x2ebebb[_0xdca3('0x34')],_0x2ebebb['calleridnum']);logger[_0xdca3('0x36')](_0xdca3('0x63'),_0x2ebebb[_0xdca3('0x38')],util[_0xdca3('0x2d')](_0x2ebebb,{'showHidden':![],'depth':null}));if(_0x2ebebb['uniqueid']!==_0x2ebebb['linkedid']){if(this['channels'][_0x2ebebb[_0xdca3('0x39')]]){if(_0x2ebebb['channelstate']==='6'){if(!this[_0xdca3('0x17')][_0x2ebebb[_0xdca3('0x39')]][_0xdca3('0x64')]){var _0xd1cad1=moment();this[_0xdca3('0x17')][_0x2ebebb['linkedid']][_0xdca3('0x64')]=!![];this[_0xdca3('0x17')][_0x2ebebb[_0xdca3('0x39')]][_0xdca3('0x65')]=_0xd1cad1[_0xdca3('0x44')](_0xdca3('0x4d'));if(this[_0xdca3('0x17')][_0x2ebebb[_0xdca3('0x39')]][_0xdca3('0x4c')]){this[_0xdca3('0x17')][_0x2ebebb['linkedid']]['holdtime']=_0xd1cad1[_0xdca3('0x66')](this[_0xdca3('0x17')][_0x2ebebb[_0xdca3('0x39')]][_0xdca3('0x4c')],_0xdca3('0x5d'));}}this['channels'][_0x2ebebb[_0xdca3('0x39')]]['linkedid']=_0x2ebebb['uniqueid'];if(_0x2ebebb[_0xdca3('0x35')]!==_0xdca3('0x41')){this['channels'][_0x2ebebb[_0xdca3('0x39')]][_0xdca3('0x43')]=_0x2ebebb['calleridnum'];}this[_0xdca3('0x17')][_0x2ebebb[_0xdca3('0x39')]]['connectedlinename']=_0x2ebebb[_0xdca3('0x34')];this[_0xdca3('0x17')][_0x2ebebb[_0xdca3('0x39')]][_0xdca3('0x67')]=_0x2ebebb[_0xdca3('0x3e')];this[_0xdca3('0x17')][_0x2ebebb[_0xdca3('0x39')]]['disposition']=dispositions[_[_0xdca3('0x4f')](_0x2ebebb['channelstate'])];if(this[_0xdca3('0x18')][_0x2ebebb[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]]){this[_0xdca3('0x17')][_0x2ebebb[_0xdca3('0x39')]][_0xdca3('0x68')]=this[_0xdca3('0x18')][_0x2ebebb[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]]['id'];this['channels'][_0x2ebebb[_0xdca3('0x39')]][_0xdca3('0x69')]=this[_0xdca3('0x18')][_0x2ebebb[_0xdca3('0x3e')]['split']('-')[0x0]][_0xdca3('0x46')];}}}}else{if(this['channels'][_0x2ebebb[_0xdca3('0x38')]]){if(_0x2ebebb['channelstate']==='6'){if(this[_0xdca3('0x18')][_0x2ebebb[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]]){this['channels'][_0x2ebebb[_0xdca3('0x38')]][_0xdca3('0x68')]=this[_0xdca3('0x18')][_0x2ebebb[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]]['id'];this['channels'][_0x2ebebb[_0xdca3('0x38')]][_0xdca3('0x69')]=this[_0xdca3('0x18')][_0x2ebebb[_0xdca3('0x3e')]['split']('-')[0x0]][_0xdca3('0x46')];}}}}if(_0x2ebebb[_0xdca3('0x50')]==='6'&&_0x2ebebb[_0xdca3('0x3c')]==='from-sip'){if(this['agents'][_0x2ebebb[_0xdca3('0x3e')]['split']('-')[0x0]]){this[_0xdca3('0x18')][_0x2ebebb['channel'][_0xdca3('0x3f')]('-')[0x0]][_0xdca3('0x42')]=_0x2ebebb[_0xdca3('0x40')];var _0x1961d1,_0x81d526;if(this[_0xdca3('0x17')][_0x2ebebb['uniqueid']]){_0x1961d1=this[_0xdca3('0x17')][_0x2ebebb['uniqueid']][_0xdca3('0x6a')];_0x81d526=this[_0xdca3('0x17')][_0x2ebebb[_0xdca3('0x38')]][_0xdca3('0xc')];}else if(this[_0xdca3('0x17')][_0x2ebebb['linkedid']]){_0x1961d1=this[_0xdca3('0x17')][_0x2ebebb['linkedid']][_0xdca3('0x6a')];_0x81d526=this[_0xdca3('0x17')][_0x2ebebb[_0xdca3('0x39')]][_0xdca3('0xc')];}logger[_0xdca3('0x36')](_0xdca3('0x6b'),_0x2ebebb['uniqueid'],util['inspect']({'id':this[_0xdca3('0x18')][_0x2ebebb[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0x2ebebb['channel'][_0xdca3('0x3f')]('-')[0x0]][_0xdca3('0x48')],'destconnectedlinenum':_0x2ebebb['exten'],'routealias':_0x1961d1,'queue':_0x81d526||undefined},{'showHidden':![],'depth':null}));this[_0xdca3('0x31')](util[_0xdca3('0x44')](_0xdca3('0x45'),this['agents'][_0x2ebebb[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]][_0xdca3('0x46')]),_0xdca3('0x47'),{'id':this[_0xdca3('0x18')][_0x2ebebb[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]]['id'],'agentconnected':!![],'destaccountcode':this[_0xdca3('0x18')][_0x2ebebb['channel'][_0xdca3('0x3f')]('-')[0x0]][_0xdca3('0x48')],'destconnectedlinenum':_0x2ebebb[_0xdca3('0x40')],'routealias':_0x1961d1,'queue':_0x81d526||undefined});}}}}catch(_0x8e9c21){logger['error'](_0xdca3('0x6c'),_0x2ebebb[_0xdca3('0x38')],util[_0xdca3('0x2d')](_0x8e9c21,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xdca3('0x2e')][_0xdca3('0x6d')]=function(_0x501d30,_0x1a924d){try{if(this[_0xdca3('0x17')][_0x501d30]){logger[_0xdca3('0x32')](_0xdca3('0x6e'),_0x501d30,_0x1a924d);this[_0xdca3('0x17')][_0x501d30][_0xdca3('0x6f')]=!![];if(_[_0xdca3('0x70')](_0x1a924d,_0xdca3('0x71'))){_0x1a924d=_0x1a924d[_0xdca3('0x72')](_0xdca3('0x71'),'.WAV');}this['channels'][_0x501d30]['monitorFilename']=_0x1a924d;var _0x35ad54=_[_0xdca3('0x73')](this[_0xdca3('0x17')][_0x501d30][_0xdca3('0x74')],{'filename':_0x1a924d});if(_[_0xdca3('0x75')](_0x35ad54)){this['channels'][_0x501d30]['monitors'][_0xdca3('0x76')]({'filename':_0x1a924d,'createdAt':moment()[_0xdca3('0x44')](_0xdca3('0x4d')),'mixmonitorid':'','status':_0xdca3('0x77')});}}}catch(_0x4492d3){logger[_0xdca3('0x49')](_0xdca3('0x78'),_0x501d30,util[_0xdca3('0x2d')](_0x4492d3,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xdca3('0x2e')][_0xdca3('0x21')]=function(_0x148eb3){try{if(this['isNotNull'](_0x148eb3)){logger[_0xdca3('0x36')](_0xdca3('0x79'),_0x148eb3[_0xdca3('0x38')],util[_0xdca3('0x2d')](_0x148eb3,{'showHidden':![],'depth':null}));if(this['channels'][_0x148eb3[_0xdca3('0x38')]]&&_0x148eb3[_0xdca3('0x3e')]!=_0xdca3('0x4a')){if(this[_0xdca3('0x2f')](_0x148eb3[_0xdca3('0x7a')])){if(this[_0xdca3('0x2f')](_0x148eb3[_0xdca3('0x7a')]['mixmonitor_filename'])){logger[_0xdca3('0x32')]('[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s',_0x148eb3[_0xdca3('0x38')],_0x148eb3[_0xdca3('0x7b')]);this[_0xdca3('0x6d')](_0x148eb3['uniqueid'],_0x148eb3['value']);}else if(this[_0xdca3('0x2f')](_0x148eb3['variable'][_0xdca3('0x7c')])){logger[_0xdca3('0x32')](_0xdca3('0x7d'),_0x148eb3[_0xdca3('0x38')],_0x148eb3[_0xdca3('0x7b')]);this[_0xdca3('0x17')][_0x148eb3[_0xdca3('0x38')]]['calleridnum']=_0x148eb3[_0xdca3('0x7b')];}else if(this[_0xdca3('0x2f')](_0x148eb3['variable'][_0xdca3('0x7e')])){logger[_0xdca3('0x32')]('[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s',_0x148eb3[_0xdca3('0x38')],_0x148eb3[_0xdca3('0x7b')]);this[_0xdca3('0x17')][_0x148eb3[_0xdca3('0x38')]][_0xdca3('0x7f')]=_0x148eb3['value'];}else if(this[_0xdca3('0x2f')](_0x148eb3[_0xdca3('0x7a')][_0xdca3('0x80')])){logger['info'](_0xdca3('0x81'),_0x148eb3[_0xdca3('0x38')],_0x148eb3['value']);this['channels'][_0x148eb3[_0xdca3('0x38')]]['type']=_0x148eb3[_0xdca3('0x7b')];}else if(this[_0xdca3('0x2f')](_0x148eb3[_0xdca3('0x7a')][_0xdca3('0x82')])){logger[_0xdca3('0x32')]('[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s',_0x148eb3[_0xdca3('0x38')],_0x148eb3['value']['split'](',')[0x0]);this[_0xdca3('0x17')][_0x148eb3['uniqueid']][_0xdca3('0xc')]=_0x148eb3['value'][_0xdca3('0x3f')](',')[0x0];}else if(this[_0xdca3('0x2f')](_0x148eb3[_0xdca3('0x7a')]['xmd-originatecalleridnum'])){logger[_0xdca3('0x32')]('[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x148eb3['uniqueid'],_0x148eb3[_0xdca3('0x7b')]);this[_0xdca3('0x17')][_0x148eb3['uniqueid']][_0xdca3('0x83')]=_0x148eb3['value'];}else if(this['isNotNull'](_0x148eb3[_0xdca3('0x7a')]['xmd-destination'])){logger['info'](_0xdca3('0x84'),_0x148eb3[_0xdca3('0x38')],_0x148eb3[_0xdca3('0x7b')]);this[_0xdca3('0x17')][_0x148eb3[_0xdca3('0x38')]]['destination']=_0x148eb3[_0xdca3('0x7b')];}else if(this['isNotNull'](_0x148eb3['variable'][_0xdca3('0x85')])){logger[_0xdca3('0x32')](_0xdca3('0x86'),_0x148eb3[_0xdca3('0x38')],_0x148eb3['value']);this[_0xdca3('0x17')][_0x148eb3[_0xdca3('0x38')]]['calleridpreview']=_0x148eb3[_0xdca3('0x7b')];}else if(this['isNotNull'](_0x148eb3[_0xdca3('0x7a')][_0xdca3('0x87')])){logger['info'](_0xdca3('0x88'),_0x148eb3[_0xdca3('0x38')],_0x148eb3[_0xdca3('0x7b')]);this[_0xdca3('0x17')][_0x148eb3['uniqueid']][_0xdca3('0xc')]=_0x148eb3['value'];}else if(this[_0xdca3('0x2f')](_0x148eb3[_0xdca3('0x7a')][_0xdca3('0x89')])){logger[_0xdca3('0x32')](_0xdca3('0x8a'),_0x148eb3[_0xdca3('0x38')],_0x148eb3['value']);this['channels'][_0x148eb3[_0xdca3('0x38')]]['sipcalluniqueid']=_0x148eb3[_0xdca3('0x7b')];}}}else if(this['isNotNull'](_0x148eb3[_0xdca3('0x7a')][_0xdca3('0x8b')])){if(_0x148eb3[_0xdca3('0x7b')]){var _0x4ad24e=path[_0xdca3('0x8c')](_0x148eb3[_0xdca3('0x7b')])[_0xdca3('0x46')];logger['info'](_0xdca3('0x8d'),_0x4ad24e,_0x148eb3[_0xdca3('0x7b')]);this[_0xdca3('0x6d')](_0x4ad24e,_0x148eb3[_0xdca3('0x7b')]);}}else if(this['channels'][_0x148eb3[_0xdca3('0x39')]]){if(this[_0xdca3('0x2f')](_0x148eb3['variable'])){if(this[_0xdca3('0x2f')](_0x148eb3[_0xdca3('0x7a')]['sipcallid'])){logger['info'](_0xdca3('0x8a'),_0x148eb3[_0xdca3('0x39')],_0x148eb3['value']);this[_0xdca3('0x17')][_0x148eb3[_0xdca3('0x39')]]['sipcalllinkedid']=_0x148eb3['value'];}}}}}catch(_0x4cae0b){logger[_0xdca3('0x49')](_0xdca3('0x8e'),_0x148eb3[_0xdca3('0x38')],util['inspect'](_0x4cae0b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xdca3('0x2e')][_0xdca3('0x8f')]=function(_0x9b3512){try{if(this[_0xdca3('0x2f')](_0x9b3512)){logger[_0xdca3('0x36')]('[%s][voiceCallReport][hangup]\x20event:',_0x9b3512[_0xdca3('0x38')],util[_0xdca3('0x2d')](_0x9b3512,{'showHidden':![],'depth':null}));if(this[_0xdca3('0x17')][_0x9b3512['uniqueid']]){logger['info']('[%s][voiceCallReport][hangup]\x20reason:%s',_0x9b3512['uniqueid'],_0x9b3512[_0xdca3('0x90')]);var _0x579431=moment();this['channels'][_0x9b3512['uniqueid']][_0xdca3('0x91')]=_0x579431[_0xdca3('0x44')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xdca3('0x17')][_0x9b3512['uniqueid']]['duration']=_0x579431[_0xdca3('0x66')](this[_0xdca3('0x17')][_0x9b3512[_0xdca3('0x38')]][_0xdca3('0x4c')],_0xdca3('0x5d'));if(this['channels'][_0x9b3512['uniqueid']]['answered']){this[_0xdca3('0x17')][_0x9b3512[_0xdca3('0x38')]][_0xdca3('0x92')]=_0x579431[_0xdca3('0x66')](this[_0xdca3('0x17')][_0x9b3512['uniqueid']][_0xdca3('0x65')],_0xdca3('0x5d'));this['channels'][_0x9b3512[_0xdca3('0x38')]]['holdtime']=this[_0xdca3('0x17')][_0x9b3512[_0xdca3('0x38')]][_0xdca3('0x5b')]-this['channels'][_0x9b3512[_0xdca3('0x38')]]['billableseconds'];}if(_0x9b3512[_0xdca3('0x3c')]===_0xdca3('0x3d')){if(this[_0xdca3('0x18')][_0x9b3512[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]]){this[_0xdca3('0x18')][_0x9b3512['channel']['split']('-')[0x0]]=_[_0xdca3('0x93')](this[_0xdca3('0x18')][_0x9b3512[_0xdca3('0x3e')]['split']('-')[0x0]],[_0xdca3('0x42')]);logger[_0xdca3('0x36')]('[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:',_0x9b3512[_0xdca3('0x38')],util['inspect']({'id':this[_0xdca3('0x18')][_0x9b3512[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]]['id'],'destaccountcode':this[_0xdca3('0x18')][_0x9b3512[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]]['accountcode']},{'showHidden':![],'depth':null}));this[_0xdca3('0x31')](util[_0xdca3('0x44')](_0xdca3('0x45'),this[_0xdca3('0x18')][_0x9b3512[_0xdca3('0x3e')]['split']('-')[0x0]][_0xdca3('0x46')]),_0xdca3('0x94'),{'id':this['agents'][_0x9b3512['channel'][_0xdca3('0x3f')]('-')[0x0]]['id'],'destaccountcode':this[_0xdca3('0x18')][_0x9b3512[_0xdca3('0x3e')][_0xdca3('0x3f')]('-')[0x0]][_0xdca3('0x48')]});for(var _0x31a02a=0x0;_0x31a02a<Object['keys'](this[_0xdca3('0x18')])[_0xdca3('0x95')];_0x31a02a++){var _0x18ad67=Object[_0xdca3('0x51')](this[_0xdca3('0x18')])[_0x31a02a];var _0x537103=this[_0xdca3('0x18')][_0x18ad67];if(_0x537103[_0xdca3('0x48')]===Number(_0x9b3512[_0xdca3('0x43')])){this[_0xdca3('0x31')](util[_0xdca3('0x44')](_0xdca3('0x45'),_0x537103['name']),_0xdca3('0x94'),{'id':_0x537103['id'],'destaccountcode':_0x537103['accountcode']});break;}}}}var _0x2d40cb=this;Promise['resolve']()[_0xdca3('0x96')](function(){var _0x51c2a0=_0x2d40cb[_0xdca3('0x17')][_0x9b3512[_0xdca3('0x38')]];if(typeof _0x51c2a0['transferType']===_0xdca3('0x97'))return;if(_[_0xdca3('0x98')](_0x51c2a0['monitors']))return;return RpcSetting[_0xdca3('0x99')]()[_0xdca3('0x96')](function(_0x522cd8){if(!_0x522cd8[_0xdca3('0x9a')])return;return Promise[_0xdca3('0x9b')]()['then'](function(){return ami[_0xdca3('0x9c')]({'action':_0xdca3('0x9d'),'channel':_0x51c2a0[_0xdca3('0x3e')]})[_0xdca3('0x9e')](function(){});})[_0xdca3('0x96')](function(){return ami['Action']({'action':_0xdca3('0x9d'),'channel':_0x51c2a0[_0xdca3('0x67')]})['catch'](function(){})[_0xdca3('0x9f')](function(){var _0x3a1df2=_0x2d40cb['agents'][_0x51c2a0[_0xdca3('0x67')][_0xdca3('0x3f')]('-')[0x0]];if(!_0x3a1df2)return;io[_0xdca3('0x31')](_0xdca3('0xa0'),{'agentId':_0x3a1df2['id'],'uniqueid':_0x51c2a0[_0xdca3('0x38')]});});});});})[_0xdca3('0x96')](function(){if(_0x9b3512[_0xdca3('0xa1')]===_0xdca3('0xa2')){_0x2d40cb[_0xdca3('0xa3')][_0x9b3512['uniqueid']]=_0x2d40cb[_0xdca3('0x17')][_0x9b3512[_0xdca3('0x38')]];}else{if(_0x2d40cb['channels'][_0x9b3512['uniqueid']]['type']==='outbound'&&_0x2d40cb['blindTransfers'][_0x9b3512[_0xdca3('0x38')]]){_0x2d40cb[_0xdca3('0x17')][_0x9b3512[_0xdca3('0x38')]][_0xdca3('0x38')]=[_0x2d40cb[_0xdca3('0x17')][_0x9b3512[_0xdca3('0x38')]][_0xdca3('0x39')],_0x2d40cb[_0xdca3('0x17')][_0x9b3512[_0xdca3('0x38')]]['linkedid']=_0x2d40cb['channels'][_0x9b3512['uniqueid']][_0xdca3('0x38')]][0x0];delete _0x2d40cb[_0xdca3('0xa3')][_0x9b3512[_0xdca3('0x38')]];}}logger[_0xdca3('0x36')](_0xdca3('0xa4'),_0x9b3512[_0xdca3('0x38')],util['inspect'](_0x2d40cb[_0xdca3('0x17')][_0x9b3512[_0xdca3('0x38')]],{'showHidden':![],'depth':null}));ami[_0xdca3('0x31')](_0xdca3('0xa5'),_0x2d40cb[_0xdca3('0x17')][_0x9b3512[_0xdca3('0x38')]]);delete _0x2d40cb[_0xdca3('0x17')][_0x9b3512[_0xdca3('0x38')]];});}}}catch(_0x1fff3e){logger[_0xdca3('0x49')](_0xdca3('0xa6'),_0x9b3512[_0xdca3('0x38')],util['inspect'](_0x1fff3e,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xdca3('0x2e')][_0xdca3('0x26')]=function(_0x52055b){try{if(this[_0xdca3('0x2f')](_0x52055b)){logger['info'](_0xdca3('0xa7'),_0x52055b[_0xdca3('0x38')],_0x52055b[_0xdca3('0xa8')],_0x52055b[_0xdca3('0xa9')]);logger[_0xdca3('0x36')](_0xdca3('0xaa'),_0x52055b[_0xdca3('0x38')],util['inspect'](_0x52055b,{'showHidden':![],'depth':null}));var _0x36cdf9;if(this['channels'][_0x52055b[_0xdca3('0xab')]]){this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xab')]][_0xdca3('0xac')]=_0x52055b[_0xdca3('0xa8')];this['channels'][_0x52055b[_0xdca3('0xab')]][_0xdca3('0xad')]=_0x52055b[_0xdca3('0xa9')];if(this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xae')]]){_0x36cdf9=this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xae')]];this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xae')]]=this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xab')]];this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xab')]]=_0x36cdf9;}}else if(this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xaf')]]){this[_0xdca3('0x17')][_0x52055b['transfertargetuniqueid']][_0xdca3('0xac')]=_0x52055b['origtransferercalleridnum'];this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xaf')]][_0xdca3('0xad')]=_0x52055b[_0xdca3('0xa9')];if(this[_0xdca3('0x17')][_0x52055b['origtransfereruniqueid']]){_0x36cdf9=this['channels'][_0x52055b[_0xdca3('0xb0')]];this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xb0')]]=this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xaf')]];this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xaf')]]=_0x36cdf9;}}if((this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xb0')]]||this['channels'][_0x52055b[_0xdca3('0xb1')]])&&this['channels'][_0x52055b[_0xdca3('0xae')]]){var _0x547417=_['some']([this['channels'][_0x52055b[_0xdca3('0xb0')]],this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xb1')]],this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xae')]]],function(_0x3f7201){return _0x3f7201&&_0x3f7201[_0xdca3('0xb2')]===_0xdca3('0xb3')&&_0x3f7201[_0xdca3('0xb4')];});if(_0x547417){if(this['channels'][_0x52055b[_0xdca3('0xb0')]])this[_0xdca3('0x17')][_0x52055b['origtransfereruniqueid']][_0xdca3('0xb5')]=_0xdca3('0xb6');if(this[_0xdca3('0x17')][_0x52055b['origtransfererlinkedid']])this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xb1')]][_0xdca3('0xb5')]=_0xdca3('0xb6');this[_0xdca3('0x17')][_0x52055b[_0xdca3('0xae')]][_0xdca3('0xb5')]='ATTENDED';}}}}catch(_0x211fd8){logger[_0xdca3('0x49')](_0xdca3('0xb7'),_0x52055b[_0xdca3('0x38')],util[_0xdca3('0x2d')](_0x211fd8,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype']['syncBlindTransfer']=function(_0x514081){try{if(this[_0xdca3('0x2f')](_0x514081)){logger[_0xdca3('0x32')](_0xdca3('0xb8'),_0x514081[_0xdca3('0x38')],_0x514081['transfereecalleridnum'],_0x514081['extension']);logger[_0xdca3('0x36')](_0xdca3('0xb9'),_0x514081[_0xdca3('0x38')],util[_0xdca3('0x2d')](_0x514081,{'showHidden':![],'depth':null}));if(this[_0xdca3('0x17')][_0x514081[_0xdca3('0xab')]]){this['channels'][_0x514081['transfereeuniqueid']][_0xdca3('0xac')]=_0x514081[_0xdca3('0xba')];this[_0xdca3('0x17')][_0x514081['transfereeuniqueid']][_0xdca3('0xad')]=_0x514081[_0xdca3('0xbb')];this['channels'][_0x514081['transfereeuniqueid']]['transferType']=_0xdca3('0xbc');this['syncHangup']({'event':_0xdca3('0xa2'),'uniqueid':_0x514081[_0xdca3('0xab')],'context':_0x514081[_0xdca3('0x3c')],'channel':_0x514081[_0xdca3('0xbd')]});}else{this[_0xdca3('0x17')][_0x514081[_0xdca3('0xbe')]][_0xdca3('0xb5')]=_0xdca3('0xbc');}}}catch(_0x34c740){logger['error']('[%s][voiceCallReport][blindtransfer]',_0x514081[_0xdca3('0x38')],util[_0xdca3('0x2d')](_0x34c740,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xdca3('0x2e')][_0xdca3('0x29')]=function(_0x1eb953){try{if(this[_0xdca3('0x2f')](_0x1eb953)){logger[_0xdca3('0x36')](_0xdca3('0xbf'),_0x1eb953[_0xdca3('0x38')],util[_0xdca3('0x2d')](_0x1eb953,{'showHidden':![],'depth':null}));if(this['channels'][_0x1eb953[_0xdca3('0x38')]]){if(!_['isNil'](this[_0xdca3('0x17')][_0x1eb953[_0xdca3('0x38')]][_0xdca3('0x65')])){this[_0xdca3('0x17')][_0x1eb953[_0xdca3('0x38')]]['mohstarttime']=moment()[_0xdca3('0x44')](_0xdca3('0x4d'));logger[_0xdca3('0x32')](_0xdca3('0xc0'),_0x1eb953[_0xdca3('0x38')],this[_0xdca3('0x17')][_0x1eb953['uniqueid']][_0xdca3('0xc1')]);}}}}catch(_0x15f647){logger[_0xdca3('0x49')](_0xdca3('0xc2'),_0x1eb953[_0xdca3('0x38')],util[_0xdca3('0x2d')](_0x15f647,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xdca3('0x2e')][_0xdca3('0xc3')]=function(_0x4201b1){try{if(this[_0xdca3('0x2f')](_0x4201b1)){logger['debug'](_0xdca3('0xc4'),_0x4201b1['uniqueid'],util['inspect'](_0x4201b1,{'showHidden':![],'depth':null}));if(this[_0xdca3('0x17')][_0x4201b1[_0xdca3('0x38')]]){if(!_[_0xdca3('0x75')](this[_0xdca3('0x17')][_0x4201b1['uniqueid']]['mohstarttime'])){this['channels'][_0x4201b1[_0xdca3('0x38')]][_0xdca3('0xc5')]+=moment()[_0xdca3('0xc6')](0x0)[_0xdca3('0x66')](this[_0xdca3('0x17')][_0x4201b1[_0xdca3('0x38')]][_0xdca3('0xc1')],_0xdca3('0x5d'));logger[_0xdca3('0x32')](_0xdca3('0xc7'),_0x4201b1[_0xdca3('0x38')],this[_0xdca3('0x17')][_0x4201b1['uniqueid']][_0xdca3('0xc5')]);delete this[_0xdca3('0x17')][_0x4201b1['uniqueid']][_0xdca3('0xc1')];}}}}catch(_0x57ec0e){logger['error'](_0xdca3('0xc8'),_0x4201b1[_0xdca3('0x38')],util['inspect'](_0x57ec0e,{'showHidden':![],'depth':null}));}};module['exports']=VoiceCallReport;
\ No newline at end of file
+var _0x5a42=['subtract','seconds','lastapplication','lastdata','cdr(','match','queue','[%s][voiceCallReport][newexten]','[%s][voiceCallReport][newstate]\x20event:','answered','answertime','holdtime','connectedlinename','destinationchannel','disposition','toNumber','UserId','membername','routealias','[%s][voiceCallReport][newstate]\x20sending\x20user:agentconnect\x20event:','[%s][voiceCallReport][newstate]','syncMixMonitorFilename','endsWith','.wav49','replace','.WAV','monitorFilename','find','monitors','rec','[%s][voiceCallReport][mixMonitorFilename]','[%s][voiceCallReport][varset]\x20event:','variable','mixmonitor_filename','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','value','xmd-phone','[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s','[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s','callerid','xmd-cdrtype','[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s','[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s','xmd-originatecalleridnum','originatecalleridnum','destination','xmd-callerid-preview','[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s','[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','parse','sipcallid','sipcalllinkedid','[%s][voiceCallReport][varset]','[%s][voiceCallReport][hangup]\x20event:','[%s][voiceCallReport][hangup]\x20reason:%s','cause-txt','endtime','billableseconds','diff','omit','[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:','emit','user:agentcomplete','resolve','transferType','getSettings','then','Action','StopMixMonitor','catch','finally','event','BlindTransfer','type','outbound','[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:','[%s][voiceCallReport][hangup]','syncAttendedTransfer','[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','origtransferercalleridnum','transfereeuniqueid','transfercalleridnum','transfertargetcalleridnum','secondtransfereruniqueid','transfertargetuniqueid','transferconnectedlinenum','origtransfereruniqueid','origtransfererlinkedid','ATTENDED','[%s][voiceCallReport][attendedtransfer]','syncBlindTransfer','[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','transfereecalleridnum','[%s][voiceCallReport][blindtransfer]\x20event:','extension','BLIND','isNil','mohstarttime','[%s][voiceCallReport][musiconholdstart]','mohtime','[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s','[%s][voiceCallReport][musiconholdstop]','lodash','moment','util','ioredis','../../../config/logger','../ami','../model/channel','../rpc/setting','unknown','not_inuse','ringing','ringinuse','onhold','set','dial','playback','voicemail','NO\x20ANSWER','FAILED','BUSY','redis','defaults','localhost','channels','blindTransfers','coreshowchannel','syncNewExten','bind','newchannel','syncNewChannel','newstate','syncNewState','varset','syncVarSet','syncHangup','newcallerid','syncNewCallerId','attendedtransfer','blindtransfer','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','info','actionCoreShowChannels','error','inspect','prototype','isNotNull','[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s','uniqueid','calleridname','calleridnum','debug','[%s][voiceCallReport][newcallerid]\x20event:','linkedid','isUndefined','merge','keys','from-sip','exten','xcally-motion-preview','agents','channel','destconnectedlinenum','connectedlinenum','format','name','user:agentconnect','split','accountcode','[%s][voiceCallReport][newcallerid]','[%s][voiceCallReport][newchannel]\x20event:','context','starttime','YYYY-MM-DD\x20HH:mm:ss','channelstate','pick','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','user:%s','[%s][voiceCallReport][newchannel]','[%s][voiceCallReport][newexten]\x20event:','OutgoingSpoolFailed','application','toLowerCase','applicationdata','appdata','startsWith','CDR(routeAlias)','[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s','duration'];(function(_0x129929,_0x46008d){var _0x3bd48e=function(_0x5d0a26){while(--_0x5d0a26){_0x129929['push'](_0x129929['shift']());}};_0x3bd48e(++_0x46008d);}(_0x5a42,0x129));var _0x25a4=function(_0x383102,_0x3f735f){_0x383102=_0x383102-0x0;var _0x31698d=_0x5a42[_0x383102];return _0x31698d;};'use strict';var BPromise=require('bluebird');var _=require(_0x25a4('0x0'));var moment=require(_0x25a4('0x1'));var util=require(_0x25a4('0x2'));var path=require('path');var Redis=require(_0x25a4('0x3'));var config=require('../../../config/environment');var logger=require(_0x25a4('0x4'))('ami');var ami=require(_0x25a4('0x5'));var Channel=require(_0x25a4('0x6'));var RpcSetting=require(_0x25a4('0x7'));var statusDesc=[_0x25a4('0x8'),_0x25a4('0x9'),'inuse','busy','invalid','unavailable',_0x25a4('0xa'),_0x25a4('0xb'),_0x25a4('0xc')];var applications=[_0x25a4('0xd'),'queue','agi',_0x25a4('0xe'),_0x25a4('0xf'),_0x25a4('0x10')];var dispositions=[_0x25a4('0x11'),'FAILED',_0x25a4('0x12'),_0x25a4('0x11'),_0x25a4('0x11'),_0x25a4('0x11'),'ANSWERED',_0x25a4('0x13'),'FAILED',_0x25a4('0x12'),_0x25a4('0x12')];var actions={};config[_0x25a4('0x14')]=_[_0x25a4('0x15')](config[_0x25a4('0x14')],{'host':_0x25a4('0x16'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function VoiceCallReport(_0x5888bd){this[_0x25a4('0x17')]=_0x5888bd['channels'];this['agents']=_0x5888bd['agents'];this[_0x25a4('0x18')]={};ami['on'](_0x25a4('0x19'),this[_0x25a4('0x1a')][_0x25a4('0x1b')](this));ami['on']('newexten',this[_0x25a4('0x1a')][_0x25a4('0x1b')](this));ami['on'](_0x25a4('0x1c'),this[_0x25a4('0x1d')][_0x25a4('0x1b')](this));ami['on'](_0x25a4('0x1e'),this[_0x25a4('0x1f')][_0x25a4('0x1b')](this));ami['on'](_0x25a4('0x20'),this[_0x25a4('0x21')]['bind'](this));ami['on']('hangup',this[_0x25a4('0x22')][_0x25a4('0x1b')](this));ami['on'](_0x25a4('0x23'),this[_0x25a4('0x24')]['bind'](this));ami['on'](_0x25a4('0x25'),this['syncAttendedTransfer'][_0x25a4('0x1b')](this));ami['on'](_0x25a4('0x26'),this['syncBlindTransfer'][_0x25a4('0x1b')](this));ami['on'](_0x25a4('0x27'),this[_0x25a4('0x28')][_0x25a4('0x1b')](this));ami['on'](_0x25a4('0x29'),this[_0x25a4('0x2a')]['bind'](this));try{logger[_0x25a4('0x2b')]('[voiceCallReport][coreshowchannels]\x20started');ami[_0x25a4('0x2c')]();}catch(_0xd2d334){logger[_0x25a4('0x2d')]('[voiceCallReport][coreshowchannels]',util[_0x25a4('0x2e')](_0xd2d334,{'showHidden':![],'depth':null}));}}VoiceCallReport[_0x25a4('0x2f')]['isNotNull']=function(_0x3e1a43){return _0x3e1a43!==null&&!_['isUndefined'](_0x3e1a43);};VoiceCallReport[_0x25a4('0x2f')]['emit']=function(_0x526626,_0xd7eb0d,_0x1208fa){io['to'](_0x526626)['emit'](_0xd7eb0d,_0x1208fa);};VoiceCallReport[_0x25a4('0x2f')][_0x25a4('0x24')]=function(_0x654bdd){try{if(this[_0x25a4('0x30')](_0x654bdd)){logger[_0x25a4('0x2b')](_0x25a4('0x31'),_0x654bdd[_0x25a4('0x32')],_0x654bdd[_0x25a4('0x33')],_0x654bdd[_0x25a4('0x34')]);logger[_0x25a4('0x35')](_0x25a4('0x36'),_0x654bdd[_0x25a4('0x32')],util[_0x25a4('0x2e')](_0x654bdd,{'showHidden':![],'depth':null}));if(_0x654bdd[_0x25a4('0x32')]===_0x654bdd[_0x25a4('0x37')]){if(!_[_0x25a4('0x38')](this[_0x25a4('0x17')][_0x654bdd[_0x25a4('0x32')]])){_[_0x25a4('0x39')](this['channels'][_0x654bdd[_0x25a4('0x32')]],_['pick'](_0x654bdd,_[_0x25a4('0x3a')](this['channels'][_0x654bdd['uniqueid']])));}}if(_0x654bdd['context']===_0x25a4('0x3b')){if(this['agents'][_0x654bdd['channel']['split']('-')[0x0]]){if(_0x654bdd[_0x25a4('0x3c')]==_0x25a4('0x3d')){this[_0x25a4('0x3e')][_0x654bdd[_0x25a4('0x3f')]['split']('-')[0x0]][_0x25a4('0x40')]=_0x654bdd[_0x25a4('0x41')];this['emit'](util[_0x25a4('0x42')]('user:%s',this[_0x25a4('0x3e')][_0x654bdd[_0x25a4('0x3f')]['split']('-')[0x0]][_0x25a4('0x43')]),_0x25a4('0x44'),{'destaccountcode':this['agents'][_0x654bdd[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]][_0x25a4('0x46')],'destconnectedlinenum':_0x654bdd[_0x25a4('0x41')]});}}}}}catch(_0x4d9246){logger['error'](_0x25a4('0x47'),_0x654bdd[_0x25a4('0x32')],util[_0x25a4('0x2e')](_0x4d9246,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x25a4('0x2f')][_0x25a4('0x1d')]=function(_0x588af2){try{if(this[_0x25a4('0x30')](_0x588af2)){logger[_0x25a4('0x35')](_0x25a4('0x48'),_0x588af2[_0x25a4('0x32')],util[_0x25a4('0x2e')](_0x588af2,{'showHidden':![],'depth':null}));if(_0x588af2[_0x25a4('0x32')]===_0x588af2['linkedid']&&_0x588af2['channel']!='OutgoingSpoolFailed'){if(_[_0x25a4('0x38')](this[_0x25a4('0x17')][_0x588af2['uniqueid']])){logger[_0x25a4('0x2b')]('[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s',_0x588af2['uniqueid'],_0x588af2[_0x25a4('0x49')],_0x588af2[_0x25a4('0x3c')]);this[_0x25a4('0x17')][_0x588af2[_0x25a4('0x32')]]=new Channel();this[_0x25a4('0x17')][_0x588af2[_0x25a4('0x32')]][_0x25a4('0x4a')]=moment()[_0x25a4('0x42')](_0x25a4('0x4b'));this['channels'][_0x588af2['uniqueid']]['disposition']=dispositions[_['toNumber'](_0x588af2[_0x25a4('0x4c')])];_[_0x25a4('0x39')](this[_0x25a4('0x17')][_0x588af2[_0x25a4('0x32')]],_[_0x25a4('0x4d')](_0x588af2,_[_0x25a4('0x3a')](this[_0x25a4('0x17')][_0x588af2[_0x25a4('0x32')]])));if(_0x588af2[_0x25a4('0x49')]==='from-sip'){if(this['agents'][_0x588af2[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]]){if(_[_0x25a4('0x38')](this['agents'][_0x588af2['channel'][_0x25a4('0x45')]('-')[0x0]]['destconnectedlinenum'])){this[_0x25a4('0x3e')][_0x588af2[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]][_0x25a4('0x40')]=_0x588af2['exten'];logger[_0x25a4('0x35')](_0x25a4('0x4e'),_0x588af2[_0x25a4('0x32')],util[_0x25a4('0x2e')]({'destaccountcode':this[_0x25a4('0x3e')][_0x588af2[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]][_0x25a4('0x46')],'destconnectedlinenum':_0x588af2[_0x25a4('0x3c')]},{'showHidden':![],'depth':null}));this['emit'](util[_0x25a4('0x42')](_0x25a4('0x4f'),this[_0x25a4('0x3e')][_0x588af2[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]][_0x25a4('0x43')]),_0x25a4('0x44'),{'destaccountcode':this[_0x25a4('0x3e')][_0x588af2['channel']['split']('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x588af2[_0x25a4('0x3c')]});}}}}}}}catch(_0x4494e0){logger[_0x25a4('0x2d')](_0x25a4('0x50'),_0x588af2[_0x25a4('0x32')],util['inspect'](_0x4494e0,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x25a4('0x2f')][_0x25a4('0x1a')]=function(_0x482c9f){try{if(this[_0x25a4('0x30')](_0x482c9f)){logger[_0x25a4('0x35')](_0x25a4('0x51'),_0x482c9f[_0x25a4('0x32')],util['inspect'](_0x482c9f,{'showHidden':![],'depth':null}));if(_0x482c9f[_0x25a4('0x32')]===_0x482c9f[_0x25a4('0x37')]&&_0x482c9f['exten']!='h'&&_0x482c9f[_0x25a4('0x3f')]!=_0x25a4('0x52')){_0x482c9f[_0x25a4('0x53')]=_0x482c9f[_0x25a4('0x53')][_0x25a4('0x54')]();_0x482c9f[_0x25a4('0x55')]=_0x482c9f['appdata']&&_0x482c9f[_0x25a4('0x56')][_0x25a4('0x57')](_0x25a4('0x58'))?_0x482c9f[_0x25a4('0x56')]:(_0x482c9f['appdata']||_0x482c9f[_0x25a4('0x55')])[_0x25a4('0x54')]();logger['info'](_0x25a4('0x59'),_0x482c9f[_0x25a4('0x32')],_0x482c9f[_0x25a4('0x53')],_0x482c9f[_0x25a4('0x55')]);if(_['isUndefined'](this[_0x25a4('0x17')][_0x482c9f[_0x25a4('0x32')]])){this[_0x25a4('0x17')][_0x482c9f[_0x25a4('0x32')]]=new Channel();this[_0x25a4('0x17')][_0x482c9f['uniqueid']][_0x25a4('0x4a')]=_0x482c9f[_0x25a4('0x5a')]?moment()[_0x25a4('0x5b')](moment['duration'](_0x482c9f[_0x25a4('0x5a')])[_0x25a4('0x5c')](),_0x25a4('0x5c'))[_0x25a4('0x42')](_0x25a4('0x4b')):moment()[_0x25a4('0x42')](_0x25a4('0x4b'));this[_0x25a4('0x17')][_0x482c9f[_0x25a4('0x32')]]['disposition']=_0x25a4('0x11');}_[_0x25a4('0x39')](this['channels'][_0x482c9f[_0x25a4('0x32')]],_[_0x25a4('0x4d')](_0x482c9f,_['keys'](this[_0x25a4('0x17')][_0x482c9f[_0x25a4('0x32')]])));if(_['includes'](applications,_0x482c9f['application'])){this[_0x25a4('0x17')][_0x482c9f['uniqueid']][_0x25a4('0x5d')]=_0x482c9f[_0x25a4('0x53')];this[_0x25a4('0x17')][_0x482c9f['uniqueid']][_0x25a4('0x5e')]=_0x482c9f[_0x25a4('0x55')];if(_0x482c9f['application']===_0x25a4('0xd')&&_['startsWith'](_0x482c9f[_0x25a4('0x55')][_0x25a4('0x54')](),_0x25a4('0x5f'))){var _0x4539b5=_0x482c9f[_0x25a4('0x55')][_0x25a4('0x45')]('=');var _0x3477dd=_0x4539b5[0x0][_0x25a4('0x54')]()[_0x25a4('0x60')](/cdr\((.*)\)/);if(_0x3477dd){this['channels'][_0x482c9f[_0x25a4('0x32')]][_0x3477dd[0x1]]=_0x4539b5[0x1];}}else if(_0x482c9f[_0x25a4('0x53')]===_0x25a4('0x61')){this[_0x25a4('0x17')][_0x482c9f[_0x25a4('0x32')]][_0x25a4('0x61')]=_0x482c9f[_0x25a4('0x55')]['split'](',')[0x0];}}}}}catch(_0x4df7f7){logger[_0x25a4('0x2d')](_0x25a4('0x62'),_0x482c9f[_0x25a4('0x32')],util['inspect'](_0x4df7f7,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x25a4('0x2f')][_0x25a4('0x1f')]=function(_0x219e53){try{if(this[_0x25a4('0x30')](_0x219e53)){logger[_0x25a4('0x2b')]('[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s',_0x219e53['uniqueid'],_0x219e53[_0x25a4('0x37')],_0x219e53[_0x25a4('0x33')],_0x219e53[_0x25a4('0x34')]);logger[_0x25a4('0x35')](_0x25a4('0x63'),_0x219e53['uniqueid'],util[_0x25a4('0x2e')](_0x219e53,{'showHidden':![],'depth':null}));if(_0x219e53['uniqueid']!==_0x219e53[_0x25a4('0x37')]){if(this['channels'][_0x219e53[_0x25a4('0x37')]]){if(_0x219e53['channelstate']==='6'){if(!this[_0x25a4('0x17')][_0x219e53[_0x25a4('0x37')]][_0x25a4('0x64')]){var _0x26c0d3=moment();this[_0x25a4('0x17')][_0x219e53[_0x25a4('0x37')]][_0x25a4('0x64')]=!![];this[_0x25a4('0x17')][_0x219e53[_0x25a4('0x37')]][_0x25a4('0x65')]=_0x26c0d3['format'](_0x25a4('0x4b'));if(this[_0x25a4('0x17')][_0x219e53[_0x25a4('0x37')]][_0x25a4('0x4a')]){this[_0x25a4('0x17')][_0x219e53['linkedid']][_0x25a4('0x66')]=_0x26c0d3['diff'](this[_0x25a4('0x17')][_0x219e53['linkedid']][_0x25a4('0x4a')],_0x25a4('0x5c'));}}this[_0x25a4('0x17')][_0x219e53['linkedid']][_0x25a4('0x37')]=_0x219e53[_0x25a4('0x32')];if(_0x219e53[_0x25a4('0x34')]!==_0x25a4('0x3d')){this[_0x25a4('0x17')][_0x219e53['linkedid']][_0x25a4('0x41')]=_0x219e53['calleridnum'];}this[_0x25a4('0x17')][_0x219e53[_0x25a4('0x37')]][_0x25a4('0x67')]=_0x219e53[_0x25a4('0x33')];this[_0x25a4('0x17')][_0x219e53[_0x25a4('0x37')]][_0x25a4('0x68')]=_0x219e53[_0x25a4('0x3f')];this['channels'][_0x219e53[_0x25a4('0x37')]][_0x25a4('0x69')]=dispositions[_[_0x25a4('0x6a')](_0x219e53[_0x25a4('0x4c')])];if(this[_0x25a4('0x3e')][_0x219e53['channel'][_0x25a4('0x45')]('-')[0x0]]){this['channels'][_0x219e53[_0x25a4('0x37')]][_0x25a4('0x6b')]=this['agents'][_0x219e53[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]]['id'];this[_0x25a4('0x17')][_0x219e53[_0x25a4('0x37')]][_0x25a4('0x6c')]=this[_0x25a4('0x3e')][_0x219e53[_0x25a4('0x3f')]['split']('-')[0x0]][_0x25a4('0x43')];}}}}else{if(this[_0x25a4('0x17')][_0x219e53[_0x25a4('0x32')]]){if(_0x219e53['channelstate']==='6'){if(this['agents'][_0x219e53[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]]){this[_0x25a4('0x17')][_0x219e53['uniqueid']][_0x25a4('0x6b')]=this[_0x25a4('0x3e')][_0x219e53[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]]['id'];this['channels'][_0x219e53[_0x25a4('0x32')]][_0x25a4('0x6c')]=this[_0x25a4('0x3e')][_0x219e53[_0x25a4('0x3f')]['split']('-')[0x0]][_0x25a4('0x43')];}}}}if(_0x219e53['channelstate']==='6'&&_0x219e53[_0x25a4('0x49')]==='from-sip'){if(this[_0x25a4('0x3e')][_0x219e53[_0x25a4('0x3f')]['split']('-')[0x0]]){this['agents'][_0x219e53[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]][_0x25a4('0x40')]=_0x219e53[_0x25a4('0x3c')];var _0xb087d2;if(this[_0x25a4('0x17')][_0x219e53[_0x25a4('0x32')]])_0xb087d2=this['channels'][_0x219e53[_0x25a4('0x32')]][_0x25a4('0x6d')];else if(this['channels'][_0x219e53[_0x25a4('0x37')]])_0xb087d2=this['channels'][_0x219e53[_0x25a4('0x37')]][_0x25a4('0x6d')];logger[_0x25a4('0x35')](_0x25a4('0x6e'),_0x219e53['uniqueid'],util['inspect']({'destaccountcode':this[_0x25a4('0x3e')][_0x219e53[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]][_0x25a4('0x46')],'destconnectedlinenum':_0x219e53[_0x25a4('0x3c')],'routealias':_0xb087d2},{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x25a4('0x4f'),this['agents'][_0x219e53['channel'][_0x25a4('0x45')]('-')[0x0]][_0x25a4('0x43')]),_0x25a4('0x44'),{'destaccountcode':this[_0x25a4('0x3e')][_0x219e53['channel'][_0x25a4('0x45')]('-')[0x0]][_0x25a4('0x46')],'destconnectedlinenum':_0x219e53[_0x25a4('0x3c')],'routealias':_0xb087d2});}}}}catch(_0x47a024){logger[_0x25a4('0x2d')](_0x25a4('0x6f'),_0x219e53[_0x25a4('0x32')],util['inspect'](_0x47a024,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x25a4('0x2f')][_0x25a4('0x70')]=function(_0x21ce08,_0x45b7d4){try{if(this[_0x25a4('0x17')][_0x21ce08]){logger[_0x25a4('0x2b')]('[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s',_0x21ce08,_0x45b7d4);this['channels'][_0x21ce08]['monitor']=!![];if(_[_0x25a4('0x71')](_0x45b7d4,_0x25a4('0x72'))){_0x45b7d4=_0x45b7d4[_0x25a4('0x73')](_0x25a4('0x72'),_0x25a4('0x74'));}this[_0x25a4('0x17')][_0x21ce08][_0x25a4('0x75')]=_0x45b7d4;var _0x2cc5c7=_[_0x25a4('0x76')](this[_0x25a4('0x17')][_0x21ce08][_0x25a4('0x77')],{'filename':_0x45b7d4});if(_['isNil'](_0x2cc5c7)){this['channels'][_0x21ce08][_0x25a4('0x77')]['push']({'filename':_0x45b7d4,'createdAt':moment()['format'](_0x25a4('0x4b')),'mixmonitorid':'','status':_0x25a4('0x78')});}}}catch(_0x13240c){logger['error'](_0x25a4('0x79'),_0x21ce08,util[_0x25a4('0x2e')](_0x13240c,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x25a4('0x2f')][_0x25a4('0x21')]=function(_0x111203){try{if(this[_0x25a4('0x30')](_0x111203)){logger[_0x25a4('0x35')](_0x25a4('0x7a'),_0x111203['uniqueid'],util[_0x25a4('0x2e')](_0x111203,{'showHidden':![],'depth':null}));if(this['channels'][_0x111203[_0x25a4('0x32')]]&&_0x111203['channel']!='OutgoingSpoolFailed'){if(this[_0x25a4('0x30')](_0x111203[_0x25a4('0x7b')])){if(this[_0x25a4('0x30')](_0x111203[_0x25a4('0x7b')][_0x25a4('0x7c')])){logger[_0x25a4('0x2b')](_0x25a4('0x7d'),_0x111203[_0x25a4('0x32')],_0x111203['value']);this[_0x25a4('0x70')](_0x111203[_0x25a4('0x32')],_0x111203[_0x25a4('0x7e')]);}else if(this[_0x25a4('0x30')](_0x111203['variable'][_0x25a4('0x7f')])){logger[_0x25a4('0x2b')](_0x25a4('0x80'),_0x111203['uniqueid'],_0x111203[_0x25a4('0x7e')]);this[_0x25a4('0x17')][_0x111203[_0x25a4('0x32')]][_0x25a4('0x34')]=_0x111203['value'];}else if(this['isNotNull'](_0x111203[_0x25a4('0x7b')]['xmd-callerid'])){logger[_0x25a4('0x2b')](_0x25a4('0x81'),_0x111203[_0x25a4('0x32')],_0x111203[_0x25a4('0x7e')]);this['channels'][_0x111203[_0x25a4('0x32')]][_0x25a4('0x82')]=_0x111203[_0x25a4('0x7e')];}else if(this[_0x25a4('0x30')](_0x111203[_0x25a4('0x7b')][_0x25a4('0x83')])){logger['info'](_0x25a4('0x84'),_0x111203[_0x25a4('0x32')],_0x111203[_0x25a4('0x7e')]);this[_0x25a4('0x17')][_0x111203['uniqueid']]['type']=_0x111203['value'];}else if(this[_0x25a4('0x30')](_0x111203['variable']['xmd-queue'])){logger[_0x25a4('0x2b')](_0x25a4('0x85'),_0x111203[_0x25a4('0x32')],_0x111203[_0x25a4('0x7e')]['split'](',')[0x0]);this['channels'][_0x111203[_0x25a4('0x32')]][_0x25a4('0x61')]=_0x111203[_0x25a4('0x7e')][_0x25a4('0x45')](',')[0x0];}else if(this[_0x25a4('0x30')](_0x111203[_0x25a4('0x7b')][_0x25a4('0x86')])){logger[_0x25a4('0x2b')]('[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x111203['uniqueid'],_0x111203[_0x25a4('0x7e')]);this[_0x25a4('0x17')][_0x111203[_0x25a4('0x32')]][_0x25a4('0x87')]=_0x111203[_0x25a4('0x7e')];}else if(this[_0x25a4('0x30')](_0x111203[_0x25a4('0x7b')]['xmd-destination'])){logger[_0x25a4('0x2b')]('[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s',_0x111203[_0x25a4('0x32')],_0x111203[_0x25a4('0x7e')]);this['channels'][_0x111203[_0x25a4('0x32')]][_0x25a4('0x88')]=_0x111203['value'];}else if(this[_0x25a4('0x30')](_0x111203[_0x25a4('0x7b')][_0x25a4('0x89')])){logger['info'](_0x25a4('0x8a'),_0x111203['uniqueid'],_0x111203['value']);this[_0x25a4('0x17')][_0x111203[_0x25a4('0x32')]]['calleridpreview']=_0x111203['value'];}else if(this[_0x25a4('0x30')](_0x111203['variable']['xmcs-queue'])){logger[_0x25a4('0x2b')](_0x25a4('0x8b'),_0x111203['uniqueid'],_0x111203['value']);this['channels'][_0x111203[_0x25a4('0x32')]][_0x25a4('0x61')]=_0x111203[_0x25a4('0x7e')];}else if(this['isNotNull'](_0x111203[_0x25a4('0x7b')]['sipcallid'])){logger[_0x25a4('0x2b')](_0x25a4('0x8c'),_0x111203[_0x25a4('0x32')],_0x111203['value']);this['channels'][_0x111203[_0x25a4('0x32')]]['sipcalluniqueid']=_0x111203[_0x25a4('0x7e')];}}}else if(this[_0x25a4('0x30')](_0x111203[_0x25a4('0x7b')]['mixmonitor_filename'])){if(_0x111203[_0x25a4('0x7e')]){var _0x2892c6=path[_0x25a4('0x8d')](_0x111203['value'])[_0x25a4('0x43')];logger[_0x25a4('0x2b')](_0x25a4('0x7d'),_0x2892c6,_0x111203[_0x25a4('0x7e')]);this[_0x25a4('0x70')](_0x2892c6,_0x111203['value']);}}else if(this[_0x25a4('0x17')][_0x111203[_0x25a4('0x37')]]){if(this[_0x25a4('0x30')](_0x111203['variable'])){if(this[_0x25a4('0x30')](_0x111203[_0x25a4('0x7b')][_0x25a4('0x8e')])){logger['info'](_0x25a4('0x8c'),_0x111203[_0x25a4('0x37')],_0x111203[_0x25a4('0x7e')]);this[_0x25a4('0x17')][_0x111203['linkedid']][_0x25a4('0x8f')]=_0x111203[_0x25a4('0x7e')];}}}}}catch(_0x37449a){logger[_0x25a4('0x2d')](_0x25a4('0x90'),_0x111203[_0x25a4('0x32')],util[_0x25a4('0x2e')](_0x37449a,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x25a4('0x2f')]['syncHangup']=function(_0x4e30bb){try{if(this[_0x25a4('0x30')](_0x4e30bb)){logger[_0x25a4('0x35')](_0x25a4('0x91'),_0x4e30bb[_0x25a4('0x32')],util[_0x25a4('0x2e')](_0x4e30bb,{'showHidden':![],'depth':null}));if(this['channels'][_0x4e30bb['uniqueid']]){logger[_0x25a4('0x2b')](_0x25a4('0x92'),_0x4e30bb['uniqueid'],_0x4e30bb[_0x25a4('0x93')]);var _0xf46bf=moment();this[_0x25a4('0x17')][_0x4e30bb[_0x25a4('0x32')]][_0x25a4('0x94')]=_0xf46bf[_0x25a4('0x42')]('YYYY-MM-DD\x20HH:mm:ss');this[_0x25a4('0x17')][_0x4e30bb['uniqueid']][_0x25a4('0x5a')]=_0xf46bf['diff'](this[_0x25a4('0x17')][_0x4e30bb[_0x25a4('0x32')]][_0x25a4('0x4a')],_0x25a4('0x5c'));if(this['channels'][_0x4e30bb[_0x25a4('0x32')]][_0x25a4('0x64')]){this[_0x25a4('0x17')][_0x4e30bb['uniqueid']][_0x25a4('0x95')]=_0xf46bf[_0x25a4('0x96')](this[_0x25a4('0x17')][_0x4e30bb[_0x25a4('0x32')]][_0x25a4('0x65')],_0x25a4('0x5c'));this[_0x25a4('0x17')][_0x4e30bb[_0x25a4('0x32')]][_0x25a4('0x66')]=this[_0x25a4('0x17')][_0x4e30bb[_0x25a4('0x32')]][_0x25a4('0x5a')]-this[_0x25a4('0x17')][_0x4e30bb[_0x25a4('0x32')]][_0x25a4('0x95')];}if(_0x4e30bb['context']==='from-sip'){if(this[_0x25a4('0x3e')][_0x4e30bb[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]]){this[_0x25a4('0x3e')][_0x4e30bb[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]]=_[_0x25a4('0x97')](this[_0x25a4('0x3e')][_0x4e30bb[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]],[_0x25a4('0x40')]);logger['debug'](_0x25a4('0x98'),_0x4e30bb[_0x25a4('0x32')],util[_0x25a4('0x2e')]({'id':this[_0x25a4('0x3e')][_0x4e30bb[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]]['id'],'destaccountcode':this[_0x25a4('0x3e')][_0x4e30bb[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]][_0x25a4('0x46')]},{'showHidden':![],'depth':null}));this[_0x25a4('0x99')](util['format'](_0x25a4('0x4f'),this[_0x25a4('0x3e')][_0x4e30bb[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]][_0x25a4('0x43')]),_0x25a4('0x9a'),{'id':this[_0x25a4('0x3e')][_0x4e30bb['channel']['split']('-')[0x0]]['id'],'destaccountcode':this[_0x25a4('0x3e')][_0x4e30bb[_0x25a4('0x3f')][_0x25a4('0x45')]('-')[0x0]][_0x25a4('0x46')]});}}var _0x192528=this;Promise[_0x25a4('0x9b')]()['then'](function(){var _0x5ab743=_0x192528[_0x25a4('0x17')][_0x4e30bb[_0x25a4('0x32')]];if(typeof _0x5ab743[_0x25a4('0x9c')]==='undefined')return;if(_['isEmpty'](_0x5ab743[_0x25a4('0x77')]))return;return RpcSetting[_0x25a4('0x9d')]()[_0x25a4('0x9e')](function(_0x550518){if(!_0x550518['stopRecordingOnTransfer'])return;return Promise[_0x25a4('0x9b')]()[_0x25a4('0x9e')](function(){return ami[_0x25a4('0x9f')]({'action':_0x25a4('0xa0'),'channel':_0x5ab743['channel']})[_0x25a4('0xa1')](function(){});})[_0x25a4('0x9e')](function(){return ami[_0x25a4('0x9f')]({'action':_0x25a4('0xa0'),'channel':_0x5ab743[_0x25a4('0x68')]})['catch'](function(){})[_0x25a4('0xa2')](function(){var _0xc0570=_0x192528['agents'][_0x5ab743[_0x25a4('0x68')][_0x25a4('0x45')]('-')[0x0]];if(!_0xc0570)return;io[_0x25a4('0x99')]('webbar:stopmonitors',{'agentId':_0xc0570['id'],'uniqueid':_0x5ab743['uniqueid']});});});});})[_0x25a4('0x9e')](function(){if(_0x4e30bb[_0x25a4('0xa3')]===_0x25a4('0xa4')){_0x192528[_0x25a4('0x18')][_0x4e30bb['uniqueid']]=_0x192528[_0x25a4('0x17')][_0x4e30bb[_0x25a4('0x32')]];}else{if(_0x192528['channels'][_0x4e30bb[_0x25a4('0x32')]][_0x25a4('0xa5')]===_0x25a4('0xa6')&&_0x192528['blindTransfers'][_0x4e30bb['uniqueid']]){_0x192528['channels'][_0x4e30bb['uniqueid']]['uniqueid']=[_0x192528[_0x25a4('0x17')][_0x4e30bb[_0x25a4('0x32')]][_0x25a4('0x37')],_0x192528['channels'][_0x4e30bb[_0x25a4('0x32')]][_0x25a4('0x37')]=_0x192528[_0x25a4('0x17')][_0x4e30bb['uniqueid']]['uniqueid']][0x0];delete _0x192528['blindTransfers'][_0x4e30bb['uniqueid']];}}logger[_0x25a4('0x35')](_0x25a4('0xa7'),_0x4e30bb[_0x25a4('0x32')],util[_0x25a4('0x2e')](_0x192528[_0x25a4('0x17')][_0x4e30bb['uniqueid']],{'showHidden':![],'depth':null}));ami['emit']('custom:voiceCallReport',_0x192528[_0x25a4('0x17')][_0x4e30bb[_0x25a4('0x32')]]);delete _0x192528['channels'][_0x4e30bb[_0x25a4('0x32')]];});}}}catch(_0x5040c3){logger[_0x25a4('0x2d')](_0x25a4('0xa8'),_0x4e30bb['uniqueid'],util['inspect'](_0x5040c3,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x25a4('0xa9')]=function(_0xc3fa56){try{if(this[_0x25a4('0x30')](_0xc3fa56)){logger[_0x25a4('0x2b')](_0x25a4('0xaa'),_0xc3fa56[_0x25a4('0x32')],_0xc3fa56[_0x25a4('0xab')],_0xc3fa56['transfertargetcalleridnum']);logger[_0x25a4('0x35')]('[%s][voiceCallReport][attendedtransfer]\x20event:',_0xc3fa56[_0x25a4('0x32')],util['inspect'](_0xc3fa56,{'showHidden':![],'depth':null}));if(this['channels'][_0xc3fa56[_0x25a4('0xac')]]){this[_0x25a4('0x17')][_0xc3fa56[_0x25a4('0xac')]][_0x25a4('0xad')]=_0xc3fa56[_0x25a4('0xab')];this['channels'][_0xc3fa56[_0x25a4('0xac')]]['transferconnectedlinenum']=_0xc3fa56[_0x25a4('0xae')];if(this['channels'][_0xc3fa56[_0x25a4('0xaf')]]){var _0x1a11c6=this[_0x25a4('0x17')][_0xc3fa56[_0x25a4('0xaf')]];this['channels'][_0xc3fa56['secondtransfereruniqueid']]=this[_0x25a4('0x17')][_0xc3fa56[_0x25a4('0xac')]];this['channels'][_0xc3fa56[_0x25a4('0xac')]]=_0x1a11c6;}}else if(this[_0x25a4('0x17')][_0xc3fa56['transfertargetuniqueid']]){this[_0x25a4('0x17')][_0xc3fa56['transfertargetuniqueid']][_0x25a4('0xad')]=_0xc3fa56[_0x25a4('0xab')];this[_0x25a4('0x17')][_0xc3fa56[_0x25a4('0xb0')]][_0x25a4('0xb1')]=_0xc3fa56[_0x25a4('0xae')];if(this[_0x25a4('0x17')][_0xc3fa56['origtransfereruniqueid']]){var _0x1a11c6=this['channels'][_0xc3fa56[_0x25a4('0xb2')]];this[_0x25a4('0x17')][_0xc3fa56[_0x25a4('0xb2')]]=this[_0x25a4('0x17')][_0xc3fa56[_0x25a4('0xb0')]];this['channels'][_0xc3fa56[_0x25a4('0xb0')]]=_0x1a11c6;}}if((this['channels'][_0xc3fa56[_0x25a4('0xb2')]]||this[_0x25a4('0x17')][_0xc3fa56[_0x25a4('0xb3')]])&&this[_0x25a4('0x17')][_0xc3fa56[_0x25a4('0xaf')]]){var _0x2452ac=_['some']([this['channels'][_0xc3fa56[_0x25a4('0xb2')]],this['channels'][_0xc3fa56[_0x25a4('0xb3')]],this['channels'][_0xc3fa56[_0x25a4('0xaf')]]],function(_0x55924f){return _0x55924f&&_0x55924f[_0x25a4('0xa5')]===_0x25a4('0xa6')&&_0x55924f['routeid'];});if(_0x2452ac){if(this[_0x25a4('0x17')][_0xc3fa56['origtransfereruniqueid']])this[_0x25a4('0x17')][_0xc3fa56['origtransfereruniqueid']][_0x25a4('0x9c')]='ATTENDED';if(this[_0x25a4('0x17')][_0xc3fa56[_0x25a4('0xb3')]])this[_0x25a4('0x17')][_0xc3fa56[_0x25a4('0xb3')]]['transferType']=_0x25a4('0xb4');this[_0x25a4('0x17')][_0xc3fa56[_0x25a4('0xaf')]]['transferType']=_0x25a4('0xb4');}}}}catch(_0x3972b){logger['error'](_0x25a4('0xb5'),_0xc3fa56[_0x25a4('0x32')],util[_0x25a4('0x2e')](_0x3972b,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x25a4('0xb6')]=function(_0x784d06){try{if(this[_0x25a4('0x30')](_0x784d06)){logger[_0x25a4('0x2b')](_0x25a4('0xb7'),_0x784d06[_0x25a4('0x32')],_0x784d06[_0x25a4('0xb8')],_0x784d06['extension']);logger[_0x25a4('0x35')](_0x25a4('0xb9'),_0x784d06[_0x25a4('0x32')],util['inspect'](_0x784d06,{'showHidden':![],'depth':null}));if(this['channels'][_0x784d06[_0x25a4('0xac')]]){this[_0x25a4('0x17')][_0x784d06[_0x25a4('0xac')]][_0x25a4('0xad')]=_0x784d06[_0x25a4('0xb8')];this['channels'][_0x784d06[_0x25a4('0xac')]][_0x25a4('0xb1')]=_0x784d06[_0x25a4('0xba')];this[_0x25a4('0x17')][_0x784d06['transfereeuniqueid']][_0x25a4('0x9c')]=_0x25a4('0xbb');this['syncHangup']({'event':_0x25a4('0xa4'),'uniqueid':_0x784d06[_0x25a4('0xac')],'context':_0x784d06[_0x25a4('0x49')],'channel':_0x784d06['transfererchannel']});}else{this[_0x25a4('0x17')][_0x784d06['transfereruniqueid']][_0x25a4('0x9c')]='BLIND';}}}catch(_0x5e1481){logger['error']('[%s][voiceCallReport][blindtransfer]',_0x784d06[_0x25a4('0x32')],util['inspect'](_0x5e1481,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x25a4('0x2f')][_0x25a4('0x28')]=function(_0x2d29a7){try{if(this['isNotNull'](_0x2d29a7)){logger['debug']('[%s][voiceCallReport][musiconholdstart]\x20event:',_0x2d29a7[_0x25a4('0x32')],util[_0x25a4('0x2e')](_0x2d29a7,{'showHidden':![],'depth':null}));if(this['channels'][_0x2d29a7['uniqueid']]){if(!_[_0x25a4('0xbc')](this['channels'][_0x2d29a7[_0x25a4('0x32')]]['answertime'])){this['channels'][_0x2d29a7['uniqueid']]['mohstarttime']=moment()['format'](_0x25a4('0x4b'));logger['info']('[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s',_0x2d29a7['uniqueid'],this['channels'][_0x2d29a7[_0x25a4('0x32')]][_0x25a4('0xbd')]);}}}}catch(_0x1d0dda){logger[_0x25a4('0x2d')](_0x25a4('0xbe'),_0x2d29a7[_0x25a4('0x32')],util[_0x25a4('0x2e')](_0x1d0dda,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x25a4('0x2f')][_0x25a4('0x2a')]=function(_0x59bae8){try{if(this['isNotNull'](_0x59bae8)){logger[_0x25a4('0x35')]('[%s][voiceCallReport][musiconholdstop]\x20event:',_0x59bae8[_0x25a4('0x32')],util['inspect'](_0x59bae8,{'showHidden':![],'depth':null}));if(this['channels'][_0x59bae8[_0x25a4('0x32')]]){if(!_[_0x25a4('0xbc')](this[_0x25a4('0x17')][_0x59bae8[_0x25a4('0x32')]]['mohstarttime'])){this[_0x25a4('0x17')][_0x59bae8[_0x25a4('0x32')]][_0x25a4('0xbf')]+=moment()['milliseconds'](0x0)['diff'](this['channels'][_0x59bae8[_0x25a4('0x32')]][_0x25a4('0xbd')],_0x25a4('0x5c'));logger[_0x25a4('0x2b')](_0x25a4('0xc0'),_0x59bae8[_0x25a4('0x32')],this[_0x25a4('0x17')][_0x59bae8[_0x25a4('0x32')]][_0x25a4('0xbf')]);delete this[_0x25a4('0x17')][_0x59bae8[_0x25a4('0x32')]]['mohstarttime'];}}}}catch(_0x198e19){logger['error'](_0x25a4('0xc1'),_0x59bae8[_0x25a4('0x32')],util[_0x25a4('0x2e')](_0x198e19,{'showHidden':![],'depth':null}));}};module['exports']=VoiceCallReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x85ff=['lastevent','connect','[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect','[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:','custom:dialconnect','[%s][voiceDialReport][dialend]','syncVarSet','keys','variable','value','variables','voice','[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s','outboundrouteid','[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:','[%s][voiceDialReport][varset]','addVariable','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','bridgepeer','bridgepvtcallid','memberdynamic','memberinterface','memberlastcall','memberpenalty','memberrealtime','isNil','includes','syncHangup','[%s][voiceDialReport][hangup]\x20event:','[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete','cause-txt','duration','starttime','seconds','complete','total','answered','holdtime','diff','billableseconds','endtime','sumHoldTime','sumBillable','sumDuration','custom:voiceDialReport','[%s][voiceDialReport][hangup]\x20sending\x20dialend\x20event:','custom:dialend','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','[%s][voiceDialReport][hangup]','[%s][voiceDialReport][newexten]\x20event:','application','toLowerCase','set','appdata','applicationdata','startsWith','cdr(','[%s][voiceDialReport][newexten]\x20application:%s\x20appdata:%s','exports','lodash','moment','util','ioredis','../../../config/environment','../../../config/logger','ami','../ami','defaults','localhost','socket.io-emitter','channels','outboundChannels','outbound','dialbegin','dialend','bind','varset','newexten','syncNewExten','prototype','isNotNull','isUndefined','emit','syncDialBegin','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid','inspect','format','YYYY-MM-DD\x20HH:mm:ss','called','channel','substring','lastIndexOf','omit','event','privilege','info','[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called','membername','interface','debug','[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:','applications','merge','voice:outbound','voice_outbound_channel:save','custom:dialbegin','error','syncDialEnd','[%s][voiceDialReport][dialend]\x20event:','dialstatus','ANSWER','connectedlinename','answertime'];(function(_0x11a691,_0x1c67ad){var _0x3d7249=function(_0x33d89d){while(--_0x33d89d){_0x11a691['push'](_0x11a691['shift']());}};_0x3d7249(++_0x1c67ad);}(_0x85ff,0xc7));var _0xf85f=function(_0x5bd426,_0x4878e5){_0x5bd426=_0x5bd426-0x0;var _0x23a7eb=_0x85ff[_0x5bd426];return _0x23a7eb;};'use strict';var _=require(_0xf85f('0x0'));var moment=require(_0xf85f('0x1'));var util=require(_0xf85f('0x2'));var Redis=require(_0xf85f('0x3'));var config=require(_0xf85f('0x4'));var logger=require(_0xf85f('0x5'))(_0xf85f('0x6'));var ami=require(_0xf85f('0x7'));config['redis']=_[_0xf85f('0x8')](config['redis'],{'host':_0xf85f('0x9'),'port':0x18eb});var io=require(_0xf85f('0xa'))(new Redis(config['redis']));function VoiceDialReport(_0x3a285b){this[_0xf85f('0xb')]=_0x3a285b[_0xf85f('0xc')];this[_0xf85f('0xd')]=_0x3a285b[_0xf85f('0xd')];this['applications']={};this['variables']={};ami['on'](_0xf85f('0xe'),this['syncDialBegin']['bind'](this));ami['on'](_0xf85f('0xf'),this['syncDialEnd'][_0xf85f('0x10')](this));ami['on'](_0xf85f('0x11'),this['syncVarSet'][_0xf85f('0x10')](this));ami['on'](_0xf85f('0x12'),this[_0xf85f('0x13')]['bind'](this));ami['on']('hangup',this['syncHangup'][_0xf85f('0x10')](this));}VoiceDialReport[_0xf85f('0x14')][_0xf85f('0x15')]=function(_0x231f62){return _0x231f62!==null&&!_[_0xf85f('0x16')](_0x231f62);};VoiceDialReport[_0xf85f('0x14')]['emit']=function(_0x1ad764,_0x4770be,_0x59d967){io['to'](_0x1ad764)[_0xf85f('0x17')](_0x4770be,_0x59d967);};VoiceDialReport['prototype'][_0xf85f('0x18')]=function(_0x3ce0a2){try{if(this['isNotNull'](_0x3ce0a2)){logger['debug'](_0xf85f('0x19'),_0x3ce0a2[_0xf85f('0x1a')],util[_0xf85f('0x1b')](_0x3ce0a2,{'showHidden':![],'depth':null}));if(this['channels'][_0x3ce0a2[_0xf85f('0x1a')]]){_['merge'](this[_0xf85f('0xb')][_0x3ce0a2[_0xf85f('0x1a')]],{'starttime':moment()[_0xf85f('0x1c')](_0xf85f('0x1d')),'lastevent':_0xf85f('0x1e'),'interface':_0x3ce0a2[_0xf85f('0x1f')][_0xf85f('0x20')](0x0,_0x3ce0a2[_0xf85f('0x1f')][_0xf85f('0x21')]('-')),'membername':_0x3ce0a2[_0xf85f('0x1f')]['substring'](_0x3ce0a2['channel'][_0xf85f('0x21')]('/')+0x1,_0x3ce0a2[_0xf85f('0x1f')][_0xf85f('0x21')]('-'))},_[_0xf85f('0x22')](_0x3ce0a2,[_0xf85f('0x23'),_0xf85f('0x24')]));logger[_0xf85f('0x25')](_0xf85f('0x26'),_0x3ce0a2[_0xf85f('0x1a')],this[_0xf85f('0xb')][_0x3ce0a2[_0xf85f('0x1a')]][_0xf85f('0x27')],this['channels'][_0x3ce0a2[_0xf85f('0x1a')]][_0xf85f('0x28')]);logger[_0xf85f('0x29')](_0xf85f('0x2a'),_0x3ce0a2[_0xf85f('0x1a')],util['inspect'](this[_0xf85f('0xb')][_0x3ce0a2[_0xf85f('0x1a')]],{'showHidden':![],'depth':null}));if(this[_0xf85f('0x2b')][_0x3ce0a2[_0xf85f('0x1a')]])_[_0xf85f('0x2c')](this[_0xf85f('0xb')][_0x3ce0a2['uniqueid']],this[_0xf85f('0x2b')][_0x3ce0a2['uniqueid']]);this[_0xf85f('0x17')](_0xf85f('0x2d'),_0xf85f('0x2e'),this[_0xf85f('0xb')][_0x3ce0a2[_0xf85f('0x1a')]]);logger[_0xf85f('0x29')]('[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:',_0x3ce0a2[_0xf85f('0x1a')],util['inspect'](this[_0xf85f('0xb')][_0x3ce0a2[_0xf85f('0x1a')]],{'showHidden':![],'depth':null}));ami['emit'](_0xf85f('0x2f'),this['channels'][_0x3ce0a2['uniqueid']]);}}}catch(_0x3be3a1){logger[_0xf85f('0x30')]('[%s][voiceDialReport][dialbegin]',_0x3ce0a2['uniqueid'],util[_0xf85f('0x1b')](_0x3be3a1,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xf85f('0x14')][_0xf85f('0x31')]=function(_0x2533ce){try{if(this[_0xf85f('0x15')](_0x2533ce)){logger[_0xf85f('0x29')](_0xf85f('0x32'),_0x2533ce[_0xf85f('0x1a')],util[_0xf85f('0x1b')](_0x2533ce,{'showHidden':![],'depth':null}));if(this[_0xf85f('0xb')][_0x2533ce[_0xf85f('0x1a')]]){this['channels'][_0x2533ce[_0xf85f('0x1a')]][_0xf85f('0x33')]=_0x2533ce[_0xf85f('0x33')];if(_0x2533ce['dialstatus']===_0xf85f('0x34')){this['channels'][_0x2533ce[_0xf85f('0x1a')]]['connectedlinenum']=_0x2533ce['connectedlinenum'];this['channels'][_0x2533ce[_0xf85f('0x1a')]]['connectedlinename']=_0x2533ce[_0xf85f('0x35')];this[_0xf85f('0xb')][_0x2533ce[_0xf85f('0x1a')]][_0xf85f('0x36')]=moment()[_0xf85f('0x1c')](_0xf85f('0x1d'));this['channels'][_0x2533ce[_0xf85f('0x1a')]][_0xf85f('0x37')]=_0xf85f('0x38');logger['info'](_0xf85f('0x39'),_0x2533ce[_0xf85f('0x1a')],_0x2533ce['channel']['substring'](_0x2533ce[_0xf85f('0x1f')][_0xf85f('0x21')]('/')+0x1,_0x2533ce[_0xf85f('0x1f')][_0xf85f('0x21')]('-')));logger[_0xf85f('0x29')](_0xf85f('0x3a'),_0x2533ce['uniqueid'],util[_0xf85f('0x1b')](this['channels'][_0x2533ce[_0xf85f('0x1a')]],{'showHidden':![],'depth':null}));ami[_0xf85f('0x17')](_0xf85f('0x3b'),this[_0xf85f('0xb')][_0x2533ce[_0xf85f('0x1a')]]);}logger[_0xf85f('0x29')]('[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:',_0x2533ce[_0xf85f('0x1a')],util[_0xf85f('0x1b')](this['channels'][_0x2533ce[_0xf85f('0x1a')]],{'showHidden':![],'depth':null}));this['emit'](_0xf85f('0x2d'),'voice_outbound_channel:save',this['channels'][_0x2533ce[_0xf85f('0x1a')]]);}}}catch(_0x429a3f){logger[_0xf85f('0x30')](_0xf85f('0x3c'),_0x2533ce['uniqueid'],util[_0xf85f('0x1b')](_0x429a3f,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xf85f('0x14')][_0xf85f('0x3d')]=function(_0x47e362){try{if(this['isNotNull'](_0x47e362)){logger['debug']('[%s][voiceDialReport][varset]\x20event:',_0x47e362[_0xf85f('0x1a')],util['inspect'](_0x47e362,{'showHidden':![],'depth':null}));this['addVariable'](_0x47e362[_0xf85f('0x1a')],_[_0xf85f('0x3e')](_0x47e362[_0xf85f('0x3f')])[0x0],_0x47e362[_0xf85f('0x40')]);if(this[_0xf85f('0x15')](_0x47e362[_0xf85f('0x3f')])&&this[_0xf85f('0x15')](_0x47e362[_0xf85f('0x3f')]['outboundrouteid'])){if(_[_0xf85f('0x16')](this['channels'][_0x47e362[_0xf85f('0x1a')]])){this['channels'][_0x47e362[_0xf85f('0x1a')]]={'routeId':_0x47e362['value'],'variables':this[_0xf85f('0x41')][_0x47e362[_0xf85f('0x1a')]],'motionChannel':_0xf85f('0x42')};logger[_0xf85f('0x25')](_0xf85f('0x43'),_0x47e362[_0xf85f('0x1a')],_0x47e362[_0xf85f('0x3f')][_0xf85f('0x44')],_['keys'](_0x47e362[_0xf85f('0x3f')])[0x0],_0x47e362[_0xf85f('0x40')]);logger[_0xf85f('0x29')](_0xf85f('0x45'),_0x47e362[_0xf85f('0x1a')],util[_0xf85f('0x1b')](this[_0xf85f('0xb')][_0x47e362[_0xf85f('0x1a')]],{'showHidden':![],'depth':null}));this[_0xf85f('0x17')]('voice:outbound',_0xf85f('0x2e'),this[_0xf85f('0xb')][_0x47e362[_0xf85f('0x1a')]]);}}}}catch(_0x281239){logger[_0xf85f('0x30')](_0xf85f('0x46'),_0x47e362[_0xf85f('0x1a')],util['inspect'](_0x281239,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xf85f('0x14')][_0xf85f('0x47')]=function(_0x3954bd,_0x1aa5a6,_0x1c6cc8){var _0x39561b=[_0xf85f('0x48'),_0xf85f('0x49'),_0xf85f('0x4a'),_0xf85f('0x4b'),_0xf85f('0x4c'),_0xf85f('0x4d'),_0xf85f('0x4e'),_0xf85f('0x4f'),_0xf85f('0x50'),'sipuri',_0xf85f('0x51'),_0xf85f('0x52'),'membercalls',_0xf85f('0x53'),_0xf85f('0x54'),_0xf85f('0x55'),_0xf85f('0x27'),_0xf85f('0x56'),_0xf85f('0x57')];if(!_[_0xf85f('0x58')](_0x1aa5a6)&&!_[_0xf85f('0x59')](_0x39561b,_0x1aa5a6)){if(_[_0xf85f('0x16')](this[_0xf85f('0x41')][_0x3954bd])){this[_0xf85f('0x41')][_0x3954bd]={};}this[_0xf85f('0x41')][_0x3954bd][_0x1aa5a6]=_0x1c6cc8;}};VoiceDialReport[_0xf85f('0x14')][_0xf85f('0x5a')]=function(_0x24d193){try{if(this[_0xf85f('0x15')](_0x24d193)){logger[_0xf85f('0x29')](_0xf85f('0x5b'),_0x24d193[_0xf85f('0x1a')],util[_0xf85f('0x1b')](_0x24d193,{'showHidden':![],'depth':null}));if(this['channels'][_0x24d193['uniqueid']]){logger['info'](_0xf85f('0x5c'),_0x24d193['uniqueid'],_0x24d193[_0xf85f('0x5d')]);this['channels'][_0x24d193['uniqueid']]['endtime']=moment()[_0xf85f('0x1c')](_0xf85f('0x1d'));this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]][_0xf85f('0x5e')]=moment(this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]]['endtime'])['diff'](this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]][_0xf85f('0x5f')],_0xf85f('0x60'));this['channels'][_0x24d193['uniqueid']][_0xf85f('0x37')]=_0xf85f('0x61');this['outbound'][_0xf85f('0x62')]+=0x1;if(this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]][_0xf85f('0x36')]){this[_0xf85f('0xd')][_0xf85f('0x63')]+=0x1;this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]][_0xf85f('0x64')]=moment(this['channels'][_0x24d193['uniqueid']][_0xf85f('0x36')])[_0xf85f('0x65')](this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]][_0xf85f('0x5f')],_0xf85f('0x60'));this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]][_0xf85f('0x66')]=moment(this[_0xf85f('0xb')][_0x24d193['uniqueid']][_0xf85f('0x67')])[_0xf85f('0x65')](this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]]['answertime'],_0xf85f('0x60'));this[_0xf85f('0xd')][_0xf85f('0x68')]+=this['channels'][_0x24d193[_0xf85f('0x1a')]][_0xf85f('0x64')]||0x0;this[_0xf85f('0xd')][_0xf85f('0x69')]+=this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]]['billableseconds'];}this['outbound'][_0xf85f('0x6a')]+=this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]]['duration'];logger['debug']('[%s][voiceDialReport][hangup]\x20sending\x20voiceDialReport\x20event:',_0x24d193[_0xf85f('0x1a')],util[_0xf85f('0x1b')](this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]],{'showHidden':![],'depth':null}));ami[_0xf85f('0x17')](_0xf85f('0x6b'),this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]]);logger[_0xf85f('0x29')](_0xf85f('0x6c'),_0x24d193[_0xf85f('0x1a')],util[_0xf85f('0x1b')](this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]],{'showHidden':![],'depth':null}));ami[_0xf85f('0x17')](_0xf85f('0x6d'),this['channels'][_0x24d193[_0xf85f('0x1a')]]);logger[_0xf85f('0x29')]('[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound:save\x20event:',_0x24d193['uniqueid'],util[_0xf85f('0x1b')](this[_0xf85f('0xb')][_0x24d193['uniqueid']],{'showHidden':![],'depth':null}));this[_0xf85f('0x17')](_0xf85f('0x2d'),_0xf85f('0x6e'),this[_0xf85f('0xd')]);logger[_0xf85f('0x25')](_0xf85f('0x6f'),JSON[_0xf85f('0x70')](this['channels'][_0x24d193[_0xf85f('0x1a')]]));logger[_0xf85f('0x29')](_0xf85f('0x71'),_0x24d193[_0xf85f('0x1a')],util[_0xf85f('0x1b')](this[_0xf85f('0xb')][_0x24d193['uniqueid']],{'showHidden':![],'depth':null}));this['emit'](_0xf85f('0x2d'),_0xf85f('0x72'),this[_0xf85f('0xb')][_0x24d193['uniqueid']]);delete this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x1a')]];}else if(this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x73')]]){this[_0xf85f('0xb')][_0x24d193['linkedid']][_0xf85f('0x1a')]=this[_0xf85f('0xb')][_0x24d193[_0xf85f('0x73')]]['destuniqueid'];}if(this[_0xf85f('0x41')][_0x24d193[_0xf85f('0x1a')]]){delete this['variables'][_0x24d193[_0xf85f('0x1a')]];}}}catch(_0x586c42){logger['error'](_0xf85f('0x74'),_0x24d193['uniqueid'],util[_0xf85f('0x1b')](_0x586c42,{'showHidden':![],'depth':null}));}};VoiceDialReport['prototype'][_0xf85f('0x13')]=function(_0x5deaa1){try{if(this[_0xf85f('0x15')](_0x5deaa1)){logger['debug'](_0xf85f('0x75'),_0x5deaa1[_0xf85f('0x1a')],util[_0xf85f('0x1b')](_0x5deaa1,{'showHidden':![],'depth':null}));if(_0x5deaa1[_0xf85f('0x76')][_0xf85f('0x77')]()===_0xf85f('0x78')){_0x5deaa1['applicationdata']=(_0x5deaa1[_0xf85f('0x79')]||_0x5deaa1[_0xf85f('0x7a')])['toLowerCase']();if(_[_0xf85f('0x7b')](_0x5deaa1[_0xf85f('0x7a')],_0xf85f('0x7c'))){if(_['isUndefined'](this['applications'][_0x5deaa1[_0xf85f('0x1a')]]))this[_0xf85f('0x2b')][_0x5deaa1['uniqueid']]={};logger[_0xf85f('0x25')](_0xf85f('0x7d'),_0x5deaa1[_0xf85f('0x1a')],_0x5deaa1[_0xf85f('0x76')],_0x5deaa1['applicationdata']);var _0x4f09ed=_0x5deaa1['applicationdata']['split']('=');var _0x126fc6=_0x4f09ed[0x0]['match'](/cdr\((.*)\)/);if(_0x126fc6)this['applications'][_0x5deaa1['uniqueid']][_0x126fc6[0x1]]=_0x4f09ed[0x1];}}}}catch(_0x7f4c5b){logger[_0xf85f('0x30')]('[%s][voiceDialReport][newexten]',_0x5deaa1['uniqueid'],util[_0xf85f('0x1b')](_0x7f4c5b,{'showHidden':![],'depth':null}));}};module[_0xf85f('0x7e')]=VoiceDialReport;
\ No newline at end of file
+var _0x6e5a=['socket.io-emitter','outboundChannels','outbound','applications','variables','dialbegin','syncDialBegin','bind','syncVarSet','newexten','syncNewExten','hangup','isNotNull','isUndefined','emit','prototype','debug','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid','inspect','channels','merge','YYYY-MM-DD\x20HH:mm:ss','called','channel','lastIndexOf','substring','event','privilege','info','interface','voice:outbound','[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:','custom:dialbegin','[%s][voiceDialReport][dialbegin]','syncDialEnd','[%s][voiceDialReport][dialend]\x20event:','dialstatus','ANSWER','connectedlinenum','connectedlinename','answertime','[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect','[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:','custom:dialconnect','error','[%s][voiceDialReport][dialend]','[%s][voiceDialReport][varset]\x20event:','addVariable','keys','variable','outboundrouteid','value','[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s','[%s][voiceDialReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberlastcall','membername','memberrealtime','isNil','includes','[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete','cause-txt','endtime','format','duration','starttime','lastevent','complete','total','answered','diff','seconds','sumHoldTime','holdtime','billableseconds','[%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','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound_channel:remove\x20event:','voice_outbound_channel:remove','linkedid','[%s][voiceDialReport][hangup]','[%s][voiceDialReport][newexten]\x20event:','toLowerCase','applicationdata','startsWith','cdr(','application','split','match','exports','moment','util','ioredis','../../../config/environment','ami','defaults','redis','localhost'];(function(_0x6ad2c7,_0xb22a9a){var _0x435d5f=function(_0x38ec10){while(--_0x38ec10){_0x6ad2c7['push'](_0x6ad2c7['shift']());}};_0x435d5f(++_0xb22a9a);}(_0x6e5a,0x1c8));var _0xa6e5=function(_0x4c86cc,_0x199d0b){_0x4c86cc=_0x4c86cc-0x0;var _0x2b289d=_0x6e5a[_0x4c86cc];return _0x2b289d;};'use strict';var _=require('lodash');var moment=require(_0xa6e5('0x0'));var util=require(_0xa6e5('0x1'));var Redis=require(_0xa6e5('0x2'));var config=require(_0xa6e5('0x3'));var logger=require('../../../config/logger')(_0xa6e5('0x4'));var ami=require('../ami');config['redis']=_[_0xa6e5('0x5')](config[_0xa6e5('0x6')],{'host':_0xa6e5('0x7'),'port':0x18eb});var io=require(_0xa6e5('0x8'))(new Redis(config['redis']));function VoiceDialReport(_0x528add){this['channels']=_0x528add[_0xa6e5('0x9')];this[_0xa6e5('0xa')]=_0x528add['outbound'];this[_0xa6e5('0xb')]={};this[_0xa6e5('0xc')]={};ami['on'](_0xa6e5('0xd'),this[_0xa6e5('0xe')][_0xa6e5('0xf')](this));ami['on']('dialend',this['syncDialEnd'][_0xa6e5('0xf')](this));ami['on']('varset',this[_0xa6e5('0x10')][_0xa6e5('0xf')](this));ami['on'](_0xa6e5('0x11'),this[_0xa6e5('0x12')][_0xa6e5('0xf')](this));ami['on'](_0xa6e5('0x13'),this['syncHangup'][_0xa6e5('0xf')](this));}VoiceDialReport['prototype'][_0xa6e5('0x14')]=function(_0x35eaa1){return _0x35eaa1!==null&&!_[_0xa6e5('0x15')](_0x35eaa1);};VoiceDialReport['prototype']['emit']=function(_0x2b0bee,_0x4ae0ef,_0x553879){io['to'](_0x2b0bee)[_0xa6e5('0x16')](_0x4ae0ef,_0x553879);};VoiceDialReport[_0xa6e5('0x17')][_0xa6e5('0xe')]=function(_0x258729){try{if(this['isNotNull'](_0x258729)){logger[_0xa6e5('0x18')](_0xa6e5('0x19'),_0x258729[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](_0x258729,{'showHidden':![],'depth':null}));if(this[_0xa6e5('0x1c')][_0x258729['uniqueid']]){_[_0xa6e5('0x1d')](this[_0xa6e5('0x1c')][_0x258729[_0xa6e5('0x1a')]],{'starttime':moment()['format'](_0xa6e5('0x1e')),'lastevent':_0xa6e5('0x1f'),'interface':_0x258729[_0xa6e5('0x20')]['substring'](0x0,_0x258729[_0xa6e5('0x20')][_0xa6e5('0x21')]('-')),'membername':_0x258729[_0xa6e5('0x20')][_0xa6e5('0x22')](_0x258729[_0xa6e5('0x20')][_0xa6e5('0x21')]('/')+0x1,_0x258729[_0xa6e5('0x20')][_0xa6e5('0x21')]('-'))},_['omit'](_0x258729,[_0xa6e5('0x23'),_0xa6e5('0x24')]));logger[_0xa6e5('0x25')]('[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called',_0x258729[_0xa6e5('0x1a')],this[_0xa6e5('0x1c')][_0x258729[_0xa6e5('0x1a')]]['membername'],this[_0xa6e5('0x1c')][_0x258729[_0xa6e5('0x1a')]][_0xa6e5('0x26')]);logger[_0xa6e5('0x18')]('[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:',_0x258729[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](this['channels'][_0x258729['uniqueid']],{'showHidden':![],'depth':null}));if(this[_0xa6e5('0xb')][_0x258729[_0xa6e5('0x1a')]])_[_0xa6e5('0x1d')](this[_0xa6e5('0x1c')][_0x258729[_0xa6e5('0x1a')]],this[_0xa6e5('0xb')][_0x258729[_0xa6e5('0x1a')]]);this['emit'](_0xa6e5('0x27'),'voice_outbound_channel:save',this[_0xa6e5('0x1c')][_0x258729[_0xa6e5('0x1a')]]);logger[_0xa6e5('0x18')](_0xa6e5('0x28'),_0x258729['uniqueid'],util['inspect'](this[_0xa6e5('0x1c')][_0x258729[_0xa6e5('0x1a')]],{'showHidden':![],'depth':null}));ami[_0xa6e5('0x16')](_0xa6e5('0x29'),this[_0xa6e5('0x1c')][_0x258729[_0xa6e5('0x1a')]]);}}}catch(_0x44f15c){logger['error'](_0xa6e5('0x2a'),_0x258729[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](_0x44f15c,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xa6e5('0x17')][_0xa6e5('0x2b')]=function(_0x71a25f){try{if(this[_0xa6e5('0x14')](_0x71a25f)){logger[_0xa6e5('0x18')](_0xa6e5('0x2c'),_0x71a25f[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](_0x71a25f,{'showHidden':![],'depth':null}));if(this[_0xa6e5('0x1c')][_0x71a25f[_0xa6e5('0x1a')]]){this['channels'][_0x71a25f[_0xa6e5('0x1a')]][_0xa6e5('0x2d')]=_0x71a25f[_0xa6e5('0x2d')];if(_0x71a25f[_0xa6e5('0x2d')]===_0xa6e5('0x2e')){this[_0xa6e5('0x1c')][_0x71a25f['uniqueid']][_0xa6e5('0x2f')]=_0x71a25f['connectedlinenum'];this[_0xa6e5('0x1c')][_0x71a25f[_0xa6e5('0x1a')]][_0xa6e5('0x30')]=_0x71a25f['connectedlinename'];this[_0xa6e5('0x1c')][_0x71a25f[_0xa6e5('0x1a')]][_0xa6e5('0x31')]=moment()['format'](_0xa6e5('0x1e'));this[_0xa6e5('0x1c')][_0x71a25f[_0xa6e5('0x1a')]]['lastevent']='connect';logger[_0xa6e5('0x25')](_0xa6e5('0x32'),_0x71a25f['uniqueid'],_0x71a25f[_0xa6e5('0x20')][_0xa6e5('0x22')](_0x71a25f['channel'][_0xa6e5('0x21')]('/')+0x1,_0x71a25f['channel'][_0xa6e5('0x21')]('-')));logger[_0xa6e5('0x18')](_0xa6e5('0x33'),_0x71a25f[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](this['channels'][_0x71a25f[_0xa6e5('0x1a')]],{'showHidden':![],'depth':null}));ami[_0xa6e5('0x16')](_0xa6e5('0x34'),this[_0xa6e5('0x1c')][_0x71a25f['uniqueid']]);}logger[_0xa6e5('0x18')]('[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:',_0x71a25f[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](this[_0xa6e5('0x1c')][_0x71a25f[_0xa6e5('0x1a')]],{'showHidden':![],'depth':null}));this['emit'](_0xa6e5('0x27'),'voice_outbound_channel:save',this['channels'][_0x71a25f[_0xa6e5('0x1a')]]);}}}catch(_0x19e6d9){logger[_0xa6e5('0x35')](_0xa6e5('0x36'),_0x71a25f['uniqueid'],util[_0xa6e5('0x1b')](_0x19e6d9,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xa6e5('0x17')][_0xa6e5('0x10')]=function(_0x13a209){try{if(this[_0xa6e5('0x14')](_0x13a209)){logger[_0xa6e5('0x18')](_0xa6e5('0x37'),_0x13a209[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](_0x13a209,{'showHidden':![],'depth':null}));this[_0xa6e5('0x38')](_0x13a209[_0xa6e5('0x1a')],_[_0xa6e5('0x39')](_0x13a209['variable'])[0x0],_0x13a209['value']);if(this[_0xa6e5('0x14')](_0x13a209[_0xa6e5('0x3a')])&&this['isNotNull'](_0x13a209['variable'][_0xa6e5('0x3b')])){if(_[_0xa6e5('0x15')](this[_0xa6e5('0x1c')][_0x13a209['uniqueid']])){this[_0xa6e5('0x1c')][_0x13a209[_0xa6e5('0x1a')]]={'routeId':_0x13a209[_0xa6e5('0x3c')],'variables':this['variables'][_0x13a209[_0xa6e5('0x1a')]]};logger['info'](_0xa6e5('0x3d'),_0x13a209[_0xa6e5('0x1a')],_0x13a209[_0xa6e5('0x3a')][_0xa6e5('0x3b')],_['keys'](_0x13a209['variable'])[0x0],_0x13a209[_0xa6e5('0x3c')]);logger[_0xa6e5('0x18')]('[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:',_0x13a209['uniqueid'],util[_0xa6e5('0x1b')](this[_0xa6e5('0x1c')][_0x13a209['uniqueid']],{'showHidden':![],'depth':null}));this[_0xa6e5('0x16')](_0xa6e5('0x27'),'voice_outbound_channel:save',this[_0xa6e5('0x1c')][_0x13a209['uniqueid']]);}}}}catch(_0x99b8e0){logger[_0xa6e5('0x35')](_0xa6e5('0x3e'),_0x13a209[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](_0x99b8e0,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xa6e5('0x17')]['addVariable']=function(_0x42860a,_0x1e3d17,_0x337100){var _0x518b02=[_0xa6e5('0x3f'),_0xa6e5('0x40'),_0xa6e5('0x41'),_0xa6e5('0x42'),_0xa6e5('0x43'),'rtpaudioqoslossbridged',_0xa6e5('0x44'),_0xa6e5('0x45'),_0xa6e5('0x46'),_0xa6e5('0x47'),'bridgepeer',_0xa6e5('0x48'),_0xa6e5('0x49'),_0xa6e5('0x4a'),_0xa6e5('0x4b'),_0xa6e5('0x4c'),_0xa6e5('0x4d'),'memberpenalty',_0xa6e5('0x4e')];if(!_[_0xa6e5('0x4f')](_0x1e3d17)&&!_[_0xa6e5('0x50')](_0x518b02,_0x1e3d17)){if(_[_0xa6e5('0x15')](this[_0xa6e5('0xc')][_0x42860a])){this['variables'][_0x42860a]={};}this['variables'][_0x42860a][_0x1e3d17]=_0x337100;}};VoiceDialReport[_0xa6e5('0x17')]['syncHangup']=function(_0x52d76a){try{if(this[_0xa6e5('0x14')](_0x52d76a)){logger[_0xa6e5('0x18')]('[%s][voiceDialReport][hangup]\x20event:',_0x52d76a[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](_0x52d76a,{'showHidden':![],'depth':null}));if(this[_0xa6e5('0x1c')][_0x52d76a['uniqueid']]){logger['info'](_0xa6e5('0x51'),_0x52d76a[_0xa6e5('0x1a')],_0x52d76a[_0xa6e5('0x52')]);this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]][_0xa6e5('0x53')]=moment()[_0xa6e5('0x54')](_0xa6e5('0x1e'));this['channels'][_0x52d76a['uniqueid']][_0xa6e5('0x55')]=moment(this[_0xa6e5('0x1c')][_0x52d76a['uniqueid']][_0xa6e5('0x53')])['diff'](this[_0xa6e5('0x1c')][_0x52d76a['uniqueid']][_0xa6e5('0x56')],'seconds');this[_0xa6e5('0x1c')][_0x52d76a['uniqueid']][_0xa6e5('0x57')]=_0xa6e5('0x58');this[_0xa6e5('0xa')][_0xa6e5('0x59')]+=0x1;if(this['channels'][_0x52d76a[_0xa6e5('0x1a')]][_0xa6e5('0x31')]){this[_0xa6e5('0xa')][_0xa6e5('0x5a')]+=0x1;this['channels'][_0x52d76a[_0xa6e5('0x1a')]]['holdtime']=moment(this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]][_0xa6e5('0x31')])[_0xa6e5('0x5b')](this[_0xa6e5('0x1c')][_0x52d76a['uniqueid']]['starttime'],_0xa6e5('0x5c'));this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]]['billableseconds']=moment(this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]][_0xa6e5('0x53')])[_0xa6e5('0x5b')](this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]][_0xa6e5('0x31')],'seconds');this[_0xa6e5('0xa')][_0xa6e5('0x5d')]+=this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]][_0xa6e5('0x5e')]||0x0;this['outbound']['sumBillable']+=this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]][_0xa6e5('0x5f')];}this[_0xa6e5('0xa')]['sumDuration']+=this[_0xa6e5('0x1c')][_0x52d76a['uniqueid']][_0xa6e5('0x55')];logger[_0xa6e5('0x18')](_0xa6e5('0x60'),_0x52d76a['uniqueid'],util[_0xa6e5('0x1b')](this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]],{'showHidden':![],'depth':null}));ami[_0xa6e5('0x16')](_0xa6e5('0x61'),this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]]);logger[_0xa6e5('0x18')](_0xa6e5('0x62'),_0x52d76a[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]],{'showHidden':![],'depth':null}));ami[_0xa6e5('0x16')](_0xa6e5('0x63'),this['channels'][_0x52d76a[_0xa6e5('0x1a')]]);logger['debug']('[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound:save\x20event:',_0x52d76a[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]],{'showHidden':![],'depth':null}));this[_0xa6e5('0x16')](_0xa6e5('0x27'),_0xa6e5('0x64'),this[_0xa6e5('0xa')]);logger[_0xa6e5('0x25')](_0xa6e5('0x65'),JSON[_0xa6e5('0x66')](this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]]));logger[_0xa6e5('0x18')](_0xa6e5('0x67'),_0x52d76a[_0xa6e5('0x1a')],util['inspect'](this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x1a')]],{'showHidden':![],'depth':null}));this['emit'](_0xa6e5('0x27'),_0xa6e5('0x68'),this['channels'][_0x52d76a[_0xa6e5('0x1a')]]);delete this['channels'][_0x52d76a[_0xa6e5('0x1a')]];}else if(this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x69')]]){this['channels'][_0x52d76a['linkedid']][_0xa6e5('0x1a')]=this[_0xa6e5('0x1c')][_0x52d76a[_0xa6e5('0x69')]]['destuniqueid'];}if(this[_0xa6e5('0xc')][_0x52d76a[_0xa6e5('0x1a')]]){delete this[_0xa6e5('0xc')][_0x52d76a[_0xa6e5('0x1a')]];}}}catch(_0x577c61){logger[_0xa6e5('0x35')](_0xa6e5('0x6a'),_0x52d76a[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](_0x577c61,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xa6e5('0x17')][_0xa6e5('0x12')]=function(_0x564d4a){try{if(this[_0xa6e5('0x14')](_0x564d4a)){logger['debug'](_0xa6e5('0x6b'),_0x564d4a[_0xa6e5('0x1a')],util['inspect'](_0x564d4a,{'showHidden':![],'depth':null}));if(_0x564d4a['application'][_0xa6e5('0x6c')]()==='set'){_0x564d4a[_0xa6e5('0x6d')]=(_0x564d4a['appdata']||_0x564d4a[_0xa6e5('0x6d')])[_0xa6e5('0x6c')]();if(_[_0xa6e5('0x6e')](_0x564d4a[_0xa6e5('0x6d')],_0xa6e5('0x6f'))){if(_[_0xa6e5('0x15')](this[_0xa6e5('0xb')][_0x564d4a[_0xa6e5('0x1a')]]))this[_0xa6e5('0xb')][_0x564d4a[_0xa6e5('0x1a')]]={};logger[_0xa6e5('0x25')]('[%s][voiceDialReport][newexten]\x20application:%s\x20appdata:%s',_0x564d4a[_0xa6e5('0x1a')],_0x564d4a[_0xa6e5('0x70')],_0x564d4a['applicationdata']);var _0x30ffeb=_0x564d4a[_0xa6e5('0x6d')][_0xa6e5('0x71')]('=');var _0x4556b4=_0x30ffeb[0x0][_0xa6e5('0x72')](/cdr\((.*)\)/);if(_0x4556b4)this[_0xa6e5('0xb')][_0x564d4a[_0xa6e5('0x1a')]][_0x4556b4[0x1]]=_0x30ffeb[0x1];}}}}catch(_0x45ba78){logger[_0xa6e5('0x35')]('[%s][voiceDialReport][newexten]',_0x564d4a[_0xa6e5('0x1a')],util[_0xa6e5('0x1b')](_0x45ba78,{'showHidden':![],'depth':null}));}};module[_0xa6e5('0x73')]=VoiceDialReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b30=['transfertargetuniqueid','origtransfererexten','origtransfereruniqueid','switch','[%s][voiceQueueReport][blindtransfer]','BLINDTRANSFER','extension','[%s][voiceQueueReport][blindTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','BlindTransfer','context','transfererchannel','[%s][voiceQueueReport][musiconholdstart]','mohstarttime','[%s][voiceQueueReport][musiconholdstart]\x20mohstarttime:%s','syncMusicOnHoldStop','[%s][voiceQueueReport][musiconholdstop]','mohtime','[%s][voiceQueueReport][musiconholdstop]\x20mohtime:%s','[%s][voiceQueueReport][newexten]\x20event:','application','set','applicationdata','appdata','CDR(routeAlias)','startsWith','cdr(','[%s][voiceQueueReport][newexten]\x20application:%s\x20appdata:%s','[%s][voiceQueueReport][newexten]','exports','lodash','moment','util','ioredis','../../../config/environment','../../../config/logger','ami','defaults','redis','localhost','prototype','tail','finally','queueReports','agents','channels','queueChannels','voiceQueues','campaigns','variables','queuesummary','syncQueueSummary','bind','syncQueueSummaryComplete','queuecallerjoin','syncQueueCallerJoin','queuecallerabandon','queuecallerleave','agentcomplete','syncAgentComplete','syncAgentConnect','varset','hangup','syncHangup','fullybooted','syncFullyBooted','newexten','syncNewExten','syncMusicOnHoldStart','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','loopQueueSummary','loopQueueShow','isEmpty','hasOwnProperty','originated','waiting','queueStatusComplete','clearZombieChannels','sequence','enqueue','status','channel','catch','No\x20such\x20channel','error','[%s][voiceQueueReport][checkChannel]','inspect','[%s][voiceQueueReport][checkQueueReport]','[%s][voiceQueueReport][checkVariables]','[FullyBooted]\x20clear\x20realtime','clearQueueReport','emitVoiceQueueChannelRemove','clearqueuereport','emit','emitVoiceQueueChannelSave','debug','[%s][voiceQueueReport][',']\x20sending\x20voice_queue_channel:save\x20event:','format','name',']\x20sending\x20voice_queue_channel:remove\x20event:','uniqueid','voice:queue:%s','voice_queue_presence:remove','type','inbound','strategy','answered','loggedIn','pTalking','sumBillable','sumDuration','sumHoldTime','talking','total','unmanaged','abandoned','Trunk','callerid','Interval','stringify','md5','[voiceQueueReport][',']\x20sending\x20voice_queue:save\x20event:','queues','[voiceQueueReport][queues]','then','[voiceQueueReport][queuesummary]','isNotNull','queue','info','[voiceQueueReport][queuesummary]\x20name:%s','countBy','callers','toNumber','available','loggedin','emitVoiceQueueSummary','custom:queuesummary','flagQueueSummary','[%s][voiceQueueReport][queuecallerjoin]','isUndefined','queuecallerjoinAt','YYYY-MM-DD\x20HH:mm:ss','position','count','routealias','[voiceQueueReport][queuecallerjoin]\x20name:%s\x20type:%s','merge','pick','keys','push','syncQueueCallerAbandon','[%s][voiceQueueReport][queuecallerabandon]','last','queuecallercomplete','queuecallercompleteAt','holdtime','originalposition','queuecallerabandonAt','queuecallerexitreason','lastAssignedTo','[voiceQueueReport][queuecallerabandon]\x20name:%s\x20type:%s','[%s][voiceQueueReport][queuecallerleave]','queuecallerleaveAt','connectedlinenum','connectedlinename','[voiceQueueReport][queuecallerleave]\x20name:%s\x20type:%s\x20connectedlinenum:%s\x20connectedlinename:%s','[%s][voiceQueueReport][agentconnect]','COMPLETEDBYAGENT','[voiceQueueReport][agentconnect]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETEDBYAGENT','[%s][voiceQueueReport][agentcomplete]','membername','queuecallerexit','queuecallerexitAt','transfer','reason','COMPLETED','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETED','toLowerCase','linkedid','FORWARDTRANSFER','transfertype','FORWARD','transferexten','destexten','transferuniqueid','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:FORWARDTRANSFER','COMPLETEDBY','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:%s','syncVarSet','addVariable','variable','value','queuestatus','TIMEOUT','lastevent','[%s][voiceQueueReport][varset]\x20sending\x20timeout\x20event:','custom:timeout','queueposition','[%s][voiceQueueReport][varset]\x20name:%s\x20type:%s\x20variable:%s\x20value:%s','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','sipcallid','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberpenalty','isNil','includes','[%s][voiceQueueReport][hangup]','length','diff','seconds','milliseconds','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]','transfereeuniqueid','secondtransfererexten','secondtransfereruniqueid','ATTENDEDTRANSFER','[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s'];(function(_0x2c1db5,_0x20b060){var _0x204189=function(_0x20398e){while(--_0x20398e){_0x2c1db5['push'](_0x2c1db5['shift']());}};_0x204189(++_0x20b060);}(_0x6b30,0x107));var _0x06b3=function(_0x25df80,_0xa2aec5){_0x25df80=_0x25df80-0x0;var _0x17b6d0=_0x6b30[_0x25df80];return _0x17b6d0;};'use strict';var _=require(_0x06b3('0x0'));var moment=require(_0x06b3('0x1'));var util=require(_0x06b3('0x2'));var md5=require('md5');var Redis=require(_0x06b3('0x3'));var config=require(_0x06b3('0x4'));var logger=require(_0x06b3('0x5'))(_0x06b3('0x6'));var ami=require('../ami');var QueueReport=require('../model/queueReport');config['redis']=_[_0x06b3('0x7')](config[_0x06b3('0x8')],{'host':_0x06b3('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));var Sequence=function(){};Sequence[_0x06b3('0xa')]['enqueue']=function(_0x481d13){this[_0x06b3('0xb')]=this[_0x06b3('0xb')]?this[_0x06b3('0xb')][_0x06b3('0xc')](_0x481d13):_0x481d13();};function VoiceQueueReport(_0x4e344e){this['sequence']=new Sequence();this[_0x06b3('0xd')]={};this['agents']=_0x4e344e[_0x06b3('0xe')];this[_0x06b3('0xf')]=_0x4e344e[_0x06b3('0x10')];this['voiceQueues']=_0x4e344e[_0x06b3('0x11')];this['flagQueueSummary']=!![];this[_0x06b3('0x12')]=_0x4e344e[_0x06b3('0x12')];this[_0x06b3('0x13')]={};ami['on'](_0x06b3('0x14'),this[_0x06b3('0x15')][_0x06b3('0x16')](this));ami['on']('queuesummarycomplete',this[_0x06b3('0x17')][_0x06b3('0x16')](this));ami['on'](_0x06b3('0x18'),this[_0x06b3('0x19')][_0x06b3('0x16')](this));ami['on'](_0x06b3('0x1a'),this['syncQueueCallerAbandon'][_0x06b3('0x16')](this));ami['on'](_0x06b3('0x1b'),this['syncQueueCallerLeave']['bind'](this));ami['on'](_0x06b3('0x1c'),this[_0x06b3('0x1d')]['bind'](this));ami['on']('agentconnect',this[_0x06b3('0x1e')][_0x06b3('0x16')](this));ami['on'](_0x06b3('0x1f'),this['syncVarSet'][_0x06b3('0x16')](this));ami['on'](_0x06b3('0x20'),this[_0x06b3('0x21')][_0x06b3('0x16')](this));ami['on'](_0x06b3('0x22'),this[_0x06b3('0x23')][_0x06b3('0x16')](this));ami['on'](_0x06b3('0x24'),this[_0x06b3('0x25')][_0x06b3('0x16')](this));ami['on']('musiconholdstart',this[_0x06b3('0x26')][_0x06b3('0x16')](this));ami['on']('musiconholdstop',this['syncMusicOnHoldStop'][_0x06b3('0x16')](this));ami['on'](_0x06b3('0x27'),this[_0x06b3('0x28')][_0x06b3('0x16')](this));ami['on'](_0x06b3('0x29'),this[_0x06b3('0x2a')][_0x06b3('0x16')](this));this[_0x06b3('0x2b')]();this[_0x06b3('0x2c')]();}function clearChannels(_0x4ccc5e){if(!_[_0x06b3('0x2d')](_0x4ccc5e)){for(var _0x123d78 in _0x4ccc5e){if(_0x4ccc5e[_0x06b3('0x2e')](_0x123d78)){delete _0x4ccc5e[_0x123d78];}}}}function clearCampaigns(_0x28750f){if(!_['isEmpty'](_0x28750f)){for(var _0x2f77ba in _0x28750f){if(_0x28750f[_0x06b3('0x2e')](_0x2f77ba)){_0x28750f[_0x2f77ba][_0x06b3('0x2f')]=0x0;}}}}function clearVoiceQueues(_0x12327d){if(!_[_0x06b3('0x2d')](_0x12327d)){for(var _0x439a0c in _0x12327d){if(_0x12327d['hasOwnProperty'](_0x439a0c)){_0x12327d[_0x439a0c][_0x06b3('0x2f')]=0x0;_0x12327d[_0x439a0c]['talking']=0x0;_0x12327d[_0x439a0c]['pTalking']=0x0;_0x12327d[_0x439a0c][_0x06b3('0x30')]=0x0;_0x12327d[_0x439a0c][_0x06b3('0x31')]=!![];}}}}function clearAgentBooked(_0x5a7285){if(!_[_0x06b3('0x2d')](_0x5a7285)){for(var _0x4a8cff in _0x5a7285){if(_0x5a7285[_0x06b3('0x2e')](_0x4a8cff)){_0x5a7285[_0x4a8cff]['unlockRR']=!![];}}}}VoiceQueueReport['prototype'][_0x06b3('0x32')]=function(){var _0x26357e=this;for(var _0x589e34 in this[_0x06b3('0xf')]){if(this[_0x06b3('0xf')][_0x06b3('0x2e')](_0x589e34)&&!this['channels'][_0x589e34]['switch']){this[_0x06b3('0x33')][_0x06b3('0x34')](function(){if(!_['isNil'](_0x26357e[_0x06b3('0xf')][_0x589e34])){return ami['Action']({'action':_0x06b3('0x35'),'channel':_0x26357e['channels'][_0x589e34][_0x06b3('0x36')]})[_0x06b3('0x37')](function(_0x5bf274){if(_0x5bf274['message']===_0x06b3('0x38')){setTimeout(function(){if(_0x26357e[_0x06b3('0xf')][_0x589e34]){delete _0x26357e[_0x06b3('0xf')][_0x589e34];logger[_0x06b3('0x39')](_0x06b3('0x3a'),_0x589e34,util[_0x06b3('0x3b')](_0x5bf274,{'showHidden':![],'depth':null}));}if(_0x26357e[_0x06b3('0xd')][_0x589e34]){delete _0x26357e[_0x06b3('0xd')][_0x589e34];logger[_0x06b3('0x39')](_0x06b3('0x3c'),_0x589e34,util[_0x06b3('0x3b')](_0x5bf274,{'showHidden':![],'depth':null}));}if(_0x26357e[_0x06b3('0x13')][_0x589e34]){delete _0x26357e['variables'][_0x589e34];logger[_0x06b3('0x39')](_0x06b3('0x3d'),_0x589e34,util[_0x06b3('0x3b')](_0x5bf274,{'showHidden':![],'depth':null}));}},0x1f40);}});}});}}};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0x23')]=function(){logger['error'](_0x06b3('0x3e'));clearChannels(this[_0x06b3('0xf')]);this[_0x06b3('0x3f')](this[_0x06b3('0xd')]);clearAgentBooked(this['agents']);clearVoiceQueues(this[_0x06b3('0x11')]);clearCampaigns(this[_0x06b3('0x12')]);};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0x3f')]=function(_0x16f761){var _0x294f05=this;if(!_['isEmpty'](_0x16f761)){for(var _0x90d51b in _0x16f761){if(_0x16f761[_0x06b3('0x2e')](_0x90d51b)){_0x294f05[_0x06b3('0x40')](_0x16f761[_0x90d51b],_0x06b3('0x41'));delete _0x16f761[_0x90d51b];}}}};VoiceQueueReport['prototype'][_0x06b3('0x42')]=function(_0x3981a5,_0x34243b,_0x1015f1){io['to'](_0x3981a5)[_0x06b3('0x42')](_0x34243b,_0x1015f1);};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0x43')]=function(_0x41370b,_0x1f0246){logger[_0x06b3('0x44')](_0x06b3('0x45')+_0x1f0246+_0x06b3('0x46'),_0x41370b['uniqueid'],util[_0x06b3('0x3b')](_0x41370b,{'showHidden':![],'depth':null}));this[_0x06b3('0x42')](util[_0x06b3('0x47')]('voice:queue:%s',_0x41370b[_0x06b3('0x48')]),'voice_queue_channel:save',_0x41370b);io[_0x06b3('0x42')]('voice_queue_presence:save',_0x41370b);};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0x40')]=function(_0x47e3e1,_0x34ab8f){logger[_0x06b3('0x44')]('[%s][voiceQueueReport]['+_0x34ab8f+_0x06b3('0x49'),_0x47e3e1[_0x06b3('0x4a')],util['inspect'](_0x47e3e1,{'showHidden':![],'depth':null}));this[_0x06b3('0x42')](util['format'](_0x06b3('0x4b'),_0x47e3e1[_0x06b3('0x48')]),'voice_queue_channel:remove',_0x47e3e1);io[_0x06b3('0x42')](_0x06b3('0x4c'),_0x47e3e1);};VoiceQueueReport['prototype']['emitVoiceQueueSummary']=function(_0x5c4356,_0x1fd709){if(_0x5c4356[_0x06b3('0x4d')]===_0x06b3('0x4e')){var _0x108508={'id':_0x5c4356['id'],'name':_0x5c4356[_0x06b3('0x48')],'strategy':_0x5c4356[_0x06b3('0x4f')],'answered':_0x5c4356[_0x06b3('0x50')],'available':_0x5c4356['available'],'loggedIn':_0x5c4356[_0x06b3('0x51')],'pTalking':_0x5c4356[_0x06b3('0x52')],'sumBillable':_0x5c4356[_0x06b3('0x53')],'sumDuration':_0x5c4356[_0x06b3('0x54')],'sumHoldTime':_0x5c4356[_0x06b3('0x55')]||0x0,'talking':_0x5c4356[_0x06b3('0x56')],'total':_0x5c4356[_0x06b3('0x57')],'type':_0x5c4356[_0x06b3('0x4d')],'unmanaged':_0x5c4356[_0x06b3('0x58')],'abandoned':_0x5c4356[_0x06b3('0x59')],'waiting':_0x5c4356[_0x06b3('0x30')]};if(_0x5c4356[_0x06b3('0x5a')]){_0x108508[_0x06b3('0x5a')]={'id':_0x5c4356[_0x06b3('0x5a')]['id'],'name':_0x5c4356[_0x06b3('0x5a')][_0x06b3('0x48')],'active':_0x5c4356['Trunk']['active'],'callerid':_0x5c4356[_0x06b3('0x5a')][_0x06b3('0x5b')]};}if(_0x5c4356[_0x06b3('0x5c')]){_0x108508['Interval']={'id':_0x5c4356[_0x06b3('0x5c')]['id'],'name':_0x5c4356[_0x06b3('0x5c')][_0x06b3('0x48')]};}var _0x385398=md5(JSON[_0x06b3('0x5d')](_0x108508));if(_0x5c4356[_0x06b3('0x5e')]!==_0x385398){_0x5c4356['md5']=_0x385398;logger['debug'](_0x06b3('0x5f')+_0x1fd709+_0x06b3('0x60'),util['inspect'](_0x108508,{'showHidden':![],'depth':null}));this[_0x06b3('0x42')](util[_0x06b3('0x47')]('voice:queue:%s',_0x108508[_0x06b3('0x48')]),'voice_queue:save',_0x108508);}}};VoiceQueueReport['prototype']['isNotNull']=function(_0x497a65){return _0x497a65!==null&&!_['isUndefined'](_0x497a65);};VoiceQueueReport['prototype'][_0x06b3('0x2c')]=function(){var _0x40a993=this;setInterval(function(){_0x40a993['clearZombieChannels']();ami['Action']({'action':_0x06b3('0x61')})[_0x06b3('0x37')](function(_0xafbadd){logger[_0x06b3('0x39')](_0x06b3('0x62'),util[_0x06b3('0x3b')](_0xafbadd,{'showHidden':![],'depth':null}));});},0x2710);};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0x2b')]=function(){var _0x2c8151=this;setInterval(function(){if(_0x2c8151['flagQueueSummary']){return ami['Action']({'action':'queuesummary'})[_0x06b3('0x63')](function(_0x212965){_0x2c8151['flagQueueSummary']=![];})[_0x06b3('0x37')](function(_0x126602){logger['error'](_0x06b3('0x64'),util['inspect'](_0x126602,{'showHidden':![],'depth':null}));});}},0x3e8);};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0x15')]=function(_0xff1d36){try{if(this[_0x06b3('0x65')](_0xff1d36)&&this[_0x06b3('0x65')](_0xff1d36[_0x06b3('0x66')])){logger[_0x06b3('0x44')]('[voiceQueueReport][queuesummary]\x20event:',util[_0x06b3('0x3b')](_0xff1d36,{'showHidden':![],'depth':null}));if(this[_0x06b3('0x11')][_0xff1d36[_0x06b3('0x66')]]){logger[_0x06b3('0x67')](_0x06b3('0x68'),_0xff1d36[_0x06b3('0x66')]);var _0x2487bb=_[_0x06b3('0x69')](this[_0x06b3('0xf')],_0x06b3('0x66'))[_0xff1d36[_0x06b3('0x66')]]||0x0;var _0x200d81=_0x2487bb-_0xff1d36[_0x06b3('0x6a')];if(this['voiceQueues'][_0xff1d36['queue']][_0x06b3('0x30')]!==_[_0x06b3('0x6b')](_0xff1d36[_0x06b3('0x6a')])||this[_0x06b3('0x11')][_0xff1d36[_0x06b3('0x66')]]['loggedIn']!==_[_0x06b3('0x6b')](_0xff1d36['loggedin'])||this['voiceQueues'][_0xff1d36[_0x06b3('0x66')]][_0x06b3('0x6c')]!==_[_0x06b3('0x6b')](_0xff1d36[_0x06b3('0x6c')])||this[_0x06b3('0x11')][_0xff1d36[_0x06b3('0x66')]][_0x06b3('0x56')]!==_0x200d81){this[_0x06b3('0x11')][_0xff1d36['queue']][_0x06b3('0x30')]=_[_0x06b3('0x6b')](_0xff1d36[_0x06b3('0x6a')]);this[_0x06b3('0x11')][_0xff1d36[_0x06b3('0x66')]][_0x06b3('0x51')]=_[_0x06b3('0x6b')](_0xff1d36[_0x06b3('0x6d')]);this[_0x06b3('0x11')][_0xff1d36[_0x06b3('0x66')]][_0x06b3('0x6c')]=_[_0x06b3('0x6b')](_0xff1d36['available']);this[_0x06b3('0x11')][_0xff1d36[_0x06b3('0x66')]][_0x06b3('0x56')]=_0x200d81>0x0?_0x200d81:0x0;this['voiceQueues'][_0xff1d36[_0x06b3('0x66')]][_0x06b3('0x56')]=this[_0x06b3('0x11')][_0xff1d36[_0x06b3('0x66')]][_0x06b3('0x56')]>_[_0x06b3('0x6b')](_0xff1d36[_0x06b3('0x6d')])?_[_0x06b3('0x6b')](_0xff1d36[_0x06b3('0x6d')]):this[_0x06b3('0x11')][_0xff1d36[_0x06b3('0x66')]][_0x06b3('0x56')];this[_0x06b3('0x6e')](this['voiceQueues'][_0xff1d36[_0x06b3('0x66')]],_0x06b3('0x14'));}logger[_0x06b3('0x44')]('[voiceQueueReport][queuesummary]\x20sending\x20queuesummary\x20event:',util[_0x06b3('0x3b')](this[_0x06b3('0x11')][_0xff1d36[_0x06b3('0x66')]],{'showHidden':![],'depth':null}));ami[_0x06b3('0x42')](_0x06b3('0x6f'),this[_0x06b3('0x11')][_0xff1d36[_0x06b3('0x66')]]);}}}catch(_0x344982){logger[_0x06b3('0x39')](_0x06b3('0x64'),util[_0x06b3('0x3b')](_0x344982,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0x17')]=function(_0xb62879){logger[_0x06b3('0x44')]('[voiceQueueReport][queuesummarycomplete]\x20event:',util[_0x06b3('0x3b')](_0xb62879,{'showHidden':![],'depth':null}));this[_0x06b3('0x70')]=!![];};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0x19')]=function(_0x32f73d){try{if(this[_0x06b3('0x65')](_0x32f73d)){logger[_0x06b3('0x44')](_0x06b3('0x71'),_0x32f73d[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x32f73d,{'showHidden':![],'depth':null}));if(_[_0x06b3('0x72')](this[_0x06b3('0xd')][_0x32f73d[_0x06b3('0x4a')]]))this[_0x06b3('0xd')][_0x32f73d[_0x06b3('0x4a')]]=[];if(_['isUndefined'](this['channels'][_0x32f73d[_0x06b3('0x4a')]]))this['channels'][_0x32f73d[_0x06b3('0x4a')]]={};var _0x38e705=new QueueReport();_0x38e705['name']=_0x32f73d[_0x06b3('0x66')];_0x38e705[_0x06b3('0x4d')]=this[_0x06b3('0x11')][_0x38e705[_0x06b3('0x48')]]&&this['voiceQueues'][_0x38e705[_0x06b3('0x48')]]['type']?this['voiceQueues'][_0x38e705[_0x06b3('0x48')]][_0x06b3('0x4d')]||_0x06b3('0x4e'):_0x06b3('0x4e');_0x38e705['queue']=_0x32f73d[_0x06b3('0x66')];_0x38e705[_0x06b3('0x73')]=moment()[_0x06b3('0x47')](_0x06b3('0x74'));_0x38e705[_0x06b3('0x75')]=_0x32f73d[_0x06b3('0x75')];_0x38e705[_0x06b3('0x76')]=_0x32f73d[_0x06b3('0x76')];_0x38e705[_0x06b3('0x4a')]=_0x32f73d[_0x06b3('0x4a')];_0x38e705[_0x06b3('0x77')]=this['channels'][_0x32f73d['uniqueid']][_0x06b3('0x77')];logger[_0x06b3('0x67')](_0x06b3('0x78'),_0x38e705[_0x06b3('0x48')],_0x38e705['type']);_[_0x06b3('0x79')](_0x38e705,_[_0x06b3('0x7a')](_0x32f73d,_[_0x06b3('0x7b')](_0x38e705)));this[_0x06b3('0xd')][_0x32f73d['uniqueid']][_0x06b3('0x7c')](_0x38e705);this[_0x06b3('0xf')][_0x32f73d[_0x06b3('0x4a')]]=_0x38e705;this['emitVoiceQueueChannelSave'](_0x38e705,_0x06b3('0x18'));}}catch(_0x210df6){logger[_0x06b3('0x39')](_0x06b3('0x71'),_0x32f73d[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x210df6,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x06b3('0x7d')]=function(_0x52c684){try{if(this['isNotNull'](_0x52c684)){logger[_0x06b3('0x44')](_0x06b3('0x7e'),_0x52c684[_0x06b3('0x4a')],util['inspect'](_0x52c684,{'showHidden':![],'depth':null}));if(this[_0x06b3('0xd')][_0x52c684[_0x06b3('0x4a')]]){var _0x24a319=_[_0x06b3('0x7f')](this[_0x06b3('0xd')][_0x52c684[_0x06b3('0x4a')]]);_0x24a319[_0x06b3('0x80')]=![];_0x24a319[_0x06b3('0x81')]=null;_0x24a319[_0x06b3('0x82')]=_0x52c684[_0x06b3('0x82')];_0x24a319[_0x06b3('0x83')]=_0x52c684[_0x06b3('0x83')];_0x24a319[_0x06b3('0x1a')]=!![];_0x24a319[_0x06b3('0x84')]=moment()[_0x06b3('0x47')](_0x06b3('0x74'));_0x24a319[_0x06b3('0x85')]='ABANDONED';_0x24a319[_0x06b3('0x86')]=null;logger['info'](_0x06b3('0x87'),_0x24a319[_0x06b3('0x48')],_0x24a319[_0x06b3('0x4d')]);this[_0x06b3('0xf')][_0x52c684[_0x06b3('0x4a')]]=_0x24a319;this[_0x06b3('0x40')](_0x24a319,'queuecallerabandon');}}}catch(_0x4a2ca3){logger['error'](_0x06b3('0x7e'),_0x52c684[_0x06b3('0x4a')],util['inspect'](_0x4a2ca3,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x06b3('0xa')]['syncQueueCallerLeave']=function(_0x5e3f1f){try{if(this['isNotNull'](_0x5e3f1f)){logger[_0x06b3('0x44')](_0x06b3('0x88'),_0x5e3f1f[_0x06b3('0x4a')],util['inspect'](_0x5e3f1f,{'showHidden':![],'depth':null}));if(this[_0x06b3('0xd')][_0x5e3f1f['uniqueid']]){var _0xc37e23=_[_0x06b3('0x7f')](this['queueReports'][_0x5e3f1f[_0x06b3('0x4a')]]);_0xc37e23[_0x06b3('0x89')]=moment()[_0x06b3('0x47')](_0x06b3('0x74'));_0xc37e23['connectedlinenum']=_0x5e3f1f[_0x06b3('0x8a')];_0xc37e23[_0x06b3('0x8b')]=_0x5e3f1f['connectedlinename'];logger[_0x06b3('0x67')](_0x06b3('0x8c'),_0xc37e23[_0x06b3('0x48')],_0xc37e23[_0x06b3('0x4d')],_0x5e3f1f[_0x06b3('0x8a')],_0x5e3f1f[_0x06b3('0x8b')]);this[_0x06b3('0xf')][_0x5e3f1f['uniqueid']]=_0xc37e23;this[_0x06b3('0x43')](_0xc37e23,_0x06b3('0x1b'));}}}catch(_0x3aa548){logger['error']('[%s][voiceQueueReport][queuecallerleave]',_0x5e3f1f[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x3aa548,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0x1e')]=function(_0x4f762e){try{if(this[_0x06b3('0x65')](_0x4f762e)){logger['debug'](_0x06b3('0x8d'),_0x4f762e[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x4f762e,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x4f762e['uniqueid']]){var _0x6d20d=_['last'](this[_0x06b3('0xd')][_0x4f762e[_0x06b3('0x4a')]]);_0x6d20d[_0x06b3('0x80')]=!![];_0x6d20d['queuecallerexitreason']=_0x06b3('0x8e');logger[_0x06b3('0x67')](_0x06b3('0x8f'),_0x6d20d['name'],_0x6d20d[_0x06b3('0x4d')]);}}}catch(_0x247704){logger[_0x06b3('0x39')](_0x06b3('0x8d'),_0x4f762e[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x247704,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0x1d')]=function(_0x324868){try{if(this[_0x06b3('0x65')](_0x324868)){logger[_0x06b3('0x44')](_0x06b3('0x90'),_0x324868[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x324868,{'showHidden':![],'depth':null}));if(this[_0x06b3('0xd')][_0x324868[_0x06b3('0x4a')]]){var _0x1cf70f=_['last'](this[_0x06b3('0xd')][_0x324868[_0x06b3('0x4a')]]);_0x1cf70f[_0x06b3('0x1a')]=![];_0x1cf70f[_0x06b3('0x84')]=null;_0x1cf70f['assigned']=!![];_0x1cf70f[_0x06b3('0x86')]=_0x324868[_0x06b3('0x91')];_0x1cf70f['holdtime']=_0x324868['holdtime'];_0x1cf70f[_0x06b3('0x80')]=!![];_0x1cf70f[_0x06b3('0x92')]=![];_0x1cf70f[_0x06b3('0x93')]=null;if(!_0x1cf70f[_0x06b3('0x94')]){if(_0x324868[_0x06b3('0x95')]==_0x06b3('0x94')){_0x1cf70f[_0x06b3('0x85')]=_0x06b3('0x96');logger['info'](_0x06b3('0x97'),_0x1cf70f[_0x06b3('0x48')],_0x1cf70f['type']);}else{if(_['startsWith'](_0x324868['channel'][_0x06b3('0x98')](),'local/')){if(this[_0x06b3('0xd')][_0x324868[_0x06b3('0x99')]]){var _0x2ca916=_[_0x06b3('0x7f')](this[_0x06b3('0xd')][_0x324868[_0x06b3('0x99')]]);_0x2ca916['queuecallercomplete']=![];_0x2ca916[_0x06b3('0x92')]=!![];_0x2ca916[_0x06b3('0x93')]=moment(_0x1cf70f[_0x06b3('0x73')])['add'](_0x324868[_0x06b3('0x82')],'seconds')[_0x06b3('0x47')](_0x06b3('0x74'));_0x2ca916[_0x06b3('0x85')]=_0x06b3('0x9a');_0x2ca916['transfer']=!![];_0x2ca916[_0x06b3('0x9b')]=_0x06b3('0x9c');_0x2ca916[_0x06b3('0x9d')]=_0x324868[_0x06b3('0x9e')];_0x2ca916[_0x06b3('0x9f')]=_0x324868[_0x06b3('0x4a')];logger[_0x06b3('0x67')](_0x06b3('0xa0'),_0x2ca916[_0x06b3('0x48')],_0x2ca916['type']);var _0x1a7cfa=this[_0x06b3('0xd')][_0x324868[_0x06b3('0x99')]];this[_0x06b3('0xd')][_0x324868['linkedid']]=this[_0x06b3('0xd')][_0x324868['uniqueid']];this[_0x06b3('0xd')][_0x324868[_0x06b3('0x4a')]]=_0x1a7cfa;}}else{_0x1cf70f['queuecallerexitreason']=_0x06b3('0xa1')+_0x324868['reason']['toUpperCase']();logger[_0x06b3('0x67')](_0x06b3('0xa2'),_0x1cf70f['name'],_0x1cf70f[_0x06b3('0x4d')],_0x1cf70f[_0x06b3('0x85')]);}}}this[_0x06b3('0xf')][_0x324868['uniqueid']]=_0x1cf70f;this[_0x06b3('0x40')](_0x1cf70f,_0x06b3('0x1c'));}}}catch(_0x363f7a){logger[_0x06b3('0x39')](_0x06b3('0x90'),_0x324868[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x363f7a,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x06b3('0xa3')]=function(_0x3ce981){try{if(this['isNotNull'](_0x3ce981)){logger[_0x06b3('0x44')]('[%s][voiceQueueReport][varset]',_0x3ce981[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x3ce981,{'showHidden':![],'depth':null}));this[_0x06b3('0xa4')](_0x3ce981['uniqueid'],_['keys'](_0x3ce981[_0x06b3('0xa5')])[0x0],_0x3ce981[_0x06b3('0xa6')]);if(this[_0x06b3('0xd')][_0x3ce981[_0x06b3('0x4a')]]){var _0x5dfbee=_['last'](this[_0x06b3('0xd')][_0x3ce981['uniqueid']]);if(_0x5dfbee){if(this[_0x06b3('0x65')](_0x3ce981['variable'])&&this['isNotNull'](_0x3ce981[_0x06b3('0xa5')][_0x06b3('0xa7')])){switch(_0x3ce981[_0x06b3('0xa6')]){case'CONTINUE':_0x5dfbee[_0x06b3('0x92')]=![];_0x5dfbee['queuecallerexitAt']=null;break;case _0x06b3('0xa8'):_0x5dfbee[_0x06b3('0xa9')]='timeout';_0x5dfbee[_0x06b3('0x92')]=!![];_0x5dfbee[_0x06b3('0x93')]=moment()['format'](_0x06b3('0x74'));_0x5dfbee[_0x06b3('0x89')]=moment()['format'](_0x06b3('0x74'));logger['debug'](_0x06b3('0xaa'),_0x3ce981[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x5dfbee,{'showHidden':![],'depth':null}));ami[_0x06b3('0x42')](_0x06b3('0xab'),_0x5dfbee);break;default:_0x5dfbee[_0x06b3('0x92')]=!![];_0x5dfbee[_0x06b3('0x93')]=moment()[_0x06b3('0x47')](_0x06b3('0x74'));_0x5dfbee[_0x06b3('0x89')]=moment()[_0x06b3('0x47')](_0x06b3('0x74'));}_0x5dfbee[_0x06b3('0x1a')]=![];_0x5dfbee[_0x06b3('0x84')]=null;_0x5dfbee[_0x06b3('0x85')]=_0x3ce981[_0x06b3('0xa6')];this[_0x06b3('0xf')][_0x3ce981[_0x06b3('0x4a')]]=_0x5dfbee;this[_0x06b3('0x40')](_0x5dfbee,_0x06b3('0x1f'));}else if(this[_0x06b3('0x65')](_0x3ce981['variable'])&&this['isNotNull'](_0x3ce981['variable'][_0x06b3('0xac')])){if(!_0x5dfbee[_0x06b3('0x1a')]){_0x5dfbee[_0x06b3('0x92')]=!![];_0x5dfbee[_0x06b3('0x93')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x5dfbee[_0x06b3('0x85')]='EXITWITHKEY';_0x5dfbee[_0x06b3('0x89')]=moment()[_0x06b3('0x47')]('YYYY-MM-DD\x20HH:mm:ss');this[_0x06b3('0xf')][_0x3ce981[_0x06b3('0x4a')]]=_0x5dfbee;}}logger['info'](_0x06b3('0xad'),_0x3ce981[_0x06b3('0x4a')],_0x5dfbee[_0x06b3('0x48')],_0x5dfbee[_0x06b3('0x4d')],_[_0x06b3('0x7b')](_0x3ce981[_0x06b3('0xa5')])[0x0],_0x3ce981[_0x06b3('0xa6')]);_0x5dfbee[_0x06b3('0x13')]=this['variables'][_0x3ce981['uniqueid']];}}}}catch(_0xc5e519){logger[_0x06b3('0x39')]('[%s][voiceQueueReport][varset]',_0x3ce981[_0x06b3('0x4a')],util['inspect'](_0xc5e519,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x06b3('0xa')]['addVariable']=function(_0x331fce,_0x191945,_0x1a6a1b){var _0x27f12c=[_0x06b3('0xae'),_0x06b3('0xaf'),_0x06b3('0xb0'),_0x06b3('0xb1'),_0x06b3('0xb2'),_0x06b3('0xb3'),'rtpaudioqosrtt','rtpaudioqosrttbridged',_0x06b3('0xb4'),'sipuri',_0x06b3('0xb5'),_0x06b3('0xb6'),_0x06b3('0xb7'),_0x06b3('0xb8'),'memberinterface','memberlastcall',_0x06b3('0x91'),_0x06b3('0xb9'),'memberrealtime'];if(!_[_0x06b3('0xba')](_0x191945)&&!_[_0x06b3('0xbb')](_0x27f12c,_0x191945)){if(_[_0x06b3('0x72')](this[_0x06b3('0x13')][_0x331fce])){this[_0x06b3('0x13')][_0x331fce]={};}this[_0x06b3('0x13')][_0x331fce][_0x191945]=_0x1a6a1b;}};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0x21')]=function(_0x167666){try{if(this['isNotNull'](_0x167666)){logger[_0x06b3('0x44')](_0x06b3('0xbc'),_0x167666[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x167666,{'showHidden':![],'depth':null}));if(this[_0x06b3('0xd')][_0x167666['uniqueid']]){for(var _0x19e0d5=0x0,_0x1cd9c8={};_0x19e0d5<this[_0x06b3('0xd')][_0x167666[_0x06b3('0x4a')]][_0x06b3('0xbd')];_0x19e0d5+=0x1){_0x1cd9c8=this[_0x06b3('0xd')][_0x167666['uniqueid']][_0x19e0d5];if(this[_0x06b3('0x11')][_0x1cd9c8['queue']]){if(_0x1cd9c8[_0x06b3('0x92')]&&_0x1cd9c8[_0x06b3('0x94')]!=!![]){this[_0x06b3('0x11')][_0x1cd9c8[_0x06b3('0x66')]][_0x06b3('0x58')]+=0x1;}if(_0x1cd9c8['queuecallerabandon']){this[_0x06b3('0x11')][_0x1cd9c8['queue']]['abandoned']+=0x1;}this[_0x06b3('0x11')][_0x1cd9c8['queue']]['sumHoldTime']+=moment(_0x1cd9c8[_0x06b3('0x89')])[_0x06b3('0xbe')](_0x1cd9c8['queuecallerjoinAt'],_0x06b3('0xbf'))||0x0;if(_0x19e0d5===this[_0x06b3('0xd')][_0x167666[_0x06b3('0x4a')]]['length']-0x1){this[_0x06b3('0x11')][_0x1cd9c8[_0x06b3('0x66')]][_0x06b3('0x54')]+=moment()[_0x06b3('0xc0')](0x0)['diff'](_0x1cd9c8[_0x06b3('0x73')],_0x06b3('0xbf'));this['voiceQueues'][_0x1cd9c8[_0x06b3('0x66')]][_0x06b3('0x57')]+=0x1;if(_0x1cd9c8[_0x06b3('0x80')]){this[_0x06b3('0x11')][_0x1cd9c8[_0x06b3('0x66')]]['answered']+=0x1;this[_0x06b3('0x11')][_0x1cd9c8['queue']]['sumBillable']+=moment()[_0x06b3('0xc0')](0x0)[_0x06b3('0xbe')](_0x1cd9c8[_0x06b3('0x89')],_0x06b3('0xbf'));_0x1cd9c8[_0x06b3('0x81')]=moment()[_0x06b3('0x47')](_0x06b3('0x74'));_0x1cd9c8[_0x06b3('0x92')]=![];_0x1cd9c8[_0x06b3('0x93')]=null;}if(_0x1cd9c8[_0x06b3('0x92')]&&_0x1cd9c8[_0x06b3('0x94')]!=!![]){_0x1cd9c8[_0x06b3('0xa9')]=_0x06b3('0x58');logger['debug']('[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerunmanaged\x20event:',_0x167666[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x1cd9c8,{'showHidden':![],'depth':null}));ami[_0x06b3('0x42')](_0x06b3('0xc1'),_0x1cd9c8);}if(_0x1cd9c8[_0x06b3('0x1a')]){_0x1cd9c8[_0x06b3('0xa9')]=_0x06b3('0x59');logger[_0x06b3('0x44')]('[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerabandon\x20event:',_0x167666['uniqueid'],util[_0x06b3('0x3b')](_0x1cd9c8,{'showHidden':![],'depth':null}));ami[_0x06b3('0x42')](_0x06b3('0xc2'),_0x1cd9c8);}}else{this[_0x06b3('0x11')][_0x1cd9c8[_0x06b3('0x66')]][_0x06b3('0x54')]+=this['voiceQueues'][_0x1cd9c8['queue']]['sumHoldTime'];}logger['info'](_0x06b3('0xc3'),_0x167666['uniqueid'],_0x1cd9c8[_0x06b3('0x48')],_0x1cd9c8['type'],_0x167666[_0x06b3('0xc4')]);this[_0x06b3('0xf')][_0x167666[_0x06b3('0x4a')]]=_0x1cd9c8;this[_0x06b3('0x40')](_0x1cd9c8,_0x06b3('0x20'));this['emitVoiceQueueSummary'](this[_0x06b3('0x11')][_0x1cd9c8[_0x06b3('0x66')]],_0x06b3('0x20'));}}logger[_0x06b3('0x44')](_0x06b3('0xc5'),_0x167666['uniqueid'],util[_0x06b3('0x3b')](this[_0x06b3('0xd')][_0x167666[_0x06b3('0x4a')]],{'showHidden':![],'depth':null}));ami[_0x06b3('0x42')](_0x06b3('0xc6'),this[_0x06b3('0xd')][_0x167666[_0x06b3('0x4a')]]);delete this[_0x06b3('0xd')][_0x167666[_0x06b3('0x4a')]];delete this[_0x06b3('0xf')][_0x167666[_0x06b3('0x4a')]];}if(this[_0x06b3('0x13')][_0x167666['uniqueid']]){delete this[_0x06b3('0x13')][_0x167666[_0x06b3('0x4a')]];}}}catch(_0x56ff9e){logger[_0x06b3('0x39')](_0x06b3('0xbc'),_0x167666[_0x06b3('0x4a')],util['inspect'](_0x56ff9e,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x06b3('0xa')]['syncAttendedTransfer']=function(_0x407187){try{if(this[_0x06b3('0x65')](_0x407187)){logger[_0x06b3('0x44')](_0x06b3('0xc7'),_0x407187[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x407187,{'showHidden':![],'depth':null}));var _0x3908dd;if(this[_0x06b3('0xd')][_0x407187[_0x06b3('0xc8')]]){_0x3908dd=_[_0x06b3('0x7f')](this[_0x06b3('0xd')][_0x407187[_0x06b3('0xc8')]]);_0x3908dd[_0x06b3('0x9d')]=_0x407187[_0x06b3('0xc9')];_0x3908dd['transferuniqueid']=_0x407187[_0x06b3('0xca')];_0x3908dd[_0x06b3('0x85')]=_0x06b3('0xcb');_0x3908dd[_0x06b3('0x94')]=!![];_0x3908dd[_0x06b3('0x9b')]='ATTENDED';if(this[_0x06b3('0xd')][_0x407187['secondtransfereruniqueid']]){var _0x1e0147=this['queueReports'][_0x407187[_0x06b3('0xca')]];this['queueReports'][_0x407187[_0x06b3('0xca')]]=this[_0x06b3('0xd')][_0x407187[_0x06b3('0xc8')]];this[_0x06b3('0xd')][_0x407187[_0x06b3('0xc8')]]=_0x1e0147;var _0x244f37=_[_0x06b3('0x7f')](this['queueReports'][_0x407187[_0x06b3('0xc8')]]);_0x244f37['switch']=!![];}logger['info'](_0x06b3('0xcc'),_0x407187[_0x06b3('0x4a')],_0x3908dd[_0x06b3('0x48')],_0x3908dd['type'],_0x3908dd[_0x06b3('0x9d')],_0x3908dd[_0x06b3('0x9f')]);}else if(this['queueReports'][_0x407187[_0x06b3('0xcd')]]){_0x3908dd=_[_0x06b3('0x7f')](this[_0x06b3('0xd')][_0x407187[_0x06b3('0xcd')]]);_0x3908dd[_0x06b3('0x9d')]=_0x407187[_0x06b3('0xce')];_0x3908dd[_0x06b3('0x9f')]=_0x407187[_0x06b3('0xcf')];_0x3908dd[_0x06b3('0x85')]='ATTENDEDTRANSFER';_0x3908dd['transfer']=!![];_0x3908dd[_0x06b3('0x9b')]='ATTENDED';if(this[_0x06b3('0xd')][_0x407187['origtransfereruniqueid']]){var _0x1e0147=this[_0x06b3('0xd')][_0x407187[_0x06b3('0xcf')]];this[_0x06b3('0xd')][_0x407187[_0x06b3('0xcf')]]=this['queueReports'][_0x407187['transfertargetuniqueid']];this[_0x06b3('0xd')][_0x407187[_0x06b3('0xcd')]]=_0x1e0147;var _0x244f37=_[_0x06b3('0x7f')](this['queueReports'][_0x407187['transfertargetuniqueid']]);_0x244f37[_0x06b3('0xd0')]=!![];}logger['info'](_0x06b3('0xcc'),_0x407187[_0x06b3('0x4a')],_0x3908dd[_0x06b3('0x48')],_0x3908dd['type'],_0x3908dd[_0x06b3('0x9d')],_0x3908dd[_0x06b3('0x9f')]);}}}catch(_0x313134){logger['error'](_0x06b3('0xc7'),_0x407187[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x313134,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0x2a')]=function(_0x2edcfb){try{if(this['isNotNull'](_0x2edcfb)){logger['debug'](_0x06b3('0xd1'),_0x2edcfb[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x2edcfb,{'showHidden':![],'depth':null}));if(this[_0x06b3('0xd')][_0x2edcfb[_0x06b3('0xc8')]]){var _0x417dcc=_[_0x06b3('0x7f')](this[_0x06b3('0xd')][_0x2edcfb['transfereeuniqueid']]);_0x417dcc[_0x06b3('0x85')]=_0x06b3('0xd2');_0x417dcc[_0x06b3('0x94')]=!![];_0x417dcc[_0x06b3('0x9b')]='BLIND';_0x417dcc['transferexten']=_0x2edcfb[_0x06b3('0xd3')];_0x417dcc[_0x06b3('0x9f')]=_0x2edcfb[_0x06b3('0xc8')];logger[_0x06b3('0x67')](_0x06b3('0xd4'),_0x2edcfb[_0x06b3('0x4a')],_0x417dcc[_0x06b3('0x48')],_0x417dcc[_0x06b3('0x4d')],_0x417dcc[_0x06b3('0x9d')],_0x417dcc[_0x06b3('0x9f')]);this[_0x06b3('0x21')]({'event':_0x06b3('0xd5'),'uniqueid':_0x2edcfb[_0x06b3('0xc8')],'context':_0x2edcfb[_0x06b3('0xd6')],'channel':_0x2edcfb[_0x06b3('0xd7')]});}}}catch(_0xf0ef9c){logger[_0x06b3('0x39')]('[%s][voiceQueueReport][blindtransfer]',_0x2edcfb[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0xf0ef9c,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x06b3('0x26')]=function(_0x451664){try{if(this[_0x06b3('0x65')](_0x451664)){logger[_0x06b3('0x44')](_0x06b3('0xd8'),_0x451664[_0x06b3('0x4a')],util['inspect'](_0x451664,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x451664[_0x06b3('0x4a')]]){var _0x59195b=_['last'](this['queueReports'][_0x451664[_0x06b3('0x4a')]]);if(!_[_0x06b3('0xba')](_0x59195b[_0x06b3('0x89')])){_0x59195b[_0x06b3('0xd9')]=moment()['format'](_0x06b3('0x74'));logger['info'](_0x06b3('0xda'),_0x451664[_0x06b3('0x4a')],_0x59195b[_0x06b3('0xd9')]);}}}}catch(_0x4993d7){logger['error'](_0x06b3('0xd8'),_0x451664[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x4993d7,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x06b3('0xa')][_0x06b3('0xdb')]=function(_0x22f4ed){try{if(this[_0x06b3('0x65')](_0x22f4ed)){logger[_0x06b3('0x44')](_0x06b3('0xdc'),_0x22f4ed[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x22f4ed,{'showHidden':![],'depth':null}));if(this[_0x06b3('0xd')][_0x22f4ed[_0x06b3('0x4a')]]){var _0x16ac47=_[_0x06b3('0x7f')](this[_0x06b3('0xd')][_0x22f4ed[_0x06b3('0x4a')]]);if(!_['isNil'](_0x16ac47[_0x06b3('0xd9')])){_0x16ac47[_0x06b3('0xdd')]+=moment()[_0x06b3('0xc0')](0x0)[_0x06b3('0xbe')](_0x16ac47[_0x06b3('0xd9')],'seconds');logger[_0x06b3('0x67')](_0x06b3('0xde'),_0x22f4ed[_0x06b3('0x4a')],_0x16ac47[_0x06b3('0xdd')]);delete _0x16ac47[_0x06b3('0xd9')];}}}}catch(_0x475d36){logger[_0x06b3('0x39')](_0x06b3('0xdc'),_0x22f4ed[_0x06b3('0x4a')],util['inspect'](_0x475d36,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncNewExten']=function(_0x383248){try{if(this['isNotNull'](_0x383248)){logger[_0x06b3('0x44')](_0x06b3('0xdf'),_0x383248[_0x06b3('0x4a')],util[_0x06b3('0x3b')](_0x383248,{'showHidden':![],'depth':null}));if(_0x383248[_0x06b3('0xe0')][_0x06b3('0x98')]()===_0x06b3('0xe1')){_0x383248[_0x06b3('0xe2')]=_0x383248[_0x06b3('0xe3')]&&_0x383248[_0x06b3('0xe3')]['startsWith'](_0x06b3('0xe4'))?_0x383248['appdata']:(_0x383248['appdata']||_0x383248[_0x06b3('0xe2')])[_0x06b3('0x98')]();if(_[_0x06b3('0xe5')](_0x383248['applicationdata']['toLowerCase'](),_0x06b3('0xe6'))){logger[_0x06b3('0x67')](_0x06b3('0xe7'),_0x383248['uniqueid'],_0x383248[_0x06b3('0xe0')],_0x383248[_0x06b3('0xe2')]);if(_['isUndefined'](this[_0x06b3('0xf')][_0x383248[_0x06b3('0x4a')]]))this[_0x06b3('0xf')][_0x383248[_0x06b3('0x4a')]]={};var _0x134c7c=_0x383248[_0x06b3('0xe2')]['split']('=');var _0x119bbf=_0x134c7c[0x0][_0x06b3('0x98')]()['match'](/cdr\((.*)\)/);if(_0x119bbf)this[_0x06b3('0xf')][_0x383248[_0x06b3('0x4a')]][_0x119bbf[0x1]]=_0x134c7c[0x1];}}}}catch(_0x35d98c){logger[_0x06b3('0x39')](_0x06b3('0xe8'),_0x383248[_0x06b3('0x4a')],util['inspect'](_0x35d98c,{'showHidden':![],'depth':null}));}};module[_0x06b3('0xe9')]=VoiceQueueReport;
\ No newline at end of file
+var _0x6b19=['lodash','moment','md5','../../../config/logger','ami','../ami','../model/queueReport','redis','socket.io-emitter','enqueue','tail','finally','sequence','queueReports','agents','voiceQueues','campaigns','variables','syncQueueSummary','bind','queuesummarycomplete','syncQueueSummaryComplete','syncQueueCallerJoin','queuecallerabandon','syncQueueCallerAbandon','queuecallerleave','syncQueueCallerLeave','agentcomplete','syncAgentComplete','agentconnect','syncAgentConnect','varset','syncHangup','fullybooted','newexten','syncNewExten','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','loopQueueSummary','isEmpty','hasOwnProperty','originated','pTalking','waiting','queueStatusComplete','clearZombieChannels','channels','isNil','Action','status','channel','catch','No\x20such\x20channel','[%s][voiceQueueReport][checkChannel]','inspect','[%s][voiceQueueReport][checkQueueReport]','[%s][voiceQueueReport][checkVariables]','prototype','syncFullyBooted','error','clearQueueReport','emitVoiceQueueChannelRemove','clearqueuereport','emit','emitVoiceQueueChannelSave','debug','[%s][voiceQueueReport][',']\x20sending\x20voice_queue_channel:save\x20event:','uniqueid','format','voice:queue:%s','name','voice_queue_channel:save','voice_queue_presence:save',']\x20sending\x20voice_queue_channel:remove\x20event:','voice_queue_channel:remove','voice_queue_presence:remove','emitVoiceQueueSummary','inbound','answered','loggedIn','sumBillable','sumDuration','sumHoldTime','total','type','unmanaged','Trunk','callerid','Interval','[voiceQueueReport][',']\x20sending\x20voice_queue:save\x20event:','voice_queue:save','isNotNull','isUndefined','queues','[voiceQueueReport][queues]','queuesummary','then','flagQueueSummary','[voiceQueueReport][queuesummary]','queue','[voiceQueueReport][queuesummary]\x20event:','info','[voiceQueueReport][queuesummary]\x20name:%s','countBy','toNumber','callers','loggedin','available','talking','custom:queuesummary','[voiceQueueReport][queuesummarycomplete]\x20event:','[%s][voiceQueueReport][queuecallerjoin]','YYYY-MM-DD\x20HH:mm:ss','position','count','routealias','[voiceQueueReport][queuecallerjoin]\x20name:%s\x20type:%s','merge','queuecallerjoin','queuecallercomplete','holdtime','originalposition','ABANDONED','[voiceQueueReport][queuecallerabandon]\x20name:%s\x20type:%s','[%s][voiceQueueReport][queuecallerabandon]','[%s][voiceQueueReport][queuecallerleave]','last','queuecallerleaveAt','connectedlinenum','connectedlinename','[voiceQueueReport][queuecallerleave]\x20name:%s\x20type:%s\x20connectedlinenum:%s\x20connectedlinename:%s','[%s][voiceQueueReport][agentconnect]','queuecallerexitreason','COMPLETEDBYAGENT','[voiceQueueReport][agentconnect]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETEDBYAGENT','queuecallerabandonAt','assigned','lastAssignedTo','membername','transfer','reason','startsWith','toLowerCase','local/','linkedid','queuecallerexit','queuecallerexitAt','queuecallerjoinAt','seconds','transfertype','FORWARD','transferexten','destexten','transferuniqueid','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:FORWARDTRANSFER','COMPLETEDBY','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:%s','syncVarSet','[%s][voiceQueueReport][varset]','addVariable','keys','variable','value','queuestatus','TIMEOUT','lastevent','timeout','[%s][voiceQueueReport][varset]\x20sending\x20timeout\x20event:','custom:timeout','[%s][voiceQueueReport][varset]\x20name:%s\x20type:%s\x20variable:%s\x20value:%s','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberlastcall','memberpenalty','memberrealtime','includes','[%s][voiceQueueReport][hangup]','length','abandoned','diff','milliseconds','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerunmanaged\x20event:','[%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:','[%s][voiceQueueReport][attendedtransfer]','transfereeuniqueid','secondtransfereruniqueid','ATTENDED','switch','[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','origtransfereruniqueid','transfertargetuniqueid','[%s][voiceQueueReport][blindtransfer]','BLIND','[%s][voiceQueueReport][blindTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','BlindTransfer','transfererchannel','[%s][voiceQueueReport][musiconholdstart]','mohstarttime','syncMusicOnHoldStop','[%s][voiceQueueReport][musiconholdstop]','mohtime','[%s][voiceQueueReport][musiconholdstop]\x20mohtime:%s','application','applicationdata','appdata','CDR(routeAlias)','[%s][voiceQueueReport][newexten]\x20application:%s\x20appdata:%s','[%s][voiceQueueReport][newexten]','exports'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x6b19,0xe8));var _0x96b1=function(_0x2fef40,_0x26af20){_0x2fef40=_0x2fef40-0x0;var _0x4345ca=_0x6b19[_0x2fef40];return _0x4345ca;};'use strict';var _=require(_0x96b1('0x0'));var moment=require(_0x96b1('0x1'));var util=require('util');var md5=require(_0x96b1('0x2'));var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0x96b1('0x3'))(_0x96b1('0x4'));var ami=require(_0x96b1('0x5'));var QueueReport=require(_0x96b1('0x6'));config[_0x96b1('0x7')]=_['defaults'](config[_0x96b1('0x7')],{'host':'localhost','port':0x18eb});var io=require(_0x96b1('0x8'))(new Redis(config['redis']));var Sequence=function(){};Sequence['prototype'][_0x96b1('0x9')]=function(_0x535cc9){this[_0x96b1('0xa')]=this['tail']?this[_0x96b1('0xa')][_0x96b1('0xb')](_0x535cc9):_0x535cc9();};function VoiceQueueReport(_0x366a60){this[_0x96b1('0xc')]=new Sequence();this[_0x96b1('0xd')]={};this[_0x96b1('0xe')]=_0x366a60[_0x96b1('0xe')];this['channels']=_0x366a60['queueChannels'];this[_0x96b1('0xf')]=_0x366a60['voiceQueues'];this['flagQueueSummary']=!![];this[_0x96b1('0x10')]=_0x366a60[_0x96b1('0x10')];this[_0x96b1('0x11')]={};ami['on']('queuesummary',this[_0x96b1('0x12')][_0x96b1('0x13')](this));ami['on'](_0x96b1('0x14'),this[_0x96b1('0x15')][_0x96b1('0x13')](this));ami['on']('queuecallerjoin',this[_0x96b1('0x16')][_0x96b1('0x13')](this));ami['on'](_0x96b1('0x17'),this[_0x96b1('0x18')][_0x96b1('0x13')](this));ami['on'](_0x96b1('0x19'),this[_0x96b1('0x1a')][_0x96b1('0x13')](this));ami['on'](_0x96b1('0x1b'),this[_0x96b1('0x1c')][_0x96b1('0x13')](this));ami['on'](_0x96b1('0x1d'),this[_0x96b1('0x1e')][_0x96b1('0x13')](this));ami['on'](_0x96b1('0x1f'),this['syncVarSet'][_0x96b1('0x13')](this));ami['on']('hangup',this[_0x96b1('0x20')][_0x96b1('0x13')](this));ami['on'](_0x96b1('0x21'),this['syncFullyBooted'][_0x96b1('0x13')](this));ami['on'](_0x96b1('0x22'),this[_0x96b1('0x23')]['bind'](this));ami['on'](_0x96b1('0x24'),this[_0x96b1('0x25')][_0x96b1('0x13')](this));ami['on'](_0x96b1('0x26'),this['syncMusicOnHoldStop'][_0x96b1('0x13')](this));ami['on'](_0x96b1('0x27'),this[_0x96b1('0x28')]['bind'](this));ami['on'](_0x96b1('0x29'),this[_0x96b1('0x2a')][_0x96b1('0x13')](this));this[_0x96b1('0x2b')]();this['loopQueueShow']();}function clearChannels(_0x21da55){if(!_['isEmpty'](_0x21da55)){for(var _0x21ac25 in _0x21da55){if(_0x21da55['hasOwnProperty'](_0x21ac25)){delete _0x21da55[_0x21ac25];}}}}function clearCampaigns(_0x6509d2){if(!_[_0x96b1('0x2c')](_0x6509d2)){for(var _0x4fb8de in _0x6509d2){if(_0x6509d2['hasOwnProperty'](_0x4fb8de)){_0x6509d2[_0x4fb8de]['originated']=0x0;}}}}function clearVoiceQueues(_0x3f24bc){if(!_[_0x96b1('0x2c')](_0x3f24bc)){for(var _0x18e56a in _0x3f24bc){if(_0x3f24bc[_0x96b1('0x2d')](_0x18e56a)){_0x3f24bc[_0x18e56a][_0x96b1('0x2e')]=0x0;_0x3f24bc[_0x18e56a]['talking']=0x0;_0x3f24bc[_0x18e56a][_0x96b1('0x2f')]=0x0;_0x3f24bc[_0x18e56a][_0x96b1('0x30')]=0x0;_0x3f24bc[_0x18e56a][_0x96b1('0x31')]=!![];}}}}function clearAgentBooked(_0x209ce8){if(!_['isEmpty'](_0x209ce8)){for(var _0x30dd00 in _0x209ce8){if(_0x209ce8[_0x96b1('0x2d')](_0x30dd00)){_0x209ce8[_0x30dd00]['unlockRR']=!![];}}}}VoiceQueueReport['prototype'][_0x96b1('0x32')]=function(){var _0x53a198=this;for(var _0x436605 in this[_0x96b1('0x33')]){if(this['channels'][_0x96b1('0x2d')](_0x436605)&&!this[_0x96b1('0x33')][_0x436605]['switch']){this[_0x96b1('0xc')][_0x96b1('0x9')](function(){if(!_[_0x96b1('0x34')](_0x53a198['channels'][_0x436605])){return ami[_0x96b1('0x35')]({'action':_0x96b1('0x36'),'channel':_0x53a198[_0x96b1('0x33')][_0x436605][_0x96b1('0x37')]})[_0x96b1('0x38')](function(_0x3a7118){if(_0x3a7118['message']===_0x96b1('0x39')){setTimeout(function(){if(_0x53a198[_0x96b1('0x33')][_0x436605]){delete _0x53a198['channels'][_0x436605];logger['error'](_0x96b1('0x3a'),_0x436605,util[_0x96b1('0x3b')](_0x3a7118,{'showHidden':![],'depth':null}));}if(_0x53a198[_0x96b1('0xd')][_0x436605]){delete _0x53a198['queueReports'][_0x436605];logger['error'](_0x96b1('0x3c'),_0x436605,util[_0x96b1('0x3b')](_0x3a7118,{'showHidden':![],'depth':null}));}if(_0x53a198[_0x96b1('0x11')][_0x436605]){delete _0x53a198[_0x96b1('0x11')][_0x436605];logger['error'](_0x96b1('0x3d'),_0x436605,util['inspect'](_0x3a7118,{'showHidden':![],'depth':null}));}},0x1f40);}});}});}}};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0x3f')]=function(){logger[_0x96b1('0x40')]('[FullyBooted]\x20clear\x20realtime');clearChannels(this[_0x96b1('0x33')]);this[_0x96b1('0x41')](this[_0x96b1('0xd')]);clearAgentBooked(this[_0x96b1('0xe')]);clearVoiceQueues(this[_0x96b1('0xf')]);clearCampaigns(this[_0x96b1('0x10')]);};VoiceQueueReport['prototype'][_0x96b1('0x41')]=function(_0x3bc56d){var _0x4a7dd4=this;if(!_[_0x96b1('0x2c')](_0x3bc56d)){for(var _0x4ebe93 in _0x3bc56d){if(_0x3bc56d[_0x96b1('0x2d')](_0x4ebe93)){_0x4a7dd4[_0x96b1('0x42')](_0x3bc56d[_0x4ebe93],_0x96b1('0x43'));delete _0x3bc56d[_0x4ebe93];}}}};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0x44')]=function(_0xa02c65,_0x377775,_0x220d08){io['to'](_0xa02c65)[_0x96b1('0x44')](_0x377775,_0x220d08);};VoiceQueueReport['prototype'][_0x96b1('0x45')]=function(_0x4d3c9f,_0x41764a){logger[_0x96b1('0x46')](_0x96b1('0x47')+_0x41764a+_0x96b1('0x48'),_0x4d3c9f[_0x96b1('0x49')],util[_0x96b1('0x3b')](_0x4d3c9f,{'showHidden':![],'depth':null}));this[_0x96b1('0x44')](util[_0x96b1('0x4a')](_0x96b1('0x4b'),_0x4d3c9f[_0x96b1('0x4c')]),_0x96b1('0x4d'),_0x4d3c9f);io[_0x96b1('0x44')](_0x96b1('0x4e'),_0x4d3c9f);};VoiceQueueReport['prototype']['emitVoiceQueueChannelRemove']=function(_0xba6502,_0x2fdcb8){logger['debug'](_0x96b1('0x47')+_0x2fdcb8+_0x96b1('0x4f'),_0xba6502['uniqueid'],util['inspect'](_0xba6502,{'showHidden':![],'depth':null}));this['emit'](util[_0x96b1('0x4a')](_0x96b1('0x4b'),_0xba6502[_0x96b1('0x4c')]),_0x96b1('0x50'),_0xba6502);io[_0x96b1('0x44')](_0x96b1('0x51'),_0xba6502);};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0x52')]=function(_0x2610ee,_0x28f820){if(_0x2610ee['type']===_0x96b1('0x53')){var _0x54acd9={'id':_0x2610ee['id'],'name':_0x2610ee[_0x96b1('0x4c')],'strategy':_0x2610ee['strategy'],'answered':_0x2610ee[_0x96b1('0x54')],'available':_0x2610ee['available'],'loggedIn':_0x2610ee[_0x96b1('0x55')],'pTalking':_0x2610ee[_0x96b1('0x2f')],'sumBillable':_0x2610ee[_0x96b1('0x56')],'sumDuration':_0x2610ee[_0x96b1('0x57')],'sumHoldTime':_0x2610ee[_0x96b1('0x58')]||0x0,'talking':_0x2610ee['talking'],'total':_0x2610ee[_0x96b1('0x59')],'type':_0x2610ee[_0x96b1('0x5a')],'unmanaged':_0x2610ee[_0x96b1('0x5b')],'abandoned':_0x2610ee['abandoned'],'waiting':_0x2610ee[_0x96b1('0x30')]};if(_0x2610ee[_0x96b1('0x5c')]){_0x54acd9[_0x96b1('0x5c')]={'id':_0x2610ee[_0x96b1('0x5c')]['id'],'name':_0x2610ee['Trunk'][_0x96b1('0x4c')],'active':_0x2610ee[_0x96b1('0x5c')]['active'],'callerid':_0x2610ee[_0x96b1('0x5c')][_0x96b1('0x5d')]};}if(_0x2610ee[_0x96b1('0x5e')]){_0x54acd9[_0x96b1('0x5e')]={'id':_0x2610ee[_0x96b1('0x5e')]['id'],'name':_0x2610ee[_0x96b1('0x5e')]['name']};}var _0x306dc9=md5(JSON['stringify'](_0x54acd9));if(_0x2610ee[_0x96b1('0x2')]!==_0x306dc9){_0x2610ee[_0x96b1('0x2')]=_0x306dc9;logger['debug'](_0x96b1('0x5f')+_0x28f820+_0x96b1('0x60'),util['inspect'](_0x54acd9,{'showHidden':![],'depth':null}));this[_0x96b1('0x44')](util[_0x96b1('0x4a')](_0x96b1('0x4b'),_0x54acd9[_0x96b1('0x4c')]),_0x96b1('0x61'),_0x54acd9);}}};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0x62')]=function(_0x192aa4){return _0x192aa4!==null&&!_[_0x96b1('0x63')](_0x192aa4);};VoiceQueueReport[_0x96b1('0x3e')]['loopQueueShow']=function(){var _0x296960=this;setInterval(function(){_0x296960[_0x96b1('0x32')]();ami[_0x96b1('0x35')]({'action':_0x96b1('0x64')})[_0x96b1('0x38')](function(_0x1e087d){logger[_0x96b1('0x40')](_0x96b1('0x65'),util['inspect'](_0x1e087d,{'showHidden':![],'depth':null}));});},0x2710);};VoiceQueueReport['prototype'][_0x96b1('0x2b')]=function(){var _0x1d07e1=this;setInterval(function(){if(_0x1d07e1['flagQueueSummary']){return ami[_0x96b1('0x35')]({'action':_0x96b1('0x66')})[_0x96b1('0x67')](function(_0x5f026c){_0x1d07e1[_0x96b1('0x68')]=![];})[_0x96b1('0x38')](function(_0x52c64e){logger['error'](_0x96b1('0x69'),util[_0x96b1('0x3b')](_0x52c64e,{'showHidden':![],'depth':null}));});}},0x3e8);};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0x12')]=function(_0x22aa61){try{if(this[_0x96b1('0x62')](_0x22aa61)&&this[_0x96b1('0x62')](_0x22aa61[_0x96b1('0x6a')])){logger[_0x96b1('0x46')](_0x96b1('0x6b'),util[_0x96b1('0x3b')](_0x22aa61,{'showHidden':![],'depth':null}));if(this[_0x96b1('0xf')][_0x22aa61['queue']]){logger[_0x96b1('0x6c')](_0x96b1('0x6d'),_0x22aa61[_0x96b1('0x6a')]);var _0x22da91=_[_0x96b1('0x6e')](this[_0x96b1('0x33')],_0x96b1('0x6a'))[_0x22aa61['queue']]||0x0;var _0x10d5b7=_0x22da91-_0x22aa61['callers'];if(this['voiceQueues'][_0x22aa61[_0x96b1('0x6a')]][_0x96b1('0x30')]!==_[_0x96b1('0x6f')](_0x22aa61[_0x96b1('0x70')])||this[_0x96b1('0xf')][_0x22aa61[_0x96b1('0x6a')]][_0x96b1('0x55')]!==_['toNumber'](_0x22aa61[_0x96b1('0x71')])||this['voiceQueues'][_0x22aa61[_0x96b1('0x6a')]]['available']!==_[_0x96b1('0x6f')](_0x22aa61[_0x96b1('0x72')])||this['voiceQueues'][_0x22aa61[_0x96b1('0x6a')]][_0x96b1('0x73')]!==_0x10d5b7){this[_0x96b1('0xf')][_0x22aa61[_0x96b1('0x6a')]]['waiting']=_['toNumber'](_0x22aa61[_0x96b1('0x70')]);this[_0x96b1('0xf')][_0x22aa61[_0x96b1('0x6a')]][_0x96b1('0x55')]=_['toNumber'](_0x22aa61[_0x96b1('0x71')]);this[_0x96b1('0xf')][_0x22aa61[_0x96b1('0x6a')]][_0x96b1('0x72')]=_[_0x96b1('0x6f')](_0x22aa61[_0x96b1('0x72')]);this[_0x96b1('0xf')][_0x22aa61[_0x96b1('0x6a')]][_0x96b1('0x73')]=_0x10d5b7>0x0?_0x10d5b7:0x0;this['voiceQueues'][_0x22aa61['queue']][_0x96b1('0x73')]=this[_0x96b1('0xf')][_0x22aa61['queue']]['talking']>_[_0x96b1('0x6f')](_0x22aa61[_0x96b1('0x71')])?_[_0x96b1('0x6f')](_0x22aa61[_0x96b1('0x71')]):this[_0x96b1('0xf')][_0x22aa61[_0x96b1('0x6a')]][_0x96b1('0x73')];this['emitVoiceQueueSummary'](this['voiceQueues'][_0x22aa61[_0x96b1('0x6a')]],_0x96b1('0x66'));}logger['debug']('[voiceQueueReport][queuesummary]\x20sending\x20queuesummary\x20event:',util[_0x96b1('0x3b')](this[_0x96b1('0xf')][_0x22aa61['queue']],{'showHidden':![],'depth':null}));ami[_0x96b1('0x44')](_0x96b1('0x74'),this[_0x96b1('0xf')][_0x22aa61[_0x96b1('0x6a')]]);}}}catch(_0x3ae851){logger[_0x96b1('0x40')]('[voiceQueueReport][queuesummary]',util[_0x96b1('0x3b')](_0x3ae851,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0x15')]=function(_0xb972bb){logger['debug'](_0x96b1('0x75'),util['inspect'](_0xb972bb,{'showHidden':![],'depth':null}));this[_0x96b1('0x68')]=!![];};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0x16')]=function(_0x20fd2a){try{if(this[_0x96b1('0x62')](_0x20fd2a)){logger[_0x96b1('0x46')](_0x96b1('0x76'),_0x20fd2a[_0x96b1('0x49')],util[_0x96b1('0x3b')](_0x20fd2a,{'showHidden':![],'depth':null}));if(_[_0x96b1('0x63')](this[_0x96b1('0xd')][_0x20fd2a['uniqueid']]))this[_0x96b1('0xd')][_0x20fd2a[_0x96b1('0x49')]]=[];if(_[_0x96b1('0x63')](this[_0x96b1('0x33')][_0x20fd2a[_0x96b1('0x49')]]))this['channels'][_0x20fd2a[_0x96b1('0x49')]]={};var _0x362017=new QueueReport();_0x362017['name']=_0x20fd2a[_0x96b1('0x6a')];_0x362017[_0x96b1('0x5a')]=this[_0x96b1('0xf')][_0x362017[_0x96b1('0x4c')]]&&this['voiceQueues'][_0x362017['name']]['type']?this['voiceQueues'][_0x362017[_0x96b1('0x4c')]][_0x96b1('0x5a')]||'inbound':_0x96b1('0x53');_0x362017[_0x96b1('0x6a')]=_0x20fd2a[_0x96b1('0x6a')];_0x362017['queuecallerjoinAt']=moment()[_0x96b1('0x4a')](_0x96b1('0x77'));_0x362017[_0x96b1('0x78')]=_0x20fd2a['position'];_0x362017[_0x96b1('0x79')]=_0x20fd2a[_0x96b1('0x79')];_0x362017[_0x96b1('0x49')]=_0x20fd2a[_0x96b1('0x49')];_0x362017[_0x96b1('0x7a')]=this['channels'][_0x20fd2a[_0x96b1('0x49')]]['routealias'];logger['info'](_0x96b1('0x7b'),_0x362017[_0x96b1('0x4c')],_0x362017[_0x96b1('0x5a')]);_[_0x96b1('0x7c')](_0x362017,_['pick'](_0x20fd2a,_['keys'](_0x362017)));this['queueReports'][_0x20fd2a['uniqueid']]['push'](_0x362017);this[_0x96b1('0x33')][_0x20fd2a['uniqueid']]=_0x362017;this[_0x96b1('0x45')](_0x362017,_0x96b1('0x7d'));}}catch(_0x331e21){logger[_0x96b1('0x40')]('[%s][voiceQueueReport][queuecallerjoin]',_0x20fd2a[_0x96b1('0x49')],util[_0x96b1('0x3b')](_0x331e21,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x96b1('0x18')]=function(_0x4a0e61){try{if(this['isNotNull'](_0x4a0e61)){logger[_0x96b1('0x46')]('[%s][voiceQueueReport][queuecallerabandon]',_0x4a0e61[_0x96b1('0x49')],util['inspect'](_0x4a0e61,{'showHidden':![],'depth':null}));if(this[_0x96b1('0xd')][_0x4a0e61[_0x96b1('0x49')]]){var _0x379256=_['last'](this[_0x96b1('0xd')][_0x4a0e61[_0x96b1('0x49')]]);_0x379256[_0x96b1('0x7e')]=![];_0x379256['queuecallercompleteAt']=null;_0x379256[_0x96b1('0x7f')]=_0x4a0e61[_0x96b1('0x7f')];_0x379256['originalposition']=_0x4a0e61[_0x96b1('0x80')];_0x379256[_0x96b1('0x17')]=!![];_0x379256['queuecallerabandonAt']=moment()['format'](_0x96b1('0x77'));_0x379256['queuecallerexitreason']=_0x96b1('0x81');_0x379256['lastAssignedTo']=null;logger[_0x96b1('0x6c')](_0x96b1('0x82'),_0x379256[_0x96b1('0x4c')],_0x379256[_0x96b1('0x5a')]);this[_0x96b1('0x33')][_0x4a0e61['uniqueid']]=_0x379256;this[_0x96b1('0x42')](_0x379256,_0x96b1('0x17'));}}}catch(_0x3a492e){logger['error'](_0x96b1('0x83'),_0x4a0e61['uniqueid'],util['inspect'](_0x3a492e,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x96b1('0x3e')]['syncQueueCallerLeave']=function(_0x1b1d65){try{if(this['isNotNull'](_0x1b1d65)){logger['debug'](_0x96b1('0x84'),_0x1b1d65['uniqueid'],util[_0x96b1('0x3b')](_0x1b1d65,{'showHidden':![],'depth':null}));if(this[_0x96b1('0xd')][_0x1b1d65[_0x96b1('0x49')]]){var _0x14af55=_[_0x96b1('0x85')](this[_0x96b1('0xd')][_0x1b1d65['uniqueid']]);_0x14af55[_0x96b1('0x86')]=moment()['format'](_0x96b1('0x77'));_0x14af55[_0x96b1('0x87')]=_0x1b1d65['connectedlinenum'];_0x14af55[_0x96b1('0x88')]=_0x1b1d65[_0x96b1('0x88')];logger['info'](_0x96b1('0x89'),_0x14af55[_0x96b1('0x4c')],_0x14af55['type'],_0x1b1d65[_0x96b1('0x87')],_0x1b1d65['connectedlinename']);this[_0x96b1('0x33')][_0x1b1d65['uniqueid']]=_0x14af55;this['emitVoiceQueueChannelSave'](_0x14af55,_0x96b1('0x19'));}}}catch(_0x393295){logger[_0x96b1('0x40')](_0x96b1('0x84'),_0x1b1d65['uniqueid'],util[_0x96b1('0x3b')](_0x393295,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0x1e')]=function(_0x303ec2){try{if(this[_0x96b1('0x62')](_0x303ec2)){logger[_0x96b1('0x46')](_0x96b1('0x8a'),_0x303ec2['uniqueid'],util[_0x96b1('0x3b')](_0x303ec2,{'showHidden':![],'depth':null}));if(this[_0x96b1('0xd')][_0x303ec2[_0x96b1('0x49')]]){var _0x2d4516=_['last'](this['queueReports'][_0x303ec2[_0x96b1('0x49')]]);_0x2d4516[_0x96b1('0x7e')]=!![];_0x2d4516[_0x96b1('0x8b')]=_0x96b1('0x8c');logger[_0x96b1('0x6c')](_0x96b1('0x8d'),_0x2d4516[_0x96b1('0x4c')],_0x2d4516[_0x96b1('0x5a')]);}}}catch(_0x2739fd){logger[_0x96b1('0x40')]('[%s][voiceQueueReport][agentconnect]',_0x303ec2['uniqueid'],util[_0x96b1('0x3b')](_0x2739fd,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0x1c')]=function(_0x3e6953){try{if(this[_0x96b1('0x62')](_0x3e6953)){logger[_0x96b1('0x46')]('[%s][voiceQueueReport][agentcomplete]',_0x3e6953[_0x96b1('0x49')],util['inspect'](_0x3e6953,{'showHidden':![],'depth':null}));if(this[_0x96b1('0xd')][_0x3e6953[_0x96b1('0x49')]]){var _0x640c3d=_[_0x96b1('0x85')](this[_0x96b1('0xd')][_0x3e6953[_0x96b1('0x49')]]);_0x640c3d['queuecallerabandon']=![];_0x640c3d[_0x96b1('0x8e')]=null;_0x640c3d[_0x96b1('0x8f')]=!![];_0x640c3d[_0x96b1('0x90')]=_0x3e6953[_0x96b1('0x91')];_0x640c3d['holdtime']=_0x3e6953[_0x96b1('0x7f')];_0x640c3d[_0x96b1('0x7e')]=!![];_0x640c3d['queuecallerexit']=![];_0x640c3d['queuecallerexitAt']=null;if(!_0x640c3d[_0x96b1('0x92')]){if(_0x3e6953[_0x96b1('0x93')]==_0x96b1('0x92')){_0x640c3d[_0x96b1('0x8b')]='COMPLETED';logger[_0x96b1('0x6c')]('[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETED',_0x640c3d[_0x96b1('0x4c')],_0x640c3d[_0x96b1('0x5a')]);}else{if(_[_0x96b1('0x94')](_0x3e6953[_0x96b1('0x37')][_0x96b1('0x95')](),_0x96b1('0x96'))){if(this[_0x96b1('0xd')][_0x3e6953['linkedid']]){var _0x2ae174=_[_0x96b1('0x85')](this[_0x96b1('0xd')][_0x3e6953[_0x96b1('0x97')]]);_0x2ae174[_0x96b1('0x7e')]=![];_0x2ae174[_0x96b1('0x98')]=!![];_0x2ae174[_0x96b1('0x99')]=moment(_0x640c3d[_0x96b1('0x9a')])['add'](_0x3e6953[_0x96b1('0x7f')],_0x96b1('0x9b'))[_0x96b1('0x4a')](_0x96b1('0x77'));_0x2ae174[_0x96b1('0x8b')]='FORWARDTRANSFER';_0x2ae174['transfer']=!![];_0x2ae174[_0x96b1('0x9c')]=_0x96b1('0x9d');_0x2ae174[_0x96b1('0x9e')]=_0x3e6953[_0x96b1('0x9f')];_0x2ae174[_0x96b1('0xa0')]=_0x3e6953[_0x96b1('0x49')];logger['info'](_0x96b1('0xa1'),_0x2ae174[_0x96b1('0x4c')],_0x2ae174['type']);var _0x564b1e=this[_0x96b1('0xd')][_0x3e6953['linkedid']];this[_0x96b1('0xd')][_0x3e6953[_0x96b1('0x97')]]=this[_0x96b1('0xd')][_0x3e6953[_0x96b1('0x49')]];this['queueReports'][_0x3e6953['uniqueid']]=_0x564b1e;}}else{_0x640c3d['queuecallerexitreason']=_0x96b1('0xa2')+_0x3e6953[_0x96b1('0x93')]['toUpperCase']();logger[_0x96b1('0x6c')](_0x96b1('0xa3'),_0x640c3d[_0x96b1('0x4c')],_0x640c3d[_0x96b1('0x5a')],_0x640c3d['queuecallerexitreason']);}}}this[_0x96b1('0x33')][_0x3e6953[_0x96b1('0x49')]]=_0x640c3d;this[_0x96b1('0x42')](_0x640c3d,_0x96b1('0x1b'));}}}catch(_0x443d7a){logger[_0x96b1('0x40')]('[%s][voiceQueueReport][agentcomplete]',_0x3e6953['uniqueid'],util[_0x96b1('0x3b')](_0x443d7a,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0xa4')]=function(_0x199940){try{if(this['isNotNull'](_0x199940)){logger[_0x96b1('0x46')](_0x96b1('0xa5'),_0x199940[_0x96b1('0x49')],util[_0x96b1('0x3b')](_0x199940,{'showHidden':![],'depth':null}));this[_0x96b1('0xa6')](_0x199940['uniqueid'],_[_0x96b1('0xa7')](_0x199940[_0x96b1('0xa8')])[0x0],_0x199940[_0x96b1('0xa9')]);if(this[_0x96b1('0xd')][_0x199940[_0x96b1('0x49')]]){var _0x163fb4=_[_0x96b1('0x85')](this[_0x96b1('0xd')][_0x199940[_0x96b1('0x49')]]);if(_0x163fb4){if(this[_0x96b1('0x62')](_0x199940['variable'])&&this['isNotNull'](_0x199940['variable'][_0x96b1('0xaa')])){switch(_0x199940[_0x96b1('0xa9')]){case'CONTINUE':_0x163fb4[_0x96b1('0x98')]=![];_0x163fb4[_0x96b1('0x99')]=null;break;case _0x96b1('0xab'):_0x163fb4[_0x96b1('0xac')]=_0x96b1('0xad');_0x163fb4[_0x96b1('0x98')]=!![];_0x163fb4[_0x96b1('0x99')]=moment()['format'](_0x96b1('0x77'));_0x163fb4['queuecallerleaveAt']=moment()[_0x96b1('0x4a')](_0x96b1('0x77'));logger[_0x96b1('0x46')](_0x96b1('0xae'),_0x199940[_0x96b1('0x49')],util['inspect'](_0x163fb4,{'showHidden':![],'depth':null}));ami[_0x96b1('0x44')](_0x96b1('0xaf'),_0x163fb4);break;default:_0x163fb4[_0x96b1('0x98')]=!![];_0x163fb4['queuecallerexitAt']=moment()[_0x96b1('0x4a')](_0x96b1('0x77'));_0x163fb4[_0x96b1('0x86')]=moment()[_0x96b1('0x4a')]('YYYY-MM-DD\x20HH:mm:ss');}_0x163fb4[_0x96b1('0x17')]=![];_0x163fb4[_0x96b1('0x8e')]=null;_0x163fb4[_0x96b1('0x8b')]=_0x199940[_0x96b1('0xa9')];this[_0x96b1('0x33')][_0x199940['uniqueid']]=_0x163fb4;this['emitVoiceQueueChannelRemove'](_0x163fb4,_0x96b1('0x1f'));}else if(this[_0x96b1('0x62')](_0x199940['variable'])&&this[_0x96b1('0x62')](_0x199940[_0x96b1('0xa8')]['queueposition'])){if(!_0x163fb4[_0x96b1('0x17')]){_0x163fb4['queuecallerexit']=!![];_0x163fb4['queuecallerexitAt']=moment()[_0x96b1('0x4a')](_0x96b1('0x77'));_0x163fb4[_0x96b1('0x8b')]='EXITWITHKEY';_0x163fb4[_0x96b1('0x86')]=moment()[_0x96b1('0x4a')](_0x96b1('0x77'));this['channels'][_0x199940[_0x96b1('0x49')]]=_0x163fb4;}}logger[_0x96b1('0x6c')](_0x96b1('0xb0'),_0x199940[_0x96b1('0x49')],_0x163fb4[_0x96b1('0x4c')],_0x163fb4[_0x96b1('0x5a')],_[_0x96b1('0xa7')](_0x199940[_0x96b1('0xa8')])[0x0],_0x199940['value']);_0x163fb4[_0x96b1('0x11')]=this[_0x96b1('0x11')][_0x199940[_0x96b1('0x49')]];}}}}catch(_0x5c0039){logger['error'](_0x96b1('0xa5'),_0x199940[_0x96b1('0x49')],util[_0x96b1('0x3b')](_0x5c0039,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x96b1('0xa6')]=function(_0x245bd8,_0x3982a1,_0x2f81c2){var _0xaffdf=[_0x96b1('0xb1'),_0x96b1('0xb2'),'rtpaudioqosjitter',_0x96b1('0xb3'),_0x96b1('0xb4'),'rtpaudioqoslossbridged',_0x96b1('0xb5'),_0x96b1('0xb6'),_0x96b1('0xb7'),_0x96b1('0xb8'),_0x96b1('0xb9'),_0x96b1('0xba'),_0x96b1('0xbb'),_0x96b1('0xbc'),_0x96b1('0xbd'),_0x96b1('0xbe'),'membername',_0x96b1('0xbf'),_0x96b1('0xc0')];if(!_[_0x96b1('0x34')](_0x3982a1)&&!_[_0x96b1('0xc1')](_0xaffdf,_0x3982a1)){if(_[_0x96b1('0x63')](this[_0x96b1('0x11')][_0x245bd8])){this[_0x96b1('0x11')][_0x245bd8]={};}this['variables'][_0x245bd8][_0x3982a1]=_0x2f81c2;}};VoiceQueueReport['prototype'][_0x96b1('0x20')]=function(_0x44f947){try{if(this[_0x96b1('0x62')](_0x44f947)){logger[_0x96b1('0x46')](_0x96b1('0xc2'),_0x44f947[_0x96b1('0x49')],util['inspect'](_0x44f947,{'showHidden':![],'depth':null}));if(this[_0x96b1('0xd')][_0x44f947[_0x96b1('0x49')]]){for(var _0xc778cc=0x0,_0x3f06e9={};_0xc778cc<this[_0x96b1('0xd')][_0x44f947[_0x96b1('0x49')]][_0x96b1('0xc3')];_0xc778cc+=0x1){_0x3f06e9=this[_0x96b1('0xd')][_0x44f947[_0x96b1('0x49')]][_0xc778cc];if(this['voiceQueues'][_0x3f06e9[_0x96b1('0x6a')]]){if(_0x3f06e9[_0x96b1('0x98')]&&_0x3f06e9['transfer']!=!![]){this[_0x96b1('0xf')][_0x3f06e9['queue']][_0x96b1('0x5b')]+=0x1;}if(_0x3f06e9[_0x96b1('0x17')]){this[_0x96b1('0xf')][_0x3f06e9[_0x96b1('0x6a')]][_0x96b1('0xc4')]+=0x1;}this[_0x96b1('0xf')][_0x3f06e9['queue']]['sumHoldTime']+=moment(_0x3f06e9[_0x96b1('0x86')])[_0x96b1('0xc5')](_0x3f06e9[_0x96b1('0x9a')],_0x96b1('0x9b'))||0x0;if(_0xc778cc===this[_0x96b1('0xd')][_0x44f947['uniqueid']]['length']-0x1){this[_0x96b1('0xf')][_0x3f06e9['queue']][_0x96b1('0x57')]+=moment()[_0x96b1('0xc6')](0x0)[_0x96b1('0xc5')](_0x3f06e9['queuecallerjoinAt'],_0x96b1('0x9b'));this[_0x96b1('0xf')][_0x3f06e9['queue']][_0x96b1('0x59')]+=0x1;if(_0x3f06e9[_0x96b1('0x7e')]){this[_0x96b1('0xf')][_0x3f06e9['queue']]['answered']+=0x1;this[_0x96b1('0xf')][_0x3f06e9[_0x96b1('0x6a')]]['sumBillable']+=moment()[_0x96b1('0xc6')](0x0)[_0x96b1('0xc5')](_0x3f06e9[_0x96b1('0x86')],_0x96b1('0x9b'));_0x3f06e9['queuecallercompleteAt']=moment()[_0x96b1('0x4a')](_0x96b1('0x77'));_0x3f06e9[_0x96b1('0x98')]=![];_0x3f06e9[_0x96b1('0x99')]=null;}if(_0x3f06e9['queuecallerexit']&&_0x3f06e9[_0x96b1('0x92')]!=!![]){_0x3f06e9['lastevent']=_0x96b1('0x5b');logger['debug'](_0x96b1('0xc7'),_0x44f947['uniqueid'],util['inspect'](_0x3f06e9,{'showHidden':![],'depth':null}));ami[_0x96b1('0x44')]('custom:queuecallerunmanaged',_0x3f06e9);}if(_0x3f06e9[_0x96b1('0x17')]){_0x3f06e9['lastevent']='abandoned';logger[_0x96b1('0x46')](_0x96b1('0xc8'),_0x44f947['uniqueid'],util['inspect'](_0x3f06e9,{'showHidden':![],'depth':null}));ami[_0x96b1('0x44')](_0x96b1('0xc9'),_0x3f06e9);}}else{this[_0x96b1('0xf')][_0x3f06e9[_0x96b1('0x6a')]][_0x96b1('0x57')]+=this[_0x96b1('0xf')][_0x3f06e9[_0x96b1('0x6a')]]['sumHoldTime'];}logger[_0x96b1('0x6c')](_0x96b1('0xca'),_0x44f947['uniqueid'],_0x3f06e9[_0x96b1('0x4c')],_0x3f06e9[_0x96b1('0x5a')],_0x44f947[_0x96b1('0xcb')]);this[_0x96b1('0x33')][_0x44f947['uniqueid']]=_0x3f06e9;this[_0x96b1('0x42')](_0x3f06e9,_0x96b1('0xcc'));this[_0x96b1('0x52')](this[_0x96b1('0xf')][_0x3f06e9[_0x96b1('0x6a')]],_0x96b1('0xcc'));}}logger[_0x96b1('0x46')](_0x96b1('0xcd'),_0x44f947['uniqueid'],util[_0x96b1('0x3b')](this[_0x96b1('0xd')][_0x44f947[_0x96b1('0x49')]],{'showHidden':![],'depth':null}));ami[_0x96b1('0x44')]('custom:voiceQueueReport',this[_0x96b1('0xd')][_0x44f947['uniqueid']]);delete this[_0x96b1('0xd')][_0x44f947[_0x96b1('0x49')]];delete this[_0x96b1('0x33')][_0x44f947['uniqueid']];}if(this[_0x96b1('0x11')][_0x44f947[_0x96b1('0x49')]]){delete this[_0x96b1('0x11')][_0x44f947[_0x96b1('0x49')]];}}}catch(_0x57482f){logger[_0x96b1('0x40')](_0x96b1('0xc2'),_0x44f947['uniqueid'],util[_0x96b1('0x3b')](_0x57482f,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0x28')]=function(_0x56a436){try{if(this[_0x96b1('0x62')](_0x56a436)){logger['debug'](_0x96b1('0xce'),_0x56a436[_0x96b1('0x49')],util[_0x96b1('0x3b')](_0x56a436,{'showHidden':![],'depth':null}));var _0x298324;if(this[_0x96b1('0xd')][_0x56a436[_0x96b1('0xcf')]]){_0x298324=_['last'](this['queueReports'][_0x56a436['transfereeuniqueid']]);_0x298324[_0x96b1('0x9e')]=_0x56a436['secondtransfererexten'];_0x298324[_0x96b1('0xa0')]=_0x56a436[_0x96b1('0xd0')];_0x298324[_0x96b1('0x8b')]='ATTENDEDTRANSFER';_0x298324[_0x96b1('0x92')]=!![];_0x298324['transfertype']=_0x96b1('0xd1');if(this['queueReports'][_0x56a436['secondtransfereruniqueid']]){var _0x2140e6=this[_0x96b1('0xd')][_0x56a436[_0x96b1('0xd0')]];this[_0x96b1('0xd')][_0x56a436['secondtransfereruniqueid']]=this['queueReports'][_0x56a436['transfereeuniqueid']];this[_0x96b1('0xd')][_0x56a436[_0x96b1('0xcf')]]=_0x2140e6;var _0x4c4bba=_[_0x96b1('0x85')](this[_0x96b1('0xd')][_0x56a436[_0x96b1('0xcf')]]);_0x4c4bba[_0x96b1('0xd2')]=!![];}logger[_0x96b1('0x6c')](_0x96b1('0xd3'),_0x56a436['uniqueid'],_0x298324[_0x96b1('0x4c')],_0x298324[_0x96b1('0x5a')],_0x298324[_0x96b1('0x9e')],_0x298324[_0x96b1('0xa0')]);}else if(this[_0x96b1('0xd')][_0x56a436['transfertargetuniqueid']]){_0x298324=_['last'](this[_0x96b1('0xd')][_0x56a436['transfertargetuniqueid']]);_0x298324[_0x96b1('0x9e')]=_0x56a436['origtransfererexten'];_0x298324[_0x96b1('0xa0')]=_0x56a436[_0x96b1('0xd4')];_0x298324['queuecallerexitreason']='ATTENDEDTRANSFER';_0x298324[_0x96b1('0x92')]=!![];_0x298324[_0x96b1('0x9c')]=_0x96b1('0xd1');if(this[_0x96b1('0xd')][_0x56a436['origtransfereruniqueid']]){var _0x2140e6=this['queueReports'][_0x56a436[_0x96b1('0xd4')]];this[_0x96b1('0xd')][_0x56a436[_0x96b1('0xd4')]]=this[_0x96b1('0xd')][_0x56a436['transfertargetuniqueid']];this[_0x96b1('0xd')][_0x56a436['transfertargetuniqueid']]=_0x2140e6;var _0x4c4bba=_[_0x96b1('0x85')](this[_0x96b1('0xd')][_0x56a436[_0x96b1('0xd5')]]);_0x4c4bba[_0x96b1('0xd2')]=!![];}logger[_0x96b1('0x6c')](_0x96b1('0xd3'),_0x56a436['uniqueid'],_0x298324['name'],_0x298324[_0x96b1('0x5a')],_0x298324[_0x96b1('0x9e')],_0x298324[_0x96b1('0xa0')]);}}}catch(_0x3b78f6){logger[_0x96b1('0x40')](_0x96b1('0xce'),_0x56a436[_0x96b1('0x49')],util['inspect'](_0x3b78f6,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x96b1('0x3e')]['syncBlindTransfer']=function(_0x1b62aa){try{if(this[_0x96b1('0x62')](_0x1b62aa)){logger[_0x96b1('0x46')](_0x96b1('0xd6'),_0x1b62aa['uniqueid'],util[_0x96b1('0x3b')](_0x1b62aa,{'showHidden':![],'depth':null}));if(this[_0x96b1('0xd')][_0x1b62aa[_0x96b1('0xcf')]]){var _0x21814b=_[_0x96b1('0x85')](this['queueReports'][_0x1b62aa['transfereeuniqueid']]);_0x21814b[_0x96b1('0x8b')]='BLINDTRANSFER';_0x21814b[_0x96b1('0x92')]=!![];_0x21814b[_0x96b1('0x9c')]=_0x96b1('0xd7');_0x21814b[_0x96b1('0x9e')]=_0x1b62aa['extension'];_0x21814b[_0x96b1('0xa0')]=_0x1b62aa['transfereeuniqueid'];logger[_0x96b1('0x6c')](_0x96b1('0xd8'),_0x1b62aa['uniqueid'],_0x21814b[_0x96b1('0x4c')],_0x21814b[_0x96b1('0x5a')],_0x21814b[_0x96b1('0x9e')],_0x21814b[_0x96b1('0xa0')]);this[_0x96b1('0x20')]({'event':_0x96b1('0xd9'),'uniqueid':_0x1b62aa[_0x96b1('0xcf')],'context':_0x1b62aa['context'],'channel':_0x1b62aa[_0x96b1('0xda')]});}}}catch(_0x26a975){logger[_0x96b1('0x40')](_0x96b1('0xd6'),_0x1b62aa[_0x96b1('0x49')],util['inspect'](_0x26a975,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0x25')]=function(_0x36c87e){try{if(this[_0x96b1('0x62')](_0x36c87e)){logger[_0x96b1('0x46')](_0x96b1('0xdb'),_0x36c87e[_0x96b1('0x49')],util[_0x96b1('0x3b')](_0x36c87e,{'showHidden':![],'depth':null}));if(this[_0x96b1('0xd')][_0x36c87e[_0x96b1('0x49')]]){var _0x517e1c=_[_0x96b1('0x85')](this[_0x96b1('0xd')][_0x36c87e[_0x96b1('0x49')]]);if(!_['isNil'](_0x517e1c[_0x96b1('0x86')])){_0x517e1c[_0x96b1('0xdc')]=moment()[_0x96b1('0x4a')](_0x96b1('0x77'));logger[_0x96b1('0x6c')]('[%s][voiceQueueReport][musiconholdstart]\x20mohstarttime:%s',_0x36c87e['uniqueid'],_0x517e1c['mohstarttime']);}}}}catch(_0x70c798){logger[_0x96b1('0x40')](_0x96b1('0xdb'),_0x36c87e[_0x96b1('0x49')],util[_0x96b1('0x3b')](_0x70c798,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0xdd')]=function(_0xdcb776){try{if(this['isNotNull'](_0xdcb776)){logger[_0x96b1('0x46')](_0x96b1('0xde'),_0xdcb776['uniqueid'],util['inspect'](_0xdcb776,{'showHidden':![],'depth':null}));if(this[_0x96b1('0xd')][_0xdcb776[_0x96b1('0x49')]]){var _0x382fbd=_[_0x96b1('0x85')](this[_0x96b1('0xd')][_0xdcb776['uniqueid']]);if(!_[_0x96b1('0x34')](_0x382fbd[_0x96b1('0xdc')])){_0x382fbd[_0x96b1('0xdf')]+=moment()['milliseconds'](0x0)['diff'](_0x382fbd[_0x96b1('0xdc')],'seconds');logger[_0x96b1('0x6c')](_0x96b1('0xe0'),_0xdcb776['uniqueid'],_0x382fbd['mohtime']);delete _0x382fbd[_0x96b1('0xdc')];}}}}catch(_0x1dff3a){logger['error'](_0x96b1('0xde'),_0xdcb776[_0x96b1('0x49')],util['inspect'](_0x1dff3a,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x96b1('0x3e')][_0x96b1('0x23')]=function(_0x512656){try{if(this[_0x96b1('0x62')](_0x512656)){logger[_0x96b1('0x46')]('[%s][voiceQueueReport][newexten]\x20event:',_0x512656[_0x96b1('0x49')],util[_0x96b1('0x3b')](_0x512656,{'showHidden':![],'depth':null}));if(_0x512656[_0x96b1('0xe1')][_0x96b1('0x95')]()==='set'){_0x512656[_0x96b1('0xe2')]=_0x512656[_0x96b1('0xe3')]&&_0x512656[_0x96b1('0xe3')][_0x96b1('0x94')](_0x96b1('0xe4'))?_0x512656[_0x96b1('0xe3')]:(_0x512656[_0x96b1('0xe3')]||_0x512656['applicationdata'])[_0x96b1('0x95')]();if(_[_0x96b1('0x94')](_0x512656[_0x96b1('0xe2')][_0x96b1('0x95')](),'cdr(')){logger[_0x96b1('0x6c')](_0x96b1('0xe5'),_0x512656[_0x96b1('0x49')],_0x512656[_0x96b1('0xe1')],_0x512656[_0x96b1('0xe2')]);if(_[_0x96b1('0x63')](this[_0x96b1('0x33')][_0x512656[_0x96b1('0x49')]]))this['channels'][_0x512656[_0x96b1('0x49')]]={};var _0x5847ea=_0x512656[_0x96b1('0xe2')]['split']('=');var _0x5e88ce=_0x5847ea[0x0][_0x96b1('0x95')]()['match'](/cdr\((.*)\)/);if(_0x5e88ce)this[_0x96b1('0x33')][_0x512656[_0x96b1('0x49')]][_0x5e88ce[0x1]]=_0x5847ea[0x1];}}}}catch(_0x30f2bb){logger[_0x96b1('0x40')](_0x96b1('0xe6'),_0x512656[_0x96b1('0x49')],util[_0x96b1('0x3b')](_0x30f2bb,{'showHidden':![],'depth':null}));}};module[_0x96b1('0xe7')]=VoiceQueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x471e=['campaign','queue','CreateReportAgentPreview','createHistory'];(function(_0x49ca18,_0x5e6d05){var _0x145d54=function(_0x30b9be){while(--_0x30b9be){_0x49ca18['push'](_0x49ca18['shift']());}};_0x145d54(++_0x5e6d05);}(_0x471e,0xa7));var _0xe471=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x471e[_0x3dd15e];return _0x231fd0;};'use strict';var client=require('../client');exports[_0xe471('0x0')]=function(_0x3f7fe9){return function(){_0x3f7fe9[_0xe471('0x1')]=_0x3f7fe9[_0xe471('0x2')];return client['Request']('CreateReportAgentPreview',{'body':_0x3f7fe9,'log':_0xe471('0x3')});};};
\ No newline at end of file
+var _0x072f=['createHistory','queue','CreateReportAgentPreview','../client'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x072f,0x1db));var _0xf072=function(_0x11f790,_0x50fe56){_0x11f790=_0x11f790-0x0;var _0x2593a2=_0x072f[_0x11f790];return _0x2593a2;};'use strict';var client=require(_0xf072('0x0'));exports[_0xf072('0x1')]=function(_0x486dfa){return function(){_0x486dfa['campaign']=_0x486dfa[_0xf072('0x2')];return client['Request'](_0xf072('0x3'),{'body':_0x486dfa,'log':_0xf072('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c07=['create','Request','CreateAttachment','../client'];(function(_0x1cecd4,_0x14cedb){var _0x24526a=function(_0x385fd9){while(--_0x385fd9){_0x1cecd4['push'](_0x1cecd4['shift']());}};_0x24526a(++_0x14cedb);}(_0x0c07,0x8b));var _0x70c0=function(_0x41f02b,_0x2ca2f0){_0x41f02b=_0x41f02b-0x0;var _0x3411eb=_0x0c07[_0x41f02b];return _0x3411eb;};'use strict';var client=require(_0x70c0('0x0'));exports[_0x70c0('0x1')]=function(_0x38a546){return client[_0x70c0('0x2')](_0x70c0('0x3'),{'body':_0x38a546,'log':_0x70c0('0x3')});};
\ No newline at end of file
+var _0x4808=['../client','create','Request','CreateAttachment'];(function(_0x20b5f4,_0x4b9afb){var _0x17be69=function(_0xe86d70){while(--_0xe86d70){_0x20b5f4['push'](_0x20b5f4['shift']());}};_0x17be69(++_0x4b9afb);}(_0x4808,0x1cc));var _0x8480=function(_0x5d2803,_0xf375bd){_0x5d2803=_0x5d2803-0x0;var _0xdcad2c=_0x4808[_0x5d2803];return _0xdcad2c;};'use strict';var client=require(_0x8480('0x0'));exports[_0x8480('0x1')]=function(_0x119b86){return client[_0x8480('0x2')](_0x8480('0x3'),{'body':_0x119b86,'log':_0x8480('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-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(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0x5f2f,0x73));var _0xf5f2=function(_0x4bf591,_0x48b450){_0x4bf591=_0x4bf591-0x0;var _0x18f0df=_0x5f2f[_0x4bf591];return _0x18f0df;};'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
+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(_0x440e9b,_0x3d7a75){var _0x29b431=function(_0x8665f7){while(--_0x8665f7){_0x440e9b['push'](_0x440e9b['shift']());}};_0x29b431(++_0x3d7a75);}(_0x1261,0x144));var _0x1126=function(_0x62c958,_0x2bfdbc){_0x62c958=_0x62c958-0x0;var _0x57ec61=_0x1261[_0x62c958];return _0x57ec61;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25f1=['GetCmContact','../client','Request','CreateCmContact'];(function(_0x3ca3e8,_0xa6b3e){var _0x436fa6=function(_0x1c20f5){while(--_0x1c20f5){_0x3ca3e8['push'](_0x3ca3e8['shift']());}};_0x436fa6(++_0xa6b3e);}(_0x25f1,0x17d));var _0x125f=function(_0x5afeab,_0x536dcd){_0x5afeab=_0x5afeab-0x0;var _0x419cd3=_0x25f1[_0x5afeab];return _0x419cd3;};'use strict';var client=require(_0x125f('0x0'));exports['createContact']=function(_0x5c0e9c){return function(){return client[_0x125f('0x1')]('CreateCmContact',{'body':_0x5c0e9c,'log':_0x125f('0x2')});};};exports['getContacts']=function(_0x253d64){return function(){return client['Request']('GetCmContact',{'options':_0x253d64,'log':_0x125f('0x3')});};};
\ No newline at end of file
+var _0xddf6=['GetCmContact','createContact','CreateCmContact','getContacts'];(function(_0x5cc51f,_0x22c480){var _0x315a2f=function(_0x4f93bd){while(--_0x4f93bd){_0x5cc51f['push'](_0x5cc51f['shift']());}};_0x315a2f(++_0x22c480);}(_0xddf6,0x1a9));var _0x6ddf=function(_0x363f7c,_0x1eadd9){_0x363f7c=_0x363f7c-0x0;var _0x248bb2=_0xddf6[_0x363f7c];return _0x248bb2;};'use strict';var client=require('../client');exports[_0x6ddf('0x0')]=function(_0x221b8b){return function(){return client['Request'](_0x6ddf('0x1'),{'body':_0x221b8b,'log':_0x6ddf('0x1')});};};exports[_0x6ddf('0x2')]=function(_0xcdce2b){return function(){return client['Request'](_0x6ddf('0x3'),{'options':_0xcdce2b,'log':_0x6ddf('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8850=['GetContactDialer','scheduledat','GetContactDialerIvr','moveContactManagedDialer','campaign','queue','MoveContactManagedDialer','ContactId','CountReScheduled','countReScheduled','getContactPreview','GetCmHopperPreview','User','Agent','name','Queue','unlockContact','getContactRecallMe','GetContactRecallMe','voicePause','../client','lodash','getContacts','Request','GetCmHopper','CmContact','Contact','getCmHopper','updateContacts','UpdateCmHopper','format','YYYY-MM-DD\x20HH:mm:ss','rescheduleContact','ListId','VoiceQueueId','CampaignId','DestroyCmHopper','getContactDialer','priority','DESC','ASC'];(function(_0xc4a780,_0x52c91f){var _0x34a626=function(_0x87912a){while(--_0x87912a){_0xc4a780['push'](_0xc4a780['shift']());}};_0x34a626(++_0x52c91f);}(_0x8850,0x8f));var _0x0885=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x8850[_0x19950b];return _0x3c6b41;};'use strict';var client=require(_0x0885('0x0'));var moment=require('moment');var _=require(_0x0885('0x1'));exports[_0x0885('0x2')]=function(_0x1a73da,_0x2d3641){return function(){return client[_0x0885('0x3')](_0x0885('0x4'),{'options':{'where':{'VoiceQueueId':_0x1a73da},'include':[{'model':_0x0885('0x5'),'as':_0x0885('0x6')}],'limit':_0x2d3641,'raw':![]},'log':_0x0885('0x7')});};};exports[_0x0885('0x8')]=function(_0x1aa41d,_0x4e6e5e,_0x5daacb){return function(){return client[_0x0885('0x3')](_0x0885('0x9'),{'body':_0x1aa41d,'options':{'where':{'VoiceQueueId':_0x4e6e5e,'scheduledat':{'$lte':moment()[_0x0885('0xa')](_0x0885('0xb'))}},'limit':_0x5daacb},'log':'UpdateCmHopper'});};};exports[_0x0885('0xc')]=function(_0x43ab8d){return function(){return client['Request'](_0x0885('0x9'),{'body':_0x43ab8d,'options':{'where':{'ContactId':_0x43ab8d['ContactId'],'ListId':_0x43ab8d[_0x0885('0xd')],'VoiceQueueId':_0x43ab8d[_0x0885('0xe')],'CampaignId':_0x43ab8d[_0x0885('0xf')]}},'log':_0x0885('0xc')});};};exports['destroyContact']=function(_0x33ff03,_0x3d4238,_0x43a73c){return function(){return client[_0x0885('0x3')](_0x0885('0x10'),{'options':{'where':{'VoiceQueueId':_0x33ff03,'ListId':_0x3d4238,'ContactId':_0x43a73c}},'log':'DestroyCmHopper'});};};exports[_0x0885('0x11')]=function(_0x465a5a,_0x32ad8b,_0x46566b,_0x23a3ab){return function(){return client['Request']('GetContactDialer',{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x465a5a,'active':![],'scheduledat':{'$lte':moment()[_0x0885('0xa')]('YYYY-MM-DD\x20HH:mm:ss')},'$or':[{'UserId':null},{'UserId':{'$in':_0x32ad8b}}]},'order':[[_0x0885('0x12'),_0x0885('0x13')],['scheduledat',_0x23a3ab],['id',_0x0885('0x14')]],'raw':!![],'limit':_0x46566b},'log':_0x0885('0x15')});};};exports['getContactDialerIvr']=function(_0xfd9a94,_0x4c66a2,_0x570a2d){return function(){return client[_0x0885('0x3')](_0x0885('0x15'),{'body':{'active':!![]},'options':{'where':{'CampaignId':_0xfd9a94,'active':![],'scheduledat':{'$lte':moment()[_0x0885('0xa')]('YYYY-MM-DD\x20HH:mm:ss')}},'include':[{'model':'CmContact','as':_0x0885('0x6')}],'order':[[_0x0885('0x12'),_0x0885('0x13')],[_0x0885('0x16'),_0x570a2d],['id','ASC']],'raw':!![],'limit':_0x4c66a2},'log':_0x0885('0x17')});};};exports[_0x0885('0x18')]=function(_0xb0326d,_0x1ea501){return function(){_0xb0326d[_0x0885('0x19')]=_0xb0326d[_0x0885('0x1a')];return client[_0x0885('0x3')](_0x0885('0x1b'),{'body':_0xb0326d,'options':{'where':{'ContactId':_0xb0326d[_0x0885('0x1c')],'ListId':_0xb0326d[_0x0885('0xd')],'VoiceQueueId':_0xb0326d[_0x0885('0xe')],'CampaignId':_0xb0326d[_0x0885('0xf')],'active':_0x1ea501?undefined:!![]}},'log':_0x0885('0x1b')});};};exports['countReScheduled']=function(_0x323a20){return function(){return client[_0x0885('0x3')](_0x0885('0x1d'),{'options':{'where':{'VoiceQueueId':_0x323a20['id']?_0x323a20['id']||null:null}},'log':_0x0885('0x1e')});};};exports[_0x0885('0x1f')]=function(_0xd3ec7d){return function(){return client[_0x0885('0x3')](_0x0885('0x20'),{'options':{'where':{'id':_0xd3ec7d},'include':[{'model':_0x0885('0x5'),'as':_0x0885('0x6')},{'model':_0x0885('0x21'),'as':_0x0885('0x22'),'attributes':['id',_0x0885('0x23')]},{'model':'VoiceQueue','as':_0x0885('0x24'),'attributes':['id','name']}],'raw':!![]},'log':_0x0885('0x7')});};};exports[_0x0885('0x25')]=function(_0x522b4b,_0x43d9b7,_0x42fb9f){return function(){return client['Request'](_0x0885('0x9'),{'body':_0x522b4b,'options':{'where':{'id':_0x43d9b7},'limit':_0x42fb9f},'log':_0x0885('0x9')});};};exports[_0x0885('0x26')]=function(_0x584746,_0x4dff78){return function(){return client['Request'](_0x0885('0x27'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x584746,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()[_0x0885('0xa')](_0x0885('0xb'))},'UserId':{'$in':_0x4dff78}},'order':[[_0x0885('0x12'),'DESC'],[_0x0885('0x16'),_0x0885('0x13')],['id','ASC']],'include':[{'model':_0x0885('0x5'),'as':_0x0885('0x6')},{'model':_0x0885('0x21'),'as':_0x0885('0x22'),'attributes':['id','name',_0x0885('0x28')]}],'group':'db.CmHopper.UserId','raw':!![]},'log':_0x0885('0x15')});};};
\ No newline at end of file
+var _0x28e0=['format','priority','DESC','scheduledat','getContactDialerIvr','ASC','GetContactDialerIvr','moveContactManagedDialer','queue','MoveContactManagedDialer','countReScheduled','CountReScheduled','getContactPreview','User','Agent','name','VoiceQueue','Queue','unlockContact','GetContactRecallMe','db.CmHopper.UserId','lodash','getContacts','Request','GetCmHopper','CmContact','Contact','getCmHopper','UpdateCmHopper','YYYY-MM-DD\x20HH:mm:ss','rescheduleContact','ContactId','ListId','VoiceQueueId','CampaignId','getContactDialer','GetContactDialer'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x28e0,0x1d1));var _0x028e=function(_0x1d80f4,_0x3f0f89){_0x1d80f4=_0x1d80f4-0x0;var _0x539207=_0x28e0[_0x1d80f4];return _0x539207;};'use strict';var client=require('../client');var moment=require('moment');var _=require(_0x028e('0x0'));exports[_0x028e('0x1')]=function(_0x242d7d,_0x37ea32){return function(){return client[_0x028e('0x2')](_0x028e('0x3'),{'options':{'where':{'VoiceQueueId':_0x242d7d},'include':[{'model':_0x028e('0x4'),'as':_0x028e('0x5')}],'limit':_0x37ea32,'raw':![]},'log':_0x028e('0x6')});};};exports['updateContacts']=function(_0x35b399,_0x492320,_0x3b5801){return function(){return client[_0x028e('0x2')](_0x028e('0x7'),{'body':_0x35b399,'options':{'where':{'VoiceQueueId':_0x492320,'scheduledat':{'$lte':moment()['format'](_0x028e('0x8'))}},'limit':_0x3b5801},'log':_0x028e('0x7')});};};exports[_0x028e('0x9')]=function(_0x2117fb){return function(){return client[_0x028e('0x2')]('UpdateCmHopper',{'body':_0x2117fb,'options':{'where':{'ContactId':_0x2117fb[_0x028e('0xa')],'ListId':_0x2117fb[_0x028e('0xb')],'VoiceQueueId':_0x2117fb[_0x028e('0xc')],'CampaignId':_0x2117fb[_0x028e('0xd')]}},'log':_0x028e('0x9')});};};exports['destroyContact']=function(_0x446f9e,_0xdab51,_0x428a43){return function(){return client['Request']('DestroyCmHopper',{'options':{'where':{'VoiceQueueId':_0x446f9e,'ListId':_0xdab51,'ContactId':_0x428a43}},'log':'DestroyCmHopper'});};};exports[_0x028e('0xe')]=function(_0x730bd0,_0x5be6f3,_0x16a020,_0x447fd2){return function(){return client[_0x028e('0x2')](_0x028e('0xf'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x730bd0,'active':![],'scheduledat':{'$lte':moment()[_0x028e('0x10')](_0x028e('0x8'))},'$or':[{'UserId':null},{'UserId':{'$in':_0x5be6f3}}]},'order':[[_0x028e('0x11'),_0x028e('0x12')],[_0x028e('0x13'),_0x447fd2],['id','ASC']],'raw':!![],'limit':_0x16a020},'log':'GetContactDialer'});};};exports[_0x028e('0x14')]=function(_0x2722f0,_0x676b67,_0xd4e7ae){return function(){return client[_0x028e('0x2')](_0x028e('0xf'),{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x2722f0,'active':![],'scheduledat':{'$lte':moment()[_0x028e('0x10')](_0x028e('0x8'))}},'include':[{'model':_0x028e('0x4'),'as':_0x028e('0x5')}],'order':[[_0x028e('0x11'),_0x028e('0x12')],[_0x028e('0x13'),_0xd4e7ae],['id',_0x028e('0x15')]],'raw':!![],'limit':_0x676b67},'log':_0x028e('0x16')});};};exports[_0x028e('0x17')]=function(_0x52e049,_0x2a2d5c){return function(){_0x52e049['campaign']=_0x52e049[_0x028e('0x18')];return client[_0x028e('0x2')](_0x028e('0x19'),{'body':_0x52e049,'options':{'where':{'ContactId':_0x52e049[_0x028e('0xa')],'ListId':_0x52e049['ListId'],'VoiceQueueId':_0x52e049[_0x028e('0xc')],'CampaignId':_0x52e049[_0x028e('0xd')],'active':_0x2a2d5c?undefined:!![]}},'log':_0x028e('0x19')});};};exports[_0x028e('0x1a')]=function(_0x2eb731){return function(){return client[_0x028e('0x2')](_0x028e('0x1b'),{'options':{'where':{'VoiceQueueId':_0x2eb731['id']?_0x2eb731['id']||null:null}},'log':'countReScheduled'});};};exports[_0x028e('0x1c')]=function(_0x5aeef7){return function(){return client[_0x028e('0x2')]('GetCmHopperPreview',{'options':{'where':{'id':_0x5aeef7},'include':[{'model':_0x028e('0x4'),'as':'Contact'},{'model':_0x028e('0x1d'),'as':_0x028e('0x1e'),'attributes':['id',_0x028e('0x1f')]},{'model':_0x028e('0x20'),'as':_0x028e('0x21'),'attributes':['id',_0x028e('0x1f')]}],'raw':!![]},'log':_0x028e('0x6')});};};exports[_0x028e('0x22')]=function(_0x2f91d5,_0x3b3c98,_0x3dd381){return function(){return client[_0x028e('0x2')](_0x028e('0x7'),{'body':_0x2f91d5,'options':{'where':{'id':_0x3b3c98},'limit':_0x3dd381},'log':_0x028e('0x7')});};};exports['getContactRecallMe']=function(_0x29ceb2,_0x1e8f63){return function(){return client[_0x028e('0x2')](_0x028e('0x23'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x29ceb2,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()[_0x028e('0x10')](_0x028e('0x8'))},'UserId':{'$in':_0x1e8f63}},'order':[[_0x028e('0x11'),_0x028e('0x12')],[_0x028e('0x13'),_0x028e('0x12')],['id','ASC']],'include':[{'model':_0x028e('0x4'),'as':_0x028e('0x5')},{'model':_0x028e('0x1d'),'as':'Agent','attributes':['id',_0x028e('0x1f'),'voicePause']}],'group':_0x028e('0x24'),'raw':!![]},'log':_0x028e('0xf')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb94=['Contact','phone','CampaignId','../client','checkIsBlackList','Request','GetCmHopperBlack'];(function(_0x3c75be,_0x4fa9f5){var _0x3dae5e=function(_0x338943){while(--_0x338943){_0x3c75be['push'](_0x3c75be['shift']());}};_0x3dae5e(++_0x4fa9f5);}(_0xdb94,0xab));var _0x4db9=function(_0x1055ef,_0x493539){_0x1055ef=_0x1055ef-0x0;var _0x8b1e01=_0xdb94[_0x1055ef];return _0x8b1e01;};'use strict';var client=require(_0x4db9('0x0'));exports[_0x4db9('0x1')]=function(_0xd9669b){return function(){return client[_0x4db9('0x2')](_0x4db9('0x3'),{'options':{'where':{'VoiceQueueId':_0xd9669b['VoiceQueueId'],'phone':_0xd9669b[_0x4db9('0x4')][_0x4db9('0x5')]},'raw':![]},'log':'GetCmHopperBlack'});};};exports['checkIsBlackListIvr']=function(_0x209f80){return function(){return client['Request']('GetCmHopperBlack',{'options':{'where':{'CampaignId':_0x209f80[_0x4db9('0x6')],'phone':_0x209f80['Contact'][_0x4db9('0x5')]},'raw':![]},'log':'GetCmHopperBlackIvr'});};};
\ No newline at end of file
+var _0x69d3=['phone','GetCmHopperBlackIvr','../client','checkIsBlackList','GetCmHopperBlack','VoiceQueueId','Request','CampaignId','Contact'];(function(_0x4c12ec,_0x2e9103){var _0x3ae42c=function(_0x5a728f){while(--_0x5a728f){_0x4c12ec['push'](_0x4c12ec['shift']());}};_0x3ae42c(++_0x2e9103);}(_0x69d3,0xda));var _0x369d=function(_0x18df9b,_0x52fa72){_0x18df9b=_0x18df9b-0x0;var _0x824abc=_0x69d3[_0x18df9b];return _0x824abc;};'use strict';var client=require(_0x369d('0x0'));exports[_0x369d('0x1')]=function(_0xf1a301){return function(){return client['Request'](_0x369d('0x2'),{'options':{'where':{'VoiceQueueId':_0xf1a301[_0x369d('0x3')],'phone':_0xf1a301['Contact']['phone']},'raw':![]},'log':_0x369d('0x2')});};};exports['checkIsBlackListIvr']=function(_0x56c175){return function(){return client[_0x369d('0x4')](_0x369d('0x2'),{'options':{'where':{'CampaignId':_0x56c175[_0x369d('0x5')],'phone':_0x56c175[_0x369d('0x6')][_0x369d('0x7')]},'raw':![]},'log':_0x369d('0x8')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd958=['Request','CreateCmHopperFinal','../client','campaign','queue'];(function(_0x23e7c1,_0x35110c){var _0x1add43=function(_0x238918){while(--_0x238918){_0x23e7c1['push'](_0x23e7c1['shift']());}};_0x1add43(++_0x35110c);}(_0xd958,0x1d3));var _0x8d95=function(_0x4b73a2,_0x40b5fe){_0x4b73a2=_0x4b73a2-0x0;var _0x383c66=_0xd958[_0x4b73a2];return _0x383c66;};'use strict';var client=require(_0x8d95('0x0'));exports['createContact']=function(_0x5597fa){return function(){_0x5597fa[_0x8d95('0x1')]=_0x5597fa[_0x8d95('0x2')];return client[_0x8d95('0x3')](_0x8d95('0x4'),{'body':_0x5597fa,'log':'CreateCmHopperFinal'});};};
\ No newline at end of file
+var _0x602e=['CreateCmHopperFinal','campaign'];(function(_0x376b45,_0x5964fb){var _0x2341b3=function(_0x5a7f01){while(--_0x5a7f01){_0x376b45['push'](_0x376b45['shift']());}};_0x2341b3(++_0x5964fb);}(_0x602e,0xc7));var _0xe602=function(_0x23b85e,_0x39b209){_0x23b85e=_0x23b85e-0x0;var _0x329756=_0x602e[_0x23b85e];return _0x329756;};'use strict';var client=require('../client');exports['createContact']=function(_0x14ce5a){return function(){_0x14ce5a[_0xe602('0x0')]=_0x14ce5a['queue'];return client['Request']('CreateCmHopperFinal',{'body':_0x14ce5a,'log':_0xe602('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0607=['day','endOf','getCampaignHopperHistory','ivr','GetCampaignHopperHistory','createHistory','queue','CreateCmHopperHistory','avgHandleTime','Request','AvgHandleTime','subtract','format','YYYY-MM-DD\x20HH:mm:ss','GetCmHopperHistory','GetVoiceQueueHopperHistory','startOf'];(function(_0x3cf5a3,_0x5a4492){var _0x39ba2d=function(_0x3ed989){while(--_0x3ed989){_0x3cf5a3['push'](_0x3cf5a3['shift']());}};_0x39ba2d(++_0x5a4492);}(_0x0607,0xc0));var _0x7060=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x0607[_0x2641f9];return _0x585741;};'use strict';var client=require('../client');var moment=require('moment');exports[_0x7060('0x0')]=function(_0x56cb36){return function(){_0x56cb36['campaign']=_0x56cb36[_0x7060('0x1')];return client['Request'](_0x7060('0x2'),{'body':_0x56cb36,'log':'CreateCmHopperHistory'});};};exports[_0x7060('0x3')]=function(_0x199b85){return function(){return client[_0x7060('0x4')](_0x7060('0x5'),{'options':{'where':{'endtime':{'$between':[moment()[_0x7060('0x6')](_0x199b85,'minutes')[_0x7060('0x7')](_0x7060('0x8')),moment()[_0x7060('0x7')]('YYYY-MM-DD\x20HH:mm:ss')]}},'raw':![]},'log':_0x7060('0x9')});};};exports['getVoiceQueueHopperHistory']=function(_0x3dc0fe){return function(){return client[_0x7060('0x4')](_0x7060('0xa'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x7060('0xb')](_0x7060('0xc'))[_0x7060('0x7')]('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0x7060('0xd')]('day')[_0x7060('0x7')]('YYYY-MM-DD\x20HH:mm:ss')]},'campaigntype':_0x7060('0x1')},'raw':![]},'log':'GetVoiceQueueHopperHistory'});};};exports[_0x7060('0xe')]=function(_0x9a6592){return function(){return client[_0x7060('0x4')]('GetCampaignHopperHistory',{'options':{'where':{'createdAt':{'$between':[moment()['startOf']('day')[_0x7060('0x7')](_0x7060('0x8')),moment()[_0x7060('0xd')](_0x7060('0xc'))[_0x7060('0x7')](_0x7060('0x8'))]},'campaigntype':_0x7060('0xf')},'raw':![]},'log':_0x7060('0x10')});};};
\ No newline at end of file
+var _0xfc5b=['minutes','format','YYYY-MM-DD\x20HH:mm:ss','GetCmHopperHistory','getVoiceQueueHopperHistory','GetVoiceQueueHopperHistory','startOf','day','endOf','getCampaignHopperHistory','GetCampaignHopperHistory','../client','createHistory','campaign','queue','CreateCmHopperHistory','Request'];(function(_0x7c5834,_0xa96cfb){var _0x40becf=function(_0x579649){while(--_0x579649){_0x7c5834['push'](_0x7c5834['shift']());}};_0x40becf(++_0xa96cfb);}(_0xfc5b,0x12c));var _0xbfc5=function(_0x5040e3,_0x444f7f){_0x5040e3=_0x5040e3-0x0;var _0x7620=_0xfc5b[_0x5040e3];return _0x7620;};'use strict';var client=require(_0xbfc5('0x0'));var moment=require('moment');exports[_0xbfc5('0x1')]=function(_0x49843d){return function(){_0x49843d[_0xbfc5('0x2')]=_0x49843d[_0xbfc5('0x3')];return client['Request'](_0xbfc5('0x4'),{'body':_0x49843d,'log':_0xbfc5('0x4')});};};exports['avgHandleTime']=function(_0x32270b){return function(){return client[_0xbfc5('0x5')]('AvgHandleTime',{'options':{'where':{'endtime':{'$between':[moment()['subtract'](_0x32270b,_0xbfc5('0x6'))[_0xbfc5('0x7')](_0xbfc5('0x8')),moment()[_0xbfc5('0x7')](_0xbfc5('0x8'))]}},'raw':![]},'log':_0xbfc5('0x9')});};};exports[_0xbfc5('0xa')]=function(_0x5283d5){return function(){return client[_0xbfc5('0x5')](_0xbfc5('0xb'),{'options':{'where':{'createdAt':{'$between':[moment()[_0xbfc5('0xc')](_0xbfc5('0xd'))[_0xbfc5('0x7')](_0xbfc5('0x8')),moment()[_0xbfc5('0xe')](_0xbfc5('0xd'))[_0xbfc5('0x7')](_0xbfc5('0x8'))]},'campaigntype':_0xbfc5('0x3')},'raw':![]},'log':_0xbfc5('0xb')});};};exports[_0xbfc5('0xf')]=function(_0x18a700){return function(){return client[_0xbfc5('0x5')](_0xbfc5('0x10'),{'options':{'where':{'createdAt':{'$between':[moment()[_0xbfc5('0xc')](_0xbfc5('0xd'))[_0xbfc5('0x7')]('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0xbfc5('0xe')](_0xbfc5('0xd'))[_0xbfc5('0x7')](_0xbfc5('0x8'))]},'campaigntype':'ivr'},'raw':![]},'log':'GetCampaignHopperHistory'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81cb=['tech','TrunkId','ListId','key','Trunk','callerid','active','getFaxAccount','notify','NotifyFaxAccount','../client','getFaxAccounts','GetFaxAccount','name','ecm','headerinfo','localstationid','minrate','modem','t38timeout'];(function(_0x97a80f,_0x3d70d7){var _0x534071=function(_0xd8966e){while(--_0xd8966e){_0x97a80f['push'](_0x97a80f['shift']());}};_0x534071(++_0x3d70d7);}(_0x81cb,0xaa));var _0xb81c=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x81cb[_0x14add3];return _0x4a174f;};'use strict';var client=require(_0xb81c('0x0'));exports[_0xb81c('0x1')]=function(){return function(){return client['Request'](_0xb81c('0x2'),{'options':{'raw':![],'attributes':['id',_0xb81c('0x3'),'description',_0xb81c('0x4'),_0xb81c('0x5'),_0xb81c('0x6'),_0xb81c('0x7'),'maxrate',_0xb81c('0x8'),'gateway','faxdetect',_0xb81c('0x9'),_0xb81c('0xa'),_0xb81c('0xb'),_0xb81c('0xc'),_0xb81c('0xd')],'include':[{'model':_0xb81c('0xe'),'as':_0xb81c('0xe'),'attributes':['id',_0xb81c('0x3'),_0xb81c('0xf'),_0xb81c('0x10')]}]},'log':_0xb81c('0x11')});};};exports[_0xb81c('0x12')]=function(_0x44dfb2,_0x1b2a92){return client['Request'](_0xb81c('0x13'),{'account':{'id':_0x44dfb2},'body':_0x1b2a92,'log':_0xb81c('0x13')});};
\ No newline at end of file
+var _0x6a58=['Request','NotifyFaxAccount','../client','getFaxAccounts','GetFaxAccount','description','headerinfo','localstationid','minrate','maxrate','modem','faxdetect','t38timeout','TrunkId','ListId','key','Trunk','name','callerid','active','getFaxAccount','notify'];(function(_0x303ad2,_0x168464){var _0x26fa05=function(_0x22f47f){while(--_0x22f47f){_0x303ad2['push'](_0x303ad2['shift']());}};_0x26fa05(++_0x168464);}(_0x6a58,0x120));var _0x86a5=function(_0xbc346f,_0x3db5c0){_0xbc346f=_0xbc346f-0x0;var _0x9f9260=_0x6a58[_0xbc346f];return _0x9f9260;};'use strict';var client=require(_0x86a5('0x0'));exports[_0x86a5('0x1')]=function(){return function(){return client['Request'](_0x86a5('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x86a5('0x3'),'ecm',_0x86a5('0x4'),_0x86a5('0x5'),_0x86a5('0x6'),_0x86a5('0x7'),_0x86a5('0x8'),'gateway',_0x86a5('0x9'),_0x86a5('0xa'),'tech',_0x86a5('0xb'),_0x86a5('0xc'),_0x86a5('0xd')],'include':[{'model':_0x86a5('0xe'),'as':_0x86a5('0xe'),'attributes':['id',_0x86a5('0xf'),_0x86a5('0x10'),_0x86a5('0x11')]}]},'log':_0x86a5('0x12')});};};exports[_0x86a5('0x13')]=function(_0x4ab550,_0x50d7e6){return client[_0x86a5('0x14')]('NotifyFaxAccount',{'account':{'id':_0x4ab550},'body':_0x50d7e6,'log':_0x86a5('0x15')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf03d=['update','Request','UpdateFaxMessage'];(function(_0x2a7b6c,_0x2372cf){var _0x37fdfb=function(_0x2fe246){while(--_0x2fe246){_0x2a7b6c['push'](_0x2a7b6c['shift']());}};_0x37fdfb(++_0x2372cf);}(_0xf03d,0x117));var _0xdf03=function(_0x3fb0ea,_0x2e6d8b){_0x3fb0ea=_0x3fb0ea-0x0;var _0x4aef69=_0xf03d[_0x3fb0ea];return _0x4aef69;};'use strict';var client=require('../client');exports[_0xdf03('0x0')]=function(_0x34ba84,_0x58aa93){return client[_0xdf03('0x1')](_0xdf03('0x2'),{'body':_0x58aa93,'options':{'where':{'AttachmentId':_0x34ba84}},'log':_0xdf03('0x2')});};
\ No newline at end of file
+var _0x64ac=['update','Request','UpdateFaxMessage','../client'];(function(_0x51b5c7,_0x57370d){var _0x34a58f=function(_0x125752){while(--_0x125752){_0x51b5c7['push'](_0x51b5c7['shift']());}};_0x34a58f(++_0x57370d);}(_0x64ac,0x83));var _0xc64a=function(_0x180c95,_0x2b08d7){_0x180c95=_0x180c95-0x0;var _0x5d0d4b=_0x64ac[_0x180c95];return _0x5d0d4b;};'use strict';var client=require(_0xc64a('0x0'));exports[_0xc64a('0x1')]=function(_0x365706,_0x2e3f66){return client[_0xc64a('0x2')](_0xc64a('0x3'),{'body':_0x2e3f66,'options':{'where':{'AttachmentId':_0x365706}},'log':'UpdateFaxMessage'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdacd=['nameField','customField','GetDeskAccount','../../client','description','username','remoteUri','authType','serverUrl','DeskConfiguration','Configurations','content','Variable','DeskField','Descriptions','type','key','keyContent','variableName','name','Fields','idField'];(function(_0x3fe143,_0x13bcf4){var _0x59f8e8=function(_0x1e8594){while(--_0x1e8594){_0x3fe143['push'](_0x3fe143['shift']());}};_0x59f8e8(++_0x13bcf4);}(_0xdacd,0x1bb));var _0xddac=function(_0x2af930,_0x4c5814){_0x2af930=_0x2af930-0x0;var _0x2b5694=_0xdacd[_0x2af930];return _0x2b5694;};'use strict';var client=require(_0xddac('0x0'));exports['getDeskAccounts']=function(){return function(_0x33d0b6){return client['Request']('GetDeskAccount',{'options':{'raw':![],'attributes':['id','name',_0xddac('0x1'),_0xddac('0x2'),'password',_0xddac('0x3'),_0xddac('0x4'),'type',_0xddac('0x5')],'include':[{'model':_0xddac('0x6'),'as':_0xddac('0x7'),'attributes':['id','name'],'include':[{'model':'DeskField','as':'Subjects','attributes':['id','type',_0xddac('0x8'),'variableName'],'include':[{'model':_0xddac('0x9'),'as':_0xddac('0x9'),'attributes':['id','name']}]},{'model':_0xddac('0xa'),'as':_0xddac('0xb'),'attributes':['id',_0xddac('0xc'),_0xddac('0x8'),_0xddac('0xd'),'keyType',_0xddac('0xe'),_0xddac('0xf')],'include':[{'model':_0xddac('0x9'),'as':'Variable','attributes':['id',_0xddac('0x10')]}]},{'model':'DeskField','as':_0xddac('0x11'),'attributes':['id',_0xddac('0xc'),'content',_0xddac('0x12'),_0xddac('0x13'),_0xddac('0x14'),_0xddac('0xf')],'include':[{'model':_0xddac('0x9'),'as':_0xddac('0x9'),'attributes':['id',_0xddac('0x10')]}]},{'model':'Tag','as':'Tags','attributes':['id',_0xddac('0x10')]}]}]},'log':_0xddac('0x15')});};};
\ No newline at end of file
+var _0xac27=['key','Fields','idField','nameField','customField','variableName','Tags','GetDeskAccount','../../client','getDeskAccounts','Request','name','description','username','password','remoteUri','authType','serverUrl','DeskConfiguration','type','content','Variable','DeskField'];(function(_0x1220fc,_0xea6ff4){var _0x1fd0b8=function(_0x3b39b9){while(--_0x3b39b9){_0x1220fc['push'](_0x1220fc['shift']());}};_0x1fd0b8(++_0xea6ff4);}(_0xac27,0x161));var _0x7ac2=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0xac27[_0x17d9e3];return _0x14192d;};'use strict';var client=require(_0x7ac2('0x0'));exports[_0x7ac2('0x1')]=function(){return function(_0x234f72){return client[_0x7ac2('0x2')]('GetDeskAccount',{'options':{'raw':![],'attributes':['id',_0x7ac2('0x3'),_0x7ac2('0x4'),_0x7ac2('0x5'),_0x7ac2('0x6'),_0x7ac2('0x7'),_0x7ac2('0x8'),'type',_0x7ac2('0x9')],'include':[{'model':_0x7ac2('0xa'),'as':'Configurations','attributes':['id',_0x7ac2('0x3')],'include':[{'model':'DeskField','as':'Subjects','attributes':['id',_0x7ac2('0xb'),_0x7ac2('0xc'),'variableName'],'include':[{'model':_0x7ac2('0xd'),'as':'Variable','attributes':['id',_0x7ac2('0x3')]}]},{'model':_0x7ac2('0xe'),'as':'Descriptions','attributes':['id',_0x7ac2('0xb'),'content',_0x7ac2('0xf'),'keyType','keyContent','variableName'],'include':[{'model':_0x7ac2('0xd'),'as':_0x7ac2('0xd'),'attributes':['id',_0x7ac2('0x3')]}]},{'model':_0x7ac2('0xe'),'as':_0x7ac2('0x10'),'attributes':['id',_0x7ac2('0xb'),_0x7ac2('0xc'),_0x7ac2('0x11'),_0x7ac2('0x12'),_0x7ac2('0x13'),_0x7ac2('0x14')],'include':[{'model':_0x7ac2('0xd'),'as':_0x7ac2('0xd'),'attributes':['id','name']}]},{'model':'Tag','as':_0x7ac2('0x15'),'attributes':['id',_0x7ac2('0x3')]}]}]},'log':_0x7ac2('0x16')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa11b=['idField','nameField','customField','../../client','getDynamics365Accounts','Request','GetDynamics365Account','name','username','password','clientSecret','serverUrl','description','Dynamics365Configuration','ticketType','Dynamics365Field','Subjects','type','content','variableName','Variable','Descriptions','key','keyType','Fields'];(function(_0x288325,_0x26e4ff){var _0x3b9fd7=function(_0x1f2816){while(--_0x1f2816){_0x288325['push'](_0x288325['shift']());}};_0x3b9fd7(++_0x26e4ff);}(_0xa11b,0x12f));var _0xba11=function(_0x5b510b,_0x4573fc){_0x5b510b=_0x5b510b-0x0;var _0x26ba26=_0xa11b[_0x5b510b];return _0x26ba26;};'use strict';var client=require(_0xba11('0x0'));exports[_0xba11('0x1')]=function(){return function(_0x54e0c5){return client[_0xba11('0x2')](_0xba11('0x3'),{'options':{'raw':![],'attributes':['id',_0xba11('0x4'),_0xba11('0x5'),_0xba11('0x6'),'remoteUri','tenantId','clientId',_0xba11('0x7'),_0xba11('0x8'),_0xba11('0x9')],'include':[{'model':_0xba11('0xa'),'as':'Configurations','attributes':['id','name',_0xba11('0xb')],'include':[{'model':_0xba11('0xc'),'as':_0xba11('0xd'),'attributes':['id',_0xba11('0xe'),_0xba11('0xf'),_0xba11('0x10')],'include':[{'model':_0xba11('0x11'),'as':_0xba11('0x11'),'attributes':['id',_0xba11('0x4')]}]},{'model':_0xba11('0xc'),'as':_0xba11('0x12'),'attributes':['id','type',_0xba11('0xf'),_0xba11('0x13'),_0xba11('0x14'),'keyContent',_0xba11('0x10')],'include':[{'model':_0xba11('0x11'),'as':_0xba11('0x11'),'attributes':['id',_0xba11('0x4')]}]},{'model':_0xba11('0xc'),'as':_0xba11('0x15'),'attributes':['id',_0xba11('0xe'),_0xba11('0xf'),_0xba11('0x16'),_0xba11('0x17'),_0xba11('0x18'),_0xba11('0x10')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0xba11('0x4')]}]}]}]},'log':'GetDynamics365Account'});};};
\ No newline at end of file
+var _0x5aa3=['clientId','serverUrl','description','Dynamics365Configuration','Configurations','ticketType','Dynamics365Field','Subjects','content','variableName','Variable','Descriptions','type','key','keyContent','Fields','idField','nameField','../../client','getDynamics365Accounts','Request','GetDynamics365Account','name','remoteUri','tenantId'];(function(_0x79b6f6,_0x5f15c7){var _0x4d19e8=function(_0x4359f9){while(--_0x4359f9){_0x79b6f6['push'](_0x79b6f6['shift']());}};_0x4d19e8(++_0x5f15c7);}(_0x5aa3,0x1d4));var _0x35aa=function(_0x5f3f88,_0x562baf){_0x5f3f88=_0x5f3f88-0x0;var _0xd08119=_0x5aa3[_0x5f3f88];return _0xd08119;};'use strict';var client=require(_0x35aa('0x0'));exports[_0x35aa('0x1')]=function(){return function(_0x1243de){return client[_0x35aa('0x2')](_0x35aa('0x3'),{'options':{'raw':![],'attributes':['id',_0x35aa('0x4'),'username','password',_0x35aa('0x5'),_0x35aa('0x6'),_0x35aa('0x7'),'clientSecret',_0x35aa('0x8'),_0x35aa('0x9')],'include':[{'model':_0x35aa('0xa'),'as':_0x35aa('0xb'),'attributes':['id','name',_0x35aa('0xc')],'include':[{'model':_0x35aa('0xd'),'as':_0x35aa('0xe'),'attributes':['id','type',_0x35aa('0xf'),_0x35aa('0x10')],'include':[{'model':_0x35aa('0x11'),'as':'Variable','attributes':['id',_0x35aa('0x4')]}]},{'model':'Dynamics365Field','as':_0x35aa('0x12'),'attributes':['id',_0x35aa('0x13'),_0x35aa('0xf'),_0x35aa('0x14'),'keyType',_0x35aa('0x15'),'variableName'],'include':[{'model':_0x35aa('0x11'),'as':'Variable','attributes':['id',_0x35aa('0x4')]}]},{'model':_0x35aa('0xd'),'as':_0x35aa('0x16'),'attributes':['id',_0x35aa('0x13'),_0x35aa('0xf'),_0x35aa('0x17'),_0x35aa('0x18'),'customField',_0x35aa('0x10')],'include':[{'model':_0x35aa('0x11'),'as':'Variable','attributes':['id',_0x35aa('0x4')]}]}]}]},'log':_0x35aa('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdb7=['idField','nameField','../../client','getFreshdeskAccounts','Request','GetFreshdeskAccount','name','username','apiKey','remoteUri','FreshdeskConfiguration','Tag','type','content','Variable','FreshdeskField','Descriptions','key','keyType','Fields'];(function(_0x55b880,_0x9e30d6){var _0x3c1c0e=function(_0x1d7fa6){while(--_0x1d7fa6){_0x55b880['push'](_0x55b880['shift']());}};_0x3c1c0e(++_0x9e30d6);}(_0xbdb7,0x12e));var _0x7bdb=function(_0x7026aa,_0x174e96){_0x7026aa=_0x7026aa-0x0;var _0x35a685=_0xbdb7[_0x7026aa];return _0x35a685;};'use strict';var client=require(_0x7bdb('0x0'));exports[_0x7bdb('0x1')]=function(){return function(_0x44467d){return client[_0x7bdb('0x2')](_0x7bdb('0x3'),{'options':{'raw':![],'attributes':['id',_0x7bdb('0x4'),_0x7bdb('0x5'),_0x7bdb('0x6'),_0x7bdb('0x7'),'serverUrl'],'include':[{'model':_0x7bdb('0x8'),'as':'Configurations','attributes':['id','name'],'include':[{'model':_0x7bdb('0x9'),'attributes':['id',_0x7bdb('0x4')]},{'model':'FreshdeskField','as':'Subjects','attributes':['id',_0x7bdb('0xa'),_0x7bdb('0xb'),'variableName'],'include':[{'model':'Variable','as':_0x7bdb('0xc'),'attributes':['id',_0x7bdb('0x4')]}]},{'model':_0x7bdb('0xd'),'as':_0x7bdb('0xe'),'attributes':['id',_0x7bdb('0xa'),_0x7bdb('0xb'),_0x7bdb('0xf'),_0x7bdb('0x10'),'keyContent','variableName'],'include':[{'model':'Variable','as':_0x7bdb('0xc'),'attributes':['id',_0x7bdb('0x4')]}]},{'model':'FreshdeskField','as':_0x7bdb('0x11'),'attributes':['id','type','content',_0x7bdb('0x12'),_0x7bdb('0x13'),'customField','variableName'],'include':[{'model':'Variable','as':_0x7bdb('0xc'),'attributes':['id',_0x7bdb('0x4')]}]}]}]},'log':_0x7bdb('0x3')});};};
\ No newline at end of file
+var _0xaa2d=['nameField','customField','variableName','GetFreshdeskAccount','getFreshdeskAccounts','name','username','apiKey','serverUrl','FreshdeskConfiguration','Configurations','Subjects','type','content','Variable','FreshdeskField','Descriptions','keyType','Fields','idField'];(function(_0x221fd1,_0x12be62){var _0x3e158e=function(_0x2a7c71){while(--_0x2a7c71){_0x221fd1['push'](_0x221fd1['shift']());}};_0x3e158e(++_0x12be62);}(_0xaa2d,0x11c));var _0xdaa2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xaa2d[_0x3dd15e];return _0x231fd0;};'use strict';var client=require('../../client');exports[_0xdaa2('0x0')]=function(){return function(_0x488321){return client['Request']('GetFreshdeskAccount',{'options':{'raw':![],'attributes':['id',_0xdaa2('0x1'),_0xdaa2('0x2'),_0xdaa2('0x3'),'remoteUri',_0xdaa2('0x4')],'include':[{'model':_0xdaa2('0x5'),'as':_0xdaa2('0x6'),'attributes':['id','name'],'include':[{'model':'Tag','attributes':['id',_0xdaa2('0x1')]},{'model':'FreshdeskField','as':_0xdaa2('0x7'),'attributes':['id',_0xdaa2('0x8'),_0xdaa2('0x9'),'variableName'],'include':[{'model':_0xdaa2('0xa'),'as':_0xdaa2('0xa'),'attributes':['id',_0xdaa2('0x1')]}]},{'model':_0xdaa2('0xb'),'as':_0xdaa2('0xc'),'attributes':['id',_0xdaa2('0x8'),'content','key',_0xdaa2('0xd'),'keyContent','variableName'],'include':[{'model':'Variable','as':_0xdaa2('0xa'),'attributes':['id',_0xdaa2('0x1')]}]},{'model':'FreshdeskField','as':_0xdaa2('0xe'),'attributes':['id',_0xdaa2('0x8'),_0xdaa2('0x9'),_0xdaa2('0xf'),_0xdaa2('0x10'),_0xdaa2('0x11'),_0xdaa2('0x12')],'include':[{'model':_0xdaa2('0xa'),'as':_0xdaa2('0xa'),'attributes':['id',_0xdaa2('0x1')]}]}]}]},'log':_0xdaa2('0x13')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc949=['FreshsalesConfiguration','Configurations','FreshsalesField','type','content','variableName','Variable','Descriptions','keyType','keyContent','GetFreshsalesccount','../../client','Request','GetFreshsalesAccount','name','apiKey','remoteUri'];(function(_0x55ff3e,_0x41077f){var _0x2709eb=function(_0x45563a){while(--_0x45563a){_0x55ff3e['push'](_0x55ff3e['shift']());}};_0x2709eb(++_0x41077f);}(_0xc949,0x181));var _0x9c94=function(_0xa6cc5c,_0x239c99){_0xa6cc5c=_0xa6cc5c-0x0;var _0x44803d=_0xc949[_0xa6cc5c];return _0x44803d;};'use strict';var client=require(_0x9c94('0x0'));exports['getFreshsalesAccounts']=function(){return function(_0x45d993){return client[_0x9c94('0x1')](_0x9c94('0x2'),{'options':{'raw':![],'attributes':['id',_0x9c94('0x3'),'username',_0x9c94('0x4'),_0x9c94('0x5'),'serverUrl'],'include':[{'model':_0x9c94('0x6'),'as':_0x9c94('0x7'),'attributes':['id',_0x9c94('0x3')],'include':[{'model':_0x9c94('0x8'),'as':'Subjects','attributes':['id',_0x9c94('0x9'),_0x9c94('0xa'),_0x9c94('0xb')],'include':[{'model':_0x9c94('0xc'),'as':_0x9c94('0xc'),'attributes':['id',_0x9c94('0x3')]}]},{'model':_0x9c94('0x8'),'as':_0x9c94('0xd'),'attributes':['id',_0x9c94('0x9'),_0x9c94('0xa'),'key',_0x9c94('0xe'),_0x9c94('0xf'),_0x9c94('0xb')],'include':[{'model':_0x9c94('0xc'),'as':_0x9c94('0xc'),'attributes':['id',_0x9c94('0x3')]}]}]}]},'log':_0x9c94('0x10')});};};
\ No newline at end of file
+var _0x71ab=['Variable','Descriptions','keyType','keyContent','GetFreshsalesccount','getFreshsalesAccounts','Request','name','username','apiKey','remoteUri','serverUrl','FreshsalesConfiguration','Configurations','FreshsalesField','Subjects','type','content','variableName'];(function(_0x37592d,_0x250e40){var _0xe3face=function(_0x53bfc2){while(--_0x53bfc2){_0x37592d['push'](_0x37592d['shift']());}};_0xe3face(++_0x250e40);}(_0x71ab,0x64));var _0xb71a=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x71ab[_0x2f5ac5];return _0x37c9a8;};'use strict';var client=require('../../client');exports[_0xb71a('0x0')]=function(){return function(_0x4d5607){return client[_0xb71a('0x1')]('GetFreshsalesAccount',{'options':{'raw':![],'attributes':['id',_0xb71a('0x2'),_0xb71a('0x3'),_0xb71a('0x4'),_0xb71a('0x5'),_0xb71a('0x6')],'include':[{'model':_0xb71a('0x7'),'as':_0xb71a('0x8'),'attributes':['id',_0xb71a('0x2')],'include':[{'model':_0xb71a('0x9'),'as':_0xb71a('0xa'),'attributes':['id',_0xb71a('0xb'),_0xb71a('0xc'),_0xb71a('0xd')],'include':[{'model':_0xb71a('0xe'),'as':_0xb71a('0xe'),'attributes':['id',_0xb71a('0x2')]}]},{'model':_0xb71a('0x9'),'as':_0xb71a('0xf'),'attributes':['id','type',_0xb71a('0xc'),'key',_0xb71a('0x10'),_0xb71a('0x11'),_0xb71a('0xd')],'include':[{'model':'Variable','as':_0xb71a('0xe'),'attributes':['id','name']}]}]}]},'log':_0xb71a('0x12')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c07=['getSalesforceAccounts','Request','GetSalesforceAccount','name','username','password','remoteUri','clientId','clientSecret','securityToken','type','moduleSearch','moduleCreate','ticketType','additionalSearchAccount','additionalSearchLead','Subjects','Variable','SalesforceField','../../client'];(function(_0x295df4,_0xb46edd){var _0x2ffb1c=function(_0x8edca6){while(--_0x8edca6){_0x295df4['push'](_0x295df4['shift']());}};_0x2ffb1c(++_0xb46edd);}(_0x0c07,0x8b));var _0x70c0=function(_0x326aa7,_0x12dceb){_0x326aa7=_0x326aa7-0x0;var _0x3955b2=_0x0c07[_0x326aa7];return _0x3955b2;};'use strict';var client=require(_0x70c0('0x0'));exports[_0x70c0('0x1')]=function(){return function(_0x38a546){return client[_0x70c0('0x2')](_0x70c0('0x3'),{'options':{'raw':![],'attributes':['id',_0x70c0('0x4'),_0x70c0('0x5'),_0x70c0('0x6'),_0x70c0('0x7'),_0x70c0('0x8'),_0x70c0('0x9'),_0x70c0('0xa'),'serverUrl',_0x70c0('0xb')],'include':[{'model':'SalesforceConfiguration','as':'Configurations','attributes':['id',_0x70c0('0x4'),_0x70c0('0xc'),_0x70c0('0xd'),_0x70c0('0xe'),'leadId',_0x70c0('0xf'),'additionalSearchContact',_0x70c0('0x10')],'include':[{'model':'SalesforceField','as':_0x70c0('0x11'),'include':[{'model':'Variable','as':_0x70c0('0x12'),'attributes':['id',_0x70c0('0x4')]}]},{'model':'SalesforceField','as':'Descriptions','include':[{'model':'Variable','as':_0x70c0('0x12'),'attributes':['id',_0x70c0('0x4')]}]},{'model':_0x70c0('0x13'),'as':'Fields','include':[{'model':_0x70c0('0x12'),'as':'Variable','attributes':['id',_0x70c0('0x4')]}]}]}]},'log':_0x70c0('0x3')});};};
\ No newline at end of file
+var _0x0e5a=['leadId','additionalSearchAccount','additionalSearchContact','additionalSearchLead','Subjects','Variable','SalesforceField','../../client','getSalesforceAccounts','GetSalesforceAccount','name','username','password','clientId','clientSecret','securityToken','SalesforceConfiguration','Configurations','moduleSearch','moduleCreate','ticketType'];(function(_0x1d89d1,_0x6f434d){var _0x53a5cd=function(_0x3e7db4){while(--_0x3e7db4){_0x1d89d1['push'](_0x1d89d1['shift']());}};_0x53a5cd(++_0x6f434d);}(_0x0e5a,0x70));var _0xa0e5=function(_0xe1b92,_0x3694cd){_0xe1b92=_0xe1b92-0x0;var _0xa1a217=_0x0e5a[_0xe1b92];return _0xa1a217;};'use strict';var client=require(_0xa0e5('0x0'));exports[_0xa0e5('0x1')]=function(){return function(_0x497505){return client['Request'](_0xa0e5('0x2'),{'options':{'raw':![],'attributes':['id',_0xa0e5('0x3'),_0xa0e5('0x4'),_0xa0e5('0x5'),'remoteUri',_0xa0e5('0x6'),_0xa0e5('0x7'),_0xa0e5('0x8'),'serverUrl','type'],'include':[{'model':_0xa0e5('0x9'),'as':_0xa0e5('0xa'),'attributes':['id',_0xa0e5('0x3'),_0xa0e5('0xb'),_0xa0e5('0xc'),_0xa0e5('0xd'),_0xa0e5('0xe'),_0xa0e5('0xf'),_0xa0e5('0x10'),_0xa0e5('0x11')],'include':[{'model':'SalesforceField','as':_0xa0e5('0x12'),'include':[{'model':_0xa0e5('0x13'),'as':_0xa0e5('0x13'),'attributes':['id','name']}]},{'model':'SalesforceField','as':'Descriptions','include':[{'model':_0xa0e5('0x13'),'as':_0xa0e5('0x13'),'attributes':['id',_0xa0e5('0x3')]}]},{'model':_0xa0e5('0x14'),'as':'Fields','include':[{'model':_0xa0e5('0x13'),'as':'Variable','attributes':['id',_0xa0e5('0x3')]}]}]}]},'log':_0xa0e5('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57ca=['type','variableName','Variable','Descriptions','content','key','keyContent','Fields','nameField','customField','GetServicenowkAccount','getServicenowAccounts','GetServicenowAccount','name','description','username','password','remoteUri','serverUrl','ServicenowConfiguration','Configurations','ServicenowField','Subjects'];(function(_0x31e5cb,_0x2f5adf){var _0x4170df=function(_0x31c53e){while(--_0x31c53e){_0x31e5cb['push'](_0x31e5cb['shift']());}};_0x4170df(++_0x2f5adf);}(_0x57ca,0x108));var _0xa57c=function(_0x35982f,_0x39471a){_0x35982f=_0x35982f-0x0;var _0x2daba9=_0x57ca[_0x35982f];return _0x2daba9;};'use strict';var client=require('../../client');exports[_0xa57c('0x0')]=function(){return function(_0x4ad696){return client['Request'](_0xa57c('0x1'),{'options':{'raw':![],'attributes':['id',_0xa57c('0x2'),_0xa57c('0x3'),_0xa57c('0x4'),_0xa57c('0x5'),'email',_0xa57c('0x6'),_0xa57c('0x7')],'include':[{'model':_0xa57c('0x8'),'as':_0xa57c('0x9'),'attributes':['id',_0xa57c('0x2')],'include':[{'model':_0xa57c('0xa'),'as':_0xa57c('0xb'),'attributes':['id',_0xa57c('0xc'),'content',_0xa57c('0xd')],'include':[{'model':'Variable','as':_0xa57c('0xe'),'attributes':['id',_0xa57c('0x2')]}]},{'model':'ServicenowField','as':_0xa57c('0xf'),'attributes':['id','type',_0xa57c('0x10'),_0xa57c('0x11'),'keyType',_0xa57c('0x12'),'variableName'],'include':[{'model':_0xa57c('0xe'),'as':_0xa57c('0xe'),'attributes':['id',_0xa57c('0x2')]}]},{'model':_0xa57c('0xa'),'as':_0xa57c('0x13'),'attributes':['id','type',_0xa57c('0x10'),'idField',_0xa57c('0x14'),_0xa57c('0x15'),_0xa57c('0xd')],'include':[{'model':_0xa57c('0xe'),'as':_0xa57c('0xe'),'attributes':['id',_0xa57c('0x2')]}]}]}]},'log':_0xa57c('0x16')});};};
\ No newline at end of file
+var _0x326f=['variableName','GetServicenowkAccount','../../client','Request','GetServicenowAccount','name','description','username','password','email','remoteUri','serverUrl','ServicenowConfiguration','ServicenowField','Subjects','type','Variable','Descriptions','key','keyContent','content','idField','nameField'];(function(_0x29b4d5,_0x5b94c7){var _0x241d61=function(_0x127991){while(--_0x127991){_0x29b4d5['push'](_0x29b4d5['shift']());}};_0x241d61(++_0x5b94c7);}(_0x326f,0xd1));var _0xf326=function(_0x224fd7,_0x4ee070){_0x224fd7=_0x224fd7-0x0;var _0x58b927=_0x326f[_0x224fd7];return _0x58b927;};'use strict';var client=require(_0xf326('0x0'));exports['getServicenowAccounts']=function(){return function(_0x5452cc){return client[_0xf326('0x1')](_0xf326('0x2'),{'options':{'raw':![],'attributes':['id',_0xf326('0x3'),_0xf326('0x4'),_0xf326('0x5'),_0xf326('0x6'),_0xf326('0x7'),_0xf326('0x8'),_0xf326('0x9')],'include':[{'model':_0xf326('0xa'),'as':'Configurations','attributes':['id',_0xf326('0x3')],'include':[{'model':_0xf326('0xb'),'as':_0xf326('0xc'),'attributes':['id',_0xf326('0xd'),'content','variableName'],'include':[{'model':'Variable','as':_0xf326('0xe'),'attributes':['id',_0xf326('0x3')]}]},{'model':_0xf326('0xb'),'as':_0xf326('0xf'),'attributes':['id',_0xf326('0xd'),'content',_0xf326('0x10'),'keyType',_0xf326('0x11'),'variableName'],'include':[{'model':_0xf326('0xe'),'as':'Variable','attributes':['id',_0xf326('0x3')]}]},{'model':_0xf326('0xb'),'as':'Fields','attributes':['id',_0xf326('0xd'),_0xf326('0x12'),_0xf326('0x13'),_0xf326('0x14'),'customField',_0xf326('0x15')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0xf326('0x3')]}]}]}]},'log':_0xf326('0x16')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f66=['nameField','customField','getSugarcrmAccounts','Request','GetSugarcrmAccount','name','username','password','serverUrl','Configurations','type','content','variableName','Variable','key','keyType','Fields','idField'];(function(_0x4fc850,_0x5a17a4){var _0x5344ba=function(_0x582521){while(--_0x582521){_0x4fc850['push'](_0x4fc850['shift']());}};_0x5344ba(++_0x5a17a4);}(_0x5f66,0x1a0));var _0x65f6=function(_0x4c12ec,_0x2e9103){_0x4c12ec=_0x4c12ec-0x0;var _0x3ae42c=_0x5f66[_0x4c12ec];return _0x3ae42c;};'use strict';var client=require('../../client');exports[_0x65f6('0x0')]=function(){return function(_0x4a3887){return client[_0x65f6('0x1')](_0x65f6('0x2'),{'options':{'raw':![],'attributes':['id',_0x65f6('0x3'),_0x65f6('0x4'),_0x65f6('0x5'),'remoteUri',_0x65f6('0x6')],'include':[{'model':'SugarcrmConfiguration','as':_0x65f6('0x7'),'attributes':['id',_0x65f6('0x3')],'include':[{'model':'SugarcrmField','as':'Subjects','attributes':['id',_0x65f6('0x8'),_0x65f6('0x9'),_0x65f6('0xa')],'include':[{'model':_0x65f6('0xb'),'as':_0x65f6('0xb'),'attributes':['id',_0x65f6('0x3')]}]},{'model':'SugarcrmField','as':'Descriptions','attributes':['id',_0x65f6('0x8'),_0x65f6('0x9'),_0x65f6('0xc'),_0x65f6('0xd'),'keyContent',_0x65f6('0xa')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x65f6('0x3')]}]},{'model':'SugarcrmField','as':_0x65f6('0xe'),'attributes':['id','type',_0x65f6('0x9'),_0x65f6('0xf'),_0x65f6('0x10'),_0x65f6('0x11'),_0x65f6('0xa')],'include':[{'model':_0x65f6('0xb'),'as':_0x65f6('0xb'),'attributes':['id',_0x65f6('0x3')]}]}]}]},'log':_0x65f6('0x2')});};};
\ No newline at end of file
+var _0x5f66=['nameField','customField','getSugarcrmAccounts','Request','GetSugarcrmAccount','name','username','password','serverUrl','Configurations','type','content','variableName','Variable','key','keyType','Fields','idField'];(function(_0x445b7d,_0x2d48ac){var _0x577af9=function(_0x21e6e2){while(--_0x21e6e2){_0x445b7d['push'](_0x445b7d['shift']());}};_0x577af9(++_0x2d48ac);}(_0x5f66,0x1a0));var _0x65f6=function(_0x297fd3,_0x115406){_0x297fd3=_0x297fd3-0x0;var _0x2af381=_0x5f66[_0x297fd3];return _0x2af381;};'use strict';var client=require('../../client');exports[_0x65f6('0x0')]=function(){return function(_0x4a3887){return client[_0x65f6('0x1')](_0x65f6('0x2'),{'options':{'raw':![],'attributes':['id',_0x65f6('0x3'),_0x65f6('0x4'),_0x65f6('0x5'),'remoteUri',_0x65f6('0x6')],'include':[{'model':'SugarcrmConfiguration','as':_0x65f6('0x7'),'attributes':['id',_0x65f6('0x3')],'include':[{'model':'SugarcrmField','as':'Subjects','attributes':['id',_0x65f6('0x8'),_0x65f6('0x9'),_0x65f6('0xa')],'include':[{'model':_0x65f6('0xb'),'as':_0x65f6('0xb'),'attributes':['id',_0x65f6('0x3')]}]},{'model':'SugarcrmField','as':'Descriptions','attributes':['id',_0x65f6('0x8'),_0x65f6('0x9'),_0x65f6('0xc'),_0x65f6('0xd'),'keyContent',_0x65f6('0xa')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x65f6('0x3')]}]},{'model':'SugarcrmField','as':_0x65f6('0xe'),'attributes':['id','type',_0x65f6('0x9'),_0x65f6('0xf'),_0x65f6('0x10'),_0x65f6('0x11'),_0x65f6('0xa')],'include':[{'model':_0x65f6('0xb'),'as':_0x65f6('0xb'),'attributes':['id',_0x65f6('0x3')]}]}]}]},'log':_0x65f6('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x107b=['variableName','Variable','key','keyType','keyContent','Fields','content','idField','customField','../../client','getVtigerAccounts','Request','GetVtigerAccount','name','description','username','serverUrl','VtigerConfiguration','Configurations','VtigerField','type'];(function(_0x23c73d,_0x357b21){var _0x36ba47=function(_0x317b8e){while(--_0x317b8e){_0x23c73d['push'](_0x23c73d['shift']());}};_0x36ba47(++_0x357b21);}(_0x107b,0xf0));var _0xb107=function(_0x94c656,_0x5e9438){_0x94c656=_0x94c656-0x0;var _0x40f07d=_0x107b[_0x94c656];return _0x40f07d;};'use strict';var client=require(_0xb107('0x0'));exports[_0xb107('0x1')]=function(){return function(_0x502a7c){return client[_0xb107('0x2')](_0xb107('0x3'),{'options':{'raw':![],'attributes':['id',_0xb107('0x4'),_0xb107('0x5'),_0xb107('0x6'),'accessKey','remoteUri',_0xb107('0x7')],'include':[{'model':_0xb107('0x8'),'as':_0xb107('0x9'),'attributes':['id','name'],'include':[{'model':_0xb107('0xa'),'as':'Subjects','attributes':['id',_0xb107('0xb'),'content',_0xb107('0xc')],'include':[{'model':_0xb107('0xd'),'as':'Variable','attributes':['id','name']}]},{'model':'VtigerField','as':'Descriptions','attributes':['id',_0xb107('0xb'),'content',_0xb107('0xe'),_0xb107('0xf'),_0xb107('0x10'),_0xb107('0xc')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0xb107('0x4')]}]},{'model':_0xb107('0xa'),'as':_0xb107('0x11'),'attributes':['id',_0xb107('0xb'),_0xb107('0x12'),_0xb107('0x13'),'nameField',_0xb107('0x14'),_0xb107('0xc')],'include':[{'model':'Variable','as':_0xb107('0xd'),'attributes':['id',_0xb107('0x4')]}]}]}]},'log':'GetVtigerAccount'});};};
\ No newline at end of file
+var _0x302e=['serverUrl','VtigerConfiguration','Configurations','name','Subjects','type','content','Variable','VtigerField','Descriptions','key','keyType','keyContent','variableName','Fields','idField','nameField','customField','../../client','getVtigerAccounts','Request','GetVtigerAccount','username','accessKey'];(function(_0x2208d6,_0x2d49d3){var _0x3fa7e4=function(_0x1d5226){while(--_0x1d5226){_0x2208d6['push'](_0x2208d6['shift']());}};_0x3fa7e4(++_0x2d49d3);}(_0x302e,0xea));var _0xe302=function(_0x3d39d5,_0x1bb391){_0x3d39d5=_0x3d39d5-0x0;var _0x2e56b4=_0x302e[_0x3d39d5];return _0x2e56b4;};'use strict';var client=require(_0xe302('0x0'));exports[_0xe302('0x1')]=function(){return function(_0x1fbdae){return client[_0xe302('0x2')](_0xe302('0x3'),{'options':{'raw':![],'attributes':['id','name','description',_0xe302('0x4'),_0xe302('0x5'),'remoteUri',_0xe302('0x6')],'include':[{'model':_0xe302('0x7'),'as':_0xe302('0x8'),'attributes':['id',_0xe302('0x9')],'include':[{'model':'VtigerField','as':_0xe302('0xa'),'attributes':['id',_0xe302('0xb'),_0xe302('0xc'),'variableName'],'include':[{'model':_0xe302('0xd'),'as':_0xe302('0xd'),'attributes':['id',_0xe302('0x9')]}]},{'model':_0xe302('0xe'),'as':_0xe302('0xf'),'attributes':['id','type',_0xe302('0xc'),_0xe302('0x10'),_0xe302('0x11'),_0xe302('0x12'),_0xe302('0x13')],'include':[{'model':_0xe302('0xd'),'as':_0xe302('0xd'),'attributes':['id',_0xe302('0x9')]}]},{'model':_0xe302('0xe'),'as':_0xe302('0x14'),'attributes':['id','type','content',_0xe302('0x15'),_0xe302('0x16'),_0xe302('0x17'),_0xe302('0x13')],'include':[{'model':_0xe302('0xd'),'as':_0xe302('0xd'),'attributes':['id','name']}]}]}]},'log':_0xe302('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x40b7=['idField','nameField','customField','getZendeskAccounts','GetZendeskAccount','name','username','password','token','remoteUri','serverUrl','type','ZendeskConfiguration','Tag','Subjects','content','variableName','Variable','ZendeskField','key','keyContent','Fields'];(function(_0x49a635,_0x59a242){var _0x99a2fb=function(_0xa49aad){while(--_0xa49aad){_0x49a635['push'](_0x49a635['shift']());}};_0x99a2fb(++_0x59a242);}(_0x40b7,0x1e7));var _0x740b=function(_0x4e6ae6,_0x49dba6){_0x4e6ae6=_0x4e6ae6-0x0;var _0x23c108=_0x40b7[_0x4e6ae6];return _0x23c108;};'use strict';var client=require('../../client');exports[_0x740b('0x0')]=function(){return function(_0x55501f){return client['Request'](_0x740b('0x1'),{'options':{'raw':![],'attributes':['id',_0x740b('0x2'),_0x740b('0x3'),_0x740b('0x4'),_0x740b('0x5'),_0x740b('0x6'),'authType',_0x740b('0x7'),_0x740b('0x8')],'include':[{'model':_0x740b('0x9'),'as':'Configurations','attributes':['id',_0x740b('0x2')],'include':[{'model':_0x740b('0xa'),'attributes':['id','name']},{'model':'ZendeskField','as':_0x740b('0xb'),'attributes':['id','type',_0x740b('0xc'),_0x740b('0xd')],'include':[{'model':'Variable','as':_0x740b('0xe'),'attributes':['id',_0x740b('0x2')]}]},{'model':_0x740b('0xf'),'as':'Descriptions','attributes':['id',_0x740b('0x8'),_0x740b('0xc'),_0x740b('0x10'),'keyType',_0x740b('0x11'),_0x740b('0xd')],'include':[{'model':_0x740b('0xe'),'as':_0x740b('0xe'),'attributes':['id',_0x740b('0x2')]}]},{'model':_0x740b('0xf'),'as':_0x740b('0x12'),'attributes':['id',_0x740b('0x8'),_0x740b('0xc'),_0x740b('0x13'),_0x740b('0x14'),_0x740b('0x15'),_0x740b('0xd')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x740b('0x2')]}]}]}]},'log':_0x740b('0x1')});};};
\ No newline at end of file
+var _0x4f71=['Variable','key','keyType','keyContent','Fields','idField','nameField','customField','GetZendeskAccount','../../client','getZendeskAccounts','Request','name','username','token','authType','serverUrl','type','Configurations','Tag','ZendeskField','Subjects','content','variableName'];(function(_0x3fc5ca,_0x575782){var _0x33b644=function(_0x200045){while(--_0x200045){_0x3fc5ca['push'](_0x3fc5ca['shift']());}};_0x33b644(++_0x575782);}(_0x4f71,0x171));var _0x14f7=function(_0x45e98e,_0x169b60){_0x45e98e=_0x45e98e-0x0;var _0x374dba=_0x4f71[_0x45e98e];return _0x374dba;};'use strict';var client=require(_0x14f7('0x0'));exports[_0x14f7('0x1')]=function(){return function(_0x15d6d7){return client[_0x14f7('0x2')]('GetZendeskAccount',{'options':{'raw':![],'attributes':['id',_0x14f7('0x3'),_0x14f7('0x4'),'password',_0x14f7('0x5'),'remoteUri',_0x14f7('0x6'),_0x14f7('0x7'),_0x14f7('0x8')],'include':[{'model':'ZendeskConfiguration','as':_0x14f7('0x9'),'attributes':['id','name'],'include':[{'model':_0x14f7('0xa'),'attributes':['id',_0x14f7('0x3')]},{'model':_0x14f7('0xb'),'as':_0x14f7('0xc'),'attributes':['id',_0x14f7('0x8'),_0x14f7('0xd'),_0x14f7('0xe')],'include':[{'model':_0x14f7('0xf'),'as':'Variable','attributes':['id',_0x14f7('0x3')]}]},{'model':_0x14f7('0xb'),'as':'Descriptions','attributes':['id','type',_0x14f7('0xd'),_0x14f7('0x10'),_0x14f7('0x11'),_0x14f7('0x12'),_0x14f7('0xe')],'include':[{'model':_0x14f7('0xf'),'as':_0x14f7('0xf'),'attributes':['id',_0x14f7('0x3')]}]},{'model':_0x14f7('0xb'),'as':_0x14f7('0x13'),'attributes':['id',_0x14f7('0x8'),_0x14f7('0xd'),_0x14f7('0x14'),_0x14f7('0x15'),_0x14f7('0x16'),_0x14f7('0xe')],'include':[{'model':_0x14f7('0xf'),'as':'Variable','attributes':['id',_0x14f7('0x3')]}]}]}]},'log':_0x14f7('0x17')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1b02=['ZohoField','Subjects','type','variableName','Variable','Descriptions','content','key','keyType','keyContent','Fields','nameField','customField','../../client','Request','GetZohoAccount','name','description','host','zone','clientId','clientSecret','code','ZohoConfiguration','Configurations','moduleSearch'];(function(_0x422905,_0x3bce3a){var _0x33dc6c=function(_0x4852c9){while(--_0x4852c9){_0x422905['push'](_0x422905['shift']());}};_0x33dc6c(++_0x3bce3a);}(_0x1b02,0xc3));var _0x21b0=function(_0x1e1ae0,_0x85a4f5){_0x1e1ae0=_0x1e1ae0-0x0;var _0x4e2df1=_0x1b02[_0x1e1ae0];return _0x4e2df1;};'use strict';var client=require(_0x21b0('0x0'));exports['getZohoAccounts']=function(){return function(_0x30fd19){return client[_0x21b0('0x1')](_0x21b0('0x2'),{'options':{'raw':![],'attributes':['id',_0x21b0('0x3'),_0x21b0('0x4'),_0x21b0('0x5'),_0x21b0('0x6'),_0x21b0('0x7'),_0x21b0('0x8'),'serverUrl',_0x21b0('0x9'),'refreshToken'],'include':[{'model':_0x21b0('0xa'),'as':_0x21b0('0xb'),'attributes':['id',_0x21b0('0x3'),'moduleCreate',_0x21b0('0xc'),_0x21b0('0x4')],'include':[{'model':_0x21b0('0xd'),'as':_0x21b0('0xe'),'attributes':['id',_0x21b0('0xf'),'content',_0x21b0('0x10')],'include':[{'model':_0x21b0('0x11'),'as':_0x21b0('0x11'),'attributes':['id',_0x21b0('0x3')]}]},{'model':_0x21b0('0xd'),'as':_0x21b0('0x12'),'attributes':['id',_0x21b0('0xf'),_0x21b0('0x13'),_0x21b0('0x14'),_0x21b0('0x15'),_0x21b0('0x16'),_0x21b0('0x10')],'include':[{'model':_0x21b0('0x11'),'as':_0x21b0('0x11'),'attributes':['id','name']}]},{'model':_0x21b0('0xd'),'as':_0x21b0('0x17'),'attributes':['id',_0x21b0('0xf'),_0x21b0('0x13'),'idField',_0x21b0('0x18'),_0x21b0('0x19'),_0x21b0('0x10')],'include':[{'model':_0x21b0('0x11'),'as':'Variable','attributes':['id',_0x21b0('0x3')]}]}]}]},'log':_0x21b0('0x2')});};};
\ No newline at end of file
+var _0x5ef6=['GetZohoAccount','name','description','clientId','clientSecret','serverUrl','refreshToken','ZohoConfiguration','Configurations','moduleCreate','moduleSearch','ZohoField','Subjects','type','content','variableName','key','keyContent','Variable','Fields','nameField','../../client','Request'];(function(_0x203de6,_0xc503c8){var _0x24fa29=function(_0xe1709){while(--_0xe1709){_0x203de6['push'](_0x203de6['shift']());}};_0x24fa29(++_0xc503c8);}(_0x5ef6,0x1b3));var _0x65ef=function(_0x37597b,_0x46e807){_0x37597b=_0x37597b-0x0;var _0x1b10a4=_0x5ef6[_0x37597b];return _0x1b10a4;};'use strict';var client=require(_0x65ef('0x0'));exports['getZohoAccounts']=function(){return function(_0x1d0746){return client[_0x65ef('0x1')](_0x65ef('0x2'),{'options':{'raw':![],'attributes':['id',_0x65ef('0x3'),_0x65ef('0x4'),'host','zone',_0x65ef('0x5'),_0x65ef('0x6'),_0x65ef('0x7'),'code',_0x65ef('0x8')],'include':[{'model':_0x65ef('0x9'),'as':_0x65ef('0xa'),'attributes':['id',_0x65ef('0x3'),_0x65ef('0xb'),_0x65ef('0xc'),_0x65ef('0x4')],'include':[{'model':_0x65ef('0xd'),'as':_0x65ef('0xe'),'attributes':['id',_0x65ef('0xf'),_0x65ef('0x10'),_0x65ef('0x11')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x65ef('0x3')]}]},{'model':'ZohoField','as':'Descriptions','attributes':['id',_0x65ef('0xf'),_0x65ef('0x10'),_0x65ef('0x12'),'keyType',_0x65ef('0x13'),_0x65ef('0x11')],'include':[{'model':_0x65ef('0x14'),'as':_0x65ef('0x14'),'attributes':['id',_0x65ef('0x3')]}]},{'model':'ZohoField','as':_0x65ef('0x15'),'attributes':['id','type',_0x65ef('0x10'),'idField',_0x65ef('0x16'),'customField',_0x65ef('0x11')],'include':[{'model':_0x65ef('0x14'),'as':_0x65ef('0x14'),'attributes':['id',_0x65ef('0x3')]}]}]}]},'log':_0x65ef('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0974=['TALKING','diff','seconds','inbound','calleridnum','exten','accountcode','uniqueid','voice','membername','starttime','endtime','outbound','toNumber','moment','../client','voiceQueueReport','queuecallerexitAt','Request','CreateMemberReport','isNil','lastAssignedTo','interface'];(function(_0x872b02,_0x4f4458){var _0x1a6b24=function(_0x1dfb4e){while(--_0x1dfb4e){_0x872b02['push'](_0x872b02['shift']());}};_0x1a6b24(++_0x4f4458);}(_0x0974,0xdd));var _0x4097=function(_0x37ff27,_0x4598a7){_0x37ff27=_0x37ff27-0x0;var _0x418b26=_0x0974[_0x37ff27];return _0x418b26;};'use strict';var moment=require(_0x4097('0x0'));var _=require('lodash');var util=require('util');var client=require(_0x4097('0x1'));exports[_0x4097('0x2')]=function(_0x11df31){var _0x3fe766=_0x11df31['queuecallercompleteAt']||_0x11df31[_0x4097('0x3')];return client[_0x4097('0x4')](_0x4097('0x5'),{'body':{'channel':'voice','membername':_0x11df31['lastAssignedTo'],'interface':_[_0x4097('0x6')](_0x11df31['interface'])?util['format']('SIP/%s',_0x11df31[_0x4097('0x7')]):_0x11df31[_0x4097('0x8')],'type':_0x4097('0x9'),'enterAt':_0x11df31['queuecallerleaveAt'],'exitAt':_0x3fe766,'duration':moment(_0x3fe766)[_0x4097('0xa')](_0x11df31['queuecallerleaveAt'],_0x4097('0xb')),'data1':_0x4097('0xc'),'data2':_0x11df31[_0x4097('0xd')],'data3':_0x11df31[_0x4097('0xe')],'data4':null,'data5':_0x11df31['queue'],'role':'agent','internal':_0x11df31['accountcode']?_['toNumber'](_0x11df31[_0x4097('0xf')]):undefined,'uniqueid':_0x11df31[_0x4097('0x10')]},'log':_0x4097('0x5')});};exports['voiceDialReport']=function(_0x37886c){return client['Request'](_0x4097('0x5'),{'body':{'channel':_0x4097('0x11'),'membername':_0x37886c[_0x4097('0x12')],'interface':_0x37886c[_0x4097('0x8')],'type':_0x4097('0x9'),'enterAt':_0x37886c[_0x4097('0x13')],'exitAt':_0x37886c[_0x4097('0x14')],'duration':moment(_0x37886c['endtime'])[_0x4097('0xa')](_0x37886c['starttime'],_0x4097('0xb'))>=0x0?moment(_0x37886c[_0x4097('0x14')])[_0x4097('0xa')](_0x37886c[_0x4097('0x13')],_0x4097('0xb')):null,'data1':_0x4097('0x15'),'data2':_0x37886c['accountcode'],'data3':_0x37886c['exten'],'data4':_0x37886c['dialstring']||null,'role':'agent','internal':_0x37886c[_0x4097('0xf')]?_[_0x4097('0x16')](_0x37886c['accountcode']):undefined,'uniqueid':_0x37886c[_0x4097('0x10')]},'log':_0x4097('0x5')});};
\ No newline at end of file
+var _0x25fb=['queue','agent','accountcode','uniqueid','voiceDialReport','voice','membername','starttime','endtime','outbound','dialstring','toNumber','moment','util','queuecallercompleteAt','queuecallerexitAt','Request','CreateMemberReport','lastAssignedTo','isNil','interface','format','TALKING','queuecallerleaveAt','diff','seconds','inbound','calleridnum','exten'];(function(_0xc2d4d6,_0x31b6e0){var _0x5b4541=function(_0x4fed9d){while(--_0x4fed9d){_0xc2d4d6['push'](_0xc2d4d6['shift']());}};_0x5b4541(++_0x31b6e0);}(_0x25fb,0x168));var _0xb25f=function(_0x5d2b38,_0xcb6d13){_0x5d2b38=_0x5d2b38-0x0;var _0x1f1bee=_0x25fb[_0x5d2b38];return _0x1f1bee;};'use strict';var moment=require(_0xb25f('0x0'));var _=require('lodash');var util=require(_0xb25f('0x1'));var client=require('../client');exports['voiceQueueReport']=function(_0xe5760d){var _0x1a8d67=_0xe5760d[_0xb25f('0x2')]||_0xe5760d[_0xb25f('0x3')];return client[_0xb25f('0x4')](_0xb25f('0x5'),{'body':{'channel':'voice','membername':_0xe5760d[_0xb25f('0x6')],'interface':_[_0xb25f('0x7')](_0xe5760d[_0xb25f('0x8')])?util[_0xb25f('0x9')]('SIP/%s',_0xe5760d['lastAssignedTo']):_0xe5760d[_0xb25f('0x8')],'type':_0xb25f('0xa'),'enterAt':_0xe5760d[_0xb25f('0xb')],'exitAt':_0x1a8d67,'duration':moment(_0x1a8d67)[_0xb25f('0xc')](_0xe5760d['queuecallerleaveAt'],_0xb25f('0xd')),'data1':_0xb25f('0xe'),'data2':_0xe5760d[_0xb25f('0xf')],'data3':_0xe5760d[_0xb25f('0x10')],'data4':null,'data5':_0xe5760d[_0xb25f('0x11')],'role':_0xb25f('0x12'),'internal':_0xe5760d[_0xb25f('0x13')]?_['toNumber'](_0xe5760d['accountcode']):undefined,'uniqueid':_0xe5760d[_0xb25f('0x14')]},'log':_0xb25f('0x5')});};exports[_0xb25f('0x15')]=function(_0x38eca7){return client[_0xb25f('0x4')](_0xb25f('0x5'),{'body':{'channel':_0xb25f('0x16'),'membername':_0x38eca7[_0xb25f('0x17')],'interface':_0x38eca7['interface'],'type':_0xb25f('0xa'),'enterAt':_0x38eca7[_0xb25f('0x18')],'exitAt':_0x38eca7[_0xb25f('0x19')],'duration':moment(_0x38eca7[_0xb25f('0x19')])[_0xb25f('0xc')](_0x38eca7[_0xb25f('0x18')],_0xb25f('0xd'))>=0x0?moment(_0x38eca7[_0xb25f('0x19')])[_0xb25f('0xc')](_0x38eca7[_0xb25f('0x18')],_0xb25f('0xd')):null,'data1':_0xb25f('0x1a'),'data2':_0x38eca7['accountcode'],'data3':_0x38eca7[_0xb25f('0x10')],'data4':_0x38eca7[_0xb25f('0x1b')]||null,'role':_0xb25f('0x12'),'internal':_0x38eca7[_0xb25f('0x13')]?_[_0xb25f('0x1c')](_0x38eca7['accountcode']):undefined,'uniqueid':_0x38eca7[_0xb25f('0x14')]},'log':_0xb25f('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdfe9=['../client','Request','GetSettings'];(function(_0x2050f7,_0x3833c6){var _0x219da1=function(_0x554dc1){while(--_0x554dc1){_0x2050f7['push'](_0x2050f7['shift']());}};_0x219da1(++_0x3833c6);}(_0xdfe9,0xc3));var _0x9dfe=function(_0x518be6,_0x4b0d81){_0x518be6=_0x518be6-0x0;var _0x4d63c7=_0xdfe9[_0x518be6];return _0x4d63c7;};'use strict';var client=require(_0x9dfe('0x0'));exports['getSettings']=function(){return client[_0x9dfe('0x1')]('ShowSetting',{'options':{'raw':!![],'where':{'id':0x1},'attributes':['stopRecordingOnTransfer']},'log':_0x9dfe('0x2')});};
\ No newline at end of file
+var _0x56dc=['ShowSetting','stopRecordingOnTransfer','GetSettings','../client','Request'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x56dc,0xfd));var _0xc56d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x56dc[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0xc56d('0x0'));exports['getSettings']=function(){return client[_0xc56d('0x1')](_0xc56d('0x2'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0xc56d('0x3')]},'log':_0xc56d('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5bf7=['../client','getTemplates','GetTemplate','name','html'];(function(_0x13825b,_0x33736f){var _0x1afcb1=function(_0x351976){while(--_0x351976){_0x13825b['push'](_0x13825b['shift']());}};_0x1afcb1(++_0x33736f);}(_0x5bf7,0xb4));var _0x75bf=function(_0x290c12,_0x1137af){_0x290c12=_0x290c12-0x0;var _0x55e3ef=_0x5bf7[_0x290c12];return _0x55e3ef;};'use strict';var client=require(_0x75bf('0x0'));exports[_0x75bf('0x1')]=function(_0x60a2e1){return function(_0x4358ad){return client['Request'](_0x75bf('0x2'),{'options':{'raw':!![],'attributes':['id',_0x75bf('0x3'),_0x75bf('0x4')]},'log':_0x75bf('0x2')});};};
\ No newline at end of file
+var _0x9c9b=['getTemplates','Request','GetTemplate','html'];(function(_0x439cea,_0xdc0a3f){var _0x26e33d=function(_0x4a1330){while(--_0x4a1330){_0x439cea['push'](_0x439cea['shift']());}};_0x26e33d(++_0xdc0a3f);}(_0x9c9b,0x194));var _0xb9c9=function(_0x35136a,_0xc88bab){_0x35136a=_0x35136a-0x0;var _0x3096c5=_0x9c9b[_0x35136a];return _0x3096c5;};'use strict';var client=require('../client');exports[_0xb9c9('0x0')]=function(_0xe1be75){return function(_0x3d06a3){return client[_0xb9c9('0x1')](_0xb9c9('0x2'),{'options':{'raw':!![],'attributes':['id','name',_0xb9c9('0x3')]},'log':_0xb9c9('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2304=['Condition','AllConditions','value','AnyConditions','field','operator','Action','data1','data2','data3','data5','data6','data7','../client','getTriggers','GetTrigger','channel','status'];(function(_0x535906,_0x3e0c5f){var _0x15fe32=function(_0x2cfffc){while(--_0x2cfffc){_0x535906['push'](_0x535906['shift']());}};_0x15fe32(++_0x3e0c5f);}(_0x2304,0xe5));var _0x4230=function(_0x1faf54,_0x2c1c07){_0x1faf54=_0x1faf54-0x0;var _0x1b1973=_0x2304[_0x1faf54];return _0x1b1973;};'use strict';var client=require(_0x4230('0x0'));exports[_0x4230('0x1')]=function(_0x470705){return function(_0x451394){return client['Request'](_0x4230('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x4230('0x3'),_0x4230('0x4')],'include':[{'model':_0x4230('0x5'),'as':_0x4230('0x6'),'attributes':['id','field','operator',_0x4230('0x7')]},{'model':'Condition','as':_0x4230('0x8'),'attributes':['id',_0x4230('0x9'),_0x4230('0xa'),_0x4230('0x7')]},{'model':_0x4230('0xb'),'as':'Actions','attributes':['id','action',_0x4230('0xc'),_0x4230('0xd'),_0x4230('0xe'),'data4',_0x4230('0xf'),_0x4230('0x10'),_0x4230('0x11')]}]},'log':_0x4230('0x2')});};};
\ No newline at end of file
+var _0x13d8=['Request','GetTrigger','name','channel','Condition','AllConditions','operator','value','AnyConditions','field','Action','Actions','data1','data2','data4','data7','../client'];(function(_0x11fc48,_0x4a9a37){var _0x5ec8ba=function(_0x3fb7d1){while(--_0x3fb7d1){_0x11fc48['push'](_0x11fc48['shift']());}};_0x5ec8ba(++_0x4a9a37);}(_0x13d8,0x120));var _0x813d=function(_0x8977b4,_0x357193){_0x8977b4=_0x8977b4-0x0;var _0x164fc1=_0x13d8[_0x8977b4];return _0x164fc1;};'use strict';var client=require(_0x813d('0x0'));exports['getTriggers']=function(_0x36a9f6){return function(_0x2f62c1){return client[_0x813d('0x1')](_0x813d('0x2'),{'options':{'raw':![],'attributes':['id',_0x813d('0x3'),_0x813d('0x4'),'status'],'include':[{'model':_0x813d('0x5'),'as':_0x813d('0x6'),'attributes':['id','field',_0x813d('0x7'),_0x813d('0x8')]},{'model':_0x813d('0x5'),'as':_0x813d('0x9'),'attributes':['id',_0x813d('0xa'),'operator',_0x813d('0x8')]},{'model':_0x813d('0xb'),'as':_0x813d('0xc'),'attributes':['id','action',_0x813d('0xd'),_0x813d('0xe'),'data3',_0x813d('0xf'),'data5','data6',_0x813d('0x10')]}]},'log':_0x813d('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe6a=['Request','GetTrunk','registry','defaultuser','../client','getTrunks'];(function(_0x1f239e,_0x367b43){var _0x826971=function(_0x2c5777){while(--_0x2c5777){_0x1f239e['push'](_0x1f239e['shift']());}};_0x826971(++_0x367b43);}(_0xfe6a,0x16c));var _0xafe6=function(_0x405f57,_0x5df967){_0x405f57=_0x405f57-0x0;var _0x51e19c=_0xfe6a[_0x405f57];return _0x51e19c;};'use strict';var client=require(_0xafe6('0x0'));exports[_0xafe6('0x1')]=function(_0xfc4cae){return function(_0x534a52){return client[_0xafe6('0x2')](_0xafe6('0x3'),{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id','name',_0xafe6('0x4'),_0xafe6('0x5')]},'log':_0xafe6('0x3')});};};
\ No newline at end of file
+var _0x7d69=['../client','getTrunks','Request','GetTrunk','name','registry','defaultuser'];(function(_0x1028f3,_0x523089){var _0x1d0732=function(_0x232513){while(--_0x232513){_0x1028f3['push'](_0x1028f3['shift']());}};_0x1d0732(++_0x523089);}(_0x7d69,0x149));var _0x97d6=function(_0x1641d6,_0x21e705){_0x1641d6=_0x1641d6-0x0;var _0x338f38=_0x7d69[_0x1641d6];return _0x338f38;};'use strict';var client=require(_0x97d6('0x0'));exports[_0x97d6('0x1')]=function(_0x59f0ba){return function(_0x462fa1){return client[_0x97d6('0x2')](_0x97d6('0x3'),{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id',_0x97d6('0x4'),_0x97d6('0x5'),_0x97d6('0x6')]},'log':_0x97d6('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xedd9=['mobile','getTelephones','internal','PauseUser','savePause','saveUnpause','UnpauseUser','ShowUser','interface','getAgent','getAgents','Request','GetUser','agent','name','email','accountcode','fullname','lastLoginAt','pauseType','lastPauseAt','voicePause'];(function(_0x45490a,_0x186e60){var _0x484277=function(_0xe05cd1){while(--_0xe05cd1){_0x45490a['push'](_0x45490a['shift']());}};_0x484277(++_0x186e60);}(_0xedd9,0xfc));var _0x9edd=function(_0x449934,_0x3744f7){_0x449934=_0x449934-0x0;var _0x23d6f8=_0xedd9[_0x449934];return _0x23d6f8;};'use strict';var client=require('../client');exports[_0x9edd('0x0')]=function(){return function(){return client[_0x9edd('0x1')](_0x9edd('0x2'),{'options':{'raw':![],'where':{'role':_0x9edd('0x3')},'attributes':['id',_0x9edd('0x4'),_0x9edd('0x5'),_0x9edd('0x6'),_0x9edd('0x7'),'online',_0x9edd('0x8'),_0x9edd('0x9'),_0x9edd('0xa'),_0x9edd('0xb'),'phone',_0x9edd('0xc'),'interface']},'log':_0x9edd('0x0')});};};exports[_0x9edd('0xd')]=function(){return function(){return client[_0x9edd('0x1')](_0x9edd('0x2'),{'options':{'raw':!![],'where':{'role':'telephone'},'attributes':['id',_0x9edd('0x4'),'accountcode',_0x9edd('0xe')]},'log':_0x9edd('0xd')});};};exports['savePause']=function(_0xbf9da6,_0x13dc4f,_0x5b6c00){return client[_0x9edd('0x1')](_0x9edd('0xf'),{'body':{'type':_0x13dc4f,'uniqueid':_0x5b6c00},'options':{'where':{'id':_0xbf9da6['id']}},'log':_0x9edd('0x10')});};exports[_0x9edd('0x11')]=function(_0x287ddd){return client[_0x9edd('0x1')](_0x9edd('0x12'),{'body':{},'options':{'where':{'id':_0x287ddd['id']}},'log':_0x9edd('0x10')});};exports['getAgent']=function(_0x176bfa){return client[_0x9edd('0x1')](_0x9edd('0x13'),{'options':{'raw':![],'where':{'role':_0x9edd('0x3'),'id':_0x176bfa},'attributes':['id',_0x9edd('0x4'),_0x9edd('0x5'),_0x9edd('0x6'),_0x9edd('0x7'),'online',_0x9edd('0x8'),_0x9edd('0x9'),_0x9edd('0xa'),'voicePause',_0x9edd('0x14')]},'log':_0x9edd('0x15')});};
\ No newline at end of file
+var _0x0713=['getAgent','Request','GetUser','agent','name','email','fullname','online','lastLoginAt','pauseType','lastPauseAt','voicePause','phone','mobile','interface','getAgents','getTelephones','accountcode','internal','savePause','PauseUser'];(function(_0x4fc166,_0x2974d6){var _0x2328f9=function(_0x4401a9){while(--_0x4401a9){_0x4fc166['push'](_0x4fc166['shift']());}};_0x2328f9(++_0x2974d6);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var client=require('../client');exports['getAgents']=function(){return function(){return client[_0x3071('0x0')](_0x3071('0x1'),{'options':{'raw':![],'where':{'role':_0x3071('0x2')},'attributes':['id',_0x3071('0x3'),_0x3071('0x4'),'accountcode',_0x3071('0x5'),_0x3071('0x6'),_0x3071('0x7'),_0x3071('0x8'),_0x3071('0x9'),_0x3071('0xa'),_0x3071('0xb'),_0x3071('0xc'),_0x3071('0xd')]},'log':_0x3071('0xe')});};};exports[_0x3071('0xf')]=function(){return function(){return client[_0x3071('0x0')](_0x3071('0x1'),{'options':{'raw':!![],'where':{'role':'telephone'},'attributes':['id',_0x3071('0x3'),_0x3071('0x10'),_0x3071('0x11')]},'log':_0x3071('0xf')});};};exports[_0x3071('0x12')]=function(_0x4a470a,_0x2ace21,_0x11a7ee){return client[_0x3071('0x0')](_0x3071('0x13'),{'body':{'type':_0x2ace21,'uniqueid':_0x11a7ee},'options':{'where':{'id':_0x4a470a['id']}},'log':_0x3071('0x12')});};exports['saveUnpause']=function(_0x5330a8){return client[_0x3071('0x0')]('UnpauseUser',{'body':{},'options':{'where':{'id':_0x5330a8['id']}},'log':_0x3071('0x12')});};exports[_0x3071('0x14')]=function(_0x5d4883){return client[_0x3071('0x0')]('ShowUser',{'options':{'raw':![],'where':{'role':_0x3071('0x2'),'id':_0x5d4883},'attributes':['id',_0x3071('0x3'),_0x3071('0x4'),_0x3071('0x10'),_0x3071('0x5'),_0x3071('0x6'),_0x3071('0x7'),_0x3071('0x8'),_0x3071('0x9'),_0x3071('0xa'),'interface']},'log':_0x3071('0x14')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xece1=['UpdateVoiceAgentReport','../client','Request','CreateVoiceAgentReport'];(function(_0x2894ef,_0x53b0b8){var _0x34f238=function(_0x151242){while(--_0x151242){_0x2894ef['push'](_0x2894ef['shift']());}};_0x34f238(++_0x53b0b8);}(_0xece1,0x89));var _0x1ece=function(_0xf35cfb,_0x237232){_0xf35cfb=_0xf35cfb-0x0;var _0x416792=_0xece1[_0xf35cfb];return _0x416792;};'use strict';var client=require(_0x1ece('0x0'));exports['create']=function(_0x3ba6ad){return client[_0x1ece('0x1')](_0x1ece('0x2'),{'body':_0x3ba6ad,'log':_0x1ece('0x2')});};exports['update']=function(_0x23873a,_0x27500d,_0x52fa4b){return client[_0x1ece('0x1')](_0x1ece('0x3'),{'body':_0x23873a,'options':{'where':{'uniqueid':_0x27500d,'interface':_0x52fa4b,'agentcomplete':!![]}},'log':_0x1ece('0x3')});};
\ No newline at end of file
+var _0x79f1=['update','UpdateVoiceAgentReport','../client','Request','CreateVoiceAgentReport'];(function(_0x435be3,_0x5b3896){var _0x512379=function(_0x2bdf50){while(--_0x2bdf50){_0x435be3['push'](_0x435be3['shift']());}};_0x512379(++_0x5b3896);}(_0x79f1,0x1d8));var _0x179f=function(_0x541ea6,_0x51cab6){_0x541ea6=_0x541ea6-0x0;var _0x3c3e84=_0x79f1[_0x541ea6];return _0x3c3e84;};'use strict';var client=require(_0x179f('0x0'));exports['create']=function(_0x45b314){return client[_0x179f('0x1')](_0x179f('0x2'),{'body':_0x45b314,'log':_0x179f('0x2')});};exports[_0x179f('0x3')]=function(_0x4ba28d,_0x207e3f,_0x3af1a6){return client[_0x179f('0x1')](_0x179f('0x4'),{'body':_0x4ba28d,'options':{'where':{'uniqueid':_0x207e3f,'interface':_0x3af1a6,'agentcomplete':!![]}},'log':'UpdateVoiceAgentReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57ed=['calleridnum','callerid','DOCUMENTATION','CreateVoiceCallReport','getVoiceCallReports','GetVoiceCallReport','outbound','startOf','day','format','YYYY-MM-DD\x20HH:mm:ss','endOf','type','disposition','billableseconds','util','lodash','../client','create','Request','merge'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x57ed,0x1c8));var _0xd57e=function(_0x371a78,_0x53d31c){_0x371a78=_0x371a78-0x0;var _0x12bf0f=_0x57ed[_0x371a78];return _0x12bf0f;};'use strict';var moment=require('moment');var util=require(_0xd57e('0x0'));var _=require(_0xd57e('0x1'));var client=require(_0xd57e('0x2'));exports[_0xd57e('0x3')]=function(_0x1a0bf4){return client[_0xd57e('0x4')]('CreateVoiceCallReport',{'body':_[_0xd57e('0x5')](_0x1a0bf4,{'source':_0x1a0bf4[_0xd57e('0x6')],'destinationcontext':_0x1a0bf4['context'],'callerid':_0x1a0bf4[_0xd57e('0x7')],'amaflags':_0xd57e('0x8')}),'log':_0xd57e('0x9')});};exports[_0xd57e('0xa')]=function(){return function(){return client['Request'](_0xd57e('0xb'),{'options':{'where':{'type':[_0xd57e('0xc')],'createdAt':{'$between':[moment()[_0xd57e('0xd')](_0xd57e('0xe'))[_0xd57e('0xf')](_0xd57e('0x10')),moment()[_0xd57e('0x11')](_0xd57e('0xe'))[_0xd57e('0xf')](_0xd57e('0x10'))]}},'attributes':[_0xd57e('0x12'),_0xd57e('0x13'),'duration',_0xd57e('0x14')]},'log':'GetVoiceCallReports'});};};
\ No newline at end of file
+var _0x488b=['duration','billableseconds','../client','create','Request','CreateVoiceCallReport','merge','calleridnum','context','callerid','DOCUMENTATION','GetVoiceCallReport','startOf','day','YYYY-MM-DD\x20HH:mm:ss','endOf','format','type','disposition'];(function(_0x2e2f0e,_0xbf4901){var _0x5a5e9c=function(_0x632462){while(--_0x632462){_0x2e2f0e['push'](_0x2e2f0e['shift']());}};_0x5a5e9c(++_0xbf4901);}(_0x488b,0x1b7));var _0xb488=function(_0x5b980c,_0x1f631f){_0x5b980c=_0x5b980c-0x0;var _0x57b235=_0x488b[_0x5b980c];return _0x57b235;};'use strict';var moment=require('moment');var util=require('util');var _=require('lodash');var client=require(_0xb488('0x0'));exports[_0xb488('0x1')]=function(_0xc799e4){return client[_0xb488('0x2')](_0xb488('0x3'),{'body':_[_0xb488('0x4')](_0xc799e4,{'source':_0xc799e4[_0xb488('0x5')],'destinationcontext':_0xc799e4[_0xb488('0x6')],'callerid':_0xc799e4[_0xb488('0x7')],'amaflags':_0xb488('0x8')}),'log':_0xb488('0x3')});};exports['getVoiceCallReports']=function(){return function(){return client[_0xb488('0x2')](_0xb488('0x9'),{'options':{'where':{'type':['outbound'],'createdAt':{'$between':[moment()[_0xb488('0xa')](_0xb488('0xb'))['format'](_0xb488('0xc')),moment()[_0xb488('0xd')](_0xb488('0xb'))[_0xb488('0xe')]('YYYY-MM-DD\x20HH:mm:ss')]}},'attributes':[_0xb488('0xf'),_0xb488('0x10'),_0xb488('0x11'),_0xb488('0x12')]},'log':'GetVoiceCallReports'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef8=['CreateVoiceDialReport','../client'];(function(_0x51ac09,_0x383098){var _0x3f827d=function(_0x2d8d0f){while(--_0x2d8d0f){_0x51ac09['push'](_0x51ac09['shift']());}};_0x3f827d(++_0x383098);}(_0x2ef8,0xcb));var _0x82ef=function(_0x277834,_0x57b8bc){_0x277834=_0x277834-0x0;var _0x2a436d=_0x2ef8[_0x277834];return _0x2a436d;};'use strict';var client=require(_0x82ef('0x0'));exports['create']=function(_0x57ff9a){return client['Request'](_0x82ef('0x1'),{'body':_0x57ff9a,'log':_0x82ef('0x1')});};
\ No newline at end of file
+var _0x8ed6=['create','Request','CreateVoiceDialReport','../client'];(function(_0x5ce160,_0x26f016){var _0x3c2f88=function(_0x2e2178){while(--_0x2e2178){_0x5ce160['push'](_0x5ce160['shift']());}};_0x3c2f88(++_0x26f016);}(_0x8ed6,0x9f));var _0x68ed=function(_0x379555,_0x1ee2f4){_0x379555=_0x379555-0x0;var _0x560bab=_0x8ed6[_0x379555];return _0x560bab;};'use strict';var client=require(_0x68ed('0x0'));exports[_0x68ed('0x1')]=function(_0x41f107){return client[_0x68ed('0x2')](_0x68ed('0x3'),{'body':_0x41f107,'log':_0x68ed('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x22fb=['recordingFormat','getVoiceExtensions','Request','exten'];(function(_0x2b7675,_0x5969c9){var _0x4c4f97=function(_0x233188){while(--_0x233188){_0x2b7675['push'](_0x2b7675['shift']());}};_0x4c4f97(++_0x5969c9);}(_0x22fb,0x192));var _0xb22f=function(_0x4996f8,_0x404413){_0x4996f8=_0x4996f8-0x0;var _0x59c923=_0x22fb[_0x4996f8];return _0x59c923;};'use strict';var client=require('../client');exports['getVoiceExtensions']=function(){return function(){return client[_0xb22f('0x0')]('GetVoiceExtension',{'options':{'raw':!![],'attributes':['id',_0xb22f('0x1'),_0xb22f('0x2')],'where':{'VoiceExtensionId':null}},'log':_0xb22f('0x3')});};};
\ No newline at end of file
+var _0xa4db=['getVoiceExtensions','GetVoiceExtension','exten','recordingFormat'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xa4db,0x139));var _0xba4d=function(_0x444852,_0x31e5c8){_0x444852=_0x444852-0x0;var _0x59a49c=_0xa4db[_0x444852];return _0x59a49c;};'use strict';var client=require('../client');exports['getVoiceExtensions']=function(){return function(){return client['Request'](_0xba4d('0x0'),{'options':{'raw':!![],'attributes':['id',_0xba4d('0x1'),_0xba4d('0x2')],'where':{'VoiceExtensionId':null}},'log':_0xba4d('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c09=['dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','mandatoryDisposition','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','Trunk','callerid','active','Pause','mandatoryDispositionPause','TrunkBackup','Interval','Intervals','getVoiceQueues','Request','name','acw','acwTimeout','autopause','monitor_format','type','dialActive','dialPowerLevel','dialPredictiveOptimization','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','dialOriginateTimeout','dialQueueTimeout','dialQueueProject','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialTimezone','dialGlobalInterval','dialPrefix','dialCheckDuplicateType','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDMaximumWordLength','timeout','dialRecallMeTimeout','dialRecallInQueue','dialOrderByScheduledAt','dialAgiAfterHangupAgent','dialQueueProject2','dialRandomLastDigitCallerIdNumber','dialCutDigit','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7c09,0x102));var _0x97c0=function(_0x5e5b17,_0x42d94b){_0x5e5b17=_0x5e5b17-0x0;var _0x5c76ff=_0x7c09[_0x5e5b17];return _0x5c76ff;};'use strict';var client=require('../client');exports[_0x97c0('0x0')]=function(){return function(){return client[_0x97c0('0x1')]('GetVoiceQueue',{'options':{'raw':![],'attributes':['id',_0x97c0('0x2'),_0x97c0('0x3'),_0x97c0('0x4'),_0x97c0('0x5'),_0x97c0('0x6'),_0x97c0('0x7'),_0x97c0('0x8'),'dialMethod','dialLimitChannel','dialLimitQueue',_0x97c0('0x9'),_0x97c0('0xa'),_0x97c0('0xb'),_0x97c0('0xc'),_0x97c0('0xd'),'dialOriginateCallerIdNumber',_0x97c0('0xe'),'dialQueueOptions',_0x97c0('0xf'),_0x97c0('0x10'),'dialCongestionMaxRetry','dialCongestionRetryFrequency',_0x97c0('0x11'),_0x97c0('0x12'),_0x97c0('0x13'),_0x97c0('0x14'),_0x97c0('0x15'),_0x97c0('0x16'),_0x97c0('0x17'),_0x97c0('0x18'),_0x97c0('0x19'),_0x97c0('0x1a'),_0x97c0('0x1b'),_0x97c0('0x1c'),_0x97c0('0x1d'),'dialAMDTotalAnalysisTime',_0x97c0('0x1e'),_0x97c0('0x1f'),_0x97c0('0x20'),'dialAMDSilenceThreshold',_0x97c0('0x21'),_0x97c0('0x22'),_0x97c0('0x23'),_0x97c0('0x24'),_0x97c0('0x25'),_0x97c0('0x26'),'dialAgiAfterHangupClient',_0x97c0('0x27'),_0x97c0('0x6'),'strategy',_0x97c0('0x28'),_0x97c0('0x29'),_0x97c0('0x2a'),_0x97c0('0x2b'),_0x97c0('0x2c'),_0x97c0('0x2d'),_0x97c0('0x2e'),_0x97c0('0x2f'),_0x97c0('0x30'),_0x97c0('0x31'),'dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency',_0x97c0('0x32'),_0x97c0('0x33'),_0x97c0('0x34'),'dialPreviewAutoRecallMe'],'include':[{'model':_0x97c0('0x35'),'as':_0x97c0('0x35'),'attributes':['id',_0x97c0('0x2'),_0x97c0('0x36'),_0x97c0('0x37')]},{'model':_0x97c0('0x38'),'as':_0x97c0('0x39'),'attributes':['id','name']},{'model':_0x97c0('0x35'),'as':_0x97c0('0x3a'),'attributes':['id',_0x97c0('0x2'),_0x97c0('0x36'),'active']},{'model':_0x97c0('0x3b'),'as':_0x97c0('0x3b'),'attributes':['id','name'],'include':[{'model':_0x97c0('0x3b'),'as':_0x97c0('0x3c'),'attributes':['id',_0x97c0('0x2'),'interval']}]}]},'log':'getVoiceQueues'});};};
\ No newline at end of file
+var _0x22a4=['dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDMaximumWordLength','dialRecallMeTimeout','dialRecallInQueue','dialOrderByScheduledAt','dialAgiAfterHangupAgent','dialAgiAfterHangupClient','dialQueueProject2','monitor_format','strategy','dialRandomLastDigitCallerIdNumber','dialCutDigit','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedRetryFrequency','dialMachineRetryFrequency','dialAgentRejectRetryFrequency','mandatoryDisposition','dialPredictiveIntervalMaxThreshold','Trunk','callerid','Pause','name','Interval','Intervals','interval','../client','getVoiceQueues','Request','GetVoiceQueue','acw','autopause','type','dialActive','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateTimeout','dialQueueOptions','dialQueueTimeout','dialQueueProject','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialGlobalMaxRetry','dialTimezone','dialPrefix','dialCheckDuplicateType','dialAMDActive'];(function(_0x42c6f1,_0x338d7b){var _0x3c7398=function(_0x151494){while(--_0x151494){_0x42c6f1['push'](_0x42c6f1['shift']());}};_0x3c7398(++_0x338d7b);}(_0x22a4,0x93));var _0x422a=function(_0xc729b,_0xeccb29){_0xc729b=_0xc729b-0x0;var _0x367241=_0x22a4[_0xc729b];return _0x367241;};'use strict';var client=require(_0x422a('0x0'));exports[_0x422a('0x1')]=function(){return function(){return client[_0x422a('0x2')](_0x422a('0x3'),{'options':{'raw':![],'attributes':['id','name',_0x422a('0x4'),'acwTimeout',_0x422a('0x5'),'monitor_format',_0x422a('0x6'),_0x422a('0x7'),'dialMethod',_0x422a('0x8'),_0x422a('0x9'),_0x422a('0xa'),_0x422a('0xb'),_0x422a('0xc'),_0x422a('0xd'),'dialOriginateCallerIdName','dialOriginateCallerIdNumber',_0x422a('0xe'),_0x422a('0xf'),_0x422a('0x10'),_0x422a('0x11'),'dialCongestionMaxRetry',_0x422a('0x12'),_0x422a('0x13'),_0x422a('0x14'),_0x422a('0x15'),'dialNoAnswerRetryFrequency',_0x422a('0x16'),_0x422a('0x17'),'dialGlobalInterval',_0x422a('0x18'),_0x422a('0x19'),_0x422a('0x1a'),_0x422a('0x1b'),_0x422a('0x1c'),_0x422a('0x1d'),'dialAMDTotalAnalysisTime',_0x422a('0x1e'),_0x422a('0x1f'),_0x422a('0x20'),'dialAMDSilenceThreshold',_0x422a('0x21'),'timeout',_0x422a('0x22'),_0x422a('0x23'),_0x422a('0x24'),_0x422a('0x25'),_0x422a('0x26'),_0x422a('0x27'),_0x422a('0x28'),_0x422a('0x29'),_0x422a('0x2a'),_0x422a('0x2b'),'dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency',_0x422a('0x2c'),_0x422a('0x2d'),'dialAbandonedMaxRetry',_0x422a('0x2e'),'dialMachineMaxRetry',_0x422a('0x2f'),'dialAgentRejectMaxRetry',_0x422a('0x30'),_0x422a('0x31'),_0x422a('0x32'),'dialPredictiveIntervalMinThreshold'],'include':[{'model':_0x422a('0x33'),'as':_0x422a('0x33'),'attributes':['id','name',_0x422a('0x34'),'active']},{'model':_0x422a('0x35'),'as':'mandatoryDispositionPause','attributes':['id',_0x422a('0x36')]},{'model':_0x422a('0x33'),'as':'TrunkBackup','attributes':['id',_0x422a('0x36'),_0x422a('0x34'),'active']},{'model':_0x422a('0x37'),'as':_0x422a('0x37'),'attributes':['id',_0x422a('0x36')],'include':[{'model':_0x422a('0x37'),'as':_0x422a('0x38'),'attributes':['id',_0x422a('0x36'),_0x422a('0x39')]}]}]},'log':_0x422a('0x1')});};};
\ 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(_0x5d6f0d,_0x5cf13a){var _0x424f88=function(_0x174677){while(--_0x174677){_0x5d6f0d['push'](_0x5d6f0d['shift']());}};_0x424f88(++_0x5cf13a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x47b58b,_0x41a189){_0x47b58b=_0x47b58b-0x0;var _0x46bebe=_0xa9e0[_0x47b58b];return _0x46bebe;};'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(_0xeddf40,_0x12a6d6){var _0x455c83=function(_0x1636c9){while(--_0x1636c9){_0xeddf40['push'](_0xeddf40['shift']());}};_0x455c83(++_0x12a6d6);}(_0xa9e0,0x123));var _0x0a9e=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0xa9e0[_0x6c993a];return _0x27f547;};'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 _0x8c7c=['Request','GetVoiceQueueRtPauses','../client','getVoiceQueueRtPauses'];(function(_0x23165a,_0x19d021){var _0x40c6c4=function(_0x57e397){while(--_0x57e397){_0x23165a['push'](_0x23165a['shift']());}};_0x40c6c4(++_0x19d021);}(_0x8c7c,0xbe));var _0xc8c7=function(_0x3dc538,_0x4f7702){_0x3dc538=_0x3dc538-0x0;var _0x72c2fd=_0x8c7c[_0x3dc538];return _0x72c2fd;};'use strict';var client=require(_0xc8c7('0x0'));exports[_0xc8c7('0x1')]=function(_0x4eddd2){return function(){return client[_0xc8c7('0x2')](_0xc8c7('0x3'),{'options':{'where':{'VoiceQueueId':_0x4eddd2,'paused':!![]},'raw':!![]},'log':_0xc8c7('0x1')});};};
\ No newline at end of file
+var _0x3275=['GetVoiceQueueRtPauses','../client','getVoiceQueueRtPauses','Request'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x3275,0xf9));var _0x5327=function(_0x5a778b,_0x717daa){_0x5a778b=_0x5a778b-0x0;var _0x32f0da=_0x3275[_0x5a778b];return _0x32f0da;};'use strict';var client=require(_0x5327('0x0'));exports[_0x5327('0x1')]=function(_0x514e50){return function(){return client[_0x5327('0x2')](_0x5327('0x3'),{'options':{'where':{'VoiceQueueId':_0x514e50,'paused':!![]},'raw':!![]},'log':'getVoiceQueueRtPauses'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['CreateVoiceRecording','merge','monitorFilename','lodash','../client','create'];(function(_0x3f7812,_0x4cfa22){var _0x4647ac=function(_0x552fbc){while(--_0x552fbc){_0x3f7812['push'](_0x3f7812['shift']());}};_0x4647ac(++_0x4cfa22);}(_0x9957,0x93));var _0x7995=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x9957[_0x501510];return _0x1e6ee5;};'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(_0x26c7f5,_0x587db7){var _0x1a81b3=function(_0x3f6b3b){while(--_0x3f6b3b){_0x26c7f5['push'](_0x26c7f5['shift']());}};_0x1a81b3(++_0x587db7);}(_0x9957,0x93));var _0x7995=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x9957[_0x2f5ac5];return _0x37c9a8;};'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 _0xe370=['transfererlinkedid','transfereechannel','transfereecalleridname','transfereeconnectedlinenum','transfereelinkedid','isexternal','context','extension','blind','attendedTransfer','Request','origtransfererchannel','origtransferercalleridnum','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','transfertargetcalleridnum','transfertargetcalleridname','transfertargetconnectedlinenum','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetcontext','transfertargetexten','transfertargetlinkedid','origtransferercontext','attended','../client','blindTransfer','CreateVoiceTransferReport','result','transferercalleridnum','transfererconnectedlinename','transfereraccountcode','transferercontext','transfererexten'];(function(_0x345894,_0x3943ef){var _0x3a1ece=function(_0xb924a6){while(--_0xb924a6){_0x345894['push'](_0x345894['shift']());}};_0x3a1ece(++_0x3943ef);}(_0xe370,0x12f));var _0x0e37=function(_0x3eb540,_0x4e517a){_0x3eb540=_0x3eb540-0x0;var _0x2e88d8=_0xe370[_0x3eb540];return _0x2e88d8;};'use strict';var client=require(_0x0e37('0x0'));exports['transfers']={};exports[_0x0e37('0x1')]=function(_0x4f488f){return client['Request'](_0x0e37('0x2'),{'body':{'result':_0x4f488f[_0x0e37('0x3')],'transfererchannel':_0x4f488f['transfererchannel'],'transferercalleridnum':_0x4f488f[_0x0e37('0x4')],'transferercalleridname':_0x4f488f['transferercalleridname'],'transfererconnectedlinenum':_0x4f488f['transfererconnectedlinenum'],'transfererconnectedlinename':_0x4f488f[_0x0e37('0x5')],'transfereraccountcode':_0x4f488f[_0x0e37('0x6')],'transferercontext':_0x4f488f[_0x0e37('0x7')],'transfererexten':_0x4f488f[_0x0e37('0x8')],'transfererlinkedid':_0x4f488f[_0x0e37('0x9')],'transfereechannel':_0x4f488f[_0x0e37('0xa')],'transfereecalleridnum':_0x4f488f['transfereecalleridnum'],'transfereecalleridname':_0x4f488f[_0x0e37('0xb')],'transfereeconnectedlinenum':_0x4f488f[_0x0e37('0xc')],'transfereeconnectedlinename':_0x4f488f['transfereeconnectedlinename'],'transfereeaccountcode':_0x4f488f['transfereeaccountcode'],'transfereecontext':_0x4f488f['transfereecontext'],'transfereeexten':_0x4f488f['transfereeexten'],'transfereelinkedid':_0x4f488f[_0x0e37('0xd')],'isexternal':_0x4f488f[_0x0e37('0xe')],'context':_0x4f488f[_0x0e37('0xf')],'extension':_0x4f488f[_0x0e37('0x10')],'type':_0x0e37('0x11')},'log':_0x0e37('0x2')});};exports[_0x0e37('0x12')]=function(_0x2479c5){return client[_0x0e37('0x13')]('CreateVoiceTransferReport',{'body':{'result':_0x2479c5[_0x0e37('0x3')],'transfererchannel':_0x2479c5[_0x0e37('0x14')],'transferercalleridnum':_0x2479c5[_0x0e37('0x15')],'transferercalleridname':_0x2479c5[_0x0e37('0x16')],'transfererconnectedlinenum':_0x2479c5[_0x0e37('0x17')],'transfererconnectedlinename':_0x2479c5[_0x0e37('0x18')],'transfereraccountcode':_0x2479c5[_0x0e37('0x19')],'transferercontext':_0x2479c5[_0x0e37('0x1a')],'transfererexten':_0x2479c5[_0x0e37('0x1b')],'transfererlinkedid':_0x2479c5[_0x0e37('0x1c')],'transfereechannel':_0x2479c5['transfertargetchannel'],'transfereecalleridnum':_0x2479c5[_0x0e37('0x1d')],'transfereecalleridname':_0x2479c5[_0x0e37('0x1e')],'transfereeconnectedlinenum':_0x2479c5[_0x0e37('0x1f')],'transfereeconnectedlinename':_0x2479c5[_0x0e37('0x20')],'transfereeaccountcode':_0x2479c5[_0x0e37('0x21')],'transfereecontext':_0x2479c5[_0x0e37('0x22')],'transfereeexten':_0x2479c5[_0x0e37('0x23')],'transfereelinkedid':_0x2479c5[_0x0e37('0x24')],'isexternal':_0x2479c5[_0x0e37('0xe')],'context':_0x2479c5[_0x0e37('0x25')],'extension':_0x2479c5['origtransfererexten'],'type':_0x0e37('0x26')},'log':_0x0e37('0x2')});};
\ No newline at end of file
+var _0x943b=['transfers','blindTransfer','CreateVoiceTransferReport','result','transfererchannel','transferercalleridnum','transferercalleridname','transfererconnectedlinename','transfererexten','transfererlinkedid','transfereechannel','transfereecalleridnum','transfereeconnectedlinenum','transfereeconnectedlinename','transfereeaccountcode','transfereecontext','transfereeexten','transfereelinkedid','isexternal','context','extension','blind','origtransfererchannel','origtransferercalleridnum','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','transfertargetchannel','transfertargetcalleridname','transfertargetconnectedlinenum','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetcontext','transfertargetexten','transfertargetlinkedid','origtransferercontext','../client'];(function(_0x440f7a,_0x4368eb){var _0x5325e1=function(_0x1324a7){while(--_0x1324a7){_0x440f7a['push'](_0x440f7a['shift']());}};_0x5325e1(++_0x4368eb);}(_0x943b,0x170));var _0xb943=function(_0x244af5,_0x3acee3){_0x244af5=_0x244af5-0x0;var _0x4c9459=_0x943b[_0x244af5];return _0x4c9459;};'use strict';var client=require(_0xb943('0x0'));exports[_0xb943('0x1')]={};exports[_0xb943('0x2')]=function(_0x204ff7){return client['Request'](_0xb943('0x3'),{'body':{'result':_0x204ff7[_0xb943('0x4')],'transfererchannel':_0x204ff7[_0xb943('0x5')],'transferercalleridnum':_0x204ff7[_0xb943('0x6')],'transferercalleridname':_0x204ff7[_0xb943('0x7')],'transfererconnectedlinenum':_0x204ff7['transfererconnectedlinenum'],'transfererconnectedlinename':_0x204ff7[_0xb943('0x8')],'transfereraccountcode':_0x204ff7['transfereraccountcode'],'transferercontext':_0x204ff7['transferercontext'],'transfererexten':_0x204ff7[_0xb943('0x9')],'transfererlinkedid':_0x204ff7[_0xb943('0xa')],'transfereechannel':_0x204ff7[_0xb943('0xb')],'transfereecalleridnum':_0x204ff7[_0xb943('0xc')],'transfereecalleridname':_0x204ff7['transfereecalleridname'],'transfereeconnectedlinenum':_0x204ff7[_0xb943('0xd')],'transfereeconnectedlinename':_0x204ff7[_0xb943('0xe')],'transfereeaccountcode':_0x204ff7[_0xb943('0xf')],'transfereecontext':_0x204ff7[_0xb943('0x10')],'transfereeexten':_0x204ff7[_0xb943('0x11')],'transfereelinkedid':_0x204ff7[_0xb943('0x12')],'isexternal':_0x204ff7[_0xb943('0x13')],'context':_0x204ff7[_0xb943('0x14')],'extension':_0x204ff7[_0xb943('0x15')],'type':_0xb943('0x16')},'log':_0xb943('0x3')});};exports['attendedTransfer']=function(_0x380c92){return client['Request'](_0xb943('0x3'),{'body':{'result':_0x380c92[_0xb943('0x4')],'transfererchannel':_0x380c92[_0xb943('0x17')],'transferercalleridnum':_0x380c92[_0xb943('0x18')],'transferercalleridname':_0x380c92[_0xb943('0x19')],'transfererconnectedlinenum':_0x380c92[_0xb943('0x1a')],'transfererconnectedlinename':_0x380c92[_0xb943('0x1b')],'transfereraccountcode':_0x380c92[_0xb943('0x1c')],'transferercontext':_0x380c92[_0xb943('0x1d')],'transfererexten':_0x380c92[_0xb943('0x1e')],'transfererlinkedid':_0x380c92[_0xb943('0x1f')],'transfereechannel':_0x380c92[_0xb943('0x20')],'transfereecalleridnum':_0x380c92['transfertargetcalleridnum'],'transfereecalleridname':_0x380c92[_0xb943('0x21')],'transfereeconnectedlinenum':_0x380c92[_0xb943('0x22')],'transfereeconnectedlinename':_0x380c92[_0xb943('0x23')],'transfereeaccountcode':_0x380c92[_0xb943('0x24')],'transfereecontext':_0x380c92[_0xb943('0x25')],'transfereeexten':_0x380c92[_0xb943('0x26')],'transfereelinkedid':_0x380c92[_0xb943('0x27')],'isexternal':_0x380c92[_0xb943('0x13')],'context':_0x380c92[_0xb943('0x28')],'extension':_0x380c92['origtransfererexten'],'type':'attended'},'log':_0xb943('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf55=['util','validate','bluebird','../../../config/environment','../properties','../ami','format','%s/%s','timers','timer','agents','updateStatusRealtime','pause','QueuePause','isConnected','asterisk','username','ami\x20disconnected','join','pick','keys','action','Reload','then','message','catch','error','command','Action','content','voiceQueues','hasOwnProperty','strategy','available','loggedIn','sumBillable','sumHoldTime','total','unmanaged','waiting','loggedInDb','type','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','temp','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalAvailable','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','startProgressive','Trunk','name','active','Interval','push','length','omit','undefined','map','channels','channel','filename','uniqueid','wav','MixMonitor','ai(mixmonitorid)','find','/var/spool/asterisk/monitor/','toLowerCase','isNil','monitors','mixmonitorid','rec','status','voicechannel','resolve','StopMixMonitor','destinationchannel','stop','Channel\x20doesn\x27t\x20exist','values','voicequeuechannel','queueChannels','Redirect','exten','telephones','trunks','outboundChannels','outbound','campaigns','run','Event\x20name\x20mandatory','emit','event','checkAfterSend','http','listen','127.0.0.1','AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash'];(function(_0x33d581,_0x2da6d0){var _0x3320da=function(_0x17d76a){while(--_0x17d76a){_0x33d581['push'](_0x33d581['shift']());}};_0x3320da(++_0x2da6d0);}(_0xdf55,0x83));var _0x5df5=function(_0x1903aa,_0x343458){_0x1903aa=_0x1903aa-0x0;var _0x51fe28=_0xdf55[_0x1903aa];return _0x51fe28;};'use strict';var _=require(_0x5df5('0x0'));var util=require(_0x5df5('0x1'));var jayson=require('jayson/promise');var schema=require(_0x5df5('0x2'));var BPromise=require(_0x5df5('0x3'));var moment=require('moment');var config=require(_0x5df5('0x4'));var properties=require(_0x5df5('0x5'));var ami=require(_0x5df5('0x6'));exports['listen']=function(_0x289af4,_0x417341,_0x27ec86){return new BPromise(function(_0x476e21,_0x9b8756){var _0x2b7ed9={'QueuePause':function(_0x4722a2){return new Promise(function(_0x3743f3,_0x4d43a3){var _0x338f2b=util[_0x5df5('0x7')](_0x5df5('0x8'),'SIP',_0x4722a2['name']);if(_0x289af4[_0x5df5('0x9')]&&_0x289af4['timers'][_0x338f2b]&&_0x289af4[_0x5df5('0x9')][_0x338f2b][_0x5df5('0xa')]){_0x289af4['timers'][_0x338f2b]['updateAcw']();}if(_0x289af4[_0x5df5('0xb')][_0x338f2b]){_0x289af4[_0x5df5('0xb')][_0x338f2b][_0x5df5('0xc')]({'statePause':_0x4722a2[_0x5df5('0xd')]?!![]:![]});}_0x3743f3({'code':0xc8,'message':_0x5df5('0xe')});});},'Reload':function(_0xb4a4fe){var _0x37a747=this;return new Promise(function(_0x463990,_0x52bf75){if(ami[_0x5df5('0xf')]()==![]){return _0x52bf75(_0x37a747['error'](0x1f4,[config[_0x5df5('0x10')]['ip'],config['asterisk'][_0x5df5('0x11')],_0x5df5('0x12')][_0x5df5('0x13')]('\x20')));}_0xb4a4fe=_[_0x5df5('0x14')](_0xb4a4fe,_[_0x5df5('0x15')](properties['module']));_0xb4a4fe[_0x5df5('0x16')]=_0x5df5('0x17');return ami['Action'](_0xb4a4fe)[_0x5df5('0x18')](function(_0x45813f){_0x463990({'code':0xc8,'message':_0x45813f[_0x5df5('0x19')]});})[_0x5df5('0x1a')](function(_0x215d59){_0x52bf75(_0x37a747['error'](0x1f5,_0x215d59['message']));});});},'Command':function(_0x48c824){var _0x5d8dfd=this;return new Promise(function(_0x58152a,_0x40a8f5){if(ami[_0x5df5('0xf')]()==![]){return _0x40a8f5(_0x5d8dfd[_0x5df5('0x1b')](0x1f4,[config[_0x5df5('0x10')]['ip'],config['asterisk'][_0x5df5('0x11')],_0x5df5('0x12')][_0x5df5('0x13')]('\x20')));}_0x48c824=_[_0x5df5('0x14')](_0x48c824,_0x5df5('0x1c'));_0x48c824[_0x5df5('0x16')]='Command';return ami[_0x5df5('0x1d')](_0x48c824)[_0x5df5('0x18')](function(_0x8742a7){_0x58152a({'code':0xc8,'message':_0x8742a7[_0x5df5('0x1e')]});})['catch'](function(_0x4358ba){_0x40a8f5(_0x5d8dfd[_0x5df5('0x1b')](0x1f5,_0x4358ba[_0x5df5('0x19')]));});});},'VoiceQueues':function(_0x4a544b){return new Promise(function(_0x52206d,_0x532923){var _0x357fb0=[];for(var _0x3ff82e in _0x289af4[_0x5df5('0x1f')]){if(_0x289af4[_0x5df5('0x1f')][_0x5df5('0x20')](_0x3ff82e)){var _0x1fd83c=_0x289af4[_0x5df5('0x1f')][_0x3ff82e];var _0x28723e={'id':_0x1fd83c['id'],'name':_0x1fd83c['name'],'strategy':_0x1fd83c[_0x5df5('0x21')],'answered':_0x1fd83c['answered'],'available':_0x1fd83c[_0x5df5('0x22')],'loggedIn':_0x1fd83c[_0x5df5('0x23')],'pTalking':_0x1fd83c['pTalking'],'sumBillable':_0x1fd83c[_0x5df5('0x24')],'sumDuration':_0x1fd83c['sumDuration'],'sumHoldTime':_0x1fd83c[_0x5df5('0x25')]||0x0,'talking':_0x1fd83c['talking'],'total':_0x1fd83c[_0x5df5('0x26')],'type':_0x1fd83c['type'],'unmanaged':_0x1fd83c[_0x5df5('0x27')],'abandoned':_0x1fd83c['abandoned'],'waiting':_0x1fd83c[_0x5df5('0x28')],'loggedInDb':_0x1fd83c[_0x5df5('0x29')]};if(_0x1fd83c[_0x5df5('0x2a')]==='outbound'){_0x28723e[_0x5df5('0x2b')]=_0x1fd83c[_0x5df5('0x2b')];_0x28723e[_0x5df5('0x2c')]=_0x1fd83c[_0x5df5('0x2c')];_0x28723e[_0x5df5('0x2d')]=_0x1fd83c[_0x5df5('0x2d')];_0x28723e[_0x5df5('0x2e')]=_0x1fd83c['dialOriginateCallerIdNumber'];_0x28723e['dialOriginateTimeout']=_0x1fd83c[_0x5df5('0x2f')];_0x28723e[_0x5df5('0x30')]=_0x1fd83c[_0x5df5('0x30')];_0x28723e[_0x5df5('0x31')]=_0x1fd83c[_0x5df5('0x31')];_0x28723e[_0x5df5('0x32')]=_0x1fd83c['outboundAnswerAgiCallsDay'];_0x28723e[_0x5df5('0x33')]=_0x1fd83c[_0x5df5('0x33')];_0x28723e[_0x5df5('0x34')]=_0x1fd83c[_0x5df5('0x34')];_0x28723e['outboundBusyCallsDay']=_0x1fd83c[_0x5df5('0x35')];_0x28723e['outboundCongestionCallsDay']=_0x1fd83c[_0x5df5('0x36')];_0x28723e[_0x5df5('0x37')]=_0x1fd83c['outboundDropCallsDayACS'];_0x28723e[_0x5df5('0x38')]=_0x1fd83c['outboundDropCallsDayCallersExit'];_0x28723e[_0x5df5('0x39')]=_0x1fd83c[_0x5df5('0x39')];_0x28723e[_0x5df5('0x3a')]=_0x1fd83c[_0x5df5('0x3a')];_0x28723e['outboundNoSuchCallsDay']=_0x1fd83c[_0x5df5('0x3b')];_0x28723e[_0x5df5('0x3c')]=_0x1fd83c[_0x5df5('0x3c')];_0x28723e[_0x5df5('0x3d')]=_0x1fd83c['outboundReCallsDay'];_0x28723e[_0x5df5('0x3e')]=_0x1fd83c[_0x5df5('0x3e')];_0x28723e[_0x5df5('0x3f')]=_0x1fd83c[_0x5df5('0x3f')];_0x28723e[_0x5df5('0x40')]=_0x1fd83c[_0x5df5('0x40')];_0x28723e[_0x5df5('0x41')]=_0x1fd83c['predictiveIntervalAvgHoldtime'];_0x28723e[_0x5df5('0x42')]=_0x1fd83c[_0x5df5('0x42')];_0x28723e['predictiveIntervalDroppedCallsCallersExit']=_0x1fd83c[_0x5df5('0x43')];_0x28723e[_0x5df5('0x44')]=_0x1fd83c['predictiveIntervalDroppedCallsTimeout'];_0x28723e[_0x5df5('0x45')]=_0x1fd83c[_0x5df5('0x45')];_0x28723e[_0x5df5('0x46')]=_0x1fd83c[_0x5df5('0x46')];_0x28723e[_0x5df5('0x47')]=_0x1fd83c[_0x5df5('0x47')];_0x28723e[_0x5df5('0x48')]=_0x1fd83c[_0x5df5('0x48')];_0x28723e['predictiveIntervalPauses']=_0x1fd83c['predictiveIntervalPauses'];_0x28723e[_0x5df5('0x49')]=_0x1fd83c['predictiveIntervalAvailable'];_0x28723e[_0x5df5('0x4a')]=_0x1fd83c[_0x5df5('0x4a')];_0x28723e['message']=_0x1fd83c[_0x5df5('0x19')];_0x28723e[_0x5df5('0x4b')]=_0x1fd83c[_0x5df5('0x4b')];_0x28723e[_0x5df5('0x4c')]=_0x1fd83c[_0x5df5('0x4c')];_0x28723e[_0x5df5('0x4d')]=_0x1fd83c[_0x5df5('0x4d')];_0x28723e[_0x5df5('0x4e')]=_0x1fd83c['erlangAbandonmentRate'];_0x28723e[_0x5df5('0x4f')]=_0x1fd83c['erlangBusyFactor'];_0x28723e[_0x5df5('0x50')]=_0x1fd83c[_0x5df5('0x50')];_0x28723e[_0x5df5('0x51')]=_0x1fd83c[_0x5df5('0x51')];}if(_0x1fd83c[_0x5df5('0x52')]){_0x28723e['Trunk']={'id':_0x1fd83c[_0x5df5('0x52')]['id'],'name':_0x1fd83c[_0x5df5('0x52')][_0x5df5('0x53')],'active':_0x1fd83c['Trunk'][_0x5df5('0x54')],'callerid':_0x1fd83c[_0x5df5('0x52')]['callerid']};}if(_0x1fd83c[_0x5df5('0x55')]){_0x28723e[_0x5df5('0x55')]={'id':_0x1fd83c[_0x5df5('0x55')]['id'],'name':_0x1fd83c[_0x5df5('0x55')]['name']};}_0x357fb0[_0x5df5('0x56')](_0x28723e);}}_0x52206d({'count':_0x357fb0[_0x5df5('0x57')],'rows':_0x357fb0});});},'UpdateVoiceQueue':function(_0x514fd8){return new Promise(function(_0x18d22c,_0xaf1598){var _0x35927b=_['find'](_0x289af4[_0x5df5('0x1f')],{'id':parseInt(_0x514fd8['id'])});var _0x3842d0=_[_0x5df5('0x58')](_0x514fd8,['id']);if(_0x35927b){for(var _0x2724e3 in _0x3842d0){if(typeof _0x3842d0[_0x2724e3]!=='undefined'&&typeof _0x35927b[_0x2724e3]!==_0x5df5('0x59')){_0x35927b[_0x2724e3]=_0x3842d0[_0x2724e3];}}_0x18d22c(_0x35927b);}else{_0xaf1598();}});},'VoiceChannels':function(_0xcdf101){return new Promise(function(_0x2eb30e,_0x3bbb73){var _0x14f9ca=_['values'](_0x289af4['channels']);_0x2eb30e({'count':_0x14f9ca[_0x5df5('0x57')],'rows':_0x14f9ca});});},'VoiceChannelMixMonitor':function(_0x5b12f1){var _0x35ad9d=this;return new Promise(function(_0x207498,_0x2f43bf){if(ami[_0x5df5('0xf')]()==![]){return _0x2f43bf(_0x35ad9d['error'](0x1f4,[config[_0x5df5('0x10')]['ip'],config[_0x5df5('0x10')][_0x5df5('0x11')],_0x5df5('0x12')][_0x5df5('0x13')]('\x20')));}var _0x2a25fe=schema(properties['voicechannel'])[_0x5df5('0x2')](_0x5b12f1);if(_0x2a25fe['length']>0x0){return _0x2f43bf(_0x35ad9d[_0x5df5('0x1b')](0x1f4,_[_0x5df5('0x5a')](_0x2a25fe,_0x5df5('0x19'))['join'](',\x20')));}var _0x8622f4=_['find'](_0x289af4[_0x5df5('0x5b')],{'uniqueid':_0x5b12f1['uniqueid']});if(_0x8622f4&&_0x8622f4[_0x5df5('0x5c')]){var _0x2e9b93=util[_0x5df5('0x7')]('%s.%s',_0x5b12f1[_0x5df5('0x5d')]||_0x5b12f1[_0x5df5('0x5e')],_0x5b12f1['format']||_0x5df5('0x5f'));return ami[_0x5df5('0x1d')]({'action':_0x5df5('0x60'),'channel':_0x8622f4[_0x5df5('0x5c')],'file':_0x2e9b93,'options':_0x5df5('0x61')})[_0x5df5('0x18')](function(_0x16fc86){var _0x48087d=_[_0x5df5('0x62')](_0x8622f4['monitors'],{'filename':_0x5df5('0x63')+_0x2e9b93[_0x5df5('0x64')]()});if(_[_0x5df5('0x65')](_0x48087d)){_0x8622f4[_0x5df5('0x66')][_0x5df5('0x56')]({'filename':_0x5df5('0x63')+_0x2e9b93[_0x5df5('0x64')](),'createdAt':moment()[_0x5df5('0x7')]('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':_0x16fc86[_0x5df5('0x67')],'status':_0x5df5('0x68')});}else{_0x48087d[_0x5df5('0x67')]=_0x16fc86[_0x5df5('0x67')];_0x48087d[_0x5df5('0x69')]='rec';}_0x207498({'code':0xc8,'message':[_0x5b12f1[_0x5df5('0x5e')],'MixMonitor\x20Success',_0x16fc86['mixmonitorid']][_0x5df5('0x13')]('\x20'),'mixmonitorid':_0x16fc86[_0x5df5('0x67')]});})[_0x5df5('0x1a')](function(_0x210ad2){_0x2f43bf(_0x35ad9d[_0x5df5('0x1b')](0x1f5,[_0x5b12f1[_0x5df5('0x5e')],_0x210ad2['message'][_0x5df5('0x64')]()][_0x5df5('0x13')]('\x20')));});}else{return _0x2f43bf(_0x35ad9d['error'](0x1f5,'Channel\x20doesn\x27t\x20exist'));}});},'VoiceChannelStopMixMonitor':function(_0x7fdce7){var _0x2e6d4d=this;return new Promise(function(_0x9a168c,_0x4672c5){if(ami[_0x5df5('0xf')]()==![]){return _0x4672c5(_0x2e6d4d[_0x5df5('0x1b')](0x1f4,[config['asterisk']['ip'],config['asterisk']['username'],_0x5df5('0x12')][_0x5df5('0x13')]('\x20')));}var _0x57e3ea=schema(properties[_0x5df5('0x6a')])[_0x5df5('0x2')](_0x7fdce7);if(_0x57e3ea[_0x5df5('0x57')]>0x0){return _0x4672c5(_0x2e6d4d[_0x5df5('0x1b')](0x1f4,_[_0x5df5('0x5a')](_0x57e3ea,_0x5df5('0x19'))[_0x5df5('0x13')](',\x20')));}var _0x95e12=_[_0x5df5('0x62')](_0x289af4['channels'],{'uniqueid':_0x7fdce7[_0x5df5('0x5e')]});if(_0x95e12){return BPromise[_0x5df5('0x6b')]()[_0x5df5('0x18')](function(){if(_0x95e12[_0x5df5('0x5c')]){return ami[_0x5df5('0x1d')]({'action':_0x5df5('0x6c'),'channel':_0x95e12[_0x5df5('0x5c')],'mixmonitorid':_0x7fdce7[_0x5df5('0x67')]})[_0x5df5('0x1a')](function(_0xf3e0ac){});}})[_0x5df5('0x18')](function(){if(_0x95e12[_0x5df5('0x6d')]){return ami['Action']({'action':_0x5df5('0x6c'),'channel':_0x95e12[_0x5df5('0x6d')],'mixmonitorid':_0x7fdce7['mixmonitorid']})[_0x5df5('0x1a')](function(_0x24702a){});}})[_0x5df5('0x18')](function(_0x26e2aa){var _0x5137fb=_[_0x5df5('0x62')](_0x95e12[_0x5df5('0x66')],{'mixmonitorid':_0x7fdce7['mixmonitorid']});if(_0x5137fb){_0x5137fb['status']=_0x5df5('0x6e');}})[_0x5df5('0x18')](function(){var _0x9e61ef=util['format']('%s.%s',_0x7fdce7[_0x5df5('0x5d')]||_0x7fdce7[_0x5df5('0x5e')],_0x7fdce7['format']||_0x5df5('0x5f'));var _0x1b3785=_[_0x5df5('0x62')](_0x95e12[_0x5df5('0x66')],{'filename':_0x5df5('0x63')+_0x9e61ef['toLowerCase']()});if(_0x1b3785){_0x1b3785[_0x5df5('0x69')]=_0x5df5('0x6e');}})[_0x5df5('0x18')](function(){_0x9a168c({'code':0xc8,'message':[_0x7fdce7[_0x5df5('0x5e')],'StopMixMonitor\x20Success'][_0x5df5('0x13')]('\x20')});})['catch'](function(_0x10f893){_0x4672c5(_0x2e6d4d[_0x5df5('0x1b')](0x1f5,[_0x7fdce7['uniqueid'],_0x10f893[_0x5df5('0x19')]['toLowerCase']()][_0x5df5('0x13')]('\x20')));});}else{return _0x4672c5(_0x2e6d4d['error'](0x1f5,_0x5df5('0x6f')));}});},'VoiceQueuesChannels':function(_0x3b8aaf){return new Promise(function(_0x37a40c,_0x21332d){var _0x2a90aa=_[_0x5df5('0x70')](_0x289af4['queueChannels']);_0x37a40c({'count':_0x2a90aa[_0x5df5('0x57')],'rows':_0x2a90aa});});},'VoiceQueuesChannel':function(_0x643ee9){var _0x30a019=this;return new Promise(function(_0x554de4,_0x33c7d7){var _0x32114d=schema(properties[_0x5df5('0x71')])[_0x5df5('0x2')](_0x643ee9);if(_0x32114d[_0x5df5('0x57')]>0x0){return _0x33c7d7(_0x30a019[_0x5df5('0x1b')](0x1f4,_['map'](_0x32114d,'message')[_0x5df5('0x13')](',\x20')));}var _0x23159c=_[_0x5df5('0x62')](_0x289af4[_0x5df5('0x72')],{'uniqueid':_0x643ee9[_0x5df5('0x5e')]});if(_0x23159c){_0x554de4(_0x23159c);}else{return _0x33c7d7(_0x30a019['error'](0x1f5,_0x5df5('0x6f')));}});},'VoiceQueuesChannelHangup':function(_0x2cf2d1){var _0x14e068=this;return new Promise(function(_0x54e5e0,_0x247022){if(ami[_0x5df5('0xf')]()==![]){return _0x247022(_0x14e068[_0x5df5('0x1b')](0x1f4,[config[_0x5df5('0x10')]['ip'],config[_0x5df5('0x10')][_0x5df5('0x11')],_0x5df5('0x12')][_0x5df5('0x13')]('\x20')));}var _0x2675cc=schema(properties['voicequeuechannelhangup'])[_0x5df5('0x2')](_0x2cf2d1);if(_0x2675cc[_0x5df5('0x57')]>0x0){return _0x247022(_0x14e068[_0x5df5('0x1b')](0x1f4,_['map'](_0x2675cc,_0x5df5('0x19'))[_0x5df5('0x13')](',\x20')));}var _0x49f2da=_[_0x5df5('0x62')](_0x289af4[_0x5df5('0x72')],{'uniqueid':_0x2cf2d1[_0x5df5('0x5e')]});if(_0x49f2da&&_0x49f2da['channel']){return ami[_0x5df5('0x1d')]({'action':'Hangup','channel':_0x49f2da[_0x5df5('0x5c')]})[_0x5df5('0x18')](function(_0x17c836){_0x54e5e0({'code':0xc8,'message':[_0x2cf2d1[_0x5df5('0x5e')],_0x17c836[_0x5df5('0x19')][_0x5df5('0x64')]()]['join']('\x20')});})[_0x5df5('0x1a')](function(_0x7b85c6){_0x247022(_0x14e068['error'](0x1f5,[_0x2cf2d1[_0x5df5('0x5e')],_0x7b85c6['message']['toLowerCase']()][_0x5df5('0x13')]('\x20')));});}else{return _0x247022(_0x14e068['error'](0x1f5,_0x5df5('0x6f')));}});},'VoiceQueuesChannelRedirect':function(_0x19c839){var _0x311dc0=this;return new Promise(function(_0x1f3f81,_0x453238){if(ami[_0x5df5('0xf')]()==![]){return _0x453238(_0x311dc0['error'](0x1f4,[config[_0x5df5('0x10')]['ip'],config[_0x5df5('0x10')][_0x5df5('0x11')],'ami\x20disconnected'][_0x5df5('0x13')]('\x20')));}var _0x2d065b=schema(properties['voicequeuechannelredirect'])[_0x5df5('0x2')](_0x19c839);if(_0x2d065b[_0x5df5('0x57')]>0x0){return _0x453238(_0x311dc0[_0x5df5('0x1b')](0x1f4,_[_0x5df5('0x5a')](_0x2d065b,_0x5df5('0x19'))['join'](',\x20')));}var _0x2e2830=_['find'](_0x289af4[_0x5df5('0x72')],{'uniqueid':_0x19c839['uniqueid']});if(_0x2e2830&&_0x2e2830[_0x5df5('0x5c')]){return ami[_0x5df5('0x1d')]({'action':_0x5df5('0x73'),'channel':_0x2e2830[_0x5df5('0x5c')],'exten':_0x19c839[_0x5df5('0x74')],'context':_0x19c839['context']||_0x2e2830['context'],'priority':0x1})[_0x5df5('0x18')](function(_0x179b78){_0x1f3f81({'code':0xc8,'message':[_0x19c839[_0x5df5('0x5e')],_0x179b78[_0x5df5('0x19')][_0x5df5('0x64')]()]['join']('\x20')});})[_0x5df5('0x1a')](function(_0xdceef4){_0x453238(_0x311dc0[_0x5df5('0x1b')](0x1f5,[_0x19c839[_0x5df5('0x5e')],_0xdceef4[_0x5df5('0x19')][_0x5df5('0x64')]()][_0x5df5('0x13')]('\x20')));});}else{return _0x453238(_0x311dc0[_0x5df5('0x1b')](0x1f5,_0x5df5('0x6f')));}});},'Agents':function(_0x285281){return new Promise(function(_0x1bff6c,_0x535fee){var _0x581a59=_['values'](_0x289af4[_0x5df5('0xb')]);_0x1bff6c({'count':_0x581a59[_0x5df5('0x57')],'rows':_0x581a59});});},'Telephones':function(_0x496790){return new Promise(function(_0x1bb992,_0x11bb45){var _0x1e1d34=_[_0x5df5('0x70')](_0x289af4[_0x5df5('0x75')]);_0x1bb992({'count':_0x1e1d34[_0x5df5('0x57')],'rows':_0x1e1d34});});},'Trunks':function(_0x36d8ee){return new Promise(function(_0x4f8f84,_0x331afb){var _0x36c355=_[_0x5df5('0x70')](_0x289af4[_0x5df5('0x76')]);_0x4f8f84({'count':_0x36c355[_0x5df5('0x57')],'rows':_0x36c355});});},'OutboundChannels':function(_0x259f6a){return new Promise(function(_0x3d8c32,_0x535fe6){var _0x34dd22=_[_0x5df5('0x70')](_0x289af4[_0x5df5('0x77')]);_0x3d8c32({'count':_0x34dd22[_0x5df5('0x57')],'rows':_0x34dd22});});},'Outbound':function(_0x24b27c){return new Promise(function(_0x41110a,_0x226636){_0x41110a(_0x289af4[_0x5df5('0x78')]);});},'Campaigns':function(_0x523a89){return new Promise(function(_0x4594d2,_0x2a1916){var _0x508bc6=_[_0x5df5('0x70')](_0x289af4[_0x5df5('0x79')]);_0x4594d2({'count':_0x508bc6[_0x5df5('0x57')],'rows':_0x508bc6});});},'VoiceQueuesPreview':function(_0x25229d){var _0x177b00=this;return new Promise(function(_0x5907b8,_0x19d854){_0x417341[_0x5df5('0x7a')](_0x25229d['id'])[_0x5df5('0x18')](function(_0x4cb7d9){_0x5907b8({'code':0xc8,'message':_0x4cb7d9['message']});})[_0x5df5('0x1a')](function(_0x3f0579){_0x19d854(_0x177b00[_0x5df5('0x1b')](0x1f4,_0x3f0579[_0x5df5('0x19')]));});});},'EventManager':function(_0x19d901){var _0x2a4fef=this;return new Promise(function(_0x584a16,_0x53217e){if(!_0x19d901['event']){return _0x53217e(_0x2a4fef[_0x5df5('0x1b')](0x1f4,_0x5df5('0x7b')));}ami[_0x5df5('0x7c')]('custom:'+_0x19d901[_0x5df5('0x7d')],_0x19d901['message']);_0x584a16({'code':0xc8,'message':_0x19d901});});},'FaxAccounts':function(_0xc53f8d){return new Promise(function(_0x172f01,_0x530de6){var _0x18281b=_[_0x5df5('0x70')](_0x289af4['faxAccounts']);_0x172f01({'count':_0x18281b[_0x5df5('0x57')],'rows':_0x18281b});});},'SendFax':function(_0x19a281){var _0x4367f5=this;return new Promise(function(_0x9fffdb,_0x5372c8){_0x27ec86['send'](_0x19a281)[_0x5df5('0x18')](function(_0x2484ee){_0x9fffdb({'code':0xc8,'message':_0x2484ee[_0x5df5('0x19')]});})['catch'](function(_0x30231a){_0x5372c8(_0x4367f5[_0x5df5('0x1b')](0x1f4,_0x30231a[_0x5df5('0x19')]));});});},'CheckAfterSend':function(_0xfa3cde){var _0x8be225=this;return new Promise(function(_0x5857a1,_0x6b6ddb){_0x27ec86[_0x5df5('0x7e')](_0xfa3cde)[_0x5df5('0x18')](function(_0x10a013){_0x5857a1({'code':0xc8,'message':_0x10a013[_0x5df5('0x19')]});})[_0x5df5('0x1a')](function(_0x2683ec){_0x6b6ddb(_0x8be225[_0x5df5('0x1b')](0x1f4,_0x2683ec[_0x5df5('0x19')]));});});}};var _0x3eb955=jayson['server'](_0x2b7ed9)[_0x5df5('0x7f')]();_0x3eb955['on'](_0x5df5('0x1b'),function(_0x4efacf){return _0x9b8756(_0x4efacf);});_0x3eb955[_0x5df5('0x80')](0x232a,_0x5df5('0x81'),function(){console['log'](_0x5df5('0x82'),0x232a);return _0x476e21(_0x5df5('0x83')+0x232a);});});};
\ No newline at end of file
+var _0x11e5=['../properties','listen','format','%s/%s','SIP','name','timers','timer','updateAcw','updateStatusRealtime','pause','QueuePause','isConnected','error','asterisk','username','join','pick','keys','module','Reload','Action','then','message','ami\x20disconnected','command','action','Command','content','catch','voiceQueues','hasOwnProperty','strategy','answered','loggedIn','pTalking','sumBillable','sumDuration','sumHoldTime','total','abandoned','waiting','loggedInDb','type','outbound','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','temp','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','erlangBusyFactor','startPredictive','startProgressive','Trunk','active','callerid','Interval','push','length','find','omit','undefined','values','channels','voicechannel','map','channel','%s.%s','uniqueid','wav','MixMonitor','ai(mixmonitorid)','monitors','/var/spool/asterisk/monitor/','isNil','toLowerCase','YYYY-MM-DD\x20HH:mm:ss','mixmonitorid','rec','MixMonitor\x20Success','resolve','StopMixMonitor','destinationchannel','status','filename','stop','StopMixMonitor\x20Success','Channel\x20doesn\x27t\x20exist','voicequeuechannel','queueChannels','Hangup','voicequeuechannelredirect','Redirect','exten','context','agents','telephones','trunks','campaigns','run','event','Event\x20name\x20mandatory','emit','custom:','send','server','http','log','AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','jayson/promise','validate','moment','../../../config/environment'];(function(_0x1ad0b5,_0x5a28c2){var _0x4552b2=function(_0x19b3d5){while(--_0x19b3d5){_0x1ad0b5['push'](_0x1ad0b5['shift']());}};_0x4552b2(++_0x5a28c2);}(_0x11e5,0x8b));var _0x511e=function(_0x134b10,_0x282cf6){_0x134b10=_0x134b10-0x0;var _0x204d24=_0x11e5[_0x134b10];return _0x204d24;};'use strict';var _=require(_0x511e('0x0'));var util=require('util');var jayson=require(_0x511e('0x1'));var schema=require(_0x511e('0x2'));var BPromise=require('bluebird');var moment=require(_0x511e('0x3'));var config=require(_0x511e('0x4'));var properties=require(_0x511e('0x5'));var ami=require('../ami');exports[_0x511e('0x6')]=function(_0x4fbd4f,_0x5923a7,_0x342539){return new BPromise(function(_0x323f8c,_0x466dec){var _0x57cac3={'QueuePause':function(_0x47cf56){return new Promise(function(_0x3ebc4b,_0xf0ba86){var _0x25deeb=util[_0x511e('0x7')](_0x511e('0x8'),_0x511e('0x9'),_0x47cf56[_0x511e('0xa')]);if(_0x4fbd4f[_0x511e('0xb')]&&_0x4fbd4f[_0x511e('0xb')][_0x25deeb]&&_0x4fbd4f[_0x511e('0xb')][_0x25deeb][_0x511e('0xc')]){_0x4fbd4f['timers'][_0x25deeb][_0x511e('0xd')]();}if(_0x4fbd4f['agents'][_0x25deeb]){_0x4fbd4f['agents'][_0x25deeb][_0x511e('0xe')]({'statePause':_0x47cf56[_0x511e('0xf')]?!![]:![]});}_0x3ebc4b({'code':0xc8,'message':_0x511e('0x10')});});},'Reload':function(_0x258e2f){var _0x464576=this;return new Promise(function(_0x7dc1bc,_0x4e72fd){if(ami[_0x511e('0x11')]()==![]){return _0x4e72fd(_0x464576[_0x511e('0x12')](0x1f4,[config['asterisk']['ip'],config[_0x511e('0x13')][_0x511e('0x14')],'ami\x20disconnected'][_0x511e('0x15')]('\x20')));}_0x258e2f=_[_0x511e('0x16')](_0x258e2f,_[_0x511e('0x17')](properties[_0x511e('0x18')]));_0x258e2f['action']=_0x511e('0x19');return ami[_0x511e('0x1a')](_0x258e2f)[_0x511e('0x1b')](function(_0x577616){_0x7dc1bc({'code':0xc8,'message':_0x577616[_0x511e('0x1c')]});})['catch'](function(_0x34e6cd){_0x4e72fd(_0x464576['error'](0x1f5,_0x34e6cd['message']));});});},'Command':function(_0x37ae92){var _0x5c4fb9=this;return new Promise(function(_0x33bef5,_0x325278){if(ami[_0x511e('0x11')]()==![]){return _0x325278(_0x5c4fb9[_0x511e('0x12')](0x1f4,[config[_0x511e('0x13')]['ip'],config[_0x511e('0x13')][_0x511e('0x14')],_0x511e('0x1d')]['join']('\x20')));}_0x37ae92=_[_0x511e('0x16')](_0x37ae92,_0x511e('0x1e'));_0x37ae92[_0x511e('0x1f')]=_0x511e('0x20');return ami[_0x511e('0x1a')](_0x37ae92)[_0x511e('0x1b')](function(_0x886b6){_0x33bef5({'code':0xc8,'message':_0x886b6[_0x511e('0x21')]});})[_0x511e('0x22')](function(_0x26618d){_0x325278(_0x5c4fb9['error'](0x1f5,_0x26618d['message']));});});},'VoiceQueues':function(_0x3e1711){return new Promise(function(_0x4d94a1,_0x1ff5c4){var _0x53017d=[];for(var _0x3fbd19 in _0x4fbd4f[_0x511e('0x23')]){if(_0x4fbd4f[_0x511e('0x23')][_0x511e('0x24')](_0x3fbd19)){var _0x1bb7f9=_0x4fbd4f[_0x511e('0x23')][_0x3fbd19];var _0x3c057c={'id':_0x1bb7f9['id'],'name':_0x1bb7f9[_0x511e('0xa')],'strategy':_0x1bb7f9[_0x511e('0x25')],'answered':_0x1bb7f9[_0x511e('0x26')],'available':_0x1bb7f9['available'],'loggedIn':_0x1bb7f9[_0x511e('0x27')],'pTalking':_0x1bb7f9[_0x511e('0x28')],'sumBillable':_0x1bb7f9[_0x511e('0x29')],'sumDuration':_0x1bb7f9[_0x511e('0x2a')],'sumHoldTime':_0x1bb7f9[_0x511e('0x2b')]||0x0,'talking':_0x1bb7f9['talking'],'total':_0x1bb7f9[_0x511e('0x2c')],'type':_0x1bb7f9['type'],'unmanaged':_0x1bb7f9['unmanaged'],'abandoned':_0x1bb7f9[_0x511e('0x2d')],'waiting':_0x1bb7f9[_0x511e('0x2e')],'loggedInDb':_0x1bb7f9[_0x511e('0x2f')]};if(_0x1bb7f9[_0x511e('0x30')]===_0x511e('0x31')){_0x3c057c['dialActive']=_0x1bb7f9[_0x511e('0x32')];_0x3c057c[_0x511e('0x33')]=_0x1bb7f9[_0x511e('0x33')];_0x3c057c[_0x511e('0x34')]=_0x1bb7f9[_0x511e('0x34')];_0x3c057c['dialOriginateCallerIdNumber']=_0x1bb7f9[_0x511e('0x35')];_0x3c057c[_0x511e('0x36')]=_0x1bb7f9[_0x511e('0x36')];_0x3c057c[_0x511e('0x37')]=_0x1bb7f9[_0x511e('0x37')];_0x3c057c[_0x511e('0x38')]=_0x1bb7f9[_0x511e('0x38')];_0x3c057c[_0x511e('0x39')]=_0x1bb7f9['outboundAnswerAgiCallsDay'];_0x3c057c[_0x511e('0x3a')]=_0x1bb7f9[_0x511e('0x3a')];_0x3c057c[_0x511e('0x3b')]=_0x1bb7f9[_0x511e('0x3b')];_0x3c057c['outboundBusyCallsDay']=_0x1bb7f9['outboundBusyCallsDay'];_0x3c057c[_0x511e('0x3c')]=_0x1bb7f9['outboundCongestionCallsDay'];_0x3c057c['outboundDropCallsDayACS']=_0x1bb7f9[_0x511e('0x3d')];_0x3c057c[_0x511e('0x3e')]=_0x1bb7f9[_0x511e('0x3e')];_0x3c057c[_0x511e('0x3f')]=_0x1bb7f9[_0x511e('0x3f')];_0x3c057c['outboundNoAnswerCallsDay']=_0x1bb7f9[_0x511e('0x40')];_0x3c057c[_0x511e('0x41')]=_0x1bb7f9[_0x511e('0x41')];_0x3c057c['outboundOriginateFailureCallsDay']=_0x1bb7f9[_0x511e('0x42')];_0x3c057c[_0x511e('0x43')]=_0x1bb7f9[_0x511e('0x43')];_0x3c057c['outboundRejectCallsDay']=_0x1bb7f9[_0x511e('0x44')];_0x3c057c[_0x511e('0x45')]=_0x1bb7f9['outboundUnknownCallsDay'];_0x3c057c[_0x511e('0x46')]=_0x1bb7f9[_0x511e('0x46')];_0x3c057c[_0x511e('0x47')]=_0x1bb7f9[_0x511e('0x47')];_0x3c057c[_0x511e('0x48')]=_0x1bb7f9[_0x511e('0x48')];_0x3c057c[_0x511e('0x49')]=_0x1bb7f9[_0x511e('0x49')];_0x3c057c[_0x511e('0x4a')]=_0x1bb7f9[_0x511e('0x4a')];_0x3c057c[_0x511e('0x4b')]=_0x1bb7f9['predictiveIntervalErlangCalls'];_0x3c057c[_0x511e('0x4c')]=_0x1bb7f9['predictiveIntervalErlangCallsDroppedCalls'];_0x3c057c['predictiveIntervalHitRate']=_0x1bb7f9[_0x511e('0x4d')];_0x3c057c['predictiveIntervalMultiplicativeFactor']=_0x1bb7f9['predictiveIntervalMultiplicativeFactor'];_0x3c057c[_0x511e('0x4e')]=_0x1bb7f9[_0x511e('0x4e')];_0x3c057c[_0x511e('0x4f')]=_0x1bb7f9[_0x511e('0x4f')];_0x3c057c[_0x511e('0x50')]=_0x1bb7f9[_0x511e('0x50')];_0x3c057c[_0x511e('0x1c')]=_0x1bb7f9[_0x511e('0x1c')];_0x3c057c[_0x511e('0x51')]=_0x1bb7f9[_0x511e('0x51')];_0x3c057c[_0x511e('0x52')]=_0x1bb7f9[_0x511e('0x52')];_0x3c057c[_0x511e('0x53')]=_0x1bb7f9[_0x511e('0x53')];_0x3c057c['erlangAbandonmentRate']=_0x1bb7f9['erlangAbandonmentRate'];_0x3c057c[_0x511e('0x54')]=_0x1bb7f9[_0x511e('0x54')];_0x3c057c[_0x511e('0x55')]=_0x1bb7f9[_0x511e('0x55')];_0x3c057c[_0x511e('0x56')]=_0x1bb7f9['startProgressive'];}if(_0x1bb7f9[_0x511e('0x57')]){_0x3c057c[_0x511e('0x57')]={'id':_0x1bb7f9[_0x511e('0x57')]['id'],'name':_0x1bb7f9['Trunk']['name'],'active':_0x1bb7f9['Trunk'][_0x511e('0x58')],'callerid':_0x1bb7f9[_0x511e('0x57')][_0x511e('0x59')]};}if(_0x1bb7f9['Interval']){_0x3c057c['Interval']={'id':_0x1bb7f9['Interval']['id'],'name':_0x1bb7f9[_0x511e('0x5a')][_0x511e('0xa')]};}_0x53017d[_0x511e('0x5b')](_0x3c057c);}}_0x4d94a1({'count':_0x53017d[_0x511e('0x5c')],'rows':_0x53017d});});},'UpdateVoiceQueue':function(_0x40e017){return new Promise(function(_0x393e36,_0x1d494f){var _0x1faf19=_[_0x511e('0x5d')](_0x4fbd4f[_0x511e('0x23')],{'id':parseInt(_0x40e017['id'])});var _0x1a2e4=_[_0x511e('0x5e')](_0x40e017,['id']);if(_0x1faf19){for(var _0x19a6c8 in _0x1a2e4){if(typeof _0x1a2e4[_0x19a6c8]!==_0x511e('0x5f')&&typeof _0x1faf19[_0x19a6c8]!==_0x511e('0x5f')){_0x1faf19[_0x19a6c8]=_0x1a2e4[_0x19a6c8];}}_0x393e36(_0x1faf19);}else{_0x1d494f();}});},'VoiceChannels':function(_0x17568d){return new Promise(function(_0x15e6e8,_0x30769b){var _0x3a8395=_[_0x511e('0x60')](_0x4fbd4f[_0x511e('0x61')]);_0x15e6e8({'count':_0x3a8395[_0x511e('0x5c')],'rows':_0x3a8395});});},'VoiceChannelMixMonitor':function(_0x204783){var _0x1cb4ba=this;return new Promise(function(_0x37bfdb,_0x4096c0){if(ami[_0x511e('0x11')]()==![]){return _0x4096c0(_0x1cb4ba[_0x511e('0x12')](0x1f4,[config[_0x511e('0x13')]['ip'],config[_0x511e('0x13')][_0x511e('0x14')],'ami\x20disconnected'][_0x511e('0x15')]('\x20')));}var _0x56bfd4=schema(properties[_0x511e('0x62')])[_0x511e('0x2')](_0x204783);if(_0x56bfd4[_0x511e('0x5c')]>0x0){return _0x4096c0(_0x1cb4ba['error'](0x1f4,_[_0x511e('0x63')](_0x56bfd4,_0x511e('0x1c'))[_0x511e('0x15')](',\x20')));}var _0x5cc04d=_[_0x511e('0x5d')](_0x4fbd4f[_0x511e('0x61')],{'uniqueid':_0x204783['uniqueid']});if(_0x5cc04d&&_0x5cc04d[_0x511e('0x64')]){var _0x4609dc=util[_0x511e('0x7')](_0x511e('0x65'),_0x204783['filename']||_0x204783[_0x511e('0x66')],_0x204783['format']||_0x511e('0x67'));return ami[_0x511e('0x1a')]({'action':_0x511e('0x68'),'channel':_0x5cc04d['channel'],'file':_0x4609dc,'options':_0x511e('0x69')})['then'](function(_0x4705e3){var _0x586449=_[_0x511e('0x5d')](_0x5cc04d[_0x511e('0x6a')],{'filename':_0x511e('0x6b')+_0x4609dc['toLowerCase']()});if(_[_0x511e('0x6c')](_0x586449)){_0x5cc04d[_0x511e('0x6a')][_0x511e('0x5b')]({'filename':_0x511e('0x6b')+_0x4609dc[_0x511e('0x6d')](),'createdAt':moment()[_0x511e('0x7')](_0x511e('0x6e')),'mixmonitorid':_0x4705e3[_0x511e('0x6f')],'status':'rec'});}else{_0x586449[_0x511e('0x6f')]=_0x4705e3[_0x511e('0x6f')];_0x586449['status']=_0x511e('0x70');}_0x37bfdb({'code':0xc8,'message':[_0x204783[_0x511e('0x66')],_0x511e('0x71'),_0x4705e3[_0x511e('0x6f')]][_0x511e('0x15')]('\x20'),'mixmonitorid':_0x4705e3[_0x511e('0x6f')]});})['catch'](function(_0x31777b){_0x4096c0(_0x1cb4ba[_0x511e('0x12')](0x1f5,[_0x204783['uniqueid'],_0x31777b[_0x511e('0x1c')]['toLowerCase']()][_0x511e('0x15')]('\x20')));});}else{return _0x4096c0(_0x1cb4ba[_0x511e('0x12')](0x1f5,'Channel\x20doesn\x27t\x20exist'));}});},'VoiceChannelStopMixMonitor':function(_0x58f1e4){var _0x586931=this;return new Promise(function(_0x5a1511,_0x37c145){if(ami['isConnected']()==![]){return _0x37c145(_0x586931['error'](0x1f4,[config[_0x511e('0x13')]['ip'],config[_0x511e('0x13')]['username'],_0x511e('0x1d')]['join']('\x20')));}var _0x3a3744=schema(properties['voicechannel'])['validate'](_0x58f1e4);if(_0x3a3744['length']>0x0){return _0x37c145(_0x586931[_0x511e('0x12')](0x1f4,_[_0x511e('0x63')](_0x3a3744,'message')['join'](',\x20')));}var _0x51940a=_['find'](_0x4fbd4f[_0x511e('0x61')],{'uniqueid':_0x58f1e4['uniqueid']});if(_0x51940a){return BPromise[_0x511e('0x72')]()['then'](function(){if(_0x51940a[_0x511e('0x64')]){return ami[_0x511e('0x1a')]({'action':_0x511e('0x73'),'channel':_0x51940a[_0x511e('0x64')],'mixmonitorid':_0x58f1e4['mixmonitorid']})[_0x511e('0x22')](function(_0xc154b2){});}})[_0x511e('0x1b')](function(){if(_0x51940a[_0x511e('0x74')]){return ami[_0x511e('0x1a')]({'action':'StopMixMonitor','channel':_0x51940a['destinationchannel'],'mixmonitorid':_0x58f1e4[_0x511e('0x6f')]})[_0x511e('0x22')](function(_0x42cb48){});}})[_0x511e('0x1b')](function(_0x3d0a10){var _0x329aee=_[_0x511e('0x5d')](_0x51940a[_0x511e('0x6a')],{'mixmonitorid':_0x58f1e4[_0x511e('0x6f')]});if(_0x329aee){_0x329aee[_0x511e('0x75')]='stop';}})['then'](function(){var _0x55fcc9=util[_0x511e('0x7')]('%s.%s',_0x58f1e4[_0x511e('0x76')]||_0x58f1e4['uniqueid'],_0x58f1e4[_0x511e('0x7')]||'wav');var _0x434269=_[_0x511e('0x5d')](_0x51940a[_0x511e('0x6a')],{'filename':_0x511e('0x6b')+_0x55fcc9[_0x511e('0x6d')]()});if(_0x434269){_0x434269['status']=_0x511e('0x77');}})['then'](function(){_0x5a1511({'code':0xc8,'message':[_0x58f1e4[_0x511e('0x66')],_0x511e('0x78')][_0x511e('0x15')]('\x20')});})['catch'](function(_0x76b6b0){_0x37c145(_0x586931[_0x511e('0x12')](0x1f5,[_0x58f1e4[_0x511e('0x66')],_0x76b6b0[_0x511e('0x1c')]['toLowerCase']()]['join']('\x20')));});}else{return _0x37c145(_0x586931[_0x511e('0x12')](0x1f5,_0x511e('0x79')));}});},'VoiceQueuesChannels':function(_0x5b1ba8){return new Promise(function(_0x2545d2,_0x5cb3ea){var _0x45693d=_[_0x511e('0x60')](_0x4fbd4f['queueChannels']);_0x2545d2({'count':_0x45693d['length'],'rows':_0x45693d});});},'VoiceQueuesChannel':function(_0x317766){var _0x2b9aee=this;return new Promise(function(_0x2061d8,_0x5c2817){var _0xb7e7e4=schema(properties[_0x511e('0x7a')])[_0x511e('0x2')](_0x317766);if(_0xb7e7e4[_0x511e('0x5c')]>0x0){return _0x5c2817(_0x2b9aee[_0x511e('0x12')](0x1f4,_[_0x511e('0x63')](_0xb7e7e4,_0x511e('0x1c'))['join'](',\x20')));}var _0x23833a=_[_0x511e('0x5d')](_0x4fbd4f['queueChannels'],{'uniqueid':_0x317766['uniqueid']});if(_0x23833a){_0x2061d8(_0x23833a);}else{return _0x5c2817(_0x2b9aee[_0x511e('0x12')](0x1f5,_0x511e('0x79')));}});},'VoiceQueuesChannelHangup':function(_0x55c45d){var _0x36d05f=this;return new Promise(function(_0x5e65a2,_0x21cb81){if(ami['isConnected']()==![]){return _0x21cb81(_0x36d05f['error'](0x1f4,[config[_0x511e('0x13')]['ip'],config[_0x511e('0x13')][_0x511e('0x14')],_0x511e('0x1d')][_0x511e('0x15')]('\x20')));}var _0x4f16f5=schema(properties['voicequeuechannelhangup'])[_0x511e('0x2')](_0x55c45d);if(_0x4f16f5[_0x511e('0x5c')]>0x0){return _0x21cb81(_0x36d05f[_0x511e('0x12')](0x1f4,_['map'](_0x4f16f5,_0x511e('0x1c'))[_0x511e('0x15')](',\x20')));}var _0x493188=_['find'](_0x4fbd4f[_0x511e('0x7b')],{'uniqueid':_0x55c45d[_0x511e('0x66')]});if(_0x493188&&_0x493188[_0x511e('0x64')]){return ami[_0x511e('0x1a')]({'action':_0x511e('0x7c'),'channel':_0x493188[_0x511e('0x64')]})['then'](function(_0x33fd85){_0x5e65a2({'code':0xc8,'message':[_0x55c45d[_0x511e('0x66')],_0x33fd85['message']['toLowerCase']()][_0x511e('0x15')]('\x20')});})['catch'](function(_0x3341a0){_0x21cb81(_0x36d05f['error'](0x1f5,[_0x55c45d['uniqueid'],_0x3341a0[_0x511e('0x1c')][_0x511e('0x6d')]()][_0x511e('0x15')]('\x20')));});}else{return _0x21cb81(_0x36d05f[_0x511e('0x12')](0x1f5,_0x511e('0x79')));}});},'VoiceQueuesChannelRedirect':function(_0x1876d2){var _0x143277=this;return new Promise(function(_0x431d94,_0x325df2){if(ami[_0x511e('0x11')]()==![]){return _0x325df2(_0x143277[_0x511e('0x12')](0x1f4,[config[_0x511e('0x13')]['ip'],config[_0x511e('0x13')][_0x511e('0x14')],_0x511e('0x1d')][_0x511e('0x15')]('\x20')));}var _0x4a07b7=schema(properties[_0x511e('0x7d')])[_0x511e('0x2')](_0x1876d2);if(_0x4a07b7[_0x511e('0x5c')]>0x0){return _0x325df2(_0x143277[_0x511e('0x12')](0x1f4,_[_0x511e('0x63')](_0x4a07b7,_0x511e('0x1c'))[_0x511e('0x15')](',\x20')));}var _0x3e2e1d=_[_0x511e('0x5d')](_0x4fbd4f[_0x511e('0x7b')],{'uniqueid':_0x1876d2[_0x511e('0x66')]});if(_0x3e2e1d&&_0x3e2e1d['channel']){return ami[_0x511e('0x1a')]({'action':_0x511e('0x7e'),'channel':_0x3e2e1d[_0x511e('0x64')],'exten':_0x1876d2[_0x511e('0x7f')],'context':_0x1876d2['context']||_0x3e2e1d[_0x511e('0x80')],'priority':0x1})[_0x511e('0x1b')](function(_0x3a4db6){_0x431d94({'code':0xc8,'message':[_0x1876d2[_0x511e('0x66')],_0x3a4db6[_0x511e('0x1c')][_0x511e('0x6d')]()][_0x511e('0x15')]('\x20')});})[_0x511e('0x22')](function(_0x25e8cb){_0x325df2(_0x143277[_0x511e('0x12')](0x1f5,[_0x1876d2['uniqueid'],_0x25e8cb[_0x511e('0x1c')][_0x511e('0x6d')]()][_0x511e('0x15')]('\x20')));});}else{return _0x325df2(_0x143277[_0x511e('0x12')](0x1f5,_0x511e('0x79')));}});},'Agents':function(_0x3d807a){return new Promise(function(_0x436e65,_0x47c07d){var _0x4a43bf=_[_0x511e('0x60')](_0x4fbd4f[_0x511e('0x81')]);_0x436e65({'count':_0x4a43bf[_0x511e('0x5c')],'rows':_0x4a43bf});});},'Telephones':function(_0x32fd22){return new Promise(function(_0x11d601,_0x4316de){var _0x122d49=_[_0x511e('0x60')](_0x4fbd4f[_0x511e('0x82')]);_0x11d601({'count':_0x122d49[_0x511e('0x5c')],'rows':_0x122d49});});},'Trunks':function(_0x55e8cc){return new Promise(function(_0x15a553,_0x255aac){var _0x19671c=_[_0x511e('0x60')](_0x4fbd4f[_0x511e('0x83')]);_0x15a553({'count':_0x19671c['length'],'rows':_0x19671c});});},'OutboundChannels':function(_0x561a26){return new Promise(function(_0x1d408d,_0x26a9f0){var _0x588f24=_[_0x511e('0x60')](_0x4fbd4f['outboundChannels']);_0x1d408d({'count':_0x588f24[_0x511e('0x5c')],'rows':_0x588f24});});},'Outbound':function(_0x2ff676){return new Promise(function(_0x5c9f54,_0x68d14e){_0x5c9f54(_0x4fbd4f['outbound']);});},'Campaigns':function(_0xd74673){return new Promise(function(_0x2455da,_0x19a7ba){var _0x473867=_[_0x511e('0x60')](_0x4fbd4f[_0x511e('0x84')]);_0x2455da({'count':_0x473867[_0x511e('0x5c')],'rows':_0x473867});});},'VoiceQueuesPreview':function(_0x27004c){var _0x3289a9=this;return new Promise(function(_0x12e381,_0x37bb80){_0x5923a7[_0x511e('0x85')](_0x27004c['id'])[_0x511e('0x1b')](function(_0x28907e){_0x12e381({'code':0xc8,'message':_0x28907e[_0x511e('0x1c')]});})[_0x511e('0x22')](function(_0x45d846){_0x37bb80(_0x3289a9[_0x511e('0x12')](0x1f4,_0x45d846['message']));});});},'EventManager':function(_0x26065a){var _0x4377b4=this;return new Promise(function(_0x1e08dc,_0x4727b0){if(!_0x26065a[_0x511e('0x86')]){return _0x4727b0(_0x4377b4['error'](0x1f4,_0x511e('0x87')));}ami[_0x511e('0x88')](_0x511e('0x89')+_0x26065a['event'],_0x26065a[_0x511e('0x1c')]);_0x1e08dc({'code':0xc8,'message':_0x26065a});});},'FaxAccounts':function(_0x470f1e){return new Promise(function(_0x176941,_0x334374){var _0x513c38=_['values'](_0x4fbd4f['faxAccounts']);_0x176941({'count':_0x513c38[_0x511e('0x5c')],'rows':_0x513c38});});},'SendFax':function(_0x148871){var _0x48a735=this;return new Promise(function(_0x137568,_0x49e3c7){_0x342539[_0x511e('0x8a')](_0x148871)['then'](function(_0x19abb4){_0x137568({'code':0xc8,'message':_0x19abb4[_0x511e('0x1c')]});})['catch'](function(_0x222547){_0x49e3c7(_0x48a735[_0x511e('0x12')](0x1f4,_0x222547[_0x511e('0x1c')]));});});},'CheckAfterSend':function(_0x40d891){var _0x3debb7=this;return new Promise(function(_0x500557,_0x4a8843){_0x342539['checkAfterSend'](_0x40d891)['then'](function(_0x4adf6b){_0x500557({'code':0xc8,'message':_0x4adf6b[_0x511e('0x1c')]});})[_0x511e('0x22')](function(_0x43301c){_0x4a8843(_0x3debb7['error'](0x1f4,_0x43301c[_0x511e('0x1c')]));});});}};var _0x1eb2ce=jayson[_0x511e('0x8b')](_0x57cac3)[_0x511e('0x8c')]();_0x1eb2ce['on'](_0x511e('0x12'),function(_0x31cdb3){return _0x466dec(_0x31cdb3);});_0x1eb2ce[_0x511e('0x6')](0x232a,'127.0.0.1',function(){console[_0x511e('0x8d')](_0x511e('0x8e'),0x232a);return _0x323f8c(_0x511e('0x8f')+0x232a);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['<unknown>','Unknown','destcalleridname','createContact','[CM][%s][%s]\x20Contact\x20created:%s','destcalleridnum','push','format','name','trigger:%s','action','merge','ioredis','util','../../../../config/environment','../../../../config/logger','trigger','../../rpc/cmContact','redis','socket.io-emitter','info','[CM][%s][%s]','stringify','data1','data2','isNil','data5','xmd-contactid','ListId','data3','split','phone','$or','map','routeId','firstName','lastName','mobile','createdAt','scheduledAt','updatedAt','union','resolve','then','getContacts','length','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','[CM][%s][%s]\x20Contact\x20not\x20found','data4','calleridnum','calleridname'];(function(_0x2b4411,_0x2625ed){var _0x8e41ef=function(_0x2aa8c1){while(--_0x2aa8c1){_0x2b4411['push'](_0x2b4411['shift']());}};_0x8e41ef(++_0x2625ed);}(_0x9c44,0x178));var _0x49c4=function(_0x15bc81,_0x4d4f77){_0x15bc81=_0x15bc81-0x0;var _0x59440e=_0x9c44[_0x15bc81];return _0x59440e;};'use strict';var _=require('lodash');var BPromise=require('bluebird');var Redis=require(_0x49c4('0x0'));var util=require(_0x49c4('0x1'));var config=require(_0x49c4('0x2'));var logger=require(_0x49c4('0x3'))(_0x49c4('0x4'));var cmContactRpc=require(_0x49c4('0x5'));config['redis']=_['defaults'](config[_0x49c4('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0x49c4('0x7'))(new Redis(config[_0x49c4('0x6')]));function emit(_0x69bc41,_0x2c4e2e,_0x436234,_0x511d53,_0x11c586){logger[_0x49c4('0x8')](_0x49c4('0x9'),_0x69bc41,_0x2c4e2e['id'],_0x436234,_0x511d53,JSON[_0x49c4('0xa')](_0x11c586));io['to'](_0x436234)['emit'](_0x511d53,_0x11c586);}exports['exec']=function(_0x451ea6,_0x313e73,_0x58cad7,_0xb611a1){var _0x459d09,_0x4adb3c;var _0x536d42={};var _0x1d19bf=Number(_0x58cad7[_0x49c4('0xb')]);var _0x5487cd=_0x58cad7[_0x49c4('0xc')]?Boolean(Number(_0x58cad7[_0x49c4('0xc')])):![];var _0x5f2fd9;var _0x1909fe=![];if(!_[_0x49c4('0xd')](_0x58cad7[_0x49c4('0xe')])){if(_0x58cad7[_0x49c4('0xe')]=='1')_0x1909fe=!![];}if(!_0x1909fe){if(_0xb611a1[_0x49c4('0xf')]){_0x536d42['id']=_0xb611a1[_0x49c4('0xf')];}}if(!_0x536d42['id']){_0x536d42[_0x49c4('0x10')]=_0x1d19bf;_0x5f2fd9=_0x58cad7[_0x49c4('0x11')]&&_0x58cad7['data3']!=='0'?_0x58cad7[_0x49c4('0x11')][_0x49c4('0x12')](','):[_0x49c4('0x13')];_0x536d42[_0x49c4('0x14')]=_[_0x49c4('0x15')](_0x5f2fd9,function(_0x53e3a2){var _0x44e607={};_0x44e607[_0x53e3a2]=_0xb611a1[_0x49c4('0x16')]?_0xb611a1['destcalleridnum']:_0xb611a1['calleridnum'];return _0x44e607;});}var _0x3c782d=['id',_0x49c4('0x17'),_0x49c4('0x18'),'phone',_0x49c4('0x19'),'fax',_0x49c4('0x10'),_0x49c4('0x1a'),_0x49c4('0x1b'),_0x49c4('0x1c')];var _0x382040=_[_0x49c4('0x1d')](_0x3c782d,_0x5f2fd9);BPromise[_0x49c4('0x1e')]()[_0x49c4('0x1f')](cmContactRpc[_0x49c4('0x20')]({'attributes':_0x382040,'where':_0x536d42}))['then'](function(_0x527126){_0x4adb3c=_0x527126;if(!_['isEmpty'](_0x4adb3c)){if(_0x4adb3c[_0x49c4('0x21')]===0x1){_0x459d09=_0x4adb3c[0x0];logger['info']('[CM][%s][%s]\x20Contact\x20found:%s',_0xb611a1[_0x49c4('0x22')],_0x313e73['id'],_0x459d09['id']);}else{logger[_0x49c4('0x8')](_0x49c4('0x23'),_0xb611a1[_0x49c4('0x22')],_0x313e73['id'],_['map'](_0x4adb3c,'id')['join'](','));}return;}else{logger[_0x49c4('0x8')](_0x49c4('0x24'),_0xb611a1['uniqueid'],_0x313e73['id']);var _0x207358={'ListId':_0x1d19bf};var _0x43e014=_0x58cad7[_0x49c4('0x25')]&&_0x58cad7[_0x49c4('0x25')]!=='0'?_0x58cad7['data4']:'phone';if(_0x5487cd){logger[_0x49c4('0x8')]('[CM][%s][%s]\x20Autocreate\x20enabled',_0xb611a1[_0x49c4('0x22')],_0x313e73['id']);_0x207358[_0x43e014]=_[_0x49c4('0xd')](_0xb611a1[_0x49c4('0x16')])?_0xb611a1[_0x49c4('0x26')]:_0xb611a1['destcalleridnum'];if(_[_0x49c4('0xd')](_0xb611a1[_0x49c4('0x16')])){_0x207358[_0x49c4('0x17')]=_0xb611a1[_0x49c4('0x27')]&&_0xb611a1[_0x49c4('0x27')]!==_0x49c4('0x28')?_0xb611a1[_0x49c4('0x27')]:_0x49c4('0x29');}else{_0x207358[_0x49c4('0x17')]=_0xb611a1[_0x49c4('0x2a')]&&_0xb611a1[_0x49c4('0x2a')]!=='<unknown>'?_0xb611a1['destcalleridname']:'Unknown';}return BPromise[_0x49c4('0x1e')]()[_0x49c4('0x1f')](cmContactRpc[_0x49c4('0x2b')](_0x207358))[_0x49c4('0x1f')](function(_0x28eb47){_0x459d09=_0x28eb47;_0x4adb3c['push'](_0x28eb47);if(_0x459d09){logger[_0x49c4('0x8')](_0x49c4('0x2c'),_0xb611a1[_0x49c4('0x22')],_0x313e73['id'],_0x459d09['id']);}return;});}else{logger[_0x49c4('0x8')]('[CM][%s][%s]\x20Autocreate\x20disabled',_0xb611a1['uniqueid'],_0x313e73['id']);_0x207358[_0x43e014]=_[_0x49c4('0xd')](_0xb611a1[_0x49c4('0x16')])?_0xb611a1[_0x49c4('0x26')]:_0xb611a1[_0x49c4('0x2d')];if(_[_0x49c4('0xd')](_0xb611a1['routeId'])){_0x207358[_0x49c4('0x17')]=_0xb611a1[_0x49c4('0x27')]&&_0xb611a1[_0x49c4('0x27')]!=='<unknown>'?_0xb611a1['calleridname']:_0x49c4('0x29');}else{_0x207358[_0x49c4('0x17')]=_0xb611a1[_0x49c4('0x2a')]&&_0xb611a1[_0x49c4('0x2a')]!==_0x49c4('0x28')?_0xb611a1[_0x49c4('0x2a')]:_0x49c4('0x29');}_0x459d09=_0x207358;_0x4adb3c[_0x49c4('0x2e')](_0x207358);return;}}})[_0x49c4('0x1f')](function(){if(_0x451ea6){emit(_0xb611a1['uniqueid'],_0x313e73,util[_0x49c4('0x2f')]('user:%s',_0x451ea6[_0x49c4('0x30')]),util[_0x49c4('0x2f')](_0x49c4('0x31'),_0x58cad7[_0x49c4('0x32')]['toLowerCase']()),{'evt':_[_0x49c4('0x33')](_0xb611a1,{'autoCreate':_0x5487cd}),'contact':_0x459d09===undefined?{}:_0x459d09,'contacts':_0x4adb3c[_0x49c4('0x21')]===0x0?undefined:_0x4adb3c});}});};
\ No newline at end of file
+var _0x69b7=['createdAt','scheduledAt','then','getContacts','isEmpty','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Contact\x20not\x20found','data4','isNil','calleridname','<unknown>','Unknown','destcalleridname','resolve','push','firstName','format','user:%s','name','trigger:%s','action','toLowerCase','merge','length','bluebird','ioredis','util','../../../../config/environment','../../../../config/logger','trigger','../../rpc/cmContact','defaults','localhost','redis','info','[CM][%s][%s]','stringify','exec','data1','data2','xmd-contactid','ListId','data3','map','routeId','destcalleridnum','calleridnum','phone','mobile','fax'];(function(_0x14c973,_0x266b3a){var _0x3e09d6=function(_0xd4d15b){while(--_0xd4d15b){_0x14c973['push'](_0x14c973['shift']());}};_0x3e09d6(++_0x266b3a);}(_0x69b7,0x17e));var _0x769b=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x69b7[_0x3947c9];return _0x2e7871;};'use strict';var _=require('lodash');var BPromise=require(_0x769b('0x0'));var Redis=require(_0x769b('0x1'));var util=require(_0x769b('0x2'));var config=require(_0x769b('0x3'));var logger=require(_0x769b('0x4'))(_0x769b('0x5'));var cmContactRpc=require(_0x769b('0x6'));config['redis']=_[_0x769b('0x7')](config['redis'],{'host':_0x769b('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x769b('0x9')]));function emit(_0x381d5d,_0x3bacf5,_0x40b624,_0x479c0c,_0x543c13){logger[_0x769b('0xa')](_0x769b('0xb'),_0x381d5d,_0x3bacf5['id'],_0x40b624,_0x479c0c,JSON[_0x769b('0xc')](_0x543c13));io['to'](_0x40b624)['emit'](_0x479c0c,_0x543c13);}exports[_0x769b('0xd')]=function(_0x14e78d,_0xac4b14,_0x402185,_0x5f6476){var _0x3f24d7,_0x6091ac;var _0x217285={};var _0x3437dd=Number(_0x402185[_0x769b('0xe')]);var _0x417585=_0x402185['data2']?Boolean(Number(_0x402185[_0x769b('0xf')])):![];var _0x560f5b;if(_0x5f6476['xmd-contactid']){_0x217285['id']=_0x5f6476[_0x769b('0x10')];}if(!_0x217285['id']){_0x217285[_0x769b('0x11')]=_0x3437dd;_0x560f5b=_0x402185['data3']&&_0x402185[_0x769b('0x12')]!=='0'?_0x402185['data3']['split'](','):['phone'];_0x217285['$or']=_[_0x769b('0x13')](_0x560f5b,function(_0x80ea8e){var _0x5b0d25={};_0x5b0d25[_0x80ea8e]=_0x5f6476[_0x769b('0x14')]?_0x5f6476[_0x769b('0x15')]:_0x5f6476[_0x769b('0x16')];return _0x5b0d25;});}var _0x40ae4a=['id','firstName','lastName',_0x769b('0x17'),_0x769b('0x18'),_0x769b('0x19'),_0x769b('0x11'),_0x769b('0x1a'),_0x769b('0x1b'),'updatedAt'];var _0x245482=_['union'](_0x40ae4a,_0x560f5b);BPromise['resolve']()[_0x769b('0x1c')](cmContactRpc[_0x769b('0x1d')]({'attributes':_0x245482,'where':_0x217285}))[_0x769b('0x1c')](function(_0x11de22){_0x6091ac=_0x11de22;if(!_[_0x769b('0x1e')](_0x6091ac)){if(_0x6091ac['length']===0x1){_0x3f24d7=_0x6091ac[0x0];logger[_0x769b('0xa')](_0x769b('0x1f'),_0x5f6476[_0x769b('0x20')],_0xac4b14['id'],_0x3f24d7['id']);}else{logger['info']('[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]',_0x5f6476[_0x769b('0x20')],_0xac4b14['id'],_[_0x769b('0x13')](_0x6091ac,'id')['join'](','));}return;}else{logger[_0x769b('0xa')](_0x769b('0x21'),_0x5f6476[_0x769b('0x20')],_0xac4b14['id']);var _0x22eaf0={'ListId':_0x3437dd};var _0x46365c=_0x402185[_0x769b('0x22')]&&_0x402185[_0x769b('0x22')]!=='0'?_0x402185[_0x769b('0x22')]:_0x769b('0x17');if(_0x417585){logger[_0x769b('0xa')]('[CM][%s][%s]\x20Autocreate\x20enabled',_0x5f6476[_0x769b('0x20')],_0xac4b14['id']);_0x22eaf0[_0x46365c]=_[_0x769b('0x23')](_0x5f6476['routeId'])?_0x5f6476[_0x769b('0x16')]:_0x5f6476[_0x769b('0x15')];if(_['isNil'](_0x5f6476[_0x769b('0x14')])){_0x22eaf0['firstName']=_0x5f6476[_0x769b('0x24')]&&_0x5f6476[_0x769b('0x24')]!==_0x769b('0x25')?_0x5f6476[_0x769b('0x24')]:_0x769b('0x26');}else{_0x22eaf0['firstName']=_0x5f6476[_0x769b('0x27')]&&_0x5f6476[_0x769b('0x27')]!==_0x769b('0x25')?_0x5f6476[_0x769b('0x27')]:'Unknown';}return BPromise[_0x769b('0x28')]()[_0x769b('0x1c')](cmContactRpc['createContact'](_0x22eaf0))[_0x769b('0x1c')](function(_0x415523){_0x3f24d7=_0x415523;_0x6091ac[_0x769b('0x29')](_0x415523);if(_0x3f24d7){logger[_0x769b('0xa')]('[CM][%s][%s]\x20Contact\x20created:%s',_0x5f6476[_0x769b('0x20')],_0xac4b14['id'],_0x3f24d7['id']);}return;});}else{logger[_0x769b('0xa')]('[CM][%s][%s]\x20Autocreate\x20disabled',_0x5f6476['uniqueid'],_0xac4b14['id']);_0x22eaf0[_0x46365c]=_[_0x769b('0x23')](_0x5f6476[_0x769b('0x14')])?_0x5f6476[_0x769b('0x16')]:_0x5f6476[_0x769b('0x15')];if(_['isNil'](_0x5f6476[_0x769b('0x14')])){_0x22eaf0[_0x769b('0x2a')]=_0x5f6476[_0x769b('0x24')]&&_0x5f6476[_0x769b('0x24')]!==_0x769b('0x25')?_0x5f6476['calleridname']:_0x769b('0x26');}else{_0x22eaf0['firstName']=_0x5f6476[_0x769b('0x27')]&&_0x5f6476[_0x769b('0x27')]!=='<unknown>'?_0x5f6476['destcalleridname']:_0x769b('0x26');}_0x3f24d7=_0x22eaf0;_0x6091ac[_0x769b('0x29')](_0x22eaf0);return;}}})[_0x769b('0x1c')](function(){if(_0x14e78d){emit(_0x5f6476[_0x769b('0x20')],_0xac4b14,util[_0x769b('0x2b')](_0x769b('0x2c'),_0x14e78d[_0x769b('0x2d')]),util['format'](_0x769b('0x2e'),_0x402185[_0x769b('0x2f')][_0x769b('0x30')]()),{'evt':_[_0x769b('0x31')](_0x5f6476,{'autoCreate':_0x417585}),'contact':_0x3f24d7===undefined?{}:_0x3f24d7,'contacts':_0x6091ac[_0x769b('0x32')]===0x0?undefined:_0x6091ac});}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb1ef=['urlforward','script','query','search','channel','AllConditions','length','every','AnyConditions','checkConditions','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','message','event','agent','lastevent','routeId','mailSubstatus','substatus','undefined','util','lodash','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','../ami','redis','defaults','popup','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','stringify','clone','motionChannel','voice','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','Actions','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','html','data2','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','windowWidth','data5','800','windowHeight','data6','600','winApplication','render','winArguments','format','name','user:%s','trigger:%s','exec','integration','queue'];(function(_0x174743,_0x3d6a7e){var _0x2c1d49=function(_0x3aa1fa){while(--_0x3aa1fa){_0x174743['push'](_0x174743['shift']());}};_0x2c1d49(++_0x3d6a7e);}(_0xb1ef,0x93));var _0xfb1e=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xb1ef[_0x122ef9];return _0x42fba0;};'use strict';var util=require(_0xfb1e('0x0'));var _=require(_0xfb1e('0x1'));var url=require('url');var Mustache=require(_0xfb1e('0x2'));var Redis=require(_0xfb1e('0x3'));var urlforward=require(_0xfb1e('0x4'));var integration=require(_0xfb1e('0x5'));var cmContact=require(_0xfb1e('0x6'));var script=require(_0xfb1e('0x7'));var config=require(_0xfb1e('0x8'));var logger=require(_0xfb1e('0x9'))('trigger');var ami=require(_0xfb1e('0xa'));config[_0xfb1e('0xb')]=_[_0xfb1e('0xc')](config[_0xfb1e('0xb')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xfb1e('0xb')]));var operators={'equals':function(_0x106367,_0x12911c){return _0x106367==_0x12911c;},'not_equals':function(_0x1ac2dd,_0x39664b){return _0x1ac2dd!=_0x39664b;}};var barAndWebActions=[_0xfb1e('0xd'),_0xfb1e('0xe'),_0xfb1e('0xf')];function Trigger(_0x5a8fef){this[_0xfb1e('0x10')]=_0x5a8fef[_0xfb1e('0x10')];this[_0xfb1e('0x11')]=_0x5a8fef[_0xfb1e('0x11')];this[_0xfb1e('0x12')]=_0x5a8fef[_0xfb1e('0x12')];this[_0xfb1e('0x13')]=_0x5a8fef['templates'];this[_0xfb1e('0x14')]=_0x5a8fef[_0xfb1e('0x14')];this['zendeskAccounts']=_0x5a8fef[_0xfb1e('0x15')];this[_0xfb1e('0x16')]=_0x5a8fef[_0xfb1e('0x16')];this[_0xfb1e('0x17')]=_0x5a8fef[_0xfb1e('0x17')];this['sugarcrmAccounts']=_0x5a8fef[_0xfb1e('0x18')];this[_0xfb1e('0x19')]=_0x5a8fef[_0xfb1e('0x19')];this[_0xfb1e('0x1a')]=_0x5a8fef[_0xfb1e('0x1a')];this['vtigerAccounts']=_0x5a8fef[_0xfb1e('0x1b')];this[_0xfb1e('0x1c')]=_0x5a8fef[_0xfb1e('0x1c')];this[_0xfb1e('0x1d')]=_0x5a8fef[_0xfb1e('0x1d')];this['freshsalesAccounts']=_0x5a8fef[_0xfb1e('0x1e')];this[_0xfb1e('0x1f')]={'zendesk':this[_0xfb1e('0x15')],'salesforce':this[_0xfb1e('0x17')],'freshdesk':this[_0xfb1e('0x16')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0xfb1e('0x19')],'desk':this['deskAccounts'],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0xfb1e('0x1d')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0xfb1e('0x1c')]};ami['on'](_0xfb1e('0x20'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x23'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x24'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x25'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x26'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x27'),this[_0xfb1e('0x21')]['bind'](this));ami['on']('custom:agentbusy',this['syncCustomEvent'][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x28'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x29'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x2a'),this[_0xfb1e('0x21')]['bind'](this));ami['on'](_0xfb1e('0x2b'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x2c'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x2d'),this[_0xfb1e('0x2e')]['bind'](this));ami['on'](_0xfb1e('0x2f'),this[_0xfb1e('0x2e')][_0xfb1e('0x22')](this));ami['on']('custom:dialend',this[_0xfb1e('0x2e')]['bind'](this));ami['on'](_0xfb1e('0x30'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x31'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x32'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on']('custom:incomingmessage',this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on']('custom:outgoingmessage',this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x33'),this[_0xfb1e('0x21')][_0xfb1e('0x22')](this));ami['on'](_0xfb1e('0x34'),this['syncCustomEvent']['bind'](this));}Trigger[_0xfb1e('0x35')][_0xfb1e('0x36')]=function(_0x54ddba,_0x330b85,_0x4ca948){logger[_0xfb1e('0x37')](_0x54ddba,_0x330b85,JSON[_0xfb1e('0x38')](_0x4ca948));io['to'](_0x54ddba)['emit'](_0x330b85,_0x4ca948);};Trigger[_0xfb1e('0x35')]['syncCustomEvent']=function(_0xfae2b7){var _0x42baa0=_[_0xfb1e('0x39')](_0xfae2b7);if(typeof _0x42baa0['motionChannel']==='undefined'){_0x42baa0[_0xfb1e('0x3a')]=_0xfb1e('0x3b');}this[_0xfb1e('0x3c')](_0x42baa0);};Trigger['prototype']['syncAgentDial']=function(_0x33514d){if(this[_0xfb1e('0x11')][_0x33514d[_0xfb1e('0x3d')]]){this[_0xfb1e('0x21')](_0x33514d);}};Trigger[_0xfb1e('0x35')][_0xfb1e('0x3c')]=function(_0x35c2ae){var _0x4eb62c;for(var _0x5acb37 in this[_0xfb1e('0x10')]){if(this[_0xfb1e('0x10')][_0xfb1e('0x3e')](_0x5acb37)){if(this['triggers'][_0x5acb37][_0xfb1e('0x3f')]){_0x4eb62c=this[_0xfb1e('0x40')](this[_0xfb1e('0x10')][_0x5acb37],_0x35c2ae);if(_0x4eb62c){_[_0xfb1e('0x41')](_0x35c2ae,_0x35c2ae['variables']);for(var _0x18aff7=0x0,_0x5d351e,_0x371a1e,_0x4800a3;_0x18aff7<this['triggers'][_0x5acb37][_0xfb1e('0x42')]['length'];_0x18aff7+=0x1){_0x5d351e=this[_0xfb1e('0x10')][_0x5acb37][_0xfb1e('0x42')][_0x18aff7];if(this[_0xfb1e('0x11')][_0x35c2ae[_0xfb1e('0x3d')]]){switch(_0x5d351e[_0xfb1e('0x43')][_0xfb1e('0x44')]()){case _0xfb1e('0x45'):break;case _0xfb1e('0x46'):case _0xfb1e('0x47'):var _0x28401c={};switch(barAndWebActions[_0x5d351e[_0xfb1e('0x48')]]){case _0xfb1e('0xd'):_0x28401c[_0xfb1e('0x49')]=_0x5d351e['data2'];_0x28401c[_0xfb1e('0x4a')]=this[_0xfb1e('0x13')][_0x5d351e[_0xfb1e('0x4b')]]?Mustache['render'](this[_0xfb1e('0x13')][_0x5d351e['data2']][_0xfb1e('0x4a')],_0x35c2ae):_0xfb1e('0x4c');break;case _0xfb1e('0xe'):_0x28401c[_0xfb1e('0x4d')]=this[_0xfb1e('0x4e')](_0x5d351e['data2'],_0x35c2ae,_[_0xfb1e('0x4f')](_0x5d351e['data3'])?!![]:parseInt(_0x5d351e[_0xfb1e('0x50')],0xa));if(_['isNil'](_0x5d351e[_0xfb1e('0x51')])){_0x28401c[_0xfb1e('0x52')]='0';}else{_0x28401c['uriLocation']=_0x5d351e[_0xfb1e('0x51')];_0x28401c[_0xfb1e('0x53')]=_['isNil'](_0x5d351e[_0xfb1e('0x54')])?_0xfb1e('0x55'):_0x5d351e[_0xfb1e('0x54')];_0x28401c[_0xfb1e('0x56')]=_[_0xfb1e('0x4f')](_0x5d351e[_0xfb1e('0x57')])?_0xfb1e('0x58'):_0x5d351e[_0xfb1e('0x57')];}break;case'winapp':_0x28401c[_0xfb1e('0x59')]=_0x5d351e[_0xfb1e('0x4b')]?Mustache[_0xfb1e('0x5a')](_0x5d351e[_0xfb1e('0x4b')],_0x35c2ae):'';_0x28401c[_0xfb1e('0x5b')]=_0x5d351e[_0xfb1e('0x50')]?Mustache[_0xfb1e('0x5a')](_0x5d351e[_0xfb1e('0x50')],_0x35c2ae):'';break;}this[_0xfb1e('0x36')](util[_0xfb1e('0x5c')]('user:%s',this[_0xfb1e('0x11')][_0x35c2ae['interface']][_0xfb1e('0x5d')]),util[_0xfb1e('0x5c')]('trigger:%s:%s',_0x5d351e['action']['toLowerCase'](),barAndWebActions[_0x5d351e[_0xfb1e('0x48')]]),_[_0xfb1e('0x41')](_0x28401c,_0x35c2ae));break;case'jscripty':this['emit'](util[_0xfb1e('0x5c')](_0xfb1e('0x5e'),this[_0xfb1e('0x11')][_0x35c2ae['interface']]['name']),util[_0xfb1e('0x5c')](_0xfb1e('0x5f'),_0x5d351e[_0xfb1e('0x43')][_0xfb1e('0x44')]()),_[_0xfb1e('0x41')]({'ProjectId':parseInt(_0x5d351e[_0xfb1e('0x48')],0xa)},_0x35c2ae));break;default:this['emit'](util[_0xfb1e('0x5c')](_0xfb1e('0x5e'),this[_0xfb1e('0x11')][_0x35c2ae[_0xfb1e('0x3d')]][_0xfb1e('0x5d')]),util['format'](_0xfb1e('0x5f'),_0x5d351e[_0xfb1e('0x43')][_0xfb1e('0x44')]()),_[_0xfb1e('0x41')]({},_0x5d351e,_0x35c2ae));}}switch(_0x5d351e[_0xfb1e('0x43')][_0xfb1e('0x44')]()){case _0xfb1e('0x45'):cmContact[_0xfb1e('0x60')](this[_0xfb1e('0x11')][_0x35c2ae['interface']],this[_0xfb1e('0x10')][_0x5acb37],_0x5d351e,_0x35c2ae);break;case _0xfb1e('0x61'):integration[_0xfb1e('0x60')](_0x5d351e,_0x35c2ae,this[_0xfb1e('0x1f')],this['agents'][_0x35c2ae[_0xfb1e('0x3d')]],this['voiceQueues'][_0x35c2ae[_0xfb1e('0x62')]],this[_0xfb1e('0x14')][_0x35c2ae['routeId']]);break;case _0xfb1e('0x63'):urlforward[_0xfb1e('0x60')](_0x5d351e,_0x35c2ae);break;case _0xfb1e('0x64'):script[_0xfb1e('0x60')](_0x5d351e,_0x35c2ae);break;}}}}}}};Trigger['prototype'][_0xfb1e('0x4e')]=function(_0x390281,_0x2747fe,_0x4500ca){var _0x16793d=url['parse'](Mustache[_0xfb1e('0x5a')](_0x390281,_0x2747fe),!![]);if(_0x4500ca){_[_0xfb1e('0x41')](_0x16793d[_0xfb1e('0x65')],_0x2747fe);}delete _0x16793d[_0xfb1e('0x66')];var _0x2a9bc7=url['format'](_0x16793d);_0x2a9bc7=_0x2a9bc7['replace'](/\/\?/g,'?');return _0x2a9bc7;};Trigger[_0xfb1e('0x35')][_0xfb1e('0x40')]=function(_0x27bd19,_0x3e1f9c){var _0x82ed34=!![];var _0x2e0098=!![];var _0x46354a=![];if(_0x27bd19[_0xfb1e('0x67')]===_0x3e1f9c[_0xfb1e('0x3a')]){_0x46354a=!![];}if(_0x27bd19[_0xfb1e('0x68')][_0xfb1e('0x69')]){_0x82ed34=_[_0xfb1e('0x6a')](_0x27bd19[_0xfb1e('0x68')],this['checkConditions'](_0x3e1f9c,_0x27bd19[_0xfb1e('0x67')]));}if(_0x27bd19[_0xfb1e('0x6b')]['length']){_0x2e0098=_['some'](_0x27bd19[_0xfb1e('0x6b')],this[_0xfb1e('0x6c')](_0x3e1f9c,_0x27bd19['channel']));}return _0x46354a&&_0x82ed34&&_0x2e0098;};Trigger[_0xfb1e('0x35')][_0xfb1e('0x6c')]=function(_0xbed8ff,_0x539666){return function(_0x126a3a){switch(_0x126a3a['field']){case'account':if(_0xbed8ff['channel']===_0x539666){if(_0x539666===_0xfb1e('0x6d')){return _0xbed8ff[_0xfb1e('0x6e')]?operators[_0x126a3a[_0xfb1e('0x6f')]](Number(_0x126a3a[_0xfb1e('0x70')]),_0xbed8ff[_0xfb1e('0x6e')]):![];}else{return _0xbed8ff[_[_0xfb1e('0x71')](_0x539666)+'AccountId']?operators[_0x126a3a[_0xfb1e('0x6f')]](Number(_0x126a3a['value']),_0xbed8ff[_[_0xfb1e('0x71')](_0x539666)+_0xfb1e('0x72')]):![];}}break;case'interaction':case _0xfb1e('0x73'):if(_0xbed8ff['channel']===_0x539666){return _0xbed8ff[_0xfb1e('0x74')]?operators[_0x126a3a[_0xfb1e('0x6f')]](_0x126a3a[_0xfb1e('0x70')],_0xbed8ff['event']):![];}break;case'queue':return _0xbed8ff[_0xfb1e('0x62')]?operators[_0x126a3a[_0xfb1e('0x6f')]](_0x126a3a[_0xfb1e('0x70')],_0xbed8ff[_0xfb1e('0x62')]):![];case _0xfb1e('0x75'):return _0xbed8ff['membername']?operators[_0x126a3a[_0xfb1e('0x6f')]](_0x126a3a[_0xfb1e('0x70')],_0xbed8ff['membername']):![];case _0xfb1e('0x76'):return _0xbed8ff['lastevent']?operators[_0x126a3a[_0xfb1e('0x6f')]](_0x126a3a[_0xfb1e('0x70')],_0xbed8ff['lastevent']):![];case _0xfb1e('0x77'):return _0xbed8ff[_0xfb1e('0x77')]?operators[_0x126a3a['operator']](_0x126a3a[_0xfb1e('0x70')],_0xbed8ff[_0xfb1e('0x77')]):![];case _0xfb1e('0x78'):return typeof _0xbed8ff[_0xfb1e('0x79')]!==_0xfb1e('0x7a')?operators[_0x126a3a[_0xfb1e('0x6f')]](_0x126a3a['value'],_0xbed8ff[_0xfb1e('0x79')]):![];}return![];};};module['exports']=Trigger;
\ No newline at end of file
+var _0x5c43=['freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentnosuchnumber','custom:agentcongestion','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','custom:dialconnect','syncAgentDial','custom:dialend','custom:closedinteraction','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','emit','info','prototype','clone','checkTriggers','interface','triggers','hasOwnProperty','status','merge','variables','Actions','length','action','toLowerCase','contactmanager','data1','TemplateId','data2','render','html','template\x20not\x20found','buildUri','isNil','data3','data4','uriLocation','windowWidth','data5','800','windowHeight','data6','600','winApplication','format','user:%s','trigger:%s:%s','name','trigger:%s','exec','integration','routeId','urlforward','parse','query','search','replace','checkTrigger','every','AllConditions','channel','AnyConditions','some','checkConditions','field','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','event','queue','membername','lastevent','exports','util','mustache','ioredis','./integration','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','popup','winapp','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts'];(function(_0x118ad1,_0x10ce0b){var _0x30d413=function(_0x16ac56){while(--_0x16ac56){_0x118ad1['push'](_0x118ad1['shift']());}};_0x30d413(++_0x10ce0b);}(_0x5c43,0x142));var _0x35c4=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x5c43[_0x20a584];return _0x4b41a8;};'use strict';var util=require(_0x35c4('0x0'));var _=require('lodash');var url=require('url');var Mustache=require(_0x35c4('0x1'));var Redis=require(_0x35c4('0x2'));var urlforward=require('./urlforward');var integration=require(_0x35c4('0x3'));var cmContact=require('./cmContact');var script=require(_0x35c4('0x4'));var config=require(_0x35c4('0x5'));var logger=require(_0x35c4('0x6'))(_0x35c4('0x7'));var ami=require(_0x35c4('0x8'));config[_0x35c4('0x9')]=_[_0x35c4('0xa')](config['redis'],{'host':_0x35c4('0xb'),'port':0x18eb});var io=require(_0x35c4('0xc'))(new Redis(config[_0x35c4('0x9')]));var operators={'equals':function(_0x68e6b6,_0x1cacd1){return _0x68e6b6==_0x1cacd1;},'not_equals':function(_0x53c1a3,_0x17b52f){return _0x53c1a3!=_0x17b52f;}};var barAndWebActions=[_0x35c4('0xd'),'url',_0x35c4('0xe')];function Trigger(_0x559f6e){this['triggers']=_0x559f6e['triggers'];this[_0x35c4('0xf')]=_0x559f6e[_0x35c4('0xf')];this[_0x35c4('0x10')]=_0x559f6e['voiceQueues'];this[_0x35c4('0x11')]=_0x559f6e[_0x35c4('0x11')];this[_0x35c4('0x12')]=_0x559f6e[_0x35c4('0x12')];this['zendeskAccounts']=_0x559f6e[_0x35c4('0x13')];this[_0x35c4('0x14')]=_0x559f6e[_0x35c4('0x14')];this[_0x35c4('0x15')]=_0x559f6e['salesforceAccounts'];this[_0x35c4('0x16')]=_0x559f6e[_0x35c4('0x16')];this[_0x35c4('0x17')]=_0x559f6e['zohoAccounts'];this[_0x35c4('0x18')]=_0x559f6e['deskAccounts'];this[_0x35c4('0x19')]=_0x559f6e['vtigerAccounts'];this[_0x35c4('0x1a')]=_0x559f6e['servicenowAccounts'];this[_0x35c4('0x1b')]=_0x559f6e['dynamics365Accounts'];this[_0x35c4('0x1c')]=_0x559f6e[_0x35c4('0x1c')];this[_0x35c4('0x1d')]={'zendesk':this['zendeskAccounts'],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0x35c4('0x14')],'sugarcrm':this[_0x35c4('0x16')],'zoho':this[_0x35c4('0x17')],'desk':this[_0x35c4('0x18')],'vtiger':this[_0x35c4('0x19')],'dynamics365':this[_0x35c4('0x1b')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x35c4('0x1a')]};ami['on']('custom:agentcalled',this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x20'),this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x21'),this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on']('custom:agentcomplete',this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x22'),this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on']('custom:agentnoanswer',this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on']('custom:agentbusy',this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x23'),this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on']('custom:agentreject',this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x24'),this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x25'),this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x26'),this['syncCustomEvent'][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x27'),this['syncAgentDial'][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x28'),this[_0x35c4('0x29')][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x2a'),this['syncAgentDial'][_0x35c4('0x1f')](this));ami['on']('custom:newinteraction',this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x2b'),this['syncCustomEvent'][_0x35c4('0x1f')](this));ami['on']('custom:incomingmessage',this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x2c'),this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x2d'),this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));ami['on'](_0x35c4('0x2e'),this[_0x35c4('0x1e')][_0x35c4('0x1f')](this));}Trigger['prototype'][_0x35c4('0x2f')]=function(_0x45fb24,_0x2810a3,_0x1c93cd){logger[_0x35c4('0x30')](_0x45fb24,_0x2810a3,JSON['stringify'](_0x1c93cd));io['to'](_0x45fb24)[_0x35c4('0x2f')](_0x2810a3,_0x1c93cd);};Trigger[_0x35c4('0x31')][_0x35c4('0x1e')]=function(_0x3fb057){var _0x1cc930=_[_0x35c4('0x32')](_0x3fb057);this[_0x35c4('0x33')](_0x1cc930);};Trigger[_0x35c4('0x31')][_0x35c4('0x29')]=function(_0x2aef7e){if(this[_0x35c4('0xf')][_0x2aef7e[_0x35c4('0x34')]]){this[_0x35c4('0x1e')](_0x2aef7e);}};Trigger[_0x35c4('0x31')][_0x35c4('0x33')]=function(_0x3f61cc){var _0x25b838;for(var _0x1ec021 in this[_0x35c4('0x35')]){if(this['triggers'][_0x35c4('0x36')](_0x1ec021)){if(this['triggers'][_0x1ec021][_0x35c4('0x37')]){_0x25b838=this['checkTrigger'](this[_0x35c4('0x35')][_0x1ec021],_0x3f61cc);if(_0x25b838){_[_0x35c4('0x38')](_0x3f61cc,_0x3f61cc[_0x35c4('0x39')]);for(var _0x4e0e56=0x0,_0x69722e,_0x14e42d,_0x5eee31;_0x4e0e56<this[_0x35c4('0x35')][_0x1ec021][_0x35c4('0x3a')][_0x35c4('0x3b')];_0x4e0e56+=0x1){_0x69722e=this[_0x35c4('0x35')][_0x1ec021][_0x35c4('0x3a')][_0x4e0e56];if(this[_0x35c4('0xf')][_0x3f61cc[_0x35c4('0x34')]]){switch(_0x69722e[_0x35c4('0x3c')][_0x35c4('0x3d')]()){case _0x35c4('0x3e'):break;case'motionbar':case'browser':var _0x32056a={};switch(barAndWebActions[_0x69722e[_0x35c4('0x3f')]]){case _0x35c4('0xd'):_0x32056a[_0x35c4('0x40')]=_0x69722e[_0x35c4('0x41')];_0x32056a['html']=this[_0x35c4('0x11')][_0x69722e['data2']]?Mustache[_0x35c4('0x42')](this[_0x35c4('0x11')][_0x69722e['data2']][_0x35c4('0x43')],_0x3f61cc):_0x35c4('0x44');break;case'url':_0x32056a['uri']=this[_0x35c4('0x45')](_0x69722e[_0x35c4('0x41')],_0x3f61cc,_[_0x35c4('0x46')](_0x69722e['data3'])?!![]:parseInt(_0x69722e[_0x35c4('0x47')],0xa));if(_[_0x35c4('0x46')](_0x69722e[_0x35c4('0x48')])){_0x32056a['location']='0';}else{_0x32056a[_0x35c4('0x49')]=_0x69722e['data4'];_0x32056a[_0x35c4('0x4a')]=_[_0x35c4('0x46')](_0x69722e[_0x35c4('0x4b')])?_0x35c4('0x4c'):_0x69722e[_0x35c4('0x4b')];_0x32056a[_0x35c4('0x4d')]=_[_0x35c4('0x46')](_0x69722e[_0x35c4('0x4e')])?_0x35c4('0x4f'):_0x69722e[_0x35c4('0x4e')];}break;case _0x35c4('0xe'):_0x32056a[_0x35c4('0x50')]=_0x69722e[_0x35c4('0x41')]?Mustache[_0x35c4('0x42')](_0x69722e[_0x35c4('0x41')],_0x3f61cc):'';_0x32056a['winArguments']=_0x69722e[_0x35c4('0x47')]?Mustache[_0x35c4('0x42')](_0x69722e[_0x35c4('0x47')],_0x3f61cc):'';break;}this['emit'](util[_0x35c4('0x51')](_0x35c4('0x52'),this[_0x35c4('0xf')][_0x3f61cc[_0x35c4('0x34')]]['name']),util[_0x35c4('0x51')](_0x35c4('0x53'),_0x69722e[_0x35c4('0x3c')][_0x35c4('0x3d')](),barAndWebActions[_0x69722e[_0x35c4('0x3f')]]),_['merge'](_0x32056a,_0x3f61cc));break;case'jscripty':this[_0x35c4('0x2f')](util[_0x35c4('0x51')]('user:%s',this[_0x35c4('0xf')][_0x3f61cc[_0x35c4('0x34')]]['name']),util[_0x35c4('0x51')]('trigger:%s',_0x69722e[_0x35c4('0x3c')][_0x35c4('0x3d')]()),_['merge']({'ProjectId':parseInt(_0x69722e[_0x35c4('0x3f')],0xa)},_0x3f61cc));break;default:this[_0x35c4('0x2f')](util[_0x35c4('0x51')](_0x35c4('0x52'),this[_0x35c4('0xf')][_0x3f61cc['interface']][_0x35c4('0x54')]),util[_0x35c4('0x51')](_0x35c4('0x55'),_0x69722e[_0x35c4('0x3c')][_0x35c4('0x3d')]()),_['merge']({},_0x69722e,_0x3f61cc));}}switch(_0x69722e[_0x35c4('0x3c')][_0x35c4('0x3d')]()){case _0x35c4('0x3e'):cmContact[_0x35c4('0x56')](this['agents'][_0x3f61cc[_0x35c4('0x34')]],this['triggers'][_0x1ec021],_0x69722e,_0x3f61cc);break;case _0x35c4('0x57'):integration[_0x35c4('0x56')](_0x69722e,_0x3f61cc,this[_0x35c4('0x1d')],this['agents'][_0x3f61cc[_0x35c4('0x34')]],this['voiceQueues'][_0x3f61cc['queue']],this['voiceExtensions'][_0x3f61cc[_0x35c4('0x58')]]);break;case _0x35c4('0x59'):urlforward[_0x35c4('0x56')](_0x69722e,_0x3f61cc);break;case'script':script[_0x35c4('0x56')](_0x69722e,_0x3f61cc);break;}}}}}}};Trigger[_0x35c4('0x31')][_0x35c4('0x45')]=function(_0x233e5b,_0x8d0b26,_0x77cf8a){var _0x776513=url[_0x35c4('0x5a')](Mustache[_0x35c4('0x42')](_0x233e5b,_0x8d0b26),!![]);if(_0x77cf8a){_[_0x35c4('0x38')](_0x776513[_0x35c4('0x5b')],_0x8d0b26);}delete _0x776513[_0x35c4('0x5c')];var _0x12eed6=url[_0x35c4('0x51')](_0x776513);_0x12eed6=_0x12eed6[_0x35c4('0x5d')](/\/\?/g,'?');return _0x12eed6;};Trigger[_0x35c4('0x31')][_0x35c4('0x5e')]=function(_0x4fcd51,_0x48cc25){var _0x1df88a=!![],_0x1248a9=!![];if(_0x4fcd51['AllConditions']['length']){_0x1df88a=_[_0x35c4('0x5f')](_0x4fcd51[_0x35c4('0x60')],this['checkConditions'](_0x48cc25,_0x4fcd51[_0x35c4('0x61')]));}if(_0x4fcd51[_0x35c4('0x62')][_0x35c4('0x3b')]){_0x1248a9=_[_0x35c4('0x63')](_0x4fcd51[_0x35c4('0x62')],this['checkConditions'](_0x48cc25,_0x4fcd51[_0x35c4('0x61')]));}return _0x1df88a&&_0x1248a9;};Trigger['prototype'][_0x35c4('0x64')]=function(_0x4a8b82,_0x1280a3){return function(_0x2da83e){switch(_0x2da83e[_0x35c4('0x65')]){case _0x35c4('0x66'):if(_0x4a8b82['channel']===_0x1280a3){if(_0x1280a3===_0x35c4('0x67')){return _0x4a8b82[_0x35c4('0x68')]?operators[_0x2da83e[_0x35c4('0x69')]](Number(_0x2da83e[_0x35c4('0x6a')]),_0x4a8b82[_0x35c4('0x68')]):![];}else{return _0x4a8b82[_[_0x35c4('0x6b')](_0x1280a3)+_0x35c4('0x6c')]?operators[_0x2da83e['operator']](Number(_0x2da83e['value']),_0x4a8b82[_['upperFirst'](_0x1280a3)+'AccountId']):![];}}break;case'interaction':case'message':if(_0x4a8b82[_0x35c4('0x61')]===_0x1280a3){return _0x4a8b82[_0x35c4('0x6d')]?operators[_0x2da83e[_0x35c4('0x69')]](_0x2da83e[_0x35c4('0x6a')],_0x4a8b82[_0x35c4('0x6d')]):![];}break;case _0x35c4('0x6e'):return _0x4a8b82[_0x35c4('0x6e')]?operators[_0x2da83e['operator']](_0x2da83e[_0x35c4('0x6a')],_0x4a8b82[_0x35c4('0x6e')]):![];case'agent':return _0x4a8b82[_0x35c4('0x6f')]?operators[_0x2da83e[_0x35c4('0x69')]](_0x2da83e[_0x35c4('0x6a')],_0x4a8b82[_0x35c4('0x6f')]):![];case _0x35c4('0x70'):return _0x4a8b82['lastevent']?operators[_0x2da83e[_0x35c4('0x69')]](_0x2da83e[_0x35c4('0x6a')],_0x4a8b82[_0x35c4('0x70')]):![];case _0x35c4('0x58'):return _0x4a8b82[_0x35c4('0x58')]?operators[_0x2da83e[_0x35c4('0x69')]](_0x2da83e['value'],_0x4a8b82[_0x35c4('0x58')]):![];}return![];};};module[_0x35c4('0x71')]=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(_0x10b7ae,_0x544fad){_0x10b7ae=_0x10b7ae-0x0;var _0x435a0d=_0xe14b[_0x10b7ae];return _0x435a0d;};'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 _0x326f=['catch','stringify','unmanaged','lastevent','toUpperCase','lodash','util','ioredis','./util','../../../../config/environment','../../../../config/logger','desk','redis','defaults','localhost','validateEmail','info','Getting\x20agent\x20with\x20email','%s/users','then','total_entries','_embedded','entries','Agent\x20found!','format','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','%s/users/me','remoteUri','debug','[HTTP]','GET','authType','basic','password','%s/token:%s','Basic\x20%s','Searching\x20enduser\x20with\x20phone','%s/customers/search','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','POST','work','map','length','includes','string','picklist','type','nameField','customField','toLowerCase','content','idField','custom_fields','toString','variable','variableName','customVariable','Variable','name','priority','Creating\x20new\x20ticket...','getString','Subjects','xCALLY','concat','Descriptions','user','Fields','%s/customers/%d/cases','queue','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','uniqueid','Authorization','email','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent...','trigger:desk:display','newTab','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','error','Desk\x20account\x20type\x20not\x20recognized','outbound','recordingFormat','none','[OUTBOUND]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','destcalleridname','integrationTab','%s/agent/tickets/%s'];(function(_0x1694f5,_0x49b7c3){var _0x5b4321=function(_0x58c183){while(--_0x58c183){_0x1694f5['push'](_0x1694f5['shift']());}};_0x5b4321(++_0x49b7c3);}(_0x326f,0xd1));var _0xf326=function(_0xbe621e,_0x212c13){_0xbe621e=_0xbe621e-0x0;var _0x1a44a5=_0x326f[_0xbe621e];return _0x1a44a5;};'use strict';var _=require(_0xf326('0x0'));var rp=require('request-promise');var md5=require('md5');var util=require(_0xf326('0x1'));var Redis=require(_0xf326('0x2'));var intUtil=require(_0xf326('0x3'));var config=require(_0xf326('0x4'));var logger=require(_0xf326('0x5'))(_0xf326('0x6'));config[_0xf326('0x7')]=_[_0xf326('0x8')](config[_0xf326('0x7')],{'host':_0xf326('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xf326('0x7')]));function emit(_0x3851eb,_0x165f95,_0x1e7b8a){io['to'](_0x3851eb)['emit'](_0x165f95,_0x1e7b8a);}var headers={'Content-Type':'application/json','Accept':'application/json'};function getUser(_0x3bacf2,_0x1fc80e){if(intUtil[_0xf326('0xa')](_0x1fc80e)===!![]){logger[_0xf326('0xb')](_0xf326('0xc'),_0x1fc80e);return request({'uri':util['format'](_0xf326('0xd'),_0x3bacf2['remoteUri'])})[_0xf326('0xe')](function(_0x4aaf3a){if(_0x4aaf3a[_0xf326('0xf')]){return _['find'](_0x4aaf3a[_0xf326('0x10')][_0xf326('0x11')],{'email':_0x1fc80e});}})['then'](function(_0x342fe5){if(_0x342fe5){logger[_0xf326('0xb')](_0xf326('0x12'));return _0x342fe5;}else{logger[_0xf326('0xb')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0xf326('0x13')]('%s/users/me',_0x3bacf2['remoteUri'])});}});}else{logger[_0xf326('0xb')](_0xf326('0x14'));return request({'uri':util[_0xf326('0x13')](_0xf326('0x15'),_0x3bacf2[_0xf326('0x16')])});}}function request(_0x287a2a){logger[_0xf326('0x17')](_0xf326('0x18'),JSON['stringify'](_0x287a2a));return rp(_[_0xf326('0x8')](_0x287a2a,{'method':_0xf326('0x19'),'headers':headers,'json':!![]}));}function getAuth(_0x18bee3){var _0x31ffb9;if(_0x18bee3[_0xf326('0x1a')]===_0xf326('0x1b')){_0x31ffb9=util['format']('%s:%s',_0x18bee3['username'],_0x18bee3[_0xf326('0x1c')]);}else if(_0x18bee3[_0xf326('0x1a')]==='token'){_0x31ffb9=util['format'](_0xf326('0x1d'),_0x18bee3['username'],_0x18bee3['token']);}return util[_0xf326('0x13')](_0xf326('0x1e'),new Buffer(_0x31ffb9)['toString']('base64'));}function getEndUser(_0x19b8ba,_0xb1efcf,_0x5f21a2){logger[_0xf326('0xb')](_0xf326('0x1f'),_0x5f21a2);return request({'uri':util[_0xf326('0x13')](_0xf326('0x20'),_0x19b8ba[_0xf326('0x16')]),'qs':{'phone':_0x5f21a2}})[_0xf326('0xe')](function(_0x5ce532){if(_0x5ce532['total_entries']){logger['info'](_0xf326('0x21'));return _0x5ce532[_0xf326('0x10')][_0xf326('0x11')][0x0];}else{logger[_0xf326('0xb')](_0xf326('0x22'));return request({'uri':util[_0xf326('0x13')]('%s/customers',_0x19b8ba[_0xf326('0x16')]),'method':_0xf326('0x23'),'body':{'first_name':_0xb1efcf,'title':_0xb1efcf,'phone_numbers':[{'type':_0xf326('0x24'),'value':_0x5f21a2}]}});}});}function getTags(_0x581531,_0x1617d2){var _0x55ad0f=[];if(_0x581531&&_0x581531['length']>0x0){_0x55ad0f=_[_0xf326('0x25')](_0x581531,_0x1617d2);}return _0x55ad0f;}function getCustomFields(_0x1ae23a,_0x2fa28e){var _0x5dbe63=[];var _0xc115d9={'custom_fields':{}};if(_0x1ae23a[_0xf326('0x26')]>0x0){_['forEach'](_0x1ae23a,function(_0x225776){if(_[_0xf326('0x27')]([_0xf326('0x28'),_0xf326('0x29')],_0x225776[_0xf326('0x2a')])&&_0x225776[_0xf326('0x2b')]&&!_0x225776[_0xf326('0x2c')]){_0xc115d9[_0x225776[_0xf326('0x2b')][_0xf326('0x2d')]()]=_0x225776[_0xf326('0x2e')]['toString']();}else if(_[_0xf326('0x27')]([_0xf326('0x28'),_0xf326('0x29')],_0x225776['type'])&&_0x225776[_0xf326('0x2f')]&&_0x225776[_0xf326('0x2c')]){_0xc115d9[_0xf326('0x30')][_0x225776['idField']]=_0x225776['content'][_0xf326('0x31')]();}else if(_0x225776[_0xf326('0x2a')]===_0xf326('0x32')&&_0x225776[_0xf326('0x33')]&&_0x225776[_0xf326('0x2f')]&&_0x225776[_0xf326('0x2c')]){_0x2fa28e[_0x225776[_0xf326('0x33')]]&&(_0xc115d9[_0xf326('0x30')][_0x225776['idField']]=_0x2fa28e[_0x225776[_0xf326('0x33')]][_0xf326('0x31')]());}else if(_0x225776['type']===_0xf326('0x34')&&_0x225776['Variable']&&_0x225776[_0xf326('0x35')]['name']&&_0x225776['idField']&&_0x225776[_0xf326('0x2c')]){_0x2fa28e[_0x225776['Variable'][_0xf326('0x36')]['toLowerCase']()]&&(_0xc115d9[_0xf326('0x30')][_0x225776[_0xf326('0x2f')]]=_0x2fa28e[_0x225776[_0xf326('0x35')]['name'][_0xf326('0x2d')]()][_0xf326('0x31')]());}});}if(_0xc115d9['priority']){_0xc115d9[_0xf326('0x37')]=Number(_0xc115d9[_0xf326('0x37')]);}return _0xc115d9;}function getTicket(_0x40fa7a,_0xaf65e0,_0x51076c,_0x2c4416,_0xb1ef35){logger[_0xf326('0xb')](_0xf326('0x38'));var _0x1d88ed=_['merge']({'subject':intUtil[_0xf326('0x39')](_0x2c4416[_0xf326('0x3a')],_0xb1ef35,'\x20'),'type':'phone','status':'new','labels':[_0xf326('0x3b'),'Motion','CTI'][_0xf326('0x3c')](getTags(_0x2c4416['Tags'],_0xf326('0x36'))),'description':intUtil[_0xf326('0x39')](_0x2c4416[_0xf326('0x3d')],_0xb1ef35,'\x0a'),'_links':{'assigned_user':{'href':util[_0xf326('0x13')]('/api/v2/users/%d',_0xaf65e0['id']),'class':_0xf326('0x3e')}},'message':{'direction':'in','body':intUtil[_0xf326('0x39')](_0x2c4416[_0xf326('0x3d')],_0xb1ef35,'\x0a')}},getCustomFields(_0x2c4416[_0xf326('0x3f')],_0xb1ef35));return request({'uri':util[_0xf326('0x13')](_0xf326('0x40'),_0x40fa7a[_0xf326('0x16')],_0x51076c['id']),'method':_0xf326('0x23'),'body':_0x1d88ed});}exports[_0xf326('0x41')]=function(_0x1227d3,_0x361776,_0x2bab13,_0x50d63f,_0x1b6126,_0x1637dc){var _0x2ed1a7,_0x270288;_0x1637dc[_0xf326('0x16')]=intUtil[_0xf326('0x42')](_0x1637dc['remoteUri']);_0x1637dc[_0xf326('0x43')]=intUtil[_0xf326('0x42')](_0x1637dc['serverUrl']);if(_0x1b6126&&_0x1b6126[_0xf326('0x44')]){logger[_0xf326('0xb')](_0xf326('0x45'),_0xf326('0x46'));_0x361776[_0xf326('0x47')]=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x1637dc[_0xf326('0x43')],_0x361776[_0xf326('0x48')],md5(_0x361776['uniqueid']));}else{_0x361776['recordingURL']='';}headers[_0xf326('0x49')]=getAuth(_0x1637dc);return getUser(_0x1637dc,_0x50d63f[_0xf326('0x4a')])[_0xf326('0xe')](function(_0x5b3705){_0x2ed1a7=_0x5b3705;logger[_0xf326('0xb')](_0xf326('0x4b'),_0x2ed1a7['id']);return getEndUser(_0x1637dc,_0x361776[_0xf326('0x4c')],_0x361776[_0xf326('0x4d')]);})[_0xf326('0xe')](function(_0x2d9bba){_0x270288=_0x2d9bba;logger[_0xf326('0xb')](_0xf326('0x4e'),_0x270288['id']);return getTicket(_0x1637dc,_0x2ed1a7,_0x270288,_0x2bab13,_0x361776);})[_0xf326('0xe')](function(_0x27ced1){if(_0x27ced1){logger[_0xf326('0xb')](_0xf326('0x4f'));logger[_0xf326('0xb')](_0xf326('0x50'),_0x27ced1['id']);switch(_0x1637dc[_0xf326('0x2a')]){case'integrationTab':logger[_0xf326('0xb')](_0xf326('0x45'),_0xf326('0x51'));emit(util[_0xf326('0x13')]('user:%s',_0x50d63f[_0xf326('0x36')]),_0xf326('0x52'),{'recordId':_0x27ced1['id']});break;case _0xf326('0x53'):logger[_0xf326('0xb')]('[QUEUE]',_0xf326('0x54'));emit(util[_0xf326('0x13')](_0xf326('0x55'),_0x50d63f[_0xf326('0x36')]),_0xf326('0x56'),{'uri':util['format']('https://xcally.desk.com/web/agent/case/%d',_0x27ced1['id'])});break;default:logger[_0xf326('0x57')](_0xf326('0x45'),_0xf326('0x58'));}}})['catch'](function(_0x102fba){console[_0xf326('0x57')](_0x102fba);logger[_0xf326('0x57')]('[QUEUE]',JSON['stringify'](_0x102fba));});};exports[_0xf326('0x59')]=function(_0x5b4832,_0x1cf58f,_0x554277,_0x458e5f,_0x7ee57,_0x28c959,_0x25e091){var _0x212594,_0x35d3c8;_0x28c959[_0xf326('0x16')]=intUtil['stripTrailingSlash'](_0x28c959[_0xf326('0x16')]);_0x28c959[_0xf326('0x43')]=intUtil[_0xf326('0x42')](_0x28c959['serverUrl']);if(_0x25e091&&_0x25e091[_0xf326('0x5a')]&&_0x25e091[_0xf326('0x5a')]!==_0xf326('0x5b')){logger[_0xf326('0xb')](_0xf326('0x5c'),'Recording\x20is\x20enabled!');_0x1cf58f[_0xf326('0x47')]=util[_0xf326('0x13')](_0xf326('0x5d'),_0x28c959[_0xf326('0x43')],_0x1cf58f['uniqueid'],md5(_0x1cf58f[_0xf326('0x48')]));}headers[_0xf326('0x49')]=getAuth(_0x28c959);return getUser(_0x28c959,_0x458e5f[_0xf326('0x4a')])[_0xf326('0xe')](function(_0x4d3b9e){_0x212594=_0x4d3b9e;logger['info'](_0xf326('0x4b'),_0x212594['id']);return getEndUser(_0x28c959,_0x1cf58f[_0xf326('0x5e')],_0x1cf58f['destcalleridnum']);})[_0xf326('0xe')](function(_0x29de71){_0x35d3c8=_0x29de71;logger[_0xf326('0xb')](_0xf326('0x4e'),_0x35d3c8['id']);return getTicket(_0x28c959,_0x212594,_0x35d3c8,_0x554277,_0x1cf58f);})['then'](function(_0xb1c18c){if(_0xb1c18c){logger['info']('Ticket\x20created!');logger[_0xf326('0xb')]('The\x20Ticket\x20ID\x20is:',_0xb1c18c['id']);switch(_0x28c959[_0xf326('0x2a')]){case _0xf326('0x5f'):logger[_0xf326('0xb')]('[QUEUE]','Displaying\x20ticket\x20to\x20agent...');emit(util[_0xf326('0x13')](_0xf326('0x55'),_0x458e5f[_0xf326('0x36')]),'trigger:desk:display',{'recordId':_0xb1c18c['id']});break;case _0xf326('0x53'):logger['info'](_0xf326('0x45'),_0xf326('0x54'));emit(util[_0xf326('0x13')](_0xf326('0x55'),_0x458e5f[_0xf326('0x36')]),_0xf326('0x56'),{'uri':util[_0xf326('0x13')](_0xf326('0x60'),_0x28c959[_0xf326('0x16')],_0xb1c18c['id'])});break;default:logger[_0xf326('0x57')](_0xf326('0x5c'),_0xf326('0x58'));}}})[_0xf326('0x61')](function(_0x4ca1b8){logger[_0xf326('0x57')]('[OUTBOUND]',JSON[_0xf326('0x62')](_0x4ca1b8));});};exports[_0xf326('0x63')]=function(_0x5e858d,_0x2b770c,_0x5283da,_0x3255b2,_0xd55246,_0x28f3cb){var _0x2d45c9,_0x31b6dd;_0x28f3cb['remoteUri']=intUtil['stripTrailingSlash'](_0x28f3cb[_0xf326('0x16')]);_0x28f3cb[_0xf326('0x43')]=intUtil[_0xf326('0x42')](_0x28f3cb[_0xf326('0x43')]);if(_0xd55246&&_0xd55246[_0xf326('0x44')]){logger['info']('['+_0x2b770c[_0xf326('0x64')][_0xf326('0x65')]()+']','Recording\x20is\x20enabled!');_0x2b770c['recordingURL']=util['format'](_0xf326('0x5d'),_0x28f3cb[_0xf326('0x43')],_0x2b770c[_0xf326('0x48')],md5(_0x2b770c[_0xf326('0x48')]));}else{_0x2b770c[_0xf326('0x47')]='';}headers[_0xf326('0x49')]=getAuth(_0x28f3cb);return getUser(_0x28f3cb)[_0xf326('0xe')](function(_0x4b9013){_0x2d45c9=_0x4b9013;logger[_0xf326('0xb')](_0xf326('0x4b'),_0x2d45c9['id']);return getEndUser(_0x28f3cb,_0x2b770c[_0xf326('0x4c')],_0x2b770c[_0xf326('0x4d')]);})['then'](function(_0x3717fe){_0x31b6dd=_0x3717fe;logger['info']('The\x20Enduser\x20ID\x20is:',_0x31b6dd['id']);return getTicket(_0x28f3cb,_0x2d45c9,_0x31b6dd,_0x5283da,_0x2b770c);})[_0xf326('0xe')](function(_0x540fa0){if(_0x540fa0){logger[_0xf326('0xb')](_0xf326('0x4f'));logger[_0xf326('0xb')](_0xf326('0x50'),_0x540fa0['id']);}})[_0xf326('0x61')](function(_0x541491){logger['error']('['+_0x2b770c['lastevent'][_0xf326('0x65')]()+']',JSON[_0xf326('0x62')](_0x541491));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xffda=['telephone1',']\x20Enduser\x20created!',']\x20Enduser\x20Created!','forEach','includes','string','picklist','type','nameField','customField','indexOf','content','ticketType','incident','assign','getString','Subjects','Descriptions','/contacts(','phonecall','phonecalls','callDirection','queue','headers','ticketId','%s/main.aspx?pagetype=entityrecord&etn=%s&id=%s','user:%s','emit','trigger:browser:url','serverUrl','stripTrailingSlash','unmanaged','format','%s/api/data/v9.0/','https://login.microsoftonline.com/%s/oauth2/token','tenantId','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','[OUTBOUND]',']\x20The\x20User\x20ID\x20is:',']\x20The\x20Enduser\x20ID\x20is:',']\x20The\x20Enduser\x20phone\x20is:',']\x20The\x20%s\x20ID\x20is:\x20%s',']\x20Call\x20direction:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Dynamics365\x20integration','inspect','request-promise','util','./util','ioredis','../../../../config/environment','redis','defaults','POST','clientId','remoteUri','password','clientSecret','then','access_token','catch','error','toUpperCase',']\x20Wrong\x20credentials!','message','GET','systemusers?$select=internalemailaddress,isdisabled,systemuserid','Bearer\x20','isNil','email','userEmail','length','internalemailaddress','isdisabled',']\x20Agent\x20found\x20','systemuserid','info',']\x20Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','outbound','destcalleridnum','calleridnum','/systemusers(','4.0','odata-entityid','substring','lastIndexOf','enduserId','toLowerCase','contacts?$select=telephone1&$filter=telephone1\x20eq\x20\x27','%2b','value'];(function(_0x2c3a8f,_0x374e56){var _0x189412=function(_0x560055){while(--_0x560055){_0x2c3a8f['push'](_0x2c3a8f['shift']());}};_0x189412(++_0x374e56);}(_0xffda,0x15a));var _0xaffd=function(_0xefb711,_0x3d383c){_0xefb711=_0xefb711-0x0;var _0x16c68d=_0xffda[_0xefb711];return _0x16c68d;};'use strict';var _=require('lodash');var BPromise=require('bluebird');var rp=require(_0xaffd('0x0'));var util=require(_0xaffd('0x1'));var intUtil=require(_0xaffd('0x2'));var md5=require('md5');var Redis=require(_0xaffd('0x3'));var logger=require('../../../../config/logger')('dynamics365');var config=require(_0xaffd('0x4'));config[_0xaffd('0x5')]=_[_0xaffd('0x6')](config[_0xaffd('0x5')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xaffd('0x5')]));function getAuthToken(_0x4cdf8b,_0x1209d7,_0x45ae9e){var _0x514254={'method':_0xaffd('0x7'),'uri':_0x1209d7,'form':{'client_id':_0x4cdf8b[_0xaffd('0x8')],'resource':_0x4cdf8b[_0xaffd('0x9')],'username':_0x4cdf8b['username'],'password':_0x4cdf8b[_0xaffd('0xa')],'grant_type':_0xaffd('0xa'),'client_secret':_0x4cdf8b[_0xaffd('0xb')]},'json':!![]};return rp(_0x514254)[_0xaffd('0xc')](function(_0x3468eb){return _0x3468eb[_0xaffd('0xd')];})[_0xaffd('0xe')](function(_0x1a5a3e){logger[_0xaffd('0xf')]('['+[_0x45ae9e[_0xaffd('0x10')]()]+_0xaffd('0x11'));return _0x1a5a3e[_0xaffd('0x12')];});}function getUser(_0x363faa,_0x5d1598,_0x1c07b7,_0x54091a,_0x56a26d,_0x4338ed){return new BPromise(function(_0x1345b2,_0x19a727){return getAuthToken(_0x5d1598,_0x54091a,_0x4338ed)[_0xaffd('0xc')](function(_0x5b13ea){var _0xc9b660={'method':_0xaffd('0x13'),'uri':_0x56a26d+_0xaffd('0x14'),'headers':{'Authorization':_0xaffd('0x15')+_0x5b13ea,'OData-Version':'4.0'},'json':!![]};return rp(_0xc9b660);})[_0xaffd('0xc')](function(_0xf9c969){var _0x309498=_0xf9c969['value'];var _0x58e273=![];var _0x373f51=null;if(!_[_0xaffd('0x16')](_0x1c07b7)){if(intUtil['validateEmail'](_0x1c07b7[_0xaffd('0x17')])){_0x363faa[_0xaffd('0x18')]=_0x1c07b7[_0xaffd('0x17')];for(_0x373f51=0x0;_0x373f51<_0x309498[_0xaffd('0x19')];_0x373f51++){if(_0x309498[_0x373f51][_0xaffd('0x1a')]===_0x1c07b7['email']&&!_0x309498[_0x373f51][_0xaffd('0x1b')]){_0x58e273=!![];logger['info']('['+[_0x4338ed[_0xaffd('0x10')]()]+_0xaffd('0x1c')+_0x309498[_0x373f51][_0xaffd('0x1d')]+'!');_0x363faa['userId']=_0x309498[_0x373f51][_0xaffd('0x1d')];}}}}if(!_0x58e273){logger[_0xaffd('0x1e')]('['+[_0x4338ed[_0xaffd('0x10')]()]+_0xaffd('0x1f'));_0x363faa[_0xaffd('0x18')]=_0x5d1598['username'];for(_0x373f51=0x0;_0x373f51<_0x309498[_0xaffd('0x19')];_0x373f51++){if(_0x309498[_0x373f51][_0xaffd('0x1a')]===_0x5d1598['username']){_0x363faa[_0xaffd('0x20')]=_0x309498[_0x373f51]['systemuserid'];}}}_0x1345b2(_0x363faa);})['catch'](function(_0x5ac552){_0x19a727(_0x5ac552[_0xaffd('0x12')]);});});}function createEndUser(_0x47f4c6,_0x4ba5ed,_0x4bc5a1,_0x4a225e,_0x5e4f0e,_0x255eda){return new BPromise(function(_0x1765c8,_0x2b5ab3){return getAuthToken(_0x4ba5ed,_0x4bc5a1,_0x255eda)[_0xaffd('0xc')](function(_0x296658){var _0x44307c=_0x255eda['toLowerCase']()===_0xaffd('0x21')?_0x5e4f0e[_0xaffd('0x22')]:_0x5e4f0e[_0xaffd('0x23')];var _0x4e9ac5={'method':_0xaffd('0x7'),'uri':_0x4a225e+'contacts','body':{'telephone1':_0x44307c,'fullname':_0x44307c,'firstname':_0x44307c,'lastname':'_','mobilephone':null,'address1_telephone1':null,'ownerid@odata.bind':_0xaffd('0x24')+_0x47f4c6[_0xaffd('0x20')]+')'},'headers':{'Authorization':_0xaffd('0x15')+_0x296658,'OData-Version':_0xaffd('0x25')},'json':!![],'resolveWithFullResponse':!![]};return rp(_0x4e9ac5);})[_0xaffd('0xc')](function(_0x5e4fae){var _0x1763da=_0x5e4fae['headers'][_0xaffd('0x26')];var _0x116c64=_0x1763da[_0xaffd('0x27')](_0x1763da['lastIndexOf']('(')+0x1,_0x1763da[_0xaffd('0x28')](')'));_0x47f4c6[_0xaffd('0x29')]=_0x116c64;_0x1765c8(_0x47f4c6);})['catch'](function(_0x4c05d5){_0x2b5ab3(_0x4c05d5[_0xaffd('0x12')]);});});}function getEndUser(_0x271328,_0x1abcae,_0x2932c9,_0x19f275,_0xf1cbb7,_0x206da5){return new BPromise(function(_0x203118,_0x93e45){var _0x414c05=_0x206da5[_0xaffd('0x2a')]()===_0xaffd('0x21')?_0xf1cbb7[_0xaffd('0x22')]:_0xf1cbb7[_0xaffd('0x23')];return getAuthToken(_0x1abcae,_0x2932c9,_0x206da5)['then'](function(_0x357bf0){var _0x1106bf={'method':_0xaffd('0x13'),'uri':_0x19f275+_0xaffd('0x2b')+_0x414c05['replace']('+',_0xaffd('0x2c'))+'\x27','headers':{'Authorization':_0xaffd('0x15')+_0x357bf0,'If-None-Match':null,'OData-Version':_0xaffd('0x25')},'json':!![]};return rp(_0x1106bf);})[_0xaffd('0xc')](function(_0x5e683e){var _0xb31e45=null;if(_0x5e683e){var _0x3a7611=_0x5e683e[_0xaffd('0x2d')];var _0x1f33d3=![];for(_0xb31e45=0x0;_0xb31e45<_0x3a7611[_0xaffd('0x19')];_0xb31e45++){if(_0x3a7611[_0xb31e45][_0xaffd('0x2e')]===_0x414c05){_0x1f33d3=!![];_0x271328[_0xaffd('0x29')]=_0x3a7611[_0xb31e45]['contactid'];}}if(_0x1f33d3){_0x203118(_0x271328);}else{return createEndUser(_0x271328,_0x1abcae,_0x2932c9,_0x19f275,_0xf1cbb7,_0x206da5)[_0xaffd('0xc')](function(_0x495adf){logger[_0xaffd('0x1e')]('['+[_0x206da5[_0xaffd('0x10')]()]+_0xaffd('0x2f'),_0x495adf[_0xaffd('0x29')]);_0x203118(_0x495adf);});}}else{return createEndUser(_0x271328,_0x1abcae,_0x2932c9,_0x19f275,_0xf1cbb7,_0x206da5)['then'](function(_0x2501ce){logger[_0xaffd('0x1e')]('['+[_0x206da5['toUpperCase']()]+_0xaffd('0x30'),_0x2501ce[_0xaffd('0x29')]);_0x203118(_0x2501ce);});}});});}function getCustomFields(_0xf9d908,_0x546d3e,_0x4b7cf0){var _0x26fa7f={};if(_0xf9d908['length']>0x0){_[_0xaffd('0x31')](_0xf9d908,function(_0x23fe5e){if(_[_0xaffd('0x32')]([_0xaffd('0x33'),_0xaffd('0x34')],_0x23fe5e[_0xaffd('0x35')])&&_0x23fe5e[_0xaffd('0x36')]&&!_0x23fe5e[_0xaffd('0x37')]){var _0x24f486=_0x23fe5e['idField'][_0xaffd('0x2a')]();var _0x239bff=_0x24f486[_0xaffd('0x27')](0x0,_0x24f486[_0xaffd('0x38')]('_'));var _0x2e1320=_0x24f486[_0xaffd('0x27')](_0x24f486[_0xaffd('0x38')]('_')+0x1);if(_0x239bff===_0x4b7cf0){_0x26fa7f[_0x2e1320]=_0x23fe5e[_0xaffd('0x39')];}}});}return _0x26fa7f;}function getTicket(_0x284029,_0x540e75,_0x539f66,_0x46c3a0,_0xad5fe6,_0x36e7ee,_0x244f51){return new BPromise(function(_0x5e4fdb,_0x2d284c){var _0x5dcc76;return getAuthToken(_0x540e75,_0x539f66,_0x244f51)[_0xaffd('0xc')](function(_0x28a5bf){if(_0x36e7ee[_0xaffd('0x3a')]===_0xaffd('0x3b')){_0x5dcc76={'method':_0xaffd('0x7'),'uri':_0x46c3a0+'incidents','body':Object[_0xaffd('0x3c')]({},{'title':intUtil[_0xaffd('0x3d')](_0x36e7ee[_0xaffd('0x3e')],_0xad5fe6,'\x20'),'description':intUtil[_0xaffd('0x3d')](_0x36e7ee[_0xaffd('0x3f')],_0xad5fe6,'\x0a'),'customerid_contact@odata.bind':_0xaffd('0x40')+_0x284029['enduserId']+')','ownerid@odata.bind':_0xaffd('0x24')+_0x284029[_0xaffd('0x20')]+')','caseorigincode':'1'},getCustomFields(_0x36e7ee['Fields'],_0xad5fe6,_0x36e7ee[_0xaffd('0x3a')])),'headers':{'Authorization':_0xaffd('0x15')+_0x28a5bf,'OData-Version':_0xaffd('0x25')},'json':!![],'resolveWithFullResponse':!![]};}if(_0x36e7ee['ticketType']===_0xaffd('0x41')){_0x5dcc76={'method':_0xaffd('0x7'),'uri':_0x46c3a0+_0xaffd('0x42'),'body':Object['assign']({},{'subject':intUtil[_0xaffd('0x3d')](_0x36e7ee['Subjects'],_0xad5fe6,'\x20'),'phonenumber':String(_0xad5fe6[_0xaffd('0x23')]),'description':intUtil[_0xaffd('0x3d')](_0x36e7ee[_0xaffd('0x3f')],_0xad5fe6,'\x0a'),'regardingobjectid_contact@odata.bind':'/contacts('+_0x284029['enduserId']+')','ownerid@odata.bind':_0xaffd('0x24')+_0x284029['userId']+')','directioncode':_0x284029[_0xaffd('0x43')]===_0xaffd('0x44')?![]:!![],'phonecall_activity_parties':[{'partyid_systemuser@odata.bind':_0xaffd('0x24')+_0x284029[_0xaffd('0x20')]+')','participationtypemask':_0x284029[_0xaffd('0x43')]==='queue'?0x2:0x1},{'partyid_contact@odata.bind':_0xaffd('0x40')+_0x284029[_0xaffd('0x29')]+')','participationtypemask':_0x284029[_0xaffd('0x43')]===_0xaffd('0x44')?0x1:0x2}]},getCustomFields(_0x36e7ee['Fields'],_0xad5fe6,_0x36e7ee[_0xaffd('0x3a')])),'headers':{'Authorization':_0xaffd('0x15')+_0x28a5bf,'OData-Version':_0xaffd('0x25')},'json':!![],'resolveWithFullResponse':!![]};}return rp(_0x5dcc76);})['then'](function(_0x50b685){var _0x53d680=_0x50b685[_0xaffd('0x45')]['odata-entityid'];var _0x3fcbec=_0x53d680[_0xaffd('0x27')](_0x53d680[_0xaffd('0x28')]('(')+0x1,_0x53d680[_0xaffd('0x28')](')'));_0x284029[_0xaffd('0x46')]=_0x3fcbec;_0x5e4fdb(_0x284029);})['catch'](function(_0x1ee24a){_0x2d284c(_0x1ee24a[_0xaffd('0x12')]);});});}function emit(_0x5e54e6,_0x412709,_0xb0e05c,_0x2d211a){var _0x2f2430={'uri':util['format'](_0xaffd('0x47'),_0x5e54e6,_0xb0e05c,_0x2d211a)};io['to'](util['format'](_0xaffd('0x48'),_0x412709))[_0xaffd('0x49')](_0xaffd('0x4a'),_0x2f2430);}exports['cs']=function(_0x341f23,_0x5921ce,_0x27fbc5,_0x23867c,_0x435046,_0x5fb2a2,_0x3e53a3,_0x155549){var _0xd8e199={};_0x5fb2a2['remoteUri']=intUtil['stripTrailingSlash'](_0x5fb2a2['remoteUri']);_0x5fb2a2[_0xaffd('0x4b')]=intUtil[_0xaffd('0x4c')](_0x5fb2a2[_0xaffd('0x4b')]);_0xd8e199['callDirection']=_0x155549===_0xaffd('0x44')||_0x155549===_0xaffd('0x4d')?_0xaffd('0x44'):_0xaffd('0x21');var _0x57dbd6=util[_0xaffd('0x4e')](_0xaffd('0x4f'),_0x5fb2a2[_0xaffd('0x9')]);var _0x8998b4=util[_0xaffd('0x4e')](_0xaffd('0x50'),_0x5fb2a2[_0xaffd('0x51')]);var _0x2a6cf0=util[_0xaffd('0x4e')](_0xaffd('0x52'),_0x5fb2a2[_0xaffd('0x4b')],_0x5921ce[_0xaffd('0x53')],md5(_0x5921ce[_0xaffd('0x53')]));if(_0x435046&&_0x435046['monitor_format']){logger[_0xaffd('0x1e')](_0xaffd('0x54'),_0xaffd('0x55'));_0x5921ce[_0xaffd('0x56')]=_0x2a6cf0;}else if(_0x3e53a3&&_0x3e53a3[_0xaffd('0x57')]&&_0x3e53a3[_0xaffd('0x57')]!=='none'){logger['info'](_0xaffd('0x58'),_0xaffd('0x55'));_0x5921ce['recordingURL']=_0x2a6cf0;}else{_0x5921ce[_0xaffd('0x56')]='';}return getUser(_0xd8e199,_0x5fb2a2,_0x23867c,_0x8998b4,_0x57dbd6,_0x155549)[_0xaffd('0xc')](function(_0x49e3e4){logger[_0xaffd('0x1e')]('['+_0x155549['toUpperCase']()+_0xaffd('0x59'),_0x49e3e4['userId']);logger[_0xaffd('0x1e')]('['+_0x155549['toUpperCase']()+']\x20The\x20User\x20email\x20is:',_0x49e3e4[_0xaffd('0x18')]);return getEndUser(_0x49e3e4,_0x5fb2a2,_0x8998b4,_0x57dbd6,_0x5921ce,_0x155549);})[_0xaffd('0xc')](function(_0x4cbbfc){logger[_0xaffd('0x1e')]('['+_0x155549['toUpperCase']()+_0xaffd('0x5a'),_0x4cbbfc[_0xaffd('0x29')]);logger[_0xaffd('0x1e')]('['+_0x155549[_0xaffd('0x10')]()+_0xaffd('0x5b'),_0x5921ce[_0xaffd('0x23')]);return getTicket(_0x4cbbfc,_0x5fb2a2,_0x8998b4,_0x57dbd6,_0x5921ce,_0x27fbc5,_0x155549);})[_0xaffd('0xc')](function(_0x168449){logger[_0xaffd('0x1e')](util[_0xaffd('0x4e')]('['+_0x155549[_0xaffd('0x10')]()+_0xaffd('0x5c'),_0x27fbc5[_0xaffd('0x3a')],_0x168449[_0xaffd('0x46')]));logger[_0xaffd('0x1e')](util['format']('['+_0x155549['toUpperCase']()+_0xaffd('0x5d'),_0x155549));if(_0x155549!==_0xaffd('0x4d')){logger[_0xaffd('0x1e')]('['+_0x155549[_0xaffd('0x10')]()+']',_0xaffd('0x5e'));emit(_0x5fb2a2[_0xaffd('0x9')],_0x23867c[_0xaffd('0x5f')],_0x27fbc5[_0xaffd('0x3a')],_0x168449['ticketId']);}})[_0xaffd('0xe')](function(_0x4f080d){logger[_0xaffd('0xf')]('['+_0x155549[_0xaffd('0x10')]()+_0xaffd('0x60'),util[_0xaffd('0x61')](_0x4f080d,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x750b=['uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','[OUTBOUND]',']\x20The\x20User\x20ID\x20is:',']\x20The\x20User\x20email\x20is:',']\x20The\x20Enduser\x20ID\x20is:',']\x20The\x20Enduser\x20phone\x20is:',']\x20The\x20%s\x20ID\x20is:\x20%s',']\x20Call\x20direction:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...','name','lodash','request-promise','util','./util','ioredis','../../../../config/logger','dynamics365','../../../../config/environment','socket.io-emitter','redis','clientId','username','password','clientSecret','then','access_token','catch','error',']\x20Wrong\x20credentials!','GET','systemusers?$select=internalemailaddress,isdisabled,systemuserid','Bearer\x20','4.0','value','isNil','validateEmail','email','userEmail','length','isdisabled','info','toUpperCase',']\x20Agent\x20found\x20','systemuserid',']\x20Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','internalemailaddress','userId','message','outbound','destcalleridnum','calleridnum','POST','contacts','headers','lastIndexOf','toLowerCase','contacts?$select=telephone1&$filter=telephone1\x20eq\x20\x27','%2b','telephone1','enduserId','contactid',']\x20Enduser\x20created!',']\x20Enduser\x20Created!','forEach','string','picklist','type','nameField','customField','substring','indexOf','content','ticketType','incident','incidents','assign','getString','Subjects','Descriptions','/contacts(','/systemusers(','Fields','phonecall','callDirection','queue','odata-entityid','ticketId','format','%s/main.aspx?pagetype=entityrecord&etn=%s&id=%s','emit','trigger:browser:url','remoteUri','stripTrailingSlash','serverUrl','%s/api/data/v9.0/','https://login.microsoftonline.com/%s/oauth2/token','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s'];(function(_0x3e6625,_0xa78a0a){var _0x22751b=function(_0x38e25e){while(--_0x38e25e){_0x3e6625['push'](_0x3e6625['shift']());}};_0x22751b(++_0xa78a0a);}(_0x750b,0x1ac));var _0xb750=function(_0xfa0c74,_0x1a934b){_0xfa0c74=_0xfa0c74-0x0;var _0x57bb17=_0x750b[_0xfa0c74];return _0x57bb17;};'use strict';var _=require(_0xb750('0x0'));var BPromise=require('bluebird');var rp=require(_0xb750('0x1'));var util=require(_0xb750('0x2'));var intUtil=require(_0xb750('0x3'));var md5=require('md5');var Redis=require(_0xb750('0x4'));var logger=require(_0xb750('0x5'))(_0xb750('0x6'));var config=require(_0xb750('0x7'));config['redis']=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xb750('0x8'))(new Redis(config[_0xb750('0x9')]));function getAuthToken(_0x3b5ad4,_0x194511,_0x2e54fe){var _0x4ba995={'method':'POST','uri':_0x194511,'form':{'client_id':_0x3b5ad4[_0xb750('0xa')],'resource':_0x3b5ad4['remoteUri'],'username':_0x3b5ad4[_0xb750('0xb')],'password':_0x3b5ad4[_0xb750('0xc')],'grant_type':'password','client_secret':_0x3b5ad4[_0xb750('0xd')]},'json':!![]};return rp(_0x4ba995)[_0xb750('0xe')](function(_0x5c7037){return _0x5c7037[_0xb750('0xf')];})[_0xb750('0x10')](function(_0x420db1){logger[_0xb750('0x11')]('['+[_0x2e54fe['toUpperCase']()]+_0xb750('0x12'));return _0x420db1['message'];});}function getUser(_0x5bb122,_0x21ba71,_0x40700,_0x1b97b6,_0x24cfc9,_0x384026){return new BPromise(function(_0xee2c22,_0x5d16fb){return getAuthToken(_0x21ba71,_0x1b97b6,_0x384026)[_0xb750('0xe')](function(_0x12df01){var _0x1aada9={'method':_0xb750('0x13'),'uri':_0x24cfc9+_0xb750('0x14'),'headers':{'Authorization':_0xb750('0x15')+_0x12df01,'OData-Version':_0xb750('0x16')},'json':!![]};return rp(_0x1aada9);})['then'](function(_0xb20aae){var _0x53f3a0=_0xb20aae[_0xb750('0x17')];var _0x87de5d=![];var _0x44d794=null;if(!_[_0xb750('0x18')](_0x40700)){if(intUtil[_0xb750('0x19')](_0x40700[_0xb750('0x1a')])){_0x5bb122[_0xb750('0x1b')]=_0x40700[_0xb750('0x1a')];for(_0x44d794=0x0;_0x44d794<_0x53f3a0[_0xb750('0x1c')];_0x44d794++){if(_0x53f3a0[_0x44d794]['internalemailaddress']===_0x40700[_0xb750('0x1a')]&&!_0x53f3a0[_0x44d794][_0xb750('0x1d')]){_0x87de5d=!![];logger[_0xb750('0x1e')]('['+[_0x384026[_0xb750('0x1f')]()]+_0xb750('0x20')+_0x53f3a0[_0x44d794][_0xb750('0x21')]+'!');_0x5bb122['userId']=_0x53f3a0[_0x44d794]['systemuserid'];}}}}if(!_0x87de5d){logger[_0xb750('0x1e')]('['+[_0x384026[_0xb750('0x1f')]()]+_0xb750('0x22'));_0x5bb122[_0xb750('0x1b')]=_0x21ba71[_0xb750('0xb')];for(_0x44d794=0x0;_0x44d794<_0x53f3a0[_0xb750('0x1c')];_0x44d794++){if(_0x53f3a0[_0x44d794][_0xb750('0x23')]===_0x21ba71[_0xb750('0xb')]){_0x5bb122[_0xb750('0x24')]=_0x53f3a0[_0x44d794][_0xb750('0x21')];}}}_0xee2c22(_0x5bb122);})['catch'](function(_0x5895e5){_0x5d16fb(_0x5895e5[_0xb750('0x25')]);});});}function createEndUser(_0x128352,_0x37f5d3,_0x27e136,_0x65e3f7,_0x5c33dd,_0x2e95fd){return new BPromise(function(_0x202c82,_0x5b9713){return getAuthToken(_0x37f5d3,_0x27e136,_0x2e95fd)[_0xb750('0xe')](function(_0x4bde71){var _0x4a9b32=_0x2e95fd['toLowerCase']()===_0xb750('0x26')?_0x5c33dd[_0xb750('0x27')]:_0x5c33dd[_0xb750('0x28')];var _0x722f66={'method':_0xb750('0x29'),'uri':_0x65e3f7+_0xb750('0x2a'),'body':{'telephone1':_0x4a9b32,'fullname':_0x4a9b32,'firstname':_0x4a9b32,'lastname':'_','mobilephone':null,'address1_telephone1':null,'ownerid@odata.bind':'/systemusers('+_0x128352[_0xb750('0x24')]+')'},'headers':{'Authorization':_0xb750('0x15')+_0x4bde71,'OData-Version':'4.0'},'json':!![],'resolveWithFullResponse':!![]};return rp(_0x722f66);})['then'](function(_0x16b923){var _0x3d3f9d=_0x16b923[_0xb750('0x2b')]['odata-entityid'];var _0x1cbfa9=_0x3d3f9d['substring'](_0x3d3f9d['lastIndexOf']('(')+0x1,_0x3d3f9d[_0xb750('0x2c')](')'));_0x128352['enduserId']=_0x1cbfa9;_0x202c82(_0x128352);})['catch'](function(_0x5bd28d){_0x5b9713(_0x5bd28d[_0xb750('0x25')]);});});}function getEndUser(_0x56021e,_0x588760,_0x207a5a,_0x20dd00,_0x539ec6,_0x14e59b){return new BPromise(function(_0x5ab6f2,_0x107485){var _0x106dda=_0x14e59b[_0xb750('0x2d')]()==='outbound'?_0x539ec6[_0xb750('0x27')]:_0x539ec6[_0xb750('0x28')];return getAuthToken(_0x588760,_0x207a5a,_0x14e59b)[_0xb750('0xe')](function(_0x24af10){var _0x42ce05={'method':_0xb750('0x13'),'uri':_0x20dd00+_0xb750('0x2e')+_0x106dda['replace']('+',_0xb750('0x2f'))+'\x27','headers':{'Authorization':_0xb750('0x15')+_0x24af10,'If-None-Match':null,'OData-Version':_0xb750('0x16')},'json':!![]};return rp(_0x42ce05);})['then'](function(_0x4155c0){var _0x12e75b=null;if(_0x4155c0){var _0x5bde60=_0x4155c0[_0xb750('0x17')];var _0x594246=![];for(_0x12e75b=0x0;_0x12e75b<_0x5bde60[_0xb750('0x1c')];_0x12e75b++){if(_0x5bde60[_0x12e75b][_0xb750('0x30')]===_0x106dda){_0x594246=!![];_0x56021e[_0xb750('0x31')]=_0x5bde60[_0x12e75b][_0xb750('0x32')];}}if(_0x594246){_0x5ab6f2(_0x56021e);}else{return createEndUser(_0x56021e,_0x588760,_0x207a5a,_0x20dd00,_0x539ec6,_0x14e59b)[_0xb750('0xe')](function(_0x21e6ae){logger[_0xb750('0x1e')]('['+[_0x14e59b['toUpperCase']()]+_0xb750('0x33'),_0x21e6ae[_0xb750('0x31')]);_0x5ab6f2(_0x21e6ae);});}}else{return createEndUser(_0x56021e,_0x588760,_0x207a5a,_0x20dd00,_0x539ec6,_0x14e59b)['then'](function(_0x560409){logger[_0xb750('0x1e')]('['+[_0x14e59b[_0xb750('0x1f')]()]+_0xb750('0x34'),_0x560409['enduserId']);_0x5ab6f2(_0x560409);});}});});}function getCustomFields(_0x3f7427,_0x56872b,_0x3b0ed7){var _0x16926f={};if(_0x3f7427[_0xb750('0x1c')]>0x0){_[_0xb750('0x35')](_0x3f7427,function(_0x42f8b9){if(_['includes']([_0xb750('0x36'),_0xb750('0x37')],_0x42f8b9[_0xb750('0x38')])&&_0x42f8b9[_0xb750('0x39')]&&!_0x42f8b9[_0xb750('0x3a')]){var _0x141332=_0x42f8b9['idField'][_0xb750('0x2d')]();var _0x4f7711=_0x141332[_0xb750('0x3b')](0x0,_0x141332[_0xb750('0x3c')]('_'));var _0x3d9900=_0x141332[_0xb750('0x3b')](_0x141332['indexOf']('_')+0x1);if(_0x4f7711===_0x3b0ed7){_0x16926f[_0x3d9900]=_0x42f8b9[_0xb750('0x3d')];}}});}return _0x16926f;}function getTicket(_0x2de5af,_0x473122,_0x331d54,_0x515b1b,_0x3fc467,_0x161ac8,_0x463219){return new BPromise(function(_0x5264e4,_0x40589b){var _0x7cafce;return getAuthToken(_0x473122,_0x331d54,_0x463219)[_0xb750('0xe')](function(_0x6b1c24){if(_0x161ac8[_0xb750('0x3e')]===_0xb750('0x3f')){_0x7cafce={'method':_0xb750('0x29'),'uri':_0x515b1b+_0xb750('0x40'),'body':Object[_0xb750('0x41')]({},{'title':intUtil[_0xb750('0x42')](_0x161ac8[_0xb750('0x43')],_0x3fc467,'\x20'),'description':intUtil[_0xb750('0x42')](_0x161ac8[_0xb750('0x44')],_0x3fc467,'\x0a'),'customerid_contact@odata.bind':_0xb750('0x45')+_0x2de5af[_0xb750('0x31')]+')','ownerid@odata.bind':_0xb750('0x46')+_0x2de5af[_0xb750('0x24')]+')','caseorigincode':'1'},getCustomFields(_0x161ac8[_0xb750('0x47')],_0x3fc467,_0x161ac8[_0xb750('0x3e')])),'headers':{'Authorization':_0xb750('0x15')+_0x6b1c24,'OData-Version':_0xb750('0x16')},'json':!![],'resolveWithFullResponse':!![]};}if(_0x161ac8['ticketType']===_0xb750('0x48')){_0x7cafce={'method':_0xb750('0x29'),'uri':_0x515b1b+'phonecalls','body':Object[_0xb750('0x41')]({},{'subject':intUtil[_0xb750('0x42')](_0x161ac8[_0xb750('0x43')],_0x3fc467,'\x20'),'phonenumber':String(_0x3fc467['calleridnum']),'description':intUtil[_0xb750('0x42')](_0x161ac8['Descriptions'],_0x3fc467,'\x0a'),'regardingobjectid_contact@odata.bind':_0xb750('0x45')+_0x2de5af[_0xb750('0x31')]+')','ownerid@odata.bind':_0xb750('0x46')+_0x2de5af[_0xb750('0x24')]+')','directioncode':_0x2de5af[_0xb750('0x49')]===_0xb750('0x4a')?![]:!![],'phonecall_activity_parties':[{'partyid_systemuser@odata.bind':'/systemusers('+_0x2de5af[_0xb750('0x24')]+')','participationtypemask':_0x2de5af[_0xb750('0x49')]===_0xb750('0x4a')?0x2:0x1},{'partyid_contact@odata.bind':_0xb750('0x45')+_0x2de5af['enduserId']+')','participationtypemask':_0x2de5af['callDirection']===_0xb750('0x4a')?0x1:0x2}]},getCustomFields(_0x161ac8[_0xb750('0x47')],_0x3fc467,_0x161ac8[_0xb750('0x3e')])),'headers':{'Authorization':_0xb750('0x15')+_0x6b1c24,'OData-Version':_0xb750('0x16')},'json':!![],'resolveWithFullResponse':!![]};}return rp(_0x7cafce);})['then'](function(_0x595dab){var _0x3dc727=_0x595dab[_0xb750('0x2b')][_0xb750('0x4b')];var _0x53ba27=_0x3dc727[_0xb750('0x3b')](_0x3dc727[_0xb750('0x2c')]('(')+0x1,_0x3dc727[_0xb750('0x2c')](')'));_0x2de5af[_0xb750('0x4c')]=_0x53ba27;_0x5264e4(_0x2de5af);})[_0xb750('0x10')](function(_0x5b7051){_0x40589b(_0x5b7051[_0xb750('0x25')]);});});}function emit(_0x3e37ea,_0x34eadd,_0x5e4dea,_0xae5903){var _0x144c37={'uri':util[_0xb750('0x4d')](_0xb750('0x4e'),_0x3e37ea,_0x5e4dea,_0xae5903)};io['to'](util[_0xb750('0x4d')]('user:%s',_0x34eadd))[_0xb750('0x4f')](_0xb750('0x50'),_0x144c37);}exports['cs']=function(_0x3504c8,_0x4d3d7c,_0x2915aa,_0x5036e1,_0x5cd198,_0x59accc,_0x553c80,_0x25b854){var _0x1838d3={};_0x59accc[_0xb750('0x51')]=intUtil[_0xb750('0x52')](_0x59accc[_0xb750('0x51')]);_0x59accc[_0xb750('0x53')]=intUtil[_0xb750('0x52')](_0x59accc[_0xb750('0x53')]);_0x1838d3[_0xb750('0x49')]=_0x25b854===_0xb750('0x4a')||_0x25b854==='unmanaged'?_0xb750('0x4a'):_0xb750('0x26');var _0x447331=util[_0xb750('0x4d')](_0xb750('0x54'),_0x59accc[_0xb750('0x51')]);var _0x212310=util[_0xb750('0x4d')](_0xb750('0x55'),_0x59accc['tenantId']);var _0x40b4d2=util[_0xb750('0x4d')](_0xb750('0x56'),_0x59accc[_0xb750('0x53')],_0x4d3d7c[_0xb750('0x57')],md5(_0x4d3d7c[_0xb750('0x57')]));if(_0x5cd198&&_0x5cd198[_0xb750('0x58')]){logger['info'](_0xb750('0x59'),_0xb750('0x5a'));_0x4d3d7c[_0xb750('0x5b')]=_0x40b4d2;}else if(_0x553c80&&_0x553c80['recordingFormat']&&_0x553c80[_0xb750('0x5c')]!==_0xb750('0x5d')){logger[_0xb750('0x1e')](_0xb750('0x5e'),_0xb750('0x5a'));_0x4d3d7c[_0xb750('0x5b')]=_0x40b4d2;}else{_0x4d3d7c[_0xb750('0x5b')]='';}return getUser(_0x1838d3,_0x59accc,_0x5036e1,_0x212310,_0x447331,_0x25b854)[_0xb750('0xe')](function(_0x1b4f1c){logger[_0xb750('0x1e')]('['+_0x25b854[_0xb750('0x1f')]()+_0xb750('0x5f'),_0x1b4f1c[_0xb750('0x24')]);logger[_0xb750('0x1e')]('['+_0x25b854[_0xb750('0x1f')]()+_0xb750('0x60'),_0x1b4f1c[_0xb750('0x1b')]);return getEndUser(_0x1b4f1c,_0x59accc,_0x212310,_0x447331,_0x4d3d7c,_0x25b854);})[_0xb750('0xe')](function(_0x527605){logger[_0xb750('0x1e')]('['+_0x25b854['toUpperCase']()+_0xb750('0x61'),_0x527605['enduserId']);logger[_0xb750('0x1e')]('['+_0x25b854[_0xb750('0x1f')]()+_0xb750('0x62'),_0x4d3d7c[_0xb750('0x28')]);return getTicket(_0x527605,_0x59accc,_0x212310,_0x447331,_0x4d3d7c,_0x2915aa,_0x25b854);})[_0xb750('0xe')](function(_0x400a86){logger['info'](util[_0xb750('0x4d')]('['+_0x25b854[_0xb750('0x1f')]()+_0xb750('0x63'),_0x2915aa[_0xb750('0x3e')],_0x400a86[_0xb750('0x4c')]));logger[_0xb750('0x1e')](util['format']('['+_0x25b854[_0xb750('0x1f')]()+_0xb750('0x64'),_0x25b854));if(_0x25b854!=='unmanaged'){logger['info']('['+_0x25b854[_0xb750('0x1f')]()+']',_0xb750('0x65'));emit(_0x59accc[_0xb750('0x51')],_0x5036e1[_0xb750('0x66')],_0x2915aa['ticketType'],_0x400a86[_0xb750('0x4c')]);}})[_0xb750('0x10')](function(_0x45d171){logger['error']('['+_0x25b854[_0xb750('0x1f')]()+']\x20Error\x20running\x20Dynamics365\x20integration',util['inspect'](_0x45d171,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x584c=['mapValues','keyBy','value','%s/api/v2/tickets','remoteUri','Ticket\x20created!','%s/api/v2/agents','length','Agent\x20found!','contact','email','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/api/v2/agents/me','then','Admin\x20account\x20selected.','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','%s/api/v2/contacts','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','POST','Basic\x20%s','apiKey','toString','base64','debug','stringify','string','picklist','type','nameField','customField','idField','push','content','variable','variableName','customVariable','Variable','toLowerCase','queue','stripTrailingSlash','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','Authorization','The\x20Enduser\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','%s/helpdesk/tickets/%d','catch','error','outbound','recordingFormat','The\x20User\x20ID\x20is:','destcalleridname','destcalleridnum','[OUTBOUND]','unmanaged','lastevent','The\x20Ticket\x20ID\x20is:','toUpperCase','request-promise','md5','ioredis','../../../../config/environment','../../../../config/logger','freshdesk','redis','defaults','localhost','application/json','emit','info','merge','format','Caller\x20-\x20%s','calleridname','calleridnum','getString','Subjects','<br>','Tags','name','Fields','custom_fields'];(function(_0x395667,_0x45593a){var _0x5cdb8f=function(_0x2be0fd){while(--_0x2be0fd){_0x395667['push'](_0x395667['shift']());}};_0x5cdb8f(++_0x45593a);}(_0x584c,0xf6));var _0xc584=function(_0x4d69d1,_0x211712){_0x4d69d1=_0x4d69d1-0x0;var _0x4950ad=_0x584c[_0x4d69d1];return _0x4950ad;};'use strict';var _=require('lodash');var rp=require(_0xc584('0x0'));var md5=require(_0xc584('0x1'));var util=require('util');var Redis=require(_0xc584('0x2'));var intUtil=require('./util');var config=require(_0xc584('0x3'));var logger=require(_0xc584('0x4'))(_0xc584('0x5'));config[_0xc584('0x6')]=_[_0xc584('0x7')](config[_0xc584('0x6')],{'host':_0xc584('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));var headers={'Content-Type':_0xc584('0x9'),'Accept':_0xc584('0x9')};function emit(_0x298c98,_0x55dd3e,_0x334d50){io['to'](_0x298c98)[_0xc584('0xa')](_0x55dd3e,_0x334d50);}function getTicket(_0x1874c6,_0x34109b,_0x1b63df,_0x7be74,_0x2b3348){logger[_0xc584('0xb')]('Creating\x20new\x20ticket...');var _0x4dfdab=_[_0xc584('0xc')]({'responder_id':_0x34109b['id'],'requester_id':_0x1b63df['id'],'name':util[_0xc584('0xd')](_0xc584('0xe'),_0x2b3348[_0xc584('0xf')]),'phone':_0x2b3348[_0xc584('0x10')],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil[_0xc584('0x11')](_0x7be74[_0xc584('0x12')],_0x2b3348,'\x20'),'description':intUtil[_0xc584('0x11')](_0x7be74['Descriptions'],_0x2b3348,_0xc584('0x13')),'tags':getTags(_0x7be74[_0xc584('0x14')],_0xc584('0x15'))},getCustomFields(_0x7be74[_0xc584('0x16')],_0x2b3348));_0x4dfdab[_0xc584('0x17')]=_[_0xc584('0x18')](_[_0xc584('0x19')](_0x4dfdab[_0xc584('0x17')],'id'),_0xc584('0x1a'));return request({'uri':util[_0xc584('0xd')](_0xc584('0x1b'),_0x1874c6[_0xc584('0x1c')]),'method':'POST','body':_0x4dfdab})['then'](function(_0x2c55b2){logger[_0xc584('0xb')](_0xc584('0x1d'));return _0x2c55b2;});}function getUser(_0x12c37,_0x1314e2){if(intUtil['validateEmail'](_0x1314e2)){return request({'uri':util[_0xc584('0xd')](_0xc584('0x1e'),_0x12c37['remoteUri']),'qs':{'email':_0x1314e2}})['then'](function(_0x3f3633){if(_0x3f3633[_0xc584('0x1f')]){logger[_0xc584('0xb')](_0xc584('0x20'));return _['find'](_0x3f3633,function(_0x292876){return _0x292876[_0xc584('0x21')][_0xc584('0x22')]===_0x1314e2;});}else{logger[_0xc584('0xb')](_0xc584('0x23'));return request({'uri':util[_0xc584('0xd')](_0xc584('0x24'),_0x12c37[_0xc584('0x1c')])})[_0xc584('0x25')](function(_0x14e1b0){logger['info'](_0xc584('0x26'));return _0x14e1b0;});}});}else{logger[_0xc584('0xb')](_0xc584('0x27'));return request({'uri':util[_0xc584('0xd')](_0xc584('0x24'),_0x12c37[_0xc584('0x1c')])})[_0xc584('0x25')](function(_0x30cd4){logger[_0xc584('0xb')](_0xc584('0x26'));return _0x30cd4;});}}function getEndUser(_0x330aa4,_0x210936,_0xbf9062){logger[_0xc584('0xb')]('Searching\x20enduser\x20with\x20phone',_0xbf9062);return request({'uri':util[_0xc584('0xd')](_0xc584('0x28'),_0x330aa4[_0xc584('0x1c')]),'qs':{'phone':_0xbf9062}})[_0xc584('0x25')](function(_0x40161a){if(_0x40161a[_0xc584('0x1f')]){logger[_0xc584('0xb')](_0xc584('0x29'));return _['find'](_0x40161a,{'phone':_0xbf9062});}else{logger[_0xc584('0xb')](_0xc584('0x2a'));return request({'uri':util[_0xc584('0xd')](_0xc584('0x28'),_0x330aa4[_0xc584('0x1c')]),'method':_0xc584('0x2b'),'body':{'name':_0x210936,'phone':_0xbf9062}})[_0xc584('0x25')](function(_0x550e53){logger[_0xc584('0xb')]('Enduser\x20created.');return _0x550e53;});}});}function getAuth(_0x52d6b0){return util[_0xc584('0xd')](_0xc584('0x2c'),new Buffer(_0x52d6b0[_0xc584('0x2d')]+':X')[_0xc584('0x2e')](_0xc584('0x2f')));}function request(_0x5ca69c){logger[_0xc584('0x30')]('[HTTP]',JSON[_0xc584('0x31')](_0x5ca69c));return rp(_[_0xc584('0x7')](_0x5ca69c,{'method':'GET','headers':headers,'json':!![]}));}function getTags(_0x5906ed,_0x418bfa){var _0x39d501=[];if(_0x5906ed&&_0x5906ed['length']>0x0){_0x39d501=_['map'](_0x5906ed,_0x418bfa);}return _0x39d501;}function getCustomFields(_0x1eeb58,_0x194f4b){var _0x62d476=[];var _0x2f61f4={'custom_fields':[]};if(_0x1eeb58[_0xc584('0x1f')]>0x0){_['forEach'](_0x1eeb58,function(_0x26612f){if(_['includes']([_0xc584('0x32'),_0xc584('0x33')],_0x26612f[_0xc584('0x34')])&&_0x26612f[_0xc584('0x35')]&&!_0x26612f[_0xc584('0x36')]){_0x2f61f4[_0x26612f['nameField']['toLowerCase']()]=_0x26612f['content'][_0xc584('0x2e')]();}else if(_['includes'](['string',_0xc584('0x33')],_0x26612f[_0xc584('0x34')])&&_0x26612f[_0xc584('0x37')]&&_0x26612f[_0xc584('0x36')]){_0x2f61f4[_0xc584('0x17')][_0xc584('0x38')]({'id':_0x26612f['idField'],'value':_0x26612f[_0xc584('0x39')][_0xc584('0x2e')]()});}else if(_0x26612f[_0xc584('0x34')]===_0xc584('0x3a')&&_0x26612f[_0xc584('0x3b')]&&_0x26612f[_0xc584('0x37')]&&_0x26612f[_0xc584('0x36')]){_0x194f4b[_0x26612f[_0xc584('0x3b')]]&&_0x2f61f4[_0xc584('0x17')]['push']({'id':_0x26612f[_0xc584('0x37')],'value':_0x194f4b[_0x26612f[_0xc584('0x3b')]][_0xc584('0x2e')]()});}else if(_0x26612f[_0xc584('0x34')]===_0xc584('0x3c')&&_0x26612f[_0xc584('0x3d')]&&_0x26612f[_0xc584('0x3d')][_0xc584('0x15')]&&_0x26612f['idField']&&_0x26612f['customField']){_0x194f4b[_0x26612f[_0xc584('0x3d')][_0xc584('0x15')][_0xc584('0x3e')]()]&&_0x2f61f4[_0xc584('0x17')][_0xc584('0x38')]({'id':_0x26612f[_0xc584('0x37')],'value':_0x194f4b[_0x26612f[_0xc584('0x3d')][_0xc584('0x15')][_0xc584('0x3e')]()][_0xc584('0x2e')]()});}});}return _0x2f61f4;}exports[_0xc584('0x3f')]=function(_0x3460d7,_0x5bfe36,_0x267aa9,_0x16d5fe,_0x16d322,_0xba509b){var _0x378df3,_0x4cf74b;_0xba509b[_0xc584('0x1c')]=intUtil[_0xc584('0x40')](_0xba509b[_0xc584('0x1c')]);_0xba509b['serverUrl']=intUtil['stripTrailingSlash'](_0xba509b['serverUrl']);if(_0x16d322&&_0x16d322[_0xc584('0x41')]){logger['info'](_0xc584('0x42'),_0xc584('0x43'));_0x5bfe36[_0xc584('0x44')]=util[_0xc584('0xd')](_0xc584('0x45'),_0xba509b[_0xc584('0x46')],_0x5bfe36['uniqueid'],md5(_0x5bfe36[_0xc584('0x47')]));}else{_0x5bfe36[_0xc584('0x44')]='';}headers[_0xc584('0x48')]=getAuth(_0xba509b);return getUser(_0xba509b,_0x16d5fe[_0xc584('0x22')])['then'](function(_0x476429){_0x378df3=_0x476429;logger['info']('The\x20User\x20ID\x20is:',_0x378df3['id']);return getEndUser(_0xba509b,_0x5bfe36['calleridname'],_0x5bfe36['calleridnum']);})['then'](function(_0x32fb42){_0x4cf74b=_0x32fb42;logger['info'](_0xc584('0x49'),_0x4cf74b['id']);return getTicket(_0xba509b,_0x378df3,_0x4cf74b,_0x267aa9,_0x5bfe36);})[_0xc584('0x25')](function(_0x21f130){if(_0x21f130&&_0x21f130['id']){logger[_0xc584('0xb')]('Ticket\x20created!');logger[_0xc584('0xb')]('The\x20Ticket\x20ID\x20is:',_0x21f130['id']);logger[_0xc584('0xb')]('[QUEUE]',_0xc584('0x4a'));emit(util[_0xc584('0xd')](_0xc584('0x4b'),_0x16d5fe[_0xc584('0x15')]),_0xc584('0x4c'),{'uri':util[_0xc584('0xd')](_0xc584('0x4d'),_0xba509b['remoteUri'],_0x21f130['id'])});}})[_0xc584('0x4e')](function(_0x4d8cb8){logger[_0xc584('0x4f')](_0xc584('0x42'),JSON[_0xc584('0x31')](_0x4d8cb8));});};exports[_0xc584('0x50')]=function(_0x445a56,_0x1d77e9,_0x38809d,_0x4d80ed,_0x51fefa,_0x50659f,_0x3c937a){var _0x152ff4,_0x5e869b;_0x50659f[_0xc584('0x1c')]=intUtil[_0xc584('0x40')](_0x50659f[_0xc584('0x1c')]);_0x50659f['serverUrl']=intUtil[_0xc584('0x40')](_0x50659f[_0xc584('0x46')]);if(_0x3c937a&&_0x3c937a[_0xc584('0x51')]&&_0x3c937a[_0xc584('0x51')]!=='none'){logger['info']('[OUTBOUND]',_0xc584('0x43'));_0x1d77e9[_0xc584('0x44')]=util['format'](_0xc584('0x45'),_0x50659f[_0xc584('0x46')],_0x1d77e9[_0xc584('0x47')],md5(_0x1d77e9[_0xc584('0x47')]));}headers[_0xc584('0x48')]=getAuth(_0x50659f);return getUser(_0x50659f,_0x4d80ed[_0xc584('0x22')])[_0xc584('0x25')](function(_0x5d28d0){_0x152ff4=_0x5d28d0;logger[_0xc584('0xb')](_0xc584('0x52'),_0x152ff4['id']);return getEndUser(_0x50659f,_0x1d77e9[_0xc584('0x53')],_0x1d77e9[_0xc584('0x54')]);})[_0xc584('0x25')](function(_0x188658){_0x5e869b=_0x188658;logger[_0xc584('0xb')](_0xc584('0x49'),_0x5e869b['id']);return getTicket(_0x50659f,_0x152ff4,_0x5e869b,_0x38809d,_0x1d77e9);})[_0xc584('0x25')](function(_0x142713){if(_0x142713&&_0x142713['id']){logger[_0xc584('0xb')](_0xc584('0x1d'));logger[_0xc584('0xb')]('The\x20Ticket\x20ID\x20is:',_0x142713['id']);logger[_0xc584('0xb')](_0xc584('0x55'),_0xc584('0x4a'));emit(util[_0xc584('0xd')](_0xc584('0x4b'),_0x4d80ed[_0xc584('0x15')]),_0xc584('0x4c'),{'uri':util[_0xc584('0xd')](_0xc584('0x4d'),_0x50659f['remoteUri'],_0x142713['id'])});}})[_0xc584('0x4e')](function(_0x297f09){logger[_0xc584('0x4f')](_0xc584('0x55'),JSON[_0xc584('0x31')](_0x297f09));});};exports[_0xc584('0x56')]=function(_0x30d633,_0x21b872,_0x52caaa,_0x3f5346,_0x18fe26,_0x2b1d7c){var _0x302c11,_0x8407cf;_0x2b1d7c['remoteUri']=intUtil['stripTrailingSlash'](_0x2b1d7c['remoteUri']);_0x2b1d7c['serverUrl']=intUtil[_0xc584('0x40')](_0x2b1d7c[_0xc584('0x46')]);if(_0x18fe26&&_0x18fe26[_0xc584('0x41')]){logger['info']('['+_0x21b872[_0xc584('0x57')]['toUpperCase']()+']',_0xc584('0x43'));_0x21b872['recordingURL']=util[_0xc584('0xd')](_0xc584('0x45'),_0x2b1d7c[_0xc584('0x46')],_0x21b872[_0xc584('0x47')],md5(_0x21b872[_0xc584('0x47')]));}else{_0x21b872['recordingURL']='';}headers[_0xc584('0x48')]=getAuth(_0x2b1d7c);return getUser(_0x2b1d7c,'')[_0xc584('0x25')](function(_0x3380bc){_0x302c11=_0x3380bc;logger[_0xc584('0xb')](_0xc584('0x52'),_0x302c11['id']);return getEndUser(_0x2b1d7c,_0x21b872[_0xc584('0xf')],_0x21b872['calleridnum']);})['then'](function(_0xbb1031){_0x8407cf=_0xbb1031;logger[_0xc584('0xb')](_0xc584('0x49'),_0x8407cf['id']);return getTicket(_0x2b1d7c,_0x302c11,_0x8407cf,_0x52caaa,_0x21b872);})[_0xc584('0x25')](function(_0x4e2b0d){if(_0x4e2b0d){logger['info'](_0xc584('0x1d'));logger[_0xc584('0xb')](_0xc584('0x58'),_0x4e2b0d['id']);}})[_0xc584('0x4e')](function(_0x143b7b){logger[_0xc584('0x4f')]('['+_0x21b872['lastevent'][_0xc584('0x59')]()+']',JSON[_0xc584('0x31')](_0x143b7b));});};
\ No newline at end of file
+var _0xf428=['catch','error','outbound','recordingFormat','none','[OUTBOUND]','destcalleridname','destcalleridnum','%s/helpdesk/tickets/%d','lastevent','toUpperCase','lodash','request-promise','ioredis','./util','../../../../config/environment','../../../../config/logger','freshdesk','redis','defaults','localhost','socket.io-emitter','application/json','emit','info','Creating\x20new\x20ticket...','merge','calleridname','calleridnum','getString','Subjects','Descriptions','<br>','Tags','name','Fields','custom_fields','mapValues','value','format','%s/api/v2/tickets','POST','then','Ticket\x20created!','validateEmail','%s/api/v2/agents','remoteUri','Agent\x20found!','find','email','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','Admin\x20account\x20selected.','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','%s/api/v2/agents/me','%s/api/v2/contacts','length','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Enduser\x20created.','Basic\x20%s','apiKey','toString','base64','stringify','GET','map','forEach','string','picklist','type','nameField','customField','toLowerCase','content','includes','idField','push','variableName','customVariable','Variable','queue','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','The\x20User\x20ID\x20is:','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url'];(function(_0x4f64c8,_0x1659c5){var _0x27e2c9=function(_0x2d1dfc){while(--_0x2d1dfc){_0x4f64c8['push'](_0x4f64c8['shift']());}};_0x27e2c9(++_0x1659c5);}(_0xf428,0xc9));var _0x8f42=function(_0x463b0e,_0x533cf2){_0x463b0e=_0x463b0e-0x0;var _0x496e20=_0xf428[_0x463b0e];return _0x496e20;};'use strict';var _=require(_0x8f42('0x0'));var rp=require(_0x8f42('0x1'));var md5=require('md5');var util=require('util');var Redis=require(_0x8f42('0x2'));var intUtil=require(_0x8f42('0x3'));var config=require(_0x8f42('0x4'));var logger=require(_0x8f42('0x5'))(_0x8f42('0x6'));config[_0x8f42('0x7')]=_[_0x8f42('0x8')](config[_0x8f42('0x7')],{'host':_0x8f42('0x9'),'port':0x18eb});var io=require(_0x8f42('0xa'))(new Redis(config[_0x8f42('0x7')]));var headers={'Content-Type':'application/json','Accept':_0x8f42('0xb')};function emit(_0xd80675,_0x16af69,_0x3b8f3a){io['to'](_0xd80675)[_0x8f42('0xc')](_0x16af69,_0x3b8f3a);}function getTicket(_0x13e447,_0x312ce7,_0x44d2cc,_0x3cec9a,_0x1997d4){logger[_0x8f42('0xd')](_0x8f42('0xe'));var _0x5ed5da=_[_0x8f42('0xf')]({'responder_id':_0x312ce7['id'],'requester_id':_0x44d2cc['id'],'name':util['format']('Caller\x20-\x20%s',_0x1997d4[_0x8f42('0x10')]),'phone':_0x1997d4[_0x8f42('0x11')],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil[_0x8f42('0x12')](_0x3cec9a[_0x8f42('0x13')],_0x1997d4,'\x20'),'description':intUtil['getString'](_0x3cec9a[_0x8f42('0x14')],_0x1997d4,_0x8f42('0x15')),'tags':getTags(_0x3cec9a[_0x8f42('0x16')],_0x8f42('0x17'))},getCustomFields(_0x3cec9a[_0x8f42('0x18')],_0x1997d4));_0x5ed5da[_0x8f42('0x19')]=_[_0x8f42('0x1a')](_['keyBy'](_0x5ed5da['custom_fields'],'id'),_0x8f42('0x1b'));return request({'uri':util[_0x8f42('0x1c')](_0x8f42('0x1d'),_0x13e447['remoteUri']),'method':_0x8f42('0x1e'),'body':_0x5ed5da})[_0x8f42('0x1f')](function(_0x453ab1){logger[_0x8f42('0xd')](_0x8f42('0x20'));return _0x453ab1;});}function getUser(_0x2e3073,_0x4e196b){if(intUtil[_0x8f42('0x21')](_0x4e196b)){return request({'uri':util[_0x8f42('0x1c')](_0x8f42('0x22'),_0x2e3073[_0x8f42('0x23')]),'qs':{'email':_0x4e196b}})[_0x8f42('0x1f')](function(_0x1d81da){if(_0x1d81da['length']){logger['info'](_0x8f42('0x24'));return _[_0x8f42('0x25')](_0x1d81da,function(_0x5c1bec){return _0x5c1bec['contact'][_0x8f42('0x26')]===_0x4e196b;});}else{logger[_0x8f42('0xd')](_0x8f42('0x27'));return request({'uri':util[_0x8f42('0x1c')]('%s/api/v2/agents/me',_0x2e3073[_0x8f42('0x23')])})['then'](function(_0x1fc32f){logger[_0x8f42('0xd')](_0x8f42('0x28'));return _0x1fc32f;});}});}else{logger['info'](_0x8f42('0x29'));return request({'uri':util[_0x8f42('0x1c')](_0x8f42('0x2a'),_0x2e3073['remoteUri'])})[_0x8f42('0x1f')](function(_0x307f1c){logger[_0x8f42('0xd')](_0x8f42('0x28'));return _0x307f1c;});}}function getEndUser(_0x4ae3fb,_0x17c81d,_0x48786d){logger[_0x8f42('0xd')]('Searching\x20enduser\x20with\x20phone',_0x48786d);return request({'uri':util[_0x8f42('0x1c')](_0x8f42('0x2b'),_0x4ae3fb[_0x8f42('0x23')]),'qs':{'phone':_0x48786d}})[_0x8f42('0x1f')](function(_0x401229){if(_0x401229[_0x8f42('0x2c')]){logger[_0x8f42('0xd')]('Enduser\x20found!');return _[_0x8f42('0x25')](_0x401229,{'phone':_0x48786d});}else{logger[_0x8f42('0xd')](_0x8f42('0x2d'));return request({'uri':util['format'](_0x8f42('0x2b'),_0x4ae3fb[_0x8f42('0x23')]),'method':_0x8f42('0x1e'),'body':{'name':_0x17c81d,'phone':_0x48786d}})[_0x8f42('0x1f')](function(_0x4ec534){logger['info'](_0x8f42('0x2e'));return _0x4ec534;});}});}function getAuth(_0x1717aa){return util[_0x8f42('0x1c')](_0x8f42('0x2f'),new Buffer(_0x1717aa[_0x8f42('0x30')]+':X')[_0x8f42('0x31')](_0x8f42('0x32')));}function request(_0x4b4048){logger['debug']('[HTTP]',JSON[_0x8f42('0x33')](_0x4b4048));return rp(_[_0x8f42('0x8')](_0x4b4048,{'method':_0x8f42('0x34'),'headers':headers,'json':!![]}));}function getTags(_0x414f1c,_0x46a9c1){var _0x5d1b81=[];if(_0x414f1c&&_0x414f1c[_0x8f42('0x2c')]>0x0){_0x5d1b81=_[_0x8f42('0x35')](_0x414f1c,_0x46a9c1);}return _0x5d1b81;}function getCustomFields(_0x1e339d,_0xf8346f){var _0x53330b=[];var _0x1d614b={'custom_fields':[]};if(_0x1e339d[_0x8f42('0x2c')]>0x0){_[_0x8f42('0x36')](_0x1e339d,function(_0x4787ee){if(_['includes']([_0x8f42('0x37'),_0x8f42('0x38')],_0x4787ee[_0x8f42('0x39')])&&_0x4787ee[_0x8f42('0x3a')]&&!_0x4787ee[_0x8f42('0x3b')]){_0x1d614b[_0x4787ee[_0x8f42('0x3a')][_0x8f42('0x3c')]()]=_0x4787ee[_0x8f42('0x3d')][_0x8f42('0x31')]();}else if(_[_0x8f42('0x3e')]([_0x8f42('0x37'),_0x8f42('0x38')],_0x4787ee[_0x8f42('0x39')])&&_0x4787ee[_0x8f42('0x3f')]&&_0x4787ee[_0x8f42('0x3b')]){_0x1d614b[_0x8f42('0x19')][_0x8f42('0x40')]({'id':_0x4787ee[_0x8f42('0x3f')],'value':_0x4787ee[_0x8f42('0x3d')][_0x8f42('0x31')]()});}else if(_0x4787ee['type']==='variable'&&_0x4787ee['variableName']&&_0x4787ee['idField']&&_0x4787ee['customField']){_0xf8346f[_0x4787ee[_0x8f42('0x41')]]&&_0x1d614b[_0x8f42('0x19')]['push']({'id':_0x4787ee[_0x8f42('0x3f')],'value':_0xf8346f[_0x4787ee[_0x8f42('0x41')]][_0x8f42('0x31')]()});}else if(_0x4787ee[_0x8f42('0x39')]===_0x8f42('0x42')&&_0x4787ee[_0x8f42('0x43')]&&_0x4787ee['Variable']['name']&&_0x4787ee[_0x8f42('0x3f')]&&_0x4787ee[_0x8f42('0x3b')]){_0xf8346f[_0x4787ee[_0x8f42('0x43')][_0x8f42('0x17')][_0x8f42('0x3c')]()]&&_0x1d614b[_0x8f42('0x19')]['push']({'id':_0x4787ee['idField'],'value':_0xf8346f[_0x4787ee['Variable']['name'][_0x8f42('0x3c')]()][_0x8f42('0x31')]()});}});}return _0x1d614b;}exports[_0x8f42('0x44')]=function(_0x3d12f7,_0xc2d62,_0x3cf8b2,_0x4e3736,_0x2819bb,_0x4c805b){var _0x2501cf,_0x581f59;_0x4c805b[_0x8f42('0x23')]=intUtil['stripTrailingSlash'](_0x4c805b[_0x8f42('0x23')]);_0x4c805b[_0x8f42('0x45')]=intUtil[_0x8f42('0x46')](_0x4c805b['serverUrl']);if(_0x2819bb&&_0x2819bb[_0x8f42('0x47')]){logger[_0x8f42('0xd')](_0x8f42('0x48'),_0x8f42('0x49'));_0xc2d62[_0x8f42('0x4a')]=util[_0x8f42('0x1c')](_0x8f42('0x4b'),_0x4c805b[_0x8f42('0x45')],_0xc2d62[_0x8f42('0x4c')],md5(_0xc2d62[_0x8f42('0x4c')]));}else{_0xc2d62[_0x8f42('0x4a')]='';}headers[_0x8f42('0x4d')]=getAuth(_0x4c805b);return getUser(_0x4c805b,_0x4e3736[_0x8f42('0x26')])['then'](function(_0xdc67b7){_0x2501cf=_0xdc67b7;logger[_0x8f42('0xd')](_0x8f42('0x4e'),_0x2501cf['id']);return getEndUser(_0x4c805b,_0xc2d62[_0x8f42('0x10')],_0xc2d62['calleridnum']);})['then'](function(_0x270236){_0x581f59=_0x270236;logger[_0x8f42('0xd')](_0x8f42('0x4f'),_0x581f59['id']);return getTicket(_0x4c805b,_0x2501cf,_0x581f59,_0x3cf8b2,_0xc2d62);})['then'](function(_0x8bd225){if(_0x8bd225&&_0x8bd225['id']){logger[_0x8f42('0xd')](_0x8f42('0x20'));logger['info'](_0x8f42('0x50'),_0x8bd225['id']);logger[_0x8f42('0xd')](_0x8f42('0x48'),_0x8f42('0x51'));emit(util[_0x8f42('0x1c')](_0x8f42('0x52'),_0x4e3736[_0x8f42('0x17')]),_0x8f42('0x53'),{'uri':util[_0x8f42('0x1c')]('%s/helpdesk/tickets/%d',_0x4c805b[_0x8f42('0x23')],_0x8bd225['id'])});}})[_0x8f42('0x54')](function(_0x399a46){logger[_0x8f42('0x55')](_0x8f42('0x48'),JSON['stringify'](_0x399a46));});};exports[_0x8f42('0x56')]=function(_0x14cf30,_0x481195,_0x3cb73d,_0x37f829,_0x404d11,_0x26a1ef,_0x16d117){var _0x531fa5,_0x1622a1;_0x26a1ef[_0x8f42('0x23')]=intUtil[_0x8f42('0x46')](_0x26a1ef[_0x8f42('0x23')]);_0x26a1ef[_0x8f42('0x45')]=intUtil[_0x8f42('0x46')](_0x26a1ef['serverUrl']);if(_0x16d117&&_0x16d117['recordingFormat']&&_0x16d117[_0x8f42('0x57')]!==_0x8f42('0x58')){logger[_0x8f42('0xd')](_0x8f42('0x59'),_0x8f42('0x49'));_0x481195['recordingURL']=util[_0x8f42('0x1c')](_0x8f42('0x4b'),_0x26a1ef[_0x8f42('0x45')],_0x481195[_0x8f42('0x4c')],md5(_0x481195[_0x8f42('0x4c')]));}headers['Authorization']=getAuth(_0x26a1ef);return getUser(_0x26a1ef,_0x37f829[_0x8f42('0x26')])['then'](function(_0xa09688){_0x531fa5=_0xa09688;logger[_0x8f42('0xd')]('The\x20User\x20ID\x20is:',_0x531fa5['id']);return getEndUser(_0x26a1ef,_0x481195[_0x8f42('0x5a')],_0x481195[_0x8f42('0x5b')]);})['then'](function(_0x1e8fee){_0x1622a1=_0x1e8fee;logger['info'](_0x8f42('0x4f'),_0x1622a1['id']);return getTicket(_0x26a1ef,_0x531fa5,_0x1622a1,_0x3cb73d,_0x481195);})[_0x8f42('0x1f')](function(_0x2250ff){if(_0x2250ff&&_0x2250ff['id']){logger[_0x8f42('0xd')](_0x8f42('0x20'));logger[_0x8f42('0xd')](_0x8f42('0x50'),_0x2250ff['id']);logger[_0x8f42('0xd')](_0x8f42('0x59'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x8f42('0x1c')](_0x8f42('0x52'),_0x37f829[_0x8f42('0x17')]),_0x8f42('0x53'),{'uri':util['format'](_0x8f42('0x5c'),_0x26a1ef[_0x8f42('0x23')],_0x2250ff['id'])});}})[_0x8f42('0x54')](function(_0x18e3c3){logger[_0x8f42('0x55')](_0x8f42('0x59'),JSON[_0x8f42('0x33')](_0x18e3c3));});};exports['unmanaged']=function(_0x2010ed,_0x160d0f,_0x2cabad,_0x1a00c7,_0x351f0c,_0x38ab68){var _0x1aa202,_0x2497ae;_0x38ab68['remoteUri']=intUtil[_0x8f42('0x46')](_0x38ab68[_0x8f42('0x23')]);_0x38ab68['serverUrl']=intUtil[_0x8f42('0x46')](_0x38ab68['serverUrl']);if(_0x351f0c&&_0x351f0c['monitor_format']){logger[_0x8f42('0xd')]('['+_0x160d0f[_0x8f42('0x5d')][_0x8f42('0x5e')]()+']','Recording\x20is\x20enabled!');_0x160d0f['recordingURL']=util[_0x8f42('0x1c')](_0x8f42('0x4b'),_0x38ab68[_0x8f42('0x45')],_0x160d0f[_0x8f42('0x4c')],md5(_0x160d0f[_0x8f42('0x4c')]));}else{_0x160d0f[_0x8f42('0x4a')]='';}headers[_0x8f42('0x4d')]=getAuth(_0x38ab68);return getUser(_0x38ab68,'')[_0x8f42('0x1f')](function(_0x177f53){_0x1aa202=_0x177f53;logger[_0x8f42('0xd')]('The\x20User\x20ID\x20is:',_0x1aa202['id']);return getEndUser(_0x38ab68,_0x160d0f[_0x8f42('0x10')],_0x160d0f['calleridnum']);})[_0x8f42('0x1f')](function(_0x507bed){_0x2497ae=_0x507bed;logger[_0x8f42('0xd')](_0x8f42('0x4f'),_0x2497ae['id']);return getTicket(_0x38ab68,_0x1aa202,_0x2497ae,_0x2cabad,_0x160d0f);})[_0x8f42('0x1f')](function(_0xed5b22){if(_0xed5b22){logger[_0x8f42('0xd')](_0x8f42('0x20'));logger[_0x8f42('0xd')]('The\x20Ticket\x20ID\x20is:',_0xed5b22['id']);}})[_0x8f42('0x54')](function(_0x2998d1){logger[_0x8f42('0x55')]('['+_0x160d0f[_0x8f42('0x5d')][_0x8f42('0x5e')]()+']',JSON[_0x8f42('0x33')](_0x2998d1));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x19ca=['emit','apiKey','remoteUri','stripTrailingSlash','serverUrl','username','toLowerCase','destcalleridnum','calleridnum','callDirection','queue','outbound','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','util','moment','bluebird','ioredis','./util','../../../../config/environment','freshsales','redis','defaults','localhost','GET','/api/selector/owners','headers','info','then','users','adminEmail','adminId','Requested\x20Resource\x20not\x20Found','catch','toUpperCase','message','Getting\x20user\x20list','agentEmail','userEmail','length','email','userId','User\x20found:','Admin\x20selected','error','/api/lookup?q=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','mobile_number','contactNumber','endUserId','work_number','Contact\x20found\x20work_number:','POST','/api/contacts','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','Creating\x20new\x20task','getString','Subjects','YYYY-MM-DDTHH:mm:ss','add','task','Task\x20created:','ticketId','/contacts/'];(function(_0x1d9bb0,_0x2509c1){var _0x2e020f=function(_0x3ad610){while(--_0x3ad610){_0x1d9bb0['push'](_0x1d9bb0['shift']());}};_0x2e020f(++_0x2509c1);}(_0x19ca,0xb5));var _0xa19c=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x19ca[_0x502c7d];return _0x30b7ed;};'use strict';var _=require(_0xa19c('0x0'));var rp=require(_0xa19c('0x1'));var md5=require('md5');var util=require(_0xa19c('0x2'));var moment=require(_0xa19c('0x3'));var Promise=require(_0xa19c('0x4'));var Redis=require(_0xa19c('0x5'));var intUtil=require(_0xa19c('0x6'));var config=require(_0xa19c('0x7'));var logger=require('../../../../config/logger')(_0xa19c('0x8'));config[_0xa19c('0x9')]=_[_0xa19c('0xa')](config[_0xa19c('0x9')],{'host':_0xa19c('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xa19c('0x9')]));function getAdminId(_0x2c31,_0x331a4b,_0x2bdac2,_0x4bec59){return new Promise(function(_0x3c0d78,_0x10ad03){var _0x4495ba=![];var _0x2cc0ac={'method':_0xa19c('0xc'),'uri':_0x4bec59+_0xa19c('0xd'),'json':!![]};_0x2cc0ac[_0xa19c('0xe')]=_0x2bdac2;logger[_0xa19c('0xf')]('Getting\x20admin\x20information');return rp(_0x2cc0ac)[_0xa19c('0x10')](function(_0x3e0ad0){if(_0x3e0ad0){var _0x41b752=_0x3e0ad0[_0xa19c('0x11')];var _0x10f033=null;for(_0x10f033=0x0;_0x10f033<_0x41b752['length'];_0x10f033++){if(_0x41b752[_0x10f033]['email']===_0x2c31[_0xa19c('0x12')]){_0x2c31[_0xa19c('0x13')]=_0x41b752[_0x10f033]['id'];_0x4495ba=!![];}}if(_0x4495ba){logger['info']('Admin\x20found:',_0x2c31[_0xa19c('0x13')]);_0x3c0d78(_0x2c31);}else{_0x10ad03({'statusCode':0x194,'message':_0xa19c('0x14')});}}else{_0x10ad03({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xa19c('0x15')](function(_0x3da839){logger['error']('['+[_0x331a4b[_0xa19c('0x16')]()]+']',_0x3da839[_0xa19c('0x17')]);_0x10ad03(_0x3da839);});});}function getUser(_0x29b0ad,_0x11aa3c,_0x1b1bd7){return function(_0x4dc1ad){return new Promise(function(_0x245b57,_0x115e7a){var _0xc3a778={'method':_0xa19c('0xc'),'uri':_0x1b1bd7+'/api/selector/owners','json':!![]};_0xc3a778[_0xa19c('0xe')]=_0x11aa3c;logger[_0xa19c('0xf')](_0xa19c('0x18'));return rp(_0xc3a778)[_0xa19c('0x10')](function(_0x23d47f){if(_0x23d47f){var _0x3ff06f=_0x23d47f['users'];var _0x461229=![];var _0x11ba9c=null;if(_0x4dc1ad[_0xa19c('0x19')]!==null){logger['info']('Getting\x20user\x20with\x20email',_0x4dc1ad[_0xa19c('0x19')]);_0x4dc1ad[_0xa19c('0x1a')]=_0x4dc1ad[_0xa19c('0x19')];for(_0x11ba9c=0x0;_0x11ba9c<_0x3ff06f[_0xa19c('0x1b')];_0x11ba9c++){if(_0x3ff06f[_0x11ba9c][_0xa19c('0x1c')]===_0x4dc1ad[_0xa19c('0x19')]){_0x461229=!![];_0x4dc1ad[_0xa19c('0x1d')]=_0x3ff06f[_0x11ba9c]['id'];logger[_0xa19c('0xf')](_0xa19c('0x1e'),_0x4dc1ad[_0xa19c('0x1d')]);}}}if(!_0x461229){logger[_0xa19c('0xf')](_0xa19c('0x1f'));_0x4dc1ad[_0xa19c('0x1a')]=_0x4dc1ad[_0xa19c('0x12')];_0x4dc1ad[_0xa19c('0x1d')]=_0x4dc1ad[_0xa19c('0x13')];_0x461229=!![];}if(_0x461229){_0x245b57(_0x4dc1ad);}else{_0x115e7a({'statusCode':0x194,'message':_0xa19c('0x14')});}}else{_0x115e7a({'statusCode':0x194,'message':_0xa19c('0x14')});}})[_0xa19c('0x15')](function(_0x237fde){logger[_0xa19c('0x20')]('['+[_0x29b0ad[_0xa19c('0x16')]()]+']',_0x237fde[_0xa19c('0x17')]);_0x115e7a(_0x237fde);});});};}function searchContact(_0x2e924d,_0x1ecf12,_0x268eaf,_0x5f14dd){return new Promise(function(_0x4ffe0a,_0x377e1c){var _0x4944be={'method':_0xa19c('0xc'),'headers':_0x1ecf12,'uri':_0x2e924d+_0xa19c('0x21')+_0x5f14dd+'&f='+_0x268eaf+_0xa19c('0x22'),'json':!![]};rp(_0x4944be)[_0xa19c('0x10')](function(_0x4e56cc){var _0x56674a=_[_0xa19c('0x23')](_0x4e56cc[_0xa19c('0x24')]['contacts'],[_0x268eaf,_0x5f14dd]);_0x4ffe0a(_0x56674a);})[_0xa19c('0x15')](function(_0x15cbfe){_0x377e1c(_0x15cbfe);});});}function getEndUser(_0x339556,_0x203b4c,_0x1e13a3){return function(_0x332678){return new Promise(function(_0x4f35d4,_0x138447){logger[_0xa19c('0xf')](util[_0xa19c('0x25')](_0xa19c('0x26'),_0x332678['contactNumber']));searchContact(_0x1e13a3,_0x203b4c,_0xa19c('0x27'),_0x332678[_0xa19c('0x28')])[_0xa19c('0x10')](function(_0x33190a){if(_0x33190a){_0x332678[_0xa19c('0x29')]=_0x33190a['id'];logger[_0xa19c('0xf')]('Contact\x20found\x20mobile_number:',_0x332678['endUserId']);return _0x4f35d4(_0x332678);}searchContact(_0x1e13a3,_0x203b4c,_0xa19c('0x2a'),_0x332678[_0xa19c('0x28')])[_0xa19c('0x10')](function(_0x416e2f){if(_0x416e2f){_0x332678[_0xa19c('0x29')]=_0x416e2f['id'];logger[_0xa19c('0xf')](_0xa19c('0x2b'),_0x332678[_0xa19c('0x29')]);return _0x4f35d4(_0x332678);}createEndUser(_0x332678,_0x339556,_0x203b4c,_0x1e13a3)[_0xa19c('0x10')](function(_0x40851c){logger[_0xa19c('0xf')]('Contact\x20created:',_0x40851c[_0xa19c('0x29')]);return _0x4f35d4(_0x40851c);});});})['catch'](function(_0x58dab8){_0x138447(_0x58dab8);});});};}function createEndUser(_0x21d36e,_0x9f7d57,_0x47bb09,_0x13131e){return new Promise(function(_0x3c2c4e,_0x16cbf7){var _0x416039=moment();var _0x5230db={'method':_0xa19c('0x2c'),'uri':_0x13131e+_0xa19c('0x2d'),'body':{'contact':{'last_name':_0x21d36e['contactNumber'],'work_number':_0x21d36e[_0xa19c('0x28')],'mobile_number':_0x21d36e[_0xa19c('0x28')],'owner_id':_0x21d36e[_0xa19c('0x1d')],'created_at':_0x416039[_0xa19c('0x25')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x5230db['headers']=_0x47bb09;logger[_0xa19c('0xf')](_0xa19c('0x2e'));return rp(_0x5230db)['then'](function(_0x5f5766){_0x21d36e[_0xa19c('0x29')]=_0x5f5766['contact']['id'];_0x3c2c4e(_0x21d36e);})[_0xa19c('0x15')](function(_0x2c0133){logger['error']('['+[_0x9f7d57[_0xa19c('0x16')]()]+']',_0x2c0133['message']);_0x16cbf7(_0x2c0133[_0xa19c('0x17')]);});});}function getTicket(_0x239df2,_0x55af4f,_0x376128,_0x5be483,_0x11fb5f){return function(_0x4f851f){logger[_0xa19c('0xf')](_0xa19c('0x2f'));return new Promise(function(_0x82d0a1,_0x3c2ee0){var _0x52cac2=moment();var _0x2c1eb1={'method':'POST','uri':_0x376128+'/api/tasks','body':{'title':intUtil[_0xa19c('0x30')](_0x5be483[_0xa19c('0x31')],_0x11fb5f,'\x20'),'description':intUtil['getString'](_0x5be483['Descriptions'],_0x11fb5f,'\x0a'),'owner_id':_0x4f851f['userId'],'creater_id':_0x4f851f[_0xa19c('0x13')],'targetable_id':_0x4f851f[_0xa19c('0x29')],'targetable_type':'Contact','created_at':_0x52cac2[_0xa19c('0x25')](_0xa19c('0x32')),'due_date':_0x52cac2[_0xa19c('0x33')](0x1e,'m')[_0xa19c('0x25')](_0xa19c('0x32'))},'json':!![]};_0x2c1eb1[_0xa19c('0xe')]=_0x55af4f;return rp(_0x2c1eb1)[_0xa19c('0x10')](function(_0x169fba){_0x4f851f['ticketId']=_0x169fba[_0xa19c('0x34')]['id'];logger[_0xa19c('0xf')](_0xa19c('0x35'),_0x4f851f[_0xa19c('0x36')]);_0x82d0a1(_0x4f851f);})['catch'](function(_0x38778f){logger['error']('['+[_0x239df2['toUpperCase']()]+']',_0x38778f[_0xa19c('0x17')]);_0x3c2ee0(_0x38778f[_0xa19c('0x17')]);});});};}function emit(_0x344bde,_0x42fdb9,_0x2ae74c){var _0x3183cd={'uri':_0x344bde+_0xa19c('0x37')+_0x2ae74c};io['to'](util['format']('user:%s',_0x42fdb9))[_0xa19c('0x38')]('trigger:browser:url',_0x3183cd);}exports['cs']=function(_0x2c2dd5,_0x3af575,_0x1afc5e,_0x7b7fa5,_0x39fdb1,_0x43c521,_0x5ad86d,_0x51952e){var _0x5a4638={};var _0xa4ecf0={'Authorization':'Token\x20token='+_0x43c521[_0xa19c('0x39')]};_0x43c521[_0xa19c('0x3a')]=intUtil[_0xa19c('0x3b')](_0x43c521[_0xa19c('0x3a')]);_0x43c521[_0xa19c('0x3c')]=intUtil[_0xa19c('0x3b')](_0x43c521['serverUrl']);var _0x3de290=_0x43c521[_0xa19c('0x3a')];_0x5a4638[_0xa19c('0x12')]=_0x43c521[_0xa19c('0x3d')];_0x5a4638[_0xa19c('0x28')]=_0x51952e[_0xa19c('0x3e')]()==='outbound'?_0x3af575[_0xa19c('0x3f')]:_0x3af575[_0xa19c('0x40')];_0x5a4638[_0xa19c('0x41')]=_0x51952e===_0xa19c('0x42')||_0x51952e==='unmanaged'?_0xa19c('0x42'):_0xa19c('0x43');if(_0x7b7fa5){_0x5a4638['agentEmail']=_0x7b7fa5[_0xa19c('0x1c')];}var _0x5efc6b=util['format'](_0xa19c('0x44'),_0x43c521[_0xa19c('0x3c')],_0x3af575['uniqueid'],md5(_0x3af575['uniqueid']));if(_0x39fdb1&&_0x39fdb1['monitor_format']){logger['info'](_0xa19c('0x45'),_0xa19c('0x46'));_0x3af575[_0xa19c('0x47')]=_0x5efc6b;}else if(_0x5ad86d&&_0x5ad86d[_0xa19c('0x48')]&&_0x5ad86d['recordingFormat']!==_0xa19c('0x49')){logger[_0xa19c('0xf')]('[OUTBOUND]',_0xa19c('0x46'));_0x3af575[_0xa19c('0x47')]=_0x5efc6b;}else{_0x3af575['recordingURL']='';}return getAdminId(_0x5a4638,_0x51952e,_0xa4ecf0,_0x3de290)['then'](getUser(_0x51952e,_0xa4ecf0,_0x3de290))[_0xa19c('0x10')](getEndUser(_0x51952e,_0xa4ecf0,_0x3de290))[_0xa19c('0x10')](getTicket(_0x51952e,_0xa4ecf0,_0x3de290,_0x1afc5e,_0x3af575))[_0xa19c('0x10')](function(_0x287486){logger['info'](util[_0xa19c('0x25')](_0xa19c('0x4a'),_0x287486[_0xa19c('0x36')]));if(_0x51952e!=='unmanaged'){logger[_0xa19c('0xf')]('['+[_0x51952e['toUpperCase']()]+']',_0xa19c('0x4b'));emit(_0x3de290,_0x7b7fa5[_0xa19c('0x4c')],_0x287486[_0xa19c('0x29')]);}})[_0xa19c('0x15')](function(_0x1d9a98){logger[_0xa19c('0x20')]('['+[_0x51952e[_0xa19c('0x16')]()]+_0xa19c('0x4d'),util[_0xa19c('0x4e')](_0x1d9a98,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x1a54=['agentEmail','userEmail','User\x20found:','userId','Admin\x20selected','/api/lookup?q=','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20created:','POST','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','Creating\x20new\x20task','/api/tasks','Subjects','Descriptions','Contact','add','task','/contacts/','emit','Token\x20token=','apiKey','remoteUri','stripTrailingSlash','username','toLowerCase','outbound','calleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','recordingURL','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','The\x20ticket\x20ID\x20is:\x20%s','ticketId','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','md5','util','moment','bluebird','ioredis','../../../../config/environment','../../../../config/logger','freshsales','redis','localhost','socket.io-emitter','/api/selector/owners','info','Getting\x20admin\x20information','then','users','length','email','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','headers'];(function(_0x264122,_0x42467e){var _0x3b67fc=function(_0xcfb7c3){while(--_0xcfb7c3){_0x264122['push'](_0x264122['shift']());}};_0x3b67fc(++_0x42467e);}(_0x1a54,0x83));var _0x41a5=function(_0x2578a2,_0x3133cf){_0x2578a2=_0x2578a2-0x0;var _0x19d291=_0x1a54[_0x2578a2];return _0x19d291;};'use strict';var _=require(_0x41a5('0x0'));var rp=require(_0x41a5('0x1'));var md5=require(_0x41a5('0x2'));var util=require(_0x41a5('0x3'));var moment=require(_0x41a5('0x4'));var Promise=require(_0x41a5('0x5'));var Redis=require(_0x41a5('0x6'));var intUtil=require('./util');var config=require(_0x41a5('0x7'));var logger=require(_0x41a5('0x8'))(_0x41a5('0x9'));config[_0x41a5('0xa')]=_['defaults'](config[_0x41a5('0xa')],{'host':_0x41a5('0xb'),'port':0x18eb});var io=require(_0x41a5('0xc'))(new Redis(config[_0x41a5('0xa')]));function getAdminId(_0x59e73a,_0x27cca0,_0xd296bd,_0xf1c813){return new Promise(function(_0x2f0c83,_0x196c14){var _0x50e6fc=![];var _0x96f1d1={'method':'GET','uri':_0xf1c813+_0x41a5('0xd'),'json':!![]};_0x96f1d1['headers']=_0xd296bd;logger[_0x41a5('0xe')](_0x41a5('0xf'));return rp(_0x96f1d1)[_0x41a5('0x10')](function(_0xa76280){if(_0xa76280){var _0x7dbf03=_0xa76280[_0x41a5('0x11')];var _0x3c681d=null;for(_0x3c681d=0x0;_0x3c681d<_0x7dbf03[_0x41a5('0x12')];_0x3c681d++){if(_0x7dbf03[_0x3c681d][_0x41a5('0x13')]===_0x59e73a[_0x41a5('0x14')]){_0x59e73a[_0x41a5('0x15')]=_0x7dbf03[_0x3c681d]['id'];_0x50e6fc=!![];}}if(_0x50e6fc){logger['info'](_0x41a5('0x16'),_0x59e73a[_0x41a5('0x15')]);_0x2f0c83(_0x59e73a);}else{_0x196c14({'statusCode':0x194,'message':_0x41a5('0x17')});}}else{_0x196c14({'statusCode':0x194,'message':_0x41a5('0x17')});}})[_0x41a5('0x18')](function(_0xeb2fe0){logger[_0x41a5('0x19')]('['+[_0x27cca0[_0x41a5('0x1a')]()]+']',_0xeb2fe0[_0x41a5('0x1b')]);_0x196c14(_0xeb2fe0);});});}function getUser(_0x20fcd4,_0x302c40,_0x23a3dd){return function(_0x1c9608){return new Promise(function(_0x494dcc,_0x54dd7d){var _0x2bb872={'method':'GET','uri':_0x23a3dd+_0x41a5('0xd'),'json':!![]};_0x2bb872[_0x41a5('0x1c')]=_0x302c40;logger[_0x41a5('0xe')]('Getting\x20user\x20list');return rp(_0x2bb872)[_0x41a5('0x10')](function(_0x4828c0){if(_0x4828c0){var _0x297adf=_0x4828c0[_0x41a5('0x11')];var _0x3d4927=![];var _0x1ae91b=null;if(_0x1c9608[_0x41a5('0x1d')]!==null){logger['info']('Getting\x20user\x20with\x20email',_0x1c9608[_0x41a5('0x1d')]);_0x1c9608[_0x41a5('0x1e')]=_0x1c9608[_0x41a5('0x1d')];for(_0x1ae91b=0x0;_0x1ae91b<_0x297adf[_0x41a5('0x12')];_0x1ae91b++){if(_0x297adf[_0x1ae91b][_0x41a5('0x13')]===_0x1c9608['agentEmail']){_0x3d4927=!![];_0x1c9608['userId']=_0x297adf[_0x1ae91b]['id'];logger[_0x41a5('0xe')](_0x41a5('0x1f'),_0x1c9608[_0x41a5('0x20')]);}}}if(!_0x3d4927){logger['info'](_0x41a5('0x21'));_0x1c9608[_0x41a5('0x1e')]=_0x1c9608[_0x41a5('0x14')];_0x1c9608['userId']=_0x1c9608['adminId'];_0x3d4927=!![];}if(_0x3d4927){_0x494dcc(_0x1c9608);}else{_0x54dd7d({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x54dd7d({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0x41a5('0x18')](function(_0x5749db){logger[_0x41a5('0x19')]('['+[_0x20fcd4[_0x41a5('0x1a')]()]+']',_0x5749db[_0x41a5('0x1b')]);_0x54dd7d(_0x5749db);});});};}function searchContact(_0x42027b,_0xdb4bc6,_0x1cd09c,_0x21c96e){return new Promise(function(_0x17a907,_0x1f0975){var _0x184b3c={'method':'GET','headers':_0xdb4bc6,'uri':_0x42027b+_0x41a5('0x22')+_0x21c96e+'&f='+_0x1cd09c+'&entities=contact','json':!![]};rp(_0x184b3c)['then'](function(_0x177404){var _0x5533a5=_[_0x41a5('0x23')](_0x177404[_0x41a5('0x24')][_0x41a5('0x24')],[_0x1cd09c,_0x21c96e]);_0x17a907(_0x5533a5);})[_0x41a5('0x18')](function(_0x1093af){_0x1f0975(_0x1093af);});});}function getEndUser(_0x4a3775,_0x3e04d2,_0x37030b){return function(_0x10cac2){return new Promise(function(_0x1fa9b7,_0x35c4c9){logger['info'](util[_0x41a5('0x25')](_0x41a5('0x26'),_0x10cac2[_0x41a5('0x27')]));searchContact(_0x37030b,_0x3e04d2,'mobile_number',_0x10cac2[_0x41a5('0x27')])[_0x41a5('0x10')](function(_0xeba75){if(_0xeba75){_0x10cac2[_0x41a5('0x28')]=_0xeba75['id'];logger['info'](_0x41a5('0x29'),_0x10cac2['endUserId']);return _0x1fa9b7(_0x10cac2);}searchContact(_0x37030b,_0x3e04d2,_0x41a5('0x2a'),_0x10cac2[_0x41a5('0x27')])[_0x41a5('0x10')](function(_0x28757a){if(_0x28757a){_0x10cac2[_0x41a5('0x28')]=_0x28757a['id'];logger[_0x41a5('0xe')]('Contact\x20found\x20work_number:',_0x10cac2['endUserId']);return _0x1fa9b7(_0x10cac2);}createEndUser(_0x10cac2,_0x4a3775,_0x3e04d2,_0x37030b)[_0x41a5('0x10')](function(_0x41d05c){logger[_0x41a5('0xe')](_0x41a5('0x2b'),_0x41d05c[_0x41a5('0x28')]);return _0x1fa9b7(_0x41d05c);});});})[_0x41a5('0x18')](function(_0x3864dd){_0x35c4c9(_0x3864dd);});});};}function createEndUser(_0x32da98,_0x5e4ea8,_0x195aba,_0x5483df){return new Promise(function(_0x5dcb98,_0xeb4d87){var _0xb9b17d=moment();var _0x2635c6={'method':_0x41a5('0x2c'),'uri':_0x5483df+'/api/contacts','body':{'contact':{'last_name':_0x32da98[_0x41a5('0x27')],'work_number':_0x32da98[_0x41a5('0x27')],'mobile_number':_0x32da98[_0x41a5('0x27')],'owner_id':_0x32da98[_0x41a5('0x20')],'created_at':_0xb9b17d['format'](_0x41a5('0x2d'))}},'json':!![]};_0x2635c6[_0x41a5('0x1c')]=_0x195aba;logger['info'](_0x41a5('0x2e'));return rp(_0x2635c6)['then'](function(_0x53fae2){_0x32da98['endUserId']=_0x53fae2['contact']['id'];_0x5dcb98(_0x32da98);})[_0x41a5('0x18')](function(_0x1f71e7){logger['error']('['+[_0x5e4ea8['toUpperCase']()]+']',_0x1f71e7[_0x41a5('0x1b')]);_0xeb4d87(_0x1f71e7[_0x41a5('0x1b')]);});});}function getTicket(_0x4fc5ac,_0x2a4a39,_0x4282a0,_0x25beb2,_0x14624c){return function(_0x2aa433){logger[_0x41a5('0xe')](_0x41a5('0x2f'));return new Promise(function(_0x4b372e,_0x455b06){var _0x149afc=moment();var _0x4dcac0={'method':'POST','uri':_0x4282a0+_0x41a5('0x30'),'body':{'title':intUtil['getString'](_0x25beb2[_0x41a5('0x31')],_0x14624c,'\x20'),'description':intUtil['getString'](_0x25beb2[_0x41a5('0x32')],_0x14624c,'\x0a'),'owner_id':_0x2aa433[_0x41a5('0x20')],'creater_id':_0x2aa433[_0x41a5('0x15')],'targetable_id':_0x2aa433[_0x41a5('0x28')],'targetable_type':_0x41a5('0x33'),'created_at':_0x149afc['format'](_0x41a5('0x2d')),'due_date':_0x149afc[_0x41a5('0x34')](0x1e,'m')[_0x41a5('0x25')](_0x41a5('0x2d'))},'json':!![]};_0x4dcac0['headers']=_0x2a4a39;return rp(_0x4dcac0)[_0x41a5('0x10')](function(_0x578460){_0x2aa433['ticketId']=_0x578460[_0x41a5('0x35')]['id'];logger[_0x41a5('0xe')]('Task\x20created:',_0x2aa433['ticketId']);_0x4b372e(_0x2aa433);})[_0x41a5('0x18')](function(_0x3f7d51){logger['error']('['+[_0x4fc5ac[_0x41a5('0x1a')]()]+']',_0x3f7d51['message']);_0x455b06(_0x3f7d51['message']);});});};}function emit(_0x36508d,_0x23ec8c,_0x1e7ff7){var _0x5017af={'uri':_0x36508d+_0x41a5('0x36')+_0x1e7ff7};io['to'](util[_0x41a5('0x25')]('user:%s',_0x23ec8c))[_0x41a5('0x37')]('trigger:browser:url',_0x5017af);}exports['cs']=function(_0x593e3f,_0x8801dd,_0x183087,_0x5f5719,_0x14b25e,_0x33a362,_0x25d29a,_0x389acd){var _0x141ece={};var _0x3a93a3={'Authorization':_0x41a5('0x38')+_0x33a362[_0x41a5('0x39')]};_0x33a362[_0x41a5('0x3a')]=intUtil[_0x41a5('0x3b')](_0x33a362[_0x41a5('0x3a')]);_0x33a362['serverUrl']=intUtil[_0x41a5('0x3b')](_0x33a362['serverUrl']);var _0x3a53fa=_0x33a362[_0x41a5('0x3a')];_0x141ece[_0x41a5('0x14')]=_0x33a362[_0x41a5('0x3c')];_0x141ece['contactNumber']=_0x389acd[_0x41a5('0x3d')]()===_0x41a5('0x3e')?_0x8801dd['destcalleridnum']:_0x8801dd[_0x41a5('0x3f')];_0x141ece[_0x41a5('0x40')]=_0x389acd===_0x41a5('0x41')||_0x389acd===_0x41a5('0x42')?_0x41a5('0x41'):'outbound';if(_0x5f5719){_0x141ece[_0x41a5('0x1d')]=_0x5f5719[_0x41a5('0x13')];}var _0x1966b=util[_0x41a5('0x25')](_0x41a5('0x43'),_0x33a362['serverUrl'],_0x8801dd[_0x41a5('0x44')],md5(_0x8801dd[_0x41a5('0x44')]));if(_0x14b25e&&_0x14b25e['monitor_format']){logger[_0x41a5('0xe')](_0x41a5('0x45'),'Recording\x20is\x20enabled!');_0x8801dd[_0x41a5('0x46')]=_0x1966b;}else if(_0x25d29a&&_0x25d29a[_0x41a5('0x47')]&&_0x25d29a[_0x41a5('0x47')]!==_0x41a5('0x48')){logger[_0x41a5('0xe')](_0x41a5('0x49'),_0x41a5('0x4a'));_0x8801dd[_0x41a5('0x46')]=_0x1966b;}else{_0x8801dd[_0x41a5('0x46')]='';}return getAdminId(_0x141ece,_0x389acd,_0x3a93a3,_0x3a53fa)[_0x41a5('0x10')](getUser(_0x389acd,_0x3a93a3,_0x3a53fa))[_0x41a5('0x10')](getEndUser(_0x389acd,_0x3a93a3,_0x3a53fa))[_0x41a5('0x10')](getTicket(_0x389acd,_0x3a93a3,_0x3a53fa,_0x183087,_0x8801dd))[_0x41a5('0x10')](function(_0x233b08){logger[_0x41a5('0xe')](util[_0x41a5('0x25')](_0x41a5('0x4b'),_0x233b08[_0x41a5('0x4c')]));if(_0x389acd!==_0x41a5('0x42')){logger[_0x41a5('0xe')]('['+[_0x389acd['toUpperCase']()]+']','Displaying\x20task\x20in\x20a\x20new\x20tab...');emit(_0x3a53fa,_0x5f5719[_0x41a5('0x4d')],_0x233b08[_0x41a5('0x28')]);}})['catch'](function(_0x25295a){logger['error']('['+[_0x389acd['toUpperCase']()]+_0x41a5('0x4e'),util[_0x41a5('0x4f')](_0x25295a,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b34=['data2','error','lodash','util','./zendesk','./freshdesk','./zoho','./desk','./vtiger','./servicenow','./dynamics365','./freshsales','zoho','vtiger','dynamics365','freshsales','servicenow','exec','includes','data1','find','data3','queue','outbound','EVENT\x20UNKNOWN','unmanaged','toLowerCase','zendesk','salesforce','sugarcrm','freshdesk','log','unknown\x20integration','../../../../config/logger','[EXEC]','format','%s\x20configuration\x20#%s\x20not\x20found'];(function(_0x2b9ae3,_0xd6d709){var _0x4e18a2=function(_0x397406){while(--_0x397406){_0x2b9ae3['push'](_0x2b9ae3['shift']());}};_0x4e18a2(++_0xd6d709);}(_0x7b34,0x105));var _0x47b3=function(_0x14a6b9,_0x322766){_0x14a6b9=_0x14a6b9-0x0;var _0x3c1161=_0x7b34[_0x14a6b9];return _0x3c1161;};'use strict';var _=require(_0x47b3('0x0'));var util=require(_0x47b3('0x1'));var zendesk=require(_0x47b3('0x2'));var salesforce=require('./salesforce');var sugarcrm=require('./sugarcrm');var freshdesk=require(_0x47b3('0x3'));var zoho=require(_0x47b3('0x4'));var desk=require(_0x47b3('0x5'));var vtiger=require(_0x47b3('0x6'));var servicenow=require(_0x47b3('0x7'));var dynamics365=require(_0x47b3('0x8'));var freshsales=require(_0x47b3('0x9'));var integrations=['zendesk','salesforce','sugarcrm','freshdesk',_0x47b3('0xa'),'desk',_0x47b3('0xb'),_0x47b3('0xc'),_0x47b3('0xd'),_0x47b3('0xe')];exports[_0x47b3('0xf')]=function(_0x3c04eb,_0x5d58aa,_0x31b74f,_0x10778a,_0x1b0a79,_0x3de41f){if(_0x31b74f){if(_[_0x47b3('0x10')](integrations,_0x3c04eb['data1']['toLowerCase']())){try{var _0x2e3058=null;var _0x57e5f2='';var _0x4433d8=_0x31b74f[_0x3c04eb[_0x47b3('0x11')]['toLowerCase']()];if(_0x4433d8){var _0x27f7dc=_0x4433d8[_0x3c04eb['data2']];if(_0x27f7dc){var _0x21e8c8=_[_0x47b3('0x12')](_0x27f7dc['Configurations'],{'id':parseInt(_0x3c04eb[_0x47b3('0x13')],0xa)});if(_0x21e8c8){if(_0x10778a){if(_0x1b0a79&&_0x5d58aa[_0x47b3('0x14')]){_0x57e5f2='queue';}else if(_0x5d58aa['routeId']){_0x57e5f2=_0x47b3('0x15');}else{console['log'](_0x47b3('0x16'),_0x5d58aa);}}else{_0x57e5f2=_0x47b3('0x17');}switch(_0x3c04eb['data1'][_0x47b3('0x18')]()){case _0x47b3('0x19'):zendesk[_0x57e5f2](_0x3c04eb,_0x5d58aa,_0x21e8c8,_0x10778a,_0x1b0a79,_0x27f7dc,_0x3de41f);break;case _0x47b3('0x1a'):salesforce[_0x57e5f2](_0x3c04eb,_0x5d58aa,_0x21e8c8,_0x10778a,_0x1b0a79,_0x27f7dc,_0x3de41f);break;case _0x47b3('0x1b'):sugarcrm[_0x57e5f2](_0x3c04eb,_0x5d58aa,_0x21e8c8,_0x10778a,_0x1b0a79,_0x27f7dc,_0x3de41f);break;case _0x47b3('0x1c'):freshdesk[_0x57e5f2](_0x3c04eb,_0x5d58aa,_0x21e8c8,_0x10778a,_0x1b0a79,_0x27f7dc,_0x3de41f);break;case _0x47b3('0xa'):zoho[_0x57e5f2](_0x3c04eb,_0x5d58aa,_0x21e8c8,_0x10778a,_0x1b0a79,_0x27f7dc,_0x3de41f);break;case'desk':desk[_0x57e5f2](_0x3c04eb,_0x5d58aa,_0x21e8c8,_0x10778a,_0x1b0a79,_0x27f7dc,_0x3de41f);break;case _0x47b3('0xb'):vtiger[_0x57e5f2](_0x3c04eb,_0x5d58aa,_0x21e8c8,_0x10778a,_0x1b0a79,_0x27f7dc,_0x3de41f);break;case _0x47b3('0xd'):freshsales['cs'](_0x3c04eb,_0x5d58aa,_0x21e8c8,_0x10778a,_0x1b0a79,_0x27f7dc,_0x3de41f,_0x57e5f2);break;case'servicenow':servicenow['cs'](_0x3c04eb,_0x5d58aa,_0x21e8c8,_0x10778a,_0x1b0a79,_0x27f7dc,_0x3de41f,_0x57e5f2);break;case'dynamics365':dynamics365['cs'](_0x3c04eb,_0x5d58aa,_0x21e8c8,_0x10778a,_0x1b0a79,_0x27f7dc,_0x3de41f,_0x57e5f2);break;default:console[_0x47b3('0x1d')](_0x47b3('0x1e'));}}else{_0x2e3058=require(_0x47b3('0x1f'))(_0x3c04eb[_0x47b3('0x11')][_0x47b3('0x18')]());_0x2e3058['error'](_0x47b3('0x20'),util[_0x47b3('0x21')](_0x47b3('0x22'),_0x3c04eb['data1'][_0x47b3('0x18')](),_0x3c04eb[_0x47b3('0x13')]));}}else{_0x2e3058=require(_0x47b3('0x1f'))(_0x3c04eb[_0x47b3('0x11')][_0x47b3('0x18')]());_0x2e3058['error']('[EXEC]',util['format']('%s\x20account\x20#%s\x20not\x20found',_0x3c04eb['data1'][_0x47b3('0x18')](),_0x3c04eb[_0x47b3('0x23')]));}}else{}}catch(_0x408a63){console[_0x47b3('0x24')](_0x408a63);}}}};
\ No newline at end of file
+var _0xf6fe=['error','util','./zendesk','./sugarcrm','./freshdesk','./zoho','./desk','./vtiger','./servicenow','./freshsales','zendesk','salesforce','sugarcrm','desk','dynamics365','freshsales','servicenow','exec','includes','toLowerCase','data1','Configurations','data3','queue','routeId','outbound','log','EVENT\x20UNKNOWN','unmanaged','freshdesk','vtiger','unknown\x20integration','format','%s\x20configuration\x20#%s\x20not\x20found','../../../../config/logger','%s\x20account\x20#%s\x20not\x20found'];(function(_0x102977,_0x3a99a6){var _0x15c466=function(_0x1a6a12){while(--_0x1a6a12){_0x102977['push'](_0x102977['shift']());}};_0x15c466(++_0x3a99a6);}(_0xf6fe,0x18d));var _0xef6f=function(_0x275e30,_0x353fba){_0x275e30=_0x275e30-0x0;var _0x4b4111=_0xf6fe[_0x275e30];return _0x4b4111;};'use strict';var _=require('lodash');var util=require(_0xef6f('0x0'));var zendesk=require(_0xef6f('0x1'));var salesforce=require('./salesforce');var sugarcrm=require(_0xef6f('0x2'));var freshdesk=require(_0xef6f('0x3'));var zoho=require(_0xef6f('0x4'));var desk=require(_0xef6f('0x5'));var vtiger=require(_0xef6f('0x6'));var servicenow=require(_0xef6f('0x7'));var dynamics365=require('./dynamics365');var freshsales=require(_0xef6f('0x8'));var integrations=[_0xef6f('0x9'),_0xef6f('0xa'),_0xef6f('0xb'),'freshdesk','zoho',_0xef6f('0xc'),'vtiger',_0xef6f('0xd'),_0xef6f('0xe'),_0xef6f('0xf')];exports[_0xef6f('0x10')]=function(_0x1ee917,_0x364eba,_0x572e16,_0x438091,_0xef3e71,_0x9051d5){if(_0x572e16){if(_[_0xef6f('0x11')](integrations,_0x1ee917['data1'][_0xef6f('0x12')]())){try{var _0x3a4e5f=null;var _0x1e8fe5='';var _0x99883e=_0x572e16[_0x1ee917[_0xef6f('0x13')]['toLowerCase']()];if(_0x99883e){var _0x176109=_0x99883e[_0x1ee917['data2']];if(_0x176109){var _0x788bf3=_['find'](_0x176109[_0xef6f('0x14')],{'id':parseInt(_0x1ee917[_0xef6f('0x15')],0xa)});if(_0x788bf3){if(_0x438091){if(_0xef3e71&&_0x364eba['queue']){_0x1e8fe5=_0xef6f('0x16');}else if(_0x364eba[_0xef6f('0x17')]){_0x1e8fe5=_0xef6f('0x18');}else{console[_0xef6f('0x19')](_0xef6f('0x1a'),_0x364eba);}}else{_0x1e8fe5=_0xef6f('0x1b');}switch(_0x1ee917['data1'][_0xef6f('0x12')]()){case _0xef6f('0x9'):zendesk[_0x1e8fe5](_0x1ee917,_0x364eba,_0x788bf3,_0x438091,_0xef3e71,_0x176109,_0x9051d5);break;case _0xef6f('0xa'):salesforce[_0x1e8fe5](_0x1ee917,_0x364eba,_0x788bf3,_0x438091,_0xef3e71,_0x176109,_0x9051d5);break;case _0xef6f('0xb'):sugarcrm[_0x1e8fe5](_0x1ee917,_0x364eba,_0x788bf3,_0x438091,_0xef3e71,_0x176109,_0x9051d5);break;case _0xef6f('0x1c'):freshdesk[_0x1e8fe5](_0x1ee917,_0x364eba,_0x788bf3,_0x438091,_0xef3e71,_0x176109,_0x9051d5);break;case'zoho':zoho[_0x1e8fe5](_0x1ee917,_0x364eba,_0x788bf3,_0x438091,_0xef3e71,_0x176109,_0x9051d5);break;case _0xef6f('0xc'):desk[_0x1e8fe5](_0x1ee917,_0x364eba,_0x788bf3,_0x438091,_0xef3e71,_0x176109,_0x9051d5);break;case _0xef6f('0x1d'):vtiger[_0x1e8fe5](_0x1ee917,_0x364eba,_0x788bf3,_0x438091,_0xef3e71,_0x176109,_0x9051d5);break;case _0xef6f('0xe'):freshsales['cs'](_0x1ee917,_0x364eba,_0x788bf3,_0x438091,_0xef3e71,_0x176109,_0x9051d5,_0x1e8fe5);break;case'servicenow':servicenow['cs'](_0x1ee917,_0x364eba,_0x788bf3,_0x438091,_0xef3e71,_0x176109,_0x9051d5,_0x1e8fe5);break;case _0xef6f('0xd'):dynamics365['cs'](_0x1ee917,_0x364eba,_0x788bf3,_0x438091,_0xef3e71,_0x176109,_0x9051d5,_0x1e8fe5);break;default:console[_0xef6f('0x19')](_0xef6f('0x1e'));}}else{_0x3a4e5f=require('../../../../config/logger')(_0x1ee917[_0xef6f('0x13')][_0xef6f('0x12')]());_0x3a4e5f['error']('[EXEC]',util[_0xef6f('0x1f')](_0xef6f('0x20'),_0x1ee917[_0xef6f('0x13')]['toLowerCase'](),_0x1ee917[_0xef6f('0x15')]));}}else{_0x3a4e5f=require(_0xef6f('0x21'))(_0x1ee917[_0xef6f('0x13')][_0xef6f('0x12')]());_0x3a4e5f['error']('[EXEC]',util[_0xef6f('0x1f')](_0xef6f('0x22'),_0x1ee917[_0xef6f('0x13')]['toLowerCase'](),_0x1ee917['data2']));}}else{}}catch(_0x5da924){console[_0xef6f('0x23')](_0x5da924);}}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b1d=['request-promise','bluebird','md5','util','./util','../../../../config/logger','salesforce','redis','defaults','localhost','socket.io-emitter','Subjects','getString','Descriptions','Task','ActivityDate','utc','IsReminderSet','IsRecurrence','endUserType','contact','lead','WhoId','account','ticketType','Case','ContactId','AccountId','Association\x20between\x20Case\x20and\x20Lead\x20skipped','create','validateEmail','sobject','User','find','execute','then','length','Email','info','resolve','identity','user_id','Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.','Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.','moduleSearch','contact_lead','cloneDeep','additionalSearchContact','$or','Contact','additionalSearchLead','merge','Lead','account_contact_lead','additionalSearchAccount','Account','first','Phone','attributes','type','toLowerCase','moduleCreate','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','LastName','format','Caller\x20-\x20%s','Company','No\x20Company','Name','<unknown>','upperFirst','forEach','includes','picklist','idField','content','toString','variable','variableName','customVariable','Variable','name','password','concat','securityToken','Connection','remoteUri','https://login.salesforce.com','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','[QUEUE]\x20Ticket\x20%s\x20created','[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','integrationTab','user:%s','trigger:salesforce:display','newTab','trigger:browser:url','%s/%s/e','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','catch','error','outbound','recordingFormat','none','[OUTBOUND]','destcalleridname','destcalleridnum','[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','Salesforce\x20account\x20type\x20not\x20recognized','unmanaged','monitor_format','toUpperCase','isNil','lastevent',']\x20Ticket\x20%s\x20created.',']\x20Integration\x20account\x20type\x20%s.','lodash'];(function(_0x4ee317,_0x31acfe){var _0x4c6a8a=function(_0x46bedf){while(--_0x46bedf){_0x4ee317['push'](_0x4ee317['shift']());}};_0x4c6a8a(++_0x31acfe);}(_0x6b1d,0x82));var _0xd6b1=function(_0x3625d6,_0x57f4c4){_0x3625d6=_0x3625d6-0x0;var _0x8df4d8=_0x6b1d[_0x3625d6];return _0x8df4d8;};'use strict';var _=require(_0xd6b1('0x0'));var rp=require(_0xd6b1('0x1'));var moment=require('moment');var BPromise=require(_0xd6b1('0x2'));var md5=require(_0xd6b1('0x3'));var jsforce=require('jsforce');var util=require(_0xd6b1('0x4'));var Redis=require('ioredis');var intUtil=require(_0xd6b1('0x5'));var config=require('../../../../config/environment');var logger=require(_0xd6b1('0x6'))(_0xd6b1('0x7'));config[_0xd6b1('0x8')]=_[_0xd6b1('0x9')](config[_0xd6b1('0x8')],{'host':_0xd6b1('0xa'),'port':0x18eb});var io=require(_0xd6b1('0xb'))(new Redis(config[_0xd6b1('0x8')]));function emit(_0x21a4d2,_0x2d741f,_0x3ec0c5){io['to'](_0x21a4d2)['emit'](_0x2d741f,_0x3ec0c5);}function getTicket(_0x414b8e,_0x3dd238,_0x6ffd72,_0x501ab1,_0x46054d,_0x1002e3,_0x3a8723,_0x102189){var _0x2aa938=Object['assign']({},{'OwnerId':_0x3dd238['id'],'Subject':intUtil['getString'](_0x501ab1[_0xd6b1('0xc')],_0x46054d,'\x20'),'Description':intUtil[_0xd6b1('0xd')](_0x501ab1[_0xd6b1('0xe')],_0x46054d,'\x0a')},getCustomFields(_0x1002e3,_0x46054d));if(_0x6ffd72){if(_0x501ab1['ticketType']===_0xd6b1('0xf')){_0x2aa938[_0xd6b1('0x10')]=moment[_0xd6b1('0x11')]();_0x2aa938[_0xd6b1('0x12')]=![];_0x2aa938[_0xd6b1('0x13')]=![];if(_0x6ffd72[_0xd6b1('0x14')]===_0xd6b1('0x15')||_0x6ffd72[_0xd6b1('0x14')]===_0xd6b1('0x16')){_0x2aa938[_0xd6b1('0x17')]=_0x6ffd72['id'];}else if(_0x6ffd72[_0xd6b1('0x14')]===_0xd6b1('0x18')){_0x2aa938['WhatId']=_0x6ffd72['id'];}}else if(_0x501ab1[_0xd6b1('0x19')]===_0xd6b1('0x1a')){if(_0x6ffd72[_0xd6b1('0x14')]==='contact'){_0x2aa938[_0xd6b1('0x1b')]=_0x6ffd72['id'];}else if(_0x6ffd72[_0xd6b1('0x14')]===_0xd6b1('0x18')){_0x2aa938[_0xd6b1('0x1c')]=_0x6ffd72['id'];}else if(_0x6ffd72[_0xd6b1('0x14')]===_0xd6b1('0x16')&&_0x501ab1['leadId']){_0x2aa938[_0x501ab1['leadId']]=_0x6ffd72['id'];}else{logger['info'](_0xd6b1('0x1d'));}}}return _0x3a8723['sobject'](_0x501ab1[_0xd6b1('0x19')])[_0xd6b1('0x1e')](_0x2aa938);}function getUser(_0x47fba6,_0x5a27bf,_0x119a4c){if(!_['isNil'](_0x5a27bf)&&intUtil[_0xd6b1('0x1f')](_0x5a27bf)){var _0x4bb5e1={'Email':_0x5a27bf};var _0x17697c={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x119a4c[_0xd6b1('0x20')](_0xd6b1('0x21'))[_0xd6b1('0x22')](_0x4bb5e1,_0x17697c)[_0xd6b1('0x23')]()[_0xd6b1('0x24')](function(_0x5a3eb8){if(_0x5a3eb8[_0xd6b1('0x25')]){var _0x4af515=_['find'](_0x5a3eb8,function(_0x4e8b79){return _0x4e8b79[_0xd6b1('0x26')]===_0x5a27bf;});if(_0x4af515){logger[_0xd6b1('0x27')]('Agent\x20%s\x20found.',_0x5a27bf);return BPromise[_0xd6b1('0x28')]({'id':_0x4af515['Id'],'name':_0x4af515['Name']});}}else{logger['info']('Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.',_0x5a27bf);return _0x119a4c[_0xd6b1('0x29')]()['then'](function(_0x9e377c){return BPromise[_0xd6b1('0x28')]({'id':_0x9e377c[_0xd6b1('0x2a')],'name':_0x9e377c['display_name']});});}});}else{logger['info'](_0xd6b1('0x2b'),_0x5a27bf);return _0x119a4c[_0xd6b1('0x29')]()[_0xd6b1('0x24')](function(_0x3f4561){return BPromise['resolve']({'id':_0x3f4561[_0xd6b1('0x2a')],'name':_0x3f4561['display_name']});});}}function getEndUser(_0x5e12fb,_0x205fba,_0x3e7b8b,_0xbfc02,_0x5017c7){var _0x4ebea4={'$or':{'Phone':_0xbfc02}};var _0x2b831a={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0xd6b1('0x28')]()['then'](function(){logger[_0xd6b1('0x27')](_0xd6b1('0x2c'),_0xbfc02,_0x205fba[_0xd6b1('0x2d')]);switch(_0x205fba['moduleSearch']){case _0xd6b1('0x2e'):var _0x23d6f7=_[_0xd6b1('0x2f')](_0x4ebea4);if(_0x205fba['additionalSearchContact']){var _0x19d431={};_0x19d431[_0x205fba[_0xd6b1('0x30')]]=_0xbfc02;_['merge'](_0x23d6f7[_0xd6b1('0x31')],_0x19d431);}return _0x5017c7[_0xd6b1('0x20')](_0xd6b1('0x32'))[_0xd6b1('0x22')](_0x23d6f7,_0x2b831a)[_0xd6b1('0x23')]()[_0xd6b1('0x24')](function(_0x4302dc){if(_0x4302dc&&_0x4302dc[_0xd6b1('0x25')]){return _0x4302dc;}else{var _0x192e0f=_['cloneDeep'](_0x4ebea4);if(_0x205fba[_0xd6b1('0x33')]){var _0x1003cf={};_0x1003cf[_0x205fba[_0xd6b1('0x33')]]=_0xbfc02;_[_0xd6b1('0x34')](_0x192e0f[_0xd6b1('0x31')],_0x1003cf);}return _0x5017c7[_0xd6b1('0x20')](_0xd6b1('0x35'))[_0xd6b1('0x22')](_0x192e0f,_0x2b831a);}});case _0xd6b1('0x36'):var _0x275ccb=_[_0xd6b1('0x2f')](_0x4ebea4);if(_0x205fba[_0xd6b1('0x37')]){var _0x19d431={};_0x19d431[_0x205fba['additionalSearchAccount']]=_0xbfc02;_[_0xd6b1('0x34')](_0x275ccb[_0xd6b1('0x31')],_0x19d431);}return _0x5017c7[_0xd6b1('0x20')](_0xd6b1('0x38'))['find'](_0x275ccb,_0x2b831a)[_0xd6b1('0x23')]()[_0xd6b1('0x24')](function(_0xda7add){if(_0xda7add&&_0xda7add[_0xd6b1('0x25')]){return _0xda7add;}else{var _0x1947f4=_[_0xd6b1('0x2f')](_0x4ebea4);if(_0x205fba[_0xd6b1('0x30')]){var _0x2b810f={};_0x2b810f[_0x205fba[_0xd6b1('0x30')]]=_0xbfc02;_[_0xd6b1('0x34')](_0x1947f4[_0xd6b1('0x31')],_0x2b810f);}return _0x5017c7[_0xd6b1('0x20')](_0xd6b1('0x32'))[_0xd6b1('0x22')](_0x1947f4,_0x2b831a)['then'](function(_0x5170c4){if(_0x5170c4&&_0x5170c4[_0xd6b1('0x25')]){return _0x5170c4;}else{var _0x37acb0=_[_0xd6b1('0x2f')](_0x4ebea4);if(_0x205fba[_0xd6b1('0x33')]){var _0x3f78fd={};_0x3f78fd[_0x205fba[_0xd6b1('0x33')]]=_0xbfc02;_[_0xd6b1('0x34')](_0x37acb0[_0xd6b1('0x31')],_0x3f78fd);}return _0x5017c7[_0xd6b1('0x20')]('Lead')[_0xd6b1('0x22')](_0x37acb0,_0x2b831a);}});}});case _0xd6b1('0x15'):var _0x23d6f7=_['cloneDeep'](_0x4ebea4);if(_0x205fba['additionalSearchContact']){var _0x19d431={};_0x19d431[_0x205fba['additionalSearchContact']]=_0xbfc02;_[_0xd6b1('0x34')](_0x23d6f7[_0xd6b1('0x31')],_0x19d431);}return _0x5017c7[_0xd6b1('0x20')]('Contact')[_0xd6b1('0x22')](_0x23d6f7,_0x2b831a)[_0xd6b1('0x23')]();case _0xd6b1('0x16'):var _0x1da750=_['cloneDeep'](_0x4ebea4);if(_0x205fba[_0xd6b1('0x33')]){var _0x19d431={};_0x19d431[_0x205fba[_0xd6b1('0x33')]]=_0xbfc02;_['merge'](_0x1da750['$or'],_0x19d431);}return _0x5017c7[_0xd6b1('0x20')](_0xd6b1('0x35'))[_0xd6b1('0x22')](_0x1da750,_0x2b831a);case'account':var _0x275ccb=_[_0xd6b1('0x2f')](_0x4ebea4);if(_0x205fba[_0xd6b1('0x37')]){var _0x19d431={};_0x19d431[_0x205fba[_0xd6b1('0x37')]]=_0xbfc02;_['merge'](_0x275ccb[_0xd6b1('0x31')],_0x19d431);}return _0x5017c7[_0xd6b1('0x20')](_0xd6b1('0x38'))[_0xd6b1('0x22')](_0x275ccb,_0x2b831a);default:return null;}})[_0xd6b1('0x24')](function(_0x2ede9b){if(_0x2ede9b&&_0x2ede9b[_0xd6b1('0x25')]){var _0x12e4ca=_[_0xd6b1('0x39')](_0x2ede9b);if(_0x12e4ca){return BPromise[_0xd6b1('0x28')]({'id':_0x12e4ca['Id'],'name':_0x12e4ca['Name'],'phone':_0x12e4ca[_0xd6b1('0x3a')],'endUserType':_0x12e4ca[_0xd6b1('0x3b')][_0xd6b1('0x3c')][_0xd6b1('0x3d')]()});}}})[_0xd6b1('0x24')](function(_0x59b662){if(_0x59b662){logger['info']('Enduser\x20(%s)\x20with\x20phone\x20%s\x20found',_0x59b662[_0xd6b1('0x14')],_0xbfc02);return BPromise[_0xd6b1('0x28')](_0x59b662);}else{logger[_0xd6b1('0x27')]('Enduser\x20with\x20phone\x20%s\x20not\x20found',_0xbfc02);var _0x20c59d={'Phone':_0xbfc02};if(_0x205fba['moduleCreate']){if(_0x205fba[_0xd6b1('0x3e')]===_0xd6b1('0x15')){logger[_0xd6b1('0x27')](_0xd6b1('0x3f'),_0xbfc02,_0x205fba['moduleCreate']);_0x20c59d[_0xd6b1('0x40')]=_0x3e7b8b!=='<unknown>'?_0x3e7b8b:util[_0xd6b1('0x41')](_0xd6b1('0x42'),_0xbfc02);}else if(_0x205fba['moduleCreate']==='lead'){logger['info'](_0xd6b1('0x3f'),_0xbfc02,_0x205fba[_0xd6b1('0x3e')]);_0x20c59d[_0xd6b1('0x40')]=_0x3e7b8b!=='<unknown>'?_0x3e7b8b:util['format'](_0xd6b1('0x42'),_0xbfc02);_0x20c59d[_0xd6b1('0x43')]=_0xd6b1('0x44');}else if(_0x205fba[_0xd6b1('0x3e')]==='account'){logger[_0xd6b1('0x27')](_0xd6b1('0x3f'),_0xbfc02,_0x205fba[_0xd6b1('0x3e')]);_0x20c59d[_0xd6b1('0x45')]=_0x3e7b8b!==_0xd6b1('0x46')?_0x3e7b8b:util[_0xd6b1('0x41')](_0xd6b1('0x42'),_0xbfc02);}else{return null;}}return _0x5017c7[_0xd6b1('0x20')](_[_0xd6b1('0x47')](_0x205fba[_0xd6b1('0x3e')]))[_0xd6b1('0x1e')](_0x20c59d)[_0xd6b1('0x24')](function(_0x5f47df){return BPromise[_0xd6b1('0x28')]({'id':_0x5f47df['id'],'endUserType':_0x205fba[_0xd6b1('0x3e')]});});}});}function getCustomFields(_0x2d30b4,_0xed3f26){var _0x4f42e4={};if(_0x2d30b4[_0xd6b1('0x25')]>0x0){_[_0xd6b1('0x48')](_0x2d30b4,function(_0x2c055e){if(_[_0xd6b1('0x49')](['string',_0xd6b1('0x4a')],_0x2c055e[_0xd6b1('0x3c')])&&_0x2c055e['idField']){_0x4f42e4[_0x2c055e[_0xd6b1('0x4b')]]=_0x2c055e[_0xd6b1('0x4c')][_0xd6b1('0x4d')]();}else if(_0x2c055e['type']===_0xd6b1('0x4e')&&_0x2c055e[_0xd6b1('0x4f')]&&_0x2c055e[_0xd6b1('0x4b')]){_0xed3f26[_0x2c055e[_0xd6b1('0x4f')]]&&(_0x4f42e4[_0x2c055e[_0xd6b1('0x4b')]]=_0xed3f26[_0x2c055e[_0xd6b1('0x4f')]]['toString']());}else if(_0x2c055e[_0xd6b1('0x3c')]===_0xd6b1('0x50')&&_0x2c055e[_0xd6b1('0x51')]&&_0x2c055e[_0xd6b1('0x51')][_0xd6b1('0x52')]&&_0x2c055e[_0xd6b1('0x4b')]){_0xed3f26[_0x2c055e[_0xd6b1('0x51')][_0xd6b1('0x52')][_0xd6b1('0x3d')]()]&&(_0x4f42e4[_0x2c055e[_0xd6b1('0x4b')]]=_0xed3f26[_0x2c055e[_0xd6b1('0x51')][_0xd6b1('0x52')][_0xd6b1('0x3d')]()][_0xd6b1('0x4d')]());}});}return _0x4f42e4;}function getConnection(_0x5f5828){var _0x2fb2d8=_0x5f5828[_0xd6b1('0x53')][_0xd6b1('0x54')](_0x5f5828[_0xd6b1('0x55')]);var _0xea6a6a=new jsforce[(_0xd6b1('0x56'))]({'oauth2':{'loginUrl':_0x5f5828[_0xd6b1('0x57')]||_0xd6b1('0x58'),'clientId':_0x5f5828['clientId'],'clientSecret':_0x5f5828[_0xd6b1('0x59')]}});return _0xea6a6a[_0xd6b1('0x5a')](_0x5f5828[_0xd6b1('0x5b')],_0x2fb2d8)['then'](function(){logger[_0xd6b1('0x27')](_0xd6b1('0x5c'));return _0xea6a6a;});}exports['queue']=function(_0x3282f,_0x484800,_0x47c8e9,_0x4fd81b,_0x21164b,_0x1a2a19){var _0xf2cb90,_0x4a6ace,_0x23303d,_0xdbe124;_0x1a2a19[_0xd6b1('0x5d')]=intUtil[_0xd6b1('0x5e')](_0x1a2a19[_0xd6b1('0x5d')]);_0x1a2a19[_0xd6b1('0x57')]=intUtil[_0xd6b1('0x5e')](_0x1a2a19[_0xd6b1('0x57')]);if(_0x21164b&&_0x21164b['monitor_format']){logger['info'](_0xd6b1('0x5f'),_0xd6b1('0x60'));_0x484800[_0xd6b1('0x61')]=util[_0xd6b1('0x41')](_0xd6b1('0x62'),_0x1a2a19[_0xd6b1('0x5d')],_0x484800[_0xd6b1('0x63')],md5(_0x484800['uniqueid']));}else{_0x484800[_0xd6b1('0x61')]='';}return getConnection(_0x1a2a19)[_0xd6b1('0x24')](function(_0x207d14){_0xdbe124=_0x207d14;return getUser(_0x1a2a19,_0x4fd81b[_0xd6b1('0x64')],_0xdbe124);})[_0xd6b1('0x24')](function(_0x2581a3){_0xf2cb90=_0x2581a3;return getEndUser(_0x1a2a19,_0x47c8e9,_0x484800[_0xd6b1('0x65')],_0x484800[_0xd6b1('0x66')],_0xdbe124);})[_0xd6b1('0x24')](function(_0x4dc6cf){_0x4a6ace=_0x4dc6cf;return getTicket(_0x1a2a19,_0xf2cb90,_0x4a6ace,_0x47c8e9,_0x484800,_0x47c8e9[_0xd6b1('0x67')],_0xdbe124,_0xd6b1('0x68'));})[_0xd6b1('0x24')](function(_0x3faeac){_0x23303d=_0x3faeac;logger[_0xd6b1('0x27')](_0xd6b1('0x69'),_0x23303d['id']);logger[_0xd6b1('0x27')](_0xd6b1('0x6a'),_0x23303d['id'],_0x4fd81b[_0xd6b1('0x52')],_0x1a2a19[_0xd6b1('0x3c')]);switch(_0x1a2a19[_0xd6b1('0x3c')]){case _0xd6b1('0x6b'):emit(util[_0xd6b1('0x41')](_0xd6b1('0x6c'),_0x4fd81b[_0xd6b1('0x52')]),_0xd6b1('0x6d'),{'recordId':_0x23303d['id']});break;case _0xd6b1('0x6e'):emit(util[_0xd6b1('0x41')](_0xd6b1('0x6c'),_0x4fd81b[_0xd6b1('0x52')]),_0xd6b1('0x6f'),{'uri':util['format'](_0xd6b1('0x70'),_0xdbe124['instanceUrl'],_0x23303d['id'])});break;default:logger['error'](_0xd6b1('0x71'));}})[_0xd6b1('0x72')](function(_0x5293fc){logger[_0xd6b1('0x73')]('[QUEUE]',_0x5293fc);});};exports[_0xd6b1('0x74')]=function(_0x35a42d,_0x2b6ed9,_0x501b95,_0x542b7b,_0x454419,_0x34b254,_0x31413e){var _0x415b68,_0x2dddde,_0x53d813,_0x4f0d09;_0x34b254['serverUrl']=intUtil['stripTrailingSlash'](_0x34b254[_0xd6b1('0x5d')]);_0x34b254[_0xd6b1('0x57')]=intUtil[_0xd6b1('0x5e')](_0x34b254[_0xd6b1('0x57')]);if(_0x31413e&&_0x31413e[_0xd6b1('0x75')]&&_0x31413e['recordingFormat']!==_0xd6b1('0x76')){logger[_0xd6b1('0x27')](_0xd6b1('0x77'),_0xd6b1('0x60'));_0x2b6ed9[_0xd6b1('0x61')]=util[_0xd6b1('0x41')](_0xd6b1('0x62'),_0x34b254[_0xd6b1('0x5d')],_0x2b6ed9[_0xd6b1('0x63')],md5(_0x2b6ed9[_0xd6b1('0x63')]));}return getConnection(_0x34b254)[_0xd6b1('0x24')](function(_0x3ba628){_0x4f0d09=_0x3ba628;return getUser(_0x34b254,_0x542b7b[_0xd6b1('0x64')],_0x4f0d09);})['then'](function(_0x264f99){_0x415b68=_0x264f99;return getEndUser(_0x34b254,_0x501b95,_0x2b6ed9[_0xd6b1('0x78')],_0x2b6ed9[_0xd6b1('0x79')],_0x4f0d09);})[_0xd6b1('0x24')](function(_0x37a849){_0x2dddde=_0x37a849;return getTicket(_0x34b254,_0x415b68,_0x2dddde,_0x501b95,_0x2b6ed9,_0x501b95[_0xd6b1('0x67')],_0x4f0d09,'outbound');})['then'](function(_0x575ca8){_0x53d813=_0x575ca8;logger[_0xd6b1('0x27')]('[OUTBOUND]\x20Ticket\x20%s\x20created.',_0x53d813['id']);logger[_0xd6b1('0x27')](_0xd6b1('0x7a'),_0x53d813['id'],_0x542b7b[_0xd6b1('0x52')],_0x34b254[_0xd6b1('0x3c')]);switch(_0x34b254[_0xd6b1('0x3c')]){case'integrationTab':emit(util[_0xd6b1('0x41')](_0xd6b1('0x6c'),_0x542b7b['name']),_0xd6b1('0x6d'),{'recordId':_0x53d813['id']});break;case _0xd6b1('0x6e'):emit(util['format'](_0xd6b1('0x6c'),_0x542b7b['name']),_0xd6b1('0x6f'),{'uri':util[_0xd6b1('0x41')](_0xd6b1('0x70'),_0x4f0d09['instanceUrl'],_0x53d813['id'])});break;default:logger[_0xd6b1('0x73')](_0xd6b1('0x77'),_0xd6b1('0x7b'));}})[_0xd6b1('0x72')](function(_0x52dea9){logger[_0xd6b1('0x73')]('[OUTBOUND]',_0x52dea9);});};exports[_0xd6b1('0x7c')]=function(_0x221eb3,_0x220f6c,_0x3ac375,_0x2b3ef6,_0x39ddd2,_0x30b80a){var _0x3eb6a4,_0x363fad,_0x5d3b45,_0x28c676;_0x30b80a[_0xd6b1('0x5d')]=intUtil['stripTrailingSlash'](_0x30b80a[_0xd6b1('0x5d')]);_0x30b80a[_0xd6b1('0x57')]=intUtil[_0xd6b1('0x5e')](_0x30b80a[_0xd6b1('0x57')]);if(_0x39ddd2&&_0x39ddd2[_0xd6b1('0x7d')]){logger[_0xd6b1('0x27')]('['+_0x220f6c['lastevent'][_0xd6b1('0x7e')]()+']',_0xd6b1('0x60'));_0x220f6c[_0xd6b1('0x61')]=util[_0xd6b1('0x41')](_0xd6b1('0x62'),_0x30b80a[_0xd6b1('0x5d')],_0x220f6c['uniqueid'],md5(_0x220f6c['uniqueid']));}else{_0x220f6c['recordingURL']='';}return getConnection(_0x30b80a)[_0xd6b1('0x24')](function(_0xf3b3ce){_0x28c676=_0xf3b3ce;if(!_[_0xd6b1('0x7f')](_0x2b3ef6)){return getUser(_0x30b80a,_0x2b3ef6[_0xd6b1('0x52')],_0x28c676);}else{return getUser(_0x30b80a,null,_0x28c676);}})['then'](function(_0x48afcf){_0x3eb6a4=_0x48afcf;return getEndUser(_0x30b80a,_0x3ac375,_0x220f6c[_0xd6b1('0x65')],_0x220f6c['calleridnum'],_0x28c676);})[_0xd6b1('0x24')](function(_0x4ac330){_0x363fad=_0x4ac330;return getTicket(_0x30b80a,_0x3eb6a4,_0x363fad,_0x3ac375,_0x220f6c,_0x3ac375[_0xd6b1('0x67')],_0x28c676);})['then'](function(_0x3e3d5c){_0x5d3b45=_0x3e3d5c;logger[_0xd6b1('0x27')]('['+_0x220f6c[_0xd6b1('0x80')][_0xd6b1('0x7e')]()+_0xd6b1('0x81'),_0x5d3b45['id']);logger['info']('['+_0x220f6c['lastevent'][_0xd6b1('0x7e')]()+_0xd6b1('0x82'),_0x30b80a[_0xd6b1('0x3c')]);})['catch'](function(_0x4c9432){logger['error']('['+_0x220f6c[_0xd6b1('0x80')][_0xd6b1('0x7e')]()+']',_0x4c9432);});};
\ No newline at end of file
+var _0x573e=['recordingFormat','[OUTBOUND]','email','destcalleridname','destcalleridnum','Fields','[OUTBOUND]\x20Ticket\x20%s\x20created.','integrationTab','Salesforce\x20account\x20type\x20not\x20recognized','catch','lastevent','toUpperCase','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',']\x20Ticket\x20%s\x20created.',']\x20Integration\x20account\x20type\x20%s.','lodash','request-promise','moment','bluebird','md5','jsforce','util','ioredis','./util','../../../../config/logger','salesforce','redis','socket.io-emitter','emit','getString','Subjects','Descriptions','ActivityDate','utc','IsReminderSet','IsRecurrence','contact','endUserType','lead','WhoId','account','ticketType','Case','ContactId','AccountId','leadId','info','Association\x20between\x20Case\x20and\x20Lead\x20skipped','isNil','validateEmail','sobject','User','execute','then','length','find','Agent\x20%s\x20found.','resolve','Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.','identity','user_id','Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.','moduleSearch','contact_lead','cloneDeep','$or','Contact','additionalSearchLead','Lead','account_contact_lead','additionalSearchAccount','merge','Account','additionalSearchContact','first','Name','Phone','attributes','type','toLowerCase','Enduser\x20(%s)\x20with\x20phone\x20%s\x20found','moduleCreate','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','LastName','<unknown>','format','Caller\x20-\x20%s','Company','upperFirst','create','forEach','includes','string','picklist','variable','idField','variableName','toString','customVariable','Variable','name','concat','remoteUri','https://login.salesforce.com','clientId','clientSecret','login','Connection\x20established.','serverUrl','stripTrailingSlash','monitor_format','Recording\x20is\x20enabled!','recordingURL','uniqueid','calleridnum','queue','[QUEUE]\x20Ticket\x20%s\x20created','[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','trigger:salesforce:display','user:%s','trigger:browser:url','%s/%s/e','instanceUrl','error','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','[QUEUE]','outbound'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x573e,0x8e));var _0xe573=function(_0x2b4b49,_0x35bac6){_0x2b4b49=_0x2b4b49-0x0;var _0x1f41c4=_0x573e[_0x2b4b49];return _0x1f41c4;};'use strict';var _=require(_0xe573('0x0'));var rp=require(_0xe573('0x1'));var moment=require(_0xe573('0x2'));var BPromise=require(_0xe573('0x3'));var md5=require(_0xe573('0x4'));var jsforce=require(_0xe573('0x5'));var util=require(_0xe573('0x6'));var Redis=require(_0xe573('0x7'));var intUtil=require(_0xe573('0x8'));var config=require('../../../../config/environment');var logger=require(_0xe573('0x9'))(_0xe573('0xa'));config[_0xe573('0xb')]=_['defaults'](config[_0xe573('0xb')],{'host':'localhost','port':0x18eb});var io=require(_0xe573('0xc'))(new Redis(config[_0xe573('0xb')]));function emit(_0x4117fe,_0x50dd16,_0x46070a){io['to'](_0x4117fe)[_0xe573('0xd')](_0x50dd16,_0x46070a);}function getTicket(_0x5dade0,_0xc1a57d,_0x417789,_0x368088,_0xbfc97c,_0x59ee7c,_0x20f225,_0x45cf64){var _0x268644=Object['assign']({},{'OwnerId':_0xc1a57d['id'],'Subject':intUtil[_0xe573('0xe')](_0x368088[_0xe573('0xf')],_0xbfc97c,'\x20'),'Description':intUtil[_0xe573('0xe')](_0x368088[_0xe573('0x10')],_0xbfc97c,'\x0a')},getCustomFields(_0x59ee7c,_0xbfc97c));if(_0x417789){if(_0x368088['ticketType']==='Task'){_0x268644[_0xe573('0x11')]=moment[_0xe573('0x12')]();_0x268644[_0xe573('0x13')]=![];_0x268644[_0xe573('0x14')]=![];if(_0x417789['endUserType']===_0xe573('0x15')||_0x417789[_0xe573('0x16')]===_0xe573('0x17')){_0x268644[_0xe573('0x18')]=_0x417789['id'];}else if(_0x417789[_0xe573('0x16')]===_0xe573('0x19')){_0x268644['WhatId']=_0x417789['id'];}}else if(_0x368088[_0xe573('0x1a')]===_0xe573('0x1b')){if(_0x417789['endUserType']===_0xe573('0x15')){_0x268644[_0xe573('0x1c')]=_0x417789['id'];}else if(_0x417789[_0xe573('0x16')]===_0xe573('0x19')){_0x268644[_0xe573('0x1d')]=_0x417789['id'];}else if(_0x417789['endUserType']===_0xe573('0x17')&&_0x368088[_0xe573('0x1e')]){_0x268644[_0x368088[_0xe573('0x1e')]]=_0x417789['id'];}else{logger[_0xe573('0x1f')](_0xe573('0x20'));}}}return _0x20f225['sobject'](_0x368088['ticketType'])['create'](_0x268644);}function getUser(_0x2c5065,_0x592254,_0x200a3d){if(!_[_0xe573('0x21')](_0x592254)&&intUtil[_0xe573('0x22')](_0x592254)){var _0x2a9f1d={'Email':_0x592254};var _0x5c9252={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x200a3d[_0xe573('0x23')](_0xe573('0x24'))['find'](_0x2a9f1d,_0x5c9252)[_0xe573('0x25')]()[_0xe573('0x26')](function(_0x361c4b){if(_0x361c4b[_0xe573('0x27')]){var _0xad306b=_[_0xe573('0x28')](_0x361c4b,function(_0x4c96c9){return _0x4c96c9['Email']===_0x592254;});if(_0xad306b){logger[_0xe573('0x1f')](_0xe573('0x29'),_0x592254);return BPromise[_0xe573('0x2a')]({'id':_0xad306b['Id'],'name':_0xad306b['Name']});}}else{logger[_0xe573('0x1f')](_0xe573('0x2b'),_0x592254);return _0x200a3d[_0xe573('0x2c')]()[_0xe573('0x26')](function(_0x50d6f0){return BPromise[_0xe573('0x2a')]({'id':_0x50d6f0[_0xe573('0x2d')],'name':_0x50d6f0['display_name']});});}});}else{logger[_0xe573('0x1f')](_0xe573('0x2b'),_0x592254);return _0x200a3d[_0xe573('0x2c')]()['then'](function(_0x3df370){return BPromise[_0xe573('0x2a')]({'id':_0x3df370[_0xe573('0x2d')],'name':_0x3df370['display_name']});});}}function getEndUser(_0xd2f08d,_0x2f4444,_0x1a8e3f,_0x5dbcbe,_0x40f51a){var _0x696d86={'$or':{'Phone':_0x5dbcbe}};var _0x17ef68={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0xe573('0x2a')]()[_0xe573('0x26')](function(){logger[_0xe573('0x1f')](_0xe573('0x2e'),_0x5dbcbe,_0x2f4444[_0xe573('0x2f')]);switch(_0x2f4444[_0xe573('0x2f')]){case _0xe573('0x30'):var _0xd3be90=_[_0xe573('0x31')](_0x696d86);if(_0x2f4444['additionalSearchContact']){var _0x3c5d48={};_0x3c5d48[_0x2f4444['additionalSearchContact']]=_0x5dbcbe;_['merge'](_0xd3be90[_0xe573('0x32')],_0x3c5d48);}return _0x40f51a[_0xe573('0x23')](_0xe573('0x33'))['find'](_0xd3be90,_0x17ef68)[_0xe573('0x25')]()[_0xe573('0x26')](function(_0x24bf4a){if(_0x24bf4a&&_0x24bf4a[_0xe573('0x27')]){return _0x24bf4a;}else{var _0x2c9d70=_[_0xe573('0x31')](_0x696d86);if(_0x2f4444[_0xe573('0x34')]){var _0x20bedc={};_0x20bedc[_0x2f4444[_0xe573('0x34')]]=_0x5dbcbe;_['merge'](_0x2c9d70[_0xe573('0x32')],_0x20bedc);}return _0x40f51a[_0xe573('0x23')](_0xe573('0x35'))[_0xe573('0x28')](_0x2c9d70,_0x17ef68);}});case _0xe573('0x36'):var _0x4c2ac5=_[_0xe573('0x31')](_0x696d86);if(_0x2f4444[_0xe573('0x37')]){var _0x3c5d48={};_0x3c5d48[_0x2f4444[_0xe573('0x37')]]=_0x5dbcbe;_[_0xe573('0x38')](_0x4c2ac5[_0xe573('0x32')],_0x3c5d48);}return _0x40f51a['sobject'](_0xe573('0x39'))[_0xe573('0x28')](_0x4c2ac5,_0x17ef68)['execute']()[_0xe573('0x26')](function(_0x17b58e){if(_0x17b58e&&_0x17b58e[_0xe573('0x27')]){return _0x17b58e;}else{var _0x50f442=_['cloneDeep'](_0x696d86);if(_0x2f4444[_0xe573('0x3a')]){var _0x3a83f0={};_0x3a83f0[_0x2f4444[_0xe573('0x3a')]]=_0x5dbcbe;_['merge'](_0x50f442[_0xe573('0x32')],_0x3a83f0);}return _0x40f51a[_0xe573('0x23')]('Contact')[_0xe573('0x28')](_0x50f442,_0x17ef68)[_0xe573('0x26')](function(_0x3c9f5b){if(_0x3c9f5b&&_0x3c9f5b[_0xe573('0x27')]){return _0x3c9f5b;}else{var _0x560b7f=_['cloneDeep'](_0x696d86);if(_0x2f4444[_0xe573('0x34')]){var _0x457896={};_0x457896[_0x2f4444['additionalSearchLead']]=_0x5dbcbe;_[_0xe573('0x38')](_0x560b7f[_0xe573('0x32')],_0x457896);}return _0x40f51a[_0xe573('0x23')](_0xe573('0x35'))[_0xe573('0x28')](_0x560b7f,_0x17ef68);}});}});case _0xe573('0x15'):var _0xd3be90=_[_0xe573('0x31')](_0x696d86);if(_0x2f4444['additionalSearchContact']){var _0x3c5d48={};_0x3c5d48[_0x2f4444[_0xe573('0x3a')]]=_0x5dbcbe;_['merge'](_0xd3be90['$or'],_0x3c5d48);}return _0x40f51a[_0xe573('0x23')]('Contact')[_0xe573('0x28')](_0xd3be90,_0x17ef68)[_0xe573('0x25')]();case'lead':var _0xb76374=_[_0xe573('0x31')](_0x696d86);if(_0x2f4444['additionalSearchLead']){var _0x3c5d48={};_0x3c5d48[_0x2f4444[_0xe573('0x34')]]=_0x5dbcbe;_['merge'](_0xb76374[_0xe573('0x32')],_0x3c5d48);}return _0x40f51a[_0xe573('0x23')](_0xe573('0x35'))[_0xe573('0x28')](_0xb76374,_0x17ef68);case _0xe573('0x19'):var _0x4c2ac5=_[_0xe573('0x31')](_0x696d86);if(_0x2f4444[_0xe573('0x37')]){var _0x3c5d48={};_0x3c5d48[_0x2f4444[_0xe573('0x37')]]=_0x5dbcbe;_[_0xe573('0x38')](_0x4c2ac5[_0xe573('0x32')],_0x3c5d48);}return _0x40f51a[_0xe573('0x23')](_0xe573('0x39'))['find'](_0x4c2ac5,_0x17ef68);default:return null;}})[_0xe573('0x26')](function(_0x568b8d){if(_0x568b8d&&_0x568b8d[_0xe573('0x27')]){var _0x392a6b=_[_0xe573('0x3b')](_0x568b8d);if(_0x392a6b){return BPromise[_0xe573('0x2a')]({'id':_0x392a6b['Id'],'name':_0x392a6b[_0xe573('0x3c')],'phone':_0x392a6b[_0xe573('0x3d')],'endUserType':_0x392a6b[_0xe573('0x3e')][_0xe573('0x3f')][_0xe573('0x40')]()});}}})[_0xe573('0x26')](function(_0x11007a){if(_0x11007a){logger[_0xe573('0x1f')](_0xe573('0x41'),_0x11007a[_0xe573('0x16')],_0x5dbcbe);return BPromise[_0xe573('0x2a')](_0x11007a);}else{logger[_0xe573('0x1f')]('Enduser\x20with\x20phone\x20%s\x20not\x20found',_0x5dbcbe);var _0x35e7c8={'Phone':_0x5dbcbe};if(_0x2f4444[_0xe573('0x42')]){if(_0x2f4444['moduleCreate']===_0xe573('0x15')){logger[_0xe573('0x1f')](_0xe573('0x43'),_0x5dbcbe,_0x2f4444[_0xe573('0x42')]);_0x35e7c8[_0xe573('0x44')]=_0x1a8e3f!==_0xe573('0x45')?_0x1a8e3f:util['format']('Caller\x20-\x20%s',_0x5dbcbe);}else if(_0x2f4444['moduleCreate']==='lead'){logger[_0xe573('0x1f')](_0xe573('0x43'),_0x5dbcbe,_0x2f4444[_0xe573('0x42')]);_0x35e7c8[_0xe573('0x44')]=_0x1a8e3f!==_0xe573('0x45')?_0x1a8e3f:util[_0xe573('0x46')](_0xe573('0x47'),_0x5dbcbe);_0x35e7c8[_0xe573('0x48')]='No\x20Company';}else if(_0x2f4444['moduleCreate']===_0xe573('0x19')){logger[_0xe573('0x1f')]('Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.',_0x5dbcbe,_0x2f4444[_0xe573('0x42')]);_0x35e7c8[_0xe573('0x3c')]=_0x1a8e3f!==_0xe573('0x45')?_0x1a8e3f:util[_0xe573('0x46')](_0xe573('0x47'),_0x5dbcbe);}else{return null;}}return _0x40f51a[_0xe573('0x23')](_[_0xe573('0x49')](_0x2f4444[_0xe573('0x42')]))[_0xe573('0x4a')](_0x35e7c8)[_0xe573('0x26')](function(_0x467171){return BPromise[_0xe573('0x2a')]({'id':_0x467171['id'],'endUserType':_0x2f4444[_0xe573('0x42')]});});}});}function getCustomFields(_0x5bd19b,_0x1fd613){var _0x1261b2={};if(_0x5bd19b[_0xe573('0x27')]>0x0){_[_0xe573('0x4b')](_0x5bd19b,function(_0x4a4b47){if(_[_0xe573('0x4c')]([_0xe573('0x4d'),_0xe573('0x4e')],_0x4a4b47['type'])&&_0x4a4b47['idField']){_0x1261b2[_0x4a4b47['idField']]=_0x4a4b47['content']['toString']();}else if(_0x4a4b47[_0xe573('0x3f')]===_0xe573('0x4f')&&_0x4a4b47['variableName']&&_0x4a4b47[_0xe573('0x50')]){_0x1fd613[_0x4a4b47[_0xe573('0x51')]]&&(_0x1261b2[_0x4a4b47[_0xe573('0x50')]]=_0x1fd613[_0x4a4b47[_0xe573('0x51')]][_0xe573('0x52')]());}else if(_0x4a4b47['type']===_0xe573('0x53')&&_0x4a4b47[_0xe573('0x54')]&&_0x4a4b47[_0xe573('0x54')][_0xe573('0x55')]&&_0x4a4b47[_0xe573('0x50')]){_0x1fd613[_0x4a4b47[_0xe573('0x54')][_0xe573('0x55')][_0xe573('0x40')]()]&&(_0x1261b2[_0x4a4b47[_0xe573('0x50')]]=_0x1fd613[_0x4a4b47['Variable'][_0xe573('0x55')][_0xe573('0x40')]()][_0xe573('0x52')]());}});}return _0x1261b2;}function getConnection(_0x3d9510){var _0x45bf66=_0x3d9510['password'][_0xe573('0x56')](_0x3d9510['securityToken']);var _0x2d1852=new jsforce['Connection']({'oauth2':{'loginUrl':_0x3d9510[_0xe573('0x57')]||_0xe573('0x58'),'clientId':_0x3d9510[_0xe573('0x59')],'clientSecret':_0x3d9510[_0xe573('0x5a')]}});return _0x2d1852[_0xe573('0x5b')](_0x3d9510['username'],_0x45bf66)['then'](function(){logger['info'](_0xe573('0x5c'));return _0x2d1852;});}exports['queue']=function(_0x2013da,_0x1bb7f7,_0x5c2561,_0xa9542c,_0xe635c,_0x5ea361){var _0x4c595a,_0x441b5e,_0x55f6d0,_0x2c525d;_0x5ea361[_0xe573('0x5d')]=intUtil[_0xe573('0x5e')](_0x5ea361['serverUrl']);_0x5ea361['remoteUri']=intUtil[_0xe573('0x5e')](_0x5ea361[_0xe573('0x57')]);if(_0xe635c&&_0xe635c[_0xe573('0x5f')]){logger[_0xe573('0x1f')]('[QUEUE]',_0xe573('0x60'));_0x1bb7f7[_0xe573('0x61')]=util[_0xe573('0x46')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x5ea361[_0xe573('0x5d')],_0x1bb7f7['uniqueid'],md5(_0x1bb7f7[_0xe573('0x62')]));}else{_0x1bb7f7[_0xe573('0x61')]='';}return getConnection(_0x5ea361)[_0xe573('0x26')](function(_0x1f3f93){_0x2c525d=_0x1f3f93;return getUser(_0x5ea361,_0xa9542c['email'],_0x2c525d);})[_0xe573('0x26')](function(_0x978b21){_0x4c595a=_0x978b21;return getEndUser(_0x5ea361,_0x5c2561,_0x1bb7f7['calleridname'],_0x1bb7f7[_0xe573('0x63')],_0x2c525d);})[_0xe573('0x26')](function(_0x3ba04d){_0x441b5e=_0x3ba04d;return getTicket(_0x5ea361,_0x4c595a,_0x441b5e,_0x5c2561,_0x1bb7f7,_0x5c2561['Fields'],_0x2c525d,_0xe573('0x64'));})[_0xe573('0x26')](function(_0x398d33){_0x55f6d0=_0x398d33;logger['info'](_0xe573('0x65'),_0x55f6d0['id']);logger[_0xe573('0x1f')](_0xe573('0x66'),_0x55f6d0['id'],_0xa9542c[_0xe573('0x55')],_0x5ea361['type']);switch(_0x5ea361['type']){case'integrationTab':emit(util[_0xe573('0x46')]('user:%s',_0xa9542c[_0xe573('0x55')]),_0xe573('0x67'),{'recordId':_0x55f6d0['id']});break;case'newTab':emit(util[_0xe573('0x46')](_0xe573('0x68'),_0xa9542c[_0xe573('0x55')]),_0xe573('0x69'),{'uri':util['format'](_0xe573('0x6a'),_0x2c525d[_0xe573('0x6b')],_0x55f6d0['id'])});break;default:logger[_0xe573('0x6c')](_0xe573('0x6d'));}})['catch'](function(_0x4b01ce){logger[_0xe573('0x6c')](_0xe573('0x6e'),_0x4b01ce);});};exports[_0xe573('0x6f')]=function(_0x151bb0,_0x4a9076,_0x57229c,_0x306d57,_0x21f752,_0x505ff0,_0x2b3eaa){var _0x4ff6cf,_0x24156d,_0x282d81,_0x3cff70;_0x505ff0['serverUrl']=intUtil['stripTrailingSlash'](_0x505ff0['serverUrl']);_0x505ff0[_0xe573('0x57')]=intUtil[_0xe573('0x5e')](_0x505ff0['remoteUri']);if(_0x2b3eaa&&_0x2b3eaa['recordingFormat']&&_0x2b3eaa[_0xe573('0x70')]!=='none'){logger[_0xe573('0x1f')](_0xe573('0x71'),_0xe573('0x60'));_0x4a9076[_0xe573('0x61')]=util[_0xe573('0x46')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x505ff0[_0xe573('0x5d')],_0x4a9076[_0xe573('0x62')],md5(_0x4a9076['uniqueid']));}return getConnection(_0x505ff0)[_0xe573('0x26')](function(_0x47fa1d){_0x3cff70=_0x47fa1d;return getUser(_0x505ff0,_0x306d57[_0xe573('0x72')],_0x3cff70);})['then'](function(_0x268dc8){_0x4ff6cf=_0x268dc8;return getEndUser(_0x505ff0,_0x57229c,_0x4a9076[_0xe573('0x73')],_0x4a9076[_0xe573('0x74')],_0x3cff70);})[_0xe573('0x26')](function(_0x2409eb){_0x24156d=_0x2409eb;return getTicket(_0x505ff0,_0x4ff6cf,_0x24156d,_0x57229c,_0x4a9076,_0x57229c[_0xe573('0x75')],_0x3cff70,_0xe573('0x6f'));})[_0xe573('0x26')](function(_0x445afa){_0x282d81=_0x445afa;logger['info'](_0xe573('0x76'),_0x282d81['id']);logger[_0xe573('0x1f')]('[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.',_0x282d81['id'],_0x306d57['name'],_0x505ff0[_0xe573('0x3f')]);switch(_0x505ff0[_0xe573('0x3f')]){case _0xe573('0x77'):emit(util['format'](_0xe573('0x68'),_0x306d57[_0xe573('0x55')]),'trigger:salesforce:display',{'recordId':_0x282d81['id']});break;case'newTab':emit(util[_0xe573('0x46')](_0xe573('0x68'),_0x306d57[_0xe573('0x55')]),_0xe573('0x69'),{'uri':util[_0xe573('0x46')](_0xe573('0x6a'),_0x3cff70['instanceUrl'],_0x282d81['id'])});break;default:logger[_0xe573('0x6c')](_0xe573('0x71'),_0xe573('0x78'));}})[_0xe573('0x79')](function(_0x180096){logger[_0xe573('0x6c')](_0xe573('0x71'),_0x180096);});};exports['unmanaged']=function(_0x3bf3b1,_0x52d701,_0x2cd2f6,_0x2b4a5e,_0x45e1f3,_0x506d6b){var _0x5a3039,_0x35b618,_0x44d582,_0x45df88;_0x506d6b[_0xe573('0x5d')]=intUtil['stripTrailingSlash'](_0x506d6b[_0xe573('0x5d')]);_0x506d6b[_0xe573('0x57')]=intUtil[_0xe573('0x5e')](_0x506d6b[_0xe573('0x57')]);if(_0x45e1f3&&_0x45e1f3['monitor_format']){logger[_0xe573('0x1f')]('['+_0x52d701[_0xe573('0x7a')][_0xe573('0x7b')]()+']','Recording\x20is\x20enabled!');_0x52d701[_0xe573('0x61')]=util[_0xe573('0x46')](_0xe573('0x7c'),_0x506d6b[_0xe573('0x5d')],_0x52d701[_0xe573('0x62')],md5(_0x52d701[_0xe573('0x62')]));}else{_0x52d701['recordingURL']='';}return getConnection(_0x506d6b)[_0xe573('0x26')](function(_0x5475ca){_0x45df88=_0x5475ca;if(!_[_0xe573('0x21')](_0x2b4a5e)){return getUser(_0x506d6b,_0x2b4a5e['name'],_0x45df88);}else{return getUser(_0x506d6b,null,_0x45df88);}})[_0xe573('0x26')](function(_0x2c7504){_0x5a3039=_0x2c7504;return getEndUser(_0x506d6b,_0x2cd2f6,_0x52d701['calleridname'],_0x52d701[_0xe573('0x63')],_0x45df88);})[_0xe573('0x26')](function(_0x58e62c){_0x35b618=_0x58e62c;return getTicket(_0x506d6b,_0x5a3039,_0x35b618,_0x2cd2f6,_0x52d701,_0x2cd2f6[_0xe573('0x75')],_0x45df88);})[_0xe573('0x26')](function(_0xee8ece){_0x44d582=_0xee8ece;logger[_0xe573('0x1f')]('['+_0x52d701[_0xe573('0x7a')]['toUpperCase']()+_0xe573('0x7d'),_0x44d582['id']);logger[_0xe573('0x1f')]('['+_0x52d701['lastevent'][_0xe573('0x7b')]()+_0xe573('0x7e'),_0x506d6b[_0xe573('0x3f')]);})[_0xe573('0x79')](function(_0x16043a){logger[_0xe573('0x6c')]('['+_0x52d701[_0xe573('0x7a')][_0xe573('0x7b')]()+']',_0x16043a);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a71=[']\x20Error\x20running\x20ServiceNow\x20integration','inspect','lodash','bluebird','request-promise','util','md5','ioredis','./util','../../../../config/environment','../../../../config/logger','servicenow','redis','defaults','localhost','socket.io-emitter','GET','sys_user?sysparm_query=user_name%3Dadmin','then','length','adminId','result','sys_id','toUpperCase','],\x20getAdminUser\x20crm','catch','error','message','],\x20getUser\x20input\x20crm','validateEmail','sys_user?sysparm_query=email%3D','userEmail','],\x20getUser\x20rp\x20obj','true','userId','adminEmail','info','],\x20getUser\x20crm',']\x20using\x20admin\x20profile','],\x20createEndUser\x20input\x20crm','POST','endUserNumber','user','System','],\x20EndUser\x20schema','endUserId','sys_user?sysparm_query=phone%3D','],\x20getEndUser\x20crm','includes','picklist','nameField','customField','string','type','idField','toLowerCase','toString','variable','variableName','Variable','name',']\x20getTicket\x20input\x20crm','outbound','incident','assign','getString','Subjects','Fields','ticketId','ticketNumber','number',']\x20getTicket\x20crm','label','?sysparm_query=name%3D','Incident','push','all','map','%26sysparm_record_target%3Dincident','%26sysparm_record_row%3D1%26sysparm_record_rows%3D39','%255EORDERBYDESCnumber','format','user:%s','emit','trigger:browser:url','username','password','sysparm_limit=1','stripTrailingSlash','remoteUri','serverUrl','%s/api/now/table/','isNil','email','calleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingFormat','none','[OUTBOUND]','recordingURL','The\x20ticket\x20ID\x20is:\x20%s','call\x20direction:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...'];(function(_0x40a08d,_0x42f15e){var _0x45d7fc=function(_0x5af2d5){while(--_0x5af2d5){_0x40a08d['push'](_0x40a08d['shift']());}};_0x45d7fc(++_0x42f15e);}(_0x2a71,0xdc));var _0x12a7=function(_0x22fb75,_0x14674b){_0x22fb75=_0x22fb75-0x0;var _0x4572e8=_0x2a71[_0x22fb75];return _0x4572e8;};'use strict';var _=require(_0x12a7('0x0'));var Promise=require(_0x12a7('0x1'));var rp=require(_0x12a7('0x2'));var util=require(_0x12a7('0x3'));var md5=require(_0x12a7('0x4'));var Redis=require(_0x12a7('0x5'));var intUtil=require(_0x12a7('0x6'));var config=require(_0x12a7('0x7'));var logger=require(_0x12a7('0x8'))(_0x12a7('0x9'));config[_0x12a7('0xa')]=_[_0x12a7('0xb')](config[_0x12a7('0xa')],{'host':_0x12a7('0xc'),'port':0x18eb});var io=require(_0x12a7('0xd'))(new Redis(config[_0x12a7('0xa')]));function getAdminUser(_0x4d70a1,_0x2ad3d2,_0x2c790b,_0x557fa5,_0x167bbb,_0x283c88){return new Promise(function(_0x459f35,_0xe34255){var _0x450d01={'method':_0x12a7('0xe'),'uri':_0x557fa5+_0x12a7('0xf')+'&'+_0x167bbb+'&'+_0x283c88,'auth':_0x2ad3d2,'json':!![]};return rp(_0x450d01)[_0x12a7('0x10')](function(_0xa1cba7){if(_0xa1cba7['result'][_0x12a7('0x11')]>0x0){_0x2c790b[_0x12a7('0x12')]=_0xa1cba7[_0x12a7('0x13')][0x0][_0x12a7('0x14')];}logger['info']('['+[_0x4d70a1[_0x12a7('0x15')]()]+_0x12a7('0x16'),_0x2c790b);_0x459f35(_0x2c790b);})[_0x12a7('0x17')](function(_0x25fc36){logger[_0x12a7('0x18')]('['+[_0x4d70a1[_0x12a7('0x15')]()]+']',_0x25fc36[_0x12a7('0x19')]);_0xe34255(_0x25fc36[_0x12a7('0x19')]);});});}function getUser(_0x5ba3b7,_0x41cc2c,_0xbb58a5,_0x16bbb9,_0x1ccb3f){return function(_0x377ad2){logger['info']('['+[_0x5ba3b7[_0x12a7('0x15')]()]+_0x12a7('0x1a'),_0x377ad2);return new Promise(function(_0x50d39c,_0x4668b7){if(intUtil[_0x12a7('0x1b')](_0x377ad2['userEmail'])){var _0x1b0aab={'method':_0x12a7('0xe'),'uri':_0xbb58a5+_0x12a7('0x1c')+_0x377ad2[_0x12a7('0x1d')]+'&'+_0x16bbb9+'&'+_0x1ccb3f,'auth':_0x41cc2c,'json':!![]};logger['info']('['+[_0x5ba3b7['toUpperCase']()]+_0x12a7('0x1e'),_0x1b0aab);return rp(_0x1b0aab)['then'](function(_0x4b667a){logger['info']('['+[_0x5ba3b7[_0x12a7('0x15')]()]+'],\x20getUser\x20entity',_0x4b667a);if(_0x4b667a['result']['length']>0x0&&String(_0x4b667a[_0x12a7('0x13')][0x0]['active'])===_0x12a7('0x1f')){_0x377ad2[_0x12a7('0x20')]=_0x4b667a[_0x12a7('0x13')][0x0][_0x12a7('0x14')];}else{_0x377ad2[_0x12a7('0x20')]=_0x377ad2[_0x12a7('0x12')];_0x377ad2[_0x12a7('0x1d')]=_0x377ad2[_0x12a7('0x21')];}logger[_0x12a7('0x22')]('['+[_0x5ba3b7[_0x12a7('0x15')]()]+_0x12a7('0x23'),_0x377ad2);_0x50d39c(_0x377ad2);})[_0x12a7('0x17')](function(_0x215627){logger[_0x12a7('0x18')]('['+[_0x5ba3b7[_0x12a7('0x15')]()]+']',_0x215627[_0x12a7('0x19')]);_0x4668b7(_0x215627[_0x12a7('0x19')]);});}else{logger[_0x12a7('0x22')]('['+[_0x5ba3b7['toUpperCase']()]+_0x12a7('0x24'));_0x377ad2[_0x12a7('0x20')]=_0x377ad2[_0x12a7('0x12')];_0x377ad2[_0x12a7('0x1d')]=_0x377ad2[_0x12a7('0x21')];_0x50d39c(_0x377ad2);}});};}function createEndUser(_0x203f38,_0x5bc004,_0x1d09fd,_0xa96ac0,_0x19bedc){logger[_0x12a7('0x22')]('['+[_0x203f38[_0x12a7('0x15')]()]+_0x12a7('0x25'),_0x1d09fd);return new Promise(function(_0x33e500,_0x5a95ab){var _0x40c6b9={'method':_0x12a7('0x26'),'uri':_0xa96ac0+'sys_user?'+_0x19bedc,'body':{'user_name':_0x1d09fd[_0x12a7('0x27')],'roles':_0x12a7('0x28'),'first_name':_0x1d09fd[_0x12a7('0x27')],'active':_0x12a7('0x1f'),'date_format':_0x12a7('0x29'),'phone':_0x1d09fd[_0x12a7('0x27')]},'auth':_0x5bc004,'json':!![]};return rp(_0x40c6b9)['then'](function(_0x232c11){logger['info']('['+[_0x203f38['toUpperCase']()]+_0x12a7('0x2a'),_0x232c11['result']);_0x1d09fd[_0x12a7('0x2b')]=_0x232c11['result'][_0x12a7('0x14')];_0x33e500(_0x1d09fd);})[_0x12a7('0x17')](function(_0x2cdba7){logger[_0x12a7('0x18')]('['+[_0x203f38[_0x12a7('0x15')]()]+']',_0x2cdba7['message']);_0x5a95ab(_0x2cdba7[_0x12a7('0x19')]);});});}function getEndUser(_0x15f14a,_0x28823b,_0x26fea3,_0x3d1a33,_0x2a6a5e){return function(_0x46b78f){logger['info']('['+[_0x15f14a[_0x12a7('0x15')]()]+'],\x20getEndUser\x20input\x20crm',_0x46b78f);return new Promise(function(_0x536cca,_0x192289){var _0x4359b5={'method':_0x12a7('0xe'),'uri':_0x26fea3+_0x12a7('0x2c')+_0x46b78f['endUserNumber']+'&'+_0x3d1a33+'&'+_0x2a6a5e,'auth':_0x28823b,'json':!![]};return rp(_0x4359b5)[_0x12a7('0x10')](function(_0x4fd130){if(_0x4fd130['result'][_0x12a7('0x11')]>0x0){_0x46b78f[_0x12a7('0x2b')]=_0x4fd130[_0x12a7('0x13')][0x0][_0x12a7('0x14')];logger[_0x12a7('0x22')]('['+[_0x15f14a[_0x12a7('0x15')]()]+_0x12a7('0x2d'),_0x46b78f);_0x536cca(_0x46b78f);}else{return createEndUser(_0x15f14a,_0x28823b,_0x46b78f,_0x26fea3,_0x3d1a33)[_0x12a7('0x10')](function(_0x138489){logger[_0x12a7('0x22')]('['+[_0x15f14a[_0x12a7('0x15')]()]+'],\x20createEndUser\x20crm',_0x138489);_0x536cca(_0x138489);});}})[_0x12a7('0x17')](function(_0x30fd13){logger[_0x12a7('0x18')]('['+[_0x15f14a[_0x12a7('0x15')]()]+']',_0x30fd13[_0x12a7('0x19')]);_0x192289(_0x30fd13['message']);});});};}function getCustomFields(_0x1c567e,_0x430061){var _0x5486eb={};if(_0x1c567e[_0x12a7('0x11')]>0x0){_['forEach'](_0x1c567e,function(_0xeb2422){if(_[_0x12a7('0x2e')](['string',_0x12a7('0x2f')],_0xeb2422['type'])&&_0xeb2422[_0x12a7('0x30')]&&!_0xeb2422[_0x12a7('0x31')]){_0x5486eb[_0xeb2422[_0x12a7('0x30')]['toLowerCase']()]=_0xeb2422['content']['toString']();}else if(_['includes']([_0x12a7('0x32'),_0x12a7('0x2f')],_0xeb2422[_0x12a7('0x33')])&&_0xeb2422[_0x12a7('0x34')]&&_0xeb2422[_0x12a7('0x31')]){_0x5486eb[_0xeb2422['idField'][_0x12a7('0x35')]()]=_0xeb2422['content'][_0x12a7('0x36')]();}else if(_0xeb2422[_0x12a7('0x33')]===_0x12a7('0x37')&&_0xeb2422['variableName']&&_0xeb2422[_0x12a7('0x34')]&&_0xeb2422['customField']){_0x5486eb[_0xeb2422[_0x12a7('0x34')]['toLowerCase']()]=_0x430061[_0xeb2422[_0x12a7('0x38')]][_0x12a7('0x36')]();}else if(_0xeb2422[_0x12a7('0x33')]==='customVariable'&&_0xeb2422[_0x12a7('0x39')]&&_0xeb2422[_0x12a7('0x39')][_0x12a7('0x3a')]&&_0xeb2422[_0x12a7('0x34')]&&_0xeb2422['customField']){_0x5486eb[_0xeb2422['idField']['toLowerCase']()]=_0x430061[_0xeb2422['Variable'][_0x12a7('0x3a')][_0x12a7('0x35')]()][_0x12a7('0x36')]();}});}return _0x5486eb;}function getTicket(_0x5055dc,_0x155fe4,_0x264135,_0x24c999,_0x2d5b14,_0x4512d9){return function(_0x1c56a3){logger['info']('['+[_0x5055dc[_0x12a7('0x15')]()]+_0x12a7('0x3b'),_0x1c56a3);return new Promise(function(_0x1cbcbe,_0x5c3635){var _0x47cd1d=_0x5055dc[_0x12a7('0x35')]()===_0x12a7('0x3c')?_0x1c56a3[_0x12a7('0x20')]:_0x1c56a3[_0x12a7('0x2b')];var _0x3fef79={'method':_0x12a7('0x26'),'uri':_0x264135+_0x12a7('0x3d')+'?'+_0x4512d9,'body':Object[_0x12a7('0x3e')]({},{'active':_0x12a7('0x1f'),'caller_id':_0x47cd1d,'assigned_to':_0x1c56a3[_0x12a7('0x20')],'short_description':intUtil[_0x12a7('0x3f')](_0x24c999[_0x12a7('0x40')],_0x2d5b14,'\x20'),'description':intUtil[_0x12a7('0x3f')](_0x24c999['Descriptions'],_0x2d5b14,'\x0a')},getCustomFields(_0x24c999[_0x12a7('0x41')],_0x2d5b14)),'auth':_0x155fe4,'json':!![]};return rp(_0x3fef79)[_0x12a7('0x10')](function(_0x17e1d5){logger[_0x12a7('0x22')]('['+[_0x5055dc[_0x12a7('0x15')]()]+']\x20POST\x20incident\x20entity\x20schema',_0x17e1d5[_0x12a7('0x13')]);_0x1c56a3[_0x12a7('0x42')]=_0x17e1d5['result']['sys_id'];_0x1c56a3[_0x12a7('0x43')]=_0x17e1d5[_0x12a7('0x13')][_0x12a7('0x44')];logger[_0x12a7('0x22')]('['+[_0x5055dc[_0x12a7('0x15')]()]+_0x12a7('0x45'),_0x1c56a3);_0x1cbcbe(_0x1c56a3);})[_0x12a7('0x17')](function(_0x1da064){logger['error']('['+[_0x5055dc[_0x12a7('0x15')]()]+']',_0x1da064[_0x12a7('0x19')]);_0x5c3635(_0x1da064[_0x12a7('0x19')]);});});};}function createRemoteTag(_0x1a6d63,_0x12764e,_0x5e5345,_0x108a4d){return new Promise(function(_0x52445b,_0x5c50f6){var _0x3e6631={'method':_0x12a7('0x26'),'uri':_0x5e5345+_0x12a7('0x46')+'?'+_0x108a4d,'body':{'short_description':_0x1a6d63,'global':!![],'active':!![],'name':_0x1a6d63},'auth':_0x12764e,'json':!![]};return rp(_0x3e6631)['then'](function(_0x3a1550){var _0xc1595b=_0x3a1550[_0x12a7('0x13')][_0x12a7('0x14')];_0x52445b(_0xc1595b);});});}function getRemoteTag(_0x176fb3,_0x3ce198,_0x5c87bb,_0x13bce2,_0x4a3c24){return new Promise(function(_0x5aa245,_0x116896){var _0x246f13={'method':_0x12a7('0xe'),'uri':_0x5c87bb+'label'+_0x12a7('0x47')+_0x176fb3+'&'+_0x13bce2,'auth':_0x3ce198,'json':!![]};return rp(_0x246f13)[_0x12a7('0x10')](function(_0x419681){if(_0x419681[_0x12a7('0x13')][_0x12a7('0x11')]>0x0){var _0x5ae243=_0x419681[_0x12a7('0x13')][0x0][_0x12a7('0x14')];_0x5aa245(_0x5ae243);}else{return createRemoteTag(_0x176fb3,_0x3ce198,_0x5c87bb,_0x13bce2)['then'](function(_0x245c81){_0x5aa245(_0x245c81);});}});});}function assignTagToIncident(_0x23ec93,_0x38dbbb,_0x4b00ff,_0x3e2c91,_0x3ec356){return new Promise(function(_0x16e156,_0xd93fce){var _0xcec8ec={'method':_0x12a7('0x26'),'uri':_0x4b00ff+'label_entry'+'?'+_0x3ec356,'body':{'label':_0x23ec93,'table':_0x12a7('0x3d'),'id_type':_0x12a7('0x48'),'table_key':_0x3e2c91[_0x12a7('0x42')],'title':'Incident\x20-\x20'+_0x3e2c91[_0x12a7('0x43')],'id_display':_0x3e2c91[_0x12a7('0x43')]},'auth':_0x38dbbb,'json':!![]};return rp(_0xcec8ec)[_0x12a7('0x10')](function(_0x45895c){_0x16e156();})[_0x12a7('0x17')](function(){_0x16e156();});});}function manageTags(_0x4ca8c1,_0x53bf18,_0x490084,_0x2d9bf1,_0x4dba4a,_0x2897c1,_0x4f8c0a){return new Promise(function(_0x214251,_0x2064ec){var _0x31163e=[];_0x53bf18['forEach'](function(_0x2b5dd4){_0x31163e[_0x12a7('0x49')](getRemoteTag(_0x2b5dd4,_0x490084,_0x2d9bf1,_0x2897c1,_0x4f8c0a));});return Promise[_0x12a7('0x4a')](_0x31163e)[_0x12a7('0x10')](function(_0x8578f5){if(_0x8578f5[_0x12a7('0x11')]){logger[_0x12a7('0x22')]('['+[_0x4ca8c1[_0x12a7('0x15')]()]+']\x20arrayPromises:\x20IDs\x20in\x20table\x20label',_0x8578f5);var _0x466702=[];_0x8578f5['forEach'](function(_0x209db3){_0x466702['push'](assignTagToIncident(_0x209db3,_0x490084,_0x2d9bf1,_0x4dba4a,_0x2897c1));});return Promise[_0x12a7('0x4a')](_0x466702)[_0x12a7('0x10')](function(){_0x214251();})['catch'](function(){_0x214251();});}else{_0x214251();}});});}function getTags(_0x3f459e,_0x38a4b2,_0x21effd,_0xb37891,_0x5efff2,_0xb37eab){return function(_0x911a25){return new Promise(function(_0x14cca5,_0x21a177){var _0x28b1d0=[];var _0x2eecf4=_0xb37891['Tags'];if(_0x2eecf4&&_0x2eecf4[_0x12a7('0x11')]>0x0){_0x28b1d0=_[_0x12a7('0x4b')](_0x2eecf4,_0x12a7('0x3a'));}if(_0x28b1d0[_0x12a7('0x11')]>0x0){return manageTags(_0x3f459e,_0x28b1d0,_0x38a4b2,_0x21effd,_0x911a25,_0x5efff2,_0xb37eab)[_0x12a7('0x10')](function(){_0x14cca5(_0x911a25);});}else{_0x14cca5(_0x911a25);}});};}function emit(_0x506739,_0x4cfde0,_0x576ebf){var _0x293b80=_0x12a7('0x4c')+_0x12a7('0x4d')+'%26sysparm_record_list%3Dactive%253Dtrue'+_0x12a7('0x4e');var _0x5d8a37={'uri':_0x506739+'/nav_to.do?uri=incident.do?sys_id%3D'+_0x576ebf+_0x293b80};io['to'](util[_0x12a7('0x4f')](_0x12a7('0x50'),_0x4cfde0))[_0x12a7('0x51')](_0x12a7('0x52'),_0x5d8a37);}exports['cs']=function(_0x2b2bec,_0x2f18be,_0x54d743,_0x4daf33,_0x524c8c,_0x1fce44,_0x2b1836,_0x394dff){var _0x47a6ec={};var _0x19b2a4={'user':_0x1fce44[_0x12a7('0x53')],'pass':_0x1fce44[_0x12a7('0x54')]};var _0x2e13e8=_0x12a7('0x55');var _0x4807f9='sysparm_display_value=true';_0x1fce44['remoteUri']=intUtil[_0x12a7('0x56')](_0x1fce44[_0x12a7('0x57')]);_0x1fce44[_0x12a7('0x58')]=intUtil[_0x12a7('0x56')](_0x1fce44[_0x12a7('0x58')]);var _0x39c576=util[_0x12a7('0x4f')](_0x12a7('0x59'),_0x1fce44[_0x12a7('0x57')]);_0x47a6ec['userEmail']=!_[_0x12a7('0x5a')](_0x4daf33)?_0x4daf33['email']:null;_0x47a6ec[_0x12a7('0x21')]=_0x1fce44[_0x12a7('0x5b')];_0x47a6ec['endUserNumber']=_0x394dff['toLowerCase']()===_0x12a7('0x3c')?_0x2f18be['destcalleridnum']:_0x2f18be[_0x12a7('0x5c')];_0x47a6ec[_0x12a7('0x5d')]=_0x394dff===_0x12a7('0x5e')||_0x394dff===_0x12a7('0x5f')?'queue':'outbound';var _0x501ead=util[_0x12a7('0x4f')](_0x12a7('0x60'),_0x1fce44[_0x12a7('0x58')],_0x2f18be['uniqueid'],md5(_0x2f18be[_0x12a7('0x61')]));if(_0x524c8c&&_0x524c8c['monitor_format']){logger[_0x12a7('0x22')](_0x12a7('0x62'),_0x12a7('0x63'));_0x2f18be['recordingURL']=_0x501ead;}else if(_0x2b1836&&_0x2b1836['recordingFormat']&&_0x2b1836[_0x12a7('0x64')]!==_0x12a7('0x65')){logger[_0x12a7('0x22')](_0x12a7('0x66'),'Recording\x20is\x20enabled!');_0x2f18be[_0x12a7('0x67')]=_0x501ead;}else{_0x2f18be[_0x12a7('0x67')]='';}return getAdminUser(_0x394dff,_0x19b2a4,_0x47a6ec,_0x39c576,_0x4807f9,_0x2e13e8)['then'](getUser(_0x394dff,_0x19b2a4,_0x39c576,_0x4807f9,_0x2e13e8))[_0x12a7('0x10')](getEndUser(_0x394dff,_0x19b2a4,_0x39c576,_0x4807f9,_0x2e13e8))[_0x12a7('0x10')](getTicket(_0x394dff,_0x19b2a4,_0x39c576,_0x54d743,_0x2f18be,_0x4807f9))['then'](function(_0x20bec3){logger[_0x12a7('0x22')](util[_0x12a7('0x4f')](_0x12a7('0x68'),_0x20bec3[_0x12a7('0x42')]));logger[_0x12a7('0x22')](util[_0x12a7('0x4f')](_0x12a7('0x69'),_0x394dff));if(_0x394dff!==_0x12a7('0x5f')){logger[_0x12a7('0x22')]('['+[_0x394dff[_0x12a7('0x15')]()]+']',_0x12a7('0x6a'));emit(_0x1fce44[_0x12a7('0x57')],_0x4daf33['name'],_0x20bec3['ticketId']);}})[_0x12a7('0x17')](function(_0x5ca59a){logger['error']('['+[_0x394dff['toUpperCase']()]+_0x12a7('0x6b'),util[_0x12a7('0x6c')](_0x5ca59a,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x840a=['GET','then','result','length','adminId','sys_id','info','],\x20getAdminUser\x20crm','catch','error','toUpperCase','message','],\x20getUser\x20input\x20crm','validateEmail','sys_user?sysparm_query=email%3D','],\x20getUser\x20rp\x20obj','active','userEmail','adminEmail','],\x20getUser\x20crm','],\x20createEndUser\x20input\x20crm','sys_user?','endUserNumber','user','true','],\x20EndUser\x20schema','endUserId','],\x20getEndUser\x20input\x20crm','],\x20getEndUser\x20crm','forEach','string','picklist','type','nameField','toLowerCase','content','toString','includes','idField','customField','variableName','customVariable','Variable','name',']\x20getTicket\x20input\x20crm','outbound','userId','incident','assign','Subjects','Descriptions','Fields',']\x20POST\x20incident\x20entity\x20schema','ticketId','ticketNumber','number','POST','label','?sysparm_query=name%3D','label_entry','Incident','Incident\x20-\x20','all',']\x20arrayPromises:\x20IDs\x20in\x20table\x20label','push','Tags','map','%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','user:%s','emit','trigger:browser:url','sysparm_display_value=true','remoteUri','stripTrailingSlash','serverUrl','%s/api/now/table/','isNil','email','destcalleridnum','calleridnum','callDirection','unmanaged','queue','monitor_format','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','call\x20direction:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20ServiceNow\x20integration','inspect','lodash','bluebird','request-promise','md5','ioredis','../../../../config/environment','../../../../config/logger','servicenow','defaults','redis','localhost','socket.io-emitter'];(function(_0x2235bf,_0x3a06a7){var _0x4c3a64=function(_0x3b3bb6){while(--_0x3b3bb6){_0x2235bf['push'](_0x2235bf['shift']());}};_0x4c3a64(++_0x3a06a7);}(_0x840a,0x141));var _0xa840=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x840a[_0x2641f9];return _0x585741;};'use strict';var _=require(_0xa840('0x0'));var Promise=require(_0xa840('0x1'));var rp=require(_0xa840('0x2'));var util=require('util');var md5=require(_0xa840('0x3'));var Redis=require(_0xa840('0x4'));var intUtil=require('./util');var config=require(_0xa840('0x5'));var logger=require(_0xa840('0x6'))(_0xa840('0x7'));config['redis']=_[_0xa840('0x8')](config[_0xa840('0x9')],{'host':_0xa840('0xa'),'port':0x18eb});var io=require(_0xa840('0xb'))(new Redis(config[_0xa840('0x9')]));function getAdminUser(_0x44d9c6,_0x4d4ae6,_0x2e226d,_0x59a39,_0x1f2686,_0x401c7e){return new Promise(function(_0x548c08,_0x24b623){var _0x35c47a={'method':_0xa840('0xc'),'uri':_0x59a39+'sys_user?sysparm_query=user_name%3Dadmin'+'&'+_0x1f2686+'&'+_0x401c7e,'auth':_0x4d4ae6,'json':!![]};return rp(_0x35c47a)[_0xa840('0xd')](function(_0x4a2dc6){if(_0x4a2dc6[_0xa840('0xe')][_0xa840('0xf')]>0x0){_0x2e226d[_0xa840('0x10')]=_0x4a2dc6[_0xa840('0xe')][0x0][_0xa840('0x11')];}logger[_0xa840('0x12')]('['+[_0x44d9c6['toUpperCase']()]+_0xa840('0x13'),_0x2e226d);_0x548c08(_0x2e226d);})[_0xa840('0x14')](function(_0x316360){logger[_0xa840('0x15')]('['+[_0x44d9c6[_0xa840('0x16')]()]+']',_0x316360[_0xa840('0x17')]);_0x24b623(_0x316360['message']);});});}function getUser(_0x4dc5d1,_0x9c0958,_0x18cbea,_0x2c3162,_0x37d154){return function(_0x240ae8){logger[_0xa840('0x12')]('['+[_0x4dc5d1[_0xa840('0x16')]()]+_0xa840('0x18'),_0x240ae8);return new Promise(function(_0x5cf7ba,_0x4fe490){if(intUtil[_0xa840('0x19')](_0x240ae8['userEmail'])){var _0xa7594e={'method':_0xa840('0xc'),'uri':_0x18cbea+_0xa840('0x1a')+_0x240ae8['userEmail']+'&'+_0x2c3162+'&'+_0x37d154,'auth':_0x9c0958,'json':!![]};logger[_0xa840('0x12')]('['+[_0x4dc5d1['toUpperCase']()]+_0xa840('0x1b'),_0xa7594e);return rp(_0xa7594e)[_0xa840('0xd')](function(_0x4c0717){logger[_0xa840('0x12')]('['+[_0x4dc5d1[_0xa840('0x16')]()]+'],\x20getUser\x20entity',_0x4c0717);if(_0x4c0717[_0xa840('0xe')][_0xa840('0xf')]>0x0&&String(_0x4c0717[_0xa840('0xe')][0x0][_0xa840('0x1c')])==='true'){_0x240ae8['userId']=_0x4c0717['result'][0x0]['sys_id'];}else{_0x240ae8['userId']=_0x240ae8[_0xa840('0x10')];_0x240ae8[_0xa840('0x1d')]=_0x240ae8[_0xa840('0x1e')];}logger['info']('['+[_0x4dc5d1['toUpperCase']()]+_0xa840('0x1f'),_0x240ae8);_0x5cf7ba(_0x240ae8);})[_0xa840('0x14')](function(_0x22339e){logger['error']('['+[_0x4dc5d1[_0xa840('0x16')]()]+']',_0x22339e[_0xa840('0x17')]);_0x4fe490(_0x22339e['message']);});}else{logger[_0xa840('0x12')]('['+[_0x4dc5d1['toUpperCase']()]+']\x20using\x20admin\x20profile');_0x240ae8['userId']=_0x240ae8[_0xa840('0x10')];_0x240ae8[_0xa840('0x1d')]=_0x240ae8[_0xa840('0x1e')];_0x5cf7ba(_0x240ae8);}});};}function createEndUser(_0x157de0,_0x3c7dc3,_0xd534d8,_0x5dadf8,_0x15c419){logger[_0xa840('0x12')]('['+[_0x157de0[_0xa840('0x16')]()]+_0xa840('0x20'),_0xd534d8);return new Promise(function(_0x51a6e7,_0x2ed02b){var _0x1e96bc={'method':'POST','uri':_0x5dadf8+_0xa840('0x21')+_0x15c419,'body':{'user_name':_0xd534d8[_0xa840('0x22')],'roles':_0xa840('0x23'),'first_name':_0xd534d8[_0xa840('0x22')],'active':_0xa840('0x24'),'date_format':'System','phone':_0xd534d8[_0xa840('0x22')]},'auth':_0x3c7dc3,'json':!![]};return rp(_0x1e96bc)[_0xa840('0xd')](function(_0x41dd80){logger[_0xa840('0x12')]('['+[_0x157de0[_0xa840('0x16')]()]+_0xa840('0x25'),_0x41dd80['result']);_0xd534d8[_0xa840('0x26')]=_0x41dd80['result'][_0xa840('0x11')];_0x51a6e7(_0xd534d8);})[_0xa840('0x14')](function(_0x82d399){logger['error']('['+[_0x157de0[_0xa840('0x16')]()]+']',_0x82d399[_0xa840('0x17')]);_0x2ed02b(_0x82d399[_0xa840('0x17')]);});});}function getEndUser(_0x3f06be,_0x193912,_0x4ba3f5,_0x642ae3,_0x1f99f2){return function(_0x5282e3){logger[_0xa840('0x12')]('['+[_0x3f06be['toUpperCase']()]+_0xa840('0x27'),_0x5282e3);return new Promise(function(_0x1eed73,_0x40c612){var _0x5e5448={'method':_0xa840('0xc'),'uri':_0x4ba3f5+'sys_user?sysparm_query=phone%3D'+_0x5282e3[_0xa840('0x22')]+'&'+_0x642ae3+'&'+_0x1f99f2,'auth':_0x193912,'json':!![]};return rp(_0x5e5448)[_0xa840('0xd')](function(_0x3c702b){if(_0x3c702b[_0xa840('0xe')][_0xa840('0xf')]>0x0){_0x5282e3['endUserId']=_0x3c702b['result'][0x0][_0xa840('0x11')];logger[_0xa840('0x12')]('['+[_0x3f06be[_0xa840('0x16')]()]+_0xa840('0x28'),_0x5282e3);_0x1eed73(_0x5282e3);}else{return createEndUser(_0x3f06be,_0x193912,_0x5282e3,_0x4ba3f5,_0x642ae3)[_0xa840('0xd')](function(_0x59947f){logger[_0xa840('0x12')]('['+[_0x3f06be['toUpperCase']()]+'],\x20createEndUser\x20crm',_0x59947f);_0x1eed73(_0x59947f);});}})[_0xa840('0x14')](function(_0xca039b){logger['error']('['+[_0x3f06be[_0xa840('0x16')]()]+']',_0xca039b['message']);_0x40c612(_0xca039b[_0xa840('0x17')]);});});};}function getCustomFields(_0x30fd4f,_0x2df86e){var _0x46f57a={};if(_0x30fd4f[_0xa840('0xf')]>0x0){_[_0xa840('0x29')](_0x30fd4f,function(_0x14dc99){if(_['includes']([_0xa840('0x2a'),_0xa840('0x2b')],_0x14dc99[_0xa840('0x2c')])&&_0x14dc99[_0xa840('0x2d')]&&!_0x14dc99['customField']){_0x46f57a[_0x14dc99[_0xa840('0x2d')][_0xa840('0x2e')]()]=_0x14dc99[_0xa840('0x2f')][_0xa840('0x30')]();}else if(_[_0xa840('0x31')]([_0xa840('0x2a'),_0xa840('0x2b')],_0x14dc99[_0xa840('0x2c')])&&_0x14dc99[_0xa840('0x32')]&&_0x14dc99[_0xa840('0x33')]){_0x46f57a[_0x14dc99[_0xa840('0x32')][_0xa840('0x2e')]()]=_0x14dc99[_0xa840('0x2f')][_0xa840('0x30')]();}else if(_0x14dc99['type']==='variable'&&_0x14dc99['variableName']&&_0x14dc99[_0xa840('0x32')]&&_0x14dc99[_0xa840('0x33')]){_0x46f57a[_0x14dc99[_0xa840('0x32')][_0xa840('0x2e')]()]=_0x2df86e[_0x14dc99[_0xa840('0x34')]][_0xa840('0x30')]();}else if(_0x14dc99[_0xa840('0x2c')]===_0xa840('0x35')&&_0x14dc99[_0xa840('0x36')]&&_0x14dc99[_0xa840('0x36')][_0xa840('0x37')]&&_0x14dc99[_0xa840('0x32')]&&_0x14dc99['customField']){_0x46f57a[_0x14dc99['idField']['toLowerCase']()]=_0x2df86e[_0x14dc99[_0xa840('0x36')][_0xa840('0x37')][_0xa840('0x2e')]()][_0xa840('0x30')]();}});}return _0x46f57a;}function getTicket(_0x3b0639,_0x35c666,_0x574d79,_0x4622ab,_0x15d887,_0x4b162c){return function(_0x199580){logger[_0xa840('0x12')]('['+[_0x3b0639[_0xa840('0x16')]()]+_0xa840('0x38'),_0x199580);return new Promise(function(_0x319afc,_0xed1ec6){var _0x16c810=_0x3b0639[_0xa840('0x2e')]()===_0xa840('0x39')?_0x199580[_0xa840('0x3a')]:_0x199580[_0xa840('0x26')];var _0x4e7e4a={'method':'POST','uri':_0x574d79+_0xa840('0x3b')+'?'+_0x4b162c,'body':Object[_0xa840('0x3c')]({},{'active':_0xa840('0x24'),'caller_id':_0x16c810,'assigned_to':_0x199580['userId'],'short_description':intUtil['getString'](_0x4622ab[_0xa840('0x3d')],_0x15d887,'\x20'),'description':intUtil['getString'](_0x4622ab[_0xa840('0x3e')],_0x15d887,'\x0a')},getCustomFields(_0x4622ab[_0xa840('0x3f')],_0x15d887)),'auth':_0x35c666,'json':!![]};return rp(_0x4e7e4a)[_0xa840('0xd')](function(_0x3a4db5){logger[_0xa840('0x12')]('['+[_0x3b0639[_0xa840('0x16')]()]+_0xa840('0x40'),_0x3a4db5['result']);_0x199580[_0xa840('0x41')]=_0x3a4db5[_0xa840('0xe')][_0xa840('0x11')];_0x199580[_0xa840('0x42')]=_0x3a4db5['result'][_0xa840('0x43')];logger[_0xa840('0x12')]('['+[_0x3b0639[_0xa840('0x16')]()]+']\x20getTicket\x20crm',_0x199580);_0x319afc(_0x199580);})['catch'](function(_0x52d4f6){logger['error']('['+[_0x3b0639[_0xa840('0x16')]()]+']',_0x52d4f6['message']);_0xed1ec6(_0x52d4f6[_0xa840('0x17')]);});});};}function createRemoteTag(_0x2c4323,_0x135feb,_0x11a0dd,_0x2455c6){return new Promise(function(_0x26742e,_0x457077){var _0x1c0a60={'method':_0xa840('0x44'),'uri':_0x11a0dd+_0xa840('0x45')+'?'+_0x2455c6,'body':{'short_description':_0x2c4323,'global':!![],'active':!![],'name':_0x2c4323},'auth':_0x135feb,'json':!![]};return rp(_0x1c0a60)['then'](function(_0x5d85c0){var _0x3df32f=_0x5d85c0[_0xa840('0xe')][_0xa840('0x11')];_0x26742e(_0x3df32f);});});}function getRemoteTag(_0x451577,_0xc3c148,_0xe1cd3e,_0xb89a67,_0x456bef){return new Promise(function(_0x251877,_0x35785){var _0x4d18bf={'method':_0xa840('0xc'),'uri':_0xe1cd3e+_0xa840('0x45')+_0xa840('0x46')+_0x451577+'&'+_0xb89a67,'auth':_0xc3c148,'json':!![]};return rp(_0x4d18bf)[_0xa840('0xd')](function(_0xdfb12c){if(_0xdfb12c['result'][_0xa840('0xf')]>0x0){var _0x10250d=_0xdfb12c[_0xa840('0xe')][0x0][_0xa840('0x11')];_0x251877(_0x10250d);}else{return createRemoteTag(_0x451577,_0xc3c148,_0xe1cd3e,_0xb89a67)[_0xa840('0xd')](function(_0x1a33ef){_0x251877(_0x1a33ef);});}});});}function assignTagToIncident(_0x19c4cd,_0x3db624,_0x33def7,_0x208f68,_0x41c985){return new Promise(function(_0x208064,_0x2ccbca){var _0x17b2eb={'method':'POST','uri':_0x33def7+_0xa840('0x47')+'?'+_0x41c985,'body':{'label':_0x19c4cd,'table':_0xa840('0x3b'),'id_type':_0xa840('0x48'),'table_key':_0x208f68['ticketId'],'title':_0xa840('0x49')+_0x208f68['ticketNumber'],'id_display':_0x208f68['ticketNumber']},'auth':_0x3db624,'json':!![]};return rp(_0x17b2eb)[_0xa840('0xd')](function(_0x487e9d){_0x208064();})[_0xa840('0x14')](function(){_0x208064();});});}function manageTags(_0x2f0c4a,_0x10a7a9,_0xb388aa,_0x49ff57,_0x3ce541,_0x2a2c62,_0x1e80a3){return new Promise(function(_0x15a122,_0x4233de){var _0x563a87=[];_0x10a7a9[_0xa840('0x29')](function(_0x13675b){_0x563a87['push'](getRemoteTag(_0x13675b,_0xb388aa,_0x49ff57,_0x2a2c62,_0x1e80a3));});return Promise[_0xa840('0x4a')](_0x563a87)[_0xa840('0xd')](function(_0x5a9574){if(_0x5a9574['length']){logger[_0xa840('0x12')]('['+[_0x2f0c4a[_0xa840('0x16')]()]+_0xa840('0x4b'),_0x5a9574);var _0x865557=[];_0x5a9574[_0xa840('0x29')](function(_0x3d197c){_0x865557[_0xa840('0x4c')](assignTagToIncident(_0x3d197c,_0xb388aa,_0x49ff57,_0x3ce541,_0x2a2c62));});return Promise[_0xa840('0x4a')](_0x865557)['then'](function(){_0x15a122();})['catch'](function(){_0x15a122();});}else{_0x15a122();}});});}function getTags(_0x45c598,_0x32ed7e,_0x4b6c1a,_0x405268,_0x51c66b,_0x351d8c){return function(_0x221058){return new Promise(function(_0x1b1e2e,_0x355602){var _0x33528b=[];var _0x5e1b1a=_0x405268[_0xa840('0x4d')];if(_0x5e1b1a&&_0x5e1b1a[_0xa840('0xf')]>0x0){_0x33528b=_[_0xa840('0x4e')](_0x5e1b1a,'name');}if(_0x33528b['length']>0x0){return manageTags(_0x45c598,_0x33528b,_0x32ed7e,_0x4b6c1a,_0x221058,_0x51c66b,_0x351d8c)[_0xa840('0xd')](function(){_0x1b1e2e(_0x221058);});}else{_0x1b1e2e(_0x221058);}});};}function emit(_0x2fa0b7,_0x49905e,_0x17ca86){var _0x3ce876=_0xa840('0x4f')+_0xa840('0x50')+_0xa840('0x51')+_0xa840('0x52');var _0x2ba8a5={'uri':_0x2fa0b7+_0xa840('0x53')+_0x17ca86+_0x3ce876};io['to'](util[_0xa840('0x54')](_0xa840('0x55'),_0x49905e))[_0xa840('0x56')](_0xa840('0x57'),_0x2ba8a5);}exports['cs']=function(_0xb2d028,_0x477136,_0x166515,_0x438309,_0x2d2250,_0x61399b,_0x2e3776,_0x357e6b){var _0x51aaa8={};var _0x5fb2fa={'user':_0x61399b['username'],'pass':_0x61399b['password']};var _0x59e0d3='sysparm_limit=1';var _0x99b058=_0xa840('0x58');_0x61399b[_0xa840('0x59')]=intUtil[_0xa840('0x5a')](_0x61399b[_0xa840('0x59')]);_0x61399b[_0xa840('0x5b')]=intUtil[_0xa840('0x5a')](_0x61399b[_0xa840('0x5b')]);var _0x35d8f8=util[_0xa840('0x54')](_0xa840('0x5c'),_0x61399b['remoteUri']);_0x51aaa8[_0xa840('0x1d')]=!_[_0xa840('0x5d')](_0x438309)?_0x438309['email']:null;_0x51aaa8[_0xa840('0x1e')]=_0x61399b[_0xa840('0x5e')];_0x51aaa8[_0xa840('0x22')]=_0x357e6b['toLowerCase']()===_0xa840('0x39')?_0x477136[_0xa840('0x5f')]:_0x477136[_0xa840('0x60')];_0x51aaa8[_0xa840('0x61')]=_0x357e6b==='queue'||_0x357e6b===_0xa840('0x62')?_0xa840('0x63'):'outbound';var _0x26cc2b=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x61399b[_0xa840('0x5b')],_0x477136['uniqueid'],md5(_0x477136['uniqueid']));if(_0x2d2250&&_0x2d2250[_0xa840('0x64')]){logger[_0xa840('0x12')]('[QUEUE]',_0xa840('0x65'));_0x477136[_0xa840('0x66')]=_0x26cc2b;}else if(_0x2e3776&&_0x2e3776['recordingFormat']&&_0x2e3776[_0xa840('0x67')]!==_0xa840('0x68')){logger[_0xa840('0x12')](_0xa840('0x69'),_0xa840('0x65'));_0x477136[_0xa840('0x66')]=_0x26cc2b;}else{_0x477136['recordingURL']='';}return getAdminUser(_0x357e6b,_0x5fb2fa,_0x51aaa8,_0x35d8f8,_0x99b058,_0x59e0d3)[_0xa840('0xd')](getUser(_0x357e6b,_0x5fb2fa,_0x35d8f8,_0x99b058,_0x59e0d3))['then'](getEndUser(_0x357e6b,_0x5fb2fa,_0x35d8f8,_0x99b058,_0x59e0d3))[_0xa840('0xd')](getTicket(_0x357e6b,_0x5fb2fa,_0x35d8f8,_0x166515,_0x477136,_0x99b058))['then'](function(_0xf0e910){logger[_0xa840('0x12')](util[_0xa840('0x54')](_0xa840('0x6a'),_0xf0e910[_0xa840('0x41')]));logger[_0xa840('0x12')](util['format'](_0xa840('0x6b'),_0x357e6b));if(_0x357e6b!==_0xa840('0x62')){logger['info']('['+[_0x357e6b['toUpperCase']()]+']',_0xa840('0x6c'));emit(_0x61399b[_0xa840('0x59')],_0x438309[_0xa840('0x37')],_0xf0e910[_0xa840('0x41')]);}})[_0xa840('0x14')](function(_0x40e1b5){logger['error']('['+[_0x357e6b[_0xa840('0x16')]()]+_0xa840('0x6d'),util[_0xa840('0x6e')](_0x40e1b5,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x495b=['request-promise','bluebird','md5','util','ioredis','./util','../../../../config/environment','../../../../config/logger','sugarcrm','redis','localhost','socket.io-emitter','emit','info','Creating\x20new\x20ticket...','name','getString','assigned_user_id','created_by','description','Descriptions','toISOString','replace','duration_hours','duration_minutes','parent_id','parent_type','Contacts','direction','push','idField','variableName','JSON','Calls','apiKey','toString','isNil','Getting\x20agent\x20with\x20name','get_entry_list','stringify','Employees','format','user_name','then','length','find','name_value_list','value','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','resolve','user_id','Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','phone_home','entry_list','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','set_entry','<unknown>','Enduser\x20created.','first_name','[HTTP]','merge','forEach','type','string','nameField','toLowerCase','content','custom_fields','variable','customField','Variable','POST','username','password','PLAIN','xCALLY\x20Motion\x20integration','sessionID','set_relationship','queue','remoteUri','serverUrl','stripTrailingSlash','%s/service/v4_1/rest.php','monitor_format','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','calleridnum','Fields','Inbound','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','users','contacts','version','%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...','user:%s','catch','error','outbound','uri','recordingFormat','none','[OUTBOUND]','The\x20User\x20ID\x20is:','destcalleridname','The\x20Enduser\x20ID\x20is:','Outbound','charAt','trigger:browser:url','unmanaged','lastevent','calleridname','toUpperCase'];(function(_0x126af7,_0x25fa06){var _0x25b500=function(_0x10ffe7){while(--_0x10ffe7){_0x126af7['push'](_0x126af7['shift']());}};_0x25b500(++_0x25fa06);}(_0x495b,0x1dc));var _0xb495=function(_0x3720d8,_0x27955a){_0x3720d8=_0x3720d8-0x0;var _0x562b57=_0x495b[_0x3720d8];return _0x562b57;};'use strict';var _=require('lodash');var rp=require(_0xb495('0x0'));var BPromise=require(_0xb495('0x1'));var md5=require(_0xb495('0x2'));var util=require(_0xb495('0x3'));var Redis=require(_0xb495('0x4'));var intUtil=require(_0xb495('0x5'));var config=require(_0xb495('0x6'));var logger=require(_0xb495('0x7'))(_0xb495('0x8'));config[_0xb495('0x9')]=_['defaults'](config[_0xb495('0x9')],{'host':_0xb495('0xa'),'port':0x18eb});var io=require(_0xb495('0xb'))(new Redis(config[_0xb495('0x9')]));var def={'method':'POST','json':!![]};function emit(_0x54d74a,_0x153998,_0x2b7e3d){io['to'](_0x54d74a)[_0xb495('0xc')](_0x153998,_0x2b7e3d);}function getTicket(_0x517210,_0x311b9a,_0x420653,_0x38703f,_0x43c62b,_0x1a7fab,_0x3286ef,_0x3e44c0){logger[_0xb495('0xd')](_0xb495('0xe'));var _0x5c77fc=new Date();var _0x312474=[{'name':_0xb495('0xf'),'value':intUtil[_0xb495('0x10')](_0x38703f['Subjects'],_0x43c62b,'\x20')},{'name':_0xb495('0x11'),'value':_0x311b9a['id']},{'name':_0xb495('0x12'),'value':_0x311b9a['id']},{'name':_0xb495('0x13'),'value':intUtil[_0xb495('0x10')](_0x38703f[_0xb495('0x14')],_0x43c62b,'\x0a')},{'name':'date_start','value':_0x5c77fc[_0xb495('0x15')]()['slice'](0x0,0x13)[_0xb495('0x16')]('T','\x20')},{'name':_0xb495('0x17'),'value':'0'},{'name':_0xb495('0x18'),'value':'15'},{'name':_0xb495('0x19'),'value':_0x420653['id']},{'name':_0xb495('0x1a'),'value':_0xb495('0x1b')},{'name':'parent_name','value':_0x420653[_0xb495('0xf')]},{'name':_0xb495('0x1c'),'value':_0x3e44c0}];if(_0x1a7fab['length']){_['forEach'](_0x1a7fab,function(_0x298340){if(_0x43c62b[_0x298340['variableName']]){_0x312474[_0xb495('0x1d')]({'name':_0x298340[_0xb495('0x1e')],'value':_0x43c62b[_0x298340[_0xb495('0x1f')]]});}});}return request({'form':{'method':'set_entry','input_type':_0xb495('0x20'),'response_type':_0xb495('0x20'),'rest_data':JSON['stringify']({'session':_0x3286ef['id'],'module_name':_0xb495('0x21'),'name_value_list':_0x312474})}});}function getAuth(_0x3e3b16){return util['format']('Basic\x20%s',new Buffer(_0x3e3b16[_0xb495('0x22')]+':X')[_0xb495('0x23')]('base64'));}function getServerInfo(_0x3a5141){return request({'form':{'method':'get_server_info','input_type':_0xb495('0x20'),'response_type':_0xb495('0x20'),'rest_data':JSON['stringify']({'session':_0x3a5141['id']})}});}function getUser(_0x113775,_0x10a564,_0x4c898f){if(!_[_0xb495('0x24')](_0x10a564)){logger[_0xb495('0xd')](_0xb495('0x25'),_0x10a564);return request({'form':{'method':_0xb495('0x26'),'input_type':'JSON','response_type':_0xb495('0x20'),'rest_data':JSON[_0xb495('0x27')]({'session':_0x4c898f['id'],'module_name':_0xb495('0x28'),'query':util[_0xb495('0x29')]('INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200',_0x10a564),'order_by':'','offset':'0','select_fields':['id',_0xb495('0xf'),_0xb495('0x2a')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xb495('0x2b')](function(_0x16b7a4){if(_0x16b7a4['entry_list'][_0xb495('0x2c')]){var _0x4e613b=_[_0xb495('0x2d')](_0x16b7a4['entry_list'],function(_0x595108){return _0x595108[_0xb495('0x2e')][_0xb495('0x2a')][_0xb495('0x2f')]===_0x10a564;});if(_0x4e613b){logger['info']('Agent\x20found!');return BPromise['resolve']({'id':_0x4e613b[_0xb495('0x2e')]['id']['value'],'name':_0x4e613b[_0xb495('0x2e')][_0xb495('0xf')]['value']});}}logger['info'](_0xb495('0x30'));return BPromise[_0xb495('0x31')]({'id':_0x4c898f['name_value_list'][_0xb495('0x32')][_0xb495('0x2f')],'name':_0x4c898f[_0xb495('0x2e')][_0xb495('0x2a')][_0xb495('0x2f')]});});}else{logger[_0xb495('0xd')](_0xb495('0x33'));return BPromise[_0xb495('0x31')]({'id':_0x4c898f['name_value_list'][_0xb495('0x32')][_0xb495('0x2f')],'name':_0x4c898f['name_value_list'][_0xb495('0x2a')]['value']});}}function getEndUser(_0x5408a9,_0x122b2e,_0x2e73ca,_0x492bea){logger[_0xb495('0xd')](_0xb495('0x34'),_0x2e73ca);return request({'form':{'method':_0xb495('0x26'),'input_type':_0xb495('0x20'),'response_type':'JSON','rest_data':JSON[_0xb495('0x27')]({'session':_0x492bea['id'],'module_name':_0xb495('0x1b'),'query':util[_0xb495('0x29')]('contacts.phone_home\x20=\x20\x22%s\x22',_0x2e73ca),'order_by':'','offset':'0','select_fields':['id',_0xb495('0xf'),_0xb495('0x35')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})['then'](function(_0x373b7a){if(_0x373b7a[_0xb495('0x36')]['length']){var _0x386882=_['find'](_0x373b7a['entry_list'],function(_0x458d73){return _0x458d73['name_value_list'][_0xb495('0x35')][_0xb495('0x2f')]===_0x2e73ca;});if(_0x386882){logger[_0xb495('0xd')](_0xb495('0x37'));return BPromise['resolve']({'id':_0x386882['name_value_list']['id'][_0xb495('0x2f')],'name':_0x386882[_0xb495('0x2e')]['name']['value'],'phone':_0x386882[_0xb495('0x2e')][_0xb495('0x35')][_0xb495('0x2f')]});}}else{logger[_0xb495('0xd')](_0xb495('0x38'));return request({'form':{'method':_0xb495('0x39'),'input_type':_0xb495('0x20'),'response_type':_0xb495('0x20'),'rest_data':JSON[_0xb495('0x27')]({'session':_0x492bea['id'],'module_name':_0xb495('0x1b'),'name_value_list':[{'name':'first_name','value':_0x122b2e!==_0xb495('0x3a')?_0x122b2e:util['format']('Caller\x20-\x20%s',_0x2e73ca)},{'name':_0xb495('0x35'),'value':_0x2e73ca}]})}})[_0xb495('0x2b')](function(_0x4278fd){logger['info'](_0xb495('0x3b'));return BPromise[_0xb495('0x31')]({'id':_0x4278fd['id'],'name':_0x4278fd[_0xb495('0x36')][_0xb495('0x3c')][_0xb495('0x2f')],'phone':_0x4278fd['entry_list']['phone_home'][_0xb495('0x2f')]});});}});}function request(_0x52b4ba){logger['debug'](_0xb495('0x3d'),JSON[_0xb495('0x27')](_0x52b4ba));return rp(_[_0xb495('0x3e')](def,_0x52b4ba));}function getTags(_0x15f1cd,_0x4af419){var _0x574f40=[];if(_0x15f1cd&&_0x15f1cd[_0xb495('0x2c')]>0x0){_0x574f40=_['map'](_0x15f1cd,_0x4af419);}return _0x574f40;}function getCustomFields(_0x3c864d,_0x5424da){var _0x862c77=[];var _0x47b813={'custom_fields':[]};if(_0x3c864d[_0xb495('0x2c')]>0x0){_[_0xb495('0x3f')](_0x3c864d,function(_0x3ef759){if(_0x3ef759[_0xb495('0x40')]===_0xb495('0x41')&&_0x3ef759['nameField']&&!_0x3ef759['customField']){_0x47b813[_0x3ef759[_0xb495('0x42')][_0xb495('0x43')]()]=_0x3ef759[_0xb495('0x44')][_0xb495('0x23')]();}else if(_0x3ef759[_0xb495('0x40')]==='string'&&_0x3ef759[_0xb495('0x1e')]&&_0x3ef759['customField']){_0x47b813[_0xb495('0x45')]['push']({'id':_0x3ef759['idField'],'value':_0x3ef759[_0xb495('0x44')][_0xb495('0x23')]()});}else if(_0x3ef759[_0xb495('0x40')]===_0xb495('0x46')&&_0x3ef759[_0xb495('0x1f')]&&_0x3ef759[_0xb495('0x1e')]&&_0x3ef759[_0xb495('0x47')]){_0x5424da[_0x3ef759[_0xb495('0x1f')]]&&_0x47b813[_0xb495('0x45')][_0xb495('0x1d')]({'id':_0x3ef759[_0xb495('0x1e')],'value':_0x5424da[_0x3ef759[_0xb495('0x1f')]][_0xb495('0x23')]()});}else if(_0x3ef759[_0xb495('0x40')]==='customVariable'&&_0x3ef759[_0xb495('0x48')]&&_0x3ef759[_0xb495('0x48')][_0xb495('0xf')]&&_0x3ef759[_0xb495('0x1e')]&&_0x3ef759['customField']){_0x5424da[_0x3ef759[_0xb495('0x48')][_0xb495('0xf')][_0xb495('0x43')]()]&&_0x47b813[_0xb495('0x45')]['push']({'id':_0x3ef759[_0xb495('0x1e')],'value':_0x5424da[_0x3ef759[_0xb495('0x48')]['name'][_0xb495('0x43')]()][_0xb495('0x23')]()});}});}return _0x47b813;}function getConnection(_0x4bf5e7){return request({'method':_0xb495('0x49'),'form':{'method':'login','input_type':'JSON','response_type':_0xb495('0x20'),'rest_data':JSON[_0xb495('0x27')]({'user_auth':{'user_name':_0x4bf5e7[_0xb495('0x4a')],'password':_0x4bf5e7[_0xb495('0x4b')],'encryption':_0xb495('0x4c')},'application':_0xb495('0x4d')})}})['then'](function(_0x3d6353){var _0x21745e=_0x3d6353;if(_0x21745e['id']){def[_0xb495('0x4e')]=_0x21745e['id'];return BPromise[_0xb495('0x31')](_0x21745e);}else{throw new Error(util['format']('Account\x20%d\x20is\x20not\x20valid',_0x4bf5e7['id']));}});}function setRelationship(_0x2eb331,_0x12156c,_0xc87bc9,_0x1ec3d9){return request({'form':{'method':_0xb495('0x4f'),'input_type':_0xb495('0x20'),'response_type':_0xb495('0x20'),'rest_data':JSON[_0xb495('0x27')]({'session':_0x2eb331['id'],'module_name':'Calls','module_id':_0xc87bc9['id'],'link_field_name':_0x1ec3d9,'related_ids':[_0x12156c['id']],'name_value_list':[],'delete':0x0})}});}exports[_0xb495('0x50')]=function(_0x2c4982,_0x5462e7,_0x426b6c,_0x483fb9,_0x2f2ad7,_0x464343){var _0x143182,_0xa2224,_0x5611dd,_0x133bd0;_0x464343[_0xb495('0x51')]=intUtil['stripTrailingSlash'](_0x464343[_0xb495('0x51')]);_0x464343[_0xb495('0x52')]=intUtil[_0xb495('0x53')](_0x464343['serverUrl']);def['uri']=util[_0xb495('0x29')](_0xb495('0x54'),_0x464343[_0xb495('0x51')]);if(_0x2f2ad7&&_0x2f2ad7[_0xb495('0x55')]){logger[_0xb495('0xd')](_0xb495('0x56'),'Recording\x20is\x20enabled!');_0x5462e7[_0xb495('0x57')]=util[_0xb495('0x29')](_0xb495('0x58'),_0x464343[_0xb495('0x52')],_0x5462e7[_0xb495('0x59')],md5(_0x5462e7[_0xb495('0x59')]));}else{_0x5462e7[_0xb495('0x57')]='';}return getConnection(_0x464343)[_0xb495('0x2b')](function(_0x52e750){_0x133bd0=_0x52e750;return getUser(_0x464343,_0x483fb9[_0xb495('0xf')],_0x133bd0);})['then'](function(_0x16865e){_0x143182=_0x16865e;logger[_0xb495('0xd')]('The\x20User\x20ID\x20is:',_0x143182['id']);return getEndUser(_0x464343,_0x5462e7['calleridname'],_0x5462e7[_0xb495('0x5a')],_0x133bd0);})['then'](function(_0x3d9994){_0xa2224=_0x3d9994;logger[_0xb495('0xd')]('The\x20Enduser\x20ID\x20is:',_0xa2224['id']);return getTicket(_0x464343,_0x143182,_0xa2224,_0x426b6c,_0x5462e7,_0x426b6c[_0xb495('0x5b')],_0x133bd0,_0xb495('0x5c'));})[_0xb495('0x2b')](function(_0xc3e6a2){_0x5611dd=_0xc3e6a2;logger[_0xb495('0xd')](_0xb495('0x5d'));logger['info'](_0xb495('0x5e'),_0x5611dd['id']);return setRelationship(_0x133bd0,_0x143182,_0x5611dd,_0xb495('0x5f'));})['then'](function(){return setRelationship(_0x133bd0,_0xa2224,_0x5611dd,_0xb495('0x60'));})[_0xb495('0x2b')](function(){return getServerInfo(_0x133bd0);})[_0xb495('0x2b')](function(_0x52293b){var _0x4236d3=parseInt(_0x52293b[_0xb495('0x61')]['charAt'](0x0));var _0x123635=util['format'](_0xb495('0x62'),_0x464343[_0xb495('0x51')],_0x5611dd['id']);if(_0x4236d3>0x6){_0x123635=util[_0xb495('0x29')](_0xb495('0x63'),_0x464343[_0xb495('0x51')],_0x5611dd['id']);}logger[_0xb495('0xd')](_0xb495('0x56'),_0xb495('0x64'));emit(util[_0xb495('0x29')](_0xb495('0x65'),_0x483fb9[_0xb495('0xf')]),'trigger:browser:url',{'uri':_0x123635});})[_0xb495('0x66')](function(_0x3271a6){logger[_0xb495('0x67')](_0xb495('0x56'),JSON['stringify'](_0x3271a6));});};exports[_0xb495('0x68')]=function(_0x49d437,_0x3a0636,_0x1e41f9,_0x4701a5,_0x4411ec,_0x4a837f,_0x2739cb){var _0x13fffe,_0x458f6e,_0x15530e,_0x1069da;_0x4a837f[_0xb495('0x51')]=intUtil[_0xb495('0x53')](_0x4a837f[_0xb495('0x51')]);_0x4a837f[_0xb495('0x52')]=intUtil['stripTrailingSlash'](_0x4a837f[_0xb495('0x52')]);def[_0xb495('0x69')]=util['format']('%s/service/v4_1/rest.php',_0x4a837f[_0xb495('0x51')]);if(_0x2739cb&&_0x2739cb[_0xb495('0x6a')]&&_0x2739cb[_0xb495('0x6a')]!==_0xb495('0x6b')){logger[_0xb495('0xd')](_0xb495('0x6c'),'Recording\x20is\x20enabled!');_0x3a0636['recordingURL']=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4a837f[_0xb495('0x52')],_0x3a0636[_0xb495('0x59')],md5(_0x3a0636[_0xb495('0x59')]));}return getConnection(_0x4a837f)['then'](function(_0x1550e0){_0x1069da=_0x1550e0;return getUser(_0x4a837f,_0x4701a5[_0xb495('0xf')],_0x1069da);})[_0xb495('0x2b')](function(_0x571ee3){_0x13fffe=_0x571ee3;logger['info'](_0xb495('0x6d'),_0x13fffe['id']);return getEndUser(_0x4a837f,_0x3a0636[_0xb495('0x6e')],_0x3a0636['destcalleridnum'],_0x1069da);})[_0xb495('0x2b')](function(_0x1ab5fb){_0x458f6e=_0x1ab5fb;logger[_0xb495('0xd')](_0xb495('0x6f'),_0x458f6e['id']);return getTicket(_0x4a837f,_0x13fffe,_0x458f6e,_0x1e41f9,_0x3a0636,_0x1e41f9[_0xb495('0x5b')],_0x1069da,_0xb495('0x70'));})['then'](function(_0xc706ff){_0x15530e=_0xc706ff;logger[_0xb495('0xd')](_0xb495('0x5d'));logger[_0xb495('0xd')](_0xb495('0x5e'),_0x15530e['id']);return setRelationship(_0x1069da,_0x13fffe,_0x15530e,'users');})['then'](function(){return setRelationship(_0x1069da,_0x458f6e,_0x15530e,_0xb495('0x60'));})[_0xb495('0x2b')](function(){return getServerInfo(_0x1069da);})[_0xb495('0x2b')](function(_0x217efb){var _0x2ea4a4=parseInt(_0x217efb['version'][_0xb495('0x71')](0x0));var _0x135381=util['format']('%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s',_0x4a837f[_0xb495('0x51')],_0x15530e['id']);if(_0x2ea4a4>0x6){_0x135381=util[_0xb495('0x29')](_0xb495('0x63'),_0x4a837f[_0xb495('0x51')],_0x15530e['id']);}logger['info']('[OUTBOUND]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0xb495('0x29')](_0xb495('0x65'),_0x4701a5[_0xb495('0xf')]),_0xb495('0x72'),{'uri':_0x135381});})[_0xb495('0x66')](function(_0x36f261){logger['error'](_0xb495('0x6c'),JSON[_0xb495('0x27')](_0x36f261));});};exports[_0xb495('0x73')]=function(_0x5a143b,_0x10c961,_0x22c81a,_0x58a888,_0x374a93,_0xd35e19){var _0xd958c9,_0x55392f,_0x44e390,_0x12060a;_0xd35e19[_0xb495('0x51')]=intUtil[_0xb495('0x53')](_0xd35e19[_0xb495('0x51')]);_0xd35e19[_0xb495('0x52')]=intUtil[_0xb495('0x53')](_0xd35e19[_0xb495('0x52')]);def['uri']=util['format'](_0xb495('0x54'),_0xd35e19[_0xb495('0x51')]);if(_0x374a93&&_0x374a93['monitor_format']){logger['info']('['+_0x10c961[_0xb495('0x74')]['toUpperCase']()+']','Recording\x20is\x20enabled!');_0x10c961['recordingURL']=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0xd35e19['serverUrl'],_0x10c961['uniqueid'],md5(_0x10c961[_0xb495('0x59')]));}else{_0x10c961[_0xb495('0x57')]='';}return getConnection(_0xd35e19)[_0xb495('0x2b')](function(_0x4629c5){_0x12060a=_0x4629c5;if(!_[_0xb495('0x24')](_0x58a888)){return getUser(_0xd35e19,_0x58a888[_0xb495('0xf')],_0x12060a);}else{return getUser(_0xd35e19,null,_0x12060a);}})[_0xb495('0x2b')](function(_0x50978d){_0xd958c9=_0x50978d;logger[_0xb495('0xd')](_0xb495('0x6d'),_0xd958c9['id']);return getEndUser(_0xd35e19,_0x10c961[_0xb495('0x75')],_0x10c961[_0xb495('0x5a')],_0x12060a);})[_0xb495('0x2b')](function(_0x268030){_0x55392f=_0x268030;logger[_0xb495('0xd')](_0xb495('0x6f'),_0x55392f['id']);return getTicket(_0xd35e19,_0xd958c9,_0x55392f,_0x22c81a,_0x10c961,_0x22c81a[_0xb495('0x5b')],_0x12060a,_0xb495('0x5c'));})[_0xb495('0x2b')](function(_0x100d63){_0x44e390=_0x100d63;logger['info']('Ticket\x20created!');logger[_0xb495('0xd')](_0xb495('0x5e'),_0x44e390['id']);return setRelationship(_0x12060a,_0xd958c9,_0x44e390,_0xb495('0x5f'));})[_0xb495('0x2b')](function(){return setRelationship(_0x12060a,_0x55392f,_0x44e390,_0xb495('0x60'));})['then'](function(){return getServerInfo(_0x12060a);})['catch'](function(_0x102173){logger[_0xb495('0x67')]('['+_0x10c961[_0xb495('0x74')][_0xb495('0x76')]()+']',JSON['stringify'](_0x102173));});};
\ No newline at end of file
+var _0xff6f=['Variable','toLowerCase','POST','login','username','password','xCALLY\x20Motion\x20integration','Account\x20%d\x20is\x20not\x20valid','set_relationship','queue','remoteUri','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:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Fields','Inbound','Ticket\x20created!','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...','user:%s','trigger:browser:url','error','stripTrailingSlash','recordingFormat','none','destcalleridnum','Outbound','version','[OUTBOUND]','catch','lastevent','toUpperCase','lodash','request-promise','md5','ioredis','../../../../config/logger','sugarcrm','redis','localhost','socket.io-emitter','emit','info','name','Subjects','assigned_user_id','created_by','getString','Descriptions','date_start','toISOString','replace','duration_hours','duration_minutes','parent_id','parent_name','length','forEach','push','variableName','set_entry','JSON','Calls','format','apiKey','base64','get_server_info','stringify','isNil','Getting\x20agent\x20with\x20name','get_entry_list','Employees','INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200','user_name','then','entry_list','value','Agent\x20found!','resolve','name_value_list','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','user_id','Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','find','phone_home','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Contacts','first_name','<unknown>','Caller\x20-\x20%s','Enduser\x20created.','debug','[HTTP]','merge','type','string','nameField','customField','content','toString','idField','custom_fields','variable','customVariable'];(function(_0x52f427,_0x46e88e){var _0x2bea3e=function(_0x287a20){while(--_0x287a20){_0x52f427['push'](_0x52f427['shift']());}};_0x2bea3e(++_0x46e88e);}(_0xff6f,0xa8));var _0xfff6=function(_0x487a2e,_0xbea254){_0x487a2e=_0x487a2e-0x0;var _0x6df506=_0xff6f[_0x487a2e];return _0x6df506;};'use strict';var _=require(_0xfff6('0x0'));var rp=require(_0xfff6('0x1'));var BPromise=require('bluebird');var md5=require(_0xfff6('0x2'));var util=require('util');var Redis=require(_0xfff6('0x3'));var intUtil=require('./util');var config=require('../../../../config/environment');var logger=require(_0xfff6('0x4'))(_0xfff6('0x5'));config[_0xfff6('0x6')]=_['defaults'](config[_0xfff6('0x6')],{'host':_0xfff6('0x7'),'port':0x18eb});var io=require(_0xfff6('0x8'))(new Redis(config[_0xfff6('0x6')]));var def={'method':'POST','json':!![]};function emit(_0x4e190d,_0x2a111c,_0x26f0ca){io['to'](_0x4e190d)[_0xfff6('0x9')](_0x2a111c,_0x26f0ca);}function getTicket(_0xe6b89d,_0x4cd31c,_0x1f2541,_0x154479,_0x32c2a8,_0x3ca2b8,_0xf74894,_0x2ccb78){logger[_0xfff6('0xa')]('Creating\x20new\x20ticket...');var _0x3444ca=new Date();var _0x25e231=[{'name':_0xfff6('0xb'),'value':intUtil['getString'](_0x154479[_0xfff6('0xc')],_0x32c2a8,'\x20')},{'name':_0xfff6('0xd'),'value':_0x4cd31c['id']},{'name':_0xfff6('0xe'),'value':_0x4cd31c['id']},{'name':'description','value':intUtil[_0xfff6('0xf')](_0x154479[_0xfff6('0x10')],_0x32c2a8,'\x0a')},{'name':_0xfff6('0x11'),'value':_0x3444ca[_0xfff6('0x12')]()['slice'](0x0,0x13)[_0xfff6('0x13')]('T','\x20')},{'name':_0xfff6('0x14'),'value':'0'},{'name':_0xfff6('0x15'),'value':'15'},{'name':_0xfff6('0x16'),'value':_0x1f2541['id']},{'name':'parent_type','value':'Contacts'},{'name':_0xfff6('0x17'),'value':_0x1f2541[_0xfff6('0xb')]},{'name':'direction','value':_0x2ccb78}];if(_0x3ca2b8[_0xfff6('0x18')]){_[_0xfff6('0x19')](_0x3ca2b8,function(_0x2b37af){if(_0x32c2a8[_0x2b37af['variableName']]){_0x25e231[_0xfff6('0x1a')]({'name':_0x2b37af['idField'],'value':_0x32c2a8[_0x2b37af[_0xfff6('0x1b')]]});}});}return request({'form':{'method':_0xfff6('0x1c'),'input_type':_0xfff6('0x1d'),'response_type':'JSON','rest_data':JSON['stringify']({'session':_0xf74894['id'],'module_name':_0xfff6('0x1e'),'name_value_list':_0x25e231})}});}function getAuth(_0x3afe4c){return util[_0xfff6('0x1f')]('Basic\x20%s',new Buffer(_0x3afe4c[_0xfff6('0x20')]+':X')['toString'](_0xfff6('0x21')));}function getServerInfo(_0x3e509f){return request({'form':{'method':_0xfff6('0x22'),'input_type':_0xfff6('0x1d'),'response_type':'JSON','rest_data':JSON[_0xfff6('0x23')]({'session':_0x3e509f['id']})}});}function getUser(_0x367e95,_0x1f0e59,_0xdb7d78){if(!_[_0xfff6('0x24')](_0x1f0e59)){logger[_0xfff6('0xa')](_0xfff6('0x25'),_0x1f0e59);return request({'form':{'method':_0xfff6('0x26'),'input_type':'JSON','response_type':_0xfff6('0x1d'),'rest_data':JSON[_0xfff6('0x23')]({'session':_0xdb7d78['id'],'module_name':_0xfff6('0x27'),'query':util[_0xfff6('0x1f')](_0xfff6('0x28'),_0x1f0e59),'order_by':'','offset':'0','select_fields':['id',_0xfff6('0xb'),_0xfff6('0x29')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xfff6('0x2a')](function(_0x291d6e){if(_0x291d6e['entry_list']['length']){var _0x41fe14=_['find'](_0x291d6e[_0xfff6('0x2b')],function(_0x327cc1){return _0x327cc1['name_value_list'][_0xfff6('0x29')][_0xfff6('0x2c')]===_0x1f0e59;});if(_0x41fe14){logger['info'](_0xfff6('0x2d'));return BPromise[_0xfff6('0x2e')]({'id':_0x41fe14['name_value_list']['id'][_0xfff6('0x2c')],'name':_0x41fe14[_0xfff6('0x2f')][_0xfff6('0xb')][_0xfff6('0x2c')]});}}logger[_0xfff6('0xa')](_0xfff6('0x30'));return BPromise[_0xfff6('0x2e')]({'id':_0xdb7d78[_0xfff6('0x2f')][_0xfff6('0x31')][_0xfff6('0x2c')],'name':_0xdb7d78['name_value_list'][_0xfff6('0x29')][_0xfff6('0x2c')]});});}else{logger[_0xfff6('0xa')](_0xfff6('0x32'));return BPromise['resolve']({'id':_0xdb7d78[_0xfff6('0x2f')][_0xfff6('0x31')][_0xfff6('0x2c')],'name':_0xdb7d78[_0xfff6('0x2f')][_0xfff6('0x29')][_0xfff6('0x2c')]});}}function getEndUser(_0x2573e3,_0x16a0a2,_0x39c609,_0x2593a7){logger[_0xfff6('0xa')](_0xfff6('0x33'),_0x39c609);return request({'form':{'method':_0xfff6('0x26'),'input_type':_0xfff6('0x1d'),'response_type':_0xfff6('0x1d'),'rest_data':JSON[_0xfff6('0x23')]({'session':_0x2593a7['id'],'module_name':'Contacts','query':util[_0xfff6('0x1f')]('contacts.phone_home\x20=\x20\x22%s\x22',_0x39c609),'order_by':'','offset':'0','select_fields':['id','name','phone_home'],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xfff6('0x2a')](function(_0xee1164){if(_0xee1164[_0xfff6('0x2b')][_0xfff6('0x18')]){var _0x2c61ff=_[_0xfff6('0x34')](_0xee1164[_0xfff6('0x2b')],function(_0x4fb779){return _0x4fb779[_0xfff6('0x2f')][_0xfff6('0x35')]['value']===_0x39c609;});if(_0x2c61ff){logger[_0xfff6('0xa')](_0xfff6('0x36'));return BPromise[_0xfff6('0x2e')]({'id':_0x2c61ff[_0xfff6('0x2f')]['id'][_0xfff6('0x2c')],'name':_0x2c61ff[_0xfff6('0x2f')]['name']['value'],'phone':_0x2c61ff[_0xfff6('0x2f')][_0xfff6('0x35')][_0xfff6('0x2c')]});}}else{logger[_0xfff6('0xa')](_0xfff6('0x37'));return request({'form':{'method':_0xfff6('0x1c'),'input_type':'JSON','response_type':_0xfff6('0x1d'),'rest_data':JSON['stringify']({'session':_0x2593a7['id'],'module_name':_0xfff6('0x38'),'name_value_list':[{'name':_0xfff6('0x39'),'value':_0x16a0a2!==_0xfff6('0x3a')?_0x16a0a2:util[_0xfff6('0x1f')](_0xfff6('0x3b'),_0x39c609)},{'name':_0xfff6('0x35'),'value':_0x39c609}]})}})[_0xfff6('0x2a')](function(_0x2109ef){logger[_0xfff6('0xa')](_0xfff6('0x3c'));return BPromise[_0xfff6('0x2e')]({'id':_0x2109ef['id'],'name':_0x2109ef[_0xfff6('0x2b')]['first_name'][_0xfff6('0x2c')],'phone':_0x2109ef[_0xfff6('0x2b')][_0xfff6('0x35')]['value']});});}});}function request(_0x474c02){logger[_0xfff6('0x3d')](_0xfff6('0x3e'),JSON['stringify'](_0x474c02));return rp(_[_0xfff6('0x3f')](def,_0x474c02));}function getTags(_0x2b7de8,_0x4ce209){var _0x14c575=[];if(_0x2b7de8&&_0x2b7de8[_0xfff6('0x18')]>0x0){_0x14c575=_['map'](_0x2b7de8,_0x4ce209);}return _0x14c575;}function getCustomFields(_0xe29abe,_0x2a7810){var _0x2f3a0b=[];var _0x3a1359={'custom_fields':[]};if(_0xe29abe[_0xfff6('0x18')]>0x0){_[_0xfff6('0x19')](_0xe29abe,function(_0x513250){if(_0x513250[_0xfff6('0x40')]===_0xfff6('0x41')&&_0x513250[_0xfff6('0x42')]&&!_0x513250[_0xfff6('0x43')]){_0x3a1359[_0x513250['nameField']['toLowerCase']()]=_0x513250[_0xfff6('0x44')][_0xfff6('0x45')]();}else if(_0x513250[_0xfff6('0x40')]===_0xfff6('0x41')&&_0x513250[_0xfff6('0x46')]&&_0x513250['customField']){_0x3a1359[_0xfff6('0x47')][_0xfff6('0x1a')]({'id':_0x513250[_0xfff6('0x46')],'value':_0x513250[_0xfff6('0x44')][_0xfff6('0x45')]()});}else if(_0x513250['type']===_0xfff6('0x48')&&_0x513250[_0xfff6('0x1b')]&&_0x513250[_0xfff6('0x46')]&&_0x513250[_0xfff6('0x43')]){_0x2a7810[_0x513250[_0xfff6('0x1b')]]&&_0x3a1359[_0xfff6('0x47')][_0xfff6('0x1a')]({'id':_0x513250[_0xfff6('0x46')],'value':_0x2a7810[_0x513250[_0xfff6('0x1b')]][_0xfff6('0x45')]()});}else if(_0x513250[_0xfff6('0x40')]===_0xfff6('0x49')&&_0x513250[_0xfff6('0x4a')]&&_0x513250[_0xfff6('0x4a')][_0xfff6('0xb')]&&_0x513250['idField']&&_0x513250[_0xfff6('0x43')]){_0x2a7810[_0x513250[_0xfff6('0x4a')][_0xfff6('0xb')]['toLowerCase']()]&&_0x3a1359[_0xfff6('0x47')][_0xfff6('0x1a')]({'id':_0x513250[_0xfff6('0x46')],'value':_0x2a7810[_0x513250[_0xfff6('0x4a')][_0xfff6('0xb')][_0xfff6('0x4b')]()]['toString']()});}});}return _0x3a1359;}function getConnection(_0xab3bba){return request({'method':_0xfff6('0x4c'),'form':{'method':_0xfff6('0x4d'),'input_type':_0xfff6('0x1d'),'response_type':_0xfff6('0x1d'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0xab3bba[_0xfff6('0x4e')],'password':_0xab3bba[_0xfff6('0x4f')],'encryption':'PLAIN'},'application':_0xfff6('0x50')})}})[_0xfff6('0x2a')](function(_0x5ee793){var _0x442af3=_0x5ee793;if(_0x442af3['id']){def['sessionID']=_0x442af3['id'];return BPromise[_0xfff6('0x2e')](_0x442af3);}else{throw new Error(util[_0xfff6('0x1f')](_0xfff6('0x51'),_0xab3bba['id']));}});}function setRelationship(_0xd35b26,_0x344cd3,_0x48958c,_0x3497ee){return request({'form':{'method':_0xfff6('0x52'),'input_type':_0xfff6('0x1d'),'response_type':_0xfff6('0x1d'),'rest_data':JSON[_0xfff6('0x23')]({'session':_0xd35b26['id'],'module_name':_0xfff6('0x1e'),'module_id':_0x48958c['id'],'link_field_name':_0x3497ee,'related_ids':[_0x344cd3['id']],'name_value_list':[],'delete':0x0})}});}exports[_0xfff6('0x53')]=function(_0x3740bc,_0x20bac6,_0x2b3631,_0x45ae8a,_0x18c781,_0xe6875b){var _0x927ec5,_0x5e200f,_0x30c93a,_0x5aa2ed;_0xe6875b[_0xfff6('0x54')]=intUtil['stripTrailingSlash'](_0xe6875b['remoteUri']);_0xe6875b[_0xfff6('0x55')]=intUtil['stripTrailingSlash'](_0xe6875b[_0xfff6('0x55')]);def[_0xfff6('0x56')]=util[_0xfff6('0x1f')](_0xfff6('0x57'),_0xe6875b[_0xfff6('0x54')]);if(_0x18c781&&_0x18c781[_0xfff6('0x58')]){logger[_0xfff6('0xa')](_0xfff6('0x59'),_0xfff6('0x5a'));_0x20bac6[_0xfff6('0x5b')]=util[_0xfff6('0x1f')](_0xfff6('0x5c'),_0xe6875b['serverUrl'],_0x20bac6['uniqueid'],md5(_0x20bac6[_0xfff6('0x5d')]));}else{_0x20bac6['recordingURL']='';}return getConnection(_0xe6875b)[_0xfff6('0x2a')](function(_0x1896d6){_0x5aa2ed=_0x1896d6;return getUser(_0xe6875b,_0x45ae8a[_0xfff6('0xb')],_0x5aa2ed);})[_0xfff6('0x2a')](function(_0x15722a){_0x927ec5=_0x15722a;logger[_0xfff6('0xa')](_0xfff6('0x5e'),_0x927ec5['id']);return getEndUser(_0xe6875b,_0x20bac6[_0xfff6('0x5f')],_0x20bac6[_0xfff6('0x60')],_0x5aa2ed);})[_0xfff6('0x2a')](function(_0x19f8e8){_0x5e200f=_0x19f8e8;logger['info'](_0xfff6('0x61'),_0x5e200f['id']);return getTicket(_0xe6875b,_0x927ec5,_0x5e200f,_0x2b3631,_0x20bac6,_0x2b3631[_0xfff6('0x62')],_0x5aa2ed,_0xfff6('0x63'));})['then'](function(_0x4a1720){_0x30c93a=_0x4a1720;logger[_0xfff6('0xa')](_0xfff6('0x64'));logger[_0xfff6('0xa')](_0xfff6('0x65'),_0x30c93a['id']);return setRelationship(_0x5aa2ed,_0x927ec5,_0x30c93a,_0xfff6('0x66'));})[_0xfff6('0x2a')](function(){return setRelationship(_0x5aa2ed,_0x5e200f,_0x30c93a,_0xfff6('0x67'));})[_0xfff6('0x2a')](function(){return getServerInfo(_0x5aa2ed);})['then'](function(_0x12667d){var _0x3f1c39=parseInt(_0x12667d['version'][_0xfff6('0x68')](0x0));var _0xf71697=util[_0xfff6('0x1f')](_0xfff6('0x69'),_0xe6875b[_0xfff6('0x54')],_0x30c93a['id']);if(_0x3f1c39>0x6){_0xf71697=util['format'](_0xfff6('0x6a'),_0xe6875b['remoteUri'],_0x30c93a['id']);}logger[_0xfff6('0xa')]('[QUEUE]',_0xfff6('0x6b'));emit(util[_0xfff6('0x1f')](_0xfff6('0x6c'),_0x45ae8a['name']),_0xfff6('0x6d'),{'uri':_0xf71697});})['catch'](function(_0x4c7f5c){logger[_0xfff6('0x6e')](_0xfff6('0x59'),JSON['stringify'](_0x4c7f5c));});};exports['outbound']=function(_0x4e5467,_0x5e7ce5,_0x189981,_0x36dc3a,_0x4692b0,_0x9fb0ef,_0x2ad3b5){var _0x2887af,_0x59f823,_0x4d91d6,_0x1e0fb2;_0x9fb0ef[_0xfff6('0x54')]=intUtil[_0xfff6('0x6f')](_0x9fb0ef[_0xfff6('0x54')]);_0x9fb0ef[_0xfff6('0x55')]=intUtil[_0xfff6('0x6f')](_0x9fb0ef[_0xfff6('0x55')]);def[_0xfff6('0x56')]=util['format'](_0xfff6('0x57'),_0x9fb0ef['remoteUri']);if(_0x2ad3b5&&_0x2ad3b5[_0xfff6('0x70')]&&_0x2ad3b5[_0xfff6('0x70')]!==_0xfff6('0x71')){logger['info']('[OUTBOUND]',_0xfff6('0x5a'));_0x5e7ce5[_0xfff6('0x5b')]=util[_0xfff6('0x1f')](_0xfff6('0x5c'),_0x9fb0ef[_0xfff6('0x55')],_0x5e7ce5[_0xfff6('0x5d')],md5(_0x5e7ce5[_0xfff6('0x5d')]));}return getConnection(_0x9fb0ef)[_0xfff6('0x2a')](function(_0x8bb7e0){_0x1e0fb2=_0x8bb7e0;return getUser(_0x9fb0ef,_0x36dc3a[_0xfff6('0xb')],_0x1e0fb2);})['then'](function(_0x5b49d3){_0x2887af=_0x5b49d3;logger['info'](_0xfff6('0x5e'),_0x2887af['id']);return getEndUser(_0x9fb0ef,_0x5e7ce5['destcalleridname'],_0x5e7ce5[_0xfff6('0x72')],_0x1e0fb2);})['then'](function(_0x5b3ea4){_0x59f823=_0x5b3ea4;logger[_0xfff6('0xa')](_0xfff6('0x61'),_0x59f823['id']);return getTicket(_0x9fb0ef,_0x2887af,_0x59f823,_0x189981,_0x5e7ce5,_0x189981['Fields'],_0x1e0fb2,_0xfff6('0x73'));})[_0xfff6('0x2a')](function(_0x518996){_0x4d91d6=_0x518996;logger[_0xfff6('0xa')](_0xfff6('0x64'));logger['info'](_0xfff6('0x65'),_0x4d91d6['id']);return setRelationship(_0x1e0fb2,_0x2887af,_0x4d91d6,'users');})[_0xfff6('0x2a')](function(){return setRelationship(_0x1e0fb2,_0x59f823,_0x4d91d6,_0xfff6('0x67'));})[_0xfff6('0x2a')](function(){return getServerInfo(_0x1e0fb2);})[_0xfff6('0x2a')](function(_0x4f156d){var _0xd0c4f0=parseInt(_0x4f156d[_0xfff6('0x74')]['charAt'](0x0));var _0x2766dc=util['format'](_0xfff6('0x69'),_0x9fb0ef[_0xfff6('0x54')],_0x4d91d6['id']);if(_0xd0c4f0>0x6){_0x2766dc=util[_0xfff6('0x1f')](_0xfff6('0x6a'),_0x9fb0ef[_0xfff6('0x54')],_0x4d91d6['id']);}logger[_0xfff6('0xa')](_0xfff6('0x75'),_0xfff6('0x6b'));emit(util[_0xfff6('0x1f')](_0xfff6('0x6c'),_0x36dc3a[_0xfff6('0xb')]),_0xfff6('0x6d'),{'uri':_0x2766dc});})[_0xfff6('0x76')](function(_0x1f14b7){logger[_0xfff6('0x6e')]('[OUTBOUND]',JSON[_0xfff6('0x23')](_0x1f14b7));});};exports['unmanaged']=function(_0x1da4ca,_0x552caa,_0x3643e7,_0x164309,_0x3b01d7,_0x130379){var _0xc69c6a,_0x45b911,_0x356ef9,_0x5f0ea1;_0x130379[_0xfff6('0x54')]=intUtil[_0xfff6('0x6f')](_0x130379['remoteUri']);_0x130379[_0xfff6('0x55')]=intUtil['stripTrailingSlash'](_0x130379[_0xfff6('0x55')]);def[_0xfff6('0x56')]=util[_0xfff6('0x1f')](_0xfff6('0x57'),_0x130379['remoteUri']);if(_0x3b01d7&&_0x3b01d7['monitor_format']){logger['info']('['+_0x552caa[_0xfff6('0x77')]['toUpperCase']()+']',_0xfff6('0x5a'));_0x552caa[_0xfff6('0x5b')]=util[_0xfff6('0x1f')](_0xfff6('0x5c'),_0x130379[_0xfff6('0x55')],_0x552caa[_0xfff6('0x5d')],md5(_0x552caa[_0xfff6('0x5d')]));}else{_0x552caa[_0xfff6('0x5b')]='';}return getConnection(_0x130379)[_0xfff6('0x2a')](function(_0x4fc797){_0x5f0ea1=_0x4fc797;if(!_['isNil'](_0x164309)){return getUser(_0x130379,_0x164309[_0xfff6('0xb')],_0x5f0ea1);}else{return getUser(_0x130379,null,_0x5f0ea1);}})['then'](function(_0x5152be){_0xc69c6a=_0x5152be;logger[_0xfff6('0xa')](_0xfff6('0x5e'),_0xc69c6a['id']);return getEndUser(_0x130379,_0x552caa['calleridname'],_0x552caa[_0xfff6('0x60')],_0x5f0ea1);})[_0xfff6('0x2a')](function(_0x4cdaa0){_0x45b911=_0x4cdaa0;logger[_0xfff6('0xa')]('The\x20Enduser\x20ID\x20is:',_0x45b911['id']);return getTicket(_0x130379,_0xc69c6a,_0x45b911,_0x3643e7,_0x552caa,_0x3643e7[_0xfff6('0x62')],_0x5f0ea1,_0xfff6('0x63'));})[_0xfff6('0x2a')](function(_0x345654){_0x356ef9=_0x345654;logger[_0xfff6('0xa')](_0xfff6('0x64'));logger[_0xfff6('0xa')](_0xfff6('0x65'),_0x356ef9['id']);return setRelationship(_0x5f0ea1,_0xc69c6a,_0x356ef9,_0xfff6('0x66'));})[_0xfff6('0x2a')](function(){return setRelationship(_0x5f0ea1,_0x45b911,_0x356ef9,_0xfff6('0x67'));})[_0xfff6('0x2a')](function(){return getServerInfo(_0x5f0ea1);})['catch'](function(_0x3a9092){logger[_0xfff6('0x6e')]('['+_0x552caa[_0xfff6('0x77')][_0xfff6('0x78')]()+']',JSON['stringify'](_0x3a9092));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x20a1=['string','content','variable','variableName','push','customVariable','Variable','name','toLowerCase','toString','keyValue','keyType','key','format','%s:\x20%s','keyContent','join','stripTrailingSlash','slice','substring','lastIndexOf','validateEmail','isNil','test','lodash','util','getString','length','sortBy','type'];(function(_0x2ce5af,_0x374911){var _0x56f351=function(_0xe8b6f1){while(--_0xe8b6f1){_0x2ce5af['push'](_0x2ce5af['shift']());}};_0x56f351(++_0x374911);}(_0x20a1,0xea));var _0x120a=function(_0x27f5fd,_0x3cf7d9){_0x27f5fd=_0x27f5fd-0x0;var _0x2eaa1d=_0x20a1[_0x27f5fd];return _0x2eaa1d;};'use strict';var _=require(_0x120a('0x0'));var util=require(_0x120a('0x1'));exports[_0x120a('0x2')]=function(_0x58522c,_0xe8b27f,_0x29dead){var _0x12040c=[];if(_0x58522c[_0x120a('0x3')]>0x0){var _0x31807e=_[_0x120a('0x4')](_0x58522c,['id']);for(var _0x229e77=0x0;_0x229e77<_0x31807e['length'];_0x229e77++){var _0x23c69f=_0x31807e[_0x229e77];if(_0x23c69f[_0x120a('0x5')]===_0x120a('0x6')){_0x12040c['push'](_0x23c69f[_0x120a('0x7')]);}else if(_0x23c69f[_0x120a('0x5')]===_0x120a('0x8')&&_0x23c69f[_0x120a('0x9')]){_0xe8b27f[_0x23c69f[_0x120a('0x9')]]&&_0x12040c[_0x120a('0xa')](_0xe8b27f[_0x23c69f['variableName']]['toString']());}else if(_0x23c69f[_0x120a('0x5')]===_0x120a('0xb')&&_0x23c69f[_0x120a('0xc')]&&_0x23c69f[_0x120a('0xc')][_0x120a('0xd')]){_0xe8b27f[_0x23c69f['Variable'][_0x120a('0xd')][_0x120a('0xe')]()]&&_0x12040c[_0x120a('0xa')](_0xe8b27f[_0x23c69f[_0x120a('0xc')][_0x120a('0xd')][_0x120a('0xe')]()][_0x120a('0xf')]());}else if(_0x23c69f[_0x120a('0x5')]===_0x120a('0x10')){if(_0x23c69f[_0x120a('0x11')]===_0x120a('0x6')&&_0x23c69f[_0x120a('0x12')]){_0x12040c[_0x120a('0xa')](util[_0x120a('0x13')](_0x120a('0x14'),_0x23c69f[_0x120a('0x12')],_0x23c69f[_0x120a('0x15')]));}else if(_0x23c69f[_0x120a('0x11')]===_0x120a('0x8')&&_0x23c69f[_0x120a('0x9')]&&_0x23c69f[_0x120a('0x12')]){_0xe8b27f[_0x23c69f[_0x120a('0x9')]]&&_0x12040c[_0x120a('0xa')](util['format']('%s:\x20%s',_0x23c69f[_0x120a('0x12')],_0xe8b27f[_0x23c69f[_0x120a('0x9')]]));}else if(_0x23c69f['keyType']===_0x120a('0xb')&&_0x23c69f[_0x120a('0xc')]&&_0x23c69f[_0x120a('0xc')][_0x120a('0xd')]&&_0x23c69f[_0x120a('0x12')]){_0xe8b27f[_0x23c69f[_0x120a('0xc')][_0x120a('0xd')]['toLowerCase']()]&&_0x12040c[_0x120a('0xa')](util['format'](_0x120a('0x14'),_0x23c69f['key'],_0xe8b27f[_0x23c69f[_0x120a('0xc')]['name']['toLowerCase']()]));}}}}return _0x12040c[_0x120a('0x16')](_0x29dead);};exports[_0x120a('0x17')]=function(_0x71ce21){var _0x1aeadd=_0x71ce21[_0x120a('0x18')](-0x1);if(_0x1aeadd==='/'){_0x71ce21=_0x71ce21[_0x120a('0x19')](0x0,_0x71ce21[_0x120a('0x1a')](_0x1aeadd));}return _0x71ce21;};exports[_0x120a('0x1b')]=function(_0x184f2d){if(!_[_0x120a('0x1c')](_0x184f2d)&&_0x184f2d!==''){var _0x592077=/^(([^<>()\[\]\\.,;:\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 _0x592077[_0x120a('0x1d')](String(_0x184f2d)[_0x120a('0xe')]());}else{return![];}};
\ No newline at end of file
+var _0x4e1f=['validateEmail','isNil','test','lodash','util','getString','length','sortBy','type','string','push','content','variable','variableName','toString','customVariable','Variable','name','toLowerCase','keyValue','key','%s:\x20%s','keyContent','format','keyType','join','stripTrailingSlash','slice','substring'];(function(_0x1087cf,_0x54a191){var _0x30cad0=function(_0x232ae8){while(--_0x232ae8){_0x1087cf['push'](_0x1087cf['shift']());}};_0x30cad0(++_0x54a191);}(_0x4e1f,0xeb));var _0xf4e1=function(_0x270546,_0x5dc863){_0x270546=_0x270546-0x0;var _0x1c7ffc=_0x4e1f[_0x270546];return _0x1c7ffc;};'use strict';var _=require(_0xf4e1('0x0'));var util=require(_0xf4e1('0x1'));exports[_0xf4e1('0x2')]=function(_0x223f3d,_0x3be64f,_0x4742e8){var _0x201cd7=[];if(_0x223f3d[_0xf4e1('0x3')]>0x0){var _0x441357=_[_0xf4e1('0x4')](_0x223f3d,['id']);for(var _0x59d002=0x0;_0x59d002<_0x441357[_0xf4e1('0x3')];_0x59d002++){var _0x5590ab=_0x441357[_0x59d002];if(_0x5590ab[_0xf4e1('0x5')]===_0xf4e1('0x6')){_0x201cd7[_0xf4e1('0x7')](_0x5590ab[_0xf4e1('0x8')]);}else if(_0x5590ab['type']===_0xf4e1('0x9')&&_0x5590ab[_0xf4e1('0xa')]){_0x3be64f[_0x5590ab[_0xf4e1('0xa')]]&&_0x201cd7[_0xf4e1('0x7')](_0x3be64f[_0x5590ab[_0xf4e1('0xa')]][_0xf4e1('0xb')]());}else if(_0x5590ab['type']===_0xf4e1('0xc')&&_0x5590ab[_0xf4e1('0xd')]&&_0x5590ab[_0xf4e1('0xd')][_0xf4e1('0xe')]){_0x3be64f[_0x5590ab['Variable'][_0xf4e1('0xe')][_0xf4e1('0xf')]()]&&_0x201cd7['push'](_0x3be64f[_0x5590ab['Variable'][_0xf4e1('0xe')][_0xf4e1('0xf')]()][_0xf4e1('0xb')]());}else if(_0x5590ab[_0xf4e1('0x5')]===_0xf4e1('0x10')){if(_0x5590ab['keyType']===_0xf4e1('0x6')&&_0x5590ab[_0xf4e1('0x11')]){_0x201cd7[_0xf4e1('0x7')](util['format'](_0xf4e1('0x12'),_0x5590ab[_0xf4e1('0x11')],_0x5590ab[_0xf4e1('0x13')]));}else if(_0x5590ab['keyType']===_0xf4e1('0x9')&&_0x5590ab[_0xf4e1('0xa')]&&_0x5590ab[_0xf4e1('0x11')]){_0x3be64f[_0x5590ab[_0xf4e1('0xa')]]&&_0x201cd7[_0xf4e1('0x7')](util[_0xf4e1('0x14')](_0xf4e1('0x12'),_0x5590ab['key'],_0x3be64f[_0x5590ab['variableName']]));}else if(_0x5590ab[_0xf4e1('0x15')]==='customVariable'&&_0x5590ab[_0xf4e1('0xd')]&&_0x5590ab[_0xf4e1('0xd')][_0xf4e1('0xe')]&&_0x5590ab['key']){_0x3be64f[_0x5590ab[_0xf4e1('0xd')][_0xf4e1('0xe')]['toLowerCase']()]&&_0x201cd7[_0xf4e1('0x7')](util['format']('%s:\x20%s',_0x5590ab[_0xf4e1('0x11')],_0x3be64f[_0x5590ab[_0xf4e1('0xd')]['name'][_0xf4e1('0xf')]()]));}}}}return _0x201cd7[_0xf4e1('0x16')](_0x4742e8);};exports[_0xf4e1('0x17')]=function(_0x5f3102){var _0x679137=_0x5f3102[_0xf4e1('0x18')](-0x1);if(_0x679137==='/'){_0x5f3102=_0x5f3102[_0xf4e1('0x19')](0x0,_0x5f3102['lastIndexOf'](_0x679137));}return _0x5f3102;};exports[_0xf4e1('0x1a')]=function(_0x32f497){if(!_[_0xf4e1('0x1b')](_0x32f497)&&_0x32f497!==''){var _0x1372ff=/^(([^<>()\[\]\\.,;:\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 _0x1372ff[_0xf4e1('0x1c')](String(_0x32f497)['toLowerCase']());}else{return![];}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['redis','defaults','localhost','emit','length','forEach','includes','string','picklist','type','idField','toString','variableName','Variable','name','toLowerCase','info','Creating\x20new\x20ticket...','merge','Normal','getString','Subjects','POST','format','remoteUri','create','sessionName','HelpDesk','stringify','success','error','catch','statusCode','Getting\x20agent\x20with\x20email','GET','%s/webservice.php','query','username','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','result','Agent\x20found!','resolve','email1','first_name','last_name','userId','[vTiger],\x20%s,\x20%s,\x20%s','getUser','admin','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!','phone','getEndUser','accessKey','getchallenge','then','login','token','Account\x20%d\x20is\x20not\x20valid','getConnection','[HTTP]','queue','Recording\x20is\x20enabled!','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','recordingURL','email','The\x20User\x20ID\x20is:','calleridnum','Fields','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','[QUEUE]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','outbound','stripTrailingSlash','recordingFormat','none','[OUTBOUND]','uniqueid','destcalleridname','destcalleridnum','The\x20Enduser\x20ID\x20is:','split','unmanaged','lastevent','toUpperCase','calleridname','lodash','request-promise','bluebird','md5','ioredis','./util','../../../../config/environment','../../../../config/logger','vTiger'];(function(_0x475c89,_0x5e11db){var _0x43193b=function(_0x214d98){while(--_0x214d98){_0x475c89['push'](_0x475c89['shift']());}};_0x43193b(++_0x5e11db);}(_0x34e8,0x12c));var _0x834e=function(_0x42685d,_0x2318a){_0x42685d=_0x42685d-0x0;var _0x371828=_0x34e8[_0x42685d];return _0x371828;};'use strict';var _=require(_0x834e('0x0'));var rp=require(_0x834e('0x1'));var BPromise=require(_0x834e('0x2'));var md5=require(_0x834e('0x3'));var util=require('util');var Redis=require(_0x834e('0x4'));var intUtil=require(_0x834e('0x5'));var config=require(_0x834e('0x6'));var logger=require(_0x834e('0x7'))(_0x834e('0x8'));config[_0x834e('0x9')]=_[_0x834e('0xa')](config['redis'],{'host':_0x834e('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x834e('0x9')]));function emit(_0x3cc2e3,_0x3a3ef6,_0x2e69e2){io['to'](_0x3cc2e3)[_0x834e('0xc')](_0x3a3ef6,_0x2e69e2);}function getCustomFields(_0x23501c,_0x363786){var _0x1af45a={};if(_0x23501c[_0x834e('0xd')]>0x0){_[_0x834e('0xe')](_0x23501c,function(_0x1e41fe){if(_[_0x834e('0xf')]([_0x834e('0x10'),_0x834e('0x11')],_0x1e41fe[_0x834e('0x12')])&&_0x1e41fe[_0x834e('0x13')]){_0x1af45a[_0x1e41fe[_0x834e('0x13')]]=_0x1e41fe['content'][_0x834e('0x14')]();}else if(_0x1e41fe[_0x834e('0x12')]==='variable'&&_0x1e41fe[_0x834e('0x15')]&&_0x1e41fe[_0x834e('0x13')]&&_0x363786[_0x1e41fe[_0x834e('0x15')]]){_0x1af45a[_0x1e41fe[_0x834e('0x13')]]=_0x363786[_0x1e41fe['variableName']][_0x834e('0x14')]();}else if(_0x1e41fe[_0x834e('0x12')]==='customVariable'&&_0x1e41fe[_0x834e('0x16')]&&_0x1e41fe['Variable'][_0x834e('0x17')]&&_0x1e41fe[_0x834e('0x13')]&&_0x363786[_0x1e41fe['Variable'][_0x834e('0x17')][_0x834e('0x18')]()]){_0x1af45a[_0x1e41fe[_0x834e('0x13')]]=_0x363786[_0x1e41fe['Variable'][_0x834e('0x17')][_0x834e('0x18')]()][_0x834e('0x14')]();}});}return _0x1af45a;}function createTicket(_0xb993a1,_0x237947,_0x254677,_0x1dd214,_0x595515,_0x2545b4,_0x1fd2c6){logger[_0x834e('0x19')](_0x834e('0x1a'));var _0x4ab05d=_[_0x834e('0x1b')]({'parent_id':'','assigned_user_id':_0x237947['id'],'ticketpriorities':_0x834e('0x1c'),'ticketstatus':'Open','ticket_title':intUtil[_0x834e('0x1d')](_0x1dd214[_0x834e('0x1e')],_0x595515,'\x20'),'description':intUtil[_0x834e('0x1d')](_0x1dd214['Descriptions'],_0x595515,'\x0a'),'contact_id':_0x254677['id']},getCustomFields(_0x2545b4,_0x595515));var _0x4e3f48={'method':_0x834e('0x1f'),'uri':util[_0x834e('0x20')]('%s/webservice.php',_0xb993a1[_0x834e('0x21')]),'form':{'operation':_0x834e('0x22'),'username':_0xb993a1['username'],'sessionName':_0x1fd2c6[_0x834e('0x23')],'elementType':_0x834e('0x24'),'element':JSON[_0x834e('0x25')](_0x4ab05d)},'json':!![]};return request(_0x4e3f48)['then'](function(_0x24fcf7){if(_0x24fcf7[_0x834e('0x26')]){return BPromise['resolve']({'id':_0x24fcf7['result']['id']});}else{throw new Error(util[_0x834e('0x20')]('Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s',JSON[_0x834e('0x25')](_0x24fcf7[_0x834e('0x27')])));}})[_0x834e('0x28')](function(_0x2cc2eb){var _0x3cd928=_0x2cc2eb[_0x834e('0x29')]||0x1f4;logger['error']('[vTiger],\x20%s,\x20%s,\x20%s','createTicket',_0x3cd928,JSON['stringify'](_0x2cc2eb));});}function getUser(_0x2c7a8d,_0x567cea,_0x106d6a){if(intUtil['validateEmail'](_0x567cea)){logger[_0x834e('0x19')](_0x834e('0x2a'),_0x567cea);return request({'method':_0x834e('0x2b'),'uri':util[_0x834e('0x20')](_0x834e('0x2c'),_0x2c7a8d[_0x834e('0x21')]),'qs':{'operation':_0x834e('0x2d'),'username':_0x2c7a8d[_0x834e('0x2e')],'sessionName':_0x106d6a[_0x834e('0x23')],'query':util['format'](_0x834e('0x2f'),_0x567cea)},'json':!![]})['then'](function(_0x2c75c2){if(_0x2c75c2[_0x834e('0x26')]&&_0x2c75c2[_0x834e('0x30')][_0x834e('0xd')]){logger[_0x834e('0x19')](_0x834e('0x31'));return BPromise[_0x834e('0x32')]({'id':_0x2c75c2[_0x834e('0x30')][0x0]['id'],'email':_0x2c75c2[_0x834e('0x30')][0x0][_0x834e('0x33')],'name':_0x2c75c2['result'][0x0][_0x834e('0x34')]+'\x20'+_0x2c75c2[_0x834e('0x30')][_0x834e('0x35')]});}else{logger[_0x834e('0x19')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return BPromise[_0x834e('0x32')]({'id':_0x106d6a[_0x834e('0x36')],'email':_0x2c7a8d['username'],'name':'admin'});}})['catch'](function(_0x3e58fa){var _0x41bf4d=_0x3e58fa[_0x834e('0x29')]||0x1f4;logger[_0x834e('0x27')](_0x834e('0x37'),_0x834e('0x38'),_0x41bf4d,JSON['stringify'](_0x3e58fa));});}else{logger[_0x834e('0x19')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return BPromise[_0x834e('0x32')]({'id':_0x106d6a[_0x834e('0x36')],'email':_0x2c7a8d['username'],'name':_0x834e('0x39')})[_0x834e('0x28')](function(_0x491c28){var _0x481f70=_0x491c28[_0x834e('0x29')]||0x1f4;logger[_0x834e('0x27')](_0x834e('0x37'),_0x834e('0x38'),_0x481f70,JSON[_0x834e('0x25')](_0x491c28));});}}function getEndUser(_0x4ca43c,_0x1c5ed6,_0x548d1d,_0x50c243){logger[_0x834e('0x19')]('Searching\x20end\x20user\x20with\x20phone',_0x548d1d);return request({'method':_0x834e('0x2b'),'uri':util[_0x834e('0x20')](_0x834e('0x2c'),_0x4ca43c[_0x834e('0x21')]),'qs':{'operation':_0x834e('0x2d'),'username':_0x4ca43c['username'],'sessionName':_0x50c243[_0x834e('0x23')],'query':util[_0x834e('0x20')](_0x834e('0x3a'),_0x548d1d,_0x548d1d,_0x548d1d,_0x548d1d,_0x548d1d)},'json':!![]})['then'](function(_0x35380e){if(_0x35380e[_0x834e('0x26')]&&_0x35380e['result'][_0x834e('0xd')]){logger['info'](_0x834e('0x3b'));return BPromise[_0x834e('0x32')]({'id':_0x35380e['result'][0x0]['id'],'name':_0x35380e['result'][0x0][_0x834e('0x3c')]+'\x20'+_0x35380e[_0x834e('0x30')][0x0][_0x834e('0x3d')],'phone':_0x548d1d});}else{logger[_0x834e('0x19')](_0x834e('0x3e'));return request({'method':_0x834e('0x1f'),'uri':util[_0x834e('0x20')]('%s/webservice.php',_0x4ca43c[_0x834e('0x21')]),'form':{'operation':'create','sessionName':_0x50c243[_0x834e('0x23')],'elementType':'Contacts','element':JSON[_0x834e('0x25')]({'lastname':_0x1c5ed6,'phone':_0x548d1d,'assigned_user_id':'\x20'})},'json':!![]})['then'](function(_0x361f60){logger[_0x834e('0x19')]('Enduser\x20created.');return BPromise[_0x834e('0x32')]({'id':_0x361f60[_0x834e('0x30')]['id'],'name':_0x361f60[_0x834e('0x30')][_0x834e('0x3d')],'phone':_0x361f60[_0x834e('0x30')][_0x834e('0x3f')]});})[_0x834e('0x28')](function(_0x3ccd8e){var _0x5dc63b=_0x3ccd8e[_0x834e('0x29')]||0x1f4;logger['error'](_0x834e('0x37'),_0x834e('0x40'),_0x5dc63b,JSON['stringify'](_0x3ccd8e));});}});}function getConnection(_0x112306){var _0x42fd90=_0x112306[_0x834e('0x2e')];var _0x2112d5=_0x112306[_0x834e('0x41')];return request({'method':_0x834e('0x2b'),'uri':util['format']('%s/webservice.php',_0x112306[_0x834e('0x21')]),'qs':{'operation':_0x834e('0x42'),'username':_0x42fd90},'json':!![]})[_0x834e('0x43')](function(_0x40ff5a){if(_0x40ff5a[_0x834e('0x26')]){return request({'method':_0x834e('0x1f'),'uri':util[_0x834e('0x20')](_0x834e('0x2c'),_0x112306[_0x834e('0x21')]),'form':{'operation':_0x834e('0x44'),'username':_0x42fd90,'accessKey':md5(_0x40ff5a[_0x834e('0x30')][_0x834e('0x45')]+_0x2112d5)},'json':!![]});}})[_0x834e('0x43')](function(_0x1a3237){if(_0x1a3237[_0x834e('0x26')]){return BPromise[_0x834e('0x32')](_0x1a3237[_0x834e('0x30')]);}else{throw new Error(util[_0x834e('0x20')](_0x834e('0x46'),_0x112306['id']));}})[_0x834e('0x28')](function(_0x4cfacd){var _0x1cc0b8=_0x4cfacd[_0x834e('0x29')]||0x1f4;logger['error'](_0x834e('0x37'),_0x834e('0x47'),_0x1cc0b8,JSON['stringify'](_0x4cfacd));});}function request(_0x3dcca3){logger[_0x834e('0x19')](_0x834e('0x48'),JSON[_0x834e('0x25')](_0x3dcca3));return rp(_0x3dcca3);}exports[_0x834e('0x49')]=function(_0xb77aab,_0x4549ba,_0x4a8b32,_0x1ad7fe,_0x8bc6c6,_0x3e0550){var _0x363675,_0x86ad2b,_0x396bbe,_0x344b51;_0x3e0550[_0x834e('0x21')]=intUtil['stripTrailingSlash'](_0x3e0550[_0x834e('0x21')]);if(_0x8bc6c6&&_0x8bc6c6['monitor_format']){logger[_0x834e('0x19')]('[QUEUE]',_0x834e('0x4a'));_0x4549ba['recordingURL']=util['format'](_0x834e('0x4b'),_0x3e0550[_0x834e('0x4c')],_0x4549ba['uniqueid'],md5(_0x4549ba['uniqueid']));}else{_0x4549ba[_0x834e('0x4d')]='';}return getConnection(_0x3e0550)[_0x834e('0x43')](function(_0x138ed2){_0x344b51=_0x138ed2;return getUser(_0x3e0550,_0x1ad7fe[_0x834e('0x4e')],_0x344b51);})[_0x834e('0x43')](function(_0x315858){_0x363675=_0x315858;logger[_0x834e('0x19')](_0x834e('0x4f'),_0x363675['id']);return getEndUser(_0x3e0550,_0x4549ba['calleridname'],_0x4549ba[_0x834e('0x50')],_0x344b51);})[_0x834e('0x43')](function(_0x5d5ac2){_0x86ad2b=_0x5d5ac2;logger[_0x834e('0x19')]('The\x20Enduser\x20ID\x20is:',_0x86ad2b['id']);return createTicket(_0x3e0550,_0x363675,_0x86ad2b,_0x4a8b32,_0x4549ba,_0x4a8b32[_0x834e('0x51')],_0x344b51);})[_0x834e('0x43')](function(_0x5160c4){_0x396bbe=_0x5160c4;logger[_0x834e('0x19')](_0x834e('0x52'));logger[_0x834e('0x19')](_0x834e('0x53'),_0x396bbe['id']);var _0x5a2924=util[_0x834e('0x20')](_0x834e('0x54'),_0x3e0550[_0x834e('0x21')],_['split'](_0x396bbe['id'],'x')[0x1]);logger[_0x834e('0x19')](_0x834e('0x55'),_0x834e('0x56'));emit(util[_0x834e('0x20')](_0x834e('0x57'),_0x1ad7fe[_0x834e('0x17')]),_0x834e('0x58'),{'uri':_0x5a2924});})[_0x834e('0x28')](function(_0x208c21){logger[_0x834e('0x27')](_0x834e('0x55'),JSON[_0x834e('0x25')](_0x208c21));});};exports[_0x834e('0x59')]=function(_0x1659c8,_0x460a7a,_0x17b8e3,_0x297cce,_0x14ed83,_0x193a15,_0x3e3467){var _0xed4081,_0x2cb233,_0x5c83eb,_0x2145cf;_0x193a15[_0x834e('0x21')]=intUtil[_0x834e('0x5a')](_0x193a15[_0x834e('0x21')]);_0x193a15['serverUrl']=intUtil[_0x834e('0x5a')](_0x193a15['serverUrl']);if(_0x3e3467&&_0x3e3467['recordingFormat']&&_0x3e3467[_0x834e('0x5b')]!==_0x834e('0x5c')){logger[_0x834e('0x19')](_0x834e('0x5d'),_0x834e('0x4a'));_0x460a7a[_0x834e('0x4d')]=util[_0x834e('0x20')](_0x834e('0x4b'),_0x193a15['serverUrl'],_0x460a7a[_0x834e('0x5e')],md5(_0x460a7a['uniqueid']));}return getConnection(_0x193a15)[_0x834e('0x43')](function(_0xd35dda){_0x2145cf=_0xd35dda;return getUser(_0x193a15,_0x297cce['email'],_0x2145cf);})['then'](function(_0x4a4def){_0xed4081=_0x4a4def;logger[_0x834e('0x19')](_0x834e('0x4f'),_0xed4081['id']);return getEndUser(_0x193a15,_0x460a7a[_0x834e('0x5f')],_0x460a7a[_0x834e('0x60')],_0x2145cf);})['then'](function(_0x2b0d93){_0x2cb233=_0x2b0d93;logger[_0x834e('0x19')](_0x834e('0x61'),_0x2cb233['id']);return createTicket(_0x193a15,_0xed4081,_0x2cb233,_0x17b8e3,_0x460a7a,_0x17b8e3[_0x834e('0x51')],_0x2145cf);})[_0x834e('0x43')](function(_0x28b5c9){_0x5c83eb=_0x28b5c9;logger[_0x834e('0x19')](_0x834e('0x52'));logger[_0x834e('0x19')](_0x834e('0x53'),_0x5c83eb['id']);var _0x5b2bf6=util[_0x834e('0x20')](_0x834e('0x54'),_0x193a15[_0x834e('0x21')],_[_0x834e('0x62')](_0x5c83eb['id'],'x')[0x1]);logger['info'](_0x834e('0x5d'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util['format']('user:%s',_0x297cce[_0x834e('0x17')]),_0x834e('0x58'),{'uri':_0x5b2bf6});})['catch'](function(_0x2645df){logger[_0x834e('0x27')]('[OUTBOUND]',JSON[_0x834e('0x25')](_0x2645df));});};exports[_0x834e('0x63')]=function(_0x4b88e7,_0x5df169,_0x346be5,_0x2a42a3,_0x8bc7d9,_0x44c909){var _0x1d8e7,_0x493239,_0x264a6f,_0x520367;_0x44c909[_0x834e('0x21')]=intUtil[_0x834e('0x5a')](_0x44c909[_0x834e('0x21')]);_0x44c909['serverUrl']=intUtil[_0x834e('0x5a')](_0x44c909[_0x834e('0x4c')]);if(_0x8bc7d9&&_0x8bc7d9['monitor_format']){logger[_0x834e('0x19')]('['+_0x5df169[_0x834e('0x64')][_0x834e('0x65')]()+']','Recording\x20is\x20enabled!');_0x5df169[_0x834e('0x4d')]=util[_0x834e('0x20')](_0x834e('0x4b'),_0x44c909[_0x834e('0x4c')],_0x5df169[_0x834e('0x5e')],md5(_0x5df169[_0x834e('0x5e')]));}else{_0x5df169[_0x834e('0x4d')]='';}return getConnection(_0x44c909)[_0x834e('0x43')](function(_0xd49002){_0x520367=_0xd49002;return getUser(_0x44c909,'',_0x520367);})[_0x834e('0x43')](function(_0x57d898){_0x1d8e7=_0x57d898;logger['info']('The\x20User\x20ID\x20is:',_0x1d8e7['id']);return getEndUser(_0x44c909,_0x5df169[_0x834e('0x66')],_0x5df169[_0x834e('0x50')],_0x520367);})[_0x834e('0x43')](function(_0x37fa2c){_0x493239=_0x37fa2c;logger[_0x834e('0x19')]('The\x20Enduser\x20ID\x20is:',_0x493239['id']);return createTicket(_0x44c909,_0x1d8e7,_0x493239,_0x346be5,_0x5df169,_0x346be5['Fields'],_0x520367);})[_0x834e('0x43')](function(_0x1ad428){_0x264a6f=_0x1ad428;logger[_0x834e('0x19')](_0x834e('0x52'));logger[_0x834e('0x19')]('The\x20Ticket\x20ID\x20is:',_0x264a6f['id']);})[_0x834e('0x28')](function(_0x2b162a){logger[_0x834e('0x27')]('['+_0x5df169['lastevent'][_0x834e('0x65')]()+']',JSON[_0x834e('0x25')](_0x2b162a));});};
\ No newline at end of file
+var _0x9c44=['stringify','validateEmail','Getting\x20agent\x20with\x20email','GET','%s/webservice.php','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','success','length','Agent\x20found!','email1','first_name','last_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','getUser','admin','Searching\x20end\x20user\x20with\x20phone','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','login','Account\x20%d\x20is\x20not\x20valid','getConnection','[HTTP]','queue','stripTrailingSlash','[QUEUE]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','recordingURL','email','The\x20User\x20ID\x20is:','calleridname','The\x20Enduser\x20ID\x20is:','Fields','The\x20Ticket\x20ID\x20is:','split','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','destcalleridname','destcalleridnum','Ticket\x20created!','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','trigger:browser:url','unmanaged','monitor_format','toUpperCase','calleridnum','lastevent','bluebird','md5','util','ioredis','./util','../../../../config/environment','redis','localhost','socket.io-emitter','emit','forEach','string','picklist','idField','content','type','variable','variableName','toString','customVariable','Variable','name','toLowerCase','info','Creating\x20new\x20ticket...','merge','Normal','Open','getString','Subjects','POST','remoteUri','create','username','sessionName','then','resolve','result','format','Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s','catch','statusCode','error','[vTiger],\x20%s,\x20%s,\x20%s'];(function(_0x45efab,_0x4fa050){var _0x214bb7=function(_0x11c55f){while(--_0x11c55f){_0x45efab['push'](_0x45efab['shift']());}};_0x214bb7(++_0x4fa050);}(_0x9c44,0x178));var _0x49c4=function(_0x24061a,_0x1c9f4d){_0x24061a=_0x24061a-0x0;var _0x82054e=_0x9c44[_0x24061a];return _0x82054e;};'use strict';var _=require('lodash');var rp=require('request-promise');var BPromise=require(_0x49c4('0x0'));var md5=require(_0x49c4('0x1'));var util=require(_0x49c4('0x2'));var Redis=require(_0x49c4('0x3'));var intUtil=require(_0x49c4('0x4'));var config=require(_0x49c4('0x5'));var logger=require('../../../../config/logger')('vTiger');config[_0x49c4('0x6')]=_['defaults'](config[_0x49c4('0x6')],{'host':_0x49c4('0x7'),'port':0x18eb});var io=require(_0x49c4('0x8'))(new Redis(config[_0x49c4('0x6')]));function emit(_0x436234,_0x511d53,_0x11c586){io['to'](_0x436234)[_0x49c4('0x9')](_0x511d53,_0x11c586);}function getCustomFields(_0x1d13fb,_0x4487ca){var _0x4c7d3a={};if(_0x1d13fb['length']>0x0){_[_0x49c4('0xa')](_0x1d13fb,function(_0x313e73){if(_['includes']([_0x49c4('0xb'),_0x49c4('0xc')],_0x313e73['type'])&&_0x313e73['idField']){_0x4c7d3a[_0x313e73[_0x49c4('0xd')]]=_0x313e73[_0x49c4('0xe')]['toString']();}else if(_0x313e73[_0x49c4('0xf')]===_0x49c4('0x10')&&_0x313e73['variableName']&&_0x313e73[_0x49c4('0xd')]&&_0x4487ca[_0x313e73[_0x49c4('0x11')]]){_0x4c7d3a[_0x313e73[_0x49c4('0xd')]]=_0x4487ca[_0x313e73[_0x49c4('0x11')]][_0x49c4('0x12')]();}else if(_0x313e73[_0x49c4('0xf')]===_0x49c4('0x13')&&_0x313e73[_0x49c4('0x14')]&&_0x313e73['Variable'][_0x49c4('0x15')]&&_0x313e73[_0x49c4('0xd')]&&_0x4487ca[_0x313e73[_0x49c4('0x14')][_0x49c4('0x15')][_0x49c4('0x16')]()]){_0x4c7d3a[_0x313e73['idField']]=_0x4487ca[_0x313e73[_0x49c4('0x14')][_0x49c4('0x15')]['toLowerCase']()]['toString']();}});}return _0x4c7d3a;}function createTicket(_0x3c782d,_0x2f82d5,_0x3addb2,_0x59f29b,_0x24856d,_0x50b151,_0x2cbd50){logger[_0x49c4('0x17')](_0x49c4('0x18'));var _0x291526=_[_0x49c4('0x19')]({'parent_id':'','assigned_user_id':_0x2f82d5['id'],'ticketpriorities':_0x49c4('0x1a'),'ticketstatus':_0x49c4('0x1b'),'ticket_title':intUtil[_0x49c4('0x1c')](_0x59f29b[_0x49c4('0x1d')],_0x24856d,'\x20'),'description':intUtil['getString'](_0x59f29b['Descriptions'],_0x24856d,'\x0a'),'contact_id':_0x3addb2['id']},getCustomFields(_0x50b151,_0x24856d));var _0x57f502={'method':_0x49c4('0x1e'),'uri':util['format']('%s/webservice.php',_0x3c782d[_0x49c4('0x1f')]),'form':{'operation':_0x49c4('0x20'),'username':_0x3c782d[_0x49c4('0x21')],'sessionName':_0x2cbd50[_0x49c4('0x22')],'elementType':'HelpDesk','element':JSON['stringify'](_0x291526)},'json':!![]};return request(_0x57f502)[_0x49c4('0x23')](function(_0x9cb797){if(_0x9cb797['success']){return BPromise[_0x49c4('0x24')]({'id':_0x9cb797[_0x49c4('0x25')]['id']});}else{throw new Error(util[_0x49c4('0x26')](_0x49c4('0x27'),JSON['stringify'](_0x9cb797['error'])));}})[_0x49c4('0x28')](function(_0x53c199){var _0x3800b7=_0x53c199[_0x49c4('0x29')]||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),'createTicket',_0x3800b7,JSON[_0x49c4('0x2c')](_0x53c199));});}function getUser(_0x2b2793,_0x46e04d,_0x4f28a2){if(intUtil[_0x49c4('0x2d')](_0x46e04d)){logger[_0x49c4('0x17')](_0x49c4('0x2e'),_0x46e04d);return request({'method':_0x49c4('0x2f'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x2b2793[_0x49c4('0x1f')]),'qs':{'operation':'query','username':_0x2b2793['username'],'sessionName':_0x4f28a2['sessionName'],'query':util[_0x49c4('0x26')](_0x49c4('0x31'),_0x46e04d)},'json':!![]})[_0x49c4('0x23')](function(_0x27e467){if(_0x27e467[_0x49c4('0x32')]&&_0x27e467['result'][_0x49c4('0x33')]){logger[_0x49c4('0x17')](_0x49c4('0x34'));return BPromise[_0x49c4('0x24')]({'id':_0x27e467['result'][0x0]['id'],'email':_0x27e467['result'][0x0][_0x49c4('0x35')],'name':_0x27e467[_0x49c4('0x25')][0x0][_0x49c4('0x36')]+'\x20'+_0x27e467[_0x49c4('0x25')][_0x49c4('0x37')]});}else{logger['info'](_0x49c4('0x38'));return BPromise[_0x49c4('0x24')]({'id':_0x4f28a2[_0x49c4('0x39')],'email':_0x2b2793['username'],'name':'admin'});}})[_0x49c4('0x28')](function(_0x1991e9){var _0x3bec0a=_0x1991e9[_0x49c4('0x29')]||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),_0x49c4('0x3a'),_0x3bec0a,JSON[_0x49c4('0x2c')](_0x1991e9));});}else{logger[_0x49c4('0x17')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return BPromise[_0x49c4('0x24')]({'id':_0x4f28a2['userId'],'email':_0x2b2793[_0x49c4('0x21')],'name':_0x49c4('0x3b')})[_0x49c4('0x28')](function(_0x1c2830){var _0x4ed4f8=_0x1c2830[_0x49c4('0x29')]||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),'getUser',_0x4ed4f8,JSON[_0x49c4('0x2c')](_0x1c2830));});}}function getEndUser(_0x21d8c7,_0x178987,_0x5e5366,_0x1ba7a0){logger[_0x49c4('0x17')](_0x49c4('0x3c'),_0x5e5366);return request({'method':_0x49c4('0x2f'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x21d8c7[_0x49c4('0x1f')]),'qs':{'operation':'query','username':_0x21d8c7[_0x49c4('0x21')],'sessionName':_0x1ba7a0[_0x49c4('0x22')],'query':util[_0x49c4('0x26')](_0x49c4('0x3d'),_0x5e5366,_0x5e5366,_0x5e5366,_0x5e5366,_0x5e5366)},'json':!![]})[_0x49c4('0x23')](function(_0x29dd5d){if(_0x29dd5d[_0x49c4('0x32')]&&_0x29dd5d[_0x49c4('0x25')][_0x49c4('0x33')]){logger[_0x49c4('0x17')](_0x49c4('0x3e'));return BPromise[_0x49c4('0x24')]({'id':_0x29dd5d[_0x49c4('0x25')][0x0]['id'],'name':_0x29dd5d['result'][0x0][_0x49c4('0x3f')]+'\x20'+_0x29dd5d['result'][0x0][_0x49c4('0x40')],'phone':_0x5e5366});}else{logger[_0x49c4('0x17')](_0x49c4('0x41'));return request({'method':_0x49c4('0x1e'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x21d8c7['remoteUri']),'form':{'operation':'create','sessionName':_0x1ba7a0[_0x49c4('0x22')],'elementType':_0x49c4('0x42'),'element':JSON[_0x49c4('0x2c')]({'lastname':_0x178987,'phone':_0x5e5366,'assigned_user_id':'\x20'})},'json':!![]})[_0x49c4('0x23')](function(_0x490823){logger[_0x49c4('0x17')](_0x49c4('0x43'));return BPromise[_0x49c4('0x24')]({'id':_0x490823[_0x49c4('0x25')]['id'],'name':_0x490823[_0x49c4('0x25')][_0x49c4('0x40')],'phone':_0x490823[_0x49c4('0x25')][_0x49c4('0x44')]});})[_0x49c4('0x28')](function(_0x5640d3){var _0x2ad771=_0x5640d3['statusCode']||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),_0x49c4('0x45'),_0x2ad771,JSON[_0x49c4('0x2c')](_0x5640d3));});}});}function getConnection(_0x2d93d8){var _0x5b296d=_0x2d93d8[_0x49c4('0x21')];var _0x15b674=_0x2d93d8[_0x49c4('0x46')];return request({'method':_0x49c4('0x2f'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x2d93d8[_0x49c4('0x1f')]),'qs':{'operation':'getchallenge','username':_0x5b296d},'json':!![]})[_0x49c4('0x23')](function(_0x5cfff9){if(_0x5cfff9[_0x49c4('0x32')]){return request({'method':_0x49c4('0x1e'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x2d93d8[_0x49c4('0x1f')]),'form':{'operation':_0x49c4('0x47'),'username':_0x5b296d,'accessKey':md5(_0x5cfff9[_0x49c4('0x25')]['token']+_0x15b674)},'json':!![]});}})[_0x49c4('0x23')](function(_0x3feaf0){if(_0x3feaf0['success']){return BPromise[_0x49c4('0x24')](_0x3feaf0[_0x49c4('0x25')]);}else{throw new Error(util[_0x49c4('0x26')](_0x49c4('0x48'),_0x2d93d8['id']));}})['catch'](function(_0x5d8bf0){var _0x144fd2=_0x5d8bf0['statusCode']||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),_0x49c4('0x49'),_0x144fd2,JSON[_0x49c4('0x2c')](_0x5d8bf0));});}function request(_0x240c20){logger[_0x49c4('0x17')](_0x49c4('0x4a'),JSON['stringify'](_0x240c20));return rp(_0x240c20);}exports[_0x49c4('0x4b')]=function(_0x1550ce,_0x3936d3,_0x3d944c,_0x17ef75,_0x2644c0,_0x156748){var _0x25d174,_0x1e0b4f,_0x1856be,_0x5b822f;_0x156748['remoteUri']=intUtil[_0x49c4('0x4c')](_0x156748[_0x49c4('0x1f')]);if(_0x2644c0&&_0x2644c0['monitor_format']){logger['info'](_0x49c4('0x4d'),'Recording\x20is\x20enabled!');_0x3936d3['recordingURL']=util[_0x49c4('0x26')](_0x49c4('0x4e'),_0x156748[_0x49c4('0x4f')],_0x3936d3[_0x49c4('0x50')],md5(_0x3936d3[_0x49c4('0x50')]));}else{_0x3936d3[_0x49c4('0x51')]='';}return getConnection(_0x156748)[_0x49c4('0x23')](function(_0x50798e){_0x5b822f=_0x50798e;return getUser(_0x156748,_0x17ef75[_0x49c4('0x52')],_0x5b822f);})[_0x49c4('0x23')](function(_0x207572){_0x25d174=_0x207572;logger[_0x49c4('0x17')](_0x49c4('0x53'),_0x25d174['id']);return getEndUser(_0x156748,_0x3936d3[_0x49c4('0x54')],_0x3936d3['calleridnum'],_0x5b822f);})['then'](function(_0x1ef0c1){_0x1e0b4f=_0x1ef0c1;logger[_0x49c4('0x17')](_0x49c4('0x55'),_0x1e0b4f['id']);return createTicket(_0x156748,_0x25d174,_0x1e0b4f,_0x3d944c,_0x3936d3,_0x3d944c[_0x49c4('0x56')],_0x5b822f);})[_0x49c4('0x23')](function(_0x6b2592){_0x1856be=_0x6b2592;logger[_0x49c4('0x17')]('Ticket\x20created!');logger[_0x49c4('0x17')](_0x49c4('0x57'),_0x1856be['id']);var _0x4ba4eb=util[_0x49c4('0x26')]('%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT',_0x156748[_0x49c4('0x1f')],_[_0x49c4('0x58')](_0x1856be['id'],'x')[0x1]);logger[_0x49c4('0x17')](_0x49c4('0x4d'),_0x49c4('0x59'));emit(util[_0x49c4('0x26')](_0x49c4('0x5a'),_0x17ef75[_0x49c4('0x15')]),'trigger:browser:url',{'uri':_0x4ba4eb});})[_0x49c4('0x28')](function(_0x27b9c2){logger['error'](_0x49c4('0x4d'),JSON[_0x49c4('0x2c')](_0x27b9c2));});};exports['outbound']=function(_0x39c455,_0x42e0e6,_0x4f50bf,_0x4dc54d,_0x589484,_0x513879,_0xc43386){var _0x54947d,_0xb20a5d,_0x32f344,_0x515240;_0x513879[_0x49c4('0x1f')]=intUtil[_0x49c4('0x4c')](_0x513879['remoteUri']);_0x513879[_0x49c4('0x4f')]=intUtil[_0x49c4('0x4c')](_0x513879[_0x49c4('0x4f')]);if(_0xc43386&&_0xc43386[_0x49c4('0x5b')]&&_0xc43386['recordingFormat']!==_0x49c4('0x5c')){logger[_0x49c4('0x17')](_0x49c4('0x5d'),_0x49c4('0x5e'));_0x42e0e6['recordingURL']=util[_0x49c4('0x26')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x513879['serverUrl'],_0x42e0e6['uniqueid'],md5(_0x42e0e6['uniqueid']));}return getConnection(_0x513879)[_0x49c4('0x23')](function(_0x32eaef){_0x515240=_0x32eaef;return getUser(_0x513879,_0x4dc54d[_0x49c4('0x52')],_0x515240);})[_0x49c4('0x23')](function(_0x5b056e){_0x54947d=_0x5b056e;logger['info'](_0x49c4('0x53'),_0x54947d['id']);return getEndUser(_0x513879,_0x42e0e6[_0x49c4('0x5f')],_0x42e0e6[_0x49c4('0x60')],_0x515240);})[_0x49c4('0x23')](function(_0x102c15){_0xb20a5d=_0x102c15;logger[_0x49c4('0x17')](_0x49c4('0x55'),_0xb20a5d['id']);return createTicket(_0x513879,_0x54947d,_0xb20a5d,_0x4f50bf,_0x42e0e6,_0x4f50bf[_0x49c4('0x56')],_0x515240);})['then'](function(_0x2276db){_0x32f344=_0x2276db;logger['info'](_0x49c4('0x61'));logger[_0x49c4('0x17')](_0x49c4('0x57'),_0x32f344['id']);var _0x1ea1b4=util[_0x49c4('0x26')](_0x49c4('0x62'),_0x513879[_0x49c4('0x1f')],_[_0x49c4('0x58')](_0x32f344['id'],'x')[0x1]);logger[_0x49c4('0x17')](_0x49c4('0x5d'),_0x49c4('0x59'));emit(util[_0x49c4('0x26')](_0x49c4('0x5a'),_0x4dc54d[_0x49c4('0x15')]),_0x49c4('0x63'),{'uri':_0x1ea1b4});})[_0x49c4('0x28')](function(_0x371e49){logger[_0x49c4('0x2a')]('[OUTBOUND]',JSON['stringify'](_0x371e49));});};exports[_0x49c4('0x64')]=function(_0x16b3e8,_0x4af680,_0x1a15f3,_0x38ad50,_0x2939fd,_0x16e7b1){var _0x4d6aaa,_0x5a14a5,_0x4a85d4,_0x2e90d8;_0x16e7b1[_0x49c4('0x1f')]=intUtil[_0x49c4('0x4c')](_0x16e7b1[_0x49c4('0x1f')]);_0x16e7b1[_0x49c4('0x4f')]=intUtil[_0x49c4('0x4c')](_0x16e7b1[_0x49c4('0x4f')]);if(_0x2939fd&&_0x2939fd[_0x49c4('0x65')]){logger[_0x49c4('0x17')]('['+_0x4af680['lastevent'][_0x49c4('0x66')]()+']',_0x49c4('0x5e'));_0x4af680[_0x49c4('0x51')]=util['format'](_0x49c4('0x4e'),_0x16e7b1[_0x49c4('0x4f')],_0x4af680[_0x49c4('0x50')],md5(_0x4af680[_0x49c4('0x50')]));}else{_0x4af680[_0x49c4('0x51')]='';}return getConnection(_0x16e7b1)[_0x49c4('0x23')](function(_0x35fa39){_0x2e90d8=_0x35fa39;return getUser(_0x16e7b1,'',_0x2e90d8);})[_0x49c4('0x23')](function(_0x4ba198){_0x4d6aaa=_0x4ba198;logger[_0x49c4('0x17')](_0x49c4('0x53'),_0x4d6aaa['id']);return getEndUser(_0x16e7b1,_0x4af680[_0x49c4('0x54')],_0x4af680[_0x49c4('0x67')],_0x2e90d8);})[_0x49c4('0x23')](function(_0x4a204d){_0x5a14a5=_0x4a204d;logger['info'](_0x49c4('0x55'),_0x5a14a5['id']);return createTicket(_0x16e7b1,_0x4d6aaa,_0x5a14a5,_0x1a15f3,_0x4af680,_0x1a15f3['Fields'],_0x2e90d8);})[_0x49c4('0x23')](function(_0x558880){_0x4a85d4=_0x558880;logger[_0x49c4('0x17')](_0x49c4('0x61'));logger[_0x49c4('0x17')](_0x49c4('0x57'),_0x4a85d4['id']);})['catch'](function(_0x123060){logger[_0x49c4('0x2a')]('['+_0x4af680[_0x49c4('0x68')][_0x49c4('0x66')]()+']',JSON[_0x49c4('0x2c')](_0x123060));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb7=['integrationTab','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','inspect','unmanaged','calleridname','calleridnum','toUpperCase','\x20Error\x20running\x20Zendesk\x20integration','request-promise','util','ioredis','./util','../../../../config/environment','../../../../config/logger','zendesk','defaults','redis','localhost','socket.io-emitter','emit','application/json','info','format','%s/tickets.json','remoteUri','POST','merge','Tags','name','getString','Subjects','Descriptions','Fields','then','Ticket\x20created!','ticket','type:user\x20role:agent\x20email:%s','count','Agent\x20found!','find','results','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me.json','Admin\x20account\x20selected.','user','Searching\x20enduser\x20with\x20phone','type:user\x20role:end-user\x20phone:%s','length','end-user','first','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/users.json','Caller\x20-\x20%s','Enduser\x20created.','%s:%s','username','password','authType','token','%s/token:%s','Basic\x20%s','toString','base64','[HTTP]','GET','map','includes','string','picklist','nameField','customField','content','type','idField','push','variable','variableName','custom_fields','Variable','toLowerCase','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','recordingURL','email','The\x20User\x20ID\x20is:','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','replace','/api/v2','error','Zendesk\x20account\x20type\x20not\x20recognized','catch','[QUEUE]\x20Error\x20running\x20Zendesk\x20integration','outbound','recordingFormat','[OUTBOUND]','destcalleridname','destcalleridnum','The\x20Ticket\x20ID\x20is:'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xadb7,0x76));var _0x7adb=function(_0x2eadf8,_0x3861dc){_0x2eadf8=_0x2eadf8-0x0;var _0x34ac5a=_0xadb7[_0x2eadf8];return _0x34ac5a;};'use strict';var _=require('lodash');var rp=require(_0x7adb('0x0'));var md5=require('md5');var util=require(_0x7adb('0x1'));var Redis=require(_0x7adb('0x2'));var intUtil=require(_0x7adb('0x3'));var config=require(_0x7adb('0x4'));var logger=require(_0x7adb('0x5'))(_0x7adb('0x6'));config['redis']=_[_0x7adb('0x7')](config[_0x7adb('0x8')],{'host':_0x7adb('0x9'),'port':0x18eb});var io=require(_0x7adb('0xa'))(new Redis(config['redis']));function emit(_0x4a46ec,_0x27fb05,_0x5a99f1){io['to'](_0x4a46ec)[_0x7adb('0xb')](_0x27fb05,_0x5a99f1);}var headers={'Content-Type':_0x7adb('0xc'),'Accept':_0x7adb('0xc')};function getTicket(_0x8e1a37,_0x55daf0,_0x7ce623,_0x21a365,_0x340bdb){logger[_0x7adb('0xd')]('Creating\x20new\x20ticket...');return request({'uri':util[_0x7adb('0xe')](_0x7adb('0xf'),_0x8e1a37[_0x7adb('0x10')]),'method':_0x7adb('0x11'),'body':{'ticket':_[_0x7adb('0x12')]({'requester_id':_0x7ce623['id'],'submitter_id':_0x55daf0?_0x55daf0['id']:undefined,'assignee_id':_0x55daf0?_0x55daf0['id']:undefined,'tags':getTags(_0x21a365[_0x7adb('0x13')],_0x7adb('0x14')),'subject':intUtil[_0x7adb('0x15')](_0x21a365[_0x7adb('0x16')],_0x340bdb,'\x20'),'description':intUtil[_0x7adb('0x15')](_0x21a365[_0x7adb('0x17')],_0x340bdb,'\x0a'),'comment':{'public':![],'body':intUtil[_0x7adb('0x15')](_0x21a365['Descriptions'],_0x340bdb,'\x0a')}},getCustomFields(_0x21a365[_0x7adb('0x18')],_0x340bdb))}})[_0x7adb('0x19')](function(_0x3ce368){logger[_0x7adb('0xd')](_0x7adb('0x1a'));return _0x3ce368[_0x7adb('0x1b')];});}function getUser(_0x1b2802,_0x42631e){if(intUtil['validateEmail'](_0x42631e)){logger[_0x7adb('0xd')]('Getting\x20agent\x20with\x20email',_0x42631e);return request({'uri':util[_0x7adb('0xe')]('%s/search.json',_0x1b2802[_0x7adb('0x10')]),'qs':{'query':util[_0x7adb('0xe')](_0x7adb('0x1c'),_0x42631e)}})[_0x7adb('0x19')](function(_0x4c72a4){if(_0x4c72a4[_0x7adb('0x1d')]){logger[_0x7adb('0xd')](_0x7adb('0x1e'));return _[_0x7adb('0x1f')](_0x4c72a4[_0x7adb('0x20')],{'email':_0x42631e,'role':'agent'});}else{logger[_0x7adb('0xd')](_0x7adb('0x21'));return request({'uri':util[_0x7adb('0xe')](_0x7adb('0x22'),_0x1b2802[_0x7adb('0x10')])})[_0x7adb('0x19')](function(_0x5517e2){logger['info'](_0x7adb('0x23'));return _0x5517e2['user'];});}});}else{logger['info'](_0x7adb('0x21'));return request({'uri':util['format']('%s/users/me.json',_0x1b2802[_0x7adb('0x10')])})['then'](function(_0x4f72bf){logger['info']('Admin\x20account\x20selected.');return _0x4f72bf[_0x7adb('0x24')];});}}function getEndUser(_0x20a3ce,_0x51a7f5,_0x50db0a){logger[_0x7adb('0xd')](_0x7adb('0x25'),_0x50db0a);return request({'uri':util[_0x7adb('0xe')]('%s/search.json',_0x20a3ce['remoteUri']),'qs':{'query':util[_0x7adb('0xe')](_0x7adb('0x26'),_0x50db0a)}})[_0x7adb('0x19')](function(_0x5c731c){var _0x8ee7e4;if(_0x5c731c[_0x7adb('0x20')][_0x7adb('0x27')]){_0x5c731c[_0x7adb('0x20')]=_['filter'](_0x5c731c[_0x7adb('0x20')],{'suspended':![],'role':_0x7adb('0x28')});if(_0x5c731c['results']['length']){_0x8ee7e4=_[_0x7adb('0x29')](_0x5c731c[_0x7adb('0x20')]);}}if(_0x8ee7e4){logger[_0x7adb('0xd')](_0x7adb('0x2a'));return _0x8ee7e4;}else{logger[_0x7adb('0xd')](_0x7adb('0x2b'));return request({'uri':util[_0x7adb('0xe')](_0x7adb('0x2c'),_0x20a3ce[_0x7adb('0x10')]),'method':'POST','body':{'user':{'role':_0x7adb('0x28'),'name':util['format'](_0x7adb('0x2d'),_0x51a7f5||_0x50db0a),'phone':_0x50db0a}}})[_0x7adb('0x19')](function(_0x1dc296){logger['info'](_0x7adb('0x2e'));return _0x1dc296['user'];});}});}function getAuth(_0x329788){var _0x29d97b;if(_0x329788['authType']==='password'){_0x29d97b=util[_0x7adb('0xe')](_0x7adb('0x2f'),_0x329788[_0x7adb('0x30')],_0x329788[_0x7adb('0x31')]);}else if(_0x329788[_0x7adb('0x32')]===_0x7adb('0x33')){_0x29d97b=util[_0x7adb('0xe')](_0x7adb('0x34'),_0x329788[_0x7adb('0x30')],_0x329788[_0x7adb('0x33')]);}return util[_0x7adb('0xe')](_0x7adb('0x35'),new Buffer(_0x29d97b)[_0x7adb('0x36')](_0x7adb('0x37')));}function request(_0xe5f0ad){logger['debug'](_0x7adb('0x38'),JSON['stringify'](_0xe5f0ad));return rp(_['defaults'](_0xe5f0ad,{'method':_0x7adb('0x39'),'headers':headers,'json':!![]}));}function getTags(_0x658a8d,_0xb8acc1){var _0x2f1fd5=[];if(_0x658a8d&&_0x658a8d[_0x7adb('0x27')]>0x0){_0x2f1fd5=_[_0x7adb('0x3a')](_0x658a8d,_0xb8acc1);}return _0x2f1fd5;}function getCustomFields(_0x57de33,_0x1810ea){var _0x6cd638=[];var _0x2e2c67={'custom_fields':[]};if(_0x57de33[_0x7adb('0x27')]>0x0){_['forEach'](_0x57de33,function(_0x5c1573){if(_[_0x7adb('0x3b')]([_0x7adb('0x3c'),_0x7adb('0x3d')],_0x5c1573['type'])&&_0x5c1573[_0x7adb('0x3e')]&&!_0x5c1573[_0x7adb('0x3f')]){_0x2e2c67[_0x5c1573[_0x7adb('0x3e')]['toLowerCase']()]=_0x5c1573[_0x7adb('0x40')][_0x7adb('0x36')]();}else if(_['includes']([_0x7adb('0x3c'),_0x7adb('0x3d')],_0x5c1573[_0x7adb('0x41')])&&_0x5c1573[_0x7adb('0x42')]&&_0x5c1573['customField']){_0x2e2c67['custom_fields'][_0x7adb('0x43')]({'id':_0x5c1573[_0x7adb('0x42')],'value':_0x5c1573['content'][_0x7adb('0x36')]()});}else if(_0x5c1573['type']===_0x7adb('0x44')&&_0x5c1573[_0x7adb('0x45')]&&_0x5c1573[_0x7adb('0x42')]&&_0x5c1573[_0x7adb('0x3f')]){_0x1810ea[_0x5c1573['variableName']]&&_0x2e2c67[_0x7adb('0x46')][_0x7adb('0x43')]({'id':_0x5c1573[_0x7adb('0x42')],'value':_0x1810ea[_0x5c1573[_0x7adb('0x45')]][_0x7adb('0x36')]()});}else if(_0x5c1573[_0x7adb('0x41')]==='customVariable'&&_0x5c1573[_0x7adb('0x47')]&&_0x5c1573['Variable']['name']&&_0x5c1573[_0x7adb('0x42')]&&_0x5c1573[_0x7adb('0x3f')]){_0x1810ea[_0x5c1573[_0x7adb('0x47')][_0x7adb('0x14')][_0x7adb('0x48')]()]&&_0x2e2c67['custom_fields']['push']({'id':_0x5c1573[_0x7adb('0x42')],'value':_0x1810ea[_0x5c1573[_0x7adb('0x47')][_0x7adb('0x14')]['toLowerCase']()]['toString']()});}});}return _0x2e2c67;}exports['queue']=function(_0x57fed5,_0x1629e3,_0x1fd7cb,_0x39216e,_0x489584,_0x562f89){var _0x272fa1,_0x189f2e;_0x562f89[_0x7adb('0x10')]=intUtil[_0x7adb('0x49')](_0x562f89['remoteUri']);_0x562f89[_0x7adb('0x4a')]=intUtil['stripTrailingSlash'](_0x562f89[_0x7adb('0x4a')]);if(_0x489584&&_0x489584[_0x7adb('0x4b')]){logger[_0x7adb('0xd')](_0x7adb('0x4c'),_0x7adb('0x4d'));_0x1629e3['recordingURL']=util[_0x7adb('0xe')](_0x7adb('0x4e'),_0x562f89['serverUrl'],_0x1629e3[_0x7adb('0x4f')],md5(_0x1629e3['uniqueid']));}else{_0x1629e3[_0x7adb('0x50')]='';}headers['Authorization']=getAuth(_0x562f89);return getUser(_0x562f89,_0x39216e[_0x7adb('0x51')])[_0x7adb('0x19')](function(_0x527bff){_0x272fa1=_0x527bff;logger[_0x7adb('0xd')](_0x7adb('0x52'),_0x272fa1['id']);return getEndUser(_0x562f89,_0x1629e3['calleridname'],_0x1629e3['calleridnum']);})[_0x7adb('0x19')](function(_0x28b228){_0x189f2e=_0x28b228;logger[_0x7adb('0xd')]('The\x20Enduser\x20ID\x20is:',_0x189f2e['id']);return getTicket(_0x562f89,_0x272fa1,_0x189f2e,_0x1fd7cb,_0x1629e3);})[_0x7adb('0x19')](function(_0x4ef620){if(_0x4ef620){logger[_0x7adb('0xd')]('The\x20Ticket\x20ID\x20is:',_0x4ef620['id']);switch(_0x562f89[_0x7adb('0x41')]){case'integrationTab':logger[_0x7adb('0xd')](_0x7adb('0x4c'),_0x7adb('0x53'));return request({'uri':util[_0x7adb('0xe')](_0x7adb('0x54'),_0x562f89['remoteUri'],_0x272fa1['id'],_0x4ef620['id']),'method':'POST'});case _0x7adb('0x55'):logger['info']('[QUEUE]',_0x7adb('0x56'));emit(util[_0x7adb('0xe')](_0x7adb('0x57'),_0x39216e[_0x7adb('0x14')]),_0x7adb('0x58'),{'uri':util[_0x7adb('0xe')](_0x7adb('0x59'),_0x562f89[_0x7adb('0x10')][_0x7adb('0x5a')](_0x7adb('0x5b'),''),_0x4ef620['id'])});break;default:logger[_0x7adb('0x5c')](_0x7adb('0x4c'),_0x7adb('0x5d'));}}})[_0x7adb('0x5e')](function(_0x36fdac){logger['error'](_0x7adb('0x5f'),util['inspect'](_0x36fdac,{'showHidden':!![],'depth':null}));});};exports[_0x7adb('0x60')]=function(_0x17644b,_0x19f83d,_0x13022c,_0xeb37ac,_0x1efa8e,_0xa72b3e,_0x559757){var _0x2c12db,_0x19777e;_0xa72b3e['remoteUri']=intUtil[_0x7adb('0x49')](_0xa72b3e['remoteUri']);_0xa72b3e[_0x7adb('0x4a')]=intUtil['stripTrailingSlash'](_0xa72b3e['serverUrl']);if(_0x559757&&_0x559757[_0x7adb('0x61')]&&_0x559757[_0x7adb('0x61')]!=='none'){logger[_0x7adb('0xd')](_0x7adb('0x62'),_0x7adb('0x4d'));_0x19f83d[_0x7adb('0x50')]=util[_0x7adb('0xe')](_0x7adb('0x4e'),_0xa72b3e[_0x7adb('0x4a')],_0x19f83d[_0x7adb('0x4f')],md5(_0x19f83d[_0x7adb('0x4f')]));}headers['Authorization']=getAuth(_0xa72b3e);return getUser(_0xa72b3e,_0xeb37ac[_0x7adb('0x51')])['then'](function(_0x7c2541){_0x2c12db=_0x7c2541;logger['info'](_0x7adb('0x52'),_0x2c12db['id']);return getEndUser(_0xa72b3e,_0x19f83d[_0x7adb('0x63')],_0x19f83d[_0x7adb('0x64')]);})['then'](function(_0x1a4c41){_0x19777e=_0x1a4c41;logger['info']('The\x20Enduser\x20ID\x20is:',_0x19777e['id']);return getTicket(_0xa72b3e,_0x2c12db,_0x19777e,_0x13022c,_0x19f83d);})['then'](function(_0x4f66e4){if(_0x4f66e4){logger[_0x7adb('0xd')](_0x7adb('0x65'),_0x4f66e4['id']);switch(_0xa72b3e[_0x7adb('0x41')]){case _0x7adb('0x66'):logger[_0x7adb('0xd')](_0x7adb('0x62'),_0x7adb('0x53'));return request({'uri':util[_0x7adb('0xe')](_0x7adb('0x54'),_0xa72b3e[_0x7adb('0x10')],_0x2c12db['id'],_0x4f66e4['id']),'method':_0x7adb('0x11')});case _0x7adb('0x55'):logger[_0x7adb('0xd')]('[OUTBOUND]',_0x7adb('0x56'));emit(util[_0x7adb('0xe')](_0x7adb('0x57'),_0xeb37ac[_0x7adb('0x14')]),_0x7adb('0x58'),{'uri':util[_0x7adb('0xe')]('%s/agent/tickets/%s',_0xa72b3e['remoteUri'][_0x7adb('0x5a')](_0x7adb('0x5b'),''),_0x4f66e4['id'])});break;default:logger['error']('[OUTBOUND]',_0x7adb('0x5d'));}}})[_0x7adb('0x5e')](function(_0x2e70c2){logger[_0x7adb('0x5c')](_0x7adb('0x67'),util[_0x7adb('0x68')](_0x2e70c2,{'showHidden':!![],'depth':null}));});};exports[_0x7adb('0x69')]=function(_0xf777a0,_0x359075,_0x5ecca0,_0x55d533,_0x28e1e3,_0x535e29){var _0xdc1437,_0x3b674c;_0x535e29[_0x7adb('0x10')]=intUtil[_0x7adb('0x49')](_0x535e29[_0x7adb('0x10')]);_0x535e29['serverUrl']=intUtil[_0x7adb('0x49')](_0x535e29[_0x7adb('0x4a')]);if(_0x28e1e3&&_0x28e1e3[_0x7adb('0x4b')]){logger[_0x7adb('0xd')]('['+_0x359075['lastevent']['toUpperCase']()+']',_0x7adb('0x4d'));_0x359075[_0x7adb('0x50')]=util[_0x7adb('0xe')](_0x7adb('0x4e'),_0x535e29['serverUrl'],_0x359075[_0x7adb('0x4f')],md5(_0x359075[_0x7adb('0x4f')]));}else{_0x359075[_0x7adb('0x50')]='';}headers['Authorization']=getAuth(_0x535e29);return getUser(_0x535e29)[_0x7adb('0x19')](function(_0x25ac78){_0xdc1437=_0x25ac78;logger[_0x7adb('0xd')](_0x7adb('0x52'),_0xdc1437['id']);return getEndUser(_0x535e29,_0x359075[_0x7adb('0x6a')],_0x359075[_0x7adb('0x6b')]);})[_0x7adb('0x19')](function(_0x311224){_0x3b674c=_0x311224;logger[_0x7adb('0xd')]('The\x20Enduser\x20ID\x20is:',_0x3b674c['id']);return getTicket(_0x535e29,_0xdc1437,_0x3b674c,_0x5ecca0,_0x359075);})[_0x7adb('0x19')](function(_0x15bce5){if(_0x15bce5){logger[_0x7adb('0xd')]('The\x20Ticket\x20ID\x20is:',_0x15bce5['id']);}})['catch'](function(_0x570e54){logger['error']('['+_0x359075['lastevent'][_0x7adb('0x6c')]()+']'+_0x7adb('0x6d'),util[_0x7adb('0x68')](_0x570e54,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0xf2c6=['format','%s/tickets.json','remoteUri','POST','merge','Tags','name','getString','Subjects','Descriptions','Fields','then','Ticket\x20created!','ticket','validateEmail','Getting\x20agent\x20with\x20email','count','Agent\x20found!','results','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','Admin\x20account\x20selected.','user','%s/users/me.json','Searching\x20enduser\x20with\x20phone','%s/search.json','length','end-user','first','%s/users.json','Enduser\x20created.','authType','password','%s:%s','username','token','%s/token:%s','Basic\x20%s','map','string','type','nameField','toLowerCase','content','toString','includes','idField','customField','push','variable','variableName','custom_fields','customVariable','Variable','queue','stripTrailingSlash','serverUrl','Recording\x20is\x20enabled!','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','recordingURL','email','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','[QUEUE]','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','replace','/api/v2','error','catch','[QUEUE]\x20Error\x20running\x20Zendesk\x20integration','outbound','recordingFormat','none','[OUTBOUND]','Authorization','The\x20User\x20ID\x20is:','destcalleridnum','integrationTab','Zendesk\x20account\x20type\x20not\x20recognized','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','inspect','unmanaged','toUpperCase','lastevent','\x20Error\x20running\x20Zendesk\x20integration','lodash','util','ioredis','./util','../../../../config/logger','zendesk','defaults','redis','socket.io-emitter','emit','application/json','info','Creating\x20new\x20ticket...'];(function(_0x21d9f7,_0x48c0f8){var _0xc45499=function(_0x115327){while(--_0x115327){_0x21d9f7['push'](_0x21d9f7['shift']());}};_0xc45499(++_0x48c0f8);}(_0xf2c6,0xc7));var _0x6f2c=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xf2c6[_0x5ddb1c];return _0x354adc;};'use strict';var _=require(_0x6f2c('0x0'));var rp=require('request-promise');var md5=require('md5');var util=require(_0x6f2c('0x1'));var Redis=require(_0x6f2c('0x2'));var intUtil=require(_0x6f2c('0x3'));var config=require('../../../../config/environment');var logger=require(_0x6f2c('0x4'))(_0x6f2c('0x5'));config['redis']=_[_0x6f2c('0x6')](config[_0x6f2c('0x7')],{'host':'localhost','port':0x18eb});var io=require(_0x6f2c('0x8'))(new Redis(config['redis']));function emit(_0x1f47e8,_0x1e442d,_0xefb7f){io['to'](_0x1f47e8)[_0x6f2c('0x9')](_0x1e442d,_0xefb7f);}var headers={'Content-Type':_0x6f2c('0xa'),'Accept':_0x6f2c('0xa')};function getTicket(_0x3dc8aa,_0x2ab324,_0xc19a20,_0x22ad65,_0x5c85fd){logger[_0x6f2c('0xb')](_0x6f2c('0xc'));return request({'uri':util[_0x6f2c('0xd')](_0x6f2c('0xe'),_0x3dc8aa[_0x6f2c('0xf')]),'method':_0x6f2c('0x10'),'body':{'ticket':_[_0x6f2c('0x11')]({'requester_id':_0xc19a20['id'],'submitter_id':_0x2ab324?_0x2ab324['id']:undefined,'assignee_id':_0x2ab324?_0x2ab324['id']:undefined,'tags':getTags(_0x22ad65[_0x6f2c('0x12')],_0x6f2c('0x13')),'subject':intUtil[_0x6f2c('0x14')](_0x22ad65[_0x6f2c('0x15')],_0x5c85fd,'\x20'),'description':intUtil[_0x6f2c('0x14')](_0x22ad65[_0x6f2c('0x16')],_0x5c85fd,'\x0a'),'comment':{'public':![],'body':intUtil[_0x6f2c('0x14')](_0x22ad65[_0x6f2c('0x16')],_0x5c85fd,'\x0a')}},getCustomFields(_0x22ad65[_0x6f2c('0x17')],_0x5c85fd))}})[_0x6f2c('0x18')](function(_0x4f0b76){logger[_0x6f2c('0xb')](_0x6f2c('0x19'));return _0x4f0b76[_0x6f2c('0x1a')];});}function getUser(_0x2e5722,_0xfdec23){if(intUtil[_0x6f2c('0x1b')](_0xfdec23)){logger[_0x6f2c('0xb')](_0x6f2c('0x1c'),_0xfdec23);return request({'uri':util[_0x6f2c('0xd')]('%s/search.json',_0x2e5722[_0x6f2c('0xf')]),'qs':{'query':util[_0x6f2c('0xd')]('type:user\x20role:agent\x20email:%s',_0xfdec23)}})[_0x6f2c('0x18')](function(_0x4239b9){if(_0x4239b9[_0x6f2c('0x1d')]){logger[_0x6f2c('0xb')](_0x6f2c('0x1e'));return _['find'](_0x4239b9[_0x6f2c('0x1f')],{'email':_0xfdec23,'role':'agent'});}else{logger[_0x6f2c('0xb')](_0x6f2c('0x20'));return request({'uri':util[_0x6f2c('0xd')]('%s/users/me.json',_0x2e5722[_0x6f2c('0xf')])})[_0x6f2c('0x18')](function(_0x5bb089){logger[_0x6f2c('0xb')](_0x6f2c('0x21'));return _0x5bb089[_0x6f2c('0x22')];});}});}else{logger[_0x6f2c('0xb')](_0x6f2c('0x20'));return request({'uri':util[_0x6f2c('0xd')](_0x6f2c('0x23'),_0x2e5722[_0x6f2c('0xf')])})[_0x6f2c('0x18')](function(_0x45ef8f){logger[_0x6f2c('0xb')](_0x6f2c('0x21'));return _0x45ef8f[_0x6f2c('0x22')];});}}function getEndUser(_0x14bffc,_0x17aa99,_0xf01a19){logger[_0x6f2c('0xb')](_0x6f2c('0x24'),_0xf01a19);return request({'uri':util[_0x6f2c('0xd')](_0x6f2c('0x25'),_0x14bffc[_0x6f2c('0xf')]),'qs':{'query':util['format']('type:user\x20role:end-user\x20phone:%s',_0xf01a19)}})['then'](function(_0x357790){var _0x2bf8be;if(_0x357790['results'][_0x6f2c('0x26')]){_0x357790[_0x6f2c('0x1f')]=_['filter'](_0x357790[_0x6f2c('0x1f')],{'suspended':![],'role':_0x6f2c('0x27')});if(_0x357790[_0x6f2c('0x1f')][_0x6f2c('0x26')]){_0x2bf8be=_[_0x6f2c('0x28')](_0x357790[_0x6f2c('0x1f')]);}}if(_0x2bf8be){logger[_0x6f2c('0xb')]('Enduser\x20found!');return _0x2bf8be;}else{logger['info']('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');return request({'uri':util[_0x6f2c('0xd')](_0x6f2c('0x29'),_0x14bffc['remoteUri']),'method':'POST','body':{'user':{'role':_0x6f2c('0x27'),'name':util[_0x6f2c('0xd')]('Caller\x20-\x20%s',_0x17aa99||_0xf01a19),'phone':_0xf01a19}}})[_0x6f2c('0x18')](function(_0x26e22a){logger[_0x6f2c('0xb')](_0x6f2c('0x2a'));return _0x26e22a[_0x6f2c('0x22')];});}});}function getAuth(_0x34f16b){var _0x119ccb;if(_0x34f16b[_0x6f2c('0x2b')]===_0x6f2c('0x2c')){_0x119ccb=util[_0x6f2c('0xd')](_0x6f2c('0x2d'),_0x34f16b[_0x6f2c('0x2e')],_0x34f16b['password']);}else if(_0x34f16b[_0x6f2c('0x2b')]===_0x6f2c('0x2f')){_0x119ccb=util[_0x6f2c('0xd')](_0x6f2c('0x30'),_0x34f16b[_0x6f2c('0x2e')],_0x34f16b[_0x6f2c('0x2f')]);}return util[_0x6f2c('0xd')](_0x6f2c('0x31'),new Buffer(_0x119ccb)['toString']('base64'));}function request(_0x4fa789){logger['debug']('[HTTP]',JSON['stringify'](_0x4fa789));return rp(_[_0x6f2c('0x6')](_0x4fa789,{'method':'GET','headers':headers,'json':!![]}));}function getTags(_0x410e9d,_0x1eb9d8){var _0x2fce67=[];if(_0x410e9d&&_0x410e9d['length']>0x0){_0x2fce67=_[_0x6f2c('0x32')](_0x410e9d,_0x1eb9d8);}return _0x2fce67;}function getCustomFields(_0x104170,_0x534299){var _0x431774=[];var _0x265328={'custom_fields':[]};if(_0x104170[_0x6f2c('0x26')]>0x0){_['forEach'](_0x104170,function(_0x41ef42){if(_['includes']([_0x6f2c('0x33'),'picklist'],_0x41ef42[_0x6f2c('0x34')])&&_0x41ef42[_0x6f2c('0x35')]&&!_0x41ef42['customField']){_0x265328[_0x41ef42[_0x6f2c('0x35')][_0x6f2c('0x36')]()]=_0x41ef42[_0x6f2c('0x37')][_0x6f2c('0x38')]();}else if(_[_0x6f2c('0x39')]([_0x6f2c('0x33'),'picklist'],_0x41ef42[_0x6f2c('0x34')])&&_0x41ef42[_0x6f2c('0x3a')]&&_0x41ef42[_0x6f2c('0x3b')]){_0x265328['custom_fields'][_0x6f2c('0x3c')]({'id':_0x41ef42['idField'],'value':_0x41ef42[_0x6f2c('0x37')][_0x6f2c('0x38')]()});}else if(_0x41ef42[_0x6f2c('0x34')]===_0x6f2c('0x3d')&&_0x41ef42['variableName']&&_0x41ef42[_0x6f2c('0x3a')]&&_0x41ef42[_0x6f2c('0x3b')]){_0x534299[_0x41ef42[_0x6f2c('0x3e')]]&&_0x265328[_0x6f2c('0x3f')]['push']({'id':_0x41ef42['idField'],'value':_0x534299[_0x41ef42[_0x6f2c('0x3e')]][_0x6f2c('0x38')]()});}else if(_0x41ef42[_0x6f2c('0x34')]===_0x6f2c('0x40')&&_0x41ef42[_0x6f2c('0x41')]&&_0x41ef42[_0x6f2c('0x41')][_0x6f2c('0x13')]&&_0x41ef42[_0x6f2c('0x3a')]&&_0x41ef42[_0x6f2c('0x3b')]){_0x534299[_0x41ef42[_0x6f2c('0x41')][_0x6f2c('0x13')][_0x6f2c('0x36')]()]&&_0x265328[_0x6f2c('0x3f')][_0x6f2c('0x3c')]({'id':_0x41ef42[_0x6f2c('0x3a')],'value':_0x534299[_0x41ef42[_0x6f2c('0x41')][_0x6f2c('0x13')][_0x6f2c('0x36')]()]['toString']()});}});}return _0x265328;}exports[_0x6f2c('0x42')]=function(_0x582179,_0x25a5e1,_0x5992c7,_0x35c966,_0x580886,_0x41c3d0){var _0x2f65e7,_0x1c693c;_0x41c3d0[_0x6f2c('0xf')]=intUtil[_0x6f2c('0x43')](_0x41c3d0[_0x6f2c('0xf')]);_0x41c3d0['serverUrl']=intUtil[_0x6f2c('0x43')](_0x41c3d0[_0x6f2c('0x44')]);if(_0x580886&&_0x580886['monitor_format']){logger[_0x6f2c('0xb')]('[QUEUE]',_0x6f2c('0x45'));_0x25a5e1['recordingURL']=util[_0x6f2c('0xd')](_0x6f2c('0x46'),_0x41c3d0[_0x6f2c('0x44')],_0x25a5e1[_0x6f2c('0x47')],md5(_0x25a5e1['uniqueid']));}else{_0x25a5e1[_0x6f2c('0x48')]='';}headers['Authorization']=getAuth(_0x41c3d0);return getUser(_0x41c3d0,_0x35c966[_0x6f2c('0x49')])['then'](function(_0x4a6a28){_0x2f65e7=_0x4a6a28;logger[_0x6f2c('0xb')]('The\x20User\x20ID\x20is:',_0x2f65e7['id']);return getEndUser(_0x41c3d0,_0x25a5e1[_0x6f2c('0x4a')],_0x25a5e1[_0x6f2c('0x4b')]);})[_0x6f2c('0x18')](function(_0x54c9d9){_0x1c693c=_0x54c9d9;logger[_0x6f2c('0xb')](_0x6f2c('0x4c'),_0x1c693c['id']);return getTicket(_0x41c3d0,_0x2f65e7,_0x1c693c,_0x5992c7,_0x25a5e1);})[_0x6f2c('0x18')](function(_0x49db28){if(_0x49db28){logger[_0x6f2c('0xb')](_0x6f2c('0x4d'),_0x49db28['id']);switch(_0x41c3d0[_0x6f2c('0x34')]){case'integrationTab':logger[_0x6f2c('0xb')](_0x6f2c('0x4e'),_0x6f2c('0x4f'));return request({'uri':util[_0x6f2c('0xd')](_0x6f2c('0x50'),_0x41c3d0[_0x6f2c('0xf')],_0x2f65e7['id'],_0x49db28['id']),'method':'POST'});case _0x6f2c('0x51'):logger[_0x6f2c('0xb')](_0x6f2c('0x4e'),_0x6f2c('0x52'));emit(util[_0x6f2c('0xd')](_0x6f2c('0x53'),_0x35c966['name']),_0x6f2c('0x54'),{'uri':util['format'](_0x6f2c('0x55'),_0x41c3d0[_0x6f2c('0xf')][_0x6f2c('0x56')](_0x6f2c('0x57'),''),_0x49db28['id'])});break;default:logger[_0x6f2c('0x58')](_0x6f2c('0x4e'),'Zendesk\x20account\x20type\x20not\x20recognized');}}})[_0x6f2c('0x59')](function(_0x3fdf6b){logger[_0x6f2c('0x58')](_0x6f2c('0x5a'),util['inspect'](_0x3fdf6b,{'showHidden':!![],'depth':null}));});};exports[_0x6f2c('0x5b')]=function(_0x427505,_0x41bc99,_0x405c0f,_0x1171cf,_0x2eda8c,_0x46e89a,_0x33a686){var _0x4ed1e4,_0x3baf87;_0x46e89a[_0x6f2c('0xf')]=intUtil[_0x6f2c('0x43')](_0x46e89a['remoteUri']);_0x46e89a[_0x6f2c('0x44')]=intUtil['stripTrailingSlash'](_0x46e89a[_0x6f2c('0x44')]);if(_0x33a686&&_0x33a686[_0x6f2c('0x5c')]&&_0x33a686[_0x6f2c('0x5c')]!==_0x6f2c('0x5d')){logger[_0x6f2c('0xb')](_0x6f2c('0x5e'),'Recording\x20is\x20enabled!');_0x41bc99[_0x6f2c('0x48')]=util[_0x6f2c('0xd')](_0x6f2c('0x46'),_0x46e89a[_0x6f2c('0x44')],_0x41bc99['uniqueid'],md5(_0x41bc99[_0x6f2c('0x47')]));}headers[_0x6f2c('0x5f')]=getAuth(_0x46e89a);return getUser(_0x46e89a,_0x1171cf[_0x6f2c('0x49')])[_0x6f2c('0x18')](function(_0x4f9484){_0x4ed1e4=_0x4f9484;logger['info'](_0x6f2c('0x60'),_0x4ed1e4['id']);return getEndUser(_0x46e89a,_0x41bc99['destcalleridname'],_0x41bc99[_0x6f2c('0x61')]);})['then'](function(_0x323168){_0x3baf87=_0x323168;logger['info']('The\x20Enduser\x20ID\x20is:',_0x3baf87['id']);return getTicket(_0x46e89a,_0x4ed1e4,_0x3baf87,_0x405c0f,_0x41bc99);})['then'](function(_0x11469a){if(_0x11469a){logger[_0x6f2c('0xb')](_0x6f2c('0x4d'),_0x11469a['id']);switch(_0x46e89a[_0x6f2c('0x34')]){case _0x6f2c('0x62'):logger['info'](_0x6f2c('0x5e'),'Displaying\x20ticket\x20to\x20agent...');return request({'uri':util[_0x6f2c('0xd')](_0x6f2c('0x50'),_0x46e89a['remoteUri'],_0x4ed1e4['id'],_0x11469a['id']),'method':_0x6f2c('0x10')});case _0x6f2c('0x51'):logger['info']('[OUTBOUND]',_0x6f2c('0x52'));emit(util[_0x6f2c('0xd')](_0x6f2c('0x53'),_0x1171cf['name']),'trigger:browser:url',{'uri':util['format']('%s/agent/tickets/%s',_0x46e89a['remoteUri'][_0x6f2c('0x56')](_0x6f2c('0x57'),''),_0x11469a['id'])});break;default:logger[_0x6f2c('0x58')](_0x6f2c('0x5e'),_0x6f2c('0x63'));}}})[_0x6f2c('0x59')](function(_0x43c8cc){logger[_0x6f2c('0x58')](_0x6f2c('0x64'),util[_0x6f2c('0x65')](_0x43c8cc,{'showHidden':!![],'depth':null}));});};exports[_0x6f2c('0x66')]=function(_0xaecebc,_0x2a2741,_0x228f0a,_0x47dea5,_0x57e7a1,_0x19aa3c){var _0x1c7135,_0x53ef26;_0x19aa3c[_0x6f2c('0xf')]=intUtil[_0x6f2c('0x43')](_0x19aa3c['remoteUri']);_0x19aa3c[_0x6f2c('0x44')]=intUtil[_0x6f2c('0x43')](_0x19aa3c['serverUrl']);if(_0x57e7a1&&_0x57e7a1['monitor_format']){logger[_0x6f2c('0xb')]('['+_0x2a2741['lastevent'][_0x6f2c('0x67')]()+']','Recording\x20is\x20enabled!');_0x2a2741['recordingURL']=util[_0x6f2c('0xd')](_0x6f2c('0x46'),_0x19aa3c['serverUrl'],_0x2a2741[_0x6f2c('0x47')],md5(_0x2a2741[_0x6f2c('0x47')]));}else{_0x2a2741['recordingURL']='';}headers['Authorization']=getAuth(_0x19aa3c);return getUser(_0x19aa3c)[_0x6f2c('0x18')](function(_0x5ddd6b){_0x1c7135=_0x5ddd6b;logger[_0x6f2c('0xb')](_0x6f2c('0x60'),_0x1c7135['id']);return getEndUser(_0x19aa3c,_0x2a2741[_0x6f2c('0x4a')],_0x2a2741['calleridnum']);})[_0x6f2c('0x18')](function(_0x509178){_0x53ef26=_0x509178;logger['info']('The\x20Enduser\x20ID\x20is:',_0x53ef26['id']);return getTicket(_0x19aa3c,_0x1c7135,_0x53ef26,_0x228f0a,_0x2a2741);})[_0x6f2c('0x18')](function(_0x17f554){if(_0x17f554){logger[_0x6f2c('0xb')](_0x6f2c('0x4d'),_0x17f554['id']);}})[_0x6f2c('0x59')](function(_0x5b4be3){logger[_0x6f2c('0x58')]('['+_0x2a2741[_0x6f2c('0x68')]['toUpperCase']()+']'+_0x6f2c('0x69'),util[_0x6f2c('0x65')](_0x5b4be3,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x661a=['socket.io-emitter','emit','debug','[HTTP]','stringify','length','forEach','includes','string','idField','content','variable','variableName','toString','type','customVariable','Variable','name','toLowerCase','indexOf','split','isNil','isBefore','expires_in','zone','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','/oauth/v2/token','clientId','clientSecret','refresh_token','then','access_token','add','catch','error','stack','Search\x20user','GET','format','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','Zoho-oauthtoken\x20','users','findIndex','email','Agent\x20found!','info','Using\x20the\x20admin\x20account!','Administrator','user','profile','The\x20failing\x20result\x20is','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','data','enduserType','POST','/crm/v2/','moduleCreate','role','first_name','last_name','SUCCESS','details','startCase','Error:\x20','log','CREATE\x20ERROR','moduleSearch','contact_lead','uri','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','https://www.zohoapis.','Leads','nothing','contact','/crm/v2/Leads/search?criteria=((Phone:equals:','Creating\x20new\x20call...','administrator','Subject','getString','Subjects','Description','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','Call_Duration','utc','talktime','mm:ss','answertime','endtime','YYYY-MM-DDTHH:mm:ss','starttime','lastevent','called','Call_Result','complete','connect','Answered','rejected','Rejected','abandoned','Timeout','Call_Start_Time','outbound','Call_Type','Inbound','merge','Fields','code','Call\x20created!','err','queue','host','stripTrailingSlash','serverUrl','monitor_format','Recording\x20is\x20enabled!','/api/voice/recordings/','uniqueid','/downloads?type=uniqueid&token=','recordingURL','com','The\x20User\x20ID\x20is:','calleridname','calleridnum','[QUEUE]','trigger:browser:url','https://crm.','/crm/EntityInfo.do?module=Calls&id=','recordingFormat','none','[OUTBOUND]','zoho.eu','destcalleridname','Outbound','The\x20Call\x20ID\x20is:','user:%s','unmanaged','toUpperCase','lodash','md5','util','./util','ioredis','bluebird','../../../../config/environment','zoho','defaults','redis','localhost'];(function(_0x574023,_0x54dac1){var _0x53d2f1=function(_0x2b253c){while(--_0x2b253c){_0x574023['push'](_0x574023['shift']());}};_0x53d2f1(++_0x54dac1);}(_0x661a,0x1c9));var _0xa661=function(_0x5b13c3,_0x378e0a){_0x5b13c3=_0x5b13c3-0x0;var _0x3d6780=_0x661a[_0x5b13c3];return _0x3d6780;};'use strict';var _=require(_0xa661('0x0'));var rp=require('request-promise');var md5=require(_0xa661('0x1'));var util=require(_0xa661('0x2'));var intUtil=require(_0xa661('0x3'));var moment=require('moment');var Redis=require(_0xa661('0x4'));var BPromise=require(_0xa661('0x5'));var config=require(_0xa661('0x6'));var logger=require('../../../../config/logger')(_0xa661('0x7'));config['redis']=_[_0xa661('0x8')](config[_0xa661('0x9')],{'host':_0xa661('0xa'),'port':0x18eb});var io=require(_0xa661('0xb'))(new Redis(config[_0xa661('0x9')]));function emit(_0x3c150c,_0x6b122e,_0x575fa6){io['to'](_0x3c150c)[_0xa661('0xc')](_0x6b122e,_0x575fa6);}function request(_0x597aa2){logger[_0xa661('0xd')](_0xa661('0xe'),JSON[_0xa661('0xf')](_0x597aa2));return rp(_0x597aa2);}function getCustomFields(_0x307cc5,_0x312479){var _0x1b29da={};if(_0x307cc5[_0xa661('0x10')]>0x0){_[_0xa661('0x11')](_0x307cc5,function(_0x84169c){if(_[_0xa661('0x12')]([_0xa661('0x13'),'picklist'],_0x84169c['type'])&&_0x84169c[_0xa661('0x14')]){_0x1b29da[_0x84169c[_0xa661('0x14')]]=_0x84169c[_0xa661('0x15')]['toString']();}else if(_0x84169c['type']===_0xa661('0x16')&&_0x84169c[_0xa661('0x17')]&&_0x84169c[_0xa661('0x14')]&&_0x312479[_0x84169c[_0xa661('0x17')]]){_0x1b29da[_0x84169c[_0xa661('0x14')]]=_0x312479[_0x84169c[_0xa661('0x17')]][_0xa661('0x18')]();}else if(_0x84169c[_0xa661('0x19')]===_0xa661('0x1a')&&_0x84169c[_0xa661('0x1b')]&&_0x84169c[_0xa661('0x1b')][_0xa661('0x1c')]&&_0x84169c[_0xa661('0x14')]&&_0x312479[_0x84169c[_0xa661('0x1b')]['name'][_0xa661('0x1d')]()]){_0x1b29da[_0x84169c[_0xa661('0x14')]]=_0x312479[_0x84169c[_0xa661('0x1b')][_0xa661('0x1c')]['toLowerCase']()][_0xa661('0x18')]();}});}return _0x1b29da;}function getName(_0x56bb59){if(_0x56bb59[_0xa661('0x1e')]('\x20')>0x0){var _0x5a2389=_0x56bb59[_0xa661('0x1f')](/ (.+)/);if(_0x5a2389[0x1]){return _0x5a2389;}}return[_0x56bb59,_0x56bb59];}var accountsTokens={};function getAccessToken(_0x4eb860){return new Promise(function(_0x492341,_0x12bf4d){if(!_[_0xa661('0x20')](accountsTokens[_0x4eb860['id']])&&!_[_0xa661('0x20')](accountsTokens[_0x4eb860['id']]['access_token'])){if(moment()[_0xa661('0x21')](accountsTokens[_0x4eb860['id']][_0xa661('0x22')])){_0x492341(accountsTokens[_0x4eb860['id']]['access_token']);}}var _0x2890a5;switch(_0x4eb860[_0xa661('0x23')]){case'US':_0x2890a5='https://accounts.zoho.com';break;case'AU':_0x2890a5=_0xa661('0x24');break;case'EU':_0x2890a5='https://accounts.zoho.eu';break;case'IN':_0x2890a5='https://accounts.zoho.in';break;case'CN':_0x2890a5=_0xa661('0x25');break;default:_0x2890a5=_0xa661('0x26');break;}var _0x35c9cb={'method':'POST','uri':_0x2890a5+_0xa661('0x27'),'qs':{'refresh_token':_0x4eb860['refreshToken'],'client_id':_0x4eb860[_0xa661('0x28')],'client_secret':_0x4eb860[_0xa661('0x29')],'grant_type':_0xa661('0x2a')},'json':!![]};return rp(_0x35c9cb)[_0xa661('0x2b')](function(_0x954273){accountsTokens[_0x4eb860['id']]={'access_token':_0x954273[_0xa661('0x2c')],'expires_in':moment()[_0xa661('0x2d')](_0x954273[_0xa661('0x22')],'seconds')};_0x492341(_0x954273[_0xa661('0x2c')]);})[_0xa661('0x2e')](function(_0x3b4621){logger[_0xa661('0x2f')]('Failing\x20creating\x20the\x20access_token',_0x3b4621[_0xa661('0x30')]);_0x12bf4d(_0x3b4621);});});}function getUser(_0x3f9d0b,_0x436713,_0x1733f5,_0x86105a){logger['info'](_0xa661('0x31'));return request({'method':_0xa661('0x32'),'uri':util[_0xa661('0x33')](_0xa661('0x34'),_0x436713),'qs':{'type':_0xa661('0x35')},'headers':{'Authorization':_0xa661('0x36')+_0x3f9d0b},'json':!![]})[_0xa661('0x2b')](function(_0x572719){if(_0x572719[_0xa661('0x37')]){var _0x575b7f=-0x1;if(_['isArrayLikeObject'](_0x572719[_0xa661('0x37')])){if(!_[_0xa661('0x20')](_0x86105a)){_0x575b7f=_[_0xa661('0x38')](_0x572719[_0xa661('0x37')],function(_0x11323a){return _0x11323a[_0xa661('0x39')]===_0x86105a;});}if(_0x575b7f>=0x0){logger['info'](_0xa661('0x3a'));}else{logger[_0xa661('0x3b')](_0xa661('0x3c'));_0x575b7f=_[_0xa661('0x38')](_0x572719[_0xa661('0x37')],function(_0x518fdb){return _0x518fdb['profile'][_0xa661('0x1c')]===_0xa661('0x3d');});}return _0x572719[_0xa661('0x37')][_0x575b7f];}else{if(_0x572719[_0xa661('0x3e')][_0xa661('0x3f')][_0xa661('0x1c')]===_0xa661('0x3d')){logger[_0xa661('0x3b')](_0xa661('0x3c'));user=_0x572719[_0xa661('0x3e')];return user;}else{logger[_0xa661('0x2f')]('The\x20failing\x20result\x20is',JSON['stringify'](_0x572719));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0xa661('0xf')](_0x572719));}}}else{logger[_0xa661('0x2f')](_0xa661('0x40'),JSON['stringify'](_0x572719));throw new Error(_0xa661('0x41')+JSON[_0xa661('0xf')](_0x572719));}})[_0xa661('0x2e')](function(_0x144390){console[_0xa661('0x2f')](_0x144390);});}function getZohoUser(_0x3b9809,_0x4d3c77){return new BPromise(function(_0x53f602,_0x2f6c71){request(_0x3b9809)[_0xa661('0x2b')](function(_0x2cea72){var _0x538a46=null;if(_0x2cea72){_0x538a46=_0x2cea72[_0xa661('0x42')][0x0];_0x538a46[_0xa661('0x43')]=_0x4d3c77;}_0x53f602(_0x538a46);})[_0xa661('0x2e')](function(_0x2d2ad9){_0x2f6c71(_0x2d2ad9);});});}function createEndUser(_0x59ca66,_0x4d7d0b,_0x4998d3,_0x1194d6,_0x3cebec,_0x190c12){var _0x4998d3=getName(_0x4998d3);return request({'method':_0xa661('0x44'),'uri':'https://www.zohoapis.'+_0x4d7d0b+_0xa661('0x45')+_['startCase'](_0x190c12[_0xa661('0x46')])+'s','body':{'data':[{'Last_Name':_0x4998d3[0x1],'First_Name':_0x4998d3[0x0],'Phone':_0x1194d6,'Owner':{'name':!_[_0xa661('0x20')](_0x3cebec[_0xa661('0x47')][_0xa661('0x1c')])?_0x3cebec[_0xa661('0x47')][_0xa661('0x1c')]:!_[_0xa661('0x20')](_0x3cebec[_0xa661('0x48')])?_0x3cebec[_0xa661('0x48')]+'\x20'+_0x3cebec[_0xa661('0x49')]:_0x3cebec['last_name'],'id':_0x3cebec['id']}}]},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x59ca66},'json':!![]})[_0xa661('0x2b')](function(_0x54c7f1){if(_0x54c7f1&&_0x54c7f1[_0xa661('0x42')][0x0]['code']===_0xa661('0x4a')){var _0x36bb83=_0x54c7f1[_0xa661('0x42')][0x0][_0xa661('0x4b')];_0x36bb83[_0xa661('0x43')]=_[_0xa661('0x4c')](_0x190c12[_0xa661('0x46')])+'s';return _0x36bb83;}logger['error'](_0xa661('0x40'),JSON['stringify'](data));throw new Error(_0xa661('0x4d')+JSON[_0xa661('0xf')](data));})[_0xa661('0x2e')](function(_0x2209dd){console[_0xa661('0x4e')](_0xa661('0x4f'),_0x2209dd);});}function getEndUser(_0x4bf5f5,_0x59d503,_0xe9339d,_0x538ff8,_0x13781d,_0x486a4d,_0x740bf0){var _0x2bfd4e={'method':_0xa661('0x32'),'uri':'','headers':{'Authorization':_0xa661('0x36')+_0x4bf5f5},'json':!![]};switch(_0x740bf0[_0xa661('0x50')]){case _0xa661('0x51'):_0x2bfd4e[_0xa661('0x52')]='https://www.zohoapis.'+_0x59d503+_0xa661('0x53')+_0x13781d+'))';return getZohoUser(_0x2bfd4e,_0xa661('0x54'))['then'](function(_0x3233e2){if(_0x3233e2)return _0x3233e2;_0x2bfd4e[_0xa661('0x52')]=_0xa661('0x55')+_0x59d503+'/crm/v2/Leads/search?criteria=((Phone:equals:'+_0x13781d+'))';return getZohoUser(_0x2bfd4e,_0xa661('0x56'))[_0xa661('0x2b')](function(_0x4342c1){if(_0x4342c1)return _0x4342c1;if(_0x740bf0[_0xa661('0x46')]!=_0xa661('0x57')){return createEndUser(_0x4bf5f5,_0x59d503,_0x538ff8,_0x13781d,_0x486a4d,_0x740bf0);}else{return{};}});});break;case _0xa661('0x58'):_0x2bfd4e[_0xa661('0x52')]=_0xa661('0x55')+_0x59d503+_0xa661('0x53')+_0x13781d+'))';return getZohoUser(_0x2bfd4e,_0xa661('0x54'))[_0xa661('0x2b')](function(_0x346c7e){if(_0x346c7e)return _0x346c7e;if(_0x740bf0[_0xa661('0x46')]!=_0xa661('0x57')){return createEndUser(_0x4bf5f5,_0x59d503,_0x538ff8,_0x13781d,_0x486a4d,_0x740bf0);}else{return{};}});break;case'lead':_0x2bfd4e[_0xa661('0x52')]=_0xa661('0x55')+_0x59d503+_0xa661('0x59')+_0x13781d+'))';return getZohoUser(_0x2bfd4e,_0xa661('0x56'))[_0xa661('0x2b')](function(_0x10ba10){if(_0x10ba10)return _0x10ba10;if(_0x740bf0['moduleCreate']!=_0xa661('0x57')){return createEndUser(_0x4bf5f5,_0x59d503,_0x538ff8,_0x13781d,_0x486a4d,_0x740bf0);}else{return{};}});break;}}function getCall(_0x2272d9,_0x1a33b2,_0xcbb676,_0x27a1c8,_0x583010,_0xb98388,_0x5b1717,_0xf58b46){logger['info'](_0xa661('0x5a'));var _0x56b77d={};_0x56b77d['Owner']={'name':!_['isNil'](_0x27a1c8[_0xa661('0x47')][_0xa661('0x1c')])&&!_[_0xa661('0x20')](_0x27a1c8[_0xa661('0x3f')]['name'])&&_0x27a1c8['profile'][_0xa661('0x1c')]===_0xa661('0x5b')?_0x27a1c8[_0xa661('0x47')][_0xa661('0x1c')]:!_[_0xa661('0x20')](_0x27a1c8[_0xa661('0x48')])?_0x27a1c8[_0xa661('0x48')]+'\x20'+_0x27a1c8[_0xa661('0x49')]:_0x27a1c8[_0xa661('0x49')],'id':_0x27a1c8['id']};_0x56b77d[_0xa661('0x5c')]=intUtil[_0xa661('0x5d')](_0xb98388[_0xa661('0x5e')],_0x5b1717,'\x20');_0x56b77d[_0xa661('0x5f')]=intUtil['getString'](_0xb98388[_0xa661('0x60')],_0x5b1717,'\x0a');if(_0x583010['enduserType']===_0xa661('0x54')){_0x56b77d[_0xa661('0x61')]={'name':!_[_0xa661('0x20')](_0x583010[_0xa661('0x62')])?_0x583010[_0xa661('0x62')]:!_['isNil'](_0x583010[_0xa661('0x63')])?_0x583010[_0xa661('0x63')]+'\x20'+_0x583010[_0xa661('0x64')]:_0x583010['Last_Name'],'id':_0x583010['id']};}if(_0x583010[_0xa661('0x43')]===_0xa661('0x56')){_0x56b77d['What_Id']={'name':!_['isNil'](_0x583010[_0xa661('0x62')])?_0x583010[_0xa661('0x62')]:!_[_0xa661('0x20')](_0x583010[_0xa661('0x63')])?_0x583010[_0xa661('0x63')]+'\x20'+_0x583010[_0xa661('0x64')]:_0x583010[_0xa661('0x64')],'id':_0x583010['id']};_0x56b77d['$se_module']=_['startCase'](_0x583010[_0xa661('0x43')]);}if(_0x5b1717['talktime']){_0x56b77d[_0xa661('0x65')]=moment[_0xa661('0x66')](parseInt(_0x5b1717[_0xa661('0x67')])*0x3e8)[_0xa661('0x33')](_0xa661('0x68'));}else if(_0x5b1717[_0xa661('0x69')]&&_0x5b1717[_0xa661('0x6a')]){_0x56b77d['Call_Duration']=moment['utc'](moment(_0x5b1717[_0xa661('0x6a')],_0xa661('0x6b'))['diff'](moment(_0x5b1717[_0xa661('0x6c')],_0xa661('0x6b'))))[_0xa661('0x33')](_0xa661('0x68'));}switch(_0x5b1717[_0xa661('0x6d')]){case _0xa661('0x6e'):_0x56b77d[_0xa661('0x6f')]='Called';break;case _0xa661('0x70'):case _0xa661('0x71'):_0x56b77d[_0xa661('0x6f')]=_0xa661('0x72');break;case _0xa661('0x73'):_0x56b77d[_0xa661('0x6f')]=_0xa661('0x74');break;case _0xa661('0x75'):_0x56b77d[_0xa661('0x6f')]='Abandoned';break;case'timeout':_0x56b77d[_0xa661('0x6f')]=_0xa661('0x76');default:}_0x56b77d[_0xa661('0x77')]=(_0xf58b46===_0xa661('0x78')?moment(_0x5b1717['starttime'])[_0xa661('0x33')](_0xa661('0x6b')):moment(_0x5b1717['agentcalledAt'])[_0xa661('0x33')](_0xa661('0x6b')))||moment()[_0xa661('0x33')](_0xa661('0x6b'));_0x56b77d[_0xa661('0x79')]=_0xf58b46||_0xa661('0x7a');_0x56b77d=_[_0xa661('0x7b')](_0x56b77d,getCustomFields(_0xb98388[_0xa661('0x7c')],_0x5b1717));return request({'method':'POST','uri':_0xa661('0x55')+_0x1a33b2+'/crm/v2/Calls','headers':{'Authorization':_0xa661('0x36')+_0x2272d9},'body':{'data':[_0x56b77d]},'json':!![]})[_0xa661('0x2b')](function(_0x39c9d4){if(_0x39c9d4&&_0x39c9d4[_0xa661('0x42')][0x0][_0xa661('0x7d')]===_0xa661('0x4a')){logger[_0xa661('0x3b')](_0xa661('0x7e'));return{'id':_0x39c9d4[_0xa661('0x42')][0x0][_0xa661('0x4b')]['id']};}})['catch'](function(_0x5da8ad){logger['info']('err',_0x5da8ad[_0xa661('0x30')]);console[_0xa661('0x4e')](_0xa661('0x7f'),_0x5da8ad);});}exports[_0xa661('0x80')]=function(_0x2ad8c9,_0x51ba72,_0x446f3c,_0x1befee,_0x2bb2ac,_0x4c5172){var _0xcb5f5b,_0x49d5e9,_0x33dd5a;_0x4c5172[_0xa661('0x81')]=intUtil[_0xa661('0x82')](_0x4c5172[_0xa661('0x81')]);_0x4c5172[_0xa661('0x83')]=intUtil['stripTrailingSlash'](_0x4c5172['serverUrl']);if(_0x2bb2ac&&_0x2bb2ac[_0xa661('0x84')]){logger[_0xa661('0x3b')]('[QUEUE]',_0xa661('0x85'));_0x51ba72['recordingURL']=_0x4c5172[_0xa661('0x83')]+_0xa661('0x86')+_0x51ba72[_0xa661('0x87')]+_0xa661('0x88')+md5(_0x51ba72[_0xa661('0x87')]);}else{_0x51ba72[_0xa661('0x89')]='';}var _0x3eb81f=_0x4c5172[_0xa661('0x81')]==='zoho.eu'?'eu':_0xa661('0x8a');return getAccessToken(_0x4c5172)[_0xa661('0x2b')](function(_0x123afc){_0x33dd5a=_0x123afc;return getUser(_0x33dd5a,_0x3eb81f,_0x4c5172,_0x1befee[_0xa661('0x39')]);})[_0xa661('0x2b')](function(_0x2646e8){_0xcb5f5b=_0x2646e8;logger['info'](_0xa661('0x8b'),_0xcb5f5b['id']);return getEndUser(_0x33dd5a,_0x3eb81f,_0x4c5172,_0x51ba72[_0xa661('0x8c')],_0x51ba72[_0xa661('0x8d')],_0xcb5f5b,_0x446f3c);})[_0xa661('0x2b')](function(_0x2c8db1){_0x49d5e9=_0x2c8db1;return getCall(_0x33dd5a,_0x3eb81f,_0x4c5172,_0xcb5f5b,_0x49d5e9,_0x446f3c,_0x51ba72,_0xa661('0x7a'));})[_0xa661('0x2b')](function(_0x51b2f7){if(_0x51b2f7){logger[_0xa661('0x3b')]('The\x20Call\x20ID\x20is:',_0x51b2f7['id']);logger['info'](_0xa661('0x8e'),'Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0xa661('0x33')]('user:%s',_0x1befee['name']),_0xa661('0x8f'),{'uri':_0xa661('0x90')+_0x4c5172[_0xa661('0x81')]+_0xa661('0x91')+_0x51b2f7['id']});}})[_0xa661('0x2e')](function(_0x316547){logger[_0xa661('0x2f')](_0xa661('0x8e'),JSON[_0xa661('0xf')](_0x316547));});};exports['outbound']=function(_0x4d251a,_0x2152bb,_0x3dac8b,_0x116a3a,_0x1fa0bd,_0x5bc4a6,_0x52c344){var _0x5cb161,_0x17d260,_0x292536;_0x5bc4a6[_0xa661('0x81')]=intUtil[_0xa661('0x82')](_0x5bc4a6['host']);_0x5bc4a6[_0xa661('0x83')]=intUtil[_0xa661('0x82')](_0x5bc4a6[_0xa661('0x83')]);if(_0x52c344&&_0x52c344[_0xa661('0x92')]&&_0x52c344[_0xa661('0x92')]!==_0xa661('0x93')){logger[_0xa661('0x3b')](_0xa661('0x94'),_0xa661('0x85'));_0x2152bb[_0xa661('0x89')]=_0x5bc4a6['serverUrl']+_0xa661('0x86')+_0x2152bb['uniqueid']+_0xa661('0x88')+md5(_0x2152bb[_0xa661('0x87')]);}var _0x379465=_0x5bc4a6['host']===_0xa661('0x95')?'eu':'com';return getAccessToken(_0x5bc4a6)[_0xa661('0x2b')](function(_0x49148e){_0x292536=_0x49148e;return getUser(_0x292536,_0x379465,_0x5bc4a6,_0x116a3a[_0xa661('0x39')]);})[_0xa661('0x2b')](function(_0x204998){_0x5cb161=_0x204998;logger[_0xa661('0x3b')](_0xa661('0x8b'),_0x5cb161['id']);return getEndUser(_0x292536,_0x379465,_0x5bc4a6,_0x2152bb[_0xa661('0x96')],_0x2152bb['destcalleridnum'],_0x5cb161,_0x3dac8b);})['then'](function(_0x2600c6){_0x17d260=_0x2600c6;return getCall(_0x292536,_0x379465,_0x5bc4a6,_0x5cb161,_0x17d260,_0x3dac8b,_0x2152bb,_0xa661('0x97'));})[_0xa661('0x2b')](function(_0x4e3c97){if(_0x4e3c97){logger[_0xa661('0x3b')](_0xa661('0x98'),_0x4e3c97['id']);logger[_0xa661('0x3b')]('[OUTBOUND]','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util['format'](_0xa661('0x99'),_0x116a3a[_0xa661('0x1c')]),_0xa661('0x8f'),{'uri':_0xa661('0x90')+_0x5bc4a6[_0xa661('0x81')]+_0xa661('0x91')+_0x4e3c97['id']});}})[_0xa661('0x2e')](function(_0x122cdf){logger[_0xa661('0x2f')](_0xa661('0x94'),JSON[_0xa661('0xf')](_0x122cdf));});};exports[_0xa661('0x9a')]=function(_0x2460e6,_0x24bbd7,_0x2fdad0,_0xce094,_0x125e73,_0x5183ea){var _0x4f4ece,_0x3ae0e7,_0x2d2c7e;_0x5183ea[_0xa661('0x81')]=intUtil[_0xa661('0x82')](_0x5183ea[_0xa661('0x81')]);_0x5183ea[_0xa661('0x83')]=intUtil[_0xa661('0x82')](_0x5183ea['serverUrl']);if(_0x125e73&&_0x125e73[_0xa661('0x84')]){logger[_0xa661('0x3b')]('['+_0x24bbd7[_0xa661('0x6d')][_0xa661('0x9b')]()+']',_0xa661('0x85'));_0x24bbd7[_0xa661('0x89')]=_0x5183ea[_0xa661('0x83')]+_0xa661('0x86')+_0x24bbd7[_0xa661('0x87')]+_0xa661('0x88')+md5(_0x24bbd7[_0xa661('0x87')]);}else{_0x24bbd7[_0xa661('0x89')]='';}var _0x4fac73=_0x5183ea[_0xa661('0x81')]==='zoho.eu'?'eu':_0xa661('0x8a');return getAccessToken(_0x5183ea)[_0xa661('0x2b')](function(_0x50cc62){_0x2d2c7e=_0x50cc62;return getUser(_0x2d2c7e,_0x4fac73,_0x5183ea);})[_0xa661('0x2b')](function(_0x268d05){_0x4f4ece=_0x268d05;logger['info']('The\x20User\x20ID\x20is:',_0x4f4ece['id']);return getEndUser(_0x2d2c7e,_0x4fac73,_0x5183ea,_0x24bbd7[_0xa661('0x8c')],_0x24bbd7[_0xa661('0x8d')],_0x4f4ece,_0x2fdad0);})[_0xa661('0x2b')](function(_0x34aa48){_0x3ae0e7=_0x34aa48;return getCall(_0x2d2c7e,_0x4fac73,_0x5183ea,_0x4f4ece,_0x3ae0e7,_0x2fdad0,_0x24bbd7,_0xa661('0x7a'));})[_0xa661('0x2b')](function(_0x306561){if(_0x306561){logger[_0xa661('0x3b')](_0xa661('0x98'),_0x306561['id']);}})['catch'](function(_0x278b2e){logger[_0xa661('0x2f')]('['+_0x24bbd7[_0xa661('0x6d')][_0xa661('0x9b')]()+']',JSON[_0xa661('0xf')](_0x278b2e));});};
\ No newline at end of file
+var _0x7872=['users','isNil','findIndex','Agent\x20found!','info','Using\x20the\x20admin\x20account!','profile','Administrator','user','The\x20failing\x20result\x20is','stringify','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','enduserType','https://www.zohoapis.','/crm/v2/','startCase','role','first_name','last_name','Zoho-oauthtoken\x20','code','data','details','moduleCreate','Error:\x20','CREATE\x20ERROR','contact_lead','uri','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','contact','nothing','lead','Creating\x20new\x20call...','Subjects','Description','getString','Who_Id','Full_Name','First_Name','Last_Name','Leads','Call_Duration','utc','talktime','answertime','endtime','diff','starttime','YYYY-MM-DDTHH:mm:ss','mm:ss','lastevent','called','Call_Result','Called','complete','connect','rejected','Rejected','abandoned','timeout','Call_Start_Time','outbound','agentcalledAt','Inbound','merge','/crm/v2/Calls','Call\x20created!','err','log','host','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','recordingURL','/api/voice/recordings/','uniqueid','/downloads?type=uniqueid&token=','email','calleridname','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','https://crm.','recordingFormat','none','Recording\x20is\x20enabled!','zoho.eu','com','The\x20User\x20ID\x20is:','destcalleridnum','Outbound','[OUTBOUND]','/crm/EntityInfo.do?module=Calls&id=','unmanaged','toUpperCase','lodash','request-promise','md5','./util','ioredis','bluebird','../../../../config/logger','zoho','defaults','redis','localhost','emit','debug','length','forEach','includes','string','picklist','idField','content','type','variable','variableName','toString','Variable','name','toLowerCase','indexOf','split','access_token','isBefore','zone','https://accounts.zoho.com','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','refreshToken','clientId','clientSecret','refresh_token','then','add','seconds','catch','error','Failing\x20creating\x20the\x20access_token','stack','Search\x20user','format','https://www.zohoapis.%s/crm/v2/users','ActiveUsers'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x7872,0x193));var _0x2787=function(_0x4a1e3c,_0x556d2d){_0x4a1e3c=_0x4a1e3c-0x0;var _0x434e08=_0x7872[_0x4a1e3c];return _0x434e08;};'use strict';var _=require(_0x2787('0x0'));var rp=require(_0x2787('0x1'));var md5=require(_0x2787('0x2'));var util=require('util');var intUtil=require(_0x2787('0x3'));var moment=require('moment');var Redis=require(_0x2787('0x4'));var BPromise=require(_0x2787('0x5'));var config=require('../../../../config/environment');var logger=require(_0x2787('0x6'))(_0x2787('0x7'));config['redis']=_[_0x2787('0x8')](config[_0x2787('0x9')],{'host':_0x2787('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function emit(_0x5ba648,_0x2f2058,_0x4bc325){io['to'](_0x5ba648)[_0x2787('0xb')](_0x2f2058,_0x4bc325);}function request(_0x2e3abe){logger[_0x2787('0xc')]('[HTTP]',JSON['stringify'](_0x2e3abe));return rp(_0x2e3abe);}function getCustomFields(_0xac89da,_0x4b8c30){var _0x41d417={};if(_0xac89da[_0x2787('0xd')]>0x0){_[_0x2787('0xe')](_0xac89da,function(_0x2f081e){if(_[_0x2787('0xf')]([_0x2787('0x10'),_0x2787('0x11')],_0x2f081e['type'])&&_0x2f081e['idField']){_0x41d417[_0x2f081e[_0x2787('0x12')]]=_0x2f081e[_0x2787('0x13')]['toString']();}else if(_0x2f081e[_0x2787('0x14')]===_0x2787('0x15')&&_0x2f081e[_0x2787('0x16')]&&_0x2f081e['idField']&&_0x4b8c30[_0x2f081e[_0x2787('0x16')]]){_0x41d417[_0x2f081e[_0x2787('0x12')]]=_0x4b8c30[_0x2f081e[_0x2787('0x16')]][_0x2787('0x17')]();}else if(_0x2f081e[_0x2787('0x14')]==='customVariable'&&_0x2f081e[_0x2787('0x18')]&&_0x2f081e[_0x2787('0x18')][_0x2787('0x19')]&&_0x2f081e[_0x2787('0x12')]&&_0x4b8c30[_0x2f081e[_0x2787('0x18')][_0x2787('0x19')][_0x2787('0x1a')]()]){_0x41d417[_0x2f081e[_0x2787('0x12')]]=_0x4b8c30[_0x2f081e[_0x2787('0x18')][_0x2787('0x19')][_0x2787('0x1a')]()][_0x2787('0x17')]();}});}return _0x41d417;}function getName(_0x61120a){if(_0x61120a[_0x2787('0x1b')]('\x20')>0x0){var _0x21e8ff=_0x61120a[_0x2787('0x1c')](/ (.+)/);if(_0x21e8ff[0x1]){return _0x21e8ff;}}return[_0x61120a,_0x61120a];}var accountsTokens={};function getAccessToken(_0x4c436f){return new Promise(function(_0x90be64,_0x52d6e6){if(!_['isNil'](accountsTokens[_0x4c436f['id']])&&!_['isNil'](accountsTokens[_0x4c436f['id']][_0x2787('0x1d')])){if(moment()[_0x2787('0x1e')](accountsTokens[_0x4c436f['id']]['expires_in'])){_0x90be64(accountsTokens[_0x4c436f['id']][_0x2787('0x1d')]);}}var _0x519269;switch(_0x4c436f[_0x2787('0x1f')]){case'US':_0x519269=_0x2787('0x20');break;case'AU':_0x519269='https://accounts.zoho.com.au';break;case'EU':_0x519269=_0x2787('0x21');break;case'IN':_0x519269=_0x2787('0x22');break;case'CN':_0x519269=_0x2787('0x23');break;default:_0x519269=_0x2787('0x21');break;}var _0x23ea04={'method':_0x2787('0x24'),'uri':_0x519269+_0x2787('0x25'),'qs':{'refresh_token':_0x4c436f[_0x2787('0x26')],'client_id':_0x4c436f[_0x2787('0x27')],'client_secret':_0x4c436f[_0x2787('0x28')],'grant_type':_0x2787('0x29')},'json':!![]};return rp(_0x23ea04)[_0x2787('0x2a')](function(_0x529afd){accountsTokens[_0x4c436f['id']]={'access_token':_0x529afd['access_token'],'expires_in':moment()[_0x2787('0x2b')](_0x529afd['expires_in'],_0x2787('0x2c'))};_0x90be64(_0x529afd[_0x2787('0x1d')]);})[_0x2787('0x2d')](function(_0x1b89ff){logger[_0x2787('0x2e')](_0x2787('0x2f'),_0x1b89ff[_0x2787('0x30')]);_0x52d6e6(_0x1b89ff);});});}function getUser(_0x34377c,_0x24a1f2,_0x4d87c2,_0x211c54){logger['info'](_0x2787('0x31'));return request({'method':'GET','uri':util[_0x2787('0x32')](_0x2787('0x33'),_0x24a1f2),'qs':{'type':_0x2787('0x34')},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x34377c},'json':!![]})[_0x2787('0x2a')](function(_0x4d4428){if(_0x4d4428[_0x2787('0x35')]){var _0x17ffbd=-0x1;if(_['isArrayLikeObject'](_0x4d4428[_0x2787('0x35')])){if(!_[_0x2787('0x36')](_0x211c54)){_0x17ffbd=_[_0x2787('0x37')](_0x4d4428['users'],function(_0x476507){return _0x476507['email']===_0x211c54;});}if(_0x17ffbd>=0x0){logger['info'](_0x2787('0x38'));}else{logger[_0x2787('0x39')](_0x2787('0x3a'));_0x17ffbd=_[_0x2787('0x37')](_0x4d4428[_0x2787('0x35')],function(_0x51aaea){return _0x51aaea[_0x2787('0x3b')]['name']===_0x2787('0x3c');});}return _0x4d4428[_0x2787('0x35')][_0x17ffbd];}else{if(_0x4d4428[_0x2787('0x3d')][_0x2787('0x3b')][_0x2787('0x19')]===_0x2787('0x3c')){logger['info'](_0x2787('0x3a'));user=_0x4d4428[_0x2787('0x3d')];return user;}else{logger[_0x2787('0x2e')](_0x2787('0x3e'),JSON[_0x2787('0x3f')](_0x4d4428));throw new Error(_0x2787('0x40')+JSON['stringify'](_0x4d4428));}}}else{logger[_0x2787('0x2e')]('The\x20failing\x20result\x20is',JSON['stringify'](_0x4d4428));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0x2787('0x3f')](_0x4d4428));}})['catch'](function(_0x38c20a){console['error'](_0x38c20a);});}function getZohoUser(_0x1de904,_0x53bc19){return new BPromise(function(_0xc7416d,_0x4db82b){request(_0x1de904)[_0x2787('0x2a')](function(_0x3d71de){var _0x20f076=null;if(_0x3d71de){_0x20f076=_0x3d71de['data'][0x0];_0x20f076[_0x2787('0x41')]=_0x53bc19;}_0xc7416d(_0x20f076);})['catch'](function(_0x23c73f){_0x4db82b(_0x23c73f);});});}function createEndUser(_0x5948d8,_0x4733fd,_0x28074b,_0x48ea6b,_0x302db8,_0x3ad7f9){var _0x28074b=getName(_0x28074b);return request({'method':_0x2787('0x24'),'uri':_0x2787('0x42')+_0x4733fd+_0x2787('0x43')+_[_0x2787('0x44')](_0x3ad7f9['moduleCreate'])+'s','body':{'data':[{'Last_Name':_0x28074b[0x1],'First_Name':_0x28074b[0x0],'Phone':_0x48ea6b,'Owner':{'name':!_[_0x2787('0x36')](_0x302db8[_0x2787('0x45')][_0x2787('0x19')])?_0x302db8[_0x2787('0x45')][_0x2787('0x19')]:!_[_0x2787('0x36')](_0x302db8[_0x2787('0x46')])?_0x302db8[_0x2787('0x46')]+'\x20'+_0x302db8[_0x2787('0x47')]:_0x302db8[_0x2787('0x47')],'id':_0x302db8['id']}}]},'headers':{'Authorization':_0x2787('0x48')+_0x5948d8},'json':!![]})[_0x2787('0x2a')](function(_0x359a19){if(_0x359a19&&_0x359a19['data'][0x0][_0x2787('0x49')]==='SUCCESS'){var _0x59f020=_0x359a19[_0x2787('0x4a')][0x0][_0x2787('0x4b')];_0x59f020[_0x2787('0x41')]=_['startCase'](_0x3ad7f9[_0x2787('0x4c')])+'s';return _0x59f020;}logger['error'](_0x2787('0x3e'),JSON['stringify'](data));throw new Error(_0x2787('0x4d')+JSON[_0x2787('0x3f')](data));})[_0x2787('0x2d')](function(_0x466988){console['log'](_0x2787('0x4e'),_0x466988);});}function getEndUser(_0x177722,_0x275632,_0x1d0ca7,_0x3ab6a7,_0x5264b6,_0xde9ebb,_0x3dc3e2){var _0x3cdd2f={'method':'GET','uri':'','headers':{'Authorization':_0x2787('0x48')+_0x177722},'json':!![]};switch(_0x3dc3e2['moduleSearch']){case _0x2787('0x4f'):_0x3cdd2f[_0x2787('0x50')]=_0x2787('0x42')+_0x275632+_0x2787('0x51')+_0x5264b6+'))';return getZohoUser(_0x3cdd2f,_0x2787('0x52'))[_0x2787('0x2a')](function(_0x19c4c9){if(_0x19c4c9)return _0x19c4c9;_0x3cdd2f[_0x2787('0x50')]='https://www.zohoapis.'+_0x275632+_0x2787('0x53')+_0x5264b6+'))';return getZohoUser(_0x3cdd2f,'Leads')['then'](function(_0x458c6a){if(_0x458c6a)return _0x458c6a;if(_0x3dc3e2[_0x2787('0x4c')]!='nothing'){return createEndUser(_0x177722,_0x275632,_0x3ab6a7,_0x5264b6,_0xde9ebb,_0x3dc3e2);}else{return{};}});});break;case _0x2787('0x54'):_0x3cdd2f[_0x2787('0x50')]=_0x2787('0x42')+_0x275632+_0x2787('0x51')+_0x5264b6+'))';return getZohoUser(_0x3cdd2f,_0x2787('0x52'))[_0x2787('0x2a')](function(_0x57f117){if(_0x57f117)return _0x57f117;if(_0x3dc3e2[_0x2787('0x4c')]!=_0x2787('0x55')){return createEndUser(_0x177722,_0x275632,_0x3ab6a7,_0x5264b6,_0xde9ebb,_0x3dc3e2);}else{return{};}});break;case _0x2787('0x56'):_0x3cdd2f[_0x2787('0x50')]=_0x2787('0x42')+_0x275632+_0x2787('0x53')+_0x5264b6+'))';return getZohoUser(_0x3cdd2f,'Leads')[_0x2787('0x2a')](function(_0x20ca76){if(_0x20ca76)return _0x20ca76;if(_0x3dc3e2[_0x2787('0x4c')]!='nothing'){return createEndUser(_0x177722,_0x275632,_0x3ab6a7,_0x5264b6,_0xde9ebb,_0x3dc3e2);}else{return{};}});break;}}function getCall(_0x3d6daf,_0x4d445c,_0x40c347,_0x286eda,_0xfb97ea,_0x941f3e,_0x17d49c,_0x3050ae){logger[_0x2787('0x39')](_0x2787('0x57'));var _0x3d20a4={};_0x3d20a4['Owner']={'name':!_['isNil'](_0x286eda[_0x2787('0x45')][_0x2787('0x19')])&&!_[_0x2787('0x36')](_0x286eda[_0x2787('0x3b')][_0x2787('0x19')])&&_0x286eda['profile'][_0x2787('0x19')]==='administrator'?_0x286eda['role'][_0x2787('0x19')]:!_[_0x2787('0x36')](_0x286eda[_0x2787('0x46')])?_0x286eda[_0x2787('0x46')]+'\x20'+_0x286eda['last_name']:_0x286eda[_0x2787('0x47')],'id':_0x286eda['id']};_0x3d20a4['Subject']=intUtil['getString'](_0x941f3e[_0x2787('0x58')],_0x17d49c,'\x20');_0x3d20a4[_0x2787('0x59')]=intUtil[_0x2787('0x5a')](_0x941f3e['Descriptions'],_0x17d49c,'\x0a');if(_0xfb97ea[_0x2787('0x41')]===_0x2787('0x52')){_0x3d20a4[_0x2787('0x5b')]={'name':!_['isNil'](_0xfb97ea['Full_Name'])?_0xfb97ea[_0x2787('0x5c')]:!_[_0x2787('0x36')](_0xfb97ea['First_Name'])?_0xfb97ea[_0x2787('0x5d')]+'\x20'+_0xfb97ea['Last_Name']:_0xfb97ea[_0x2787('0x5e')],'id':_0xfb97ea['id']};}if(_0xfb97ea['enduserType']===_0x2787('0x5f')){_0x3d20a4['What_Id']={'name':!_[_0x2787('0x36')](_0xfb97ea[_0x2787('0x5c')])?_0xfb97ea[_0x2787('0x5c')]:!_[_0x2787('0x36')](_0xfb97ea[_0x2787('0x5d')])?_0xfb97ea[_0x2787('0x5d')]+'\x20'+_0xfb97ea['Last_Name']:_0xfb97ea[_0x2787('0x5e')],'id':_0xfb97ea['id']};_0x3d20a4['$se_module']=_[_0x2787('0x44')](_0xfb97ea['enduserType']);}if(_0x17d49c['talktime']){_0x3d20a4[_0x2787('0x60')]=moment[_0x2787('0x61')](parseInt(_0x17d49c[_0x2787('0x62')])*0x3e8)[_0x2787('0x32')]('mm:ss');}else if(_0x17d49c[_0x2787('0x63')]&&_0x17d49c[_0x2787('0x64')]){_0x3d20a4[_0x2787('0x60')]=moment[_0x2787('0x61')](moment(_0x17d49c[_0x2787('0x64')],'YYYY-MM-DDTHH:mm:ss')[_0x2787('0x65')](moment(_0x17d49c[_0x2787('0x66')],_0x2787('0x67'))))[_0x2787('0x32')](_0x2787('0x68'));}switch(_0x17d49c[_0x2787('0x69')]){case _0x2787('0x6a'):_0x3d20a4[_0x2787('0x6b')]=_0x2787('0x6c');break;case _0x2787('0x6d'):case _0x2787('0x6e'):_0x3d20a4['Call_Result']='Answered';break;case _0x2787('0x6f'):_0x3d20a4['Call_Result']=_0x2787('0x70');break;case _0x2787('0x71'):_0x3d20a4['Call_Result']='Abandoned';break;case _0x2787('0x72'):_0x3d20a4[_0x2787('0x6b')]='Timeout';default:}_0x3d20a4[_0x2787('0x73')]=(_0x3050ae===_0x2787('0x74')?moment(_0x17d49c[_0x2787('0x66')])[_0x2787('0x32')]('YYYY-MM-DDTHH:mm:ss'):moment(_0x17d49c[_0x2787('0x75')])[_0x2787('0x32')]('YYYY-MM-DDTHH:mm:ss'))||moment()[_0x2787('0x32')](_0x2787('0x67'));_0x3d20a4['Call_Type']=_0x3050ae||_0x2787('0x76');_0x3d20a4=_[_0x2787('0x77')](_0x3d20a4,getCustomFields(_0x941f3e['Fields'],_0x17d49c));return request({'method':_0x2787('0x24'),'uri':_0x2787('0x42')+_0x4d445c+_0x2787('0x78'),'headers':{'Authorization':_0x2787('0x48')+_0x3d6daf},'body':{'data':[_0x3d20a4]},'json':!![]})[_0x2787('0x2a')](function(_0x3d0664){if(_0x3d0664&&_0x3d0664[_0x2787('0x4a')][0x0]['code']==='SUCCESS'){logger['info'](_0x2787('0x79'));return{'id':_0x3d0664['data'][0x0][_0x2787('0x4b')]['id']};}})['catch'](function(_0x17e8c6){logger['info'](_0x2787('0x7a'),_0x17e8c6[_0x2787('0x30')]);console[_0x2787('0x7b')](_0x2787('0x7a'),_0x17e8c6);});}exports['queue']=function(_0x5954c9,_0x14906e,_0x2623f8,_0x2c6d20,_0xf9d77e,_0x517bde){var _0x2349e9,_0xfb0e5c,_0x92c4ba;_0x517bde[_0x2787('0x7c')]=intUtil[_0x2787('0x7d')](_0x517bde[_0x2787('0x7c')]);_0x517bde[_0x2787('0x7e')]=intUtil[_0x2787('0x7d')](_0x517bde[_0x2787('0x7e')]);if(_0xf9d77e&&_0xf9d77e[_0x2787('0x7f')]){logger[_0x2787('0x39')](_0x2787('0x80'),'Recording\x20is\x20enabled!');_0x14906e[_0x2787('0x81')]=_0x517bde[_0x2787('0x7e')]+_0x2787('0x82')+_0x14906e[_0x2787('0x83')]+_0x2787('0x84')+md5(_0x14906e[_0x2787('0x83')]);}else{_0x14906e[_0x2787('0x81')]='';}var _0x30b134=_0x517bde['host']==='zoho.eu'?'eu':'com';return getAccessToken(_0x517bde)[_0x2787('0x2a')](function(_0x4de279){_0x92c4ba=_0x4de279;return getUser(_0x92c4ba,_0x30b134,_0x517bde,_0x2c6d20[_0x2787('0x85')]);})['then'](function(_0x575c4f){_0x2349e9=_0x575c4f;logger[_0x2787('0x39')]('The\x20User\x20ID\x20is:',_0x2349e9['id']);return getEndUser(_0x92c4ba,_0x30b134,_0x517bde,_0x14906e[_0x2787('0x86')],_0x14906e['calleridnum'],_0x2349e9,_0x2623f8);})[_0x2787('0x2a')](function(_0x23b4a5){_0xfb0e5c=_0x23b4a5;return getCall(_0x92c4ba,_0x30b134,_0x517bde,_0x2349e9,_0xfb0e5c,_0x2623f8,_0x14906e,_0x2787('0x76'));})['then'](function(_0x3d785c){if(_0x3d785c){logger['info'](_0x2787('0x87'),_0x3d785c['id']);logger[_0x2787('0x39')](_0x2787('0x80'),_0x2787('0x88'));emit(util['format'](_0x2787('0x89'),_0x2c6d20[_0x2787('0x19')]),_0x2787('0x8a'),{'uri':_0x2787('0x8b')+_0x517bde[_0x2787('0x7c')]+'/crm/EntityInfo.do?module=Calls&id='+_0x3d785c['id']});}})[_0x2787('0x2d')](function(_0x2ebdad){logger[_0x2787('0x2e')](_0x2787('0x80'),JSON[_0x2787('0x3f')](_0x2ebdad));});};exports['outbound']=function(_0x367649,_0x3dc5cc,_0x3d793b,_0x304c21,_0x32ff0a,_0x33626e,_0x53dcbe){var _0xd085ba,_0x2de723,_0x33e32a;_0x33626e[_0x2787('0x7c')]=intUtil[_0x2787('0x7d')](_0x33626e[_0x2787('0x7c')]);_0x33626e[_0x2787('0x7e')]=intUtil[_0x2787('0x7d')](_0x33626e[_0x2787('0x7e')]);if(_0x53dcbe&&_0x53dcbe[_0x2787('0x8c')]&&_0x53dcbe[_0x2787('0x8c')]!==_0x2787('0x8d')){logger[_0x2787('0x39')]('[OUTBOUND]',_0x2787('0x8e'));_0x3dc5cc[_0x2787('0x81')]=_0x33626e[_0x2787('0x7e')]+_0x2787('0x82')+_0x3dc5cc[_0x2787('0x83')]+_0x2787('0x84')+md5(_0x3dc5cc[_0x2787('0x83')]);}var _0x369c62=_0x33626e['host']===_0x2787('0x8f')?'eu':_0x2787('0x90');return getAccessToken(_0x33626e)[_0x2787('0x2a')](function(_0x554d87){_0x33e32a=_0x554d87;return getUser(_0x33e32a,_0x369c62,_0x33626e,_0x304c21['email']);})['then'](function(_0x514128){_0xd085ba=_0x514128;logger[_0x2787('0x39')](_0x2787('0x91'),_0xd085ba['id']);return getEndUser(_0x33e32a,_0x369c62,_0x33626e,_0x3dc5cc['destcalleridname'],_0x3dc5cc[_0x2787('0x92')],_0xd085ba,_0x3d793b);})['then'](function(_0x4ad8a6){_0x2de723=_0x4ad8a6;return getCall(_0x33e32a,_0x369c62,_0x33626e,_0xd085ba,_0x2de723,_0x3d793b,_0x3dc5cc,_0x2787('0x93'));})['then'](function(_0x3aead9){if(_0x3aead9){logger[_0x2787('0x39')](_0x2787('0x87'),_0x3aead9['id']);logger[_0x2787('0x39')](_0x2787('0x94'),_0x2787('0x88'));emit(util[_0x2787('0x32')](_0x2787('0x89'),_0x304c21[_0x2787('0x19')]),'trigger:browser:url',{'uri':'https://crm.'+_0x33626e[_0x2787('0x7c')]+_0x2787('0x95')+_0x3aead9['id']});}})[_0x2787('0x2d')](function(_0x25de9e){logger[_0x2787('0x2e')]('[OUTBOUND]',JSON['stringify'](_0x25de9e));});};exports[_0x2787('0x96')]=function(_0x5338b9,_0x5b751d,_0x2a8eab,_0x4eb557,_0x3b2840,_0x7d5013){var _0x1907a3,_0x37d6db,_0x5a1af6;_0x7d5013['host']=intUtil['stripTrailingSlash'](_0x7d5013[_0x2787('0x7c')]);_0x7d5013['serverUrl']=intUtil[_0x2787('0x7d')](_0x7d5013[_0x2787('0x7e')]);if(_0x3b2840&&_0x3b2840[_0x2787('0x7f')]){logger['info']('['+_0x5b751d[_0x2787('0x69')][_0x2787('0x97')]()+']',_0x2787('0x8e'));_0x5b751d['recordingURL']=_0x7d5013[_0x2787('0x7e')]+_0x2787('0x82')+_0x5b751d[_0x2787('0x83')]+_0x2787('0x84')+md5(_0x5b751d[_0x2787('0x83')]);}else{_0x5b751d[_0x2787('0x81')]='';}var _0x5c8cee=_0x7d5013['host']===_0x2787('0x8f')?'eu':_0x2787('0x90');return getAccessToken(_0x7d5013)[_0x2787('0x2a')](function(_0xa1bbaf){_0x5a1af6=_0xa1bbaf;return getUser(_0x5a1af6,_0x5c8cee,_0x7d5013);})[_0x2787('0x2a')](function(_0x2b4960){_0x1907a3=_0x2b4960;logger['info'](_0x2787('0x91'),_0x1907a3['id']);return getEndUser(_0x5a1af6,_0x5c8cee,_0x7d5013,_0x5b751d[_0x2787('0x86')],_0x5b751d['calleridnum'],_0x1907a3,_0x2a8eab);})[_0x2787('0x2a')](function(_0x5e26bb){_0x37d6db=_0x5e26bb;return getCall(_0x5a1af6,_0x5c8cee,_0x7d5013,_0x1907a3,_0x37d6db,_0x2a8eab,_0x5b751d,_0x2787('0x76'));})[_0x2787('0x2a')](function(_0x5b585b){if(_0x5b585b){logger[_0x2787('0x39')](_0x2787('0x87'),_0x5b585b['id']);}})['catch'](function(_0x2b014e){logger[_0x2787('0x2e')]('['+_0x5b751d[_0x2787('0x69')][_0x2787('0x97')]()+']',JSON[_0x2787('0x3f')](_0x2b014e));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5709=['render','data3','exec','error','format','info','util','shelljs','mustache','trigger','data2','Script'];(function(_0x8679b1,_0x575854){var _0x3a243e=function(_0x23dd39){while(--_0x23dd39){_0x8679b1['push'](_0x8679b1['shift']());}};_0x3a243e(++_0x575854);}(_0x5709,0xf6));var _0x9570=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5709[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0x9570('0x0'));var sh=require(_0x9570('0x1'));var Mustache=require(_0x9570('0x2'));var logger=require('../../../../config/logger')(_0x9570('0x3'));exports['exec']=function(_0x54da3a,_0x19e77b){var _0x320568=_0x54da3a[_0x9570('0x4')]?_0x54da3a[_0x9570('0x4')]:_0x9570('0x5');var _0x2e569e=_0x54da3a['data3']?Mustache[_0x9570('0x6')](_0x54da3a[_0x9570('0x7')],_0x19e77b):_0x19e77b;sh[_0x9570('0x8')](_0x2e569e,function(_0x1f68ff,_0x11c735,_0x2b981e){if(_0x1f68ff!==0x0){logger[_0x9570('0x9')](util[_0x9570('0xa')]('%s\x20\x27%s\x27\x20failed\x20with\x20code\x20%d\x20and\x20error:\x20%s',_0x320568,_0x2e569e,_0x1f68ff,_0x2b981e));}else{logger[_0x9570('0xb')](util[_0x9570('0xa')]('%s\x20\x27%s\x27\x20succeeded\x20with\x20output:\x20%s',_0x320568,_0x2e569e,_0x11c735));}});};
\ No newline at end of file
+var _0x5ffa=['data2','Script','data3','render','error','format','info','%s\x20\x27%s\x27\x20succeeded\x20with\x20output:\x20%s','util','shelljs','mustache','../../../../config/logger','trigger','exec'];(function(_0x593fef,_0x579fcf){var _0x1729d0=function(_0x3ecdad){while(--_0x3ecdad){_0x593fef['push'](_0x593fef['shift']());}};_0x1729d0(++_0x579fcf);}(_0x5ffa,0x1e4));var _0xa5ff=function(_0x567b93,_0x4ea50f){_0x567b93=_0x567b93-0x0;var _0x495636=_0x5ffa[_0x567b93];return _0x495636;};'use strict';var util=require(_0xa5ff('0x0'));var sh=require(_0xa5ff('0x1'));var Mustache=require(_0xa5ff('0x2'));var logger=require(_0xa5ff('0x3'))(_0xa5ff('0x4'));exports[_0xa5ff('0x5')]=function(_0x68eb09,_0x1c3ffc){var _0x263b67=_0x68eb09[_0xa5ff('0x6')]?_0x68eb09[_0xa5ff('0x6')]:_0xa5ff('0x7');var _0x29c0d1=_0x68eb09[_0xa5ff('0x8')]?Mustache[_0xa5ff('0x9')](_0x68eb09[_0xa5ff('0x8')],_0x1c3ffc):_0x1c3ffc;sh['exec'](_0x29c0d1,function(_0x16f23e,_0x5cf9dd,_0x1494a6){if(_0x16f23e!==0x0){logger[_0xa5ff('0xa')](util[_0xa5ff('0xb')]('%s\x20\x27%s\x27\x20failed\x20with\x20code\x20%d\x20and\x20error:\x20%s',_0x263b67,_0x29c0d1,_0x16f23e,_0x1494a6));}else{logger[_0xa5ff('0xc')](util[_0xa5ff('0xb')](_0xa5ff('0xd'),_0x263b67,_0x29c0d1,_0x5cf9dd));}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x62ae=['format',',\x20request\x20body:\x20','object','stringify','%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20response:\x20%s','%s\x20%s\x20failed\x20with\x20status:\x20%d\x20and\x20error:\x20%s\x20%s','statusCode','name','util','lodash','../../../../config/logger','exec','render','data2','data5','number','data6','error','stack','data1','toUpperCase','GET','DELETE','data7','body','body\x20has\x20been\x20passed\x20to\x20URLforward\x20in\x20a\x20wrong\x20format','info'];(function(_0x149319,_0x4182b5){var _0x4637c9=function(_0x2ff6ce){while(--_0x2ff6ce){_0x149319['push'](_0x149319['shift']());}};_0x4637c9(++_0x4182b5);}(_0x62ae,0xfb));var _0xe62a=function(_0x3c64ff,_0x3b818a){_0x3c64ff=_0x3c64ff-0x0;var _0x583331=_0x62ae[_0x3c64ff];return _0x583331;};'use strict';var rp=require('request-promise');var util=require(_0xe62a('0x0'));var _=require(_0xe62a('0x1'));var Mustache=require('mustache');var logger=require(_0xe62a('0x2'))('trigger');exports[_0xe62a('0x3')]=function(_0xce1cf,_0x3f6975){var _0x5b95c7,_0x277e32;var _0x3d0558={'method':_0xce1cf['data1']['toUpperCase'](),'uri':Mustache[_0xe62a('0x4')](_0xce1cf[_0xe62a('0x5')],_0x3f6975),'json':!![],'resolveWithFullResponse':!![],'timeout':typeof parseInt(_0xce1cf[_0xe62a('0x6')])===_0xe62a('0x7')&&parseInt(_0xce1cf[_0xe62a('0x6')])>=0x1&&parseInt(_0xce1cf[_0xe62a('0x6')])<=0xa?parseInt(_0xce1cf[_0xe62a('0x6')])*0x3e8:0x5*0x3e8};try{_0x3d0558['headers']=_0xce1cf[_0xe62a('0x8')]?JSON['parse'](Mustache[_0xe62a('0x4')](_0xce1cf['data6'],_0x3f6975)):{};}catch(_0x35961f){logger[_0xe62a('0x9')](_0x35961f[_0xe62a('0xa')]);}switch(_0xce1cf[_0xe62a('0xb')][_0xe62a('0xc')]()){case _0xe62a('0xd'):case _0xe62a('0xe'):_0x5b95c7=null;_0x3d0558['qs']=_0x3f6975;break;case'POST':case'PUT':if(_0xce1cf[_0xe62a('0xf')]){try{_0x5b95c7=JSON['parse'](Mustache[_0xe62a('0x4')](_0xce1cf[_0xe62a('0xf')],_0x3f6975));_0x3d0558[_0xe62a('0x10')]=_0x5b95c7;}catch(_0x5416eb){logger[_0xe62a('0x9')](_0x5416eb[_0xe62a('0xa')]);logger[_0xe62a('0x9')](_0xe62a('0x11'));}}else{_0x5b95c7=_0x3f6975;_0x3d0558[_0xe62a('0x10')]=_0x5b95c7;}break;}logger[_0xe62a('0x12')](util[_0xe62a('0x13')]('%s\x20%s\x20sending\x20request\x20with\x20following\x20options:\x20%s',_0xce1cf['data1'],_0xce1cf[_0xe62a('0x5')],JSON['stringify'](_0x3d0558)));rp(_0x3d0558)['then'](function(_0x297b21){_0x5b95c7=!_['isNil'](_0x5b95c7)?_0xe62a('0x14')+_0x5b95c7:'';_0x277e32=typeof _0x297b21[_0xe62a('0x10')]===_0xe62a('0x15')?JSON[_0xe62a('0x16')](_0x297b21[_0xe62a('0x10')]):_0x297b21[_0xe62a('0x10')];logger['info'](util[_0xe62a('0x13')](_0xe62a('0x17'),_0xce1cf[_0xe62a('0xb')],_0xce1cf['data2'],_0x297b21['statusCode'],_0x277e32));})['catch'](function(_0xe37d7b){logger['error'](util['format'](_0xe62a('0x18'),_0xce1cf['data1'],_0xce1cf[_0xe62a('0x5')],_0xe37d7b[_0xe62a('0x19')],_0xe37d7b[_0xe62a('0x1a')],_0xe37d7b['message']));});};
\ No newline at end of file
+var _0xaa58=['POST','data7','parse','body','info','%s\x20%s\x20sending\x20request\x20with\x20following\x20options:\x20%s','data2','stringify','then',',\x20request\x20body:\x20','object','format','statusCode','%s\x20%s\x20failed\x20with\x20status:\x20%d\x20and\x20error:\x20%s\x20%s','name','message','request-promise','util','lodash','mustache','../../../../config/logger','trigger','exec','data1','toUpperCase','render','number','data5','headers','data6','error','stack','GET','DELETE'];(function(_0x14c0f5,_0x170edc){var _0x1cc3b8=function(_0x10505c){while(--_0x10505c){_0x14c0f5['push'](_0x14c0f5['shift']());}};_0x1cc3b8(++_0x170edc);}(_0xaa58,0x186));var _0x8aa5=function(_0x533276,_0x59e9ee){_0x533276=_0x533276-0x0;var _0x18b65b=_0xaa58[_0x533276];return _0x18b65b;};'use strict';var rp=require(_0x8aa5('0x0'));var util=require(_0x8aa5('0x1'));var _=require(_0x8aa5('0x2'));var Mustache=require(_0x8aa5('0x3'));var logger=require(_0x8aa5('0x4'))(_0x8aa5('0x5'));exports[_0x8aa5('0x6')]=function(_0x326e3a,_0x2a5de5){var _0x95b3fa,_0x427555;var _0x24ee29={'method':_0x326e3a[_0x8aa5('0x7')][_0x8aa5('0x8')](),'uri':Mustache[_0x8aa5('0x9')](_0x326e3a['data2'],_0x2a5de5),'json':!![],'resolveWithFullResponse':!![],'timeout':typeof parseInt(_0x326e3a['data5'])===_0x8aa5('0xa')&&parseInt(_0x326e3a[_0x8aa5('0xb')])>=0x1&&parseInt(_0x326e3a['data5'])<=0xa?parseInt(_0x326e3a[_0x8aa5('0xb')])*0x3e8:0x5*0x3e8};try{_0x24ee29[_0x8aa5('0xc')]=_0x326e3a[_0x8aa5('0xd')]?JSON['parse'](Mustache[_0x8aa5('0x9')](_0x326e3a['data6'],_0x2a5de5)):{};}catch(_0x5e3c50){logger[_0x8aa5('0xe')](_0x5e3c50[_0x8aa5('0xf')]);}switch(_0x326e3a[_0x8aa5('0x7')]['toUpperCase']()){case _0x8aa5('0x10'):case _0x8aa5('0x11'):_0x95b3fa=null;_0x24ee29['qs']=_0x2a5de5;break;case _0x8aa5('0x12'):case'PUT':if(_0x326e3a[_0x8aa5('0x13')]){try{_0x95b3fa=JSON[_0x8aa5('0x14')](Mustache[_0x8aa5('0x9')](_0x326e3a[_0x8aa5('0x13')],_0x2a5de5));_0x24ee29[_0x8aa5('0x15')]=_0x95b3fa;}catch(_0x34896f){logger[_0x8aa5('0xe')](_0x34896f['stack']);logger['error']('body\x20has\x20been\x20passed\x20to\x20URLforward\x20in\x20a\x20wrong\x20format');}}else{_0x95b3fa=_0x2a5de5;_0x24ee29['body']=_0x95b3fa;}break;}logger[_0x8aa5('0x16')](util['format'](_0x8aa5('0x17'),_0x326e3a[_0x8aa5('0x7')],_0x326e3a[_0x8aa5('0x18')],JSON[_0x8aa5('0x19')](_0x24ee29)));rp(_0x24ee29)[_0x8aa5('0x1a')](function(_0x3ecc0c){_0x95b3fa=!_['isNil'](_0x95b3fa)?_0x8aa5('0x1b')+_0x95b3fa:'';_0x427555=typeof _0x3ecc0c['body']===_0x8aa5('0x1c')?JSON[_0x8aa5('0x19')](_0x3ecc0c[_0x8aa5('0x15')]):_0x3ecc0c[_0x8aa5('0x15')];logger[_0x8aa5('0x16')](util[_0x8aa5('0x1d')]('%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20response:\x20%s',_0x326e3a[_0x8aa5('0x7')],_0x326e3a[_0x8aa5('0x18')],_0x3ecc0c[_0x8aa5('0x1e')],_0x427555));})['catch'](function(_0x5a6441){logger['error'](util[_0x8aa5('0x1d')](_0x8aa5('0x1f'),_0x326e3a[_0x8aa5('0x7')],_0x326e3a[_0x8aa5('0x18')],_0x5a6441[_0x8aa5('0x1e')],_0x5a6441[_0x8aa5('0x20')],_0x5a6441[_0x8aa5('0x21')]));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x09af=['result','catch','exports','jayson/promise','bluebird','routing','http','Request','request','then','debug','rpc','error','message'];(function(_0x44ed7b,_0x299e86){var _0x3dfc37=function(_0x8ab612){while(--_0x8ab612){_0x44ed7b['push'](_0x44ed7b['shift']());}};_0x3dfc37(++_0x299e86);}(_0x09af,0x1ed));var _0xf09a=function(_0x23e495,_0x47bc83){_0x23e495=_0x23e495-0x0;var _0x34bd93=_0x09af[_0x23e495];return _0x34bd93;};'use strict';var jayson=require(_0xf09a('0x0'));var BPromise=require(_0xf09a('0x1'));var logger=require('../../config/logger')(_0xf09a('0x2'));var client=jayson['client'][_0xf09a('0x3')]({'port':0x2329});client[_0xf09a('0x4')]=function(_0x8ad6f,_0x33954c){return new BPromise(function(_0x1fbd4a,_0x2eb7f2){return client[_0xf09a('0x5')](_0x8ad6f,_0x33954c)[_0xf09a('0x6')](function(_0x229a63){logger[_0xf09a('0x7')](_0xf09a('0x8'),_0xf09a('0x2'),_0x8ad6f,_0x33954c,_0x229a63);if(_0x229a63[_0xf09a('0x9')]){logger[_0xf09a('0x9')](_0xf09a('0x8'),_0xf09a('0x2'),_0x8ad6f,_0x229a63['error'][_0xf09a('0xa')],_0x33954c);return _0x2eb7f2(_0x229a63[_0xf09a('0x9')]['message']);}else{return _0x1fbd4a(_0x229a63[_0xf09a('0xb')]);}})[_0xf09a('0xc')](function(_0x1429a3){logger[_0xf09a('0x9')](_0xf09a('0x8'),_0xf09a('0x2'),_0x8ad6f,_0x1429a3,_0x33954c);return _0x2eb7f2(_0x1429a3);});});};module[_0xf09a('0xd')]=client;
\ No newline at end of file
+var _0x6daf=['routing','client','http','Request','then','rpc','error','message','result','catch','exports','jayson/promise','../../config/logger'];(function(_0xf9d9be,_0x1e8fc7){var _0x377b29=function(_0x20c6e0){while(--_0x20c6e0){_0xf9d9be['push'](_0xf9d9be['shift']());}};_0x377b29(++_0x1e8fc7);}(_0x6daf,0xa7));var _0xf6da=function(_0x148771,_0x32bc2e){_0x148771=_0x148771-0x0;var _0x3dbc43=_0x6daf[_0x148771];return _0x3dbc43;};'use strict';var jayson=require(_0xf6da('0x0'));var BPromise=require('bluebird');var logger=require(_0xf6da('0x1'))(_0xf6da('0x2'));var client=jayson[_0xf6da('0x3')][_0xf6da('0x4')]({'port':0x2329});client[_0xf6da('0x5')]=function(_0x47dabc,_0x191b9e){return new BPromise(function(_0x38b3d5,_0x1ecbdb){return client['request'](_0x47dabc,_0x191b9e)[_0xf6da('0x6')](function(_0x3301f3){logger['debug'](_0xf6da('0x7'),_0xf6da('0x2'),_0x47dabc,_0x191b9e,_0x3301f3);if(_0x3301f3[_0xf6da('0x8')]){logger[_0xf6da('0x8')](_0xf6da('0x7'),_0xf6da('0x2'),_0x47dabc,_0x3301f3[_0xf6da('0x8')][_0xf6da('0x9')],_0x191b9e);return _0x1ecbdb(_0x3301f3[_0xf6da('0x8')]['message']);}else{return _0x38b3d5(_0x3301f3[_0xf6da('0xa')]);}})[_0xf6da('0xb')](function(_0x5058cc){logger['error'](_0xf6da('0x7'),_0xf6da('0x2'),_0x47dabc,_0x5058cc,_0x191b9e);return _0x1ecbdb(_0x5058cc);});});};module[_0xf6da('0xc')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b24=['resolve','then','mailAccounts','listen','catch','log','bluebird','./server','./realtime','./lib/email','./rpc/mailAccount'];(function(_0x102f97,_0x5bda2f){var _0xd22058=function(_0x2ccc1f){while(--_0x2ccc1f){_0x102f97['push'](_0x102f97['shift']());}};_0xd22058(++_0x5bda2f);}(_0x4b24,0x8a));var _0x44b2=function(_0x2950a0,_0x459962){_0x2950a0=_0x2950a0-0x0;var _0x4b8bb4=_0x4b24[_0x2950a0];return _0x4b8bb4;};'use strict';var BPromise=require(_0x44b2('0x0'));var server=require(_0x44b2('0x1'));var Realtime=require(_0x44b2('0x2'));var EmailChannel=require(_0x44b2('0x3'));var mailAccount=require(_0x44b2('0x4'));var setting=require('./rpc/setting');var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise[_0x44b2('0x5')]()[_0x44b2('0x6')](mailAccount['getMailAccounts']())[_0x44b2('0x6')](realtime['initMailAccounts']())[_0x44b2('0x6')](function(){email['refresh'](realtime[_0x44b2('0x7')]);return realtime;});}function main(){return server[_0x44b2('0x8')](realtime,email)[_0x44b2('0x6')](function(){return initRealtime();})[_0x44b2('0x6')](function(){return setting['getSettings']();})[_0x44b2('0x6')](function(_0x457905){return setInterval(initRealtime,_0x457905['loginMailFrequency']*0x3e8);})[_0x44b2('0x9')](function(_0xd128c2){console[_0x44b2('0xa')](_0xd128c2);});}main();
\ No newline at end of file
+var _0xe0b3=['./rpc/mailAccount','./rpc/setting','resolve','then','getMailAccounts','initMailAccounts','mailAccounts','listen','getSettings','catch','bluebird','./server','./realtime','./lib/email'];(function(_0xe534ac,_0x19b9f8){var _0x2d7da0=function(_0x268895){while(--_0x268895){_0xe534ac['push'](_0xe534ac['shift']());}};_0x2d7da0(++_0x19b9f8);}(_0xe0b3,0x1e6));var _0x3e0b=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xe0b3[_0x122ef9];return _0x42fba0;};'use strict';var BPromise=require(_0x3e0b('0x0'));var server=require(_0x3e0b('0x1'));var Realtime=require(_0x3e0b('0x2'));var EmailChannel=require(_0x3e0b('0x3'));var mailAccount=require(_0x3e0b('0x4'));var setting=require(_0x3e0b('0x5'));var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise[_0x3e0b('0x6')]()[_0x3e0b('0x7')](mailAccount[_0x3e0b('0x8')]())[_0x3e0b('0x7')](realtime[_0x3e0b('0x9')]())[_0x3e0b('0x7')](function(){email['refresh'](realtime[_0x3e0b('0xa')]);return realtime;});}function main(){return server[_0x3e0b('0xb')](realtime,email)[_0x3e0b('0x7')](function(){return initRealtime();})[_0x3e0b('0x7')](function(){return setting[_0x3e0b('0xc')]();})['then'](function(_0x4e3800){return setInterval(initRealtime,_0x4e3800['loginMailFrequency']*0x3e8);})[_0x3e0b('0xd')](function(_0x5b313b){console['log'](_0x5b313b);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca2c=['socket.io-emitter','./imap','./smtp','../rpc/mailAccount','info','start\x20email\x20channel','mailAccounts','imapAccounts','smtp','prototype','emit','name','key','active','status','Imap','messageStatus','total','stringify','md5','mailAccount:update','refresh','hasOwnProperty','handleImapBox','bind','handleImapEmail','error','handleImapError','disabled','connected','messages','firstName','from','notify','Mail\x20accepted\x20from\x20routing','Mail\x20not\x20accepted\x20from\x20routing\x20%s','handleImapEnd','lastSync','sendMail','send','verifySmtp','isNil','Smtp','verify','then','verified','catch','exports','moment','bluebird','email','redis','defaults','localhost'];(function(_0x333798,_0x9f6561){var _0x389f4e=function(_0x193b28){while(--_0x193b28){_0x333798['push'](_0x333798['shift']());}};_0x389f4e(++_0x9f6561);}(_0xca2c,0x13e));var _0xcca2=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0xca2c[_0xbca1b1];return _0x4e1686;};'use strict';var _=require('lodash');var moment=require(_0xcca2('0x0'));var BPromise=require(_0xcca2('0x1'));var md5=require('md5');var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require('../../../config/logger')(_0xcca2('0x2'));config[_0xcca2('0x3')]=_[_0xcca2('0x4')](config[_0xcca2('0x3')],{'host':_0xcca2('0x5'),'port':0x18eb});var io=require(_0xcca2('0x6'))(new Redis(config[_0xcca2('0x3')]));var EmailImap=require(_0xcca2('0x7'));var EmailSmtp=require(_0xcca2('0x8'));var mailAccount=require(_0xcca2('0x9'));var md5Accounts={};function EmailChannel(_0x5d5641){logger[_0xcca2('0xa')](_0xcca2('0xb'));this[_0xcca2('0xc')]=_0x5d5641[_0xcca2('0xc')];this[_0xcca2('0xd')]={};this[_0xcca2('0xe')]=new EmailSmtp();}EmailChannel[_0xcca2('0xf')][_0xcca2('0x10')]=function(_0x336c45){var _0x309d6c=this[_0xcca2('0xc')][_0x336c45];var _0x378f6d={'id':_0x309d6c['id'],'name':_0x309d6c[_0xcca2('0x11')],'key':_0x309d6c[_0xcca2('0x12')],'active':_0x309d6c[_0xcca2('0x13')],'Imap':{'status':_0x309d6c['Imap'][_0xcca2('0x14')],'messageStatus':_0x309d6c[_0xcca2('0x15')][_0xcca2('0x16')],'total':_0x309d6c[_0xcca2('0x15')][_0xcca2('0x17')]}};if(_['isNil'](md5Accounts[_0x336c45])){md5Accounts[_0x336c45]={};}var _0x301554=md5(JSON[_0xcca2('0x18')](_0x378f6d));if(md5Accounts[_0x336c45][_0xcca2('0x19')]!==_0x301554){md5Accounts[_0x336c45][_0xcca2('0x19')]=_0x301554;io[_0xcca2('0x10')](_0xcca2('0x1a'),_0x378f6d);}};EmailChannel['prototype'][_0xcca2('0x1b')]=function(_0x535d26){for(var _0x290848 in _0x535d26){if(_0x535d26[_0xcca2('0x1c')](_0x290848)){if(_0x535d26[_0x290848][_0xcca2('0x15')]&&_0x535d26[_0x290848][_0xcca2('0x13')]){var _0x4fbfb9=_0x535d26[_0x290848][_0xcca2('0x15')];if(!this[_0xcca2('0xd')][_0xcca2('0x1c')](_0x4fbfb9['id'])){this[_0xcca2('0xd')][_0x4fbfb9['id']]=new EmailImap(_0x4fbfb9,_0x535d26[_0x290848][_0xcca2('0x2')]);this['imapAccounts'][_0x4fbfb9['id']]['on']('box',this[_0xcca2('0x1d')][_0xcca2('0x1e')](this,_0x290848));this[_0xcca2('0xd')][_0x4fbfb9['id']]['on'](_0xcca2('0x2'),this[_0xcca2('0x1f')][_0xcca2('0x1e')](this,_0x290848));this[_0xcca2('0xd')][_0x4fbfb9['id']]['on']('end',this['handleImapEnd'][_0xcca2('0x1e')](this,_0x290848));this[_0xcca2('0xd')][_0x4fbfb9['id']]['on'](_0xcca2('0x20'),this[_0xcca2('0x21')][_0xcca2('0x1e')](this,_0x290848));}}else{if(_['isNil'](this[_0xcca2('0xc')][_0x290848][_0xcca2('0x15')])){this['mailAccounts'][_0x290848][_0xcca2('0x15')]={};}this[_0xcca2('0xc')][_0x290848][_0xcca2('0x15')][_0xcca2('0x14')]=_0xcca2('0x22');this[_0xcca2('0xc')][_0x290848][_0xcca2('0x15')][_0xcca2('0x16')]='';this[_0xcca2('0x10')](_0x290848);}}}};EmailChannel['prototype'][_0xcca2('0x1d')]=function(_0x1a4bfc,_0x5b0043){if(this['mailAccounts'][_0x1a4bfc]){this[_0xcca2('0xc')][_0x1a4bfc][_0xcca2('0x15')]['status']=_0xcca2('0x23');this[_0xcca2('0xc')][_0x1a4bfc]['Imap'][_0xcca2('0x16')]=_0x5b0043[_0xcca2('0x11')];if(_0x5b0043[_0xcca2('0x24')]){this[_0xcca2('0xc')][_0x1a4bfc]['Imap']['total']=_0x5b0043[_0xcca2('0x24')]['total'];}return this[_0xcca2('0x10')](_0x1a4bfc);}};EmailChannel[_0xcca2('0xf')][_0xcca2('0x1f')]=function(_0x36fe55,_0x4c809b){logger[_0xcca2('0xa')]('New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s',_0x4c809b[_0xcca2('0x25')],_0x4c809b['lastName'],_0x4c809b[_0xcca2('0x26')],_0x36fe55);if(this[_0xcca2('0xc')][_0x36fe55]){return mailAccount[_0xcca2('0x27')](_0x36fe55,_0x4c809b)['then'](function(_0x1db4dd){if(_0x1db4dd){logger[_0xcca2('0xa')](_0xcca2('0x28'));}})['catch'](function(_0x21948b){logger[_0xcca2('0x20')](_0xcca2('0x29'),JSON['stringify'](_0x21948b));});}};EmailChannel[_0xcca2('0xf')][_0xcca2('0x2a')]=function(_0x2df45c){if(this[_0xcca2('0xc')][_0x2df45c]&&this[_0xcca2('0xc')][_0x2df45c][_0xcca2('0x15')]){if(this[_0xcca2('0xd')][this[_0xcca2('0xc')][_0x2df45c][_0xcca2('0x15')]['id']]){delete this['imapAccounts'][this[_0xcca2('0xc')][_0x2df45c]['Imap']['id']];}this[_0xcca2('0xc')][_0x2df45c]['Imap'][_0xcca2('0x2b')]=moment();this[_0xcca2('0x10')](_0x2df45c);}};EmailChannel[_0xcca2('0xf')][_0xcca2('0x21')]=function(_0x41470a,_0x16e25e){if(this[_0xcca2('0xc')][_0x41470a]){this[_0xcca2('0xc')][_0x41470a][_0xcca2('0x15')][_0xcca2('0x14')]='error';this[_0xcca2('0xc')][_0x41470a][_0xcca2('0x15')][_0xcca2('0x16')]=_0x16e25e;return this[_0xcca2('0x10')](_0x41470a);}};EmailChannel[_0xcca2('0xf')][_0xcca2('0x2c')]=function(_0x290d45,_0x5b83ce){return this['smtp'][_0xcca2('0x2d')](_0x290d45,_0x5b83ce);};EmailChannel[_0xcca2('0xf')][_0xcca2('0x2e')]=function(_0x983bb){var _0x4ac0ef=this;if(this[_0xcca2('0xc')][_0x983bb['id']]){if(_[_0xcca2('0x2f')](this[_0xcca2('0xc')][_0x983bb['id']][_0xcca2('0x30')])){this[_0xcca2('0xc')][_0x983bb['id']][_0xcca2('0x30')]={};}this[_0xcca2('0xc')][_0x983bb['id']][_0xcca2('0x30')][_0xcca2('0x2b')]=moment();return new BPromise(function(_0x26a386,_0xed3d0a){return _0x4ac0ef['smtp'][_0xcca2('0x31')](_0x983bb)[_0xcca2('0x32')](function(_0x31fee1){_0x4ac0ef[_0xcca2('0xc')][_0x983bb['id']][_0xcca2('0x30')][_0xcca2('0x14')]=_0xcca2('0x33');_0x4ac0ef[_0xcca2('0xc')][_0x983bb['id']][_0xcca2('0x30')][_0xcca2('0x16')]='';_0x4ac0ef['emit'](_0x983bb['id']);_0x26a386(_0x31fee1);})[_0xcca2('0x34')](function(_0x122aa7){_0x4ac0ef[_0xcca2('0xc')][_0x983bb['id']][_0xcca2('0x30')][_0xcca2('0x14')]=_0xcca2('0x20');_0x4ac0ef[_0xcca2('0xc')][_0x983bb['id']]['Smtp'][_0xcca2('0x16')]=_0x122aa7;_0x4ac0ef[_0xcca2('0x10')](_0x983bb['id']);_0xed3d0a(_0x122aa7);});});}return this[_0xcca2('0xe')]['verify'](_0x983bb);};module[_0xcca2('0x35')]=EmailChannel;
\ No newline at end of file
+var _0x9a4b=['handleImapBox','bind','handleImapEmail','error','handleImapError','isNil','messages','total','lastName','from','notify','then','Mail\x20accepted\x20from\x20routing','catch','Mail\x20not\x20accepted\x20from\x20routing\x20%s','verifySmtp','Smtp','verify','lodash','moment','md5','ioredis','../../../config/environment','../../../config/logger','email','redis','localhost','socket.io-emitter','./imap','./smtp','info','start\x20email\x20channel','mailAccounts','imapAccounts','smtp','prototype','emit','name','key','active','Imap','status','messageStatus','stringify','mailAccount:update','refresh','hasOwnProperty','box'];(function(_0x8a217e,_0x450bfc){var _0x3fc350=function(_0x55ed99){while(--_0x55ed99){_0x8a217e['push'](_0x8a217e['shift']());}};_0x3fc350(++_0x450bfc);}(_0x9a4b,0x162));var _0xb9a4=function(_0x5e6ebe,_0x373752){_0x5e6ebe=_0x5e6ebe-0x0;var _0x5d80a0=_0x9a4b[_0x5e6ebe];return _0x5d80a0;};'use strict';var _=require(_0xb9a4('0x0'));var moment=require(_0xb9a4('0x1'));var BPromise=require('bluebird');var md5=require(_0xb9a4('0x2'));var Redis=require(_0xb9a4('0x3'));var config=require(_0xb9a4('0x4'));var logger=require(_0xb9a4('0x5'))(_0xb9a4('0x6'));config['redis']=_['defaults'](config[_0xb9a4('0x7')],{'host':_0xb9a4('0x8'),'port':0x18eb});var io=require(_0xb9a4('0x9'))(new Redis(config[_0xb9a4('0x7')]));var EmailImap=require(_0xb9a4('0xa'));var EmailSmtp=require(_0xb9a4('0xb'));var mailAccount=require('../rpc/mailAccount');var md5Accounts={};function EmailChannel(_0x3dc33a){logger[_0xb9a4('0xc')](_0xb9a4('0xd'));this[_0xb9a4('0xe')]=_0x3dc33a[_0xb9a4('0xe')];this[_0xb9a4('0xf')]={};this[_0xb9a4('0x10')]=new EmailSmtp();}EmailChannel[_0xb9a4('0x11')][_0xb9a4('0x12')]=function(_0x18d336){var _0x279937=this[_0xb9a4('0xe')][_0x18d336];var _0x501052={'id':_0x279937['id'],'name':_0x279937[_0xb9a4('0x13')],'key':_0x279937[_0xb9a4('0x14')],'active':_0x279937[_0xb9a4('0x15')],'Imap':{'status':_0x279937[_0xb9a4('0x16')][_0xb9a4('0x17')],'messageStatus':_0x279937[_0xb9a4('0x16')][_0xb9a4('0x18')],'total':_0x279937[_0xb9a4('0x16')]['total']}};if(_['isNil'](md5Accounts[_0x18d336])){md5Accounts[_0x18d336]={};}var _0x5a70c4=md5(JSON[_0xb9a4('0x19')](_0x501052));if(md5Accounts[_0x18d336]['md5']!==_0x5a70c4){md5Accounts[_0x18d336][_0xb9a4('0x2')]=_0x5a70c4;io['emit'](_0xb9a4('0x1a'),_0x501052);}};EmailChannel[_0xb9a4('0x11')][_0xb9a4('0x1b')]=function(_0x2adaa1){for(var _0x5e9f6b in _0x2adaa1){if(_0x2adaa1[_0xb9a4('0x1c')](_0x5e9f6b)){if(_0x2adaa1[_0x5e9f6b][_0xb9a4('0x16')]&&_0x2adaa1[_0x5e9f6b]['active']){var _0x5b18de=_0x2adaa1[_0x5e9f6b][_0xb9a4('0x16')];if(!this[_0xb9a4('0xf')][_0xb9a4('0x1c')](_0x5b18de['id'])){this[_0xb9a4('0xf')][_0x5b18de['id']]=new EmailImap(_0x5b18de,_0x2adaa1[_0x5e9f6b][_0xb9a4('0x6')]);this[_0xb9a4('0xf')][_0x5b18de['id']]['on'](_0xb9a4('0x1d'),this[_0xb9a4('0x1e')][_0xb9a4('0x1f')](this,_0x5e9f6b));this[_0xb9a4('0xf')][_0x5b18de['id']]['on'](_0xb9a4('0x6'),this[_0xb9a4('0x20')][_0xb9a4('0x1f')](this,_0x5e9f6b));this[_0xb9a4('0xf')][_0x5b18de['id']]['on']('end',this['handleImapEnd']['bind'](this,_0x5e9f6b));this['imapAccounts'][_0x5b18de['id']]['on'](_0xb9a4('0x21'),this[_0xb9a4('0x22')][_0xb9a4('0x1f')](this,_0x5e9f6b));}}else{if(_[_0xb9a4('0x23')](this[_0xb9a4('0xe')][_0x5e9f6b][_0xb9a4('0x16')])){this[_0xb9a4('0xe')][_0x5e9f6b]['Imap']={};}this[_0xb9a4('0xe')][_0x5e9f6b][_0xb9a4('0x16')][_0xb9a4('0x17')]='disabled';this[_0xb9a4('0xe')][_0x5e9f6b][_0xb9a4('0x16')]['messageStatus']='';this['emit'](_0x5e9f6b);}}}};EmailChannel[_0xb9a4('0x11')][_0xb9a4('0x1e')]=function(_0x353b78,_0x2d360b){if(this[_0xb9a4('0xe')][_0x353b78]){this[_0xb9a4('0xe')][_0x353b78][_0xb9a4('0x16')][_0xb9a4('0x17')]='connected';this[_0xb9a4('0xe')][_0x353b78][_0xb9a4('0x16')]['messageStatus']=_0x2d360b[_0xb9a4('0x13')];if(_0x2d360b['messages']){this[_0xb9a4('0xe')][_0x353b78][_0xb9a4('0x16')]['total']=_0x2d360b[_0xb9a4('0x24')][_0xb9a4('0x25')];}return this[_0xb9a4('0x12')](_0x353b78);}};EmailChannel[_0xb9a4('0x11')][_0xb9a4('0x20')]=function(_0x258e12,_0x3896ab){logger[_0xb9a4('0xc')]('New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s',_0x3896ab['firstName'],_0x3896ab[_0xb9a4('0x26')],_0x3896ab[_0xb9a4('0x27')],_0x258e12);if(this['mailAccounts'][_0x258e12]){return mailAccount[_0xb9a4('0x28')](_0x258e12,_0x3896ab)[_0xb9a4('0x29')](function(_0x581f19){if(_0x581f19){logger[_0xb9a4('0xc')](_0xb9a4('0x2a'));}})[_0xb9a4('0x2b')](function(_0x329522){logger[_0xb9a4('0x21')](_0xb9a4('0x2c'),JSON[_0xb9a4('0x19')](_0x329522));});}};EmailChannel[_0xb9a4('0x11')]['handleImapEnd']=function(_0x6b7629){if(this[_0xb9a4('0xe')][_0x6b7629]&&this['mailAccounts'][_0x6b7629][_0xb9a4('0x16')]){if(this[_0xb9a4('0xf')][this[_0xb9a4('0xe')][_0x6b7629][_0xb9a4('0x16')]['id']]){delete this[_0xb9a4('0xf')][this[_0xb9a4('0xe')][_0x6b7629][_0xb9a4('0x16')]['id']];}this[_0xb9a4('0xe')][_0x6b7629]['Imap']['lastSync']=moment();this[_0xb9a4('0x12')](_0x6b7629);}};EmailChannel[_0xb9a4('0x11')][_0xb9a4('0x22')]=function(_0x5175f8,_0x3c4b8b){if(this[_0xb9a4('0xe')][_0x5175f8]){this[_0xb9a4('0xe')][_0x5175f8][_0xb9a4('0x16')][_0xb9a4('0x17')]=_0xb9a4('0x21');this[_0xb9a4('0xe')][_0x5175f8][_0xb9a4('0x16')][_0xb9a4('0x18')]=_0x3c4b8b;return this['emit'](_0x5175f8);}};EmailChannel[_0xb9a4('0x11')]['sendMail']=function(_0xadacde,_0x962dc){return this[_0xb9a4('0x10')]['send'](_0xadacde,_0x962dc);};EmailChannel[_0xb9a4('0x11')][_0xb9a4('0x2d')]=function(_0x117c37){var _0x27862e=this;if(this[_0xb9a4('0xe')][_0x117c37['id']]){if(_[_0xb9a4('0x23')](this[_0xb9a4('0xe')][_0x117c37['id']]['Smtp'])){this['mailAccounts'][_0x117c37['id']]['Smtp']={};}this[_0xb9a4('0xe')][_0x117c37['id']][_0xb9a4('0x2e')]['lastSync']=moment();return new BPromise(function(_0x7569eb,_0x4f90a5){return _0x27862e[_0xb9a4('0x10')]['verify'](_0x117c37)[_0xb9a4('0x29')](function(_0x2e3f97){_0x27862e['mailAccounts'][_0x117c37['id']][_0xb9a4('0x2e')][_0xb9a4('0x17')]='verified';_0x27862e[_0xb9a4('0xe')][_0x117c37['id']][_0xb9a4('0x2e')][_0xb9a4('0x18')]='';_0x27862e[_0xb9a4('0x12')](_0x117c37['id']);_0x7569eb(_0x2e3f97);})['catch'](function(_0xfe8042){_0x27862e[_0xb9a4('0xe')][_0x117c37['id']][_0xb9a4('0x2e')][_0xb9a4('0x17')]=_0xb9a4('0x21');_0x27862e[_0xb9a4('0xe')][_0x117c37['id']]['Smtp'][_0xb9a4('0x18')]=_0xfe8042;_0x27862e[_0xb9a4('0x12')](_0x117c37['id']);_0x4f90a5(_0xfe8042);});});}return this[_0xb9a4('0x10')][_0xb9a4('0x2f')](_0x117c37);};module['exports']=EmailChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8529=['./utils','../../../config/logger','mailbox','getAccount','once','handleReady','end','handleEnd','error','bind','connect','inherits','prototype','connTimeout','authTimeout','isNil','service','authentication','user','password','host','port','tls','autotls','required','getHost','anonymous@xcally.com','openBox','handleOpenBox','handleError','emit','readUnseen','handleCloseBox','UNSEEN','handleReadUnseen','fetch','handleFetchMessage','handleFetchError','closeBox','body','handleMessageBody','attributes','handleMessageAttributes','handleMessageEnd','handleSimpleParser','parser','email','handleFetchEnd','account','stringify','textCode','hasOwnProperty','upperFirst','exports','imap','lodash','randomstring','iconv','Iconv','events','EventEmitter'];(function(_0x545fb9,_0x553ba0){var _0x5e90a5=function(_0x27453e){while(--_0x27453e){_0x545fb9['push'](_0x545fb9['shift']());}};_0x5e90a5(++_0x553ba0);}(_0x8529,0x73));var _0x9852=function(_0x530bdc,_0x3abb22){_0x530bdc=_0x530bdc-0x0;var _0x40609c=_0x8529[_0x530bdc];return _0x40609c;};'use strict';var fs=require('fs');var path=require('path');var util=require('util');var Imap=require(_0x9852('0x0'));var _=require(_0x9852('0x1'));var rs=require(_0x9852('0x2'));var simpleParser=require('mailparser')['simpleParser'];var Iconv=require(_0x9852('0x3'))[_0x9852('0x4')];var EventEmitter=require(_0x9852('0x5'))[_0x9852('0x6')];var utils=require(_0x9852('0x7'));var logger=require(_0x9852('0x8'))('email');function EmailImap(_0x5acfa5,_0x320a0b){this[_0x9852('0x9')]='INBOX';this['account']=this[_0x9852('0xa')](_0x5acfa5,_0x320a0b);this[_0x9852('0x0')]=new Imap(this['account']);this[_0x9852('0x0')][_0x9852('0xb')]('ready',this[_0x9852('0xc')]['bind'](this));this[_0x9852('0x0')][_0x9852('0xb')](_0x9852('0xd'),this[_0x9852('0xe')]['bind'](this));this[_0x9852('0x0')]['on'](_0x9852('0xf'),this['handleError'][_0x9852('0x10')](this));this[_0x9852('0x0')][_0x9852('0x11')]();}util[_0x9852('0x12')](EmailImap,EventEmitter);EmailImap[_0x9852('0x13')][_0x9852('0xa')]=function(_0x4f6ba9,_0x3d323c){var _0x41cf99={'connTimeout':_0x4f6ba9[_0x9852('0x14')]?_0x4f6ba9['connTimeout']*0x3e8:0x2710,'authTimeout':_0x4f6ba9[_0x9852('0x15')]?_0x4f6ba9[_0x9852('0x15')]*0x3e8:0x1388};if(_[_0x9852('0x16')](_0x4f6ba9[_0x9852('0x17')])){if(_0x4f6ba9[_0x9852('0x18')]){_0x41cf99[_0x9852('0x19')]=_0x4f6ba9[_0x9852('0x19')];_0x41cf99['password']=_0x4f6ba9[_0x9852('0x1a')];}_0x41cf99['host']=_0x4f6ba9[_0x9852('0x1b')];_0x41cf99[_0x9852('0x1c')]=_0x4f6ba9[_0x9852('0x1c')]||0x3e1;if(_0x4f6ba9[_0x9852('0x1d')]){_0x41cf99['tls']=!![];}else{_0x41cf99[_0x9852('0x1d')]=![];_0x41cf99[_0x9852('0x1e')]=_0x9852('0x1f');}}else{_0x41cf99[_0x9852('0x19')]=_0x4f6ba9[_0x9852('0x19')];_0x41cf99[_0x9852('0x1a')]=_0x4f6ba9['password'];_0x41cf99[_0x9852('0x1b')]=utils[_0x9852('0x20')](_0x4f6ba9['service']);_0x41cf99[_0x9852('0x1c')]=0x3e1;_0x41cf99['tls']=!![];}_0x41cf99['email']=_0x3d323c||_0x4f6ba9[_0x9852('0x19')]||_0x9852('0x21');return _0x41cf99;};EmailImap[_0x9852('0x13')][_0x9852('0xc')]=function(){this[_0x9852('0x0')][_0x9852('0x22')](this[_0x9852('0x9')],![],this[_0x9852('0x23')][_0x9852('0x10')](this));};EmailImap[_0x9852('0x13')][_0x9852('0x23')]=function(_0x52be5e,_0x4aca57){if(_0x52be5e){this[_0x9852('0x24')](_0x52be5e,!![]);}else{this[_0x9852('0x25')]('box',_0x4aca57);this[_0x9852('0x26')]();}};EmailImap['prototype'][_0x9852('0x27')]=function(_0x23a2e3){if(_0x23a2e3){this[_0x9852('0x24')](_0x23a2e3,!![]);}else{this[_0x9852('0x0')][_0x9852('0xd')]();}};EmailImap[_0x9852('0x13')][_0x9852('0x26')]=function(){this[_0x9852('0x0')]['search']([_0x9852('0x28')],this['handleReadUnseen'][_0x9852('0x10')](this));};EmailImap[_0x9852('0x13')][_0x9852('0x29')]=function(_0x586548,_0x3fa608){if(_0x586548){this[_0x9852('0x24')](_0x586548,!![]);}else{if(_0x3fa608['length']){try{var _0xdc0620=this[_0x9852('0x0')][_0x9852('0x2a')](_0x3fa608,{'bodies':'','markSeen':!![]});_0xdc0620['on']('message',this[_0x9852('0x2b')][_0x9852('0x10')](this));_0xdc0620[_0x9852('0xb')]('error',this[_0x9852('0x2c')]['bind'](this));_0xdc0620['once'](_0x9852('0xd'),this['handleFetchEnd'][_0x9852('0x10')](this));}catch(_0x38bb80){logger[_0x9852('0xf')](_0x38bb80);}}else{this[_0x9852('0x0')][_0x9852('0x2d')](!![],this[_0x9852('0x27')][_0x9852('0x10')](this));}}};EmailImap[_0x9852('0x13')][_0x9852('0x2b')]=function(_0xb05cca,_0x1d1873){_0xb05cca['on'](_0x9852('0x2e'),this[_0x9852('0x2f')]['bind'](this));_0xb05cca[_0x9852('0xb')](_0x9852('0x30'),this[_0x9852('0x31')][_0x9852('0x10')](this));_0xb05cca[_0x9852('0xb')]('end',this[_0x9852('0x32')]['bind'](this));};EmailImap[_0x9852('0x13')][_0x9852('0x2f')]=function(_0xd616ea,_0x58542f){simpleParser(_0xd616ea,{'Iconv':Iconv},this[_0x9852('0x33')]['bind'](this));};EmailImap[_0x9852('0x13')][_0x9852('0x31')]=function(_0x267a10){};EmailImap['prototype'][_0x9852('0x32')]=function(){};EmailImap[_0x9852('0x13')][_0x9852('0x33')]=function(_0x5978a8,_0x31a25a){if(_0x5978a8){logger[_0x9852('0xf')](_0x5978a8);}else{var _0x3700ce=this;utils[_0x9852('0x34')](this['account'],_0x31a25a,function(_0x346d97){_0x3700ce['emit'](_0x9852('0x35'),_0x346d97);});}};EmailImap[_0x9852('0x13')][_0x9852('0x36')]=function(){this[_0x9852('0x0')][_0x9852('0x2d')](!![],this[_0x9852('0x27')][_0x9852('0x10')](this));};EmailImap[_0x9852('0x13')][_0x9852('0x2c')]=function(_0x1ce175){this[_0x9852('0x24')](_0x1ce175);this[_0x9852('0x0')][_0x9852('0x2d')](!![],this['handleCloseBox'][_0x9852('0x10')](this));};EmailImap[_0x9852('0x13')]['handleEnd']=function(){this[_0x9852('0x25')](_0x9852('0xd'));};EmailImap[_0x9852('0x13')]['handleError']=function(_0x38cf4b,_0x51575d){logger[_0x9852('0xf')](_0x9852('0x24'),this[_0x9852('0x37')]['email'],JSON[_0x9852('0x38')](_0x38cf4b));var _0x54a86d='';if(_0x38cf4b){if(_0x38cf4b[_0x9852('0x39')]){_0x54a86d=_0x38cf4b[_0x9852('0x39')];}else{for(var _0x537e69 in _0x38cf4b){if(_0x38cf4b[_0x9852('0x3a')](_0x537e69)){_0x54a86d+=_[_0x9852('0x3b')](_0x537e69)+':\x20'+_0x38cf4b[_0x537e69]+'\x0a';}}}}if(_0x51575d){this[_0x9852('0x0')]['end']();}else{this[_0x9852('0x25')](_0x9852('0xf'),_0x54a86d);this['emit'](_0x9852('0xd'));}};module[_0x9852('0x3c')]=EmailImap;
\ No newline at end of file
+var _0x695f=['connect','inherits','connTimeout','authTimeout','service','user','password','host','port','tls','autotls','required','prototype','openBox','handleOpenBox','emit','box','readUnseen','end','search','UNSEEN','handleReadUnseen','handleFetchMessage','handleFetchEnd','closeBox','body','handleMessageBody','attributes','handleMessageAttributes','handleMessageEnd','handleCloseBox','stringify','textCode','hasOwnProperty','upperFirst','path','util','imap','lodash','randomstring','mailparser','iconv','Iconv','./utils','email','mailbox','account','handleReady','bind','once','handleEnd','error','handleError'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x695f,0x1cb));var _0xf695=function(_0x1b7c1f,_0x2f5cf2){_0x1b7c1f=_0x1b7c1f-0x0;var _0x76cb38=_0x695f[_0x1b7c1f];return _0x76cb38;};'use strict';var fs=require('fs');var path=require(_0xf695('0x0'));var util=require(_0xf695('0x1'));var Imap=require(_0xf695('0x2'));var _=require(_0xf695('0x3'));var rs=require(_0xf695('0x4'));var simpleParser=require(_0xf695('0x5'))['simpleParser'];var Iconv=require(_0xf695('0x6'))[_0xf695('0x7')];var EventEmitter=require('events')['EventEmitter'];var utils=require(_0xf695('0x8'));var logger=require('../../../config/logger')(_0xf695('0x9'));function EmailImap(_0x61ef8b,_0x7e7263){this[_0xf695('0xa')]='INBOX';this[_0xf695('0xb')]=this['getAccount'](_0x61ef8b,_0x7e7263);this[_0xf695('0x2')]=new Imap(this[_0xf695('0xb')]);this[_0xf695('0x2')]['once']('ready',this[_0xf695('0xc')][_0xf695('0xd')](this));this[_0xf695('0x2')][_0xf695('0xe')]('end',this[_0xf695('0xf')][_0xf695('0xd')](this));this[_0xf695('0x2')]['on'](_0xf695('0x10'),this[_0xf695('0x11')][_0xf695('0xd')](this));this[_0xf695('0x2')][_0xf695('0x12')]();}util[_0xf695('0x13')](EmailImap,EventEmitter);EmailImap['prototype']['getAccount']=function(_0x202aee,_0xde4a1c){var _0x4d794a={'connTimeout':_0x202aee[_0xf695('0x14')]?_0x202aee['connTimeout']*0x3e8:0x2710,'authTimeout':_0x202aee[_0xf695('0x15')]?_0x202aee[_0xf695('0x15')]*0x3e8:0x1388};if(_['isNil'](_0x202aee[_0xf695('0x16')])){if(_0x202aee['authentication']){_0x4d794a[_0xf695('0x17')]=_0x202aee[_0xf695('0x17')];_0x4d794a[_0xf695('0x18')]=_0x202aee[_0xf695('0x18')];}_0x4d794a[_0xf695('0x19')]=_0x202aee[_0xf695('0x19')];_0x4d794a[_0xf695('0x1a')]=_0x202aee[_0xf695('0x1a')]||0x3e1;if(_0x202aee[_0xf695('0x1b')]){_0x4d794a[_0xf695('0x1b')]=!![];}else{_0x4d794a[_0xf695('0x1b')]=![];_0x4d794a[_0xf695('0x1c')]=_0xf695('0x1d');}}else{_0x4d794a['user']=_0x202aee[_0xf695('0x17')];_0x4d794a[_0xf695('0x18')]=_0x202aee['password'];_0x4d794a[_0xf695('0x19')]=utils['getHost'](_0x202aee['service']);_0x4d794a[_0xf695('0x1a')]=0x3e1;_0x4d794a[_0xf695('0x1b')]=!![];}_0x4d794a[_0xf695('0x9')]=_0xde4a1c||_0x202aee[_0xf695('0x17')]||'anonymous@xcally.com';return _0x4d794a;};EmailImap[_0xf695('0x1e')]['handleReady']=function(){this[_0xf695('0x2')][_0xf695('0x1f')](this[_0xf695('0xa')],![],this[_0xf695('0x20')]['bind'](this));};EmailImap['prototype'][_0xf695('0x20')]=function(_0x6dc9a3,_0x1b5728){if(_0x6dc9a3){this['handleError'](_0x6dc9a3,!![]);}else{this[_0xf695('0x21')](_0xf695('0x22'),_0x1b5728);this[_0xf695('0x23')]();}};EmailImap[_0xf695('0x1e')]['handleCloseBox']=function(_0x4e0543){if(_0x4e0543){this[_0xf695('0x11')](_0x4e0543,!![]);}else{this['imap'][_0xf695('0x24')]();}};EmailImap['prototype'][_0xf695('0x23')]=function(){this[_0xf695('0x2')][_0xf695('0x25')]([_0xf695('0x26')],this['handleReadUnseen'][_0xf695('0xd')](this));};EmailImap[_0xf695('0x1e')][_0xf695('0x27')]=function(_0x5329c6,_0x4de986){if(_0x5329c6){this[_0xf695('0x11')](_0x5329c6,!![]);}else{if(_0x4de986['length']){try{var _0x1c8aab=this[_0xf695('0x2')]['fetch'](_0x4de986,{'bodies':'','markSeen':!![]});_0x1c8aab['on']('message',this[_0xf695('0x28')]['bind'](this));_0x1c8aab[_0xf695('0xe')](_0xf695('0x10'),this['handleFetchError'][_0xf695('0xd')](this));_0x1c8aab[_0xf695('0xe')](_0xf695('0x24'),this[_0xf695('0x29')][_0xf695('0xd')](this));}catch(_0x3092f7){logger['error'](_0x3092f7);}}else{this[_0xf695('0x2')][_0xf695('0x2a')](!![],this['handleCloseBox'][_0xf695('0xd')](this));}}};EmailImap[_0xf695('0x1e')]['handleFetchMessage']=function(_0x2a2fd,_0x1add39){_0x2a2fd['on'](_0xf695('0x2b'),this[_0xf695('0x2c')][_0xf695('0xd')](this));_0x2a2fd['once'](_0xf695('0x2d'),this[_0xf695('0x2e')][_0xf695('0xd')](this));_0x2a2fd['once'](_0xf695('0x24'),this[_0xf695('0x2f')][_0xf695('0xd')](this));};EmailImap[_0xf695('0x1e')]['handleMessageBody']=function(_0x21335f,_0x4d16f7){simpleParser(_0x21335f,{'Iconv':Iconv},this['handleSimpleParser'][_0xf695('0xd')](this));};EmailImap[_0xf695('0x1e')][_0xf695('0x2e')]=function(_0x22ce41){};EmailImap[_0xf695('0x1e')]['handleMessageEnd']=function(){};EmailImap['prototype']['handleSimpleParser']=function(_0x3ba31c,_0x209e00){if(_0x3ba31c){logger[_0xf695('0x10')](_0x3ba31c);}else{var _0x1b4b1e=this;utils['parser'](this[_0xf695('0xb')],_0x209e00,function(_0x3503ec){_0x1b4b1e[_0xf695('0x21')](_0xf695('0x9'),_0x3503ec);});}};EmailImap[_0xf695('0x1e')]['handleFetchEnd']=function(){this[_0xf695('0x2')]['closeBox'](!![],this[_0xf695('0x30')][_0xf695('0xd')](this));};EmailImap[_0xf695('0x1e')]['handleFetchError']=function(_0xc17226){this['handleError'](_0xc17226);this[_0xf695('0x2')]['closeBox'](!![],this[_0xf695('0x30')][_0xf695('0xd')](this));};EmailImap[_0xf695('0x1e')][_0xf695('0xf')]=function(){this[_0xf695('0x21')](_0xf695('0x24'));};EmailImap['prototype'][_0xf695('0x11')]=function(_0x59e09f,_0x71bd63){logger['error']('handleError',this[_0xf695('0xb')][_0xf695('0x9')],JSON[_0xf695('0x31')](_0x59e09f));var _0x34d274='';if(_0x59e09f){if(_0x59e09f['textCode']){_0x34d274=_0x59e09f[_0xf695('0x32')];}else{for(var _0x4b49d8 in _0x59e09f){if(_0x59e09f[_0xf695('0x33')](_0x4b49d8)){_0x34d274+=_[_0xf695('0x34')](_0x4b49d8)+':\x20'+_0x59e09f[_0x4b49d8]+'\x0a';}}}}if(_0x71bd63){this[_0xf695('0x2')][_0xf695('0x24')]();}else{this['emit'](_0xf695('0x10'),_0x34d274);this[_0xf695('0x21')](_0xf695('0x24'));}};module['exports']=EmailImap;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda78=['compile','sendMail','toString','verify','createTransport','Not\x20verifired','exports','nodemailer','bluebird','nodemailer-plugin-inline-base64','prototype','use'];(function(_0x500419,_0x549162){var _0x241c1a=function(_0x3bea1a){while(--_0x3bea1a){_0x500419['push'](_0x500419['shift']());}};_0x241c1a(++_0x549162);}(_0xda78,0x127));var _0x8da7=function(_0x41be68,_0x48ed47){_0x41be68=_0x41be68-0x0;var _0x151217=_0xda78[_0x41be68];return _0x151217;};'use strict';var nodemailer=require(_0x8da7('0x0'));var BPromise=require(_0x8da7('0x1'));var inlineBase64=require(_0x8da7('0x2'));function EmailSmtp(){}EmailSmtp[_0x8da7('0x3')]['send']=function(_0x432e54,_0x555269){return new BPromise(function(_0x150716,_0x510b24){var _0x1bf9dd=nodemailer['createTransport'](_0x432e54);_0x1bf9dd[_0x8da7('0x4')](_0x8da7('0x5'),inlineBase64());_0x1bf9dd[_0x8da7('0x6')](_0x555269,function(_0x556a10,_0x58a385){if(_0x556a10){_0x510b24(_0x556a10[_0x8da7('0x7')]());}else{_0x150716(_0x58a385);}});});};EmailSmtp[_0x8da7('0x3')][_0x8da7('0x8')]=function(_0x4044e9){return new BPromise(function(_0x4a2a9c,_0x841ef1){var _0xcee74f=nodemailer[_0x8da7('0x9')](_0x4044e9);_0xcee74f['verify'](function(_0xc2e4ab,_0x4e2d7f){if(_0xc2e4ab){_0x841ef1(_0xc2e4ab['toString']());}else{if(_0x4e2d7f){_0x4a2a9c(_0x4e2d7f);}else{_0x841ef1(_0x8da7('0xa'));}}});});};module[_0x8da7('0xb')]=EmailSmtp;
\ No newline at end of file
+var _0x550e=['Not\x20verifired','exports','nodemailer','bluebird','nodemailer-plugin-inline-base64','send','createTransport','use','compile','sendMail','prototype','verify'];(function(_0x24237f,_0x4cf32c){var _0x48298e=function(_0x3f7511){while(--_0x3f7511){_0x24237f['push'](_0x24237f['shift']());}};_0x48298e(++_0x4cf32c);}(_0x550e,0x16a));var _0xe550=function(_0x5d21fc,_0x399714){_0x5d21fc=_0x5d21fc-0x0;var _0x9d872c=_0x550e[_0x5d21fc];return _0x9d872c;};'use strict';var nodemailer=require(_0xe550('0x0'));var BPromise=require(_0xe550('0x1'));var inlineBase64=require(_0xe550('0x2'));function EmailSmtp(){}EmailSmtp['prototype'][_0xe550('0x3')]=function(_0x3918ca,_0x41652f){return new BPromise(function(_0x57525d,_0xc348e){var _0x41157b=nodemailer[_0xe550('0x4')](_0x3918ca);_0x41157b[_0xe550('0x5')](_0xe550('0x6'),inlineBase64());_0x41157b[_0xe550('0x7')](_0x41652f,function(_0x2649aa,_0x251252){if(_0x2649aa){_0xc348e(_0x2649aa['toString']());}else{_0x57525d(_0x251252);}});});};EmailSmtp[_0xe550('0x8')][_0xe550('0x9')]=function(_0x1e6c40){return new BPromise(function(_0x27a973,_0x3ab955){var _0x36db5b=nodemailer[_0xe550('0x4')](_0x1e6c40);_0x36db5b[_0xe550('0x9')](function(_0x57d44b,_0xc3a85e){if(_0x57d44b){_0x3ab955(_0x57d44b['toString']());}else{if(_0xc3a85e){_0x27a973(_0xc3a85e);}else{_0x3ab955(_0xe550('0xa'));}}});});};module[_0xe550('0xb')]=EmailSmtp;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e69=['html','test','replace','includes','<img','attachments','forEach','push','filename','_SRC','_IMG','body','textAsHtml','originTo','isEmpty','message','originCc','attach','attachment','attachment-','format','%s-%s','now','writeFileSync','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','line','isAutoreply','parser','from','subject','messageId','inReplyTo','YYYY-MM-DD\x20HH:mm:ss','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','getHost','imap.gmail.com','yahoo','hotmail','imap-mail.outlook.com','outlook365','moment','randomstring','path','util','../../../config/logger','email','head','address','anonymous','@xcally.com','value','name','indexOf','split','length','join','Anonymous','pop','generate'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9e69,0x150));var _0x99e6=function(_0x34e5d8,_0x3b8e1d){_0x34e5d8=_0x34e5d8-0x0;var _0xad41d=_0x9e69[_0x34e5d8];return _0xad41d;};'use strict';var _=require('lodash');var moment=require(_0x99e6('0x0'));var random=require(_0x99e6('0x1'));var fs=require('fs');var path=require(_0x99e6('0x2'));var util=require(_0x99e6('0x3'));var tnef=require('node-tnef');var logger=require(_0x99e6('0x4'))(_0x99e6('0x5'));var config=require('../../../config/environment');function getAddress(_0x8a6c5c){var _0x1a7b0a=_[_0x99e6('0x6')](_0x8a6c5c['value']);return _0x1a7b0a&&_0x1a7b0a[_0x99e6('0x7')]?_0x1a7b0a[_0x99e6('0x7')]:_0x99e6('0x8')+random['generate'](0x6)+_0x99e6('0x9');}function getFirstName(_0x305140){var _0x4a657d=_[_0x99e6('0x6')](_0x305140[_0x99e6('0xa')]);if(_0x4a657d&&_0x4a657d['name']){if(_0x4a657d[_0x99e6('0xb')]==_0x4a657d[_0x99e6('0x7')]){return _0x4a657d['name']['substring'](0x0,_0x4a657d[_0x99e6('0xb')][_0x99e6('0xc')]('@'));}var _0x45d416=_0x4a657d[_0x99e6('0xb')][_0x99e6('0xd')](/\s+/);return _0x45d416[_0x99e6('0xe')]>0x1?_0x45d416['slice'](0x0,-0x1)[_0x99e6('0xf')]('\x20'):_0x4a657d[_0x99e6('0xb')];}return _0x99e6('0x10');}function getLastName(_0x5023c0){var _0x290912=_[_0x99e6('0x6')](_0x5023c0[_0x99e6('0xa')]);if(_0x290912&&_0x290912['name']){var _0x586701=_0x290912['name'][_0x99e6('0xd')](/\s+/);return _0x586701[_0x99e6('0xe')]>0x1?_0x586701[_0x99e6('0x11')]():'';}return'';}function getMails(_0x5d5cd5,_0x18fa86){var _0x38fcdd='';for(var _0xebfd62=0x0;_0xebfd62<_0x18fa86[_0x99e6('0xa')][_0x99e6('0xe')];_0xebfd62+=0x1){if(_0x18fa86['value'][_0xebfd62][_0x99e6('0x7')]!==_0x5d5cd5){if(!_['isEmpty'](_0x38fcdd)){_0x38fcdd+=',';}_0x38fcdd+=_0x18fa86[_0x99e6('0xa')][_0xebfd62][_0x99e6('0xb')]||_0x18fa86['value'][_0xebfd62][_0x99e6('0x7')]||'';_0x38fcdd+='\x20<';_0x38fcdd+=_0x18fa86[_0x99e6('0xa')][_0xebfd62][_0x99e6('0x7')]?_0x18fa86[_0x99e6('0xa')][_0xebfd62][_0x99e6('0x7')]:_0x99e6('0x8')+random[_0x99e6('0x12')](0x6)+_0x99e6('0x9');_0x38fcdd+='>';}}return _0x38fcdd;}function parseEmail(_0x46f1d8,_0xef736c,_0x5d3845){if(_0xef736c[_0x99e6('0x13')]){var _0xef9c63=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0xef9c63[_0x99e6('0x14')](_0xef736c[_0x99e6('0x13')])){_0xef736c[_0x99e6('0x13')]=_0xef736c[_0x99e6('0x13')][_0x99e6('0x15')](_0xef9c63,'');}if(_0xef736c[_0x99e6('0x13')][_0x99e6('0x16')](_0x99e6('0x17'))){var _0x38d174=[];_0xef736c[_0x99e6('0x18')][_0x99e6('0x19')](_0x42b3a2=>{_0x38d174[_0x99e6('0x1a')](_0x42b3a2[_0x99e6('0x1b')]);});var _0x17bc07=/<img.*? _SRC(.*?)[^>]+>/g;var _0x57815a=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x43038d=_0xef736c['html'][_0x99e6('0x15')](_0x57815a,_0x99e6('0x1c'));var _0x35d4f2=_0x43038d['replace'](_0x17bc07,_0x99e6('0x1d'));for(let _0x5724bf=0x0;_0x5724bf<_0x38d174[_0x99e6('0xe')];_0x5724bf++){var _0x5de36a=_0x35d4f2[_0x99e6('0x15')](_0x99e6('0x1d'),'<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0x38d174[_0x5724bf]+'\x20]</span>');_0x35d4f2=_0x5de36a;}_0xef736c[_0x99e6('0x13')]=_0x35d4f2;}_0x5d3845[_0x99e6('0x1e')]=_0xef736c[_0x99e6('0x13')];}else{_0x5d3845[_0x99e6('0x1e')]=_0xef736c[_0x99e6('0x1f')];}if(_0x5d3845['body']){_0x5d3845[_0x99e6('0x1e')]=_0x5d3845[_0x99e6('0x1e')][_0x99e6('0x15')](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0xef736c['to']){_0x5d3845['message'][_0x99e6('0x20')]=getMails(null,_0xef736c['to']);var _0x51885f=getMails(_0x46f1d8['email'],_0xef736c['to']);if(!_[_0x99e6('0x21')](_0x51885f)){_0x5d3845['message']['cc']+=_0x51885f;}}if(_0xef736c['cc']){_0x5d3845[_0x99e6('0x22')][_0x99e6('0x23')]=getMails(null,_0xef736c['cc']);var _0xf11b8=getMails(_0x46f1d8['email'],_0xef736c['cc']);if(!_[_0x99e6('0x21')](_0xf11b8)){if(!_[_0x99e6('0x21')](_0x5d3845[_0x99e6('0x22')]['cc'])){_0x5d3845[_0x99e6('0x22')]['cc']+=',';}_0x5d3845['message']['cc']+=_0xf11b8;}}if(!_[_0x99e6('0x16')](_0x5d3845[_0x99e6('0x22')][_0x99e6('0x20')],_0x46f1d8[_0x99e6('0x5')])&&!_[_0x99e6('0x16')](_0x5d3845[_0x99e6('0x22')]['originCc'],_0x46f1d8[_0x99e6('0x5')])){_0x5d3845['message']['bcc']=_0x46f1d8['email'];}if(_0xef736c[_0x99e6('0x18')]&&_0xef736c[_0x99e6('0x18')]['length']){_0x5d3845[_0x99e6('0x22')][_0x99e6('0x24')]=_0xef736c[_0x99e6('0x18')][_0x99e6('0xe')];for(var _0x7ec315=0x0,_0x319b6e,_0x57c60c,_0x20ef60;_0x7ec315<_0xef736c[_0x99e6('0x18')][_0x99e6('0xe')];_0x7ec315+=0x1){if(_0xef736c[_0x99e6('0x18')][_0x7ec315]['type']===_0x99e6('0x25')){_0x20ef60=_0xef736c[_0x99e6('0x18')][_0x7ec315][_0x99e6('0x1b')]||_0x99e6('0x26')+_0x7ec315;_0x319b6e=util[_0x99e6('0x27')](_0x99e6('0x28'),Date[_0x99e6('0x29')](),_0x20ef60);_0x57c60c=path['join'](config['root'],'server/files/attachments/',_0x319b6e);fs[_0x99e6('0x2a')](_0x57c60c,_0xef736c[_0x99e6('0x18')][_0x7ec315]['content']);_0x5d3845[_0x99e6('0x22')][_0x99e6('0x18')][_0x99e6('0x1a')]({'name':_0x20ef60,'basename':_0x319b6e,'type':_0xef736c[_0x99e6('0x18')][_0x7ec315][_0x99e6('0x2b')],'filepath':_0x57c60c});}}}if(_0xef736c[_0x99e6('0x2c')]&&_0xef736c[_0x99e6('0x2c')][_0x99e6('0xe')]>0x0){var _0x48a318=[_0x99e6('0x2d'),_0x99e6('0x2e'),'Precedence:\x20auto_reply'];for(var _0x71aa94=0x0;_0x71aa94<_0xef736c[_0x99e6('0x2c')][_0x99e6('0xe')];_0x71aa94++){var _0x407b9e=_[_0x99e6('0xc')](_0x48a318,_0xef736c[_0x99e6('0x2c')][_0x71aa94][_0x99e6('0x2f')]);if(_0x407b9e>=0x0){_0x5d3845[_0x99e6('0x30')]=!![];}}}return _0x5d3845;}exports[_0x99e6('0x31')]=function(_0x534f05,_0x562921,_0x497e3d){var _0x4abd00={'from':getAddress(_0x562921['from']),'firstName':getFirstName(_0x562921[_0x99e6('0x32')]),'lastName':getLastName(_0x562921[_0x99e6('0x32')]),'mapKey':'email','message':{'from':getMails(_0x534f05[_0x99e6('0x5')],_0x562921[_0x99e6('0x32')]),'to':_0x534f05[_0x99e6('0x5')],'cc':'','subject':_0x562921[_0x99e6('0x33')]||'','messageId':_0x562921[_0x99e6('0x34')],'inReplyTo':_0x562921[_0x99e6('0x35')],'sentAt':moment(_0x562921['date'])[_0x99e6('0x27')](_0x99e6('0x36')),'attach':![],'attachments':[]}};if(!_0x562921[_0x99e6('0x13')]&&!_0x562921[_0x99e6('0x1f')]){var _0xd20ab5=_[_0x99e6('0x37')](_0x562921[_0x99e6('0x18')],{'contentType':_0x99e6('0x38')});if(_0xd20ab5[_0x99e6('0xe')]){logger[_0x99e6('0x39')](util[_0x99e6('0x27')](_0x99e6('0x3a'),_0x562921[_0x99e6('0x34')]));tnef[_0x99e6('0x3b')](_['first'](_0xd20ab5)['content'],function(_0x58a10b,_0x481180){if(_0x481180){_0x562921[_0x99e6('0x13')]=_0x481180[_0x99e6('0x3c')]||_0x99e6('0x3d');if(_0x481180[_0x99e6('0x3e')]){for(var _0x2c071f=0x0;_0x2c071f<_0x481180['Attachments']['length'];_0x2c071f++){var _0x454345=_0x481180[_0x99e6('0x3e')][_0x2c071f];_0x4abd00['message']['attachments'][_0x99e6('0x1a')]({'filename':_0x454345[_0x99e6('0x3f')],'content':Buffer['from'](_0x454345[_0x99e6('0x40')])});}}}_0x497e3d(parseEmail(_0x534f05,_0x562921,_0x4abd00));});}else{_0x562921['html']=_0x99e6('0x3d');_0x497e3d(parseEmail(_0x534f05,_0x562921,_0x4abd00));}}else{_0x497e3d(parseEmail(_0x534f05,_0x562921,_0x4abd00));}};exports[_0x99e6('0x41')]=function(_0x2160ea){switch(_0x2160ea){case'gmail':return _0x99e6('0x42');case _0x99e6('0x43'):return'imap.mail.yahoo.com';case _0x99e6('0x44'):return _0x99e6('0x45');case _0x99e6('0x46'):return'outlook.office365.com';}return'127.0.0.1';};
\ No newline at end of file
+var _0x5ae0=['join','root','writeFileSync','content','push','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','line','isAutoreply','from','subject','messageId','inReplyTo','date','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','getHost','gmail','imap.gmail.com','hotmail','imap-mail.outlook.com','127.0.0.1','moment','randomstring','util','node-tnef','email','../../../config/environment','head','value','address','anonymous','generate','@xcally.com','name','substring','indexOf','split','length','slice','pop','isEmpty','html','test','includes','attachments','forEach','filename','_SRC','replace','_IMG','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','type','attachment-','format','now'];(function(_0x24365b,_0x42866a){var _0x35f24a=function(_0x725947){while(--_0x725947){_0x24365b['push'](_0x24365b['shift']());}};_0x35f24a(++_0x42866a);}(_0x5ae0,0xf8));var _0x05ae=function(_0x3c5fa8,_0x32b387){_0x3c5fa8=_0x3c5fa8-0x0;var _0x4bf28d=_0x5ae0[_0x3c5fa8];return _0x4bf28d;};'use strict';var _=require('lodash');var moment=require(_0x05ae('0x0'));var random=require(_0x05ae('0x1'));var fs=require('fs');var path=require('path');var util=require(_0x05ae('0x2'));var tnef=require(_0x05ae('0x3'));var logger=require('../../../config/logger')(_0x05ae('0x4'));var config=require(_0x05ae('0x5'));function getAddress(_0x4aac85){var _0x554b43=_[_0x05ae('0x6')](_0x4aac85[_0x05ae('0x7')]);return _0x554b43&&_0x554b43[_0x05ae('0x8')]?_0x554b43['address']:_0x05ae('0x9')+random[_0x05ae('0xa')](0x6)+_0x05ae('0xb');}function getFirstName(_0xd050af){var _0x315dd9=_[_0x05ae('0x6')](_0xd050af[_0x05ae('0x7')]);if(_0x315dd9&&_0x315dd9[_0x05ae('0xc')]){if(_0x315dd9[_0x05ae('0xc')]==_0x315dd9[_0x05ae('0x8')]){return _0x315dd9[_0x05ae('0xc')][_0x05ae('0xd')](0x0,_0x315dd9[_0x05ae('0xc')][_0x05ae('0xe')]('@'));}var _0xb5944b=_0x315dd9[_0x05ae('0xc')][_0x05ae('0xf')](/\s+/);return _0xb5944b[_0x05ae('0x10')]>0x1?_0xb5944b[_0x05ae('0x11')](0x0,-0x1)['join']('\x20'):_0x315dd9['name'];}return'Anonymous';}function getLastName(_0x5c577f){var _0x135a4a=_[_0x05ae('0x6')](_0x5c577f[_0x05ae('0x7')]);if(_0x135a4a&&_0x135a4a[_0x05ae('0xc')]){var _0x417064=_0x135a4a[_0x05ae('0xc')][_0x05ae('0xf')](/\s+/);return _0x417064[_0x05ae('0x10')]>0x1?_0x417064[_0x05ae('0x12')]():'';}return'';}function getMails(_0x566f4d,_0x237a99){var _0x38edee='';for(var _0xc1eb63=0x0;_0xc1eb63<_0x237a99[_0x05ae('0x7')][_0x05ae('0x10')];_0xc1eb63+=0x1){if(_0x237a99[_0x05ae('0x7')][_0xc1eb63][_0x05ae('0x8')]!==_0x566f4d){if(!_[_0x05ae('0x13')](_0x38edee)){_0x38edee+=',';}_0x38edee+=_0x237a99[_0x05ae('0x7')][_0xc1eb63]['name']||_0x237a99[_0x05ae('0x7')][_0xc1eb63][_0x05ae('0x8')]||'';_0x38edee+='\x20<';_0x38edee+=_0x237a99['value'][_0xc1eb63][_0x05ae('0x8')]?_0x237a99[_0x05ae('0x7')][_0xc1eb63][_0x05ae('0x8')]:'anonymous'+random[_0x05ae('0xa')](0x6)+_0x05ae('0xb');_0x38edee+='>';}}return _0x38edee;}function parseEmail(_0x4a2a42,_0x84b684,_0x5154be){if(_0x84b684[_0x05ae('0x14')]){var _0x1241da=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x1241da[_0x05ae('0x15')](_0x84b684['html'])){_0x84b684[_0x05ae('0x14')]=_0x84b684[_0x05ae('0x14')]['replace'](_0x1241da,'');}if(_0x84b684['html'][_0x05ae('0x16')]('<img')){var _0x20df1e=[];_0x84b684[_0x05ae('0x17')][_0x05ae('0x18')](_0x5b78f3=>{_0x20df1e['push'](_0x5b78f3[_0x05ae('0x19')]);});var _0x40478c=/<img.*? _SRC(.*?)[^>]+>/g;var _0xb590ed=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0xb497b2=_0x84b684[_0x05ae('0x14')]['replace'](_0xb590ed,_0x05ae('0x1a'));var _0x547253=_0xb497b2[_0x05ae('0x1b')](_0x40478c,_0x05ae('0x1c'));for(let _0x5bd730=0x0;_0x5bd730<_0x20df1e[_0x05ae('0x10')];_0x5bd730++){var _0x3b7f2f=_0x547253[_0x05ae('0x1b')](_0x05ae('0x1c'),'<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0x20df1e[_0x5bd730]+_0x05ae('0x1d'));_0x547253=_0x3b7f2f;}_0x84b684[_0x05ae('0x14')]=_0x547253;}_0x5154be[_0x05ae('0x1e')]=_0x84b684['html'];}else{_0x5154be[_0x05ae('0x1e')]=_0x84b684[_0x05ae('0x1f')];}if(_0x5154be[_0x05ae('0x1e')]){_0x5154be[_0x05ae('0x1e')]=_0x5154be[_0x05ae('0x1e')][_0x05ae('0x1b')](/<a\s+/gi,_0x05ae('0x20'));}if(_0x84b684['to']){_0x5154be[_0x05ae('0x21')][_0x05ae('0x22')]=getMails(null,_0x84b684['to']);var _0x3f0a5d=getMails(_0x4a2a42[_0x05ae('0x4')],_0x84b684['to']);if(!_[_0x05ae('0x13')](_0x3f0a5d)){_0x5154be[_0x05ae('0x21')]['cc']+=_0x3f0a5d;}}if(_0x84b684['cc']){_0x5154be['message'][_0x05ae('0x23')]=getMails(null,_0x84b684['cc']);var _0x22bc27=getMails(_0x4a2a42['email'],_0x84b684['cc']);if(!_[_0x05ae('0x13')](_0x22bc27)){if(!_[_0x05ae('0x13')](_0x5154be[_0x05ae('0x21')]['cc'])){_0x5154be[_0x05ae('0x21')]['cc']+=',';}_0x5154be['message']['cc']+=_0x22bc27;}}if(!_[_0x05ae('0x16')](_0x5154be[_0x05ae('0x21')][_0x05ae('0x22')],_0x4a2a42[_0x05ae('0x4')])&&!_[_0x05ae('0x16')](_0x5154be[_0x05ae('0x21')]['originCc'],_0x4a2a42[_0x05ae('0x4')])){_0x5154be[_0x05ae('0x21')]['bcc']=_0x4a2a42[_0x05ae('0x4')];}if(_0x84b684[_0x05ae('0x17')]&&_0x84b684[_0x05ae('0x17')][_0x05ae('0x10')]){_0x5154be[_0x05ae('0x21')]['attach']=_0x84b684[_0x05ae('0x17')]['length'];for(var _0x53d121=0x0,_0x191aa7,_0x3cdbb8,_0x136c5a;_0x53d121<_0x84b684['attachments'][_0x05ae('0x10')];_0x53d121+=0x1){if(_0x84b684[_0x05ae('0x17')][_0x53d121][_0x05ae('0x24')]==='attachment'){_0x136c5a=_0x84b684[_0x05ae('0x17')][_0x53d121][_0x05ae('0x19')]||_0x05ae('0x25')+_0x53d121;_0x191aa7=util[_0x05ae('0x26')]('%s-%s',Date[_0x05ae('0x27')](),_0x136c5a);_0x3cdbb8=path[_0x05ae('0x28')](config[_0x05ae('0x29')],'server/files/attachments/',_0x191aa7);fs[_0x05ae('0x2a')](_0x3cdbb8,_0x84b684[_0x05ae('0x17')][_0x53d121][_0x05ae('0x2b')]);_0x5154be['message'][_0x05ae('0x17')][_0x05ae('0x2c')]({'name':_0x136c5a,'basename':_0x191aa7,'type':_0x84b684['attachments'][_0x53d121]['contentType'],'filepath':_0x3cdbb8});}}}if(_0x84b684[_0x05ae('0x2d')]&&_0x84b684['headerLines'][_0x05ae('0x10')]>0x0){var _0x3f2f7a=[_0x05ae('0x2e'),_0x05ae('0x2f'),'Precedence:\x20auto_reply'];for(var _0x44ec6d=0x0;_0x44ec6d<_0x84b684[_0x05ae('0x2d')]['length'];_0x44ec6d++){var _0x5c354d=_[_0x05ae('0xe')](_0x3f2f7a,_0x84b684[_0x05ae('0x2d')][_0x44ec6d][_0x05ae('0x30')]);if(_0x5c354d>=0x0){_0x5154be[_0x05ae('0x31')]=!![];}}}return _0x5154be;}exports['parser']=function(_0x308257,_0x3b85f9,_0x28e74e){var _0x5aefaa={'from':getAddress(_0x3b85f9['from']),'firstName':getFirstName(_0x3b85f9[_0x05ae('0x32')]),'lastName':getLastName(_0x3b85f9[_0x05ae('0x32')]),'mapKey':_0x05ae('0x4'),'message':{'from':getMails(_0x308257[_0x05ae('0x4')],_0x3b85f9[_0x05ae('0x32')]),'to':_0x308257[_0x05ae('0x4')],'cc':'','subject':_0x3b85f9[_0x05ae('0x33')]||'','messageId':_0x3b85f9[_0x05ae('0x34')],'inReplyTo':_0x3b85f9[_0x05ae('0x35')],'sentAt':moment(_0x3b85f9[_0x05ae('0x36')])[_0x05ae('0x26')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x3b85f9[_0x05ae('0x14')]&&!_0x3b85f9[_0x05ae('0x1f')]){var _0x4905f7=_[_0x05ae('0x37')](_0x3b85f9['attachments'],{'contentType':_0x05ae('0x38')});if(_0x4905f7['length']){logger[_0x05ae('0x39')](util['format'](_0x05ae('0x3a'),_0x3b85f9[_0x05ae('0x34')]));tnef[_0x05ae('0x3b')](_[_0x05ae('0x3c')](_0x4905f7)[_0x05ae('0x2b')],function(_0x42f294,_0x16a840){if(_0x16a840){_0x3b85f9[_0x05ae('0x14')]=_0x16a840[_0x05ae('0x3d')]||_0x05ae('0x3e');if(_0x16a840[_0x05ae('0x3f')]){for(var _0x3c6bc9=0x0;_0x3c6bc9<_0x16a840[_0x05ae('0x3f')][_0x05ae('0x10')];_0x3c6bc9++){var _0x20bce4=_0x16a840[_0x05ae('0x3f')][_0x3c6bc9];_0x5aefaa['message']['attachments']['push']({'filename':_0x20bce4[_0x05ae('0x40')],'content':Buffer[_0x05ae('0x32')](_0x20bce4[_0x05ae('0x41')])});}}}_0x28e74e(parseEmail(_0x308257,_0x3b85f9,_0x5aefaa));});}else{_0x3b85f9['html']=_0x05ae('0x3e');_0x28e74e(parseEmail(_0x308257,_0x3b85f9,_0x5aefaa));}}else{_0x28e74e(parseEmail(_0x308257,_0x3b85f9,_0x5aefaa));}};exports[_0x05ae('0x42')]=function(_0x3846b7){switch(_0x3846b7){case _0x05ae('0x43'):return _0x05ae('0x44');case'yahoo':return'imap.mail.yahoo.com';case _0x05ae('0x45'):return _0x05ae('0x46');case'outlook365':return'outlook.office365.com';}return _0x05ae('0x47');};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb14=['Imap','Smtp','exports','name','Service','key','SERV','active'];(function(_0x5c06fe,_0x12193a){var _0xf8ec9a=function(_0x3a7026){while(--_0x3a7026){_0x5c06fe['push'](_0x5c06fe['shift']());}};_0xf8ec9a(++_0x12193a);}(_0xdb14,0x12b));var _0x4db1=function(_0x1bf3d7,_0xcfaba7){_0x1bf3d7=_0x1bf3d7-0x0;var _0x30d273=_0xdb14[_0x1bf3d7];return _0x30d273;};'use strict';var _=require('lodash');function MailAccount(_0x126a80){this['id']=_0x126a80['id']||0x0;this['name']=_0x126a80[_0x4db1('0x0')]||_0x4db1('0x1');this[_0x4db1('0x2')]=_0x126a80[_0x4db1('0x2')]||_0x4db1('0x3');this[_0x4db1('0x4')]=_0x126a80['active']||![];this['Imap']=_0x126a80[_0x4db1('0x5')]||[];this[_0x4db1('0x6')]=_0x126a80[_0x4db1('0x6')]||[];}module[_0x4db1('0x7')]=MailAccount;
\ No newline at end of file
+var _0x47f8=['lodash','name','Service','key','SERV','active','Imap','Smtp'];(function(_0x183b97,_0x2d297c){var _0x629cf7=function(_0x4ffd24){while(--_0x4ffd24){_0x183b97['push'](_0x183b97['shift']());}};_0x629cf7(++_0x2d297c);}(_0x47f8,0x80));var _0x847f=function(_0x298863,_0x57b3cc){_0x298863=_0x298863-0x0;var _0xb4d1e8=_0x47f8[_0x298863];return _0xb4d1e8;};'use strict';var _=require(_0x847f('0x0'));function MailAccount(_0x1149fc){this['id']=_0x1149fc['id']||0x0;this[_0x847f('0x1')]=_0x1149fc[_0x847f('0x1')]||_0x847f('0x2');this[_0x847f('0x3')]=_0x1149fc['key']||_0x847f('0x4');this[_0x847f('0x5')]=_0x1149fc[_0x847f('0x5')]||![];this[_0x847f('0x6')]=_0x1149fc[_0x847f('0x6')]||[];this[_0x847f('0x7')]=_0x1149fc['Smtp']||[];}module['exports']=MailAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd124=['prototype','mergeFromDatabase','mailAccounts','length','isUndefined','merge','exports','lodash','mapKeys','hasOwnProperty'];(function(_0x26a09d,_0x21aa2d){var _0x5c4fb4=function(_0x4672d7){while(--_0x4672d7){_0x26a09d['push'](_0x26a09d['shift']());}};_0x5c4fb4(++_0x21aa2d);}(_0xd124,0x129));var _0x4d12=function(_0x270e16,_0x5b8c73){_0x270e16=_0x270e16-0x0;var _0x22de43=_0xd124[_0x270e16];return _0x22de43;};'use strict';var _=require(_0x4d12('0x0'));var MailAccount=require('../model/mailAccount');var Realtime=function(){this['mailAccounts']={};};function freeIsNotKey(_0x272bef,_0x4b2a54,_0x3c43d2){var _0x56a701=_[_0x4d12('0x1')](_0x272bef,function(_0xdcfeda,_0x1a5cab){return _0xdcfeda[_0x3c43d2];});for(var _0x45072e in _0x4b2a54){if(_0x4b2a54[_0x4d12('0x2')](_0x45072e)){if(!_0x56a701[_0x45072e]){delete _0x4b2a54[_0x45072e];}}}}Realtime[_0x4d12('0x3')][_0x4d12('0x4')]=function(_0x1a6a67,_0x371dca){for(var _0x5a2963 in _0x371dca){if(_0x1a6a67['hasOwnProperty'](_0x5a2963)){_0x1a6a67[_0x5a2963]=_0x371dca[_0x5a2963];}}};Realtime[_0x4d12('0x3')]['initMailAccounts']=function(){var _0x569fa5=this;return function(_0x13e777){if(_0x13e777){freeIsNotKey(_0x13e777,_0x569fa5[_0x4d12('0x5')],'id');for(var _0x59e99e=0x0,_0x2547e5={},_0x5cf474={};_0x59e99e<_0x13e777[_0x4d12('0x6')];_0x59e99e+=0x1){_0x2547e5=_0x13e777[_0x59e99e];if(_[_0x4d12('0x7')](_0x569fa5[_0x4d12('0x5')][_0x2547e5['id']])){_0x569fa5[_0x4d12('0x5')][_0x2547e5['id']]=new MailAccount(_0x2547e5);}else{_[_0x4d12('0x8')](_0x569fa5['mailAccounts'][_0x2547e5['id']],_0x2547e5);}}}return _0x569fa5[_0x4d12('0x5')];};};module[_0x4d12('0x9')]=Realtime;
\ No newline at end of file
+var _0xd0c1=['lodash','../model/mailAccount','mapKeys','hasOwnProperty','mergeFromDatabase','prototype','initMailAccounts','length','isUndefined','mailAccounts','merge','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd0c1,0x1e0));var _0x1d0c=function(_0xd711db,_0xa334fe){_0xd711db=_0xd711db-0x0;var _0x3a12c0=_0xd0c1[_0xd711db];return _0x3a12c0;};'use strict';var _=require(_0x1d0c('0x0'));var MailAccount=require(_0x1d0c('0x1'));var Realtime=function(){this['mailAccounts']={};};function freeIsNotKey(_0x386b7e,_0x3d7321,_0x4a54a2){var _0xdcc52c=_[_0x1d0c('0x2')](_0x386b7e,function(_0x98c16d,_0xe768fb){return _0x98c16d[_0x4a54a2];});for(var _0x573d02 in _0x3d7321){if(_0x3d7321[_0x1d0c('0x3')](_0x573d02)){if(!_0xdcc52c[_0x573d02]){delete _0x3d7321[_0x573d02];}}}}Realtime['prototype'][_0x1d0c('0x4')]=function(_0x519b6d,_0x4f52ab){for(var _0x18f547 in _0x4f52ab){if(_0x519b6d['hasOwnProperty'](_0x18f547)){_0x519b6d[_0x18f547]=_0x4f52ab[_0x18f547];}}};Realtime[_0x1d0c('0x5')][_0x1d0c('0x6')]=function(){var _0x5f024a=this;return function(_0x593bf9){if(_0x593bf9){freeIsNotKey(_0x593bf9,_0x5f024a['mailAccounts'],'id');for(var _0x297278=0x0,_0x136c1b={},_0x558c45={};_0x297278<_0x593bf9[_0x1d0c('0x7')];_0x297278+=0x1){_0x136c1b=_0x593bf9[_0x297278];if(_[_0x1d0c('0x8')](_0x5f024a[_0x1d0c('0x9')][_0x136c1b['id']])){_0x5f024a[_0x1d0c('0x9')][_0x136c1b['id']]=new MailAccount(_0x136c1b);}else{_[_0x1d0c('0xa')](_0x5f024a[_0x1d0c('0x9')][_0x136c1b['id']],_0x136c1b);}}}return _0x5f024a[_0x1d0c('0x9')];};};module[_0x1d0c('0xb')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90b1=['getMailAccounts','Request','service','email','active','key','MailServerOut','Smtp','getMailAccount','notify','NotifyMailAccount','../client'];(function(_0x27b9aa,_0x751f2a){var _0x4d23c2=function(_0x186aa7){while(--_0x186aa7){_0x27b9aa['push'](_0x27b9aa['shift']());}};_0x4d23c2(++_0x751f2a);}(_0x90b1,0x1bb));var _0x190b=function(_0x31bcb2,_0x23cc0e){_0x31bcb2=_0x31bcb2-0x0;var _0x3f150c=_0x90b1[_0x31bcb2];return _0x3f150c;};'use strict';var client=require(_0x190b('0x0'));exports[_0x190b('0x1')]=function(){return function(){return client[_0x190b('0x2')]('GetMailAccount',{'options':{'attributes':['id','name',_0x190b('0x3'),_0x190b('0x4'),_0x190b('0x5'),_0x190b('0x6'),'ListId','TemplateId'],'raw':![],'include':[{'model':'MailServerIn','as':'Imap'},{'model':_0x190b('0x7'),'as':_0x190b('0x8')}]},'log':_0x190b('0x9')});};};exports[_0x190b('0xa')]=function(_0x311161,_0x802924){return client[_0x190b('0x2')]('NotifyMailAccount',{'account':{'id':_0x311161},'body':_0x802924,'log':_0x190b('0xb')});};
\ No newline at end of file
+var _0xc3ed=['NotifyMailAccount','../client','getMailAccounts','GetMailAccount','name','service','email','active','ListId','MailServerIn','Imap','MailServerOut','Smtp','getMailAccount','notify','Request'];(function(_0x484073,_0x404be9){var _0x3fafa4=function(_0x1ec247){while(--_0x1ec247){_0x484073['push'](_0x484073['shift']());}};_0x3fafa4(++_0x404be9);}(_0xc3ed,0x111));var _0xdc3e=function(_0x2ec689,_0x4ec0e4){_0x2ec689=_0x2ec689-0x0;var _0x8d3ea5=_0xc3ed[_0x2ec689];return _0x8d3ea5;};'use strict';var client=require(_0xdc3e('0x0'));exports[_0xdc3e('0x1')]=function(){return function(){return client['Request'](_0xdc3e('0x2'),{'options':{'attributes':['id',_0xdc3e('0x3'),_0xdc3e('0x4'),_0xdc3e('0x5'),_0xdc3e('0x6'),'key',_0xdc3e('0x7'),'TemplateId'],'raw':![],'include':[{'model':_0xdc3e('0x8'),'as':_0xdc3e('0x9')},{'model':_0xdc3e('0xa'),'as':_0xdc3e('0xb')}]},'log':_0xdc3e('0xc')});};};exports[_0xdc3e('0xd')]=function(_0x358cb8,_0x4f8345){return client[_0xdc3e('0xe')](_0xdc3e('0xf'),{'account':{'id':_0x358cb8},'body':_0x4f8345,'log':_0xdc3e('0xf')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdeb2=['GetSettings','../client','getSettings','Request','ShowSetting','loginMailFrequency'];(function(_0x576170,_0x1712ae){var _0x397c70=function(_0x2eb9de){while(--_0x2eb9de){_0x576170['push'](_0x576170['shift']());}};_0x397c70(++_0x1712ae);}(_0xdeb2,0x97));var _0x2deb=function(_0x48c8ab,_0x5af680){_0x48c8ab=_0x48c8ab-0x0;var _0x246963=_0xdeb2[_0x48c8ab];return _0x246963;};'use strict';var client=require(_0x2deb('0x0'));exports[_0x2deb('0x1')]=function(){return client[_0x2deb('0x2')](_0x2deb('0x3'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x2deb('0x4')]},'log':_0x2deb('0x5')});};
\ No newline at end of file
+var _0xbfea=['ShowSetting','GetSettings','../client','getSettings'];(function(_0x2482f6,_0x284aeb){var _0xc0273e=function(_0x63b097){while(--_0x63b097){_0x2482f6['push'](_0x2482f6['shift']());}};_0xc0273e(++_0x284aeb);}(_0xbfea,0x76));var _0xabfe=function(_0x5362a7,_0xedec10){_0x5362a7=_0x5362a7-0x0;var _0x177e92=_0xbfea[_0x5362a7];return _0x177e92;};'use strict';var client=require(_0xabfe('0x0'));exports[_0xabfe('0x1')]=function(){return client['Request'](_0xabfe('0x2'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':['loginMailFrequency']},'log':_0xabfe('0x3')});};
\ 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(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x110c3d,_0x12ee06){_0x110c3d=_0x110c3d-0x0;var _0x226d67=_0xa9e0[_0x110c3d];return _0x226d67;};'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(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0xa9e0,0x123));var _0x0a9e=function(_0x433a86,_0x175b5c){_0x433a86=_0x433a86-0x0;var _0x23000c=_0xa9e0[_0x433a86];return _0x23000c;};'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 _0xf53d=['listening','log','Express\x20server\x20listening\x20on\x20port\x20%d!','port','exports','express','sticky-session','ioredis','../../config/environment','createServer','timeout','listen','socket.io','websocket','polling','redis','defaults','socket.io-redis','../../config/triggers','../../config/socketio','../../config/express','../../routes','default'];(function(_0x40fbee,_0x268f74){var _0x1d93e8=function(_0x55b3c1){while(--_0x55b3c1){_0x40fbee['push'](_0x40fbee['shift']());}};_0x1d93e8(++_0x268f74);}(_0xf53d,0xbd));var _0xdf53=function(_0x385c6b,_0x56cdb9){_0x385c6b=_0x385c6b-0x0;var _0x29d1fe=_0xf53d[_0x385c6b];return _0x29d1fe;};'use strict';var _=require('lodash');var http=require('http');var express=require(_0xdf53('0x0'));var sticky=require(_0xdf53('0x1'));var Redis=require(_0xdf53('0x2'));var config=require(_0xdf53('0x3'));var app=express();var server=http[_0xdf53('0x4')](app);server[_0xdf53('0x5')]=0xdbba0;if(sticky[_0xdf53('0x6')](server,config['port'])){var socketio=require(_0xdf53('0x7'))(server,{'transports':[_0xdf53('0x8'),_0xdf53('0x9')]});config[_0xdf53('0xa')]=_[_0xdf53('0xb')](config[_0xdf53('0xa')],{'host':'localhost','port':0x18eb});socketio['adapter'](require(_0xdf53('0xc'))({'pubClient':new Redis(config[_0xdf53('0xa')]),'subClient':new Redis(config[_0xdf53('0xa')])}));require(_0xdf53('0xd'))['default']();require(_0xdf53('0xe'))['default'](socketio);require(_0xdf53('0xf'))['default'](app);require(_0xdf53('0x10'))[_0xdf53('0x11')](app);}else{server['once'](_0xdf53('0x12'),function(){console[_0xdf53('0x13')](_0xdf53('0x14'),config[_0xdf53('0x15')]);});}exports=module[_0xdf53('0x16')]=app;
\ No newline at end of file
+var _0x1d80=['polling','redis','localhost','adapter','socket.io-redis','../../config/triggers','../../config/socketio','default','../../config/express','../../routes','listening','log','Express\x20server\x20listening\x20on\x20port\x20%d!','exports','lodash','http','../../config/environment','port','websocket'];(function(_0x25ca44,_0x111633){var _0x4897c1=function(_0xf344b9){while(--_0xf344b9){_0x25ca44['push'](_0x25ca44['shift']());}};_0x4897c1(++_0x111633);}(_0x1d80,0xb9));var _0x01d8=function(_0x1f51b5,_0x52af32){_0x1f51b5=_0x1f51b5-0x0;var _0xa2d77b=_0x1d80[_0x1f51b5];return _0xa2d77b;};'use strict';var _=require(_0x01d8('0x0'));var http=require(_0x01d8('0x1'));var express=require('express');var sticky=require('sticky-session');var Redis=require('ioredis');var config=require(_0x01d8('0x2'));var app=express();var server=http['createServer'](app);server['timeout']=0xdbba0;if(sticky['listen'](server,config[_0x01d8('0x3')])){var socketio=require('socket.io')(server,{'transports':[_0x01d8('0x4'),_0x01d8('0x5')]});config[_0x01d8('0x6')]=_['defaults'](config[_0x01d8('0x6')],{'host':_0x01d8('0x7'),'port':0x18eb});socketio[_0x01d8('0x8')](require(_0x01d8('0x9'))({'pubClient':new Redis(config[_0x01d8('0x6')]),'subClient':new Redis(config[_0x01d8('0x6')])}));require(_0x01d8('0xa'))['default']();require(_0x01d8('0xb'))[_0x01d8('0xc')](socketio);require(_0x01d8('0xd'))[_0x01d8('0xc')](app);require(_0x01d8('0xe'))['default'](app);}else{server['once'](_0x01d8('0xf'),function(){console[_0x01d8('0x10')](_0x01d8('0x11'),config[_0x01d8('0x3')]);});}exports=module[_0x01d8('0x12')]=app;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdc2a=['then','error','rpc','message','result','exports','jayson/promise','bluebird','../../config/logger','routing','client','http'];(function(_0x36eaaa,_0x326732){var _0x461349=function(_0x4e4180){while(--_0x4e4180){_0x36eaaa['push'](_0x36eaaa['shift']());}};_0x461349(++_0x326732);}(_0xdc2a,0x192));var _0xadc2=function(_0x3f1ae7,_0x2ac501){_0x3f1ae7=_0x3f1ae7-0x0;var _0x5de5a0=_0xdc2a[_0x3f1ae7];return _0x5de5a0;};'use strict';var jayson=require(_0xadc2('0x0'));var BPromise=require(_0xadc2('0x1'));var logger=require(_0xadc2('0x2'))(_0xadc2('0x3'));var client=jayson[_0xadc2('0x4')][_0xadc2('0x5')]({'port':0x2329});client['Request']=function(_0x1bb8aa,_0x156e33){return new BPromise(function(_0x3debc9,_0x2ba3ce){return client['request'](_0x1bb8aa,_0x156e33)[_0xadc2('0x6')](function(_0x109c8d){logger['debug']('rpc',_0xadc2('0x3'),_0x1bb8aa,_0x156e33,_0x109c8d);if(_0x109c8d[_0xadc2('0x7')]){logger[_0xadc2('0x7')](_0xadc2('0x8'),_0xadc2('0x3'),_0x1bb8aa,_0x109c8d[_0xadc2('0x7')][_0xadc2('0x9')],_0x156e33);return _0x2ba3ce(_0x109c8d[_0xadc2('0x7')][_0xadc2('0x9')]);}else{return _0x3debc9(_0x109c8d[_0xadc2('0xa')]);}})['catch'](function(_0x1ae369){logger[_0xadc2('0x7')]('rpc',_0xadc2('0x3'),_0x1bb8aa,_0x1ae369,_0x156e33);return _0x2ba3ce(_0x1ae369);});});};module[_0xadc2('0xb')]=client;
\ No newline at end of file
+var _0x902a=['Request','then','rpc','error','message','result','catch','exports','bluebird','../../config/logger','routing','client','http'];(function(_0x1e1e37,_0xa00323){var _0x4e5cbf=function(_0xeae311){while(--_0xeae311){_0x1e1e37['push'](_0x1e1e37['shift']());}};_0x4e5cbf(++_0xa00323);}(_0x902a,0x10c));var _0xa902=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x902a[_0x3dd15e];return _0x231fd0;};'use strict';var jayson=require('jayson/promise');var BPromise=require(_0xa902('0x0'));var logger=require(_0xa902('0x1'))(_0xa902('0x2'));var client=jayson[_0xa902('0x3')][_0xa902('0x4')]({'port':0x2329});client[_0xa902('0x5')]=function(_0x2dd3e7,_0x255d61){return new BPromise(function(_0x55e131,_0x8364b1){return client['request'](_0x2dd3e7,_0x255d61)[_0xa902('0x6')](function(_0x351cf8){logger['debug'](_0xa902('0x7'),_0xa902('0x2'),_0x2dd3e7,_0x255d61,_0x351cf8);if(_0x351cf8[_0xa902('0x8')]){logger[_0xa902('0x8')](_0xa902('0x7'),'routing',_0x2dd3e7,_0x351cf8[_0xa902('0x8')][_0xa902('0x9')],_0x255d61);return _0x8364b1(_0x351cf8[_0xa902('0x8')][_0xa902('0x9')]);}else{return _0x55e131(_0x351cf8[_0xa902('0xa')]);}})[_0xa902('0xb')](function(_0x1e4c1c){logger[_0xa902('0x8')]('rpc',_0xa902('0x2'),_0x2dd3e7,_0x1e4c1c,_0x255d61);return _0x8364b1(_0x1e4c1c);});});};module[_0xa902('0xc')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a11=['./rpc/chatQueue','./rpc/smsQueue','./rpc/faxQueue','./rpc/whatsappQueue','resolve','then','getAgents','initAgents','getIntervals','initIntervals','getOpenchannelQueues','initOpenchannelQueues','getChatQueues','getSmsQueues','initSmsQueues','getMailQueues','initMailQueues','getFaxQueues','initFaxQueues','getWhatsappQueues','initWhatsappQueues','listen','catch','bluebird','./server','./realtime','./rpc/interval','./rpc/openchannelQueue'];(function(_0x934dca,_0x111189){var _0xa283cd=function(_0x1099cc){while(--_0x1099cc){_0x934dca['push'](_0x934dca['shift']());}};_0xa283cd(++_0x111189);}(_0x9a11,0xf7));var _0x19a1=function(_0x1d0dec,_0x42e69b){_0x1d0dec=_0x1d0dec-0x0;var _0x5100f7=_0x9a11[_0x1d0dec];return _0x5100f7;};'use strict';var BPromise=require(_0x19a1('0x0'));var server=require(_0x19a1('0x1'));var Realtime=require(_0x19a1('0x2'));var user=require('./rpc/user');var interval=require(_0x19a1('0x3'));var openchannelQueue=require(_0x19a1('0x4'));var chatQueue=require(_0x19a1('0x5'));var smsQueue=require(_0x19a1('0x6'));var mailQueue=require('./rpc/mailQueue');var faxQueue=require(_0x19a1('0x7'));var whatsappQueue=require(_0x19a1('0x8'));var realtime=new Realtime();function initRealtime(){return BPromise[_0x19a1('0x9')]()[_0x19a1('0xa')](user[_0x19a1('0xb')]())[_0x19a1('0xa')](realtime[_0x19a1('0xc')]())[_0x19a1('0xa')](interval[_0x19a1('0xd')]())[_0x19a1('0xa')](realtime[_0x19a1('0xe')]())[_0x19a1('0xa')](openchannelQueue[_0x19a1('0xf')]())[_0x19a1('0xa')](realtime[_0x19a1('0x10')]())['then'](chatQueue[_0x19a1('0x11')]())[_0x19a1('0xa')](realtime['initChatQueues']())[_0x19a1('0xa')](smsQueue[_0x19a1('0x12')]())[_0x19a1('0xa')](realtime[_0x19a1('0x13')]())[_0x19a1('0xa')](mailQueue[_0x19a1('0x14')]())['then'](realtime[_0x19a1('0x15')]())['then'](faxQueue[_0x19a1('0x16')]())['then'](realtime[_0x19a1('0x17')]())[_0x19a1('0xa')](whatsappQueue[_0x19a1('0x18')]())[_0x19a1('0xa')](realtime[_0x19a1('0x19')]())[_0x19a1('0xa')](function(){return realtime;});}function main(){return server[_0x19a1('0x1a')](realtime)['then'](function(_0xb62070){return initRealtime();})[_0x19a1('0xa')](function(_0x363657){return setInterval(initRealtime,0x1388);})[_0x19a1('0x1b')](function(_0x2f01c3){console['log'](_0x2f01c3);});}main();
\ No newline at end of file
+var _0xe59c=['then','getAgents','getIntervals','initIntervals','getOpenchannelQueues','initOpenchannelQueues','getSmsQueues','initSmsQueues','getMailQueues','initMailQueues','getFaxQueues','initFaxQueues','getWhatsappQueues','listen','bluebird','./realtime','./rpc/user','./rpc/interval','./rpc/openchannelQueue','./rpc/chatQueue','./rpc/smsQueue','./rpc/mailQueue','./rpc/faxQueue','./rpc/whatsappQueue','resolve'];(function(_0x5a7f6e,_0x432d73){var _0x499100=function(_0x4dea0e){while(--_0x4dea0e){_0x5a7f6e['push'](_0x5a7f6e['shift']());}};_0x499100(++_0x432d73);}(_0xe59c,0xa4));var _0xce59=function(_0x474943,_0x12caab){_0x474943=_0x474943-0x0;var _0x5863a4=_0xe59c[_0x474943];return _0x5863a4;};'use strict';var BPromise=require(_0xce59('0x0'));var server=require('./server');var Realtime=require(_0xce59('0x1'));var user=require(_0xce59('0x2'));var interval=require(_0xce59('0x3'));var openchannelQueue=require(_0xce59('0x4'));var chatQueue=require(_0xce59('0x5'));var smsQueue=require(_0xce59('0x6'));var mailQueue=require(_0xce59('0x7'));var faxQueue=require(_0xce59('0x8'));var whatsappQueue=require(_0xce59('0x9'));var realtime=new Realtime();function initRealtime(){return BPromise[_0xce59('0xa')]()[_0xce59('0xb')](user[_0xce59('0xc')]())[_0xce59('0xb')](realtime['initAgents']())[_0xce59('0xb')](interval[_0xce59('0xd')]())[_0xce59('0xb')](realtime[_0xce59('0xe')]())[_0xce59('0xb')](openchannelQueue[_0xce59('0xf')]())[_0xce59('0xb')](realtime[_0xce59('0x10')]())['then'](chatQueue['getChatQueues']())[_0xce59('0xb')](realtime['initChatQueues']())[_0xce59('0xb')](smsQueue[_0xce59('0x11')]())[_0xce59('0xb')](realtime[_0xce59('0x12')]())[_0xce59('0xb')](mailQueue[_0xce59('0x13')]())[_0xce59('0xb')](realtime[_0xce59('0x14')]())[_0xce59('0xb')](faxQueue[_0xce59('0x15')]())[_0xce59('0xb')](realtime[_0xce59('0x16')]())['then'](whatsappQueue[_0xce59('0x17')]())[_0xce59('0xb')](realtime['initWhatsappQueues']())['then'](function(){return realtime;});}function main(){return server[_0xce59('0x18')](realtime)[_0xce59('0xb')](function(_0x1cd396){return initRealtime();})['then'](function(_0x558acb){return setInterval(initRealtime,0x1388);})['catch'](function(_0x5adb38){console['log'](_0x5adb38);});}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(_0x20a558,_0x160e0e){var _0x53d3f7=function(_0x259bd8){while(--_0x259bd8){_0x20a558['push'](_0x20a558['shift']());}};_0x53d3f7(++_0x160e0e);}(_0x5fc3,0xa8));var _0x35fc=function(_0x1c5142,_0x30ea72){_0x1c5142=_0x1c5142-0x0;var _0x1268cb=_0x5fc3[_0x1c5142];return _0x1268cb;};'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 _0xe14b=['next','restart','condition','noop','findRules','matches','turn','length','prioritize','priority','toJSON','map','toString','fromJSON','isString','object','register','exports','lodash','util','isNil','ignoreFactChanges','inherits','prototype','init','rules','activeRules','isArray','concat','push','sync','filter','orderBy','asc','execute','result','clone','consequence','ruleRef','name','index_','nextTick','call'];(function(_0x22db70,_0x54b5a2){var _0x31027d=function(_0x559e7f){while(--_0x559e7f){_0x22db70['push'](_0x22db70['shift']());}};_0x31027d(++_0x54b5a2);}(_0xe14b,0x93));var _0xbe14=function(_0x1e263f,_0x573116){_0x1e263f=_0x1e263f-0x0;var _0xb4e8b6=_0xe14b[_0x1e263f];return _0xb4e8b6;};'use strict';var _=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var EventEmitter=require('events')['EventEmitter'];function RuleEngine(_0x11c3a0,_0x36393a){this['init']();if(!_[_0xbe14('0x2')](_0x11c3a0)){this['register'](_0x11c3a0);}if(_0x36393a){this['ignoreFactChanges']=_0x36393a[_0xbe14('0x3')];}return this;}util[_0xbe14('0x4')](RuleEngine,EventEmitter);RuleEngine[_0xbe14('0x5')][_0xbe14('0x6')]=function(_0x1d9ade){this[_0xbe14('0x7')]=[];this[_0xbe14('0x8')]=[];};RuleEngine['prototype']['register']=function(_0x496063){if(Array[_0xbe14('0x9')](_0x496063)){this[_0xbe14('0x7')]=this[_0xbe14('0x7')][_0xbe14('0xa')](_0x496063);}else if(_0x496063!==null&&_['isObject'](_0x496063)){this['rules'][_0xbe14('0xb')](_0x496063);}this[_0xbe14('0xc')]();};RuleEngine['prototype'][_0xbe14('0xc')]=function(){this[_0xbe14('0x8')]=this[_0xbe14('0x7')][_0xbe14('0xd')](function(_0x27792f){if(_[_0xbe14('0x2')](_0x27792f['on'])){_0x27792f['on']=!![];}if(_0x27792f['on']===!![]){return _0x27792f;}});this[_0xbe14('0x8')]=_[_0xbe14('0xe')](this[_0xbe14('0x8')],['p'],[_0xbe14('0xf')]);};RuleEngine[_0xbe14('0x5')][_0xbe14('0x10')]=function(_0x813399,_0x530538){var _0x55b3a7=![];_0x813399[_0xbe14('0x11')]=!![];var _0x3dc4a9=_[_0xbe14('0x12')](_0x813399);var _0x37ce4e=_['clone'](_0x813399);var _0x21c789=this[_0xbe14('0x8')];var _0xfd7b8f=[];var _0x123ede=this[_0xbe14('0x3')];(function FnRuleLoop(_0x29ab73){var _0x17ae86={'rules':function(){return _0x21c789;},'rule':function(){return _0x21c789[_0x29ab73];},'when':function(_0x5ea1f8){if(_0x5ea1f8){var _0x137ee5=_0x21c789[_0x29ab73][_0xbe14('0x13')];_0x137ee5[_0xbe14('0x14')]=_0x21c789[_0x29ab73]['id']||_0x21c789[_0x29ab73][_0xbe14('0x15')]||_0xbe14('0x16')+_0x29ab73;process[_0xbe14('0x17')](function(){_0xfd7b8f['push'](_0x137ee5[_0xbe14('0x14')]);_0x137ee5[_0xbe14('0x18')](_0x3dc4a9,_0x17ae86);});}else{process[_0xbe14('0x17')](function(){_0x17ae86[_0xbe14('0x19')]();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x55b3a7=!![];return FnRuleLoop(0x0);},'next':function(_0x188ec4){if(!_0x123ede&&!_['isEqual'](_0x37ce4e,_0x3dc4a9)){_0x37ce4e=_[_0xbe14('0x12')](_0x3dc4a9);process['nextTick'](function(){_0x17ae86[_0xbe14('0x1a')]();});}else{process['nextTick'](function(){if(_[_0xbe14('0x2')](_0x188ec4)){return FnRuleLoop(_0x29ab73+0x1);}else{return FnRuleLoop(_0x188ec4);}});}}};if(_0x29ab73<_0x21c789['length']&&_0x55b3a7===![]){var _0x274018=_0x21c789[_0x29ab73][_0xbe14('0x1b')];_0x274018['call'](_0x3dc4a9,_0x17ae86);}else{process[_0xbe14('0x17')](function(){_0x3dc4a9['matchPath']=_0xfd7b8f;return _0x530538?_0x530538(_0x3dc4a9):_[_0xbe14('0x1c')]();});}}(0x0));};RuleEngine['prototype'][_0xbe14('0x1d')]=function(_0x5fa043){if(_[_0xbe14('0x2')](_0x5fa043)){return this[_0xbe14('0x7')];}else{var _0x15ef02=_[_0xbe14('0x1e')](_0x5fa043);return _['filter'](this[_0xbe14('0x7')],_0x15ef02);}};RuleEngine[_0xbe14('0x5')][_0xbe14('0x1f')]=function(_0x169369,_0x5dd475){var _0x16f884=_0x169369==='on'||_0x169369==='ON'?!![]:![];var _0x29fc64=this['findRules'](_0x5dd475);for(var _0x3c3613=0x0,_0x3b3e84=_0x29fc64[_0xbe14('0x20')];_0x3c3613<_0x3b3e84;_0x3c3613+=0x1){_0x29fc64[_0x3c3613]['on']=_0x16f884;}this[_0xbe14('0xc')]();};RuleEngine[_0xbe14('0x5')][_0xbe14('0x21')]=function(_0x31a664,_0x2b05cb){_0x31a664=parseInt(_0x31a664,0xa);var _0x4168c8=this[_0xbe14('0x1d')](_0x2b05cb);for(var _0x40538f=0x0,_0x3bf43c=_0x4168c8[_0xbe14('0x20')];_0x40538f<_0x3bf43c;_0x40538f+=0x1){_0x4168c8[_0x40538f][_0xbe14('0x22')]=_0x31a664;}this[_0xbe14('0xc')]();};RuleEngine[_0xbe14('0x5')][_0xbe14('0x23')]=function(){var _0x2ff48e=this[_0xbe14('0x7')];if(_0x2ff48e instanceof Array){_0x2ff48e=_0x2ff48e[_0xbe14('0x24')](function(_0x581e86){_0x581e86[_0xbe14('0x1b')]=_0x581e86['condition']['toString']();_0x581e86[_0xbe14('0x13')]=_0x581e86['consequence'][_0xbe14('0x25')]();return _0x581e86;});}else if(!_[_0xbe14('0x2')](_0x2ff48e)){_0x2ff48e['condition']=_0x2ff48e['condition']['toString']();_0x2ff48e[_0xbe14('0x13')]=_0x2ff48e[_0xbe14('0x13')]['toString']();}return _0x2ff48e;};RuleEngine[_0xbe14('0x5')][_0xbe14('0x26')]=function(_0x452635){this[_0xbe14('0x6')]();if(_[_0xbe14('0x27')](_0x452635)){_0x452635=JSON['parse'](_0x452635);}if(_0x452635 instanceof Array){_0x452635=_0x452635['map'](function(_0x15a997){_0x15a997['condition']=eval('('+_0x15a997['condition']+')');_0x15a997['consequence']=eval('('+_0x15a997[_0xbe14('0x13')]+')');return _0x15a997;});}else if(_0x452635!==null&&typeof _0x452635==_0xbe14('0x28')){_0x452635[_0xbe14('0x1b')]=eval('('+_0x452635[_0xbe14('0x1b')]+')');_0x452635[_0xbe14('0x13')]=eval('('+_0x452635[_0xbe14('0x13')]+')');}this[_0xbe14('0x29')](_0x452635);};module[_0xbe14('0x2a')]=RuleEngine;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd58a=['bluebird','jayson/promise','client','http','request','then','error','message','catch','sendMailMessage','SendMail'];(function(_0x550aed,_0x1ba6cb){var _0x1c43a5=function(_0x39e5f7){while(--_0x39e5f7){_0x550aed['push'](_0x550aed['shift']());}};_0x1c43a5(++_0x1ba6cb);}(_0xd58a,0x1ef));var _0xad58=function(_0x566f61,_0x2dad4f){_0x566f61=_0x566f61-0x0;var _0x45521b=_0xd58a[_0x566f61];return _0x45521b;};'use strict';var BPromise=require(_0xad58('0x0'));var jayson=require(_0xad58('0x1'));var client=jayson[_0xad58('0x2')][_0xad58('0x3')]({'port':0x232b});function request(_0xe710ff,_0x342e79){return new BPromise(function(_0x1cb428,_0x5abe74){return client[_0xad58('0x4')](_0xe710ff,_0x342e79)[_0xad58('0x5')](function(_0x2a1882){if(_0x2a1882[_0xad58('0x6')]){return _0x5abe74(_0x2a1882[_0xad58('0x6')][_0xad58('0x7')]);}else{return _0x1cb428(_0x2a1882['result']);}})[_0xad58('0x8')](function(_0x51a6ac){return _0x5abe74(_0x51a6ac);});});}exports[_0xad58('0x9')]=function(_0x28c195,_0x2bd40a){return request(_0xad58('0xa'),{'account':_0x28c195,'message':_0x2bd40a});};
\ No newline at end of file
+var _0x1e44=['error','message','result','catch','SendMail','jayson/promise','then'];(function(_0x46f249,_0x5ec765){var _0x3a623c=function(_0x2fafdf){while(--_0x2fafdf){_0x46f249['push'](_0x46f249['shift']());}};_0x3a623c(++_0x5ec765);}(_0x1e44,0xc2));var _0x41e4=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1e44[_0x3dd15e];return _0x231fd0;};'use strict';var BPromise=require('bluebird');var jayson=require(_0x41e4('0x0'));var client=jayson['client']['http']({'port':0x232b});function request(_0x345bd0,_0x201ca4){return new BPromise(function(_0x2f1c7f,_0x435430){return client['request'](_0x345bd0,_0x201ca4)[_0x41e4('0x1')](function(_0x19db69){if(_0x19db69[_0x41e4('0x2')]){return _0x435430(_0x19db69[_0x41e4('0x2')][_0x41e4('0x3')]);}else{return _0x2f1c7f(_0x19db69[_0x41e4('0x4')]);}})[_0x41e4('0x5')](function(_0x4efb27){return _0x435430(_0x4efb27);});});}exports['sendMailMessage']=function(_0x37f60f,_0x1b676d){return request(_0x41e4('0x6'),{'account':_0x37f60f,'message':_0x1b676d});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x19d3=['md5','ioredis','../../../config/environment','redis','localhost','socket.io-emitter','name','online','voicePause','chatPause','mailPause','faxPause','openchannelPause','chatStatus','unknown','chatStatusTime','chatCapacity','chatCurrentCapacity','mailStatusTime','mailCapacity','mailCurrentCapacity','faxStatusTime','faxCapacity','smsStatusTime','smsCapacity','smsCurrentCapacity','whatsappStatus','whatsappStatusTime','whatsappCapacity','whatsappCurrentCapacity','openchannelStatus','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','busy','busyQueue','updateRealtime','prototype','getChannelStatus','CurrentCapacity','Capacity','working','idle','mail','chat','openchannel','fax','sms','whatsapp','length','toNumber','format','smsPause','mailStatus','faxCurrentCapacity','emit','user:save','exports','moment'];(function(_0x111cfb,_0x1d0579){var _0x4be5fd=function(_0x456f44){while(--_0x456f44){_0x111cfb['push'](_0x111cfb['shift']());}};_0x4be5fd(++_0x1d0579);}(_0x19d3,0xeb));var _0x319d=function(_0x44fb43,_0x17ec71){_0x44fb43=_0x44fb43-0x0;var _0x4dfe16=_0x19d3[_0x44fb43];return _0x4dfe16;};'use strict';var _=require('lodash');var moment=require(_0x319d('0x0'));var md5=require(_0x319d('0x1'));var Redis=require(_0x319d('0x2'));var config=require(_0x319d('0x3'));config[_0x319d('0x4')]=_['defaults'](config[_0x319d('0x4')],{'host':_0x319d('0x5'),'port':0x18eb});var io=require(_0x319d('0x6'))(new Redis(config[_0x319d('0x4')]));function Agent(_0x392e83){this['id']=_0x392e83['id']||0x0;this[_0x319d('0x7')]=_0x392e83['name']||'';this[_0x319d('0x8')]=_0x392e83[_0x319d('0x8')]||!![];this[_0x319d('0x9')]=_0x392e83['voicePause']||![];this[_0x319d('0xa')]=_0x392e83[_0x319d('0xa')]||![];this[_0x319d('0xb')]=_0x392e83['mailPause']||![];this[_0x319d('0xc')]=_0x392e83['faxPause']||![];this['smsPause']=_0x392e83['smsPause']||![];this[_0x319d('0xd')]=_0x392e83[_0x319d('0xd')]||![];this[_0x319d('0xe')]=_0x319d('0xf');this[_0x319d('0x10')]=0x0;this[_0x319d('0x11')]=_0x392e83['chatCapacity']||0x0;this[_0x319d('0x12')]=0x0;this['mailStatus']=_0x319d('0xf');this[_0x319d('0x13')]=0x0;this[_0x319d('0x14')]=_0x392e83[_0x319d('0x14')]||0x0;this[_0x319d('0x15')]=0x0;this['faxStatus']=_0x319d('0xf');this[_0x319d('0x16')]=0x0;this[_0x319d('0x17')]=_0x392e83[_0x319d('0x17')]||0x0;this['faxCurrentCapacity']=0x0;this['smsStatus']=_0x319d('0xf');this[_0x319d('0x18')]=0x0;this[_0x319d('0x19')]=_0x392e83[_0x319d('0x19')]||0x0;this[_0x319d('0x1a')]=0x0;this[_0x319d('0x1b')]=_0x319d('0xf');this[_0x319d('0x1c')]=0x0;this[_0x319d('0x1d')]=_0x392e83['whatsappCapacity']||0x0;this[_0x319d('0x1e')]=0x0;this[_0x319d('0x1f')]=_0x319d('0xf');this[_0x319d('0x20')]=0x0;this[_0x319d('0x21')]=_0x392e83[_0x319d('0x21')]||0x0;this[_0x319d('0x22')]=0x0;this[_0x319d('0x23')]=![];this[_0x319d('0x24')]=undefined;this[_0x319d('0x1')]='';this[_0x319d('0x25')]();}Agent[_0x319d('0x26')][_0x319d('0x27')]=function(_0x42ae9f){if(this[_0x42ae9f+_0x319d('0x28')]>0x0){if(this[_0x42ae9f+_0x319d('0x29')]>0x0&&this[_0x42ae9f+_0x319d('0x28')]>=this[_0x42ae9f+_0x319d('0x29')]){return'maxcapacity';}else{return _0x319d('0x2a');}}else{return _0x319d('0x2b');}};Agent[_0x319d('0x26')][_0x319d('0x25')]=function(){var _0x1cd962=[_0x319d('0x2c'),_0x319d('0x2d'),_0x319d('0x2e'),_0x319d('0x2f'),_0x319d('0x30'),_0x319d('0x31')];for(var _0x265323=0x0;_0x265323<_0x1cd962[_0x319d('0x32')];_0x265323+=0x1){var _0x81d007=this[_0x319d('0x27')](_0x1cd962[_0x265323]);if(this[_0x1cd962[_0x265323]+'Status']!==_0x81d007){this[_0x1cd962[_0x265323]+'StatusTime']=_[_0x319d('0x33')](moment()[_0x319d('0x34')]('x'));}this[_0x1cd962[_0x265323]+'Status']=_0x81d007;}var _0x2d3331={'id':this['id'],'name':this[_0x319d('0x7')],'online':this['online'],'voicePause':this[_0x319d('0x9')],'chatPause':this[_0x319d('0xa')],'mailPause':this[_0x319d('0xb')],'smsPause':this[_0x319d('0x35')],'faxPause':this[_0x319d('0xc')],'openchannelPause':this['openchannelPause'],'chatStatus':this[_0x319d('0xe')],'chatStatusTime':this[_0x319d('0x10')],'chatCapacity':this[_0x319d('0x11')],'chatCurrentCapacity':this['chatCurrentCapacity'],'mailStatus':this[_0x319d('0x36')],'mailStatusTime':this[_0x319d('0x13')],'mailCapacity':this[_0x319d('0x14')],'mailCurrentCapacity':this[_0x319d('0x15')],'faxStatus':this['faxStatus'],'faxStatusTime':this[_0x319d('0x16')],'faxCapacity':this[_0x319d('0x17')],'faxCurrentCapacity':this[_0x319d('0x37')],'smsStatus':this['smsStatus'],'smsStatusTime':this[_0x319d('0x18')],'smsCapacity':this['smsCapacity'],'smsCurrentCapacity':this[_0x319d('0x1a')],'whatsappStatus':this[_0x319d('0x1b')],'whatsappStatusTime':this[_0x319d('0x1c')],'whatsappCapacity':this[_0x319d('0x1d')],'whatsappCurrentCapacity':this[_0x319d('0x1e')],'openchannelStatus':this[_0x319d('0x1f')],'openchannelStatusTime':this['openchannelStatusTime'],'openchannelCapacity':this[_0x319d('0x21')],'openchannelCurrentCapacity':this['openchannelCurrentCapacity'],'busy':this[_0x319d('0x23')],'busyQueue':this[_0x319d('0x24')]};var _0x2f5d51=md5(JSON['stringify'](_0x2d3331));if(this[_0x319d('0x1')]!==_0x2f5d51){this[_0x319d('0x1')]=_0x2f5d51;io[_0x319d('0x38')](_0x319d('0x39'),_0x2d3331);}};module[_0x319d('0x3a')]=Agent;
\ No newline at end of file
+var _0x33a5=['lodash','moment','md5','ioredis','../../../config/environment','defaults','redis','localhost','socket.io-emitter','name','online','voicePause','chatPause','faxPause','smsPause','openchannelPause','chatStatus','unknown','chatStatusTime','chatCapacity','chatCurrentCapacity','mailStatus','mailStatusTime','mailCurrentCapacity','faxStatus','faxStatusTime','faxCapacity','faxCurrentCapacity','smsStatus','smsStatusTime','smsCurrentCapacity','whatsappStatus','whatsappCapacity','whatsappCurrentCapacity','openchannelStatus','openchannelStatusTime','openchannelCurrentCapacity','busy','updateRealtime','prototype','CurrentCapacity','Capacity','maxcapacity','working','idle','mail','openchannel','fax','sms','whatsapp','length','getChannelStatus','StatusTime','toNumber','format','Status','mailCapacity','whatsappStatusTime','openchannelCapacity','busyQueue','stringify','emit','user:save','exports'];(function(_0x819464,_0x46fc91){var _0x49dcc0=function(_0x36b2b2){while(--_0x36b2b2){_0x819464['push'](_0x819464['shift']());}};_0x49dcc0(++_0x46fc91);}(_0x33a5,0x180));var _0x533a=function(_0x4212e8,_0x3a9611){_0x4212e8=_0x4212e8-0x0;var _0x5c35d0=_0x33a5[_0x4212e8];return _0x5c35d0;};'use strict';var _=require(_0x533a('0x0'));var moment=require(_0x533a('0x1'));var md5=require(_0x533a('0x2'));var Redis=require(_0x533a('0x3'));var config=require(_0x533a('0x4'));config['redis']=_[_0x533a('0x5')](config[_0x533a('0x6')],{'host':_0x533a('0x7'),'port':0x18eb});var io=require(_0x533a('0x8'))(new Redis(config[_0x533a('0x6')]));function Agent(_0x159f83){this['id']=_0x159f83['id']||0x0;this[_0x533a('0x9')]=_0x159f83['name']||'';this[_0x533a('0xa')]=_0x159f83[_0x533a('0xa')]||!![];this['voicePause']=_0x159f83[_0x533a('0xb')]||![];this[_0x533a('0xc')]=_0x159f83[_0x533a('0xc')]||![];this['mailPause']=_0x159f83['mailPause']||![];this['faxPause']=_0x159f83[_0x533a('0xd')]||![];this[_0x533a('0xe')]=_0x159f83[_0x533a('0xe')]||![];this[_0x533a('0xf')]=_0x159f83[_0x533a('0xf')]||![];this[_0x533a('0x10')]=_0x533a('0x11');this[_0x533a('0x12')]=0x0;this[_0x533a('0x13')]=_0x159f83['chatCapacity']||0x0;this[_0x533a('0x14')]=0x0;this[_0x533a('0x15')]=_0x533a('0x11');this[_0x533a('0x16')]=0x0;this['mailCapacity']=_0x159f83['mailCapacity']||0x0;this[_0x533a('0x17')]=0x0;this[_0x533a('0x18')]=_0x533a('0x11');this[_0x533a('0x19')]=0x0;this[_0x533a('0x1a')]=_0x159f83[_0x533a('0x1a')]||0x0;this[_0x533a('0x1b')]=0x0;this[_0x533a('0x1c')]='unknown';this[_0x533a('0x1d')]=0x0;this['smsCapacity']=_0x159f83['smsCapacity']||0x0;this[_0x533a('0x1e')]=0x0;this[_0x533a('0x1f')]='unknown';this['whatsappStatusTime']=0x0;this['whatsappCapacity']=_0x159f83[_0x533a('0x20')]||0x0;this[_0x533a('0x21')]=0x0;this[_0x533a('0x22')]=_0x533a('0x11');this[_0x533a('0x23')]=0x0;this['openchannelCapacity']=_0x159f83['openchannelCapacity']||0x0;this[_0x533a('0x24')]=0x0;this[_0x533a('0x25')]=![];this['busyQueue']=undefined;this['md5']='';this[_0x533a('0x26')]();}Agent[_0x533a('0x27')]['getChannelStatus']=function(_0x114adc){if(this[_0x114adc+_0x533a('0x28')]>0x0){if(this[_0x114adc+_0x533a('0x29')]>0x0&&this[_0x114adc+_0x533a('0x28')]>=this[_0x114adc+_0x533a('0x29')]){return _0x533a('0x2a');}else{return _0x533a('0x2b');}}else{return _0x533a('0x2c');}};Agent[_0x533a('0x27')][_0x533a('0x26')]=function(){var _0x49400a=[_0x533a('0x2d'),'chat',_0x533a('0x2e'),_0x533a('0x2f'),_0x533a('0x30'),_0x533a('0x31')];for(var _0x3f9796=0x0;_0x3f9796<_0x49400a[_0x533a('0x32')];_0x3f9796+=0x1){var _0x1efb49=this[_0x533a('0x33')](_0x49400a[_0x3f9796]);if(this[_0x49400a[_0x3f9796]+'Status']!==_0x1efb49){this[_0x49400a[_0x3f9796]+_0x533a('0x34')]=_[_0x533a('0x35')](moment()[_0x533a('0x36')]('x'));}this[_0x49400a[_0x3f9796]+_0x533a('0x37')]=_0x1efb49;}var _0x3a1843={'id':this['id'],'name':this[_0x533a('0x9')],'online':this[_0x533a('0xa')],'voicePause':this[_0x533a('0xb')],'chatPause':this[_0x533a('0xc')],'mailPause':this['mailPause'],'smsPause':this[_0x533a('0xe')],'faxPause':this[_0x533a('0xd')],'openchannelPause':this[_0x533a('0xf')],'chatStatus':this[_0x533a('0x10')],'chatStatusTime':this[_0x533a('0x12')],'chatCapacity':this['chatCapacity'],'chatCurrentCapacity':this['chatCurrentCapacity'],'mailStatus':this[_0x533a('0x15')],'mailStatusTime':this['mailStatusTime'],'mailCapacity':this[_0x533a('0x38')],'mailCurrentCapacity':this[_0x533a('0x17')],'faxStatus':this['faxStatus'],'faxStatusTime':this['faxStatusTime'],'faxCapacity':this[_0x533a('0x1a')],'faxCurrentCapacity':this['faxCurrentCapacity'],'smsStatus':this[_0x533a('0x1c')],'smsStatusTime':this[_0x533a('0x1d')],'smsCapacity':this['smsCapacity'],'smsCurrentCapacity':this['smsCurrentCapacity'],'whatsappStatus':this[_0x533a('0x1f')],'whatsappStatusTime':this[_0x533a('0x39')],'whatsappCapacity':this[_0x533a('0x20')],'whatsappCurrentCapacity':this[_0x533a('0x21')],'openchannelStatus':this[_0x533a('0x22')],'openchannelStatusTime':this['openchannelStatusTime'],'openchannelCapacity':this[_0x533a('0x3a')],'openchannelCurrentCapacity':this[_0x533a('0x24')],'busy':this['busy'],'busyQueue':this[_0x533a('0x3b')]};var _0x7d7f4e=md5(JSON[_0x533a('0x3c')](_0x3a1843));if(this[_0x533a('0x2')]!==_0x7d7f4e){this[_0x533a('0x2')]=_0x7d7f4e;io[_0x533a('0x3d')](_0x533a('0x3e'),_0x3a1843);}};module[_0x533a('0x3f')]=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf474=['online','chatPause','paused','available','loggedIn','stringify','chat:queue:%s','exports','md5','ioredis','redis','defaults','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','prototype','_rr','map','length'];(function(_0x1388e5,_0x6eb43d){var _0xad4ba6=function(_0x4fb2f1){while(--_0x4fb2f1){_0x1388e5['push'](_0x1388e5['shift']());}};_0xad4ba6(++_0x6eb43d);}(_0xf474,0x14d));var _0x4f47=function(_0x1da527,_0x2dc953){_0x1da527=_0x1da527-0x0;var _0x40fc7c=_0xf474[_0x1da527];return _0x40fc7c;};'use strict';var _=require('lodash');var md5=require(_0x4f47('0x0'));var util=require('util');var Redis=require(_0x4f47('0x1'));var config=require('../../../config/environment');config[_0x4f47('0x2')]=_[_0x4f47('0x3')](config['redis'],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x4f47('0x2')]));function ChatQueue(_0x100294){this['id']=_0x100294['id']||0x0;this['name']=_0x100294[_0x4f47('0x4')]||'';this[_0x4f47('0x5')]=_0x100294[_0x4f47('0x5')]||0xa;this['strategy']=_0x100294[_0x4f47('0x6')]||_0x4f47('0x7');this[_0x4f47('0x8')]=_0x100294[_0x4f47('0x8')];this[_0x4f47('0x9')]={};this[_0x4f47('0xa')]=0x0;this[_0x4f47('0x0')]='';this[_0x4f47('0xb')]();this[_0x4f47('0xc')]();}ChatQueue[_0x4f47('0xd')][_0x4f47('0xb')]=function(){var _0x4d8a7b=this['mapAgentsId'][_0x4f47('0xe')];this['mapAgentsId']=_[_0x4f47('0xf')](this[_0x4f47('0x8')],'id');this[_0x4f47('0x9')][_0x4f47('0xe')]=_0x4d8a7b;};ChatQueue['prototype'][_0x4f47('0xc')]=function(){this['loggedIn']=0x0;this['paused']=0x0;for(var _0x154bf2=0x0;_0x154bf2<this['Agents'][_0x4f47('0x10')];_0x154bf2+=0x1){if(this[_0x4f47('0x8')][_0x154bf2][_0x4f47('0x11')]){this['loggedIn']+=0x1;}if(this['Agents'][_0x154bf2][_0x4f47('0x12')]){this[_0x4f47('0x13')]+=0x1;}}this[_0x4f47('0x14')]=this['loggedIn']-this[_0x4f47('0x13')];this[_0x4f47('0x14')]=this[_0x4f47('0x14')]>=0x0?this[_0x4f47('0x14')]:0x0;var _0x2686fe={'id':this['id'],'available':this[_0x4f47('0x14')],'loggedIn':this[_0x4f47('0x15')],'name':this[_0x4f47('0x4')],'paused':this[_0x4f47('0x13')],'waiting':this[_0x4f47('0xa')]};var _0x38931a=md5(JSON[_0x4f47('0x16')](_0x2686fe));if(this[_0x4f47('0x0')]!==_0x38931a){this[_0x4f47('0x0')]=_0x38931a;io['to'](util['format'](_0x4f47('0x17'),_0x2686fe[_0x4f47('0x4')]))['emit']('chat_queue:save',_0x2686fe);}};module[_0x4f47('0x18')]=ChatQueue;
\ No newline at end of file
+var _0x6852=['defaults','localhost','socket.io-emitter','name','timeout','strategy','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','prototype','_rr','map','loggedIn','paused','length','online','chatPause','available','stringify','format','chat:queue:%s','exports','md5','util','ioredis','../../../config/environment','redis'];(function(_0x569e70,_0xdd9b42){var _0x534a3a=function(_0x5c5d1a){while(--_0x5c5d1a){_0x569e70['push'](_0x569e70['shift']());}};_0x534a3a(++_0xdd9b42);}(_0x6852,0x1e8));var _0x2685=function(_0x3fc007,_0xaea838){_0x3fc007=_0x3fc007-0x0;var _0x130762=_0x6852[_0x3fc007];return _0x130762;};'use strict';var _=require('lodash');var md5=require(_0x2685('0x0'));var util=require(_0x2685('0x1'));var Redis=require(_0x2685('0x2'));var config=require(_0x2685('0x3'));config[_0x2685('0x4')]=_[_0x2685('0x5')](config[_0x2685('0x4')],{'host':_0x2685('0x6'),'port':0x18eb});var io=require(_0x2685('0x7'))(new Redis(config['redis']));function ChatQueue(_0x7bfd8d){this['id']=_0x7bfd8d['id']||0x0;this[_0x2685('0x8')]=_0x7bfd8d[_0x2685('0x8')]||'';this[_0x2685('0x9')]=_0x7bfd8d[_0x2685('0x9')]||0xa;this[_0x2685('0xa')]=_0x7bfd8d['strategy']||'beepall';this[_0x2685('0xb')]=_0x7bfd8d[_0x2685('0xb')];this[_0x2685('0xc')]={};this[_0x2685('0xd')]=0x0;this[_0x2685('0x0')]='';this[_0x2685('0xe')]();this[_0x2685('0xf')]();}ChatQueue[_0x2685('0x10')]['updateRouting']=function(){var _0x375502=this[_0x2685('0xc')][_0x2685('0x11')];this['mapAgentsId']=_[_0x2685('0x12')](this[_0x2685('0xb')],'id');this[_0x2685('0xc')][_0x2685('0x11')]=_0x375502;};ChatQueue['prototype'][_0x2685('0xf')]=function(){this[_0x2685('0x13')]=0x0;this[_0x2685('0x14')]=0x0;for(var _0x1d0909=0x0;_0x1d0909<this[_0x2685('0xb')][_0x2685('0x15')];_0x1d0909+=0x1){if(this[_0x2685('0xb')][_0x1d0909][_0x2685('0x16')]){this[_0x2685('0x13')]+=0x1;}if(this[_0x2685('0xb')][_0x1d0909][_0x2685('0x17')]){this['paused']+=0x1;}}this[_0x2685('0x18')]=this['loggedIn']-this[_0x2685('0x14')];this[_0x2685('0x18')]=this[_0x2685('0x18')]>=0x0?this[_0x2685('0x18')]:0x0;var _0x55eb0e={'id':this['id'],'available':this[_0x2685('0x18')],'loggedIn':this[_0x2685('0x13')],'name':this[_0x2685('0x8')],'paused':this[_0x2685('0x14')],'waiting':this[_0x2685('0xd')]};var _0x25a33f=md5(JSON[_0x2685('0x19')](_0x55eb0e));if(this['md5']!==_0x25a33f){this['md5']=_0x25a33f;io['to'](util[_0x2685('0x1a')](_0x2685('0x1b'),_0x55eb0e['name']))['emit']('chat_queue:save',_0x55eb0e);}};module[_0x2685('0x1c')]=ChatQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d71=['updateRealtime','prototype','_rr','loggedIn','paused','length','faxPause','available','format','fax:queue:%s','name','emit','fax_queue:save','exports','lodash','util','ioredis','../../../config/environment','redis','defaults','socket.io-emitter','timeout','strategy','Agents','mapAgentsId','waiting','md5'];(function(_0x1d1779,_0x284147){var _0x2377e9=function(_0x299f6f){while(--_0x299f6f){_0x1d1779['push'](_0x1d1779['shift']());}};_0x2377e9(++_0x284147);}(_0x3d71,0x101));var _0x13d7=function(_0x323348,_0x4c0875){_0x323348=_0x323348-0x0;var _0x668fa0=_0x3d71[_0x323348];return _0x668fa0;};'use strict';var _=require(_0x13d7('0x0'));var md5=require('md5');var util=require(_0x13d7('0x1'));var Redis=require(_0x13d7('0x2'));var config=require(_0x13d7('0x3'));config[_0x13d7('0x4')]=_[_0x13d7('0x5')](config[_0x13d7('0x4')],{'host':'localhost','port':0x18eb});var io=require(_0x13d7('0x6'))(new Redis(config[_0x13d7('0x4')]));function FaxQueue(_0x391c58){this['id']=_0x391c58['id']||0x0;this['name']=_0x391c58['name']||'';this[_0x13d7('0x7')]=_0x391c58[_0x13d7('0x7')]||0xa;this[_0x13d7('0x8')]=_0x391c58[_0x13d7('0x8')]||'beepall';this['Agents']=_0x391c58[_0x13d7('0x9')];this[_0x13d7('0xa')]={};this[_0x13d7('0xb')]=0x0;this[_0x13d7('0xc')]='';this['updateRouting']();this[_0x13d7('0xd')]();}FaxQueue[_0x13d7('0xe')]['updateRouting']=function(){var _0x320a08=this[_0x13d7('0xa')][_0x13d7('0xf')];this[_0x13d7('0xa')]=_['map'](this[_0x13d7('0x9')],'id');this[_0x13d7('0xa')][_0x13d7('0xf')]=_0x320a08;};FaxQueue[_0x13d7('0xe')][_0x13d7('0xd')]=function(){this[_0x13d7('0x10')]=0x0;this[_0x13d7('0x11')]=0x0;for(var _0x2731d8=0x0;_0x2731d8<this[_0x13d7('0x9')][_0x13d7('0x12')];_0x2731d8+=0x1){if(this[_0x13d7('0x9')][_0x2731d8]['online']){this[_0x13d7('0x10')]+=0x1;}if(this[_0x13d7('0x9')][_0x2731d8][_0x13d7('0x13')]){this[_0x13d7('0x11')]+=0x1;}}this[_0x13d7('0x14')]=this['loggedIn']-this[_0x13d7('0x11')];this['available']=this[_0x13d7('0x14')]>=0x0?this['available']:0x0;var _0x269be0={'id':this['id'],'available':this[_0x13d7('0x14')],'loggedIn':this[_0x13d7('0x10')],'name':this['name'],'paused':this[_0x13d7('0x11')],'waiting':this[_0x13d7('0xb')]};var _0x176294=md5(JSON['stringify'](_0x269be0));if(this[_0x13d7('0xc')]!==_0x176294){this[_0x13d7('0xc')]=_0x176294;io['to'](util[_0x13d7('0x15')](_0x13d7('0x16'),_0x269be0[_0x13d7('0x17')]))[_0x13d7('0x18')](_0x13d7('0x19'),_0x269be0);}};module[_0x13d7('0x1a')]=FaxQueue;
\ No newline at end of file
+var _0x3f15=['stringify','format','fax:queue:%s','emit','fax_queue:save','exports','lodash','md5','redis','defaults','localhost','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','prototype','map','_rr','loggedIn','paused','length','online','faxPause','available'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x3f15,0x145));var _0x53f1=function(_0x167792,_0x43f937){_0x167792=_0x167792-0x0;var _0x45293c=_0x3f15[_0x167792];return _0x45293c;};'use strict';var _=require(_0x53f1('0x0'));var md5=require(_0x53f1('0x1'));var util=require('util');var Redis=require('ioredis');var config=require('../../../config/environment');config[_0x53f1('0x2')]=_[_0x53f1('0x3')](config['redis'],{'host':_0x53f1('0x4'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x53f1('0x2')]));function FaxQueue(_0x3febf3){this['id']=_0x3febf3['id']||0x0;this[_0x53f1('0x5')]=_0x3febf3[_0x53f1('0x5')]||'';this[_0x53f1('0x6')]=_0x3febf3[_0x53f1('0x6')]||0xa;this[_0x53f1('0x7')]=_0x3febf3[_0x53f1('0x7')]||_0x53f1('0x8');this[_0x53f1('0x9')]=_0x3febf3['Agents'];this[_0x53f1('0xa')]={};this[_0x53f1('0xb')]=0x0;this['md5']='';this[_0x53f1('0xc')]();this[_0x53f1('0xd')]();}FaxQueue[_0x53f1('0xe')][_0x53f1('0xc')]=function(){var _0x101167=this[_0x53f1('0xa')]['_rr'];this[_0x53f1('0xa')]=_[_0x53f1('0xf')](this[_0x53f1('0x9')],'id');this[_0x53f1('0xa')][_0x53f1('0x10')]=_0x101167;};FaxQueue[_0x53f1('0xe')][_0x53f1('0xd')]=function(){this[_0x53f1('0x11')]=0x0;this[_0x53f1('0x12')]=0x0;for(var _0x2ac2b5=0x0;_0x2ac2b5<this['Agents'][_0x53f1('0x13')];_0x2ac2b5+=0x1){if(this[_0x53f1('0x9')][_0x2ac2b5][_0x53f1('0x14')]){this['loggedIn']+=0x1;}if(this[_0x53f1('0x9')][_0x2ac2b5][_0x53f1('0x15')]){this['paused']+=0x1;}}this[_0x53f1('0x16')]=this[_0x53f1('0x11')]-this[_0x53f1('0x12')];this[_0x53f1('0x16')]=this[_0x53f1('0x16')]>=0x0?this['available']:0x0;var _0x180298={'id':this['id'],'available':this[_0x53f1('0x16')],'loggedIn':this[_0x53f1('0x11')],'name':this[_0x53f1('0x5')],'paused':this['paused'],'waiting':this['waiting']};var _0x58412f=md5(JSON[_0x53f1('0x17')](_0x180298));if(this[_0x53f1('0x1')]!==_0x58412f){this[_0x53f1('0x1')]=_0x58412f;io['to'](util[_0x53f1('0x18')](_0x53f1('0x19'),_0x180298['name']))[_0x53f1('0x1a')](_0x53f1('0x1b'),_0x180298);}};module[_0x53f1('0x1c')]=FaxQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5feb=['name','Intervals','exports'];(function(_0x1d1779,_0x284147){var _0x2377e9=function(_0x299f6f){while(--_0x299f6f){_0x1d1779['push'](_0x1d1779['shift']());}};_0x2377e9(++_0x284147);}(_0x5feb,0x81));var _0xb5fe=function(_0x111494,_0x1d73da){_0x111494=_0x111494-0x0;var _0x1d0d8b=_0x5feb[_0x111494];return _0x1d0d8b;};'use strict';function Interval(_0x5a5352){this['id']=_0x5a5352['id']||0x0;this[_0xb5fe('0x0')]=_0x5a5352[_0xb5fe('0x0')]||'';this[_0xb5fe('0x1')]=_0x5a5352[_0xb5fe('0x1')]||{};}module[_0xb5fe('0x2')]=Interval;
\ No newline at end of file
+var _0x1b6a=['name','exports'];(function(_0xad2d77,_0xbf3e5c){var _0x5b50f4=function(_0x526d7f){while(--_0x526d7f){_0xad2d77['push'](_0xad2d77['shift']());}};_0x5b50f4(++_0xbf3e5c);}(_0x1b6a,0x116));var _0xa1b6=function(_0x298291,_0x140ada){_0x298291=_0x298291-0x0;var _0x563d83=_0x1b6a[_0x298291];return _0x563d83;};'use strict';function Interval(_0x2564aa){this['id']=_0x2564aa['id']||0x0;this['name']=_0x2564aa[_0xa1b6('0x0')]||'';this['Intervals']=_0x2564aa['Intervals']||{};}module[_0xa1b6('0x1')]=Interval;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac36=['updateRealtime','prototype','_rr','map','loggedIn','paused','length','online','mailPause','available','stringify','format','emit','mail_queue:save','lodash','util','ioredis','redis','defaults','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','md5','updateRouting'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xac36,0xd9));var _0x6ac3=function(_0x3c4428,_0x26d0e9){_0x3c4428=_0x3c4428-0x0;var _0x4e7c79=_0xac36[_0x3c4428];return _0x4e7c79;};'use strict';var _=require(_0x6ac3('0x0'));var md5=require('md5');var util=require(_0x6ac3('0x1'));var Redis=require(_0x6ac3('0x2'));var config=require('../../../config/environment');config[_0x6ac3('0x3')]=_[_0x6ac3('0x4')](config[_0x6ac3('0x3')],{'host':'localhost','port':0x18eb});var io=require(_0x6ac3('0x5'))(new Redis(config[_0x6ac3('0x3')]));function MailQueue(_0x1cb4e0){this['id']=_0x1cb4e0['id']||0x0;this[_0x6ac3('0x6')]=_0x1cb4e0[_0x6ac3('0x6')]||'';this[_0x6ac3('0x7')]=_0x1cb4e0['timeout']||0xa;this['strategy']=_0x1cb4e0[_0x6ac3('0x8')]||_0x6ac3('0x9');this[_0x6ac3('0xa')]=_0x1cb4e0[_0x6ac3('0xa')];this[_0x6ac3('0xb')]={};this[_0x6ac3('0xc')]=0x0;this[_0x6ac3('0xd')]='';this[_0x6ac3('0xe')]();this[_0x6ac3('0xf')]();}MailQueue[_0x6ac3('0x10')][_0x6ac3('0xe')]=function(){var _0x2307d9=this['mapAgentsId'][_0x6ac3('0x11')];this[_0x6ac3('0xb')]=_[_0x6ac3('0x12')](this[_0x6ac3('0xa')],'id');this[_0x6ac3('0xb')][_0x6ac3('0x11')]=_0x2307d9;};MailQueue[_0x6ac3('0x10')][_0x6ac3('0xf')]=function(){this[_0x6ac3('0x13')]=0x0;this[_0x6ac3('0x14')]=0x0;for(var _0x5279ec=0x0;_0x5279ec<this[_0x6ac3('0xa')][_0x6ac3('0x15')];_0x5279ec+=0x1){if(this['Agents'][_0x5279ec][_0x6ac3('0x16')]){this[_0x6ac3('0x13')]+=0x1;}if(this[_0x6ac3('0xa')][_0x5279ec][_0x6ac3('0x17')]){this['paused']+=0x1;}}this[_0x6ac3('0x18')]=this[_0x6ac3('0x13')]-this[_0x6ac3('0x14')];this[_0x6ac3('0x18')]=this['available']>=0x0?this['available']:0x0;var _0x4f6155={'id':this['id'],'available':this['available'],'loggedIn':this[_0x6ac3('0x13')],'name':this[_0x6ac3('0x6')],'paused':this['paused'],'waiting':this[_0x6ac3('0xc')]};var _0x45573d=md5(JSON[_0x6ac3('0x19')](_0x4f6155));if(this[_0x6ac3('0xd')]!==_0x45573d){this[_0x6ac3('0xd')]=_0x45573d;io['to'](util[_0x6ac3('0x1a')]('mail:queue:%s',_0x4f6155[_0x6ac3('0x6')]))[_0x6ac3('0x1b')](_0x6ac3('0x1c'),_0x4f6155);}};module['exports']=MailQueue;
\ No newline at end of file
+var _0xee80=['../../../config/environment','redis','defaults','localhost','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','prototype','_rr','map','loggedIn','length','online','paused','available','stringify','format','mail:queue:%s','emit','mail_queue:save','exports','lodash','md5','util','ioredis'];(function(_0x8b631b,_0x386724){var _0x3e6832=function(_0x17a132){while(--_0x17a132){_0x8b631b['push'](_0x8b631b['shift']());}};_0x3e6832(++_0x386724);}(_0xee80,0x1ec));var _0x0ee8=function(_0x2aea9e,_0x1f587f){_0x2aea9e=_0x2aea9e-0x0;var _0x430b92=_0xee80[_0x2aea9e];return _0x430b92;};'use strict';var _=require(_0x0ee8('0x0'));var md5=require(_0x0ee8('0x1'));var util=require(_0x0ee8('0x2'));var Redis=require(_0x0ee8('0x3'));var config=require(_0x0ee8('0x4'));config[_0x0ee8('0x5')]=_[_0x0ee8('0x6')](config[_0x0ee8('0x5')],{'host':_0x0ee8('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x0ee8('0x5')]));function MailQueue(_0x1b9a3f){this['id']=_0x1b9a3f['id']||0x0;this[_0x0ee8('0x8')]=_0x1b9a3f[_0x0ee8('0x8')]||'';this['timeout']=_0x1b9a3f[_0x0ee8('0x9')]||0xa;this['strategy']=_0x1b9a3f[_0x0ee8('0xa')]||_0x0ee8('0xb');this[_0x0ee8('0xc')]=_0x1b9a3f['Agents'];this[_0x0ee8('0xd')]={};this[_0x0ee8('0xe')]=0x0;this['md5']='';this[_0x0ee8('0xf')]();this[_0x0ee8('0x10')]();}MailQueue[_0x0ee8('0x11')][_0x0ee8('0xf')]=function(){var _0x28f34e=this[_0x0ee8('0xd')][_0x0ee8('0x12')];this[_0x0ee8('0xd')]=_[_0x0ee8('0x13')](this[_0x0ee8('0xc')],'id');this[_0x0ee8('0xd')][_0x0ee8('0x12')]=_0x28f34e;};MailQueue['prototype'][_0x0ee8('0x10')]=function(){this[_0x0ee8('0x14')]=0x0;this['paused']=0x0;for(var _0x31a484=0x0;_0x31a484<this[_0x0ee8('0xc')][_0x0ee8('0x15')];_0x31a484+=0x1){if(this[_0x0ee8('0xc')][_0x31a484][_0x0ee8('0x16')]){this[_0x0ee8('0x14')]+=0x1;}if(this['Agents'][_0x31a484]['mailPause']){this[_0x0ee8('0x17')]+=0x1;}}this[_0x0ee8('0x18')]=this[_0x0ee8('0x14')]-this[_0x0ee8('0x17')];this['available']=this['available']>=0x0?this[_0x0ee8('0x18')]:0x0;var _0x20a490={'id':this['id'],'available':this[_0x0ee8('0x18')],'loggedIn':this[_0x0ee8('0x14')],'name':this[_0x0ee8('0x8')],'paused':this[_0x0ee8('0x17')],'waiting':this[_0x0ee8('0xe')]};var _0xb34f10=md5(JSON[_0x0ee8('0x19')](_0x20a490));if(this['md5']!==_0xb34f10){this[_0x0ee8('0x1')]=_0xb34f10;io['to'](util[_0x0ee8('0x1a')](_0x0ee8('0x1b'),_0x20a490[_0x0ee8('0x8')]))[_0x0ee8('0x1c')](_0x0ee8('0x1d'),_0x20a490);}};module[_0x0ee8('0x1e')]=MailQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc4aa=['strategy','Agents','mapAgentsId','updateRouting','updateRealtime','map','_rr','prototype','loggedIn','paused','length','online','available','waiting','stringify','format','openchannel:queue:%s','emit','openchannel_queue:save','lodash','md5','util','ioredis','../../../config/environment','redis','socket.io-emitter','name','timeout'];(function(_0x525c7b,_0x488fcc){var _0x27b33e=function(_0x56d43b){while(--_0x56d43b){_0x525c7b['push'](_0x525c7b['shift']());}};_0x27b33e(++_0x488fcc);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x2e4aa2,_0x11956a){_0x2e4aa2=_0x2e4aa2-0x0;var _0x5e6092=_0xc4aa[_0x2e4aa2];return _0x5e6092;};'use strict';var _=require(_0xac4a('0x0'));var md5=require(_0xac4a('0x1'));var util=require(_0xac4a('0x2'));var Redis=require(_0xac4a('0x3'));var config=require(_0xac4a('0x4'));config[_0xac4a('0x5')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xac4a('0x6'))(new Redis(config[_0xac4a('0x5')]));function OpenchannelQueue(_0x730a38){this['id']=_0x730a38['id']||0x0;this[_0xac4a('0x7')]=_0x730a38[_0xac4a('0x7')]||'';this[_0xac4a('0x8')]=_0x730a38[_0xac4a('0x8')]||0xa;this[_0xac4a('0x9')]=_0x730a38['strategy']||'beepall';this[_0xac4a('0xa')]=_0x730a38[_0xac4a('0xa')];this[_0xac4a('0xb')]={};this['waiting']=0x0;this[_0xac4a('0x1')]='';this[_0xac4a('0xc')]();this[_0xac4a('0xd')]();}OpenchannelQueue['prototype'][_0xac4a('0xc')]=function(){var _0x488e3c=this[_0xac4a('0xb')]['_rr'];this[_0xac4a('0xb')]=_[_0xac4a('0xe')](this[_0xac4a('0xa')],'id');this['mapAgentsId'][_0xac4a('0xf')]=_0x488e3c;};OpenchannelQueue[_0xac4a('0x10')][_0xac4a('0xd')]=function(){this[_0xac4a('0x11')]=0x0;this[_0xac4a('0x12')]=0x0;for(var _0x3b71c0=0x0;_0x3b71c0<this[_0xac4a('0xa')][_0xac4a('0x13')];_0x3b71c0+=0x1){if(this[_0xac4a('0xa')][_0x3b71c0][_0xac4a('0x14')]){this[_0xac4a('0x11')]+=0x1;}if(this[_0xac4a('0xa')][_0x3b71c0]['openchannelPause']){this[_0xac4a('0x12')]+=0x1;}}this[_0xac4a('0x15')]=this[_0xac4a('0x11')]-this[_0xac4a('0x12')];this[_0xac4a('0x15')]=this[_0xac4a('0x15')]>=0x0?this[_0xac4a('0x15')]:0x0;var _0x44ec59={'id':this['id'],'available':this['available'],'loggedIn':this['loggedIn'],'name':this[_0xac4a('0x7')],'paused':this[_0xac4a('0x12')],'waiting':this[_0xac4a('0x16')]};var _0x4d837c=md5(JSON[_0xac4a('0x17')](_0x44ec59));if(this[_0xac4a('0x1')]!==_0x4d837c){this[_0xac4a('0x1')]=_0x4d837c;io['to'](util[_0xac4a('0x18')](_0xac4a('0x19'),_0x44ec59[_0xac4a('0x7')]))[_0xac4a('0x1a')](_0xac4a('0x1b'),_0x44ec59);}};module['exports']=OpenchannelQueue;
\ No newline at end of file
+var _0x326f=['exports','lodash','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','mapAgentsId','waiting','md5','updateRouting','updateRealtime','Agents','prototype','loggedIn','paused','online','openchannelPause','available','stringify','openchannel:queue:%s','openchannel_queue:save'];(function(_0x5d4607,_0x6b5e7b){var _0x5e4a86=function(_0x46891a){while(--_0x46891a){_0x5d4607['push'](_0x5d4607['shift']());}};_0x5e4a86(++_0x6b5e7b);}(_0x326f,0xd1));var _0xf326=function(_0x5cd838,_0x3a1977){_0x5cd838=_0x5cd838-0x0;var _0x153dd4=_0x326f[_0x5cd838];return _0x153dd4;};'use strict';var _=require(_0xf326('0x0'));var md5=require('md5');var util=require('util');var Redis=require(_0xf326('0x1'));var config=require(_0xf326('0x2'));config[_0xf326('0x3')]=_[_0xf326('0x4')](config[_0xf326('0x3')],{'host':_0xf326('0x5'),'port':0x18eb});var io=require(_0xf326('0x6'))(new Redis(config[_0xf326('0x3')]));function OpenchannelQueue(_0x1b5a56){this['id']=_0x1b5a56['id']||0x0;this[_0xf326('0x7')]=_0x1b5a56['name']||'';this[_0xf326('0x8')]=_0x1b5a56[_0xf326('0x8')]||0xa;this[_0xf326('0x9')]=_0x1b5a56[_0xf326('0x9')]||'beepall';this['Agents']=_0x1b5a56['Agents'];this[_0xf326('0xa')]={};this[_0xf326('0xb')]=0x0;this[_0xf326('0xc')]='';this[_0xf326('0xd')]();this[_0xf326('0xe')]();}OpenchannelQueue['prototype'][_0xf326('0xd')]=function(){var _0x53cbcd=this[_0xf326('0xa')]['_rr'];this[_0xf326('0xa')]=_['map'](this[_0xf326('0xf')],'id');this[_0xf326('0xa')]['_rr']=_0x53cbcd;};OpenchannelQueue[_0xf326('0x10')][_0xf326('0xe')]=function(){this[_0xf326('0x11')]=0x0;this[_0xf326('0x12')]=0x0;for(var _0x5c8483=0x0;_0x5c8483<this[_0xf326('0xf')]['length'];_0x5c8483+=0x1){if(this['Agents'][_0x5c8483][_0xf326('0x13')]){this[_0xf326('0x11')]+=0x1;}if(this[_0xf326('0xf')][_0x5c8483][_0xf326('0x14')]){this[_0xf326('0x12')]+=0x1;}}this[_0xf326('0x15')]=this[_0xf326('0x11')]-this[_0xf326('0x12')];this['available']=this[_0xf326('0x15')]>=0x0?this[_0xf326('0x15')]:0x0;var _0x18bee3={'id':this['id'],'available':this[_0xf326('0x15')],'loggedIn':this[_0xf326('0x11')],'name':this[_0xf326('0x7')],'paused':this['paused'],'waiting':this['waiting']};var _0x56ad41=md5(JSON[_0xf326('0x16')](_0x18bee3));if(this[_0xf326('0xc')]!==_0x56ad41){this['md5']=_0x56ad41;io['to'](util['format'](_0xf326('0x17'),_0x18bee3['name']))['emit'](_0xf326('0x18'),_0x18bee3);}};module[_0xf326('0x19')]=OpenchannelQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x702d=['name','timeout','strategy','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','prototype','map','_rr','loggedIn','paused','length','smsPause','available','stringify','emit','exports','lodash','md5','util','ioredis','../../../config/environment','defaults','redis','localhost','socket.io-emitter'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x702d,0x147));var _0xd702=function(_0x4176e9,_0x3b151b){_0x4176e9=_0x4176e9-0x0;var _0x2b57b2=_0x702d[_0x4176e9];return _0x2b57b2;};'use strict';var _=require(_0xd702('0x0'));var md5=require(_0xd702('0x1'));var util=require(_0xd702('0x2'));var Redis=require(_0xd702('0x3'));var config=require(_0xd702('0x4'));config['redis']=_[_0xd702('0x5')](config[_0xd702('0x6')],{'host':_0xd702('0x7'),'port':0x18eb});var io=require(_0xd702('0x8'))(new Redis(config['redis']));function SmsQueue(_0x432e01){this['id']=_0x432e01['id']||0x0;this['name']=_0x432e01[_0xd702('0x9')]||'';this[_0xd702('0xa')]=_0x432e01[_0xd702('0xa')]||0xa;this['strategy']=_0x432e01[_0xd702('0xb')]||'beepall';this[_0xd702('0xc')]=_0x432e01[_0xd702('0xc')];this[_0xd702('0xd')]={};this[_0xd702('0xe')]=0x0;this[_0xd702('0x1')]='';this[_0xd702('0xf')]();this[_0xd702('0x10')]();}SmsQueue[_0xd702('0x11')][_0xd702('0xf')]=function(){var _0x15a632=this['mapAgentsId']['_rr'];this[_0xd702('0xd')]=_[_0xd702('0x12')](this[_0xd702('0xc')],'id');this['mapAgentsId'][_0xd702('0x13')]=_0x15a632;};SmsQueue[_0xd702('0x11')][_0xd702('0x10')]=function(){this[_0xd702('0x14')]=0x0;this[_0xd702('0x15')]=0x0;for(var _0x181ff2=0x0;_0x181ff2<this['Agents'][_0xd702('0x16')];_0x181ff2+=0x1){if(this[_0xd702('0xc')][_0x181ff2]['online']){this[_0xd702('0x14')]+=0x1;}if(this['Agents'][_0x181ff2][_0xd702('0x17')]){this[_0xd702('0x15')]+=0x1;}}this['available']=this[_0xd702('0x14')]-this[_0xd702('0x15')];this[_0xd702('0x18')]=this['available']>=0x0?this['available']:0x0;var _0x2205de={'id':this['id'],'available':this['available'],'loggedIn':this[_0xd702('0x14')],'name':this[_0xd702('0x9')],'paused':this[_0xd702('0x15')],'waiting':this[_0xd702('0xe')]};var _0x4cf326=md5(JSON[_0xd702('0x19')](_0x2205de));if(this[_0xd702('0x1')]!==_0x4cf326){this['md5']=_0x4cf326;io['to'](util['format']('sms:queue:%s',_0x2205de[_0xd702('0x9')]))[_0xd702('0x1a')]('sms_queue:save',_0x2205de);}};module[_0xd702('0x1b')]=SmsQueue;
\ No newline at end of file
+var _0xe64a=['stringify','format','sms_queue:save','exports','lodash','md5','util','ioredis','../../../config/environment','redis','defaults','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','_rr','map','prototype','updateRealtime','paused','length','loggedIn','smsPause','available'];(function(_0x468e16,_0x4b4c73){var _0x45b624=function(_0x9cb20){while(--_0x9cb20){_0x468e16['push'](_0x468e16['shift']());}};_0x45b624(++_0x4b4c73);}(_0xe64a,0x1e0));var _0xae64=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0xe64a[_0x40a045];return _0x1a687c;};'use strict';var _=require(_0xae64('0x0'));var md5=require(_0xae64('0x1'));var util=require(_0xae64('0x2'));var Redis=require(_0xae64('0x3'));var config=require(_0xae64('0x4'));config[_0xae64('0x5')]=_[_0xae64('0x6')](config[_0xae64('0x5')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function SmsQueue(_0x527d9c){this['id']=_0x527d9c['id']||0x0;this[_0xae64('0x7')]=_0x527d9c[_0xae64('0x7')]||'';this[_0xae64('0x8')]=_0x527d9c[_0xae64('0x8')]||0xa;this[_0xae64('0x9')]=_0x527d9c[_0xae64('0x9')]||_0xae64('0xa');this[_0xae64('0xb')]=_0x527d9c[_0xae64('0xb')];this[_0xae64('0xc')]={};this[_0xae64('0xd')]=0x0;this['md5']='';this[_0xae64('0xe')]();this['updateRealtime']();}SmsQueue['prototype'][_0xae64('0xe')]=function(){var _0x32fca7=this[_0xae64('0xc')][_0xae64('0xf')];this['mapAgentsId']=_[_0xae64('0x10')](this['Agents'],'id');this['mapAgentsId'][_0xae64('0xf')]=_0x32fca7;};SmsQueue[_0xae64('0x11')][_0xae64('0x12')]=function(){this['loggedIn']=0x0;this[_0xae64('0x13')]=0x0;for(var _0x760b31=0x0;_0x760b31<this[_0xae64('0xb')][_0xae64('0x14')];_0x760b31+=0x1){if(this[_0xae64('0xb')][_0x760b31]['online']){this[_0xae64('0x15')]+=0x1;}if(this[_0xae64('0xb')][_0x760b31][_0xae64('0x16')]){this[_0xae64('0x13')]+=0x1;}}this[_0xae64('0x17')]=this['loggedIn']-this[_0xae64('0x13')];this[_0xae64('0x17')]=this[_0xae64('0x17')]>=0x0?this[_0xae64('0x17')]:0x0;var _0x2500f1={'id':this['id'],'available':this[_0xae64('0x17')],'loggedIn':this[_0xae64('0x15')],'name':this[_0xae64('0x7')],'paused':this['paused'],'waiting':this[_0xae64('0xd')]};var _0x3528c2=md5(JSON[_0xae64('0x18')](_0x2500f1));if(this[_0xae64('0x1')]!==_0x3528c2){this[_0xae64('0x1')]=_0x3528c2;io['to'](util[_0xae64('0x19')]('sms:queue:%s',_0x2500f1[_0xae64('0x7')]))['emit'](_0xae64('0x1a'),_0x2500f1);}};module[_0xae64('0x1b')]=SmsQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x328a=['ioredis','defaults','redis','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','prototype','_rr','map','loggedIn','paused','online','whatsappPause','available','stringify','format','whatsapp:queue:%s','emit','whatsapp_queue:save','lodash','md5','util'];(function(_0x3c408a,_0x4d4977){var _0x5d8f09=function(_0x17afdf){while(--_0x17afdf){_0x3c408a['push'](_0x3c408a['shift']());}};_0x5d8f09(++_0x4d4977);}(_0x328a,0x71));var _0xa328=function(_0x348c6c,_0x45232a){_0x348c6c=_0x348c6c-0x0;var _0x372ec6=_0x328a[_0x348c6c];return _0x372ec6;};'use strict';var _=require(_0xa328('0x0'));var md5=require(_0xa328('0x1'));var util=require(_0xa328('0x2'));var Redis=require(_0xa328('0x3'));var config=require('../../../config/environment');config['redis']=_[_0xa328('0x4')](config[_0xa328('0x5')],{'host':'localhost','port':0x18eb});var io=require(_0xa328('0x6'))(new Redis(config['redis']));function WhatsappQueue(_0x42cb69){this['id']=_0x42cb69['id']||0x0;this[_0xa328('0x7')]=_0x42cb69[_0xa328('0x7')]||'';this[_0xa328('0x8')]=_0x42cb69['timeout']||0xa;this[_0xa328('0x9')]=_0x42cb69['strategy']||_0xa328('0xa');this[_0xa328('0xb')]=_0x42cb69[_0xa328('0xb')];this[_0xa328('0xc')]={};this[_0xa328('0xd')]=0x0;this[_0xa328('0x1')]='';this[_0xa328('0xe')]();this[_0xa328('0xf')]();}WhatsappQueue[_0xa328('0x10')][_0xa328('0xe')]=function(){var _0x4b51e1=this[_0xa328('0xc')][_0xa328('0x11')];this['mapAgentsId']=_[_0xa328('0x12')](this[_0xa328('0xb')],'id');this[_0xa328('0xc')][_0xa328('0x11')]=_0x4b51e1;};WhatsappQueue[_0xa328('0x10')]['updateRealtime']=function(){this[_0xa328('0x13')]=0x0;this[_0xa328('0x14')]=0x0;for(var _0x1ecf5c=0x0;_0x1ecf5c<this[_0xa328('0xb')]['length'];_0x1ecf5c+=0x1){if(this[_0xa328('0xb')][_0x1ecf5c][_0xa328('0x15')]){this[_0xa328('0x13')]+=0x1;}if(this[_0xa328('0xb')][_0x1ecf5c][_0xa328('0x16')]){this['paused']+=0x1;}}this['available']=this[_0xa328('0x13')]-this[_0xa328('0x14')];this[_0xa328('0x17')]=this['available']>=0x0?this['available']:0x0;var _0x571076={'id':this['id'],'available':this[_0xa328('0x17')],'loggedIn':this[_0xa328('0x13')],'name':this[_0xa328('0x7')],'paused':this[_0xa328('0x14')],'waiting':this[_0xa328('0xd')]};var _0xad2a42=md5(JSON[_0xa328('0x18')](_0x571076));if(this[_0xa328('0x1')]!==_0xad2a42){this[_0xa328('0x1')]=_0xad2a42;io['to'](util[_0xa328('0x19')](_0xa328('0x1a'),_0x571076['name']))[_0xa328('0x1b')](_0xa328('0x1c'),_0x571076);}};module['exports']=WhatsappQueue;
\ No newline at end of file
+var _0x3321=['length','available','stringify','format','whatsapp:queue:%s','exports','lodash','md5','util','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','waiting','updateRealtime','prototype','updateRouting','_rr','mapAgentsId','map','loggedIn','paused'];(function(_0x456c80,_0x2f5583){var _0x504daf=function(_0x22894e){while(--_0x22894e){_0x456c80['push'](_0x456c80['shift']());}};_0x504daf(++_0x2f5583);}(_0x3321,0x8d));var _0x1332=function(_0x337f80,_0x54c51f){_0x337f80=_0x337f80-0x0;var _0xa7b3c9=_0x3321[_0x337f80];return _0xa7b3c9;};'use strict';var _=require(_0x1332('0x0'));var md5=require(_0x1332('0x1'));var util=require(_0x1332('0x2'));var Redis=require('ioredis');var config=require('../../../config/environment');config[_0x1332('0x3')]=_[_0x1332('0x4')](config[_0x1332('0x3')],{'host':_0x1332('0x5'),'port':0x18eb});var io=require(_0x1332('0x6'))(new Redis(config['redis']));function WhatsappQueue(_0x1066ff){this['id']=_0x1066ff['id']||0x0;this[_0x1332('0x7')]=_0x1066ff['name']||'';this['timeout']=_0x1066ff[_0x1332('0x8')]||0xa;this[_0x1332('0x9')]=_0x1066ff[_0x1332('0x9')]||_0x1332('0xa');this[_0x1332('0xb')]=_0x1066ff[_0x1332('0xb')];this['mapAgentsId']={};this[_0x1332('0xc')]=0x0;this[_0x1332('0x1')]='';this['updateRouting']();this[_0x1332('0xd')]();}WhatsappQueue[_0x1332('0xe')][_0x1332('0xf')]=function(){var _0x291cd4=this['mapAgentsId'][_0x1332('0x10')];this[_0x1332('0x11')]=_[_0x1332('0x12')](this['Agents'],'id');this[_0x1332('0x11')][_0x1332('0x10')]=_0x291cd4;};WhatsappQueue['prototype']['updateRealtime']=function(){this[_0x1332('0x13')]=0x0;this[_0x1332('0x14')]=0x0;for(var _0x41fbe0=0x0;_0x41fbe0<this[_0x1332('0xb')][_0x1332('0x15')];_0x41fbe0+=0x1){if(this[_0x1332('0xb')][_0x41fbe0]['online']){this[_0x1332('0x13')]+=0x1;}if(this[_0x1332('0xb')][_0x41fbe0]['whatsappPause']){this[_0x1332('0x14')]+=0x1;}}this[_0x1332('0x16')]=this[_0x1332('0x13')]-this[_0x1332('0x14')];this[_0x1332('0x16')]=this[_0x1332('0x16')]>=0x0?this[_0x1332('0x16')]:0x0;var _0x49579d={'id':this['id'],'available':this[_0x1332('0x16')],'loggedIn':this[_0x1332('0x13')],'name':this[_0x1332('0x7')],'paused':this['paused'],'waiting':this[_0x1332('0xc')]};var _0x28428f=md5(JSON[_0x1332('0x17')](_0x49579d));if(this['md5']!==_0x28428f){this[_0x1332('0x1')]=_0x28428f;io['to'](util[_0x1332('0x18')](_0x1332('0x19'),_0x49579d[_0x1332('0x7')]))['emit']('whatsapp_queue:save',_0x49579d);}};module[_0x1332('0x1a')]=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(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa9e0,0x123));var _0x0a9e=function(_0x37c22c,_0x28a70d){_0x37c22c=_0x37c22c-0x0;var _0x119d79=_0xa9e0[_0x37c22c];return _0x119d79;};'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 _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(_0x5447fd,_0x52a6b5){_0x5447fd=_0x5447fd-0x0;var _0x15b28a=_0xa9e0[_0x5447fd];return _0x15b28a;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe8dc=['AddTagsToChatInteraction','addTagsToChatInteraction','update','updateChatInteraction','addTags','Request'];(function(_0x355fca,_0x434a42){var _0x190def=function(_0x2f0f3b){while(--_0x2f0f3b){_0x355fca['push'](_0x355fca['shift']());}};_0x190def(++_0x434a42);}(_0xe8dc,0xb0));var _0xce8d=function(_0x305bbf,_0x5647b3){_0x305bbf=_0x305bbf-0x0;var _0x4ed772=_0xe8dc[_0x305bbf];return _0x4ed772;};'use strict';var client=require('../client');exports[_0xce8d('0x0')]=function(_0xdee04d,_0x349b84){return client['Request']('UpdateChatInteraction',{'body':_0x349b84,'options':{'where':{'id':_0xdee04d}},'log':_0xce8d('0x1')});};exports[_0xce8d('0x2')]=function(_0x482df8,_0x4c9c0f){return client[_0xce8d('0x3')](_0xce8d('0x4'),{'body':_0x4c9c0f,'options':{'where':{'id':_0x482df8}},'log':_0xce8d('0x5')});};
\ No newline at end of file
+var _0x10d6=['addTags','Request','AddTagsToChatInteraction','addTagsToChatInteraction','update','updateChatInteraction'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x10d6,0x154));var _0x610d=function(_0x1d3e3a,_0x131fd2){_0x1d3e3a=_0x1d3e3a-0x0;var _0x522f54=_0x10d6[_0x1d3e3a];return _0x522f54;};'use strict';var client=require('../client');exports[_0x610d('0x0')]=function(_0x2fed0f,_0x10dd2c){return client['Request']('UpdateChatInteraction',{'body':_0x10dd2c,'options':{'where':{'id':_0x2fed0f}},'log':_0x610d('0x1')});};exports[_0x610d('0x2')]=function(_0x2d8e7a,_0xb824b7){return client[_0x610d('0x3')](_0x610d('0x4'),{'body':_0xb824b7,'options':{'where':{'id':_0x2d8e7a}},'log':_0x610d('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2bb6=['createChatMessage','../client','create','Request','CreateChatMessage'];(function(_0x15695d,_0x4e5047){var _0x2068e2=function(_0x413871){while(--_0x413871){_0x15695d['push'](_0x15695d['shift']());}};_0x2068e2(++_0x4e5047);}(_0x2bb6,0x6f));var _0x62bb=function(_0x580005,_0x55e402){_0x580005=_0x580005-0x0;var _0x12defc=_0x2bb6[_0x580005];return _0x12defc;};'use strict';var client=require(_0x62bb('0x0'));exports[_0x62bb('0x1')]=function(_0x391c16){return client[_0x62bb('0x2')](_0x62bb('0x3'),{'body':_0x391c16,'log':_0x62bb('0x4')});};
\ No newline at end of file
+var _0xc51b=['../client','CreateChatMessage','createChatMessage'];(function(_0x31a10d,_0x29b092){var _0x5911ab=function(_0x69a1ca){while(--_0x69a1ca){_0x31a10d['push'](_0x31a10d['shift']());}};_0x5911ab(++_0x29b092);}(_0xc51b,0xc6));var _0xbc51=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc51b[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0xbc51('0x0'));exports['create']=function(_0x26c9ec){return client['Request'](_0xbc51('0x1'),{'body':_0x26c9ec,'log':_0xbc51('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa631=['timeout','Agents','name','online','getChatQueues','Request','GetChatQueue'];(function(_0x19534a,_0x3bf0d2){var _0x438624=function(_0x5f58ce){while(--_0x5f58ce){_0x19534a['push'](_0x19534a['shift']());}};_0x438624(++_0x3bf0d2);}(_0xa631,0xe4));var _0x1a63=function(_0x4a1a18,_0x2c1abd){_0x4a1a18=_0x4a1a18-0x0;var _0x779850=_0xa631[_0x4a1a18];return _0x779850;};'use strict';var client=require('../client');exports[_0x1a63('0x0')]=function(){return function(){return client[_0x1a63('0x1')](_0x1a63('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x1a63('0x3'),'strategy'],'include':[{'model':'User','as':_0x1a63('0x4'),'attributes':['id',_0x1a63('0x5'),_0x1a63('0x6'),'chatPause']}]},'log':'getChatQueues'});};};
\ No newline at end of file
+var _0x7dfd=['getChatQueues','Request','GetChatQueue','name','timeout','strategy','User','Agents','online','chatPause','../client'];(function(_0x37c5f7,_0x1d7bd6){var _0x239ffc=function(_0x55d097){while(--_0x55d097){_0x37c5f7['push'](_0x37c5f7['shift']());}};_0x239ffc(++_0x1d7bd6);}(_0x7dfd,0x1c2));var _0xd7df=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7dfd[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0xd7df('0x0'));exports[_0xd7df('0x1')]=function(){return function(){return client[_0xd7df('0x2')](_0xd7df('0x3'),{'options':{'raw':![],'attributes':['id',_0xd7df('0x4'),_0xd7df('0x5'),_0xd7df('0x6')],'include':[{'model':_0xd7df('0x7'),'as':_0xd7df('0x8'),'attributes':['id',_0xd7df('0x4'),_0xd7df('0x9'),_0xd7df('0xa')]}]},'log':_0xd7df('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b37=['Request','CreateChatQueueReport','update','DESC','UpdateChatQueueReport','../client','create'];(function(_0x5834bc,_0x3d4801){var _0x3e183a=function(_0x18b023){while(--_0x18b023){_0x5834bc['push'](_0x5834bc['shift']());}};_0x3e183a(++_0x3d4801);}(_0x2b37,0x12b));var _0x72b3=function(_0x120891,_0x415544){_0x120891=_0x120891-0x0;var _0x2c52b7=_0x2b37[_0x120891];return _0x2c52b7;};'use strict';var client=require(_0x72b3('0x0'));exports[_0x72b3('0x1')]=function(_0x3fbc04){return client[_0x72b3('0x2')](_0x72b3('0x3'),{'body':_0x3fbc04,'log':_0x72b3('0x3')});};exports[_0x72b3('0x4')]=function(_0x2c5833,_0x217bcc){return client[_0x72b3('0x2')]('UpdateChatQueueReport',{'body':_0x217bcc,'options':{'where':{'uniqueid':_0x2c5833},'order':[['id',_0x72b3('0x5')]],'limit':0x1},'log':_0x72b3('0x6')});};
\ No newline at end of file
+var _0x2830=['create','Request','CreateChatQueueReport','update','UpdateChatQueueReport','DESC','../client'];(function(_0x10ef02,_0x14de7d){var _0x5c624e=function(_0x1a9b31){while(--_0x1a9b31){_0x10ef02['push'](_0x10ef02['shift']());}};_0x5c624e(++_0x14de7d);}(_0x2830,0x117));var _0x0283=function(_0x1ea439,_0x13bac7){_0x1ea439=_0x1ea439-0x0;var _0x8943d9=_0x2830[_0x1ea439];return _0x8943d9;};'use strict';var client=require(_0x0283('0x0'));exports[_0x0283('0x1')]=function(_0x4ee0cd){return client[_0x0283('0x2')](_0x0283('0x3'),{'body':_0x4ee0cd,'log':_0x0283('0x3')});};exports[_0x0283('0x4')]=function(_0x56984a,_0x414c89){return client['Request'](_0x0283('0x5'),{'body':_0x414c89,'options':{'where':{'uniqueid':_0x56984a},'order':[['id',_0x0283('0x6')]],'limit':0x1},'log':_0x0283('0x5')});};
\ 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(_0x1ae64d,_0x566230){var _0x1aa292=function(_0x4a75c4){while(--_0x4a75c4){_0x1ae64d['push'](_0x1ae64d['shift']());}};_0x1aa292(++_0x566230);}(_0x9957,0x93));var _0x7995=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x9957[_0x2dafbe];return _0x58a45a;};'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 _0x9957=['Request','AddTagsToFaxInteraction','addTagsToFaxInteraction','../client','update','UpdateFaxInteraction','updateFaxInteraction','addTags'];(function(_0x5e3bda,_0x108667){var _0x3f02cf=function(_0x1faab9){while(--_0x1faab9){_0x5e3bda['push'](_0x5e3bda['shift']());}};_0x3f02cf(++_0x108667);}(_0x9957,0x93));var _0x7995=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x9957[_0x1facfa];return _0x9ec701;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1431=['Request','CreateFaxMessage','../client'];(function(_0x1d29d2,_0x455af2){var _0x165eac=function(_0x80c374){while(--_0x80c374){_0x1d29d2['push'](_0x1d29d2['shift']());}};_0x165eac(++_0x455af2);}(_0x1431,0x176));var _0x1143=function(_0x3a39b5,_0x55632b){_0x3a39b5=_0x3a39b5-0x0;var _0x58bd14=_0x1431[_0x3a39b5];return _0x58bd14;};'use strict';var client=require(_0x1143('0x0'));exports['create']=function(_0xf44ae5){return client[_0x1143('0x1')](_0x1143('0x2'),{'body':_0xf44ae5,'log':'createFaxMessage'});};
\ No newline at end of file
+var _0xebb6=['../client','create','createFaxMessage'];(function(_0x2dcdb3,_0x5adc3f){var _0x35db38=function(_0x2fd230){while(--_0x2fd230){_0x2dcdb3['push'](_0x2dcdb3['shift']());}};_0x35db38(++_0x5adc3f);}(_0xebb6,0x114));var _0x6ebb=function(_0x9df060,_0x253d33){_0x9df060=_0x9df060-0x0;var _0x338dfe=_0xebb6[_0x9df060];return _0x338dfe;};'use strict';var client=require(_0x6ebb('0x0'));exports[_0x6ebb('0x1')]=function(_0x94241d){return client['Request']('CreateFaxMessage',{'body':_0x94241d,'log':_0x6ebb('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6ff=['../client','getFaxQueues','Request','GetFaxQueue','name','timeout','User','online','faxPause'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc6ff,0x1b9));var _0xfc6f=function(_0x4b1a19,_0x52c390){_0x4b1a19=_0x4b1a19-0x0;var _0x1834e1=_0xc6ff[_0x4b1a19];return _0x1834e1;};'use strict';var client=require(_0xfc6f('0x0'));exports[_0xfc6f('0x1')]=function(){return function(){return client[_0xfc6f('0x2')](_0xfc6f('0x3'),{'options':{'raw':![],'attributes':['id',_0xfc6f('0x4'),_0xfc6f('0x5'),'strategy'],'include':[{'model':_0xfc6f('0x6'),'as':'Agents','attributes':['id',_0xfc6f('0x4'),_0xfc6f('0x7'),_0xfc6f('0x8')]}]},'log':_0xfc6f('0x1')});};};
\ No newline at end of file
+var _0x4816=['faxPause','getFaxQueues','Request','GetFaxQueue','name','timeout','strategy','User','Agents','online'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x4816,0xd3));var _0x6481=function(_0x2d4fee,_0xc38b94){_0x2d4fee=_0x2d4fee-0x0;var _0x265b33=_0x4816[_0x2d4fee];return _0x265b33;};'use strict';var client=require('../client');exports[_0x6481('0x0')]=function(){return function(){return client[_0x6481('0x1')](_0x6481('0x2'),{'options':{'raw':![],'attributes':['id',_0x6481('0x3'),_0x6481('0x4'),_0x6481('0x5')],'include':[{'model':_0x6481('0x6'),'as':_0x6481('0x7'),'attributes':['id',_0x6481('0x3'),_0x6481('0x8'),_0x6481('0x9')]}]},'log':'getFaxQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe002=['UpdateFaxQueueReport','DESC','../client','create','CreateFaxQueueReport','update','Request'];(function(_0x5a776b,_0x46f785){var _0xbbef59=function(_0x38313e){while(--_0x38313e){_0x5a776b['push'](_0x5a776b['shift']());}};_0xbbef59(++_0x46f785);}(_0xe002,0xf7));var _0x2e00=function(_0x3b3f4f,_0x403216){_0x3b3f4f=_0x3b3f4f-0x0;var _0x174dbe=_0xe002[_0x3b3f4f];return _0x174dbe;};'use strict';var client=require(_0x2e00('0x0'));exports[_0x2e00('0x1')]=function(_0x288fab){return client['Request'](_0x2e00('0x2'),{'body':_0x288fab,'log':_0x2e00('0x2')});};exports[_0x2e00('0x3')]=function(_0x5ea0f5,_0x34f964){return client[_0x2e00('0x4')](_0x2e00('0x5'),{'body':_0x34f964,'options':{'where':{'uniqueid':_0x5ea0f5},'order':[['id',_0x2e00('0x6')]],'limit':0x1},'log':_0x2e00('0x5')});};
\ No newline at end of file
+var _0x9669=['create','Request','CreateFaxQueueReport','update','UpdateFaxQueueReport'];(function(_0x11005e,_0x20c3d2){var _0x29338f=function(_0x3384e9){while(--_0x3384e9){_0x11005e['push'](_0x11005e['shift']());}};_0x29338f(++_0x20c3d2);}(_0x9669,0x6e));var _0x9966=function(_0x5598ae,_0x323337){_0x5598ae=_0x5598ae-0x0;var _0x1fba4d=_0x9669[_0x5598ae];return _0x1fba4d;};'use strict';var client=require('../client');exports[_0x9966('0x0')]=function(_0x4c9b89){return client[_0x9966('0x1')](_0x9966('0x2'),{'body':_0x4c9b89,'log':_0x9966('0x2')});};exports[_0x9966('0x3')]=function(_0x395f26,_0x50fded){return client[_0x9966('0x1')](_0x9966('0x4'),{'body':_0x50fded,'options':{'where':{'uniqueid':_0x395f26},'order':[['id','DESC']],'limit':0x1},'log':_0x9966('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9bf5=['interval','getIntervals','Request','GetInterval','name','Intervals'];(function(_0x2b8049,_0x592276){var _0x274713=function(_0x57b31e){while(--_0x57b31e){_0x2b8049['push'](_0x2b8049['shift']());}};_0x274713(++_0x592276);}(_0x9bf5,0x97));var _0x59bf=function(_0x575f37,_0x13e18f){_0x575f37=_0x575f37-0x0;var _0xf72592=_0x9bf5[_0x575f37];return _0xf72592;};'use strict';var client=require('../client');exports[_0x59bf('0x0')]=function(){return function(){return client[_0x59bf('0x1')](_0x59bf('0x2'),{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0x59bf('0x3')],'include':[{'model':'Interval','as':_0x59bf('0x4'),'attributes':['id',_0x59bf('0x3'),_0x59bf('0x5')]}]},'log':'getIntervals'});};};
\ No newline at end of file
+var _0xc568=['name','Intervals','interval','../client','getIntervals','Request','GetInterval'];(function(_0x4098ff,_0x3d0d62){var _0x468799=function(_0x3dd5d2){while(--_0x3dd5d2){_0x4098ff['push'](_0x4098ff['shift']());}};_0x468799(++_0x3d0d62);}(_0xc568,0x1d1));var _0x8c56=function(_0x4bc732,_0x57d27f){_0x4bc732=_0x4bc732-0x0;var _0x4e2302=_0xc568[_0x4bc732];return _0x4e2302;};'use strict';var client=require(_0x8c56('0x0'));exports[_0x8c56('0x1')]=function(){return function(){return client[_0x8c56('0x2')](_0x8c56('0x3'),{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0x8c56('0x4')],'include':[{'model':'Interval','as':_0x8c56('0x5'),'attributes':['id',_0x8c56('0x4'),_0x8c56('0x6')]}]},'log':'getIntervals'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x627e=['../client','update','Request','updateMailInteraction','addTags','addTagsToChatInteraction'];(function(_0x3e19fb,_0x3258e2){var _0x5b19bd=function(_0x1f5bbe){while(--_0x1f5bbe){_0x3e19fb['push'](_0x3e19fb['shift']());}};_0x5b19bd(++_0x3258e2);}(_0x627e,0x14a));var _0xe627=function(_0x3efd91,_0x587b4c){_0x3efd91=_0x3efd91-0x0;var _0x91339c=_0x627e[_0x3efd91];return _0x91339c;};'use strict';var client=require(_0xe627('0x0'));exports[_0xe627('0x1')]=function(_0x2cc4b4,_0x18dba3){return client[_0xe627('0x2')]('UpdateMailInteraction',{'body':_0x18dba3,'options':{'where':{'id':_0x2cc4b4}},'log':_0xe627('0x3')});};exports[_0xe627('0x4')]=function(_0x2abdc7,_0x59a2c8){return client['Request']('AddTagsToMailInteraction',{'body':_0x59a2c8,'options':{'where':{'id':_0x2abdc7}},'log':_0xe627('0x5')});};
\ No newline at end of file
+var _0xd824=['Request','UpdateMailInteraction','updateMailInteraction','addTags','addTagsToChatInteraction','../client','update'];(function(_0x4b03c9,_0x17ce03){var _0x161ba2=function(_0xb952db){while(--_0xb952db){_0x4b03c9['push'](_0x4b03c9['shift']());}};_0x161ba2(++_0x17ce03);}(_0xd824,0xc2));var _0x4d82=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0xd824[_0x40a045];return _0x1a687c;};'use strict';var client=require(_0x4d82('0x0'));exports[_0x4d82('0x1')]=function(_0x572eea,_0x53fe9a){return client[_0x4d82('0x2')](_0x4d82('0x3'),{'body':_0x53fe9a,'options':{'where':{'id':_0x572eea}},'log':_0x4d82('0x4')});};exports[_0x4d82('0x5')]=function(_0x287fbf,_0x1c8ad9){return client['Request']('AddTagsToMailInteraction',{'body':_0x1c8ad9,'options':{'where':{'id':_0x287fbf}},'log':_0x4d82('0x6')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaaaf=['create','Request','CreateMailMessage','createMailMessage','../client'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xaaaf,0x108));var _0xfaaa=function(_0x2628d1,_0x38ddb4){_0x2628d1=_0x2628d1-0x0;var _0x4bfd54=_0xaaaf[_0x2628d1];return _0x4bfd54;};'use strict';var client=require(_0xfaaa('0x0'));exports[_0xfaaa('0x1')]=function(_0x43b185){return client[_0xfaaa('0x2')](_0xfaaa('0x3'),{'body':_0x43b185,'log':_0xfaaa('0x4')});};
\ No newline at end of file
+var _0xf571=['CreateMailMessage','createMailMessage','../client','create','Request'];(function(_0x3d1022,_0x49e2d5){var _0xf93f9d=function(_0x4d7b35){while(--_0x4d7b35){_0x3d1022['push'](_0x3d1022['shift']());}};_0xf93f9d(++_0x49e2d5);}(_0xf571,0xe3));var _0x1f57=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xf571[_0x14add3];return _0x4a174f;};'use strict';var client=require(_0x1f57('0x0'));exports[_0x1f57('0x1')]=function(_0x517ef3){return client[_0x1f57('0x2')](_0x1f57('0x3'),{'body':_0x517ef3,'log':_0x1f57('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6482=['timeout','strategy','online','../client','getMailQueues','Request','GetMailQueue','name'];(function(_0x39d37b,_0x574335){var _0x96d379=function(_0x1a6b95){while(--_0x1a6b95){_0x39d37b['push'](_0x39d37b['shift']());}};_0x96d379(++_0x574335);}(_0x6482,0x16b));var _0x2648=function(_0x8f82d8,_0x4a894c){_0x8f82d8=_0x8f82d8-0x0;var _0x131492=_0x6482[_0x8f82d8];return _0x131492;};'use strict';var client=require(_0x2648('0x0'));exports[_0x2648('0x1')]=function(){return function(){return client[_0x2648('0x2')](_0x2648('0x3'),{'options':{'raw':![],'attributes':['id',_0x2648('0x4'),_0x2648('0x5'),_0x2648('0x6')],'include':[{'model':'User','as':'Agents','attributes':['id',_0x2648('0x4'),_0x2648('0x7'),'mailPause']}]},'log':_0x2648('0x1')});};};
\ No newline at end of file
+var _0xa135=['GetMailQueue','name','timeout','strategy','online','mailPause','getMailQueues','Request'];(function(_0xe45305,_0x2f0b33){var _0x3f64b1=function(_0xeccbb0){while(--_0xeccbb0){_0xe45305['push'](_0xe45305['shift']());}};_0x3f64b1(++_0x2f0b33);}(_0xa135,0x12e));var _0x5a13=function(_0x1c5e08,_0x98c8f6){_0x1c5e08=_0x1c5e08-0x0;var _0x27202a=_0xa135[_0x1c5e08];return _0x27202a;};'use strict';var client=require('../client');exports[_0x5a13('0x0')]=function(){return function(){return client[_0x5a13('0x1')](_0x5a13('0x2'),{'options':{'raw':![],'attributes':['id',_0x5a13('0x3'),_0x5a13('0x4'),_0x5a13('0x5')],'include':[{'model':'User','as':'Agents','attributes':['id',_0x5a13('0x3'),_0x5a13('0x6'),_0x5a13('0x7')]}]},'log':_0x5a13('0x0')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfcd4=['Request','UpdateMailQueueReport','../client','create','CreateMailQueueReport'];(function(_0xc5544f,_0x183e91){var _0x1bd946=function(_0x45be25){while(--_0x45be25){_0xc5544f['push'](_0xc5544f['shift']());}};_0x1bd946(++_0x183e91);}(_0xfcd4,0x16f));var _0x4fcd=function(_0x3bb45b,_0x2dcc0b){_0x3bb45b=_0x3bb45b-0x0;var _0x513162=_0xfcd4[_0x3bb45b];return _0x513162;};'use strict';var client=require(_0x4fcd('0x0'));exports[_0x4fcd('0x1')]=function(_0x5a39ab){return client['Request'](_0x4fcd('0x2'),{'body':_0x5a39ab,'log':_0x4fcd('0x2')});};exports['update']=function(_0x3a6a53,_0x3beac7){return client[_0x4fcd('0x3')](_0x4fcd('0x4'),{'body':_0x3beac7,'options':{'where':{'uniqueid':_0x3a6a53},'order':[['id','DESC']],'limit':0x1},'log':_0x4fcd('0x4')});};
\ No newline at end of file
+var _0x5ae1=['update','UpdateMailQueueReport','../client','create','Request'];(function(_0x1502a6,_0x2d8498){var _0x4eab47=function(_0x356e9d){while(--_0x356e9d){_0x1502a6['push'](_0x1502a6['shift']());}};_0x4eab47(++_0x2d8498);}(_0x5ae1,0x70));var _0x15ae=function(_0x4605a2,_0xeb462f){_0x4605a2=_0x4605a2-0x0;var _0x5bb122=_0x5ae1[_0x4605a2];return _0x5bb122;};'use strict';var client=require(_0x15ae('0x0'));exports[_0x15ae('0x1')]=function(_0x267b72){return client[_0x15ae('0x2')]('CreateMailQueueReport',{'body':_0x267b72,'log':'CreateMailQueueReport'});};exports[_0x15ae('0x3')]=function(_0x5bf831,_0x26c3bd){return client[_0x15ae('0x2')]('UpdateMailQueueReport',{'body':_0x26c3bd,'options':{'where':{'uniqueid':_0x5bf831},'order':[['id','DESC']],'limit':0x1},'log':_0x15ae('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96bb=['update','Request','UpdateOpenchannelInteraction','updateOpenchannelInteraction','addTags','addTagsToChatInteraction','../client'];(function(_0x30033a,_0x5ce4a6){var _0x5e3518=function(_0x11494a){while(--_0x11494a){_0x30033a['push'](_0x30033a['shift']());}};_0x5e3518(++_0x5ce4a6);}(_0x96bb,0x1bf));var _0xb96b=function(_0x52b91f,_0x499757){_0x52b91f=_0x52b91f-0x0;var _0x15f8f5=_0x96bb[_0x52b91f];return _0x15f8f5;};'use strict';var client=require(_0xb96b('0x0'));exports[_0xb96b('0x1')]=function(_0x34512a,_0x1365d0){return client[_0xb96b('0x2')](_0xb96b('0x3'),{'body':_0x1365d0,'options':{'where':{'id':_0x34512a}},'log':_0xb96b('0x4')});};exports[_0xb96b('0x5')]=function(_0x1db037,_0x38cc22){return client[_0xb96b('0x2')]('AddTagsToOpenchannelInteraction',{'body':_0x38cc22,'options':{'where':{'id':_0x1db037}},'log':_0xb96b('0x6')});};
\ No newline at end of file
+var _0xb1c5=['addTags','AddTagsToOpenchannelInteraction','addTagsToChatInteraction','../client'];(function(_0x3e5086,_0x48f4a2){var _0xfeb102=function(_0x5a945f){while(--_0x5a945f){_0x3e5086['push'](_0x3e5086['shift']());}};_0xfeb102(++_0x48f4a2);}(_0xb1c5,0x1a7));var _0x5b1c=function(_0x1928c9,_0x13a6d1){_0x1928c9=_0x1928c9-0x0;var _0x51b5fb=_0xb1c5[_0x1928c9];return _0x51b5fb;};'use strict';var client=require(_0x5b1c('0x0'));exports['update']=function(_0x1bb3bd,_0x492f61){return client['Request']('UpdateOpenchannelInteraction',{'body':_0x492f61,'options':{'where':{'id':_0x1bb3bd}},'log':'updateOpenchannelInteraction'});};exports[_0x5b1c('0x1')]=function(_0x24f472,_0x5a34d7){return client['Request'](_0x5b1c('0x2'),{'body':_0x5a34d7,'options':{'where':{'id':_0x24f472}},'log':_0x5b1c('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf24=['../client','create','CreateOpenchannelMessage','createOpenchannelMessage'];(function(_0x2dd250,_0x4b6d51){var _0x5b8418=function(_0x248654){while(--_0x248654){_0x2dd250['push'](_0x2dd250['shift']());}};_0x5b8418(++_0x4b6d51);}(_0xdf24,0x160));var _0x4df2=function(_0x419aae,_0x1eabe7){_0x419aae=_0x419aae-0x0;var _0x499738=_0xdf24[_0x419aae];return _0x499738;};'use strict';var client=require(_0x4df2('0x0'));exports[_0x4df2('0x1')]=function(_0x58e699){return client['Request'](_0x4df2('0x2'),{'body':_0x58e699,'log':_0x4df2('0x3')});};
\ No newline at end of file
+var _0x7787=['CreateOpenchannelMessage','createOpenchannelMessage','Request'];(function(_0x4ff670,_0xd1eeb3){var _0x163f2f=function(_0x10efae){while(--_0x10efae){_0x4ff670['push'](_0x4ff670['shift']());}};_0x163f2f(++_0xd1eeb3);}(_0x7787,0x1d3));var _0x7778=function(_0x37edd4,_0x3329be){_0x37edd4=_0x37edd4-0x0;var _0x851272=_0x7787[_0x37edd4];return _0x851272;};'use strict';var client=require('../client');exports['create']=function(_0x1fe4f9){return client[_0x7778('0x0')](_0x7778('0x1'),{'body':_0x1fe4f9,'log':_0x7778('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x18d4=['timeout','strategy','User','Agents','online','openchannelPause','../client','getOpenchannelQueues','Request','name'];(function(_0x538c85,_0x24f2bb){var _0x4eefae=function(_0x100ee9){while(--_0x100ee9){_0x538c85['push'](_0x538c85['shift']());}};_0x4eefae(++_0x24f2bb);}(_0x18d4,0x15a));var _0x418d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x18d4[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0x418d('0x0'));exports[_0x418d('0x1')]=function(){return function(){return client[_0x418d('0x2')]('GetOpenchannelQueue',{'options':{'raw':![],'attributes':['id',_0x418d('0x3'),_0x418d('0x4'),_0x418d('0x5')],'include':[{'model':_0x418d('0x6'),'as':_0x418d('0x7'),'attributes':['id',_0x418d('0x3'),_0x418d('0x8'),_0x418d('0x9')]}]},'log':_0x418d('0x1')});};};
\ No newline at end of file
+var _0x964b=['Request','GetOpenchannelQueue','name','timeout','strategy','User','Agents','openchannelPause','../client','getOpenchannelQueues'];(function(_0x5bd3f2,_0x49f10b){var _0x444bfb=function(_0xae7210){while(--_0xae7210){_0x5bd3f2['push'](_0x5bd3f2['shift']());}};_0x444bfb(++_0x49f10b);}(_0x964b,0x1ac));var _0xb964=function(_0x4fc6e4,_0x8f54c8){_0x4fc6e4=_0x4fc6e4-0x0;var _0x5236ca=_0x964b[_0x4fc6e4];return _0x5236ca;};'use strict';var client=require(_0xb964('0x0'));exports[_0xb964('0x1')]=function(){return function(){return client[_0xb964('0x2')](_0xb964('0x3'),{'options':{'raw':![],'attributes':['id',_0xb964('0x4'),_0xb964('0x5'),_0xb964('0x6')],'include':[{'model':_0xb964('0x7'),'as':_0xb964('0x8'),'attributes':['id',_0xb964('0x4'),'online',_0xb964('0x9')]}]},'log':'getOpenchannelQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0901=['UpdateOpenchannelQueueReport','DESC','../client','create','Request','CreateOpenchannelQueueReport'];(function(_0x4d5dbc,_0x4f99d3){var _0x3aaa90=function(_0x3eabe4){while(--_0x3eabe4){_0x4d5dbc['push'](_0x4d5dbc['shift']());}};_0x3aaa90(++_0x4f99d3);}(_0x0901,0x134));var _0x1090=function(_0x1287c8,_0x161e49){_0x1287c8=_0x1287c8-0x0;var _0x528574=_0x0901[_0x1287c8];return _0x528574;};'use strict';var client=require(_0x1090('0x0'));exports[_0x1090('0x1')]=function(_0x42b657){return client[_0x1090('0x2')](_0x1090('0x3'),{'body':_0x42b657,'log':_0x1090('0x3')});};exports['update']=function(_0x55fa98,_0x698fbb){return client[_0x1090('0x2')](_0x1090('0x4'),{'body':_0x698fbb,'options':{'where':{'uniqueid':_0x55fa98},'order':[['id',_0x1090('0x5')]],'limit':0x1},'log':_0x1090('0x4')});};
\ No newline at end of file
+var _0xd206=['DESC','../client','CreateOpenchannelQueueReport','UpdateOpenchannelQueueReport'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0xd206,0x89));var _0x6d20=function(_0x2dadb9,_0x42cfe6){_0x2dadb9=_0x2dadb9-0x0;var _0x2f0097=_0xd206[_0x2dadb9];return _0x2f0097;};'use strict';var client=require(_0x6d20('0x0'));exports['create']=function(_0x586370){return client['Request'](_0x6d20('0x1'),{'body':_0x586370,'log':_0x6d20('0x1')});};exports['update']=function(_0xb6c7de,_0x5bc029){return client['Request'](_0x6d20('0x2'),{'body':_0x5bc029,'options':{'where':{'uniqueid':_0xb6c7de},'order':[['id',_0x6d20('0x3')]],'limit':0x1},'log':'UpdateOpenchannelQueueReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe548=['../client','update','Request','addTagsToSmsInteraction'];(function(_0x25cc6d,_0x3359d5){var _0x5188dd=function(_0x1c831e){while(--_0x1c831e){_0x25cc6d['push'](_0x25cc6d['shift']());}};_0x5188dd(++_0x3359d5);}(_0xe548,0x184));var _0x8e54=function(_0x5e28c2,_0x1e48ab){_0x5e28c2=_0x5e28c2-0x0;var _0x1a8cc6=_0xe548[_0x5e28c2];return _0x1a8cc6;};'use strict';var client=require(_0x8e54('0x0'));exports[_0x8e54('0x1')]=function(_0x294af0,_0x2b10bd){return client[_0x8e54('0x2')]('UpdateSmsInteraction',{'body':_0x2b10bd,'options':{'where':{'id':_0x294af0}},'log':'updateSmsInteraction'});};exports['addTags']=function(_0x4aa36a,_0x4b69ef){return client[_0x8e54('0x2')]('AddTagsToSmsInteraction',{'body':_0x4b69ef,'options':{'where':{'id':_0x4aa36a}},'log':_0x8e54('0x3')});};
\ No newline at end of file
+var _0xecd5=['Request','addTagsToSmsInteraction','update','UpdateSmsInteraction','updateSmsInteraction','addTags'];(function(_0x1139d0,_0x41e5f8){var _0xcc01a6=function(_0x504ffa){while(--_0x504ffa){_0x1139d0['push'](_0x1139d0['shift']());}};_0xcc01a6(++_0x41e5f8);}(_0xecd5,0x110));var _0x5ecd=function(_0x12bc24,_0x3c7365){_0x12bc24=_0x12bc24-0x0;var _0x23301a=_0xecd5[_0x12bc24];return _0x23301a;};'use strict';var client=require('../client');exports[_0x5ecd('0x0')]=function(_0x2baced,_0x1aa184){return client['Request'](_0x5ecd('0x1'),{'body':_0x1aa184,'options':{'where':{'id':_0x2baced}},'log':_0x5ecd('0x2')});};exports[_0x5ecd('0x3')]=function(_0x458bb3,_0x516d8e){return client[_0x5ecd('0x4')]('AddTagsToSmsInteraction',{'body':_0x516d8e,'options':{'where':{'id':_0x458bb3}},'log':_0x5ecd('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc2b5=['CreateSmsMessage','../client','Request'];(function(_0x2ef975,_0x3938dc){var _0x253397=function(_0x43a61b){while(--_0x43a61b){_0x2ef975['push'](_0x2ef975['shift']());}};_0x253397(++_0x3938dc);}(_0xc2b5,0x88));var _0x5c2b=function(_0x4fe084,_0x2884e4){_0x4fe084=_0x4fe084-0x0;var _0x227cbc=_0xc2b5[_0x4fe084];return _0x227cbc;};'use strict';var client=require(_0x5c2b('0x0'));exports['create']=function(_0x100dc3){return client[_0x5c2b('0x1')](_0x5c2b('0x2'),{'body':_0x100dc3,'log':'createSmsMessage'});};
\ No newline at end of file
+var _0x36ee=['create','createSmsMessage','../client'];(function(_0x13634e,_0x5de6a9){var _0x4b27c0=function(_0xf703a1){while(--_0xf703a1){_0x13634e['push'](_0x13634e['shift']());}};_0x4b27c0(++_0x5de6a9);}(_0x36ee,0x1f4));var _0xe36e=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x36ee[_0x2dafbe];return _0x58a45a;};'use strict';var client=require(_0xe36e('0x0'));exports[_0xe36e('0x1')]=function(_0x1a82da){return client['Request']('CreateSmsMessage',{'body':_0x1a82da,'log':_0xe36e('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['User','Agents','online','../client','getSmsQueues','Request','timeout','strategy'];(function(_0x20a52e,_0x3e54b0){var _0x556153=function(_0x38b720){while(--_0x38b720){_0x20a52e['push'](_0x20a52e['shift']());}};_0x556153(++_0x3e54b0);}(_0x70e0,0x17b));var _0x070e=function(_0x38d8d9,_0x58da6d){_0x38d8d9=_0x38d8d9-0x0;var _0x20634e=_0x70e0[_0x38d8d9];return _0x20634e;};'use strict';var client=require(_0x070e('0x0'));exports[_0x070e('0x1')]=function(){return function(){return client[_0x070e('0x2')]('GetSmsQueue',{'options':{'raw':![],'attributes':['id','name',_0x070e('0x3'),_0x070e('0x4')],'include':[{'model':_0x070e('0x5'),'as':_0x070e('0x6'),'attributes':['id','name',_0x070e('0x7'),'smsPause']}]},'log':_0x070e('0x1')});};};
\ No newline at end of file
+var _0xe706=['Agents','online','smsPause','../client','getSmsQueues','Request','name','timeout','strategy','User'];(function(_0x101e1a,_0xbb8492){var _0x25ea7a=function(_0x56efd7){while(--_0x56efd7){_0x101e1a['push'](_0x101e1a['shift']());}};_0x25ea7a(++_0xbb8492);}(_0xe706,0xa3));var _0x6e70=function(_0x2318b2,_0x5737ed){_0x2318b2=_0x2318b2-0x0;var _0x56634a=_0xe706[_0x2318b2];return _0x56634a;};'use strict';var client=require(_0x6e70('0x0'));exports[_0x6e70('0x1')]=function(){return function(){return client[_0x6e70('0x2')]('GetSmsQueue',{'options':{'raw':![],'attributes':['id',_0x6e70('0x3'),_0x6e70('0x4'),_0x6e70('0x5')],'include':[{'model':_0x6e70('0x6'),'as':_0x6e70('0x7'),'attributes':['id',_0x6e70('0x3'),_0x6e70('0x8'),_0x6e70('0x9')]}]},'log':_0x6e70('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['Request','CreateSmsQueueReport','update','UpdateSmsQueueReport'];(function(_0x134464,_0x543e28){var _0x314352=function(_0x23f2cf){while(--_0x23f2cf){_0x134464['push'](_0x134464['shift']());}};_0x314352(++_0x543e28);}(_0x9c44,0x178));var _0x49c4=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0x9c44[_0x465a0c];return _0x1e202e;};'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(_0xc70629,_0xefdc2d){var _0x70a61=function(_0x1db30d){while(--_0x1db30d){_0xc70629['push'](_0xc70629['shift']());}};_0x70a61(++_0xefdc2d);}(_0x34e8,0x12c));var _0x834e=function(_0x30d693,_0x3bcf1e){_0x30d693=_0x30d693-0x0;var _0x19a068=_0x34e8[_0x30d693];return _0x19a068;};'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(_0x5cceb1,_0x18b6e2){var _0x415bbb=function(_0x948a3c){while(--_0x948a3c){_0x5cceb1['push'](_0x5cceb1['shift']());}};_0x415bbb(++_0x18b6e2);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3c2a69,_0x4c8b41){_0x3c2a69=_0x3c2a69-0x0;var _0x596bc8=_0xa9e0[_0x3c2a69];return _0x596bc8;};'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(_0xe09e3a,_0x43eeed){var _0x1aaddd=function(_0x2676fd){while(--_0x2676fd){_0xe09e3a['push'](_0xe09e3a['shift']());}};_0x1aaddd(++_0x43eeed);}(_0xa9e0,0x123));var _0x0a9e=function(_0x47a7d0,_0x4e182d){_0x47a7d0=_0x47a7d0-0x0;var _0xb9bd08=_0xa9e0[_0x47a7d0];return _0xb9bd08;};'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 _0x3e0c=['update','Request','UpdateWhatsappInteraction','updateWhatsappInteraction','addTags','../client'];(function(_0x20634b,_0x3568ee){var _0x15fec3=function(_0x1bec07){while(--_0x1bec07){_0x20634b['push'](_0x20634b['shift']());}};_0x15fec3(++_0x3568ee);}(_0x3e0c,0x16d));var _0xc3e0=function(_0x1c6d69,_0x2a13ee){_0x1c6d69=_0x1c6d69-0x0;var _0xcdd612=_0x3e0c[_0x1c6d69];return _0xcdd612;};'use strict';var client=require(_0xc3e0('0x0'));exports[_0xc3e0('0x1')]=function(_0x35c08c,_0x51e95c){return client[_0xc3e0('0x2')](_0xc3e0('0x3'),{'body':_0x51e95c,'options':{'where':{'id':_0x35c08c}},'log':_0xc3e0('0x4')});};exports[_0xc3e0('0x5')]=function(_0xba1d4c,_0x49e5b7){return client[_0xc3e0('0x2')]('AddTagsToWhatsappInteraction',{'body':_0x49e5b7,'options':{'where':{'id':_0xba1d4c}},'log':'addTagsToWhatsappInteraction'});};
\ No newline at end of file
+var _0xeda8=['updateWhatsappInteraction','addTags','AddTagsToWhatsappInteraction','addTagsToWhatsappInteraction','../client','update','Request','UpdateWhatsappInteraction'];(function(_0x34bdce,_0x5473dd){var _0x1c5cef=function(_0xb2939e){while(--_0xb2939e){_0x34bdce['push'](_0x34bdce['shift']());}};_0x1c5cef(++_0x5473dd);}(_0xeda8,0x104));var _0x8eda=function(_0x362e91,_0x189560){_0x362e91=_0x362e91-0x0;var _0x48ce84=_0xeda8[_0x362e91];return _0x48ce84;};'use strict';var client=require(_0x8eda('0x0'));exports[_0x8eda('0x1')]=function(_0x539019,_0x12899a){return client[_0x8eda('0x2')](_0x8eda('0x3'),{'body':_0x12899a,'options':{'where':{'id':_0x539019}},'log':_0x8eda('0x4')});};exports[_0x8eda('0x5')]=function(_0x94b83f,_0x25b19a){return client[_0x8eda('0x2')](_0x8eda('0x6'),{'body':_0x25b19a,'options':{'where':{'id':_0x94b83f}},'log':_0x8eda('0x7')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd29e=['../client','create','Request','CreateWhatsappMessage','createWhatsappMessage'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xd29e,0x78));var _0xed29=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xd29e[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0xed29('0x0'));exports[_0xed29('0x1')]=function(_0x15ee71){return client[_0xed29('0x2')](_0xed29('0x3'),{'body':_0x15ee71,'log':_0xed29('0x4')});};
\ No newline at end of file
+var _0xdbd0=['createWhatsappMessage','create','CreateWhatsappMessage'];(function(_0x42d4a8,_0x4b1c9d){var _0x3fe989=function(_0x580a51){while(--_0x580a51){_0x42d4a8['push'](_0x42d4a8['shift']());}};_0x3fe989(++_0x4b1c9d);}(_0xdbd0,0x70));var _0x0dbd=function(_0x7d3d86,_0x46605a){_0x7d3d86=_0x7d3d86-0x0;var _0x4fa3ac=_0xdbd0[_0x7d3d86];return _0x4fa3ac;};'use strict';var client=require('../client');exports[_0x0dbd('0x0')]=function(_0x151294){return client['Request'](_0x0dbd('0x1'),{'body':_0x151294,'log':_0x0dbd('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8e1=['strategy','User','Agents','online','../client','getWhatsappQueues','Request','name','timeout'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xd8e1,0x8b));var _0x1d8e=function(_0x3fe656,_0x3efaeb){_0x3fe656=_0x3fe656-0x0;var _0x6b5ec=_0xd8e1[_0x3fe656];return _0x6b5ec;};'use strict';var client=require(_0x1d8e('0x0'));exports[_0x1d8e('0x1')]=function(){return function(){return client[_0x1d8e('0x2')]('GetWhatsappQueue',{'options':{'raw':![],'attributes':['id',_0x1d8e('0x3'),_0x1d8e('0x4'),_0x1d8e('0x5')],'include':[{'model':_0x1d8e('0x6'),'as':_0x1d8e('0x7'),'attributes':['id',_0x1d8e('0x3'),_0x1d8e('0x8'),'whatsappPause']}]},'log':_0x1d8e('0x1')});};};
\ No newline at end of file
+var _0xecc4=['strategy','Agents','name','../client','getWhatsappQueues','Request'];(function(_0x34cda7,_0x8d3def){var _0xf7ed13=function(_0x4eae0e){while(--_0x4eae0e){_0x34cda7['push'](_0x34cda7['shift']());}};_0xf7ed13(++_0x8d3def);}(_0xecc4,0x8d));var _0x4ecc=function(_0x494699,_0xfcd936){_0x494699=_0x494699-0x0;var _0xf1b54c=_0xecc4[_0x494699];return _0xf1b54c;};'use strict';var client=require(_0x4ecc('0x0'));exports[_0x4ecc('0x1')]=function(){return function(){return client[_0x4ecc('0x2')]('GetWhatsappQueue',{'options':{'raw':![],'attributes':['id','name','timeout',_0x4ecc('0x3')],'include':[{'model':'User','as':_0x4ecc('0x4'),'attributes':['id',_0x4ecc('0x5'),'online','whatsappPause']}]},'log':_0x4ecc('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5140=['update','Request','UpdateWhatsappQueueReport','DESC','../client','create','CreateWhatsappQueueReport'];(function(_0xac151d,_0x4ea1d2){var _0x111dba=function(_0x13d7f4){while(--_0x13d7f4){_0xac151d['push'](_0xac151d['shift']());}};_0x111dba(++_0x4ea1d2);}(_0x5140,0x11c));var _0x0514=function(_0x47a211,_0x416bf1){_0x47a211=_0x47a211-0x0;var _0x2cc986=_0x5140[_0x47a211];return _0x2cc986;};'use strict';var client=require(_0x0514('0x0'));exports[_0x0514('0x1')]=function(_0x1e8dfd){return client['Request'](_0x0514('0x2'),{'body':_0x1e8dfd,'log':_0x0514('0x2')});};exports[_0x0514('0x3')]=function(_0x3731b5,_0x5e69e9){return client[_0x0514('0x4')](_0x0514('0x5'),{'body':_0x5e69e9,'options':{'where':{'uniqueid':_0x3731b5},'order':[['id',_0x0514('0x6')]],'limit':0x1},'log':_0x0514('0x5')});};
\ No newline at end of file
+var _0x6b00=['UpdateWhatsappQueueReport','DESC','../client','create','Request','CreateWhatsappQueueReport','update'];(function(_0x74a716,_0x4e01bb){var _0x53d740=function(_0x114bb6){while(--_0x114bb6){_0x74a716['push'](_0x74a716['shift']());}};_0x53d740(++_0x4e01bb);}(_0x6b00,0x87));var _0x06b0=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x6b00[_0x502c7d];return _0x30b7ed;};'use strict';var client=require(_0x06b0('0x0'));exports[_0x06b0('0x1')]=function(_0x58d26b){return client[_0x06b0('0x2')]('CreateWhatsappQueueReport',{'body':_0x58d26b,'log':_0x06b0('0x3')});};exports[_0x06b0('0x4')]=function(_0x1b61b0,_0x518cb6){return client[_0x06b0('0x2')](_0x06b0('0x5'),{'body':_0x518cb6,'options':{'where':{'uniqueid':_0x1b61b0},'order':[['id',_0x06b0('0x6')]],'limit':0x1},'log':_0x06b0('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1328=['[%s][QUEUE]\x20%s','stack','validate','seq-queue','routing','./strategy','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','info','format','name','toLowerCase','consequence','length','[%s][AGENT]\x20%s','map','message','stop','find','agents','timeout','createQueue','channel','START:%s','rules','end','close','complete','[%s][AGENT]\x20ROUTING\x20END','next','agent','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','error'];(function(_0x33b8cc,_0x284994){var _0x145f76=function(_0x37dba2){while(--_0x37dba2){_0x33b8cc['push'](_0x33b8cc['shift']());}};_0x145f76(++_0x284994);}(_0x1328,0x19a));var _0x8132=function(_0x5bd426,_0x4878e5){_0x5bd426=_0x5bd426-0x0;var _0x23a7eb=_0x1328[_0x5bd426];return _0x23a7eb;};'use strict';var schema=require(_0x8132('0x0'));var _=require('lodash');var util=require('util');var seqqueue=require(_0x8132('0x1'));var logger=require('../../../../config/logger')(_0x8132('0x2'));var strategy=require(_0x8132('0x3'));var queue=schema({'name':{'type':_0x8132('0x4'),'required':!![],'message':_0x8132('0x5')},'timeout':{'type':'number','message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x2c247f,_0x5ec5ce,_0x170bfb){return logger[_0x8132('0x6')](util[_0x8132('0x7')]('[%s][AGENT][NAME:%s][STATUS:%s]',_0x2c247f,_0x5ec5ce[_0x8132('0x8')],_0x170bfb));}function handleFindAgent(_0x4752ca){return function(_0x5af354){return _0x5af354[_0x8132('0x8')][_0x8132('0x9')]()===_0x4752ca[_0x8132('0x9')]();};}exports[_0x8132('0xa')]=function(_0x16f311,_0x18c126,_0x39792d,_0x5b5a45){return function(_0x47618a){try{var _0x145d5a={'name':_0x18c126[0x0],'timeout':_0x18c126[0x1]};var _0x209612=queue[_0x8132('0x0')](_0x145d5a,{'typecast':!![]});if(_0x209612[_0x8132('0xb')]){logger['error'](_0x8132('0xc'),_0x16f311,_[_0x8132('0xd')](_0x209612,_0x8132('0xe'))['join'](',\x20'));_0x47618a[_0x8132('0xf')]();}else{var _0x2cdbf6=_[_0x8132('0x10')](_0x39792d[_0x8132('0x11')],handleFindAgent(_0x145d5a[_0x8132('0x8')]));if(_0x2cdbf6){var _0x3b1204=(_0x145d5a[_0x8132('0x12')]||0xa)*0x3e8;var _0x30fce0,_0x40b194;var _0x35c579=seqqueue[_0x8132('0x13')](_0x3b1204);_0x35c579['id']=_0x16f311;_0x35c579['atimeout']=_0x3b1204;_0x35c579['channel']=_0x5b5a45[_0x8132('0x14')];writeLog(_0x16f311,_0x2cdbf6,util[_0x8132('0x7')](_0x8132('0x15'),_0x3b1204));_0x39792d[_0x8132('0x16')][_0x16f311]['on'](_0x8132('0x17'),function(){logger[_0x8132('0x6')]('[%s][AGENT]\x20ROUTING\x20STOPPED',_0x16f311);clearTimeout(_0x40b194);_0x40b194=undefined;_0x35c579[_0x8132('0x18')]();if(_0x39792d['rules'][_0x16f311]){delete _0x39792d[_0x8132('0x16')][_0x16f311];}_0x47618a['stop']();});_0x39792d[_0x8132('0x16')][_0x16f311]['on'](_0x8132('0x19'),function(){if(_0x39792d[_0x8132('0x16')][_0x16f311]){delete _0x39792d[_0x8132('0x16')][_0x16f311];}});_0x40b194=setTimeout(function(){logger[_0x8132('0x6')](_0x8132('0x1a'),_0x16f311);clearTimeout(_0x40b194);_0x35c579[_0x8132('0x18')]();_0x47618a[_0x8132('0x1b')]();},_0x3b1204);strategy[_0x8132('0x1c')](_0x35c579,_0x2cdbf6,_0x39792d,_0x5b5a45);}else{logger['error'](_0x8132('0x1d'),_0x16f311,_0x145d5a['name']);_0x47618a['stop']();}}}catch(_0x41716f){console[_0x8132('0x1e')](_0x41716f);logger[_0x8132('0x1f')](_0x8132('0x20'),_0x16f311,_0x41716f[_0x8132('0x21')]);_0x47618a[_0x8132('0xf')]();}};};
\ No newline at end of file
+var _0xd303=['[%s][AGENT]\x20agent\x20not\x20found\x20%s','stop','log','[%s][QUEUE]\x20%s','stack','validate','lodash','seq-queue','../../../../config/logger','routing','./strategy','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','info','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','length','error','[%s][AGENT]\x20%s','map','join','find','agents','timeout','atimeout','channel','format','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','close','complete','[%s][AGENT]\x20ROUTING\x20END','next','agent'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xd303,0x181));var _0x3d30=function(_0x254b35,_0x9f3a12){_0x254b35=_0x254b35-0x0;var _0x59124b=_0xd303[_0x254b35];return _0x59124b;};'use strict';var schema=require(_0x3d30('0x0'));var _=require(_0x3d30('0x1'));var util=require('util');var seqqueue=require(_0x3d30('0x2'));var logger=require(_0x3d30('0x3'))(_0x3d30('0x4'));var strategy=require(_0x3d30('0x5'));var queue=schema({'name':{'type':'string','required':!![],'message':_0x3d30('0x6')},'timeout':{'type':_0x3d30('0x7'),'message':_0x3d30('0x8')}});function writeLog(_0xc6363d,_0x1329a5,_0x221e6e){return logger[_0x3d30('0x9')](util['format'](_0x3d30('0xa'),_0xc6363d,_0x1329a5[_0x3d30('0xb')],_0x221e6e));}function handleFindAgent(_0x11cc89){return function(_0x2f1416){return _0x2f1416['name'][_0x3d30('0xc')]()===_0x11cc89['toLowerCase']();};}exports[_0x3d30('0xd')]=function(_0x1dcdcc,_0x240988,_0xa397e3,_0x5f23ca){return function(_0x272bcf){try{var _0x166b1c={'name':_0x240988[0x0],'timeout':_0x240988[0x1]};var _0x33eafb=queue['validate'](_0x166b1c,{'typecast':!![]});if(_0x33eafb[_0x3d30('0xe')]){logger[_0x3d30('0xf')](_0x3d30('0x10'),_0x1dcdcc,_[_0x3d30('0x11')](_0x33eafb,'message')[_0x3d30('0x12')](',\x20'));_0x272bcf['stop']();}else{var _0x21edd2=_[_0x3d30('0x13')](_0xa397e3[_0x3d30('0x14')],handleFindAgent(_0x166b1c[_0x3d30('0xb')]));if(_0x21edd2){var _0x36cc6d=(_0x166b1c[_0x3d30('0x15')]||0xa)*0x3e8;var _0x5aca34,_0x24a293;var _0x1d7fb1=seqqueue['createQueue'](_0x36cc6d);_0x1d7fb1['id']=_0x1dcdcc;_0x1d7fb1[_0x3d30('0x16')]=_0x36cc6d;_0x1d7fb1[_0x3d30('0x17')]=_0x5f23ca['channel'];writeLog(_0x1dcdcc,_0x21edd2,util[_0x3d30('0x18')]('START:%s',_0x36cc6d));_0xa397e3[_0x3d30('0x19')][_0x1dcdcc]['on'](_0x3d30('0x1a'),function(){logger[_0x3d30('0x9')](_0x3d30('0x1b'),_0x1dcdcc);clearTimeout(_0x24a293);_0x24a293=undefined;_0x1d7fb1[_0x3d30('0x1c')]();if(_0xa397e3[_0x3d30('0x19')][_0x1dcdcc]){delete _0xa397e3[_0x3d30('0x19')][_0x1dcdcc];}_0x272bcf['stop']();});_0xa397e3['rules'][_0x1dcdcc]['on'](_0x3d30('0x1d'),function(){if(_0xa397e3[_0x3d30('0x19')][_0x1dcdcc]){delete _0xa397e3[_0x3d30('0x19')][_0x1dcdcc];}});_0x24a293=setTimeout(function(){logger['info'](_0x3d30('0x1e'),_0x1dcdcc);clearTimeout(_0x24a293);_0x1d7fb1[_0x3d30('0x1c')]();_0x272bcf[_0x3d30('0x1f')]();},_0x36cc6d);strategy[_0x3d30('0x20')](_0x1d7fb1,_0x21edd2,_0xa397e3,_0x5f23ca);}else{logger[_0x3d30('0xf')](_0x3d30('0x21'),_0x1dcdcc,_0x166b1c[_0x3d30('0xb')]);_0x272bcf[_0x3d30('0x22')]();}}}catch(_0x575707){console[_0x3d30('0x23')](_0x575707);logger[_0x3d30('0xf')](_0x3d30('0x24'),_0x1dcdcc,_0x575707[_0x3d30('0x25')]);_0x272bcf[_0x3d30('0x22')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87c8=['channel','whatsapp','phone','ChatWebsiteId','upperFirst','account','InteractionId','created','isEmpty','body','getMustacheRender','Message','create','then','catch','error','stringify','finally','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','LexRuntime','$LATEST','message','toString','postText','amazonlex','providerName','dialogState','Failed','moment','aws-sdk','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','isNil','interaction','info','[%s][AMAZONLEX]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','format','YYYY-MM-DD\x20HH:mm:ss','out'];(function(_0x50890e,_0x49b46b){var _0x367c61=function(_0x3387d1){while(--_0x3387d1){_0x50890e['push'](_0x50890e['shift']());}};_0x367c61(++_0x49b46b);}(_0x87c8,0x82));var _0x887c=function(_0x6cf19c,_0x2f3f02){_0x6cf19c=_0x6cf19c-0x0;var _0xce14f3=_0x87c8[_0x6cf19c];return _0xce14f3;};'use strict';var _=require('lodash');var moment=require(_0x887c('0x0'));var AWS=require(_0x887c('0x1'));var utils=require(_0x887c('0x2'));var logger=require(_0x887c('0x3'))(_0x887c('0x4'));var rpc={'chatMessage':require(_0x887c('0x5')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x887c('0x6')),'smsMessage':require(_0x887c('0x7')),'faxMessage':require(_0x887c('0x8')),'whatsappMessage':require(_0x887c('0x9'))};exports[_0x887c('0xa')]=function(_0x50f6d6,_0x59c808){return function(_0x2b760c){try{if(!_[_0x887c('0xb')](this[_0x887c('0xc')]['UserId'])){logger[_0x887c('0xd')](_0x887c('0xe'),_0x50f6d6,_0x887c('0xf'));return _0x2b760c[_0x887c('0x10')]();}var _0x2cf59b={'ContactId':this['contact']['id'],'sentAt':moment()[_0x887c('0x11')](_0x887c('0x12')),'direction':_0x887c('0x13')};if(this['channel']==='sms'||this[_0x887c('0x14')]===_0x887c('0x15')){_0x2cf59b[_0x887c('0x16')]=this['interaction'][_0x887c('0x16')];}var _0x8a6521=this[_0x887c('0x14')];if(_0x8a6521==='chat'){_0x2cf59b[_0x887c('0x17')]=this['account']['id'];}else{_0x2cf59b[_[_0x887c('0x18')](_0x8a6521)+'AccountId']=this[_0x887c('0x19')]['id'];}_0x2cf59b[_['upperFirst'](_0x8a6521)+_0x887c('0x1a')]=this['interaction']['id'];if(this[_0x887c('0xc')][_0x887c('0x1b')]){var _0x2f61cc=_0x59c808[0x4];if(!_[_0x887c('0x1c')](_0x2f61cc)){_0x2cf59b[_0x887c('0x1d')]=utils[_0x887c('0x1e')](_0x2f61cc,this);return rpc[_0x8a6521+_0x887c('0x1f')][_0x887c('0x20')](_0x2cf59b)[_0x887c('0x21')](function(_0x477790){logger[_0x887c('0xd')]('[%s][AMAZONLEX]\x20%s',_0x50f6d6,_0x2cf59b[_0x887c('0x1d')]);})[_0x887c('0x22')](function(_0x3db071){logger[_0x887c('0x23')]('[%s][AMAZONLEX]\x20%s',_0x50f6d6,JSON[_0x887c('0x24')](_0x3db071));})[_0x887c('0x25')](function(){logger[_0x887c('0xd')](_0x887c('0x26'),_0x50f6d6);_0x2b760c[_0x887c('0x27')]();});}else{logger[_0x887c('0xd')](_0x887c('0x28'),_0x50f6d6);_0x2b760c[_0x887c('0x27')]();}}else{var _0x51c0e7=this;var _0xfee86a=new AWS[(_0x887c('0x29'))]({'accessKeyId':_0x59c808[0x0],'secretAccessKey':_0x59c808[0x1],'region':_0x59c808[0x2]});var _0xb626a3={'botAlias':_0x887c('0x2a'),'botName':_0x59c808[0x3],'inputText':this[_0x887c('0x2b')][_0x887c('0x1d')],'userId':this[_0x887c('0x14')]+':'+this[_0x887c('0xc')]['id'][_0x887c('0x2c')]()};_0xfee86a[_0x887c('0x2d')](_0xb626a3,function(_0x7c522c,_0x2d2a14){if(_0x7c522c){logger[_0x887c('0x23')](_0x887c('0xe'),_0x50f6d6,_0x7c522c[_0x887c('0x2b')]);_0x2b760c['next']();}else if(_0x2d2a14&&_0x2d2a14[_0x887c('0x2b')]){_0x51c0e7[_0x887c('0x1d')][_0x887c('0x2e')]=_0x2d2a14;_0x2cf59b[_0x887c('0x1d')]=_0x2d2a14['message'];_0x2cf59b[_0x887c('0x2f')]=_0x887c('0x2e');_0x2cf59b['providerResponse']=JSON[_0x887c('0x24')](_0x2d2a14);return rpc[_0x8a6521+_0x887c('0x1f')]['create'](_0x2cf59b)[_0x887c('0x21')](function(_0x2cebb4){logger[_0x887c('0xd')](_0x887c('0xe'),_0x50f6d6,_0x2cf59b[_0x887c('0x1d')]);if(_0x2d2a14[_0x887c('0x30')]==_0x887c('0x31')){_0x2b760c[_0x887c('0x10')]();}else{_0x2b760c[_0x887c('0x27')]();}})[_0x887c('0x22')](function(_0x4a2987){logger[_0x887c('0x23')](_0x887c('0xe'),_0x50f6d6,JSON[_0x887c('0x24')](_0x4a2987));_0x2b760c[_0x887c('0x10')]();});}else{_0x2b760c[_0x887c('0x10')]();}});}}catch(_0x193628){logger[_0x887c('0x23')](_0x887c('0xe'),_0x50f6d6,JSON[_0x887c('0x24')](_0x193628));_0x2b760c[_0x887c('0x27')]();}};};
\ No newline at end of file
+var _0x410d=['lodash','moment','aws-sdk','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','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','chat','ChatWebsiteId','account','AccountId','upperFirst','InteractionId','created','body','getMustacheRender','then','error','stringify','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','$LATEST','message','postText','amazonlex','providerName','Message','create','dialogState'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x410d,0x64));var _0xd410=function(_0x41bdd4,_0x3d5c76){_0x41bdd4=_0x41bdd4-0x0;var _0x5c03a6=_0x410d[_0x41bdd4];return _0x5c03a6;};'use strict';var _=require(_0xd410('0x0'));var moment=require(_0xd410('0x1'));var AWS=require(_0xd410('0x2'));var utils=require(_0xd410('0x3'));var logger=require(_0xd410('0x4'))(_0xd410('0x5'));var rpc={'chatMessage':require(_0xd410('0x6')),'openchannelMessage':require(_0xd410('0x7')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0xd410('0x8')),'faxMessage':require(_0xd410('0x9')),'whatsappMessage':require(_0xd410('0xa'))};exports[_0xd410('0xb')]=function(_0x4e14e4,_0x1be978){return function(_0x152a02){try{if(!_[_0xd410('0xc')](this[_0xd410('0xd')][_0xd410('0xe')])){logger[_0xd410('0xf')](_0xd410('0x10'),_0x4e14e4,_0xd410('0x11'));return _0x152a02[_0xd410('0x12')]();}var _0x3211b7={'ContactId':this[_0xd410('0x13')]['id'],'sentAt':moment()[_0xd410('0x14')](_0xd410('0x15')),'direction':_0xd410('0x16')};if(this[_0xd410('0x17')]===_0xd410('0x18')||this['channel']===_0xd410('0x19')){_0x3211b7[_0xd410('0x1a')]=this[_0xd410('0xd')]['phone'];}var _0x4c29d3=this['channel'];if(_0x4c29d3===_0xd410('0x1b')){_0x3211b7[_0xd410('0x1c')]=this[_0xd410('0x1d')]['id'];}else{_0x3211b7[_['upperFirst'](_0x4c29d3)+_0xd410('0x1e')]=this[_0xd410('0x1d')]['id'];}_0x3211b7[_[_0xd410('0x1f')](_0x4c29d3)+_0xd410('0x20')]=this[_0xd410('0xd')]['id'];if(this[_0xd410('0xd')][_0xd410('0x21')]){var _0x14bdfa=_0x1be978[0x4];if(!_['isEmpty'](_0x14bdfa)){_0x3211b7[_0xd410('0x22')]=utils[_0xd410('0x23')](_0x14bdfa,this);return rpc[_0x4c29d3+'Message']['create'](_0x3211b7)[_0xd410('0x24')](function(_0x503c03){logger[_0xd410('0xf')](_0xd410('0x10'),_0x4e14e4,_0x3211b7[_0xd410('0x22')]);})['catch'](function(_0x52d330){logger[_0xd410('0x25')](_0xd410('0x10'),_0x4e14e4,JSON[_0xd410('0x26')](_0x52d330));})['finally'](function(){logger[_0xd410('0xf')](_0xd410('0x27'),_0x4e14e4);_0x152a02[_0xd410('0x28')]();});}else{logger['info'](_0xd410('0x29'),_0x4e14e4);_0x152a02[_0xd410('0x28')]();}}else{var _0x44109b=this;var _0x172d89=new AWS['LexRuntime']({'accessKeyId':_0x1be978[0x0],'secretAccessKey':_0x1be978[0x1],'region':_0x1be978[0x2]});var _0x3ae6f6={'botAlias':_0xd410('0x2a'),'botName':_0x1be978[0x3],'inputText':this[_0xd410('0x2b')][_0xd410('0x22')],'userId':this[_0xd410('0x17')]+':'+this[_0xd410('0xd')]['id']['toString']()};_0x172d89[_0xd410('0x2c')](_0x3ae6f6,function(_0x5d7faa,_0x1126c6){if(_0x5d7faa){logger[_0xd410('0x25')]('[%s][AMAZONLEX]\x20%s',_0x4e14e4,_0x5d7faa[_0xd410('0x2b')]);_0x152a02['next']();}else if(_0x1126c6&&_0x1126c6[_0xd410('0x2b')]){_0x44109b[_0xd410('0x22')][_0xd410('0x2d')]=_0x1126c6;_0x3211b7[_0xd410('0x22')]=_0x1126c6['message'];_0x3211b7[_0xd410('0x2e')]=_0xd410('0x2d');_0x3211b7['providerResponse']=JSON['stringify'](_0x1126c6);return rpc[_0x4c29d3+_0xd410('0x2f')][_0xd410('0x30')](_0x3211b7)['then'](function(_0x39688c){logger['info'](_0xd410('0x10'),_0x4e14e4,_0x3211b7[_0xd410('0x22')]);if(_0x1126c6[_0xd410('0x31')]=='Failed'){_0x152a02[_0xd410('0x12')]();}else{_0x152a02[_0xd410('0x28')]();}})['catch'](function(_0x3942bf){logger['error'](_0xd410('0x10'),_0x4e14e4,JSON[_0xd410('0x26')](_0x3942bf));_0x152a02['next']();});}else{_0x152a02[_0xd410('0x12')]();}});}}catch(_0x5b9181){logger['error'](_0xd410('0x10'),_0x4e14e4,JSON[_0xd410('0x26')](_0x5b9181));_0x152a02[_0xd410('0x28')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5438=['inReplyTo','messageId','html','<div\x20id=\x22xm-mail-content\x22>','<div\x20id=\x22xm-mail-content\x22','<div','</div>','headers','auto-replied','auto_reply','sendMailMessage','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','create','stringify','catch','error','[RPC][%s][AUTOREPLY]\x20%s','resolve','Interaction','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','finally','update','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','stop','lodash','moment','./utils','../../../../config/logger','routing','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','consequence','mail','isAutoreply','info','[%s][AUTOREPLY]\x20%s','next','interaction','created','autoreplyExecuted','One\x20Time\x20already\x20sent','contact','format','YYYY-MM-DD\x20HH:mm:ss','channel','body','getMustacheRender','message','from','phone','read','subject','startsWith','Re:','Re:\x20','chat','account','InteractionId','Message','service','Smtp','host','port','secure','authentication','auth','user','pass'];(function(_0xf091f6,_0x1760af){var _0x24782c=function(_0x5ec702){while(--_0x5ec702){_0xf091f6['push'](_0xf091f6['shift']());}};_0x24782c(++_0x1760af);}(_0x5438,0x100));var _0x8543=function(_0x85be76,_0x519db6){_0x85be76=_0x85be76-0x0;var _0x3afec4=_0x5438[_0x85be76];return _0x3afec4;};'use strict';var _=require(_0x8543('0x0'));var moment=require(_0x8543('0x1'));var utils=require(_0x8543('0x2'));var logger=require(_0x8543('0x3'))(_0x8543('0x4'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x8543('0x5')),'mailMessage':require(_0x8543('0x6')),'smsMessage':require(_0x8543('0x7')),'faxMessage':require(_0x8543('0x8')),'whatsappMessage':require(_0x8543('0x9')),'chatInteraction':require(_0x8543('0xa')),'openchannelInteraction':require(_0x8543('0xb')),'mailInteraction':require('../../rpc/mailInteraction'),'smsInteraction':require(_0x8543('0xc')),'faxInteraction':require(_0x8543('0xd')),'whatsappInteraction':require(_0x8543('0xe'))};var mailRpc=require('../../mailRpc');exports[_0x8543('0xf')]=function(_0x14dad,_0x1423c8,_0x58153c,_0xa10e66){return function(_0xc2357f){try{var _0x16a065=this['channel'];if(_0x16a065===_0x8543('0x10')&&_0xa10e66['body'][_0x8543('0x11')]){logger[_0x8543('0x12')](_0x8543('0x13'),_0x14dad,'Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)');return _0xc2357f[_0x8543('0x14')]();}if(_0x1423c8[0x0]==='1'&&(_['isNil'](this[_0x8543('0x15')][_0x8543('0x16')])||!this[_0x8543('0x15')][_0x8543('0x16')])){logger[_0x8543('0x12')](_0x8543('0x13'),_0x14dad,'Autoreply\x20already\x20sent');return _0xc2357f[_0x8543('0x14')]();}if(_0x1423c8[0x0]==='2'&&this[_0x8543('0x15')][_0x8543('0x17')]){logger['info']('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x14dad,_0x8543('0x18'));return _0xc2357f[_0x8543('0x14')]();}var _0x5ebb9a={'ContactId':this[_0x8543('0x19')]['id'],'sentAt':moment()[_0x8543('0x1a')](_0x8543('0x1b')),'direction':'out'};if(this[_0x8543('0x1c')]===_0x8543('0x10')){_0x5ebb9a[_0x8543('0x1d')]=utils[_0x8543('0x1e')](_0x1423c8[0x2],this);}else{_0x5ebb9a[_0x8543('0x1d')]=utils[_0x8543('0x1e')](_0x1423c8[0x1],this);}if(this[_0x8543('0x1f')]){_0x5ebb9a['to']=this[_0x8543('0x1f')]['from']||'';if(this[_0x8543('0x1c')]==='mail'&&_0x1423c8[0x1]==='1'){_0x5ebb9a['cc']=this[_0x8543('0x1f')]['cc']||'';}_0x5ebb9a[_0x8543('0x20')]=this[_0x8543('0x1f')]['to']||'';_0x5ebb9a[_0x8543('0x21')]=this[_0x8543('0x1f')][_0x8543('0x21')]||'';_0x5ebb9a[_0x8543('0x22')]=!![];if(this[_0x8543('0x1f')][_0x8543('0x23')]){_0x5ebb9a[_0x8543('0x23')]='';_0x5ebb9a[_0x8543('0x23')]+=_[_0x8543('0x24')](this[_0x8543('0x1f')][_0x8543('0x23')],_0x8543('0x25'))?'':_0x8543('0x26');_0x5ebb9a[_0x8543('0x23')]+=this[_0x8543('0x1f')][_0x8543('0x23')];}}if(this[_0x8543('0x1c')]===_0x8543('0x27')){_0x5ebb9a['ChatWebsiteId']=this[_0x8543('0x28')]['id'];}else{_0x5ebb9a[_['upperFirst'](this[_0x8543('0x1c')])+'AccountId']=this[_0x8543('0x28')]['id'];}_0x5ebb9a[_['upperFirst'](this[_0x8543('0x1c')])+_0x8543('0x29')]=this[_0x8543('0x15')]['id'];var _0x2144b9=this[_0x8543('0x15')];if(rpc[this[_0x8543('0x1c')]+_0x8543('0x2a')]){if(this[_0x8543('0x1c')]==='mail'){var _0x133855={'tls':{'rejectUnauthorized':![]}};if(this[_0x8543('0x28')]['Smtp'][_0x8543('0x2b')]){_0x133855[_0x8543('0x2b')]=this[_0x8543('0x28')][_0x8543('0x2c')]['service'];}else{_0x133855['host']=this[_0x8543('0x28')][_0x8543('0x2c')][_0x8543('0x2d')];_0x133855[_0x8543('0x2e')]=this[_0x8543('0x28')]['Smtp'][_0x8543('0x2e')];_0x133855[_0x8543('0x2f')]=this[_0x8543('0x28')][_0x8543('0x2c')][_0x8543('0x2f')];}if(this['account'][_0x8543('0x2c')][_0x8543('0x30')]){_0x133855[_0x8543('0x31')]={'user':this[_0x8543('0x28')][_0x8543('0x2c')][_0x8543('0x32')],'pass':this['account'][_0x8543('0x2c')][_0x8543('0x33')]};}_0x5ebb9a[_0x8543('0x34')]=this['message'][_0x8543('0x35')];_0x5ebb9a[_0x8543('0x36')]=_0x8543('0x37')+_['replace'](_0x5ebb9a[_0x8543('0x1d')],_0x8543('0x38'),_0x8543('0x39'))+_0x8543('0x3a');_0x5ebb9a[_0x8543('0x3b')]={'Auto-Submitted':_0x8543('0x3c'),'X-Auto-Response-Suppress':'All','Precedence':_0x8543('0x3d')};return mailRpc[_0x8543('0x3e')](_0x133855,_0x5ebb9a)[_0x8543('0x3f')](function(_0x4ff216){logger[_0x8543('0x12')](_0x8543('0x40'),_0x14dad);_0x5ebb9a['messageId']=_0x4ff216['message']['messageId'];return rpc[_0x16a065+_0x8543('0x2a')][_0x8543('0x41')](_0x5ebb9a);})['then'](function(_0x21d88){logger[_0x8543('0x12')]('[%s][AUTOREPLY]\x20%s',_0x14dad,JSON[_0x8543('0x42')](_0x21d88));})[_0x8543('0x43')](function(_0x29d697){logger[_0x8543('0x44')](_0x8543('0x45'),_0x14dad,JSON[_0x8543('0x42')](_0x29d697));})['finally'](function(){Promise[_0x8543('0x46')]()[_0x8543('0x3f')](function(){if(_0x1423c8[0x0]!=='2'||_0x2144b9[_0x8543('0x17')])return;return rpc[_0x16a065+_0x8543('0x47')]['update'](_0x2144b9['id'],{'autoreplyExecuted':!![]})[_0x8543('0x3f')](function(_0xaf998){logger[_0x8543('0x12')](_0x8543('0x48'),_0x14dad,JSON[_0x8543('0x42')](_0xaf998));})[_0x8543('0x43')](function(_0x2c4c5b){logger['error']('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x14dad,JSON[_0x8543('0x42')](_0x2c4c5b));});})[_0x8543('0x3f')](function(){_0xc2357f[_0x8543('0x14')]();});});}else{return rpc[this['channel']+'Message'][_0x8543('0x41')](_0x5ebb9a)['then'](function(_0x4eb3b5){logger[_0x8543('0x12')]('[%s][AUTOREPLY]\x20%s',_0x14dad,_0x5ebb9a[_0x8543('0x1d')]);})[_0x8543('0x43')](function(_0x343050){logger[_0x8543('0x44')](_0x8543('0x13'),_0x14dad,JSON[_0x8543('0x42')](_0x343050));})[_0x8543('0x49')](function(){Promise['resolve']()[_0x8543('0x3f')](function(){if(_0x1423c8[0x0]!=='2'||_0x2144b9[_0x8543('0x17')])return;return rpc[_0x16a065+'Interaction'][_0x8543('0x4a')](_0x2144b9['id'],{'autoreplyExecuted':!![]})[_0x8543('0x3f')](function(_0x3ff566){logger[_0x8543('0x12')](_0x8543('0x48'),_0x14dad,JSON[_0x8543('0x42')](_0x3ff566));})['catch'](function(_0x4dd137){logger[_0x8543('0x44')](_0x8543('0x4b'),_0x14dad,JSON[_0x8543('0x42')](_0x4dd137));});})[_0x8543('0x3f')](function(){_0xc2357f[_0x8543('0x14')]();});});}}}catch(_0x1adefd){logger[_0x8543('0x44')]('[%s][AUTOREPLY]\x20%s',_0x14dad,JSON['stringify'](_0x1adefd));_0xc2357f[_0x8543('0x4c')]();}};};
\ No newline at end of file
+var _0x4f8a=['</div>','headers','All','auto_reply','create','then','error','[RPC][%s][AUTOREPLY]\x20%s','stringify','finally','resolve','autoreplyExecuted','Interaction','catch','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','stop','lodash','moment','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/whatsappMessage','../../rpc/chatInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','../../mailRpc','consequence','channel','body','isAutoreply','info','isNil','interaction','created','[%s][AUTOREPLY]\x20%s','Autoreply\x20already\x20sent','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','mail','getMustacheRender','from','message','phone','subject','startsWith','Re:','Re:\x20','chat','ChatWebsiteId','upperFirst','AccountId','account','Message','Smtp','service','host','port','secure','user','pass','messageId','html','<div\x20id=\x22xm-mail-content\x22>','replace','<div\x20id=\x22xm-mail-content\x22','<div'];(function(_0x575c35,_0x50f38d){var _0x4e7eeb=function(_0x323558){while(--_0x323558){_0x575c35['push'](_0x575c35['shift']());}};_0x4e7eeb(++_0x50f38d);}(_0x4f8a,0x1cc));var _0xa4f8=function(_0x1cadb1,_0x50801a){_0x1cadb1=_0x1cadb1-0x0;var _0x4565a6=_0x4f8a[_0x1cadb1];return _0x4565a6;};'use strict';var _=require(_0xa4f8('0x0'));var moment=require(_0xa4f8('0x1'));var utils=require('./utils');var logger=require(_0xa4f8('0x2'))(_0xa4f8('0x3'));var rpc={'chatMessage':require(_0xa4f8('0x4')),'openchannelMessage':require(_0xa4f8('0x5')),'mailMessage':require(_0xa4f8('0x6')),'smsMessage':require(_0xa4f8('0x7')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0xa4f8('0x8')),'chatInteraction':require(_0xa4f8('0x9')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'mailInteraction':require('../../rpc/mailInteraction'),'smsInteraction':require(_0xa4f8('0xa')),'faxInteraction':require(_0xa4f8('0xb')),'whatsappInteraction':require(_0xa4f8('0xc'))};var mailRpc=require(_0xa4f8('0xd'));exports[_0xa4f8('0xe')]=function(_0x12b1bc,_0x1e7dfe,_0x1bfda4,_0x343bb1){return function(_0x24be3f){try{var _0xf34a37=this[_0xa4f8('0xf')];if(_0xf34a37==='mail'&&_0x343bb1[_0xa4f8('0x10')][_0xa4f8('0x11')]){logger[_0xa4f8('0x12')]('[%s][AUTOREPLY]\x20%s',_0x12b1bc,'Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)');return _0x24be3f['next']();}if(_0x1e7dfe[0x0]==='1'&&(_[_0xa4f8('0x13')](this[_0xa4f8('0x14')][_0xa4f8('0x15')])||!this[_0xa4f8('0x14')][_0xa4f8('0x15')])){logger['info'](_0xa4f8('0x16'),_0x12b1bc,_0xa4f8('0x17'));return _0x24be3f['next']();}if(_0x1e7dfe[0x0]==='2'&&this[_0xa4f8('0x14')]['autoreplyExecuted']){logger[_0xa4f8('0x12')](_0xa4f8('0x18'),_0x12b1bc,_0xa4f8('0x19'));return _0x24be3f[_0xa4f8('0x1a')]();}var _0x2c6bb9={'ContactId':this[_0xa4f8('0x1b')]['id'],'sentAt':moment()[_0xa4f8('0x1c')](_0xa4f8('0x1d')),'direction':'out'};if(this[_0xa4f8('0xf')]===_0xa4f8('0x1e')){_0x2c6bb9['body']=utils[_0xa4f8('0x1f')](_0x1e7dfe[0x2],this);}else{_0x2c6bb9[_0xa4f8('0x10')]=utils[_0xa4f8('0x1f')](_0x1e7dfe[0x1],this);}if(this['message']){_0x2c6bb9['to']=this['message'][_0xa4f8('0x20')]||'';if(this[_0xa4f8('0xf')]===_0xa4f8('0x1e')&&_0x1e7dfe[0x1]==='1'){_0x2c6bb9['cc']=this['message']['cc']||'';}_0x2c6bb9[_0xa4f8('0x20')]=this[_0xa4f8('0x21')]['to']||'';_0x2c6bb9['phone']=this[_0xa4f8('0x21')][_0xa4f8('0x22')]||'';_0x2c6bb9['read']=!![];if(this[_0xa4f8('0x21')][_0xa4f8('0x23')]){_0x2c6bb9[_0xa4f8('0x23')]='';_0x2c6bb9[_0xa4f8('0x23')]+=_[_0xa4f8('0x24')](this[_0xa4f8('0x21')]['subject'],_0xa4f8('0x25'))?'':_0xa4f8('0x26');_0x2c6bb9[_0xa4f8('0x23')]+=this[_0xa4f8('0x21')][_0xa4f8('0x23')];}}if(this[_0xa4f8('0xf')]===_0xa4f8('0x27')){_0x2c6bb9[_0xa4f8('0x28')]=this['account']['id'];}else{_0x2c6bb9[_[_0xa4f8('0x29')](this['channel'])+_0xa4f8('0x2a')]=this[_0xa4f8('0x2b')]['id'];}_0x2c6bb9[_['upperFirst'](this['channel'])+'InteractionId']=this[_0xa4f8('0x14')]['id'];var _0x236111=this[_0xa4f8('0x14')];if(rpc[this['channel']+_0xa4f8('0x2c')]){if(this['channel']===_0xa4f8('0x1e')){var _0x3980d3={'tls':{'rejectUnauthorized':![]}};if(this[_0xa4f8('0x2b')][_0xa4f8('0x2d')][_0xa4f8('0x2e')]){_0x3980d3[_0xa4f8('0x2e')]=this[_0xa4f8('0x2b')][_0xa4f8('0x2d')]['service'];}else{_0x3980d3[_0xa4f8('0x2f')]=this['account'][_0xa4f8('0x2d')][_0xa4f8('0x2f')];_0x3980d3[_0xa4f8('0x30')]=this[_0xa4f8('0x2b')]['Smtp']['port'];_0x3980d3[_0xa4f8('0x31')]=this[_0xa4f8('0x2b')]['Smtp'][_0xa4f8('0x31')];}if(this[_0xa4f8('0x2b')]['Smtp']['authentication']){_0x3980d3['auth']={'user':this['account'][_0xa4f8('0x2d')][_0xa4f8('0x32')],'pass':this['account'][_0xa4f8('0x2d')][_0xa4f8('0x33')]};}_0x2c6bb9['inReplyTo']=this[_0xa4f8('0x21')][_0xa4f8('0x34')];_0x2c6bb9[_0xa4f8('0x35')]=_0xa4f8('0x36')+_[_0xa4f8('0x37')](_0x2c6bb9[_0xa4f8('0x10')],_0xa4f8('0x38'),_0xa4f8('0x39'))+_0xa4f8('0x3a');_0x2c6bb9[_0xa4f8('0x3b')]={'Auto-Submitted':'auto-replied','X-Auto-Response-Suppress':_0xa4f8('0x3c'),'Precedence':_0xa4f8('0x3d')};return mailRpc['sendMailMessage'](_0x3980d3,_0x2c6bb9)['then'](function(_0x5f3fad){logger[_0xa4f8('0x12')]('[%s][AUTOREPLY]\x20SMTP\x20SENT',_0x12b1bc);_0x2c6bb9[_0xa4f8('0x34')]=_0x5f3fad['message'][_0xa4f8('0x34')];return rpc[_0xf34a37+_0xa4f8('0x2c')][_0xa4f8('0x3e')](_0x2c6bb9);})[_0xa4f8('0x3f')](function(_0x586ff7){logger[_0xa4f8('0x12')](_0xa4f8('0x16'),_0x12b1bc,JSON['stringify'](_0x586ff7));})['catch'](function(_0x34c409){logger[_0xa4f8('0x40')](_0xa4f8('0x41'),_0x12b1bc,JSON[_0xa4f8('0x42')](_0x34c409));})[_0xa4f8('0x43')](function(){Promise[_0xa4f8('0x44')]()[_0xa4f8('0x3f')](function(){if(_0x1e7dfe[0x0]!=='2'||_0x236111[_0xa4f8('0x45')])return;return rpc[_0xf34a37+_0xa4f8('0x46')]['update'](_0x236111['id'],{'autoreplyExecuted':!![]})[_0xa4f8('0x3f')](function(_0x34c07d){logger[_0xa4f8('0x12')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x12b1bc,JSON[_0xa4f8('0x42')](_0x34c07d));})[_0xa4f8('0x47')](function(_0x3a27d2){logger[_0xa4f8('0x40')](_0xa4f8('0x48'),_0x12b1bc,JSON[_0xa4f8('0x42')](_0x3a27d2));});})['then'](function(){_0x24be3f[_0xa4f8('0x1a')]();});});}else{return rpc[this[_0xa4f8('0xf')]+_0xa4f8('0x2c')]['create'](_0x2c6bb9)[_0xa4f8('0x3f')](function(_0x4afe9b){logger['info'](_0xa4f8('0x16'),_0x12b1bc,_0x2c6bb9['body']);})[_0xa4f8('0x47')](function(_0x29bfc8){logger['error'](_0xa4f8('0x16'),_0x12b1bc,JSON[_0xa4f8('0x42')](_0x29bfc8));})[_0xa4f8('0x43')](function(){Promise[_0xa4f8('0x44')]()[_0xa4f8('0x3f')](function(){if(_0x1e7dfe[0x0]!=='2'||_0x236111['autoreplyExecuted'])return;return rpc[_0xf34a37+'Interaction']['update'](_0x236111['id'],{'autoreplyExecuted':!![]})[_0xa4f8('0x3f')](function(_0x9b3eed){logger['info']('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x12b1bc,JSON['stringify'](_0x9b3eed));})[_0xa4f8('0x47')](function(_0x16f5d3){logger[_0xa4f8('0x40')]('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x12b1bc,JSON[_0xa4f8('0x42')](_0x16f5d3));});})[_0xa4f8('0x3f')](function(){_0x24be3f[_0xa4f8('0x1a')]();});});}}}catch(_0x453919){logger[_0xa4f8('0x40')]('[%s][AUTOREPLY]\x20%s',_0x12b1bc,JSON[_0xa4f8('0x42')](_0x453919));_0x24be3f[_0xa4f8('0x49')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4943=['[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!','interaction','[%s][CLOSE]\x20%s','stringify','error','stop','moment','../../../../config/logger','routing','../../rpc/chatInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','consequence','[%s][CLOSE]\x20reason\x20%s','format','YYYY-MM-DD\x20HH:mm:ss','system','channel','Interaction','update','info'];(function(_0x4eae73,_0x53be7d){var _0x56a0fc=function(_0x356038){while(--_0x356038){_0x4eae73['push'](_0x4eae73['shift']());}};_0x56a0fc(++_0x53be7d);}(_0x4943,0xa0));var _0x3494=function(_0x1ff831,_0xece60){_0x1ff831=_0x1ff831-0x0;var _0x2b7040=_0x4943[_0x1ff831];return _0x2b7040;};'use strict';var moment=require(_0x3494('0x0'));var logger=require(_0x3494('0x1'))(_0x3494('0x2'));var rpc={'chatInteraction':require(_0x3494('0x3')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'smsInteraction':require(_0x3494('0x4')),'mailInteraction':require('../../rpc/mailInteraction'),'faxInteraction':require(_0x3494('0x5')),'whatsappInteraction':require(_0x3494('0x6'))};exports[_0x3494('0x7')]=function(_0x1d52c5,_0x4dfb69,_0x4bce3b,_0x1a5ccf){return function(_0x3e61f6){try{logger['info'](_0x3494('0x8'),_0x1d52c5,_0x4dfb69[0x0]);var _0x30a387={'closed':0x1,'closedAt':moment()[_0x3494('0x9')](_0x3494('0xa')),'closeReason':_0x3494('0xb'),'disposition':_0x4dfb69[0x0]};if(rpc[_0x1a5ccf[_0x3494('0xc')]+_0x3494('0xd')]){rpc[_0x1a5ccf[_0x3494('0xc')]+_0x3494('0xd')][_0x3494('0xe')](_0x1a5ccf['interaction']['id'],_0x30a387)['then'](function(_0x576a53){logger[_0x3494('0xf')](_0x3494('0x10'),_0x1d52c5,_0x1a5ccf[_0x3494('0x11')]['id']);})['catch'](function(_0x542268){logger['error'](_0x3494('0x12'),_0x1d52c5,JSON[_0x3494('0x13')](_0x542268));})['finally'](function(){_0x3e61f6['stop']();});}}catch(_0x5b91d6){logger[_0x3494('0x14')](_0x3494('0x12'),_0x1d52c5,JSON[_0x3494('0x13')](_0x5b91d6));_0x3e61f6[_0x3494('0x15')]();}};};
\ No newline at end of file
+var _0xb647=['stop','moment','routing','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','../../rpc/whatsappInteraction','consequence','info','YYYY-MM-DD\x20HH:mm:ss','channel','Interaction','update','interaction','then','error','[%s][CLOSE]\x20%s','stringify','finally'];(function(_0x3f79b0,_0x26c934){var _0xb7416b=function(_0x5c3a9e){while(--_0x5c3a9e){_0x3f79b0['push'](_0x3f79b0['shift']());}};_0xb7416b(++_0x26c934);}(_0xb647,0x1b9));var _0x7b64=function(_0x1f974e,_0x5b6773){_0x1f974e=_0x1f974e-0x0;var _0x59a550=_0xb647[_0x1f974e];return _0x59a550;};'use strict';var moment=require(_0x7b64('0x0'));var logger=require('../../../../config/logger')(_0x7b64('0x1'));var rpc={'chatInteraction':require(_0x7b64('0x2')),'openchannelInteraction':require(_0x7b64('0x3')),'smsInteraction':require(_0x7b64('0x4')),'mailInteraction':require(_0x7b64('0x5')),'faxInteraction':require('../../rpc/faxInteraction'),'whatsappInteraction':require(_0x7b64('0x6'))};exports[_0x7b64('0x7')]=function(_0x13db3d,_0x55515f,_0x5b8dd5,_0x8fb8fb){return function(_0x49a223){try{logger[_0x7b64('0x8')]('[%s][CLOSE]\x20reason\x20%s',_0x13db3d,_0x55515f[0x0]);var _0x1d46bd={'closed':0x1,'closedAt':moment()['format'](_0x7b64('0x9')),'closeReason':'system','disposition':_0x55515f[0x0]};if(rpc[_0x8fb8fb[_0x7b64('0xa')]+'Interaction']){rpc[_0x8fb8fb[_0x7b64('0xa')]+_0x7b64('0xb')][_0x7b64('0xc')](_0x8fb8fb[_0x7b64('0xd')]['id'],_0x1d46bd)[_0x7b64('0xe')](function(_0x33fd08){logger[_0x7b64('0x8')]('[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!',_0x13db3d,_0x8fb8fb['interaction']['id']);})['catch'](function(_0x2c6855){logger[_0x7b64('0xf')](_0x7b64('0x10'),_0x13db3d,JSON[_0x7b64('0x11')](_0x2c6855));})[_0x7b64('0x12')](function(){_0x49a223[_0x7b64('0x13')]();});}}catch(_0x16f195){logger[_0x7b64('0xf')](_0x7b64('0x10'),_0x13db3d,JSON['stringify'](_0x16f195));_0x49a223[_0x7b64('0x13')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x31c2=['error','stringify','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','textRequest','message','dialogflow','result','speech','providerName','providerResponse','metadata','endConversation','lodash','moment','apiai-promise','md5','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../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','channel','sms','whatsapp','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','body','Message','create','then','info','catch'];(function(_0x50b8b3,_0x37732a){var _0x3bf336=function(_0x42a9f8){while(--_0x42a9f8){_0x50b8b3['push'](_0x50b8b3['shift']());}};_0x3bf336(++_0x37732a);}(_0x31c2,0x1e1));var _0x231c=function(_0x58a535,_0x588262){_0x58a535=_0x58a535-0x0;var _0x5224b8=_0x31c2[_0x58a535];return _0x5224b8;};'use strict';var _=require(_0x231c('0x0'));var moment=require(_0x231c('0x1'));var apiai=require(_0x231c('0x2'));var md5=require(_0x231c('0x3'));var utils=require(_0x231c('0x4'));var logger=require(_0x231c('0x5'))(_0x231c('0x6'));var rpc={'chatMessage':require(_0x231c('0x7')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x231c('0x8')),'faxMessage':require(_0x231c('0x9')),'whatsappMessage':require(_0x231c('0xa'))};exports[_0x231c('0xb')]=function(_0x48bfb2,_0x111bf9){return function(_0x49ff9e){try{if(!_[_0x231c('0xc')](this[_0x231c('0xd')][_0x231c('0xe')])){logger['info'](_0x231c('0xf'),_0x48bfb2,_0x231c('0x10'));return _0x49ff9e[_0x231c('0x11')]();}var _0x23841c={'ContactId':this[_0x231c('0x12')]['id'],'sentAt':moment()[_0x231c('0x13')](_0x231c('0x14')),'direction':'out'};if(this[_0x231c('0x15')]===_0x231c('0x16')||this['channel']===_0x231c('0x17')){_0x23841c[_0x231c('0x18')]=this[_0x231c('0xd')][_0x231c('0x18')];}var _0x284280=this[_0x231c('0x15')];if(_0x284280===_0x231c('0x19')){_0x23841c[_0x231c('0x1a')]=this[_0x231c('0x1b')]['id'];}else{_0x23841c[_[_0x231c('0x1c')](_0x284280)+_0x231c('0x1d')]=this[_0x231c('0x1b')]['id'];}_0x23841c[_[_0x231c('0x1c')](_0x284280)+_0x231c('0x1e')]=this[_0x231c('0xd')]['id'];if(this[_0x231c('0xd')][_0x231c('0x1f')]){var _0x192bac=_0x111bf9[0x2];if(!_[_0x231c('0x20')](_0x192bac)){_0x23841c[_0x231c('0x21')]=utils['getMustacheRender'](_0x192bac,this);return rpc[_0x284280+_0x231c('0x22')][_0x231c('0x23')](_0x23841c)[_0x231c('0x24')](function(_0xadea80){logger[_0x231c('0x25')](_0x231c('0xf'),_0x48bfb2,_0x23841c[_0x231c('0x21')]);})[_0x231c('0x26')](function(_0x2890e3){logger[_0x231c('0x27')]('[%s][DIALOGFLOW]\x20%s',_0x48bfb2,JSON[_0x231c('0x28')](_0x2890e3));})['finally'](function(){logger[_0x231c('0x25')]('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x48bfb2);_0x49ff9e[_0x231c('0x29')]();});}else{logger[_0x231c('0x25')](_0x231c('0x2a'),_0x48bfb2);_0x49ff9e[_0x231c('0x29')]();}}else{var _0x255671=this;var _0x309393=apiai(_0x111bf9[0x0],{'language':_0x111bf9[0x1]||'en'});return _0x309393[_0x231c('0x2b')](this[_0x231c('0x2c')]['body'],{'sessionId':md5(this[_0x231c('0xd')]['id'])})[_0x231c('0x24')](function(_0x4af49b){_0x255671[_0x231c('0x21')][_0x231c('0x2d')]=_0x4af49b;_0x23841c['body']=_0x4af49b[_0x231c('0x2e')]['fulfillment'][_0x231c('0x2f')];_0x23841c[_0x231c('0x30')]=_0x231c('0x2d');_0x23841c[_0x231c('0x31')]=JSON[_0x231c('0x28')](_0x4af49b);return rpc[_0x284280+_0x231c('0x22')][_0x231c('0x23')](_0x23841c)['then'](function(_0x33cc46){logger[_0x231c('0x25')]('[%s][DIALOGFLOW]\x20%s',_0x48bfb2,_0x23841c[_0x231c('0x21')]);if(_0x4af49b[_0x231c('0x2e')][_0x231c('0x32')][_0x231c('0x33')]){_0x49ff9e[_0x231c('0x11')]();}else{_0x49ff9e[_0x231c('0x29')]();}})[_0x231c('0x26')](function(_0x4dfaa3){logger[_0x231c('0x27')](_0x231c('0xf'),_0x48bfb2,JSON['stringify'](_0x4dfaa3));_0x49ff9e['next']();});})['catch'](function(_0x9f459){logger['error'](_0x231c('0xf'),_0x48bfb2,_0x9f459['message']);_0x49ff9e[_0x231c('0x11')]();});}}catch(_0x35a956){logger[_0x231c('0x27')](_0x231c('0xf'),_0x48bfb2,JSON['stringify'](_0x35a956));_0x49ff9e[_0x231c('0x29')]();}};};
\ No newline at end of file
+var _0x3c6c=['create','then','catch','error','[%s][DIALOGFLOW]\x20%s','stringify','finally','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','textRequest','dialogflow','result','fulfillment','speech','providerName','providerResponse','metadata','endConversation','lodash','apiai-promise','md5','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','consequence','UserId','info','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','YYYY-MM-DD\x20HH:mm:ss','out','channel','whatsapp','phone','interaction','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','body','getMustacheRender','Message'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x3c6c,0x7b));var _0xc3c6=function(_0x17c14a,_0x4a6402){_0x17c14a=_0x17c14a-0x0;var _0x270c4c=_0x3c6c[_0x17c14a];return _0x270c4c;};'use strict';var _=require(_0xc3c6('0x0'));var moment=require('moment');var apiai=require(_0xc3c6('0x1'));var md5=require(_0xc3c6('0x2'));var utils=require(_0xc3c6('0x3'));var logger=require(_0xc3c6('0x4'))(_0xc3c6('0x5'));var rpc={'chatMessage':require(_0xc3c6('0x6')),'openchannelMessage':require(_0xc3c6('0x7')),'mailMessage':require(_0xc3c6('0x8')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xc3c6('0x9')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0xc3c6('0xa')]=function(_0x4d7ae6,_0x50cd05){return function(_0x4aed87){try{if(!_['isNil'](this['interaction'][_0xc3c6('0xb')])){logger[_0xc3c6('0xc')]('[%s][DIALOGFLOW]\x20%s',_0x4d7ae6,_0xc3c6('0xd'));return _0x4aed87[_0xc3c6('0xe')]();}var _0x44b9c9={'ContactId':this[_0xc3c6('0xf')]['id'],'sentAt':moment()['format'](_0xc3c6('0x10')),'direction':_0xc3c6('0x11')};if(this[_0xc3c6('0x12')]==='sms'||this['channel']===_0xc3c6('0x13')){_0x44b9c9[_0xc3c6('0x14')]=this[_0xc3c6('0x15')][_0xc3c6('0x14')];}var _0x406fea=this[_0xc3c6('0x12')];if(_0x406fea===_0xc3c6('0x16')){_0x44b9c9[_0xc3c6('0x17')]=this[_0xc3c6('0x18')]['id'];}else{_0x44b9c9[_[_0xc3c6('0x19')](_0x406fea)+_0xc3c6('0x1a')]=this[_0xc3c6('0x18')]['id'];}_0x44b9c9[_[_0xc3c6('0x19')](_0x406fea)+_0xc3c6('0x1b')]=this[_0xc3c6('0x15')]['id'];if(this[_0xc3c6('0x15')][_0xc3c6('0x1c')]){var _0x181b3b=_0x50cd05[0x2];if(!_[_0xc3c6('0x1d')](_0x181b3b)){_0x44b9c9[_0xc3c6('0x1e')]=utils[_0xc3c6('0x1f')](_0x181b3b,this);return rpc[_0x406fea+_0xc3c6('0x20')][_0xc3c6('0x21')](_0x44b9c9)[_0xc3c6('0x22')](function(_0x3003e1){logger[_0xc3c6('0xc')]('[%s][DIALOGFLOW]\x20%s',_0x4d7ae6,_0x44b9c9[_0xc3c6('0x1e')]);})[_0xc3c6('0x23')](function(_0x2150e0){logger[_0xc3c6('0x24')](_0xc3c6('0x25'),_0x4d7ae6,JSON[_0xc3c6('0x26')](_0x2150e0));})[_0xc3c6('0x27')](function(){logger[_0xc3c6('0xc')](_0xc3c6('0x28'),_0x4d7ae6);_0x4aed87[_0xc3c6('0x29')]();});}else{logger[_0xc3c6('0xc')](_0xc3c6('0x2a'),_0x4d7ae6);_0x4aed87[_0xc3c6('0x29')]();}}else{var _0x392d20=this;var _0x3d03b0=apiai(_0x50cd05[0x0],{'language':_0x50cd05[0x1]||'en'});return _0x3d03b0[_0xc3c6('0x2b')](this['message'][_0xc3c6('0x1e')],{'sessionId':md5(this[_0xc3c6('0x15')]['id'])})[_0xc3c6('0x22')](function(_0x565a86){_0x392d20[_0xc3c6('0x1e')][_0xc3c6('0x2c')]=_0x565a86;_0x44b9c9[_0xc3c6('0x1e')]=_0x565a86[_0xc3c6('0x2d')][_0xc3c6('0x2e')][_0xc3c6('0x2f')];_0x44b9c9[_0xc3c6('0x30')]='dialogflow';_0x44b9c9[_0xc3c6('0x31')]=JSON[_0xc3c6('0x26')](_0x565a86);return rpc[_0x406fea+'Message'][_0xc3c6('0x21')](_0x44b9c9)[_0xc3c6('0x22')](function(_0x1457f7){logger[_0xc3c6('0xc')](_0xc3c6('0x25'),_0x4d7ae6,_0x44b9c9[_0xc3c6('0x1e')]);if(_0x565a86[_0xc3c6('0x2d')][_0xc3c6('0x32')][_0xc3c6('0x33')]){_0x4aed87['next']();}else{_0x4aed87[_0xc3c6('0x29')]();}})[_0xc3c6('0x23')](function(_0x31975e){logger[_0xc3c6('0x24')]('[%s][DIALOGFLOW]\x20%s',_0x4d7ae6,JSON[_0xc3c6('0x26')](_0x31975e));_0x4aed87[_0xc3c6('0xe')]();});})[_0xc3c6('0x23')](function(_0x75066f){logger[_0xc3c6('0x24')](_0xc3c6('0x25'),_0x4d7ae6,_0x75066f['message']);_0x4aed87[_0xc3c6('0xe')]();});}}catch(_0x249bad){logger[_0xc3c6('0x24')](_0xc3c6('0x25'),_0x4d7ae6,JSON[_0xc3c6('0x26')](_0x249bad));_0x4aed87['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a33=['../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','body','Message','create','then','info','error','consequence','isNil','UserId','next','format','YYYY-MM-DD\x20HH:mm:ss','out','sms','channel','whatsapp','interaction','phone','chat','ChatWebsiteId','upperFirst','AccountId','account','InteractionId','created','isEmpty','getMustacheRender','[%s][DIALOGFLOWV2]\x20%s','catch','stringify','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','sessionPath','message','detectIntent','length','queryResult','diagnosticInfo','fields','boolValue','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','end_conversation','DIALOGFLOWV2_INTENTNAME','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','languageCode','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','providerName','dialogflowV2','providerResponse','push','fulfillmentText','all','dialogflow','md5','moment','bluebird','./utils'];(function(_0x154f9a,_0x3beba2){var _0x22d066=function(_0x1a936f){while(--_0x1a936f){_0x154f9a['push'](_0x154f9a['shift']());}};_0x22d066(++_0x3beba2);}(_0x4a33,0x199));var _0x34a3=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0x4a33[_0x13d07a];return _0x5ee0ee;};'use strict';var _=require('lodash');var dialogflow=require(_0x34a3('0x0'));var md5=require(_0x34a3('0x1'));var moment=require(_0x34a3('0x2'));var Promise=require(_0x34a3('0x3'));var logger=require('../../../../config/logger')('routing');var utils=require(_0x34a3('0x4'));var rpc={'chatMessage':require(_0x34a3('0x5')),'openchannelMessage':require(_0x34a3('0x6')),'mailMessage':require(_0x34a3('0x7')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x34a3('0x8')),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x1493b3,_0x5b59af,_0x2730e9,_0x3f1413){return new Promise(function(_0x3ee435,_0x2c37ee){var _0x466501=_['clone'](_0x2730e9);_0x466501[_0x34a3('0x9')]=_0x3f1413;return rpc[_0x5b59af+_0x34a3('0xa')][_0x34a3('0xb')](_0x466501)[_0x34a3('0xc')](function(){logger[_0x34a3('0xd')]('[%s][DIALOGFLOWV2]\x20%s',_0x1493b3,_0x466501[_0x34a3('0x9')]);_0x3ee435();})['catch'](function(_0x52eb4d){logger[_0x34a3('0xe')]('[%s][DIALOGFLOWV2]\x20%s',_0x1493b3,JSON['stringify'](_0x52eb4d));_0x2c37ee(_0x52eb4d);});});}exports[_0x34a3('0xf')]=function(_0x579591,_0x51d125){return function(_0x9c850f){try{if(!_[_0x34a3('0x10')](this['interaction'][_0x34a3('0x11')])){logger[_0x34a3('0xd')]('[%s][DIALOGFLOWV2]\x20%s',_0x579591,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x9c850f[_0x34a3('0x12')]();}var _0xc4438d={'ContactId':this['contact']['id'],'sentAt':moment()[_0x34a3('0x13')](_0x34a3('0x14')),'direction':_0x34a3('0x15')};if(this['channel']===_0x34a3('0x16')||this[_0x34a3('0x17')]===_0x34a3('0x18')){_0xc4438d['phone']=this[_0x34a3('0x19')][_0x34a3('0x1a')];}var _0x9dc3b=this[_0x34a3('0x17')];if(_0x9dc3b===_0x34a3('0x1b')){_0xc4438d[_0x34a3('0x1c')]=this['account']['id'];}else{_0xc4438d[_[_0x34a3('0x1d')](_0x9dc3b)+_0x34a3('0x1e')]=this[_0x34a3('0x1f')]['id'];}_0xc4438d[_['upperFirst'](_0x9dc3b)+_0x34a3('0x20')]=this[_0x34a3('0x19')]['id'];if(this['interaction'][_0x34a3('0x21')]){var _0x19f229=_0x51d125[0x4];if(!_[_0x34a3('0x22')](_0x19f229)){_0xc4438d[_0x34a3('0x9')]=utils[_0x34a3('0x23')](_0x19f229,this);return rpc[_0x9dc3b+_0x34a3('0xa')][_0x34a3('0xb')](_0xc4438d)['then'](function(_0x2789a7){logger['info'](_0x34a3('0x24'),_0x579591,_0xc4438d[_0x34a3('0x9')]);})[_0x34a3('0x25')](function(_0x33ab0f){logger['error'](_0x34a3('0x24'),_0x579591,JSON[_0x34a3('0x26')](_0x33ab0f));})['finally'](function(){logger[_0x34a3('0xd')](_0x34a3('0x27'),_0x579591);_0x9c850f['stop']();});}else{logger['info'](_0x34a3('0x28'),_0x579591);_0x9c850f['stop']();}}else{var _0xdd3cb9=this;var _0x3ea09a=_0x51d125[0x2]['replace'](/\\n/g,'\x0a');var _0x51c16c={'credentials':{'private_key':_0x3ea09a,'client_email':_0x51d125[0x1]}};var _0x4a2ac6=new dialogflow['SessionsClient'](_0x51c16c);var _0x5a0ac3=_0x4a2ac6[_0x34a3('0x29')](_0x51d125[0x0],md5(_0xdd3cb9[_0x34a3('0x19')]['id']));var _0x26575f={'session':_0x5a0ac3,'queryInput':{'text':{'text':_0xdd3cb9[_0x34a3('0x2a')][_0x34a3('0x9')],'languageCode':_0x51d125[0x3]||'en'}}};return _0x4a2ac6[_0x34a3('0x2b')](_0x26575f)['then'](function(_0x1fe53a){if(_0x1fe53a&&_0x1fe53a[_0x34a3('0x2c')]){_0xdd3cb9[_0x34a3('0x9')]['dialogflowV2']=_0x1fe53a;var _0x838d60=_0x1fe53a[0x0];var _0x2d9228=_0x838d60[_0x34a3('0x2d')][_0x34a3('0x2e')]&&_0x838d60[_0x34a3('0x2d')][_0x34a3('0x2e')][_0x34a3('0x2f')]?_0x838d60[_0x34a3('0x2d')][_0x34a3('0x2e')]['fields']['end_conversation'][_0x34a3('0x30')]:![];_0xdd3cb9['body'][_0x34a3('0x31')]=_0x838d60[_0x34a3('0x2d')][_0x34a3('0x32')];_0xdd3cb9[_0x34a3('0x9')][_0x34a3('0x33')]=_0x838d60['queryResult']['allRequiredParamsPresent'];_0xdd3cb9[_0x34a3('0x9')]['DIALOGFLOWV2_ENDCONVERSATION']=_0x838d60['queryResult'][_0x34a3('0x2e')]&&_0x838d60[_0x34a3('0x2d')][_0x34a3('0x2e')]['fields']?_0x838d60[_0x34a3('0x2d')][_0x34a3('0x2e')][_0x34a3('0x2f')][_0x34a3('0x34')][_0x34a3('0x30')]:![];_0xdd3cb9[_0x34a3('0x9')][_0x34a3('0x35')]=_0x838d60['queryResult'][_0x34a3('0x36')][_0x34a3('0x37')];_0xdd3cb9['body'][_0x34a3('0x38')]=_0x838d60['queryResult'][_0x34a3('0x36')]['displayName'];_0xdd3cb9['body'][_0x34a3('0x39')]=_0x838d60[_0x34a3('0x2d')][_0x34a3('0x36')][_0x34a3('0x3a')];_0xdd3cb9[_0x34a3('0x9')]['DIALOGFLOWV2_LANGUAGECODE']=_0x838d60[_0x34a3('0x2d')][_0x34a3('0x3b')];_0xdd3cb9[_0x34a3('0x9')][_0x34a3('0x3c')]=_0x838d60[_0x34a3('0x2d')][_0x34a3('0x3d')];_0xdd3cb9[_0x34a3('0x9')][_0x34a3('0x3e')]=_0x838d60[_0x34a3('0x2d')]['intentDetectionConfidence'];_0xc4438d[_0x34a3('0x3f')]=_0x34a3('0x40');_0xc4438d[_0x34a3('0x41')]=JSON[_0x34a3('0x26')](_0x1fe53a);var _0x3f8c1e=[];for(var _0x489428=0x0;_0x489428<_0x1fe53a['length'];_0x489428++){var _0x1125ff=_0x1fe53a[_0x489428];if(_0x1125ff&&_0x1125ff[_0x34a3('0x2d')]&&_0x1125ff[_0x34a3('0x2d')]['fulfillmentText']){_0x3f8c1e[_0x34a3('0x42')](createMessage(_0x579591,_0x9dc3b,_0xc4438d,_0x1125ff[_0x34a3('0x2d')][_0x34a3('0x43')]));}}return Promise[_0x34a3('0x44')](_0x3f8c1e)['then'](function(){if(_0x2d9228){_0x9c850f['next']();}else{_0x9c850f['stop']();}})['catch'](function(_0x4860af){logger['error'](_0x34a3('0x24'),_0x579591,JSON[_0x34a3('0x26')](_0x4860af));_0x9c850f[_0x34a3('0x12')]();});}})[_0x34a3('0x25')](function(_0x53ca4c){logger[_0x34a3('0xe')]('[%s][DIALOGFLOWV2]\x20%s',_0x579591,_0x53ca4c[_0x34a3('0x2a')]);_0x9c850f[_0x34a3('0x12')]();});}}catch(_0x470eb0){logger[_0x34a3('0xe')](_0x34a3('0x24'),_0x579591,JSON[_0x34a3('0x26')](_0x470eb0));_0x9c850f['stop']();}};};
\ No newline at end of file
+var _0xddf6=['channel','sms','whatsapp','phone','chat','ChatWebsiteId','account','upperFirst','InteractionId','created','isEmpty','getMustacheRender','Message','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','replace','SessionsClient','message','detectIntent','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','DIALOGFLOWV2_INTENTNAME','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_LANGUAGECODE','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerName','providerResponse','stringify','length','push','fulfillmentText','error','dialogflow','md5','moment','bluebird','../../../../config/logger','routing','../../rpc/mailMessage','../../rpc/faxMessage','clone','body','create','then','catch','[%s][DIALOGFLOWV2]\x20%s','consequence','isNil','interaction','UserId','info','next','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x2c0c84,_0x5ab679){var _0x313014=function(_0x1c5658){while(--_0x1c5658){_0x2c0c84['push'](_0x2c0c84['shift']());}};_0x313014(++_0x5ab679);}(_0xddf6,0xf7));var _0x6ddf=function(_0x5cf68a,_0x5c9763){_0x5cf68a=_0x5cf68a-0x0;var _0x26682e=_0xddf6[_0x5cf68a];return _0x26682e;};'use strict';var _=require('lodash');var dialogflow=require(_0x6ddf('0x0'));var md5=require(_0x6ddf('0x1'));var moment=require(_0x6ddf('0x2'));var Promise=require(_0x6ddf('0x3'));var logger=require(_0x6ddf('0x4'))(_0x6ddf('0x5'));var utils=require('./utils');var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x6ddf('0x6')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x6ddf('0x7')),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x2e4a6a,_0x38cfb6,_0x4d9469,_0x1636a0){return new Promise(function(_0x5efe0e,_0x49ab78){var _0x48ca78=_[_0x6ddf('0x8')](_0x4d9469);_0x48ca78[_0x6ddf('0x9')]=_0x1636a0;return rpc[_0x38cfb6+'Message'][_0x6ddf('0xa')](_0x48ca78)[_0x6ddf('0xb')](function(){logger['info']('[%s][DIALOGFLOWV2]\x20%s',_0x2e4a6a,_0x48ca78[_0x6ddf('0x9')]);_0x5efe0e();})[_0x6ddf('0xc')](function(_0x5c9d01){logger['error'](_0x6ddf('0xd'),_0x2e4a6a,JSON['stringify'](_0x5c9d01));_0x49ab78(_0x5c9d01);});});}exports[_0x6ddf('0xe')]=function(_0xb2ffc8,_0x461bdf){return function(_0x309a21){try{if(!_[_0x6ddf('0xf')](this[_0x6ddf('0x10')][_0x6ddf('0x11')])){logger[_0x6ddf('0x12')]('[%s][DIALOGFLOWV2]\x20%s',_0xb2ffc8,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x309a21[_0x6ddf('0x13')]();}var _0x3652e8={'ContactId':this['contact']['id'],'sentAt':moment()['format'](_0x6ddf('0x14')),'direction':'out'};if(this[_0x6ddf('0x15')]===_0x6ddf('0x16')||this['channel']===_0x6ddf('0x17')){_0x3652e8[_0x6ddf('0x18')]=this[_0x6ddf('0x10')][_0x6ddf('0x18')];}var _0x675c9f=this[_0x6ddf('0x15')];if(_0x675c9f===_0x6ddf('0x19')){_0x3652e8[_0x6ddf('0x1a')]=this[_0x6ddf('0x1b')]['id'];}else{_0x3652e8[_[_0x6ddf('0x1c')](_0x675c9f)+'AccountId']=this[_0x6ddf('0x1b')]['id'];}_0x3652e8[_[_0x6ddf('0x1c')](_0x675c9f)+_0x6ddf('0x1d')]=this['interaction']['id'];if(this['interaction'][_0x6ddf('0x1e')]){var _0x920ba4=_0x461bdf[0x4];if(!_[_0x6ddf('0x1f')](_0x920ba4)){_0x3652e8[_0x6ddf('0x9')]=utils[_0x6ddf('0x20')](_0x920ba4,this);return rpc[_0x675c9f+_0x6ddf('0x21')][_0x6ddf('0xa')](_0x3652e8)['then'](function(_0x478bd9){logger['info'](_0x6ddf('0xd'),_0xb2ffc8,_0x3652e8[_0x6ddf('0x9')]);})[_0x6ddf('0xc')](function(_0x412c4b){logger['error'](_0x6ddf('0xd'),_0xb2ffc8,JSON['stringify'](_0x412c4b));})[_0x6ddf('0x22')](function(){logger[_0x6ddf('0x12')](_0x6ddf('0x23'),_0xb2ffc8);_0x309a21['stop']();});}else{logger[_0x6ddf('0x12')]('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0xb2ffc8);_0x309a21[_0x6ddf('0x24')]();}}else{var _0x48146a=this;var _0x3064b7=_0x461bdf[0x2][_0x6ddf('0x25')](/\\n/g,'\x0a');var _0x1fc093={'credentials':{'private_key':_0x3064b7,'client_email':_0x461bdf[0x1]}};var _0x33e110=new dialogflow[(_0x6ddf('0x26'))](_0x1fc093);var _0x42da2f=_0x33e110['sessionPath'](_0x461bdf[0x0],md5(_0x48146a[_0x6ddf('0x10')]['id']));var _0x54cefe={'session':_0x42da2f,'queryInput':{'text':{'text':_0x48146a[_0x6ddf('0x27')][_0x6ddf('0x9')],'languageCode':_0x461bdf[0x3]||'en'}}};return _0x33e110[_0x6ddf('0x28')](_0x54cefe)[_0x6ddf('0xb')](function(_0x1c0059){if(_0x1c0059&&_0x1c0059['length']){_0x48146a[_0x6ddf('0x9')][_0x6ddf('0x29')]=_0x1c0059;var _0x1922e9=_0x1c0059[0x0];var _0x10097e=_0x1922e9[_0x6ddf('0x2a')][_0x6ddf('0x2b')]&&_0x1922e9[_0x6ddf('0x2a')][_0x6ddf('0x2b')][_0x6ddf('0x2c')]?_0x1922e9['queryResult']['diagnosticInfo']['fields'][_0x6ddf('0x2d')][_0x6ddf('0x2e')]:![];_0x48146a[_0x6ddf('0x9')][_0x6ddf('0x2f')]=_0x1922e9['queryResult']['action'];_0x48146a[_0x6ddf('0x9')]['DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT']=_0x1922e9[_0x6ddf('0x2a')][_0x6ddf('0x30')];_0x48146a[_0x6ddf('0x9')][_0x6ddf('0x31')]=_0x1922e9['queryResult'][_0x6ddf('0x2b')]&&_0x1922e9[_0x6ddf('0x2a')]['diagnosticInfo'][_0x6ddf('0x2c')]?_0x1922e9['queryResult']['diagnosticInfo'][_0x6ddf('0x2c')][_0x6ddf('0x2d')][_0x6ddf('0x2e')]:![];_0x48146a[_0x6ddf('0x9')][_0x6ddf('0x32')]=_0x1922e9[_0x6ddf('0x2a')][_0x6ddf('0x33')][_0x6ddf('0x34')];_0x48146a[_0x6ddf('0x9')][_0x6ddf('0x35')]=_0x1922e9[_0x6ddf('0x2a')][_0x6ddf('0x33')][_0x6ddf('0x36')];_0x48146a['body']['DIALOGFLOWV2_ISFALLBACKINTENT']=_0x1922e9['queryResult'][_0x6ddf('0x33')]['isFallback'];_0x48146a[_0x6ddf('0x9')][_0x6ddf('0x37')]=_0x1922e9[_0x6ddf('0x2a')]['languageCode'];_0x48146a[_0x6ddf('0x9')][_0x6ddf('0x38')]=_0x1922e9['queryResult'][_0x6ddf('0x39')];_0x48146a[_0x6ddf('0x9')][_0x6ddf('0x3a')]=_0x1922e9[_0x6ddf('0x2a')][_0x6ddf('0x3b')];_0x3652e8[_0x6ddf('0x3c')]=_0x6ddf('0x29');_0x3652e8[_0x6ddf('0x3d')]=JSON[_0x6ddf('0x3e')](_0x1c0059);var _0x5c96c4=[];for(var _0x46d8e2=0x0;_0x46d8e2<_0x1c0059[_0x6ddf('0x3f')];_0x46d8e2++){var _0x1c85b5=_0x1c0059[_0x46d8e2];if(_0x1c85b5&&_0x1c85b5[_0x6ddf('0x2a')]&&_0x1c85b5[_0x6ddf('0x2a')]['fulfillmentText']){_0x5c96c4[_0x6ddf('0x40')](createMessage(_0xb2ffc8,_0x675c9f,_0x3652e8,_0x1c85b5[_0x6ddf('0x2a')][_0x6ddf('0x41')]));}}return Promise['all'](_0x5c96c4)[_0x6ddf('0xb')](function(){if(_0x10097e){_0x309a21[_0x6ddf('0x13')]();}else{_0x309a21[_0x6ddf('0x24')]();}})[_0x6ddf('0xc')](function(_0x27bf56){logger[_0x6ddf('0x42')](_0x6ddf('0xd'),_0xb2ffc8,JSON['stringify'](_0x27bf56));_0x309a21[_0x6ddf('0x13')]();});}})[_0x6ddf('0xc')](function(_0x15493e){logger['error'](_0x6ddf('0xd'),_0xb2ffc8,_0x15493e[_0x6ddf('0x27')]);_0x309a21[_0x6ddf('0x13')]();});}}catch(_0x20df4d){logger['error']('[%s][DIALOGFLOWV2]\x20%s',_0xb2ffc8,JSON[_0x6ddf('0x3e')](_0x20df4d));_0x309a21[_0x6ddf('0x24')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc0a6=['[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s','findIndex','rules','info','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','next','[%s][GOTOIF]\x20eval\x20error:\x20%s','stringify','validate','html-to-text','./utils','../../../../config/logger','routing','string','condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required','priority\x20true\x20is\x20a\x20number','priority\x20false\x20is\x20a\x20number','consequence','fromString','getMustacheRender','replace','length','error','[%s][GOTOIF]\x20%s','map','message','join','stop'];(function(_0x48e1e3,_0x5f1c44){var _0x5ba5ad=function(_0x2164cd){while(--_0x2164cd){_0x48e1e3['push'](_0x48e1e3['shift']());}};_0x5ba5ad(++_0x5f1c44);}(_0xc0a6,0x94));var _0x6c0a=function(_0x4b4516,_0x3ca709){_0x4b4516=_0x4b4516-0x0;var _0x3e6954=_0xc0a6[_0x4b4516];return _0x3e6954;};'use strict';var schema=require(_0x6c0a('0x0'));var _=require('lodash');var htmlToText=require(_0x6c0a('0x1'));var utils=require(_0x6c0a('0x2'));var logger=require(_0x6c0a('0x3'))(_0x6c0a('0x4'));var gotoif=schema({'condition':{'type':_0x6c0a('0x5'),'required':!![],'message':_0x6c0a('0x6')},'priorityTrue':{'type':'number','message':_0x6c0a('0x7')},'priorityFalse':{'type':'number','message':_0x6c0a('0x8')}});exports[_0x6c0a('0x9')]=function(_0x38a429,_0x3032e7){return function(_0x3fa3a7){try{var _0x434c7f={'condition':htmlToText[_0x6c0a('0xa')](utils[_0x6c0a('0xb')](_0x3032e7[0x0],this),{'wordwrap':![]})[_0x6c0a('0xc')](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x3032e7[0x1],'priorityFalse':_0x3032e7[0x2]};var _0x14249b=gotoif[_0x6c0a('0x0')](_0x434c7f,{'typecast':!![]});if(_0x14249b[_0x6c0a('0xd')]){logger[_0x6c0a('0xe')](_0x6c0a('0xf'),_0x38a429,_[_0x6c0a('0x10')](_0x14249b,_0x6c0a('0x11'))[_0x6c0a('0x12')](',\x20'));_0x3fa3a7[_0x6c0a('0x13')]();}else{try{var _0xcb4ca=eval('('+_0x434c7f['condition']+')');var _0x3ee1ad=_0xcb4ca?_0x434c7f['priorityTrue']:_0x434c7f['priorityFalse'];logger['info'](_0x6c0a('0x14'),_0x38a429,_0x434c7f['condition'],_0xcb4ca,_0x3ee1ad||'next');if(_0x3ee1ad){var _0x4bb6dd=_[_0x6c0a('0x15')](_0x3fa3a7[_0x6c0a('0x16')](),{'p':_0x3ee1ad});if(_0x4bb6dd>=0x0){logger[_0x6c0a('0x17')](_0x6c0a('0x18'),_0x38a429,_0x3ee1ad||_0x6c0a('0x19'),_0x4bb6dd);_0x3fa3a7[_0x6c0a('0x19')](_0x4bb6dd);}else{logger[_0x6c0a('0x17')]('[%s][GOTOIF]\x20priority\x20%s\x20not\x20found',_0x38a429,_0x3ee1ad||_0x6c0a('0x19'));_0x3fa3a7[_0x6c0a('0x13')]();}}else{_0x3fa3a7['next']();}}catch(_0x56b751){logger[_0x6c0a('0xe')](_0x6c0a('0x1a'),_0x38a429,_0x56b751[_0x6c0a('0x11')]);_0x3fa3a7['stop']();}}}catch(_0x3002c4){logger[_0x6c0a('0xe')]('[%s][GOTOIF]\x20%s',_0x38a429,JSON[_0x6c0a('0x1b')](_0x3002c4));_0x3fa3a7[_0x6c0a('0x13')]();}};};
\ No newline at end of file
+var _0x3159=['string','condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','priority\x20false\x20is\x20a\x20number','consequence','fromString','replace','validate','length','error','[%s][GOTOIF]\x20%s','map','message','join','stop','condition','priorityTrue','priorityFalse','info','[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s','next','findIndex','rules','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','[%s][GOTOIF]\x20priority\x20%s\x20not\x20found','[%s][GOTOIF]\x20eval\x20error:\x20%s','stringify','lodash','./utils','routing'];(function(_0x59dd83,_0x573f1b){var _0x5dd0de=function(_0x1c805d){while(--_0x1c805d){_0x59dd83['push'](_0x59dd83['shift']());}};_0x5dd0de(++_0x573f1b);}(_0x3159,0x75));var _0x9315=function(_0x17c63d,_0x5600b5){_0x17c63d=_0x17c63d-0x0;var _0x233fe0=_0x3159[_0x17c63d];return _0x233fe0;};'use strict';var schema=require('validate');var _=require(_0x9315('0x0'));var htmlToText=require('html-to-text');var utils=require(_0x9315('0x1'));var logger=require('../../../../config/logger')(_0x9315('0x2'));var gotoif=schema({'condition':{'type':_0x9315('0x3'),'required':!![],'message':_0x9315('0x4')},'priorityTrue':{'type':_0x9315('0x5'),'message':'priority\x20true\x20is\x20a\x20number'},'priorityFalse':{'type':_0x9315('0x5'),'message':_0x9315('0x6')}});exports[_0x9315('0x7')]=function(_0x400aff,_0x1b6ba6){return function(_0x4f9b43){try{var _0x5c9569={'condition':htmlToText[_0x9315('0x8')](utils['getMustacheRender'](_0x1b6ba6[0x0],this),{'wordwrap':![]})[_0x9315('0x9')](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x1b6ba6[0x1],'priorityFalse':_0x1b6ba6[0x2]};var _0x20bbcd=gotoif[_0x9315('0xa')](_0x5c9569,{'typecast':!![]});if(_0x20bbcd[_0x9315('0xb')]){logger[_0x9315('0xc')](_0x9315('0xd'),_0x400aff,_[_0x9315('0xe')](_0x20bbcd,_0x9315('0xf'))[_0x9315('0x10')](',\x20'));_0x4f9b43[_0x9315('0x11')]();}else{try{var _0x37931b=eval('('+_0x5c9569[_0x9315('0x12')]+')');var _0x33a6c8=_0x37931b?_0x5c9569[_0x9315('0x13')]:_0x5c9569[_0x9315('0x14')];logger[_0x9315('0x15')](_0x9315('0x16'),_0x400aff,_0x5c9569[_0x9315('0x12')],_0x37931b,_0x33a6c8||_0x9315('0x17'));if(_0x33a6c8){var _0x2d18bd=_[_0x9315('0x18')](_0x4f9b43[_0x9315('0x19')](),{'p':_0x33a6c8});if(_0x2d18bd>=0x0){logger[_0x9315('0x15')](_0x9315('0x1a'),_0x400aff,_0x33a6c8||_0x9315('0x17'),_0x2d18bd);_0x4f9b43[_0x9315('0x17')](_0x2d18bd);}else{logger['info'](_0x9315('0x1b'),_0x400aff,_0x33a6c8||_0x9315('0x17'));_0x4f9b43[_0x9315('0x11')]();}}else{_0x4f9b43[_0x9315('0x17')]();}}catch(_0x340705){logger['error'](_0x9315('0x1c'),_0x400aff,_0x340705['message']);_0x4f9b43[_0x9315('0x11')]();}}}catch(_0x3dbbf4){logger[_0x9315('0xc')]('[%s][GOTOIF]\x20%s',_0x400aff,JSON[_0x9315('0x1d')](_0x3dbbf4));_0x4f9b43[_0x9315('0x11')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ab3=['error','[%s][GOTOP]\x20%s','lodash','../../../../config/logger','routing','number','priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required','consequence','validate','length','map','message','stop','info','priority','findIndex','rules','[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','next'];(function(_0xfa7658,_0x375455){var _0x32175e=function(_0x2afa7d){while(--_0x2afa7d){_0xfa7658['push'](_0xfa7658['shift']());}};_0x32175e(++_0x375455);}(_0x5ab3,0x191));var _0x35ab=function(_0x36eb5e,_0x5eb46e){_0x36eb5e=_0x36eb5e-0x0;var _0x2aa29e=_0x5ab3[_0x36eb5e];return _0x2aa29e;};'use strict';var schema=require('validate');var _=require(_0x35ab('0x0'));var logger=require(_0x35ab('0x1'))(_0x35ab('0x2'));var gotop=schema({'priority':{'type':_0x35ab('0x3'),'required':!![],'message':_0x35ab('0x4')}});exports[_0x35ab('0x5')]=function(_0xcb232d,_0x5ef795){return function(_0x5abd5e){try{var _0x376676={'priority':_0x5ef795[0x0]};var _0x33a6c4=gotop[_0x35ab('0x6')](_0x376676,{'typecast':!![]});if(_0x33a6c4[_0x35ab('0x7')]){logger['error']('[%s][GOTOP]\x20%s',_0xcb232d,_[_0x35ab('0x8')](_0x33a6c4,_0x35ab('0x9'))['join'](',\x20'));_0x5abd5e[_0x35ab('0xa')]();}else{logger[_0x35ab('0xb')]('[%s][GOTOP]\x20priority\x20%s',_0xcb232d,_0x376676[_0x35ab('0xc')]);if(_0x376676[_0x35ab('0xc')]){var _0x2d3900=_[_0x35ab('0xd')](_0x5abd5e[_0x35ab('0xe')](),{'p':_0x376676[_0x35ab('0xc')]});if(_0x2d3900>=0x0){logger['info'](_0x35ab('0xf'),_0xcb232d,_0x376676['priority']||_0x35ab('0x10'),_0x2d3900);_0x5abd5e[_0x35ab('0x10')](_0x2d3900);}else{logger[_0x35ab('0xb')]('[%s][GOTOP]\x20priority\x20%s\x20not\x20found',_0xcb232d,_0x376676[_0x35ab('0xc')]||_0x35ab('0x10'));_0x5abd5e[_0x35ab('0xa')]();}}else{_0x5abd5e[_0x35ab('0x10')]();}}}catch(_0x39d74d){logger[_0x35ab('0x11')](_0x35ab('0x12'),_0xcb232d,JSON['stringify'](_0x39d74d));_0x5abd5e[_0x35ab('0xa')]();}};};
\ No newline at end of file
+var _0x9d66=['info','[%s][GOTOP]\x20priority\x20%s','rules','[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','priority','next','[%s][GOTOP]\x20priority\x20%s\x20not\x20found','stop','stringify','lodash','../../../../config/logger','number','consequence','validate','length','error','[%s][GOTOP]\x20%s','map','join'];(function(_0x484c03,_0x13c1d2){var _0x294127=function(_0x45a834){while(--_0x45a834){_0x484c03['push'](_0x484c03['shift']());}};_0x294127(++_0x13c1d2);}(_0x9d66,0x7b));var _0x69d6=function(_0x26340,_0x3d0c98){_0x26340=_0x26340-0x0;var _0x1fbdb5=_0x9d66[_0x26340];return _0x1fbdb5;};'use strict';var schema=require('validate');var _=require(_0x69d6('0x0'));var logger=require(_0x69d6('0x1'))('routing');var gotop=schema({'priority':{'type':_0x69d6('0x2'),'required':!![],'message':'priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required'}});exports[_0x69d6('0x3')]=function(_0x18fd33,_0x27021d){return function(_0x5e840d){try{var _0x63b1b1={'priority':_0x27021d[0x0]};var _0x418167=gotop[_0x69d6('0x4')](_0x63b1b1,{'typecast':!![]});if(_0x418167[_0x69d6('0x5')]){logger[_0x69d6('0x6')](_0x69d6('0x7'),_0x18fd33,_[_0x69d6('0x8')](_0x418167,'message')[_0x69d6('0x9')](',\x20'));_0x5e840d['stop']();}else{logger[_0x69d6('0xa')](_0x69d6('0xb'),_0x18fd33,_0x63b1b1['priority']);if(_0x63b1b1['priority']){var _0x396094=_['findIndex'](_0x5e840d[_0x69d6('0xc')](),{'p':_0x63b1b1['priority']});if(_0x396094>=0x0){logger[_0x69d6('0xa')](_0x69d6('0xd'),_0x18fd33,_0x63b1b1[_0x69d6('0xe')]||_0x69d6('0xf'),_0x396094);_0x5e840d[_0x69d6('0xf')](_0x396094);}else{logger[_0x69d6('0xa')](_0x69d6('0x10'),_0x18fd33,_0x63b1b1[_0x69d6('0xe')]||_0x69d6('0xf'));_0x5e840d[_0x69d6('0x11')]();}}else{_0x5e840d['next']();}}}catch(_0xddf73f){logger[_0x69d6('0x6')](_0x69d6('0x7'),_0x18fd33,JSON[_0x69d6('0x12')](_0xddf73f));_0x5e840d[_0x69d6('0x11')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x845b=['../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','chat','ChatWebsiteId','account','upperFirst','channel','AccountId','InteractionId','Message','create','then','info','[%s][MESSAGE]\x20%s','body','next','catch','error','stringify','stop','lodash','./utils','../../../../config/logger','routing','../../rpc/openchannelMessage'];(function(_0x587ab5,_0x3ad8eb){var _0x55b203=function(_0x45180a){while(--_0x45180a){_0x587ab5['push'](_0x587ab5['shift']());}};_0x55b203(++_0x3ad8eb);}(_0x845b,0x1ab));var _0xb845=function(_0x3167a8,_0x4d5006){_0x3167a8=_0x3167a8-0x0;var _0x20073f=_0x845b[_0x3167a8];return _0x20073f;};'use strict';var _=require(_0xb845('0x0'));var utils=require(_0xb845('0x1'));var logger=require(_0xb845('0x2'))(_0xb845('0x3'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0xb845('0x4')),'mailMessage':require(_0xb845('0x5')),'smsMessage':require(_0xb845('0x6')),'faxMessage':require(_0xb845('0x7')),'whatsappMessage':require(_0xb845('0x8'))};exports['consequence']=function(_0x3f18af,_0x595d4b){return function(_0x2529bf){try{var _0x277967={'body':utils['getMustacheRender'](_0x595d4b[0x0],this),'ContactId':this['contact']['id']};if(this['channel']===_0xb845('0x9')){_0x277967[_0xb845('0xa')]=this[_0xb845('0xb')]['id'];}else{_0x277967[_[_0xb845('0xc')](this[_0xb845('0xd')])+_0xb845('0xe')]=this['account']['id'];}_0x277967[_[_0xb845('0xc')](this[_0xb845('0xd')])+_0xb845('0xf')]=this['interaction']['id'];if(rpc[this[_0xb845('0xd')]+_0xb845('0x10')]){return rpc[this[_0xb845('0xd')]+_0xb845('0x10')][_0xb845('0x11')](_0x277967)[_0xb845('0x12')](function(_0x43449a){logger[_0xb845('0x13')](_0xb845('0x14'),_0x3f18af,_0x277967[_0xb845('0x15')]);_0x2529bf[_0xb845('0x16')]();})[_0xb845('0x17')](function(_0x11e17a){logger[_0xb845('0x18')]('[%s][MESSAGE]\x20%s',_0x3f18af,JSON[_0xb845('0x19')](_0x11e17a));_0x2529bf[_0xb845('0x1a')]();});}}catch(_0x238a21){logger[_0xb845('0x18')](_0xb845('0x14'),_0x3f18af,JSON[_0xb845('0x19')](_0x238a21));_0x2529bf['stop']();}};};
\ No newline at end of file
+var _0x9d11=['create','info','next','catch','error','[%s][MESSAGE]\x20%s','stringify','stop','lodash','./utils','../../../../config/logger','routing','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','getMustacheRender','contact','channel','chat','upperFirst','account','Message'];(function(_0x3cfacf,_0x4c5390){var _0x2c1a66=function(_0x2ab145){while(--_0x2ab145){_0x3cfacf['push'](_0x3cfacf['shift']());}};_0x2c1a66(++_0x4c5390);}(_0x9d11,0xb7));var _0x19d1=function(_0x602ca8,_0x568e82){_0x602ca8=_0x602ca8-0x0;var _0x26e8ab=_0x9d11[_0x602ca8];return _0x26e8ab;};'use strict';var _=require(_0x19d1('0x0'));var utils=require(_0x19d1('0x1'));var logger=require(_0x19d1('0x2'))(_0x19d1('0x3'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x19d1('0x4')),'mailMessage':require(_0x19d1('0x5')),'smsMessage':require(_0x19d1('0x6')),'faxMessage':require(_0x19d1('0x7')),'whatsappMessage':require(_0x19d1('0x8'))};exports[_0x19d1('0x9')]=function(_0x4dcf38,_0x2a1c16){return function(_0x396c3a){try{var _0x4b624c={'body':utils[_0x19d1('0xa')](_0x2a1c16[0x0],this),'ContactId':this[_0x19d1('0xb')]['id']};if(this[_0x19d1('0xc')]===_0x19d1('0xd')){_0x4b624c['ChatWebsiteId']=this['account']['id'];}else{_0x4b624c[_[_0x19d1('0xe')](this[_0x19d1('0xc')])+'AccountId']=this[_0x19d1('0xf')]['id'];}_0x4b624c[_[_0x19d1('0xe')](this[_0x19d1('0xc')])+'InteractionId']=this['interaction']['id'];if(rpc[this['channel']+_0x19d1('0x10')]){return rpc[this[_0x19d1('0xc')]+_0x19d1('0x10')][_0x19d1('0x11')](_0x4b624c)['then'](function(_0x4aed3e){logger[_0x19d1('0x12')]('[%s][MESSAGE]\x20%s',_0x4dcf38,_0x4b624c['body']);_0x396c3a[_0x19d1('0x13')]();})[_0x19d1('0x14')](function(_0x116b36){logger[_0x19d1('0x15')](_0x19d1('0x16'),_0x4dcf38,JSON[_0x19d1('0x17')](_0x116b36));_0x396c3a[_0x19d1('0x18')]();});}}catch(_0x578764){logger[_0x19d1('0x15')](_0x19d1('0x16'),_0x4dcf38,JSON[_0x19d1('0x17')](_0x578764));_0x396c3a['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd250=['info','getMustacheRender','error','[%s][NOOP]\x20%s','stop','consequence'];(function(_0x2c17aa,_0x34c6de){var _0x15e203=function(_0x5a717d){while(--_0x5a717d){_0x2c17aa['push'](_0x2c17aa['shift']());}};_0x15e203(++_0x34c6de);}(_0xd250,0x15b));var _0x0d25=function(_0x2d9535,_0x4bc592){_0x2d9535=_0x2d9535-0x0;var _0xb4e710=_0xd250[_0x2d9535];return _0xb4e710;};'use strict';var utils=require('./utils');var logger=require('../../../../config/logger')('routing');exports[_0x0d25('0x0')]=function(_0x2a297f,_0x214e08){return function(_0x2b0346){try{logger[_0x0d25('0x1')]('[%s][NOOP]\x20%s',_0x2a297f,utils[_0x0d25('0x2')](_0x214e08[0x0],this));_0x2b0346['next']();}catch(_0x55a757){logger[_0x0d25('0x3')](_0x0d25('0x4'),_0x2a297f,JSON['stringify'](_0x55a757));_0x2b0346[_0x0d25('0x5')]();}};};
\ No newline at end of file
+var _0x8161=['../../../../config/logger','consequence','[%s][NOOP]\x20%s','getMustacheRender','next','error','stringify','stop','./utils'];(function(_0x38132a,_0x2fc7e8){var _0x482b95=function(_0x4966d0){while(--_0x4966d0){_0x38132a['push'](_0x38132a['shift']());}};_0x482b95(++_0x2fc7e8);}(_0x8161,0x104));var _0x1816=function(_0x1848e1,_0x581900){_0x1848e1=_0x1848e1-0x0;var _0x20e3d5=_0x8161[_0x1848e1];return _0x20e3d5;};'use strict';var utils=require(_0x1816('0x0'));var logger=require(_0x1816('0x1'))('routing');exports[_0x1816('0x2')]=function(_0x48318e,_0x30de5a){return function(_0xd22a7b){try{logger['info'](_0x1816('0x3'),_0x48318e,utils[_0x1816('0x4')](_0x30de5a[0x0],this));_0xd22a7b[_0x1816('0x5')]();}catch(_0x1c28ea){logger[_0x1816('0x6')](_0x1816('0x3'),_0x48318e,JSON[_0x1816('0x7')](_0x1c28ea));_0xd22a7b[_0x1816('0x8')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33f8=['message','chat','AccountId','WebsiteId','info','[%s][START:QUEUE][NAME:%s]','name','catch','error','create\x20queue\x20report','[%s][STOP:QUEUE][NAME:%s]','QueueReport','update','update\x20queue\x20report','timeout','[%s][END:QUEUE][NAME:%s]','toLowerCase','length','[%s][QUEUE]\x20%s','map','join','stop','Queues','createQueue','atimeout','qtimeout','end','[%s][QUEUE]\x20ROUTING\x20STOPPED','close','rules','complete','next','strategy','rrmemory','beepall','[%s][QUEUE]\x20queue\x20not\x20found\x20%s','log','stack','validate','seq-queue','moment','../../../../config/environment','../../../../config/logger','routing','./strategy','redis','defaults','socket.io-emitter','queue_id','account','queue','from','emit','clone','format','%sQueuesWaitingInteractions','pick','%s:queue:%s','%s_queue_waiting_interaction:%s','save','remove','../../rpc/openchannelQueueReport','../../rpc/mailQueueReport','../../rpc/chatQueueReport','../../rpc/smsQueueReport','../../rpc/faxQueueReport','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','timeout\x20is\x20a\x20number','waiting','body','YYYY-MM-DD\x20HH:mm:ss','contact','list','upperFirst','channel','interaction','MessageId'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x33f8,0x1f4));var _0x833f=function(_0x43d9f2,_0x2dea81){_0x43d9f2=_0x43d9f2-0x0;var _0x3a999f=_0x33f8[_0x43d9f2];return _0x3a999f;};'use strict';var schema=require(_0x833f('0x0'));var _=require('lodash');var util=require('util');var seqqueue=require(_0x833f('0x1'));var moment=require(_0x833f('0x2'));var Redis=require('ioredis');var config=require(_0x833f('0x3'));var logger=require(_0x833f('0x4'))(_0x833f('0x5'));var strategy=require(_0x833f('0x6'));config[_0x833f('0x7')]=_[_0x833f('0x8')](config[_0x833f('0x7')],{'host':'localhost','port':0x18eb});var io=require(_0x833f('0x9'))(new Redis(config[_0x833f('0x7')]));var attributes=['id',_0x833f('0xa'),_0x833f('0xb'),_0x833f('0xc'),_0x833f('0xd'),'joinAt'];function emit(_0x2f6cea,_0x3cbaf1,_0x1c3a77){io['to'](_0x2f6cea)[_0x833f('0xe')](_0x3cbaf1,_0x1c3a77);}function emitChannelQueueInteraction(_0x843f8f,_0x4bbc47,_0x3210a1,_0x4a0c95,_0x3e7cdb,_0x5ba479,_0x1f0e8f,_0x3b9999){var _0x1154ee=_[_0x833f('0xf')](_0x3210a1);_0x1154ee[_0x833f('0xa')]=_0x3b9999;_0x1154ee[_0x833f('0xc')]=_0x4bbc47;_0x1154ee['account']=_0x4a0c95;_0x1154ee['id']=_0x3e7cdb;if(_0x5ba479){_0x1f0e8f[util[_0x833f('0x10')](_0x833f('0x11'),_0x843f8f)][_0x3e7cdb]=_[_0x833f('0x12')](_0x1154ee,attributes);}else{delete _0x1f0e8f[util[_0x833f('0x10')](_0x833f('0x11'),_0x843f8f)][_0x3e7cdb];}emit(util[_0x833f('0x10')](_0x833f('0x13'),_0x843f8f,_0x4bbc47),util[_0x833f('0x10')](_0x833f('0x14'),_0x843f8f,_0x5ba479?_0x833f('0x15'):_0x833f('0x16')),_[_0x833f('0x12')](_0x1154ee,attributes));}var rpc={'openchannelQueueReport':require(_0x833f('0x17')),'mailQueueReport':require(_0x833f('0x18')),'chatQueueReport':require(_0x833f('0x19')),'smsQueueReport':require(_0x833f('0x1a')),'faxQueueReport':require(_0x833f('0x1b')),'whatsappQueueReport':require('../../rpc/whatsappQueueReport')};var queue=schema({'name':{'type':'string','required':!![],'message':_0x833f('0x1c')},'timeout':{'type':'number','message':_0x833f('0x1d')}});function startRouting(_0x1c28e8,_0x436d81,_0x56b338,_0x465626){if(_0x1c28e8&&_0x436d81&&_0x56b338){_0x436d81[_0x833f('0x1e')]+=0x1;var _0x32abcb={'uniqueid':_0x1c28e8,'from':_0x56b338[_0x833f('0x1f')]?_0x56b338[_0x833f('0x1f')][_0x833f('0xd')]:'','joinAt':moment()[_0x833f('0x10')](_0x833f('0x20')),'ContactId':_0x56b338[_0x833f('0x21')]?_0x56b338[_0x833f('0x21')]['id']:null,'ListId':_0x56b338[_0x833f('0x22')]?_0x56b338[_0x833f('0x22')]['id']:null};_0x32abcb[_[_0x833f('0x23')](_0x56b338[_0x833f('0x24')])+'QueueId']=_0x436d81['id']||null;_0x32abcb[_[_0x833f('0x23')](_0x56b338[_0x833f('0x24')])+'InteractionId']=_0x56b338[_0x833f('0x25')]?_0x56b338['interaction']['id']:null;_0x32abcb[_['upperFirst'](_0x56b338[_0x833f('0x24')])+_0x833f('0x26')]=_0x56b338[_0x833f('0x27')]?_0x56b338[_0x833f('0x27')]['id']:null;_0x32abcb[_['upperFirst'](_0x56b338['channel'])+(_0x56b338[_0x833f('0x24')]!==_0x833f('0x28')?_0x833f('0x29'):_0x833f('0x2a'))]=_0x56b338['account']?_0x56b338[_0x833f('0xb')]['id']:null;logger[_0x833f('0x2b')](util[_0x833f('0x10')](_0x833f('0x2c'),_0x1c28e8,_0x436d81['name']));emitChannelQueueInteraction(_0x56b338[_0x833f('0x24')],_0x436d81[_0x833f('0x2d')],_0x32abcb,_0x56b338[_0x833f('0xb')]['name'],_0x56b338[_0x833f('0x27')]['id'],!![],_0x465626,_0x436d81['id']);if(rpc[_0x56b338[_0x833f('0x24')]+'QueueReport']){return rpc[_0x56b338[_0x833f('0x24')]+'QueueReport']['create'](_0x32abcb)[_0x833f('0x2e')](function(_0x1f68ed){logger[_0x833f('0x2f')](_0x833f('0x30'));});}}}function stopRouting(_0x19178a,_0x3a1c61,_0x35a99f,_0x151878){if(_0x19178a&&_0x3a1c61){_0x3a1c61[_0x833f('0x1e')]-=0x1;var _0x596e46={'leaveAt':moment()[_0x833f('0x10')]('YYYY-MM-DD\x20HH:mm:ss'),'acceptAt':moment()[_0x833f('0x10')](_0x833f('0x20')),'reason':'accepted'};logger['info'](util[_0x833f('0x10')](_0x833f('0x31'),_0x19178a,_0x3a1c61[_0x833f('0x2d')]));emitChannelQueueInteraction(_0x35a99f['channel'],_0x3a1c61['name'],_0x35a99f[_0x833f('0x1f')],_0x35a99f['account'][_0x833f('0x2d')],_0x35a99f[_0x833f('0x27')]['id'],![],_0x151878,_0x3a1c61['id']);if(rpc[_0x35a99f[_0x833f('0x24')]+_0x833f('0x32')]){return rpc[_0x35a99f[_0x833f('0x24')]+_0x833f('0x32')][_0x833f('0x33')](_0x19178a,_0x596e46)[_0x833f('0x2e')](function(_0x5f5855){logger['error'](_0x833f('0x34'));});}}}function endRouting(_0x1ede0f,_0xb10b03,_0x3b94b1,_0x17cabe){if(_0x1ede0f&&_0xb10b03){_0xb10b03[_0x833f('0x1e')]-=0x1;var _0x2651d9={'leaveAt':moment()[_0x833f('0x10')](_0x833f('0x20')),'exitAt':moment()[_0x833f('0x10')](_0x833f('0x20')),'reason':_0x833f('0x35')};logger[_0x833f('0x2b')](util[_0x833f('0x10')](_0x833f('0x36'),_0x1ede0f,_0xb10b03['name']));emitChannelQueueInteraction(_0x3b94b1[_0x833f('0x24')],_0xb10b03[_0x833f('0x2d')],_0x3b94b1[_0x833f('0x1f')],_0x3b94b1['account']['name'],_0x3b94b1[_0x833f('0x27')]['id'],![],_0x17cabe);if(rpc[_0x3b94b1['channel']+_0x833f('0x32')]){return rpc[_0x3b94b1['channel']+'QueueReport']['update'](_0x1ede0f,_0x2651d9)[_0x833f('0x2e')](function(_0x279007){logger[_0x833f('0x2f')]('update\x20queue\x20report');});}}}function handleFindQueue(_0x48aca9){return function(_0x3fb027){return _0x3fb027['name'][_0x833f('0x37')]()===_0x48aca9[_0x833f('0x37')]();};}exports['consequence']=function(_0x147152,_0x13f1c4,_0x1c3b83,_0x4ba2a4){return function(_0x4392c2){try{var _0x535d81={'name':_0x13f1c4[0x0],'timeout':_0x13f1c4[0x1]};var _0x59fcbd=queue['validate'](_0x535d81,{'typecast':!![]});if(_0x59fcbd[_0x833f('0x38')]){logger['error'](_0x833f('0x39'),_0x147152,_[_0x833f('0x3a')](_0x59fcbd,_0x833f('0x27'))[_0x833f('0x3b')](',\x20'));_0x4392c2[_0x833f('0x3c')]();}else{var _0x3943e2=_['find'](_0x1c3b83[_0x4ba2a4[_0x833f('0x24')]+_0x833f('0x3d')],handleFindQueue(_0x535d81[_0x833f('0x2d')]));if(_0x3943e2){startRouting(_0x147152,_0x3943e2,_0x4ba2a4,_0x1c3b83);var _0x432cda=(_0x3943e2[_0x833f('0x35')]||0xa)*0x3e8;var _0x2d209d=(_0x535d81[_0x833f('0x35')]||0x14)*0x3e8;var _0x39ba07,_0xc37401;if(_0x432cda>_0x2d209d){_0x2d209d=_0x432cda;}var _0x292144=seqqueue[_0x833f('0x3e')](_0x432cda);_0x292144['id']=_0x147152;_0x292144[_0x833f('0x3f')]=_0x432cda;_0x292144[_0x833f('0x40')]=_0x2d209d;_0x292144[_0x833f('0x24')]=_0x4ba2a4[_0x833f('0x24')];_0x1c3b83['rules'][_0x147152]['on'](_0x833f('0x41'),function(){logger[_0x833f('0x2b')](_0x833f('0x42'),_0x147152);stopRouting(_0x147152,_0x3943e2,_0x4ba2a4,_0x1c3b83);clearTimeout(_0x39ba07);_0x39ba07=undefined;_0x292144[_0x833f('0x43')](!![]);if(_0x1c3b83['rules'][_0x147152]){delete _0x1c3b83[_0x833f('0x44')][_0x147152];}_0x4392c2[_0x833f('0x3c')]();});_0x1c3b83['rules'][_0x147152]['on'](_0x833f('0x45'),function(){if(_0x1c3b83[_0x833f('0x44')][_0x147152]){delete _0x1c3b83[_0x833f('0x44')][_0x147152];}});_0x39ba07=setTimeout(function(){logger['info']('[%s][QUEUE]\x20APPLICATION\x20END',_0x147152);endRouting(_0x147152,_0x3943e2,_0x4ba2a4,_0x1c3b83);clearTimeout(_0x39ba07);_0x292144[_0x833f('0x43')](!![]);_0x4392c2[_0x833f('0x46')]();},_0x2d209d);switch(_0x3943e2[_0x833f('0x47')]){case _0x833f('0x48'):strategy[_0x833f('0x48')](_0x292144,_0x3943e2,_0x1c3b83,_0x4ba2a4);break;default:strategy[_0x833f('0x49')](_0x292144,_0x3943e2,_0x1c3b83,_0x4ba2a4);}}else{logger['error'](_0x833f('0x4a'),_0x147152,_0x535d81['name']);_0x4392c2[_0x833f('0x3c')]();}}}catch(_0x3a02fe){console[_0x833f('0x4b')](_0x3a02fe);logger[_0x833f('0x2f')](_0x833f('0x39'),_0x147152,_0x3a02fe[_0x833f('0x4c')]);_0x4392c2[_0x833f('0x3c')]();}};};
\ No newline at end of file
+var _0x3cde=['map','join','stop','Queues','createQueue','atimeout','qtimeout','rules','end','[%s][QUEUE]\x20ROUTING\x20STOPPED','[%s][QUEUE]\x20APPLICATION\x20END','close','next','strategy','rrmemory','beepall','[%s][QUEUE]\x20queue\x20not\x20found\x20%s','log','stack','validate','lodash','util','seq-queue','ioredis','../../../../config/environment','../../../../config/logger','routing','./strategy','redis','localhost','socket.io-emitter','queue_id','account','from','joinAt','emit','queue','format','%s_queue_waiting_interaction:%s','pick','../../rpc/openchannelQueueReport','../../rpc/mailQueueReport','../../rpc/chatQueueReport','../../rpc/smsQueueReport','../../rpc/whatsappQueueReport','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','waiting','body','contact','list','upperFirst','channel','interaction','MessageId','message','WebsiteId','[%s][START:QUEUE][NAME:%s]','name','QueueReport','create','catch','error','create\x20queue\x20report','YYYY-MM-DD\x20HH:mm:ss','accepted','info','[%s][STOP:QUEUE][NAME:%s]','update','timeout','[%s][END:QUEUE][NAME:%s]','toLowerCase','length','[%s][QUEUE]\x20%s'];(function(_0x895a85,_0x2de447){var _0x3c24ae=function(_0x31072e){while(--_0x31072e){_0x895a85['push'](_0x895a85['shift']());}};_0x3c24ae(++_0x2de447);}(_0x3cde,0x1d5));var _0xe3cd=function(_0x3b300c,_0x356a10){_0x3b300c=_0x3b300c-0x0;var _0x2f6b52=_0x3cde[_0x3b300c];return _0x2f6b52;};'use strict';var schema=require(_0xe3cd('0x0'));var _=require(_0xe3cd('0x1'));var util=require(_0xe3cd('0x2'));var seqqueue=require(_0xe3cd('0x3'));var moment=require('moment');var Redis=require(_0xe3cd('0x4'));var config=require(_0xe3cd('0x5'));var logger=require(_0xe3cd('0x6'))(_0xe3cd('0x7'));var strategy=require(_0xe3cd('0x8'));config[_0xe3cd('0x9')]=_['defaults'](config['redis'],{'host':_0xe3cd('0xa'),'port':0x18eb});var io=require(_0xe3cd('0xb'))(new Redis(config[_0xe3cd('0x9')]));var attributes=['id',_0xe3cd('0xc'),_0xe3cd('0xd'),'queue',_0xe3cd('0xe'),_0xe3cd('0xf')];function emit(_0x1df718,_0x1a5231,_0x115051){io['to'](_0x1df718)[_0xe3cd('0x10')](_0x1a5231,_0x115051);}function emitChannelQueueInteraction(_0x2ca24c,_0x5e053c,_0x326f79,_0x508c1c,_0x1a0600,_0x5b8bd4,_0xa2b772,_0x24348c){var _0x5b33ba=_['clone'](_0x326f79);_0x5b33ba['queue_id']=_0x24348c;_0x5b33ba[_0xe3cd('0x11')]=_0x5e053c;_0x5b33ba[_0xe3cd('0xd')]=_0x508c1c;_0x5b33ba['id']=_0x1a0600;if(_0x5b8bd4){_0xa2b772[util[_0xe3cd('0x12')]('%sQueuesWaitingInteractions',_0x2ca24c)][_0x1a0600]=_['pick'](_0x5b33ba,attributes);}else{delete _0xa2b772[util[_0xe3cd('0x12')]('%sQueuesWaitingInteractions',_0x2ca24c)][_0x1a0600];}emit(util[_0xe3cd('0x12')]('%s:queue:%s',_0x2ca24c,_0x5e053c),util['format'](_0xe3cd('0x13'),_0x2ca24c,_0x5b8bd4?'save':'remove'),_[_0xe3cd('0x14')](_0x5b33ba,attributes));}var rpc={'openchannelQueueReport':require(_0xe3cd('0x15')),'mailQueueReport':require(_0xe3cd('0x16')),'chatQueueReport':require(_0xe3cd('0x17')),'smsQueueReport':require(_0xe3cd('0x18')),'faxQueueReport':require('../../rpc/faxQueueReport'),'whatsappQueueReport':require(_0xe3cd('0x19'))};var queue=schema({'name':{'type':'string','required':!![],'message':_0xe3cd('0x1a')},'timeout':{'type':_0xe3cd('0x1b'),'message':_0xe3cd('0x1c')}});function startRouting(_0x5a8f5a,_0x236a98,_0x2549e9,_0x3da79e){if(_0x5a8f5a&&_0x236a98&&_0x2549e9){_0x236a98[_0xe3cd('0x1d')]+=0x1;var _0x312569={'uniqueid':_0x5a8f5a,'from':_0x2549e9[_0xe3cd('0x1e')]?_0x2549e9[_0xe3cd('0x1e')][_0xe3cd('0xe')]:'','joinAt':moment()[_0xe3cd('0x12')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x2549e9['contact']?_0x2549e9[_0xe3cd('0x1f')]['id']:null,'ListId':_0x2549e9[_0xe3cd('0x20')]?_0x2549e9[_0xe3cd('0x20')]['id']:null};_0x312569[_[_0xe3cd('0x21')](_0x2549e9[_0xe3cd('0x22')])+'QueueId']=_0x236a98['id']||null;_0x312569[_[_0xe3cd('0x21')](_0x2549e9[_0xe3cd('0x22')])+'InteractionId']=_0x2549e9[_0xe3cd('0x23')]?_0x2549e9['interaction']['id']:null;_0x312569[_[_0xe3cd('0x21')](_0x2549e9[_0xe3cd('0x22')])+_0xe3cd('0x24')]=_0x2549e9[_0xe3cd('0x25')]?_0x2549e9[_0xe3cd('0x25')]['id']:null;_0x312569[_[_0xe3cd('0x21')](_0x2549e9[_0xe3cd('0x22')])+(_0x2549e9[_0xe3cd('0x22')]!=='chat'?'AccountId':_0xe3cd('0x26'))]=_0x2549e9[_0xe3cd('0xd')]?_0x2549e9[_0xe3cd('0xd')]['id']:null;logger['info'](util[_0xe3cd('0x12')](_0xe3cd('0x27'),_0x5a8f5a,_0x236a98[_0xe3cd('0x28')]));emitChannelQueueInteraction(_0x2549e9[_0xe3cd('0x22')],_0x236a98['name'],_0x312569,_0x2549e9[_0xe3cd('0xd')]['name'],_0x2549e9[_0xe3cd('0x25')]['id'],!![],_0x3da79e,_0x236a98['id']);if(rpc[_0x2549e9[_0xe3cd('0x22')]+_0xe3cd('0x29')]){return rpc[_0x2549e9[_0xe3cd('0x22')]+_0xe3cd('0x29')][_0xe3cd('0x2a')](_0x312569)[_0xe3cd('0x2b')](function(_0x959e48){logger[_0xe3cd('0x2c')](_0xe3cd('0x2d'));});}}}function stopRouting(_0x12f668,_0x11b7d3,_0x294018,_0x59d585){if(_0x12f668&&_0x11b7d3){_0x11b7d3[_0xe3cd('0x1d')]-=0x1;var _0x2689e3={'leaveAt':moment()[_0xe3cd('0x12')]('YYYY-MM-DD\x20HH:mm:ss'),'acceptAt':moment()[_0xe3cd('0x12')](_0xe3cd('0x2e')),'reason':_0xe3cd('0x2f')};logger[_0xe3cd('0x30')](util[_0xe3cd('0x12')](_0xe3cd('0x31'),_0x12f668,_0x11b7d3[_0xe3cd('0x28')]));emitChannelQueueInteraction(_0x294018['channel'],_0x11b7d3[_0xe3cd('0x28')],_0x294018['body'],_0x294018['account']['name'],_0x294018[_0xe3cd('0x25')]['id'],![],_0x59d585,_0x11b7d3['id']);if(rpc[_0x294018['channel']+'QueueReport']){return rpc[_0x294018['channel']+_0xe3cd('0x29')][_0xe3cd('0x32')](_0x12f668,_0x2689e3)[_0xe3cd('0x2b')](function(_0x25f1b2){logger[_0xe3cd('0x2c')]('update\x20queue\x20report');});}}}function endRouting(_0x1bbc82,_0x16fc19,_0x40533b,_0x3e5a5c){if(_0x1bbc82&&_0x16fc19){_0x16fc19[_0xe3cd('0x1d')]-=0x1;var _0x181a60={'leaveAt':moment()[_0xe3cd('0x12')](_0xe3cd('0x2e')),'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'reason':_0xe3cd('0x33')};logger[_0xe3cd('0x30')](util[_0xe3cd('0x12')](_0xe3cd('0x34'),_0x1bbc82,_0x16fc19[_0xe3cd('0x28')]));emitChannelQueueInteraction(_0x40533b[_0xe3cd('0x22')],_0x16fc19[_0xe3cd('0x28')],_0x40533b[_0xe3cd('0x1e')],_0x40533b[_0xe3cd('0xd')][_0xe3cd('0x28')],_0x40533b[_0xe3cd('0x25')]['id'],![],_0x3e5a5c);if(rpc[_0x40533b[_0xe3cd('0x22')]+'QueueReport']){return rpc[_0x40533b['channel']+_0xe3cd('0x29')][_0xe3cd('0x32')](_0x1bbc82,_0x181a60)[_0xe3cd('0x2b')](function(_0x58fd08){logger['error']('update\x20queue\x20report');});}}}function handleFindQueue(_0xf58da2){return function(_0xee8880){return _0xee8880[_0xe3cd('0x28')][_0xe3cd('0x35')]()===_0xf58da2['toLowerCase']();};}exports['consequence']=function(_0x31f5a7,_0x174b7f,_0x41effd,_0x2ac044){return function(_0xa0bdbb){try{var _0x5e2a54={'name':_0x174b7f[0x0],'timeout':_0x174b7f[0x1]};var _0x5bf718=queue[_0xe3cd('0x0')](_0x5e2a54,{'typecast':!![]});if(_0x5bf718[_0xe3cd('0x36')]){logger[_0xe3cd('0x2c')](_0xe3cd('0x37'),_0x31f5a7,_[_0xe3cd('0x38')](_0x5bf718,_0xe3cd('0x25'))[_0xe3cd('0x39')](',\x20'));_0xa0bdbb[_0xe3cd('0x3a')]();}else{var _0xf14f41=_['find'](_0x41effd[_0x2ac044[_0xe3cd('0x22')]+_0xe3cd('0x3b')],handleFindQueue(_0x5e2a54[_0xe3cd('0x28')]));if(_0xf14f41){startRouting(_0x31f5a7,_0xf14f41,_0x2ac044,_0x41effd);var _0x1e78b6=(_0xf14f41['timeout']||0xa)*0x3e8;var _0x321e05=(_0x5e2a54[_0xe3cd('0x33')]||0x14)*0x3e8;var _0x27e418,_0x312521;if(_0x1e78b6>_0x321e05){_0x321e05=_0x1e78b6;}var _0x3061e4=seqqueue[_0xe3cd('0x3c')](_0x1e78b6);_0x3061e4['id']=_0x31f5a7;_0x3061e4[_0xe3cd('0x3d')]=_0x1e78b6;_0x3061e4[_0xe3cd('0x3e')]=_0x321e05;_0x3061e4[_0xe3cd('0x22')]=_0x2ac044[_0xe3cd('0x22')];_0x41effd[_0xe3cd('0x3f')][_0x31f5a7]['on'](_0xe3cd('0x40'),function(){logger[_0xe3cd('0x30')](_0xe3cd('0x41'),_0x31f5a7);stopRouting(_0x31f5a7,_0xf14f41,_0x2ac044,_0x41effd);clearTimeout(_0x27e418);_0x27e418=undefined;_0x3061e4['close'](!![]);if(_0x41effd['rules'][_0x31f5a7]){delete _0x41effd['rules'][_0x31f5a7];}_0xa0bdbb[_0xe3cd('0x3a')]();});_0x41effd['rules'][_0x31f5a7]['on']('complete',function(){if(_0x41effd[_0xe3cd('0x3f')][_0x31f5a7]){delete _0x41effd[_0xe3cd('0x3f')][_0x31f5a7];}});_0x27e418=setTimeout(function(){logger[_0xe3cd('0x30')](_0xe3cd('0x42'),_0x31f5a7);endRouting(_0x31f5a7,_0xf14f41,_0x2ac044,_0x41effd);clearTimeout(_0x27e418);_0x3061e4[_0xe3cd('0x43')](!![]);_0xa0bdbb[_0xe3cd('0x44')]();},_0x321e05);switch(_0xf14f41[_0xe3cd('0x45')]){case _0xe3cd('0x46'):strategy['rrmemory'](_0x3061e4,_0xf14f41,_0x41effd,_0x2ac044);break;default:strategy[_0xe3cd('0x47')](_0x3061e4,_0xf14f41,_0x41effd,_0x2ac044);}}else{logger['error'](_0xe3cd('0x48'),_0x31f5a7,_0x5e2a54[_0xe3cd('0x28')]);_0xa0bdbb[_0xe3cd('0x3a')]();}}}catch(_0x4f4bcb){console[_0xe3cd('0x49')](_0x4f4bcb);logger[_0xe3cd('0x2c')](_0xe3cd('0x37'),_0x31f5a7,_0x4f4bcb[_0xe3cd('0x4a')]);_0xa0bdbb['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0168=['../../../../../config/logger','routing','notificationId','squeue','realtime','push','handleRun','bind','handleTimeout','timeout','drained','prototype','handleDrained','info','[%s][AGENT]\x20try\x20with\x20%s','agent','isNil','agents','forcedOwnership','isAgentAvailable','busy','busyQueue','showNotification','writeLog','RINGING',':FORCED','[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available','[%s][AGENT]\x20timeout\x20with\x20%s','STOP','TIMEOUT','./util'];(function(_0x1bdbe6,_0x13cacc){var _0x4519d9=function(_0x58c911){while(--_0x58c911){_0x1bdbe6['push'](_0x1bdbe6['shift']());}};_0x4519d9(++_0x13cacc);}(_0x0168,0x1b1));var _0x8016=function(_0x181d26,_0x42cc7c){_0x181d26=_0x181d26-0x0;var _0x2ad3c5=_0x0168[_0x181d26];return _0x2ad3c5;};'use strict';var _=require('lodash');var uuid=require('uuid');var util=require(_0x8016('0x0'));var logger=require(_0x8016('0x1'))(_0x8016('0x2'));var Agent=function(_0x1cf054,_0x1b2d7b,_0x229f72,_0x5c9d51){this[_0x8016('0x3')]=uuid['v4']();this[_0x8016('0x4')]=_0x1cf054;this['agent']=_0x1b2d7b;this[_0x8016('0x5')]=_0x229f72;this[_0x8016('0x2')]=_0x5c9d51;this[_0x8016('0x4')][_0x8016('0x6')](this[_0x8016('0x7')][_0x8016('0x8')](this),this[_0x8016('0x9')]['bind'](this));this[_0x8016('0x4')]['on'](_0x8016('0xa'),this[_0x8016('0x9')]['bind'](this));this[_0x8016('0x4')]['on'](_0x8016('0xb'),this['handleDrained']['bind'](this));};Agent[_0x8016('0xc')][_0x8016('0x6')]=function(){this[_0x8016('0x4')][_0x8016('0x6')](this[_0x8016('0x7')][_0x8016('0x8')](this),this[_0x8016('0x9')][_0x8016('0x8')](this));};Agent[_0x8016('0xc')][_0x8016('0xd')]=function(){this[_0x8016('0x9')](!![]);};Agent[_0x8016('0xc')]['handleRun']=function(_0x4f2ac0){logger[_0x8016('0xe')](_0x8016('0xf'),this[_0x8016('0x4')]['id'],this[_0x8016('0x10')]['id']);if(_[_0x8016('0x11')](this[_0x8016('0x5')][_0x8016('0x12')][this['agent']['id']])){logger[_0x8016('0xe')]('[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x8016('0x4')]['id'],this[_0x8016('0x10')]['id']);setTimeout(this[_0x8016('0x6')]['bind'](this),0x3e8);}else{if(this[_0x8016('0x2')][_0x8016('0x13')]||util[_0x8016('0x14')](this[_0x8016('0x4')]['id'],this[_0x8016('0x5')]['agents'][this[_0x8016('0x10')]['id']],this[_0x8016('0x4')]['channel'],![])){this[_0x8016('0x5')][_0x8016('0x12')][this['agent']['id']][_0x8016('0x15')]=!![];this[_0x8016('0x5')][_0x8016('0x12')][this['agent']['id']][_0x8016('0x16')]=undefined;util[_0x8016('0x17')](this[_0x8016('0x3')],this[_0x8016('0x4')]['id'],this[_0x8016('0x5')][_0x8016('0x12')][this[_0x8016('0x10')]['id']],null,this[_0x8016('0x2')]);util[_0x8016('0x18')](this[_0x8016('0x4')]['id'],this[_0x8016('0x5')]['agents'][this[_0x8016('0x10')]['id']],_0x8016('0x19')+(this[_0x8016('0x2')][_0x8016('0x13')]?_0x8016('0x1a'):''));}else{logger[_0x8016('0xe')](_0x8016('0x1b'),this['squeue']['id'],this['agent']['id']);setTimeout(this[_0x8016('0x6')][_0x8016('0x8')](this),0x3e8);}}};Agent[_0x8016('0xc')][_0x8016('0x9')]=function(_0x57556f){if(_[_0x8016('0x11')](this[_0x8016('0x5')][_0x8016('0x12')][this[_0x8016('0x10')]['id']])){return logger[_0x8016('0xe')]('[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x8016('0x4')]['id'],this['agent']['id']);}else{logger[_0x8016('0xe')](_0x8016('0x1c'),this[_0x8016('0x4')]['id'],this[_0x8016('0x10')]['id']);util['hideNotification'](this['notificationId'],this[_0x8016('0x4')]['id'],this[_0x8016('0x5')][_0x8016('0x12')][this[_0x8016('0x10')]['id']],null,this[_0x8016('0x2')]);this['realtime'][_0x8016('0x12')][this[_0x8016('0x10')]['id']]['busy']=![];this[_0x8016('0x5')]['agents'][this[_0x8016('0x10')]['id']]['busyQueue']=undefined;util[_0x8016('0x18')](this[_0x8016('0x4')]['id'],this[_0x8016('0x5')][_0x8016('0x12')][this['agent']['id']],_0x57556f?_0x8016('0x1d'):_0x8016('0x1e'));}if(!_0x57556f){setTimeout(this[_0x8016('0x6')][_0x8016('0x8')](this),0x3e8);}};function agent(_0x2ed36b,_0x472dd7,_0xff6247,_0x44d8dc){return new Agent(_0x2ed36b,_0x472dd7,_0xff6247,_0x44d8dc);}module['exports']=agent;
\ No newline at end of file
+var _0x8029=['lodash','uuid','../../../../../config/logger','routing','notificationId','squeue','agent','push','handleRun','bind','handleTimeout','timeout','prototype','handleDrained','info','[%s][AGENT]\x20try\x20with\x20%s','isNil','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s','forcedOwnership','realtime','agents','channel','busy','busyQueue','showNotification','RINGING',':FORCED','[%s][AGENT]\x20timeout\x20with\x20%s','hideNotification','TIMEOUT','exports'];(function(_0x18e26b,_0x2d9bb8){var _0x50bb2c=function(_0x348676){while(--_0x348676){_0x18e26b['push'](_0x18e26b['shift']());}};_0x50bb2c(++_0x2d9bb8);}(_0x8029,0xf8));var _0x9802=function(_0x51304b,_0x44f551){_0x51304b=_0x51304b-0x0;var _0x4a0f87=_0x8029[_0x51304b];return _0x4a0f87;};'use strict';var _=require(_0x9802('0x0'));var uuid=require(_0x9802('0x1'));var util=require('./util');var logger=require(_0x9802('0x2'))(_0x9802('0x3'));var Agent=function(_0x3a9cfb,_0x33e627,_0x4def7c,_0x55ab08){this[_0x9802('0x4')]=uuid['v4']();this[_0x9802('0x5')]=_0x3a9cfb;this[_0x9802('0x6')]=_0x33e627;this['realtime']=_0x4def7c;this['routing']=_0x55ab08;this['squeue'][_0x9802('0x7')](this[_0x9802('0x8')][_0x9802('0x9')](this),this[_0x9802('0xa')]['bind'](this));this[_0x9802('0x5')]['on'](_0x9802('0xb'),this['handleTimeout'][_0x9802('0x9')](this));this[_0x9802('0x5')]['on']('drained',this['handleDrained']['bind'](this));};Agent[_0x9802('0xc')][_0x9802('0x7')]=function(){this[_0x9802('0x5')][_0x9802('0x7')](this['handleRun']['bind'](this),this[_0x9802('0xa')][_0x9802('0x9')](this));};Agent[_0x9802('0xc')][_0x9802('0xd')]=function(){this[_0x9802('0xa')](!![]);};Agent[_0x9802('0xc')][_0x9802('0x8')]=function(_0x302581){logger[_0x9802('0xe')](_0x9802('0xf'),this[_0x9802('0x5')]['id'],this[_0x9802('0x6')]['id']);if(_[_0x9802('0x10')](this['realtime']['agents'][this[_0x9802('0x6')]['id']])){logger[_0x9802('0xe')](_0x9802('0x11'),this['squeue']['id'],this[_0x9802('0x6')]['id']);setTimeout(this[_0x9802('0x7')][_0x9802('0x9')](this),0x3e8);}else{if(this[_0x9802('0x3')][_0x9802('0x12')]||util['isAgentAvailable'](this['squeue']['id'],this[_0x9802('0x13')][_0x9802('0x14')][this[_0x9802('0x6')]['id']],this[_0x9802('0x5')][_0x9802('0x15')],![])){this['realtime'][_0x9802('0x14')][this[_0x9802('0x6')]['id']][_0x9802('0x16')]=!![];this[_0x9802('0x13')][_0x9802('0x14')][this[_0x9802('0x6')]['id']][_0x9802('0x17')]=undefined;util[_0x9802('0x18')](this[_0x9802('0x4')],this[_0x9802('0x5')]['id'],this[_0x9802('0x13')]['agents'][this['agent']['id']],null,this[_0x9802('0x3')]);util['writeLog'](this[_0x9802('0x5')]['id'],this['realtime'][_0x9802('0x14')][this['agent']['id']],_0x9802('0x19')+(this[_0x9802('0x3')][_0x9802('0x12')]?_0x9802('0x1a'):''));}else{logger[_0x9802('0xe')]('[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available',this[_0x9802('0x5')]['id'],this[_0x9802('0x6')]['id']);setTimeout(this['push'][_0x9802('0x9')](this),0x3e8);}}};Agent['prototype']['handleTimeout']=function(_0x574790){if(_[_0x9802('0x10')](this[_0x9802('0x13')][_0x9802('0x14')][this['agent']['id']])){return logger['info'](_0x9802('0x11'),this['squeue']['id'],this[_0x9802('0x6')]['id']);}else{logger['info'](_0x9802('0x1b'),this[_0x9802('0x5')]['id'],this[_0x9802('0x6')]['id']);util[_0x9802('0x1c')](this[_0x9802('0x4')],this['squeue']['id'],this[_0x9802('0x13')][_0x9802('0x14')][this[_0x9802('0x6')]['id']],null,this[_0x9802('0x3')]);this[_0x9802('0x13')][_0x9802('0x14')][this[_0x9802('0x6')]['id']][_0x9802('0x16')]=![];this[_0x9802('0x13')]['agents'][this['agent']['id']][_0x9802('0x17')]=undefined;util['writeLog'](this[_0x9802('0x5')]['id'],this['realtime'][_0x9802('0x14')][this[_0x9802('0x6')]['id']],_0x574790?'STOP':_0x9802('0x1d'));}if(!_0x574790){setTimeout(this['push']['bind'](this),0x3e8);}};function agent(_0x54a4bc,_0xf4fcc7,_0x4ac13a,_0xb796c){return new Agent(_0x54a4bc,_0xf4fcc7,_0x4ac13a,_0xb796c);}module[_0x9802('0x1e')]=agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdc0d=['writeLog','RINGING','busyQueue','name','showNotification','[%s][QUEUE]\x20EMPTY','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','hideNotification','STOP','TIMEOUT','lodash','uuid','../../../../../config/logger','notificationId','squeue','queue','realtime','routing','push','handleRun','bind','handleTimeout','drained','handleDrained','prototype','isNil','Agents','length','agents','info','channel'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xdc0d,0x1db));var _0xddc0=function(_0x2b12d0,_0x104594){_0x2b12d0=_0x2b12d0-0x0;var _0x2f49e0=_0xdc0d[_0x2b12d0];return _0x2f49e0;};'use strict';var _=require(_0xddc0('0x0'));var uuid=require(_0xddc0('0x1'));var util=require('./util');var logger=require(_0xddc0('0x2'))('routing');var Beepall=function(_0x223e0f,_0xac8cc5,_0x333d21,_0x32ad85){this[_0xddc0('0x3')]=uuid['v4']();this[_0xddc0('0x4')]=_0x223e0f;this[_0xddc0('0x5')]=_0xac8cc5;this[_0xddc0('0x6')]=_0x333d21;this[_0xddc0('0x7')]=_0x32ad85;this['squeue'][_0xddc0('0x8')](this[_0xddc0('0x9')][_0xddc0('0xa')](this),this[_0xddc0('0xb')][_0xddc0('0xa')](this));this[_0xddc0('0x4')]['on']('timeout',this[_0xddc0('0xb')][_0xddc0('0xa')](this));this[_0xddc0('0x4')]['on'](_0xddc0('0xc'),this[_0xddc0('0xd')][_0xddc0('0xa')](this));};Beepall[_0xddc0('0xe')][_0xddc0('0x8')]=function(){this['squeue'][_0xddc0('0x8')](this[_0xddc0('0x9')]['bind'](this),this[_0xddc0('0xb')][_0xddc0('0xa')](this));};Beepall[_0xddc0('0xe')][_0xddc0('0xd')]=function(_0x2faa0d){this['handleTimeout'](!![]);};Beepall[_0xddc0('0xe')][_0xddc0('0x9')]=function(_0x523089){var _0x24aa03=!![];if(!_['isNil'](this[_0xddc0('0x5')])&&!_[_0xddc0('0xf')](this[_0xddc0('0x5')]['Agents'])&&this['queue'][_0xddc0('0x10')][_0xddc0('0x11')]>0x0){for(var _0x39b837=0x0,_0x22d0b0;_0x39b837<this['queue'][_0xddc0('0x10')][_0xddc0('0x11')];_0x39b837+=0x1){_0x22d0b0=this[_0xddc0('0x5')][_0xddc0('0x10')][_0x39b837]['id'];if(_['isNil'](this[_0xddc0('0x6')][_0xddc0('0x12')][_0x22d0b0])){logger[_0xddc0('0x13')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0xddc0('0x4')]['id'],_0x22d0b0);}else{if(util['isAgentAvailable'](this[_0xddc0('0x4')]['id'],this[_0xddc0('0x6')]['agents'][_0x22d0b0],this[_0xddc0('0x4')][_0xddc0('0x14')],!![])){_0x24aa03=![];util[_0xddc0('0x15')](this['squeue']['id'],this[_0xddc0('0x6')]['agents'][_0x22d0b0],_0xddc0('0x16'));this['realtime'][_0xddc0('0x12')][_0x22d0b0]['busy']=!![];this[_0xddc0('0x6')][_0xddc0('0x12')][_0x22d0b0][_0xddc0('0x17')]=this['queue'][_0xddc0('0x18')];util[_0xddc0('0x19')](this[_0xddc0('0x3')],this['squeue']['id'],this[_0xddc0('0x6')][_0xddc0('0x12')][_0x22d0b0],this[_0xddc0('0x5')],this[_0xddc0('0x7')]);}}}if(_0x24aa03){logger[_0xddc0('0x13')]('[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY',this[_0xddc0('0x4')]['id']);setTimeout(this['push']['bind'](this),0x3e8);}}else{logger['info'](_0xddc0('0x1a'),this[_0xddc0('0x4')]['id']);setTimeout(this[_0xddc0('0x8')][_0xddc0('0xa')](this),0x3e8);}};Beepall[_0xddc0('0xe')][_0xddc0('0xb')]=function(_0x279ac2){if(!_[_0xddc0('0xf')](this[_0xddc0('0x5')])&&!_[_0xddc0('0xf')](this[_0xddc0('0x5')][_0xddc0('0x10')])){for(var _0x487055=0x0,_0x1e3be8;_0x487055<this[_0xddc0('0x5')][_0xddc0('0x10')][_0xddc0('0x11')];_0x487055+=0x1){_0x1e3be8=this[_0xddc0('0x5')][_0xddc0('0x10')][_0x487055]['id'];if(_[_0xddc0('0xf')](this[_0xddc0('0x6')]['agents'][_0x1e3be8])){logger[_0xddc0('0x13')](_0xddc0('0x1b'),this[_0xddc0('0x4')]['id'],_0x1e3be8);}else{util[_0xddc0('0x1c')](this[_0xddc0('0x3')],this['squeue']['id'],this['realtime'][_0xddc0('0x12')][_0x1e3be8],this[_0xddc0('0x5')],this['routing']);util[_0xddc0('0x15')](this[_0xddc0('0x4')]['id'],this['realtime']['agents'][_0x1e3be8],_0x279ac2?_0xddc0('0x1d'):_0xddc0('0x1e'));this[_0xddc0('0x6')]['agents'][_0x1e3be8]['busy']=![];this[_0xddc0('0x6')][_0xddc0('0x12')][_0x1e3be8][_0xddc0('0x17')]=undefined;}}}if(!_0x279ac2){setTimeout(this[_0xddc0('0x8')][_0xddc0('0xa')](this),0x3e8);}};function beepall(_0x4e10ab,_0x44c237,_0x5d6dfa,_0x349542){return new Beepall(_0x4e10ab,_0x44c237,_0x5d6dfa,_0x349542);}module['exports']=beepall;
\ No newline at end of file
+var _0x812d=['[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','isAgentAvailable','RINGING','busy','agents','busyQueue','name','showNotification','info','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','notificationId','writeLog','STOP','uuid','./util','../../../../../config/logger','routing','squeue','queue','realtime','push','handleRun','handleTimeout','bind','timeout','drained','prototype','handleDrained','isNil','Agents','length'];(function(_0x5687d4,_0x206b2d){var _0x4403f0=function(_0x3fbb9f){while(--_0x3fbb9f){_0x5687d4['push'](_0x5687d4['shift']());}};_0x4403f0(++_0x206b2d);}(_0x812d,0x6e));var _0xd812=function(_0x26f68c,_0x3509e1){_0x26f68c=_0x26f68c-0x0;var _0x321844=_0x812d[_0x26f68c];return _0x321844;};'use strict';var _=require('lodash');var uuid=require(_0xd812('0x0'));var util=require(_0xd812('0x1'));var logger=require(_0xd812('0x2'))(_0xd812('0x3'));var Beepall=function(_0x510c9d,_0x263692,_0x15181f,_0x2fba72){this['notificationId']=uuid['v4']();this[_0xd812('0x4')]=_0x510c9d;this[_0xd812('0x5')]=_0x263692;this[_0xd812('0x6')]=_0x15181f;this['routing']=_0x2fba72;this['squeue'][_0xd812('0x7')](this[_0xd812('0x8')]['bind'](this),this[_0xd812('0x9')][_0xd812('0xa')](this));this['squeue']['on'](_0xd812('0xb'),this[_0xd812('0x9')][_0xd812('0xa')](this));this['squeue']['on'](_0xd812('0xc'),this['handleDrained']['bind'](this));};Beepall[_0xd812('0xd')]['push']=function(){this['squeue'][_0xd812('0x7')](this[_0xd812('0x8')][_0xd812('0xa')](this),this['handleTimeout'][_0xd812('0xa')](this));};Beepall[_0xd812('0xd')][_0xd812('0xe')]=function(_0x188cd5){this[_0xd812('0x9')](!![]);};Beepall[_0xd812('0xd')][_0xd812('0x8')]=function(_0x30feb1){var _0x529bf0=!![];if(!_['isNil'](this['queue'])&&!_[_0xd812('0xf')](this['queue']['Agents'])&&this[_0xd812('0x5')][_0xd812('0x10')][_0xd812('0x11')]>0x0){for(var _0x24c4e4=0x0,_0x16200a;_0x24c4e4<this[_0xd812('0x5')][_0xd812('0x10')]['length'];_0x24c4e4+=0x1){_0x16200a=this['queue'][_0xd812('0x10')][_0x24c4e4]['id'];if(_['isNil'](this[_0xd812('0x6')]['agents'][_0x16200a])){logger['info'](_0xd812('0x12'),this[_0xd812('0x4')]['id'],_0x16200a);}else{if(util[_0xd812('0x13')](this[_0xd812('0x4')]['id'],this[_0xd812('0x6')]['agents'][_0x16200a],this['squeue']['channel'],!![])){_0x529bf0=![];util['writeLog'](this[_0xd812('0x4')]['id'],this[_0xd812('0x6')]['agents'][_0x16200a],_0xd812('0x14'));this['realtime']['agents'][_0x16200a][_0xd812('0x15')]=!![];this[_0xd812('0x6')][_0xd812('0x16')][_0x16200a][_0xd812('0x17')]=this['queue'][_0xd812('0x18')];util[_0xd812('0x19')](this['notificationId'],this[_0xd812('0x4')]['id'],this[_0xd812('0x6')][_0xd812('0x16')][_0x16200a],this[_0xd812('0x5')],this['routing']);}}}if(_0x529bf0){logger[_0xd812('0x1a')](_0xd812('0x1b'),this[_0xd812('0x4')]['id']);setTimeout(this[_0xd812('0x7')]['bind'](this),0x3e8);}}else{logger['info'](_0xd812('0x1c'),this[_0xd812('0x4')]['id']);setTimeout(this[_0xd812('0x7')][_0xd812('0xa')](this),0x3e8);}};Beepall['prototype'][_0xd812('0x9')]=function(_0x3331e0){if(!_[_0xd812('0xf')](this['queue'])&&!_[_0xd812('0xf')](this[_0xd812('0x5')][_0xd812('0x10')])){for(var _0x5e114e=0x0,_0x1caaea;_0x5e114e<this['queue'][_0xd812('0x10')]['length'];_0x5e114e+=0x1){_0x1caaea=this['queue']['Agents'][_0x5e114e]['id'];if(_[_0xd812('0xf')](this[_0xd812('0x6')][_0xd812('0x16')][_0x1caaea])){logger[_0xd812('0x1a')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0xd812('0x4')]['id'],_0x1caaea);}else{util['hideNotification'](this[_0xd812('0x1d')],this[_0xd812('0x4')]['id'],this[_0xd812('0x6')]['agents'][_0x1caaea],this[_0xd812('0x5')],this[_0xd812('0x3')]);util[_0xd812('0x1e')](this[_0xd812('0x4')]['id'],this[_0xd812('0x6')][_0xd812('0x16')][_0x1caaea],_0x3331e0?_0xd812('0x1f'):'TIMEOUT');this[_0xd812('0x6')][_0xd812('0x16')][_0x1caaea][_0xd812('0x15')]=![];this['realtime'][_0xd812('0x16')][_0x1caaea][_0xd812('0x17')]=undefined;}}}if(!_0x3331e0){setTimeout(this['push'][_0xd812('0xa')](this),0x3e8);}};function beepall(_0x4a7208,_0x437114,_0x2a8c52,_0x4d67a0){return new Beepall(_0x4a7208,_0x437114,_0x2a8c52,_0x4d67a0);}module['exports']=beepall;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x554d=['./beepall','exports','./rrmemory'];(function(_0x5d99bb,_0x10e04b){var _0xdfe846=function(_0x2e3377){while(--_0x2e3377){_0x5d99bb['push'](_0x5d99bb['shift']());}};_0xdfe846(++_0x10e04b);}(_0x554d,0x1d2));var _0xd554=function(_0x1ace72,_0x274a09){_0x1ace72=_0x1ace72-0x0;var _0x38e16e=_0x554d[_0x1ace72];return _0x38e16e;};'use strict';module[_0xd554('0x0')]={'rrmemory':require(_0xd554('0x1')),'beepall':require(_0xd554('0x2')),'agent':require('./agent')};
\ No newline at end of file
+var _0xb8ef=['./beepall'];(function(_0x1f57bc,_0x24c0f4){var _0x51cb22=function(_0x479944){while(--_0x479944){_0x1f57bc['push'](_0x1f57bc['shift']());}};_0x51cb22(++_0x24c0f4);}(_0xb8ef,0xf6));var _0xfb8e=function(_0x1665e4,_0x50d8bc){_0x1665e4=_0x1665e4-0x0;var _0x4f585c=_0xb8ef[_0x1665e4];return _0x4f585c;};'use strict';module['exports']={'rrmemory':require('./rrmemory'),'beepall':require(_0xfb8e('0x0')),'agent':require('./agent')};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2018=['[%s][QUEUE]\x20try\x20with\x20%s','isNil','agents','busy','busyQueue','name','showNotification','writeLog','RINGING','[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','[%s][QUEUE]\x20timeout\x20with\x20%s','TIMEOUT','lodash','uuid','../../../../../config/logger','routing','notificationId','squeue','queue','realtime','intervals','handleRun','bind','handleTimeout','module','timeout','drained','handleDrained','prototype','push','handleCheckReject','isAgentAvailable','channel','[%s][QUEUE]\x20available\x20again\x20%s','agentId','done','info'];(function(_0x34af74,_0x59ab9d){var _0x12d74b=function(_0x51a854){while(--_0x51a854){_0x34af74['push'](_0x34af74['shift']());}};_0x12d74b(++_0x59ab9d);}(_0x2018,0x10f));var _0x8201=function(_0x59b79f,_0x53c506){_0x59b79f=_0x59b79f-0x0;var _0x8dc132=_0x2018[_0x59b79f];return _0x8dc132;};'use strict';var rr=require('rr');var _=require(_0x8201('0x0'));var uuid=require(_0x8201('0x1'));var util=require('./util');var logger=require(_0x8201('0x2'))(_0x8201('0x3'));var RRMemory=function(_0x42cf7e,_0x2bcf4d,_0x4f23b3,_0x3de0a3){this[_0x8201('0x4')]=uuid['v4']();this[_0x8201('0x5')]=_0x42cf7e;this[_0x8201('0x6')]=_0x2bcf4d;this[_0x8201('0x7')]=_0x4f23b3;this[_0x8201('0x3')]=_0x3de0a3;this[_0x8201('0x8')]={};this[_0x8201('0x5')]['push'](this[_0x8201('0x9')][_0x8201('0xa')](this),this[_0x8201('0xb')][_0x8201('0xa')](this),this[_0x8201('0xc')]);this[_0x8201('0x5')]['on'](_0x8201('0xd'),this[_0x8201('0xb')]['bind'](this));this[_0x8201('0x5')]['on'](_0x8201('0xe'),this[_0x8201('0xf')]['bind'](this));};RRMemory[_0x8201('0x10')]['push']=function(){this[_0x8201('0x5')][_0x8201('0x11')](this[_0x8201('0x9')][_0x8201('0xa')](this),this[_0x8201('0xb')][_0x8201('0xa')](this));};RRMemory[_0x8201('0x10')][_0x8201('0xf')]=function(_0x1f1b6b){this[_0x8201('0xb')](!![]);};RRMemory[_0x8201('0x10')][_0x8201('0x12')]=function(_0x4e96f3){if(util[_0x8201('0x13')](this[_0x8201('0x5')]['id'],this[_0x8201('0x7')]['agents'][this['agentId']],this[_0x8201('0x5')][_0x8201('0x14')],!![])){logger['info'](_0x8201('0x15'),this['squeue']['id'],this[_0x8201('0x16')]);clearInterval(this[_0x8201('0x8')][this[_0x8201('0x16')]]);_0x4e96f3[_0x8201('0x17')]();setTimeout(this['push']['bind'](this),0x3e8);}};RRMemory[_0x8201('0x10')][_0x8201('0x9')]=function(_0x5468f8){this['agentId']=rr(this[_0x8201('0x6')]['mapAgentsId']);logger[_0x8201('0x18')](_0x8201('0x19'),this[_0x8201('0x5')]['id'],this[_0x8201('0x16')]);if(_[_0x8201('0x1a')](this['realtime']['agents'][this[_0x8201('0x16')]])){logger[_0x8201('0x18')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x8201('0x5')]['id'],this[_0x8201('0x16')]);_0x5468f8[_0x8201('0x17')]();setTimeout(this[_0x8201('0x11')][_0x8201('0xa')](this),0x3e8);}else{if(util[_0x8201('0x13')](this[_0x8201('0x5')]['id'],this['realtime'][_0x8201('0x1b')][this[_0x8201('0x16')]],this[_0x8201('0x5')]['channel'],!![])){this[_0x8201('0x7')][_0x8201('0x1b')][this[_0x8201('0x16')]][_0x8201('0x1c')]=!![];this[_0x8201('0x7')]['agents'][this[_0x8201('0x16')]][_0x8201('0x1d')]=this[_0x8201('0x6')][_0x8201('0x1e')];util[_0x8201('0x1f')](this[_0x8201('0x4')],this[_0x8201('0x5')]['id'],this[_0x8201('0x7')]['agents'][this[_0x8201('0x16')]],this[_0x8201('0x6')],this[_0x8201('0x3')]);util[_0x8201('0x20')](this[_0x8201('0x5')]['id'],this[_0x8201('0x7')][_0x8201('0x1b')][this['agentId']],_0x8201('0x21'));this['intervals'][this[_0x8201('0x16')]]=setInterval(this[_0x8201('0x12')][_0x8201('0xa')](this,_0x5468f8),0x3e8);}else{logger[_0x8201('0x18')](_0x8201('0x22'),this[_0x8201('0x5')]['id'],this[_0x8201('0x16')]);_0x5468f8[_0x8201('0x17')]();setTimeout(this[_0x8201('0x11')][_0x8201('0xa')](this),0x3e8);}}};RRMemory[_0x8201('0x10')]['handleTimeout']=function(_0x481076){logger[_0x8201('0x18')](_0x8201('0x23'),this[_0x8201('0x5')]['id'],this[_0x8201('0x16')]);if(_[_0x8201('0x1a')](this[_0x8201('0x7')][_0x8201('0x1b')][this[_0x8201('0x16')]])){logger[_0x8201('0x18')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x8201('0x5')]['id'],this[_0x8201('0x16')]);}else{clearInterval(this[_0x8201('0x8')][this[_0x8201('0x16')]]);util['hideNotification'](this[_0x8201('0x4')],this[_0x8201('0x5')]['id'],this[_0x8201('0x7')][_0x8201('0x1b')][this[_0x8201('0x16')]],this['queue'],this[_0x8201('0x3')]);util['writeLog'](this['squeue']['id'],this['realtime'][_0x8201('0x1b')][this[_0x8201('0x16')]],_0x8201('0x24'));this['realtime'][_0x8201('0x1b')][this[_0x8201('0x16')]][_0x8201('0x1c')]=![];this[_0x8201('0x7')]['agents'][this['agentId']][_0x8201('0x1d')]=undefined;}if(!_0x481076){setTimeout(this[_0x8201('0x11')][_0x8201('0xa')](this),0x3e8);}};function rrmemory(_0x1fd2cb,_0x4d792c,_0x3ea05c,_0x4a5568){return new RRMemory(_0x1fd2cb,_0x4d792c,_0x3ea05c,_0x4a5568);}module['exports']=rrmemory;
\ No newline at end of file
+var _0xd246=['module','timeout','drained','handleDrained','prototype','realtime','agents','agentId','channel','info','done','mapAgentsId','[%s][QUEUE]\x20try\x20with\x20%s','isNil','busy','busyQueue','writeLog','RINGING','intervals','handleCheckReject','[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','[%s][QUEUE]\x20timeout\x20with\x20%s','hideNotification','exports','lodash','uuid','./util','../../../../../config/logger','routing','notificationId','queue','squeue','push','handleRun','bind','handleTimeout'];(function(_0x572637,_0x216d95){var _0xb6748=function(_0x3eeb8c){while(--_0x3eeb8c){_0x572637['push'](_0x572637['shift']());}};_0xb6748(++_0x216d95);}(_0xd246,0xf0));var _0x6d24=function(_0x123450,_0x491c01){_0x123450=_0x123450-0x0;var _0x23b29d=_0xd246[_0x123450];return _0x23b29d;};'use strict';var rr=require('rr');var _=require(_0x6d24('0x0'));var uuid=require(_0x6d24('0x1'));var util=require(_0x6d24('0x2'));var logger=require(_0x6d24('0x3'))(_0x6d24('0x4'));var RRMemory=function(_0x316325,_0x4925ab,_0x2d8d83,_0x390f4b){this[_0x6d24('0x5')]=uuid['v4']();this['squeue']=_0x316325;this[_0x6d24('0x6')]=_0x4925ab;this['realtime']=_0x2d8d83;this[_0x6d24('0x4')]=_0x390f4b;this['intervals']={};this[_0x6d24('0x7')][_0x6d24('0x8')](this[_0x6d24('0x9')][_0x6d24('0xa')](this),this[_0x6d24('0xb')][_0x6d24('0xa')](this),this[_0x6d24('0xc')]);this[_0x6d24('0x7')]['on'](_0x6d24('0xd'),this['handleTimeout'][_0x6d24('0xa')](this));this[_0x6d24('0x7')]['on'](_0x6d24('0xe'),this[_0x6d24('0xf')]['bind'](this));};RRMemory[_0x6d24('0x10')][_0x6d24('0x8')]=function(){this[_0x6d24('0x7')]['push'](this[_0x6d24('0x9')]['bind'](this),this[_0x6d24('0xb')]['bind'](this));};RRMemory['prototype'][_0x6d24('0xf')]=function(_0x443e8c){this[_0x6d24('0xb')](!![]);};RRMemory[_0x6d24('0x10')]['handleCheckReject']=function(_0x1fe4ec){if(util['isAgentAvailable'](this[_0x6d24('0x7')]['id'],this[_0x6d24('0x11')][_0x6d24('0x12')][this[_0x6d24('0x13')]],this[_0x6d24('0x7')][_0x6d24('0x14')],!![])){logger[_0x6d24('0x15')]('[%s][QUEUE]\x20available\x20again\x20%s',this[_0x6d24('0x7')]['id'],this['agentId']);clearInterval(this['intervals'][this[_0x6d24('0x13')]]);_0x1fe4ec[_0x6d24('0x16')]();setTimeout(this[_0x6d24('0x8')]['bind'](this),0x3e8);}};RRMemory[_0x6d24('0x10')][_0x6d24('0x9')]=function(_0x433f8a){this[_0x6d24('0x13')]=rr(this['queue'][_0x6d24('0x17')]);logger[_0x6d24('0x15')](_0x6d24('0x18'),this[_0x6d24('0x7')]['id'],this[_0x6d24('0x13')]);if(_[_0x6d24('0x19')](this[_0x6d24('0x11')][_0x6d24('0x12')][this[_0x6d24('0x13')]])){logger['info']('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this['squeue']['id'],this['agentId']);_0x433f8a[_0x6d24('0x16')]();setTimeout(this[_0x6d24('0x8')][_0x6d24('0xa')](this),0x3e8);}else{if(util['isAgentAvailable'](this[_0x6d24('0x7')]['id'],this[_0x6d24('0x11')][_0x6d24('0x12')][this['agentId']],this['squeue'][_0x6d24('0x14')],!![])){this[_0x6d24('0x11')][_0x6d24('0x12')][this[_0x6d24('0x13')]][_0x6d24('0x1a')]=!![];this['realtime'][_0x6d24('0x12')][this[_0x6d24('0x13')]][_0x6d24('0x1b')]=this[_0x6d24('0x6')]['name'];util['showNotification'](this[_0x6d24('0x5')],this[_0x6d24('0x7')]['id'],this['realtime'][_0x6d24('0x12')][this[_0x6d24('0x13')]],this[_0x6d24('0x6')],this['routing']);util[_0x6d24('0x1c')](this[_0x6d24('0x7')]['id'],this[_0x6d24('0x11')]['agents'][this[_0x6d24('0x13')]],_0x6d24('0x1d'));this[_0x6d24('0x1e')][this[_0x6d24('0x13')]]=setInterval(this[_0x6d24('0x1f')][_0x6d24('0xa')](this,_0x433f8a),0x3e8);}else{logger[_0x6d24('0x15')](_0x6d24('0x20'),this['squeue']['id'],this[_0x6d24('0x13')]);_0x433f8a[_0x6d24('0x16')]();setTimeout(this[_0x6d24('0x8')][_0x6d24('0xa')](this),0x3e8);}}};RRMemory[_0x6d24('0x10')][_0x6d24('0xb')]=function(_0x2f5b61){logger[_0x6d24('0x15')](_0x6d24('0x21'),this[_0x6d24('0x7')]['id'],this[_0x6d24('0x13')]);if(_[_0x6d24('0x19')](this['realtime'][_0x6d24('0x12')][this[_0x6d24('0x13')]])){logger[_0x6d24('0x15')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this['squeue']['id'],this[_0x6d24('0x13')]);}else{clearInterval(this['intervals'][this[_0x6d24('0x13')]]);util[_0x6d24('0x22')](this[_0x6d24('0x5')],this[_0x6d24('0x7')]['id'],this[_0x6d24('0x11')][_0x6d24('0x12')][this['agentId']],this[_0x6d24('0x6')],this[_0x6d24('0x4')]);util[_0x6d24('0x1c')](this[_0x6d24('0x7')]['id'],this['realtime'][_0x6d24('0x12')][this[_0x6d24('0x13')]],'TIMEOUT');this[_0x6d24('0x11')][_0x6d24('0x12')][this[_0x6d24('0x13')]][_0x6d24('0x1a')]=![];this[_0x6d24('0x11')][_0x6d24('0x12')][this[_0x6d24('0x13')]]['busyQueue']=undefined;}if(!_0x2f5b61){setTimeout(this['push']['bind'](this),0x3e8);}};function rrmemory(_0x16e5a0,_0x40b2dd,_0x35ec2e,_0x4cf7e2){return new RRMemory(_0x16e5a0,_0x40b2dd,_0x35ec2e,_0x4cf7e2);}module[_0x6d24('0x23')]=rrmemory;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb11=['PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification','writeLog','lodash','../utils','mustache','../../../../../config/environment','routing','defaults','redis','socket.io-emitter','emit','format','name','user:save','split','\x20interaction','account','notificationShake','body','queue','getMustacheRender','notificationTemplate','msg','I\x20can\x27t\x20render\x20your\x20template','error','[%s][QUEUE]\x20%s','message','user:%s','remove','info','isAgentAvailable','BUSY','online','OFFLINE','Pause'];(function(_0x379dbb,_0x2e04e8){var _0x5cf9dc=function(_0x44131){while(--_0x44131){_0x379dbb['push'](_0x379dbb['shift']());}};_0x5cf9dc(++_0x2e04e8);}(_0xfb11,0x1ad));var _0x1fb1=function(_0x4c7fb5,_0x2548ef){_0x4c7fb5=_0x4c7fb5-0x0;var _0x2e10ac=_0xfb11[_0x4c7fb5];return _0x2e10ac;};'use strict';var _=require(_0x1fb1('0x0'));var util=require('util');var utils=require(_0x1fb1('0x1'));var Mustache=require(_0x1fb1('0x2'));var Redis=require('ioredis');var config=require(_0x1fb1('0x3'));var logger=require('../../../../../config/logger')(_0x1fb1('0x4'));config['redis']=_[_0x1fb1('0x5')](config[_0x1fb1('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0x1fb1('0x7'))(new Redis(config[_0x1fb1('0x6')]));function emit(_0x4c098d,_0x1859da,_0x2596c2){io['to'](_0x4c098d)[_0x1fb1('0x8')](_0x1859da,_0x2596c2);}function sendNotification(_0x236b20,_0x161e1b,_0x2d6be9,_0x438d15,_0x416625,_0x377aae){io['to'](util[_0x1fb1('0x9')]('user:%s',_0x438d15[_0x1fb1('0xa')]))['emit'](_0x1fb1('0xb'),_0x438d15);var _0x58b66e=_0x377aae||{};var _0xa977b1=_0x2d6be9[_0x1fb1('0xc')]('.');var _0xd39b52={'uniqueid':_0x161e1b,'channel':_0xa977b1[0x0],'id':_0xa977b1[0x1],'title':_0xa977b1[0x0]+_0x1fb1('0xd'),'interactionId':_0xa977b1[0x2],'queue':_0x416625?_0x416625[_0x1fb1('0xa')]:null,'sound':_0x58b66e[_0x1fb1('0xe')]['notificationSound'],'shake':_0x58b66e[_0x1fb1('0xe')][_0x1fb1('0xf')]};try{if(!_0x58b66e[_0x1fb1('0x10')]){_0x58b66e[_0x1fb1('0x10')]={};}if(_0x416625){_0x58b66e[_0x1fb1('0x10')][_0x1fb1('0x11')]=_0x416625;}else if(_0x58b66e[_0x1fb1('0x10')][_0x1fb1('0x11')]){delete _0x58b66e[_0x1fb1('0x10')]['queue'];}_0xd39b52['msg']=utils[_0x1fb1('0x12')](_0x58b66e[_0x1fb1('0xe')][_0x1fb1('0x13')],_0x58b66e);}catch(_0x5e0f16){_0xd39b52[_0x1fb1('0x14')]=_0x1fb1('0x15');logger[_0x1fb1('0x16')](util[_0x1fb1('0x9')](_0x1fb1('0x17'),_0x161e1b,_0x5e0f16[_0x1fb1('0x18')]));}io['to'](util[_0x1fb1('0x9')](_0x1fb1('0x19'),_0x438d15[_0x1fb1('0xa')]))['emit'](util[_0x1fb1('0x9')]('notification:%s',_0x236b20?'save':_0x1fb1('0x1a')),_0xd39b52);}function writeLog(_0x313d9a,_0x1eaf9e,_0x54ad97){return logger[_0x1fb1('0x1b')](util['format']('[%s][QUEUE][AGENT:%s][STATUS:%s]',_0x313d9a,_0x1eaf9e['name'],_0x54ad97));}exports[_0x1fb1('0x1c')]=function(_0x1f8e5a,_0x12c1d0,_0x10924f,_0x303a06){if(_0x12c1d0['busy']){writeLog(_0x1f8e5a,_0x12c1d0,_0x1fb1('0x1d'));return![];}if(!_0x12c1d0[_0x1fb1('0x1e')]){writeLog(_0x1f8e5a,_0x12c1d0,_0x1fb1('0x1f'));return![];}if(_0x12c1d0[_0x10924f+_0x1fb1('0x20')]){writeLog(_0x1f8e5a,_0x12c1d0,_0x1fb1('0x21'));return![];}if(_0x303a06&&_0x12c1d0[_0x1fb1('0x22')](_0x10924f+_0x1fb1('0x23'))&&_0x12c1d0[_0x1fb1('0x22')](_0x10924f+'CurrentCapacity')){if(_0x12c1d0[_0x10924f+_0x1fb1('0x23')]>0x0&&_0x12c1d0[_0x10924f+_0x1fb1('0x24')]>=_0x12c1d0[_0x10924f+_0x1fb1('0x23')]){writeLog(_0x1f8e5a,_0x12c1d0,_0x10924f[_0x1fb1('0x25')]()+_0x1fb1('0x26'));return![];}}return!![];};exports[_0x1fb1('0x27')]=function(_0x1a74c4,_0x15992c,_0xa7bba,_0x33a3b7,_0x5e99e7){return sendNotification(!![],_0x1a74c4,_0x15992c,_0xa7bba,_0x33a3b7,_0x5e99e7);};exports[_0x1fb1('0x28')]=function(_0x39fc43,_0xe8ec0a,_0x2f6c88,_0x520ee2,_0x106134){return sendNotification(![],_0x39fc43,_0xe8ec0a,_0x2f6c88,_0x520ee2,_0x106134);};exports[_0x1fb1('0x29')]=writeLog;
\ No newline at end of file
+var _0x4975=['notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','error','[%s][QUEUE]\x20%s','notification:%s','save','remove','isAgentAvailable','online','OFFLINE','Pause','PAUSE','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','lodash','../utils','mustache','ioredis','../../../../../config/environment','../../../../../config/logger','routing','redis','defaults','localhost','emit','format','user:%s','name','user:save','\x20interaction','account','notificationSound'];(function(_0x5987e1,_0x1fc5c2){var _0x15df39=function(_0x12f2db){while(--_0x12f2db){_0x5987e1['push'](_0x5987e1['shift']());}};_0x15df39(++_0x1fc5c2);}(_0x4975,0x86));var _0x5497=function(_0x2bfbef,_0x10dfa4){_0x2bfbef=_0x2bfbef-0x0;var _0x52808a=_0x4975[_0x2bfbef];return _0x52808a;};'use strict';var _=require(_0x5497('0x0'));var util=require('util');var utils=require(_0x5497('0x1'));var Mustache=require(_0x5497('0x2'));var Redis=require(_0x5497('0x3'));var config=require(_0x5497('0x4'));var logger=require(_0x5497('0x5'))(_0x5497('0x6'));config[_0x5497('0x7')]=_[_0x5497('0x8')](config[_0x5497('0x7')],{'host':_0x5497('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x5497('0x7')]));function emit(_0x4f563d,_0x1d0019,_0x674a2a){io['to'](_0x4f563d)[_0x5497('0xa')](_0x1d0019,_0x674a2a);}function sendNotification(_0x57f930,_0x42af11,_0x49d94b,_0x1f63d8,_0x29c93f,_0x2ec5a4){io['to'](util[_0x5497('0xb')](_0x5497('0xc'),_0x1f63d8[_0x5497('0xd')]))[_0x5497('0xa')](_0x5497('0xe'),_0x1f63d8);var _0x50d716=_0x2ec5a4||{};var _0x5874ef=_0x49d94b['split']('.');var _0xc250bb={'uniqueid':_0x42af11,'channel':_0x5874ef[0x0],'id':_0x5874ef[0x1],'title':_0x5874ef[0x0]+_0x5497('0xf'),'interactionId':_0x5874ef[0x2],'queue':_0x29c93f?_0x29c93f[_0x5497('0xd')]:null,'sound':_0x50d716[_0x5497('0x10')][_0x5497('0x11')],'shake':_0x50d716[_0x5497('0x10')][_0x5497('0x12')]};try{if(!_0x50d716[_0x5497('0x13')]){_0x50d716[_0x5497('0x13')]={};}if(_0x29c93f){_0x50d716[_0x5497('0x13')]['queue']=_0x29c93f;}else if(_0x50d716[_0x5497('0x13')]['queue']){delete _0x50d716[_0x5497('0x13')][_0x5497('0x14')];}_0xc250bb[_0x5497('0x15')]=utils[_0x5497('0x16')](_0x50d716[_0x5497('0x10')][_0x5497('0x17')],_0x50d716);}catch(_0x2f2997){_0xc250bb['msg']='I\x20can\x27t\x20render\x20your\x20template';logger[_0x5497('0x18')](util[_0x5497('0xb')](_0x5497('0x19'),_0x42af11,_0x2f2997['message']));}io['to'](util[_0x5497('0xb')](_0x5497('0xc'),_0x1f63d8[_0x5497('0xd')]))[_0x5497('0xa')](util[_0x5497('0xb')](_0x5497('0x1a'),_0x57f930?_0x5497('0x1b'):_0x5497('0x1c')),_0xc250bb);}function writeLog(_0x2e3960,_0x3f54ef,_0x186065){return logger['info'](util[_0x5497('0xb')]('[%s][QUEUE][AGENT:%s][STATUS:%s]',_0x2e3960,_0x3f54ef[_0x5497('0xd')],_0x186065));}exports[_0x5497('0x1d')]=function(_0x44265c,_0x2f587d,_0x35ecd9,_0x3b2fbc){if(_0x2f587d['busy']){writeLog(_0x44265c,_0x2f587d,'BUSY');return![];}if(!_0x2f587d[_0x5497('0x1e')]){writeLog(_0x44265c,_0x2f587d,_0x5497('0x1f'));return![];}if(_0x2f587d[_0x35ecd9+_0x5497('0x20')]){writeLog(_0x44265c,_0x2f587d,_0x5497('0x21'));return![];}if(_0x3b2fbc&&_0x2f587d['hasOwnProperty'](_0x35ecd9+_0x5497('0x22'))&&_0x2f587d['hasOwnProperty'](_0x35ecd9+_0x5497('0x23'))){if(_0x2f587d[_0x35ecd9+_0x5497('0x22')]>0x0&&_0x2f587d[_0x35ecd9+_0x5497('0x23')]>=_0x2f587d[_0x35ecd9+_0x5497('0x22')]){writeLog(_0x44265c,_0x2f587d,_0x35ecd9[_0x5497('0x24')]()+_0x5497('0x25'));return![];}}return!![];};exports['showNotification']=function(_0x4af5f4,_0x5406e2,_0x583d06,_0x498f15,_0x39a2b7){return sendNotification(!![],_0x4af5f4,_0x5406e2,_0x583d06,_0x498f15,_0x39a2b7);};exports['hideNotification']=function(_0x5e9356,_0xc3465,_0xb14593,_0x1cf908,_0x4c442a){return sendNotification(![],_0x5e9356,_0xc3465,_0xb14593,_0x1cf908,_0x4c442a);};exports['writeLog']=writeLog;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2d4=['[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','validate','shelljs','lodash','../../../../config/logger','routing','string','consequence','error','[%s][SYSTEM]\x20%s','map','message','join','info','getMustacheRender','exec','trim','[%s][SYSTEM]\x20result\x20code:\x20%s','replace','isNil','isEmpty','[%s][SYSTEM]\x20no\x20variable','body','[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s','next','isObject','stringify'];(function(_0x585c87,_0x431ab6){var _0x464528=function(_0x1ed028){while(--_0x1ed028){_0x585c87['push'](_0x585c87['shift']());}};_0x464528(++_0x431ab6);}(_0xe2d4,0xd9));var _0x4e2d=function(_0x27d6e6,_0x381583){_0x27d6e6=_0x27d6e6-0x0;var _0x18a042=_0xe2d4[_0x27d6e6];return _0x18a042;};'use strict';var schema=require(_0x4e2d('0x0'));var sh=require(_0x4e2d('0x1'));var _=require(_0x4e2d('0x2'));var utils=require('./utils');var logger=require(_0x4e2d('0x3'))(_0x4e2d('0x4'));var system=schema({'command':{'type':_0x4e2d('0x5'),'required':!![],'message':'command\x20is\x20a\x20string\x20and\x20it\x20is\x20required'}});exports[_0x4e2d('0x6')]=function(_0x48d7a6,_0x1f5206){return function(_0x5db9f9){try{var _0x4d61ce={'command':_0x1f5206[0x0]};var _0x2f3c38=system[_0x4e2d('0x0')](_0x4d61ce,{'typecast':!![]});if(_0x2f3c38['length']){logger[_0x4e2d('0x7')](_0x4e2d('0x8'),_0x48d7a6,_[_0x4e2d('0x9')](_0x2f3c38,_0x4e2d('0xa'))[_0x4e2d('0xb')](',\x20'));logger[_0x4e2d('0xc')]('[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next',_0x48d7a6);_0x5db9f9['next']();}else{var _0x18a51e=this;var _0x5aa5ea=utils[_0x4e2d('0xd')](_0x1f5206[0x0],this);logger['info']('[%s][SYSTEM]\x20commnad:\x20%s',_0x48d7a6,_0x5aa5ea);sh[_0x4e2d('0xe')](_[_0x4e2d('0xf')](_0x5aa5ea),function(_0x21a435,_0x1b8bbf){logger[_0x4e2d('0xc')](_0x4e2d('0x10'),_0x48d7a6,_0x21a435);if(_0x21a435==0x0){var _0x465efb=_0x1b8bbf[_0x4e2d('0x11')](/(\r\n|\n|\r)/gm,'');if(_[_0x4e2d('0x12')](_0x1f5206[0x1])||_[_0x4e2d('0x13')](_0x1f5206[0x1])){logger[_0x4e2d('0xc')](_0x4e2d('0x14'),_0x48d7a6);_0x18a51e[_0x4e2d('0x15')][_0x1f5206[0x1]]=_0x465efb;}else{logger['info'](_0x4e2d('0x16'),_0x48d7a6,_0x1f5206[0x1],_0x465efb);_0x18a51e[_0x4e2d('0x15')][_0x1f5206[0x1]]=_0x465efb;}}_0x5db9f9[_0x4e2d('0x17')]();});}}catch(_0x2db016){logger['error'](_0x4e2d('0x8'),_0x48d7a6,_[_0x4e2d('0x18')](_0x2db016)?JSON[_0x4e2d('0x19')](_0x2db016):_0x2db016);logger[_0x4e2d('0xc')](_0x4e2d('0x1a'),_0x48d7a6);_0x5db9f9[_0x4e2d('0x17')]();}};};
\ No newline at end of file
+var _0x5e0e=['[%s][SYSTEM]\x20%s','message','join','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','next','getMustacheRender','[%s][SYSTEM]\x20commnad:\x20%s','exec','trim','[%s][SYSTEM]\x20result\x20code:\x20%s','isEmpty','info','body','[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s','stringify','validate','lodash','./utils','../../../../config/logger','routing','string','consequence','length','error'];(function(_0x4404ff,_0x13d7a9){var _0x5e7b19=function(_0x13847a){while(--_0x13847a){_0x4404ff['push'](_0x4404ff['shift']());}};_0x5e7b19(++_0x13d7a9);}(_0x5e0e,0x147));var _0xe5e0=function(_0x34eb31,_0x8f0f70){_0x34eb31=_0x34eb31-0x0;var _0x254994=_0x5e0e[_0x34eb31];return _0x254994;};'use strict';var schema=require(_0xe5e0('0x0'));var sh=require('shelljs');var _=require(_0xe5e0('0x1'));var utils=require(_0xe5e0('0x2'));var logger=require(_0xe5e0('0x3'))(_0xe5e0('0x4'));var system=schema({'command':{'type':_0xe5e0('0x5'),'required':!![],'message':'command\x20is\x20a\x20string\x20and\x20it\x20is\x20required'}});exports[_0xe5e0('0x6')]=function(_0x534b75,_0x4cf181){return function(_0x3f04b7){try{var _0x3cf200={'command':_0x4cf181[0x0]};var _0x9ed712=system[_0xe5e0('0x0')](_0x3cf200,{'typecast':!![]});if(_0x9ed712[_0xe5e0('0x7')]){logger[_0xe5e0('0x8')](_0xe5e0('0x9'),_0x534b75,_['map'](_0x9ed712,_0xe5e0('0xa'))[_0xe5e0('0xb')](',\x20'));logger['info'](_0xe5e0('0xc'),_0x534b75);_0x3f04b7[_0xe5e0('0xd')]();}else{var _0x3068f1=this;var _0x6d2398=utils[_0xe5e0('0xe')](_0x4cf181[0x0],this);logger['info'](_0xe5e0('0xf'),_0x534b75,_0x6d2398);sh[_0xe5e0('0x10')](_[_0xe5e0('0x11')](_0x6d2398),function(_0x25ecad,_0x90b9a0){logger['info'](_0xe5e0('0x12'),_0x534b75,_0x25ecad);if(_0x25ecad==0x0){var _0x51a0d2=_0x90b9a0['replace'](/(\r\n|\n|\r)/gm,'');if(_['isNil'](_0x4cf181[0x1])||_[_0xe5e0('0x13')](_0x4cf181[0x1])){logger[_0xe5e0('0x14')]('[%s][SYSTEM]\x20no\x20variable',_0x534b75);_0x3068f1[_0xe5e0('0x15')][_0x4cf181[0x1]]=_0x51a0d2;}else{logger['info'](_0xe5e0('0x16'),_0x534b75,_0x4cf181[0x1],_0x51a0d2);_0x3068f1['body'][_0x4cf181[0x1]]=_0x51a0d2;}}_0x3f04b7['next']();});}}catch(_0x221c64){logger[_0xe5e0('0x8')](_0xe5e0('0x9'),_0x534b75,_['isObject'](_0x221c64)?JSON[_0xe5e0('0x17')](_0x221c64):_0x221c64);logger[_0xe5e0('0x14')](_0xe5e0('0xc'),_0x534b75);_0x3f04b7['next']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xffeb=['../../rpc/whatsappInteraction','../../../../config/logger','number','TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required','validate','length','error','[%s][TAG]\x20%s','map','message','join','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next','next','channel','Interaction','addTags','interaction','then','info','catch','stringify','finally','isObject','lodash','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction'];(function(_0x6131cd,_0x4c26a1){var _0x47e916=function(_0x1f2bce){while(--_0x1f2bce){_0x6131cd['push'](_0x6131cd['shift']());}};_0x47e916(++_0x4c26a1);}(_0xffeb,0xa8));var _0xbffe=function(_0x91489c,_0x46b3db){_0x91489c=_0x91489c-0x0;var _0x30c7b6=_0xffeb[_0x91489c];return _0x30c7b6;};'use strict';var schema=require('validate');var _=require(_0xbffe('0x0'));var rpc={'chatInteraction':require(_0xbffe('0x1')),'openchannelInteraction':require(_0xbffe('0x2')),'smsInteraction':require(_0xbffe('0x3')),'mailInteraction':require(_0xbffe('0x4')),'faxInteraction':require(_0xbffe('0x5')),'whatsappInteraction':require(_0xbffe('0x6'))};var logger=require(_0xbffe('0x7'))('routing');var tag=schema({'tag':{'type':_0xbffe('0x8'),'required':!![],'message':_0xbffe('0x9')}});exports['consequence']=function(_0x5b46fd,_0x510ce9,_0x3de775,_0x308e9c){return function(_0x1fdac2){try{var _0x321fb3={'tag':_0x510ce9[0x0]};var _0x50fc94=tag[_0xbffe('0xa')](_0x321fb3,{'typecast':!![]});if(_0x50fc94[_0xbffe('0xb')]){logger[_0xbffe('0xc')](_0xbffe('0xd'),_0x5b46fd,_[_0xbffe('0xe')](_0x50fc94,_0xbffe('0xf'))[_0xbffe('0x10')](',\x20'));logger['info'](_0xbffe('0x11'),_0x5b46fd);_0x1fdac2[_0xbffe('0x12')]();}else{var _0x1ea8b4={'ids':[_0x510ce9[0x0]]};if(rpc[_0x308e9c[_0xbffe('0x13')]+_0xbffe('0x14')]){rpc[_0x308e9c[_0xbffe('0x13')]+_0xbffe('0x14')][_0xbffe('0x15')](_0x308e9c[_0xbffe('0x16')]['id'],_0x1ea8b4)[_0xbffe('0x17')](function(_0x53ca0b){logger[_0xbffe('0x18')]('[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s',_0x5b46fd,_0x510ce9[0x1],_0x308e9c[_0xbffe('0x13')],_0x308e9c[_0xbffe('0x16')]['id']);})[_0xbffe('0x19')](function(_0x3a59ec){logger['error'](_0xbffe('0xd'),_0x5b46fd,JSON[_0xbffe('0x1a')](_0x3a59ec));logger['info']('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x5b46fd);})[_0xbffe('0x1b')](function(){_0x1fdac2[_0xbffe('0x12')]();});}}}catch(_0x58e42){logger[_0xbffe('0xc')](_0xbffe('0xd'),_0x5b46fd,_[_0xbffe('0x1c')](_0x58e42)?JSON[_0xbffe('0x1a')](_0x58e42):_0x58e42);logger['info'](_0xbffe('0x11'),_0x5b46fd);_0x1fdac2[_0xbffe('0x12')]();}};};
\ No newline at end of file
+var _0xed49=['Interaction','channel','addTags','then','[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s','interaction','catch','stringify','finally','isObject','validate','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/whatsappInteraction','routing','consequence','length','error','[%s][TAG]\x20%s','map','message','info','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next','next'];(function(_0x229b6e,_0xcb561a){var _0x39e7de=function(_0x95f29c){while(--_0x95f29c){_0x229b6e['push'](_0x229b6e['shift']());}};_0x39e7de(++_0xcb561a);}(_0xed49,0x19a));var _0x9ed4=function(_0x3ccaf7,_0x44b50e){_0x3ccaf7=_0x3ccaf7-0x0;var _0x440549=_0xed49[_0x3ccaf7];return _0x440549;};'use strict';var schema=require(_0x9ed4('0x0'));var _=require('lodash');var rpc={'chatInteraction':require(_0x9ed4('0x1')),'openchannelInteraction':require(_0x9ed4('0x2')),'smsInteraction':require(_0x9ed4('0x3')),'mailInteraction':require('../../rpc/mailInteraction'),'faxInteraction':require('../../rpc/faxInteraction'),'whatsappInteraction':require(_0x9ed4('0x4'))};var logger=require('../../../../config/logger')(_0x9ed4('0x5'));var tag=schema({'tag':{'type':'number','required':!![],'message':'TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required'}});exports[_0x9ed4('0x6')]=function(_0x130f56,_0x21ebd7,_0x47ed8d,_0x406813){return function(_0x3e9066){try{var _0x454433={'tag':_0x21ebd7[0x0]};var _0x5a8fef=tag[_0x9ed4('0x0')](_0x454433,{'typecast':!![]});if(_0x5a8fef[_0x9ed4('0x7')]){logger[_0x9ed4('0x8')](_0x9ed4('0x9'),_0x130f56,_[_0x9ed4('0xa')](_0x5a8fef,_0x9ed4('0xb'))['join'](',\x20'));logger[_0x9ed4('0xc')](_0x9ed4('0xd'),_0x130f56);_0x3e9066[_0x9ed4('0xe')]();}else{var _0x3b471d={'ids':[_0x21ebd7[0x0]]};if(rpc[_0x406813['channel']+_0x9ed4('0xf')]){rpc[_0x406813[_0x9ed4('0x10')]+_0x9ed4('0xf')][_0x9ed4('0x11')](_0x406813['interaction']['id'],_0x3b471d)[_0x9ed4('0x12')](function(_0x2826ee){logger['info'](_0x9ed4('0x13'),_0x130f56,_0x21ebd7[0x1],_0x406813[_0x9ed4('0x10')],_0x406813[_0x9ed4('0x14')]['id']);})[_0x9ed4('0x15')](function(_0x1afee0){logger[_0x9ed4('0x8')](_0x9ed4('0x9'),_0x130f56,JSON[_0x9ed4('0x16')](_0x1afee0));logger[_0x9ed4('0xc')](_0x9ed4('0xd'),_0x130f56);})[_0x9ed4('0x17')](function(){_0x3e9066['next']();});}}}catch(_0x2ad444){logger['error'](_0x9ed4('0x9'),_0x130f56,_[_0x9ed4('0x18')](_0x2ad444)?JSON[_0x9ed4('0x16')](_0x2ad444):_0x2ad444);logger[_0x9ed4('0xc')]('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x130f56);_0x3e9066[_0x9ed4('0xe')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['merge','body','account','list','exports','render'];(function(_0x576f0c,_0x2ba61d){var _0x4fe4ea=function(_0x1ff6db){while(--_0x1ff6db){_0x576f0c['push'](_0x576f0c['shift']());}};_0x4fe4ea(++_0x2ba61d);}(_0x9c44,0x178));var _0x49c4=function(_0x36c5b0,_0x5001da){_0x36c5b0=_0x36c5b0-0x0;var _0xf19333=_0x9c44[_0x36c5b0];return _0xf19333;};'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
+var _0xa9e0=['message','account','interaction','mustache','lodash','exports','render','body','contact'];(function(_0x3fae86,_0x3981a8){var _0x2aa0e2=function(_0x294c68){while(--_0x294c68){_0x3fae86['push'](_0x3fae86['shift']());}};_0x2aa0e2(++_0x3981a8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0xa9e0[_0x1ac595];return _0x455fff;};'use strict';var Mustache=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));module[_0x0a9e('0x2')]={'getMustacheRender':function(_0x5dd881,_0x550fbc){return Mustache[_0x0a9e('0x3')](_0x5dd881,_['merge'](_0x550fbc[_0x0a9e('0x4')],{'contact':_0x550fbc[_0x0a9e('0x5')],'message':_0x550fbc[_0x0a9e('0x6')],'account':_0x550fbc[_0x0a9e('0x7')],'interaction':_0x550fbc[_0x0a9e('0x8')],'list':_0x550fbc['list']}))||'';}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x605f=['http','127.0.0.1','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','util','path','jayson/promise','bluebird','uuid','../../../config/environment','../../../config/logger','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','listen','rules','channel','message','interaction','applications','length','existsSync','join','app','.js','autoreply','appdata','mail','push','slice','dialogflow','dialogflowv2','split','TagId','./interval','./applications/','consequence','priority','info','on\x20interval','intervals','\x20|\x20','error','Please\x20create\x20a\x20new\x20file\x20under','Applications\x20executed','stringify','matchPath','emit','complete','No\x20applications\x20to\x20execute','stack','agent','agents','busy','busyQueue','end','QueueReport','UserId','catch','message\x20is\x20empty','capacity','hasOwnProperty','CurrentCapacity','updateRealtime','agent\x20not\x20found','values','chatQueues','available','name','paused','mailQueues','loggedIn','waiting','openchannelQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','smsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','server'];(function(_0x1762b4,_0x33d836){var _0x29beda=function(_0x31c2fa){while(--_0x31c2fa){_0x1762b4['push'](_0x1762b4['shift']());}};_0x29beda(++_0x33d836);}(_0x605f,0xbd));var _0xf605=function(_0x22cf16,_0x374f3c){_0x22cf16=_0x22cf16-0x0;var _0x532b30=_0x605f[_0x22cf16];return _0x532b30;};'use strict';var _=require('lodash');var util=require(_0xf605('0x0'));var path=require(_0xf605('0x1'));var fs=require('fs');var jayson=require(_0xf605('0x2'));var BPromise=require(_0xf605('0x3'));var uuid=require(_0xf605('0x4'));var config=require(_0xf605('0x5'));var logger=require(_0xf605('0x6'))('routing');var rpc={'openchannelQueueReport':require(_0xf605('0x7')),'mailQueueReport':require(_0xf605('0x8')),'chatQueueReport':require(_0xf605('0x9')),'smsQueueReport':require(_0xf605('0xa')),'faxQueueReport':require(_0xf605('0xb')),'whatsappQueueReport':require('../rpc/whatsappQueueReport')};var RuleEngine=require(_0xf605('0xc'));function getId(_0x293061,_0x24f362,_0x1c1e52){return util[_0xf605('0xd')](_0xf605('0xe'),_0x293061,_0x24f362||0x0,_0x1c1e52||0x0);}function getIntervals(_0x1c9564,_0x45229e){var _0x334247=[];if(!_[_0xf605('0xf')](_0x45229e[_0xf605('0x10')])&&!_[_0xf605('0xf')](_0x1c9564[_0x45229e[_0xf605('0x10')]])&&!_['isNil'](_0x1c9564[_0x45229e[_0xf605('0x10')]][_0xf605('0x11')])){_0x334247=_[_0xf605('0x12')](_0x1c9564[_0x45229e['IntervalId']][_0xf605('0x11')],'interval');}else if(!_['isNil'](_0x45229e[_0xf605('0x13')])){_0x334247=[_0x45229e[_0xf605('0x13')]];}return _0x334247;}exports[_0xf605('0x14')]=function(_0x1d9f9a){_0x1d9f9a[_0xf605('0x15')]={};return new BPromise(function(_0x55d2a2,_0x1720e1){var _0x517223={'Start':function(_0x435d71){var _0x26c4b1=this;return new Promise(function(_0x59ae72,_0x471799){if(_0x435d71){try{var _0x2d1a46=[];var _0x40211a=getId(_0x435d71[_0xf605('0x16')],_0x435d71[_0xf605('0x17')]?_0x435d71[_0xf605('0x17')]['id']:0x0,_0x435d71[_0xf605('0x18')]?_0x435d71[_0xf605('0x18')]['id']:0x0);if(_0x435d71[_0xf605('0x19')]&&_['isArray'](_0x435d71[_0xf605('0x19')])&&_0x435d71[_0xf605('0x19')][_0xf605('0x1a')]){for(var _0x3763f6=0x0;_0x3763f6<_0x435d71[_0xf605('0x19')][_0xf605('0x1a')];_0x3763f6+=0x1){var _0x13ccef=_0x435d71['applications'][_0x3763f6];if(fs[_0xf605('0x1b')](path[_0xf605('0x1c')](__dirname,'applications',_0x13ccef[_0xf605('0x1d')]+_0xf605('0x1e')))){var _0x20bd96=[];switch(_0x13ccef[_0xf605('0x1d')]['toLowerCase']()){case _0xf605('0x1f'):var _0x206626=_0x13ccef[_0xf605('0x20')]['split'](',');if(_0x435d71[_0xf605('0x16')]===_0xf605('0x21')){_0x20bd96[_0xf605('0x22')](_0x206626[0x0]);_0x20bd96[_0xf605('0x22')](_0x206626[0x1]);_0x20bd96['push'](_0x206626[_0xf605('0x23')](0x2,_0x206626[_0xf605('0x1a')])[_0xf605('0x1c')](','));}else{_0x20bd96[_0xf605('0x22')](_0x206626[0x0]);_0x20bd96[_0xf605('0x22')](_0x206626[_0xf605('0x23')](0x1,_0x206626['length'])[_0xf605('0x1c')](','));}break;case _0xf605('0x24'):var _0x109051=_0x13ccef[_0xf605('0x20')]['split'](',');_0x20bd96['push'](_0x109051[0x0]);_0x20bd96[_0xf605('0x22')](_0x109051[0x1]);_0x20bd96['push'](_0x109051[_0xf605('0x23')](0x2,_0x109051[_0xf605('0x1a')])[_0xf605('0x1c')](','));break;case _0xf605('0x25'):var _0x44f0ee=_0x13ccef[_0xf605('0x20')][_0xf605('0x26')](',');_0x20bd96[_0xf605('0x22')](_0x44f0ee[0x0]);_0x20bd96[_0xf605('0x22')](_0x44f0ee[0x1]);_0x20bd96[_0xf605('0x22')](_0x44f0ee[0x2]);_0x20bd96[_0xf605('0x22')](_0x44f0ee[0x3]);_0x20bd96[_0xf605('0x22')](_0x44f0ee[_0xf605('0x23')](0x4,_0x44f0ee[_0xf605('0x1a')])[_0xf605('0x1c')](','));break;case'amazonlex':var _0x444c50=_0x13ccef[_0xf605('0x20')][_0xf605('0x26')](',');_0x20bd96[_0xf605('0x22')](_0x444c50[0x0]);_0x20bd96[_0xf605('0x22')](_0x444c50[0x1]);_0x20bd96[_0xf605('0x22')](_0x444c50[0x2]);_0x20bd96[_0xf605('0x22')](_0x444c50[0x3]);_0x20bd96['push'](_0x444c50[_0xf605('0x23')](0x4,_0x444c50[_0xf605('0x1a')])['join'](','));break;case _0xf605('0x17'):_0x20bd96[_0xf605('0x22')](_0x13ccef[_0xf605('0x20')]);break;case'tag':_0x20bd96['push'](_0x13ccef[_0xf605('0x27')]);_0x20bd96[_0xf605('0x22')](_0x13ccef[_0xf605('0x20')]);break;default:_0x20bd96=_['isNil'](_0x13ccef[_0xf605('0x20')])?[]:_0x13ccef['appdata'][_0xf605('0x26')](',');}var _0x59e17d={'id':util[_0xf605('0xd')]('%s:%s:%s',_0x40211a,_0x13ccef['id'],_0x13ccef[_0xf605('0x1d')]),'condition':require(_0xf605('0x28'))['condition'](_0x40211a,getIntervals(_0x1d9f9a['intervals'],_0x13ccef),_0x1d9f9a),'consequence':require(_0xf605('0x29')+_0x13ccef[_0xf605('0x1d')])[_0xf605('0x2a')](_0x40211a,_0x20bd96,_0x1d9f9a,_0x435d71),'p':_0x13ccef[_0xf605('0x2b')]||0x0};logger[_0xf605('0x2c')]('Push\x20new\x20rule',_0x59e17d['id'],_0xf605('0x2d'),getIntervals(_0x1d9f9a[_0xf605('0x2e')],_0x13ccef)[_0xf605('0x1c')](_0xf605('0x2f')));_0x2d1a46['push'](_0x59e17d);}else{logger[_0xf605('0x30')](_0xf605('0x31'),path['join'](__dirname,_0xf605('0x19'),_0x13ccef[_0xf605('0x1d')]+_0xf605('0x1e')));}}_0x1d9f9a[_0xf605('0x15')][_0x40211a]=new RuleEngine(_0x2d1a46);_0x1d9f9a['rules'][_0x40211a]['execute'](_0x435d71,function(_0x1730c3){logger['info'](_0xf605('0x32'),JSON[_0xf605('0x33')](_0x1730c3[_0xf605('0x34')]));if(_0x1d9f9a[_0xf605('0x15')][_0x40211a]){_0x1d9f9a[_0xf605('0x15')][_0x40211a][_0xf605('0x35')](_0xf605('0x36'));}});return _0x59ae72({'code':0xc8,'message':_0x435d71});}else{logger[_0xf605('0x2c')](_0xf605('0x37'));return _0x59ae72({'code':0xc8,'message':_0x435d71});}}catch(_0x41bd2b){logger[_0xf605('0x30')](_0x41bd2b[_0xf605('0x38')]);return _0x471799(_0x26c4b1['error'](0x1f4,_0x41bd2b));}}return _0x471799('routing\x20is\x20empty');});},'AcceptMessage':function(_0x39ce4e){var _0xbf6b24=this;return new Promise(function(_0x3a383e,_0x42aa2c){if(_0x39ce4e[_0xf605('0x39')]&&_0x39ce4e[_0xf605('0x39')]['id']){if(_0x1d9f9a[_0xf605('0x3a')][_0x39ce4e['agent']['id']]){_0x1d9f9a[_0xf605('0x3a')][_0x39ce4e['agent']['id']][_0xf605('0x3b')]=![];_0x1d9f9a['agents'][_0x39ce4e[_0xf605('0x39')]['id']][_0xf605('0x3c')]=undefined;}}if(_0x39ce4e[_0xf605('0x17')]&&_0x39ce4e[_0xf605('0x17')]['id']){try{var _0x6a44f0=getId(_0x39ce4e['channel'],_0x39ce4e['message']?_0x39ce4e['message']['id']:0x0,_0x39ce4e['interaction']?_0x39ce4e[_0xf605('0x18')]['id']:0x0);if(_0x1d9f9a[_0xf605('0x15')][_0x6a44f0]){_0x1d9f9a[_0xf605('0x15')][_0x6a44f0][_0xf605('0x35')](_0xf605('0x3d'));if(rpc[_0x39ce4e[_0xf605('0x16')]+_0xf605('0x3e')]){rpc[_0x39ce4e[_0xf605('0x16')]+'QueueReport']['update'](_0x6a44f0,{'UserId':_0x39ce4e[_0xf605('0x17')][_0xf605('0x3f')]})[_0xf605('0x40')](function(_0x288226){logger[_0xf605('0x30')]('error\x20update\x20queue\x20report');});}}return _0x3a383e({'code':0xc8,'message':_0x39ce4e});}catch(_0x2da3ba){logger[_0xf605('0x30')](_0x2da3ba['stack']);return _0x42aa2c(_0xbf6b24['error'](0x1f4,_0x2da3ba));}}logger[_0xf605('0x30')](_0xf605('0x41'));return _0x42aa2c(_0xbf6b24['error'](0x1f4,_0xf605('0x41')));});},'RejectMessage':function(_0x31e5b7){var _0x2d0217=this;return new Promise(function(_0x426c90,_0x1c55e7){if(_0x31e5b7[_0xf605('0x39')]&&_0x31e5b7['agent']['id']){try{if(_0x1d9f9a[_0xf605('0x3a')][_0x31e5b7['agent']['id']]){_0x1d9f9a['agents'][_0x31e5b7['agent']['id']][_0xf605('0x3b')]=![];_0x1d9f9a[_0xf605('0x3a')][_0x31e5b7[_0xf605('0x39')]['id']][_0xf605('0x3c')]=undefined;}return _0x426c90({'code':0xc8,'message':_0x31e5b7});}catch(_0x4f1ee4){logger[_0xf605('0x30')](_0x4f1ee4[_0xf605('0x38')]);return _0x1c55e7(_0x2d0217[_0xf605('0x30')](0x1f4,_0x4f1ee4));}}logger[_0xf605('0x30')](_0xf605('0x41'));return _0x1c55e7(_0x2d0217[_0xf605('0x30')](0x1f4,_0xf605('0x41')));});},'AbandonInteraction':function(_0x11de29){var _0x4e02e0=this;return new Promise(function(_0x4f8a7f,_0x1a5075){if(_0x11de29[_0xf605('0x16')]&&_0x11de29[_0xf605('0x18')]&&_0x11de29['interaction']['id']){try{var _0xfc7799=getId(_0x11de29[_0xf605('0x16')],_0x11de29[_0xf605('0x17')]?_0x11de29[_0xf605('0x17')]['id']:0x0,_0x11de29[_0xf605('0x18')]?_0x11de29[_0xf605('0x18')]['id']:0x0);if(_0x1d9f9a[_0xf605('0x15')][_0xfc7799]){_0x1d9f9a[_0xf605('0x15')][_0xfc7799]['emit'](_0xf605('0x3d'));}return _0x4f8a7f({'code':0xc8,'message':_0x11de29});}catch(_0x10c939){logger[_0xf605('0x30')](_0x10c939[_0xf605('0x38')]);return _0x1a5075(_0x4e02e0[_0xf605('0x30')](0x1f4,_0x10c939));}}logger[_0xf605('0x30')](_0xf605('0x41'));return _0x1a5075(_0x4e02e0[_0xf605('0x30')](0x1f4,'message\x20is\x20empty'));});},'AgentCapacity':function(_0x1aedd9){var _0x1d5c0c=this;return new Promise(function(_0x161160,_0x22ac61){if(_0x1d9f9a[_0xf605('0x3a')]['hasOwnProperty'](_0x1aedd9['id'])){for(var _0x3d0c89 in _0x1aedd9[_0xf605('0x42')]){if(_0x1aedd9['capacity'][_0xf605('0x43')](_0x3d0c89)){if(_0x1d9f9a[_0xf605('0x3a')][_0x1aedd9['id']][_0xf605('0x43')](_0x3d0c89+_0xf605('0x44'))){_0x1d9f9a[_0xf605('0x3a')][_0x1aedd9['id']][_0x3d0c89+_0xf605('0x44')]=parseInt(_0x1aedd9['capacity'][_0x3d0c89],0xa);}}}_0x1d9f9a[_0xf605('0x3a')][_0x1aedd9['id']][_0xf605('0x45')]();return _0x161160({'code':0xc8,'message':_0x1d9f9a[_0xf605('0x3a')][_0x1aedd9['id']]});}else{return _0x22ac61(_0x1d5c0c[_0xf605('0x30')](0x1f4,_0xf605('0x46')));}});},'Agents':function(_0xdb16ab){return new Promise(function(_0x5b8e3f,_0x22c2c0){var _0x36717b=_[_0xf605('0x47')](_0x1d9f9a[_0xf605('0x3a')]);_0x5b8e3f({'count':_0x36717b[_0xf605('0x1a')],'rows':_0x36717b});});},'ChatQueues':function(_0x535086){return new Promise(function(_0x1fee76,_0x50422b){var _0x55c4af=[];for(var _0x31a9b7 in _0x1d9f9a[_0xf605('0x48')]){if(_0x1d9f9a['chatQueues'][_0xf605('0x43')](_0x31a9b7)){var _0x27b496=_0x1d9f9a[_0xf605('0x48')][_0x31a9b7];var _0x2d54d5={'id':_0x27b496['id'],'available':_0x27b496[_0xf605('0x49')],'loggedIn':_0x27b496['loggedIn'],'name':_0x27b496[_0xf605('0x4a')],'paused':_0x27b496[_0xf605('0x4b')],'waiting':_0x27b496['waiting']};_0x55c4af[_0xf605('0x22')](_0x2d54d5);}}_0x1fee76({'count':_0x55c4af[_0xf605('0x1a')],'rows':_0x55c4af});});},'MailQueues':function(_0x187bd0){return new Promise(function(_0x5862b5,_0x342829){var _0x20babe=[];for(var _0x47aa51 in _0x1d9f9a[_0xf605('0x4c')]){if(_0x1d9f9a[_0xf605('0x4c')][_0xf605('0x43')](_0x47aa51)){var _0x52f62c=_0x1d9f9a[_0xf605('0x4c')][_0x47aa51];var _0x4d94dc={'id':_0x52f62c['id'],'available':_0x52f62c[_0xf605('0x49')],'loggedIn':_0x52f62c[_0xf605('0x4d')],'name':_0x52f62c['name'],'paused':_0x52f62c[_0xf605('0x4b')],'waiting':_0x52f62c[_0xf605('0x4e')]};_0x20babe[_0xf605('0x22')](_0x4d94dc);}}_0x5862b5({'count':_0x20babe[_0xf605('0x1a')],'rows':_0x20babe});});},'OpenchannelQueues':function(_0x944f6a){return new Promise(function(_0x46fc43,_0x357198){var _0x5bb220=[];for(var _0x20b111 in _0x1d9f9a['openchannelQueues']){if(_0x1d9f9a[_0xf605('0x4f')][_0xf605('0x43')](_0x20b111)){var _0x3ac5c5=_0x1d9f9a[_0xf605('0x4f')][_0x20b111];var _0x23574d={'id':_0x3ac5c5['id'],'available':_0x3ac5c5[_0xf605('0x49')],'loggedIn':_0x3ac5c5[_0xf605('0x4d')],'name':_0x3ac5c5[_0xf605('0x4a')],'paused':_0x3ac5c5[_0xf605('0x4b')],'waiting':_0x3ac5c5[_0xf605('0x4e')]};_0x5bb220[_0xf605('0x22')](_0x23574d);}}_0x46fc43({'count':_0x5bb220['length'],'rows':_0x5bb220});});},'SmsQueues':function(_0x568098){return new Promise(function(_0x5e998a,_0x29cefa){var _0x2285cb=[];for(var _0x183135 in _0x1d9f9a['smsQueues']){if(_0x1d9f9a['smsQueues'][_0xf605('0x43')](_0x183135)){var _0x260246=_0x1d9f9a['smsQueues'][_0x183135];var _0x46b305={'id':_0x260246['id'],'available':_0x260246['available'],'loggedIn':_0x260246['loggedIn'],'name':_0x260246['name'],'paused':_0x260246[_0xf605('0x4b')],'waiting':_0x260246[_0xf605('0x4e')]};_0x2285cb[_0xf605('0x22')](_0x46b305);}}_0x5e998a({'count':_0x2285cb[_0xf605('0x1a')],'rows':_0x2285cb});});},'FaxQueues':function(_0x4b147f){return new Promise(function(_0x268fde,_0x365d09){var _0xb51bbd=[];for(var _0x3f0e1b in _0x1d9f9a[_0xf605('0x50')]){if(_0x1d9f9a['faxQueues']['hasOwnProperty'](_0x3f0e1b)){var _0xdfcdf3=_0x1d9f9a['faxQueues'][_0x3f0e1b];var _0x2028e0={'id':_0xdfcdf3['id'],'available':_0xdfcdf3['available'],'loggedIn':_0xdfcdf3[_0xf605('0x4d')],'name':_0xdfcdf3[_0xf605('0x4a')],'paused':_0xdfcdf3['paused'],'waiting':_0xdfcdf3['waiting']};_0xb51bbd[_0xf605('0x22')](_0x2028e0);}}_0x268fde({'count':_0xb51bbd[_0xf605('0x1a')],'rows':_0xb51bbd});});},'WhatsappQueues':function(_0x37d211){return new Promise(function(_0x4dd2f3,_0x42949d){var _0x389e77=[];for(var _0x524b94 in _0x1d9f9a['whatsappQueues']){if(_0x1d9f9a[_0xf605('0x51')]['hasOwnProperty'](_0x524b94)){var _0x228b8f=_0x1d9f9a['whatsappQueues'][_0x524b94];var _0x270466={'id':_0x228b8f['id'],'available':_0x228b8f[_0xf605('0x49')],'loggedIn':_0x228b8f[_0xf605('0x4d')],'name':_0x228b8f[_0xf605('0x4a')],'paused':_0x228b8f[_0xf605('0x4b')],'waiting':_0x228b8f['waiting']};_0x389e77[_0xf605('0x22')](_0x270466);}}_0x4dd2f3({'count':_0x389e77[_0xf605('0x1a')],'rows':_0x389e77});});},'ChatQueuesWaitingInteractions':function(_0x269ffc){return new Promise(function(_0x35c5cf,_0x1bf92a){var _0x921cf2=_[_0xf605('0x47')](_0x1d9f9a[_0xf605('0x52')]);_0x35c5cf({'count':_0x921cf2[_0xf605('0x1a')],'rows':_0x921cf2});});},'MailQueuesWaitingInteractions':function(_0x560325){return new Promise(function(_0x3834c3,_0x8682bd){var _0x1ed41a=_[_0xf605('0x47')](_0x1d9f9a[_0xf605('0x53')]);_0x3834c3({'count':_0x1ed41a[_0xf605('0x1a')],'rows':_0x1ed41a});});},'OpenchannelQueuesWaitingInteractions':function(_0x2ffeb0){return new Promise(function(_0x40e78f,_0x3be896){var _0x1ec9da=_['values'](_0x1d9f9a['openchannelQueuesWaitingInteractions']);_0x40e78f({'count':_0x1ec9da[_0xf605('0x1a')],'rows':_0x1ec9da});});},'SmsQueuesWaitingInteractions':function(_0x24cbf2){return new Promise(function(_0x4e8195,_0x1b0d27){var _0x19fca5=_[_0xf605('0x47')](_0x1d9f9a[_0xf605('0x54')]);_0x4e8195({'count':_0x19fca5[_0xf605('0x1a')],'rows':_0x19fca5});});},'FaxQueuesWaitingInteractions':function(_0x2ec2e4){return new Promise(function(_0x2fd28c,_0x302250){var _0xc819a2=_['values'](_0x1d9f9a['faxQueuesWaitingInteractions']);_0x2fd28c({'count':_0xc819a2[_0xf605('0x1a')],'rows':_0xc819a2});});},'WhatsappQueuesWaitingInteractions':function(_0x1eff26){return new Promise(function(_0x3fc8b1,_0x720e3c){var _0x4bd699=_['values'](_0x1d9f9a[_0xf605('0x55')]);_0x3fc8b1({'count':_0x4bd699[_0xf605('0x1a')],'rows':_0x4bd699});});}};var _0x3e402d=jayson[_0xf605('0x56')](_0x517223)[_0xf605('0x57')]();_0x3e402d['on'](_0xf605('0x30'),function(_0x3a3b4a){logger[_0xf605('0x30')](JSON[_0xf605('0x33')](_0x3a3b4a));return _0x1720e1(_0x3a3b4a);});_0x3e402d[_0xf605('0x14')](0x232c,_0xf605('0x58'),function(){console[_0xf605('0x59')](_0xf605('0x5a'),0x232c);return _0x55d2a2(_0xf605('0x5b')+0x232c);});});};
\ No newline at end of file
+var _0x756b=['autoreply','appdata','split','channel','push','slice','dialogflow','dialogflowv2','amazonlex','tag','TagId','./interval','./applications/','consequence','priority','info','Push\x20new\x20rule','on\x20interval','\x20|\x20','Please\x20create\x20a\x20new\x20file\x20under','rules','Applications\x20executed','matchPath','emit','complete','error','stack','routing\x20is\x20empty','agent','agents','busy','busyQueue','QueueReport','update','UserId','error\x20update\x20queue\x20report','message\x20is\x20empty','end','capacity','hasOwnProperty','CurrentCapacity','updateRealtime','chatQueues','loggedIn','name','paused','mailQueues','available','waiting','openchannelQueues','smsQueues','faxQueues','whatsappQueues','values','chatQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','server','http','stringify','127.0.0.1','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','util','bluebird','uuid','../../../config/environment','../../../config/logger','../rpc/openchannelQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','format','%s.%s.%s','IntervalId','Intervals','map','interval','isNil','listen','message','interaction','applications','isArray','length','join','app','.js'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x756b,0xa0));var _0xb756=function(_0x8f7a95,_0x5d3c63){_0x8f7a95=_0x8f7a95-0x0;var _0x19f92d=_0x756b[_0x8f7a95];return _0x19f92d;};'use strict';var _=require(_0xb756('0x0'));var util=require(_0xb756('0x1'));var path=require('path');var fs=require('fs');var jayson=require('jayson/promise');var BPromise=require(_0xb756('0x2'));var uuid=require(_0xb756('0x3'));var config=require(_0xb756('0x4'));var logger=require(_0xb756('0x5'))('routing');var rpc={'openchannelQueueReport':require(_0xb756('0x6')),'mailQueueReport':require('../rpc/mailQueueReport'),'chatQueueReport':require(_0xb756('0x7')),'smsQueueReport':require(_0xb756('0x8')),'faxQueueReport':require(_0xb756('0x9')),'whatsappQueueReport':require(_0xb756('0xa'))};var RuleEngine=require(_0xb756('0xb'));function getId(_0x752aa7,_0x23f129,_0x22ffaf){return util[_0xb756('0xc')](_0xb756('0xd'),_0x752aa7,_0x23f129||0x0,_0x22ffaf||0x0);}function getIntervals(_0x3147d7,_0x354b4d){var _0x5409cd=[];if(!_['isNil'](_0x354b4d[_0xb756('0xe')])&&!_['isNil'](_0x3147d7[_0x354b4d[_0xb756('0xe')]])&&!_['isNil'](_0x3147d7[_0x354b4d[_0xb756('0xe')]][_0xb756('0xf')])){_0x5409cd=_[_0xb756('0x10')](_0x3147d7[_0x354b4d[_0xb756('0xe')]]['Intervals'],_0xb756('0x11'));}else if(!_[_0xb756('0x12')](_0x354b4d['interval'])){_0x5409cd=[_0x354b4d[_0xb756('0x11')]];}return _0x5409cd;}exports[_0xb756('0x13')]=function(_0x9202c3){_0x9202c3['rules']={};return new BPromise(function(_0xfc0e96,_0x28a8c7){var _0x304cb5={'Start':function(_0x3be0d1){var _0x27fbae=this;return new Promise(function(_0x2bd0d5,_0x3bba62){if(_0x3be0d1){try{var _0xa0a5ed=[];var _0x1eb7b0=getId(_0x3be0d1['channel'],_0x3be0d1['message']?_0x3be0d1[_0xb756('0x14')]['id']:0x0,_0x3be0d1[_0xb756('0x15')]?_0x3be0d1['interaction']['id']:0x0);if(_0x3be0d1[_0xb756('0x16')]&&_[_0xb756('0x17')](_0x3be0d1[_0xb756('0x16')])&&_0x3be0d1[_0xb756('0x16')][_0xb756('0x18')]){for(var _0x446c58=0x0;_0x446c58<_0x3be0d1['applications']['length'];_0x446c58+=0x1){var _0x12ca18=_0x3be0d1[_0xb756('0x16')][_0x446c58];if(fs['existsSync'](path[_0xb756('0x19')](__dirname,_0xb756('0x16'),_0x12ca18[_0xb756('0x1a')]+_0xb756('0x1b')))){var _0x5a72a3=[];switch(_0x12ca18[_0xb756('0x1a')]['toLowerCase']()){case _0xb756('0x1c'):var _0x456b50=_0x12ca18[_0xb756('0x1d')][_0xb756('0x1e')](',');if(_0x3be0d1[_0xb756('0x1f')]==='mail'){_0x5a72a3[_0xb756('0x20')](_0x456b50[0x0]);_0x5a72a3['push'](_0x456b50[0x1]);_0x5a72a3[_0xb756('0x20')](_0x456b50[_0xb756('0x21')](0x2,_0x456b50[_0xb756('0x18')])['join'](','));}else{_0x5a72a3[_0xb756('0x20')](_0x456b50[0x0]);_0x5a72a3[_0xb756('0x20')](_0x456b50['slice'](0x1,_0x456b50['length'])[_0xb756('0x19')](','));}break;case _0xb756('0x22'):var _0x1c201b=_0x12ca18[_0xb756('0x1d')][_0xb756('0x1e')](',');_0x5a72a3[_0xb756('0x20')](_0x1c201b[0x0]);_0x5a72a3[_0xb756('0x20')](_0x1c201b[0x1]);_0x5a72a3[_0xb756('0x20')](_0x1c201b[_0xb756('0x21')](0x2,_0x1c201b[_0xb756('0x18')])['join'](','));break;case _0xb756('0x23'):var _0x2edcd1=_0x12ca18[_0xb756('0x1d')]['split'](',');_0x5a72a3['push'](_0x2edcd1[0x0]);_0x5a72a3[_0xb756('0x20')](_0x2edcd1[0x1]);_0x5a72a3[_0xb756('0x20')](_0x2edcd1[0x2]);_0x5a72a3[_0xb756('0x20')](_0x2edcd1[0x3]);_0x5a72a3['push'](_0x2edcd1[_0xb756('0x21')](0x4,_0x2edcd1[_0xb756('0x18')])[_0xb756('0x19')](','));break;case _0xb756('0x24'):var _0x5ab197=_0x12ca18[_0xb756('0x1d')][_0xb756('0x1e')](',');_0x5a72a3[_0xb756('0x20')](_0x5ab197[0x0]);_0x5a72a3[_0xb756('0x20')](_0x5ab197[0x1]);_0x5a72a3['push'](_0x5ab197[0x2]);_0x5a72a3[_0xb756('0x20')](_0x5ab197[0x3]);_0x5a72a3['push'](_0x5ab197['slice'](0x4,_0x5ab197[_0xb756('0x18')])[_0xb756('0x19')](','));break;case'message':_0x5a72a3[_0xb756('0x20')](_0x12ca18['appdata']);break;case _0xb756('0x25'):_0x5a72a3[_0xb756('0x20')](_0x12ca18[_0xb756('0x26')]);_0x5a72a3[_0xb756('0x20')](_0x12ca18[_0xb756('0x1d')]);break;default:_0x5a72a3=_[_0xb756('0x12')](_0x12ca18['appdata'])?[]:_0x12ca18[_0xb756('0x1d')][_0xb756('0x1e')](',');}var _0x50c9b5={'id':util[_0xb756('0xc')]('%s:%s:%s',_0x1eb7b0,_0x12ca18['id'],_0x12ca18[_0xb756('0x1a')]),'condition':require(_0xb756('0x27'))['condition'](_0x1eb7b0,getIntervals(_0x9202c3['intervals'],_0x12ca18),_0x9202c3),'consequence':require(_0xb756('0x28')+_0x12ca18[_0xb756('0x1a')])[_0xb756('0x29')](_0x1eb7b0,_0x5a72a3,_0x9202c3,_0x3be0d1),'p':_0x12ca18[_0xb756('0x2a')]||0x0};logger[_0xb756('0x2b')](_0xb756('0x2c'),_0x50c9b5['id'],_0xb756('0x2d'),getIntervals(_0x9202c3['intervals'],_0x12ca18)['join'](_0xb756('0x2e')));_0xa0a5ed[_0xb756('0x20')](_0x50c9b5);}else{logger['error'](_0xb756('0x2f'),path[_0xb756('0x19')](__dirname,_0xb756('0x16'),_0x12ca18[_0xb756('0x1a')]+'.js'));}}_0x9202c3[_0xb756('0x30')][_0x1eb7b0]=new RuleEngine(_0xa0a5ed);_0x9202c3[_0xb756('0x30')][_0x1eb7b0]['execute'](_0x3be0d1,function(_0x58af8c){logger[_0xb756('0x2b')](_0xb756('0x31'),JSON['stringify'](_0x58af8c[_0xb756('0x32')]));if(_0x9202c3[_0xb756('0x30')][_0x1eb7b0]){_0x9202c3[_0xb756('0x30')][_0x1eb7b0][_0xb756('0x33')](_0xb756('0x34'));}});return _0x2bd0d5({'code':0xc8,'message':_0x3be0d1});}else{logger[_0xb756('0x2b')]('No\x20applications\x20to\x20execute');return _0x2bd0d5({'code':0xc8,'message':_0x3be0d1});}}catch(_0x3345e1){logger[_0xb756('0x35')](_0x3345e1[_0xb756('0x36')]);return _0x3bba62(_0x27fbae[_0xb756('0x35')](0x1f4,_0x3345e1));}}return _0x3bba62(_0xb756('0x37'));});},'AcceptMessage':function(_0x268c5a){var _0x1419f7=this;return new Promise(function(_0x573686,_0x410c1b){if(_0x268c5a['agent']&&_0x268c5a[_0xb756('0x38')]['id']){if(_0x9202c3[_0xb756('0x39')][_0x268c5a[_0xb756('0x38')]['id']]){_0x9202c3[_0xb756('0x39')][_0x268c5a[_0xb756('0x38')]['id']][_0xb756('0x3a')]=![];_0x9202c3[_0xb756('0x39')][_0x268c5a[_0xb756('0x38')]['id']][_0xb756('0x3b')]=undefined;}}if(_0x268c5a[_0xb756('0x14')]&&_0x268c5a[_0xb756('0x14')]['id']){try{var _0x395126=getId(_0x268c5a[_0xb756('0x1f')],_0x268c5a[_0xb756('0x14')]?_0x268c5a[_0xb756('0x14')]['id']:0x0,_0x268c5a[_0xb756('0x15')]?_0x268c5a[_0xb756('0x15')]['id']:0x0);if(_0x9202c3[_0xb756('0x30')][_0x395126]){_0x9202c3[_0xb756('0x30')][_0x395126][_0xb756('0x33')]('end');if(rpc[_0x268c5a[_0xb756('0x1f')]+_0xb756('0x3c')]){rpc[_0x268c5a[_0xb756('0x1f')]+_0xb756('0x3c')][_0xb756('0x3d')](_0x395126,{'UserId':_0x268c5a['message'][_0xb756('0x3e')]})['catch'](function(_0x1cbb88){logger['error'](_0xb756('0x3f'));});}}return _0x573686({'code':0xc8,'message':_0x268c5a});}catch(_0x4e35d6){logger[_0xb756('0x35')](_0x4e35d6['stack']);return _0x410c1b(_0x1419f7['error'](0x1f4,_0x4e35d6));}}logger[_0xb756('0x35')]('message\x20is\x20empty');return _0x410c1b(_0x1419f7[_0xb756('0x35')](0x1f4,_0xb756('0x40')));});},'RejectMessage':function(_0xc1d432){var _0x1e7175=this;return new Promise(function(_0x48b877,_0x1defae){if(_0xc1d432[_0xb756('0x38')]&&_0xc1d432['agent']['id']){try{if(_0x9202c3['agents'][_0xc1d432[_0xb756('0x38')]['id']]){_0x9202c3[_0xb756('0x39')][_0xc1d432[_0xb756('0x38')]['id']][_0xb756('0x3a')]=![];_0x9202c3['agents'][_0xc1d432[_0xb756('0x38')]['id']]['busyQueue']=undefined;}return _0x48b877({'code':0xc8,'message':_0xc1d432});}catch(_0x588d78){logger[_0xb756('0x35')](_0x588d78[_0xb756('0x36')]);return _0x1defae(_0x1e7175['error'](0x1f4,_0x588d78));}}logger[_0xb756('0x35')](_0xb756('0x40'));return _0x1defae(_0x1e7175[_0xb756('0x35')](0x1f4,_0xb756('0x40')));});},'AbandonInteraction':function(_0x1e33ab){var _0x4a8a0c=this;return new Promise(function(_0x1af6aa,_0x44bff6){if(_0x1e33ab[_0xb756('0x1f')]&&_0x1e33ab[_0xb756('0x15')]&&_0x1e33ab[_0xb756('0x15')]['id']){try{var _0x40b37d=getId(_0x1e33ab[_0xb756('0x1f')],_0x1e33ab[_0xb756('0x14')]?_0x1e33ab[_0xb756('0x14')]['id']:0x0,_0x1e33ab[_0xb756('0x15')]?_0x1e33ab[_0xb756('0x15')]['id']:0x0);if(_0x9202c3['rules'][_0x40b37d]){_0x9202c3[_0xb756('0x30')][_0x40b37d][_0xb756('0x33')](_0xb756('0x41'));}return _0x1af6aa({'code':0xc8,'message':_0x1e33ab});}catch(_0x61cd64){logger[_0xb756('0x35')](_0x61cd64[_0xb756('0x36')]);return _0x44bff6(_0x4a8a0c['error'](0x1f4,_0x61cd64));}}logger['error'](_0xb756('0x40'));return _0x44bff6(_0x4a8a0c[_0xb756('0x35')](0x1f4,_0xb756('0x40')));});},'AgentCapacity':function(_0x46a7d9){var _0x52dd4c=this;return new Promise(function(_0x3605bf,_0xab8454){if(_0x9202c3[_0xb756('0x39')]['hasOwnProperty'](_0x46a7d9['id'])){for(var _0x5683c2 in _0x46a7d9[_0xb756('0x42')]){if(_0x46a7d9[_0xb756('0x42')][_0xb756('0x43')](_0x5683c2)){if(_0x9202c3[_0xb756('0x39')][_0x46a7d9['id']]['hasOwnProperty'](_0x5683c2+'CurrentCapacity')){_0x9202c3[_0xb756('0x39')][_0x46a7d9['id']][_0x5683c2+_0xb756('0x44')]=parseInt(_0x46a7d9['capacity'][_0x5683c2],0xa);}}}_0x9202c3['agents'][_0x46a7d9['id']][_0xb756('0x45')]();return _0x3605bf({'code':0xc8,'message':_0x9202c3[_0xb756('0x39')][_0x46a7d9['id']]});}else{return _0xab8454(_0x52dd4c[_0xb756('0x35')](0x1f4,'agent\x20not\x20found'));}});},'Agents':function(_0x5e015d){return new Promise(function(_0x50acc4,_0x3732ad){var _0x43fe5a=_['values'](_0x9202c3[_0xb756('0x39')]);_0x50acc4({'count':_0x43fe5a[_0xb756('0x18')],'rows':_0x43fe5a});});},'ChatQueues':function(_0x38fb5c){return new Promise(function(_0x4a19f1,_0x2e24ff){var _0x3f360b=[];for(var _0x16059c in _0x9202c3['chatQueues']){if(_0x9202c3[_0xb756('0x46')]['hasOwnProperty'](_0x16059c)){var _0x7cc1e3=_0x9202c3['chatQueues'][_0x16059c];var _0x3f97d0={'id':_0x7cc1e3['id'],'available':_0x7cc1e3['available'],'loggedIn':_0x7cc1e3[_0xb756('0x47')],'name':_0x7cc1e3[_0xb756('0x48')],'paused':_0x7cc1e3[_0xb756('0x49')],'waiting':_0x7cc1e3['waiting']};_0x3f360b[_0xb756('0x20')](_0x3f97d0);}}_0x4a19f1({'count':_0x3f360b['length'],'rows':_0x3f360b});});},'MailQueues':function(_0x4455fc){return new Promise(function(_0x295abd,_0xe468d){var _0xd54ffa=[];for(var _0x5566fb in _0x9202c3['mailQueues']){if(_0x9202c3['mailQueues'][_0xb756('0x43')](_0x5566fb)){var _0xe3371e=_0x9202c3[_0xb756('0x4a')][_0x5566fb];var _0x58ca92={'id':_0xe3371e['id'],'available':_0xe3371e[_0xb756('0x4b')],'loggedIn':_0xe3371e[_0xb756('0x47')],'name':_0xe3371e[_0xb756('0x48')],'paused':_0xe3371e['paused'],'waiting':_0xe3371e[_0xb756('0x4c')]};_0xd54ffa[_0xb756('0x20')](_0x58ca92);}}_0x295abd({'count':_0xd54ffa['length'],'rows':_0xd54ffa});});},'OpenchannelQueues':function(_0x5bef67){return new Promise(function(_0x36d7fe,_0x4ac01e){var _0x43424f=[];for(var _0x510498 in _0x9202c3[_0xb756('0x4d')]){if(_0x9202c3['openchannelQueues']['hasOwnProperty'](_0x510498)){var _0x28b2ce=_0x9202c3[_0xb756('0x4d')][_0x510498];var _0x5a7376={'id':_0x28b2ce['id'],'available':_0x28b2ce[_0xb756('0x4b')],'loggedIn':_0x28b2ce['loggedIn'],'name':_0x28b2ce[_0xb756('0x48')],'paused':_0x28b2ce[_0xb756('0x49')],'waiting':_0x28b2ce['waiting']};_0x43424f[_0xb756('0x20')](_0x5a7376);}}_0x36d7fe({'count':_0x43424f[_0xb756('0x18')],'rows':_0x43424f});});},'SmsQueues':function(_0x496a2d){return new Promise(function(_0x2dc57e,_0x33aeed){var _0x4bf030=[];for(var _0x296437 in _0x9202c3[_0xb756('0x4e')]){if(_0x9202c3[_0xb756('0x4e')]['hasOwnProperty'](_0x296437)){var _0x25cf63=_0x9202c3[_0xb756('0x4e')][_0x296437];var _0x13bf21={'id':_0x25cf63['id'],'available':_0x25cf63['available'],'loggedIn':_0x25cf63['loggedIn'],'name':_0x25cf63[_0xb756('0x48')],'paused':_0x25cf63[_0xb756('0x49')],'waiting':_0x25cf63[_0xb756('0x4c')]};_0x4bf030[_0xb756('0x20')](_0x13bf21);}}_0x2dc57e({'count':_0x4bf030['length'],'rows':_0x4bf030});});},'FaxQueues':function(_0x963f8a){return new Promise(function(_0x201598,_0x4cf4e2){var _0x17c072=[];for(var _0x5165de in _0x9202c3['faxQueues']){if(_0x9202c3[_0xb756('0x4f')]['hasOwnProperty'](_0x5165de)){var _0x598e2a=_0x9202c3[_0xb756('0x4f')][_0x5165de];var _0x503d8d={'id':_0x598e2a['id'],'available':_0x598e2a[_0xb756('0x4b')],'loggedIn':_0x598e2a[_0xb756('0x47')],'name':_0x598e2a[_0xb756('0x48')],'paused':_0x598e2a[_0xb756('0x49')],'waiting':_0x598e2a[_0xb756('0x4c')]};_0x17c072[_0xb756('0x20')](_0x503d8d);}}_0x201598({'count':_0x17c072[_0xb756('0x18')],'rows':_0x17c072});});},'WhatsappQueues':function(_0x44f5c0){return new Promise(function(_0x39e555,_0x1e30ce){var _0x5c98be=[];for(var _0x299999 in _0x9202c3['whatsappQueues']){if(_0x9202c3[_0xb756('0x50')][_0xb756('0x43')](_0x299999)){var _0x93c1b5=_0x9202c3['whatsappQueues'][_0x299999];var _0x345245={'id':_0x93c1b5['id'],'available':_0x93c1b5[_0xb756('0x4b')],'loggedIn':_0x93c1b5[_0xb756('0x47')],'name':_0x93c1b5[_0xb756('0x48')],'paused':_0x93c1b5[_0xb756('0x49')],'waiting':_0x93c1b5[_0xb756('0x4c')]};_0x5c98be[_0xb756('0x20')](_0x345245);}}_0x39e555({'count':_0x5c98be[_0xb756('0x18')],'rows':_0x5c98be});});},'ChatQueuesWaitingInteractions':function(_0x6f1dd7){return new Promise(function(_0x35d6b3,_0x3ef859){var _0x1af7c1=_[_0xb756('0x51')](_0x9202c3[_0xb756('0x52')]);_0x35d6b3({'count':_0x1af7c1[_0xb756('0x18')],'rows':_0x1af7c1});});},'MailQueuesWaitingInteractions':function(_0x3eaf02){return new Promise(function(_0x31d926,_0x350765){var _0x48a31b=_[_0xb756('0x51')](_0x9202c3['mailQueuesWaitingInteractions']);_0x31d926({'count':_0x48a31b['length'],'rows':_0x48a31b});});},'OpenchannelQueuesWaitingInteractions':function(_0x5f4d55){return new Promise(function(_0xf7bfd6,_0x2751f6){var _0x2ecb64=_[_0xb756('0x51')](_0x9202c3[_0xb756('0x53')]);_0xf7bfd6({'count':_0x2ecb64[_0xb756('0x18')],'rows':_0x2ecb64});});},'SmsQueuesWaitingInteractions':function(_0x4b5292){return new Promise(function(_0x263fca,_0x1cf2b8){var _0x261808=_[_0xb756('0x51')](_0x9202c3[_0xb756('0x54')]);_0x263fca({'count':_0x261808[_0xb756('0x18')],'rows':_0x261808});});},'FaxQueuesWaitingInteractions':function(_0x3be5fe){return new Promise(function(_0x175a81,_0x286aa1){var _0x28d56e=_[_0xb756('0x51')](_0x9202c3[_0xb756('0x55')]);_0x175a81({'count':_0x28d56e[_0xb756('0x18')],'rows':_0x28d56e});});},'WhatsappQueuesWaitingInteractions':function(_0x535ab1){return new Promise(function(_0xf9be78,_0x48d85d){var _0x3b51e3=_[_0xb756('0x51')](_0x9202c3[_0xb756('0x56')]);_0xf9be78({'count':_0x3b51e3[_0xb756('0x18')],'rows':_0x3b51e3});});}};var _0x2f383b=jayson[_0xb756('0x57')](_0x304cb5)[_0xb756('0x58')]();_0x2f383b['on']('error',function(_0x43a10f){logger[_0xb756('0x35')](JSON[_0xb756('0x59')](_0x43a10f));return _0x28a8c7(_0x43a10f);});_0x2f383b[_0xb756('0x13')](0x232c,_0xb756('0x5a'),function(){console[_0xb756('0x5b')](_0xb756('0x5c'),0x232c);return _0xfc0e96(_0xb756('0x5d')+0x232c);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x92e4=['push','Command','format','iftime\x20%s','indexOf','true','some','[%s][INTERVAL]\x20%s\x20%s','join','\x20|\x20','when','log','stack','util','bluebird','jayson/promise','lodash','../../../config/logger','routing','client','request','then','error','message','result','catch','condition','rules','info','[%s][INTERVAL]\x20ROUTING\x20STOPPED','stop','length'];(function(_0x57cac1,_0x4d9703){var _0x28d12e=function(_0x514d67){while(--_0x514d67){_0x57cac1['push'](_0x57cac1['shift']());}};_0x28d12e(++_0x4d9703);}(_0x92e4,0x16d));var _0x492e=function(_0x23a398,_0x290ced){_0x23a398=_0x23a398-0x0;var _0x360ad9=_0x92e4[_0x23a398];return _0x360ad9;};'use strict';var util=require(_0x492e('0x0'));var BPromise=require(_0x492e('0x1'));var jayson=require(_0x492e('0x2'));var _=require(_0x492e('0x3'));var logger=require(_0x492e('0x4'))(_0x492e('0x5'));var client=jayson[_0x492e('0x6')]['http']({'port':0x232a});function request(_0x490317,_0x293825){return new BPromise(function(_0x2ca3ca,_0x2e662b){return client[_0x492e('0x7')](_0x490317,_0x293825)[_0x492e('0x8')](function(_0x298199){if(_0x298199[_0x492e('0x9')]){return _0x2e662b(_0x298199[_0x492e('0x9')][_0x492e('0xa')]);}else{return _0x2ca3ca(_0x298199[_0x492e('0xb')]);}})[_0x492e('0xc')](function(_0x372834){return _0x2e662b(_0x372834);});});}exports[_0x492e('0xd')]=function(_0x2424cf,_0x396b01,_0x728227){return function(_0x3dbd88){if(_0x728227['rules']&&!_0x728227[_0x492e('0xe')][_0x2424cf]){logger[_0x492e('0xf')](_0x492e('0x10'),_0x2424cf);return _0x3dbd88[_0x492e('0x11')]();}var _0x11146e=[];for(var _0x3bcbd5=0x0;_0x3bcbd5<_0x396b01[_0x492e('0x12')];_0x3bcbd5+=0x1){_0x11146e[_0x492e('0x13')](request(_0x492e('0x14'),{'command':util[_0x492e('0x15')](_0x492e('0x16'),_0x396b01[_0x3bcbd5])})[_0x492e('0x8')](function(_0x342391){return _0x342391&&_0x342391[_0x492e('0xa')]&&_0x342391[_0x492e('0xa')][_0x492e('0x17')](_0x492e('0x18'))>=0x0?!![]:![];})[_0x492e('0xc')](function(_0xe9d417){logger[_0x492e('0x9')]('[%s][INTERVAL]\x20%s',_0x2424cf,_0x396b01[_0x3bcbd5]);}));}BPromise['all'](_0x11146e)[_0x492e('0x8')](function(_0x4c66bb){var _0x8ae501=_[_0x492e('0x19')](_0x4c66bb);logger[_0x492e('0xf')](_0x492e('0x1a'),_0x2424cf,_0x396b01[_0x492e('0x1b')](_0x492e('0x1c')),_0x8ae501);_0x3dbd88[_0x492e('0x1d')](_0x8ae501);})[_0x492e('0xc')](function(_0x4ac6ee){console[_0x492e('0x1e')](_0x4ac6ee);logger['error'](_0x492e('0x1a'),_0x2424cf,_0x396b01['join'](_0x492e('0x1c')),_0x4ac6ee[_0x492e('0x1f')]);_0x3dbd88[_0x492e('0x11')]();});};};
\ No newline at end of file
+var _0xa5cc=['result','catch','condition','rules','info','[%s][INTERVAL]\x20ROUTING\x20STOPPED','stop','length','Command','iftime\x20%s','indexOf','true','[%s][INTERVAL]\x20%s','all','then','some','[%s][INTERVAL]\x20%s\x20%s','join','\x20|\x20','when','jayson/promise','lodash','../../../config/logger','routing','client','http','request','error','message'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa5cc,0xa5));var _0xca5c=function(_0x36ed48,_0x1ee0d4){_0x36ed48=_0x36ed48-0x0;var _0x51c63a=_0xa5cc[_0x36ed48];return _0x51c63a;};'use strict';var util=require('util');var BPromise=require('bluebird');var jayson=require(_0xca5c('0x0'));var _=require(_0xca5c('0x1'));var logger=require(_0xca5c('0x2'))(_0xca5c('0x3'));var client=jayson[_0xca5c('0x4')][_0xca5c('0x5')]({'port':0x232a});function request(_0x37c0be,_0x1ba8d3){return new BPromise(function(_0x358861,_0x3e0d86){return client[_0xca5c('0x6')](_0x37c0be,_0x1ba8d3)['then'](function(_0x38b1bb){if(_0x38b1bb[_0xca5c('0x7')]){return _0x3e0d86(_0x38b1bb[_0xca5c('0x7')][_0xca5c('0x8')]);}else{return _0x358861(_0x38b1bb[_0xca5c('0x9')]);}})[_0xca5c('0xa')](function(_0x1264c9){return _0x3e0d86(_0x1264c9);});});}exports[_0xca5c('0xb')]=function(_0x27d02b,_0x490bef,_0x2d02c6){return function(_0xfea44d){if(_0x2d02c6[_0xca5c('0xc')]&&!_0x2d02c6[_0xca5c('0xc')][_0x27d02b]){logger[_0xca5c('0xd')](_0xca5c('0xe'),_0x27d02b);return _0xfea44d[_0xca5c('0xf')]();}var _0x545a28=[];for(var _0x1459fd=0x0;_0x1459fd<_0x490bef[_0xca5c('0x10')];_0x1459fd+=0x1){_0x545a28['push'](request(_0xca5c('0x11'),{'command':util['format'](_0xca5c('0x12'),_0x490bef[_0x1459fd])})['then'](function(_0x2b0d33){return _0x2b0d33&&_0x2b0d33[_0xca5c('0x8')]&&_0x2b0d33[_0xca5c('0x8')][_0xca5c('0x13')](_0xca5c('0x14'))>=0x0?!![]:![];})['catch'](function(_0x710563){logger['error'](_0xca5c('0x15'),_0x27d02b,_0x490bef[_0x1459fd]);}));}BPromise[_0xca5c('0x16')](_0x545a28)[_0xca5c('0x17')](function(_0x3e6988){var _0x285d68=_[_0xca5c('0x18')](_0x3e6988);logger[_0xca5c('0xd')](_0xca5c('0x19'),_0x27d02b,_0x490bef[_0xca5c('0x1a')](_0xca5c('0x1b')),_0x285d68);_0xfea44d[_0xca5c('0x1c')](_0x285d68);})['catch'](function(_0x986fa0){console['log'](_0x986fa0);logger['error']('[%s][INTERVAL]\x20%s\x20%s',_0x27d02b,_0x490bef[_0xca5c('0x1a')](_0xca5c('0x1b')),_0x986fa0['stack']);_0xfea44d[_0xca5c('0xf')]();});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1be1=['destuniqueid','agentcalled','debug','called','error','[%s][agents][agentcalled]','isNil','[%s][agents][agentringnoanswer]','[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout','agentringnoanswerAt','now','lastevent','timeout','ringtime','talktime','push','forIn','includes','[%s][agents][queuecallerabandon]','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','agentringnoanswer','abandoned','reason','holdtime','[%s][agents][agentconnect]','agentconnectAt','connectedlinename','connect','answered_elsewhere','answeredelsewheremembername','agentcomplete','diffTime','complete','[%s][agents][agentcomplete]','blindtransfer','transfereruniqueid','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfer','transfertype','blind','transferexten','transferuniqueid','origtransfereruniqueid','origtransfererlinkedid','[%s][agents][attendedtransfer]\x20agent:%s','secondtransfereruniqueid','transfereeuniqueid','agententerreason','clone','calleridnum','calleridname','agentcalledAt','secondtransfererlinkedid','ATTENDED','secondtransfererexten','transfertargetuniqueid','hangup','[%s][agents][hangup]','cause','rejected','indexOf','splice','agentcompleteAt','agent','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','./utils','info','format','[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','queue','membername','interface','connectedlinenum','getVoiceQueueByName','then','type','agentacw','acw','acwtime','acwTimeout','CreateVoiceAgentReport','request'];(function(_0x390f42,_0xddf05){var _0x127f64=function(_0x20e457){while(--_0x20e457){_0x390f42['push'](_0x390f42['shift']());}};_0x127f64(++_0xddf05);}(_0x1be1,0x192));var _0x11be=function(_0x5cf5b3,_0x41b04b){_0x5cf5b3=_0x5cf5b3-0x0;var _0x2c436c=_0x1be1[_0x5cf5b3];return _0x2c436c;};'use strict';var _=require('lodash');var util=require('util');var utils=require(_0x11be('0x0'));var agents={};var transfers={};var unanswered=[];function writeDB(_0x33a55d,_0x5527b3){utils[_0x11be('0x1')](util[_0x11be('0x2')](_0x11be('0x3'),_0x33a55d[_0x11be('0x4')],_0x33a55d['channel'],_0x33a55d[_0x11be('0x5')],_0x33a55d[_0x11be('0x6')],_0x33a55d[_0x11be('0x7')],_0x33a55d['calleridnum'],_0x33a55d[_0x11be('0x8')],_0x33a55d['lastevent']));if(_0x33a55d[_0x11be('0x5')]){utils[_0x11be('0x9')](_0x33a55d[_0x11be('0x5')])[_0x11be('0xa')](function(_0x162eaa){if(_0x162eaa){_0x33a55d['type']=_0x162eaa[_0x11be('0xb')];_0x33a55d[_0x11be('0xc')]=_0x33a55d['agentcomplete']?_0x162eaa[_0x11be('0xd')]:![];_0x33a55d[_0x11be('0xe')]=_0x33a55d[_0x11be('0xc')]?_0x162eaa[_0x11be('0xf')]:0x0;}utils['request'](_0x11be('0x10'),_0x33a55d);});}else{utils[_0x11be('0x11')](_0x11be('0x10'),_0x33a55d);}if(_0x5527b3){delete transfers[_0x33a55d['uniqueid']];}else{delete agents[_0x33a55d[_0x11be('0x12')]];}}exports[_0x11be('0x13')]=function(_0x4ce3ae){try{utils[_0x11be('0x14')](util['format']('[%s][agents][agentcalled]',_0x4ce3ae['uniqueid']),_0x4ce3ae);agents[_0x4ce3ae['destuniqueid']]=_0x4ce3ae;agents[_0x4ce3ae['destuniqueid']]['agentcalledAt']=utils['now']();agents[_0x4ce3ae[_0x11be('0x12')]]['lastevent']=_0x11be('0x15');agents[_0x4ce3ae[_0x11be('0x12')]][_0x11be('0x8')]=null;agents[_0x4ce3ae[_0x11be('0x12')]]['connectedlinename']=null;utils[_0x11be('0x1')](util[_0x11be('0x2')]('[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called',_0x4ce3ae[_0x11be('0x4')],agents[_0x4ce3ae[_0x11be('0x12')]][_0x11be('0x6')],_0x4ce3ae['destuniqueid']));}catch(_0x51ba82){utils[_0x11be('0x16')](util[_0x11be('0x2')](_0x11be('0x17'),_0x4ce3ae[_0x11be('0x4')]),_0x51ba82);}};exports['agentringnoanswer']=function(_0x12a5bd){try{if(!_[_0x11be('0x18')](agents[_0x12a5bd[_0x11be('0x12')]])){utils[_0x11be('0x14')](util[_0x11be('0x2')](_0x11be('0x19'),_0x12a5bd[_0x11be('0x4')]),_0x12a5bd);utils[_0x11be('0x1')](util[_0x11be('0x2')](_0x11be('0x1a'),_0x12a5bd['uniqueid'],agents[_0x12a5bd[_0x11be('0x12')]][_0x11be('0x6')],_0x12a5bd[_0x11be('0x12')]));agents[_0x12a5bd['destuniqueid']]['agentringnoanswer']=!![];agents[_0x12a5bd[_0x11be('0x12')]][_0x11be('0x1b')]=utils[_0x11be('0x1c')]();agents[_0x12a5bd['destuniqueid']][_0x11be('0x1d')]='timeout';agents[_0x12a5bd[_0x11be('0x12')]]['reason']=_0x11be('0x1e');agents[_0x12a5bd[_0x11be('0x12')]]['holdtime']=_0x12a5bd[_0x11be('0x1f')]?parseInt(_0x12a5bd[_0x11be('0x1f')])/0x3e8:0x0;agents[_0x12a5bd[_0x11be('0x12')]][_0x11be('0x20')]=0x0;unanswered[_0x11be('0x21')](_0x12a5bd[_0x11be('0x12')]);}}catch(_0xf5a6ac){utils[_0x11be('0x16')](util[_0x11be('0x2')]('[%s][agents][agentringnoanswer]',_0x12a5bd[_0x11be('0x4')]),_0xf5a6ac);}};exports['queuecallerabandon']=function(_0x182f6b){try{_[_0x11be('0x22')](agents,function(_0x510476,_0x584d4c){if(_0x510476[_0x11be('0x4')]==_0x182f6b[_0x11be('0x4')]&&!_[_0x11be('0x23')](unanswered,_0x510476[_0x11be('0x12')])){utils[_0x11be('0x14')](util[_0x11be('0x2')](_0x11be('0x24'),_0x182f6b[_0x11be('0x4')]),_0x182f6b);utils[_0x11be('0x1')](util['format'](_0x11be('0x25'),_0x182f6b[_0x11be('0x4')],_0x510476[_0x11be('0x6')],_0x510476[_0x11be('0x12')]));_0x510476[_0x11be('0x26')]=!![];_0x510476[_0x11be('0x1b')]=utils['now']();_0x510476[_0x11be('0x1d')]=_0x11be('0x27');_0x510476[_0x11be('0x28')]=_0x11be('0x27');_0x510476[_0x11be('0x29')]=_0x182f6b['holdtime'];_0x510476[_0x11be('0x20')]=0x0;writeDB(_0x510476);}});}catch(_0x254be5){utils[_0x11be('0x16')](util['format'](_0x11be('0x24'),_0x182f6b['uniqueid']),_0x254be5);}};exports['agentconnect']=function(_0x4c1f4d){try{if(agents[_0x4c1f4d['destuniqueid']]){utils[_0x11be('0x14')](util[_0x11be('0x2')](_0x11be('0x2a'),_0x4c1f4d['uniqueid']),_0x4c1f4d);utils[_0x11be('0x1')](util[_0x11be('0x2')]('[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect',_0x4c1f4d[_0x11be('0x4')],agents[_0x4c1f4d['destuniqueid']][_0x11be('0x6')],_0x4c1f4d['destuniqueid']));agents[_0x4c1f4d[_0x11be('0x12')]][_0x11be('0x2b')]=utils[_0x11be('0x1c')]();agents[_0x4c1f4d[_0x11be('0x12')]]['connectedlinenum']=_0x4c1f4d[_0x11be('0x8')];agents[_0x4c1f4d[_0x11be('0x12')]][_0x11be('0x2c')]=_0x4c1f4d[_0x11be('0x2c')];agents[_0x4c1f4d['destuniqueid']][_0x11be('0x29')]=_0x4c1f4d[_0x11be('0x1f')];agents[_0x4c1f4d[_0x11be('0x12')]][_0x11be('0x1d')]=_0x11be('0x2d');_[_0x11be('0x22')](agents,function(_0x5742d1,_0x5ee47c){if(_0x5742d1[_0x11be('0x12')]!=_0x4c1f4d[_0x11be('0x12')]&&_0x5742d1['uniqueid']==_0x4c1f4d[_0x11be('0x4')]){_0x5742d1[_0x11be('0x20')]=0x0;_0x5742d1['holdtime']=_0x4c1f4d[_0x11be('0x1f')];_0x5742d1['agentringnoanswer']=!![];_0x5742d1[_0x11be('0x1b')]=utils['now']();_0x5742d1[_0x11be('0x1d')]=_0x11be('0x2e');_0x5742d1['reason']=_0x11be('0x2e');_0x5742d1['answeredelsewheredestinationuniqueid']=_0x4c1f4d[_0x11be('0x12')];_0x5742d1[_0x11be('0x2f')]=_0x4c1f4d[_0x11be('0x6')];writeDB(_0x5742d1);}});}}catch(_0x383604){utils[_0x11be('0x16')](util[_0x11be('0x2')](_0x11be('0x2a'),_0x4c1f4d['uniqueid']),_0x383604);}};exports[_0x11be('0x30')]=function(_0x18cddf){try{if(!_[_0x11be('0x18')](agents[_0x18cddf[_0x11be('0x12')]])){utils['debug'](util['format']('[%s][agents][agentcomplete]',_0x18cddf[_0x11be('0x4')]),_0x18cddf);utils['info'](util[_0x11be('0x2')]('[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete',_0x18cddf[_0x11be('0x4')],agents[_0x18cddf[_0x11be('0x12')]][_0x11be('0x6')],_0x18cddf[_0x11be('0x12')]));agents[_0x18cddf[_0x11be('0x12')]][_0x11be('0x30')]=!![];agents[_0x18cddf[_0x11be('0x12')]]['agentcompleteAt']=utils[_0x11be('0x1c')]();agents[_0x18cddf['destuniqueid']][_0x11be('0x20')]=utils[_0x11be('0x31')](agents[_0x18cddf[_0x11be('0x12')]]['agentcompleteAt'],agents[_0x18cddf['destuniqueid']]['agentconnectAt']);agents[_0x18cddf[_0x11be('0x12')]][_0x11be('0x28')]=_0x18cddf['reason'];agents[_0x18cddf['destuniqueid']]['lastevent']=_0x11be('0x32');writeDB(agents[_0x18cddf[_0x11be('0x12')]]);}}catch(_0x2cdf2a){utils[_0x11be('0x16')](util[_0x11be('0x2')](_0x11be('0x33'),_0x18cddf[_0x11be('0x4')]),_0x2cdf2a);}};exports[_0x11be('0x34')]=function(_0x2ce110){try{if(!_[_0x11be('0x18')](agents[_0x2ce110[_0x11be('0x35')]])){utils['debug'](util[_0x11be('0x2')](_0x11be('0x36'),_0x2ce110['uniqueid']),_0x2ce110);utils['info'](util['format'](_0x11be('0x37'),_0x2ce110['uniqueid'],agents[_0x2ce110[_0x11be('0x35')]][_0x11be('0x6')],agents[_0x2ce110[_0x11be('0x35')]][_0x11be('0x4')]));agents[_0x2ce110[_0x11be('0x35')]][_0x11be('0x38')]=!![];agents[_0x2ce110[_0x11be('0x35')]][_0x11be('0x39')]=_0x11be('0x3a');agents[_0x2ce110['transfereruniqueid']][_0x11be('0x3b')]=_0x2ce110['extension'];agents[_0x2ce110[_0x11be('0x35')]][_0x11be('0x3c')]=agents[_0x2ce110['transfereruniqueid']][_0x11be('0x4')];}}catch(_0x1164a4){utils[_0x11be('0x16')](util[_0x11be('0x2')](_0x11be('0x36'),_0x2ce110['uniqueid']),_0x1164a4);}};exports['attendedtransfer']=function(_0x46764d){try{utils[_0x11be('0x14')](util['format']('[%s][agents][attendedtransfer]',_0x46764d[_0x11be('0x3d')]),_0x46764d);if(_0x46764d[_0x11be('0x3d')]==_0x46764d[_0x11be('0x3e')]){if(!_['isNil'](agents[_0x46764d['secondtransfereruniqueid']])){utils['info'](util[_0x11be('0x2')](_0x11be('0x3f'),_0x46764d[_0x11be('0x3d')],agents[_0x46764d['secondtransfereruniqueid']]['membername']));agents[_0x46764d[_0x11be('0x40')]][_0x11be('0x38')]=!![];agents[_0x46764d[_0x11be('0x40')]][_0x11be('0x39')]='ATTENDED';agents[_0x46764d[_0x11be('0x40')]]['transferexten']=_0x46764d['origtransfererexten'];agents[_0x46764d['secondtransfereruniqueid']]['transferuniqueid']=_0x46764d[_0x11be('0x3d')];}if(_0x46764d[_0x11be('0x41')]&&agents[_0x46764d[_0x11be('0x41')]]){agents[_0x46764d[_0x11be('0x41')]][_0x11be('0x42')]=0x1;transfers[_0x46764d[_0x11be('0x41')]]=_[_0x11be('0x43')](agents[_0x46764d['transfereeuniqueid']]);transfers[_0x46764d['transfereeuniqueid']][_0x11be('0x44')]=agents[_0x46764d[_0x11be('0x40')]][_0x11be('0x44')];transfers[_0x46764d[_0x11be('0x41')]][_0x11be('0x45')]=agents[_0x46764d[_0x11be('0x40')]][_0x11be('0x45')];transfers[_0x46764d[_0x11be('0x41')]][_0x11be('0x46')]=utils['now']();transfers[_0x46764d[_0x11be('0x41')]][_0x11be('0x2b')]=utils[_0x11be('0x1c')]();transfers[_0x46764d['transfereeuniqueid']][_0x11be('0x29')]=0x0;transfers[_0x46764d[_0x11be('0x41')]]['agententerreason']=0x2;}}else if(_0x46764d['secondtransfereruniqueid']==_0x46764d[_0x11be('0x47')]){if(!_[_0x11be('0x18')](agents[_0x46764d[_0x11be('0x3d')]])){utils[_0x11be('0x1')](util['format'](_0x11be('0x3f'),_0x46764d[_0x11be('0x3d')],agents[_0x46764d[_0x11be('0x3d')]][_0x11be('0x6')]));agents[_0x46764d[_0x11be('0x3d')]][_0x11be('0x38')]=!![];agents[_0x46764d[_0x11be('0x3d')]][_0x11be('0x39')]=_0x11be('0x48');agents[_0x46764d['origtransfereruniqueid']]['transferexten']=_0x46764d[_0x11be('0x49')];agents[_0x46764d[_0x11be('0x3d')]]['transferuniqueid']=_0x46764d[_0x11be('0x40')];}if(_0x46764d[_0x11be('0x4a')]&&agents[_0x46764d[_0x11be('0x4a')]]){agents[_0x46764d[_0x11be('0x4a')]][_0x11be('0x42')]=0x1;transfers[_0x46764d[_0x11be('0x4a')]]=_[_0x11be('0x43')](agents[_0x46764d['transfertargetuniqueid']]);transfers[_0x46764d['transfertargetuniqueid']][_0x11be('0x44')]=agents[_0x46764d[_0x11be('0x3d')]][_0x11be('0x44')];transfers[_0x46764d['transfertargetuniqueid']][_0x11be('0x45')]=agents[_0x46764d[_0x11be('0x3d')]][_0x11be('0x45')];transfers[_0x46764d[_0x11be('0x4a')]][_0x11be('0x46')]=utils[_0x11be('0x1c')]();transfers[_0x46764d[_0x11be('0x4a')]][_0x11be('0x2b')]=utils[_0x11be('0x1c')]();transfers[_0x46764d[_0x11be('0x4a')]][_0x11be('0x29')]=0x0;transfers[_0x46764d[_0x11be('0x4a')]][_0x11be('0x42')]=0x2;}}}catch(_0x464459){utils[_0x11be('0x16')](util[_0x11be('0x2')]('[%s][agents][attendedtransfer]',_0x46764d['origtransfereruniqueid']),_0x464459);}};exports[_0x11be('0x4b')]=function(_0x554aba){try{utils[_0x11be('0x14')](util[_0x11be('0x2')](_0x11be('0x4c'),_0x554aba[_0x11be('0x4')]),_0x554aba);if(agents[_0x554aba[_0x11be('0x4')]]&&agents[_0x554aba[_0x11be('0x4')]][_0x11be('0x28')]===_0x11be('0x1e')){if(_0x554aba[_0x11be('0x4d')]==='21'){agents[_0x554aba['uniqueid']][_0x11be('0x28')]=_0x11be('0x4e');agents[_0x554aba[_0x11be('0x4')]]['lastevent']=_0x11be('0x4e');}utils[_0x11be('0x1')](util['format']('[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s',_0x554aba['uniqueid'],agents[_0x554aba['uniqueid']][_0x11be('0x6')],agents[_0x554aba[_0x11be('0x4')]][_0x11be('0x28')],agents[_0x554aba[_0x11be('0x4')]][_0x11be('0x1d')]));writeDB(agents[_0x554aba['uniqueid']]);var _0x2c80b7=unanswered[_0x11be('0x4f')](_0x554aba[_0x11be('0x4')]);if(_0x2c80b7>-0x1){unanswered[_0x11be('0x50')](_0x2c80b7,0x1);}}if(transfers[_0x554aba[_0x11be('0x4')]]){transfers[_0x554aba['uniqueid']][_0x11be('0x30')]=!![];transfers[_0x554aba[_0x11be('0x4')]][_0x11be('0x51')]=utils[_0x11be('0x1c')]();transfers[_0x554aba['uniqueid']][_0x11be('0x20')]=utils[_0x11be('0x31')](transfers[_0x554aba[_0x11be('0x4')]][_0x11be('0x51')],transfers[_0x554aba[_0x11be('0x4')]][_0x11be('0x2b')]);transfers[_0x554aba['uniqueid']][_0x11be('0x28')]=_0x11be('0x52');transfers[_0x554aba[_0x11be('0x4')]][_0x11be('0x1d')]='complete';utils[_0x11be('0x1')](util['format'](_0x11be('0x53'),_0x554aba[_0x11be('0x4')],transfers[_0x554aba[_0x11be('0x4')]][_0x11be('0x6')],transfers[_0x554aba['uniqueid']][_0x11be('0x28')],transfers[_0x554aba[_0x11be('0x4')]]['lastevent']));writeDB(transfers[_0x554aba[_0x11be('0x4')]],!![]);}if(agents[_0x554aba[_0x11be('0x4')]]&&agents[_0x554aba[_0x11be('0x4')]][_0x11be('0x2b')]){agents[_0x554aba['uniqueid']][_0x11be('0x30')]=!![];agents[_0x554aba[_0x11be('0x4')]][_0x11be('0x51')]=utils[_0x11be('0x1c')]();agents[_0x554aba[_0x11be('0x4')]][_0x11be('0x20')]=utils[_0x11be('0x31')](agents[_0x554aba[_0x11be('0x4')]]['agentcompleteAt'],agents[_0x554aba[_0x11be('0x4')]]['agentconnectAt']);agents[_0x554aba['uniqueid']][_0x11be('0x28')]=agents[_0x554aba[_0x11be('0x4')]][_0x11be('0x38')]?_0x11be('0x38'):_0x11be('0x52');agents[_0x554aba[_0x11be('0x4')]][_0x11be('0x1d')]='complete';utils['info'](util[_0x11be('0x2')]('[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s',_0x554aba['uniqueid'],agents[_0x554aba[_0x11be('0x4')]]['membername'],agents[_0x554aba[_0x11be('0x4')]][_0x11be('0x28')],agents[_0x554aba['uniqueid']][_0x11be('0x1d')]));writeDB(agents[_0x554aba[_0x11be('0x4')]]);}}catch(_0x56d8d7){utils[_0x11be('0x16')](util[_0x11be('0x2')]('[%s][agents][hangup]',_0x554aba[_0x11be('0x4')]),_0x56d8d7);}};
\ No newline at end of file
+var _0xa9e0=['complete','[%s][agents][agentcomplete]','blindtransfer','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfereruniqueid','transfertype','blind','transferexten','extension','transferuniqueid','origtransfereruniqueid','origtransfererlinkedid','secondtransfereruniqueid','transfer','ATTENDED','transfereeuniqueid','agententerreason','clone','calleridname','[%s][agents][attendedtransfer]\x20agent:%s','transfertargetuniqueid','[%s][agents][attendedtransfer]','hangup','[%s][agents][hangup]','rejected','indexOf','splice','agent','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','lodash','util','./utils','info','[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','queue','membername','calleridnum','connectedlinenum','lastevent','type','agentacw','agentcomplete','acw','acwtime','request','CreateVoiceAgentReport','destuniqueid','agentcalled','format','[%s][agents][agentcalled]','agentcalledAt','called','[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called','error','agentringnoanswer','debug','[%s][agents][agentringnoanswer]','[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout','agentringnoanswerAt','now','reason','timeout','ringtime','push','queuecallerabandon','forIn','includes','[%s][agents][queuecallerabandon]','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','holdtime','talktime','agentconnect','[%s][agents][agentconnect]','[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','connectedlinename','answered_elsewhere','answeredelsewheredestinationuniqueid','answeredelsewheremembername','isNil','[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','diffTime'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4154a6,_0x2c0b8e){_0x4154a6=_0x4154a6-0x0;var _0x3b2786=_0xa9e0[_0x4154a6];return _0x3b2786;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var utils=require(_0x0a9e('0x2'));var agents={};var transfers={};var unanswered=[];function writeDB(_0x5dd881,_0x550fbc){utils[_0x0a9e('0x3')](util['format'](_0x0a9e('0x4'),_0x5dd881[_0x0a9e('0x5')],_0x5dd881[_0x0a9e('0x6')],_0x5dd881[_0x0a9e('0x7')],_0x5dd881[_0x0a9e('0x8')],_0x5dd881['interface'],_0x5dd881[_0x0a9e('0x9')],_0x5dd881[_0x0a9e('0xa')],_0x5dd881[_0x0a9e('0xb')]));if(_0x5dd881['queue']){utils['getVoiceQueueByName'](_0x5dd881[_0x0a9e('0x7')])['then'](function(_0x52cace){if(_0x52cace){_0x5dd881[_0x0a9e('0xc')]=_0x52cace[_0x0a9e('0xc')];_0x5dd881[_0x0a9e('0xd')]=_0x5dd881[_0x0a9e('0xe')]?_0x52cace[_0x0a9e('0xf')]:![];_0x5dd881[_0x0a9e('0x10')]=_0x5dd881['agentacw']?_0x52cace['acwTimeout']:0x0;}utils['request']('CreateVoiceAgentReport',_0x5dd881);});}else{utils[_0x0a9e('0x11')](_0x0a9e('0x12'),_0x5dd881);}if(_0x550fbc){delete transfers[_0x5dd881[_0x0a9e('0x5')]];}else{delete agents[_0x5dd881[_0x0a9e('0x13')]];}}exports[_0x0a9e('0x14')]=function(_0x69aeb7){try{utils['debug'](util[_0x0a9e('0x15')](_0x0a9e('0x16'),_0x69aeb7[_0x0a9e('0x5')]),_0x69aeb7);agents[_0x69aeb7[_0x0a9e('0x13')]]=_0x69aeb7;agents[_0x69aeb7[_0x0a9e('0x13')]][_0x0a9e('0x17')]=utils['now']();agents[_0x69aeb7[_0x0a9e('0x13')]]['lastevent']=_0x0a9e('0x18');agents[_0x69aeb7['destuniqueid']][_0x0a9e('0xa')]=null;agents[_0x69aeb7[_0x0a9e('0x13')]]['connectedlinename']=null;utils[_0x0a9e('0x3')](util['format'](_0x0a9e('0x19'),_0x69aeb7[_0x0a9e('0x5')],agents[_0x69aeb7[_0x0a9e('0x13')]][_0x0a9e('0x8')],_0x69aeb7[_0x0a9e('0x13')]));}catch(_0x2eb11f){utils[_0x0a9e('0x1a')](util[_0x0a9e('0x15')](_0x0a9e('0x16'),_0x69aeb7[_0x0a9e('0x5')]),_0x2eb11f);}};exports[_0x0a9e('0x1b')]=function(_0x105080){try{if(!_['isNil'](agents[_0x105080[_0x0a9e('0x13')]])){utils[_0x0a9e('0x1c')](util['format'](_0x0a9e('0x1d'),_0x105080['uniqueid']),_0x105080);utils['info'](util[_0x0a9e('0x15')](_0x0a9e('0x1e'),_0x105080[_0x0a9e('0x5')],agents[_0x105080[_0x0a9e('0x13')]]['membername'],_0x105080[_0x0a9e('0x13')]));agents[_0x105080[_0x0a9e('0x13')]][_0x0a9e('0x1b')]=!![];agents[_0x105080[_0x0a9e('0x13')]][_0x0a9e('0x1f')]=utils[_0x0a9e('0x20')]();agents[_0x105080[_0x0a9e('0x13')]]['lastevent']='timeout';agents[_0x105080[_0x0a9e('0x13')]][_0x0a9e('0x21')]=_0x0a9e('0x22');agents[_0x105080[_0x0a9e('0x13')]]['holdtime']=_0x105080[_0x0a9e('0x23')]?parseInt(_0x105080['ringtime'])/0x3e8:0x0;agents[_0x105080[_0x0a9e('0x13')]]['talktime']=0x0;unanswered[_0x0a9e('0x24')](_0x105080[_0x0a9e('0x13')]);}}catch(_0x25fba9){utils[_0x0a9e('0x1a')](util[_0x0a9e('0x15')](_0x0a9e('0x1d'),_0x105080[_0x0a9e('0x5')]),_0x25fba9);}};exports[_0x0a9e('0x25')]=function(_0x5a101a){try{_[_0x0a9e('0x26')](agents,function(_0x468813,_0x2b1f27){if(_0x468813[_0x0a9e('0x5')]==_0x5a101a['uniqueid']&&!_[_0x0a9e('0x27')](unanswered,_0x468813[_0x0a9e('0x13')])){utils[_0x0a9e('0x1c')](util[_0x0a9e('0x15')](_0x0a9e('0x28'),_0x5a101a[_0x0a9e('0x5')]),_0x5a101a);utils[_0x0a9e('0x3')](util[_0x0a9e('0x15')](_0x0a9e('0x29'),_0x5a101a['uniqueid'],_0x468813[_0x0a9e('0x8')],_0x468813['destuniqueid']));_0x468813[_0x0a9e('0x1b')]=!![];_0x468813[_0x0a9e('0x1f')]=utils[_0x0a9e('0x20')]();_0x468813[_0x0a9e('0xb')]=_0x0a9e('0x2a');_0x468813['reason']=_0x0a9e('0x2a');_0x468813[_0x0a9e('0x2b')]=_0x5a101a[_0x0a9e('0x2b')];_0x468813[_0x0a9e('0x2c')]=0x0;writeDB(_0x468813);}});}catch(_0x2b45ea){utils[_0x0a9e('0x1a')](util[_0x0a9e('0x15')](_0x0a9e('0x28'),_0x5a101a['uniqueid']),_0x2b45ea);}};exports[_0x0a9e('0x2d')]=function(_0x5e7238){try{if(agents[_0x5e7238[_0x0a9e('0x13')]]){utils[_0x0a9e('0x1c')](util[_0x0a9e('0x15')](_0x0a9e('0x2e'),_0x5e7238['uniqueid']),_0x5e7238);utils[_0x0a9e('0x3')](util[_0x0a9e('0x15')](_0x0a9e('0x2f'),_0x5e7238[_0x0a9e('0x5')],agents[_0x5e7238['destuniqueid']]['membername'],_0x5e7238[_0x0a9e('0x13')]));agents[_0x5e7238['destuniqueid']][_0x0a9e('0x30')]=utils[_0x0a9e('0x20')]();agents[_0x5e7238[_0x0a9e('0x13')]][_0x0a9e('0xa')]=_0x5e7238['connectedlinenum'];agents[_0x5e7238[_0x0a9e('0x13')]][_0x0a9e('0x31')]=_0x5e7238[_0x0a9e('0x31')];agents[_0x5e7238['destuniqueid']][_0x0a9e('0x2b')]=_0x5e7238[_0x0a9e('0x23')];agents[_0x5e7238[_0x0a9e('0x13')]]['lastevent']='connect';_[_0x0a9e('0x26')](agents,function(_0x40d766,_0x5adda1){if(_0x40d766[_0x0a9e('0x13')]!=_0x5e7238[_0x0a9e('0x13')]&&_0x40d766[_0x0a9e('0x5')]==_0x5e7238[_0x0a9e('0x5')]){_0x40d766['talktime']=0x0;_0x40d766['holdtime']=_0x5e7238[_0x0a9e('0x23')];_0x40d766[_0x0a9e('0x1b')]=!![];_0x40d766['agentringnoanswerAt']=utils[_0x0a9e('0x20')]();_0x40d766[_0x0a9e('0xb')]=_0x0a9e('0x32');_0x40d766['reason']=_0x0a9e('0x32');_0x40d766[_0x0a9e('0x33')]=_0x5e7238[_0x0a9e('0x13')];_0x40d766[_0x0a9e('0x34')]=_0x5e7238[_0x0a9e('0x8')];writeDB(_0x40d766);}});}}catch(_0xeaa5e5){utils[_0x0a9e('0x1a')](util[_0x0a9e('0x15')](_0x0a9e('0x2e'),_0x5e7238[_0x0a9e('0x5')]),_0xeaa5e5);}};exports[_0x0a9e('0xe')]=function(_0x148007){try{if(!_[_0x0a9e('0x35')](agents[_0x148007[_0x0a9e('0x13')]])){utils[_0x0a9e('0x1c')](util['format']('[%s][agents][agentcomplete]',_0x148007[_0x0a9e('0x5')]),_0x148007);utils[_0x0a9e('0x3')](util[_0x0a9e('0x15')](_0x0a9e('0x36'),_0x148007[_0x0a9e('0x5')],agents[_0x148007[_0x0a9e('0x13')]][_0x0a9e('0x8')],_0x148007[_0x0a9e('0x13')]));agents[_0x148007[_0x0a9e('0x13')]][_0x0a9e('0xe')]=!![];agents[_0x148007[_0x0a9e('0x13')]][_0x0a9e('0x37')]=utils['now']();agents[_0x148007[_0x0a9e('0x13')]][_0x0a9e('0x2c')]=utils[_0x0a9e('0x38')](agents[_0x148007[_0x0a9e('0x13')]][_0x0a9e('0x37')],agents[_0x148007[_0x0a9e('0x13')]][_0x0a9e('0x30')]);agents[_0x148007[_0x0a9e('0x13')]]['reason']=_0x148007[_0x0a9e('0x21')];agents[_0x148007['destuniqueid']][_0x0a9e('0xb')]=_0x0a9e('0x39');writeDB(agents[_0x148007[_0x0a9e('0x13')]]);}}catch(_0x562fb4){utils[_0x0a9e('0x1a')](util[_0x0a9e('0x15')](_0x0a9e('0x3a'),_0x148007[_0x0a9e('0x5')]),_0x562fb4);}};exports[_0x0a9e('0x3b')]=function(_0x37be73){try{if(!_[_0x0a9e('0x35')](agents[_0x37be73['transfereruniqueid']])){utils[_0x0a9e('0x1c')](util[_0x0a9e('0x15')](_0x0a9e('0x3c'),_0x37be73[_0x0a9e('0x5')]),_0x37be73);utils[_0x0a9e('0x3')](util[_0x0a9e('0x15')](_0x0a9e('0x3d'),_0x37be73[_0x0a9e('0x5')],agents[_0x37be73[_0x0a9e('0x3e')]]['membername'],agents[_0x37be73[_0x0a9e('0x3e')]][_0x0a9e('0x5')]));agents[_0x37be73['transfereruniqueid']]['transfer']=!![];agents[_0x37be73['transfereruniqueid']][_0x0a9e('0x3f')]=_0x0a9e('0x40');agents[_0x37be73[_0x0a9e('0x3e')]][_0x0a9e('0x41')]=_0x37be73[_0x0a9e('0x42')];agents[_0x37be73[_0x0a9e('0x3e')]][_0x0a9e('0x43')]=agents[_0x37be73[_0x0a9e('0x3e')]]['uniqueid'];}}catch(_0x4b1b9f){utils['error'](util[_0x0a9e('0x15')](_0x0a9e('0x3c'),_0x37be73[_0x0a9e('0x5')]),_0x4b1b9f);}};exports['attendedtransfer']=function(_0x2b69d9){try{utils[_0x0a9e('0x1c')](util['format']('[%s][agents][attendedtransfer]',_0x2b69d9[_0x0a9e('0x44')]),_0x2b69d9);if(_0x2b69d9['origtransfereruniqueid']==_0x2b69d9[_0x0a9e('0x45')]){if(!_['isNil'](agents[_0x2b69d9[_0x0a9e('0x46')]])){utils[_0x0a9e('0x3')](util[_0x0a9e('0x15')]('[%s][agents][attendedtransfer]\x20agent:%s',_0x2b69d9[_0x0a9e('0x44')],agents[_0x2b69d9[_0x0a9e('0x46')]]['membername']));agents[_0x2b69d9['secondtransfereruniqueid']][_0x0a9e('0x47')]=!![];agents[_0x2b69d9[_0x0a9e('0x46')]]['transfertype']=_0x0a9e('0x48');agents[_0x2b69d9['secondtransfereruniqueid']][_0x0a9e('0x41')]=_0x2b69d9['origtransfererexten'];agents[_0x2b69d9[_0x0a9e('0x46')]]['transferuniqueid']=_0x2b69d9['origtransfereruniqueid'];}if(_0x2b69d9['transfereeuniqueid']&&agents[_0x2b69d9[_0x0a9e('0x49')]]){agents[_0x2b69d9['transfereeuniqueid']][_0x0a9e('0x4a')]=0x1;transfers[_0x2b69d9[_0x0a9e('0x49')]]=_[_0x0a9e('0x4b')](agents[_0x2b69d9[_0x0a9e('0x49')]]);transfers[_0x2b69d9[_0x0a9e('0x49')]][_0x0a9e('0x9')]=agents[_0x2b69d9[_0x0a9e('0x46')]][_0x0a9e('0x9')];transfers[_0x2b69d9['transfereeuniqueid']][_0x0a9e('0x4c')]=agents[_0x2b69d9[_0x0a9e('0x46')]][_0x0a9e('0x4c')];transfers[_0x2b69d9[_0x0a9e('0x49')]][_0x0a9e('0x17')]=utils[_0x0a9e('0x20')]();transfers[_0x2b69d9['transfereeuniqueid']][_0x0a9e('0x30')]=utils[_0x0a9e('0x20')]();transfers[_0x2b69d9['transfereeuniqueid']][_0x0a9e('0x2b')]=0x0;transfers[_0x2b69d9['transfereeuniqueid']][_0x0a9e('0x4a')]=0x2;}}else if(_0x2b69d9['secondtransfereruniqueid']==_0x2b69d9['secondtransfererlinkedid']){if(!_['isNil'](agents[_0x2b69d9[_0x0a9e('0x44')]])){utils['info'](util[_0x0a9e('0x15')](_0x0a9e('0x4d'),_0x2b69d9[_0x0a9e('0x44')],agents[_0x2b69d9[_0x0a9e('0x44')]][_0x0a9e('0x8')]));agents[_0x2b69d9[_0x0a9e('0x44')]]['transfer']=!![];agents[_0x2b69d9[_0x0a9e('0x44')]]['transfertype']=_0x0a9e('0x48');agents[_0x2b69d9[_0x0a9e('0x44')]][_0x0a9e('0x41')]=_0x2b69d9['secondtransfererexten'];agents[_0x2b69d9[_0x0a9e('0x44')]][_0x0a9e('0x43')]=_0x2b69d9[_0x0a9e('0x46')];}if(_0x2b69d9[_0x0a9e('0x4e')]&&agents[_0x2b69d9['transfertargetuniqueid']]){agents[_0x2b69d9[_0x0a9e('0x4e')]][_0x0a9e('0x4a')]=0x1;transfers[_0x2b69d9['transfertargetuniqueid']]=_[_0x0a9e('0x4b')](agents[_0x2b69d9[_0x0a9e('0x4e')]]);transfers[_0x2b69d9[_0x0a9e('0x4e')]][_0x0a9e('0x9')]=agents[_0x2b69d9[_0x0a9e('0x44')]]['calleridnum'];transfers[_0x2b69d9[_0x0a9e('0x4e')]][_0x0a9e('0x4c')]=agents[_0x2b69d9[_0x0a9e('0x44')]]['calleridname'];transfers[_0x2b69d9[_0x0a9e('0x4e')]]['agentcalledAt']=utils['now']();transfers[_0x2b69d9[_0x0a9e('0x4e')]][_0x0a9e('0x30')]=utils[_0x0a9e('0x20')]();transfers[_0x2b69d9[_0x0a9e('0x4e')]][_0x0a9e('0x2b')]=0x0;transfers[_0x2b69d9[_0x0a9e('0x4e')]][_0x0a9e('0x4a')]=0x2;}}}catch(_0x54a37d){utils[_0x0a9e('0x1a')](util[_0x0a9e('0x15')](_0x0a9e('0x4f'),_0x2b69d9[_0x0a9e('0x44')]),_0x54a37d);}};exports[_0x0a9e('0x50')]=function(_0x2b8192){try{utils[_0x0a9e('0x1c')](util[_0x0a9e('0x15')](_0x0a9e('0x51'),_0x2b8192[_0x0a9e('0x5')]),_0x2b8192);if(agents[_0x2b8192['uniqueid']]&&agents[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x21')]===_0x0a9e('0x22')){if(_0x2b8192['cause']==='21'){agents[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x21')]='rejected';agents[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0xb')]=_0x0a9e('0x52');}utils[_0x0a9e('0x3')](util[_0x0a9e('0x15')]('[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s',_0x2b8192['uniqueid'],agents[_0x2b8192['uniqueid']][_0x0a9e('0x8')],agents[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x21')],agents[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0xb')]));writeDB(agents[_0x2b8192[_0x0a9e('0x5')]]);var _0xeef20=unanswered[_0x0a9e('0x53')](_0x2b8192['uniqueid']);if(_0xeef20>-0x1){unanswered[_0x0a9e('0x54')](_0xeef20,0x1);}}if(transfers[_0x2b8192[_0x0a9e('0x5')]]){transfers[_0x2b8192[_0x0a9e('0x5')]]['agentcomplete']=!![];transfers[_0x2b8192[_0x0a9e('0x5')]]['agentcompleteAt']=utils[_0x0a9e('0x20')]();transfers[_0x2b8192[_0x0a9e('0x5')]]['talktime']=utils[_0x0a9e('0x38')](transfers[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x37')],transfers[_0x2b8192[_0x0a9e('0x5')]]['agentconnectAt']);transfers[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x21')]=_0x0a9e('0x55');transfers[_0x2b8192[_0x0a9e('0x5')]]['lastevent']=_0x0a9e('0x39');utils[_0x0a9e('0x3')](util[_0x0a9e('0x15')](_0x0a9e('0x56'),_0x2b8192['uniqueid'],transfers[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x8')],transfers[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x21')],transfers[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0xb')]));writeDB(transfers[_0x2b8192[_0x0a9e('0x5')]],!![]);}if(agents[_0x2b8192[_0x0a9e('0x5')]]&&agents[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x30')]){agents[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0xe')]=!![];agents[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x37')]=utils['now']();agents[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x2c')]=utils[_0x0a9e('0x38')](agents[_0x2b8192['uniqueid']][_0x0a9e('0x37')],agents[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x30')]);agents[_0x2b8192[_0x0a9e('0x5')]]['reason']=agents[_0x2b8192['uniqueid']][_0x0a9e('0x47')]?_0x0a9e('0x47'):'agent';agents[_0x2b8192[_0x0a9e('0x5')]]['lastevent']=_0x0a9e('0x39');utils[_0x0a9e('0x3')](util['format'](_0x0a9e('0x56'),_0x2b8192[_0x0a9e('0x5')],agents[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x8')],agents[_0x2b8192[_0x0a9e('0x5')]][_0x0a9e('0x21')],agents[_0x2b8192[_0x0a9e('0x5')]]['lastevent']));writeDB(agents[_0x2b8192[_0x0a9e('0x5')]]);}}catch(_0x3ca9b9){utils[_0x0a9e('0x1a')](util[_0x0a9e('0x15')]('[%s][agents][hangup]',_0x2b8192[_0x0a9e('0x5')]),_0x3ca9b9);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d4a=['noop','gotoif','lastapplication','lastdata','lodash','util','./utils','./transfers.controller','NO\x20ANSWER','FAILED','blinds','uniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','membername','calleridnum','accountcode','getUserByInternal','then','UserId','CreateVoiceCallReport','request','newchannel','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','exten','context','now','DOCUMENTATION','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','transfer','destinationchannel','disposition','toNumber','ANSWERED','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','diffTime','starttime','billableseconds','answertime','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','secondtransfererchannel','userfield','_attended','transfertargetchannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfererchannel','error','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','source','value','[%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','Queue','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','sipcallid','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','split','lastIndexOf','includes','hangup'];(function(_0x3161c4,_0xac1d1){var _0x31642f=function(_0x43c213){while(--_0x43c213){_0x3161c4['push'](_0x3161c4['shift']());}};_0x31642f(++_0xac1d1);}(_0x4d4a,0x14e));var _0xa4d4=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x4d4a[_0x21a9d9];return _0x46adce;};'use strict';var _=require(_0xa4d4('0x0'));var util=require(_0xa4d4('0x1'));var utils=require(_0xa4d4('0x2'));var transfers=require(_0xa4d4('0x3'));var dispositions=[_0xa4d4('0x4'),_0xa4d4('0x5'),_0xa4d4('0x5'),'NO\x20ANSWER',_0xa4d4('0x4'),_0xa4d4('0x4'),'ANSWERED','BUSY',_0xa4d4('0x5'),_0xa4d4('0x5'),_0xa4d4('0x5')];var channels={};function writeDB(_0x293ee1){var _0x135b37;if(transfers[_0xa4d4('0x6')][_0x293ee1[_0xa4d4('0x7')]]){_0x135b37=_0x293ee1[_0xa4d4('0x7')];_0x293ee1[_0xa4d4('0x7')]=transfers[_0xa4d4('0x6')][_0x293ee1[_0xa4d4('0x7')]]['transfereeuniqueid'];}utils[_0xa4d4('0x8')](util[_0xa4d4('0x9')](_0xa4d4('0xa'),_0x293ee1[_0xa4d4('0x7')],_0x293ee1[_0xa4d4('0xb')],_0x293ee1[_0xa4d4('0xc')],_0x293ee1[_0xa4d4('0xd')],_0x293ee1['interface'],_0x293ee1[_0xa4d4('0xe')],_0x293ee1['connectedlinenum'],_0x293ee1['lastevent']));if(_0x293ee1[_0xa4d4('0xf')]){utils[_0xa4d4('0x10')](_0x293ee1['accountcode'])[_0xa4d4('0x11')](function(_0x3c3880){if(_0x3c3880){_0x293ee1[_0xa4d4('0x12')]=_0x3c3880['id'];}utils['request'](_0xa4d4('0x13'),_0x293ee1);});}else{utils[_0xa4d4('0x14')](_0xa4d4('0x13'),_0x293ee1);}if(channels[_0x293ee1[_0xa4d4('0x7')]]){delete channels[_0x293ee1['uniqueid']];}else if(_0x135b37&&channels[_0x135b37]){delete transfers['blinds'][_0x135b37];delete channels[_0x135b37];}}exports[_0xa4d4('0x15')]=function(_0x458cf8){try{utils[_0xa4d4('0x16')](util[_0xa4d4('0x9')](_0xa4d4('0x17'),_0x458cf8[_0xa4d4('0x7')]),_0x458cf8);if(_0x458cf8['uniqueid']==_0x458cf8[_0xa4d4('0x18')]&&_0x458cf8[_0xa4d4('0xb')]!=_0xa4d4('0x19')){utils[_0xa4d4('0x8')](util['format'](_0xa4d4('0x1a'),_0x458cf8[_0xa4d4('0x7')],_0x458cf8['context'],_0x458cf8['exten']));channels[_0x458cf8['uniqueid']]={'uniqueid':_0x458cf8[_0xa4d4('0x7')],'accountcode':_0x458cf8[_0xa4d4('0xf')],'source':_0x458cf8['calleridnum'],'destination':_0x458cf8[_0xa4d4('0x1b')],'destinationcontext':_0x458cf8[_0xa4d4('0x1c')],'channel':_0x458cf8[_0xa4d4('0xb')],'starttime':utils[_0xa4d4('0x1d')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xa4d4('0x4'),'amaflags':_0xa4d4('0x1e')};}}catch(_0x219fac){utils['error'](util[_0xa4d4('0x9')]('[%s][calls][newchannel]',_0x458cf8['uniqueid']),_0x219fac);}};exports['newstate']=function(_0x1d2760){try{utils[_0xa4d4('0x16')](util[_0xa4d4('0x9')](_0xa4d4('0x1f'),_0x1d2760[_0xa4d4('0x7')]),_0x1d2760);if(!_[_0xa4d4('0x20')](channels[_0x1d2760[_0xa4d4('0x7')]])&&_0x1d2760[_0xa4d4('0x21')]==0x6){utils[_0xa4d4('0x8')](util[_0xa4d4('0x9')](_0xa4d4('0x22'),_0x1d2760[_0xa4d4('0x7')],_0x1d2760[_0xa4d4('0x1c')],_0x1d2760[_0xa4d4('0xb')]));if(_[_0xa4d4('0x20')](channels[_0x1d2760['uniqueid']][_0xa4d4('0x23')])){channels[_0x1d2760[_0xa4d4('0x7')]]['systemanswertime']=utils[_0xa4d4('0x1d')]();}}else if(!_[_0xa4d4('0x20')](channels[_0x1d2760[_0xa4d4('0x18')]])&&_0x1d2760[_0xa4d4('0x21')]==0x6&&_0x1d2760[_0xa4d4('0x1c')]!=_0xa4d4('0x24')){utils[_0xa4d4('0x8')](util[_0xa4d4('0x9')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x1d2760['uniqueid'],_0x1d2760['linkedid'],_0x1d2760['context'],_0x1d2760[_0xa4d4('0xb')]));channels[_0x1d2760[_0xa4d4('0x18')]][_0xa4d4('0xf')]=_0x1d2760[_0xa4d4('0xf')];channels[_0x1d2760[_0xa4d4('0x18')]][_0xa4d4('0x25')]=_0x1d2760[_0xa4d4('0xb')];if(_[_0xa4d4('0x20')](channels[_0x1d2760[_0xa4d4('0x18')]]['answertime'])){channels[_0x1d2760[_0xa4d4('0x18')]]['answertime']=utils[_0xa4d4('0x1d')]();}channels[_0x1d2760[_0xa4d4('0x18')]][_0xa4d4('0x26')]=dispositions[_[_0xa4d4('0x27')](_0x1d2760[_0xa4d4('0x21')])]||_0xa4d4('0x28');}}catch(_0x161c48){utils['error'](util[_0xa4d4('0x9')](_0xa4d4('0x1f'),_0x1d2760[_0xa4d4('0x7')]),_0x161c48);}};exports['hangup']=function(_0x1d8b0f){try{if(!_[_0xa4d4('0x20')](channels[_0x1d8b0f['uniqueid']])){utils['debug'](util['format'](_0xa4d4('0x29'),_0x1d8b0f[_0xa4d4('0x7')]),_0x1d8b0f);if(_['isNil'](channels[_0x1d8b0f[_0xa4d4('0x7')]][_0xa4d4('0x2a')])){channels[_0x1d8b0f[_0xa4d4('0x7')]][_0xa4d4('0x2a')]=_0x1d8b0f[_0xa4d4('0x2b')]+'\x20<'+_0x1d8b0f['calleridnum']+'>';}utils[_0xa4d4('0x8')](util[_0xa4d4('0x9')](_0xa4d4('0x2c'),_0x1d8b0f[_0xa4d4('0x7')],channels[_0x1d8b0f[_0xa4d4('0x7')]][_0xa4d4('0x2a')],_0x1d8b0f[_0xa4d4('0x2d')]));channels[_0x1d8b0f[_0xa4d4('0x7')]][_0xa4d4('0x2e')]=utils['now']();channels[_0x1d8b0f['uniqueid']]['duration']=utils[_0xa4d4('0x2f')](channels[_0x1d8b0f['uniqueid']][_0xa4d4('0x2e')],channels[_0x1d8b0f['uniqueid']][_0xa4d4('0x30')]);channels[_0x1d8b0f['uniqueid']][_0xa4d4('0x31')]=channels[_0x1d8b0f['uniqueid']][_0xa4d4('0x32')]?utils[_0xa4d4('0x2f')](channels[_0x1d8b0f[_0xa4d4('0x7')]][_0xa4d4('0x2e')],channels[_0x1d8b0f[_0xa4d4('0x7')]]['answertime']):0x0;writeDB(channels[_0x1d8b0f[_0xa4d4('0x7')]]);}}catch(_0x6495e0){utils['error'](util[_0xa4d4('0x9')](_0xa4d4('0x29'),_0x1d8b0f[_0xa4d4('0x7')]),_0x6495e0);}};exports[_0xa4d4('0x33')]=function(_0x738a36){try{if(!_[_0xa4d4('0x20')](channels[_0x738a36[_0xa4d4('0x34')]])){utils[_0xa4d4('0x16')](util['format'](_0xa4d4('0x35'),_0x738a36[_0xa4d4('0x36')]),_0x738a36);if(channels[_0x738a36[_0xa4d4('0x34')]]['channel']==_0x738a36[_0xa4d4('0x37')]){utils[_0xa4d4('0x8')](util[_0xa4d4('0x9')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x738a36['origtransfereruniqueid'],_0x738a36['localtwolinkedid'],_0x738a36[_0xa4d4('0x38')]));channels[_0x738a36[_0xa4d4('0x34')]][_0xa4d4('0x25')]=_0x738a36[_0xa4d4('0x38')];channels[_0x738a36[_0xa4d4('0x34')]][_0xa4d4('0x39')]=_0xa4d4('0x3a');}else if(channels[_0x738a36[_0xa4d4('0x34')]][_0xa4d4('0xb')]=_0x738a36[_0xa4d4('0x3b')]){utils[_0xa4d4('0x8')](util[_0xa4d4('0x9')](_0xa4d4('0x3c'),_0x738a36[_0xa4d4('0x36')],_0x738a36[_0xa4d4('0x34')],_0x738a36[_0xa4d4('0x3d')]));channels[_0x738a36[_0xa4d4('0x34')]]['destinationchannel']=_0x738a36[_0xa4d4('0x3d')];channels[_0x738a36[_0xa4d4('0x34')]][_0xa4d4('0x39')]=_0xa4d4('0x3a');}}}catch(_0x71776b){utils[_0xa4d4('0x3e')](util[_0xa4d4('0x9')](_0xa4d4('0x35'),_0x738a36['origtransfereruniqueid']),_0x71776b);}};exports[_0xa4d4('0x3f')]=function(_0xc8e04e){try{if(!_[_0xa4d4('0x20')](channels[_0xc8e04e['uniqueid']])){utils['debug'](util[_0xa4d4('0x9')](_0xa4d4('0x40'),_0xc8e04e[_0xa4d4('0x7')]),_0xc8e04e);channels[_0xc8e04e['uniqueid']][_0xa4d4('0x41')]=utils[_0xa4d4('0x1d')]();utils[_0xa4d4('0x8')](util['format'](_0xa4d4('0x42'),_0xc8e04e['uniqueid'],channels[_0xc8e04e['uniqueid']][_0xa4d4('0x41')]));}}catch(_0x42f874){utils[_0xa4d4('0x3e')](util[_0xa4d4('0x9')](_0xa4d4('0x40'),_0xc8e04e['uniqueid']),_0x42f874);}};exports['musiconholdstop']=function(_0x57340b){try{if(!_[_0xa4d4('0x20')](channels[_0x57340b['uniqueid']])){utils[_0xa4d4('0x16')](util['format'](_0xa4d4('0x43'),_0x57340b[_0xa4d4('0x7')]),_0x57340b);if(!_[_0xa4d4('0x20')](channels[_0x57340b[_0xa4d4('0x7')]][_0xa4d4('0x41')])){channels[_0x57340b[_0xa4d4('0x7')]][_0xa4d4('0x44')]+=utils[_0xa4d4('0x2f')](utils['now'](),channels[_0x57340b[_0xa4d4('0x7')]][_0xa4d4('0x41')]);utils[_0xa4d4('0x8')](util[_0xa4d4('0x9')](_0xa4d4('0x45'),_0x57340b[_0xa4d4('0x7')],channels[_0x57340b[_0xa4d4('0x7')]]['mohtime']));delete channels[_0x57340b[_0xa4d4('0x7')]][_0xa4d4('0x41')];}}}catch(_0x1270bb){utils[_0xa4d4('0x3e')](util[_0xa4d4('0x9')](_0xa4d4('0x43'),_0x57340b[_0xa4d4('0x7')]),_0x1270bb);}};exports[_0xa4d4('0x46')]=function(_0x2a2c71){try{if(!_[_0xa4d4('0x20')](channels[_0x2a2c71[_0xa4d4('0x7')]])){utils[_0xa4d4('0x16')](util['format']('[%s][calls][varset]',_0x2a2c71[_0xa4d4('0x7')]),_0x2a2c71);if(!_['isNil'](_0x2a2c71['variable'][_0xa4d4('0x47')])){utils[_0xa4d4('0x8')](util['format'](_0xa4d4('0x48'),_0x2a2c71[_0xa4d4('0x7')],_0x2a2c71['value']));channels[_0x2a2c71['uniqueid']][_0xa4d4('0x49')]=_0x2a2c71[_0xa4d4('0x4a')];}if(!_[_0xa4d4('0x20')](_0x2a2c71['variable']['xmd-phone'])){utils[_0xa4d4('0x8')](util['format'](_0xa4d4('0x4b'),_0x2a2c71[_0xa4d4('0x7')],_0x2a2c71['value']));channels[_0x2a2c71[_0xa4d4('0x7')]][_0xa4d4('0x4c')]=_0x2a2c71[_0xa4d4('0x4a')];channels[_0x2a2c71[_0xa4d4('0x7')]][_0xa4d4('0x2a')]='\x22'+_0x2a2c71[_0xa4d4('0x4a')]+_0xa4d4('0x4d')+_0x2a2c71[_0xa4d4('0x4a')]+'>';}if(!_[_0xa4d4('0x20')](_0x2a2c71[_0xa4d4('0x4e')][_0xa4d4('0x4f')])||!_[_0xa4d4('0x20')](_0x2a2c71[_0xa4d4('0x4e')][_0xa4d4('0x50')])){utils[_0xa4d4('0x8')](util[_0xa4d4('0x9')](_0xa4d4('0x51'),_0x2a2c71[_0xa4d4('0x7')],!_[_0xa4d4('0x20')](_0x2a2c71['variable']['xmd-callerid-preview'])?_0xa4d4('0x4f'):_0xa4d4('0x50'),_0x2a2c71[_0xa4d4('0x4a')]));channels[_0x2a2c71[_0xa4d4('0x7')]][_0xa4d4('0x2a')]=_0x2a2c71[_0xa4d4('0x4a')];}if(!_[_0xa4d4('0x20')](_0x2a2c71['variable'][_0xa4d4('0x52')])||!_[_0xa4d4('0x20')](_0x2a2c71['variable']['xmcs-queue'])){utils[_0xa4d4('0x8')](util[_0xa4d4('0x9')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x2a2c71[_0xa4d4('0x7')],!_['isNil'](_0x2a2c71[_0xa4d4('0x4e')][_0xa4d4('0x52')])?'xmd-queue':_0xa4d4('0x53'),_0x2a2c71['value']));channels[_0x2a2c71['uniqueid']]['lastapplication']=_0xa4d4('0x54');channels[_0x2a2c71[_0xa4d4('0x7')]]['lastdata']=_0x2a2c71[_0xa4d4('0x4a')];channels[_0x2a2c71[_0xa4d4('0x7')]][_0xa4d4('0xc')]=!![];}if(!_[_0xa4d4('0x20')](_0x2a2c71['variable'][_0xa4d4('0x55')])){utils[_0xa4d4('0x8')](util[_0xa4d4('0x9')](_0xa4d4('0x56'),_0x2a2c71[_0xa4d4('0x7')],_0x2a2c71['value']));channels[_0x2a2c71['uniqueid']]['ContactId']=_0x2a2c71[_0xa4d4('0x4a')];}if(!_[_0xa4d4('0x20')](_0x2a2c71[_0xa4d4('0x4e')]['xmd-cdrtype'])){utils[_0xa4d4('0x8')](util['format'](_0xa4d4('0x57'),_0x2a2c71[_0xa4d4('0x7')],_0x2a2c71['value']));channels[_0x2a2c71['uniqueid']][_0xa4d4('0x58')]=_0x2a2c71[_0xa4d4('0x4a')];}if(!_[_0xa4d4('0x20')](_0x2a2c71['variable'][_0xa4d4('0x59')])){utils[_0xa4d4('0x8')](util[_0xa4d4('0x9')](_0xa4d4('0x5a'),_0x2a2c71[_0xa4d4('0x7')],_0x2a2c71[_0xa4d4('0x4a')]));channels[_0x2a2c71['uniqueid']][_0xa4d4('0x5b')]=_0x2a2c71['value'];}if(!_[_0xa4d4('0x20')](_0x2a2c71[_0xa4d4('0x4e')]['sipcallid'])){utils['info'](util[_0xa4d4('0x9')](_0xa4d4('0x5c'),_0x2a2c71[_0xa4d4('0x7')],_0x2a2c71[_0xa4d4('0x4a')]));channels[_0x2a2c71[_0xa4d4('0x7')]][_0xa4d4('0x5d')]=_0x2a2c71['value'];}}}catch(_0x3b3edf){utils[_0xa4d4('0x3e')](util[_0xa4d4('0x9')]('[%s][calls][varset]',_0x2a2c71[_0xa4d4('0x7')]),_0x3b3edf);}};exports[_0xa4d4('0x5e')]=function(_0x5038a7){try{if(!_['isNil'](channels[_0x5038a7[_0xa4d4('0x7')]])){utils[_0xa4d4('0x16')](util[_0xa4d4('0x9')](_0xa4d4('0x5f'),_0x5038a7[_0xa4d4('0x7')]),_0x5038a7);utils[_0xa4d4('0x8')](util[_0xa4d4('0x9')](_0xa4d4('0x60'),_0x5038a7['uniqueid'],_0x5038a7[_0xa4d4('0x61')],_0x5038a7[_0xa4d4('0x62')]));if(_0x5038a7[_0xa4d4('0x61')][_0xa4d4('0x63')]()==_0xa4d4('0x64')&&_[_0xa4d4('0x65')](_0x5038a7[_0xa4d4('0x62')][_0xa4d4('0x63')](),'cdr')){var _0x134edc=_0x5038a7['appdata'][_0xa4d4('0x66')]('=');var _0x11ffe9=_0x134edc[0x0]['substring'](_0x134edc[0x0][_0xa4d4('0x67')]('(')+0x1,_0x134edc[0x0][_0xa4d4('0x67')](')'));var _0x46ac85=_0x134edc[0x1];channels[_0x5038a7[_0xa4d4('0x7')]][_0x11ffe9]=_0x46ac85;}if(!_[_0xa4d4('0x68')]([_0xa4d4('0x69'),_0xa4d4('0x6a'),'execif',_0xa4d4('0x64'),_0xa4d4('0x6b')],_0x5038a7[_0xa4d4('0x61')]['toLowerCase']())){channels[_0x5038a7[_0xa4d4('0x7')]][_0xa4d4('0x6c')]=_0x5038a7[_0xa4d4('0x61')];channels[_0x5038a7['uniqueid']][_0xa4d4('0x6d')]=_0x5038a7['appdata'];}}}catch(_0x432339){utils[_0xa4d4('0x3e')](util[_0xa4d4('0x9')](_0xa4d4('0x5f'),_0x5038a7[_0xa4d4('0x7')]),_0x432339);}};
\ No newline at end of file
+var _0xce8e=['debug','[%s][calls][hangup]','callerid','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','billableseconds','attendedtransfer','[%s][calls][attendedtransfer]','origtransfereruniqueid','localtwolinkedid','transfereechannel','secondtransfererchannel','userfield','_attended','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','value','source','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','xmd-callerid-preview','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid','xmd-queue','xmcs-queue','lastapplication','Queue','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','[%s][calls][newexten]','application','appdata','toLowerCase','set','startsWith','split','substring','lastIndexOf','includes','execif','gotoif','lastdata','lodash','util','./utils','./transfers.controller','NO\x20ANSWER','FAILED','BUSY','blinds','uniqueid','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','membername','calleridnum','connectedlinenum','lastevent','accountcode','then','request','CreateVoiceCallReport','newchannel','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','info','[%s][calls][newchannel]\x20context:%s\x20exten:%s','exten','DOCUMENTATION','error','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','context','systemanswertime','now','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','ANSWERED'];(function(_0x209941,_0x5c9988){var _0x1e8729=function(_0x51a9b8){while(--_0x51a9b8){_0x209941['push'](_0x209941['shift']());}};_0x1e8729(++_0x5c9988);}(_0xce8e,0x1e8));var _0xece8=function(_0x2a7095,_0x2cc687){_0x2a7095=_0x2a7095-0x0;var _0x51d692=_0xce8e[_0x2a7095];return _0x51d692;};'use strict';var _=require(_0xece8('0x0'));var util=require(_0xece8('0x1'));var utils=require(_0xece8('0x2'));var transfers=require(_0xece8('0x3'));var dispositions=[_0xece8('0x4'),_0xece8('0x5'),_0xece8('0x5'),_0xece8('0x4'),_0xece8('0x4'),_0xece8('0x4'),'ANSWERED',_0xece8('0x6'),_0xece8('0x5'),'FAILED',_0xece8('0x5')];var channels={};function writeDB(_0xd783b9){var _0x239f2e;if(transfers['blinds'][_0xd783b9['uniqueid']]){_0x239f2e=_0xd783b9['uniqueid'];_0xd783b9['uniqueid']=transfers[_0xece8('0x7')][_0xd783b9[_0xece8('0x8')]]['transfereeuniqueid'];}utils['info'](util[_0xece8('0x9')](_0xece8('0xa'),_0xd783b9[_0xece8('0x8')],_0xd783b9[_0xece8('0xb')],_0xd783b9[_0xece8('0xc')],_0xd783b9[_0xece8('0xd')],_0xd783b9['interface'],_0xd783b9[_0xece8('0xe')],_0xd783b9[_0xece8('0xf')],_0xd783b9[_0xece8('0x10')]));if(_0xd783b9[_0xece8('0x11')]){utils['getUserByInternal'](_0xd783b9[_0xece8('0x11')])[_0xece8('0x12')](function(_0x1beef3){if(_0x1beef3){_0xd783b9['UserId']=_0x1beef3['id'];}utils[_0xece8('0x13')](_0xece8('0x14'),_0xd783b9);});}else{utils[_0xece8('0x13')](_0xece8('0x14'),_0xd783b9);}if(channels[_0xd783b9[_0xece8('0x8')]]){delete channels[_0xd783b9[_0xece8('0x8')]];}else if(_0x239f2e&&channels[_0x239f2e]){delete transfers[_0xece8('0x7')][_0x239f2e];delete channels[_0x239f2e];}}exports[_0xece8('0x15')]=function(_0x19f38f){try{utils['debug'](util[_0xece8('0x9')](_0xece8('0x16'),_0x19f38f['uniqueid']),_0x19f38f);if(_0x19f38f[_0xece8('0x8')]==_0x19f38f[_0xece8('0x17')]&&_0x19f38f[_0xece8('0xb')]!=_0xece8('0x18')){utils[_0xece8('0x19')](util[_0xece8('0x9')](_0xece8('0x1a'),_0x19f38f[_0xece8('0x8')],_0x19f38f['context'],_0x19f38f[_0xece8('0x1b')]));channels[_0x19f38f[_0xece8('0x8')]]={'uniqueid':_0x19f38f[_0xece8('0x8')],'accountcode':_0x19f38f[_0xece8('0x11')],'source':_0x19f38f[_0xece8('0xe')],'destination':_0x19f38f[_0xece8('0x1b')],'destinationcontext':_0x19f38f['context'],'channel':_0x19f38f['channel'],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xece8('0x4'),'amaflags':_0xece8('0x1c')};}}catch(_0x5eba42){utils[_0xece8('0x1d')](util[_0xece8('0x9')](_0xece8('0x16'),_0x19f38f[_0xece8('0x8')]),_0x5eba42);}};exports['newstate']=function(_0x2a1881){try{utils['debug'](util[_0xece8('0x9')](_0xece8('0x1e'),_0x2a1881[_0xece8('0x8')]),_0x2a1881);if(!_[_0xece8('0x1f')](channels[_0x2a1881[_0xece8('0x8')]])&&_0x2a1881[_0xece8('0x20')]==0x6){utils['info'](util['format'](_0xece8('0x21'),_0x2a1881[_0xece8('0x8')],_0x2a1881[_0xece8('0x22')],_0x2a1881[_0xece8('0xb')]));if(_[_0xece8('0x1f')](channels[_0x2a1881['uniqueid']]['systemanswertime'])){channels[_0x2a1881['uniqueid']][_0xece8('0x23')]=utils[_0xece8('0x24')]();}}else if(!_[_0xece8('0x1f')](channels[_0x2a1881[_0xece8('0x17')]])&&_0x2a1881['channelstate']==0x6&&_0x2a1881[_0xece8('0x22')]!=_0xece8('0x25')){utils[_0xece8('0x19')](util[_0xece8('0x9')](_0xece8('0x26'),_0x2a1881[_0xece8('0x8')],_0x2a1881['linkedid'],_0x2a1881[_0xece8('0x22')],_0x2a1881[_0xece8('0xb')]));channels[_0x2a1881[_0xece8('0x17')]]['accountcode']=_0x2a1881['accountcode'];channels[_0x2a1881['linkedid']][_0xece8('0x27')]=_0x2a1881['channel'];if(_[_0xece8('0x1f')](channels[_0x2a1881[_0xece8('0x17')]][_0xece8('0x28')])){channels[_0x2a1881[_0xece8('0x17')]][_0xece8('0x28')]=utils['now']();}channels[_0x2a1881[_0xece8('0x17')]]['disposition']=dispositions[_['toNumber'](_0x2a1881[_0xece8('0x20')])]||_0xece8('0x29');}}catch(_0x46b686){utils[_0xece8('0x1d')](util[_0xece8('0x9')](_0xece8('0x1e'),_0x2a1881[_0xece8('0x8')]),_0x46b686);}};exports['hangup']=function(_0x600292){try{if(!_[_0xece8('0x1f')](channels[_0x600292[_0xece8('0x8')]])){utils[_0xece8('0x2a')](util[_0xece8('0x9')](_0xece8('0x2b'),_0x600292[_0xece8('0x8')]),_0x600292);if(_[_0xece8('0x1f')](channels[_0x600292[_0xece8('0x8')]][_0xece8('0x2c')])){channels[_0x600292[_0xece8('0x8')]][_0xece8('0x2c')]=_0x600292['calleridname']+'\x20<'+_0x600292[_0xece8('0xe')]+'>';}utils[_0xece8('0x19')](util[_0xece8('0x9')](_0xece8('0x2d'),_0x600292[_0xece8('0x8')],channels[_0x600292['uniqueid']][_0xece8('0x2c')],_0x600292[_0xece8('0x2e')]));channels[_0x600292[_0xece8('0x8')]][_0xece8('0x2f')]=utils[_0xece8('0x24')]();channels[_0x600292['uniqueid']][_0xece8('0x30')]=utils[_0xece8('0x31')](channels[_0x600292[_0xece8('0x8')]][_0xece8('0x2f')],channels[_0x600292[_0xece8('0x8')]]['starttime']);channels[_0x600292[_0xece8('0x8')]][_0xece8('0x32')]=channels[_0x600292[_0xece8('0x8')]][_0xece8('0x28')]?utils['diffTime'](channels[_0x600292[_0xece8('0x8')]][_0xece8('0x2f')],channels[_0x600292[_0xece8('0x8')]][_0xece8('0x28')]):0x0;writeDB(channels[_0x600292['uniqueid']]);}}catch(_0x56b5a6){utils[_0xece8('0x1d')](util[_0xece8('0x9')](_0xece8('0x2b'),_0x600292[_0xece8('0x8')]),_0x56b5a6);}};exports[_0xece8('0x33')]=function(_0x6dc339){try{if(!_[_0xece8('0x1f')](channels[_0x6dc339['localtwolinkedid']])){utils[_0xece8('0x2a')](util['format'](_0xece8('0x34'),_0x6dc339[_0xece8('0x35')]),_0x6dc339);if(channels[_0x6dc339[_0xece8('0x36')]][_0xece8('0xb')]==_0x6dc339[_0xece8('0x37')]){utils['info'](util[_0xece8('0x9')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x6dc339[_0xece8('0x35')],_0x6dc339['localtwolinkedid'],_0x6dc339['secondtransfererchannel']));channels[_0x6dc339[_0xece8('0x36')]][_0xece8('0x27')]=_0x6dc339[_0xece8('0x38')];channels[_0x6dc339['localtwolinkedid']][_0xece8('0x39')]=_0xece8('0x3a');}else if(channels[_0x6dc339[_0xece8('0x36')]]['channel']=_0x6dc339['transfertargetchannel']){utils[_0xece8('0x19')](util[_0xece8('0x9')](_0xece8('0x3b'),_0x6dc339[_0xece8('0x35')],_0x6dc339[_0xece8('0x36')],_0x6dc339['origtransfererchannel']));channels[_0x6dc339[_0xece8('0x36')]]['destinationchannel']=_0x6dc339['origtransfererchannel'];channels[_0x6dc339[_0xece8('0x36')]][_0xece8('0x39')]='_attended';}}}catch(_0x504088){utils[_0xece8('0x1d')](util[_0xece8('0x9')](_0xece8('0x34'),_0x6dc339['origtransfereruniqueid']),_0x504088);}};exports[_0xece8('0x3c')]=function(_0x931eb6){try{if(!_[_0xece8('0x1f')](channels[_0x931eb6[_0xece8('0x8')]])){utils[_0xece8('0x2a')](util[_0xece8('0x9')](_0xece8('0x3d'),_0x931eb6['uniqueid']),_0x931eb6);channels[_0x931eb6[_0xece8('0x8')]][_0xece8('0x3e')]=utils['now']();utils[_0xece8('0x19')](util[_0xece8('0x9')](_0xece8('0x3f'),_0x931eb6['uniqueid'],channels[_0x931eb6[_0xece8('0x8')]][_0xece8('0x3e')]));}}catch(_0x3f2382){utils[_0xece8('0x1d')](util['format'](_0xece8('0x3d'),_0x931eb6['uniqueid']),_0x3f2382);}};exports[_0xece8('0x40')]=function(_0x1f0fd5){try{if(!_[_0xece8('0x1f')](channels[_0x1f0fd5[_0xece8('0x8')]])){utils['debug'](util['format'](_0xece8('0x41'),_0x1f0fd5[_0xece8('0x8')]),_0x1f0fd5);if(!_['isNil'](channels[_0x1f0fd5[_0xece8('0x8')]][_0xece8('0x3e')])){channels[_0x1f0fd5[_0xece8('0x8')]][_0xece8('0x42')]+=utils[_0xece8('0x31')](utils[_0xece8('0x24')](),channels[_0x1f0fd5[_0xece8('0x8')]][_0xece8('0x3e')]);utils['info'](util[_0xece8('0x9')](_0xece8('0x43'),_0x1f0fd5[_0xece8('0x8')],channels[_0x1f0fd5[_0xece8('0x8')]][_0xece8('0x42')]));delete channels[_0x1f0fd5[_0xece8('0x8')]]['musiconholdstartAt'];}}}catch(_0x5013f9){utils['error'](util[_0xece8('0x9')](_0xece8('0x41'),_0x1f0fd5[_0xece8('0x8')]),_0x5013f9);}};exports[_0xece8('0x44')]=function(_0x1313a7){try{if(!_[_0xece8('0x1f')](channels[_0x1313a7[_0xece8('0x8')]])){utils[_0xece8('0x2a')](util[_0xece8('0x9')](_0xece8('0x45'),_0x1313a7[_0xece8('0x8')]),_0x1313a7);if(!_[_0xece8('0x1f')](_0x1313a7[_0xece8('0x46')][_0xece8('0x47')])){utils['info'](util[_0xece8('0x9')]('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x1313a7[_0xece8('0x8')],_0x1313a7[_0xece8('0x48')]));channels[_0x1313a7['uniqueid']][_0xece8('0x49')]=_0x1313a7['value'];}if(!_['isNil'](_0x1313a7[_0xece8('0x46')][_0xece8('0x4a')])){utils[_0xece8('0x19')](util['format'](_0xece8('0x4b'),_0x1313a7['uniqueid'],_0x1313a7[_0xece8('0x48')]));channels[_0x1313a7[_0xece8('0x8')]]['destination']=_0x1313a7[_0xece8('0x48')];channels[_0x1313a7[_0xece8('0x8')]][_0xece8('0x2c')]='\x22'+_0x1313a7['value']+'\x22\x20<'+_0x1313a7[_0xece8('0x48')]+'>';}if(!_[_0xece8('0x1f')](_0x1313a7['variable'][_0xece8('0x4c')])||!_[_0xece8('0x1f')](_0x1313a7[_0xece8('0x46')]['xmd-callerid'])){utils[_0xece8('0x19')](util['format'](_0xece8('0x4d'),_0x1313a7[_0xece8('0x8')],!_[_0xece8('0x1f')](_0x1313a7['variable'][_0xece8('0x4c')])?_0xece8('0x4c'):_0xece8('0x4e'),_0x1313a7[_0xece8('0x48')]));channels[_0x1313a7['uniqueid']][_0xece8('0x2c')]=_0x1313a7[_0xece8('0x48')];}if(!_[_0xece8('0x1f')](_0x1313a7[_0xece8('0x46')][_0xece8('0x4f')])||!_[_0xece8('0x1f')](_0x1313a7[_0xece8('0x46')][_0xece8('0x50')])){utils['info'](util[_0xece8('0x9')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x1313a7[_0xece8('0x8')],!_['isNil'](_0x1313a7[_0xece8('0x46')][_0xece8('0x4f')])?'xmd-queue':'xmcs-queue',_0x1313a7[_0xece8('0x48')]));channels[_0x1313a7[_0xece8('0x8')]][_0xece8('0x51')]=_0xece8('0x52');channels[_0x1313a7['uniqueid']]['lastdata']=_0x1313a7[_0xece8('0x48')];channels[_0x1313a7[_0xece8('0x8')]][_0xece8('0xc')]=!![];}if(!_['isNil'](_0x1313a7['variable']['xmd-contactid'])){utils[_0xece8('0x19')](util['format'](_0xece8('0x53'),_0x1313a7[_0xece8('0x8')],_0x1313a7[_0xece8('0x48')]));channels[_0x1313a7[_0xece8('0x8')]][_0xece8('0x54')]=_0x1313a7['value'];}if(!_[_0xece8('0x1f')](_0x1313a7[_0xece8('0x46')][_0xece8('0x55')])){utils[_0xece8('0x19')](util[_0xece8('0x9')](_0xece8('0x56'),_0x1313a7[_0xece8('0x8')],_0x1313a7[_0xece8('0x48')]));channels[_0x1313a7[_0xece8('0x8')]][_0xece8('0x57')]=_0x1313a7[_0xece8('0x48')];}if(!_[_0xece8('0x1f')](_0x1313a7['variable'][_0xece8('0x58')])){utils[_0xece8('0x19')](util['format'](_0xece8('0x59'),_0x1313a7[_0xece8('0x8')],_0x1313a7['value']));channels[_0x1313a7['uniqueid']][_0xece8('0x5a')]=_0x1313a7['value'];}if(!_[_0xece8('0x1f')](_0x1313a7[_0xece8('0x46')][_0xece8('0x5b')])){utils['info'](util[_0xece8('0x9')](_0xece8('0x5c'),_0x1313a7[_0xece8('0x8')],_0x1313a7['value']));channels[_0x1313a7[_0xece8('0x8')]][_0xece8('0x5b')]=_0x1313a7[_0xece8('0x48')];}}}catch(_0x4f43e0){utils[_0xece8('0x1d')](util[_0xece8('0x9')](_0xece8('0x45'),_0x1313a7[_0xece8('0x8')]),_0x4f43e0);}};exports['newexten']=function(_0x575e89){try{if(!_[_0xece8('0x1f')](channels[_0x575e89[_0xece8('0x8')]])){utils[_0xece8('0x2a')](util[_0xece8('0x9')](_0xece8('0x5d'),_0x575e89['uniqueid']),_0x575e89);utils[_0xece8('0x19')](util[_0xece8('0x9')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x575e89[_0xece8('0x8')],_0x575e89[_0xece8('0x5e')],_0x575e89[_0xece8('0x5f')]));if(_0x575e89[_0xece8('0x5e')][_0xece8('0x60')]()==_0xece8('0x61')&&_[_0xece8('0x62')](_0x575e89['appdata']['toLowerCase'](),'cdr')){var _0x8fa89e=_0x575e89[_0xece8('0x5f')][_0xece8('0x63')]('=');var _0x58a391=_0x8fa89e[0x0][_0xece8('0x64')](_0x8fa89e[0x0][_0xece8('0x65')]('(')+0x1,_0x8fa89e[0x0][_0xece8('0x65')](')'));var _0x238cc1=_0x8fa89e[0x1];channels[_0x575e89[_0xece8('0x8')]][_0x58a391]=_0x238cc1;}if(!_[_0xece8('0x66')](['hangup','noop',_0xece8('0x67'),_0xece8('0x61'),_0xece8('0x68')],_0x575e89[_0xece8('0x5e')][_0xece8('0x60')]())){channels[_0x575e89[_0xece8('0x8')]]['lastapplication']=_0x575e89[_0xece8('0x5e')];channels[_0x575e89[_0xece8('0x8')]][_0xece8('0x69')]=_0x575e89[_0xece8('0x5f')];}}}catch(_0xd4a71b){utils['error'](util['format'](_0xece8('0x5d'),_0x575e89[_0xece8('0x8')]),_0xd4a71b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa841=['fullybooted','[core]\x20fullybooted','error','[core]\x20error','close','[core]\x20close','managerevent','./utils','connect','[core]\x20connected','shutdown','info'];(function(_0x27175f,_0x271f57){var _0x4b7bb=function(_0x327cf6){while(--_0x327cf6){_0x27175f['push'](_0x27175f['shift']());}};_0x4b7bb(++_0x271f57);}(_0xa841,0x14b));var _0x1a84=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0xa841[_0x3e5086];return _0xfeb102;};'use strict';var utils=require(_0x1a84('0x0'));exports[_0x1a84('0x1')]=function(){utils['info'](_0x1a84('0x2'));};exports[_0x1a84('0x3')]=function(){utils[_0x1a84('0x4')]('[core]\x20shutdown');};exports[_0x1a84('0x5')]=function(){utils[_0x1a84('0x4')](_0x1a84('0x6'));};exports[_0x1a84('0x7')]=function(_0x482946){utils[_0x1a84('0x7')](_0x1a84('0x8'),_0x482946);};exports[_0x1a84('0x9')]=function(){utils['info'](_0x1a84('0xa'));};exports[_0x1a84('0xb')]=function(_0x3afe40){};
\ No newline at end of file
+var _0x6087=['close','./utils','info','[core]\x20connected','shutdown','[core]\x20shutdown','fullybooted','error','[core]\x20error'];(function(_0x2b38a1,_0x3682a1){var _0x1f7990=function(_0x3f6695){while(--_0x3f6695){_0x2b38a1['push'](_0x2b38a1['shift']());}};_0x1f7990(++_0x3682a1);}(_0x6087,0x1cc));var _0x7608=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6087[_0x3dd15e];return _0x231fd0;};'use strict';var utils=require(_0x7608('0x0'));exports['connect']=function(){utils[_0x7608('0x1')](_0x7608('0x2'));};exports[_0x7608('0x3')]=function(){utils[_0x7608('0x1')](_0x7608('0x4'));};exports[_0x7608('0x5')]=function(){utils[_0x7608('0x1')]('[core]\x20fullybooted');};exports[_0x7608('0x6')]=function(_0x4746c3){utils[_0x7608('0x6')](_0x7608('0x7'),_0x4746c3);};exports[_0x7608('0x8')]=function(){utils[_0x7608('0x1')]('[core]\x20close');};exports['managerevent']=function(_0x18e34f){};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb3d=['diffTime','lodash','util','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','dialstring','calleridnum','connectedlinenum','dialstatus','request','newexten','debug','[%s][dials][newexten]','application','appdata','toLowerCase','set','startsWith','cdr(routeid)','split','varset','[%s][dials][varset]','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','error','dialbegin','[%s][dials][dialbegin]','assign','starttime','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialend]','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','endtime','holdtime','answertime','billableseconds'];(function(_0x3bee55,_0x4e25c8){var _0x5649d2=function(_0x13d730){while(--_0x13d730){_0x3bee55['push'](_0x3bee55['shift']());}};_0x5649d2(++_0x4e25c8);}(_0xdb3d,0x17b));var _0xddb3=function(_0x53f3ad,_0x39163e){_0x53f3ad=_0x53f3ad-0x0;var _0x48b203=_0xdb3d[_0x53f3ad];return _0x48b203;};'use strict';var _=require(_0xddb3('0x0'));var util=require(_0xddb3('0x1'));var utils=require(_0xddb3('0x2'));var dials={};function writeDB(_0x1cc533){utils[_0xddb3('0x3')](util[_0xddb3('0x4')](_0xddb3('0x5'),_0x1cc533[_0xddb3('0x6')],_0x1cc533['channel'],_0x1cc533[_0xddb3('0x7')],_0x1cc533[_0xddb3('0x8')],_0x1cc533[_0xddb3('0x9')],_0x1cc533[_0xddb3('0xa')]));utils[_0xddb3('0xb')]('CreateVoiceDialReport',_0x1cc533);delete dials[_0x1cc533[_0xddb3('0x6')]];}exports[_0xddb3('0xc')]=function(_0x1c74cc){try{utils[_0xddb3('0xd')](util[_0xddb3('0x4')](_0xddb3('0xe'),_0x1c74cc['uniqueid']),_0x1c74cc);utils['info'](util[_0xddb3('0x4')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x1c74cc[_0xddb3('0x6')],_0x1c74cc[_0xddb3('0xf')],_0x1c74cc[_0xddb3('0x10')]));if(_0x1c74cc[_0xddb3('0xf')][_0xddb3('0x11')]()==_0xddb3('0x12')&&_[_0xddb3('0x13')](_0x1c74cc[_0xddb3('0x10')]['toLowerCase'](),_0xddb3('0x14'))){var _0x9c9c56=_0x1c74cc[_0xddb3('0x10')][_0xddb3('0x15')]('=');dials[_0x1c74cc[_0xddb3('0x6')]]={'routeId':_0x9c9c56[0x1]};}}catch(_0x3ef60f){utils['error'](util['format'](_0xddb3('0xe'),_0x1c74cc[_0xddb3('0x6')]),_0x3ef60f);}};exports[_0xddb3('0x16')]=function(_0x1ddc1c){try{utils[_0xddb3('0xd')](util[_0xddb3('0x4')](_0xddb3('0x17'),_0x1ddc1c[_0xddb3('0x6')]),_0x1ddc1c);if(!_[_0xddb3('0x18')](_0x1ddc1c[_0xddb3('0x19')][_0xddb3('0x1a')])){utils[_0xddb3('0x3')](util[_0xddb3('0x4')](_0xddb3('0x1b'),_0x1ddc1c[_0xddb3('0x6')],_0x1ddc1c[_0xddb3('0x1c')]));dials[_0x1ddc1c[_0xddb3('0x6')]]={'routeId':_0x1ddc1c['value']};}}catch(_0x27af12){utils[_0xddb3('0x1d')](util[_0xddb3('0x4')](_0xddb3('0x17'),_0x1ddc1c[_0xddb3('0x6')]),_0x27af12);}};exports[_0xddb3('0x1e')]=function(_0x2526d8){try{if(!_['isNil'](dials[_0x2526d8[_0xddb3('0x6')]])){utils[_0xddb3('0xd')](util[_0xddb3('0x4')](_0xddb3('0x1f'),_0x2526d8['uniqueid']),_0x2526d8);dials[_0x2526d8[_0xddb3('0x6')]]=_[_0xddb3('0x20')](dials[_0x2526d8[_0xddb3('0x6')]],_0x2526d8);dials[_0x2526d8['uniqueid']][_0xddb3('0x21')]=utils[_0xddb3('0x22')]();dials[_0x2526d8[_0xddb3('0x6')]][_0xddb3('0x23')]=_0xddb3('0x24');utils[_0xddb3('0x3')](util[_0xddb3('0x4')](_0xddb3('0x25'),_0x2526d8[_0xddb3('0x6')],dials[_0x2526d8['uniqueid']][_0xddb3('0x21')]));}}catch(_0x45c014){utils[_0xddb3('0x1d')](util[_0xddb3('0x4')]('[%s][dials][dialbegin]',_0x2526d8['uniqueid']),_0x45c014);}};exports['dialend']=function(_0x158126){try{if(!_[_0xddb3('0x18')](dials[_0x158126['uniqueid']])){utils[_0xddb3('0xd')](util['format'](_0xddb3('0x26'),_0x158126[_0xddb3('0x6')]),_0x158126);dials[_0x158126['uniqueid']][_0xddb3('0xa')]=_0x158126[_0xddb3('0xa')];if(_0x158126[_0xddb3('0xa')]=='ANSWER'){dials[_0x158126[_0xddb3('0x6')]]=_[_0xddb3('0x20')](dials[_0x158126[_0xddb3('0x6')]],_0x158126);dials[_0x158126['uniqueid']]['answertime']=utils[_0xddb3('0x22')]();dials[_0x158126[_0xddb3('0x6')]]['lastevent']=_0xddb3('0x27');utils[_0xddb3('0x3')](util[_0xddb3('0x4')](_0xddb3('0x28'),_0x158126['uniqueid'],_0x158126['dialstatus'],dials[_0x158126[_0xddb3('0x6')]]['answertime']));}else{utils[_0xddb3('0x3')](util[_0xddb3('0x4')](_0xddb3('0x29'),_0x158126[_0xddb3('0x6')],_0x158126[_0xddb3('0xa')]));}}}catch(_0x4889c3){utils[_0xddb3('0x1d')](util[_0xddb3('0x4')]('[%s][dials][dialend]',_0x158126['uniqueid']),_0x4889c3);}};exports[_0xddb3('0x2a')]=function(_0x472514){try{if(!_[_0xddb3('0x18')](dials[_0x472514[_0xddb3('0x6')]])){utils['debug'](util[_0xddb3('0x4')](_0xddb3('0x2b'),_0x472514[_0xddb3('0x6')]),_0x472514);utils[_0xddb3('0x3')](util[_0xddb3('0x4')](_0xddb3('0x2c'),_0x472514['uniqueid'],_0x472514['calleridnum'],_0x472514[_0xddb3('0x2d')],_0x472514[_0xddb3('0x2e')]));dials[_0x472514[_0xddb3('0x6')]]=_[_0xddb3('0x20')](dials[_0x472514[_0xddb3('0x6')]],{'endtime':utils[_0xddb3('0x22')](),'lastevent':_0xddb3('0x2f')});dials[_0x472514['uniqueid']][_0xddb3('0x30')]=utils['diffTime'](dials[_0x472514[_0xddb3('0x6')]][_0xddb3('0x31')],dials[_0x472514[_0xddb3('0x6')]][_0xddb3('0x21')]);dials[_0x472514[_0xddb3('0x6')]][_0xddb3('0x32')]=utils['diffTime'](dials[_0x472514[_0xddb3('0x6')]][_0xddb3('0x33')]||dials[_0x472514[_0xddb3('0x6')]][_0xddb3('0x31')],dials[_0x472514[_0xddb3('0x6')]]['starttime']);dials[_0x472514[_0xddb3('0x6')]][_0xddb3('0x34')]=dials[_0x472514['uniqueid']][_0xddb3('0x33')]?utils[_0xddb3('0x35')](dials[_0x472514['uniqueid']][_0xddb3('0x31')],dials[_0x472514[_0xddb3('0x6')]]['answertime']):0x0;writeDB(dials[_0x472514[_0xddb3('0x6')]]);}}catch(_0x52f034){utils[_0xddb3('0x1d')](util[_0xddb3('0x4')]('[%s][dials][hangup]',_0x472514[_0xddb3('0x6')]),_0x52f034);}};
\ No newline at end of file
+var _0xab9d=['variable','value','error','dialbegin','[%s][dials][dialbegin]','assign','starttime','now','lastevent','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','[%s][dials][dialend]','ANSWER','connect','answertime','[%s][dials][dialend]\x20dialstatus:%s','hangup','cause-txt','complete','endtime','diffTime','billableseconds','lodash','info','format','uniqueid','channel','calleridnum','connectedlinenum','dialstatus','request','CreateVoiceDialReport','newexten','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','startsWith','appdata','toLowerCase','cdr(routeid)','split','varset','debug','[%s][dials][varset]','isNil'];(function(_0x57f500,_0x13cd92){var _0x21d097=function(_0xc4ffc8){while(--_0xc4ffc8){_0x57f500['push'](_0x57f500['shift']());}};_0x21d097(++_0x13cd92);}(_0xab9d,0xf2));var _0xdab9=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0xab9d[_0x57b54c];return _0x59cc19;};'use strict';var _=require(_0xdab9('0x0'));var util=require('util');var utils=require('./utils');var dials={};function writeDB(_0x48d886){utils[_0xdab9('0x1')](util[_0xdab9('0x2')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x48d886[_0xdab9('0x3')],_0x48d886[_0xdab9('0x4')],_0x48d886['dialstring'],_0x48d886[_0xdab9('0x5')],_0x48d886[_0xdab9('0x6')],_0x48d886[_0xdab9('0x7')]));utils[_0xdab9('0x8')](_0xdab9('0x9'),_0x48d886);delete dials[_0x48d886[_0xdab9('0x3')]];}exports[_0xdab9('0xa')]=function(_0x485bae){try{utils['debug'](util[_0xdab9('0x2')]('[%s][dials][newexten]',_0x485bae[_0xdab9('0x3')]),_0x485bae);utils[_0xdab9('0x1')](util[_0xdab9('0x2')](_0xdab9('0xb'),_0x485bae[_0xdab9('0x3')],_0x485bae[_0xdab9('0xc')],_0x485bae['appdata']));if(_0x485bae['application']['toLowerCase']()=='set'&&_[_0xdab9('0xd')](_0x485bae[_0xdab9('0xe')][_0xdab9('0xf')](),_0xdab9('0x10'))){var _0x1c4c2b=_0x485bae[_0xdab9('0xe')][_0xdab9('0x11')]('=');dials[_0x485bae[_0xdab9('0x3')]]={'routeId':_0x1c4c2b[0x1]};}}catch(_0x1b82a1){utils['error'](util[_0xdab9('0x2')]('[%s][dials][newexten]',_0x485bae['uniqueid']),_0x1b82a1);}};exports[_0xdab9('0x12')]=function(_0x5ba5f5){try{utils[_0xdab9('0x13')](util[_0xdab9('0x2')](_0xdab9('0x14'),_0x5ba5f5['uniqueid']),_0x5ba5f5);if(!_[_0xdab9('0x15')](_0x5ba5f5[_0xdab9('0x16')]['outboundrouteid'])){utils[_0xdab9('0x1')](util[_0xdab9('0x2')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x5ba5f5[_0xdab9('0x3')],_0x5ba5f5[_0xdab9('0x17')]));dials[_0x5ba5f5[_0xdab9('0x3')]]={'routeId':_0x5ba5f5['value']};}}catch(_0x1ff605){utils[_0xdab9('0x18')](util[_0xdab9('0x2')]('[%s][dials][varset]',_0x5ba5f5[_0xdab9('0x3')]),_0x1ff605);}};exports[_0xdab9('0x19')]=function(_0x30046a){try{if(!_[_0xdab9('0x15')](dials[_0x30046a[_0xdab9('0x3')]])){utils[_0xdab9('0x13')](util['format'](_0xdab9('0x1a'),_0x30046a[_0xdab9('0x3')]),_0x30046a);dials[_0x30046a[_0xdab9('0x3')]]=_[_0xdab9('0x1b')](dials[_0x30046a[_0xdab9('0x3')]],_0x30046a);dials[_0x30046a[_0xdab9('0x3')]][_0xdab9('0x1c')]=utils[_0xdab9('0x1d')]();dials[_0x30046a[_0xdab9('0x3')]][_0xdab9('0x1e')]='called';utils[_0xdab9('0x1')](util['format'](_0xdab9('0x1f'),_0x30046a[_0xdab9('0x3')],dials[_0x30046a[_0xdab9('0x3')]][_0xdab9('0x1c')]));}}catch(_0x5ce3f5){utils[_0xdab9('0x18')](util[_0xdab9('0x2')](_0xdab9('0x1a'),_0x30046a[_0xdab9('0x3')]),_0x5ce3f5);}};exports[_0xdab9('0x20')]=function(_0x25ac79){try{if(!_[_0xdab9('0x15')](dials[_0x25ac79['uniqueid']])){utils['debug'](util[_0xdab9('0x2')](_0xdab9('0x21'),_0x25ac79[_0xdab9('0x3')]),_0x25ac79);dials[_0x25ac79[_0xdab9('0x3')]][_0xdab9('0x7')]=_0x25ac79[_0xdab9('0x7')];if(_0x25ac79['dialstatus']==_0xdab9('0x22')){dials[_0x25ac79[_0xdab9('0x3')]]=_[_0xdab9('0x1b')](dials[_0x25ac79[_0xdab9('0x3')]],_0x25ac79);dials[_0x25ac79[_0xdab9('0x3')]]['answertime']=utils[_0xdab9('0x1d')]();dials[_0x25ac79['uniqueid']][_0xdab9('0x1e')]=_0xdab9('0x23');utils['info'](util[_0xdab9('0x2')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x25ac79['uniqueid'],_0x25ac79[_0xdab9('0x7')],dials[_0x25ac79[_0xdab9('0x3')]][_0xdab9('0x24')]));}else{utils['info'](util[_0xdab9('0x2')](_0xdab9('0x25'),_0x25ac79[_0xdab9('0x3')],_0x25ac79[_0xdab9('0x7')]));}}}catch(_0x1995f9){utils[_0xdab9('0x18')](util[_0xdab9('0x2')]('[%s][dials][dialend]',_0x25ac79[_0xdab9('0x3')]),_0x1995f9);}};exports[_0xdab9('0x26')]=function(_0x506247){try{if(!_[_0xdab9('0x15')](dials[_0x506247[_0xdab9('0x3')]])){utils['debug'](util[_0xdab9('0x2')]('[%s][dials][hangup]',_0x506247['uniqueid']),_0x506247);utils[_0xdab9('0x1')](util[_0xdab9('0x2')]('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x506247['uniqueid'],_0x506247[_0xdab9('0x5')],_0x506247['calleridname'],_0x506247[_0xdab9('0x27')]));dials[_0x506247[_0xdab9('0x3')]]=_[_0xdab9('0x1b')](dials[_0x506247['uniqueid']],{'endtime':utils[_0xdab9('0x1d')](),'lastevent':_0xdab9('0x28')});dials[_0x506247[_0xdab9('0x3')]]['duration']=utils['diffTime'](dials[_0x506247[_0xdab9('0x3')]][_0xdab9('0x29')],dials[_0x506247[_0xdab9('0x3')]][_0xdab9('0x1c')]);dials[_0x506247[_0xdab9('0x3')]]['holdtime']=utils[_0xdab9('0x2a')](dials[_0x506247[_0xdab9('0x3')]][_0xdab9('0x24')]||dials[_0x506247[_0xdab9('0x3')]][_0xdab9('0x29')],dials[_0x506247[_0xdab9('0x3')]][_0xdab9('0x1c')]);dials[_0x506247[_0xdab9('0x3')]][_0xdab9('0x2b')]=dials[_0x506247[_0xdab9('0x3')]][_0xdab9('0x24')]?utils[_0xdab9('0x2a')](dials[_0x506247[_0xdab9('0x3')]][_0xdab9('0x29')],dials[_0x506247[_0xdab9('0x3')]][_0xdab9('0x24')]):0x0;writeDB(dials[_0x506247[_0xdab9('0x3')]]);}}catch(_0x436c48){utils[_0xdab9('0x18')](util[_0xdab9('0x2')]('[%s][dials][hangup]',_0x506247[_0xdab9('0x3')]),_0x436c48);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe26f=['queuecallerjoin','queuecallerleave','[%s][index][queuecallerleave]','musiconholdstart','[%s][index][musiconholdstart]','musiconholdstop','[%s][index][musiconholdstop]','newstate','[%s][index][newstate]','hangup','[%s][index][hangup]','cdr','[%s][index][cdr]','blindtransfer','[%s][index][blindtransfer]','attendedtransfer','[%s][index][attendedtransfer]','origtransfereruniqueid','[%s][index][varset]','varset','newexten','[%s][index][newexten]','newchannel','[%s][index][newchannel]','dialbegin','[%s][index][dialbegin]','[%s]dialbegin','[%s][index][dialend]','dialend','asterisk-manager','../../config/environment','./utils','util','asterisk','username','password','xdr','disabled','XDR\x20DISABLED','./agents.controller','./queues.controller','./recordings.controller','./members.controller','./core.controller','connect','shutdown','fullybooted','error','close','managerevent','devicestatechange','debug','format','[%s][index][devicestatechange]','device','[%s][index][agentcalled]','uniqueid','agentringnoanswer','[%s][index][agentringnoanswer]','agentconnect','[%s][index][agentconnect]','agentcomplete','[%s][index][agentcomplete]','queuecallerabandon','[%s][index][queuecallerabandon]','[%s][index][queuecallerjoin]'];(function(_0x5526c4,_0x4e77eb){var _0x165ff8=function(_0x3b8802){while(--_0x3b8802){_0x5526c4['push'](_0x5526c4['shift']());}};_0x165ff8(++_0x4e77eb);}(_0xe26f,0xe3));var _0xfe26=function(_0x246e24,_0x82429f){_0x246e24=_0x246e24-0x0;var _0x539d42=_0xe26f[_0x246e24];return _0x539d42;};var AsteriskManager=require(_0xfe26('0x0'));var config=require(_0xfe26('0x1'));var utils=require(_0xfe26('0x2'));var util=require(_0xfe26('0x3'));var ami=new AsteriskManager(config[_0xfe26('0x4')]['port'],config[_0xfe26('0x4')]['ip'],config[_0xfe26('0x4')][_0xfe26('0x5')],config['asterisk'][_0xfe26('0x6')],!![]);ami['keepConnected']();if(config[_0xfe26('0x7')]&&config['xdr'][_0xfe26('0x8')]){utils['info'](_0xfe26('0x9'));}else{var agents=require(_0xfe26('0xa'));var calls=require('./calls.controller');var queues=require(_0xfe26('0xb'));var recordings=require(_0xfe26('0xc'));var members=require(_0xfe26('0xd'));var dials=require('./dials.controller');var transfers=require('./transfers.controller');var core=require(_0xfe26('0xe'));ami['on'](_0xfe26('0xf'),core[_0xfe26('0xf')]);ami['on'](_0xfe26('0x10'),core[_0xfe26('0x10')]);ami['on'](_0xfe26('0x11'),core[_0xfe26('0x11')]);ami['on'](_0xfe26('0x12'),core[_0xfe26('0x12')]);ami['on'](_0xfe26('0x13'),core[_0xfe26('0x13')]);ami['on'](_0xfe26('0x14'),core[_0xfe26('0x14')]);ami['on'](_0xfe26('0x15'),function(_0x3abc85){try{utils[_0xfe26('0x16')](util[_0xfe26('0x17')](_0xfe26('0x18'),_0x3abc85[_0xfe26('0x19')]),_0x3abc85);members[_0xfe26('0x15')](_0x3abc85);}catch(_0x51abf2){utils[_0xfe26('0x12')](util[_0xfe26('0x17')](_0xfe26('0x18'),_0x3abc85[_0xfe26('0x19')]),_0x51abf2);}});ami['on']('agentcalled',function(_0x5eac25){try{utils[_0xfe26('0x16')](util[_0xfe26('0x17')](_0xfe26('0x1a'),_0x5eac25[_0xfe26('0x1b')]),_0x5eac25);agents['agentcalled'](_0x5eac25);}catch(_0x10558){utils[_0xfe26('0x12')](util[_0xfe26('0x17')](_0xfe26('0x1a'),_0x5eac25[_0xfe26('0x1b')]),_0x10558);}});ami['on'](_0xfe26('0x1c'),function(_0x29ff58){try{utils[_0xfe26('0x16')](util[_0xfe26('0x17')]('[%s][index][agentringnoanswer]',_0x29ff58['uniqueid']),_0x29ff58);agents[_0xfe26('0x1c')](_0x29ff58);}catch(_0x353a37){utils['error'](util[_0xfe26('0x17')](_0xfe26('0x1d'),_0x29ff58[_0xfe26('0x1b')]),_0x353a37);}});ami['on'](_0xfe26('0x1e'),function(_0x112578){try{utils[_0xfe26('0x16')](util['format']('[%s][index][agentconnect]',_0x112578[_0xfe26('0x1b')]),_0x112578);agents[_0xfe26('0x1e')](_0x112578);queues[_0xfe26('0x1e')](_0x112578);}catch(_0x27769d){utils['error'](util[_0xfe26('0x17')](_0xfe26('0x1f'),_0x112578['uniqueid']),_0x27769d);}});ami['on'](_0xfe26('0x20'),function(_0xf93f8c){try{utils[_0xfe26('0x16')](util[_0xfe26('0x17')](_0xfe26('0x21'),_0xf93f8c[_0xfe26('0x1b')]),_0xf93f8c);agents[_0xfe26('0x20')](_0xf93f8c);queues[_0xfe26('0x20')](_0xf93f8c);members[_0xfe26('0x20')](_0xf93f8c);}catch(_0x4bc4de){utils['error'](util['format'](_0xfe26('0x21'),_0xf93f8c[_0xfe26('0x1b')]),_0x4bc4de);}});ami['on'](_0xfe26('0x22'),function(_0x4f6ccf){try{utils[_0xfe26('0x16')](util['format'](_0xfe26('0x23'),_0x4f6ccf[_0xfe26('0x1b')]),_0x4f6ccf);agents[_0xfe26('0x22')](_0x4f6ccf);queues[_0xfe26('0x22')](_0x4f6ccf);}catch(_0xbc9d27){utils[_0xfe26('0x12')](util['format'](_0xfe26('0x23'),_0x4f6ccf[_0xfe26('0x1b')]),_0xbc9d27);}});ami['on']('queuecallerjoin',function(_0x144358){try{utils[_0xfe26('0x16')](util[_0xfe26('0x17')](_0xfe26('0x24'),_0x144358[_0xfe26('0x1b')]),_0x144358);queues[_0xfe26('0x25')](_0x144358);recordings['queuecallerjoin'](_0x144358);}catch(_0x3d2ecc){utils[_0xfe26('0x12')](util['format'](_0xfe26('0x24'),_0x144358[_0xfe26('0x1b')]),_0x3d2ecc);}});ami['on'](_0xfe26('0x26'),function(_0x9e0674){try{utils['debug'](util['format'](_0xfe26('0x27'),_0x9e0674[_0xfe26('0x1b')]),_0x9e0674);queues[_0xfe26('0x26')](_0x9e0674);}catch(_0x2e9d91){utils[_0xfe26('0x12')](util[_0xfe26('0x17')](_0xfe26('0x27'),_0x9e0674[_0xfe26('0x1b')]),_0x2e9d91);}});ami['on'](_0xfe26('0x28'),function(_0x48b3c6){try{utils[_0xfe26('0x16')](util[_0xfe26('0x17')](_0xfe26('0x29'),_0x48b3c6[_0xfe26('0x1b')]),_0x48b3c6);queues[_0xfe26('0x28')](_0x48b3c6);calls[_0xfe26('0x28')](_0x48b3c6);}catch(_0xe51699){utils[_0xfe26('0x12')](util[_0xfe26('0x17')](_0xfe26('0x29'),_0x48b3c6[_0xfe26('0x1b')]),_0xe51699);}});ami['on'](_0xfe26('0x2a'),function(_0x57ad87){try{utils[_0xfe26('0x16')](util['format'](_0xfe26('0x2b'),_0x57ad87[_0xfe26('0x1b')]),_0x57ad87);queues[_0xfe26('0x2a')](_0x57ad87);calls[_0xfe26('0x2a')](_0x57ad87);}catch(_0x3925b4){utils[_0xfe26('0x12')](util['format'](_0xfe26('0x2b'),_0x57ad87[_0xfe26('0x1b')]),_0x3925b4);}});ami['on'](_0xfe26('0x2c'),function(_0x4991fd){try{utils[_0xfe26('0x16')](util['format'](_0xfe26('0x2d'),_0x4991fd['uniqueid']),_0x4991fd);calls[_0xfe26('0x2c')](_0x4991fd);recordings[_0xfe26('0x2c')](_0x4991fd);}catch(_0x925439){utils['error'](util[_0xfe26('0x17')](_0xfe26('0x2d'),_0x4991fd[_0xfe26('0x1b')]),_0x925439);}});ami['on'](_0xfe26('0x2e'),function(_0x32e515){try{utils[_0xfe26('0x16')](util[_0xfe26('0x17')](_0xfe26('0x2f'),_0x32e515['uniqueid']),_0x32e515);calls[_0xfe26('0x2e')](_0x32e515);recordings[_0xfe26('0x2e')](_0x32e515);dials[_0xfe26('0x2e')](_0x32e515);agents['hangup'](_0x32e515);queues[_0xfe26('0x2e')](_0x32e515);}catch(_0x47d59f){utils[_0xfe26('0x12')](util['format'](_0xfe26('0x2f'),_0x32e515['uniqueid']),_0x47d59f);}});ami['on'](_0xfe26('0x30'),function(_0x26a91a){try{utils[_0xfe26('0x16')](util[_0xfe26('0x17')](_0xfe26('0x31'),_0x26a91a[_0xfe26('0x1b')]),_0x26a91a);members[_0xfe26('0x30')](_0x26a91a);}catch(_0x20ba53){utils['error'](util[_0xfe26('0x17')](_0xfe26('0x31'),_0x26a91a[_0xfe26('0x1b')]),_0x20ba53);}});ami['on']('blindtransfer',function(_0x42afa8){try{utils[_0xfe26('0x16')](util[_0xfe26('0x17')]('[%s][index][blindtransfer]',_0x42afa8['uniqueid']),_0x42afa8);queues[_0xfe26('0x32')](_0x42afa8);agents[_0xfe26('0x32')](_0x42afa8);transfers[_0xfe26('0x32')](_0x42afa8);}catch(_0x4f7a86){utils[_0xfe26('0x12')](util[_0xfe26('0x17')](_0xfe26('0x33'),_0x42afa8[_0xfe26('0x1b')]),_0x4f7a86);}});ami['on'](_0xfe26('0x34'),function(_0x1c9ac1){try{utils[_0xfe26('0x16')](util['format'](_0xfe26('0x35'),_0x1c9ac1[_0xfe26('0x36')]),_0x1c9ac1);queues[_0xfe26('0x34')](_0x1c9ac1);transfers['attendedtransfer'](_0x1c9ac1);agents['attendedtransfer'](_0x1c9ac1);calls[_0xfe26('0x34')](_0x1c9ac1);}catch(_0xfc0639){utils[_0xfe26('0x12')](util[_0xfe26('0x17')](_0xfe26('0x35'),_0x1c9ac1['origtransfereruniqueid']),_0xfc0639);}});ami['on']('varset',function(_0x37ed36){try{utils[_0xfe26('0x16')](util[_0xfe26('0x17')](_0xfe26('0x37'),_0x37ed36['uniqueid']),_0x37ed36);queues['varset'](_0x37ed36);recordings['varset'](_0x37ed36);calls[_0xfe26('0x38')](_0x37ed36);dials[_0xfe26('0x38')](_0x37ed36);}catch(_0x847417){utils[_0xfe26('0x12')](util[_0xfe26('0x17')](_0xfe26('0x37'),_0x37ed36[_0xfe26('0x1b')]),_0x847417);}});ami['on'](_0xfe26('0x39'),function(_0x5cc818){try{utils[_0xfe26('0x16')](util['format'](_0xfe26('0x3a'),_0x5cc818['uniqueid']),_0x5cc818);calls['newexten'](_0x5cc818);recordings[_0xfe26('0x39')](_0x5cc818);dials[_0xfe26('0x39')](_0x5cc818);}catch(_0x6ac262){utils[_0xfe26('0x12')](util[_0xfe26('0x17')](_0xfe26('0x3a'),_0x5cc818[_0xfe26('0x1b')]),_0x6ac262);}});ami['on'](_0xfe26('0x3b'),function(_0x383a62){try{utils['debug'](util[_0xfe26('0x17')](_0xfe26('0x3c'),_0x383a62[_0xfe26('0x1b')]),_0x383a62);calls[_0xfe26('0x3b')](_0x383a62);recordings[_0xfe26('0x3b')](_0x383a62);}catch(_0x4be7a0){utils[_0xfe26('0x12')](util[_0xfe26('0x17')](_0xfe26('0x3c'),_0x383a62[_0xfe26('0x1b')]),_0x4be7a0);}});ami['on'](_0xfe26('0x3d'),function(_0x3bc7f4){try{utils[_0xfe26('0x16')](util['format'](_0xfe26('0x3e'),_0x3bc7f4[_0xfe26('0x1b')]),_0x3bc7f4);dials[_0xfe26('0x3d')](_0x3bc7f4);}catch(_0x31a6de){utils[_0xfe26('0x12')](util[_0xfe26('0x17')](_0xfe26('0x3f'),_0x3bc7f4[_0xfe26('0x1b')]),_0x31a6de);}});ami['on']('dialend',function(_0x472fb5){try{utils[_0xfe26('0x16')](util[_0xfe26('0x17')](_0xfe26('0x40'),_0x472fb5[_0xfe26('0x1b')]),_0x472fb5);dials[_0xfe26('0x41')](_0x472fb5);}catch(_0x378558){utils[_0xfe26('0x12')](util[_0xfe26('0x17')](_0xfe26('0x40'),_0x472fb5[_0xfe26('0x1b')]),_0x378558);}});}
\ No newline at end of file
+var _0x9896=['shutdown','fullybooted','error','close','managerevent','debug','format','[%s][index][devicestatechange]','device','devicestatechange','agentcalled','[%s][index][agentcalled]','uniqueid','agentringnoanswer','[%s][index][agentringnoanswer]','agentconnect','[%s][index][agentconnect]','agentcomplete','[%s][index][agentcomplete]','queuecallerabandon','[%s][index][queuecallerabandon]','queuecallerjoin','queuecallerleave','[%s][index][queuecallerleave]','musiconholdstart','[%s][index][musiconholdstart]','[%s][index][musiconholdstop]','musiconholdstop','[%s][index][newstate]','newstate','hangup','[%s][index][hangup]','cdr','[%s][index][cdr]','blindtransfer','[%s][index][attendedtransfer]','origtransfereruniqueid','attendedtransfer','[%s][index][varset]','varset','newexten','[%s][index][newexten]','newchannel','[%s][index][newchannel]','dialbegin','[%s][index][dialbegin]','[%s]dialbegin','[%s][index][dialend]','asterisk-manager','../../config/environment','./utils','asterisk','port','password','keepConnected','xdr','XDR\x20DISABLED','./agents.controller','./calls.controller','./queues.controller','./recordings.controller','./dials.controller','./transfers.controller','./core.controller','connect'];(function(_0x3d89ce,_0x5d5e4b){var _0x494a2e=function(_0x1222b8){while(--_0x1222b8){_0x3d89ce['push'](_0x3d89ce['shift']());}};_0x494a2e(++_0x5d5e4b);}(_0x9896,0x71));var _0x6989=function(_0x695660,_0x16e421){_0x695660=_0x695660-0x0;var _0x9d1efb=_0x9896[_0x695660];return _0x9d1efb;};var AsteriskManager=require(_0x6989('0x0'));var config=require(_0x6989('0x1'));var utils=require(_0x6989('0x2'));var util=require('util');var ami=new AsteriskManager(config[_0x6989('0x3')][_0x6989('0x4')],config['asterisk']['ip'],config[_0x6989('0x3')]['username'],config[_0x6989('0x3')][_0x6989('0x5')],!![]);ami[_0x6989('0x6')]();if(config[_0x6989('0x7')]&&config[_0x6989('0x7')]['disabled']){utils['info'](_0x6989('0x8'));}else{var agents=require(_0x6989('0x9'));var calls=require(_0x6989('0xa'));var queues=require(_0x6989('0xb'));var recordings=require(_0x6989('0xc'));var members=require('./members.controller');var dials=require(_0x6989('0xd'));var transfers=require(_0x6989('0xe'));var core=require(_0x6989('0xf'));ami['on'](_0x6989('0x10'),core[_0x6989('0x10')]);ami['on'](_0x6989('0x11'),core['shutdown']);ami['on']('fullybooted',core[_0x6989('0x12')]);ami['on'](_0x6989('0x13'),core[_0x6989('0x13')]);ami['on'](_0x6989('0x14'),core[_0x6989('0x14')]);ami['on'](_0x6989('0x15'),core[_0x6989('0x15')]);ami['on']('devicestatechange',function(_0x3b6f4a){try{utils[_0x6989('0x16')](util[_0x6989('0x17')](_0x6989('0x18'),_0x3b6f4a[_0x6989('0x19')]),_0x3b6f4a);members[_0x6989('0x1a')](_0x3b6f4a);}catch(_0x28d2f6){utils[_0x6989('0x13')](util[_0x6989('0x17')](_0x6989('0x18'),_0x3b6f4a[_0x6989('0x19')]),_0x28d2f6);}});ami['on'](_0x6989('0x1b'),function(_0x739fa8){try{utils[_0x6989('0x16')](util[_0x6989('0x17')](_0x6989('0x1c'),_0x739fa8[_0x6989('0x1d')]),_0x739fa8);agents[_0x6989('0x1b')](_0x739fa8);}catch(_0x1fb97e){utils['error'](util[_0x6989('0x17')](_0x6989('0x1c'),_0x739fa8[_0x6989('0x1d')]),_0x1fb97e);}});ami['on'](_0x6989('0x1e'),function(_0x55d598){try{utils['debug'](util[_0x6989('0x17')](_0x6989('0x1f'),_0x55d598[_0x6989('0x1d')]),_0x55d598);agents[_0x6989('0x1e')](_0x55d598);}catch(_0x278636){utils[_0x6989('0x13')](util['format'](_0x6989('0x1f'),_0x55d598[_0x6989('0x1d')]),_0x278636);}});ami['on'](_0x6989('0x20'),function(_0x22808b){try{utils[_0x6989('0x16')](util['format'](_0x6989('0x21'),_0x22808b['uniqueid']),_0x22808b);agents[_0x6989('0x20')](_0x22808b);queues['agentconnect'](_0x22808b);}catch(_0x18c173){utils[_0x6989('0x13')](util['format'](_0x6989('0x21'),_0x22808b[_0x6989('0x1d')]),_0x18c173);}});ami['on'](_0x6989('0x22'),function(_0x1235ea){try{utils['debug'](util[_0x6989('0x17')]('[%s][index][agentcomplete]',_0x1235ea[_0x6989('0x1d')]),_0x1235ea);agents[_0x6989('0x22')](_0x1235ea);queues[_0x6989('0x22')](_0x1235ea);members['agentcomplete'](_0x1235ea);}catch(_0x593742){utils['error'](util[_0x6989('0x17')](_0x6989('0x23'),_0x1235ea[_0x6989('0x1d')]),_0x593742);}});ami['on'](_0x6989('0x24'),function(_0x57a60b){try{utils[_0x6989('0x16')](util[_0x6989('0x17')](_0x6989('0x25'),_0x57a60b[_0x6989('0x1d')]),_0x57a60b);agents['queuecallerabandon'](_0x57a60b);queues[_0x6989('0x24')](_0x57a60b);}catch(_0x4398b9){utils[_0x6989('0x13')](util[_0x6989('0x17')](_0x6989('0x25'),_0x57a60b['uniqueid']),_0x4398b9);}});ami['on']('queuecallerjoin',function(_0x5e43d9){try{utils['debug'](util[_0x6989('0x17')]('[%s][index][queuecallerjoin]',_0x5e43d9[_0x6989('0x1d')]),_0x5e43d9);queues['queuecallerjoin'](_0x5e43d9);recordings[_0x6989('0x26')](_0x5e43d9);}catch(_0x4f0a42){utils[_0x6989('0x13')](util[_0x6989('0x17')]('[%s][index][queuecallerjoin]',_0x5e43d9['uniqueid']),_0x4f0a42);}});ami['on'](_0x6989('0x27'),function(_0x45517d){try{utils['debug'](util[_0x6989('0x17')](_0x6989('0x28'),_0x45517d[_0x6989('0x1d')]),_0x45517d);queues[_0x6989('0x27')](_0x45517d);}catch(_0x450586){utils[_0x6989('0x13')](util[_0x6989('0x17')](_0x6989('0x28'),_0x45517d[_0x6989('0x1d')]),_0x450586);}});ami['on'](_0x6989('0x29'),function(_0x2cd8d3){try{utils['debug'](util[_0x6989('0x17')]('[%s][index][musiconholdstart]',_0x2cd8d3[_0x6989('0x1d')]),_0x2cd8d3);queues[_0x6989('0x29')](_0x2cd8d3);calls['musiconholdstart'](_0x2cd8d3);}catch(_0x273e21){utils['error'](util[_0x6989('0x17')](_0x6989('0x2a'),_0x2cd8d3[_0x6989('0x1d')]),_0x273e21);}});ami['on']('musiconholdstop',function(_0x4c4793){try{utils[_0x6989('0x16')](util[_0x6989('0x17')](_0x6989('0x2b'),_0x4c4793[_0x6989('0x1d')]),_0x4c4793);queues[_0x6989('0x2c')](_0x4c4793);calls['musiconholdstop'](_0x4c4793);}catch(_0x408b46){utils[_0x6989('0x13')](util[_0x6989('0x17')](_0x6989('0x2b'),_0x4c4793[_0x6989('0x1d')]),_0x408b46);}});ami['on']('newstate',function(_0x449f88){try{utils[_0x6989('0x16')](util[_0x6989('0x17')](_0x6989('0x2d'),_0x449f88[_0x6989('0x1d')]),_0x449f88);calls[_0x6989('0x2e')](_0x449f88);recordings[_0x6989('0x2e')](_0x449f88);}catch(_0x18b46a){utils[_0x6989('0x13')](util[_0x6989('0x17')](_0x6989('0x2d'),_0x449f88[_0x6989('0x1d')]),_0x18b46a);}});ami['on'](_0x6989('0x2f'),function(_0x5ff2b4){try{utils['debug'](util[_0x6989('0x17')](_0x6989('0x30'),_0x5ff2b4['uniqueid']),_0x5ff2b4);calls[_0x6989('0x2f')](_0x5ff2b4);recordings[_0x6989('0x2f')](_0x5ff2b4);dials['hangup'](_0x5ff2b4);agents[_0x6989('0x2f')](_0x5ff2b4);queues['hangup'](_0x5ff2b4);}catch(_0x1a7855){utils[_0x6989('0x13')](util['format'](_0x6989('0x30'),_0x5ff2b4[_0x6989('0x1d')]),_0x1a7855);}});ami['on'](_0x6989('0x31'),function(_0x3af86e){try{utils[_0x6989('0x16')](util['format'](_0x6989('0x32'),_0x3af86e[_0x6989('0x1d')]),_0x3af86e);members[_0x6989('0x31')](_0x3af86e);}catch(_0x43f4c5){utils[_0x6989('0x13')](util[_0x6989('0x17')](_0x6989('0x32'),_0x3af86e[_0x6989('0x1d')]),_0x43f4c5);}});ami['on'](_0x6989('0x33'),function(_0x5585c8){try{utils[_0x6989('0x16')](util[_0x6989('0x17')]('[%s][index][blindtransfer]',_0x5585c8[_0x6989('0x1d')]),_0x5585c8);queues[_0x6989('0x33')](_0x5585c8);agents[_0x6989('0x33')](_0x5585c8);transfers['blindtransfer'](_0x5585c8);}catch(_0x17f67c){utils[_0x6989('0x13')](util[_0x6989('0x17')]('[%s][index][blindtransfer]',_0x5585c8[_0x6989('0x1d')]),_0x17f67c);}});ami['on']('attendedtransfer',function(_0x364f2d){try{utils[_0x6989('0x16')](util[_0x6989('0x17')](_0x6989('0x34'),_0x364f2d[_0x6989('0x35')]),_0x364f2d);queues[_0x6989('0x36')](_0x364f2d);transfers[_0x6989('0x36')](_0x364f2d);agents[_0x6989('0x36')](_0x364f2d);calls['attendedtransfer'](_0x364f2d);}catch(_0x2752f6){utils[_0x6989('0x13')](util[_0x6989('0x17')]('[%s][index][attendedtransfer]',_0x364f2d[_0x6989('0x35')]),_0x2752f6);}});ami['on']('varset',function(_0x4f3051){try{utils[_0x6989('0x16')](util[_0x6989('0x17')](_0x6989('0x37'),_0x4f3051['uniqueid']),_0x4f3051);queues[_0x6989('0x38')](_0x4f3051);recordings['varset'](_0x4f3051);calls[_0x6989('0x38')](_0x4f3051);dials[_0x6989('0x38')](_0x4f3051);}catch(_0x1b15a0){utils['error'](util[_0x6989('0x17')](_0x6989('0x37'),_0x4f3051[_0x6989('0x1d')]),_0x1b15a0);}});ami['on'](_0x6989('0x39'),function(_0x55090c){try{utils['debug'](util['format'](_0x6989('0x3a'),_0x55090c[_0x6989('0x1d')]),_0x55090c);calls[_0x6989('0x39')](_0x55090c);recordings[_0x6989('0x39')](_0x55090c);dials[_0x6989('0x39')](_0x55090c);}catch(_0x3d950e){utils[_0x6989('0x13')](util['format'](_0x6989('0x3a'),_0x55090c['uniqueid']),_0x3d950e);}});ami['on'](_0x6989('0x3b'),function(_0x445b97){try{utils[_0x6989('0x16')](util[_0x6989('0x17')](_0x6989('0x3c'),_0x445b97[_0x6989('0x1d')]),_0x445b97);calls[_0x6989('0x3b')](_0x445b97);recordings[_0x6989('0x3b')](_0x445b97);}catch(_0x1b2d74){utils[_0x6989('0x13')](util[_0x6989('0x17')]('[%s][index][newchannel]',_0x445b97['uniqueid']),_0x1b2d74);}});ami['on'](_0x6989('0x3d'),function(_0x466512){try{utils[_0x6989('0x16')](util[_0x6989('0x17')](_0x6989('0x3e'),_0x466512[_0x6989('0x1d')]),_0x466512);dials[_0x6989('0x3d')](_0x466512);}catch(_0x545e34){utils[_0x6989('0x13')](util[_0x6989('0x17')](_0x6989('0x3f'),_0x466512[_0x6989('0x1d')]),_0x545e34);}});ami['on']('dialend',function(_0x55b06c){try{utils[_0x6989('0x16')](util['format'](_0x6989('0x40'),_0x55b06c[_0x6989('0x1d')]),_0x55b06c);dials['dialend'](_0x55b06c);}catch(_0x47afe0){utils[_0x6989('0x13')](util[_0x6989('0x17')]('[%s][index][dialend]',_0x55b06c[_0x6989('0x1d')]),_0x47afe0);}});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf25a=['name','internal','request','getUserByName','split','CreateMemberReport','error','[%s][members][writeDB]','some','devicestatechange','debug','format','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','BUSY','voice','TALKING','now','agent','NOT_INUSE','isNil','exitAt','duration','diffTime','enterAt','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','[%s][members][agentcomplete]','data1','type','data2','source','data3','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','destination','[%s][members][cdr]','lodash','util','./utils','Queue:','info','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','membername','getUserByInterface','then'];(function(_0x5b187b,_0x48ddc6){var _0x573171=function(_0x45aa60){while(--_0x45aa60){_0x5b187b['push'](_0x5b187b['shift']());}};_0x573171(++_0x48ddc6);}(_0xf25a,0x195));var _0xaf25=function(_0x2e7039,_0x2579c7){_0x2e7039=_0x2e7039-0x0;var _0x4aec37=_0xf25a[_0x2e7039];return _0x4aec37;};'use strict';var _=require(_0xaf25('0x0'));var util=require(_0xaf25('0x1'));var utils=require(_0xaf25('0x2'));var members={};var exclude=['Local/_attended@transfer',_0xaf25('0x3')];function writeDB(_0x651cae){utils[_0xaf25('0x4')](util['format'](_0xaf25('0x5'),_0x651cae[_0xaf25('0x6')],_0x651cae[_0xaf25('0x7')],_0x651cae['channel'],_0x651cae['data2'],_0x651cae[_0xaf25('0x8')],_0x651cae['type']));if(_0x651cae['interface']){utils[_0xaf25('0x9')](_0x651cae[_0xaf25('0x7')])[_0xaf25('0xa')](function(_0x4a8bb2){if(_0x4a8bb2){_0x651cae[_0xaf25('0x8')]=_0x4a8bb2[_0xaf25('0xb')];_0x651cae[_0xaf25('0xc')]=_0x4a8bb2[_0xaf25('0xc')];utils[_0xaf25('0xd')]('CreateMemberReport',_0x651cae);}else{utils[_0xaf25('0xe')](_0x651cae[_0xaf25('0x7')][_0xaf25('0xf')]('/')[0x1])[_0xaf25('0xa')](function(_0x52eb87){if(_0x52eb87){_0x651cae['membername']=_0x52eb87[_0xaf25('0xb')];_0x651cae[_0xaf25('0xc')]=_0x52eb87[_0xaf25('0xc')];utils[_0xaf25('0xd')](_0xaf25('0x10'),_0x651cae);}});}})['catch'](function(_0x586c5a){utils[_0xaf25('0x11')](util['format'](_0xaf25('0x12'),_0x651cae[_0xaf25('0x6')]),_0x586c5a);});}delete members[_0x651cae[_0xaf25('0x7')]];}function startsWith(_0x8939d5,_0x4a07b0){return _[_0xaf25('0x13')](_0x8939d5,function(_0x59e267){return _['startsWith'](_0x4a07b0,_0x59e267);});}exports[_0xaf25('0x14')]=function(_0x4b396d){try{utils[_0xaf25('0x15')](util[_0xaf25('0x16')](_0xaf25('0x17'),members[_0x4b396d[_0xaf25('0x18')]]?members[_0x4b396d[_0xaf25('0x18')]][_0xaf25('0x6')]:_0x4b396d[_0xaf25('0x18')]),_0x4b396d);utils[_0xaf25('0x4')](util[_0xaf25('0x16')](_0xaf25('0x19'),members[_0x4b396d['device']]?members[_0x4b396d[_0xaf25('0x18')]]['uniqueid']:_0x4b396d[_0xaf25('0x18')],_0x4b396d[_0xaf25('0x1a')],_0x4b396d[_0xaf25('0x18')]));switch(_0x4b396d[_0xaf25('0x1a')]){case _0xaf25('0x1b'):case _0xaf25('0x1c'):if(!startsWith(exclude,_0x4b396d[_0xaf25('0x18')])){members[_0x4b396d[_0xaf25('0x18')]]={'channel':_0xaf25('0x1d'),'interface':_0x4b396d[_0xaf25('0x18')],'type':_0xaf25('0x1e'),'enterAt':utils[_0xaf25('0x1f')](),'role':_0xaf25('0x20')};}break;case _0xaf25('0x21'):if(!_[_0xaf25('0x22')](members[_0x4b396d[_0xaf25('0x18')]])){members[_0x4b396d['device']][_0xaf25('0x23')]=utils[_0xaf25('0x1f')]();members[_0x4b396d[_0xaf25('0x18')]][_0xaf25('0x24')]=utils[_0xaf25('0x25')](members[_0x4b396d[_0xaf25('0x18')]]['exitAt'],members[_0x4b396d['device']][_0xaf25('0x26')]);if(members[_0x4b396d[_0xaf25('0x18')]][_0xaf25('0x6')]){writeDB(members[_0x4b396d['device']]);}}break;default:break;}}catch(_0x5212ab){utils[_0xaf25('0x11')](util['format'](_0xaf25('0x17'),members[_0x4b396d['device']]?members[_0x4b396d[_0xaf25('0x18')]][_0xaf25('0x6')]:_0x4b396d[_0xaf25('0x18')]),_0x5212ab);}};exports['agentcomplete']=function(_0x1d7c2d){try{if(!_[_0xaf25('0x22')](members[_0x1d7c2d['interface']])){utils[_0xaf25('0x15')](util[_0xaf25('0x16')]('[%s][members][agentcomplete]',_0x1d7c2d['uniqueid']),_0x1d7c2d);utils['info'](util[_0xaf25('0x16')](_0xaf25('0x27'),_0x1d7c2d[_0xaf25('0x6')],_0x1d7c2d[_0xaf25('0x7')],_0x1d7c2d[_0xaf25('0x28')]));members[_0x1d7c2d[_0xaf25('0x7')]]=_[_0xaf25('0x29')](members[_0x1d7c2d[_0xaf25('0x7')]],{'data4':_0x1d7c2d['queue'],'uniqueid':_0x1d7c2d[_0xaf25('0x6')]});}}catch(_0x273a05){utils[_0xaf25('0x11')](util[_0xaf25('0x16')](_0xaf25('0x2a'),_0x1d7c2d[_0xaf25('0x6')]),_0x273a05);}};exports['cdr']=function(_0x3f0c3a){try{utils[_0xaf25('0x15')](util['format']('[%s][members][cdr]',_0x3f0c3a[_0xaf25('0x6')]),_0x3f0c3a);if(_0x3f0c3a['channel']){var _0x36463c=_0x3f0c3a['channel'][_0xaf25('0xf')]('-')[0x0];if(!_[_0xaf25('0x22')](members[_0x36463c])){members[_0x36463c]=_[_0xaf25('0x29')](members[_0x36463c],{'data1':members[_0x36463c][_0xaf25('0x2b')]||_0x3f0c3a[_0xaf25('0x2c')],'data2':members[_0x36463c][_0xaf25('0x2d')]||_0x3f0c3a[_0xaf25('0x2e')],'data3':members[_0x36463c][_0xaf25('0x2f')]||_0x3f0c3a['destination'],'uniqueid':members[_0x36463c][_0xaf25('0x6')]||_0x3f0c3a[_0xaf25('0x6')]});utils[_0xaf25('0x4')](util['format'](_0xaf25('0x30'),_0x3f0c3a[_0xaf25('0x6')],members[_0x36463c][_0xaf25('0x2b')],members[_0x36463c][_0xaf25('0x2d')],members[_0x36463c][_0xaf25('0x2f')]));if(members[_0x36463c][_0xaf25('0x23')]){writeDB(members[_0x36463c]);}}}if(_0x3f0c3a[_0xaf25('0x31')]){var _0x2e40ba=_0x3f0c3a[_0xaf25('0x31')][_0xaf25('0xf')]('-')[0x0];if(!_['isNil'](members[_0x2e40ba])){members[_0x2e40ba]=_[_0xaf25('0x29')](members[_0x2e40ba],{'data1':members[_0x2e40ba]['data1']||_0x3f0c3a['type'],'data2':members[_0x2e40ba][_0xaf25('0x2d')]||_0x3f0c3a[_0xaf25('0x2e')],'data3':members[_0x2e40ba]['data3']||_0x3f0c3a[_0xaf25('0x32')],'uniqueid':members[_0x2e40ba][_0xaf25('0x6')]||_0x3f0c3a[_0xaf25('0x6')]});utils[_0xaf25('0x4')](util['format'](_0xaf25('0x30'),_0x3f0c3a['uniqueid'],members[_0x2e40ba]['data1'],members[_0x2e40ba]['data2'],members[_0x2e40ba][_0xaf25('0x2f')]));if(members[_0x2e40ba][_0xaf25('0x23')]){writeDB(members[_0x2e40ba]);}}}}catch(_0x1b97de){utils['error'](util['format'](_0xaf25('0x33'),_0x3f0c3a[_0xaf25('0x6')]),_0x1b97de);}};
\ No newline at end of file
+var _0x8c2c=['./utils','Local/_attended@transfer','Queue:','info','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','channel','data2','membername','type','interface','then','name','internal','CreateMemberReport','split','request','catch','error','uniqueid','debug','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','BUSY','voice','TALKING','now','agent','NOT_INUSE','isNil','exitAt','enterAt','agentcomplete','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','cdr','[%s][members][cdr]','data1','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','util'];(function(_0x105ada,_0xba1364){var _0x12e3ad=function(_0x212694){while(--_0x212694){_0x105ada['push'](_0x105ada['shift']());}};_0x12e3ad(++_0xba1364);}(_0x8c2c,0x92));var _0xc8c2=function(_0x27a98e,_0x3391e5){_0x27a98e=_0x27a98e-0x0;var _0x55c91c=_0x8c2c[_0x27a98e];return _0x55c91c;};'use strict';var _=require('lodash');var util=require(_0xc8c2('0x0'));var utils=require(_0xc8c2('0x1'));var members={};var exclude=[_0xc8c2('0x2'),_0xc8c2('0x3')];function writeDB(_0x149d48){utils[_0xc8c2('0x4')](util[_0xc8c2('0x5')](_0xc8c2('0x6'),_0x149d48['uniqueid'],_0x149d48['interface'],_0x149d48[_0xc8c2('0x7')],_0x149d48[_0xc8c2('0x8')],_0x149d48[_0xc8c2('0x9')],_0x149d48[_0xc8c2('0xa')]));if(_0x149d48[_0xc8c2('0xb')]){utils['getUserByInterface'](_0x149d48['interface'])[_0xc8c2('0xc')](function(_0x49c6b6){if(_0x49c6b6){_0x149d48[_0xc8c2('0x9')]=_0x49c6b6[_0xc8c2('0xd')];_0x149d48['internal']=_0x49c6b6[_0xc8c2('0xe')];utils['request'](_0xc8c2('0xf'),_0x149d48);}else{utils['getUserByName'](_0x149d48[_0xc8c2('0xb')][_0xc8c2('0x10')]('/')[0x1])[_0xc8c2('0xc')](function(_0x13384b){if(_0x13384b){_0x149d48[_0xc8c2('0x9')]=_0x13384b[_0xc8c2('0xd')];_0x149d48[_0xc8c2('0xe')]=_0x13384b[_0xc8c2('0xe')];utils[_0xc8c2('0x11')]('CreateMemberReport',_0x149d48);}});}})[_0xc8c2('0x12')](function(_0x37a3a1){utils[_0xc8c2('0x13')](util['format']('[%s][members][writeDB]',_0x149d48[_0xc8c2('0x14')]),_0x37a3a1);});}delete members[_0x149d48[_0xc8c2('0xb')]];}function startsWith(_0x5f24a2,_0x39de29){return _['some'](_0x5f24a2,function(_0x383910){return _['startsWith'](_0x39de29,_0x383910);});}exports['devicestatechange']=function(_0x529c57){try{utils[_0xc8c2('0x15')](util[_0xc8c2('0x5')](_0xc8c2('0x16'),members[_0x529c57[_0xc8c2('0x17')]]?members[_0x529c57[_0xc8c2('0x17')]][_0xc8c2('0x14')]:_0x529c57[_0xc8c2('0x17')]),_0x529c57);utils[_0xc8c2('0x4')](util['format'](_0xc8c2('0x18'),members[_0x529c57[_0xc8c2('0x17')]]?members[_0x529c57['device']][_0xc8c2('0x14')]:_0x529c57[_0xc8c2('0x17')],_0x529c57[_0xc8c2('0x19')],_0x529c57[_0xc8c2('0x17')]));switch(_0x529c57[_0xc8c2('0x19')]){case _0xc8c2('0x1a'):case _0xc8c2('0x1b'):if(!startsWith(exclude,_0x529c57[_0xc8c2('0x17')])){members[_0x529c57[_0xc8c2('0x17')]]={'channel':_0xc8c2('0x1c'),'interface':_0x529c57['device'],'type':_0xc8c2('0x1d'),'enterAt':utils[_0xc8c2('0x1e')](),'role':_0xc8c2('0x1f')};}break;case _0xc8c2('0x20'):if(!_[_0xc8c2('0x21')](members[_0x529c57[_0xc8c2('0x17')]])){members[_0x529c57[_0xc8c2('0x17')]][_0xc8c2('0x22')]=utils[_0xc8c2('0x1e')]();members[_0x529c57[_0xc8c2('0x17')]]['duration']=utils['diffTime'](members[_0x529c57[_0xc8c2('0x17')]][_0xc8c2('0x22')],members[_0x529c57[_0xc8c2('0x17')]][_0xc8c2('0x23')]);if(members[_0x529c57['device']][_0xc8c2('0x14')]){writeDB(members[_0x529c57['device']]);}}break;default:break;}}catch(_0xfbd6a6){utils[_0xc8c2('0x13')](util['format']('[%s][members][devicestatechange]',members[_0x529c57['device']]?members[_0x529c57[_0xc8c2('0x17')]][_0xc8c2('0x14')]:_0x529c57['device']),_0xfbd6a6);}};exports[_0xc8c2('0x24')]=function(_0x1413ce){try{if(!_[_0xc8c2('0x21')](members[_0x1413ce[_0xc8c2('0xb')]])){utils[_0xc8c2('0x15')](util[_0xc8c2('0x5')](_0xc8c2('0x25'),_0x1413ce[_0xc8c2('0x14')]),_0x1413ce);utils[_0xc8c2('0x4')](util[_0xc8c2('0x5')](_0xc8c2('0x26'),_0x1413ce[_0xc8c2('0x14')],_0x1413ce[_0xc8c2('0xb')],_0x1413ce[_0xc8c2('0x27')]));members[_0x1413ce['interface']]=_[_0xc8c2('0x28')](members[_0x1413ce[_0xc8c2('0xb')]],{'data4':_0x1413ce[_0xc8c2('0x27')],'uniqueid':_0x1413ce[_0xc8c2('0x14')]});}}catch(_0x43e126){utils[_0xc8c2('0x13')](util[_0xc8c2('0x5')](_0xc8c2('0x25'),_0x1413ce[_0xc8c2('0x14')]),_0x43e126);}};exports[_0xc8c2('0x29')]=function(_0x274670){try{utils[_0xc8c2('0x15')](util[_0xc8c2('0x5')](_0xc8c2('0x2a'),_0x274670[_0xc8c2('0x14')]),_0x274670);if(_0x274670[_0xc8c2('0x7')]){var _0x2b3cc5=_0x274670[_0xc8c2('0x7')]['split']('-')[0x0];if(!_[_0xc8c2('0x21')](members[_0x2b3cc5])){members[_0x2b3cc5]=_['assign'](members[_0x2b3cc5],{'data1':members[_0x2b3cc5][_0xc8c2('0x2b')]||_0x274670[_0xc8c2('0xa')],'data2':members[_0x2b3cc5][_0xc8c2('0x8')]||_0x274670[_0xc8c2('0x2c')],'data3':members[_0x2b3cc5][_0xc8c2('0x2d')]||_0x274670[_0xc8c2('0x2e')],'uniqueid':members[_0x2b3cc5][_0xc8c2('0x14')]||_0x274670[_0xc8c2('0x14')]});utils[_0xc8c2('0x4')](util[_0xc8c2('0x5')](_0xc8c2('0x2f'),_0x274670[_0xc8c2('0x14')],members[_0x2b3cc5][_0xc8c2('0x2b')],members[_0x2b3cc5][_0xc8c2('0x8')],members[_0x2b3cc5][_0xc8c2('0x2d')]));if(members[_0x2b3cc5][_0xc8c2('0x22')]){writeDB(members[_0x2b3cc5]);}}}if(_0x274670[_0xc8c2('0x30')]){var _0x2d67ef=_0x274670['destinationchannel'][_0xc8c2('0x10')]('-')[0x0];if(!_[_0xc8c2('0x21')](members[_0x2d67ef])){members[_0x2d67ef]=_[_0xc8c2('0x28')](members[_0x2d67ef],{'data1':members[_0x2d67ef][_0xc8c2('0x2b')]||_0x274670['type'],'data2':members[_0x2d67ef][_0xc8c2('0x8')]||_0x274670[_0xc8c2('0x2c')],'data3':members[_0x2d67ef][_0xc8c2('0x2d')]||_0x274670[_0xc8c2('0x2e')],'uniqueid':members[_0x2d67ef][_0xc8c2('0x14')]||_0x274670[_0xc8c2('0x14')]});utils[_0xc8c2('0x4')](util[_0xc8c2('0x5')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x274670[_0xc8c2('0x14')],members[_0x2d67ef][_0xc8c2('0x2b')],members[_0x2d67ef][_0xc8c2('0x8')],members[_0x2d67ef][_0xc8c2('0x2d')]));if(members[_0x2d67ef][_0xc8c2('0x22')]){writeDB(members[_0x2d67ef]);}}}}catch(_0x1e4a8b){utils[_0xc8c2('0x13')](util[_0xc8c2('0x5')](_0xc8c2('0x2a'),_0x274670[_0xc8c2('0x14')]),_0x1e4a8b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x230c=['isNil','value','toUpperCase','CONTINUE','queuecallerabandon','queuecallerexitAt','[%s][queues][varset]\x20name:%s\x20variable:queuestatus\x20value:%s\x20queuecallerexitreason:%s','variable','queuecallerabandonAt','EXITWITHKEY','[%s][queues][varset]\x20name:%s\x20variable:queueposition\x20value:%s\x20queuecallerexitreason:%s','ABANDONED','[%s][queues][queuecallerabandon]\x20name:%s\x20queuecallerexitreason:%s','[%s][queues][queuecallerabandon]','queuecallerleave','[%s][queues][queuecallerleave]\x20name:%s\x20connectedlinenum:%s\x20connectedlinename:%s','holdtime','count','connectedlinenum','connectedlinename','agentconnect','[%s][queues][agentconnect]','[%s][queues][agentconnect]\x20name:%s\x20agent:%s\x20accountcode:%s','membername','destaccountcode','assigned','[%s][queues][agentcomplete]','reason','transfer','COMPLETEDBY','transfereeuniqueid','[%s][queues][blindtransfer]','transfertype','BLIND','extension','transferuniqueid','[%s][queues][blindtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:BLINDTRANSFER','[%s][queues][attendedtransfer]','origtransfereruniqueid','origtransfererlinkedid','secondtransfererlinkedid','origtransfererexten','ATTENDED','transferexten','transfereelinkedid','queuecallerenterreason','clone','transfertargetuniqueid','calleridname','queuecallerjoinAt','mohtime','[%s][queues][attendedtransfer]\x20name:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s','secondtransfereruniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','secondtransfererexten','ATTENDEDTRANSFER','transfertargetlinkedid','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][musiconholdstart]','musiconholdstartAt','[%s][queues][musiconholdstop]\x20name:%s\x20musiconholdstartAt:%s','musiconholdstop','[%s][queues][musiconholdstop]','diffTime','[%s][queues][musiconholdstop]\x20name:%s\x20mohtime:%s','info','[%s][queues][writeDB]\x20channel:%s\x20queue:%s\x20lastAssignedTo:%s\x20calleridnum:%s\x20accountcode:%s\x20queuecallerexitreason:%s','uniqueid','channel','queue','lastAssignedTo','calleridnum','accountcode','getVoiceQueueByName','then','type','request','CreateVoiceQueueReport','transfereduniqueid','queuecallerjoin','debug','format','[%s][queues][queuecallerjoin]\x20name:%s\x20position:%s','position','assign','[%s][queues][queuecallerjoin]','hangup','[%s][queues][hangup]','queuecallerleaveAt','queuecallerexit','queuecallercomplete','queuecallercompleteAt','now','queuecallerexitreason','COMPLETEDBYAGENT','name','error','varset','[%s][queues][varset]'];(function(_0x526baa,_0x54485e){var _0x1db4ed=function(_0x34a8a8){while(--_0x34a8a8){_0x526baa['push'](_0x526baa['shift']());}};_0x1db4ed(++_0x54485e);}(_0x230c,0x10a));var _0xc230=function(_0x12ca5f,_0x223d98){_0x12ca5f=_0x12ca5f-0x0;var _0xfc3ae9=_0x230c[_0x12ca5f];return _0xfc3ae9;};'use strict';var _=require('lodash');var util=require('util');var utils=require('./utils');var queues={};function writeDB(_0x10531f){utils[_0xc230('0x0')](util['format'](_0xc230('0x1'),_0x10531f[_0xc230('0x2')],_0x10531f[_0xc230('0x3')],_0x10531f[_0xc230('0x4')],_0x10531f[_0xc230('0x5')],_0x10531f[_0xc230('0x6')],_0x10531f[_0xc230('0x7')],_0x10531f['queuecallerexitreason']));if(_0x10531f[_0xc230('0x4')]){utils[_0xc230('0x8')](_0x10531f['queue'])[_0xc230('0x9')](function(_0x38f92e){if(_0x38f92e){_0x10531f[_0xc230('0xa')]=_0x38f92e['type'];}utils['request']('CreateVoiceQueueReport',_0x10531f);});}else{utils[_0xc230('0xb')](_0xc230('0xc'),_0x10531f);}if(_0x10531f[_0xc230('0xd')]){delete queues[_0x10531f[_0xc230('0xd')]];}else{delete queues[_0x10531f['uniqueid']];}}exports[_0xc230('0xe')]=function(_0x161477){try{utils[_0xc230('0xf')](util[_0xc230('0x10')]('[%s][queues][queuecallerjoin]',_0x161477[_0xc230('0x2')]),_0x161477);utils[_0xc230('0x0')](util[_0xc230('0x10')](_0xc230('0x11'),_0x161477[_0xc230('0x2')],_0x161477[_0xc230('0x4')],_0x161477[_0xc230('0x12')]));queues[_0x161477[_0xc230('0x2')]]=_[_0xc230('0x13')](_0x161477,{'originalposition':_0x161477[_0xc230('0x12')],'queuecallerjoinAt':utils['now'](),'mohtime':0x0});}catch(_0x47bcaa){utils['error'](util[_0xc230('0x10')](_0xc230('0x14'),_0x161477[_0xc230('0x2')]),_0x47bcaa);}};exports[_0xc230('0x15')]=function(_0x547f72){try{if(!_['isNil'](queues[_0x547f72[_0xc230('0x2')]])){utils[_0xc230('0xf')](util[_0xc230('0x10')](_0xc230('0x16'),_0x547f72['uniqueid']),_0x547f72);if(queues[_0x547f72['uniqueid']][_0xc230('0x17')]){if(!queues[_0x547f72['uniqueid']]['queuecallerabandon']&&!queues[_0x547f72['uniqueid']][_0xc230('0x18')]){queues[_0x547f72['uniqueid']][_0xc230('0x19')]=!![];queues[_0x547f72[_0xc230('0x2')]][_0xc230('0x1a')]=utils[_0xc230('0x1b')]();queues[_0x547f72['uniqueid']][_0xc230('0x1c')]=_0xc230('0x1d');}utils['info'](util[_0xc230('0x10')]('[%s][queues][hangup]\x20name:%s\x20queuecallerexitreason:%s',_0x547f72[_0xc230('0x2')],queues[_0x547f72[_0xc230('0x2')]][_0xc230('0x1e')],queues[_0x547f72[_0xc230('0x2')]][_0xc230('0x1c')]));writeDB(queues[_0x547f72['uniqueid']]);}else if(queues[_0x547f72['uniqueid']]['transfereduniqueid']){utils[_0xc230('0x0')](util[_0xc230('0x10')]('[%s][queues][hangup]\x20name:%s\x20transfereduniqueid:%s',_0x547f72[_0xc230('0x2')],queues[_0x547f72[_0xc230('0x2')]][_0xc230('0x1e')],queues[_0x547f72['uniqueid']][_0xc230('0xd')]));queues[queues[_0x547f72[_0xc230('0x2')]]['transfereduniqueid']]=queues[_0x547f72[_0xc230('0x2')]];queues[queues[_0x547f72[_0xc230('0x2')]]['transfereduniqueid']]['queuecallerenterreason']=0x2;delete queues[_0x547f72['uniqueid']];}}}catch(_0x3acca5){utils[_0xc230('0x1f')](util[_0xc230('0x10')]('[%s][queues][hangup]',_0x547f72[_0xc230('0x2')]),_0x3acca5);}};exports[_0xc230('0x20')]=function(_0x310084){try{utils[_0xc230('0xf')](util[_0xc230('0x10')](_0xc230('0x21'),_0x310084[_0xc230('0x2')]),_0x310084);if(!_[_0xc230('0x22')](_0x310084['variable']['queuestatus'])&&_0x310084[_0xc230('0x23')][_0xc230('0x24')]()!==_0xc230('0x25')){if(!_['isNil'](queues[_0x310084[_0xc230('0x2')]])){queues[_0x310084['uniqueid']][_0xc230('0x26')]=![];queues[_0x310084[_0xc230('0x2')]]['queuecallerabandonAt']=null;queues[_0x310084[_0xc230('0x2')]][_0xc230('0x18')]=!![];queues[_0x310084['uniqueid']][_0xc230('0x27')]=utils['now']();queues[_0x310084[_0xc230('0x2')]][_0xc230('0x1c')]=_0x310084['value']['toUpperCase']();utils[_0xc230('0x0')](util[_0xc230('0x10')](_0xc230('0x28'),_0x310084[_0xc230('0x2')],queues[_0x310084[_0xc230('0x2')]][_0xc230('0x1e')],_0x310084[_0xc230('0x23')],queues[_0x310084[_0xc230('0x2')]]['queuecallerexitreason']));writeDB(queues[_0x310084[_0xc230('0x2')]]);}}else if(!_[_0xc230('0x22')](_0x310084[_0xc230('0x29')]['queueposition'])){if(!_[_0xc230('0x22')](queues[_0x310084[_0xc230('0x2')]])&&!queues[_0x310084['uniqueid']][_0xc230('0x26')]){queues[_0x310084[_0xc230('0x2')]][_0xc230('0x26')]=![];queues[_0x310084[_0xc230('0x2')]][_0xc230('0x2a')]=null;queues[_0x310084['uniqueid']][_0xc230('0x18')]=!![];queues[_0x310084[_0xc230('0x2')]]['queuecallerexitAt']=utils[_0xc230('0x1b')]();queues[_0x310084[_0xc230('0x2')]][_0xc230('0x1c')]=_0xc230('0x2b');utils['info'](util[_0xc230('0x10')](_0xc230('0x2c'),_0x310084[_0xc230('0x2')],queues[_0x310084[_0xc230('0x2')]][_0xc230('0x1e')],_0x310084[_0xc230('0x23')],queues[_0x310084[_0xc230('0x2')]][_0xc230('0x1c')]));}}}catch(_0x17f14c){utils[_0xc230('0x1f')](util['format']('[%s][queues][varset]',_0x310084[_0xc230('0x2')]),_0x17f14c);}};exports[_0xc230('0x26')]=function(_0x3c0868){try{if(!_[_0xc230('0x22')](queues[_0x3c0868[_0xc230('0x2')]])){utils[_0xc230('0xf')](util[_0xc230('0x10')]('[%s][queues][queuecallerabandon]',_0x3c0868[_0xc230('0x2')]),_0x3c0868);queues[_0x3c0868[_0xc230('0x2')]][_0xc230('0x18')]=![];queues[_0x3c0868[_0xc230('0x2')]][_0xc230('0x27')]=null;queues[_0x3c0868[_0xc230('0x2')]][_0xc230('0x26')]=!![];queues[_0x3c0868[_0xc230('0x2')]]['queuecallerabandonAt']=utils['now']();queues[_0x3c0868[_0xc230('0x2')]][_0xc230('0x1c')]=_0xc230('0x2d');utils['info'](util[_0xc230('0x10')](_0xc230('0x2e'),_0x3c0868['uniqueid'],queues[_0x3c0868[_0xc230('0x2')]][_0xc230('0x1e')],queues[_0x3c0868[_0xc230('0x2')]][_0xc230('0x1c')]));}}catch(_0x13d87e){utils[_0xc230('0x1f')](util['format'](_0xc230('0x2f'),_0x3c0868[_0xc230('0x2')]),_0x13d87e);}};exports[_0xc230('0x30')]=function(_0x3e3183){try{if(!_['isNil'](queues[_0x3e3183[_0xc230('0x2')]])){utils['debug'](util[_0xc230('0x10')]('[%s][queues][queuecallerleave]',_0x3e3183[_0xc230('0x2')]),_0x3e3183);utils['info'](util[_0xc230('0x10')](_0xc230('0x31'),_0x3e3183[_0xc230('0x2')],queues[_0x3e3183['uniqueid']][_0xc230('0x1e')],_0x3e3183['connectedlinenum'],_0x3e3183['connectedlinename']));queues[_0x3e3183[_0xc230('0x2')]][_0xc230('0x30')]=!![];queues[_0x3e3183['uniqueid']][_0xc230('0x17')]=utils[_0xc230('0x1b')]();queues[_0x3e3183[_0xc230('0x2')]][_0xc230('0x32')]=utils['diffTime'](queues[_0x3e3183[_0xc230('0x2')]][_0xc230('0x17')],queues[_0x3e3183['uniqueid']]['queuecallerjoinAt']);queues[_0x3e3183[_0xc230('0x2')]][_0xc230('0x12')]=_0x3e3183[_0xc230('0x12')];queues[_0x3e3183[_0xc230('0x2')]][_0xc230('0x33')]=_0x3e3183[_0xc230('0x33')];queues[_0x3e3183['uniqueid']][_0xc230('0x34')]=_0x3e3183[_0xc230('0x34')];queues[_0x3e3183[_0xc230('0x2')]][_0xc230('0x35')]=_0x3e3183['connectedlinename'];}}catch(_0x58b86a){utils[_0xc230('0x1f')](util[_0xc230('0x10')]('[%s][queues][queuecallerleave]',_0x3e3183['uniqueid']),_0x58b86a);}};exports[_0xc230('0x36')]=function(_0x48dd41){try{if(!_[_0xc230('0x22')](queues[_0x48dd41[_0xc230('0x2')]])){utils['debug'](util[_0xc230('0x10')](_0xc230('0x37'),_0x48dd41[_0xc230('0x2')]),_0x48dd41);utils[_0xc230('0x0')](util[_0xc230('0x10')](_0xc230('0x38'),_0x48dd41[_0xc230('0x2')],queues[_0x48dd41[_0xc230('0x2')]][_0xc230('0x1e')],_0x48dd41[_0xc230('0x39')],_0x48dd41[_0xc230('0x3a')]));queues[_0x48dd41[_0xc230('0x2')]][_0xc230('0x26')]=![];queues[_0x48dd41['uniqueid']][_0xc230('0x26')]=![];queues[_0x48dd41['uniqueid']][_0xc230('0x2a')]=null;queues[_0x48dd41['uniqueid']][_0xc230('0x18')]=![];queues[_0x48dd41['uniqueid']][_0xc230('0x1c')]=null;queues[_0x48dd41[_0xc230('0x2')]][_0xc230('0x27')]=null;queues[_0x48dd41[_0xc230('0x2')]][_0xc230('0x3b')]=!![];queues[_0x48dd41[_0xc230('0x2')]][_0xc230('0x7')]=_0x48dd41[_0xc230('0x3a')];queues[_0x48dd41['uniqueid']][_0xc230('0x5')]=_0x48dd41[_0xc230('0x39')];}}catch(_0x19a076){utils['error'](util[_0xc230('0x10')](_0xc230('0x37'),_0x48dd41[_0xc230('0x2')]),_0x19a076);}};exports['agentcomplete']=function(_0x215dd8){try{if(!_[_0xc230('0x22')](queues[_0x215dd8[_0xc230('0x2')]])){if(queues[_0x215dd8[_0xc230('0x2')]][_0xc230('0x17')]){utils['debug'](util[_0xc230('0x10')](_0xc230('0x3c'),_0x215dd8['uniqueid']),_0x215dd8);queues[_0x215dd8[_0xc230('0x2')]][_0xc230('0x26')]=![];queues[_0x215dd8[_0xc230('0x2')]][_0xc230('0x26')]=![];queues[_0x215dd8[_0xc230('0x2')]][_0xc230('0x2a')]=null;queues[_0x215dd8[_0xc230('0x2')]][_0xc230('0x18')]=![];queues[_0x215dd8[_0xc230('0x2')]]['queuecallerexitAt']=null;queues[_0x215dd8[_0xc230('0x2')]][_0xc230('0x3b')]=!![];queues[_0x215dd8[_0xc230('0x2')]][_0xc230('0x5')]=_0x215dd8[_0xc230('0x39')];queues[_0x215dd8['uniqueid']]['queuecallercomplete']=!![];queues[_0x215dd8[_0xc230('0x2')]][_0xc230('0x1a')]=utils[_0xc230('0x1b')]();if(_0x215dd8[_0xc230('0x3d')]==_0xc230('0x3e')){if(!queues[_0x215dd8['uniqueid']][_0xc230('0x3e')]){queues[_0x215dd8[_0xc230('0x2')]][_0xc230('0x1c')]='TRANSFER';}}else{queues[_0x215dd8[_0xc230('0x2')]][_0xc230('0x1c')]=_0xc230('0x3f')+_0x215dd8[_0xc230('0x3d')][_0xc230('0x24')]();}utils[_0xc230('0x0')](util[_0xc230('0x10')]('[%s][queues][agentcomplete]\x20name:%s\x20agent:%s\x20queuecallerexitreason:%s',_0x215dd8[_0xc230('0x2')],queues[_0x215dd8[_0xc230('0x2')]][_0xc230('0x1e')],_0x215dd8[_0xc230('0x39')],queues[_0x215dd8[_0xc230('0x2')]][_0xc230('0x1c')]));writeDB(queues[_0x215dd8['uniqueid']]);}}}catch(_0x5d5133){utils['error'](util[_0xc230('0x10')]('[%s][queues][agentcomplete]',_0x215dd8[_0xc230('0x2')]),_0x5d5133);}};exports['blindtransfer']=function(_0x219079){try{if(!_[_0xc230('0x22')](queues[_0x219079[_0xc230('0x40')]])){utils[_0xc230('0xf')](util[_0xc230('0x10')](_0xc230('0x41'),_0x219079[_0xc230('0x2')]),_0x219079);queues[_0x219079['transfereeuniqueid']]['transfer']=!![];queues[_0x219079[_0xc230('0x40')]][_0xc230('0x42')]=_0xc230('0x43');queues[_0x219079['transfereeuniqueid']]['transferexten']=_0x219079[_0xc230('0x44')];queues[_0x219079[_0xc230('0x40')]][_0xc230('0x45')]=_0x219079['transfereeuniqueid'];queues[_0x219079[_0xc230('0x40')]][_0xc230('0x1c')]='BLINDTRANSFER';utils[_0xc230('0x0')](util[_0xc230('0x10')](_0xc230('0x46'),_0x219079[_0xc230('0x2')],queues[_0x219079[_0xc230('0x40')]][_0xc230('0x1e')],_0x219079[_0xc230('0x40')],_0x219079[_0xc230('0x44')]));}}catch(_0x4e959b){utils['error'](util[_0xc230('0x10')](_0xc230('0x41'),_0x219079[_0xc230('0x2')]),_0x4e959b);}};exports['attendedtransfer']=function(_0x41bf1b){try{utils[_0xc230('0xf')](util[_0xc230('0x10')](_0xc230('0x47'),_0x41bf1b[_0xc230('0x48')]),_0x41bf1b);if(_0x41bf1b[_0xc230('0x48')]==_0x41bf1b[_0xc230('0x49')]){if(!_['isNil'](queues[_0x41bf1b[_0xc230('0x4a')]])){utils[_0xc230('0x0')](util[_0xc230('0x10')]('[%s][queues][attendedtransfer]\x20name:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER',_0x41bf1b['origtransfereruniqueid'],queues[_0x41bf1b[_0xc230('0x4a')]]['name'],_0x41bf1b[_0xc230('0x4b')]));queues[_0x41bf1b[_0xc230('0x4a')]][_0xc230('0x3e')]=!![];queues[_0x41bf1b[_0xc230('0x4a')]][_0xc230('0x42')]=_0xc230('0x4c');queues[_0x41bf1b['secondtransfererlinkedid']][_0xc230('0x4d')]=_0x41bf1b[_0xc230('0x4b')];queues[_0x41bf1b[_0xc230('0x4a')]][_0xc230('0x45')]=_0x41bf1b['origtransfereruniqueid'];queues[_0x41bf1b[_0xc230('0x4a')]][_0xc230('0x1c')]='ATTENDEDTRANSFER';}if(!_[_0xc230('0x22')](queues[_0x41bf1b[_0xc230('0x49')]])){if(_0x41bf1b['transfereelinkedid']&&queues[_0x41bf1b['transfereelinkedid']]){queues[_0x41bf1b[_0xc230('0x4e')]][_0xc230('0x4f')]=0x1;queues[_0x41bf1b[_0xc230('0x40')]]=_[_0xc230('0x50')](queues[_0x41bf1b[_0xc230('0x4e')]]);queues[_0x41bf1b[_0xc230('0x40')]][_0xc230('0xd')]=_0x41bf1b[_0xc230('0x51')];queues[_0x41bf1b[_0xc230('0x40')]][_0xc230('0x4f')]=0x2;queues[_0x41bf1b[_0xc230('0x40')]][_0xc230('0x6')]=queues[_0x41bf1b['secondtransfererlinkedid']][_0xc230('0x6')];queues[_0x41bf1b[_0xc230('0x40')]][_0xc230('0x52')]=queues[_0x41bf1b[_0xc230('0x4a')]]['calleridname'];queues[_0x41bf1b[_0xc230('0x40')]][_0xc230('0x53')]=utils[_0xc230('0x1b')]();queues[_0x41bf1b[_0xc230('0x40')]][_0xc230('0x17')]=utils[_0xc230('0x1b')]();queues[_0x41bf1b[_0xc230('0x40')]]['holdtime']=0x0;queues[_0x41bf1b[_0xc230('0x40')]][_0xc230('0x54')]=0x0;utils['info'](util[_0xc230('0x10')](_0xc230('0x55'),_0x41bf1b[_0xc230('0x48')],queues[_0x41bf1b[_0xc230('0x40')]]['name'],queues[_0x41bf1b['transfereeuniqueid']][_0xc230('0x6')],queues[_0x41bf1b[_0xc230('0x40')]][_0xc230('0x52')]));}else{utils[_0xc230('0x0')](util[_0xc230('0x10')](_0xc230('0x56'),_0x41bf1b[_0xc230('0x48')],queues[_0x41bf1b[_0xc230('0x49')]][_0xc230('0x1e')],_0x41bf1b[_0xc230('0x4a')]));queues[_0x41bf1b[_0xc230('0x49')]]['transfereduniqueid']=_0x41bf1b['secondtransfererlinkedid'];}}}else if(_0x41bf1b[_0xc230('0x57')]==_0x41bf1b[_0xc230('0x4a')]){if(!_[_0xc230('0x22')](queues[_0x41bf1b[_0xc230('0x49')]])){utils[_0xc230('0x0')](util['format'](_0xc230('0x58'),_0x41bf1b[_0xc230('0x48')],queues[_0x41bf1b['origtransfererlinkedid']][_0xc230('0x1e')],_0x41bf1b[_0xc230('0x57')],_0x41bf1b[_0xc230('0x59')]));queues[_0x41bf1b[_0xc230('0x49')]]['transfer']=!![];queues[_0x41bf1b[_0xc230('0x49')]]['transfertype']=_0xc230('0x4c');queues[_0x41bf1b[_0xc230('0x49')]][_0xc230('0x4d')]=_0x41bf1b[_0xc230('0x59')];queues[_0x41bf1b[_0xc230('0x49')]][_0xc230('0x45')]=_0x41bf1b[_0xc230('0x57')];queues[_0x41bf1b['origtransfererlinkedid']]['queuecallerexitreason']=_0xc230('0x5a');}if(!_[_0xc230('0x22')](queues[_0x41bf1b[_0xc230('0x4a')]])){if(_0x41bf1b['transfertargetlinkedid']&&queues[_0x41bf1b['transfertargetlinkedid']]){queues[_0x41bf1b[_0xc230('0x5b')]][_0xc230('0x4f')]=0x1;queues[_0x41bf1b[_0xc230('0x51')]]=_[_0xc230('0x50')](queues[_0x41bf1b[_0xc230('0x5b')]]);queues[_0x41bf1b[_0xc230('0x51')]]['transfereduniqueid']=_0x41bf1b[_0xc230('0x51')];queues[_0x41bf1b[_0xc230('0x51')]][_0xc230('0x4f')]=0x2;queues[_0x41bf1b[_0xc230('0x51')]]['calleridnum']=queues[_0x41bf1b[_0xc230('0x49')]][_0xc230('0x6')];queues[_0x41bf1b[_0xc230('0x51')]]['calleridname']=queues[_0x41bf1b[_0xc230('0x49')]][_0xc230('0x52')];queues[_0x41bf1b[_0xc230('0x51')]][_0xc230('0x53')]=utils[_0xc230('0x1b')]();queues[_0x41bf1b[_0xc230('0x51')]][_0xc230('0x17')]=utils[_0xc230('0x1b')]();queues[_0x41bf1b[_0xc230('0x51')]][_0xc230('0x32')]=0x0;queues[_0x41bf1b[_0xc230('0x51')]][_0xc230('0x54')]=0x0;utils[_0xc230('0x0')](util[_0xc230('0x10')](_0xc230('0x5c'),_0x41bf1b[_0xc230('0x48')],queues[_0x41bf1b[_0xc230('0x51')]][_0xc230('0x1e')],queues[_0x41bf1b[_0xc230('0x51')]][_0xc230('0xd')],queues[_0x41bf1b[_0xc230('0x51')]][_0xc230('0x6')],queues[_0x41bf1b[_0xc230('0x51')]][_0xc230('0x52')]));}else{utils[_0xc230('0x0')](util[_0xc230('0x10')](_0xc230('0x56'),_0x41bf1b[_0xc230('0x48')],queues[_0x41bf1b[_0xc230('0x4a')]][_0xc230('0x1e')],_0x41bf1b[_0xc230('0x49')]));queues[_0x41bf1b[_0xc230('0x4a')]][_0xc230('0xd')]=_0x41bf1b[_0xc230('0x49')];}}}}catch(_0x2bd665){utils[_0xc230('0x1f')](util[_0xc230('0x10')](_0xc230('0x47'),_0x41bf1b[_0xc230('0x48')]),_0x2bd665);}};exports['musiconholdstart']=function(_0x5cdd44){try{if(!_[_0xc230('0x22')](queues[_0x5cdd44[_0xc230('0x2')]])){utils['debug'](util[_0xc230('0x10')](_0xc230('0x5d'),_0x5cdd44[_0xc230('0x2')]),_0x5cdd44);queues[_0x5cdd44[_0xc230('0x2')]][_0xc230('0x5e')]=utils['now']();utils[_0xc230('0x0')](util[_0xc230('0x10')](_0xc230('0x5f'),_0x5cdd44[_0xc230('0x2')],queues[_0x5cdd44[_0xc230('0x2')]][_0xc230('0x1e')],queues[_0x5cdd44['uniqueid']][_0xc230('0x5e')]));}}catch(_0xed1382){utils[_0xc230('0x1f')](util[_0xc230('0x10')](_0xc230('0x5d'),_0x5cdd44[_0xc230('0x2')]),_0xed1382);}};exports[_0xc230('0x60')]=function(_0x3d6e75){try{if(!_[_0xc230('0x22')](queues[_0x3d6e75[_0xc230('0x2')]])){if(!_['isNil'](queues[_0x3d6e75[_0xc230('0x2')]][_0xc230('0x5e')])){utils[_0xc230('0xf')](util[_0xc230('0x10')](_0xc230('0x61'),_0x3d6e75[_0xc230('0x2')]),_0x3d6e75);queues[_0x3d6e75[_0xc230('0x2')]]['mohtime']+=utils[_0xc230('0x62')](utils[_0xc230('0x1b')](),queues[_0x3d6e75['uniqueid']][_0xc230('0x5e')]);utils['info'](util[_0xc230('0x10')](_0xc230('0x63'),_0x3d6e75[_0xc230('0x2')],queues[_0x3d6e75[_0xc230('0x2')]][_0xc230('0x1e')],queues[_0x3d6e75[_0xc230('0x2')]][_0xc230('0x54')]));delete queues[_0x3d6e75[_0xc230('0x2')]][_0xc230('0x5e')];}}}catch(_0x167432){utils['error'](util[_0xc230('0x10')](_0xc230('0x61'),_0x3d6e75[_0xc230('0x2')]),_0x167432);}};
\ No newline at end of file
+var _0x5026=['ATTENDEDTRANSFER','transfereelinkedid','calleridname','mohtime','[%s][queues][attendedtransfer]\x20name:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][attendedtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','secondtransfereruniqueid','secondtransfererexten','transfertargetlinkedid','transfertargetuniqueid','clone','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s','[%s][queues][musiconholdstart]','[%s][queues][musiconholdstop]\x20name:%s\x20musiconholdstartAt:%s','musiconholdstartAt','[%s][queues][musiconholdstop]','[%s][queues][musiconholdstop]\x20name:%s\x20mohtime:%s','lodash','util','info','format','[%s][queues][writeDB]\x20channel:%s\x20queue:%s\x20lastAssignedTo:%s\x20calleridnum:%s\x20accountcode:%s\x20queuecallerexitreason:%s','uniqueid','channel','lastAssignedTo','calleridnum','accountcode','queuecallerexitreason','queue','getVoiceQueueByName','then','type','request','CreateVoiceQueueReport','transfereduniqueid','queuecallerjoin','debug','[%s][queues][queuecallerjoin]','[%s][queues][queuecallerjoin]\x20name:%s\x20position:%s','position','error','hangup','isNil','queuecallerexit','queuecallercompleteAt','[%s][queues][hangup]\x20name:%s\x20queuecallerexitreason:%s','name','queuecallerenterreason','[%s][queues][varset]','variable','toUpperCase','CONTINUE','queuecallerabandon','queuecallerexitAt','value','[%s][queues][varset]\x20name:%s\x20variable:queuestatus\x20value:%s\x20queuecallerexitreason:%s','queueposition','queuecallerabandonAt','now','EXITWITHKEY','[%s][queues][varset]\x20name:%s\x20variable:queueposition\x20value:%s\x20queuecallerexitreason:%s','[%s][queues][queuecallerabandon]','[%s][queues][queuecallerabandon]\x20name:%s\x20queuecallerexitreason:%s','queuecallerleave','[%s][queues][queuecallerleave]','[%s][queues][queuecallerleave]\x20name:%s\x20connectedlinenum:%s\x20connectedlinename:%s','connectedlinenum','queuecallerleaveAt','holdtime','diffTime','queuecallerjoinAt','count','connectedlinename','agentconnect','[%s][queues][agentconnect]\x20name:%s\x20agent:%s\x20accountcode:%s','membername','assigned','destaccountcode','[%s][queues][agentcomplete]','queuecallercomplete','reason','transfer','TRANSFER','COMPLETEDBY','[%s][queues][agentcomplete]\x20name:%s\x20agent:%s\x20queuecallerexitreason:%s','blindtransfer','[%s][queues][blindtransfer]','transfereeuniqueid','transfertype','BLIND','transferexten','extension','transferuniqueid','BLINDTRANSFER','[%s][queues][blindtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:BLINDTRANSFER','attendedtransfer','[%s][queues][attendedtransfer]','origtransfereruniqueid','origtransfererlinkedid','secondtransfererlinkedid','[%s][queues][attendedtransfer]\x20name:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','origtransfererexten','ATTENDED'];(function(_0x4a683e,_0x535436){var _0x1a9446=function(_0x25253f){while(--_0x25253f){_0x4a683e['push'](_0x4a683e['shift']());}};_0x1a9446(++_0x535436);}(_0x5026,0x14a));var _0x6502=function(_0x1cd4d5,_0x5df664){_0x1cd4d5=_0x1cd4d5-0x0;var _0x2a5e0a=_0x5026[_0x1cd4d5];return _0x2a5e0a;};'use strict';var _=require(_0x6502('0x0'));var util=require(_0x6502('0x1'));var utils=require('./utils');var queues={};function writeDB(_0x2b4be4){utils[_0x6502('0x2')](util[_0x6502('0x3')](_0x6502('0x4'),_0x2b4be4[_0x6502('0x5')],_0x2b4be4[_0x6502('0x6')],_0x2b4be4['queue'],_0x2b4be4[_0x6502('0x7')],_0x2b4be4[_0x6502('0x8')],_0x2b4be4[_0x6502('0x9')],_0x2b4be4[_0x6502('0xa')]));if(_0x2b4be4[_0x6502('0xb')]){utils[_0x6502('0xc')](_0x2b4be4[_0x6502('0xb')])[_0x6502('0xd')](function(_0x41d7ce){if(_0x41d7ce){_0x2b4be4[_0x6502('0xe')]=_0x41d7ce[_0x6502('0xe')];}utils[_0x6502('0xf')](_0x6502('0x10'),_0x2b4be4);});}else{utils[_0x6502('0xf')](_0x6502('0x10'),_0x2b4be4);}if(_0x2b4be4[_0x6502('0x11')]){delete queues[_0x2b4be4['transfereduniqueid']];}else{delete queues[_0x2b4be4[_0x6502('0x5')]];}}exports[_0x6502('0x12')]=function(_0x3ba6bc){try{utils[_0x6502('0x13')](util[_0x6502('0x3')](_0x6502('0x14'),_0x3ba6bc[_0x6502('0x5')]),_0x3ba6bc);utils[_0x6502('0x2')](util[_0x6502('0x3')](_0x6502('0x15'),_0x3ba6bc['uniqueid'],_0x3ba6bc[_0x6502('0xb')],_0x3ba6bc[_0x6502('0x16')]));queues[_0x3ba6bc[_0x6502('0x5')]]=_['assign'](_0x3ba6bc,{'originalposition':_0x3ba6bc['position'],'queuecallerjoinAt':utils['now'](),'mohtime':0x0});}catch(_0x161040){utils[_0x6502('0x17')](util[_0x6502('0x3')](_0x6502('0x14'),_0x3ba6bc[_0x6502('0x5')]),_0x161040);}};exports[_0x6502('0x18')]=function(_0x10560e){try{if(!_[_0x6502('0x19')](queues[_0x10560e['uniqueid']])){utils[_0x6502('0x13')](util['format']('[%s][queues][hangup]',_0x10560e[_0x6502('0x5')]),_0x10560e);if(queues[_0x10560e[_0x6502('0x5')]]['queuecallerleaveAt']){if(!queues[_0x10560e[_0x6502('0x5')]]['queuecallerabandon']&&!queues[_0x10560e[_0x6502('0x5')]][_0x6502('0x1a')]){queues[_0x10560e[_0x6502('0x5')]]['queuecallercomplete']=!![];queues[_0x10560e['uniqueid']][_0x6502('0x1b')]=utils['now']();queues[_0x10560e[_0x6502('0x5')]]['queuecallerexitreason']='COMPLETEDBYAGENT';}utils[_0x6502('0x2')](util[_0x6502('0x3')](_0x6502('0x1c'),_0x10560e[_0x6502('0x5')],queues[_0x10560e[_0x6502('0x5')]]['name'],queues[_0x10560e[_0x6502('0x5')]]['queuecallerexitreason']));writeDB(queues[_0x10560e[_0x6502('0x5')]]);}else if(queues[_0x10560e['uniqueid']][_0x6502('0x11')]){utils[_0x6502('0x2')](util[_0x6502('0x3')]('[%s][queues][hangup]\x20name:%s\x20transfereduniqueid:%s',_0x10560e['uniqueid'],queues[_0x10560e['uniqueid']][_0x6502('0x1d')],queues[_0x10560e['uniqueid']][_0x6502('0x11')]));queues[queues[_0x10560e[_0x6502('0x5')]]['transfereduniqueid']]=queues[_0x10560e[_0x6502('0x5')]];queues[queues[_0x10560e[_0x6502('0x5')]][_0x6502('0x11')]][_0x6502('0x1e')]=0x2;delete queues[_0x10560e[_0x6502('0x5')]];}}}catch(_0x5b020b){utils[_0x6502('0x17')](util[_0x6502('0x3')]('[%s][queues][hangup]',_0x10560e[_0x6502('0x5')]),_0x5b020b);}};exports['varset']=function(_0x277493){try{utils['debug'](util[_0x6502('0x3')](_0x6502('0x1f'),_0x277493[_0x6502('0x5')]),_0x277493);if(!_[_0x6502('0x19')](_0x277493[_0x6502('0x20')]['queuestatus'])&&_0x277493['value'][_0x6502('0x21')]()!==_0x6502('0x22')){if(!_[_0x6502('0x19')](queues[_0x277493[_0x6502('0x5')]])){queues[_0x277493[_0x6502('0x5')]][_0x6502('0x23')]=![];queues[_0x277493['uniqueid']]['queuecallerabandonAt']=null;queues[_0x277493[_0x6502('0x5')]][_0x6502('0x1a')]=!![];queues[_0x277493['uniqueid']][_0x6502('0x24')]=utils['now']();queues[_0x277493[_0x6502('0x5')]]['queuecallerexitreason']=_0x277493[_0x6502('0x25')][_0x6502('0x21')]();utils['info'](util['format'](_0x6502('0x26'),_0x277493[_0x6502('0x5')],queues[_0x277493['uniqueid']][_0x6502('0x1d')],_0x277493['value'],queues[_0x277493[_0x6502('0x5')]][_0x6502('0xa')]));writeDB(queues[_0x277493[_0x6502('0x5')]]);}}else if(!_[_0x6502('0x19')](_0x277493[_0x6502('0x20')][_0x6502('0x27')])){if(!_['isNil'](queues[_0x277493[_0x6502('0x5')]])&&!queues[_0x277493['uniqueid']][_0x6502('0x23')]){queues[_0x277493[_0x6502('0x5')]][_0x6502('0x23')]=![];queues[_0x277493[_0x6502('0x5')]][_0x6502('0x28')]=null;queues[_0x277493[_0x6502('0x5')]][_0x6502('0x1a')]=!![];queues[_0x277493[_0x6502('0x5')]]['queuecallerexitAt']=utils[_0x6502('0x29')]();queues[_0x277493['uniqueid']][_0x6502('0xa')]=_0x6502('0x2a');utils[_0x6502('0x2')](util[_0x6502('0x3')](_0x6502('0x2b'),_0x277493['uniqueid'],queues[_0x277493[_0x6502('0x5')]][_0x6502('0x1d')],_0x277493[_0x6502('0x25')],queues[_0x277493[_0x6502('0x5')]][_0x6502('0xa')]));}}}catch(_0x21650b){utils[_0x6502('0x17')](util[_0x6502('0x3')]('[%s][queues][varset]',_0x277493[_0x6502('0x5')]),_0x21650b);}};exports['queuecallerabandon']=function(_0x14fb63){try{if(!_[_0x6502('0x19')](queues[_0x14fb63['uniqueid']])){utils[_0x6502('0x13')](util['format'](_0x6502('0x2c'),_0x14fb63[_0x6502('0x5')]),_0x14fb63);queues[_0x14fb63[_0x6502('0x5')]][_0x6502('0x1a')]=![];queues[_0x14fb63[_0x6502('0x5')]]['queuecallerexitAt']=null;queues[_0x14fb63[_0x6502('0x5')]][_0x6502('0x23')]=!![];queues[_0x14fb63['uniqueid']][_0x6502('0x28')]=utils[_0x6502('0x29')]();queues[_0x14fb63['uniqueid']][_0x6502('0xa')]='ABANDONED';utils['info'](util['format'](_0x6502('0x2d'),_0x14fb63[_0x6502('0x5')],queues[_0x14fb63[_0x6502('0x5')]][_0x6502('0x1d')],queues[_0x14fb63[_0x6502('0x5')]]['queuecallerexitreason']));}}catch(_0x359cab){utils[_0x6502('0x17')](util[_0x6502('0x3')](_0x6502('0x2c'),_0x14fb63[_0x6502('0x5')]),_0x359cab);}};exports[_0x6502('0x2e')]=function(_0x3fa3db){try{if(!_['isNil'](queues[_0x3fa3db[_0x6502('0x5')]])){utils[_0x6502('0x13')](util[_0x6502('0x3')](_0x6502('0x2f'),_0x3fa3db[_0x6502('0x5')]),_0x3fa3db);utils[_0x6502('0x2')](util[_0x6502('0x3')](_0x6502('0x30'),_0x3fa3db[_0x6502('0x5')],queues[_0x3fa3db['uniqueid']][_0x6502('0x1d')],_0x3fa3db[_0x6502('0x31')],_0x3fa3db['connectedlinename']));queues[_0x3fa3db[_0x6502('0x5')]][_0x6502('0x2e')]=!![];queues[_0x3fa3db[_0x6502('0x5')]][_0x6502('0x32')]=utils[_0x6502('0x29')]();queues[_0x3fa3db['uniqueid']][_0x6502('0x33')]=utils[_0x6502('0x34')](queues[_0x3fa3db[_0x6502('0x5')]]['queuecallerleaveAt'],queues[_0x3fa3db[_0x6502('0x5')]][_0x6502('0x35')]);queues[_0x3fa3db[_0x6502('0x5')]][_0x6502('0x16')]=_0x3fa3db[_0x6502('0x16')];queues[_0x3fa3db[_0x6502('0x5')]][_0x6502('0x36')]=_0x3fa3db[_0x6502('0x36')];queues[_0x3fa3db[_0x6502('0x5')]][_0x6502('0x31')]=_0x3fa3db['connectedlinenum'];queues[_0x3fa3db[_0x6502('0x5')]][_0x6502('0x37')]=_0x3fa3db[_0x6502('0x37')];}}catch(_0x22cc7b){utils[_0x6502('0x17')](util[_0x6502('0x3')](_0x6502('0x2f'),_0x3fa3db[_0x6502('0x5')]),_0x22cc7b);}};exports[_0x6502('0x38')]=function(_0x3711f0){try{if(!_[_0x6502('0x19')](queues[_0x3711f0[_0x6502('0x5')]])){utils[_0x6502('0x13')](util[_0x6502('0x3')]('[%s][queues][agentconnect]',_0x3711f0[_0x6502('0x5')]),_0x3711f0);utils['info'](util[_0x6502('0x3')](_0x6502('0x39'),_0x3711f0[_0x6502('0x5')],queues[_0x3711f0[_0x6502('0x5')]]['name'],_0x3711f0[_0x6502('0x3a')],_0x3711f0['destaccountcode']));queues[_0x3711f0[_0x6502('0x5')]][_0x6502('0x23')]=![];queues[_0x3711f0[_0x6502('0x5')]][_0x6502('0x23')]=![];queues[_0x3711f0['uniqueid']][_0x6502('0x28')]=null;queues[_0x3711f0['uniqueid']][_0x6502('0x1a')]=![];queues[_0x3711f0[_0x6502('0x5')]][_0x6502('0xa')]=null;queues[_0x3711f0[_0x6502('0x5')]][_0x6502('0x24')]=null;queues[_0x3711f0[_0x6502('0x5')]][_0x6502('0x3b')]=!![];queues[_0x3711f0[_0x6502('0x5')]][_0x6502('0x9')]=_0x3711f0[_0x6502('0x3c')];queues[_0x3711f0[_0x6502('0x5')]][_0x6502('0x7')]=_0x3711f0[_0x6502('0x3a')];}}catch(_0x5b742e){utils[_0x6502('0x17')](util['format']('[%s][queues][agentconnect]',_0x3711f0[_0x6502('0x5')]),_0x5b742e);}};exports['agentcomplete']=function(_0x5c7fe1){try{if(!_['isNil'](queues[_0x5c7fe1[_0x6502('0x5')]])){if(queues[_0x5c7fe1['uniqueid']][_0x6502('0x32')]){utils[_0x6502('0x13')](util[_0x6502('0x3')](_0x6502('0x3d'),_0x5c7fe1[_0x6502('0x5')]),_0x5c7fe1);queues[_0x5c7fe1[_0x6502('0x5')]][_0x6502('0x23')]=![];queues[_0x5c7fe1['uniqueid']][_0x6502('0x23')]=![];queues[_0x5c7fe1['uniqueid']]['queuecallerabandonAt']=null;queues[_0x5c7fe1[_0x6502('0x5')]][_0x6502('0x1a')]=![];queues[_0x5c7fe1[_0x6502('0x5')]][_0x6502('0x24')]=null;queues[_0x5c7fe1[_0x6502('0x5')]][_0x6502('0x3b')]=!![];queues[_0x5c7fe1[_0x6502('0x5')]]['lastAssignedTo']=_0x5c7fe1[_0x6502('0x3a')];queues[_0x5c7fe1['uniqueid']][_0x6502('0x3e')]=!![];queues[_0x5c7fe1[_0x6502('0x5')]][_0x6502('0x1b')]=utils['now']();if(_0x5c7fe1[_0x6502('0x3f')]==_0x6502('0x40')){if(!queues[_0x5c7fe1[_0x6502('0x5')]][_0x6502('0x40')]){queues[_0x5c7fe1[_0x6502('0x5')]]['queuecallerexitreason']=_0x6502('0x41');}}else{queues[_0x5c7fe1['uniqueid']][_0x6502('0xa')]=_0x6502('0x42')+_0x5c7fe1['reason'][_0x6502('0x21')]();}utils[_0x6502('0x2')](util[_0x6502('0x3')](_0x6502('0x43'),_0x5c7fe1[_0x6502('0x5')],queues[_0x5c7fe1[_0x6502('0x5')]][_0x6502('0x1d')],_0x5c7fe1[_0x6502('0x3a')],queues[_0x5c7fe1[_0x6502('0x5')]][_0x6502('0xa')]));writeDB(queues[_0x5c7fe1[_0x6502('0x5')]]);}}}catch(_0x5632c2){utils[_0x6502('0x17')](util[_0x6502('0x3')](_0x6502('0x3d'),_0x5c7fe1[_0x6502('0x5')]),_0x5632c2);}};exports[_0x6502('0x44')]=function(_0x277c70){try{if(!_[_0x6502('0x19')](queues[_0x277c70['transfereeuniqueid']])){utils['debug'](util[_0x6502('0x3')](_0x6502('0x45'),_0x277c70[_0x6502('0x5')]),_0x277c70);queues[_0x277c70[_0x6502('0x46')]][_0x6502('0x40')]=!![];queues[_0x277c70[_0x6502('0x46')]][_0x6502('0x47')]=_0x6502('0x48');queues[_0x277c70[_0x6502('0x46')]][_0x6502('0x49')]=_0x277c70[_0x6502('0x4a')];queues[_0x277c70[_0x6502('0x46')]][_0x6502('0x4b')]=_0x277c70[_0x6502('0x46')];queues[_0x277c70['transfereeuniqueid']]['queuecallerexitreason']=_0x6502('0x4c');utils[_0x6502('0x2')](util[_0x6502('0x3')](_0x6502('0x4d'),_0x277c70['uniqueid'],queues[_0x277c70[_0x6502('0x46')]]['name'],_0x277c70[_0x6502('0x46')],_0x277c70[_0x6502('0x4a')]));}}catch(_0x264059){utils['error'](util[_0x6502('0x3')](_0x6502('0x45'),_0x277c70['uniqueid']),_0x264059);}};exports[_0x6502('0x4e')]=function(_0x24d6af){try{utils[_0x6502('0x13')](util[_0x6502('0x3')](_0x6502('0x4f'),_0x24d6af[_0x6502('0x50')]),_0x24d6af);if(_0x24d6af[_0x6502('0x50')]==_0x24d6af[_0x6502('0x51')]){if(!_['isNil'](queues[_0x24d6af[_0x6502('0x52')]])){utils[_0x6502('0x2')](util[_0x6502('0x3')](_0x6502('0x53'),_0x24d6af[_0x6502('0x50')],queues[_0x24d6af[_0x6502('0x52')]][_0x6502('0x1d')],_0x24d6af[_0x6502('0x54')]));queues[_0x24d6af[_0x6502('0x52')]][_0x6502('0x40')]=!![];queues[_0x24d6af[_0x6502('0x52')]]['transfertype']=_0x6502('0x55');queues[_0x24d6af[_0x6502('0x52')]][_0x6502('0x49')]=_0x24d6af['origtransfererexten'];queues[_0x24d6af[_0x6502('0x52')]][_0x6502('0x4b')]=_0x24d6af[_0x6502('0x50')];queues[_0x24d6af[_0x6502('0x52')]]['queuecallerexitreason']=_0x6502('0x56');}if(!_[_0x6502('0x19')](queues[_0x24d6af[_0x6502('0x51')]])){if(_0x24d6af[_0x6502('0x57')]&&queues[_0x24d6af[_0x6502('0x57')]]){queues[_0x24d6af['transfereelinkedid']][_0x6502('0x1e')]=0x1;queues[_0x24d6af[_0x6502('0x46')]]=_['clone'](queues[_0x24d6af[_0x6502('0x57')]]);queues[_0x24d6af[_0x6502('0x46')]]['transfereduniqueid']=_0x24d6af['transfertargetuniqueid'];queues[_0x24d6af[_0x6502('0x46')]][_0x6502('0x1e')]=0x2;queues[_0x24d6af[_0x6502('0x46')]][_0x6502('0x8')]=queues[_0x24d6af[_0x6502('0x52')]][_0x6502('0x8')];queues[_0x24d6af[_0x6502('0x46')]][_0x6502('0x58')]=queues[_0x24d6af['secondtransfererlinkedid']]['calleridname'];queues[_0x24d6af['transfereeuniqueid']]['queuecallerjoinAt']=utils[_0x6502('0x29')]();queues[_0x24d6af[_0x6502('0x46')]]['queuecallerleaveAt']=utils['now']();queues[_0x24d6af['transfereeuniqueid']][_0x6502('0x33')]=0x0;queues[_0x24d6af[_0x6502('0x46')]][_0x6502('0x59')]=0x0;utils[_0x6502('0x2')](util['format'](_0x6502('0x5a'),_0x24d6af[_0x6502('0x50')],queues[_0x24d6af[_0x6502('0x46')]][_0x6502('0x1d')],queues[_0x24d6af[_0x6502('0x46')]][_0x6502('0x8')],queues[_0x24d6af[_0x6502('0x46')]][_0x6502('0x58')]));}else{utils[_0x6502('0x2')](util['format']('[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s',_0x24d6af[_0x6502('0x50')],queues[_0x24d6af[_0x6502('0x51')]]['name'],_0x24d6af['secondtransfererlinkedid']));queues[_0x24d6af[_0x6502('0x51')]][_0x6502('0x11')]=_0x24d6af['secondtransfererlinkedid'];}}}else if(_0x24d6af['secondtransfereruniqueid']==_0x24d6af[_0x6502('0x52')]){if(!_[_0x6502('0x19')](queues[_0x24d6af[_0x6502('0x51')]])){utils[_0x6502('0x2')](util['format'](_0x6502('0x5b'),_0x24d6af[_0x6502('0x50')],queues[_0x24d6af[_0x6502('0x51')]][_0x6502('0x1d')],_0x24d6af[_0x6502('0x5c')],_0x24d6af[_0x6502('0x5d')]));queues[_0x24d6af['origtransfererlinkedid']][_0x6502('0x40')]=!![];queues[_0x24d6af['origtransfererlinkedid']][_0x6502('0x47')]=_0x6502('0x55');queues[_0x24d6af[_0x6502('0x51')]]['transferexten']=_0x24d6af[_0x6502('0x5d')];queues[_0x24d6af[_0x6502('0x51')]][_0x6502('0x4b')]=_0x24d6af[_0x6502('0x5c')];queues[_0x24d6af[_0x6502('0x51')]][_0x6502('0xa')]=_0x6502('0x56');}if(!_['isNil'](queues[_0x24d6af[_0x6502('0x52')]])){if(_0x24d6af[_0x6502('0x5e')]&&queues[_0x24d6af[_0x6502('0x5e')]]){queues[_0x24d6af['transfertargetlinkedid']][_0x6502('0x1e')]=0x1;queues[_0x24d6af[_0x6502('0x5f')]]=_[_0x6502('0x60')](queues[_0x24d6af[_0x6502('0x5e')]]);queues[_0x24d6af[_0x6502('0x5f')]]['transfereduniqueid']=_0x24d6af['transfertargetuniqueid'];queues[_0x24d6af[_0x6502('0x5f')]]['queuecallerenterreason']=0x2;queues[_0x24d6af[_0x6502('0x5f')]]['calleridnum']=queues[_0x24d6af[_0x6502('0x51')]][_0x6502('0x8')];queues[_0x24d6af[_0x6502('0x5f')]][_0x6502('0x58')]=queues[_0x24d6af['origtransfererlinkedid']][_0x6502('0x58')];queues[_0x24d6af[_0x6502('0x5f')]][_0x6502('0x35')]=utils[_0x6502('0x29')]();queues[_0x24d6af['transfertargetuniqueid']]['queuecallerleaveAt']=utils[_0x6502('0x29')]();queues[_0x24d6af['transfertargetuniqueid']][_0x6502('0x33')]=0x0;queues[_0x24d6af[_0x6502('0x5f')]][_0x6502('0x59')]=0x0;utils[_0x6502('0x2')](util['format'](_0x6502('0x61'),_0x24d6af[_0x6502('0x50')],queues[_0x24d6af[_0x6502('0x5f')]][_0x6502('0x1d')],queues[_0x24d6af[_0x6502('0x5f')]][_0x6502('0x11')],queues[_0x24d6af[_0x6502('0x5f')]]['calleridnum'],queues[_0x24d6af['transfertargetuniqueid']]['calleridname']));}else{utils[_0x6502('0x2')](util[_0x6502('0x3')](_0x6502('0x62'),_0x24d6af['origtransfereruniqueid'],queues[_0x24d6af[_0x6502('0x52')]][_0x6502('0x1d')],_0x24d6af[_0x6502('0x51')]));queues[_0x24d6af['secondtransfererlinkedid']][_0x6502('0x11')]=_0x24d6af['origtransfererlinkedid'];}}}}catch(_0x1993e8){utils[_0x6502('0x17')](util[_0x6502('0x3')](_0x6502('0x4f'),_0x24d6af['origtransfereruniqueid']),_0x1993e8);}};exports['musiconholdstart']=function(_0x7494c9){try{if(!_[_0x6502('0x19')](queues[_0x7494c9[_0x6502('0x5')]])){utils[_0x6502('0x13')](util[_0x6502('0x3')](_0x6502('0x63'),_0x7494c9[_0x6502('0x5')]),_0x7494c9);queues[_0x7494c9[_0x6502('0x5')]]['musiconholdstartAt']=utils[_0x6502('0x29')]();utils['info'](util['format'](_0x6502('0x64'),_0x7494c9[_0x6502('0x5')],queues[_0x7494c9[_0x6502('0x5')]][_0x6502('0x1d')],queues[_0x7494c9[_0x6502('0x5')]][_0x6502('0x65')]));}}catch(_0x41c89a){utils[_0x6502('0x17')](util[_0x6502('0x3')](_0x6502('0x63'),_0x7494c9[_0x6502('0x5')]),_0x41c89a);}};exports['musiconholdstop']=function(_0x4f0ab7){try{if(!_[_0x6502('0x19')](queues[_0x4f0ab7[_0x6502('0x5')]])){if(!_['isNil'](queues[_0x4f0ab7[_0x6502('0x5')]][_0x6502('0x65')])){utils['debug'](util['format'](_0x6502('0x66'),_0x4f0ab7[_0x6502('0x5')]),_0x4f0ab7);queues[_0x4f0ab7[_0x6502('0x5')]][_0x6502('0x59')]+=utils[_0x6502('0x34')](utils[_0x6502('0x29')](),queues[_0x4f0ab7[_0x6502('0x5')]][_0x6502('0x65')]);utils[_0x6502('0x2')](util['format'](_0x6502('0x67'),_0x4f0ab7['uniqueid'],queues[_0x4f0ab7['uniqueid']][_0x6502('0x1d')],queues[_0x4f0ab7[_0x6502('0x5')]][_0x6502('0x59')]));delete queues[_0x4f0ab7[_0x6502('0x5')]][_0x6502('0x65')];}}}catch(_0xc0dd2d){utils['error'](util[_0x6502('0x3')](_0x6502('0x66'),_0x4f0ab7[_0x6502('0x5')]),_0xc0dd2d);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd098=['isNil','channelstate','[%s][recordings][newstate]\x20context:%s\x20channel:%s','transfer','linkedid','varset','variable','mixmonitor_filename','value','endsWith','replace','.wav49','.WAV','find','push','[%s][recordings][hangup]','[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s','calleridnum','calleridname','cause-txt','connectedlinenum','connectedlinename','type','forEach','newexten','[%s][recordings][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','set','split','substring','lastIndexOf','[%s][recordings][newexten]','[%s][recordings][queuecallerjoin]\x20queue:%s','queue','[%s][recordings][queuecallerjoin]','lodash','./utils','format','uniqueid','getUserByInternal','then','membername','name','UserId','request','CreateVoiceRecording','newchannel','debug','[%s][recordings][newchannel]','info','[%s][recordings][newchannel]\x20context:%s\x20exten:%s','context','exten','accountcode','channel','error','newstate','[%s][recordings][newstate]'];(function(_0x1ea7f7,_0x21e3c4){var _0x4767c9=function(_0x382199){while(--_0x382199){_0x1ea7f7['push'](_0x1ea7f7['shift']());}};_0x4767c9(++_0x21e3c4);}(_0xd098,0x110));var _0x8d09=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xd098[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x8d09('0x0'));var util=require('util');var utils=require(_0x8d09('0x1'));var recordings={};function writeDB(_0x3f827b){utils['info'](util[_0x8d09('0x2')]('[%s][recordings][writeDB]',_0x3f827b[_0x8d09('0x3')]));if(_0x3f827b['accountcode']){utils[_0x8d09('0x4')](_0x3f827b['accountcode'])[_0x8d09('0x5')](function(_0x547c31){if(_0x547c31){_0x3f827b[_0x8d09('0x6')]=_0x547c31[_0x8d09('0x7')];_0x3f827b[_0x8d09('0x8')]=_0x547c31['id'];}utils[_0x8d09('0x9')](_0x8d09('0xa'),_0x3f827b);});}else{utils[_0x8d09('0x9')](_0x8d09('0xa'),_0x3f827b);}}exports[_0x8d09('0xb')]=function(_0x2c7372){try{utils[_0x8d09('0xc')](util['format'](_0x8d09('0xd'),_0x2c7372[_0x8d09('0x3')]),_0x2c7372);if(_0x2c7372[_0x8d09('0x3')]==_0x2c7372['linkedid']){utils[_0x8d09('0xe')](util['format'](_0x8d09('0xf'),_0x2c7372['uniqueid'],_0x2c7372[_0x8d09('0x10')],_0x2c7372[_0x8d09('0x11')]));recordings[_0x2c7372[_0x8d09('0x3')]]={'uniqueid':_0x2c7372[_0x8d09('0x3')],'accountcode':_0x2c7372[_0x8d09('0x12')],'exten':_0x2c7372[_0x8d09('0x11')],'context':_0x2c7372['context'],'channel':_0x2c7372[_0x8d09('0x13')],'monitors':[]};}}catch(_0x5e3569){utils[_0x8d09('0x14')](util[_0x8d09('0x2')](_0x8d09('0xd'),_0x2c7372[_0x8d09('0x3')]),_0x5e3569);}};exports[_0x8d09('0x15')]=function(_0xd975ed){try{utils[_0x8d09('0xc')](util[_0x8d09('0x2')](_0x8d09('0x16'),_0xd975ed[_0x8d09('0x3')]),_0xd975ed);if(!_[_0x8d09('0x17')](recordings[_0xd975ed[_0x8d09('0x3')]])&&_0xd975ed[_0x8d09('0x18')]==0x6){utils[_0x8d09('0xe')](util[_0x8d09('0x2')](_0x8d09('0x19'),_0xd975ed[_0x8d09('0x3')],_0xd975ed[_0x8d09('0x10')],_0xd975ed[_0x8d09('0x13')]));}else if(!_[_0x8d09('0x17')](recordings[_0xd975ed['linkedid']])&&_0xd975ed['channelstate']==0x6&&_0xd975ed[_0x8d09('0x10')]!=_0x8d09('0x1a')){utils[_0x8d09('0xe')](util[_0x8d09('0x2')]('[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0xd975ed[_0x8d09('0x3')],_0xd975ed['linkedid'],_0xd975ed[_0x8d09('0x10')],_0xd975ed['channel']));recordings[_0xd975ed[_0x8d09('0x1b')]][_0x8d09('0x12')]=_0xd975ed[_0x8d09('0x12')];}}catch(_0x1f5389){utils[_0x8d09('0x14')](util[_0x8d09('0x2')]('[%s][recordings][newstate]',_0xd975ed[_0x8d09('0x3')]),_0x1f5389);}};exports[_0x8d09('0x1c')]=function(_0x2b5cbd){try{if(!_['isNil'](_0x2b5cbd[_0x8d09('0x1d')])&&!_[_0x8d09('0x17')](_0x2b5cbd[_0x8d09('0x1d')][_0x8d09('0x1e')])){utils[_0x8d09('0xc')](util['format']('[%s][recordings][varset]',_0x2b5cbd[_0x8d09('0x3')]),_0x2b5cbd);utils['info'](util['format']('[%s][recordings][varset]\x20variable:%s\x20value:%s',_0x2b5cbd[_0x8d09('0x3')],_0x2b5cbd['variable'],_0x2b5cbd[_0x8d09('0x1f')]));if(_[_0x8d09('0x20')](_0x2b5cbd[_0x8d09('0x1f')],'.wav49')){_0x2b5cbd[_0x8d09('0x1f')]=_0x2b5cbd[_0x8d09('0x1f')][_0x8d09('0x21')](_0x8d09('0x22'),_0x8d09('0x23'));}if(recordings[_0x2b5cbd[_0x8d09('0x1b')]]){var _0x502804=_[_0x8d09('0x24')](recordings[_0x2b5cbd[_0x8d09('0x1b')]]['monitors'],{'value':_0x2b5cbd[_0x8d09('0x1f')]});if(_[_0x8d09('0x17')](_0x502804)){recordings[_0x2b5cbd['linkedid']]['monitors'][_0x8d09('0x25')]({'value':_0x2b5cbd['value']});}}}}catch(_0x171513){utils[_0x8d09('0x14')](util['format']('[%s][recordings][varset]',_0x2b5cbd['uniqueid']),_0x171513);}};exports['hangup']=function(_0x1e0b77){try{if(!_[_0x8d09('0x17')](recordings[_0x1e0b77[_0x8d09('0x3')]])){utils[_0x8d09('0xc')](util['format'](_0x8d09('0x26'),_0x1e0b77[_0x8d09('0x3')]),_0x1e0b77);utils[_0x8d09('0xe')](util[_0x8d09('0x2')](_0x8d09('0x27'),_0x1e0b77['uniqueid'],_0x1e0b77[_0x8d09('0x28')],_0x1e0b77[_0x8d09('0x29')],_0x1e0b77[_0x8d09('0x2a')]));recordings[_0x1e0b77[_0x8d09('0x3')]][_0x8d09('0x28')]=_0x1e0b77[_0x8d09('0x28')];recordings[_0x1e0b77['uniqueid']][_0x8d09('0x29')]=_0x1e0b77[_0x8d09('0x29')];recordings[_0x1e0b77[_0x8d09('0x3')]][_0x8d09('0x2b')]=_0x1e0b77[_0x8d09('0x2b')];recordings[_0x1e0b77[_0x8d09('0x3')]][_0x8d09('0x2c')]=_0x1e0b77['connectedlinename'];if(recordings[_0x1e0b77[_0x8d09('0x3')]][_0x8d09('0x2d')]=='outbound'&&recordings[_0x1e0b77[_0x8d09('0x3')]][_0x8d09('0x12')]){recordings[_0x1e0b77[_0x8d09('0x3')]]['connectedlinenum']=recordings[_0x1e0b77['uniqueid']]['accountcode'];recordings[_0x1e0b77[_0x8d09('0x3')]][_0x8d09('0x2c')]='';}recordings[_0x1e0b77[_0x8d09('0x3')]]['monitors'][_0x8d09('0x2e')](function(_0x295c6a){var _0x50ee09=_['clone'](recordings[_0x1e0b77[_0x8d09('0x3')]]);_0x50ee09[_0x8d09('0x1f')]=_0x295c6a[_0x8d09('0x1f')];writeDB(_0x50ee09);});delete recordings[_0x1e0b77['uniqueid']];}}catch(_0x3acc5d){utils[_0x8d09('0x14')](util[_0x8d09('0x2')](_0x8d09('0x26'),_0x1e0b77[_0x8d09('0x3')]),_0x3acc5d);}};exports[_0x8d09('0x2f')]=function(_0x4e02c1){try{if(!_[_0x8d09('0x17')](recordings[_0x4e02c1[_0x8d09('0x3')]])){utils[_0x8d09('0xc')](util[_0x8d09('0x2')]('[%s][recordings][newexten]',_0x4e02c1[_0x8d09('0x3')]),_0x4e02c1);utils[_0x8d09('0xe')](util['format'](_0x8d09('0x30'),_0x4e02c1[_0x8d09('0x3')],_0x4e02c1[_0x8d09('0x31')],_0x4e02c1['appdata']));if(_0x4e02c1['application'][_0x8d09('0x32')]()==_0x8d09('0x33')&&_['startsWith'](_0x4e02c1['appdata'][_0x8d09('0x32')](),'cdr')){var _0x152a05=_0x4e02c1['appdata'][_0x8d09('0x34')]('=');var _0x65d75d=_0x152a05[0x0][_0x8d09('0x35')](_0x152a05[0x0][_0x8d09('0x36')]('(')+0x1,_0x152a05[0x0][_0x8d09('0x36')](')'));var _0x5befc8=_0x152a05[0x1];recordings[_0x4e02c1['uniqueid']][_0x65d75d]=_0x5befc8;}}}catch(_0x2e52c4){utils[_0x8d09('0x14')](util[_0x8d09('0x2')](_0x8d09('0x37'),_0x4e02c1[_0x8d09('0x3')]),_0x2e52c4);}};exports['queuecallerjoin']=function(_0x6f32ce){try{if(!_[_0x8d09('0x17')](recordings[_0x6f32ce[_0x8d09('0x3')]])){utils[_0x8d09('0xc')](util['format']('[%s][recordings][queuecallerjoin]',_0x6f32ce[_0x8d09('0x3')]),_0x6f32ce);utils[_0x8d09('0xe')](util['format'](_0x8d09('0x38'),_0x6f32ce['uniqueid'],_0x6f32ce[_0x8d09('0x39')]));recordings[_0x6f32ce[_0x8d09('0x3')]][_0x8d09('0x39')]=_0x6f32ce[_0x8d09('0x39')];}}catch(_0x53e41a){utils[_0x8d09('0x14')](util[_0x8d09('0x2')](_0x8d09('0x3a'),_0x6f32ce[_0x8d09('0x3')]),_0x53e41a);}};
\ No newline at end of file
+var _0x3645=['value','.WAV','find','monitors','[%s][recordings][varset]','hangup','[%s][recordings][hangup]','calleridnum','calleridname','cause-txt','connectedlinenum','connectedlinename','type','outbound','clone','newexten','[%s][recordings][newexten]','[%s][recordings][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr','split','substring','lastIndexOf','queuecallerjoin','[%s][recordings][queuecallerjoin]','queue','lodash','util','./utils','info','[%s][recordings][writeDB]','accountcode','membername','name','UserId','CreateVoiceRecording','request','newchannel','debug','format','[%s][recordings][newchannel]','uniqueid','linkedid','context','exten','channel','newstate','[%s][recordings][newstate]','isNil','channelstate','[%s][recordings][newstate]\x20context:%s\x20channel:%s','transfer','[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','error','varset','variable','mixmonitor_filename','[%s][recordings][varset]\x20variable:%s\x20value:%s','endsWith'];(function(_0x57d582,_0x2a786f){var _0x19224f=function(_0x22ab38){while(--_0x22ab38){_0x57d582['push'](_0x57d582['shift']());}};_0x19224f(++_0x2a786f);}(_0x3645,0x198));var _0x5364=function(_0xae1a83,_0x1980d4){_0xae1a83=_0xae1a83-0x0;var _0xdb9da8=_0x3645[_0xae1a83];return _0xdb9da8;};'use strict';var _=require(_0x5364('0x0'));var util=require(_0x5364('0x1'));var utils=require(_0x5364('0x2'));var recordings={};function writeDB(_0x2eedac){utils[_0x5364('0x3')](util['format'](_0x5364('0x4'),_0x2eedac['uniqueid']));if(_0x2eedac[_0x5364('0x5')]){utils['getUserByInternal'](_0x2eedac[_0x5364('0x5')])['then'](function(_0x8fe885){if(_0x8fe885){_0x2eedac[_0x5364('0x6')]=_0x8fe885[_0x5364('0x7')];_0x2eedac[_0x5364('0x8')]=_0x8fe885['id'];}utils['request'](_0x5364('0x9'),_0x2eedac);});}else{utils[_0x5364('0xa')](_0x5364('0x9'),_0x2eedac);}}exports[_0x5364('0xb')]=function(_0x4ff309){try{utils[_0x5364('0xc')](util[_0x5364('0xd')](_0x5364('0xe'),_0x4ff309[_0x5364('0xf')]),_0x4ff309);if(_0x4ff309[_0x5364('0xf')]==_0x4ff309[_0x5364('0x10')]){utils['info'](util[_0x5364('0xd')]('[%s][recordings][newchannel]\x20context:%s\x20exten:%s',_0x4ff309['uniqueid'],_0x4ff309[_0x5364('0x11')],_0x4ff309['exten']));recordings[_0x4ff309[_0x5364('0xf')]]={'uniqueid':_0x4ff309[_0x5364('0xf')],'accountcode':_0x4ff309[_0x5364('0x5')],'exten':_0x4ff309[_0x5364('0x12')],'context':_0x4ff309[_0x5364('0x11')],'channel':_0x4ff309[_0x5364('0x13')],'monitors':[]};}}catch(_0x25fd98){utils['error'](util[_0x5364('0xd')](_0x5364('0xe'),_0x4ff309[_0x5364('0xf')]),_0x25fd98);}};exports[_0x5364('0x14')]=function(_0x37c224){try{utils[_0x5364('0xc')](util['format'](_0x5364('0x15'),_0x37c224[_0x5364('0xf')]),_0x37c224);if(!_[_0x5364('0x16')](recordings[_0x37c224[_0x5364('0xf')]])&&_0x37c224[_0x5364('0x17')]==0x6){utils[_0x5364('0x3')](util[_0x5364('0xd')](_0x5364('0x18'),_0x37c224[_0x5364('0xf')],_0x37c224[_0x5364('0x11')],_0x37c224['channel']));}else if(!_[_0x5364('0x16')](recordings[_0x37c224[_0x5364('0x10')]])&&_0x37c224['channelstate']==0x6&&_0x37c224[_0x5364('0x11')]!=_0x5364('0x19')){utils[_0x5364('0x3')](util[_0x5364('0xd')](_0x5364('0x1a'),_0x37c224[_0x5364('0xf')],_0x37c224[_0x5364('0x10')],_0x37c224[_0x5364('0x11')],_0x37c224[_0x5364('0x13')]));recordings[_0x37c224[_0x5364('0x10')]][_0x5364('0x5')]=_0x37c224[_0x5364('0x5')];}}catch(_0x3e187d){utils[_0x5364('0x1b')](util[_0x5364('0xd')](_0x5364('0x15'),_0x37c224[_0x5364('0xf')]),_0x3e187d);}};exports[_0x5364('0x1c')]=function(_0x2dd883){try{if(!_[_0x5364('0x16')](_0x2dd883[_0x5364('0x1d')])&&!_[_0x5364('0x16')](_0x2dd883[_0x5364('0x1d')][_0x5364('0x1e')])){utils['debug'](util[_0x5364('0xd')]('[%s][recordings][varset]',_0x2dd883[_0x5364('0xf')]),_0x2dd883);utils[_0x5364('0x3')](util[_0x5364('0xd')](_0x5364('0x1f'),_0x2dd883[_0x5364('0xf')],_0x2dd883[_0x5364('0x1d')],_0x2dd883['value']));if(_[_0x5364('0x20')](_0x2dd883[_0x5364('0x21')],'.wav49')){_0x2dd883[_0x5364('0x21')]=_0x2dd883[_0x5364('0x21')]['replace']('.wav49',_0x5364('0x22'));}if(recordings[_0x2dd883[_0x5364('0x10')]]){var _0x521250=_[_0x5364('0x23')](recordings[_0x2dd883[_0x5364('0x10')]][_0x5364('0x24')],{'value':_0x2dd883[_0x5364('0x21')]});if(_[_0x5364('0x16')](_0x521250)){recordings[_0x2dd883['linkedid']]['monitors']['push']({'value':_0x2dd883[_0x5364('0x21')]});}}}}catch(_0x472734){utils[_0x5364('0x1b')](util['format'](_0x5364('0x25'),_0x2dd883['uniqueid']),_0x472734);}};exports[_0x5364('0x26')]=function(_0x7a90f1){try{if(!_[_0x5364('0x16')](recordings[_0x7a90f1[_0x5364('0xf')]])){utils[_0x5364('0xc')](util[_0x5364('0xd')](_0x5364('0x27'),_0x7a90f1[_0x5364('0xf')]),_0x7a90f1);utils[_0x5364('0x3')](util[_0x5364('0xd')]('[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s',_0x7a90f1[_0x5364('0xf')],_0x7a90f1[_0x5364('0x28')],_0x7a90f1[_0x5364('0x29')],_0x7a90f1[_0x5364('0x2a')]));recordings[_0x7a90f1[_0x5364('0xf')]]['calleridnum']=_0x7a90f1['calleridnum'];recordings[_0x7a90f1[_0x5364('0xf')]]['calleridname']=_0x7a90f1[_0x5364('0x29')];recordings[_0x7a90f1[_0x5364('0xf')]]['connectedlinenum']=_0x7a90f1[_0x5364('0x2b')];recordings[_0x7a90f1[_0x5364('0xf')]][_0x5364('0x2c')]=_0x7a90f1['connectedlinename'];if(recordings[_0x7a90f1[_0x5364('0xf')]][_0x5364('0x2d')]==_0x5364('0x2e')&&recordings[_0x7a90f1[_0x5364('0xf')]]['accountcode']){recordings[_0x7a90f1[_0x5364('0xf')]][_0x5364('0x2b')]=recordings[_0x7a90f1[_0x5364('0xf')]][_0x5364('0x5')];recordings[_0x7a90f1['uniqueid']][_0x5364('0x2c')]='';}recordings[_0x7a90f1[_0x5364('0xf')]]['monitors']['forEach'](function(_0x374674){var _0x1687cb=_[_0x5364('0x2f')](recordings[_0x7a90f1[_0x5364('0xf')]]);_0x1687cb[_0x5364('0x21')]=_0x374674[_0x5364('0x21')];writeDB(_0x1687cb);});delete recordings[_0x7a90f1['uniqueid']];}}catch(_0x132d76){utils[_0x5364('0x1b')](util[_0x5364('0xd')](_0x5364('0x27'),_0x7a90f1['uniqueid']),_0x132d76);}};exports[_0x5364('0x30')]=function(_0x56c0be){try{if(!_[_0x5364('0x16')](recordings[_0x56c0be[_0x5364('0xf')]])){utils[_0x5364('0xc')](util['format'](_0x5364('0x31'),_0x56c0be[_0x5364('0xf')]),_0x56c0be);utils[_0x5364('0x3')](util[_0x5364('0xd')](_0x5364('0x32'),_0x56c0be[_0x5364('0xf')],_0x56c0be[_0x5364('0x33')],_0x56c0be[_0x5364('0x34')]));if(_0x56c0be[_0x5364('0x33')][_0x5364('0x35')]()==_0x5364('0x36')&&_[_0x5364('0x37')](_0x56c0be['appdata'][_0x5364('0x35')](),_0x5364('0x38'))){var _0x5d3755=_0x56c0be[_0x5364('0x34')][_0x5364('0x39')]('=');var _0x22b6d8=_0x5d3755[0x0][_0x5364('0x3a')](_0x5d3755[0x0]['lastIndexOf']('(')+0x1,_0x5d3755[0x0][_0x5364('0x3b')](')'));var _0x5d262d=_0x5d3755[0x1];recordings[_0x56c0be['uniqueid']][_0x22b6d8]=_0x5d262d;}}}catch(_0x464a0a){utils['error'](util[_0x5364('0xd')](_0x5364('0x31'),_0x56c0be['uniqueid']),_0x464a0a);}};exports[_0x5364('0x3c')]=function(_0x58976a){try{if(!_[_0x5364('0x16')](recordings[_0x58976a[_0x5364('0xf')]])){utils['debug'](util['format'](_0x5364('0x3d'),_0x58976a[_0x5364('0xf')]),_0x58976a);utils[_0x5364('0x3')](util[_0x5364('0xd')]('[%s][recordings][queuecallerjoin]\x20queue:%s',_0x58976a[_0x5364('0xf')],_0x58976a[_0x5364('0x3e')]));recordings[_0x58976a[_0x5364('0xf')]][_0x5364('0x3e')]=_0x58976a[_0x5364('0x3e')];}}catch(_0x5a7e24){utils['error'](util['format']('[%s][recordings][queuecallerjoin]',_0x58976a[_0x5364('0xf')]),_0x5a7e24);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7524=['blind','transfereruniqueid','attendedtransfer','[%s][transfers][attendedtransfer]','origtransfereruniqueid','[%s][transfers][attendedtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','origtransferercalleridnum','origtransferercalleridname','transfertargetcalleridnum','assign','origtransfererchannel','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','origtransfererlinkedid','origtransfererexten','transfereechannel','transfertargetchannel','transfertargetcalleridname','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetcontext','transfertargetexten','transfertargetlinkedid','error','lodash','util','./utils','format','[%s][transfers][writeDB]\x20type:%s','type','attended','uniqueid','request','CreateVoiceTransferReport','blinds','blindtransfer','debug','[%s][transfers][blindtransfer]','info','[%s][transfers][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridnum','transferercalleridname','transfereecalleridname'];(function(_0xd4ec0c,_0x2afcd2){var _0x580218=function(_0x3b1cd4){while(--_0x3b1cd4){_0xd4ec0c['push'](_0xd4ec0c['shift']());}};_0x580218(++_0x2afcd2);}(_0x7524,0x1af));var _0x4752=function(_0x294730,_0x29dcf9){_0x294730=_0x294730-0x0;var _0x428d30=_0x7524[_0x294730];return _0x428d30;};'use strict';var _=require(_0x4752('0x0'));var util=require(_0x4752('0x1'));var utils=require(_0x4752('0x2'));function writeDB(_0x49a7c7){utils['info'](util[_0x4752('0x3')](_0x4752('0x4'),_0x49a7c7[_0x4752('0x5')]===_0x4752('0x6')?_0x49a7c7['origtransfereruniqueid']:_0x49a7c7[_0x4752('0x7')],_0x49a7c7['type']));utils[_0x4752('0x8')](_0x4752('0x9'),_0x49a7c7);}exports[_0x4752('0xa')]={};exports[_0x4752('0xb')]=function(_0x5d16ab){try{utils[_0x4752('0xc')](util[_0x4752('0x3')](_0x4752('0xd'),_0x5d16ab[_0x4752('0x7')]),_0x5d16ab);utils[_0x4752('0xe')](util[_0x4752('0x3')](_0x4752('0xf'),_0x5d16ab[_0x4752('0x7')],_0x5d16ab[_0x4752('0x10')],_0x5d16ab[_0x4752('0x11')],_0x5d16ab['transfereecalleridnum'],_0x5d16ab[_0x4752('0x12')]));_0x5d16ab[_0x4752('0x5')]=_0x4752('0x13');exports['blinds'][_0x5d16ab[_0x4752('0x14')]]=_0x5d16ab;writeDB(_0x5d16ab);}catch(_0x272643){utils['error'](util[_0x4752('0x3')]('[%s][transfers][blindtransfer]',_0x5d16ab[_0x4752('0x7')]),_0x272643);}};exports[_0x4752('0x15')]=function(_0x234bbd){try{utils['debug'](util['format'](_0x4752('0x16'),_0x234bbd[_0x4752('0x17')]),_0x234bbd);utils[_0x4752('0xe')](util['format'](_0x4752('0x18'),_0x234bbd[_0x4752('0x17')],_0x234bbd[_0x4752('0x19')],_0x234bbd[_0x4752('0x1a')],_0x234bbd[_0x4752('0x1b')],_0x234bbd['transfertargetcalleridname']));_0x234bbd=_[_0x4752('0x1c')](_0x234bbd,{'transfererchannel':_0x234bbd[_0x4752('0x1d')],'transferercalleridnum':_0x234bbd[_0x4752('0x19')],'transferercalleridname':_0x234bbd[_0x4752('0x1a')],'transfererconnectedlinenum':_0x234bbd[_0x4752('0x1e')],'transfererconnectedlinename':_0x234bbd[_0x4752('0x1f')],'transfereraccountcode':_0x234bbd[_0x4752('0x20')],'transferercontext':_0x234bbd[_0x4752('0x21')],'transfererexten':_0x234bbd['secondtransfererexten'],'transfererlinkedid':_0x234bbd[_0x4752('0x22')],'context':_0x234bbd['origtransferercontext'],'extension':_0x234bbd[_0x4752('0x23')],'type':_0x4752('0x6')});if(_['isNil'](_0x234bbd[_0x4752('0x24')])){_0x234bbd=_['assign'](_0x234bbd,{'transfereechannel':_0x234bbd[_0x4752('0x25')],'transfereecalleridnum':_0x234bbd['transfertargetcalleridnum'],'transfereecalleridname':_0x234bbd[_0x4752('0x26')],'transfereeconnectedlinenum':_0x234bbd['transfertargetconnectedlinenum'],'transfereeconnectedlinename':_0x234bbd[_0x4752('0x27')],'transfereeaccountcode':_0x234bbd[_0x4752('0x28')],'transfereecontext':_0x234bbd[_0x4752('0x29')],'transfereeexten':_0x234bbd[_0x4752('0x2a')],'transfereelinkedid':_0x234bbd[_0x4752('0x2b')]});}writeDB(_0x234bbd);}catch(_0x4b98dd){utils[_0x4752('0x2c')](util[_0x4752('0x3')](_0x4752('0x16'),_0x234bbd[_0x4752('0x17')]),_0x4b98dd);}};
\ No newline at end of file
+var _0x3709=['blind','transfereruniqueid','error','origtransfereruniqueid','origtransferercalleridnum','origtransferercalleridname','transfertargetcalleridname','assign','origtransfererchannel','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','origtransfererlinkedid','origtransferercontext','attended','isNil','transfereechannel','transfertargetcalleridnum','transfertargetconnectedlinenum','transfertargetcontext','transfertargetlinkedid','[%s][transfers][attendedtransfer]','lodash','util','./utils','format','[%s][transfers][writeDB]\x20type:%s','type','uniqueid','request','CreateVoiceTransferReport','blinds','blindtransfer','debug','[%s][transfers][blindtransfer]','info','[%s][transfers][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridnum','transfereecalleridnum','transfereecalleridname'];(function(_0x48e411,_0x4f2e52){var _0x402594=function(_0x5ee087){while(--_0x5ee087){_0x48e411['push'](_0x48e411['shift']());}};_0x402594(++_0x4f2e52);}(_0x3709,0x15f));var _0x9370=function(_0x37bd26,_0x5ad346){_0x37bd26=_0x37bd26-0x0;var _0xe83dc4=_0x3709[_0x37bd26];return _0xe83dc4;};'use strict';var _=require(_0x9370('0x0'));var util=require(_0x9370('0x1'));var utils=require(_0x9370('0x2'));function writeDB(_0x1616bb){utils['info'](util[_0x9370('0x3')](_0x9370('0x4'),_0x1616bb[_0x9370('0x5')]==='attended'?_0x1616bb['origtransfereruniqueid']:_0x1616bb[_0x9370('0x6')],_0x1616bb[_0x9370('0x5')]));utils[_0x9370('0x7')](_0x9370('0x8'),_0x1616bb);}exports[_0x9370('0x9')]={};exports[_0x9370('0xa')]=function(_0x5cdaa2){try{utils[_0x9370('0xb')](util[_0x9370('0x3')](_0x9370('0xc'),_0x5cdaa2['uniqueid']),_0x5cdaa2);utils[_0x9370('0xd')](util[_0x9370('0x3')](_0x9370('0xe'),_0x5cdaa2[_0x9370('0x6')],_0x5cdaa2[_0x9370('0xf')],_0x5cdaa2['transferercalleridname'],_0x5cdaa2[_0x9370('0x10')],_0x5cdaa2[_0x9370('0x11')]));_0x5cdaa2['type']=_0x9370('0x12');exports[_0x9370('0x9')][_0x5cdaa2[_0x9370('0x13')]]=_0x5cdaa2;writeDB(_0x5cdaa2);}catch(_0x9b67b){utils[_0x9370('0x14')](util['format'](_0x9370('0xc'),_0x5cdaa2[_0x9370('0x6')]),_0x9b67b);}};exports['attendedtransfer']=function(_0x386dd7){try{utils[_0x9370('0xb')](util[_0x9370('0x3')]('[%s][transfers][attendedtransfer]',_0x386dd7[_0x9370('0x15')]),_0x386dd7);utils['info'](util['format']('[%s][transfers][attendedtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s',_0x386dd7['origtransfereruniqueid'],_0x386dd7[_0x9370('0x16')],_0x386dd7[_0x9370('0x17')],_0x386dd7['transfertargetcalleridnum'],_0x386dd7[_0x9370('0x18')]));_0x386dd7=_[_0x9370('0x19')](_0x386dd7,{'transfererchannel':_0x386dd7[_0x9370('0x1a')],'transferercalleridnum':_0x386dd7[_0x9370('0x16')],'transferercalleridname':_0x386dd7[_0x9370('0x17')],'transfererconnectedlinenum':_0x386dd7[_0x9370('0x1b')],'transfererconnectedlinename':_0x386dd7[_0x9370('0x1c')],'transfereraccountcode':_0x386dd7[_0x9370('0x1d')],'transferercontext':_0x386dd7[_0x9370('0x1e')],'transfererexten':_0x386dd7['secondtransfererexten'],'transfererlinkedid':_0x386dd7[_0x9370('0x1f')],'context':_0x386dd7[_0x9370('0x20')],'extension':_0x386dd7['origtransfererexten'],'type':_0x9370('0x21')});if(_[_0x9370('0x22')](_0x386dd7[_0x9370('0x23')])){_0x386dd7=_[_0x9370('0x19')](_0x386dd7,{'transfereechannel':_0x386dd7['transfertargetchannel'],'transfereecalleridnum':_0x386dd7[_0x9370('0x24')],'transfereecalleridname':_0x386dd7[_0x9370('0x18')],'transfereeconnectedlinenum':_0x386dd7[_0x9370('0x25')],'transfereeconnectedlinename':_0x386dd7['transfertargetconnectedlinename'],'transfereeaccountcode':_0x386dd7['transfertargetaccountcode'],'transfereecontext':_0x386dd7[_0x9370('0x26')],'transfereeexten':_0x386dd7['transfertargetexten'],'transfereelinkedid':_0x386dd7[_0x9370('0x27')]});}writeDB(_0x386dd7);}catch(_0x3b8053){utils[_0x9370('0x14')](util[_0x9370('0x3')](_0x9370('0x28'),_0x386dd7['origtransfereruniqueid']),_0x3b8053);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1b8e=['[utils][getUserByName]\x20name:%s\x20%s','[utils][getUserByName]','getVoiceQueueByName','request','GetVoiceQueue','type','acw','acwTimeout','[utils][getVoiceQueueByName]\x20name:%s','[utils][getVoiceQueueByName]\x20name:%s\x20%s','length','[utils][getVoiceQueueByName]','addTime','add','seconds','format','subtractTime','subtract','diffTime','diff','sumTime','now','YYYY-MM-DD\x20HH:mm:ss','isAfter','isBefore','bluebird','jayson/promise','moment','client','../../config/logger','info','debug','inspect','error','then','catch','[utils][request]\x20name:%s','GetUser','internal','name','interface','stringify','result','[utils][getUserByInternal]\x20internal:%s\x20%s','found','notfound','[utils][getUserByInternal]','getUserByInterface','[utils][getUserByInterface]\x20interface:%s\x20%s','[utils][getUserByInterface]','getUserByName'];(function(_0x5b6cf1,_0x32fdcd){var _0x46278c=function(_0x53fd9b){while(--_0x53fd9b){_0x5b6cf1['push'](_0x5b6cf1['shift']());}};_0x46278c(++_0x32fdcd);}(_0x1b8e,0x14b));var _0xe1b8=function(_0x258e9c,_0x52fa2d){_0x258e9c=_0x258e9c-0x0;var _0x30a46c=_0x1b8e[_0x258e9c];return _0x30a46c;};'use strict';var BPromise=require(_0xe1b8('0x0'));var jayson=require(_0xe1b8('0x1'));var moment=require(_0xe1b8('0x2'));var util=require('util');var client=jayson[_0xe1b8('0x3')]['http']({'port':0x2329});var logger=require(_0xe1b8('0x4'))('xdr');exports[_0xe1b8('0x5')]=function(_0x511893,_0xad1634){logger[_0xe1b8('0x5')](_0x511893,_0xad1634?util['inspect'](_0xad1634,{'showHidden':![],'depth':null}):'');};exports[_0xe1b8('0x6')]=function(_0xd4c0b8,_0x26b1c3){logger[_0xe1b8('0x6')](_0xd4c0b8,_0x26b1c3?util[_0xe1b8('0x7')](_0x26b1c3,{'showHidden':![],'depth':null}):'');};exports[_0xe1b8('0x8')]=function(_0x2a40fb,_0x75e27f){logger[_0xe1b8('0x8')](_0x2a40fb,_0x75e27f?util[_0xe1b8('0x7')](_0x75e27f,{'showHidden':![],'depth':null}):'');};exports['request']=function(_0x3892dd,_0x112019){return client['request'](_0x3892dd,{'body':_0x112019})[_0xe1b8('0x9')](function(_0x5c6096){logger[_0xe1b8('0x6')]('[utils][request]\x20name:%s',_0x3892dd,_0x5c6096?util[_0xe1b8('0x7')](_0x5c6096,{'showHidden':![],'depth':null}):'');})[_0xe1b8('0xa')](function(_0x591566){logger[_0xe1b8('0x8')](_0xe1b8('0xb'),_0x3892dd,_0x591566?util[_0xe1b8('0x7')](_0x591566,{'showHidden':![],'depth':null}):'');});};function getUser(_0x3637dd){return client['request'](_0xe1b8('0xc'),{'options':{'raw':!![],'attributes':['id',_0xe1b8('0xd'),_0xe1b8('0xe'),_0xe1b8('0xf')],'where':_0x3637dd,'limit':0x1}})[_0xe1b8('0x9')](function(_0x3a61da){logger[_0xe1b8('0x6')]('[utils][getUser]\x20where:%s',JSON[_0xe1b8('0x10')](_0x3637dd),_0x3a61da?util[_0xe1b8('0x7')](_0x3a61da,{'showHidden':![],'depth':null}):'');return _0x3a61da['result']['length']?_0x3a61da[_0xe1b8('0x11')][0x0]:null;});}exports['getUserByInternal']=function(_0x1e3acb){return new BPromise(function(_0x143c40,_0x3adfb3){if(_0x1e3acb){return getUser({'internal':_0x1e3acb})[_0xe1b8('0x9')](function(_0x345e0e){logger[_0xe1b8('0x5')](_0xe1b8('0x12'),_0x1e3acb,_0x345e0e?_0xe1b8('0x13'):_0xe1b8('0x14'));return _0x143c40(_0x345e0e);})['catch'](function(_0x589dbf){logger[_0xe1b8('0x8')](_0xe1b8('0x15'),_0x589dbf?util[_0xe1b8('0x7')](_0x589dbf,{'showHidden':![],'depth':null}):'');return _0x143c40(null);});}return _0x143c40(null);});};exports[_0xe1b8('0x16')]=function(_0x48d3e8){return new BPromise(function(_0x213c03,_0x355ac4){if(_0x48d3e8){return getUser({'interface':_0x48d3e8})[_0xe1b8('0x9')](function(_0x42588e){logger[_0xe1b8('0x5')](_0xe1b8('0x17'),_0x48d3e8,_0x42588e?_0xe1b8('0x13'):'notfound');return _0x213c03(_0x42588e);})[_0xe1b8('0xa')](function(_0x69f523){logger['error'](_0xe1b8('0x18'),_0x69f523?util[_0xe1b8('0x7')](_0x69f523,{'showHidden':![],'depth':null}):'');return _0x213c03(null);});}return _0x213c03(null);});};exports[_0xe1b8('0x19')]=function(_0x4517ab){return new BPromise(function(_0x491e55,_0x4761c8){if(_0x4517ab){return getUser({'name':_0x4517ab})[_0xe1b8('0x9')](function(_0x10d5ad){logger[_0xe1b8('0x5')](_0xe1b8('0x1a'),_0x4517ab,_0x10d5ad?_0xe1b8('0x13'):'notfound');return _0x491e55(_0x10d5ad);})[_0xe1b8('0xa')](function(_0x207991){logger['error'](_0xe1b8('0x1b'),_0x207991?util[_0xe1b8('0x7')](_0x207991,{'showHidden':![],'depth':null}):'');return _0x491e55(null);});}return _0x491e55(null);});};exports[_0xe1b8('0x1c')]=function(_0x20f014){return new BPromise(function(_0x1d53bb,_0x1fb1d9){if(_0x20f014){return client[_0xe1b8('0x1d')](_0xe1b8('0x1e'),{'options':{'raw':!![],'attributes':['id','name',_0xe1b8('0x1f'),_0xe1b8('0x20'),_0xe1b8('0x21')],'where':{'name':_0x20f014},'limit':0x1}})['then'](function(_0x2d47dc){logger[_0xe1b8('0x6')](_0xe1b8('0x22'),_0x20f014,_0x2d47dc?util['inspect'](_0x2d47dc,{'showHidden':![],'depth':null}):'');logger[_0xe1b8('0x5')](_0xe1b8('0x23'),_0x20f014,_0x2d47dc?'found':_0xe1b8('0x14'));return _0x1d53bb(_0x2d47dc[_0xe1b8('0x11')][_0xe1b8('0x24')]?_0x2d47dc[_0xe1b8('0x11')][0x0]:null);})[_0xe1b8('0xa')](function(_0x161401){logger['error'](_0xe1b8('0x25'),_0x161401?util[_0xe1b8('0x7')](_0x161401,{'showHidden':![],'depth':null}):'');return _0x1d53bb(null);});}return _0x1d53bb(null);});};exports[_0xe1b8('0x26')]=function(_0x503e50,_0xf160c){return moment(_0x503e50)[_0xe1b8('0x27')](_0xf160c,_0xe1b8('0x28'))[_0xe1b8('0x29')]('YYYY-MM-DD\x20HH:mm:ss');};exports[_0xe1b8('0x2a')]=function(_0x1a98e6,_0x4ee892){return moment(_0x1a98e6)[_0xe1b8('0x2b')](_0x4ee892,'seconds')[_0xe1b8('0x29')]('YYYY-MM-DD\x20HH:mm:ss');};exports[_0xe1b8('0x2c')]=function(_0x1fc941,_0x554a99){return moment(_0x1fc941)[_0xe1b8('0x2d')](moment(_0x554a99),_0xe1b8('0x28'));};exports[_0xe1b8('0x2e')]=function(_0x1aebe8,_0x3a92c5){return parseInt(_0x1aebe8,0xa)+parseInt(_0x3a92c5,0xa);};exports[_0xe1b8('0x2f')]=function(){return moment()[_0xe1b8('0x29')](_0xe1b8('0x30'));};exports[_0xe1b8('0x31')]=function(_0x5ba974,_0x4443d3){if(_0x4443d3){return moment(_0x5ba974)[_0xe1b8('0x31')](_0x4443d3);}return!![];};exports[_0xe1b8('0x32')]=function(_0x333506,_0xb74571){if(_0xb74571){return moment(_0x333506)[_0xe1b8('0x32')](_0xb74571);}else if(_0x333506){return!![];}return![];};
\ No newline at end of file
+var _0xf7ee=['error','request','then','[utils][request]\x20name:%s','catch','internal','name','interface','[utils][getUser]\x20where:%s','stringify','result','length','getUserByInternal','found','notfound','[utils][getUserByInternal]','getUserByInterface','[utils][getUserByInterface]\x20interface:%s\x20%s','[utils][getUserByInterface]','getUserByName','[utils][getUserByName]\x20name:%s\x20%s','getVoiceQueueByName','type','acw','acwTimeout','[utils][getVoiceQueueByName]\x20name:%s','[utils][getVoiceQueueByName]\x20name:%s\x20%s','add','YYYY-MM-DD\x20HH:mm:ss','seconds','diffTime','diff','sumTime','now','format','isAfter','isBefore','bluebird','moment','util','client','http','../../config/logger','xdr','info','inspect','debug'];(function(_0x3be0c4,_0x5b7eff){var _0x11af9f=function(_0x3f5113){while(--_0x3f5113){_0x3be0c4['push'](_0x3be0c4['shift']());}};_0x11af9f(++_0x5b7eff);}(_0xf7ee,0x83));var _0xef7e=function(_0x497f4b,_0x1870ec){_0x497f4b=_0x497f4b-0x0;var _0x55314e=_0xf7ee[_0x497f4b];return _0x55314e;};'use strict';var BPromise=require(_0xef7e('0x0'));var jayson=require('jayson/promise');var moment=require(_0xef7e('0x1'));var util=require(_0xef7e('0x2'));var client=jayson[_0xef7e('0x3')][_0xef7e('0x4')]({'port':0x2329});var logger=require(_0xef7e('0x5'))(_0xef7e('0x6'));exports[_0xef7e('0x7')]=function(_0x5e4e8f,_0x4d06a4){logger[_0xef7e('0x7')](_0x5e4e8f,_0x4d06a4?util[_0xef7e('0x8')](_0x4d06a4,{'showHidden':![],'depth':null}):'');};exports[_0xef7e('0x9')]=function(_0x48d2ce,_0x142dbe){logger['debug'](_0x48d2ce,_0x142dbe?util['inspect'](_0x142dbe,{'showHidden':![],'depth':null}):'');};exports[_0xef7e('0xa')]=function(_0x583c28,_0x213ae2){logger[_0xef7e('0xa')](_0x583c28,_0x213ae2?util['inspect'](_0x213ae2,{'showHidden':![],'depth':null}):'');};exports[_0xef7e('0xb')]=function(_0x66fb16,_0x5b3a29){return client['request'](_0x66fb16,{'body':_0x5b3a29})[_0xef7e('0xc')](function(_0x49b26){logger['debug'](_0xef7e('0xd'),_0x66fb16,_0x49b26?util[_0xef7e('0x8')](_0x49b26,{'showHidden':![],'depth':null}):'');})[_0xef7e('0xe')](function(_0x42fc3b){logger[_0xef7e('0xa')](_0xef7e('0xd'),_0x66fb16,_0x42fc3b?util['inspect'](_0x42fc3b,{'showHidden':![],'depth':null}):'');});};function getUser(_0x362398){return client[_0xef7e('0xb')]('GetUser',{'options':{'raw':!![],'attributes':['id',_0xef7e('0xf'),_0xef7e('0x10'),_0xef7e('0x11')],'where':_0x362398,'limit':0x1}})[_0xef7e('0xc')](function(_0x5a7e3e){logger[_0xef7e('0x9')](_0xef7e('0x12'),JSON[_0xef7e('0x13')](_0x362398),_0x5a7e3e?util['inspect'](_0x5a7e3e,{'showHidden':![],'depth':null}):'');return _0x5a7e3e[_0xef7e('0x14')][_0xef7e('0x15')]?_0x5a7e3e['result'][0x0]:null;});}exports[_0xef7e('0x16')]=function(_0x1a15e3){return new BPromise(function(_0x8db1cd,_0x3c9d37){if(_0x1a15e3){return getUser({'internal':_0x1a15e3})[_0xef7e('0xc')](function(_0x114e5d){logger[_0xef7e('0x7')]('[utils][getUserByInternal]\x20internal:%s\x20%s',_0x1a15e3,_0x114e5d?_0xef7e('0x17'):_0xef7e('0x18'));return _0x8db1cd(_0x114e5d);})[_0xef7e('0xe')](function(_0x136d6d){logger['error'](_0xef7e('0x19'),_0x136d6d?util[_0xef7e('0x8')](_0x136d6d,{'showHidden':![],'depth':null}):'');return _0x8db1cd(null);});}return _0x8db1cd(null);});};exports[_0xef7e('0x1a')]=function(_0x27a0a8){return new BPromise(function(_0xc8efc8,_0x31aa0b){if(_0x27a0a8){return getUser({'interface':_0x27a0a8})['then'](function(_0x40c9ff){logger[_0xef7e('0x7')](_0xef7e('0x1b'),_0x27a0a8,_0x40c9ff?_0xef7e('0x17'):_0xef7e('0x18'));return _0xc8efc8(_0x40c9ff);})[_0xef7e('0xe')](function(_0x222f51){logger[_0xef7e('0xa')](_0xef7e('0x1c'),_0x222f51?util[_0xef7e('0x8')](_0x222f51,{'showHidden':![],'depth':null}):'');return _0xc8efc8(null);});}return _0xc8efc8(null);});};exports[_0xef7e('0x1d')]=function(_0x5380c0){return new BPromise(function(_0x54e3a3,_0x264d0b){if(_0x5380c0){return getUser({'name':_0x5380c0})[_0xef7e('0xc')](function(_0x3c92a5){logger['info'](_0xef7e('0x1e'),_0x5380c0,_0x3c92a5?_0xef7e('0x17'):_0xef7e('0x18'));return _0x54e3a3(_0x3c92a5);})[_0xef7e('0xe')](function(_0x464976){logger['error']('[utils][getUserByName]',_0x464976?util[_0xef7e('0x8')](_0x464976,{'showHidden':![],'depth':null}):'');return _0x54e3a3(null);});}return _0x54e3a3(null);});};exports[_0xef7e('0x1f')]=function(_0x1f928f){return new BPromise(function(_0x5ebece,_0x303889){if(_0x1f928f){return client[_0xef7e('0xb')]('GetVoiceQueue',{'options':{'raw':!![],'attributes':['id','name',_0xef7e('0x20'),_0xef7e('0x21'),_0xef7e('0x22')],'where':{'name':_0x1f928f},'limit':0x1}})[_0xef7e('0xc')](function(_0x5ede28){logger[_0xef7e('0x9')](_0xef7e('0x23'),_0x1f928f,_0x5ede28?util['inspect'](_0x5ede28,{'showHidden':![],'depth':null}):'');logger[_0xef7e('0x7')](_0xef7e('0x24'),_0x1f928f,_0x5ede28?_0xef7e('0x17'):_0xef7e('0x18'));return _0x5ebece(_0x5ede28[_0xef7e('0x14')][_0xef7e('0x15')]?_0x5ede28[_0xef7e('0x14')][0x0]:null);})[_0xef7e('0xe')](function(_0x1e5855){logger[_0xef7e('0xa')]('[utils][getVoiceQueueByName]',_0x1e5855?util[_0xef7e('0x8')](_0x1e5855,{'showHidden':![],'depth':null}):'');return _0x5ebece(null);});}return _0x5ebece(null);});};exports['addTime']=function(_0x2e8648,_0x5e893a){return moment(_0x2e8648)[_0xef7e('0x25')](_0x5e893a,'seconds')['format'](_0xef7e('0x26'));};exports['subtractTime']=function(_0x44c20b,_0x509f0a){return moment(_0x44c20b)['subtract'](_0x509f0a,_0xef7e('0x27'))['format']('YYYY-MM-DD\x20HH:mm:ss');};exports[_0xef7e('0x28')]=function(_0x5763ba,_0xbab8de){return moment(_0x5763ba)[_0xef7e('0x29')](moment(_0xbab8de),_0xef7e('0x27'));};exports[_0xef7e('0x2a')]=function(_0x3d99a0,_0x582607){return parseInt(_0x3d99a0,0xa)+parseInt(_0x582607,0xa);};exports[_0xef7e('0x2b')]=function(){return moment()[_0xef7e('0x2c')]('YYYY-MM-DD\x20HH:mm:ss');};exports[_0xef7e('0x2d')]=function(_0x28e572,_0x25990a){if(_0x25990a){return moment(_0x28e572)[_0xef7e('0x2d')](_0x25990a);}return!![];};exports[_0xef7e('0x2e')]=function(_0x76b983,_0x2d2427){if(_0x2d2427){return moment(_0x76b983)[_0xef7e('0x2e')](_0x2d2427);}else if(_0x76b983){return!![];}return![];};
\ No newline at end of file